以下、本発明に係る遊技機の一実施形態を、パチンコ遊技機を例にして、図面を参照して具体的に説明する。なお、以下の説明において、上下左右の方向を示す場合は、図示正面から見た場合の上下左右をいうものとする。
<パチンコ遊技機外観構成の説明>
まず、図1〜図6を参照して、本実施形態に係るパチンコ遊技機の外観構成を説明する。
<パチンコ遊技機前面の外観構成の説明>
図1に示すように、パチンコ遊技機1は、木製の外枠2と、この外枠2の前面に、左側面に設けられているヒンジ4a(図2参照)を介して縦軸心廻りに開閉自在及び着脱自在に枢着された矩形状の前面枠3とを備えている。
この前面枠3は、図2及び図3に示すように、上部装着部5と、この上部装着部5の下側に設けられた下部装着部6とを備えている。この上部装着部5の前側には、上記ヒンジ4aを介して縦軸心廻りに開閉自在及び着脱自在に枢着された透明ガラスを支持した上部開閉扉7が設けられ、下部装着部6の前側には、下部開閉扉8がヒンジ4aと同じ側に設けられたヒンジ4bにより開閉自在及び着脱自在に枢着されている。
そして、この下部開閉扉8には、図1に示すように、排出された遊技球を貯留する上受け皿9と、この上受け皿9が満杯になったときにその余剰球を受けて貯留する下受け皿10とが一体形成されている。また、下部開閉扉8には、球貸しボタン11及びプリペイドカード排出ボタン12(カード返却ボタン12)が設けられ、そして、上受け皿9の上皿表面部分には、内蔵ランプ(図示せず)点灯時に押下することにより演出効果を変化させることができる押しボタン式の演出ボタン装置13が設けられている。また、この上受け皿9には、当該上受け皿9に貯留された遊技球を下方に抜くための球抜きボタン14が設けられ、さらに、略十字キーからなる設定ボタン15が設けられている。この設定ボタン15は、遊技者による操作が可能なもので、中央部に設けられた円形の決定キー15aと、その決定キー15aの図示上側に設けられた三角形状の上キー15bと、その決定キー15aの図示左側に設けられた三角形状の左キー15cと、その決定キー15aの図示右側に設けられた三角形状の右キー15dと、その決定キー15aの図示下側に設けられた三角形状の下キー15eとで構成されている。
一方、下部開閉扉8の右端部側には、図1に示すように、発射ユニットを作動させるための発射ハンドル16が設けられ、図1〜図3に示すように、前面枠3の上部両側面側及び発射ハンドル16の近傍には、BGM(Background music)あるいは効果音を発するスピーカ17が設けられている。そして、上部開閉扉7及び下部開閉扉8の各所には、光の装飾による演出効果を現出するLEDランプ等の装飾ランプが配置されている。
他方、上部装着部5には、図2及び図3に示すように、遊技盤装着枠18が設けられており、この遊技盤装着枠18に遊技盤YB(図1参照)が、図5に示す遊技領域40を前面に臨ませた状態で装着され、遊技盤装着枠18内に固定されることとなる。すなわち、図3に示すように、上部装着部5には、右側面側下部に複数の接続用コネクタ19(図示では4個)が設けられているため、これら接続用コネクタ19に、遊技盤YBの背面に設けられた被接続用コネクタ(図示せず)が接続されることで、遊技盤装着枠18内に遊技盤YBが装着される。そして、右側面側上下方向に設けられた固定具20a,20bによって遊技盤装着枠18内に遊技盤YBが固定されることとなる。これにより、遊技盤装着枠18内に遊技盤YBが装着され、もって、その遊技盤YBの遊技領域40の前側に、透明ガラスを支持した上部開閉扉7が設けられることとなる(図1参照)。なお、上記遊技領域40は、遊技盤YBの面上に配置された球誘導レールUR(図5参照)で囲まれた領域からなるものである。
一方、下部装着部6には、図2及び図3に示すように、左右方向略中央に発射機構21が配置され、その発射機構21の右側には、スピーカ17が配置されている。この発射機構21は、図3に示すように、板金製の支持板22と、この支持板22の前面に装着された発射レール23と、支持板22の前面に装着され且つ発射用の遊技球を発射レール23上の発射待機位置24に保持する球保持部25と、支持板22の前面で前後方向の駆動軸26廻りに揺動自在に支持された打撃槌27と、支持板22の裏側に装着され、且つ、打撃槌27を、駆動軸26を介して打撃方向に駆動する発射モータを備えた発射制御基板71とを備えている。
<遊技盤の外観構成の説明>
他方、上記遊技盤YBの遊技領域40には、図5に示すように、略中央部にLCD(Liquid Crystal Display)等からなる液晶表示装置41が配置されている。この液晶表示装置41は、表示エリアを左、中、右の3つのエリアに分割し、独立して数字やキャラクタ、文字(キャラクタの会話や歌詞テロップ等)あるいは特別図柄の変動表示が可能なものである。そしてこのような液晶表示装置41の周囲には、装飾用の上飾り42a、左飾り42b、右飾り42cが設けられており、この上飾り42a、左飾り42b、右飾り42cの背面側には可動役物装置43が配置されている。
この可動役物装置43は、図5に示すように、遊技の進行に伴い所定の演出動作を行う上可動役物43aと、左可動役物43bと、右可動役物43cと、左上可動役物43dと、さらに、上・左・右・左上可動役物43a〜43dを、夫々、駆動する2相のステッピングモータ等のモータ(図示せず)とで構成されている。なお、これら上・左・右・左上可動役物43a〜43dには、光の装飾により演出効果を現出するLEDランプ等の装飾ランプが配置されている。
一方、液晶表示装置41の真下には、特別図柄1始動口44が配置され、その内部には入賞球を検出する特別図柄1始動口スイッチ44a(図7参照)が設けられている。そしてこの特別図柄1始動口スイッチ44a(図7参照)が検出した有効入賞球数、すなわち、第1始動保留球数が所定数(例えば、4個)液晶表示装置41に表示されることとなる。なお、この第1始動保留球数は、特別図柄1始動口44へ遊技球が入賞し、特別図柄1始動口スイッチ44a(図7参照)にて検出されると、1加算(+1)され、数字やキャラクタあるいは図柄(装飾図柄)等の特別図柄の変動表示が開始されると、1減算(−1)されるというものである。
他方、液晶表示装置41の右下部側には、特別図柄2始動口45が配置され、その内部には入賞球を検出する特別図柄2始動口スイッチ45a(図7参照)が設けられている。そしてこの特別図柄2始動口スイッチ45a(図7参照)が検出した有効入賞球数、すなわち、第2始動保留球数が所定数(例えば、4個)液晶表示装置41に表示されることとなる。なお、この第2始動保留球数は、特別図柄2始動口45へ遊技球が入賞し、特別図柄2始動口スイッチ45a(図7参照)にて検出されると、1加算(+1)され、数字やキャラクタあるいは図柄(装飾図柄)等の特別図柄の変動表示が開始されると、1減算(−1)されるというものである。
一方、この特別図柄2始動口45は、図5に示すように、開閉部材45bを備えており、この開閉部材45bが開放した場合に遊技球が入賞し易い状態となる。この開閉部材45bは、後述する普通図柄の抽選に当選した場合に、所定回数、所定時間開放するもので、普通電動役物ソレノイド45c(図7参照)によって開閉動作が制御されている。なお、以下では、このような開閉部材45b及び普通電動役物ソレノイド45cを合せた装置を普通電動役物と称することがある。
他方、特別図柄1始動口44の右側には、図5に示すように、入賞装置46が配置されている。この入賞装置46は、後述する特別図柄の抽選に当選したとき、すなわち大当たりしたことにより発生する特別遊技状態の際、開閉扉46aにて閉止されている図示しない大入賞口が開放するように開閉扉46aが特別電動役物ソレノイド46b(図7参照)によって駆動制御され、遊技球が大入賞口(図示せず)に入球可能となる。なお、この大入賞口(図示せず)に入球した遊技球は入賞球として大入賞口(図示せず)内部に設けられている大入賞口スイッチ46c(図7参照)によって検出される。
一方、特別図柄の抽選に当選していないとき、すなわち、特別遊技状態でない場合は、特別電動役物ソレノイド46b(図7参照)によって開閉扉46aが駆動制御され、大入賞口(図示せず)が閉止される。これにより、大入賞口(図示せず)内に遊技球が入球することができなくなる。なお、以下では、このような開閉扉46a及び特別電動役物ソレノイド46bを合せた装置を特別電動役物と称することがある。
他方、液晶表示装置41の右上部には、図5に示すように、ゲートからなる普通図柄始動口47が配置され、その内部には、遊技球の通過を検出する普通図柄始動口スイッチ47a(図7参照)が設けられている。また、上記入賞装置46の右側及び上記特別図柄1始動口44の左側には、一般入賞口48が夫々配置されている。この一般入賞口48は、上記入賞装置46の右側に配置されている右上一般入賞口48aと、上記特別図柄1始動口44の左側に配置されている左上一般入賞口48bと、左中一般入賞口48cと、左下一般入賞口48dとで構成されている。そして、右上一般入賞口48aの内部には遊技球の通過を検出する右上一般入賞口スイッチ48a1(図7参照)が設けられ、左上一般入賞口48bの内部には遊技球の通過を検出する左上一般入賞口スイッチ48b1(図7参照)が設けられ、左中一般入賞口48cの内部には遊技球の通過を検出する左中一般入賞口スイッチ48c1(図7参照)が設けられ、左下一般入賞口48dの内部には遊技球の通過を検出する左下一般入賞口スイッチ48d1(図7参照)が設けられている。
一方、特別図柄1始動口44の真下には、入賞することなく遊技領域40最下流部まで流下してきた遊技球(アウト球)が入球されるアウト口49が配置されている。なお、このアウト口49に入球した遊技球は非入賞球として内部に設けられているアウト口スイッチ49a(図7参照)によって検出され、さらに、上述した入賞球も遊技盤4の背面側を通って最下流部まで流下することとなるため、アウト口スイッチ49a(図7参照)によって検出されることとなる。それゆえ、アウト口スイッチ49a(図7参照)は、排出されたアウト総数、すなわち、発射ハンドル16にて遊技領域40に発射された遊技球と同数の遊技球を検出することとなる。
他方、上記遊技盤4の遊技領域40の右下周縁部には、7セグメントが3個並べて構成されており、そのうち2個の7セグメントが特別図柄表示装置50であり、その他の7セグメント表示装置52aは特別図柄1や特別図柄2、普通図柄の始動保留球数、遊技状態を表示するものである。この特別図柄表示装置50は、図5に示すように、特別図柄1表示装置50aと特別図柄2表示装置50bとで構成されており、その特別図柄1表示装置50aの左側には、1個のLEDからなる普通図柄表示装置51が設けられ、さらに、大当たり遊技のラウンド数を報知するラウンドランプ52b、右打ちを報知するための右打ち報知ランプ52cが設けられている。
また、特別図柄1,特別図柄2に対応する識別情報を示す識別ランプ装置50Aが左飾り43b上端部側に設けられている。
この識別ランプ装置50Aは、特別図柄1,特別図柄2が変動中、あるいは、当該特別図柄1,特別図柄2の当りハズレの情報を遊技者に知らせるための第1,第2識別ランプ50Aa,50Abを有している。この第1識別ランプ50Aaは、特別図柄1に対応しており、第2識別ランプ50Abは、特別図柄2に対応している。そして、特別図柄1が変動中の場合、第1識別ランプ50Aaは点滅し、特別図柄1が当りの場合、第1識別ランプ50Aaは点灯し、特別図柄1がハズレの場合、第1識別ランプ50Aaは消灯する。そしてさらに、特別図柄2が変動中の場合、第2識別ランプ50Abは点滅し、特別図柄2が当りの場合、第2識別ランプ50Abは点灯し、特別図柄2がハズレの場合、第2識別ランプ50Abは消灯するというものである。
なお、上記遊技盤4の遊技領域40には、図示はしないが複数の遊技釘が配置され、遊技球の落下方向変換部材としての風車53が配置されている。
ところで、上記の説明においては、発射ハンドル16にて遊技領域40に発射された遊技球と同数の遊技球を検出するにあたり、アウト口スイッチ49a(図7参照)にて、排出されたアウト総数を検出する例を示したが、それに限らず、図6に示すように、球誘導レールURに遊技球検出スイッチUR1aを備えた遊技球検出装置UR1を設けても良い。すなわち、図6に示すように、発射ハンドル16にて遊技領域40に向って発射された遊技球YKは、球誘導レールURに沿って矢印Y1方向に移動することとなる。そして、その矢印Y1方向に移動した遊技球YKが、遊技球検出スイッチUR1aに接触すると、遊技球検出装置UR1は、発射ハンドル16にて発射された遊技球を検出することとなる。しかして、このようにしても、発射ハンドル16にて遊技領域40に発射された遊技球と同数の遊技球を検出することができる。
ところで、このような遊技球検出スイッチUR1aを備えた遊技球検出装置UR1を設けるにあたり、発射ハンドル16にて遊技領域40に向って発射された遊技球YKが球誘導レールURの先端部URaに移動し、遊技領域40内に到達すれば何ら問題はないが、発射ハンドル16にて遊技領域40に向って発射された遊技球YKの勢いが弱く、図6に示す矢印Y2方向に遊技球YKが落下し、球誘導レールUR内に侵入した際、遊技球YKは、図6に示す矢印Y3方向・矢印Y4方向に移動しながら、遊技領域40内に到達することとなる。この際、球誘導レールUR内に侵入した遊技球YKが遊技球検出装置UR1に接触(衝突)すると、遊技球検出装置UR1が遊技球検出スイッチUR1aに遊技球YKが接触したと勘違いし、誤検出する可能性がある。
そこで、本実施形態においては、遊技球検出装置UR1に遊技球YKが接触(衝突)しないよう、遊技球検出装置UR1の上部側(図示右側)、すなわち、球誘導レールUR内に位置する部分を覆うように防護壁UR2を設けている。これにより、球誘導レールUR内に侵入した遊技球YKは、遊技球検出装置UR1に接触(衝突)せず、防護壁UR2に接触(衝突)することとなるから、誤検出を防止することできる。
一方、誤検出を防止する方法として、防護壁UR2を設けず、プログラム処理で対応することも可能である。すなわち、遊技球検出装置UR1が遊技球検出スイッチUR1aに遊技球YKが接触したことを検出した後、一定期間(例えば、400ms)検出無効期間を設けるようにしても良い。このようにしても、球誘導レールUR内に侵入した遊技球YKが遊技球検出装置UR1に接触(衝突)する場合、上記の検出無効期間内に接触(衝突)する可能性が高いため、もって、誤検出を防止することができる。なお、この一定期間(例えば、400ms)は、発射ハンドル16にて遊技領域40に発射される間隔(例えば、600ms)よりも短くするのが好ましい。また、遊技球検出装置UR1に何らかの不具合が発生し、例えば、1000ms区間、遊技球検出装置UR1が遊技球検出スイッチUR1aに遊技球YKが接触したことを検出し続けていた場合、遊技球検出装置UR1に何らかの不具合が発生したとし、エラーを報知するようにしても良い。
<パチンコ遊技機背面の外観構成の説明>
かくして、このように構成されるパチンコ遊技機1の背面は、図4に示すように、遊技盤装着枠18を覆って遊技盤YBを裏側から押さえる枠体状の裏機構板54が取付けられている。そして、この裏機構板54の上部右側寄りには、パチンコホール側島設備の遊技球補給装置(図示せず)から供給される遊技球を貯留する遊技球貯留タンク55が設けられ、さらには、その遊技球貯留タンク55から球を導出するタンクレール56が設けられている。
このタンクレール56の傾斜下端には、払出し装置57と払出し通路58とが装着されており、遊技球が大入賞口(図示せず)等の入賞口に入賞した時、又は、遊技球貸出装置(図示せず)から球貸し指令があった時に、遊技球貯留タンク55内の遊技球を、タンクレール56を経て払出し装置57により払出し、その遊技球を、払出し通路58を経て上受け皿9(図1参照)に案内するようになっている。
また、裏機構板54の略中央には、遊技盤YBの裏側に着脱自在に装着された透明の裏カバー59(図3も参照)が装着されており、この裏カバー59内には、サブ制御基板80を収納した透明のサブ制御基板ケース80aが着脱自在に設けられている。そして、サブ制御基板ケース80aの下方には、内部に主制御基板60を収納した透明な主制御基板ケース60aが着脱自在に設けられ、この主制御基板ケース60aの下方には、払出制御基板70を収納した透明な払出制御基板ケース70aが着脱自在に設けられている。さらに、この主制御基板ケース60aの下方には、電源基板130を収納した電源基板ケース130aが着脱自在に設けられている。
<制御装置の説明>
次に、上記のような外観構成からなるパチンコ遊技機1内に設けられる遊技の進行状況に応じて電子制御を行う制御装置を、図7を用いて説明する。この制御装置は、図7に示すように、遊技動作全般の制御を司る主制御基板60と、その主制御基板60からの制御コマンドに基づいて遊技球を払出す払出制御基板70と、画像と光と音についての制御を行うサブ制御基板80とで主に構成されている。
<主制御基板に関する説明>
主制御基板60は、主制御CPU600aと、一連の遊技制御手順を記述した遊技プログラム等を格納した主制御ROM600bと、作業領域やバッファメモリ等として機能する主制御RAM600cとで構成されたワンチップマイクロコンピュータ600と、低確時(当たり抽選確率が通常の低確率状態)に幾らの賞球がされたかの比率等に関する内容の表示(性能表示)、及び、遊技者に有利な特別遊技状態を発生させる確率の設定内容の表示を兼用する7セグメントからなる計測・設定表示装置610と、RAMクリアスイッチ620と、設定キースイッチ630と、を主に搭載している。
そして、このように構成される主制御基板60には、払出モータMを制御して遊技球を払出す払出制御基板70が接続されている。そしてさらには、特別図柄1始動口44への入賞を検出する特別図柄1始動口スイッチ44aと、特別図柄2始動口45への入賞を検出する特別図柄2始動口スイッチ45aと、普通図柄始動口47の通過を検出する普通図柄始動口スイッチ47aと、一般入賞口48(右上一般入賞口48a,左上一般入賞口48b,左中一般入賞口48c,左下一般入賞口48d)への入賞を検出する右上一般入賞口スイッチ48a1,左上一般入賞口スイッチ48b1,左中一般入賞口スイッチ48c1,左下一般入賞口スイッチ48d1と、開閉扉46aによって開放又は閉止される大入賞口(図示せず)の入賞を検出する大入賞口スイッチ46cと、発射ハンドル16にて遊技領域40に発射された遊技球と同数の遊技球を検出可能なアウト口スイッチ49aとが接続されている。またさらには、開閉部材45bの動作を制御する普通電動役物ソレノイド45cと、開閉扉46aの動作を制御する特別電動役物ソレノイド46bと、特別図柄1表示装置50aと、特別図柄2表示装置50bと、普通図柄表示装置51と、7セグメント表示装置52aと、ラウンドランプ52bと、右打ち報知ランプ52cと、が接続されている。
このように構成される主制御基板60は、特別図柄1始動口スイッチ44a又は特別図柄2始動口スイッチ45aあるいは普通図柄始動口スイッチ47aからの信号を主制御CPU600aにて受信すると、遊技者に有利な特別遊技状態を発生させるか(いわゆる「当たり」)、あるいは、遊技者に有利な特別遊技状態を発生させないか(いわゆる「ハズレ」)の抽選を行い、その抽選結果である当否情報に応じて特別図柄の変動パターンや停止図柄あるいは普通図柄の表示内容を決定し、その決定した情報を特別図柄1表示装置50a又は特別図柄2表示装置50bあるいは普通図柄表示装置51に送信する。これにより、特別図柄1表示装置50a又は特別図柄2表示装置50bあるいは普通図柄表示装置51に抽選結果が表示されることとなる。そしてさらに、主制御基板60、すなわち、主制御CPU600aは、その決定した情報を含む演出制御コマンドDI_CMDを生成し、サブ制御基板80に送信する。なお、主制御基板60、すなわち、主制御CPU600aが、特別図柄1始動口スイッチ44a、特別図柄2始動口スイッチ45a、右上一般入賞口スイッチ48a1、左上一般入賞口スイッチ48b1、左中一般入賞口スイッチ48c1、左下一般入賞口スイッチ48d1、大入賞口スイッチ46cからの信号を受信した場合は、遊技者に幾らの遊技球を払い出すかを決定し、その決定した情報を含む払出制御コマンドPAY_CMDを払出制御基板70に送信することで、払出制御基板70が遊技者に遊技球を払出すこととなる。
また、抽選を行った結果、普通図柄の抽選に当選した場合、開閉部材45bが所定回数、所定時間開放するように普通電動役物ソレノイド45cが駆動制御され、特別図柄の抽選に当選した場合、特別電動役物ソレノイド46bが大入賞口(図示せず)を開放するように制御される。
一方、主制御基板60、すなわち、主制御CPU600aは、特別図柄1始動口スイッチ44a、特別図柄2始動口スイッチ45a、右上一般入賞口スイッチ48a1、左上一般入賞口スイッチ48b1、左中一般入賞口スイッチ48c1、左下一般入賞口スイッチ48d1、大入賞口スイッチ46cからの信号を受信する毎に、賞球数を計測し、アウト口スイッチ49aからの信号を受信する毎に、排出された遊技球の総数を計測する。そして、主制御基板60、すなわち、主制御CPU600aは、この計測した賞球数及び排出された遊技球の総数に基づき、低確時に幾らの賞球がされたかの比率等に関する内容(性能表示)を計測・設定表示装置610に出力する。これにより、計測・設定表示装置610に低確時に幾らの賞球がされたかの比率等に関する内容(性能表示)が表示されることとなる。
さらに、計測・設定表示装置610は、遊技者に有利な特別遊技状態を発生させる確率の設定内容を、例えば、「1」〜「6」の6段階で表示することができるようになっている。しかして、このような設定内容を変更するにあたっては、設定キースイッチ630に専用キーを挿入し、ONされると、RAMクリアスイッチ620にて、遊技者に有利な特別遊技状態を発生させる確率の設定内容を例えば「1」〜「6」の6段階で設定変更することができるようになっている(例えば、設定「6」が、遊技者に有利な特別遊技状態を発生させる確率が最も高く、設定「1」が、遊技者に有利な特別遊技状態を発生させる確率が最も低くなっている)。そして、その設定変更内容は、計測・設定表示装置610に表示され、設定変更内容が確定すると、7セグメントの右下側にあるドットが点灯し、設定内容が確定したことが表示されるようになっている。
この計測・設定表示装置610についてより詳しく説明すると、計測・設定表示装置610には、図8に示すように、LEDドライバ611a〜611cから出力された信号が接続されている。LEDドライバ611a〜611cは、特別図柄表示装置50(図5参照),普通図柄表示装置51(図5参照),7セグメント表示装置52a,ラウンドランプ52b,右打ち報知ランプ52c,4個の7セグメントで構成されている計測・設定表示装置610の何れを点灯させるのかを選択し、信号を出力するようにしている。より詳しく説明すると、LEDドライバ611aは、図7に示すワンチップマイクロコンピュータ600から出力される8ビットのデータ信号を8ビットのデータ信号611a1として受け、4ビットの第1LEDダイナミック点灯コモンデータ信号611a2を、特別図柄表示装置50(図5参照)、又は、普通図柄表示装置51(図5参照)、又は、7セグメント表示装置52a(図5参照)、又は、ラウンドランプ52b(図5参照)、又は、右打ち報知ランプ52c(図5参照)に出力し、さらに、4ビットの第2LEDダイナミック点灯コモンデータ信号611a3を計測・設定表示装置610に出力するようにしている。すなわち、LEDドライバ611aより出力される第1LEDダイナミック点灯コモンデータ信号611a2は、後述するLEDドライバ611bから出力される第1LEDダイナミック点灯データ信号611b2を受けるLEDを選択するためのコモンデータである。この4ビットの第1LEDダイナミック点灯コモンデータ信号611a2は、1ビットの第1LEDダイナミック点灯コモンデータ第1信号611a2aと、1ビットの第1LEDダイナミック点灯コモンデータ第2信号611a2bと、1ビットの第1LEDダイナミック点灯コモンデータ第3信号611a2cと、1ビットの第1LEDダイナミック点灯コモンデータ第4信号611a2dと、で構成されている。
また、LEDドライバ611aより出力される第2LEDダイナミック点灯コモンデータ信号611a3は、後述するLEDドライバ611cから出力される第2LEDダイナミック点灯データ信号611c2を受けるLEDを選択するためのコモンデータである。この4ビットの第2LEDダイナミック点灯コモンデータ信号611a3は、1ビットの第2LEDダイナミック点灯コモンデータ第1信号611a3aと、1ビットの第2LEDダイナミック点灯コモンデータ第2信号611a3bと、1ビットの第2LEDダイナミック点灯コモンデータ第3信号611a3cと、1ビットの第2LEDダイナミック点灯コモンデータ第4信号611a3dと、で構成されており、第2LEDダイナミック点灯コモンデータ第1信号611a3aが計測・設定表示装置610のうち、図示右側に位置する第1の計測・設定表示装置610Aに出力され、第2LEDダイナミック点灯コモンデータ第2信号611a3bが計測・設定表示装置610のうち、第1の計測・設定表示装置610Aの図示左に位置する第2の計測・設定表示装置610Bに出力され、第2LEDダイナミック点灯コモンデータ第3信号611a3cが計測・設定表示装置610のうち、第2の計測・設定表示装置610Bの図示左に位置する第3の計測・設定表示装置610Cに出力され、第2LEDダイナミック点灯コモンデータ第4信号611a3dが計測表示装置610のうち、第3の計測・設定表示装置610Cの図示左に位置する第4の計測・設定表示装置610Dに出力されている。
一方、LEDドライバ611bは、図7に示すワンチップマイクロコンピュータ600から出力される8ビットのデータ信号を8ビットのデータ信号611b1として受け、第1LEDダイナミック点灯データ信号611b2を、特別図柄表示装置50(図5参照)、又は、普通図柄表示装置51(図5参照)、又は、7セグメント表示装置52a(図5参照)、又は、ラウンドランプ52b(図5参照)、又は、右打ち報知ランプ52c(図5参照)に出力するものである。これにより、特別図柄表示装置50に抽選結果が表示されるか、又は、普通図柄表示装置51に抽選結果が表示されるか、又は、7セグメント表示装置52aに特別図柄1や特別図柄2、普通図柄の始動保留球数、遊技状態が表示されるか、又は、ラウンドランプ52bに大当たり遊技のラウンド数が表示されるか、又は、右打ち報知ランプ52cに右打ち報知が表示されることとなる。なお、第1LEDダイナミック点灯データ信号611b2には、図8に示すように、ダンピング抵抗R53〜R46が接続され、LEDドライバ611bには、システムリセット生成部1320(図7参照)にて生成されたシステムリセット信号RSTが入力されている。そしてさらに、LEDドライバ611bに入力されている電圧の配線パターンとグランドの配線パターンとの間には、コンデンサC40が設けられている。
また一方、LEDドライバ611cは、図7に示すワンチップマイクロコンピュータ600から出力される8ビットのデータ信号を8ビットのデータ信号611c1として受け、8ビットの第2LEDダイナミック点灯データ信号611c2を計測・設定表示装置610に出力するものである。これにより、低確時に幾らの賞球がされたかの比率等に関する内容(性能表示)を表示する場合には、第1の計測・設定表示装置610A、第2の計測・設定表示装置610B、第3の計測・設定表示装置610C、第4の計測・設定表示装置610D全てに、その内容が表示されることとなる。一方、遊技者に有利な特別遊技状態を発生させる確率の設定内容を表示する場合には、その設定内容が、第1の計測・設定表示装置610Aのみに表示されることとなる。なお、第2LEDダイナミック点灯データ信号611c2には、図8に示すように、ダンピング抵抗R3〜R10が接続され、LEDドライバ611cには、システムリセット生成部1320(図7参照)にて生成されたシステムリセット信号RSTが入力されている。そしてさらに、LEDドライバ611cに入力されている電圧の配線パターンとグランドの配線パターンとの間には、コンデンサC2が設けられている。
かくして、このようにして、計測・設定表示装置610は、低確時に幾らの賞球がされたかの比率等に関する内容(性能表示)の表示、及び、遊技者に有利な特別遊技状態を発生させる確率の設定内容の表示を兼用することとなる。
他方、RAMクリアスイッチ620は、設定キースイッチ630に専用キーを挿入し、ONされた場合以外に、RAMクリアスイッチ620が押下されると、主制御RAM600c(図7参照)のメモリ領域は全てクリアされず、一部のメモリ領域のみクリアされるようになっている。すなわち、主制御RAM600cは、図9(a)に示すように、メモリ空間アドレス0000H番地〜0200H番地のうち、メモリ空間アドレス0000H番地〜0100H番地までが、抽選処理等の遊技処理時の作業領域等として使用される通常用RAM領域600caで、メモリ空間アドレス0100H番地〜0110H番地までが、未使用領域600cbで、メモリ空間アドレス0110H番地〜0130H番地までが、抽選処理等の遊技処理時に使用される通常用スタック領域600ccで、メモリ空間アドレス0130H番地〜0150H番地までが、未使用領域600cdで、メモリ空間アドレス0150H番地〜0190H番地までが、主制御基板60、すなわち、主制御CPU600にて計測した賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を記憶する計測用RAM領域600ceで、メモリ空間アドレス0190H番地〜01E0H番地までが、未使用領域600cfで、メモリ空間アドレス01E0H番地〜0200H番地までが、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する等の際に使用される計測用スタック領域600cgで構成されている。
かくして、このように構成された主制御RAM600cは、RAMクリアスイッチ620が押下された際、主制御RAM600cの計測用RAM領域600ce,計測用スタック領域600cgはクリアされず、通常用RAM領域600ca,通常用スタック領域600ccがクリアされるようになっている。しかして、このようにすれば、計測した賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等が誤ってクリアされる事態を防止することができる。なお、本実施形態においては、RAMクリアスイッチ620が押下された際、通常用RAM領域600ca,通常用スタック領域600ccがクリアされる例を示したが、それに限らず、未使用領域600cb,600cdを含めて、メモリ空間アドレス0000H番地〜0150H番地までクリアされるようにしてもよい。
また、通常用RAM領域600ca,通常用スタック領域600cc,計測用RAM領域600ce,計測用スタック領域600cgの各領域を下1桁が0から始まる番地から開始し、通常用RAM領域600caと通常用スタック領域600ccとの間に未使用領域600cbを設け、又、通常用スタック領域600ccと計測用RAM領域600ceとの間に未使用領域600cdを設け、さらに、計測用RAM領域600ceと計測用スタック領域600cgとの間に未使用領域600cfを設けることによって、領域毎の区別をつけるようにしている。これにより、プログラムが暴走した際に、他の領域に影響が出ないようにすることができる。
一方、主制御ROM600bは、図9(b)に示すように、メモリ空間アドレス8000H番地〜A800H番地のうち、メモリ空間アドレス8000H番地〜8B90H番地までが、抽選処理等の遊技処理時に使用されるプログラムが格納されている通常用プログラム領域600baで、メモリ空間アドレス8B90H番地〜9000H番地までが、未使用領域600bbで、メモリ空間アドレス9000H番地〜9A00H番地までが、抽選処理等の遊技処理時に使用されるデータが格納されている通常用データ領域600bcで、メモリ空間アドレス9A00H番地〜9C00H番地までが、未使用領域600bdで、メモリ空間アドレス9C00H番地〜A010H番地までが、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムが格納されている計測用プログラム領域600beで、メモリ空間アドレスA010H番地〜A200H番地までが、未使用領域600bfで、メモリ空間アドレスA200H番地〜A320H番地までが、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるデータが格納されている計測用データ領域600bgで、メモリ空間アドレスA320H番地〜A780H番地までが、未使用領域600bhで、メモリ空間アドレスA780H番地〜A800H番地までが、ベクタテーブル領域600biで構成されている。なお、このベクタテーブル領域600biは、後述する複数のコール命令のうち、CALL_S命令で呼び出すことができるサブルーチンのテーブルアドレスが格納されているものである。
しかして、このように構成された主制御RAM600cは、通常用プログラム領域600ba,通常用データ領域600bc,計測用プログラム領域600be,計測用データ領域600bg,ベクタテーブル領域600biの各領域を下1桁が0から始まる番地から開始し、通常用プログラム領域600baと通常用データ領域600bcとの間に未使用領域600bbを設け、又、通常用データ領域600bcと計測用プログラム領域600beとの間に未使用領域600bdを設け、さらに、計測用プログラム領域600beと計測用データ領域600bgとの間に未使用領域600bfを設け、そしてさらに、計測用データ領域600bgとベクタテーブル領域600biとの間に未使用領域600bhを設けることによって、領域毎の区別をつけるようにしている。これにより、プログラムが暴走した際に、他の領域に影響が出ないようにすることができる。
<払出制御基板に関する説明>
払出制御基板70は、上記主制御基板60(主制御CPU600a)からの払出制御コマンドPAY_CMDを受信し、その受信した払出制御コマンドPAY_CMDに基づいて払出モータ信号を生成する。そして、その生成した払出モータ信号にて、払出モータMを制御し、遊技者に遊技球を払出す。そしてさらに、払出制御基板70は、遊技球の払出動作を示す賞球計数信号や払出動作の異常に係るステータス信号を送信し、遊技者の操作に応答して遊技球を発射させる発射制御基板71の動作を開始又は停止させる発射制御信号を送信する処理を行う。
<サブ制御基板に関する説明>
サブ制御基板80は、上記主制御基板60(主制御CPU600a)からの演出制御コマンドDI_CMDを受けて各種演出を実行制御すると共に、液晶表示装置41に表示される表示画像を制御するサブ制御CPU800aと、演出制御手順を記述した制御プログラムや図10に示す演出シナリオテーブルPR_TBL等が格納されているサブ制御ROM800bと、作業領域やバッファメモリ等として機能するサブ制御RAM800cとで構成されたサブワンチップマイコン800を搭載している。なお、サブ制御CPU800aには、後述する遊技ROM805内に格納されている音データを音RAM802に転送するDMAコントローラ800a1が設けられている。
またさらに、サブ制御基板80は、所望のBGMや効果音を生成する音LSI801と、作業領域やバッファメモリ等として機能する音RAM802と、サブワンチップマイコン800の指示に基づき液晶表示装置41に表示される画像データを生成するVDP803と、動画圧縮データを伸張する作業領域と、液晶表示装置41に表示される画像データを一時的に保存するフレームバッファ領域とで構成されるDDR2SDRAM804と、静止画圧縮データと動画圧縮データのCGデータと、BGMや効果音等の音データと、が予め格納されている遊技ROM805と、が搭載されている。なお、静止画とは、いわゆるスプライト画像であって、文字等のテキストデータや背景画像、あるいは、特別図柄等、単一の画像を示すものである。また、動画とは、連続的に変化する複数枚(複数フレーム分)の静止画の集合を意味し、液晶表示装置41に複数枚の静止画が連続して描画されることで、円滑な動作が再現されるものである。
このように構成されるサブ制御基板80には、ランプ演出効果を現出するLEDランプ等の装飾ランプが搭載されている装飾ランプ基板90が接続され、さらに、内蔵されているランプ(図示せず)点灯時に遊技者が押下することにより演出効果を変化させることができる押しボタン式の演出ボタン装置13が接続され、BGMや効果音等を発するスピーカ17が接続されている。そしてさらに、サブ制御基板80には、遊技の進行に伴い所定の演出動作を行う可動役物装置43が接続され、特別図柄1,特別図柄2が変動中、あるいは、当該特別図柄1,特別図柄2の当りハズレの情報を遊技者に知らせるための識別ランプ装置50Aが接続され、各種設定が可能な設定ボタン15が接続され、液晶表示装置41が接続されている。なお、言うまでもないが、この装飾ランプ基板90には、上・左・右・左上可動役物43a〜43dに配置されている装飾ランプも搭載されている。
かくして、このように構成されるサブ制御基板80は、主制御基板60(主制御CPU600a)より送信される大当たり抽選結果(大当たりかハズレの別)に基づく特別図柄変動パターン、現在の遊技状態、始動保留球数、抽選結果に基づき停止させる装飾図柄等に必要となる基本情報を含んだ演出制御コマンドDI_CMDをサブ制御CPU800aにて受信する。そして、サブ制御CPU800aは、受信した演出制御コマンドDI_CMDに対応した演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンを実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。
サブ制御CPU800aは、サブ制御RAM800cに格納しておいた演出パターンを実行指示する制御信号のうち、音に関する制御信号を音LSI801に送信する。これを受けて音LSI801は、当該制御信号に対応する音データを遊技ROM805又は音RAM802より読み出し、スピーカ17に出力する。これにより、スピーカ17より上記決定された演出パターンに対応したBGMや効果音が発せられることとなる。
またサブ制御CPU800aは、サブ制御RAM800cに格納しておいた演出パターンを実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板90に送信する。これにより、装飾ランプ基板90が、ランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯する制御を行うため、上記決定された演出パターンに対応したランプ演出が実行されることとなる。
そしてサブ制御CPU800aは、サブ制御RAM800cに格納しておいた演出パターンを実行指示する制御信号のうち、画像に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像データを生成し、その生成した画像データを液晶表示装置41に送信することにより、上記決定された演出パターンに対応した画像が液晶表示装置41に表示されることとなる。
さらにサブ制御CPU800aは、サブ制御RAM800cに格納しておいた演出パターンを実行指示する制御信号のうち、可動役物に関する制御信号を可動役物装置43に送信する。これにより、可動役物装置43は、上記決定された演出パターンに対応した可動をすることとなる。
<演出シナリオテーブルの説明>
ここで、サブ制御ROM800b内に格納されている演出シナリオテーブルPR_TBLについて、図10を用いて詳しく説明する。図10(a)に示すように、演出シナリオテーブルPR_TBLには、サブ制御CPU800aにて決定された演出パターンに対応した複数の演出シナリオデータPS_DATAが格納されている。この演出シナリオデータPS_DATAには、液晶表示装置41に表示させる画像データを描画する際に使用される1レイヤ毎のデータである1レイヤデータPS_DATA1が複数格納されている。この1レイヤデータPS_DATA1には、図10(b)に示すように、1フレーム〜10フレーム描画する等のフレームデータPS_DATA10と、制御コードデータPS_DATA11と、液晶表示装置41に表示させる際の位置を示す座標データPS_DATA12と、画像の変形,拡大,縮小,透過度等の画素計算データPS_DATA13と、画像の拡大,縮小を示す拡縮データPS_DATA14とが格納されている。そしてさらには、スピーカ17より発せられる音を示す音データPS_DATA15と、可動役物装置43を可動させるための可動役物データPS_DATA16と、ランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯させるためのランプデータPS_DATA17とが格納されている。
また、制御コードデータPS_DATA11は、図10(c)に示す制御テーブルCH_TBLが格納されているサブ制御ROM800bのアドレス番地が格納されており、そのアドレス番地に示す内容のデータが参照されることとなる。すなわち、制御テーブルCH_TBLは、図10(c)に示すように、複数のキャラ用データCH_DATAが格納されており、このキャラ用データCH_DATAには、静止画か動画かを示すデータPS_DATA110と、遊技ROM805のアドレス番地を示すアドレスデータPS_DATA111と、画像サイズを示す画像サイズデータPS_DATA112と、設定ボタン15の連打演出又は演出ボタン装置13の押下演出の有効/無効を示すボタンデータPS_DATA113と、可動役物装置43の可動を開始するタイミングを示す可動役物タイミングデータPS_DATA114と、が格納されている。これにより、制御コードデータPS_DATA11は、図10(c)に示す制御テーブルCH_TBLに格納されている複数のキャラ用データCH_DATAから、一つのキャラ用データCH_DATAを参照することとなる。なお、演出シナリオデータPS_DATAに格納されている1レイヤデータPS_DATA1は、優先順位が低いものから順に格納されており、この優先順位が低い位置に、図10(c)に示す制御テーブルCH_TBLより動画を示すデータPS_DATA110が参照されるような制御コードデータPS_DATA11が格納され、優先順位が高い位置に、図10(c)に示す制御テーブルCH_TBLより静止画を示すデータPS_DATA110が参照されるような制御コードデータPS_DATA11が格納されている。
<VDPの説明>
一方、液晶表示装置41に表示させる画像データを生成するVDP803は、図11に示すように構成されている。
図11に示すように、VDP803は、DDR2SDRAM804用のインターフェース回路(I/F)8030と、遊技ROM805用のインターフェース回路(I/F)8031と、サブワンチップマイコン800用のインターフェース回路(I/F)8032とが内蔵されている。そしてさらに、VDP803は、サブワンチップマイコン800(サブ制御CPU800a)からインターフェース回路(I/F)8032を介してアクセスされるシステム制御レジスタ8033と、コマンドリストを記憶するコマンドメモリ8034と、コマンドリストを解析するコマンドパーサ8035と、遊技ROM805内のデータの読出しを制御するCGメモリコントローラ8036と、静止画圧縮データをデコードする静止画デコーダ8037と、動画圧縮データをデコードする動画デコーダ8038と、静止画デコーダ8037及び動画デコーダ8038にてデコード(伸張)された画像について、拡大・縮小・回転・移動などのアフィン変換や投影変換などを実行するジオメトリエンジン8039と、内蔵VRAM8040と、液晶表示装置41に表示される画像データを生成するレンダリングエンジン8041と、DDR2SDRAM804内のデータの読出し、及び、DDR2SDRAM804内へのデータの書き込みを制御するDDR2SDRAMコントローラ8042と、液晶表示装置41へレンダリングエンジン8041にて生成された画像データを表示させるタイミング等の制御を行うディスプレイコントローラ8043と、液晶表示装置41へ画像データを送信するにあたり、LVDS(Low Voltage Differential Signaling)形式で送信するLVDS送信部8044とで構成されている。
システム制御レジスタ8033は、VDP803に対する指示データなどをサブワンチップマイコン800(サブ制御CPU800a)が書き込むレジスタ群と、VDP803の動作状態などを示す情報をサブワンチップマイコン800(サブ制御CPU800a)が読み出すレジスタ群とに大別される。これにより、サブワンチップマイコン800(サブ制御CPU800a)は、所定の入力レジスタに必要な設定値を書き込むことで、VDP803を適宜動作させ、必要な出力レジスタの値を参照することで、VDP803の動作状態を把握することが可能となる。
一方、コマンドメモリ8034は、コマンドリストが記憶されるもので、このコマンドリストは、サブワンチップマイコン800(サブ制御CPU800a)よりインターフェース回路(I/F)8032を介して送信されてくるものである。より具体的に説明すると、サブワンチップマイコン800(サブ制御CPU800a)は、主制御基板60(主制御CPU600a)にて受信した演出制御コマンドDI_CMDに対応した演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンに基づいて、コマンドリストを作成し、インターフェース回路(I/F)8032を介してコマンドメモリ8034に送信する。これを受けて、コマンドメモリ8034は、そのコマンドリストを記憶するというものである。
他方、コマンドパーサ8035は、上記コマンドメモリ8034に記憶されているコマンドリストを解析し、このコマンドリスト解析によって、毎フレーム描画動作が実行されることとなる。すなわち、静止画デコーダ8037は、コマンドパーサ8035によるコマンドリストの解析結果に基づいて、CGメモリコントローラ8036を用いて、アドレスデータPS_DATA111(図10(c)参照)にて示す遊技ROM805のアドレス番地より静止画圧縮データを読出し、その読み出した静止画圧縮データをデコード(伸張)する。そして、デコードされた静止画データは、内蔵VRAM8040内に一時保存されることとなる。
一方、動画デコーダ8038は、コマンドパーサ8035によるコマンドリストの解析結果に基づいて、CGメモリコントローラ8036を用いて、アドレスデータPS_DATA111(図10(c)参照)にて示す遊技ROM805のアドレス番地より動画圧縮データを読出し、その読み出した動画圧縮データをデコード(伸張)する。そして、デコードされた動画データは、DDR2SDRAM804内に一時保存されることとなる。
このようにして、デコード(伸張)された静止画や動画(1フレーム分の動画)は、コマンドパーサ8035によるコマンドリストの解析結果、すなわち、図10(b)に示す各種データ(フレームデータPS_DATA10,座標データPS_DATA12,画素計算データPS_DATA13,拡縮データPS_DATA14)に基づいて、ジオメトリエンジン8039が、拡大・縮小・回転・移動などのアフィン変換や、投影変換などの処理を施し、その処理が施された静止画データは、内蔵VRAM8040内に格納され、動画データは、DDR2SDRAM804内に格納されることとなる。
そして、その後、レンダリングエンジン8041が機能して、DDR2SDRAM804内に格納されている動画データが、DDR2SDRAMコントローラ8042によって読み出され、レンダリングエンジン8041によって、動画データが描画される。次いで、内蔵VRAM8040より静止画データが読み出され、静止画データが描画される。これにより、動画データ上に静止画データが上書き描画されることにより、液晶表示装置41に表示される画像データが生成されることとなる。なお、この生成された画像データは、DDR2SDRAMコントローラ8042によって、DDR2SDRAM804内のフレームバッファ領域内に書き込まれることとなる。
かくして、フレームバッファ領域内に書き込まれた画像データは、ディスプレイコントローラ8043によって、DDR2SDRAMコントローラ8042より読み出され、LVDS送信部8044によって液晶表示装置41に送信されることとなる。これにより、液晶表示装置41にレンダリングエンジン8041によって生成された画像データが表示されることとなる。
ところで、液晶表示装置41に表示される画像データは1フレーム毎に更新されるが、この1フレームの表示動作が終わったことをサブワンチップマイコン800(サブ制御CPU800a)が把握できるように、図7,図11に示すVSYNC(垂直同期信号)を割込み信号としてVDP803からサブ制御CPU800aに対して送信するようにしている。これにより、サブ制御CPU800aは、1フレーム分の画像データが液晶表示装置41に表示されたことを把握することができる。なお、このVSYNC割込み信号は、例えば、33ms毎に発生するようにしている。
<電源基板の説明>
ところで、上記説明した各基板への電源供給は、図7に示す電源基板130より供給されている。この電源基板130は、電圧生成部1300と、電圧監視部1310と、システムリセット生成部1320とを含んで構成されている。この電圧生成部1300は、遊技店に設置された図示しない変圧トランスから供給される外部電源である交流電圧AC24Vを受けて複数種類の直流電圧を生成するもので、その生成された直流電圧は、図示はしないが各基板に供給されている。
また、電圧監視部1310は、上記交流電圧AC24Vの電圧を監視するもので、この電圧が遮断されたり、停電が発生したりして電圧異常を検出した場合に電圧異常信号ALARMを主制御基板60に出力するものである。なお、電圧異常信号ALARMは、電圧異常時には「L」レベルの信号を出力し、正常時には「H」レベルの信号を出力する。
また、一方、システムリセット生成部1320は、電源投入時のシステムリセット信号RSTを生成するもので、その生成されたシステムリセット信号RSTは、各基板に出力されている。
<主制御ROMのデータ配置の説明>
ここで、上記説明した主制御ROM600bのうち、通常用データ領域600bc,計測用データ領域600bgに格納されるデータ配置について、図12を参照して説明することとする。
従来、主制御ROM600bのデータ配置は、1バイト単位で構成されている為、データの種類によっては、1バイトを構成する8ビットの内、未使用となるビットも含めたデータ配置となっている。この点、図12(a)に示す、特別図柄の変動時間データのデータ配置を例にして、具体的に説明することとする。
特別図柄の変動時間のデータとして、10秒の第1変動時間と、30秒の第2変動時間と、50秒の第3変動時間と、120秒の第4変動時間とが存在したとする。この際、10秒は、10000ミリ秒で、後述するように4ms毎に定期的にタイマ割込みが発生すると1カウントすることとなるため、10000/4=2500となり、これを16進数にすると、09C4Hとなる。しかして、このようにして計算していくと、30秒は、1D4CH、50秒は、30D4H、120秒は、7530Hとなる。
かくして、10秒に相当する第1変動時間データは、09C4Hであって、2進数にすると、「0000 1001 1100 0100」となり、図12(a)に示すように、主制御ROM600bの通常用データ領域600bcにおける従来の変動時間データのデータ配置では、メモリ空間アドレス9000H番地に、下位8ビットである「1100 0100」が配置され、次のメモリ空間アドレス9001H番地に、上位8ビットである「0000 1001」が配置されることとなる。
次いで、30秒に相当する第2変動時間データは、1D4CHであって、2進数にすると、「0001 1101 0100 1100」となり、図12(a)に示すように、主制御ROM600bの通常用データ領域600bcにおける従来の変動時間データのデータ配置では、メモリ空間アドレス9002H番地に、下位8ビットである「0100 1100」が配置され、次のメモリ空間アドレス9003H番地に、上位8ビットである「0001 1101」が配置されることとなる。
次いで、50秒に相当する第3変動時間データは、30D4Hであって、2進数にすると、「0011 0000 1101 0100」となり、図12(a)に示すように、主制御ROM600bの通常用データ領域600bcにおける従来の変動時間データのデータ配置では、メモリ空間アドレス9004H番地に、下位8ビットである「1101 0100」が配置され、次のメモリ空間アドレス9005H番地に、上位8ビットである「0011 0000」が配置されることとなる。
次いで、120秒に相当する第4変動時間データは、7530Hであって、2進数にすると、「0111 0101 0011 0000」となり、図12(a)に示すように、主制御ROM600bの通常用データ領域600bcにおける従来の変動時間データのデータ配置では、メモリ空間アドレス9006H番地に、下位8ビットである「0011 0000」が配置され、次のメモリ空間アドレス9007H番地に、上位8ビットである「0111 0101」が配置されることとなる。
かくして、このようにして、従来の変動時間データのデータ配置では、メモリ空間アドレス番地毎にデータが配置されることとなる。
しかしながら、このようなデータ配置では、10秒の第1変動時間と、30秒の第2変動時間と、50秒の第3変動時間と、120秒の第4変動時間いずれも、最上位ビットである16ビット目が何れも「0」であるから、本来であれば、変動時間データとして15ビットしか必要でないにもかかわらず、無駄な1ビットを、図12(a)に示すように、メモリ空間アドレス9001H番地の8ビット目、メモリ空間アドレス9003H番地の8ビット目、メモリ空間アドレス9005H番地の8ビット目、メモリ空間アドレス9007H番地の8ビット目に配置していることとなる。それゆえ、従来のデータ配置では、主制御ROM600bのデータ配置を効率的に行えておらず、もって、主制御ROM600bのデータ容量の削減を図れていないといった問題があった。
そこで、本実施形態においては、主制御ROM600bのデータ配置を効率的に行うために、通常用データ領域600bcに格納されるデータを、図12(b)に示すようなデータ配置としている。
すなわち、10秒に相当する第1変動時間データは、09C4Hであって、使用する15ビット分のデータを2進数で表すと、「000 1001 1100 0100」となり、図12(b)に示すように、メモリ空間アドレス9000H番地に、下位8ビットである「1100 0100」が配置され、次のメモリ空間アドレス9001H番地に、上位7ビットである「000 1001」が配置されることとなる。
次いで、30秒に相当する第2変動時間データは、1D4CHであって、使用する15ビット分のデータを2進数で表すと、「001 1101 0100 1100」となり、図12(b)に示すように、メモリ空間アドレス9001H番地の8ビット目に、下位8ビットのうち最下位ビットである「0」が配置され、次のメモリ空間アドレス9002H番地に、下位8ビットのうち残り7ビットである「0100 110」が配置され、メモリ空間アドレス9002H番地の8ビット目に、上位7ビットのうち、最下位ビットである「1」が配置され、次のメモリ空間アドレス9003H番地に、上位7ビットのうち残り6ビットである「001 110」が配置されることとなる。
次いで、50秒に相当する第3変動時間データは、30D4Hであって、使用する15ビット分のデータを2進数で表すと、「011 0000 1101 0100」となり、図12(b)に示すように、メモリ空間アドレス9003H番地の8ビット目、7ビット目に、下位8ビットのうち下位2ビットである「00」が配置され、次のメモリ空間アドレス9004H番地に、下位8ビットのうち残り6ビットである「1101 01」が配置され、メモリ空間アドレス9004H番地の8ビット目、7ビット目に、上位7ビットのうち、下位2ビットである「00」が配置され、次のメモリ空間アドレス9005H番地に、上位7ビットのうち残り5ビットである「011 00」が配置されることとなる。
次いで、120秒に相当する第4変動時間データは、7530Hであって、使用する15ビット分のデータを2進数で表すと、「111 0101 0011 0000」となり、図12(b)に示すように、メモリ空間アドレス9005H番地の8ビット目〜6ビット目に、下位8ビットのうち下位3ビットである「000」が配置され、次のメモリ空間アドレス9006H番地に、下位8ビットのうち残り5ビットである「0011 0」が配置され、メモリ空間アドレス9006H番地の8ビット目〜6ビット目に、上位7ビットのうち、下位3ビットである「101」が配置され、次のメモリ空間アドレス9007H番地に、上位7ビットのうち残り4ビットである「111 0」が配置されることとなる。
かくして、このようにして、連続するアドレス番地に跨ってデータを配置するようにし、且つ、データを詰めて配置するようにすれば、メモリ空間アドレス9007H番地の8ビット目〜5ビット目が空き領域となり、もって、データ容量の削減を図ることができることとなる。
ところで、図12(b)に示すようなデータ配置をするにあたっては、例えば、図13(a)に示すようなプログラムが用いられる。以下、このプログラムについて説明することとする。なお、このプログラムは、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているものである。
図13(a)に示すように、まず、データ配置を行う通常用データ領域600bc(図9(b)参照)の先頭のメモリ空間アドレス番地9000Hを定義し(ORG 9000H)、その定義したラベルをD_HEDOUTIMEとする。
次いで、格納するサイズを15ビットにする宣言をし(START EQU SIZE{15})、10秒の第1変動時間に相当するデータ09C4H、30秒の第2変動時間に相当するデータ1D4CH、50秒の第3変動時間に相当するデータ30D4H、120秒の第4変動時間に相当するデータ7530Hを記載し、格納するサイズを15ビットにするデータがここまでであることを宣言する(END EQU SIZE)。これにより、プログラムをアセンブルしてROMデータが作成される際、通常用データ領域600bc(図9(b)参照)に、図12(b)に示すように、上記プログラムに記載したデータが格納されていくこととなる。
かくして、このようにプログラムで格納するサイズを指定したデータ配置にすることによって、図12(b)に示すようなデータ配置がされることとなる。なお、09C4H、1D4CH、30D4H、7530Hのデータは16ビット形式で記載しているものの、格納するサイズを15ビットにする宣言をしていることから、プログラムをアセンブルしてROMデータが作成される際、図12(b)に示すように、9000H番地を先頭に15ビット分のデータが格納されていくこととなる。
一方、主制御ROM600bの通常用データ領域600bc(図9(b)参照)に格納されているデータを取得するにあたっては、例えば、図13(b)に示すようなプログラムが用いられる。以下、このプログラムについて説明することとする。なお、このプログラムは、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているものである。
まず、このプログラムの処理が開始される前の処理として、主制御CPU600aにて特別図柄の変動パターン(特別図柄の変動時間)抽選が行われ、この抽選の結果、120秒の第4変動時間の変動パターンが選択され、その選択された変動パターンの番号を示す「04H」が、図13(b)に示すW_HENDOUNoに格納されているものとして説明することとする。
図13(b)に示すように、まず、選択された変動パターンの番号(「04H」)が格納されているW_HENDOUNoから選択された変動パターンの番号(「04H」)を取得する(LD A、(W_HENDOUNo)−1)。
次いで、取得した変動パターンの番号からディクリメント(−1)された番号(「03H」)に15をかけて、オフセット値を計算する(MUL A、15)。
次いで、呼び出すビット位置に合わせるために、上記で計算したオフセット値をインクリメント(+1)する(INC A)。
次いで、変動時間が格納されている先頭のアドレス番地(図13(a)に示す、D_HENDOUTIME(9000H))に、上記で計算したオフセット値を加算したアドレスから15ビット分のデータをHLレジスタにセットする(LD(15) HL、D_HENDOUTIME、A)。これにより、主制御CPU600aは、図12(b)に示す、メモリ空間アドレス9000H番地からオフセット値46ビット目のデータから15ビット分のデータ、すなわち、メモリ空間アドレス9005H番地の6ビット目からメモリ空間アドレス9007H番地の4ビット目まで格納されているデータ(111 0101 0011 0000)をHLレジスタにセットすることとなる。しかして、このようにして、120秒に相当する第4変動時間データが、主制御ROM600bの通常用データ領域600bc(図9(b)参照)より取得されることとなる。なお、主制御CPU600aの内部レジスタ(Aレジスタ、HLレジスタ等)は、1バイト単位で構成されている。そのため、主制御CPU600aは、プログラム上、主制御CPU600aの内部レジスタ(Aレジスタ、HLレジスタ等)に合わせて1バイト単位で処理を行うため、2バイトのHLレジスタに15ビットのデータ(111 0101 0011 0000)をセットする際、最上位ビットに0を付加し、2バイトのHLレジスタに16ビットのデータ(0111 0101 0011 0000)をセットすることとなる。それゆえ、プログラムでは、読み込んだデータサイズが15ビットであることを気にせず、処理が行えることとなる。
ところで、本実施形態においては、通常用データ領域600bcのみを例に説明したが、もちろん、計測用データ領域600bgであっても、同様のデータ配置が可能である。また、通常用データ領域600bc,計測用データ領域600bgとして、上記説明したデータ配置の領域のみで構成しても良いし、上記説明したデータ配置の領域と、従来のデータ配置の領域とに分けて構成するようにしても良い。このようにすれば、状況に応じたプログラムを組むことができ、もって、最適なプログラム処理が可能となる。
また、本実施形態においては、特別図柄の変動時間データのデータ配置を例にして説明したが、これに限らず、変動パターンの振分け値と、選択される変動パターンの番号の振分けテーブルデータ、大当りの種別抽選の振分け値と、振分けテーブルデータ、その他大当り制御に関わる設定値データなど、どのようなデータにも適用可能である。
一方、本実施形態においては、15ビットのデータサイズを定義、すなわち、1つのデータサイズを定義する例を示したが、複数のデータに対し、それぞれ別のビットサイズを定義することも可能である。この点、変動パターン乱数の判定値と、その時選択される変動パターンの番号データを定義する場合のプログラムを例にして、図14を参照して具体的に説明する。
図14に示すように、当該データ配置を行う通常用データ領域600bc(図9(b)参照)の先頭のメモリ空間アドレス番地9100Hを定義し(ORG 9100H)、その定義したラベルをD_HENDOUHANTEIとする。
次いで、格納するサイズを14ビット、4ビットにする宣言(START EQU SIZE{14,4})をする。そして、変動パターン乱数が0〜255(=0100H−1)の場合、変動パターンの番号01Hを選択することを示す「0100H、01H」を記載し、変動パターン乱数が256〜511(=0200H−1)の場合、変動パターンの番号02Hを選択することを示す「0200H、02H」を記載し、変動パターン乱数が512〜4999(=1388H−1)の場合、変動パターンの番号04Hを選択することを示す「1388H、04H」を記載し、変動パターン乱数が5000〜10000(=2710H−1)の場合、変動パターンの番号08Hを選択することを示す「2710H、08H」を記載し、格納するサイズを14ビット、4ビットにするデータがここまであることを宣言する(END EQU SIZE)。これにより、主制御CPU600aは、通常用データ領域600bc(図9(b)参照)のメモリ空間アドレス番地9100H番地から順に、14ビット、4ビットのデータを格納していくこととなる。なお、0100H、0200H、1388H、2710Hのデータは16ビット形式で記載し、01H、02H、04H、08Hのデータは8ビット形式で記載しているものの、格納するサイズを14ビット、4ビットにする宣言をしていることから、主制御CPU600aは、9100H番地を先頭に14ビット分、4ビット分のデータを格納していくこととなる。
かくして、このようにして、複数のデータに対し、それぞれ別のビットサイズを定義することができる。
<カウンタの更新処理の説明>
次に、後述する当否抽選に使用する普通図柄、特別図柄等の乱数の更新、コモンカウンタ等のカウンタの更新処理について、図15を参照して説明することとする。
従来、プログラムで所定範囲を循環するカウンタを更新する際、所定範囲を超えたら0に戻すという処理のプログラムを組む必要があった。この点、図15(a)に示す、0〜99の範囲で更新するカウンタプログラムを例にして、具体的に説明することとする。
図15(a)に示すように、ラベルM_INCEXのカウンタプログラムでは、まず、指定された上限値をもとにカウンタを更新、すなわち、W_COUNTERのワークの値をAレジスタにセットする(LD A、(W_COUNTER))。
次いで、Aレジスタの値をインクリメント(+1)する(INC A)。
次いで、100と比較し(CP 100)、100を超えていれば、Aレジスタを0にする(XOR A)。
一方、100と比較し(CP 100)、100を超えていなければ、ラベルXXXへ飛ぶ(JR C、XXX)。そして、このラベルXXXでは、更新したカウント値をW_COUNTERのワークに格納する(LD (W_COUNTER)、A)。
かくして、上記のようなプログラムを繰り返し行うことで、0〜99の範囲でカウント値を更新することとなる。
しかして、このように従来においては、プログラムで0〜99を循環するカウンタを更新する際、99を超えたら0に戻すという処理のプログラムを上記のように組む必要があった。
しかしながら、上記のようなプログラムでは、比較命令を必ず用いて分岐処理を行わなければならず、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができていないという問題があった。
そこで、本実施形態においては、比較命令を用いて分岐することなく、所定範囲を循環するカウンタを更新可能なカウンタプログラムを組むようにしている。この点、図15(b)に示す、0〜63の範囲で更新するカウンタプログラムを例にして、具体的に説明することとする。なお、このカウンタプログラムは、図9(b)に示す主制御ROM600bの通常用プログラム領域600ba、計測用プログラム領域600beに格納されているものである。
図15(b)に示すように、ラベルM_INCEXのカウンタプログラムでは、まず、指定された上限値をもとにカウンタを更新、すなわち、W_COUNTERのワークの値をAレジスタにセットする(LD A、(W_COUNTER))。
次いで、Aレジスタの値をインクリメント(+1)すると共に、下位6ビットを「0011 1111」でマスクする(AND A+、0011 1111B)。
次いで、更新したカウント値をW_COUNTERのワークに格納する(LD (W_COUNTER)、A)。
かくして、上記のようなプログラムを繰り返し行うことで、0〜63の範囲でカウント値を更新することとなる。
しかして、上記のようなプログラムを用いれば、カウント値が63(=0011 1111)からインクリメント(+1)し、64(=0100 0000)になったとしても、加算後の値に対して「0011 1111」でマスクすることにより(AND A+、0011 1111B)、カウント値が0(=0000 0000)となる。それゆえ、上記説明したプログラムのように63から64へ値が変化するときだけに限らず、常に「0011 1111」でマスクすることにより、従来のように、プログラムで比較命令を用いた分岐処理を設けることなく、所定範囲を循環するカウンタを更新することができる。これにより、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができることとなる。
なお、本実施形態においては、総数が64、すなわち、総数が2のべき乗で構成されるカウント値を例に説明したが、それに限らず、上記プログラムは、どのようなカウント値にも適用可能である。しかしながら、総数が2のべき乗で構成されるカウント値を更新するカウンタプログラムに用いた方が好ましい。マスク処理がしやすいためである。
ところで、上記説明したカウンタプログラムは、汎用モジュールとして使用することもできる。この点、図15(c)〜(d)を参照して具体的に説明する。
図15(c)に示すように、ラベルM_INCEXのカウンタプログラムでは、まず、指定された上限値をもとにカウンタを更新、すなわち、HLレジスタの値をAレジスタにセットする(LD A、(HL))。
次いで、Aレジスタの値をインクリメント(+1)すると共に、Bレジスタの値でマスクする(AND A+、B)。
次いで、更新したカウント値をHLレジスタに格納する(LD (HL)、A)。
かくして、上記のように汎用モジュール化されたラベルM_INCEXのカウンタプログラムは、図15(d)に示すように、W_COUNTERのワークの値をHLレジスタにセットし(LD HL、W_COUNTER)、「0011 1111」の値をBレジスタにセットした上で、ラベルM_INCEXのカウンタプログラムを読み出す(CALL M_INCEX)ことで使用することができる。
しかして、このように、上記説明したカウンタプログラムを汎用モジュールとして使用することにより、複数のカウント値を更新する際に使用することが可能となる。
<コール命令の説明>
次に、図9(b)に示す、主制御ROM600bのベクタテーブル領域600biに格納されているCALL_S命令で呼び出すことができるサブルーチンのテーブルアドレスに関するコール命令について、図16を参照して説明することとする。
本実施形態においては、主制御CPU600aが実行可能なコール命令として、CALL_S命令、CALL_M命令、CALL_L命令、CALL命令の複数のコール命令を備えている。このCALL_S命令は、複数のコール命令の中で最小のプログラムコードのデータ量(例えば、1バイト)である。そして、このCALL_S命令で呼び出すサブルーチンは、図9(b)に示す、主制御ROM600bのベクタテーブル領域600biに格納されているアドレスデータテーブルの格納番号を使って呼び出されるようになっている。このアドレスデータテーブルとしては、図16(a)に示すように、データセット処理(DW M_DTSET)、コマンド送信処理(DW M_CMDOUT)等のCALL_S命令で呼び出すサブルーチンの先頭アドレスデータ、が2バイトで格納されている。なお、この格納された順番がそのままCALL_S命令で呼び出される際の格納番号となる。これにより、プログラムでは格納番号を意識することなく、このアドレスデータテーブルで宣言したサブルーチンの名前を使用すれば良いこととなる。
しかして、このようなアドレスデータテーブルに格納されている処理を呼び出すために、図16(b)に示すように、CALL_S命令が使用されることとなる。より具体的に説明すると、図16(b)に示すプログラムは、後述する初期化処理の一部を示すもので、主制御CPU600aの内部に設けられている一定周期のパルス出力を作成する機能や時間計測の機能等を有するCTC(Counter Timer Circuit)の設定テーブル(D_CTCSET)をHLレジスタにセットし(LD HL、D_CTCSET)、データセット処理(M_DTSET)をCALL_S命令でコールするようにしているものである(CALL_S M_DTSET)。
ところで、このCTCの設定テーブルは、図16(c)に示すような内容が格納されている。すなわち、前半部分(LOW W_CTC1〜3)がセットされる図9(a)に示す主制御RAM600cの通常用RAM領域600caを示し、後半部分(001H、010H、080H)が通常用RAM領域600caにセットされるデータを示し、そして、最後に、データセット終了を示す終了コードが格納されている(DB 0FFH)。
一方、データセット処理は、図16(d)に示すような処理が行われる。具体的には、まず、HLレジスタの中をAレジスタに移行した後、HLレジスタをインクリメント(+1)する(LD A、(HL+))。
次いで、データセットの終了か否かをチェックするために、Aレジスタと0FFHを比較する(CP 0FFH)。
次いで、Dレジスタに通常用RAM領域600caの上位アドレスをセットする(LD D、00H)。
次いで、EレジスタにCTCの設定テーブル(図16(c)に示すD_CTCSET)で読み込んだ通常用RAM領域600caの下位アドレスをセットする(LD E、A)。
次いで、CTCの設定テーブル(図16(c)に示すD_CTCSET)からセットするデータの値をAレジスタに読み込む(LD A、(HL+))。
次いで、DEレジスタにセットされたワークアドレスにデータをセットし(LD (DE)、A)、データセット処理の最初の処理に戻る(JR M_DTSET)。
かくして、このようにして、CALL_S命令で呼び出されたデータセット処理が実行されることとなる。
一方、図16(b)に示す後述する初期化処理の一部を示すプログラムは、データセット処理(M_DTSET)をCALL_S命令でコールした後、液晶表示装置41(図5参照)に待機画面を表示させる待機画面表示コマンド(0BA01H)をDEレジスタにセットする(LD DE、0BA01H)。
次いで、コマンド送信処理(M_CMDOUT)をCALL_S命令でコールする(CALL_S M_CMDOUT)。このコマンド送信処理は、図16(e)に示すような処理が行われる。
具体的には、
LD A、D
OUT (CMDPORT)、A
とプログラムし、コマンドの上位バイトデータをコマンドポートから出力する。
次いで、
LD B、1000
WAIT:
DJNZ WAIT
とプログラムし、サブ制御CPU800aがコマンドデータを受信するまでしばらく待機する。
次いで、
LD A、E
OUT (CMDPORT)、A
とプログラムし、コマンドの下位バイトデータをコマンドポートから出力する。
かくして、このようにして、CALL_S命令で呼び出されたコマンド送信処理が実行されることとなる。
しかして、このようにして、初期化処理にてCALL_S命令が使用されることとなる。
ただし、上記プログラムはあくまで一例であるため、CALL_S命令は初期化処理に限らず、後述するタイマ割込みでも使用される。すなわち、コマンド送信処理は、初期化処理に限らず、タイマ割込み処理で実行される始動保留球の増加時、特別図柄の変動開始時、大当たり開始時、エラー発生時など様々な状況でコマンド送信が実行される。そのため、CALL_S命令はタイマ割込みでも使用される。
しかして、上記プログラムにて説明したように、汎用性が高い処理を、CALL_S命令に対応するサブルーチンとすることで、プログラムのデータ量の増加を抑制することができる。それゆえ、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができる。
また、コマンド送信処理は、タイマ割込み処理で実行される始動保留球の増加時、特別図柄の変動開始時、大当たり開始時、エラー発生時など様々な状況でコマンド送信が実行されることとなるため、CALL_S命令が使用される割合は、タイマ割込み処理で使用される割合の方が、初期化処理からタイマ割込み処理を呼び出すメインループ処理までに使用される割合より高くなる。それゆえ、よりプログラムの処理負荷軽減と、プログラム容量の削減を図ることができる。
ところで、複数のコール命令のうちCALL_M命令は、予め決められたアドレス番地の範囲内にあるサブルーチンをコールする際に使用される。具体的には、後述するタイマ割込み処理で実行される特別図柄処理、普通図柄処理、タイマ管理処理等の各サブルーチンをコールする際に使用される。汎用性が高いサブルーチンを呼び出す際は、CALL_S命令が用いられるため、1回しか呼び出されないタイマ割込み処理内で実行される各サブルーチンなどは、CALL_M命令が使用される。なお、CALL_M命令は、呼び出すサブルーチンのアドレス番地によってプログラムコードのデータ量が異なるようになっている(例えば、2バイト〜3バイト)。
一方、複数のコール命令のうちCALL_L命令は、サブルーチンをコールする際、プログラムカウンタ(実行しているプログラムのアドレス)を、図9(a)に示す主制御RAM600cの通常用スタック領域600cc、計測用スタック領域600cgに退避させるだけでなく、フラグレジスタの値も図9(a)に示す主制御RAM600cの通常用スタック領域600cc、計測用スタック領域600cgに退避させる。それゆえ、CALL_L命令は、サブルーチンを呼び出す前にフラグを保持した上で、サブルーチン内でフラグの値が変化する場合に使用される。なお、このCALL_L命令は、例えば、2バイトで構成されるものである。
また一方、複数のコール命令のうちCALL命令は、呼び出すサブルーチンのアドレス番地に制限がないものであるため、主に、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されている賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムを呼び出す際に使用される。すなわち、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムのアドレス番地を呼び出す場合には、他のコール命令では読み出すことができないアドレス番地にサブルーチンを配置している可能性があるため、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムを呼び出す際にCALL命令が使用される。なお、上述したCALL_M命令では、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムを呼び出すことができない。上述したCALL_M命令は、HLレジスタ等の2バイトのレジスタにサブルーチンのアドレス番地をセットして呼び出すことができないため、直接アドレス番地を指定して呼び出すこととなるが、そのアドレス番地の値に制限がある。それゆえ、CALL命令は、呼び出すサブルーチンのアドレス番地に制限がないため、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムを呼び出すことができる。なお、このCALL命令は、例えば、4バイトで構成されるものである。
ここで、上述したCALL_M命令とCALL命令の使用例について、図16(f)に示すプログラムを例にして説明する。図16(f)に示すプログラムは、後述するメインループ処理を示すもので、割込み禁止処理(DI)をした後、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されている賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムである後述する賞球入賞数管理処理1(M_SHOUKYU1)をCALL命令でコールし(CALL M_SHOUKYU1)、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されている抽選処理等の遊技処理時に使用されるプログラムである後述する各種乱数更新処理(M_RANSU)をCALL_M命令でコールし(CALL M_SHOUKYU1)、割込み許可(EI)をするという処理を繰り返し行うものである。
かくして、このようにして、CALL_M命令とCALL命令が使用されることとなる。
しかして、上述したように、複数のコール命令のうちCALL_M命令で呼び出されるサブルーチンと、CALL_S命令で呼び出されるサブルーチンは、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されており、CALL命令で呼び出されるサブルーチンは、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されている。しかるに、このように、複数のコール命令を状況に応じて使い分けることにより、プログラムの処理負荷軽減と、プログラム容量の削減を図ることができる。
<客待ちデモコマンドの欠落に関する説明>
次に、主制御基板60(主制御CPU600a)(図7参照)より送信される客待ちデモコマンドである演出制御コマンドDI_CMDをサブ制御CPU800aにて受信できなかった場合について、図17を参照して説明することとする。
図17(a)に示すタイミングT1時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、始動保留球数が1個から0個に減算される始動保留減算コマンド(例えば、B001H)、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、受信した演出制御コマンドDI_CMDに対応した演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。
そして、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、音に関する制御信号を音LSI801に送信する。これを受けて音LSI801は、当該制御信号に対応する音データを遊技ROM805又は音RAM802より読み出し、スピーカ17に出力する。これにより、スピーカ17より上記決定された演出パターンに対応したBGMが発せられることとなる。この際、音LSI801にて、当該BGMが既に再生されていた場合は、そのまま再生し、当該BGMが再生されていなければ、再生されることとなる。
また、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板90に送信する。これにより、装飾ランプ基板90が、ランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯する制御を行うため、変動用ランプ演出が実行されることとなる。
さらに、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、画像(映像)に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、変動用映像が液晶表示装置41に表示されることとなる。
次いで、図17(a)に示すタイミングT2時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)を停止させる図柄停止コマンド(例えば、BF01H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、図17(a)に示すタイミングT1時に決定された演出パターンを停止させるための演出パターンを実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。これにより、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンを実行指示する制御信号のうち、画像(映像)に関するコマンドリストをVDP803に送信する。これを受けて、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、装飾図柄(特別図柄)の変動が停止した映像が液晶表示装置41に表示されることとなる。なお、音LSI801にて、再生されているBGMは、そのまま継続して再生され、サブ制御CPU800aにて実行されている変動用ランプ演出は、そのまま継続して実行されることとなる。
次いで、始動保留球数が0個の状態で、装飾図柄(特別図柄)の変動が待機状態となった場合には、図17(a)に示すタイミングT3時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、客待ちデモコマンドが(例えば、B401H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、受信した演出制御コマンドDI_CMD(客待ちデモコマンド)に対応した演出パターンを実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。
そして、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンを実行指示する制御信号のうち、音に関する制御信号を音LSI801に送信する。これを受けて音LSI801は、再生されているBGMの音量をフェードアウトさせ、ミュート状態にする。これにより、スピーカ17よりBGMが発せられなくなる。なお、ミュート状態とは、音量が「0」、又は、遊技者が認識困難な音量をいうものである。
また、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンを実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板90に送信する。これにより、装飾ランプ基板90が、ランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯する制御を行うため、客待ちデモ用ランプ演出が実行されることとなる。
さらに、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンを実行指示する制御信号のうち、画像(映像)に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、客待ちデモムービーが液晶表示装置41に表示されることとなる。
かくして、このように、客待ちデモコマンドを契機として、遊技状態が客待ちデモ状態に移行することとなる。
なお、1)再生されているBGMの音量をフェードアウトさせ、ミュート状態にすること、2)客待ちデモ用ランプ演出を実行すること、3)客待ちデモムービーの表示をすること、の3つのうち少なくとも1つは、客待ちデモコマンドを受信してから所定時間経過後(例えば60秒後)に行われるようにしても良い。このようにすれば、遊技者が遊技している状態で、特別図柄1始動口44(図5参照)又は特別図柄2始動口45(図5参照)へ遊技球が入賞(特別図柄1始動口スイッチ44a(図7参照)又は特別図柄2始動口スイッチ45a(図7参照)にて検出)せず、変動停止状態が長く続いた場合に、上記1)〜3)のうち、少なくとも1つが行われると、遊技釘(図示せず)の調整が悪いのではないかという印象を遊技者に与えてしまい、もって、遊技場(ホール)側にとって不利な印象を遊技者にあたえてしまこととなる。しかして、上記のように、変動停止からの時間をある程度保つことにより、遊技者に悪い印象を与えないようにすることができる。
ところで、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、客待ちデモコマンドが送信されたにも係らず、ノイズ等の影響により、サブ制御CPU800aにて客待ちデモコマンドが受信できない、すなわち、欠落した場合、遊技状態が客待ちデモ状態に移行できなくなる。それゆえ、従来においては、遊技状態が客待ちデモ状態に移行できないことを報知するため、液晶表示装置41に「コマンド受信エラー」のようなエラー表示をしていた。
しかしながら、客待ちデモコマンドが受信できなかったとしても、その後のコマンドを受信できれば遊技機としては動作可能なため、「コマンド受信エラー」のようなエラー表示をしてしまうと、遊技者にとって遊技の阻害になってしまい、もって、遊技者にとって不自然さが残ってしまうという問題があった。
そこで、本実施形態においては、図17(b)に示すタイミングT3時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、客待ちデモコマンドが送信されたにも係らず、ノイズ等の影響により、サブ制御CPU800aにて客待ちデモコマンドが受信できない、すなわち、欠落した場合、液晶表示装置41に「コマンド受信エラー」のような表示をしないようにしている。これにより、遊技者が不自然に感じることがないようにすることができる。
しかしながら、それだけでは、エラーが発生したことを遊技場の従業員等に知らせることができない。そこで、本実施形態においては、液晶表示装置41に「コマンド受信エラー」のような表示をしない代わりに以下のような処理をしている。
すなわち、音LSI801は、客待ちデモコマンドが受信できなかったことを想定して、最初から最後まで再生させたBGMをそのまま終了させるのではなく、BGMをループ再生するようにしている。具体的に説明すると、図17(b)に示すタイミングT1時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、始動保留球数が1個から0個に減算される始動保留減算コマンド(例えば、B001H)、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、受信した演出制御コマンドDI_CMDに対応した演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。この際、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、音に関する制御信号を音LSI801に送信する。これを受けて音LSI801は、装飾図柄(特別図柄)の変動時間(例えば、120秒等)に係らず、BGMをループ再生することとなる。
そしてさらに、図17(b)に示すタイミングT2時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)を停止させる図柄停止コマンド(例えば、BF01H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、図17(b)に示すタイミングT1時に決定された演出パターンを停止させるための演出パターンを実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。この際、音LSI801は、ループ再生されているBGMを停止させず、そのままループ再生することとなる。
かくして、このようにすれば、図17(b)に示すタイミングT3時、客待ちデモコマンドが受信できなかった(欠落した)としても、BGMがループ再生され続けることとなる。それゆえ、BGMがループ再生され続けることにより、液晶表示装置41に「コマンド受信エラー」のような表示をせずとも、エラーの仕様を理解している遊技場の従業員等に、コマンド受信エラーが発生したことを知らせることが可能となる。
ところで、客待ちデモコマンドが受信できず、BGMがループ再生され続けている状態で、特別図柄1始動口44(図5参照)又は特別図柄2始動口45(図5参照)へ遊技球が入賞(特別図柄1始動口スイッチ44a(図7参照)又は特別図柄2始動口スイッチ45a(図7参照)にて検出)すると、図17(b)に示すタイミングT4時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、受信した演出制御コマンドDI_CMDに対応した演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。この際、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、音に関する制御信号を音LSI801に送信する。これを受けて音LSI801は、新たなBGMを再生するのではなく、ループ再生しているBGMをそのまま再生するようにする。これにより、エラー状態から通常遊技状態に移行した際、遊技者は、違和感なく遊技をすることができる。
一方、図17(b)に示すタイミングT1時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして送信された、始動保留球数が1個から0個に減算される始動保留減算コマンド(例えば、B001H)、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)を、サブ制御CPU800aが受信した際、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板90に送信する。これにより、装飾ランプ基板90が、ランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯する制御を行うため、装飾図柄(特別図柄)の変動時間(例えば、120秒等)に係らず、変動用ランプ演出がループして実行されることとなる。
そしてさらに、図17(b)に示すタイミングT2時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして送信された、装飾図柄(特別図柄)を停止させる図柄停止コマンド(例えば、BF01H)を、サブ制御CPU800aが受信した際、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板90に送信する。これにより、装飾ランプ基板90は、ループして実行されている変動用ランプ演出を停止させず、そのままループして実行することとなる。
かくして、このようにすれば、図17(b)に示すタイミングT3時、客待ちデモコマンドが受信できなかった(欠落した)としても、変動用ランプ演出がループして実行され続けることとなる。それゆえ、変動用ランプ演出がループして実行され続けることにより、液晶表示装置41に「コマンド受信エラー」のような表示をせずとも、エラーの仕様を理解している遊技場の従業員等に、コマンド受信エラーが発生したことを知らせることが可能となる。またさらに、BGMも共にループ再生し続けることにより、遊技場の従業員等が、BGMがループ状態になっていることに気付かなくとも、客待ちデモ用ランプ演出になっておらず、変動用ランプ演出がループして実行されていることを遊技場の従業員等が把握することで、エラー状態の遊技機をいち早く発見することができる。
ところで、ランプ演出としては、上記のような変動用ランプ演出をループして実行するものに代え、図17(c)に示すように、図柄停止用ランプ演出を実行しても良い。すなわち、図17(c)に示すタイミングT2時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして送信された、装飾図柄(特別図柄)を停止させる図柄停止コマンド(例えば、BF01H)を、サブ制御CPU800aが受信した際、図17(c)に示すタイミングT1時に決定された演出パターンを停止させるための演出パターンを実行指示する制御信号をサブ制御RAM800c内に一時的に格納し、サブ制御RAM800c内に格納しておいた演出パターンを実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板90に送信する。これにより、装飾ランプ基板90は、図柄停止用ランプ演出を実行することとなる。この図柄停止用ランプ演出は、ランプ演出効果を現出するLEDランプ等の装飾ランプの輝度を下げてループさせたパターンを継続するもの、又は、装飾ランプの点灯又は消灯を繰り返すパターンを継続させるものである。
しかして、このようにしても、図17(c)に示すタイミングT3時、客待ちデモコマンドが受信できなかった(欠落した)としても、図柄停止用ランプ演出が実行され続けることとなる。それゆえ、図柄停止用ランプ演出が実行され続けることにより、液晶表示装置41に「コマンド受信エラー」のような表示をせずとも、エラーの仕様を理解している遊技場の従業員等に、コマンド受信エラーが発生したことを知らせることが可能となる。またさらに、BGMも共にループ再生し続けることにより、遊技場の従業員等が、BGMがループ状態になっていることに気付かなくとも、客待ちデモ用ランプ演出になっておらず、図柄停止用ランプ演出が実行されていることを遊技場の従業員等が把握することで、エラー状態の遊技機をいち早く発見することができる。
ところで、客待ちデモコマンドが受信できず、変動用ランプ演出がループして実行され続けている状態で、特別図柄1始動口44(図5参照)又は特別図柄2始動口45(図5参照)へ遊技球が入賞(特別図柄1始動口スイッチ44a(図7参照)又は特別図柄2始動口スイッチ45a(図7参照)にて検出)すると、図17(b)に示すタイミングT4時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、受信した演出制御コマンドDI_CMDに対応した演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。この際、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板90に送信する。これを受けて、装飾ランプ基板90は、ループして実行されている変動用ランプ演出を停止させず、そのままループして実行することとなる。これにより、エラー状態から通常遊技状態に移行した際、遊技者は、違和感なく遊技をすることができる。
一方、図17(b)に示すタイミングT1時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして送信された、始動保留球数が1個から0個に減算される始動保留減算コマンド(例えば、B001H)、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)を、サブ制御CPU800aが受信した際、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、画像(映像)に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、変動用映像が液晶表示装置41に表示されることとなる。
そしてさらに、図17(b)に示すタイミングT2時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)を停止させる図柄停止コマンド(例えば、BF01H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、図17(b)に示すタイミングT1時に決定された演出パターンを停止させるための演出パターンを実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。この際、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンを実行指示する制御信号のうち、画像(映像)に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、装飾図柄(特別図柄)の変動が停止した映像が液晶表示装置41に表示されることとなる。なお、この装飾図柄(特別図柄)の変動が停止した映像は、液晶表示装置41に継続して表示されることとなる。
かくして、このようにすれば、図17(b)に示すタイミングT3時、客待ちデモコマンドが受信できなかった(欠落した)としても、装飾図柄(特別図柄)の変動が停止した映像が液晶表示装置41に継続して表示され続けることとなる。それゆえ、装飾図柄(特別図柄)の変動が停止した映像が表示され続けることにより、液晶表示装置41に「コマンド受信エラー」のような表示をせずとも、エラーの仕様を理解している遊技場の従業員等に、コマンド受信エラーが発生したことを知らせることが可能となる。またさらに、BGM及び/又はランプ演出も共にループ再生し続けることにより、遊技場の従業員等が、BGM及び/又はランプ演出がループ状態になっていることに気付かなくとも、客待ちデモムービーが表示されておらず、装飾図柄(特別図柄)の変動が停止した映像が表示され続けていることを遊技場の従業員等が把握することで、エラー状態の遊技機をいち早く発見することができる。
ところで、客待ちデモコマンドが受信できず、装飾図柄(特別図柄)の変動が停止した映像が表示され続けている状態で、特別図柄1始動口44(図5参照)又は特別図柄2始動口45(図5参照)へ遊技球が入賞(特別図柄1始動口スイッチ44a(図7参照)又は特別図柄2始動口スイッチ45a(図7参照)にて検出)すると、図17(b)に示すタイミングT4時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、受信した演出制御コマンドDI_CMDに対応した演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。この際、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、画像(映像)に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、装飾図柄(特別図柄)の変動が停止した映像から装飾図柄(特別図柄)の変動が開始される変動用映像が液晶表示装置41に表示されることとなる。これにより、エラー状態から通常遊技状態に移行した際、遊技者は、違和感なく遊技をすることができる。
<図柄停止コマンドの欠落に関する説明>
次に、上記のような客待ちデモコマンドを備えておらず、図柄停止コマンドを契機として、遊技状態が客待ちデモ状態へ移行するような場合に、主制御基板60(主制御CPU600a)(図7参照)より送信される図柄停止コマンドである演出制御コマンドDI_CMDがサブ制御CPU800aにて受信できなかった場合について、図18を参照して説明することとする。
図18(a)に示すタイミングT10時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、始動保留球数が1個から0個に減算される始動保留減算コマンド(例えば、B001H)、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、受信した演出制御コマンドDI_CMDに対応した演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。
そして、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、音に関する制御信号を音LSI801に送信する。これを受けて音LSI801は、当該制御信号に対応する音データを遊技ROM805又は音RAM802より読み出し、スピーカ17に出力する。これにより、スピーカ17より上記決定された演出パターンに対応したBGMが発せられることとなる。この際、音LSI801にて、当該BGMが既に再生されていた場合は、そのまま再生し、当該BGMが再生されていなければ、再生されることとなる。
また、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板90に送信する。これにより、装飾ランプ基板90が、ランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯する制御を行うため、変動用ランプ演出が実行されることとなる。
さらに、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、画像(映像)に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、変動用映像が液晶表示装置41に表示されることとなる。
次いで、図18(a)に示すタイミングT11時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)を停止させる図柄停止コマンド(例えば、BF01H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、図18(a)に示すタイミングT10時に決定された演出パターンを停止させるための演出パターンを実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。これにより、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンを実行指示する制御信号のうち、画像(映像)に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、装飾図柄(特別図柄)の変動が停止した映像が液晶表示装置41に表示されることとなる。また、サブ制御CPU800aは、装飾図柄(特別図柄)を停止させる図柄停止コマンド(例えば、BF01H)を受信したことにより、所定時間(例えば、30秒)をカウントするタイマを起動させる。なお、音LSI801にて、再生されているBGMは、そのまま継続して再生され、サブ制御CPU800aにて実行されている変動用ランプ演出は、そのまま継続して実行されることとなる。
次いで、起動したタイマが所定時間(例えば、30秒)をカウントすると(図18(a)に示すタイミングT12参照)、遊技状態を客待ちデモ状態に移行させるための演出パターンを実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。
そして、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンを実行指示する制御信号のうち、音に関する制御信号を音LSI801に送信する。これを受けて音LSI801は、再生されているBGMの音量をフェードアウトさせ、ミュート状態にする。これにより、スピーカ17よりBGMが発せられなくなる。なお、ミュート状態とは、音量が「0」、又は、遊技者が認識困難な音量をいうものである。
また、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンを実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板90に送信する。これにより、装飾ランプ基板90が、ランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯する制御を行うため、客待ちデモ用ランプ演出が実行されることとなる。
さらに、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンを実行指示する制御信号のうち、画像(映像)に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、客待ちデモムービーが液晶表示装置41に表示されることとなる。
かくして、このように、図柄停止コマンドを契機として、タイマが起動し、所定時間カウントすると、遊技状態が客待ちデモ状態に移行することとなる。なお、このタイマが起動した後、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)が、サブ制御CPU800aに送信されてくると、このタイマは、初期化されることとなる。
しかしながら、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、図柄停止コマンドが送信されたにも係らず、ノイズ等の影響により、サブ制御CPU800aにて図柄停止コマンドが受信できない、すなわち、欠落した場合、所定時間(例えば、30秒)をカウントするカウンタが起動されることがないため、遊技状態が客待ちデモ状態に移行できなくなる。それゆえ、従来においては、遊技状態が客待ちデモ状態に移行できないことを報知するため、液晶表示装置41に「コマンド受信エラー」のようなエラー表示をしていた。
しかしながら、図柄停止コマンドが受信できなかったとしても、その後のコマンドを受信できれば遊技機としては動作可能なため、「コマンド受信エラー」のようなエラー表示をしてしまうと、遊技者にとって遊技の阻害になってしまい、もって、遊技者にとって不自然さが残ってしまうという問題があった。
そこで、本実施形態においては、図18(b)に示すタイミングT11時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、図柄停止コマンドが送信されたにも係らず、ノイズ等の影響により、サブ制御CPU800aにて図柄停止コマンドが受信できない、すなわち、欠落した場合、液晶表示装置41に「コマンド受信エラー」のような表示をしないようにしている。これにより、遊技者が不自然に感じることがないようにすることができる。
しかしながら、それだけでは、エラーが発生したことを遊技場の従業員等に知らせることができない。そこで、本実施形態においては、液晶表示装置41に「コマンド受信エラー」のような表示をしない代わりに以下のような処理をしている。なお、BGM及びランプ演出のループ再生は、図18(b),(c)に示すように、上述した客待ちデモコマンドが受信できなかった(欠落した)場合の処理と同様であるため、説明は省略することとする。
図18(b)に示すタイミングT10時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして送信された、始動保留球数が1個から0個に減算される始動保留減算コマンド(例えば、B001H)、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)を、サブ制御CPU800aが受信した際、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、画像(映像)に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、変動用映像が液晶表示装置41に表示されることとなる。
この変動用映像は、装飾図柄(特別図柄)の変動が表示されているが、装飾図柄(特別図柄)の変動時間(例えば、120秒等)が決まっているため、決められた変動時間(例えば、120秒等)に達すると、装飾図柄(特別図柄)の変動は揺れ変動を行うこととなる。
この装飾図柄(特別図柄)の揺れ変動は、図柄停止コマンド(例えば、BF01H)をサブ制御CPU800aが受信することにより、停止することとなる。しかしながら、図柄停止コマンド(例えば、BF01H)がサブ制御CPU800aにて受信できなかったことを想定して、この装飾図柄(特別図柄)の揺れ変動は、液晶表示装置41にループ状態で表示されることとなる。
かくして、このようにすれば、図18(b)に示すタイミングT11時、図柄停止コマンドが受信できなかった(欠落した)としても、装飾図柄(特別図柄)が揺れ変動している映像が液晶表示装置41にループ状態で表示されることとなる。それゆえ、装飾図柄(特別図柄)が揺れ変動している映像がループ状態で表示され続けることにより、液晶表示装置41に「コマンド受信エラー」のような表示をせずとも、エラーの仕様を理解している遊技場の従業員等に、コマンド受信エラーが発生したことを知らせることが可能となる。またさらに、BGM及び/又はランプ演出も共にループ再生し続けることにより、遊技場の従業員等が、BGM及び/又はランプ演出がループ状態になっていることに気付かなくとも、客待ちデモムービーが表示されておらず、装飾図柄(特別図柄)が揺れ変動している映像がループ状態で表示され続けていることを遊技場の従業員等が把握することで、エラー状態の遊技機をいち早く発見することができる。
ところで、図柄停止デモコマンドが受信できず、装飾図柄(特別図柄)が揺れ変動している映像がループ状態で表示され続けている状態で、特別図柄1始動口44(図5参照)又は特別図柄2始動口45(図5参照)へ遊技球が入賞(特別図柄1始動口スイッチ44a(図7参照)又は特別図柄2始動口スイッチ45a(図7参照)にて検出)すると、図18(b)に示すタイミングT13時、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、受信した演出制御コマンドDI_CMDに対応した演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。この際、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、画像(映像)に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、変動用映像が液晶表示装置41に表示されることとなる。しかして、装飾図柄(特別図柄)が揺れ変動している映像がループ状態で表示され続けている状態ではあるが、遊技球の入賞を契機として、液晶表示装置41に変動用映像が表示されることによって、エラー状態から通常遊技状態に移行した際、遊技者は、違和感なく遊技をすることができる。
なお、装飾図柄(特別図柄)が揺れ変動している映像をループ状態で液晶表示装置41に表示させることに代え、決められた変動時間(例えば、120秒等)に達すると、装飾図柄(特別図柄)の変動を停止させ、識別ランプ装置50A(図5参照)を点滅表示させておいても良い。このようにしても、液晶表示装置41に「コマンド受信エラー」のような表示をせずとも、エラーの仕様を理解している遊技場の従業員等に、コマンド受信エラーが発生したことを知らせることが可能となる。なお、この場合、液晶表示装置41には、停止した装飾図柄(特別図柄)の映像が表示し続けられることとなる。
ところで、本実施形態においては、客待ちデモコマンド又は図柄停止コマンドが受信できない(欠落される)ことによって、BGMがループ再生し続ける場合を例示したが、この際、遊技場の従業員等が、BGMがループ状態になっていることを発見するのが遅れると、BGMが長時間ループ再生され続けることとなる。この場合、エラー状態となっている遊技機の隣にいる遊技者にとっては、この状態を不快に感じるおそれがある。そのため、装飾図柄(特別図柄)の変動パターンのシナリオとして、変動時間が終了した所定時間経過後に、BGMを停止させるような処理をいれておいてもよい。また、客待ちデモコマンドが図柄停止コマンドの後に送信される場合は、図柄停止コマンドに対応した演出パターンを実行した所定時間経過後に、BGMを停止させるような処理をいれておいてもよい。なお、所定時間に関しては、変動時間が終了し、図柄停止状態から客待ちデモ状態に移行するまでの時間より長い時間(例えば、180秒)、または、客待ちデモコマンドの受信から一定時間経過後(例えば、60秒後)に、再生されているBGMの音量をフェードアウトさせ、ミュート状態にする場合においては、ミュート状態にするまでより長い時間(例えば300秒)など、遊技場の従業員等が発見するのに十分な時間で、且つ、エラー状態となった遊技機の隣にいる遊技者が不快に感じない程度の時間にするのが最適である。さらに、この装飾図柄(特別図柄)の変動パターンのシナリオとして、BGMを停止させる処理を行った場合は、液晶表示装置41に「消音中」との表示をさせても良い。これにより、遊技者には、単に、消音状態であることを報知しているように見せることができると共に、遊技場の従業員等には、エラーによる消音状態であることを発見させることができる。
<始動保留減算コマンドの欠落に関する説明>
次に、主制御基板60(主制御CPU600a)(図7参照)より送信される始動保留減算コマンドである演出制御コマンドDI_CMDがサブ制御CPU800aにて受信できなかった場合について、図19を参照して説明することとする。
図19(a−1)に示すように、液晶表示装置41に、特別図柄1始動口44(図5参照)又は特別図柄2始動口45(図5参照)へ入賞(特別図柄1始動口スイッチ44a(図7参照)又は特別図柄2始動口スイッチ45a(図7参照)にて検出)した遊技球が始動保留球として3個保留されている状態が表示(画像P1参照)され、左、中、右の順に表示される装飾図柄(特別図柄)が、高速変動している状態が表示(画像P2参照)されている。そして、図17(a−1)の画像P2に示す、高速変動している装飾図柄(特別図柄)の変動が、図17(a−2)に示すように、停止(図示では、組合せ図柄が「123」のハズレの状態で停止)(画像P3参照)する。そしてその後、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、始動保留球数が3個から2個に減算される始動保留減算コマンド(例えば、B003H)、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、受信した演出制御コマンドDI_CMDに対応した演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。
そして、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、画像(映像)に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、液晶表示装置41には、図19(a−3)に示すように、高速変動している装飾図柄(特別図柄)が表示(画像P4参照)されると共に、始動保留球数が3個から1個消去されて2個になるという始動保留球数が減算されるアニメーションが表示(画像P5参照)され、図19(a−4)に示すように、始動保留球数として2個保留されている状態が表示(画像P6参照)されることとなる。
しかしながら、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、始動保留球数が3個から2個に減算される始動保留減算コマンド(例えば、B003H)が送信されたにも係らず、ノイズ等の影響により、サブ制御CPU800aにて始動保留減算コマンドが受信できない、すなわち、欠落した場合、サブ制御CPU800aは、始動保留球数が3個から2個に減算されたことが不明のため、図19(a−5)に示すように、高速変動している装飾図柄(特別図柄)が表示(画像P4参照)され、始動保留球として3個保留されている状態がそのまま表示(画像P1参照)されることとなる。すなわち、実際に保留されている始動保留球数と、表示されている始動保留球数とが不一致の状態となる。
そして、図19(b−1)に示すように、始動保留球数として3個保留されている状態がそのまま表示(画像P1参照)され続け、高速変動している装飾図柄(特別図柄)の変動が、図19(b−2)に示すように、停止(図示では、組合せ図柄が「123」のハズレの状態で停止)(画像P7参照)する。そしてその後、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、始動保留球数が2個から1個に減算される始動保留減算コマンド(例えば、B002H)、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、受信した演出制御コマンドDI_CMDに対応した演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。
そして、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、画像(映像)に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、液晶表示装置41には、図19(b−3)に示すように、高速変動している装飾図柄(特別図柄)が表示(画像P8参照)され、さらに、始動保留球数が3個から、2個消去されて1個になるという始動保留球数が減算されるアニメーションが表示(画像P9参照)されることとなる。これにより、液晶表示装置41には、図19(b−4)に示すように、始動保留球として1個保留されている状態が表示(画像P10参照)されることとなる。これにより、実際に保留されている始動保留球数と、表示されている始動保留球数とが一致することとなる。
しかしながら、このように、始動保留球数が3個から、2個消去されて1個になるという始動保留球数が減算されるアニメーションを表示してしまうと、遊技者が非常に違和感を覚え、もって、不自然さを感じたまま遊技を継続することになるという問題があった。さらには、始動保留球数が3個から、2個消去されて1個になるという始動保留球数が減算されるアニメーションを別途用意しなければならないという問題があった。
そこで、本実施形態においては、そのような問題を解決すべく、以下のような処理を行っている。すなわち、図19(c−1)に示すように、始動保留球として3個保留されている状態がそのまま表示(画像P1参照)され続け、高速変動している装飾図柄(特別図柄)の変動が、図19(c−2)に示すように、停止(図示では、組合せ図柄が「123」のハズレの状態で停止)(画像P7参照)する。そしてその後、主制御基板60(主制御CPU600a)より演出制御コマンドDI_CMDとして、始動保留球数が2個から1個に減算される始動保留減算コマンド(例えば、B002H)、装飾図柄(特別図柄の)変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)が、サブ制御CPU800aに送信される。これを受けて、サブ制御CPU800aは、受信した演出制御コマンドDI_CMDに対応した演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号をサブ制御RAM800c内に一時的に格納する。
そして、サブ制御CPU800aは、サブ制御RAM800c内に格納しておいた演出パターンの音や光や画像(映像)など演出動作が格納されたシナリオに対応して実行指示する制御信号のうち、画像(映像)に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、液晶表示装置41には、図19(c−3)に示すように、高速変動している装飾図柄(特別図柄)が表示(画像P8参照)される。そしてさらに、液晶表示装置41には、始動保留球数として2個保留されている状態が瞬時に表示(画像P11参照)される。この際、始動保留球数が3個から1個消去されて2個になるという始動保留球数が減算されるアニメーションを液晶表示装置41に表示するのではなく、始動保留球として3個保留されている状態から2個保留されている状態へ瞬時に表示を切り替えることとなる。
そして、この状態から、始動保留球数が2個から1個消去されて1個になるという始動保留球数が減算されるアニメーションが開始され、図19(c−4)に示すように、液晶表示装置41には、始動保留球数が2個から1個消去されて1個になるという始動保留球数が減算されるアニメーションが表示(画像P12参照)され、もって、図19(c−5)に示すように、始動保留球数として1個保留されている状態が表示(画像P13参照)されることとなる。
しかして、このようにすれば、遊技者は、始動保留球数が3個保留されている状態から2個保留されている状態へ瞬時に表示が切り替わり、2個から1個に減算される見慣れたアニメーションが表示されることとなるため、遊技者に大きな違和感を与えることなく、正常な始動保留球の数が表示されている始動保留表示に戻すことができる。これにより、遊技者が不自然に感じることなく、遊技を継続することができる。また、始動保留球数が3個から、2個消去されて1個になるという始動保留球数が減算されるアニメーションを別途用意する必要もなくなる。
なお、本実施形態においては、始動保留球数が3個から2個、又は、2個から1個に減算される始動保留減算コマンドを送信する例を示したが、それに限らず、単に始動保留球数の個数を示す始動保留コマンドでも良い(例えば、B003Hは、始動保留球数が3個から2個に減少する場合と、始動保留球数が1個から2個増加する場合のどちらでも使用される始動保留コマンドとすれば良い)。すなわち、サブ制御CPU800aは、このような始動保留コマンドを受信すると、サブ制御RAM800c内に始動保留球数を記憶しておく。これにより、例えば、サブ制御RAM800c内に記憶されている始動保留球数が3個で、始動保留球数が2個という始動保留コマンドを受信すれば、サブ制御CPU800aは、始動保留球数が1個減算したことが分かることとなる。それゆえ、サブ制御RAM800c内に記憶されている始動保留球数が3個で、始動保留球数が2個という始動保留コマンドが受信できず、始動保留球数が1個という始動保留コマンドを受信したとしても、減算されたことは分かるため、液晶表示装置41には、図19(c−3)〜(c−5)に示すような表示がされることとなる。
一方、始動保留球数が3個から2個に減算される始動保留減算コマンド(例えば、B003H)が送信されたにも係らず、ノイズ等の影響により、演出制御CPU900にて始動保留減算コマンドが受信できない、すなわち、欠落した状態において、特別図柄1始動口44又は特別図柄2始動口45へ、遊技球が入球(入賞)する場合も考えられる。この際、始動保留球数が2個から3個に減算される始動保留増加コマンド(例えば、B103H)が送信されても、表示されている始動保留球数に変化はない。それゆえ、この際、始動保留球数が2個から3個に増加するアニメーションを行わなくてもよい。
しかしながら、特別図柄1始動口44又は特別図柄2始動口45へ、遊技球が入球(入賞)したにも関わらず始動保留球数が増加するアニメーションが実行されないと、遊技者は、不利益を被ったと感じてしまう可能性がある。そのため、このような事態を低減させるべく、始動保留球数が3個保留されている状態から2個保留されている状態へ瞬時に表示を切り替え、2個から3個に始動保留球数が増加される見慣れたアニメーションを表示させるようにしてもよい。
<遊技ROMの説明>
次に、遊技ROM805について、図20〜図23を参照して具体的に説明する。
図20(a)に示すように、遊技ROM805が、例えば、10Gbitのメモリ領域を備えていた場合、そのメモリ領域は、CGデータ記憶領域805aと、空き領域805bと、音データ記憶領域805cと、で構成されている。このCGデータ記憶領域805aには、静止画圧縮データと動画圧縮データのCGデータが先頭アドレス番地から配置され、記憶されている。そして、音データ記憶領域805cには、BGMや効果音等の音データが所定アドレス番地(図示では、6Gbitのアドレス番地)を開始アドレス番地としたアドレス番地から配置され、記憶されている。
しかして、このようにデータが配置されている遊技ROM805は、VDP803にて、CGデータ記憶領域805aにアクセスされることによって、CGデータ(静止画圧縮データ又は動画圧縮データ)が読み出され、音LSI801にて、音データ記憶領域805cにアクセスされることによって、BGMや効果音等の音データが読み出されることとなる。
ところで、音LSI801は、音データ記憶領域805cにアクセスするにあたって、アドレスポインタに所定アドレス番地(図示では、6Gbitのアドレス番地)をオフセット値として加算することによってアクセスすることとなる。具体的に説明すると、図20(a)に示す8Gbitのアドレス番地に格納されている音データ「A」を読み出すにあたって、音LSI801は、アドレスポインタに所定アドレス番地(図示では、6Gbitのアドレス番地)をオフセット値として加算し、8Gbitのアドレス番地に格納されている音データ「A」を読み出すこととなる。なお、所定アドレス番地(図示では、6Gbitのアドレス番地)は、サブ制御ROM800b内に格納されている演出制御手順を記述した制御プログラム又は制御プログラムが参照する制御データに記憶されている。
ところで、CGデータ記憶領域805aと音データ記憶領域805cとの間に空き領域805bを設けているのは以下の理由によるものである。
すなわち、従来においては、本実施形態に示すような遊技ROM805のように、静止画圧縮データと動画圧縮データのCGデータと、BGMや効果音等の音データと、が予め格納されている図21に示す遊技ROM8050が知られている。この遊技ROM8050は、図21(a)に示すように、例えば、10Gbitのメモリ領域を備えていた場合、そのメモリ領域は、CGデータ記憶領域8050aと、音データ記憶領域8050bと、空き領域8050cと、で構成されている。このCGデータ記憶領域8050aには、静止画圧縮データと動画圧縮データのCGデータが先頭アドレス番地から配置され、記憶されている。そして、音データ記憶領域8050bには、BGMや効果音等の音データが所定アドレス番地(図示では、4Gbitのアドレス番地)を開始アドレス番地としたアドレス番地から配置され、記憶されている。
ここで、開発途中で、図21(b)に示すように、CGデータ記憶領域8050aが4Gbitから3Gbitに変更になった場合、音データ記憶領域8050bは、開始アドレス番地が、4Gbitから3Gbitに変更されることとなる。してみると、図21(a)に示す6Gbitのアドレス番地に格納されている音データ「A」のアドレス番地が、図21(b)に示すように、5Gbitのアドレス番地に変更されることとなる。これにより、このアドレス番地に合うようにプログラムを修正する必要があり、もって、CGデータ記憶領域8050aの使用容量が変更される度に、都度、プログラムの修正をする必要があり、開発の効率が低下してしまうという問題があった。
そこで、本実施形態においては、CGデータ記憶領域8050aの使用容量が変更される場合を想定して、CGデータ記憶領域805aと音データ記憶領域805cとの間に空き領域805bを設けるようにしている。これにより、CGデータ記憶領域805aの使用容量が増減(図20(a)に示す矢印Y1参照)したとしても、音データ記憶領域805cのアドレス番地は変更されることがない。それゆえ、CGデータ記憶領域805aの使用容量が変更される度に、都度、プログラムの修正をする必要がなくなり、もって、開発の効率を向上させることができる。なお、このように、CGデータ記憶領域805aと音データ記憶領域805cとの間に空き領域805bを設けるようにした場合、上述したように、音LSI801は、音データ記憶領域805cにアクセスするにあたって、アドレスポインタに所定アドレス番地(図示では、6Gbitのアドレス番地)をオフセット値として加算することによってアクセスすることとなる。
一方、CGデータ記憶領域805aと音データ記憶領域805cとの間に空き領域805bを設けずとも、図20(b)に示すように、遊技ROM805の先頭アドレス番地からBGMや効果音等の音データが配置されるように音データ記憶領域805cを設け、所定アドレス番地(図示では、4Gbitのアドレス番地)を開始アドレス番地としたアドレス番地から静止画圧縮データと動画圧縮データのCGデータが配置されるようにCGデータ記憶領域805aを設けたうえで、空き領域805bを設けるようにしても良い。このように、使用容量が変更される可能性があるCGデータ記憶領域805aの前に音データ記憶領域805cを設けておけば、CGデータ記憶領域805aの使用容量が増減(図20(b)に示す矢印Y2参照)したとしても、音データ記憶領域805cのアドレス番地は変更されることがない。しかして、このようにしても、CGデータ記憶領域805aの使用容量が変更される度に、都度、プログラムの修正をする必要がなくなり、もって、開発の効率を向上させることができる。なお、使用容量が変更される可能性があるCGデータ記憶領域805aの前に音データ記憶領域805cを設けておくにあたっては、CGデータ記憶領域805aの開始アドレス番地が変動しないように、ダミーデータ(00H)などを用いて、音データ記憶領域805cの使用容量を固定(本実施形態においては、4Gbit)する必要がある。
ところで、静止画圧縮データと動画圧縮データのCGデータと、BGMや効果音等の音データとを遊技ROM805に格納していた場合、CGデータと音データに同時にアクセスすることができず、もって、処理が非効率となるという問題があった。
そこで、本実施形態においては、図22に示すように、遊技ROM805の音データ記憶領域805cに格納されている音データを、DMAコントローラ800a1(図7参照)を用いて、音RAM802の所定の記憶領域802aに転送するようにしている。このようにすれば、VDP803がCGデータを取得するために、遊技ROM805のCGデータ記憶領域805aにアクセスしている最中に、音LSI801は、音RAM802の所定の記憶領域802aに記憶されている転送された音データを読み出すことができる。これにより、処理の効率化を図ることができることとなる。さらに、遊技ROM805の音データ記憶領域805cに格納されている音データを、DMAコントローラ800a1(図7参照)を用いて、音RAM802の所定の記憶領域802aに転送しているから、開発途中でデータ変更が発生したとしても、データ変更に柔軟に対応することができることとなる。
ところで、DMAコントローラ800a1(図7参照)による転送は、電源投入時に実行される初期処理にて、サブ制御CPU800aよりDMAコントローラ800a1に指示され、それに基づいて、DMAコントローラ800a1は、1回の処理にて、遊技ROM805の音データ記憶領域805cに格納されている音データを全て、音RAM802の所定の記憶領域802aに転送することとなる。なお、サブ制御CPU800aは、DMAコントローラ800a1によるデータ転送最中に、初期処理を行うこととなる。すなわち、サブ制御CPU800aによる初期処理と、DMAコントローラ800a1によるデータ転送は並行して行われることとなる。これにより、処理の効率化をより図ることができることとなる。
一方、DMAコントローラ800a1(図7参照)は、遊技ROM805の音データ記憶領域805cに格納されている音データを全て、音RAM802の所定の記憶領域802aに転送した後、所定タイミングでリフレッシ処理を実行することとなる。このようにすれば、音RAM802の所定の記憶領域802aに記憶されている音データを正常に保つことができることとなる。
ところで、DMAコントローラ800a1(図7参照)による転送は、電源投入時に実行される初期処理にて、遊技ROM805の音データ記憶領域805cに格納されている音データを全て、音RAM802の所定の記憶領域802aに1回の処理にて転送することとなる。しかしながら、リフレッシュ処理を実行するにあたっては、転送する音データを複数に分割して、1回に転送されるデータを、初期処理で転送するデータよりも小さくして複数回に亘って転送することとなる。このようにすれば、例えば、1フレーム分の画像データが液晶表示装置41に表示されたことを示す、VSYNC(垂直同期信号)を受信した際に、次の1フレーム分の画像データが液晶表示装置41に描画される前に、音データを転送することができる。これにより、音LSI801が、音RAM802の所定の記憶領域802aにアクセスしていない間に、リフレッシュ処理を実行することができ、もって、音LSI801が、音RAM802の所定の記憶領域802aにアクセス中にリフレッシュ処理が実行されてしまうという事態を低減することができる。
ところで、音LSI801が、音データ記憶領域805cにアクセスするにあたって、誤って、CGデータ記憶領域805aにアクセスした場合、或いは、VDP803が、CGデータ記憶領域805aにアクセスするにあたって、誤って、音データ記憶領域805cにアクセスした場合、デコードエラーによって予め決められたエラー処理用のアドレス番地にサブ制御CPU800aがアクセスするようにすることができる。この際、サブ制御CPU800aにて、エラー処理を実行させるか、無限ループ処理を実行させ、図示しないウォッチドックタイマ(WDT)によってリセットするようにすれば良い。このようにすれば、想定外のデータにアクセスして、誤ったデータを読み込むことにより、画像や音の演出が異常状態になることを事前に防止することができる。
なお、本実施形態においては、遊技ROM805の音データ記憶領域805cに格納されている音データを、DMAコントローラ800a1を用いて、音RAM802の所定の記憶領域802aに転送する例を示したが、それに限らず、遊技ROM805のCGデータ記憶領域805aに格納されているCGデータを、DMAコントローラ800a1を用いて、DDR2SDRAM804の所定の記憶領域に転送するようにしても良い。
また、本実施形態においては、遊技ROM805に、静止画圧縮データと動画圧縮データのCGデータと、BGMや効果音等の音データと、が予め格納されている例を示したが、それに限らず、図7に示すサブ制御ROM800bに格納されている演出制御手順を記述した制御プログラムを、図23に示すように、制御プログラム格納領域805dに格納することもできる。すなわち、図23(a),(b)に示すように、上述したCGデータ記憶領域805aの使用容量変更に対応できるように、音データ記憶領域805cの後に制御プログラム格納領域805dを設け、制御プログラムを記憶させるようにすれば良い。この際、制御プログラム格納領域805dに格納されている制御プログラムを、電源投入時に実行される初期処理にて、DMAコントローラ800a1を用いて、サブ制御RAM800cに転送するようにしても良い。この場合、DMAコントローラ800a1にて、リフレッシュ処理を実行しないようにするのが好ましい。サブ制御CPU800aが、サブ制御RAM800cに頻繁にアクセスし、アクセスしていない期間がさほどないためである。
また、本実施形態においては、静止画圧縮データと動画圧縮データのCGデータと、BGMや効果音等の音データの何れか一方を先頭アドレス番地から配置したが、それに限らず、10番地等の特定アドレス番地から配置するようにしても良い。先頭アドレス番地にはROMのバージョン情報等、CGデータや音データと異なるデータを配置する可能性もあるためである。
<主制御:プログラムの説明>
ここで、上記説明した図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されている抽選処理等の遊技処理時に使用されるプログラム、主制御ROM600bの計測用プログラム領域600beに格納されている賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムの概要を図24〜図43を参照して説明する。
<主制御:メイン処理の説明>
まず、パチンコ遊技機1に電源が投入されると、電源基板130(図7参照)の電圧生成部1300にて生成された直流電圧が各制御基板に投入された旨の電源投入信号が送られ、その信号を受けて、主制御CPU600a(図7参照)は、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているプログラムを読み出し、図24に示す主制御メイン処理を行う。この際、主制御CPU600aは、まず、最初に自らを割込み禁止状態に設定する(ステップS1)。
次いで、主制御CPU600aは、主制御CPU600a内部のスタックポインタの値を、通常用スタック領域600cc(図9(a)参照)の最終アドレスに対応して設定するスタックポインタの設定処理を行う(ステップS2)。
次いで、主制御CPU600aは、主制御CPU600aに内蔵されている図示しないウォッチドックタイマ(WDT)をクリアし(ステップS3)、発射制御信号を出力する出力ポートをクリアする(ステップS4)。
続いて、主制御CPU600aは、サブ制御基板80の起動待ち時間をセットし(ステップS5)、セットした待ち時間をデクリメント(−1)し(ステップS6)、図示しないウォッチドックタイマ(WDT)をクリアする(ステップS7)。
次いで、主制御CPU600aは、セットした待ち時間が「0」になったか否かを確認し(ステップS8)、「0」になっていなければ(ステップS8:≠0)、ステップS7の処理に戻り、「0」になっていれば(ステップS8:=0)、ステップS9の処理に進む。
次いで、主制御CPU600aは、電源基板130(電圧監視部1310)(図7参照)より出力されている電圧異常信号ALARM(図7参照)を2回取得し、その2回取得した電圧異常信号ALARMのレベルが一致するか否かを確認した上で図示しない当該主制御CPU600aの内部レジスタ内に格納し、その電圧異常信号ALARMのレベルを確認する(ステップS9)。そして電圧異常信号ALARMのレベルが「L」レベルであれば(ステップS10:YES)、ステップS9の処理に戻り、電圧異常信号ALARMのレベルが「H」レベルであれば(ステップS10:NO)、ステップS11の処理に進む。すなわち、主制御CPU600aは、電圧異常信号ALARMが正常レベル(すなわち「H」レベル)に変化するまで同一の処理を繰り返す(ステップS9〜S10)。このように、電圧異常信号ALARMを2回取得することで、正確な信号を読み込むことができる。
次いで、主制御CPU600aは、主制御RAM600cへのデータ書き込みを許可し(ステップS11)、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)の作業領域の初期設定を行う(ステップS12)。具体的には、電源異常確認カウンタに00Hをセットし、システム動作ステータスに01Hをセットする。
次いで、主制御CPU600aは、サブ制御基板80に液晶表示装置41に待機画面を表示させるような処理コマンド(演出制御コマンドDI_CMD)を送信する(ステップS13)。
なお、この待機画面表示コマンド送信の設定処理が、図16(b)に示す、液晶表示装置41(図5参照)に待機画面を表示させる待機画面表示コマンド(0BA01H)をDEレジスタにセットし(LD DE、0BA01H)、コマンド送信処理(M_CMDOUT)をCALL_S命令でコールする(CALL_S M_CMDOUT)プログラムで処理されるものである。
次いで、主制御CPU600aは、図示しないウォッチドックタイマ(WDT)をクリアし(ステップS14)、払出制御基板70から電源が投入された旨の信号(電源投入信号)が来たか否かを確認する(ステップS15)。電源投入信号が来ていなければ(ステップS15:OFF)、ステップS14の処理に戻り、電源投入信号が来ていれば(ステップS15:ON)、ステップS16の処理に進む。
次いで、主制御CPU600aは、RAMクリアスイッチ620、設定キースイッチ630のレベルデータを取得し、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)の作業領域に退避させる(ステップS16)。
次いで、主制御CPU600aは、図2に示すように、上部開閉扉7、下部開放扉8が開放されているか否かの扉開放信号、及び、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)の作業領域に退避させたRAMクリアスイッチ620の信号、並びに、設定キースイッチ630の信号を取得し(ステップS17)、全てONになっているか否かを確認する(ステップS18)。全てONになっていれば(ステップS18:YES)、主制御CPU600aは、設定切替処理を行う(ステップS19)。
<主制御:メイン処理:設定切替処理に関する説明>
ここで、この設定切替処理について、図26を参照して具体的に説明する。
まず、主制御CPU600aは、サブ制御基板80に設定変更中であることを示す設定切替開始コマンド(演出制御コマンドDI_CMD)を送信する(ステップS50)。なお、この設定変更中であることを示す設定切替開始コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、バックアップフラグをクリアする(ステップS51)。なお、このバックアップフラグとは、図27に示す電源異常チェック処理にて、停電等による電圧低下を検出した場合に、バックアップの処理が実行されたか否かを示すデータである。また、このバックアップフラグをクリアするのは、設定切替処理中に、何らかの要因で電断し、主制御RAM600cが正常にバックアップされなかった場合を、後述する図25に示すステップS21にて検出するためである。
次いで、主制御CPU600aは、システム動作ステータスに02Hをセットし(ステップS52)、主制御RAM600c(図7参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値を取得し、Wレジスタにセットする(ステップS53)。具体的に説明すると、設定値が、例えば「1」〜「6」である場合、プログラム上では、設定値「1」〜「6」を「00H」〜「05H」の値に対応させて、Wレジスタにセットすることとなる。
次いで、主制御CPU600aは、Wレジスタにセットした値と、遊技者に有利な特別遊技状態を発生させる確率の設定最大値(例えば「6」に対応した「05H」)を比較する(ステップS54)。そして、主制御CPU600aは、Wレジスタにセットした値が遊技者に有利な特別遊技状態を発生させる確率の設定最大値(例えば「6」」に対応した「05H」)よりも大きければ(ステップS55:YES)、異常値であると判断し、Wレジスタに00Hをセットする(ステップS56)。
一方、Wレジスタにセットした値が遊技者に有利な特別遊技状態を発生させる確率の設定最大値(例えば「6」に対応した「05H」)よりも小さければ(ステップS55:NO)、正常値であると判断し、ステップS57の処理に進む。
次いで、主制御CPU600aは、図示しない外部端子を介して、遊技場の遊技島管理に使用されるホールコンピュータ(図示せず)に出力されるセキュリティ信号をONに設定し、そのセキュリティ信号を、図示しない外部端子を介して、ホールコンピュータ(図示せず)に出力する(ステップS57)。
次いで、主制御CPU600aは、LEDコモンポートに00Hをセットする(ステップS58)。これにより、図8に示す第1LEDダイナミック点灯コモンデータ信号611a2、第2LEDダイナミック点灯コモンデータ信号611a3から「0」が出力されることとなる。
次いで、主制御CPU600aは、Wレジスタにセットされている値をLEDデータポートに出力する(ステップS59)。これにより、図8に示す第2LEDダイナミック点灯データ信号611c2から、Wレジスタにセットされている設定値が出力されることとなる。なお、実際には、Wレジスタにセットされている値に対応した設定値が、図8に示す、計測・設定表示装置610の第1の計測・設定表示装置610Aに表示されるようにするためのLEDでデータが出力されることとなる。例えば、Wレジスタに「00H」がセットされている場合は、計測・設定表示装置610の第1の計測・設定表示装置610Aに「0」が表示されるようなLEDデータが出力されることとなる。
次いで、主制御CPU600aは、設定値を表示するLEDコモンポートをONにセットする(ステップS60)。これにより、第2LEDダイナミック点灯コモンデータ第1信号611a3aから「1」が出力されることなる。
かくして、このような処理を経て、図8に示す、計測・設定表示装置610の第1の計測・設定表示装置610Aに設定値が表示されることとなる。このようにすれば、プログラムの容量を削減することができる。
すなわち、後述するタイマ割込み処理の前に、設定変更を行う場合には、コモンポートを切り替える周期を作り出すためのプログラムが必要となる。しかしながら、上述したように実際に使用されるのは、計測・設定表示装置610の第1の計測・設定表示装置610Aのみであるから、コモンポートを切り替えずに、設定値に応じたLEDデータを出力するようにしている。これにより、プログラムの容量を削減することができる。
次いで、主制御CPU600aは、4msのウェイトがかかるように、主制御CPU600a内のレジスタに所定値をセットして、カウントダウンする処理を行う(ステップS61)。なお、この処理は、RAMクリアスイッチ620(図7参照)、設定キースイッチ630(図7参照)のレベルデータの変化を確認する際、前回のスイッチレベルの取得から少なくとも4msの時間をおくことで、ノイズ等のイレギュラーによるレベルデータの変化ではないことを確認するための処理である。またさらに、この後の電源異常チェック処理における電圧異常信号の変化を確認して、電源異常確認カウンタをカウントする際にも、4msの時間をおくことで、電圧異常信号の「L」レベルがノイズ等のイレギュラーによるレベルデータでないことを確認するための処理でもある。
次いで、主制御CPU600aは、電源異常チェック処理を行う(ステップS62)。この電源異常チェック処理について、図27を参照して具体的に説明する。
<主制御:メイン処理:電源異常チェック処理に関する説明>
図27に示すように、主制御CPU600aは、電源基板130(電圧監視部1310)(図7参照)より出力されている電圧異常信号ALARM(図7参照)を2回取得し(ステップS80)、その2回取得した電圧異常信号ALARMのレベルが一致するか否かを確認する(ステップS81)。一致していれば(ステップS81:YES)、主制御CPU600aは、電圧異常信号ALARMのレベルを確認し(ステップS82)、一致していなければ(ステップS81:NO)、ステップS80の処理に戻る。
次いで、主制御CPU600aは、電圧異常信号ALARMのレベルが「H」レベルであれば(ステップS82:OFF)、電源異常確認カウンタをクリアし(ステップS83)、電源異常チェック処理を終える。
一方、主制御CPU600aは、電圧異常信号ALARMのレベルが「L」レベルであれば(ステップS82:ON)、電源異常確認カウンタをインクリメント(+1)し(ステップS84)、電源異常確認カウンタの値を確認する(ステップS85)。電源異常確認カウンタの値が2以上でなければ(ステップS85:NO)、電源異常チェック処理を終える。
一方、主制御CPU600aは、電源異常確認カウンタの値が2以上であれば(ステップS85:YES)、サブ制御基板80に電源が遮断されたことを示す電断コマンド(演出制御コマンドDI_CMD)を送信する(ステップS86)。なお、この電源が遮断されたことを示す電断コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、システム動作ステータスの値を確認する(ステップS87)。システム動作ステータスの値が02Hであれば、設定変更処理中であると判断し(ステップS87:YES)、バックアップフラグをONにセットせず、ステップS89の処理に進む。このようにすれば、設定切替処理中に、何らかの要因で電断し、主制御RAM600cが正常にバックアップされなかった場合を、後述する図25に示すステップS21にて検出することができる。
一方、システム動作ステータスの値が02Hでなければ、設定変更処理中でないと判断し(ステップS87:NO)、バックアップフラグをONにセットする(ステップS88)。
次いで、主制御CPU600aは、主制御RAM600cへのデータ書込みを禁止状態に設定する(ステップS89)と共に、全ての出力ポートの出力データをクリアし(ステップS90)。そして、タイマ割込みを禁止し(ステップS91)、無限ループ処理を繰り返し電圧が降下するのを待つ処理を行う。
<主制御:メイン処理:設定切替処理に関する説明>
かくして、上記のような処理を経て、電源異常チェック処理(ステップS62)を終えると、主制御CPU600aは、前回と今回のRAMクリアスイッチ620のレベルデータ、並びに、設定キースイッチ630のレベルデータから、RAMクリアスイッチ620信号のスイッチエッジデータ、並びに、設定キースイッチ630信号のスイッチエッジデータを作成する(ステップS63)。なお、主制御CPU600aは、作成したエッジデータを主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納する。
次いで、主制御CPU600aは、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納されているエッジデータを確認し、設定キースイッチ630がONであれば(ステップS64:NO)、ステップS65の処理に進み、設定キースイッチ630がOFFであれば(ステップS64:YES)、ステップS67の処理に進む。
次いで、主制御CPU600aは、RAMクリアスイッチ620がONであれば(ステップS65:NO)、Wレジスタの値をインクリメント(+1)し(ステップS66)、ステップS54の処理に戻る。
一方、RAMクリアスイッチ620がOFFであれば(ステップS65:NO)、ステップS57の処理に戻る。
かくして、設定キースイッチ630がOFFされるまで、上記処理を繰り返し行い、設定キースイッチ630がOFFされると、主制御CPU600aは、Wレジスタの値を、主制御RAM600c(図7参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値(例えば「1」〜「6」に対応した「00H」〜「05H」)の設定値)に上書きして格納する(ステップS67)。
次いで、主制御CPU600aは、設定確定表示をLEDデータポートに出力する(ステップS68)。これにより、図8に示す第2LEDダイナミック点灯データ信号611c2から、設定確定表示を示す値が出力され、もって、図8に示す、計測・設定表示装置610の第1の計測・設定表示装置610Aの7セグメントの右下側にあるドットが点灯し、設定内容が確定したことが表示されるようになる。
次いで、主制御CPU600aは、サブ制御基板80に設定値を反映した設定切替終了コマンド(演出制御コマンドDI_CMD)を送信する(ステップS69)。なお、この設定値を反映した設定切替終了コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
<主制御:メイン処理の説明>
かくして、上記のような処理を経て、図24に示す設定切替処理(ステップS19)を終えると、主制御CPU600aは、図25に示すステップS26の処理に進むこととなる。
他方、主制御CPU600aは、RAMクリアスイッチ620の信号、並びに、設定キースイッチ630の信号が、全てONになっているか否かを確認し(ステップS18)、全てONになっていなければ(ステップS18:NO)、主制御CPU600aは、図25に示すステップS20の処理を行う。
すなわち、主制御CPU600aは、主制御RAM600c(図7参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値(例えば「1」〜「6」に対応した「00H」〜「05H」の設定値)を取得し、設定最大値(例えば「6」に対応した「05H」)以下か否かを確認する(ステップS20)。設定最大値以下であれば(ステップS20:YES)、バックアップフラグがONにセットされているか否かを確認する(ステップS21)。
<主制御:メイン処理:RAMエラー処理に関する説明>
設定最大値以下でないか(ステップS20:NO)、又は、バックアップフラグがONにセットされていなければ(ステップS21:NO)、主制御CPU600aは、サブ制御基板80にRAMエラーであることを示すRAMエラーコマンド(演出制御コマンドDI_CMD)を送信する(ステップS22)。なお、このRAMエラーであることを示すRAMエラーコマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、エラー表示をLEDデータポートに出力する(ステップS23)。これにより、図8に示す第2LEDダイナミック点灯データ信号611c2から、エラーを示す値(例えば、計測・設定表示装置610の第1の計測・設定表示装置610Aに「E」を表示するためのLEDデータ)が出力され、もって、図8に示す、計測・設定表示装置610の第1の計測・設定表示装置610Aにエラーを示す値(例えば、「E」)が表示されることとなる。
次いで、主制御CPU600aは、電源異常チェック処理を行い(ステップS24)、ステップS23の処理に戻り、処理を繰り返すこととなる。なお、この電源異常チェック処理は、図27に示す電源異常チェック処理と同一の処理である。
<主制御:メイン処理の説明>
一方、バックアップフラグがONにセットされていれば(ステップS21:YES)、RAMクリアスイッチ620の信号を確認する(ステップS25)。
<主制御:メイン処理:RAMクリア処理に関する説明>
RAMクリアスイッチ620の信号がON(ステップS25:YES)、又は、図24に示す設定切替処理(ステップS19)を行った場合、主制御CPU600aは、主制御RAM600cの計測用RAM領域600ce(図9(a)参照)、計測用スタック領域600cg(図9(a)参照)はクリアせず、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)、通常用スタック領域600cc(図9(a)参照)をクリアする(ステップS26)。
次いで、主制御CPU600aは、RAMクリア報知タイマを30秒(30s)に設定し(ステップS27)、図示しない外部端子を介して、遊技場の遊技島管理に使用されるホールコンピュータ(図示せず)に出力されるセキュリティ信号を出力するタイマを30秒(30s)に設定する(ステップS28)。
次いで、主制御CPU600aは、主制御RAM600cの一部に、初期値設定を行い(ステップS29)、ステップS41の処理に進む。
<主制御:メイン処理の説明>
一方、RAMクリアスイッチ620の信号がOFF(ステップS25:NO)であれば、主制御CPU600aは、上部開閉扉7、下部開放扉8が開放されているか否かの扉開放信号、及び、設定キースイッチ630の信号を取得し(ステップS30)、全てONになっているか否かを確認する(ステップS31)。全てONになっていなければ(ステップS31:NO)、ステップS40の処理に進む。
<主制御:メイン処理:設定確認処理に関する説明>
一方、全てONになっていれば(ステップS31:YES)、主制御CPU600aは、サブ制御基板80に設定値を反映した設定値コマンド(演出制御コマンドDI_CMD)を送信する(ステップS32)。なお、この設定値を反映した設定値コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、図示しない外部端子を介して、遊技場の遊技島管理に使用されるホールコンピュータ(図示せず)に出力されるセキュリティ信号を出力するタイマを30秒(30s)に設定する(ステップS33)。
次いで、主制御CPU600aは、図示しない外部端子を介して、遊技場の遊技島管理に使用されるホールコンピュータ(図示せず)に出力されるセキュリティ信号をONに設定し、図示しない外部端子を介して、ホールコンピュータ(図示せず)に、上記タイマにて設定された30秒(30s)間、セキュリティ信号を出力する(ステップS34)。
次いで、主制御CPU600aは、設定値をLEDデータポートに出力する(ステップS35)。これにより、図8に示す第2LEDダイナミック点灯データ信号611c2から、設定値が出力され、もって、図8に示す、計測・設定表示装置610の第1の計測・設定表示装置610Aに設定値が表示されることとなる。
次いで、主制御CPU600aは、4msのウェイトがかかるように、主制御CPU600a内のレジスタに所定値をセットして、カウントダウンする処理を行う(ステップS36)。
次いで、主制御CPU600aは、電源異常チェック処理を行う(ステップS37)。なお、この電源異常チェック処理は、図27に示す電源異常チェック処理と同一の処理である。
次いで、主制御CPU600aは、前回と今回の設定キースイッチ630のレベルデータから、設定キースイッチ630信号のスイッチエッジデータを作成する(ステップS38)。なお、主制御CPU600aは、作成したエッジデータを主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納する。
次いで、主制御CPU600aは、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納されているエッジデータを確認し(ステップS39)、設定キースイッチ630がONであれば(ステップS39:NO)、ステップS34の処理に戻る。
<主制御:メイン処理の説明>
一方、設定キースイッチ630がOFFであれば(ステップS39:YES)、主制御RAM600cの一部に、バックアップフラグやエラー検出タイマ等の初期値設定を行う(ステップS40)。
次いで、主制御CPU600aは、サブ制御基板80に、RAMクリアによる電断復帰か、又は、バックアップによる電断復帰かを示すコマンド(演出制御コマンドDI_CMD)を送信する(ステップS41)。なお、このコマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、遊技状態報知情報を更新する遊技状態報知情報更新処理を行う(ステップS42)。
次いで、主制御CPU600aは、内部機能レジスタの設定を行う(ステップS43)。具体的には、発射制御信号をONに設定し、払出制御基板70に送信する。これにより、払出制御基板70は、発射制御基板71の動作を開始させるように制御する。また、主制御CPU600aの内部に設けられている一定周期のパルス出力を作成する機能や時間計測の機能等を有するCTC(Counter Timer Circuit)の設定を行う。すなわち、主制御CPU600aは、4ms毎に定期的にタイマ割込みがかかるように上記CTCの時間定数レジスタを設定する。
なお、このCTCの設定処理が、図16(b)に示す、CTCの設定テーブル(D_CTCSET)をHLレジスタにセットし(LD HL、D_CTCSET)、データセット処理(M_DTSET)をCALL_S命令でコールするようにしているプログラムで処理されるものである。
次いで、主制御CPU600aは、自身への割込みを禁止状態にセットした状態(ステップS44)で、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されているプログラムを読み出し、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等の性能を算出する賞球入賞数管理処理1の処理を行う(ステップS45)。そして、主制御CPU600aは、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているプログラムに基づいて、各種の乱数カウンタの更新処理を行った後(ステップS46)、割込み許可状態に戻して(ステップS47)、ステップS44に戻り、ステップS44〜ステップS47の処理を繰り返し行うループ処理を行う。
なお、このステップS44〜ステップS47の処理が、図16(f)に示す、割込み禁止処理(DI)をした後、賞球入賞数管理処理1(M_SHOUKYU1)をCALL命令でコールし(CALL M_SHOUKYU1)、各種乱数更新処理(M_RANSU)をCALL_M命令でコールし(CALL M_SHOUKYU1)、割込み許可(EI)をするという処理を繰り返し行うプログラムで処理されるものである。
しかして、本実施形態によれば、設定変更中に、何らかの要因で電断した後、再度電源投入された際、図24に示す設定切替処理(ステップS19)を行わなければ、ステップS22〜ステップS24の処理に示すようにRAM異常となるようにし、図24に示す設定切替処理(ステップS19)を行った場合にのみ、通常遊技状態に移行するようにしている。そしてさらに、図26に示すステップS57に示すように、設定変更中は、時間監視することなく、設定変更中であれば、外部端子からセキュリティ信号を出力し、設定変更後は、図25に示すステップS33、ステップS34に示すように、時間監視により、所定時間、外部端子からセキュリティ信号を出力するようにしている。なお、設定変更中、時間監視をしないのは、設定変更操作の時間は、操作者によってかかる時間が不定のため、時間監視をした場合、操作中にも関わらずセキュリティ信号の出力が停止するおそれがあり、また操作中であれば監視時間を延長するとの処理を入れた場合に、処理負荷が増大するためである。
かくして、従来においては、電断によってRAMの値に異常が発生した場合、設定値など遊技に影響を及ぼす可能性があるままで、設定変更状態から再開してしまう可能性があった。しかしながら、本実施形態のような処理をすれば、遊技に影響を及ぼす可能性があるままで、遊技が再開される可能性を低減させることができる。
また、本実施形態の処理においては、設定変更中に、何らかの要因で電断した後、再度電源投入された際、図24に示す設定切替処理(ステップS19)を行わなければ、ステップS22〜ステップS24の処理に示すようにRAM異常となるように、電源異常チェック処理において、主制御CPU600aは、出力ポートの出力データをクリアするものの、バックアップフラグをONにセットしないようにしている。なお、主制御CPU600aは、出力ポートの出力データをクリアするにあたって、設定変更時に使用される出力ポート(例えば、LEDデータポートやLEDコモンポート)の出力データをクリアすると共に、設定変更時に使用していない出力ポートの出力データもクリアするにしている。
なお、本実施形態においては、遊技者に有利な特別遊技状態を発生させる確率の設定値(例えば「1」〜「6」に対応した「00H」〜「05H」の設定値)を6段階で変更できる例を示したが、設定値(例えば「1」に対応した「00H」の設定値)が1段階しかなくとも、部材やプログラムの共通化のため、上述したような設定変更機能を有していても良い。この際、図26に示す設定切替処理において、ステップS66にて、Wレジスタに格納された設定値が+1されたとしても、設定最大値は「1」に対応した「00H」となり、必ず、図26に示すステップS56にて、Wレジスタの値が「00H」になる処理を行うこととなる。これにより、設定値が複数ある場合のプログラムと同じプログラムで設定変更処理を実行することができる。しかして、このようにすれば、図26に示すステップS67にて、主制御CPU600aが、主制御RAM600c(図7参照)内に記憶されている設定値を上書きしても、一定の値となり変動することがない。これにより、部材やプログラムの共通化が可能となる。
<主制御:タイマ割込み処理の説明>
次に、図28を参照して、上述したメイン処理を中断させて、4ms毎に開始されるタイマ割込みプログラムについて説明する。なお、このプログラムは、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているプログラムを読み出して実行するものである。
このタイマ割込みが生じると、主制御CPU600a内のレジスタ群の内容を主制御RAM600cの通常用スタック領域600cc(図9(a)参照)に退避させる退避処理を実行し(ステップS100)、その後、電圧異常チェック処理を実行する(ステップS101)。この電圧異常チェック処理は、図27に示す電源異常チェック処理と同一の処理である。
次いで、主制御CPU600aは、特別図柄1始動口スイッチ44a(図7参照)と、特別図柄2始動口スイッチ45a(図7参照)と、普通図柄始動口スイッチ47a(図7参照)と、右上一般入賞口スイッチ48a1(図7参照),左上一般入賞口スイッチ48b1(図7参照),左中一般入賞口スイッチ48c1(図7参照),左下一般入賞口スイッチ48d1(図7参照)と、アウト口スイッチ49a(図7参照)と、大入賞口スイッチ46c(図7参照)を含む各種スイッチ類のON/OFF信号が入力され、主制御RAM600c内の作業領域にON/OFF信号レベルや、その立ち上がり状態が記憶される(ステップS102)。
次いで、主制御CPU600aは、各遊技動作の時間を管理している各種タイマ(普通図柄変動タイマ、普通図柄役物タイマ等)のタイマ減算処理を行う(ステップS103)。
次いで、主制御CPU600aは、乱数管理処理を行う(ステップS104)。具体的には、当否抽選に使用する普通図柄、特別図柄等の乱数を更新する処理を行うものである。なお、この際、上述した図15(b)〜(d)に示すようなカウンタプログラムが実行されることとなる。
次いで、主制御CPU600aは、エラー管理処理を行う(ステップS105)。なお、エラー管理処理は、遊技球の補給が停止したり、あるいは、遊技球が詰まったり、特別図柄1始動口スイッチ44a(図7参照)、特別図柄2始動口スイッチ45a(図7参照)、普通図柄始動口スイッチ47a(図7参照)、右上一般入賞口スイッチ48a1(図7参照)、左上一般入賞口スイッチ48b1(図7参照)、左中一般入賞口スイッチ48c1(図7参照)、左下一般入賞口スイッチ48d1(図7参照)、アウト口スイッチ49a(図7参照)、大入賞口スイッチ46c(図7参照)の断線など、機器内部に異常が生じていないかの判定を行うものである。なお、何らかのエラーが発生した際、サブ制御基板80へ、そのエラーに応じたコマンド(演出制御コマンドDI_CMD)が送信されることとなり、このコマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、賞球管理処理を実行する(ステップS106)。この賞球管理処理は、払出制御基板70(図7参照)に払出し動作を行わせるための払出制御コマンドPAY_CMDを出力している。
次いで、主制御CPU600aは、普通図柄処理を実行する(ステップS107)。この普通図柄処理は、普通図柄の当否抽選を実行し、その抽選結果に基づいて普通図柄の変動パターンや普通図柄の停止表示状態を決定したりするものである。なお、この処理の詳細は後述することとする。
次いで、主制御CPU600aは、普通電動役物管理処理を実行する(ステップS108)。この普通電動役物管理処理は、普通図柄処理(ステップS107)の抽選結果に基づき、普通電動役物開放遊技発生に必要な普通電動役物ソレノイド45c(図7参照)の制御に関する信号が生成されるものである。
次いで、主制御CPU600aは、特別図柄処理を実行する(ステップS109)。この特別図柄処理では、特別図柄の当否抽選を実行し、その抽選の結果に基づいて特別図柄の変動パターンや特別図柄の停止表示態様を決定するものである。なお、この処理の詳細は後述することとする。
次いで、主制御CPU600aは、特別電動役物管理処理を実行する(ステップS110)。この特別電動役物管理処理では、主に、大当たり抽選結果が「大当たり」又は「小当たり」であった場合、その当りに対応した当り遊技を実行制御するために必要な設定処理を行うものである。この際、特別電動役物ソレノイド46b(図7参照)の制御に関する信号も生成される。なお、大当たり抽選結果が「大当たり」又は「小当たり」であった場合、それに関するコマンド(演出制御コマンドDI_CMD)がサブ制御基板80に送信される。なお、このコマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、右打ち報知情報管理処理を行う(ステップS111)。この右打ち報知情報管理処理では、開閉部材45bが所定回数、所定時間開放する場合や、開閉扉46aが開放され大入賞口(図示せず)が開放される場合など、右打ちが有利な状況において右打ち指示報知を行う「発射位置誘導演出(右打ち報知演出)」を現出させるための処理を行う。なお、右打ち報知演出が行われる場合、この右打ち報知情報管理処理において、その右打ち報知演出に関するコマンド(演出制御コマンドDI_CMD)がサブ制御基板80に送信される。なお、このコマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、LED管理処理を実行する(ステップS112)。なお、この処理の詳細は後述することとする。
次いで、主制御CPU600aは、外部端子管理処理を実行する(ステップS113)。この外部端子管理処理では、遊技場の遊技島管理に使用されるホールコンピュータ(図示せず)に、当り遊技中、当りの発生回数、特別図柄の変動回数、入賞口への入賞球検出情報、セキュリティ情報など、所定の遊技情報が外部端子(図示せず)から出力されるものである。
次いで、主制御CPU600aは、ソレノイド管理処理を行う(ステップS114)。この際、主制御CPU600aは、普通電動役物管理処理(ステップS108)にて生成された普通電動役物ソレノイド45c(図7参照)の制御に関する信号を確認すると共に、特別電動役物管理処理(ステップS110)にて生成された特別電動役物ソレノイド46b(図7参照)の制御に関する信号を確認する。そしてこの信号に基づき、普通電動役物ソレノイド45c又は特別電動役物ソレノイド46bの作動/停止が制御され、開閉部材45b(図5参照)が開放又は閉止、あるいは、大入賞口(図示せず)が開放又は閉止するように開閉扉46a(図5参照)が動作することとなる。
次いで、主制御CPU600aは、使用領域外処理を行う(ステップS115)。なお、この処理の詳細は後述することとする。
次いで、主制御CPU600aは、図示しないウォッチドックタイマ(WDT)をクリアし(ステップS116)、割込み許可状態に戻し(ステップS117)、主制御RAM600cの通常用スタック領域600cc(図9(a)参照)に退避させておいたレジスタの内容を復帰させタイマ割込みを終える(ステップS118)。これにより、割込み処理ルーチンからメイン処理(図24参照)に戻ることとなる。
なお、タイマ割込み処理にて実行される電圧異常チェック処理(ステップS101)〜使用領域外処理(ステップS115)は、CALL_M命令でコールされて処理されることとなる。
<主制御:普通図柄処理の説明>
次に、図29を参照して、上記普通図柄処理について詳細に説明する。
図29に示すように、普通図柄処理は、先ず、ゲートからなる普通図柄始動口47(図5参照)において、遊技球の通過を検出したか否かを確認、すなわち、普通図柄始動口47の普通図柄始動口スイッチ47a(図7参照)の信号レベルを確認する(ステップS150)。そして遊技球の通過を検出した場合(ステップS150:YES)、主制御CPU600aは、普通図柄の始動保留球数が例えば4以上か否かを判断するため、普通図柄の始動保留球数が格納されている主制御RAM600cの通常用RAM領域600ca(図9(a)参照)を確認する(ステップS151)。その際、普通図柄の始動保留球数が4未満であれば(ステップS151:≠MAX)、普通図柄の始動保留球数を1加算する(ステップS152)。その後、主制御CPU600aは、普通図柄の当否抽選に用いられる普通図柄当り判定用乱数値を普通図柄の始動保留球数が格納されている主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納した上で(ステップS153)、ステップS154の処理に進む。
一方、ステップS150にて、遊技球の通過を検出しなかった場合(ステップS150:NO)、ステップS151にて、普通図柄の始動保留球数が4以上であると判断した場合(ステップS151:=MAX)には、ステップS152〜S153の処理は行わず、ステップS154の処理に進む。
主制御CPU600aは、ステップS154の処理に進むと、普通図柄当たり作動フラグがONに設定されているか、すなわち、普通図柄当たり作動フラグに5AHが設定されているかを確認する(ステップS154)。普通図柄当たり作動フラグに5AHが設定されていれば(ステップS154:ON)、普通図柄が当たり中であると判断し、普通図柄の表示データの更新を行った後(ステップS163)、普通図柄処理を終える。
一方、普通図柄当たり作動フラグに5AHが設定されていなければ(ステップS154:OFF)、普通図柄の挙動を示す処理状態、すなわち、普通図柄動作ステータスフラグの値を確認する(ステップS155)。そして、普通図柄動作ステータスフラグが00Hであれば、主制御CPU600aは、普通図柄の変動開始前の状態であると判断し、ステップS156に進み、普通図柄の始動保留球数が0か否かを確認する(ステップS156)。
主制御CPU600aは、普通図柄の始動保留球数が格納されている主制御RAM600cの通常用RAM領域600ca(図9(a)参照)を確認した上で、0であると判断した場合(ステップS156:=0)は、普通図柄の表示データの更新を行った後(ステップS163)、普通図柄処理を終える。一方、0でないと判断した場合(ステップS156:≠0)は、普通図柄の始動保留球数を1減算する(ステップS157)。
その後、主制御CPU600aは、図43(a)に示す普通図柄当たり判定テーブルNPP_TBLを用いて主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納されている普通図柄の始動保留球数に対応した乱数値の当たり判定を行う。すなわち、主制御CPU600aは、遊技状態を示す普通図柄確変フラグがOFFであれば、当該乱数値が、図43(a)に示す普通図柄当たり判定テーブルNPP_TBL(通常状態)の下限値(図示では、249)以上で上限値(図示では、250)以下か否かを判定し、下限値以上で上限値以下であれば、普通図柄当たり判定フラグに5AHをセットし、ONにする。それ以外の場合は、普通図柄当たり判定フラグをOFFにする。
一方、遊技状態を示す普通図柄確変フラグがONであれば、当該乱数値が、図43(a)に示す普通図柄当たり判定テーブルNPP_TBL(確変状態)の下限値(図示では、4)以上で上限値(図示では、250)以下か否かを判定し、下限値以上で上限値以下であれば、普通図柄当たり判定フラグに5AHをセットし、ONにする。それ以外の場合は、普通図柄当たり判定フラグをOFFにセットする処理を行う(ステップS158)。
そして、主制御CPU600aは、上記乱数抽選処理にて決定した抽選結果に基づいて、停止図柄(普通図柄停止図柄)を決定する(ステップS159)。
次いで、主制御CPU600aは、普通図柄の変動時間を短くする普通図柄時短フラグがONに設定されているかを確認し、ONに設定されていれば、普通図柄変動タイマにそれに応じた変動時間を設定し、OFFに設定されていれば、普通図柄変動タイマに通常の変動時間を設定する処理を行う(ステップS160)。
次いで、主制御CPU600aは、普通図柄の始動保留球数に対応した普通図柄の当否抽選に用いられる乱数値が格納されている主制御RAM600cの通常用RAM領域600ca(図9(a)参照)の記憶領域をシフトする(ステップS161)。すなわち、普通図柄の始動保留球数を最大で4個保留できるとすると、普通図柄の始動保留球数4に対応した普通図柄の当否抽選に用いられる乱数値を普通図柄の始動保留球数3に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図9(a)参照)にシフトし、普通図柄の始動保留球数3に対応した普通図柄の当否抽選に用いられる乱数値を普通図柄の始動保留球数2に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図9(a)参照)にシフトし、普通図柄の始動保留球数2に対応した普通図柄の当否抽選に用いられる乱数値を普通図柄の始動保留球数1に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図9(a)参照)にシフトするという処理を行う。
この処理の後、主制御CPU600aは、上記ステップS155にて用いた普通図柄動作ステータスフラグに01Hを設定し、普通図柄の始動保留球数4に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に00Hを設定する処理を行う(ステップS162)。
そして、主制御CPU600aは、上記ステップS162の処理を終えた後、普通図柄の表示データの更新を行い(ステップS163)、普通図柄処理を終える。
他方、主制御CPU600aは、上記ステップS155にて、普通図柄の挙動を示す処理状態、すなわち、普通図柄動作ステータスフラグの値が01Hであれば、主制御CPU600aは、普通図柄が変動中であると判断し、ステップS164に進み、普通図柄変動タイマが0か否かを確認する(ステップS164)。普通図柄変動タイマが0でなければ(ステップS164:≠0)、普通図柄の表示データの更新を行い(ステップS163)、普通図柄処理を終える。そして、普通図柄変動タイマが0であれば(ステップS164:=0)、主制御CPU600aは、上記ステップS155にて用いた普通図柄動作ステータスフラグに02Hを設定し、普通図柄の当否抽選結果を一定時間維持させるために、普通図柄変動タイマに例えば約600msの時間が設定される(ステップS165)。
主制御CPU600aは、上記ステップS165の処理を終えた後、普通図柄の表示データの更新を行い(ステップS163)、普通図柄処理を終える。
一方、主制御CPU600aは、上記ステップS155にて、普通図柄の挙動を示す処理状態、すなわち、普通図柄動作ステータスフラグの値が02Hであれば、主制御CPU600aは、普通図柄が確認時間中(普通図柄の変動が終了して停止中)であると判断し、ステップS166に進み、普通図柄変動タイマが0か否かを確認する(ステップS166)。普通図柄変動タイマが0でなければ(ステップS166:≠0)、普通図柄の表示データの更新を行い(ステップS163)、普通図柄処理を終える。そして、普通図柄変動タイマが0であれば(ステップS166:=0)、主制御CPU600aは、上記ステップS155にて用いた普通図柄動作ステータスフラグに00Hを設定し(ステップS167)、普通図柄当たり判定フラグがONに設定(5AHが設定)されているかを確認する(ステップS168)。
これにより、普通図柄当たり判定フラグがOFFに設定(5AHが設定されていない)されていれば(ステップS168:OFF)、主制御CPU600aは、普通図柄の表示データの更新を行い(ステップS163)、普通図柄処理を終える。そして、普通図柄当たり判定フラグがONに設定(5AHが設定)されていれば(ステップS168:ON)、主制御CPU600aは、ステップS154にて用いられる普通図柄当たり作動フラグをON(5AHを設定)に設定した(ステップS169)後、普通図柄処理を終える。
<主制御:特別図柄処理の説明>
次に、図30〜図37を参照して、上記特別図柄処理について詳細に説明する。
図30に示すように、特別図柄処理は、先ず、特別図柄1始動口44(図5参照)の特別図柄1始動口スイッチ44a(図7参照)において、遊技球の入球(入賞球)を検出した否かを確認し(ステップS200)、さらに、特別図柄2始動口45(図5参照)の特別図柄2始動口スイッチ45a(図7参照)において、遊技球の入球(入賞球)を検出したか否かを確認する(ステップS201)。
<主制御:特別図柄処理:始動口チェック処理の説明>
この処理について、図31を用いて詳しく説明すると、主制御CPU600aは、特別図柄1始動口44又は特別図柄2始動口45に遊技球が入球(入賞)したか否かを確認、すなわち、特別図柄1始動口44の特別図柄1始動口スイッチ44a又は特別図柄2始動口45の特別図柄2始動口スイッチ45aのレベルを確認する(ステップS250)。これにより、遊技球の入球(入賞)を検出しなければ(ステップS250:NO)、特別図柄処理を終える。
一方、遊技球の入球(入賞)を検出すれば(ステップS250:YES)、主制御CPU600aは、特別図柄の変動契機となる始動保留球数が所定数、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納されているか否かを確認する(ステップS251)。その始動保留球数が、4未満であれば(ステップS251:≠MAX)、当該始動保留球数を1加算(+1)する(ステップS252)。
次いで、主制御CPU600aは、特別図柄停止の際用いられる乱数値及び変動パターン用乱数値並びに大当たり判定用乱数値を特別図柄の変動契機となる始動保留球数が格納されている主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納する(ステップ253)。
次いで、主制御CPU600aは、現在の遊技状態(特別図柄大当たり判定フラグがONに設定されているか否か等)を確認し、先読み禁止状態か否かを判定する(ステップS254)。そして、先読み禁止状態でなければ(ステップS254:NO)、主制御CPU600aは、上記ステップS253にて主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納した特別図柄の当否抽選に用いられる大当たり判定用乱数値を取得し(ステップS255)、さらに、図示しない始動口入賞時乱数判定テーブルを取得する(ステップS256)。
次いで、主制御CPU600aは、上記ステップS255にて取得した大当たり判定用乱数値及びステップS256にて取得した始動口入賞時乱数判定テーブル(図示せず)を用いて、大当たり抽選を行い、さらに、上記ステップS253にて主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納した特別図柄用乱数値を用いて、大当たりの種類(ランクアップボーナス当り,通常の大当り等)を決定し、変動パターン用乱数値を用いて、変動パターンを決定し、それに応じた特別図柄始動口入賞コマンドを生成する(ステップS257)。なお、この特別図柄始動口入賞コマンドを生成する際、図13(b)に示すような変動時間を取得するプログラムが実行されることとなる。
次いで、主制御CPU600aは、上記生成された特別図柄始動口入賞コマンドに応じた下位バイトの始動保留加算コマンドを生成する(ステップS258)。
一方、主制御CPU600aは、上記ステップS258の処理を終えるか、又は、上記ステップS251にて特別図柄1又は2の始動保留球数が4以上であるか(ステップS251:=MAX)、あるいは、先読み禁止状態であれば(ステップS254:YES)、増加した始動保留球数に応じた上位バイトの始動保留加算コマンドを生成する(ステップS259)。
次いで、主制御CPU600aは、上記ステップS258にて生成した下位バイトの始動保留加算コマンドと、上記ステップS259にて生成した上位バイトの始動保留加算コマンドとを結合した上で、始動保留加算コマンド(演出制御コマンドDI_CMD)として、サブ制御基板80に送信する処理を行う(ステップS260)。この始動保留加算コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
<主制御:特別図柄処理の説明>
かくして、図30に示すステップS200及びステップS201の処理を終えると、主制御CPU600aは、特別図柄小当たり作動フラグがONに設定されているか、すなわち、特別図柄小当たり作動フラグに5AHが設定されているかを確認する(ステップS202)。特別図柄小当たり作動フラグに5AHが設定されていれば(ステップS202:ON)、特別図柄が小当たり中であると判断し、特別図柄の表示データの更新を行った後(ステップS208)、特別図柄処理を終える。
一方、特別図柄小当たり作動フラグに5AHが設定されていなければ(ステップS202:OFF)、特別図柄大当たり作動フラグがONに設定されているか、すなわち、特別図柄大当たり作動フラグに5AHが設定されているかを確認する(ステップS203)。特別図柄大当たり作動フラグに5AHが設定されていれば(ステップS203:ON)、特別図柄が大当たり中であると判断し、特別図柄の表示データの更新を行った後(ステップS208)、特別図柄処理を終える。
一方、特別図柄大当たり作動フラグに5AHが設定されていなければ(ステップS203:OFF)、特別図柄の挙動を示す処理状態、すなわち、特別図柄動作ステータスフラグの値を確認する(ステップS204)。より詳しく説明すると、主制御CPU600aは、特別図柄動作ステータスフラグの値が00H又は01Hであれば、特別図柄変動待機中(特別図柄の変動が行われておらず次回の変動のための待機状態であることを示す)であると判定し、特別図柄変動開始処理を行う(ステップS205)。
<主制御:特別図柄処理:特別図柄変動開始処理の説明>
この処理について、図32を用いて詳しく説明すると、主制御CPU600aは、特別図柄の変動契機となる始動保留球数が0か否かを確認する(ステップS300)。すなわち、主制御CPU600aは、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納されているか否かを確認し、始動保留球数が0であると判断した場合(ステップS300:=0)、特別図柄動作ステータスフラグの値が00Hか否かを確認する(ステップS301)。特別図柄動作ステータスフラグの値が00Hであれば(ステップS301:YES)、特別図柄変動開始処理を終了する。
一方、特別図柄動作ステータスフラグの値が00Hでなければ(ステップS301:NO)、主制御CPU600aは、客待ちデモコマンドを演出制御コマンドDI_CMDとしてサブ制御基板80(図7参照)に送信する(ステップS302)。これを受けて、サブ制御基板80(サブ制御CPU800a)は、図17(a)に示すタイミングT3時から所定時間が経過すると、客待ちデモ状態に移行することとなる。なお、客待ちデモコマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、特別図柄動作ステータスフラグに00Hをセットし(ステップS303)、特別図柄変動開始処理を終了する。
他方、主制御CPU600aは、始動保留球数が0でないと判断した場合(ステップS300:≠0)、始動保留球数を1減算(−1)し(ステップS304)、始動保留減算コマンドを演出制御コマンドDI_CMDとして、サブ制御基板80(サブ制御CPU800a)に送信する(ステップS305)。これを受けて、サブ制御CPU800aは、画像(映像)に関するコマンドリストをVDP803に送信する。これにより、VDP803が、当該コマンドリストに基づく画像を表示させるように画像(映像)データを生成し、その生成した画像(映像)データを液晶表示装置41に送信することにより、液晶表示装置41には、図19(a−3)に示すような画面、始動保留球として3個から2個保留されている状態が表示(画像P5参照)されることとなる。一方で、サブ制御基板80(サブ制御CPU800a)が始動保留減算コマンドを受信できなかった場合、図19(a−4)に示すように始動保留球が3個のまま保留されている状態が液晶表示装置41に表示(画像P1参照)されることとなる。これにより、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に実際に格納されている始動保留球数と、表示されている始動保留球数とが不一致となることとなる。なお、始動保留減算コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、特別図柄停止の際用いられる乱数値及び変動パターン用乱数値並びに大当たり判定用乱数値(図31のステップS253参照)が格納されている主制御RAM600cの通常用RAM領域600ca(図9(a)参照)内の記憶領域をシフトし(ステップS306)、始動保留4に対応した特別図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図9(a)参照)内の領域に0を設定する(ステップS307)。
次いで、主制御CPU600aは、当たり判定処理を行う(ステップS308)。
<主制御:特別図柄処理:当たり判定処理の説明>
この処理について、図33を用いて詳しく説明すると、主制御CPU600aは、大当たり判定用乱数値(図31のステップS253参照)が格納されている主制御RAM600cの通常用RAM領域600ca(図9(a)参照)から、大当たり判定用乱数値を取得する(ステップS350)。
次いで、主制御CPU600aは、変動する特図に応じた当たり判定テーブルのアドレス番地を取得する。ここでは、変動する特図1に対応した図34に示す当たり判定テーブルD_RNDJDGのアドレス番地を取得する。この図43(b)に示す特別図柄大当たり判定テーブルSDH_TBL、図43(c)に示す特別図柄小当たり判定テーブルSDP_TBLに対応した当たり判定テーブルデータが、図34に示すものである。この当たり判定テーブルについて、図34を参照して説明すると、この当たり判定テーブルには、設定値毎(本実施形態においては、設定値1〜6を例示)に判定値が異なるかの情報、及び、判定値、並びに、特別図柄大当たり判定フラグ、特別図柄小当たり判定フラグの値が格納されている。
具体的には、図43(b)に示す特別図柄大当たり判定テーブルSDH_TBLを参照すれば容易に理解し得るように、遊技状態が通常状態(低確状態)、確変状態(当たり抽選確率が通常より高確率状態である確率変動状態)何れの下限値も設定値毎に差が無く、「10001」であるため、
DB 000H
DW 10000
DB 000H、000H、000H
とプログラムされている。
一方、図43(b)に示す特別図柄大当たり判定テーブルSDH_TBLを参照すれば容易に理解し得るように、遊技状態が通常状態(低確状態)の上限値は、設定値毎に差があるため、
DB 001H
DW 10164
DW 10180
DW 10185
DW 10190
DW 10195
DW 10200
DB 05AH、05AH、000H
とプログラムされている。
また一方、図43(b)に示す特別図柄大当たり判定テーブルSDH_TBLを参照すれば容易に理解し得るように、遊技状態が確変状態(高確状態)の上限値は、設定値毎に差があるため、
DB 001H
DW 11640
DW 11800
DW 11850
DW 11900
DW 11950
DW 12000
DB 000H、05AH、000H
とプログラムされている。
他方、図43(c)に示す特別図柄小当たり判定テーブルSDP_TBLを参照すれば容易に理解し得るように、遊技状態が通常状態(低確状態)、確変状態(高確状態)何れの下限値も設定値毎に差が無く、「20001」であるため、
DB 000H
DW 20000
DB 000H、000H、000H
とプログラムされている。
また、図43(c)に示す特別図柄小当たり判定テーブルSDP_TBLを参照すれば容易に理解し得るように、遊技状態が通常状態(低確状態)、確変状態(高確状態)何れの上限値も設定値毎に差が無く、「20164」であるため、
DB 000H
DW 20164
DB 000H、000H、05AH
とプログラムされている。
一方、この当たり判定テーブルについては、図34に示すように、大当たり判定用乱数値の上限値(65535)が以下のようにプログラムされている。
DB 000H
DW 65535
DB 000H、000H、000H
かくして、主制御CPU600aは、上記のような当たり判定テーブルのアドレス番地を取得することとなる(ステップS351)。
次いで、主制御CPU600aは、取得したアドレス番地を、図34に示す判定値が格納されたアドレス番地に変更する(ステップS352)。
次いで、主制御CPU600aは、図34に示す設定値毎に判定値が異なるかの情報を取得し(ステップS353)、取得した情報の値を確認する(ステップS354)。取得した値が「0」であれば(ステップS354:=0)、ステップS357の処理に進み、取得した値が「0」でなければ(ステップS354:≠0)、主制御CPU600aは、主制御RAM600c(図7参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値(例えば「1」〜「6」に対応した「00H」〜「05H」の設定値)を取得する(ステップS355)。
次いで、主制御CPU600aは、取得した設定値に応じた判定値が格納されているアドレス番地に変更する(ステップS356)。例えば、遊技状態が通常状態(低確状態)の上限値の判定値を取得する場合、取得した設定値が「1」であれば、設定値1の判定値「10164」が格納されているアドレス番地に変更し、設定値が「6」であれば、設定値6の判定値「10200」が格納されているアドレス番地に当り判定テーブルのデータを参照するアドレス番地を変更するというものである。
次いで、主制御CPU600aは、現在のアドレス番地から、図34に示す判定値を取得する。例えば、大当たりに関するものであり、設定値毎に判定値が異なるかの情報が「000H」であれば、「10000」の判定値を取得し、設定値毎に判定値が異なるかの情報が「001H」であり、設定値が「1」であれば、「10164」の判定値を取得する(ステップS357)。
次いで、主制御CPU600aは、アドレス番地を次の判定値が格納された先頭アドレス番地に変更し(ステップS358)、取得した大当たり判定用乱数値と、取得した判定値を比較する(ステップS359)。
次いで、主制御CPU600aは、取得した大当たり判定用乱数値が取得した判定値より小さくなければ(ステップS360:NO)、ステップS353の処理に戻り、取得した大当たり判定用乱数値が取得した判定値より小さくなるまで(ステップS360:YES)ステップS353〜ステップS360の処理を繰り返す。
次いで、主制御CPU600aは、取得した大当たり判定用乱数値が取得した判定値より小さくなれば(ステップS360:YES)、図34に示す、遊技状態に応じた特別図柄大当たり判定フラグ、特別図柄小当たり判定フラグを取得し(ステップS361)、当たり判定処理を終える。
ところで、設定値(例えば「1」の設定値)が1段階しかない場合であっても、上記ステップS350〜ステップS361に示すプログラムがそのまま使用できる(プログラムの共通化)ようにするため、図34に示す当たり判定テーブルのデータを、図35に示すデータに変更するようにする。
すなわち、図34と異なる点のみ説明すると、設定値は1段階しかないため、遊技状態が通常状態(低確状態)の上限値は、設定値毎に差はないものの、プログラムの共通化のため、「DB 001H」とプログラムする。さらに、設定値は1段階しかないため、遊技状態が確変状態(高確状態)の上限値は、設定値毎に差はないものの、プログラムの共通化のため、「DB 001H」とプログラムする。そしてさらに、図34に示す当たり判定テーブルのデータサイズと同一のデータサイズにするため、ダミーデータ「DW 0000H」を付加するようにしている。
しかして、このようにすれば、設定値が1段階しかなくとも、設定値を参照して判定値を取得することとなるため、ステップS354〜356の処理を必ず実行し、未使用プログラムを発生させることなく、プログラムを共通化することができる。未使用プログラムがあると、検定試験で不適合となるため、必ずすべてのプログラムを使用する必要があるためである。
<主制御:特別図柄処理:特別図柄変動開始処理の説明>
かくして、上記のような当たり判定処理(ステップS308)を終えた後、主制御CPU600aは、図31のステップS253にて主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納した特別図柄停止の際用いられる乱数値を用いて、特別図柄の停止図柄を生成する(ステップS309)。
次いで、主制御CPU600aは、通常状態、時短状態、潜伏確変状態、確変状態のいずれかの遊技状態に移行する準備を行う(ステップS310)。
次いで、主制御CPU600aは、図31のステップS253にて主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に格納した変動パターン用乱数値を用いて特別図柄の変動パターンの生成を行い、その生成された特別図柄の変動パターンの変動パターンコマンドを演出制御コマンドDI_CMDとして、サブ制御基板80(サブ制御CPU800a)に送信する(ステップS311)。この際、図13(b)に示すような変動時間を取得するプログラムが実行され、特別図柄変動タイマに変動時間が設定される。なお、変動パターンコマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、特別図柄変動中フラグに5AHを設定し、ON状態にする(ステップS312)。
次いで、主制御CPU600aは、液晶表示装置41に表示される特別図柄の指定を行う図柄指定コマンドを生成し(ステップS313)、その生成した図柄指定コマンドを演出制御コマンドDI_CMDとしてサブ制御基板80(サブ制御CPU800a)に送信する処理を行う(ステップS314)。なお、図柄指定コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、特別図柄動作ステータスフラグに02Hを設定し(ステップS315)、特別図柄変動開始処理を終了する。
<主制御:特別図柄処理の説明>
他方、図30に示すように、特別図柄動作ステータスフラグの値が02Hの場合、主制御CPU600aは、特別図柄変動中(特別図柄が現在変動中であることを示す)であると判定し、特別図柄変動中処理を行う(ステップS206)。
<主制御:特別図柄処理:特別図柄変動中処理の説明>
この処理について、図36を用いて詳しく説明すると、主制御CPU600aは、まず、図32のステップS311にて特別図柄変動タイマに設定された変動時間が経過したか、すなわち、0になったか否かを確認する(ステップS400)。特別図柄変動タイマが0でなければ(ステップS400:NO)、主制御CPU600aは、特別図柄変動中処理を終了する。
一方、特別図柄変動タイマが0であれば(ステップS400:YES)、主制御CPU600aは、図柄停止コマンドを演出制御コマンドDI_CMDとしてサブ制御基板80(サブ制御CPU800a)に送信する(ステップS401)。なお、図柄停止コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、特別図柄動作ステータスフラグに03Hを設定し、特別図柄変動中フラグに00Hを設定する。そしてさらに、主制御CPU600aは、特別図柄の当否抽選結果を一定時間維持するために、特別図柄変動タイマに例えば約500msの時間を設定する(ステップS402)。その後、主制御CPU600aは、特別図柄変動中処理を終了する。
<主制御:特別図柄処理の説明>
一方、図30に示すように、特別図柄動作ステータスフラグの値が03Hの場合、主制御CPU600aは、特別図柄確認中(特別図柄の変動が終了して停止中であることを示す)であると判定し、特別図柄確認時間中処理を行う(ステップS207)。
<主制御:特別図柄処理:特別図柄確認中処理の説明>
この処理について、図37を用いて詳しく説明すると、主制御CPU600aは、まず、図32のステップS311にて特別図柄変動タイマに設定された変動時間が経過したか、すなわち、0になったか否かを確認する(ステップS450)。特別図柄変動タイマが0でなければ(ステップS450≠0)、主制御CPU600aは、特別図柄確認時間中処理を終了する。
一方、特別図柄変動タイマが0であれば(ステップS450=0)、主制御CPU600aは、特別図柄動作ステータスフラグに01Hを設定し(ステップS451)、特別図柄大当たり判定フラグがONに設定されているか(5AHが設定されているか)を確認する(ステップS452)。特別図柄大当たり判定フラグがONに設定されていれば(5AHが設定されていれば)(ステップS452:YES)、特別図柄大当たり判定フラグに00Hを設定し、特別図柄大当たり作動フラグに5AHを設定し、そして普通図柄時短フラグに00Hを設定し、普通図柄確変フラグに00Hを設定し、さらに、特別図柄時短フラグに00Hを設定し、特別図柄確変フラグに00Hを設定し、後述する特別図柄時短回数カウンタ及び特別図柄確変回数カウンタに00Hを設定する処理を行う(ステップS453)。その後、主制御CPU600aは、特別図柄確認時間中処理を終了する。
他方、特別図柄大当たり判定フラグがONに設定されていなければ(5AHが設定されていなければ)(ステップS452:NO)、主制御CPU600aは、特別図柄小当たり判定フラグがONに設定されているか(5AHが設定されているか)を確認する(ステップS454)。特別図柄小当たり判定フラグがONに設定されていれば(5AHが設定されていれば)(ステップS454:YES)、特別図柄小当たり判定フラグに00Hを設定し、特別図柄小当たり作動フラグに5AHを設定する(ステップS455)。
主制御CPU600aは、上記ステップS455の処理を終えた後、又は、特別図柄小当たり判定フラグがONに設定されていなければ(5AHが設定されていなければ)(ステップS454:NO)、特別図柄時短回数カウンタの値が0か否かを確認する(ステップS456)。
特別図柄時短回数カウンタの値が0でなければ(ステップS456:NO)、特別図柄時短回数カウンタの値を1減算(−1)し(ステップS457)、主制御CPU600aは、再度、特別図柄時短回数カウンタの値が0か否かを確認する(ステップS458)。そして、特別図柄時短回数カウンタの値が0であれば(ステップS458:YES)、普通図柄時短フラグに00Hを設定すると共に、普通図柄確変フラグに00Hを設定し、さらに、普通図柄時短フラグに00Hを設定する(ステップS459)。
上記ステップS459の処理を終えた後、又は、特別図柄時短回数カウンタの値が0(ステップS456:YES)、あるいは、特別図柄時短回数カウンタの値が0でなければ(ステップS458:NO)、主制御CPU600aは、特別図柄確変回数カウンタの値が0か否かを確認する(ステップS460)。特別図柄確変回数カウンタの値が0であれば(ステップS460:YES)、主制御CPU600aは、特別図柄確認時間中処理を終了する。
一方、特別図柄確変回数カウンタの値が0でなければ(ステップS460:NO)、主制御CPU600aは、特別図柄確変回数カウンタの値を1減算(−1)し(ステップS461)、再度、特別図柄確変回数カウンタの値が0か否かを確認する(ステップS462)。特別図柄確変回数カウンタの値が0でなければ(ステップS462:NO)、主制御CPU600aは、特別図柄確認時間中処理を終了する。
一方、特別図柄確変回数カウンタの値が0であれば(ステップS462:YES)、主制御CPU600aは、普通図柄時短フラグに00Hを設定し、普通図柄確変フラグに00Hを設定し、特別図柄時短フラグに00Hを設定し、特別図柄確変フラグに00Hを設定する処理を行い(ステップS463)、特別図柄確認時間中処理を終了する。
<主制御:特別図柄処理の説明>
かくして、図30に示す上記ステップS205、ステップS206、ステップS207のいずれかの処理を終えると、主制御CPU600aは、特別図柄の表示データの更新を行った後(ステップS208)、特別図柄処理を終える。
<主制御:LED管理処理の説明>
次に、図38を参照して、上記LED管理処理について詳細に説明する。
主制御CPU600aは、LEDコモンポート、LEDデータポートをクリアし(ステップS500)、LED出力カウンタを更新する(ステップS501)。
次いで、主制御CPU600aは、LED出力カウンタと選択されたLEDコモン出力選択テーブルより出力データを選択する(ステップS502)。このLEDコモン出力選択テーブルは、図39に示すように、プログラムされている。
具体的には、LEDデータが出力される先が特別図柄1表示装置50a(図5参照)であることと、特別図柄1表示装置50a(図5参照)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。
DB 0001 0001B
DW D_MKLED0,D_MKLED0
次いで、LEDデータが出力される先が特別図柄2表示装置50b(図5参照)であることと、特別図柄2表示装置50b(図5参照)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。
DB 0010 0010B
DW D_MKLED1,D_MKLED1
次いで、LEDデータが出力される先が7セグメント表示装置52a(図5参照)であることと、7セグメント表示装置52a(図5参照)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。
DB 0100 0100B
DW D_MKLED2A,D_MKLED2B
次いで、LEDデータが出力される先が普通図柄表示装置51(図5参照)、右打ち報知ランプ52c(図5参照)、ラウンドランプ52b(図5参照)、であることと、普通図柄表示装置51(図5参照)、右打ち報知ランプ52c(図5参照)、ラウンドランプ52b(図5参照)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。
DB 1000 1000B
DW D_MKLED3,D_MKLED3
ところで、出力するコモンデータは、8ビット信号のうち、前段の4ビットが第1LEDダイナミック点灯コモンデータ信号611a2(図8参照)より出力され(図39では、コモン00〜04と記載)、後段の4ビットが第2LEDダイナミック点灯コモンデータ信号611a3(図8参照)より出力される(図39では、コモン10〜13と記載)。しかして、本実施形態においては、コモンデータを同じポートから出力するようにしている。これは、同じポートから別々のコモンデータを出力しようとすると、片方のコモンデータを反映させて出力しないと、正常にLEDが点灯しなくなるためである。
すなわち、第1LEDダイナミック点灯コモンデータ信号611a2の第1LEDダイナミック点灯コモンデータ第1信号611a2a(図8参照)から「1」を出力するために、「0000 0001」をポートから出力した後、第2LEDダイナミック点灯コモンデータ信号611a3の第2LEDダイナミック点灯コモンデータ第1信号611a3a(図8参照)から「1」を出力するために、「0001 0000」をポートから出力すると、第1LEDダイナミック点灯コモンデータ信号611a2の第1LEDダイナミック点灯コモンデータ第1信号611a2a(図8参照)のデータはクリアされることとなる。これにより、正常にLEDが点灯しなくなるため、新たに、第1LEDダイナミック点灯コモンデータ信号611a2の第1LEDダイナミック点灯コモンデータ第1信号611a2a(図8参照)にデータを出力しなければならなくなる。
そこで、本実施形態においては、予め、コモンデータを共に出力しておいて、後述する使用領域外LED更新処理(図41参照)にて、後から、計測・設定表示装置610にLEDデータを出力するようにしている。このようにしても、見た目上は、問題なくLEDが点灯することとなる。
かくして、主制御CPU600aは、LED出力カウンタと選択されたLEDコモン出力選択テーブルより出力データを選択した後(ステップS502)、LEDコモンポートにデータを出力する(ステップS503)。例えば、ステップS502にて、LEDデータが出力される先が特別図柄1表示装置50a(図5参照)であることが選択されれば、ステップS503にて、「0001 0001」が出力されることとなる。これにより、第1LEDダイナミック点灯コモンデータ信号611a2の第1LEDダイナミック点灯コモンデータ第1信号611a2a(図8参照)、及び、第2LEDダイナミック点灯コモンデータ信号611a3の第2LEDダイナミック点灯コモンデータ第2信号611a3a(図8参照)から「1」が出力されることとなる。
次いで、主制御CPU600aは、選択されたLEDコモンの出力先LEDデータを作成する(ステップS504)。例えば、ステップS502にて、LEDデータが出力される先が特別図柄1表示装置50a(図5参照)であることが選択されれば、特別図柄1表示装置50a(図5参照)に表示させるLEDデータを作成することとなる。
次いで、主制御CPU600aは、選択されたLEDデータポートに上記作成したLEDデータを出力するようにする(ステップS505)。これにより、第1LEDダイナミック点灯データ信号611b2(図8参照)から作成されたデータが出力されることとなる。例えば、特別図柄1表示装置50a(図5参照)に表示させるLEDデータであれば、特別図柄1表示装置50a(図5参照)にそのデータが出力され、もって、特別図柄1表示装置50a(図5参照)にその出力されたデータが表示されることとなる。
<主制御:使用領域外処理の説明>
次に、図40を参照して、上記使用領域外処理について詳細に説明する。なお、この処理は、主制御ROM600bの計測用プログラム領域600be(図9(b)参照)に格納されている賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムを用いて行われる。
主制御CPU600aは、全レジスタを、主制御RAM600cの計測用スタック領域600cg(図9(a)参照)へ退避させ(ステップS550)、通常処理時のスタックポインタを、主制御RAM600cの計測用スタック領域600cg(図9(a)参照)へ退避させる(ステップS551)。
次いで、主制御CPU600aは、主制御CPU600a内部のスタックポインタに使用領域外用のスタックポインタアドレスをセットする(ステップS552)。
次いで、主制御CPU600aは、賞球入賞数管理処理2を行う(ステップS553)。この賞球入賞数管理処理2では、図25に示すステップS45の賞球入賞数管理処理1にて算出した性能表示の値を計測・設定表示装置610(図8参照)に表示させる処理を行う。
次いで、主制御CPU600aは、使用領域外LED更新処理を行う(ステップS554)。
<主制御:使用領域外LED更新処理の説明>
この処理について、図41を用いて詳しく説明すると、主制御CPU600aは、まず、LED出力カウンタ値を取得する(ステップS600)。
次いで、主制御CPU600aは、取得したLED出力カウンタ値から、LEDコモンに対応したLEDデータを選択する(ステップS601)。
次いで、主制御CPU600aは、選択されたLEDポートに、LEDデータを出力する(ステップS602)。これにより、第2LEDダイナミック点灯データ信号611c2よりLEDデータが出力され、もって、計測・設定表示装置610に、低確時に幾らの賞球がされたかの比率等に関する内容(性能表示)が表示されることとなる。
すなわち、図38のLED管理処理のステップS503にて、既に、LEDコモンポートからデータが出力されているため、LEDデータポートにデータを出力すれば良い状態となっている。
計測・設定表示装置610のそれぞれの7セグメントにデータを表示させるにあたっては、ワークアドレスが順番に並んだ以下に示すテーブルからLEDデータを取得する。
D_LEDDATA:
DW W_7SEG0 ←7セグメントの1桁目のデータ(第1の計測・設定表示装置610A)
DW W_7SEG1 ←7セグメントの2桁目のデータ(第2の計測・設定表示装置610B)
DW W_7SEG2 ←7セグメントの3桁目のデータ(第3の計測・設定表示装置610C)
DW W_7SEG3 ←7セグメントの4桁目のデータ(第4の計測・設定表示装置610D)
ここで、LED出力カウンタ値が、そのままコモン番号に対応しているため、上記テーブルから、LED出力カウンタ値に対応したLEDデータを取得し、もって、取得したLEDデータがLEDデータポートから出力されることとなる。これにより、計測・設定表示装置610に、低確時に幾らの賞球がされたかの比率等に関する内容(性能表示)が表示されることとなる。
<主制御:使用領域外処理の説明>
かくして、主制御CPU600aは、上記のような処理を経て、使用領域外LED更新処理(ステップS554)を終えると、特別図柄1始動口スイッチ44a(図7参照)、特別図柄2始動口スイッチ45a(図7参照)、普通図柄始動口スイッチ47a(図7参照)、右上一般入賞口スイッチ48a1(図7参照),左上一般入賞口スイッチ48b1(図7参照),左中一般入賞口スイッチ48c1(図7参照),左下一般入賞口スイッチ48d1(図7参照)、アウト口スイッチ49a(図7参照)、大入賞口スイッチ46c(図7参照)、遊技球検出スイッチUR1a(図6参照)等の使用領域外スイッチ検出情報を、主制御RAM600cの計測用RAM領域600ce(図9(a)参照)に格納する(ステップS555)。
次いで、主制御CPU600aは、遊技機の検定試験(試射試験)において、遊技に関する各種信号を試験機に出力する際に用いられる試射試験信号を更新する処理を行い(ステップS556)、主制御RAM600cの計測用スタック領域600cg(図9(a)参照)へ退避させた通常処理時のスタックポインタを復帰させ(ステップS557)、全レジスタを復帰させる(ステップS558)。
しかして、本実施形態によれば、計測・設定表示装置610は、低確時に幾らの賞球がされたかの比率等に関する内容(性能表示)の表示、及び、遊技者に有利な特別遊技状態を発生させる確率の設定内容の表示を兼用できるようになっている。さらに、計測・設定表示装置610は、4個の7セグメント(第1の計測・設定表示装置610A,第2の計測・設定表示装置610B,第3の計測・設定表示装置610C,第4の計測・設定表示装置610D)から構成され、低確時に幾らの賞球がされたかの比率等に関する内容(性能表示)が表示される際は、4個の7セグメントが使用され、遊技者に有利な特別遊技状態を発生させる確率の設定内容が表示される際は、1個の7セグメントが使用されるようになっている。なお、図26に示す設定切替処理、図40に示す使用領域外LED更新処理に示すように、何れもダイナミック点灯方式で点灯されるようになっているが、低確時に幾らの賞球がされたかの比率等に関する内容(性能表示)が表示される際は、コモンデータを切り替えて4個の7セグメント(第1の計測・設定表示装置610A,第2の計測・設定表示装置610B,第3の計測・設定表示装置610C,第4の計測・設定表示装置610D)が点灯されるのに対し、図26に示す設定切替処理においては、1個の7セグメント(第1の計測・設定表示装置610A)しか使用しないため、コモンデータを切り替えることなく7セグメント(第1の計測・設定表示装置610A)を点灯するようにしている。
またさらに、遊技者に有利な特別遊技状態を発生させる確率の設定変更時は、図9(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されている抽選処理等の遊技処理時に使用されるプログラムが使用されて、計測・設定表示装置610にデータが出力される(図26に示す設定切替処理参照)。一方、低確時に幾らの賞球がされたかの比率等に関する内容(性能表示)が表示される際は、図9(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されている賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムが使用されて、計測・設定表示装置610にデータが出力されることとなる(図40に示す使用領域外LED更新処理参照)。
かくして、従来においては、プログラム容量が限られている状況で、処理が複雑化し、プログラム容量を圧迫するおそれがあったが、本実施形態のような処理をすれば、限られたプログラム容量を効率的に使用することができる。なお、データを出力するにあたって、特別図柄1表示装置50a等に使用されるコモンデータと、計測・設定表示装置610に使用されるコモンデータは異なるものの、1つのポートから出力するようにしている。この際、遊技者に有利な特別遊技状態を発生させる確率の設定変更時は、計測・設定表示装置610にされるコモンデータのみ出力するものの(図26に示すステップS58〜ステップS60参照)、通常時は、特別図柄1表示装置50a等に使用されるコモンデータと、計測・設定表示装置610に使用されるコモンデータは同じタイミング出力するようしている(図39参照)。これにより、限られたプログラム容量をさらに効率的に使用することができる。
ところで、本実施形態においては、1つのポートから、別々のコモンデータを出力するようにしたが、別々のポートから出力するようにしても良い。この場合でも、上記説明したLED出力カウンタを共通で使用すれば、プログラム容量を削減できることとなる。
この際、図8に示すLEDドライバ611aとは別のLEDドライバが別途必要となる。また、計測・設定表示装置610のそれぞれの7セグメントにデータを表示させるにあたっては、図42に示すようなプログラムを用いてデータを表示させることとなる。すなわち、図42に示すプログラムでは、計測・設定表示装置610のそれぞれの7セグメントにデータを表示させるにあたってのコモンデータと出力するLEDデータとが格納されている。
具体的には、LEDデータが出力される先が7セグメントの1桁目のデータ(第1の計測・設定表示装置610A)であることと、その1桁目のデータ(第1の計測・設定表示装置610A)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。
DB 0000 0001B
DW W_7SEG0
次いで、LEDデータが出力される先が7セグメントの2桁目のデータ(第2の計測・設定表示装置610B)であることと、その2桁目のデータ(第2の計測・設定表示装置610B)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。
DB 0000 0010B
DW W_7SEG1
次いで、LEDデータが出力される先が7セグメントの3桁目のデータ(第3の計測・設定表示装置610C)であることと、その3桁目のデータ(第3の計測・設定表示装置610C)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。
DB 0000 0100B
DW W_7SEG2
次いで、LEDデータが出力される先が7セグメントの4桁目のデータ(第4の計測・設定表示装置610D)であることと、その4桁目のデータ(第4の計測・設定表示装置610D)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。
DB 0000 1000B
DW W_7SEG3
かくして、このようなプログラムを用いれば、別々のポートからコモンデータを出力するようにしても、計測・設定表示装置610のそれぞれの7セグメントにデータを表示させることが可能となる。
<サブ制御基板の処理内容>
次に、上記図17〜図19、図21に示す演出の処理方法について、図44〜図48に示すサブ制御基板80の処理内容(プログラムの概要)を参照して具体的に説明する。
まず、パチンコ遊技機1に電源が投入されると、電源基板130(図7参照)から各制御基板に電源が投入された旨の電源投入信号が送られる。そしてその信号を受けて、サブ制御CPU800aは、図44に示すメイン処理を行う。
<サブ制御:メイン処理>
図44に示すように、まず、サブ制御CPU800aが、内部に設けられているレジスタを初期化すると共に、入出力ポートの入出力方向を設定する。そしてさらに、出力方向に設定された出力ポートから送信されるデータがシリアル転送となるように設定する(ステップS1000)。なお、図22に示すように、DMAコントローラ800a1(図7参照)を用いて、遊技ROM805の音データ記憶領域805cに格納されている音データを、音RAM802の所定の記憶領域802aに転送する際、サブ制御CPU800aは、DMAコントローラ800a1(図7参照)に、遊技ROM805の音データ記憶領域805cに格納されている音データを、音RAM802の所定の記憶領域802aに転送するよう指示する。これにより、DMAコントローラ800a1は、遊技ROM805の音データ記憶領域805cに格納されている音データを、音RAM802の所定の記憶領域802aに転送することとなる。なお、この際、サブ制御CPU800aは、DMAコントローラ800a1の作動に関係なく、以下の処理を続行することとなる。
次いで、サブ制御CPU800aは、上記主制御基板60(図7参照)から受信する演出制御コマンドDI_CMDを格納するサブ制御RAM800c内のメモリ領域を初期化する(ステップS1001)。そして、サブ制御CPU800aは、上記主制御基板60からの割込み信号を受信する入力ポートの割込み許可設定処理を行う(ステップS1002)。
次いで、サブ制御CPU800aは、作業領域、スタック領域として使用するサブ制御RAM800c内のメモリ領域を初期化し(ステップS1003)、音LSI801(図7参照)に初期化指令を行う。これにより、音LSI801は、その内部に設けられているレジスタを初期化する(ステップS1004)。
次いで、サブ制御CPU800aは、上・左・右・左上可動役物43a〜43d(図5参照)を動作させるモータ(図示せず)に異常が発生しているか否か、そのモータ(図示せず)を動作させるモータデータが格納されるサブ制御RAM800c内のメモリ領域を確認する。異常データが格納されている場合は、サブ制御CPU800aは、当該モータを原点位置に戻す指令を行う。これにより、上・左・右・左上可動役物43a〜43dは初期位置に戻ることとなる(ステップS1005)。
次いで、サブ制御CPU800aは、その内部に設けられている一定周期のパルス出力を作成する機能や時間計測の機能等を有するCTC(Counter Timer Circuit)の設定を行う。すなわち、サブ制御CPU800aは、1ms毎に定期的にタイマ割込みがかかるように上記CTCの時間定数レジスタを設定する(ステップS1006)。
次いで、サブ制御CPU800aは、サブ制御RAM800cの作業領域を対象とする8ビット加算演算であるチェックサム演算を行い(ステップS1007)、そのチェックサム演算値と、後述するメモリバックアップ(ステップS1015参照)にて算出しサブ制御RAM800c内に格納されているチェックサム演算値とを比較し、一致しているか否かの確認を行う(ステップS1008)。一致していなければ(ステップS1008:NO)、サブ制御RAM800c内の全領域を全てクリアする処理を行う(ステップS1009)。
一方、一致(ステップS1008:YES)、あるいは、上記ステップS1009の処理を終えた後、サブ制御CPU800aは、図示しないウオッチドックタイマ機能を解除し(ステップS1010)、サブ制御CPU800aやVDP803等のハードウェアのリフレッシュを実行する(ステップS1011)。
次いで、サブ制御CPU800aは、上記サブ制御RAM800c内のメモリ領域に格納されている上記主制御基板60(図7参照)から受信する演出制御コマンドDI_CMDを読み出し、その内容に応じた演出パターンを、サブ制御ROM800b内に予め格納しておいた多数の演出パターンの中から抽選により決定する(ステップS1012)。この際、客待ちデモコマンドを備えておらず、図柄停止コマンドを契機として、遊技状態が客待ちデモ状態へ移行するような場合、図柄停止コマンドを受信すると、タイマが起動し、所定時間カウントすることとなる。
次いで、サブ制御CPU800aは、後述するタイマ割込み処理にて取得した設定ボタン15又は演出ボタン装置13の入力内容を解析する処理を行う(ステップS1013)。具体的には、設定ボタン15又は演出ボタン装置13が、遊技者によって、押圧された瞬間か、放された瞬間か、あるいは、押圧されたままの状態か等の解析を行う。
次いで、サブ制御CPU800aは、上記ステップS1012にて抽選により決定した演出パターンに基づいて、上・左・右・左上可動役物43a〜43d(図5参照)の動作制御や、装飾ランプ基板90(図7参照)に搭載されているLEDランプ等の装飾ランプの点灯又は消灯の制御や、スピーカ17の制御や、液晶表示装置41に表示される画像の制御を実行する(ステップS1014)。なお、具体的な処理方法については、後述することとする。
次いで、サブ制御CPU800aは、サブ制御RAM800cの作業領域を対象とする8ビット加算演算であるチェックサム演算を行い、そのチェックサム演算値を、サブ制御RAM800c内に格納するメモリバックアップ処理を行う(ステップS1015)。
次いで、サブ制御CPU800aは、VDP803からサブ制御CPU800aに対してVSYNC割込み信号が送信されてきたか否かの確認を行う(ステップS1016)。VSYNC割込み信号が送信されて来なければ(ステップS1016:NO)、サブ制御CPU800aは、VSYNC割込み信号が送信されてくるまで、ステップS1016の処理を繰り返し実行し、VSYNC割込み信号が送信されてくると(ステップS1016:YES)、再度ステップS1007の処理に戻り、ステップS1007〜S1016の処理を繰り返すこととなる。
<サブ制御:データ解析処理>
続いて、図45を参照して、メイン処理のステップS1014のデータ解析処理にて詳述する。まず、サブ制御CPU800aは、ステップS1012にて抽選により決定した演出パターンに対応する演出シナリオデータPS_DATA(図10(a)参照)を演出シナリオテーブルPR_TBLより選択し、その選択した演出シナリオデータPS_DATAに格納されている1レイヤデータPS_DATA1に格納されている各種データ(フレームデータPS_DATA10,制御コードデータPS_DATA11,座標データPS_DATA12,画素計算データPS_DATA13,拡縮データPS_DATA14)に基づき、VDP803に液晶表示装置41に表示させる画像データを生成するためのコマンドリストを生成する(ステップS1050)。
次いで、サブ制御CPU800aは、上記選択された演出シナリオデータPS_DATAに格納されているボタンデータPS_DATA113(図10(c)参照)に演出ボタン装置13の押下演出が有効である旨のデータ又は設定ボタン15の連打演出が有効である旨のデータが格納されている場合、そのデータをサブ制御RAM800c内のメモリ領域に格納する。
そしてさらに、サブ制御CPU800aは、上記選択された演出シナリオデータPS_DATAに格納されているランプデータPS_DATA17(図10(b)参照)のデータ内容に基づき、光に関する制御信号を生成し、サブ制御RAM800c内に格納する処理を行う。
また、サブ制御CPU800aは、上記選択された演出シナリオデータPS_DATAに格納されている可動役物データPS_DATA16(図10(b)参照)のデータ内容に基づき、上・左・右・左上可動役物43a〜43dの動作内容を決定し、その決定した動作内容に応じた可動役物装置43のモータ(図示せず)のモータデータを生成する。
またさらに、サブ制御CPU800aは、上記選択された演出シナリオデータPS_DATAに格納されている音データPS_DATA15(図10(b)参照)のデータ内容に基づき、音に関する制御信号を生成する(ステップS1051)。これにより、音LSI801(図7参照)は、その制御信号に応じた音を、図20、図23に示す遊技ROM805の音データ記憶領域805cから読み出す。これにより、音LSI801は、その読み出した音データに基づく処理を行い、音源データとしてスピーカ17へ出力する処理を行う。なお、DMAコントローラ800a1(図7参照)を用いて、遊技ROM805の音データ記憶領域805cに格納されている音データを、音RAM802の所定の記憶領域802aに転送した場合は、図22に示す音RAM802の所定の記憶領域802aより、上記制御信号に応じたBGMを、読み出すこととなる。
具体的内容を示すと、図17(b)に示すタイミングT1時、演出制御コマンドDI_CMDとして、始動保留球数が1個から0個に減算される始動保留減算コマンド(例えば、B001H)、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)を受信すると、装飾図柄(特別図柄の)変動時間(例えば、120秒等)に係らず、BGMをループ再生することとなる。
そしてさらに、図17(b)に示すタイミングT2時、演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)を停止させる図柄停止コマンド(例えば、BF01H)を受信すると、音LSI801は、ループ再生されているBGMを停止させず、そのままループ再生することとなる。
かくして、このようにすれば、図17(b)に示すタイミングT3時、客待ちデモコマンドが受信できなかった(欠落した)としても、BGMがループ再生され続けることとなる。それゆえ、BGMがループ再生され続けることにより、液晶表示装置41に「コマンド受信エラー」のような表示をせずとも、エラーの仕様を理解している遊技場の従業員等に、コマンド受信エラーが発生したことを知らせることが可能となる。
また、客待ちデモコマンドが受信できず、BGMがループ再生され続けている状態で、図17(b)に示すタイミングT4時、演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)を受信すると、音LSI801は、新たなBGMを再生するのではなく、ループ再生しているBGMをそのまま再生するようにする。これにより、エラー状態から通常遊技状態に移行した際、遊技者は、違和感なく遊技をすることができる。
なお、図柄停止コマンドを契機として、遊技状態が客待ちデモ状態へ移行するような場合であっても、同様の処理を行うこととなる。
かくして、サブ制御CPU800aは、図44に示すステップS1012にて抽選により決定した演出パターンに基づくデータを全て生成し終えるまで(ステップS1052:NO)、上記ステップS1050及びステップS1051の処理を繰り返し行い、上記データを全て生成し終えると(ステップS1052:YES)、ステップS1053の処理に進む。
次いで、サブ制御CPU800aは、上記ステップS1051にてサブ制御RAM800c内に格納した内容及び図44に示すステップS1013にて処理した設定ボタン15又は演出ボタン装置13の入力内容に基づき、ボタン有効時処理を行う(ステップS1053)。
<サブ制御:コマンド受信割込み処理>
続いて、図46を参照して、このようなメイン処理の実行中に、主制御基板60より演出制御コマンドDI_CMD及び割込み信号が送信されてきた際の処理について説明する。
図46に示すように、サブ制御CPU800aは、上記割込み信号を受信した際、各レジスタの内容をサブ制御RAM800c内のスタック領域に退避させる退避処理を実行する(ステップS1100)。その後、サブ制御CPU800aは、演出制御コマンドDI_CMDを受信した入力ポートのレジスタを読み出し(ステップS1101)、サブ制御RAM800c内のコマンド送受信用メモリ領域のアドレス番地を示すポインタを算出する(ステップS1102)。
そしてその後、サブ制御CPU800aは、再度、演出制御コマンドDI_CMDを受信した入力ポートのレジスタを読み出し(ステップS1103)、ステップS1101にて読み出した値とステップS1103にて読み出した値が一致しているか否かを確認する。一致していなければ(ステップS1104:NO)、ステップS1107に進み、一致していれば(ステップS1104:YES)、上記算出したポインタに対応するアドレス番地に、主制御基板60より受信した演出制御コマンドDI_CMDを格納する(ステップS1105)。なお、この格納された演出制御コマンドDI_CMDが、図44に示すステップS1012の処理の際、サブ制御CPU800aに読み出されることとなる。
次いで、サブ制御CPU800aは、サブ制御RAM800c内のコマンド送受信用メモリ領域のアドレス番地を示すポインタを更新し(ステップS1106)、ステップS1100の処理で退避しておいたレジスタを復帰させる(ステップS1107)。これにより、図44に示すメイン処理に戻ることとなる。
<サブ制御:タイマ割込み処理>
続いて、図47を参照して、メイン処理のステップS1006(図44参照)の処理にて設定した、1ms毎のタイマ割込みが発生した際の処理について説明する。
図47に示すように、サブ制御CPU800aは、1ms毎のタイマ割込みが発生した際、各レジスタの内容をサブ制御RAM800c内のスタック領域に退避させる退避処理を実行する(ステップS1150)。
次いで、サブ制御CPU800aは、設定ボタン15のデータや演出ボタン装置13のデータや可動役物装置43のモータデータ等を2度取得し(ステップS1151)、その2度取得したデータが一致しているか否かを確認する(ステップS1152)。データが一致していなければ(ステップS1152:NO)、サブ制御CPU800aは、データが一致するまでステップS1151の処理を繰り返し、一致していれば(ステップS1152:YES)、一致したデータをサブ制御RAM800c内に格納する(ステップS1153)。
次いで、サブ制御CPU800aは、設定ボタン15又は演出ボタン装置13からの信号を受信する(ステップS1154)。この受信した信号が、図44に示すステップS1013のボタン解析処理にて解析されることとなる。
次いで、サブ制御CPU800aは、図45に示すステップS1051にてサブ制御RAM800c内に記憶した光に関する制御信号を装飾ランプ基板90(図7参照)に送信する(ステップS1155)。なお、識別ランプ装置50A(図5参照)を点灯又は消灯させるのに必要な制御信号も送信されることとなる。
ところで、装飾ランプ基板90(図7参照)に搭載されているLEDランプ等の装飾ランプをそれぞれ点灯又は消灯させるにあたって具体的説明すると、図17(b)に示すタイミングT1時、演出制御コマンドDI_CMDとして、始動保留球数が1個から0個に減算される始動保留減算コマンド(例えば、B001H)、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)を受信すると、装飾図柄(特別図柄)の変動時間(例えば、120秒等)に係らず、変動用ランプ演出がループして実行されることとなる。
そしてさらに、図17(b)に示すタイミングT2時、演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)を停止させる図柄停止コマンド(例えば、BF01H)を受信すると、ループして実行されている変動用ランプ演出を停止させず、そのままループして実行することとなる。
かくして、このようにすれば、図17(b)に示すタイミングT3時、客待ちデモコマンドが受信できなかった(欠落した)としても、変動用ランプ演出がループして実行され続けることとなる。それゆえ、変動用ランプ演出がループして実行され続けることにより、液晶表示装置41に「コマンド受信エラー」のような表示をせずとも、エラーの仕様を理解している遊技場の従業員等に、コマンド受信エラーが発生したことを知らせることが可能となる。
ところで、ランプ演出としては、上記のような変動用ランプ演出をループして実行するものに代え、図17(c)に示すように、図柄停止用ランプ演出を実行しても良い。すなわち、図17(c)に示すタイミングT2時、演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)を停止させる図柄停止コマンド(例えば、BF01H)を受信した際、図柄停止用ランプ演出を実行することとなる。この図柄停止用ランプ演出は、ランプ演出効果を現出するLEDランプ等の装飾ランプの輝度を下げてループさせたパターンを継続するもの、又は、装飾ランプの点灯又は消灯を繰り返すパターンを継続させるものである。
しかして、このようにしても、図17(c)に示すタイミングT3時、客待ちデモコマンドが受信できなかった(欠落した)としても、図柄停止用ランプ演出が実行され続けることとなる。それゆえ、図柄停止用ランプ演出が実行され続けることにより、液晶表示装置41に「コマンド受信エラー」のような表示をせずとも、エラーの仕様を理解している遊技場の従業員等に、コマンド受信エラーが発生したことを知らせることが可能となる。
また、客待ちデモコマンドが受信できず、変動用ランプ演出がループして実行され続けている状態で、図17(b)に示すタイミングT4時、演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)を受信すると、ループして実行されている変動用ランプ演出を停止させず、そのままループして実行することとなる。これにより、エラー状態から通常遊技状態に移行した際、遊技者は、違和感なく遊技をすることができる。
なお、図柄停止コマンドを契機として、遊技状態が客待ちデモ状態へ移行するような場合であっても、同様の処理を行うこととなる。
次いで、サブ制御CPU800aは、ステップS1150の処理で退避しておいたレジスタを復帰させる(ステップS1156)。これにより、図44に示すメイン処理に戻ることとなる。
<サブ制御:コマンドリスト>
ここで、図45に示すステップS1050にて生成したコマンドリストについて、図48を用いて詳しく説明する。
このコマンドリストは、VDP803(コマンドパーサ8035)に対する指令を列記したコマンド列であるが、その記載内容や記載順序が、動画の描画を指示する場合と、静止画の描画を指示する場合とでやや相違する。
動画の描画をVDP803に指示する場合は、図48(a)の初期コマンドリストと、図48(b)の定常コマンドリストの構成となる。
図48(a)に示すように、サブ制御CPU800aは、先ず、フレームバッファ領域が設定されているDDR2SDRAM804のメモリ領域、並びに、DDR2SDRAM804の動画データを格納するメモリ領域の設定を行うコマンドを生成する(ステップS1200)。なお、フレームバッファ領域が設定されているDDR2SDRAM804のメモリ領域を設定するにあたっては、図10(c)に示す画像サイズデータPS_DATA112が参照される。すなわち、サイズが例えば640×320であれば、それに応じたメモリ領域が設定されることなる。
次いで、動画のデコードを指示するコマンドを生成する(ステップS1201)。具体的には、どの動画圧縮データをデコードするかの指示であり、該当する動画が格納されている図20、図23に示す遊技ROM805のCGデータ記憶領域805aのアドレス番地やその動画のフレーム数などと共に指示する。なお、該当する動画が格納されているCGデータ記憶領域805aのアドレス番地は、図10(c)に示すアドレスデータPS_DATA111が参照され、その動画のフレーム数は、図10(b)に示すフレームデータPS_DATA10が参照される。
次いで、終了処理用コマンドを記入して初期コマンドリストの生成を終える(ステップS1202)。
続いて、サブ制御CPU800aは、図48(b)に示す定常コマンドリストを生成する。
この定常コマンドリストは、図48(b)に示すように、動画の描画指示で構成されており、上記初期コマンドリストにおいて、デコードした動画データに関し、どのフレーム番号のデコードデータを、液晶表示装置41のどの座標位置に描画するかのコマンドを生成する(ステップS1203)。次いで、終了処理用コマンドを記入して定常コマンドリストの生成を終える(ステップS1204)。なお、この描画指示にあたってのコマンド生成は、図10(b)に示すフレームデータPS_DATA10,座標データPS_DATA12,画素計算データPS_DATA13,拡縮データPS_DATA14が参照される。
一方、静止画の描画をVDP803に指示する場合、図48(c)に示すとおり、サブ制御CPU800aは、先ず、フレームバッファ領域が設定されているDDR2SDRAM804のメモリ領域、並びに、静止画データを格納する内蔵VRAM8040のメモリ領域の設定を行うコマンドを生成する(ステップS1210)。なお、フレームバッファ領域が設定されているDDR2SDRAM804のメモリ領域を設定するにあたっては、図10(c)に示す画像サイズデータPS_DATA112が参照される。すなわち、サイズが例えば640×320であれば、それに応じたメモリ領域が設定されることなる。
次いで、静止画のデコードを指示するコマンドを生成する(ステップS1211)。具体的には、どの静止画圧縮データをデコードするかの指示であり、該当する静止画が格納されている図20、図23に示す遊技ROM805のCGデータ記憶領域805aのアドレス番地やデータサイズなどと共に指示する。なお、該当する静止画が格納されているCGデータ記憶領域805aのアドレス番地は、図10(c)に示すアドレスデータPS_DATA111が参照され、データサイズは、図10(c)に示す画像サイズデータPS_DATA112が参照される。
次いで、デコードされた静止画データを、液晶表示装置41のどの座標位置に、どのような態様(回転角度や縮小拡大等)で描画するかのコマンドを生成する(ステップS1212)。次いで、終了処理用コマンドを記入して静止画に関するコマンドリストの生成を終える(ステップS1213)。なお、この描画指示にあたってのコマンド生成は、図10(b)に示すフレームデータPS_DATA10,座標データPS_DATA12,画素計算データPS_DATA13,拡縮データPS_DATA14が参照される。
かくして、このような動画に関するコマンドリスト並びに静止画に関するコマンドリストは、VDP803(図11参照)に送信され、適宜処理された上で、液晶表示装置41に送信される。これにより、液晶表示装置41に所望の画像(例えば、図17〜図19)が表示されることとなる。
具体的には、図17(b)に示すタイミングT1時、演出制御コマンドDI_CMDとして、始動保留球数が1個から0個に減算される始動保留減算コマンド(例えば、B001H)、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)を受信すると、変動用映像が液晶表示装置41に表示されることとなる。
そしてさらに、図17(b)に示すタイミングT2時、演出制御コマンドDI_CMDとして、特別図柄を停止させる図柄停止コマンド(例えば、BF01H)を受信すると、装飾図柄(特別図柄)の変動が停止した映像が液晶表示装置41に表示されることとなる。なお、この装飾図柄(特別図柄)の変動が停止した映像は、液晶表示装置41に継続して表示されることとなる。
かくして、このようにすれば、図17(b)に示すタイミングT3時、客待ちデモコマンドが受信できなかった(欠落した)としても、装飾図柄(特別図柄)の変動が停止した映像が液晶表示装置41に継続して表示され続けることとなる。それゆえ、装飾図柄(特別図柄)の変動が停止した映像が表示され続けることにより、液晶表示装置41に「コマンド受信エラー」のような表示をせずとも、エラーの仕様を理解している遊技場の従業員等に、コマンド受信エラーが発生したことを知らせることが可能となる。
また、客待ちデモコマンドが受信できず、装飾図柄(特別図柄)の変動が停止した映像が表示され続けている状態で、図17(b)に示すタイミングT4時、演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)を受信すると、装飾図柄(特別図柄)の変動が停止した映像から装飾図柄(特別図柄)の変動が開始される変動用映像が液晶表示装置41に表示されることとなる。これにより、エラー状態から通常遊技状態に移行した際、遊技者は、違和感なく遊技をすることができる。
一方、客待ちデモコマンドを備えておらず、図柄停止コマンドを契機として、遊技状態が客待ちデモ状態へ移行するような場合、図18(b)に示すタイミングT10時、演出制御コマンドDI_CMDとして、始動保留球数が1個から0個に減算される始動保留減算コマンド(例えば、B001H)、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)を受信した際、変動用映像が液晶表示装置41に表示されることとなる。
この変動用映像は、装飾図柄(特別図柄)の変動が表示されているが、装飾図柄(特別図柄)の変動時間(例えば、120秒等)が決まっているため、決められた変動時間(例えば、120秒等)に達すると、装飾図柄(特別図柄)の変動は揺れ変動を行うこととなる。
この装飾図柄(特別図柄)の揺れ変動は、図柄停止コマンド(例えば、BF01H)をサブ制御CPU800aが受信することにより、停止することとなる。しかしながら、図柄停止コマンド(例えば、BF01H)がサブ制御CPU800aにて受信できなかったことを想定して、この装飾図柄(特別図柄)の揺れ変動は、液晶表示装置41にループ状態で表示されることとなる。
かくして、このようにすれば、図18(b)に示すタイミングT11時、図柄停止コマンドが受信できなかった(欠落した)としても、装飾図柄(特別図柄)が揺れ変動している映像が液晶表示装置41にループ状態で表示されることとなる。それゆえ、装飾図柄(特別図柄)が揺れ変動している映像がループ状態で表示され続けることにより、液晶表示装置41に「コマンド受信エラー」のような表示をせずとも、エラーの仕様を理解している遊技場の従業員等に、コマンド受信エラーが発生したことを知らせることが可能となる。
ところで、図柄停止デモコマンドが受信できず、装飾図柄(特別図柄)が揺れ変動している映像がループ状態で表示され続けている状態で、図18(b)に示すタイミングT13時、演出制御コマンドDI_CMDとして、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)を受信すると、変動用映像が液晶表示装置41に表示されることとなる。これにより、装飾図柄(特別図柄)が揺れ変動している映像がループ状態で表示され続けている状態ではあるが、遊技球の入賞を契機として、液晶表示装置41に変動用映像が表示されることによって、エラー状態から通常遊技状態に移行した際、遊技者は、違和感なく遊技をすることができる。
他方、始動保留球数が3個から2個に減算する始動保留減算コマンドである演出制御コマンドDI_CMDがサブ制御CPU800aにて受信できなかった場合、図19(a−5)に示すように、高速変動している装飾図柄(特別図柄)が表示(画像P4参照)され、始動保留球として3個保留されている状態がそのまま表示(画像P1参照)されることとなる。すなわち、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に実際に格納されている始動保留球数と、液晶表示装置41に表示されている始動保留球数とが不一致となる。
そして、図19(c−1)に示すように、始動保留球として3個保留されている状態がそのまま表示(画像P1参照)され続け、高速変動している装飾図柄(特別図柄)の変動が、図19(c−2)に示すように、停止(図示では、組合せ図柄が「123」のハズレの状態で停止)(画像P7参照)する。そしてその後、演出制御コマンドDI_CMDとして、始動保留球数が2個から1個に減算される始動保留減算コマンド(例えば、B002H)、装飾図柄(特別図柄)の変動パターン(例えば、ハズレパターン1)の変動パターンコマンド(例えば、A001H)、装飾図柄(特別図柄)の指定(例えば、ハズレ図柄)を行う図柄指定コマンド(例えば、BB01H)が受信すると、図19(c−3)に示すように、高速変動している装飾図柄(特別図柄)が表示(画像P8参照)される。そしてさらに、液晶表示装置41には、始動保留球として2個保留されている状態が瞬時に表示(画像P11参照)される。この際、始動保留球数が3個から1個消去されて2個になるという始動保留球数が減算されるアニメーションを液晶表示装置41に表示するのではなく、始動保留球として3個保留されている状態から2個保留されている状態へ瞬時に表示を切り替えることとなる。
そして、この状態から、始動保留球数が2個から1個消去されて1個になるという始動保留球数が減算されるアニメーションが開始され、図19(c−4)に示すように、液晶表示装置41には、始動保留球数が2個から1個消去されて1個になるという始動保留球数が減算されるアニメーションが表示(画像P12参照)され、もって、図19(c−5)に示すように、始動保留球として1個保留されている状態が表示(画像P13参照)されることとなる。これにより、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)に実際に格納されている始動保留球数と、表示されている始動保留球数とが一致することとなる
しかして、このようにすれば、遊技者は、始動保留球数が3個保留されている状態から2個保留されている状態へ瞬時に表示が切り替わり、2個から1個に減算される見慣れたアニメーションが表示されることとなるため、遊技者に大きな違和感を与えることなく、正常な始動保留球の数が表示されている始動保留表示に戻すことができる。これにより、遊技者が不自然に感じることなく、遊技を継続することができる。また、始動保留球数が3個から、2個消去されて1個になるという始動保留球数が減算されるアニメーションを別途用意する必要もなくなる。
ところで、このようなコマンドリストは、動画の描画を指示した後、静止画の描画を指示することとなる。それは、サブ制御CPU800aは、主制御CPU600aより送信されてくる演出制御コマンドDI_CMDによって、図10(a)に示す演出シナリオテーブルPR_TBLに格納されている複数の演出シナリオデータPS_DATAのうち、何れかの演出シナリオデータPS_DATAを選択し、その選択した演出シナリオデータPS_DATAに格納されている1レイヤデータPS_DATA1を優先順位の低いものから順に参照し、コマンドリストを生成するためである。すなわち、本実施形態によれば、この優先順位が低い位置に、図10(c)に示す制御テーブルCH_TBLより動画を示すデータPS_DATA110(図10(c)参照)が参照されるような制御コードデータPS_DATA11が格納され、優先順位が高い位置に、図10(c)に示す制御テーブルCH_TBLより静止画を示すデータPS_DATA110(図10(c)参照)が参照されるような制御コードデータPS_DATA11が格納されているため、動画の描画を指示するコマンドリストが先に生成され、その後、静止画の描画を指示するコマンドリストが生成することとなる。これにより、動画データが描画された後、その描画された動画データ上に静止画データが上書き描画されることとなり、もって、液晶表示装置41に表示される画像データが生成されることとなる。
しかして、このように、描画された動画データ上に静止画データが上書き描画されることによって、画像データが生成されることにより、圧縮画像であっても文字を鮮明に表示させることができる。
しかして、以上説明した本実施形態によれば、遊技に影響を及ぼす可能性があるままで、遊技が再開される可能性を低減させることができる。
また、本実施形態によれば、限られたプログラム容量を効率的に使用することができる。
さらに、本実施形態によれば、開発の効率を向上させることができる。
そしてさらに、本実施形態によれば、効率的に制御を行うことができると共に、開発によるデータ変更に柔軟に対応することができる。
なお、本実施形態においては、計測・設定表示装置610の表示方法として点灯表示している例しか示していないが、それに限らず、設定変更中、計測・設定表示装置610の表示を点滅表示させるようにしても良い。
また、本実施形態においては、音LSI801と、VDP803と、を別々に構成する例を示したが、ワンチップとして一体化させても良い。
また、本実施形態においては、DDR2SDRAM804内にフレームバッファ領域を設定するようにしたが、それに限らず、内蔵VRAM8040内にフレームバッファ領域を設定するようにしても良い。
また、本実施形態においては、サブワンチップマイコン800内にサブ制御CPU800aを設ける例を示したが、それに限らず、VDP803内にサブ制御CPU800aを設けるようにしても良い。
また、本実施形態においては、設定変更処理を、主制御のメイン処理にて行う例を示したが、それに限らず、主制御のタイマ割込み処理にて行うようにしても良い。この点、図49〜図53を参照して具体的に説明する。なお、上記説明した主制御のメイン処理と、主制御のタイマ割込み処理と同一の処理については、同一の符号を付し、説明は省略することとする。
<主制御:他の実施形態に係るメイン処理の説明>
上記図24及び図25に示すメイン処理と異なる点を説明すると、図49に示すように、主制御CPU600aは、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)の作業領域の初期設定を行う(ステップS12A)。具体的には、電源異常確認カウンタに00Hをセットする。また、主制御CPU600aは、上部開閉扉7、下部開放扉8が開放されているか否かの扉開放信号、及び、主制御RAM600cの通常用RAM領域600ca(図9(a)参照)の作業領域に退避させたRAMクリアスイッチ620の信号、並びに、設定キースイッチ630の信号を取得し(ステップS17)、全てONになっているか否かを確認する(ステップS18)。全てONになっていれば(ステップS18:YES)、バックアップフラグをクリアし(ステップS1A)、システム動作ステータスに02Hをセットし(ステップS1B)た後、図50に示すステップS20の処理に進むこととなる。
一方、主制御CPU600aは、図50に示すように、上部開閉扉7、下部開放扉8が開放されているか否かの扉開放信号、及び、設定キースイッチ630の信号を取得し(ステップS30)、全てONになっているか否かを確認する(ステップS31)。全てONになっていれば(ステップS31:YES)、システム動作ステータスに01Hをセットし(ステップS1C)、ステップS40の処理に進むこととなる。
<主制御:他の実施形態に係るタイマ割込み処理の説明>
次に、図51を参照して、上述したメイン処理を中断させて、4ms毎に開始されるタイマ割込みプログラムについて説明する。上記図28に示すタイマ割込み処理と異なる点を説明すると、主制御CPU600aは、スイッチ入力管理処理(ステップS102)を終えた後、システム動作ステータスの値を確認する(ステップS100A)。
システム動作ステータスの値が「0」であれば(ステップS100A:=0)、主制御CPU600aは、ステップS103の処理に進む。
<主制御:他の実施形態に係るタイマ割込み処理:設定確認処理に関する説明>
一方、システム動作ステータスの値が「1」であれば(ステップS100A:=1)、主制御CPU600aは、サブ制御基板80に設定値を反映した設定値コマンド(演出制御コマンドDI_CMD)を送信する(ステップS100B)。なお、この設定値を反映した設定値コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、図示しない外部端子を介して、遊技場の遊技島管理に使用されるホールコンピュータ(図示せず)に出力されるセキュリティ信号をONに設定し(ステップS100C)、設定キースイッチ630がOFFか否かを確認する(ステップS100D)。設定キースイッチ630がOFFでなければ(ステップS100D:NO)、ステップS100Tの処理に進み、設定キースイッチ630がOFFであれば(ステップS100D:YES)、ステップS100Eの処理に進む。
一方、主制御CPU600aは、設定キースイッチ630がOFFであれば(ステップS100D:YES)、システム動作ステータスに00Hをセットし(ステップS100E)、図示しない外部端子を介して、遊技場の遊技島管理に使用されるホールコンピュータ(図示せず)に出力されるセキュリティ信号を出力するタイマを30秒(30s)に設定する(ステップS100F)。これにより、図示しない外部端子を介して、遊技場の遊技島管理に使用されるホールコンピュータ(図示せず)にセキュリティ信号が、30秒(30s)間、出力される。なお、主制御CPU600aは、ステップS100Fの処理後、ステップS100Tの処理に進むこととなる。
<主制御:他の実施形態に係るタイマ割込み処理:設定変更処理に関する説明>
他方、システム動作ステータスの値が「2」であれば(ステップS100A:=2)、サブ制御基板80に設定変更中であることを示す設定切替開始コマンド(演出制御コマンドDI_CMD)を送信する(ステップS100G)。なお、この設定変更中であることを示す設定切替開始コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、主制御RAM600c(図7参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値(例えば「1」〜「6」に対応した「00H」〜「05H」の設定値)を取得し、Wレジスタにセットする(ステップS100H)。
次いで、主制御CPU600aは、Wレジスタにセットした値と、遊技者に有利な特別遊技状態を発生させる確率の設定最大値(例えば「6」に対応した「05H」)を比較する(ステップS100I)。そして、主制御CPU600aは、Wレジスタにセットした値が遊技者に有利な特別遊技状態を発生させる確率の設定最大値(例えば「6」に対応した「05H」)よりも大きければ(ステップS100J:YES)、異常値であると判断し、Wレジスタに00Hをセットする(ステップS100K)。
一方、Wレジスタにセットした値が遊技者に有利な特別遊技状態を発生させる確率の設定最大値(例えば「6」に対応した「05H」)よりも小さければ(ステップS100J:NO)、正常値であると判断し、図示しない外部端子を介して、遊技場の遊技島管理に使用されるホールコンピュータ(図示せず)に出力されるセキュリティ信号をONに設定し、図示しない外部端子を介して、ホールコンピュータ(図示せず)に出力する(ステップS100L)。
次いで、主制御CPU600aは、Wレジスタの値を、主制御RAM600c(図7参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値(例えば「1」〜「6」に対応した「00H」〜「05H」の設定値)に上書きして格納する(ステップS100M)。
次いで、主制御CPU600aは、設定キースイッチ630を確認し(ステップS100N)、OFFであれば(ステップS100N:YES)、ステップS100Qの処理に進み、ONであれば(ステップS100M:NO)、RAMクリアスイッチ620を確認する(ステップS100O)。RAMクリアスイッチ620がONであれば(ステップS100O:YES)、Wレジスタの値をインクリメント(+1)し(ステップS100P)、ステップS100Iの処理に戻る。
一方、RAMクリアスイッチ620がOFFであれば(ステップS100O:NO)、ステップS100Tの処理に進む。
かくして、設定キースイッチ630がOFFされるまで、上記処理を繰り返し行い、設定キースイッチ630がOFFされると、設定を確定させる処理に進む。すなわち、主制御CPU600aは、設定確定表示をLEDデータポートに出力する(ステップS100Q)。これにより、図8に示す第2LEDダイナミック点灯データ信号611c2から、設定確定表示を示す値が出力され、もって、図8に示す、計測・設定表示装置610の第1の計測・設定表示装置610Aの7セグメントの右下側にあるドットが点灯し、設定内容が確定したことが表示されるようになる。
次いで、主制御CPU600aは、サブ制御基板80に設定値を反映した設定切替終了コマンド(演出制御コマンドDI_CMD)を送信する(ステップS100R)。なお、この設定値を反映した設定切替終了コマンド(演出制御コマンドDI_CMD)送信処理は、CALL_S命令でコールして処理されることとなる。
次いで、主制御CPU600aは、システム動作ステータスに00Hをセットし(ステップS100S)、LED管理処理を行う(ステップS100T)。
<主制御:他の実施形態に係るタイマ割込み処理:LED処理に関する説明>
このLED管理処理について、図52を参照して具体的に説明する。主制御CPU600aは、LEDコモンポート、LEDデータポートをクリアし(ステップS500A)、LED出力カウンタを更新する(ステップS501A)。
次いで、主制御CPU600aは、システム動作ステータスの値を確認する(ステップS502A)。システム動作ステータスの値が「0」であれば(ステップS502A:=0)、LEDコモン出力選択テーブル0を選択し(ステップS503A)、LEDデータポート0を選択する(ステップS504A)。このLEDコモン出力選択テーブル0は、図53(a)に示すように、プログラムされている。
具体的には、LEDデータが出力される先が特別図柄1表示装置50a(図5参照)であることと、特別図柄1表示装置50a(図5参照)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。
DB 0001 0001B
DW D_MKLED0,D_MKLED0
次いで、LEDデータが出力される先が特別図柄2表示装置50b(図5参照)であることと、特別図柄2表示装置50b(図5参照)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。
DB 0010 0010B
DW D_MKLED1,D_MKLED1
次いで、LEDデータが出力される先が7セグメント表示装置52a(図5参照)であることと、7セグメント表示装置52a(図5参照)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。
DB 0100 0100B
DW D_MKLED2A,D_MKLED2B
次いで、LEDデータが出力される先が普通図柄表示装置51(図5参照)、右打ち報知ランプ52c(図5参照)、ラウンドランプ52b(図5参照)、であることと、普通図柄表示装置51(図5参照)、右打ち報知ランプ52c(図5参照)、ラウンドランプ52b(図5参照)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。
DB 1000 1000B
DW D_MKLED3,D_MKLED3
ところで、出力するコモンデータは、8ビット信号のうち、前段の4ビットが第1LEDダイナミック点灯コモンデータ信号611a2(図8参照)より出力され(図53(a)では、コモン00〜04と記載)、後段の4ビットが第2LEDダイナミック点灯コモンデータ信号611a3(図8参照)より出力される(図53(a)では、コモン10〜13と記載)。しかして、本実施形態においては、コモンデータを同じポートから出力するようにしている。これは、同じポートから別々のコモンデータを出力しようとすると、片方のコモンデータを反映させて出力しないと、正常にLEDが点灯しなくなるためである。
すなわち、第1LEDダイナミック点灯コモンデータ信号611a2の第1LEDダイナミック点灯コモンデータ第1信号611a2a(図8参照)から「1」を出力するために、「0000 0001」をポートから出力した後、第2LEDダイナミック点灯コモンデータ信号611a3の第2LEDダイナミック点灯コモンデータ第1信号611a3a(図8参照)から「1」を出力するために、「0001 0000」をポートから出力すると、第1LEDダイナミック点灯コモンデータ信号611a2の第1LEDダイナミック点灯コモンデータ第1信号611a2a(図8参照)のデータはクリアされることとなる。これにより、正常にLEDが点灯しなくなるため、新たに、第1LEDダイナミック点灯コモンデータ信号611a2の第1LEDダイナミック点灯コモンデータ第1信号611a2a(図8参照)にデータを出力しなければならなくなる。
そこで、本実施形態においては、予め、コモンデータを共に出力しておいて、後から、計測・設定表示装置610にLEDデータを出力するようにしている。このようにしても、見た目上は、問題なくLEDが点灯することとなる。
一方、主制御CPU600aは、システム動作ステータスの値が「1」であれば(ステップS505A:=1)、LEDコモン出力選択テーブル1を選択し(ステップS505A)、LEDデータポート1を選択する(ステップS506A)。このLEDコモン出力選択テーブル1は、図53(b)に示すように、プログラムされている。
具体的には、LEDデータが出力される先が7セグメントの1桁目のデータ(第1の計測・設定表示装置610A)であることと、その1桁目のデータ(第1の計測・設定表示装置610A)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。
DB 0001 0000B
DW D_7SEG,D_7SEG
次いで、LEDデータが出力される先が7セグメントの2桁目のデータ(第2の計測・設定表示装置610B)であることと、その2桁目のデータ(第2の計測・設定表示装置610B)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。なお、このプログラムは、第2の計測・設定表示装置610Bに何も表示させないためのプログラムである。
DB 0010 0000B
DW 0000H,0000H
次いで、LEDデータが出力される先が7セグメントの3桁目のデータ(第3の計測・設定表示装置610C)であることと、その3桁目のデータ(第3の計測・設定表示装置610C)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。なお、このプログラムは、第3の計測・設定表示装置610Cに何も表示させないためのプログラムである。
DB 0100 0000B
DW 0000H,0000H
次いで、LEDデータが出力される先が7セグメントの4桁目のデータ(第4の計測・設定表示装置610D)であることと、その4桁目のデータ(第4の計測・設定表示装置610D)にLEDデータを出力するにあたってのコモンデータとが、以下のようにプログラムされている。なお、このプログラムは、第4の計測・設定表示装置610Dに何も表示させないためのプログラムである。
DB 1000 0000B
DW 0000H,0000H
一方、主制御CPU600aは、システム動作ステータスの値が「2」であれば(ステップS507A:=1)、LEDコモン出力選択テーブル1を選択し(ステップS507A)、LEDデータポート1を選択する(ステップS508A)。
かくして、上記ステップS504A,ステップS506A,ステップS508Aの何れかの処理を終えると、主制御CPU600aは、LED出力カウンタと選択されたLEDコモン出力選択テーブルより出力データを選択した後(ステップS509A)、LEDコモンポートにデータを出力する(ステップS510A)。これにより、例えば、ステップS509Aにて、LEDデータが出力される先が特別図柄1表示装置50a(図5参照)であることが選択されれば、ステップS510Aにて、「0001 0001」が出力されることとなる。これにより、第1LEDダイナミック点灯コモンデータ信号611a2の第1LEDダイナミック点灯コモンデータ第1信号611a2a(図8参照)、及び、第2LEDダイナミック点灯コモンデータ信号611a3の第2LEDダイナミック点灯コモンデータ第2信号611a3a(図8参照)から「1」が出力されることとなる。
次いで、主制御CPU600aは、選択されたLEDコモンの出力先LEDデータを作成する(ステップS511A)。例えば、ステップS509Aにて、LEDデータが出力される先が特別図柄1表示装置50a(図5参照)であることが選択されれば、特別図柄1表示装置50a(図5参照)に表示させるLEDデータを作成することとなる。
次いで、主制御CPU600aは、選択されたLEDデータポートに上記作成したLEDデータを出力するようにする(ステップS512A)。これにより、第1LEDダイナミック点灯データ信号611b2(図8参照)から作成されたデータが出力されることとなる。例えば、特別図柄1表示装置50a(図5参照)に表示させるLEDデータであれば、特別図柄1表示装置50a(図5参照)にそのデータが出力され、もって、特別図柄1表示装置50a(図5参照)にその出力されたデータが表示されることとなる。
<主制御:他の実施形態に係るタイマ割込み処理の説明>
かくして、上記のようなLED管理処理(図51に示すステップS100T)を終えた後、主制御CPU600aは、図51に示すステップS116の処理に進むこととなる。なお、図51に示すステップS112AのLED管理処理は、図52に示すLED管理処理と同一の処理である。
しかして、このように処理をすれば、設定変更処理を、主制御のタイマ割込み処理にて行うことができる。それゆえ、このような処理であっても、遊技に影響を及ぼす可能性があるままで、遊技が再開される可能性を低減させることができ、また、限られたプログラム容量を効率的に使用することができる。