(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、本発明に係る遊技機の実施の形態としてパチンコ遊技機を例に挙げ、次の順序で説明する。
<1.パチンコ遊技機の構造>
<2.パチンコ遊技機の制御構成>
<3.動作の概要>
<4.第1の実施の形態のドライバ構成及び提示用LED>
<5.主制御部の処理>
<6.演出制御部の処理>
[6−1:メイン処理]
[6−2:1msタイマ割込処理]
[6−3:コマンド解析処理]
[6−4:シナリオ登録・削除処理]
[6−5:シナリオ更新処理]
[6−6:LED駆動データ更新処理]
[6−7:第1の実施の形態のLED出力処理]
[6−8:LEDドライバ初期化処理]
<7.第2の実施の形態>
<8.まとめ及び変形例>
【0010】
<1.パチンコ遊技機の構造>
まず
図1、
図2を参照して、本発明の実施の形態としてのパチンコ遊技機1の構成を概略的に説明する。
図1は実施の形態のパチンコ遊技機1の外観を示す正面側の斜視図であり、
図2は遊技盤の正面図である。
図1,
図2に示すパチンコ遊技機1は、主に「枠部」と「遊技盤部」から成る。
「枠部」は以下説明する前枠2、外枠4、ガラス扉5、操作パネル7を有して構成される。「遊技盤部」は
図2の遊技盤3から成る。以下の説明上で、「枠部」又は「枠側」とは前枠2,外枠4、ガラス扉5、操作パネル7の総称とする。また「盤部」又は「盤側」とは遊技盤3を示す。
【0011】
図1に示すようにパチンコ遊技機1は、木製の外枠4の前面に額縁状の前枠2が開閉可能に取り付けられている。図示していないが、この前枠2の裏面には遊技盤収納フレームが形成されており、その遊技盤収納フレーム内に
図2に示す遊技盤3が装着される。これにより遊技盤3の表面に形成した遊技領域3aが前枠2の開口部2aから
図1の遊技機前面側に臨む状態となる。
なお遊技領域3aの前側には、透明ガラスを支持したガラス扉5が設けられており、遊技領域3aは透明ガラスを介して前面の遊技者側に表出される。
【0012】
ガラス扉5は軸支機構6により前枠2に対して開閉可能に取り付けられている。そしてガラス扉5の所定位置に設けられた図示しない扉ロック解除用キーシリンダを操作することで、前枠2に対するガラス扉5のロック状態を解除し、ガラス扉5を前側に開放できる構造とされている。また扉ロック解除用キーシリンダの操作によっては、外枠4に対する前枠2のロック状態も解除可能な構成とされている。
またガラス扉5の前面側には、枠側の発光手段として発光部20wが各所に設けられている。発光部20wは、例えばLEDによる発光動作として、演出用の発光動作、エラー告知用の発光動作、動作状態に応じた発光動作などを行う。
【0013】
ガラス扉5の下側には操作パネル7が設けられている。この操作パネル7も、図示しない軸支機構により、前枠2に対して開閉可能とされている。
操作パネル7には、上受け皿ユニット8、下受け皿ユニット9、発射操作ハンドル10が設けられている。
【0014】
上受け皿ユニット8には、弾球に供される遊技球を貯留する上受け皿8aが形成されている。下受け皿ユニット9には、上受け皿8aに貯留しきれない遊技球を貯留する下受け皿9aが形成されている。
また上受け皿ユニット8には、上受け皿8aに貯留された遊技球を下受け皿9a側に抜くための球抜きボタン16が設けられている。下受け皿ユニット9には、下受け皿9aに貯留された遊技球を遊技機下方に抜くための球抜きレバー17が設けられている。
また上受け皿ユニット8には、図示しない遊技球貸出装置に対して遊技球の払い出しを要求するための球貸しボタン14と、遊技球貸出装置に挿入した有価価値媒体の返却を要求するためのカード返却ボタン15とが設けられている。
さらに上受け皿ユニット8には、演出ボタン11,12、十字キー13が設けられている。演出ボタン11,12は、所定の入力受付期間中に内蔵ランプが点灯されて操作可能となり、その内蔵ランプ点灯時に押下することにより演出に変化をもたらすことができる押しボタンとされる。また十字キー13は遊技者が演出状況に応じた操作や演出設定等のための操作を行う操作子である。
【0015】
発射操作ハンドル10は操作パネル7の右端部側に設けられ、遊技者が弾球のために
図3に示す発射装置32を作動させる操作子である。
また前枠2の上部の両側と、発射操作ハンドル10の近傍には、演出音を音響出力するスピーカ25が設けられている。
【0016】
次に
図2を参照して、遊技盤3の構成について説明する。遊技盤3は、略正方形状の木製合板または樹脂板を主体として構成されている。この遊技盤3には、発射された遊技球を案内する球誘導レール31が盤面区画部材として環状に装着されており、この球誘導レール31に取り囲まれた略円形状の領域が遊技領域3aとなっている。
【0017】
この遊技領域3aの略中央部には、液晶表示装置32(LCD:Liquid Crystal Display)が設けられている。
液晶表示装置32では、後述する演出制御部51の制御の下、背景画像上で、たとえば左、中、右の3つの装飾図柄の変動表示が行われる。また通常演出、リーチ演出、スーパーリーチ演出などの各種の演出画像の表示も行われる。
【0018】
また遊技領域3a内には、液晶表示装置32の表示面の周囲を囲むように、センター飾り35Cが設けられている。
センター飾り35Cは、そのデザインにより装飾効果を発揮するだけでなく、周囲の遊技球から液晶表示装置32の表示面を保護する作用を持つ。さらにセンター飾り35Cは、遊技球の打ち出しの強さまたはストローク長による遊技球の流路の左右打ち分けを可能とする部材としても機能する。即ち球誘導レール31を介して遊技領域3a上部に打ち出された遊技球の流下経路は、センター飾り35Cによって分割された左遊技領域3bと右遊技領域3cのいずれかを流下することとなる。いわゆる左打ちの場合、遊技球は左遊技領域3bを流下していき、右打ちの場合、遊技球は右遊技領域3cを流下していく。
【0019】
また左遊技領域3bの下方には、左下飾り35Lが設けられ、装飾効果を発揮するとともに左遊技領域3bとしての範囲を規定する。
同様に右遊技領域3cの下方には右下飾り35Rが設けられ、装飾効果を発揮するとともに左遊技領域3bとしての範囲を規定する。
なお、遊技領域3a(左遊技領域3b及び右遊技領域3c)内には、所要各所に釘49や風車47が設けられて遊技球の多様な流下経路を形成する。
また液晶表示装置32の下方にはセンターステージ35Sが設けられており、装飾効果を発揮するとともに、遊技球の遊動領域として機能する。
なお図示していないが、センター飾り35Cには、適所に視覚的演出効果を奏する可動体役物が設けられている。
【0020】
遊技領域3aの右上縁付近には、複数個のLEDを配置して形成されたドット表示器による図柄表示部33が設けられている。
この図柄表示部33では、所定のドット領域により、第1特別図柄表示部、第2特別図柄表示部、及び普通図柄表示部が形成され、第1特別図柄、第2特別図柄、及び普通図柄のそれぞれの変動表示動作(変動開始および変動停止を一セットする変動表示動作)が行われる。
なお、液晶表示装置32は、図柄表示部33による第1、第2特別図柄の変動表示と時間的に同調して、画像による装飾図柄を変動表示する。
【0021】
センター飾り35Cの下方には、上始動口41(第1の特別図柄始動口)を有する入賞装置が設けられ、さらにその下方には下始動口42a(第2の特別図柄始動口)を備える普通変動入賞装置42が設けられている。
上始動口41及び下始動口42aの内部には、遊技球の通過を検出する検出センサ(
図3に示す上始動口センサ71,下始動口センサ72)が形成されている。
【0022】
上始動口41は、図柄表示部33における第1特別図柄の変動表示動作の始動条件に係る入賞口で、始動口開閉手段(始動口を開放または拡大可能にする手段)を有しない入賞率固定型の入賞装置となっている。
【0023】
下始動口42aを有する普通変動入賞装置42は、始動口開閉手段により始動口の遊技球の入賞率を変動可能な入賞率変動型の入賞装置として構成されている。即ち下始動口42aを開放または拡大可能にする左右一対の可動翼片(可動部材)42bを備えた、いわゆる電動チューリップ型の入賞装置である。
この普通変動入賞装置42の下始動口42aは、図柄表示部33における第2特別図柄の変動表示動作の始動条件に係る入賞口である。そして、この下始動口42aの入賞率は可動翼片42bの作動状態に応じて変動する。即ち可動翼片42bが開いた状態では、入賞が容易となり、可動翼片42bが閉じた状態では、入賞が困難又は不可能となるように構成されている。
【0024】
また普通変動入賞装置42の左右には、一般入賞口43が複数個設けられている。各一般入賞口42の内部には、遊技球の通過を検出する検出センサ(
図3に示す一般入賞口センサ74)が形成されている。
また右遊技領域3cの下部側には、遊技球が通過可能なゲート(特定通過領域)からなる普通図柄始動口44が設けられている。この普通図柄始動口44は、図柄表示部33における普通図柄の変動表示動作に係る入賞口であり、その内部には、通過する遊技球を検出するセンサ(
図3に示すゲートセンサ73)が形成されている。
【0025】
右遊技領域3c内の普通図柄始動口44から普通変動入賞装置42へかけての流下経路途中には第1特別変動入賞装置45(特別電動役物)が設けられている。
第1特別変動入賞装置45は、突没式の開放扉45bにより第1大入賞口45aを閉鎖/開放する構造とされている。また、その内部には第1大入賞口45aへの遊技球の通過を検出するセンサ(
図3の第1大入賞口センサ75)が形成されている。
第1大入賞口45aの周囲は、右下飾り35Rが遊技盤3の表面から膨出した状態となっており、その膨出部分の上辺及び開放扉45bの上面が右流下経路3cの下流案内部を形成している。従って、開放扉45bが盤内部側に引き込まれることで、下流案内部に達した遊技球は容易に第1大入賞口45aに入る状態となる。
【0026】
また普通変動入賞装置42の下方には、第2特別変動入賞装置46(特別電動役物)が設けられている。第2特別変動入賞装置46は、下部が軸支されて開閉可能な開放扉46bにより、その内側の第2大入賞口46aを閉鎖/開放する構造とされている。また、その内部には第2大入賞口46aへの遊技球の通過を検出するセンサ(
図3の第2大入賞口センサ76)が形成されている。
開放扉46bが開かれることで第2大入賞口46aが開放される。この状態では、左遊技領域3b或いは右遊技領域3cを流下してきた遊技球は、高い確率で第2大入賞口50に入ることとなる。
【0027】
以上のように盤面の遊技領域には、入賞口として上始動口41、下始動口42a、普通図柄始動口44、第1大入賞口45a、第2大入賞口46a、一般入賞口43が形成されている。
本実施の形態のパチンコ遊技機1においては、これら入賞口のうち、普通図柄始動口44以外の入賞口への入賞があった場合には、各入賞口別に設定された入賞球1個当りの賞球数が遊技球払出装置55(
図3参照)から払い出される。
例えば、上始動口41および下始動口42aは3個、第1大入賞口45a、第2大入賞口46aは13個、一般入賞口43は10個などと賞球数が設定されている。
なお、これらの各入賞口に入賞しなかった遊技球は、アウト口48を介して遊技領域3aから排出される。
ここで「入賞」とは、入賞口がその内部に遊技球を取り込んだり、ゲートを遊技球が通過したりすることをいう。実際には入賞口ごとに形成されたセンサ(各入賞検出スイッチ)により遊技球が検出された場合、その入賞口に「入賞」が発生したものとして扱われる。この入賞に係る遊技球を「入賞球」とも称する。
【0028】
以上のような盤面において、センター飾り35C、左下飾り35L、右下飾り35R、センターステージ35S、第1特別変動入賞装置45、第2特別変動入賞装置46、さらには図示していない可動体役物には、詳細には図示していないが各所に、盤側の発光手段として例えばLEDによる発光部20b、20Z、20H、20Jが設けられている。
発光部20bは演出用の発光動作やエラー告知用の発光動作を行う。
発光部20Z、20H、20Jは、それぞれ各種の状況提示用の発光部である。
発光部20Zは変動図柄識別用の発光動作を行う。発光部20Zは、例えば第1特別図柄、第2特別図柄、普通図柄のそれぞれに対応して3つ設けられており、それぞれ対応する図柄について、例えば図柄変動の停止中、変動中、当たり中を識別する発光動作を行う。
発光部20Hは保留数表示用の発光動作を行う。発光部20Hは、例えば第1特別図柄変動についての保留数を最大4個まで表示し、また第2特別図柄変動についての保留数を最大4個まで表示するものとして、例えば合計8つ設けられており、その発光状態で保留数を表示する。
発光部20Jは遊技状態報知用の発光動作を行う。発光部20Jは、所要数設けられており(この例では3つ)、それぞれの発光状態で、大当たり中、確変中、時短中などを報知する。
なお、この例では発光部20Z、20H、20Jは盤側に設けられているが、発光部20Z、20H、20Jの全部又は一部が枠側に設けられても良い。
【0029】
以下では説明上、盤側の発光部20w、枠側の発光部20bを「演出用発光部」と表記する場合がある。
また発光部20Zを「変動図柄識別用発光部」、発光部20Hを「保留数表示用発光部」、発光部20Jを「遊技状態報知用発光部」と表記する場合がある。
さらに発光部20Z、20H、20Jを総称して「状況提示用発光部」と表記する場合がある。
【0030】
<2.パチンコ遊技機の制御構成>
次に本実施の形態のパチンコ遊技機1の制御系の構成について説明する。
図3はパチンコ遊技機1の内部構成の概略的なブロック図である。
本実施の形態のパチンコ遊技機1は、その制御構成を形成する基板として主に、主制御基板50、演出制御基板51、液晶制御基板52、払出制御基板53、発射制御基板54、電源基板58が設けられている。
【0031】
主制御基板50は、マイクロコンピュータ等が搭載され、パチンコ遊技機1の遊技動作全般に係る統括的な制御を行う。なお以下では、主制御基板50に搭載されたマイクロコンピュータ等を含めて主制御基板50の構成体を「主制御部50」と表記する。
演出制御基板51は、マイクロコンピュータ等が搭載され、主制御部50から演出制御コマンドを受けて、画像表示、発光、音響出力、可動体役物を用いた各種の演出動作を実行させるための制御を行う。なお以下では、演出制御基板51に搭載されたマイクロコンピュータ等を含めて演出制御基板51の構成体を「演出制御部51」と表記する。
【0032】
液晶制御基板52はマイクロコンピュータやビデオプロセッサ等が搭載され、演出制御部51からの表示制御コマンドを受けて、液晶表示装置32による表示動作の制御を行う。
払出制御基板53は、パチンコ遊技機1に接続された遊技球払出装置55による賞球の払い出し制御を行う。
発射制御基板54は、遊技者のパチンコ遊技機1に設けられている発射装置56による遊技球の発射動作の制御を行う。
電源基板58は、外部電源(例えばAC24V)からAC/DC変換、さらにはDC/DC変換を行い、各部に動作電源電圧Vccを供給する。なお電源経路の図示は省略している。
【0033】
まず主制御部50及びその周辺回路について述べる。
主制御部50は、CPU100(以下「主制御CPU100」と表記)を内蔵したマイクロプロセッサ、ROM101(以下「主制御ROM101」と表記)、RAM102(以下「主制御RAM102」と表記)を搭載し、マイクロコンピュータを構成している。
主制御CPU100は制御プログラムに基づいて、遊技の進行に応じた各種演算及び制御処理を実行する。
主制御ROM101は、主制御CPU100による遊技動作の制御プログラムや、遊技動作制御に必要な種々のデータを記憶する。
主制御RAM102は、主制御CPU100が各種演算処理に使用するワークエリアや、各種入出力データや処理データのバッファ領域として用いられる。
なお図示は省略したが、主制御部50は、各部とのインターフェース回路、特別図柄変動表示に係る抽選用乱数を生成する乱数生成回路、各種の時間計数のためのCTC(Counter Timer Circuit)、主制御CPU100に割込み信号を与える割込コントローラ回路なども備えている。
【0034】
主制御部50は、上述のように盤面の遊技領域の各入賞手段(上始動口41、下始動口42a、普通図柄始動口44、第1大入賞口45a、第2大入賞口46a、一般入賞口43)に設けられるセンサの検出信号を受信する構成となっている。
即ち、上始動口センサ71、下始動口センサ72、ゲートセンサ73、一般入賞口センサ74、第1大入賞口センサ75、第2大入賞口センサ76のそれぞれの検出信号が主制御部50に供給される。
なお、これらのセンサ(71〜76)は、入球した遊技球を検出する検出スイッチにより構成されるが、具体的にはフォトスイッチや近接スイッチなどの無接点スイッチや、マイクロスイッチなどの有接点スイッチで構成することができる。
【0035】
主制御部50は、上始動口センサ71、下始動口センサ72、ゲートセンサ73、一般入賞口センサ74、第1大入賞口センサ75、第2大入賞口センサ76のそれぞれの検出信号の受信に応じて、処理を行う。例えば抽選処理、図柄変動制御、賞球払出制御、演出制御コマンド送信制御、外部データ送信処理などを行う。
【0036】
また主制御部50には、下始動口42の可動翼片42bを開閉駆動する普通電動役物ソレノイド77が接続され、主制御部50は遊技進行状況に応じて制御信号を送信して普通電動役物ソレノイド77の駆動動作を実行させ、可動翼片42bの開閉動作を実行させる。
さらに、主制御部50には、第1大入賞口45の開放扉45bを開閉駆動する第1大入賞口ソレノイド78と、第2大入賞口46の開放扉46bを開閉駆動する第2大入賞口ソレノイド79が接続されている。主制御部50は、いわゆる大当たり状況に応じて、第1大入賞口ソレノイド78又は第2大入賞口ソレノイド79を駆動制御して、第1大入賞口45又は第2大入賞口46の開放動作を実行させる。
【0037】
また主制御部50には、図柄表示部33が接続されており、図柄表示部33に制御信号を送信して、各種図柄表示(LEDの消灯/点灯/点滅)を実行させる。これにより図柄表示部33における第1特別図柄表示部80、第2特別図柄表示部81、普通図柄表示部82での表示動作が実行される。
【0038】
また主制御部50には、枠用外部端子基板57が接続される。主制御部50は、遊技進行に関する情報を、枠用外部端子基板57を介して図示しないホールコンピュータに送信可能となっている。遊技進行に関する情報とは、例えば大当り当選情報、賞球数情報、図柄変動表示実行回数情報などの情報である。ホールコンピュータとは、パチンコホールの遊技機を統括的に管理する管理コンピュータであり、遊技機外部に設置されている。
【0039】
また主制御部50には、払出制御基板53が接続されている。払出制御基板53には、発射装置56を制御する発射制御基板54と、遊技球の払い出しを行う遊技球払出装置55が接続されている。
主制御部50は、払出制御基板53に対し、払い出しに関する制御コマンド(賞球数を指定する払出制御コマンド)を送信する。払出制御基板53は当該制御コマンドに応じて遊技球払出装置55を制御し、遊技球の払い出しを実行させる。
また払出制御基板53は、主制御部50に対して、払い出し動作状態に関する情報(払出状態信号)を送信可能となっている。主制御部50側では、この払出状態信号によって、遊技球払出装置55が正常に機能しているか否かを監視する。具体的には、賞球の払い出し動作の際に、玉詰まりや賞球の払い出し不足といった不具合が発生したか否かを監視している。
【0040】
また主制御部50は、特別図柄変動表示に関する情報を含む演出制御コマンドを、演出制御部51に送信する。なお、主制御部50から演出制御部51への演出制御コマンドの送信は一方向通信により実行されるようにしている。これは、外部からの不正行為による不正な信号が演出制御部51を介して主制御部50に入力されることを防止するためである。
【0041】
続いて演出制御部51及びその周辺回路について説明する。
演出制御部51は、CPU200(以下「演出制御CPU200」と表記)を内蔵したマイクロプロセッサ、ROM201(以下「演出制御ROM201」と表記)、RAM202(以下「演出制御RAM202」と表記)を搭載し、マイクロコンピュータを構成している。
演出制御CPU200は演出制御プログラム及び主制御部50から受信した演出制御コマンドに基づいて、各種演出動作のための演算処理や各演出手段の制御を行う。演出手段とは、本実施の形態のパチンコ遊技機1の場合、液晶表示装置32、発光部20w、20b、スピーカ25、及び図示を省略した可動体役物となる。
また演出制御CPU200は各種の状況提示のための制御も行う。具体的には発光部20Z、20H、20Jの発光制御である。
演出制御ROM201は、演出制御CPU200による演出動作の制御プログラムや、演出動作制御に必要な種々のデータを記憶する。
演出制御RAM202は、演出制御CPU200が各種演算処理に使用するワークエリアや、テーブルデータ領域、各種入出力データや処理データのバッファ領域などとして用いられる。
なお図示は省略したが、演出制御部51は、各部とのインターフェース回路、演出のための抽選用乱数を生成する乱数生成回路、各種の時間計数のためのCTC、演出制御CPU200に割込み信号を与える割込コントローラ回路、音響演出のための音源ICなども備えている。
この演出制御部51の主な役割は、主制御部50からの演出制御コマンドの受信、演出制御コマンドに基づく演出の選択決定、液晶表示装置32側への液晶制御コマンドの送信、スピーカ45の音声出力制御、発光部20w、20b、20Z、20H、20J(LED)の発光制御、可動体役物の動作制御などとなる。
【0042】
演出制御部51は、液晶表示装置32側への演出制御コマンドの送信を行うが、その演出制御コマンドは、液晶インターフェース基板66を介して液晶制御基板52に送られる。
【0043】
液晶制御基板52は、液晶表示装置32の表示制御を行う。図示していないが、液晶制御基板52には、VDP(Video Display Processor)、画像ROM、VRAM(Video RAM)、液晶制御CPU、液晶制御ROM、液晶制御RAMを備えている。
VDPは、画像展開処理や画像の描画などの映像出力処理全般の制御を行う。
画像ROMには、VDPが画像展開処理を行う画像データ(演出画像データ)が格納されている。
VRAMは、VDPが展開した画像データを一時的に記憶する画像メモリ領域とされる。
液晶制御CPUは、VDPが表示制御を行うために必要な制御データを出力する。
液晶制御ROMには、液晶制御CPUの表示制御動作手順を記述したプログラムやその表示制御に必要な種々のデータが格納される。
液晶制御RAMは、ワークエリアやバッファメモリとして機能する。
【0044】
液晶制御基板52は、これらの構成により、演出制御基板51からの液晶制御コマンドに基づいて各種の画像データを生成し、液晶表示装置32に出力する。これによって液晶表示装置32において各種の演出画像が表示される。
【0045】
また演出制御部51には枠ドライバ部61、盤ドライバ部62が接続されている。
枠ドライバ部61は、枠側のランプ部63のLEDについて発光駆動を行う。なお、ランプ部63とは、
図1に示したように枠側に設けられている発光部20wを総括的に示したものである。
盤ドライバ部62は、盤側のランプ部64のLEDについて発光駆動を行う。なお、ランプ部64とは、
図2に示したように盤側に設けられている発光部20b、20Z、20H、20Jを総括的に示したものである。
【0046】
また演出制御部51にはモータドライバ部70が接続されている。
モータドライバ部70は可動体役物モータ65を駆動して、盤側に設けられている可動体役物の動作を実行させる。
可動体役物モータ65は例えばステッピングモータが用いられる。
【0047】
本実施の形態の場合、枠ドライバ部61は第1系統の駆動信号出力手段、盤ドライバ部62は第2系統の駆動信号出力手段、モータドライバ部70は第3系統の駆動信号出力手段である。
詳しくは
図4を用いて後述するが、本実施の形態の場合、演出制御部51(演出制御CPU200)は、シリアルデータ送信チャネルch1,ch2,ch3を用いて、発光駆動データやモータ駆動データをシリアルデータとして、枠ドライバ部61、盤ドライバ部62、モータドライバ部70に出力する。
なお例えば盤ドライバ部62の一部が、モータドライバ部70としての動作を行うことで、ランプ部64の各LEDと可動体役物モータ65の駆動を行うようにしてもよい。
【0048】
また演出制御部51は、スピーカ25により所望の音を出力させるべく、音源IC59に対する制御を行う。音源IC59には音データROM69が接続されており、音源IC59は音データROM69から必要な音データ(再生するフレーズの音データ)を取得して音声信号出力を行う。
音源IC59は、複数チャネルのフレーズをミキシングして所定本数(チャネル数)の音声信号を得る。
図1に示したように、本例の場合、スピーカ25は複数設けられるため、音源IC59の出力チャネル数は例えばLch,Rchの2チャネルなど(ステレオ出力)が可能となる。上記のミキシングにより、演出制御部51より再生指示された複数チャネルのフレーズを同時再生可能とされる。
【0049】
音源IC59による出力音声信号はアンプ部67で増幅された後、スピーカ25に対して与えられる。
なお、
図3では図示の都合上、音源IC59の出力チャネル数を1つとしているが、実際にはアンプ部67及びスピーカ25としては、例えばLch、Rchに対応した出力チャネルがそれぞれ設けられ、ステレオによる音再生が可能とされる。
また、この例では音源IC59を演出制御部51とは別体に設けるものとしたが、音源IC59は演出制御部51内に設けることもできる。
【0050】
また演出制御部51には、遊技者が操作可能な操作部60が接続され、操作部60からの操作検出信号を受信可能となっている。この操作部60は、
図1で説明した演出ボタン11,12、十字キー13と、それらの操作検出機構のことである。
演出制御部51は、操作部60からの操作検出信号に応じて、各種演出制御を行うことができる。
【0051】
演出制御部51は、主制御部50から送られてくる演出制御コマンドに基づき、あらかじめ用意された複数種類の演出パターンの中から抽選によりあるいは一意に演出パターンを決定し、必要なタイミングで各種演出手段を制御する。これにより、演出パターンに対応する液晶表示装置32による演出画像の表示、スピーカ25からの音の再生、ランプ部63、64(発光部20w、20b、20Z、20H、20J)におけるLEDの点灯点滅駆動、可動体役物モータ65による可動体役物の動作が実現され、時系列的に種々の演出パターンが展開されていく。これにより「演出シナリオ」が実現される。
【0052】
なお演出制御コマンドは、1バイト長のモード(MODE)と、同じく1バイト長のイベント(EVENT)からなる2バイト構成により機能を定義する。
MODEとEVENTの区別を行うために、MODEのBit7はON、EVENTのBit7をOFFとしている。
これらの情報を有効なものとして送信する場合、モード(MODE)およびイベント(EVENT)各々に対応してストローブ信号が出力される。すなわち、主制御CPU100は、送信すべきコマンドがある場合、演出制御部51にコマンドを送信するためのモード(MODE)情報の設定および出力を行い、この設定から所定時間経過後に1回目のストローブ信号の送信を行う。さらに、このストローブ信号の送信から所定時間経過後にイベント(EVENT)情報の設定および出力を行い、この設定から所定時間経過後に2回目のストローブ信号の送信を行う。
ストローブ信号は主制御CPU100により、演出制御CPU200が確実にコマンドを受信することが可能な所定期間アクティブ状態に制御される。
また演出制御部51(演出制御CPU200)は、ストローブ信号の入力に基づいて割込を発生させてコマンド受信割込処理用の制御プログラムを実行し、この割込処理において演出制御コマンドが取得される。
【0053】
<3.動作の概要>
パチンコ遊技機1の動作の概説について説明する。
[図柄変動表示ゲーム]
パチンコ遊技機1では、所定の始動条件、具体的には、遊技球が上始動口41または下始動口42に入賞したことを条件に、主制御部50において乱数抽選による大当り抽選が行なわれる。この抽選結果に基づき、特別図柄(大当り抽選結果を報知するための識別図柄)を第1特別図柄表示部80または第2特別図柄表示部81に変動表示させて特別図柄変動表示ゲームを開始し、一定時間経過後に、その結果を特別図柄表示部(80又は81)に表示する。
【0054】
本実施の形態では、上始動口41への入賞に基づく大当り抽選と下始動口42への入賞に基づく大当り抽選とは、独立して行われる。このため、上始動口41に関する大当り抽選結果は第1特別図柄表示部80側、下始動口42に関する大当り抽選結果は第2特別図柄表示部81側で導出表示されるようになっている。
なお説明上、第1特別図柄表示部80側の特別図柄変動表示ゲームを「第1特別図柄変動表示ゲーム」、第2特別図柄表示部81側の特別図柄変動表示ゲームを「第2特別図柄変動表示ゲーム」と称する。但し、第1,第2特別図柄を総称して「特別図柄」と表記し、また第1,第2特別図柄変動表示ゲームを「特別図柄変動表示ゲーム」と総称する。
【0055】
特別図柄変動表示ゲームが開始されると、これに伴い、装飾図柄(遊技図柄)を液晶表示装置32に変動表示させる装飾図柄変動表示ゲームが開始され、これに付随して種々の演出が現出される。そして、第1,第2特別図柄表示部(80、81)に抽選結果が表示されると、液晶表示装置32にも装飾図柄によりその結果が表示される。すなわち、この装飾図柄変動表示ゲームでは、特別図柄変動表示ゲームでの抽選結果を反映させた演出表示、つまり大当り抽選結果を反映させた演出が現出される。
【0056】
例えば特別図柄変動表示ゲームの結果が「大当り」である場合、装飾図柄変動表示ゲームの結果も「大当り」を反映させた演出となる。また、特別図柄表示部(80、81)には、大当りを示す特別図柄が所定の表示態様で停止表示され、液晶表示装置32には、「左」「中」「右」の各表示エリアにおいて、当り有効ライン上で装飾図柄が大当り抽選結果を反映させた所定の表示態様(例えば「左」「中」「右」の各表示エリアにおいて、3個の装飾図柄が「7」「7」「7」の表示状態)で停止表示される。
【0057】
この「大当り」となった場合、例えば第1大入賞口ソレノイド78又は第2大入賞口ソレノイド79が駆動され、第1大入賞口45又は第2大入賞口46の所定パターンでの開放動作が実行され、通常遊技状態よりも遊技者に有利な特別遊技状態(大当り遊技)が発生する。この大当り遊技では、大入賞口の開放時間が所定時間経過するまでか、または大入賞口に所定個数の遊技球が入賞するまで開放され、いずれかを満たしたことを条件に大入賞口が所定時間閉鎖される、といったラウンド遊技があらかじめ定められた規定回数、繰り返される。
大当り遊技が開始されると、最初に大当りが開始された旨を報知するオープニング演出が行われ、オープニング演出が終了した後、上記ラウンド遊技が規定ラウンド数、行われる。また、ラウンド遊技中は、各ラウンド対応するラウンド演出が行われる。そして、規定ラウンド数終了後には、大当りが終了される旨を報知するエンディング演出が行われ、これにより大当り遊技が終了する。
【0058】
このように、特別図柄変動表示ゲームと装飾図柄変動表示ゲームとは、その図柄遊技時間(変動表示の開始タイミングから停止表示のタイミング)とがほぼ同じとなり、特別図柄変動表示ゲームの結果を反映したものが装飾図柄変動表示ゲームにおいて表現されることとしているので、この2つの図柄変動表示ゲームを等価的な図柄遊技と捉えることもできる。説明上、上記2つの図柄変動表示ゲームを単に「図柄変動表示ゲーム」と称する場合がある。
【0059】
また、遊技球がゲート44(普通図柄始動口)を通過したことに基づき、主制御部50において乱数抽選による補助当り抽選が行なわれる。この抽選結果に応じて普通図柄表示部82のLEDにより表現される普通図柄を変動表示させて普通図柄変動表示ゲームを開始し、所定時間経過後に、その結果をLEDの点灯と非点灯の特定の組合せにて停止表示する。
【0060】
そして「補助当り」となった場合には、普通電動役物ソレノイド77が作動し、可動翼片42bが開いて下始動口42が開放または拡大されて遊技球が流入し易い状態(始動口開状態)となり、通常遊技状態よりも遊技者に有利な補助遊技状態(以下、「普電開放遊技」と称する)が発生する。この普電開放遊技では、可動翼片42bが所定時間(例えば0.2秒)開放されるか、または所定個数(例えば4個)の遊技球が入賞するまで開放され、その後、所定時間(例えば0.5秒)可動翼片42bが閉まる、といった動作が所定回数繰り返される。なお、普電開放遊技中に遊技球が下始動口42に入賞した場合にも、同様に上記特別図柄変動表示ゲームが行なわれ、これに伴い装飾図柄変動表示ゲームが行なわれる。
【0061】
ここで、特別図柄変動表示ゲーム中、普通図柄変動表示ゲーム中、大当り遊技中、または普電開放遊技などの最中に、さらに上始動口センサ71または下始動口センサ72もしくはゲートセンサ73からの検出信号の入力があり、始動条件が成立した場合には、この検出信号に基づいて当り抽選に利用する遊技情報を取得し、これを、各変動表示ゲームを行わせるための始動権利に係るデータ(保留データ)として、変動表示中にかかわるものを除き、所定の上限値である最大保留記憶数(例えば最大4個)まで保留記憶可能となっている。この保留数を遊技者に明らかにするため、保留数表示部20Hや液晶表示装置32による画面中にアイコン画像として設けた保留表示器を点灯表示させる。
通常は、この保留球の発生順に、各保留球に対する変動表示ゲームが実行される。本実施の形態では、最大保留記憶個数と同数の4個を上限の所定個数として扱い、第1特別図柄、第2特別図柄に関する保留データをそれぞれ4個まで記憶し、特別図柄または普通図柄の変動確定回数として保留する。
【0062】
[遊技状態]
本実施の形態のパチンコ遊技機1では、複数種類の遊技状態を発生可能に構成されている。
まず、本実施形態のパチンコ遊技機1は、主制御部50(CPU100)がその機能部を担う「確率変動(以下、「確変」と称する)機能」を備えている。これには特別図柄に係る確変機能(以下「特別図柄確変機能」と称する)と普通図柄に係る確変機能(以下「普通図柄確変機能」と称する)の2種類がある。
【0063】
特別図柄確変機能は、大当りの抽選確率を所定確率(通常確率)の低確率(例えば399分の1)から高確率(例えば39.9分の1)に変動させて、通常遊技状態よりも有利な「高確率状態」を発生させる機能である。この高確率状態下では、大当り抽選確率が高確率となることから、大当りが生起され易くなる。
普通図柄確変機能は、補助当り抽選確率が所定確率(通常確率)である低確率(例えば256分の1)から高確率(例えば256分の255)に変動させて、通常遊技状態よりも有利な「補助当り確変状態」を発生させる機能である。この補助当り確変状態下では、補助当り抽選確率が高確率状態となることから補助当りが生起され易くなり、普電開放遊技が頻繁に発生して、通常遊技状態よりも単位時間当りの可動翼片42bの作動率が向上する作動率向上状態となる。
【0064】
また、本実施形態のパチンコ遊技機1は、主制御部50がその機能部を担う「変動時間短縮(以下「時短」と称する)機能」を備えている。これには特別図柄に係る時短機能(以下、「特別図柄時短機能」と称する)と普通図柄に係る時短機能(以下、「普通図柄時短機能」と称する)の二種類がある。
【0065】
特別図柄時短機能は、1回の特別図柄変動表示ゲームに要する平均時間(特別図柄が変動を開始してから確定表示される迄の時間。つまり、特別図柄の変動時間)を短縮した「特別図柄時短状態」を発生させる機能である。特別図柄時短状態下では、1回の特別図柄変動表示ゲームにおける特別図柄の平均的な変動時間が短縮され、通常遊技状態よりも単位時間当りの大当り抽選回数が向上する抽選回数向上状態となる。
なお、パチンコ遊技機1では、特別図柄の変動表示時間が保留数の違いにより短縮される場合があるが、この場合は、特別図柄時短状態が発生しているわけではなく、他の制御処理によるものである。
【0066】
普通図柄時短機能は、1回の普通図柄変動表示ゲームに要する平均時間(普通図柄が変動を開始してから確定表示されるまでの時間。つまり、普通図柄の変動時間)を短縮した「普通図柄時短状態」を発生させる機能である。普通図柄時短状態下では、1回の普通図柄変動表示ゲームにおける普通図柄の平均的な変動時間が短縮され、通常遊技状態よりも単位時間当りの補助当り抽選回数が向上する抽選回数向上状態となる。
【0067】
また本実施形態のパチンコ遊技機1は、主制御部50がその機能部を担う「開放延長機能」を備えている。
開放延長機能は、可動翼片42bを開動作させる期間およびその開放回数を延長した「開放延長状態」を発生させる機能である。この開放延長状態は、いわゆる「電チューサポート状態」と称される。開放延長状態下では、可動翼片42bの開動作期間(始動口開状態時間)が、例えば0.2秒から1.7秒に延長され、またその開閉回数が、例えば1回から2回に延長され、通常遊技状態よりも単位時間当りの可動翼片42bの作動率が向上する作動率向上状態となる。
【0068】
以上のような各機能を1または複数種類作動させることにより、遊技機の内部的な遊技状態に変化をもたらすことができる。
ここで本実施の形態では、普通図柄確変機能、普通図柄時短機能、および開放延長機能の作動開始条件は、特別図柄時短機能の作動開始条件と同じ条件としており、各機能が同じ契機にて動作することになる。
【0069】
[当りについて]
本実施の形態のパチンコ遊技機1では、特別図柄変動表示ゲームにて抽選される当りの種類、つまり大当り抽選対象となる当り種別として、「15R低ベース非確変大当り」、「15R低ベース確変α大当り」、「15R低ベース確変β大当り」、「15R高ベース確変大当り」、「2R低ベース確変大当り」、および「小当り」などの複数種類の当りが設けられている。
【0070】
<4.第1の実施の形態のドライバ構成及び提示用LED>
続いて、第1の実施の形態としてのドライバ構成を説明する。上述した演出制御部51のシリアルデータ送信チャネルch1,ch2,ch3により発光駆動データやモータ駆動データがシリアルデータとして供給される枠ドライバ部61(第1系統)、盤ドライバ部62(第2系統)、モータドライバ部70(第3系統)の構成である。
【0071】
図4に演出制御部51に接続される枠ドライバ部61、盤ドライバ部62、モータドライバ部70を示した。
第1系統の駆動信号出力手段である枠ドライバ部61は、n個のLEDドライバ90が、演出制御CPU200のシリアルデータ出力チャネルch1に対して並列に接続されている。
シリアルデータ出力チャネルch1の信号線としては、リセット信号RESETを供給するリセット信号線、クロック信号CLKを供給するクロック線、発光駆動データ(「LED駆動データ」ともいう)としてのシリアルデータDATAを供給するデータ線、イネーブル信号ENABLEを供給するイネーブル信号線が設けられている。これら各信号線は、それぞれ、枠ドライバ部61を構成するn個のLEDドライバ90に対して各信号を並列に供給するように接続されている。
枠ドライバ部61の各LEDドライバ90には、演出制御CPU200がスレーブアドレスとして用いるデバイスIDが設定されている。即ち個々のLEDドライバ90の識別子である。説明上、仮に、図示のように各LEDドライバ90のデバイスID(スレーブアドレス)をw1〜w(n)と表記する。
【0072】
また第2系統の駆動信号出力手段である盤ドライバ部62は、m個のLEDドライバ90が、演出制御CPU200のシリアルデータ出力チャネルch2に対して並列に接続されている。
シリアルデータ出力チャネルch2の信号線もチャネルch1と同様、リセット信号RESETを供給するリセット信号線、クロック信号CLKを供給するクロック線、発光駆動データとしてのシリアルデータDATAを供給するデータ線、イネーブル信号ENABLEを供給するイネーブル信号線が設けられている。これら各信号線は、それぞれ、盤ドライバ部62を構成するm個のLEDドライバ90に対して各信号を並列に供給するように接続されている。
盤ドライバ部62の各LEDドライバ90には、演出制御CPU200がスレーブアドレスとして用いるデバイスID(個々のLEDドライバ90の識別子)が設定されている。説明上、仮に、図示のように各LEDドライバ90のデバイスID(スレーブアドレス)をb1〜b(m)と表記する。
【0073】
また第3系統の駆動信号出力手段であるモータドライバ部70は、p個の
モータドライバ
90Mが、演出制御CPU200のシリアルデータ出力チャネルch3に対して並列に接続されている。
シリアルデータ出力チャネルch3の信号線も同様に、リセット信号RESETを供給するリセット信号線、クロック信号CLKを供給するクロック線、モータ駆動データとしてのシリアルデータDATAを供給するデータ線、イネーブル信号ENABLEを供給するイネーブル信号線が設けられている。これら各信号線は、それぞれ、モータドライバ部70を構成するp個のモータドライバ90Mに対して各信号を並列に供給するように接続されている。
モータドライバ部70の各モータドライバ90Mには、演出制御CPU200がスレーブアドレスとして用いるデバイスID(個々のモータドライバ90Mの識別子)が設定されている。説明上、仮に、図示のように各モータドライバ90MのデバイスID(スレーブアドレス)をmt1〜mt(p)と表記する。
【0074】
枠ドライバ部61及び盤ドライバ部62における各LEDドライバ90としては、例えば24チャネルLEDドライバである「LV5236V(三洋半導体株式会社製)」を用いることができ、24個の電流端子を備える。従って1つのLEDドライバ90によっては、最大24個の系列にLED駆動電流を供給することができる。具体的には例えば8系列のR(赤)LED駆動電流供給、8系列のG(緑)LED駆動電流供給、8系列のB(青)LED駆動電流供給を行い、8個のフルカラーLEDの発光駆動が可能である。なお、ここでは1つの「系列」とは、1つの電流端子に対して接続される1つのLED、又は1つの電流端子に対して直列又は並列で接続される複数個のLEDの群を指している。
枠ドライバ部61におけるLEDドライバ90の数nは、枠側に配置されるLED系列数(発光部20wの系列数)によって決められる。従ってnは1の場合もあるし、2以上の場合もある。枠ドライバ部61は1又は複数のLEDドライバ90を有する。
また盤ドライバ部62におけるLEDドライバ90の数mは、盤側に配置されるLED系列数(発光部20b、20Z、20H、20Jの系列数)によって決められる。従ってmは1の場合もあるし、2以上の場合もある。盤ドライバ部62は1又は複数のLEDドライバ90を有する。
【0075】
図5AにLEDドライバ90の要部の概略構成例を示す。
LEDドライバ90は、シリアルバスインターフェース91、アドレス設定部92、データバッファ/PWMコントローラ93、D/A変換器94、駆動電流源回路95−1〜95−24を備える。
駆動電流源回路95−1〜95−24は、上記の24系列の駆動電流出力を、それぞれ電流端子96−1〜96−24から行う電流源である
【0076】
このLEDドライバ90には、シリアルバスインターフェース91に対し、演出制御CPU200からのイネーブル信号ENABLE、クロック信号CLK、シリアルデータDATAが入力される。シリアルバスインターフェース91は、イネーブル信号ENABLEで規定される期間に、クロック信号CLKのタイミングでシリアルデータDATAを取り込む。シリアルバスインターフェース91は、取り込んだシリアルデータをパラレルデータに変換してデータバッファ/PWMコントローラ93に転送する。
なおシリアルデータの形式については
図33で後述するが、演出制御CPU200はスレーブアドレスを指定してLED駆動データを送信してくる。
データバッファ/PWMコントローラ93は、シリアルバスインターフェース91から転送されたパラレルデータについて、スレーブアドレス確認を行う。パラレルデータに含まれるスレーブアドレスが、アドレス設定部92に設定された自己のスレーブアドレス(w1〜w(n)、b1〜b(m)のいずれか)と一致していることを確認した場合に、該パラレルデータに含まれるLED駆動データを有効なデータとして、指定されたレジスタに格納する。
【0077】
データバッファ/PWMコントローラ93は、各系列のLED駆動データを取り込んだら、そのLED駆動データで示された輝度情報(階調値)に応じた値を、24系列の各駆動制御値としてD/A変換器94に出力する。
D/A変換器94は、輝度情報に応じた値をアナログ信号に変換し、各電流源回路95−1〜95−24への制御信号とする。
【0078】
電流端子96−1〜96−24の全部(又は一部)には24系列のLED120が接続される。なお、図は簡略化して1系列の電流端子96に1つのLED120が接続された状態を示しているが、1系列の電流端子96に、複数のLEDが接続される構成(例えば直列接続)も当然あり得る。
各系列(電流端子96−1〜96−24)では、LED120及び抵抗Rの直列接続に対して電源電圧Vccが印加される。電流源回路95−1〜95−24によって各系列のLED120に電流が流され、発光が行われる。
即ち各電流源回路95−1〜95−24は、D/A変換器94から供給された信号に応じた電流量の駆動電流を、対応する系列のLED120に流すように動作する。
【0079】
このようなLED駆動制御を、1つの系列について具体的にいうと、データバッファ/PWMコントローラ93は、当該系列の階調値に応じたパルスデューティに相当するデジタルデータ列をD/A変換器94に出力し、D/A変換器94は、デジタルデータ列をアナログ信号としてのパルス信号に変換して当該系列の電流源回路95に供給する。電流源回路95はパルス信号のH/Lにより出力制御され、例えば0mAと5mAの電流出力を行う。例えばこのような動作で、結果的に階調値に応じた平均電流値となる駆動電流がLED120に流れることとなる。
なお、本実施の形態では、PWM駆動方式により、電流値が例えば0mAと5mAとされ、時間軸方向で(積分的に)階調制御がされるものとしているが、もちろん階調制御はこれに限らず、実際に電流値を階調に応じて変化させても良いことはいうまでもない。デューティ制御であろうと、レベル制御であろうと、あくまでも単位時間あたりの平均電流値が階調に応じたレベルとされることで適切な階調表現が可能となる。
【0080】
モータドライバ部70における各モータドライバ90Mについても、LEDドライバ90と同様の構成でよい。例えば同じく「LV5236V(三洋半導体株式会社製)」を用いることができる。
モータドライバ部70におけるモータドライバ90Mの数pは、可動体役物のモータ数によって決められる。従ってpは1の場合もあるし、2以上の場合もある。モータドライバ部70は1又は複数のモータドライバ90Mを有する。
【0081】
モータドライバ90Mには、可動体役物を駆動する可動体役物モータ65が接続される。
図5Bに、或るモータドライバ90Mの電流端子96−1〜96−24の全部(又は一部)に可動体役物モータ65としての例えばステッピングモータ121が接続された例を示している。
図5Bは電流端子96−1〜96−24の部分のみを示しているが、モータドライバ90Mの内部構成は
図5Aと同様である。
ここでは4相のステッピングモータ121に対してそれぞれ、電流端子96−1〜96−4、電流端子96−5〜96−8、・・・電流端子96−21〜96−24により駆動電流を供給する構成例を示している。
図5Aに示した構成のドライバは、与えられたコマンド(シリアルデータ)によって指示される電流を電流端子96−1〜96−24から出力する回路であることから、
図5Bのようにステッピングモータやソレノイド等の物理的可動体駆動デバイスに対するモータドライバ90Mとしても使用することができる。
可動体役物の動作は演出シナリオによって細かく設定され、それに応じて演出制御部51は駆動方向や駆動量などを制御するわけであるが、モータドライバ部70におけるモータドライバ90Mを利用して可動体役物を駆動することで、ランプ部64の各発光部(LED20b)とともにシリアルデータによる可動体役物制御が可能となり、制御処理及び構成が効率化できる。
【0082】
なお、1つのLEDドライバ90において、一部の電流端子がLED駆動に用いられ、他の一部の電流端子がステッピングモータやソレノイド等の駆動に用いられるという手法を採っても良い。
【0083】
以上のように、LEDドライバ90は、演出制御CPU200から受信したシリアルデータDATAに応じて、指定された輝度で各LED120が発光されるように駆動することとなる。またモータドライバ90Mは、シリアルデータDATAに応じて、ステッピングモータ121を駆動する。
そして第1系統、第2系統、第3系統の駆動信号出力手段(枠ドライバ部61、盤ドライバ部62、モータドライバ部70)には、それぞれが1又は複数の演出手段に駆動信号を出力する複数のLEDドライバ90又はモータドライバ90Mが含まれ、1つの系統内の各LEDドライバ90やモータドライバ90Mには、演出制御部51からのシリアルデータが、並列に送信される構成とされている。そして各LEDドライバ90やモータドライバ90Mは、自己のID(スレーブアドレス)が含まれる駆動データ(シリアルデータ)を取得する。
後述するが本実施の形態では、演出制御部51(演出制御CPU200)は、発光制御に関しては、一送信単位のシリアルデータを、第1系統、第2系統の駆動信号出力手段(枠ドライバ部61、盤ドライバ部62)に対して略同時的に出力し、該送信単位のシリアルデータについての、枠ドライバ部61、盤ドライバ部62に対する送信完了後に、次の一送信単位のシリアルデータを、枠ドライバ部61、盤ドライバ部62に対して略同時的に出力する送信処理を行うようにしている。
【0084】
ところで本実施の形態では、盤ドライバ部62は演出用の発光部20bに対するLED発光駆動に加えて状況提示用の発光部20Z、20H、20Jに対するLED発光駆動も行うようにしている。
図6に状況提示用発光部20Z、20H、20Jの発光動作例を示す。
【0085】
図6Aは変動図柄識別用発光部20Zの発光動作例である。変動図柄識別用発光部20Zとしては、3つの発光部20Z−1、20Z−2、20Z−3が設けられる。発光部20Z−1、20Z−2、20Z−3はそれぞれ、第1特別図柄、第2特別図柄、普通図柄のそれぞれに対応して変動状態を表す発光動作を行う。
例えばそれぞれ、「点滅」が変動中、「点灯」が停止中(当たり)、「消灯」が停止中(外れ)を識別する発光態様とされる。
従って、第1特別図柄、第2特別図柄、普通図柄の変動がいずれも行われていないときは、発光部20Z−1、20Z−2、20Z−3はいずれも消灯状態である。
第1特別図柄の変動が開始されると、発光部20Z−1の点滅が開始され、変動の結果が当たりとなった場合、発光部20Z−1が点灯状態となる。
また第2特別図柄の変動が開始されると、発光部20Z−2の点滅が開始され、変動の結果が当たりとなった場合、発光部20Z−2が点灯状態となる。
また普通図柄の変動が開始されると、発光部20Z−3の点滅が開始され、変動の結果が当たりとなった場合、発光部20Z−3が点灯状態となる。
【0086】
図6Bは保留数表示別用発光部20Hの発光動作例である。保留数表示用発光部20Hとしては、8つの発光部20H−1〜20H−8が設けられる。
発光部20H−1〜20H−4の4つで第1特別図柄変動表示ゲームについての保留数(最大4個)を表示する。即ち発光部20H−1〜20H−4のうち、保留数に応じた個数の発光部20Hが点灯される。
発光部20H−5〜20H−8の4つで第2特別図柄変動表示ゲームについての保留数(最大4個)を表示する。即ち発光部20H−5〜20H−8のうち、保留数に応じた個数の発光部20Hが点灯される。
【0087】
図6Cは保留数表示別用発光部20Hとしての別の例である。この例では、4つの発光部20H−11〜20H−14が設けられ、発光部20H−11,20H−12の2つで第1特別図柄変動表示ゲームについての保留数の表示を行い、発光部20H−13,20H−14の2つで第2特別図柄変動表示ゲームについての保留数の表示を行う。
2つの発光部20Hによる“0”〜“4”の保留数表示は例えば次のように行う。
・0個・・・消灯:消灯
・1個・・・点灯:消灯
・2個・・・点灯:点灯
・3個・・・点滅:点灯
・4個・・・点滅:点滅
【0088】
図6Dは遊技状態報知用発光部20Jの発光動作例である。遊技状態報知用発光部20Jとしては、例えば「大当たり中」「確変中」「時短中」という遊技状態に応じて3つの発光部20J−1、20J−2、20J−3が設けられる。
大当たり中は発光部20J−1が点灯する。
確変中は発光部20J−2が点灯する。
時短中は発光部20J−2が点灯する。
これは一例であり、他に報知すべき遊技状態を設ける場合、搭載する遊技状態報知用発光部20Jの数を適宜変更させればよい。
また当たりの種類が複数ある場合は、それぞれの当たり種別に対応するように複数の遊技状態報知用発光部20Jを設けても良い。
【0089】
これらの状況提示用発光部20Z、20H、20Jは、例えば盤ドライバ部62内のLEDドライバ90によって発光駆動される。
図7に、スレーブアドレスが「b2」のLEDドライバ90に図柄識別用発光部20Zと保留数表示用発光部20Hが接続されている例を示す。なおこのLEDドライバ90には演出用発光部20bも接続されている。
【0090】
このLEDドライバ90の電流端子96−1〜96−8には、保留数表示用発光部20Hとしての上記の発光部20H−1〜20H−8に相当する8個のLED120が、1個づつ接続されている。
電流端子96−1には例えば発光部20H−1として機能するLED120と抵抗Rが直列接続され、抵抗Rの他端が第1電源電圧VCC1に接続される。
電流端子96−2には例えば発光部20H−2として機能するLED120と抵抗Rが直列接続され、抵抗Rの他端が第1電源電圧VCC1に接続される。
以下同様に電流端子96−3〜93−8のそれぞれに、発光部20H−3〜20H−8として機能する1つのLED120と抵抗Rが直列接続され、第1電源電圧VCC1に接続される。
【0091】
また、このLEDドライバ90の電流端子96−9〜96−11には、図柄識別用発光部20Zとしての上記の発光部20Z−1〜20Z−3に相当する3個のLED120が、1個づつ接続されている。
電流端子96−9には例えば発光部20Z−1として機能するLED120と抵抗Rが直列接続され、抵抗Rの他端が第1電源電圧VCC1に接続される。
電流端子96−10には例えば発光部20Z−2として機能するLED120と抵抗Rが直列接続され、抵抗Rの他端が第1電源電圧VCC1に接続される。
電流端子96−11には例えば発光部20Z−3として機能するLED120と抵抗Rが直列接続され、抵抗Rの他端が第1電源電圧VCC1に接続される。
【0092】
また、このLEDドライバ90の電流端子96−12〜96−20には、演出用発光部20bとして機能するLED120が接続されている。
例えば電流端子96−12〜96−17にはそれぞれ、3つのLED120と抵抗Rが直列接続され、抵抗Rの他端が第2電源電圧VCC2に接続される。
電流端子96−18〜96−20にはそれぞれ、2つのLED120と抵抗Rが直列接続され、抵抗Rの他端が第2電源電圧VCC2に接続される。
この例では、電流端子96−21〜96−24は未使用とされている。
【0093】
なおLEDドライバ90の動作電源電圧としては、第1電源電圧VCC1(例えば5V)が用いられる。
このようにスレーブアドレス「b2」のLEDドライバ90には、状況提示用発光部(20Z、20H)と演出用発光部20bが混在して接続されている。
このLEDドライバ90に対して演出制御部51から送信されてくるシリアルデータDATAには、発光演出のための発光駆動データに加えて、図柄識別のための発光駆動データ、及び保留数表示のための発光駆動データが含まれている。これにより当該LEDドライバ90は、発光演出のための発光駆動データに基づいて電流端子96−12〜96−20に接続されたLED120を発光駆動し、また図柄識別のための発光駆動データに基づいて電流端子96−9〜96−11に接続されたLED120を発光駆動し、また保留数表示のための発光駆動データに基づいて電流端子96−1〜96−8に接続されたLED120を発光駆動する。
【0094】
ここで、LEDドライバ90は比較的低電圧(例えば5V)で駆動されるため、第1電源電圧VCC1が用意される。一方で演出用発光部20bについては第2電源電圧(12V)を用いて発光駆動電流を流すものとしているが、これは、演出用発光部20bは装飾上の要請から複数LEDの直列接続が多くなり、駆動電流の電源としてある程度高い電圧(例えば12V)が必要となるためである。
このため演出用発光部20bを駆動するLEDドライバ90の周辺回路としては第1,第2電源電圧VCC1、VCC2の電源ラインが用意される。
【0095】
ここで図柄識別用発光部20Z、保留数表示用発光部20Hについて考えると、1つの提示のための発光は1個のLED120で実現できる。上記のように電流端子96−1〜96−11には、それぞれ1つのLEDを接続すれば、それぞれが保留数表示用発光部20Hとしての発光部20H−1〜20H−8、及び図柄識別用発光部20Zとしての発光部20Z−1〜20Z−3として十分機能できる。
すると図柄識別用発光部20Z、保留数表示用発光部20Hの発光駆動のための電源として12Vは必要ないが、仮に12Vで駆動すると抵抗Rとして大きな抵抗値のものが必要になり、熱を持ってしまう。
この熱の対策として別の電源(第3電源電圧)を用意することが考えられるが、するとLEDドライバ90の周辺回路が煩雑化する。
【0096】
そこで本実施の形態では、LEDドライバ90が電源として用いている第1電源電圧VCC1を、図柄識別用発光部20Z、保留数表示用発光部20Hの発光駆動のための電源として用いるようにしている。
このようにすることで、図柄識別用発光部20Z、保留数表示用発光部20HのLED120に接続する抵抗Rとして大きな抵抗値のものを配する必要はなく、熱対策としても適切となる。
さらに、第3の電源電圧を導入するものではないため、LEDドライバ90の周辺回路の煩雑化を招かない。
【0097】
このスレーブアドレス「b2」のLEDドライバ90は、演出用発光部20bに加えて、図柄識別用発光部20Z、保留数表示用発光部20Hを駆動するものとしたが、例えばスレーブアドレス「b3」のLEDドライバ90は演出用発光部20bに加えて遊技状態報知用発光部20Jを駆動するものとする。
図示は省略するが、当該LEDドライバ90については、電流端子96−1〜96−3に、遊技状態報知用発光部20Jとしての上記の発光部20J−1〜20J−3に相当する3個のLED120が、1個づつ接続されている。
即ち電流端子96−1には例えば発光部20J−1として機能するLED120と抵抗Rが直列接続され、抵抗Rの他端が第1電源電圧VCC1に接続される。
電流端子96−2には例えば発光部20J−2として機能するLED120と抵抗Rが直列接続され、抵抗Rの他端が第1電源電圧VCC1に接続される。
電流端子96−31には例えば発光部20J−3として機能するLED120と抵抗Rが直列接続され、抵抗Rの他端が第1電源電圧VCC1に接続される。
また、このスレーブアドレス「b3」のLEDドライバ90の電流端子96−4〜96−24の全部又は一部には、それぞれ演出用発光部20bとして機能する複数のLED120と抵抗Rが直列接続され、第2電源電圧VCC2により電流駆動が行われるようにされる。
このようにすることで、スレーブアドレス「b3」のLEDドライバ90についても、熱対策と周辺回路の煩雑化防止が図られている。
【0098】
このスレーブアドレス「b3」のLEDドライバ90に対して演出制御部51から送信されてくるシリアルデータDATAには、発光演出のための発光駆動データに加えて、遊技状態報知のための発光駆動データが含まれるようにしている。これにより当該LEDドライバ90は、発光演出のための発光駆動データに基づいて電流端子96−4以降に接続されたLED120を発光駆動し、また遊技状態報知のための発光駆動データに基づいて電流端子96−1〜96−3に接続されたLED120を発光駆動する。
【0099】
<5.主制御部の処理>
以下、本実施の形態の制御処理につき説明する。まずここでは主制御部(主制御基板)50によるメイン処理について述べる。
図8は、主制御部50のメイン処理を示すフローチャートである。メイン処理が開始されるのは、停電状態からの復旧時のように初期化スイッチ(図示せず)が操作されることなく電源がON状態になる場合と、初期化スイッチがON操作されて電源がON状態になる場合とがある。いずれの場合でも、パチンコ遊技機1に電源が投入されると、電源基板58によって各制御基板に電圧が供給される。この場合に主制御部50(主制御CPU100)は
図8に示すメイン処理を開始する。
【0100】
この主制御側メイン処理において、主制御CPU100はステップS11で、まず遊技動作開始前における必要な初期設定処理を実行する。例えば最初に自らを割込み禁止状態に設定すると共に、所定の割込みモード(割込みモード2)に設定し、またマイクロコンピュータの各部を含めてCPU内部のレジスタ値を初期設定する。
次に主制御CPU100はステップS12で、図示してない入力ポートを介して入力されるRAMクリアスイッチの出力信号であるRAMクリア信号の状態(ON、OFF)を判定する。RAMクリア信号とは、RAMの全領域を初期設定するか否かを決定する信号である。RAMクリア信号としては通常、パチンコ店の店員が操作する初期化スイッチのON/OFF状態に対応した値を有している。
【0101】
RAMクリア信号がON状態であった場合、主制御CPU100は処理をステップS12からS16に進め、RAMの全領域のゼロクリアを行う。したがって、電源遮断時にセットされたバックアップフラグの値は、他のチェックサム値などと共にゼロとなる。
続いてステップS17で主制御CPU100は、RAM領域がゼロクリアされたことを報知するための「RAMクリア表示コマンド」を初期化コマンドとして各制御基板に送信する。そしてステップS18で、RAMクリア報知タイマに、RAMクリアされた旨を報知するための時間として、例えば30秒を格納する。
【0102】
次に主制御CPU100はステップS19で、タイマ割込み動作を起動する割込み信号を出力するCTCを初期設定して、CPUを割込み許可状態に設定する。
その後はステップS20、S21、S22の処理として、割込みが発生するまで割込禁止状態と割込許可状態とを繰り返すとともに、その間に、各種乱数更新処理を実行する。このステップS21の各種乱数更新処理では、特別図柄変動表示や普通図柄変動表示に使用される各種乱数の初期値(スタート値)変更のために使用する乱数や、変動パターンの選択に利用される変動パターン用乱数を更新する。
なお、特別図柄変動表示や普通図柄変動表示に使用される各種乱数とは、例えばインクリメント処理によって所定数値範囲を循環している大当り抽選に係る乱数(図柄抽選に利用される特別図柄判定用乱数)や、補助当り抽選に係る乱数(補助当りの当落抽選に利用される補助当り判定用乱数)などである。また初期値変更のために使用する乱数とは、特別図柄判定用初期値乱数、補助当り判定用初期値乱数などである。
【0103】
主制御RAM102には大当り抽選に係る図柄抽選、補助当り抽選、または変動パターン抽選などに利用される各種の乱数カウンタとして、特別図柄判定用乱数カウンタ初期値の生成用カウンタ、特別図柄判定用乱数カウンタ、補助当り判定用乱数カウンタ初期値の生成用カウンタ、補助当り判定用乱数カウンタ、変動パターン用乱数1カウンタ、変動パターン用乱数2カウンタなどが設けられている。これらのカウンタは、ソフトウェア的に乱数を生成する乱数生成手段としての役割を果たす。
ステップS21の各種乱数更新処理では、上述の特別図柄判定用乱数カウンタや補助当り判定用乱数カウンタの初期値を生成する2つの初期値生成用カウンタ、変動パターン用乱数1カウンタ、変動パターン用乱数2カウンタなどを更新して、上記各種のソフト乱数を生成する。例えば変動パターン用乱数1カウンタとして取り得る数値範囲が0〜238とすると、主制御RAM102の変動パターン用乱数1の値を生成するためのカウント値記憶領域から値を取得し、取得した値に1を加算してから元のカウント値記憶領域に格納する。このとき、取得した値に1を加算した結果が239であれば0を元の乱数カウンタ記憶領域に格納する。他の初期値生成用乱数カウンタも同様に更新する。主制御CPU100は、間欠的に実行されるタイマ割込処理を行っている間を除いて、各種乱数更新処理を繰り返し実行するようになっている。
【0104】
以上はステップS12でRAMクリアスイッチONと判定された場合について述べた。RAMクリアスイッチOFFの場合を続いて説明する。例えば停電状態からの復旧時には、初期化スイッチ(RAMクリア信号)はOFF状態である。このような場合、主制御CPU100はステップS12からS13に処理を進め、バックアップフラグ値を判定する。なお、バックアップフラグは、電源遮断時にON状態に設定され、電源復帰後の最初のタイマ割込み処理でOFF状態にリセットされるよう構成されている。
したがって、電源投入時や停電状態からの復旧時である場合には、通常では、バックアップフラグがON状態のはずである。ただし、何らかの理由で電源遮断までに所定の処理が完了しなかったような場合には、バックアップフラグはリセット(OFF)状態になる。そこで、バックアップフラグがOFF状態である場合には、主制御CPU100は処理をステップS13からS16に進め、遊技機の動作を初期状態に戻す。
【0105】
一方、バックアップフラグがON状態であれば、主制御CPU100は処理をステップS13からS14に進め、チェックサム値を算出するためのチェックサム演算を実行する。ここで、チェックサム演算とは、主制御RAM102のワーク領域を対象とする8ビット加算演算である。
そして、チェックサム値が算出されたら、この演算結果を、主制御RAM102のSUM番地の記憶値と比較をする。このSUM番地には、電源遮断時に、同じチェックサム演算によるチェックサム値が記憶されている。そして、記憶された演算結果は、主制御RAM102の他のデータと共に、バックアップ電源によって維持されている。したがって、本来は、ステップS14の判定によって両者が一致するはずである。
しかし、電源遮断時にチェックサム演算が実行できなかった場合や、実行できても、その後、メイン処理のチェックサム演算の実行時までの間に、ワーク領域のデータが破損している場合もある。このような場合にはステップS14の判定結果は不一致となる。
判定結果の不一致によりデータ破損が検出された場合には、主制御CPU100はステップS14からS16の処理に進んでRAMクリア処理を実行し、遊技機の動作状態を初期状態に戻す。
【0106】
ステップS14でのチェックサム演算によるチェックサム値と、SUM番地の記憶値とが一致する場合には、主制御CPU100はステップS15に進み、バックアップデータに基づき、電源遮断前におけるスタックポインタを復帰し、電源遮断時の処理状態から遊技を開始するために必要な遊技復旧処理を実行する。
そしてステップS15の遊技復旧処理を終えると、ステップS19の処理に進み、CTCを初期設定してCPUを割込み許可状態に設定し、その後は、割込みが発生するまで割込禁止状態と割込許可状態とを繰り返すとともに、その間に、上述した各種乱数更新処理を実行する(ステップS20〜S22)。
【0107】
次に主制御CPU100のタイマ割込処理について説明する。
図9に主制御CPU100のタイマ割込処理を示している。この主制御タイマ割込処理は、CTCからの一定時間(4ms程度)ごとの割込みで起動され、上述したメイン処理実行中に割り込んで実行される。
【0108】
タイマ割込みが生じると、主制御CPU100はレジスタの内容をスタック領域に退避させた後、まず
図9のステップS51として電源基板58からの電源の供給状態を監視する電源異常チェック処理を行う。この電源異常チェック処理では、主に、電源が正常に供給されているかを監視する。ここでは、例えば電断が生じるなどの異常が発生した場合、電源復帰時に支障なく遊技を復帰できるように、電断時における所定の遊技情報をRAMに格納するバックアップ処理などが行われる。
【0109】
次にステップS52で、主制御CPU100は遊技動作制御に用いられるタイマを管理するタイマ管理処理を行う。パチンコ遊技機1の遊技動作制御に用いる各種タイマ(たとえば特別図柄役物動作タイマなど)のタイマ値は、この処理で管理(更新)される。
【0110】
ステップS53では、主制御CPU100は入力管理処理を行う。この入力管理処理では、パチンコ遊技機1に設けられた各種センサによる検出情報を入賞カウンタに格納する。ここでの各種センサによる検出情報とは、例えば上始動口センサ71、下始動口センサ72、ゲートセンサ(普通図柄始動口センサ)73、第1大入賞口センサ75、第2大入賞口センサ76、一般入賞口センサ74などの入賞検出スイッチから出力されるスイッチ信号のON/OFF情報(入賞検出情報)である。
このステップS53の処理により、各入賞口において入賞を検出(入賞が発生)したか否かが割込みごとに監視される。また上記「入賞カウンタ」とは、各々の入賞口ごとに対応して設けられ、入賞した遊技球数(入賞球数)を計数するカウンタである。本実施の形態では、主制御RAM102の所定領域に、上始動口41用の上始動口入賞カウンタ、下始動口42a用の下始動口入賞カウンタ、ゲート44用の普通図柄始動口入賞カウンタ、第1大入賞口45a用の第1大入賞口入賞カウンタ、第2大入賞口46a用の第2大入賞口入賞カウンタ、一般入賞口43用の一般入賞口用の入賞カウンタなどが設けられている。
またこの入力管理処理では、入賞検出スイッチからの検出情報が入賞を許容すべき期間中に入賞したか否かに基づいて、不正入賞があったか否かも監視される。たとえば大当り遊技中でないにもかかわらず第1、第2大入賞口センサ75,76が遊技球を検出したような場合は、これを不正入賞とみなして入賞検出情報を無効化し、その無効化した旨を外部に報知するべく後述のステップS55のエラー管理処理において所定のエラー処理が行われるようになっている。
【0111】
ステップS54では、主制御CPU100は各変動表示に係る乱数を定期的に更新するタイマ割込内乱数管理処理を行う。この定期乱数更新処理では、特別図柄判定用乱数や補助当り判定用乱数の更新(割込み毎に+1加算)と、乱数カウンタが一周するごとに、乱数カウンタのスタート値を変更する処理を行う。例えば特別図柄判定用乱数カウンタの値を所定範囲で更新(+1加算)し、特別図柄判定用乱数カウンタが1周するごとに、特別図柄判定用乱数カウンタ初期値の生成用カウンタの値を読み出し、その生成用カウンタの値を特別図柄判定用乱数カウンタに格納する。これにより、特別図柄判定用乱数カウンタのスタート値が上記の生成用カウンタの値に応じて変更されるので、更新周期は一定でありながらも特別図柄判定用乱数カウンタのカウント値はランダムになる。
【0112】
ステップS55では、主制御CPU100は、遊技動作状態の異常の有無を監視するエラー管理処理を行う。このエラー管理処理では、遊技動作状態の異常として、例えば基板間に断線が生じたか否かの監視や、不正入賞があったか否かの監視などをして、これらの動作異常(エラー)が発生した場合には、そのエラーに対応した所定のエラー処理を行う。
エラー処理としては、例えば所定の遊技動作(例えば遊技球の払い出し動作や遊技球の発射動作など)の進行を停止させたり、エラー報知用コマンドを演出制御部51に送信して、演出手段によりエラーが発生した旨を報知させたりする。
【0113】
ステップS56では、主制御CPU100は賞球管理処理を行う。この賞球管理処理では、ステップS53の入力管理処理で格納したデータを把握して、上述の入賞カウンタの確認を行い、入賞があった場合は、賞球数を指定する払出制御コマンドを払出制御基板53に送信する。
この払出制御コマンドを受信した払出制御基板53は、遊技球払出装置55を制御し、指定された賞球数の払い出し動作を行わせる。これにより、それぞれの入賞口に対応した賞球数が払い出されるようになっている。入賞口に対応した賞球数とは、入賞口別に設定された入賞球1個当りの所定の賞球数×入賞カウンタの値分の賞球数である。
【0114】
ステップS57では主制御CPU100は、普通図柄管理処理を行う。この普通図柄管理処理では、普通図柄変動表示における補助当り抽選を行い、その抽選結果に基づいて、普通図柄の変動パターンや普通図柄の停止表示態様を決定したり、所定時間毎に点滅を繰り返す普通図柄のデータ(普通図柄変動中のLED点滅表示用データ)を作成したり、普通図柄が変動中でなければ、停止表示用のデータ(普通図柄停止表示中のLED点滅表示用データ)を作成したりする。
【0115】
ステップS58では、主制御CPU100は、普通電動役物管理処理を行う。この普通電動役物管理処理では、ステップS57の普通図柄管理処理の補助当り抽選の抽選結果に基づき、普通電動役物ソレノイド77に対するソレノイド制御用の励磁信号の生成およびそのデータ(ソレノイド制御データ)の設定を行う。ここで設定されたデータに基づき、後述のステップS64のソレノイド管理処理にて、励磁信号が普通電動役物ソレノイド77に対して出力され、これにより可動翼片42bの動作が制御される。
ステップS59では、主制御CPU100は、特別図柄管理処理を行う。この特別図柄管理処理では、主に、特別図柄変動表示における大当り抽選を行い、その抽選結果に基づいて、特別図柄の変動パターン(先読み変動パターン、変動開始時の変動パターン)や特別停止図柄などを決定する。
ステップS60では、主制御CPU100は特別電動役物管理処理を行う。この特別電動役物管理処理では、主に、大当り抽選結果が「大当り」または「小当り」であった場合、その当りに対応した当り遊技を実行制御するために必要な設定処理を行う。
【0116】
ステップS61では、主制御CPU100は右打ち報知情報管理処理を行う。この右打ち報知情報管理処理では、例えば第1、第2大入賞口45a,46aが開放される機会や可動翼片42bが駆動される電サポ状態など、右打ちが有利な状況において右打ち指示報知を行う「発射位置誘導演出(右打ち報知演出)」を現出させるための処理を行う。右打ち指示とは、具体的には、右遊技領域3cを狙う旨を有技者に指示する演出動作であり、例えば
液晶表示装置32に「右打ち」を遊技者に促す画像を表示させたり、スピーカ25から右打ちメッセージ音声を発生させる。
右打ち報知演出が行われる場合、この右打ち報知情報管理処理において、演出制御コマンドとして、右打ち報知演出の実行指示する「右打ち指示コマンド」が演出制御部51に送信され、このコマンドを受けて、演出制御部51が、画像や音声による右打ち報知の実行制御を行う。
ステップS62では、主制御CPU100は、LED管理処理を行う。このLED管理処理は、図柄表示部33に対して普通図柄表示や第1,第2特別図柄表示のための表示データを出力する処理である。この処理により、普通図柄や特別図柄の変動表示および停止表示が行われる。なお、ステップS57の普通図柄管理処理で作成された普通図柄の表示データや、ステップS59の特別図柄管理処理中の特別図柄表示データ更新処理で作成される特別図柄の表示データは、このLED管理処理で出力される。
【0117】
ステップS63では、主制御CPU100は、外部端子管理処理を行う。この外部端子管理処理では、枠用外部端子基板57を通して、パチンコ遊技機1の動作状態情報をホールコンピュータや島ランプなどの外部装置に対して出力する。動作状態情報としては、大当り遊技が発生した旨(条件装置が作動した旨)、小当り遊技が発生した旨、図柄変動表示が実行された旨(特別図柄変動表示ゲームの開始または終了した旨)、入賞情報(始動口や大入賞口に入賞した旨や賞球数情報)などの情報が含まれる。
ステップS64では、主制御CPU100は、ソレノイド管理処理を行う。このソレノイド管理処理では、ステップS58の普通電動役物管理処理で作成されたソレノイド制御データに基づく普通電動役物ソレノイド77に対する励磁信号の出力処理や、ステップS60の特別電動役物管理処理で作成されたソレノイド制御データに基づく第1,第2大入賞口ソレノイド78,79に対する励磁信号の出力処理を行う。これにより、可動翼片42bや開放扉45b、46bが所定のパターンで動作し、下始動口42aや大入賞口45a、46bが開閉される。
【0118】
主制御CPU100は、以上のステップS51〜ステップS64の処理を終えた後、退避していたレジスタの内容を復帰させて、ステップS65で割込み許可状態に設定する。これにより、タイマ割込処理を終了して、割込み前の
図6の主制御側メイン処理に戻り、次のタイマ割込みが発生するまで主制御メイン処理を行う。
【0119】
次に、
図9のステップS59の特別図柄管理処理について説明する。
図10は、ステップS59の特別図柄管理処理の詳細を示すフローチャートである。
図10において、主制御CPU100はステップS71で、まず第1特別図柄側(上始動口41側)に関する第1特図始動口チェック処理を行い、次いでステップS72で第2特別図柄側(下始動口42a側)に関する第2特図始動口チェック処理を行う。
【0120】
次に主制御CPU100はステップS73で、小当り中フラグの状態を判定する。この小当り中フラグとは、小当り遊技中であるか否かを指定するためのフラグで、当該フラグがON状態である場合には小当り遊技中である旨を示し、当該フラグがOFF状態である場合には小当り遊技中ではない旨を示す。
【0121】
小当り中フラグがOFF状態の場合、主制御CPU100はステップS74で、条件装置作動フラグの状態を判定する。この条件装置作動フラグとは、大当り遊技中であるか否かを指定するフラグで、当該フラグがON状態である場合には大当り遊技中である旨を示し、当該フラグがOFF状態である場合には大当り遊技中ではない旨を示す。
【0122】
条件装置作動フラグがOFF状態の場合、主制御CPU100はステップS75で、特別図柄の挙動を示す処理状態に応じた処理を行うために処理を分岐する。
すなわち、小当り遊技中でもなく大当り遊技中でもないとしてステップS75に進んだ場合、特別図柄が変動可能状態下に置かれ、これにより、特別図柄動作ステータスが「待機中」「変動中」「確認中」のいずれの状態であるかに応じて、それぞれに対応する特別図柄の変動表示動作に関する処理が行われる。
一方、小当り遊技中、または大当り遊技中である場合には、特別図柄が変動可能状態下には置かれないため、特別図柄の変動表示動作に関する処理を行わずにステップS79に進む。
ここで、上述の「待機中」とは、特別図柄の挙動が次回変動のための待機状態である旨を示し、「変動中」とは特別図柄の挙動が変動(変動表示)中である旨を示し、「確認中」とは特別図柄の変動が終了して停止(確定)表示中(特別図柄確認時間中)である旨を示す。
【0123】
具体的には、特別図柄動作ステータスが「待機中」である場合には、ステップS75からS76に進み、特別図柄変動開始処理を、「変動中」である場合には、ステップS75からS77に進み特別図柄変動中処理を、「確認中」である場合には、ステップS75からS78に進み特別図柄確認時間中処理を行う。これらの処理により、特別図柄変動表示ゲームとして、特別図柄の変動開始および変動停止を一セットする変動表示動作が実現される。
【0124】
主制御CPU100はステップS79では、特別図柄表示データ更新処理を行う。この特別図柄表示データ更新処理では、特別図柄が変動中であるか否かを判定し、変動中であれば、所定時間(たとえば0.5秒)毎に点滅を繰り返す特別図柄のデータを作成し、特別図柄が変動中でなければ、停止表示用のデータを作成する。ここで作成した特別図柄の表示データは、
図9のLED管理処理(ステップS62)で出力される。
【0125】
続いて、上記したステップS71の第1特図始動口チェック処理について説明する。
図11は、ステップS71の第1特図始動口チェック処理の詳細を示すフローチャートである。第1特図始動口チェック処理は、所定の始動条件の成立に基づいて実行される入賞時処理としての役割を果たし、第1特別図柄変動表示ゲームに係る上始動口41についての入賞チェック処理が行われる。
【0126】
主制御CPU100は、まずステップS71で上始動口41において入賞(入賞球)を検出したか否かを判定する。上始動口41の入賞を検出した場合、ステップS82で第1特別図柄の保留球数が4以上となる場合であるか否か判定する。すなわち、第1特別図柄の保留球数(以下「第1特図保留球」と称する)が最大保留記憶数(ここでは上限4個)未満であるか否かを判定する。
なお、ステップS81で上始動口41の入賞を検出しなかった場合、何もしないでこの第1特図始動口チェック処理を抜ける。
【0127】
第1特図保留球数が4以上である場合には、ステップS95に進む。一方、保留球数が4未満の場合はステップS83で保留球数を1加算(+1)する。
次にステップS84で、第1特図保留球に基づく、第1特別図柄変動表示ゲームに利用される各種乱数(大当り判定用乱数、特別図柄判定用乱数、変動パターン用乱数1、および変動パターン用乱数2)の乱数カウンタの現在値を取得して、それぞれ主制御RAM102の保留記憶エリアに格納する。この保留記憶エリアには、取得された上述の各種乱数値(図柄遊技に係る所定の遊技情報)が保留データとして、第1特別図柄の変動表示動作に供されるまで所定の記憶数を上限として始動条件の成立順(入賞順。ただし、本実施形態では、最大保留記憶数である第1特図保留球数が4未満の場合)に保留記憶される。
なお主制御RAM102の保留記憶エリアには、第1特別図柄と第2特別図柄とに対応した保留記憶エリアが設けられており、それぞれ保留球数分の保留データを格納可能となっている。
【0128】
特別図柄判定用乱数、変動パターン用乱数1、および変動パターン用乱数2は、それぞれに対応した乱数カウンタから抽出される。これら乱数値は、主制御RAM102に設けられた各々に対応したカウント値記憶領域において、間欠的に生じる割込み処理と割込み処理の間に実行されるメイン処理において乱数的に更新されているので、その値がそのまま取得される。他方、大当り判定用乱数値は、ハードウェア的に乱数を生成する乱数生成回路(大当り判定用乱数カウンタ:図示せず)から抽出される。この乱数生成回路は、大当り判定用乱数値をカウントしているカウンタである。乱数生成回路は、上始動口センサ71または下始動口センサ72から遊技球の検出信号が入力されると、このタイミングにおけるカウント値をラッチし、ラッチした値を乱数生成回路に内蔵されたレジスタに記憶し、当該カウント値がマイクロコンピュータに入力されるようになっている。主制御CPU100は、このカウント値を大当り判定用乱数値として、主制御RAM102の保留記憶エリアと別個に設けられた所定の記憶領域(特別電動役物作動判定用乱数ラッチバッファ)に格納し、必要なタイミングで特別電動役物作動判定用乱数ラッチバッファから格納された大当り判定用乱数値を読み出し利用する。
本実施形態では、入賞時における大当り判定用乱数値を特別電動役物作動判定用乱数ラッチバッファと該当する保留記憶エリアとに格納するようになっているが、特別電動役物作動判定用乱数ラッチバッファを設けない場合は、保留記憶エリアにそのまま格納し、必要なタイミングで、該当保留記憶エリアの大当り判定用乱数値を読み出すように構成しても良い。
【0129】
次いでステップS86で、保留加算コマンドを作成するための入賞コマンドデータとして、先読み判定を禁止する先読み禁止データを取得し、第1特別図柄側の先読み判定を禁止する「第1特図先読み禁止条件」が成立しているか否かを判定する。なお、第1特図先読み禁止条件とは、第1特別図柄に関する先読み予告、つまり第1特図保留球を対象とした先読み予告を禁止する条件である。本実施形態では、遊技状態が時短状態か、または確変状態A〜Cのいずれかであることを禁止条件とし、これらいずれかの遊技状態である場合、第1特別図柄に関する先読み予告を禁止(先読み予告抽選自体を禁止)する。
【0130】
第1特図先読み禁止条件が成立している場合にはステップS95に進む。
第1特図先読み禁止条件が成立していない場合にはステップS87に進み、第1特図用当り乱数判定テーブルを取得し、ステップS88で主制御RAM102(特別電動役物作動判定用乱数ラッチバッファ)に格納された大当り判定用乱数値を取得して、ステップS89の乱数判定処理を行う。
乱数判定処理では、大当り判定用乱数値を利用し、特別図柄変動表示ゲーム(ここでは、第1特別図柄変動表示ゲーム)に係る「当落抽選」を行う。
【0131】
次にステップS90で主制御CPU100は、第1特図用図柄テーブル選択テーブルを取得し、ステップS91で主制御RAM102に格納された特別図柄判定用乱数値を取得して、ステップS92で特別停止図柄データ作成処理を行う。
特別停止図柄データ作成処理では、乱数判定処理の当落抽選結果と特別図柄判定用乱数値を利用し、特別図柄変動表示ゲーム(ここでは、第1特別図柄変動表示ゲーム)に係る「図柄抽選」を行う。
【0132】
ステップS93では主制御CPU100は始動口入賞時乱数判定処理を行う。この始動口入賞時乱数判定処理では、ステップS92の停止図柄データ作成処理で得られたデータ(特別図柄判定データと変動パターン選択用オフセット)に基づき、保留加算コマンドの作成に利用される入賞コマンドデータ(2バイト目(EVENT):下位バイト)を取得
そしてステップS94で入賞コマンドデータ(下位バイト(EVENT))を作成し、またステップS95で保留球数(上位バイト(MODE))に基づく保留加算コマンドを作成し、ステップS96で演出制御部51に送信する。
これにより、第1特図始動口チェック処理を抜けて、
図10のステップS72の第2特別図柄始動口チェック処理を行う。第2特別図柄始動口チェック処理は、第2特別図柄に関して、
図11と概略同様の処理を行うものであるため詳細な説明は省略する。
【0133】
ここまで主制御部50(主制御CPU100)のメイン処理、タイマ割込処理、及び特別図柄管理処理について説明したが、主制御部50は逐次必要なコマンドを演出制御部51に対して送信する。
コマンドの例として、特別図柄変動表示ゲームの当落抽選にかかる変動パターンコマンド、入賞時コマンドの一部を
図12Aに示し、また図柄指定コマンドの一部を
図12Bに示している。
変動パターンコマンド、入賞時コマンドは、上位バイトと下位バイトで変動パターンの種別が規定され、外れ/当たりに応じて上位バイトが異なるように構成されている。
図柄指定コマンドは、上位バイトで第1、第2特別図柄が示され、下位バイトで当たりの種別が指定される構成となっている。
【0134】
<6.演出制御部の処理>
[6−1:メイン処理]
続いて演出制御部51の処理について説明する。演出制御部51の処理としては、主に、メインループ上で16ms毎に行われる処理(以下「16ms処理」ともいう)と、1ms毎に行われる割り込み処理(以下「1msタイマ割込処理」ともいう)がある。
まずここでは16ms処理を含むメイン処理について説明する。
図13は、演出制御部51のメイン処理を示している。演出制御部51(演出制御CPU200)は、遊技機本体に対して電源が投入されると、
図13のメイン処理を開始する。
このメイン処理において、演出制御CPU200は、まずステップS101で、遊技動作開始前における必要な初期設定処理を行う。例えば初期設定処理として、コマンド受信割込み設定、可動体役物の起点復帰処理、CTCの初期設定、タイマ割込みの許可、マイクロコンピュータの各部を含めてCPU内部のレジスタ値の初期設定などを行う。
【0135】
ステップS101の初期設定処理を終えると、正常動作時の処理としてステップS102〜S119の処理を繰り返し行う。
即ちこの例では、演出制御CPU200はステップS102でのIDチェックとステップS119での乱数更新を毎ループ行うと共に、16ms毎に、ステップS105〜S118の処理(16ms処理)を行う。
【0136】
ステップS102のIDチェックでは、演出制御CPU200はシステム上で設定されている自己或いは接続各部のIDの確認を行う。もし何らかの原因により、ID異常が検出された場合は、ステップS103としてシステム停止処理を行う。
IDに問題のない通常時は、演出制御CPU200はステップS104以下の処理を行うことになる。即ち演出制御CPU200は、16ms処理の実行判断のための割込みカウンタの値が「15」より大きい値となっているか否かを判断する。この割込みカウンタは、後述する
図14の1msタイマ割込処理のステップS207でインクリメントされていくカウンタである。従って割込みカウンタの値が「15」より大きい場合とは、16ms処理のタイミングになっていることを意味する。
【0137】
演出制御CPU200は、割込みカウンタの値が「15」以下であるときは、ステップS104からS119に進み、演出用ソフト乱数の更新処理を行って1回のメイン処理を終え、再びステップS102からの処理を行う。
一方、割込みカウンタの値が「16」以上である場合は、演出制御CPU200はステップS105〜S118の処理を実行し、その後、ステップS119で演出用ソフト乱数の更新処理を行って1回のメイン処理を終え、再びステップS102からの処理を行うことになる。
【0138】
このように割込みカウンタでカウントされる16ms毎に、演出制御CPU200はステップS105からの16ms処理を行う。
その場合、まずステップS105では、割込みカウンタをゼロリセットする。以後、再び次の16ms処理までのカウントを行うためである。
次にステップS106で演出制御CPU200は、エラー処理を行う。このエラー処理としては、RAMクリアエラー中、役物エラー中、右打ちエラー中などにおけるエラー処理タイマの処理、各種エラーが発生した際のエラー報知のためのシナリオ登録処理、エラー報知後のエラーシナリオのクリア処理などを行うこととなる。
次にステップS107では、演出制御CPU200はデモ処理を行う。このデモ処理では、再生音の制御、デモムービー実行や役物原点補正のシナリオ登録や、そのコマンドセットなどの処理を行う。客待ち状態などでは、このデモ処理で設定されたシナリオが実行されることでデモムービー表示が実行される。
【0139】
ステップS108では、演出制御CPU200はコマンド解析処理を行う。このコマンド解析処理では、演出制御CPU200が、主制御部50から供給される演出制御コマンドがコマンド受信バッファに格納されているか否かを監視し、演出制御コマンドが格納されていればこのコマンドを読み出す。そして読み出した演出制御コマンドに対応した演出制御処理を行う。詳しくは
図15〜
図17で後述する。
ステップS109では、演出制御CPU200は入力検知処理を行う。この入力検知処理では、操作部60の操作子(演出ボタン11、12、十字キー13)の操作による入力の検知を行い、入力を検知した場合、その操作に応じた処理を行う。
ステップS110では、演出制御CPU200はシナリオ更新処理を行う。この処理ではメインシナリオの更新、サブシナリオの更新が行われる。その際にはランプ部64,65の点灯パターン登録、再生する音の登録、可動体役物の駆動のためのモータ動作の登録なども行われる。詳しくは
図20,
図21を用いて後述する。
ステップS111では、演出制御CPU200は音再生処理を行う。演出制御CPU200は、シナリオデータに基づいてワークに音チャネルとして登録されている音データに基づいて、フレーズ番号やボリューム等のデータを音源ICに出力する。これによってスピーカ25からの効果音、音楽・音声等の再生出力が行われる。
ステップS112では、演出制御CPU200は役物エラー処理を行う。ここでは可動体役物の原点復帰がなされていないなどの位置エラー判定などを行う。
【0140】
ステップS113では演出制御CPU200は、LEDドライバ90の初期化を行う。LEDドライバ90の初期化とは、LEDドライバ90において使用しないレジスタにデフォルト値を出力する処理である。例えば枠ドライバ部61の各LEDドライバ90と、盤ドライバ部62の各LEDドライバ90に対して初期化を行う。
ステップS113では演出制御CPU200は、LED駆動データ更新を行う。ここでは、シナリオデータに基づいてワークにランプチャネルとして登録されているランプデータに基づいて、LED駆動データを作成する処理が行われる。詳しくは
図26を用いて後述する。
ステップS114では演出制御CPU200は、LED出力処理を行う。即ち演出制御CPU200は、枠ドライバ部61の各LEDドライバ90と、盤ドライバ部62の各LEDドライバ90に対して、シリアルデータ出力チャネルch1、ch2から、LEDドライバ90に対する発光駆動データ(LED駆動データ)の出力を行う。詳しくは
図28を用いて後述する。
【0141】
ステップS116では、演出制御CPU200は、演出制御RAM202のワーク領域を対象としてチェックサム算出及びその保存を行い、またステップS117では、バックアップデータの保存を行う。
さらにステップS118ではシナリオ更新カウンタをゼロリセットする。シナリオ更新カウンタは後述の1msタイマ割込処理でインクリメントされるカウンタである。
以上のような16ms処理が、
図13のメインループ処理において16ms経過毎に行われる。
【0142】
[6−2:1msタイマ割込処理]
次に
図14により1msタイマ割込処理を説明する。演出制御CPU200は、タイムカウントにより1ms毎に発生する割込要求に応じて、
図14の1msタイマ割込処理を実行する。
この1msタイマ割込処理においては、まずステップS201では主制御CPU100からのテストコマンドに応じたチェックサム算出中であるか否かを判断する。チェックサム算出中でなければ、演出制御CPU200はステップS202の入力処理に進む。
【0143】
ステップS202の入力処理とは、上述の
図13のステップS109の入力検知処理とともに操作子の操作による入力検知を行うための1ms毎の処理である。例えばこの入力処理では、操作子の操作検出信号について、信号波形にエッジが検出されたら入力カウンタをリセットし、その後、エッジが発生しない期間、入力カウンタをカウントアップしていく処理を行う。1msタイマ割込処理において、入力情報(入力信号波形のHまたはL)が検知され、またエッジ有無により、入力カウンタのリセット又はインクリメントが行われる。そしてメインループ処理(16ms処理)におけるステップS109で、入力カウンタの値が16以上となっており、前回とは入力情報が変化している場合に、入力変化を認識するようにしている。
このような入力処理(S202)及び入力検知処理(S109)により、ノイズ・チャタリングによる入力誤認識の防止がはかられる。また、入力カウンタを用いており、本実施の形態では例えば16ビットカウンタを用いて65535ms(約65秒)までなどをカウントできるようにしているため、いわゆる長押しの検出も可能となる。
【0144】
ステップS203では、演出制御CPU200はモータ動作更新処理を行う。この場合、演出制御CPU200は、シナリオデータに基づいてワーク(
図22Cで説明するモータデータ登録情報)にモータチャネルとして登録されているモータデータに基づいて、モータ駆動データを作成する処理を行う。これは可動体役物モータ65を駆動制御するためにモータドライバ部70のモータドライバ90Mに出力するモータ駆動データである。なお、本実施の形態では、LED駆動データ更新は上記ステップS114により16ms毎に行われる一方、モータ駆動データ更新は1ms毎に行われることになる。
ステップS204では、演出制御CPU200は、モータ駆動データを出力する。このステップS204では、可動体役物モータ65としてのステッピングモータ121に対する駆動データとしてのシリアルデータを、モータドライバ部70のモータドライバ90Mに対して出力することになる。
【0145】
ステップS205では、演出制御CPU200は、割込みカウンタの値に応じて各処理を実行する。割込みカウンタは上述の16ms処理のステップS105でゼロリセットされ、1msタイマ割込処理のステップS207でインクリメントされる。従って、1msタイマ割込処理でステップS205が実行される際には、割込みカウンタの値は0〜15のいずれかとなっている。
この割込みカウンタの値0〜15に応じて、ケース0〜ケース15としてステップS205の処理が規定される。例えば本実施の形態では、ケース0ではWDT(watchdog timer)クリア信号ONを行う。ケース1〜3ではモータドライバ90Mの初期化処理を行う。ケース8ではWDTクリア信号OFFを行う。
【0146】
ステップS206では、演出制御CPU200は、液晶制御基板52に対する演出制御コマンドの出力を行う。例えば1回の1msタイマ割込処理において、1コマンド(2バイト)の送信を行う。つまりモード及びイベントとしての2バイトの演出制御コマンドが送信される。
その後、演出制御CPU200はステップS207で割込みカウンタのインクリメントを行い、またステップS208でシナリオ更新カウンタのインクリメントを行う。そしてシナリオ更新カウンタの値が100未満であれば、1msタイマ割込処理を終える。
なお、シナリオ更新カウンタは上述のように16ms処理のステップS118でゼロリセットされるため、通常はシナリオ更新カウンタの値が100以上となることはない。100以上となるのは、演算異常、処理応答異常などにより16ms処理が実行されない場合や、16ms処理内の或る処理の進行が停止しているような場合である。このような場合は、無限ループに入り、WDTによってタイムアップ処理が行われるのを待つことになる。
【0147】
1msタイマ割込処理に入った際に、ステップS201でチェックサム算出中と判断された場合は、演出制御CPU200は処理をステップS210に進め、WDTをクリアする。そしてステップS211で液晶制御基板52に対する演出制御コマンドの送信出力を行う。そしてステップS212で割込みカウンタをインクリメントして1msタイマ割込処理を終える。
【0148】
[6−3:コマンド解析処理]
続いて、16ms処理として
図13のステップS108で行われるコマンド解析処理について、
図15〜
図17で説明する。演出制御CPU200は、ステップS108のコマンド解析処理として、主制御部50から供給される演出制御コマンドがコマンド受信バッファに格納されているか否かを監視し、演出制御コマンドが格納されていればこのコマンドを読み出す。この具体的な処理として、
図15のステップS301〜F308の処理を行う。
【0149】
演出制御部51には、主制御部50から送信されてきた演出制御コマンドを取り込むコマンド受信バッファが、例えば演出制御RAM202に用意される。演出制御CPU200は、まず
図15のステップS301で、コマンド受信バッファの読み出しアドレスを示すリードポインタと、書き込みアドレスを示すライトポインタの確認を行う。
ライトポインタは、コマンド受信に応じて更新され、それに応じてライトポインタで示されるアドレスに、受信した演出制御コマンドが格納されていく。リードポインタは、コマンド受信バッファからの読み出しを行った際に更新(ステップS302)される。従って、もしリードポインタ=ライトポインタでなければ、まだ読み出していない演出制御コマンドがコマンド受信バッファに格納されているということになる。そこでリードポインタ=ライトポインタでなければステップS302に進み、演出制御CPU200はコマンド受信バッファにおいてリードポインタで示されるアドレスから1バイトのコマンドデータをロードする。この場合、次の読み出し(ロード)のためにリードポインタをインクリメントしておく。
【0150】
上述したように1つの演出制御コマンドは、モードとしての1バイトとイベントとしての1バイトの2バイトで形成されている。演出制御CPU200はステップS303で、ロードした1バイトのコマンドデータが、モードであるかイベントであるかを確認する。この確認は、8ビット(Bit0〜Bit7)のうちのBit7の値により行われる。
そしてモードであれば、コマンドの上位データ受信の処理として、ステップS304に進み、読み出したコマンドデータを、レジスタ「コマンドHIバイト」にセーブする。また「コマンドLOバイト」のレジスタをクリアする。そしてステップS301に戻る。
続いても、リードポインタ=ライトポインタでなければ、まだ読み出していない演出制御コマンドがコマンド受信バッファに格納されていることになるため、ステップS302に進み、演出制御CPU200はコマンド受信バッファにおいてリードポインタで示されるアドレスから1バイトのコマンドデータをロードする。またリードポインタをインクリメントする。
そして読み出したコマンドがイベントであれば、コマンドの下位データ受信の処理として、ステップS303からS305に進み、読み出したコマンドデータを、レジスタ「コマンドLOバイト」にセーブする。
【0151】
モード及びイベントのコマンドデータが、レジスタ「コマンドHIバイト」「コマンドLOバイト」にセーブされることで、演出制御CPU200は1つのコマンドを取り込んだことになる。
そこで演出制御CPU200はステップS306で、取り込んだコマンドに応じた処理を行う。具体例は
図16,
図17で後述する。
【0152】
リードポインタ=ライトポインタとなるのは、演出制御CPU200がまだ取り込んでいない演出制御コマンドがコマンド受信バッファには存在しない場合である。そこで、新たな取り込みは不要であるため、ステップS307に進む。この場合、図柄コマンド待ちの状態で100ms経過したか否かを確認する。そのような事態となっていなければ、
図15のコマンド解析処理を終える。一方、図柄コマンド待ちの状態で100ms経過していたのであれば、ステップS308でコマンド欠落における図柄変動の処理を行うこととなる。
【0153】
上記のステップS306におけるコマンド対応処理の例を
図16,
図17で説明する。
図16Aは、コマンド対応処理としての基本処理を示している。2バイトの演出制御コマンドの受信に応じて、演出制御CPU200はまず
図16AのステップS321で、現在テストモード中であるか否かを確認する。テストモード中であれば、ステップS322ですべての演出シナリオのクリア、音出力の停止、ランプ部63,64におけるLEDの消灯を行う。そしてステップS323でテストモードを終了する。
テストモード中でなければ、これらの処理は行わない。
そして演出制御CPU200は、ステップS330として、取り込んだ演出制御コマンドについての処理を行うことになる。
【0154】
演出制御コマンドとしては、例えば特別図柄変動パターン指定コマンド、特別図柄指定コマンド、保留球減算コマンド、保留球加算コマンド、エラー表示指定コマンド、大当たり開始指定コマンド・・・など多様に設定されている。ステップS330では、演出制御CPU200は、受信したコマンドに対応して、プログラムで規定された処理を行う。ここでは
図16B〜
図16E、
図17A〜
図17Cに7つの演出制御コマンドを挙げて、具体的処理を例示する。
【0155】
図16Bは、ステップS330でのコマンド処理として、変動パターンコマンドを取り込んだ場合の処理S330aを示している。
この場合、演出制御CPU200は、ステップS331で、図柄コマンド待ち状態をセットする処理を行う。これは変動パターンコマンドと、図柄コマンドが順次受信されることで、演出制御CPU200が図柄の変動表示の制御を行うためである。
【0156】
図16Cは、ステップS330でのコマンド処理として、図柄指定コマンドを取り込んだ場合の処理S330bを示している。
この場合、演出制御CPU200は、まずステップS332で、変動パターンコマンド受信済みであるか否かを確認する。受信していなければそのまま処理を終える。
図柄指定コマンドを受信した際に、既に変動パターンコマンド受信済みであれば、ステップS333に進み、まず役物原点補正の動作についてのシナリオ登録を行う。そしてステップS334で、図柄変動フラグをセットする。図柄変動フラグは、第1特別図柄、第2特別図柄、普通図柄のそれぞれに対応してそれぞれ設けられ、それぞれのフラグで変動状態を表すものとされる。例えば各2ビットの第1特別図柄変動フラグFZ1、第2特別図柄変動フラグFZ2、普通図柄変動フラグFZ3が用意され、それぞれについて変動中、停止中(当たり)、停止中(外れ)が示される。ここでは変動開始に伴い、対応する図柄変動フラグ(FZ1,FZ2,FZ3のいずれか)を、「変動中」を示す値にセットする。
なお図柄変動フラグは、当たりの場合は、図柄変動終了時に所定時間「停止中(当たり)」を示す値にセットされ、その後、図柄変動が開始されるまで「停止中(外れ)」を示す値にセットされる。
ステップS335で演出制御CPU200は、変動開始処理を行う。その後、変動開始に応じてステップS336で変動パターンコマンドの削除を行う。
【0157】
図16Dは、ステップS330でのコマンド処理として、電源投入コマンドを取り込んだ場合の処理S330cを示している。
この場合、演出制御CPU200は、ステップS337で演出制御RAM202のクリア処理を行う。例えばコマンド受信/送信バッファ、操作部60についての入力情報バッファの内容や、チェックサムの記憶領域のクリアを行う。
そしてステップS338でエラー解除コマンドの送信、ステップS339で役物エラー情報のクリア、ステップS340で役物動作の停止、ステップS341で電源投入のシナリオ登録、ステップS342で液晶制御基板52へ送信する電源投入コマンドのセットを順次行う。
【0158】
図16Eは、ステップS330でのコマンド処理として、RAMクリアコマンドを取り込んだ場合の処理S330dを示している。
この場合、演出制御CPU200は、ステップS343で演出制御RAM202のクリア処理を行う。例えばコマンド受信/送信バッファ、操作部60についての入力情報バッファの内容や、チェックサムの記憶領域のクリアを行う。
そしてステップS344でエラー解除コマンドの送信、ステップS345でRAMクリアエラーセットと、エラー報知タイマのセットを行う。さらにステップS346で演出制御RAM202における抽選処理に関する情報のクリア、ステップS347で、シナリオに関する情報のクリアを行う。そしてステップS348で液晶制御基板52へ送信する電源初期投入表示(RAMクリア)コマンドのセットを行う。
【0159】
図17Aは、ステップS330でのコマンド処理として、保留加算コマンドを取り込んだ場合の処理S330eを示している。
この場合、演出制御CPU200は、ステップS350で第1特別図柄変動表示ゲーム又は第2特別図柄変動表示ゲームのいずれか対応する方の保留数レジスタ(演出制御RAM202内で設定された第1保留数又は第2保留数としてのレジスタ領域)における保留数の値を読み出して、加算する処理を行う。そしてステップS351で液晶制御基板52に対して保留数表示のためのコマンドをセットし、ステップS352で第1保留数又は第2保留数として更新した値をセットする。
【0160】
図17Bは、ステップS330でのコマンド処理として、保留加算コマンドを取り込んだ場合の処理S330fを示している。
この場合、演出制御CPU200は、ステップS360で第1特別図柄変動表示ゲーム又は第2特別図柄変動表示ゲームのいずれか対応する方の保留数レジスタ(演出制御RAM202内で設定された第1保留数又は第2保留数としてのレジスタ領域)における保留数の値を読み出して、減算する処理を行う。そしてステップS361で液晶制御基板52に対して保留数表示のためのコマンドをセットし、ステップS362で第1保留数又は第2保留数として更新した値をセットする。
【0161】
図17Cは、ステップS330でのコマンド処理として、状態報知コマンドを取り込んだ場合の処理S330gを示している。
この場合、演出制御CPU200は、ステップS371で遊技状態報知フラグをセットする。遊技状態報知フラグとしては、例えば「大当たり中」「確変中」「時短中」を示すフラグFJ1,FJ2,FJ3が用意される。演出制御CPU200はステップS371では状態報知コマンドで指示される遊技状態に応じて、いずれかの対応する遊技状態報知フラグをセットすることになる。
【0162】
[6−4:シナリオ登録・削除処理]
次にシナリオ登録・削除処理について説明する。シナリオとは演出制御やエラー処理その他、各種の実行すべき動作を規定したデータである。実行すべきシナリオのデータは、シナリオ登録情報として演出制御RAM202のワーク領域に登録される。
図22Aに示すシナリオ登録情報の構造については後述するが、シナリオ登録情報としては、0〜63までの64個のシナリオチャネルが用意されている。この64個のシナリオチャネルに登録されたシナリオは同時に実行可能とされる。以下、シナリオチャネルを「sCH」で示す。
シナリオ登録処理とは、シナリオ登録情報における任意のシナリオチャネルに、登録を要求されたシナリオ番号のシナリオを登録する処理である。原則的には、sCH0〜sCH63のシナリオチャネルは、どのチャネルが用いられても良い。
【0163】
以下説明するシナリオ登録は、例えば
図13のステップS106のエラー処理、ステップS107のデモ処理、ステップS108のコマンド解析処理などの処理過程において、必要時に呼び出され、実行される。例えば先に述べた
図16CのステップS333、
図16DのステップS341などが、シナリオ登録が実行される場合の一例となる。
【0164】
図18の処理として、演出制御CPU200は、コマンド或いはプログラム上で指定されるシナリオに対応したシナリオ番号と待機時間(delay)の値を、ワーク(シナリオ登録情報)に登録する処理を行う。
ステップS401で演出制御CPU200は、まず今回登録すべきシナリオ番号が正常であるか否かを確認する。シナリオ番号があり得ない番号の場合は、何もせずに処理を終える。
【0165】
シナリオ番号が適正であれば、演出制御CPU200はステップS402で変数Bをゼロに設定する。変数Bは、sCH0〜sCH63のシナリオチャネルのうちで、空きチャネルを順次探索するために使用する変数である。さらに変数Bは、まだ探索(空きチャネルであるか否かの確認)をしていないシナリオチャネルが残っているか否かを判断するための変数を兼ねている。
【0166】
演出制御CPU200は、ステップS403で、「追加ポインタ」+Bのシナリオチャネルが空きであるか否かを確認する。追加ポインタとは、シナリオ登録を行った際に、後述のステップS407で設定されるポインタである。
図18の処理を開始する時点では、追加ポインタの値は、前回登録したシナリオチャネルの次のシナリオチャネルを示す値となっている。なお、追加ポインタの初期値(初期状態から
図18の処理が初めて行われる時の値)は0である。
「追加ポインタ」+Bのシナリオチャネルが空きでなければ、演出制御CPU200はステップS404で変数Bをインクリメントする。
ステップS405でB<64でなければ、この
図18の処理を終える。これは全シナリオチャネルについて探索を行ったが、空きチャネルがなくてシナリオ登録が不可能となる場合である。
まだ全シナリオチャネルの探索(空きチャネルであるか否かの確認)を行っていない時点では、ステップS405でB<64である。その場合はステップS406の確認処理を行い、「追加ポインタ」+Bの値がシナリオチャネルsCHの最大値を超えた値「64」以上となっていなければステップS403に戻る。
また「追加ポインタ」+Bの値が「64」以上となっていた場合は、ステップS407で追加ポインタの値の補正処理を行う。具体的には「追加ポインタ」+Bの値が「64」となった場合、追加ポインタの値を「64」減算する処理を行う。そしてステップS403に戻る。
【0167】
このステップS403〜S407の処理によれば、前回登録したシナリオチャネルの次のシナリオチャネルから、順次シナリオチャネルが空きか否かが確認されることになる。
つまり、ステップS404での変数Bのインクリメントにより、ステップS403が行われるたびに確認されるシナリオチャネルsCHが、順次1つずつ進行することとなる。
また、変数BはステップS402でゼロリセットされてからステップS404でインクリメントされるものであるため、ステップS405でB<64とはならない場合(つまり変数Bが64に達した場合)は、既にステップS403の処理が64回行われた場合である。これは全シナリオチャネルsCH0〜sCH63を調べたが、空きがなかったと判断された場合である。そのため登録不可能として
図18の処理を終えることとなる。
【0168】
また、「追加ポインタ」の値は、前回登録したシナリオチャネルの次のシナリオチャネルを示す値であるため、まだ全シナリオチャネルの空き確認を行っていないB<64の時点でも、「追加ポインタ」+Bの値(つまり次に確認しようとするシナリオチャネルsCHの番号)が「64」以上となることがある。具体的には、直前のステップS403の時点で「追加ポインタ」+Bの値が63であり、シナリオチャネルsCH63について確認した後、ステップS404で変数Bがインクリメントされた場合である。このままでは、次に存在しないシナリオチャネルsCH64を指定することとなる。
そこでステップS406でこの点を確認し、「追加ポインタ」+Bの値が「64」となっていたら、ステップS407では、次に確認するシナリオチャネルを「sCH0」に戻すために、追加ポインタの補正を行う。つまり追加ポインタの値を−64することで、「追加ポインタ」+Bの値が「0」となるようにする。これにより次のステップS403では、シナリオチャネルsCH0が空きであるか否か確認されるようにする。
【0169】
ある時点のステップS403の処理で、空きのシナリオチャネルが発見されたら、演出制御CPU200はステップS408に進み、その空きのシナリオチャネルに、シナリオ番号、及び待機時間(delay)をセットする。またその他のシナリオ管理に必要なデータをゼロクリアする。
そしてステップS409で、追加ポインタを、登録を行ったシナリオチャネル+1の値に更新する。つまり今回登録を行ったシナリオチャネルの次のシナリオチャネルの値を、追加ポインタとして記憶しておき、次回の登録処理に使用できるようにする。なお、本実施の形態ではシナリオチャネルはsCH0〜sCH63の64チャネルのため追加ポインタの最大値は63となる。
【0170】
この
図18の処理によれば、シナリオ登録の際に、前回登録を行ったシナリオチャネルの次のシナリオチャネルから、空きチャネルが探索される。追加ポインタの初期値は「0」であり、その後、登録に応じてステップS407で更新されていくが、この処理によれば、多くの場合、シナリオチャネルsCH0から順に使用されてシナリオ登録が行われる。そして、シナリオ登録の際には、前回の登録チャネルの次のシナリオチャネルから空きの確認が行われる。従って、殆どの場合、素早く空きチャネルが発見でき、シナリオ登録処理を効率的に実行することができる。これにより演出制御CPU200の処理負担は軽減される。
【0171】
なお、処理の変形例として、ステップS407で更新する追加ポインタの値は、登録を行ったシナリオチャネルの番号としておき、ステップS402では変数Bに1を代入してもよい。但しその場合、ステップS405ではB≦65であるか否かの判断を行うようにする。
【0172】
次にシナリオ削除処理について説明する。これはワークの或るシナリオチャネルに登録されているシナリオを削除する処理である。
図19Aは、或るシナリオをシナリオ登録情報から削除する場合の演出制御CPU200の処理を示している。
演出制御CPU200は、コマンド或いはプログラムグラム上で指定される、削除するシナリオ番号(後述のメインシナリオ番号(mcNo))の値に基づいて、
図19Aの処理を開始する。まずステップS421で演出制御CPU200は、削除要求にかかるシナリオ番号が正常であるか否かを確認する。シナリオ番号があり得ない番号の場合は、削除せずに処理を終える。
【0173】
シナリオ番号が適正であれば、演出制御CPU200はステップS422で変数Bをゼロに設定する。この場合の変数Bは、sCH0〜sCH63のシナリオチャネルのうちで、削除対象のシナリオが登録されたチャネルを探索するために使用する変数となる。さらに変数Bは、まだ探索(削除対象のシナリオが登録されているか否かの確認)をしていないシナリオチャネルが残っているか否かを判断するための変数を兼ねている。
【0174】
演出制御CPU200は、ステップS423で、B領域、つまりシナリオチャネルsCH(B)に登録されているシナリオが削除対象のシナリオ番号のものであるか否かを確認する。シナリオチャネルsCH(B)に登録されているシナリオが削除対象のシナリオ番号でなければ、ステップS424で変数Bをインクリメントし、ステップS425でB<64であることを確認して、ステップS423の処理を行う。
このステップS423,F424の処理によれば、シナリオチャネルsCH0からシナリオチャネルsCH63に向かって順に、削除対象のシナリオを探索していくこととなる。
ステップS423でシナリオチャネルsCH(B)に登録されているシナリオが削除対象のシナリオ番号であった場合は、ステップS426に進み、B領域、つまりシナリオチャネルsCH(B)に登録されているシナリオを削除する処理を行う。
以上により、要求された或るシナリオ番号のシナリオをワーク(シナリオ登録情報)から削除する処理が行われる。
なお、ステップS425でB<64ではないと判断される場合、つまり変数Bが64に達した場合は、シナリオチャネルsCH0〜sCH63の全てを探索したが、削除対象のシナリオが登録されていなかったということになるため、処理を終える。
【0175】
図19Bは、或る範囲のシナリオを削除する処理を示している。削除シナリオが範囲で指定された場合に、この処理が行われる。
演出制御CPU200は、コマンド或いはプログラム上で、或るシナリオ番号の範囲で削除指定された場合、まずステップS431で変数Bをゼロに設定する。この場合の変数Bは、sCH0〜sCH63のシナリオチャネルのうちで、削除対象範囲に該当するシナリオが登録されたチャネルを探索するために使用する変数となる。さらに変数Bは、まだ探索(削除対象範囲に該当するシナリオが登録されているか否かの確認)をしていないシナリオチャネルが残っているか否かを判断するための変数を兼ねている。
【0176】
演出制御CPU200は、ステップS432で、B領域、つまりシナリオチャネルsCH(B)に登録されているシナリオが、削除対象とされた範囲内のシナリオ番号であるか否かを確認する。そしてシナリオチャネルsCH(B)に登録されているシナリオが削除対象の範囲内のシナリオ番号であれば、ステップS433でシナリオチャネルsCH(B)に登録されているシナリオを削除する。そしてステップS434に進む。
シナリオチャネルsCH(B)に登録されているシナリオが、削除対象とされた範囲内のシナリオ番号ではなければ、ステップS433を行わずにステップS434に進む。
演出制御CPU200はステップS434では、変数Bをインクリメントし、ステップS435でB<64であることを確認して、ステップS432に戻る。変数Bが64に達していたら、全シナリオチャネルsCH0〜sCH63について処理を完了したことになるため、このシナリオ範囲削除処理を終える。
以上により、シナリオ番号範囲の1又は複数のシナリオについて、ワーク(シナリオ登録情報)からの削除が行われる。
【0177】
図19Cは登録されているシナリオを全て削除する処理を示している。例えばシステム上の都合により、やむを得ずシナリオを削除する際に呼び出される処理である。なお、保護対象とされたシナリオは削除しないようにする。
演出制御CPU200は、シナリオ全削除が要求された場合、まずステップS441で変数Bをゼロに設定する。この場合の変数Bは、sCH0〜sCH63のシナリオチャネルのうちで、保護対象のシナリオを登録したシナリオチャネルを確認するために使用する変数となる。さらに変数Bは、まだ確認(保護対象のシナリオが登録されているか否かの確認)をしていないシナリオチャネルが残っているか否かを判断するための変数を兼ねている。
【0178】
演出制御CPU200は、ステップS442で、B領域、つまりシナリオチャネルsCH(B)に登録されているシナリオが、保護対象のシナリオであるか否かを確認する。そして保護対象のシナリオであれば、削除せず、一方、保護対象のシナリオでなければ、ステップS443で、そのシナリオチャネルsCH(B)に登録されているシナリオを削除する。
そしてステップS444で変数Bをインクリメントし、ステップS445でB<64であればステップS442に戻る。変数Bが64に達していたら、全シナリオチャネルsCH0〜sCH63について処理を完了したことになるため、このシナリオ全削除処理を終える。
以上により、ワークにシナリオ登録情報として登録されているシナリオについて、保護対象のシナリオを除く全シナリオの削除が行われる。
【0179】
[6−5:シナリオ更新処理]
続いてメイン処理の16ms処理のステップS110で行われるシナリオ更新処理について説明する。シナリオ更新処理では
図20、
図21で説明するようにメインシナリオとサブシナリオの更新が行われる。
【0180】
まずシナリオ登録情報の構造を
図22、
図23で説明する。
図22Aは、メインシナリオ及びサブシナリオとしてのシナリオ登録情報の構造を示している。このシナリオ登録情報は演出制御RAM202のワークエリアを用いて設定される。
本実施の形態では、先にも述べたようにシナリオ登録情報は、シナリオチャネルsCH0〜sCH63の64個のチャネルを有するものとされる。各シナリオチャネルsCHに登録されたシナリオについては同時に実行可能とされる。
【0181】
図示のように各シナリオチャネルsCHに登録できる情報としては、サブシナリオ更新処理で用いるサブシナリオタイマ(scTm)と前回時間(scPrevTm)、音/モータサブシナリオテーブルの実行ラインを示すサブシナリオ実行ライン(scIx)、ランプサブシナリオテーブルの実行ラインを示すサブシナリオ実行ラインlmp(lmpIx)、シナリオ更新処理に用いるメインシナリオタイマ(msTm)、メインシナリオテーブルの実行ラインを示すメインシナリオ実行ライン(mcIx)、メインシナリオ番号(mcNo)、メインシナリオに付加可能なオプションデータであるメインシナリオオプション(mcOpt)、ユーザオプション(userFn)、待機時間(delay)、チェックサム(checkSum)がある。
【0182】
スピーカ部59による音出力、ランプ部63,64による発光、及び可動体役物モータ65による可動体役物の駆動による演出を開始するときには、待機時間(delay)とメインシナリオ番号(
mcNo)をシナリオチャネルsCH0〜sCH63のうちの空いているシナリオチャネルに登録する。
待機時間(delay)は、シナリオチャネルsCHに登録してからそのシナリオが開始されるまでの時間を示す。なおこの待機時間(delay)は16ms処理毎に1減算される。待機時間(delay)が0の場合に、登録されたデータに対応した処理が実行されることとなる。
【0183】
図24には、メインシナリオテーブルの一部として、シナリオ番号1,2,3の例を示している。各シナリオ番号のシナリオとしては、シナリオの各ライン(行)に時間データとしてメインシナリオタイマ(msTm)の値が記述されるとともに、サブシナリオ番号(scNo)、オプション(OPT)を記述することができる。即ちメインシナリオテーブルでは、メインシナリオタイマ(msTm)による時間として、実行されるべきサブシナリオ(及び場合によってはオプション)が指定される。またシナリオ最終行には、シナリオデータ終了コードD_SEEND、又はシナリオデータループコードD_SELOPが記述される。
なお、メインシナリオタイマ(msTm)の値はメインシナリオの開始時から、16ms処理で行われるシナリオ更新の処理で+1されるため、「1」とは16msを示すものとなる。各シナリオ番号のシナリオテーブルは、或る行におけるメインシナリオタイマ(msTm)の時間を経過すると、次の行へ進むことになる。各行の時間データは、その行が終わるタイミングを示している。
例えばシナリオ番号2の場合、1500×16msの時間としてサブシナリオ番号2の動作が指定され、次の500×16msの時間としてサブシナリオ番号20の動作が指定され、次の2000×16msの時間としてサブシナリオ番号21の動作が指定されている。その次の行はシナリオデータ終了コードD_SEENDである。シナリオデータ終了コードD_SEENDの場合、シナリオ登録情報(ワーク)から、このシナリオが削除される(後述する
図20のステップS617参照)。
【0184】
次に
図22Bでランプデータ登録情報の構造を説明する。ランプデータ登録情報としては、ランプサブシナリオテーブルから選択されたシナリオ、即ちランプ部63,64による演出動作(点灯パターン)を示す情報が登録される。このランプデータ登録情報も演出制御RAM202のワークエリアを用いて設定される。
本実施の形態では、ランプデータ登録情報は、ランプチャネルdwCH0〜dwCH15の16個のチャネルを有するものとされる。各ランプチャネルdwCH0〜dwCH15には優先順位が設定されており、ランプチャネルdwCH0からdwCH15に向かって順にプライオリティが高くなる。従ってランプチャネルdwCH15に登録されたシナリオ(ランプサブシナリオ)が最も優先的に実行される。また例えばランプチャネルdwCH3、dwCH10にシナリオが登録されていれば、ランプチャネルdwCH10に登録されたシナリオが優先実行される。
なお、ランプチャネルdwCH0は主にBGM(Back Ground Music)に付随するランプ演出、ランプチャネルdwCH15はエラー関係のランプ演出に用いられ、ランプチャネルdwCH1〜dwCH14が通常演出に用いられる。
【0185】
各ランプチャネルdwCHに登録できる情報としては、図示のように、登録した点灯パターンの番号を示す登録点灯ナンバ(lmpNew)、実行する点灯パターンの番号を示す実行点灯ナンバ(lmpNo)、ランプサブシナリオの実行ラインを示すオフセット(offset)、実行時間(time)、チェックサム(checkSum)がある。
【0186】
図25Aにランプサブシナリオテーブルの一部として、ランプサブシナリオ番号1,2,3の例を示している。各番号のランプサブシナリオとしては、シナリオの各ライン(行)に時間データ(time)の値が記述されるとともに、ランプチャネルと、各種の点灯パターンを示すランプナンバが記述される。また最終行には、ランプシナリオデータ終了コードD_LSENDが記述される。
【0187】
このランプサブシナリオテーブルにおいて、各ラインの時間データ(time)は、そのサブシナリオが開始されてからの、当該ラインが開始される時間を示している。
16ms毎にメインシナリオタイマ(msTm)と、テーブルの時間データを比較して、一致した場合に、そのラインのランプナンバが、
図22Bのランプデータ登録情報に登録される。登録されるランプチャネルdwCHは、当該ラインに示されたチャネルとなる。
例えば、上述の或るシナリオチャネルsCHにおいて、
図24に示したシナリオ番号2が登録され、サブシナリオ番号2が参照されるとする。
図25Aに示したランプサブシナリオ番号2では、1ライン目に時間データ(time)=0としてランプチャネル5(dwCH5)及びランプナンバ5が記述されている。この場合、メインシナリオタイマ(msTm)=0の時点で、まず当該1ライン目の情報が
図22Bのランプデータ登録情報のランプチャネルdwCH5に、登録点灯ナンバ(lmpNew)=5として登録される。シナリオ登録情報のサブシナリオ実行ラインlmp(lmpIx)の値は、次のラインの値(2ライン目)に更新される。これはランプチャネルdwCH5という比較的低い優先度で、点灯ナンバ5の点灯パターン動作の実行を行うための登録となる。
2ライン目については、500×16msとなった時点で同様の処理が行われる。即ちランプデータ登録情報のランプチャネルdwCH5に、登録点灯ナンバ(lmpNew)=6(つまり点灯ナンバ6の点灯パターンの指示)が登録される。
なお、時間データ(time)が連続する2ラインで同一の値であったら、その各ラインについての処理は同時に開始されることとなる。
後述するLED駆動データ更新処理では、このように更新されるランプデータ登録情報に基づいて、LED駆動データが作成される。
【0188】
次に
図22Cでモータデータ登録情報の構造を説明する。モータデータ登録情報としては、音/モータサブシナリオテーブルから選択されたシナリオを示す情報が登録される。このモータデータ登録情報も演出制御RAM202のワークエリアを用いて設定される。
本実施の形態では、モータデータ登録情報は、モータチャネルmCH0〜mCH7の8個のチャネルを有するものとされる。
各モータチャネルmCHに登録できる情報としては、図示のように、実行動作ナンバ(no)、登録動作ナンバ(noNew)、動作カウント(lcnt)、励磁カウンタ(tcnt)、実行ステップ(step)、動作ライン(offset)、親(移行元)/子(移行先)の属性(attribute)、親ナンバ(retNo)、戻りアドレス(retAddr)、ループ開始ポイント(roopAddr)、ループ回数(roopCnt)、エラーカウンタ(errCnt)、現在の入力情報(currentSw)、ソフト上のスイッチ情報(softSw)、ソフト上のカウント(softCnt)がある。
【0189】
また
図23は、音データ登録情報を示している。音データ登録情報としては、音/モータサブシナリオテーブルから選択されたシナリオを示す情報が登録される。この音データ登録情報も演出制御RAM202のワークエリアを用いて設定される。
本実施の形態では、音データ登録情報は、音チャネルaCH0〜aCH15の16個のチャネルを有するものとされる。
各音チャネルaCHに登録できる情報としては、図示のように、ボリューム遷移量(frzVq)、ボリューム(frzVl)、遷移量変化(rsv2)、ボリューム変化(rsv1)、フレーズ変化(rsv0)、ステレオ(frzSt)、ループ(frzLp)、フレーズ番号hi(frzHi)、フレーズ番号low(frzLo)がある。
【0190】
図25Bに音/モータサブシナリオテーブルの一部として、音/モータサブシナリオ番号1,2の例を示している。各番号の音/モータサブシナリオとしては、シナリオの各ライン(行)に時間データ(time)の値(ms)が記述されるとともに、BGM、予告音、エラー音、音コントロール、モータ、ソレノイド/ユーザオプションの情報が記述される。また最終行には、シナリオデータ終了コードD_SEENDが記述される。
この音/モータサブシナリオテーブルに関しては、サブシナリオタイマ(scTm)が0になったら(なお最初は0である)、この音/モータサブシナリオテーブルの時間データ(time)の値をサブシナリオタイマ(scTm)にセットする。なお、各ラインの時間データ(time)は、当該ラインが終了するタイミングを示している。サブシナリオタイマ(scTm)には、絶対時間を記述するが、従って、セットする時間データ値は、(当該ラインの時間データ)−(前回ラインの時間データ)の値である。
当該ラインのBGMのデータは、BGMのフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音データ登録情報における音チャネルaCH0(ステレオの場合は加えてaCH1)にセットされる。
当該ラインの予告音のデータは、予告音のフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音チャネルaCH2〜aCH14の空いているところにセットされる。
当該ラインのエラー音のデータは、エラー音のフレーズ番号やボリューム値等の音データ登録情報に登録する情報で構成され、音チャネルaCH15にセットされる。
音コントロールのデータは、下位6バイトでチャネル情報、上位2バイトでコントロール情報とされている。
モータのデータは、モータ1個につき1バイトでモータの動作パターン番号を示すように構成されている。モータ番号に対応するモータチャネルに動作パターン番号がセットされる。
【0191】
図14のステップS203として説明したモータ動作更新処理では、
図20,
図21のシナリオ更新処理で更新されるモータデータ登録情報に基づいて、モータ駆動データが作成される。
また
図13のステップS111の音再生処理では、
図20,
図21のシナリオ更新処理で更新される音データ登録情報に基づいて、再生出力が行われる。
【0192】
以上の各情報を用いたシナリオ更新処理について、
図20,
図21で説明する。
図13の16ms処理のステップS110として実行される
図20のシナリオ更新処理では、演出制御CPU200はループ処理LP1として、シナリオチャネルsCH0〜sCH63のそれぞれについて、ステップS601〜S616の処理を行う。当該ループ処理の各回の処理対象のシナリオチャネルを「sCHn」として説明する。
【0193】
演出制御CPU200は、ステップS601でシナリオチャネルsCHnの待機時間(delay)を確認する。待機時間(delay)=0でなければステップS602で待機時間(delay)の値を−1(デクリメント)する。そしてステップS615でシナリオチャネルsCHn関連のデータのチェックサムを算出し、保存する。またステップS616でシナリオチャネルsCHn関連のデータをバックアップ保存する。これでシナリオチャネルsCHnについての1回の処理を終える。
【0194】
一方、ステップS601で待機時間(delay)=0であることが確認された場合は、演出制御CPU200はステップS603に進み、シナリオチャネルsCHnに登録されているメインシナリオ番号(mcNo)と、メインシナリオ実行ライン(mcIx)に対応するメインシナリオテーブルのアドレスを特定する。
ステップS604では、当該特定したアドレスで示される、メインシナリオテーブルの或るメインシナリオ番号の実行ラインが、終了コードD_SEEND(
図24参照)が記述されている最終ラインであるか否かを確認する。
終了コードが記述された最終ラインであった場合は、当該シナリオチャネルsCHnに登録されたシナリオで実行すべき処理は終了したことになるため、ステップS617で、そのシナリオチャネルsCHnに登録されているシナリオをシナリオ登録情報(ワーク)から削除する。
なお、この場合のシナリオ登録の削除は、シナリオ終了に応じた通常の削除である。先に
図19で説明したシナリオ削除は、この通常削除以外の、例えば未終了のシナリオをシナリオ登録情報(ワーク)から削除する処理であることを付言しておく。
【0195】
ステップS604で、メインシナリオテーブルの当該ラインが終了コードではない場合は、演出制御CPU200はステップS605に進み、まず当該シナリオチャネルsCHnのメインシナリオオプション(mcOpt)に、当該ラインのオプション(OPT)をセットする。次にステップS606で、シナリオ番号が0であるか否かを確認し、0でなければステップS607で、ユーザオプション(userFn)に0を代入する。
そしてステップS608で、当該シナリオチャネルsCHnで指定されるサブシナリオの更新を行う。サブシナリオの更新については
図21で後述する。
【0196】
ステップS609では、演出制御CPU200はメインシナリオタイマ(msTm)を+1(インクリメント)する。そしてステップS610では、メインシナリオタイマ(msTm)の値と、メインシナリオテーブルの該当ラインの時間データ(
図24参照:msTmで記述)を比較する。先に述べたように、メインシナリオテーブルの各ラインの時間データは、そのラインの終了タイミングを規定する。従ってメインシナリオタイマ(msTm)の値がメインシナリオテーブルの当該ラインに記述された時間データ以上であれば、そのラインの処理は終了し、次のラインを対象とする。その場合ステップS610からS611に進み、シナリオチャネルsCHnのメインシナリオ実行ライン(mcIx)を+1する。つまり次回は、次のラインが対象となるようにする。
またその場合、ステップS612で次のラインがループ指定であるか否かを確認する。
図24のメインシナリオテーブルにおいてシナリオ番号1では、最終ラインがシナリオデータループコードD_SELOPとされている例を示したが、このようにループ指定されていた場合は、ステップS613で、メインシナリオ実行ライン(mcIx)にループ行をセットする。
【0197】
演出制御CPU200は、ステップS614では、1つのラインの終了に応じたクリア処理を行う。即ちメインシナリオタイマ(msTm)、サブシナリオタイマ(scTm)、前回時間(scPrevTm)、サブシナリオ実行ライン(scIx)、サブシナリオ実行ラインlmp(lmpIx)、メインシナリオオプション(mcOpt)、ユーザオプション(userFn)、待機時間(delay)をクリアする。
そしてステップS615のチェックサム処理,ステップS616のバックアップ処理を行ってシナリオチャネルsCHnについての1回の処理を終える。
シナリオ更新処理としては、ループ処理LP1として、シナリオチャネルsCH0〜sCH63のそれぞれについて以上の処理が実行されることになる。
【0198】
ステップS608で行われるサブシナリオ更新処理を
図21Aに詳細に示す。
メインシナリオタイマ(msTm)、シナリオチャネルsCHnと、メインシナリオテーブルに記述されたサブシナリオ番号(scNo)に基づいて、
図21Aのサブシナリオの更新処理が行われる。
【0199】
まずステップS621で演出制御CPU200は、シナリオチャネルsCHnが0〜63のいずれかを示しているか否か、つまり適正値であるか否かを確認する。シナリオチャネルsCHnが64以上であれば、更新処理不能として
図21Aの処理を終える。
シナリオチャネルsCHnが適正値であれば、演出制御CPU200はステップS622で、サブシナリオ番号(scNo)とサブシナリオ実行ラインlmp(lmpIx)に対応するランプサブシナリオテーブル(
図25A参照)のアドレスを特定する。
【0200】
演出制御CPU200はステップS623では、ランプデータ登録情報の更新のため、まずランプチャネルdwCHに0をセットする。つまりまずランプチャネルdwCH0を指定した状態とする。
そしてステップS624で、メインシナリオタイマ(msTm)とランプサブシナリオテーブルの時間データ(time)を比較する。ランプサブシナリオテーブルの時間データ(time)は、当該ライン(サブシナリオ実行ラインlmp(lmpIx)で示されるライン)が開始される時間(ms)を示している。従って、メインシナリオタイマの時間(実際にはmsTm×16msの時間)が、時間データ(time)以上となっていたら、そのラインについての処理を行う。その場合、ステップS625でランプチャネルdwCHの値が正常(dwCH0〜dwCH15の範囲内)であるか否かを確認する。異常な値であれば処理を終える。正常な値であればステップS626で、現在のラインが、ランプシナリオデータ終了コードD_LSENDが記述されたラインであるか否かを確認する。
【0201】
ランプシナリオデータ終了コードD_LSENDが記述されたラインではなければ、演出制御CPU200はステップS627で、当該ラインに記述されているランプチャネルdwCH及びランプ
ナンバを取得し、ステップS628で、取得したランプチャネルdwCHに点灯パターンナンバの登録を行う。
点灯パターンナンバの登録処理を
図21Bに示している。この場合、まず演出制御CPU200はステップS651で、当該ラインに記述されているランプチャネルdwCHの値が正常値であるか否かを判別する。正常値でなければ登録を行わずに処理を終える。
正常値であれば、ステップS652で、当該ラインに記述されているランプナンバが正常値であるか否かを判別する。正常値でなければ登録を行わずに処理を終える。
ランプチャネルdwCH及びランプ番号のいずれもが正常値であれば、ステップS653でワークのランプデータ登録情報における、ランプチャネルdwCHに対応する領域に登録点灯ナンバ(lmpNew)と実行点灯ナンバ(lmpNo)をセットする。即ちランプサブシナリオテーブルの当該ラインから取得したランプナンバを、登録点灯ナンバ(lmpNew)にセットし、「0」を実行点灯ナンバ(lmpNo)にセットする。
以上の
図21Bの処理をステップS628で行ったら、演出制御CPU200はステップS629でサブシナリオ実行ラインlmp(lmpIx)の値を+1し、ステップS630でランプチャネルdwCHの値を+1してステップS624に戻る。
【0202】
ステップS624で、メインシナリオタイマの時間が、サブシナリオ実行ラインlmp(lmpIx)で示されるラインの時間データ(time)に達していない場合、及びステップS626でランプシナリオデータ終了コードD_LSENDが確認された場合は、演出制御CPU200の処理はステップS631へ進む。
ステップS631ではサブシナリオタイマ(scTm)が0であるか否かを確認する。0でなければ、音及びモータの登録を行わずにステップS639へ進む。この場合ステップS640でサブシナリオタイマ(scTm)の値をデクリメントして、この
図21Aの処理を終えることとなる。
【0203】
ステップS631の時点でサブシナリオタイマ(scTm)=0であれば、演出制御CPU200は処理をステップS632に進め、メインシナリオテーブルに記述されているサブシナリオ番号と、現在処理中のシナリオチャネルsCHnに登録されているサブシナリオ実行ライン(scIx)に対応する音/モータサブシナリオテーブルのアドレスを特定する。
そしてステップS633では演出制御CPU200は、該当する音/モータサブシナリオ番号のテーブルの、サブシナリオ実行ライン(scIx)で示されるラインが、シナリオデータ終了コードD_SEENDが記述された行であるか否かを確認し、シナリオデータ終了コードD_SEENDが記述された行であれば処理を終了する。
シナリオデータ終了コードD_SEENDが記述された行でなければ、演出制御CPU200はステップS634で、サブシナリオタイマ(scTm)に、当該ラインの時間データ(time)から前回時間(scPrevTm)を減算した値を代入する。また前回時間(scPrevTm)には、当該ラインの時間データ(time)を代入する。
【0204】
そして演出制御CPU200はステップS635で音の登録を行い、またステップS636でモータの登録を行う。詳述は避けるが、
図25Bに例示した音/モータサブシナリオテーブルの該当サブシナリオ番号の該当ラインの情報を、
図22Cのモータデータ登録情報の任意のモータチャネル、及び
図23の音データ登録情報の任意の音チャネルに登録する処理を行う。またステップS637でそのラインに記述されたソレノイド/ユーザオプションの情報も、シナリオ登録情報等に登録する。
そしてステップS638で、サブシナリオ実行ライン(scIx)の値として次のラインの値をセットする。そしてステップS639でサブシナリオタイマ(scTm)が0でなければ、ステップS640でサブシナリオタイマ(scTm)をデクリメントして処理を終える。
【0205】
図13のステップS110では、以上のように
図20,
図21の処理が行われ、ワーク上のシナリオ登録情報、ランプデータ登録情報、モータデータ登録情報、音データ登録情報が逐次更新される。これに応じて演出制御が行われることで、シナリオに沿った演出動作が実行される。
【0206】
[6−6:LED駆動データ更新処理]
図13のステップS114のLED駆動データ更新処理を説明する。
この処理は、ランプデータ登録情報に登録されている点灯ナンバ(登録点灯ナンバ(lmpNew)、実行点灯ナンバ(lmpNo))に対応するランプデータテーブルを参照して、LED駆動データを作成する処理である。なお上述のように、ランプデータ登録情報の点灯ナンバには、元々はランプサブシナリオテーブルに記述された、点灯パターンを示すランプナンバがセットされる。ランプナンバは点灯パターンを示すナンバと述べたが、具体的には
図31Aで述べるランプデータテーブルのランプデータの番号を示すことになる。
【0207】
図26はLED駆動データ更新処理を示している。
演出制御CPU200はステップS701でそれまで出力データとしていたLED駆動データをクリアする。
そしてループ処理LP2として、ランプデータ登録情報のランプチャネルdwCH0〜dwCH15のそれぞれについて、ステップS702〜S720の処理が行われる。以下、処理対象のランプチャネルを「dwCHn」と表記して説明する。
【0208】
ステップS702では演出制御CPU200は対象のランプチャネルdwCHnにおける実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致しているか否かを確認する。先の
図21BのステップS653のように点灯パターンナンバの登録が行われるため、最初は一致していない。一致していなければ点灯開始として、ステップS703で、実行点灯ナンバ(lmpNo)に登録点灯ナンバ(lmpNew)の値を代入する。またステップS704で、実行ライン(ofset)を0にセットし、また実行時間(time)を0にセットする。
なお実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致していれば、既に過去に以上のステップS703,S704の処理が行われたものであるため、これらの処理は不要である。
【0209】
或るランプチャネルdwCHに登録された情報については、登録後、このLED駆動データ更新処理の機会毎に、その情報が反映されて各LEDドライバ90に出力するLED駆動データが作成されていく。
図29Aは、
図22Bに示したワークのランプデータ登録情報において、ランプチャネルdwCH0、dwCH5、dwCH8に登録が行われている状態を示している。この図の状態は、
図29Bの時点t0の状態の一例である。
即ちランプチャネルdwCH0、dwCH5の情報については、時点t0より以前に、LED駆動データに反映されている。ランプチャネルdwCH0については、既に実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致され、また実行ライン(ofset)は3(3ライン目)まで進んでいる。またランプチャネルdwCH5についても、既に実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致され、また実行ライン(ofset)は2(2ライン目)まで進んでいる。時点t0では、ランプチャネルdwCH8は登録直後であり、まだ実行点灯ナンバ(lmpNo)と登録点灯ナンバ(lmpNew)が一致されていない。この後、上記ステップS703,S704の処理が行われることになる。
【0210】
なお前述したように本実施の形態では、ランプチャネルdwCH0〜dwCH15には優先順位が設定されており、ランプチャネルdwCH0からdwCH15に向かって順にプライオリティが高くなる。
図29Aに示すように、優先度の高いランプチャネルdwCH15はエラー報知用に使用される。ランプチャネルdwCH12,dwCH13,dwCH14等、優先度が高いランプチャネルは、連続予告や確定予告等、比較的信頼度の高い演出用などに用いられる。また優先度が中程度のランプチャネルは可動体演出用、優先度が比較的低いランプチャネルは、会話予告やステップアップ予告など比較的信頼度の低い演出用に用いられ、さらに優先度が低いランプチャネルは、通常変動、リーチ等に同期したランプ演出に用いられる。
このような優先度の設定のため、
図29Bのように複数のランプチャネルdwCHの動作が重なる場合、優先度の高いランプチャネルの点灯動作が実行される。例えば時点t0からは、ランプチャネルdwCH0、dwCH5に基づく点灯動作が制限され、dwCH8に基づく点灯が行われるようにLED駆動データが生成される。優先度の低いランプチャネルの情報を反映させないようにするためには、後述するマスクデータが使用される。
【0211】
続いて
図26のステップS705では、演出制御CPU200は実行点灯ナンバ(lmpNo)の値が正常範囲であるか否かを確認する。正常範囲とは、
図31Aに示すランプデータテーブルのランプデータとして番号が存在する範囲である。
実行点灯ナンバ(lmpNo)が異常であれば、ステップS719に進む。なおランプチャネルdwCHnが登録されていない空きチャネルの場合も、ここでは異常としてステップS719に進む。
【0212】
実行点灯ナンバ(lmpNo)が正常であれば、ステップS706に進む。ステップS706では演出制御CPU200は、ランプチャネルdwCHnに登録された実行点灯ナンバ(lmpNo)、実行ライン(ofset)に対応する、ランプデータテーブルのアドレスを特定する。
またステップS707では、ランプチャネルdwCHnに登録された実行点灯ナンバ(lmpNo)、マスクデータテーブルのアドレスを特定する。
アドレスの特定のためには演出制御CPU200は、
図30のようなランプデータアドレステーブルを参照する。このランプデータアドレステーブルには、各点灯パターン、例えば全体点滅、右側点滅、左側点滅、役物点灯などを実現するためのランプデータ番号のアドレスが示されている。
図30の左端の数字は、
図25Aのランプサブシナリオテーブルで示されるランプナンバであり、例えばランプナンバ2のランプデータのアドレスの欄には、全体点滅の点灯パターンを行うためのランプデータ番号が記憶されたアドレスが記述されている。
また、マスクデータのアドレスの欄には、そのランプデータ番号の点灯パターンを実行する際に必要なマスクデータが記憶されたアドレスが記憶されている。例えば点灯ナンバ5の右側点滅の点灯パターンを行う際には、センターケースマスクが必要になるが、そのセンターケースマスクを行うためのマスクデータのアドレスが記述されている。
【0213】
図31Aにはランプデータテーブルの一部としてランプデータ1,2を示している。
各番号のランプデータにおける各ラインには、タイマ(frame)としての時間データと点灯データが記述されている。タイマ(frame)は各ラインの点灯データによるLED駆動データの生成を行う時間を規定する。
点灯データは、各LEDドライバ90に対応して記述されている。先に
図4では、枠ドライバ部61にはn個、盤ドライバ部62にはm個のLEDドライバ90が存在するとしたが、その場合、ランプデータの各ラインには、
図31Aに示すように、(n+m)個のLEDドライバ90のそれぞれに対応して点灯データが記述される。なお図では各LEDドライバ90との対応をLEDドライバ90のスレーブアドレスでw1〜w(n)、b1〜b(m)で示している。
点灯データとしては、
図4,
図5で説明した、LEDドライバ90の1つの電流端子96(1系列のLED駆動電流生成)に対して4ビット(0h〜Fh)が割り当てられ(「h」は16進表記を示す)、16階調の輝度を指定するようにされている。
図5で述べたように、LEDドライバ90には24個の電流端子96−1〜96−24がある。このため、1つの点灯データは、「FFFF000055550000AAAAAAAA(h)」のように、(4×24)ビットの情報となる。仮に図示のランプデータ1の1ライン目のように、LEDドライバ90(w1)についての点灯データが、「FFFF00000000000055550000(h)」であれば、LEDドライバ90(w1)の電流端子96−1〜96−4からは最大輝度「F」を発光させるための駆動電流を出力し、電流端子96−5〜96−16及び96−21〜96−24は非発光(最低輝度)、電流端子96−17〜96−20は輝度「5」としての駆動電流を出力することを指定する情報となる。
ランプデータにはこのような点灯データが、各LEDドライバ90(w1〜w(n)、b1〜b(m))のそれぞれに対して設定されて、かつそれらがライン毎に設定されることで、時系列的に変化する所定の発光パターンが示されることになる。(図では点灯データは一部のみに例示した。空欄部分は図示を省略したもので、実際には点灯データが記述される)
【0214】
ところでこの
図31Aの例ではスレーブアドレスが「b2」及び「b3」のLEDドライバ90に対応する領域の一部(領域Azh、Aj)には斜線を付している。この斜線部の領域Azh、Ajはダミーデータ(例えばオール“0”)が記述されている。
この領域Azh、Ajは、スレーブアドレスが「b2」及び「b3」のLEDドライバ90において状況提示用発光部としてのLED120が接続された電流端子に対応するデータ領域である。
【0215】
図7で説明したようにスレーブアドレス「b2」のLEDドライバ90は、電流端子96−1〜96−8に、保留数表示用発光部20Hとしての発光部20H−1〜20H−8に相当するLED120が接続されている。また電流端子96−9〜96−11には、図柄識別用発光部20Zとしての発光部20Z−1〜20Z−3に相当するLED120が接続されている。
図31Aのランプデータテーブルにおいて、スレーブアドレス「b2」の電流端子96−1〜96−11に対応する(4×11)ビットの領域が、斜線部で示す領域Azhであり、この領域Azhにはダミーデータが配置されている。
【0216】
また、前述のようにスレーブアドレス「b3」のLEDドライバ90は、電流端子96−1〜96−3に、遊技状態報知用発光部20Jとしての発光部20J−1〜20J−3に相当するLED120が接続されている。
図31Aのランプデータテーブルにおいて、スレーブアドレス「b3」の電流端子96−1〜96−3に対応する(4×3)ビットの領域が、斜線部で示す領域Ajであり、この領域Ajにはダミーデータが配置されている。
【0217】
これらの領域Azh、Ajのダミーデータは、後述するステップS721の処理で、状況提示用(遊技状態報知用、保留数表示用、遊技状態報知用)の発光駆動データに差し替えられることとなる。
【0218】
図31Bにはマスクデータテーブルの例として、マスクデータ1〜5を示している。各マスクデータは、枠側の発光部20wの駆動についてのマスクのため、盤側の発光部20bの駆動についてのマスクのため、全体のマスクのため、センターケースのマスクのため、役物のマスクのためなどとして、必要なマスクパターンが記憶されている。
各マスクデータ1〜5は、それぞれ各LEDドライバ90(w1〜w(n)、b1〜b(m))の各電流端子96−1〜96−24について、消灯を「0h」、マスク無しを「Fh」で示すデータとされている。
例えばマスクデータ1についてみると、枠ドライバ部61におけるLEDドライバ90(w1〜w(n))については、「0000・・・・・00(h)」と、各電流端子96−1〜96−24について消灯が設定され、盤ドライバ部62のLEDドライバ90(b1〜b(m))については、「FFFF・・・・・FF(h)」と、各電流端子96−1〜96−24についてマスク無しが設定されている。つまり枠側の発光部20wのみをマスクすることを指定するデータとなる。(なお、マスクデータ4,5はデータ値の図示を省略している)
【0219】
なお、各マスクデータにおいて、ランプデータにおいてダミーデータが配置されている領域Azh、Ajに対応する領域Mzh、Mjは、全てマスク無しを示す「Fh」とされている。即ちマスクデータのうちで、スレーブアドレス「b2」の電流端子96−1〜96−11に対応する(4×11)ビットの領域と、スレーブアドレス「b3」の電流端子96−1〜96−3に対応する(4×3)ビットの領域については、マスク設定はされていない。
【0220】
図26のステップS706,S707では、このようなランプデータテーブル、マスクデータテーブルにおいて、処理中のランプチャネルdwCHnに対応するアドレスを特定するものである。
続いてステップS708で演出制御CPU200は、ランプデータテーブルの該当ライン(現在対象のランプチャネルdwCHnの実行ライン(offset)で示されるライン)のタイマ(frame)を取得し、これを変数Dtimeに代入する。
【0221】
ステップS709で演出制御CPU200は、上記ステップS706,S707で特定した該当の点灯データとマスクデータを展開し、LED駆動データを生成していく。この処理については後述するが、現在処理中のランプチャネルdwCHnについての点灯データとマスクデータを、出力するLED駆動データに反映させる処理となる。
【0222】
ステップS710ではランプチャネルdwCHnの情報である実行時間(time)を+1する。
ステップS711では変数Dtimeと実行時間(time)を比較する。変数Dtimeには現在実行中のラインのタイマ(frame)が代入されている。実行時間(time)はLED駆動データ更新処理毎(16ms毎)に上記ステップS710で+1される。従ってDtime≦timeとなれば、現ラインの終了タイミングとなる。Dtime≦timeではなければ、まだ現在のラインの終了に至らないとしてステップS711からS719に進む。Dtime≦timeの場合は、現在のラインの終了としてステップS711からS712に進む。
演出制御CPU200はステップS712で実行時間(time)を0にリセットする。またステップS713で、実行ライン(offset)の値を+1する。つまり次のラインが対象となるようにする。
ステップS714では演出制御CPU200は、実行ライン(offset)に対応するランプデータテーブル該当ラインのアドレスを特定する。そしてステップS715,S717で、そのラインに終了コード(D_DTEND)が記述されているか、ループコード(LMP_LP)が記述されているかを確認する。
終了コード(D_DTEND)が記述されていた場合は、ステップS716で、当該ランプチャネルdwCHnの登録点灯ナンバを0に更新する。つまりワーク上で、当該ランプチャネルdwCHの登録に応じた処理が完了したことを示すようにする。
ループコード(LMP_LP)が記述されていた場合はステップS718で、実行ライン(offset)の値をループ先のアドレスに更新する。
【0223】
ステップS719で演出制御CPU200は、ランプチャネルdwCHnの時点のLED駆動データのチェックサムを算出する。またステップS720でバックアップ用データを保存する。
以上で、1つのランプチャネルdwCHnを対象としたLEDデータ更新を終える。ループ処理LP2として、以上の処理をランプチャネルdwCH0〜dwCH15まで順次行うことになる。
【0224】
各ランプチャネルdwCHnでのLED駆動データの更新は、ステップS709で行われるが、これは次のような処理となる。
図32Aは点灯データとマスクデータを展開して生成したLED駆動データを記憶する出力データバッファ(発光駆動データ記憶部)を模式的に示している。
出力データバッファは、ランプデータテーブル及びマスクデータテーブルと同様に、各LEDドライバ90(w1〜w(n)、b1〜b(m))のそれぞれに対応して用意される。図示する1つのマスは、1つのLEDドライバ90に対応する(4×24)ビットの情報のバッファ領域を示している。
【0225】
このような出力データバッファに対して、ステップS709では、マスクデータをアンド(論理積)で展開し、点灯データをオア(論理和)で展開する処理が行われる。これがループ処理(LP2)により、各ランプチャネルdwCH0〜dwCH15について順次ステップS709で行われる。
例えば
図29で示した時点t0の場合、出力データバッファは、ランプデータ2のマスクデータ(
図30参照:マスクなし)がアンド展開され、ランプデータ2の3ライン目の点灯データがオア展開された状態の後、ランプデータ5のマスクデータ(
図30参照:センターケースマスク)がアンド展開され、ランプデータ5の2ライン目の点灯データがオア展開された状態となっている。
上述の通りマスクデータは0h(=0000)が消灯、Fh(=1111)がマスクなしである。従ってマスクデータをアンドで展開するということは、その時点までの出力データバッファの値について、消灯(マスク)したいビットを「0」とし、マスクしないビットは変更しないということになる。
さらに点灯データをオアで展開するということは、処理中のランプチャネルdwCHの点灯データが、マスク後の出力データバッファに反映されるということになる。
この処理をランプチャネルdwCH0〜dwCH15について順次行うことで、高い番号のランプチャネルほど優先されたLED駆動データが出力データバッファ上に形成されることになる。
【0226】
このようにランプデータ登録情報(
図22B参照)には、複数の発光演出に対応する複数種類のランプデータが、優先順位が設定された複数の階層にセットされる場合に、優先順位が低い順にランプデータを反映させていって、発光演出用のLED駆動データを作成することで、簡易な処理で優先順位を反映した発光演出用のLED駆動データ生成が可能となる。
【0227】
図26のループ処理LP2で、ランプチャネルdwCH0〜dwCH15で指定されるランプデータに基づくLED駆動データを生成した時点では、このLED駆動データとして複数種類のランプデータに基づいて演出用発光部20w、20bに対する演出用発光駆動情報が生成されたものといえる。
しかしこの時点では
図32Aの出力データバッファ上のLED駆動データは、スレーブアドレス「b2」の電流端子96−1〜96−11に対応する(4×11)ビットの領域DBzhと、スレーブアドレス「b3」の電流端子96−1〜96−3に対応する(4×3)ビットの領域DBjについては、ランプデータテーブルの領域Azh、Ajのダミーデータが展開された状態であり、まだ状況提示用の発光部20Z、20H、20Jに対する状況提示用(変動図柄識別用、保留数表示用、遊技状態報知用)の発光駆動情報は反映されていない。
【0228】
そこで演出制御CPU200は
図26のステップS721で、状況提示用(変動図柄識別用、保留数表示用、遊技状態報知用)の発光駆動情報を生成し、これを出力データバッファに展開して、出力データバッファ上で、演出用発光駆動情報と状況提示用発光駆動情報が合成された1タイミング分のLED駆動データが作成されるようにする。
【0229】
図27でステップS721の処理例を説明する。
演出制御CPU200はステップS731で、図柄変動フラグをチェックする。
図16Cの説明で述べたように、演出制御CPU200は、逐次、主制御部CPU100からの図柄指定コマンドに応じて第1特別図柄変動フラグFZ1、第2特別図柄変動フラグFZ2、普通図柄変動フラグFZ3をセットしている。ステップS731ではこれらの図柄変動フラグ(FZ1,FZ2,FZ3)を確認し、各図柄変動フラグに応じてステップS732で、スレーブアドレス「b2」の電流端子96−9〜96−11に対応する(4×3)ビットの発光駆動データを設定する。そしてこれをステップS733で、出力データバッファ上の該当領域(即ち領域DBzhの後半の4×3ビット)に展開する。
【0230】
この場合、変動図柄識別用の発光部20Z−1,20Z−2,20Z−3についての階調値を設定するわけであるが、それぞれについて、点灯させる場合は「Fh:(=1111)」、消灯の場合は「0h(=0000)」とする。なお点滅の場合は所定タイミング毎に「Fh」と「0h」を交互に設定することになるため、図柄変動フラグが点滅を指示する状態であれば、今回が「Fh」とするタイミングであるか、「0h」とするタイミングであるかを別途管理している。
そしてそれぞれ「0h」又は「Fh」とされた3つの発光部20Z−1,20Z−2,20Z−3についての各階調値(4×3ビット)を、出力データバッファ上で、領域DBzhの後半の4×3ビットに展開する。このとき点灯(「Fh」)の場合は、OR展開し、消灯(「0h」)の場合はAND展開する。ダミーデータがオール0データであるため、これによって発光部20Z−1,20Z−2,20Z−3についての各階調値が出力データバッファ上のLED駆動データに反映される。
なお、本例のようにダミーデータが「0h」である場合、発光部20Z−1,20Z−2,20Z−3についての階調値が「0h」と「Fh」のいずれの場合であっても、領域DBzhに対してOR展開するようにしてもよい。
しかしOR展開の場合、ノイズ等でダミーデータ(「0h」)が何らかの値に書き換わった場合、その不定なデータが出力されることになる。これに対し上記のように消灯(「0h」)の場合はAND展開することとすれば、ダミーデータがどんな値になっているかに関わらず、消灯(「0h」)の場合は「0h」とできる。つまり点灯(「Fh」)の場合はOR展開し、消灯(「0h」)の場合はAND展開することで、ノイズ等によるダミーデータの変化に関わらず、発光部20Z−1,20Z−2,20Z−3についての各階調値を正しく反映させたLED駆動データを出力データバッファ上で生成できる。
【0231】
続いて演出制御CPU200はステップS734で、保留数をチェックする。これは
図17A、
図17Bの説明で述べたように、演出制御CPU200は、逐次、主制御部CPU100からの保留加算コマンド、保留減算コマンドに応じて第1保留数、第2保留数を更新している。ステップS734ではこれらの第1保留数、第2保留数を確認し、ステップS725ではこれらの値に応じて、スレーブアドレス「b2」の電流端子96−1〜96−8に対応する(4×8)ビットの発光駆動データを設定する。そしてこれをステップS736で、出力データバッファ上の該当領域(即ち領域DBzhの前半の4×8ビット)に展開する。
【0232】
この場合、保留数表示用の発光部20H−1〜20H−8についての階調値を設定するわけであるが、それぞれについて、点灯させる場合は「Fh」、消灯の場合は「0h」とする。そしてそれぞれ「0h」又は「Fh」とされた8つの発光部20H−1〜20H−8についての各階調値(4×8ビット)を、出力データバッファ上で、領域DBzhの前半の4×8ビットにOR展開(「Fh」の場合)又はAND展開(「0h」の場合)する。ダミーデータがオール0データであるため、この展開によって発光部20H−1〜20H−8についての各階調値が出力データバッファ上のLED駆動データに反映される。
【0233】
続いて演出制御CPU200はステップS737で遊技状態報知フラグをチェックする。
図17Cの説明で述べたように、演出制御CPU200は、逐次、主制御部CPU100からの状態報知コマンドに応じて、例えば「大当たり中」「確変中」「時短中」を示すフラグFJ1,FJ2,FJ3をセットしている。ステップS7317はこれらの遊技状態報知フラグ(FJ1,FJ2,FJ3)を確認し、ステップS738で各遊技状態報知フラグに応じて、スレーブアドレス「b3」の電流端子96−1〜96−3に対応する(4×3)ビットの発光駆動データを設定する。そしてこれをステップS739で、出力データバッファ上の該当領域(即ち領域DBjの4×3ビット)に展開する。
【0234】
この場合、遊技状態報知用の発光部20J−1,20J−2,20J−3についての階調値を設定するわけであるが、それぞれについて、点灯させる場合は「Fh」、消灯の場合は「0h」とする。
そしてそれぞれ「0h」又は「Fh」とされた3つの発光部20J−1,20J−2,20J−3についての各階調値(4×3ビット)を、出力データバッファ上で、領域DBjの4×3ビットにOR展開(「Fh」の場合)又はAND展開(「0h」の場合)する。ダミーデータがオール0データであるため、この展開によって発光部20J−1,20J−2,20J−3についての各階調値が出力データバッファ上のLED駆動データに反映される。
【0235】
ステップS740で演出制御CPU200は、展開したLED駆動データのチェックサムを算出する。またステップS741でバックアップ用データを保存する。
以上の
図27の処理が
図26のステップS721として行われる。この状態で、
図32の出力データバッファ上には、演出用発光部20w、20bに対する演出用発光駆動情報と、状況提示用の発光部20Z、20H、20Jに対する状況提示用(変動図柄識別用、保留数表示用、遊技状態報知用)の発光駆動情報が合成された1タイミング分のLED駆動データが生成され、記憶されたことになる。
【0236】
[6−7:第1の実施の形態のLED出力処理]
上述のようにLEDデータ更新処理で生成されたLED駆動データは、
図13のステップS115で、実際に各LEDドライバ90に出力される。
本実施の形態では、演出制御CPU200は、LED駆動データの一送信単位のシリアルデータを、第1系統、第2系統の駆動信号出力手段(枠ドライバ部61と盤ドライバ部62)に対して略同時的に出力する。
例えば
図32Bに示すように、シリアルデータ送信チャネルch1により枠ドライバ部61のLEDドライバ90(w1〜w(n))にLED駆動データの送信を行い、シリアルデータ送信チャネルch2により盤ドライバ部62のLEDドライバ90(b1〜b(m))にLED駆動データの送信を行う。
なお本実施の形態ではシリアルデータ送信チャネルch1、ch2によるLED駆動データの送信を並行して同時的に行うものとしているが、必ずしも同時的でなくても良い。
【0237】
図33は、1つのLEDドライバ90に送信するLED駆動データのシリアルデータ構造を示している。
例えば
図32Bに示した、各LEDドライバ90(w1〜w(n)、b1〜b(m))のそれぞれに対しては、この
図33の構造のシリアルデータでLED駆動データが送信される。なおこの
図33は、
図4、
図5で説明したシリアルデータDATA及びイネーブル信号ENABLEを示している。
このシリアルデータは、イネーブル信号ENABLEがONとされた期間に、1バイト毎順次送信が行われる。つまり当該構造のシリアルデータは、各1バイトが一送信単位となる。
【0238】
当該シリアルデータDATAは、1バイトのスレーブアドレス、1バイトのデータ設定開始レジスタアドレス(SX)、各1バイトの、アドレス(SX)への書込データ、アドレス(SX+1)への書き込みデータ、・・・アドレス(SX+23)への書き込みデータの合計26バイトで構成される。
このようなシリアルデータDATAは、イネーブル信号ENABLEで規定される期間に、LEDドライバ90に取り込まれる。
【0239】
「スレーブアドレス」は各LEDドライバ90のデバイスIDであり、w1〜w(n)、又はb1〜b(m)の別を識別する1バイトコードである。
「データ設定開始レジスタアドレス(SX)」は、LEDドライバ90内のデータ取り込みのためのレジスタの先頭を指定する情報である。例えば
図5のデータバッファ/PWMコントローラ93の内部レジスタの指定情報である。本実施の形態で採用するLEDドライバ90は、シリアルデータ取り込みのために例えばレジスタアドレス00h〜2Chのレジスタ(各8ビット)が用意される。そのうちのレジスタアドレス15h〜2Chの24個のレジスタ(各8ビット)は、24個の電流端子96−1〜96−24に対応した点灯データ(PWM階調指示データ)を入力するレジスタ(階調値設定部)とされている。そのため「データ設定開始レジスタアドレス(SX)」としてはレジスタアドレス15hを指定する。
「アドレス(SX)への書込データ」としては、「データ設定開始レジスタアドレス(SX)」で指定されたレジスタアドレス(本実施の形態では「15h」)のレジスタへの書き込みデータ、即ち電流端子96−1に対応するLED駆動データがセットされる。
「アドレス(SX+1)への書込データ」としては、「データ設定開始レジスタアドレス(SX)」で指定されたレジスタアドレス+1(本実施の形態では「16h」)のレジスタへの書き込みデータ、即ち電流端子96−2に対応するLED駆動データがセットされる。
以下同様であり、「アドレス(SX+23)への書込データ」としては、「データ設定開始レジスタアドレス(SX)」で指定されたレジスタアドレス+23(本実施の形態では「2Ch」)のレジスタへの書き込みデータ、即ち電流端子96−24に対応するLED駆動データがセットされる。
【0240】
なお、これら書き込みデータは8ビット構造であるが、上述のように1つの点灯データは「0h(=0000)」〜「Fh(=1111)」の4ビット構造である。4ビットで16階調の輝度を表す。一方、PWM階調指示データを入力するレジスタアドレス15h〜2Chの各レジスタ(各8ビット)は、8ビットで256階調に対応可能である。
本実施の形態の場合、点灯データは16階調のデータとするため、レジスタアドレス15h〜2Chの各レジスタへの8ビットの書き込みデータとしては、上位4ビットに、点灯データをセットするようにしている。この点については後述する。
また、
図13のステップS113ではLEDドライバ90の初期化を行うと述べたが、これは具体的には、使用しないレジスタアドレス00h〜14hのレジスタにデフォルト値をセットする送信処理となる。この点についても後述する。
【0241】
図28で、16ms処理のステップS115で行われるLED駆動データ出力処理を説明する。
演出制御CPU200は
図28のステップS801で、スタート値に対応するシリアルデータ出力チャネルch1、ch2のLED駆動データ(
図32Aの出力データバッファ)の先頭アドレスを特定する。
スタート値とは、最初に送信するLEDドライバ90の値である。本実施の形態ではシリアルデータ出力チャネルch1、ch2からそれぞれ、LEDドライバ90(w1)、LEDドライバ90(b1)に対して最初に送信を行うため、ここでは
図32Aの出力データバッファにおいてw1用のLED駆動データが格納された先頭アドレスと、b1用のLED駆動データが格納された先頭アドレスを特定することになる。
【0242】
次にステップS802で演出制御CPU200は、スタート値に対応する、シリアルデータ出力チャネルch1、ch2のスレーブアドレスを特定する。即ち「w1」「b1」を示すアドレスコードである。
【0243】
そしてループ処理LP3として、ドライバナンバ個数分、ステップS803〜S815の処理をループして実行する。
シリアルデータ出力チャネルch1からは枠ドライバ部61のn個のLEDドライバ90に送信を行い、シリアルデータ出力チャネルch2からは盤ドライバ部62のm個のLEDドライバ90に送信を行いものであるため、ループ処理の回数はn回又はm回(n、mの多い方の値)となる。仮にn<mとすると、m回となる。
【0244】
ステップS803では、演出制御CPU200はシリアルデータ出力チャネルch1,ch2におけるイネーブル信号ENABLEをONとする。
そしてステップS804で演出制御CPU200は、シリアルデータ出力チャネルch1,ch2のシリアルデータDATAの出力として、最初の一送信単位(1バイト)のデータ送信、即ちこの場合は
図33のシリアルデータ構造に示した先頭1バイトのスレーブアドレスを送信出力する。シリアルデータ出力チャネルch1,ch2については並行して同時的にデータ送信を行う。
その一送信単位の送信を行ったら、ステップS805,S806で、各シリアルデータ出力チャネルch1,ch2についての送信出力完了を待機する。
【0245】
シリアルデータ出力チャネルch1,ch2についての送信出力完了が確認されたら、演出制御CPU200はステップS807で、次の一送信単位(1バイト)のデータ送信として、データ設定開始レジスタアドレス(SX)(本例の場合15h)を送信出力する。この場合も、シリアルデータ出力チャネルch1,ch2について並行して同時的にデータ送信を行う。
その一送信単位の送信を行ったら、ステップS808,S809で、各シリアルデータ出力チャネルch1,ch2についての送信出力完了を待機する。
【0246】
ステップS808,S809でシリアルデータ出力チャネルch1,ch2についての送信出力完了が確認されたら、演出制御CPU200はステップS810で、一送信単位(1バイト)のデータ送信として、レジスタアドレス(SX=15h)〜(SX+23=2Ch)への書込データ(=LED駆動データ)を送信出力する。
まずはレジスタアドレス(15h)への1バイトのLED駆動データ送信を、シリアルデータ出力チャネルch1,ch2について並行して同時的に行う。そしてステップS811,S812で、各シリアルデータ出力チャネルch1,ch2についての送信出力完了を待機する。
送信完了を確認したら、ステップS813で、合計24バイト、つまりレジスタアドレス15h〜2ChまでのLED駆動データ送信完了が確認されるまで、1バイトずつ、ステップS810の送信を実行していく。従って、次はレジスタアドレス(16h)への1バイトのLED駆動データ送信を、シリアルデータ出力チャネルch1,ch2について行う。さらにその送信確認後、レジスタアドレス(17h)へのLED駆動データ送信が行われる。以降も、送信完了待機→レジスタアドレス(18h)へのLED駆動データ送信→送信完了待機→レジスタアドレス(19h)へのLED駆動データ送信→送信完了待機・・・→レジスタアドレス(2Ch)へのLED駆動データ送信→送信完了待機という処理が行われていく。
【0247】
LED駆動データについて24バイトの送信出力が完了したら、
図33の構造の1つのLEDドライバ90に対するシリアルデータ出力が完了したことになる。そこでステップS814でイネーブル信号ENABLEをオフとし、次に対象とするスレーブアドレスを+1する。そしてループ処理の1回を終える。
図34は、以上の1回のループ処理で送信されるデータを示している。シリアルデータ出力チャネルch1,ch2において図示のように並列的にスレーブアドレス、データ設定開始レジスタアドレス、LED駆動データLPDT1,LPDT2・・・LPDT24が順次送信される。
このような送信が行われ、LEDドライバ90にLED駆動データがセットされる。LEDドライバ90側では、各レジスタ(15h〜2Ch)に書き込まれたLED駆動データLPDT1,LPDT2・・・LPDT24に示される発光輝度(0h〜Fhの16階調)基づいて、各電流端子96−1〜96−24の電流量が制御され、各電流端子96−1〜96−24に接続された各系列のLED120の発光が行われる。
【0248】
続いて2回目のループ処理として、LEDドライバ90(w2)、LEDドライバ90(b2)について、同様にステップS803〜S815の処理が行われる。さらにその後、3回目のループ処理として、LEDドライバ90(w3)、LEDドライバ90(b3)について、同様にステップS803〜S815の処理が行われる。
以降、LEDドライバ90(w(n))、LEDドライバ90(b(m))の全てに送信するまで、ループ処理LP3が繰り返される。なお、n<mの場合、枠ドライバ部61のn個のLEDドライバ90の全てにシリアルデータ送信を完了した後は、盤ドライバ部62の残りのLEDドライバ90に対してのみステップS803〜S815の処理が行われることになる。
m回のループ処理LP3で
図32Bに示したような、(n+m)個の各LEDドライバ90へのシリアルデータ出力が実行され、LED駆動データ出力(
図13のステップS115の処理)が完了する。なお、搭載されるLEDドライバ90の数が異なれば、当然ループ回数も変化する。
また以上の例は2つのシリアルデータ出力チャネルch1,ch2を用いる例で述べているが、3以上のシリアルデータ出力チャネルを利用する場合も、それらが並行して同時的にシリアルデータ送信が行われるようにすれば良い。
【0249】
以上の
図28の処理のように、本実施の形態では、演出制御CPU200は、第1系統(シリアルデータ出力チャネルch1)と第2系統(シリアルデータ出力チャネルch2)の駆動信号出力手段(枠ドライバ部61と盤ドライバ部62)には、一送信単位のシリアルデータを同時的に送信する。そして当該送信の完了後、次の一送信単位のシリアルデータを、第1系統と第2系統の駆動信号出力手段に対して略同時的に送信する。このような処理で、LED駆動データを各LEDドライバ90へ送信していく。
これにより全体のシリアルデータ送信動作に要する時間を短縮でき、もって演出制御CPU200の処理負担を軽減できる。
【0250】
この理由を説明する。
図35は演出制御CPU200がシリアルデータ送信に使用するクロック信号CLK、送信データ、TDRE(送信データエンプティフラグ)、及び送信データの送信データレジスタへの書込タイミングを示している。
送信データとは、上述のスレーブアドレス、データ設定開始レジスタアドレス、LED駆動データLPDT1,LPDT2・・・LPDT24に相当する。ここでは1送信単位としての8ビットをデータd0〜d7として示している。
【0251】
演出制御CPU200は、
図28のステップS804,S807,S810のそれぞれで一送信単位の8ビットデータを送信する場合、各シリアルデータ出力チャネルch1,ch2における送信データレジスタに8ビットの送信データを書き込む。送信データレジスタへ書き込まれた送信データは、クロック信号CLKのタイミング毎に1ビットずつ送信出力される。
ここで、TDREは、送信データレジスタに送信データを書き込むと「0」となり、送信データレジスタに有効なデータが存在していることを示す。そして送信データレジスタのデータが実際に送信出力(送信用シフトレジスタへのロード)されて送信が開始されると「1」になり、送信データレジスタに有効なデータが存在しないことを示す。
従って演出制御CPU200の送信処理としては、TDREが「1」となったことを確認して、8ビットの送信データを送信データレジスタへ書き込み、その次の8ビットの送信データの書き込みは、次にTDREが「1」となるまで待機する。即ち
図35に待機時間TWとして示す期間は、次の送信データの処理ができないことになる。
【0252】
シリアルデータ送信に関し、従来は、1つのシリアルデータ出力チャネルから例えば第1系統の駆動信号出力手段に一送信単位(8ビット)のシリアルデータを送信し、当該送信の完了後、次の送信チャネルから第2系統の駆動信号出力手段に一送信単位(8ビット)のシリアルデータを送信していく、というように送信動作を行っていた。例えば
図28のステップS804〜S806に相当する処理は、従来通常は、
(ST1)ch1からスレーブアドレス出力(送信データレジスタへの書込)
(ST2)送信出力完了待機
(ST3)ch1からデータ設定開始レジスタアドレス出力(送信データレジスタへの書込)
(ST4)送信出力完了待機
(ST5)ch1からLED駆動データLPDT1出力(送信データレジスタへの書込)
(ST6)送信出力完了待機
(ST7)ch1からLED駆動データLPDT2出力
(ST8)送信出力完了待機
・・・中略・・・
(ST51)ch1からLED駆動データLPDT24出力
(ST52)送信出力完了待機
(ST53)ch2からスレーブアドレス出力
(ST54)ch2送信出力完了待機
(ST55)ch2からデータ設定開始レジスタアドレス出力
(ST56)送信出力完了待機
(ST57)ch2からLED駆動データLPDT1出力
(ST58)送信出力完了待機
(ST59)ch2からLED駆動データLPDT2出力
(ST60)送信出力完了待機
・・・中略・・・
(ST103)ch2からLED駆動データLPDT24出力
(ST104)送信出力完了待機
というように行っていた。
この場合、シリアルデータ出力チャネルch1,ch2のそれぞれで一送信単位の送信毎に待ち時間が発生し、送信処理効率が悪い。
これに対して本実施の形態では、
(S804)ch1、ch2からスレーブアドレス出力(送信データレジスタへの書込)
(S805,S806)ch1、ch2送信出力完了待機
というように、同時的に両シリアルデータ出力チャネルch1,ch2での送信処理を行うようにすることで、処理が効率化される。
ステップS807〜S809の処理、及びステップS810〜S812の処理についても同様である。
【0253】
そして、1つのLEDドライバ90に対する送信は1ループ処理において1つの送信チャネル毎に26バイト分(26回の送信データレジスタへの書込)となる。各シリアルデータ出力チャネルch1,ch2について、同時的な処理を実行しなければ、総待機時間は、1回のループ処理期間でほぼ(52×TW)となる。これが本実施の形態の場合、1回のループ処理期間でのほぼ(26×TW)と、著しく短縮できる。
図13のステップS115のLED駆動データ出力処理において、このようにシリアルデータ出力処理が効率化できることで、演出制御CPU200の処理負担は大きく軽減される。
【0254】
また本実施の形態では、シリアルデータ送信されるLED駆動データは、発光輝度(階調)を示すデータとされ、上記のように例えば4ビットで16階調の発光駆動を実現する。このような階調制御を可能とすることで、より多様な演出効果を実現することができる。
本実施の形態では16階調とする例を述べたが、もちろんより多階調としても良い。
【0255】
また本実施の形態のパチンコ遊技機1は、枠部(前枠2、外枠4及びガラス扉5)と、この枠部に取り付けられる遊技盤部(遊技盤3)とを備えている。そして第1系統の駆動信号出力手段(枠ドライバ部61)は、前枠2に設けられた演出手段であるランプ部63(発光部20w)にLED駆動信号を出力する複数のドライバ回路(LEDドライバ90)で構成され、第2系統の駆動信号出力手段(盤ドライバ部62)は、遊技盤3に設けられた演出手段であるランプ部64(発光部20b、20Z、20H、20J)にLED駆動信号を出力する複数のドライバ回路(LEDドライバ90)で構成されている。
このような構成により、枠ドライバ部61のLEDドライバ90はすべて枠側の発光部20wに対応し、また盤ドライバ部62のLEDドライバ90はすべて盤側の発光部20bに対応することとなり、これにより配線の容易化、効率化、演出制御設定の容易性などを実現できる。
【0256】
ところで本実施の形態では、ステップS810で、上述のように4ビット構造とされている点灯データを8ビットに変換したものを一送信単位のシリアルデータとして出力している。
このビット変換について
図36で説明する。
図36Aは1つのLEDドライバ90に送信する4×24ビットの点灯データの例を示している。即ち
図32Aの出力データバッファの1マス分に相当するデータの例である。先頭の「F8h」(図では「h」を省略)は、LEDドライバ90のレジスタアドレス15h、16hに送信すべき点灯データである、つまり「Fh」はLEDドライバ90のレジスタアドレス15hに書き込む、電流端子96−1についての階調値としての点灯データであり、「8h」は、レジスタアドレス16hに書き込む、電流端子96−2についての階調値としての点灯データである。次の「0Fh」は、同様にレジスタアドレス17h、18hに対応する。以下同様で、最後の「00h」は、レジスタアドレス2Bh、2Chに対応する。
【0257】
ここで
図36Aの「F8h」「0Fh」・・・「00h」のように、演出制御CPU200の内部処理単位としての8ビット単位で区切って考えた場合に、上位4ビット(例えば「F8h」のうちの「Fh」)は、奇数レジスタアドレス(例えばレジスタアドレス15h)に対する点灯データで、下位4ビット(例えば「F8h」のうちの「8h」)は偶数レジスタアドレス(例えばレジスタアドレス16h)に対する点灯データとなる。
なお、ここでの「奇数レジスタアドレス」「偶数レジスタアドレス」というのはLEDドライバ90のレジスタ設計に応じた一例である。あくまで送信先を、レジスタアドレス15h〜2Chとした場合として便宜的に述べているにすぎない。
この場合に、奇数レジスタアドレス(15h、17h・・・2Bh)への点灯データについては、演出制御CPU200は、8ビットデータの下位4ビットをマスクして、それをLEDドライバ90に送信する。一方、偶数レジスタアドレス(16h、18h・・・2Ch)への点灯データについては、演出制御CPU200は、8ビットデータの上位4ビットをマスクして、それを4ビットシフトしたものをLEDドライバ90に送信する。つまり結果的に4ビットの点灯データを8ビットに変換して送信する。
【0258】
このビット変換として、「F8h」の場合を
図36B、
図36Cに示した。
図36Bは、点灯データ「Fh」をレジスタアドレス15hに送信する場合の処理を示している。
図32Aの出力データバッファから取り出す点灯データは、各4ビットの2つ点灯データである「F8h」=「11111000」となる。このデータに対し、下位4ビットをマスクする。例えばマスクデータ「F0h」=「11110000」を用いてアンドをとる。これにより、図示のように、レジスタアドレス15hに送信するシリアルデータ「11110000」=「F0h」が得られることになる。この場合、電流端子96−1からは最大階調値(F0h)の駆動電流出力が行われることとなる。
一方、
図36Cは、点灯データ「8h」をレジスタアドレス16hに送信する場合の処理を示している。上記のとおり
図32Aの出力データバッファから取り出した点灯データは「F8h」=「11111000」である。このデータに対し、上位4ビットをマスクする。例えばマスクデータ「0Fh」=「00001111」を用いてアンドをとる。これにより、図示のように「00001000」というデータが得られる。さらにこの場合、当該データを4ビットシフトすることで、レジスタアドレス16hに送信するシリアルデータ「10000000」=「80h」が得られることになる。この場合、電流端子96−1からは中間的な階調値(80h)の駆動電流出力が行われることとなる。
【0259】
以上のように、本実施の形態では、演出制御部51は、例えば演出制御ROM201に第1ビット数(例えば8ビット)より少ないビット数である第2ビット数(例えば4ビット)の発光輝度情報(点灯データ)をランプデータテーブルなどの形式で記憶する。そして演出制御CPU200は、第2ビット数の発光輝度情報を、第1ビット数に変換してLED駆動データを生成し、そのLED駆動データを発光駆動信号出力手段であるLEDドライバ90にシリアルデータとして送信する。
LEDドライバ90のレジスタアドレス15h〜2Chが、8ビットのPWMデータを入力可能とされていることは、8ビットの点灯データとすれば256階調のLED発光制御が可能である。しかしながら、本実施の形態の遊技機の発光演出に用いる発光部20w、20bに対する制御としては、256階調は必要ではない。具体的には「00h」「10h」「20h」・・・「F0h」の16階調で十分である。
そこで本実施の形態では、点灯データを4ビット構造として、16階調表現を行うようにする。そしてLEDドライバ90への出力時には、4ビットを8ビットに変換して送信する。
【0260】
このようにすることで、演出制御部51は内部ROM(演出制御ROM201)に記憶する点灯データのデータ容量を大幅に削減でき、メモリ容量消費を抑制できることになる。
また、近年の汎用的なLEDドライバは、256階調などの高性能タイプのものの方が生産量が多く、価格的にも有利であることが多い。そのため、例えば16階調が必要な場合に、16階調の制御能力を持つLEDドライバを採用するよりも、256階調のLEDドライバを採用する方が、コストメリットが得られ、又、安定的入手性もよい。これにより製造上及びコスト的なメリットが得られる。
また上述したように、演出制御CPU200は、4ビットの点灯データを8ビットにおける上位4ビットに配置して、8ビットのLED駆動データ(送信するシリアルデータ)を生成する。
このように上位4ビット配置により、16階調のLED駆動データを生成でき、またその処理は例えば
図36B、
図36Cの例のように、非常に簡易な処理である。このためビット数変換の処理負担はほとんど問題とならない。
【0261】
なお上記例では、8ビットに変換した点灯データを「00h」「10h」「20h」・・・「F0h」とするとしたが、次のような例も考えられる。
この場合、4ビットの点灯データが「Fh」のときの、8ビットのシリアルデータ「F0h」が制御上の最大輝度となるが、LEDドライバ90は「FFh」まで対応できる。そこで、8ビットのシリアルデータの「F0h」の下位4ビットを「1111」に変換して「FFh」(=11111111)を送信するようにしてもよい。つまり送信するシリアルデータは「00h」「10h」「20h」・・・「E0h」「FFh」とする。このようにすると、LEDドライバ90の発光駆動能力上での最大輝度の発光を実行させることが可能となる。
また、「00h」以外の「10h」「20h」・・・「F0h」について、下位4ビットを「1111」に変換し、「1Fh」「2Fh」・・・「FFh」として送信してもよい。これにより、各階調での発光輝度を上げ、演出効果を向上させることができる。
また、ここまでは4ビットの点灯データを8ビットとする例で述べたが、これは一例である。第1ビット数(例えば8ビット)はLEDドライバ側の設計に応じて決められる。また第2ビット数(例えば4ビット)は、表現したい階調に応じて設定すればよい。例えば2階調なら1ビット、4階調なら2ビット、8階調なら3ビット・・・とすれば良い。
また本実施の形態では、シリアルデータ出力としてLED駆動データ送信を行うものであるが、この第2ビット数の点灯データを第1ビット数に変換して発光駆動ドライバに送信するという処理は、パラレルデータ出力、或いは無線送信出力などにも応用でき、その場合に送信先の階調能力と、求める階調表現の差がある場合に、送信元のデータ記憶容量の低減効果を得ることができる。
【0262】
[6−8:LEDドライバ初期化処理]
図13のステップS1113ではLEDドライバ90の初期化を行うと述べたが、これは、使用しないレジスタアドレス00h〜14hのレジスタにデフォルト値をセットする送信処理となる。
上述のようにLEDドライバ90のレジスタアドレス15h〜2Chは、それぞれ電流端子96−1〜96−24に対応する点灯データ(階調値)が書き込まれるレジスタとされているが、レジスタアドレス00h〜14hの各レジスタは以下のようにデータが書き込まれる。
【0263】
00h:8ビット中の3ビットでPWMの周期設定データがセットされ、1ビットでマスタ/スレーブ設定データがセットされる。
01h:8ビット中の3つのビットで1階調あたりのフェードインスピード、3つのビットでフェードアウトスピードの各設定データがセットされる。
02h:8ビット中の5ビットで赤LEDの電流値データがセットされる。
03h:8ビット中の5ビットで緑LEDの電流値データがセットされる。
04h:8ビット中の5ビットで青LEDの電流値データがセットされる。
05h:8ビット中の6つのビットで、電流端子96−1〜96−6のオン/オフ設定データがセットされる。
06h:8ビット中の6つのビットで、電流端子96−7〜96−12のオン/オフ設定データがセットされる。
07h:8ビット中の6つのビットで、電流端子96−13〜96−18のオン/オフ設定データがセットされる。
08h:8ビット中の6つのビットで、電流端子96−19〜96−24のオン/オフ設定データがセットされる。以上のレジスタアドレス05h〜08hのレジスタは、電流端子96−1〜96−24のそれぞれについてのオン/オフ設定部となる。
09h〜0Eh:それぞれのレジスタ(8ビット)に、4つの出力端子について、各2ビットで「PWM出力優先」「フェード出力優先」「強制オン/オフ出力優先」のいずれかが選択設定される。09h〜0Ehの6個のレジスタにより24個の電流端子96−1〜96−24に対応する。
0Fh〜11h:3つのレジスタ(合計24ビット)で、24個の電流端子96−1〜96−24のフェード機能の有効/無効を設定する。
12h〜14h:3つのレジスタ(合計24ビット)で、24個の電流端子96−1〜96−24の強制オン/オフ設定をする。
【0264】
LEDドライバ90の初期化処理では、これらのレジスタ(00h〜14h)にデフォルト値を設定する。デフォルト値は以下のとおりである。なお「0x」は「h」と同様、16進表記を示す。レジスタアドレスの値と、データ値(デフォルト値)の区別のため、「0x」と「h」を使い分けている。
00h:0x00・・・PWM周期の初期設定
01h:0x00・・・フェードイン・フェードアウトのスロープなし
02h:0x1F・・・赤LED電流値の初期設定
03h:0x1F・・・緑LED電流値の初期設定
04h:0x1F・・・青LED電流値の初期設定
05h:0x77・・・電流端子96−1〜96−6のオン設定
06h:0x77・・・電流端子96−7〜96−12のオン設定
07h:0x77・・・電流端子96−13〜96−18のオン設定
08h:0x77・・・電流端子96−19〜96−24のオン設定
09h:0x00・・・PWM出力優先
0Ah:0x00・・・PWM出力優先
0Bh:0x00・・・PWM出力優先
0Ch:0x00・・・PWM出力優先
0Dh:0x00・・・PWM出力優先
0Eh:0x00・・・PWM出力優先
0Fh:0x00・・・フェード機能無効
10h:0x00・・・フェード機能無効
11h:0x00・・・フェード機能無効
12h:0x00・・・強制オン/オフ設定を全てオフ
13h:0x00・・・強制オン/オフ設定を全てオフ
14h:0x00・・・強制オン/オフ設定を全てオフ
【0265】
以上のようなデフォルト値の設定を、
図13の16ms処理のステップS113で各LEDドライバ90(w1〜w(n)、b1〜b(m))に対して行う。
図37にLEDドライバ初期化処理の一例を示している。
図37は1つのLEDドライバ90に対する初期化処理を示しており、ステップS113では各LEDドライバ90(w1〜w(n)、b1〜b(m))を対象として順次
図37の処理を行う。
【0266】
ステップS901で演出制御CPU200は、初期化を行うLEDドライバ90に対応してイネーブル信号(ENABLE)をオンとする。例えば最初は先頭のスレーブアドレス(例えばw1)を対象とする。そしてステップS902で、当該対象のLEDドライバ90のスレーブアドレスを出力する。
さらに演出制御CPU200はステップS903で、データ設定開始レジスタアドレスを出力する。この場合、レジスタアドレス「00h」〜「14h」への書き込みとなるため、データ設定開始レジスタアドレス=00hとする。
そして演出制御CPU200はステップS904で、順次各レジスタアドレス「00h」〜「14h」に対応するデフォルト値のデータ送信を行う。この処理で、対象としているLEDドライバ90の各レジスタアドレス「00h」〜「14h」に上述のデフォルト値が書き込まれる。つまりそのLEDドライバ90は初期設定される。
以上が完了したら、ステップS905でイネーブル信号(ENABLE)をオフとし、ステップS906でスレーブアドレスを+1する。つまり次のLEDドライバ90を指定できる状態とする。そして1つのLEDドライバ90に対する初期化処理を終える。
【0267】
ここで本実施の形態の場合、上述してきたようにシリアルデータ出力チャネルch1,ch2としての2系統のシリアルデータ出力を行う。
図37は1つのLEDドライバ90に対する初期化処理として示したが、この
図37の処理により、例えば(n+m)個の各LEDドライバ90(w1〜w(n)、b1〜b(m))について順次1つずつ初期化を行っても良い。
【0268】
しかし、シリアルデータ出力チャネルch1,ch2を用いて略同時的な送信を行うことで、枠ドライバ部61、盤ドライバ部62の各LEDドライバ90(w1〜w(n)、b1〜b(m))についての初期化処理を効率化できる。即ち上述したLED駆動データ送信と同様の手法を採ることができる。例えば
図32BのLED駆動データの出力の例のようにシリアルデータ出力チャネルch1,ch2を用いて送信を同時並行的に行う。その場合の処理例を
図38に示す。
【0269】
図38の処理として、演出制御CPU200はステップS951で、シリアルデータ出力チャネルch1、ch2のスレーブアドレスを特定する。
図32Bと同様とする例に則して言えば、「w1,b1」を示すアドレスコードを特定する。
そしてループ処理LP5として、ドライバナンバ個数分、ステップS952〜S964の処理をループして実行する。n<mとすると、ループ処理LP5をm回行う。
【0270】
ステップS952では、演出制御CPU200はシリアルデータ出力チャネルch1,ch2におけるイネーブル信号ENABLEをONとする。
そしてステップS953で演出制御CPU200は、シリアルデータ出力チャネルch1,ch2のシリアルデータDATAの出力として、最初の一送信単位(1バイト)のデータ送信、即ちこの場合は
図33のシリアルデータ構造に示した先頭1バイトのスレーブアドレスを送信出力する。シリアルデータ出力チャネルch1,ch2については並行して同時的にデータ送信を行う。
その一送信単位の送信を行ったら、ステップS954,S955で、各シリアルデータ出力チャネルch1,ch2についての送信出力完了を待機する。
【0271】
シリアルデータ出力チャネルch1,ch2についての送信出力完了が確認されたら、演出制御CPU200はステップS956で、次の一送信単位(1バイト)のデータ送信として、データ設定開始レジスタアドレス(SX)を送信出力する。レジスタアドレス00h〜14hへの書込であるため、SX=00hとする。そしてこの場合も、シリアルデータ出力チャネルch1,ch2について並行して同時的にデータ送信を行う。
その一送信単位の送信を行ったら、ステップS957,S958で、各シリアルデータ出力チャネルch1,ch2についての送信出力完了を待機する。
【0272】
ステップS957,S958でシリアルデータ出力チャネルch1,ch2についての送信出力完了が確認されたら、演出制御CPU200はステップS959で、一送信単位(1バイト)のデータ送信として、レジスタアドレス(00h)〜(14h)へのデフォルトデータを送信出力する。
まずはレジスタアドレス(00h)への1バイトのデフォルトデータ送信を、シリアルデータ出力チャネルch1,ch2について並行して同時的に行う。そしてステップS960,S961で、各シリアルデータ出力チャネルch1,ch2についての送信出力完了を待機する。
送信完了を確認したら、ステップS962でレジスタアドレス00h〜14hまでのデフォルトデータ送信完了が確認されるまで、1バイトずつ、ステップS959の送信を実行していく。従って、次はレジスタアドレス(01h)への1バイトのデフォルトデータ送信を、シリアルデータ出力チャネルch1,ch2について行う。さらにその送信確認後、レジスタアドレス(02h)へのデフォルトデータ送信が行われる。以降も、送信完了待機→レジスタアドレス(03h)へのデフォルトデータ送信→送信完了待機→レジスタアドレス(04h)へのデフォルトデータ送信→送信完了待機・・・→レジスタアドレス(14h)へのデフォルトデータ送信→送信完了待機という処理が行われていく。
【0273】
レジスタアドレス00h〜14hへのデフォルトデータの送信出力が完了したら、ステップS963でイネーブル信号ENABLEをオフとし、次に対象とするスレーブアドレスを+1する。そしてループ処理の1回を終える。
【0274】
続いて2回目のループ処理として、LEDドライバ90(w2)、LEDドライバ90(b2)について、同様にステップS952〜S964の処理が行われる。さらにその後、3回目のループ処理として、LEDドライバ90(w3)、LEDドライバ90(b3)について、同様にステップS952〜S964の処理が行われる。
ステップS952〜S964の処理がm回行われることで
図38のLEDドライバ初期化処理が完了する。つまり(n+m)個の各LEDドライバ90へのデフォルトデータの出力による初期化が完了される。なお、搭載されるLEDドライバ90の数が異なれば、当然ループ回数が異なる場合もある。
また以上の例は2つのシリアルデータ出力チャネルch1,ch2を用いる例で述べているが、3以上のシリアルデータ出力チャネルを利用する場合も、それらが並行して同時的にシリアルデータ(デフォルトデータ)送信が行われるようにすれば良い。
【0275】
以上の
図38の処理のように、LEDドライバ90の初期化処理に関しても、第1系統(シリアルデータ出力チャネルch1)と第2系統(シリアルデータ出力チャネルch2)の駆動信号出力手段(枠ドライバ部61と盤ドライバ部62)について、一送信単位のシリアルデータを同時的に送信する。そして当該送信の完了後、次の一送信単位のシリアルデータを、第1系統と第2系統の駆動信号出力手段に対して略同時的に送信する。このような処理で、LEDドライバ90の初期化処理を行うことで、初期化処理全体に要する時間を短縮でき、もって演出制御CPU200の処理負担を軽減できる。
【0276】
本実施の形態では以上のように初期設定データとしてのデフォルトデータのシリアルデータ送信により各LEDドライバ90の初期化を行うが、これにより、各LEDドライバ90は、LED駆動データで示される階調値に応じて、電流端子96−1〜96−24に接続されたLED120の消灯、点灯、及び点灯時の発光輝度を実現するための発光駆動信号を出力する状態に設定されることとなる。
つまり電流端子96−1〜96−24についてのオン/オフ設定部であるレジスタアドレス05h〜08hに対して初期化処理により常時、上述のデフォルト値(=オンデータ)がセットされ、電流端子96−1〜96−24は全てオンとされ、さらにレジスタアドレス09h〜14hのデフォルト値設定により、PWM優先とされ、フェード機能、強制オン/オフ機能は無効化される。このため各LEDドライバ90は、階調値設定部であるレジスタアドレス15h〜2Chに書き込まれた階調値(点灯データの値)に基づくPWM制御を行って、電流端子96−1〜96−24からの階調に応じた電流量の発光駆動電流を流す状態となる。
【0277】
即ち、
図13のステップS115で行われる
図28のLED駆動データ出力処理では、レジスタアドレス15h〜2Chに書き込まれるLED駆動データとしての「00h」「10h」「20h」・・・「F0h」の16階調のデータの送信が行われるが、このLED駆動データ送信時には「00h」「10h」「20h」・・・「F0h」の16階調のデータを送信するのみで、消灯(00h)から階調制御された点灯(10h〜F0h)が実行されることとなる。
これを演出制御CPU200側から見ると、0h〜Fhの点灯データにより、消灯、点灯、及び点灯時の発光輝度制御の全てが実行できるということである。
これにより演出制御CPU200では、LED発光制御を簡易な点灯データ設定で実現可能であり、処理負担は少なく、また制御のために必要なデータ容量も点灯データのみと少なくでき、演出制御ROM201等の容量消費の低減も実現される。
【0278】
まとめると、演出制御部51は、オン/オフ設定部であるレジスタアドレス05h〜08hが常時オン設定となる処理を行うとともに、遊技状態に応じて、階調値を含むLED駆動データを生成してLEDドライバ90に送信し、階調値を階調値設定部であるレジスタアドレス15h〜2Chに設定する処理を行うことで、LED駆動データ送信時には「00h」・・・「F0h」の16階調のデータを送信するのみで、消灯から階調制御された点灯までを実行制御できる。
なお本実施の形態のでは、オン/オフ設定部であるレジスタアドレス05h〜08hを常時オン設定とする処理として、16ms毎の初期化処理を行うが、16階調のデータを送信するのみで消灯から階調制御された点灯までを制御するには、あくまでレジスタアドレス05h〜08hが常時オン設定とされていればよい。従って例えば演出制御CPU200は、例えば電源投入時の最初に初期化処理を行ってレジスタアドレス05h〜08hをオン設定とするのみでもよい。これもオン/オフ設定部が常時オン設定となる処理の一例である。
【0279】
また以上の実施の形態では、LEDドライバ90は、遊技状態に応じて変化するLED駆動データが設定される第1レジスタ(レジスタアドレス15h〜2Ch)と、LEDドライバ90の動作を規定する、遊技状態に応じては変化しない固定データ(初期化データ)が設定される第2レジスタ(レジスタアドレス00h〜14h)とを有する。そして演出制御部51は、所定周期毎(16ms処理毎)に第1レジスタのLED駆動データの設定を行うとともに、所定周期毎(16ms処理毎)に第2レジスタの固定データの設定を行う。個々のLEDドライバ90から見れば、16ms毎に第2レジスタに初期化データが設定され、同じく16ms毎に第1レジスタにLED駆動データ(階調値)が設定される。
【0280】
本実施の形態の場合、遊技中にはレジスタアドレス00h〜14hの設定値は、常時、上述のデフォルト値である。従って初期化処理として上述のデフォルト値を第2レジスタに設定する処理は、起動時の1回などでもよい。ところが、ノイズ等でレジスタアドレス00h〜14hの設定値が破壊・消失されることがあり、すると、LEDドライバ90の動作が、LED駆動データで意図した動作とはならない場合が生ずる。これに対して本実施の形態では、初期化処理を周期的に行うことで、レジスタアドレス00h〜14hの設定値が破壊された場合でも、直ぐに修復し、本来の初期化状態とできる。それにより、常時、LED駆動データに基づく正確なLED発光動作が実行される。このようにLED駆動データに基づく発光駆動信号の出力動作を安定的に正常な状態に保つことができる。
【0281】
<7.第2の実施の形態>
続いて、第2の実施の形態としてのドライバ構成を説明する。なお第1の実施の形態と同様となる構成や処理については省略し、異なる点のみ説明する。
図39には、第1の実施の形態における
図4と同様の形式で、演出制御部51(演出制御CPU200)と、LEDドライバ130の接続構成を示した。
この例も演出制御CPU200は3つのシリアルデータ出力チャネルch1,ch2,ch3を使用する例とし、LEDドライバ130として2系統(枠ドライバ部61、盤ドライバ部62)設けられ、モータドライバ130Mとして1系統(モータドライバ部70)設けられる。
シリアルデータ出力チャネルch1によって、枠ドライバ部61としての複数のLEDドライバ130に対するシリアルデータ送信が行われる。
シリアルデータ出力チャネルch2によって、盤ドライバ部62としての複数のLEDドライバ130に対するシリアルデータ送信が行われる。
シリアルデータ出力チャネルch3によって、モータドライバ部70としての複数のモータドライバ130Mに対するシリアルデータ送信が行われる。
【0282】
各シリアルデータ出力チャネルch1,ch2,ch3の信号線としては、ラッチ信号LATCHを供給するラッチ信号線、クロック信号CLKを供給するクロック線、イネーブル信号ENABLEを供給するイネーブル信号線、発光駆動データ又はモータ駆動データとしてのシリアルデータDATAを供給するデータ線が設けられている。
ラッチ信号LATCH、クロック信号CLK、イネーブル信号ENABLE線は、枠ドライバ部61(或いは盤ドライバ部62、モータドライバ部70)を構成する複数のLEDドライバ130(又はモータドライバ130M)に対して並列に供給される。一方、シリアルデータDATAは、枠ドライバ部61(或いは盤ドライバ部62、モータドライバ部70)を構成する複数のLEDドライバ130(又はモータドライバ130M)のうちの先頭のLEDドライバ130(又はモータドライバ130M)に供給され、順次後段のLEDドライバ130(又はモータドライバ130M)に転送していくようにされる。
即ち1つの系統内の各LEDドライバ130(又はモータドライバ130M)は、シリアルデータDATAの入出力が順次直列接続されており、演出制御CPU200からのシリアルデータDATAは、1つの系統内の先頭のLEDドライバ130(又はモータドライバ130M)から終端のLEDドライバ130(又はモータドライバ130M)に順次転送され、各LEDドライバ130(又はモータドライバ130M)は、演出制御CPU200からのラッチ信号に基づいて、シリアルデータDATAを取り込む構成とされている。
【0283】
各LEDドライバ130、モータドライバ130Mとしては、例えば16ビット定電流LEDドライバである「BD7851FP(ローム株式会社製)」を用いることができ、例えば16個の定電流端子を備える。
従って1つのLEDドライバ130によっては、最大16系列のLED駆動電流を出力することができる。1つの「系列」とは、1つの電流出力端子に対して直列又は並列で接続される1又は複数のLEDの群を指している。
枠ドライバ部61におけるLEDドライバ130の数は、枠側に配置されるLED系列数(発光部20wの系列数)によって決められる。
また盤ドライバ部62におけるLEDドライバ130の数は、盤側に配置されるLED系列数(発光部20b、20Z、20H、20Jの系列数)によって決められる。
モータドライバ部70におけるモータドライバ130Mの数は、可動体役物のモータ数によって決められる。
【0284】
図40にLEDドライバ130の要部の概略構成例を示す。なお、以下ではモータドライバ130Mの構成についての説明は省略するが、LEDドライバ130と同様である。
LEDドライバ130は、16ビットシフトレジスタ131、ラッチ部132、出力ゲート部133及び定電流端子139−1〜139−16を備える。
定電流端子139−1〜139−16の全部(又は一部)には16系列のLED120が接続される。なお、図は簡略化して1系列の定電流端子139に1つのLED120が接続された状態を示しているが、1系列の定電流端子139に、複数のLEDが接続される構成(例えば直列接続)も当然あり得る。
【0285】
このLEDドライバ130には、シフトレジスタ131に対し、シリアルデータDATAが端子134に供給され、またクロック信号CLKが端子135に入力される。
なお、各系統の先頭のLEDドライバ130の端子134には、演出制御CPU200からのシリアルデータDATAが供給される。各系統の2つ目以降のLEDドライバ130の端子134は、1つ前のLEDドライバ130の端子136が接続される。
シフトレジスタ131は例えば16段のDフリップフロップ回路から成り、クロック信号CLKのタイミングで、端子134からのシリアルデータDATAを取り込むと共に、各Dフリップフロップ回路に保持していたデータを後段にシフトさせていく。なお、16段目のDフリップフロップ回路の出力は、端子136から、次のLEDドライバ130の端子134から、そのシフトレジスタ131に供給される。
【0286】
また各LEDドライバ130には、演出制御CPU200からのラッチ信号LATCHが端子137からラッチ部132に供給される。ラッチ部132は、ラッチ信号LATCHが入力されたタイミングで、シフトレジスタ131における16個の各Dフリップフロップ回路の値をラッチする。16ビットのデータがラッチされることになる。
ラッチ部132でラッチされた16ビットのデータは、出力ゲート部133に供給される。
なお、各系統のLEDドライバ130は、シリアルデータDATAが順次転送される構成をとっている。演出制御CPU200は、終端のLEDドライバ130に対するLED駆動データ(16ビット)、その前のLEDドライバ130に対するLED駆動データ(16ビット)・・・先頭のLEDドライバ130に対するLED駆動データ(16ビット)を順次連続して出力する。そして先頭のLEDドライバ130に対する16ビットのLED駆動データを転送したタイミングで、系統内の全LEDドライバ130に対して並列にラッチ信号LATCHを出力することで、各LEDドライバ130は、自己に供給された16ビットのLED駆動データをラッチ部132に取り込むことができる。
【0287】
出力ゲート部は、端子138からのイネーブル信号ENABLEがONの場合、ラッチ部132でラッチされた16ビットのデータに基づいて、定電流端子139−1〜139−16に接続されたLED120の発光のための電流供給を行う。ラッチされた16ビットの各ビットは、16個の定電流端子139−1〜139−16のそれぞれに対する電流制御値となる。
このような構成により、各LEDドライバ130は、接続された最大16系統のLED120を駆動する。
【0288】
なお、盤ドライバ部62の一部のLEDドライバ130は、演出用の発光部20bに対するLED発光駆動に加えて状況提示用の発光部20Z、20H、20Jに対するLED発光駆動も行う。即ち一部のLEDドライバ130は、定電流端子139−1〜139−16のいずれかに発光部20Z、20H、20Jのいずれかが接続されている。
概略同様なので詳細な説明は省略するが、実際には一部のLEDドライバ130では、
図7で説明したように、発光部20bとともに、図柄識別用発光部20Z、保留数表示用発光部20H、遊技状態報知用発光部20Jのいずれかが接続されている。
その場合、
図7と同様に、演出用の発光部20bとしてのLED120は複数が直列接続される場合、第2電源電圧(例えば12V)が発光駆動のための電源として接続され、一方、図柄識別用発光部20Z、保留数表示用発光部20H、遊技状態報知用発光部20Jとしては1個のLED120が用いられて、LEDドライバ130が電源として用いている第1電源電圧VCC1(例えば5V)を発光駆動のための電源として用いるように接続されていれば良い。
【0289】
この第2の実施の形態では、演出制御CPU200は、一送信単位のシリアルデータを、第1系統、第2系統の駆動信号出力手段(枠ドライバ部61と盤ドライバ部62)に対して略同時的に出力する。
この第2の実施の形態としてのLED出力処理を
図41で説明する。
第1の実施の形態で述べた場合と同様、
図13のステップS114のLEDデータ更新処理で生成されたLED駆動データが、ステップS115の処理で各LEDドライバ130に出力される。
なお、LEDデータ更新処理で生成されたLED駆動データは、その元となるランプデータにおいて、提示用の発光部20Z、20H、20Jが接続された定電流端子に対応する領域にはダミーデータが配置され、該ダミーデータが
図27のような処理で更新されることで、演出用の発光駆動情報と状況提示用(図柄識別用、保留数表示用、遊技状態報知用)の発光駆動情報が合成されたものとなっている。
【0290】
演出制御CPU200はステップS851で、各シリアルデータ出力チャネルch1,ch2におけるLED駆動データ(例えば第1の実施の形態の
図32Aの出力データバッファに相当する出力データバッファ)の先頭アドレスを特定する。なお、第1の実施の形態では1つのLEDドライバ90に対するLED駆動データは4×24ビットの例としたが、第2の実施の形態では1つのLEDドライバ130に対するLED駆動データは例えば16ビットとなる。
次にステップS852で演出制御CPU200は、各シリアルデータ出力チャネルch1,ch2のラッチ信号LATCHをオフとする。さらにステップS853で各シリアルデータ出力チャネルch1,ch2のイネーブル信号ENABLEをオンとする。
【0291】
そしてループ処理LP4としてステップS854〜S857の処理を必要回数繰り返す。
説明上、仮に、LEDドライバ130の数が、枠ドライバ部61は5個、盤ドライバ部62は6個であるとする。つまりシリアルデータ出力チャネルch1は5個のLEDドライバ130に送信を行い、シリアルデータ出力チャネルch2は6個のLEDドライバに送信を行うものとする。
なお、送信データレジスタへの書き込みは8ビットずつ行われる一方、1つのLEDドライバ130には16ビットのデータを送信する。従って1つのLEDドライバ130に対して2回の送信が必要となる。従って送信データレジスタへの書込は、シリアルデータ出力チャネルch1では10回、シリアルデータ出力チャネルch2では12回となる。
そしてループ処理LP4としては、最もLEDドライバ130の数の多い(6個)、シリアルデータ出力チャネルch2の送信回数(=12回)だけ、ループすることとなる。
【0292】
当該ループ処理LP4としては、演出制御CPU200は、ステップS854でシリアルデータ出力チャネルch1の一送信単位の送信として、シリアルデータDATAの出力(送信データレジスタへの8ビットの書き込み)を行う。
また略同時に、ステップS855でシリアルデータ出力チャネルch2のシリアルデータDATAの出力(送信データレジスタへの8ビットの書き込み)を行う。
このように各シリアルデータ出力チャネルch1,ch2では、それぞれの系統のシリアルデータDATA(16ビット×LEDドライバ数)の送信が、同時に実行される。
そしてステップS856,S857で演出制御CPU200は、各シリアルデータ出力チャネルch1,ch2におけるシリアルデータDATAの送信完了を待機する。
送信完了となったら、再びステップS854,S855の処理を行う。
【0293】
なお、LEDドライバ130の数の違いにより、他よりも先に全データ出力を完了するシリアルデータ出力チャネルが発生する。上記例の場合、シリアルデータ出力チャネルch1はステップS854を10回行うことで完了し、シリアルデータ出力チャネルch2はステップS855を12回行うことで完了する。
従ってこの例では、シリアルデータ出力チャネルch1については、完了後のループ回数目ではステップS854のシリアルデータ出力は行わない場合が生ずる。
なお、実際のシリアルデータ送信中以外は、シフトレジスタ131でのデータシフトが行われないようにクロック信号CLKの制御(例えばマスク等)を行うことは当然である。
【0294】
送信完了(上記例の場合、ループ処理LP4として12回ループ完了)となったら、ステップS860で、シリアルデータ出力チャネルch1,ch2のラッチ信号LATCHをオンとする。これにより、すべてのLEDドライバ130において、シリアルデータDATA(16ビットのLED駆動データ)が取り込まれる。当該ラッチを行ったら、ステップS861で、シリアルデータ出力チャネルch1,ch2のラッチ信号LATCHをオフとする。
この時点で、イネーブル信号ENABLEはオンである。例えば各LEDドライバ130の出力ゲート部133は、端子138からのイネーブル信号ENABLEがオフの場合に、ラッチ部132にラッチされたLED駆動データにより定電流端子139−1〜139−16を駆動するものとされている。そこで演出制御CPU200はステップS862でイネーブル信号ENABLEをオフとする。これによって、各LEDドライバ130は、今回書き込まれたLED駆動データに基づいて、接続されたLED120の発光駆動を行うこととなる。
【0295】
この第2の実施の形態でも演出制御CPU200は、第1系統(シリアルデータ出力チャネルch1)、第2系統(シリアルデータ出力チャネルch2)の駆動信号出力手段(枠ドライバ部61、盤ドライバ部62)には、シリアルデータを同時的に送信する。
そして当該送信の完了後、各LEDドライバ130にラッチを実行させる。
これにより全体のシリアルデータ送信動作に要する時間を短縮でき、もって演出制御CPU200の処理負担を軽減できる。
【0296】
例えば従来は、
図41のステップS854〜S860に相当する処理は、
(ST1)ch1のシリアルデータ送信(送信データレジスタへの書込)
(ST2)ch1送信出力完了待機
・・・以上を所要回数ループ
(STx)ch1ラッチ信号LATCHオン
(STx+1)ch2のシリアルデータ送信(送信データレジスタへの書込)
(STx+2)ch2送信出力完了待機
・・・以上を所要回数ループ
(STy)ch2ラッチ信号LATCHオン
というように行っていた。
この場合、シリアルデータ出力チャネルch1,ch2のそれぞれで待ち時間が発生し、送信処理効率が悪い。
これに対して本実施の形態では、
(S854,S855)ch1、ch2からシリアルデータ送信開始
(S856,S857)ch1、ch2の送信出力完了待機
(S860)ch1、ch2のラッチ信号LATCHオン
というように、同時的に両シリアルデータ出力チャネルch1,ch2での送信処理を行うようにすることで、処理が効率化される。
【0297】
特にこの第2の実施の形態の場合は、1つの系統の駆動信号出力手段(枠ドライバ部61、盤ドライバ部62A、62B)に対するシリアルデータは、その系統に含まれるLEDドライバ130の数×16ビットの単位となる。
従って最もLEDドライバ130の数の多い駆動信号出力手段へのシリアルデータ転送完了までが全体の待機時間となる。即ち、上記例では最もLEDドライバ130の数が多いシリアルデータ出力チャネルch2に必要な時間内で、全てのシリアルデータ出力チャネルch1,ch2へのデータ送信が完了できる。
これにより、個別の駆動信号出力手段への出力及び待機を行うことに比べて、シリアルデータ送信に要する全体の時間は著しく短縮できる。
【0298】
なお、望ましくは、各系統の駆動信号出力手段におけるLEDドライバ130の数は、同数とするとよい。或いはダミードライバを設けて同数としても良い。すると、演出制御CPU200は、2つのシリアルデータ出力チャネルch1,ch2から同時にシリアルデータ送信を開始し、同時に送信完了でき、その直後のタイミングでラッチさせることができ、処理も容易となる。
また
図41では、ステップS856、S857の各シリアルデータ出力チャネルch1,ch2での送信完了確認後に、ステップS860で全系統のラッチを実行させるものとしたが、実際には、シリアルデータ出力が完了したシリアルデータ出力チャネルからラッチオンとしていっても良い。
またLEDドライバ130の系統を3系統以上とした場合、例えば枠ドライバ部、第1の盤ドライバ部、第2の盤ドライバ部62をシリアルデータ出力チャネルch1,ch2,ch3にそれぞれ接続するような構成の場合、3つのシリアルデータ出力チャネルch1,ch2,ch3を対象として
図41の処理を行えば良い。4系統以上の場合も同様である。
【0299】
またこの第2の実施の形態は、第1系統の駆動信号出力手段(枠ドライバ部61)は、前枠2に設けられた演出手段であるランプ部63(発光部20w)にLED駆動信号を出力する複数のドライバ回路(LEDドライバ130)で構成される。第2系統の駆動信号出力手段(盤ドライバ部62は、遊技盤3に設けられた演出手段であるランプ部64(発光部20b)にLED駆動信号を出力する複数のドライバ回路(LEDドライバ130)で構成されている。
このような構成により、枠ドライバ部61のLEDドライバ130はすべて枠側の発光部20wに対応し、また盤ドライバ部62のLEDドライバ130はすべて盤側の発光部20b、20Z、20H、20Jに対応することとなり、これにより配線の容易化、効率化、演出制御設定の容易性などを実現できる。
【0300】
<8.まとめ及び変形例>
以上の実施の形態のパチンコ遊技機1によれば発光制御のための処理を効率化でき、発光制御処理負荷を軽減することができる。
また実施の形態のパチンコ遊技機1は、演出用の発光部20w、20bと、状況提示用の発光部(図柄識別用発光部20Z、保留数表示用発光部20H、遊技状態報知用発光部20J)と、演出用及び状況提示用の各発光部の発光を制御する発光制御手段(演出制御部51)とを備える。発光制御手段としての演出制御部51は、適宜タイミングで発光演出を決定する決定処理(シナリオ更新処理S110)を行うとともに、発光駆動情報を作成して該発光駆動情報を発光駆動データ記憶部(出力データバッファ)に記憶する作成処理(LED駆動データ更新処理S114)と、発光駆動データ記憶部に記憶された発光駆動情報に基づく駆動信号を出力する出力処理(LED出力処理S115)とを所定周期毎(16m処理毎)に行うことにより発光演出を実現するように構成されている。そして作成処理では、決定された発光演出を実行する状態において、実行する演出に対応するランプデータに基づいて演出用の発光部20w,20bに対する演出用発光駆動情報(演出用のLED駆動データ)を作成する(
図26のステップS701〜S720)。さらに遊技状況に応じて状況提示用の発光部20Z、20H、20Jに対する状況提示用発光駆動情報(変動図柄識別用、保留数表示用、遊技状態報知用の各LED駆動データ)を作成し(S721)、演出用発光駆動情報と状況提示用発光駆動情報を合成したものを前記所定周期における1タイミング分の発光駆動情報(LED駆動データ)とする。
これにより演出用の発光部と、状況提示用(変動図柄識別用、保留数表示用、遊技状態報知用)の発光部のそれぞれの発光駆動制御が共通の出力処理で実行されるため、演出制御部51の処理が効率化され、処理負担の軽減、処理の迅速性が実現できる。これは変動図柄識別用、保留数表示用、遊技状態報知用の各LED駆動データを、演出用のLED駆動データと別のタイミングで出力する必要はなく、これらの状況提示用に別途出力処理を行わなくても良いためである。
また共通の出力処理とすることで、演出用の発光部(LED120)と、状況提示用(変動図柄識別用、保留数表示用、遊技状態報知用)の発光部(LED120)を共通のLEDドライバ90(130)に接続する場合も制御しやすい。特定のLEDドライバ90(130)に対して、別途状況提示用のLED駆動データを転送するような必要がなくなるためである。
【0301】
また実施の形態のパチンコ遊技機1は、遊技動作に関連した制御コマンドを出力する主制御部50を備え、演出制御部51は、発光駆動情報を作成して該発光駆動情報を発光駆動データ記憶部に記憶する作成処理では、制御コマンドに基づいて決定処理で決定された発光演出を実行する状態において、実行する演出に対応するランプデータに基づいて演出用の発光部に対する演出用発光駆動情報を作成する。また制御コマンドにより通知された遊技状況に応じて状況提示用の発光部に対する状況提示用発光駆動情報を作成する。そして演出用発光駆動情報と状況提示用発光駆動情報を合成したものを前記所定周期における1タイミング分の発光駆動情報(LED駆動データ)とする。
これにより主制御部50による演出指示による演出発光と、主制御部50から通知された状況(図柄変動状態、保留数、遊技状態)の提示のための発光とについて、効率的な処理が実現される。即ち、主制御部50から発光演出が逐次指示され、また主制御部50から遊技状況が逐次指示される場合において、演出制御部51は、演出と状況提示のための発光制御処理を効率化できる。
【0302】
また実施の形態では、決定処理で決定された複数の発光演出を実行する状態において、実行する演出に対応する複数種類のランプデータに基づいて演出用の発光部に対する演出用発光駆動情報を作成する。即ちランプチャネルdwCH0〜dwCH15のランプデータ登録情報(
図22B参照)に基づいて複数階層の発光演出を反映した演出用発光駆動情報を生成している。そのうえで遊技状況(図柄変動状態、保留数、遊技状況)に応じて発光部20Z、20H、20Jに対する状況提示用発光駆動情報(変動図柄識別用、保留数表示用、遊技状態報知用の各LED駆動データ)を作成し、演出用発光駆動情報と状況提示用発光駆動情報を合成したものを前記所定周期における1タイミング分の発光駆動情報(LED駆動データ)とする。
これにより、指定された複数種類の多様な発光演出に基づく発光駆動と、変動図柄識別用、保留数表示用、遊技状態報知用の発光駆動を効率的に実行できる。
【0303】
また実施の形態では、演出制御部51は作成処理で、決定処理で決定された発光演出で規定されるタイマ管理に基づいてランプデータが選択され、選択されたランプデータに基づいて演出用の発光部に対する演出用発光駆動情報を作成する。即ち
図20,
図21の処理で、指定されたメインシナリオ、サブシナリオに基づいてタイマ管理に基づいてランプデータが選択され、ランプデータに示された発光演出を実行するように演出用発光駆動情報を作成する。これに加えて遊技状況に応じて状況提示用の発光部に対する状況提示用発光駆動情報を作成し、演出用発光駆動情報と状況提示用発光駆動情報を合成したものを前記所定周期における1タイミング分の発光駆動情報(LED駆動データ)とする。
これによりシナリオに規定された発光演出が適切に実現されつつ、状況提示用の発光部の発光駆動制御も効率的に実行できる。
【0304】
また作成処理では、1タイミング分の所定サイズの演出用の発光駆動情報を生成した後に、状況提示用(変動図柄識別用、保留数表示用、遊技状態報知用)の発光駆動情報を作成し、演出用の発光駆動情報における特定データ領域(
図32のDBzh,DBj)を状況提示用の発光駆動情報に書き換えることで、1タイミング分の所定サイズの発光駆動情報を生成している(
図26,
図27参照)。
即ち特定データ領域を用意しておき、演出用の発光駆動情報の一部を変動図柄識別用発光駆動情報に更新するのみで演出用と状況提示用を合成した発光駆動情報を生成することができ、演出用及び状況提示用という両方の発光駆動を行う発光駆動データを容易な処理で生成できる。
【0305】
また、演出用発光駆動情報の特定データ領域(
図32のDBzh,DBj)には、ダミーデータが配置されることになるように、ランプデータが設定されている。即ち
図31の領域Azh、Ajである。作成処理では、特定データ領域のダミーデータを変動図柄識別用発光駆動情報に書き換える。
特定データ領域DBzh,DBjに配置されるランプデータの領域Azh、Ajのデータとしてダミーデータを配置しておくことで、演出のための発光制御に影響を与えないで状況提示用発光駆動情報を合成できる。このため演出用と状況提示用の発光駆動データの合成が容易となり処理負担の増加を回避できる。
【0306】
またパチンコ遊技機1では、演出制御部51の出力処理で出力される駆動信号(LED駆動データ)に基づいて、演出用の発光部20bと、状況提示用の発光部20Z、20H、20Jに発光駆動電流を供給するLEDドライバ90(130)を1又は複数個備えている。例えばスレーブアドレス「b2」「b3」のLEDドライバ90である。
これら特定のLEDドライバ90(b2)(b3)は、演出用の発光部20bと状況提示用の発光部20Z、20H(又は20J)の両方に対して発光駆動電流を供給するように複数のLED120が接続されている。これに対応して演出制御部51の作成処理では、当該特定のLEDドライバ90(b2)(b3)に対して出力される駆動信号の基になる発光駆動情報に演出用発光駆動情報と状況提示用発光駆動情報が含まれるようにしている。例えば出力データバッファ上で、LEDドライバ90(b2)(b3)に対応する領域の一部が特定データ領域DBzh,DBjとされて状況提示用発光駆動情報が配置される。
これにより、演出用と状況提示用(変動図柄識別用、保留数表示用、遊技状態報知用)LEDドライバ90を分ける必要がなく、効率的な回路構成が可能となる。
【0307】
また演出制御部51の作成処理では、制御コマンドに基づいて決定処理で決定された複数の発光演出に対応する複数種類のランプデータが優先順位が設定された複数の階層にセットされる状態(
図22Bのランプデータ登録情報のランプチャネルdwCH0〜dwCH15参照)において、演出用の発光部に対する演出用発光駆動情報を、優先順位が低い階層(ランプチャネル)で指定されるランプデータから順に、そのランプデータに対応する値に更新していくことで、優先順位を反映した演出用発光駆動情報を作成するようにしている(
図26のループ処理LP2)。
即ち複数の発光演出に対応する複数種類のランプデータが、優先順位が設定された複数の階層にセットされる場合に、優先順位が低い順にランプデータを反映させた演出用発光駆動情報を上書きするように作成することで、簡易な処理で優先順位を反映した演出制御を実現でき、さらにその演出用発光駆動情報に状況提示用発光駆動信号に合成することで、演出用の発光部と状況提示用の発光部の制御を簡単に共通化できる。
【0308】
また演出制御部51の作成処理では、制御コマンドに基づいて前記決定処理で決定された発光演出を実行する状態において、実行する演出に対応するランプデータに基づいて演出用の発光部に対する3階調以上の階調値を表現する演出用発光駆動情報を作成するとともに、制御コマンドにより通知された遊技状況に応じて状況提示用の発光部に対する点灯と消灯の2階調を表現する状況提示用発光駆動情報を作成し、これらを合成した発光駆動情報を生成している。
特に演出用発光駆動情報は、3階調以上(例えば16階調)のデータとして生成し、多数の階調表現により、遊技性を高める演出が可能となる。一方で状況提示の用途としては2階調で十分であるため状況提示用発光駆動信号は、発光/消灯の2階調の情報として生成することで、状況提示用発光駆動情報の生成を容易化する。例えば状況提示用発光駆動情報は、“0”か“F”でよいものとして生成を容易化できる。
【0309】
またこの場合に、特定データ領域(
図32のDBzh,DBj)を用意しておき、演出用の発光駆動情報の一部を状況提示用発光駆動情報に更新するのみで演出用と状況提示用を合成した発光駆動情報を生成する。特に特定データ領域について、単に状況提示用の2値(例えば“0”か“F”)に更新するのみで演出用と識別用を合成した発光駆動情報を生成できる。また例えば“0”か“F”という2値であることで、3階調以上が表現可能なビット数の特定領域に、状況提示用発光駆動情報を容易に組み込める。
【0310】
また実施の形態のパチンコ遊技機1は、演出制御部51の出力処理では、特定のLEDドライバ90(b2)(b3)を含む複数のLEDドライバ90に対して、発光駆動データ記憶部に記憶された1タイミング分の発光駆動情報に基づく駆動信号を所定のシリアルポート(ch2)から出力する。
これにより特定のLEDドライバ90に、演出用の発光部20bと状況提示用の発光部20Z、20H(又は20J)の両方に対する発光駆動電流を生成するように複数の発光部が接続されることに対応して、演出用の発光部と、状況提示用の発光部のそれぞれの発光駆動制御が共通の出力処理で実行される。また1つのポート出力で、演出用と状況提示用を含む発光駆動を実現できる。
換言すれば、特定のLEDドライバ90(b2)(b3)が演出用の発光部と状況提示用の発光部の両方を発光駆動するような回路構成を採った場合でも、特定のLEDドライバ90(b2)(b3)に対する発光制御を複雑化させないようにすることができる。
【0311】
また特定の発光ドライバに対して出力される駆動信号の基になる発光駆動情報に演出用発光駆動情報と状況提示用発光駆動情報が含まれるように1タイミング分の発光駆動情報を作成することで、各タイミングで演出用発光駆動情報と状況提示用発光駆動情報を合成した発光駆動情報を生成し、特定のLEDドライバ90(b2)(b3)による演出発光と状況提示定時発行を適切に実行させることができる。
【0312】
また実施の形態のパチンコ遊技機1は、特定のLEDドライバ90(b2)(b3)は、第1電源電圧VCC1を電源電圧として動作するとともに、特定のLEDドライバ90(b2)(b3)に接続された演出用の発光部20bには発光駆動電流を流すために第1電源電圧VCC1より高圧の第2電源電圧VCC2が接続され、状況提示用の発光部20Z、20H(又は20J)には発光駆動電流を流すために第1電源電圧VCC1が接続されている。
演出用発光部は装飾上の要請から複数のLED120の直列接続が多くなり、駆動電流の電源にある程度高い電圧(例えば12V)が必要である。またLEDドライバ90は比較的低電圧(例えば5V)で駆動される。ここで状況提示用発光部20Z、20H、20Jを考えると、通常、1個のLEDで実現でき、電源に12Vは必要ないし、逆に12Vで駆動すると大きな抵抗が必要になり、熱を持ってしまう。また別の電源を用意することは回路が煩雑化する。そこで状況提示用発光部20Z、20H、20Jの発光駆動には第1電源電圧VCC1を用いるようにすることで、熱対策と回路の煩雑化の防止を図ることができる。
【0313】
また特定のLEDドライバ90(b2)(b3)に接続された演出用の発光部20bは、複数のLED120が直列に接続されており、状況提示用の発光部20Z、20H(又は20J)には、1個のLED120が接続されている。
演出用の発光部20bは、より遊技性を高める演出のためや発光範囲のために複数のLEDの直列接続を用いることが好適である。この場合に、十分な発光駆動を行うために第2電源電圧VCC2を用いる方式を適用することが好適となる。
また演出用の発光部20bは3階調以上の分解能で発光され、状況提示用の発光部20Z、20H(又は20J)は点灯と消灯の2階調で発光されるように、演出制御部51は各発光部の発光を制御するLED駆動データを出力している。
演出用の発光部20bは、より遊技性を高める演出のため3階調以上の分解能であることが好ましい。一方、状況提示用の発光部20Z、20H(又は20J)は点灯/点滅/消灯により十分な状況提示が可能であるため点灯と消灯の2階調でよいためであり、これにより状況提示用発光駆動情報は簡易に生成できるものとなる。
【0314】
以上実施の形態について説明してきたが本発明は実施の形態で挙げた例に限らず多様な変形例や適用例が考えられる。
LED等によるランプ部63,64としては枠側に1系統(1つのシリアルデータ出力チャネル)、盤側に1系統の例を挙げたが、もちろんこれに限られない。枠側のランプ部63について複数系統を設けても良いし、盤側のランプ部64において複数系統を設けても良い。
また1つの系統に盤側の発光部20bと枠側の発光部20wが混在していてもよい。
また枠側の発光部20wと提示用発光部20Z、20H、20Jを駆動するLEDドライバ90が設けられても良い。
また状況提示用発光部としてはエラー報知用発光部(例えばエラー報知用のLED)も含む。即ちエラー報知用発光部に対しても、上述の変動図柄識別用発光部20Z、保留数表示用発光部20H、遊技状態報知用発光部20Jと同様の発光制御を行うようにすることができる。
【0315】
また実施の形態のLED駆動データのシリアルデータ送信は、他の駆動制御のためのシリアルデータ送信、例えばステッピングモータやソレノイド等の可動体役物モータ65を駆動するモータドライバ部70M(130M)に対するシリアルデータ送信にも適用できる。
また本発明はパチンコ遊技機1のような弾球遊技機に適用する例を示したが、回胴式遊技機(いわゆるスロット機)にも適用できる。
例えばLED駆動データのシリアルデータ送信は、スロット機の筐体前側の装飾LEDとリールのバックライトLEDのそれぞれを第1系統、第2系統として行うことが考えられる。或いは、筐体前側の上部と下部をそれぞれシリアルデータ送信の系統に分けても良い。また、これらの1又は複数のシリアルデータ送信の系統上で、状況提示用発光部の発光駆動も実施の形態と同様に行われるようにすることができる。