以下、図面を参照しつつ、本発明の一実施形態を詳細に説明する。図1は、本実施の形態におけるパチンコ遊技機の正面図であり、主要部材の配置レイアウトを示す。パチンコ遊技機(遊技機)1は、大別して、遊技盤面を構成する遊技盤(ゲージ盤)2と、遊技盤2を支持固定する遊技機用枠(台枠)3とから構成されている。遊技盤2には、ガイドレールによって囲まれた、ほぼ円形状の遊技領域が形成されている。この遊技領域には、遊技媒体としての遊技球が、図2に示す発射モータ61を含む打球発射装置により発射されて打ち込まれる。
遊技盤2の所定位置(図1に示す例では、遊技領域の右側方)には、第1特別図柄表示装置4Aと、第2特別図柄表示装置4Bとが設けられている。第1特別図柄表示装置4Aと第2特別図柄表示装置4Bはそれぞれ、例えば7セグメントやドットマトリクスのLED(発光ダイオード)等から構成され、可変表示ゲームの一例となる特図ゲームにおいて、各々が識別可能な複数種類の識別情報(特別識別情報)である特別図柄(「特図」ともいう)を、変動可能に表示(可変表示)する。例えば、第1特別図柄表示装置4Aと第2特別図柄表示装置4Bはそれぞれ、「0」〜「9」を示す数字や「−」を示す記号等から構成される複数種類の特別図柄を可変表示する。なお、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bにて表示される特別図柄は、「0」〜「9」を示す数字や「−」を示す記号等から構成されるものに限定されず、例えば7セグメントのLEDにおいて点灯させるものと消灯させるものとの組合せを異ならせた複数種類の点灯パターンが、複数種類の特別図柄として予め設定されていればよい。複数種類の特別図柄には、それぞれに対応した図柄番号が付されている。一例として、「0」〜「9」を示す数字それぞれには、「0」〜「9」の図柄番号が付され、「−」を示す記号には、「10」の図柄番号が付されていればよい。以下では、第1特別図柄表示装置4Aにより可変表示される特別図柄を「第1特図」ともいい、第2特別図柄表示装置4Bにより可変表示される特別図柄を「第2特図」ともいう。
第1特別図柄表示装置4Aと第2特別図柄表示装置4Bの上方には、第1保留表示器25Aと、第2保留表示器25Bとが設けられている。第1保留表示器25Aと第2保留表示器25Bはそれぞれ、特図ゲームにおける可変表示の保留記憶数(特図保留記憶数)を特定可能に表示(特図保留記憶表示)する。一例として、第1保留表示器25Aは、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームにおける可変表示の保留記憶数(第1特図保留記憶数)を特定可能に表示する。第2保留表示器25Bは、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームにおける可変表示の保留記憶数(第2特図保留記憶数)を特定可能に表示する。特図ゲームにおける可変表示の保留記憶は、普通入賞球装置6Aが形成する第1始動入賞口や普通可変入賞球装置6Bが形成する第2始動入賞口を遊技球が通過(進入)して始動入賞したときに発生する。すなわち、特図ゲームや飾り図柄の可変表示といった可変表示ゲームを実行するための始動条件(「実行条件」ともいう)は成立したが、先に成立した開始条件に基づく可変表示ゲームが実行中であることや、パチンコ遊技機1における遊技状態が大当り遊技状態あるいは小当り遊技状態に制御されていることなどにより、可変表示ゲームを開始するための開始条件が成立していないときに、成立した始動条件に対応する可変表示の保留記憶が行われる。第1保留表示器25Aと第2保留表示器25Bはそれぞれ、例えば第1特図保留記憶数と第2特図保留記憶数のそれぞれにおける上限値(例えば「4」)に対応した個数(例えば4個)のLEDを含んで構成されていればよい。
遊技盤2の所定位置(図1に示す例では、遊技領域の左側方)には、普通図柄表示器20が設けられている。一例として、普通図柄表示器20は、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bと同様に7セグメントやドットマトリクスのLED等から構成され、特別図柄とは異なる複数種類の識別情報である普通図柄(「普図」あるいは「普通図」ともいう)を変動可能に表示(可変表示)する。このような普通図柄の可変表示は、普図ゲーム(「普通図ゲーム」ともいう)と称される。普通図柄表示器20は、例えば「0」〜「9」を示す数字や「−」を示す記号等から構成される複数種類の普通図柄を可変表示する。複数種類の普通図柄には、それぞれに対応した図柄番号が付されている。一例として、「0」〜「9」を示す数字それぞれには、「0」〜「9」の図柄番号が付され、「−」を示す記号には、「10」の図柄番号が付されていればよい。なお、普通図柄表示器20は、「0」〜「9」を示す数字や「−」を示す記号等を普通図柄として可変表示するものに限定されず、例えば「○」と「×」とを示す装飾ランプ(又はLED)を交互に点灯させることや、「左」、「中」、「右」といった複数の装飾ランプ(またはLED)を所定順序で点灯させることにより、普通図柄を可変表示するものであってもよい。
普通図柄表示器20の上方には、普図保留表示器25Cが設けられている。普図保留表示器25Cは、普図ゲームにおける可変表示の保留記憶数(普図保留記憶数)を特定可能に表示(普図保留記憶表示)する。ここで、普図ゲームにおける可変表示の保留記憶は、遊技領域に設けられた通過ゲート41を遊技球が通過したときに発生する。すなわち、普図ゲームの可変表示を実行するための条件は成立したが、普図ゲームを開始するための条件が成立していないときに、普図ゲームの保留記憶が行われる。普図保留表示器25Cは、例えば普図保留記憶数の上限値(例えば「4」)に対応した個数(例えば4個)のLEDを含んで構成されていればよい。
遊技盤2における遊技領域の中央付近には、画像表示装置5が設けられている。画像表示装置5は、例えば液晶表示装置(LCD:Liquid Crystal Display)等から構成され、各種の演出画像を表示する表示領域を形成している。画像表示装置5の表示領域では、特図ゲームにおける第1特別図柄表示装置4Aによる第1特図の可変表示や第2特別図柄表示装置4Bによる第2特図の可変表示のそれぞれに対応して、例えば3つといった複数に分割された可変表示部となる飾り図柄表示部にて、各々が識別可能な複数種類の識別情報(装飾識別情報)である飾り図柄を可変表示する。
一例として、画像表示装置5の表示領域には、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rが配置されている。そして、特図ゲームにおいて、第1特別図柄表示装置4Aによる第1特図の可変表示と、第2特別図柄表示装置4Bによる第2特図の可変表示とのうち、いずれかの可変表示が開始されることに対応して、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rの全部において飾り図柄の可変表示(例えば上下方向あるいは左右方向のスクロール表示など)が開始される。その後、特図ゲームにおける可変表示結果として確定特別図柄が停止表示(完全停止表示)されるときに、画像表示装置5における「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rにて、飾り図柄の可変表示結果となる確定飾り図柄(最終停止図柄)が停止表示(完全停止表示)される。なお、「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rは、画像表示装置5の表示領域内で移動可能とされ、飾り図柄を縮小あるいは拡大して表示することができるようにしてもよい。特別図柄や飾り図柄が完全停止表示されたときには、各図柄の可変表示における表示結果が確定的に表示され、それ以後は今回の可変表示が進行しないことを遊技者が認識できる表示状態となる。これに対して、飾り図柄の可変表示を開始してから可変表示結果となる確定飾り図柄が完全停止表示されるまでの可変表示中には、飾り図柄の変動速度が「0」となって、飾り図柄が停留して表示され、例えば微少な揺れや伸縮などを生じさせる表示状態となることがある。このような表示状態は、仮停止表示ともいい、可変表示における表示結果が確定的に表示されていないものの、スクロール表示や更新表示による飾り図柄の変動が進行していないことを遊技者が認識可能となる。なお、仮停止表示には、微少な揺れや伸縮なども生じさせず、所定時間(例えば1秒間)よりも短い時間だけ、飾り図柄を完全停止表示することなどが含まれてもよい。完全停止表示や仮停止表示のように、特別図柄や飾り図柄の変動が進行していないことを遊技者が認識できる程度に表示図柄を停止表示することは、導出表示ともいう。
「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rにて可変表示される飾り図柄には、例えば8種類の図柄(英数字「1」〜「8」あるいは漢数字「一」〜「八」、英文字「A」〜「H」、所定のモチーフに関連する8個のキャラクタを示す演出画像、数字や文字あるいは記号とキャラクタとを組み合わせた演出画像など。なお、キャラクタを示す演出画像は、例えば人物や動物、これら以外の物体、もしくは、文字などの記号、あるいは、その他の任意の図形を示す画像であればよい。)が含まれていればよい。また、こうした8種類の飾り図柄の他に、ブランク図柄(大当り組合せを構成しない図柄)が含まれていてもよい。飾り図柄のそれぞれには、対応する図柄番号が付されている。例えば、「1」〜「8」を示す英数字それぞれに対して、「1」〜「8」の図柄番号が付されている。なお、可変表示される飾り図柄の種類数は、8種類のものに限定されず、任意の複数種類からなる飾り図柄であればよい。
飾り図柄の変動中には、「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rにおいて、例えば図柄番号が小さいものから大きいものへと順次に、上方から下方へ、あるいは、右側から左側へと、流れるようなスクロール表示が行われる。そして、図柄番号が最大(例えば「8」)である飾り図柄が表示されると、続いて図柄番号が最小(例えば「1」)である飾り図柄が表示される。あるいは、飾り図柄表示部5L、5C、5Rのうち少なくともいずれか1つ(例えば「左」の飾り図柄表示部5Lなど)において、図柄番号が大きいものから小さいものへとスクロール表示を行って、図柄番号が最小である飾り図柄が表示されると、続いて図柄番号が最大である飾り図柄が表示されるようにしてもよい。
画像表示装置5の表示領域には、始動入賞記憶表示部5Hも配置されている。始動入賞記憶表示部5Hでは、特図ゲームにおける可変表示の保留記憶数(特図保留記憶数)を特定可能に表示する。一例として、始動入賞記憶表示部5Hには、始動入賞の発生に基づき先に始動条件が成立した可変表示ゲームから順に左から右へと、表示色が変更される複数の表示部位が設けられている。そして、第1始動入賞口に遊技球が進入したことに基づき第1特別図柄表示装置4Aにおける第1特図を用いた特図ゲームの始動条件(第1始動条件)が成立したときには、通常非表示(透過色)となっている表示部位のうちの1つ(例えば非表示となっている表示部位のうち左端の表示部位)を青色表示に変化させる。また、第2始動入賞口に遊技球が進入したことに基づき第2特別図柄表示装置4Bにおける第2特図を用いた特図ゲームの始動条件(第2始動条件)が成立したときには、通常非表示となっている表示部位のうちの1つを赤色表示に変化させる。その後、第1特図を用いた特図ゲームの開始条件(第1開始条件)と第2特図を用いた特図ゲームの開始条件(第2開始条件)のいずれかが成立したときには、例えば左端の表示部位における表示を除去するとともに、各表示部位における表示を1つずつ左方向に移動させる。このとき、青色表示や赤色表示に変化していた表示部位のうちの1つ(例えば表示色が変化していた表示部位のうち右端の表示部位)は、非表示に戻る。ここで、保留記憶表示を行う際に、可変表示ゲームの始動条件が成立したことに基づく特図保留記憶数は特定できたものの、その始動条件が第1始動条件であるか第2始動条件であるかを特定できない場合に、例えば特図保留記憶数に対応する個数の表示部位を灰色表示に変化させることなどにより、特図保留記憶数の表示態様を所定の表示態様に変更してもよい。
なお、始動入賞記憶表示部5Hでは、特図保留記憶数を示す数字を表示することなどにより、特図保留記憶数を遊技者等が認識できるようにしてもよい。図1に示す例では、始動入賞記憶表示部5Hとともに、第1特別図柄表示装置4Aおよび第2特別図柄表示装置4Bの上部に、第1保留表示器25Aと第2保留表示器25Bとが設けられている。これに対して、始動入賞記憶表示部5Hと、第1保留表示器25Aおよび第2保留表示器25Bとのうち、いずれか一方のみを設けるようにしてもよい。
画像表示装置5の表示領域には、飾り図柄とは異なる識別情報としての色図柄を可変表示する色図柄表示部が設けられていてもよい。一例として、色図柄表示部には、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームが開始されるときに、色図柄の変動(例えば表示色の更新表示)が開始される「左」の色図柄表示部と、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームが開始されるときに、色図柄の変動が開始される「右」の色図柄表示部とが含まれていればよい。そして、特図ゲームにおいて可変表示結果となる確定特別図柄が完全停止表示されるときには、色図柄の変動が終了して、色図柄の可変表示結果となる確定色図柄が完全停止表示される。「左」および「右」の色図柄表示部にて可変表示される色図柄には、例えば5種類の図柄(「黄色」、「緑色」、「赤色」、「青色」、「紫色」など)といった、複数種類の色図柄が含まれていればよい。色図柄のそれぞれには、対応する図柄番号が付されている。一例として、「黄色」、「緑色」、「赤色」、「青色」、「紫色」の色図柄それぞれに対して、「1」〜「5」の図柄番号が付されていればよい。そして、例えば特別図柄の可変表示結果(特図表示結果)が「ハズレ」である場合には色図柄の可変表示結果として「黄色」の確定色図柄が停止表示され、特図表示結果が「大当り」で大当り種別が「非確変」である場合には色図柄の可変表示結果として「緑色」の確定色図柄が停止表示され、特図表示結果が「大当り」で大当り種別が「確変」である場合には色図柄の可変表示結果として「赤色」の確定色図柄が停止表示され、特図表示結果が「大当り」で大当り種別が「突確」である場合には色図柄の可変表示結果として「青色」の確定色図柄が停止表示され、特図表示結果が「小当り」である場合には色図柄の可変表示結果として「紫色」の確定色図柄が停止表示されればよい。
画像表示装置5の下方には、普通入賞球装置6Aと、普通可変入賞球装置6Bとが設けられている。普通入賞球装置6Aは、例えば所定の玉受部材によって常に一定の開放状態に保たれる第1始動入賞口を形成する。普通可変入賞球装置6Bは、図2に示す普通電動役物用のソレノイド81によって垂直位置となる通常開放状態と傾動位置となる拡大開放状態とに変化する一対の可動翼片を有する電動チューリップ型役物(普通電動役物)を備え、第2始動入賞口を形成する。一例として、普通可変入賞球装置6Bでは、普通電動役物用のソレノイド81がオフ状態であるときに可動翼片が垂直位置となることにより、遊技球が第2始動入賞口に進入しにくい通常開放状態となる。その一方で、普通可変入賞球装置6Bでは、普通電動役物用のソレノイド81がオン状態であるときに可動翼片が傾動位置となることにより、遊技球が第2始動入賞口に進入しやすい拡大開放状態となる。なお、普通可変入賞球装置6Bは、通常開放状態であるときでも、第2始動入賞口には遊技球が進入可能であるものの、拡大開放状態であるときよりも遊技球が進入する可能性が低くなるように構成してもよい。あるいは、普通可変入賞球装置6Bは、通常開放状態において、例えば第2始動入賞口を閉鎖することなどにより、第2始動入賞口には遊技球が進入しないように構成してもよい。
普通入賞球装置6Aに形成された第1始動入賞口に進入した遊技球は、例えば図2に示す第1始動口スイッチ22Aによって検出される。普通可変入賞球装置6Bに形成された第2始動入賞口に進入した遊技球は、例えば図2に示す第2始動口スイッチ22Bによって検出される。第1始動口スイッチ22Aによって遊技球が検出されたことに基づき、所定個数(例えば3個)の遊技球が賞球として払い出され、第1保留記憶数が所定の上限値(例えば「4」)以下であれば、第1始動条件が成立する。第2始動口スイッチ22Bによって遊技球が検出されたことに基づき、所定個数(例えば3個)の遊技球が賞球として払い出され、第2保留記憶数が所定の上限値以下であれば、第2始動条件が成立する。なお、第1始動口スイッチ22Aによって遊技球が検出されたことに基づいて払い出される賞球の個数と、第2始動口スイッチ22Bによって遊技球が検出されたことに基づいて払い出される賞球の個数は、互いに同一の個数であってもよいし、異なる個数であってもよい。
普通入賞球装置6Aと普通可変入賞球装置6Bの下方には、特別可変入賞球装置7が設けられている。特別可変入賞球装置7は、図2に示す大入賞口扉用のソレノイド82によって開閉駆動される大入賞口扉を備え、その大入賞口扉によって開放状態(第1状態)と閉鎖状態(第2状態)とに変化する大入賞口を形成する。一例として、特別可変入賞球装置7では、大入賞口扉用のソレノイド82がオフ状態であるときに大入賞口扉が大入賞口を閉鎖状態にする。その一方で、特別可変入賞球装置7では、大入賞口扉用のソレノイド82がオン状態であるときに大入賞口扉が大入賞口を開放状態にする。特別可変入賞球装置7に形成された大入賞口に進入した遊技球は、例えば図2に示すカウントスイッチ23によって検出される。カウントスイッチ23によって遊技球が検出されたことに基づき、所定個数(例えば13個)の遊技球が賞球として払い出される。
遊技盤2の表面には、上記の構成以外にも、遊技球の流下方向や速度を変化させる風車および多数の障害釘が設けられている。また、第1始動入賞口、第2始動入賞口および大入賞口とは異なる入賞口として、例えば所定の玉受部材によって常に一定の開放状態に保たれる一般入賞口が1つ、または複数設けられてもよい。この場合には、一般入賞口のいずれかに進入した遊技球が所定の一般入賞球スイッチによって検出されたことに基づき、所定個数(例えば10個)の遊技球が賞球として払い出されればよい。遊技領域の最下方には、いずれの入賞口にも進入しなかった遊技球が取り込まれるアウト口が設けられている。遊技機用枠3の左右上部位置には、効果音等を再生出力するためのスピーカ8L、8Rが設けられており、さらに遊技領域周辺部には、遊技効果ランプ9が設けられている。パチンコ遊技機1の遊技領域における各構造物(例えば普通入賞球装置6A、普通可変入賞球装置6B、特別可変入賞球装置7等)の周囲には、装飾用LEDが配置されていてもよい。
遊技領域の外周は複数の外レール部により囲われている。そして、これら複数の外レール部のうち、遊技領域の右下領域を囲う外レール部を構成する右下外レール部には当該パチンコ遊技機の遊技における状態表示部が形成されている。状態表示部には、遊技制御用マイクロコンピュータ100により駆動制御されて夫々が状態表示を行う状態表示LED200a、LED200b、LED200c、LED200dが設けられている。
状態表示LED200aは、大当り遊技状態に制御され、該大当り遊技状態が第1ラウンド数(例えば「15」)のときに点灯する。状態表示LED200bは、大当り遊技状態に制御され、該大当り遊技状態が第2ラウンド数(例えば「2」)のときに点灯する。状態表示LED200cは、時短制御とともに確率変動制御(確変制御)が行われているときに点灯する。状態表示LED200dは、遊技機に電力供給がなされたときに、バックアップ機能により電源断前の遊技状態を引き継いだ際に確率変動制御(確変制御)が行われているときに点灯する。
ここで、状態表示部が設けられる右下外レール部はパチンコ遊技機の機種が異なっていても共通して用いられる共用部品である。従って、遊技盤2の遊技領域における各種部品の取り付け位置やそれらのデザインが異なっても、状態表示部は同じ位置に取り付けられる。
しかしながら、パチンコ遊技機の機種が異なって仕様が変わった場合、状態表示部の表示内容が異なる場合がある。例えば状態表示LED200a、状態表示LED200bにより示される大当り遊技状態に制御されたときにラウンド数は本実施例のパチンコ遊技機であれば「2R」「15R」であるが、別の仕様のパチンコ遊技機においては異なる数字となる場合がある。
このため、これら状態表示LED200a、LED200b、LED200c、LED200dそれぞれの近傍には各状態表示LEDの機能を示す情報が記され、透明部材により形成される機能表示シールが貼付されている。例えば本実施例のパチンコ遊技機であれば、状態表示LED200aの近傍に「15R」と記され、LED200bの近傍に「2R」と記された機能表示シールが貼付される。これにより、共用部品である右下レール部の構造を変化させることなく、貼付する機能表示シールを変更することで状態表示LEDの役割の変更に対応することができる。
なお、機能表示シールは全ての状態表示部に対し1枚の機能表示シールにおいて全ての役割を記すように構成してもよいし複数の機能表示シールで分割して示すようにしてもよい。また、機能表示シールには当該機能表示シールに対応するパチンコ遊技機の機種を示す管理情報が記されている。管理情報は状態表示部において示す状態が異なるパチンコ遊技機について各々識別可能に設けられている。このため、誤った機能表示シールが貼付されていても、この管理情報を確認することでその旨を確認することができる。
なお、上記に限らず、第1特別図柄表示装置4Aや第2特別図柄表示装置4B、普通図柄表示器20を状態表示部に設けるようにしてもよい。さらに第1特別図柄表示装置4Aや第2特別図柄表示装置4B、普通図柄表示器に対する保留記憶数を表示する各保留表示部も状態表示部に設けるようにしてもよい。また、状態表示部を設ける箇所については、右下レール部に限らず、遊技者や遊技店の係員から視認できる箇所に設けられ、異なるパチンコ遊技機間で共通に用いられる部材であれば他の部材に設けてもよい。
遊技機用枠3の右下部位置には、遊技媒体としての遊技球を遊技領域に向けて発射するために遊技者等によって操作される打球操作ハンドルとなる操作ノブ30が設けられている。例えば、遊技者等による操作量(回転量)に応じて遊技球の弾発力を調整する。打球操作ハンドルには、打球発射装置が備える発射モータの駆動を停止させるための単発発射スイッチや、タッチリング(タッチセンサ)が設けられていればよい。遊技領域の下方における遊技機用枠3の所定位置には、賞球として払い出された遊技球や所定の球貸機により貸し出された遊技球を、打球発射装置へと供給可能に保持(貯留)する打球供給皿(上皿)が設けられている。例えば打球供給皿の上面における手前側の中央位置といった、パチンコ遊技機1の遊技機用枠3における所定位置には、押下操作などにより遊技者が操作可能な操作ボタンが設置されていてもよい。また、打球供給皿の下方には、打球供給皿に収容不能となった遊技球を保持(貯留)する余剰球受皿(下皿)が設けられている。
さらに、パチンコ遊技機1に隣接する所定位置には、プリペイドカード等を用いた球貸しを可能にするための処理が実行されるプリペイドカードユニット(カードユニット)が設置されてもよい。カードユニットは、プリペイドカードを取り込んで球貸しの処理を実行するだけでなく、会員カードや現金を取り込んで球貸しの処理を実行するものであってもよい。
普通図柄表示器20による普図ゲームは、遊技領域に設けられた通過ゲート41を通過した遊技球が図2に示すゲートスイッチ21によって検出されたことといった、普通図柄表示器20にて普通図柄の可変表示を実行するための普図始動条件が成立した後に、例えば前回の普図ゲームが終了したことといった、普通図柄の可変表示を開始するための普図開始条件が成立したことに基づいて、開始される。この普図ゲームでは、普通図柄の変動を開始させた後、所定の可変表示時間(普図変動時間)が経過すると、普通図柄の可変表示結果となる確定普通図柄を完全停止表示する。普通図柄の可変表示時間は、例えば各普図ゲームの開始時に、所定の乱数値を示す数値データを抽出することなどにより、複数種類の可変表示時間のうちで、いずれかに決定されればよい。普図ゲームにおける普通図柄の可変表示結果となる確定普通図柄として、例えば「7」を示す数字あるいは「○」を示す記号といった、特定の普通図柄(普図当り図柄)が停止表示されれば、普通図柄の可変表示結果が「普図当り」となる。その一方、確定普通図柄として、例えば「7」を示す数字以外の数字あるいは「×」を示す記号といった、普図当り図柄以外の普通図柄が停止表示されれば、普通図柄の可変表示結果が「普図ハズレ」となる。普通図柄の可変表示結果が「普図当り」となったことに対応して、普通可変入賞球装置6Bを構成する電動チューリップの可動翼片が傾動位置となる拡大開放制御が行われ、所定時間が経過すると垂直位置に戻る通常開放制御が行われる。
第1特別図柄表示装置4Aによる特図ゲームは、普通入賞球装置6Aに形成された第1始動入賞口に進入した遊技球が図2に示す第1始動口スイッチ22Aによって検出されたことなどにより第1始動条件が成立した後に第1開始条件が成立したことに基づいて、開始される。第1開始条件は、例えば前回の特図ゲームや大当り遊技状態あるいは小当り遊技状態が終了したときなどに、第1特図を用いた今回の特図ゲームが開始可能となることにより成立する。第2特別図柄表示装置4Bによる特図ゲームは、普通可変入賞球装置6Bに形成された第2始動入賞口に進入した遊技球が図2に示す第2始動口スイッチ22Bによって検出されたことなどにより第2始動条件が成立した後に第2開始条件が成立したことに基づいて、開始される。第2開始条件は、例えば前回の特図ゲームや大当り遊技状態あるいは小当り遊技状態が終了したときなどに、第2特図を用いた今回の特図ゲームが開始可能となることにより成立する。
第1特別図柄表示装置4Aや第2特別図柄表示装置4Bによる特図ゲームでは、特別図柄の可変表示を開始させた後、所定の可変表示時間(特図変動時間)が経過すると、特別図柄の可変表示結果となる確定特別図柄を完全停止表示する。特別図柄の可変表示時間は、各特図ゲームの開始時に、例えば図14に示すような変動パターン種別決定用の乱数値MR4を示す数値データや、変動パターン決定用の乱数値MR5を示す数値データなどに基づいて決定された変動パターンに対応して、複数種類の可変表示時間のうちで、いずれかに決定される。特図ゲームにおける特別図柄の可変表示結果は、特図表示結果ともいう。特図ゲームにおける特別図柄の可変表示結果となる確定特別図柄として、特定の特別図柄(大当り図柄)が停止表示されれば、特定表示結果としての「大当り」となり、大当り図柄とは異なる所定の特別図柄(小当り図柄)が停止表示されれば、所定表示結果としての「小当り」となり、大当り図柄や小当り図柄以外の特別図柄(ハズレ図柄)が停止表示されれば、非特定表示結果としての「ハズレ」となる。特図ゲームでの可変表示結果が「大当り」になった後には、特定遊技状態としての大当り遊技状態に制御される。また、特図ゲームでの可変表示結果が「小当り」になった後には、大当り遊技状態とは異なる小当り遊技状態に制御される。この実施の形態におけるパチンコ遊技機1では、一例として、「1」、「3」、「7」を示す数字を大当り図柄とし、「5」を示す数字を小当り図柄とし、「−」を示す記号をハズレ図柄としている。なお、第1特別図柄表示装置4Aによる特図ゲームにおける大当り図柄や小当り図柄、ハズレ図柄といった各図柄は、第2特別図柄表示装置4Bによる特図ゲームにおける各図柄とは異なる特別図柄となるようにしてもよいし、双方の特図ゲームにおいて共通の特別図柄が大当り図柄や小当り図柄、ハズレ図柄となるようにしてもよい。
この実施の形態では、大当り図柄となる「1」、「3」、「7」の数字を示す特別図柄のうち、「3」、「7」の数字を示す特別図柄を15ラウンド大当り図柄とし、「1」の数字を示す特別図柄を2ラウンド大当り図柄とする。特図ゲームにおける確定特別図柄として15ラウンド大当り図柄が停止表示された後に制御される第1特定遊技状態としての大当り遊技状態(15ラウンド大当り状態)では、特別可変入賞球装置7の開閉板が、第1期間となる所定期間(例えば29秒間)あるいは所定個数(例えば9個)の入賞球が発生するまでの期間にて大入賞口を開放状態とすることにより、特別可変入賞球装置7を遊技者にとって有利な第1状態に変化させるラウンドが実行される。こうしてラウンド中に大入賞口を開放状態とした開閉板は、遊技盤2の表面を落下する遊技球を受け止め、その後に大入賞口を閉鎖状態とすることにより、特別可変入賞球装置7を遊技者にとって不利な第2状態に変化させて、1回のラウンドを終了させる。15ラウンド大当り状態では、大入賞口の開放サイクルであるラウンドの実行回数が、第1回数(例えば「15」)となる。ラウンドの実行回数が「15」となる15ラウンド大当り状態における遊技は、15回開放遊技とも称される。
特図ゲームにおける確定特別図柄として2ラウンド大当り図柄が停止表示された後に制御される第2特定遊技状態としての大当り遊技状態(2ラウンド大当り状態)では、各ラウンドで特別可変入賞球装置7を遊技者にとって有利な第1状態に変化させる期間(開閉板により大入賞口を開放状態とする期間)が、15ラウンド大当り状態における第1期間よりも短い第2期間(例えば0.5秒間)となる。また、2ラウンド大当り状態では、ラウンドの実行回数が、15ラウンド大当り状態における第1回数よりも少ない第2回数(例えば「2」)となる。なお、2ラウンド大当り状態では、各ラウンドで大入賞口を開放状態とする期間が第2期間となることと、ラウンドの実行回数が第2回数となることのうち、少なくともいずれか一方が行われるように制御されればよく、それ以外の制御は15ラウンド大当り状態と同様に行われるようにしてもよい。ラウンドの実行回数が「2」となる2ラウンド大当り状態における遊技は、2回開放遊技とも称される。なお、2ラウンド大当り状態では、各ラウンドで特別可変入賞球装置7とは別個に設けられた所定の入賞球装置を、遊技者にとって不利な第2状態から遊技者にとって有利な第1状態に変化させ、所定期間(第1期間又は第2期間)が経過した後に第2状態へと戻すようにしてもよい。
また、15ラウンド大当り図柄となる「3」、「7」の数字を示す特別図柄のうち、「3」の数字を示す特別図柄が特図ゲームにおける確定特別図柄として停止表示されたことに基づく15ラウンド大当り状態が終了した後には、特別遊技状態の1つとして、通常状態に比べて特図ゲームにおける特別図柄の変動時間(特図変動時間)が短縮される時短状態に制御される。ここで、通常状態とは、大当り遊技状態等の特定遊技状態や時短状態等の特別遊技状態以外の遊技状態のことであり、パチンコ遊技機1の初期設定状態(例えばシステムリセットが行われた場合のように、電源投入後に初期化処理を実行した状態)と同一の制御が行われる。時短状態は、所定回数(例えば100回)の特図ゲームが実行されることと、可変表示結果が「大当り」となることのうち、いずれかの条件が先に成立したときに、終了すればよい。なお、特図ゲームにおける確定特別図柄として15ラウンド大当り図柄のうち「3」の数字を示す特別図柄が停止表示されたことに基づく15ラウンド大当り状態が終了した後には、時短状態とはならずに通常状態となるようにしてもよい。こうした「3」の数字を示す特別図柄のように、特図ゲームにおける確定特別図柄として停止表示されたことに基づく大当り遊技状態が終了した後に時短状態や通常状態に制御される15ラウンド大当り図柄は、非確変大当り図柄(「通常大当り図柄」ともいう)と称される。特図ゲームにおける確定特別図柄が非確変大当り図柄となる場合における特別図柄や飾り図柄の可変表示態様は、可変表示結果が「大当り」となる場合における「非確変」(「通常」ともいう)の可変表示態様(「大当り種別」ともいう)と称される。
15ラウンド大当り図柄となる「3」、「7」の数字を示す特別図柄のうち、「7」の数字を示す特別図柄が特図ゲームにおける確定特別図柄として停止表示されたことに基づく15ラウンド大当り状態が終了した後や、2ラウンド大当り図柄となる「1」の数字を示す特別図柄が特図ゲームにおける確定特別図柄として停止表示されたことに基づく2ラウンド大当り状態が終了した後には、時短状態とは異なる特別遊技状態の1つとして、例えば通常状態に比べて特図変動時間が短縮されるとともに、継続して確率変動制御(確変制御)が行われる確変状態(高確率遊技状態)に制御される。この確変状態では、各特図ゲームや飾り図柄の可変表示において、可変表示結果が「大当り」となって更に大当り遊技状態に制御される確率が、通常状態よりも高くなるように向上する。このような確変状態は、特図ゲームの実行回数に関わりなく、次に可変表示結果が「大当り」となるまで継続してもよい。これに対して、確変状態となった後に、所定回数(例えば100回)の特図ゲームが実行されることと、可変表示結果が「大当り」となることのうち、いずれかの条件が先に成立したときに、終了するようにしてもよい。また、確変状態において所定回数の特図ゲームが実行されたり可変表示結果が「大当り」となる以前であっても、特図ゲームが開始されるときに、所定の割合で確変状態が終了することがあるようにしてもよい。
「7」の数字を示す特別図柄のように、特図ゲームにおける確定特別図柄として停止表示されたことに基づく大当り遊技状態が終了した後に確変状態に制御される15ラウンド大当り図柄は、確変大当り図柄と称される。特図ゲームにおける確定特別図柄が確変大当り図柄となる場合における特別図柄や飾り図柄の可変表示態様は、可変表示結果が「大当り」となる場合における「確変」(「確変大当り」ともいう)の可変表示態様(「大当り種別」ともいう)と称される。「1」の数字を示す特別図柄のように、特図ゲームにおける確定特別図柄として停止表示されたことに基づく大当り遊技状態が終了した後に確変状態に制御される2ラウンド大当り図柄は、突確大当り図柄と称される。特図ゲームにおける確定特別図柄が突確大当り図柄となる場合における特別図柄や飾り図柄の可変表示態様は、可変表示結果が「大当り」となる場合における「突確」(「突確大当り」あるいは「突然確変大当り」ともいう)の可変表示態様(「大当り種別」ともいう)と称される。
確変状態や時短状態では、普通図柄表示器20による普図ゲームにおける普通図柄の可変表示時間を通常状態のときよりも短くする制御や、各回の普図ゲームで普通図柄の可変表示結果が「普図当り」となる確率を通常状態のときよりも向上させる制御、可変表示結果が「普図当り」となったことに基づく普通可変入賞球装置6Bにおける可動翼片の傾動時間を通常状態のときよりも長くする制御、その傾動回数を通常状態のときよりも増加させる制御といった、第2始動入賞口に遊技球が進入する可能性を高めて第2始動条件が成立しやすくなることで遊技者にとって有利となる制御が行われる。なお、確変状態や時短状態では、これらの制御のいずれか1つが行われるようにしてもよいし、複数の制御が組み合わせられて行われるようにしてもよい。確変状態と時短状態とでは、行われる制御が異なるようにしてもよいし、行われる制御の組合せ(同一の制御を含んでも含まなくてもよい)が異なるようにしてもよい。
特図ゲームにおける確定特別図柄として小当り図柄が停止表示された後には、大当り遊技状態とは異なる小当り遊技状態に制御される。この小当り遊技状態では、2ラウンド大当り状態と同様に特別可変入賞装置7を遊技者にとって有利な第1状態に変化させる可変入賞動作が行われる。すなわち、小当り遊技状態では、例えば特別可変入賞球装置7が備える開閉板により大入賞口を第2期間にわたり開放状態とする動作が、第2回数に達するまで繰り返し実行される。なお、小当り遊技状態では、2ラウンド大当り状態と同様に、大入賞口を開放状態とする期間が第2期間となることと、大入賞口を開放状態とする動作の実行回数が第2回数となることのうち、少なくともいずれか一方が行われるように制御されればよい。小当り遊技状態が終了した後には、遊技状態の変更が行われず、可変表示結果が「小当り」となる以前の遊技状態に継続して制御されることになる。ただし、可変表示結果が「小当り」となる可変表示ゲームに対応して、時短状態を終了する旨の判定がなされた場合には、小当り遊技状態の終了後に、通常状態へと制御されることになる。可変入賞動作により大入賞口を開放状態とする回数が「2」である小当り遊技状態における遊技は、2ラウンド大当り状態における遊技と同様に、2回開放遊技とも称される。なお、2ラウンド大当り状態における各ラウンドで特別可変入賞球装置7とは別個に設けられた入賞球装置を第1状態に変化させる場合には、小当り遊技状態でも、2ラウンド大当り状態と同様の態様で、その入賞球装置を第1状態に変化させるようにすればよい。
画像表示装置5の表示領域では、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bによる特別図柄の可変表示に対応して、飾り図柄の可変表示が行われる。すなわち、画像表示装置5の表示領域では、第1開始条件と第2開始条件のいずれか一方が成立したことに基づいて、例えば「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rにおける全部にて飾り図柄の加速表示(全図柄加速表示)を行い、所定速度に達すれば、飾り図柄の定速表示(全図柄定速表示)を行う。こうした全図柄加速表示や全図柄定速表示は、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rの全部にて飾り図柄を可変表示する全図柄変動に含まれる。こうした全図柄変動の後、例えば「左」→「右」→「中」といった所定順序で飾り図柄の減速表示(各図柄減速表示)を行い、変動速度が「0」となれば、飾り図柄を停留して表示する一方で、例えば微少な揺れや伸縮などを生じさせる仮停止表示を行う。そして、飾り図柄の可変表示を開始してからの経過時間が変動パターンなどに基づいて決定された可変表示時間に達したときには、可変表示結果となる確定飾り図柄を完全停止表示する。なお、確定飾り図柄を停止表示する手順としては、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rにおいて所定順序で飾り図柄を減速表示するものに限定されず、「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rにおいて同時に確定飾り図柄となる飾り図柄を減速表示(全図柄減速表示)するものが含まれていてもよい。
全図柄変動が開始された後には、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rのうち一部または全部の飾り図柄表示部にて、飾り図柄をリーチ表示状態で導出表示することがある。ここで、リーチ表示状態とは、画像表示装置5の表示領域にて導出表示された飾り図柄が大当り組合せの一部を構成しているときに未だ導出表示されていない飾り図柄(「リーチ変動図柄」ともいう)については変動が継続している表示状態、あるいは、一部または全部の飾り図柄が大当り組合せの一部または全部を構成しながら同期して変動している表示状態のことである。具体的には、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rにおける一部(例えば「左」および「右」の飾り図柄表示部5L、5Rなど)では予め定められた大当り組合せを構成する飾り図柄(例えば「7」の英数字を示す飾り図柄)が導出表示されているときに未だ導出表示されていない残りの飾り図柄表示部(例えば「中」の飾り図柄表示部5Cなど)では飾り図柄が変動している表示状態、あるいは、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rにおける一部または全部で飾り図柄が大当り組合せの一部または全部を構成しながら同期して変動している表示状態である。また、リーチ表示状態となったことに対応して、画像表示装置5の表示領域に飾り図柄とは異なるアニメーション画像や実写画像といった演出画像を表示させたり、背景画像の表示態様を変化させたり、飾り図柄の変動態様を変化させたりすることがある。このような演出画像の表示や背景画像の表示態様の変化、飾り図柄の変動態様の変化を、リーチ演出表示(あるいは単にリーチ演出)という。リーチ演出の中には、それが出現すると、通常のリーチ演出(ノーマルリーチ)に比べて大当りが発生しやすい(高い確率で大当りとなる)ように設定されたものがある。このような特別のリーチ演出を、スーパーリーチ演出(あるいは単に「スーパーリーチ」)ともいう。一例として、スーパーリーチとなるリーチ演出には、ノーマルリーチと同様のリーチ演出を所定時間が経過するまで行ってから、例えば背景画像の表示態様や、表示されるキャラクタ、飾り図柄の変動方向といった飾り図柄の変動態様のうち、少なくともいずれか1つがリーチ表示状態となる以前やノーマルリーチのときとは異なるものとなることにより、演出態様が変化(いわゆる「発展」)して、スーパーリーチに特有のリーチ演出における導入部分が開始されるものが含まれていればよい。また、スーパーリーチとなるリーチ演出には、飾り図柄がリーチ表示状態で導出表示されたときに、ノーマルリーチと同様のリーチ演出を行うことなく、スーパーリーチに特有のリーチ演出における導入部分が開始されるものが含まれていてもよい。
また、飾り図柄の可変表示中には、リーチ演出とは異なり、飾り図柄がリーチ状態で導出表示される可能性があることや、可変表示結果が「大当り」となる可能性があることを、飾り図柄の可変表示態様などにより遊技者に報知するための特定演出が実行されることがある。この実施の形態では、「滑り」や「擬似連」といった特定演出が実行可能に設定されている。なお、この実施の形態における特定演出は、対応する演出動作が実行されるか否か応じて特図変動時間が変化するものであればよい。例えば、ある特定演出が実行される場合には、その特定演出が実行されない場合に比べて、特図変動時間が長くなるものであればよい。
「滑り」の特定演出では、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rにおける全部にて飾り図柄を変動させる全図柄変動を行ってから、2つ以上の飾り図柄表示部(例えば「左」および「右」の飾り図柄表示部5L、5Rなど)にて飾り図柄を仮停止表示させた後、その仮停止表示した飾り図柄表示部のうち所定数(例えば「1」または「2」)の飾り図柄表示部(例えば「左」の飾り図柄表示部5Lと「右」の飾り図柄表示部5Rのいずれか一方または双方)にて飾り図柄を再び変動させた後に停止表示させることで、停止表示する飾り図柄を変更させる演出表示が行われる。なお、特定演出における飾り図柄の仮停止表示では、飾り図柄が停留して表示される一方で、例えば揺れ変動表示を行うことや短時間の停留だけで直ちに飾り図柄を再変動させることなどによって、遊技者に停止表示された飾り図柄が確定しない旨を報知すればよい。あるいは、仮停止表示でも、停止表示された飾り図柄が確定したと遊技者が認識する程度に飾り図柄を停留させてから、飾り図柄を再変動させるようにしてもよい。
「擬似連」の特定演出では、特別図柄や飾り図柄の可変表示を開始するための第1開始条件あるいは第2開始条件が1回成立したことに対応して、全図柄変動が開始されてから、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rの全部にて順次または同時に飾り図柄を仮停止表示させた後、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rの全部にて飾り図柄を再び変動させる再可変表示動作(再変動)を、所定回(例えば最大3回まで)実行する演出動作である。一例として、「擬似連」の特定演出では、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rにて、擬似連チャンス目として予め定められた複数種類の飾り図柄の組合せのいずれかが仮停止表示される。そして、再変動の回数が多くなるに従って、可変表示結果が「大当り」となる割合が高くなるように設定されていればよい。これにより、遊技者は、擬似連チャンスのいずれかが仮停止表示されることで、「擬似連」の特定演出が行われると認識でき、再変動の回数が多くなるに従って、可変表示結果が「大当り」となる期待感が高められる。この実施の形態では、「擬似連」の特定演出において、再変動が1回〜3回行われることにより、第1開始条件あるいは第2開始条件が1回成立したことに基づき、飾り図柄の可変表示があたかも2回〜4回続けて開始されたかのように見せることができる。
「擬似連」の特定演出が実行される飾り図柄の可変表示中には、擬似連続変動の進行に伴って、例えば画像表示装置5の表示領域における所定位置に予め用意されたキャラクタを示す演出画像を表示することや、スピーカ8L、8Rから所定の音声(特別音)を出力させること、遊技効果ランプ9を所定の点灯パターンで点灯させること、遊技領域内あるいは遊技領域外に設けられた演出用役物が備える複数の可動部材を動作させることといった、所定の演出動作が実行されてもよい。一例として、全部の飾り図柄表示部5L、5C、5Rにて飾り図柄を仮停止表示させた後、全部の飾り図柄表示部5L、5C、5Rにて飾り図柄を再可変表示させるときには、キャラクタを示す演出画像の表示、特別音の出力、ランプの点灯、可動部材の動作のうち、いずれか1つ、あるいは、複数の動作を組み合わせた演出動作が行われることにより、擬似連続変動が行われることを認識可能に報知するようにしてもよい。
こうした飾り図柄の可変表示動作を利用した特定演出としては、「擬似連」や「滑り」の他にも、例えば「発展チャンス目」や「発展チャンス目終了」、「チャンス目停止後滑り」といった、各種の演出動作が実行されてもよい。ここで、「発展チャンス目」の特定演出では、飾り図柄の可変表示が開始されてから可変表示結果となる確定飾り図柄が導出表示されるまでに、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rにおける全部にて、予め定められた特殊組合せに含まれる発展チャンス目を構成する飾り図柄を仮停止表示させた後、飾り図柄の可変表示状態をリーチ状態として所定のリーチ演出が開始される。これにより、発展チャンス目を構成する飾り図柄が仮停止表示されたときには、飾り図柄の可変表示状態がリーチ状態となることや、リーチ状態となった後に可変表示結果が「大当り」となることに対する、遊技者の期待感が高められる。また、「発展チャンス目終了」の特定演出では、飾り図柄の可変表示が開始された後に、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rにおける全部にて、発展チャンス目として予め定められた組合せの飾り図柄を、確定飾り図柄として導出表示させる演出表示が行われる。「チャンス目停止後滑り」の特定演出では、「擬似連」の可変表示演出と同様に、飾り図柄の可変表示が開始されてから可変表示結果となる確定飾り図柄が導出表示されるまでに、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rにおける全部にて複数種類の擬似連チャンス目のいずれかとなるハズレ組合せ(特殊組合せ)の飾り図柄を一旦仮停止表示させた後、「擬似連」の特定演出とは異なり、飾り図柄表示部5L、5C、5Rの一部にて飾り図柄を再び変動させることで、停止表示する飾り図柄を変更させる演出表示が行われる。
さらに、飾り図柄の可変表示中には、リーチ演出や特定演出とは異なり、例えば所定のキャラクタ画像やメッセージ画像を表示することなどといった、飾り図柄の可変表示態様以外の表示態様により、飾り図柄の可変表示状態がリーチ状態となる可能性があることや、可変表示結果が「大当り」となる可能性があることを、遊技者に報知するための予告演出が実行されることがある。例えば、「キャラクタ表示」、「ステップアップ画像」、「背景変更」といった予告演出が実行可能に設定されていればよい。なお、予告演出は、対応する演出動作が実行されるか否かによって特図変動時間に変化が生じないものであればよい。「キャラクタ表示」の予告演出では、「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rにおける全部にて飾り図柄を変動させてから、2つ以上の飾り図柄表示部(例えば「左」および「右」の飾り図柄表示部5L、5Rなど)にて飾り図柄を導出表示させる以前に、画像表示装置5の表示領域における所定位置に予め用意されたキャラクタ画像を表示させる演出表示が行われる。「ステップアップ画像」の予告演出では、「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rにおける全部にて飾り図柄を変動させてから、2つ以上の飾り図柄表示部にて飾り図柄を導出表示させる以前に、画像表示装置5の表示領域にて、予め用意された複数種類の演出画像を所定の順番に従って切り替えて表示させる演出表示が行われることがある。なお、「ステップアップ画像」の予告演出では、予め用意された複数種類の演出画像のうちいずれか1つ(例えば所定の順番において最初に表示される演出画像など)が表示された後、演出画像が切り替えられることなく、予告演出における演出表示を終了させることがあるようにしてもよい。「背景変更」の予告演出では、画像表示装置5の表示領域における背景画像の表示を、複数種類のいずれかに変更させる演出表示が行われる。
こうした予告演出のうちには、先読み予告演出(単に「先読み予告」ともいう)となるものが含まれてもよい。先読み予告演出は、可変表示結果が「大当り」となる可能性などが予告される対象(予告対象)となる可変表示が実行されるより前に、演出態様に応じて可変表示結果が「大当り」となる可能性を予告する予告演出である。特に、複数回の特図ゲームに対応して複数回実行される飾り図柄の可変表示にわたり連続して予告する先読み予告演出は、連続予告演出ともいう。先読み予告演出では、予告対象となる可変表示が開始されるより前に、特図ゲームの保留記憶情報などに基づいて可変表示結果が「大当り」となる可能性などを予告するための演出動作が開始される。先読み予告演出との対比において、予告対象となる可変表示が開始された後に実行が開始される予告演出は、単独予告演出(単独予告ともいう、また、可変表示中予告演出ともいう)と称される。先読み予告演出を実行するために、第1始動入賞口や第2始動入賞口といった始動領域を遊技媒体となる遊技球が通過(進入)したときには、始動入賞の発生に基づいて抽出された所定の乱数値(後述する特図表示結果決定用の乱数値MR1など)を示す数値データを用いて、大当り遊技状態などの特定遊技状態となるか否かや、スーパーリーチとなるリーチ演出などの特定演出態様となるか否かを、予告対象となる可変表示の開始条件が成立するより前に決定すればよい。こうした決定結果の一部または全部に応じて異なる割合で、先読み予告演出を実行するか否かや、実行する場合における先読み予告演出の演出態様が、決定されればよい。
先読み予告演出の実行が開始された後には、例えば飾り図柄の可変表示が実行されるごとに、予め用意された複数種類の演出画像を所定の順番に従って選択的に表示させる演出表示により、演出態様が複数段階に変化(ステップアップ)するような演出動作が行われるようにしてもよい。このとき、変化する回数(ステップ数)が多くなるに従って、可変表示結果が「大当り」または「小当り」となる可能性(信頼度)などが高くなるようにしてもよい。さらに変化する回数(ステップ数)によって予告する対象が変化するようにしてもよい。例えば第2ステップまで行くと「リーチ確定」、第3ステップまで行くと「スーパーリーチ確定」、第4ステップまで行くと「大当り確定」となるようなものでもよい。予告の態様の変化(ステップアップ)としては、異なるキャラクタ画像が順番に表示されるものであってもよいし、1つのキャラクタにおける形状や色等が変化することでステップアップするようなものであってもよい。すなわち、遊技者からみて予告する手段(表示、音、ランプ、可動物等)の状態が段階的に変化したと認識可能なものであればよい。
特図ゲームにおける確定特別図柄として、ハズレ図柄となる特別図柄が停止表示される場合には、飾り図柄の可変表示が開始されてから、飾り図柄の可変表示状態がリーチ状態とならずに、所定の非リーチ組合せとなる確定飾り図柄や、複数種類の発展チャンス目のいずれかとなる確定飾り図柄が、停止表示されることがある。このような飾り図柄の可変表示態様は、可変表示結果が「ハズレ」となる場合における「非リーチ」(「通常ハズレ」ともいう)の可変表示態様と称される。
特図ゲームにおける確定特別図柄として、ハズレ図柄となる特別図柄が停止表示される場合には、飾り図柄の可変表示が開始されてから、飾り図柄の可変表示状態がリーチ状態となったことに対応して、リーチ演出が実行された後に、所定のリーチハズレ組合せ(単に「リーチ組合せ」ともいう)となる確定飾り図柄が停止表示されることがある。このような飾り図柄の可変表示結果は、可変表示結果が「ハズレ」となる場合における「リーチ」(「リーチハズレ」ともいう)の可変表示態様と称される。
特図ゲームにおける確定特別図柄として、15ラウンド大当り図柄となる特別図柄のうち非確変大当り図柄である「3」の数字を示す特別図柄が停止表示される場合には、飾り図柄の可変表示状態がリーチ状態となったことに対応して、所定のリーチ演出が実行された後に、所定の非確変大当り組合せ(「通常大当り組合せ」ともいう)となる確定飾り図柄が停止表示される。ここで、非確変大当り組合せとなる確定飾り図柄は、例えば画像表示装置5における「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rにて可変表示される図柄番号が「1」〜「8」の飾り図柄のうち、図柄番号が偶数「2」、「4」、「6」、「8」である飾り図柄のいずれか1つが、「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rにて所定の有効ライン上に揃って停止表示されるものであればよい。このように非確変大当り組合せを構成する図柄番号が偶数「2」、「4」、「6」、「8」である飾り図柄は、非確変図柄(「通常図柄」ともいう)と称される。そして、特図ゲームにおける確定特別図柄が非確変大当り図柄となることに対応して、所定のリーチ演出が実行された後に、非確変大当り組合せの確定飾り図柄が停止表示される飾り図柄の可変表示態様は、可変表示結果が「大当り」となる場合における「非確変」(「通常」ともいう)の可変表示態様(大当り種別ともいう)と称される。こうして「非確変」の可変表示態様により可変表示結果が「大当り」となった後には、15ラウンド大当り遊技状態に制御され、その15ラウンド大当り状態が終了すると、時短状態または通常状態に制御されることになる。
特図ゲームにおける確定特別図柄として、15ラウンド大当り図柄となる特別図柄のうち確変大当り図柄である「7」の数字を示す特別図柄が停止表示される場合には、飾り図柄の可変表示状態がリーチ状態となったことに対応して、大当り種別が「非確変」である場合と同様のリーチ演出が実行された後などに、もしくは、大当り種別が「非確変」である場合とは異なるリーチ演出が実行された後などに、所定の確変大当り組合せとなる確定飾り図柄が停止表示されることがある。ここで、確変大当り組合せとなる確定飾り図柄は、例えば画像表示装置5における「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rにて可変表示される図柄番号が「1」〜「8」の飾り図柄のうち、図柄番号が奇数「1」、「3」、「5」、「7」である飾り図柄のいずれか1つが、「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rにて所定の有効ライン上に揃って停止表示されるものであればよい。このように確変大当り組合せを構成する図柄番号が奇数「1」、「3」、「5」、「7」である飾り図柄は、確変図柄と称される。そして、特図ゲームにおける確定特別図柄が確変大当り図柄となることに対応して、リーチ演出が実行された後などに、確変大当り組合せの確定飾り図柄が停止表示される飾り図柄の可変表示態様は、可変表示結果が「大当り」となる場合における「確変」の可変表示態様(大当り種別ともいう)と称される。
特図ゲームにおける確定特別図柄として確変大当り図柄が停止表示される場合に、飾り図柄の可変表示結果として、非確変大当り組合せとなる確定飾り図柄が停止表示されることがあるようにしてもよい。このように、非確変大当り組合せとなる確定飾り図柄が停止表示される場合でも、特図ゲームにおける確定特別図柄として確変大当り図柄が停止表示されるときは、「確変」の可変表示態様に含まれる。こうして「確変」の可変表示態様により可変表示結果が「大当り」となった後には、15ラウンド大当り状態に制御され、その15ラウンド大当り状態が終了すると、確変状態に制御されることになる。非確変大当り組合せとなる確定飾り図柄や確変大当り組合せとなる確定飾り図柄は、まとめて大当り組合せ(特定の組合せ)の確定飾り図柄ともいう。
確定飾り図柄が非確変大当り組合せや確変大当り組合せとなる飾り図柄の可変表示中には、再抽選演出が実行されてもよい。再抽選演出では、画像表示装置5における「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rに非確変大当り組合せとなる飾り図柄を仮停止表示させた後に、例えば「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rにて同一の飾り図柄が揃った状態で再び変動させ、確変大当り組合せとなる飾り図柄(確変図柄)と、非確変大当り組合せとなる飾り図柄(非確変図柄)のうちいずれかを、確定飾り図柄として停止表示(最終停止表示)させる。ここで、大当り種別が「非確変」である場合に再抽選演出が実行されるときには、その再抽選演出として、仮停止表示させた飾り図柄を再変動させた後に非確変大当り組合せとなる確定飾り図柄を導出表示する変動中昇格失敗演出が行われる。これに対して、大当り種別が「確変」である場合に再抽選演出が実行されるときには、その再抽選演出として、仮停止表示させた飾り図柄を再変動させた後に確変大当り組合せとなる確定飾り図柄を停止表示する変動中昇格成功演出が実行されることもあれば、変動中昇格失敗演出が実行されることもある。
非確変大当り組合せとなる確定飾り図柄が導出表示された後には、大当り遊技状態の開始時や大当り遊技状態におけるラウンドの実行中、大当り遊技状態においていずれかのラウンドが終了してから次のラウンドが開始されるまでの期間、大当り遊技状態において最終のラウンドが終了してから次の可変表示ゲームが開始されるまでの期間などにて、確変状態に制御するか否かの報知演出となる大当り中昇格演出が実行されてもよい。なお、大当り中昇格演出と同様の報知演出が、大当り遊技状態の終了後における最初の可変表示ゲーム中などにて実行されてもよい。大当り遊技状態において最終のラウンドが終了してから実行される大当り中昇格演出を、特に「エンディング昇格演出」ということもある。
大当り中昇格演出には、確定飾り図柄が非確変大当り組合せであるにもかかわらず遊技状態が確変状態となる昇格がある旨を報知する大当り中昇格成功演出と、確変状態となる昇格がない旨を報知する大当り中昇格失敗演出とがある。例えば、大当り中昇格演出では、画像表示装置5の表示領域にて飾り図柄を可変表示させて非確変図柄と確変図柄のいずれかを演出表示結果として停止表示させること、あるいは、飾り図柄の可変表示とは異なる演出画像の表示を行うことなどにより、確変状態となる昇格の有無を、遊技者が認識できるように報知すればよい。
特図ゲームにおける確定特別図柄として、2ラウンド大当り図柄となる「1」の数字を示す特別図柄が停止表示される場合や、小当り図柄となる「2」の数字を示す特別図柄が停止表示される場合には、飾り図柄の可変表示状態がリーチ状態とならずに、2回開放チャンス目として予め定められた複数種類の確定飾り図柄の組合せのいずれかが停止表示されることがある。また、特図ゲームにおける確定特別図柄として、2ラウンド大当り図柄となる「1」の数字を示す特別図柄が停止表示される場合には、飾り図柄の可変表示状態がリーチ状態となったことに対応して、所定のリーチ演出が実行された後などに、所定のリーチ組合せとなる確定飾り図柄が停止表示されることもある。特図ゲームにおける確定特別図柄が2ラウンド大当り図柄である「1」の数字を示す特別図柄となることに対応して、各種の確定飾り図柄が停止表示される飾り図柄の可変表示態様は、可変表示結果が「大当り」となる場合における「突確」(「突確大当り」あるいは「突然確変大当り」ともいう)の可変表示態様(大当り種別ともいう)と称される。こうして「突確」の可変表示態様により可変表示結果が「大当り」となった後には、2ラウンド大当り状態に制御され、その2ラウンド大当り状態が終了すると、確変状態に制御されることになる。
可変表示結果が「大当り」で大当り種別が「突確」となる場合には、飾り図柄の可変表示中に突確モード開始演出が実行されてもよい。突確モード開始演出では、大当り種別が「突確」となることに対応して予め定められた演出動作が行われる。突確モード開始演出が行われた後には、突確モードと称される通常の演出モードとは異なる演出モードが開始されてもよい。また、突確モード開始演出は、特別図柄や飾り図柄の可変表示中に実行される演出動作に限定されず、2ラウンド大当り状態となる期間の一部または全部においても、可変表示中から継続して実行される演出動作であってもよい。突確モード開始演出が開始されるときには、可変表示中の飾り図柄を消去して、突確モード開始演出が実行された後には、確定飾り図柄が導出表示されないようにしてもよい。突確モードでは、例えば可変表示結果が「大当り」となって確変状態が終了するまで、突確モード中演出が行われる。突確モード中演出では、画像表示装置5の表示領域における背景画像の表示態様を通常の演出モードにおける表示態様とは異なるものとすること、飾り図柄の可変表示に伴ってスピーカ8L、8Rから出力される音声を通常の演出モードにおける音声とは異なるものとすること、遊技効果ランプ9や装飾用LEDの点灯パターンを通常の演出モードにおける点灯パターンとは異なるものとすること、あるいは、これらの一部または全部を組み合わせることにより、突確モードであることを遊技者が認識できるように報知すればよい。
確変状態では、例えば「確変中」といった確変状態であることを報知する演出画像を画像表示装置5の表示領域に表示させることや、画像表示装置5の表示領域における背景画像や飾り図柄の表示態様を通常の演出モードにおける表示態様とは異なるものとすることの一方または両方などにより、確変状態であることを遊技者が認識できる確変中の演出モードとなるようにしてもよい。
パチンコ遊技機1には、例えば図2に示すような電源基板10、主基板11、演出制御基板12、音声制御基板13、ランプ制御基板14、払出制御基板15、発射制御基板17といった、各種の制御基板が搭載されている。また、パチンコ遊技機1には、主基板11と演出制御基板12との間で伝送される各種の制御信号を中継するための中継基板18なども搭載されている。なお、音声制御基板13やランプ制御基板14は、演出制御基板12とは別個の独立した基板によって構成されてもよいし、演出制御基板12にまとめられて1つの基板として構成されてもよい。その他、パチンコ遊技機1の背面には、例えば情報端子基板やインタフェース基板などといった、各種の制御基板が配置されている。インタフェース基板は、パチンコ遊技機1に隣接してカードユニットが設置される場合に、払出制御基板15とカードユニットとの間に介在する制御基板である。
電源基板10は、主基板11、演出制御基板12、払出制御基板15等の各制御基板とは独立して設置され、パチンコ遊技機1内の各制御基板および機構部品が使用する電圧を生成する。例えば、電源基板10では、図3に示すように、AC24V、VLP(直流+24V)、VSL(直流+30V)、VDD(直流+12V)、VCC(直流+5V)およびVBB(直流+5V)を生成する。電源基板10は、例えば図3に示すように、変圧回路301と、直流電圧生成回路302と、電源監視回路303と、クリアスイッチ304とを備えて構成されている。また、電源基板10には、バックアップ電源となるコンデンサが設けられていてもよい。このコンデンサは、例えばVBB(直流+5V)の電源ラインから充電されるものであればよい。加えて、電源基板10には、パチンコ遊技機1内の各制御基板および機構部品への電力供給を実行または遮断するための電源スイッチが設けられていてもよい。あるいは、電源スイッチは、パチンコ遊技機1において、電源基板10の外部に設けられていてもよい。
変圧回路301は、例えば商用電源が入力側(一次側)に印加されるトランスや、トランスの入力側に設けられた過電圧保護回路としてのバリスタなどを備えて構成されたものであればよい。ここで、変圧回路301が備えるトランスは、商用電源と電源基板10の内部とを電気的に絶縁するためのものであればよい。変圧回路301は、その出力電圧として、AC24Vを生成する。直流電圧生成回路302は、例えばAC24Vを整流素子で整流昇圧することによってVSLを生成する整流平滑回路を含んでいる。VSLは、ソレノイド駆動用の電源電圧として用いられる。また、直流電圧生成回路302は、例えばAC24Vを整流素子で整流することによってVLPを生成する整流回路を含んでいる。VLPは、遊技効果ランプ9等の発光体を点灯するための電源電圧として用いられる。加えて、直流電圧生成回路302は、例えばVSLに基づいてVDDおよびVCCを生成するDC−DCコンバータを含んでいる。このDC−DCコンバータは、例えば1つ又は複数のスイッチングレギュレータと、そのスイッチングレギュレータの入力側に接続された比較的大容量のコンデンサとを含み、外部からパチンコ遊技機1への電力供給が停止したときに、VSL、VDD、VBB等の直流電圧が比較的緩やかに低下するように構成されたものであればよい。VDDは、例えば図2に示すゲートスイッチ21、第1および第2始動口スイッチ22A、22B、カウントスイッチ23といった、遊技媒体を検出する各種スイッチに供給され、これらのスイッチを作動させるために用いられる。
図3に示すように、変圧回路301から出力されたAC24Vは、例えば所定のコネクタや電源ラインを介して、払出制御基板15へと伝送される。VLPは、例えば所定のコネクタや電源ラインを介して、ランプ制御基板14へと伝送される。VSL、VDDおよびVCCは、例えば所定のコネクタや電源ラインを介して、主基板11、ランプ制御基板14および払出制御基板15へと伝送される。VBBは、例えば所定のコネクタや電源ラインを介して、主基板11および払出制御基板15へと伝送される。なお、演出制御基板12および音声制御基板13には、ランプ制御基板14を経由して各電圧が供給されればよい。あるいは、演出制御基板12および音声制御基板13には、ランプ制御基板14を経由することなく、電源基板10から直接に各電圧が供給されてもよい。
電源監視回路303は、例えば停電監視リセットモジュールICを用いて構成され、電源断信号を出力する電源監視手段を実現する回路である。例えば、電源監視回路303は、パチンコ遊技機1において用いられる所定電源電圧(一例としてVSL)が所定値(一例として+22V)を超えると、オフ状態(ハイレベル)の電源断信号を出力する。その一方で、所定電源電圧が所定値以下になった期間が、予め決められている時間(一例として56ミリ秒)以上継続したときに、オン状態(ローレベル)の電源断信号を出力する。あるいは、電源監視回路303は、パチンコ遊技機1において用いられる所定電源電圧が所定値以下になると、直ちにオン状態の電源断信号を出力するようにしてもよい。電源断信号は、例えばローレベルとなることでオン状態となりハイレベルとなることでオフ状態となる負論理の電気信号であればよい。電源監視回路303から出力された電源断信号は、例えば電源基板10に搭載された出力ドライバ回路によって増幅された後に所定のコネクタや信号ラインを介して、主基板11や払出制御基板15へと伝送される。なお、電源断信号は、払出制御基板15を介して主基板11へと伝送されるようにしてもよい。
電源断信号を出力するための監視対象となる所定電源電圧は、例えば電源電圧VSLといった、スイッチ作動用の電源電圧VDDにおける規定値(一例として+12V)よりも高い電圧であることが好ましい。これにより、スイッチ作動用の電源電圧VDDが低下して各種スイッチ(例えばゲートスイッチ21、第1および第2始動口スイッチ22A、22B、カウントスイッチ23など)の動作状態が不安定となる以前に、電源断信号を出力する(オン状態にする)ことで、各種スイッチによる誤検出に基づく遊技制御の進行を防止できる。すなわち、スイッチ作動用の電源電圧VDDが低下すると負論理(ローレベルでオン状態となる)のスイッチ出力がオン状態となるものの、電源電圧VDDよりも早く低下する電源電圧VSLを監視して電力供給の停止を認識することで、スイッチ出力がオン状態となる以前に、電源復旧待ちの状態となってスイッチ出力を検出しない状態となることができる。
電源電圧VSLなどを主基板11、ランプ制御基板14や払出制御基板15へと伝送する電源ラインには、大容量のコンデンサが接続されていてもよい。これに対して、電源電圧VSLを監視対象とするために電源監視回路303へと伝送する入力ラインには、このようなコンデンサが接続されていなくてもよい。この場合、監視対象となる電源監視回路303への入力ラインにおける電源電圧VSLは、コンデンサが接続された電源ラインにおける電源電圧VSLより早く低下する。すなわち、監視対象の電源電圧VSLが低下し始めた後でも、所定期間は、ソレノイドやモータなどに供給される電源ラインにおける電源電圧VSLの供給状態が維持される。したがって、監視対象となる電源電圧VSLが低下し始める場合でも、所定期間は、ソレノイドやモータなどを駆動可能な状態とすることができる。また、電源ラインにおける電源電圧VSLが低下し始める前に、電力供給の停止を認識することができる。
なお、ソレノイド駆動用の電源電圧VSLに代えて、例えば発光体点灯用の電源電圧VLPといった、スイッチ作動用の電源電圧VDDにおける規定値よりも高い任意の電源電圧を監視対象として、電源断信号を出力するようにしてもよい。また、外部からパチンコ遊技機1に供給される電力の供給停止を検出するための条件としては、パチンコ遊技機1において用いられる所定電源電圧が所定値以下になったことに限られず、外部からの電力が途絶えたことを検出できる任意の条件であればよい。例えば、AC24V等の交流波そのものを監視して交流波が途絶えたことを検出条件としてもよいし、交流波をデジタル化した信号を監視して、デジタル信号が平坦になったことをもって交流波が途絶えたことの検出条件としてもよい。
電源監視回路303は、例えば所定電源電圧(一例としてVCC)が所定値(一例として+4.5V)以下になったときに、リセット信号を出力してもよい。リセット信号は、例えばローレベルとなることでオン状態となる電気信号であればよい。電源監視回路303から出力されたリセット信号は、例えば電源基板10に搭載された出力ドライバ回路によって増幅された後に所定のコネクタや信号ラインを介して、主基板11、ランプ制御基板14および払出制御基板15へと伝送される。演出制御基板12には、ランプ制御基板14を経由してリセット信号が伝送されればよい。あるいは、演出制御基板12に対しても、ランプ制御基板14を経由せずにリセット信号が直接に伝送されるようにしてもよい。さらに、リセット信号を出力する回路は、電源監視回路303とは別個に設けられたウォッチドッグタイマ内蔵IC、あるいはシステムリセットICなどを用いて構成されてもよい。
パチンコ遊技機1への電力供給が停止するときには、電源監視回路303が、電源断信号を出力(ローレベルに設定)してから所定期間が経過したときに、リセット信号を出力(ローレベルに設定)する。ここでの所定期間は、例えば図2に示す主基板11に搭載されている遊技制御用マイクロコンピュータ100および払出制御基板15に搭載されている払出制御用マイクロコンピュータ150が、所定の電源断処理を実行するのに十分な時間であればよい。すなわち、電源監視回路303は、給電中信号としての電源断信号を出力した後、遊技制御用マイクロコンピュータ100および払出制御用マイクロコンピュータ150が所定の電源断処理を実行完了してから、動作停止信号としてのリセット信号を出力(ローレベルに設定)する。電源監視回路303から出力されたリセット信号を受信した遊技制御用マイクロコンピュータ100や払出制御用マイクロコンピュータ150は、動作停止状態となり、各種の制御処理の実行が停止される。また、パチンコ遊技機1への電力供給が開始され、例えば所定電源電圧(一例としてVCC)が所定値(一例として+4.5V)を超えたときに、電源監視回路303はリセット信号の出力を停止(ハイレベルに設定)する。
図4は、パチンコ遊技機1への電力供給が開始されたときと、電力供給が停止するときにおける、AC24V、VSL、VCC、リセット信号および電源断信号の状態を、模式的に示すタイミング図である。図4に示すように、パチンコ遊技機1への電力供給が開始されたときに、VSLおよびVCCは徐々に規定値(直流+30Vおよび直流+5V)に達する。このとき、VCCが第1の所定値(例えば+4.5V)を超えると、電源監視回路303はリセット信号の出力を停止(ハイレベルに設定)してオフ状態とする。また、VSLが第2の所定値(例えば+22V)を超えると、電源監視回路303は電源断信号の出力を停止(ハイレベルに設定)してオフ状態とする。他方、パチンコ遊技機1への電力供給が停止するときに、VSLおよびVCCは徐々に低下する。このとき、VSLが第2の所定値(+22V)にまで低下すると、電源監視回路303は電源断信号をオン状態として出力(ローレベルに設定)する。また、VCCが第1の所定値(+4.5V)にまで低下すると、電源監視回路303はリセット信号をオン状態として出力(ローレベルに設定)する。
図3に示す電源基板10が備えるクリアスイッチ304は、例えば押しボタン構造を有し、押下などの操作に応じてクリア信号を出力する。クリア信号は、例えば押下などの操作に応じてローレベルとなることでオン状態となる電気信号であればよい。あるいは、クリア信号は、例えば押下などの操作に応じてハイレベルとなることでオン状態となる電気信号であってもよい。クリアスイッチ304から出力されたクリア信号は、例えば所定のコネクタや信号ラインを介して、主基板11へと伝送され、主基板11から払出制御基板15へと伝送される。また、クリアスイッチ304の操作がなされていないときには、クリア信号の出力を停止(ハイレベルあるいはローレベルに設定)する。なお、クリアスイッチ304は、押しボタン構造以外の他の構成(例えばスライドスイッチ構造やトグルスイッチ構造、ダイヤルスイッチ構造など)であってもよい。
主基板11は、メイン側の制御基板であり、パチンコ遊技機1における遊技の進行を制御するための各種回路が搭載されている。主基板11は、主として、特図ゲームにおいて用いる乱数の設定機能、所定位置に配設されたスイッチ等からの信号の入力を行う機能、演出制御基板12や払出制御基板15などからなるサブ側の制御基板に宛てて、指令情報の一例となる制御コマンドを制御信号として出力して送信する機能、ホールの管理コンピュータに対して各種情報を出力する機能などを備えている。また、主基板11は、第1特別図柄表示装置4Aと第2特別図柄表示装置4Bを構成する各LED(例えばセグメントLED)などの点灯/消灯制御を行って第1特図や第2特図の可変表示を制御することや、普通図柄表示器20の点灯/消灯/発色制御などを行って普通図柄表示器20による普通図柄の可変表示を制御することといった、所定の表示図柄の可変表示を制御する機能も備えている。主基板11は、例えば図2に示すように、遊技制御用マイクロコンピュータ100と、制御用クロック生成回路111と、乱数用クロック生成回路112と、スイッチ回路114と、ソレノイド回路115とを備えている。また、主基板11には、遊技開始スイッチ31が設置されていてもよい。
ここで、制御用クロック生成回路111は、遊技制御用マイクロコンピュータ100の外部にて、所定周波数の発振信号となる制御用クロックCCLKを生成する。制御用クロック生成回路111により生成された制御用クロックCCLKは、例えば図5に示すような遊技制御用マイクロコンピュータ100の制御用外部クロック端子EXCを介してクロック回路502に供給される。乱数用クロック生成回路112は、遊技制御用マイクロコンピュータ100の外部にて、制御用クロックCCLKの発振周波数とは異なる所定周波数の発振信号となる乱数用クロックRCKを生成する。乱数用クロック生成回路112により生成された乱数用クロックRCKは、例えば遊技制御用マイクロコンピュータ100の乱数用外部クロック端子ERCを介して乱数回路509A、509B(図5を参照)などに供給される。一例として、乱数用クロック生成回路112により生成される乱数用クロックRCKの発振周波数は、制御用クロック生成回路111により生成される制御用クロックCCLKの発振周波数以下となるようにすればよい。あるいは、乱数用クロック生成回路112により生成される乱数用クロックRCKの発振周波数は、制御用クロック生成回路111により生成される制御用クロックCCLKの発振周波数よりも高周波となるようにしてもよい。
スイッチ回路114は、遊技球検出用の各種スイッチなどからの検出信号を取り込んで遊技制御用マイクロコンピュータ100に伝送する。ソレノイド回路115は、遊技制御用マイクロコンピュータ100からのソレノイド駆動信号をソレノイド81、82に伝送する。遊技開始スイッチ31は、例えば押しボタン構造を有し、パチンコ遊技機1において遊技機用枠3を閉じて遊技者が通常遊技を行う状態でパチンコ遊技機1の外部から触れることのできない所定箇所に配設されていればよい。そして、例えばパチンコ遊技機1の電源投入時やシステムリセット時などに、パチンコ遊技機1の初期設定を行った後に遊技開始を指示するために操作される。なお、遊技開始スイッチ31は、押しボタン構造以外の他の構成(例えばスライドスイッチ構造やトグルスイッチ構造、ダイヤルスイッチ構造など)であってもよい。
図2に示すように、主基板11には、ゲートスイッチ21、第1始動口スイッチ22A、第2始動口スイッチ22Bおよびカウントスイッチ23からの検出信号を伝送する配線が接続されている。なお、ゲートスイッチ21、第1始動口スイッチ22A、第2始動口スイッチ22Bおよびカウントスイッチ23は、例えばセンサと称されるものなどのように、遊技媒体としての遊技球を検出できる任意の構成を有するものであればよい。また、主基板11には、第1特別図柄表示装置4Aや第2特別図柄表示装置4B、普通図柄表示器20、第1保留表示器25A、第2保留表示器25B、普図保留表示器25Cなどの表示制御を行うための指令信号を伝送する配線が接続されている。さらに、主基板11には、普通電動役物用のソレノイド81や大入賞口扉用のソレノイド82などの駆動制御を行うための指令信号を伝送する配線が接続されている。
主基板11と演出制御基板12との間では、例えば主基板11から中継基板18を介して演出制御基板12へと向かう単一方向のみでシリアル通信などを行うことにより、各種の制御コマンドが伝送される。演出制御基板12は、主基板11とは独立したサブ側の制御基板であり、中継基板18を介して主基板11から送信された制御コマンドを受信して、画像表示装置5、スピーカ8L、8Rおよび遊技効果ランプ9等の発光体といった演出用の電気部品(演出装置)を制御するための各種回路が搭載されている。すなわち、演出制御基板12は、画像表示装置5における表示動作や、スピーカ8L、8Rからの音声出力動作、遊技効果ランプ9等の発光体における点灯動作および消灯動作などを制御する機能を備えている。演出制御基板12には、音声制御基板13やランプ制御基板14に制御信号を伝送する配線や、画像表示装置5に画像データ信号を伝送する配線などが接続されている。
主基板11には、例えば中継基板18に対応して主基板側コネクタが設けられるとともに、この主基板側コネクタと遊技制御用マイクロコンピュータ100との間に、出力バッファ回路が接続されていてもよい。この出力バッファ回路は、例えば主基板11から中継基板18を介して演出制御基板12へ向かう方向にのみ制御信号を通過させることができ、中継基板18から主基板11への信号の入力を阻止する。したがって、演出制御基板12や中継基板18の側から主基板11の側に信号が伝わる余地はない。なお、主基板11と演出制御基板12との間に中継基板18を設けない構成としてもよい。これにより、主基板11と演出制御基板12との間における配線引き回しの自由度を高めることができる。
中継基板18には、例えば主基板11から演出制御基板12に対して制御信号を伝送するための配線に、伝送方向規制回路が設けられていればよい。伝送方向規制回路は、主基板11対応の主基板用コネクタにアノードが接続されるとともに演出制御基板12対応の演出制御基板用コネクタにカソードが接続されたダイオードと、一端がダイオードのカソードに接続されるとともに他端がグランド(GND)接続された抵抗とから構成されている。この構成により、伝送方向規制回路は、演出制御基板12から中継基板18への信号の入力を阻止して、主基板11から演出制御基板12へ向かう方向にのみ信号を通過させることができる。したがって、演出制御基板12の側から主基板11側に信号が伝わる余地はない。この実施の形態では、中継基板18において制御信号を伝送するための配線に伝送方向規制回路を設けるとともに、主基板11にて遊技制御用マイクロコンピュータ100と主基板側コネクタの間に出力バッファ回路を設けることで、外部から主基板11への不正な信号の入力を防止することができる。
主基板11と払出制御基板15との間では、例えば双方向でシリアル通信を行うことにより、各種の制御コマンドや通知信号が伝送される。払出制御基板15は、主基板11とは独立したサブ側の制御基板であり、主基板11から送信された制御コマンドや通知信号を受信して、払出モータ51による遊技球の払出動作を制御するための各種回路が搭載されている。すなわち、払出制御基板15は、払出モータ51による賞球の払出動作を制御する機能を備えている。また、払出制御基板15は、例えばインタフェース基板を介したカードユニットとの通信結果に応じて払出モータ51の駆動制御を行って、球貸し動作を制御する機能を備えていてもよい。払出制御基板15には、満タンスイッチ26や球切れスイッチ27からの検出信号を受信するための配線や、払出モータ位置センサ71や払出カウントスイッチ72、エラー解除スイッチ73からの検出信号を受信するための配線が接続されている。加えて、払出制御基板15には、払出モータ51における遊技球の払出制御を行うための指令信号を送信するための配線や、エラー表示用LED74における表示制御を行うための指令信号を送信するための配線、インタフェース基板を介してカードユニットとの間で通信を行うための配線などが接続されている。
ここで、満タンスイッチ26は、例えば遊技盤2の背面下方にて打球供給皿と余剰球受皿の間を連通する余剰球通路の側壁に設置され、余剰球受皿の満タンを検出するためのものである。賞球または球貸し要求に基づく遊技球が多数払い出されて打球供給皿が満杯になり、遊技球が連絡口に到達した後、さらに遊技球が払い出されると、遊技球は余剰球通路を経て余剰球受皿へと導かれる。さらに遊技球が払い出されると、例えば所定の感知レバーが満タンスイッチ26を押圧してオンする。
また、球切れスイッチ27は、例えば遊技盤2の背面にて遊技球を払出モータ51が設置された払出装置へと誘導する誘導レールの下流に設置され、誘導レールの下流にてカーブ樋を介して連通された2列の球通路内における遊技球の有無を検出するためのものである。一例として、球切れスイッチ27は、球通路に27〜28個の遊技球が存在することを検出できるような位置に係止片によって係止され、球貸しの一単位の最大払出個数(例えば100円分に相当する25個)以上が確保されていることを確認可能にする。なお、誘導レールは、遊技盤2の背面上方にて補給球としての遊技球を貯留する貯留タンクからの遊技球を払出装置へと誘導するものであり、球通路の下部には、払出モータ51が設置された払出装置が固定されている。
エラー解除スイッチ73は、払出制御用マイクロコンピュータ150が所定のエラー状態に制御されているときに、ソフトウェアリセットによって、そのエラー状態を解除するためのスイッチである。エラー表示用LED74は、例えば7セグメントLEDにより構成され、払出制御用マイクロコンピュータ150にてセットされたエラーフラグなどに基づいて、各種のエラーに対応するエラーコードを表示するためのものである。
図2に示す発射制御基板17は、操作ノブ30の操作量に応じて、所定の発射装置による遊技球の発射動作を制御するためのものである。発射制御基板17には、例えば電源基板10あるいは主基板11からの駆動信号を伝送する配線や、払出制御基板15およびインタフェース基板を介してカードユニットからの接続信号を伝送する配線、および操作ノブ30からの配線が接続されるとともに、発射モータ61への配線が接続されている。なお、カードユニットからの接続信号は、払出制御基板15にて分岐されて発射制御基板17に伝送されてもよいし、カードユニットからインタフェース基板を介し、払出制御基板15を経由せずに発射制御基板17に伝送されてもよい。発射制御基板17は、操作ノブ30の操作量に対応して発射モータ61の駆動力を調整する。発射モータ61は、例えば発射制御基板17により調整された駆動力により発射バネを弾性変形させ、発射バネの付勢力を打撃ハンマに伝達して遊技球を打撃することにより、遊技球を操作ノブ30の操作量に対応した速度で遊技領域に向けて発射させる。
中継基板18を介して主基板11から演出制御基板12へと送信される制御コマンドは、例えば電気信号として伝送される演出制御コマンドである。この実施の形態において、演出制御コマンドは、主基板11に搭載された遊技制御用マイクロコンピュータ100が備えるCPU505(図5を参照)によって送信設定が行われ、その設定に基づいて遊技制御用マイクロコンピュータ100が備えるシリアル通信回路511(図5を参照)の第2チャネル送信回路により、演出制御基板12に対して送信される。以下の説明では、主基板11から演出制御基板12に対する演出制御コマンドの送信動作に、こうした遊技制御用マイクロコンピュータ100に設けられたCPU505やシリアル通信回路511による一連の動作が含まれているものとする。この場合、演出制御基板12の側では、例えば演出制御用マイクロコンピュータ120のCPUが、主基板11から伝送されたシリアル信号形式の通信データを受信した際に発生する受信割込み要求に基づく割込み処理を実行することにより、演出制御コマンドを取り込んで所定のバッファ(例えば演出用受信コマンドバッファ)等に格納してもよい。なお、演出制御コマンドは、複数本の信号線(例えば8本の演出制御信号線)で主基板11から中継基板18を介し演出制御基板12に対して送信されてもよい。この場合には、演出制御コマンドを送信するための信号線に加えて、演出制御コマンドの取込みを要求する取込信号(演出制御INT信号)を送信するための信号線が配線されてもよい。
演出制御コマンドには、例えば画像表示装置5における画像表示動作を制御するために用いられる表示制御コマンドや、スピーカ8L、8Rからの音声出力を制御するために用いられる音声制御コマンド、遊技効果ランプ9といった発光体の点灯動作などを制御するために用いられるランプ制御コマンドが含まれている。表示制御コマンドは、例えば2バイト構成であり、1バイト目はMODE(コマンドの分類)を示し、2バイト目はEXT(コマンドの種類)を表す。MODEデータの先頭ビット(ビット番号[7])は必ず“1”とされ、EXTデータの先頭ビットは“0”とされる。なお、表示制御コマンドの形態は一例であって、他のコマンド形態を用いてもよい。また、この例では、表示制御コマンドが2バイト構成であるとしているが、表示制御コマンドを構成するバイト数は、1であってもよいし、3以上の複数であってもよい。
主基板11から払出制御基板15に対して送信される制御コマンドは、例えば電気信号として伝送される払出制御コマンドである。なお、払出制御コマンドは、主基板11に搭載された遊技制御用マイクロコンピュータ100が備えるCPU505(図5を参照)によって払出制御コマンドを送信するための設定が行われ、その設定に基づいて遊技制御用マイクロコンピュータ100が備えるシリアル通信回路511(図5を参照)の第1チャネル送受信回路により払出制御基板15に対して送信されるものである。以下の説明では、主基板11から払出制御基板15に対する払出制御コマンドの送信動作に、こうした遊技制御用マイクロコンピュータ100に設けられたCPU505やシリアル通信回路511による一連の動作が含まれているものとする。また、払出制御基板15から主基板11に対しては、例えば電気信号としての払出通知コマンドなどが送信される。なお、払出通知コマンドは、払出制御基板15に搭載された払出制御用マイクロコンピュータ150が備えるCPUによって払出通知コマンドを送信するための設定が行われ、その設定に基づいて払出制御用マイクロコンピュータ150が備えるシリアル通信回路により主基板11に対して送信されるものである。以下の説明では、払出制御基板15から主基板11に対する払出通知コマンドの送信動作に、こうした払出制御用マイクロコンピュータ150に設けられたCPUやシリアル通信回路による一連の動作が含まれているものとする。加えて、以下の説明では、主基板11および払出制御基板15のいずれか一方から他方に対する所定動作の指令だけでなく、一方での動作状態を他方に通知する通知信号も、払出制御コマンドや払出通知コマンドに含まれるものとする。
主基板11から払出制御基板15に対して送信される払出制御コマンドには、払出数指定コマンドやACKフィードバックコマンドが含まれていればよい。払出数指定コマンドは、払い出すべき賞球の数を示すコマンドである。ACKフィードバックコマンドは、払出制御基板15から主基板11に対して送信された賞球ACKコマンドを主基板11の側で受信したことを示す受信確認受付信号となる。
払出制御基板15から主基板11に対して送信される払出通知コマンドには、賞球ACKコマンド、払出エラー通知コマンド、払出エラー解除コマンドが含まれていればよい。賞球ACKコマンドは、主基板11から払出制御基板15に対して送信された払出数指定コマンドを払出制御基板15の側で受信したことを示す受信確認信号となる。払出エラー通知コマンドは、払出制御基板15の側において遊技球の払出に関わる異常が発生した旨を主基板11の側に通知するコマンドである。払出エラー解除コマンドは、払出制御基板15の側で発生したエラーが解除された旨を主基板11の側に通知するコマンドである。
なお、主基板11と払出制御基板15との間では、シリアル通信によりコマンドを送受信するものに限定されず、複数本の信号線を用いたパラレル通信によりコマンドを送受信してもよい。また、払出制御基板15から主基板11に対して送信される払出エラー通知コマンドや払出エラー解除コマンドに代えて、払出制御基板15におけるエラーの発生状態を示す払出エラー状態信号を、主基板11に設けられた入力ポートの1つに入力してもよい。例えば、払出エラー状態信号は、払出制御基板15にてエラーが発生したときにオン状態となり、エラーが発生していないときや、エラーが解除されたときにオフ状態となる。この場合、主基板11の側では、タイマ割込みの発生毎に払出エラー状態信号を取り込み、その取込結果を記憶しておく。そして、今回のタイマ割込みで取り込んだ信号状態と、前回のタイマ割込みで取り込んで記憶された信号状態との排他的論理和をとることにより、払出エラー状態信号がオフ状態からオン状態に変化したことや(エラー発生時を示す)、オン状態からオフ状態に変改したことを(エラー解除時を示す)、検出できるようにすればよい。払出制御基板15におけるエラー発生時やエラー解除時には、主基板11から演出制御基板12に向け、各々に対応して用意された演出制御コマンドを伝送することなどにより、払出動作にエラーが発生したことを報知する報知動作の開始や終了を、指示するようにしてもよい。払出エラー状態信号として主基板11に設けられた入力ポートの1つに入力するものに限定されず、例えば満タン信号や球切れ信号、賞球ケースエラー信号、ドア開放信号といった、払出制御基板15に入力される信号を、それぞれ主基板11にも入力して、払出エラー状態信号の場合と同様にエラー発生時やエラー解除時を検出できるようにしてもよい。そして、検出されたエラーの種類に応じた演出制御コマンドを主基板11から演出制御基板12に向けて伝送することなどにより、検出されたエラーに応じた報知動作の開始や終了を、指示するようにしてもよい。
図5は、主基板11に搭載された遊技制御用マイクロコンピュータ100の構成例を示している。図5に示す遊技制御用マイクロコンピュータ100は、例えば1チップマイクロコンピュータであり、外部バスインタフェース501と、クロック回路502と、固有情報記憶回路503と、リセットコントローラ504Aと、割込みコントローラ504Bと、CPU(Central Processing Unit)505と、ROM(Read Only
Memory)506
と、RAM(Random
Access Memory)507と、タイマ回路508と、16ビットの乱数回路509Aと、8ビットの乱数回路509Bと、フリーランカウンタ509Cと、PIP(Parallel Input Port)510と、シリアル通信回路511と、アドレスデコード回
路512とを備えて構成される。
図6は、遊技制御用マイクロコンピュータ100におけるアドレスマップの一例を示している。図6に示すように、アドレス0000H〜アドレス2FFFHの領域は、ROM506に割り当てられ、ユーザプログラムエリアとプログラム管理エリアとを含んでいる。なお、添字Hは、16進数であることを示しており、以下の説明でも同様である。図7(A)は、ROM506におけるプログラム管理エリアの主要部分について、用途や内容の一例を示している。アドレスF000H〜アドレスF3FFHの領域は、RAM507に割り当てられたワークエリアであり、I/Oマップやメモリマップに割り付けることができる。アドレスFE00H〜アドレスFEBFHの領域は、遊技制御用マイクロコンピュータ100の内蔵レジスタに割り当てられる内蔵レジスタエリアである。図7(B)は、内蔵レジスタエリアの主要部分について、用途や内容の一例を示している。
プログラム管理エリアは、CPU505がユーザプログラムを実行するために必要な情報を格納する記憶領域である。図7(A)に示すように、プログラム管理エリアには、ヘッダKHDR、リセット設定KRES、割込み初期設定KIIS、16ビット乱数初期設定第1KRL1〜16ビット乱数初期設定第3KRL3、8ビット乱数初期設定第1KRS1、8ビット乱数初期設定第2KRS2、セキュリティ時間設定KSESなどが、含まれている。
プログラム管理エリアに記憶されるヘッダKHDRは、遊技制御用マイクロコンピュータ100における内部データの読出設定を示す。図8(A)は、ヘッダKHDRにおける設定データと動作との対応関係を例示している。ここで、遊技制御用マイクロコンピュータ100では、ROM読出防止機能と、バス出力マスク機能とを設定可能である。ROM読出防止機能は、遊技制御用マイクロコンピュータ100が備えるROM506の記憶データについて、読出動作を許可または禁止する機能であり、読出禁止に設定された状態では、ROM506の記憶データを読み出すことができない。バス出力マスク機能は、外部バスインタフェース501に接続された外部装置から遊技制御用マイクロコンピュータ100の内部データに対する読出要求があった場合に、外部バスインタフェース501におけるアドレスバス出力、データバス出力および制御信号出力にマスクをかけることにより、外部装置から内部データの読み出しを不能にする機能である。図8(A)に示すように、ヘッダKHDRの設定データに対応して、ROM読出防止機能やバス出力マスク機能の動作組合せが異なるように設定される。図8(A)に示す設定データのうち、ROM読出が許可されるとともに、バス出力マスクが有効となる設定データは、バス出力マスク有効データともいう。また、ROM読出が禁止されるとともに、バス出力マスクが有効となる設定データ(全て「00H」)は、ROM読出禁止データともいう。ROM読出が許可されるとともに、バス出力マスクが無効となる設定データは、バス出力マスク無効データともいう。
プログラム管理エリアに記憶されるリセット設定KRESは、遊技制御用マイクロコンピュータ100におけるリセット動作の設定を示す。図8(B)は、リセット設定KRESにおける設定内容の一例を示している。リセット設定KRESのビット番号[7]は、遊技制御用マイクロコンピュータ100において内部リセットが発生したときの動作を設定する設定データである。遊技制御用マイクロコンピュータ100における内部リセットは、例えばリセットコントローラ504Aに設けられたウォッチドッグタイマ520からタイムアウト信号が出力されることや、指定エリア外走行禁止(IAT)が発生したことなど、所定の要因により発生するリセットである。
図8(B)に示す例において、リセット設定KRESのビット番号[7]におけるビット値が“0”である場合には、内部リセットが発生したときのリセット動作がユーザリセットに設定される。ユーザリセットが実行される場合には、例えば割り込みコントローラ504B、CPU505、タイマ回路508、フリーランカウンタ509C、PIP510、シリアル通信回路511が初期化され、ユーザプログラムのリセットアドレス(ROM506のアドレス0000H)からユーザプログラムを再実行する。一方、リセット設定KRESのビット番号[7]におけるビット値が“1”である場合には、内部リセットが発生したときのリセット動作がシステムリセットに設定される。システムリセットが実行される場合には、例えば16ビットの乱数回路509Aや8ビットの乱数回路509Bなどを含めた、遊技制御用マイクロコンピュータ100におけるすべての内部回路が初期化され、ユーザプログラムのリセットアドレスからユーザプログラムを再実行する。
リセット設定KRESのビット番号[6]は、リセットコントローラ504Aに設けられたウォッチドッグタイマ520の起動方法を設定する設定データである。図8(B)に示す例において、リセット設定KRESのビット番号[6]におけるビット値が“0”である場合には、遊技制御用マイクロコンピュータ100の動作状態がセキュリティモードからユーザモードに移行することで、ウォッチドッグタイマ520が自動的に起動される。これに対して、そのビット値が“1”である場合には、遊技制御用マイクロコンピュータ100のCPU505がROM506から読み出した制御コードに基づくユーザプログラム(ゲーム制御用の初期設定プログラムおよび遊技制御処理プログラム)を実行することで、ソフトウェアによりウォッチドッグタイマ520を起動させる。このように、ROM506のプログラム管理エリアに記憶されるリセット設定KRESのビット番号[6]におけるビット値を“1”とする設定データを予め記憶させておくことで、ユーザプログラムの実行によるソフトウェアにて、所定のWDT起動制御コードによりウォッチドッグタイマ520を起動してリセット動作を有効化することや、所定のWDT停止制御コードによりウォッチドッグタイマ520を停止してリセット動作を無効化することができる。
リセット設定KRESのビット番号[5−4]は、ウォッチドッグタイマ520のタイムアウト時間を設定するために用いられる基準クロックを設定する設定データである。図8(B)に示す例においては、リセット設定KRESのビット番号[5−4]におけるビット値が“00”、“01”、“10”、“11”のいずれであるかに応じて、周期が異なる基準クロックの設定が行われる。リセット設定KRESのビット番号[3−0]は、ビット番号[5−4]におけるビット値に対応する設定周期との乗算に用いられることで、ウォッチドッグタイマ520のタイムアウト時間を設定する設定データである。図8(B)に示す例においては、リセット設定KRESのビット番号[3−0]におけるビット値が“0000”である場合に、ウォッチドッグタイマ520による監視時間の計測を禁止してウォッチドッグ不使用とする。一方、それらのビット値が“1000”である場合には、設定周期に「8」を乗算することで、ウォッチドッグタイマ520のタイムアウト時間が設定される。また、それらのビット値が“1111”である場合には、設定周期に「15」を乗算することで、ウォッチドッグタイマ520のタイムアウト時間が設定される。
このように、リセット設定KRESのビット番号[5−4]およびビット番号[3−0]におけるビット値を設定することにより、ウォッチドッグタイマ520により計測される監視時間は、予め定められた複数種類のうちから設定することができる。図8(B)に示す例では、リセット設定KRESのビット番号[5−4]におけるビット値が“11”でビット番号[3−0]におけるビット値が“1111”である場合に、監視時間として設定可能な最長時間が設定される。一例として、内部システムクロックSCLKの周波数が10.0MHzである場合には、約50.33秒が最長の監視時間となる。他の一例として、内部システムクロックSCLKの周波数が12.0MHzである場合には、約41.94秒が最長の監視時間となる。
プログラム管理エリアに記憶される割込み初期設定KIISは、遊技制御用マイクロコンピュータ100にて発生するマスカブル割込みの取扱いに関する初期設定を示す。図9(A)は、割込み初期設定KIISにおける設定内容の一例を示している。
割込み初期設定KIISのビット番号[7−4]では、割込みベクタの上位4ビットを設定する。割込み初期設定KIISのビット番号[3−0]では、マスカブル割込み要因の優先度の組合せを設定する。図9(A)に示す例において、割込み初期設定KIISのビット番号[3−0]により「00H」〜「02H」のいずれかが指定されれば、タイマ回路508からのマスカブル割込み要因を最優先とする優先度の組合せが設定される。これに対して、「03H」または「04H」のいずれかが指定されれば、シリアル通信回路511からのマスカブル割込み要因を最優先とする優先度の組合せが設定される。また、「05H」または「06H」のいずれかが指定されれば、乱数回路509A、509Bなどからのマスカブル割込み要因を最優先とする優先度の組合せが設定される。なお、同一回路からのマスカブル割込み要因を最優先とする優先度の組合せでも、指定値が異なる場合には、最優先となるマスカブル割込み要因の種類や第2順位以下における優先度の組合せなどが異なっている。
プログラム管理エリアに記憶される16ビット乱数初期設定第1KRL1〜16ビット乱数初期設定第3KRL3は、16ビットの乱数回路509Aに対する初期設定を示す。図9(B)は、16ビット乱数初期設定第1KRL1における設定内容の一例を示している。図9(C)は、16ビット乱数初期設定第3KRL3における設定内容の一例を示している。この実施の形態において、16ビットの乱数回路509Aは、4つのチャネルch0〜ch3の16ビット疑似乱数を、独立して発生することができる。
16ビット乱数初期設定第1KRL1のビット番号[7]は、チャネルch1の16ビット乱数を発生させるために、16ビットの乱数回路509Aを起動させる方法を設定する16ビット乱数チャネルch1用の乱数回路起動設定データである。図9(B)に示す例において、16ビット乱数初期設定第1KRL1のビット番号[7]におけるビット値が“0”である場合には、チャネルch1の16ビット乱数における最大値をユーザプログラム(ソフトウェア)で指定したときに、チャネルch1の16ビット乱数を発生させるための回路が起動される。これに対して、そのビット値が“1”である場合には、遊技制御用マイクロコンピュータ100の動作状態がセキュリティモードからユーザモードに移行することで、チャネルch1の16ビット乱数を発生させるための回路が自動的に起動される。
16ビット乱数初期設定第1KRL1のビット番号[6]は、チャネルch1の16ビット乱数を発生させるときに、乱数値となる数値データの更新用となる乱数更新クロックRGK(図15を参照)を、内部システムクロックSCLKとするか、乱数用クロックRCKの2分周(RCK/2)とするかを設定する16ビット乱数チャネルch1用の乱数更新クロック設定データである。図9(B)に示す例において、16ビット乱数初期設定第1KRL1のビット番号[6]におけるビット値が“0”である場合には、内部システムクロックSCLKを乱数更新クロックRGKに用いる設定となる一方、“1”である場合には、乱数用クロックRCKの2分周(RCK/2)を乱数更新クロックRGKに用いる設定となる。
16ビット乱数初期設定第1KRL1のビット番号[5−4]は、チャネルch1の16ビット乱数を発生させるときに、乱数更新規則を変更するか否かや、変更する場合における変更方式を設定する16ビット乱数チャネルch1用の乱数更新規則設定データである。図9(B)に示す例において、16ビット乱数初期設定第1KRL1のビット番号[5−4]におけるビット値が“00”である場合には、乱数更新規則を変更しない設定となり、“01”である場合には、乱数更新規則をソフトウェアにより変更する設定となり、“10”である場合には、2周目から乱数更新規則を自動で変更する設定となり、“11”である場合には、1周目から乱数更新規則を自動で変更する設定となる。
図9(B)に示す例において、16ビット乱数初期設定第1KRL1のビット番号[3]、[2]、[1−0]はそれぞれ、16ビット乱数チャネルch0用の乱数回路起動設定データ、乱数更新クロック設定データ、乱数更新規則設定データとなっている。すなわち、16ビット乱数初期設定第1KRLのビット番号[3−0]は、そのビット番号[7−4]によりチャネルch1の16ビット乱数について初期設定を行う場合と同様に、チャネルch0の16ビット乱数について初期設定を行うための設定データである。
なお、16ビット乱数初期設定第2KRL2のビット番号[7]、[6]、[5−4]はそれぞれ、16ビット乱数チャネルch3用の乱数回路起動設定データ、乱数更新クロック設定データ、乱数更新規則設定データとなっている。16ビット乱数初期設定第2KRL2のビット番号[3]、[2]、[1−0]はそれぞれ、16ビット乱数チャネルch2用の乱数回路起動設定データ、乱数更新クロック設定データ、乱数更新規則設定データとなっている。
16ビット乱数初期設定第3KRL3のビット番号[7]とビット番号[6]は、チャネルch3の16ビット乱数となる数値データでのスタート値を設定する16ビット乱数チャネルch3用の乱数スタート値設定データである。図9(C)に示す例において、16ビット乱数初期設定第3KRL3のビット番号[7]におけるビット値が“0”である場合には、スタート値が所定のデフォルト値である「0000H」に設定される一方、“1”である場合には、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づく値がスタート値に設定される。また、図9(C)に示す例では、16ビット乱数初期設定第3KRL3のビット番号[6]におけるビット値が“0”である場合には、システムリセット毎にスタート値を変更しない設定となる一方、“1”である場合には、システムリセット毎にスタート値を変更する設定となる。
なお、スタート値をIDナンバーに基づく値に設定する場合には、IDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算の一部または全部を実行して、算出された値をスタート値に用いるようにすればよい。また、16ビット乱数初期設定第3KRL3のビット番号[6]におけるビット値が“1”である場合には、システムリセット毎に所定のフリーランカウンタ(例えば図5に示すフリーランカウンタ509C)におけるカウント値に基づいて設定される値をスタート値に用いるようにすればよい。さらに、16ビット乱数初期設定第3KRL3のビット番号[7]とビット番号[6]におけるビット値がともに“1”である場合には、IDナンバーとフリーランカウンタにおけるカウント値とに基づいて設定される値をスタート値に用いるようにすればよい。
16ビット乱数初期設定第3KRL3のビット番号[5]とビット番号[4]は、チャネルch2の16ビット乱数となる数値データでのスタート値を設定する16ビット乱数チャネルch2用の乱数スタート値設定データである。すなわち、16ビット乱数初期設定第3KRL3のビット番号[5]とビット番号[4]は、そのビット番号[7]とビット番号[6]によりチャネルch3の16ビット乱数について初期設定を行う場合と同様に、チャネルch2の16ビット乱数について初期設定を行うための設定データである。16ビット乱数初期設定第3KRL3のビット番号[3]とビット番号[2]は、16ビット乱数チャネルch1用の乱数スタート値設定データである。16ビット乱数初期設定第3KRL3のビット番号[1]とビット番号[0]は、16ビット乱数チャネルch0用の乱数スタート値設定データである。
プログラム管理エリアに記憶される8ビット乱数初期設定第1KRS1および8ビット乱数初期設定第2KRS2は、8ビットの乱数回路509Bに対する初期設定を示す。この実施の形態において、8ビットの乱数回路509Bは、4つのチャネルch0〜ch3の8ビット疑似乱数を、独立して発生することができる。8ビット乱数初期設定第1KRS1は、8ビット乱数チャネルch1用の乱数回路起動設定データ、乱数更新クロック設定データ、乱数更新規則設定データと、8ビット乱数チャネルch0用の乱数回路起動設定データ、乱数更新クロック設定データ、乱数更新規則設定データとを含んでいる。8ビット乱数初期設定第2KRS2は、8ビット乱数チャネルch3用の乱数回路起動設定データ、乱数更新クロック設定データ、乱数更新規則設定データと、8ビット乱数チャネルch2用の乱数回路起動設定データ、乱数更新クロック設定データ、乱数更新規則設定データとを含んでいる。すなわち、8ビット乱数初期設定第1KRS1および8ビット乱数初期設定第1KRS2は、16ビット乱数初期設定第1KRL1および16ビット乱数初期設定第2KRL2によりチャネルch0〜チャネルch3の16ビット乱数について初期設定を行う場合と同様に、チャネルch0〜チャネルch3の8ビット乱数について初期設定を行うための設定データである。
プログラム管理エリアに記憶されるセキュリティ時間設定KSESは、電源投入時における遊技制御用マイクロコンピュータ100の動作状態であるセキュリティモードとなる時間(セキュリティモード時間)を延長するための設定を示す。ここで、遊技制御用マイクロコンピュータ100の動作状態がセキュリティモードであるときには、所定のセキュリティチェック処理が実行されて、ROM506の記憶内容が変更されたか否かが検査される。図10は、セキュリティ時間設定KSESにおける設定内容の一例を示している。
セキュリティ時間設定KSESのビット番号[7−6]は、セキュリティモード時間をシステムリセット毎にランダムな時間分延長する場合の時間設定を示す。図10に示す例において、セキュリティ時間設定KSESのビット番号[7−6]におけるビット値が“00”であれば、ランダムな時間延長を行わない設定となる。これに対して、そのビット値が“01”であればショートモードの設定となり、“10”であればミドルモードの設定となり、“11”であればロングモードの設定となる。ここで、ショートモードやミドルモード、あるいはロングモードが指定された場合には、例えば遊技制御用マイクロコンピュータ100に内蔵されたフリーランカウンタのカウント値を、システムリセットの発生時に遊技制御用マイクロコンピュータ100が備える所定の内蔵レジスタ(可変セキュリティモード時間用レジスタ)に格納する。そして、初期設定時に可変セキュリティ時間用レジスタの格納値をそのまま用いること、あるいは、その格納値を所定の演算関数(例えばハッシュ関数)に代入して得られた値を用いることなどにより、セキュリティモード時間を延長する際の延長時間がランダムに決定されればよい。
一例として、内部システムクロックSCLKの周波数が10.0MHzである場合には、ショートモードにおいて0〜816μs(マイクロ秒)の範囲で延長時間がランダムに決定され、ミドルモードにおいて0〜26.112ms(ミリ秒)の範囲で延長時間がランダムに決定され、ロングモードにおいて0〜835.584msの範囲で延長時間がランダムに決定される。また、他の一例として、内部システムクロックSCLKの周波数が12.0MHzである場合には、ショートモードにおいて0〜510μsの範囲で延長時間がランダムに決定され、ミドルモードにおいて0〜16.32msの範囲で延長時間がランダムに決定され、ロングモードにおいて0〜522.24msの範囲で延長時間がランダムに決定される。
可変セキュリティモード時間用レジスタは、例えば遊技制御用マイクロコンピュータ100のRAM507におけるバックアップ領域といった、主基板11におけるバックアップ箇所と共通のバックアップ電源を用いてバックアップされるものであればよい。あるいは、可変セキュリティモード時間用レジスタは、RAM507におけるバックアップ領域などに用いられるバックアップ電源とは別個に設けられた電源によりバックアップされてもよい。こうして、可変セキュリティモード時間用レジスタがバックアップ電源によってバックアップされることで、電力供給が停止した場合でも、所定期間は可変セキュリティモード時間用レジスタの格納値が保存されることになる。なお、フリーランカウンタにおけるカウント値を読み出して可変セキュリティモード時間用レジスタに格納するタイミングは、システムリセットの発生時に限定されず、予め定められた任意のタイミングとしてもよい。あるいは、フリーランカウンタをバックアップ電源によってバックアップしておき、初期設定時にフリーランカウンタから読み出した格納値を用いてセキュリティモード時間を延長する際の延長時間がランダムに決定されてもよい。
また、セキュリティ時間設定KSESのビット番号[7−6]におけるビット値によりショートモード、ミドルモード、ロングモードのいずれかを設定するとともに、セキュリティ時間設定KSESのビット番号[4−0]におけるビット値を“0001”以外とすることにより固定時間に加える延長時間を設定することもできる。この場合には、ビット番号[4−0]におけるビット値に対応した延長時間と、ビット番号[7−6]におけるビット値に基づいてランダムに決定された延長時間との双方が、固定時間に加算されて、遊技制御用マイクロコンピュータ100がセキュリティモードとなるセキュリティモード時間が決定されることになる。
図5に示す遊技制御用マイクロコンピュータ100が備える外部バスインタフェース501は、遊技制御用マイクロコンピュータ100を構成するチップの外部バスと内部バスとのインタフェース機能や、アドレスバス、データバスおよび各制御信号の方向制御機能などを有するバスインタフェースである。例えば、外部バスインタフェース501は、遊技制御用マイクロコンピュータ100に外付けされた外部メモリや外部入出力装置などに接続され、これらの外部装置との間でアドレス信号やデータ信号、各種の制御信号などを送受信するものであればよい。この実施の形態において、外部バスインタフェース501には、内部リソースアクセス制御回路501Aが含まれている。
内部リソースアクセス制御回路501Aは、外部バスインタフェース501を介した外部装置から遊技制御用マイクロコンピュータ100の内部データに対するアクセスを制御して、例えばROM506に記憶されたゲーム制御用プログラム(遊技制御処理プログラム)や固定データといった、内部データの不適切な外部読出を制限するための回路である。ここで、外部バスインタフェース501には、例えばインサーキットエミュレータ(ICE;InCircuit Emulator)といった回路解析装置が、外部装置として接続されることがある。
一例として、ROM506のプログラム管理エリアに記憶されたヘッダKHDRの内容に応じて、ROM506における記憶データの読み出しを禁止するか許可するかを切り替えられるようにする。例えば、ヘッダKHDRがバス出力マスク無効データとなっている場合には、外部装置によるROM506の読み出しを可能にして、内部データの外部読出を許可する。これに対して、ヘッダKHDRがバス出力マスク有効データとなっている場合には、例えば外部バスインタフェース501におけるアドレスバス出力、データバス出力および制御信号出力にマスクをかけることなどにより、外部装置からROM506の読み出しを不能にして、内部データの外部読出を禁止する。この場合、外部バスインタフェース501に接続された外部装置から内部データの読み出しが要求されたときには、予め定められた固定値を出力することで、外部装置からは内部データを読み出すことができないようにする。また、ヘッダKHDRがROM読出禁止データとなっている場合には、ROM506自体を読出不能として、ROM506における記憶データの読み出しを防止してもよい。そして、例えば製造段階のROMでは、ヘッダKHDRをROM読出禁止データとすることで、ROM自体を読出不能としておき、開発用ROMとするのであればバス出力マスク無効データをヘッダKHDRに書き込むことで、外部装置による内部データの検証を可能にする。これに対して、量産用ROMとするのであればバス出力マスク有効データをヘッダKHDRに書き込むことで、CPU505などによる遊技制御用マイクロコンピュータ100の内部におけるROM506の読み出しは可能とする一方で、外部装置によるROM506の読み出しはできないようにすればよい。
他の一例として、内部リソースアクセス制御回路501Aは、ROM506における記憶データの一部または全部といった、遊技制御用マイクロコンピュータ100の内部データの読み出しが、外部バスインタフェース501に接続された外部装置から要求されたことを検出する。この読出要求を検出したときに、内部リソースアクセス制御回路501Aは、遊技制御用マイクロコンピュータ100の内部データの読み出しを許可するか否かの判定を行う。例えば、ROM506における記憶データの一部または全部に暗号化処理が施されているものとする。この場合、内部リソースアクセス制御回路501Aは、外部装置からの読出要求がROM506に記憶された暗号化処理プログラムや鍵データ等に対する読出要求であれば、この読出要求を拒否して、遊技制御用マイクロコンピュータ100の内部データの読み出しを禁止する。外部バスインタフェース501では、ROM506の記憶データが出力される出力ポートと、内部バスとの間にスイッチ素子を設け、内部リソースアクセス制御回路501Aが内部データの読み出しを禁止した場合には、このスイッチ素子をオフ状態とするように制御すればよい。このように、内部リソースアクセス制御回路501Aは、外部装置からの読出要求が所定の内部データ(例えばROM506の所定領域)の読み出しを要求するものであるか否かに応じて、内部データの読み出しを禁止するか許可するかを決定するようにしてもよい。
あるいは、内部リソースアクセス制御回路501Aは、内部データの読出要求を検出したときに、所定の認証コードが外部装置から入力されたか否かを判定してもよい。この場合には、例えば内部リソースアクセス制御回路501Aの内部あるいはROM506の所定領域に、認証コードとなる所定のコードパターンが予め記憶されていればよい。そして、外部装置から認証コードが入力されたときには、この認証コードを内部記憶された認証コードと比較して、一致すれば読出要求を受容して、遊技制御用マイクロコンピュータ100の内部データの読み出しを許可する。これに対して、外部装置から入力された認証コードが内部記憶された認証コードと一致しない場合には、読出要求を拒否して、遊技制御用マイクロコンピュータ100の内部データの読み出しを禁止する。このように、内部リソースアクセス制御回路501Aは、外部装置から入力された認証コードが内部記憶された認証コードと一致するか否かに応じて、内部データの読み出しを禁止するか許可するかを決定するようにしてもよい。これにより、検査機関などが予め知得した正しい認証コードを用いて、遊技制御用マイクロコンピュータ100の内部データを損なうことなく読み出すことができ、内部データの正当性を適切に検査することなどが可能になる。
さらに他の一例として、内部リソースアクセス制御回路501Aに読出禁止フラグを設け、読出禁止フラグがオン状態であれば外部装置によるROM506の読み出しを禁止する。その一方で、読出禁止フラグがオフ状態であるときには、外部装置によるROM506の読み出しが許可される。ここで、読出禁止フラグは、初期状態ではオフ状態であるが、読出禁止フラグを一旦オン状態とした後には、読出禁止フラグをクリアしてオフ状態に復帰させることができないように構成されていればよい。すなわち、読出禁止フラグはオフ状態からオン状態に不可逆的に変更することが可能とされている。例えば、内部リソースアクセス制御回路501Aには、読出禁止フラグをクリアしてオフ状態とする機能が設けられておらず、どのような命令によっても読出禁止フラグをクリアすることができないように設定されていればよい。そして、内部リソースアクセス制御回路501Aは、外部装置からROM506における記憶データといった遊技制御用マイクロコンピュータ100の内部データの読み出しが要求されたときに、読出禁止フラグがオンであるか否かを判定する。このとき、読出禁止フラグがオンであれば、外部装置からの読出要求を拒否して、遊技制御用マイクロコンピュータ100の内部データの読み出しを禁止する。他方、読出禁止フラグがオフであれば、外部装置からの読出要求を受容して、遊技制御用マイクロコンピュータ100の内部データの読み出しを許可にする。このような構成であれば、ゲーム制御用の遊技制御処理プログラムを作成してROM506に格納する提供者においては、読出禁止フラグがオフとなっている状態でデバッグの終了したプログラムをROM506から外部装置に読み込むことができる。そして、デバッグの作業が終了した後に出荷する際には、読出禁止フラグをオン状態にセットすることにより、それ以後はROM506の外部読出を制限することができ、パチンコ遊技機1の使用者などによるROM506の読出を防止することができる。このように、内部リソースアクセス制御回路501Aは、読出禁止フラグといった内部フラグがオフであるかオンであるかに応じて、内部データの読み出しを禁止するか許可するかを決定するようにしてもよい。
なお、読出禁止フラグを不可逆に設定するのではなく、オン状態からオフ状態に変更することも可能とする一方で、読出禁止フラグをオン状態からオフ状態に変更して内部データの読み出しが許可されるときには、ROM506の記憶データを消去(例えばフラッシュ消去など)することにより、ROM506の外部読出を制限するようにしてもよい。
遊技制御用マイクロコンピュータ100が備えるクロック回路502は、例えば制御用外部クロック端子EXCに入力される発振信号を2分周することなどにより、内部システムクロックSCLKを生成する回路である。この実施の形態では、制御用外部クロック端子EXCに制御用クロック生成回路111が生成した制御用クロックCCLKが入力される。クロック回路502により生成された内部システムクロックSCLKは、例えばCPU505といった、遊技制御用マイクロコンピュータ100において遊技の進行を制御する各種回路に供給される。また、内部システムクロックSCLKは、乱数回路509A、509Bにも供給される。さらに、内部システムクロックSCLKは、クロック回路502に接続されたシステムクロック出力端子CLKOから、遊技制御用マイクロコンピュータ100の外部へと出力されてもよい。なお、内部システムクロックSCLKは、遊技制御用マイクロコンピュータ100の外部へは出力されないことが望ましい。このように、内部システムクロックSCLKの外部出力を制限することにより、遊技制御用マイクロコンピュータ100の内部回路(CPU505など)の動作周期を外部から特定することが困難になり、乱数値となる数値データをソフトウェアにより更新する場合に、乱数値の更新周期が外部から特定されてしまうことを防止できる。
遊技制御用マイクロコンピュータ100が備える固有情報記憶回路503は、例えば遊技制御用マイクロコンピュータ100の内部情報となる複数種類の固有情報を記憶する回路である。一例として、固有情報記憶回路503は、ROMコード、チップ個別ナンバー、IDナンバーといった3種類の固有情報を記憶する。ROM506コードは、ROM506の所定領域における記憶データから生成される4バイトの数値であり、生成方法の異なる4つの数値が準備されればよい。チップ個別ナンバーは、遊技制御用マイクロコンピュータ100の製造時に付与される4バイトの番号であり、遊技制御用マイクロコンピュータ100を構成するチップ毎に異なる数値を示している。IDナンバーは、遊技制御用マイクロコンピュータ100の製造時に付与される8バイトの番号であり、遊技制御用マイクロコンピュータ100を構成するチップ毎に異なる数値を示している。ここで、チップ個別ナンバーはユーザプログラムから読み取ることができる一方、IDナンバーはユーザプログラムから読み取ることができないように設定されていればよい。なお、固有情報記憶回路503は、例えばROM506の所定領域を用いることなどにより、ROM506に含まれるようにしてもよい。あるいは、固有情報記憶回路503は、例えばCPU505の内蔵レジスタを用いることなどにより、CPU505に含まれるようにしてもよい。
遊技制御用マイクロコンピュータ100が備えるリセットコントローラ504Aは、遊技制御用マイクロコンピュータ100の内部や外部にて発生する各種リセットを制御するためのものである。リセットコントローラ504Aが制御するリセットには、システムリセットとユーザリセットが含まれている。システムリセットは、外部システムリセット端子XSRSTに一定の期間にわたりローレベル信号が入力されたときに発生するリセットである。ユーザリセットは、ウォッチドッグタイマ(WDT)のタイムアウト信号が発生したことや、指定エリア外走行禁止(IAT)が発生したことなど、所定の要因により発生するリセットである。
リセットコントローラ504Aは、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、内部情報レジスタCIF(アドレスFE25H)を用いて、直前に発生したリセット要因の管理や、16ビット乱数および乱数用クロックRCKにおける異常の記録を可能にする。図11(A)は、内部情報レジスタCIFの構成例を示している。図11(B)は、内部情報レジスタCIFに格納される内部情報データの各ビットにおける設定内容の一例を示している。
内部情報レジスタCIFのビット番号[7−4]に格納される内部情報データCIF7〜CIF4は、チャネルch3〜チャネルch0の16ビット乱数に対応して、乱数値の更新動作における異常の有無を示す乱数更新異常指示である。図11(B)に示す例では、チャネルch3〜チャネルch0の16ビット乱数について更新動作の異常が検知されないときに、内部情報データCIF7〜CIF4のそれぞれにおけるビット値が“0”となる。一方、16ビット乱数の更新動作に異常が検知されたときには、その異常が検知されたチャネルに対応して、内部情報データCIF7〜CIF4のいずれかにおけるビット値が“1”となる。より具体的には、16ビット乱数の更新動作に異常を検知したチャネルが、チャネルch3であれば内部情報データCIF7が“1”となり、チャネルch2であれば内部情報データCIF6が“1”となり、チャネルch1であれば内部情報データCIF5が“1”となり、チャネルch0であれば内部情報データCIF4が“1”となる。
内部情報レジスタCIFのビット番号[3]に格納される内部情報データCIF3は、乱数用クロックRCKにおける周波数異常の有無を示す乱数用クロック異常指示である。図11(B)に示す例では、乱数用クロックRCKの周波数異常が検知されないときに、内部情報データCIF3のビット値が“0”となる一方、周波数異常が検知されたときには、そのビット値が“1”となる。内部情報レジスタCIFのビット番号[2]に格納される内部情報データCIF2は、直前に発生したリセット要因がシステムリセットであるか否かを示すシステムリセット指示である。図11(B)に示す例では、直前のリセット要因がシステムリセットではないときに(システムリセット未発生)、内部情報データCIF2のビット値が“0”となる一方、システムリセットであるときには(システムリセット発生)、そのビット値が“1”となる。内部情報データCIF2を用いた動作の第1例として、電源投入時に遊技制御用マイクロコンピュータ100のCPU505などが内部情報データCIF2のビット値をチェックして、そのビット値が“1”(セット)でなければ、通常の電源投入ではないと判断する。このときには、例えば演出制御基板12に向けて所定の演出制御コマンドを伝送させることなどにより、パチンコ遊技機1における電源投入直後に大当り遊技状態とすることを狙った不正信号の入力行為が行われた可能性がある旨を、演出装置などにより報知させてもよい。また、内部情報データCIF2を用いた動作の第2例として、パチンコ遊技機1が電源投入時にのみ確変状態を報知し、通常時には確変状態を報知しない場合に、電源投入時に遊技制御用マイクロコンピュータ100のCPU505などが内部情報データCIF2のビット値をチェックして、そのビット値が“1”(セット)でなければ、遊技状態の報知を行わないようにしてもよい。
内部情報レジスタCIFのビット番号[1]に格納される内部情報データCIF1は、直前に発生したリセット要因がリセットコントローラ504Aに内蔵されたウォッチドッグタイマ(WDT)520のタイムアウトによるユーザリセットであるか否かを示すウォッチドッグタイムアウト指示である。図11(B)に示す例では、直前のリセット要因がウォッチドッグタイマ520のタイムアウトによるユーザリセットではないときに(タイムアウト未発生)、内部情報データCIF1のビット値が“0”となる一方、ウォッチドッグタイマ520のタイムアウトによるユーザリセットであるときに(タイムアウト発生)、そのビット値が“1”となる。内部情報レジスタCIFのビット番号[0]に格納される内部情報データCIF0は、直前に発生したリセット要因が指定エリア外走行禁止(IAT)によるユーザリセットであるか否かを示すIAT発生指示である。図11(B)に示す例では、直前のリセット要因が指定エリア外走行の発生によるユーザリセットではないときに(IAT発生なし)、内部情報データCIF0のビット値が“0”となる一方、指定エリア外走行の発生によるユーザリセットであるときに(IAT発生あり)、そのビット値が“1”となる。
リセットコントローラ504Aには、ウォッチドッグタイマ520が内蔵されている。ウォッチドッグタイマ520は、遊技制御用マイクロコンピュータ100がユーザプログラムを正常に実行できなくなって所定の監視時間が経過した場合に、遊技制御用マイクロコンピュータ100をリセット状態にして再起動させるためのタイムアウト信号を出力する。なお、ウォッチドッグタイマ520は、遊技制御用マイクロコンピュータ100に内蔵される一方で、リセットコントローラ504Aには外付けされるようにしてもよい。あるいは、ウォッチドッグタイマ520を遊技制御用マイクロコンピュータ100に外付けした構成であってもよい。
図12は、ウォッチドッグタイマ520の構成例を示している。ウォッチドッグタイマ520は、ROM506のプログラム管理エリアに記憶されるリセット設定KRESのビット番号[6]におけるビット値により、その起動方法が設定される。この実施の形態では、ウォッチドッグタイマ520をユーザプログラムの実行によるソフトウェアでウォッチドッグタイマ520を起動してリセット動作を有効化するために、リセット設定KRESのビット番号[6]におけるビット値を予め“1”とする設定データを記憶させておく。また、ウォッチドッグタイマ520により計測される監視時間としてのタイムアウト時間が、設定可能な複数の監視時間のうちで最長時間となるように、リセット設定KRESのビット番号[5−4]におけるビット値を予め“11”とする設定データとともに、リセット設定KRESのビット番号[3−0]におけるビット値を予め“1111”とする設定データを記憶させておく。
図12に示すウォッチドッグタイマ520は、WDT制御回路533と、カウントクロック生成回路535と、16ビットアップカウンタ536と、出力制御回路537とを備えている。WDT制御回路533は、ウォッチドッグタイマ520の動作を制御する回路である。WDT制御回路533は、プログラム管理エリアのリセット設定KRESなどに基づいて、ウォッチドッグタイマ520を動作させるために、カウントクロック生成回路535により生成される基準クロックの設定や、16ビットアップカウンタ536におけるタイムアウト時間の設定を行う。
また、WDT制御回路533は、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、WDTスタートレジスタWST(アドレスFE23H)に所定のWDT起動制御コードが設定されることにより、ユーザプログラムの実行によるソフトウェアで、ウォッチドッグタイマ520を起動してリセット動作を有効化すること、またはウォッチドッグタイマ520を停止してリセット動作を無効化することを、切替可能に制御する。図13(A)は、WDTスタートレジスタWSTの構成例を示している。図13(B)は、WDTスタートレジスタWSTに格納されるWDTスタートデータによる設定内容の一例を示している。
図13(A)および(B)に示す例において、WDTスタートレジスタWSTに「CCH」がCPU505によって書き込まれたときに、ウォッチドッグタイマ520を起動してタイムアウト時間の経過によるリセット動作を有効化する。一方、WDTスタートレジスタWSTに「33H」がCPU505によって書き込まれたときには、ウォッチドッグタイマ520を停止してタイムアウト時間の経過によるリセット動作を無効化する。このように、WDT起動制御コードとなる「CCH」の値を示すデータがWDTスタートレジスタWSTに書き込まれることにより、ウォッチドッグタイマ520が起動する。一方、WDT停止制御コードとなる「33H」の値を示すデータがWDTスタートレジスタWSTに書き込まれることにより、ウォッチドッグタイマ520が停止する。
さらに、WDT制御回路533は、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、WDTクリアレジスタWCL(アドレスFE24H)に所定のWDTクリアデータが設定されることにより、ウォッチドッグタイマ520のカウントクリアおよびリスタートを実行する。図14(A)は、WDTクリアレジスタWCLの構成例を示している。図14(B)は、WDTクリアレジスタWCLに格納されるWDTクリアデータによる設定内容の一例を示している。
図14(A)および(B)に示す例において、WDTクリアレジスタWCLに「55H」がCPU505によって書き込まれ、次に「AAH」がCPU505によって書き込まれたときに、WDT制御回路533が16ビットアップカウンタ536のカウント値をクリアしてカウント動作をリスタートさせる。こうして、ウォッチドッグタイマ520における監視時間となるタイムアウト時間の計測は、WDTクリアレジスタWCLに「55H」と「AAH」という値が異なるWDTクリアデータが順次に書き込まれることにより、初期化して再開することができる。なお、「55H」と「AAH」からなるWDTクリアデータは、2バイト連続して書き込む必要はないが、この順番に書き込むことは必要になる。
カウントクロック生成回路535は、内部システムクロックSCLKを用いて、タイムアウト時間を設定するための基準クロックを生成する。16ビットアップカウンタ536は、カウントクロック生成回路535により生成された基準クロックをカウントする。そのカウント値がタイムアウト時間に対応する所定値に達したときには、出力制御回路537によりタイムアウト信号が出力される。一方、タイムアウト時間が経過するより前に、CPU505がWDTクリアレジスタWCLにWDTクリアデータを所定順序で書き込んだときには、16ビットアップカウンタ535におけるカウント値のクリアおよびリスタートが行われる。例えばCPU505が無限ループとなる処理を実行して、遊技制御用マイクロコンピュータ100の動作状態が待機状態に移行するときには、ウォッチドッグタイマ520を起動してタイムアウト時間の経過によるリセット動作を有効化する。このときには、WDTクリアレジスタWCLにWDTクリアデータが書き込まれないことから、16ビットアップカウンタ535のカウント値が所定値に達してタイムアウトが発生する。出力制御回路537は、16ビットアップカウンタ535からのタイムアウト信号を、リセットコントローラ504Aのリセット回路などに出力する。
遊技制御用マイクロコンピュータ100が備える割込みコントローラ504Bは、遊技制御用マイクロコンピュータ100の内部や外部にて発生する各種割込み要求を制御するためのものである。割込みコントローラ504Bが制御する割込みには、ノンマスカブル割込みNMIとマスカブル割込みINTが含まれている。ノンマスカブル割込みNMIは、CPU505の割込み禁止状態でも無条件に受け付けられる割込みであり、外部ノンマスカブル割込み端子XNMI(入力ポートPI6と兼用)に一定の期間にわたりローレベル信号が入力されたときに発生する割込みである。マスカブル割込みINTは、CPU505の設定命令により、割込み要求の受け付けを許可/禁止できる割込みであり、優先順位設定による多重割込みの実行が可能である。マスカブル割込みINTの要因としては、外部マスカブル割込み端子XINT(入力ポートPI5と兼用)に一定の期間にわたりローレベル信号が入力が入力されたこと、タイマ508に含まれるタイマ回路にてタイムアウトが発生したこと、シリアル通信回路511にてデータ受信またはデータ送信による割込み要因が発生したこと、乱数回路509A、509Bにて乱数値となる数値データの取込による割込み要因が発生したことなど、複数種類の割込み要因が予め定められていればよい。
割込みコントローラ504Bは、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、割込みマスクレジスタIMR(アドレスFE26H)、割込み待ちモニタレジスタIRR(アドレスFE27H)、割込み中モニタレジスタISR(アドレスFE28H)などを用いて、割込みの制御やリセットの管理を行う。割込みマスクレジスタIMRは、互いに異なる複数の要因によるマスカブル割込みINTのうち、使用するものと使用しないものとを設定するレジスタである。割込み待ちモニタレジスタIRRは、割込み初期設定KIISにより設定されたマスカブル割込み要因のそれぞれについて、マスカブル割込み要求信号の発生状態を確認するレジスタである。割込み中モニタレジスタISRは、割込み初期設定KIISにより設定されたマスカブル割込み要因のそれぞれについて、マスカブル割込み要求信号の処理状態を確認するレジスタである。
遊技制御用マイクロコンピュータ100が備えるCPU505は、ROM506から読み出した制御コードに基づいてユーザプログラム(ゲーム制御用の遊技制御処理プログラム)を実行することにより、パチンコ遊技機1における遊技制御を実行する制御用CPUである。こうした遊技制御が実行されるときには、CPU505がROM506から固定データを読み出す固定データ読出動作や、CPU505がRAM507に各種の変動データを書き込んで一時記憶させる変動データ書込動作、CPU505がRAM507に一時記憶されている各種の変動データを読み出す変動データ読出動作、CPU505が外部バスインタフェース501やPIP510、シリアル通信回路511などを介して遊技制御用マイクロコンピュータ100の外部から各種信号の入力を受け付ける受信動作、CPU505が外部バスインタフェース501やシリアル通信回路511などを介して遊技制御用マイクロコンピュータ100の外部へと各種信号を出力する送信動作等も行われる。
このように、遊技制御用マイクロコンピュータ100では、CPU505がROM506に格納されているプログラムに従って制御を実行するので、以下、遊技制御用マイクロコンピュータ100(またはCPU505)が実行する(又は処理を行う)ということは、具体的には、CPU505がプログラムに従って制御を実行することである。このことは、主基板11以外の他の基板に搭載されているマイクロコンピュータについても同様である。
遊技制御用マイクロコンピュータ100が備えるROM506には、ユーザプログラム(ゲーム制御用の遊技制御処理プログラム)を示す制御コードや固定データ等が記憶されている。また、ROM506には、セキュリティチェックプログラム506Aが記憶されている。CPU505は、パチンコ遊技機1の電源投入やシステムリセットの発生に応じて遊技制御用マイクロコンピュータ100がセキュリティモードに移行したときに、ROM506に記憶されたセキュリティチェックプログラム506Aを読み出し、ROM506の記憶内容が変更されたか否かを検査するセキュリティチェック処理を実行する。なお、セキュリティチェックプログラム506Aは、ROM506とは異なる内蔵メモリに記憶されてもよい。また、セキュリティチェックプログラム506Aは、例えば外部バスインタフェース501を介して遊技制御用マイクロコンピュータ100に外付けされた外部メモリの記憶内容を検査するセキュリティチェック処理に対応したものであってもよい。
遊技制御用マイクロコンピュータ100が備えるRAM507は、ゲーム制御用のワークエリアを提供する。ここで、RAM507の少なくとも一部は、電源基板10において作成されるバックアップ電源によってバックアップされているバックアップRAMであればよい。すなわち、パチンコ遊技機1への電力供給が停止しても、所定期間はRAM507の少なくとも一部の内容が保存される。
遊技制御用マイクロコンピュータ100が備えるタイマ回路508は、例えば8ビットのプログラマブルタイマを3チャネル(PTC0−PTC2)内蔵して構成され、リアルタイム割込みの発生や時間計測を可能とする。各プログラマブルタイマPTC0−PTC2は、内部システムクロックSCLKに基づいて生成されたカウントクロックの信号変化(例えばハイレベルからローレベルへと変化する立ち下がりタイミング)などに応じて、タイマ値が更新されるものであればよい。
遊技制御用マイクロコンピュータ100は、乱数回路として、例えば16ビット乱数となる数値データを生成する乱数回路509Aと、8ビット乱数となる数値データを生成する乱数回路509Bとを備えている。この実施の形態では、主基板11の側において、特図表示結果決定用の乱数値MR1、大当り種別決定用の乱数値MR2、変動パターン種別決定用の乱数値MR3、変動パターン決定用の乱数値MR4、普図表示結果決定用の乱数値MR5のそれぞれを示す数値データが、カウント(更新)可能に制御されればよい。なお、遊技効果を高めるために、これら以外の乱数値が用いられてもよい。こうした遊技の進行を制御するために用いられる乱数は、遊技用乱数ともいう。
CPU505は、乱数回路509A、509Bから抽出した数値データに基づき、例えばRAM507の所定領域(遊技制御カウンタ設定部など)に設けられたランダムカウンタといった、乱数回路509A、509Bとは異なるランダムカウンタを用いて、ソフトウェアによって各種の数値データを加工あるいは更新することで、乱数値MR1〜MR5の一部または全部を示す数値データをカウントするようにしてもよい。あるいは、CPU505は、乱数回路509A、509Bを用いることなく、例えば遊技制御カウンタ設定部に設けられたランダムカウンタのみを用いて、ソフトウェアによって乱数値MR1〜MR5を示す数値データの一部をカウント(更新)するようにしてもよい。一例として、ハードウェアとなる16ビットの乱数回路509AからCPU505により抽出された数値データを、ソフトウェアにより加工することで、特図表示結果決定用の乱数値MR1を示す数値データが更新され、それ以外の乱数値MR2〜MR5を示す数値データは、CPU505がランダムカウンタなどを用いてソフトウェアにより更新すればよい。
あるいは、CPU505は、16ビットの乱数回路509Aから抽出した数値データに基づき、ランダムカウンタを用いることで、あるいはランダムカウンタを用いることなく、特図表示結果決定用の乱数値MR1を示す数値データをカウントする。一方、CPU505は、8ビットの乱数回路509Bから抽出した数値データに基づき、ランダムカウンタを用いることで、あるいはランダムカウンタを用いることなく、大当り種別決定用の乱数値MR2と、変動パターン種別決定用の乱数値MR3と、変動パターン決定用の乱数値MR4と、普図表示結果決定用の乱数値MR5とを示す数値データを、それぞれ独立してカウントしてもよい。
特図表示結果決定用の乱数値MR1は、特図ゲームにおける特別図柄などの可変表示結果を「大当り」として大当り遊技状態に制御するか否かや、可変表示結果を「小当り」として小当り遊技状態に制御するか否かを、決定するために用いられる乱数値である。例えば、特図表示結果決定用の乱数値MR1は、「0」〜「65535」の範囲の値をとる。大当り種別決定用の乱数値MR2は、可変表示結果を「大当り」とする場合に、大当り種別を複数種類のいずれかに決定するために用いられる乱数値である。例えば、大当り種別決定用の乱数値MR2は、「0」〜「99」の範囲の値をとる。
変動パターン種別決定用の乱数値MR3は、飾り図柄の変動パターン種別を、予め用意された複数種類のいずれかに決定するために用いられる乱数値である。例えば、変動パターン種別決定用の乱数値MR3は、「0」〜「241」の範囲の値をとる。ここで、各変動パターン種別は、例えば飾り図柄の可変表示中に実行される演出動作などに基づいて分類された1つ又は複数の変動パターンを含むように構成されたものであればよい。なお、複数の変動パターン種別のうちには、共通の変動パターンを一部に含んで構成されたものがあってもよく、一方の変動パターン種別に含まれる変動パターンの全部が、他方の変動パターン種別にも含まれるように構成されたものがあってもよい。変動パターン決定用の乱数値MR4は、飾り図柄の変動パターンを、予め用意された複数種類のいずれかに決定するために用いられる乱数値である。例えば、変動パターン決定用の乱数値MR4は、「0」〜「997」の範囲の値をとる。普図表示結果決定用の乱数値MR5は、普図ゲームにおける普通図柄の可変表示結果を「普図当り」とするか否かを決定するために用いられる乱数値である。例えば、普図表示結果決定用の乱数値MR5は、「3」〜「14」の範囲の値をとる。
図15は、16ビットの乱数回路509Aのうち、チャネルch0に対応する回路構成の一例を示すブロック図である。図15に示すように、チャネルch0に対応して16ビット乱数を生成するための回路は、乱数更新クロック選択回路551、乱数生成回路553A、乱数起動設定回路553B、スタート値設定回路553C、乱数列変更回路554A、乱数列変更設定回路554B、最大値比較回路555、ハードラッチセレクタ558A、558B、ハードラッチ乱数値レジスタ559A、559B、ソフトラッチ乱数値レジスタ559Sを備えて構成される。
乱数更新クロック選択回路551は、例えば16ビット乱数初期設定第1KRL1のビット番号[2](チャネルch0の場合)におけるビット値が“0”であるか“1”であるかに応じて、内部システムクロックSCLKまたは乱数用クロックRCKの2分周(RCK/2)を選択して、乱数更新クロックRGKとして出力する。乱数更新クロック選択回路551から出力された乱数更新クロックRGKは、乱数生成回路553Aのクロック端子に入力されて、乱数生成回路553Aにおけるカウント値の歩進に用いられる。
なお、乱数更新クロック選択回路551によって選択された内部システムクロックSCLKまたは乱数用クロックRCKの2分周(RCK/2)が、所定のクロック用フリップフロップのクロック端子に入力されてもよい。クロック用フリップフロップでは、逆相出力端子(反転出力端子)がデータ入力端子に接続されている。そして、正相出力端子(非反転出力端子)から乱数更新クロックRGKを出力する一方で、逆相出力端子(反転出力端子)からラッチ用クロックを出力する。この場合、クロック用フリップフロップは、クロック端子に入力されるクロック信号における信号状態が所定の変化をしたときに、正相出力端子(非反転出力端子)および逆相出力端子(反転出力端子)からの出力信号における信号状態を変化させる。例えば、クロック用フリップフロップは、クロック信号の信号状態がローレベルからハイレベルへと変化する立ち上がりのタイミング、あるいは、クロック信号の信号状態がハイレベルからローレベルへと変化する立ち下がりのタイミングのうち、いずれか一方のタイミングにて、データ入力端子における入力信号を取り込む。このとき、正相出力端子(非反転出力端子)からは、データ入力端子にて取り込まれた入力信号が反転されることなく出力される一方で、逆相出力端子(反転出力端子)からは、データ入力端子にて取り込まれた入力信号が反転されて出力される。こうして、クロック用フリップフロップの正相出力端子(非反転出力端子)からはクロック信号における発振周波数の1/2となる発振周波数を有する乱数更新クロックRGKが出力される一方、逆相出力端子(反転出力端子)からは乱数更新クロックRGKの逆相信号(反転信号)、すなわち乱数更新クロックRGKと同一周波数で乱数更新クロックRGKとは位相がπ(=180°)だけ異なるラッチ用クロックが出力される。
クロック用フリップフロップから出力されたラッチ用クロックは、所定の分岐点にて分岐され、互いに同一の発振周波数を有し、互いに共通の周期で信号状態が変化する複数のラッチ用クロックが生成されてもよい。こうして生成された複数のラッチ用クロックのうち、第1のラッチ用クロックは、第1始動入賞信号SS1の入力に基づいて乱数ラッチ信号LL1を生成するために用いられる乱数取得用クロックとなればよい。複数のラッチ用クロックのうち、第2のラッチ用クロックは、第2始動入賞信号SS2の入力に基づいて乱数ラッチ信号LL2を生成するために用いられる乱数取得用クロックとなればよい。
乱数用クロックRCKの発振周波数と、制御用クロック生成回路111によって生成される制御用クロックCCLKの発振周波数とは、互いに異なる周波数となっており、また、いずれか一方の発振周波数が他方の発振周波数の整数倍になることがない。一例として、制御用クロックCCLKの発振周波数が11.0MHzである一方で、乱数用クロックRCKの発振周波数は9.7MHzであればよい。そのため、乱数更新クロックRGKやラッチ用クロックはいずれも、CPU505に供給される制御用クロックCCLKとは異なる周期で信号状態が変化する発振信号となる。すなわち、クロック用フリップフロップは、乱数用クロック生成回路112によって生成された乱数用クロックRCKに基づき、カウント値を更新するための乱数更新クロックRGKや、複数の乱数取得用クロックとなるラッチ用クロックとして、制御用クロックCCLKや内部システムクロックSCLK(制御用クロックCCLKを2分周したもの)とは異なる周期で信号状態が変化する発振信号を生成する。
乱数生成回路553Aは、例えば16ビットのカウンタなどから構成され、乱数更新クロック選択回路551から出力される乱数更新クロックRGKなどの入力に基づき、数値データを更新可能な所定の範囲において所定の初期値から所定の最終値まで循環的に更新する回路である。例えば乱数生成回路553Aは、所定のクロック端子への入力信号である乱数更新クロックRGKにおける立ち下がりエッジに応答して、「0」から「65535」までの範囲内で設定された初期値から「65535」まで1ずつ加算するように数値データをカウントアップして行く。そして、「65535」までカウントアップした後には、「0」から初期値よりも1小さい最終値となる数値まで1ずつ加算するようにカウントアップすることで、数値データを循環的に更新する。
乱数起動設定回路553Bは、例えば16ビット乱数初期設定第1KRL1のビット番号[3](チャネルch0の場合)におけるビット値が“0”であるか“1”であるかに応じて異なる乱数生成開始条件が成立したときに、16ビット乱数の生成動作を開始させる設定を行う。より具体的には、対応するビット値が“0”である場合には、16ビット乱数における最大値をユーザプログラム(ソフトウェア)で指定したときに、乱数生成回路553Aを起動して16ビット乱数の生成動作を開始させる。一方、対応するビット値が“1”である場合には、遊技制御用マイクロコンピュータ100の動作状態がセキュリティモードからユーザモードに移行したときに、乱数生成回路553Aを起動して16ビット乱数の生成動作を開始させる。
スタート値設定回路553Cは、例えば16ビット乱数初期設定第3KRL3のビット番号[1−0](チャネルch0の場合)におけるビット値に応じて、乱数生成回路553Aにより生成されるカウント値におけるスタート値を設定する。例えば、スタート値設定回路553Cは、対応するビット値が“00”または“01”であればスタート値をデフォルト値である「0000H」に設定し、そのビット値が“00”であればシステムリセットごとにスタート値の変更を行わない一方、そのビット値が“01”であればシステムリセットごとにスタート値の変更を行う。また、対応するビット値が“10”または“11”であればスタート値をIDナンバーに基づく値に設定し、そのビット値が“10”であればシステムリセットごとにスタート値の変更を行わない一方、そのビット値が“11”であればシステムリセットごとにスタート値の変更を行う。
システムリセットごとにスタート値の変更を行う場合には、初期設定時にフリーランカウンタ509Cのカウント値をそのまま用いること、あるいは、そのカウント値を所定の演算関数(例えばハッシュ関数)に代入して得られた値を用いることなどにより、スタート値がランダムに決定されればよい。フリーランカウンタ509Cは、例えば遊技制御用マイクロコンピュータ100のRAM507におけるバックアップ領域といった、主基板11におけるバックアップ箇所と共通のバックアップ電源を用いてバックアップされるものであればよい。あるいは、フリーランカウンタ509Cは、RAM507におけるバックアップ領域などに用いられるバックアップ電源とは別個に設けられた電源によりバックアップされてもよい。こうして、フリーランカウンタ509Cがバックアップ電源によってバックアップされることで、電力供給が停止した場合でも、所定期間はフリーランカウンタ509Cにおけるカウント値が保存されることになる。
フリーランカウンタ509Cがバックアップ電源によってバックアップされるものに限定されず、例えばシステムリセットの発生時にフリーランカウンタ509Cのカウント値を所定の内蔵レジスタ(例えば乱数スタート値用レジスタ)に格納し、この内蔵レジスタがバックアップ電源によってバックアップされるようにしてもよい。そして、初期設定時に乱数スタート値用レジスタの格納値をそのまま用いること、あるいは、その格納値を所定の演算関数に代入して得られた値を用いることなどにより、スタート値がランダムに決定されてもよい。この場合、フリーランカウンタ509Cにおけるカウント値を読み出して乱数スタート値用レジスタに格納するタイミングは、システムリセットの発生時に限定されず、予め定められた任意のタイミングとしてもよい。フリーランカウンタ509Cは、乱数回路509A、509Bに内蔵されて数値データのスタート値をランダムに決定するために用いられる専用のフリーランカウンタであってもよい。すなわち、フリーランカウンタ509Cは、セキュリティ時間を延長する際に延長時間のランダムな決定に用いられるフリーランカウンタとは別個の構成として設けられたものであってもよい。あるいは、フリーランカウンタ509Cとして、遊技制御用マイクロコンピュータ100には内蔵されるが乱数回路509A、509Bの外部に設けられて、セキュリティ時間を延長する際に延長時間のランダムな決定に用いられるフリーランカウンタと共通のものを用いてもよい。この場合には、数値データのスタート値を決定する処理と、セキュリティ時間中の延長時間をランダムに決定する処理とにおいて、例えばカウント値を代入する演算関数を互いに異ならせること、あるいは、一方の決定処理ではカウント値をそのまま用いるのに対して他方の決定処理ではカウント値を所定の演算関数に代入して得られた値を用いることなどにより、スタート値の決定手法と延長時間の決定手法とを異ならせてもよい。
フリーランカウンタ509Cは、例えば8ビットのプログラマブルカウンタを4チャネル(PCC0−PCC3)内蔵してもよい。各プログラマブルカウンタPCC0−PCC3は、内部システムクロックSCLKの信号変化、あるいは、プログラマブルカウンタPCC0−PCC3のいずれかにおけるタイムアウトの発生などに応じて、カウント値が更新されるものであればよい。
フリーランカウンタ509Cは、乱数回路509A、509Bに内蔵されてもよいし、乱数回路509A、509Bには内蔵されないものの遊技制御用マイクロコンピュータ100の内部回路に含まれてもよい。また、フリーランカウンタ509Cは、セキュリティ時間を延長する際の延長時間をシステムリセット毎にランダムに決定するために用いられるフリーランカウンタと、同一のカウンタであってもよいし、別個に設けられたカウンタであってもよい。
乱数列変更回路554Aは、乱数生成回路553Aにより生成された数値データの順列を所定の乱数更新規則に従った順列に変更可能とする回路である。例えば、乱数列変更回路554Aは、乱数生成回路553Aから出力される数値データにおけるビットの入れ替えや転置などのビットスクランブル処理を実行する。また、乱数列変更回路554Aは、例えばビットスクランブル処理に用いるビットスクランブル用キーやビットスクランブルテーブルを変更することなどにより、数値データの順列を変更することができる。
乱数列変更設定回路554Bは、例えば16ビット乱数初期設定第1KRL1のビット番号[1−0](チャネルch0の場合)におけるビット値などに応じて、乱数列変更回路554Bにおける乱数更新規則を変更する設定を行うための回路である。例えば、乱数列変更設定回路554Bは、対応するビット値が“00”であれば乱数更新規則を変更しない設定とする一方、そのビット値が“01”であればソフトウェアでの変更要求に応じて乱数更新規則を変更し、そのビット値が“10”であれば2周目から自動で乱数更新規則を変更する。また、そのビット値が“11”であれば1周目から自動で乱数更新規則を変更する。
乱数列変更回路554Bは、16ビット乱数初期設定第1KRL1などにおいて対応するビット値が“01”でありソフトウェアによる乱数更新規則の変更を行う場合に、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、乱数列変更レジスタRDSC(アドレスFE73H)を用いて、乱数更新規則の変更を制御する。図16(A)は、チャネルch0の16ビット乱数に対応した乱数列変更レジスタRDSCの構成例を示している。図16(B)は、乱数列変更レジスタRDSCに格納される乱数列変更要求データの設定内容を示している。乱数列変更レジスタRDSCのビット番号[0]に格納される乱数列変更要求データRDSC0は、乱数更新規則をソフトウェアにより変更する場合に、乱数列の変更要求の有無を示している。図16(B)に示す例では、ソフトウェアにより乱数列の変更要求がないときに、乱数列変更要求データRDSC0のビット値が“0”となる一方、乱数列の変更要求があったときには、そのビット値が“1”となる。
図17は、乱数更新規則をソフトウェアにより変更する場合の動作例を示している。この場合、乱数生成回路553Aから出力されるカウント値順列RCNが所定の初期値から所定の最終値まで循環的に更新されたときに、乱数列変更要求データRDSC0が“1”であることに応答して、乱数更新規則を変更する。図17に示す動作例では、始めに乱数列変更回路554Aから出力される乱数列RSNが、「0→1→…→65535」となっている。この後、CPU505がROM506に格納されたユーザプログラムを実行することによって、所定のタイミングで乱数列変更レジスタRDSCのビット番号[0]に“1”が書き込まれたものとする。
そして、16ビット乱数初期設定第1KRL1のビット番号[1−0]が“01”であることに対応して、乱数列変更設定回路554Bが乱数列変更要求データRDSC0を読み出し、そのビット値が“1”であることに応答して、乱数更新規則を変更するための設定を行う。このとき、乱数列変更設定回路554Bは、乱数生成回路553Aから出力されたカウント値順列RCNが所定の最終値に達したことに応じて、例えば予め用意された複数種類の乱数更新規則のいずれかを選択することなどにより、乱数更新規則を変更する。図17に示す動作例では、乱数列変更回路554Aが乱数生成回路553Aから出力されたカウント値順列RCNにおける最終値に対応する数値データ「65535」を出力した後、乱数列変更要求データRDSC0に応じて乱数更新規則を変更する。その後、乱数列変更回路554Aは、変更後の乱数更新規則に従った乱数列RSNとして、「65535→65534→…→0」を出力する。乱数列変更レジスタRDSCは、乱数列変更設定回路554Bにより乱数列変更要求データRDSC0が読み出されたときに初期化される。そのため、再び乱数列変更レジスタRDSCのビット番号[0]にビット値“1”が書き込まれるまでは、乱数列変更回路554Aから出力される乱数列RSNが、「65535→65534→…→0」となる。
CPU505がROM506に格納されたユーザプログラムを実行することによって、乱数列変更レジスタRDSCのビット番号[0]に再びビット値“1”が書き込まれると、乱数更新規則が再度変更される。図17に示す動作例では、乱数列変更回路554Aが乱数列RSNにおける最終値に対応する数値データ「0」を出力したときに、乱数列変更要求データRDSC0としてビット値“1”が書き込まれたことに応じて乱数更新規則を変更する。その後、乱数列変更回路554Aは、変更後の乱数更新規則に従った乱数列RSNとして、「0→2→…→65534→1→…→65535」を出力する。
図18は、乱数更新規則を自動で変更する場合の動作例を示している。この場合、乱数生成回路553Aから出力されるカウント値順列RCNが所定の初期値から所定の最終値まで循環的に更新されたことに応じて、乱数列変更設定回路554Bが自動的に乱数更新規則を変更する。図18に示す動作例では、始めに乱数列変更回路554Aから出力される乱数列RSNが、「0→1→…→65535」となっている。
そして、乱数列変更回路554Aから出力された乱数列RSNが所定の最終値に達したときに、乱数列変更設定回路554Bは、予め用意された複数種類の更新規則のうちから予め定められた順序に従って更新規則を選択することにより、更新規則を変更するようにしてもよい。あるいは、乱数列変更設定回路554Bは、複数種類の更新規則のうちから任意の更新規則を選択することにより、更新規則を変更するようにしてもよい。図18に示す動作例では、1回目の乱数更新規則の変更により、乱数列変更回路554Aから出力される乱数列RSNが、「65535→65534→…→0」となる。その後、2回目の乱数更新規則の変更により、乱数列変更回路554Aから出力される乱数列RSNは、「0→2→…→65534→1→…→65535」となる。図18に示す動作例では、3回目の乱数更新規則の変更により、乱数列変更回路554Aから出力される乱数列RSNは、「65534→0→…→32768」となる。4回目の乱数更新規則の変更が行われたときには、乱数列変更回路554Aから出力される乱数列RSNが、「16383→49151→…→49150」となる。5回目の乱数更新規則の変更が行われたときには、乱数列変更回路554Aから出力される乱数列RSNが、「4→3→…→465531」となる。
このように、乱数列変更回路554Aは、乱数生成回路553Aから出力されたカウント値順列RCNを、乱数列変更設定回路554Bの設定により予め定められた乱数更新規則に基づいて変更することで、数値データを所定手順により更新した乱数列RSNを出力することができる。
最大値比較回路555は、予めユーザ設定された乱数の最大値と、乱数列変更回路554Aから出力される乱数列RSNを比較し、最大値より大きい出力値があった場合に、乱数生成回路553Aに対しリセットとリスタートを指示する。最大値比較回路555は、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、乱数最大値設定レジスタRMX(アドレスFE67−FE72H)を用いて、乱数最大値を設定する。図19(A)および(B)は、乱数最大値設定レジスタRMXのうち、チャネルch0の16ビット乱数に対応した乱数最大値設定レジスタRL0MXの構成例を示している。CPU505は、例えばユーザプログラムによって予め指定された乱数の最大値を示す乱数最大値設定データを、乱数最大値設定レジスタRL0MXなどに書き込む。乱数最大値設定レジスタRL0MXに乱数最大値設定データが書き込まれたときには、チャネルch0の16ビット乱数について最大値が設定される。16ビット乱数の最大値は、例えば「256」〜「65535」の範囲で任意の値を設定できればよい。例えば16ビット乱数初期設定第1KRL1のビット番号[3](チャネルch0の場合)におけるビット値が“0”である場合には、16ビット乱数について最大値の設定が可能になり、その最大値を設定することで、16ビット乱数の生成動作をユーザプログラム(ソフトウェア)で開始させることができる。
ハードラッチセレクタ558Aは、乱数ラッチ信号LL1として出力する信号を、PIP510の入力ポートPI0〜入力ポートPI5における入力信号のうちから選択する。ハードラッチセレクタ558Aは、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、ハードラッチ選択レジスタRLS(アドレスFE5B−FE61H)に含まれるハードラッチ選択レジスタRL0LS0を用いて、乱数ラッチ信号LL1として出力する信号を選択する。ハードラッチセレクタ558Bは、乱数ラッチ信号LL2として出力する信号を、PIP510の入力ポートPI0〜入力ポートPI5における入力信号のうちから選択する。ハードラッチセレクタ558Bは、ハードラッチ選択レジスタRLSに含まれるハードラッチ選択レジスタRL0LS1を用いて、乱数ラッチ信号LL2として出力する信号を選択する。図20(A)は、ハードラッチ選択レジスタRL0LS0やハードラッチ選択レジスタRL0LS1として用いられるハードラッチ選択レジスタRL0LSの構成例を示している。図20(B)は、ハードラッチ選択レジスタRL0LSに格納されるハードラッチ選択データの各ビットにおける設定内容の一例を示している。
ハードラッチ選択レジスタRL0LSのビット番号[3]に格納されるハードラッチ選択データRL03LSは、ハードウェアによる乱数値の取込条件を示している。図20(B)に示す例では、ハードラッチ選択データRL03LSのビット値が“0”である場合に、対応するハードラッチ乱数値レジスタ(例えばハードラッチ乱数値レジスタ559A、559Bのいずれか)の格納値を読み出すことにより、次の値をラッチ可能に設定する。一方、ラッチ選択データRL03LSのビット値が“1”である場合には、対応するハードラッチ乱数値レジスタの格納値を読み出さなくても、次の値をラッチ可能に設定する。
ハードラッチ選択レジスタRL0LSのビット番号[2−0]に格納されるハードラッチ選択データRL02LS〜RL00LSは、対応する乱数ラッチ信号(例えば乱数ラッチ信号LL1、LL2のいずれか)として出力する信号の外部端子入力を選択するための設定データである。図20(B)に示す例では、ラッチ選択データRL02LS〜RL00LSの値に応じて、入力ポートPI0〜入力ポートPI5のいずれかにおける入力を、外部端子入力として選択することができる。
この実施の形態では、入力ポートPI0に第1始動口スイッチ22Aからの第1始動入賞信号SS1が入力される。ハードラッチセレクタ558Aは、ハードラッチ選択レジスタRL0LS0の格納値に基づいて、入力ポートPI0に入力された第1始動入賞信号SS1を選択し、乱数ラッチ信号LL1として出力する。なお、乱数ラッチ信号LL1は、第1のラッチ用クロックと同期して出力されるようにしてもよい。また、この実施の形態では、入力ポートPI1に第2始動口スイッチ22Bからの第2始動入賞信号SS2が入力される。ハードラッチセレクタ558Bは、ハードラッチ選択レジスタRL0LS1の格納値に基づいて、入力ポートPI1に入力された第2始動入賞信号SS2を選択し、乱数ラッチ信号LL2として出力する。なお、乱数ラッチ信号LL2は、第2のラッチ用クロックと同期して出力されるようにしてもよい。
第1始動入賞信号SS1や第2始動入賞信号SS2は、第1始動口スイッチ22Aや第2始動口スイッチ22Bから直接伝送されるものに限定されない。一例として、第1始動口スイッチ22Aからの出力信号や第2始動口スイッチ22Bからの出力信号がオン状態となっている時間を計測し、計測した時間が所定の時間(例えば3ミリ秒)になったときに、第1始動入賞信号SS1や第2始動入賞信号SS2を出力するタイマ回路を設けてもよい。
ハードラッチ乱数値レジスタ559A、559Bはそれぞれ、最大値比較回路555から出力された乱数列RSNにおける数値データを乱数値として格納するレジスタである。ハードラッチ乱数値レジスタ559A、559Bはいずれも16ビット(2バイト)のレジスタであり、例えばチャネルch0に対応してそれぞれ16ビットの乱数値を格納することができる。
ハードラッチ乱数値レジスタ559Aは、ハードラッチセレクタ558Aから供給される乱数ラッチ信号LL1がオン状態となったことに応答して、最大値比較回路555から出力された乱数列RSNにおける数値データを乱数値として取り込んで格納する。ハードラッチ乱数値レジスタ559Aは、CPU505から供給されるレジスタリード信号がオン状態となったときに、読出可能(イネーブル)状態となり、格納されている数値データを内部バス等に出力してもよい。これに対して、レジスタリード信号がオフ状態であるときには、常に同じ値(例えば「65535H」など)を出力して、読出不能(ディセーブル)状態としてもよい。また、ハードラッチ乱数値レジスタ559Aは、乱数ラッチ信号LL1がオン状態である場合に、レジスタリード信号を受信不可能な状態となるようにしてもよい。さらに、ハードラッチ乱数値レジスタ559Aは、乱数ラッチ信号LL1がオン状態となるより前にレジスタリード信号がオン状態となっている場合に、乱数ラッチ信号LL1を受信不可能な状態となるようにしてもよい。
ハードラッチ乱数値レジスタ559Bは、ハードラッチセレクタ558Bから供給される乱数ラッチ信号LL2がオン状態となったことに応答して、最大値比較回路555から出力された乱数列RSNにおける数値データを乱数値として取り込んで格納する。ハードラッチ乱数値レジスタ559Bは、CPU505から供給されるレジスタリード信号がオン状態となったときに、読出可能(イネーブル)状態となり、格納されている数値データを内部バス等に出力してもよい。これに対して、レジスタリード信号がオフ状態であるときには、常に同じ値(例えば「65535H」など)を出力して、読出不能(ディセーブル)状態としてもよい。また、ハードラッチ乱数値レジスタ559Bは、乱数ラッチ信号LL2がオン状態である場合に、レジスタリード信号を受信不可能な状態となるようにしてもよい。さらに、ハードラッチ乱数値レジスタ559Bは、乱数ラッチ信号LL2がオン状態となるより前にレジスタリード信号がオン状態となっている場合に、乱数ラッチ信号LL2を受信不可能な状態となるようにしてもよい。
ハードラッチ乱数値レジスタ559Aとハードラッチ乱数値レジスタ559Bは、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、乱数ハードラッチフラグレジスタRHF(アドレスFE82−FE84H)と、乱数割込み制御レジスタRIC(アドレスFE64−FE66H)とを用いて、乱数ラッチ時の動作管理や割込み制御を可能にする。乱数ハードラッチフラグレジスタRHFは、ハードラッチ乱数値レジスタ559Aとハードラッチ乱数値レジスタ559Bのそれぞれに対応して、乱数値となる数値データがラッチされたか否かを示す乱数ラッチフラグを格納するレジスタである。例えば、乱数ハードラッチフラグレジスタRHFでは、ハードラッチ乱数値レジスタ559Aとハードラッチ乱数値レジスタ559Bのそれぞれに対応した乱数ラッチフラグの状態(オンまたはオフ)を示すデータが格納される。ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに数値データが取り込まれて格納されたときには、対応する乱数ラッチフラグがオン状態となることで、新たな数値データの格納が制限されてもよい。この場合、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに格納された数値データが読み出されたときに、対応する乱数ラッチフラグがオフ状態となることで、新たな数値データの格納が許可されればよい。乱数割込み制御レジスタRICは、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに乱数値となる数値データがラッチされたときに発生する割込みの許可/禁止を設定するレジスタである。
図21(A)は、乱数ハードラッチフラグレジスタRHFの構成例を示している。図21(B)は、乱数ハードラッチフラグレジスタRHFに格納されるハードラッチフラグRLHF0となる各ビットにおける設定内容の一例を示している。乱数ハードラッチフラグレジスタRHFのビット番号[3−2]に格納されるハードラッチフラグデータRL03HF、RL02HFは、ハードラッチ乱数値レジスタRL0HV1となるハードラッチ乱数値レジスタ559Bに数値データが取り込まれたか否かを示す乱数ラッチフラグとなる。図21(B)に示す例では、ハードラッチ乱数値レジスタRL0HV1(559B)に数値データが取り込まれていないときに(乱数値取込なし)、ハードラッチフラグデータRL03HF、RL02HFのビット値がいずれも“0”となって乱数ラッチフラグがオフ状態にクリアされる一方、数値データが取り込まれたときには(乱数値取込あり)、それらのビット値が“1”となって乱数ラッチフラグがオン状態にセットされる。乱数ハードラッチフラグレジスタRHFのビット番号[1−0]に格納されるハードラッチフラグデータRL01HF、RL00HFは、ハードラッチ乱数値レジスタRL0HV0となるハードラッチ乱数値レジスタ559Aに数値データが取り込まれたか否かを示す乱数ラッチフラグとなる。図21(B)に示す例では、ハードラッチ乱数値レジスタRL0HV0(559A)に数値データが取り込まれていないときに(乱数値取込なし)、ハードラッチフラグデータRL01HF、RL00HFのビット値がいずれも“0”となって乱数ラッチフラグがオフ状態にクリアされる一方、数値データが取り込まれたときには(乱数値取込あり)、それらのビット値が“1”となって乱数ラッチフラグがオン状態にセットされる。
図20(A)および(B)に示すハードラッチ選択レジスタRL0LSのビット番号[3]におけるビット値が“0”である場合には、各乱数ラッチフラグがオンであるときに、それらの乱数ラッチフラグと対応付けられたハードラッチ乱数値レジスタRL0HV0(559A)あるいはハードラッチ乱数値レジスタRL0HV1(559B)における新たな数値データの格納が制限(禁止)される。すなわち、ハードラッチ乱数値レジスタRL0HV0(559A)に数値データが取り込まれたか否かを示すハードラッチフラグデータRL01HF、RL00HFのビット値がいずれも“1”となって乱数ラッチフラグがオン状態であるときには、ハードラッチ乱数値レジスタRL0HV0(559A)に格納された数値データを変更することができず、新たな数値データの格納(取り込み)が制限(禁止)される。また、ハードラッチ乱数値レジスタRL0HV1(559B)に数値データが取り込まれたか否かを示すハードラッチフラグデータRL03HF、RL02HFのビット値がいずれも“1”となって乱数ラッチフラグがオン状態であるときには、ハードラッチ乱数値レジスタRL0HV1(559B)に格納された数値データを変更することができず、新たな数値データの格納(取り込み)が制限(禁止)される。これに対して、各乱数ラッチフラグがオフであるときには、それらの乱数ラッチフラグと対応付けられたハードラッチ乱数値レジスタRL0HV0(559A)あるいはハードラッチ乱数値レジスタRL0HV1(559B)における新たな数値データの格納が許可される。すなわち、ハードラッチフラグデータRL01HF、RL00HFのビット値がいずれも“0”となって乱数ラッチフラグがオフ状態であるときには、ハードラッチ乱数値レジスタRL0HV0(559A)に格納された数値データを変更することができ、新たな数値データの格納(取り込み)が許可される。また、ハードラッチフラグデータRL03HF、RL02HFのビット値がいずれも“0”となって乱数ラッチフラグがオフ状態であるときには、ハードラッチ乱数値レジスタRL0HV1(559B)に格納された数値データを変更することができ、新たな数値データの格納(取り込み)が許可される。
なお、ハードラッチフラグデータRL03HF〜RL00HFのビット値は、“0”となることで対応する乱数ラッチフラグがオフ状態にクリアされる一方で“1”となることでオン状態にセットされる正論理のものに限定されず、“1”となることで対応する乱数ラッチフラグがオフ状態となる一方で“0”となることでオン状態となる負論理のものであってもよい。すなわち、各乱数ラッチフラグは、対応するハードラッチ乱数値レジスタRL0HV0(559A)またはハードラッチ乱数値レジスタRL0HV1(559B)に数値データが格納されたときにオン状態となり新たな数値データの格納が制限(禁止)される一方で、対応するハードラッチ乱数値レジスタRL0HV0(559A)またはハードラッチ乱数値レジスタRL0HV1(559B)の読み出しが行われたときにオフ状態となり新たな数値データの格納が許可されるものであればよい。
図22(A)は、乱数割込み制御レジスタRICに含まれるチャネルch0の16ビット乱数に対応したハードラッチ割込み制御レジスタRLIC0の構成例を示している。図22(B)は、ハードラッチ割込み制御レジスタRLIC0に格納されるハードラッチ割込み制御データの各ビットにおける設定内容の一例を示している。ハードラッチ割込み制御レジスタRLIC0のビット番号[3−2]に格納されるハードラッチ割込み制御データRL03IE、RL02IEは、ハードラッチ乱数値レジスタRL0HV1となるハードラッチ乱数値レジスタ559Bに数値データが取り込まれたときに発生する割込みを、許可するか禁止するかの割込み制御設定を示している。図22(B)に示す例では、ハードラッチ乱数値レジスタRL0HV1(559B)への取込時における割込みを禁止する場合に(割込み禁止)、ハードラッチ割込み制御データRL03IE、RL02IEのビット値をいずれも“0”とする一方、この割込みを許可する場合には(割込み許可)、それらのビット値を“1”とする。ハードラッチ割込み制御レジスタRLIC0のビット番号[1−0]に格納されるハードラッチ割込み制御データRL01IE、RL00IEは、ハードラッチ乱数値レジスタRL0HV0となるハードラッチ乱数値レジスタ559Aに数値データが取り込まれたときに発生する割込みを、許可するか禁止するかの割込み制御設定を示している。図22(B)に示す例では、ハードラッチ乱数値レジスタRL0HV0(559A)への取込時における割込みを禁止する場合に(割込み禁止)、ハードラッチ割込み制御データRL01IE、RL00IEのビット値をいずれも“0”とする一方、この割込みを許可する場合には(割込み許可)、それらのビット値を“1”とする。
ソフトラッチ乱数値レジスタ559Sは、最大値比較回路555から出力された乱数列RSNにおける数値データを、ユーザプログラム(ソフトウェア)により乱数値として格納するレジスタである。ソフトラッチ乱数値レジスタ559Sは、16ビット(2バイト)のレジスタであり、例えばチャネルch0に対応して16ビットの乱数値を格納することができればよい。
ソフトラッチ乱数値レジスタ559Sには、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、乱数ソフトラッチレジスタRDSL(アドレスFE74H)を用いて、乱数ソフトラッチ信号が入力される。図23(A)は、チャネルch0に対応した乱数ソフトラッチレジスタRDSLの構成例を示している。図23(B)は、乱数ソフトラッチレジスタRDSLに格納される乱数ソフトラッチデータの設定内容を示している。乱数ソフトラッチレジスタRDSLのビット番号[0]に格納される乱数ソフトラッチデータRDSL0は、チャネルch0の16ビット乱数をソフトウェアによりラッチする場合に、乱数値のラッチ要求の有無を示している。図23(B)に示す例では、ソフトウェアにより乱数値のラッチ要求がないときに、乱数ソフトラッチデータRDSL0のビット値が“0”となる一方、ソフトウェアにより乱数値のラッチ要求があったときには、そのビット値が“1”となる。
ソフトラッチ乱数値レジスタ559Sは、乱数ソフトラッチレジスタRDSLに格納される乱数ソフトラッチデータRDSL0のビット値が“1”となったことに応答して、最大値比較回路555から出力された乱数列RSNにおける数値データを乱数値として取り込んで格納する。ソフトラッチ乱数値レジスタ559Sは、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、乱数ソフトラッチフラグレジスタRDSF(アドレスFE75H)を用いて、乱数ラッチ時の動作管理を可能にする。乱数ソフトラッチフラグレジスタRDSFは、ソフトラッチ乱数値レジスタ559Sに乱数値となる数値データがラッチされたか否かを示す乱数ソフトラッチフラグを格納するレジスタである。図24(A)は、乱数ソフトラッチフラグレジスタRDSFの構成例を示している。図24(B)は、乱数ソフトラッチフラグレジスタRDSFに格納されるソフトラッチフラグデータの設定内容を示している。乱数ソフトラッチフラグレジスタRDSFのビット番号[0]に格納されるソフトラッチフラグデータRDSF0は、チャネルch0の16ビット乱数がソフトラッチ乱数値レジスタRL0SVとなるソフトラッチ乱数値レジスタ559Sに取り込まれたか否かを示す乱数ソフトラッチフラグとなる。
図24(B)に示す例では、ソフトラッチ乱数値レジスタRL0SVに数値データが取り込まれていないときに(乱数値取込なし)、ソフトラッチフラグデータRDSF0のビット値が“0”となって乱数ソフトラッチフラグがオフ状態にクリアされる一方、数値データが取り込まれたときには(乱数値取込あり)、そのビット値が“1”となって乱数ソフトラッチフラグがオン状態にセットされる。乱数ソフトラッチフラグがオンであるときには、ソフトラッチ乱数値レジスタRL0SVにおける新たな数値データの格納が制限(禁止)される。すなわち、ソフトラッチ乱数値レジスタRL0SVに数値データが取り込まれたか否かを示すソフトラッチフラグデータRDSF0のビット値が“1”となって乱数ソフトラッチフラグがオン状態であるときには、ソフトラッチ乱数値レジスタRL0SVに格納された数値データを変更することができず、新たな数値データの格納(取り込み)が制限(禁止)される。これに対して、乱数ソフトラッチフラグがオフであるときには、ソフトラッチ乱数値レジスタRL0SVにおける新たな数値データの格納が許可される。すなわち、ソフトラッチフラグデータRDSF0のビット値が“0”となって乱数ソフトラッチフラグがオフ状態であるときには、ソフトラッチ乱数値レジスタRL0SVに格納された数値データを変更することができ、新たな数値データの格納(取り込み)が許可される。
16ビットの乱数回路509Aでは、チャネルch1〜ch3についてもチャネルch0と同様に、独立して16ビット乱数を発生させるための回路が設けられていればよい。なお、チャネルch0に対応して16ビット(2バイト)のハードラッチ乱数値レジスタ559A、559Bが2つ設けられる一方、チャネルch1〜ch3のそれぞれに対応して16ビット(2バイト)のハードラッチ乱数値レジスタが1つだけ設けられてもよい。
8ビットの乱数回路509Bには、チャネルch0〜ch3のそれぞれに対応して、8ビット乱数を独立して発生させるための回路が設けられていればよい。例えば、チャネルch0に対応して8ビット乱数を生成するための回路は、図15に示した回路を、8ビット乱数の生成に適合するように構成したものであればよく、乱数更新クロック選択回路、乱数生成回路、乱数起動設定回路、乱数列変更回路、乱数列変更設定回路、最大値比較回路、ハードラッチセレクタ、ハードラッチ乱数値レジスタ、ソフトラッチ乱数値レジスタを備えて構成されればよい。
図5に示す構成例では、乱数回路509A、509Bが遊技制御用マイクロコンピュータ100に内蔵されている。これに対して、乱数回路509A、509Bは、遊技制御用マイクロコンピュータ100とは異なる乱数回路チップとして、遊技制御用マイクロコンピュータ100に外付けされるものであってもよい。この場合、第1始動口スイッチ22Aからの第1始動入賞信号SS1をスイッチ回路114の内部にて分岐し、一方を遊技制御用マイクロコンピュータ100が備えるPIP510の入力ポートPI0へと入力させて、他方を乱数回路509Aが備えるハードラッチセレクタ558Aの入力端子へと入力させればよい。また、第2始動口スイッチ22Bからの第2始動入賞信号SS2をスイッチ回路114の内部にて分岐し、一方を遊技制御用マイクロコンピュータ100が備えるPIP510の入力ポートPI1へと入力させて、他方を乱数回路509Aが備えるハードラッチセレクタ558Bの入力端子へと入力させればよい。遊技制御用マイクロコンピュータ100との間では、例えば遊技制御用マイクロコンピュータ100が備えるクロック回路502からシステムクロック出力端子CLKOを介して出力された内部システムクロックSCLKを乱数回路509Aが備える乱数更新クロック選択回路551やクロック用フリップフロップへと入力させたり、遊技制御用マイクロコンピュータ100が備える外部バスインタフェース501に接続されたアドレスバスやデータバス、制御信号線などを介して、ハードラッチ乱数値レジスタRL0HV0やハードラッチ乱数値レジスタRL0HV1に格納された数値データの読み出しなどが行われたりすればよい。
また、乱数回路509A、509Bが遊技制御用マイクロコンピュータ100に外付けされる場合にも、各乱数ラッチフラグの状態(オン/オフ)に応じて、ハードラッチ乱数値レジスタRL0HV0やハードラッチ乱数値レジスタRL0HV1への新たな数値データの格納が制限(禁止)あるいは許可されるようにすればよい。図7(B)に示す内蔵レジスタのうち、例えばハードラッチ選択レジスタRLSや乱数割込み制御レジスタRIC、乱数最大値設定レジスタRMX、乱数列変更レジスタRDSC、乱数ソフトラッチレジスタRDSL、乱数ソフトラッチフラグレジスタRDSF、ソフトラッチ乱数値レジスタRSV、乱数ハードラッチフラグレジスタRHF、ハードラッチ乱数値レジスタRHVといった、乱数回路509A、509Bが使用する各種レジスタは、遊技制御用マイクロコンピュータ100には内蔵されず、遊技制御用マイクロコンピュータ100に外付けされた乱数回路509A、509Bに内蔵されるようにしてもよい。この場合、遊技制御用マイクロコンピュータ100のCPU505は、例えば外部バスインタフェース501などを介して、乱数回路509A、509Bに内蔵された各種レジスタの書き込みや読み出しを行うようにすればよい。
図5に示す遊技制御用マイクロコンピュータ100が備えるPIP510は、例えば8ビット幅の入力専用ポートであり、専用端子となる入力ポートPI0〜入力ポートPI4と、機能兼用端子となる入力ポートPI5〜入力ポートPI7とを含んでいる。入力ポートPI5は、割り込みコントローラ504Bに接続される外部マスカブル割込み端子XINTと兼用される。入力ポートPI6は、割り込みコントローラ504Bに接続される外部ノンマスカブル割込み端子XNMIと兼用される。入力ポートPI7は、シリアル通信回路511が使用する受信端子RX0と兼用される。入力ポートPI5〜入力ポートPI7の使用設定は、プログラム管理エリアに記憶される機能設定により指示される。
PIP510は、遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうちの入力ポートレジスタなどを用いて、入力ポートPI0〜入力ポートPI7の状態管理等を行う。入力ポートレジスタは、入力ポートPI0〜入力ポートPI7のそれぞれに対応して、外部信号の入力状態を示すビット値が格納されるレジスタである。
遊技制御用マイクロコンピュータ100が備えるシリアル通信回路511は、例えば全二重、非同期、標準NRZ(Non Return to Zero)フォーマットで通信データを取扱う回路である。一例として、シリアル通信回路511は、外部回路との間にて双方向でシリアルデータを送受信可能な第1チャネル送受信回路と、外部回路との間にて単一方向でシリアルデータを送信のみが可能な第2チャネル送信回路とを含んでいればよい。シリアル通信回路511が備える第1チャネル送受信回路は、払出制御基板15に搭載された払出制御用マイクロコンピュータ150との間における双方向のシリアル通信に使用されてもよい。シリアル通信回路511が備える第2チャネル送信回路は、演出制御基板12に搭載された演出制御用マイクロコンピュータ120との間における単一方向(送信のみ)のシリアル通信に使用されてもよい。これにより、演出制御基板12の側から主基板11に対する信号入力を禁止して、不正行為を防止することができる。
シリアル通信回路511では、例えばオーバーランエラー、ブレークコードエラー、フレーミングエラー、パリティエラーといった、4種類のエラーが通信データの受信時に発生することがあり、いずれかのエラーが発生したときに、受信割込みを発生させることができればよい。オーバーランエラーは、受信済みの通信データがユーザプログラムによってリードされるより前に、次の通信データを受信してしまった場合に発生するエラーである。ブレークコードエラーは、通信データの受信中に所定のブレークコードが検出されたとき発生するエラーである。フレーミングエラーは、受信した通信データにおけるストップビットが“0”である場合に発生するエラーである。パリティエラーは、パリティ機能を使用する設定とした場合、受信した通信データのパリティが、予め指定したパリティと一致しない場合に発生するエラーである。
シリアル通信回路511は、第1割込み制御回路と、第2割込み制御回路とを含んでいてもよい。第1割込み制御回路は、シリアル通信回路511に含まれる第1チャネル送受信回路における割込み発生因子を管理して、通信割込み要求を制御するための回路である。第1割込み制御回路が制御する割込みには、第1チャネル送信割込みと、第1チャネル受信割込みとがある。第1チャネル送信割込みには、送信完了による割込みや、送信データエンプティによる割込みが含まれている。第1チャネル受信割込みには、受信データフルによる割込みや、ブレークコードエラー、オーバーランエラー、フレーミングエラー、パリティエラーといった受信時エラーの発生による割込みが含まれている。第2割込み制御回路は、シリアル通信回路511に含まれる第2チャネル受信回路における割込み発生因子を管理して、通信割込み要求を制御するための回路である。第2割込み制御回路が制御する割込みは、第2チャネル送信割込みである。第2チャネル送信割込みには、送信完了による割込みや、送信データエンプティによる割込みが含まれている。
遊技制御用マイクロコンピュータ100が備えるアドレスデコード回路512は、遊技制御用マイクロコンピュータ100の内部における各機能ブロックのデコードや、外部装置用のデコード信号であるチップセレクト信号のデコードを行うための回路である。チップセレクト信号により、遊技制御用マイクロコンピュータ100の内部回路、あるいは、周辺デバイスとなる外部装置を、選択的に有効動作させて、CPU505からのアクセスが可能となる。
遊技制御用マイクロコンピュータ100が備えるROM506には、ゲーム制御用のユーザプログラムやセキュリティチェックプログラム506Aとなる制御コードの他に、遊技の進行を制御するために用いられる各種の選択用データ、テーブルデータなどが格納される。例えば、ROM506には、CPU505が各種の判定や決定、設定を行うために用意された複数の判定テーブルや決定テーブル、設定テーブルなどを構成するデータが記憶されている。また、ROM506には、CPU505が主基板11から各種の制御コマンドとなる制御信号を送信するために用いられる複数のコマンドテーブルを構成するテーブルデータや、飾り図柄の変動パターンを複数種類格納する変動パターンテーブルを構成するテーブルデータなどが記憶されている。
遊技制御用マイクロコンピュータ100が備えるRAM507には、パチンコ遊技機1における遊技の進行などを制御するために用いられる各種のデータを保持する領域として、例えば遊技制御用データ保持エリアが設けられている。遊技制御用データ保持エリアは、第1特図保留記憶部と、第2特図保留記憶部と、始動データ記憶部と、遊技制御フラグ設定部と、遊技制御タイマ設定部と、遊技制御カウンタ設定部と、遊技制御バッファ設定部とを備えている。
第1特図保留記憶部は、普通入賞球装置6Aが形成する第1始動入賞口を遊技球が通過(進入)したことによる始動入賞の発生に対応して第1始動条件は成立したが第1開始条件は成立していない特図ゲーム(第1特別図柄表示装置4Aによる第1特図を用いた特図ゲーム)の保留データを記憶する。一例として、第1特図保留記憶部は、第1始動入賞口への入賞順に保留番号と関連付けて、その入賞による第1始動条件の成立に基づいてCPU505により取得された特図表示結果決定用の乱数値MR1を示す数値データや大当り種別決定用の乱数値MR2を示す数値データを保留データとし、その数が所定の上限値(例えば「4」)に達するまで記憶する。
第2特図保留記憶部は、普通可変入賞球装置6Bが形成する第2始動入賞口を遊技球が通過(進入)したことによる始動入賞の発生に対応して第2始動条件は成立したが第2開始条件は成立していない特図ゲーム(第2特別図柄表示装置4Bによる第2特図を用いた特図ゲーム)の保留データを記憶する。一例として、第2特図保留記憶部は、第2始動入賞口への入賞順に保留番号と関連付けて、その入賞による第2始動条件の成立に基づいてCPU505により取得された特図表示結果決定用の乱数値MR1を示す数値データや大当り種別決定用の乱数値MR2を示す数値データを保留データとし、その数が所定の上限値(例えば「4」)に達するまで記憶する。
始動データ記憶部は、第1始動入賞口と第2始動入賞口のいずれに遊技球が入賞したかを示す始動データを、各遊技球の入賞順を特定可能として記憶する。一例として、始動データ記憶部には、合計保留記憶数の上限値(例えば「8」)に対応した領域が確保され、第1始動入賞口への入賞に対応した「第1」の始動データ、あるいは、第2始動入賞口への入賞に対応した「第2」の始動データを、各遊技球の入賞順に従った保留番号と関連付けて記憶する。
なお、第1特図保留記憶部と第2特図保留記憶部、始動データ記憶部は、別々に設けるようにしてもよいし、これらを組み合わせた記憶領域を設けるようにしてもよい。一例として、始動データ記憶領域と乱数値記憶領域とを組み合わせた領域を8つ含む記憶領域を設けるようにしてもよい。このような構成において、始動データ記憶領域と乱数値記憶領域の各領域には、RAM507における連続したアドレスが割り当てられればよい。この場合、例えば合計保留記憶数に基づいてデータ格納先のアドレスを指定するポインタの値を更新することによって、空き領域の先頭となる始動データ記憶領域に、始動データをセットする。このとき、空き領域の先頭を特定するには、例えば1つの保留データ(始動データと乱数値を示す数値データ)におけるデータ数を合計保留記憶数に乗算した値に1加算した値(始動データ記憶領域1つ分を加算した値)を、アドレスのオフセット値として特定する。こうして特定したオフセット値に従ってポインタの値を更新すればよい。この構成では、1つの保留データに対応して始動データ記憶領域と乱数値記憶領域が1つずつの合計2つのデータ格納領域が設けられている。そこで、合計保留記憶数を2倍した値に1加算した値がアドレスのオフセット値として特定される。一例として、合計保留記憶数が「3」である場合には、オフセット値として「+7」(合計保留記憶数「3」を2倍した後に1加算した値)が特定され、このオフセット値に対応した始動データ記憶領域に始動データをセットすることになる。また、1つの保留データに対応して1つの始動データ記憶領域と2つの乱数値記憶領域との合計3つのデータ格納領域が設けられている場合には、合計保留記憶数を3倍した値に1加算した値(始動データ記憶領域1つ分を加算した値)が、アドレスのオフセット値として特定されればよい。
また、データ格納先のアドレスを指定するポインタの初期位置を保留番号「1」に対応した始動データ記憶領域とする場合には、1つの保留データにおけるデータ数を合計保留記憶数に乗算した値が、アドレスのオフセット値として特定されればよい。例えば、1つの保留データに対応して1つの始動データ記憶領域と1つの乱数値記憶領域との合計2つのデータ格納領域が設けられている場合には、合計保留記憶数を2倍した値が、アドレスのオフセット値として特定されればよい。また、1つの保留データに対応して1つの始動データ記憶領域と2つの乱数値記憶領域との合計3つのデータ格納領域が設けられている場合には、合計保留記憶数を3倍した値が、アドレスのオフセット値として特定されればよい。こうして始動データ記憶領域に始動データをセットした後には、アドレスを指定するポインタの値を1加算して、加算後のポインタが指すアドレスの乱数値記憶領域に、乱数値を示す数値データを格納すればよい。
遊技制御フラグ設定部には、パチンコ遊技機1における遊技の進行状況などに応じて状態を更新可能な複数種類のフラグが設けられている。例えば、遊技制御フラグ設定部には、複数種類のフラグそれぞれについて、フラグの値を示すデータや、オン状態あるいはオフ状態を示すデータが記憶される。一例として、遊技制御フラグ設定部には、特図プロセスフラグ、普図プロセスフラグ、大当りフラグ、小当りフラグ、確変フラグ、時短フラグなどが設けられていればよい。
特図プロセスフラグは、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームの進行や、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームの進行などを制御するために実行される図30のステップS95や図31に示す特別図柄プロセス処理において、どの処理を選択・実行すべきかを指示する。普図プロセスフラグは、普通図柄表示器20による普通図柄を用いた普図ゲームの進行などを制御するために実行される図30のステップS96に示す普通図柄プロセス処理において、どの処理を選択・実行すべきかを指示する。
大当りフラグは、特図ゲームが開始されるときに特図表示結果を「大当り」とする旨の決定結果に対応して、オン状態にセットされる。その一方で、特図ゲームにおける確定特別図柄として大当り図柄が停止表示されたことなどに対応して、クリアされてオフ状態となる。小当りフラグは、特図ゲームが開始されるときに特図表示結果を「小当り」とする旨の決定結果に対応して、オン状態にセットされる。その一方で、特図ゲームにおける確定特別図柄として小当り図柄が停止表示されたことなどに対応して、クリアされてオフ状態となる。確変フラグは、パチンコ遊技機1における遊技状態が確変状態に制御されることに対応してオン状態にセットされる一方で、確変状態が終了することなどに対応してクリアされてオフ状態となる。時短フラグは、パチンコ遊技機1における遊技状態が時短状態に制御されることに対応してオン状態にセットされる一方で、時短状態が終了することなどに対応してクリアされてオフ状態となる。
遊技制御タイマ設定部には、パチンコ遊技機1における遊技の進行を制御するために用いられる各種のタイマが設けられている。例えば、遊技制御タイマ設定部には、複数種類のタイマそれぞれにおけるタイマ値を示すデータが記憶される。一例として、遊技制御タイマ設定部には、遊技制御プロセスタイマ、特図変動タイマ、普図変動タイマ、バックアップ監視タイマなどが設けられていればよい。
遊技制御プロセスタイマは、例えば大当り遊技状態あるいは小当り遊技状態の進行を制御するための時間などを、主基板11の側にて計測するためのものである。具体的な一例として、遊技制御プロセスタイマは、大当り遊技状態あるいは小当り遊技状態の進行を制御するために計測する時間に対応したタイマ値を示すデータを、遊技制御プロセスタイマ値として記憶し、定期的にカウントダウンするダウンカウンタとして用いられる。あるいは、遊技制御プロセスタイマは、大当り遊技状態もしくは小当り遊技状態の開始時点といった、所定時点からの経過時間に対応したタイマ値を示すデータを記憶し、定期的にカウントアップするアップカウンタとして用いられてもよい。
特図変動タイマは、特図ゲームの実行時間である特図変動時間といった特図ゲームの進行を制御するための時間を、主基板11の側にて計測するためのものである。具体的な一例として、特図変動タイマは、特図ゲームの進行を制御するために計測する時間に対応したタイマ値を示すデータを、特図変動タイマ値として記憶し、定期的にカウントダウンするダウンカウンタとして用いられる。あるいは、特図変動タイマは、特図ゲームの開始時点からの経過時間に対応したタイマ値を示すデータを記憶し、定期的にカウントアップするアップカウンタとして用いられてもよい。
普図変動タイマは、普図ゲームの実行時間である普図変動時間といった普図ゲームの進行を制御するための時間を、主基板11の側にて計測するためのものである。具体的な一例として、普図変動タイマは、普図ゲームの進行を制御するために計測する時間に対応したタイマ値を示すデータを、普図変動タイマ値として記憶し、定期的にカウントダウンするダウンカウンタとして用いられる。あるいは、普図変動タイマは、普図ゲームの開始時点からの経過時間に対応したタイマ値を示すデータを記憶し、定期的にカウントアップするアップカウンタとして用いられてもよい。
バックアップ監視タイマは、電源基板10に搭載された電源監視回路303から伝送される電源断信号がオン状態となってからの経過時間を計測するためのものである。一例として、電源監視回路303から供給される電源電圧VSLが低下したことに基づいて出力される電源断信号を主基板11にて検知したときに、バックアップ監視タイマによる経過時間の計測が開始される。そして、電源断信号の出力が停止されるまでは、バックアップ監視タイマによる計測を継続させる。バックアップ監視タイマによって計測された経過時間が所定時間に達すると、例えばRAM507におけるバックアップ領域のデータを保護する処理といった、電力の供給停止に対応した所定の準備処理が実行される。
遊技制御カウンタ設定部には、パチンコ遊技機1における遊技の進行を制御するために用いられるカウント値を計数するためのカウンタが複数種類設けられている。例えば、遊技制御カウンタ設定部には、複数種類のカウンタそれぞれにおけるカウント値を示すデータが記憶される。一例として、遊技制御カウンタ設定部に、ランダムカウンタ、第1保留記憶カウンタ、第2保留記憶カウンタ、ラウンド数カウンタなどが設けられていればよい。
遊技制御カウンタ設定部のランダムカウンタは、遊技の進行を制御するために用いられる乱数値を示す数値データの一部を、乱数回路509A、509Bとは別個に、CPU505がソフトウェアにより更新可能にカウントするためのものである。例えば、遊技制御カウンタ設定部のランダムカウンタには、乱数値MR1〜MR5を示す数値データが、ランダムカウント値として記憶される。そして、乱数値MR2〜MR5については、CPU505によるソフトウェアの実行に応じて、定期的あるいは不定期に、各乱数値を示す数値データが更新される。
第1保留記憶カウンタは、第1特図保留記憶部における保留データの記憶数である第1特図保留記憶数をカウントするためのものである。例えば、第1保留記憶カウンタには、第1特図保留記憶数に対応したカウント値を示すデータが、第1保留記憶カウント値として記憶され、第1特図保留記憶数の増減に対応して更新(例えば1加算あるいは1減算)される。第2保留記憶カウンタは、第2特図保留記憶部における保留データの記憶数である第2特図保留記憶数をカウントするためのものである。例えば、第2保留記憶カウンタには、第2特図保留記憶数に対応したカウント値を示すデータが、特図保留記憶カウント値として記憶され、特図保留記憶数の増減に対応して更新(例えば1加算あるいは1減算)される。なお、第1および第2保留記憶カウンタとは別個に、合計保留記憶数をカウントするための合計保留記憶カウンタを設けてもよい。あるいは、合計保留記憶数は、第1保留記憶カウント値と第2保留記憶カウント値とを加算することにより特定できるようにしてもよい。
ラウンド数カウンタは、大当り遊技状態におけるラウンドの実行回数などをカウントするためのものである。例えば、ラウンド数カウンタには、大当り遊技状態の開始時にカウント初期値「1」を示すデータが、ラウンド数カウント値として設定される。そして、1回のラウンドが終了して次回のラウンドが開始されるときに、ラウンド数カウント値が1加算されて更新される。また、ラウンド数カウンタは、小当り遊技状態における可変入賞動作の実行回数もカウントするようにしてもよい。
遊技制御バッファ設定部は、パチンコ遊技機1における遊技の進行を制御するために用いられるデータを一時的に記憶する各種のバッファが設けられている。例えば、遊技制御バッファ設定部には、複数種類のバッファそれぞれにおけるバッファ値を示すデータが記憶される。一例として、遊技制御バッファ設定部には、送信コマンドバッファ、変動特図指定バッファ、大当り種別バッファ、スイッチオンバッファなどが設けられていればよい。
送信コマンドバッファは、主基板11からサブ側の制御基板に対して制御コマンドを送信するための設定データを一時的に格納するために用いられる。例えば、送信コマンドバッファは、複数(例えば「12」)のバッファ領域を備えて構成され、送信する制御コマンドに対応したコマンドテーブルのROM506における記憶アドレスを示す設定データなどが、各バッファ領域に格納される。また、送信コマンドバッファにおいて設定データの書込や読出を行うバッファ領域は、送信コマンドポインタなどによって指定され、複数のバッファ領域をリングバッファとして使用することができるように構成されていればよい。
変動特図指定バッファには、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームと、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームのうち、いずれの特図ゲームが実行されるかを示すバッファ値が格納される。一例として、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームが実行されることに対応して、変動特図指定バッファの値(変動特図指定バッファ値)が“1”に設定される。また、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームが実行されることに対応して、変動特図指定バッファ値が“2”に設定される。そして、特図ゲームが終了したことなどに対応して、変動特図指定バッファ値が“0”に設定される。
大当り種別バッファには、可変表示結果が「大当り」となる場合における飾り図柄の可変表示態様を、「非確変」、「確変」、「突確」といった複数種類の大当り種別のいずれかとする決定結果に対応した値が、大当り種別バッファ値として格納される。一例として、大当り種別が「非確変」の場合には大当り種別バッファ値が「0」に設定され、大当り種別が「確変」の場合には大当り種別バッファ値が「1」に設定され、大当り種別が「突確」の場合には大当り種別バッファ値が「2」に設定される。
スイッチオンバッファは、ゲートスイッチ21や第1および第2始動口スイッチ22A、22B、カウントスイッチ23といった各スイッチに対応した複数のビット値を格納し、各スイッチから伝送された検出信号の状態(オンまたはオフ)に対応して、各ビット値(例えばオフに対応した「0」やオンに対応した「1」など)が変更可能に設定される。すなわち、スイッチオンバッファの各ビット値は、予め対応付けられたスイッチのオンが検出された場合に「1」が設定され、そのスイッチのオフが検出された場合に「0」が設定される。
図2に示すように、演出制御基板12には、演出制御用マイクロコンピュータ120が搭載されている。また、演出制御基板12には、演出制御用マイクロコンピュータ120からの描画コマンドに応じて画像データを生成するVDP(Video Display Processor)
121や、画像表示装置5、スピーカ8L、8Rおよび遊技効果ランプ9等の発光体といった演出装置による演出動作を制御するために用いられる各種データを記憶する演出データメモリ122なども搭載されている。演出制御用マイクロコンピュータ120は、例えば遊技制御用マイクロコンピュータ100と同様の構成を有する1チップマイクロコンピュータであり、外部バスインタフェース、クロック回路、固有情報記憶回路、リセットコントローラ、割込みコントローラ、CPU、ROM、RAM、タイマ回路、乱数回路、フリーランカウンタ、PIP、シリアル通信回路、アドレスデコード回路などを備えていればよい。また、演出制御用マイクロコンピュータ120における構成の一部または全部を、遊技制御用マイクロコンピュータ100における構成とは異ならせてもよい。一例として、演出制御基板12の側で用いられる乱数値となる数値データを、全てソフトウェアにより更新する場合には、演出制御用マイクロコンピュータ120が乱数回路を備えていなくてもよい。また、シリアル通信回路では、少なくとも主基板11から伝送される演出制御コマンドを受信可能な受信回路が設けられていればよく、画像表示装置5、音声制御基板13、ランプ制御基板14に対するデータや指令信号の送信は、外部バスインタフェースやアドレスデコード回路を用いて行うようにしてもよい。
演出制御用マイクロコンピュータ120では、CPUがROMから読み出した演出制御用のプログラムを実行することにより、演出用の電気部品(演出装置)による演出動作を制御するための処理が実行される。このときには、CPUがROMから固定データを読み出す固定データ読出動作や、CPUがRAMに各種の変動データを書き込んで一時記憶させる変動データ書込動作、CPUがRAMに一時記憶されている各種の変動データを読み出す変動データ読出動作、CPUが外部バスインタフェースやPIP、シリアル通信回路などを介して演出制御用マイクロコンピュータ120の外部から各種信号の入力を受け付ける受信動作、CPUが外部バスインタフェースやシリアル通信回路などを介して演出制御用マイクロコンピュータ120の外部へと各種信号を出力する送信動作なども行われる。なお、演出制御用マイクロコンピュータ120を構成する1チップのマイクロコンピュータには、少なくともCPUの他にRAMが内蔵されていればよく、ROMや乱数回路、PIPなどは、外付けされるものでも内蔵されるものでもよい。中継基板18を介して主基板11から送信された演出制御コマンドとなる制御信号は、演出制御用マイクロコンピュータ120が備える所定のシリアル受信端子に供給され、演出制御用マイクロコンピュータ120に内蔵されたシリアル通信回路にて受信すればよい。あるいは、演出制御コマンドとなる制御信号は、複数本の信号線(例えば8本の演出制御信号線)を介して、主基板11から演出制御基板12へと向かう方向でパラレルに送受信されてもよい。
VDP121は、画像表示装置5の表示領域に各種画像を表示させるための高速描画機能や動画像デコード機能といった画像データ処理機能を有し、演出制御用マイクロコンピュータ120からの表示制御指令に従った画像データ処理を実行する画像処理プロセッサである。なお、VDP121は、GPU(Graphics Processing Unit)、GCL(Graphics
Controller LSI)、あるいは、より一般的にDSP(Digital Signal Processor)と
称される画像処理用のマイクロプロセッサであってもよい。演出データメモリ122は、例えばフラッシュメモリなどの半導体メモリや磁気メモリ、光学メモリといった不揮発性の記録媒体を用いて構成されればよい。
音声制御基板13には、例えば入出力ドライバや音声合成用IC、音声データROM、増幅回路、ボリュームなどが搭載されている。一例として、音声制御基板13では、演出制御基板12から伝送された効果音信号に示される音番号データが入出力ドライバを介して音声合成用ICに入力される。音声合成用ICは、音番号データに応じた音声や効果音を生成し増幅回路に出力する。増幅回路は、音声合成用ICの出力レベルを、ボリュームで設定されている音量に応じたレベルに増幅した音声信号を、スピーカ8L、8Rに出力する。音声データROMには、音番号データに応じた制御データが格納されており、音声合成用ICが音番号データに応じた制御データを読み出して、音声や効果音が生成される。音声データROMの記憶データは、所定期間における音声や効果音の出力態様を時系列的に示すデータなどから構成されていればよい。
ランプ制御基板14には、例えば入出力ドライバやランプドライバなどが搭載されている。一例として、ランプ制御基板14では、演出制御基板12から伝送された電飾信号が、入出力ドライバを介してランプドライバに入力される。ランプドライバは、電飾信号を増幅して遊技効果ランプ9などに供給する。
払出制御基板15には、払出制御用マイクロコンピュータ150やスイッチ回路151などが搭載されている。スイッチ回路151には、満タンスイッチ26、球切れスイッチ27、払出モータ位置センサ71、払出カウントスイッチ72、エラー解除スイッチ73などの各種スイッチやセンサからの検出信号が入力される。スイッチ回路151は、これらの検出信号を取り込んで、払出制御用マイクロコンピュータ150に伝送する。払出制御用マイクロコンピュータ150は、例えば遊技制御用マイクロコンピュータ100と同様の1チップマイクロコンピュータであり、外部バスインタフェース、クロック回路、固有情報記憶回路、リセットコントローラ、割込みコントローラ、CPU、ROM、RAM、タイマ回路、乱数回路、フリーランカウンタ、PIP、シリアル通信回路、アドレスデコード回路などを備えていればよい。また、払出制御用マイクロコンピュータ150における構成の一部または全部を、遊技制御用マイクロコンピュータ100における構成とは異ならせてもよい。一例として、払出制御基板15の側で乱数値となる数値データを用いない場合には、払出制御用マイクロコンピュータ150が乱数回路を備えていなくてもよい。また、シリアル通信回路では、少なくとも主基板11との間で双方向のシリアル通信が可能な送受信回路が1つ設けられていればよく、払出モータ51、エラー表示用LED74、発射制御基板17に対するデータや指令信号の送信は、外部バスインタフェースやアドレスデコード回路を用いて行うようにしてもよい。
払出制御用マイクロコンピュータ150では、CPUがROMから読み出した払出制御用のプログラムを実行することにより、払出モータ51を含む払出装置による払出動作などを制御するための処理が実行される。このときには、CPUがROMから固定データを読み出す固定データ読出動作や、CPUがRAMに各種の変動データを書き込んで一時記憶させる変動データ書込動作、CPUがRAMに一時記憶されている各種の変動データを読み出す変動データ読出動作、CPUが外部バスインタフェースやPIP、シリアル通信回路などを介して払出制御用マイクロコンピュータ150の外部から各種信号の入力を受け付ける受信動作、CPUが外部バスインタフェースやシリアル通信回路などを介して払出制御用マイクロコンピュータ150の外部へと各種信号を出力する送信動作なども行われる。なお、払出制御用マイクロコンピュータ150を構成する1チップのマイクロコンピュータには、少なくともCPUの他にRAMが内蔵されていればよく、ROMやPIPなどは、外付けされるものでも内蔵されるものでもよい。
次に、本実施例におけるパチンコ遊技機1の動作(作用)を説明する。主基板11では、電源基板10からの電力供給が開始され遊技制御用マイクロコンピュータ100へのリセット信号がハイレベル(オフ状態)になったことに応じて、遊技制御用マイクロコンピュータ100が起動し、CPU505がROM506から読み出したセキュリティチェックプログラム506Aに基づき、図25のフローチャートに示すようなセキュリティチェック処理が実行される。このとき、遊技制御用マイクロコンピュータ100は、動作状態がセキュリティモードとなり、ROM506に記憶されているゲーム制御用のユーザプログラムは未だ実行されない状態となる。
図25に示すセキュリティチェック処理を開始すると、CPU505は、まず、セキュリティチェック処理が実行されることにより遊技制御用マイクロコンピュータ100がセキュリティモードとなる時間(セキュリティ時間)を決定するための処理を実行する。このとき、CPU505は、ROM506のプログラム管理エリアに記憶されるセキュリティ時間設定KSESのビット番号[5−0]におけるビット値を読み出す(ステップS1)。そして、この読出値に応じた固定延長時間を設定する(ステップS2)。ステップS2の処理では、例えば図10に示すように、セキュリティ時間設定KSESのビット番号[5−0]におけるビット値に応じて異なる固定セキュリティ時間を、固定延長時間として設定すればよい。
ステップS2の処理を実行した後には、セキュリティ時間設定KSESのビット番号[7−6]におけるビット値を読み出す(ステップS3)。そして、この読出値が“00”であるか否かを判定する(ステップS4)。このとき読出値が“00”以外であると判定された場合には(ステップS4;No)、その読出値に対応して決定される可変延長時間を設定する(ステップS5)。ステップS5の処理では、例えば図10に示すように、セキュリティ時間設定KSESのビット番号[7−6]におけるビット値に対応して、ショートモード、ミドルモード、ロングモードのいずれかによる可変セキュリティ時間を、可変延長延長時間として設定すればよい。ステップS2の処理により設定された固定延長時間とステップS5の処理により設定された可変延長時間とを加算して、セキュリティ時間に設定すればよい。ここで、可変設定時間は、セキュリティ時間のうち、セキュリティチェック処理が実行されるごとに変化する時間成分であり、セキュリティ時間設定KSESのビット番号[7−6]におけるビット値が“01”(ショートモード)であるか“10”(ミドルモード)であるか“11”(ロングモード)であるかに応じて異なる所定の時間範囲で変化する。
例えば、システムリセットの発生時に、フリーランカウンタ509Cなどにおけるカウント値が遊技制御用マイクロコンピュータ100に内蔵された可変セキュリティ時間用レジスタに格納される場合には、ステップS5の処理において、可変セキュリティ時間用レジスタの格納値をそのまま用いること、あるいは、その格納値を所定の演算関数(例えばハッシュ関数)に代入して得られた値を用いることなどにより、可変設定時間がシステムリセット毎に所定の時間範囲でランダムに変化するように決定されればよい。こうして、セキュリティ時間設定KSESのビット番号[7−6]におけるビット値が“00”以外の値である場合には、セキュリティチェック処理の実行時間であるセキュリティ時間を、システムリセットの発生等に基づくセキュリティチェック処理が実行されるごとに所定の時間範囲で変化させることができる。
一方、ステップS4にて読出値が“00”であると判定された場合には(ステップS4;Yes)、ステップS5の処理が実行されない。この場合には、ステップS2の処理により設定された固定延長時間をセキュリティ時間に設定すればよい。
その後、ROM506の所定領域に記憶されたセキュリティコードを読み出す(ステップS6)。ここで、ROM506の所定領域には、記憶内容のデータを所定の演算式によって演算した演算結果のセキュリティコードが予め記憶されている。セキュリティコードの生成方法としては、例えばハッシュ関数を用いてハッシュ値を生成するもの、エラー検出コード(CRCコード)を用いるもの、エラー訂正コード(ECCコード)を用いるもののいずれかといった、予め定められた生成方法を使用すればよい。また、ROM506のセキュリティコード記憶領域とは異なる所定領域には、セキュリティコードを演算により特定するための演算式が、暗号化して予め記憶されている。
ステップS6の処理に続いて、暗号化された演算式を復号化して元に戻す(ステップS7)。その後、ステップS7で復号化した演算式により、ROM506の所定領域における記憶データを演算してセキュリティコードを特定する(ステップS8)。このときセキュリティコードを特定するための演算に用いる記憶データは、例えばROM506の記憶データのうち、セキュリティチェックプログラム506Aとは異なるユーザプログラムの一部または全部に相当するプログラムデータ、あるいは、所定のテーブルデータを構成する固定データの一部または全部であればよい。そして、ステップS6にて読み出したセキュリティコードと、ステップS8にて特定されたセキュリティコードとを比較する(ステップS9)。このときには、比較結果においてセキュリティコードが一致したか否かを判定する(ステップS10)。
ステップS10にてセキュリティコードが一致しない場合には(ステップS10;No)、ROM506に不正な変更が加えられたと判断して、CPU505の動作を停止状態(HALT)へ移行させる。これに対して、ステップS10にてセキュリティコードが一致した場合には(ステップS10;Yes)、ステップS2やステップS5の処理に基づいて設定されたセキュリティ時間が経過したか否かを判定する(ステップS11)。そして、セキュリティ時間が経過していなければ(ステップS11;No)、ステップS11の処理を繰り返し実行して、セキュリティ時間が経過するまで待機する。その一方で、ステップS11にてセキュリティ時間が経過したと判定された場合には(ステップS11;Yes)、例えばCPU505に内蔵されたプログラムカウンタの値をROM506におけるユーザプログラムの先頭アドレス(アドレス0000H)に設定することなどにより、遊技制御メイン処理の実行を開始する。このときには、ROM506に記憶されたユーザプログラムを構成する制御コードの先頭から遊技制御の実行が開始されることにより、遊技制御用マイクロコンピュータ100の動作状態がセキュリティモードからユーザモードへと移行し、遊技制御メイン処理の実行が開始されることになる。
図26および図27は、遊技制御用マイクロコンピュータ100のCPU505により実行される遊技制御メイン処理の一例を示すフローチャートである。なお、以下に説明する各処理は、遊技制御用マイクロコンピュータ100が備えるCPU505によって実行されるものとする。また、遊技制御用マイクロコンピュータ100が備えるタイマ回路508や乱数回路509、シリアル通信回路511などで発生した各種の割込み要因に基づく割込み要求は、割り込みコントローラ504BによりCPU505に所定の割込み処理を実行させるためのものである。そして、CPU505やCPU505以外の各種回路を含んだ概念を遊技制御用マイクロコンピュータ100ということもあるものとする。遊技制御メイン処理を開始すると、CPU505は、所定の初期設定処理を実行して、割込禁止に設定し(図26のステップS21)、割込モードの設定を行う(ステップS22)。例えば、ステップS22では、遊技制御用マイクロコンピュータ100の特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビットは“0”)とを合成することにより割込アドレスが生成されるマスク可能割込の割込モード[2]が設定される。マスク可能な割込みが発生したときには、CPU505が自動的に割込禁止状態となる設定を行うとともに、プログラムカウンタの内容がスタックにセーブされればよい。
続いて、例えばスタックポインタ指定アドレスの設定など、スタックポインタに関わる設定を行う(ステップS23)。また、図7(B)に示すような内蔵レジスタの設定(初期化)を行う(ステップS24)。一例として、ステップS24の処理では、所定の通信設定レジスタにおける設定を初期化することにより、シリアル通信回路511における動作設定が行われればよい。ステップS24の処理に続いて、タイマ回路508やPIP510の設定が行われてもよい。その後、例えばPIP510に含まれる所定の入力ポートにおける端子状態をチェックすることなどにより、電源断信号がオフ状態となっているか否かを判定する(ステップS25)。パチンコ遊技機1では、電力供給が開始されたときに、VSL(+30V)電源などの各種電源の出力電圧が徐々に規定値へと達する。このとき、ステップS25の処理により電源断信号のオフ状態(ハイレベル)を確認することで、CPU505が電源電圧の安定を確認することができる。なお、ノイズ等の影響による誤検出を防止するために、電源断信号の確認を所定回数(例えば5回)連続して実行してもよい。
ステップS25にて電源断信号がオン状態(ローレベル)である場合には(ステップS25;Yes)、リセットコントローラ504Aに設けられたウォッチドッグタイマ520を起動させるための設定を行う(ステップS26)。この実施の形態では、図8(B)に示すリセット設定KRESのビット番号[6]におけるビット値を予め“0”となるように設定しておく。これにより、ウォッチドッグタイマ520を起動させてタイムアウトの発生に応じたリセット動作を有効化するか、ウォッチドッグタイマ520を停止させてタイムアウトの発生に応じたリセット動作を無効化するかを、ユーザプログラム(ソフトウェア)により切替可能に設定する。また、リセット設定KRESのビット番号[5−4]におけるビット値を予め“11”となるように設定するとともに、リセット設定KRESのビット番号[3−0]におけるビット値を予め“1111”となるように設定しておく。これにより、ウォッチドッグタイマ520にて計測される監視時間となるタイムアウト時間は、監視時間として設定可能な複数種類のうちで最長時間となる。
このような設定に基づいて、ステップS26の処理では、CPU505が図13(A)に示すWDTスタートレジスタWSTに、「CCH」をWDTスタートデータとして書き込む。こうして、ステップS25の処理により電源断信号がオン状態であると判定されたときには、ウォッチドッグタイマ520による監視時間の計測を開始させて、タイムアウトの発生によるリセット動作を有効化する。
ステップS26の処理によりウォッチドッグタイマ520を起動させた後に、CPU505は、無限ループ処理を繰返し実行することにより制御状態を待機状態に移行させる。こうして待機状態に移行した後には、ウォッチドッグタイマ520のクリアおよびリスタートが行われないことから、監視時間の経過が計測されたときに、タイムアウトの発生によるリセット動作が行われることになる。したがって、パチンコ遊技機1に電力供給が開始されてから所定時間が経過しても電源電圧の安定が確認できず、電源断信号がオン状態のままである場合には、ウォッチドッグタイマ520におけるタイムアウトの発生によるリセット動作を行って、遊技制御用マイクロコンピュータ100を再起動させることができる。
ここで、ウォッチドッグタイマ520にて計測される監視時間となるタイムアウト時間は、監視時間として設定可能な複数種類のうちで最長時間225×TSCLK×15(TSCLKは内部システムクロックSCLKの周期)となるように設定されている。したがって、例えばパチンコ遊技機1における電源スイッチの切断等により電力供給が所定期間にわたり完全に停止したときには、監視時間の経過によりタイムアウトが発生するより先に、遊技制御用マイクロコンピュータ100のCPU505に対する電力供給が停止するので、タイムアウトの発生によるリセット動作が行われないように制限できる。こうして、電源スイッチの切断時などに誤ってリセットされてしまうことを防止できる。
ステップS25にて電源断信号がオフ状態(ハイレベル)である場合には(ステップS25;No)、電源基板10に設置されたクリアスイッチ304から伝送されるスイッチ信号(クリア信号)の信号状態などに基づき、クリアスイッチ304がオン操作されたかを判定する(ステップS27)。なお、ステップS27の処理では、クリアスイッチ304から伝送されるクリア信号を複数回チェックし、連続してオン状態となったときに、クリアスイッチ304がオン操作されたと判定してもよい。例えば、クリア信号の状態がオフ状態であることを1回確認したら、所定時間(例えば0.1秒)が経過した後に、クリア信号の状態をもう1回確認する。このとき、クリア信号がオフ状態であれば、クリア信号がオフ状態である旨の判定を行うようにする。他方、このときにクリア信号の状態がオン状態であれば、所定時間が経過した後に、クリア信号の状態を再び確認するようにしてもよい。なお、クリア信号の状態を再確認する回数は1回であってもよいし、複数回であってもよい。また、2回チェックして、チェック結果が一致していなかったときに、もう一度確認するようにしてもよい。
ステップS27にてクリア信号がオン状態であれば(ステップS27;Yes)、例えばRAM507の所定領域(遊技制御フラグ設定部など)にも受けられたクリアフラグをオン状態にセットする(ステップS28)。他方、クリア信号がオフ状態であるときには(ステップS27;No)、ステップS28の処理をスキップして、クリアフラグをオフ状態のままとする。
その後、遊技の進行を制御するための遊技制御処理の開始タイミングをソフトウェアの実行により遅延させる遅延処理の設定を行う(ステップS29)。具体的な一例として、RAM507の所定領域(遊技制御カウンタ設定部など)に設けられたウェイトカウンタに、初期化ウェイト回数指定値をセットする。続いて、ステップS29での設定に基づく遅延処理を開始して、例えばウェイトカウンタにおけるカウント値を1減算するなど、遅延処理の実行に関わる設定の更新を行う(ステップS30)。そして、例えばウェイトカウンタにおけるカウント値が所定の遅延終了判定値に達したか否かを判定することなどにより、所定の遅延時間が経過したか否かを判定する(ステップS31)。ここで、遅延終了判定値を示すデータは、ROM506などに予め記憶されていればよい。例えば、遅延終了判定値は、遊技制御処理が実行可能状態となったときから、少なくとも払出制御基板15に搭載された払出制御用マイクロコンピュータ150による払出制御用の各種処理が実行開始されるまでの時間に比べて遅延時間の方が長くなるように、予め定められた基準値であればよい。
ステップS31にて遅延時間が経過していないときには(ステップS31;No)、ステップS30の処理にリターンし、遅延時間が経過しているときには(ステップS31;Yes)、RAM507に対するアクセスを許可する(ステップS32)。続いて、遊技制御用マイクロコンピュータ100は、クリアフラグがオンとなっているか否かを判定する(ステップS33)。クリアフラグがオフであるときには(ステップS33;No)、RAM507のデータチェックを行い、チェック結果が正常であるか否かを判定する(ステップS34)。ステップS34の処理では、例えばRAM507の特定領域における記憶データを用いてチェックサムを算出し、算出されたチェックサムとメインチェックサムバッファに記憶されているチェックサムとを比較する。ここで、メインチェックサムバッファには、前回の電力供給停止時に、同様の処理によって算出されたチェックサムが記憶されている。そして、比較結果が不一致であれば、RAM507の特定領域におけるデータが電力供給停止時のデータとは異なっていることから、チェック結果が正常でないと判断される。
ステップS34におけるチェック結果が正常であるときには(ステップS34;Yes)、例えばRAM507の所定領域(遊技制御フラグ設定部など)に設けられたメインバックアップフラグがオンとなっているか否かを判定する(ステップS35)。メインバックアップフラグの状態は、電力供給が停止するときに、遊技制御フラグ設定部などに設定される。そして、このメインバックアップフラグの設定箇所がバックアップ電源によってバックアップされることで、電力供給が停止した場合でも、メインバックアップフラグの状態は保存されることになる。ステップS35では、例えばメインバックアップフラグの値として「55H」が遊技制御フラグ設定部などに設定されていれば、バックアップあり(オン状態)であると判断される。これに対して、「55H」以外の値が設定されていればバックアップなし(オフ状態)であると判断される。なお、ステップS35のようなメインバックアップフラグがオンとなっているか否かの判定を、ステップS34のようなチェック結果の判定よりも先に行い、メインバックアップフラグがオンであるときにRAM507のデータチェック結果が正常であるか否かを判定するようにしてもよい。
ステップS35にてメインバックアップフラグがオンであるときには(ステップS35;Yes)、メインバックアップフラグをクリアしてオフ状態とした後(ステップS36)、遊技制御用マイクロコンピュータ100の内部状態などを電力供給が停止されたときの状態に戻すための復旧時における設定を行う(ステップS37)。具体的な一例として、ステップS37の処理では、ROM506に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し、バックアップ時設定テーブルの内容を順次に、RAM507内の作業領域に設定する。ここで、RAM507の作業領域はバックアップ電源によってバックアップされており、バックアップ時設定テーブルには、作業領域のうちで初期化してもよい領域についての初期化データが設定されていてもよい。ステップS37の処理を実行したときには、演出制御基板12に対して復旧報知コマンドを送信するための設定を行う(ステップS38)。具体的な一例として、ステップS38の処理では、ROM506に格納されているバックアップ時コマンド送信テーブルの先頭アドレスをポインタに設定し、バックアップ時コマンド送信テーブルの内容に基づいてコマンド送信用の制御データを遊技制御バッファ設定部の送信コマンドバッファに含まれる演出用送信コマンドバッファにセットすることなどにより、主基板11から演出制御基板12に対して復旧報知コマンドを送信させる。
こうして、クリアフラグがオフであることや、RAM507のデータチェック結果が正常であること、メインバックアップフラグがオンであることという、予め定められた復旧条件が成立するか否かの復旧判定を行う。そして、復旧条件が成立した場合には、前回の電力供給が停止されたときの内部状態に戻す復旧設定を行うことができる。
一方、ステップS33にてクリアフラグがオンであるときや(ステップS33;Yes)、ステップS34にてチェック結果が正常ではないとき(ステップS34;No)、あるいはステップS35にてメインバックアップフラグがオフであるときには(ステップS35;No)、RAM507の初期化を行う(ステップS39)。ステップS39の処理に続いて、遊技制御用マイクロコンピュータ100の内部状態などを初期状態とするための初期化時における設定を行う(ステップS40)。具体的な一例として、ステップS40の処理では、ROM506に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し、初期化時設定テーブルの内容を順次、RAM507内の作業領域に設定する。また、ステップS40の処理では、遊技制御カウンタ設定部に設けられたコマンド送信回数カウンタに、所定のカウント初期値(例えば「200」)を設定する。ステップS39、S40の処理を実行したときには、演出制御基板12に対して初期化通知コマンドを送信するための設定と(ステップS41)、払出制御基板15に対して払出用初期化コマンドを送信するための設定とを行う(ステップS42)。具体的な一例として、ステップS41の処理では、ROM506に格納されている初期化時演出コマンド送信テーブルの先頭アドレスをポインタに設定し、初期化時演出コマンド送信テーブルの内容に基づいてコマンド送信用の制御データを遊技制御バッファ設定部の送信コマンドバッファに含まれる演出用送信コマンドバッファにセットすることなどにより、主基板11から演出制御基板12に対して初期化通知コマンドを送信させる。また、ステップS42の処理では、ROM506に格納されている初期化時払出コマンド送信テーブルの先頭アドレスをポインタに設定し、初期化時払出コマンド送信テーブルの内容に基づいてコマンド送信用の制御データを遊技制御バッファ設定部の送信コマンドバッファに含まれる払出用送信コマンドバッファにセットすることなどにより、主基板11から払出制御基板15に対して払出用初期化コマンドを送信させる。
ステップS38またはステップS42の処理を実行した後には、例えば遊技制御用マイクロコンピュータ100が備えるタイマ回路508のレジスタ設定などを行うことにより、所定時間(例えば2ミリ秒)ごとにタイマ割込みが発生するように遊技制御用マイクロコンピュータ100の内部設定を行う(ステップS43)。この後、例えばCPU505がROM506のプログラム管理エリアに記憶されている16ビット乱数初期設定第1KRL1のビット番号[7]やビット番号[3]などにおけるビット値を読み出す(図27のステップS44)。このときには、それぞれのビット値について読出値が“0”であるか否かを判定する(ステップS45)。
ステップS45にて読出値が“0”であるビット値があった場合には(ステップS45;Yes)、乱数値となる数値データにおける最大値を設定することにより乱数回路509A、509Bを起動させる設定を行う(ステップS46)。例えば図9(B)に示す16ビット乱数初期設定第1KRL1のビット番号[3]におけるビット値を予め“0”となるように設定しておく。この場合、16ビットの乱数回路509Aにおいてチャネルch0の16ビット乱数を発生させる回路は、ユーザプログラム(ソフトウェア)における乱数最大値の設定により起動させることができる。このような設定に基づいて、ステップS46の処理では、CPU505が図19(A)および(B)に示すチャネルch0の16ビット乱数に対応した乱数最大値設定レジスタRL0MXに所定の数値データを乱数最大値として書き込む。こうして、ユーザプログラム(ソフトウェア)における乱数最大値の設定により、チャネルch0に対応した16ビット乱数の発生を開始させる。
ステップS45にて読出値が“0”ではなく“1”である場合や(ステップS45;No)、ステップS46の処理を実行した後には、シリアル通信回路の初期設定を行う(ステップS47)。この後、割込み要求に基づいて実行される割込み処理に関する初期設定を行う(ステップS48)。そして、遊技制御用マイクロコンピュータ100は割込許可状態に設定して(ステップS49)、各種割込みの発生を待機する。このときには、遊技用乱数を更新するための遊技用乱数更新処理を実行するとともに(ステップS50)、電源断信号がオン状態(ローレベル)となったか否か(出力されたか否か)の判定を行う(ステップS51)。
ステップS51にて電源断信号がオフ状態(ハイレベル)である場合には(ステップS51;No)、ステップS50の処理に戻り、各種割込みの発生を待機する。一方、ステップS51にて電源断信号がオン状態(ローレベル)となったときには(ステップS51;Yes)、メイン側電源断処理を実行する(ステップS52)。その後、図26に示したステップS26の処理と同様に、ウォッチドッグタイマ520を起動させるための設定を行ってから(ステップS53)、無限ループ処理を繰返し実行することにより制御状態を待機状態に移行させる。こうして待機状態に移行した後には、ウォッチドッグタイマ520のクリアおよびリスタートが行われないことから、監視時間の経過が計測されたときに、タイムアウトの発生によるリセット動作が行われることになる。したがって、例えば遊技制御用タイマ割込処理(図30)といった、パチンコ遊技機1における遊技の進行を制御する遊技制御処理が実行可能な制御状態となった後に、パチンコ遊技機1における電源電圧の低下(瞬停)により電源断信号がオン状態となった場合には、ウォッチドッグタイマ520におけるタイムアウトの発生によるリセット動作を行って、遊技制御用マイクロコンピュータ100を再起動させることができる。
ここで、ウォッチドッグタイマ520にて計測される監視時間となるタイムアウト時間は、監視時間として設定可能な複数種類のうちで最長時間225×TSCLK×15となるように設定されている。したがって、例えばパチンコ遊技機1における電源スイッチの切断等により電力供給が所定期間にわたり完全に停止したときには、監視時間の経過によりタイムアウトが発生するより先に、遊技制御用マイクロコンピュータ100のCPU505やリセットコントローラ504Aに対する電力供給が停止するので、タイムアウトの発生によるリセット動作が行われないように制限できる。こうして、電源スイッチの切断時などに誤ってリセットされてしまうことを防止できる。
図26および図27に示す遊技制御メイン処理では、ステップS26やステップS53の処理によりウォッチドッグタイマ520を起動させる設定を行った後に、無限ループ処理を繰返し実行することにより制御状態を待機状態に移行させる。この待機状態に移行した後には、たとえ電源断信号がオフ状態になったとしても、タイムアウトの発生によるリセット動作を行うことで遊技制御用マイクロコンピュータ100を再起動させる。これに対して、待機状態に移行した後でも、電源断信号がオフ状態になったときには、待機状態を終了させて遊技制御処理を実行できるようにしてもよい。
一例として、図26に示すステップS24の処理を実行した後には、図28(A)に示すような処理を実行してもよい。この場合、CPU505は、ステップS25Aの処理によりウォッチドッグタイマ520を起動させる設定を行ってから、ステップS25の処理により電源断信号がオン状態であるか否かを判定する。このとき、電源断信号がオン状態である場合には、ステップS25Bの処理により所定時間が経過するまで待機してから、ステップS25の処理に戻る。したがって、電源断信号がオン状態となるまでは、ステップS25およびステップS25Bの処理が繰返し実行される。そして、電源断信号がオン状態にならずにウォッチドッグタイマ520にて監視時間となるタイムアウト時間が経過したことが計測されたときには、タイムアウトの発生によるリセット動作が行われる。
一方、図28(A)に示すステップS25の処理にて電源断信号がオフ状態であると判定されたときには、ステップS25Cの処理によりウォッチドッグタイマ520を停止させるための設定を行ってから、図26に示すステップS27の処理に進めばよい。ステップS25Cの処理では、CPU505が図13(A)に示すWDTスタートレジスタWSTに、「33H」をWDTストップデータとして書き込む。こうして、タイムアウトの発生より先に、ステップS25の処理により電源断信号がオフ状態であると判定されたときには、ウォッチドッグタイマ520による監視時間の計測を停止させて、タイムアウトの発生によるリセット動作を無効化してもよい。
図27に示すステップS51の処理にて電源断信号がオン状態であると判定されたときにも、所定時間が経過するまで待機してから、電源断信号がオン状態であるか否かを再度チェックしてもよい。この場合、最初に電源断信号がオン状態であると判定されたときにステップS52のメイン側電源断処理を実行する一方で、所定時間を待機した後でも電源断信号がオン状態であると判定されたときに、ウォッチドッグタイマ520を起動させてタイムアウトの発生によるリセット動作を有効化してもよい。所定時間を待機した後に電源断信号がオフ状態であると判定されたときには、ステップS25Cの処理と同様にウォッチドッグタイマ520を停止させるための設定を行ってから割込みを許可してもよい。
また、図26に示すステップS26の処理や、図27に示すステップS53の処理、あるいは図28(A)に示すステップS25Aの処理では、ウォッチドッグタイマ520を常に起動させてタイムアウトの発生によるリセット動作を有効化するものに限定されない。例えば、予め定めたWDT起動条件が成立したか否かを判定し、WDT起動条件が成立した場合にはタイムアウトの発生によるリセット動作を有効化する一方、WDT起動条件が成立しない場合にはタイムアウトの発生によるリセット動作を無効化してもよい。
この場合、ステップS26、S53、S25Aの処理として、例えば図28(B)に示すような処理が実行されてもよい。図28(B)に示す処理において、CPU505は、図11(A)に示す内部情報レジスタCIFのビット番号[1]におけるビット値(格納値)を読み出す(ステップS71)。そして、この読出値が“1”であるか否かを判定する(ステップS72)。図11(B)に示すように、内部情報レジスタCIFのビット番号[1]に格納される内部情報データCIF1は、直前に発生したリセット要因がウォッチドッグタイマ520のタイムアウトによるものであるか否かを示している。したがって、ステップS71にて読み出した内部情報データCIF1の値が“1”であれば、タイムアウトの発生によるリセット動作が行われたと判定することができる。
ステップS72にて読出値が“1”ではなく“0”であると判定されたときには(ステップS72;No)、WDTスタートレジスタWSTに「CCH」をWDTスタートデータとして書き込むことにより(ステップS73)、ウォッチドッグタイマ520を起動させてタイムアウトの発生によるリセット動作を有効化する。一方、ステップS72にて読出値が“1”であると判定されたときには(ステップS72;Yes)、WDTスタートレジスタWSTに「33H」をWDTストップデータとして書き込むことにより、ウォッチドッグタイマ520を停止させてタイムアウトの発生によるリセット動作を無効化する(ステップS74)。
こうして、直前に発生したリセット要因がウォッチドッグタイマ520のタイムアウトによるものである場合には、ステップS74の処理を実行することで、タイムアウトの発生によるリセット動作を無効化する。これにより、電源電圧の安定が確認できないために不用意なリセット動作が繰返し実行されてしまうことを防止できる。なお、ステップS72にて読出値が“1”であると判定されたときには、ステップS73、S74の処理を実行することなく、図28(B)に示す処理を終了してもよい。
図26および図27に示す遊技制御メイン処理では、ステップS44〜S46の処理を、ステップS26の処理による電源断信号の判定や、ステップS32の処理によるRAM507へのアクセス許可、さらにはステップS33〜S35の処理による復旧判定を行った後のタイミングであって、ステップS48の処理による割込み初期設定を行うより前のタイミングにて、乱数回路509A、509Bに乱数最大値を設定することにより、ユーザプログラム(ソフトウェア)で乱数の発生を開始させるようにしている。ここで、ユーザプログラム(ソフトウェア)で乱数の発生を開始させるタイミングは、パチンコ遊技機1の仕様などに基づいて、任意に設定されればよい。例えば、ステップS26の処理による電源断信号の判定を行うより前のタイミングにて、ステップS44〜S46の処理を実行して乱数回路509A、509Bを起動させ、乱数の発生を開始させてもよい。あるいは、ステップS26の処理による電源断信号の判定よりも後のタイミングであって、ステップS32の処理によるRAM507へのアクセス許可を行うより前のタイミングにて、ステップS44〜S46の処理を実行して乱数回路509A、509Bを起動させ、乱数の発生を開始させてもよい。あるいは、ステップS32の処理によるRAM507へのアクセス許可よりも後のタイミングであって、ステップS33〜S35の処理による復旧判定より前のタイミングにて、ステップS44〜S46の処理を実行して乱数回路509A、509Bを起動させ、乱数の発生を開始させてもよい。あるいは、ステップS48の処理による割込み初期設定よりも後のタイミングにて、ステップS44〜S46の処理を実行して乱数回路509A、509Bを起動させ、乱数の発生を開始させてもよい。
図29は、図27のステップS52にて実行されるメイン側電源断処理の一例を示すフローチャートである。図29に示すメイン側電源断処理において、遊技制御用マイクロコンピュータ100では、まず、CPU505が割込禁止に設定する(ステップS151)。続いて、例えばCPU505が遊技制御用マイクロコンピュータ100に設けられた出力ポートの所定ビットにクリアデータをセットするなどして、ソレノイド81、82の駆動制御に関する設定を初期化する(ステップS152)。このときには、出力ポートの所定ビット以外にも、クリアすべき出力ポートにはクリアデータを設定するようにしてもよい。ステップS152の処理を実行した後には、例えばRAM507の特定領域における記憶データを用いてチェックサムを算出するなどして、チェックデータの作成を行うとともに(ステップS153)、遊技制御フラグ設定部に設けられたメインバックアップフラグをオン状態にセットする(ステップS154)。
一例として、ステップS153の処理では、RAM507における所定領域の先頭アドレスをチェックサム算出開始アドレスに設定し、その所定領域の最終アドレスに対応してチェックサム算出回数を設定する。こうしたチェックサム算出開始アドレスとチェックサム算出回数の設定に用いられるアドレスで特定されるRAM507の所定領域は、電力供給停止時でも内容が保存されるべき記憶領域として予め定められた内容保存領域であればよい。そして、この内容保存領域における記憶データを順次に読み出して排他的論理和を演算する。例えば、チェックサム算出開始アドレスをポインタにセットした後、RAM507においてポインタが指すアドレスの記憶データを読み出して、初期値が「00」であるチェックサムデータとの排他的論理和を演算した上で、演算結果を新たなチェックサムデータとしてストアする。このときには、ポインタの値を1加算するとともに、チェックサム算出回数を1減算する。続いて、チェックサム算出回数が「0」以外の値であれば、さらにポインタが指すアドレスの記憶データを読み出して、チェックサムデータとの排他的論理和を演算する処理や、ポインタの値を1加算してチェックサム算出回数を1減算する処理を、チェックサム算出回数が「0」になるまで繰り返し実行すればよい。チェックサム算出回数が「0」になったときには、チェックサムデータの各ビット値を反転して、得られた値をメインチェックサムバッファにストアして記憶させればよい。こうしてメインチェックサムバッファに記憶されたデータは、電源投入時にチェックされるパリティデータとして使用される。
その後、遊技制御用マイクロコンピュータ100では、例えばCPU505が所定のRAMアクセスレジスタにアクセス禁止値を設定することなどにより、以後、RAM507へのアクセスを禁止してから(ステップS155)、メイン側電源断処理を終了する。電源電圧が低下していくときには、CPU505の動作などに暴走が生じることや、各種信号線における信号レベル(電圧レベル)が不安定になることなどにより、RAM507の記憶内容が誤って変更される可能性がある。そこで、ステップS155の処理によりRAM507へのアクセスを禁止した状態に設定することで、RAM507に設けられたバックアップ用の記憶領域などにおける記憶内容の誤った変更(破損)を防止できる。
こうしたメイン側電源断処理が実行されたとき、または図27に示すステップS53の処理を実行した後には、乱数ラッチフラグをクリアするための処理が実行されてもよい。例えば、図21(A)に示す乱数ハードラッチフラグレジスタRHFに格納されるハードラッチフラグデータRL00HF〜RL03HFのうち、いずれかのビット値が“1”であるか否かを判定し、ビット値が“1”であるものがある場合には、その乱数ラッチフラグに対応するハードラッチ乱数値レジスタ559A、559Bの読み出しを行うことにより、ハードラッチフラグデータRL00HF〜RL03HFのビット値をいずれも“0”にクリアして、乱数ラッチフラグをオフ状態にすればよい。これにより、図20(A)および(B)に示すハードラッチ選択レジスタRL0LSのビット番号[3]におけるビット値が“0”であり、格納値の読出しがハードラッチ乱数値の取込条件となる場合でも、ハードラッチ乱数値レジスタ559A、559Bに新たな数値データの格納が許可された状態に設定できる。なお、ハードラッチフラグデータRL00HF〜RL03HFにおけるビット値にかかわらず、ハードラッチ乱数値レジスタ559A、559Bの読み出しを行うようにしてもよい。
このような乱数ラッチフラグをクリアするための処理は、電源断信号がオン状態となることによる電源電圧の低下時に実行されるものに限定されない。例えば、電力供給が開始されたことに対応して実行される図26および図27に示す遊技制御メイン処理において、ステップS26の処理による電源断信号の判定や、ステップS32の処理によるRAM507へのアクセス許可、ステップS33〜S35の処理による復旧判定、ステップS44〜S46の処理による乱数の発生開始設定、ステップS48の処理による割込み初期設定のいずれかに伴うタイミングといった、ユーザプログラム(ソフトウェア)で予め定められた任意のタイミングにて、実行されるものであってもよい。
図26および図27に示す遊技制御メイン処理では、ステップS49の処理により割込許可状態に設定するより前に、主基板11に設置された遊技開始スイッチ31から伝送されるスイッチ信号の信号状態などに基づき、遊技開始スイッチ31がオン操作されたか否かを判定するようにしてもよい。この場合には、遊技開始スイッチ35から伝送されるスイッチ信号を複数回チェックし、連続してオン状態となったときに、遊技開始スイッチ31がオン操作されたと判定してもよい。また、遊技開始スイッチ31のオン操作をチェックする処理は、例えばステップS39〜S42の処理が実行された場合のように、復旧のない初期状態からのスタート時(コールドスタート時)に限り実行し、例えばステップS36〜S38の処理が実行された場合のように、電断前の遊技状態に復旧させるスタート時(ホットスタート時)には遊技開始スイッチ31の操作に関わりなく、例えば遊技制御用タイマ割込み処理といった、遊技の進行を制御する処理に進めるようにしてもよい。ここで、遊技制御用マイクロコンピュータ100が備えるRAM507にて所定領域(遊技制御カウンタ設定部など)に設けられたランダムカウンタがバックアップ電源によりバックアップされている場合には、ホットスタート時であれば電断前のランダムカウンタにおける格納データを用いて乱数値となる数値データの更新を開始するので、パチンコ遊技機1の動作開始タイミングからランダムカウンタに格納された乱数値を特定することは困難になる。これに対して、コールドスタート時には、例えばステップS39の処理でランダムカウンタがクリア(初期化)されてしまうことなどにより、一定の初期値(例えば「0」など)から乱数値の更新が開始され、パチンコ遊技機1の動作開始タイミングからランダムカウンタに格納された乱数値が特定されてしまう可能性がある。
そこで、コールドスタート時には遊技開始スイッチ31がオン操作されるまで待機させ、パチンコ遊技機1の動作開始タイミングからランダムカウンタに格納された乱数値が特定されることを困難にする。これにより、特に大当り判定用の乱数値(例えば特図表示結果判定用の乱数値MR1)をソフトウェアで更新するような場合に、いわゆる「ぶら下げ基板」を接続してパチンコ遊技機1の動作開始タイミングから所定時間が経過したタイミングで不正信号が入力されても、不正な大当り遊技状態の発生を防止できる。また、遊技開始スイッチ31がオン操作されていないと判定したときには、遊技用乱数更新処理を実行して、ランダムカウンタに格納された乱数値をソフトウェアにより更新するようにしてもよい。これにより、遊技開始スイッチ31のオン操作がなされたタイミングからの経過時間に加えて、パチンコ遊技機1の動作開始タイミングから遊技開始スイッチ31のオン操作がなされるまでの経過時間も特定できなければ、たとえコールドスタート時でもランダムカウンタに格納された乱数値を特定することは困難になり、狙い撃ちや不正信号の入力などにより不正に大当り遊技状態を発生させるなどの行為を、確実に防止することができる。
ステップS49の処理が実行されることにより割込み許可状態となった後、例えばタイマ回路508や乱数回路509A、509B、あるいはシリアル通信回路511の一部または全部などにて同時に複数のマスカブル割込み要因が生じたときには、割込み初期設定KIISのビット番号[2−0]におけるビット値による指定に基づき、割込みコントローラ504Bによって優先順位の高い割込み要因が受け付けられる。割込みコントローラ504Bが割込み要因を受け付けたときには、例えばCPU505が備えるIクラス割込み(IRQ)端子などに対して、オン状態の割込み要求信号を出力する。CPU505にてIRQ端子にオン状態の割込み要求信号が入力されたときには、例えば内部レジスタの格納データを確認した結果などに基づき、発生した割込み要因を特定し、特定された割込み要因に対応するベクタアドレスを先頭アドレスとするプログラムを実行することにより、各割込み要因に基づく割込み処理を開始することができる。
シリアル通信回路511が備える第1チャネル送受信回路による通信データの受信中に、オーバーランエラー、ブレークコードエラー、フレーミングエラー、パリティエラーという、4種類のエラーのいずれかが発生した場合には、第1チャネル受信割込みが発生する。このときには、CPU505が所定のシリアル通信エラー割込み処理を実行してもよい。このシリアル通信エラー割込み処理では、例えば所定の第1チャネル通信設定レジスタにおける所定のビット番号と、第2チャネル通信設定レジスタにおける所定のビット番号とに対応したビット値を、いずれも“0”に設定することなどにより、シリアル通信回路511における送信機能と受信機能をいずれも使用しないように設定すればよい。ここで、第1チャネル通信設定レジスタや第2チャネル通信設定レジスタは、遊技制御用マイクロコンピュータ100の内蔵レジスタに含まれるものであればよい。また、第1チャネル送受信回路による通信データの受信中にエラーが発生したときには、払出モータ51を含む払出装置による遊技球の払出を禁止する制御を行うようにしてもよい。これにより、通信データの受信エラーといった異常が発生したときに、賞球となる遊技球の過剰な払出を防止することができる。
遊技制御用マイクロコンピュータ100では、例えば割込みコントローラ504Bがタイマ回路508からの割込み要求を受け付けたことなどに基づき、CPU505が図30のフローチャートに示す遊技制御用タイマ割込み処理を実行する。図30に示す遊技制御用タイマ割込み処理において、CPU505は、まず、割込み禁止状態としてから、所定のスイッチ処理を実行することにより、スイッチ回路114を介して遊技球検出用の各スイッチ21、22A、22B、23などから入力される検出信号(入賞検出信号)の状態を判定する(ステップS91)。一例として、スイッチ処理では、各スイッチ21、22A、22B、23などからの検出信号においてオン状態が所定時間(例えば4ミリ秒)継続したか否かを判定し、継続したと判定された場合には、RAM507の所定領域(遊技制御バッファ設定部など)に設けられたスイッチオンバッファにおいて、オン状態を検出したスイッチと対応付けられたビット値が“1”に設定されればよい。
ステップS91におけるスイッチ処理に続いて、所定のメイン側エラー処理を実行することにより、パチンコ遊技機1の異常診断を行い、その診断結果に応じて必要ならば警告を発生可能とする(ステップS92)。例えば、メイン側エラー処理では、賞球過多や賞球不足、その他の動作エラーが発生した場合に対応して、異常動作の発生を報知するための設定などが行われてもよい。この後、所定の情報出力処理を実行することにより、例えばパチンコ遊技機1の外部に設置されたホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する(ステップS93)。
情報出力処理に続いて、遊技用乱数更新処理を実行する(ステップS94)。この後、CPU505は、特別図柄プロセス処理を実行する(ステップS95)。特別図柄プロセス処理では、RAM507の所定領域(遊技制御フラグ設定部など)に設けられた特図プロセスフラグの値をパチンコ遊技機1における遊技の進行状況に応じて更新し、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bにおける表示動作の制御や特別可変入賞球装置7における大入賞口の開閉動作設定などを所定の手順で行うために、各種の処理が選択されて実行される。
特別図柄プロセス処理に続いて、普通図柄プロセス処理が実行される(ステップS96)。CPU505は、普通図柄プロセス処理を実行することにより、普通図柄表示器20における表示動作(例えばセグメントLEDの点灯、消灯など)を制御して、普通図柄の可変表示や普通可変入賞球装置6Bにおける可動翼片の傾動動作設定などを可能にする。普通図柄プロセス処理を実行した後、CPU505は、例えばステップS91におけるスイッチ処理の実行結果などに基づき、入賞検出信号の入力に応じて賞球個数の設定などを行う賞球処理を実行する(ステップS97)。賞球処理に続いて、メイン側通信制御処理を実行することにより、主基板11から演出制御基板12や払出制御基板15などのサブ側の制御基板に向けて制御コマンドを送信したり、払出制御基板15から伝送された制御コマンドを受信したりするための通信制御を行う(ステップS98)。
一例として、メイン側通信制御処理では、遊技制御バッファ設定部に設けられた送信コマンドバッファに含まれる払出用送信コマンドバッファの記憶データによって指定されたコマンド送信テーブルにおける設定に対応して、シリアル通信回路511が備える第1チャネル送受信回路に送信動作の指示を送ることなどにより、払出制御コマンドの伝送を可能にする。また、遊技制御バッファ設定部などに設けられた払出用受信コマンドバッファの記憶内容を確認して受信コマンドが格納されているか否かを判定し、格納されているときには、その受信コマンドを読み出す。なお、払出用受信コマンドバッファに対する受信コマンドの格納は、シリアル通信回路511にて第1チャネル送受信回路により払出通知コマンドとなる通信データを受信したことに応じて発生する第1チャネル受信割込みに基づいて実行される割込み処理により、行われるようにすればよい。他の一例として、メイン側通信制御処理では、送信コマンドバッファに含まれる演出用送信コマンドバッファの記憶データによって指定されたコマンド送信テーブルにおける設定に対応して、シリアル通信回路511が備える第2チャネル送信回路に送信動作の指示を送ることなどにより、演出制御コマンドの伝送を可能にする。こうしたメイン側通信制御処理を実行した後には、割込み許可状態としてから、遊技制御用タイマ割込み処理を終了する。
図27のステップS50や図30のステップS94にて実行される遊技用乱数更新処理では、例えば遊技制御カウンタ設定部が備えるランダムカウンタの所定領域における記憶データを更新することなどにより、大当り種別決定用の乱数値MR2を1加算すればよい。これにより、大当り種別決定用の乱数値MR2について、遊技用乱数更新処理が実行される毎に1ずつ加算するように更新する。また、遊技用乱数更新処理では、遊技用乱数となる乱数値MR1〜MR5を示す数値データのうち、乱数値MR3〜MR5を示す数値データを順次に更新対象とする乱数値に設定する。ここで、例えば乱数値MR3〜MR5については、加算値や加算判定値、最大判定値が定められてもよい。一例として、変動パターン種別決定用の乱数値MR3に対応して、加算値の範囲が「0」〜「7」、加算判定値が「8」、最大判定値が「242」に定められていればよい。変動パターン決定用の乱数値MR4に対応して、加算値の範囲が「0」〜「7」、加算判定値が「8」、最大判定値が「998」に定められていればよい。
加算値は、1回のタイマ割込みなどに対応して各乱数値に加算する値であり、その値は遊技用乱数更新処理が実行されるごとに異ならせることができればよい。例えば、加算値は、加算値決定用の乱数値となる数値データなどに基づいて求められるもので、一時的な変数として加算値を記憶するための領域がRAM507などに設けられていればよい。加算判定値は、加算値決定用の乱数値との比較により、各乱数値に対応した加算値を取得するために用いられる値である。より具体的には、加算値決定用の乱数値が各乱数値に対応した加算値の初期値として読み出された後、現在の加算値が加算判定値よりも小さくなったと判定されるまで、現在の加算値から加算判定値を減算した値を、新たな加算値として更新していく。乱数判定値は、最終的に求められた加算値を加算したことによる更新後の各乱数値が取り得る値の範囲内であるかを判定するために用いられる値である。そして、更新後の各乱数値が対応する乱数判定値を超えているときには、更新後の乱数値から乱数判定値を減算した値が、新たな乱数値として設定される。なお、例えば乱数値MR2を示す数値データは、遊技制御用マイクロコンピュータ100にてタイマ割込みが発生する毎に、1ずつ加算するように更新されてもよい。
遊技用乱数更新処理では、加算値決定用の乱数値を示す数値データを読み出し、その読出値が更新対象となる乱数値ごとに定められた加算判定値未満であるか否かを判定する。そして、加算判定値未満であれば、読出値を加算値に設定する。これに対して、加算判定値以上であれば、読出値から加算判定値を減算した値を、加算値に設定する。その後、更新対象となる乱数値に加算値を加算して、加算後乱数値とする。このときには、加算後乱数値が、更新対象となる乱数値ごとに定められた最大判定値未満であるか否かを判定する。最大判定値未満であれば、加算後乱数値を更新後乱数値に設定する。これに対して、最大判定値以上であれば、加算後乱数値から最大判定値を減算した値を、更新後乱数値に設定する。こうして設定された更新後乱数値を、ランダムカウンタにて更新対象となる乱数値を格納する所定領域にセットすることで、乱数値の更新が完了する。
図31は、特別図柄プロセス処理として、図30に示すステップS95にて実行される処理の一例を示すフローチャートである。この特別図柄プロセス処理において、CPU505は、まず、始動入賞判定処理を実行する(ステップS131)。図32は、ステップS131にて実行される始動入賞判定処理の一例を示すフローチャートである。
図32に示す始動入賞判定処理を開始すると、CPU505は、まず、第1始動口スイッチ22Aにおける遊技球の検出状態をチェックする(ステップS201)。一例として、ステップS201の処理では、RAM507の所定領域(遊技制御バッファ設定部など)に設けられた所定のスイッチオンバッファにおける格納値をロードして、第1始動口スイッチ22Aと対応付けられたビット値が“0”であるか“1”であるかを特定する。このとき、チェックしたビット値が“0”であれば第1始動口スイッチ22Aは遊技球を検出しておらずオフ状態であることを示す一方、“1”であれば第1始動口スイッチ22Aは遊技球を検出したことによりオン状態であることを示す。他の一例として、ステップS201の処理では、例えばPIP510に含まれる入力ポートPI0といった所定ポートの入力状態を確認することにより、始動口スイッチ22Aから伝送される検出信号がオン状態であるか否かを特定する。このとき、検出信号がオフ状態であれば第1始動口スイッチ22Aは遊技球を検出しておらずオフ状態であることを示す一方、オン状態であれば第1始動口スイッチ22Aは遊技球を検出したことによりオン状態であることを示す。この場合、所定ポートの入力状態を複数回(例えば2回)繰り返し確認することにより、連続して検出信号がオン状態であるときに、第1始動口スイッチ22Aがオン状態であることが特定されてもよい。ステップS201の処理に続いて、所定の第1始動口入賞テーブルを選択して、使用テーブルにセットする(ステップS202)。
第1始動口入賞テーブルは、第1保留記憶カウンタアドレスやハードラッチ乱数値レジスタ559Aのアドレス、第1特図保留記憶部アドレス、第1始動入賞指定コマンドテーブルアドレス、始動データ(第1)などを指定するテーブルデータから構成されている。第1保留記憶カウンタアドレスは、第1保留記憶カウンタに割り当てられたアドレスである。第1保留記憶カウンタは、RAM507の所定領域(遊技制御カウンタ設定部など)に設けられて第1特図保留記憶数をカウントする。ハードラッチ乱数値レジスタ559Aのアドレスは、図7(B)に示す内蔵レジスタエリアにおいてハードラッチ乱数値レジスタ559Aに割り当てられたアドレス(例えば先頭アドレス)である。第1特図保留記憶部アドレスは、第1特図保留記憶部に割り当てられたアドレス(例えば先頭アドレス)である。第1始動入賞指定コマンドテーブルアドレスは、ROM506に記憶される第1始動入賞指定コマンドテーブルのアドレス(例えば先頭アドレス)である。始動データ(第1)は、始動データ記憶部に記憶されて第1始動入賞口を遊技球が通過(進入)したことを示す「第1」の始動データである。ステップS202の処理では、ROM506における第1始動口入賞テーブルの記憶アドレス(先頭アドレス)を、所定のテーブルポインタに格納することで、第1始動口入賞テーブルを使用テーブルとして参照可能に設定すればよい。以下、各種のテーブルを選択して使用テーブルにセットする処理において、同様の設定が行われればよい。
ステップS202の処理に続いて、ステップS201でのチェック結果に基づいて、第1始動口スイッチ22Aがオン状態であるか否かを判定する(ステップS203)。このとき、第1始動口スイッチ22Aがオン状態であれば(ステップS203;Yes)、所定の始動口通過時処理を実行する(ステップS204)。また、ステップS203にて第1始動口スイッチ22Aがオフ状態であると判定されたときや(ステップS203;No)、ステップS204にて始動口通過時処理を実行した後には、第2始動口スイッチ22Bにおける遊技球の検出状態をチェックする(ステップS205)。ステップS205の処理は、ステップS201の処理を第2始動口スイッチ22Bに適合させたものであればよい。続いて、所定の第2始動口入賞テーブルを選択して、使用テーブルにセットする(ステップS206)。
第2始動口入賞テーブルは、第2保留記憶カウンタアドレスやハードラッチ乱数値レジスタ559Bのアドレス、第2特図保留記憶部アドレス、第2始動入賞指定コマンドテーブルアドレス、始動データ(第2)などを指定するテーブルデータから構成されている。第2保留記憶カウンタアドレスは、第2保留記憶カウンタに割り当てられたアドレスである。第2保留記憶カウンタは、RAM507の所定領域(遊技制御カウンタ設定部など)に設けられて第2特図保留記憶数をカウントする。ハードラッチ乱数値レジスタ559Bのアドレスは、図7(B)に示す内蔵レジスタエリアにおいてハードラッチ乱数値レジスタ559Bに割り当てられたアドレスである。第2特図保留記憶部アドレスは、第2特図保留記憶部に割り当てられたアドレスである。第2始動入賞指定コマンドテーブルアドレスは、ROM506に記憶される第2始動入賞指定コマンドテーブルのアドレスである。始動データ(第2)は、始動データ記憶部に記憶されて第2始動入賞口を遊技球が通過(進入)したことを示す「第2」の始動データである。
また、ステップS205でのチェック結果に基づいて、第2始動口スイッチ22Bがオン状態であるか否かを判定する(ステップS207)。そして、第2始動口スイッチ22Bがオン状態であれば(ステップS207;Yes)、ステップS204と同様に始動口通過時処理を実行してから(ステップS208)、始動入賞判定処理を終了する。これに対して、ステップS207にて第2始動口スイッチ22Bがオフ状態であると判定されたときには、ステップS207の始動口通過時処理を実行せずに、始動入賞判定処理を終了する。
ステップS204やステップS208において実行される始動口通過時処理は、共通の処理ルーチンとして、予め用意されたユーザプログラム(ゲーム制御用の遊技制御処理プログラム)に含まれる制御コードにより実現される処理であればよい。この始動口通過時処理では、ステップS202の処理でセットされた第1始動口入賞テーブルを使用するか、ステップS206の処理でセットされた第2始動口入賞テーブルを使用するかに応じて、第1始動入賞口を遊技球が通過(進入)した場合に対応した各種処理と、第2始動入賞口を遊技球が通過(進入)した場合に対応した各種処理とのうち、いずれかを実行することができる。
図33は、始動口通過時処理として、図32のステップS204やステップS208にて実行される処理の一例を示すフローチャートである。この始動口通過時処理において、CPU505は、まず、遊技球が通過(進入)した始動入賞口に対応する保留記憶カウント値を読み出す(ステップS501)。すなわち、遊技球が第1始動入賞口を通過(進入)した場合には第1保留記憶カウント値を読み出す一方、遊技球が第2始動入賞口を通過(進入)した場合には第2保留記憶カウント値を読み出す。このときには、例えば図32に示すステップS202の処理でセットされた第1始動口入賞テーブルで指定される第1保留記憶カウンタアドレス、あるいは、ステップS206の処理でセットされた第2始動口入賞テーブルで指定される第2保留記憶カウンタアドレスに対応して、保留記憶カウント値の読出元となるRAM507の記憶アドレスなどを特定できればよい。
続いて、ステップS501の処理における読出値が、予め定められた上限値(例えば「4」など)以上であるか否かを判定する(ステップS502)。このとき、上限値未満であれば(ステップS502;No)、ステップS501の処理で読み出した保留記憶カウント値を1加算するように更新する(ステップS503)。また、遊技球が通過(進入)した始動入賞口に対応する特図保留記憶部における保留データの記憶位置を特定する(ステップS504)。すなわち、遊技球が第1始動入賞口を通過(進入)した場合には、第1特図保留記憶部における保留データの記憶位置を特定する一方、遊技球が第2始動入賞口を通過(進入)した場合には、第2特図保留記憶部における保留データの記憶位置を特定する。このときには、例えば図32に示すステップS202の処理でセットされた第1始動口入賞テーブルで指定される第1特図保留記憶部アドレス、あるいは、ステップS206の処理でセットされた第2始動口入賞テーブルで指定される第2特図保留記憶部アドレスに、ステップS501の処理などで読み出した保留記憶カウント値に対応するアドレス加算値を加算することなどにより、保留データの記憶位置となる第1特図保留記憶部や第2特図保留記憶部の記憶アドレスなどを特定できればよい。
ステップS504の処理を実行した後には、特図表示結果決定用の乱数値MR1となる数値データの読出元となる乱数値レジスタを特定する(ステップS505)。すなわち、遊技球が第1始動入賞口を通過(進入)した場合には、ハードラッチ乱数値レジスタ559Aを数値データの読出元とする一方、遊技球が第2始動入賞口を通過(進入)した場合には、ハードラッチ乱数値レジスタ559Bを数値データの読出元とする。このときには、例えば図32に示すステップS202の処理でセットされた第1始動口入賞テーブルで指定されるハードラッチ乱数値レジスタ559Aのアドレス、あるいは、ステップS206の処理でセットされた第2始動口入賞テーブルで指定されるハードラッチ乱数値レジスタ559Bのアドレスに対応して、数値データの読出元となる乱数値レジスタのアドレスなどを特定できればよい。
そして、ステップS505にて特定された乱数値レジスタを読み出すことなどにより、乱数値となる数値データを抽出する(ステップS506)。すなわち、ステップS505の処理でハードラッチ乱数値レジスタ559Aが読出元とされた場合には、乱数回路509Aが備えるハードラッチ乱数値レジスタ559Aから、数値データを読み出して抽出する。その一方で、ステップS505の処理でハードラッチ乱数値レジスタ559Bが読出元とされた場合には、乱数回路509Aが備えるハードラッチ乱数値レジスタ559Bから、数値データを読み出して抽出する。このときには、数値データが読み出されたハードラッチ乱数値レジスタ559Aあるいはハードラッチ乱数値レジスタ559Bに対応する乱数ラッチフラグがオフ状態になる。すなわち、ステップS505の処理でハードラッチ乱数値レジスタ559Aが読出元とされた場合には、ステップS506の処理による数値データの読み出しによりハードラッチフラグデータRL00HF、RL01HFのビット値が“1”から“0”へと更新され、ハードラッチ乱数値レジスタ559Aと対応付けられた乱数ラッチフラグがオフ状態となる。その一方で、ステップS505の処理でハードラッチ乱数値レジスタ559Bが読出元とされた場合には、ステップS506の処理による数値データの読み出しによりハードラッチフラグデータRL02HF、RL03HFのビット値が“1”から“0”へと変更され、ハードラッチ乱数値レジスタ559Bと対応付けられた乱数ラッチフラグがオフ状態となる。また、ステップS505の処理では、RAM507の所定領域(遊技制御カウンタ設定部など)に設けられたランダムカウンタなどから、大当り種別決定用の乱数値MR2を示す数値データを読み出して抽出する。こうして読み出された数値データに基づき、特図表示結果決定用の乱数値MR1を示す数値データや大当り種別決定用の乱数値MR2を示す数値データが、保留データとして、ステップS504の処理で特定された特図保留記憶部の記憶位置に記憶される(ステップS507)。
なお、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bから読み出された数値データは、そのまま特図表示結果決定用の乱数値MR1として第1特図保留記憶部や第2特図保留記憶部に記憶されてもよいし、所定の加工処理を施してから記憶されるようにしてもよい。一例として、乱数回路509から抽出された数値データは、CPU505が有する16ビットの汎用レジスタなどに一旦格納される。続いて、CPU505に内蔵されたリフレッシュレジスタの格納値であるリフレッシュレジスタ値を、加工用の乱数値となる数値データとして読み出す。このときには、汎用レジスタにおける上位バイトにリフレッシュレジスタ値を加算する一方で、下位バイトはそのままにしておいてもよい。ここで、リフレッシュレジスタ値を加算することに代えて、減算、論理和、論理積といった、所定の演算処理を実行するようにしてもよい。あるいは、リフレッシュレジスタ値を汎用レジスタにおける下位バイトに加算などするようにしてもよい。また、乱数回路509Aなどから抽出された数値データの上位バイトと下位バイトとを入れ替えて、汎用レジスタにおける上位バイトや下位バイトとして格納してもよい。さらに、汎用レジスタにおける上位バイトもしくは下位バイトにリフレッシュレジスタ値を加算などした後に、あるいは、汎用レジスタにおける上位バイトや下位バイトに加算などの演算処理を行うことなく、上位バイトと下位バイトとを入れ替えるようにしてもよい。乱数回路509Aなどから抽出された数値データの上位バイトと下位バイトとのうち、特定のビットのデータを、他のビットのデータと入れ替えるようにしてもよい。この場合には、例えば乱数回路509Aにおけるハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bと、汎用レジスタの上位バイトや下位バイトとを接続するバスにおいて、特定のビットのデータを他のビットのデータと入れ替えるように、配線をクロスさせるなどすればよい。その後、CPU505は、汎用レジスタの格納値と所定の論理値(例えば「FFFFH」など)とを論理積演算して、あるいは、汎用レジスタの格納値をそのまま出力して、RAM507の所定領域に格納することなどにより、16ビットの乱数値MR1を示す数値データを設定すればよい。なお、例えば14ビットの乱数値を示す数値データを設定する場合などには、汎用レジスタの格納値と「7F7FH」とを論理積演算するなどして、14ビット値を取得できるようにすればよい。また、論理積演算に代えて、論理和演算が実行されてもよい。このとき、乱数値MR1を示す数値データが格納されるRAM507の領域は、例えば遊技制御カウンタ設定部に設けられたランダムカウンタなどに含まれていればよい。あるいは、第1特図保留記憶部や第2特図保留記憶部に汎用レジスタの格納値を出力して、乱数値MR1を示す保留データとしてもよい。
また、汎用レジスタの格納値に基づき、加算値決定用の乱数値を示す数値データを設定してもよい。一例として、加算値決定用の乱数値を示す数値データが「0」〜「7」の範囲の値をとる場合には、汎用レジスタの格納値と「C0C0H」などとを論理積演算して、RAM507の所定領域に格納することなどにより、4ビットの乱数値を示す数値データを設定すればよい。
ステップS507の処理に続いて、演出制御基板12に対して始動入賞指定コマンドを送信するための設定が行われる(ステップS508)。すなわち、遊技球が第1始動入賞口を通過(進入)した場合には、第1始動入賞指定コマンドの送信設定が行われる一方、遊技球が第2始動入賞口を通過(進入)した場合には、第2始動入賞指定コマンドの送信設定が行われる。このときには、例えば図32に示すステップS202の処理でセットされた第1始動口入賞テーブルで指定される第1始動入賞指定コマンドテーブルアドレス、あるいは、ステップS206の処理でセットされた第2始動口入賞テーブルで指定される第2始動入賞指定コマンドテーブルアドレスを、遊技制御バッファ設定部に設けられた送信コマンドバッファにおいて送信コマンドポインタが指定するバッファ領域にセットすればよい。こうして設定された始動入賞指定コマンドは、例えば特別図柄プロセス処理が終了した後に図30に示すステップS98のメイン側通信制御処理が実行されることなどにより、主基板11から演出制御基板12に対して伝送される。以下、各種の制御コマンドを演出制御基板12などのサブ側の制御基板に送信するための設定を行う処理において、同様の設定が行われればよい。
ステップS508の処理を実行した後には、始動データを記憶する(ステップS510)。すなわち、遊技球が第1始動入賞口を通過(進入)した場合には、第1始動入賞口への入賞に対応した「第1」の始動データを、始動データ記憶部における空きエントリの先頭にセットする。その一方で、遊技球が第2始動入賞口を通過(進入)した場合には、第2始動入賞口への入賞に対応した「第2」の始動データを、始動データ記憶部における空きエントリの先頭にセットする。そして、例えばROM506における保留記憶数通知コマンドテーブルの記憶アドレスを送信コマンドバッファにおいて送信コマンドポインタが指定するバッファ領域にセットすることなどにより、演出制御基板12に対して保留記憶数通知コマンドを送信するための設定を行ってから(ステップS511)、始動口通過時処理を終了する。
また、ステップS502にて読出値が上限値以上であると判定されたときには(ステップS502;Yes)、ハードラッチ乱数値レジスタ559A、559Bの読み出しにより乱数ラッチフラグをクリアしてから(ステップS512)、始動口通過時処理を終了する。ここで、ステップS512の処理では、遊技球が第1始動入賞口を通過(進入)した場合に対応して、ハードラッチ乱数値レジスタ559Aに格納された数値データを読み出す一方、遊技球が第2始動入賞口を通過(進入)した場合に対応して、ハードラッチ乱数値レジスタ559Bに格納された数値データを読み出す。このときには、ステップS505の処理と同様に、例えば図32に示すステップS202の処理でセットされた第1始動口入賞テーブルで指定されるハードラッチ乱数値レジスタ559Aアドレス、あるいは、ステップS206の処理でセットされた第2始動口入賞テーブルで指定されるハードラッチ乱数値レジスタ559Bアドレスに対応して、数値データの読出元となる乱数値レジスタのアドレスなどを特定できればよい。
第1始動入賞信号SS1や第2始動入賞信号SS2が、第1始動口スイッチ22Aや第2始動口スイッチ22BからCPU505などを介することなく乱数回路509Aに入力される場合には、第1特図保留記憶部や第2特図保留記憶部における保留データの記憶数にかかわらず、第1始動入賞信号SS1や第2始動入賞信号SS2の入力に対応して、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに乱数値となる数値データが格納されることになる。このときには、例えば図20(A)および(B)に示すハードラッチ選択レジスタRL0LSのビット番号[3]におけるビット値が“0”である場合に、数値データが格納されたハードラッチ乱数値レジスタに対応する乱数ラッチフラグがオン状態となり新たな数値データの格納が制限される。したがって、保留データの記憶数が上限値以上である場合に、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに格納された数値データを読み出さずに放置すると、第1始動入賞口や第2始動入賞口を新たな遊技球が通過(進入)したときに、この遊技球の通過(進入)に対応した新たな数値データをハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに取り込んで格納することができず、先に通過(進入)した遊技球に対応して格納された数値データが読み出されてしまい、正確な乱数値を取得できなくなることがある。そこで、保留データの記憶数が上限値に達している場合でも、ステップS512の処理を実行して乱数値レジスタの読み出しにより乱数ラッチフラグをクリアすることで、新たな遊技球の通過(進入)に対応して正確な乱数値となる数値データの取得が可能になる。なお、ステップS512の処理によりハードラッチ乱数値レジスタ559Aあるいはハードラッチ乱数値レジスタ559Bから読み出された数値データは、特図表示結果を「大当り」とするか否かの判定処理などには使用せず、そのまま破棄(消去)すればよい。
図31のステップS131にて以上のような始動口通過時処理を含んだ始動入賞判定処理が実行された後には、RAM507の所定領域(遊技制御フラグ設定部など)に設けられた特図プロセスフラグの値に応じて、ステップS140〜ステップS150の処理のいずれかを選択して実行する。
ステップS140の特別図柄通常処理は、特図プロセスフラグの値が“0”のときに実行される。この特別図柄通常処理では、第1特図保留記憶部や第2特図保留記憶部に記憶されている保留データの有無などに基づいて、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bによる特図ゲームを開始するか否かの判定が行われる。また、特別図柄通常処理では、特図表示結果判定用の乱数値MR1を示す数値データに基づき、特別図柄や飾り図柄、色図柄などの可変表示結果を「大当り」や「小当り」とするか否かを、その可変表示結果が導出表示される以前に決定(事前決定)する。さらに、特別図柄通常処理では、特図ゲームにおける特別図柄の可変表示結果に対応して、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bによる特図ゲームにおける確定特別図柄(大当り図柄、小当り図柄およびハズレ図柄のいずれか)が設定される。
ステップS141の変動パターン設定処理は、特図プロセスフラグの値が“1”のときに実行される。この変動パターン設定処理には、可変表示結果を「大当り」や「小当り」とするか否かの事前決定結果や、飾り図柄の可変表示状態をリーチ状態とするか否かのリーチ決定結果などに基づいて、変動パターン種別を複数種類のいずれかに決定する処理や、変動パターン種別の決定結果に対応して、変動パターンを複数種類のいずれかに決定する処理などが含まれている。
ステップS142の特別図柄変動処理は、特図プロセスフラグの値が“2”のときに実行される。この特別図柄変動処理には、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bにおいて特別図柄を変動させるための設定を行う処理や、その特別図柄が変動を開始してからの経過時間を計測する処理などが含まれている。例えば、ステップS142にて特別図柄変動処理が実行されるごとに、遊技制御タイマ設定部に設けられた特図変動タイマにおける値(特図変動タイマ値)を1減算あるいは1加算することにより、第1特別図柄表示装置4Aにおける第1特図を用いた特図ゲームであるか、第2特別図柄表示装置4Bにおける第2特図を用いた特図ゲームであるかに関わりなく、共通のタイマによって経過時間の測定が行われる。また、計測された経過時間が変動パターンに対応する特図変動時間に達したか否かの判定も行われる。このように、特別図柄変動処理は、第1特別図柄表示装置4Aにおける第1特図を用いた特図ゲームにおける特別図柄の変動や、第2特別図柄表示装置4Bにおける第2特図を用いた特図ゲームにおける特別図柄の変動を、共通の処理ルーチンによって制御する処理となっている。そして、特別図柄の変動を開始してからの経過時間が特図変動時間に達したときには、特図プロセスフラグの値を“3”に更新する。
ステップS143の特別図柄停止処理は、特図プロセスフラグの値が“3”のときに実行される。この特別図柄停止処理には、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bにて特別図柄の変動を停止させ、特別図柄の可変表示結果となる確定特別図柄を停止表示させるための設定を行う処理が含まれている。そして、遊技制御フラグ設定部に設けられた大当りフラグと小当りフラグのいずれかがオンとなっているか否かの判定などが行われ、大当りフラグがオンである場合には特図プロセスフラグの値を“4”に更新し、小当りフラグがオンである場合には特図プロセスフラグの値を“8”に更新する。また、大当りフラグと小当りフラグがいずれもオフである場合には、特図プロセスフラグの値を“0”に更新する。
ステップS144の大入賞口開放前処理は、特図プロセスフラグの値が“4”のときに実行される。この大入賞口開放前処理には、可変表示結果が「大当り」となったことなどに基づき、大当り遊技状態においてラウンドの実行を開始して大入賞口を開放状態とするための設定を行う処理などが含まれている。このときには、例えば大入賞口開放回数最大値の設定に対応して、大入賞口を開放状態とする期間の上限を設定するようにしてもよい。一例として、大入賞口開放回数最大値が15ラウンド大当り状態に対応した「15」に設定されている場合には、大入賞口を開放状態とする期間の上限を「29秒」に設定する。これに対して、大入賞口開放回数最大値が2ラウンド大当り状態に対応した「2」に設定されている場合には、大入賞口を開放状態とする期間の上限を「0.5秒」に設定する。
ステップS145の大入賞口開放中処理は、特図プロセスフラグの値が“5”のときに実行される。この大入賞口開放中処理には、大入賞口を開放状態としてからの経過時間を計測する処理や、その計測した経過時間やカウントスイッチ23によって検出された遊技球の個数などに基づいて、大入賞口を開放状態から閉鎖状態に戻すタイミングとなったか否かを判定する処理などが含まれている。大入賞口を閉鎖状態から開放状態へと変化させるときには、大入賞口扉用のソレノイド82に対するソレノイド駆動信号の供給を開始させる処理などが実行されればよい。他方、大入賞口を閉鎖状態に戻すときには、大入賞口扉用のソレノイド82に対するソレノイド駆動信号の供給を停止させる処理などが実行されればよい。
ステップS146の大入賞口開放後処理は、特図プロセスフラグの値が“6”のときに実行される。この大入賞口開放後処理には、大入賞口を開放状態とするラウンドの実行回数が大入賞口開放回数最大値に達したか否かを判定する処理や、大入賞口開放回数最大値に達した場合に当り終了指定コマンドを送信するための設定を行う処理などが含まれている。
ステップS147の大当り終了処理は、特図プロセスフラグの値が“7”のときに実行される。この大当り終了処理には、画像表示装置5やスピーカ8L、8R、遊技効果ランプ9といった演出用の電気部品(演出装置)により、大当り遊技状態の終了を報知する演出動作としてのエンディング演出が実行される期間に対応した待ち時間が経過するまで待機する処理や、その大当り遊技状態の終了に対応した各種の設定を行う処理などが含まれている。
ステップS148の小当り開放前処理は、特図プロセスフラグの値が“8”のときに実行される。この小当り開放前処理には、可変表示結果が「小当り」となったことなどに基づき、小当り遊技状態において可変入賞動作の実行を開始して大入賞口を開放状態とするための設定を行う処理などが含まれている。このときには、例えば可変表示結果が「小当り」であることにより大入賞口開放回数最大値が「2」であることに対応して、大入賞口を開放状態とする期間の上限を「0.5秒」に設定すればよい。
ステップS149の小当り開放中処理は、特図プロセスフラグの値が“9”のときに実行される。この小当り開放中処理には、大入賞口を開放状態としてからの経過時間を計測する処理や、その計測した経過時間などに基づいて、大入賞口を開放状態から閉鎖状態に戻すタイミングとなったか否かを判定する処理などが含まれている。
ステップS150の小当り終了処理は、特図プロセスフラグの値が“10”のときに実行される。この小当り終了処理には、画像表示装置5やスピーカ8L、8R、遊技効果ランプ9といった演出用の電気部品(演出装置)により、小当り遊技状態の終了を報知する演出動作が実行される期間に対応した待ち時間が経過するまで待機する処理などが含まれている。ここで、小当り遊技状態が終了するときには、確変フラグや時短フラグの状態を変更しないようにして、小当り遊技状態となる以前のパチンコ遊技機1における遊技状態を継続させる。
図34は、特別図柄通常処理として、図31のステップS140にて実行される処理の一例を示すフローチャートである。この特別図柄通常処理において、CPU505は、まず、例えば始動データ記憶部に有効な始動データの記憶があるか否かを判定することにより、特図ゲームの保留記憶の有無を判定する(ステップS221)。ここで、始動データ記憶部の先頭エントリに「第1」の始動データあるいは「第2」の始動データといった有効な始動データが記憶されていれば、特図ゲームの保留記憶があることを示している。なお、特図ゲームの保留記憶の有無を判定する手法は、始動データ記憶部の記憶内容をチェックするものに限定されない。例えば、遊技制御カウンタ設定部に格納された合計保留記憶カウント値が「0」以外の値であること、あるいは、第1保留記憶カウント値および第2保留記憶カウント値の少なくともいずれか一方が「0」以外の値であることに対応して、特図ゲームの保留記憶があることを特定できるようにしてもよい。
ステップS221にて有効な始動データの記憶があることに対応して、特図ゲームの保留記憶があると判定されたときには(ステップS221;Yes)、始動データ記憶部から始動データを読み出す(ステップS222)。ここでは、始動データ記憶部にて保留番号「1」と関連付けて記憶されている始動データを読み出せばよい。
この実施の形態では、第1始動条件と第2始動条件とを区別することなく、先に成立した始動条件に対応する特図ゲームから順次に実行するものとして説明する。これに対して、例えば第1特図を用いた特図ゲームよりも、第2特図を用いた特図ゲームを優先して実行するようにしてもよい。この場合には、例えばステップS221の処理に代えて、第2保留記憶カウント値が「0」であるか否かを判定する。そして、第2保留記憶カウント値が「0」以外の値であれば、始動データ記憶部から「第2」の始動データが読み出された場合と同様の処理を実行すればよい。これに対して、第2保留記憶カウント値が「0」である場合には、第1保留記憶カウント値が「0」であるか否かを判定し、「0」以外の値であれば、始動データ記憶部から「第1」の始動データが読み出された場合と同様の処理を実行すればよい。このように、第1特図を用いた特図ゲームと第2特図を用いた特図ゲームのいずれか一方を他方より優先して実行する場合には、第1保留記憶カウント値や第2保留記憶カウント値に基づいて変動表示を開始させる特別図柄を決定することができるので、始動データ記憶部の構成は設けられなくてもよい。
あるいは、第1保留記憶カウント値と第2保留記憶カウント値とのうち、いずれの値が大きいかを判定し、カウント値が大きい方に対応する特別図柄を用いた特図ゲームを優先して実行するようにしてもよい。この場合には、第1保留記憶カウント値と第2保留記憶カウント値とを比較して、第1保留記憶カウント値の方が大きい場合には、始動データ記憶部から「第1」の始動データが読み出された場合と同様の処理を実行する一方で、第2保留記憶カウント値の方が大きい場合には、始動データ記憶部から「第2」の始動データが読み出された場合と同様の処理を実行すればよい。また、第1保留記憶カウント値と第2保留記憶カウント値とが一致した場合には、第1特図を用いた特図ゲームを優先して実行してもよいし、第2特図を用いた特図ゲームを優先して実行してもよい。このように、保留記憶カウント値が多い方に対応する特別図柄を用いた特図ゲームを優先して実行することで、無効な始動入賞の発生を低減することができる。
ステップS222の処理を実行した後には、始動データ記憶部にて保留番号「1」より下位のエントリ(例えば保留番号「2」〜「8」に対応するエントリ)に記憶された始動データの記憶内容を、1エントリずつ上位にシフトさせる(ステップS223)。そして、ステップS222にて読み出した始動データの内容が「第1」と「第2」のいずれであるかを判定する(ステップS224)。
ステップS224にて始動データの内容が「第1」であると判定された場合には(ステップS224;第1)、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームを開始する第1開始条件が成立したことに対応して、遊技制御バッファ設定部に記憶される変動特図指定バッファ値を「1」に設定する(ステップS225)。他方、ステップS224にて始動データの内容が「第2」であると判定された場合には(ステップS224;第2)、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームを開始する第2開始条件が成立したことに対応して、変動特図指定バッファ値を「2」に設定する(ステップS226)。
ステップS225、S226の処理のいずれかを実行した後には、ステップS222にて読み出した始動データに応じた特図保留記憶部から、保留データを読み出す(ステップS227)。例えば、始動データが「第1」である場合には、第1特図保留記憶部にて保留番号「1」と関連付けて記憶されている保留データとして、特図表示結果決定用の乱数値MR1を示す数値データと、大当り種別決定用の乱数値MR2を示す数値データとを、それぞれ読み出す。これに対して、始動データが「第2」である場合には、第2特図保留記憶部にて保留番号「1」と関連付けて記憶されている保留データとして、特図表示結果決定用の乱数値MR1を示す数値データと、大当り種別決定用の乱数値MR2を示す数値データとを、それぞれ読み出す。
ステップS227の処理に続いて、始動データに応じた保留記憶数カウント値を1減算するように更新するとともに、始動データに応じた特図保留記憶部にて保留番号「1」より下位のエントリ(例えば保留番号「2」〜「4」に対応するエントリ)に記憶された保留データの記憶内容を、1エントリずつ上位にシフトさせる(ステップS228)。例えば、始動データが「第1」である場合には、第1保留記憶カウント値を1減算するとともに、第1特図保留記憶部における保留データの記憶内容を、1エントリずつ上位にシフトさせる。これに対して、始動データが「第2」である場合には、第2保留記憶カウント値を1減算するとともに、第2特図保留記憶部における保留データの記憶内容を、1エントリずつ上位にシフトさせる。
この後、可変表示結果を「大当り」とするか否かや「小当り」とするか否かを決定するための使用テーブルとして、始動データに応じた特図表示結果決定テーブルを選択してセットする(ステップS229)。例えば、始動データが「第1」であれば第1特図表示結果決定テーブルを使用テーブルとしてセットする一方で、始動データが「第2」であれば第2特図表示結果決定テーブルを使用テーブルとしてセットする。CPU505は、こうしてセットされた特図表示結果決定テーブルを参照することにより、ステップS227にて読み出された保留データに含まれる特図表示結果決定用の乱数値MR1を示す数値データに基づいて、特図表示結果を複数種類のいずれかに決定する(ステップS230)。
第1特図表示結果決定テーブルや第2特図表示結果決定テーブルでは、特図表示結果決定用の乱数値MR1と比較される数値(決定値)が、特図表示結果を「大当り」と「小当り」と「ハズレ」のいずれとするかの決定結果に、割り当てられていればよい。図35(A)は、ステップS230の処理による特図表示結果の決定例を示している。このように、特図表示結果を「大当り」、「小当り」、「ハズレ」のいずれとするかが、特図表示結果決定用の乱数値MR1を示す数値データや特図表示結果決定テーブルを用いて、所定割合で決定されればよい。図35(A)に示す決定例では、確変状態における確変制御の有無に応じて、特図表示結果を「大当り」とするか否かの決定割合を異ならせている。CPU505は、RAM507の所定領域(遊技制御フラグ設定部など)に設けられた確変フラグがオンである場合に、確変制御が行われていると判定すればよい。
図35(A)に示すように、確変状態にて確変制御が行われているときには、通常状態や時短状態にて確変制御が行われていないときよりも高い割合で、特図表示結果が「大当り」に決定される。したがって、例えば図31に示すステップS147の大当り終了処理により、大当り種別が「確変」または「突確」であった場合に対応して確変フラグがオン状態にセットされたことなどに基づいて、確変制御が行われる確変状態であるときには、通常状態や時短状態にて確変制御が行われていないときよりも、特図表示結果が「大当り」になりやすく、大当り遊技状態になりやすい。また、図35(A)に示す決定例では、変動特図が第1特図である場合に、所定割合で特図表示結果が「小当り」に決定される。一方、変動特図が第2特図である場合には、特図表示結果が「小当り」に決定されることがない。変動特図は、始動データにより「第1」であるか「第2」であるかを特定できればよい。
遊技状態が確変状態や時短状態であるときには、高開放制御が行われることにより、第2始動入賞口を遊技球が通過(進入)しやすい有利開放態様で、普通可変入賞装置6Bを第1可変状態(開放状態または拡大開放状態)と第2可変状態(閉鎖状態または通常開放状態)とに変化させることがある。こうした高開放制御が行われているときには、第2始動入賞口を遊技球が通過(進入)したことに基づいて特図表示結果が「小当り」に決定されないように制限することで、遊技の間延びによる遊技興趣の低下を防止できる。なお、変動特図が第2特図である場合には、変動特図が第1特図である場合よりも低い割合で、特図表示結果が「小当り」に決定されることがあってもよい。
その後、CPU505は、ステップS230の処理により決定された特図表示結果が「大当り」であるか否かを判定する(ステップS231)。このとき、「大当り」ではないと判定された場合には(ステップS231;No)、その特図表示結果が「小当り」であるか否かを判定する(ステップS232)。そして、「小当り」であると判定されたときには(ステップS232;Yes)、遊技制御フラグ設定部に設けられた小当りフラグをオン状態にセットする(ステップS233)。
ステップS231にて「大当り」であると判定された場合には(ステップS231;Yes)、遊技制御フラグ設定部に設けられた大当りフラグをオン状態にセットする(ステップS234)。このときには、大当り種別を複数種類のいずれかに決定するための使用テーブルとして所定の大当り種別決定テーブルを選択してセットする(ステップS235)。CPU505は、こうしてセットされた大当り種別決定テーブルを参照することにより、ステップS227にて読み出された保留データに含まれる大当り種別決定用の乱数値MR2を示す数値データに基づいて、大当り種別を「非確変」、「確変」、「突確」といった複数種類のうち、いずれかに決定する(ステップS236)。
図35(B)は、ステップS236の処理による大当り種別の決定例を示している。この決定例では、変動特図が第1特図であるか第2特図であるかに応じて、大当り種別の決定割合を異ならせている。より具体的に、変動特図が第1特図である場合に、所定割合で大当り種別が「突確」に決定される。一方、変動特図が第2特図である場合には、大当り種別が「突確」には決定されない。すなわち、大当り種別が「突確」に決定されるのは、変動特図が第1特図のときだけになる。このように、特図ゲームにて可変表示される特別図柄に応じて、異なる大当り種別に決定されてもよい。また、大当り種別が「確変」に決定される割合は、変動特図が第1特図のときよりも、変動特図が第2特図のときに高くなる。このように、特図ゲームにて可変表示される特別図柄に応じて異なる割合で、所定の大当り種別に決定されてもよい。
遊技状態が確変状態や時短状態であるときには、高開放制御が行われることにより、第2始動入賞口を遊技球が通過(進入)しやすい有利開放態様で、普通可変入賞装置6Bを第1可変状態(開放状態または拡大開放状態)と第2可変状態(閉鎖状態または通常開放状態)とに変化させることがある。こうした高開放制御が行われているときに、第2始動入賞口を遊技球が通過(進入)したことに基づいて特図表示結果が「大当り」に決定された場合には、大当り種別が「突確」に決定されないように制限することで、遊技の間延びによる遊技興趣の低下を防止できる。なお、変動特図が第2特図である場合には、変動特図が第1特図である場合よりも低い割合で、大当り種別が「突確」に決定されることがあってもよい。
こうしてステップS236にて決定された大当り種別に対応して、例えば遊技制御バッファ設定部に設けられた大当り種別バッファの格納値である大当り種別バッファ値を設定することにより、ステップS236の処理で決定された大当り種別を記憶する(ステップS237)。一例として、大当り種別が「非確変」であれば大当り種別バッファ値を「0」とし、「確変」であれば「1」とし、「突確」であれば「2」とすればよい。
ステップS232にて「小当り」ではないと判定された場合や(ステップS232;No)、ステップS233、S237の処理のいずれかを実行した後には、大当り遊技状態や小当り遊技状態に制御するか否かの事前決定結果、さらには、大当り遊技状態とする場合における大当り種別の決定結果に対応して、確定特別図柄を設定する(ステップS238)。一例として、ステップS232にて特図表示結果が「小当り」ではないと判定された場合には、特図表示結果を「ハズレ」とする旨の事前決定結果に対応して、ハズレ図柄となる「−」を示す記号の特別図柄を、確定特別図柄に設定する。その一方で、ステップS232にて特図表示結果が「小当り」であると判定された場合には、特図表示結果を「小当り」とする旨の事前決定結果に対応して、小当り図柄となる「5」を示す数字の特別図柄を、確定特別図柄に設定する。また、ステップS231にて特図表示結果が「大当り」であると判定された場合には、ステップS236における大当り種別の決定結果に応じて、大当り図柄となる「1」、「3」、「7」を示す数字の特別図柄のうち、いずれかを確定特別図柄に設定する。すなわち、大当り種別を「非確変」とする決定結果に応じて、非確変大当り図柄となる「3」の数字を示す特別図柄を、確定特別図柄に設定する。また、大当り種別を「確変」とする決定結果に応じて、確変大当り図柄となる「7」の数字を示す特別図柄を、確定特別図柄に設定する。大当り種別を「突確」とする決定結果に応じて、突確大当り図柄「1」の数字を示す特別図柄を、確定特別図柄に設定する。
ステップS238にて確定特別図柄を設定した後には、特図プロセスフラグの値を変動パターン設定処理に対応した値である“1”に更新してから(ステップS239)、特別図柄通常処理を終了する。また、ステップS221にて有効な始動データの記憶がないことに対応して、特図ゲームの保留記憶がないと判定された場合には(ステップS221;No)、所定のデモ表示設定を行ってから(ステップS240)、特別図柄通常処理を終了する。ステップS240におけるデモ表示設定では、例えば画像表示装置5において所定の演出画像を表示することなどによるデモンストレーション表示(デモ画面表示)を指定する客待ちデモ指定コマンドが、主基板11から演出制御基板12に対して送信済みであるか否かを判定する。このとき、送信済みであれば、そのままデモ表示設定を終了する。これに対して、未送信であれば、例えばROM506における客待ちデモ指定コマンドテーブルの記憶アドレスを送信コマンドバッファにセットすることなどにより、客待ちデモ指定コマンドの送信設定を行う。
図36(A)は、変動パターン設定処理として、図31のステップS141にて実行される処理の一例を示すフローチャートである。この変動パターン設定処理において、CPU505は、まず、大当りフラグがオンであるか否かを判定する(ステップS261)。そして、大当りフラグがオンである場合には(ステップS261;Yes)、特図表示結果が「大当り」となる大当り時に対応した変動パターンを決定する(ステップS262)。
ステップS261にて大当りフラグがオフである場合には、小当りフラグがオンであるか否かを判定する(ステップS263)。そして、小当りフラグがオンである場合には(ステップS263;Yes)、特図表示結果が「小当り」となる小当り時に対応した変動パターンを決定する(ステップS264)。一方、小当りフラグがオフである場合には(ステップS263;No)、特図表示結果が「ハズレ」となるハズレ時に対応した変動パターンを決定する(ステップS265)。
図36(B)は、この実施の形態における変動パターンを示している。この実施の形態では、可変表示結果(特図表示結果)が「ハズレ」となる場合のうち、飾り図柄の可変表示態様がリーチ態様にはならない「非リーチ」である場合とリーチ態様になる「リーチ」である場合のそれぞれに対応して、また、可変表示結果(特図表示結果)が「大当り」や「小当り」となる場合などに対応して、複数の変動パターンが予め用意されている。
ステップS262、S264、S265の処理では、変動パターン種別を決定してから変動パターンを決定してもよい。変動パターン種別を決定するときには、例えば遊技制御カウンタ設定部に設けられたランダムカウンタなどから、変動パターン種別決定用の乱数値MR3を抽出する。そして、予め用意された変動パターン種別決定テーブルを参照することにより、抽出した変動パターン種別決定用の乱数値MR3に基づき、変動パターン種別を複数種類のいずれかに決定する。変動パターン種別決定テーブルでは、変動パターン種別決定用の乱数値MR4と比較される数値(決定値)が、予め定められた複数の変動パターン種別のいずれかに割り当てられている。各変動パターン種別に対する決定値の割当ては、例えば可変表示結果が「大当り」となる場合の大当り種別に応じて異なってもよい。また、大当り種別に応じて異なる変動パターン種別に対して一部または全部の決定値が割り当てられてもよい。加えて、各変動パターン種別に対する決定値の割当ては、例えば可変表示結果が「ハズレ」となる場合の特図保留記憶数(第1特図保留記憶数、第2特図保留記憶数または合計保留記憶数のいずれか)や時短制御の有無に応じて異なってもよい。また、特図保留記憶数や時短制御の有無に応じて異なる変動パターン種別に対して一部または全部の決定値が割り当てられてもよい。
ステップS262、S264、S265の処理では、変動パターン種別を決定した後に、あるいは、変動パターン種別の決定を行うことなく、変動パターンを決定すればよい。変動パターンを決定するときには、例えば遊技制御カウンタ設定部に設けられたランダムカウンタなどから、変動パターン決定用の乱数値MR4を抽出する。そして、予め用意された変動パターン決定テーブルを参照することにより、抽出した変動パターン決定用の乱数値MR4に基づき、使用パターンとなる変動パターンを複数種類のいずれかに決定する。変動パターン決定テーブルでは、変動パターン決定用の乱数値MR4と比較される数値(決定値)が、予め定められた複数の変動パターンのいずれかに割り当てられている。各変動パターンに対する決定値の割当ては、例えば可変表示結果の決定結果または変動パターン種別の決定結果などに応じて異なっていればよい。なお、変動パターン種別の決定を行うことなく変動パターンを決定する場合には、可変表示結果が「大当り」となる場合の大当り種別や、可変表示結果が「ハズレ」となる場合の特図保留記憶数(第1特図保留記憶数、第2特図保留記憶数または合計保留記憶数のいずれか)や時短制御の有無などに応じて、各変動パターンに対する決定値の割当てを異ならせてもよい。
ステップS262、S264、S265の処理のいずれかを実行した後には、特別図柄の可変表示時間である特図変動時間を設定する(ステップS266)。特別図柄の可変表示時間となる特図変動時間は、特図ゲームにおいて特別図柄の変動を開始してから可変表示結果(特図表示結果)となる確定特別図柄が導出表示されるまでの所要時間である。特図変動時間は、図36(B)に示すように、予め用意された複数の変動パターンに対応して、予め定められている。CPU505は、特図変動時間を設定することにより、特別図柄や飾り図柄の可変表示結果が導出されるタイミングを設定できる。
ステップS266の処理に続いて、第1特別図柄表示装置4Aにおける第1特図を用いた特図ゲームと、第2特別図柄表示装置4Bにおける第2特図を用いた特図ゲームのうち、開始条件が成立したいずれかの特図ゲームを開始させるように、特別図柄の変動を開始させるための設定を行う(ステップS267)。一例として、始動データにより特定される変動特図が「第1」であれば、第1特別図柄表示装置4Aにおける第1特図の表示を更新させる駆動信号を送信するための設定を行う。一方、始動データにより特定される変動特図が「第2」であれば、第2特別図柄表示装置4Bにおける第2特図の表示を更新させる駆動信号を送信するための設定を行う。
ステップS267の処理を実行した後には、特別図柄の変動開始時におけるコマンドの送信設定が行われる(ステップS268)。例えば、始動データにより特定される変動特図が「第1」である場合に、CPU103は、主基板11から演出制御基板12に対して第1変動開始コマンド、変動パターン指定コマンド、可変表示結果通知コマンド、第1保留記憶数通知コマンドを順次に送信するために、予め用意された第1変動開始用コマンドテーブルのROM506における記憶アドレス(先頭アドレス)を指定する。他方、始動データにより特定される変動特図が「第2」である場合に、CPU505は、主基板11から演出制御基板12に対して第2変動開始コマンド、変動パターン指定コマンド、可変表示結果通知コマンド、第2保留記憶数通知コマンドを順次に送信するために、予め用意された第2変動開始用コマンドテーブルのROM506における記憶アドレスを指定する。
第1変動開始コマンドや第2変動開始コマンドは、第1特別図柄表示装置4Aにおける第1特図を用いた特図ゲームにおける変動開始や、第2特別図柄表示装置4Bにおける第2特図を用いた特図ゲームにおける変動開始を、指定する演出制御コマンドである。変動パターン指定コマンドは、特図ゲームにおける特別図柄の可変表示に対応して画像表示装置5における「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rで可変表示される飾り図柄などの変動パターンを指定する演出制御コマンドである。可変表示結果通知コマンドは、特別図柄や飾り図柄などの可変表示結果を指定する演出制御コマンドである。第1保留記憶数通知コマンドや第2保留記憶数通知コマンドは、第1特図保留記憶数や第2特図保留記憶数を通知する演出制御コマンドである。
ステップS268の処理を実行した後には、特図プロセスフラグの値を“2”に更新してから(ステップS269)、変動パターン設定処理を終了する。ステップS269にて特図プロセスフラグの値が“2”に更新されることにより、次回のタイマ割込みが発生したときには、図31に示すステップS142の特別図柄変動処理が実行される。
図37は、特別図柄停止処理として、図31のステップS143にて実行される処理の一例を示すフローチャートである。この特別図柄停止処理において、CPU505は、まず、大当りフラグがオンであるか否かを判定する(ステップS281)。このとき、大当りフラグがオンであれば(ステップS281;Yes)、大当り開始時演出待ち時間を設定する(ステップS282)。例えば、ステップS282の処理では、大当り開始時演出待ち時間に対応して予め定められたタイマ初期値が、遊技制御タイマ設定部に設けられた遊技制御プロセスタイマにセットされればよい。
ステップS282の処理に続いて、当り開始指定コマンドを主基板11から演出制御基板12に対して送信するための設定を行う(ステップS283)。例えば、ステップS283の処理では、当り開始指定コマンドを送信するために予め用意された当り開始指定コマンドテーブルのROM506における記憶アドレスを示す設定データが、送信コマンドバッファに格納されればよい。その後、大当りフラグをクリアしてオフ状態とする(ステップS284)。また、確変状態や時短状態を終了するための設定を行う(ステップS285)。例えば、ステップS285では、確変フラグや時短フラグをクリアしてオフ状態とする処理や、確変状態や時短状態における特図ゲームの実行回数をカウントするための特図変動回数カウンタをクリアする処理などが実行されればよい。そして、特別図柄プロセスフラグの値を大入賞口開放前処理に対応した値である“4”に更新してから(ステップS286)、特別図柄停止処理を終了する。
ステップS281にて大当りフラグがオフである場合には(ステップS281;No)、小当りフラグがオンであるか否かを判定する(ステップS287)。このとき、小当りフラグがオンであれば(ステップS287;Yes)、小当り開始時演出待ち時間を設定する(ステップS288)。例えば、ステップS288の処理では、小当り開始時演出待ち時間に対応して予め定められたタイマ初期値が、遊技制御プロセスタイマにセットされればよい。
ステップS288の処理に続いて、ステップS283の処理と同様に、当り開始指定コマンドを主基板11から演出制御基板12に対して送信するための設定を行う(ステップS289)。その後、小当りフラグをクリアしてオフ状態とする(ステップS290)。そして、特図プロセスフラグの値を小当り開放前処理に対応した値である“8”に更新する(ステップS291)。
また、ステップS287にて小当りフラグがオフである場合には(ステップS287;No)、特図プロセスフラグの値を特別図柄通常処理に対応した値である“0”に更新する(ステップS292)。ステップS291、S292の処理のいずれかを実行した後には、確変状態や時短状態を終了させるか否かの判定を行う(ステップS293)。例えば、ステップS293の処理では、特図変動回数カウンタの値(特図変動回数カウント値)を、例えば1減算または1加算するなどして更新し、更新後の特図変動回数カウント値が所定の特別遊技状態終了判定値と合致するか否かの判定が行われる。このとき、特別遊技状態終了判定値と合致すれば、確変フラグや時短フラグをクリアしてオフ状態とすることなどにより、確変状態や時短状態を終了して通常状態に制御すればよい。他方、特別遊技状態終了判定値と合致しなければ、確変フラグや時短フラグの状態を維持して、ステップS293の処理を終了すればよい。こうした確変状態や時短状態の終了判定を実行した後には、特別図柄停止処理が終了する。なお、特図変動回数カウント値に基づく終了判定は、時短状態である場合のみ行うようにして、確変状態については、次に可変表示結果が「大当り」となるまで継続されるようにしてもよい。あるいは、例えば遊技制御カウンタ設定部に設けられたランダムカウンタから、確変状態終了判定用の乱数値を示す数値データを抽出し、予めROM506などに格納された確変状態終了判定テーブルを参照することにより、確変状態を終了するか否かの判定を行うようにしてもよい。
次に、演出制御基板12における動作を説明する。演出制御基板12では、電源基板等から電源電圧の供給を受けると、演出制御用マイクロコンピュータ120のCPUが起動し、図38のフローチャートに示すような演出制御メイン処理を実行する。なお、演出制御用マイクロコンピュータ120においても、電源投入時やシステムリセット時には、CPUによりセキュリティチェック処理が実行され、演出制御用マイクロコンピュータ120がセキュリティモードとなるようにしてもよい。この場合には、セキュリティチェック処理にてROMに不正な変更が加えられていないと判定された後、セキュリティ時間が経過してから、演出制御メイン処理の実行が開始されるユーザモードへと移行すればよい。図38に示す演出制御メイン処理を開始すると、演出制御用マイクロコンピュータ120のCPUは、まず、所定の初期化処理を実行して(ステップS401)、演出制御用マイクロコンピュータ120に内蔵又は外付けされたRAMのクリアや各種初期値の設定、また演出制御用マイクロコンピュータ120に内蔵等されたタイマ回路のレジスタ設定等を行う。
その後、演出用乱数更新処理が実行され(ステップS402)、演出制御に用いる各種の乱数値として、演出制御用マイクロコンピュータ120のRAMなどに設けられたランダムカウンタによってカウントされる乱数値を示す数値データを、ソフトウェアにより更新する。続いて、タイマ割込みフラグがオンとなっているか否かの判定を行う(ステップS403)。タイマ割込みフラグは、例えば演出制御用マイクロコンピュータ120におけるタイマ回路のレジスタ設定に基づき、所定時間(例えば2ミリ秒)が経過するごとにオン状態にセットされる。
また、演出制御基板12の側では、所定時間が経過するごとに発生するタイマ割込みとは別に、主基板11から演出制御コマンドを受信するための割込みが発生する。この割込みは、例えば演出制御用マイクロコンピュータ120が備えるシリアル通信回路における受信データフルにより発生する割込みであればよい。あるいは、主基板11と演出制御基板12との間に演出制御INT信号を伝送するための信号線を配線した場合には、演出制御INT信号がオン状態となることによる割込みが発生するようにしてもよい。こうした割込み発生に応答して、演出制御用マイクロコンピュータ120のCPUは、自動的に割込み禁止に設定するが、自動的に割込み禁止状態にならないCPUを用いている場合には、割込み禁止命令(DI命令)を発行することが望ましい。演出制御用マイクロコンピュータ120のCPUは、受信データフルによる割込み、あるいは、演出制御INT信号がオン状態となることによる割込みに対応して、例えば所定のコマンド受信割込み処理を実行する。このコマンド受信割込み処理では、演出制御用マイクロコンピュータ120のシリアル通信回路に対応して設けられた通信データレジスタなどに格納された通信データを取り込む。あるいは、コマンド受信割込み処理では、演出制御用マイクロコンピュータ120が備えるPIP等に含まれる入力ポートのうちで、中継基板18を介して主基板11から伝送された制御信号を受信する所定の入力ポートより、演出制御コマンドとなる制御信号を取り込むようにしてもよい。このとき取り込まれた演出制御コマンドは、例えば演出制御用マイクロコンピュータ120のRAMなどに設けられた演出制御コマンド受信用バッファに格納する。一例として、演出制御コマンドが2バイト構成である場合には、1バイト目(MODE)と2バイト目(EXT)を順次に受信して演出制御コマンド受信用バッファに格納する。その後、演出制御用マイクロコンピュータ120のCPUは、割込み許可に設定してから、コマンド受信割込み処理を終了する。
ステップS403にてタイマ割込みフラグがオフであれば(ステップS403;No)、ステップS402の処理に戻る。他方、ステップS403にてタイマ割込みフラグがオンである場合には(ステップS403;Yes)、タイマ割込みフラグをクリアしてオフ状態にするとともに(ステップS404)、コマンド解析処理を実行する(ステップS405)。ステップS405にて実行されるコマンド解析処理では、例えば主基板11の遊技制御用マイクロコンピュータ100から送信されて演出制御コマンド受信用バッファに格納されている各種の演出制御コマンドを読み出した後に、その読み出された演出制御コマンドに対応した設定や制御などが行われる。
ステップS405にてコマンド解析処理を実行した後には、演出制御プロセス処理を実行する(ステップS406)。この演出制御プロセス処理では、例えば画像表示装置5の表示領域における演出画像の表示動作、スピーカ8L、8Rからの音声出力動作、遊技効果ランプ9や装飾用LEDにおける点灯動作といった、演出用の電気部品(演出装置)を用いた演出動作の制御内容について、主基板11から送信された演出制御コマンド等に応じた判定や決定、設定などが行われる。
図39は、演出制御プロセス処理として、図38のステップS406にて実行される処理の一例を示すフローチャートである。図39に示す演出制御プロセス処理において、演出制御用マイクロコンピュータ120のCPUは、例えば演出制御用マイクロコンピュータ120のRAM等に設けられた演出プロセスフラグの値に応じて、以下のようなステップS160〜ステップS166の処理のいずれかを選択して実行する。
ステップS160の飾り図柄変動開始待ち処理は、演出プロセスフラグの値が“0”のときに実行される処理である。この飾り図柄変動開始待ち処理には、主基板11から伝送される変動開始コマンドとして、第1変動開始コマンドと第2変動開始コマンドのいずれかを受信したか否かに応じて、画像表示装置5の表示領域に設けられた「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rにおける飾り図柄の可変表示や、色図柄表示部における色図柄の可変表示を、開始するか否かの判定を行う処理などが含まれている。このとき、可変表示を開始すると判定されれば、演出プロセスフラグの値が“1”に更新される。
ステップS161の飾り図柄変動設定処理は、演出プロセスフラグの値が“1”のときに実行される処理である。この飾り図柄変動設定処理には、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームの開始や第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームの開始に対応して、飾り図柄や色図柄の可変表示を含めた各種の演出動作を行うために、変動パターンや可変表示結果などに応じた最終停止図柄となる確定飾り図柄や仮停止図柄、予告演出の有無等を決定し、その決定結果に応じて、予め用意された複数種類の演出制御パターンのいずれかを、使用パターンとして選択して設定する処理などが含まれている。こうした決定や設定などが行われた後には、演出プロセスフラグの値が“2”に更新される。
ステップS162の飾り図柄変動中処理は、演出プロセスフラグの値が“2”のときに実行される処理である。この飾り図柄変動中処理には、例えば演出制御用マイクロコンピュータ120のRAM等に設けられた演出制御プロセスタイマの値(演出制御プロセスタイマ値)などに対応して、使用パターンとなる演出制御パターンなどから各種の制御データを読み出して、飾り図柄の可変表示中における各種の演出制御を行うための処理が含まれている。そして、例えば演出制御プロセスタイマ値が所定の可変表示終了値(例えば「0」)となったこと、あるいは、主基板11から伝送される飾り図柄停止コマンドを受信したことなどに対応して、飾り図柄の可変表示結果となる最終停止図柄としての確定飾り図柄を完全停止表示させる。演出制御プロセスタイマ値が可変表示終了値となったことに対応して確定飾り図柄を完全停止表示させるようにすれば、変動パターン指定コマンドにより指定された変動パターンに対応する可変表示時間が経過したときに、主基板11からの演出制御コマンドによらなくても、演出制御基板12の側で自律的に確定飾り図柄を導出表示して可変表示結果を確定させることができる。確定飾り図柄を完全停止表示したときには、演出プロセスフラグの値が“3”に更新される。
ステップS163の飾り図柄変動終了時処理は、演出プロセスフラグの値が“3”のときに実行される処理である。この飾り図柄変動終了時処理には、主基板11から伝送される当り開始指定コマンドを受信したか否かを判定する処理が含まれている。このとき、当り開始指定コマンドを受信した旨の判定がなされれば、その当り開始指定コマンドから特定される可変表示結果が「大当り」である場合に、演出プロセスフラグの値が“4”に更新される。その一方で、当り開始指定コマンドから特定される可変表示結果が「小当り」である場合には、演出プロセスフラグの値が“5”に更新される。また、当り開始指定コマンドを受信せずに所定時間が経過したときには、可変表示結果が「ハズレ」であることに対応して、演出プロセスフラグの値が“0”に更新される。
ステップS164の大当り制御中演出処理は、演出プロセスフラグの値が“4”のときに実行される処理である。この大当り制御中演出処理には、例えば可変表示結果が「大当り」となったことなどに対応した演出制御パターン等を設定し、その設定内容に基づく演出画像を画像表示装置5の表示領域に表示させることや、音声制御基板13に対する音番号データの出力によりスピーカ8L、8Rから音声や効果音を出力させること、ランプ制御基板14に対する電飾信号の出力により遊技効果ランプ9や装飾用LEDを点灯/消灯/点滅させることといった、大当り遊技状態における各種の演出動作を制御する処理が含まれている。そして、例えば主基板11から伝送される当り終了指定コマンドを受信したことなどに対応して、演出プロセスフラグの値が“6”に更新される。
ステップS165の小当り制御中演出処理は、演出プロセスフラグの値が“5”のときに実行される処理である。この小当り制御中演出処理には、例えば可変表示結果が「小当り」となったことなどに対応して演出制御パターン等を設定し、その設定内容に基づく演出画像を画像表示装置5の表示領域に表示させることや、音声制御基板13に対する音番号データの出力によりスピーカ8L、8Rから音声や効果音を出力させること、ランプ制御基板14に対する電飾信号の出力により遊技効果ランプ9や装飾用LEDを点灯/消灯/点滅させることといった、小当り遊技状態における各種の演出動作を制御する処理が含まれている。そして、例えば主基板11から伝送される当り終了指定コマンドを受信したことなどに対応して、演出プロセスフラグの値が“6”に更新される。
ステップS166のエンディング演出処理は、演出プロセスフラグの値が“6”のときに実行される処理である。このエンディング演出処理には、大当り遊技状態や小当り遊技状態が終了することなどに対応した演出制御パターン等を設定し、その設定内容に基づく演出画像を画像表示装置5の表示領域に表示させることや、音声制御基板13に対する音番号データの出力によりスピーカ8L、8Rから音声や効果音を出力させること、ランプ制御基板14に対する電飾信号の出力により遊技効果ランプ9や装飾用LEDを点灯/消灯/点滅させることといった、大当り遊技状態や小当り遊技状態の終了に対応した各種の演出動作を制御する処理が含まれている。そして、こうした演出動作が終了したことなどに対応して、演出プロセスフラグの値が“0”に更新される。
以下、パチンコ遊技機1における具体的な動作例について説明する。パチンコ遊技機1では、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームや、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームが実行され、また、これらの特図ゲームにおける特別図柄の可変表示に対応して、画像表示装置5の表示領域に含まれる「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rにて飾り図柄の可変表示が実行される。そして、例えば確定特別図柄といった特図ゲームにおける可変表示結果や、確定飾り図柄の組合せといった飾り図柄の可変表示結果などに基づいて、例えば大当り遊技状態に制御されることといった、所定の遊技価値が付与可能となる。なお、パチンコ遊技機1にて付与可能な遊技価値とは、大当り遊技状態に制御されて大入賞口が閉鎖状態から開放状態に変化して遊技球が進入(入賞)しやすい遊技者にとって有利な状態になることや、遊技者にとって有利な状態となるための権利を発生させたりすることなどであればよい。また、例えば大当り遊技状態にて実行可能なラウンドの上限回数や、時短状態にて実行可能な特図ゲームの上限回数、確変状態における大当り確率、通常状態に制御されることなく大当り遊技状態に制御される回数である連チャン回数が所定回数に達すること、あるいは、これらの一部または全部の組合せといった、パチンコ遊技機1における遊技の有利度合いに関わる任意の事項が、パチンコ遊技機1における遊技価値となり得る。
遊技制御用マイクロコンピュータ100では、例えばCPU505が図33のステップS506にて乱数回路509Aのハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bから読み出した数値データに基づく特図表示結果決定用の乱数値MR1を示す数値データを用いて、図34のステップS230にて特図表示結果を「大当り」、「小当り」、「ハズレ」のいずれかに決定する。乱数回路509Aでは、例えば乱数生成回路553Aから出力されたカウント値順列RCNを、乱数列変更設定回路554Bの設定により予め定められた乱数更新規則に基づいて乱数列変更回路554Aが変更する。これに続いて最大値比較回路555にてユーザプログラム(ソフトウェア)などで設定された乱数最大値と比較された後に、数値データを所定手順により更新した乱数列RSNが出力される。そして、入力ポートPI0に入力された第1始動口スイッチ22Aからの第1始動入賞信号SS1がオン状態となったことに基づき、ハードラッチ乱数値レジスタ559Aに乱数列RSNを構成する数値データが乱数値として取り込まれて格納される。また、入力ポートPI1に入力された第2始動口スイッチ22Bからの第2始動入賞信号SS2がオン状態となったことに基づき、ハードラッチ乱数値レジスタ559Bに乱数列RSNを構成する数値データが乱数値として取り込まれて格納される。
図40は、乱数回路509Aの動作を説明するためのタイミングチャートである。また、図40(A)では、主基板11に搭載された制御用クロック生成回路111により生成される制御用クロックCCLKを示している。図40(B)では、乱数用クロック生成回路112により生成される乱数用クロックRCKを示している。なお、図40に示す各種信号は、ハイレベルでオフ状態となりローレベルでオン状態となる負論理の信号であるものとしている。図40(A)および(B)に示すように、制御用クロックCCLKの発振周波数と、乱数用クロックRCKの発振周波数とは、互いに異なる周波数となっており、また、いずれか一方の発振周波数が他方の発振周波数の整数倍になることがない。
図40(B)に示すように、乱数用クロックRCKは、タイミングT10、T11、T12、…においてハイレベルからローレベルに立ち下がる。そして、乱数用クロックRCKは、2分周された後に乱数回路509Aの乱数更新クロック選択回路551に入力される。このような乱数用クロックRCKの2分周(RCK/2)が乱数更新クロック選択回路551により選択された場合に、乱数更新クロックRGKは、図40(C)に示すように、タイミングT10、T12、T14、…において、ハイレベルからローレベルへと立ち下がり、乱数用クロックRCKの発振周波数の1/2の発振周波数を有する信号となる。例えば、乱数用クロックRCKの発振周波数が20MHzであれば、乱数更新クロックRGKの発振周波数は10MHzとなる。そして、乱数用クロックRCKの発信周波数は制御用クロックCCLKの発振周波数の整数倍にも整数分の1にもならないことから、乱数更新クロックRGKの発振周波数は、制御用クロックCCLKの発振周波数とは異なる周波数となる。
乱数生成回路553Aは、例えば乱数更新クロックRGKの立ち下がりエッジに応答して、カウント値順列RCNにおける数値データを更新する。乱数列変更回路554Aは、乱数列変更設定回路554Bによる乱数更新規則の設定に基づき、乱数生成回路553Aから出力されたカウント値順列RCNにおける数値データの更新順を変更したものを、乱数列RDNとして出力する。乱数列RDNは、最大値比較回路555にて乱数最大値と比較された後に、乱数列RSNとして出力される。こうして、乱数列RSNにおける数値データは、例えば図40(D)に示すように、乱数更新クロックRGKの立ち下がりエッジなどに応答して更新される。
乱数用クロック生成回路112により生成される乱数用クロックRCKの発振周波数と、制御用クロック生成回路111により生成される制御用クロックCCLKの発振周波数とは、互いに異なっており、また、一方の発振周波数が他方の発振周波数の整数倍となることもない。そのため、乱数回路509Aにて用いられる乱数更新クロックRGNの発振周波数は、乱数用クロックRCKの発振周波数の1/2となる場合でも、制御用クロックCCLKの発振周波数や、制御用クロックCCLKの発振周波数の1/2となる内部システムクロックSCLKの発振周波数とは、異なるものとなる。こうして、制御用クロックCCLKや内部システムクロックSCLKと、乱数更新クロックRGKとに同期が生じることを防ぎ、CPU505の動作タイミングからは、乱数回路509Aにて乱数生成回路553Aや乱数列変更回路554Bさらには最大値比較回路555により生成される乱数列RSNにおける数値データの更新タイミングを特定することが困難になる。8ビットの乱数回路509Bについても、同様にして8ビットの乱数列が生成される。これにより、CPU505の動作タイミングから乱数回路509A、509Bにおける乱数値となる数値データの更新動作を解析した結果に基づく狙い撃ちなどを、確実に防止することができる。
ハードラッチセレクタ558Aでは、その取込方法が入力ポートPI0への信号入力に指定されていれば、第1始動入賞信号SS1を取り込んで乱数ラッチ信号LL1を出力する。例えば図40(F)に示すようなタイミングでオフ状態(ハイレベル)とオン状態(ローレベル)とで信号状態が変化する第1始動入賞信号SS1は、ラッチ用クロックRC1(クロック用フリップフロップから出力されたラッチ用クロックRC0を分岐したもの)が立ち下がるタイミングT11、T13、T15、…にてハードラッチセレクタ558Aに取り込まれた後、図40(G)に示すようなタイミングT11、T13で信号状態がオフ状態とオン状態とで変化する乱数ラッチ信号LL1となって出力される。ここで、第1始動口スイッチ22Aから伝送される第1始動入賞信号SS1は、普通入賞球装置6Aが形成する第1始動入賞口における遊技球の始動入賞が検出されたときに、オフ状態からオン状態へと変化する。ハードラッチセレクタ558Aから出力された乱数ラッチ信号LL1は、ハードラッチ乱数値レジスタ559Aに供給されて、最大値比較回路555から出力された乱数列RSNにおける数値データを取得するために用いられる。こうして、ハードラッチセレクタ558Aでは、第1始動入賞口における遊技球の始動入賞が検出されたことに基づき、乱数値となる数値データを取得するための乱数ラッチ信号LL1が、第2始動入賞口における遊技球の始動入賞が検出された場合とは別個に生成される。
ハードラッチセレクタ558Bでは、その取込方法が入力ポートPI1への信号入力に指定されていれば、第2始動入賞信号SL2を取り込んで乱数ラッチ信号LL2を出力する。例えば図40(I)に示すようなタイミングでオフ状態(ハイレベル)とオン状態(ローレベル)とで信号状態が変化する第2始動入賞信号SS2は、ラッチ用クロックRC2(クロック用フリップフロップから出力されたラッチ用クロックRC0を分岐したもの)が立ち下がるタイミングT11、T13、T15、…にてハードラッチセレクタ558Bに取り込まれた後、図40(J)に示すようなタイミングT13、T15で信号状態がオフ状態とオン状態とで変化する乱数ラッチ信号LL2となって出力される。ここで、第2始動口スイッチ22Bから伝送される第2始動入賞信号SS2は、普通可変入賞球装置6Bが形成する第2始動入賞口における遊技球の始動入賞が検出されたときに、オフ状態からオン状態へと変化する。ハードラッチセレクタ558Bから出力された乱数ラッチ信号LL2は、ハードラッチ乱数値レジスタ559Bに供給されて、最大値比較回路555から出力された乱数列RSNにおける数値データを取得するために用いられる。こうして、ハードラッチセレクタ558Bでは、第2始動入賞口における遊技球の始動入賞が検出されたことに基づき、乱数値となる数値データを取得するための乱数ラッチ信号LL2が、第1始動入賞口における遊技球の始動入賞が検出された場合とは別個に生成される。
互いに共通のクロック用フリップフロップにて生成されたラッチ用クロックRC0を分岐点で分岐してラッチ用クロックRC1、RC2とすることにより、互いに共通の周期で信号状態が変化するラッチ用クロックRC1、RC2を用いて、乱数値となる数値データを取得するための乱数ラッチ信号LL1や乱数ラッチ信号LL2を生成する。これにより、乱数回路509A、509Bにおける回路構成の簡素化や、パチンコ遊技機1における製造コストの削減を図ることができる。
ハードラッチ乱数値レジスタ559Aは、最大値比較回路555から出力される乱数列RSNにおける数値データを、ハードラッチセレクタ558Aからクロック端子へと入力される乱数ラッチ信号LL1の立ち下がりエッジに応答して取り込み(ラッチして)、記憶データとなる数値データを更新する。ハードラッチ乱数値レジスタ559Bは、最大値比較回路555から出力される乱数列RSNにおける数値データを、ハードラッチセレクタ558Bからクロック端子へと入力される乱数ラッチ信号LL2の立ち下がりエッジに応答して取り込み(ラッチして)、記憶データとなる数値データを更新する。
例えば図40(G)に示すように、タイミングT11にて乱数ラッチ信号LL1がオフ状態からオン状態に変化する立ち下がりエッジが生じた場合には、このタイミングT11にて最大値比較回路555から出力されている乱数列RSNにおける数値データが、図40(H)に示すように、ハードラッチ乱数値レジスタ559Aに取り込まれ、乱数値となる数値データとして取得される。これにより、ハードラッチ乱数値レジスタ559Aでは、第1始動入賞口における遊技球の始動入賞が検出されたことに基づき、乱数値として用いられる数値データを、第2始動入賞口における遊技球の始動入賞が検出された場合とは別個に、取得して記憶することができる。
また、例えば図40(J)に示すように、タイミングT13にて乱数ラッチ信号LL2がオフ状態からオン状態に変化する立ち下がりエッジが生じた場合には、このタイミングT13にて最大値比較回路555から出力されている乱数列RSNにおける数値データが、図40(K)に示すように、ハードラッチ乱数値レジスタ559Bに取り込まれ、乱数値となる数値データとして取得される。これにより、ハードラッチ乱数値レジスタ559Bは、第2始動入賞口における遊技球の始動入賞が検出されたことに基づき、乱数値として用いられる数値データを、第1始動入賞口における遊技球の始動入賞が検出された場合とは別個に、取得して記憶することができる。
こうして、ハードラッチ乱数値レジスタ559Aは、ハードラッチセレクタ558Aから出力された乱数ラッチ信号LL1の立ち下がりエッジに応答して、乱数値RSNにおける数値データを格納する。また、ハードラッチ乱数値レジスタ559Bは、ハードラッチセレクタ558Bから出力された乱数ラッチ信号LL2の立ち下がりエッジに応答して、乱数列RSNにおける数値データを格納する。
このように、16ビットの乱数回路509Aでは、乱数更新クロック選択回路551や乱数生成回路553A、乱数列変更回路554A、最大値比較回路555などが、第1始動入賞口における遊技球の始動入賞に基づき乱数値となる数値データを取得するように構成されたハードラッチセレクタ558Aおよびハードラッチ乱数値レジスタ559Aの組合せと、第2始動入賞口における遊技球の始動入賞に基づき乱数値となる数値データを取得するように構成されたハードラッチセレクタ558Bおよびハードラッチ乱数値レジスタ559Bの組合せとに対して、共通化されていてもよい。この場合、乱数生成回路553Aに供給されてカウント値順列RCNにおける数値データや乱数列RSNにおける数値データの更新に用いられる乱数更新クロックRGKは、第1始動入賞口における遊技球の始動入賞に基づき乱数値となる数値データを取得する構成と、第2始動入賞口における遊技球の始動入賞に基づき乱数値となる数値データを取得する構成とについて、共通の乱数更新用クロック信号となる。これにより、乱数回路509Aにおける回路構成を簡素化することができ、パチンコ遊技機1の製造コストを削減することができる。また、第1始動入賞口における遊技球の始動入賞が検出されたことにより第1始動入賞信号SS1がオン状態になったときと、第2始動入賞口における遊技球の始動入賞が検出されたことにより第2始動入賞信号SS2がオン状態になったときとで、共通の乱数列RSNにおける数値データが乱数値として格納される。これにより、パチンコ遊技機1における遊技の公平性を確保することができる。
図21(A)に示す乱数ハードラッチフラグレジスタRHFでは、ハードラッチ乱数値レジスタ559Aにおける数値データの取込動作や読出動作、また、ハードラッチ乱数値レジスタ559Bにおける数値データの取込動作や読出動作に応答して、対応するビット値が“0”と“1”とに変化する。図41は、乱数ラッチフラグレジスタRHFに格納されるハードラッチフラグRLHF0の変化を説明するためのタイミングチャートである。
図41(A)に示すように、乱数ラッチ信号LL1や乱数ラッチ信号LL2が立ち下がるタイミングT20にて、図41(B)に示すようにハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに数値データが取り込まれて格納されたことに対応して、図41(C)に示すようにハードラッチフラグRLHF0において対応するビット値が“0”から“1”へと変化する。例えば、タイミングT20にて乱数ラッチ信号LL1がオン状態(ローレベル)となったことに応答してハードラッチ乱数値レジスタ559Aに数値データが格納されたときには、ハードラッチフラグデータRL01HF、RL00HFのビット値がいずれも“0”から“1”へと変化することにより、ハードラッチ乱数値レジスタ559Aに対応する乱数ラッチフラグがオン状態となる。また、タイミングT20にて乱数ラッチ信号LL2がオン状態(ローレベル)となったことに応答してハードラッチ乱数値レジスタ559Bに数値データが格納されたときには、ハードラッチフラグデータRL03HF、RL02HFのビット値がいずれも“0”から“1”へと変化することにより、ハードラッチ乱数値レジスタ559Bに対応する乱数ラッチフラグがオン状態となる。
こうして乱数ラッチフラグがオン状態となったときには、対応するハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bへの新たな数値データの格納を制限することができる。例えば、図20(A)および(B)に示すハードラッチ選択レジスタRL0LSのビット番号[3]におけるビット値が“0”である場合に、ハードラッチフラグデータRL01HF、RL00HFのビット値がいずれも“0”から“1”へと変化したときには、ハードラッチ乱数値レジスタ559Aに対応する乱数ラッチフラグがオン状態となり、ハードラッチ乱数値レジスタ559Aへの新たな数値データの格納が制限される。また、図20(A)および(B)に示すハードラッチ選択レジスタRL0LSのビット番号[3]におけるビット値が“0”である場合に、ハードラッチフラグデータRL03HF、RL02HFのビット値がいずれも“0”から“1”へと変化したときには、ハードラッチ乱数値レジスタ559Bに対応する乱数ラッチフラグがオン状態となり、ハードラッチ乱数値レジスタ559Bへの新たな数値データの格納が制限される。したがって、対応する乱数ラッチフラグがオン状態であるハードラッチ乱数値レジスタ559Aとハードラッチ乱数値レジスタ559Bの一方または両方には、第1始動入賞信号SS1と第2始動入賞信号SS2の一方または両方の入力に対応して数値データを取り込むための乱数ラッチ信号LL1と乱数ラッチ信号LL2の一方または両方が入力されたときでも、乱数列RSNに含まれる新たな数値データの格納を行うことができない。
これにより、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに数値データが一旦格納された後、その数値データがCPU505などから読み出されるよりも前に、例えば第1始動入賞信号SS1や第2始動入賞信号SS2がノイズ等により誤ってオン状態となったときでも、既に格納されている数値データが更新されてしまい不正確な乱数値の読み出しを防止することができる。また、第1始動入賞信号SS1や第2始動入賞信号SS2を外部から意図的にオン状態とすること、あるいは、乱数ラッチ信号LL1や乱数ラッチ信号LL2を外部から意図的にオン状態とすることなどにより、既に格納されている数値データを改変するといった不正行為を防止することもできる。その一方で、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに一旦格納された数値データが長時間にわたりCPU505などから読み出されなくなると、その後に第1始動入賞信号SS1や第2始動入賞信号SS2が正常にオン状態となったときに、第1始動入賞口や第2始動入賞口における遊技球の通過(進入)に対応した正確な数値データをハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに格納することができなくなる。
そこで、例えば遊技制御用マイクロコンピュータ100のCPU505は、予め定められた乱数値読出条件が成立したときに、図41(D)に示すような所定の乱数値レジスタ読出処理を実行する。そして、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bの読み出しを行って乱数ラッチフラグをオフ状態とすることにより、新たな数値データの格納が許可された状態に設定する。乱数値読出条件としては、CPU505がパチンコ遊技機1における遊技制御の実行を開始することや、第1始動入賞口や第2始動入賞口を遊技球が通過(進入)したときに特図ゲームの保留記憶数が所定の上限値に達していることのうち、一部または全部を含むものであればよい。図41に示す動作例では、タイミングT25にて図41(D)に示す乱数値レジスタ読出処理が完了したことに対応して、図41(C)に示すようにハードラッチフラグRLHF0がオフ状態に設定される。
一例として、CPU505は、パチンコ遊技機1における電源供給の開始に基づいて遊技制御用マイクロコンピュータ100のシステムリセットが解除されたときに、所定のセキュリティチェック処理などを実行してから、ROM506からユーザプログラム(ゲーム制御用の遊技制御処理プログラム)を示す制御コードの読み出しなどを行い遊技制御の実行を開始する。このとき、CPU505は、乱数値レジスタ読出処理を実行することにより、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに格納された数値データを読み出して、対応する乱数ラッチフラグをオフ状態としてもよい。なお、CPU505は、ハードラッチフラグデータRL00HF〜RL03HFのビット値をチェックした結果などに基づいて、乱数ラッチフラグがオン状態となっている乱数値レジスタの読出しのみを行うようにしてもよい。あるいは、乱数ラッチフラグがオン状態であるか否かにかかわらず、ハードラッチ乱数値レジスタ559Aとハードラッチ乱数値レジスタ559Bの双方から数値データを読み出すことにより、各乱数ラッチフラグをオフ状態としてもよい。
パチンコ遊技機1の電源投入時などには、例えば図4(B)および(C)に示す電源電圧VSLおよび電源電圧VCCのように、各種の電源電圧が徐々に規定値まで上昇していく。こうした電源電圧の上昇中には、例えば遊技制御用マイクロコンピュータ100の内蔵回路といった、各種回路の一部分が正常に動作する一方で、他の部分は未だ正常には動作できない状態となることがある。一例として、電源電圧が不安定な状態では、第1始動入賞信号SS1や第2始動入賞信号SS2が誤ってオン状態となることなどにより、乱数回路509Aにおいてハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに数値データが取り込まれて格納され、対応する乱数ラッチフラグがオン状態になって新たな数値データの格納が制限されてしまう可能性がある。また、CPU505などによる遊技制御の実行が開始された後、図30に示すステップS91のスイッチ処理が実行されるより前に、所定タイミングで乱数ラッチ信号LL1や乱数ラッチ信号LL2をハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに入力することで、特図表示結果を「大当り」とする特図表示結果決定用の乱数値MR1を示す数値データを取得して大当り遊技状態に制御させる不正行為がなされる可能性がある。このように、乱数ラッチフラグがオン状態になると新たな数値データの格納が制限されるようにした場合には、第1始動入賞口や第2始動入賞口といった始動入賞口を遊技球が通過(進入)する始動入賞の発生後にノイズ等により誤った数値データがハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに取り込まれて格納されることを防止できる一方で、始動入賞の発生前に電源電圧の不安定による誤動作や不正行為などにより数値データがハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに取り込まれて格納された場合、その後に始動入賞が発生しても、この始動入賞の発生タイミングよりも前に既に格納されている数値データが乱数値として取得されて特図表示結果の決定などに用いられる可能性がある。
そこで、遊技制御用マイクロコンピュータ100におけるシステムリセットが解除されて遊技制御が開始されるときには、乱数ラッチフラグをオフ状態に設定して、新たな数値データの格納が許可された状態としてもよい。これにより、例えばパチンコ遊技機1における電源投入時などの電源電圧が不安定な状態で誤ってハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに格納された数値データが乱数値として取得されてしまい、遊技制御における各種の決定などに使用されてしまうことを防止できる。また、遊技制御の実行が開始された後、第1始動口スイッチ22Aや第2始動口スイッチ22Bの状態がチェックされるより前に乱数ラッチ信号を入力して大当り遊技状態に制御させる不正行為を防止することができる。
他の一例として、例えば電源電圧VSLといった、パチンコ遊技機1における所定電源電圧が低下したことに基づいて、電源基板10に搭載された電源監視回路303からオン状態の電源断信号が出力される。CPU505は、図27に示すステップS51の処理にて電源断信号がオン状態であると判定したときに、ステップS52のメイン側電源断処理を実行して電源電圧の低下によるパチンコ遊技機1の動作不安定あるいは動作停止に備える。こうした電力供給停止時処理となるメイン側電源断処理の実行に伴い、ステップS53の処理にてウォッチドッグタイマ520を起動させてタイムアウトの発生によるリセット動作を有効化してから、無限ループ処理を繰返し実行する待機状態に移行する。ここで、ステップS51の処理により電源断信号がオン状態であると判定された後、ウォッチドッグタイマ520のタイムアウトが発生するより前に、乱数値レジスタ読出処理を実行することにより、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに格納された数値データを読み出して、対応する乱数ラッチフラグをオフ状態としてもよい。このように、ユーザプログラムの実行を開始した後に電源断信号がオン状態であると判定されたことを、乱数値読出条件の1つとしてもよい。
さらに、乱数値読出条件の他の一例として、第1始動入賞口や第2始動入賞口を遊技球が通過(進入)したときに特図ゲームの保留記憶数が所定の上限値に達している場合がある。ここで、例えば図32に示すステップS203にて第1始動口スイッチ22Aがオン状態であると判定された後、図33に示すステップS502にて第1保留記憶カウンタの読出値が所定の上限値(例えば「4」)以上であると判定された場合には、第1特図保留記憶部にて全てのエントリ(例えば保留番号が「1」〜「4」に対応するエントリ)に保留データが記憶されており、第1特図保留記憶部における保留データの記憶数が上限記憶数に達しているために、新たな保留データを第1特図保留記憶部に記憶させることができない。また、例えば図32に示すステップS207にて第2始動口スイッチ22Bがオン状態であると判定された後、図33に示すステップS502にて第1保留記憶カウンタの読出値が所定の上限値以上であると判定された場合には、第2特図保留記憶部にて全てのエントリに保留データが記憶されており、第2特図保留記憶部における保留データの記憶数が上限記憶数に達しているために、新たな保留データを第2特図保留記憶部に記憶させることができない。こうした場合には、一般に、第1始動入賞口や第2始動入賞口を遊技球が通過(進入)したことに基づく特図ゲームの始動条件を成立させずに無効なものとし、賞球の払出しのみが行われる。
そのため、乱数回路509Aにより生成される乱数値となる数値データを読み出さないようにすることも考えられる。しかしながら、乱数回路509Aでは、保留データの記憶数にかかわらず、第1始動入賞信号SS1や第2始動入賞信号SS2がオン状態となって入力されたことに応答して、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに乱数値となる数値データが取り込まれて格納され、対応する乱数ラッチフラグがオン状態となる。そうすると、次に第1始動入賞口や第2始動入賞口を遊技球が通過(進入)したときには、第1始動入賞信号SS1や第2始動入賞信号SS2がオン状態となって入力されても、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bにおける新たな数値データの格納が制限されるために、始動入賞の発生に対応した正確な乱数値を取得することができなくなることがある。
これに対して、遊技制御用マイクロコンピュータ100のCPU505は、図33に示すステップS502にて保留記憶カウンタの読出値が所定の上限値以上であると判定したときに(ステップS502;Yes)、ステップS512の処理を実行して、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに格納された数値データを読み出すことで、対応する乱数ラッチフラグをオフ状態としてから、始動口通過時処理を終了する。なお、ステップS512の処理では、図32のステップS202にて第1始動口入賞テーブルがセットされた場合にハードラッチ乱数値レジスタ559Aの読み出しを行う一方、図32のステップS206にて第2始動口入賞テーブルがセットされた場合にハードラッチ乱数値レジスタ559Bの読み出しを行うようにする。こうして、例えば第1特別図柄表示装置4Aや第2特別図柄表示装置4Bといった、特別図柄を可変表示する表示装置が複数設けられている場合において、特図ゲームの保留記憶数が上限値に達している特別図柄と対応付けられた始動入賞口を通過(進入)した遊技球が検出されたときに、その始動入賞口と対応付けられた乱数値レジスタから数値データを読み出して新たな数値データの格納を許可する一方で、その始動入賞口と対応付けられていない乱数値レジスタからは数値データを読み出さないようにする。これにより、複数の始動入賞口のうち、いずれかを遊技球が通過(進入)したときに、他の始動入賞口に対応して乱数値となる数値データを更新や取得する動作に影響が及ばないようにすることができる。
図42は、遊技制御の実行中に電源電圧VSLが低下した場合の動作例を示すタイミングチャートである。始めに、例えばパチンコ遊技機1への電源供給が開始されたことなどに基づき、図42(A)に示す電源電圧VSLが所定値VSL1(一例として+22V)に達するタイミングT31よりも前のタイミングT30にて、図42(B)に示す電源電圧VCCが所定値VCC1(一例として+4.5V)に達する。このタイミングT30では、図42(E)に示すリセット信号がオン状態からオフ状態となる。続いて、タイミングT31にて電源電圧VSLが所定値VSL1に達したときに、図42(C)に示す電源断信号がオン状態からオフ状態となる。その後、タイミングT32にて、図42(A)に示す電源電圧VSLが所定値VSL1より低下したとする。このとき、図42(C)に示す電源断信号がオン状態(ローレベル)であると判定されたことなどに基づいて(図27のステップS51;Yes)、ステップS52のメイン側電源断処理が実行されたことに伴い、ステップS53の処理によりウォッチドッグタイマ520を起動させる。こうして、タイムアウトの発生によるリセット動作が有効化される。
図27に示すステップS53の処理が実行された後には、無限ループ処理が繰返し実行される。そのため、例えばタイミングT33にて、図42(A)に示す電源電圧VSLが所定値VSL1に復帰したときでも遊技制御処理(遊技制御用タイマ割込処理など)は実行されず、タイムアウトの発生まで待機状態となる。その後、ウォッチドッグタイマ520による監視時間となるタイムアウト時間として設定可能な最長時間225×TSCLK×15が経過したことによりタイムアウトが発生したときに、ウォッチドッグタイマ520がタイムアウト信号を出力する。これにより、タイムアウトの発生によるリセット動作が行われる。このときには、例えば所定のベクタテーブルにおける指定内容などに基づいて、ROM506に記憶されているユーザプログラム(ゲーム制御用の遊技制御処理プログラム)を示す制御コードの先頭から遊技制御の実行を開始することで、図26および図27に示すような遊技制御メイン処理が最初から実行される。これにより、パチンコ遊技機1に供給される電源電圧が短期間にて低下(瞬停)したときに、タイムアウトの発生によるリセット動作を行うことで、電力供給の瞬停から適切に復旧させることができる。また、図27に示すステップS53の処理が実行されるまでや、ステップS53の処理が実行されないときには、ウォッチドッグタイマ520を停止させているので、ウォッチドッグタイマ520により計測されるカウント値を定期的にクリア(初期化)してリスタートさせる必要がなく、遊技の進行を制御するための制御負担を軽減することができる。
図43は、パチンコ遊技機1の電源投入時に電源電圧の安定が確認できない場合の動作例を示すタイミングチャートである。図43に示す動作例でも、図42に示す動作例と同様に、タイミングT30にて図43(B)に示す電源電圧VCCが所定値VCC1に達する。これにより、図43(E)に示すリセット信号がオン状態からオフ状態となる。一方、図43に示す動作例では、タイミングT31にて電源電圧VSLが所定値VSL1に達しないことから、図43(C)に示す電源断信号がオン状態(ローレベル)であると判定される(図26のステップS25;Yes)。この判定結果に伴い、ステップS26の処理によりウォッチドッグタイマ520を起動させる。こうして、タイムアウトの発生によるリセット動作が有効化される。
図26に示すステップS26の処理が実行された後には、無限ループ処理が繰返し実行される。そのため、例えばタイミングT35にて、図43(A)に示す電源電圧VSLが所定値VSL1に達したときでも遊技制御処理(遊技制御用タイマ割込処理など)は実行されず、タイムアウトの発生まで待機状態となる。その後、ウォッチドッグタイマ520による監視時間となるタイムアウト時間として設定可能な最長時間225×TSCLK×15が経過したことによりタイムアウトが発生したときに、ウォッチドッグタイマ520がタイムアウト信号を出力する。これにより、タイムアウトの発生によるリセット動作が行われる。このときには、例えば所定のベクタテーブルにおける指定内容などに基づいて、ROM506に記憶されているユーザプログラム(ゲーム制御用の遊技制御処理プログラム)を示す制御コードの先頭から遊技制御の実行を開始することで、図26および図27に示すような遊技制御メイン処理が最初から実行される。これにより、パチンコ遊技機1の電源投入時に供給される電源電圧が短期間にて低下(瞬停)するなど不安定な場合に、タイムアウトの発生によるリセット動作を行うことで、電力供給の瞬停から適切に復旧させることができる。また、図26に示すステップS26の処理が実行されるまでや、ステップS26の処理が実行されないときには、ウォッチドッグタイマ520を停止させているので、ウォッチドッグタイマ520により計測されるカウント値を定期的にクリア(初期化)してリスタートさせる必要がなく、遊技の進行を制御するための制御負担を軽減することができる。
図26に示すステップS25、S26の処理は、ステップS32の処理によりRAM507へのアクセスが許可されるより先に実行される。これにより、パチンコ遊技機1の電源投入時に供給される電源電圧が短期間にて低下(瞬停)するなど不安定な場合に、RAM507に設けられたバックアップ用の記憶領域などにおける記憶内容の誤った変更(破損)を防止しつつ、タイムアウトの発生によるリセット動作を有効化して、電力供給の瞬停から適切に復旧させることができる。
ウォッチドッグタイマ520における監視時間となるタイムアウト時間は、予め定められた複数種類のうちで設定可能な最長時間となるように、図8(B)に示すリセット設定KRESのビット番号[5−4]やビット番号[3−0]におけるビット値を予め設定しておく。こうして、ウォッチドッグタイマ520におけるタイムアウト時間は、電力供給の停止により電源断信号がオン状態になってから、例えば電源電圧VSLが電源電圧VCCを生成可能な電圧値よりも低下する時間以上に設定されればよい。ウォッチドッグタイマ520は電源電圧VCCを駆動電圧として動作するので、タイムアウト時間は、電源スイッチの切断等による電力供給の停止時におけるウォッチドッグタイマ520の動作可能時間よりも長い時間に設定される。したがって、パチンコ遊技機1の電源スイッチが切断されたことなどによる電力供給停止時には、そのまま電源電圧が低下して供給停止に至るのであれば、タイムアウトが発生してリセット動作が行われるより前に、ウォッチドッグタイマ520および他の回路部品は動作しなくなる。したがって、電源スイッチの切断等による正しく電力供給が停止されるときに、誤ってリセット動作が行われることを防止して、電力供給の瞬停から適切に復旧させることができる。
第1始動入賞口や第2始動入賞口を遊技球が通過(進入)したときには、CPU505が図32に示すステップS204やステップS208にて、遊技球が通過(進入)した始動入賞口にかかわらず共通の始動口通過時処理を実行する。そして、例えば図33に示すステップS501〜ステップS512の処理といった、遊技球が通過した始動入賞口にかかわらず共通の処理ルーチンにおいて、特にステップS505およびステップS506の処理を実行することなどにより、乱数回路509Aが備えるハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bのうち、遊技球が通過した第1始動入賞口または第2始動入賞口に対応する乱数値レジスタから、乱数値となる数値データを読み出す。こうした共通の処理ルーチンにより乱数値となる数値データを読出可能にすることで、例えば第1始動入賞口や第2始動入賞口といった、複数の始動入賞口を設けたパチンコ遊技機1において、乱数値となる数値データを取得するためのプログラム量が過剰に増大することを防止できる。
主基板11では、電源基板10からの初期電力供給時(バックアップ電源のない電源投入時)や、システムリセットの発生後における再起動時などに、CPU505がROM506などに記憶されているセキュリティチェックプログラム506Aを読み出して実行することにより、遊技制御用マイクロコンピュータ100がセキュリティモードとなる。このときには、セキュリティチェックプログラム506Aに対応した処理として、例えば図25に示すようなセキュリティチェック処理が実行される。ここで、遊技制御用マイクロコンピュータ100がセキュリティモードとなるセキュリティ時間は、ROM506のプログラム管理エリアに記憶されているセキュリティ時間設定KSESに予め格納された設定データに応じて、一定の固定時間とは異なる時間成分を含むことができる。
例えば、セキュリティ時間設定KSESのビット番号[5−0]におけるビット値に応じて、図8(B)に示すような設定により、固定時間に加えて予め選択可能な複数の固定延長時間のいずれかを、セキュリティ時間に含まれる時間成分として設定することができる(図25のステップS2)。また、セキュリティ時間設定KSESのビット番号[7−6]におけるビット値が“00”以外の値であれば(ステップS4;No)、図8(B)に示すようなショートモード、ミドルモード、ロングモードのいずれかに対応して、システムリセットや電源投入に基づき初期設定処理が実行されるごとに所定の時間範囲で変化する可変延長時間を、セキュリティ時間に含まれる時間成分として設定することができる(ステップS5)。
こうして設定されたセキュリティ時間が経過するまでは(ステップS11;No)、ROM506に記憶されているユーザプログラムによる遊技制御メイン処理の実行が開始されない。そして、乱数回路509A、509Bによる乱数値となる数値データの生成動作も、遊技制御用マイクロコンピュータ100がセキュリティモード中である期間では、開始されないようにすればよい。これにより、パチンコ遊技機1の電源投入やシステムリセット等による動作開始タイミングから、乱数回路509A、509Bの動作開始タイミングや更新される数値データなどを特定することが困難になり、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に大当り遊技状態を発生させるなどの行為を、確実に防止することができる。
一例として、パチンコ遊技機1の機種毎に、セキュリティ時間設定KSESのビット番号[5−0]におけるビット値を異なる値に設定する。この場合には、図25に示すステップS2にて設定される固定延長時間を、パチンコ遊技機1の機種毎に異ならせることができ、パチンコ遊技機1の動作開始タイミングから乱数回路509A、509Bの動作開始タイミングを特定することが困難になる。また、セキュリティ時間設定KSESのビット番号[7−6]におけるビット値を“01”、“10”、“11”のいずれかに設定することにより、ステップS5にて設定される可変延長時間を、システムリセット毎に異ならせる。これにより、パチンコ遊技機1の動作開始タイミングから乱数回路509A、509Bの動作開始タイミングを特定することは著しく困難になる。
例えば第1始動入賞信号SS1や第2始動入賞信号SS2がオン状態になることといった所定信号の入力に基づいて、乱数回路509Aで乱数生成回路553Aや乱数列変更回路554Aなどにより予め定められた手順で更新される乱数列RSNに含まれる数値データがハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに格納されたときに、乱数ハードラッチフラグレジスタRHFに格納されるハードラッチフラグデータRL00HF〜RL03HFのビット値を“0”から“1”へと変化させる。そして、対応するハードラッチ選択レジスタRL0LSのビット番号[3]におけるビット値が“0”である場合には、数値データを格納したハードラッチ乱数値レジスタ559Aあるいはハードラッチ乱数値レジスタ559Bに対応する乱数ラッチフラグがオン状態になることで、新たな数値データの格納が制限される。その一方で、例えばCPU505が図33に示すステップS506の処理を実行したときといった、乱数値の読出タイミングにてハードラッチ乱数値レジスタ559Aあるいはハードラッチ乱数値レジスタ559Bから乱数値となる数値データが読み出されたときに、その数値データが読み出されたハードラッチ乱数値レジスタ559Aあるいはハードラッチ乱数値レジスタ559Bに対応する乱数ラッチフラグがオフ状態になり新たな数値データの格納が許可される。これにより、所定信号の入力に基づいてハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに格納された数値データは、CPU505などによって読み出されるまでにノイズ等により改変されてしまうことがなく、正確な乱数値となる数値データを取得することができる。
そして、遊技制御用マイクロコンピュータ100のCPU505などにより遊技制御の実行が開始されるときには、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bから数値データを読み出すことで、各乱数ラッチフラグをオフ状態に設定することができる。これにより、パチンコ遊技機1などの遊技機における電力供給が停止された後に電力供給が再開されたときや電源投入時などの電源電圧が不安定な状態で誤ってハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに格納された数値データが、乱数値として取得されてしまうことを防止できる。
第1始動入賞口を通過(進入)した遊技球が検出されて図32に示すステップS203にて第1始動口スイッチ22Aがオンであると判定されたときにはステップS204において、また、第2始動入賞口を通過(進入)した遊技球が検出されて図32に示すステップS207にて第2始動口スイッチ22Bがオンであると判定されたときにはステップS208において、遊技球が通過(進入)した始動入賞口にかかわらず共通の始動口通過時処理が実行される。そして、例えば図33に示すステップS505およびステップS506の処理といった、遊技球が通過した始動入賞口にかかわらず共通の処理ルーチンにおいて、乱数回路509Aが備えるハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bのうち、遊技球が通過した第1始動入賞口または第2始動入賞口に対応する乱数値レジスタから、乱数値となる数値データを読み出す。これにより、例えば第1始動入賞口や第2始動入賞口といった、複数の始動入賞口を設けたパチンコ遊技機1において、プログラム量の過剰な増大を防止することができる。
図33に示すステップS502にて保留記憶カウンタの読出値が上限値以上であると判定されたことに対応して、乱数値の読出タイミングにて第1特図保留記憶部や第2特図保留記憶部における保留データの記憶数が上限記憶数に達しているときには、ステップS512の処理において、遊技球が通過した第1始動入賞口または第2始動入賞口に対応するハードラッチ乱数値レジスタ559Aまたはハードラッチ乱数値レジスタ559Bから、乱数値となる数値データを読み出すことにより、対応する乱数ラッチフラグをオフ状態に設定する。これにより、第1特図保留記憶部や第2特図保留記憶部における保留データの記憶数が上限記憶数に達した後、例えば上限記憶数未満となってから乱数値の読出タイミングとなったときなどに、第1始動入賞信号SS1や第2始動入賞信号SS2といった所定信号の入力に基づく正確な乱数値を取得することができる。
図7(A)や図10に示すセキュリティ時間設定KSESのビット番号[7−6]におけるビット値を“00”以外の値としたときには、システムリセットや電源投入に基づき初期設定処理が実行されるごとに所定の時間範囲で変化する可変延長時間を、セキュリティ時間に含まれる時間成分として設定する。また、図7(A)や図10に示すセキュリティ時間設定KSESのビット番号[5−0]におけるビット値に応じて、固定時間に加えて予め選択可能な複数の固定延長時間のいずれかを、セキュリティ時間に含まれる時間成分として設定する。これにより、パチンコ遊技機1の電源投入やシステムリセット等による動作開始タイミングから、乱数回路509A、509Bの動作開始タイミングや更新される数値データなどを特定することが困難になり、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に大当り遊技状態を発生させるなどの行為を、確実に防止することができる。
例えば16ビットの乱数回路509Aでは、乱数生成回路553Aから出力されたカウント値順列RCNを乱数列変更回路554Aが予め定められた乱数変更規則に基づいて変更することで、数値データを所定手順により所定の更新初期値から所定の更新最終値まで循環的に更新する。そして、図7(A)や図9(C)に示す16ビット乱数初期設定第3KRL3のビット番号[6]などにおけるビット値を“1”としたときには、乱数回路509Aにて生成される乱数値となる数値データのスタート値を、システムリセット毎に変更する。8ビットの乱数回路509Bについても、同様にして乱数値のスタート値を変更できればよい。これにより、たとえ乱数回路509A、509Bの動作開始タイミングを特定することができたとしても、乱数回路509A、509Bが備えるハードラッチ乱数値レジスタから読み出される数値データを特定することは困難になり、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」の接続による不正信号の入力などを、確実に防止することができる。
より具体的には、フリーランカウンタ509Cなどにより、遊技制御用マイクロコンピュータ100のCPU505における動作とは別個に初期値決定用データとなるカウント値が更新される。そして、乱数回路509A、509Bのスタート値設定回路553Cによる設定などに基づき、フリーランカウンタ509Cのカウント値などを用いて乱数値となる数値データのスタート値が決定される。これにより、遊技制御用マイクロコンピュータ100のCPU505における動作態様から乱数値となる数値データを特定することが困難になり、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」の接続による不正信号の入力などを、確実に防止することができる。
遊技制御用マイクロコンピュータ100が備える外部バスインタフェース501では、内部リソースアクセス制御回路501Aにより、例えばROM506の記憶データといった、遊技制御用マイクロコンピュータ100の内部データにつき、CPU505等の内部回路以外による外部読出が制限される。これにより、例えばROM506に記憶されているゲーム制御用のユーザプログラムといった、遊技制御処理プログラムが遊技制御用マイクロコンピュータ100の外部から読み出されて解析などに提供されることを防止できる。そして、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」の接続による不正信号の入力などを、確実に防止することができる。
遊技制御用マイクロコンピュータ100に内蔵または外付けされた乱数回路509A、509Bに周波数監視回路を設け、乱数用クロック生成回路112から供給された乱数用クロックRCKの入力状態を内部システムクロックSCLKと比較して、乱数用クロックRCKにおける周波数異常が検知されたときに、内部情報レジスタCIFの所定ビット番号におけるビット値を“1”に設定してもよい。そして、CPU505では、例えば遊技制御メイン処理にて内部情報レジスタCIFの所定ビット番号におけるビット値が“1”であると連続して判定された回数が、所定のクロック異常判定値に達したと判定されたときに、乱数回路509A、509Bの動作状態に異常が発生したと判定してもよい。これにより、乱数用クロックRCKとして不正信号を入力することによる不正行為を確実に防止することができる。
遊技制御用マイクロコンピュータ100のCPU505は、パチンコ遊技機1における電源供給の開始などに基づいて遊技制御用マイクロコンピュータ100のシステムリセットが解除されたときに、所定の乱数値レジスタ読出処理を実行することにより、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに格納された数値データを読み出して、対応する乱数ラッチフラグをオフ状態としてもよい。これにより、例えば電源投入時などの電源電圧が不安定な状態で誤ってハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに格納された数値データを乱数値として取得してしまうことを防止できる。
また、図27に示すステップS51にて電源断信号がオン状態であると判定されたことなどに対応して、例えば電源電圧VSLといった所定電源電圧の低下が検出された後、遊技制御用マイクロコンピュータ100が動作停止状態となるまでは、図28(A)に示すステップS25およびステップS25Bの処理を実行することにより、電源断信号の入力状態を繰り返し判定してもよい。そして、ステップS25にて電源断信号がオフ状態となり入力されていない旨の判定がなされたときに、ROM506に記憶された制御コードの先頭から遊技制御が開始されるより前に、所定の乱数値レジスタ読出処理を実行して、オン状態となっている乱数ラッチフラグをオフ状態にしてもよい。これにより、例えば電源電圧VSLといった所定電源電圧の低下時などの電源電圧が不安定な状態で誤ってハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに格納された数値データを乱数値として取得してしまうことを防止できる。
この発明は、上記実施の形態に限定されず、様々な変形および応用が可能である。例えばパチンコ遊技機1は、上記実施の形態で示した全ての技術的特徴を備えるものでなくてもよく、従来技術における少なくとも1つの課題を解決できるように、上記実施の形態で説明した一部の構成を備えたものであってもよい。具体的な一例として、上記実施の形態では、図26に示すステップS26の処理によりウォッチドッグタイマ520を起動してタイムアウトの発生によるリセット動作を有効化するとともに、図27に示すステップS53の処理によりウォッチドッグタイマ520を起動してタイムアウトの発生によるリセット動作を有効化するものとして説明した。これに対して、ステップS26の処理とステップS53の処理のうち、いずれか一方の処理によりウォッチドッグタイマ520を起動してタイムアウトの発生によるリセット動作を有効化するが、他方の処理は実行されないものであってもよい。
上記実施の形態では、第1特別図柄表示装置4Aおよび第2特別図柄表示装置4Bを備えたパチンコ遊技機1について説明したが、1つの特別図柄表示装置のみが設けられたものであってもよい。この場合には、例えば図15に示す乱数回路509Aが備えるハードラッチセレクタ558Bとハードラッチ乱数値レジスタ559Bの組合せを不使用に設定すればよい。
上記実施の形態では、16ビットの乱数回路509Aにおいて、乱数更新クロック選択回路551や乱数生成回路553A、乱数列変更回路554A、最大値比較回路555などが、第1始動入賞口における遊技球の始動入賞に基づき乱数値となる数値データを取得するように構成されたハードラッチセレクタ558Aおよびハードラッチ乱数値レジスタ559Aの組合せと、第2始動入賞口における遊技球の始動入賞に基づき乱数値となる数値データを取得するように構成されたハードラッチセレクタ558Bおよびハードラッチ乱数値レジスタ559Bの組合せとに対して、共通化されるものとして説明した。しかしながら、この発明はこれに限定されず、第1始動入賞口における遊技球の始動入賞であるか、第2始動入賞口における遊技球の始動入賞であるかに応じて、別個の乱数列RSNにおける数値データから乱数値となる数値データを取得するように構成してもよい。一例として、16ビットの乱数回路509Aにおいて、チャネルch0に対応して16ビットのハードラッチ乱数値レジスタ559Aを設けて、第1始動入賞口における遊技球の始動入賞に基づき乱数値となる数値データを取得する。一方、チャネルch0とは独立して乱数値が更新されるチャネルch1に対応して16ビットのハードラッチ乱数値レジスタ559Bを設けて、第2始動入賞口における遊技球の始動入賞に基づき乱数値となる数値データを取得してもよい。
また、普通入賞球装置6Aが形成する第1始動入賞口と、普通可変入賞球装置6Bが形成する第2始動入賞口とが、複数の始動領域として設けられるものに限定されず、例えば3個以上といった複数の始動領域が設けられるものであってもよい。この場合、各始動領域にて遊技球の始動入賞が検出されたことに基づき、互いに異なる特別図柄を用いた特図ゲームを実行するための始動条件が成立するようにしてもよい。そして、乱数回路509Aには、始動領域の個数に対応して3個以上といった複数のハードラッチ乱数値レジスタが設けられ、また、各乱数値レジスタに対応した乱数ラッチフラグが設けられるようにすればよい。あるいは、例えば3個以上の始動領域のうちで、一部(少なくとも2個)の始動領域にて遊技球の始動入賞が検出されたことに基づき、同一の特別図柄を用いた特図ゲームを実行するための始動条件が成立するようにしてもよい。また、複数の始動領域のうち、いずれの始動領域にて遊技球の始動入賞が検出された場合でも、共通する1個(あるいは1組)の特別図柄を用いた特図ゲームを実行するための始動条件が成立するようにしてもよい。この場合には、複数の始動領域において遊技球の始動入賞が検出された順番と同一の順番で、特図ゲームを開始するための開始条件が成立するようにしてもよい。あるいは、複数の始動領域に優先順位を付け、優先順位が高い始動領域にて遊技球の始動入賞が検出されたことに基づく特図ゲームを開始するための開始条件を、優先順位が低い始動領域にて遊技球の始動入賞が検出されたことに基づく開始条件よりも、優先的に成立させるようにしてもよい。
ウォッチドッグタイマ520にてタイムアウトが発生したことによりリセット動作が行われたときには、ハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bから数値データを読み出して、各乱数ラッチフラグをオフ状態に設定するための処理が実行されてもよい。これにより、例えばパチンコ遊技機1において電力供給が瞬停したときに電源電圧が不安定な状態で誤ってハードラッチ乱数値レジスタ559Aやハードラッチ乱数値レジスタ559Bに格納された数値データが、乱数値として取得されてしまうことを防止できる。
図25のステップS2にて設定される固定延長時間は、例えばROM506に記憶されたユーザプログラムにおける設定などにより、システムリセット毎に複数の固定延長時間のいずれかに決定するようにしてもよい。この場合には、ステップS2にて設定される固定延長時間がいずれも、ステップS5にて設定可能な最長の可変延長時間に比べて、長くなるように定義しておく。そして、ステップS2では大まかな延長時間を決定した後、ステップS5では詳細な延長時間を決定すればよい。これにより、パチンコ遊技機1の電源投入時やシステムリセット時にセキュリティモードとなるセキュリティ時間を、システムリセット毎に大きく変化させることが可能になり、パチンコ遊技機1の動作開始タイミングから乱数回路509A、509Bの動作開始タイミングや更新される数値データなどを特定することが、より困難になる。
また、固定時間に加算される固定延長時間などは、遊技制御用マイクロコンピュータ100を構成するチップ毎に付与されるIDナンバーを用いて決定されるようにしてもよい。一例として、IDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算の一部または全部を実行して、算出された値に対応して延長時間を設定してもよい。この場合には、例えばシステムリセット毎に延長時間を決定するために用いる演算式を変更することなどにより、システムリセット毎に延長時間がランダムに決定されるようにしてもよい。さらに、例えばIDナンバーを用いて延長時間を決定するための演算式をシステムリセット時に格納したフリーランカウンタのカウント値に対応して決定するといったように、フリーランカウンタのカウント値と、IDナンバーとを組み合わせて使用することなどにより、システムリセット毎に延長時間がランダムに決定されるようにしてもよい。また、乱数回路509A、509Bにて生成される乱数のスタート値をシステムリセット毎に変更する場合にも、フリーランカウンタのカウント値と、IDナンバーとを組み合わせて使用することなどにより、乱数のスタート値を決定してもよい。
遊技制御用マイクロコンピュータ100のCPU505に供給されるクロック信号と、乱数回路509A、509Bに供給されるクロック信号は、共通のクロック生成回路に含まれる1つの発振器により生成された発振信号を用いて、生成されるようにしてもよい。この場合には、例えば乱数用クロックRCKと制御用クロックCCLKをそれぞれ生成するための分周器などを設け、ラッチ用クロックと制御用クロックCCLKあるいは内部システムクロックSCLKとの同期が生じにくくなるように、各分周器における分周比などを設定すればよい。制御用クロック生成回路111と乱数用クロック生成回路112とは、その一部または全部が、遊技制御用マイクロコンピュータ100の内部に設けられてもよいし、遊技制御用マイクロコンピュータ100の外部に設けられてもよい。
乱数更新クロックRGKやラッチ用クロックとなる発振信号は、例えば乱数用クロック生成回路112といった、乱数回路509A、509Bの外部において生成されるようにしてもよい。あるいは、乱数回路509A、509Bの内部にて、乱数更新クロックRGKを生成するための回路と、ラッチ用クロックRC0を生成するための回路とを、別個に設けるようにしてもよい。一例として、クロック用フリップフロップと同様のフリップフロップにより乱数更新クロックRGKを生成する一方で、乱数更新クロックRGKの信号状態を反転させる反転回路を設け、その反転回路から出力される信号を、ラッチ用クロックとして用いるようにしてもよい。
ROM506の外部読出などを制限する場合には、例えば遊技制御用マイクロコンピュータ100にてROM506の記憶データを外部読出するための接続端子などを、パチンコ遊技機1の提供者において外部装置が接続不能に封止されてもよい。
上記実施の形態では、図31に示すステップS141の変動パターン設定処理として、第1開始条件と第2開始条件のいずれが成立したかに関わりなく、図36(A)のフローチャートに示すような処理が実行されるものとして説明した。しかしながら、この発明はこれに限定されず、第1開始条件が成立した場合と第2開始条件が成立した場合とでは、互いに異なる処理を実行して、変動パターン種別を複数種類のいずれとするかの決定や、変動パターンを複数種類のいずれとするかの決定を行うようにしてもよい。この場合、変動パターン種別を決定するための処理や、変動パターンを決定するための処理は、第1開始条件と第2開始条件のいずれが成立したかに応じて異ならせる一方で、変動パターン種別決定用の乱数値MR3を示す数値データや、変動パターン決定用の乱数値MR4を示す数値データとしては、第1開始条件と第2開始条件のいずれが成立したかに関わりなく、共通の数値データを用いるようにすればよい。
また、変動パターン種別決定テーブルとして、第1開始条件と第2開始条件のいずれが成立したかに応じて、各変動パターン種別に対する決定値の割当てを異ならせたものを予め用意してもよい。そして、第1開始条件の成立に対応して実行される変動パターン設定処理では、第1開始条件の成立に応じた変動パターン種別決定テーブルを使用テーブルとして選択し、変動パターン種別決定用の乱数値MR3に基づいて、変動パターン種別を複数種類のいずれかに決定する。これに対して、第2開始条件の成立に対応して実行される変動パターン設定処理では、第2開始条件の成立に応じて第1開始条件が成立した場合とは異なる変動パターン種別決定テーブルを使用テーブルとして選択し、第1開始条件が成立した場合と共通の変動パターン種別決定用の乱数値MR3に基づいて、変動パターン種別を複数種類のいずれかに決定すればよい。
さらに、飾り図柄の可変表示状態をリーチ状態とするか否かの決定処理についても、第1開始条件が成立した場合と第2開始条件が成立した場合とでは、互いに異なる処理が実行されるようにしてもよい。この場合、リーチ状態とするか否かの処理は、第1開始条件と第2開始条件のいずれが成立したかに応じて異ならせる一方で、リーチ決定用の乱数値を示す数値データとしては、第1開始条件と第2開始条件のいずれが成立したかに関わりなく、共通の数値データを用いるようにすればよい。
上記実施の形態では、可変表示結果が「小当り」となったことに基づいて小当り遊技状態に制御され、小当り遊技状態が終了した後には、遊技状態の変更が行われない。その一方で、可変表示結果が「大当り」となる場合に大当り種別が「突確」となったことに基づいて2ラウンド大当り状態に制御され、2ラウンド大当り状態が終了した後には、確変状態に制御されるものとして説明した。しかしながら、この発明はこれに限定されず、大当り種別が「突確」となる場合や可変表示結果が「小当り」となる場合に代えて、あるいは、これらの場合に加えて、「突然時短」や「突然通常」となる場合を設けるようにしてもよい。一例として、「突然時短」と「突然通常」は、可変表示結果が「大当り」となる場合における大当り種別に含まれるものとする。この場合、大当り種別決定テーブルは、変動特図指定バッファ値に応じて、大当り種別決定用の乱数値MR2を、「突然時短」や「突然通常」の大当り種別に割り当てるテーブルデータが含まれるように構成されればよい。そして、可変表示結果が「大当り」となる場合に大当り種別が「突然時短」となるときには、大当り種別が「突確」の場合と同様にして2ラウンド大当り状態に制御され、2ラウンド大当り状態が終了した後には、大当り種別が「突確」の場合とは異なり時短状態に制御される。他方、可変表示結果が「大当り」となる場合に大当り種別が「突然通常」となるときには、大当り種別が「突確」の場合と同様にして2ラウンド大当り状態に制御され、2ラウンド大当り状態が終了した後には、大当り種別が「突確」の場合とは異なり通常状態に制御される。これにより、2ラウンド大当り状態の終了後に制御される遊技状態に対する遊技者の期待感を高め、遊技興趣を向上させることができる。
このような「突然時短」や「突然通常」を設ける場合には、「突然時短」および「突然通常」以外である場合とは異なる変動パターン種別や変動パターンに決定するようにしてもよい。これにより、大当り種別が「突然時短」や「突然通常」であることにより2ラウンド大当り状態に制御されるにもかかわらず、15ラウンド大当り状態に制御される場合と同様の演出動作が行われて遊技者に不信感を与えてしまうことを防止できる。また、大当り種別が「突然時短」や「突然通常」となる場合には、可変表示結果が「小当り」となる場合、あるいは、大当り種別が「突確」となる場合と、共通の変動パターン種別に決定可能としてもよい。これにより、変動パターンを決定する際には、大当り種別が「突然時短」や「突然通常」となる場合であるか、可変表示結果が「小当り」となる場合あるいは大当り種別が「突確」となる場合であるかに関わりなく、共通の変動パターン決定テーブルを用いることができ、データ容量の削減を図ることができる。
上記実施の形態では、可変表示結果が「大当り」となったことに基づく大当り遊技状態が終了した後に、確変状態や時短状態といった遊技状態に制御できるものとして説明した。そして、確変状態や時短状態では、第2始動入賞口に遊技球が進入する可能性を高めて第2始動条件が成立しやすくなることで遊技者にとって有利となる制御が行われるものとして説明した。しかしながら、この発明はこれに限定されず、例えば確変状態には、継続して確変制御が行われるとともに、第2始動入賞口に遊技球が進入する可能性を高める有利開放制御が行われる高確高ベース状態と、確変制御は行われるが有利開放制御は行われない高確低ベース状態とが含まれるようにしてもよい。また、時短状態には、特図変動時間が短縮されるとともに有利開放制御が行われる低確高ベース状態と、特図変動時間は短縮されるが有利開放制御は行われない低確低ベース状態とが含まれるようにしてもよい。一例として、大当り種別が「確変」および「突確」のいずれであるかに対応して、大当り遊技状態の終了後に、高確高ベース状態と高確低ベース状態のいずれかに制御されるようにしてもよい。他の一例として、大当り種別が「確変」および「突確」のいずれであるかに応じて、大当り遊技状態の終了後に高確高ベース状態と高確低ベース状態のいずれかに制御される割合を、互いに異ならせるようにしてもよい。
大当り種別が「突確」である場合に変動パターン種別を複数種類のいずれかに決定する際には、大当り遊技状態の終了後に高確高ベース状態と高確低ベース状態のいずれに制御するかに応じて、異なる変動パターン種別に決定するようにしてもよい。一例として、図34に示すステップS236にて大当り種別が「突確」に決定された際には、大当り遊技状態の終了後に高確高ベース状態と高確低ベース状態のいずれに制御するかを決定するための判定処理を実行する。このとき、高確低ベース状態に制御することが決定された場合には、大当り種別が「突確」となる場合と可変表示結果が「小当り」となる場合で共通の変動パターン種別に決定する。これに対して、高確高ベース状態に制御することが決定された場合には、大当り種別が「突確」となる場合のみに専用の変動パターン種別に決定すればよい。これにより、大当り種別が「突確」で大当り遊技状態の終了後に高確低ベース状態となる場合には、飾り図柄の可変表示中における演出動作や2ラウンド大当り状態における演出動作として、可変表示結果が「小当り」となる場合と共通の演出動作が行われた後、高確低ベース状態となることができる。他方、大当り種別が「突確」で大当り遊技状態の終了後に高確高ベース状態となる場合には、飾り図柄の可変表示中における演出動作や2ラウンド大当り状態における演出動作として、大当り種別が「突確」となる場合のみに専用の演出動作が行われた後、高確高ベース状態となることができる。
上記実施の形態では、画像表示装置5の表示領域において、「左」、「中」、「右」の飾り図柄表示エリア5L、5C、5Rが設けられ、各飾り図柄表示エリア5L、5C、5Rにて1個の飾り図柄が停止表示されることで、予め定められた1個の有効ライン上に最終停止図柄となる確定飾り図柄が停止表示されるものとして説明した。しかしながら、この発明はこれに限定されず、例えば「左」、「中」、「右」の各飾り図柄表示エリア5L、5C、5Rにて「上段」、「中段」、「下段」の3カ所に飾り図柄を停止表示可能とし、5個あるいは8個の有効ライン上に最終停止図柄となる確定飾り図柄が停止表示されるようにしてもよい。
その他にも、パチンコ遊技機1の装置構成、データ構成、フローチャートで示した処理、画像表示装置5の表示領域における演出画像の表示動作を含めた各種の演出動作などは、本発明の趣旨を逸脱しない範囲で、任意に変更や修正が可能である。加えて、本発明の遊技機は、入賞球の検出に応答して所定数の賞球を払い出す払出式遊技機に限定されるものではなく、遊技球を封入し入賞球の検出に応答して得点を付与する封入式遊技機にも適用することができる。
上記実施の形態では、遊技機の例として、特別図柄や飾り図柄を可変表示する機能や各種の演出画像を表示する機能を有するパチンコ遊技機1を用いて説明した。しかしながら、上記実施の形態におけるパチンコ遊技機1が備える構成や機能の少なくとも一部は、スロットマシンなどの他の遊技機にも適用することができる。この場合には、例えば図5に示すPIP510が備える入力ポートPI0に、スロットマシンが備えるスタートレバースイッチからの検出信号を入力する。スタートレバースイッチは、複数のリールを回転させることによりゲームを開始するためのスタートレバーに対する操作を検出したときに、オン状態となる検出信号を出力する。16ビットの乱数回路509Aでは、例えば図15に示すハードラッチセレクタ558Aとハードラッチ乱数値レジスタ559Aの組合せを使用して、最大値比較回路555から出力される乱数列RSNにおける数値データを乱数値として取得可能に構成する一方で、ハードラッチセレクタ558Bとハードラッチ乱数値レジスタ559Bの組合せを不使用に設定すればよい。
スロットマシンの筐体内部には、外周に複数種の図柄が配列された複数(例えば3つ)のリールを水平方向に並設した可変表示装置が設けられている。また、スロットマシンの前面扉には、上記実施の形態における画像表示装置5と同様の表示機能を有する画像表示装置が設けられている。各リールの外周部には、例えば「赤7」、「白7」、「BAR」、「JAC」、「スイカ」、「チェリー」、「ベル」といった、互いに識別可能な複数種類の図柄が所定の順序で描かれている。各リールの外周部に描かれた図柄は、可変表示装置にて各々上中下三段に表示されている。各リールは、スタートレバーに対する所定操作(例えば押下操作など)に応答して回転することで、各リールの図柄が連続的に変化しつつ表示される。こうして、複数種類の識別情報となる複数の図柄が可変表示される。
そして、各リールの回転を停止させるときには、各リールに対応して設置された複数のストップスイッチを遊技者が操作する。なお、リールの回転が開始された後、所定時間が経過してもストップスイッチの操作がなされないときには、自動的にリールの回転が停止してもよい。
スロットマシンにおける前面扉の所定位置には、例えばメダルといった遊技媒体を投入可能な投入口や、遊技媒体を1単位(例えばメダル1枚)ずつ賭数として設定(BET)するためのBETスイッチ、1ゲームで賭けることのできる最高単位数(例えばメダル3枚分)の賭数を設定するためのMAXBETスイッチ、クレジット(遊技者所有の遊技用価値として記憶されている遊技媒体数)として記憶されている遊技媒体や賭数の設定に用いた遊技媒体を精算するための精算スイッチなどが設けられている。
スロットマシンにおいてゲームを行う場合には、まず、遊技媒体を投入口から投入するか、あるいはクレジットを使用して賭数を設定する。クレジットを使用する場合にはBETスイッチ又はMAXBETスイッチを操作する。こうして賭数が設定されると、その賭数に応じた複数の入賞ラインのいずれかが有効となり、スタートレバーの操作が有効な状態、すなわち、ゲームが実行可能な状態となって、可変表示の実行条件が成立する。なお、前回のゲームにてリプレイなどの再遊技役の入賞が発生した場合には、続けて次のゲームが実行可能となり、可変表示の実行条件が成立する。こうしてゲームが実行可能な状態でスタートレバーが操作されると、可変表示の開始条件が成立したことに対応して、各リールが回転し、図柄が連続的に変動する。各リールが回転することによる図柄の変動中には、画像表示装置における演出画像の表示動作や、スピーカからの音声出力動作、遊技効果ランプの点灯動作などにより、各種の演出動作が実行される。例えば、画像表示装置では、各リールの外周部に描かれた図柄と同一の図柄、または、各リールの図柄とは異なるものの当該図柄と対応付けられた図柄が、演出用識別情報として可変表示されればよい。また、図柄の変動が終了した後にも、例えば入賞の発生を報知する演出動作や、デモンストレーションとなる演出動作といった、各種の演出動作が実行されてもよい。この状態で複数のストップスイッチのいずれかが操作されると、対応するリールの回転が停止し、表示結果が視認可能に導出表示される。
そして、全てのリールの回転が停止されることで1ゲームが終了し、有効化されたいずれかの入賞ライン上に予め定められた役と呼ばれる図柄の組合せが各リールの表示結果として停止した場合には入賞が発生する。入賞となる役の種類には、大別して、メダルの付与を伴う小役と、賭数の設定を必要とせずに次のゲームを開始可能となる再遊技役と、遊技状態の移行を伴う特別役とがあり、遊技状態に応じて入賞となる役が定められている。スロットマシンでは、スタートレバーが操作されたタイミングで上記実施の形態における16ビットの乱数回路509Aと同様の乱数回路などから抽出した乱数値に基づき、遊技状態に応じて定められた各役の入賞の発生を許容するか否かを決定する内部抽選を行う。この内部抽選に当選して入賞の発生が許容されていることを、「内部当選している」ともいう。各役の当選のうち、小役や再遊技役の当選は、その当選が決定されたゲームにおいてのみ有効とされるが、特別役の当選は、その内部抽選により発生が許容された役が揃うまで有効とされる。すなわち特別役となる入賞の発生が一度許容されると、例え、各ゲームにて特別役となる入賞を発生させることができなかった場合でも、その当選は次のゲームへ持ち越されることになる。
スロットマシンにおける遊技状態には、特定遊技状態と通常遊技状態とが含まれている。特定遊技状態には、レギュラーボーナスやビッグボーナスの他、AT(アシストタイム)、CT(チャレンジタイム)、RT(リプレイタイム)、ART(アシストリプレイタイム)などが含まれてもよい。レギュラーボーナスの遊技状態では、例えばJAC、チェリー、スイカおよびベルなどの小役が、入賞となる役として定められており、内部抽選での抽選対象とされる。ビッグボーナスの遊技状態では、所定の小役ゲームにおいて、例えばチェリー、スイカおよびベルなどの小役や、レギュラーボーナス(あるいはJACIN)などの特別役が、入賞となる役として定められており、各小役ゲームにおける内部抽選での抽選対象とされる。ATの遊技状態では、各リールの停止順や停止タイミング等の入賞条件に一致する操作を行わないと入賞を出現させることができない特定役の入賞条件が報知される。CTの遊技状態では、各リールが一定の範囲で無制御となることで狙った特定の小役を入賞させることが可能になる。RTの遊技状態では、リプレイなどの再遊技役が高確率で入賞する。ARTの遊技状態では、ATの遊技状態とRTの遊技状態とが組み合わされる。通常遊技状態では、例えばチェリー、スイカおよびベルなどの小役や、リプレイなどの再遊技役、ビッグボーナス、レギュラーボーナスなどの特別役が、入賞となる役として予め定められており、各ゲームにおける内部抽選での抽選対象とされる。
スロットマシンには、上記実施の形態における電源基板10と共通の構成および機能を含んだ電源基板や、主基板11と共通の構成および機能を含んだ主基板や、演出制御基板12と共通の構成および機能を含んだ演出制御基板、払出制御基板15と共通の構成および機能を含んだ払出制御基板などが搭載されている。なお、各制御基板は、スロットマシンにおけるゲームの進行や演出内容に応じて、上記実施の形態における制御基板とは異なる構成や機能を含んでいてもよい。
スロットマシンの主基板には、上記実施の形態における遊技制御用マイクロコンピュータ100と共通の構成および機能を含んだ遊技制御用マイクロコンピュータなどが搭載されている。例えば、この遊技制御用マイクロコンピュータには、上記実施の形態におけるCPU505と同様の制御を実行可能なCPUや、ROM506と同様のユーザプログラムや固定データを記憶可能なROM、RAM507と同様のワークエリアを提供可能なRAMなどが内蔵されていればよい。また、上記実施の形態におけるリセットコントローラ504A(ウォッチドッグタイマ520を含む)と一部または全部が共通するリセットコントローラや、乱数回路509A、509Bと一部または全部が共通する乱数回路が、遊技制御用マイクロコンピュータに内蔵または外付けされていればよい。
そして、一例として、スロットマシンが備える遊技制御用マイクロコンピュータに内蔵されたCPUは、図26に示すステップS26に相当する処理を実行することにより、初期設定処理においてRAMへのアクセスを許可する処理より先に電源断信号がオン状態であると判定されたときに、ウォッチドッグタイマを起動してタイムアウトの発生によるリセット動作を有効化すればよい。また、スロットマシンが備える遊技制御用マイクロコンピュータに内蔵されたCPUは、図27に示すステップS53に相当する処理を実行することにより、電源断信号がオン状態であることに応じたメイン側電源断処理の実行に伴い、ウォッチドッグタイマを起動してタイムアウトの発生によるリセット動作を有効化すればよい。
スロットマシンは、メダル並びにクレジットを使用してゲームを実施可能なものに限らず、例えばパチンコ球を用いてゲームを行うスロットマシンや、メダルが外部に排出されることなくクレジットを使用して遊技可能な完全クレジット式のスロットマシン、可変表示装置が図柄を示す画像の表示を行う画像式のスロットマシンなどにも適用することができる。
パチンコ遊技機1やスロットマシンが備える構成や機能の一部または全部を実現するためのプログラムやデータは、コンピュータ装置等に対して、着脱自在の記録媒体により配布・提供される形態に限定されるものではなく、予めコンピュータ装置等の有する記憶装置にプリインストールしておくことで配布される形態を採っても構わない。さらに、本発明を実現するためのプログラムやデータの一部または全部は、通信処理部を設けておくことにより、通信回線等を介して接続されたネットワーク上の、他の機器からダウンロードすることによって配布する形態を採っても構わない。
以上説明したように、上記実施の形態におけるパチンコ遊技機1などの遊技機では、ROM506のプログラム管理エリアに記憶されるリセット設定KRESのビット番号[6]におけるビット値を“1”に設定することで、ユーザプログラム(ソフトウェア)でウォッチドッグタイマ520の起動と停止とを切替可能にする。遊技制御用マイクロコンピュータ100のCPU505は、図27に示すステップS51の処理にて電源断信号がオン状態であると判定したときに、ステップS52のメイン側電源断処理を実行した後に無限ループ処理を繰返し実行する待機状態に移行させるとともに、メイン側電源断処理の実行に伴うステップS53の処理にて、ウォッチドッグタイマ520を起動させてタイムアウトの発生によるリセット動作を有効化する。このように、電源断信号がオン状態であると判定されてからウォッチドッグタイマ520を起動させることで、パチンコ遊技機1における遊技の進行を制御するときにはウォッチドッグタイマ520における監視時間の計測を定期的にクリア(初期化)してリスタートさせる必要がない。これにより、遊技の進行を制御するための制御負担を軽減しつつ、パチンコ遊技機1などの遊技機における電力供給の瞬体から適切に復旧させることができる。
また、遊技制御用マイクロコンピュータ100のCPU505は、パチンコ遊技機1における電力供給が開始されたときに、図26に示すステップS32の処理によりRAM507へのアクセスが許可されるより先に、ステップS25の処理により電源断信号がオン状態であるか否かを判定する。このとき電源断信号がオン状態であると判定された場合には、無限ループ処理を繰返し実行する待機状態に移行させることに伴うステップS26の処理にて、ウォッチドッグタイマ520を起動させてタイムアウトの発生によるリセット動作を有効化する。このように、電力供給の開始時やリセット動作の実行時に電源断信号がオン状態であると判定されてからウォッチドッグタイマ520を起動させることで、パチンコ遊技機1における遊技の進行を制御するときにはウォッチドッグタイマ520における監視時間の計測を定期的にクリア(初期化)してリスタートさせる必要がない。これにより、遊技の進行を制御するための制御負担を軽減しつつ、パチンコ遊技機1などの遊技機における電力供給の瞬停から適切に復旧させることができる。
例えば図8(B)に示すリセット設定KRESにおいて、ビット番号[5−4]およびビット番号[3−0]におけるビット値を設定することにより、ウォッチドッグタイマ520により計測される監視時間は、予め定められた複数種類のうちから設定することができる。こうしたリセット設定KRESのビット番号[5−4]におけるビット値が“11”でビット番号[3−0]におけるビット値が“1111”となるように設定することで、監視時間となるタイムアウト時間として設定可能な最長時間を設定する。これにより、例えばパチンコ遊技機1における電源スイッチの切断等により電力供給が所定期間にわたり完全に停止したときには、タイムアウトの発生によるリセット動作が行われないように制限することで、誤ってリセットされてしまうことを防止しつつ、パチンコ遊技機1などの遊技機における電力供給の瞬停から適切に復旧させることができる。
図26に示すステップS26の処理や図27に示すステップS53の処理では、図28(B)に示すような処理が実行されることで、直前のリセット要因がウォッチドッグタイマ520のタイムアウトによるものであると判定されたときには、ウォッチドッグタイマ520を停止させてタイムアウトの発生によるリセット動作を無効化してもよい。これにより、パチンコ遊技機1などの遊技機における電源電圧の安定が確認できないために不用意なリセット動作が繰返し実行されてしまうことを防止しつつ、遊技機における電力供給の瞬停から適切に復旧させることができる。
遊技制御用マイクロコンピュータ100のCPU505は、WDTクリアレジスタWCLに「55H」と「AAH」という値が異なるWDTクリアデータを順次に書き込むことで、ウォッチドッグタイマ520における監視時間となるタイムアウト時間の計測をクリア(初期化)してリスタート(再開)させる。これにより、パチンコ遊技機1などの遊技機において電力供給が瞬停するときに、ノイズ等により誤って監視時間の計測が初期化されてしまうことを防止して、遊技機における電力供給の瞬停から適切に復旧させることができる。