以下、添付図面を参照して、本発明の実施の形態について説明する。
図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」を示す数字や「−」を示す記号等から構成される複数種類の特別図柄を可変表示する。
遊技盤2における遊技領域の中央付近には、画像表示装置5が設けられている。画像表示装置5は、例えばLCD(液晶表示装置)等から構成され、各種の演出画像を表示する表示領域を形成している。画像表示装置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にて可変表示される飾り図柄には、例えば8種類の図柄(英数字「1」〜「8」あるいは漢数字「一」〜「八」、英文字「A」〜「H」、所定のモチーフに関連する8個のキャラクタを示す演出画像、数字や文字あるいは記号とキャラクタとを組み合わせた演出画像などを適用することができる。飾り図柄のそれぞれには、対応する図柄番号が付されている。例えば、「1」〜「8」を示す英数字それぞれに対して、「1」〜「8」の図柄番号が付されている。
飾り図柄の変動中には、「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rにおいて、例えば図柄番号が小さいものから大きいものへと順次に、上方から下方へ、あるいは、右側から左側へと、流れるようなスクロール表示が行われる。そして、図柄番号が最大(例えば「8」)である飾り図柄が表示されると、続いて図柄番号が最小(例えば「1」)である飾り図柄が表示される。
第1特別図柄表示装置4A及び第2特別図柄表示装置4Bの上部には、可変表示の保留数(特図保留記憶数)を特定可能に表示するための第1保留表示器25Aと第2保留表示器25Bとが設けられている。ここで、可変表示の保留は、普通入賞球装置6Aが形成する第1始動入賞口や普通可変入賞球装置6Bが形成する第2始動入賞口に遊技球が進入(始動入賞)したときに発生する。すなわち、特図ゲームや飾り図柄の可変表示といった可変表示ゲームを実行するための始動条件(「実行条件」ともいう)は成立したが、先に成立した開始条件に基づく可変表示ゲームが実行中であることやパチンコ遊技機1が大当り遊技状態に制御されていることなどにより、可変表示ゲームを開始するための開始条件は成立していないときに、成立した始動条件に対応する可変表示の保留が行われる。第1保留表示器25Aは、普通入賞球装置6Aが形成する第1始動入賞口に進入した有効始動入賞球数としての第1保留記憶数を特定可能に表示する。第2保留表示器25Bは、普通可変入賞球装置6Bが形成する第2始動入賞口に進入した有効始動入賞球数としての第2保留記憶数を特定可能に表示する。第1保留表示器25Aと第2保留表示器25Bはそれぞれ、例えば第1保留記憶数と第2保留記憶数のそれぞれにおける上限値(例えば「4」)に対応した個数(例えば4個)のLEDを含んで構成されている。
画像表示装置5の下方には、普通入賞球装置6Aと、普通可変入賞球装置6Bとが設けられている。普通入賞球装置6Aは、例えば所定の玉受部材によって常に一定の開放状態に保たれる第1始動入賞口を形成する。普通可変入賞球装置6Bは、図2に示す普通電動役物用のソレノイド81によって垂直位置となる通常開放状態と傾動位置となる拡大開放状態とに変化する一対の可動翼片を有する電動チューリップ型役物(普通電動役物)を備え、第2始動入賞口を形成する。一例として、普通可変入賞球装置6Bでは、普通電動役物用のソレノイド81がオフ状態であるときに可動翼片が垂直位置となることにより、遊技球が第2始動入賞口に進入しにくい通常開放状態となる。その一方で、普通可変入賞球装置6Bでは、普通電動役物用のソレノイド81がオン状態であるときに可動翼片が傾動位置となることにより、遊技球が第2始動入賞口に進入しやすい拡大開放状態となる。
普通入賞球装置6Aに形成された第1始動入賞口に進入した遊技球は、例えば図2に示す第1始動口スイッチ22Aによって検出される。普通可変入賞球装置6Bに形成された第2始動入賞口に進入した遊技球は、例えば図2に示す第2始動口スイッチ22Bによって検出される。第1始動口スイッチ22Aによって遊技球が検出されたことに基づき、所定個数(例えば3個)の遊技球が賞球として払い出され、第1保留記憶数が所定の上限値(例えば「4」)以下であれば、第1始動条件が成立する。第2始動口スイッチ22Bによって遊技球が検出されたことに基づき、所定個数(例えば3個)の遊技球が賞球として払い出され、第2保留記憶数が所定の上限値以下であれば、第2始動条件が成立する。
普通入賞球装置6Aと普通可変入賞球装置6Bの下方には、特別可変入賞球装置7が設けられている。特別可変入賞球装置7は、図2に示す大入賞口扉用のソレノイド82によって開閉駆動される大入賞口扉を備え、その大入賞口扉によって開放状態(第1状態)と閉鎖状態(第2状態)とに変化する大入賞口を形成する。一例として、特別可変入賞球装置7では、大入賞口扉用のソレノイド82がオフ状態であるときに大入賞口扉が大入賞口を閉鎖状態にする。その一方で、特別可変入賞球装置7では、大入賞口扉用のソレノイド82がオン状態であるときに大入賞口扉が大入賞口を開放状態にする。特別可変入賞球装置7に形成された大入賞口に進入した遊技球は、例えば図2に示すカウントスイッチ23によって検出される。カウントスイッチ23によって遊技球が検出されたことに基づき、所定個数(例えば13個)の遊技球が賞球として払い出される。
遊技盤2の所定位置(図1に示す例では、遊技領域の左側方)には、普通図柄表示器20が設けられている。一例として、普通図柄表示器20は、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bと同様に7セグメントやドットマトリクスのLED等から構成され、特別図柄とは異なる複数種類の識別情報である普通図柄(「普図」あるいは「普通図」ともいう)を変動可能に表示(可変表示)する。このような普通図柄の可変表示は、普図ゲーム(「普通図ゲーム」ともいう)と称される。普通図柄表示器20は、例えば「0」〜「9」を示す数字や「−」を示す記号等から構成される複数種類の普通図柄を可変表示する。複数種類の普通図柄には、それぞれに対応した図柄番号が付されている。普通図柄表示器20の上方には、普図保留表示器25Cが設けられている。普図保留表示器25Cは、例えば4個のLEDを含んで構成され、通過ゲート41を通過した有効通過球数としての普図保留記憶数を表示する。
遊技盤2の表面には、上記の構成以外にも、遊技球の流下方向や速度を変化させる風車及び多数の障害釘が設けられている。また、第1始動入賞口、第2始動入賞口及び大入賞口とは異なる入賞口として、例えば所定の玉受部材によって常に一定の開放状態に保たれる一般入賞口が1つ又は複数設けられてもよい。この場合には、一般入賞口のいずれかに進入した遊技球が所定の一般入賞球スイッチによって検出されたことに基づき、所定個数(例えば10個)の遊技球が賞球として払い出されればよい。遊技領域の最下方には、いずれの入賞口にも進入しなかった遊技球が取り込まれるアウト口が設けられている。遊技機用枠3の左右上部位置には、効果音等を再生出力するためのスピーカ8L、8Rが設けられており、さらに遊技領域周辺部には、遊技効果ランプ9が設けられている。パチンコ遊技機1の遊技領域における各構造物(例えば普通入賞球装置6A、普通可変入賞球装置6B、特別可変入賞球装置7等)の周囲には、装飾用LEDが配置されていてもよい。
遊技機用枠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による特図ゲームでは、特別図柄の可変表示を開始させた後、所定の可変表示時間が経過すると、特別図柄の可変表示結果となる確定特別図柄を完全停止表示する。特別図柄の可変表示時間は、各特図ゲームの開始時に決定された変動パターンに対応して、複数種類の可変表示時間のうちで、いずれかに決定される。特図ゲームにおける特別図柄の可変表示結果となる確定特別図柄として、特定の特別図柄(大当り図柄)が停止表示されれば、特定表示結果としての「大当り」となり、大当り図柄とは異なる所定の特別図柄(小当り図柄)が停止表示されれば、所定表示結果としての「小当り」となり、大当り図柄や小当り図柄以外の特別図柄(ハズレ図柄)が停止表示されれば、非特定表示結果としての「ハズレ」となる。特図ゲームでの可変表示結果が「大当り」になった後には、特定遊技状態としての大当り遊技状態に制御される。また、特図ゲームでの可変表示結果が「小当り」になった後には、大当り遊技状態とは異なる小当り遊技状態に制御される。この実施の形態におけるパチンコ遊技機1では、一例として、「1」、「3」、「7」を示す数字を大当り図柄とし、「5」を示す数字を小当り図柄とし、「−」を示す記号をハズレ図柄としている。
この実施の形態では、大当り図柄となる「1」、「3」、「7」の数字を示す特別図柄のうち、「3」、「7」の数字を示す特別図柄を15ラウンド大当り図柄とし、「1」の数字を示す特別図柄を2ラウンド大当り図柄とする。特図ゲームにおける確定特別図柄として15ラウンド大当り図柄が停止表示された後に制御される第1特定遊技状態としての大当り遊技状態(15ラウンド大当り状態)では、特別可変入賞球装置7の開閉板が、第1期間となる所定期間(例えば29秒間)あるいは所定個数(例えば9個)の入賞球が発生するまでの期間にて大入賞口を開放状態とすることにより、特別可変入賞球装置7を遊技者にとって有利な第1状態に変化させるラウンドが実行される。こうしてラウンド中に大入賞口を開放状態とした開閉板は、遊技盤2の表面を落下する遊技球を受け止め、その後に大入賞口を閉鎖状態とすることにより、特別可変入賞球装置7を遊技者にとって不利な第2状態に変化させて、1回のラウンドを終了させる。15ラウンド大当り状態では、大入賞口の開放サイクルであるラウンドの実行回数が、第1回数(例えば「15」)となる。
特図ゲームにおける確定特別図柄として2ラウンド大当り図柄が停止表示された後に制御される第2特定遊技状態としての大当り遊技状態(2ラウンド大当り状態)では、各ラウンドで特別可変入賞球装置7を遊技者にとって有利な第1状態に変化させる期間(開閉板により大入賞口を開放状態とする期間)が、15ラウンド大当り状態における第1期間よりも短い第2期間(例えば0.5秒間)となる。また、2ラウンド大当り状態では、ラウンドの実行回数が、15ラウンド大当り状態における第1回数よりも少ない第2回数(例えば「2」)となる。
また、15ラウンド大当り図柄となる「3」、「7」の数字を示す特別図柄のうち、「3」の数字を示す特別図柄が特図ゲームにおける確定特別図柄として停止表示されたことに基づく15ラウンド大当り状態が終了した後には、特別遊技状態の1つとして、通常状態に比べて特図ゲームにおける特別図柄の変動時間(特図変動時間)が短縮される時短状態に制御される。ここで、通常状態とは、大当り遊技状態等の特定遊技状態や時短状態等の特別遊技状態以外の遊技状態のことであり、パチンコ遊技機1の初期設定状態(例えばシステムリセットが行われた場合のように、電源投入後に初期化処理を実行した状態)と同一の制御が行われる。時短状態は、所定回数(例えば100回)の特図ゲームが実行されることと、可変表示結果が「大当り」となることのうち、いずれかの条件が先に成立したときに、終了すればよい。こうした「3」の数字を示す特別図柄のように、特図ゲームにおける確定特別図柄として停止表示されたことに基づく大当り遊技状態が終了した後に時短状態や通常状態に制御される15ラウンド大当り図柄は、通常大当り図柄(「非確変大当り図柄」ともいう)と称される。特図ゲームにおける確定特別図柄が通常大当り図柄となる場合における特別図柄や飾り図柄の可変表示態様は、可変表示結果が「大当り」となる場合における「通常」(「通常大当り」ともいう)の可変表示態様(「大当り種別」ともいう)と称される。
15ラウンド大当り図柄となる「3」、「7」の数字を示す特別図柄のうち、「7」の数字を示す特別図柄が特図ゲームにおける確定特別図柄として停止表示されたことに基づく15ラウンド大当り状態が終了した後や、2ラウンド大当り図柄となる「1」の数字を示す特別図柄が特図ゲームにおける確定特別図柄として停止表示されたことに基づく2ラウンド大当り状態が終了した後には、時短状態とは異なる特別遊技状態の1つとして、例えば通常状態に比べて特図変動時間が短縮されるとともに、継続して確率変動制御(確変制御)が行われる確変状態(高確率遊技状態)に制御される。この確変状態では、各特図ゲームや飾り図柄の可変表示において、可変表示結果が「大当り」となって更に大当り遊技状態に制御される確率が、通常状態よりも高くなるように向上する。このような確変状態は、特図ゲームの実行回数に関わりなく、次に可変表示結果が「大当り」となるまで継続してもよい。これに対して、確変状態となった後に、所定回数(例えば100回)の特図ゲームが実行されることと、可変表示結果が「大当り」となることのうち、いずれかの条件が先に成立したときに、終了するようにしてもよい。また、確変状態において所定回数の特図ゲームが実行されたり可変表示結果が「大当り」となる以前であっても、特図ゲームが開始されるときに、所定の割合で確変状態が終了することがあるようにしてもよい。
「7」の数字を示す特別図柄のように、特図ゲームにおける確定特別図柄として停止表示されたことに基づく大当り遊技状態が終了した後に確変状態に制御される15ラウンド大当り図柄は、確変大当り図柄と称される。特図ゲームにおける確定特別図柄が確変大当り図柄となる場合における特別図柄や飾り図柄の可変表示態様は、可変表示結果が「大当り」となる場合における「確変」(「確変大当り」ともいう)の可変表示態様(「大当り種別」ともいう)と称される。「1」の数字を示す特別図柄のように、特図ゲームにおける確定特別図柄として停止表示されたことに基づく大当り遊技状態が終了した後に確変状態に制御される2ラウンド大当り図柄は、突確大当り図柄と称される。特図ゲームにおける確定特別図柄が突確大当り図柄となる場合における特別図柄や飾り図柄の可変表示態様は、可変表示結果が「大当り」となる場合における「突確」(「突確大当り」あるいは「突然確変大当り」ともいう)の可変表示態様(「大当り種別」ともいう)と称される。
確変状態や時短状態では、普通図柄表示器20による普図ゲームにおける普通図柄の可変表示時間を通常状態のときよりも短くする制御や、各回の普図ゲームで普通図柄の可変表示結果が「普図当り」となる確率を通常状態のときよりも向上させる制御、可変表示結果が「普図当り」となったことに基づく普通可変入賞球装置6Bにおける可動翼片の傾動時間を通常状態のときよりも長くする制御、その傾動回数を通常状態のときよりも増加させる制御といった、第2始動入賞口に遊技球が進入する可能性を高めて第2始動条件が成立しやすくなることで遊技者にとって有利となる制御が行われる。
特図ゲームにおける確定特別図柄として小当り図柄が停止表示された後には、大当り遊技状態とは異なる小当り遊技状態に制御される。この小当り遊技状態では、2ラウンド大当り状態と同様に特別可変入賞装置7を遊技者にとって有利な第1状態に変化させる可変入賞動作が行われる。すなわち、小当り遊技状態では、例えば特別可変入賞球装置7が備える開閉板により大入賞口を第2期間にわたり開放状態とする動作が、第2回数に達するまで繰り返し実行される。小当り遊技状態が終了した後には、遊技状態の変更が行われず、可変表示結果が「小当り」となる以前の遊技状態に継続して制御されることになる。ただし、可変表示結果が「小当り」となる可変表示ゲームに対応して、時短状態を終了する旨の判定がなされた場合には、小当り遊技状態の終了後に、通常状態へと制御されることになる。
画像表示装置5の表示画面では、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bによる特別図柄の可変表示に対応して、飾り図柄の可変表示が行われる。すなわち、画像表示装置5の表示画面では、第1開始条件と第2開始条件のいずれか一方が成立したことに基づいて、例えば「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rにおける全部にて飾り図柄の加速表示(全図柄加速表示)を行い、所定速度に達すれば、飾り図柄の定速表示(全図柄定速表示)を行う。こうした全図柄加速表示や全図柄定速表示は、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rの全部にて飾り図柄を可変表示する全図柄変動に含まれる。こうした全図柄変動の後、例えば「左」→「右」→「中」といった所定順序で飾り図柄の減速表示(各図柄減速表示)を行い、変動速度が「0」となれば、飾り図柄を停留して表示する一方で、例えば微少な揺れや伸縮などを生じさせる仮停止表示を行う。そして、飾り図柄の可変表示を開始してからの経過時間が変動パターンなどに基づいて決定された可変表示時間に達したときには、可変表示結果となる確定飾り図柄を完全停止表示する。
全図柄変動が開始された後には、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rのうち全部又は一部の飾り図柄表示部にて、飾り図柄をリーチ表示状態で導出表示することがある。ここで、リーチ表示状態とは、画像表示装置5の表示画面にて導出表示された飾り図柄が大当り組合せの一部を構成しているときに未だ導出表示されていない飾り図柄(「リーチ変動図柄」ともいう)については変動が継続している表示状態、あるいは、全部又は一部の飾り図柄が大当り組合せの全部又は一部を構成しながら同期して変動している表示状態のことである。具体的には、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rにおける一部(例えば「左」及び「右」の飾り図柄表示部5L、5Rなど)では予め定められた大当り組合せを構成する飾り図柄(例えば「7」の英数字を示す飾り図柄)が導出表示されているときに未だ導出表示されていない残りの飾り図柄表示部(例えば「中」の飾り図柄表示部5Cなど)では飾り図柄が変動している表示状態、あるいは、「左」、「中」、「右」の飾り図柄表示部5L、5C、5Rにおける全部又は一部で飾り図柄が大当り組合せの全部又は一部を構成しながら同期して変動している表示状態である。また、リーチ表示状態となったことに対応して、画像表示装置5の表示画面に飾り図柄とは異なるアニメーション画像や実写画像といった演出画像を表示させたり、背景画像の表示態様を変化させたり、飾り図柄の変動態様を変化させたりすることがある。このような演出画像の表示や背景画像の表示態様の変化、飾り図柄の変動態様の変化を、リーチ演出表示(あるいは単にリーチ演出)という。リーチ演出の中には、それが出現すると、通常のリーチ演出(ノーマルリーチ)に比べて大当りが発生しやすい(高い確率で大当りとなる)ように設定されたものがある。このような特別のリーチ演出を、スーパーリーチ演出(あるいは単に「スーパーリーチ」)ともいう。
また、飾り図柄の可変表示中には、リーチ演出とは異なり、飾り図柄がリーチ状態で導出表示される可能性があることや、可変表示結果が「大当り」となる可能性があることを、飾り図柄の可変表示態様などにより遊技者に報知するための特定演出が実行されることがある。この実施の形態では、「滑り」、「擬似連」、「イントロ」、「発展チャンス目」、「発展チャンス目終了」といった特定演出が実行可能に設定されている。なお、これらの特定演出は、本発明とは直接の関係がないため、詳細な説明を省略する。
さらに、飾り図柄の可変表示中には、リーチ演出や特定演出とは異なり、例えば所定のキャラクタ画像やメッセージ画像を表示することなどといった、飾り図柄の可変表示態様以外の表示態様により、飾り図柄の可変表示状態がリーチ状態となる可能性があることや、可変表示結果が「大当り」となる可能性があることを、遊技者に報知するための予告演出が実行されることがある。例えば、「キャラクタ表示」、「ステップアップ画像」、「背景変更」といった予告演出が実行可能に設定されていればよい。これらの予告演出についても、本発明とは直接の関係がないため、詳細な説明を省略する。
特図ゲームにおける確定特別図柄として、ハズレ図柄となる特別図柄が停止表示される場合には、飾り図柄の可変表示が開始されてから、飾り図柄の可変表示状態がリーチ状態とならずに、所定の非リーチ組合せとなる確定飾り図柄や、複数種類の発展チャンス目のいずれかとなる確定飾り図柄が、停止表示されることがある。このような飾り図柄の可変表示態様は、可変表示結果が「ハズレ」となる場合における「非リーチ」(「通常ハズレ」ともいう)の可変表示態様と称される。
特図ゲームにおける確定特別図柄として、ハズレ図柄となる特別図柄が停止表示される場合には、飾り図柄の可変表示が開始されてから、飾り図柄の可変表示状態がリーチ状態となったことに対応して、リーチ演出が実行された後に、あるいは、リーチ演出が実行されずに、所定のリーチハズレ組合せとなる確定飾り図柄が停止表示されることがある。このような飾り図柄の可変表示結果は、可変表示結果が「ハズレ」となる場合における「リーチ」(「リーチハズレ」ともいう)の可変表示態様と称される。
特図ゲームにおける確定特別図柄として、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」である飾り図柄は、確変図柄と称される。そして、特図ゲームにおける確定特別図柄が確変大当り図柄となることに対応して、リーチ演出が実行された後に、確変大当り組合せの確定飾り図柄が停止表示される飾り図柄の可変表示態様は、可変表示結果が「大当り」となる場合における「第1確変」の可変表示態様(大当り種別ともいう)と称される。こうして「第1確変」の可変表示態様により可変表示結果が「大当り」となった後には、15ラウンド大当り状態に制御され、その15ラウンド大当り状態が終了すると、確変状態に制御されることになる。
特図ゲームにおける確定特別図柄として、15ラウンド大当り図柄となる特別図柄のうち確変大当り図柄である「7」の数字を示す特別図柄が停止表示される場合には、飾り図柄の可変表示状態がリーチ状態となったことに対応して、可変表示態様が「通常」である場合とは異なるリーチ演出が実行された後に、所定の確変大当り組合せとなる確定飾り図柄が停止表示されることがある。このように特図ゲームにおける確定特別図柄が確変大当り図柄となることに対応して、飾り図柄の可変表示態様が「通常」である場合とは異なるリーチ演出が実行された後に、確変大当り組合せの確定飾り図柄が停止表示される飾り図柄の可変表示態様は、可変表示結果が「大当り」となる場合における「第2確変」の可変表示態様(大当り種別ともいう)と称される。こうして「第2確変」の可変表示態様により可変表示結果が「大当り」となった後には、15ラウンド大当り状態に制御され、その15ラウンド大当り状態が終了すると、確変状態に制御されることになる。
特図ゲームにおける確定特別図柄として、15ラウンド大当り図柄となる特別図柄のうち確変大当り図柄である「7」の数字を示す特別図柄が停止表示される場合には、飾り図柄の可変表示状態がリーチ状態となったことに対応して、飾り図柄の可変表示態様が「通常」である場合と同様のリーチ演出が実行された後に、通常大当り組合せの確定飾り図柄が停止表示されることがある。このように特図ゲームにおける確定特別図柄が確変大当り図柄となることに対応して、飾り図柄の可変表示態様が「通常」である場合と同様のリーチ演出が実行された後に、通常大当り組合せの確定飾り図柄が停止表示される飾り図柄の可変表示態様は、可変表示結果が「大当り」となる場合における「第3確変」の可変表示態様(大当り種別ともいう)と称される。こうして「第3確変」の可変表示態様により可変表示結果が「大当り」となった後には、15ラウンド大当り状態に制御され、その15ラウンド大当り状態が終了すると、確変状態に制御されることになる。
このように、可変表示結果が「大当り」となるときの大当り種別が「第1確変」や「第2確変」である場合には、飾り図柄の可変表示にて確変大当り組合せとなる確定飾り図柄が停止表示されることで、15ラウンド大当り状態に制御された後に確変状態となることが確定する。その一方で、可変表示結果が「大当り」となるときの大当り種別が「第3確変」である場合には、大当り種別が「通常」となる場合と同様に、飾り図柄の可変表示にて通常大当り組合せとなる確定飾り図柄が停止表示される。そのため、大当り種別が「第3確変」である場合には、確変状態となるか否かを、飾り図柄の可変表示結果からは遊技者が認識することはできない。すなわち、確変大当り組合せとなる確定飾り図柄は、大当り遊技状態に制御されることが確定する特定表示結果に含まれるとともに、確変状態に制御されることが確定する特別表示結果に含まれる。その一方で、通常大当り組合せとなる確定飾り図柄は、確変状態に制御されることが確定しない特別表示結果以外の特定表示結果(非特別表示結果)に含まれる。
特図ゲームにおける確定特別図柄として、2ラウンド大当り図柄となる「1」の数字を示す特別図柄が停止表示される場合には、飾り図柄の可変表示状態がリーチ状態とならずに、所定の非リーチ組合せとなる確定飾り図柄が停止表示されることや、複数種類の発展チャンス目のいずれかとなる確定飾り図柄が停止表示されること、あるいは、複数種類の突確チャンス目として予め定められた飾り図柄の組合せのいずれかとなる確定飾り図柄が停止表示されることがある。また、特図ゲームにおける確定特別図柄として、2ラウンド大当り図柄となる「1」の数字を示す特別図柄が停止表示される場合には、飾り図柄の可変表示状態がリーチ状態となったことに対応して、所定のリーチ演出が実行された後に、所定のリーチハズレ組合せとなる確定飾り図柄が停止表示されることがある。このように特図ゲームにおける確定特別図柄が2ラウンド大当り図柄である「1」の数字を示す特別図柄となることに対応して、各種の確定飾り図柄が停止表示される飾り図柄の可変表示態様は、可変表示結果が「大当り」となる場合における「突確」(「突確大当り」あるいは「突然確変大当り」ともいう)の可変表示態様(大当り種別ともいう)と称される。こうして「突確」の可変表示態様により可変表示結果が「大当り」となった後には、2ラウンド大当り状態に制御され、その2ラウンド大当り状態が終了すると、確変状態に制御されることになる。
特図ゲームにおける確定特別図柄として、小当り図柄となる「5」の数字を示す特別図柄が停止表示される場合には、飾り図柄の可変表示態様が「突確」である場合と同様にして飾り図柄の可変表示が行われた後、所定の非リーチ組合せとなる確定飾り図柄が停止表示されることや、複数種類の発展チャンス目のいずれかとなる確定飾り図柄が停止表示されること、あるいは、所定のリーチハズレ組合せとなる確定飾り図柄が停止表示されることがある。このように特図ゲームにおける確定特別図柄が小当り図柄である「5」の数字を示す特別図柄となることに対応して、各種の確定飾り図柄が停止表示される飾り図柄の可変表示態様は、「小当り」の可変表示態様(小当り種別ともいう)と称される。ここで、複数種類の突確チャンス目のいずれかとなる確定飾り図柄は、飾り図柄の可変表示態様が「突確」となる場合に限り停止表示され、可変表示態様が「小当り」となる場合などには確定飾り図柄として停止表示されない。すなわち、飾り図柄の可変表示にて突確チャンス目となる確定飾り図柄が停止表示された場合には、「突確」の可変表示態様により可変表示結果が「大当り」となることが確定する。可変表示結果が「小当り」となった後には、2ラウンド大当り状態と同様の可変入賞動作が行われる小当り遊技状態に制御され、その小当り遊技状態が終了すると、遊技状態が変更されないことから、可変表示結果が「小当り」となる以前の遊技状態が継続する。なお、可変表示結果が「小当り」となる可変表示ゲームに対応して、確変状態や時短状態を終了する旨の判定がなされた場合には、小当り遊技状態の終了後に、通常状態へと制御されることになる。
可変表示結果が「大当り」となるときの大当り種別が「通常」、「第1確変」、「第3確変」のいずれかである場合には、飾り図柄の可変表示中に、特定変動表示としての変動中昇格演出が実行されることがある。変動中昇格演出では、画像表示装置5における「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rの有効ライン上に通常大当り組合せとなる飾り図柄を仮停止表示させた後に、例えば「左」、「中」、「右」の各飾り図柄表示部5L、5C、5Rにて同一の飾り図柄が揃った状態で再び変動させ、確変大当り組合せとなる飾り図柄と、通常大当り組合せとなる飾り図柄のうちいずれかを、確定飾り図柄として停止表示(最終停止表示)させる。ここで、飾り図柄の可変表示態様が「通常」や「第3確変」であることに対応して変動中昇格演出が実行される場合には、その変動中昇格演出として、仮停止表示させた飾り図柄を再変動させた後に通常大当り組合せとなる確定飾り図柄を停止表示する変動中昇格失敗演出が行われる。これに対して、可変表示態様が「第1確変」であることに対応して変動中昇格演出が実行される場合には、その変動中昇格演出として、仮停止表示させた飾り図柄を再変動させた後に確変大当り組合せとなる確定飾り図柄を停止表示する変動中昇格成功演出が行われる。
可変表示結果が「大当り」となるときの大当り種別が「通常」と「第3確変」のいずれかである場合には、可変表示結果が停止表示されてから、15ラウンド大当り状態に制御された後、その15ラウンド大当り状態が終了するまでの期間にて、確変状態に制御するか否かの報知演出としての大当り中昇格演出が実行される。
大当り中昇格演出には、確定飾り図柄が通常大当り組合せであるにもかかわらず遊技状態が確変状態となる昇格がある旨を報知する大当り中昇格成功演出と、確変状態となる昇格がない旨を報知する大当り中昇格失敗演出とがある。一例として、大当り中昇格演出では、画像表示装置5の表示領域にて飾り図柄を可変表示させ、通常図柄と、確変図柄のうちいずれかを、演出表示結果として停止表示させる。このとき、大当り中昇格失敗演出では通常図柄を演出表示結果として停止表示させる一方、大当り中昇格成功演出では確変図柄を演出表示結果として停止表示させればよい。
パチンコ遊技機1には、例えば図2に示すような電源基板10、主基板11、演出制御基板12、音声制御基板13、ランプ制御基板14、払出制御基板15、発射制御基板17といった、各種の制御基板が搭載されている。また、パチンコ遊技機1には、主基板11と演出制御基板12との間で伝送される各種の制御信号を中継するための中継基板18なども搭載されている。その他、パチンコ遊技機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には、パチンコ遊技機1内の各制御基板及び機構部品への電力供給を実行又は遮断するための電源スイッチが設けられている。
図3に示すように、変圧回路301から出力されたAC24Vは、例えば所定のコネクタや電源ラインを介して、払出制御基板15へと伝送される。VLPは、例えば所定のコネクタや電源ラインを介して、ランプ制御基板14へと伝送される。VSL、VDD及びVCCは、例えば所定のコネクタや電源ラインを介して、主基板11、ランプ制御基板14及び払出制御基板15へと伝送される。VBBは、例えば所定のコネクタや電源ラインを介して、主基板11及び払出制御基板15へと伝送される。
電源監視回路303は、例えば停電監視リセットモジュールICを用いて構成され、電源断信号を出力する電源監視手段を実現する回路である。例えば、電源監視回路303は、パチンコ遊技機1において用いられる所定電圧(一例としてVLP)が所定値(一例として+20V)以下になった期間が、予め決められている時間(一例として56ミリ秒)以上継続したときに、電源断信号を出力する。電源監視回路303から出力された電源断信号は、例えば電源基板10に搭載された出力ドライバ回路によって増幅された後に所定のコネクタや信号ラインを介して、払出制御基板15へと伝送され、払出制御基板15から主基板11へと伝送される。
パチンコ遊技機1への電力供給が停止するときには、電源監視回路303が、電源断信号を出力(ローレベルに設定)してから所定期間が経過したときに、リセット信号を出力(ローレベルに設定)する。ここでの所定期間は、例えば図2に示す主基板11に搭載されている遊技制御用マイクロコンピュータ100及び払出制御基板15に搭載されている払出制御用マイクロコンピュータ150が、所定の電源断処理を実行するのに十分な時間であればよい。すなわち、電源監視回路303は、停電信号としての電源断信号を出力した後、遊技制御用マイクロコンピュータ100及び払出制御用マイクロコンピュータ150が所定の電源断処理を実行完了してから、動作停止信号としてのリセット信号を出力(ローレベルに設定)する。電源監視回路303から出力されたリセット信号を受信した遊技制御用マイクロコンピュータ100や払出制御用マイクロコンピュータ150は、動作停止状態となり、各種の制御処理の実行が停止される。また、パチンコ遊技機1への電力供給が開始され、例えば所定電圧(一例としてVCC)が所定値(一例として+5V強)を超えたときに、電源監視回路303はリセット信号の出力を停止(ハイレベルに設定)する。
図4は、パチンコ遊技機1への電力供給が開始されたとき、及び電力供給が停止するときにおける、AC24V、VLP、VCC、リセット信号及び電源断信号の状態を、模式的に示すタイミング図である。図4に示すように、パチンコ遊技機1への電力供給が開始されたときに、VLP及びVCCは徐々に規定値(直流+24V及び直流+5V)に達する。このとき、VLPが第1の所定値を超えると、電源監視回路303は電源断信号の出力を停止(ハイレベルに設定)してオフ状態とする。また、VCCが第2の所定値を超えると、電源監視回路303はリセット信号の出力を停止(ハイレベルに設定)してオフ状態とする。他方、パチンコ遊技機1への電力供給が停止するときに、VLP及びVCCは徐々に低下する。このとき、VLPが第1の所定値にまで低下すると、電源監視回路303は電源断信号をオン状態として出力(ローレベルに設定)する。また、VCCが第2の所定値にまで低下すると、電源監視回路303はリセット信号をオン状態として出力(ローレベルに設定)する。
なお、電源スイッチをオフすることによりパチンコ遊技機1への電力供給が本来的に停止させる場合、電源断信号の出力により実行される電源断処理では、データの待避などの必要な処理を行った後に無限ループに突入して、電力の供給が遮断されるのを待機することとなる。もっとも、一定期間だけ電圧が低下した後に元の電圧まで回復する瞬断が生じた場合でも電源断信号が出力されてしまう場合があり、この場合も、電源断処理が実行されて無限ループに突入してしまう場合がある。この場合、電圧が回復しても遊技を行うための処理が実行できないため、例えば、無限ループの時間が所定時間に達したとき、システムリセットをかけて、電源投入時と同様にプログラムの先頭から処理を実行するようにすることができる。或いは、電源断処理の最後で無限ループに突入させるのではなく、電源断信号をポーリング監視する処理を実行し、電源断信号がオフ状態に変化したことの監視結果が得られたときに、システムリセットをかけて、電源投入時と同様にプログラムの先頭から処理を実行するようにすることもできる。
図3に示す電源基板10が備えるクリアスイッチ304は、例えば押しボタン構造を有し、押下などの操作に応じてクリア信号を出力する。クリア信号は、例えばローレベルとなることでオン状態となる電気信号であればよい。クリアスイッチ304から出力されたクリア信号は、例えば所定のコネクタや信号ラインを介して、主基板11へと伝送され、主基板11から払出制御基板15へと伝送される。また、クリアスイッチ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の発振周波数とは異なる所定周波数の発振信号となる乱数用クロックRCLKを生成する。乱数用クロック生成回路112により生成された乱数用クロックRCLKは、例えば図5に示すような遊技制御用マイクロコンピュータ100の乱数用外部クロック端子ERCを介して乱数回路509に供給される。一例として、乱数用クロック生成回路112により生成される乱数用クロックRCLKの発振周波数は、制御用クロック生成回路111により生成される制御用クロックCCLKの発振周波数以下となるようにすればよい。
スイッチ回路114は、遊技球検出用の各種スイッチからの検出信号を取り込んで遊技制御用マイクロコンピュータ100に伝送する。ソレノイド回路115は、遊技制御用マイクロコンピュータ100からのソレノイド駆動信号をソレノイド81、82に伝送する。遊技開始スイッチ31は、例えば押しボタン構造を有し、パチンコ遊技機1において遊技機用枠3を閉じて遊技者が通常遊技を行う状態でパチンコ遊技機1の外部から触れることのできない所定箇所に配設されていればよい。そして、例えばパチンコ遊技機1の電源投入時やシステムリセット時などに、パチンコ遊技機1の初期設定を行った後に遊技開始を指示するために操作される。
図2に示すように、主基板11には、ゲートスイッチ21、第1始動口スイッチ22A、第2始動口スイッチ22B及びカウントスイッチ23からの検出信号を伝送する配線が接続されている。ゲートスイッチ21、第1始動口スイッチ22A、第2始動口スイッチ22B及びカウントスイッチ23から出力される検出信号には、負論理が適用されており、遊技球の通過が検出されていないときがハイレベル、遊技球の通過が検出されているときがローレベルとなっている。そして、例えば、第1始動条件は、第1始動口スイッチ22Aからの検出信号が一定期間以上継続してローレベルとなっていることを条件として成立するものとなっている。第2始動条件や普図始動条件についても同様である。電圧の低下時には第1始動口スイッチ22Aの検出信号がローレベルに変化してしまうが、極短時間だけ電圧低下する瞬断によって始動条件が成立し得ないものとなっている。
また、主基板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の側に信号が伝わる余地はない。
中継基板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には、満タンスイッチ26や球切れスイッチ27からの検出信号を受信するための配線や、払出モータ位置センサ71や払出カウントスイッチ72、エラー解除スイッチ73からの検出信号を受信するための配線が接続されている。加えて、払出制御基板15には、払出モータ51における遊技球の払出制御を行うための指令信号を送信するための配線や、エラー表示用LED74における表示制御を行うための指令信号を送信するための配線、インタフェース基板を介してカードユニットとの間で通信を行うための配線などが接続されている。
ここで、満タンスイッチ26は、例えば遊技盤2の背面下方にて打球供給皿と余剰球受皿の間を連通する余剰球通路の側壁に設置され、余剰球受皿の満タンを検出するためのものである。賞球又は球貸し要求に基づく遊技球が多数払い出されて打球供給皿が満杯になり、遊技球が連絡口に到達した後、さらに遊技球が払い出されると、遊技球は余剰球通路を経て余剰球受皿へと導かれる。さらに遊技球が払い出されると、例えば所定の感知レバーが満タンスイッチ26を押圧してオンする。
また、球切れスイッチ27は、例えば遊技盤2の背面にて遊技球を払出モータ51が設置された払出装置へと誘導する誘導レールの下流に設置され、誘導レールの下流にてカーブ樋を介して連通された2列の球通路内における遊技球の有無を検出するためのものである。一例として、球切れスイッチ27は、球通路に27〜28個の遊技球が存在することを検出できるような位置に係止片によって係止され、球貸しの一単位の最大払出個数(例えば100円分に相当する25個)以上が確保されていることを確認可能にする。
エラー解除スイッチ73は、払出制御用マイクロコンピュータ150が所定のエラー状態に制御されているときに、ソフトウェアリセットによって、そのエラー状態を解除するためのスイッチである。エラー表示用LED74は、例えば7セグメントLEDにより構成され、払出制御用マイクロコンピュータ150にてセットされたエラーフラグなどに基づいて、各種のエラーに対応するエラーコードを表示するためのものである。
図2に示す発射制御基板17は、操作ノブ30の操作量に応じて、所定の発射装置による遊技球の発射動作を制御するためのものである。発射制御基板17には、例えば電源基板10あるいは主基板11からの駆動信号を伝送する配線や、払出制御基板15及びインタフェース基板を介してカードユニットからの接続信号を伝送する配線、及び操作ノブ30からの配線が接続されるとともに、発射モータ61への配線が接続されている。発射制御基板17は、操作ノブ30の操作量に対応して発射モータ61の駆動力を調整する。発射モータ61は、例えば発射制御基板17により調整された駆動力により発射バネを弾性変形させ、発射バネの付勢力を打撃ハンマに伝達して遊技球を打撃することにより、遊技球を操作ノブ30の操作量に対応した速度で遊技領域に向けて発射させる。
中継基板18を介して主基板11から演出制御基板12に対して送信される制御コマンドは、例えば電気信号として伝送される演出制御コマンドである。この実施の形態において、演出制御コマンドは、主基板11に搭載された遊技制御用マイクロコンピュータ100が備えるCPU505(図5参照)によって送信設定が行われ、その設定に基づいて遊技制御用マイクロコンピュータ100が備えるシリアル通信回路511(図5参照)により、演出制御基板12に対して送信される。以下の説明では、主基板11から演出制御基板12に対する演出制御コマンドの送信動作に、こうした遊技制御用マイクロコンピュータ100に設けられたCPU505やシリアル通信回路511による一連の動作が含まれているものとする。この場合、演出制御基板12の側では、例えば演出制御用マイクロコンピュータ120のCPUが、主基板11から伝送されたシリアル信号形式の通信データを受信した際に発生する受信割込み要求に基づく割込み処理を実行することにより、演出制御コマンドを取り込んで所定のバッファ(例えば演出用受信コマンドバッファ)等に格納してもよい。
演出制御コマンドには、例えば画像表示装置5における画像表示動作を制御するために用いられる表示制御コマンドや、スピーカ8L、8Rからの音声出力を制御するために用いられる音声制御コマンド、遊技効果ランプ9といった発光体の点灯動作などを制御するために用いられるランプ制御コマンドが含まれている。
図5は、主基板11に搭載された遊技制御用マイクロコンピュータ100の構成例を示している。図5に示す遊技制御用マイクロコンピュータ100は、例えば1チップマイクロコンピュータであり、外部バスインタフェース501と、クロック回路502と、固有情報記憶回路503と、リセット/割込みコントローラ504と、CPU(Central Processing Unit)505と、ROM(Read Only Memory)506と、RAM(Random Access Memory)507と、CTC(Counter/Timer Circuit)508と、乱数回路509と、PIP(Parallel Input Port)510と、シリアル通信回路511と、アドレスデコード回路512とを備えて構成される。
図6は、遊技制御用マイクロコンピュータ100におけるアドレスマップの一例を示している。図6に示すように、アドレス0000H〜アドレス1FFFHの領域は、ROM506に割り当てられ、ユーザプログラムエリアとプログラム管理エリアとを含んでいる。図7(A)は、ROM506におけるプログラム管理エリアの主要部分について、用途や内容の一例を示している。アドレス2000H〜アドレス20FFHの領域は、遊技制御用マイクロコンピュータ100の内蔵レジスタに割り当てられる内蔵レジスタエリアである。図7(B)は、内蔵レジスタエリアの主要部分について、用途や内容の一例を示している。アドレス7E00H〜アドレス7FFFHの領域は、RAM507に割り当てられたワークエリアであり、I/Oマップやメモリマップに割り付けることができる。アドレスFDD0H〜アドレスFDFBHの領域は、アドレスデコード回路512に割り当てられるXCSデコードエリアである。
プログラム管理エリアは、CPU505がユーザプログラムを実行するために必要な情報を格納する記憶領域である。図7(A)に示すように、プログラム管理エリアには、ヘッダKHDR、機能設定KFCS、第1乱数初期設定KRS1、第2乱数初期設定KRS2、割込み初期設定KIIS、セキュリティ時間設定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読出が許可されるとともに、バス出力マスクが無効となる設定データは、バス出力マスク無効データともいう。
プログラム管理エリアに記憶される機能設定KFCSは、遊技制御用マイクロコンピュータ100におけるウォッチドッグタイマ(WDT;Watch Dog Timet)の動作設定や、各種機能兼用端子の使用設定を示す。図8(B)は、機能設定KFCSにおける設定内容の一例を示している。
機能設定KFCSのビット番号[7−5]は、例えばリセット/割込みコントローラ504における割込み要因として設定可能なウォッチドッグタイマの動作許可/禁止や、許可した場合の周期を示している。機能設定KFCSのビット番号[4]は、遊技制御用マイクロコンピュータ100における所定の機能兼用端子(第1兼用端子)を、シリアル通信回路511が使用する第2チャネル送信端子TXBとするか、アドレスデコード回路512が使用するチップセレクト出力端子XCS13とするかを指定するTXB端子設定である。図8(B)に示す例において、機能設定KFCSのビット番号[4]におけるビット値が“0”であれば、第1兼用端子がシリアル通信回路511での第2チャネル送信に使用される第2チャネル送信端子TXBの設定となる。これに対して、そのビット値が“1”であれば、第1兼用端子がアドレスデコード回路512で使用されるチップセレクト出力端子XCS13の設定となる。この実施の形態では、機能設定KFCSのビット番号[4]を“0”として、第1兼用端子を第2チャネル送信端子TXBに設定することにより、演出制御基板12との間でのシリアル通信を可能にする。
機能設定KFCSのビット番号[3]は、遊技制御用マイクロコンピュータ100における所定の機能兼用端子(第2兼用端子)を、シリアル通信回路511が使用する第1チャネル送信端子TXAとするか、アドレスデコード回路512が使用するチップセレクト出力端子XCS12とするかを示すTXA端子設定である。図8(B)に示す例において、機能設定KFCSのビット番号[3]におけるビット値が“0”であれば、第2兼用端子がシリアル通信回路511での第1チャネル送信に使用される第1チャネル送信端子TXAの設定となる。これに対して、そのビット値が“1”であれば、第2兼用端子がアドレスデコード回路512で使用されるチップセレクト出力端子XCS12の設定となる。この実施の形態では、機能設定KFCSのビット番号[3]を“0”として、第2兼用端子を第1チャネル送信端子TXAに設定することにより、払出制御基板15との間でのシリアル通信を可能にする。
機能設定KFCSのビット番号[2]は、遊技制御用マイクロコンピュータ100における所定の機能兼用端子(第3兼用端子)を、シリアル通信回路511が使用する第1チャネル受信端子RXAとするか、PIP510が使用する入力ポートP5とするかを示すRXA端子設定である。図8(B)に示す例において、機能設定KFCSのビット番号[2]におけるビット値が“0”であれば、第3兼用端子がシリアル通信回路511での第1チャネル受信に使用される第1チャネル受信端子RXAの設定となる。これに対して、そのビット値が“1”であれば、第3兼用端子がPIP510で使用される入力ポートP5の設定となる。この実施の形態では、機能設定KFCSのビット番号[2]を“0”として、第3兼用端子を第1チャネル受信端子RXAに設定することにより、払出制御基板15との間でのシリアル通信を可能にする。
機能設定KFCSのビット番号[1]は、遊技制御用マイクロコンピュータ100における所定の機能兼用端子(第4兼用端子)を、CPU505等に接続される外部ノンマスカブル割込み端子XNMIとするか、PIP510が使用する入力ポートP4とするかを示すNMI接続設定である。図8(B)に示す例において、機能設定KFCSのビット番号[1]におけるビット値が“0”であれば、第4兼用端子がCPU505等に接続される外部ノンマスカブル割込み端子XNMIの設定となる(CPU接続)。これに対して、そのビット値が“1”であれば、第4兼用端子がPIP510で使用される入力ポートP4の設定となる(CPU非接続)。
機能設定KFCSのビット番号[0]は、遊技制御用マイクロコンピュータ100における所定の機能兼用端子(第5兼用端子)を、CPU505等に接続される外部マスカブル割込み端子XINTとするか、PIP510が使用する入力ポートP3とするかを示すXINT接続設定である。図8(B)に示す例において、機能設定KFCSのビット番号[0]におけるビット値が“0”であれば、第5兼用端子がCPU505等に接続される外部マスカブル割込み端子XINTの設定となる(CPU接続)。これに対して、そのビット値が“1”であれば、第5兼用端子がPIP510で使用される入力ポートP3の設定となる(CPU非接続)。
プログラム管理エリアに記憶される第1乱数初期設定KRS1及び第2乱数初期設定KRS2は、乱数回路509の初期設定を示す。図9(A)は、第1乱数初期設定KRS1における設定内容の一例を示している。図9(B)は、第2乱数初期設定KRS2における設定内容の一例を示している。
第1乱数初期設定KRS1のビット番号[3]は、乱数回路509を使用するか否かを示す乱数回路使用設定である。図9(A)に示す例において、第1乱数初期設定KRS1のビット番号[3]におけるビット値が“0”であれば、乱数回路509を使用しない設定となる一方(未使用)、“1”であれば、乱数回路509を使用する設定となる(使用)。この実施の形態では、第1乱数初期設定KRS1のビット番号[3]を“1”として、乱数回路509を使用可能に設定する。
第1乱数初期設定KRS1のビット番号[2]は、乱数回路509における乱数値となる数値データの更新に用いられる乱数更新クロックRGK(図13参照)を、内部システムクロックSCLKとするか、乱数用クロックRCLKの2分周とするかを示す乱数更新クロック設定である。図9(A)に示す例において、第1乱数初期設定KRS1のビット番号[2]におけるビット値が“0”であれば、内部システムクロックSCLKを乱数更新クロックRGKに用いる設定となる一方、“1”であれば、乱数用クロックRCLKを2分周して乱数更新クロックRGKに用いる設定となる。この実施の形態では、第1乱数初期設定KRS1のビット番号[2]を“1”として、乱数用クロックRCLKを2分周して乱数更新クロックRGKに用いる設定とする。
第1乱数初期設定KRS1のビット番号[1−0]は、乱数回路509における乱数更新規則を変更するか否かや、変更する場合における変更方式を示す乱数更新規則設定である。図9(A)に示す例において、第1乱数初期設定KRS1のビット番号[1−0]におけるビット値が“00”であれば、乱数更新規則を変更しない設定となり、“01”であれば、2周目以降にて乱数更新規則をソフトウェアにより変更する設定となり、“10”であれば、2周目以降にて乱数更新規則を自動で変更する設定となる。
第2乱数初期設定KRS2のビット番号[3−2]は、固定のビット値“00”が設定される。なお、図9(B)における「00B」の“B”は2進数表示であることを示す。第2乱数初期設定KRS2のビット番号[1−0]は、乱数回路509における乱数値となる数値データでのスタート値に関する設定を示す。図9(B)に示す例において、第2乱数初期設定KRS2のビット番号[1]におけるビット値が“0”であれば、スタート値が所定のデフォルト値0001Hに設定される一方、“1”であるときには、遊技制御用マイクロコンピュータ100ごとに付与された固有の識別情報であるIDナンバーに基づく値がスタート値に設定される。また、図9(B)に示す例では、第2乱数初期設定KRS2のビット番号[0]におけるビット値が“0”であれば、システムリセット毎にスタート値を変更しない設定となる一方、“1”であるときには、システムリセット毎にスタート値を変更する設定となる。なお、スタート値をIDナンバーに基づく値に設定する場合には、IDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算の一部又は全部を実行して、算出された値をスタート値に用いるようにすればよい。また、スタート値をシステムリセット毎に変更する場合には、例えば遊技制御用マイクロコンピュータ100に内蔵されたフリーランカウンタのカウント値を、システムリセットの発生時に遊技制御用マイクロコンピュータ100が備える所定の内蔵レジスタ(乱数スタート値用レジスタ)に格納する。そして、初期設定時に乱数スタート値用レジスタの格納値をそのまま用いること、あるいは、その格納値を所定の演算関数(例えばハッシュ関数)に代入して得られた値を用いることなどにより、スタート値がランダムに決定されればよい。フリーランカウンタは、例えば遊技制御用マイクロコンピュータ100のRAM507におけるバックアップ領域といった、主基板11におけるバックアップ箇所と共通のバックアップ電源を用いてバックアップされるものであればよい。あるいは、フリーランカウンタは、RAM507におけるバックアップ領域などに用いられるバックアップ電源とは別個に設けられた電源によりバックアップされてもよい。こうして、フリーランカウンタがパックアップ電源によってバックアップされることで、電力供給が停止した場合でも、所定期間はフリーランカウンタにおけるカウント値が保存されることになる。
なお、乱数回路509にて乱数値となる数値データを生成するための回路が2系統(第1及び第2チャネル対応)設けられる場合には、図9(A)及び(B)に示す第1乱数初期設定KRS1のビット番号[3−0]と第2乱数初期設定KRS2のビット番号[3−0]とを、第1チャネルにおける初期設定を示すものとして使用する。その一方で、第1乱数初期設定KRS1のビット番号[7−4]や第2乱数初期設定KRS2のビット番号[7−4]を(図9(A)及び(B)では省略)、第2チャネルにおける初期設定を示すものとして使用すればよい。
プログラム管理エリアに記憶される割込み初期設定KIISは、遊技制御用マイクロコンピュータ100にて発生するマスカブル割込みの取扱いに関する初期設定を示す。図9(C)は、割込み初期設定KIISにおける設定内容の一例を示している。
割込み初期設定KIISのビット番号[7−4]では、割込みベクタの上位4ビットを設定する。割込み初期設定KIISのビット番号[3−0]では、マスカブル割込み要因の優先度の組合せを設定する。図9(C)に示す例において、割込み初期設定KIISのビット番号[3−0]により「00H」〜「02H」及び「06H」のいずれかが指定されれば、CTC508からのマスカブル割込み要因を最優先とする優先度の組合せが設定される。これに対して、「03H」及び「07H」のいずれかが指定されれば、乱数回路509からのマスカブル割込み要因を最優先とする優先度の組合せが設定される。また、「04H」及び「05H」のいずれかが指定されれば、シリアル通信回路511からのマスカブル割込み要因を最優先とする優先度の組合せが設定される。なお、同一回路からのマスカブル割込み要因を最優先とする優先度の組合せでも、指定値が異なる場合には、最優先となるマスカブル割込み要因の種類や第2順位以下における優先度の組合せなどが異なっている。
プログラム管理エリアに記憶されるセキュリティ時間設定KSESは、乱数用クロックRCLKの周波数を監視する場合に異常を検知する周波数や、遊技制御用マイクロコンピュータ100の動作開始時などに移行するセキュリティモードの時間(セキュリティ時間)に関する設定を示す。ここで、遊技制御用マイクロコンピュータ100の動作モードがセキュリティモードであるときには、所定のセキュリティチェック処理が実行されて、ROM506の記憶内容が変更されたか否かが検査される。図10(A)は、セキュリティ時間設定KSESにおける設定内容の一例を示している。
セキュリティ時間設定KSESのビット番号[7−6]は、乱数用クロックRCLKの周波数を監視する場合に異常が検出される周波数を示す乱数用クロック異常検出設定である。図10(B)は、セキュリティ時間設定KSESのビット番号[7−6]における設定内容の一例を示している。セキュリティ時間設定KSESのビット番号[7−6]は、内部システムクロックSCLKの周波数に基づき、乱数用クロックRCLKの周波数が異常と検知される基準値(判定値)を指定する。セキュリティ時間設定KSESのビット番号「5」は、固定のビット値“0”が設定される。
セキュリティ時間設定KSESのビット番号[4−3]は、セキュリティ時間をシステムリセット毎にランダムな時間分延長する場合の時間設定を示す。図10(C)は、セキュリティ時間設定KSESのビット番号[4−3]における設定内容の一例を示している。図10(C)に示す例において、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“00”であれば、ランダムな時間延長を行わない設定となる。これに対して、そのビット値が“01”であればショートモードの設定となり、“10”であればロングモードの設定となる。ここで、ショートモードやロングモードが指定された場合には、例えば遊技制御用マイクロコンピュータ100に内蔵されたフリーランカウンタのカウント値を、システムリセットの発生時に遊技制御用マイクロコンピュータ100が備える所定の内蔵レジスタ(可変セキュリティ時間用レジスタ)に格納する。そして、初期設定時に可変セキュリティ時間用レジスタの格納値をそのまま用いること、あるいは、その格納値を所定の演算関数(例えばハッシュ関数)に代入して得られた値を用いることなどにより、セキュリティ時間を延長する際の延長時間がランダムに決定されればよい。一例として、内部システムクロックSCLKの周波数が6.0MHzである場合には、ショートモードにおいて0〜680μs(マイクロ秒)の範囲で延長時間がランダムに決定され、ロングモードにおいて0〜348,160μsの範囲で延長時間がランダムに決定される。また、他の一例として、内部システムクロックSCLKの周波数が10.0MHzである場合には、ショートモードにおいて0〜408μsの範囲で延長時間がランダムに決定され、ロングモードにおいて0〜208,896μsの範囲で延長時間がランダムに決定される。なお、セキュリティ時間を延長する際の延長時間をシステムリセット毎にランダムに決定するために用いられるフリーランカウンタは、乱数回路509にて生成される乱数のスタート値をシステムリセット毎にランダムに決定するために用いられるフリーランカウンタと、同一のカウンタであってもよいし、別個に設けられたカウンタであってもよい。
セキュリティ時間設定KSESのビット番号[2−0]は、セキュリティ時間を固定時間に加えて予め選択可能な複数の延長時間のいずれかとする場合の時間設定を示す。図10(D)は、セキュリティ時間設定KSESのビット番号[2−0]における設定内容の一例を示している。図10(D)に示す例において、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“000”であれば、固定時間に加える延長時間がなく延長しない設定となる。これに対して、そのビット値が“000”以外の値であれば、内部システムクロックSCLKの周期TSCLKを用いて定められる複数の延長時間のいずれかに設定される。この場合には、指定されたビット値に応じて、異なる延長時間の設定となる。一例として、内部システムクロックSCLKの周波数が6.0MHzである場合に、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“001”であれば、固定時間に加えて約699.1ms(ミリ秒)の延長時間が設定される。また、他の一例として、内部システムクロックSCLKの周波数が10.0MHzである場合に、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“001”であれば、固定時間に加えて約419.4msの延長時間が設定される。
また、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値によりショートモード又はロングモードを設定するとともに、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値を“000”以外とすることにより固定時間に加える延長時間を設定することもできる。この場合には、ビット番号[2−0]におけるビット値に対応した延長時間と、ビット番号[4−3]におけるビット値に基づいてランダムに決定された延長時間との双方が、固定時間に加算されて、遊技制御用マイクロコンピュータ100がセキュリティモードとなるセキュリティ時間が決定されることになる。
図5に示す遊技制御用マイクロコンピュータ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は、乱数回路509にも供給され、乱数用クロック生成回路112から供給される乱数用クロックRCLKの周波数を監視するために用いられる。さらに、内部システムクロック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が備えるリセット/割込みコントローラ504は、遊技制御用マイクロコンピュータ100の内部や外部にて発生する各種リセット、割込み要求を制御するためのものである。リセット/割込みコントローラ504が制御するリセットには、システムリセットとユーザリセットが含まれている。システムリセットは、外部システムリセット端子XSRSTに一定の期間にわたりローレベル信号が入力されたときに発生するリセットである。ユーザリセットは、ウォッチドッグタイマ(WDT)のタイムアウト信号が発生したことや、指定エリア外走行禁止(IAT)が発生したことなど、所定の要因により発生するリセットである。
リセット/割込みコントローラ504が制御する割込みには、ノンマスカブル割込みNMIとマスカブル割込みINTが含まれている。ノンマスカブル割込みNMIは、CPU505の割込み禁止状態でも無条件に受け付けられる割込みであり、外部ノンマスカブル割込み端子XNMI(入力ポートP4と兼用)に一定の期間にわたりローレベル信号が入力されたときに発生する割込みである。マスカブル割込みINTは、CPU505の設定命令により、割込み要求の受け付けを許可/禁止できる割込みであり、優先順位設定による多重割込みの実行が可能である。マスカブル割込みINTの要因としては、外部マスカブル割込み端子XINT(入力ポートP3と兼用)に一定の期間にわたりローレベル信号が入力が入力されたこと、CTC508に含まれるタイマ回路にてタイムアウトが発生したこと、シリアル通信回路511にてデータ受信又はデータ送信による割込み要因が発生したこと、乱数回路509にて乱数値となる数値データの取込による割込み要因が発生したことなど、複数種類の割込み要因が予め定められていればよい。
リセット/割込みコントローラ504は、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、割込みマスクレジスタIMR(アドレス2028H)、割込み待ちモニタレジスタIRR(アドレス2029H)、割込み中モニタレジスタISR(アドレス202AH)、内部情報レジスタCIF(アドレス208CH)などを用いて、割込みの制御やリセットの管理を行う。割込みマスクレジスタIMRは、互いに異なる複数の要因によるマスカブル割込みINTのうち、使用するものと使用しないものとを設定するレジスタである。割込み待ちモニタレジスタIRRは、割込み初期設定KIISにより設定されたマスカブル割込み要因のそれぞれについて、マスカブル割込み要求信号の発生状態を確認するレジスタである。割込み中モニタレジスタISRは、割込み初期設定KIISにより設定されたマスカブル割込み要因のそれぞれについて、マスカブル割込み要求信号の処理状態を確認するレジスタである。内部情報レジスタCIFは、直前に発生したリセット要因を管理したり、乱数用クロックRCLKの周波数異常を記録したりするためのレジスタである。
図11(A)は、内部情報レジスタCIFの構成例を示している。図11(B)は、内部情報レジスタCIFに格納される内部情報データの各ビットにおける設定内容の一例を示している。内部情報レジスタCIFのビット番号[4]に格納される内部情報データCIF4は、乱数用クロックRCLKにおける周波数異常の有無を示す乱数用クロック異常指示である。図11(B)に示す例では、乱数用クロックRCLKの周波数異常が検知されないときに、内部情報データCIF4のビット値が“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は、直前に発生したリセット要因がウォッチドッグタイマ(WDT)のタイムアウトによるユーザリセットであるか否かを示すWDTタイムアウト指示である。図11(B)に示す例では、直前のリセット要因がウォッチドッグタイマのタイムアウトによるユーザリセットではないときに(タイムアウト未発生)、内部情報データCIF1のビット値が“0”となる一方、ウォッチドッグタイマのタイムアウトによるユーザリセットであるときに(タイムアウト発生)、そのビット値が“1”となる。内部情報レジスタCIFのビット番号[0]に格納される内部情報データCIF0は、直前に発生したリセット要因が指定エリア外走行禁止(IAT)によるユーザリセットであるか否かを示すIAT発生指示である。図11(B)に示す例では、直前のリセット要因が指定エリア外走行の発生によるユーザリセットではないときに(IAT発生なし)、内部情報データCIF0のビット値が“0”となる一方、指定エリア外走行の発生によるユーザリセットであるときに(IAT発生あり)、そのビット値が“1”となる。
遊技制御用マイクロコンピュータ100が備えるCPU505は、ROM506から読み出したプログラムを実行することにより、パチンコ遊技機1における遊技の進行を制御するための処理などを実行する。このときには、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が備えるCTC508は、例えば8ビットのプログラマブルタイマを3チャネル(PTC0−PTC2)内蔵して構成され、リアルタイム割込みの発生や時間計測を可能とするタイマ回路を含んでいる。各プログラマブルタイマPTC0−PTC2は、内部システムクロックSCLKに基づいて生成されたカウントクロックの信号変化(例えばハイレベルからローレベルへと変化する立ち下がりタイミング)などに応じて、タイマ値が更新されるものであればよい。また、CTC508は、例えば8ビットのプログラマブルカウンタを4チャネル(PCC0−PCC3)内蔵してもよい。各プログラマブルカウンタPCC0−PCC3は、内部システムクロックSCLKの信号変化、あるいは、プログラマブルカウンタPCC0−PCC3のいずれかにおけるタイムアウトの発生などに応じて、カウント値が更新されるものであればよい。CTC508は、セキュリティ時間を延長する際の延長時間(可変設定時間)をシステムリセット毎にランダムに決定するために用いられるフリーランカウンタや、乱数回路509にて生成される乱数のスタート値をシステムリセット毎にランダムに決定するために用いられるフリーランカウンタなどを、含んでもよい。あるいは、これらのフリーランカウンタは、例えばRAM507のバックアップ領域といった、CTC508とは異なる遊技制御用マイクロコンピュータ100の内部回路に含まれてもよい。
遊技制御用マイクロコンピュータ100が備える乱数回路509は、例えば16ビット乱数といった、所定の更新範囲を有する乱数値となる数値データを生成する回路である。この実施の形態では、主基板11の側において、例えば図12に示すような特図表示結果判定用の乱数値MR1、大当り種別決定用の乱数値MR2、リーチ判定用の乱数値MR3、変動パターン種別決定用の乱数値MR4、変動パターン決定用の乱数値MR5、加算値決定用の乱数値MR6のそれぞれを示す数値データが、カウント可能に制御される。CPU505は、乱数回路509から抽出した数値データに基づき、例えば図25に示す遊技制御カウンタ設定部594に設けられたランダムカウンタといった、乱数回路509とは異なるランダムカウンタを用いて、ソフトウェアによって各種の数値データを加工あるいは更新することで、乱数値MR1〜MR6の全部又は一部を示す数値データをカウントするようにしてもよい。以下では、一例として、特図表示結果判定用の乱数値MR1を示す数値データと、加算値決定用の乱数値MR6を示す数値データとが、ハードウェアとなる乱数回路509からCPU505により抽出された数値データを、ソフトウェアにより加工することで更新され、それ以外の乱数値MR2〜MR5を示す数値データは、CPU505がランダムカウンタなどを用いてソフトウェアにより更新するものとする。
図12に示す乱数値MR1〜MR6のうち、乱数値MR3〜MR5については、加算値や加算判定値、最大判定値が定められている。加算値は、1回のタイマ割込みなどに対応して各乱数値に加算する値であり、その値は乱数値を更新するための乱数更新処理が実行されるごとに異ならせることができる。例えば、加算値は、加算値決定用の乱数値MR6などに基づいて求められるものであり、一時的な変数として加算値を記憶するための領域がRAM507などに設けられていればよい。加算判定値は、加算値決定用の乱数値MR6との比較により、各乱数値に対応した加算値を取得するために用いられる値である。より具体的には、加算値決定用の乱数値MR6が各乱数値に対応した加算値の初期値として読み出された後、現在の加算値が加算判定値よりも小さくなったと判定されるまで、現在の加算値から加算判定値を減算した値を、新たな加算値として更新していく。乱数判定値は、最終的に求められた加算値を加算したことによる更新後の各乱数値が取り得る値の範囲内であるかを判定するために用いられる値である。そして、更新後の各乱数値が対応する乱数判定値を超えているときには、更新後の乱数値から乱数判定値を減算した値が、新たな乱数値として設定される。なお、この実施の形態において、乱数値MR2を示す数値データは、遊技制御用マイクロコンピュータ100にてタイマ割込みが発生する毎に、1ずつ加算するように更新されるものとする。
特図表示結果判定用の乱数値MR1は、特図ゲームにおける特別図柄などの可変表示結果を「大当り」として大当り遊技状態に制御するか否かや、可変表示結果を「小当り」として小当り遊技状態に制御するか否かを、判定するために用いられる乱数値である。例えば、特図表示結果判定用の乱数値MR1は、「0」〜「65535」の範囲の値をとる。大当り種別決定用の乱数値MR2は、可変表示結果を「大当り」とする場合に、大当り種別を複数種類のいずれかに決定するために用いられる乱数値である。例えば、大当り種別決定用の乱数値MR2は、「0」〜「99」の範囲の値をとる。
リーチ判定用の乱数値MR3は、可変表示結果を「ハズレ」とする場合に、飾り図柄をリーチ表示状態で導出表示する「リーチ」の可変表示態様とするか否かを判定するために用いられる乱数値である。例えば、リーチ判定用の乱数値MR3は、「0」〜「239」の範囲の値をとる。また、リーチ判定用の乱数値MR3に対応して、加算値の範囲が「0」〜「7」、加算判定値が「8」、最大判定値が「240」に定められている。
変動パターン種別決定用の乱数値MR4は、飾り図柄の変動パターン種別を、予め用意された複数種類のいずれかに決定するために用いられる乱数値である。例えば、変動パターン種別決定用の乱数値MR4は、「0」〜「241」の範囲の値をとる。ここで、各変動パターン種別は、例えば飾り図柄の可変表示中に実行される演出動作などに基づいて分類された1つ又は複数の変動パターンを含むように構成されたものであればよい。変動パターン種別決定用の乱数値MR4に対応して、加算値の範囲が「0」〜「7」、加算判定値が「8」、最大判定値が「242」に定められている。
変動パターン決定用の乱数値MR5は、飾り図柄の変動パターンを、予め用意された複数種類のいずれかに決定するために用いられる乱数値である。例えば、変動パターン決定用の乱数値MR5は、「0」〜「255」の範囲の値をとる。また、変動パターン決定用の乱数値MR5に対応して、加算値の範囲が「0」〜「7」、加算判定値が「8」、最大判定値が「256」に定められている。
加算値決定用の乱数値MR6は、各乱数値に対応した加算判定値と比較されることなどにより、各乱数値に対応した加算値を取得するために用いられる値である。例えば、加算値決定用の乱数値MR6は、「0」〜「7」の範囲の値をとる。
図13は、乱数回路509の一構成例を示すブロック図である。乱数回路509は、図13に示すように、周波数監視回路551、クロック用フリップフロップ552、乱数生成回路553、スタート値設定回路554、乱数列変更回路555、乱数列変更設定回路556、ラッチ用フリップフロップ557A、557B、乱数ラッチセレクタ558A、558B、乱数値レジスタ559A、559Bを備えて構成される。なお、乱数値レジスタ559Aと乱数値レジスタ559Bはそれぞれ、図7(B)に示すような遊技制御用マイクロコンピュータ100の内蔵レジスタに含まれる乱数値レジスタR1D(アドレス2038H−2039H)と乱数値レジスタR2D(アドレス203AH−203BH)に対応している。
周波数監視回路551は、乱数用クロック生成回路112により生成された乱数用クロックRCLKの周波数を監視して、その異常発生を検知するための回路である。周波数監視回路551は、例えば乱数用外部クロック端子ERCに入力される発振信号を監視して、内部システムクロックSCLKに基づきセキュリティ時間設定KSESのビット番号[7−6]における設定内容(図10(B)参照)に応じた周波数異常を検知したときに、内部情報レジスタCIFのビット番号[4]を“1”にセットする。この実施の形態では、乱数用外部クロック端子ERCに乱数用クロック生成回路112が生成した乱数用クロックRCLKが入力される。
クロック用フリップフロップ552は、例えばD型フリップフロップなどを用いて構成され、乱数用外部クロック端子ERCからの乱数用クロックRCLKがクロック端子CKに入力される。また、クロック用フリップフロップ552では、逆相出力端子(反転出力端子)QバーがD入力端子に接続されている。そして、正相出力端子(非反転出力端子)Qから乱数更新クロックRGKを出力する一方で、逆相出力端子(反転出力端子)Qバーからラッチ用クロックRC0を出力する。この場合、クロック用フリップフロップ552は、クロック端子CKに入力される乱数用クロックRCLKにおける信号状態が所定の変化をしたときに、正相出力端子(非反転出力端子)Q及び逆相出力端子(反転出力端子)Qバーからの出力信号における信号状態を変化させる。例えば、クロック用フリップフロップ552は、乱数用クロックRCLKの信号状態がローレベルからハイレベルへと変化する立ち上がりのタイミング、あるいは、乱数用クロックRCLKの信号状態がハイレベルからローレベルへと変化する立ち下がりのタイミングのうち、いずれか一方のタイミングにて、D入力端子における入力信号を取り込む。このとき、正相出力端子(非反転出力端子)Qからは、D入力端子にて取り込まれた入力信号が反転されることなく出力される一方で、逆相出力端子(反転出力端子)Qバーからは、D入力端子にて取り込まれた入力信号が反転されて出力される。こうして、クロック用フリップフロップ552の正相出力端子(非反転出力端子)Qからは乱数用クロックRCLKにおける発振周波数(例えば20MHz)の1/2となる発振周波数(例えば10MHz)を有する乱数更新クロックRGKが出力される一方、逆相出力端子(反転出力端子)Qバーからは乱数更新クロックRGKの逆相信号(反転信号)、すなわち乱数更新クロックRGKと同一周波数で乱数更新クロックRGKとは位相がπ(=180°)だけ異なるラッチ用クロックRC0が出力される。
クロック用フリップフロップ552から出力された乱数更新クロックRGKは、乱数生成回路553のクロック端子に入力されて、乱数生成回路553におけるカウント値の歩進に用いられる。また、クロック用フリップフロップ552から出力されたラッチ用クロックRC0は、分岐点BR1にてラッチ用クロックRC1とラッチ用クロックRC2とに分岐される。したがって、ラッチ用クロックRC1とラッチ用クロックRC2とは、互いに同一の発振周波数を有し、互いに共通の周期で信号状態が変化することになる。ここで、ラッチ用クロックRC1やラッチ用クロックRC2における信号状態の変化としては、例えばローレベルからハイレベルへと変化する立ち上がりや、ハイレベルからローレベルへと変化する立ち下がりなどがある。ラッチ用クロックRC1は、ラッチ用フリップフロップ557Aのクロック端子CKに入力されて、始動入賞時ラッチ信号SL1の生成に用いられる乱数取得用クロックとなる。ラッチ用クロックRC2は、ラッチ用フリップフロップ557Bのクロック端子CKに入力されて、始動入賞時ラッチ信号SL2の生成に用いられる乱数取得用クロックとなる。
ここで、乱数用クロックRCLKの発振周波数と、制御用クロック生成回路111によって生成される制御用クロックCCLKの発振周波数とは、互いに異なる周波数となっており、また、いずれか一方の発振周波数が他方の発振周波数の整数倍になることがない。一例として、制御用クロックCCLKの発振周波数が11.0MHzである一方で、乱数用クロックRCLKの発振周波数は9.7MHzであればよい。そのため、乱数更新クロックRGKやラッチ用クロックRC1、RC2はいずれも、CPU505に供給される制御用クロックCCLKとは異なる周期で信号状態が変化する発振信号となる。すなわち、クロック用フリップフロップ552は、乱数用クロック生成回路112によって生成された乱数用クロックRCLKに基づき、カウント値を更新するための乱数更新クロックRGKや、複数の乱数取得用クロックとなるラッチ用クロックRC1、RC2として、制御用クロックCCLKや内部システムクロックSCLK(制御用クロックCCLKを2分周したもの)とは異なる周期で信号状態が変化する発振信号を生成する。
乱数生成回路553は、例えば16ビットのカウンタなどから構成され、クロック用フリップフロップ552から出力される乱数更新クロックRGKなどの入力に基づき、数値データを更新可能な所定の範囲において所定の初期値から所定の最終値まで循環的に更新する回路である。例えば乱数生成回路553は、所定のクロック端子への入力信号である乱数更新クロックRGKにおける立ち上がりエッジに応答して、「0」から「65535」までの範囲内で設定された初期値から「65535」まで1ずつ加算するように数値データをカウントアップして行く。そして、「65535」までカウントアップした後には、「0」から初期値よりも1小さい最終値となる数値まで1ずつ加算するようにカウントアップすることで、数値データを循環的に更新する。
スタート値設定回路554は、第2乱数初期設定KRS2のビット番号[1−0]におけるビット値(図9(B)参照)に応じて、乱数生成回路553により生成されるカウント値におけるスタート値を設定する。例えば、スタート値設定回路554は、第2乱数初期設定KRS2のビット番号[1−0]が“00”であればスタート値をデフォルト値である「0000H」に設定し、“10”であればIDナンバーに基づく値に設定し、“01”であればシステムリセット毎に変更される値に設定する。
乱数列変更回路555は、乱数生成回路553により生成された数値データが一巡したときに、数値データの更新順である順列を所定の乱数更新規則に従った順列に変更可能とする回路である。例えば、乱数列変更回路555は、乱数生成回路553から出力される数値データにおけるビットの入れ替えや転置などのビットスクランブル処理を実行する。また、乱数列変更回路555は、例えばビットスクランブル処理に用いるビットスクランブル用キーやビットスクランブルテーブルを変更することなどにより、数値データの更新順である順列の変更を行うことができる。
乱数列変更設定回路556は、第1乱数初期設定KRS1のビット番号[1−0]におけるビット値(図9(A)参照)などに応じて、乱数列変更回路555における数値データの更新順を変更する設定を行うための回路である。例えば、乱数列変更設定回路556は、第1乱数初期設定KRS1のビット番号[1−0]が“00”であれば2周目以降も乱数更新規則を変更しない設定とする一方、“01”であれば2周目以降はソフトウェアでの変更要求に応じて乱数更新規則を変更し、“10”であれば自動で乱数更新規則を変更する。
乱数列変更回路556は、第1乱数初期設定KRS1のビット番号[1−0]が“01”であることに対応してソフトウェアによる乱数更新規則の変更を行う場合に、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、乱数列変更レジスタRDSC(アドレス2034H)を用いて、乱数更新規則の変更を制御する。図14(A)は、乱数列変更レジスタRDSCの構成例を示している。図14(B)は、乱数列変更レジスタRDSCに格納される乱数列変更要求データの各ビットにおける設定内容の一例を示している。乱数列変更レジスタRDSCのビット番号[0]に格納される乱数列変更要求データRDSC0は、乱数更新規則をソフトウェアにより変更する場合に、乱数列の変更要求の有無を示している。図14(B)に示す例では、ソフトウェアにより乱数列の変更要求がないときに、乱数列変更要求データRDSC0のビット値が“0”となる一方、乱数列の変更要求があったときには、そのビット値が“1”となる。
図15は、乱数更新規則をソフトウェアにより変更する場合の動作例を示している。この場合、乱数生成回路553から出力されるカウント値順列RCNが所定の初期値から所定の最終値まで循環的に更新されたときに、乱数列変更要求データRDSC0が“1”であることに応答して、乱数更新規則を変更する。図15に示す動作例では、始めに乱数列変更回路555から出力される乱数列RSNが、「0→1→…→65535」となっている。この後、CPU505がROM506に格納されたユーザプログラムを実行することによって、所定のタイミングで乱数列変更レジスタRDSCのビット番号[0]に“1”が書き込まれたものとする。
そして、第1乱数初期設定KRS1のビット番号[1−0]が“01”であることに対応して、乱数列変更設定回路556が乱数列変更要求データRDSC0を読み出し、そのビット値が“1”であることに応答して、乱数更新規則を変更するための設定を行う。このとき、乱数列変更設定回路556は、乱数生成回路553から出力されたカウント値順列RCNが所定の最終値に達したことに応じて、例えば予め用意された複数種類の乱数更新規則のいずれかを選択することなどにより、乱数更新規則を変更する。図15に示す動作例では、乱数列変更回路555が乱数生成回路553から出力されたカウント値順列RCNにおける最終値に対応する数値データ「65535」を出力した後、乱数列変更要求データRDSC0に応じて乱数更新規則を変更する。その後、乱数列変更回路555は、変更後の乱数更新規則に従った乱数列RSNとして、「65535→65534→…→0」を出力する。乱数列変更レジスタRDSCは、乱数列変更設定回路556により乱数列変更要求データRDSC0が読み出されたときに初期化される。そのため、再び乱数列変更レジスタRDSCのビット番号[0]にビット値“1”が書き込まれるまでは、乱数列変更回路555から出力される乱数列RSNが、「65535→65534→…→0」となる。
CPU505がROM506に格納されたユーザプログラムを実行することによって、乱数列変更レジスタRDSCのビット番号[0]に再びビット値“1”が書き込まれると、乱数更新規則が再度変更される。図15に示す動作例では、乱数列変更回路555が乱数列RSNにおける最終値に対応する数値データ「0」を出力したときに、乱数列変更要求データRDSC0としてビット値“1”が書き込まれたことに応じて乱数更新規則を変更する。その後、乱数列変更回路555は、変更後の乱数更新規則に従った乱数列RSNとして、「0→2→…→65534→1→…→65535」を出力する。
図16は、乱数更新規則を自動で変更する場合の動作例を示している。この場合、乱数生成回路553から出力されるカウント値順列RCNが所定の初期値から所定の最終値まで循環的に更新されたことに応じて、乱数列変更設定回路556が自動的に乱数更新規則を変更する。図16に示す動作例では、始めに乱数列変更回路555から出力される乱数列RSNが、「0→1→…→65535」となっている。
そして、乱数変更回路555から出力された乱数列RSNが所定の最終値に達したときに、乱数列変更設定回路556は、予め用意された複数種類の更新規則のうちから予め定められた順序に従って更新規則を選択することにより、更新規則を変更するようにしてもよい。あるいは、乱数列変更設定回路556は、複数種類の更新規則のうちから任意の更新規則を選択することにより、更新規則を変更するようにしてもよい。図16に示す動作例では、1回目の乱数更新規則の変更により、乱数列変更回路555から出力される乱数列RSNが、「65535→65534→…→0」となる。その後、2回目の乱数更新規則の変更により、乱数列変更回路555から出力される乱数列RSNは、「0→2→…→65534→1→…→65535」となる。図16に示す動作例では、3回目の乱数更新規則の変更により、乱数列変更回路555から出力される乱数列RSNは、「65534→0→…→32768」となる。4回目の乱数更新規則の変更が行われたときには、乱数列変更回路555から出力される乱数列RSNが、「16383→49151→…→49150」となる。5回目の乱数更新規則の変更が行われたときには、乱数列変更回路555から出力される乱数列RSNが、「4→3→…→465531」となる。
ラッチ用フリップフロップ557A、557Bはそれぞれ、例えばD型フリップフロップなどを用いて構成される。ラッチ用フリップフロップ557Aでは、D入力端子にPIP510が備える入力ポートP0からの配線が接続され、クロック端子CKにラッチ用クロックRC1を伝送する配線が接続されている。この実施の形態では、入力ポートP0に第1始動口スイッチ22Aからの第1始動入賞信号SS1が入力される。ラッチ用フリップフロップ557Aは、ラッチ用クロックRC1の立ち上がりエッジなどに応答して、第1始動入賞信号SS1(実際には、SS1の反転信号)を取り込み、始動入賞時ラッチ信号SL1として出力する。これにより、ラッチ用フリップフロップ557Aでは、ラッチ用クロックRC1の立ち上がりエッジに同期して、第1始動入賞信号SS1が始動入賞時ラッチ信号SL1として出力される。ラッチ用フリップフロップ557Bでは、D入力端子にPIP510が備える入力ポートP1からの配線が接続され、クロック端子CKにラッチ用クロックRC2を伝送する配線が接続されている。この実施の形態では、入力ポートP1に第2始動口スイッチ22Bからの第2始動入賞信号SS2が入力される。ラッチ用フリップフロップ557Bは、ラッチ用クロックRC2の立ち上がりエッジなどに応答して、第2始動入賞信号SS2(実際には、SS2の反転信号)を取り込み、始動入賞時ラッチ信号SL2として出力する。これにより、ラッチ用フリップフロップ557Bでは、ラッチ用クロックRC2の立ち上がりエッジに同期して、第2始動入賞信号SS2が始動入賞時ラッチ信号SL2として出力される。
なお、第1始動入賞信号SS1や第2始動入賞信号SS2は、第1始動口スイッチ22Aや第2始動口スイッチ22Bから直接伝送されるものに限定されない。一例として、第1始動口スイッチ22Aからの出力信号や第2始動口スイッチ22Bからの出力信号がオン状態となっている時間を計測し、計測した時間が所定の時間(例えば3ms)になったときに、第1始動入賞信号SS1や第2始動入賞信号SS2を出力するタイマ回路を設けてもよい。
乱数ラッチセレクタ558Aは、ラッチ用フリップフロップ557Aから伝送される始動入賞時ラッチ信号SL1と、ソフトウェアによる乱数ラッチ要求信号とを取り込み、いずれかを乱数ラッチ信号LL1として選択的に出力する回路である。乱数ラッチセレクタ558Bは、ラッチ用フリップフロップ557Bから伝送される始動入賞時ラッチ信号SL2と、ソフトウェアによる乱数ラッチ要求信号とを取り込み、いずれかを乱数ラッチ信号LL1として選択的に出力する回路である。乱数ラッチセレクタ558Aと乱数ラッチセレクタ558Bは、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、乱数値取込レジスタRDLT(アドレス2032H)と、乱数ラッチ選択レジスタRDLS(アドレス2030H)とを用いて、乱数ラッチ信号LL1や乱数ラッチ信号LL2の出力を制御する。乱数値取込レジスタRDLTは、乱数列変更回路555から出力された乱数列RSNにおける数値データを、ソフトウェアにより乱数値レジスタ559Aや乱数値レジスタ559Bに取り込むために用いられるレジスタである。乱数ラッチ選択レジスタRDLSは、乱数列変更回路555から出力された乱数列RSNにおける数値データを、乱数値レジスタ559Aや乱数値レジスタ559Bに、ソフトウェアにより取り込むか、入力ポートP0、P1への信号入力により取り込むかの取込方法を示すレジスタである。
図17(A)は、乱数値取込レジスタRDLTの構成例を示している。図17(B)は、乱数値取込レジスタRDLTに格納される乱数値取込指定データの各ビットにおける設定内容の一例を示している。乱数値取込レジスタRDLTのビット番号[1]に格納される乱数値取込指定データRDLT1は、乱数値レジスタR2Dとなる乱数値レジスタ559Bに対する乱数値取込指定の有無を示している。図17(B)に示す例では、ソフトウェアにより乱数値レジスタR2Dに対する乱数値の取込指定がないときに、乱数値取込指定データRDLT1のビット値が“0”となる一方、乱数値の取込指定があったときには、そのビット値が“1”となる。乱数値取込レジスタRDLTのビット番号[0]に格納される乱数値取込指定データRDLT0は、乱数値レジスタR1Dとなる乱数値レジスタ559Aに対する乱数値取込指定の有無を示している。図17(B)に示す例では、ソフトウェアにより乱数値レジスタR1Dに対する乱数値の取込指定がないときに、乱数値取込指定データRDLT0のビット値が“0”となる一方、乱数値の取込指定があったときには、そのビット値が“1”となる。
図18(A)は、乱数ラッチ選択レジスタRDLSの構成例を示している。図18(B)は、乱数ラッチ選択レジスタRDLSに格納される乱数ラッチ選択データの各ビットにおける設定内容の一例を示している。乱数ラッチ選択レジスタRDLSのビット番号[1]に格納される乱数ラッチ選択データRDLS1は、乱数値レジスタR2Dとなる乱数値レジスタ559Bへの取込方法を示している。図18(B)に示す例では、ソフトウェアによる乱数値取込指定データRDLT1の書き込みに応じて乱数値となる数値データを乱数値レジスタR2Dに取り込む場合に、乱数ラッチ選択データRDLS1のビット値を“0”とする。これに対して、入力ポートP1への信号入力に応じて乱数値となる数値データを乱数値レジスタR2Dに取り込む場合には、乱数ラッチ選択データRDLS1のビット値を“1”とする。乱数ラッチ選択レジスタRDLSのビット番号[0]に格納される乱数ラッチ選択データRDLS0は、乱数値レジスタR1Dとなる乱数値レジスタ559Aへの取込方法を示している。図18(B)に示す例では、ソフトウェアによる乱数値取込指定データRDLT0の書き込みに応じて乱数値となる数値データを乱数値レジスタR1Dに取り込む場合に、乱数ラッチ選択データRDLS0のビット値を“0”とする。これに対して、入力ポートP0への信号入力に応じて乱数値となる数値データを乱数値レジスタR1Dに取り込む場合には、乱数ラッチ選択データRDLS0のビット値を“1”とする。
乱数値レジスタ559A、559Bはそれぞれ、乱数列変更回路555から出力された乱数列RSNにおける数値データを乱数値として格納するレジスタである。図19(A)及び(B)は、乱数値レジスタR1Dとなる乱数値レジスタ559Aの構成例を示している。なお、図19(A)は、乱数値レジスタR1Dの下位バイトR1D(L)を示し、図19(B)は、乱数値レジスタR1Dの上位バイトR1D(H)を示している。図19(C)及び(D)は、乱数値レジスタR2Dとなる乱数値レジスタ559Bの構成例を示している。なお、図19(C)は、乱数値レジスタR2Dの下位バイトR2D(L)を示し、図19(D)は、乱数値レジスタR2Dの上位バイトR2D(H)を示している。乱数値レジスタ559A、559Bはいずれも16ビット(2バイト)のレジスタであり、16ビットの乱数値を格納することができる。
乱数値レジスタ559Aは、乱数ラッチセレクタ558Aから供給される乱数ラッチ信号LL1がオン状態となったことに応答して、乱数列変更回路555から出力された乱数列RSNにおける数値データを乱数値として取り込んで格納する。乱数値レジスタ559Aは、CPU505から供給されるレジスタリード信号RRS1がオン状態となったときに、読出可能(イネーブル)状態となり、格納されている数値データを内部バス等に出力する。これに対して、レジスタリード信号RRS1がオフ状態であるときには、常に同じ値(例えば「65535H」など)を出力して、読出不能(ディセーブル)状態となればよい。また、乱数値レジスタ559Aは、乱数ラッチ信号LL1がオン状態である場合に、レジスタリード信号RRS1を受信不可能な状態となるようにしてもよい。さらに、乱数値レジスタ559Aは、乱数ラッチ信号LL1がオン状態となるより前にレジスタリード信号RRS1がオン状態となっている場合に、乱数ラッチ信号LL1を受信不可能な状態となるようにしてもよい。
乱数値レジスタ559Bは、乱数ラッチセレクタ558Bから供給される乱数ラッチ信号LL2がオン状態となったことに応答して、乱数列変更回路555から出力された乱数列RSNにおける数値データを乱数値として取り込んで格納する。乱数値レジスタ559Bは、CPU505から供給されるレジスタリード信号RRS2がオン状態となったときに、読出可能(イネーブル)状態となり、格納されている数値データを内部バス等に出力する。これに対して、レジスタリード信号RRS2がオフ状態であるときには、常に同じ値(例えば「65535H」など)を出力して、読出不能(ディセーブル)状態となればよい。また、乱数値レジスタ559Bは、乱数ラッチ信号LL2がオン状態である場合に、レジスタリード信号RRS2を受信不可能な状態となるようにしてもよい。さらに、乱数値レジスタ559Bは、乱数ラッチ信号LL2がオン状態となるより前にレジスタリード信号RRS2がオン状態となっている場合に、乱数ラッチ信号LL2を受信不可能な状態となるようにしてもよい。
乱数値レジスタ559Aと乱数値レジスタ559Bは、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、乱数ラッチフラグレジスタRDFM(アドレス2033H)と、乱数割込み制御レジスタRDIC(アドレス2031H)とを用いて、乱数ラッチ時の動作管理や割込み制御を可能にする。乱数ラッチフラグレジスタRDFMは、乱数値レジスタ559Aと乱数値レジスタ559Bのそれぞれに対応して、乱数値となる数値データがラッチされたか否かを示す乱数ラッチフラグを格納するレジスタである。乱数割込み制御レジスタRDICは、乱数値レジスタ559Aや乱数値レジスタ559Bに乱数値となる数値データがラッチされたときに発生する割込みの許可/禁止を設定するレジスタである。
図20(A)は、乱数ラッチフラグレジスタRDFMの構成例を示している。図20(B)は、乱数ラッチフラグレジスタRDFMに格納される乱数ラッチフラグデータの各ビットにおける設定内容の一例を示している。乱数ラッチフラグレジスタRDFMのビット番号[1]に格納される乱数ラッチフラグデータRDFM1は、乱数値レジスタR2Dとなる乱数値レジスタ559Bに数値データが取り込まれたか否かを示す乱数ラッチフラグとなる。図20(B)に示す例では、乱数値レジスタR2Dに数値データが取り込まれていないときに(乱数値取込なし)、乱数ラッチフラグデータRDFM1のビット値が“0”となる一方、数値データが取り込まれたときには(乱数値取込あり)、そのビット値が“1”となる。乱数ラッチフラグレジスタRDFMのビット番号[0]に格納される乱数ラッチフラグデータRDFM0は、乱数値レジスタR1Dとなる乱数値レジスタ559Aに数値データが取り込まれたか否かを示す乱数ラッチフラグとなる。図20(B)に示す例では、乱数値レジスタR1Dに数値データが取り込まれていないときに(乱数値取込なし)、乱数ラッチフラグデータRDFM0のビット値が“0”となる一方、数値データが取り込まれたときには(乱数値取込あり)、そのビット値が“1”となる。
図21(A)は、乱数割込み制御レジスタRDICの構成例を示している。図21(B)は、乱数割込み制御レジスタRDICに格納される乱数割込み制御データの各ビットにおける設定内容の一例を示している。乱数割込み制御レジスタRDICのビット番号[1]に格納される乱数割込み制御データRDIC1は、乱数値レジスタR2Dとなる乱数値レジスタ559Bに数値データが取り込まれたときに発生する割込みを、許可するか禁止するかの割込み制御設定を示している。図21(B)に示す例では、乱数値レジスタR2Dへの取込時における割込みを禁止する場合に(割込み禁止)、乱数割込み制御データRDIC1のビット値を“0”とする一方、この割込みを許可する場合には(割込み許可)、そのビット値を“1”とする。乱数割込み制御レジスタRDICのビット番号[0]に格納される乱数割込み制御データRDIC0は、乱数値レジスタR1Dとなる乱数値レジスタ559Aに数値データが取り込まれたときに発生する割込みを、許可するか禁止するかの割込み制御設定を示している。図21(B)に示す例では、乱数値レジスタR1Dへの取込時における割込みを禁止する場合に(割込み禁止)、乱数割込み制御データRDIC0のビット値を“0”とする一方、この割込みを許可する場合には(割込み許可)、そのビット値を“1”とする。
遊技制御用マイクロコンピュータ100が備えるPIP510は、例えば6ビット幅の入力専用ポートであり、専用端子となる入力ポートP0〜入力ポートP2と、機能兼用端子となる入力ポートP3〜入力ポートP5とを含んでいる。入力ポートP3は、CPU505等に接続される外部マスカブル割込み端子XINTと兼用される。入力ポートP4は、CPU505等に接続される外部ノンマスカブル割込み端子XNMIと兼用される。入力ポートP5は、シリアル通信回路511が使用する第1チャネル受信端子RXAと兼用される。入力ポートP3〜入力ポートP5の使用設定は、プログラム管理エリアに記憶される機能設定KFCSにより指示される。
PIP510は、図7(B)に示すような遊技制御用マイクロコンピュータ100が備える内蔵レジスタのうち、入力ポートレジスタPI(アドレス2090H)などを用いて、入力ポートP0〜入力ポートP5の状態管理等を行う。入力ポートレジスタPIは、入力ポートP0〜入力ポートP5のそれぞれに対応して、外部信号の入力状態を示すビット値が格納されるレジスタである。
図22(A)は、入力ポートレジスタPIの構成例を示している。図22(B)は、入力ポートレジスタPIに格納される入力ポートデータの各ビットにおける設定内容の一例を示している。入力ポートレジスタPIのビット番号[5]に格納される入力ポートデータPI5は、第1チャネル受信端子RXAと兼用される入力ポートP5における端子状態(オン/オフ)を示している。入力ポートレジスタPIのビット番号[4]に格納される入力ポートデータPI4は、外部ノンマスカブル割込み端子XNMIと兼用される入力ポートP4における端子状態(オン/オフ)を示している。入力ポートレジスタPIのビット番号[3]に格納される入力ポートデータPI3は、外部マスカブル割込み端子XINTと兼用される入力ポートP3における端子状態(オン/オフ)を示している。入力ポートレジスタPIのビット番号[2]に格納される入力ポートデータPI2は、入力ポートP2における端子状態(オン/オフ)を示している。入力ポートレジスタPIのビット番号[1]に格納される入力ポートデータPI1は、入力ポートP1における端子状態(オン/オフ)を示している。入力ポートレジスタPIのビット番号[0]に格納される入力ポートデータPI0は、入力ポートP0における端子状態(オン/オフ)を示している。
図5に示す遊技制御用マイクロコンピュータ100が備えるアドレスデコード回路512は、遊技制御用マイクロコンピュータ100の内部における各機能ブロックのデコードや、外部装置用のデコード信号であるチップセレクト信号のデコードを行うための回路である。チップセレクト信号により、遊技制御用マイクロコンピュータ100の内部回路、あるいは、周辺デバイスとなる外部装置を、選択的に有効動作させて、CPU505からのアクセスが可能となる。
遊技制御用マイクロコンピュータ100が備えるROM506には、ゲーム制御用のユーザプログラムやセキュリティチェックプログラム506Aの他に、遊技の進行を制御するために用いられる各種の選択用データ、テーブルデータなどが格納される。例えば、ROM506には、CPU505が各種の判定や決定、設定を行うために用意された複数の判定テーブルや決定テーブル、設定テーブルなどを構成するデータが記憶されている。また、ROM506には、CPU505が主基板11から各種の制御コマンドとなる制御信号を送信するために用いられる複数のコマンドテーブルを構成するテーブルデータや、飾り図柄の変動パターンを複数種類格納する変動パターンテーブルを構成するテーブルデータなどが記憶されている。
図23は、ROM506に記憶される特図表示結果判定テーブルの構成例を示している。この実施の形態では、特図表示結果判定テーブルとして、図23(A)に示す第1特図表示結果判定テーブル130Aと、図23(B)に示す第2特図表示結果判定テーブル130Bとが、予め用意されている。第1特図表示結果判定テーブル130Aは、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームにおいて可変表示結果となる確定特別図柄が導出表示される以前に、その可変表示結果を「大当り」として大当り遊技状態に制御するか否かや、可変表示結果を「小当り」として小当り遊技状態に制御するか否かを、特図表示結果判定用の乱数値MR1に基づいて判定するために参照されるテーブルである。第2特図表示結果判定テーブル130Bは、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームにおいて可変表示結果となる確定特別図柄が導出表示される以前に、その可変表示結果を「大当り」として大当り遊技状態に制御するか否かや、可変表示結果を「小当り」として小当り遊技状態に制御するか否かを、特図表示結果判定用の乱数値MR1に基づいて判定するために参照されるテーブルである。
第1特図表示結果判定テーブル130Aでは、図25に示す遊技制御フラグ設定部592に設けられた確変フラグがオフであるかオンであるかに応じて、特図表示結果判定用の乱数値MR1が、大当り判定値データや小当り判定値データ、ハズレ判定値データと対応付けられるように、割り振られている。第2特図表示結果判定テーブル130Bでは、確変フラグがオフであるかオンであるかに応じて、特図表示結果判定用の乱数値MR1が、大当り判定値データやハズレ判定値データと対応付けられるように、割り振られている。第1特図表示結果判定テーブル130Aや第2特別図柄表示結果判定テーブル130Bにおいて特図表示結果判定用の乱数値MR1を示すテーブルデータは、大当り遊技状態に制御するか否かの判定結果に割り振られる判定用データとなっている。そして、第1特図表示結果判定テーブル130Aと第2特図表示結果判定テーブル130Bのそれぞれでは、確変フラグがオンであるときには、確変フラグがオフであるときに比べて多くの乱数値MR1が、大当り決定値データに割り振られている。ここで、パチンコ遊技機1における遊技状態が確変状態であるときには、確変フラグがオンとなる。その一方で、パチンコ遊技機1における遊技状態が通常状態や時短状態であるときには、確変フラグがオフとなる。これにより、パチンコ遊技機1における遊技状態が確変状態であるときには、通常状態や時短状態であるときに比べて、可変表示結果を「大当り」として大当り遊技状態に制御すると判定される確率が高くなる。すなわち、第1特図表示結果判定テーブル130Aと第2特図表示結果判定テーブル130Bのそれぞれでは、パチンコ遊技機1における遊技状態が確変状態であるときに、通常状態や時短状態であるときに比べて大当り遊技状態に制御すると判定される確率が高くなるように、判定用データが大当り遊技状態に制御するか否かの判定結果に割り振られている。
また、図23(A)に示す第1特図表示結果判定テーブル130Aの設定例では、特図表示結果判定用の乱数値MR1のうち、所定範囲の値(「30000」〜「30099」)が小当り判定値データと対応付けられるように割り振られている。これに対して、図23(B)に示す第2特図表示結果判定テーブル130Bの設定例では、特図表示結果判定用の乱数値MR1が小当り判定値データとは対応付けられないように割り振られている。このような設定により、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームを開始するための第1開始条件が成立したことに基づいて可変表示結果の判定を行う場合と、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームを開始するための第2開始条件が成立したことに基づいて可変表示結果の判定を行う場合とで、可変表示結果を「小当り」として小当り遊技状態に制御すると判定される割合を、異ならせることができる。
図24は、ROM506に記憶される大当り種別決定テーブル131の構成例を示している。大当り種別決定テーブル131は、可変表示結果を「大当り」として大当り遊技状態に制御すると決定されたときに、大当り種別決定用の乱数値MR2に基づき、大当り種別を複数種類のいずれかに決定するために参照されるテーブルである。大当り種別決定テーブル131では、図25に示す遊技制御バッファ設定部595に設けられた変動特図指定バッファの値(変動特図指定バッファ値)が「1」であるか「2」であるかに応じて、大当り種別決定用の乱数値MR2が、「通常」、「第1確変」〜「第3確変」、「突確」といった複数種類の大当り種別と対応付けられるように、割り振られている。ここで、変動特図指定バッファ値は、第1開始条件の成立により第1特別図柄表示装置4Aにて第1特図を用いた特図ゲームを開始するときに「1」が設定される一方で、第2開始条件の成立により第2特別図柄表示装置4Bにて第2特図を用いた特図ゲームを開始するときに「2」が設定される。また、大当り種別決定テーブル131は、遊技制御バッファ設定部595に設けられた大当り種別バッファの値(大当り種別バッファ値)を、大当り種別決定用の乱数値MR2に基づいて決定された大当り種別に対応して、「0」〜「4」のいずれかに設定するためのテーブルデータ(設定用データ)を含んでいる。
図24に示す大当り種別決定テーブル131の設定例では、変動特図指定バッファ値が「1」であるか「2」であるかに応じて、「突確」の大当り種別に対する大当り種別決定用の乱数値MR2の割り振りが異なっている。すなわち、変動特図指定バッファ値が「1」である場合には、大当り種別決定用の乱数値MR2のうち「82」〜「99」の範囲の値が「突確」の大当り種別に割り振られる一方で、変動特図指定バッファ値が「2」である場合には、「突確」の大当り種別に対して大当り種別決定用の乱数値MR2が割り振られていない。このような設定により、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームを開始するための第1開始条件が成立したことに基づいて大当り種別を複数種類のいずれかに決定する場合と、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームを開始するための第2開始条件が成立したことに基づいて大当り種別を複数種類のいずれかに決定する場合とで、大当り種別を「突確」に決定する割合を、異ならせることができる。なお、変動特図指定バッファ値が「2」である場合にも、大当り種別決定用の乱数値MR2のうち、変動特図指定バッファ値が「1」である場合とは異なる所定範囲の値が、「突確」の大当り種別に対して割り振られるようにしてもよい。一例として、変動特図指定バッファ値が「2」である場合には、大当り種別決定用の乱数値MR2のうち、変動特図指定バッファ値が「1」である場合に比べて少ない個数の値が「突確」の大当り種別に対して割り振られるように設定すれば、第2開始条件が成立したときには、第1開始条件が成立したときに比べて、「突確」の大当り種別に決定される割合を低減することができる。
上記の決定において大当たり遊技状態に制御しないことが決定された場合には、リーチ判定用の乱数値MR3に基づいてリーチの可変表示態様とするか否かを判定する。なお、大当たり遊技状態に制御する場合には大当たり種別とが決定された場合には、リーチ判定用の乱数値MR3に基づく判定を行わなくとも、必ずリーチの可変表示態様となる(大当たりの前提としてリーチが出現することになるため)。さらに、これらの決定内容毎に用意された変動パターン種別決定用テーブルと、変動パターン種別決定用の乱数値MR4とに基づいて、変動パターン種別(大当たり遊技状態に制御しない場合には、非リーチハズレ、ノーマルリーチ、スーパーリーチの3種類、大当たり遊技状態に制御する場合には、ノーマルリーチ、スーパーリーチの2種類)を決定する。さらに、これらの決定内容毎に用意された変動パターンテーブルと、変動パターン決定用の乱数値MR5とに基づいて、具体的な変動パターンを決定する。
遊技制御用マイクロコンピュータ100が備えるRAM507には、パチンコ遊技機1における遊技の進行などを制御するために用いられる各種のデータを保持する領域として、例えば図25に示すような遊技制御用データ保持エリア590が設けられている。図25に示す遊技制御用データ保持エリア590は、第1特図保留記憶部591Aと、第2特図保留記憶部591Bと、始動データ記憶部591Cと、遊技制御フラグ設定部592と、遊技制御タイマ設定部593と、遊技制御カウンタ設定部594と、遊技制御バッファ設定部595とを備えている。また、RAM507としては、例えばDRAM(Dynamic RAM)が使用されており、記憶しているデータ内容を維持するためのリフレッシュ動作が必要になる。CPU505には、このリフレッシュ動作を行うためのリフレッシュレジスタが内蔵されている。例えば、リフレッシュレジスタは8ビットからなり、そのうち下位7ビットはCPU505がROM506から命令フェッチするごとに自動的にインクリメントされる。したがって、リフレッシュレジスタにおける格納値の更新は、CPU505における1命令の実行時間ごとに行われることになる。
第1特図保留記憶部591Aは、普通入賞球装置6Aが形成する第1始動入賞口に遊技球が入賞して第1始動条件は成立したが第1開始条件は成立していない特図ゲーム(第1特別図柄表示装置4Aによる第1特図を用いた特図ゲーム)の保留データを記憶する。一例として、第1特図保留記憶部591Aは、第1始動入賞口への入賞順に保留番号と関連付けて、その入賞による第1始動条件の成立に基づいてCPU505により取得された特図表示結果判定用の乱数値MR1を示す数値データや大当り種別決定用の乱数値MR2を示す数値データを保留データとし、その数が所定の上限値(例えば「4」)に達するまで記憶する。
第2特図保留記憶部591Bは、普通可変入賞球装置6Bが形成する第2始動入賞口に遊技球が入賞して第2始動条件は成立したが第2開始条件は成立していない特図ゲーム(第2特別図柄表示装置4Bによる第2特図を用いた特図ゲーム)の保留データを記憶する。一例として、第2特図保留記憶部591Bは、第2始動入賞口への入賞順に保留番号と関連付けて、その入賞による第2始動条件の成立に基づいてCPU505により取得された特図表示結果判定用の乱数値MR1を示す数値データや大当り種別決定用の乱数値MR2を示す数値データを保留データとし、その数が所定の上限値(例えば「4」)に達するまで記憶する。
始動データ記憶部591Cは、第1始動入賞口と第2始動入賞口のいずれに遊技球が入賞したかを示す始動データを、各遊技球の入賞順を特定可能として記憶する。一例として、始動データ記憶部591Cには、合計保留記憶数の上限値(例えば「8」)に対応した領域が確保され、第1始動入賞口への入賞に対応した「第1」の始動データ、あるいは、第2始動入賞口への入賞に対応した「第2」の始動データを、各遊技球の入賞順に従った保留番号と関連付けて記憶する。
遊技制御フラグ設定部592には、パチンコ遊技機1における遊技の進行状況などに応じて状態を更新可能な複数種類のフラグが設けられている。例えば、遊技制御フラグ設定部592には、複数種類のフラグそれぞれについて、フラグの値を示すデータや、オン状態あるいはオフ状態を示すデータが記憶される。この実施の形態では、遊技制御フラグ設定部592に、特図プロセスフラグ、普図プロセスフラグ、大当りフラグ、小当りフラグ、確変フラグ、時短フラグなどが設けられている。
特図プロセスフラグは、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームの進行や、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームの進行などを制御するために実行される図30のステップS95や図32に示す特別図柄プロセス処理において、どの処理を選択・実行すべきかを指示する。普図プロセスフラグは、普通図柄表示器20による普通図柄を用いた普図ゲームの進行などを制御するために実行される図30のステップS96に示す普通図柄プロセス処理において、どの処理を選択・実行すべきかを指示する。
大当りフラグは、特図ゲームが開始されるときに可変表示結果を「大当り」とする旨の判定結果に対応して、オン状態にセットされる。その一方で、特図ゲームにおける確定特別図柄として大当り図柄が停止表示されたことなどに対応して、クリアされてオフ状態となる。小当りフラグは、特図ゲームが開始されるときに可変表示結果を「小当り」とする旨の判定結果に対応して、オン状態にセットされる。その一方で、特図ゲームにおける確定特別図柄として小当り図柄が停止表示されたことなどに対応して、クリアされてオフ状態となる。確変フラグは、パチンコ遊技機1における遊技状態が確変状態に制御されることに対応してオン状態にセットされる一方で、確変状態が終了することなどに対応してクリアされてオフ状態となる。時短フラグは、パチンコ遊技機1における遊技状態が時短状態に制御されることに対応してオン状態にセットされる一方で、時短状態が終了することなどに対応してクリアされてオフ状態となる。
遊技制御タイマ設定部593には、パチンコ遊技機1における遊技の進行を制御するために用いられる各種のタイマが設けられている。例えば、遊技制御タイマ設定部593には、複数種類のタイマそれぞれにおけるタイマ値を示すデータが記憶される。この実施の形態では、遊技制御タイマ設定部593に、遊技制御プロセスタイマ、特図変動タイマ、普図変動タイマなどが設けられている。
遊技制御プロセスタイマは、例えば大当り遊技状態あるいは小当り遊技状態の進行を制御するための時間などを、主基板11の側にて計測するためのものである。具体的な一例として、遊技制御プロセスタイマは、大当り遊技状態あるいは小当り遊技状態の進行を制御するために計測する時間に対応したタイマ値を示すデータを、遊技制御プロセスタイマ値として記憶し、定期的にカウントダウンするダウンカウンタとして用いられる。
特図変動タイマは、特図ゲームの実行時間である特図変動時間といった特図ゲームの進行を制御するための時間を、主基板11の側にて計測するためのものである。具体的な一例として、特図変動タイマは、特図ゲームの進行を制御するために計測する時間に対応したタイマ値を示すデータを、特図変動タイマ値として記憶し、定期的にカウントダウンするダウンカウンタとして用いられる。
普図変動タイマは、普図ゲームの実行時間である普図変動時間といった普図ゲームの進行を制御するための時間を、主基板11の側にて計測するためのものである。具体的な一例として、普図変動タイマは、普図ゲームの進行を制御するために計測する時間に対応したタイマ値を示すデータを、普図変動タイマ値として記憶し、定期的にカウントダウンするダウンカウンタとして用いられる。
遊技制御カウンタ設定部594には、パチンコ遊技機1における遊技の進行を制御するために用いられるカウント値を計数するためのカウンタが複数種類設けられている。例えば、遊技制御カウンタ設定部594には、複数種類のカウンタそれぞれにおけるカウント値を示すデータが記憶される。この実施の形態では、遊技制御カウンタ設定部594に、ランダムカウンタ、第1保留記憶数カウンタ、第2保留記憶数カウンタ、合計保留記憶数カウンタ、ラウンド数カウンタ、第1始動入賞判定カウンタ、第2始動入賞判定カウンタなどが設けられている。
遊技制御カウンタ設定部594のランダムカウンタは、遊技の進行を制御するために用いられる乱数値を示す数値データの一部を、乱数回路509とは別個に、CPU505がソフトウェアにより更新可能にカウントするためのものである。例えば、遊技制御カウンタ設定部594のランダムカウンタには、乱数値MR1〜MR6を示す数値データが、ランダムカウント値として記憶される。そして、乱数値MR2〜MR5については、CPU505によるソフトウェアの実行に応じて、定期的あるいは不定期に、各乱数値を示す数値データが更新される。
ラウンド数カウンタは、大当り遊技状態におけるラウンドの実行回数などをカウントするためのものである。例えば、ラウンド数カウンタには、大当り遊技状態の開始時にカウント初期値「1」を示すデータが、ラウンド数カウント値として設定される。そして、1回のラウンドが終了して次回のラウンドが開始されるときに、ラウンド数カウント値が1加算されて更新される。また、ラウンド数カウンタは、小当り遊技状態における可変入賞動作の実行回数もカウントするようにしてもよい。
第1始動入賞判定カウンタは、第1始動口スイッチ22Aから伝送される検出信号としての第1始動入賞信号SS1がオン状態(すなわち、ローレベル)となっているときに、遊技制御用のタイマ割込みが発生するごとにカウントアップされるアップカウンタとして用いられる。そして、第1始動入賞判定カウンタの値である第1始動入賞判定カウント値が所定の入賞判定値(例えば「2」)に達したときに、第1始動入賞口に進入した遊技球を有効に検出したと判定される。
第2始動入賞判定カウンタは、第2始動口スイッチ22Bから伝送される検出信号としての第2始動入賞信号SS2がオン状態(すなわち、ローレベル)となっているときに、遊技制御用のタイマ割込みが発生するごとにカウントアップされるアップカウンタとして用いられる。そして、第2始動入賞判定カウンタの値である第2始動入賞判定カウント値が所定の入賞判定値(例えば「2」)に達したときに、第2始動入賞口に進入した遊技球を有効に検出したと判定される。
遊技制御バッファ設定部595は、パチンコ遊技機1における遊技の進行を制御するために用いられるデータを一時的に記憶する各種のバッファが設けられている。例えば、遊技制御バッファ設定部595には、複数種類のバッファそれぞれにおけるバッファ値を示すデータが記憶される。この実施の形態では、遊技制御バッファ設定部595に、送信コマンドバッファ、変動特図指定バッファ、大当り種別バッファ、始動口バッファなどが設けられている。
送信コマンドバッファは、主基板11からサブ側の制御基板に対して制御コマンドを送信するための設定データを一時的に格納するために用いられる。例えば、送信コマンドバッファは、複数(例えば「12」)のバッファ領域を備えて構成され、送信する制御コマンドに対応したコマンドテーブルのROM506における記憶アドレスを示す設定データなどが、各バッファ領域に格納される。また、送信コマンドバッファにおいて設定データの書込や読出を行うバッファ領域は、送信コマンドポインタなどによって指定され、複数のバッファ領域をリングバッファとして使用することができるように構成されていればよい。
変動特図指定バッファには、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームと、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームのうち、いずれの特図ゲームが実行されるかを示すバッファ値が格納される。一例として、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームが実行されることに対応して、変動特図指定バッファの値(変動特図指定バッファ値)が“1”に設定される。また、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームが実行されることに対応して、変動特図指定バッファ値が“2”に設定される。そして、特図ゲームが終了したことなどに対応して、変動特図指定バッファ値が“0”に設定される。
大当り種別バッファには、可変表示結果が「大当り」となる場合における飾り図柄の可変表示態様を、「通常」、「第1確変」〜「第3確変」、「突確」といった複数種類の大当り種別のいずれかとする決定結果に対応したバッファ値が格納される。一例として、図24に示すような大当り種別決定テーブル131での設定に基づき、大当り種別が「通常」の場合には大当り種別バッファの値(大当り種別バッファ値)が「0」に設定され、大当り種別が「第1確変」の場合には大当り種別バッファ値が「1」に設定され、大当り種別が「第2確変」の場合には大当り種別バッファ値が「2」に設定され、大当り種別が「第3確変」の場合には大当り種別バッファ値が「3」に設定され、大当り種別が「突確」の場合には大当り種別バッファ値が「4」に設定される。
始動口バッファには、普通入賞球装置6Aが形成する第1始動入賞口と、普通可変入賞球装置6Bが形成する第2始動入賞口のうち、いずれの始動入賞口に進入した遊技球が有効に検出されたかに対応したバッファ値が、始動口バッファ値として格納される。一例として、第1始動入賞口に進入した遊技球が第1始動口スイッチ22Aにより有効に検出されたときには、始動口バッファ値が「1」に設定され、第2始動入賞口に進入した遊技球が第2始動口スイッチ22Bにより有効に検出されたときには、始動口バッファ値が「2」に設定される。
図2に示すように、演出制御基板12には、演出制御用マイクロコンピュータ120が搭載されている。また、演出制御基板12には、演出制御用マイクロコンピュータ120からの描画コマンドに応じて画像データを生成するVDP(Video Display Processor)121や、画像表示装置5、スピーカ8L、8R及び遊技効果ランプ9等の発光体といった演出装置による演出動作を制御するために用いられる各種データを記憶する演出データメモリ122なども搭載されている。演出制御用マイクロコンピュータ120は、例えば遊技制御用マイクロコンピュータ100と同様の構成を有する1チップマイクロコンピュータであり、外部バスインタフェース、クロック回路、固有情報記憶回路、リセット/割込みコントローラ、CPU、ROM、RAM、CTC、乱数回路、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に内蔵されたシリアル通信回路にて受信される。
なお、演出制御基板12と画像表示装置5の間には、画像データにおける解像度を変換するためのスケーラ回路が設けられていてもよい。この場合、演出制御基板12に搭載されたVDP121が演出制御用マイクロコンピュータ120からの描画コマンドに応じて生成した画像データは、スケーラ回路により解像度が変換された後、画像表示装置5に供給される。具体的な一例として、スケーラ回路は、VDPによって生成された第1の解像度による画像データを入力し、垂直方向及び水平方向のいずれか一方あるいは双方について、以下のような処理を施すことにより、入力された画像データを第1の解像度とは異なる第2の解像度に変換する。
例えば、垂直方向における解像度を変換する場合には、入力された画像データの垂直方向に沿って第1のサンプルレートでアップサンプリングを行った後、予め用意されたフィルタ(例えばFIRフィルタ)によるフィルタリング処理を施す。その後、垂直方向に沿って所定のスケーリング係数に対応する第2のサンプルレートでダウンサンプリングを行うようにすればよい。また、水平方向における解像度を変換する場合には、入力された画像データの水平方向に沿って、垂直方向と同じようなアップサンプリング、フィルタリング処理及びダウンサンプリングを行うようにすればよい。具体的な一例として、VDPによってVGAモード(640×480ピクセル)の画像データが生成された場合に、スケーラ回路における変換処理により、その画像データをSXGAモード(1280×1024ピクセル)、あるいは他のモードに変換することが可能になる。
音声制御基板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、CTC、乱数回路、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に基づき、図26のフローチャートに示すようなセキュリティチェック処理が実行される。このとき、遊技制御用マイクロコンピュータ100は、セキュリティモードとなり、ROM506に記憶されているゲーム制御用のユーザプログラムは未だ実行されない状態となる。
図26に示すセキュリティチェック処理を開始すると、CPU505は、まず、セキュリティチェック処理が実行されることにより遊技制御用マイクロコンピュータ100がセキュリティモードとなる時間(セキュリティ時間)を決定するための処理を実行する。このとき、CPU505は、ROM506のプログラム管理エリアに記憶されるセキュリティ時間設定KSESのビット番号[2−0]におけるビット値を読み出す(ステップS1)。そして、この読出値が“000”であるか否かを判定する(ステップS2)。
ステップS2にて読出値が“000”と判定された場合には(ステップS2;Yes)、定常設定時間を既定の固定時間に設定する(ステップS3)。ここで、定常設定時間は、セキュリティ時間のうち、パチンコ遊技機1におけるシステムリセットの発生等に基づくセキュリティチェック処理の実行回数(遊技制御用マイクロコンピュータ100がセキュリティーモードとなる回数)に関わりなく、一定となる時間成分である。また、固定時間は、セキュリティ時間のうち、遊技制御用マイクロコンピュータ100の仕様などに基づいて予め定められた不変時間成分であり、例えばセキュリティ時間として設定可能な最小値となるものであればよい。
ステップS2にて読出値が“000”以外と判定された場合には(ステップS2;No)、その読出値に対応して、固定時間に加えて図10(D)に示す設定内容により選択される延長時間を、定常設定時間に設定する(ステップS4)。こうして、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“000”以外の値である場合には、セキュリティチェック処理の実行時間であるセキュリティ時間を、固定時間に加えて予め選択可能な複数の延長時間のいずれかに設定することができる。
ステップS3、S4の処理のいずれかを実行した後には、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値を読み出す(ステップS5)。そして、この読出値が“00”であるか否かを判定する(ステップS6)。
ステップS6にて読出値が“00”と判定された場合には(ステップS6;Yes)、定常設定時間をセキュリティ時間に設定する(ステップS7)。これに対して、読出値が“00”以外と判定された場合には(ステップS6;No)、その読出値に対応して決定される可変設定時間を、定常設定時間に加算してセキュリティ時間に設定する(ステップS8)。ここで、可変設定時間は、セキュリティ時間のうち、セキュリティチェック処理が実行されるごとに変化する時間成分であり、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“01”(ショートモード)であるか“10”(ロングモード)であるかに応じて異なる所定の時間範囲で変化する。例えば、システムリセットの発生時に、所定のフリーランカウンタにおけるカウント値が遊技制御用マイクロコンピュータ100に内蔵された可変セキュリティ時間用レジスタに格納される場合には、ステップS8の処理において、可変セキュリティ時間用レジスタの格納値をそのまま用いること、あるいは、その格納値を所定の演算関数(例えばハッシュ関数)に代入して得られた値を用いることなどにより、可変設定時間がシステムリセット毎に所定の時間範囲でランダムに変化するように決定されればよい。こうして、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“00”以外の値である場合には、セキュリティチェック処理の実行時間であるセキュリティ時間を、システムリセットの発生等に基づくセキュリティチェック処理が実行されるごとに所定の時間範囲で変化させることができる。
ここで、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“000”以外の値であり、なおかつ、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“00”以外の値である場合には、ステップS4にて設定される延長時間と、ステップS8にて設定される可変設定時間との双方が、固定時間に加算されて、セキュリティ時間が決定されることになる。
ステップS7、S8の処理のいずれかを実行した後には、ROM506の所定領域に記憶されたセキュリティコードを読み出す(ステップS9)。ここで、ROM506の所定領域には、記憶内容のデータを所定の演算式によって演算した演算結果のセキュリティコードが予め記憶されている。セキュリティコードの生成方法としては、例えばハッシュ関数を用いてハッシュ値を生成するもの、エラー検出コード(CRCコード)を用いるもの、エラー訂正コード(ECCコード)を用いるもののいずれかといった、予め定められた生成方法を使用すればよい。また、ROM506のセキュリティコード記憶領域とは異なる所定領域には、セキュリティコードを演算により特定するための演算式が、暗号化して予め記憶されている。
ステップS9の処理に続いて、暗号化された演算式を復号化して元に戻す(ステップS10)。その後、ステップS10で復号化した演算式により、ROM506の所定領域における記憶データを演算してセキュリティコードを特定する(ステップS11)。このときセキュリティコードを特定するための演算に用いる記憶データは、例えばROM506の記憶データのうち、セキュリティチェックプログラム506Aとは異なるユーザプログラムの全部又は一部に相当するプログラムデータ、あるいは、所定のテーブルデータを構成する固定データの全部又は一部であればよい。そして、ステップS9にて読み出したセキュリティコードと、ステップS11にて特定されたセキュリティコードとを比較する(ステップS12)。このときには、比較結果においてセキュリティコードが一致したか否かを判定する(ステップS13)。
ステップS13にてセキュリティコードが一致しない場合には(ステップS13;No)、ROM506に不正な変更が加えられたと判断して、CPU505の動作を停止状態(HALT)へ移行させる。これに対して、ステップS13にてセキュリティコードが一致した場合には(ステップS13;Yes)、ステップS7やステップS8の処理で設定されたセキュリティ時間が経過したか否かを判定する(ステップS14)。このとき、セキュリティ時間が経過していなければ(ステップS14;No)、ステップS14の処理を繰り返し実行して、セキュリティ時間が経過するまで待機する。そして、ステップS14にてセキュリティ時間が経過したと判定された場合には(ステップS14;Yes)、例えばCPU505に内蔵されたプログラムカウンタの値をROM506におけるユーザプログラムの先頭アドレス(アドレス0000H)に設定することなどにより、遊技制御メイン処理の実行を開始する。こうして、遊技制御メイン処理の実行が開始されることにより、遊技制御用マイクロコンピュータ100の動作状態がセキュリティモードからユーザモードへと移行し、ROM506に記憶されたユーザプログラムの実行が開始されることになる。
図27は、遊技制御用マイクロコンピュータ100のCPU505により実行される遊技制御メイン処理の一例を示すフローチャートである。なお、以下に説明する各処理は、遊技制御用マイクロコンピュータ100が備えるCPU505によって実行されるものとする。また、遊技制御用マイクロコンピュータ100が備えるCTC508や乱数回路509、シリアル通信回路511などで発生した各種の割込み要因に基づく割込み要求は、CPU505に所定の割込み処理を実行させるためのものである。そして、CPU505やCPU505以外の各種回路を含んだ概念を遊技制御用マイクロコンピュータ100ということもあるものとする。図27に示す遊技制御メイン処理を開始すると、CPU505は、まず、割込禁止に設定し(ステップS21)、割込モードの設定を行う(ステップS22)。例えば、ステップS22では、遊技制御用マイクロコンピュータ100の特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビットは“0”)とを合成することにより割込アドレスが生成されるマスク可能割込の割込モード[2]が設定される。マスク可能な割込みが発生したときには、CPU505が自動的に割込禁止状態となる設定を行うとともに、プログラムカウンタの内容がスタックにセーブされればよい。
続いて、例えばスタックポインタ指定アドレスの設定など、スタックポインタに関わる設定を行う(ステップS23)。また、図7(B)に示すような内蔵レジスタの設定(初期化)を行う(ステップS24)。ステップS24の処理に続いて、CTC508やPIP510の設定が行われる(ステップS25)。ステップS25の処理を実行した後には、例えばPIP510に含まれる所定の入力ポートにおける端子状態をチェックすることなどにより、電源断信号がオフ状態となっているか否かを判定するようにしてもよい。
その後、RAM507をアクセス可能に設定する(ステップS26)。続いて、電源基板10に設置されたクリアスイッチ304から伝送されるスイッチ信号(クリア信号)の信号状態などに基づき、クリアスイッチ304がオン操作されたかを判定する(ステップS27)。なお、ステップS27の処理では、クリアスイッチ304から伝送されるクリア信号を複数回チェックし、連続してオン状態となったときに、クリアスイッチ304がオン操作されたと判定してもよい。例えば、クリア信号の状態がオフ状態であることを1回確認したら、所定時間(例えば0.1秒)が経過した後に、クリア信号の状態をもう1回確認する。このとき、クリア信号がオフ状態であれば、クリア信号がオフ状態である旨の判定を行うようにする。他方、このときにクリア信号の状態がオン状態であれば、所定時間が経過した後に、クリア信号の状態を再び確認するようにしてもよい。なお、クリア信号の状態を再確認する回数は1回であってもよいし、複数回であってもよい。また、2回チェックして、チェック結果が一致していなかったときに、もう一度確認するようにしてもよい。
ステップS27にてクリアスイッチ304がオフであるときには(ステップS27;No)、遊技制御フラグ設定部592などに設けられたバックアップフラグがオンとなっているか否かを判定する(ステップS28)。バックアップフラグの状態は、遊技制御用マイクロコンピュータ100への電力供給が停止するときに、遊技制御フラグ設定部592などに設定される。そして、このバックアップフラグの設定箇所がバックアップ電源によってバックアップされることで、電力供給が停止した場合でも、バックアップフラグの状態は保存されることになる。ステップS28では、例えばバックアップフラグの値として「55H」が遊技制御フラグ設定部592に設定されていれば、バックアップあり(オン状態)であると判断される。これに対して、「55H」以外の値が設定されていればバックアップなし(オフ状態)であると判断される。
ステップS28にてバックアップフラグがオンであるときには(ステップS28;Yes)、RAM507のデータチェックを行い、チェック結果が正常であるか否かを判定する(ステップS29)。ステップS29の処理では、例えばRAM507の特定領域における記憶データを用いてチェックサムを算出し、算出されたチェックサムとメインチェックサムバッファに記憶されているチェックサムとを比較する。ここで、メインチェックサムバッファには、前回の電力供給停止時に、同様の処理によって算出されたチェックサムが記憶されている。そして、比較結果が不一致であれば、RAM507の特定領域におけるデータが電力供給停止時のデータとは異なっていることから、チェック結果が正常でないと判断される。
ステップS29におけるチェック結果が正常であるときには(ステップS29;Yes)、例えば遊技制御用マイクロコンピュータ100の内部状態といった主基板11における制御状態や、サブ側の制御基板(例えば演出制御基板12など)の制御状態などを電力供給が停止されたときの状態に戻すための復旧時における設定を行い、電断前の遊技状態を復旧させる(ステップS30)。具体的な一例として、ステップS30の処理では、ROM506に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し、バックアップ時設定テーブルの内容を順次に、RAM507内のワークエリアに設定する。ここで、RAM507のワークエリアはバックアップ電源によってバックアップされており、バックアップ時設定テーブルには、作業領域のうちで初期化してもよい領域についての初期化データが設定されていてもよい。
ステップS27にてクリアスイッチ304がオンであるときや(ステップS27;Yes)、ステップS28にてバックアップフラグがオフであるとき(ステップS28;No)、あるいは、ステップS29にてチェック結果が正常ではないときには(ステップS29;No)、停電復旧時でない電源投入時やシステムリセット時に対応した初期化処理を実行する。この初期化処理では、RAM507のクリア(初期化)を行い(ステップS31)、作業領域となるワークエリアを設定する(ステップS32)。なお、ステップS31の処理では、所定のデータ(例えば遊技制御カウンタ設定部594に設けられたランダムカウンタにおける格納データなど)が任意の値あるいは予め定められている初期値などに設定されてもよい。また、RAM507の全領域を初期化してもよいし、一部の領域を初期化する一方で所定のデータはそのままにしてもよい。ステップS31の処理が実行されるときには、乱数回路509の動作状態も初期化してもよい。ステップS32の処理により、遊技制御フラグ設定部592、遊技制御タイマ設定部593、遊技制御カウンタ設定部594、遊技制御バッファ設定部595などに初期値が設定されればよい。このときには、演出制御基板12等といったサブ側の各制御基板を初期化するための制御コマンド(初期化指定コマンド)を送信してもよい。例えば、演出制御基板12では、初期化指定コマンドの受信に応答して、画像表示装置5の表示画面においてパチンコ遊技機1における制御が初期化されたことを報知するための画像を表示させるなどの初期化報知が実行されればよい。
ステップS30にて電断前の遊技状態を復旧した後や、ステップS32の処理を実行した後には、ROM506のプログラム管理エリアにおける記憶データに基づき、遊技制御用マイクロコンピュータ100に内蔵された各種回路の動作設定を行う(ステップS33)。一例として、ステップS33の処理内では、プログラム管理エリアに記憶されている第1乱数初期設定KRS1や第2乱数初期設定KRS2を読み出して、図28のフローチャートに示すような乱数回路設定処理が実行される。なお、ステップS33の処理は、ステップS24の処理やステップS25の処理が実行されるときに、実行されるようにしてもよい。
図28に示す乱数回路設定処理において、CPU505は、まず、第1乱数初期設定KRS1のビット番号[3]におけるビット値に基づき、乱数回路509を使用するための設定を行う(ステップS51)。この実施の形態では、第1乱数初期設定KRS1のビット番号[3]におけるビット値が予め“1”とされており、このビット値に対応して乱数回路509を使用する設定が行われる。続いて、第1乱数初期設定KRS1のビット番号[2]におけるビット値に基づき、乱数回路509における乱数更新クロックRGKの設定を行う(ステップS52)。例えば、第1乱数初期設定KRS1のビット番号[2]におけるビット値が予め“1”とされていることに対応して、乱数用クロック生成回路112で生成された乱数用クロックRCLKを2分周して乱数更新クロックRGKとする設定が行われる。
ステップS52での設定を行った後には、第1乱数初期設定KRS1のビット番号[1−0]におけるビット値に基づき、乱数回路509における乱数更新規則の設定を行う(ステップS53)。例えば、第1乱数初期設定KRS1のビット番号[1−0]におけるビット値が予め“00”とされている場合には、乱数列RSNにおける乱数値となる数値データの更新順を指定する乱数更新規則を2周目以降も変更しない設定がなされる。また、第1乱数初期設定KRS1のビット番号[1−0]におけるビット値が予め“01”とされている場合には、乱数列RSNにおける乱数更新規則を2周目以降はソフトウェアで変更する設定がなされる。さらに、第1乱数初期設定KRS1のビット番号[1−0]におけるビット値が予め“10”とされている場合には、乱数列RSNにおける乱数更新規則を2周目以降は自動で変更する設定がなされる。
続いて、第2乱数初期設定KRS2のビット番号[1]におけるビット値に基づき、乱数値となる数値データにおける起動時スタート値を決定する(ステップS54)。例えば、第2乱数初期設定KRS2のビット番号[1]におけるビット値が予め“0”とされている場合には、乱数のスタート値をデフォルト値「0001H」とする設定がなされる。また、第2乱数初期設定KRS2のビット番号[1]におけるビット値が予め“1”とされている場合には、乱数のスタート値をIDナンバーに基づく値とする設定がなされる。
さらに、第2乱数初期設定KRS2のビット番号[0]におけるビット値に基づき、乱数値となる数値データのスタート値をシステムリセット毎に変更するか否かの設定を行う(ステップS55)。例えば、第2乱数初期設定KRS2のビット番号[0]におけるビット値が予め“0”とされている場合には、パチンコ遊技機1の電源初期投入時(バックアップ無効後の起動)における起動であるか、システムリセットによる再起動であるかに関わりなく、ステップS54にて設定した起動時スタート値をそのまま用いて、乱数回路509におけるスタート値とすればよい。また、第2乱数初期設定KRS2のビット番号[0]におけるビット値が予め“1”とされている場合には、乱数のスタート値をシステムリセット毎に変更する設定がなされる。例えば、システムリセットの発生時に、所定のフリーランカウンタにおけるカウント値が遊技制御用マイクロコンピュータ100に内蔵された乱数スタート値用レジスタに格納される場合には、ステップS55の処理において、乱数スタート値用レジスタの格納値をそのまま用いること、あるいは、その格納値を所定の演算関数(例えばハッシュ関数)に代入して得られた値を用いることなどにより、乱数のスタート値がシステムリセット毎に所定の数値範囲(例えば乱数生成回路553にて生成されるカウント値順列RCNに含まれる数値データの全部又は一部を含む範囲)でランダムに変化するように決定されればよい。こうしたステップS55の処理による設定が完了すると、乱数回路509では乱数値の生成動作が開始されればよい。
なお、乱数回路設定処理による設定は、CPU505の処理が介在することなく、乱数回路509がプログラム管理エリアの記憶データに基づき自律的に行うようにしてもよい。この場合、乱数回路509は、遊技制御用マイクロコンピュータ100がセキュリティモードとなっているときには初期設定を行わず、乱数値の生成動作が行われないようにしてもよい。そして、遊技制御用マイクロコンピュータ100にてCPU505がROM506に記憶されたユーザプログラムを読み出して遊技制御メイン処理の実行が開始されたときに、例えばCPU505から乱数回路509に対して初期設定を指示する制御信号が伝送されたことなどに応答して、乱数回路509が初期設定を行ってから乱数値の生成動作を開始するようにしてもよい。あるいは、特に乱数回路509が遊技制御用マイクロコンピュータ100に外付けされる場合などには、遊技制御用マイクロコンピュータ100がセキュリティモードとなっているときでも、乱数回路509がCPU505における処理とは独立して、プログラム管理エリアの記憶データに基づく初期設定を行ってから、乱数値の生成動作を開始するようにしてもよい。また、図27に示すステップS33の処理には、プログラム管理エリアに記憶されている割込み初期設定KIISを読み出して、リセット/割込みコントローラ504におけるマスカブル割込み要因の優先制御に関する設定を行う処理などが含まれてもよい。マスカブル割込み要因の優先順位を設定する際には、割込み初期設定KIISのビット番号[3−0]におけるビット値に対応して、最優先割込みの設定が行われる。例えば、割込み初期設定KIISのビット番号[3−0]のビット値を予め「04H」及び「05H」のいずれかとしておくことにより、シリアル通信回路511で発生した割込み要因による割込み処理を最優先で実行することができる。こうして、割込み初期設定KIISのビット番号[3−0]におけるビット値に応じたマスカブル割込み要因の優先制御を行うことにより、割込み処理の優先順位を任意に設定可能とし、設計の自由度を増大させることができる。
ステップS33での設定を行った後には、乱数回路509における動作異常の有無を検査するための乱数回路異常検査処理を実行する(ステップS34)。図29は、ステップS34にて実行される乱数回路異常検査処理の一例を示すフローチャートである。
図29に示す乱数回路異常検査処理において、CPU505は、まず、例えば遊技制御カウンタ設定部594などに設けられた乱数用クロック異常判定カウンタをクリアして、そのカウント値である乱数用クロック異常判定カウント値を「0」に初期化する(ステップS61)。続いて、内部情報レジスタCIFのビット番号[4]に格納されている内部情報データCIF4を読み出す(ステップS62)。そして、ステップS62での読出値が“1”であるか否かを判定する(ステップS63)。このとき、乱数回路509が備える周波数監視回路551によって、乱数用外部クロック端子ERCからの乱数用クロックRCLKに周波数異常が検知された場合には、内部情報データCIF4としてビット値“1”が書き込まれる。
そこで、ステップS63にて読出値が“1”と判定された場合には(ステップS63;Yes)、乱数用クロック異常判定カウント値を1加算するように更新する(ステップS64)。このときには、ステップS64での更新後におけるカウント値が所定のクロック異常判定値に達したか否かを判定する(ステップS65)。ここで、クロック異常判定値は、周波数監視回路551により乱数用クロックRCLKの周波数異常が連続して検知された場合にクロック異常と判定するために予め定められた数値であればよい。ステップS65にてクロック異常判定値に達していなければ、ステップS62の処理に戻り、再び内部情報データCIF4のビット値に基づく判定を行う。
ステップS65にてクロック異常判定値に達した場合には(ステップS65;Yes)、所定の乱数用クロックエラー時処理を実行してから(ステップS66)、乱数回路異常検査処理を終了する。なお、乱数用クロックエラー時処理では、例えば演出制御基板12に対して所定の演出制御コマンドを送信するための設定を行って、演出装置により乱数用クロックRCLKの周波数異常が検知されたことを報知させるとともに、所定のエラー解除手順(例えばシステムリセットやエラー解除スイッチの操作など)がとられるまでは、以後の処理には進まないようにしてもよい。また、乱数用クロックエラー時処理を実行することなく、CPU505の動作を停止状態(HALT)へ移行させてもよい。
ステップS63にて読出値が“0”と判定された場合には(ステップS63;No)、例えば遊技制御カウンタ設定部594などに設けられた乱数値異常判定カウンタをクリアして、そのカウント値である乱数値異常判定カウント値を「0」に初期化する(ステップS67)。なお、ステップS63の処理では、ステップS62にて読み出した内部情報データCIF4のビット値が複数回(例えば2回など)連続して“0”となったときに、読出値が“0”であると判定してもよい。
ステップS67の処理に続いて、乱数値における異常の有無をチェックするために用いるチェック値を、初期値「0000H」に設定する(ステップS68)。そして、乱数回路509が備える乱数値レジスタR1Dとなる乱数値レジスタ559Aや乱数値レジスタR2Dとなる乱数値レジスタ559Bから、格納されている乱数値となる数値データを読み出す(ステップS69)。例えば、ステップS69の処理では、乱数ラッチ選択レジスタRDLSのビット番号[1]やビット番号[0]に格納される乱数ラッチ選択データRDLS1や乱数ラッチ選択データRDLS0のビット値を“0”として、ソフトウェアによる乱数値の取り込みを指定する。続いて、乱数値取込指定レジスタRDLTのビット番号[1]やビット番号[0]に格納される乱数値取込指定データRDLT1や乱数値取込指定データRDLT0のビット値を“1”として、乱数値レジスタR2Dや乱数値レジスタR1Dへの取り込みを指定する。なお、乱数値取込指定レジスタRDLTのビット番号[1]やビット番号[0]におけるビット値を“1”とすることは、CPU505から乱数回路509に対して数値データの取り込み(ラッチ)を指示するラッチ信号を出力することに相当する。その後、乱数値レジスタR2Dに供給するレジスタリード信号RRS2をオン状態とすることや、乱数値レジスタR1Dに供給するレジスタリード信号RRS1をオン状態とすることにより、格納されている乱数値となる数値データを読み出すようにすればよい。なお、乱数値レジスタR2Dと乱数値レジスタR1Dのそれぞれに格納された数値データを、同時に読み出して乱数値における異常の有無をチェックしてもよいし、一方のレジスタについて異常の有無をチェックしてから、他方のレジスタについて異常の有無をチェックするようにしてもよい。
ステップS69にて数値データを読み出した後には、その読出値を乱数検査基準値に設定する(ステップS70)。続けて、さらに乱数値レジスタ559Aや乱数値レジスタ559Bから乱数値となる数値データを読み出す(ステップS71)。なお、ステップS71での読出動作は、ステップS69での読出動作と同様の手順で行われればよい。また、ステップS69での読出動作と、ステップS71での読出動作との間には、乱数回路509で生成される乱数列RSNにおける数値データが変化するために十分な遅延時間を設けるとよい。ステップS71にて数値データを読み出した後には、乱数検査基準値と、ステップS71での読出値との排他的論理和演算を実行する(ステップS72)。また、ステップS72での演算結果と、チェック値との論理和演算を実行し、演算結果を新たなチェック値とするように更新させる(ステップS73)。例えば、チェック値はRAM507の所定領域に記憶しておき、ステップS73の処理が実行される毎に、その処理で得られた演算結果を新たなチェック値として保存すればよい。これにより、乱数値レジスタ559Aや乱数値レジスタ559Bから読み出した数値データにおける全ビットの変化が記録され、複数回の読出中に少なくとも1回は値が変化したビットであれば、チェック値において対応するビット値が“1”となる。
そこで、チェック値が「FFFFH」となったか否かを判定し(ステップS74)、なっていれば(ステップS74;Yes)、全ビットについてビット値の変化が認められることから、乱数値が正常に更新されていると判断して、乱数回路異常検査処理を終了する。なお、乱数値が正常に更新されていることを確認できた場合には、乱数ラッチ選択レジスタRDLSのビット番号[1]やビット番号[0]に格納される乱数ラッチ選択データRDLS1や乱数ラッチ選択データRDLS0のビット値を“1”として、入力ポートP1への信号入力に応じた乱数値レジスタR2Dへの乱数値取込や、入力ポートP0への信号入力に応じた乱数値レジスタR1Dへの乱数値取込を、指示するようにしてもよい。この実施の形態では、入力ポートP0に第1始動口スイッチ22Aからの第1始動入賞信号SS1を伝送する配線が接続され、入力ポートP1に第2始動口スイッチ22Bからの第2始動入賞信号SS2を伝送する配線が接続される。これにより、第1始動入賞信号SS1がオン状態となったときに乱数値レジスタR1Dへの乱数値取込を行う一方、第2始動入賞信号SS2がオン状態となったときに乱数値レジスタR2Dへの乱数値取込を行うことができる。
ステップS74にてチェック値が「FFFFH」以外と判定された場合には(ステップS74;No)、乱数値異常判定カウント値を1加算するように更新する(ステップS75)。このときには、ステップS75での更新後におけるカウント値が所定の乱数値異常判定値に達したか否かを判定する(ステップS76)。ここで、乱数値異常判定値は、乱数回路509が正常動作していれば、乱数値レジスタ559Aや乱数値レジスタ559Bから読み出される数値データの全ビットが少なくとも1回は変化するのに十分な判定回数となるように、予め定められた数値であればよい。ステップS76にて乱数値異常判定値に達していなければ、ステップS71の処理に戻り、再び乱数回路509から乱数値となる数値データを読み出して異常の有無をチェックするための判定などを行う。
ステップS76にて乱数値異常判定値に達した場合には(ステップS76;Yes)、所定の乱数値エラー時処理を実行してから(ステップS77)、乱数回路異常検査処理を終了する。なお、乱数値エラー時処理では、例えば演出制御基板12に対して所定の演出制御コマンドを送信するための設定を行って、演出装置により乱数値の異常が検知されたことを報知させるとともに、所定のエラー解除手順(例えばシステムリセットやエラー解除スイッチの操作など)がとられるまでは、以後の処理には進まないようにしてもよい。また、乱数値エラー時処理を実行することなく、CPU505の動作を停止状態(HALT)へ移行させてもよい。
なお、ステップS34の乱数回路異常検査処理は、CPU505が実行するものに限定されず、CPU505以外の遊技制御用マイクロコンピュータ100における内蔵回路により乱数回路異常検査処理が実行されてもよい。一例として、乱数回路509が乱数回路異常検査処理を実行する機能を有し、乱数用クロックRCLKの周波数異常が検知されたときや、乱数値の異常が検知されたときに、エラーの発生をCPU505に通知するようにしてもよい。また、乱数回路異常検査処理は、ステップS34のみにて実行されるものに限定されず、例えば遊技制御用マイクロコンピュータ100にてタイマ割込みが発生する毎に、後述する遊技制御用タイマ割込み処理(図30参照)にて乱数回路異常検査処理の一部又は全部が実行されるようにしてもよい。
図27に示すステップS34にて以上のような乱数回路異常検査処理を実行した後には、主基板11に設置された遊技開始スイッチ31から伝送されるスイッチ信号の信号状態などに基づき、遊技開始スイッチ31がオン操作されたか否かを判定する(ステップS35)。なお、ステップS35の処理では、遊技開始スイッチ35から伝送されるスイッチ信号を複数回チェックし、連続してオン状態となったときに、遊技開始スイッチ31がオン操作されたと判定してもよい。また、ステップS35の処理は、例えばステップS31及びステップS32の処理が実行された場合のように、復旧のない初期状態からのスタート時(コールドスタート時)に限り実行し、例えばステップS30の処理が実行された場合のように、電断前の遊技状態に復旧させるスタート時(ホットスタート時)には遊技開始スイッチ31の操作に関わりなく、例えば遊技制御用タイマ割込み処理といった、遊技の進行を制御する処理に進めるようにしてもよい。ここで、遊技制御用マイクロコンピュータ100が備えるRAM507にて遊技制御カウンタ設定部594に設けられたランダムカウンタとなる領域がバックアップ電源によりバックアップされている場合には、ホットスタート時であれば電断前のランダムカウンタにおける格納データを用いて乱数値となる数値データの更新を開始するので、パチンコ遊技機1の動作開始タイミングからランダムカウンタに格納された乱数値を特定することは困難になる。これに対して、コールドスタート時には、例えばステップS31の処理でランダムカウンタがクリア(初期化)されてしまうことなどにより、一定の初期値(例えば「0」など)から乱数値の更新が開始され、パチンコ遊技機1の動作開始タイミングからランダムカウンタに格納された乱数値が特定されてしまう可能性がある。そこで、コールドスタート時にはステップS35の処理が実行されて遊技開始スイッチ31がオン操作されるまで待機させ、パチンコ遊技機1の動作開始タイミングからランダムカウンタに格納された乱数値が特定されることを困難にする。これにより、特に大当り判定用の乱数値(例えば特図表示結果判定用の乱数値MR1)をソフトウェアのみで更新するような場合に、いわゆる「ぶら下げ基板」を接続してパチンコ遊技機1の動作開始タイミングから所定時間が経過したタイミングで不正信号が入力されても、不正な大当り遊技状態の発生を防止できる。また、ステップS35にて遊技開始スイッチ31がオン操作されていないと判定したときには、ステップS35の処理に戻る前に、乱数更新処理を実行して、ランダムカウンタに格納された乱数値をソフトウェアにより更新するようにしてもよい。これにより、遊技開始スイッチ31のオン操作がなされたタイミングからの経過時間に加えて、パチンコ遊技機1の動作開始タイミングから遊技開始スイッチ31のオン操作がなされるまでの経過時間も特定できなければ、たとえコールドスタート時でもランダムカウンタに格納された乱数値を特定することは困難になり、狙い撃ちや不正信号の入力などにより不正に大当り遊技状態を発生させるなどの行為を、確実に防止することができる。
ステップS35にて遊技開始スイッチ31がオフと判定された場合には(ステップS35;No)、ステップS35の処理を繰り返し実行して、遊技開始スイッチ31がオン操作されるまで待機する。これにより、遊技制御用マイクロコンピュータ100にて所定の初期設定処理が実行された後でも、遊技開始スイッチ31がオン操作されるまでは、例えば遊技制御用タイマ割込み処理といった、遊技の進行を制御する処理の実行が開始されない。なお、遊技制御用マイクロコンピュータ100にて実行される初期設定処理には、例えば図26に示すセキュリティチェック処理の全体や、図27に示す遊技制御メイン処理のうち、ステップS21〜S39の処理などが、含まれるものとすればよい。
ステップS35にて遊技開始スイッチ31がオンと判定された場合(ステップS35;Yes)、あるいは、ステップS35の処理を実行しない場合には、乱数ラッチフラグレジスタのビット番号[0]の値に基づいて乱数値がラッチされているか否か、すなわち乱数値レジスタ559Aに数値データが取り込まれているか否かを判定する(ステップS36)。乱数値レジスタ559Aに数値データが取り込まれていなければ(ステップS36;No)、そのままステップS38の処理に進む。乱数値レジスタ559Aに数値データが取り込まれていれば(ステップS36;Yes)、乱数値レジスタ559Aに取り込まれている数値データを読み出し、そのまま保留記憶させることなく破棄する(ステップS37)。そして、ステップS38の処理に進む。
ステップS38では、乱数ラッチフラグレジスタのビット番号[1]の値に基づいて乱数値がラッチされているか否か、すなわち乱数値レジスタ559Bに数値データが取り込まれているか否かを判定する。乱数値レジスタ559Bに数値データが取り込まれていなければ(ステップS38;No)、そのままステップS240の処理に進む。乱数値レジスタ559Bに数値データが取り込まれていれば(ステップS38;Yes)、乱数値レジスタ559Bに取り込まれている数値データを読み出し、そのまま保留記憶させることなく破棄する(ステップS39)。そして、ステップS40の処理に進む。
ステップS40では、割込み許可状態に設定して、各種割込み要求の発生を待機する。なお、ステップS40の処理も、遊技制御用マイクロコンピュータ100にて実行される初期設定処理に含まれるものとしてもよい。ステップS40の処理を実行した後には、例えばステップS25におけるCTC508の設定に基づき、2ミリ秒ごとに遊技制御用のタイマ割込みが発生するようになればよい。ステップS40の処理を実行した後には、乱数更新処理が繰り返し実行される(ステップS41)。
こうしてステップS40の処理が実行されることにより割込み許可状態となった後、例えばCTC508や乱数回路509、シリアル通信回路511の一部又は全部などにて同時に複数のマスカブル割込み要因が生じたときには、割込み初期設定KIISのビット番号[3−0]におけるビット値による指定に基づき、リセット/割込みコントローラ504によって優先順位の高い割込み要因が受け付けられる。リセット/割込みコントローラ504が割込み要因を受け付けたときには、例えばCPU505が備えるIクラス割込み(IRQ)端子などに対して、オン状態の割込み要求信号を出力する。CPU505にてIRQ端子にオン状態の割込み要求信号が入力されたときには、例えば内部レジスタの格納データを確認した結果などに基づき、発生した割込み要因を特定し、特定された割込み要因に対応するベクタアドレスを先頭アドレスとするプログラムを実行することにより、各割込み要因に基づく割込み処理を開始することができる。
遊技制御用マイクロコンピュータ100では、例えばリセット/割込みコントローラ504がCTC508からの割込み要求を受け付けたことなどに基づき、CPU505が図30のフローチャートに示す遊技制御用タイマ割込み処理を実行する。図30に示す遊技制御用タイマ割込み処理において、CPU505は、まず、割込み禁止状態としてから、所定のスイッチ処理を実行することにより、スイッチ回路114を介して遊技球検出用の各スイッチ21、22A、22B、23などから入力される検出信号(入賞検出信号)の状態を判定する(ステップS91)。続いて、所定のメイン側エラー処理を実行することにより、パチンコ遊技機1の異常診断を行い、その診断結果に応じて必要ならば警告を発生可能とする(ステップS92)。例えば、メイン側エラー処理では、賞球過多や賞球不足、その他の動作エラーが発生した場合に対応して、異常動作の発生を報知するための設定などが行われてもよい。この後、所定の情報出力処理を実行することにより、例えばパチンコ遊技機1の外部に設置されたホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する(ステップS93)。
情報出力処理に続いて、乱数更新処理を実行する(ステップS94)。この後、CPU505は、特別図柄プロセス処理を実行する(ステップS95)。特別図柄プロセス処理では、遊技制御フラグ設定部592に設けられた特図プロセスフラグの値をパチンコ遊技機1における遊技の進行状況に応じて更新し、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bにおける表示動作の制御や特別可変入賞球装置7における大入賞口の開閉動作設定などを所定の手順で行うために、各種の処理が選択されて実行される。
特別図柄プロセス処理に続いて、普通図柄プロセス処理が実行される(ステップS96)。CPU505は、普通図柄プロセス処理を実行することにより、普通図柄表示器20における表示動作(例えばセグメントLEDの点灯、消灯など)を制御して、普通図柄の可変表示や普通可変入賞球装置6Bにおける可動翼片の傾動動作設定などを可能にする。普通図柄プロセス処理を実行した後、CPU505は、例えばステップS91におけるスイッチ処理の実行結果などに基づき、入賞検出信号の入力に応じて賞球個数の設定などを行う賞球処理を実行する(ステップS97)。賞球処理に続いて、メイン側通信制御処理を実行することにより、主基板11から演出制御基板12や払出制御基板15などのサブ側の制御基板に向けて制御コマンドを送信したり、払出制御基板15から伝送された制御コマンドを受信したりするための通信制御を行う(ステップS98)。
こうしたメイン側通信制御処理が終了すると、割込み許可状態としてから、遊技制御用タイマ割込み処理を終了する。
図31は、乱数更新処理として、図27に示すステップS41や図30に示すステップS94にて実行される処理の一例を示すフローチャートである。図31に示す乱数更新処理において、CPU505は、まず、割込み禁止状態に設定する(ステップS501)。なお、遊技制御用マイクロコンピュータ100が乱数更新処理の開始に対応して自動的に割込み禁止状態となる場合には、ステップS501の処理を実行しなくてもよい。続いて、例えば遊技制御カウンタ設定部594が備えるランダムカウンタの所定領域における記憶データを更新することなどにより、大当り種別決定用の乱数値MR2を1加算する(ステップS502)。こうして、この実施の形態では、大当り種別決定用の乱数値MR2について、タイマ割込みが発生する毎に1ずつ加算するように更新する。ステップS502の処理を実行した後には、リーチ判定用の乱数値MR3を、更新対象とする乱数値として設定する(ステップS503)。
そして、CPU505は、例えば遊技制御カウンタ594に設けられたランダムカウンタなどから、加算値決定用の乱数値MR6を示す数値データを読み出す(ステップS504)。このときには、ステップS504での読出値が、更新処理の対象となる乱数値ごとに定められた加算判定値未満であるか否かを判定する(ステップS505)。ここで、図12に示すように、乱数値MR3〜MR5のそれぞれに対応して、加算判定値が予め定められている。ステップS505にて読出値が加算判定値未満であれば(ステップS505;Yes)、ステップS504にて読み出した乱数値MR6を、加算値に設定する(ステップS506)。これに対して、ステップS505にて読出値が加算判定値以上であれば(ステップS505;No)、ステップS504にて読み出した乱数値MR6から加算判定値を減算した値を、加算値に設定する(ステップS507)。
ステップS506、S507の処理のいずれかを実行した後には、更新処理の対象となる乱数値に加算値を加算して、加算後乱数値とする(ステップS508)。このときには、ステップS508にて得られた加算後乱数値が、更新処理の対象となる乱数値ごとに定められた最大判定値未満であるか否かを判定する(ステップS509)。ここで、図12に示すように、乱数値MR3〜MR5のそれぞれに対応して、最大判定値が予め定められている。ステップS509にて加算後乱数値が最大判定値未満であれば(ステップS509;Yes)、ステップS508にて得られた加算後乱数値を、更新後乱数値に設定する(ステップS510)。これに対して、ステップS509にて加算後乱数値が最大判定値以上であれば(ステップS509;No)、ステップS508にて得られた加算後乱数値から最大判定値を減算した値を、更新後乱数値に設定する(ステップS511)。
ステップS510、S511の処理のいずれかを実行した後には、ランダムカウンタにて更新処理の対象となる乱数値を格納する所定領域に、更新後乱数値をセットする(ステップS512)。こうして、更新処理の対象となる乱数値の更新が完了する。ステップS512の処理に続いて、未処理の乱数値があるか否かを判定する(ステップS513)。この実施の形態では、乱数値MR3〜MR5について、順次に更新処理の対象となる乱数値にセットすることにより、乱数更新処理が1回実行されるごとに、乱数値MR3〜MR5の全部が更新されるようにする。ステップS513にて未処理の乱数値がある場合には(ステップS513;Yes)、次の乱数値を更新処理の対象となる乱数値にセットしてから(ステップS514)、ステップS504の処理に戻る。他方、ステップS513にて未処理の乱数値がない場合には(ステップS513;No)、割込みを許可してから(ステップS515)、乱数更新処理を終了する。
図32は、特別図柄プロセス処理として、図30に示すステップS95にて実行される処理の一例を示すフローチャートである。この特別図柄プロセス処理において、CPU505は、まず、始動入賞判定処理を実行する(ステップS101)。図33及び図34は、ステップS101にて実行される始動入賞判定処理の一例を示すフローチャートである。
図33及び図34に示す始動入賞判定処理において、CPU505は、まず、入力ポートレジスタPIに格納された入力ポートデータを読み出す(ステップS201)。このとき読み出された入力ポートデータは、例えば遊技制御バッファ設定部595などに設けられた始動入賞バッファなどに格納されればよい。そして、ステップS201にて読み出した入力ポートデータのビット番号[1]におけるビット値が“1”であるか否かを判定する(ステップS202)。この実施の形態では、PIP510が備える入力ポートP1に第2始動口スイッチ22Bからの第2始動入賞信号SS2を伝送する配線が接続されており、入力ポートデータのビット番号[1]におけるビット値を確認することにより、第2始動口スイッチ22Bによる遊技球検出の有無を特定できる。そして、第2始動入賞信号SS2がオン状態である場合には、入力ポートデータのビット番号[1]におけるビット値が“1”となる。
そこで、ステップS202にて“1”であると判定された場合には(ステップS202;Yes)、遊技制御カウンタ設定部594に設けられた第2始動入賞判定カウンタの値である第2始動入賞判定カウント値を、例えば1加算するなどしてカウントアップするように、更新する(ステップS203)。これに対して、ステップS202にて“0”であると判定された場合には(ステップS202;No)、第2始動入賞判定カウンタをクリアして、そのカウント値を「0」に初期化する(ステップS204)。
ステップS203、S204の処理のいずれかを実行した後には、ステップS201にて読み出した入力ポートデータのビット番号[0]におけるビット値が“1”であるか否かを判定する(ステップS205)。この実施の形態では、PIP510が備える入力ポートP0に第1始動口スイッチ22Aからの第1始動入賞信号SS1を伝送する配線が接続されており、入力ポートデータのビット番号[0]におけるビット値を確認することにより、第1始動口スイッチ22Aによる遊技球検出の有無を特定できる。そして、第1始動入賞信号SS1がオン状態である場合には、入力ポートデータのビット番号[0]におけるビット値が“1”となる。
そこで、ステップS205にて“1”であると判定された場合には(ステップS205;Yes)、遊技制御カウンタ設定部594に設けられた第1始動入賞判定カウンタの値である第1始動入賞判定カウント値を、例えば1加算するなどしてカウントアップするように、更新する(ステップS206)。これに対して、ステップS205にて“0”であると判定された場合には(ステップS205;No)、第1始動入賞判定カウンタをクリアして、そのカウント値を「0」に初期化する(ステップS207)。
ステップS206、S207の処理のいずれかを実行した後には、第1始動入賞判定カウント値が入賞判定値として予め定められた所定の判定値(例えば「2」)に達したか否かを判定する(ステップS208)。このとき、第1始動入賞判定カウント値が入賞判定値に達していれば(ステップS208;Yes)、乱数ラッチフラグレジスタのビット番号[0]の値に基づいて乱数値がラッチされているか否か、すなわち乱数値レジスタ559Aに数値データが取り込まれているか否かを判定する(ステップS209)。乱数値レジスタ559Aに数値データが取り込まれていなければ(ステップS209;No)、第1始動入賞判定カウンタをクリアして、そのカウント値を「0」に初期化する(ステップS210)。乱数値レジスタ559Aに数値データが取り込まれていれば(ステップS209;Yes)、遊技制御バッファ設定部595に設けられた始動口バッファの値(始動口バッファ値)を、「1」に設定する(ステップS211)。また、第1始動入賞判定カウンタをクリアして、そのカウント値を「0」に初期化する(ステップS212)。
ステップS208にて第1始動入賞判定カウント値が入賞判定値に達していない場合(ステップS208;No)、或いはステップS209にて乱数値レジスタ559Aに数値データが取り込まれてなく、ステップS210で第1入賞判定カウンタをクリアした場合には、第2始動入賞判定カウント値が入賞判定値に達したか否かを判定する(ステップS213)。このとき、第2始動入賞判定カウント値が入賞判定値に達していなければ(ステップS213;No)、始動入賞判定処理を終了する。これに対して、第2始動入賞判定カウント値が入賞判定値に達していれば(ステップS213;Yes)、乱数ラッチフラグレジスタのビット番号[1]の値に基づいて乱数値がラッチされているか否か、すなわち乱数値レジスタ559Bに数値データが取り込まれているか否かを判定する(ステップS214)。乱数値レジスタ559Bに数値データが取り込まれていなければ(ステップS214;No)、第2始動入賞判定カウンタをクリアして、そのカウント値を「0」に初期化して(ステップS215)、始動入賞判定処理を終了する。乱数値レジスタ559Bに数値データが取り込まれていれば(ステップS214;Yes)、始動口バッファ値を「2」に設定する(ステップS216)。また、第2始動入賞判定カウンタをクリアして、そのカウント値を「0」に初期化する(ステップS217)。
ステップS212、S217の処理のいずれかを実行した後、CPU505は、始動口バッファ値に応じた保留記憶数カウント値を読み出す(ステップS218)。例えば、始動口バッファ値が「1」であるときには、遊技制御カウンタ設定部594に設けられた第1保留記憶数カウンタの値(第1保留記憶数カウント値)を読み出し、始動口バッファ値が「2」であるときには、遊技制御カウンタ設定部594に設けられた第2保留記憶数カウンタの値(第2保留記憶数カウント値)を読み出す。そして、ステップS218における読出値が、所定の上限値(例えば「4」)に達しているか否かを判定する(図34のステップS219)。このとき、ステップS218での読出値が上限値に達していなければ、特別図柄や飾り図柄の可変表示を開始するための始動条件が有効に成立することになる。例えば、図33に示すステップS208にて第1始動入賞判定カウント値が入賞判定値に達したと判定された後に、ステップS219にて読出値が上限値に達していないと判定されたときには、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームや、飾り図柄の可変表示を実行するための第1始動条件が成立する。また、図33に示すステップS213にて第2始動入賞判定カウント値が入賞判定値に達したと判定された後に、ステップS219にて読出値が上限値に達していないと判定されたときには、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームや、飾り図柄の可変表示を実行するための第2始動条件が成立する。
このように、ステップS219にて読出値が上限値に達していないときには(ステップS219;No)、始動口バッファ値に応じた保留記憶数カウント値を1加算する(ステップS220)。例えば、始動口バッファ値が「1」であるときには、第1保留記憶数カウント値を1加算し、始動口バッファ値が「2」であるときには、第2保留記憶数カウント値を1加算する。
ステップS220の処理に続いて、CPU505は、始動口バッファ値に応じた始動データを、始動データ記憶部591Cにおける空き領域の先頭にセットして記憶させる(ステップS221)。例えば、始動口バッファ値が「1」であるときには、「第1」を示す始動データをセットし、始動口バッファ値が「2」であるときには、「第2」を示す始動データをセットする。そして、CPU505は、特図表示結果判定用の乱数値MR1、大当り種別決定用の乱数値MR2、リーチ判定用の乱数値MR3、変動パターン種別決定用の乱数値MR4、変動パターン決定用の乱数値MR5を、保留データとして格納する乱数設定処理を実行する(ステップS222)。例えば、CPU505は、始動口バッファ値が「1」であるか「2」であるかに応じて、第1特図保留記憶部591Aと第2特図保留記憶部591Bのいずれかにおける空き領域の先頭に、乱数回路509から抽出した数値データに基づいて特図表示結果判定用の乱数値MR1を示す数値データを設定する。また、遊技制御カウンタ設定部594に設けられたランダムカウンタから、乱数値MR2〜MR5を抽出し、同様に第1特図保留記憶部591Aまたは第2特図保留記憶部591Bに格納する。
ステップS222にて乱数設定処理を実行した後には、始動口バッファ値に応じた始動口入賞指定コマンドを送信するための設定を行う(ステップS223)。例えば、始動口バッファ値が「1」であるときには、ROM506における第1始動口入賞指定コマンドテーブルの記憶アドレス(先頭アドレス)を送信コマンドバッファにおいて送信コマンドポインタによって指定されたバッファ領域に格納する。他方、始動口バッファ値が「2」であるときには、ROM506における第2始動口入賞指定コマンドテーブルの記憶アドレス(先頭アドレス)を送信コマンドバッファにおいて送信コマンドポインタによって指定されたバッファ領域に格納する。こうして設定された始動口入賞指定コマンドは、例えば特別図柄プロセス処理が終了した後に図30に示すステップS98のメイン側通信制御処理が実行されることなどにより、主基板11から演出制御基板12に対して伝送される。
また、CPU505は、例えばROM506における保留記憶数通知コマンドテーブルの記憶アドレスを送信コマンドバッファにおいて送信コマンドポインタによって指定されたバッファ領域に格納することなどにより、演出制御基板12に対して保留記憶数通知コマンドを送信するための設定を行う(ステップS224)。なお、第1始動口入賞指定コマンドテーブルが、第1始動口入賞指定コマンドを送信するための設定データと、保留記憶数通知コマンドを送信するための設定データとを含むように構成されるとともに、第2始動口入賞指定コマンドテーブルが、第2始動口入賞指定コマンドを送信するための設定データと、保留記憶数通知コマンドを送信するための設定データとを含むように構成されている場合には、ステップS223、S224の処理として第1始動口入賞指定コマンドテーブルと第2始動口入賞指定コマンドテーブルのうち、始動口バッファ値に応じたコマンドテーブルの記憶アドレスだけを送信コマンドバッファのバッファ領域に格納すればよい。こうして設定された保留記憶数通知コマンドは、例えば特別図柄プロセス処理が終了した後、図30に示すステップS98のメイン側通信制御処理が実行されることなどにより、第1始動口入賞指定コマンドや第2始動口入賞指定コマンドに続いて、主基板11から演出制御基板12に対して伝送される。
ステップS219にて読出値が上限値に達している場合や(ステップS219;Yes)、ステップS224の処理を実行した後には、始動口バッファ値が「1」であるか「2」であるかを判定する(ステップS225)。このとき、始動口バッファ値が「1」であれば(ステップS225;「1」)、始動口バッファをクリアして、そのバッファ値を「0」に初期化してから(ステップS226)、図33に示すステップS213の処理に進む。これに対して、始動口バッファ値が「2」であるときには(ステップS225;「2」)、始動口バッファをクリアして、そのバッファ値を「0」に初期化してから(ステップS227)、始動入賞判定処理を終了する。
この実施の形態では、第1始動口スイッチ22Aと第2始動口スイッチ22Bの双方が同時に有効な遊技球の始動入賞を検出した場合には、2ミリ秒内で実行される処理によって、双方のスイッチが有効な遊技球の始動入賞を検出したことに基づく処理が実行される。すなわち、図33に示すステップS208にて第1始動入賞判定カウント値が入賞判定値に達したと判定されたときには、図33に示すステップS211、S212、S218の処理を実行してから、図34に示すステップS219〜S224の処理を実行した後、ステップS225にて始動口バッファ値が「1」であることに対応して、ステップS226の処理を実行してから、図33に示すステップS213の処理に進む。そして、ステップS213にて第2始動入賞判定カウント値が入賞判定値に達したと判定されたときには、図33に示すステップS216〜S218の処理を実行してから、図34に示すステップS219〜S224の処理を実行した後、ステップS225にて始動口バッファ値が「2」であることに対応して、ステップS227の処理を実行してから、始動入賞判定処理を終了する。これにより、第1始動口スイッチ22Aと第2始動口スイッチ22Bの双方が同時に有効な遊技球の始動入賞を検出した場合でも、確実に双方の有効な始動入賞の検出に基づく処理を完了できる。
図32に示すステップS101にて始動入賞判定処理を実行した後には、特図プロセスフラグの値に応じて、ステップS110〜S120の処理のいずれかを選択して実行する。
ステップS110の特別図柄通常処理は、特図プロセスフラグの値が“0”のときに実行される。この特別図柄通常処理では、第1特図保留記憶部591Aや第2特図保留記憶部591Bに記憶されている保留データの有無などに基づいて、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bによる特図ゲームを開始するか否かの判定が行われる。また、特別図柄通常処理では、特図表示結果判定用の乱数値MR1を示す数値データに基づき、特別図柄や飾り図柄、色図柄などの可変表示結果を「大当り」や「小当り」とするか否かの判定が行われる。さらに、特別図柄通常処理では、特図ゲームにおける特別図柄の可変表示結果に対応して、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bによる特図ゲームにおける確定特別図柄(大当り図柄、小当り図柄及びハズレ図柄のいずれか)が設定される。
ステップS111の変動パターン設定処理は、特図プロセスフラグの値が“1”のときに実行される。この変動パターン設定処理には、可変表示結果を「大当り」や「小当り」とするか否かの事前決定結果や、飾り図柄の可変表示状態をリーチ状態とするか否かのリーチ判定結果などに基づいて、変動パターン種別を複数種類のいずれかに決定する処理や、変動パターン種別の決定結果に対応して、変動パターンを複数種類のいずれかに決定する処理などが含まれている。
ステップS112の特別図柄変動処理は、特図プロセスフラグの値が“2”のときに実行される。この特別図柄変動処理には、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bにおいて特別図柄を変動させるための設定を行う処理や、その特別図柄が変動を開始してからの経過時間を計測する処理などが含まれている。例えば、ステップS112の特別図柄変動処理が実行されるごとに、遊技制御タイマ設定部593に設けられた特図変動タイマにおける値(特図変動タイマ値)を1減算あるいは1加算することにより、第1特別図柄表示装置4Aにおける第1特図を用いた特図ゲームであるか、第2特別図柄表示装置4Bにおける第2特図を用いた特図ゲームであるかに関わりなく、共通のタイマによって経過時間の測定が行われる。また、計測された経過時間が変動パターンに対応する特図変動時間に達したか否かの判定も行われる。このように、ステップS112の特別図柄変動処理は、第1特別図柄表示装置4Aにおける第1特図を用いた特図ゲームにおける特別図柄の変動や、第2特別図柄表示装置4Bにおける第2特図を用いた特図ゲームにおける特別図柄の変動を、共通の処理ルーチンによって制御する処理となっている。そして、特別図柄の変動を開始してからの経過時間が特図変動時間に達したときには、特図プロセスフラグの値を“3”に更新する。
ステップS113の特別図柄停止処理は、特図プロセスフラグの値が“3”のときに実行される。この特別図柄停止処理には、第1特別図柄表示装置4Aや第2特別図柄表示装置4Bにて特別図柄の変動を停止させ、特別図柄の可変表示結果となる確定特別図柄を停止表示させるための設定を行う処理が含まれている。そして、遊技制御フラグ設定部592に設けられた大当りフラグと小当りフラグのいずれかがオンとなっているか否かの判定などが行われ、大当りフラグがオンである場合には特図プロセスフラグの値を“4”に更新し、小当りフラグがオンである場合には特図プロセスフラグの値を“8”に更新する。また、大当りフラグと小当りフラグがいずれもオフである場合には、特図プロセスフラグの値を“0”に更新する。
ステップS114の大入賞口開放前処理は、特図プロセスフラグの値が“4”のときに実行される。この大入賞口開放前処理には、可変表示結果が「大当り」となったことなどに基づき、大当り遊技状態においてラウンドの実行を開始して大入賞口を開放状態とするための設定を行う処理などが含まれている。このときには、例えば大入賞口開放回数最大値の設定に対応して、大入賞口を開放状態とする期間の上限を設定するようにしてもよい。一例として、大入賞口開放回数最大値が15ラウンド大当り状態に対応した「15」に設定されている場合には、大入賞口を開放状態とする期間の上限を「29秒」に設定する。これに対して、大入賞口開放回数最大値が2ラウンド大当り状態に対応した「2」に設定されている場合には、大入賞口を開放状態とする期間の上限を「0.5秒」に設定する。
ステップS115の大入賞口開放中処理は、特図プロセスフラグの値が“5”のときに実行される。この大入賞口開放中処理には、大入賞口を開放状態としてからの経過時間を計測する処理や、その計測した経過時間やカウントスイッチ23によって検出された遊技球の個数などに基づいて、大入賞口を開放状態から閉鎖状態に戻すタイミングとなったか否かを判定する処理などが含まれている。そして、大入賞口を閉鎖状態に戻すときには、大入賞口扉用のソレノイドに対するソレノイド駆動信号の供給を停止させる処理などが実行されればよい。
ステップS116の大入賞口開放後処理は、特図プロセスフラグの値が“6”のときに実行される。この大入賞口開放後処理には、大入賞口を開放状態とするラウンドの実行回数が大入賞口開放回数最大値に達したか否かを判定する処理や、大入賞口開放回数最大値に達した場合に当り終了指定コマンドを送信するための設定を行う処理などが含まれている。
ステップS117の大当り終了処理は、特図プロセスフラグの値が“7”のときに実行される。この大当り終了処理には、画像表示装置5やスピーカ8L、8R、遊技効果ランプ9といった演出用の電気部品(演出装置)により、大当り遊技状態の終了を報知する演出動作としてのエンディング演出が実行される期間に対応した待ち時間が経過するまで待機する処理や、その大当り遊技状態の終了に対応した各種の設定を行う処理などが含まれている。
ステップS118の小当り開放前処理は、特図プロセスフラグの値が“8”のときに実行される。この小当り開放前処理には、可変表示結果が「小当り」となったことなどに基づき、小当り遊技状態において可変入賞動作の実行を開始して大入賞口を開放状態とするための設定を行う処理などが含まれている。このときには、例えば可変表示結果が「小当り」であることにより大入賞口開放回数最大値が「2」であることに対応して、大入賞口を開放状態とする期間の上限を「0.5秒」に設定すればよい。
ステップS119の小当り開放中処理は、特図プロセスフラグの値が“9”のときに実行される。この小当り開放中処理には、大入賞口を開放状態としてからの経過時間を計測する処理や、その計測した経過時間などに基づいて、大入賞口を開放状態から閉鎖状態に戻すタイミングとなったか否かを判定する処理などが含まれている。大入賞口を閉鎖状態に戻すときには、大入賞口扉用のソレノイドに対するソレノイド駆動信号の供給を停止させる処理などが実行されればよい。
ステップS120の小当り終了処理は、特図プロセスフラグの値が“10”のときに実行される。この小当り終了処理には、画像表示装置5やスピーカ8L、8R、遊技効果ランプ9といった演出用の電気部品(演出装置)により、小当り遊技状態の終了を報知する演出動作が実行される期間に対応した待ち時間が経過するまで待機する処理などが含まれている。ここで、小当り遊技状態が終了するときには、確変フラグや時短フラグの状態を変更しないようにして、小当り遊技状態となる以前のパチンコ遊技機1における遊技状態を継続させる。
図35は、図32のステップS110にて実行される特別図柄通常処理の一例を示すフローチャートである。図35に示す特別図柄通常処理において、CPU505は、まず、例えば遊技制御カウンタ設定部594に記憶されている合計保留記憶数カウント値が「0」であるか否か、すなわち、第1保留記憶数と第2保留記憶数の合計値である合計保留記憶数が「0」であるか否かを判定する(ステップS231)。このとき、合計保留記憶数カウント値が「0」以外であれば(ステップS231;No)、始動データ記憶部591Cから始動データを読み出す(ステップS232)。ここでは、始動データ記憶部591Cにて保留番号「1」と関連付けて記憶されている始動データを読み出せばよい。
この実施の形態では、第1始動条件と第2始動条件とを区別することなく、先に成立した始動条件に対応する特図ゲームから順次に実行するものとして説明する。これに対して、例えば第2保留記憶数が「0」でないことを条件として、第1特図を用いた特図ゲームよりも、第2特図を用いた特図ゲームを優先して実行するようにしてもよい。この場合には、例えばステップS231にて合計保留記憶数カウント値が「0」以外であれば、第2保留記憶数カウント値が「0」であるか否かを判定する。そして、第2保留記憶数カウント値が「0」であれば、始動データ記憶部591Cから「第1」を示す始動データが読み出された場合と同様の処理を実行する一方で、第2保留記憶数カウント値が「0」以外であれば、始動データ記憶部591Cから「第2」を示す始動データが読み出された場合と同様の処理を実行すればよい。あるいは、第1保留記憶数と第2保留記憶数とのうち、いずれの保留記憶数が多いかを判定し、保留記憶数が多い方に対応する特別図柄を用いた特図ゲームを優先して実行するようにしてもよい。この場合には、例えばステップS231にて合計保留記憶数カウント値が「0」以外であれば、第1保留記憶数カウント値と第2保留記憶数カウント値とを比較する。そして、第1保留記憶数カウント値の方が大きい場合には、始動データ記憶部591Cから「第1」を示す始動データが読み出された場合と同様の処理を実行する一方で、第2保留記憶数カウント値の方が大きい場合には、始動データ記憶部591Cから「第2」を示す始動データが読み出された場合と同様の処理を実行すればよい。このとき、第1保留記憶数カウント値と第2保留記憶数カウント値が一致した場合には、第1特図を用いた特図ゲームを優先して実行してもよいし、第2特図を用いた特図ゲームを優先して実行してもよい。このように、保留記憶数が多い方に対応する特別図柄を用いた特図ゲームを優先して実行することで、無効な始動入賞の発生を低減することができる。
ステップS232の処理に続いて、例えば合計保留記憶数カウント値を1減算することなどにより、合計保留記憶数を1減算するように更新するとともに、始動データ記憶部591Cにて保留番号「1」より下位のエントリ(例えば保留番号「2」〜「8」に対応するエントリ)に記憶された始動データの記憶内容を、1エントリずつ上位にシフトさせる(ステップS233)。そして、ステップS232にて読み出した始動データが「第1」と「第2」のいずれであるかを判定する(ステップS234)。
ステップS234にて始動データが「第1」であると判定された場合には(ステップS234;第1)、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームを開始する第1開始条件が成立したことに対応して、遊技制御バッファ設定部595に記憶される変動特図指定バッファ値を「1」に設定する(ステップS235)。さらに、乱数ラッチフラグレジスタのビット番号[0]の値に基づいて乱数値がラッチされているか否か、すなわち乱数値レジスタ559Aに数値データが取り込まれているか否かを判定する(ステップS236)。乱数値レジスタ559Aに数値データが取り込まれていなければ(ステップS236;No)、そのままステップS241の処理に進む。乱数値レジスタ559Aに数値データが取り込まれていれば(ステップS236;Yes)、乱数値レジスタ559Aに取り込まれている数値データを読み出し、そのまま保留記憶させることなく破棄する(ステップS237)。そして、ステップS241の処理に進む。
他方、ステップS234にて始動データが「第2」であると判定された場合には(ステップS234;第2)、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームを開始する第2開始条件が成立したことに対応して、変動特図指定バッファ値を「2」に設定する(ステップS238)。さらに、乱数ラッチフラグレジスタのビット番号[1]の値に基づいて乱数値がラッチされているか否か、すなわち乱数値レジスタ559Bに数値データが取り込まれているか否かを判定する(ステップS239)。乱数値レジスタ559Bに数値データが取り込まれていなければ(ステップS239;No)、そのままステップS241の処理に進む。乱数値レジスタ559Bに数値データが取り込まれていれば(ステップS239;Yes)、乱数値レジスタ559Bに取り込まれている数値データを読み出し、そのまま保留記憶させることなく破棄する(ステップS240)。そして、ステップS241の処理に進む。
ステップS241では、ステップS232にて読み出した始動データに応じた特図保留記憶部から、保留データを読み出す。例えば、始動データが「第1」である場合には、第1特図保留記憶部591Aにて保留番号「1」と関連付けて記憶されている保留データとして、特図表示結果判定用の乱数値MR1を示す数値データと、大当り種別決定用の乱数値MR2を示す数値データとを、それぞれ読み出す。これに対して、始動データが「第2」である場合には、第2特図保留記憶部151Bにて保留番号「1」と関連付けて記憶されている保留データとして、特図表示結果判定用の乱数値MR1を示す数値データと、大当り種別決定用の乱数値MR2を示す数値データとを、それぞれ読み出す。
ステップS241の処理に続いて、始動データに応じた保留記憶数カウント値を1減算するとともに、始動データに応じた特図保留記憶部にて保留番号「1」より下位のエントリ(例えば保留番号「2」〜「4」に対応するエントリ)に記憶された保留データの記憶内容を、1エントリずつ上位にシフトさせる(ステップS242)。例えば、始動データが「第1」である場合には、第1保留記憶数カウント値を1減算するとともに、第1特図保留記憶部591Aにおける保留データの記憶内容を、1エントリずつ上位にシフトさせる。これに対して、始動データが「第2」である場合には、第2保留記憶数カウント値を1減算するとともに、第2特図保留記憶部591Bにおける保留データの記憶内容を、1エントリずつ上位にシフトさせる。
この後、可変表示結果を「大当り」とするか否かや「小当り」とするか否かを判定するための使用テーブルとして、始動データに応じた特図表示結果判定テーブルを選択してセットする(ステップS243)。CPU505は、こうしてセットされた特図表示結果判定テーブルを参照することにより、ステップS241にて読み出された特図表示結果判定用の乱数値MR1を示す数値データが、大当り判定値データと合致するか否かを判定する(ステップS244)。
ステップS244にて乱数値MR1を示す数値データが大当り判定値データと合致した場合には(ステップS244;Yes)、遊技制御フラグ設定部592に設けられた大当りフラグをオン状態にセットする(ステップS245)。このときには、大当り種別を複数種類のいずれかに決定するための使用テーブルとして、図24に示す大当り種別決定テーブル131を選択してセットする(ステップS246)。そして、ステップS241にて読み出した大当り種別決定用の乱数値MR2を示す数値データに基づき、ステップS246にてセットした大当り種別決定テーブル131を参照することにより、大当り種別を、「通常」、「第1確変」〜「第3確変」、「突確」という複数種類のうち、いずれかに決定する(ステップS247)。なお、ステップS238の処理で変動特図指定バッファ値を「2」に設定した場合には、大当り種別決定テーブル131にて「突確」の大当り種別に対して大当り種別決定用の乱数値MR2が割り当てられていないことから、大当り種別が「突確」に決定されることはない。こうしてステップS247にて決定された大当り種別に対応して、大当り種別バッファ値を、「00」〜「04」のいずれかに設定する(ステップS248)。
ステップS244にて乱数値MR1を示す数値データが大当り判定値データと合致しない場合には(ステップS244;No)、ステップS241にて読み出された特図表示結果判定用の乱数値MR1を示す数値データが、ハズレ判定値データと合致するか否かを判定する(ステップS249)。このとき、ハズレ判定値データと合致しなければ(ステップS249;No)、小当り判定値データに合致するものとして、小当りフラグをオン状態にセットする(ステップS250)。
ステップS248とステップS250の処理のいずれかを実行した後、或いはステップS249の処理でハズレ判定値データと合致していた場合には、可変表示結果の判定結果や大当り種別の決定結果に対応して、確定特別図柄を設定する(ステップS251)。一例として、ステップS249にて乱数値MR1を示す数値データがハズレ判定値データと合致する場合には、可変表示結果を「ハズレ」とする旨の事前判定結果に対応して、ハズレ図柄となる「−」の記号を示す特別図柄を、確定特別図柄に設定する。その一方で、ステップS244にて乱数値MR1を示す数値データが大当り判定値データと合致した場合には、ステップS247における大当り種別の決定結果に応じて、大当り図柄となる「1」、「3」、「7」の数字を示す特別図柄のいずれかを、確定特別図柄に設定する。すなわち、大当り種別を「通常」とする決定結果に応じて、通常大当り図柄となる「3」の数字を示す特別図柄を、確定特別図柄に設定する。また、大当り種別を「第1確変」〜「第3確変」のいずれかとする決定結果に応じて、確変大当り図柄となる「7」の数字を示す特別図柄を、確定特別図柄に設定する。さらに、大当り種別を「突確」とする決定結果に応じて、2ラウンド大当り図柄となる「1」の数字を示す特別図柄を、確定特別図柄に設定する。さらに、ステップS249にて乱数値MR1を示す数値データがハズレ判定値データと合致しない場合には、可変表示結果を「小当り」とする旨の事前判定結果に対応して、小当り図柄となる「5」の数字を示す特別図柄を、確定特別図柄に設定する。
ステップS251にて確定特別図柄を設定した後には、特図プロセスフラグの値を変動パターン設定処理に対応した値である“1”に更新してから(ステップS252)、特別図柄通常処理を終了する。また、ステップS231にて合計保留記憶数が「0」である場合には(ステップS231;Yes)、所定のデモ表示設定を行ってから(ステップS253)、特別図柄通常処理を終了する。
以下、パチンコ遊技機1における具体的な動作例について説明する。主基板11では、電源基板10からの初期電力供給時(バックアップ電源のない電源投入時)や、システムリセットの発生後における再起動時などに、CPU505がROM506などに記憶されているセキュリティチェックプログラム506Aを読み出して実行することにより、遊技制御用マイクロコンピュータ100がセキュリティモードとなる。
このときには、セキュリティチェックプログラム506Aに対応した処理として、例えば図26に示すようなセキュリティチェック処理が実行される。ここで、遊技制御用マイクロコンピュータ100がセキュリティモードとなるセキュリティ時間は、ROM506のプログラム管理エリアに記憶されているセキュリティ時間設定KSESのビット番号[2−0]やビット番号[4−3]に予め格納されたビット値に応じて、一定の固定時間とは異なる時間成分を含むことができる。
例えば、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“000”以外の値であれば(図26に示すステップS2;No)、図10(D)に示すような設定内容に対応して、固定時間に加えて予め選択可能な複数の延長時間のいずれかを、セキュリティ時間に含まれる時間成分として設定することができる(ステップS4)。また、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“00”以外の値であれば(ステップS6;No)、図10(C)に示すようなショートモード又はロングモードに対応して、システムリセットや電源投入に基づき初期設定処理が実行されるごとに所定の時間範囲で変化する可変設定時間を、セキュリティ時間に含まれる時間成分として設定することができる(ステップS8)。
こうして設定されたセキュリティ時間が経過するまでは(ステップS14;No)、ROM506に記憶されているユーザプログラムによる遊技制御メイン処理の実行が開始されない。そして、乱数回路509による乱数値となる数値データの生成動作も、遊技制御用マイクロコンピュータ100がセキュリティモード中である期間では、開始されないようにすればよい。これにより、パチンコ遊技機1の電源投入やシステムリセット等による動作開始タイミングから、乱数回路509の動作開始タイミングや更新される数値データなどを特定することが困難になり、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に大当り遊技状態を発生させるなどの行為を、確実に防止することができる。
一例として、パチンコ遊技機1の機種毎に、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値を異なる値に設定する。この場合には、図26に示すステップS4にて設定される延長時間を、パチンコ遊技機1の機種毎に異ならせることができ、パチンコ遊技機1の動作開始タイミングから乱数回路509の動作開始タイミングを特定することが困難になる。また、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値を“01”又は“10”に設定することにより、ステップS8にて設定される可変設定時間を、システムリセット毎に異ならせる。これにより、パチンコ遊技機1の動作開始タイミングから乱数回路509の動作開始タイミングを特定することは著しく困難になる。
図36は、主基板11に搭載された遊技制御用マイクロコンピュータ100に内蔵された乱数回路509の動作を説明するためのタイミングチャートである。また、図36(A)では、主基板11に搭載された制御用クロック生成回路111により生成される制御用クロックCCLKを示している。図36(B)では、乱数用クロック生成回路112により生成される乱数用クロックRCLKを示している。図36(A)及び(B)に示すように、制御用クロックCCLKの発振周波数と、乱数用クロックRCLKの発振周波数とは、互いに異なる周波数となっており、また、いずれか一方の発振周波数が他方の発振周波数の整数倍になることがない。
図36(B)に示すように、乱数用クロックRCLKは、タイミングT10,T11,T12,…においてローレベルからハイレベルに立ち上がる。そして、乱数用クロックRCLKは、遊技制御用マイクロコンピュータ100の乱数用外部クロック端子ERCに供給され、図13に示す乱数回路509が備えるクロック用フリップフロップ552におけるクロック端子CKに入力される。クロック用フリップフロップ552は、逆相出力端子(反転出力端子)QバーからD入力端子へとフィードバックされるラッチ用クロックRC0を、クロック端子CKに入力される乱数用クロックRCLKの立ち上がりエッジに応答して取り込み(ラッチして)、正相出力端子(非反転出力端子)Qから乱数更新クロックRGKとして出力する。これにより、乱数更新クロックRGKは、図36(C)に示すように、タイミングT10,T12,T14,…において、ローレベルからハイレベルへと立ち上がり、乱数用クロックRCLKの発振周波数の1/2の発振周波数を有する信号となる。例えば、乱数用クロックRCLKの発振周波数が20MHzであれば、乱数更新クロックRGKの発振周波数は10MHzとなる。そして、乱数用クロックRCLKの発信周波数は制御用クロックCCLKの発振周波数の整数倍にも整数分の1にもならないことから、乱数更新クロックRGKの発振周波数は、制御用クロックCCLKの発振周波数とは異なる周波数となる。乱数生成回路553は、例えば乱数更新クロックRGKの立ち上がりエッジに応答して、カウント値順列RCNにおける数値データを更新する。乱数列変更回路555は、乱数列変更設定回路556による乱数更新規則の設定に基づき、乱数生成回路553から出力されたカウント値順列RCNにおける数値データの更新順を変更したものを、乱数列RSNとして出力する。こうして、乱数列RSNにおける数値データは、例えば図36(D)に示すように、乱数更新クロックRGKの立ち上がりエッジなどに応答して更新される。
クロック用フリップフロップ552から出力されるラッチ用クロックRC0は、乱数更新クロックRGKの反転信号となり、その発振周波数は乱数更新クロックRGKの発振周波数と同一で、その位相は乱数更新クロックRGKの位相とπ(=180°)だけ異なる。ラッチ用クロックRC0は、分岐点BR1にてラッチ用クロックRC1とラッチ用クロックRC2とに分岐される。したがって、例えば図36(E)に示すように、各ラッチ用クロックRC0、RC1、RC2はいずれも、共通の周期で信号状態が変化する発振信号となる。ラッチ用クロックRC1は、ラッチ用フリップフロップ557Aのクロック端子CKに入力される。ラッチ用クロックRC2は、ラッチ用フリップフロップ557Bのクロック端子CKに入力される。
ラッチ用フリップフロップ557Aは、ラッチ用クロックRC1の立ち上がりエッジに応答して、第1始動口スイッチ22Aから伝送されて入力ポートP0に供給された第1始動入賞信号SS1(実際には、SS1の反転信号)を取り込み(ラッチして)、始動入賞時ラッチ信号SL1として出力端子Qから出力する。そして、乱数ラッチセレクタ558Aにおける取込方法が入力ポートP0への信号入力に指定されていれば、始動入賞時ラッチ信号SL1が乱数ラッチ信号LL1として出力される。これにより、例えば図36(F)に示すようなタイミングでオフ状態(ローレベル)とオン状態(ハイレベル)とで信号状態が変化する第1始動入賞信号SS1は、ラッチ用クロックRC1が立ち上がるタイミングT11、T13、T15、…にてラッチ用フリップフロップ557Aに取り込まれた後、図36(G)に示すようなタイミングT11、T13で信号状態がオフ状態とオン状態とで変化する乱数ラッチ信号LL1となって、乱数ラッチセレクタ558Aから出力される。ここで、第1始動口スイッチ22Aから伝送される第1始動入賞信号SS1は、普通入賞球装置6Aが形成する第1始動入賞口における遊技球の始動入賞が検出されたときに、オフ状態からオン状態へと変化する。ラッチ用フリップフロップ557Aから乱数ラッチセレクタ558Aを介して出力された乱数ラッチ信号LL1は、乱数値レジスタR1Dとなる乱数値レジスタ559Aに供給されて、乱数列変更回路555から出力された乱数列RSNにおける数値データを取得するために用いられる。こうして、ラッチ用フリップフロップ557A及び乱数ラッチセレクタ558Aでは、第1始動入賞口における遊技球の始動入賞が検出されたことに基づき、ラッチ用クロックRC1を用いて、乱数値となる数値データを取得するための乱数ラッチ信号LL1が、第2始動入賞口における遊技球の始動入賞が検出された場合とは別個に生成される。
ラッチ用フリップフロップ557Bは、ラッチ用クロックRC2の立ち上がりエッジに応答して、第2始動口スイッチ22Bから伝送されて入力ポートP1に供給された第2始動入賞信号SS2(実際には、SS2の反転信号)を取り込み(ラッチして)、始動入賞時ラッチ信号SL2として出力端子Qから出力する。そして、乱数ラッチセレクタ558Bにおける取込方法が入力ポートP1への信号入力に指定されていれば、始動入賞時ラッチ信号SL2が乱数ラッチ信号LL2として出力される。これにより、例えば図36(I)に示すようなタイミングでオフ状態(ローレベル)とオン状態(ハイレベル)とで信号状態が変化する第2始動入賞信号SS2は、ラッチ用クロックRC2が立ち上がるタイミングT11、T13、T15、…にてラッチ用フリップフロップ557Bに取り込まれた後、図36(J)に示すようなタイミングT14、T15で信号状態がオフ状態とオン状態とで変化する乱数ラッチ信号LL2となって、乱数ラッチセレクタ558Bから出力される。ここで、第2始動口スイッチ22Bから伝送される第2始動入賞信号SS2は、普通可変入賞球装置6Bが形成する第2始動入賞口における遊技球の始動入賞が検出されたときに、オフ状態からオン状態へと変化する。ラッチ用フリップフロップ557Bから乱数ラッチセレクタ558Bを介して出力された乱数ラッチ信号LL2は、乱数値レジスタR2Dとなる乱数値レジスタ559Bに供給されて、乱数列変更回路555から出力された乱数列RSNにおける数値データを取得するために用いられる。こうして、ラッチ用フリップフロップ557B及び乱数ラッチセレクタ558Bでは、第2始動入賞口における遊技球の始動入賞が検出されたことに基づき、ラッチ用クロックRC2を用いて、乱数値となる数値データを取得するための乱数ラッチ信号LL2が、第1始動入賞口における遊技球の始動入賞が検出された場合とは別個に生成される。
乱数値レジスタR1Dとなる乱数値レジスタ559Aは、乱数列変更回路555から出力される乱数列RSNにおける数値データを、乱数ラッチセレクタ558Aからクロック端子へと入力される乱数ラッチ信号LL1の立ち上がりエッジに応答して取り込み(ラッチして)、記憶データとなる数値データを更新する。乱数値レジスタR2Dとなる乱数値レジスタ559Bは、乱数列変更回路555から出力される乱数列RSNにおける数値データを、乱数ラッチセレクタ558Bからクロック端子へと入力される乱数ラッチ信号LL2の立ち上がりエッジに応答して取り込み(ラッチして)、記憶データとなる数値データを更新する。
例えば図36(G)に示すように、タイミングT11にて乱数ラッチ信号LL1がオフ状態からオン状態に変化する立ち上がりエッジが生じた場合には、このタイミングT11にて乱数列変更回路555から出力されている乱数列RSNにおける数値データが、図36(H)に示すように、乱数値レジスタR1Dに取り込まれ、乱数値となる数値データとして取得される。これにより、乱数値レジスタR1Dとなる乱数値レジスタ559Aでは、第1始動入賞口における遊技球の始動入賞が検出されたことに基づき、乱数値として用いられる数値データを、第2始動入賞口における遊技球の始動入賞が検出された場合とは別個に、取得して記憶することができる。
また、例えば図36(J)に示すように、タイミングT13にて乱数ラッチ信号LL2がオフ状態からオン状態に変化する立ち上がりエッジが生じた場合には、このタイミングT13にて乱数列変更回路555から出力されている乱数列RSNにおける数値データが、図36(K)に示すように、乱数値レジスタR2Dに取り込まれ、乱数値となる数値データとして取得される。これにより、乱数値レジスタR2Dとなる乱数値レジスタ559Bは、第2始動入賞口における遊技球の始動入賞が検出されたことに基づき、乱数値として用いられる数値データを、第1始動入賞口における遊技球の始動入賞が検出された場合とは別個に、取得して記憶することができる。
こうして、乱数値レジスタ559Aは、ラッチ用フリップフロップ557Aがラッチ用クロックRC1を用いて生成した始動入賞時ラッチ信号SL1や乱数ラッチセレクタ558Aから出力された乱数ラッチ信号LL1の立ち上がりエッジに応答して、乱数値RSNにおける数値データを取得する。乱数値レジスタ559Aに記憶された数値データは、図33に示すステップS208にて第1始動入賞判定カウント値が入賞判定値に達したと判定されることで(ステップS208;Yes)、第1始動口スイッチ22Aにより有効な遊技球の始動入賞が検出されたことに基いてCPU505によって読み出される。このとき、ステップS357、S358では、乱数値レジスタ559Aから読み出された数値データを用いて、特図表示結果判定用の乱数値MR1や加算値決定用の乱数値MR6が設定される。
また、乱数値レジスタ559Bは、ラッチ用フリップフロップ557Bがラッチ用クロックRC2を用いて生成した始動入賞時ラッチ信号SL2や乱数ラッチセレクタ558Bから出力された乱数ラッチ信号LL2の立ち上がりエッジに応答して、乱数列RSNにおける数値データを取得する。乱数値レジスタ559Bに記憶された数値データは、図33に示すステップS213にて第2始動入賞判定カウント値が入賞判定値に達したと判定されることで(ステップS213;Yes)、第2始動口スイッチ22Bにより有効な遊技球の始動入賞が検出されたことに基づいてCPU505によって読み出される。このとき、ステップS357、S358では、乱数値レジスタ559Bから読み出された数値データを用いて、特図表示結果判定用の乱数値MR1や加算値決定用の乱数値MR6が設定される。
このように、乱数回路509では、クロック用フリップフロップ552や乱数生成回路553、乱数列変更回路555などが、第1始動入賞口における遊技球の始動入賞に基づき乱数値となる数値データを取得するように構成されたラッチ用フリップフロップ557Aや乱数ラッチセレクタ558A、乱数値レジスタ559Aの組合せと、第2始動入賞口における遊技球の始動入賞に基づき乱数値となる数値データを取得するように構成されたラッチ用フリップフロップ557Bや乱数ラッチセレクタ558B、乱数値レジスタ559Bの組合せとに対して、共通化されている。したがって、クロック用フリップフロップ552から出力されて乱数生成回路553に供給されてカウント値順列RCNにおける数値データや乱数列RSNにおける数値データの更新に用いられる乱数更新クロックRGKは、第1始動入賞口における遊技球の始動入賞に基づき乱数値となる数値データを取得する構成と、第2始動入賞口における遊技球の始動入賞に基づき乱数値となる数値データを取得する構成とについて、共通の乱数更新用クロック信号となる。
図26に示すステップS14にてセキュリティ時間が経過したと判定されたときには(ステップS14;Yes)、CPU505がROM506に記憶されているユーザプログラムを読み出して、図27に示すような遊技制御メイン処理が実行される。そして、例えばステップS33における設定処理として、図28に示すような乱数回路設定処理などが実行される。この場合、乱数回路509は、CPU505による乱数回路設定処理での設定に基づき、乱数値となる数値データの生成動作を開始することになる。こうして乱数回路509による乱数値の生成動作が開始された後、主基板11に設置された遊技開始スイッチ31のオン操作が検出されるまでは、ステップS35の処理が繰り返し実行され、ステップS40の処理により割込み許可状態とする設定が行われない。そのため、乱数回路509による数値データの更新動作が開始された後であっても、遊技開始スイッチ31のオン操作が検出されるまでは、例えば図30に示す遊技制御用タイマ割込み処理といった、パチンコ遊技機1における遊技の進行を制御するための遊技制御処理が開始されることがない。これにより、遊技制御処理の開始タイミングから、乱数回路509の動作開始タイミングや数値データの更新動作を特定することが困難になり、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定のタイミングで不正信号を入力することで、不正に大当り遊技状態を発生させるなどの行為を、確実に防止することができる。
図9(B)に示すような第2乱数初期設定KRS2のビット番号[0]におけるビット値を“1”とすれば、例えば図28に示すステップS55の処理などにより、乱数回路509にて生成される乱数値となる数値データのスタート値を、システムリセット毎に変更することができる。これにより、たとえ乱数回路509の動作開始タイミングを特定することができたとしても、乱数回路509が備える乱数値レジスタ559Aや乱数値レジスタ559Bから読み出される数値データを特定することは困難になり、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に大当り遊技状態を発生させるなどの行為を、確実に防止することができる。
以上説明したように、この形態におけるパチンコ遊技機1では、乱数回路509において乱数ラッチフラグデータRDFM0が“1”の状態、すなわち乱数値レジスタR1Dに数値データが取り込まれている状態では、新たな乱数値の取込要求が発生した場合でも、新たな数値データを乱数値レジスタR1Dに取り込まないようになっており、このような状態では、乱数値レジスタR1Dの数値データが読み出されて、乱数ラッチフラグデータRDFM0がクリアされるまで新たな数値データを乱数値レジスタR1Dに取り込むことが不可能となる。
このため、第1始動入賞口6Aに遊技球が入賞したことにより数値データがラッチされ、乱数値レジスタR1Dに格納された後、この格納された数値データが読み出されるまでは、乱数ラッチフラグデータRDFM0が“1”の状態となることで、格納されている数値データが保持され、その間にゲーム開始信号SS1が入力されても新たな数値データに上書きされてしまうことがない。これにより、静電気などにより第1始動口スイッチ22Aの検出信号の信号線にノイズがのっても数値データが変わってしまうことがなく、このような場合であっても第1始動入賞口6Aに遊技球が入賞したタイミングでラッチされた数値データとは異なる数値データを用いて大当たり抽選が行われてしまうことがない。
尚、乱数値レジスタR1Dに数値データが取り込まれている状態において新たな数値データを乱数値レジスタR1Dに取り込まないようにする構成としては、新たな数値データのラッチを禁止する構成であっても良いし、新たな数値データをラッチするものの、乱数値レジスタR1Dへの書込を禁止する構成であっても良い。
また、乱数値レジスタR1Dに数値データが取り込まれている状態では、この格納された数値データが読み出されるまで、格納されている数値データを保持する構成を採用しているが、この場合には、第1始動入賞口6Aに遊技球が入賞しても始動条件が成立しない場合、例えば、第1特図保留記憶部591Aに既に4つの保留記憶がされている状態で第1始動入賞口6Aに遊技球が入賞すると、乱数値レジスタR1Dに数値データがラッチされる。このときにラッチされた数値データも、読み出しが行われない限り乱数値レジスタR1Dに保持されたままとなる。その後、特図ゲームの終了して新たな特図ゲームが開始されることとで第1特図保留記憶部591Aの保留記憶が1つ減った後に第1始動入賞口6Aに遊技球が入賞すると、今度は始動条件の成立となるが、始動条件を成立させた第1始動入賞口6Aへの遊技球の入賞タイミングとは異なるタイミングでラッチされた数値データによって大当たり抽選が行われてしまうという新たな問題が生じることとなる。
これに対して、この実施の形態にかかるパチンコ遊技機1では、第1特図保留記憶部591Aの保留記憶に基づいて新たな特図ゲームが開始される時点で、乱数値レジスタR1Dに数値データがラッチされているか否か、すなわち乱数ラッチフラグが設定されているか否かを確認し、乱数値レジスタR1Dに数値データがラッチされている場合には、ダミーで乱数値レジスタR1Dの数値データを読み出すようになっている。これにより、乱数ラッチフラグがクリアされ、新たな数値データの取込が可能な状態となる。
このため、第1特図保留記憶部591Aに既に4つの保留記憶がされている状態で第1始動入賞口6Aに遊技球が入賞することにより乱数値レジスタR1Dに数値データが格納され、その状態が保持されていても、新たな特図ゲームが開始して保留記憶に空きができると同時に、乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態となる。これにより、保留記憶が満杯の状態で乱数値レジスタR1Dに保持されていた数値データ、すなわち始動条件を成立させた第1始動入賞口6Aへの遊技球の入賞タイミングとは異なるタイミングでラッチされた数値データを用いて大当たり抽選が行われてしまうことがない。
以上の効果は、乱数値レジスタR1Dを乱数値レジスタR2Dと、乱数ラッチフラグデータRDFM0を乱数ラッチフラグデータRDFM1と、第1始動入賞口6A及び第1始動口スイッチ22Aを第2始動入賞口6B及び第2始動口スイッチ22Bと、第1特図保留記憶部591Aを第2特図保留記憶部591Bと読み替えた場合にも、同様に生ずるものとなる。
さらに、図27の遊技制御メイン処理においてステップS35で遊技開始スイッチ31がオン操作されたと判定された後、ステップS40で割込み許可状態とされる前に、乱数値レジスタR1D、R2Dに数値データがラッチされているか否か、すなわち乱数ラッチフラグが設定されているか否かを確認し、乱数値レジスタR1D、R2Dに数値データがラッチされている場合には、ダミーで乱数値レジスタR1D、R2Dの数値データを読み出すようになっている。一般に、電源投入時やシステムリセット時には、電源基板10から供給される電源電圧も不安定な状態となっており、第1始動入賞口スイッチ22Aや第2始動口スイッチ22Bの誤検出も起こりやすく、第1始動入賞口6Aまたは第2始動入賞口6Bに遊技球が入賞した訳でもないのに、乱数値レジスタR1D、R2Dに数値データがラッチされてしまうという事態が発生しやすい。このような場合にダミーで乱数値レジスタR1D、R2Dの数値データを読み出すものとしているため、始動条件を成立させた第1始動入賞口6A、第2始動入賞口6Bへの遊技球の入賞タイミングとは異なるタイミングでラッチされた数値データを用いて大当たり抽選が行われてしまうことがない。
また、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値を“00”以外の値とすることにより、システムリセットや電源投入に基づき初期設定処理が実行されるごとに所定の時間範囲で変化する可変設定時間を、セキュリティ時間に含まれる時間成分として設定することができる。これにより、パチンコ遊技機1の電源投入やシステムリセット等による動作開始タイミングから、乱数回路509の動作開始タイミングや更新される数値データなどを特定することが困難になり、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に大当り遊技状態を発生させるなどの行為を、確実に防止することができる。
また、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値を“000”以外の値とすることにより、固定時間に加えて予め選択可能な複数の延長時間のいずれかを、セキュリティ時間に含まれる時間成分として設定することができる。これにより、パチンコ遊技機1の電源投入やシステムリセット等による動作開始タイミングから、乱数回路509の動作開始タイミングや更新される数値データなどを特定することが困難になり、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に大当り遊技状態を発生させるなどの行為を、確実に防止することができる。
遊技制御用マイクロコンピュータ100に内蔵又は外付けられた乱数回路509では、ラッチ用フリップフロップ557A、乱数ラッチセレクタ558A及び乱数値レジスタ559Aの組合せにより、ラッチ用フリップフロップ557B、乱数ラッチセレクタ558B及び乱数値レジスタ559Bの組合せとは別個に、乱数値となる数値データを更新するように、乱数列変更回路555から出力される乱数列RSNにおける数値データを取り込んで記憶する。これにより、例えば第1及び第2始動入賞口といった、複数の始動領域に遊技球が同時に進入して始動入賞が発生したときでも、正確な乱数値となる数値データを取得することができる。また、クロック用フリップフロップ552、乱数生成回路553及び乱数列変更回路555などは、ラッチ用フリップフロップ557A、乱数ラッチセレクタ558A及び乱数値レジスタ559Aの組合せと、ラッチ用フリップフロップ557B、乱数ラッチセレクタ558B及び乱数値レジスタ559Bの組合せとに対して、共通化されており、乱数生成回路553に供給されることによりカウント値順列RCNや乱数列RSNの更新に用いられる乱数更新クロックRGKは、各組合せに共通の乱数更新用クロック信号となる。これにより、乱数回路509における回路構成を簡素化することができ、パチンコ遊技機1の製造コストを削減することができる。そして、ラッチ用フリップフロップ557A、557Bはそれぞれ、互いに共通のクロック用フリップフロップ552にて生成されたラッチ用クロックRC0を分岐点BR1で分岐したことにより、互いに共通の周期で信号状態が変化するラッチ用クロックRC1、RC2を用いて、乱数値となる数値データを取得するための始動入賞時ラッチ信号SL1や始動入賞時ラッチ信号SL2を生成する。これによっても、乱数回路509における回路構成の簡素化や、パチンコ遊技機1における製造コストの削減を図ることができる。
また、乱数用クロック生成回路112により生成される乱数用クロックRCLKの発振周波数と、制御用クロック生成回路111により生成される制御用クロックCCLKの発振周波数とは、互いに異なっており、また、一方の発振周波数が他方の発振周波数の整数倍となることもない。そのため、乱数回路509のクロック用フリップフロップ552により生成される乱数更新クロックRGKやラッチ用クロックRC0の発振周波数は、乱数用クロックRCLKの発振周波数の1/2となるが、制御用クロックCCLKの発振周波数や、制御用クロックCCLKの発振周波数の1/2となる内部システムクロックSCLKの発振周波数とは、異なるものとなる。こうして、制御用クロックCCLKや内部システムクロックSCLKと、乱数更新クロックRGKとに同期が生じることを防ぎ、CPU505の動作タイミングからは、乱数回路509にて乱数生成回路553や乱数列変更回路555により生成される乱数列RSNにおける数値データの更新タイミングを特定することが困難になる。これにより、CPU505の動作タイミングから乱数回路509における乱数値となる数値データの更新動作を解析した結果に基づく狙い撃ちなどを、確実に防止することができる。また、ラッチ用クロックRC0を分岐することにより生成されるラッチ用クロックRC1、RC2の発振周波数も、制御用クロックCCLKや内部システムクロックSCLKの発振周波数とは、異なるものとなる。こうして、制御用クロックCCLKや内部システムクロックSCLKと、ラッチ用クロックRC1、RC2とに同期が生じることを防ぎ、CPU505の動作タイミングからは、乱数回路509にて乱数値となる数値データが取り込まれる動作タイミングを特定することが困難になる。これにより、CPU505の動作タイミングから乱数回路509における乱数値となる数値データの取込動作を解析した結果に基づく狙い撃ちなどを、確実に防止することができる。
遊技制御用マイクロコンピュータ100に内蔵されたCPU505は、例えば図27に示すステップS33における設定処理として、図28に示すような乱数回路設定処理などを実行して、乱数回路509における乱数値の生成動作を開始させた後、主基板11に設置された遊技開始スイッチ31のオン操作が検出されるまでは、ステップS35の処理を繰り返し実行して、パチンコ遊技機1における遊技の進行を制御するための遊技制御処理の実行を開始させない。これにより、遊技制御処理の開始タイミングからは、乱数回路509の動作開始タイミングや数値データの更新動作を特定することが困難になる。したがって、遊技制御処理の開始タイミングを解析した結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」の接続による不正信号の入力などを、確実に防止することができる。なお、乱数回路509が遊技制御用マイクロコンピュータ100に外付けされる場合には、例えばCPU505がステップS35の処理を実行するより前に、乱数回路509がCPU505における処理とは独立して、プログラム管理エリアの記憶データに基づく初期設定を行ってから、乱数値の生成動作を開始すればよい。
遊技制御用マイクロコンピュータ100に内蔵又は外付けされた乱数回路509では、第2乱数初期設定KRS2のビット番号[0]におけるビット値が“1”とされたことに対応して、乱数生成回路553から出力されるカウント値順列RCNや乱数列変更回路555から出力される乱数列RSNにおける数値データのスタート値を、システムリセット毎に変更することができる。これにより、たとえ乱数回路509の動作開始タイミングを特定することができたとしても、乱数回路509が備える乱数値レジスタ559Aや乱数値レジスタ559Bから読み出される数値データを特定することは困難になり、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」の接続による不正信号の入力などを、確実に防止することができる。
遊技制御用マイクロコンピュータ100が備える外部バスインタフェース501では、内部リソースアクセス制御回路501Aにより、例えばROM506の記憶データといった、遊技制御用マイクロコンピュータ100の内部データにつき、CPU505等の内部回路以外による外部読出が制限される。これにより、例えばROM506に記憶されているゲーム制御用のユーザプログラムといった、遊技制御処理プログラムが遊技制御用マイクロコンピュータ100の外部から読み出されて解析などに提供されることを防止できる。そして、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」の接続による不正信号の入力などを、確実に防止することができる。
遊技制御用マイクロコンピュータ100に内蔵又は外付けされた乱数回路509では、周波数監視回路551により乱数用クロックRCLKにおける周波数異常が検知されたときに、内部情報レジスタCIFのビット番号[4]に格納される内部情報データCIF4のビット値が“1”に設定される。そして、CPU505では、例えば図29に示すステップS63にて内部情報データCIF4の読出値が“1”であると連続して判定された回数が、ステップS65にてクロック異常判定値に達したと判定されたときに、乱数回路509の動作状態に異常が発生したと判定する。これにより、乱数用クロックRCLKとして不正信号を入力することによる不正行為を確実に防止することができる。
遊技制御用マイクロコンピュータ100に内蔵されたCPU505は、例えば図29に示すステップS71の処理を繰り返し実行することなどにより、乱数回路509に対するラッチ信号の出力に相当する乱数値取込指定レジスタRDLTへのビット値“1”の書き込みを行い、乱数値レジスタ559Aや乱数値レジスタ559Bに格納された数値データを複数回読み出す。そして、ステップS72〜S74の処理を実行することなどにより読み出した数値データの全ビットを監視して、変化しないビットデータの有無に基づき、ステップS76にて乱数回路509の動作状態に異常が発生したか否かを判定する。これにより、乱数回路509の動作状態に異常が発生していることを確実かつ容易に検知して、不正行為を防止することができる。
遊技制御用マイクロコンピュータ100に内蔵又は外付けされた乱数回路509では、普通入賞球装置6Aが形成する第1始動入賞口での遊技球の始動入賞が第1始動口スイッチ22Aにより検出されたときに、ラッチ用フリップフロップ557A、乱数ラッチセレクタ558A及び乱数値レジスタ559Aの組合せにより、乱数値となる数値データを更新するように、乱数列変更回路555から出力される乱数列RSNにおける数値データを取り込んで記憶する。その一方で、普通可変入賞球装置6Bが形成する第2始動入賞口での遊技球の始動入賞が第2始動口スイッチ22Bにより検出されたときには、ラッチ用フリップフロップ557B、乱数ラッチセレクタ558B及び乱数値レジスタ559Bの組合せにより、乱数値となる数値データを更新するように、乱数列変更回路555から出力される乱数列RSNにおける数値データを取り込んで記憶する。これにより、短時間のうちに第1始動入賞口と第2始動入賞口の双方に遊技球が進入(始動入賞)したときでも、一方の始動入賞に対応して取得された乱数値が、他方の始動入賞に対応した乱数値として用いられてしまう不都合を、確実に防止することができる。
遊技制御用マイクロコンピュータ100に内蔵されたCPU505は、図35に示すステップS244にて特図表示結果判定用の乱数値MR1を示す数値データが大当り判定値データと合致したときに、ステップS246にて図24に示す大当り種別決定テーブル131を使用テーブルとしてセットした後、ステップS247にて大当り種別を複数種類のいずれかに決定する。そして、大当り種別決定テーブル131では、第1特別図柄表示装置4Aによる第1特図を用いた特図ゲームを開始するための第1開始条件が成立したことに基づいて大当り種別を複数種類のいずれかに決定する場合と、第2特別図柄表示装置4Bによる第2特図を用いた特図ゲームを開始するための第2開始条件が成立したことに基づいて大当り種別を複数種類のいずれかに決定する場合とで、大当り種別が「突確」に決定される割合を異ならせるように、テーブルデータが構成されている。これにより、第1開始条件と第2開始条件のいずれが成立したかに応じて2ラウンド大当り状態に制御されることに対する遊技者の期待感を異ならせ、遊技興趣を向上させることができる。特に、第2開始条件が成立したときには大当り種別を「突確」には決定しないようにすることで、例えば確変状態や時短状態といった第2始動入賞口が拡大開放状態に制御されやすい期間において、大当り種別が「突確」となることで遊技興趣が低下することを防止でき、確変状態や時短状態において賞球が払い出される頻度を高めることができる。
電源基板10には、例えば図3に示すようなクリアスイッチ304が設置されている。そして、遊技制御用マイクロコンピュータ100のCPU505は、図27に示すステップS27にてクリアスイッチ304のオン操作がなされたと判定したときに、ステップS31及びステップS32の処理を実行することにより、乱数回路509の動作状態を含めた遊技制御の初期化を行う。そして、遊技開始スイッチ31が例えば図2に示すように主基板11に設置されることにより、乱数回路509の動作状態を初期化してから遊技制御処理プログラムの実行を開始させるには、電源基板10に設置されたクリアスイッチ304と主基板11に設置された遊技開始スイッチ31の双方に対するオン操作が要求されるので、狙い撃ちなどによる不正行為を防止することができる。
遊技制御用マイクロコンピュータ100に内蔵又は外付けされた乱数回路509は、第2乱数初期設定KRS2のビット番号[0]におけるビット値が“1”である場合に、例えばCPU505が図28に示すステップS55の処理を実行したことなどに対応して、システムリセット毎に乱数値となる数値データのスタート値を変更する。このときには、例えば遊技制御用マイクロコンピュータ100に内蔵されたフリーランカウンタのカウント値などを用いて、システムリセット毎に変更されるスタート値を決定すればよい。これにより、システムリセット等のタイミングにより異なる初期値決定用データを用いて初期値を決定することができ、狙い撃ちなどによる不正行為を防止することができる。
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
上記の実施の形態では、遊技球が第1始動入賞口6Aまたは第2始動入賞口6Bに入賞し、これに基づいて始動条件が成立したときに、第1始動入賞口6Aまたは第2始動入賞口6Bへの入賞により取り込まれた数値データ(乱数)そのものを第1特図記憶部591Aまたは第2特図保留記憶部591Bに記憶させておくものとしていた。そして、大当たり抽選や大当たり種別抽選などは、特別図柄及び飾り図柄の変動表示を開始させるときにおいて第1特図記憶部591Aまたは第2特図保留記憶部591Bに記憶させていた乱数に基づいて実行するものとしていた。これに対して、遊技球が第1始動入賞口6Aまたは第2始動入賞口6Bに入賞し、これに基づいて始動条件が成立したら、第1始動入賞口6Aまたは第2始動入賞口6Bへの入賞により取り込まれた乱数に基づいて大当たり抽選や大当たり種別抽選なども行ってしまい、その抽選結果を第1特図記憶部591Aまたは第2特図保留記憶部591Bに記憶させておくものとしてもよい。
上記実施の形態では、図26に示すステップS4にて設定される延長時間が、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値に対応して、予め選択可能な複数の延長時間のいずれかとなり、この延長時間はシステムリセット毎に変更されないものとして説明した。しかしながら、この発明はこれに限定されず、例えばROM506に記憶されたユーザプログラムにおける設定などにより、固定時間に加算される延長時間を、システムリセット毎に複数の延長時間のいずれかに決定するようにしてもよい。この場合には、ステップS4にて設定される延長時間がいずれも、ステップS8にて設定可能な最長の可変設定時間に比べて、長くなるように定義しておく。そして、ステップS4では大まかな延長時間を決定した後、ステップS8では詳細な延長時間を決定すればよい。これにより、パチンコ遊技機1の電源投入時やシステムリセット時にセキュリティモードとなるセキュリティ時間を、システムリセット毎に大きく変化させることが可能になり、パチンコ遊技機1の動作開始タイミングから乱数回路509の動作開始タイミングや更新される数値データなどを特定することが、より困難になる。
また、例えば図26に示すステップS4にて設定される延長時間などは、遊技制御用マイクロコンピュータ100を構成するチップ毎に付与されるIDナンバーを用いて決定されるようにしてもよい。一例として、IDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算の一部又は全部を実行して、算出された値に対応して延長時間を設定してもよい。この場合には、例えばシステムリセット毎に延長時間を決定するために用いる演算式を変更することなどにより、システムリセット毎に延長時間がランダムに決定されるようにしてもよい。さらに、例えばIDナンバーを用いて延長時間を決定するための演算式をシステムリセット時に格納したフリーランカウンタのカウント値に対応して決定するといったように、フリーランカウンタのカウント値と、IDナンバーとを組み合わせて使用することなどにより、システムリセット毎に延長時間がランダムに決定されるようにしてもよい。また、乱数回路509にて生成される乱数のスタート値をシステムリセット毎に変更する場合にも、フリーランカウンタのカウント値と、IDナンバーとを組み合わせて使用することなどにより、乱数のスタート値を決定してもよい。
上記実施の形態では、遊技制御用マイクロコンピュータ100の外部に設けられた乱数用クロック生成回路112により、制御用クロック生成回路111で生成される制御用クロックCCLKの発振周波数とは異なる発振周波数を有する乱数用クロックRCLKを生成して、乱数回路509に供給するものとして説明した。しかしながら、この発明はこれに限定されず、遊技制御用マイクロコンピュータ100のCPU505に供給されるクロック信号と、乱数回路509に供給されるクロック信号とが、共通のクロック生成回路に含まれる1つの発振器により生成された発振信号を用いて、生成されるようにしてもよい。この場合には、例えば乱数用クロックRCLKと制御用クロックCCLKをそれぞれ生成するための分周器などを設け、ラッチ用クロックRC0、RC1、RC2と制御用クロックCCLKあるいは内部システムクロックSCLKとの同期が生じにくくなるように、各分周器における分周比などを設定すればよい。制御用クロック生成回路111と乱数用クロック生成回路112とは、その全部又は一部が、遊技制御用マイクロコンピュータ100の内部に設けられてもよいし、遊技制御用マイクロコンピュータ100の外部に設けられてもよい。
上記実施の形態では、乱数回路509が乱数用クロック生成回路112により生成された乱数用クロックRCLKの供給を受け、クロック用フリップフロップ552により、乱数更新クロックRGKとラッチ用クロックRC0とを生成するものとして説明した。しかしながら、この発明はこれに限定されず、例えば乱数用クロック生成回路112といった、乱数回路509の外部において、乱数更新クロックRGKやラッチ用クロックRC0となる発振信号が生成されるようにしてもよい。あるいは、乱数回路509の内部にて、乱数更新クロックRGKを生成するための回路と、ラッチ用クロックRC0を生成するための回路とを、別個に設けるようにしてもよい。一例として、クロック用フリップフロップ552と同様のフリップフロップにより乱数更新クロックRGKを生成する一方で、乱数更新クロックRGKの信号状態を反転させる反転回路を設け、その反転回路から出力される信号を、ラッチ用クロックRC0として用いるようにしてもよい。
上記実施の形態では、クリアスイッチ304が電源基板10に設置され、遊技開始スイッチ31がクリアスイッチ304とは別個に主基板11に設置されるものとして説明した。しかしながら、この発明はこれに限定されず、例えば電源基板10及び主基板11のいずれか一方にて、クリアスイッチ304と遊技開始スイッチ31とを兼用する1つのスイッチを設置してもよい。これにより、例えば遊技開始スイッチ31をテープ止めして固定するなどの不正行為がなされたときでも、クリアスイッチ304が同時に作動して制御内容がクリア(初期化)されることになるため、狙い撃ちなどによる不正行為を防止することができる。ただし、上記実施の形態では、図26に示すステップS4にて延長時間を設定することや、ステップS8にて可変設定時間を設定することにより、セキュリティモードとなるセキュリティ時間を変更することができるので、クリアスイッチ304と遊技開始スイッチ31とを兼用しない場合に、たとえ遊技開始スイッチ31に対する不正行為がなされたとしても、パチンコ遊技機1の動作開始タイミングから乱数回路509の動作開始タイミングやソフトウェアによる乱数更新動作の開始タイミングなどを特定することは困難であり、狙い撃ちなどによる不正行為を防止する効果は十分に高いものとなっている。
上記実施の形態では、特図表示結果判定用の乱数値MR1を示す数値データや加算値決定用の乱数値MR6を示す数値データといった、主基板11で用いられる乱数値を設定する際に、ソフトウェアによる加工を行うものとして説明した。しかしながら、この発明はこれに限定されず、例えば演出制御基板12といった、サブ側の制御基板で用いられる乱数値を設定する際にも、ソフトウェアによる加工を行ってもよい。一例として、演出制御基板12に搭載された演出制御用マイクロコンピュータ120のCPUが、飾り図柄の可変表示における確定飾り図柄となる最終停止図柄を決定するために用いる乱数値や、予告演出を実行するか否かを決定するために用いる乱数値などについて、ソフトウェアによる加工を行って設定するようにしてもよい。
上記実施の形態では、例えばROM506における記憶データの全部又は一部といった、遊技制御用マイクロコンピュータ100の内部データの外部読出を、外部バスインタフェース501が備える内部リソースアクセス制御回路501Aにより制限するものとして説明した。しかしながら、この発明はこれに限定されず、例えば遊技制御用マイクロコンピュータ100にてROM506の記憶データを外部読出するための接続端子などを、パチンコ遊技機1の提供者において外部装置が接続不能に封止することなどにより、ROM506の外部読出などを制限できるようにしてもよい。
上記実施の形態では、普通入賞球装置6Aが形成する第1始動入賞口と、普通可変入賞球装置6Bが形成する第2始動入賞口とが、複数の始動領域として設けられるものとして説明した。しかしながら、この発明はこれに限定されず、例えば3個以上といった複数の始動領域が設けられるものであってもよい。この場合、各始動領域にて遊技球の始動入賞が検出されたことに基づき、互いに異なる特別図柄を用いた特図ゲームを実行するための始動条件が成立するようにしてもよい。あるいは、例えば3個以上の始動領域のうちで、一部(少なくとも2個)の始動領域にて遊技球の始動入賞が検出されたことに基づき、同一の特別図柄を用いた特図ゲームを実行するための始動条件が成立するようにしてもよい。また、複数の始動領域のうち、いずれの始動領域にて遊技球の始動入賞が検出された場合でも、共通する1個(あるいは1組)の特別図柄を用いた特図ゲームを実行するための始動条件が成立するようにしてもよい。この場合には、複数の始動領域において遊技球の始動入賞が検出された順番と同一の順番で、特図ゲームを開始するための開始条件が成立するようにしてもよい。あるいは、複数の始動領域に優先順位を付け、優先順位が高い始動領域にて遊技球の始動入賞が検出されたことに基づく特図ゲームを開始するための開始条件を、優先順位が低い始動領域にて遊技球の始動入賞が検出されたことに基づく開始条件よりも、優先的に成立させるようにしてもよい。
上記実施の形態では、可変表示結果が「小当り」となったことに基づいて小当り遊技状態に制御され、小当り遊技状態が終了した後には、遊技状態の変更が行われない。その一方で、可変表示結果が「大当り」となる場合に大当り種別が「突確」となったことに基づいて2ラウンド大当り状態に制御され、2ラウンド大当り状態が終了した後には、確変状態に制御されるものとして説明した。しかしながら、この発明はこれに限定されず、大当り種別が「突確」となる場合や可変表示結果が「小当り」となる場合に代えて、あるいは、これらの場合に加えて、「突然時短」や「突然通常」となる場合を設けるようにしてもよい。一例として、「突然時短」と「突然通常」は、可変表示結果が「大当り」となる場合における大当り種別に含まれるものとする。この場合、大当り種別決定テーブル131は、変動特図指定バッファ値に応じて、大当り種別決定用の乱数値MR2を、「突然時短」や「突然通常」の大当り種別に割り当てるテーブルデータが含まれるように構成されればよい。そして、可変表示結果が「大当り」となる場合に大当り種別が「突然時短」となるときには、大当り種別が「突確」の場合と同様にして2ラウンド大当り状態に制御され、2ラウンド大当り状態が終了した後には、大当り種別が「突確」の場合とは異なり時短状態に制御される。他方、可変表示結果が「大当り」となる場合に大当り種別が「突然通常」となるときには、大当り種別が「突確」の場合と同様にして2ラウンド大当り状態に制御され、2ラウンド大当り状態が終了した後には、大当り種別が「突確」の場合とは異なり通常状態に制御される。これにより、2ラウンド大当り状態の終了後に制御される遊技状態に対する遊技者の期待感を高め、遊技興趣を向上させることができる。
上記実施の形態では、可変表示結果が「大当り」となったことに基づく大当り遊技状態が終了した後に、確変状態や時短状態といった遊技状態に制御できるものとして説明した。そして、確変状態や時短状態では、第2始動入賞口に遊技球が進入する可能性を高めて第2始動条件が成立しやすくなることで遊技者にとって有利となる制御が行われるものとして説明した。しかしながら、この発明はこれに限定されず、例えば確変状態には、継続して確変制御が行われるとともに、第2始動入賞口に遊技球が進入する可能性を高める有利開放制御が行われる高確高ベース状態と、確変制御は行われるが有利開放制御は行われない高確低ベース状態とが含まれるようにしてもよい。また、時短状態には、特図変動時間が短縮されるとともに有利開放制御が行われる低確高ベース状態と、特図変動時間は短縮されるが有利開放制御は行われない低確低ベース状態とが含まれるようにしてもよい。一例として、大当り種別が「第1確変」〜「第3確変」、「突確」のいずれであるかに対応して、大当り遊技状態の終了後に、高確高ベース状態と高確低ベース状態のいずれかに制御されるようにしてもよい。他の一例として、大当り種別が「第1確変」〜「第3確変」、「突確」のいずれであるかに応じて、大当り遊技状態の終了後に高確高ベース状態と高確低ベース状態のいずれかに制御される割合を、互いに異ならせるようにしてもよい。
上記実施の形態では、画像表示装置5の表示領域において、「左」、「中」、「右」の飾り図柄表示エリア5L、5C、5Rが設けられ、各飾り図柄表示エリア5L、5C、5Rにて1個の飾り図柄が停止表示されることで、予め定められた1個の有効ライン上に最終停止図柄となる確定飾り図柄が停止表示されるものとして説明した。しかしながら、この発明はこれに限定されず、例えば「左」、「中」、「右」の各飾り図柄表示エリア5L、5C、5Rにて「上段」、「中段」、「下段」の3カ所に飾り図柄を停止表示可能とし、5個あるいは8個の有効ライン上に最終停止図柄となる確定飾り図柄が停止表示されるようにしてもよい。
上記実施の形態では、第1特別図柄表示装置4A及び第2特別図柄表示装置4Bを備えたパチンコ遊技機1について説明したが、1つの特別図柄表示装置が設けられたパチンコ遊技機にも本発明の一部を適用することができる。この場合には、例えば図13に示す乱数回路509が備えるラッチ用フリップフロップ557B、乱数ラッチセレクタ558B及び乱数値レジスタ559Bの組合せを不使用とする一方、セキュリティ時間をシステムリセット毎に所定の時間範囲で変化させたり、セキュリティ時間を固定時間に加えて予め選択可能な複数の延長時間のいずれかに設定したりすることができればよい。
その他にも、パチンコ遊技機1の装置構成、データ構成、フローチャートで示した処理、画像表示装置5の表示領域における演出画像の表示動作を含めた各種の演出動作などは、本発明の趣旨を逸脱しない範囲で、任意に変更及び修正が可能である。加えて、本発明の遊技機は、入賞球の検出に応答して所定数の賞球を払い出す払出式遊技機に限定されるものではなく、遊技球を封入し入賞球の検出に応答して得点を付与する封入式遊技機にも適用することができる。