以下、本発明に係る遊技機の一実施形態を、パチンコ遊技機を例にして、図面を参照して具体的に説明する。なお、以下の説明において、上下左右の方向を示す場合は、図示正面から見た場合の上下左右をいうものとする。
<パチンコ遊技機外観構成の説明>
まず、図1~図5を参照して、本実施形態に係るパチンコ遊技機の外観構成を説明する。
<パチンコ遊技機前面の外観構成の説明>
図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(図6参照)が設けられている。そしてこの特別図柄1始動口スイッチ44a(図6参照)が検出した有効入賞球数、すなわち、第1始動保留球数が所定数(例えば、4個)液晶表示装置41に表示されることとなる。なお、この第1始動保留球数は、特別図柄1始動口44へ遊技球が入賞し、特別図柄1始動口スイッチ44a(図6参照)にて検出されると、1加算(+1)され、数字やキャラクタあるいは図柄(装飾図柄)等の特別図柄の変動表示が開始されると、1減算(-1)されるというものである。
他方、液晶表示装置41の右下部側には、特別図柄2始動口45が配置され、その内部には入賞球を検出する特別図柄2始動口スイッチ45a(図6参照)が設けられている。そしてこの特別図柄2始動口スイッチ45a(図6参照)が検出した有効入賞球数、すなわち、第2始動保留球数が所定数(例えば、4個)液晶表示装置41に表示されることとなる。なお、この第2始動保留球数は、特別図柄2始動口45へ遊技球が入賞し、特別図柄2始動口スイッチ45a(図6参照)にて検出されると、1加算(+1)され、数字やキャラクタあるいは図柄(装飾図柄)等の特別図柄の変動表示が開始されると、1減算(-1)されるというものである。
一方、この特別図柄2始動口45は、図5に示すように、開閉部材45bを備えており、この開閉部材45bが開放した場合に遊技球が入賞し易い状態となる。この開閉部材45bは、後述する普通図柄の抽選に当選した場合に、所定回数、所定時間開放するもので、普通電動役物ソレノイド45c(図6参照)によって開閉動作が制御されている。なお、以下では、このような開閉部材45b及び普通電動役物ソレノイド45cを合せた装置を普通電動役物と称することがある。
他方、特別図柄1始動口44の右側には、図5に示すように、入賞装置46が配置されている。この入賞装置46は、後述する特別図柄の抽選に当選したとき、すなわち大当たりしたことにより発生する特別遊技状態の際、開閉扉46aにて閉止されている図示しない大入賞口が開放するように開閉扉46aが特別電動役物ソレノイド46b(図6参照)によって駆動制御され、遊技球が大入賞口(図示せず)に入球可能となる。なお、この大入賞口(図示せず)に入球した遊技球は入賞球として大入賞口(図示せず)内部に設けられている大入賞口スイッチ46c(図6参照)によって検出される。
一方、特別図柄の抽選に当選していないとき、すなわち、特別遊技状態でない場合は、特別電動役物ソレノイド46b(図6参照)によって開閉扉46aが駆動制御され、大入賞口(図示せず)が閉止される。これにより、大入賞口(図示せず)内に遊技球が入球することができなくなる。なお、以下では、このような開閉扉46a及び特別電動役物ソレノイド46bを合せた装置を特別電動役物と称することがある。
他方、液晶表示装置41の右上部には、図5に示すように、ゲートからなる普通図柄始動口47が配置され、その内部には、遊技球の通過を検出する普通図柄始動口スイッチ47a(図6参照)が設けられている。また、上記入賞装置46の右側及び上記特別図柄1始動口44の左側には、一般入賞口48が夫々配置されている。この一般入賞口48は、上記入賞装置46の右側に配置されている右上一般入賞口48aと、上記特別図柄1始動口44の左側に配置されている左上一般入賞口48bと、左中一般入賞口48cと、左下一般入賞口48dとで構成されている。そして、右上一般入賞口48aの内部には遊技球の通過を検出する右上一般入賞口スイッチ48a1(図6参照)が設けられ、左上一般入賞口48bの内部には遊技球の通過を検出する左上一般入賞口スイッチ48b1(図6参照)が設けられ、左中一般入賞口48cの内部には遊技球の通過を検出する左中一般入賞口スイッチ48c1(図6参照)が設けられ、左下一般入賞口48dの内部には遊技球の通過を検出する左下一般入賞口スイッチ48d1(図6参照)が設けられている。
一方、特別図柄1始動口44の真下には、入賞することなく遊技領域40最下流部まで流下してきた遊技球(アウト球)が入球されるアウト口49が配置されている。なお、このアウト口49に入球した遊技球は非入賞球として内部に設けられているアウト口スイッチ49a(図6参照)によって検出され、さらに、上述した入賞球も遊技盤4の背面側を通って最下流部まで流下することとなるため、アウト口スイッチ49a(図6参照)によって検出されることとなる。それゆえ、アウト口スイッチ49a(図6参照)は、排出されたアウト総数、すなわち、発射ハンドル16にて遊技領域40に発射された遊技球と同数の遊技球を検出することとなる。
他方、上記遊技盤4の遊技領域40の右下周縁部には、7セグメントが3個並べて構成されており、そのうち2個の7セグメントが特別図柄表示装置50であり、他の7セグメントは特別図柄1や特別図柄2の始動保留球数を表示するものである。この特別図柄表示装置50は、図5に示すように、特別図柄1表示装置50aと特別図柄2表示装置50bとで構成されており、その特別図柄1表示装置50aの左側には、2個のLEDからなる普通図柄表示装置51が設けられている。なお、上記遊技盤4の遊技領域40には、図示はしないが複数の遊技釘が配置され、遊技球の落下方向変換部材としての風車52が配置されている。
<パチンコ遊技機背面の外観構成の説明>
かくして、このように構成されるパチンコ遊技機1の背面は、図4に示すように、遊技盤装着枠18を覆って遊技盤YBを裏側から押さえる枠体状の裏機構板53が取付けられている。そして、この裏機構板53の上部右側寄りには、パチンコホール側島設備の遊技球補給装置(図示せず)から供給される遊技球を貯留する遊技球貯留タンク54が設けられ、さらには、その遊技球貯留タンク54から球を導出するタンクレール55が設けられている。
このタンクレール55の傾斜下端には、払出し装置56と払出し通路57とが装着されており、遊技球が大入賞口(図示せず)等の入賞口に入賞した時、又は、遊技球貸出装置(図示せず)から球貸し指令があった時に、遊技球貯留タンク54内の遊技球を、タンクレール55を経て払出し装置56により払出し、その遊技球を、払出し通路57を経て上受け皿9(図1参照)に案内するようになっている。
また、裏機構板53の略中央には、遊技盤YBの裏側に着脱自在に装着された透明の裏カバー58(図3も参照)が装着されており、この裏カバー58内には、演出制御基板90を収納した透明の演出制御基板ケース90aと、液晶制御基板120を収納した透明の液晶基板ケース120aとが着脱自在に設けられている。そして、演出制御基板ケース90aの下方には、内部に主制御基板60を収納した透明な主制御基板ケース60aが着脱自在に設けられ、この主制御基板ケース60aの下方には、払出制御基板70を収納した透明な払出制御基板ケース70aが着脱自在に設けられている。さらに、この主制御基板ケース60aの下方には、電源基板130を収納した電源基板ケース130aが着脱自在に設けられている。
<制御装置の説明>
次に、上記のような外観構成からなるパチンコ遊技機1内に設けられる遊技の進行状況に応じて電子制御を行う制御装置を、図6を用いて説明する。この制御装置は、図6に示すように、遊技動作全般の制御を司る主制御基板60と、その主制御基板60からの制御コマンドに基づいて遊技球を払出す払出制御基板70と、画像と光と音についての制御を行うサブ制御基板80とで主に構成されている。なお、サブ制御基板80は、図6に示すように、演出制御基板90と、装飾ランプ基板100と、液晶制御基板120とで構成されている。
<主制御基板に関する説明>
主制御基板60は、主制御CPU600aと、一連の遊技制御手順を記述した遊技プログラム等を格納した主制御ROM600bと、作業領域やバッファメモリ等として機能する主制御RAM600cとで構成されたワンチップマイクロコンピュータ600と、低確時(当たり抽選確率が通常の低確率状態)に幾らの賞球がされたかの比率等に関する内容を表示する7セグメントからなる計測表示装置610と、遊技者に有利な特別遊技状態を発生させる確率の設定内容を表示する7セグメントからなる設定表示装置620と、RAMクリアスイッチ630と、設定キースイッチ640と、設定変更スイッチ650と、を主に搭載している。
そして、このように構成される主制御基板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とが接続されている。
このように構成される主制御基板60は、特別図柄1始動口スイッチ44a又は特別図柄2始動口スイッチ45aあるいは普通図柄始動口スイッチ47aからの信号を主制御CPU600aにて受信すると、遊技者に有利な特別遊技状態を発生させるか(いわゆる「当たり」)、あるいは、遊技者に有利な特別遊技状態を発生させないか(いわゆる「ハズレ」)の抽選を行い、その抽選結果である当否情報に応じて特別図柄の変動パターンや停止図柄あるいは普通図柄の表示内容を決定し、その決定した情報を特別図柄1表示装置50a又は特別図柄2表示装置50bあるいは普通図柄表示装置51に送信する。これにより、特別図柄1表示装置50a又は特別図柄2表示装置50bあるいは普通図柄表示装置51に抽選結果が表示されることとなる。そしてさらに、主制御基板60、すなわち、主制御CPU600aは、その決定した情報を含む演出制御コマンドDI_CMDを生成し、演出制御基板90に送信する。なお、主制御基板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についてより詳しく説明すると、計測表示装置610は、図7(a)に示すように、7セグメントからなる第1の計測表示装置610Aと、7セグメントからなる第2の計測表示装置610Bと、7セグメントからなる第3の計測表示装置610Cと、7セグメントからなる第4の計測表示装置610Dと、で構成されており、この第1の計測表示装置610A、第2の計測表示装置610B、第3の計測表示装置610C、第4の計測表示装置610Dに低確時に幾らの賞球がされたかの比率等に関する内容(性能表示)が表示されることとなる。
一方、設定表示装置620は、図7(b)に示すように、1個の7セグメントからなり、遊技者に有利な特別遊技状態を発生させる確率の設定内容を、例えば、「1」~「6」の6段階で表示することができるようになっている。しかして、このような設定内容を変更するにあたっては、設定キースイッチ640に専用キーを挿入し、ONされると、設定変更スイッチ650にて、遊技者に有利な特別遊技状態を発生させる確率の設定内容を例えば「1」~「6」の6段階で設定変更することができるようになっている(例えば、設定「6」が、遊技者に有利な特別遊技状態を発生させる確率が最も高く、設定「1」が、遊技者に有利な特別遊技状態を発生させる確率が最も低くなっている)。そして、その設定変更内容は、設定表示装置620に表示され、設定変更内容が確定すると、7セグメントの右下側にあるドットが点灯し、設定内容が確定したことが表示されるようになっている。なお、以下の説明において、設定変更スイッチ650は、遊技者に有利な特別遊技状態を発生させる確率の設定内容を変更させる機能(設定変更機能)と、その設定変更内容を確定させる機能(設定変更完了機能)を両方合わせ持つことを前提に説明するが、勿論、設定変更スイッチ650は、遊技者に有利な特別遊技状態を発生させる確率の設定内容を変更させる機能だけを備え、その設定変更内容の確定は、別のスイッチを設けて行うようにしても良い。
他方、RAMクリアスイッチ630は、RAMクリアスイッチ630が押下されると、主制御RAM600c(図6参照)のメモリ領域は全てクリアされず、一部のメモリ領域のみクリアされるようになっている。すなわち、主制御RAM600cは、図8(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クリアスイッチ630が押下された際、主制御RAM600cの計測用RAM領域600ce,計測用スタック領域600cgはクリアされず、通常用RAM領域600ca,通常用スタック領域600ccがクリアされるようになっている。しかして、このようにすれば、計測した賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等が誤ってクリアされる事態を防止することができる。なお、本実施形態においては、RAMクリアスイッチ630が押下された際、通常用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は、図8(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で構成されている。
しかして、このように構成された主制御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の動作を開始又は停止させる発射制御信号を送信する処理を行う。
<演出制御基板に関する説明>
演出制御基板90は、上記主制御基板60(主制御CPU600a)からの演出制御コマンドDI_CMDを受けて各種演出を実行制御する演出制御CPU900と、演出制御手順を記述した制御プログラム等が格納されているフラッシュメモリからなる演出制御ROM910と、作業領域やバッファメモリ等として機能する演出制御RAM920とで構成されている。そしてさらに、演出制御基板90は、所望のBGMや効果音を生成する音LSI930と、BGMや効果音等の音データ等が予め格納されている音ROM940とが搭載されている。
このように構成される演出制御基板90には、ランプ演出効果を現出するLEDランプ等の装飾ランプが搭載されている装飾ランプ基板100が接続され、さらに、内蔵されているランプ(図示せず)点灯時に遊技者が押下することにより演出効果を変化させることができる押しボタン式の演出ボタン装置13が接続され、BGMや効果音等を発するスピーカ17が接続されている。そしてさらに、演出制御基板90には、遊技の進行に伴い所定の演出動作を行う可動役物装置43が接続され、各種設定が可能な設定ボタン15が接続され、液晶表示装置41を制御する液晶制御基板120が接続されている。なお、言うまでもないが、この装飾ランプ基板100には、上・左・右・左上可動役物43a~43dに配置されている装飾ランプも搭載されている。
かくして、このように構成される演出制御基板90は、主制御基板60(主制御CPU600a)より送信される大当たり抽選結果(大当たりかハズレの別)に基づく特別図柄変動パターン、現在の遊技状態、第1始動保留球数、第2始動保留球数、抽選結果に基づき停止させる装飾図柄等に必要となる基本情報を含んだ演出制御コマンドDI_CMDを演出制御CPU900にて受信する。そして、演出制御CPU900は、受信した演出制御コマンドDI_CMDに対応した演出パターンを、演出制御ROM910内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンを実行指示する制御信号を演出制御RAM920内に一時的に格納する。
そして、演出制御CPU900は、演出制御RAM920内に格納しておいた演出パターンを実行指示する制御信号のうち、音に関する制御信号を音LSI930に送信する。これを受けて音LSI930は、当該制御信号に対応する音データを音ROM940より読み出し、スピーカ17に出力する。これにより、スピーカ17より上記決定された演出パターンに対応したBGMや効果音が発せられることとなる。
また、演出制御CPU900は、演出制御RAM920内に格納しておいた演出パターンを実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板100に送信する。これにより、装飾ランプ基板100が、ランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯する制御を行うため、上記決定された演出パターンに対応したランプ演出が実行されることとなる。
さらに、演出制御CPU900は、演出制御RAM920内に格納しておいた演出パターンを実行指示する制御信号のうち、画像に関する液晶制御コマンドLCD_CMDを液晶制御基板120に送信する。これにより、液晶制御基板120が、当該液晶制御コマンドLCD_CMDに基づく画像を表示させるように液晶表示装置41を制御することにより、上記決定された演出パターンに対応した画像が液晶表示装置41に表示されることとなる。なお、液晶制御基板120には演出内容に沿った画像を表示するための種々の画像データが記憶されており、さらに、演出出力全般の制御を担うVDP(Video Display Processor)が搭載されている。
またさらに、演出制御CPU900は、演出制御RAM920内に格納しておいた演出パターンを実行指示する制御信号のうち、可動役物に関する制御信号を可動役物装置43に送信する。これにより、可動役物装置43は、上記決定された演出パターンに対応した可動をすることとなる。
ところで、上記説明した各基板への電源供給は、図6に示す電源基板130より供給されている。この電源基板130は、電圧生成部1300と、電圧監視部1310と、システムリセット生成部1320とを含んで構成されている。この電圧生成部1300は、遊技店に設置された図示しない変圧トランスから供給される外部電源である交流電圧AC24Vを受けて複数種類の直流電圧を生成するもので、その生成された直流電圧は、図示はしないが各基板に供給されている。
また、電圧監視部1310は、上記交流電圧AC24Vの電圧を監視するもので、この電圧が遮断されたり、停電が発生したりして電圧異常を検出した場合に電圧異常信号ALARMを主制御基板60に出力するものである。なお、電圧異常信号ALARMは、電圧異常時には「L」レベルの信号を出力し、正常時には「H」レベルの信号を出力する。
また、一方、システムリセット生成部1320は、電源投入時のシステムリセット信号を生成するもので、その生成されたシステムリセット信号は、図示はしないが各基板に出力されている。
<LDB命令の説明>
ここで、主制御ROM600bの通常用データ領域600bc(図8(b)参照)に格納されているデータを取得するにあたって使用するLDB命令について、図9~図12,図14~図16を参照して説明することとする。
まず、主制御CPU600a内の内部レジスタについて、図9を用いて説明する。図9に示すように、主制御CPU600a内の内部レジスタは、レジスタバンク0とレジスタバンク1を備える汎用レジスタ600a1と、プログラムカウンタとして機能するPCレジスタ600a2と、スタックポインタとして機能するSPレジスタ600a3と、テーブルポインタとして機能するTPレジスタ600a4と、プログラムステータスワードとして機能するPSWレジスタ600a5と、で構成されている。この汎用レジスタ600a1は、図9に示すように、レジスタバンク0、レジスタバンク1共に、8bitで構成されるWレジスタ、Aレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、そして、16ビットで構成されるIXレジスタ、IYレジスタを備えている。また、TPレジスタ600a4は、データ領域を指定するための基準となるアドレス番地(例えば、9000番地)が格納されており、リセット時に、データ領域を指定するための基準となるアドレス番地である、例えば、9000Hに初期化されるようになっている。
しかして、このような内部レジスタを用いて、LDB命令は実行されることとなる。より詳しく説明すると、LDB命令を実行するにあたっては、図14(a)に示す特別図柄変動パターン処理のプログラム例にあるように、「LDB BC,(HL+).9」、「LDB E,(HL+).4」とプログラムされることとなる。この「LDB BC,(HL+).9」のプログラムは、主制御ROM600bの通常用データ領域600bc(図8(b)参照)の「95A4H」のアドレス番地から10ビットのデータを読み出し、その読み出した10ビットのデータをBCレジスタに格納するというプログラムである。そして、「LDB E,(HL+).4」のプログラムは、主制御ROM600bの通常用データ領域600bc(図8(b)参照)の「95A5H」のアドレス番地から5ビットのデータを読み出し、その読み出した5ビットのデータをEレジスタに格納するというプログラムである。
このプログラム内容を、図10、図14~図16を用いて、さらに詳しく説明する。まず、HLレジスタには、図14(a)に示すように、「LDT HL,_TPTADR」とプログラムされることによって、図14(b)に示す特別図柄パターン群アドレステーブルのアドレス番地が格納される。そして、図14(a)に示す、以下のようなプログラムによって、通常遊技状態か、確率変動状態かの何れかのテーブルが選択される。
すなわち、図14(a)に示すように、
LD A,(IY+W_TCODE1)
CALL_S _DTSRCH
とプログラムし、CALL_S命令によって、図14(c)に示すデータ検索処理を呼び出しすることによって、通常遊技状態か、確率変動状態か、何れかのテーブルが選択される。本実施形態においては、通常遊技状態であることを示す「DW D_TPATBL_1」とプログラムされた「D_TPATBL_1」のテーブルが選択され、HLレジスタには、図15に示す特図変動パターン群テーブル1のアドレス番地が格納される。そして、図14(a)に示す、以下のようなプログラムによって、図15に示す何れかのテーブルが選択される。
すなわち、図14(a)に示すように、
LD A,(IY+W_TPTOFF)
JR NZ,TPTMK_10
;
LD A,(IY+W_T1GONUM)
TPTMK_10:
CALL_S _DTSRCH
とプログラムし、CALL_S命令によって、図14(c)に示すデータ検索処理を呼び出しすることによって、図15に示す何れかのテーブルが選択される。本実施形態においては、始動保留球数が0個であることを示す「DW (D_PT_FH1-09000H)*8+0」とプログラムされた「D_PT_FH1」のテーブルが選択され、HLレジスタには、図16(a)に示す変動振分けテーブルH1のアドレス番地が格納される。すなわち、HLレジスタには、図10(a)に示すように、D_PT_FH1のアドレス番地から9000Hが差し引かれ、8で乗算することによって、上位13bitに、「05A4」が格納される。この、始動保留球数が0個であることを示す「DW (D_PT_FH1-09000H)*8+0」のうち、「(D_PT_FH1-09000H)*8」が上位13bitに、「05A4」が格納されるプログラムである。
一方、HLレジスタには、指定されたアドレス番地に格納されている0ビット目~7ビット目のうち、何ビット目から「LDB BC,(HL+).9」のプログラムで指定された9+1(=10)ビット分のデータを取得するかのビット指定情報が下位3bitに格納される。このビット指定情報は、「DW (D_PT_FH1-09000H)*8+0」のプログラムのうち「+0」が、ビット指定情報に該当するものである。すなわち、「+0」の場合は、0ビット目からデータを取得、「+1」の場合は、1ビット目からデータを取得、「+2」の場合は、2ビット目からデータを取得というような処理をすることとなる。しかして、このようにして、HLレジスタには、図10(a)に示すように、「2D20」の値が格納されることとなる。
かくして、このようなデータが格納されたHLレジスタに対し、LDB命令が実行されると、主制御CPU600aは、図10(a)に示すように、HLレジスタの値を8で除算する。これにより、「2D20」の値は、「05A4」となる。そして、主制御CPU600aは、TPレジスタ600a4(図9参照)に格納されているデータ領域を指定するための基準となるアドレス番地9000Hと、この8で除算した値「05A4」を足し合わせ、主制御ROM600bの通常用データ領域600bc(図8(b)参照)の「95A4H」のアドレス番地を算出する。続いて、主制御CPU600aは、ビット指定情報が「0」であることから、図10(a-1)に示すように、この算出したアドレス番地「95A4H」の0ビット目から10ビット分のデータ「0001010001」(図示では、読み出すデータを四角で囲んでいる)を取得する(読み出す)こととなる。
次いで、図14(a)に示すように、「LDB BC,(HL+).9」のプログラムに続いて、「LDB E,(HL+).4」とプログラムされていると、主制御CPU600aは、図10(b)に示すように、HLレジスタに格納されている「2D20」の値に、「LDB BC,(HL+).9」のプログラムで「05A5」が格納され、下位3bitには、2ビット目からデータを取得するビット指定情報が格納されることとなる。
次いで、主制御CPU600aは、図10(b)に示すように、HLレジスタの値を8で除算する。これにより、「2D2A」の値は、「05A5」となる。続いて、主制御CPU600aは、TPレジスタ600a4(図9参照)に格納されているデータ領域を指定するための基準となるアドレス番地9000Hと、この8で除算した値「05A5」を足し合わせ、主制御ROM600bの通常用データ領域600bc(図8(b)参照)の「95A5H」のアドレス番地を算出する。しかして、主制御CPU600aは、ビット指定情報が「2」であることから、図10(b-1)に示すように、この算出したアドレス番地「95A5H」の2ビット目から5ビット分(「LDB E,(HL+).4」とプログラムされていることから、4+1(=5)ビット分となる)のデータ「10000」(図示では、読み出すデータを四角で囲んでいる)を取得する(読み出す)こととなる。
かくして、この取得された値が、図10(a)に示すように、0~552であれば、変動パターンコマンドとして、「001」が選択され、553~782(552+230)であれば、変動パターンコマンドとして、「002」が選択され、783~997(552+230+215)であれば、変動パターンコマンドとして、「004」が選択され、997~1000(552+230+215+3)であれば、変動パターンコマンドとして、「005」が選択されることとなる。なお、本実施形態においては、0~552であるため、変動パターンコマンドとして、「001」が選択されることとなる。
なお、上記説明した変動パターンコマンド取得の処理は、図14(a)に示す、
LD WA,(IY+W_TPRBF0)
TPTMK_20:
LDB BC,(HL+).9
LDB E,(HL+).4
SUB WA,BC
JR NC,TPTMK_20
というプログラムによって実行されることとなる。
しかして、図10に示すように、HLレジスタに、TPレジスタ600a4(図9参照)に格納されているデータ領域を指定するための基準となるアドレス番地が差し引かれたデータと、ビット指定情報と、を格納するようにすれば、HLレジスタに、2つのデータを格納することができることとなるため、プログラム容量の削減を図ることができると共に、ROMのデータ容量の削減を図ることができる。
また、ビット指定情報として、「DW (D_PT_FH1-09000H)*8+0」と「0」をプログラムしておくことにより、誤ったビットを指定する可能性を低減させることができ、もって、デバックの精度を向上させることができる。
一方、図15に示す「DW (D_PT_FH1-09000H)*8+0」のプログラムのように、HLレジスタに、D_PT_FH1のアドレス番地からTPレジスタ600a4(図9参照)に格納されているデータ領域を指定するための基準となるアドレス番地9000Hを差し引いたアドレス番地を格納しておくことにより、HLレジスタの使用容量を削減することができることとなる。これにより、図10に示すように、HLレジスタに、2つのデータを格納することができることとなり、もって、プログラム容量の削減を図ることができると共に、ROMのデータ容量の削減を図ることができる。
なお、本実施形態においては、変動振分けテーブルH1が選択された例を示したが、通常遊技5ラウンド当たりを示す「DW (D_PT_FB1-09000H)*8+0」とプログラムされた「D_PT_FB1」のテーブルが選択された場合は、図16(b)に示す変動振分けテーブルB1が選択されることとなる。なおまた、この際の変動パターンコマンド取得の処理も、上記説明と同様の処理を行うこととなるめ、説明は省略する。
<LDB命令の変形例の説明>
ところで、本実施形態においては、連続してLDB命令を実行する例を示したが、それに限らず、図11に示すプログラムのように、LDB命令を実行することができる。
すなわち、図11(a)に示すプログラムは、大当たりのラウンド数に応じて、大入賞口パターンを選択するプログラムであって、「LD HL,_TDPTSEL1*8」とプログラムすることによって、図11(b)に示す大入賞口パターン選択テーブル1のアドレス番地が、HLレジスタに格納される。具体的には、図12(a)に示すように、_TDPTSEL1のアドレス番地「0352H」(図11(b)参照)の値を8で乗算することによって、HLレジスタの上位13bitに「0352H」が格納される。
そして、HLレジスタの下位3bitに、ビット指定情報を格納するにあたっては、以下のような処理を行う。すなわち、図11(a)に示すように、「LD A,(W_VCNT)」とプログラムすることによって、大当たりのラウンド数を示すW_VCNTの値をAレジスタに格納する。次いで、「MUL A.2」とプログラムすることによって、ビット指定情報を生成し、「LD HL,(HL+A)」とプログラムすることによって、生成されたビット指定情報が、HLレジスタの下位3bitに格納されることとなる。なお、図12(a)では、W_VCNTの値は「0」であるため、ビット指定情報として「0」が格納されている。
かくして、このようなデータが格納されたHLレジスタに対し、「LDB A,(HL).1」というLDB命令が実行されると、主制御CPU600aは、図12(a)に示すように、HLレジスタの値を8で除算する。これにより、「1A90」の値は、「0352」となる。そして、主制御CPU600aは、TPレジスタ600a4(図9参照)に格納されているデータ領域を指定するための基準となるアドレス番地9000Hと、この8で除算した値「0352」を足し合わせ、主制御ROM600bの通常用データ領域600bc(図8(b)参照)の「9352H」のアドレス番地を算出する。続いて、主制御CPU600aは、ビット指定情報が「0」であることから、図12(a-1)に示すように、この算出したアドレス番地「9352H」の0ビット目から2ビット分のデータ「10」(図示では、読み出すデータを四角で囲んでいる)を取得する(読み出す)こととなる。
次いで、W_VCNTの値が「1」となり、ビット指定情報として「2」が格納されると、HLレジスタには、図12(b)に示すように、HLレジスタの下位3bitに、「010」の値が格納される。これにより、HLレジスタには、「1A90」の値が格納されることとなる。
かくして、このようなデータが格納されたHLレジスタに対し、「LDB A,(HL).1」というLDB命令が実行されると、主制御CPU600aは、図12(b)に示すように、HLレジスタの値を8で除算する。これにより、「1A92」の値は、「0352」となる。そして、主制御CPU600aは、TPレジスタ600a4(図9参照)に格納されているデータ領域を指定するための基準となるアドレス番地9000Hと、この8で除算した値「0352」を足し合わせ、主制御ROM600bの通常用データ領域600bc(図8(b)参照)の「9352H」のアドレス番地を算出する。続いて、主制御CPU600aは、ビット指定情報が「2」であることから、図12(b-1)に示すように、この算出したアドレス番地「9352H」の2ビット目から2ビット分のデータ「00」(図示では、読み出すデータを四角で囲んでいる)を取得する(読み出す)こととなる。
しかして、このように、プログラムによってビット指定情報を生成するようにすれば、連続してLDB命令を実行せずとも、LDB命令を実行することができる。しかるに、このようにすれば、様々なプログラムに使用することが可能となり、もって、プログラム容量の削減をより図ることができると共に、ROMのデータ容量の削減をより図ることができる。
<LDT命令の説明>
次に、主制御ROM600bの通常用データ領域600bc(図8(b)参照)に格納されているデータを取得するにあたって使用するLDT命令について、図13~図14を参照して説明することとする。
LDT命令を実行するにあたっては、図14(a)に示す特別図柄変動パターン処理のプログラム例にあるように、「LDT HL,_TPTADR」とプログラムされることとなる。この「LDT HL,_TPTADR」のプログラムは、HLレジスタに、図14(b)に示す特図変動パターン群アドレステーブルの「954E」のアドレス番地を格納するというプログラムである。
このプログラム内容を、図13を用いて、さらに詳しく説明する。HLレジスタに、「954E」のアドレス番地を格納するにあたって、LDT命令が実行されると、主制御CPU600aは、mレジスタに、「054E」を格納する。そして、主制御CPU600aは、その格納した値「054E」と、TPレジスタ600a4(図9参照)に格納されているデータ領域を指定するための基準となるアドレス番地9000Hとを加算し、もって、HLレジスタに「954E」を格納することとなる。
しかして、このようにすれば、プログラム容量の削減を図ることができると共に、ROMのデータ容量の削減を図ることができる。
すなわち、従来、このようなアドレス番地を取得するにあたっては、LD命令が使用されていた。このLD命令は、命令長が4ビットで、取得するアドレス番地は最低2バイトであるため、結局の所、LD命令を使用すると、プログラム容量として、3バイト使用されていた。
しかしながら、LDT命令を使用すると、TPレジスタ600a4(図9参照)に格納されているデータ領域を指定するための基準となるアドレス番地9000Hを使用するため、アドレス番地の指定が12ビット(mレジスタに格納されている「54E」参照)で済むこととなる。それゆえ、LDT命令の命令長が4ビットであることから、プログラム容量として、計16ビットの2バイトで済むこととなる。
しかして、LDT命令を使用すれば、従来より1バイト、プログラム容量の削減を図ることができる。それゆえ、ROMのデータ容量の削減も図ることができる。
ところで、本実施形態においては、HLレジスタに、アドレス番地を格納するにあたって、LDT命令を実行する例を示したが、LD命令を実行しても良い場合がある。すなわち、図14(c)に示すように、サブルーチンであるデータ検索処理において、「LD HL,(HL)」とプログラムされている。これは、HLレジスタに格納されている値を、HLレジスタに格納するというプログラムであるが、この場合、レジスタからレジスタに値を格納する命令であるため、命令長も含め、2バイトのプログラム容量で済むこととなる。そのため、このような場合は、LDT命令を使用せずとも、LD命令を使用すれば良いこととなる。しかして、このように、処理内容に応じて、命令を使い分けるようにすれば、無駄な処理を実行させずとも良く、もって、処理速度の向上を図ることができる。
<特別図柄変動パターンの変形例の説明>
ところで、上記説明では、図14(a)に示す特別図柄変動パターン処理を用いた例を示したが、それに限らず、図17に示す特別図柄変動パターン処理を用いても良い。なお、図14(a)と同一の処理については説明を省略することとする。
図17に示す特別図柄変動パターン処理では、
TPTMK_10:
LD A,13
とプログラムされていることから、主制御CPU600aは、Aレジスタに、13を格納する。なお、このAレジスタに格納された13は、振分け値のビット幅(0ビット目~13ビット目)である。それゆえ、振分け値のデフォルトビット長としては、13+1の14ビットとなる。
次いで、図17に示す特別図柄変動パターン処理では、
TPTMK_20:
LDB W,(HL+).0
とプログラムされている。この際、HLレジスタに、図18に示す変動振分けテーブルB1のアドレス番地が格納されていた場合、主制御CPU600aは、「BF{1},0」の1ビットのデータ「0」を読み出し、その読み出した1ビットのデータ「0」をWレジスタに格納する。
一方、HLレジスタに、図19(a)に示す変動振分けテーブルB2のアドレス番地が格納されていた場合、主制御CPU600aは、「BF{1,4},1,8」の1ビットのデータ「1」を読み出し、その読み出した1ビットのデータ「1」をWレジスタに格納する。また、図19(b)に示す変動振分けテーブルH1のアドレス番地が格納されていた場合、主制御CPU600aは、「BF{1,4},1,11」の1ビットのデータ「1」を読み出し、その読み出した1ビットのデータ「1」をWレジスタに格納する。
次いで、図17に示す特別図柄変動パターン処理では、
JR Z,TPTMK_30
LDB A,(HL+).3
とプログラムされている。すなわち、主制御CPU600aは、上記Wレジスタに格納した値が「0」であれば、振分け値のビット長をデフォルトのままにし、上記Wレジスタに格納した値が「1」であれば、振分け値のビット長を変更するようにする。具体的に説明すると、HLレジスタに、図19(a)に示す変動振分けテーブルB2のアドレス番地が格納されていた場合、主制御CPU600aは、「BF{1,4},1,8」の4ビットのデータ「8」を読み出し、その読み出した4ビットのデータ「8」をAレジスタに格納する。これにより、振分け値のビット長が14から9(=8+1)に変更されることとなる。一方、HLレジスタに、図19(b)に示す変動振分けテーブルH1のアドレス番地が格納されていた場合、主制御CPU600aは、「BF{1,4},1,11」の4ビットのデータ「11」を読み出し、その読み出した4ビットのデータ「11」をAレジスタに格納する。これにより、振分け値のビット長が14から12(=11+1)に変更されることとなる。
次いで、図17に示す特別図柄変動パターン処理では、
TPTMK_30:
LD IX,(IY+W_TPRBF0)
XOR E,E
とプログラムされている。すなわち、主制御CPU600aは、IXレジスタに取得した変動パターン乱数値を格納し、Eレジスタをクリアする。なお、このEレジスタには、変動パターン番号の初期値(=0)がセットされることとなる。
次いで、図17に示す特別図柄変動パターン処理では、
TPTMK_40:
LDB BC,(HL+).A
INC E
とプログラムされている。すなわち、HLレジスタに、図18に示す変動振分けテーブルB1のアドレス番地が格納されていた場合、Aレジスタには、振分け値のデフォルトビット長14が格納されていることから、主制御CPU600aは、「BF{14,1},00100,0」の14ビット分のデータ「00100」、又は、「BF{14,1},09900,0」の14ビット分のデータ「009900」を読み出し、その読み出した14ビット分のデータをBFレジスタに格納する。
一方、HLレジスタに、図19(a)に示す変動振分けテーブルB2のアドレス番地が格納されていた場合、Aレジスタには、変更された振分け値のビット長9が格納されていることから、主制御CPU600aは、「BF{9,1,8},500,1,11」の9ビット分のデータ「500」、又は、「BF{9,1},500,0」の9ビット分のデータ「500」を読み出し、その読み出した9ビット分のデータをBFレジスタに格納する。また、HLレジスタに、図19(b)に示す変動振分けテーブルH1のアドレス番地が格納されていた場合、Aレジスタには、変更された振分け値のビット長12が格納されていることから、主制御CPU600aは、「BF{12,1},2500,0」の12ビット分のデータ「2500」、又は、「BF{12,1,8},2500,1,55」の12ビット分のデータ「2500」を読み出し、その読み出した12ビット分のデータをBFレジスタに格納する。
しかして、このように、格納されている振分け値の最大ビット幅に合わせて、ビット長を変更するようにすれば、不必要なビット分を格納する必要が無くなるから、プログラム容量の削減を図ることができ、もって、ROMのデータ容量の削減も図ることができる。
次いで、図17に示す特別図柄変動パターン処理では、
LDB W,(HL+).0
JR Z,TPTMK_50
LDB E,(HL+).7
とプログラムされている。すなわち、HLレジスタに、図18に示す変動振分けテーブルB1のアドレス番地が格納されていた場合、主制御CPU600aは、」「BF{14,1},00100,0」の「00100」の次の1ビットである「0」、又は、「BF{14,1},09900,0」の「09900」の次の1ビットである「0」を読み出し、その読み出したデータをWレジスタに格納する。一方、HLレジスタに、図19(a)に示す変動振分けテーブルB2のアドレス番地が格納されていた場合、主制御CPU600aは、「BF{9,1,8},500,1,11」の「500」の次の1ビットである「1」、又は、「BF{9,1},500,0」の「500」の次の1ビットである「0」を読み出し、その読み出したデータをWレジスタに格納する。また、HLレジスタに、図19(b)に示す変動振分けテーブルH1のアドレス番地が格納されていた場合、主制御CPU600aは、「BF{12,1},2500,0」の「2500」の次の1ビットである「0」、又は、「BF{12,1,8},2500,1,55」の「2500」の次の1ビットである「1」を読み出し、その読み出したデータをWレジスタに格納する。
かくして、Wレジスタに格納された値が「0」であれば、主制御CPU600aは、Eレジスタに格納されている値を変動パターン番号とする。そして、Wレジスタに格納された値が「1」であれば、主制御CPU600aは、HLレジスタに、図19(a)に示す変動振分けテーブルB2のアドレス番地が格納されていた場合、「BF{9,1,8},500,1,11」の「1」の次の8ビットである「11」を読み出し、その読み出したデータをEレジスタに格納し、もって、このEレジスタに格納されている値を変動パターン番号とする。そしてさらに、HLレジスタに、図19(b)に示す変動振分けテーブルH1のアドレス番地が格納されていた場合、「BF{12,1,8},2500,1,55」の「1」の次の8ビットである「55」を読み出し、その読み出したデータをEレジスタに格納し、もって、このEレジスタに格納されている値を変動パターン番号とする。
かくして、このように変動パターン番号が選択されると、図17に示す特別図柄変動パターン処理では、
TPTMK_50:
SUB IX,BC
JR NC,TPTMK_40
とプログラムされている。これにより、主制御CPU600aは、IXレジスタに格納されている取得した変動パターン乱数値が、BCレジスタに格納されている振分け値内になるまで、ラベルTPTMK_40の処理を繰り返し行うこととなる。
ところで、変動パターン番号を選択するにあたって、Wレジスタに格納された値が0か否かを判定しているが、それは以下の理由によるものである。すなわち、図19(a)に示す変動振分けテーブルB2では、変動パターン番号が11~30まであることから、変動パターン番号11~30を示すデータを全て格納しておくと、膨大な容量となる。そこで、本実施形態においては、図19(a)に示す変動振分けテーブルB2では、変動パターン番号が11~30と連番で格納されていることから、変動パターン番号11を示すデータだけを格納しておき(BF{9,1,8},500,1,11)、後は、ラベルTPTMK_50にて、IXレジスタに格納されている取得した変動パターン乱数値が、BCレジスタに格納されている振分け値内になるまで、ラベルTPTMK_40の処理を繰り返し行うこととなるから、Eレジスタに格納された変動パターン番号11が、ラベルTPTMK_40にある「INC E」のプログラムにて、+1ずつ加算されていくこととなる。それゆえ、変動パターン番号が12~30に示すデータを全て格納しておく必要がなくなるから、プログラム容量の削減を図ることができる。それゆえ、ROMのデータ容量の削減も図ることができる。
なお、このような処理は、変動振分けテーブルに変動パターン番号が連番で格納されている場合に使用することができる。そのため、図19(b)に示す変動振分けテーブルH1では、変動パターン番号2と変動パターン番号55とが連番で格納されていない。そのため、連番でない変動パターン番号55を示すデータが格納(BF{12,1,8},2500,1,55)格納されている。なお、変動パターン番号1の場合は、変動パターン番号1を示すデータを格納しておく必要はない。これは、図17に示す特別図柄変動パターン処理におけるラベルTPTMK_30にて「XOR E,E」とプログラムされていることから、Eレジスタの値が0となり、そして、ラベルTPTMK_40にて「INC E」とプログラムされていることから、必ず、Eレジスタは1からスタートするためである。
ところで、本実施形態においては、特別図柄変動パターン処理にて、格納されている振分け値の最大ビット幅に合わせて、ビット長を変更する例を示したが、それに限らず、ビット長を変更する処理が有効であれば、特別図柄変動パターン処理に限らずどのような処理にも適用可能である。
<プログラムの説明>
ここで、上記説明した図8(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されている抽選処理等の遊技処理時に使用されるプログラム、主制御ROM600bの計測用プログラム領域600beに格納されている賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等を計測する際に使用されるプログラムの概要を図20~図29を参照して説明する。
<メイン処理の説明>
まず、パチンコ遊技機1に電源が投入されると、電源基板130(図6参照)の電圧生成部1300にて生成された直流電圧が各制御基板に投入された旨の電源投入信号が送られ、その信号を受けて、主制御CPU600a(図6参照)は、図8(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているプログラムを読み出し、図20に示す主制御メイン処理を行う。この際、主制御CPU600aは、まず、最初に自らを割込み禁止状態に設定する(ステップS1)。
次いで、主制御CPU600aは、当該主制御CPU600a内のレジスタ値等の初期設定を行う(ステップS2)。
続いて、主制御CPU600aは、サブ制御基板80の起動待ち時間をセットし(ステップS3)、セットした待ち時間をデクリメント(-1)し(ステップS4)、図示しないウォッチドックタイマ(WDT)をクリアする(ステップS5)。
次いで、主制御CPU600aは、セットした待ち時間が「0」になったか否かを確認し(ステップS6)、「0」になっていなければ(ステップS6:≠0)、ステップS4の処理に戻り、「0」になっていれば(ステップS6:=0)、ステップS7の処理に進む。
次いで、主制御CPU600aは、電源基板130(電圧監視部1310)(図6参照)より出力されている電圧異常信号ALARM(図6参照)を2回取得し、その2回取得した電圧異常信号ALARMのレベルが一致するか否かを確認した上で図示しない当該主制御CPU600aの内部レジスタ内に格納し、その電圧異常信号ALARMのレベルを確認する(ステップS7)。そして電圧異常信号ALARMのレベルが「L」レベルであれば(ステップS8:YES)、ステップS7の処理に戻り、電圧異常信号ALARMのレベルが「H」レベルであれば(ステップS8:NO)、ステップS9の処理に進む。すなわち、主制御CPU600aは、電圧異常信号ALARMが正常レベル(すなわち「H」レベル)に変化するまで同一の処理を繰り返す(ステップS7~S8)。このように、電圧異常信号ALARMを2回取得することで、正確な信号を読み込むことができる。
次いで、主制御CPU600aは、図示しないウォッチドックタイマ(WDT)をクリアし(ステップS9)、払出制御基板70から電源が投入された旨の信号(電源投入信号)が来たか否かを確認する(ステップS10)。電源投入信号が来ていなければ(ステップS10:OFF)、ステップS9の処理に戻り、電源投入信号が来ていれば(ステップS10:ON)、主制御CPU600aの内部に設けられている一定周期のパルス出力を作成する機能や時間計測の機能等を有するCTC(Counter Timer Circuit)の設定を行う。すなわち、主制御CPU600aは、4ms毎に定期的にタイマ割込みがかかるように上記CTCの時間定数レジスタを設定する(ステップS11)。
<メイン処理:設定表示装置に関する説明>
次いで、主制御CPU600aは、図6に示す設定キースイッチ640に専用キーが挿入され、ONされているか否かを確認する(ステップS12)。設定キースイッチ640がONされていれば(ステップS12:YES)、主制御CPU600aは、図2に示すように、上部開閉扉7、下部開放扉8が開放されているか否かを確認する(ステップS13)。上部開閉扉7、下部開放扉8が開放されていれば(ステップS13:YES)、主制御CPU600aは、図8(a)に示す主制御RAM600cの通常用RAM領域600ca、通常用スタック領域600ccを全てクリアする(ステップS14)。ただし、後述する設定値に関するデータが格納されているRAM領域は、前回の設定値を元に変更することも考慮して、クリアせずに保持しておいたほうが望ましい。
次いで、主制御CPU600aは、設定変更中フラグをONに設定し(ステップS15)、主制御RAM600c(図6参照)へのデータ書込みを許可する(ステップS16)。
次いで、主制御CPU600aは、演出制御基板90に液晶表示装置41に設定変更中であることを表示させるような処理コマンド(演出制御コマンドDI_CMD)を送信し(ステップS17)、主制御RAM600c(図6参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値(例えば「1」~「6」の設定値)を取得する(ステップS18)。
次いで、主制御CPU600aは、取得した設定値の値が、「1」~「6」の何れかの値を示しているか否かを確認する(ステップS19)。取得した設定値の値が、「1」~「6」の何れかの値を示していなければ(ステップS19:NO)、取得した設定値に「1」を設定する(ステップS20)。一方、取得した設定値の値が、「1」~「6」の何れかの値を示していれば(ステップS19:YES)、ステップS21の処理に進む。
次いで、主制御CPU600aは、上記設定値を設定表示装置620(図6、図7(b)参照)に表示させる処理を行う(ステップS21)。これにより、設定表示装置620に、「1」~「6」の何れかの値が表示させることとなる。
次いで、主制御CPU600aは、メイン処理中入力管理処理を実行する(ステップS22)。
<メイン処理中入力管理処理の説明>
このメイン処理中入力管理処理について、図21を参照して具体的に説明する。図21に示すように、主制御CPU600aは、まず、図示しないウォッチドックタイマ(WDT)をクリアする(ステップS50)。
次いで、主制御CPU600aは、4msのウェイトがかかるように、主制御CPU600a内のレジスタに所定値をセットして、カウントダウンする処理を行う(ステップS51)。なお、この処理は、設定変更スイッチ650(図6参照)のレベルデータの変化を確認する際、前回のスイッチレベルの取得から少なくとも4msの時間をおくことで、ノイズ等のイレギュラーによるレベルデータの変化ではないことを確認するための処理である。
次いで、主制御CPU600aは、設定変更スイッチ650(図6参照)のスイッチレベルの変化を確認することができる主制御CPU600aの入力ポート(スイッチポート)から今回のスイッチレベルデータを取得する(ステップS52)。
次いで、主制御CPU600aは、前回と今回のスイッチレベルデータからスイッチエッジデータを作成する(ステップ53)。なお、主制御CPU600aは、作成したエッジデータを主制御RAM600cの通常用RAM領域600ca(図8(a)参照)に格納する。
次いで、主制御CPU600aは、電圧監視処理を実行し(ステップS54)、メイン処理中入力管理処理を終える。この電圧監視処理は、電源基板130(図6参照)から出力される電圧異常信号ALARMのレベルを判定し、電圧異常信号ALARMが「L」レベル(異常レベル)であれば、主制御CPU600aの出力ポートのクリア、演出制御基板90への電断コマンド(演出制御コマンドDI_CMD)送信など、バックアップ処理が目的ではなく、通常遊技時の電断時処理を実行することを目的としている。
かくして、このようなメイン処理中入力管理処理を実行することにより、主制御CPU600aが、設定変更スイッチ650(図6参照)にて設定が変更されていないにも係らず、誤ってノイズ等のデータを取得して設定が変更されたと誤認し、誤った設定変更がされないようにしている。
<メイン処理:設定表示装置に関する説明>
次いで、主制御CPU600aは、主制御RAM600cの通常用RAM領域600ca(図8(a)参照)に格納している作成したエッジデータを確認し、設定変更スイッチ650(図6参照)にて設定変更完了機能がONされているか否かを確認する(ステップS23)。設定変更スイッチ650(図6参照)にて設定変更完了機能がONされていなければ(ステップS23:NO)、主制御CPU600aは、設定変更スイッチ650(図7参照)にて設定変更機能がONされているか否かを確認する(ステップS24)。設定変更スイッチ650(図6参照)にて設定変更機能がONされていなければ(ステップS24:NO)、主制御CPU600aは、ステップS22の処理に戻り、設定変更スイッチ650(図6参照)にて設定変更機能がONされていれば(ステップS24:YES)、主制御CPU600aは、現在の設定値をインクリメント(+1)し(ステップS25)、ステップS19の処理に戻る。
一方、主制御CPU600aは、設定変更スイッチ650(図6参照)にて設定変更完了機能がONされていれば(ステップS23:YES)、現在の設定値を主制御RAM600c(図6参照)内(図8(a)に示す主制御RAM600cの通常用RAM領域600ca)に記憶させ(ステップS26)、設定表示装置620(図6、図7(b)参照)に設定値が確定したことを示す表示をさせる処理を行う(ステップS27)。これにより、設定表示装置620(図7(b)参照)を構成する7セグメントの右下側にあるドットが点灯し、設定内容が確定したことが表示されることとなる。
次いで、主制御CPU600aは、図示しないウォッチドックタイマ(WDT)をクリアする(ステップS28)。
次いで、主制御CPU600aは、図6に示す設定キースイッチ640がOFFされているか否かを確認する(ステップS29)。OFFされていなければ(ステップS29:NO)、OFFされるまでステップS28~ステップS29の処理を繰り返し行い、OFFされれば(ステップS29:YES)、演出制御基板90に設定された設定値を示す設定値コマンド(演出制御コマンドDI_CMD)を送信し(ステップS30)、設定変更中フラグをOFFに設定し(ステップS31)、ステップS40の処理に進む。
<メイン処理の説明>
他方、主制御CPU600aは、設定キースイッチ640(図6参照)がOFF(ステップS12:NO)、図2に示すように、上部開閉扉7、下部開放扉8が開放されていなければ(ステップS13:NO)、主制御CPU600aは、主制御RAM600c(図6参照)へのデータ書込みを許可し(ステップS32)、演出制御基板90に液晶表示装置41に待機画面を表示させるような処理コマンド(演出制御コマンドDI_CMD)を送信する(ステップS33)。
次いで、主制御CPU600aは、バックアップフラグBFLの内容を確認する(ステップS34)。なお、このバックアップフラグBFLとは、図22に示す電圧監視処理において、停電等による電圧低下を検出した場合に、バックアップの処理が実行されたか否かを示すデータである。
このバックアップフラグBFLがOFF状態(ステップS34:OFF)であれば、後述する図22に示す電圧監視処理において、停電等による電圧低下を検出した場合に、バックアップの処理が実行されていないこととなり、主制御CPU600aは、演出制御基板90にRAMエラーであることを示す処理コマンド(演出制御コマンドDI_CMD)を送信し(ステップS35)、無限ループ処理を行う。
一方、バックアップフラグBFLがON状態(ステップS34:ON)であれば、後述する図22に示す電圧監視処理において、停電等による電圧低下を検出した場合に、バックアップの処理が実行されていることとなるため、主制御CPU600aは、チェックサム値を算出するためのチェックサム演算を行う。そして、主制御CPU600aは、上記チェックサム値が算出されたら、この演算結果を主制御RAM600c内のSUM番地の記憶値と比較する処理を行う(ステップS36)。なお、チェックサム演算とは、主制御RAM600cを対象とする8ビット加算演算であり、記憶された演算結果は、主制御RAM600c内に記憶されている他のデータと共に、図6に示す電源基板130にて生成されるバックアップ電源によって維持されている。
このSUM番地の記憶値と算出されたチェックサム値が不一致(ステップS36:NO)であれば、主制御CPU600aは、演出制御基板90にRAMエラーであることを示す処理コマンド(演出制御コマンドDI_CMD)を送信し(ステップS35)、無限ループ処理を行う。
一方、一致(ステップS36:YES)していれば、主制御CPU600aは、RAMクリアスイッチ630(図6参照)の内容を確認する(ステップS37)。RAMクリアスイッチ630のエッジデータがONであれば(ステップS37:ON)、主制御CPU600aは、RAMクリアスイッチ630が押下されたと判断し、主制御RAM600cの計測用RAM領域600ce(図8(a)参照)、計測用スタック領域600cg(図8(a)参照)はクリアせず、主制御RAM600cの通常用RAM領域600ca(図8(a)参照)、通常用スタック領域600cc(図8(a)参照)をクリアし(ステップS39)、ステップS40の処理に進む。
かくして、上述したように、バックアップフラグがOFFの場合(ステップS34:OFF)や、チェックサム値が一致していない場合(ステップS36:NO)、RAMクリアスイッチ630(図6参照)がONとなっていても、主制御RAM600cの通常用RAM領域600ca、通常用スタック領域600cc(図8(a)参照)がクリアされることはない。これは、バックアップ処理に異常があった場合やチェックサム値が異常の場合、設定表示装置620(図6、図7(b)参照)に表示される設定値が異常となっている可能性が高いためである。それゆえ、本実施形態にて示すように、ステップS35の処理後、無限ループ処理を実行し、再度、電源投入をし直し、設定値の変更処理を行ってからでないと遊技を再開できないようにすることで、遊技者及び遊技場(ホール)側が不利益となる事態を防止することができる。
一方、RAMクリアスイッチ630のエッジデータがOFFであれば(ステップS37:OFF)、主制御CPU600aは、RAMクリアスイッチ630が押下されていないと判断し、主制御RAM600c内に記憶されているデータに基づいて電源遮断時の遊技動作に復帰させる処理を行う(ステップS38)。
かくして、主制御CPU600aは、上記ステップS38又はステップS39の処理を終えた後、主制御RAM600c(図6参照)へのデータ書込みを許可し(ステップS40)、図示しないウォッチドックタイマ(WDT)をクリアする(ステップS41)。
次いで、主制御CPU600aは、発射制御信号をONに設定し、払出制御基板70に送信する(ステップS42)。これにより、払出制御基板70は、発射制御基板71の動作を開始させるように制御する。
次いで、主制御CPU600aは、自身への割込みを禁止状態にセットした状態(ステップS43)で、図8(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されているプログラムを読み出し、賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等の性能を算出する賞球入賞数管理処理1の処理を行う(ステップS44)。
次いで、主制御CPU600aは、図8(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているプログラムに基づいて、各種の乱数カウンタの更新処理を行った後(ステップS45)、割込み許可状態に戻して(ステップS46)、ステップS43に戻り、ステップS43~ステップS46の処理を繰り返し行うループ処理を行う。
しかして、このように、RAMクリアスイッチ630(図6参照)が押下されていた際、主制御RAM600cの計測用RAM領域600cb、計測用スタック領域600cg(図8(a)参照)はクリアせず、主制御RAM600cの通常用RAM領域600ca、通常用スタック領域600cc(図8(a)参照)をクリアするようにすれば、計測した賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等が誤ってクリアされる事態を防止することができる。すなわち、何らかの異常等が発生し電源が遮断され、その後、電源遮断復帰したとしても、計測した賞球数,非入賞数を含む遊技領域40に発射された遊技球の総数等が誤ってクリアされる事態を防止することができるため、計測表示装置610(図6、図7(a)参照)に表示される正確な情報を生成することができ、もって、電源遮断復帰時に正確な情報を生成することができる。
<タイマ割込み処理の説明>
次に、図22を参照して、上述したメイン処理を中断させて、4ms毎に開始されるタイマ割込みプログラムについて説明する。なお、このプログラムは、図8(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているプログラムを読み出して実行するものである。
このタイマ割込みが生じると、主制御CPU600a内のレジスタ群の内容を主制御RAM600cの通常用スタック領域600cc(図8(a)参照)に退避させる退避処理を実行し(ステップS100)、その後電圧監視処理を実行する(ステップS101)。この電圧監視処理は、電源基板130(図6参照)から出力される電圧異常信号ALARMのレベルを判定し、電圧異常信号ALARMが「L」レベル(異常レベル)であれば、主制御RAM600c内に記憶されているデータのバックアップ処理、すなわち、当該データのチェックサム値を算出し、その算出したチェックサム値をバックアップデータとして主制御RAM600c内に保存する処理を行うものである。
次いで、主制御CPU600aは、上記電圧監視処理(ステップS101)が終了すると、各遊技動作の時間を管理している各種タイマ(普通図柄変動タイマ、普通図柄役物タイマ等)のタイマ減算処理を行う(ステップS102)。
続いて、主制御CPU600aには、特別図柄1始動口スイッチ44a(図6参照)と、特別図柄2始動口スイッチ45a(図6参照)と、普通図柄始動口スイッチ47a(図6参照)と、右上一般入賞口スイッチ48a1(図6参照),左上一般入賞口スイッチ48b1(図6参照),左中一般入賞口スイッチ48c1(図6参照),左下一般入賞口スイッチ48d1(図6参照)と、アウト口スイッチ49a(図6参照)と、大入賞口スイッチ46c(図6参照)を含む各種スイッチ類のON/OFF信号が入力され、主制御RAM600c内の作業領域にON/OFF信号レベルや、その立ち上がり状態が記憶される(ステップS103)。
次いで、主制御CPU600aは、乱数管理処理を行う(ステップS104)。具体的には、当否抽選に使用する普通図柄、特別図柄等の乱数を更新する処理を行うものである。
次いで、主制御CPU600aは、エラー管理処理を行う(ステップS105)。なお、エラー管理処理は、遊技球の補給が停止したり、あるいは、遊技球が詰まったり、特別図柄1始動口スイッチ44a(図6参照)、特別図柄2始動口スイッチ45a(図6参照)、普通図柄始動口スイッチ47a(図6参照)、右上一般入賞口スイッチ48a1(図6参照)、左上一般入賞口スイッチ48b1(図6参照)、左中一般入賞口スイッチ48c1(図6参照)、左下一般入賞口スイッチ48d1(図6参照)、アウト口スイッチ49a(図6参照)、大入賞口スイッチ46c(図6参照)の断線など、機器内部に異常が生じていないかの判定を行うものである。
次いで、主制御CPU600aは、主制御RAM600c(図6参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値が「1」~「6」の範囲内か否かを示すRAMエラーフラグを確認する(ステップS106)。RAMエラーフラグがONに設定されていれば(ステップS106:YES)、主制御CPU600aは、主制御RAM600c(図6参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値が「1」~「6」の範囲外となっていると判断し、図柄に関連する処理をスキップし、ステップS119の処理に進む。一方、RAMエラーフラグがOFFに設定されていれば(ステップS106:NO)、主制御CPU600aは、主制御RAM600c(図6参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値が「1」~「6」の範囲内となっていると判断し、ステップS107の処理に進む。
次いで、主制御CPU600aは、設定変更中フラグを確認する(ステップS107)。設定変更中フラグがONに設定されていれば(ステップS107:YES)、主制御CPU600aは、本来電源投入時でしか変更できない設定値の変更状態となっているイレギュラー状態と判断し、ステップS117の処理に進む。一方、設定変更中フラグがOFFに設定されていれば(ステップS107:NO)、主制御CPU600aは、遊技者に有利な特別遊技状態を発生させる確率の設定値が変更中でないと判断し、ステップS108の処理に進む。
次いで、主制御CPU600aは、設定確認フラグを確認する(ステップS108)。設定確認フラグがONに設定されていれば(ステップS108:YES)、主制御CPU600aは、遊技者に有利な特別遊技状態を発生させる確率の設定値を確認中であると判断し、ステップS114の処理に進む。一方、設定確認フラグがOFFに設定されていれば(ステップS108:NO)、主制御CPU600aは、遊技者に有利な特別遊技状態を発生させる確率の設定値を確認中でないと判断し、ステップS109の処理に進む。
次いで、主制御CPU600aは、賞球管理処理を実行する(ステップS109)。この賞球管理処理は、払出制御基板70(図6参照)に払出し動作を行わせるための払出制御コマンドPAY_CMDを出力している。
次いで、主制御CPU600aは、普通図柄処理を実行する(ステップS110)。この普通図柄処理は、普通図柄の当否抽選を実行し、その抽選結果に基づいて普通図柄の変動パターンや普通図柄の停止表示状態を決定したりするものである。なお、この処理の詳細は後述することとする。
次いで、主制御CPU600aは、普通電動役物管理処理を実行する(ステップS1111)。この普通電動役物管理処理は、普通図柄処理(ステップS110)の抽選結果に基づき、普通電動役物開放遊技発生に必要な普通電動役物ソレノイド45c(図6参照)の制御に関する信号が生成されるものである。
次いで、主制御CPU600aは、特別図柄処理を実行する(ステップS112)。この特別図柄処理では、特別図柄の当否抽選を実行し、その抽選の結果に基づいて特別図柄の変動パターンや特別図柄の停止表示態様を決定するものである。なお、この処理の詳細は後述することとする。
ところで、特別図柄処理を実行する際、主制御CPU600aは、特別図柄の当否抽選に関し、主制御RAM600c(図6参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値に基づいて、特別図柄の当否抽選を行う。そのため、主制御CPU600aは、主制御RAM600c(図6参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値が「1」~「6」の範囲内であるか否かを確認し、範囲外であれば、RAMエラーフラグにONを設定する。
次いで、主制御CPU600aは、特別電動役物管理処理を実行する(ステップS113)。この特別電動役物管理処理では、主に、大当たり抽選結果が「大当たり」又は「小当たり」であった場合、その当りに対応した当り遊技を実行制御するために必要な設定処理を行うものである。この際、特別電動役物ソレノイド46b(図6参照)の制御に関する信号も生成される。なお、大当たり抽選結果が「大当たり」又は「小当たり」であった場合、それに関するコマンド(演出制御コマンドDI_CMD)が演出制御基板90に送信される。
次いで、主制御CPU600aは、主制御RAM600c(図6参照)内に記憶されている遊技者に有利な特別遊技状態を発生させる確率の設定値を確認する処理を行う(ステップS114)。
次いで、主制御CPU600aは、図8(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されているプログラムを読み出し、賞球入賞数管理処理2を実行する(ステップS115)。この賞球入賞数管理処理2では、図20に示すステップS44の賞球入賞数管理処理1にて算出した値を計測表示装置610(図6、図7(a)参照)に表示させる処理を行うものである。
ところで、賞球入賞数管理処理2は、図22に示すように、RAMエラー(図22に示すステップS106)、設定値の変更状態となっているイレギュラー状態(図22に示すステップS107)は処理されないこととなる。
次いで、主制御CPU600aは、ソレノイド駆動処理を行う(ステップS116)。この際、主制御CPU600aは、普通電動役物管理処理(ステップS111)にて生成された普通電動役物ソレノイド45c(図6参照)の制御に関する信号を確認すると共に、特別電動役物管理処理(ステップS113)にて生成された特別電動役物ソレノイド46b(図6参照)の制御に関する信号を確認する。そしてこの信号に基づき、普通電動役物ソレノイド45c又は特別電動役物ソレノイド46bの作動/停止が制御され、開閉部材45b(図5参照)が開放又は閉止、あるいは、大入賞口(図示せず)が開放又は閉止するように開閉扉46a(図5参照)が動作することとなる。
次いで、主制御CPU600aは、LED管理処理を実行する(ステップS117)。このLED管理処理は、処理の進行状態に応じて、特別図柄表示装置50(図5参照)や普通図柄表示装置51(図5参照)への出力データを生成したり、当該データに基づく制御信号を出力したり、あるいは、設定変更中フラグ、設定確認フラグがONに設定されている場合は、設定表示装置620(図6、図7(b)参照)への出力データを生成したり、当該データに基づく制御信号を出力したりする処理である。この処理により、特別図柄表示装置50、普通図柄表示装置51に抽選結果が表示され、設定表示装置620に遊技者に有利な特別遊技状態を発生させる確率の設定値が表示されることとなる。
次いで、主制御CPU600aは、外部端子管理処理を実行する(ステップS118)。この外部端子管理処理では、遊技場の遊技島管理に使用されるホールコンピュータ(図示せず)に、当り遊技中、当りの発生回数、特別図柄の変動回数、入賞口への入賞球検出情報など、所定の遊技情報が出力されるものである。また、設定変更中フラグ、設定確認フラグがONに設定されている場合は、セキュリティ信号の出力が行われる。
次いで、主制御CPU600aは、割込み許可状態に戻し(ステップS119)、主制御RAM600cの通常用スタック領域600cc(図8(a)参照)に退避させておいたレジスタの内容を復帰させタイマ割込みを終える(ステップS120)。これにより、割込み処理ルーチンからメイン処理(図20参照)に戻ることとなる。
<普通図柄処理の説明>
次に、図23を参照して、上記普通図柄処理について詳細に説明する。
図23に示すように、普通図柄処理は、先ず、ゲートからなる普通図柄始動口47(図5参照)において、遊技球の通過を検出したか否かを確認、すなわち、普通図柄始動口47の普通図柄始動口スイッチ47a(図6参照)の信号レベルを確認する(ステップS150)。そして遊技球の通過を検出した場合(ステップS150:YES)、主制御CPU600aは、普通図柄の始動保留球数が例えば4以上か否かを判断するため、普通図柄の始動保留球数が格納されている主制御RAM600cの通常用RAM領域600ca(図8(a)参照)を確認する(ステップS151)。その際、普通図柄の始動保留球数が4未満であれば(ステップS151:≠MAX)、普通図柄の始動保留球数を1加算する(ステップS152)。その後、主制御CPU600aは、普通図柄の当否抽選に用いられる普通図柄当り判定用乱数値を普通図柄の始動保留球数が格納されている主制御RAM600cの通常用RAM領域600ca(図8(a)参照)に格納した上で(ステップS153)、ステップS154の処理に進む。
一方、ステップS150にて、遊技球の通過を検出しなかった場合(ステップS150:NO)、ステップS151にて、普通図柄の始動保留球数が4以上であると判断した場合(ステップS151:=MAX)には、ステップS152~S153の処理は行わず、ステップS154の処理に進む。
主制御CPU600aは、ステップS154の処理に進むと、普通図柄当たり作動フラグがONに設定されているか、すなわち、普通図柄当たり作動フラグに5AHが設定されているかを確認する(ステップS154)。普通図柄当たり作動フラグに5AHが設定されていれば(ステップS154:ON)、普通図柄が当たり中であると判断し、普通図柄の表示データの更新を行った後(ステップS153)、普通図柄処理を終える。
一方、普通図柄当たり作動フラグに5AHが設定されていなければ(ステップS154:OFF)、普通図柄の挙動を示す処理状態、すなわち、普通図柄動作ステータスフラグの値を確認する(ステップS155)。そして、普通図柄動作ステータスフラグが00Hであれば、主制御CPU600aは、普通図柄の変動開始前の状態であると判断し、ステップS156に進み、普通図柄の始動保留球数が0か否かを確認する(ステップS156)。
主制御CPU600aは、普通図柄の始動保留球数が格納されている主制御RAM600cの通常用RAM領域600ca(図8(a)参照)を確認した上で、0であると判断した場合(ステップS156:=0)は、普通図柄の表示データの更新を行った後(ステップS153)、普通図柄処理を終える。一方、0でないと判断した場合(ステップS156:≠0)は、普通図柄の始動保留球数を1減算する(ステップS157)。
その後、主制御CPU600aは、図29(a)に示す普通図柄当たり判定テーブルNPP_TBLを用いて主制御RAM600cの通常用RAM領域600ca(図8(a)参照)に格納されている普通図柄の始動保留球数に対応した乱数値の当たり判定を行う。すなわち、主制御CPU600aは、遊技状態を示す普通図柄確変フラグがOFFであれば、当該乱数値が、図29(a)に示す普通図柄当たり判定テーブルNPP_TBL(通常状態)の下限値(図示では、249)以上で上限値(図示では、250)以下か否かを判定し、下限値以上で上限値以下であれば、普通図柄当たり判定フラグに5AHをセットし、ONにする。それ以外の場合は、普通図柄当たり判定フラグをOFFにする。
一方、遊技状態を示す普通図柄確変フラグがONであれば、当該乱数値が、図29(a)に示す普通図柄当たり判定テーブルNPP_TBL(確変状態)の下限値(図示では、4)以上で上限値(図示では、250)以下か否かを判定し、下限値以上で上限値以下であれば、普通図柄当たり判定フラグに5AHをセットし、ONにする。それ以外の場合は、普通図柄当たり判定フラグをOFFにセットする処理を行う(ステップS158)。
そして、主制御CPU600aは、上記乱数抽選処理にて決定した抽選結果に基づいて、停止図柄(普通図柄停止図柄)を決定する(ステップS159)。
次いで、主制御CPU600aは、普通図柄の変動時間を短くする普通図柄時短フラグがONに設定されているかを確認し、ONに設定されていれば、普通図柄変動タイマにそれに応じた変動時間を設定し、OFFに設定されていれば、普通図柄変動タイマに通常の変動時間を設定する処理を行う(ステップS160)。
次いで、主制御CPU600aは、普通図柄の始動保留球数に対応した普通図柄の当否抽選に用いられる乱数値が格納されている主制御RAM600cの通常用RAM領域600ca(図8(a)参照)の記憶領域をシフトする(ステップS161)。すなわち、普通図柄の始動保留球数を最大で4個保留できるとすると、普通図柄の始動保留球数4に対応した普通図柄の当否抽選に用いられる乱数値を普通図柄の始動保留球数3に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図8(a)参照)にシフトし、普通図柄の始動保留球数3に対応した普通図柄の当否抽選に用いられる乱数値を普通図柄の始動保留球数2に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図8(a)参照)にシフトし、普通図柄の始動保留球数2に対応した普通図柄の当否抽選に用いられる乱数値を普通図柄の始動保留球数1に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図8(a)参照)にシフトするという処理を行う。
この処理の後、主制御CPU600aは、上記ステップS155にて用いた普通図柄動作ステータスフラグに01Hを設定し、普通図柄の始動保留球数4に対応した普通図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図8(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)後、普通図柄処理を終える。
<特別図柄処理の説明>
次に、図24~図29を参照して、上記特別図柄処理について詳細に説明する。
図24に示すように、特別図柄処理は、先ず、特別図柄1始動口44(図5参照)の特別図柄1始動口スイッチ44a(図6参照)において、遊技球の入球(入賞球)を検出した否かを確認し(ステップS200)、さらに、特別図柄2始動口45(図5参照)の特別図柄2始動口スイッチ45a(図6参照)において、遊技球の入球(入賞球)を検出したか否かを確認する(ステップS201)。
<特別図柄処理:始動口チェック処理の説明>
この処理について、図25を用いて詳しく説明すると、主制御CPU600aは、特別図柄1始動口44又は特別図柄2始動口45に遊技球が入球(入賞)したか否かを確認、すなわち、特別図柄1始動口44の特別図柄1始動口スイッチ44a又は特別図柄2始動口45の特別図柄2始動口スイッチ45aのレベルを確認する(ステップS250)。これにより、遊技球の入球(入賞)を検出しなければ(ステップS250:NO)、特別図柄処理を終える。
一方、遊技球の入球(入賞)を検出すれば(ステップS250:YES)、主制御CPU600aは、特別図柄の変動契機となる始動保留球数が所定数、主制御RAM600cの通常用RAM領域600ca(図8(a)参照)に格納されているか否かを確認する(ステップS251)。その始動保留球数が、4未満であれば(ステップS251:≠MAX)、当該始動保留球数を1加算(+1)する(ステップS252)。
次いで、主制御CPU600aは、特別図柄停止の際用いられる乱数値及び変動パターン用乱数値並びに大当たり判定用乱数値を特別図柄の変動契機となる始動保留球数が格納されている主制御RAM600cの通常用RAM領域600ca(図8(a)参照)に格納する(ステップ253)。
次いで、主制御CPU600aは、現在の遊技状態(特別図柄大当たり判定フラグがONに設定されているか否か等)を確認し、先読み禁止状態か否かを判定する(ステップS254)。そして、先読み禁止状態でなければ(ステップS254:NO)、主制御CPU600aは、上記ステップS253にて主制御RAM600cの通常用RAM領域600ca(図8(a)参照)に格納した特別図柄の当否抽選に用いられる大当たり判定用乱数値を取得し(ステップS255)、さらに、図示しない始動口入賞時乱数判定テーブルを取得する(ステップS256)。
次いで、主制御CPU600aは、上記ステップS255にて取得した大当たり判定用乱数値及びステップS256にて取得した始動口入賞時乱数判定テーブル(図示せず)を用いて、大当たり抽選を行い、さらに、上記ステップS253にて主制御RAM600cの通常用RAM領域600ca(図8(a)参照)に格納した特別図柄用乱数値を用いて、大当たりの種類(ランクアップボーナス当り,通常の大当り等)を決定し、変動パターン用乱数値を用いて、変動パターンを決定し、それに応じた特別図柄始動口入賞コマンドを生成する(ステップS257)。なお、この特別図柄始動口入賞コマンドを生成する際、図14(a)、図17に示すような特別図柄変動パターン処理が実行されることとなる。
次いで、主制御CPU600aは、上記生成された特別図柄始動口入賞コマンドに応じた下位バイトの始動保留加算コマンドを生成する(ステップS258)。
一方、主制御CPU600aは、上記ステップS258の処理を終えるか、又は、上記ステップS251にて特別図柄1又は2の始動保留球数が4以上であるか(ステップS251:=MAX)、あるいは、先読み禁止状態であれば(ステップS254:YES)、増加した始動保留球数に応じた上位バイトの始動保留加算コマンドを生成する(ステップS259)。
次いで、主制御CPU600aは、上記ステップS258にて生成した下位バイトの始動保留加算コマンドと、上記ステップS259にて生成した上位バイトの始動保留加算コマンドとを結合した上で、始動保留加算コマンド(演出制御コマンドDI_CMD)として、演出制御基板90に送信する処理を行う(ステップS260)。
<特別図柄処理の説明>
かくして、図24に示すステップ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)。
<特別図柄処理:特別図柄変動開始処理の説明>
この処理について、図26を用いて詳しく説明すると、主制御CPU600aは、特別図柄の変動契機となる始動保留球数が0か否かを確認する(ステップS300)。すなわち、主制御CPU600aは、主制御RAM600cの通常用RAM領域600ca(図8(a)参照)に格納されているか否かを確認し、始動保留球数が0であると判断した場合(ステップS300:=0)、特別図柄動作ステータスフラグの値が00Hか否かを確認する(ステップS301)。特別図柄動作ステータスフラグの値が00Hであれば(ステップS301:YES)、特別図柄変動開始処理を終了する。
一方、特別図柄動作ステータスフラグの値が00Hでなければ(ステップS301:NO)、主制御CPU600aは、客待ちデモコマンドを演出制御コマンドDI_CMDとして演出制御基板90に送信する(ステップS302)。
次いで、主制御CPU600aは、特別図柄動作ステータスフラグに00Hをセットし(ステップS303)、特別図柄変動開始処理を終了する。
他方、主制御CPU600aは、始動保留球数が0でないと判断した場合(ステップS300:≠0)、始動保留球数を1減算(-1)し(ステップS304)、始動保留減算コマンドを演出制御コマンドDI_CMDとして、演出制御基板90に送信する(ステップS305)。
次いで、主制御CPU600aは、特別図柄停止の際用いられる乱数値及び変動パターン用乱数値並びに大当たり判定用乱数値(図25のステップS253参照)が格納されている主制御RAM600cの通常用RAM領域600ca(図8(a)参照)内の記憶領域をシフトし(ステップS306)、始動保留4に対応した特別図柄の当否抽選に用いられる乱数値が格納されていた主制御RAM600cの通常用RAM領域600ca(図8(a)参照)内の領域に0を設定する(ステップS307)。
次いで、主制御CPU600aは、図25のステップS253にて主制御RAM600cの通常用RAM領域600ca(図8(a)参照)に格納した各始動保留球数(始動保留1~4)に対応した乱数値(大当たり判定用乱数値)が、特別図柄の大当たりか小当たりかを図29(b)に示す特別図柄大当たり判定テーブルSDH_TBL、図29(c)に示す特別図柄小当たり判定テーブルSDP_TBLを用いて判定する。すなわち、主制御CPU600aは、遊技状態を示す特別図柄確変フラグがOFFであれば、大当たり判定用乱数値が、図29(b)に示す特別図柄大当たり判定テーブルSDH_TBL(通常状態)の下限値(図示では、10001)以上で上限値(図示では、10164)以下か否かを判定し、下限値以上で上限値以下であれば、特別図柄大当たり判定フラグに5AHをセットし、ONにする。それ以外の場合は、特別図柄大当たり判定フラグをOFFにする。
一方、遊技状態を示す特別図柄確変フラグがONであれば、大当たり判定用乱数値が、図29(b)に示す特別図柄大当たり判定テーブルSDH_TBL(確変状態)の下限値(図示では、10001)以上で上限値(図示では、11640)以下か否かを判定し、下限値以上で上限値以下であれば、特別図柄大当たり判定フラグに5AHをセットし、ONにする。それ以外の場合は、特別図柄大当たり判定フラグをOFFにセットする処理を行う。
他方、主制御CPU600aは、特別図柄2変動中フラグがOFFであれば、大当たり判定用乱数値が、図29(c)に示す特別図柄小当たり判定テーブルSDP_TBL(特別図柄1)の下限値(図示では、20001)以上で上限値(図示では、20164)以下か否かを判定し、下限値以上で上限値以下であれば、特別図柄小当たり判定フラグに5AHをセットし、ONにする。それ以外の場合は、特別図柄小当たり判定フラグをOFFにセットする処理を行う。
一方、特別図柄2変動中フラグがONであれば、大当たり判定用乱数値が、図29(c)に示す特別図柄小当たり判定テーブルSDP_TBL(特別図柄2)の下限値(図示では、20001)以上で上限値(図示では、20082)以下か否かを判定し、下限値以上で上限値以下であれば、特別図柄小当たり判定フラグに5AHをセットし、ONにする。それ以外の場合は、特別図柄小当たり判定フラグをOFFにセットする処理を行う(ステップS308)。
かくして、上記のような当たり判定処理(ステップS308)を終えた後、主制御CPU600aは、図33のステップS253にて主制御RAM600cの通常用RAM領域600ca(図8(a)参照)に格納した特別図柄停止の際用いられる乱数値を用いて、特別図柄の停止図柄を生成する(ステップS309)。
次いで、主制御CPU600aは、通常状態、時短状態、潜伏確変状態、確変状態のいずれかの遊技状態に移行する準備を行う(ステップS310)。
次いで、主制御CPU600aは、図25のステップS253にて主制御RAM600cの通常用RAM領域600ca(図8(a)参照)に格納した変動パターン用乱数値を用いて特別図柄の変動パターンの生成を行い、その生成された特別図柄の変動パターンの変動パターンコマンドを演出制御コマンドDI_CMDとして、演出制御基板90に送信する(ステップS311)。この際、図14(a)、図17に示すような特別図柄変動パターン処理が実行されることとなる。
次いで、主制御CPU600aは、特別図柄変動中フラグに5AHを設定し、ON状態にする(ステップS312)。
次いで、主制御CPU600aは、液晶表示装置41に表示される特別図柄の指定を行う図柄指定コマンドを生成し(ステップS313)、その生成した図柄指定コマンドを演出制御コマンドDI_CMDとして演出制御基板90に送信する処理を行う(ステップS314)。
次いで、主制御CPU600aは、特別図柄動作ステータスフラグに02Hを設定し(ステップS315)、特別図柄変動開始処理を終了する。
<特別図柄処理の説明>
他方、図24に示すように、特別図柄動作ステータスフラグの値が02Hの場合、主制御CPU600aは、特別図柄変動中(特別図柄が現在変動中であることを示す)であると判定し、特別図柄変動中処理を行う(ステップS206)。
<特別図柄処理:特別図柄変動中処理の説明>
この処理について、図27を用いて詳しく説明すると、主制御CPU600aは、まず、図26のステップS311にて特別図柄変動タイマに設定された変動時間が経過したか、すなわち、0になったか否かを確認する(ステップS350)。特別図柄変動タイマが0でなければ(ステップS350:NO)、主制御CPU600aは、特別図柄変動中処理を終了する。
一方、特別図柄変動タイマが0であれば(ステップS350:YES)、主制御CPU600aは、図柄停止コマンドを演出制御コマンドDI_CMDとして演出制御基板90に送信する(ステップS351)。
次いで、主制御CPU600aは、特別図柄動作ステータスフラグに03Hを設定し、特別図柄変動中フラグに00Hを設定する。そしてさらに、主制御CPU600aは、特別図柄の当否抽選結果を一定時間維持するために、特別図柄変動タイマに例えば約500msの時間を設定する(ステップS352)。その後、主制御CPU600aは、特別図柄変動中処理を終了する。
<特別図柄処理の説明>
一方、図24に示すように、特別図柄動作ステータスフラグの値が03Hの場合、主制御CPU600aは、特別図柄確認中(特別図柄の変動が終了して停止中であることを示す)であると判定し、特別図柄確認時間中処理を行う(ステップS207)。
<特別図柄処理:特別図柄確認中処理の説明>
この処理について、図28を用いて詳しく説明すると、主制御CPU600aは、まず、図26のステップS311にて特別図柄変動タイマに設定された変動時間が経過したか、すなわち、0になったか否かを確認する(ステップS400)。特別図柄変動タイマが0でなければ(ステップS400≠0)、主制御CPU600aは、特別図柄確認時間中処理を終了する。
一方、特別図柄変動タイマが0であれば(ステップS400=0)、主制御CPU600aは、特別図柄動作ステータスフラグに01Hを設定し(ステップS401)、特別図柄大当たり判定フラグがONに設定されているか(5AHが設定されているか)を確認する(ステップS402)。特別図柄大当たり判定フラグがONに設定されていれば(5AHが設定されていれば)(ステップS402:YES)、特別図柄大当たり判定フラグに00Hを設定し、特別図柄大当たり作動フラグに5AHを設定し、そして普通図柄時短フラグに00Hを設定し、普通図柄確変フラグに00Hを設定し、さらに、特別図柄時短フラグに00Hを設定し、特別図柄確変フラグに00Hを設定し、後述する特別図柄時短回数カウンタ及び特別図柄確変回数カウンタに00Hを設定する処理を行う(ステップS403)。その後、主制御CPU600aは、特別図柄確認時間中処理を終了する。
他方、特別図柄大当たり判定フラグがONに設定されていなければ(5AHが設定されていなければ)(ステップS402:NO)、主制御CPU600aは、特別図柄小当たり判定フラグがONに設定されているか(5AHが設定されているか)を確認する(ステップS404)。特別図柄小当たり判定フラグがONに設定されていれば(5AHが設定されていれば)(ステップS404:YES)、特別図柄小当たり判定フラグに00Hを設定し、特別図柄小当たり作動フラグに5AHを設定する(ステップS405)。
主制御CPU600aは、上記ステップS405の処理を終えた後、又は、特別図柄小当たり判定フラグがONに設定されていなければ(5AHが設定されていなければ)(ステップS404:NO)、特別図柄時短回数カウンタの値が0か否かを確認する(ステップS406)。
特別図柄時短回数カウンタの値が0でなければ(ステップS406:NO)、特別図柄時短回数カウンタの値を1減算(-1)し(ステップS407)、主制御CPU600aは、再度、特別図柄時短回数カウンタの値が0か否かを確認する(ステップS408)。そして、特別図柄時短回数カウンタの値が0であれば(ステップS408:YES)、普通図柄時短フラグに00Hを設定すると共に、普通図柄確変フラグに00Hを設定し、さらに、普通図柄時短フラグに00Hを設定する(ステップS409)。
上記ステップS409の処理を終えた後、又は、特別図柄時短回数カウンタの値が0(ステップS406:YES)、あるいは、特別図柄時短回数カウンタの値が0でなければ(ステップS408:NO)、主制御CPU600aは、特別図柄確変回数カウンタの値が0か否かを確認する(ステップS410)。特別図柄確変回数カウンタの値が0であれば(ステップS410:YES)、主制御CPU600aは、特別図柄確認時間中処理を終了する。
一方、特別図柄確変回数カウンタの値が0でなければ(ステップS410:NO)、主制御CPU600aは、特別図柄確変回数カウンタの値を1減算(-1)し(ステップS411)、再度、特別図柄確変回数カウンタの値が0か否かを確認する(ステップS412)。特別図柄確変回数カウンタの値が0でなければ(ステップS412:NO)、主制御CPU600aは、特別図柄確認時間中処理を終了する。
一方、特別図柄確変回数カウンタの値が0であれば(ステップS412:YES)、主制御CPU600aは、普通図柄時短フラグに00Hを設定し、普通図柄確変フラグに00Hを設定し、特別図柄時短フラグに00Hを設定し、特別図柄確変フラグに00Hを設定する処理を行い(ステップS413)、特別図柄確認時間中処理を終了する。
<主制御:特別図柄処理の説明>
かくして、図24に示す上記ステップS205、ステップS206、ステップS207のいずれかの処理を終えると、主制御CPU600aは、特別図柄の表示データの更新を行った後(ステップS208)、特別図柄処理を終える。
しかして、以上説明した本実施形態によれば、プログラム容量の削減を図ることができると共に、ROMのデータ容量の削減を図ることができる。
なお、本実施形態においては、図22に示すタイマ割込み処理を、図8(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているプログラムを読み出して実行する例を示したが、それに限らず、図22に示すタイマ割込み処理のエラー管理処理(ステップS105)を、図8(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されているプログラムを主制御CPU600aにて読み出して実行させるようにしても良い。また、この際、図22に示すタイマ割込み処理のエラー管理処理(ステップS105)に関するデータについても、図8(b)に示す主制御ROM600bの計測用データ領域600bgに配置するようにしても良い。これにより、図8(b)に示す主制御ROM600bの通常用プログラム領域600baの容量を削減することが可能となる。
さらに、図22に示すタイマ割込み処理のエラー管理処理(ステップS105)にて、遊技球の払出しに関する異常や、主制御基板60(主制御CPU600a)から払出制御基板70に払出制御コマンドPAY_CMDを送信する際の送信異常や、払出制御基板70自体の異常、大当たりを判定する大当たり判定用乱数の異常などの遊技結果に関するエラーについては、図8(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているプログラムを主制御CPU600aにて読み出して、エラーの検出及び判定を行うと共に、演出制御CPU900に対してエラー報知を実行するための演出制御コマンドDI_CMDを送信する処理を行うようにしても良い。そしてさらに、それ以外の扉開放エラーや磁気、電波、振動に関するエラー等については、図8(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されているプログラムを主制御CPU600aにて読み出して、エラーの検出及び判定を行うと共に、演出制御CPU900に対してエラー報知を実行するための演出制御コマンドDI_CMDを送信する処理を行うようにしても良い。これにより、遊技結果に関するエラー処理と、それ以外のエラー処理とをプログラム上で区別することができるため、エラーの種類に応じた処理をそれぞれのプログラムで独立的に実行することができ、もって、プログラムの変更や管理を簡素化することができる。
ところで、主制御ROM600bの通常用プログラム領域600baに格納されているプログラムを主制御CPU600aにて読み出して、エラーの検出及び判定を行うエラーに関しては、例えば、大当たり判定用乱数の異常については、図22に示すタイマ割込み処理の乱数管理処理(ステップS104)にて行い、異常がある場合には、乱数管理処理(ステップS104)の中で、演出制御CPU900に対してエラー報知を実行するための演出制御コマンドDI_CMDを送信する処理を行うようにしても良い。これにより、エラー管理処理(ステップS105)の実行を待たずして、即座に、エラー報知を行うことができるため、遊技結果に直接的に影響を及ぼすようなエラーについては、即座にエラー報知を行うことが可能となる。また、遊技球の払出しに関する異常や、主制御基板60(主制御CPU600a)から払出制御基板70に払出制御コマンドPAY_CMDを送信する際の送信異常や、払出制御基板70自体の異常などについては、図22に示すタイマ割込み処理の賞球管理処理(ステップS109)の中で、演出制御CPU900に対してエラー報知を実行するための演出制御コマンドDI_CMDを送信する処理を行うようにしても良い。
しかして、このように、主制御ROM600bの通常用プログラム領域600baに格納されているプログラムを主制御CPU600aにて読み出して、エラーの検出及び判定を行うエラーに関しては、それぞれが個別の処理(乱数管理処理(ステップS104)、エラー管理処理(ステップS105)、賞球管理処理(ステップS109))の中で、エラー判定の直後に演出制御コマンドDI_CMDを送信するような構成としても良い。
他方で、図8(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されているプログラムを主制御CPU600aにて読み出して、エラーの検出及び判定を行うエラーに関しては、エラー管理処理(ステップS105)の中で、エラーの検出及び判定、並びに、演出制御CPU900に対してエラー報知を実行するための演出制御コマンドDI_CMDを送信するように構成する。この際、主制御CPU600aは、エラー管理処理(ステップS105)にて、複数のエラーについて、まず、エラーが発生しているか否かの検出処理を行い、検出処理の結果、一又は複数のエラーの発生が検出された場合には、一又は複数のエラーについてエラーが発生していることを示すエラーフラグを設定するための判定処理を行う。そして、その判定処理の結果、主制御CPU600aは、エラーフラグが設定されたものについて、演出制御CPU900に対してエラー報知を実行するための演出制御コマンドDI_CMDを順に送信することとなる。しかして、このように、図8(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されているプログラムを主制御CPU600aにて読み出して、エラーの検出及び判定を行うエラーに関しては、複数のエラーについての検出処理及び判定処理を、まとめて行った後に、必要に応じて、エラー報知を実行するための演出制御コマンドDI_CMDを演出制御CPU900に対して送信するようにしている。そのため、上述した図8(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているプログラムを主制御CPU600aにて読み出して、エラーの検出及び判定を行うエラーのように、一のエラーに対して検出処理、判定処理、エラー報知を実行するための演出制御コマンドDI_CMDの送信処理を個別に行うものとは異なる構成となっている。これは、図8(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されているプログラムを主制御CPU600aにて読み出して、エラーの検出及び判定を行うエラーに関しては、遊技結果に直接的に影響を及ぼすものではないため、即座に報知を行う必要性が低いためである。そのため、エラー報知の即時性よりも、プログラム自体の処理の効率性を重視した結果、複数のエラーの検出及び判定を優先的に行った後、必要なものについてエラー報知を実行するための演出制御コマンドDI_CMDの送信処理を行う構成としている。
ところで、図8(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されているプログラムを主制御CPU600aにて読み出して行うエラー管理処理(ステップS105)に関しては、同じく、図8(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されているプログラムを主制御CPU600aにて読み出して行う図20に示す賞球入賞数管理処理1(ステップS44)、又は、図22に示す賞球入賞数管理処理2(ステップS115)の何れかを実行するために、図8(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているプログラムから、図8(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されているプログラムへと移行する処理を実行した際に、共に実行されるように構成することが望ましい。エラー管理処理(ステップS105)、賞球入賞数管理処理1(ステップS44)、賞球入賞数管理処理2(ステップS115)の実行に際して、図8(b)に示す主制御ROM600bの計測用プログラム領域600beに格納されているプログラムへと移行する処理、及び、図8(b)に示す主制御ROM600bの通常用プログラム領域600baに格納されているプログラムへと復帰する処理を個別に行う必要がなく、まとめて実行(エラー管理処理(ステップS105)及び賞球入賞数管理処理1(ステップS44)を実行、又は、エラー管理処理(ステップS105)及び賞球入賞数管理処理2(ステップS115)を実行)することができるため、移行、復帰にかかるプログラムの容量を削減することができるためである。