図1、図2に示すように、パチンコ遊技機1には、遊技ホールに取付けられる外枠に開閉枠2が開閉自在に装着され、開閉枠2に開閉扉3が開閉自在に装着されている。開閉枠2に遊技盤4が装着され、その遊技盤4の前面側に遊技領域4aが形成されている。開閉扉3に窓3aが形成され、その窓3aに透明板3bが装着され、その透明板3bにより遊技領域4aの前側が覆われている。
開閉扉3には、窓3aの下側に遊技球を貯留する貯留皿5が設けられ、その貯留皿5に演出ボタン6が装着され、貯留皿5の右下側に発射ハンドル7が装着されている。発射ハンドル7が回動操作されると、貯留皿5から発射位置に導入された遊技球が発射され、貯留皿5に複数の遊技球が存在する場合には、複数の遊技球が約0.6秒間隔で連続発射される。発射された遊技球はガイドレール8で案内され遊技領域4aの上部に投入される。
図2、図3に示すように、遊技盤4には、多数の障害釘(図示略)、第1始動口10、第2始動口装置11、ゲート12、大入賞口装置13、複数の一般入賞口14、センタ役物15、画像表示器16、可動役物装置17、遊技表示盤19が図2に示す配置で装着され、遊技盤4の裏面側に遊技制御装置20が装着されている。
第1始動口10には入賞した遊技球を検出する第1始動口SW10aが付設され、ゲート12には通過した遊技球を検出するゲートSW12aが付設され、各一般入賞口14には入賞した遊技球を検出する一般入賞口SW14aが付設されている。尚、「SW」はスイッチを意味する。
第2始動口装置11は、第2始動口11a、第2始動口11aを開閉する開閉部材11b、第2始動口11aに入賞した遊技球を検出する第2始動口SW11c、開閉部材11bを開閉駆動する第2始動口SOL11d(電チューSOL)を有する。尚、「SOL」はソレノイドアクチュエータを意味する。開閉部材11bは、閉位置で第2始動口11aへの遊技球の入賞を不可能にし、開位置で第2始動口11aへの遊技球の入賞を可能にする。
大入賞口装置13は、大入賞口13a、大入賞口13aを開閉する開閉部材13b、大入賞口13aに入賞した遊技球を検出する大入賞口SW13c、開閉部材13bを開閉駆動する大入賞口SOL13dを有する。開閉部材13bは、閉位置で大入賞口13aへの遊技球の入賞を不可能にし、開位置で大入賞口13aへの遊技球の入賞を可能にする。
センタ役物15は、遊技盤4の前面よりも前方へ張り出すように、遊技盤4の上部から中央部分に亙って遊技領域4aの半分以上を占めるサイズで設けられ、このセンタ役物15に画像表示器16と可動役物装置17が装着されている。
遊技表示盤19は、第1特別図柄表示器19a、第2特別図柄表示器19b、普通図柄表示器19c、第1特別図柄保留ランプ19d、第2特別図柄保留ランプ19e、普通図柄保留ランプ19fを備えている。
第1特別図柄表示器19aには、第1始動口10への遊技球の入賞に基づいて第1特別図柄が図柄変動後に停止表示される。第2特別図柄表示器19bには、第2始動口11aへの遊技球の入賞に基づいて第2特別図柄が図柄変動後に停止表示される。第1又は第2特別図柄表示器19a又は19bに大当り図柄が停止表示された場合、大当り遊技状態が発生して、大入賞口装置13が、開閉部材13bを開閉動作させて、通常は閉塞の大入賞口13aを複数ラウンドに亙って開閉させる。
普通図柄表示器19cには、ゲート12への遊技球の入賞(通過)に基づいて普通図柄が図柄変動後に停止表示される。普通図柄表示器19cに当り図柄が停止表示された場合、補助遊技が発生して、第2始動口装置11が、開閉部材11bを開閉動作させ、通常は閉塞の第2始動口11aを1又は複数回開閉させる。
第1特別図柄保留ランプ19dには、第1始動口10に入賞した遊技球であって第1特別図柄表示器19aでの図柄変動に未だ供してない第1保留数が最大で4個表示される。第2特別図柄保留ランプ19eには、第2始動口11aに入賞した遊技球であって第2特別図柄表示器19bでの図柄変動に未だ供してない第2保留数が最大で4個表示される。普通図柄保留ランプ19fには、ゲート12に入賞した遊技球であって普通図柄表示器19cでの図柄変動に未だ供してない普図保留数が最大で4個表示される。
発射ハンドル7を回動操作することで、遊技領域4aの上部に発射投入された遊技球は、複数の障害釘に当たって方向を変えながら落下して、入賞口10,11a,13a,14の何れかに入賞した場合、そこから遊技領域4a外へ排出され、入賞口10,11a,13a,14の何れにも入賞しなかった場合には、最終的に、遊技領域4aの下端部に形成されたアウト口9から遊技領域4a外へ排出される。
図3に示すように、遊技制御装置20は、主要な遊技制御を司るメイン制御装置21と、メイン制御装置21から種々の指令を受けて払出制御と演出制御とを司るサブ制御装置25とを備えている。メイン制御装置21は、遊技制御基板22に遊技制御プログラムに基づき遊技内容の進行に伴う基本処理を実行するCPUと、遊技制御プログラムを記憶するROMと、CPUの演算処理時におけるデータのワークエリアとして機能するRAMとを有するコンピュータと、ハード乱数生成回路41とを備えて構成されている。遊技制御基板22は盤用外部情報端子基板23に接続されている。
メイン制御装置21のCPUには、ウォッチドッグタイマが付属されている。ウォッチドッグタイマは、メイン制御装置21のコンピュータが遊技制御プログラムに従って正常に動作しているか否かを監視する機能を有する。遊技制御プログラムに異常が発生して、プログラムの実行が中断又は停止した場合や、プログラムの実行を中断した後他の処理が実行されないようにループ処理のみが繰返し実行される場合、その停止状態やループ処理による待機状態の間に、ウォッチドッグタイマのタイマカウント部がカウントアップすると、メイン制御装置21のコンピュータが強制的に初期化される。
サブ制御装置25は、払出制御基板26、演出制御基板27、画像制御基板28、ランプ制御基板29に夫々CPUとROMとRAMを有するコンピュータを備えて構成されている。演出制御基板27のコンピュータは更に、実時間を計時出力する計時手段としてのリアルタイムクロック(RTC)を有する。払出制御基板26は枠用外部情報端子基板24に接続されている。
遊技制御基板22のコンピュータは、第1,第2始動口SW10a,11c、ゲートSW12a、大入賞口SW13c、一般入賞口SW14aからの球検出信号と、払出制御基板26からの制御情報を受けて、第2始動口SOL11d、大入賞口SOL13d、図柄表示器19a〜19c、図柄保留ランプ19d〜19fを制御し、払出制御基板26と演出制御基板27と盤用外部情報端子基板23に制御情報(遊技情報)を出力する。
払出制御基板26のコンピュータは、遊技制御基板22からの制御情報と、払出球検出SW31、球有り検出SW32、満タン検出SW33からの球検出信号を受けて、払出モータ30を制御し、入賞口10,11a,13a,14への遊技球の入賞1個について、入賞口10,11a,13a,14毎に設定された数の遊技球を貯留皿5に払出し、遊技制御基板22と枠用外部情報端子基板24に制御情報(払出情報)を出力する。
演出制御基板27のコンピュータは、遊技制御基板22からの制御情報と、演出ボタン6からのボタン操作信号を受けて、画像制御基板28に制御情報を出力し、更に、画像制御基板28からの制御情報を受けて、ランプ制御基板29に制御情報を出力する。
画像制御基板28のコンピュータは、演出制御基板27からの制御情報を受けて、画像表示器16とスピーカ34とを制御し、演出制御基板27に制御情報を出力する。ランプ制御基板29のコンピュータは、演出制御基板27からの制御情報を受けて、主に画像制御基板28のコンピュータによる制御に同期させて、枠ランプ35と盤ランプ36と可動役物装置17とを制御する。
図4に示すように、メイン制御装置21は、そのコンピュータにより構成された、乱数取得部21a、乱数判定部21b、乱数異常判定部21c、乱数異常対処部21d、乱数異常情報出力部21eを有すると共に、そのコンピュータとは別に、抽選用のハード乱数を微小時間毎に順次更新しつつ周期的に生成するハード乱数生成回路41を備えている。
図5に示すように、ハード乱数生成回路41は、水晶振動子を用いた発振器42と、発振器42から数MHzのクロックパルスに基づいてカウントアップされる乱数カウンタ43と、メイン制御装置21のCPUからの要求信号をクロックパルスに同期してラッチするD型フリップフロップ44と、D型フリップフロップ44の出力値の変化に応答して乱数カウンタ43の出力値を読み込むバッファIC回路45とを備え、メイン制御装置21のコンピュータの動作クロックとは無関係にハード乱数を更新するように構成されている。
乱数カウンタ43は、16ビット構成の1〜65536のカウンタ値(乱数値)をカウント可能なカウンタICであり、発振器42からのクロックパルスの立ち上がりエッジでカウントアップ動作を開始する。
D型フリップフロップ44は、NOT回路46を介して発振器42からクロックパルスを受けると共に、発振器42からのクロックパルスの立ち下がりエッジでCPUからの要求信号を読み込んで出力している。尚、CPUからの要求信号は、通常はLレベルであるが、CPUの処理において乱数取得条件の成立時のタイミングでHレベルとなる。
D型フリップフロップ44は、発振器42からのクロックパルスの立ち下がり毎に要求信号を読み込むが、通常は要求信号がLレベルであるため、D型フリップフロップ44の出力値もLレベルのままである。一方、要求信号がHレベルに変化すると、クロックパルスの立ち下がりエッジで、D型フリップフロップ44の出力がLレベルからHレベルに推移する。すると、これに合わせて、バッファIC回路45は、乱数カウンタ43の値をハード乱数の値として乱数取得部21aに出力する。
ハード乱数生成回路41は乱数異常検出部41aを有し、この乱数異常検出部41aは、ハード乱数生成回路41の乱数異常を検出する乱数異常検出処理を実行する。具体的には、1周期分の複数のハード乱数を生成するのに要する時間を含む設定期間Px内で、その1周期分の複数のハード乱数の全てを生成したか否かを検出する。
乱数異常検出部41aは、そのメモリに1〜65535の全てのハード乱数の情報を予め記憶しておいて、順次生成されたハード乱数の情報を消去(リセット)して、最終的に全てのハード乱数の情報が消去された場合に、1周期分の複数のハード乱数の全てが生成されたことを検出し、検出されない場合、1周期分の複数のハード乱数の少なくとも1つが生成されなかったことを検出する。
乱数異常検出部41aによる検出結果として、1周期分の複数のハード乱数の全てが生成された場合には、乱数異常フラグがOFFにされ、複数のハード乱数の少なくとも1つが生成されなかった場合には、乱数異常フラグがONにされる。
前記設定期間Pxは、メイン制御装置21が実行する電源投入時から開始するメイン処理における電源投入時から遊技動作実行可能状態になる最初のタイマ割込処理の割込み許可を設定する迄の間の電源投入初期期間に含まれる。設定期間Pxは、1000msの期間である。具体的には、設定期間Pxは、電源投入後のハード乱数生成回路41の起動時に設定される。ハード乱数生成回路41において乱数異常検出部41aは、前記電源投入初期期間のうちのハード乱数生成回路41の起動時から1000msが経過するまでの設定期間Pxの間に乱数異常検出処理を実行する。
乱数取得部21aは、乱数取得条件の成立時にハード乱数生成回路41からハード乱数を取得する。第1又は第2始動口10又は11aへの遊技球の入賞時に、第1又は第2保留球数が4未満の場合に、乱数取得条件が成立する。
乱数判定部21bは、乱数取得部21aで取得されたハード乱数の当りの当否を判定する。この場合、乱数取得部21aで取得されたハード乱数が予め設定された大当り特定値か否か判定する。図6に示すように、例えば、通常/時短遊技状態では、大当り特定値が205個設定され、ハード乱数生成回路41で生成可能なハード乱数の全数(65535個)に対して大当り特定値の数の割合が約1/320になる。つまり、約1/320の確率で大当り判定となる。
また、確変/潜確遊技状態では、大当り特定値が2050個設定され、ハード乱数生成回路41で生成可能なハード乱数の全数に対して大当り特定値の数の割合が約10/320になる。つまり、約10/320の確率で大当り判定となる。尚、全遊技状態において、ハード乱数生成回路41で生成可能なハード乱数の全数に対して約3/320の割合で小当り特定値が設定されており、つまり、約3/320の確率で小当り判定となる。小当りとなった場合、大入賞口13aが複数回に微小時間で開閉する小当り遊技が発生する。
ここで、大当り判定となった場合、大当り図柄として、確変図柄、突確図柄、潜確図柄、時短図柄の中の何れか1つが抽選により決定され、その大当り図柄が特別図柄表示器19a又は19bに停止表示されることになる。そして、大当り遊技後、確変図柄と突確図柄の場合には確変遊技状態へ移行し、時短図柄の場合には時短遊技状態へ移行し、潜確図柄の場合には潜確遊技状態へ移行する。時短遊技状態において、特別図柄の図柄変動が100回(又は数10回)行われた後は、通常遊技状態へ移行する。尚、小当りの場合、現状の遊技状態が維持される。尚、確変遊技状態、時短遊技状態では、潜確遊技状態、通常遊技状態と比べて、補助遊技が発生する割合が高くなり、更に、各補助遊技において、第2始動口11aに遊技球が入賞する可能性が高くなる。
乱数異常判定部21cは、ハード乱数生成回路41の乱数異常検出部41aによる検出結果、つまり、ハード乱数生成回路41で1周期分の複数のハード乱数の全てを生成したか否かを判定し、具体的には、その異常判定を乱数異常フラグで以て判定する。
乱数異常対処部21dは、乱数異常判定部21cでの判定結果に基づいて、つまり、ハード乱数生成回路41の乱数異常検出部41aによる検出結果を受けて、1周期分の複数のハード乱数の少なくとも1つが生成されなかった場合に乱数異常対処処理を実行する。
具体的には、ハード乱数生成回路41の乱数異常検出部41aにより1周期分の複数のハード乱数の少なくとも1つが生成されなかったことが検出された場合、乱数異常対処部21dは、メイン処理における前記の電源投入初期期間の間に乱数異常対処処理を実行する。その乱数異常対処処理として、メイン処理の実行を直ちに中断し、メイン処理の実行が中断されている間にウォッチドッグタイマがカウントアップしないように、ウォッチドッグタイマをリセット(クリア)する処理のみを繰返し実行して、メイン処理におけるその他の処理の実行を禁止する。
乱数異常情報出力部21eは、乱数異常判定部21cでの判定結果に基づいて、つまり、ハード乱数生成回路41の乱数異常検出部41aによる検出結果を受けて、1周期分の複数のハード乱数の少なくとも1つが生成されなかった場合に、乱数異常情報(乱数異常コマンド)をサブ制御装置25へ出力する。
サブ制御装置25は乱数異常対処部25aを有し、その乱数異常対処部25aが、メイン制御装置21から乱数異常情報を受けた場合、報知機器47(画像表示器16、スピーカ34、枠ランプ35、盤ランプ36の少なくとも1つ)を制御して、ハード乱数生成回路41でハード乱数が正常に生成されない乱数異常を報知機器47に報知させる。具体的な乱数異常報知としては、画像表示器16に、ハード乱数生成回路41に異常が発生した旨の表示が行われる。
次に、メイン制御装置21が実行する各種処理をフローチャートに基づいて説明する。尚、図中の符号Si(i=1,2,・・・)は各ステップを示す。
図7に示すように、電源投入によりメイン処理が開始され、このメイン処理において、先ず、電源投入直後に、乱数異常判定・対処処理が実行される(S1)。
図8に示すように、S1の乱数異常判定・対処処理では、先ず、ウェイトタイマtwに1000msがセットされ(S21)、続いて、ハード乱数生成回路41が起動される(S22)。
ハード乱数生成回路41では、その起動時から、乱数異常検出部41aによる乱数異常検出処理が開始され、その後、最短で1周期分のハード乱数の更新時間を含む設定期間Px内に、1周期分の複数のハード乱数の全てを生成したか否かの検出結果が導出されて、1周期分の複数のハード乱数の全てが生成された場合、乱数異常フラグがOFFにされ、1周期分の複数のハード乱数の少なくとも1つが生成されなかった場合、乱数異常フラグがONされる。
S22の後、ウェイトタイマtwの減算計時が開始され(S23)、S24において、tw=0か否か判定され、tw=0でない場合(S24;No)、tw=0になるまで減算計時処理が繰返し実行される。その間で、乱数異常検出部41aによる乱数異常検出処理が完了していることになる。S24の判定がYesの場合、次に、乱数異常フラグが読み込まれてONか否か判定される(S25)。乱数異常フラグがOFFの場合(S25;No)、つまり、複数のハード乱数の全てが生成された場合、メイン処理が継続となり(S26)、リターンする。
一方、乱数異常フラグがONの場合(S25;Yes)、つまり、複数のハード乱数の少なくとも1つが生成されなかった場合、乱数異常コマンドがサブ制御装置25(演出制御基板28)へ出力され、メイン処理が中断となり(S28)、メイン処理開始と同時にカウントを開始したウォッチドッグタイマのカウント値をリセットする処理が繰返し実行される(S29)。この状態で、電源を一旦遮断してから投入すると、遊技が再開される。
図7のメイン処理において、S1の乱数異常判定・対処処理の後、つまり、S25の判定がNoの場合、次に、RAMアクセス許可が設定され(S2)、RAMクリアSWがオンされたか否か判定される(S3)。RAMクリアSWがオンされなかった場合(S3;No)、バックアップフラグがONか否か判定され(S4)、バックアップフラグがONの場合(S4;Yes)、チェックサムが正常か否か判定され(S5)、チェックサムが正常である場合(S5;Yes)、復旧処理が実行され(S6)、S10へ移行する。
一方、S3の判定がYes、又はS4の判定がNo、又はS5の判定がNoの場合、RAMクリア(S7)、クリア時の作業領域設定(S8)、周辺部初期設定(S9)が順次実行されて、S10へ移行する。ここで、周辺部とは、払出制御基板26、演出制御基板27などである。周辺部初期設定は、各制御基板26,27のコンピュータに対して、初期設定の実行を指示する初期設定コマンドを送信することにより実行される。
次に、S10において、タイマカウンタ(CTC)の周期(例えば、4ms)が設定される。尚、S10で設定された周期を用いてタイマ割込処理が実行される。次に、電源遮断監視処理が実行された後(S11)、変動パターン乱数更新処理(S12)、タイマ割込処理の禁止設定処理(S13)、初期値乱数更新処理(S14)、タイマ割込処理の許可設定処理(S15)が順次実行され、S11へリターンする。以降、S11〜S15の処理が繰返し実行される。尚、メイン処理において、電源投入時からS10のCTC周期設定迄の間が電源投入初期期間に相当する。
図9に示すように、S11の電源遮断監視処理では、タイマ割込処理の割込禁止が設定され(S31)、次に、電源遮断か否か判定される(S32)。電源遮断でない場合(S32;No)、タイマ割込処理の割込許可が設定され(S33)、S12へリターンする。一方、電源遮断の場合(S32;Yes)、出力ポートクリア(S34)、チェックサム作成・格納(S35)、バックアップフラグON(S36)、RAMアクセス禁止設定(S37)が順次実行され、エンドとなる。
次に、タイマ割込処理について説明する。タイマ割込処理は、図7のS10のCTC周期設定において設定された周期にて、メイン処理に微小時間毎(例えば、2ms)に割込み実行される。図10に示すように、タイマ割込処理では、乱数更新処理(S41)、スイッチ処理(S42)、図柄処理(S43)、電動役物処理(S44)、賞球処理(S45)、出力処理(S46)が順次実行され、リターンする。
図11に示すように、S42の始動口SW処理では、第1始動口SW10aがオンの場合、つまり、第1始動口10への遊技球の入賞が検出された場合(S51;Yes)、第1保留数U1が4未満の場合(S52;Yes)、第1保留数U1がU1+1に加算され(S53)、ハード乱数生成回路41から第1ハード乱数が取得・格納され(S54)、第1保留数増加コマンドがセットされる(S55)。S51の判定がNo、又はS52の判定がNo、又はS55の後はS56へ移行する。
次に、第2始動口SW11cがオンの場合、つまり第2始動口11aへの遊技球の入賞が検出された場合(S56;Yes)、第2保留数U2が4未満の場合(S57;Yes)、第2保留数U2がU2+1に加算され(S58)、ハード乱数生成回路41から第2ハード乱数が取得・格納され(S59)、第2保留数増加コマンドがセットされる(S60)。S56の判定がNo、又はS57の判定がNo、又はS60の後はリターンする。尚、S55、S60でセットされたコマンド、及び、その他のステップでセットされたコマンドについては、S46の出力処理により演出制御基板27に送信される。
以上説明したパチンコ遊技機1によれば次の作用効果を奏する。
メイン制御装置21で電源投入時から開始されるメイン処理において、電源投入時から最初のタイマ割込処理の割込み許可を設定する迄の間の電源投入初期期間のうちの電源投入直後に設定された1周期分の複数(65535個)のハード乱数を生成するのに要する更新時間を含む設定期間Px(1000ms)が経過する迄の間に、ハード乱数生成回路41の乱数異常検出部41aが、乱数異常検出処理を実行してその1周期分の複数のハード乱数の全てを生成したか否か検出する。メイン制御装置21において、ハード乱数生成回路41とは別の乱数異常対処部21dが、ハード乱数生成回路41の乱数異常検出部41aによる検出結果を受けて、1周期分の複数のハード乱数の少なくとも1つが生成されなかった場合、電源投入初期期間に乱数異常対処処理を実行するので、電源投入直後にハード乱数生成回路41の異常の有無を早期に且つ確実に検出することができる。
電源投入初期期間において、乱数異常対処部21dは、ハード乱数生成回路41の異常が検出された場合、乱数異常対処処理として、メイン処理の実行を直ちに中断するので、ハード乱数生成回路41の異常が発生したら、遊技を直ちに停止することできると共に、電源投入初期期間にその異常に迅速に対処することができる。また、ハード乱数生成回路41に異常が発生した場合に、その他の遊技処理(タイマ割込処理等)を実行させないようにすることができる。
メイン処理の実行が中断されている間にウォッチドッグタイマがカウントアップしないように、ウォッチドッグタイマをリセット(クリア)する処理のみを繰返し実行するので、メイン制御装置21のコンピュータが強制的に初期化されることがなく、画像表示器16に初期化表示(カラーバー表示)を実行させないようにすることができ、パチンコ遊技機内部の異常に対する遊技者の不信感を抑制することができる。
ハード乱数生成回路41は乱数異常検出部41aを設けたので、ハード乱数生成回路41の内部における自己診断機能により乱数異常を検出することができ、メイン制御装置21のコンピュータ側の乱数異常検出の制御負荷を軽減することができる。
次に、実施例1を部分的に変更した以下の実施例について説明する。尚、実施例1と実質的に同一の構成については説明を省略する。
実施例2においては、乱数異常判定・対処処理が、メイン処理における電源投入初期期間とループ処理実行中に夫々実行される。
電源投入直後にメイン処理において乱数異常判定・対処処理が実行開始されると、図12に示すように、ハード乱数生成回路41において乱数異常検出部41aが、電源投入初期期間(TA)のうちのハード乱数生成回路41の起動時に設定された設定期間Px(1000ms)が経過するまでの間に乱数異常検出処理を実行する。
メイン処理の乱数異常判定・対処処理において、乱数異常対処部21dは、乱数異常検出部41aによる乱数異常検出処理の検出結果を受けて、乱数生成回路41に異常がある場合、メイン処理における電源投入初期期間に乱数異常対処処理を実行する。
更に、図12に示すように、メイン処理におけるループ処理実行中に乱数異常判定・対処処理が実行開始されると、メイン制御装置21のコンピュータからハード乱数生成回路41aに異常検出指令が出力され、ハード乱数生成回路41において乱数異常検出部41aは、異常検出指令を受けた時から設定された設定期間Py(1000ms)が経過するまでの間に乱数異常検出処理を実行する。この異常検出指令は、ハード乱数生成回路41に所定時間間隔おきに出力されるので、乱数異常検出部41aによる乱数異常検出処理が、所定時間間隔おきに実行される。
メイン処理の乱数異常判定・対処処理において、乱数異常対処部21dは、乱数異常検出部41aによる乱数異常検出処理の検出結果を受けて、乱数生成回路41に異常がある場合、乱数異常対処処理を実行する。
図13に示すように、このメイン処理においては、電源投入直後に乱数異常判定・対処処理が実行され(S1)、1周期分の複数(65535個)のハード乱数を生成するのに要する更新時間を含む設定期間Px内で、その1周期分の複数のハード乱数の全てを生成したことが検出された場合、S2〜S10の処理が順次実行された後、再度、乱数異常判定・対処処理が実行される(S70)。
図14に示すように、S70の乱数異常判定・対処処理では、ウェイトタイマtwが計時中か否か判定され(S71)、計時中でない場合(S71;No)、ハード乱数生成回路41のハード乱数異常の検出を開始するか否か判定される(S72)。ここで、ハード乱数異常の検出は、所定間隔おきに(例えば、30分や1時間おきに)開始するように設定されている。ハード乱数異常検出が開始されない場合(S72;No)、リターンして、メイン処理のS70以降の処理が実行される。
一方、ハード乱数異常の検出が開始される場合、つまり検出開始設定時になった場合(S72;Yes)、ウェイトタイマtwに1000msがセットされ(S73)、続いて、ハード乱数生成回路41に異常検出指令が出力される(S74)。
ハード乱数生成回路41では、その異常検出指令を受けた時から、乱数異常検出部41aによる乱数異常検出処理が開始され、その後、最短で1周期分のハード乱数の更新時間を含む設定期間Py(1000ms)内に、1周期分の複数のハード乱数の全てを生成したか否かの検出結果が導出されて、1周期分の複数のハード乱数の全てが生成された場合、乱数異常フラグがOFFにされ、1周期分の複数のハード乱数の少なくとも1つが生成されなかった場合、乱数異常フラグがONされる。
S74の後、ウェイトタイマtwの減算計時が開始される(S75)。計時開始後、ウェイトタイマtwが計時中の場合、S71の判定はYesとなり、その後、S76において、tw=0か否か判定され、tw=0でない場合(S75;No)、リターンして、メイン処理のS70以降の処理が実行される。
一方、S76の判定がYes、つまりtw=0の場合、ハード乱数生成回路41において乱数異常検出部41aによる乱数異常検出処理が完了していることになる。次に、乱数異常フラグが読み込まれてONか否か判定される(S77)。乱数異常フラグがOFFの場合(S77;No)、つまり、複数のハード乱数の全てが正常に生成された場合、S70以降のメイン処理が継続となり(S78)、リターンする。
一方、乱数異常フラグがONの場合(S77;Yes)、つまり、複数のハード乱数の少なくとも1つが正常に生成されなかった場合、乱数異常コマンドがサブ制御装置25(演出制御基板28)へ出力され(S79)、タイマ割込処理の割込み許可の禁止が設定され(S80)、続いて、電源遮断に必要な各種処理として、出力ポートクリア(S81)、チェックサム作成・格納(S82)、バックアップフラグON(S83)、RAMアクセス禁止(S84)が順次実行された後、ウォッチドッグタイマのリセット処理が繰返し実行される(S85)。この状態で、電源を一旦遮断してから投入すると、ハード乱数生成回路41の異常検出時(メイン処理中断時)に記憶されたバックアップ情報(遊技情報)に基づいて、遊技中断時点から遊技が再開される。
図13のメイン処理において、S70の乱数異常判定・対処処理の後、つまり、S72の判定がNo、S76の判定がNo、S77の判定がNoとなり、メイン処理が継続となり(S78)、電源遮断監視処理(S11)、変動パターン乱数更新処理(S12)、タイマ割込の割込禁止設定(S13)、初期値乱数更新処理(S14)、タイマ割込処理の割込許可設定(S15)が順次実行された後、S70へリターンし、以降、S70、S11〜S15が繰返し実行される(ループ処理)。
このように、メイン処理において、電源投入直後に乱数異常判定・対処処理が実行され、更に、ループ処理の実行中に、乱数異常判定・対処処理が所定時間間隔おきに実行されるので、電源投入初期期間経過後の定常状態において、このパチンコ遊技機1で遊技をしている途中でも、複数回の乱数異常判定・対処処理によりハード乱数生成回路41の異常の有無を確実に検出することができる。
即ち、メイン処理におけるループ処理実行中に、乱数異常対処部21dは、ハード乱数生成回路41による乱数異常検出処理でハード乱数生成回路41の乱数異常が検出された場合、乱数異常対処処理として、メイン処理の実行を直ちに中断するので、ハード乱数生成回路41の異常が発生したら直ちに遊技を停止することができると共に、その異常に迅速に対処することができる。また、ハード乱数生成回路41に異常が発生した場合に、その他の遊技処理(タイマ割込処理等)を実行させないようにすることができる。
更に、電源投入初期期間又は電源投入初期期間経過後にハード乱数生成回路41の異常が検出された場合に、ウォッチドッグタイマのリセット処理のみを繰返し実行するので、メイン制御装置21のコンピュータが強制的に初期化されることがなく、画像表示器16に初期化表示(カラーバー表示)を実行させないようにすることができる。それ故、パチンコ遊技機1の内部の異常に対する遊技者の不信感を抑制することができる。
実施例3においては、乱数異常判定・対処処理が、メイン処理における電源投入初期期間と、メイン処理におけるループ処理実行中に夫々実行される。ループ処理実行中に実行される乱数異常判定・対処処理は、タイマ割込処理で実行された乱数異常検出処理の検出結果に基づいて実行される。
電源投入直後にメイン処理において乱数異常判定・対処処理が実行されると、図15に示すように、ハード乱数生成回路41において乱数異常検出部41aは、電源投入初期期間(TA)のうちのハード乱数生成回路起動時に設定された設定期間Px(1000ms)が経過するまでの間に乱数異常検出処理を実行する。
メイン処理のループ処理実行中において、乱数異常対処部21dは、乱数異常検出処理の検出結果を受けて、ハード乱数生成回路41に異常がある場合、メイン処理における電源投入初期期間に乱数異常対処処理を実行する。
更に、図15に示すように、タイマ割込処理開始後、ハード乱数生成回路41aに異常検出指令が出力され、ハード乱数生成回路41aにおいて乱数異常検出部41aは、メイン制御装置のコンピュータから異常検出指令を受けた時から設定期間Pz(1000ms)経過するまでの間に乱数異常検出処理を実行する。この異常検出指令は、ハード乱数生成回路41に所定時間間隔おきに出力され、乱数異常検出部41aによる乱数異常検出処理が、所定時間間隔おきに実行される。
メイン処理の乱数異常判定・対処処理において乱数異常対処部21dは、乱数異常検出部41aによる乱数異常検出処理の検出結果を受けて、乱数生成回路41に異常がある場合、乱数異常対処処理を実行する。
図16に示すように、タイマ割込処理は、図12のメイン処理でS10のCTC周期設定おいて設定された周期にて、メイン処理に微小時間毎に割込み実行され、乱数更新処理(S41)、スイッチ処理(S42)、図柄処理(S43)、電動役物処理(S44)、賞球処理(S45)が順次実行された後、乱数異常検出処理が実行される(S90)。その後、出力処理(S46)が実行され、リターンする。
図17に示すように、S90の乱数異常検出処理では、ウェイトタイマtwが計時中か否か判定され(S91)、計時中でない場合(S91;No)、ハード乱数生成回路41のハード乱数異常の検出を開始するか否か判定される(S92)。ここで、ハード乱数異常の検出は、所定間隔おきに(例えば、30分や1時間おきに)開始するように設定されている。ハード乱数異常検出が開始されない場合(S92;No)、リターンする。
一方、ハード乱数異常の検出が開始される場合、つまり、検出開始設定時になった場合(S92;Yes)、ウェイトタイマtwに1000msがセットされ(S93)、続いて、ハード乱数生成回路41に異常検出指令が出力される(S94)。
ハード乱数生成回路41では、その異常検出指令を受けた時から、乱数異常検出部41aによる乱数異常検出処理が開始され、その後、最短で1周期分のハード乱数の更新時間を含む設定期間Pz(1000ms)内に、1周期分の複数のハード乱数の全てを生成したか否かの検出結果が導出されて、1周期分の複数のハード乱数の全てが生成された場合、乱数異常フラグがOFFにされ、1周期分の複数のハード乱数の少なくとも1つが生成されなかった場合、乱数異常フラグがONされる。
S94の後、ウェイトタイマtwの減算計時が開始される(S95)。計時開始後、ウェイトタイマtwが計時中の場合、S91の判定はYesとなり、その後、S96において、tw=0か否か判定され、tw=0でない場合(S96;No)、リターンする。
一方、S96の判定がYes、つまりtw=0の場合、乱数異常検出部41aによる乱数異常検出処理が完了していることになる。次に、乱数異常フラグが読み込まれ(S97)、リターンする。
図18に示すように、図13のメイン処理におけるS70の乱数異常判定・対処処理では、乱数異常フラグがONか否か判定され(S101)、乱数異常フラグがOFFの場合(S101;No)、メイン処理が継続となり(S102)、リターンする。つまり、メイン処理のS70以降の処理が実行される。
一方、乱数異常フラグがONの場合(S101;Yes)、乱数異常コマンドがサブ制御装置25(演出制御基板28)へ出力され(S103)、タイマ割込処理の割込許可の禁止が設定され(S104)、続いて、電源遮断に必要な各種処理として、出力ポートクリア(S105)、チェックサム作成・格納(S106)、バックアップフラグON設定(S107)、RAMアクセス禁止設定(S108)が順次実行された後、ウォッチドッグタイマのリセット処理が繰返し実行される(S109)。この状態で、電源を一旦遮断してから投入すると、ハード乱数生成回路41の異常検出時(メイン処理中断時)に記憶されたバックアップ情報(遊技情報)に基づいて、遊技中断時点から遊技が再開される。尚、S103〜S109を実行するCPUが「第2の乱数異常対処部」に相当する。
このように、メイン処理において電源投入初期期間に乱数異常判定・対処処理が実行され、タイマ割込処理の実行中に乱数異常検出処理が実行され、メイン処理におけるループ処理の実行中に乱数異常検出部41aによる乱数異常検出処理の検出結果を受けて、ハード乱数生成回路41に乱数異常がある場合、乱数異常・判定対処処理が実行されるので、電源投入初期期間経過後の定常状態において、このパチンコ遊技機1で遊技している途中でも、複数回の乱数異常判定・対処処理によりハード乱数生成回路41の異常の有無を確実に検出できると共に、ハード乱数生成回路41の異常に迅速に対処することができる。
即ち、メイン処理におけるループ処理実行中に、乱数異常対処部21dは、ハード乱数生成回路41の異常が検出された場合、乱数異常対処処理として、メイン処理の実行を直ちに中断するので、ハード乱数生成回路41の異常が発生したら直ちに遊技を停止できると共に、その異常に迅速に対処することができる。また、ハード乱数生成回路41に異常が発生した場合に、その他の遊技処理(タイマ割込処理等)を実行させないようにすることができる。
更に、ハード乱数生成回路41の異常が検出された場合に、ウォッチドッグタイマのリセット処理のみを繰返し実行するので、メイン制御装置21のコンピュータが強制的に初期化されることがなく、画像表示器16に初期化表示(カラーバー表示)を実行させないようにすることができる。故に、パチンコ遊技機1の内部の異常に対する遊技者の不信感を抑制することができる。
図19に示すように、メイン制御装置21Aは、そのコンピュータにより構成された、乱数取得部21f(異常検出用乱数取得部)、乱数判定部21b、乱数異常判定部21g、乱数異常対処部21d、乱数異常情報出力部21eを有すると共に、そのコンピュータとは別に、ハード乱数生成回路41を備えている。
乱数取得部21fは、異常検出用乱数取得部の機能を兼用しており、乱数取得条件成立時にハード乱数生成回路41から抽選用のハード乱数を含む複数個の異常検出用のハード乱数を微小時間間隔で連続的に取得する。複数個の異常検出用のハード乱数のうち1個のハード乱数は、抽選用のハード乱数として兼用される。第1又は第2始動口10又は11aへの遊技球の入賞毎に、第1又は第2保留数が4未満の場合に、乱数取得条件が成立する。
乱数異常判定部21gは、前述のハード乱数異常検出部41aによる検出結果に基づく乱数異常の判定と、乱数取得部21fが取得した異常検出用のハード乱数に基づく乱数異常を判定する機能を兼用する。乱数異常判定部21gは、乱数取得部21fが取得した複数個の異常検出用のハード乱数のうち少なくとも2個のハード乱数の値が一致するか否か判定する。この乱数取得及び異常判定は、乱数取得条件が成立する毎に実行されるため、複数個の異常検出用のハード乱数の取得及び異常判定を遊技中に何度も行って、ハード乱数生成回路41で1周期分の複数のハード乱数の全てが正常に更新されたか否かの判定の信頼性を高めることができる。
乱数異常対処部21dは、メイン処理における電源投入初期期間に乱数異常判定部21cの判定結果に基づいて乱数異常対処処理を実行し、更に、乱数異常判定部21cの判定結果に基づいて、ループ処理実行中に乱数異常対処処理を実行する。
メイン制御装置21Aは、前述のメイン処理における電源投入初期期間に乱数異常判定・対処処理を実行すると共に、タイマ割込処理における始動SW処理で実行された乱数異常検出処理の検出結果に基づいて、メイン処理におけるループ処理実行中に乱数異常判定・対処処理を実行する。
図20に示すように、図10のタイマ割込処理におけるS42の始動口SW処理では、第1始動口SW10aがオン、つまり、第1始動口10への遊技球の入賞が検出された場合(S111;Yes)、第1保留数U1が4未満の場合(S112;Yes)、第1保留数U1がU1+1に加算され(S113)、ハード乱数生成回路41から、複数個(3個)の第1ハード乱数A,B,Cが微小時間間隔で連続的に取得される(S114〜S116)。
図21に示すように、ハード乱数生成回路41においては、1〜65535の範囲で微小時間毎にハード乱数が順次更新され、これら複数個(65535個)のハード乱数の全てが更新される1周期分の更新時間T1は、4369.1μsである。乱数取得部21aが複数個のハード乱数を連続的に取得する際の各ハード乱数取得間の時間T2は、15.6μsであり、前記の1周期分のハード乱数の更新時間T1よりも短くなるように構成されている(T1>T2)。
S114〜S116において、3個の第1ハード乱数A,B,Cを連続的に取得する時間は、46.8μs(15.6μs(T2)×3個)であり、ハード乱数生成回路41における1周期分のハード乱数の更新時間T1(4369.1μs)よりも短くなるように構成されており(T1>T2×N個)、ハード乱数生成回路41が正常である場合、ハード乱数の1周期分の更新時間T1内で取得される3個のハード乱数A,B,Cの値は異なる。
複数個の第1ハード乱数が取得・格納された後、乱数異常検出処理が実行される(S117)。図22に示すように、乱数異常検出処理では、先ず、取得・格納された複数個(3個)の第1ハード乱数A,B,Cの値が読み込まれる(S131)。ここで、複数個(3個)の第1ハード乱数A,B,Cのうち、最初に取得・格納された第1ハード乱数Aが、抽選用ハード乱数として使用され、全ての第1ハード乱数A,B,Cが、異常検出用のハード乱数として使用される。
次に、S132において、3個の異常検出用の第1ハード乱数A,B,Cの少なくとも2個の第1ハード乱数の値が一致するか否か判定され(S132)、S132の判定がYesの場合、乱数異常フラグがONされる(S134)。一方、S132の判定がNoの場合、乱数異常フラグがOFFにされる(S133)。S133又はS134が実行された後、乱数異常検出処理を終了して、リターンする。
図20の始動口SW処理において、S117の乱数異常検出処理の後、第1保留数増加コマンドがセットされる(S118)。次に、第2始動口SW11cがオンでない場合、つまり、第2始動口11aへの遊技球の入賞が検出されない場合(S119;No)、又は第2保留数U2が4未満でない場合(S120;No)、始動口SW処理を終了してリターンする。その後、タイマ割込処理における乱数異常検出処理に基づいて、図12のメイン処理において、図18に示すS70の第1ハード乱数異常判定・対処処理が実行される。
他方、始動口SW処理において、S111で第1始動口10aへの遊技球の入賞が検出されない場合(S111;No)、又は、第1保留数U1が4未満でない場合(S112;No)、S119に移行して、第2始動口11aへの遊技球の入賞が検出された場合(S119;Yes)、第2保留数U2が4未満の場合(S120;Yes)、第2保留数U2がU2+1に加算され(S121)、ハード乱数生成回路41から、複数個(3個)の第2ハード乱数A,B,Cが微小時間間隔で連続的に取得される(S122〜S124)。ここで、複数個(3個)の第2ハード乱数のうち、最初に取得・格納された第2ハード乱数Aが抽選用ハード乱数として使用され、全ての第2ハード乱数A,B,Cが異常検出用のハード乱数として使用される。
次に、異常検出用の第2ハード乱数A,B,Cについて、S117と同様の乱数異常検出処理が実行された後(S125)、第2保留数増加コマンドがセットされ(S126)、始動口SW処理を終了して、リターンする。その後、タイマ割込処理における乱数異常検出処理に基づいて、図13のメイン処理において、図18に示すS70の第2ハード乱数異常判定・対処処理が実行される。
このように、メイン処理において電源投入初期期間に乱数異常判定・対処処理が実行され、更に、タイマ割込処理における始動口SW処理で実行される乱数異常検出処理の検出結果に基づいて、メイン処理におけるループ処理実行中に乱数異常・判定対処処理が実行されるので、電源投入期間経過後の定常状態において、このパチンコ遊技機1で遊技している途中でも、複数回の乱数異常判定・対処処理によりハード乱数生成回路41の異常を確実に検出できると共に、ハード乱数生成回路41の異常に迅速に対処することができる。
更に、ハード乱数生成回路41の異常が検出された場合に、ウォッチドッグタイマのリセット処理のみを繰返し実行するので、メイン制御装置21のコンピュータが強制的に初期化されることがなく、画像表示器16に初期化表示(カラーバー表示)を実行させないようにすることができる。故に、パチンコ遊技機1の内部の異常に対する遊技者の不信感を抑制することができる。
尚、前記実施例を次のように変更可能である。
(1)図7、図13のメイン処理において、S1の乱数異常判定・対処処理は、メイン処理の開始直後(電源投入直後)に実行されるが、電源投入初期期間におけるS10のCTC周期設定よりも前のステップであれば、どのステップの後に実行されるようにしてもよい。
(2)実施例4のタイマ割込処理における始動口SW処理において、異常検出用の第1又は第2ハード乱数を2個、又は4個以上280個未満取得して、乱数異常検出処理を実行してもよい。
(3)その他、本発明の趣旨を逸脱しない範囲において種々の変更を付加して実施可能である。そして、本発明は、種々のパチンコ遊技機に適用できる他、パチンコ遊技機以外のスロットマシンや、その他の種々の遊技機への適用が可能である。