JP2012170755A - 遊技機 - Google Patents

遊技機 Download PDF

Info

Publication number
JP2012170755A
JP2012170755A JP2011037896A JP2011037896A JP2012170755A JP 2012170755 A JP2012170755 A JP 2012170755A JP 2011037896 A JP2011037896 A JP 2011037896A JP 2011037896 A JP2011037896 A JP 2011037896A JP 2012170755 A JP2012170755 A JP 2012170755A
Authority
JP
Japan
Prior art keywords
random number
value
data
setting
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011037896A
Other languages
English (en)
Other versions
JP5833826B2 (ja
Inventor
Toshio Ogura
敏男 小倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sankyo Co Ltd
Original Assignee
Sankyo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sankyo Co Ltd filed Critical Sankyo Co Ltd
Priority to JP2011037896A priority Critical patent/JP5833826B2/ja
Publication of JP2012170755A publication Critical patent/JP2012170755A/ja
Application granted granted Critical
Publication of JP5833826B2 publication Critical patent/JP5833826B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】使用する予定のない割込要因が発生した場合に、プログラムの格納容量を圧迫することなく異常時制御を行うことができる遊技機を提供すること。
【解決手段】使用が予定されていない割込要因に対応する割込ベクタテーブル上の領域に、起動処理(メイン)におけるユーザモード(Sa2のステップ)の開始アドレス、すなわちゲーム制御用のユーザプログラムの先頭アドレスを設定することで、使用が予定されていない割込要因が発生した場合に、電断処理を経ずにユーザモードの先頭にジャンプさせ、その後の起動処理(メイン)において、RAM異常と判定させて、RAM異常エラーに制御させる。
【選択図】図61

Description

本発明は、弾球遊技機やスロットマシンなどの遊技機に関する。
この種の遊技機では、プログラムに従って遊技の制御を行うCPUなどからなる遊技制御手段を備え、さらに予め定められた割込要因(例えば、決められたクロック数などの一定時間間隔で発生する割込要因、外部の割込端子からの入力による割込要因など)の発生により割込処理を行う割込機能を備えるものが一般的である。
これら割込機能を有する遊技制御手段では、複数種類の割込要因に対応してそれぞれ異なる割込処理を行わせることが可能なものもあるが、必ずしも全ての種類の割込要因が使用されるとは限らず、割込要因が未使用状態に設定されることもある。
これら未使用の割込要因は、本来であれば発生することがないものであるが、ノイズなどによって、割込要因の発生してしまう可能性があり、このような場合には、RAMなどのデータが破壊されている可能性があり、遊技を続行すると不具合が生じる可能性があるため、使用が予定されていない割込要因が発生した場合には、専用の割込処理を実行させることで、遊技の進行を不能動化するようにした遊技機が提案されている(例えば、特許文献1参照)。
特開2008−23224号公報
特許文献1に記載の遊技機では、使用が予定されていない割込要因(NMI)が発生した場合に、異常ノイズフラグをセットした後、ループ処理に移行するNMI処理を実行し、リセットがかかるようにし、リセットに伴う起動時の処理において異常ノイズフラグが設定されているか確認し、異常ノイズフラグが設定されている場合には、クリアスイッチが操作されて制御データがクリアされるまで遊技を不能動化するようになっている。このように特許文献1に記載の遊技機では、使用が予定されていない割込要因が発生した場合に専用の割込プログラムを実行させることで、遊技を不能動化するようになっており、本来使用する予定のない割込要因が発生した場合のみ実行される割込プログラムを用いているため、無駄にプログラムの格納容量が圧迫されているという問題があった。
本発明は、このような問題点に着目してなされたものであり、使用する予定のない割込要因が発生した場合に、プログラムの格納容量を圧迫することなく異常時制御を行うことができる遊技機を提供することを目的とする。
上記課題を解決するために、本発明の請求項1に記載の遊技機は、
所定の遊技を行うことが可能な遊技機(スロットマシン)であって、
プログラムに従って遊技の制御を行う遊技制御手段(メイン制御部41)を備え、
前記遊技制御手段は、
電源遮断時に、電断が発生した旨を示す電断データ(破壊診断用データ)を設定する電断データ設定手段と、
電源投入時に、前記電断データ(破壊診断用データ)が設定されていることを条件に正常に復帰可能であると判定する復帰判定手段(パリティチェック及び破壊診断用データの判定)と、
前記復帰判定手段が復帰可能ではないと判定した場合に、異常時制御(RAM異常エラー)を行う異常時制御手段と、
複数種類の割込要因毎に該割込要因に応じて実行する割込処理プログラムのアドレスを格納する割込アドレス格納手段(割込ベクタテーブル)と、
前記割込要因が発生した場合に、前記割込アドレス格納手段(割込ベクタテーブル)において該発生した割込要因の種類に対応して格納されているアドレス(割込ベクタアドレス)のプログラムを実行する割込処理手段と、
を含み、
前記割込アドレス格納手段(割込ベクタテーブル)における前記複数種類の割込要因のうち使用予定のない割込要因に対応する領域に前記電源投入時に実行するプログラムの先頭アドレス(ユーザモードの先頭アドレス)を格納し、
前記使用予定のない割込要因が発生した場合には、前記電源投入時のプログラム(起動処理におけるユーザモード)を実行させることにより、前記復帰判定手段により復帰可能ではないと判定させ、前記異常時制御手段により前記異常時制御を行わせる
ことを特徴としている。
この特徴によれば、割込アドレス格納手段における複数種類の割込要因のうち使用予定のない割込要因に対応する領域に電源投入時に実行するプログラムの先頭アドレスが格納されており、ノイズなどにより使用が予定されていない割込要因が発生した場合に、電源投入時のプログラムが実行されるようになっている。使用が予定されていない割込要因が発生した場合には、電断データが設定されずに電源投入時のプログラムが実行されることとなるため、復帰判定手段により復帰可能ではないと判定され、異常時制御が行われることとなる。このため、使用が予定されていない割込要因が発生した場合に実行される専用の割込プログラムを用いることなく、使用が予定されていない割込要因が発生した場合に異常時制御を行うことができるため、無駄にプログラムの格納容量が圧迫されてしまうことを防止できる。
尚、異常時制御とは、異常が発生した旨を報知する制御や遊技の進行を不能動化させる制御などが該当する。
本発明の手段1に記載の遊技機は、請求項1に記載の遊技機であって、
前記復帰判定手段は、前記電断データ(破壊診断用データ)が設定されている場合でも、遊技の制御を行うためのデータの演算結果が正常ではない場合(RAMパリティが0ではない場合)に、復帰可能ではないと判定し、
前記遊技制御手段は、前記復帰判定手段が復帰可能ではないと判定した場合に、前記遊技の制御を行うためのデータを初期化する初期化手段をさらに含む
ことを特徴としている。
この特徴によれば、電源投入時に電断前の状態に復帰可能か否かを正確に判断できるとともに、復帰可能でない場合、すなわち電断前のデータが破損している場合や、ノイズなどにより使用予定のない割込要因が発生した場合など、データに異常が生じている可能性が高いまま遊技が続行されてしまうことを防止できる。
本発明の手段2に記載の遊技機は、請求項1または手段1に記載の遊技機であって、
前記遊技制御手段は、所定の設定操作手段(設定キースイッチ37、リセット/設定スイッチ38)の操作に基づいて、複数種類の設定値のうちからいずれかの設定値を選択することで遊技者に対する有利度を設定する有利度設定手段を含み、
前記復帰判定手段が復帰可能ではないと判定した場合に、前記有利度設定手段により新たに設定値が設定されたことを条件に遊技が可能な状態とする
ことを特徴としている。
この特徴によれば、復帰可能でない場合、すなわち電断前のデータが破損している場合や、ノイズなどにより使用予定のない割込要因が発生した場合など、データに異常が生じている可能性が高い状態では、有利度設定手段による設定も破損している可能性があり、そのような状態で遊技が続行されてしまうことを防止できる。
本発明の手段3に記載の遊技機は、請求項1、手段1または2に記載の遊技機であって、
所定の信号(スタートスイッチ7のon)が入力されたことを検出する第1の検出手段(ラッチ用フリップフロップ557A)と、
前記所定の信号(スタートスイッチ7のon)が入力されたことを検出する第2の検出手段(スイッチ入力判定処理)と、
数値データを更新する数値データ更新手段(乱数列変更回路555)と、
前記第1の検出手段(ラッチ用フリップフロップ557A)が前記所定の信号(スタートスイッチ7のon)の入力を検出したことに基づいて前記数値データ更新手段(乱数列変更回路555)によって更新された数値データを乱数値として抽出し、第1の数値データ格納領域(乱数値レジスタR1D)に格納する乱数抽出手段(乱数ラッチセレクタ558A)と、
前記第1の数値データ格納領域(乱数値レジスタR1D)に前記乱数抽出手段(乱数ラッチセレクタ558A)により数値データが格納された後、該格納されている数値データが読み出されるまでは、前記乱数抽出手段(乱数ラッチセレクタ558A)により新たな数値データが格納されることがなく、該第1の数値データ格納領域(乱数値レジスタR1D)に格納されている数値データを保持する数値データ保持手段(新たな数値データのラッチの禁止)と、
一定時間(約2.24ms)毎に、前記第1の数値データ格納領域(乱数値レジスタR1D)に数値データが格納されているか否か(乱数ラッチフラグが設定されているか否か)を判定する数値データ格納判定手段と、
前記数値データ格納判定手段が前記第1の数値データ格納領域(乱数値レジスタR1D)に数値データが格納されている(乱数ラッチフラグが設定されている)と判定したときに、前記第1の数値データ格納領域(乱数値レジスタR1D)に格納されている数値データを読み出すことにより、前記数値データ保持手段による数値データの保持を解除するとともに、該読み出した数値データを前記第1の数値データ格納領域(乱数値レジスタR1D)とは異なる第2の数値データ格納領域(乱数値格納ワーク)に格納する数値データ読出手段と、
前記第2の検出手段(スイッチ入力判定処理)が前記所定の信号(スタートスイッチ7のon)の入力を検出したことに基づいて前記第2の数値データ格納領域(乱数値格納ワーク)に格納されている数値データを用いて遊技に関連する決定を行うための処理を行う遊技関連決定処理手段(内部抽選)と、
前記遊技機(スロットマシン1)への電力供給が停止されても、遊技データ(RAM507の格納データ)の少なくとも一部を保持する遊技データ保持手段(バックアップ電源)と、
電断条件(電圧低下信号の検出)が成立したときに前記電断データの設定を含む前記遊技データ保持手段により保持されている遊技データ(RAM507の格納データ)に基づいて復帰可能とするための電断処理(電断処理(メイン))を実行する電断処理実行手段と、
前記電断処理(電断処理(メイン))の実行後、電力供給が停止せずに一定時間継続した場合に起動命令(ユーザリセット)を行う起動命令手段と、
前記起動命令(ユーザリセット)を契機に前記遊技データ保持手段により保持されている遊技データ(RAM507の格納データ)に基づいて前記電断処理前の制御状態に復帰させる制御状態復帰手段と、
前記電断処理(電断処理(メイン))の実行後、電力供給が停止するのを待機している期間において、前記第1の数値データ格納領域(乱数値レジスタR1D)に数値データが格納されているか否かを判定し、前記数値データが格納されていると判定した場合に、該格納されている数値データを読み出すことにより、前記数値データ保持手段による数値データの保持を解除する電断待機時保持解除手段(電断処理後の数値データのダミー読み出し)と、
を備える
ことを特徴としている。
この特徴によれば、一定時間毎に、第1の数値データ格納領域に数値データが格納されているか否か判定され、第1の数値データ格納領域に数値データが格納されている場合には、第1の数値データ格納領域に格納されている数値データが読み出され、数値データ保持手段による数値データの保持が解除されるようになっており、ノイズなどによって第1の数値データ格納領域に数値データが格納され、その数値データが保持されても、その状態が一定時間を超えて継続することがなく、所定の信号の検出に伴い遊技に関連する決定を行うための処理を行うタイミングで抽出された数値データを取得することが可能となる。
また、数値データ格納判定手段が第1の数値データ格納領域に新たな数値データが格納されていると判定し、第1の数値データ格納領域から数値データが読み出される毎に、第2の数値データ格納領域の数値データが第1の数値データ格納領域から読み出された数値データ、すなわち新たに抽出された数値データに更新されるとともに、遊技関連決定処理手段は、第1の数値データ格納領域に格納されている数値データではなく、第2の数値データ格納領域に格納された数値データを用いるので、第1の数値データ格納領域から数値データが読み出された後に、信号線にノイズがのって第1の数値データ格納領域に格納されている数値データが変わってしまっても遊技関連決定処理手段が用いる第2の数値データ格納領域の数値データに影響することがなく、このような場合であっても、所定の信号が検出されたタイミングで抽出した数値データを用いて遊技に関連する決定を行うことができる。
また、瞬停などにより一時的に電圧が低下して電断処理が実行された場合には、一定時間が経過しても電力供給が停止しない場合に起動命令が行われ、もとの状態に復帰するとともに、電力供給の停止を待機している期間において第1の数値データ格納領域に数値データが格納された場合には、その数値データが読み出され、数値データ保持手段による数値データの保持が解除されるようになっており、瞬停など、一時的に電圧が不安定となり、信号線にノイズがのって数値データが第1の数値データ格納領域に格納され、その状態が保持されたままの状態となっても、すぐに読み出されて第1の数値データ格納領域に新たな数値データを格納可能な状態となるため、瞬停などの復帰後、その間にノイズなどによって保持されていた数値データを用いて遊技に関連する決定が行われしまうことがなく、本来の契機とは異なるタイミングで抽出された数値データを用いて遊技に関連する決定が行われてしまうことを防止できる。
本発明の手段4に記載の遊技機は、請求項1、手段1または2に記載の遊技機であって、
所定の信号(スタートスイッチ7のon)が入力されたことを検出する第1の検出手段(ラッチ用フリップフロップ557A)と、
前記所定の信号(スタートスイッチ7のon)が入力されたことを検出する第2の検出手段(スイッチ入力判定処理)と、
数値データを更新する数値データ更新手段(乱数列変更回路555)と、
前記第1の検出手段(ラッチ用フリップフロップ557A)が前記所定の信号(スタートスイッチ7のon)の入力を検出したことに基づいて前記数値データ更新手段(乱数列変更回路555)によって更新された数値データを乱数値として抽出し、第1の数値データ格納領域(乱数値レジスタR1D)に格納する乱数抽出手段(乱数ラッチセレクタ558A)と、
前記第1の数値データ格納領域(乱数値レジスタR1D)に前記乱数抽出手段(乱数ラッチセレクタ558A)により数値データが格納された後、該格納されている数値データが読み出されるまでは、前記乱数抽出手段(乱数ラッチセレクタ558A)により新たな数値データが格納されることがなく、該第1の数値データ格納領域(乱数値レジスタR1D)に格納されている数値データを保持する数値データ保持手段(新たな数値データのラッチの禁止)と、
前記数値データ格納領域(乱数値レジスタR1D)に数値データが格納されたときに割込(乱数ラッチ割込)を発生させる割込発生手段と、
前記割込発生手段が前記割込(乱数ラッチ割込)を発生させたことに応じて、前記数値データ格納領域(乱数値レジスタR1D)に格納されている数値データを読み出すことにより、前記数値データ保持手段による数値データの保持を解除するとともに、該読み出した数値データを前記第1の数値データ格納領域(乱数値レジスタR1D)とは異なる第2の数値データ格納領域(乱数値格納ワーク)に格納する数値データ読出手段(乱数値ラッチ割込処理(変形例))と、
前記第2の検出手段(スイッチ入力判定処理)が前記所定の信号(スタートスイッチ7のon)の入力を検出したことに基づいて前記第2の数値データ格納領域(乱数値格納ワーク)に格納されている数値データを用いて遊技に関連する決定を行うための処理を行う遊技関連決定処理手段(内部抽選)と、
前記遊技機(スロットマシン1)への電力供給が停止されても、遊技データ(RAM507の格納データ)の少なくとも一部を保持する遊技データ保持手段(バックアップ電源)と、
電断条件(電圧低下信号の検出)が成立したときに前記電断データの設定を含む前記遊技データ保持手段により保持されている遊技データ(RAM507の格納データ)に基づいて復帰可能とするための電断処理(電断処理(メイン))を実行する電断処理実行手段と、
前記電断処理(電断処理(メイン))の実行後、電力供給が停止せずに一定時間継続した場合に起動命令(ユーザリセット)を行う起動命令手段と、
前記起動命令(ユーザリセット)を契機に前記遊技データ保持手段により保持されている遊技データ(RAM507の格納データ)に基づいて前記電断処理前の制御状態に復帰させる制御状態復帰手段と、
前記電断処理(電断処理(メイン))の実行後、電力供給が停止するのを待機している期間において、前記第1の数値データ格納領域(乱数値レジスタR1D)に数値データが格納されているか否かを判定し、前記数値データが格納されていると判定した場合に、該格納されている数値データを読み出すことにより、前記数値データ保持手段による数値データの保持を解除する電断待機時保持解除手段(電断処理後の数値データのダミー読み出し)と、
を備える
ことを特徴としている。
この特徴によれば、第1の数値データ格納領域に数値データが格納されると割込が発生し、割込に応じて第1の数値データ格納領域に格納されている数値データが読み出され、数値データ保持手段による数値データの保持が解除されるようになっており、ノイズなどによって第1の数値データ格納領域に数値データが格納されても、割込の発生に応じて直ちに数値データが読み出され、新たな数値データを格納可能な状態となるため、ノイズなどによって数値データが格納されても、所定の信号の検出に伴い遊技に関連する決定を行うための処理を行うタイミングで抽出された数値データを取得することが可能となる。
また、第1の数値データ格納領域に新たな数値データが格納されて割込が発生し、第1の数値データ格納領域から数値データが読み出される毎に、第2の数値データ格納領域の数値データが第1の数値データ格納領域から読み出された数値データ、すなわち新たに抽出された数値データに更新されるとともに、遊技関連決定手段は、第1の数値データ格納領域に格納されている数値データではなく、第2の数値データ格納領域に格納された数値データを用いるので、第1の数値データ格納領域から数値データが読み出された後に、信号線にノイズがのって数値データが変わってしまっても遊技関連決定手段が用いる第2の数値データ格納領域の数値データに影響することがなく、このような場合であっても、所定の信号が検出されたタイミングで抽出した数値データを用いて遊技に関連する決定を行うことができる。
また、瞬停などにより一時的に電圧が低下して電断処理が実行された場合には、一定時間が経過しても電力供給が停止しない場合に起動命令が行われ、もとの状態に復帰するとともに、電力供給の停止を待機している期間において第1の数値データ格納領域に数値データが格納された場合には、その数値データが読み出され、数値データ保持手段による数値データの保持が解除されるようになっており、瞬停など、一時的に電圧が不安定となり、信号線にノイズがのって数値データが第1の数値データ格納領域に格納され、その状態が保持されたままの状態となっても、すぐに読み出されて第1の数値データ格納領域に新たな数値データを格納可能な状態となるため、瞬停などの復帰後、その間にノイズなどによって保持されていた数値データを用いて遊技に関連する決定が行われしまうことがなく、本来の契機とは異なるタイミングで抽出された数値データを用いて遊技に関連する決定が行われてしまうことを防止できる。
尚、手段3、4において前記起動命令手段が、前記電断処理の実行後、電力供給が停止しない場合に起動命令を行うとは、例えば、電断処理の実行後、一定時間が経過しても電力が停止しない場合に起動命令を行うものでも良いし、電断処理の実行後、供給電圧を監視し、供給電圧が一定値以上となった場合に起動命令を行うものでも良い。
また、手段3、4において数値データ保持手段は、前記第1の数値データ格納領域に前記乱数抽出手段により数値データが格納された後、該格納されている数値データが読み出されるまで、前記乱数抽出手段による数値データの新たな抽出を禁止することにより、第1の数値データ格納領域に格納されている数値データを保持するようにしても良いし、前記第1の数値データ格納領域に前記乱数抽出手段により数値データが格納された後、該格納されている数値データが読み出されるまで、前記乱数抽出手段により数値データの抽出が行われても第1の数値データ格納領域への格納を禁止することにより、第1の数値データ格納領域に格納されている数値データを保持するようにしても良い。
また、手段3、4において前記遊技関連決定処理手段が、遊技に関連する決定を行うための処理を行うとは、遊技に関連する決定そのものを行う処理であっても良いし、遊技に関連する決定を行う際の抽選値としての数値データを確定する処理であっても良く、後者の場合であれば、その時点で遊技に関連する決定を行う必要はない。
また、手段3、4において前記第1の検出手段は、前記乱数抽出手段が数値データを抽出する契機となる所定の信号の入力を検出する検出手段であり、前記第2の検出手段は、前記遊技関連決定処理手段が遊技に関連する決定を行うための処理を行う契機となる所定の信号の入力を検出する検出手段であり、これら第1の検出手段、第2の検出手段は、別個に構成されていれば良い。また、第1の検出手段による所定の信号の検出方法と第2の検出手段による所定の信号の検出方法とは同じ方法であっても良いし、異なる方法であっても良い。
本発明の手段5に記載の遊技機は、請求項1、手段1〜4のいずれかに記載の遊技機であって、
前記遊技制御手段(メイン制御部41)から受信した制御情報(コマンド)に基づいて演出の制御を行う演出制御手段(サブ制御部91)を備え、
前記遊技制御手段(メイン制御部41)は、
予め決められた順番で処理を実行する基本処理(ゲーム処理)を行う基本処理手段と、
一定時間間隔毎に前記基本処理に割り込んで処理を実行する定期割込処理(タイマ割込処理(メイン))を行う定期割込処理手段と、
前記制御情報(コマンド)を格納可能な制御情報格納手段(送信データレジスタ561)と、
前記基本処理(ゲーム処理)において、遊技の進行に応じて複数個で意味を成す第1の制御情報(第1のコマンド)を生成し、前記制御情報格納手段(送信データレジスタ561)に1個(1バイト)づつ送信順に格納する第1の制御情報生成手段と、
前記定期割込処理(タイマ割込処理(メイン))において、遊技の進行とは関係なく生じる事象に応じて第2の制御情報(第2のコマンド)を生成し、前記制御情報格納手段(送信データレジスタ561)に格納する第2の制御情報生成手段と、
前記制御情報格納手段(送信データレジスタ561)に格納された制御情報(コマンド)を該制御情報が格納された順番で、前記基本処理(ゲーム処理)及び前記定期割込処理(タイマ割込処理(メイン))を停止させることなく並行して前記演出制御手段(サブ制御部91)に対して送信する制御情報送信手段(シリアル通信回路511)と、
前記定期割込処理(タイマ割込処理(メイン))において、該定期割込処理の開始後、前記制御情報格納手段(送信データレジスタ561)に格納された一の制御情報(コマンド)の送信に要する時間よりも短い時間が経過するよりも前に、前記制御情報格納手段(送信データレジスタ561)に未送信の制御情報(コマンド)が格納されているか、及び前記制御情報送信手段(シリアル通信回路511)が前記制御情報の送信中であるか、を判定する送信状況判定手段と、
前記送信状況判定手段により前記制御情報格納手段(送信データレジスタ561)に未送信の制御情報(コマンド)が格納されている旨、または前記制御情報送信手段(シリアル通信回路511)が前記制御情報(送信中)の送信中である旨(送信完了フラグが0の場合)の少なくとも一方が判定された場合に、該定期割込処理(タイマ割込処理(メイン))の実行中において前記第2の制御情報生成手段による前記第2の制御情報(第2のコマンド)の前記制御情報格納手段(送信データレジスタ561)への格納を禁止する制御情報格納禁止手段と、
を含む
ことを特徴としている。
この特徴によれば、定期割込処理において制御情報格納手段に未送信の制御情報が格納されているか、制御情報の送信中であると判定された場合には、当該定期割込処理において第2の制御情報を制御情報格納手段に格納されることが禁止されるので、複数個で意味を成す第1の制御情報の全てが制御情報格納手段に格納される前に、第2の制御情報が格納され、これら複数個で意味を成す第1の制御情報の間に第2の制御情報が送信されてしまうことがなくなるので、演出制御手段側で第1の制御情報から遊技制御手段における遊技の進行状況を正確に特定することができる。
また、複数個で意味を成す第1の制御情報のうち最後の制御情報以外の制御情報が格納された後、次の制御情報が格納される前に定期割込処理が実行された場合には、該定期割込処理において実際に第2の制御情報を格納する直前では、既に格納済みの第1の制御情報の送信が完了している可能性もあるが、定期割込処理の開始後、制御情報格納手段に格納された一の制御情報の送信に要する時間よりも短い時間が経過するよりも前に送信状況判定手段による判定が行われるので、第1の制御情報が、制御情報格納手段に格納されているか、或いは第1の制御情報の送信中であるか、を確実に特定することが可能となるので、複数個で意味を成す第1の制御情報の間に第2の制御情報が送信されてしまうことを確実に防止できる。
本発明の手段6に記載の遊技機は、請求項1、手段1〜4のいずれかに記載の遊技機であって、
前記遊技制御手段(メイン制御部41)から受信した制御情報(コマンド)に基づいて演出の制御を行う演出制御手段(サブ制御部91)を備え、
前記遊技制御手段(メイン制御部41)は、
予め決められた順番で処理を実行する基本処理(ゲーム処理)を行う基本処理手段と、
一定時間間隔毎に前記基本処理に割り込んで処理を実行する定期割込処理(タイマ割込処理(メイン))を行う定期割込処理手段と、
前記制御情報(コマンド)を格納可能な制御情報格納手段(送信データレジスタ561)と、
前記基本処理(ゲーム処理)において、遊技の進行に応じて複数個で意味を成す第1の制御情報(第1のコマンド)を生成し、前記制御情報格納手段(送信データレジスタ561)に1個(1バイト)づつ送信順に格納する第1の制御情報生成手段と、
前記定期割込処理(タイマ割込処理(メイン))において、遊技の進行とは関係なく生じる事象に応じて第2の制御情報(第2のコマンド)を生成し、前記制御情報格納手段(送信データレジスタ561)に格納する第2の制御情報生成手段と、
前記制御情報格納手段(送信データレジスタ561)に格納された制御情報(コマンド)を該制御情報が格納された順番で、前記基本処理(ゲーム処理)及び前記定期割込処理(タイマ割込処理(メイン))を停止させることなく並行して前記演出制御手段(サブ制御部91)に対して送信する制御情報送信手段(シリアル通信回路511)と、
前記第1の制御情報生成手段が、前記第1の制御情報(第1のコマンド)を構成する複数個の制御情報(2バイトのコマンド)の前記制御情報格納手段(送信データレジスタ561)への格納を開始し、該複数個の制御情報(2バイトのコマンド)の格納が完了するまでの期間において前記定期割込処理(タイマ割込処理(メイン))の実行を禁止する定期割込処理禁止手段と、
を含む
ことを特徴としている。
この特徴によれば、第1の制御情報を構成する複数個の制御情報の制御情報格納手段への格納を開始し、該複数個の制御情報の格納が完了するまでの期間においては、第2の制御情報が制御情報格納手段に格納される可能性のある定期割込処理の実行が禁止されるので、複数個で意味を成す第1の制御情報の全てが制御情報格納手段に格納される前に、第2の制御情報が格納され、これら複数個で意味を成す第1の制御情報の間に第2の制御情報が送信されてしまうことがなくなるので、演出制御手段側で第1の制御情報から遊技制御手段における遊技の進行状況を正確に特定することができる。
本発明の手段7に記載の遊技機は、請求項1、手段1〜6のいずれかに記載の遊技機であって、
前記遊技制御手段は、
所定の設定操作手段(設定キースイッチ37、リセット/設定スイッチ38)の操作に基づいて、複数種類の設定値のうちからいずれかの設定値を選択することで遊技者に対する有利度を設定する有利度設定手段と、
前記遊技機毎に予め個別に付与された固有情報(メーカーコード、チップ個別ナンバー、型式名コード)を記憶する固有情報記憶手段(ROM506、チップ個別ナンバーレジスタ573)と、
前記有利度設定手段により前記設定値が新たに設定される場合に、前記固有情報(メーカーコード、チップ個別ナンバー、型式名コード)を前記遊技機の外部に設けられている外部装置(ホールコンピュータ)に出力する情報出力手段と、
を含む
ことを特徴としている。
この特徴によれば、固有情報記憶手段に記憶されている固有情報が外部装置へと出力されるので、制御基板などの交換などによる不正行為を迅速に発見することができ、不正行為を効果的に防止することができる。また、有利度設定手段による設定値の選択は、営業時間外に行われるのが一般的であり、有利度設定手段により設定値が新たに選択されたことを契機に固有情報が外部装置へ出力されるので、固有情報から異常を検知した場合に、遊技者に迷惑をかけることなく直ちに制御基板を確認することが可能となる。
本発明の手段8に記載の遊技機は、請求項1、手段1〜6のいずれかに記載の遊技機であって、
前記遊技制御手段は、
所定の設定操作手段(起動時の設定キースイッチ37、リセット/設定スイッチ38)の操作に基づいて、複数種類の設定値のうちからいずれかの設定値を選択することで遊技者に対する有利度を設定する有利度設定手段と、
所定の設定確認手段(起動時以外の設定キースイッチ37)の操作に基づいて、前記有利度設定手段により設定されている前記設定値を確認可能に出力する設定値確認手段と、
前記遊技機毎に予め個別に付与された固有情報(メーカーコード、チップ個別ナンバー、型式名コード)を記憶する固有情報記憶手段(ROM506、チップ個別ナンバーレジスタ573)と、
前記設定値確認手段により前記設定値が確認可能に出力される場合に、前記固有情報(メーカーコード、チップ個別ナンバー、型式名コード)を前記遊技機の外部に設けられている外部装置(ホールコンピュータ)に出力する情報出力手段と、
を含む
ことを特徴としている。
この特徴によれば、固有情報記憶手段に記憶されている固有情報が外部装置へと出力されるので、制御基板などの交換などによる不正行為を迅速に発見することができ、不正行為を効果的に防止することができる。また、有利度設定手段による設定値の選択は、営業時間外に行われるのが一般的であるが、有利度設定手段により設定された設定値の確認は、常に行うことが可能であり、有利度設定手段により設定された設定値の確認を契機に固有情報が外部装置へ出力されるので、遊技機が不自然な挙動を示した場合に、設定値の確認を行うことでいつでも固有情報を外部装置にて確認することが可能となる。
本発明の手段9に記載の遊技機は、請求項1、手段1〜6のいずれかに記載の遊技機であって、
前記遊技制御手段は、
前記遊技機毎に予め個別に付与された固有情報(メーカーコード、チップ個別ナンバー、型式名コード)を記憶する固有情報記憶手段(ROM506、チップ個別ナンバーレジスタ573)と、
遊技者にとって有利な特別遊技状態(BB)に制御する特別遊技状態制御手段と、
前記特別遊技状態(BB)以外の一般遊技状態のうち通常一般遊技状態及び該通常一般遊技状態よりも遊技者にとって有利な有利一般遊技状態を含む複数種類の一般遊技状態に制御する一般遊技状態制御手段と、
前記有利一般遊技状態へ移行した場合に、前記固有情報(メーカーコード、チップ個別ナンバー、型式名コード)を前記遊技機の外部に設けられている外部装置(ホールコンピュータ)に出力する情報出力手段と、
を含む
ことを特徴としている。
この特徴によれば、固有情報記憶手段に記憶されている固有情報が外部装置へと出力されるので、制御基板などの交換などによる不正行為を迅速に発見することができ、不正行為を効果的に防止することができる。また、複数の一般遊技状態のうち通常一般遊技状態よりも遊技者にとって有利な有利一般遊技状態へ移行したことを契機に固有情報が外部装置へ出力されるので、外部装置側で遊技者の有利度が高い状態へ移行した場合に固有情報を確認することができる。
本発明の手段10に記載の遊技機は、請求項1、手段1〜6のいずれかに記載の遊技機であって、
前記遊技制御手段は、
前記遊技機毎に予め個別に付与された固有情報(メーカーコード、チップ個別ナンバー、型式名コード)を記憶する固有情報記憶手段(ROM506、チップ個別ナンバーレジスタ573)と、
前記遊技機の異常を検出する異常検出手段と、
前記異常検出手段が異常を検出した場合に、前記固有情報(メーカーコード、チップ個別ナンバー、型式名コード)を前記遊技機の外部に設けられている外部装置(ホールコンピュータ)に出力する情報出力手段と、
を含む
ことを特徴としている。
この特徴によれば、固有情報記憶手段に記憶されている固有情報が外部装置へと出力されるので、制御基板などの交換などによる不正行為を迅速に発見することができ、不正行為を効果的に防止することができる。また、制御基板などの交換が行われると、正規のものではないため、何らかのエラーが生じやすくなるが、異常を検出したことを契機に固有情報が外部装置へ出力されるので、外部装置側で制御基板などの交換が行われた可能性が高い場合に固有情報を確認することができる。
本発明の手段11に記載の遊技機は、請求項1、手段1〜6のいずれかに記載の遊技機であって、
前記遊技制御手段は、
前記遊技機毎に予め個別に付与された固有情報(メーカーコード、チップ個別ナンバー、型式名コード)を記憶する固有情報記憶手段(ROM506、チップ個別ナンバーレジスタ573)と、
遊技を開始させた場合に、前記固有情報(メーカーコード、チップ個別ナンバー、型式名コード)を前記遊技機の外部に設けられている外部装置(ホールコンピュータ)に出力する情報出力手段と、
を含む
ことを特徴としている。
この特徴によれば、固有情報記憶手段に記憶されている固有情報が外部装置へと出力されるので、制御基板などの交換などによる不正行為を迅速に発見することができ、不正行為を効果的に防止することができる。また、遊技を開始させたことを契機に固有情報が外部装置へ出力されるので、固有情報の外部装置への送信を避けて制御基板などの交換を行うことが困難となる。
本発明が適用された遊技機の一例であるスロットマシンの正面図である。 スロットマシンの内部構造図である。 リールの図柄配列を示す図である。 スロットマシンの構成を示すブロック図である。 メイン制御部の構成を示すブロック図である。 メイン制御部におけるアドレスマップの一例を示す図である。 プログラム管理エリア及び内蔵レジスタの主要部分を例示する図である。 ヘッダ及び機能設定における設定内容の一例を示す図である。 第1乱数初期設定、第2乱数初期設定及び割込み初期設定における設定内容の一例を示す図である。 セキュリティ時間設定における設定内容の一例を示す図である。 内部情報レジスタの構成例等を示す図である。 乱数回路の構成例を示すブロック図である。 乱数列変更レジスタの構成例等を示す図である。 乱数列変更回路による乱数更新規則の変更動作を示す説明図である。 乱数列変更回路による乱数更新規則の変更動作を示す説明図である。 乱数値取込レジスタの構成例等を示す図である。 乱数ラッチ選択レジスタの構成例等を示す図である。 乱数値レジスタの構成例を示す図である。 乱数ラッチフラグレジスタの構成例等を示す図である。 乱数割込み制御レジスタの構成例等を示す図である。 入力ポートレジスタの構成例等を示す図である。 シリアル通信回路の構成例を示すブロック図である。 シリアル通信回路によるコマンドの送信状況を示す図である。 外部出力基板の構成例及び外部出力信号の一例を示すブロック図である。 メイン制御部が起動時に実行する起動処理(メイン)の制御内容を示すフローチャートである。 メイン制御部が実行するセキュリティチェック処理の制御内容を示すフローチャートである。 メイン制御部が実行する乱数回路設定処理の制御内容を示すフローチャートである。 メイン制御部が実行する乱数回路異常検査処理の制御内容を示すフローチャートである。 メイン制御部が実行するコマンド格納処理の制御内容を示すフローチャートである。 メイン制御部がエラー発生時に実行するエラー処理の制御内容を示すフローチャートである。 メイン制御部が実行する設定変更処理の制御内容を示すフローチャートである。 メイン制御部が設定変更処理後に実行するゲーム処理の制御内容を示すフローチャートである。 メイン制御部が実行するBET処理の制御内容を示すフローチャートである。 メイン制御部が実行するBET処理の制御内容を示すフローチャートである。 メイン制御部が実行するBET処理の制御内容を示すフローチャートである。 メイン制御部が実行するリール回転処理の制御内容を示すフローチャートである。 メイン制御部が実行するリール回転処理の制御内容を示すフローチャートである。 メイン制御部が一定間隔毎に実行するタイマ割込処理(メイン)の制御内容を示すフローチャートである。 メイン制御部が一定間隔毎に実行するタイマ割込処理(メイン)の制御内容を示すフローチャートである。 メイン制御部がタイマ割込処理(メイン)において実行するスイッチ入力判定処理の制御内容を示すフローチャートである。 メイン制御部がタイマ割込処理(メイン)において実行する乱数値読出処理の制御内容を示すフローチャートである。 メイン制御部がタイマ割込処理(メイン)において実行するドア監視処理の制御内容を示すフローチャートである。 メイン制御部がタイマ割込処理(メイン)において実行するコマンド送信処理の制御内容を示すフローチャートである。 メイン制御部がタイマ割込処理(メイン)において電断を検出したことに応じて実行する電断処理(メイン)の制御内容を示すフローチャートである。 乱数回路における動作を説明するためのタイミングチャートである。 スタートスイッチの操作と乱数値レジスタの関連を示すタイミングチャートである。 スタートスイッチの操作と乱数値レジスタの関連を示すタイミングチャートである。 変形例において乱数回路にて数値データがラッチされた際にメイン制御部が実行する乱数値ラッチ割込処理の制御内容を示すフローチャートである。 変形例におけるスタートスイッチの操作と乱数値レジスタの関連を示すタイミングチャートである。 スタートスイッチの検出状況を示すタイミングチャートである。 シリアル通信回路のステータスレジスタの値と、ドアコマンド、操作検出コマンドの転送許可/禁止と、の関係を示すタイミングチャートである。 コマンド格納処理のフローチャート及びコマンドの格納に伴うタイマ割込処理(メイン)の許可/不許可との関係を示すタイミングチャートである。 固有情報記憶回路の構成を示す図である。 固有情報の送信状況を示す図である。 固有情報の送信状況を示す図である。 外部機器などを含めた遊技情報処理システムの構成例を示す図である。 ホールコンピュータにおける固有情報の管理状況を示す図である。 固有情報の出力形態の変形例を示す図である。 固有情報の出力形態の変形例を示す図である。 設定内容に応じて自動設定されるベクタアドレスを示す図及び設定内容に応じた割込要因の優先度の組み合わせを示す図である。 割込ベクタテーブルの構成を示す図である。 割込ベクタテーブル(変形例)の構成を示す図である。 入賞として定められた役の構成を示す図である。 遊技状態別の内部抽選の対象役を示す図である。 リプレイGRを構成する再遊技役の組み合わせ、小役GRを構成する小役の組み合わせ、リプレイGR、小役GRの当選時において操作態様に応じて入賞ラインに揃う図柄組み合わせを示す図である。 RTの移行状況を示す図である。 RTの概要を示す図である。 ナビ権利の概要を示す図である。 ナビ権利の当選確率を示す図である。
本発明の実施例を以下に説明する。
本発明が適用された遊技機の一例であるスロットマシンの実施例を図面を用いて説明すると、本実施例のスロットマシン1は、前面が開口する筐体1aと、この筐体1aの側端に回動自在に枢支された前面扉1bと、から構成されている。
本実施例のスロットマシン1の筐体1aの内部には、図2に示すように、外周に複数種の図柄が配列されたリール2L、2C、2R(以下、左リール、中リール、右リール)が水平方向に並設されており、図1に示すように、これらリール2L、2C、2Rに配列された図柄のうち連続する3つの図柄が前面扉1bに設けられた透視窓3から見えるように配置されている。
リール2L、2C、2Rの外周部には、図3に示すように、それぞれ「黒7」、「白7」、「BAR」、「リプレイ」、「ベル」、「スイカ」、「チェリー」、「オレンジ」、「ブドウ」、「プラム」といった互いに識別可能な複数種類の図柄が所定の順序で、それぞれ21個ずつ描かれている。リール2L、2C、2Rの外周部に描かれた図柄は、透視窓3において各々上中下三段に表示される。
各リール2L、2C、2Rは、各々対応して設けられリールモータ32L、32C、32R(図4参照)によって回転させることで、各リール2L、2C、2Rの図柄が透視窓3に連続的に変化しつつ表示されるとともに、各リール2L、2C、2Rの回転を停止させることで、透視窓3に3つの連続する図柄が表示結果として導出表示されるようになっている。
リール2L、2C、2Rの内側には、リール2L、2C、2Rそれぞれに対して、基準位置を検出するリールセンサ33L、33C、33Rと、リール2L、2C、2Rを背面から照射するリールLED55と、が設けられている。また、リールLED55は、リール2L、2C、2Rの連続する3つの図柄に対応する12のLEDからなり、各図柄をそれぞれ独立して照射可能とされている。
前面扉1bの各リール2L、2C、2Rの手前側(遊技者側)の位置には、液晶表示器51(図1参照)の表示領域51aが配置されている。液晶表示器51は、液晶素子に対して電圧が印加されていない状態で、透過性を有するノーマリーホワイトタイプの液晶パネルを有しており、表示領域51aの透視窓3に対応する透過領域51b及び透視窓3を介して遊技者側から各リール2L、2C、2Rが視認できるようになっている。また、表示領域51aの透過領域51bを除く領域の裏面には、背後から表示領域51aを照射するバックライト(図示略)が設けられているとともに、さらにその裏面には、内部を隠蔽する隠蔽部材(図示略)が設けられている。
前面扉1bには、メダルを投入可能なメダル投入部4、メダルが払い出されるメダル払出口9、クレジット(遊技者所有の遊技用価値として記憶されているメダル数)を用いてメダル1枚分の賭数を設定する際に操作される1枚BETスイッチ5、クレジットを用いて、その範囲内において遊技状態に応じて定められた規定数の賭数のうち最大の賭数を設定する際に操作されるMAXBETスイッチ6、クレジットとして記憶されているメダル及び賭数の設定に用いたメダルを精算する(クレジット及び賭数の設定に用いた分のメダルを返却させる)際に操作される精算スイッチ10、ゲームを開始する際に操作されるスタートスイッチ7、リール2L、2C、2Rの回転を各々停止する際に操作されるストップスイッチ8L、8C、8R、が遊技者により操作可能にそれぞれ設けられている。
また、前面扉1bには、クレジットとして記憶されているメダル枚数が表示されるクレジット表示器11、後述するBB中のメダルの獲得枚数やエラー発生時にその内容を示すエラーコード等が表示される遊技補助表示器12、入賞の発生により払い出されたメダル枚数が表示されるペイアウト表示器13が設けられている。
また、前面扉1bには、賭数が1設定されている旨を点灯により報知する1BETLED14、賭数が2設定されている旨を点灯により報知する2BETLED15、賭数が3設定されている旨を点灯により報知する3BETLED16、メダルの投入が可能な状態を点灯により報知する投入要求LED17、スタートスイッチ7の操作によるゲームのスタート操作が有効である旨を点灯により報知するスタート有効LED18、ウェイト(前回のゲーム開始から一定期間経過していないためにリールの回転開始を待機している状態)中である旨を点灯により報知するウェイト中LED19、後述するリプレイゲーム中である旨を点灯により報知するリプレイ中LED20が設けられている。
MAXBETスイッチ6の内部には、1枚BETスイッチ5及びMAXBETスイッチ6の操作による賭数の設定操作が有効である旨を点灯により報知するBETスイッチ有効LED21(図4参照)が設けられており、ストップスイッチ8L、8C、8Rの内部には、該当するストップスイッチ8L、8C、8Rによるリールの停止操作が有効である旨を点灯により報知する左、中、右停止有効LED22L、22C、22R(図4参照)がそれぞれ設けられている。
前面扉1bの内側には、所定のキー操作により後述するエラー状態及び後述する打止状態を解除するためのリセット操作を検出するリセットスイッチ23、後述する設定値の変更中や設定値の確認中にその時点の設定値が表示される設定値表示器24、メダル投入部4から投入されたメダルの流路を、筐体1a内部に設けられた後述のホッパータンク34a(図2参照)側またはメダル払出口9側のいずれか一方に選択的に切り替えるための流路切替ソレノイド30、メダル投入部4から投入され、ホッパータンク34a側に流下したメダルを検出する投入メダルセンサ31を有するメダルセレクタ(図示略)、前面扉1bの開放状態を検出するドア開放検出スイッチ25(図4参照)、後述のBB終了時に打止状態(リセット操作がなされるまでゲームの進行が規制される状態)に制御する打止機能の有効/無効を選択するための打止スイッチ36a、後述のBB終了時に自動精算処理(クレジットとして記憶されているメダルを遊技者の操作によらず精算(返却)する処理)に制御する自動精算機能の有効/無効を選択するための自動精算スイッチ36bが設けられている。
筐体1a内部には、図2に示すように、前述したリール2L、2C、2R、リールモータ32L、32C、32R、各リール2L、2C、2Rのリール基準位置をそれぞれ検出可能なリールセンサ33L、33C、33R(図4参照)からなるリールユニット2、外部出力信号を出力するための外部出力基板1000、メダル投入部4から投入されたメダルを貯留するホッパータンク34a、ホッパータンク34aに貯留されたメダルをメダル払出口9より払い出すためのホッパーモータ34b、ホッパーモータ34bの駆動により払い出されたメダルを検出する払出センサ34cからなるホッパーユニット34、電源ボックス100が設けられている。
ホッパーユニット34の側部には、ホッパータンク34aから溢れたメダルが貯留されるオーバーフロータンク35が設けられている。オーバーフロータンク35の内部には、貯留された所定量のメダルを検出可能な高さに設けられた左右に離間する一対の導電部材からなる満タンセンサ35aが設けられており、導電部材がオーバーフロータンク35内に貯留されたメダルを介して接触することにより導電したときに内部に貯留されたメダル貯留量が所定量以上となったこと、すなわちオーバーフロータンクが満タン状態となったことを検出できるようになっている。
電源ボックス100の前面には、設定変更状態または設定確認状態に切り替えるための設定キースイッチ37、通常時においてはエラー状態や前述の打止状態を解除するためのリセットスイッチとして機能し、設定変更状態においては後述する内部抽選の当選確率(出玉率)の設定値を変更するための設定スイッチとして機能するリセット/設定スイッチ38、電源をon/offする際に操作される電源スイッチ39が設けられている。
本実施例のスロットマシン1においてゲームを行う場合には、まず、メダルをメダル投入部4から投入するか、或いはクレジットを使用して賭数を設定する。クレジットを使用するには1枚BETスイッチ5またはMAXBETスイッチ6を操作すれば良い。遊技状態に応じて定められた規定数の賭数が設定されると、入賞ラインL1〜L4(図1参照)が有効となり、スタートスイッチ7の操作が有効な状態、すなわち、ゲームが開始可能な状態となる。尚、遊技状態に対応する規定数のうち最大数を超えてメダルが投入された場合には、その分はクレジットに加算される。
入賞ラインとは、各リール2L、2C、2Rの透視窓3に表示された図柄の組み合わせが入賞図柄の組み合わせであるかを判定するために設定されるラインである。本実施例では、図1に示すように、リール2Lの上段、リール2Cの中段、リール2Rの下段、すなわち右下がりに並んだ図柄に跨って設定された入賞ラインL1、リール2Lの下段、リール2Cの中段、リール2Rの上段、すなわち右上がりに並んだ図柄に跨って設定された入賞ラインL2、リール2Lの上段、リール2Cの中段、リール2Rの上段、すなわちV字型に並んだ図柄に跨って設定された入賞ラインL3、リール2Lの下段、リール2Cの中段、リール2Rの下段、すなわち山型に並んだ図柄に跨って設定された入賞ラインL4の4種類が入賞ラインとして定められている。
ゲームが開始可能な状態でスタートスイッチ7を操作すると、各リール2L、2C、2Rが回転し、各リール2L、2C、2Rの図柄が連続的に変動する。この状態でいずれかのストップスイッチ8L、8C、8Rを操作すると、対応するリール2L、2C、2Rの回転が停止し、透視窓3に表示結果が導出表示される。
そして全てのリール2L、2C、2Rが停止されることで1ゲームが終了し、有効化され入賞ライン上に予め定められた図柄の組み合わせ(以下、役とも呼ぶ)が各リール2L、2C、2Rの表示結果として停止した場合には入賞が発生し、その入賞に応じて定められた枚数のメダルが遊技者に対して付与され、クレジットに加算される。また、クレジットが上限数(本実施例では50)に達した場合には、メダルが直接メダル払出口9(図1参照)から払い出されるようになっている。尚、有効化され複数の入賞ライン上にメダルの払出を伴う図柄の組み合わせが揃った場合には、有効化され入賞ラインに揃った図柄の組み合わせそれぞれに対して定められた払出枚数を合計し、合計した枚数のメダルが遊技者に対して付与されることとなる。ただし、1ゲームで付与されるメダルの払出枚数には、上限(本実施例では15枚)が定められており、合計した払出枚数が上限を超える場合には、上限枚数のメダルが付与されることとなる。また、有効化され入賞ライン上に、遊技状態の移行を伴う図柄の組み合わせが各リール2L、2C、2Rの表示結果として停止した場合には図柄の組み合わせに応じた遊技状態に移行するようになっている。
図4は、スロットマシン1の構成を示すブロック図である。スロットマシン1には、図4に示すように、遊技制御基板40、演出制御基板90、電源基板101が設けられており、遊技制御基板40によって遊技状態が制御され、演出制御基板90によって遊技状態に応じた演出が制御され、電源基板101によってスロットマシン1を構成する電気部品の駆動電源が生成され、各部に供給される。
電源基板101には、外部からAC100Vの電源が供給されるとともに、このAC100Vの電源からスロットマシン1を構成する電気部品の駆動に必要な直流電圧が生成され、遊技制御基板40及び遊技制御基板40を介して接続された演出制御基板90に供給されるようになっている。また、後述するメイン制御部41からサブ制御部91へのコマンド伝送ラインと、遊技制御基板40から演出制御基板90に対して電源を供給する電源供給ラインと、が一系統のケーブル及びコネクタを介して接続されており、これらケーブルと各基板とを接続するコネクタ同士が全て接続されることで演出制御基板90側の各部が動作可能となり、かつメイン制御部41からのコマンドを受信可能な状態となる。このため、メイン制御部41からコマンドを伝送するコマンド伝送ラインが演出制御基板90に接続されている状態でなければ、演出制御基板90側に電源が供給されず、演出制御基板90側のみが動作してしまうことがない。
また、電源基板101には、前述したホッパーモータ34b、払出センサ34c、満タンセンサ35a、設定キースイッチ37、リセット/設定スイッチ38、電源スイッチ39が接続されている。
遊技制御基板40には、前述した1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R、精算スイッチ10、リセットスイッチ23、投入メダルセンサ31、ドア開放検出スイッチ25、打止スイッチ36a、自動精算スイッチ36b、リールセンサ33L、33C、33Rが接続されているとともに、電源基板101を介して前述した払出センサ34c、満タンセンサ35a、設定キースイッチ37、リセット/設定スイッチ38が接続されており、これら接続されたスイッチ類の検出信号が入力されるようになっている。
また、遊技制御基板40には、前述したクレジット表示器11、遊技補助表示器12、ペイアウト表示器13、1〜3BETLED14〜16、投入要求LED17、スタート有効LED18、ウェイト中LED19、リプレイ中LED20、BETスイッチ有効LED21、左、中、右停止有効LED22L、22C、22R、設定値表示器24、流路切替ソレノイド30、リールモータ32L、32C、32Rが接続されているとともに、電源基板101を介して前述したホッパーモータ34bが接続されており、これら電気部品は、遊技制御基板40に搭載された後述のメイン制御部41の制御に基づいて駆動されるようになっている。
遊技制御基板40には、メイン制御部41、制御用クロック生成回路42、乱数用クロック生成回路43、スイッチ検出回路44、モータ駆動回路45、ソレノイド駆動回路46、LED駆動回路47、電断検出回路48、リセット回路49が搭載されている。
メイン制御部41は、1チップマイクロコンピュータにて構成され、後述するROM506に記憶された制御プログラムを実行して、遊技の進行に関する処理を行うととともに、遊技制御基板40に搭載された制御回路の各部を直接的または間接的に制御する。
制御用クロック生成回路42は、メイン制御部41の外部にて、所定周波数の発振信号となる制御用クロックCCLKを生成する。制御用クロック生成回路42により生成された制御用クロックCCLKは、例えば図5(A)に示すようなメイン制御部41の制御用外部クロック端子EXCを介してクロック回路502に供給される。乱数用クロック生成回路43は、メイン制御部41の外部にて、制御用クロックCCLKの発振周波数とは異なる所定周波数の発振信号となる乱数用クロックRCLKを生成する。乱数用クロック生成回路43により生成された乱数用クロックRCLKは、例えば図5(A)に示すようなメイン制御部41の乱数用外部クロック端子ERCを介して乱数回路509に供給される。一例として、乱数用クロック生成回路43により生成される乱数用クロックRCLKの発振周波数は、制御用クロック生成回路42により生成される制御用クロックCCLKの発振周波数以下となるようにすれば良い。
スイッチ検出回路44は、遊技制御基板40に直接または電源基板101を介して接続されたスイッチ類から入力された検出信号を取り込んでメイン制御部41に伝送する。モータ駆動回路45は、メイン制御部41から出力されたモータ駆動信号をリールモータ32L、32C、32Rに伝送する。ソレノイド駆動回路46は、メイン制御部41から出力されたソレノイド駆動信号を流路切替ソレノイド30に伝送する。LED駆動回路は、メイン制御部41から出力されたLED駆動信号を遊技制御基板40に接続された各種表示器やLEDに伝送する。電断検出回路48は、スロットマシン1に供給される電源電圧を監視し、電圧低下を検出したときに、その旨を示す電圧低下信号をメイン制御部41に対して出力する。リセット回路49は、電源投入時または電源遮断時などの電源が不安定な状態においてメイン制御部41にシステムリセット信号を与える。また、リセット回路49は、制御用クロックCCLKの入力に応じて内蔵カウンタ値を加算することによりCPU505の動作停止時間を計時するウォッチドッグタイマ49a(図5(B)参照)を内蔵し、ウォッチドッグタイマ49aがタイムアップした場合(カウンタ値が閾値を超えた場合)、すなわちメイン制御部41のCPU505の動作が一定時間停止した場合においてメイン制御部41にユーザリセット信号を与える。
図5(A)は、遊技制御基板40に搭載されたメイン制御部41の構成例を示している。図5(A)に示すメイン制御部41は、1チップマイクロコンピュータであり、外部バスインタフェース501と、クロック回路502と、固有情報記憶回路503と、リセット/割込コントローラ504と、CPU505と、ROM506と、RAM507と、CTC(カウンタ/タイマサーキット)508と、乱数回路509と、PIP(パラレルインプットポート)510と、シリアル通信回路511と、アドレスデコード回路512とを備えて構成される。
図6は、メイン制御部41におけるアドレスマップの一例を示している。図6に示すように、アドレス0000H〜アドレス1FFFHの領域は、ROM506に割り当てられ、ユーザプログラムエリアとプログラム管理エリアとを含んでいる。図7(A)は、ROM506におけるプログラム管理エリアの主要部分について、用途や内容の一例を示している。アドレス2000H〜アドレス20FFHの領域は、メイン制御部41の内蔵レジスタに割り当てられる内蔵レジスタエリアである。図7(B)は、内蔵レジスタエリアの主要部分について、用途や内容の一例を示している。アドレス7E00H〜アドレス7FFFHの領域は、RAM507に割り当てられたワークエリアであり、I/Oマップやメモリマップに割り付けることができる。アドレスFDD0H〜アドレスFDFBHの領域は、アドレスデコード回路512に割り当てられるXCSデコードエリアである。
プログラム管理エリアは、CPU505がユーザプログラムを実行するために必要な情報を格納する記憶領域である。図7(A)に示すように、プログラム管理エリアには、ヘッダKHDR、機能設定KFCS、第1乱数初期設定KRS1、第2乱数初期設定KRS2、割込初期設定KIIS、セキュリティ時間設定KSESなどが、含まれている。
プログラム管理エリアに記憶されるヘッダKHDRは、メイン制御部41における内部データの読出設定を示す。図8(A)は、ヘッダKHDRにおける設定データと動作との対応関係を例示している。ここで、メイン制御部41では、ROM読出防止機能と、バス出力マスク機能とを設定可能である。ROM読出防止機能は、メイン制御部41が備えるROM506の記憶データについて、読出動作を許可又は禁止する機能であり、読出禁止に設定された状態では、ROM506の記憶データを読み出すことができない。バス出力マスク機能は、外部バスインタフェース501に接続された外部機器からメイン制御部41の内部データに対する読出要求があった場合に、外部バスインタフェース501におけるアドレスバス出力、データバス出力及び制御信号出力にマスクをかけることにより、外部機器から内部データの読み出しを不能にする機能である。図8(A)に示すように、ヘッダKHDRの設定データに対応して、ROM読出防止機能やバス出力マスク機能の動作組み合わせが異なるように設定される。図8(A)に示す設定データのうち、ROM読出が許可されるとともに、バス出力マスクが有効となる設定データは、バス出力マスク有効データともいう。また、ROM読出が禁止されるとともに、バス出力マスクが有効となる設定データ(全て「00H」)は、ROM読出禁止データともいう。ROM読出が許可されるとともに、バス出力マスクが無効となる設定データは、バス出力マスク無効データともいう。
プログラム管理エリアに記憶される機能設定KFCSは、メイン制御部41におけるウォッチドッグタイマの動作設定や、各種機能兼用端子の使用設定を示す。図8(B)は、機能設定KFCSにおける設定内容の一例を示している。
機能設定KFCSのビット番号[7−5]は、例えばリセット/割込コントローラ504における割込要因として設定可能なウォッチドッグタイマの動作許可/禁止や、許可した場合の周期を示している。本実施例では、外部のウォッチドッグタイマを用いるため、ウォッチドッグタイマを動作禁止に設定している。機能設定KFCSのビット番号[4]は、メイン制御部41における所定の機能兼用端子(第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に設定することにより、演出制御基板90との間でのシリアル通信を可能にする。
機能設定KFCSのビット番号[3]は、メイン制御部41における所定の機能兼用端子(第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に設定しているが、第1チャンネル受信は未使用とされている。
機能設定KFCSのビット番号[2]は、メイン制御部41における所定の機能兼用端子(第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に設定しているが、第1チャンネル受信は未使用とされている。
機能設定KFCSのビット番号[1]は、メイン制御部41における所定の機能兼用端子(第4兼用端子)を、CPU505等に接続される外部ノンマスカブル割込端子XNMIとするか、PIP510が使用する入力ポートP4とするかを示すNMI接続設定である。図8(B)に示す例において、機能設定KFCSのビット番号[1]におけるビット値が“0”であれば、第4兼用端子がCPU505等に接続される外部ノンマスカブル割込端子XNMIの設定となる(CPU接続)。これに対して、そのビット値が“1”であれば、第4兼用端子がPIP510で使用される入力ポートP4の設定となる(CPU非接続)。本実施例では、機能設定KFCSのビット番号[1]を“1”として、第4兼用端子をPIP510で使用される入力ポートP4に設定しているが、入力ポートP4は未使用とされている。
機能設定KFCSのビット番号[0]は、メイン制御部41における所定の機能兼用端子(第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(図12参照)を、内部システムクロック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”であるときには、メイン制御部41毎に付与された固有の識別情報であるIDナンバーに基づく値がスタート値に設定される。また、図9(B)に示す例では、第2乱数初期設定KRS2のビット番号[0]におけるビット値が“0”であれば、システムリセット毎にスタート値を変更しない設定となる一方、“1”であるときには、システムリセット毎にスタート値を変更する設定となる。
本実施例では、第2乱数初期設定KRS2のビット番号[1]におけるビット値が“1”に設定され、第2乱数初期設定KRS2のビット番号[0]におけるビット値が“1”に設定され、システムリセット毎に、IDナンバーに基づく値がスタート値に設定されるようになっている。
尚、スタート値をIDナンバーに基づく値に設定する場合には、IDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算の一部又は全部を実行して、算出された値をスタート値に用いるようにすれば良い。また、スタート値をシステムリセット毎に変更する場合には、例えばメイン制御部41に内蔵されたフリーランカウンタのカウント値を、システムリセットの発生時にメイン制御部41が備える所定の内蔵レジスタ(乱数スタート値用レジスタ)に格納する。そして、初期設定時に乱数スタート値用レジスタの格納値をそのまま用いること、或いは、その格納値を所定の演算関数(例えばハッシュ関数)に代入して得られた値を用いることなどにより、スタート値がランダムに決定されれば良い。フリーランカウンタは、遊技制御基板40におけるバックアップ箇所と共通のバックアップ電源を用いてバックアップされるものであれば良い。或いは、フリーランカウンタは、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は、メイン制御部41にて発生するマスカブル割込の取扱いに関する初期設定を示す。図9(C)は、割込初期設定KIISにおける設定内容の一例を示している。
割込初期設定KIISのビット番号[7−4]では、割込ベクタの上位4ビットを設定する。割込初期設定KIISのビット番号[3−0]では、マスカブル割込要因の優先度の組み合わせを設定する。割込初期設定KIISの設定内容については後に詳述する。
プログラム管理エリアに記憶されるセキュリティ時間設定KSESは、乱数用クロックRCLKの周波数を監視する場合に異常を検知する周波数や、メイン制御部41の動作開始時などに移行するセキュリティモードの時間(セキュリティ時間)に関する設定を示す。ここで、メイン制御部41の動作モードがセキュリティモードであるときには、所定のセキュリティチェック処理が実行されて、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”であればロングモードの設定となる。ここで、ショートモードやロングモードが指定された場合には、例えばメイン制御部41に内蔵されたフリーランカウンタのカウント値を、システムリセットの発生時にメイン制御部41が備える所定の内蔵レジスタ(可変セキュリティ時間用レジスタ)に格納する。そして、初期設定時に可変セキュリティ時間用レジスタの格納値をそのまま用いること、或いは、その格納値を所定の演算関数(例えばハッシュ関数)に代入して得られた値を用いることなどにより、セキュリティ時間を延長する際の延長時間がランダムに決定されれば良い。一例として、内部システムクロック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]におけるビット値に基づいてランダムに決定された延長時間との双方が、固定時間に加算されて、メイン制御部41がセキュリティモードとなるセキュリティ時間が決定されることになる。
図5(A)に示すメイン制御部41が備える外部バスインタフェース501は、メイン制御部41を構成するチップの外部バスと内部バスとのインタフェース機能や、アドレスバス、データバス及び各制御信号の方向制御機能などを有するバスインタフェースである。例えば、外部バスインタフェース501は、メイン制御部41に外付けされた外部メモリや外部入出力装置などに接続され、これらの外部機器との間でアドレス信号やデータ信号、各種の制御信号などを送受信するものであれば良い。この実施の形態において、外部バスインタフェース501には、内部リソースアクセス制御回路501Aが含まれている。
内部リソースアクセス制御回路501Aは、外部バスインタフェース501を介した外部機器からメイン制御部41の内部データに対するアクセスを制御して、例えばROM506に記憶されたゲーム制御用プログラムや固定データといった、内部データの不適切な外部読出を制限するための回路である。ここで、外部バスインタフェース501には、例えばインサーキットエミュレータ(ICE)といった回路解析装置が、外部機器として接続されることがある。
一例として、ROM506のプログラム管理エリアに記憶されたヘッダKHDRの内容に応じて、ROM506における記憶データの読み出しを禁止するか許可するかを切り替えられるようにする。例えば、ヘッダKHDRがバス出力マスク無効データとなっている場合には、外部機器によるROM506の読み出しを可能にして、内部データの外部読出を許可する。これに対して、ヘッダKHDRがバス出力マスク有効データとなっている場合には、例えば外部バスインタフェース501におけるアドレスバス出力、データバス出力及び制御信号出力にマスクをかけることなどにより、外部機器からROM506の読み出しを不能にして、内部データの外部読出を禁止する。この場合、外部バスインタフェース501に接続された外部機器から内部データの読み出しが要求されたときには、予め定められた固定値を出力することで、外部機器からは内部データを読み出すことができないようにする。また、ヘッダKHDRがROM読出禁止データとなっている場合には、ROM506自体を読出不能として、ROM506における記憶データの読み出しを防止しても良い。そして、例えば製造段階のROMでは、ヘッダKHDRをROM読出禁止データとすることで、ROM自体を読出不能としておき、開発用ROMとするのであればバス出力マスク無効データをヘッダKHDRに書き込むことで、外部機器による内部データの検証を可能にする。これに対して、量産用ROMとするのであればバス出力マスク有効データをヘッダKHDRに書き込むことで、CPU505などによるメイン制御部41の内部におけるROM506の読み出しは可能とする一方で、外部機器によるROM506の読み出しはできないようにすれば良い。
他の一例として、内部リソースアクセス制御回路501Aは、ROM506における記憶データの全部又は一部といった、メイン制御部41の内部データの読み出しが、外部バスインタフェース501に接続された外部機器から要求されたことを検出する。この読出要求を検出したときに、内部リソースアクセス制御回路501Aは、メイン制御部41の内部データの読み出しを許可するか否かの判定を行う。例えば、ROM506における記憶データの全部又は一部に暗号化処理が施されているものとする。この場合、内部リソースアクセス制御回路501Aは、外部機器からの読出要求がROM506に記憶された暗号化処理プログラムや鍵データ等に対する読出要求であれば、この読出要求を拒否して、メイン制御部41の内部データの読み出しを禁止する。外部バスインタフェース501では、ROM506の記憶データが出力される出力ポートと、内部バスとの間にスイッチ素子を設け、内部リソースアクセス制御回路501Aが内部データの読み出しを禁止した場合には、このスイッチ素子をオフ状態とするように制御すれば良い。このように、内部リソースアクセス制御回路501Aは、外部機器からの読出要求が所定の内部データ(例えばROM506の所定領域)の読み出しを要求するものであるか否かに応じて、内部データの読み出しを禁止するか許可するかを決定するようにしても良い。
或いは、内部リソースアクセス制御回路501Aは、内部データの読出要求を検出したときに、所定の認証コードが外部機器から入力されたか否かを判定しても良い。この場合には、例えば内部リソースアクセス制御回路501Aの内部或いはROM506の所定領域に、認証コードとなる所定のコードパターンが予め記憶されていれば良い。そして、外部機器から認証コードが入力されたときには、この認証コードを内部記憶された認証コードと比較して、一致すれば読出要求を受容して、メイン制御部41の内部データの読み出しを許可する。これに対して、外部機器から入力された認証コードが内部記憶された認証コードと一致しない場合には、読出要求を拒否して、メイン制御部41の内部データの読み出しを禁止する。このように、内部リソースアクセス制御回路501Aは、外部機器から入力された認証コードが内部記憶された認証コードと一致するか否かに応じて、内部データの読み出しを禁止するか許可するかを決定するようにしても良い。これにより、検査機関などが予め知得した正しい認証コードを用いて、メイン制御部41の内部データを損なうことなく読み出すことができ、内部データの正当性を適切に検査することなどが可能になる。
さらに他の一例として、内部リソースアクセス制御回路501Aに読出禁止フラグを設け、読出禁止フラグがオン状態であれば外部機器によるROM506の読み出しを禁止する。その一方で、読出禁止フラグがオフ状態であるときには、外部機器によるROM506の読み出しが許可される。ここで、読出禁止フラグは、初期状態ではオフ状態であるが、読出禁止フラグを一旦オン状態とした後には、読出禁止フラグをクリアしてオフ状態に復帰させることができないように構成されていれば良い。すなわち、読出禁止フラグはオフ状態からオン状態に不可逆的に変更することが可能とされている。例えば、内部リソースアクセス制御回路501Aには、読出禁止フラグをクリアしてオフ状態とする機能が設けられておらず、どのような命令によっても読出禁止フラグをクリアすることができないように設定されていれば良い。そして、内部リソースアクセス制御回路501Aは、外部機器からROM506における記憶データといったメイン制御部41の内部データの読み出しが要求されたときに、読出禁止フラグがオンであるか否かを判定する。このとき、読出禁止フラグがオンであれば、外部機器からの読出要求を拒否して、メイン制御部41の内部データの読み出しを禁止する。他方、読出禁止フラグがオフであれば、外部機器からの読出要求を受容して、メイン制御部41の内部データの読み出しを許可にする。このような構成であれば、ゲーム制御用のプログラムを作成してROM506に格納する提供者においては、読出禁止フラグがオフとなっている状態でデバッグの終了したプログラムをROM506から外部機器に読み込むことができる。そして、デバッグの作業が終了した後に出荷する際には、読出禁止フラグをオン状態にセットすることにより、それ以後はROM506の外部読出を制限することができ、スロットマシン1の使用者などによるROM506の読出を防止することができる。このように、内部リソースアクセス制御回路501Aは、読出禁止フラグといった内部フラグがオフであるかオンであるかに応じて、内部データの読み出しを禁止するか許可するかを決定するようにしても良い。
尚、読出禁止フラグを不可逆に設定するのではなく、オン状態からオフ状態に変更することも可能とする一方で、読出禁止フラグをオン状態からオフ状態に変更して内部データの読み出しが許可されるときには、ROM506の記憶データを消去(例えばフラッシュ消去など)することにより、ROM506の外部読出を制限するようにしても良い。
メイン制御部41が備えるクロック回路502は、例えば制御用外部クロック端子EXCに入力される発振信号を2分周することなどにより、内部システムクロックSCLKを生成する回路である。本実施例では、制御用外部クロック端子EXCに制御用クロック生成回路42が生成した制御用クロックCCLKが入力される。クロック回路502により生成された内部システムクロックSCLKは、例えばCPU505といった、メイン制御部41において遊技の進行を制御する各種回路に供給される。また、内部システムクロックSCLKは、乱数回路509にも供給され、乱数用クロック生成回路43から供給される乱数用クロックRCLKの周波数を監視するために用いられる。さらに、内部システムクロックSCLKは、クロック回路502に接続されたシステムクロック出力端子CLKOから、メイン制御部41の外部へと出力されても良い。尚、内部システムクロックSCLKは、メイン制御部41の外部へは出力されないことが望ましい。このように、内部システムクロックSCLKの外部出力を制限することにより、メイン制御部41の内部回路(CPU505など)の動作周期を外部から特定することが困難になり、乱数値となる数値データをソフトウェアにより更新する場合に、乱数値の更新周期が外部から特定されてしまうことを防止できる。
メイン制御部41が備える固有情報記憶回路503は、メイン制御部41の内部情報となる複数種類の固有情報を記憶する回路である。固有情報記憶回路503は、図53に示すように、ROMコード、チップ個別ナンバー、IDナンバーといった3種類の固有情報を記憶する。ROMコードは、ROM506の所定領域(0000(H)〜1FBF(H))における記憶データから生成される4バイトの数値であり、生成方法の異なる4つの数値からなる。チップ個別ナンバーは、メイン制御部41の製造時に付与される4バイトの番号であり、メイン制御部41を構成するチップ毎に異なる数値である。IDナンバーは、メイン制御部41の製造時に付与される8バイトの番号であり、メイン制御部41を構成するチップ毎に異なる数値である。
ROMコードは、ROMコード0〜3の4種類からなり、ROMコード0、ROMコード1、ROMコード2、ROMコード3は、ROM506の0000(H)〜1FBF(H)の格納データを、それぞれROMコード0計算回路571A、ROMコード1計算回路571B、ROMコード2計算回路571C、ROMコード3計算回路571Dにて生成して得られる番号であり、これら生成されたROMコードは、それぞれROMコード0レジスタ572A、ROMコード1レジスタ572B、ROMコード2レジスタ572C、ROMコード3レジスタ572Dに格納される。そして、ROMコード0レジスタ572A、ROMコード1レジスタ572B、ROMコード2レジスタ572C、ROMコード3レジスタ572Dに格納されたROMコード0〜3は、ユーザプログラムからアクセス可能とされている。
チップ個別ナンバーは、チップ個別ナンバーレジスタ573に格納されており、チップ個別ナンバーレジスタ573に格納されているチップ個別ナンバーもユーザプログラムからアクセス可能とされている。
一方、IDナンバーは、ユーザプログラムから読み取ることができないようになっており、BRC端子及びSC端子を介して接続された専用のROMリーダを接続し、照合用回路にて認証された場合のみ、アクセスできるようになっている。
尚、固有情報記憶回路503は、例えばROM506の所定領域を用いることなどにより、ROM506に含まれるようにしても良い。或いは、固有情報記憶回路503は、例えばCPU505の内蔵レジスタを用いることなどにより、CPU505に含まれるようにしても良い。
メイン制御部41が備えるリセット/割込コントローラ504は、メイン制御部41の内部や外部にて発生する各種リセット、割込要求を制御するためのものである。リセット/割込コントローラ504が制御するリセットには、システムリセットとユーザリセットが含まれている。システムリセットは、外部システムリセット端子XSRSTに一定の期間にわたりローレベル信号(システムリセット信号)が入力されたときに発生するリセットである。ユーザリセットは、外部ユーザリセット端子XURSTに一定の期間にわたりローレベルの信号(ユーザリセット信号)が入力されたとき、または内蔵ウォッチドッグタイマ(WDT)のタイムアウト信号が発生したことや、指定エリア外走行禁止(IAT)が発生したことなど、所定の要因により発生するリセットである。尚、本実施例では前述のように内蔵ウォッチドッグタイマを使用せずにリセット回路49に搭載されたウォッチドッグタイマ(WDT)を用いているため、外部ユーザリセット端子XURSTにユーザリセット信号が入力されるか、指定エリア外走行禁止(IAT)が発生することでユーザリセットが発生することとなる。
本実施例では、図5(B)に示すように、ウォッチドッグタイマ49aを内蔵するリセット回路49を遊技制御基板40に搭載している。リセット回路49は、スロットマシン1への供給電源が安定電圧となり一定時間が経過するまでシステムリセット信号をメイン制御部41に対して出力する。また、ウォッチドッグタイマ49aがタイムアウトした場合には、ユーザリセット信号をメイン制御部41に対して出力する。
図5(B)に示すように、遊技制御基板40では、LED駆動回路47からクレジット表示器11へ接続される信号線のうち、クレジット表示器11を構成する複数のセグメントの駆動信号のうち下1桁Bセグメント信号、下1桁Cセグメント信号、上1桁Bセグメント信号、上1桁Cセグメント信号の信号線が分岐し、or回路を介してリセット回路49のウォッチドッグタイマクリア信号端子に接続されている。
本実施例では、メイン制御部41が、クレジット表示器11の下1桁Bセグメント、下1桁Cセグメント、上1桁Bセグメント、上1桁Cセグメントのいずれかのセグメントを必ずダイナミック点灯させる制御を行っており、これらのセグメントをダイナミック点灯させるため、メイン制御部41が正常に動作していれば、これら4つのセグメントのいずれかの駆動信号が定期的に出力されるはずであり、これら4つのセグメントのいずれかの駆動信号が定期的に出力されているか否かを監視することにより、メイン制御部41が正常に動作しているか否かを判定することが可能となる。
そして、これら4つのセグメントの駆動信号をor回路を介して1つにまとめた信号がリセット回路49のウォッチドッグタイマクリア信号端子に入力され、ウォッチドッグタイマ49aの内蔵カウンタ値がクリアされるようになっており、上記4つのセグメントの駆動信号の出力が停止して、ウォッチドッグタイマ49aの内蔵カウンタ値がクリアされず、タイムアップすることで、ユーザリセット信号がメイン制御部41に対して出力されるようになっている。
このように本実施例では、定期的に駆動信号が与えられるLEDのセグメント信号を分岐してウォッチドッグタイマ49aの内蔵カウンタ値をクリアするようになっており、メイン制御部41のCPU505が個別にウォッチドッグタイマ49aの内蔵カウンタ値をクリアする処理を行うことなく、メイン制御部41が正常に動作しているか否かを監視することが可能となることから好ましいが、メイン制御部41からリセット回路49のウォッチドッグタイマクリア信号端子に個別のクリア信号を入力することでウォッチドッグタイマ49aの内蔵カウンタ値をクリアするようにしても良い。
また、本実施例では、メイン制御部41の外部に設けられたリセット回路49にウォッチドッグタイマ49aを搭載する構成であるが、メイン制御部41に内蔵されたウォッチドッグタイマを用いてメイン制御部41の動作を監視するようにしても良い。
リセット/割込コントローラ504が制御する割込には、ノンマスカブル割込NMIとマスカブル割込INTが含まれている。ノンマスカブル割込NMIは、CPU505の割込禁止状態でも無条件に受け付けられる割込であり、外部ノンマスカブル割込端子XNMI(入力ポートP4と兼用)に一定の期間にわたりローレベル信号が入力されたときに発生する割込である。マスカブル割込INTは、CPU505の設定命令により、割込要求の受け付けを許可/禁止できる割込であり、優先順位設定による多重割込の実行が可能である。マスカブル割込INTの要因としては、外部マスカブル割込端子XINT(入力ポートP3と兼用)に一定の期間にわたりローレベル信号が入力されたこと、CTC508に含まれるタイマ回路にてタイムアウトが発生したこと、シリアル通信回路511にてデータ送信による割込要因が発生したこと、乱数回路509にて乱数値となる数値データの取込による割込要因が発生したことなど、複数種類の割込要因が予め定められていれば良い。
リセット/割込コントローラ504は、図7(B)に示すようなメイン制御部41が備える内蔵レジスタのうち、割込マスクレジスタIMR(アドレス2028H)、割込待ちモニタレジスタIRR(アドレス2029H)、割込中モニタレジスタISR(アドレス202AH)、内部情報レジスタCIF(アドレス208CH)などを用いて、割込の制御やリセットの管理を行う。割込マスクレジスタIMRは、互いに異なる複数の要因によるマスカブル割込のうち、使用するものと使用しないものとを設定するレジスタである。割込待ちモニタレジスタ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”となる。
内部情報レジスタCIFのビット番号[1]に格納される内部情報データCIF1は、直前に発生したリセット要因がウォッチドッグタイマ(WDT)のタイムアウトによるユーザリセットであるか否かを示すWDTタイムアウト指示である。図11(B)に示す例では、直前のリセット要因がウォッチドッグタイマのタイムアウトによるユーザリセットではないときに(タイムアウト未発生)、内部情報データCIF1のビット値が“0”となる一方、ウォッチドッグタイマのタイムアウトによるユーザリセットであるときに(タイムアウト発生)、そのビット値が“1”となる。内部情報レジスタCIFのビット番号[0]に格納される内部情報データCIF0は、直前に発生したリセット要因が指定エリア外走行禁止(IAT)によるユーザリセットであるか否かを示すIAT発生指示である。図11(B)に示す例では、直前のリセット要因が指定エリア外走行の発生によるユーザリセットではないときに(IAT発生なし)、内部情報データCIF0のビット値が“0”となる一方、指定エリア外走行の発生によるユーザリセットであるときに(IAT発生あり)、そのビット値が“1”となる。
メイン制御部41が備えるCPU505は、ROM506から読み出したプログラムを実行することにより、スロットマシン1におけるゲームの進行を制御するための処理などを実行する。このときには、CPU505がROM506から固定データを読み出す固定データ読出動作や、CPU505がRAM507に各種の変動データを書き込んで一時記憶させる変動データ書込動作、CPU505がRAM507に一時記憶されている各種の変動データを読み出す変動データ読出動作、CPU505が外部バスインタフェース501やPIP510などを介してメイン制御部41の外部から各種信号の入力を受け付ける受信動作、CPU505が外部バスインタフェース501やシリアル通信回路511などを介してメイン制御部41の外部へと各種信号を出力する送信動作等も行われる。
このように、メイン制御部41では、CPU505がROM506に格納されているプログラムに従って制御を実行するので、以下、メイン制御部41(又はCPU505)が実行する(又は処理を行う)ということは、具体的には、CPU505がプログラムに従って制御を実行することである。このことは、遊技制御基板40以外の他の基板に搭載されているマイクロコンピュータについても同様である。
メイン制御部41が備えるROM506には、ゲーム制御用のユーザプログラムや固定データ等が記憶されている。また、ROM506には、セキュリティチェックプログラム506Aが記憶されている。CPU505は、スロットマシン1の電源投入やシステムリセットの発生に応じてメイン制御部41がセキュリティモードに移行したときに、ROM506に記憶されたセキュリティチェックプログラム506Aを読み出し、ROM506の記憶内容が変更されたか否かを検査するセキュリティチェック処理を実行する。尚、セキュリティチェックプログラム506Aは、ROM506とは異なる内蔵メモリに記憶されても良い。また、セキュリティチェックプログラム506Aは、例えば外部バスインタフェース501を介してメイン制御部41に外付けされた外部メモリの記憶内容を検査するセキュリティチェック処理に対応したものであっても良い。
メイン制御部41が備えるRAM507は、ゲーム制御用のワークエリアを提供する。ここで、RAM507の少なくとも一部は、バックアップ電源によってバックアップされているバックアップRAMであれば良い。すなわち、スロットマシンへの電力供給が停止しても、所定期間はRAM507の少なくとも一部の内容が保存される。尚、本実施例では、RAM507の全ての領域がバックアップRAMとされており、スロットマシンへの電力供給が停止しても、所定期間はRAM507の全ての内容が保存される。
メイン制御部41が備えるCTC508は、例えば8ビットのプログラマブルタイマを3チャネル(PTC0−PTC2)内蔵して構成され、リアルタイム割込の発生や時間計測を可能とするタイマ回路を含んでいる。各プログラマブルタイマPTC0−PTC2は、内部システムクロックSCLKに基づいて生成されたカウントクロックの信号変化(例えばハイレベルからローレベルへと変化する立ち下がりタイミング)などに応じて、タイマ値が更新されるものであれば良い。また、CTC508は、例えば8ビットのプログラマブルカウンタを4チャネル(PCC0−PCC3)内蔵しても良い。各プログラマブルカウンタPCC0−PCC3は、内部システムクロックSCLKの信号変化、或いは、プログラマブルカウンタPCC0−PCC3のいずれかにおけるタイムアウトの発生などに応じて、カウント値が更新されるものであれば良い。CTC508は、セキュリティ時間を延長する際の延長時間(可変設定時間)をシステムリセット毎にランダムに決定するために用いられるフリーランカウンタや、乱数回路509にて生成される乱数のスタート値をシステムリセット毎にランダムに決定するために用いられるフリーランカウンタなどを、含んでも良い。或いは、これらのフリーランカウンタは、例えばRAM507のバックアップ領域といった、CTC508とは異なるメイン制御部41の内部回路に含まれても良い。
メイン制御部41が備える乱数回路509は、例えば16ビット乱数といった、所定の更新範囲を有する乱数値となる数値データを生成する回路である。本実施例では、遊技制御基板40の側において、後述する内部抽選用の乱数値を示す数値データがカウント可能に制御される。尚、遊技効果を高めるために、これら以外の乱数値が用いられても良い。CPU505は、乱数回路509から抽出した数値データに基づき、乱数回路509とは異なるランダムカウンタを用いて、ソフトウェアによって各種の数値データを加工或いは更新することで、内部抽選用の乱数値を示す数値データをカウントするようにしても良い。以下では、内部抽選用の乱数値を示す数値データが、ハードウェアとなる乱数回路509からCPU505により抽出された数値データをソフトウェアにより加工しないものとする。尚、乱数回路509は、メイン制御部41に内蔵されるものであっても良いし、メイン制御部41とは異なる乱数回路チップとして、メイン制御部41に外付けされるものであっても良い。
内部抽選用の乱数値は、複数種類の入賞について発生を許容するか否かを判定するために用いられる値であり、本実施例では、「0」〜「65535」の範囲の値をとる。
図12は、乱数回路509の一構成例を示すブロック図である。乱数回路509は、図12に示すように、周波数監視回路551、クロック用フリップフロップ552、乱数生成回路553、スタート値設定回路554、乱数列変更回路555、乱数列変更設定回路556、ラッチ用フリップフロップ557A、557B、乱数ラッチセレクタ558A、558B、乱数値レジスタ559A、559Bを備えて構成される。尚、乱数値レジスタ559Aと乱数値レジスタ559Bはそれぞれ、図7(B)に示すようなメイン制御部41の内蔵レジスタに含まれる乱数値レジスタR1D(アドレス2038H−2039H)と乱数値レジスタR2D(アドレス203AH−203BH)に対応している。尚、本実施例では、取得する乱数が内部抽選用の乱数値のみであり、ラッチ用フリップフロップ557A、557B、乱数ラッチセレクタ558A、558B、乱数値レジスタ559A、559Bのうちラッチ用フリップフロップ557B、乱数ラッチセレクタ558B、乱数値レジスタ559Bは未使用とされている。
周波数監視回路551は、乱数用クロック生成回路43により生成された乱数用クロックRCLKの周波数を監視して、その異常発生を検知するための回路である。周波数監視回路551は、例えば乱数用外部クロック端子ERCに入力される発振信号を監視して、内部システムクロックSCLKに基づきセキュリティ時間設定KSESのビット番号[7−6]における設定内容(図10(B)参照)に応じた周波数異常を検知したときに、内部情報レジスタCIFのビット番号[4]を“1”にセットする。本実施例では、乱数用外部クロック端子ERCに乱数用クロック生成回路43が生成した乱数用クロック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の生成に用いられる乱数取得用クロックとなる。
乱数用クロックRCLKの発振周波数と、制御用クロック生成回路42によって生成される制御用クロックCCLKの発振周波数とは、互いに異なる周波数となっており、また、いずれか一方の発振周波数が他方の発振周波数の整数倍になることがない。一例として、制御用クロックCCLKの発振周波数が11.0MHzである一方で、乱数用クロックRCLKの発振周波数は9.7MHzであれば良い。そのため、乱数更新クロックRGKやラッチ用クロックRC1、RC2はいずれも、CPU505に供給される制御用クロックCCLKとは異なる周期で信号状態が変化する発振信号となる。すなわち、クロック用フリップフロップ552は、乱数用クロック生成回路43によって生成された乱数用クロック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”であればシステムリセット毎に変更される値に設定する。本実施例では、第2乱数初期設定KRS2のビット番号[1−0]が“10”に設定されており、乱数生成回路553により生成されるカウント値におけるスタート値としてIDナンバーに基づく値が設定される。
乱数列変更回路555は、乱数生成回路553により生成された数値データが一巡したときに、数値データの更新順である順列を所定の乱数更新規則に従った順列に変更可能とする回路である。例えば、乱数列変更回路555は、乱数生成回路553から出力される数値データにおけるビットの入れ替えや転置などのビットスクランブル処理を実行する。また、乱数列変更回路555は、例えばビットスクランブル処理に用いるビットスクランブル用キーやビットスクランブルテーブルを変更することなどにより、数値データの更新順である順列の変更を行うことができる。
乱数列変更設定回路556は、第1乱数初期設定KRS1のビット番号[1−0]におけるビット値(図9(A)参照)などに応じて、乱数列変更回路555における数値データの更新順を変更する設定を行うための回路である。例えば、乱数列変更設定回路556は、第1乱数初期設定KRS1のビット番号[1−0]が“00”であれば2周目以降も乱数更新規則を変更しない設定とする一方、“01”であれば2周目以降はソフトウェアでの変更要求に応じて乱数更新規則を変更し、“10”であれば自動で乱数更新規則を変更する。本実施例では、第1乱数初期設定KRS1のビット番号[1−0]が“10”に設定されており、自動で乱数更新規則が変更される。
乱数列変更回路555は、第1乱数初期設定KRS1のビット番号[1−0]が“01”であることに対応してソフトウェアによる乱数更新規則の変更を行う場合に、図7(B)に示すようなメイン制御部41が備える内蔵レジスタのうち、乱数列変更レジスタRDSC(アドレス2034H)を用いて、乱数更新規則の変更を制御する。図13(A)は、乱数列変更レジスタRDSCの構成例を示している。図13(B)は、乱数列変更レジスタRDSCに格納される乱数列変更要求データの各ビットにおける設定内容の一例を示している。乱数列変更レジスタRDSCのビット番号[0]に格納される乱数列変更要求データRDSC0は、乱数更新規則をソフトウェアにより変更する場合に、乱数列の変更要求の有無を示している。図13(B)に示す例では、ソフトウェアにより乱数列の変更要求がないときに、乱数列変更要求データRDSC0のビット値が“0”となる一方、乱数列の変更要求があったときには、そのビット値が“1”となる。
図14は、乱数更新規則をソフトウェアにより変更する場合の動作例を示している。この場合、乱数生成回路553から出力されるカウント値順列RCNが所定の初期値から所定の最終値まで循環的に更新されたときに、乱数列変更要求データRDSC0が“1”であることに応答して、乱数更新規則を変更する。図14に示す動作例では、始めに乱数列変更回路555から出力される乱数列RSNが、「0→1→…→65535」となっている。この後、CPU505がROM506に格納されたユーザプログラムを実行することによって、所定のタイミングで乱数列変更レジスタRDSCのビット番号[0]に“1”が書き込まれたものとする。
そして、第1乱数初期設定KRS1のビット番号[1−0]が“01”であることに対応して、乱数列変更設定回路556が乱数列変更要求データRDSC0を読み出し、そのビット値が“1”であることに応答して、乱数更新規則を変更するための設定を行う。このとき、乱数列変更設定回路556は、乱数生成回路553から出力されたカウント値順列RCNが所定の最終値に達したことに応じて、例えば予め用意された複数種類の乱数更新規則のいずれかを選択することなどにより、乱数更新規則を変更する。図14に示す動作例では、乱数列変更回路555が乱数生成回路553から出力されたカウント値順列RCNにおける最終値に対応する数値データ「65535」を出力した後、乱数列変更要求データRDSC0に応じて乱数更新規則を変更する。その後、乱数列変更回路555は、変更後の乱数更新規則に従った乱数列RSNとして、「65535→65534→…→0」を出力する。乱数列変更レジスタRDSCは、乱数列変更設定回路556により乱数列変更要求データRDSC0が読み出されたときに初期化される。そのため、再び乱数列変更レジスタRDSCのビット番号[0]にビット値“1”が書き込まれるまでは、乱数列変更回路555から出力される乱数列RSNが、「65535→65534→…→0」となる。
CPU505によって、乱数列変更レジスタRDSCのビット番号[0]に再びビット値“1”が書き込まれると、乱数更新規則が再度変更される。図14に示す動作例では、乱数列変更回路555が乱数列RSNにおける最終値に対応する数値データ「0」を出力したときに、乱数列変更要求データRDSC0としてビット値“1”が書き込まれたことに応じて乱数更新規則を変更する。その後、乱数列変更回路555は、変更後の乱数更新規則に従った乱数列RSNとして、「0→2→…→65534→1→…→65535」を出力する。
図15は、乱数更新規則を自動で変更する場合の動作例を示している。この場合、乱数生成回路553から出力されるカウント値順列RCNが所定の初期値から所定の最終値まで循環的に更新されたことに応じて、乱数列変更設定回路556が自動的に乱数更新規則を変更する。図15に示す動作例では、始めに乱数列変更回路555から出力される乱数列RSNが、「0→1→…→65535」となっている。
そして、乱数列変更回路555から出力された乱数列RSNが所定の最終値に達したときに、乱数列変更設定回路556は、予め用意された複数種類の更新規則のうちから予め定められた順序に従って更新規則を選択することにより、更新規則を変更するようにしても良い。或いは、乱数列変更設定回路556は、複数種類の更新規則のうちから任意の更新規則を選択することにより、更新規則を変更するようにしても良い。図15に示す動作例では、1回目の乱数更新規則の変更により、乱数列変更回路555から出力される乱数列RSNが、「65535→65534→…→0」となる。その後、2回目の乱数更新規則の変更により、乱数列変更回路555から出力される乱数列RSNは、「0→2→…→65534→1→…→65535」となる。図15に示す動作例では、3回目の乱数更新規則の変更により、乱数列変更回路555から出力される乱数列RSNは、「65534→0→…→32768」となる。4回目の乱数更新規則の変更が行われたときには、乱数列変更回路555から出力される乱数列RSNが、「16383→49151→…→49150」となる。5回目の乱数更新規則の変更が行われたときには、乱数列変更回路555から出力される乱数列RSNが、「4→3→…→465531」となる。
ラッチ用フリップフロップ557Aは、例えばD型フリップフロップなどを用いて構成される。ラッチ用フリップフロップ557Aでは、D入力端子にPIP510が備える入力ポートP0からの配線が接続され、クロック端子CKにラッチ用クロックRC1を伝送する配線が接続されている。本実施例では、入力ポートP0にスタートスイッチ7からのゲーム開始信号SS1が入力される。ラッチ用フリップフロップ557Aは、ラッチ用クロックRC1の立上りエッジなどに応答して、ゲーム開始信号SS1を取り込み、ゲーム開始時ラッチ信号SL1として出力する。これにより、ラッチ用フリップフロップ557Aでは、ラッチ用クロックRC1の立上りエッジに同期して、ゲーム開始信号SS1がゲーム開始時ラッチ信号SL1として出力される。
尚、ゲーム開始信号SS1は、スタートスイッチ7から直接伝送されるものに限定されない。一例として、スタートスイッチ7からの出力信号からの出力信号がオン状態となっている時間を計測し、計測した時間が所定の時間(例えば3ms)になったときに、ゲーム開始信号SS1を出力するタイマ回路を設けても良い。
乱数ラッチセレクタ558Aは、ラッチ用フリップフロップ557Aから伝送されるゲーム開始時ラッチ信号SL1と、ソフトウェアによる乱数ラッチ要求信号とを取り込み、いずれかを乱数ラッチ信号LL1として選択的に出力する回路である。乱数ラッチセレクタ558Aは、図7(B)に示すようなメイン制御部41が備える内蔵レジスタのうち、乱数値取込レジスタRDLT(アドレス2032H)を用いて、乱数ラッチ信号LL1の出力を制御する。乱数値取込レジスタRDLTは、乱数列変更回路555から出力された乱数列RSNにおける数値データを、ソフトウェアにより乱数値レジスタ559Aに取り込むために用いられるレジスタである。乱数ラッチ選択レジスタRDLSは、乱数列変更回路555から出力された乱数列RSNにおける数値データを、乱数値レジスタ559Aに、ソフトウェアにより取り込むか、入力ポートP0への信号入力により取り込むかの取込方法を示すレジスタである。
図16(A)は、乱数値取込レジスタRDLTの構成例を示している。図16(B)は、乱数値取込レジスタRDLTに格納される乱数値取込指定データの各ビットにおける設定内容の一例を示している。乱数値取込レジスタRDLTのビット番号[0]に格納される乱数値取込指定データRDLT0は、乱数値レジスタR1Dとなる乱数値レジスタ559Aに対する乱数値取込指定の有無を示している。図16(B)に示す例では、ソフトウェアにより乱数値レジスタR1Dに対する乱数値の取込指定がないときに、乱数値取込指定データRDLT0のビット値が“0”となる一方、乱数値の取込指定があったときには、そのビット値が“1”となる。
図17(A)は、乱数ラッチ選択レジスタRDLSの構成例を示している。図17(B)は、乱数ラッチ選択レジスタRDLSに格納される乱数ラッチ選択データの各ビットにおける設定内容の一例を示している。乱数ラッチ選択レジスタRDLSのビット番号[0]に格納される乱数ラッチ選択データRDLS0は、乱数値レジスタR1Dとなる乱数値レジスタ559Aへの取込方法を示している。図17(B)に示す例では、ソフトウェアによる乱数値取込指定データRDLT0の書き込みに応じて乱数値となる数値データを乱数値レジスタR1Dに取り込む場合に、乱数ラッチ選択データRDLS0のビット値を“0”とする。これに対して、入力ポートP0への信号入力に応じて乱数値となる数値データを乱数値レジスタR1Dに取り込む場合には、乱数ラッチ選択データRDLS0のビット値を“1”とする。本実施例では、乱数ラッチ選択データRDLS0のビット値が“1”とされており、入力ポートP0への信号入力に応じて乱数値となる数値データが乱数値レジスタR1Dに取り込まれる。
乱数値レジスタ559Aは、乱数列変更回路555から出力された乱数列RSNにおける数値データを乱数値として格納するレジスタである。図18(A)及び(B)は、乱数値レジスタR1Dとなる乱数値レジスタ559Aの構成例を示している。尚、図18(A)は、乱数値レジスタR1Dの下位バイトR1D(L)を示し、図18(B)は、乱数値レジスタR1Dの上位バイトR1D(H)を示している。乱数値レジスタ559Aは16ビット(2バイト)のレジスタであり、16ビットの乱数値を格納することができる。
乱数値レジスタ559Aは、乱数ラッチセレクタ558Aから供給される乱数ラッチ信号LL1がオン状態となったことに応答して、乱数列変更回路555から出力された乱数列RSNにおける数値データを乱数値として取り込んで格納する。乱数値レジスタ559Aは、CPU505から供給されるレジスタリード信号RRS1がオン状態となったときに、読出可能(イネーブル)状態となり、格納されている数値データを内部バス等に出力する。これに対して、レジスタリード信号RRS1がオフ状態であるときには、常に同じ値(例えば「65535H」など)を出力して、読出不能(ディセーブル)状態となれば良い。また、乱数値レジスタ559Aは、乱数ラッチ信号LL1がオン状態である場合に、レジスタリード信号RRS1を受信不可能な状態となるようにしても良い。さらに、乱数値レジスタ559Aは、乱数ラッチ信号LL1がオン状態となるより前にレジスタリード信号RRS1がオン状態となっている場合に、乱数ラッチ信号LL1を受信不可能な状態となるようにしても良い。
乱数値レジスタ559Aは、図7(B)に示すようなメイン制御部41が備える内蔵レジスタのうち、乱数ラッチフラグレジスタRDFM(アドレス2033H)と、乱数割込制御レジスタRDIC(アドレス2031H)とを用いて、乱数ラッチ時の動作管理や割込制御を可能にする。乱数ラッチフラグレジスタRDFMは、乱数値レジスタ559Aに対応して、乱数値となる数値データがラッチされたか否かを示す乱数ラッチフラグを格納するレジスタである。乱数割込制御レジスタRDICは、乱数値レジスタ559Aに乱数値となる数値データがラッチされたときに発生する割込の許可/禁止を設定するレジスタである。
図19(A)は、乱数ラッチフラグレジスタRDFMの構成例を示している。図19(B)は、乱数ラッチフラグレジスタRDFMに格納される乱数ラッチフラグデータの各ビットにおける設定内容の一例を示している。乱数ラッチフラグレジスタRDFMのビット番号[0]に格納される乱数ラッチフラグデータRDFM0は、乱数値レジスタR1Dとなる乱数値レジスタ559Aに数値データが取り込まれたか否かを示す乱数ラッチフラグとなる。図19(B)に示す例では、乱数値レジスタR1Dに数値データが取り込まれていないときに(乱数値取込なし)、乱数ラッチフラグデータRDFM0のビット値が“0”となる一方、数値データが取り込まれたときには(乱数値取込あり)、そのビット値が“1”となる。乱数ラッチフラグデータRDFM0が“1”の状態、すなわち乱数値レジスタR1Dに数値データが取り込まれている状態では、新たな乱数値の取込要求が発生した場合でも、新たな数値データを乱数値レジスタR1Dに取り込まないようになっており、このような状態では、乱数値レジスタR1Dの数値データが読み出されて、乱数ラッチフラグデータRDFM0がクリアされるまで新たな数値データを乱数値レジスタR1Dに取り込むことが不可能となる。
図20(A)は、乱数割込制御レジスタRDICの構成例を示している。図20(B)は、乱数割込制御レジスタRDICに格納される乱数割込制御データの各ビットにおける設定内容の一例を示している。乱数割込制御レジスタRDICのビット番号[0]に格納される乱数割込制御データRDIC0は、乱数値レジスタR1Dとなる乱数値レジスタ559Aに数値データが取り込まれたときに発生する割込を、許可するか禁止するかの割込制御設定を示している。図20(B)に示す例では、乱数値レジスタR1Dへの取込時における割込を禁止する場合に(割込禁止)、乱数割込制御データRDIC0のビット値を“0”とする一方、この割込を許可する場合には(割込許可)、そのビット値を“1”とする。本実施例では、乱数割込制御データRDIC0のビット値が“0”に設定されており、乱数値レジスタR1Dとなる乱数値レジスタ559Aに数値データが取り込まれても割込は発生しない。
メイン制御部41が備えるPIP510は、例えば6ビット幅の入力専用ポートであり、専用端子となる入力ポートP0〜入力ポートP2と、機能兼用端子となる入力ポートP3〜入力ポートP5とを含んでいる。入力ポートP3は、CPU505等に接続される外部マスカブル割込端子XINTと兼用される。入力ポートP4は、CPU505等に接続される外部ノンマスカブル割込端子XNMIと兼用される。入力ポートP5は、シリアル通信回路511が使用する第1チャネル受信端子RXAと兼用される。入力ポートP3〜入力ポートP5の使用設定は、プログラム管理エリアに記憶される機能設定KFCSにより指示される。
PIP510は、図7(B)に示すようなメイン制御部41が備える内蔵レジスタのうち、入力ポートレジスタPI(アドレス2090H)などを用いて、入力ポートP0〜入力ポートP5の状態管理等を行う。入力ポートレジスタPIは、入力ポートP0〜入力ポートP5のそれぞれに対応して、外部信号の入力状態を示すビット値が格納されるレジスタである。
図21(A)は、入力ポートレジスタPIの構成例を示している。図21(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に示すメイン制御部41が備えるアドレスデコード回路512は、メイン制御部41の内部における各機能ブロックのデコードや、外部機器用のデコード信号であるチップセレクト信号のデコードを行うための回路である。チップセレクト信号により、メイン制御部41の内部回路、或いは、周辺デバイスとなる外部機器を、選択的に有効動作させて、CPU505からのアクセスが可能となる。
メイン制御部41が備えるROM506には、ゲーム制御用のユーザプログラムやセキュリティチェックプログラム506Aの他に、ゲームの進行を制御するために用いられる各種の選択用データ、テーブルデータなどが格納される。例えば、ROM506には、CPU505が各種の判定や決定、設定を行うために用意された複数の判定テーブルや決定テーブル、設定テーブルなどを構成するデータが記憶されている。また、ROM506には、CPU505が遊技制御基板40から各種の制御コマンドとなる制御信号を送信するために用いられる複数のコマンドテーブルを構成するテーブルデータなどが記憶されている。
メイン制御部41が備えるRAM507には、スロットマシン1におけるゲームの進行を制御するために用いられる各種のデータを保持する領域として、遊技制御用データ保持エリア590が設けられている。RAM507としては、例えばDRAMが使用されており、記憶しているデータ内容を維持するためのリフレッシュ動作が必要になる。CPU505には、このリフレッシュ動作を行うためのリフレッシュレジスタが内蔵されている。例えば、リフレッシュレジスタは8ビットからなり、そのうち下位7ビットはCPU505がROM506から命令フェッチするごとに自動的にインクリメントされる。したがって、リフレッシュレジスタにおける格納値の更新は、CPU505における1命令の実行時間ごとに行われることになる。
メイン制御部41は、シリアル通信回路511を介してサブ制御部91に各種のコマンドを送信する。メイン制御部41からサブ制御部91へ送信されるコマンドは一方向のみで送られ、サブ制御部91からメイン制御部41へ向けてコマンドが送られることはない。
シリアル通信回路511は、図22に示すように、データレジスタ560、送信データレジスタ561、送信用シフトレジスタ562、ステータスレジスタ563を備える。
データレジスタ560は、CPU505が生成し、内部バスを介して転送されたコマンドデータを一時的にバッファするレジスタであり、データレジスタ560にバッファされたコマンドデータは送信データレジスタ561の空き領域に格納される。
送信データレジスタ561は、送信待ちのコマンドデータが格納されるレジスタである。送信データレジスタ561には、複数のコマンドデータを格納可能な領域が設けられており、最大で32バイトのコマンドデータを格納可能とされている。
送信用シフトレジスタ562は、シリアルデータ化されたコマンドデータが格納されるレジスタであり、送信データレジスタ561に格納されているコマンドデータのうち最も早い段階で格納されたコマンドデータからシリアルデータに変換され、送信用シフトレジスタ562に格納される。そして、送信用シフトレジスタ562にコマンドデータが格納されると直ちにサブ制御部91に対して転送されるようになっている。
ステータスレジスタ563は、コマンドデータを送信中か否かを示す送信完了、送信データレジスタ561にコマンドデータが格納されているか否かを示すデータエンプティ等、シリアル通信回路511の送信状態を示すデータが格納されるレジスタである。送信完了の値として“1”が格納されている場合には、コマンドデータの送信を行っていないか、コマンドデータの送信が完了した旨を示し、“0”が格納されている場合には、コマンドデータの送信中、またはコマンドデータの送信待ちである旨を示す。データエンプティの値として“1”が設定されている場合には、送信データレジスタ561に1以上の送信待ちのコマンドデータが格納されている旨を示し、“0”が格納されている場合には、送信データレジスタ561に送信待ちのコマンドデータが格納されていない旨を示す。
ステータスレジスタ563の値は、内部バスを介してCPU505が参照可能であり、CPU505は、ステータスレジスタ563の値を読み出すことにより、シリアル通信回路511の送信状態を確認できるようになっている。
次にシリアル通信回路511の動作状況を図23に基づいて説明する。
まず、送信データレジスタ561の全ての領域が空の状態であり、送信用シフトレジスタ562によるコマンドデータの送信も行われていない場合には、図23(a)に示すように、送信完了、データエンプティの値は、ともに“1”が設定されている。
図23(b)に示すように、CPU505の転送指令によりコマンドデータ1、2が送信データレジスタ561に格納されると、送信完了、データエンプティの値は、ともに“0”に変化する。
次いで、図23(c)(d)に示すように、送信データレジスタ561に格納されたコマンドデータ1、2のうち先に格納されたコマンドデータ1がシリアルデータに変換され、送信用シフトレジスタ562によってサブ制御部91に対して送信され、コマンドデータ1の送信が完了すると、次に格納されたコマンドデータ2がシリアルデータに変換され、送信用シフトレジスタ562によってサブ制御部91に対して送信されるとともに、最後のコマンドデータがシリアルデータに変換され、送信用シフトレジスタ562に格納され、送信データレジスタ561が空になるとデータエンプティの値が“1”に変化し、図23(e)に示すように、送信用シフトレジスタ562に格納されている最後のコマンドデータの送信も完了すると、送信完了の値も“1”に変化し、全てのコマンドデータの送信が完了した状態となる。
メイン制御部41は、遊技制御基板40に接続された各種スイッチ類の検出状態が入力ポートから入力される。そしてメイン制御部41は、これら入力ポートから入力される各種スイッチ類の検出状態に応じて段階的に移行する基本処理を実行する。
また、メイン制御部41は、割込の発生により基本処理に割り込んで割込処理を実行できるようになっている。本実施例では、CTC508に含まれるタイマ回路にてタイムアウトが発生したこと、すなわち一定時間間隔(本実施例では、約0.56ms)毎に後述するタイマ割込処理(メイン)を実行する。
また、メイン制御部41は、割込処理の実行中に他の割込を禁止するように設定されているとともに、複数の割込が同時に発生した場合には、予め定められた順位によって優先して実行する割込が設定されている。尚、割込処理の実行中に他の割込要因が発生し、割込処理が終了してもその割込要因が継続している状態であれば、その時点で新たな割込が発生することとなる。
メイン制御部41は、基本処理として遊技制御基板40に接続された各種スイッチ類の検出状態が変化するまでは制御状態に応じた処理を繰り返しループし、各種スイッチ類の検出状態の変化に応じて段階的に移行する処理を実行する。また、メイン制御部41は、一定時間間隔(本実施例では、約0.56ms)毎にタイマ割込処理(メイン)を実行する。尚、タイマ割込処理(メイン)の実行間隔は、基本処理において制御状態に応じて繰り返す処理が一巡する時間とタイマ割込処理(メイン)の実行時間とを合わせた時間よりも長い時間に設定されており、今回と次回のタイマ割込処理(メイン)との間で必ず制御状態に応じて繰り返す処理が最低でも一巡することとなる。
演出制御基板90には、スロットマシン1の前面扉1bに配置された液晶表示器51(図1参照)、演出効果LED52、スピーカ53、54、前述したリールLED55等の演出装置が接続されており、これら演出装置は、演出制御基板90に搭載された後述のサブ制御部91による制御に基づいて駆動されるようになっている。
尚、本実施例では、演出制御基板90に搭載されたサブ制御部91により、液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55等の演出装置の出力制御が行われる構成であるが、サブ制御部91とは別に演出装置の出力制御を直接的に行う出力制御部を演出制御基板90または他の基板に搭載し、サブ制御部91がメイン制御部41からのコマンドに基づいて演出装置の出力パターンを決定し、サブ制御部91が決定した出力パターンに基づいて出力制御部が演出装置の出力制御を行う構成としても良く、このような構成では、サブ制御部91及び出力制御部の双方によって演出装置の出力制御が行われることとなる。
また、本実施例では、演出装置として液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55を例示しているが、演出装置は、これらに限られず、例えば、機械的に駆動する表示装置や機械的に駆動する役モノなどを演出装置として適用しても良い。
演出制御基板90には、サブCPU91a、ROM91b、RAM91c、I/Oポート91dなどを備えたマイクロコンピュータにて構成され、演出の制御を行うサブ制御部91、演出制御基板90に接続された液晶表示器51の表示制御を行う表示制御回路92、演出効果LED52、リールLED55の駆動制御を行うLED駆動回路93、スピーカ53、54からの音声出力制御を行う音声出力回路94、電源投入時または電源遮断時にサブCPU91aにリセット信号を与えるリセット回路95、日付情報及び時刻情報を含む時間情報を出力する時計装置97、スロットマシン1に供給される電源電圧を監視し、電圧低下を検出したときに、その旨を示す電圧低下信号をサブ制御部91に対して出力する電断検出回路98が搭載されており、サブ制御部91は、メイン制御部から送信されるコマンドを受けて、演出を行うための各種の制御を行うとともに、演出制御基板90に搭載された制御回路の各部を直接的または間接的に制御する。
リセット回路95は、遊技制御基板40においてメイン制御部41にシステムリセット信号を与えるリセット回路49よりもリセット信号を解除する電圧が低く定められており、電源投入時においてサブ制御部91は、メイン制御部41よりも早い段階で起動するようになっている。一方で、電断検出回路98は、遊技制御基板40においてメイン制御部41に電圧低下信号を出力する電断検出回路48よりも電圧低下信号を出力する電圧が低く定められており、電断時においてサブ制御部91は、メイン制御部41よりも遅い段階で停電を検知し、後述する電断処理(サブ)を行うこととなる。
サブ制御部91は、メイン制御部41と同様に、割込機能を備えており、メイン制御部41からのコマンド受信時に割込を発生させて、メイン制御部41から送信されたコマンドを取得し、バッファに格納するコマンド受信割込処理を実行する。また、サブ制御部91は、システムクロックの入力数が一定数に到達する毎、すなわち一定間隔毎に割込を発生させて後述するタイマ割込処理(サブ)を実行する。
また、サブ制御部91は、メイン制御部41とは異なり、コマンドの受信に基づいて割込が発生した場合には、タイマ割込処理(サブ)の実行中であっても、当該処理に割り込んでコマンド受信割込処理を実行し、タイマ割込処理(サブ)の契機となる割込が同時に発生してもコマンド受信割込処理を最優先で実行するようになっている。
また、サブ制御部91にも、停電時においてバックアップ電源が供給されており、バックアップ電源が供給されている間は、RAM91cに記憶されているデータが保持されるようになっている。
本実施例のスロットマシン1は、遊技状態やエラーの発生状況などを示す外部出力信号を出力する。
これら外部出力信号のうち後述する演出関連信号以外の信号は、図24に示すように、メイン制御部41のCPU505の制御により遊技制御基板40より出力され、外部出力基板1000、スロットマシン1が設置される遊技店(ホール)の情報提供端子板1010を介してホールコンピュータなどのホール機器に出力されるようになっている。また、外部出力信号のうち後述する演出関連信号は、図24に占め得賞に、サブ制御部91のサブCPU91aの制御により演出制御基板90より出力され、外部出力基板1101、前述した情報提供端子板1010を介してホール機器に出力されるようになっている。
遊技制御基板40から外部出力基板1000に対しては、賭数の設定に用いられたメダル数を示すメダルIN信号、入賞の発生により遊技者に付与されたメダル数を示すメダルOUT信号、遊技状態が後述するRB中の旨を示すRB中信号、遊技状態が後述するBB中の旨を示すBB中信号がパラレル信号してそれぞれ出力されるとともに、前面扉1bの開放及び閉塞、設定変更状態の開始及び終了、設定確認状態の開始及び終了、エラー状態の開始及び終了、ゲームの開始、遊技者にとって有利な後述するRT(2)の開始及び終了を通知するとともに後述する固有情報を送信するためのセキュリティ信号がシリアル信号として出力される。
尚、本実施例では、チャレンジタイム(リールの滑りコマ数が制限されるものの、全ての小役について入賞が許容される遊技状態)や、チャレンジタイムが高確率となるチャレンジボーナスを搭載していないが、これらの遊技状態を搭載したスロットマシンとの共通化を図るため、遊技制御基板40と外部出力基板1000との間には、上記の信号を出力する信号線に加えて、遊技状態がチャレンジタイム中の旨を示すCT中信号、遊技状態がチャレンジボーナス中の旨を示すCB中信号を出力する信号線が接続されている。
外部出力基板1000には、リレー回路1001、出力信号毎の端子が設けられ、情報提供端子板1010の回路と電気的に接続するための接続されるコネクタ1003が設けられている。
遊技制御基板40から出力されたメダルIN信号、メダルOUT信号、RB中信号、BB中信号、(CT中信号、CB中信号)、セキュリティ信号は、リレー回路1001を介して情報提供端子板1010に出力される。
これら外部出力基板1000から出力されたメダルIN信号、メダルOUT信号、RB中信号、BB中信号、(CT中信号、CB中信号)、セキュリティ信号は、情報提供端子板1010を介してホールコンピュータなどのホール機器へ出力される。
演出制御基板90から外部出力基板1100に対しては、後述するATの開始(ナビ権利の消費)、ARTの開始(ナビによるRTへの移行)を通知するとともに後述する固有情報を送信するための演出関連信号がシリアル信号として出力される。
外部出力基板1100には、リレー回路1101が設けられ、情報提供端子板1010の回路と電気的に接続するための接続されるコネクタ1103が設けられている。
演出制御基板90から出力された演出関連信号は、リレー回路1101を介して情報提供端子板1010に出力される。
これら外部出力基板1100から出力された演出関連信号は、情報提供端子板1010を介してホールコンピュータなどのホール機器へ出力される。
本実施例のスロットマシン1は、設定値に応じてメダルの払出率が変わるものである。詳しくは、後述する内部抽選において設定値に応じた当選確率を用いることにより、メダルの払出率が変わるようになっている。設定値は1〜6の6段階からなり、6が最も払出率が高く、5、4、3、2、1の順に値が小さくなるほど払出率が低くなる。すなわち設定値として6が設定されている場合には、遊技者にとって最も有利度が高く、5、4、3、2、1の順に値が小さくなるほど有利度が段階的に低くなる。
設定値を変更するためには、設定キースイッチ37をon状態としてからスロットマシン1の電源をonする必要がある。設定キースイッチ37をon状態として電源をonすると、設定値表示器24にRAM507から読み出された設定値が表示値として表示され、リセット/設定スイッチ38の操作による設定値の変更操作が可能な設定変更状態に移行する。設定変更状態において、リセット/設定スイッチ38が操作されると、設定値表示器24に表示された表示値が1ずつ更新されていく(設定6からさらに操作されたときは、設定1に戻る)。そして、スタートスイッチ7が操作されると表示値を設定値として確定する。そして、設定キースイッチ37がoffされると、確定した表示値(設定値)がメイン制御部41のRAM507に格納され、遊技の進行が可能な状態に移行する。
また、設定値を確認するためには、ゲーム終了後、賭数が設定されていない状態で設定キースイッチ37をon状態とすれば良い。このような状況で設定キースイッチ37をon状態とすると、設定値表示器24にRAM507から読み出された設定値が表示されることで設定値を確認可能な設定確認状態に移行する。設定確認状態においては、ゲームの進行が不能であり、設定キースイッチ37をoff状態とすることで、設定確認状態が終了し、ゲームの進行が可能な状態に復帰することとなる。
本実施例のスロットマシン1においては、メイン制御部41は、タイマ割込処理(メイン)を実行する毎に、電断検出回路48からの電圧低下信号が検出されているか否かを判定する停電判定処理を行い、停電判定処理において電圧低下信号が検出されていると判定した場合に、電断処理(メイン)を実行する。電断処理(メイン)では、レジスタを後述するRAM507のスタックに退避し、RAM507にいずれかのビットが1となる破壊診断用データ(本実施例では、5AH)、すなわち0以外の特定のデータを格納するとともに、RAM507の全ての領域に格納されたデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、RAM507に格納する処理を行うようになっている。尚、RAMパリティとはRAM507の該当する領域(本実施例では、全ての領域)の各ビットに格納されている値の排他的論理和として算出される値である。このため、RAM507の全ての領域に格納されたデータに基づくRAMパリティが0であれば、RAMパリティ調整用データは0となり、RAM507の全ての領域に格納されたデータに基づくRAMパリティが1であれば、RAMパリティ調整用データは1となる。
そして、メイン制御部41は、システムリセットによるかユーザリセットによるかに関わらず、その起動時においてRAM507の全ての領域に格納されたデータに基づいてRAMパリティを計算するとともに、破壊診断用データの値を確認し、RAMパリティが0であり、かつ破壊診断用データの値も正しいことを条件に、RAM507に記憶されているデータに基づいてメイン制御部41の処理状態を電断前の状態に復帰させるが、RAMパリティが0でない場合(1の場合)や破壊診断用データの値が正しくない場合には、RAM異常と判定し、RAM異常エラーコードをレジスタにセットしてRAM異常エラー状態に制御し、遊技の進行を不能化させるようになっている。尚、RAM異常エラー状態は、通常のエラー状態と異なり、リセットスイッチ23やリセット/設定スイッチ38を操作しても解除されないようになっており、前述した設定変更状態において新たな設定値が設定されるまで解除されることがない。
尚、本実施例では、RAM507に格納されている全てのデータが停電時においてもバックアップ電源により保持されるとともに、メイン制御部41は、電源投入時においてRAM507のデータが正常であると判定した場合に、RAM507の格納データに基づいて電断前の制御状態に復帰する構成であるが、RAM507に格納されているデータのうち停電時において制御状態の復帰に必要なデータのみをバックアップし、電源投入時においてバックアップされているデータに基づいて電断前の制御状態に復帰する構成としても良い。
また、電源投入時において電断前の制御状態に復帰させる際に、全ての制御状態を電断前の制御状態に復帰させる必要はなく、遊技者に対して不利益とならない最低限の制御状態を復帰させる構成であれば良く、例えば、入力ポートの状態などを全て電断前の状態に復帰させる必要はない。
また、サブ制御部91もタイマ割込処理(サブ)において電断検出回路98からの電圧低下信号が検出されているか否かを判定し、電圧低下信号が検出されていると判定した場合に電断処理(サブ)を実行する。電断処理(サブ)では、レジスタを後述するRAM91cのスタックに退避し、RAM91cにいずれかのビットが1となる破壊診断用データを格納するとともに、RAM91cの全ての領域に格納されたデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、RAM91cに格納する処理を行うようになっている。
そして、サブ制御部91は、その起動時においてRAM91cの全ての領域に格納されたデータに基づいてRAMパリティを計算し、RAMパリティが0であることを条件に、RAM91cに記憶されているデータに基づいてサブ制御部91の処理状態を電断前の状態に復帰させるが、RAMパリティが0でない場合(1の場合)には、RAM異常と判定し、RAM91cを初期化するようになっている。この場合、メイン制御部41と異なり、RAM91cが初期化されるのみで演出の実行が不能化されることはない。
尚、本実施例では、RAM91cに格納されている全てのデータが停電時においてもバックアップ電源により保持されるとともに、サブ制御部91は、電源投入時においてRAM91cのデータが正常であると判定した場合に、RAM91cの格納データに基づいて電断前の制御状態に復帰する構成であるが、RAM91cに格納されているデータのうち停電時において制御状態の復帰に必要なデータのみをバックアップし、電源投入時においてバックアップされているデータに基づいて電断前の制御状態に復帰する構成としても良い。
また、電源投入時において電断前の制御状態に復帰させる際に、全ての制御状態を電断前の制御状態に復帰させる必要はなく、遊技者に対して不利益とならない最低限の制御状態を復帰させる構成であれば良く、入力ポートの状態や、演出が途中で中断された場合の途中経過などを全て電断前の状態に復帰させる必要はない。
次に、メイン制御部41のRAM507の初期化について説明する。メイン制御部41のRAM507の格納領域は、重要ワーク、一般ワーク、特別ワーク、設定値ワーク、非保存ワーク、非初期化領域、未使用領域、スタック領域に区分されている。
重要ワークは、各種表示器やLEDの表示用データ、I/Oの入出力データ、遊技時間の計時カウンタ等、BB終了時に初期化すると不都合があるデータが格納されるワークである。一般ワークは、停止制御テーブル、停止図柄、メダルの払出枚数、BB中のメダル払出総数等、BB終了時に初期化可能なデータが格納されるワークである。特別ワークは、各種ソフトウェア乱数等、設定開始前にのみ初期化されるデータが格納されるワークである。非保存ワークは、各種スイッチ類の状態を保持するワークであり、起動時にRAM507のデータが破壊されているか否かに関わらず必ず値が設定されることとなる。非初期化ワークは、RAM異常エラーや設定変更時にも初期化されないデータが格納されるワークである。非初期化ワークには、さらに内部抽選処理で抽選を行う際に用いる設定値が格納される設定値ワーク、演出制御基板90へ送信されるコマンドが一時的に格納されるコマンドバッファ(コマンドバッファ内のコマンドは次回コマンドが格納されるまで維持されるので、最後に送信されたコマンドが常に格納されることとなる)、外部出力基板1000に対して出力されるメダルIN信号、メダルOUT信号、RB中信号、BB中信号、ドア開放信号、設定変更信号、投入エラー信号、払出エラー信号のうち外部出力基板1000から出力されるセキュリティ信号を構成するドア開放信号、設定変更信号、投入エラー信号、払出エラー信号の出力状態(on/offの状態)が格納されるセキュリティワークが割り当てられている。未使用領域は、RAM507の格納領域のうち使用していない領域であり、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなる。スタック領域は、メイン制御部41のレジスタから退避したデータが格納される領域であり、このうちの未使用スタック領域は、未使用領域と同様に、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなるが、使用中スタック領域は、プログラムの続行のため、初期化されることはない。
本実施例においてメイン制御部41は、設定キースイッチ37がonの状態での起動時、RAM異常エラー発生時、BB終了時、設定キースイッチ37がoffの状態での起動時でRAM507のデータが破壊されていないとき、1ゲーム終了時の5つからなる初期化条件が成立した際に、各初期化条件に応じて初期化される領域の異なる4種類の初期化を行う。
初期化1は、起動時において設定キースイッチ37がonの状態であり、設定変更状態へ移行する場合において、その前に行う初期化、またはRAM異常エラー発生時に行う初期化であり、初期化1では、RAM507の格納領域のうち、使用中スタック領域、非初期化領域を除く全ての領域(未使用領域及び未使用スタック領域を含む)が初期化される。初期化2は、BB終了時に行う初期化であり、初期化2では、RAM507の格納領域のうち、一般ワーク、未使用領域及び未使用スタック領域が初期化される。初期化3は、起動時において設定キースイッチ37がoffの状態であり、かつRAM507のデータが破壊されていない場合において行う初期化であり、初期化3では、非保存ワーク、未使用領域及び未使用スタック領域が初期化される。初期化4は、1ゲーム終了時に行う初期化であり、初期化4では、RAM507の格納領域のうち、未使用領域及び未使用スタック領域が初期化される。
尚、本実施例では、初期化1を設定変更状態の移行前に行っているが、設定変更状態の終了時に行ったり、設定変更状態移行前、設定変更状態終了時の双方で行うようにしても良い。
このように本実施例では、電源投入時などにRAM異常エラーが発生した場合には、初期化1が実行され、それ以前の制御状態が初期化されることとなるが、この際、非初期化領域に割り当てられたコマンドバッファ、設定値ワーク、セキュリティワークに格納されているデータは初期化されることがなく、保持されるようになっている。そして、この際、コマンドバッファにはRAM異常エラー発生時において最後に送信されたコマンドが、設定値ワークにはRAM異常エラー発生時の設定値が、セキュリティワークには、RAM異常エラー発生時のドア開放信号、設定変更信号、投入エラー信号、払出エラー信号の出力状態がそれぞれ格納された状態で保持されるので、これらのデータからRAM異常発生時において何らかのエラーコマンドが送信されているか、設定値の値が変更されていないか、ドア開放信号、設定変更信号、投入エラー信号、払出エラー信号の出力状態がどのような状態であったか、を特定することが可能となり、RAM異常の原因を特定すること、さらには、何らかの不正行為が行われた可能性を特定することができる。
さらに、RAM異常エラーを解消するために、設定値の変更操作を行っても、非初期化領域は初期化されることがなく、意図的に非初期化領域の格納データを初期化することは不可能であるため、不正行為によってRAM異常エラーが生じた場合でもその痕跡としてコマンドバッファ、設定値ワーク、セキュリティワークの格納データを残すことができる。
本実施例のスロットマシン1は、前述のように遊技状態に応じて設定可能な賭数の規定数が定められており、遊技状態に応じて定められた規定数の賭数が設定されたことを条件にゲームを開始させることが可能となる。尚、本実施例では、遊技状態に応じた規定数の賭数が設定された時点で、全ての入賞ラインL1〜L5が有効化される。
本実施例のスロットマシン1は、全てのリール2L、2C、2Rが停止した際に、有効化された入賞ライン(本実施例の場合、常に全ての入賞ラインが有効化されるため、以下では、有効化された入賞ラインを単に入賞ラインと呼ぶ)上に役と呼ばれる図柄の組み合わせが揃うと入賞となる。役は、同一図柄の組み合わせであっても良いし、異なる図柄を含む組み合わせであっても良い。入賞となる役の種類は、遊技状態に応じて定められているが、大きく分けて、メダルの払い出しを伴う小役と、賭数の設定を必要とせずに次のゲームを開始可能となる再遊技役と、遊技者にとって有利な遊技状態への移行を伴う特別役と、がある。以下では、小役と再遊技役をまとめて一般役とも呼ぶ。遊技状態に応じて定められた各役の入賞が発生するためには、後述する内部抽選に当選して、当該役の当選フラグがRAM507に設定されている必要がある。
尚、これら各役の当選フラグのうち、小役及び再遊技役の当選フラグは、当該フラグが設定されたゲームにおいてのみ有効とされ、次のゲームでは無効となるが、特別役の当選フラグは、当該フラグにより許容された役の組み合わせが揃うまで有効とされ、許容された役の組み合わせが揃ったゲームにおいて無効となる。すなわち特別役の当選フラグが一度当選すると、例え、当該フラグにより許容された役の組み合わせを揃えることができなかった場合にも、その当選フラグは無効とされずに、次のゲームへ持ち越されることとなる。
以下、本実施例の内部抽選について説明する。内部抽選は、上記した各役への入賞を許容するか否かを、全てのリール2L、2C、2Rの表示結果が導出表示される以前に(実際には、スタートスイッチ7の検出時)決定するものである。内部抽選では、まず、スタートスイッチ7の検出時に内部抽選用の乱数値(0〜65535の整数)を取得する。詳しくは、RAM507に割り当てられた乱数値格納ワークの値を同じくRAM507に割り当てられた抽選用ワークに設定する。そして、遊技状態及び特別役の持ち越しの有無に応じて定められた各役について、抽選用ワークに格納された数値データと、遊技状態、賭数及び設定値に応じて定められた各役の判定値数に応じて行われる。
乱数値格納ワークは、スタートスイッチ7の操作と同時に乱数値レジスタR1Dにラッチされた数値データが格納される記憶領域であり、乱数値レジスタR1Dに新たな数値データがラッチされる毎に、ラッチされた数値データがその後のタイマ割込処理(メイン)において読み出され、乱数値格納ワークに格納された数値データが新たにラッチされた最新の数値データに更新されるようになっている。
内部抽選では、内部抽選の対象となる役、現在の遊技状態及び設定値に対応して定められた判定値数を、内部抽選用の乱数値(抽選用ワークに格納された数値データ)に順次加算し、加算の結果がオーバーフローしたときに、当該役に当選したものと判定される。このため、判定値数の大小に応じた確率(判定値数/65536)で役が当選することとなる。
そして、いずれかの役の当選が判定された場合には、当選が判定された役に対応する当選フラグをRAM507に割り当てられた内部当選フラグ格納ワークに設定する。内部当選フラグ格納ワークは、2バイトの格納領域にて構成されており、そのうちの上位バイトが、特別役の当選フラグが設定される特別役格納ワークとして割り当てられ、下位バイトが、一般役の当選フラグが設定される一般役格納ワークとして割り当てられている。詳しくは、特別役が当選した場合には、当該特別役が当選した旨を示す特別役の当選フラグを特別役格納ワークに設定し、一般役格納ワークに設定されている当選フラグをクリアする。また、一般役が当選した場合には、当該一般役が当選した旨を示す一般役の当選フラグを一般役格納ワークに設定する。尚、いずれの役及び役の組み合わせにも当選しなかった場合には、一般役格納ワークのみクリアする。
次に、リール2L、2C、2Rの停止制御について説明する。
メイン制御部41は、リールの回転が開始したとき、及びリールが停止し、かつ未だ回転中のリールが残っているときに、ROM506Aに格納されているテーブルインデックス及びテーブル作成用データを参照して、回転中のリール別に停止制御テーブルを作成する。そして、ストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作が有効に検出されたときに、該当するリールの停止制御テーブルを参照し、参照した停止制御テーブルの滑りコマ数に基づいて、操作されたストップスイッチ8L、8C、8Rに対応するリール2L、2C、2Rの回転を停止させる制御を行う。
テーブルインデックスには、内部抽選による当選フラグの設定状態(以下、内部当選状態と呼ぶ)別に、テーブルインデックスを参照する際の基準アドレスから、テーブル作成用データが格納された領域の先頭アドレスを示すインデックスデータが格納されているアドレスまでの差分が登録されている。これにより内部当選状態に応じた差分を取得し、基準アドレスに対してその差分を加算することで該当するインデックスデータを取得することが可能となる。尚、役の当選状況が異なる場合でも、同一の制御が適用される場合においては、インデックスデータとして同一のアドレスが格納されており、このような場合には、同一のテーブル作成用データを参照して、停止制御テーブルが作成されることとなる。
テーブル作成用データは、停止操作位置に応じた滑りコマ数を示す停止制御テーブルと、リールの停止状況に応じて参照すべき停止制御テーブルのアドレスと、からなる。
リールの停止状況に応じて参照される停止制御テーブルは、全てのリールが回転しているか、左リールのみ停止しているか、中リールのみ停止しているか、右リールのみ停止しているか、左、中リールが停止しているか、左、右リールが停止しているか、中、右リールが停止しているか、によって異なる場合があり、更に、いずれかのリールが停止している状況においては、停止済みのリールの停止位置によっても異なる場合があるので、それぞれの状況について、参照すべき停止制御テーブルのアドレスが回転中のリール別に登録されており、テーブル作成用データの先頭アドレスに基づいて、それぞれの状況に応じて参照すべき停止制御テーブルのアドレスが特定可能とされ、この特定されたアドレスから、それぞれの状況に応じて必要な停止制御テーブルを特定できるようになっている。尚、リールの停止状況や停止済みのリールの停止位置が異なる場合でも、同一の停止制御テーブルが適用される場合においては、停止制御テーブルのアドレスとして同一のアドレスが登録されているものもあり、このような場合には、同一の停止制御テーブルが参照されることとなる。
停止制御テーブルは、停止操作が行われたタイミング別の滑りコマ数を特定可能なデータである。本実施例では、リールモータ32L、32C、32Rに、168ステップ(0〜167)の周期で1周するステッピングモータを用いている。すなわちリールモータ32L、32C、32Rを168ステップ駆動させることでリール2L、2C、2Rが1周することとなる。そして、リール1周に対して16ステップ(1図柄が移動するステップ数)毎に分割した21の領域(コマ)が定められており、これらの領域には、リール基準位置から0〜20の領域番号が割り当てられている。一方、1リールに配列された図柄数も21であり、各リールの図柄に対して、リール基準位置から0〜20の図柄番号が割り当てられているので、0番図柄から20番図柄に対して、それぞれ0〜20の領域番号が順に割り当てられていることとなる。そして、停止制御テーブルには、領域番号別の滑りコマ数が所定のルールで圧縮して格納されており、停止制御テーブルを展開することによって領域番号別の滑りコマ数を取得できるようになっている。
前述のようにテーブルインデックス及びテーブル作成用データを参照して作成される停止制御テーブルは、領域番号に対応して、各領域番号に対応する領域が停止基準位置(本実施例では、透視窓3の下段図柄の領域)に位置するタイミング(リール基準位置からのステップ数が各領域番号のステップ数の範囲に含まれるタイミング)でストップスイッチ8L、8C、8Rの操作が検出された場合の滑りコマ数がそれぞれ設定されたテーブルである。
次に、停止制御テーブルの作成手順について説明すると、まず、リール回転開始時においては、そのゲームの内部当選状態に応じたテーブル作成用データの先頭アドレスを取得する。具体的には、まずテーブルインデックスを参照し、内部当選状態に対応するインデックスデータを取得し、そして取得したインデックスデータに基づいてテーブル作成用データを特定し、特定したテーブル作成用データから全てのリールが回転中の状態に対応する各リールの停止制御テーブルのアドレスを取得し、取得したアドレスに格納されている各リールの停止制御テーブルを展開して全てのリールについて停止制御テーブルを作成する。
また、いずれか1つのリールが停止したとき、またはいずれか2つのリールが停止したときには、リール回転開始時に取得したインデックスデータ、すなわちそのゲームの内部当選状態に応じたテーブル作成用データの先頭アドレスに基づいてテーブル作成用データを特定し、特定したテーブル作成用データから停止済みのリール及び当該リールの停止位置の領域番号に対応する未停止リールの停止制御テーブルのアドレスを取得し、取得したアドレスに格納されている各リールの停止制御テーブルを展開して未停止のリールについて停止制御テーブルを作成する。
次に、メイン制御部41がストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作を有効に検出したときに、該当するリールに表示結果を導出させる際の制御について説明すると、ストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作を有効に検出すると、停止操作を検出した時点のリール基準位置からのステップ数に基づいて停止操作位置の領域番号を特定し、停止操作が検出されたリールの停止制御テーブルを参照し、特定した停止操作位置の領域番号に対応する滑りコマ数を取得する。そして、取得した滑りコマ数分リールを回転させて停止させる制御を行う。具体的には、停止操作を検出した時点のリール基準位置からのステップ数から、取得した滑りコマ数引き込んで停止させるまでのステップ数を算出し、算出したステップ数分リールを回転させて停止させる制御を行う。これにより、停止操作が検出された停止操作位置の領域番号に対応する領域から滑りコマ数分先の停止位置となる領域番号に対応する領域が停止基準位置(本実施例では、透視窓3の下段図柄の領域)に停止することとなる。
本実施例のテーブルインデックスには、一の遊技状態における一の内部当選状態に対応するインデックスデータとして1つのアドレスのみが格納されており、更に、一のテーブル作成用データには、一のリールの停止状況(及び停止済みのリールの停止位置)に対応する停止制御テーブルの格納領域のアドレスとして1つのアドレスのみが格納されている。すなわち一の遊技状態における一の内部当選状態に対応するテーブル作成用データ、及びリールの停止状況(及び停止済みのリールの停止位置)に対応する停止制御テーブルが一意的に定められており、これらを参照して作成される停止制御テーブルも、一の遊技状態における一の内部当選状態、及びリールの停止状況(及び停止済みのリールの停止位置)に対して一意となる。このため、遊技状態、内部当選状態、リールの停止状況(及び停止済みのリールの停止位置)の全てが同一条件となった際に、同一の停止制御テーブル、すなわち同一の制御パターンに基づいてリールの停止制御が行われることとなる。
また、本実施例では、滑りコマ数として0〜4の値が定められており、停止操作を検出してから最大4コマ図柄を引き込んでリールを停止させることが可能である。すなわち停止操作を検出した停止操作位置を含め、最大5コマの範囲から図柄の停止位置を指定できるようになっている。また、1図柄分リールを移動させるのに1コマの移動が必要であるので、停止操作を検出してから最大4図柄を引き込んでリールを停止させることが可能であり、停止操作を検出した停止操作位置を含め、最大5図柄の範囲から図柄の停止位置を指定できることとなる。
本実施例では、いずれかの役に当選している場合には、当選役を入賞ライン上に4コマの範囲で最大限引き込み、当選していない役が入賞ライン上に揃わないように引き込む滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う一方、いずれの役にも当選していない場合には、いずれの役も揃わない滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う。これにより、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で当選している役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役は、最大4コマの引込範囲でハズシて停止させる制御が行われることとなる。
特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合など、特別役と小役が同時に当選している場合には、当選した小役を入賞ラインに4コマの範囲で最大限に引き込むように滑りコマ数が定められているとともに、当選した小役を入賞ラインに最大4コマの範囲で引き込めない停止操作位置については、当選した特別役を入賞ラインに4コマの範囲で最大限に引き込むように滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う。これにより、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で当選している小役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、入賞ライン上に最大4コマの引込範囲で当選している小役を引き込めない場合には、入賞ライン上に最大4コマの引込範囲で当選している特別役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役は、4コマの引込範囲でハズシて停止させる制御が行われることとなる。すなわちこのような場合には、特別役よりも小役を入賞ライン上に揃える制御が優先され、小役を引き込めない場合にのみ、特別役を入賞させることが可能となる。尚、特別役と小役を同時に引き込める場合には、小役のみを引き込み、特別役と同時に小役が入賞ライン上に揃わないようになっている。
尚、本実施例では、特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合や新たに特別役と小役が同時に当選した場合など、特別役と小役が同時に当選している場合には、当選した特別役よりも当選した小役が優先され、小役が引き込めない場合のみ、特別役を入賞ライン上に揃える制御を行っているが、特別役と小役が同時に当選している場合に、小役よりも特別役を入賞ライン上に揃える制御が優先され、特別役を引き込めない場合にのみ、小役を入賞ライン上に揃える制御を行っても良い。
特別役が前ゲーム以前から持ち越されている状態で再遊技役が当選した場合など、特別役と再遊技役が同時に当選している場合には、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で再遊技役の図柄を揃えて停止させる制御が行われる。尚、この場合、再遊技役を構成する図柄または同時当選する再遊技役を構成する図柄は、リール2L、2C、2Rのいずれについても5図柄以内、すなわち4コマ以内の間隔で配置されており、4コマの引込範囲で必ず任意の位置に停止させることができるので、特別役と再遊技役が同時に当選している場合には、遊技者によるストップスイッチ8L、8C、8Rの操作タイミングに関わらずに、必ず再遊技役が揃って入賞することとなる。すなわちこのような場合には、特別役よりも再遊技役を入賞ライン上に揃える制御が優先され、必ず再遊技役が入賞することとなる。尚、特別役と再遊技役を同時に引き込める場合には、再遊技役のみを引き込み、再遊技役と同時に特別役が入賞ライン上に揃わないようになっている。
本実施例においてメイン制御部41は、リール2L、2C、2Rの回転が開始した後、ストップスイッチ8L、8C、8Rの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっている。尚、リール回転エラーの発生により、一時的にリールの回転が停止した場合でも、その後リール回転が再開した後、ストップスイッチ8L、8C、8Rの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっている。
尚、本実施例では、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっているが、リールの回転が開始してから、予め定められた自動停止時間が経過した場合に、リールの停止操作がなされない場合でも、停止操作がなされたものとみなして自動的に各リールを停止させる自動停止制御を行うようにしても良い。この場合には、遊技者の操作を介さずにリールが停止することとなるため、例え、いずれかの役が当選している場合でもいずれの役も構成しない表示結果を導出させることが好ましい。
次に、本実施例におけるメイン制御部41が実行する各種制御内容を、図25〜図44に基づいて以下に説明する。
メイン制御部41は、リセット回路49からシステムリセット信号が入力されると、図25のフローチャートに示す起動処理(メイン)を行う。また、ユーザリセット信号が入力された場合には、起動処理(メイン)のSa2のステップから処理を開始する。すなわち電源投入に伴う起動の場合のみセキュリティチェック処理を行うセキュリティモードから開始する一方、ウォッチドッグタイマ49aのタイムアップによる起動の場合には、セキュリティチェック処理を省略してROM506に記憶されたユーザプログラムを実行するユーザモードから開始されることになる。
システムリセット信号の入力に伴う起動処理(メイン)では、まず、CPU505がROM506から読み出したセキュリティチェックプログラム506Aに基づき、図26に示すセキュリティチェック処理を実行する(Sa1)。このとき、メイン制御部41は、セキュリティモードとなり、ROM506に記憶されているゲーム制御用のユーザプログラムは未だ実行されない状態となる。
セキュリティチェック処理では、図26に示すように、まず、セキュリティモードに制御する時間(セキュリティ時間)を決定するための処理を実行する。このとき、CPU505は、ROM506のプログラム管理エリアに記憶されるセキュリティ時間設定KSESのビット番号[2−0]におけるビット値を読み出す(Sa101)。そして、この読出値が“000”であるか否かを判定する(Sa102)。
Sa102にて読出値が“000”と判定された場合には、定常設定時間を既定の固定時間に設定する(Sa103)。ここで、定常設定時間は、セキュリティ時間のうち、システムリセットの発生等に基づくセキュリティチェック処理の実行回数(メイン制御部41がセキュリティモードとなる回数)に関わりなく、一定となる時間成分である。また、固定時間は、セキュリティ時間のうち、メイン制御部41の仕様などに基づいて予め定められた不変時間成分であり、例えばセキュリティ時間として設定可能な最小値となるものであれば良い。
Sa102にて読出値が“000”以外と判定された場合には、その読出値に対応して、固定時間に加えて図10(D)に示す設定内容により選択される延長時間を、定常設定時間に設定する(Sa104)。こうして、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“000”以外の値である場合には、セキュリティチェック処理の実行時間であるセキュリティ時間を、固定時間に加えて予め選択可能な複数の延長時間のいずれかに設定することができる。
Sa103、Sa104の処理のいずれかを実行した後には、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値を読み出す(Sa105)。そして、この読出値が“00”であるか否かを判定する(Sa106)。
Sa106にて読出値が“00”と判定された場合には、定常設定時間をセキュリティ時間に設定する(Sa107)。これに対して、読出値が“00”以外と判定された場合には、その読出値に対応して決定される可変設定時間を、定常設定時間に加算してセキュリティ時間に設定する(Sa108)。ここで、可変設定時間は、セキュリティ時間のうち、セキュリティチェック処理が実行されるごとに変化する時間成分であり、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“01”(ショートモード)であるか“10”(ロングモード)であるかに応じて異なる所定の時間範囲で変化する。例えば、システムリセットの発生時に、所定のフリーランカウンタにおけるカウント値がメイン制御部41に内蔵された可変セキュリティ時間用レジスタに格納される場合には、Sa108の処理において、可変セキュリティ時間用レジスタの格納値をそのまま用いること、あるいは、その格納値を所定の演算関数(例えばハッシュ関数)に代入して得られた値を用いることなどにより、可変設定時間がシステムリセット毎に所定の時間範囲でランダムに変化するように決定されれば良い。こうして、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“00”以外の値である場合には、セキュリティチェック処理の実行時間であるセキュリティ時間を、システムリセットの発生等に基づくセキュリティチェック処理が実行されるごとに所定の時間範囲で変化させることができる。
ここで、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“000”以外の値であり、かつ、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“00”以外の値である場合には、Sa104のステップにて設定される延長時間と、Sa108のステップにて設定される可変設定時間との双方が、固定時間に加算されて、セキュリティ時間が決定されることになる。
Sa107、Sa108の処理のいずれかを実行した後には、ROM506の所定領域に記憶されたセキュリティコードを読み出す(Sa109)。ここで、ROM506の所定領域には、記憶内容のデータを所定の演算式によって演算した演算結果のセキュリティコードが予め記憶されている。セキュリティコードの生成方法としては、例えばハッシュ関数を用いてハッシュ値を生成するもの、エラー検出コード(CRCコード)を用いるもの、エラー訂正コード(ECCコード)を用いるもののいずれかといった、予め定められた生成方法を使用すれば良い。また、ROM506のセキュリティコード記憶領域とは異なる所定領域には、セキュリティコードを演算により特定するための演算式が、暗号化して予め記憶されている。
ステップSa109の処理に続いて、暗号化された演算式を復号化して元に戻す(Sa110)。その後、Sa110で復号化した演算式により、ROM506の所定領域における記憶データを演算してセキュリティコードを特定する(Sa111)。このときセキュリティコードを特定するための演算に用いる記憶データは、例えばROM506の記憶データのうち、セキュリティチェックプログラム506Aとは異なるユーザプログラムの全部又は一部に相当するプログラムデータ、あるいは、所定のテーブルデータを構成する固定データの全部又は一部であれば良い。そして、Sa109にて読み出したセキュリティコードと、Sa111にて特定されたセキュリティコードとを比較する(Sa112)。このときには、比較結果においてセキュリティコードが一致したか否かを判定する(Sa113)。
Sa113にてセキュリティコードが一致しない場合には、ROM506に不正な変更が加えられたと判断して、CPU505の動作を停止状態(HALT)へ移行させる。これに対して、Sa113にてセキュリティコードが一致した場合には、プログラム管理エリアに記憶されている第1乱数初期設定KRS1や第2乱数初期設定KRS2を読み出して、図27に示す乱数回路設定処理を実行した後(Sa114)、乱数回路509における動作異常の有無を検査するために図28に示す乱数回路異常検査処理を実行する(Sa115)。
図27に示す乱数回路設定処理では、まず、第1乱数初期設定KRS1のビット番号[3]におけるビット値に基づき、乱数回路509を使用するための設定を行う(Sa201)。本実施例では、第1乱数初期設定KRS1のビット番号[3]におけるビット値が予め“1”とされており、このビット値に対応して乱数回路509を使用する設定が行われる。続いて、第1乱数初期設定KRS1のビット番号[2]におけるビット値に基づき、乱数回路509における乱数更新クロックRGKの設定を行う(Sa202)。本実施例では、第1乱数初期設定KRS1のビット番号[2]におけるビット値が予め“1”とされていることに対応して、乱数用クロック生成回路43で生成された乱数用クロックRCLKを2分周して乱数更新クロックRGKとする設定が行われる。
Sa202での設定を行った後には、第1乱数初期設定KRS1のビット番号[1−0]におけるビット値に基づき、乱数回路509における乱数更新規則の設定を行う(Sa203)。本実施例では、第1乱数初期設定KRS1のビット番号[1−0]におけるビット値として予め“10”が設定されており、乱数列RSNにおける乱数更新規則を2周目以降は自動で変更する設定がなされる。
続いて、第2乱数初期設定KRS2のビット番号[1]におけるビット値に基づき、乱数値となる数値データにおける起動時スタート値を決定する(Sa204)。本実施例では、第2乱数初期設定KRS2のビット番号[1]におけるビット値として予め“1”が設定されており、乱数のスタート値をIDナンバーに基づく値とする設定がなされる。
さらに、第2乱数初期設定KRS2のビット番号[0]におけるビット値に基づき、乱数値となる数値データのスタート値をシステムリセット毎に変更するか否かの設定を行う(Sa205)。本実施例では、第2乱数初期設定KRS2のビット番号[0]におけるビット値が予め“0”とされており、Sa204にて設定した起動時スタート値をそのまま用いて、乱数回路509におけるスタート値としている。Sa205の処理による設定が完了すると、乱数回路509では乱数値の生成動作が開始されることとなる。尚、第2乱数初期設定KRS2のビット番号[0]におけるビット値が予め“1”とされている場合には、乱数のスタート値をシステムリセット毎に変更する設定がなされる。この場合には、例えば、システムリセットの発生時に、所定のフリーランカウンタにおけるカウント値がメイン制御部41に内蔵された乱数スタート値用レジスタに格納される場合には、Sa205の処理において、乱数スタート値用レジスタの格納値をそのまま用いること、あるいは、その格納値を所定の演算関数(例えばハッシュ関数)に代入して得られた値を用いることなどにより、乱数のスタート値がシステムリセット毎に所定の数値範囲(例えば乱数生成回路553にて生成されるカウント値順列RCNに含まれる数値データの全部又は一部を含む範囲)でランダムに変化するように決定されれば良い。
尚、乱数回路設定処理による設定は、CPU505の処理が介在することなく、乱数回路509がプログラム管理エリアの記憶データに基づき自律的に行うようにしても良い。この場合、乱数回路509は、メイン制御部41がセキュリティモードとなっているときには初期設定を行わず、乱数値の生成動作が行われないようにしても良い。そして、メイン制御部41にてCPU505がROM506に記憶されたユーザプログラムを読み出してユーザモードが開始されたときに、例えばCPU505から乱数回路509に対して初期設定を指示する制御信号が伝送されたことなどに応答して、乱数回路509が初期設定を行ってから乱数値の生成動作を開始するようにしても良い。また、特に乱数回路509がメイン制御部41に外付けされる場合などには、メイン制御部41がセキュリティモードとなっているときでも、乱数回路509がCPU505における処理とは独立して、プログラム管理エリアの記憶データに基づく初期設定を行ってから、乱数値の生成動作を開始するようにしても良い。
図28に示す乱数回路異常検査処理では、まず乱数用クロック異常判定カウンタをクリアして、そのカウント値である乱数用クロック異常判定カウント値を「0」に初期化する(Sa301)。続いて、内部情報レジスタCIFのビット番号[4]に格納されている内部情報データCIF4を読み出す(Sa302)。そして、Sa302での読出値が“1”であるか否かを判定する。このとき、乱数回路509が備える周波数監視回路551によって、乱数用外部クロック端子ERCからの乱数用クロックRCLKに周波数異常が検知された場合には、内部情報データCIF4としてビット値“1”が書き込まれる。
そこで、Sa303にて読出値が“1”と判定された場合には、乱数用クロック異常判定カウント値を1加算するように更新する(Sa304)。このときには、Sa304での更新後におけるカウント値が所定のクロック異常判定値に達したか否かを判定する(Sa305)。ここで、クロック異常判定値は、周波数監視回路551により乱数用クロックRCLKの周波数異常が連続して検知された場合にクロック異常と判定するために予め定められた数値であれば良い。Sa305にてクロック異常判定値に達していなければ、Sa302の処理に戻り、再び内部情報データCIF4のビット値に基づく判定を行う。
Sa305にてクロック異常判定値に達した場合には、乱数用クロックが正常に機能していないと判断して、CPU505の動作を停止状態(HALT)へ移行させる。
Sa303にて読出値が“0”と判定された場合には、乱数値異常判定カウンタをクリアして、そのカウント値である乱数値異常判定カウント値を「0」に初期化する(Sa306)。尚、Sa303の処理では、Sa302にて読み出した内部情報データCIF4のビット値が複数回(例えば2回など)連続して“0”となったときに、読出値が“0”であると判定しても良い。
Sa306の処理に続いて、乱数値における異常の有無をチェックするために用いるチェック値を、初期値「0000H」に設定する(Sa307)。そして、乱数回路509が備える乱数値レジスタR1Dとなる乱数値レジスタ559Aから、格納されている乱数値となる数値データを読み出す(Sa308)。例えば、Sa308の処理では、乱数ラッチ選択レジスタRDLSのビット番号[0]に格納される乱数ラッチ選択データRDLS0のビット値を“0”として、ソフトウェアによる乱数値の取り込みを指定する。続いて、乱数値取込指定レジスタRDLTのビット番号[0]に格納される乱数値取込指定データRDLT0のビット値を“1”として、乱数値レジスタR1Dへの取り込みを指定する。尚、乱数値取込指定レジスタRDLTのビット番号[0]におけるビット値を“1”とすることは、CPU505から乱数回路509に対して数値データの取り込み(ラッチ)を指示するラッチ信号を出力することに相当する。その後、乱数値レジスタR1Dに供給するレジスタリード信号RRS1をオン状態とすることにより、格納されている乱数値となる数値データを読み出すようにすれば良い。
Sa308にて数値データを読み出した後には、その読出値を乱数検査基準値に設定する(Sa309)。続けて、さらに乱数値レジスタ559Aから乱数値となる数値データを読み出す(Sa310)。尚、Sa310での読出動作は、Sa308での読出動作と同様の手順で行われれば良い。また、Sa308での読出動作と、Sa310での読出動作との間には、乱数回路509で生成される乱数列RSNにおける数値データが変化するために十分な遅延時間を設けると良い。Sa310にて数値データを読み出した後には、乱数検査基準値と、Sa310での読出値との排他的論理和演算を実行する(Sa311)。また、Sa311での演算結果と、チェック値との論理和演算を実行し、演算結果を新たなチェック値とするように更新させる(Sa312)。例えば、チェック値はRAM507の所定領域に記憶しておき、Sa312の処理が実行される毎に、その処理で得られた演算結果を新たなチェック値として保存すれば良い。これにより、乱数値レジスタ559Aから読み出した数値データにおける全ビットの変化が記録され、複数回の読出中に少なくとも1回は値が変化したビットであれば、チェック値において対応するビット値が“1”となる。
そこで、チェック値が「FFFFH」となったか否かを判定し(Sa313)、なっていれば、全ビットについてビット値の変化が認められることから、乱数値が正常に更新されていると判断して、乱数回路異常検査処理を終了する。尚、乱数値が正常に更新されていることを確認できた場合には、乱数ラッチ選択レジスタRDLSのビット番号[0]に格納される乱数ラッチ選択データRDLS0のビット値を“1”として、入力ポートP0への信号入力に応じた乱数値レジスタR1Dへの乱数値取込を、指示するよう設定される。本実施例では、入力ポートP0にスタートスイッチ7からのゲーム開始信号SS1を伝送する配線が接続される。これにより、ゲーム開始信号SS1がオン状態となったときに乱数値レジスタR1Dへの乱数値取込を行うことができる。
Sa313にてチェック値が「FFFFH」以外と判定された場合には、乱数値異常判定カウント値を1加算するように更新する(Sa314)。このときには、Sa314での更新後におけるカウント値が所定の乱数値異常判定値に達したか否かを判定する(Sa315)。ここで、乱数値異常判定値は、乱数回路509が正常動作していれば、乱数値レジスタ559Aから読み出される数値データの全ビットが少なくとも1回は変化するのに十分な判定回数となるように、予め定められた数値であれば良い。Sa315にて乱数値異常判定値に達していなければ、Sa310の処理に戻り、再び乱数回路509から乱数値となる数値データを読み出して異常の有無をチェックするための判定などを行う。
Sa315にて乱数値異常判定値に達した場合には、乱数用クロックが正常に機能していないと判断して、CPU505の動作を停止状態(HALT)へ移行させる。
尚、乱数回路異常検査処理は、CPU505が実行するものに限定されず、CPU505以外のメイン制御部41における内蔵回路により乱数回路異常検査処理が実行されても良い。一例として、乱数回路509が乱数回路異常検査処理を実行する機能を有し、乱数用クロックRCLKの周波数異常が検知されたときや、乱数値の異常が検知されたときに、エラーの発生をCPU505に通知するようにしても良い。また、乱数回路異常検査処理は、起動時に実行されるものに限定されず、例えばメイン制御部41にてタイマ割込みが発生する毎に、乱数回路異常検査処理の一部又は全部が実行されるようにしても良い。
図26に戻り、Sa114の乱数回路設定処理及びSa115の乱数回路異常検査処理の後、Sa107やSa108の処理で設定されたセキュリティ時間が経過したか否かを判定する(Sa116)。このとき、セキュリティ時間が経過していなければ、Sa116の処理を繰り返し実行して、セキュリティ時間が経過するまで待機する。そして、Sa116にてセキュリティ時間が経過したと判定された場合には、セキュリティチェック処理を終了し、CPU505に内蔵されたプログラムカウンタの値をROM506におけるユーザプログラムの先頭アドレス(アドレス0000H)に設定することなどにより、メイン制御部41の動作状態がセキュリティモードからユーザモードへと移行し、ROM506に記憶されたユーザプログラムの実行が開始されることになる。尚、前述のようにユーザリセット信号の入力に伴う起動時には、セキュリティモードを経ずにユーザモードから開始することとなる。
ユーザモードではまず、シリアル通信回路511等の内蔵デバイスや周辺IC、割込モード、スタックポインタ等を初期化した後(Sa2)、Iレジスタ及びIYレジスタの値を初期化する(Sa3)。Iレジスタ及びIYレジスタの初期化により、Iレジスタには、割込発生時に参照する割込テーブルのアドレスが設定され、IYレジスタには、RAM507の格納領域を参照する際の基準アドレスが設定される。これらの値は、固定値であり、起動時には常に初期化されることとなる。
次いで、RAM507へのアクセスを許可し(Sa4)、RAM507の全ての格納領域(未使用領域及び未使用スタック領域を含む)のRAMパリティを計算する(Sa5)。ついで、打止スイッチ36、自動精算スイッチ29の状態を取得し、メイン制御部41の特定のレジスタに打止機能、自動精算機能の有効/無効を設定した後(Sa6)。後述するポート入力処理において取得した各スイッチの入力データ、前回と今回の入力データが同じ状態を示す各スイッチの確定データ、前回と今回の確定データが異なる状態を示す各スイッチのエッジデータをそれぞれクリアし(Sa7)、さらに停電が検知された旨を示す電断フラグをクリアする(Sa8)。さらに、ドア開放検出スイッチ25の検出状態の監視間隔を計時するドア監視タイマの値、ドア開放検出スイッチ25からの検出信号の入力状態の履歴をクリアし(Sa9)、操作検出コマンド送信要求及びドアコマンド送信要求2をクリアするとともに、ドアコマンド送信要求1を設定する(Sa10)。
次いで、乱数ラッチフラグレジスタの値に基づいて乱数値がラッチされているか否か、すなわち乱数値レジスタ559Aに数値データが取り込まれているか否かを判定し(Sa11)、乱数値がラッチされていなければSa13のステップに進み、Sa11のステップにおいて乱数値がラッチされていれば、乱数値レジスタ559Aから内部抽選用の乱数値を読み出し(Sa12)、Sa13のステップに進む。尚、Sa12のステップにおいて乱数値レジスタ559から内部抽選用の乱数値が読み出されると乱数ラッチフラグレジスタがクリアされ、新たな数値データの取り込みが許可されることとなる。また、Sa12のステップにおいては、内部抽選用の乱数値を読み出すものの、読み出した乱数値を用いる訳ではなく、スタートスイッチ7の操作に応じて新たな乱数値の取り込みを可能とするためにダミーとして読み出すものである。
Sa13のステップでは、Sa5のステップにおいて計算したRAMパリティが0か否かを判定する。正常に電断割込処理(メイン)が行われていれば、RAMパリティが0になるはずであり、Sa13のステップにおいてRAMパリティが0でなければ、RAM507に格納されているデータが正常ではなく、この場合には、RAM507の格納領域のうち、使用中スタック領域、非初期化領域を除く全ての格納領域を初期化する初期化1を実行した後(Sa26)、設定キースイッチ37がonか否かを判定し(Sa27)、設定キースイッチ37がonであれば、設定開始を示す設定コマンドを生成し、コマンドバッファに格納し(Sa23)、コマンドバッファに格納されたコマンドをシリアル通信回路511の送信データレジスタ561に転送するコマンド格納処理を行い(Sa24)、割込を許可して(Sa25)、設定変更処理、すなわち設定変更状態に移行する。
Sa24のコマンド格納処理では、図29(a)に示すように、コマンドバッファに格納されているコマンドデータのうち1バイト目のデータを送信データレジスタ561に転送し(Sx1)、その後、コマンドバッファに格納されているコマンドデータのうち2バイト目のデータを送信データレジスタ561に転送する(Sx2)。そして、送信データレジスタ561に転送されたコマンドデータは、前述のように送信データレジスタ561に転送された順番でシリアルデータ化され、送信用シフトレジスタ562に格納され、サブ制御部91に対して送信されることとなる。
Sa24のステップにおいて設定キースイッチ37がoffであれば、RAM異常を示すエラーコードをレジスタに設定し(Sa28)、RAM異常を示すエラーコマンドを生成してコマンドバッファに格納し(Sa29)、コマンド格納処理を行ってコマンドバッファ内のエラーコマンドを送信データレジスタ561に転送し(Sa30)、割込を許可して(Sa31)、エラー処理、すなわちRAM異常エラー状態に移行する。
Sa13のステップにおいて、RAMパリティが0であれば、更に破壊診断用データが正常か否かを判定する(Sa14)。正常に電断処理(メイン)が行われていれば、破壊診断用データが設定されているはずであり、Sa14のステップにおいて破壊診断用データが正常でない場合(破壊診断用データが電断時に格納される5A(H)以外の場合)にも、RAM507のデータが正常ではないので、Sa26のステップに移行して初期化1を実行し、その後、Sa27のステップにおいて設定キースイッチ37がonであれば、設定開始を示す設定コマンドの生成(Sa23)、コマンド格納処理(Sa24)の後、割込を許可して(Sa25)、設定変更処理に移行する。また、Sa27のステップにおいて設定キースイッチ37がoffであれば、RAM異常を示すエラーコードの設定(Sa28)、RAM異常を示すエラーコマンドの生成(Sa29)、コマンド格納処理(Sa30)の後、割込を許可して(Sa31)、エラー処理に移行する。
Sa14のステップにおいて破壊診断用データが正常であると判定した場合には、RAM507のデータは正常であるので、破壊診断用データをクリアし(Sa15)、RAM507の非保存ワーク、未使用領域及び未使用スタック領域を初期化する初期化3を行った後(Sa16)、設定キースイッチ37がonか否かを判定し(Sa17)、設定キースイッチ37がonであれば、Sa22のステップに移行して初期化1を実行し、設定開始を示す設定コマンドの生成(Sa23)、コマンド格納処理(Sa24)の後、割込を許可して(Sa25)、設定変更処理に移行する。
Sa17のステップにおいて設定キースイッチ37がoffであれば、各レジスタを電断前の状態、すなわちスタックに保存されている状態に復帰し(Sa18)、復帰コマンドを生成してコマンドバッファに格納し(Sa19)、コマンド格納処理を行ってコマンドバッファ内の復帰コマンドを送信データレジスタ561に転送し(Sa20)、割込を許可してSa21)、電断前の最後に実行していた処理に戻る。
このように起動処理では、システムリセット時のみセキュリティモードの後、ユーザモードに移行するのに対してユーザリセット時には、セキュリティモードを省き、ユーザモードから開始するようになっている。
システムリセット時のセキュリティモードでは、乱数回路509の設定を行う乱数回路設定処理を行うとともに、乱数回路設定処理において乱数の更新規則の設定や乱数のスタート値の設定などが行われる一方でユーザリセット時には、セキュリティモードは省略され、ユーザモードから開始することとなる。このため、システムリセット時には、乱数の初期値が設定し直されるのに対して、ユーザリセット時には、乱数回路509の設定は行われず、リセット前からの状態のまま乱数となる数値データの更新が継続されることとなる。また、セキュリティモードの間は、割込が許可されることがなく、ユーザモードへ移行した後に割込が許可されるので、システムリセット時においては、割込が許可されるよりも前に、これら乱数回路509の設定が行われることとなる。
また、システムリセットであるかユーザリセットであるかに関わらず、RAM507へのアクセスが許可された後、他の処理を行うことなく、まず、RAM507の全ての格納領域(未使用領域及び未使用スタック領域を含む)のRAMパリティを計算し、その後、計算したRAMパリティから格納データが正常か否かの判定を行う前に、RAM507の格納データが正常か否かに関わらず共通して行う必要のある処理として、打止機能、自動精算機能の有効/無効の設定、各スイッチの入力データ、確定データ、エッジデータのクリア、電断フラグのクリア、ドア開放検出スイッチ25の検出状態の監視間隔を計時するドア監視タイマの値、ドア開放検出スイッチ25からの検出信号の入力状態の履歴のクリア、ドアコマンド送信要求2のクリア及びドアコマンド送信要求1の設定、乱数値レジスタ559Aからの乱数値の読み出し、を行い、その後、RAMパリティに基づいてRAM507の格納データが正常か否かの判定を行うようになっている。
図30は、メイン制御部41が実行するエラー処理の制御内容を示すフローチャートである。
エラー処理では、まず、現在の遊技補助表示器12の表示状態をスタックに退避し(Sb1)、レジスタに格納されているエラーコードを遊技補助表示器12に表示し(Sb2)、エラーコードがRAM異常エラーであるか否かを判定し(Sb3)、RAM異常エラーを示すエラーコードである場合には、いずれの処理も行わないループ処理に移行する。
Sb3のステップにおいてRAM異常エラーを示すエラーコードではないと判定された場合には、エラー状態の発生及びその種類を示すエラーコマンドを生成し、コマンドバッファに格納し(Sb4)、コマンド格納処理を行ってコマンドバッファ内のエラーコマンドを送信データレジスタ561に転送する(Sb5)。
次いで、リセット/設定スイッチ38のoffからonの変化が検出されたか否かを判定し(Sb6)、リセット/設定スイッチ38のoffからonの変化が検出されていなければ、更にリセットスイッチ23のoffからonの変化が検出されているか否かを判定し(Sb7)、リセットスイッチ23のoffからonの変化も検出されていなければ、Sb6のステップに戻る。すなわちリセット/設定スイッチ38またはリセットスイッチ23のoffからonの変化が検出されるまで、遊技の進行が不能な状態で待機する。
そして、Sb6のステップにおいてリセット/設定スイッチ38のoffからonの変化が検出された場合、またはSb7のステップにおいてリセットスイッチ23のoffからonの変化が検出された場合には、スイッチの検出状態がoffからonに変化した旨またはonからoffに変化した旨を示すエッジデータ(offからonに変化した場合には立上りエッジと呼び、onからoffに変化した場合には立ち下がりエッジと呼ぶ)をクリアし(Sb8)、レジスタに格納されているエラーコードをクリアし(Sb9)、遊技補助表示器12の表示状態をSb1のステップにおいてスタックに退避した表示状態に復帰させ(Sb10)、エラー状態が解除された旨を示すエラーコマンドを生成してコマンドバッファに格納し(Sb11)、コマンド格納処理を行ってコマンドバッファ内のエラーコマンドを送信データレジスタ561に転送した後(Sb12)、もとの処理に戻る。
このようにエラー処理においては、RAM異常以外によるエラー処理であれば、リセット/設定スイッチ38またはリセットスイッチ23が操作されることで、エラー状態を解除してもとの処理に復帰するが、RAM異常によるエラー処理であれば、リセット/設定スイッチ38またはリセットスイッチ23が操作されてもエラー状態が解除され、元の状態に復帰することはない。
図31は、メイン制御部41が実行する設定変更処理の制御内容を示すフローチャートである。
設定変更処理では、まず、RAM507の設定値ワークに格納されている設定値を読み出して、読み出した値を表示値とし(Sc1)、表示値が設定可能な範囲(1〜6)外か否かを判定し(Sc2)、表示値が設定可能な範囲内であればSc4のステップに進み、表示値が設定可能な範囲外であれば、表示値を1に補正し、Sc5のステップに進む。
Sc5のステップでは、設定値表示器24に表示値を表示させた後、リセット/設定スイッチ38とスタートスイッチ7のoffからonの変化の検出待ちの状態となり(Sc5、Sc6)、Sc5のステップにおいてリセット/設定スイッチ38のoffからonの変化が検出されると、エッジデータをクリアし(Sc9)、表示値を1加算し(Sc10)、Sc2のステップに戻る。
また、Sc6のステップにおいてスタートスイッチ7のoffからonの変化が検出された場合には、エッジデータをクリアし(Sc9)、さらに後述の確定データを参照して他のスイッチがonの状態か否かを判定し(Sc10)、いずれかのスイッチがonの状態であれば、Sc5のステップに戻り、いずれのスイッチもonの状態でなければ、設定値表示器24に表示されている値を0に更新し(Sc11)、設定キースイッチ37がoffの状態となるまで待機する(Sc12)。
Sc11のステップにおいて設定キースイッチ37のoffが判定されると、表示値を設定値ワークに格納して(Sc13)、設定の終了及び新たな設定値を示す設定コマンドを生成してコマンドバッファに格納し(Sc14)、コマンド格納処理を行ってコマンドバッファ内の設定コマンドを送信データレジスタ561に転送し(Sc15)、ゲーム処理に移行する。
図32は、メイン制御部41が実行するゲーム処理の制御内容を示すフローチャートである。
ゲーム処理では、BET処理(Sd1)、内部抽選処理(Sd2)、リール回転処理(Sd3)、入賞判定処理(Sd4)、払出処理(Sd5)、ゲーム終了時処理(Sd6)を順に実行し、ゲーム終了時処理が終了すると、再びBET処理に戻る。
Sd1のステップにおけるBET処理では、賭数を設定可能な状態で待機し、遊技状態に応じた規定数の賭数が設定され、スタートスイッチ7が操作された時点でゲームを開始させる処理を実行する。
Sd2のステップにおける内部抽選処理では、Sd1のステップにおけるスタートスイッチ7の検出によるゲーム開始と同時にラッチされた内部抽選用の乱数値に基づいて上記した各役への入賞を許容するかどうかを決定する処理を行う。この内部抽選処理では、それぞれの抽選結果に基づいて、RAM507に当選フラグが設定される。
Sd3のステップにおけるリール回転処理では、各リール2L、2C、2Rを回転させる処理、遊技者によるストップスイッチ8L、8C、8Rの操作が検出されたことに応じて対応するリール2L、2C、2Rの回転を停止させる処理を実行する。
Sd4のステップにおける入賞判定処理では、Sd3のステップにおいて全てのリール2L、2C、2Rの回転が停止したと判定した時点で、各リール2L、2C、2Rに導出された表示結果に応じて入賞が発生したか否かを判定する処理を実行する。
Sd5のステップにおける払出処理では、Sd4のステップにおいて入賞の発生が判定された場合に、その入賞に応じた払出枚数に基づきクレジットの加算並びにメダルの払出等の処理を行う。
Sd6のステップにおけるゲーム終了時処理では、次のゲームに備えて遊技状態を設定する処理を実行する。
また、ゲーム処理では、ゲームの進行制御に応じてコマンドを生成してコマンドバッファに設定し、直後にコマンド格納処理を実行することでコマンドバッファに格納されたコマンドがシリアル通信回路511の送信データレジスタ561に転送され、サブ制御部91に送信されるようになっている。
図33〜図35は、メイン制御部41がSd1のステップにおいて実行するBET処理の制御内容を示すフローチャートである。
BET処理では、まず、RAM507において賭数の値が格納されるBETカウンタの値をクリアし(Se1)、遊技状態に応じた規定数をRAM507に設定し(Se2)、RAM507にリプレイゲームである旨を示すリプレイゲームフラグが設定されているか否かに基づいて当該ゲームがリプレイゲームであるか否かを判定する(Se3)。
Se3のステップにおいて当該ゲームがリプレイゲームであると判定された場合には、賭数が3加算された旨を示すBETコマンドを生成してコマンドバッファに格納し(Se4)、コマンド格納処理を行ってコマンドバッファ内のBETコマンドを送信データレジスタ561に転送し(Se5)、BETカウンタの値を1加算し(Se6)、RAM507に設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否か、すなわちゲームの開始条件となる賭数が設定されているか否かを判定し(Se7)、BETカウンタの値が規定数でなければSe6のステップに戻り、BETカウンタの値が規定数であれば、メダルの投入不可を示す投入不可フラグをRAM507に設定し(Se8)、Se10のステップに進む。
Se3のステップにおいて当該ゲームがリプレイゲームでないと判定されれば、投入待ち前の設定を行い(Se9)、Se10のステップに進む。投入待ち前の設定では、RAM507に設定されている投入不可フラグをクリアし、メダルの投入が可能な状態とする。
Se10のステップでは、レジスタにエラーコードが設定されているか否か、すなわちエラーが検知されたか否かを判定し、エラーコードが設定されていれば、図30に示すエラー処理に移行する。
Se10のステップにおいてエラーコードが設定されていなければ、RAM507に投入不可フラグが設定されているか否かに基づいてメダルの投入が可能な状態か否かを判定する(Se11)。Se11のステップにおいてメダルの投入が可能な状態であると判定された場合には、流路切替ソレノイド30をonの状態とし、メダルの流路をホッパータンク側の経路としてメダルの投入が可能な状態とし(Se12)、Se14のステップに進み、メダルの投入が可能な状態でないと判定された場合には、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Se13)、Se14のステップに進む。
Se14のステップにおいては、設定キースイッチ37がonの状態か否かを判定し、設定キースイッチ37がonであれば、BETカウンタの値が0か否かを判定する(Se15)。そして、Se15のステップにおいてBETカウンタの値が0であれば、設定確認開始を示す設定確認コマンドを生成してコマンドバッファに格納し(Se16)、コマンド格納処理を行ってコマンドバッファ内の設定確認コマンドを送信データレジスタ561に転送し(Se17)、設定確認処理(Se18)、すなわち設定確認状態に移行する。Se18のステップにおける設定確認処理が終了した後は、Se10のステップに戻る。
Se14のステップにおいて設定キースイッチ37がonではない場合またはSe15のステップにおいてBETカウンタの値が0ではない場合には、Se19のステップに進み、投入メダルセンサ31により投入メダルの通過が検出されたか否か、すなわち投入メダルの通過が検出された旨を示す投入メダルフラグの有無を判定する。Se19のステップにおいて投入メダルの通過が検出されていなければ、Se31のステップに進み、投入メダルの通過が検出されていれば、投入メダルフラグをクリアし(Se20)、RAM507に投入不可フラグが設定されているか否かに基づいてメダルの投入が可能な状態か否かを判定し(Se21)、メダルの投入が可能な状態でなければSe31のステップに進む。
Se21のステップにおいてメダルの投入が可能な状態であれば、RAM507に設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定し(Se22)、BETカウンタの値が規定数でなければ、BETカウンタの値を1加算し(Se23)、賭数が1加算された旨を示すBETコマンドを生成してコマンドバッファに格納し(Se24)、コマンド格納処理を行ってコマンドバッファ内のBETコマンドを送信データレジスタ561に転送し(Se25)、Se9のステップに戻る。
Se22のステップにおいてBETカウンタの値が規定数であれば、RAM507においてクレジットの値が格納されるクレジットカウンタの値を1加算し(Se26)、現在のクレジットカウンタの値を示すクレジットコマンドを生成してコマンドバッファに格納し(Se27)、コマンド格納処理を行ってコマンドバッファ内のクレジットコマンドを送信データレジスタ561に転送し(Se28)、クレジットカウンタの値が上限値である50であるか否かを判定し(Se29)、クレジットカウンタの値が50でなければ、Se9のステップに戻り、クレジットカウンタの値が50であれば投入不可フラグをRAM507に設定し(Se30)、Se9のステップに戻る。
Se31のステップでは、スタートスイッチ7のoffからonの変化が検出されているか否か、すなわちスタートスイッチ7の立上りを示す立上りエッジが設定されているか否かを判定する。
Se31のステップにおいてスタートスイッチ7のoffからonの変化が検出されていないと判定された場合には、Se41のステップに進み、スタートスイッチ7のoffからonの変化が検出されていれば、割込を禁止し(Se32)、エッジデータをクリアし(Se33)、後述する確定データに基づいて他のスイッチがonの状態か否かを判定し(Se34)、いずれかのスイッチがonの状態であれば割込を許可して(Se35)、Se9のステップに戻る。
Se34のステップにおいて他のスイッチがいずれもonの状態でなければさらにRAM507に設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか、すなわちゲームの開始条件となる賭数が設定されているか否かを判定する(Se36)。
Se36のステップにおいてBETカウンタの値が規定数でなければ、割込を許可して(Se35)、Se9のステップに戻り、BETカウンタの値が規定数であれば、乱数値格納ワークの値を内部抽選用の乱数値として抽選用ワークに設定し(Se37)、割込を許可し(Se38)、投入不可フラグをRAM507に設定するとともに、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Se39)、ゲーム開始時の設定を行う(Se40)。そして、Se40のステップの後、BET処理を終了して図32のフローチャートに復帰する。
このようにスタートスイッチ7のoffからonへの変化が検出された後、当該スタートスイッチ7の操作が無効とされるか、有効と判断され、乱数値格納ワークの値を抽選用ワークに設定するまでの間、割込が禁止されるようになっており、この間にタイマ割込処理(メイン)が実行され、乱数値格納ワークの値が書き換わってしまうことが防止されるようになっている。
Se41のステップにおいては、1枚BETスイッチ5のoffからonの変化が検出されているか否か、すなわち1枚BETスイッチ5の立上りを示す立上りエッジが設定されているか否かを判定する。Se41のステップにおいて1枚BETスイッチ5のoffからonの変化が検出されていなければ、Se49のステップに進み、1枚BETスイッチ5のoffからonの変化が検出されていればエッジデータをクリアし(Se42)、RAM507に設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否かを判定する(Se43)。Se46のステップにおいてBETカウンタの値が規定数であればSe9のステップに戻り、BETカウンタの値が規定数でなければ、クレジットカウンタの値が0であるか否かを判定し(Se44)、クレジットカウンタの値が0であればSe9のステップに戻る。Se47のステップにおいてクレジットカウンタの値が0でなければ、クレジットカウンタの値を1減算し(Se45)、BETカウンタの値を1加算して(Se46)、賭数が1加算された旨を示すBETコマンドを生成してコマンドバッファに格納し(Se47)、コマンド格納処理を行ってコマンドバッファ内のBETコマンドを送信データレジスタ561に転送し(Se48)、Se9のステップに戻る。
Se49のステップにおいては、MAXBETスイッチ6のoffからonの変化が検出されているか否か、すなわちMAXBETスイッチ6の立上り示す立上りエッジが設定されているか否かを判定する。Se49のステップにおいてMAXBETスイッチ6のoffからonの変化が検出されていなければ、Se58のステップに進み、MAXBETスイッチ6のoffからonの変化が検出されていれば、エッジデータをクリアし(Se50)、RAM507に設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否かを判定する(Se51)。Se51のステップにおいてBETカウンタの値が規定数であれば、Se55のステップに進み、BETカウンタの値が規定数でなければ、クレジットカウンタの値が0であるか否かを判定し(Se52)、クレジットカウンタの値が0であれば、Se55のステップに進む。Se52のステップにおいてクレジットカウンタの値が0でなければ、クレジットカウンタの値を1減算し(Se53)、BETカウンタの値を1加算して(Se54)、Se51のステップに戻る。Se55のステップでは、BETカウンタが加算されたか否かを判定し、BETカウンタが加算されていなければ、Se9のステップに戻り、BETカウンタが加算されていれば、加算された数分賭数が加算された旨を示すBETコマンドを生成してコマンドバッファに格納し(Se56)、コマンド格納処理を行ってコマンドバッファ内のBETコマンドを送信データレジスタ561に転送し(Se57)、Se9のステップに戻る。
Se58のステップにおいては、精算スイッチ10のoffからonの変化が検出されているか否か、すなわち精算スイッチ10の立上りを示す立上りエッジが設定されているか否かを判定する。Se58のステップにおいて精算スイッチ10のoffからonの変化が検出されていなければ、Se9のステップに戻り、精算スイッチ10のoffからonの変化が検出されていれば、エッジデータをクリアし(Se59)、RAM507にリプレイゲームフラグが設定されているか否かに基づいて当該ゲームがリプレイゲームであるか否かを判定し(Se60)、当該ゲームがリプレイゲームであればSe9のステップに戻る。Se60のステップにおいて当該ゲームがリプレイゲームでなければ、BETカウンタの値が0か否かを判定し(Se61)、BETカウンタの値が0であればSe63のステップに進み、BETカウンタの値が0でなければ、既に設定済み賭数の精算を行う旨を示す賭数精算フラグをRAM507に設定し(Se62)、Se63のステップに進む。Se63のステップにおいては、ホッパーモータ34を駆動してクレジットカウンタまたはBETカウンタに格納された値分のメダルを払い出す制御、すなわちクレジットとして記憶されているメダルまたは賭数の設定に用いられたメダルを返却する制御が行われる精算処理を行う。そして、Se63のステップにおける精算処理の後、RAM507に設定されている投入不可フラグをクリアして(Se64)、Se9のステップに戻る。
図36及び図37は、メイン制御部41がSd3のステップにおいて実行するリール回転処理の制御内容を示すフローチャートである。
リール回転処理では、まず、フリーズ抽選を実行する(Si1)。フリーズ抽選では、内部抽選の結果等に基づいてフリーズ状態に制御するか否か、フリーズ状態に制御する場合にはその実行時期について決定する。
Si1のステップにおけるフリーズ抽選の後、前のゲームのリール回転開始時点からウェイトタイム(本実施例では、約4.1秒)が経過したか否かを判定し(Si2)、ウェイトタイムが経過していなければ、ウェイトタイムが経過するまで待機する。
そして、Si2のステップにおいてウェイトタイムが経過していれば、ウェイトタイムを新たに設定する(Si3)。
次いで、リールモータの回転開始時の設定を行い、リールの回転を開始させる(Si4)。そして、回転中のリール別に仮想滑りコマテーブルの滑りコマ数を設定する滑りコマ数設定処理を行い(Si5)、停止準備完了時の設定を行う(Si6)。これにより、停止操作を有効化させることが可能な状態となり、その後、タイマ割込処理(メイン)の原点通過時処理において、リールの定速回転が検出された時点で、停止操作が有効となる。
次いで、フリーズ条件が成立しているか否か、すなわちフリーズ抽選にてフリーズ状態に制御する旨が決定され、かつフリーズ状態に制御する時期であるかを判定し(Si7)、フリーズ条件が成立していなければ、Si9のステップに進み、フリーズ条件が成立していれば、フリーズ状態の時間を計時するためにRAM507に割り当てられたフリーズタイマカウンタに規定値を設定し(Si8)、Si9のステップに進む。フリーズタイマカウンタの値は、タイマ割込処理(メイン)が4回実行される毎に1ずつ減算される。
Si9のステップにおいては、フリーズタイマカウンタの値が0か否か、すなわちフリーズ状態に制御されているか否かを判定する。Si9のステップにおいてフリーズタイマカウンタの値が0ではない場合、すなわちフリーズ状態に制御されている場合には、フリーズタイマカウンタの値が0となるまで待機する。
Si9のステップにおいてフリーズタイマカウンタの値が0の場合、すなわちフリーズ状態に制御されていない場合(当初からフリーズ状態に制御されていない場合、またはフリーズ状態が終了した場合)には、いずれかのストップスイッチのoffからonの変化が検出されたか否か、すなわちいずれかのストップスイッチの立上りを示す立上りエッジが設定されているか否かを判定し(Si10)、いずれのストップスイッチのoffからonの変化も検出されていなければ、リール回転エラー(一定期間以上、リールセンサ33によりリール基準位置が検出されない場合に判定されるエラー)が発生したか否かを判定し(Si11)、リール回転エラーが発生していなければ、更に、投入エラー(メダルの投入が許可されている期間以外で、メダルの投入を検出した場合に判定されるエラー)が発生したか否か、及び払出エラー(メダルの払出が許可されている期間以外で、メダルの払出を検出した場合に判定されるエラー)が発生したか否かを判定し(Si12、Si13)、Si11〜Si13のステップにおいていずれのエラーの発生も判定されなければ、Si9のステップに戻る。
また、Si12のステップにおいて投入エラーの発生が判定された場合、またはSi13のステップにおいて払出エラーが判定された場合には、リール回転中の投入・払出エラーを示すエラーコードをレジスタに設定し(Si14)、図30に示すエラー処理に移行する(Si17)。そして、エラーが解除された場合には、再びSi9のステップに戻る。
また、Si11のステップにおいてリール回転エラーの発生が判定された場合には、リール回転エラーを示すエラーコードをレジスタに設定し(Si16)、図30に示すエラー処理に移行する(Si17)。これに伴い、リールの回転も一時的に停止する。そして、エラーが解除された場合には、再びSi4のステップに戻り、リールの回転が再開する。
また、Si10のステップにおいていずれかのストップスイッチのoffからonの変化が検出された場合には、エッジデータをクリアし(Si18)、他のスイッチがonの状態か否かを判定し(Si19)、他のスイッチが1つでもonの状態であればSi10のステップに戻る。
Si19のステップにおいて他のスイッチが全てoffの状態であれば、offからonの変化が検出されたストップスイッチに対応するリールモータにおける、その時点のリール基準位置からのステップ数(停止操作位置となるステップ数)を取得し、停止リールに対応するワークに設定した後(Si20)、リール停止コマンドを生成してコマンドバッファに格納し(Si21)、コマンド格納処理を行ってコマンドバッファ内のBETコマンドを送信データレジスタ561に転送し(Si22)、停止操作に対応するリールの回転が停止するまで待機する(Si23)。
そして、停止操作に対応するリールの回転が停止すると、全てのリールが停止したか否かを判定し(Si24)、全てのリールが停止していなければ、Si5のステップに戻り、全てのリールが停止していれば、リール回転処理を終了して、図32のフローチャートに復帰する。
図38及び図39は、メイン制御部41が一定間隔(0.56msの間隔)で起動処理やゲーム処理に割り込んで実行するタイマ割込処理(メイン)の制御内容を示すフローチャートである。尚、タイマ割込処理(メイン)の実行期間中は自動的に他の割込が禁止される。
タイマ割込処理(メイン)においては、まず、使用中のレジスタをスタック領域に退避した後(Sk1)、シリアル通信回路511のステータスレジスタ563の送信完了の値を取得し、取得した値に基づいてRAM507に格納されている送信完了フラグを更新する(Sk2)。詳しくは、ステータスレジスタ563の値が、コマンドデータの送信を行っていないか、コマンドデータの送信が完了した旨を示す1であれば、送信完了フラグの値を1に更新し、ステータスレジスタ563の値が、コマンドの送信中か、コマンドの送信待ちの状態を示す0であれば、送信完了フラグの値を0に更新する。
次いで、停電判定処理を行う(Sk3)。停電判定処理では、電断検出回路48から電圧低下信号が入力されているか否かを判定し、電圧低下信号が入力されていれば、前回の停電判定処理でも電圧低下信号が入力されていたか否かを判定し、前回の停電判定処理でも電圧低下信号が入力されていた場合には停電と判定し、その旨を示す電断フラグを設定する。
Sk3のステップにおける停電判定処理の後、電断フラグが設定されているか否かを判定し(Sk4)、電断フラグが設定されていなければ、Sk5に進み、電断フラグが設定されていた場合には、後述する電断処理(メイン)に移行する。
Sk5のステップでは、入力ポートから各種スイッチ類の検出データを入力するポート入力処理を行う。
次いで、4種類のタイマ割込1〜4から当該タイマ割込処理(メイン)において実行すべきタイマ割込を識別するための分岐用カウンタを1進める(Sk6)。Sk6のステップでは、分岐用カウンタ値が0〜2の場合に1が加算され、カウンタ値が3の場合に0に更新される。すなわち分岐用カウンタ値は、タイマ割込処理(メイン)が実行される毎に、0→1→2→3→0・・・の順番でループする。
次いで、分岐用カウンタ値を参照して2または3か、すなわちタイマ割込3またはタイマ割込4かを判定し(Sk7)、タイマ割込3またはタイマ割込4ではない場合、すなわちタイマ割込1またはタイマ割込2の場合には、リールモータ32L、32C、32Rの始動時または定速回転中か否かを確認し、リールモータ32L、32C、32Rの始動時または定速回転中であれば、後述するSk11のモータステップ処理において変更した位相信号データや後述するSk24の最終停止処理において変更した位相信号データを出力するモータ位相信号出力処理を実行する(Sk8)。
次いで、分岐用カウンタ値を参照して1か否か、すなわちタイマ割込2か否かを判定し(Sk9)、タイマ割込2ではない場合、すなわちタイマ割込1の場合には、リールモータ32L、32C、32Rの始動時のステップ時間間隔の制御を行うリール始動処理(Sk10)、リールモータ32L、32C、32Rの位相信号データの変更を行うモータステップ処理(Sk11)、リールモータ32L、32C、32Rの停止後、一定時間経過後に位相信号を1相励磁に変更するモータ位相信号スタンバイ処理(Sk12)を順次実行した後、Sk26のステップに進む。
また、Sk9のステップにおいてタイマ割込2の場合には、各種表示器をダイナミック点灯させるLEDダイナミック表示処理(Sk13)、各種LED等の点灯信号等のデータを出力ポートへ出力する制御信号等出力処理(Sk14)、各種時間カウンタを更新する時間カウンタ更新処理(Sk15)、ドア開放検出スイッチ25の検出状態の監視、ドアコマンドの送信要求などを行うドア監視処理(Sk16)、ドアコマンドや操作検出コマンドのシリアル通信回路511への転送等を行うコマンド送信処理(Sk17)、外部出力信号を更新する外部出力信号更新処理(Sk18)を順次実行した後、Sk26のステップに進む。
また、Sk7のステップにおいてタイマ割込3またはタイマ割込4であれば、更に、分岐用カウンタ値を参照して3か否か、すなわちタイマ割込4か否かを判定し(Sk19)、タイマ割込4でなければ、すなわちタイマ割込3であれば、回転中のリール2L、2C、2Rの原点通過(リール基準位置の通過)をチェックし、リール回転エラーの発生を検知するとともに、停止準備が完了しているか(停止準備完了コードが設定されているか)を確認し、停止準備が完了しており、かつ定速回転中であれば、回転中のリールに対応するストップスイッチの操作を有効化する原点通過時処理(Sk20)、スイッチ類の検出状態に変化があったか否かの判定、操作検出コマンドの送信要求等を行うスイッチ入力判定処理(Sk21)、乱数値レジスタR1Dから数値データを読み出して乱数値格納ワークに格納する乱数値読出処理(Sk22)を順次実行した後、Sk26のステップに進む。
また、Sk19のステップにおいてタイマ割込4であれば、ストップスイッチ8L、8C、8Rの検出に伴って停止リールのワークに停止操作位置が格納されたときに、停止リールのワークに格納された停止操作位置から停止位置を決定し、何ステップ後に停止すれば良いかを算出する停止スイッチ処理(Sk23)、停止スイッチ処理で算出された停止までのステップ数をカウントして、停止する時期になったら2相励磁によるブレーキを開始する停止処理(Sk24)、停止処理においてブレーキを開始してから一定時間後に3相励磁とする最終停止処理(Sk25)を順次実行した後、Sk26のステップに進む。
Sk26のステップでは、Sk1においてスタック領域に退避したレジスタを復帰し、割込前の処理に戻る。
このように本実施例では、一定間隔毎に基本処理に割り込んでタイマ割込処理(メイン)を実行するとともに、タイマ割込処理(メイン)を実行する毎に処理カウンタを更新し、処理カウンタ値に応じて定められた処理を行うようになっており、一度のタイマ割込処理(メイン)に要する負荷を分散できるうえに、処理カウンタ値に関わらず、電圧低下信号に基づいて電断の条件が成立しているか否かを判定する停電判定処理を行い、電断の条件が成立していれば、電断処理を行うようになっており、電断が検知された場合には速やかに電断処理を行うことが可能となる。
また、タイマ割込処理(メイン)内で、電断の条件が成立しているか否かの判定を行い、電断の条件が成立していれば、そのまま電断処理に移行することとなり、タイマ割込処理(メイン)の実行中に電断に伴う割込が発生することもないため、タイマ割込処理(メイン)の実行中に電断処理を割り込ませたり、タイマ割込処理(メイン)の終了を待って電断に伴う割込処理を行う必要がないため、電断条件の成立に伴う処理が複雑化してしまうことがない。
図40は、メイン制御部41が前述したタイマ割込処理(メイン)のタイマ割込3内において実行するスイッチ入力判定処理の制御内容を示すフローチャートである。
スイッチ入力判定処理では、ポート入力処理において取得した各スイッチの入力データを更新し(Sk101)、前回の入力データが示す検出状態と今回の入力データが示す検出状態とが同じであるか否かを判定し(Sk102)、前回の入力データが示す検出状態と今回の入力データが示す検出状態とが同じでなければ、図39のフローチャートに復帰する。
Sk102のステップにおいて、前回の入力データが示す検出状態と今回の入力データが示す検出状態とが同じ場合、すなわち2.24msの間同じ検出状態を示している場合には、該当するスイッチの確定データを更新し(Sk103)、Sk104のステップに進む。Sk103のステップでは、今回の確定データを前回の確定データに移動し、前回と今回が同じと判定された入力データが示す検出状態を今回の確定データとして設定する。
Sk104のステップでは、更新後の前回の確定データと今回の確定データとが同じか否かを判定し、全てのスイッチについて前回の確定データと今回の確定データとが同じであれば、エッジデータをクリアし(Sk105)、図39のフローチャートに復帰する。
Sk104のステップにおいていずれか1つのスイッチでも前回の確定データと今回の確定データとが同じでなければ、前回の確定データと今回の確定データとが異なるスイッチについてoffからonに変化したかを判定し(Sk106)、offからonに変化したスイッチがなければSk108のステップに進み、offからonに変化したスイッチがある場合には、該当するスイッチがoffからonに変化した旨を示す立上りエッジを設定した後(Sk107)、Sk108のステップに進む。
Sk108のステップでは、前回の確定データと今回の確定データとが異なるスイッチについてonからoffに変化したかを判定し、onからoffに変化したスイッチがなければ、Sk110に進み、onからoffに変化したスイッチがある場合には、該当するスイッチがonからoffに変化した旨を示す立下りエッジを設定し(Sk109)、Sk110のステップに進む。
Sk110のステップでは、前回の確定データと今回の確定データとが同じスイッチがあるか否かを判定し、前回の確定データと今回の確定データとが同じスイッチがなければ、Sk112のステップに進み、前回の確定データと今回の確定データとが同じスイッチがあれば、該当するスイッチのエッジデータのみをクリアし(Sk111)、Sk112のステップに進む。
Sk112では、操作検出コマンド送信要求を設定し、検出状態が変化したスイッチ(エッジデータが設定されているスイッチ)、当該スイッチがoffからonに変化したか、onからoffに変化したか(立上りエッジか、立下りエッジか)、他のスイッチ(検出状態が変化していないスイッチ)の検出状態(on/off)を示す操作検出コマンドを生成してRAM507に割り当てられた操作検出コマンド格納領域(操作検出コマンドが送信されるまで一時的に操作検出コマンドが格納される領域)に格納する(Sk113)ことで、操作検出コマンドの送信を命令した後、図39のフローチャートに復帰する。
図41は、メイン制御部41が前述したタイマ割込処理(メイン)のタイマ割込3内において実行する乱数値読出処理の制御内容を示すフローチャートである。
乱数値読出処理では、乱数ラッチフラグレジスタの値に基づいて数値データがラッチされているか否か、すなわち乱数値レジスタ559Aに数値データが取り込まれているか否かを判定し(Sk201)、数値データがラッチされていなければ、乱数値読出処理を終了して図39に示すフローチャートに復帰する。
Sk201のステップにおいて数値データがラッチされていれば乱数値レジスタ559Aから数値データを読み出し(Sk202)、乱数値格納ワークに格納されている値を、Sk202において読み出した数値データに更新し(Sk203)、乱数値読出処理を終了して図39に示すフローチャートに復帰する。
尚、Sk202のステップにおいて乱数値レジスタ559から数値データが読み出されると乱数ラッチフラグレジスタがクリアされ、乱数値レジスタ559への新たな数値データの取込が許可されることとなる。
図42は、メイン制御部41が前述したタイマ割込処理(メイン)のタイマ割込2内において実行するドア監視処理の制御内容を示すフローチャートである。
ドア監視処理では、まず、ドア開放検出スイッチ25の入力状態の履歴(ポート入力処理において取得したドア開放検出スイッチ25の正論理化した検出信号の確定状態を約100ms論理和し続けた値)であるドアセンサ履歴を更新する(Sk301)。すなわちドア開放検出スイッチ25の正論理化した検出信号の確定状態とドアセンサ履歴との論理和をとって新たなドアセンサ履歴とする。
次いで、ドア監視タイマの値が0か否か、すなわち前回の監視から約100msが経過したか否かを判定し(Sk302)、ドア監視タイマの値が0でなければ、ドア監視タイマの値を1減算し(Sk303)、ドア監視処理を終了し、図38のフローチャートに復帰する。
Sk302のステップにおいてドア監視タイマの値が0であれば、ドア監視タイマの値として44を設定し(Sk304)、新たに100msの計時を開始する。そしてドアセンサ履歴をレジスタに取得し、RAM507のドアセンサ履歴をクリアした後(Sk305)、レジスタに取得したドアセンサ履歴が示すドア開放検出スイッチ25の検出状態と、RAM507に割り当てられたドアコマンド格納領域(ドアコマンドが送信されるまで一時的にドアコマンドが格納される領域であり、ドア開放検出スイッチ25の検出状態が変化することで新たな検出状態を示すドアコマンドに更新される)に格納されているドアコマンドが示すドア開放検出スイッチ25の検出状態と、を比較し、ドア開放検出スイッチ25の検出状態に変化があるか否かを判定する(Sk306)。
Sk306のステップにおいてドア開放検出スイッチ25の検出状態に変化がなければ、ドアコマンド送信要求1が設定されているか否か、すなわちメイン制御部41の起動またはゲームの終了に伴いドアコマンドの送信が要求されているか否かを判定し(Sk307)、ドアコマンド送信要求1が設定されていなければ、ドア監視処理を終了し、図38のフローチャートに復帰する。
Sk306のステップにおいてドア開放検出スイッチ25の検出状態に変化がある場合、またはSk307のステップにおいてドアコマンド送信要求1が設定されている場合には、ドアコマンド送信要求1をクリアするとともに、ドアコマンド送信要求2を設定し(Sk308)、取得したドアセンサ履歴(変化後のドア開放検出スイッチ25の検出状態)に基づくドアコマンドを生成してドアコマンド格納領域に格納する(Sk309)ことで、変化後のドアコマンドの送信を命令した後、ドア監視処理を終了し、図38のフローチャートに復帰する。
図43は、メイン制御部41が前述したタイマ割込処理(メイン)のタイマ割込2内において実行するコマンド送信処理の制御内容を示すフローチャートである。
コマンド送信処理では、まず、当該コマンド送信処理が行われるタイマ割込処理(メイン)のSk2のステップにおいて更新した送信完了フラグの値が0か否か、すなわち当該タイマ割込処理の開始時点においてシリアル通信回路511がコマンドデータの送信中、或いはコマンドデータの送信待ちの状態か否かを判定し(Sk401)、送信完了フラグの値が0の場合、すなわちシリアル通信回路511がコマンドデータの送信中、或いはコマンドデータの送信待ちの状態であれば、コマンド送信処理を終了し、図38に示すフローチャートに復帰する。
Sk401のステップにおいて送信完了フラグの値が0でなければ、ドアコマンド送信要求2が設定されているか、すなわちドアコマンドの送信が命令されているか否かを判定する(Sk402)。
Sk402のステップにおいてドアコマンド送信要求2が設定されている場合には、ドアコマンド送信要求2をクリアし(Sk403)、ドアコマンド格納領域に設定されているドアコマンドを読み出してコマンドバッファに格納し(Sk404)、コマンド格納処理を行ってコマンドバッファ内のドアコマンドを送信データレジスタ561に転送し(Sk408)、図38に示すフローチャートに復帰する。
Sk402のステップにおいてドアコマンド送信要求2が設定されていない場合には、操作検出コマンド送信要求が設定されているか否か、すなわち操作検出コマンドの送信が命令されているか否かを判定する(Sk405)。
Sk405のステップにおいて操作検出コマンド送信要求が設定されていない場合には、図38に示すフローチャートに復帰し、操作検出コマンド送信要求が設定されている場合には、操作検出コマンド送信要求をクリアし(Sk406)、操作検出コマンド格納領域に設定されている操作検出コマンドを読み出してコマンドバッファに格納し(Sk407)、コマンド格納処理を行ってコマンドバッファ内の操作検出コマンドを送信データレジスタ561に転送し(Sk408)、図38に示すフローチャートに復帰する。
図44(a)は、メイン制御部41が前述したタイマ割込処理(メイン)において電断フラグが設定されていると判定した場合に実行する電断処理(メイン)の制御内容を示すフローチャートである。
電断処理(メイン)においては、まず、使用している可能性がある全てのレジスタをスタック領域に退避する(Sm1)。尚、前述したIレジスタ及びIYレジスタの値は使用されているが、起動時の初期化に伴って常に同一の固定値が設定されるため、ここでは保存されない。
次いで、破壊診断用データ(本実施例では、5A(H))をセットして(Sm2)、全ての出力ポートを初期化する(Sm3)。次いでRAM507の全ての格納領域(未使用領域及び未使用スタック領域を含む)の排他的論理和が0になるようにRAMパリティ調整用データを計算してセットし(Sm4)、RAM507へのアクセスを禁止する(Sm5)。
その後、電圧が低下してCPU505が停止するか、ユーザリセット信号が入力されて再起動するか、の待機状態に移行する。この待機状態では、乱数ラッチフラグレジスタの値に基づいて乱数値がラッチされているか否か、すなわち乱数値レジスタ559Aに数値データが取り込まれているか否かを判定し(Sm6)、乱数値がラッチされていれば、乱数値レジスタ559Aから内部抽選用の乱数値を読み出す(Sm7)ようになっており、これら以外の処理は行われない。Sm7のステップにおいて乱数値レジスタ559から内部抽選用の乱数値が読み出されると乱数ラッチフラグレジスタがクリアされ、新たな数値データの取込が許可されることとなる。また、Sm7のステップにおいては、内部抽選用の乱数値を読み出すものの、読み出した乱数値を用いる訳ではなく、スタートスイッチ7の操作に応じて新たな乱数値の取込を可能とするためにダミーとして読み出すものである。
そしてこの待機状態のまま電圧が低下すると内部的に動作停止状態になる。よって、電断時に確実にメイン制御部41は動作停止する。また、この待機状態において、電圧が低下せずにユーザリセット信号が入力されると前述した起動処理(メイン)がユーザモードから実行され、RAM507の格納データが正常であれば、元の処理に復帰することとなる。
尚、本実施例では、RAM507へのアクセスを禁止した後、乱数値がラッチされているか否かを監視し、乱数値がラッチされている場合にラッチされた乱数値を読み出す処理以外には行わない構成であるが、図44(b)に示すように、電圧低下信号の出力状況を監視し(Sm6−)、電圧低下信号が入力されなくなった場合に電圧の回復を判定し、起動処理(メイン)のユーザモード(Sa2のステップ)からプログラムをスタートさせる構成としても良い。
本実施例のメイン制御部41は、システムリセットであるかユーザリセットであるかに関わらず、RAM507へのアクセスが許可された後、他の処理を行うことなく、まず、RAM507の全ての格納領域(未使用領域及び未使用スタック領域を含む)のRAMパリティを計算し、その後、計算したRAMパリティから格納データが正常か否かの判定を行う前に、RAM507の格納データが正常か否かに関わらず共通して行う必要のある処理を行い、その後、RAMパリティに基づいてRAM507の格納データが正常か否かの判定を行うようになっている。
このため、これらRAM507の格納データが正常か否かに関わらず共通して行う必要のある処理を、RAM507の格納データが正常と判定された場合と異常と判定された場合とで個別に実行する必要がないため、起動時の処理に用いるプログラム容量を削減することができる。
また、メイン制御部41の起動後、RAM507へのアクセスが許可された後、他の処理を行う前にRAMパリティの計算が行われるので、RAM507に対して何らのアクセスも行われる前の状態で算出されたRAMパリティに基づいて格納データが正常か否かの判断が行われるため、データが正常か否かの判定の信頼性を高めることができる。
また、電断処理において、RAM507の未使用領域及び未使用スタック領域を含む全てのデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、格納するとともに、復旧時においてRAM507における未使用領域及び未使用スタック領域を含む全ての領域に格納されているデータに基づいて計算したRAMパリティが0か否かを判定することで、RAM507のデータが正常か否かを判定しているので、当該判定を正確にかつ簡便に行うことができるうえに、未使用領域や未使用スタック領域に不正なプログラムやデータが格納された場合でも、これら不正なプログラムやデータが格納されたまま復帰してしまうことを防止できる。
また、RAMパリティを計算した後、計算したRAMパリティから格納データが正常か否かの判定を行う前に、RAM507の格納データが正常か否かに関わらず共通して行う処理として、RAM507に格納されている各スイッチ入力データ、確定データ、エッジデータ、すなわち各スイッチの検出状況を示すデータをクリアするようになっており、メイン制御部41の起動時においてRAM507のデータが正常であり、以前の制御状態に復帰させる場合でも以前の制御状態には復帰させない場合でも、割込が許可された後、速やかにスイッチの検出状態のチェックを開始することが可能となる。
本実施例のスロットマシン1におけるメイン制御部41は、システムリセット時、すなわち電源投入などに伴いシステムリセット信号が入力されたときに、CPU505がROM506などに記憶されているセキュリティチェックプログラム506Aを読み出して実行することにより、セキュリティモードとなる。
このときには、セキュリティチェックプログラム506Aに対応した処理としてセキュリティチェック処理が実行される。ここで、メイン制御部41がセキュリティモードとなるセキュリティ時間は、ROM506のプログラム管理エリアに記憶されているセキュリティ時間設定KSESのビット番号[2−0]やビット番号[4−3]に予め格納されたビット値に応じて、一定の固定時間とは異なる時間成分を含むことができる。
例えば、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値が“000”以外の値であれば、図10(D)に示す設定内容に対応して、固定時間に加えて予め選択可能な複数の延長時間のいずれかを、セキュリティ時間に含まれる時間成分として設定することができる。また、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値が“00”以外の値であれば、図10(C)に示すショートモード又はロングモードに対応して、システムリセットや電源投入がなされるごとに所定の時間範囲で変化する可変設定時間を、セキュリティ時間に含まれる時間成分として設定することができる。
こうして設定されたセキュリティ時間が経過するまでは、ROM506に記憶されているユーザプログラムの実行が開始されない。そして、乱数回路509による乱数値となる数値データの生成動作も、メイン制御部41がセキュリティモード中である期間では、開始されないようにすれば良い。これにより、電源投入等のシステムリセットによる動作開始タイミングから、乱数回路509の動作開始タイミングや更新される数値データなどを特定することが困難になり、プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に特別役を当選させるなどの行為を、確実に防止することができる。
一例として、スロットマシン1の機種毎に、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値を異なる値に設定する。この場合には、セキュリティモードの延長時間を、スロットマシン1の機種毎に異ならせることができ、スロットマシン1の動作開始タイミングから乱数回路509の動作開始タイミングを特定することが困難になる。また、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値を“01”又は“10”に設定することにより、可変設定時間を、システムリセット毎に異ならせることができる。これにより、スロットマシン1の動作開始タイミングから乱数回路509の動作開始タイミングを特定することは著しく困難になる。
図45は、メイン制御部41に内蔵された乱数回路509の動作を説明するためのタイミングチャートである。また、図45(A)では、遊技制御基板40に搭載された制御用クロック生成回路42により生成される制御用クロックCCLKを示している。図45(B)では、乱数用クロック生成回路43により生成される乱数用クロックRCLKを示している。図45(A)及び(B)に示すように、制御用クロックCCLKの発振周波数と、乱数用クロックRCLKの発振周波数とは、互いに異なる周波数となっており、また、いずれか一方の発振周波数が他方の発振周波数の整数倍になることがない。
図45(B)に示すように、乱数用クロックRCLKは、タイミングT10,T11,T12,…においてローレベルからハイレベルに立ち上がる。そして、乱数用クロックRCLKは、メイン制御部41の乱数用外部クロック端子ERCに供給され、図12に示す乱数回路509が備えるクロック用フリップフロップ552におけるクロック端子CKに入力される。クロック用フリップフロップ552は、逆相出力端子(反転出力端子)QバーからD入力端子へとフィードバックされるラッチ用クロックRC0を、クロック端子CKに入力される乱数用クロックRCLKの立上りエッジに応答して取り込み(ラッチして)、正相出力端子(非反転出力端子)Qから乱数更新クロックRGKとして出力する。これにより、乱数更新クロックRGKは、図45(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における数値データは、例えば図45(D)に示すように、乱数更新クロックRGKの立上りエッジなどに応答して更新される。
このように、乱数用クロック生成回路112により生成される乱数用クロックRCLK
の発振周波数と、制御用クロック生成回路42により生成される制御用クロックCCLKの発振周波数とは、互いに異なっており、また、一方の発振周波数が他方の発振周波数の整数倍となることもない。そのため、乱数回路509のクロック用フリップフロップ552により生成される乱数更新クロックRGKやラッチ用クロックRC0の発振周波数は、乱数用クロックRCLKの発振周波数の1/2となるが、制御用クロックCCLKの発振周波数や、制御用クロックCCLKの発振周波数の1/2となる内部システムクロックSCLKの発振周波数とは、異なるものとなる。こうして、制御用クロックCCLKや内部システムクロックSCLKと、乱数更新クロックRGKとに同期が生じることを防ぎ、CPU505の動作タイミングからは、乱数回路509にて乱数生成回路553や乱数列変更回路555により生成される乱数列RSNにおける数値データの更新タイミングを特定することが困難になる。これにより、CPU505の動作タイミングから乱数回路509における乱数値となる数値データの更新動作を解析した結果に基づく狙い撃ちなどを、確実に防止することができる。
さらに、制御用クロックCCLKの発振周波数と、乱数更新クロックRGKの発振周波数を比較し、双方の発信周波数が同期するか否かを監視し、双方の発信周波数が同期した場合には、乱数更新クロックPGKの入力状態に異常が発生したと判定し、ゲームの進行を不能化することが好ましく、このようにすることで、乱数値となる数値データの更新動作に異常が発生している状態でゲームの進行制御が行われてしまうことを防止できる。
クロック用フリップフロップ552から出力されるラッチ用クロックRC0は、乱数更新クロックRGKの反転信号となり、その発振周波数は乱数更新クロックRGKの発振周波数と同一で、その位相は乱数更新クロックRGKの位相とπ(=180°)だけ異なる。ラッチ用クロックRC0は、分岐点BR1にてラッチ用クロックRC1とラッチ用クロックRC2とに分岐される。したがって、例えば図45(E)に示すように、各ラッチ用クロックRC0、RC1、RC2はいずれも、共通の周期で信号状態が変化する発振信号となる。ラッチ用クロックRC1は、ラッチ用フリップフロップ557Aのクロック端子CKに入力される。ラッチ用クロックRC2は、ラッチ用フリップフロップ557Bのクロック端子CKに入力される。
こうして、ラッチ用クロックRC0を分岐することにより生成されるラッチ用クロックRC1、RC2の発振周波数は、制御用クロックCCLKや内部システムクロックSCLKの発振周波数とは、異なるものとなる。したがって、制御用クロックCCLKや内部システムクロックSCLKと、ラッチ用クロックRC1、RC2とに同期が生じることを防ぎ、CPU505の動作タイミングからは、乱数回路509にて乱数値となる数値データが取り込まれる動作タイミングを特定することが困難になる。これにより、CPU505の動作タイミングから乱数回路509における乱数値となる数値データの取込動作を解析した結果に基づく狙い撃ちなどを、確実に防止することができる。
ラッチ用フリップフロップ557Aは、ラッチ用クロックRC1の立上りエッジに応答して、スタートスイッチ7から伝送されて入力ポートP0に供給されたゲーム開始信号SS1を取り込み(ラッチして)、ゲーム開始時ラッチ信号SL1として出力端子Qから出力する。そして、乱数ラッチセレクタ558Aにおける取込方法が入力ポートP0への信号入力に指定されていれば、ゲーム開始時ラッチ信号SL1が乱数ラッチ信号LL1として出力される。これにより、例えば図45(F)に示すようなタイミングでオフ状態(ローレベル)とオン状態(ハイレベル)とで信号状態が変化するゲーム開始信号SS1は、ラッチ用クロックRC1が立ち上がるタイミングT11、T13、T15、…にてラッチ用フリップフロップ557Aに取り込まれた後、図45(G)に示すようなタイミングT11、T13で信号状態がオフ状態とオン状態とで変化する乱数ラッチ信号LL1となって、乱数ラッチセレクタ558Aから出力される。
乱数値レジスタR1Dとなる乱数値レジスタ559Aは、乱数列変更回路555から出力される乱数列RSNにおける数値データを、乱数ラッチセレクタ558Aからクロック端子へと入力される乱数ラッチ信号LL1の立上りエッジに応答して取り込み(ラッチして)、記憶データとなる数値データを更新する。
例えば図45(G)に示すように、タイミングT11にて乱数ラッチ信号LL1がオフ状態からオン状態に変化する立上りエッジが生じた場合には、このタイミングT11にて乱数列変更回路555から出力されている乱数列RSNにおける数値データが、図45(H)に示すように、乱数値レジスタR1Dに取り込まれ、乱数値となる数値データとして取得される。これにより、乱数値レジスタR1Dとなる乱数値レジスタ559Aでは、スタートスイッチ7の操作が検出されたことに基づき、乱数値として用いられる数値データを取得して記憶することができる。
このように、ラッチ用フリップフロップ557Aは、ラッチ用クロックRC1の立上りエッジに応答して、スタートスイッチ7から伝送されて入力ポートP0に供給されたゲーム開始信号SS1を取り込み(ラッチして)、ゲーム開始時ラッチ信号SL1として出力端子Qから出力することとなるが、この際、スタートスイッチ7の操作が有効か否かに関わらず、スタートスイッチ7から伝送されて入力ポートP0に供給されたゲーム開始信号SS1を取り込み(ラッチして)、ゲーム開始時ラッチ信号SL1として出力端子Qから出力し、これに伴い、乱数ラッチセレクタ558Aが、乱数列変更回路555から出力される乱数列RSNにおける数値データをラッチして、乱数値レジスタR1Dとなる乱数値レジスタ559Aの数値データを更新するようになっている。すなわちラッチ用フリップフロップ557Aは、スタートスイッチ7の操作が有効な状態か否かに関わらず、スタートスイッチ7の立上りを検知すれば良いので、ラッチの契機となる信号の検出回路を簡素な構成にできる。
また、図9(B)に示すような第2乱数初期設定KRS2のビット番号[0]におけるビット値を“1”とすれば、例えば乱数回路509にて生成される乱数値となる数値データのスタート値を、システムリセット毎に変更することができる。これにより、例え乱数回路509の動作開始タイミングを特定することができたとしても、乱数回路509が備える乱数値レジスタ559Aから読み出される数値データを特定することは困難になり、プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に特別役を当選させるなどの行為を、確実に防止することができる。
このように本実施例では、セキュリティ時間設定KSESのビット番号[4−3]におけるビット値を“00”以外の値とすることにより、電源投入等に伴うシステムリセットごとに所定の時間範囲で変化する可変設定時間を、セキュリティ時間に含まれる時間成分として設定することができる。これにより、電源投入等に伴うシステムリセットによる動作開始タイミングから、乱数回路509の動作開始タイミングや更新される数値データなどを特定することが困難になり、プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に特別役を当選させるなどの行為を、確実に防止することができる。
また、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値を“000”以外の値とすることにより、固定時間に加えて予め選択可能な複数の延長時間のいずれかを、セキュリティ時間に含まれる時間成分として設定することができる。これにより、電源投入等に伴うシステムリセットによる動作開始タイミングから、乱数回路509の動作開始タイミングや更新される数値データなどを特定することが困難になり、プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」を接続して所定タイミングで不正信号を入力することで、不正に特別役を当選させるなどの行為を、確実に防止することができる。
また、乱数用クロック生成回路43により生成される乱数用クロックRCLKの発振周波数と、制御用クロック生成回路42により生成される制御用クロック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における乱数値となる数値データの取込動作を解析した結果に基づく狙い撃ちなどを、確実に防止することができる。
メイン制御部41に内蔵又は外付けされた乱数回路509では、第2乱数初期設定KRS2のビット番号[0]におけるビット値が“1”とされたことに対応して、乱数生成回路553から出力されるカウント値順列RCNや乱数列変更回路555から出力される乱数列RSNにおける数値データのスタート値を、システムリセット毎に変更することができる。これにより、例え乱数回路509の動作開始タイミングを特定することができたとしても、乱数回路509が備える乱数値レジスタ559Aから読み出される数値データを特定することは困難になり、プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」の接続による不正信号の入力などを、確実に防止することができる。
メイン制御部41が備える外部バスインタフェース501では、内部リソースアクセス制御回路501Aにより、例えばROM506の記憶データといった、メイン制御部41の内部データにつき、CPU505等の内部回路以外による外部読出が制限される。これにより、例えばROM506に記憶されているユーザプログラムといった、ゲームを制御するプログラムがメイン制御部41の外部から読み出されて解析などに提供されることを防止できる。そして、遊技制御処理プログラムの解析結果に基づく狙い撃ちや、いわゆる「ぶら下げ基板」の接続による不正信号の入力などを、確実に防止することができる。
メイン制御部41に内蔵又は外付けされた乱数回路509では、周波数監視回路551により乱数用クロックRCLKにおける周波数異常が検知されたときに、内部情報レジスタCIFのビット番号[4]に格納される内部情報データCIF4のビット値が“1”に設定される。そして、CPU505では、内部情報データCIF4の読出値が“1”であると連続して判定された回数が、クロック異常判定値に達したと判定されたときに、乱数回路509の動作状態に異常が発生したと判定する。そして乱数回路509の動作状態に異常が発生したと判定された場合には、メイン制御部41の動作が停止することとなる。これにより、乱数用クロックRCLKとして不正信号を入力することによる不正行為を確実に防止することができる。
メイン制御部41に内蔵されたCPU505は、乱数回路509に対するラッチ信号の出力に相当する乱数値取込指定レジスタRDLTへのビット値“1”の書き込みを行い、乱数値レジスタ559Aを複数回読み出す。そして、読み出した数値データの全ビットを監視して、変化しないビットデータの有無に基づき、乱数回路509の動作状態に異常が発生したと判定する。そして乱数回路509の動作状態に異常が発生したと判定された場合には、メイン制御部41の動作が停止することとなる。これにより、乱数回路509の動作状態に異常が発生していることを確実かつ容易に検知して、不正行為を防止することができる。特に、乱数回路509により数値データが正常に更新されないまま、すなわち数値データが固定されたままの状態で内部抽選を行わせることで、常に特別役を当選させるなどの不正を防止できる。
メイン制御部41に内蔵又は外付けされた乱数回路509は、第2乱数初期設定KRS2のビット番号[0]におけるビット値が“1”である場合に、システムリセット毎に乱数値となる数値データのスタート値を変更する。このときには、例えばメイン制御部41に内蔵されたフリーランカウンタのカウント値などを用いて、システムリセット毎に変更されるスタート値を決定すれば良い。これにより、システムリセット等のタイミングにより異なる初期値決定用データを用いて初期値を決定することができ、狙い撃ちなどによる不正行為を防止することができる。
尚、本実施例では、セキュリティモードの延長時間が、セキュリティ時間設定KSESのビット番号[2−0]におけるビット値に対応して、予め選択可能な複数の延長時間のいずれかとなり、この延長時間はシステムリセット毎に変更されないものであったが、例えばROM506に記憶されたユーザプログラムにおける設定などにより、固定時間に加算される延長時間を、システムリセット毎に複数の延長時間のいずれかに決定するようにしても良い。この場合には、延長時間がいずれも、最長の可変設定時間に比べて、長くなるように定義しておく。そして、大まかな延長時間を決定した後、詳細な延長時間を決定すれば良い。これにより、電源投入等に伴うシステムリセット時にセキュリティモードとなるセキュリティ時間を、システムリセット毎に大きく変化させることが可能になり、スロットマシン1の動作開始タイミングから乱数回路509の動作開始タイミングや更新される数値データなどを特定することが、より困難になる。
また、セキュリティモードの延長時間などは、メイン制御部41を構成するチップ毎に付与されるIDナンバーを用いて決定されるようにしても良い。一例として、IDナンバーに所定のスクランブル処理を施す演算や、IDナンバーを用いた加算・減算・乗算・除算などの演算の一部又は全部を実行して、算出された値に対応して延長時間を設定しても良い。この場合には、例えばシステムリセット毎に延長時間を決定するために用いる演算式を変更することなどにより、システムリセット毎に延長時間がランダムに決定されるようにしても良い。さらに、例えばIDナンバーを用いて延長時間を決定するための演算式をシステムリセット時に格納したフリーランカウンタのカウント値に対応して決定するといったように、フリーランカウンタのカウント値と、IDナンバーとを組み合わせて使用することなどにより、システムリセット毎に延長時間がランダムに決定されるようにしても良い。また、乱数回路509にて生成される乱数のスタート値をシステムリセット毎に変更する場合にも、フリーランカウンタのカウント値と、IDナンバーとを組み合わせて使用することなどにより、乱数のスタート値を決定しても良い。
また、システムリセット時には、セキュリティモードから開始し、乱数回路509の設定を行う乱数回路設定処理を行うとともに、乱数回路設定処理において乱数の更新規則の設定や乱数のスタート値の設定などが行われる一方でユーザリセット時には、セキュリティモードは省略され、ユーザモードから開始することとなる。すなわち、システムリセット時には、乱数の初期値が設定し直されるのに対して、ユーザリセット時には、乱数回路509の設定は行われず、リセット前からの状態のまま乱数となる数値データの更新が継続されることとなる。これにより、電子ライターなどを使用した放電により一時的に電気回路をショートさせることにより電圧を低下させて意図的に瞬停を発生させて、意図的に電断状態と認識させることによりユーザリセットを行った場合でもユーザリセットのタイミングから乱数回路509における乱数値となる数値データを特定することは困難となり、狙い撃ちなどによる不正行為をさらに効果的に防止することができる。
また、セキュリティモード内で乱数のスタート値の設定などを含む乱数回路の設定が行われ、数値データの更新が開始され、その後ユーザモードへ移行した後に、タイマ割込処理の実行が許可されるようになっている。すなわちタイマ割込処理の実行が許可される前に乱数のスタート値の設定が行われ、この設定された乱数のスタート値から数値データの更新が開始されるため、タイマ割込処理中に実行されるスイッチ類の判定状況からタイマ割込処理の許可されたタイミングまではある程度特定することはできるものの、乱数回路509の数値データの更新が開始されたタイミングを特定することはできないため、乱数回路509における乱数値となる数値データを特定することは困難となり、狙い撃ちなどによる不正行為をさらに効果的に防止することができる。
本実施例では、メイン制御部41の外部に設けられた乱数用クロック生成回路43により、制御用クロック生成回路42で生成される制御用クロックCCLKの発振周波数とは異なる発振周波数を有する乱数用クロックRCLKを生成して、乱数回路509に供給するものであったが、メイン制御部41のCPU505に供給されるクロック信号と、乱数回路509に供給されるクロック信号とが、共通のクロック生成回路に含まれる1つの発振器により生成された発振信号を用いて、生成されるようにしても良い。この場合には、例えば乱数用クロックRCLKと制御用クロックCCLKをそれぞれ生成するための分周器などを設け、ラッチ用クロックRC0、RC1、RC2と制御用クロックCCLKあるいは内部システムクロックSCLKとの同期が生じにくくなるように、各分周器における分周比などを設定すれば良い。制御用クロック生成回路42と乱数用クロック生成回路43とは、その全部又は一部が、メイン制御部41の内部に設けられても良いし、メイン制御部41の外部に設けられても良い。
本実施例では、乱数回路509が乱数用クロック生成回路43により生成された乱数用クロックRCLKの供給を受け、クロック用フリップフロップ552により、乱数更新クロックRGKとラッチ用クロックRC0とを生成するものであったが、例えば乱数用クロック生成回路43といった、乱数回路509の外部において、乱数更新クロックRGKやラッチ用クロックRC0となる発振信号が生成されるようにしても良い。あるいは、乱数回路509の内部にて、乱数更新クロックRGKを生成するための回路と、ラッチ用クロックRC0を生成するための回路とを、別個に設けるようにしても良い。一例として、クロック用フリップフロップ552と同様のフリップフロップにより乱数更新クロックRGKを生成する一方で、乱数更新クロックRGKの信号状態を反転させる反転回路を設け、その反転回路から出力される信号を、ラッチ用クロックRC0として用いるようにしても良い。
本実施例に適用した乱数回路509では、乱数ラッチフラグデータRDFM0が“1”の状態、すなわち乱数値レジスタR1Dに数値データが取り込まれている状態では、新たな乱数値の取込要求が発生した場合でも、新たな数値データを乱数値レジスタR1Dに取り込まないようになっており、このような状態では、乱数値レジスタR1Dの数値データが読み出されて、乱数ラッチフラグデータRDFM0がクリアされるまで新たな数値データを乱数値レジスタR1Dに取り込むことが不可能となる。
このため、図46に示すように、スタートスイッチ7の操作によりゲーム開始信号SS1が入力されて数値データがラッチされ、乱数値レジスタR1Dに格納された後、この格納された数値データが読み出されて乱数値格納ワークの数値データが更新されるまでは、乱数ラッチフラグデータRDFM0が“1”の状態となることで、格納されている数値データが保持され、その間にゲーム開始信号SS1が入力されても新たな数値データに上書きされてしまうことがないので、静電気などによりゲーム開始信号SS1の信号線にノイズがのっても数値データが変わってしまうことがない。
尚、乱数値レジスタR1Dに数値データが取り込まれている状態において新たな数値データを乱数値レジスタR1Dに取り込まないようにする構成としては、新たな数値データのラッチを禁止する構成であっても良いし、新たな数値データをラッチするものの、乱数値レジスタR1Dへの書き込みを禁止する構成であっても良い。
上記のように、本実施例では、乱数値レジスタR1Dに数値データが取り込まれている状態では、この格納された数値データが読み出されるまで、格納されている数値データを保持する構成を採用しているが、この場合には、スタートスイッチ7の操作がゲームの進行上有効でない期間においてなされた場合でも、ラッチされて乱数値レジスタR1Dに数値データが保持されたままとなり、その後、スタートスイッチ7の操作が有効となってスタートスイッチ7が操作された場合、本来、ゲームを開始させるためにスタートスイッチ7が操作されたタイミングとは異なるタイミングでラッチされた数値データによって内部抽選が行われてしまうという新たな問題が生じることとなる。
これに対して本実施例では、約0.56ms毎に基本処理に割り込んで実行するタイマ割込処理4回に1回(約2.24ms)毎に実行される乱数値読出処理において乱数値レジスタR1Dに数値データがラッチされているか否か、すなわち乱数ラッチフラグが設定されているか否かを確認し、乱数値レジスタR1Dに数値データがラッチされている場合には、乱数値レジスタR1Dの数値データを読み出すようになっている。これにより、乱数ラッチフラグがクリアされ、新たな数値データの取込が可能な状態となる。すなわち一定時間間隔(約2.24ms)毎に、乱数値レジスタR1Dに数値データがラッチされているか否かを確認し、ラッチされていれば乱数値レジスタR1Dの数値データを読み出すことで、乱数値レジスタR1Dに数値データが保持されている状態を解除し、乱数値レジスタR1Dに新たな数値データの取込が可能な状態となる。
このため、図47に示すように、ゲームの開始が許可されていない状態でスタートスイッチ7が操作されて乱数値レジスタR1Dに数値データが格納され、その状態が保持されていても、一定時間(乱数値読出処理の実行間隔である約2.24ms)以内に乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態となるので、ゲームの開始が許可される前のスタートスイッチ7の操作によりラッチされた数値データが乱数値レジスタR1Dに保持されても、ゲームの開始が許可された後にスタートスイッチ7が操作されたタイミングで新たにラッチした数値データを取得することが可能となる。
また、乱数値読出処理では、乱数値レジスタR1Dに数値データがラッチされている場合に、数値データを読み出すだけではなく、RAM507の乱数値格納ワークの値を読み出した数値データに更新することにより、乱数値レジスタR1Dに新たな数値データがラッチされる毎に、ラッチされた数値データがその後の乱数値読出処理において読み出され、乱数値格納ワークに格納された数値データが新たにラッチされた最新の数値データに更新されるようになっている。
そして、ゲームの開始時に、乱数値レジスタR1Dに格納されている数値データではなく、RAM507の乱数値格納ワークに格納されている数値データを取得して内部抽選を行うので、乱数値レジスタR1Dから数値データが読み出された後に、スタートスイッチの信号線にノイズがのって数値データが変わってしまっても内部抽選に用いる乱数値格納ワークの数値データに影響することがなく、このような場合であってもスタートスイッチ7が操作されたタイミングでラッチした数値データを用いて内部抽選を行うことができる。
また、本実施例では、電断した際に乱数値レジスタR1Dの値は保持されないが、乱数値格納ワークが割り当てられたRAM507は、電断しても格納データが保持されるようになっているため、スタートスイッチ7の操作が検出された後、内部抽選を開始する前の段階で瞬停などにより乱数値レジスタR1Dの値が消失しても乱数値格納ワークの数値データは維持されるため、スタートスイッチ7が操作されたタイミングでラッチされた数値データを内部抽選に用いることができる。
また、本実施例では、スタートスイッチ7の操作が検出された時点で、RAM507の乱数値格納ワークに格納されている数値データを同じくRAM507に割り当てられた抽選用ワークに設定し、その後の内部抽選において抽選用ワークに設定された数値データに対して演算を行うことにより役に当選したか否かの判定を行うようになっており、スタートスイッチ7の操作が検出された時点から内部抽選が終了するまでに乱数値格納ワークに格納されている数値データが更新されても、スタートスイッチ7の操作が検出された時点で取得した数値データが内部抽選が終了するまでに変更されてしまうことがないが、スタートスイッチ7の操作が検出された時点でRAM507の乱数値格納ワークに格納されている数値データをCPU505のワークレジスタに設定し、その後の内部抽選においてワークレジスタに設定された数値データに対して演算を行うことにより役に当選したか否かの判定を行うようにしても良い。
また、乱数値格納ワークに格納されている数値データに対して演算を行うことにより役に当選したか否かの判定を行うようにしても良いが、この場合には、スタートスイッチ7の操作が検出された時点から内部抽選が終了するまでの期間において、タイマ割込処理(メイン)を禁止することなどにより、乱数値格納ワークに格納されている数値データが新たにラッチされた数値データによって更新されてしまうことがないようにすることで、スタートスイッチ7の操作が検出された時点で取得した数値データが内部抽選が終了するまでに変更されてしまうことを防止できる。
また、本実施例では、タイマ割込処理(メイン)4回に1回の割合でスイッチ類の検出信号を入力し、2回連続して検出信号の状態が一致した場合、すなわち約2.24msの期間検出信号の状態が同じ場合に、該当するスイッチ類の検出状態を確定させる。このため、スタートスイッチ7の操作(offからonへの変化)を検知するのに約2.24msかかることとなるが、乱数値読出処理がこの時間よりも短いと、スタートスイッチがoffからonに変化した時点から検知されるまでの間に乱数値格納ワークの数値データが、ノイズなどによって新たにラッチされた数値データに更新されてしまう可能性がある。一方、乱数値読出処理がこの時間よりも長いとスタートスイッチ7の操作のタイミングでラッチした数値データが乱数値格納ワークの数値データに反映されない可能性がある。
これに対して乱数値読出処理もタイマ割込処理(メイン)4回に1回の割合で実行され、乱数値格納ワークの数値データが更新されるのに要する最小時間も同じ約2.24msであり、スタートスイッチ7がoffからonに変化した時点から検知されるまでに乱数値格納ワークの数値データが新たにラッチされた数値データに更新されてしまうことがなく、かつ、スタートスイッチ7の操作のタイミングでラッチした数値データを乱数値格納ワークの数値データに反映させることができる。
尚、本実施例では、ゲームの開始が許可されていない状態でスタートスイッチ7が操作されて乱数値レジスタR1Dに数値データが格納され、その状態が保持されていても、一定時間(乱数値読出処理の実行間隔である約2.24ms)以内に乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態となることで、ゲームの開始が許可される前のスタートスイッチ7の操作によりラッチされた数値データが乱数値レジスタR1Dに保持されても、ゲームの開始が許可された後にスタートスイッチ7が操作されたタイミングで新たにラッチした数値データを取得することが可能となる構成であるが、乱数値レジスタR1Dに数値データが取り込まれることで乱数割込を発生させるとともに、乱数割込の発生に伴い乱数値レジスタR1Dに格納されている数値データを読み出し、乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態とすることで、ゲームの開始が許可される前のスタートスイッチ7の操作によりラッチされた数値データが乱数値レジスタR1Dに保持されても、ゲームの開始が許可された後にスタートスイッチ7が操作されたタイミングで新たにラッチした数値データを取得することが可能となる構成としても良い。
乱数割込を発生させるためには、乱数割込制御データRDIC0のビット値を“1”に設定すれば良く、このような設定とすることにより、乱数値レジスタR1Dとなる乱数値レジスタ559Aに数値データが取り込まれることで、乱数割込が発生するようになる。
そして、メイン制御部41は、乱数割込が発生した際に、基本処理に割り込んで乱数値ラッチ割込処理を実行すれば良い。尚、乱数割込が発生した際に、他の割込処理の実行中であれば、実行中の割込処理の終了を待って乱数値ラッチ割込処理を実行すれば良い。
図48は、メイン制御部41が乱数割込の発生に伴い実行する上述の乱数値ラッチ割込処理の制御内容を示すフローチャートである。尚、乱数値ラッチ割込処理の実行期間中は自動的に他の割込が禁止される。
乱数値ラッチ割込処理では、まず、使用中のレジスタをスタック領域に退避した後(Sk1001)、乱数値レジスタ559Aから数値データを読み出し(Sk1002)、乱数値格納ワークに格納されている値を、Sk1002において読み出した数値データに更新し(Sk1003)、Sk1001においてスタック領域に退避したレジスタを復帰し(Sk1004)、割込前の処理に戻る。
このように、乱数値レジスタR1Dに数値データが取り込まれることで、乱数割込が発生し、これに伴いメイン制御部41は、基本処理に割り込んで乱数値ラッチ割込処理を実行し、乱数値レジスタR1Dの数値データを読み出すようにすることで、乱数ラッチフラグがクリアされ、新たな数値データの取込が可能な状態となる。すなわち乱数値レジスタR1Dに数値データが取り込まれる毎に、乱数値ラッチ割込処理を実行して乱数値レジスタR1Dの数値データを読み出すことで、乱数値レジスタR1Dに数値データが保持されている状態を解除し、乱数値レジスタR1Dに新たな数値データの取込が可能な状態となる。
このため、図49に示すように、ゲームの開始が許可されていない状態でスタートスイッチ7が操作されて乱数値レジスタR1Dに数値データが格納され、その状態が保持されても、数値データがラッチされたことに伴う割込の発生により乱数値レジスタR1Dの数値データが読み出され、新たにラッチされた数値データを格納可能な状態となるので、ゲームの開始が許可される前のスタートスイッチ7の操作によりラッチされた数値データが乱数値レジスタR1Dに保持されても、ゲームの開始が許可された後にスタートスイッチ7が操作されたタイミングで新たにラッチした数値データを取得することが可能となる。
また、乱数値ラッチ割込処理では、乱数値レジスタR1Dにラッチされた数値データを読み出すだけではなく、RAM507の乱数値格納ワークの値を読み出した数値データに更新することにより、乱数値レジスタR1Dに新たな数値データがラッチされる毎に、乱数値格納ワークに格納された数値データが新たにラッチされた最新の数値データに更新されるようになっている。
そして、ゲームの開始時に、乱数値レジスタR1Dに格納されている数値データではなく、RAM507の乱数値格納ワークに格納されている数値データを取得して内部抽選を行うので、乱数値レジスタR1Dから数値データが読み出された後に、スタートスイッチの信号線にノイズがのって数値データが変わってしまっても内部抽選に用いる乱数値格納ワークの数値データに影響することがなく、このような場合であってもスタートスイッチ7が操作されたタイミングでラッチした数値データを用いて内部抽選を行うことができる。
また、この変形例では、スタートスイッチ7の操作が検出された時点で、RAM507の乱数値格納ワークに格納されている数値データを同じくRAM507に割り当てられた抽選用ワークに設定し、その後の内部抽選において抽選用ワークに設定された数値データに対して演算を行うことにより役に当選したか否かの判定を行うようになっており、スタートスイッチ7の操作が検出された時点から内部抽選が終了するまでに乱数値格納ワークに格納されている数値データが更新されても、スタートスイッチ7の操作が検出された時点で取得した数値データが内部抽選が終了するまでに変更されてしまうことがないが、スタートスイッチ7の操作が検出された時点でRAM507の乱数値格納ワークに格納されている数値データをCPU505のワークレジスタに設定し、その後の内部抽選においてワークレジスタに設定された数値データに対して演算を行うことにより役に当選したか否かの判定を行うようにしても良い。
また、乱数値格納ワークに格納されている数値データに対して演算を行うことにより役に当選したか否かの判定を行うようにしても良いが、この場合には、スタートスイッチ7の操作が検出された時点から内部抽選が終了するまでの期間において、乱数割込の発生に伴う乱数値割込処理を禁止することなどにより、乱数値格納ワークに格納されている数値データが新たにラッチされた数値データによって更新されてしまうことがないようにすることで、スタートスイッチ7の操作が検出された時点で取得した数値データが内部抽選が終了するまでに変更されてしまうことを防止できる。
尚、この変形例では、乱数値ラッチ割込処理において、乱数値レジスタR1Dの数値データを読み出すようになっているが、乱数値ラッチ割込処理では、乱数値レジスタR1Dに数値データがラッチされた旨を示すラッチフラグをRAM507に設定し、BET処理などの基本処理やタイマ割込処理(メイン)などにおいてラッチフラグがRAM507に設定されているか否かを判定し、RAM507にラッチフラグが設定されていると判定した場合に、乱数値レジスタR1Dの数値データを読み出す構成としても良く、このような構成とした場合でも、ゲームの開始が許可されていない状態でスタートスイッチ7が操作されて乱数値レジスタR1Dに数値データが格納され、その状態が保持されたままとなってしまうことがなく、ゲームの開始が許可された後にスタートスイッチ7が操作されたタイミングで新たにラッチした数値データを取得することが可能となる。
また、本実施例では、電源投入時においてメイン制御部41の制御状態を電断前の制御状態に復帰させることや瞬停時に一時的にメイン制御部41の動作が停止してもユーザリセット信号の入力により、動作停止前の制御状態に復帰させることが可能とされており、ゲームの開始条件を満たす規定数の賭数が設定されている状態に復帰することもある。
一方で、電断時や瞬停時は電源電圧が不安定な状態であり、このような状況においてはノイズなどによってゲーム開始信号SS1の入力が検出されて数値データがラッチされ、乱数値レジスタR1Dに格納され、そのまま保持されてしまう虞がある。
これに対して、本実施例では、電断処理(メイン)の終了後、乱数値レジスタR1Dに数値データがラッチされているか否か、すなわち乱数ラッチフラグが設定されているか否かを確認し、乱数値レジスタR1Dに数値データがラッチされている場合には、ダミーで乱数値レジスタR1Dの数値データを読み出す処理を、電圧低下によりメイン制御部41の動作が停止するか、ユーザリセット信号の入力により再起動するまでの間、繰り返し行うようになっている。これにより、乱数ラッチフラグがクリアされ、新たな数値データの取込が可能な状態となる。
このため、瞬停などにより電断処理(メイン)が行われた後、ユーザリセット信号の入力により再起動する場合において、その間に、ノイズなどによって乱数値レジスタR1Dに数値データがラッチされてしまった場合(特に、スイッチ類の電圧よりも高い電圧で電断処理が開始し、スイッチ電圧よりも低くなった後に電圧が回復したときには、全てのスイッチがONの状態と同じ状態となってしまい、これに伴い乱数値レジスタR1Dに数値データがラッチされてしまう可能性がある。)でも、すぐに読み出されることにより乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態となるので、瞬停時にノイズなどによってラッチされた数値データ、すなわちゲームを開始可能な状態でスタートスイッチ7が操作されたタイミングとは異なるタイミングでラッチされた数値データを用いて内部抽選が行われてしまうことがない。
尚、本実施例では、電断処理(メイン)の終了後、乱数値レジスタR1Dに数値データがラッチされているか否か、すなわち数値データが乱数値レジスタR1Dに格納されているか否かを確認し、乱数ラッチフラグが設定されている場合にのみ、乱数値レジスタR1Dに格納されている数値データを読み出すようになっているが、電断処理(メイン)の終了後、数値データが乱数値レジスタR1Dに格納されているか否かに関わらず一律に乱数値レジスタR1Dに格納されている数値データを読み出す処理を繰り返し行うようにしても良い。
また、上記では、ユーザリセット信号の入力によりメイン制御部41が再起動する例を説明しているが、図44(b)に示すように、電断処理(メイン)の終了後の待機状態において、電圧低下信号の入力を監視し、電圧低下信号の入力が検出されなくなった場合に、ユーザモードの先頭にジャンプさせることによりメイン制御部41を再起動させる構成としても良い。
さらに、本実施例では、メイン制御部41の起動後、電断前またはユーザリセット前の制御状態に復帰するか否かに関わらず、ゲームの進行制御が開始する前に乱数ラッチフラグが設定されているか否か、すなわち数値データが乱数値レジスタR1Dに格納されているか否かを確認し、乱数値レジスタR1Dに数値データが格納されている場合には、乱数値レジスタR1Dに格納されている数値データを読み出し、乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態となるので、起動後、ゲームの進行制御が開始される前の段階でラッチされ乱数値レジスタR1Dに保持されていた数値データ、すなわちゲームを開始可能な状態でスタートスイッチ7が操作されたタイミングとは異なるタイミングでラッチされた数値データを用いて内部抽選が行われてしまうことがない。
尚、本実施例では、メイン制御部41の起動後、ゲームの進行制御が開始する前に、乱数ラッチフラグが設定されているか否か、すなわちラッチされた数値データが乱数値レジスタR1Dに格納されているか否かを確認し、乱数ラッチフラグが設定されている場合にのみ、乱数値レジスタR1Dに格納されている数値データを読み出すようになっているが、一律に乱数値レジスタR1Dに格納されている数値データを読み出すようにしても良い。
また、メイン制御部41の起動後、電断前またはユーザリセット前の制御状態に復帰するか否かに関わらず、乱数ラッチフラグが設定されていれば、乱数値レジスタR1Dに格納されている数値データを読み出すようになっているが、電断前またはユーザリセット前の制御状態に復帰する場合のみ乱数値レジスタR1Dに格納されている数値データを読み出す構成としても良いし、さらには、電断前またはユーザリセット前の制御状態に復帰する場合であり、かつ復帰する制御状態がゲームを開始可能な状態である場合のみ乱数値レジスタR1Dに格納されている数値データを読み出すようにしても良い。
また、本実施例では、電断処理(メイン)においてRAM507へのアクセスを禁止した後、動作停止状態またはユーザリセットを待機する構成であるが、前述のように電圧低下信号の出力状況を監視して、電圧低下信号が入力されなくなった場合に電圧の回復を判定し、起動処理(メイン)のユーザモードからプログラムをスタートさせる構成としても良く、このような構成とした場合には、電圧の回復を判定した際に、乱数ラッチフラグが設定されているか否かを判定し、乱数ラッチフラグが設定されている場合に、乱数値レジスタR1Dに格納されている数値データを読み出した後、起動処理(メイン)のユーザモードからプログラムをスタートさせる構成とすることが好ましく、このようにすることで、瞬停時においてゲームの進行制御が開始される前の段階で確実に乱数値レジスタR1Dに保持されていた数値データを読み出して乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態とすることが可能となり、ゲームの進行制御が開始される前の段階でラッチされ乱数値レジスタR1Dに保持されていた数値データ、すなわちゲームを開始可能な状態でスタートスイッチ7が操作されたタイミングとは異なるタイミングでラッチされた数値データを用いて内部抽選が行われてしまうことがない。
また、本実施例では、メイン制御部41の起動後、ゲームの進行制御が開始する前の段階でも、電処理の終了後、動作停止状態となるかユーザリセットを待機する期間のいずれにおいても乱数値レジスタR1Dに保持されている数値データを読み出して乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態とすることが可能となる構成であるが、いずれか一方のみ乱数値レジスタR1Dに保持されている数値データを読み出して乱数値レジスタR1Dに新たにラッチされた数値データを格納可能な状態とする構成としても良く、このような構成であっても、ゲームを開始可能な状態でスタートスイッチ7が操作されたタイミングとは異なるタイミングでラッチされた数値データを用いて内部抽選が行われてしまうことを防止できる。
本実施例のメイン制御部41は、ゲームを開始可能な状態でスタートスイッチ7が操作されたか否かをスタートスイッチ7の立上りを示す立上りエッジが設定されちるか否かに基づいて判定する。
スタートスイッチ7の立上りエッジは、一定間隔毎に割り込んで実行するタイマ割込処理(メイン)4回に1回毎(約2.24ms毎)に実行するスイッチ入力判定処理において、スタートスイッチ7の検出状態に基づく確定データがoffからonに変化したことを条件に設定される。確定データは、スイッチ入力判定処理毎に前回の検出状態と今回の状態が一致する場合にのみ更新されるデータであることから、スタートスイッチ7の立上りエッジは、スタートスイッチ7の検出状態がoffの状態である場合に、スイッチ入力判定処理において2回連続してスタートスイッチ7のonが検知されることで設定されることとなる。
一方、スイッチ入力判定処理の実行間隔は約2.24msであることから、スタートスイッチ7がonとなってから最低でも約2.24ms以上onが継続して検知されることを条件にスタートスイッチ7の立上りエッジが設定され、スタートスイッチ7の操作が検出されることとなる。
このように本実施例では、図50に示すように、ゲームを開始可能な状態においてスタートスイッチ7のonが一定期間(最低でも約2.24ms)以上継続して検知されたことを条件に、スタートスイッチ7の操作が検出され、ゲームが開始されるようになっており、静電気などのノイズによってスタートスイッチ7のonが誤って検出されたにも関わらず、ゲームが開始してしまうことを防止できる。
尚、本実施例では、ゲームを開始可能な状態においてスタートスイッチ7のonが一定期間(最低でも約2.24ms)以上継続して検知されたことを条件に、スタートスイッチ7の操作が検出され、ゲームが開始されるようになっているが、例えば、1回のスイッチ入力判定処理においてスタートスイッチ7の検出状態を複数回確認し、全てにおいてonが判定されたことを条件に、スタートスイッチの操作が検出され、ゲームが開始されるようにしても良く、このような構成であっても静電気などのノイズによってスタートスイッチ7のonが誤って検出されたにも関わらず、ゲームが開始してしまうことを防止できる。
また、本実施例では、図50に示すように、ゲームを開始可能な状態において、スタートスイッチ7の立上りエッジが検出されている場合に、乱数ラッチフラグが設定されているか否か、すなわちスタートスイッチ7の操作により数値データがラッチされ、乱数値レジスタR1Dに数値データが格納されているか否かを確認し、乱数値レジスタR1Dに数値データが格納されている場合にのみゲームを開始させるようになっている。
このため、乱数値レジスタR1Dに数値データが格納されていない、すなわち内部抽選に用いる乱数値がラッチされていないにも関わらず、ゲームが開始して内部抽選が行われてしまうことがなく、スタートスイッチ7が操作されたタイミングでラッチされた数値データを用いて確実に内部抽選を行うことができる。
次に、メイン制御部41がサブ制御部91に対して送信するコマンドについて説明する。
本実施例では、メイン制御部41がサブ制御部91に対して、BETコマンド、クレジットコマンド、内部当選コマンド、フリーズコマンド、リール回転開始コマンド、リール停止コマンド、入賞判定コマンド、払出開始コマンド、払出終了コマンド、遊技状態コマンド、待機コマンド、打止コマンド、エラーコマンド、復帰コマンド、設定コマンド、設定確認コマンド、ドアコマンド、操作検出コマンドを含む複数種類のコマンドを送信する。
これらコマンドは、コマンドの種類を示す1バイトの種類データとコマンドの内容を示す1バイトの拡張データとからなり、サブ制御部91は、種類データからコマンドの種類を判別できるようになっている。
BETコマンドは、メダルの投入枚数、すなわち賭数の設定に使用されたメダル枚数を特定可能なコマンドであり、ゲーム終了後(設定変更後)からゲーム開始までの状態であり、規定数の賭数が設定されていない状態において、メダルが投入されるか、1枚BETスイッチ5またはMAXBETスイッチ6が操作されて賭数が設定されたときに送信される。また、BETコマンドは、賭数の設定操作がなされたときに送信されるので、BETコマンドを受信することで賭数の設定操作がなされたことを特定可能である。
クレジットコマンドは、クレジットとして記憶されているメダル枚数を特定可能なコマンドであり、ゲーム終了後(設定変更後)からゲーム開始までの状態であり、規定数の賭数が設定されている状態において、メダルが投入されてクレジットが加算されたときに送信される。
内部当選コマンドは、内部当選フラグの当選状況、並びに成立した内部当選フラグの種類を特定可能なコマンドであり、スタートスイッチ7が操作されてゲームが開始したときに送信される。また、内部当選コマンドは、スタートスイッチ7が操作されたときに送信されるので、内部当選コマンドを受信することでスタートスイッチ7が操作されたことを特定可能である。
フリーズコマンドは、後述するフリーズ状態に制御する旨が決定された場合に、フリーズ状態に制御するか否か及びフリーズ状態に制御する場合にはそのタイミングを示すコマンドであり、後述するフリーズ抽選の終了時に送信される。
リール回転開始コマンドは、リールの回転の開始を通知するコマンドであり、リール2L、2C、2Rの回転が開始されたときに送信される。
リール停止コマンドは、停止するリールが左リール、中リール、右リールのいずれかであるか、該当するリールの停止操作位置の領域番号、該当するリールの停止位置の領域番号、を特定可能なコマンドであり、各リールの停止操作に伴う停止制御が行われる毎に送信される。また、リール停止コマンドは、ストップスイッチ8L、8C、8Rが操作されたときに送信されるので、リール停止コマンドを受信することでストップスイッチ8L、8C、8Rが操作されたことを特定可能である。
入賞判定コマンドは、入賞の有無、並びに入賞の種類、入賞時のメダルの払出枚数を特定可能なコマンドであり、全リールが停止して入賞判定が行われた後に送信される。
払出開始コマンドは、メダルの払出開始を通知するコマンドであり、入賞やクレジット(賭数の設定に用いられたメダルを含む)の精算によるメダルの払出が開始されたときに送信される。また、払出終了コマンドは、メダルの払出終了を通知するコマンドであり、入賞及びクレジットの精算によるメダルの払出が終了したときに送信される。
遊技状態コマンドは、次ゲームの遊技状態を特定可能なコマンドであり、ゲームの終了時に送信される。また、遊技状態コマンドには後述する固有情報が含まれる。
待機コマンドは、待機状態へ移行する旨を示すコマンドであり、1ゲーム終了後、賭数が設定されずに一定時間経過して待機状態に移行するとき、クレジット(賭数の設定に用いられたメダルを含む)の精算によるメダルの払出が終了し、払出終了コマンドが送信された後に送信される。
打止コマンドは、打止状態の発生または解除を示すコマンドであり、BB終了後、エンディング演出待ち時間が経過した時点で打止状態の発生を示す打止コマンドが送信され、リセット操作がなされて打止状態が解除された時点で、打止状態の解除を示す打止コマンドが送信される。
エラーコマンドは、エラー状態の発生または解除、エラー状態の種類を示すコマンドであり、エラーが判定され、エラー状態に制御された時点でエラー状態の発生及びその種類を示すエラーコマンドが送信され、リセット操作がなされてエラー状態が解除された時点で、エラー状態の解除を示すエラーコマンドが送信される。
復帰コマンドは、メイン制御部41が電断前の制御状態に復帰した旨を示すコマンドであり、メイン制御部41の起動時において電断前の制御状態に復帰した際に送信される。また、復帰コマンドには後述する固有情報が含まれる。
設定コマンドは、設定変更状態の開始または終了、設定変更後設定値を示すコマンドであり、設定変更状態に移行する時点で設定変更状態の開始を示す設定コマンドが送信され、設定変更状態の終了時に設定変更状態の終了及び設定変更後の設定値を示す設定コマンドが送信される。また、設定変更状態への移行に伴ってメイン制御部41の制御状態が初期化されるため、設定開始を示す設定コマンドによりメイン制御部41の制御状態が初期化されたことを特定可能である。また、設定変更状態の開始を示す設定コマンドには後述する固有情報が含まれる。
設定確認コマンドは、設定確認状態の開始または終了を示すコマンドであり、設定確認状態に移行する際に設定確認開始を示す設定確認コマンドが送信され、設定確認状態の終了時に設定確認終了を示す設定確認コマンドが送信される。
ドアコマンドは、ドア開放検出スイッチ25の検出状態、すなわちon(開放状態)/off(閉状態)を示すコマンドであり、電源投入時、1ゲーム終了時(ゲーム終了後、次のゲームの賭数の設定が開始可能となる前までの時点)、ドア開放検出スイッチ25の検出状態が変化(onからoff、offからon)した時に送信される。
操作検出コマンドは、操作スイッチ類(1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R)のうち検出状態(on/off)が変化したスイッチ、検出状態がoffからonに変化したのか、onからoffに変化したのか及び他のスイッチの検出状態(on/off)を示すコマンドであり、これら操作スイッチ類のいずれかの検出状態が変化したときに送信される。
これらコマンドのうちドアコマンド及び操作検出コマンド以外のコマンドは、基本処理において生成され、非初期化領域に割り当てられたコマンドバッファ内のコマンドデータを新たに生成したコマンドデータに更新するとともに、シリアル通信回路511の送信データレジスタ561に転送することで、サブ制御部91に送信される。
一方、ドアコマンドは、タイマ割込処理(メイン)のドア監視処理において生成され、ドアコマンド格納領域に格納される。ドアコマンド格納領域には、電源投入時または1ゲーム終了時にその時点のドア開放検出スイッチ25の検出状態を示すドアコマンドが格納され、ドア開放検出スイッチ25の検出状態が変化した時にその変化後の検出状態を示すドアコマンドが格納される。また、ドアコマンド格納領域に格納されたドアコマンドは、当該ドアコマンドが送信された後もクリアされることがなく、その後、新たに格納されるドアコマンドによって上書きされるようになっている。尚、電源投入時または1ゲーム終了時には、ドアコマンド格納領域に格納されているドアコマンドの送信を要求するドアコマンド送信要求1が設定され、ドアコマンド送信要求1が設定されているか、ドア開放検出スイッチ25の検出状態が変化したときに、ドアコマンド送信要求2が設定されるようになっており、このドアコマンド送信要求2が設定されることによりドアコマンド格納領域に格納されているドアコマンドの送信が命令され、その後実行されるタイマ割込処理(メイン)のコマンド送信処理において、コマンドバッファに格納され、シリアル通信回路511の送信データレジスタ561に転送することで、サブ制御部91に送信される。
また、操作検出コマンドは、タイマ割込処理(メイン)のスイッチ入力判定処理において、いずれかのスイッチの検出状態の変化が検出された場合(いずれかのスイッチのエッジデータが設定された場合)に生成され、操作検出コマンド格納領域に格納されるるとともに、操作検出コマンド送信要求が設定されることにより操作検出コマンド格納領域に格納されている操作検出コマンドの送信が命令され、その後実行されるタイマ割込処理(メイン)のコマンド送信処理において、コマンドバッファに格納され、シリアル通信回路511の送信データレジスタ561に転送することで、サブ制御部91に送信される。
前述のようにドアコマンドも操作検出コマンドもともにタイマ割込処理(メイン)のコマンド設定処理においてコマンドバッファに格納され、シリアル通信回路511の送信データレジスタ561に転送することで、サブ制御部91に送信されることとなるが、ドアコマンド送信要求2が設定されている場合、すなわちドアコマンドの送信が要求されている場合には、例え、操作検出コマンドの送信が要求されていても、ドアコマンドの送信を優先するようになっており、ドアコマンド送信要求2が設定されていない場合のみ操作検出コマンドが送信されることとなるため、ドアコマンド送信要求2と操作検出コマンド送信要求の双方が設定されている場合には、当該コマンド送信処理では、ドアコマンドが送信され、次回以降のコマンド送信処理において操作検出コマンドが送信されることとなる。
また、シリアル通信回路511は、図51(a)に示すように、送信データレジスタ561に未送信のコマンドデータが残っているか、或いはコマンドデータの送信中である場合に、ステータスレジスタ563の送信完了の値を0とし、送信データレジスタ561に格納されたコマンドデータの送信が全て完了するとステータスレジスタ563の送信完了の値を1とする。そしてステータスレジスタ563の値は、CPU505によって参照可能とされており、CPU505は、タイマ割込処理(メイン)においてレジスタを待避した後、最初にステータスレジスタ563から送信完了の値を取得し、取得した値に基づいてRAM507の送信完了フラグの値を更新する。
コマンド送信処理では、まずRAM507に格納されている送信完了フラグの値を確認し、図51(b)に示すように、送信完了フラグの値が1の場合、すなわちコマンドデータの送信を行っていないか、コマンドデータの送信が完了している旨を示す場合のみ、ドアコマンドまたは操作検出コマンドの送信データレジスタ561への転送を許可するようになっており、送信完了フラグの値が0の場合、すなわち送信データレジスタ561に未送信のコマンドデータが残っているか、或いはコマンドデータの送信中である旨を示す場合には、ドアコマンド送信要求2が設定されていてもドアコマンドの送信データレジスタ561への転送は禁止され、また、操作検出コマンド送信要求が設定されていても操作検出コマンドの送信データレジスタ561への転送は禁止されるようになっている。
特に、操作検出コマンドは、無効であるか有効であるかに関わらずスイッチの検出状態が変化するとその送信が要求されるため、無制限に送信が要求される可能性があり、これら操作検出コマンドによってゲームの進行制御に伴うコマンドの送信が遅れてしまうこととなるが、上述のようにコマンドデータの送信を行っていないか、コマンドデータの送信が完了している場合のみ操作検出コマンドを送信データレジスタ561へ転送することが許可されるので、操作検出コマンドの送信に伴ってゲームの進行制御に関連する演出が遅れてしまうことを防止できる。
また、本実施例では、ゲームの進行制御に伴う事象を契機とするコマンド(以下、第1のコマンドとする)は、基本処理において生成され、送信データレジスタ561に転送することでシリアル通信回路511によってサブ制御部91に送信されることとなるが、ドアコマンドや操作検出コマンドなど、ゲームの進行とは関係なく生じうる事象を契機とするコマンド(以下、第2のコマンドとする)は、基本処理に定期的に割り込んで実行されるタイマ割込処理(メイン)により生成されるようになっている。また、コマンドが2バイトのデータから構成されているため、これら第2のコマンドを生成した時点で直ちに送信データレジスタ561に転送する構成とすると、場合によっては、基本処理においてゲームの進行制御に伴うコマンドデータ1バイト目を転送した後、2バイト目を転送する前にタイマ割込処理が割り込んで実行され、第1のコマンドのデータの1バイト目と2バイト目の間に、第2のコマンドのデータが入り込んでしまって、サブ制御部91側で正規のコマンドとして受信できなくなってしまう可能性がある。
これに対して本実施例では、前述のようにタイマ割込処理(メイン)の最初にシリアル通信回路511のステータスレジスタ563における送信完了の値を取得し、RAM507の送信完了フラグを更新し、送信完了フラグとして0が設定されている場合、すなわち何らかのコマンドが送信データレジスタ561に残っているか、コマンドの送信中である場合は、第2のコマンドの送信データレジスタ561への転送が禁止されるようになっており、第1のコマンドを構成する複数バイトのコマンドデータの間に、第2のコマンドが入り込んでしまうことがない。
また、本実施例では、タイマ割込処理(メイン)において第2のコマンドの送信データレジスタ561への転送の直前にステータスレジスタ563の送信完了の値を確認するのではなく、タイマ割込処理(メイン)の最初に取得したステータスレジスタ563の送信完了の値を取得して送信完了フラグを更新し、第2のコマンドの送信データレジスタ561への転送の直前に送信完了フラグの値を参照して第2のコマンドの送信データレジスタ561への転送を禁止するか許可するかが判断されるようになっている。
これは、図51(b)に示すように、第1のコマンドを構成する1バイト目のコマンドデータを送信データレジスタ561に転送した後、第1のコマンドを構成する2バイト目のコマンドデータが転送される前の段階でタイマ割込処理(メイン)が実行されると、このタイマ割込処理(メイン)において第2のコマンドの送信データレジスタへの転送の禁止または許可を判断する前に、第1のコマンドを構成する1バイト目のコマンドデータの送信が完了し、ステータスレジスタ563の送信完了の値が1となってしまい、第1のコマンドを構成する2バイト目のコマンドデータが送信されていないのに、未送信の第1のコマンドデータがないものとして第1のコマンドを構成する1バイト目のコマンドデータと2バイト目のコマンドデータの間に、第2のコマンドデータが送信されてしまう可能性があるからであり、本実施例のように、タイマ割込処理(メイン)の最初に取得したステータスレジスタ563の送信完了の値を取得して送信完了フラグを更新し、第2のコマンドの送信データレジスタ561への転送の直前に送信完了フラグの値を参照して第2のコマンドの送信データレジスタ561への転送を禁止するか許可するかを判断することにより、タイマ割込処理(メイン)において第2のコマンドの送信データレジスタへの転送の禁止または許可を判断する前に、第1のコマンドを構成する1バイト目のコマンドデータの送信が完了し、ステータスレジスタ563の送信完了の値が1となってしまっても、確実に第2のコマンドの送信データレジスタへの転送を禁止することが可能となり、第1のコマンドを構成する1バイト目のコマンドデータと2バイト目のコマンドデータの間に、第2のコマンドデータが送信されてしまうことを確実に防止することができる。
尚、本実施例では、タイマ割込処理(メイン)が開始し、レジスタを待避した後、すぐにステータスレジスタ563の送信完了の値を取得する構成であるが、少なくともタイマ割込処理(メイン)の開始後、第2のコマンドの送信データレジスタへの転送を行う前の段階であり、かつタイマ割込処理(メイン)の開始後、シリアル通信回路511が1バイト目のコマンドデータの送信を完了して送信完了の値を更新するのに要する時間が経過する前の段階でステータスレジスタ563の送信完了の値を取得する構成であれば良い。
また、本実施例では、タイマ割込処理(メイン)においてステッピングモータにて構成されるリールモータ32L、32C、32Rの駆動制御が行われるとともに、第1のコマンドを送信データレジスタ561に転送する際にタイマ割込処理(メイン)を禁止するのではなく、タイマ割込処理(メイン)において第2のコマンドの転送を禁止することで、第1のコマンドを構成する複数バイトのコマンドデータの間に、第2のコマンドが入り込んでしまうことを防止しているため、リールモータ32L、32C、32Rの位相の励磁時間が一定となり、リールモータ32L、32C、32Rを安定して駆動させることができる。
尚、本実施例では、ゲームの進行とは関係なく生じうる事象を契機とするコマンドとしてドアコマンド及び操作検出コマンドを適用しているが、ゲームの進行とは関係なく生じうるコマンドであり、タイマ割込処理(メイン)においてその送信が要求されるコマンドであれば良く、遊技機の振動など、突発的に生じうるエラーを検知した旨を示すコマンドを第2のコマンドとして適用しても良い。
また、本実施例では、何らかのコマンドが送信データレジスタ561に残っているか、コマンドの送信中である場合は、第2のコマンドの送信データレジスタ561への転送が一律に禁止される構成であるが、図35(b)に示すように、基本処理においてコマンドデータを送信データレジスタ561に転送するコマンド格納処理において、1バイト目のコマンドデータを転送(Sx1)する前にRAM507に割り当てられたコマンド転送完了フラグ領域の値を0に設定し(Sx0)、2バイト目のコマンドデータの転送(Sx2)を終えた後にコマンド転送完了フラグ領域の値を1に設定する(Sx3)とともに、タイマ割込処理(メイン)のコマンド設定処理において、コマンド転送完了フラグの値として1が設定されている場合のみ、第2のコマンドの送信データレジスタ561への転送を許可し、コマンド転送完了フラグの値として0が設定されている場合には、第2のコマンドの送信データレジスタ561への転送を禁止する構成としても良く、このような構成とすることで、図51(c)に示すように、第1のコマンドを構成する全てのコマンドデータが送信データレジスタ561に転送された後は、最後のコマンドデータ(2バイト目)が未だ送信データレジスタや送信用シフトレジスタ562に残っており、送信が完了していない状態(ステータスレジスタ563の送信完了の値が0の状態)であっても、第2のコマンドの送信データレジスタ561への転送が許可されることとなるため、第1のコマンドを構成する複数バイトのコマンドデータの間に、第2のコマンドを構成するコマンドデータが入り込んでしまうことがないうえに、第2のコマンドの送信が禁止される期間を極力短くすることができる。
また、本実施例では、タイマ割込処理(メイン)の最初にシリアル通信回路511のステータスレジスタ563における送信完了の値を取得し、RAM507の送信完了フラグを更新し、送信完了フラグとして0が設定されている場合、すなわち何らかのコマンドが送信データレジスタ561に残っているか、コマンドの送信中である場合に、第2のコマンドの送信データレジスタ561への転送が禁止される構成としているが、図52(a)に示すように、割込が許可された後の基本処理(ゲーム処理)において生成した第1のコマンドを送信データレジスタ561に転送するコマンド格納処理において、1バイト目のコマンドの転送を開始する前の段階で割込禁止を設定し(Sx11)、2バイト目のコマンドの転送が完了した後、割込を許可する(Sx14)構成、すなわち1バイト目のコマンドの転送を開始する前の段階から2バイト目のコマンドの転送が完了するまでの段階までの間、割込禁止に設定し、その間、タイマ割込処理(メイン)の実行が禁止される構成としても良い。
このような構成とした場合でも、割込が許可された後の基本処理(ゲーム処理)において生成した第1のコマンドを送信データレジスタ561に転送するコマンド格納処理では、図52(b)に示すように、先頭のコマンドの転送を開始する前の段階から2バイト目のコマンドの転送が完了するまでの段階までの間、割込禁止に設定し、その間、コマンド送信処理を含むタイマ割込処理(メイン)の実行が禁止されることとなるため、第1のコマンドを構成する複数バイトのコマンドデータの間に、第2のコマンドが入り込んでしまうことがない。
メイン制御部41は、約100ms毎にドア開放検出スイッチ25の検出状態を監視する。詳しくは、タイマ割込処理(メイン)のタイマ割込1〜4のいずれでも行う、すなわち0.56ms毎に行うポート入力処理においてドア開放検出スイッチ25からの検出信号を正論理化した入力状態(ドア開放検出スイッチ25on=1、ドア閉塞状態で0)を取得し、タイマ割込処理(メイン)のタイマ割込2で行う、すなわち2.24ms毎に行うドア監視処理において、前述のポート入力処理において取得したドア開放検出スイッチ25の検出信号の確定状態(2回連続同一となった入力状態)を、約100ms(ドア監視処理45回)論理和し続け、その結果を使用してドア開放検出スイッチ25の検出状態を判定する。そして、約100msが経過した時点で算出結果が1の場合、すなわちその間に1回でもドア開放検出スイッチ25のon(開放状態)が検出された場合には、ドア開放検出スイッチ25のonと判定し、算出結果が0の場合、すなわちその間に1回もドア開放検出スイッチ25のon(開放状態)が検出されていない場合には、ドア開放検出スイッチ25のoffと判定する。この判定の結果と、ドアコマンド格納領域に格納されているドアコマンドが示すドア開放検出スイッチ25の検出状態と、が一致すればドア開放検出スイッチ25の検出状態に変化なしと判定し、一致しなければドア開放検出スイッチ25の検出状態が変化したと判定し、ドアコマンド格納領域に格納されているドアコマンドを、変化後の検出状態を示すドアコマンドに更新し、ドアコマンド送信要求2を設定して当該ドアコマンドの送信を命令する。また、メイン制御部41は、ドア開放検出スイッチ25の検出状態が変化したと判定した場合に、ドアコマンドの送信命令に加えて、外部出力基板1000に対するドア開放信号の出力状態も更新する。
また、メイン制御部41は、電源投入時または1ゲーム終了時に、起動処理またはゲーム処理においてドアコマンド送信要求1を設定し、ドアコマンド送信用バッファに格納されているドアコマンドの送信を要求する。一方ドア監視処理においては、ドアコマンド送信要求1が設定されているか否かを判定し、ドアコマンド送信要求1が設定されている場合には、ドアコマンドの送信要求ありと判定し、ドアコマンド送信要求2を設定してドアコマンド格納領域に格納されているドアコマンドの送信を命令する。また、メイン制御部41は、ドアコマンド送信要求1が設定されている場合に、ドアコマンドの送信命令に加えて、外部出力基板1000に対するドア開放信号の出力状態も更新する。
このように外部出力基板1000に対するドア開放信号の出力状態は、ドアコマンドの送信命令にリンクして更新されるようになっている。
本実施例のスロットマシン1は、メイン制御部41がゲームの進行制御を行う操作スイッチとして1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rを備える。また、これら操作スイッチのうちスタートスイッチ7は、設定変更状態において設定値の確定操作にも用いられる。
これらスイッチ類の操作は、ゲームの終了時から次回のゲーム終了時までを構成する全ての制御状態において常にゲームの進行制御に関与するものではなく、制御状態に応じてゲームの進行制御に関与することもあれば関与しないことがある。
ゲーム終了後(設定変更後)からゲーム開始までの制御状態においては、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7の操作がゲームの進行制御に関与し、ストップスイッチ8L、8C、8Rの操作はゲームの進行制御に関与しない。さらにゲーム終了後(設定変更後)からゲーム開始までの制御状態であっても、賭数が規定数に到達していない状態、すなわち賭数をさらに加算できる状態であり、かつゲームの開始条件が成立していない状態では、1枚BETスイッチ5、MAXBETスイッチ6の操作がゲームの進行制御に関与するが、スタートスイッチ7の操作はゲームの進行制御に関与せず、一方で、賭数が規定数に到達している状態、すなわち賭数を加算できない状態であり、かつゲームの開始条件が成立している状態では、スタートスイッチ7の操作がゲームの進行制御に関与するが、1枚BETスイッチ5、MAXBETスイッチ6の操作はゲームの進行制御に関与しない。
また、ゲーム開始後からゲーム終了までの制御状態では、ストップスイッチ8L、8C、8Rの操作がゲームの進行制御に関与し、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7の操作はゲームの進行制御に関与しない。さらにゲーム開始後からゲーム終了までの制御状態であっても、全リールが回転中であれば、ストップスイッチ8L、8C、8Rの全ての操作がゲームの進行制御に関与するが、いずれかのリールが停止している状態であれば、ストップスイッチ8L、8C、8Rのうち回転中のリールに対応するストップスイッチのみがゲームの進行制御に関与し、停止済みのリールに対応するストップスイッチはゲームの進行制御に関与しない。
尚、本発明における制御状態とは、ゲーム終了後(設定変更後)からゲーム開始までの制御状態、ゲーム開始後からゲーム終了までの制御状態に限らず、ゲーム終了後(設定変更後)からゲーム開始までの制御状態のうち賭数が規定数に到達していない状態、すなわち賭数をさらに加算できる状態であり、かつゲームの開始条件が成立していない制御状態、賭数が規定数に到達している状態、すなわち賭数を加算できない状態であり、かつゲームの開始条件が成立している制御状態、ゲーム開始後からゲーム終了までの制御状態のうち全リールが回転中の制御状態、左リールのみが停止している制御状態、中リールのみが停止している制御状態、右リールのみが停止している制御状態、左、中リールが停止している制御状態、左、右リールが停止している制御状態、右、中リールが停止している制御状態、ウェイト期間の状態、メダルの払出期間の状態のそれぞれについても該当する。さらに、ゲーム終了後(設定変更後)からゲーム開始までの制御状態において1枚BETスイッチ5やMAXBETスイッチ6の操作がゲームの進行制御に関与しない状態であっても、規定数の賭数が既に設定されているために1枚BETスイッチ5やMAXBETスイッチ6の操作がゲームの進行制御に関与しない制御状態と、規定数の賭数が未だ設定されてはいないが、クレジットが残存していないために1枚BETスイッチ5やMAXBETスイッチ6の操作がゲームの進行制御に関与しない制御状態とは、異なる制御状態といえる。
また、設定変更状態では、スタートスイッチ7の操作が設定値の変更制御に関与し、1枚BETスイッチ5、MAXBETスイッチ6、ストップスイッチ8L、8C、8Rの操作はゲームの進行制御に関与しない。さらに設定変更状態であっても、設定値が確定する前であればスタートスイッチ7の操作が設定値の変更制御に関与するが、設定値が確定した後は、いずれの操作スイッチも設定値の変更制御に関与しない。また、設定確認状態では、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rのいずれの操作もゲームの進行制御に関与しない。
メイン制御部41は、これら操作スイッチを、一定時間間隔毎に割り込んで実行されるタイマ割込処理(メイン)中に実行するスイッチ入力判定処理において検出する。スイッチ入力判定処理では、操作スイッチの検出状態を監視し、いずれかの操作スイッチがoffからonに変化した場合に、該当する操作スイッチがoffからonに変化した旨を示すエッジデータ(立上りエッジ)を設定し、onからoffに変化した場合に、該当する操作スイッチがonからoffに変化した旨を示すエッジデータ(立下りエッジ)を設定する。
そして、メイン制御部41は、ゲーム処理において現段階の制御状態に応じてゲームの進行制御に関与する操作スイッチの立上りエッジが設定されているか否かに基づいて当該操作スイッチの操作がなされたか否かを判定し、当該操作スイッチの操作がなされていると判定した場合には、エッジデータを全てクリアし、当該操作スイッチの操作に応じたゲームの進行制御を実行するとともに、ゲームの進行制御に伴うコマンド(BETコマンド、内部当選コマンド、リール停止コマンドなど)をシリアル通信回路511の送信データレジスタ561に転送し、サブ制御部91に対して送信させる。尚、いずれかの操作スイッチの操作が検出され、エッジデータが設定された場合でも、次回スイッチ入力判定処理までにクリアされなかった場合には、次回スイッチ入力判定処理でクリアされることとなる。
メイン制御部41は、リール回転処理において回転中のリールに対応するストップスイッチの立上りエッジが設定されていると判定した場合に、他の操作スイッチの検出状態がonであるか否かを判定し、他の操作スイッチの検出状態がonであると判定した場合、すなわち他の操作スイッチが操作されている状態で回転中のリールに対応するストップスイッチの操作が検出された場合には、有効な停止操作とせず、対応するリールの停止制御を行わないようになっている。
これは、ストップスイッチ8L、8C、8Rのうち2つ以上の操作が検出された場合に、いずれかの操作に基づく停止制御を優先すると、他方の停止制御が遅れてしまい、リールの停止態様が不自然になる等の問題が生じ得る虞があるためであり、上記のように他の操作スイッチが操作されている状態で回転中のリールに対応するストップスイッチの操作が検出されても、対応するリールの停止制御を行わないことで、一方のリールの停止制御によって他方のリールの停止制御が遅れることがないようになっている。
また、メイン制御部41は、リール回転処理において回転中のリールに対応するストップスイッチの立上りエッジが設定されていると判定した場合に、他のストップスイッチに限らず、他の操作スイッチの検出状態がonであるか否かを判定し、他の操作スイッチのいずれかの検出状態がonであると判定した場合には、有効な停止操作とせず、対応するリールの停止制御を行わないようになっており、操作スイッチの検出状態のうちストップスイッチの検出状態のみを抽出することなく、例えば、onを1とし、offを0とした場合に、操作スイッチ全ての検出状態の総和を算出し、2以上であれば、他の操作スイッチが検出状態と判定するなど、操作スイッチ全ての検出状態を一括して判定することが可能となる。
また、メイン制御部41は、設定変更状態において、未だ設定値が確定していない段階で、設定値を確定させるためのスタートスイッチ7の立上りエッジが設定されていると判定した場合に、他の操作スイッチの検出状態がonであるか否かを判定し、他の操作スイッチのいずれかの検出状態がonであると判定した場合には、設定値を確定させる制御を行わないようになっている。
これは、後述のように設定変更状態においてサブ制御部91側で制御される管理者モードの操作手段として本来であればメイン制御部41がゲームの進行制御に用いる操作スイッチを流用しているためであり、上記のように未だ設定値が確定していない段階で、他の操作スイッチが操作されている状態で設定値を確定させるためのスタートスイッチ7が操作されても設定値の確定制御を行わないことで、管理者モードの操作に伴い、誤ってスタートスイッチ7も同時に操作してしまった場合でも、設定値は確定せず、設定値が未設定の段階が維持されるので、管理者が予期せずに設定値を確定させてしまうことがなく、誤操作によって再度、電源を落として最初から設定変更状態としなければならないといった煩わしさを軽減できるようになっている。
メイン制御部41は、前述したスイッチ入力判定処理においていずれかの操作スイッチの検出状態の変化を判定した場合に、エッジデータを設定するとともに、エッジデータが設定されたスイッチ、立上りエッジであるか、立下りエッジであるか、他のスイッチの検出状態を示す操作検出コマンドを生成し、操作検出コマンド格納領域に格納するとともに、操作検出コマンド送信要求を設定する。
そして、操作検出コマンド送信要求が設定されることで、タイマ割込処理(メイン)におけるコマンド送信処理において、操作検出コマンド格納領域に格納されている操作検出コマンドが読み出され、シリアル通信回路511の送信データレジスタ561に転送し、サブ制御部91に対して送信させる。
このように本実施例では、メイン制御部41が、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rが操作されたことを特定可能な操作検出コマンドをサブ制御部91に対して送信することで、サブ制御部91が、それぞれの制御状態においてゲームの進行制御に関与する操作スイッチであるか否かに関わらず、メイン制御部41により検出される操作スイッチが操作されたことが特定できるようになっており、ゲームの進行制御に関与しない操作スイッチの操作に応じて演出を実行可能である。
また、本実施例では、メイン制御部41が、いずれかの操作スイッチの検出状態(on/off)が変化したときのみ、その旨を示す操作検出コマンドを送信するようになっており、操作検出コマンドの送信を極力減らすことが可能となり、操作検出コマンドの送信に係る制御の負荷を軽減できるうえに、サブ制御部91側でも必要以上に操作検出コマンドを受信せずに済む。
また、いずれかの操作スイッチの検出状態がoffからonに変化した場合だけでなく、onからoffに変化した場合にも、その変化を示す操作検出コマンドが送信されるので、サブ制御部91側で、ゲームの進行制御に関与しない操作スイッチの検出状態をリアルタイムに特定することが可能となるため、ゲームの進行制御に関与しない操作スイッチの操作が開始したタイミングだけでなく、操作が解除されたタイミングや操作が解除されないまま一定時間継続したタイミングに応じて異なる演出を行ったり、演出の開始タイミングや終了タイミングを変化させることも可能となり、ゲームの進行制御に関与しない操作スイッチの操作に応じて多彩な演出を行うことができる。
尚、本実施例では、いずれかの操作スイッチの検出状態offからonに変化した旨またはonからoffに変化した旨を検出し、操作スイッチの検出状態の変化が検出されたときに、変化後の検出状態が特定される操作検出コマンドが送信されるようになっているが、いずれかの操作スイッチの検出状態がoffからonに変化した旨のみを検出し、offからonに変化した旨が検出されたときに、該当する操作スイッチの操作を特定可能な操作検出コマンドを送信するようにしたり、いずれかの操作スイッチの検出状態がonからoffに変化した旨のみを検出し、onからoffに変化した旨が検出されたときに、該当する操作スイッチの操作を特定可能な操作検出コマンドを送信するようにしたりしても良く、このような構成とすることで、操作検出コマンドの送信をさらに減らすことが可能となり、操作検出コマンドの送信に係る制御の負荷を軽減できるうえに、サブ制御部91側で受信する操作検出コマンドも減らすことができる。
また、本実施例では、いずれかの操作スイッチの検出状態(on/off)が変化したときに、当該操作スイッチの検出状態に加えて他の操作スイッチの検出状態も特定可能な操作検出コマンドをサブ制御部91に対して送信するようになっており、このような構成とすることで、操作検出コマンドの送信を極力減らすことが可能となるうえに、サブ制御部91は、操作検出コマンドから検出状態の変化した操作スイッチの検出状態だけでなく、他の操作手段の検出状態も特定できるようになり、サブ制御部91側で、複数のスイッチの同時操作や特定のスイッチのみの操作といった複数の操作スイッチの操作状況を反映した演出を行うことが可能となり、操作スイッチの操作を用いた演出を多様なものにできる。さらに、サブ制御部91が操作検出コマンドを取りこぼした場合であっても、次回送信される操作検出コマンドに基づいて全ての操作スイッチについて最新の検出状態を特定することが可能となり、ゲームの進行制御に関与しない操作スイッチの操作に応じた演出を確実に実行することができる。
尚、本実施例では、いずれかの操作スイッチの検出状態(on/off)が変化したときのみ、その旨を示す操作検出コマンドを送信する構成であるが、メイン制御部41が、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rのいずれかが操作されたか否かに関わらず、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rそれぞれのon/offの状態を特定可能な操作検出コマンドを一定間隔毎に送信する構成としても良く、このような構成であってもサブ制御部91側で、メイン制御部41により検出される操作スイッチが操作されたことが特定できるようになっており、ゲームの進行制御に関与しない操作スイッチの操作に応じて演出を実行可能である。
また、本実施例では、タイマ割込処理(メイン)のスイッチ入力判定処理において操作コマンドの送信要求を設定し、その後のコマンド送信処理において送信データレジスタ561に転送され、サブ制御部91に送信される構成であるが、基本処理においてゲームの進行制御に関与しない操作スイッチが操作されたか否か、すなわちゲームの進行制御に関与しない操作スイッチのエッジデータが設定されているか否かを判定し、ゲームの進行制御に関与しない操作スイッチが操作された場合に、その旨を示す操作検出コマンドを送信データレジスタ561に転送し、サブ制御部91に送信させる構成としても良く、このような構成であっても、サブ制御部91側で、メイン制御部41により検出される操作スイッチが操作されたことが特定できるようになっており、ゲームの進行制御に関与しない操作スイッチの操作に応じて演出を実行可能である。
また、本実施例では、ゲームの進行制御に伴うコマンドは、基本処理において生成されるとともに、送信データレジスタ561に転送され、サブ制御部91に送信される一方で、ゲームの進行制御に関与しない操作スイッチの操作に伴う操作検出コマンドは、タイマ割込処理(メイン)のスイッチ入力判定処理において生成され、その後のタイマ割込処理(メイン)のコマンド送信処理において送信データレジスタ561に転送され、サブ制御部91に送信される構成であるが、基本処理においてゲームの進行制御に関与する操作スイッチの操作が検出されたか否かを判定し、ゲームの進行制御に関与する操作スイッチの操作が検出された場合にゲームを進行させる制御を行うとともに、ゲームの進行制御に伴うコマンドを生成し、コマンドバッファに一時的に格納するとともに、基本処理においてゲームの進行制御に関与しない操作が検出されたか否かも判定し、ゲームの進行制御に関与しない操作スイッチの操作が検出された場合に、ゲームの進行制御に関与しない操作が検出された旨の操作検出コマンドを生成し、ゲームの進行制御に伴うコマンドと同様にコマンドバッファに一時的に格納し、その後のタイマ割込処理(メイン)において送信待ちのコマンドがコマンドバッファに格納されている場合に、送信データレジスタ561に転送し、サブ制御部91に対して送信させる構成としても良く、このような構成とすることで、基本処理の制御状態に関わりなく、コマンドの送信制御を共通化することが可能となる。
また、このような構成を採った場合には、次回タイマ割込処理(メイン)においてコマンドバッファに格納されたコマンドを送信するまでに複数の送信待ちコマンドが格納される可能性がある。そして、複数のコマンドを連続して送信した場合、サブ制御部91側で取りこぼす可能性があるうえに、タイマ割込処理(メイン)の処理時間が長くなってしまい、基本処理が停滞してしまう虞があることから、コマンドバッファに格納されたコマンドが複数ある場合には、タイマ割込処理(メイン)1回につき1つのコマンドのみを送信することが好ましい。しかしながら、タイマ割込処理(メイン)1回につき1つのコマンドのみを送信する構成とすると、コマンドの送信タイミングが遅くなってしまうこととなる。
一方、上記の構成を採った場合、ゲームの進行制御に関与する操作スイッチの操作とゲームの進行制御に関与しない操作スイッチの操作が同時に検出された場合に、ゲームの進行制御に伴うコマンドと、ゲームの進行制御に関与しない操作スイッチの操作に伴う操作検出コマンドと、が同時に生成され、コマンドバッファに格納される可能性がある。この場合、その後のタイマ割込処理(メイン)では、操作検出コマンドよりもゲームの進行制御に伴うコマンドの送信を優先することが好ましく、このようにすることで、ゲームの進行制御に伴うコマンドの送信が遅れてしまうことがなく、ゲームの進行制御に関与しない操作の影響によってゲームの進行制御に関与する操作に応じた演出が遅れてしまうことを防止できる。
メイン制御部41は、電源投入に伴い、起動処理を実行し、起動処理の終了時に割込が許可され、その後、タイマ割込処理(メイン)を一定間隔毎に実行する。そして、メイン制御部41が電断前の状態に復帰可能な場合には、起動処理において割込が許可される前に復帰コマンドがサブ制御部91に対して送信される。また、RAM507の格納データの異常によりメイン制御部41が電断前の状態に復帰不可能な場合には、起動処理において割込が許可される前にRAM異常を示すエラーコマンドがサブ制御部91に対して送信される。また、設定キースイッチ37がonの状態であり、RAM507が初期化され、電断前の状態に復帰しない場合には、起動処理において割込が許可される前に設定開始を示す設定コマンドがサブ制御部91に対して送信される。これら起動処理において送信されるコマンドのうち復帰コマンドからは、メイン制御部41が電断前の状態に復帰する旨が特定され、RAM異常を示すエラーコマンド、設定開始を示す設定コマンドからは、メイン制御部41が電断前の状態には復帰しない旨が特定されることとなる。
そして、前述のように操作検出コマンドは、タイマ割込処理(メイン)において送信されるとともに、起動処理の終了までは割込処理が許可されないので、メイン制御部41の起動後、メイン制御部41が電断前の状態に復帰する旨が特定される復帰コマンドを送信したか、メイン制御部41が電断前の状態に復帰しない旨が特定されるRAM異常を示すエラーコマンド、設定開始を示す設定コマンドを送信した後に、操作検出コマンドの送信が許可されることとなる。
このようにメイン制御部41は、電源投入後、電断前の状態に復帰させないと判定してRAM異常を示すエラーコマンドをサブ制御部91に対して送信するか、電断前の状態に復帰させて復帰コマンドをサブ制御部91に対して送信するまでは操作検出コマンドをサブ制御部91に対して送信しないので、メイン制御部41を復帰させるか否かが確定していない状態にも関わらず、サブ制御部91が操作検出コマンドから特定される操作に応じて演出を実行してしまうことがなく、電源投入時においてメイン制御部41の状態と食い違った演出が実行されてしまうことを防止できる。
また、メイン制御部41は、起動処理において復帰コマンド、RAM異常を示すエラーコマンド、設定開始を示す設定コマンドをサブ制御部91に対して送信し、その後、割込を許可することでタイマ割込処理(メイン)を実行してその中のコマンド送信処理にて操作検出コマンドを送信するようになっており、コマンド送信処理において復帰コマンド、RAM異常を示すエラーコマンド、設定開始を示す設定コマンドが既に送信されているか否かを判断することなく、操作検出コマンドよりも先に復帰コマンド、RAM異常を示すエラーコマンド、設定開始を示す設定コマンドを送信することができる。
また、メイン制御部41は、タイマ割込処理(メイン)の最初に電圧低下信号が入力されているか否かを判定し、電圧低下信号が入力されている場合のみ電断処理(メイン)を実行するため、以前のタイマ割込処理(メイン)のスイッチ入力判定処理において操作検出コマンド送信要求が設定され、当該操作検出コマンド送信要求に基づく操作検出コマンドが送信されないまま、電断処理(メイン)が実行され、動作が停止してしまうことが生じうるが、メイン制御部41は、その起動時に操作検出コマンド送信要求がクリアされるため、電断前の状態で未送信となった操作検出コマンドが復帰して、復帰後の操作スイッチの検出状態が反映されていない操作検出コマンドが送信されてしまうことはない。このため、電源投入後、操作スイッチがなんら操作されていないにも関わらず、ゲームの進行制御に関与しない操作に応じた演出が実行されてしまうことを防止できる。
次に、メイン制御部41が演出制御基板90に対して送信するコマンドに基づいてサブ制御部91が実行する演出の制御について説明する。
サブ制御部91は、メイン制御部41からのコマンドを受信した際に、コマンド受信割込処理を実行する。コマンド受信割込処理では、RAM91cに設けられた受信用バッファに、コマンド伝送ラインから取得したコマンドを格納する。
受信用バッファには、最大で16個のコマンドを格納可能な領域が設けられており、複数のコマンドを蓄積できるようになっている。
サブ制御部91は、タイマ割込処理(サブ)において、受信用バッファに未処理のコマンドが格納されているか否かを判定し、未処理のコマンドが格納されている場合には、そのうち最も早い段階で受信したコマンドに基づいてROM91bに格納された制御パターンテーブルを参照し、制御パターンテーブルに登録された制御内容に基づいて液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55等の各種演出装置の出力制御を行う。
制御パターンテーブルには、複数種類の演出パターン毎に、コマンドの種類に対応する液晶表示器51の表示パターン、演出効果LED52の点灯態様、スピーカ53、54の出力態様、リールLEDの点灯態様等、これら演出装置の制御パターンが登録されており、サブ制御部91は、コマンドを受信した際に、制御パターンテーブルの当該ゲームにおいてRAM91cに設定されている演出パターンに対応して登録された制御パターンのうち、受信したコマンドの種類に対応する制御パターンを参照し、当該制御パターンに基づいて演出装置の出力制御を行う。これにより演出パターン及び遊技の進行状況に応じた演出が実行されることとなる。
尚、サブ制御部91は、あるコマンドの受信を契機とする演出の実行中に、新たにコマンドを受信した場合には、実行中の制御パターンに基づく演出を中止し、新たに受信したコマンドに対応する制御パターンに基づく演出を実行するようになっている。すなわち演出が最後まで終了していない状態でも、新たにコマンドを受信すると、受信した新たなコマンドが新たな演出の契機となるコマンドではない場合を除いて実行していた演出はキャンセルされて新たなコマンドに基づく演出が実行されることとなる。
特に、本実施例では、演出の実行中に賭数の設定操作がなされたとき、すなわちサブ制御部91が、賭数が設定された旨を示すBETコマンドを受信したときに、実行中の演出を中止するようになっている。このため、遊技者が、演出を最後まで見るよりも次のゲームを進めたい場合には、演出がキャンセルされ、次のゲームを開始できるので、このような遊技者に対して煩わしい思いをさせることがない。また、演出の実行中にクレジットまたは賭数の精算操作がなされたとき、すなわちサブ制御部91が、ゲームの終了を示す遊技状態コマンドを受信した後、ゲームの開始を示す内部当選コマンドを受信する前に、払出開始コマンドを受信した場合には、実行中の演出を中止するようになっている。クレジットや賭数の精算を行うのは、遊技を終了する場合であり、このような場合に実行中の演出を終了させることで、遊技を終了する意志があるのに、不要に演出が継続してしまわないようになっている。
演出パターンは、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じた選択率にて選択され、RAM91cに設定される。演出パターンの選択率は、ROM91bに格納された演出テーブルに登録されており、サブ制御部91は、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じて演出テーブルに登録されている選択率を参照し、その選択率に応じて複数種類の演出パターンからいずれかの演出パターンを選択し、選択した演出パターンを当該ゲームの演出パターンとしてRAM91cに設定するようになっており、同じコマンドを受信しても内部当選コマンドの受信時に選択された演出パターンによって異なる制御パターンが選択されるため、結果として演出パターンによって異なる演出が行われることがある。
サブ制御部91のRAM91cには、操作スイッチの検出状態の変化状況が操作スイッチ毎に格納される検出状態格納領域と、操作スイッチの操作状態が変化した旨を示す操作検出フラグが操作スイッチ毎に格納される操作検出フラグ格納領域と、が割り当てられている。さらに検出状態格納領域には、操作検出コマンドを受信する前(前回)の検出状態と、操作検出コマンドを受信した後(今回)の検出状態と、が割り当てられており、それぞれに操作検出コマンドの受信前後の各操作スイッチの検出状態が格納されるようになっている。
サブ制御部91は、タイマ割込処理(サブ)において受信用バッファに未処理のコマンドが格納されていると判定した場合に、操作検出処理1を行う。操作検出処理1では、未処理のコマンドが操作検出コマンドか否かを判定し、操作検出コマンドであると判定した場合に、検出状態格納領域に格納されている今回の検出状態を前回の検出状態に移動し、操作検出コマンドが示す各操作スイッチの検出状態を今回の検出状態として格納するとともに、前回の検出状態と今回の検出状態とが異なる操作スイッチがある場合に、offからonに変化した場合には、その操作スイッチに対応する操作検出フラグとして立上りフラグを設定し、onからoffに変化した場合には、その操作スイッチに対応する操作検出フラグとして立下りフラグを設定する。
このように本実施例では、メイン制御部41が、いずれかの操作スイッチの検出状態が変化したときに、全ての操作スイッチの検出状態を特定可能な操作検出コマンドを送信するとともに、サブ制御部91は、操作検出コマンドを受信した際に、検出状態格納領域に格納されている操作検出コマンドの受信前後の各操作スイッチの検出状態を更新し、検出状態が異なる操作スイッチがある場合に、その操作スイッチに対応する操作検出フラグを設定するようになっており、サブ制御部91は、操作検出フラグの有無を確認することで、操作スイッチの検出状態が変化した旨に加え、操作検出コマンドの受信前後で各操作スイッチの検出状態がどのように変化したか、すなわちoffからonに変化したのか、onからoffに変化したのか、を判別できるようになっている。
このため、サブ制御部91は、操作スイッチの操作が開始したタイミングだけでなく、その操作が解除されたタイミングに応じて演出を行ったり、演出を変化させることが可能となり、ゲームの進行制御に関与しない操作スイッチの操作態様に応じて多彩な演出を行うことができる。
尚、本実施例では、サブ制御部91が、検出状態格納領域に格納されている操作検出コマンドの受信前後の各操作スイッチの検出状態から、各操作スイッチの検出状態がどのように変化したか否かを判定するようになっているが、本実施例では、メイン制御部41が、いずれかの操作スイッチの検出状態が変化したときに、検出状態が変化したスイッチ及びoffからonへの変化であるか、onからoffへの変化であるか、を特定可能な操作検出コマンドが送信されるので、操作検出コマンド自体から、操作検出コマンドの受信前後の各操作スイッチの検出状態がどのように変化したか否かを判別する構成としても良く、このような構成とすることで、ゲームの進行制御に影響しない操作スイッチの操作に伴うサブ制御部91の制御負荷を軽減することができる。
また、検出状態格納領域には、各操作スイッチの検出状態が格納されており、サブ制御部91は、いずれかの操作検出フラグが設定され、当該操作検出フラグに対応する操作スイッチの検出状態の変化が特定された場合に、検出状態格納領域の他の操作スイッチの検出状態を確認することで、検出状態が変化した操作スイッチだけでなく、他の操作スイッチの検出状態も特定できるようになっている。
このため、複数の操作スイッチが同時に操作されている状態を特定可能となり、例えば、パターン1やパターン3の操作演出のように、複数の操作スイッチが同時に操作されることで演出を行うことが可能となり、複数の操作スイッチの操作の仕方によって多様な演出を行うことができる。
また、サブ制御部91は、パターン1の操作演出のように、左ストップスイッチ、中ストップスイッチの操作スイッチが同時に操作されることで演出を行う場合に、左ストップスイッチが検出されており、かつ右ストップスイッチが検出されていない状態で、中ストップスイッチの操作を検出した場合にはステージ変更演出を行うが、左ストップスイッチ及び右ストップスイッチの双方が検出されている状態で、中ストップスイッチの操作を検出した場合には、上記と同様に左ストップスイッチと中ストップスイッチの操作が同時に検出されていることとなるが、この場合には、ステージ変更演出を行わないようになっている。
すなわち特定の操作スイッチの操作に応じて特定の操作演出を行う際に、特定の操作スイッチとともに特定の操作スイッチ以外の操作スイッチが操作された場合には、特定の操作演出を行わないようになっている。
このため、特定の操作スイッチの操作に基づく特定の操作演出は、特定の操作スイッチが他の操作スイッチと同時に操作された場合や他の操作スイッチが操作されている状態で操作された場合には実行されることがなく、誤った操作によって特定の操作演出が実行されることがないため、特定の操作演出を希望する遊技者に対してのみ特定の操作演出を実行することができる。
また、上記のように特定の操作スイッチとともに特定の操作スイッチ以外の操作スイッチが操作された場合には、特定の操作演出を行わないことにより、例えば、パターン1とパターン3の操作演出のように、各々の演出を実行させるための操作スイッチの一部が重複する場合でも、異なる演出を実行させることが可能となる。すなわちパターン1の操作演出は、左ストップスイッチと中ストップスイッチが同時に操作されることで実行され、パターン2の操作演出は、中ストップスイッチと右ストップスイッチが同時に操作されることで実行されるが、左ストップスイッチと右ストップスイッチが同時に操作されている状態で、中ストップスイッチが操作された際に、左ストップスイッチと中ストップスイッチの同時操作なのか、中ストップスイッチと右ストップスイッチの同時操作なのか、を判別することができなくなってしまい、いずれか一方の同時操作に対してしか演出を割り当てることができなくなってしまうが、特定の操作スイッチとともに特定の操作スイッチ以外の操作スイッチが操作された場合には、特定の操作演出を行わないことにより、パターン1とパターン2の操作演出のようなケースであっても、それぞれの同時操作に対して演出を割り当てることが可能となり、複数の操作スイッチの操作の仕方によってさらに多様な演出を行うことができる。
サブ制御部91は、操作検出処理1においていずれかの操作スイッチの検出状態がoffからonに変化した場合、すなわち操作スイッチの操作が開始した場合に、RAM91cに割り当てられた操作時間カウンタのうち該当する操作スイッチの操作時間カウンタの値を初期化する。操作時間カウンタの値は、タイマ割込処理(サブ)が実行される毎に加算されるようになっており、操作時間カウンタの値を参照することで操作スイッチの操作が開始してからの経過時間を判別できる。
また、サブ制御部91は、タイマ割込処理(サブ)が実行される毎に、操作検出処理2を実行する。操作検出処理2では、検出状態格納領域に格納された今回の検出状態がonであるか否かを操作スイッチ毎に判定し、onである場合、すなわち操作スイッチの操作が継続している場合には、該当する操作スイッチの操作時間カウンタの値を参照し、予め定められた時間経過していれば、その旨を示す時間経過フラグを操作スイッチに対応付けて設定する。本実施例では、3秒経過時、5秒経過時、10秒経過時に、それぞれ時間経過フラグとして3秒経過フラグ、5秒経過フラグ、10秒経過フラグを設定する。
このため、サブ制御部91は、時間経過フラグが設定されているか否かを確認することにより操作スイッチが継続して操作された時間が一定時間経過したことを契機に演出を行うことが可能となる。
尚、本実施例では、サブ制御部91が、操作スイッチの検出状態がoffからonに変化した後、当該操作スイッチの検出状態がonからoffに変化せずに経過した時間を計時することで、サブ制御部91側で操作スイッチの連続操作時間を把握することが可能となり、メイン制御部41側で個々のスイッチ毎に連続操作時間を計時するタイマを有することなく、サブ制御部91のプログラムを変更するのみで操作スイッチの連続操作時間を検出することが可能となるが、メイン制御部41側で操作スイッチの操作がoffからonに変化した後、onからoffに変化せずに経過した時間を計時し、この時間が規定時間に到達したときに操作スイッチが規定時間連続して操作された旨を示すコマンドを送信することで、サブ制御部91側で、操作スイッチの操作が継続して操作された旨を特定できるようにしても良い。
また、サブ制御部91は、操作検出処理1においていずれかの操作スイッチの検出状態がoffからonに変化した場合、すなわち操作スイッチの操作が開始した場合に、RAM91cに割り当てられた連続操作カウンタのうち該当する操作スイッチの連続操作カウンタの値を1加算する。連続操作カウンタの値は、他の操作スイッチの検出状態がoffからonに変化した場合または演出開始時などのサブ制御部91からの命令によりクリアされるようになっており、連続操作カウンタの値を参照することである起点から特定の操作スイッチが連続して操作された回数を判別できる。そして、サブ制御部91は、連続操作カウンタの値を確認することにより、ある起点からの操作スイッチの連続操作回数が規定回数に到達したことを契機に演出を行うことが可能となる。
尚、本実施例では、サブ制御部91が、操作スイッチの検出状態がoffからonに変化した回数を計数することで、サブ制御部91側で操作スイッチ連続操作回数を把握することが可能となり、メイン制御部41側で個々のスイッチ毎に連続操作回数を計数するカウンタを有することなく、サブ制御部91のプログラムを変更するのみで操作スイッチの操作回数を検出することが可能となるが、メイン制御部41側で操作スイッチの操作がoffからonに変化した回数を計数し、この回数が規定回数に到達したときに操作スイッチが規定回数操作された旨を示すコマンドを送信することで、サブ制御部91側で、操作スイッチの操作が規定回数操作された旨を特定できるようにしても良い。
本実施例では、前述のようにメイン制御部41は、外部出力基板1000を介してスロットマシン1それぞれを識別可能な固有情報を外部機器に対して送信する。
固有情報は、チップ個別ナンバーレジスタ573に記憶されたチップ個別ナンバー、スロットマシン1の各製造業者ごとに予め付与されたメーカーコード、スロットマシン1の各型式ごとに予め付与された型式名コードを含む。メーカーコードは、データ長(バイト数)が3バイトのアスキーデータであり、ROM506のプログラム管理エリアに記憶されている。チップ個別ナンバーは、データ長(バイト数)が4バイトの16進データであり、チップ個別ナンバーレジスタ573に記憶されている。型式名コードは、データ長(バイト数)が32バイトのアスキーデータであり、ROM506のユーザプログラムエリアに記憶されている。尚、型式名が32バイト以下のデータで示される場合には、例えば16進データの「20H」(添字Hは16進数であることを示す)を不足バイト数だけ末尾に付加することにより、型式コードの全体ではデータ長が32バイトとなるように調整すれば良い。
チップ個別ナンバーは、チップ個別ナンバーレジスタ573に一旦記憶された後、このチップ個別ナンバーレジスタ573が物理的に破壊等されない限り、消去されることがないものである。チップ個別ナンバーレジスタ573は、ROM506とは別個の構成として、メイン制御部41に内蔵された専用の回路であるが、ROM506の所定領域にチップ個別ナンバーを記憶させることにより、チップ個別ナンバーレジスタ573として機能させても良い。
本実施例では、メイン制御部41のCPU505が、ROM506やチップ個別ナンバーレジスタ573などから読み出した固有情報の構成データを、1ビットずつメイン制御部41の出力ポートにおける所定ビットにセットする。すなわち、CPU505がソフトウェアにより固有情報をシリアル信号方式でメイン制御部41の出力ポートから出力させる。尚、CPU505がソフトウェアにより固有情報をシリアル信号方式でメイン制御部41の出力ポートから出力させるものに限らず、例えば、メイン制御部41に内蔵されたハードウェアとしてのシリアル出力回路(例えばシフトレジスタなど)により、パラレルデータとして読み出された固有情報をシリアルデータに変換して、外部出力基板1000へと伝送させても良い。この場合、メイン制御部41のCPU505は、ROM506のプログラム管理エリアに記憶されたメーカーコード、チップ個別ナンバーレジスタ573に記憶されたチップ個別ナンバー、及びROM506のユーザプログラムエリアに記憶された型式名コードを、所定バイト数(例えば1バイト)単位でパラレルデータとして順次に読み出し、読出データをシリアル出力回路に供給し、シリアル出力回路は、供給された固有情報の読出データを所定バイト数(例えば1バイト)単位でパラレルデータからシリアルデータに変換して順次に出力すれば良い。
尚、固有情報をシリアルデータに変換するシリアル出力回路は、メイン制御部41に内蔵されるものに限定されず、遊技制御基板40にてメイン制御部41に外付けされたものであっても良いし、メイン制御部41の出力ポートにおいて所定バイト数(例えば1バイト)単位で固有情報をパラレルデータとして出力する複数のビットを割り当て、遊技制御基板40と外部出力基板1000との間では、固有情報がパラレルデータとして伝送されるようにしても良い。この場合には、例えば外部出力基板1000上にシリアル出力回路を設けて、固有情報をパラレルデータからシリアルデータに変換してから、外部機器へと出力できるようにしても良い。
また、固有情報は、メーカーコード、チップ個別ナンバー、及び型式名コードの全部を含む情報であるが、少なくともチップ個別ナンバーといったメイン制御部41の各製品(各チップ)ごとに異なるIDナンバー等を含む情報であっても良いし、メイン制御部41の各製品(各チップ)ごとに異なるチップ個別ナンバーとともに、あるいはチップ個別ナンバーに代えて、スロットマシン1の各製品毎に予め個別に付与された製品管理ナンバー(識別番号)などを、固有情報として使用しても良い。
次にメイン制御部41による固有情報の送信タイミングについて説明する。
本実施例では、メイン制御部41は、設定変更状態への移行時、設定確認状態への移行時、エラー状態への移行時、ゲーム開始時、後述するRT(2)への移行時にそれぞれ固有情報を外部機器に対して送信する。
設定変更状態への移行時、設定確認状態への移行時、エラー状態への移行時、ゲーム開始時、RT(2)への移行時には、それぞれセキュリティ信号のラインを用いて、設定開始通知、確認開始通知、エラー通知、ゲーム開始通知、有利RT開始通知をシリアルデータとして送信するようになっており、同じセキュリティ信号のラインから送信される固有情報は、これら設定開始通知、確認開始通知、エラー通知、ゲーム開始通知、有利RT開始通知の送信後に送信されることとなる。
尚、本実施例では、設定変更状態への移行時、設定確認状態への移行時、エラー状態への移行時、ゲーム開始時、RT(2)への移行時に、設定開始通知、確認開始通知、エラー通知、ゲーム開始通知、有利RT開始通知の送信後に固有情報を送信する構成であるが、設定変更状態への移行時、設定確認状態への移行時、エラー状態への移行時、ゲーム開始時、RT(2)への移行時に、設定開始通知、確認開始通知、エラー通知、ゲーム開始通知、有利RT開始通知などは送信せずに、固有情報のみを送信する構成としても良い。
図54(a)に示すように、設定変更状態に移行すると、まずセキュリティ信号のラインにて設定開始通知をシリアルデータとして出力し、設定変更状態の開始を外部機器に対して通知するとともに、続いて固有情報をシリアルデータとして出力する。そして、設定変更状態が終了すると、セキュリティ信号のラインにて設定終了通知をシリアルデータとして出力し、設定変更状態の終了を外部機器に対して通知する。
図54(b)に示すように、設定確認状態に移行すると、まずセキュリティ信号のラインにて確認開始通知をシリアルデータとして出力し、設定確認状態の開始を外部機器に対して通知するとともに、続いて固有情報をシリアルデータとして出力する。そして、設定確認状態が終了すると、セキュリティ信号のラインにて確認終了通知をシリアルデータとして出力し、設定確認状態の終了を外部機器に対して通知する。
図54(c)に示すように、エラー状態に移行すると、まずセキュリティ信号のラインにてエラー通知をシリアルデータとして出力し、エラー状態の発生を外部機器に対して通知するとともに、続いて固有情報をシリアルデータとして出力する。そして、エラー状態が解除されると、セキュリティ信号のラインにてエラー解除通知をシリアルデータとして出力し、エラー状態の解除を外部機器に対して通知する。
図54(d)に示すように、ゲーム開始時(開始可能な状態でスタートスイッチ7が操作されてゲームが開始したとき)に、まずセキュリティ信号のラインにてゲーム開始を示すゲーム開始通知をシリアルデータとして出力し、ゲーム開始を外部機器に対して通知するとともに、続いて固有情報をシリアルデータとして出力する。
図54(e)に示すように、遊技者にとって有利な後述するRT(2)に移行すると、まずセキュリティ信号のラインにてRT(2)の開始を示す有利RT開始通知をシリアルデータとして出力し、RT(2)の開始を外部機器に対して通知するとともに、続いて固有情報をシリアルデータとして出力する。そして、RT(2)が終了すると、セキュリティ信号のラインにて有利RT終了通知をシリアルデータとして出力し、RT(2)の終了を外部機器に対して通知する。
また、図55に示すように、エラーAに伴うエラー状態の発生後、このエラー状態の発生に伴う固有情報の送信が完了する前にさらにエラーBに伴うエラー状態が発生した場合など、固有情報の送信が完了する前にさらに固有情報の送信契機が発生した場合には、最初の契機に伴う固有情報の出力を継続し、その間に発生した契機に伴う通知や固有情報は送信されないようになっている。
また、本実施例では、前述のようにサブ制御部91のサブCPU91aは、外部出力基板1100を介して固有情報を外部機器に対して送信する。
固有情報は、メイン制御部41が送信するのと同一の情報であり、チップ個別ナンバー、メーカーコード、型式名コードが含まれる。
メイン制御部41は、設定開始を示す設定コマンド、復帰コマンド、遊技状態コマンドの送信時に、ROM506のプログラム管理エリアに記憶されたメーカーコード、チップ個別ナンバーレジスタ573に記憶されたチップ個別ナンバー、及びROM506のユーザプログラムエリアに記憶された型式名コードから固有情報を作成し、上記のコマンドに含めてサブ制御部91に送信する。
サブ制御部91は、起動後、設定開始を示す設定コマンドまたは復帰コマンドを受信したときに、これら設定開始を示す設定コマンドまたは復帰コマンドに含まれる固有情報をRAM91cに割り当てられた固有情報格納領域に格納する。
尚、サブ制御部91は、設定開始を示す設定コマンドか復帰コマンドを受信するまで演出の出力制御を行わないようになっており、起動後、これら設定開始を示す設定コマンドまたは復帰コマンドに含まれる固有情報をメイン制御部41から受信しないまま演出の出力制御が行われてしまうことを防止できる。
サブ制御部91は、起動時に設定開始を示す設定コマンドまたは復帰コマンドに含まれる固有情報を固有情報格納領域に格納した後、遊技状態コマンドを受信したときに、遊技状態コマンドに含まれる固有情報と固有情報格納領域に格納されている固有情報(起動時に格納された固有情報)と照合し、一致しない場合には、その旨を外部に報知する。
本実施例では、サブ制御部91のサブCPU91aが、RAM91cの固有情報格納領域から読み出した固有情報の構成データを、1ビットずつサブ制御部91の出力ポートにおける所定ビットにセットする。すなわち、サブCPU91aがソフトウェアにより固有情報をシリアル信号方式でサブ制御部91の出力ポートから出力させる。尚、サブCPU91aがソフトウェアにより固有情報をシリアル信号方式でサブ制御部91の出力ポートから出力させるものに限らず、例えば、サブ制御部91に内蔵されたハードウェアとしてのシリアル出力回路(例えばシフトレジスタなど)により、パラレルデータとして読み出された固有情報をシリアルデータに変換して、外部出力基板1100へと伝送させても良い。この場合、サブ制御部91のサブCPU91aは、RAM91cの固有情報格納領域に格納された固有情報を、所定バイト数(例えば1バイト)単位でパラレルデータとして順次に読み出し、読出データをシリアル出力回路に供給し、シリアル出力回路は、供給された固有情報の読出データを所定バイト数(例えば1バイト)単位でパラレルデータからシリアルデータに変換して順次に出力すれば良い。
尚、固有情報をシリアルデータに変換するシリアル出力回路は、サブ制御部91に内蔵されるものに限定されず、演出制御基板90にてサブ制御部91に外付けされたものであっても良いし、サブ制御部91の出力ポートにおいて所定バイト数(例えば1バイト)単位で固有情報をパラレルデータとして出力する複数のビットを割り当て、演出制御基板90と外部出力基板1100との間では、固有情報がパラレルデータとして伝送されるようにしても良い。この場合には、例えば外部出力基板1100上にシリアル出力回路を設けて、固有情報をパラレルデータからシリアルデータに変換してから、外部機器へと出力できるようにしても良い。
また、サブ制御部91から送信される固有情報は、メイン制御部41から出力される固有情報と同一の情報であるが、メイン制御部41から出力される固有情報の一部であっても良いし、メイン制御部41から出力される固有情報に他の情報(サブ制御部91のチップナンバーなど)を加えたり、サブ制御部91がメイン制御部41からの固有情報を加工・生成したものであっても良い。
次にサブ制御部91による固有情報の送信タイミングについて説明する。
本実施例では、サブ制御部91は、ATの開始時(後述するナビ権利の消費時、すなわちナビ権利が残存している状態でRT(0)に移行し、ナビ権利を1つ消費したとき)、ARTの開始時(RT(0)におけるリプレイナビの結果、RT(2)へ移行したとき)にそれぞれ固有情報を外部機器に対して送信する。
ATの開始時、ARTの開始時には、それぞれ演出関連信号のラインを用いて、AT開始通知、ART開始通知をシリアルデータとして送信するようになっており、同じ演出関連信号のラインから送信される固有情報は、これらAT開始通知、ART開始通知の送信後に送信されることとなる。
尚、本実施例では、ATの開始時、ARTの開始時に、AT開始通知、ART開始通知の送信後に固有情報を送信する構成であるが、ATの開始時、ARTの開始時に、AT開始通知、ART開始通知などは送信せずに、固有情報のみを送信する構成としても良い。
図54(f)に示すように、AT開始時(後述するナビ権利の消費時、すなわちナビ権利が残存している状態でRT(0)に移行し、ナビ権利を1つ消費したとき)に、まず演出関連信号のラインにてATの開始を示すAT開始通知をシリアルデータとして出力し、AT開始を外部機器に対して通知するとともに、続いて固有情報をシリアルデータとして出力する。
図54(g)に示すように、ART開始時(RT(0)におけるリプレイナビの結果、RT(2)へ移行したとき)に、まず演出関連信号のラインにてARTの開始を示すART開始通知をシリアルデータとして出力し、ART開始を外部機器に対して通知するとともに、続いて固有情報をシリアルデータとして出力する。
また、ATの開始後、このAT開始に伴う固有情報の送信が完了する前にさらにARTが開始した場合など、固有情報の送信が完了する前にさらに固有情報の送信契機が発生した場合には、最初の契機に伴う固有情報の出力を継続し、その間に発生した契機に伴う通知や固有情報は送信されないようになっている。
図56は、スロットマシン1から送信された固有情報を受けて各種の処理を実行可能な外部機器などを含めた遊技情報処理システムの構成例を示す説明図である。図56に示す構成例では、スロットマシン1からの固有情報などが入力される外部機器として、スロットマシン1が設置される遊技場(図56に示す例では遊技場A)内に設けられた情報提供端子板1010、ホールコンピュータ1202を有している。スロットマシン1は台番号(1番台、2番台、…)などにより識別可能とされている。台端末装置1201は、遊技場内に配置された複数の遊技島に設けられ、複数のスロットマシン1から収集した各種データをホールコンピュータ1202などに伝送する中継端末装置となるものである。ホールコンピュータ1202は、遊技場内の所定箇所(例えば管理事務所等)に設けられて複数の台端末装置1201と通信可能に接続され、各々の台端末装置1201から外部出力された情報を収集することなどにより、各々のスロットマシン1における遊技に関連する各種情報を集中して管理する遊技情報管理装置となるものである。尚、ホールコンピュータ1202は、1台のコンピュータシステムにより遊技関連情報を集中管理するものであっても良いし、複数台のコンピュータシステムや記録装置(データベース等)により遊技関連情報を分散管理するものであっても良い。
尚、スロットマシン1の上方に設けられる呼出ランプも、スロットマシン1と一組に含められて構成される場合には、スロットマシン1から送信された固有情報を、この呼出ランプに対しても伝送されるようにしても良い。呼出ランプは、スロットマシン1などの遊技機における遊技情報(例えば遊技状態や特別役の当選回数等)を遊技者に対して表示する遊技情報表示装置となるものである。また、スロットマシン1に対応してカードユニットやメダル貸ユニットが設けられている場合には、スロットマシン1から送信された固有情報を、このカードユニットやメダル貸ユニットに対しても伝送されるようにしても良い。
また、台端末装置1201とホールコンピュータ1202との間には、台端末装置1201から外部出力された各種情報を中継してホールコンピュータ1202に伝送する中継コンピュータなどが設けられていても良い。ホールコンピュータ1202とは別に、各遊技場にて会員として登録された遊技者に関する会員情報を管理する会員管理コンピュータなどが設けられ、スロットマシン1から送信された固有情報などは、この会員管理コンピュータなどに対して伝送されるようにしても良い。スロットマシン1は、通信ケーブルやネットワーク通信機器(例えばリピータハブに代表されるリピータ、スイッチングハブに代表されるブリッジやルータ、あるいはゲートウェイ端末など)などを介して、台端末装置1201やホールコンピュータ1202に接続され、各機器にはネットワークアドレス(IPアドレス、MACアドレスなど)が付与されて、構内ネットワーク(LAN:Local Area Network)へのアクセスにより固有情報などを外部出力できるものである。また、カードユニットやメダル貸ユニットを通信ケーブルやネットワーク通信機器などを介して、ホールコンピュータ1202などに接続され、スロットマシン1から外部出力された固有情報などを、さらに外部出力できるようにしても良い。
スロットマシン1が設置される遊技場の外部において、例えば遊技場とは異なる管理機関などに、スロットマシン1から送信された固有情報などを受信可能な外部機器となる統括管理装置1204が設けられても良い。管理機関は、例えば各遊技場(遊技場A、遊技場B、…)を経営する事業体の管理事務所や、各遊技場に設置された遊技機が適正であることを管理するための第三者機関(事業協同組合、一般社団法人、公益社団法人、行政機関のいずれかなど)などが該当する。統括管理装置1204は、各遊技場に設置された遊技機おける稼働状況や売上などの経営情報を処理する機能を有していても良いし、各遊技場に設置された遊技機の規格適合性などに関する情報のみを処理して、経営情報を処理する機能がなくても良い。
スロットマシン1から送信された固有情報などは、ホールコンピュータ1202などにて一旦集約されてから、インターネットや専用回線などの広域ネットワーク(WAN:Wide Area Network)となる電気通信ネットワークを介して、管理機関に設置された統括管理装置1204へと伝送されたり、台端末装置1201や中継コンピュータのいずれかにてスロットマシン1から送信された固有情報が一旦集約されてから、統括管理装置1204へと伝送されたりすれば良い。
スロットマシン1から送信された固有情報などの送信先(出力対象)は、複数種類の情報出力条件のうち、いずれの情報出力条件が成立したかに応じて、異なるようにしても良い。具体的な一例として、設定変更時及び設定確認時には、ホールコンピュータ1202が送信先となり、エラー発生時には、呼出ランプ及びホールコンピュータの双方が送信先となるようにしても良い。また、ホールコンピュータ1202には、複数種類の情報出力条件のいずれが成立したかにかかわらず、スロットマシン1から外部出力された固有情報などが常に送信されるようにしても良い。
このように、スロットマシン1から外部出力される固有情報の送信先(出力対象)となる外部機器は、図56に示す各構成にかぎられず、任意に設定可能である。
次に、スロットマシン1から外部出力された固有情報などを用いた動作について説明する。図57は、スロットマシン1から送信された固有情報がホールコンピュータ1202へと伝送される場合を示す説明図である。図57(a)に示すように、スロットマシン1の内部にて遊技制御基板40から外部出力基板1000へと伝送された固有情報は、各種機器などを介して、あるいは他の機器を介することなく直接的に、ホールコンピュータ1202へと伝送される。ホールコンピュータ1202では、スロットマシン1から送信された固有情報について、その正当性を判定するための処理を実行する。
一例として、ホールコンピュータ1202では、スロットマシン1の設定変更時、設定確認時またはエラー発生時、ゲーム開始時、RT(2)への移行時、AT開始時、ART開始時に送信された固有情報を用いて、スロットマシン1における異常の有無を判断する。より具体的には、図57(b)に示すように、スロットマシン1が遊技場に設置された初日の設定変更時、すなわち最初に固有情報を送信した場合には、スロットマシン1から送信された固有情報を登録するための処理が実行される。このとき、ホールコンピュータ1202では、例えば台端末装置1201に接続されるスロットマシン1ごとに、各台の台番号などと対応付けて固有情報を登録するデータテーブルが作成され、所定の記憶装置に記憶する。データテーブルに登録された固有情報は、例えば所定の表示指示操作などに応じて、ホールコンピュータ1202が備える表示装置(ディスプレイ)などに表示され、遊技場の管理者などが確認できるようにしても良い。
こうしてホールコンピュータ1202にて各スロットマシン1に対応する固有情報が登録された後、例えば設定確認時や設定変更時、エラー発生時、ゲーム開始時、RT(2)への移行時、AT開始時、ART開始時にスロットマシン1から送信された固有情報をホールコンピュータ1202の側で取得する。そして、登録された固有情報(登録情報)と、取得した固有情報(取得情報)との比較結果に基づいて、一致を確認し、または、不一致を検出する。図70(b)に示すように、登録情報との一致が検出された場合には、異常なしと判断して、通常の管理処理などが実行される。その後、登録情報との不一致が検出されると、異常が発生したと判断して、警報を発生させる警報処理などが実行される。警報処理では、例えばホールコンピュータ1202が備える表示装置(ディスプレイ)に警報画面を表示させること、ホールコンピュータ1202が備えるスピーカやホールコンピュータ1202に接続されたスピーカから警報音を出力させること、ホールコンピュータ1202に接続された警報ランプを点灯させることなどのうち、一部または全部を含む警報動作を実行する制御が行われれば良い。
こうして設定変更時や設定確認時、エラー発生時、ゲーム開始時、RT(2)への移行時、AT開始時、ART開始時に異常が発生したと判断されることにより、メイン制御部41のチップを付け替えたり遊技制御基板40を交換したりすることなどによる不正行為が行われたと推定することができる。また、その時期が、前回固有情報が送信されてから今回固有情報が送信されるまでの期間であると推定できるので、不正行為が行われた時期を限定することができ、不正行為が防止される可能性を高められる。
尚、本実施例では、メイン制御部41から送信された固有情報もサブ制御部91から送信された固有情報も同一の固有情報であり、これらメイン制御部41からの固有情報とサブ制御部91からの固有情報とを区別せずに比較する構成であるが、メイン制御部41からの固有情報とサブ制御部91からの固有情報とを区別して管理し、各々を比較する構成としても良い。
このように本実施例では、ROM506のプログラム管理エリアに記憶されたメーカーコード、チップ個別ナンバーレジスタ573に記憶されたチップ個別ナンバー、及びROM506のユーザプログラムエリアに記憶された型式名コードからなる固有情報を、所定の送信契機にてホールコンピュータなどの外部機器に送信するようになっており、送信された外部機器側で固有情報の認証や照合を行うことが可能となり、遊技制御基板40やメイン制御部41のチップの交換などによる不正行為を迅速に発見することができ、このような不正行為を効果的に防止することができる。
尚、固有情報を構成するメーカーコード、チップ個別ナンバー、型式名コードなど複数の情報を、1つの出力ラインにて出力する構成であるが、これら固有情報を構成する各情報を別個の出力ラインにて出力する構成としても良い。
また、本実施例では、メイン制御部41が前面扉1bの開放及び閉塞、設定変更状態の開始及び終了、設定確認状態の開始及び終了、エラー状態の開始及び終了、ゲームの開始、RT(2)の開始及び終了を通知するセキュリティ信号のラインを用いて固有情報を外部機器に送信する構成であるが、図58に示すように、セキュリティ信号のラインとは別個に、固有情報を送信するための信号ラインを設け、メイン制御部41がこの信号ラインにて固有情報を送信するようにしても良く、このような構成とすることで、固有情報の送信にあたり、セキュリティ信号のラインを共用する他の通知の送信が遅れたり、送信そのものが行われなくなってしまうといった不具合を防止できる。
また、本実施例では、また、本実施例では、遊技制御基板40のメイン制御部41とサブ制御部91の双方から固有情報が外部機器に対して送信される構成であるが、メイン制御部41からのみ固有情報を送信する構成としても良く、このような構成とすることで、新たな部品を追加することなく固有情報を外部機器に対して送信することができる。
また、本実施例では、遊技制御基板40のメイン制御部41とサブ制御部91の双方から固有情報が外部機器に対して送信される構成であるが、図59に示すように、遊技制御基板40のメイン制御部41は、セキュリティ信号のラインを用いて固有情報を送信せず、コマンドとしてサブ制御部91に固有情報を送信し、サブ制御部91からのみ固有情報を送信する構成としても良く、このような構成とすることで、固有情報の送信にあたり、セキュリティ信号のラインを共用する他の通知の送信が遅れたり、送信そのものが行われなくなってしまうといった不具合を防止できるうえに、既存の外部出力基板1000の構成を変えることなく、固有情報をセキュリティ信号とは別に送信することが可能となる。
また、設定値の変更は、通常スロットマシンが設置されている遊技店の営業時間外に行われるのが一般的であるが、本実施例では、設定値の変更が可能な設定変更状態への移行時に固有情報を外部機器に対して送信するようになっており、固有情報の送信を受けた外部機器が固有情報から異常を検知した場合に、遊技者に迷惑をかけることなく直ちに遊技場の係員が制御基板を確認することが可能となる。
また、本実施例では、設定確認状態への移行時、すなわち設定値の変更と異なり、営業時間内であってもいつでも行うことが可能な設定値の確認を契機に、固有情報を外部機器に対して送信するようになっており、スロットマシン1が不自然な挙動を示した場合に、設定値の確認を行うことでいつでも固有情報を外部装置にて確認することが可能となる。
また、遊技制御基板40やメイン制御部41のチップなどが交換されると、正規のものではないため、何らかのエラーが生じやすくなるが、本実施例では、メイン制御部41がエラーを検知し、エラー状態に移行したときに固有情報を外部機器に対して送信するようになっており、外部機器側で遊技制御基板40やメイン制御部41のチップなどの交換が行われた可能性が高い状況において直ちに固有情報を確認することができる。
また、本実施例では、ゲーム開始毎に固有情報を外部機器に対して送信するようになっており、1ゲームに1回は必ず固有情報が外部機器に対して送信されることとなるので、固有情報の外部機器への送信を避けて遊技制御基板40やメイン制御部41のチップの交換などを行うことが困難となり、このような不正を効果的に防止できる。尚、本実施例では、ゲーム開始時に固有情報を送信しているが、ゲーム終了毎に固有情報を外部機器に対して送信する構成であっても同様の効果を得られる。
また、本実施例では、遊技者にとって有利なRT(2)への移行時やATの開始時、ARTの開始時に固有情報を外部機器に対して送信するようになっており、外部機器側で遊技者の有利度が高い状態へ移行した場合、すなわち遊技者の利益が大きく変動する事象を契機に固有情報を確認することができる。尚、本実施例では、RT(2)への移行時やATの開始時、ARTの開始時に固有情報を送信しているが、BBなどの遊技者にとって有利な遊技状態への移行時に固有情報を外部機器に対して送信する構成であっても同様の効果を得られる。
尚、本実施例では、設定変更状態への移行時、設定確認状態への移行時、エラー状態の開始時、ゲーム開始時、RT(2)への移行時、AT開始時、ART開始時に固有情報を外部機器に対して送信する構成であるが、その他の契機に固有情報を外部機器に対して送信する構成としても良い。
例えば、遊技制御基板40やメイン制御部41のチップを交換する場合、故障の原因にもなることから電源を一度落とす必要がある。このため、電源投入時やメイン制御部41の起動時に固有情報を外部機器に対して送信する構成としても良く、このような構成とすることで、メイン制御部41が起動したときに、必ず外部機器にて固有情報を確認することが可能となり、遊技制御基板40やメイン制御部41のチップの交換が行われた場合には、直ちに発見できるとともに、遊技を行う前に発見できるため、このような不正がなされたスロットマシン1で営業が行われてしまうことを防止できる。
また、遊技制御基板40やメイン制御部41のチップを交換する場合、筐体内部にアクセスする必要があり、前面扉1bを開放し、その後遊技を行うためには、電源投入し、再度前面扉1bを閉じる必要がある。このため、前面扉1bを閉じたことを契機に固有情報を送信する構成としても良く、このような構成とすることで、前面扉1bの閉鎖時に外部機器にて固有情報を確認することが可能となり、遊技制御基板40やメイン制御部41のチップの交換が行われた場合には、直ちに発見できるとともに、遊技を行う前に発見できるため、このような不正がなされたスロットマシン1で営業が行われてしまうことを防止できる。
上記では、固有情報の送信契機として、設定変更状態への移行時、設定確認状態への移行時、エラー状態への移行時、ゲーム開始時、ゲーム終了時、遊技者にとって有利なRT(2)やBBへの移行時、遊技者にとって有利なAT、ARTへの移行時、電源投入時、メイン制御部41の起動時、前面扉1bの閉鎖時を例示しているが、これらの契機の全ての契機で固有情報が送信される構成でも良いし、これらのうちの一部の契機で固有情報を送信する構成でも良い。
本実施例では、メイン制御部41においてもサブ制御部91においても固有情報の送信が完了する前にさらに固有情報の送信契機が発生した場合には、最初の契機に伴う固有情報の出力を継続し、その間に発生した契機に伴う通知や固有情報は送信されないようになっている。このため、外部機器側で、固有情報を正常に受信できないまま、出力状態が新たな出力状態に更新されてしまうことを防止できる。
尚、固有情報の送信が完了する前にさらに固有情報の送信契機が発生した場合に、送信中の固有情報の送信を中止し、新たな契機に伴う情報を送信するようにしても良く、特に、本実施例のように発生契機の通知と固有情報を同一ラインで送信する場合には、固有情報の送信が完了していない状態でも、新たな発生契機の通知を受信することができるうえに、その後に固有情報を受信することができる。
本実施例においてメイン制御部41は、前述したようにプログラム管理エリアに記憶される割込初期設定KIISの設定内容に従って割込要因に応じた割込を発生させる割込機能を有する。
詳しくは、割込要因の発生に伴う割込要求を受け付けることで割込要因に対応するアドレスをROM506に割り当てられた割込ベクタテーブルから取得し、取得したアドレスにジャンプすることで割込処理が行われるようになっている。
割込ベクタテーブルのアドレス(割込ベクタアドレス)は、割込み初期設定(KIIS)による設定値により自動的に設定されるようになっている。割込ベクタテーブルは、IR0〜8の割込要因に対してそれぞれ2バイトずつ格納領域が割り当てられたテーブルであり、本実施例では、図60(a)に示すように、IR0〜7の割込ベクタアドレスが、Iレジスタの値(固定値:06h)、割込初期設定KIISのビット番号[7−4]の値、から設定されるようになっている。IR0〜7の割込ベクタアドレスの下位15〜4ビットは共通であり、下位15〜8ビットには、Iレジスタの値(固定値:06h)が設定され、上位7〜4ビットには、割込み初期設定(KIIS)のビット番号[7−4]の値が設定され、上位3〜0ビットには、IR0〜7に対して、00h、02h、04h、06h、08h、0Ah、0Ch、0Ehが設定されることとなる。
また、IR0〜7は、その番号が0に近いほど、割込の優先順位、すなわち割込要因が同時に発生した場合の優先度が高く、割込初期設定(KIIS)のビット番号[3−0]の設定値を変更することにより、IR0〜7に割り当てられる割込要因の組み合わせ、すなわち割込要因の優先度の組み合わせが変更可能とされている。
本実施例では、割込要因としてPT0I、PT1I、PT2I、RXAI、TXAI、TXBI、RDGI、XINTの8種類を利用可能である。PT0Iは、タイマ回路(PTC)のチャネルPTC0のタイムアウトによる割込であり、PT1Iは、タイマ回路(PTC)のチャネルPTC1のタイムアウトによる割込であり、PT2Iは、タイマ回路(PTC)のチャネルPTC2のタイムアウトによる割込であり、RXAIは、シリアル通信回路(SCU)のchAデータ受信による割込であり、TXAIは、シリアル通信回路(SCU)のchAデータ送信による割込であり、TXBIは、シリアル通信回路(SCU)のchBデータ送信による割込であり、RDGIは、乱数回路(RDG)の乱数取り込みによる割込であり、XINTは、P3/XINT端子入力による割込である。
図60(b)に示すように、割込初期設定(KIIS)のビット番号[3−0]の設定値として00hが設定された場合には、IR0〜7に対して、PT0I、PT1I、PT2I、RDGI、RXAI、TXAI、TXBI、XINTの順番で割込要因が割り当てられる。割込初期設定(KIIS)のビット番号[3−0]の設定値として01hが設定された場合には、IR0〜7に対して、RDGI、PT0I、PT1I、PT2I、RXAI、TXAI、TXBI、XINTの順番で割込要因が割り当てられる。割込初期設定(KIIS)のビット番号[3−0]の設定値として02hが設定された場合には、IR0〜7に対して、PT0I、PT1I、PT2I、RXAI、RDGI、TXAI、TXBI、XINTの順番で割込要因が割り当てられる。割込初期設定(KIIS)のビット番号[3−0]の設定値として03hが設定された場合には、IR0〜7に対して、RDGI、RXAI、TXAI、TXBI、PT0I、PT1I、PT2I、XINTの順番で割込要因が割り当てられる。割込初期設定(KIIS)のビット番号[3−0]の設定値として04hが設定された場合には、IR0〜7に対して、RXAI、TXAI、TXBI、RDGI、PT0I、PT1I、PT2I、XINTの順番で割込要因が割り当てられる。割込初期設定(KIIS)のビット番号[3−0]の設定値として05hが設定された場合には、IR0〜7に対して、RXAI、RDGI、TXAI、TXBI、PT0I、PT1I、PT2I、XINTの順番で割込要因が割り当てられる。割込初期設定(KIIS)のビット番号[3−0]の設定値として06hが設定された場合には、IR0〜7に対して、PT0I、PT1I、PT2I、XINT、RDGI、RXAI、TXAI、TXBIの順番で割込要因が割り当てられる。割込初期設定(KIIS)のビット番号[3−0]の設定値として07hが設定された場合には、IR0〜7に対して、RDGI、XINT、PT0I、PT1I、PT2I、RXAI、TXAI、TXBIの順番で割込要因が割り当てられる。
また、前述のように割込マスクレジスタIMRの設定により、互いに異なる複数の割込要因による割込のうち使用するものと使用しないものとを設定することができるようになっている。割込マスクレジスタIMRには、上記したIR0〜7のうち0を設定した割込については使用するものと設定され、1を設定した割込については使用しないものと設定される。
本実施例では、割込初期設定(KIIS)のビット番号[7−4]の設定値として00hが設定され、割込初期設定(KIIS)のビット番号[3−0]の設定値として00hが設定されている。このため、本実施例では、図61に示すように、割込ベクタテーブルとして、ROM506の6000h〜600Fhまでの16バイトの領域が割り当てられ、IR0〜7の割込ベクタアドレスとして、それぞれ、6000h、6002h、6004h、6006h、6008h、600Ah、600Ch、600Ehが割り当てられることとなる。
さらに本実施例では、割込初期設定(KIIS)のビット番号[3−0]の設定値として00hが設定されており、IR0〜7に対してそれぞれ、PT0I、PT1I、PT2I、RDGI、RXAI、TXAI、TXBI、XINTが割り当てられるとともに、そのうち、IR0のみ割込マスクレジスタIMRにて使用するものと設定され、IR2〜7については、割込マスクレジスタIMRにて使用しないものとして設定されている。
そして、割込ベクタテーブルのうちPT0Iが割り当てられたIR0に対応する割込ベクタアドレスとしてタイマ割込処理(メイン)の先頭アドレスが格納されており、PT0Iに対応する割込要因の発生によりタイマ割込処理(メイン)の先頭アドレスにジャンプしてタイマ割込処理(メイン)が実行されるようになっている。また、IR0以外は、前述のように使用しないものとして設定されており、本来であれば、割込ベクタテーブルのうちIR1〜7に対応する領域は、読み込まれることはないが、本実施例では、図61に示すように、割込ベクタテーブルのうちIR1〜7に対応する領域、すなわち使用が予定されていない割込要因に対応する割込ベクタテーブル上の領域に、起動処理(メイン)におけるユーザモード(Sa2のステップ)の開始アドレス、すなわちゲーム制御用のユーザプログラムの先頭アドレスが設定されている。
このため、ノイズなどの影響により使用が予定されていない割込要因が発生した場合に、起動処理(メイン)におけるユーザモードの先頭からプログラムが実行されることとなる。使用が予定されていない割込要因が発生した場合には、電断処理(メイン)が実行されず、破壊診断用データの設定やRAMパリティ調整用データの設定が行われていないため、このような場合、RAM507のデータが正常ではないと判定され、RAM異常エラーが発生し、その旨が報知されることとなる。
このように、本実施例では、使用が予定されていない割込要因に対応する割込ベクタテーブル上の領域に、起動処理(メイン)におけるユーザモード(Sa2のステップ)の開始アドレス、すなわちゲーム制御用のユーザプログラムの先頭アドレスを設定することで、使用が予定されていない割込要因が発生した場合に、電断処理を経ずにユーザモードの先頭にジャンプさせ、その後の起動処理(メイン)において、RAM異常と判定させて、RAM異常エラーに制御されるようになっている。このため、使用が予定されていない割込要因が発生した場合にのみ実行される専用の割込プログラムを用いることなく、使用が予定されていない割込要因が発生した場合に、エラー状態に制御できるため、使用が予定されていない割込要因が発生した場合にのみ実行される専用の割込プログラムにより無駄にプログラムの格納容量が圧迫されてしまうことを防止できる。
また、本実施例では、起動処理(メイン)においてRAM異常と判定された場合、すなわち電断前のデータが破損している場合や、ノイズなどにより使用予定のない割込要因が発生した場合には、RAM507が初期化されるようになっており、データに異常が生じている可能性が高いままで遊技が続行されてしまうことを防止できる。
また、RAM異常と判定された場合には、RAM507が初期化されるだけでなく、設定変更モードに移行し、新たに設定値が選択され、設定されたことを条件に、遊技が可能な状態に移行するようになっており、電断前のデータが破損している場合や、ノイズなどにより使用予定のない割込要因が発生した場合には、設定値、すなわち遊技者の有利度を左右する値も破損している可能性があり、そのような状態で遊技が続行されてしまうことを防止できる。
また、本実施例では、複数の割込要因のうち使用が予定されている割込、すなわちPT0Iの優先度が最も高くなるように割込要因の優先度を設定しており、使用予定のない割込要因のいずれかとPT0Iの割込要因が同時に発生した場合には、使用が予定されている割込であるPT0Iが優先して実行されるので、ノイズなどによる使用予定のない割込要因の発生により、本来の割込要因による割込が妨げられてしまうことを防止できる。
尚、本実施例では、複数の割込要因のうち使用が予定されている割込、すなわちPT0Iの優先度が最も高くなるように割込要因の優先度が設定されているが、例えば、図62に示すように、複数の割込要因のうち使用が予定されている割込を使用予定のない割込よりも優先度が低くなるように割込要因の優先度を設定する構成としても良く、このような構成とすることで、生じるはずのない割込要因が発生した場合には、使用予定のある割込要因が発生しても異常がエラー状態となるため、異常の検知が遅れてしまうことを防止できる。
また、本実施例では、割込ベクタテーブルのうち使用予定のない割込要因に対応する割込ベクタアドレスとして全てに起動処理(メイン)におけるユーザモードの先頭アドレスを設定しているが、図62に示すように、一部をプログラムエリアとして使用するようにしても良く、このような構成とすることで、ROM506におけるプログラムエリアを拡張することが可能となる。このような構成を採る場合には、使用予定のない割込要因のうち使用する割込要因よりも優先度の低い割込要因に対応する領域をプログラムエリアとして使用することが好ましく、このような構成とすることで、ノイズが発生した場合でも、本来使用が予定されている割込要因による処理を優先させることができる。
本実施例のスロットマシン1における役としては、図63に示すように、特別役としてビッグボーナス(1)〜(3)(以下ではビッグボーナス(1)をBB(1)、ビッグボーナス(2)をBB(2)、ビッグボーナス(3)をBB(3)とする)が、再遊技役としてリプレイ(1)〜(10)が、小役としてスイカ、チェリー、ベル、小役(1)〜(10)が定められている。
スイカは、RT(0)〜(3)において入賞ラインのいずれかに「スイカ−スイカ−スイカ」の組み合わせが揃ったときに入賞となり、1枚のメダルが払い出される。
チェリーは、RT(0)〜(3)において中リールについて入賞ラインのいずれかに「チェリー」の図柄が導出されたときに入賞となり、4枚のメダルが払い出される。尚、「チェリー」の図柄が中リールの中段に停止した場合には、入賞ラインL1〜L4の4本の入賞ラインにチェリー組み合わせが揃うこととなり、4本の入賞ライン上でチェリーに入賞したこととなるが合計枚数が上限である15枚を超えるため、15枚のメダルが払い出されることとなる。
ベルは、RT(0)〜(3)において入賞ラインのいずれかに「ベル−ベル−ベル」の組み合わせが揃ったときに入賞となり、小役(1)は、RT(0)〜(3)において入賞ラインのいずれかに「黒7−リプレイ−ブドウ」の組み合わせが揃ったときに入賞となり、小役(2)は、RT(0)〜(3)において入賞ラインのいずれかに「白7−リプレイ−ブドウ」の組み合わせが揃ったときに入賞となり、小役(3)は、RT(0)〜(3)において入賞ラインのいずれかに「BAR−リプレイ−ブドウ」の組み合わせが揃ったときに入賞となり、小役(4)は、RT(0)〜(3)において入賞ラインのいずれかに「ブドウ−黒7−ブドウ」の組み合わせが揃ったときに入賞となり、小役(5)は、RT(0)〜(3)において入賞ラインのいずれかに「ブドウ−白7−ブドウ」の組み合わせが揃ったときに入賞となり、小役(6)は、RT(0)〜(3)において入賞ラインのいずれかに「ブドウ−BAR−ブドウ」の組み合わせが揃ったときに入賞となり、小役(7)は、RT(0)〜(3)において入賞ラインのいずれかに「ブドウ−リプレイ−黒7」の組み合わせが揃ったときに入賞となり、小役(8)は、RT(0)〜(3)において入賞ラインのいずれかに「ブドウ−リプレイ−白7」の組み合わせが揃ったときに入賞となり、小役(9)は、RT(0)〜(3)において入賞ラインのいずれかに「ブドウ−リプレイ−BAR」の組み合わせが揃ったときに入賞となる。ベル、小役(1)〜(9)のいずれかが入賞すると、9枚のメダルが払い出される。
小役(10)は、RBにおいて入賞ラインのいずれかに「プラム−ベル−ベル」の組み合わせが揃ったときに入賞となり、小役(10)が入賞すると、12枚のメダルが払い出される。
リプレイ(1)は、いずれの遊技状態においても入賞ラインのいずれかに「リプレイ−リプレイ−リプレイ」の組み合わせが揃ったときに入賞となり、リプレイ(2)は、いずれの遊技状態においても入賞ラインのいずれかに「オレンジ−オレンジ−オレンジ」の組み合わせが揃ったときに入賞となり、リプレイ(3)は、いずれの遊技状態においても入賞ラインのいずれかに「リプレイ−オレンジ−オレンジ」の組み合わせが揃ったときに入賞となり、リプレイ(4)は、いずれの遊技状態においても入賞ラインのいずれかに「オレンジ−リプレイ−オレンジ」の組み合わせが揃ったときに入賞となり、リプレイ(5)は、いずれの遊技状態においても入賞ラインのいずれかに「オレンジ−オレンジ−リプレイ」の組み合わせが揃ったときに入賞となり、リプレイ(6)は、いずれの遊技状態においても入賞ラインのいずれかに「リプレイ−オレンジ−ブドウ」の組み合わせが揃ったときに入賞となり、リプレイ(7)は、いずれの遊技状態においても入賞ラインのいずれかに「プラム−リプレイ−オレンジ」の組み合わせが揃ったときに入賞となり、リプレイ(8)は、いずれの遊技状態においても入賞ラインのいずれかに「プラム−オレンジ−リプレイ」の組み合わせが揃ったときに入賞となる。リプレイ(1)〜(8)のいずれかが入賞したときには、メダルの払い出しはないが次のゲームを改めて賭数を設定することなく開始できるので、次のゲームで設定不要となった賭数に対応した3枚のメダルが払い出されるのと実質的には同じこととなる。
尚、本実施例では、後述のようにリプレイ(1)がRBにおいて抽選対象外となるため、RBにおいてリプレイ(1)の組み合わせが入賞ラインに揃うことはない。また、後述のようにリプレイ(3)〜(8)の入賞が許容されるリプレイGR(1)〜(6)がRT(0)(2)、RBのみ抽選対象となるため、RT(1)(3)においてリプレイ(3)〜(8)の組み合わせが入賞ラインに揃うことはない。また、RT(2)においてリプレイ(1)は、必ずBB(1)〜(3)のいずれかと当選するため、BB(1)〜(3)の当選時に当該ゲームの終了を待つことなくRT(3)へ移行する構成を採用した場合には、RT(1)においてリプレイ(1)の組み合わせが入賞ラインに揃うことはない。
BB(1)は、RT(0)〜(3)において入賞ラインのいずれかに「黒7−黒7−黒7」の組み合わせが揃ったときに入賞となり、BB(2)は、RT(0)〜(3)において入賞ラインのいずれかに「BAR−BAR−BAR」の組み合わせが揃ったときに入賞となり、BB(3)は、RT(0)〜(3)において入賞ラインのいずれかに「BAR−BAR−黒7」の組み合わせが揃ったときに入賞となる。尚、BB(1)〜(3)の当選時に当該ゲームの終了を待つことなくRT(3)へ移行する構成を採用した場合には、BB(1)〜(3)は、RT(3)においてのみ入賞可能となる。
BB(1)〜(3)のいずれかが入賞すると、遊技状態がBBに移行するとともに同時にRBに移行する。RBは、小役、特に小役(10)の当選確率が高まることによって他の遊技状態よりも遊技者にとって有利となる遊技状態であり、RBが開始した後、12ゲームを消化したとき、または8ゲーム入賞(役の種類は、いずれでも可)したとき、のいずれか早いほうで終了する。RBが終了した際に、BBが終了していなければ、再度RBに移行し、BBが終了するまで繰り返しRBに制御される。すなわちBB中は、常にRBに制御されることとなる。そして、BB(1)の入賞を契機とするBBは、当該BB中において遊技者に払い出したメダルの総数が349枚を超えたときに終了し、BB(2)(3)の入賞を契機とするBBは、当該BB中において遊技者に払い出したメダルの総数が146枚を超えたときに終了する。BBの終了時には、RBの終了条件が成立しているか否かに関わらずRBも終了する。
本実施例では、図64に示すように、遊技状態が、RT(0)であるか、RT(1)であるか、RT(2)であるか、RT(3)であるか、RBであるか、によって内部抽選の対象となる役が異なる。
遊技状態がRT(0)であれば、BB(1)、BB(1)+リプレイ(1)、BB(1)+リプレイ(2)、BB(1)+スイカ、BB(1)+チェリー、BB(2)、BB(2)+リプレイ(1)、BB(2)+リプレイ(2)、BB(2)+スイカ、BB(2)+チェリー、BB(3)、BB(3)+リプレイ(1)、BB(3)+リプレイ(2)、BB(3)+スイカ、BB(3)+チェリー、リプレイ(1)、リプレイ(2)、リプレイGR(1)(リプレイ(2)+リプレイ(3)+リプレイ(4)+リプレイ(7))、リプレイGR(2)(リプレイ(2)+リプレイ(3)+リプレイ(5)+リプレイ(8))、リプレイGR(3)(リプレイ(2)+リプレイ(3)+リプレイ(4)+リプレイ(6))、リプレイGR(4)(リプレイ(2)+リプレイ(4)+リプレイ(5)+リプレイ(8))、リプレイGR(5)(リプレイ(2)+リプレイ(3)+リプレイ(5)+リプレイ(6))、リプレイGR(6)(リプレイ(2)+リプレイ(4)+リプレイ(5)+リプレイ(7))、スイカ、チェリー、ベル、小役GR(1)(ベル+小役(1))、小役GR(2)(ベル+小役(2))、小役GR(3)(ベル+小役(3))、小役GR(4)(ベル+小役(4))、小役GR(5)(ベル+小役(5))、小役GR(6)(ベル+小役(6))、小役GR(7)(ベル+小役(7))、小役GR(8)(ベル+小役(8))、小役GR(9)(ベル+小役(9))が内部抽選の対象となる。
遊技状態がRT(1)であれば、BB(1)、BB(1)+リプレイ(1)、BB(1)+リプレイ(2)、BB(1)+スイカ、BB(1)+チェリー、BB(2)、BB(2)+リプレイ(1)、BB(2)+リプレイ(2)、BB(2)+スイカ、BB(2)+チェリー、BB(3)、BB(3)+リプレイ(1)、BB(3)+リプレイ(2)、BB(3)+スイカ、BB(3)+チェリー、リプレイ(1)、スイカ、チェリー、ベル、小役GR(1)、小役GR(2)、小役GR(3)、小役GR(4)、小役GR(5)、小役GR(6)、小役GR(7)、小役GR(8)、小役GR(9)が内部抽選の対象となる。
遊技状態がRT(2)であれば、BB(1)、BB(1)+リプレイ(1)、BB(1)+リプレイ(2)、BB(1)+スイカ、BB(1)+チェリー、BB(2)、BB(2)+リプレイ(1)、BB(2)+リプレイ(2)、BB(2)+スイカ、BB(2)+チェリー、BB(3)、BB(3)+リプレイ(1)、BB(3)+リプレイ(2)、BB(3)+スイカ、BB(3)+チェリー、リプレイGR(1)、リプレイGR(2)、リプレイGR(3)、リプレイGR(4)、リプレイGR(5)、リプレイGR(6)、スイカ、チェリー、ベル、小役GR(1)、小役GR(2)、小役GR(3)、小役GR(4)、小役GR(5)、小役GR(6)、小役GR(7)、小役GR(8)、小役GR(9)が内部抽選の対象となる。
遊技状態がRBであれば、リプレイ(2)、リプレイGR(1)、リプレイGR(2)、リプレイGR(3)、リプレイGR(4)、リプレイGR(5)、リプレイGR(6)、小役(10)が内部抽選の対象となる。
遊技状態がRT(3)であれば、リプレイ(1)、リプレイ(2)、スイカ、チェリー、ベル、小役GR(1)、小役GR(2)、小役GR(3)、小役GR(4)、小役GR(5)、小役GR(6)、小役GR(7)、小役GR(8)、小役GR(9)が内部抽選の対象となる。
本実施例では、複数種類の再遊技役が同時に当選している場合(リプレイGR(1)〜(7))には、図65に示すように、リールの停止順や停止操作のタイミングに応じて当選している再遊技役のいずれかを入賞ライン上に停止させる制御を行う。
リプレイGR(1)(リプレイ(2)+リプレイ(3)+リプレイ(4)+リプレイ(7))が当選している場合には、左−中−右の順番で停止操作を行った場合に、リプレイ(2)を入賞ライン上に停止させる制御が行われ、左−中−右以外の順番で停止操作を行った場合に、リプレイ(3)、リプレイ(4)、リプレイ(7)のいずれかを入賞ライン上に停止させる制御が行われる。
リプレイGR(2)(リプレイ(2)+リプレイ(3)+リプレイ(5)+リプレイ(8))が当選している場合には、左−右−中の順番で停止操作を行った場合に、リプレイ(2)を入賞ライン上に停止させる制御が行われ、左−右−中以外の順番で停止操作を行った場合に、リプレイ(3)、リプレイ(5)、リプレイ(8)のいずれかを入賞ライン上に停止させる制御が行われる。
リプレイGR(3)(リプレイ(2)+リプレイ(3)+リプレイ(4)+リプレイ(6))が当選している場合には、中−左−右の順番で停止操作を行った場合に、リプレイ(2)を入賞ライン上に停止させる制御が行われ、中−左−右以外の順番で停止操作を行った場合に、リプレイ(3)、リプレイ(4)、リプレイ(6)のいずれかを入賞ライン上に停止させる制御が行われる。
リプレイGR(4)(リプレイ(2)+リプレイ(4)+リプレイ(5)+リプレイ(8))が当選している場合には、中−右−左の順番で停止操作を行った場合に、リプレイ(2)を入賞ライン上に停止させる制御が行われ、中−右−左以外の順番で停止操作を行った場合に、リプレイ(4)、リプレイ(5)、リプレイ(8)のいずれかを入賞ライン上に停止させる制御が行われる。
リプレイGR(5)(リプレイ(2)+リプレイ(3)+リプレイ(5)+リプレイ(6))が当選している場合には、右−左−中の順番で停止操作を行った場合に、リプレイ(2)を入賞ライン上に停止させる制御が行われ、右−左−中以外の順番で停止操作を行った場合に、リプレイ(3)、リプレイ(5)、リプレイ(6)のいずれかを入賞ライン上に停止させる制御が行われる。
リプレイGR(6)(リプレイ(2)+リプレイ(4)+リプレイ(5)+リプレイ(7))が当選している場合には、右−中−左の順番で停止操作を行った場合に、リプレイ(2)を入賞ライン上に停止させる制御が行われ、右−中−左以外の順番で停止操作を行った場合に、リプレイ(4)、リプレイ(5)、リプレイ(7)のいずれかを入賞ライン上に停止させる制御が行われる。
このように本実施例では、リプレイGR(1)が当選した場合と、リプレイGR(2)が当選した場合と、リプレイGR(3)が当選した場合と、リプレイGR(4)が当選した場合と、リプレイGR(5)が当選した場合と、リプレイGR(6)が当選した場合と、でリプレイ(2)が入賞ラインに停止することとなる停止順及びリプレイ(3)〜(8)のいずれかが停止する停止順が異なる。このため、リプレイGR(1)〜(6)が当選している場合において、どれが当選しているかが分からなければ、1/6の割合でリプレイ(2)が入賞し、5/6の割合でリプレイ(3)〜(8)のいずれかが入賞することとなる。
また、本実施例では、複数種類の小役が同時に当選している場合(小役GR(1)〜(9))には、図65に示すように、第1停止リールに応じて異なる図柄の組み合わせを入賞ラインに停止させる制御を行う。
小役GR(1)(ベル+小役(1))が当選している場合には、左リールを第1停止とした場合に、ベルを入賞ライン上に停止させる制御が行われ、中リールまたは右リールを第1停止とした場合に、その後、左リールの停止操作が「黒7」の引込範囲(11〜17番のタイミング)内で行われた場合には、小役(1)を入賞ライン上に停止させる制御が行われ、左リールの停止操作が「黒7」の引込範囲外で行われた場合には、第1停止リールが中リールであれば、移行出目(1)(「ブドウ−リプレイ−チェリー」の組み合わせ)または移行出目(2)(「ブドウ−オレンジ−ブドウ」の組み合わせ)を入賞ライン上に停止させず、かついずれの役も入賞ラインに停止させない制御が行われ、第1停止リールが右リールであれば、移行出目(1)または移行出目(2)を入賞ライン上に停止させる制御が行われる。
小役GR(2)(ベル+小役(2))が当選している場合には、左リールを第1停止とした場合に、ベルを入賞ライン上に停止させる制御が行われ、中リールまたは右リールを第1停止とした場合に、その後、左リールの停止操作が「白7」の引込範囲(18〜20、0〜3番のタイミング)内で行われた場合には、小役(2)を入賞ライン上に停止させる制御が行われ、左リールの停止操作が「白7」の引込範囲外で行われた場合には、第1停止リールが中リールであれば、移行出目(1)または移行出目(2)を入賞ライン上に停止させず、かついずれの役も入賞ラインに停止させない制御が行われ、第1停止リールが右リールであれば、移行出目(1)または移行出目(2)を入賞ライン上に停止させる制御が行われる。
小役GR(3)(ベル+小役(3))が当選している場合には、左リールを第1停止とした場合に、ベルを入賞ライン上に停止させる制御が行われ、中リールまたは右リールを第1停止とした場合に、その後、左リールの停止操作が「BAR」の引込範囲(4〜10番のタイミング)内で行われた場合には、小役(3)を入賞ライン上に停止させる制御が行われ、左リールの停止操作が「BAR」の引込範囲外で行われた場合には、第1停止リールが中リールであれば、移行出目(1)または移行出目(2)を入賞ライン上に停止させず、かついずれの役も入賞ラインに停止させない制御が行われ、第1停止リールが右リールであれば、移行出目(1)または移行出目(2)を入賞ライン上に停止させる制御が行われる。
小役GR(4)(ベル+小役(4))が当選している場合には、中リールを第1停止とした場合に、ベルを入賞ライン上に停止させる制御が行われ、左リールまたは右リールを第1停止とした場合に、その後、中リールの停止操作が「黒7」の引込範囲(13〜17番のタイミング)内で行われた場合には、小役(4)を入賞ライン上に停止させる制御が行われ、中リールの停止操作が「黒7」の引込範囲外で行われた場合には、移行出目(1)または移行出目(2)を入賞ライン上に停止させる制御が行われる。
小役GR(5)(ベル+小役(5))が当選している場合には、中リールを第1停止とした場合に、ベルを入賞ライン上に停止させる制御が行われ、左リールまたは右リールを第1停止とした場合に、その後、中リールの停止操作が「白7」の引込範囲(0〜4番のタイミング)内で行われた場合には、小役(5)を入賞ライン上に停止させる制御が行われ、中リールの停止操作が「白7」の引込範囲外で行われた場合には、移行出目(1)または移行出目(2)を入賞ライン上に停止させる制御が行われる。
小役GR(6)(ベル+小役(6))が当選している場合には、中リールを第1停止とした場合に、ベルを入賞ライン上に停止させる制御が行われ、左リールまたは右リールを第1停止とした場合に、その後、中リールの停止操作が「BAR」の引込範囲(7〜11番のタイミング)内で行われた場合には、小役(6)を入賞ライン上に停止させる制御が行われ、中リールの停止操作が「BAR」の引込範囲外で行われた場合には、移行出目(1)または移行出目(2)を入賞ライン上に停止させる制御が行われる。
小役GR(7)(ベル+小役(7))が当選している場合には、右リールを第1停止とした場合に、ベルを入賞ライン上に停止させる制御が行われ、左リールまたは中リールを第1停止とした場合に、その後、右リールの停止操作が「黒7」の引込範囲(13〜19番のタイミング)内で行われた場合には、小役(7)を入賞ライン上に停止させる制御が行われ、右リールの停止操作が「黒7」の引込範囲外で行われた場合には、第1停止リールが右リールであれば、移行出目(1)または移行出目(2)を入賞ライン上に停止させる制御が行われ、第1停止リールが中リールであれば、移行出目(1)または移行出目(2)を入賞ライン上に停止させず、かついずれの役も入賞ラインに停止させない制御が行われる。
小役GR(8)(ベル+小役(8))が当選している場合には、右リールを第1停止とした場合に、ベルを入賞ライン上に停止させる制御が行われ、左リールまたは中リールを第1停止とした場合に、その後、右リールの停止操作が「白7」の引込範囲(20、0〜5番のタイミング)内で行われた場合には、小役(8)を入賞ライン上に停止させる制御が行われ、右リールの停止操作が「白7」の引込範囲外で行われた場合には、第1停止リールが右リールであれば、移行出目(1)または移行出目(2)を入賞ライン上に停止させる制御が行われ、第1停止リールが中リールであれば、移行出目(1)または移行出目(2)を入賞ライン上に停止させず、かついずれの役も入賞ラインに停止させない制御が行われる。
小役GR(9)(ベル+小役(9))が当選している場合には、右リールを第1停止とした場合に、ベルを入賞ライン上に停止させる制御が行われ、左リールまたは中リールを第1停止とした場合に、その後、右リールの停止操作が「BAR」の引込範囲(6〜12番のタイミング)内で行われた場合には、小役(9)を入賞ライン上に停止させる制御が行われ、右リールの停止操作が「BAR」の引込範囲外で行われた場合には、第1停止リールが右リールであれば、移行出目(1)または移行出目(2)を入賞ライン上に停止させる制御が行われ、第1停止リールが中リールであれば、移行出目(1)または移行出目(2)を入賞ライン上に停止させず、かついずれの役も入賞ラインに停止させない制御が行われる。
このように本実施例では、小役GR(1)〜(3)が当選した場合には、左リールを第1停止とすることで、ベルを必ず入賞させることが可能であり、左リール以外のリールを第1停止とした場合には、小役GR(1)の当選時には「黒7」、小役GR(2)の当選時には「白7」、小役GR(3)の当選時には「BAR」の引込範囲となるタイミングでそれぞれ左リールの停止操作を行うことで当選している小役(1)〜(3)を入賞させることはできるが、それ以外のタイミングで左リールの停止操作を行うといずれの小役も入賞することがない。
また、小役GR(4)〜(6)が当選した場合には、中リールを第1停止とすることで、ベルを必ず入賞させることが可能であり、中リール以外のリールを第1停止とした場合には、小役GR(4)の当選時には「黒7」、小役GR(5)の当選時には「白7」、小役GR(6)の当選時には「BAR」の引込範囲となるタイミングでそれぞれ中リールの停止操作を行うことで当選している小役(4)〜(6)を入賞させることはできるが、それ以外のタイミングで中リールの停止操作を行うといずれの小役も入賞することがない。
また、小役GR(7)〜(9)が当選した場合には、右リールを第1停止とすることで、ベルを必ず入賞させることが可能であり、右リール以外のリールを第1停止とした場合には、小役GR(7)の当選時には「黒7」、小役GR(8)の当選時には「白7」、小役GR(9)の当選時には「BAR」の引込範囲となるタイミングでそれぞれ右リールの停止操作を行うことで当選している小役(7)〜(9)を入賞させることはできるが、それ以外のタイミングで右リールの停止操作を行うといずれの小役も入賞することがない。
図3に示すように「ベル」は、左、右リールにおいて6コマ以内の間隔で配置され、中リールにおいて4コマ以内の間隔で配置されており、停止操作のタイミングに関わらず必ず入賞ラインに停止させることが可能であり、小役GR(1)〜(3)が当選し、左リールを第1停止とした場合、小役GR(4)〜(6)が当選し、中リールを第1停止とした場合、小役GR(7)〜(9)が当選し、右リールを第1停止とした場合には、それぞれ、21/21(「ベル」の引込可能な停止操作位置/停止操作位置の総数)の割合でベルが入賞するため、この場合の払出期待値(9×21/21)は、9枚となる。一方、図3に示すように「黒7」「白7」「BAR」は、左、右リールにおいて6コマを超える間隔で配置され、中リールにおいて4コマを超える間隔で配置されており、意図的に入賞ラインに停止させることはできないので、小役GR(1)〜(3)が当選し、左リール以外のリールを第1停止とした場合、小役GR(7)〜(9)が当選し、右リール以外のリールを第1停止とした場合には、7/21の割合で小役(1)〜(3)(7)〜(9)を入賞させることができるが、14/21の割合でいずれの小役も入賞させることができないため、この場合の払出期待値(9×7/21)は、3枚となり、小役GR(4)〜(6)が当選し、中リール以外のリールを第1停止とした場合には、5/21の割合で小役(4)〜(6)を入賞させることができるが、16/21の割合でいずれの小役も入賞させることができないため、この場合の払出期待値(9×5/21)は、約2.14枚となる。
このため、小役GR(1)〜(3)が当選した場合には、左リールを第1停止とした場合に、小役GR(4)〜(6)が当選した場合には、中リールを第1停止とした場合に、小役GR(7)〜(9)が当選した場合には、右リールを第1停止とした場合に、それぞれ他のリールを第1停止とした場合よりも払出期待値が高く、より多くのメダルを獲得することが可能となる。すなわち小役GR(1)〜(3)が当選したか、小役GR(4)〜(6)が当選したか、小役GR(7)〜(9)が当選したか、に応じて払出期待値の高い第1停止リールが異なる。
また、小役GR(1)〜(9)のいずれかが当選した場合でも、その種類が分からなければ意図的に払出期待値の高い第1停止リールを選択することはできず、1/3の割合で払出期待値の高い第1停止リールが選択され、2/3の割合で払出期待値の低い第1停止リールが選択されるので、小役(1)〜(3)(7)〜(9)のいずれかが当選した場合の払出期待値((9×21/21)×1/3+(9×7/21)×2/3)は、5枚となり、小役(4)〜(6)のいずれかが当選した場合の払出期待値((9×21/21)×1/3+(9×5/21)×2/3)は、約4.43枚となる。
また、小役GR(1)〜(9)のいずれかが当選した場合に、その種類が分からなければ意図的にベルが入賞する第1停止リールを選択することも、ベルが入賞しない第1停止リールを選択し、かつ小役(1)〜(9)が入賞するタイミングまたは移行出目(1)(2)が停止するタイミングを選択することもできず、1/3の割合でベルが入賞する第1停止リールが選択され、2/3の割合でベルが入賞しない第1停止リールが選択され、そのうち約1/3の割合で小役(1)〜(9)のいずれかが入賞するタイミングが選択され、約2/3の割合で移行出目(1)(2)が停止するタイミングが選択されるので、約2/9の割合で小役(1)〜(9)のいずれかが入賞し、約4/9の割合で移行出目(1)(2)が停止することとなる。
ただし、本実施例では、小役GR(1)〜(3)のいずれかが当選して右リールを第1停止とした場合には、その後、左リールにおいて小役(1)〜(3)のいずれかが入賞するタイミングが選択されない場合に、移行出目(1)(2)が停止することとなるが、中リールを第1停止とした場合には、その後、左リールにおいて小役(1)〜(3)のいずれかが入賞するタイミングが選択されない場合に、移行出目(1)(2)が停止することなく、移行出目以外のハズレ目が停止することとなる。小役GR(7)〜(9)のいずれかが当選した場合も同様で、左リールを第1停止とした場合には、その後、右リールにおいて小役(7)〜(9)のいずれかが入賞するタイミングが選択されない場合に、移行出目(1)(2)が停止することとなるが、中リールを第1停止とした場合には、その後、右リールにおいて小役(7)〜(9)のいずれかが入賞するタイミングが選択されない場合に、移行出目(1)(2)が停止することなく、移行出目以外のハズレ目が停止することとなる。
すなわち本実施例では、小役GR(1)〜(9)のいずれかが当選した場合に、左リールまたは右リールを第1停止とした場合のみ移行出目(1)(2)が停止し得る構成であり、中リールを第1停止とした場合には、移行出目(1)(2)が停止しないようになっている。
本実施例では、図66及び図67に示すように、再遊技役の当選確率の異なるRT(0)〜(3)、BBのいずれかに制御される。
RT(0)は、RT(1)またはRT(2)において移行出目(1)(小役GR(1)〜(9)のいずれかが当選し、かつ当選した小役を入賞ライン上に停止させることができない場合に入賞ライン上に停止し得る図柄の組み合わせであり、本実施例では「ブドウ−リプレイ−チェリー」が相当する)または移行出目(2)(小役GR(1)〜(9)のいずれかが当選し、かつ当選した小役を入賞ライン上に停止させることができない場合に入賞ライン上に停止し得る図柄の組み合わせであり、本実施例では「ブドウ−オレンジ−ブドウ」が相当する)が入賞ライン上に停止したとき、RT(1)が規定ゲーム数の消化により終了したとき、RT(2)においてリプレイ(3)〜(8)のいずれかが入賞したときに移行し、RT(0)に移行してからのゲーム数に関わらず、リプレイ(2)が入賞してRT(2)に移行するか、特別役が当選してRT(3)に移行することで終了する。RT(0)における再遊技役の当選確率は、低確率(約1/7.3)であり、1ゲームあたりのメダルの払出率も1未満となり、後述するRT(1)と同様、1ゲームあたりのメダルの払出率が最も低い状態である。また、RT(0)では、リプレイ(1)、リプレイ(2)、リプレイGR(1)〜(6)の全てが内部抽選の対象となる。
RT(1)は、BB終了後に移行し、移行出目(1)または移行出目(2)が入賞ライン上に停止してRT(0)に移行するか、特別役が当選してRT(3)に移行するか、RT(1)に移行後、移行出目(1)または移行出目(2)が入賞ラインに停止せず、かつ特別役が当選せずに、規定ゲーム数(本実施例では500G)消化してRT(0)に移行することで終了する。RT(1)における再遊技役の当選確率は、低確率(約1/7.3)であり、1ゲームあたりのメダルの払出率も1未満となり、RT(0)と同様、1ゲームあたりのメダルの払出率が最も低い状態である。また、RT(1)では、リプレイ(1)、リプレイ(2)、リプレイGR(1)〜(6)のうち特別役との同時当選を除いてリプレイ(1)のみが内部抽選の対象となる。
RT(2)は、RT(0)においてリプレイ(2)が入賞したときに移行し、RT(2)に移行してからのゲーム数に関わらず、リプレイ(3)〜(8)のいずれかが入賞してRT(0)へ移行するか、特別役が当選してRT(3)に移行することで終了する。RT(2)における再遊技役の当選確率は、RT(0)(1)(約1/7.3)よりも高確率(約1/1.4)であり、1ゲームあたりのメダルの払出率が1以上となり、RT(0)〜(3)のうち1ゲームあたりのメダルの払出率が最も高い状態である。また、RT(2)では、リプレイ(1)、リプレイ(2)、リプレイGR(1)〜(6)のうち特別役との同時当選を除いてリプレイGR(1)〜(6)のみが内部抽選の対象となり、これらリプレイGR(1)〜(6)が高確率で当選することとなる。
RT(3)は、特別役が当選したときに移行し、RT(3)に移行してからのゲーム数に関わらず、当選した特別役が入賞することで終了する。RT(3)における再遊技役の当選確率は、RT(0)(1)(約1/7.3)よりも高確率(約1/2)であるが、RT(2)(約1/1.4)よりも低く、1ゲームあたりのメダルの払出率が1未満となる。また、RT(3)では、リプレイ(1)、リプレイ(2)、リプレイGR(1)〜(6)のうちリプレイ(1)(2)のみが内部抽選の対象となる。
BBは、特別役の入賞後直ちに移行し、終了条件の成立により終了する。BBにおける再遊技役の当選確率は、低確率(約1/7.3)であるが、BB中は常にRBに制御されるようになっているため小役の当選確率が高く、1ゲームあたりのメダルの払出率が最も高い。また、BBでは、リプレイ(1)、リプレイ(2)、リプレイGR(1)〜(6)のうちリプレイ(2)、リプレイGR(1)〜(6)のみが内部抽選の対象となる。
上記したRT(0)〜(2)における特別役(小役との同時当選を含む)の当選確率は同一の確率である。また、RT(0)〜(3)における小役(特別役との同時当選を含む)の当選確率も同一の確率である。
RT(0)〜(3)のうちRT(2)(3)は、再遊技役の当選確率がRT(0)(1)よりも高く、RT(0)(1)(3)に比較して相対的に有利な遊技状態となる。
また、RT(2)は、1ゲームあたりのメダルの払出率が1以上となる一方、RT(3)は、1ゲームあたりのメダルの払出率が1未満であり、RT(2)の方が、RT(3)よりも相対的に有利な遊技状態となる。
また、RT(0)(1)は、いずれも1ゲームあたりのメダルの払出率が1未満となるが、RT(0)は、リプレイ(2)が入賞することで1ゲームあたりのメダルの払出率の高いRT(2)へ移行する一方、RT(1)からRT(2)へ移行することがないため、RT(0)の方が、RT(1)よりも相対的に有利な遊技状態となり、RT(1)は、最も不利な遊技状態といえる。
ここで本実施例の遊技状態の移行状況について説明すると、図66に示すように、BBが終了すると、RT(1)に移行する。
RT(1)では、移行出目(1)または移行出目(2)が入賞ラインに停止することで、RT(0)に移行し、特別役が当選することでRT(3)に移行し、RT(1)へ移行後、移行出目(1)(2)が入賞ラインに停止せず、かつ特別役が当選せずに規定ゲーム数(500G)消化することでRT(0)へ移行する。
移行出目(1)(2)は、小役GR(1)〜(9)のいずれかが当選したときに、当選した小役を入賞させることができない場合に停止し得るため、BBの終了後に移行したRT(1)において小役GR(1)〜(9)のいずれかが当選し、かつ当選した小役が入賞しなかった場合にRT(0)に移行することとなる。尚、前述のように移行出目(1)(2)が停止しない場合でも規定ゲーム数の消化によりRT(0)に移行することとなる。
RT(0)では、リプレイ(2)が入賞することでRT(2)に移行し、特別役が当選した場合には、RT(3)に移行する。
リプレイ(2)は、リプレイGR(1)〜(6)が当選し、リプレイ(2)が入賞する停止順にて停止操作がなされた場合に入賞するため、RT(0)においてリプレイGR(1)〜(6)のいずれかが当選し、かつリプレイ(2)を入賞させることができた場合にRT(2)に移行する。
RT(2)では、RT(2)へ移行後、リプレイ(3)〜(8)のいずれかが入賞することでRT(0)に戻り、規定ゲーム数消化する前に特別役が当選した場合にはRT(3)に移行する。
リプレイ(3)〜(8)は、リプレイGR(1)〜(6)が当選し、リプレイ(2)を入賞させることができなかった場合に入賞するため、RT(2)においてリプレイGR(1)〜(6)のいずれかが当選し、かつリプレイ(2)を入賞させることができなかった場合にRT(0)に移行する。
RT(3)では、当該RT(3)へ移行する契機となった特別役が入賞することで、BBに移行する。
このように本実施例では、BB終了後、通常遊技状態(BB以外の遊技状態)のうち最も有利なRT(2)へ直ちに移行することはなく、まず遊技者にとって最も不利なRT(1)へ移行し、その後、RT(0)を経なければRT(2)へ移行することがないので、遊技者にとって最も有利なBBから連続してRT(2)に制御されることがなく、極端に射幸性が高まってしまうことを防止できる。
また、BB終了後に移行するRT(1)では、小役GR(1)〜(9)のいずれかが当選し、かつ小役を取りこぼすことで導出される移行出目(1)または移行出目(2)が入賞ラインに停止することでRT(2)へ移行可能なRT(0)へ移行するので、当選した小役を取りこぼしたことによる損失を軽減できる。
また、RT(1)において移行出目(1)も移行出目(2)も導出されない場合、すなわち小役GR(1)〜(9)のいずれかが当選し、かつ小役を取りこぼさなかった場合や小役を取りこぼしても移行出目(1)、移行出目(2)を導出させることができなかった場合であっても、RT(1)に移行してから経過したゲーム数が規定ゲーム数(本実施例では、500G)に到達することでRT(2)へ移行可能なRT(0)へ移行するので、当選した小役を取りこぼさずとも、RT(0)へ移行させることが可能であるため、RT(1)からRT(0)へ移行させるのに、当選した小役を取りこぼすという遊技者にとっての不利益を強要せずともRT(0)へ移行させることが可能となり、遊技者に不満を与えてしまうことを防止できる。
尚、本実施例では、BB終了後、RT(1)を介して、RT(2)へ移行可能な点でRT(1)よりも遊技者にとって有利なRT(0)へ移行する構成であり、RT(1)からRT(0)へ移行するにあたり、小役を取りこぼしたことを条件に導出される移行出目が導出されるか、規定ゲーム数の消化によりRT(0)へ移行する構成であるが、BB終了後、RT(1)を介してRT(1)よりも遊技者にとって有利な遊技状態へ移行する構成であり、RT(1)から当該有利な遊技状態へ移行するにあたり、小役を取りこぼしたことを条件に導出される移行出目が導出されるか、規定ゲーム数の消化により有利な遊技状態へ移行する構成であれば良く、例えば、BB終了後、RT(1)を介してRT(1)よりも再遊技役の当選確率が高く、1ゲームあたりのメダルの払出率も高い有利な遊技状態へ移行するにあたり、小役を取りこぼしたことを条件に導出される移行出目が導出されるか、規定ゲーム数の消化により当該有利な遊技状態へ移行する構成としても良い。
また、本実施例では、小役GR(1)〜(9)の当選確率を約1/5に設定しており、前述のように中リールを第1停止とするなど、意図的に移行出目の停止を回避する場合を除き、移行出目が停止する確率は約2/9であり、約1/22.5の確率で移行出目が導出されることとなる。一方で前述のように移行出目が導出されず、かつ特別役も当選せずにRT(1)からRT(0)へ移行するまでの規定ゲーム数として、移行出目が導出される確率の逆数よりも大きい値である500が定められている。
このため、RT(1)において小役GR(1)〜(9)が当選し、かつ当選した小役を取りこぼした場合に、当選した小役を取りこぼさず規定ゲーム数に到達させるよりも早くRT(0)へ移行させることが可能となるので、当選した小役を取りこぼすことによる損失を一層軽減できる。
さらに本実施例では、小役GR(1)〜(9)が当選し、かつ小役を入賞させた場合に付与されるメダル数が9枚である一方、小役GR(1)〜(9)の当選確率の逆数、すなわち小役GR(1)〜(9)が当選するのに要する平均ゲーム数が5ゲームであり、RT(1)において1ゲームに要するメダル数(ゲームを開始させるのに必要な賭数を設定するのに要するメダル数)は3枚であることから、RT(1)において小役GR(1)〜(9)が当選するまでには、平均して約15枚のメダルを要する。
すなわち小役GR(1)〜(9)が当選し、かつ小役を入賞させた場合に付与されるメダル数が、小役GR(1)〜(9)によって許容される小役を入賞するのに必要な平均ゲーム数に要するメダル数よりも少ない構成であるため、小役GR(1)〜(9)によって許容される小役を取りこぼしてもより早くRT(1)からRT(0)へ移行させることへの遊技者の意欲を高めることができる。
また、本実施例では、特別役の当選確率(BB(1)〜(3)の合成確率)を、約1/200〜1/300に設定しており、移行出目が導出されず、かつ特別役も当選せずにRT(1)からRT(0)へ移行するまでの規定ゲーム数として、特別役の当選確率の逆数よりも大きい値である500が定められている。すなわち特別役が当選するのに要する理論上の平均ゲーム数を超えてRT(1)からRT(0)へ移行しなければ、移行出目が導出されずとも、RT(0)へ移行するようになっている。
このため、特別役が当選するのに要する理論上の平均ゲーム数を超えてもBBにもRT(0)にも移行しない状況が続いた場合には、少なくともRT(0)へは必ず移行するので、遊技者に対して極端に不利な状態が継続してしまうことを防止できる。
尚、本実施例では、移行出目が導出されず、かつ特別役も当選せずにRT(1)からRT(0)へ移行するまでの規定ゲーム数として、特別役の当選確率の逆数よりも大きい値が定められた構成であるが、移行出目が導出されず、かつ特別役も当選せずにRT(1)からRT(0)へ移行するまでの規定ゲーム数として、特別役の当選確率の逆数よりも小さい値が定められた構成としても良く、このような構成とすることで、RT(1)に移行後、特別役が当選する前に、RT(1)からRT(0)へ移行する可能性が高まるので、次回BBへ移行するよりも先にRT(0)へ移行することへの期待感を高められる。すなわちRT(0)へ移行するよりも先にBBへ移行してしまうと、再びRT(1)に移行することとなるため、RT(0)へ移行する機会が減少してしまうこととなるが、移行出目が導出されず、かつ特別役も当選せずにRT(1)からRT(0)へ移行するまでの規定ゲーム数として、特別役の当選確率の逆数よりも大きい値が定められることによって、RT(1)からRT(0)へ移行する機会を増加させることができる。
また、本実施例では、小役GR(1)〜(9)のいずれかが当選した場合に、左リールまたは右リールを第1停止とした場合のみ移行出目(1)(2)が停止し得る構成であり、中リールを第1停止とした場合には、移行出目(1)(2)が停止しないようになっている。
すなわち、小役GR(1)〜(9)のいずれかが当選した場合に、移行出目の停止を確実に回避可能な操作態様が存在するので、小役GR(1)〜(9)のいずれかが当選した際に、特定の操作態様(中リールを第1停止とすること)にて停止操作を行うことで、移行出目の停止を回避できるため、RT(1)において小役GR(1)〜(9)により許容された小役を取りこぼすのと引き替えにRT(0)に移行させるか、規定ゲーム数までRT(1)を維持してからRT(0)へ移行させるか、を遊技者が選択することができる。
本実施例では、前述のようにRT(0)においてリプレイ(2)が入賞すると、RT(0)よりも遊技者にとって有利なRT(2)へ移行することとなる。リプレイ(2)はリプレイGR(1)〜(6)が当選した際に入賞する可能性がある。
リプレイGR(1)が当選した場合には、左−中−右の順番で停止操作を行うことでリプレイ(2)を入賞させることができる。
リプレイGR(2)が当選した場合には、左−右−中の順番で停止操作を行うことでリプレイ(2)を入賞させることができる。
リプレイGR(3)が当選した場合には、中−左−右の順番で停止操作を行うことでリプレイ(2)を入賞させることができる。
リプレイGR(4)が当選した場合には、中−右−左の順番で停止操作を行うことでリプレイ(2)を入賞させることができる。
リプレイGR(5)が当選した場合には、右−左−中の順番で停止操作を行うことでリプレイ(2)を入賞させることができる。
リプレイGR(6)が当選した場合には、右−中−左の順番で停止操作を行うことでリプレイ(2)を入賞させることができる。
しかしながら、RT(0)においてリプレイGR(1)〜(6)のいずれかが当選した場合に、その種類が分からなければ意図的にリプレイ(2)を入賞させることとなる停止順を選択することはできず、1/6の割合でリプレイ(2)が入賞することとなる停止順が選択され、RT(2)への移行させることができるが、5/6の割合でリプレイ(3)〜(8)のいずれかが入賞することとなる停止順が選択され、RT(2)へ移行することはない。
一方で、RT(2)においてリプレイ(3)〜(8)が入賞すると、RT(2)よりも遊技者にとって不利なRT(0)に移行することとなる。リプレイ(3)〜(8)はリプレイGR(1)〜(6)が当選した際に入賞する可能性がある。
リプレイGR(1)が当選した場合には、左−中−右以外の順番で停止操作を行った場合に、リプレイ(3)、リプレイ(4)、リプレイ(7)が入賞することとなるが、左−中−右の順番で停止操作を行うことリプレイ(3)、リプレイ(4)、リプレイ(7)の入賞を回避し、かつリプレイ(2)を入賞させることができる。
リプレイGR(2)が当選した場合には、左−右−中以外の順番で停止操作を行った場合に、リプレイ(3)、リプレイ(5)、リプレイ(8)が入賞することとなるが、左−右−中の順番で停止操作を行うことでリプレイ(3)、リプレイ(5)、リプレイ(8)の入賞を回避し、かつリプレイ(2)を入賞させることができる。
リプレイGR(3)が当選した場合には、中−左−右以外の順番で停止操作を行った場合に、リプレイ(3)、リプレイ(4)、リプレイ(6)が入賞することとなるが、中−左−右の順番で停止操作を行うことでリプレイ(3)、リプレイ(4)、リプレイ(6)の入賞を回避し、かつリプレイ(2)を入賞させることができる。
リプレイGR(4)が当選した場合には、中−右−左以外の順番で停止操作を行った場合に、リプレイ(4)、リプレイ(5)、リプレイ(8)が入賞することとなるが、中−右−左の順番で停止操作を行うことでリプレイ(4)、リプレイ(5)、リプレイ(8)の入賞を回避し、かつリプレイ(2)を入賞させることができる。
リプレイGR(5)が当選した場合には、右−左−中以外の順番で停止操作を行った場合に、リプレイ(3)、リプレイ(5)、リプレイ(6)が入賞することとなるが、右−左−中の順番で停止操作を行うことでリプレイ(3)、リプレイ(5)、リプレイ(6)の入賞を回避し、かつリプレイ(2)を入賞させることができる。
リプレイGR(6)が当選した場合には、右−中−左以外の順番で停止操作を行った場合に、リプレイ(4)、リプレイ(5)、リプレイ(7)が入賞することとなるが、右−中−左の順番で停止操作を行うことでリプレイ(4)、リプレイ(5)、リプレイ(7)の入賞を回避し、かつリプレイ(2)を入賞させることができる。
しかしながら、RT(2)においてリプレイGR(1)〜(6)のいずれかが当選した場合に、その種類が分からなければ意図的にリプレイ(2)を入賞させ、リプレイ(3)〜(8)の入賞を回避することとなる停止順を選択することはできず、1/6の割合でリプレイ(2)が入賞することとなる停止順が選択され、RT(0)への移行を回避できるが、5/6の割合でリプレイ(3)〜(8)のいずれかが入賞することとなる停止順が選択され、RT(0)へ移行してしまうこととなる。
これに対してサブ制御部91は、RT(0)(2)においてリプレイGR(1)〜(6)のいずれかが当選した場合に、リプレイ(3)〜(8)を回避し、かつリプレイ(2)が入賞することとなる停止順を報知するリプレイナビを実行することが可能であり、リプレイナビが実行されることにより、遊技者はリプレイ(3)〜(8)を回避し、かつリプレイ(2)が入賞することとなる停止順を特定することが可能となり、報知された停止順に従ってリールの停止操作を行うことでリプレイ(3)〜(8)の入賞を回避してリプレイ(2)を入賞させることが可能となり、RT(0)であればRT(2)へ移行させることが可能となり、RT(2)であれば、RT(0)への移行を回避可能となる。
尚、リプレイナビは、リールの停止順を遊技者が認識可能なものであれば良く、リールの停止順を示唆する画像などを液晶表示器51に表示することで報知するものや、対応するLEDの点灯、対応する音声の出力などによって報知するものであっても良い。
また、前述のように小役GR(1)〜(3)が当選したか、小役GR(4)〜(6)が当選したか、小役GR(7)〜(9)が当選したか、に応じて払出期待値の高い第1停止リールが異なり、小役GR(1)〜(9)のいずれかが当選した場合でも、その種類が分からなければ意図的に払出期待値の高い第1停止リールを選択することはできず、1/3の割合で払出期待値の高い第1停止リールが選択され、2/3の割合で払出期待値の低い第1停止リールが選択されることとなる。
これに対して本実施例のサブ制御部91は、小役GR(1)〜(9)のいずれかが当選した場合に、払出期待値の高い第1停止リール(小役GR(1)〜(3)の当選時であれば左リール、小役GR(4)〜(6)の当選時であれば中リール、小役GR(7)〜(9)の当選時であれば右リール)を報知する小役ナビを実行することが可能であり、小役ナビが実行されることにより、遊技者は払出期待値の高い第1停止リールを特定することが可能となり、報知されたリールを第1停止とすることで9枚を必ず入賞させることが可能となり、小役ナビが実行されない場合よりも多くのメダルを獲得することができるようになっている。
尚、小役ナビは、第1停止リールを遊技者が認識可能なものであれば良く、第1停止リールまたは停止順を示唆する画像などを液晶表示器51に表示することで報知するものや、対応するLEDの点灯、対応する音声の出力などによって報知するものであっても良い。
また、前述のようにRT(2)において移行出目(1)または移行出目(2)が入賞ラインに停止すると、RT(2)よりも遊技者にとって不利なRT(0)に移行することとなる。小役(1)〜(9)は、移行出目(1)、移行出目(2)は、小役GR(1)〜(9)が当選した際に停止する可能性がある。
小役GR(1)〜(3)が当選した場合には、左リール以外を第1停止とした場合に、小役(1)〜(3)が入賞するか、移行出目(1)または移行出目(2)が入賞ラインに停止することとなるが、左リールを第1停止とした場合の順番で停止操作を行うことで移行出目(1)(2)の停止を回避し、かつベルを入賞させることができる。
小役GR(4)〜(6)が当選した場合には、中リール以外を第1停止とした場合に、小役(4)〜(6)が入賞するか、移行出目(1)または移行出目(2)が入賞ラインに停止することとなるが、中リールを第1停止とした場合の順番で停止操作を行うことで移行出目(1)(2)の停止を回避し、かつベルを入賞させることができる。
小役GR(7)〜(9)が当選した場合には、右リール以外を第1停止とした場合に、小役(7)〜(9)が入賞するか、移行出目(1)または移行出目(2)が入賞ラインに停止することとなるが、右リールを第1停止とした場合の順番で停止操作を行うことで移行出目(1)(2)の停止を回避し、かつベルを入賞させることができる。
尚、小役GR(1)〜(9)のいずれが当選した場合であっても、中リールを第1停止とすることで、少なくとも移行出目(1)または移行出目(2)が入賞ラインに停止することを回避することは可能である。
しかしながら、小役GR(1)〜(9)のいずれかが当選した場合でも、小役GR(1)〜(9)に当選したことが分からなければ、意図的に移行出目(1)(2)の停止を回避することは不可能である。また、小役GR(1)〜(9)のいずれかが当選したことが分かっても、その種類が分からなければ意図的に移行出目(1)(2)の停止を回避し、かつベルを入賞させる第1停止リールを選択することはできず、1/3の割合で移行出目(1)(2)の停止を回避し、かつベルを入賞させる第1停止リールが選択され、2/3の割合で移行出目(1)(2)の停止を確実には回避できない第1停止リールが選択されることとなる。
これに対して本実施例のサブ制御部91は、前述のように小役GR(1)〜(9)のいずれかが当選した場合に、払出期待値の高い第1停止リール(小役GR(1)〜(3)の当選時であれば左リール、小役GR(4)〜(6)の当選時であれば中リール、小役GR(7)〜(9)の当選時であれば右リール)を報知する小役ナビを実行することが可能であり、RT(2)において小役ナビが実行されることにより、遊技者は移行出目(1)(2)の停止を回避し、かつベルを入賞させる第1停止リールを特定することが可能となり、報知されたリールを第1停止とすることで移行出目(1)(2)の停止を確実に回避し、かつ9枚のメダルを獲得すること、すなわちRT(0)への移行を回避し、かつメダルも獲得することが可能となる。
サブ制御部91は、原則としてナビ権利に応じて上記したリプレイナビ及び小役ナビを行う。
ナビ権利は、図68に示すように、RT(0)(2)中にリプレイGR(1)〜(6)が当選した場合にリプレイナビが実行され、RT(2)中に小役GR(1)〜(9)が当選した場合に小役ナビが実行される権利であり、ナビ権利が付与されることで、RT(0)においてリプレイGR(1)〜(6)が当選すると、リプレイ(2)を入賞させるための停止順が報知されるので、RT(2)へ移行させることができる。また、RT(2)においてリプレイGR(1)〜(6)が当選すると、リプレイ(3)〜(8)の入賞を回避する停止順が報知されるので、RT(0)への移行を回避できる。また、RT(2)において小役GR(1)〜(9)が当選すると、移行出目(1)(2)の停止を回避し、かつメダルを獲得することができる。
ナビ権利に伴うリプレイナビ及び小役ナビが実行される期間(以下ナビ期間とする)は、RT(0)へ移行後、最初にリプレイGR(1)〜(6)が当選したとき、またはRT(2)においてナビ権利消化後(1のナビ権利に基づくナビ期間の終了後)、ナビ権利が残っている場合に、その時点から開始する。そして、ナビ期間の開始後、33ゲーム消化、特別役当選、RT(0)への移行のいずれかの成立により終了する。また、ナビ権利は、複数付与することが可能であり、ナビ権利が残っている間は、33ゲーム毎に1個の権利を消費することで、ナビ権利3の数×33ゲームの期間にわたりリプレイナビ及び小役ナビが実行されることとなる。
ナビ権利は、BB当選時、BB中のリプレイ(2)入賞時、すなわちBB中においてリプレイGR(1)〜(6)が当選し、1/6で停止順が正解してリプレイ(2)が入賞したとき、BB中のリプレイ(2)単独当選時、BB中のハズレ時にサブ制御部91が実行するナビ権利抽選に当選することで付与される。
ナビ権利抽選では、図69(a)〜(c)に示すように、0〜7個のナビ権利が当選することとなるが、抽選契機に応じて異なる当選確率が定められた抽選テーブルを用いることで、その当選個数の平均値が異なる。さらに、サブ制御部91は、RT(0)〜(2)において低確率状態、高確率状態のいずれかに制御するようになっており、ナビ権利抽選では、低確率状態に当選したBBを契機とする抽選契機であるか、高確率状態に当選したBBを契機とする抽選契機であるか、に応じて異なる当選確率が定められた抽選テーブルを用いることで、その当選個数の平均値が異なる。また、サブ制御部91は、RT(1)中に当選したBBを契機とする抽選契機であるか、それ以外で当選したBBを契機とする抽選契機であるか、に応じて異なる当選確率が定められた抽選テーブルを用いることで、その当選個数の平均値が異なる。
尚、RT(1)中であっても、小役GR(1)〜(9)が当選し、かつ小役も入賞せず、移行出目も停止しなかった後、すなわち小役GR(1)〜(9)が当選しても移行出目の停止を回避し、かつ小役も入賞しなかった場合には、その後、RT(1)以外とみなして抽選を行う。これは、後述するようにRT(1)中にBBに当選したことを契機とする抽選は、他の状態でBBに当選したことを契機とする抽選よりも当選個数の平均値が高い抽選テーブルが用いられるからであり、本実施例のように意図的にRT(0)への移行を回避し、RT(1)を維持できる構成の場合には、意図的に当選個数の平均値が高い抽選テーブルを用いて抽選を受けることが可能となってしまうからである。このため、移行出目の停止を意図的に回避できない構成であれば、このような制限は必要ない。
図69(a)は、低確率状態においてBBが当選したことを契機とするナビ権利の当選個数を示す図であり、BB当選時は、当選個数0が90%、当選個数1が8%、当選個数2、3が1%、当選個数4〜7が0%であり、当選個数の平均値は0.13個となる。BB中リプレイ入賞時は、当選個数0、4〜7が0%、当選個数1が70%、当選個数2が20%、当選個数3が10%であり、当選個数の平均値は1.4個となる。BB中リプレイ(2)単独当選時は、当選個数0、5〜7が0%、当選個数1、2が30%、当選個数3、4が20%であり、当選個数の平均値は2.3個となる。BB中ハズレは、当選個数0、2〜6が0%、当選個数1が50%、当選個数7が50%であり、当選個数の平均値は3.5個となる。
図69(b)は、高確率状態においてBBが当選したことを契機とするナビ権利の当選個数を示す図であり、BB当選時は、当選個数0が50%、当選個数1が30%、当選個数2が10%、当選個数3が5%、当選個数4、5が2%、当選個数6が1%、当選個数7が0%であり、当選個数の平均値は4.39個となる。BB中リプレイ入賞時は、当選個数0、7が0%、当選個数1、2が30%、当選個数3が20%、当選個数4が15%、当選個数5が4%、当選個数6が1%であり、当選個数の平均値は5.86個となる。BB中リプレイ(2)単独当選時は、当選個数0、5〜7が0%、当選個数1、2が30%、当選個数3、4が20%であり、当選個数の平均値は2.3個となる。BB中ハズレは、当選個数0、2〜6が0%、当選個数1が50%、当選個数7が50%であり、当選個数の平均値は3.5個となる。
図69(c)は、RT(1)においてBBが当選したことを契機とするナビ権利の当選個数を示す図であり、BB当選時は、当選個数0、7が0%、当選個数1が40%、当選個数2が20%、当選個数3が15%、当選個数4が12%、当選個数5が7%、当選個数6が6%であり、当選個数の平均値は5.94個となる。BB中リプレイ入賞時は、当選個数0、1、7が0%、当選個数2、3が30%、当選個数4が25%、当選個数5が9%、当選個数6が6%であり、当選個数の平均値は6.81個となる。BB中リプレイ(2)単独当選時は、当選個数0、5〜7が0%、当選個数1、2が30%、当選個数3、4が20%であり、当選個数の平均値は2.3個となる。BB中ハズレは、当選個数0、2〜6が0%、当選個数1が50%、当選個数7が50%であり、当選個数の平均値は3.5個となる。
このように、ナビ権利抽選を実行する抽選契機の違いによってナビ権利の獲得が期待できる個数が異なり、特に、本実施例では、BB終了後のRT(1)、すなわち1ゲームあたりのメダルの払出率も低く、かつ遊技者にとって有利なRT(2)へ直接移行することのない遊技者にとって不利な遊技状態において、BBが当選した場合に、最もナビ権利の当選個数の平均値の高い抽選テーブルを用いてナビ権利抽選が行われるので、RT(1)が長期間継続しても、RT(0)へ移行させることのできない遊技者の不満を軽減できる。また、BBの終了後、RT(0)へ移行する前に特別役が当選すること、すなわちBBが少ないゲーム数で連続することで、より多くのナビ権利の獲得が期待できる。
尚、本実施例では、ナビ権利抽選をBB当選時及びBB中に実行する構成であるが、小役や再遊技役のうちの特定の役の当選時に実行する構成でも良く、このような構成とした場合には、BB終了後のRT(1)において特定の役が当選した場合に、RT(0)(2)(3)において特定の役が当選した場合よりもナビ権利抽選におけるナビ権利の当選個数が優遇されることが好ましく、このようにすることで、RT(1)が長期間継続しても、RT(0)へ移行させることのできない遊技者の不満を軽減できる。
また、本実施例では、前述のようにBBの終了後、直ちにRT(0)へ移行するのではなく、まずRT(1)に移行し、RT(1)において移行出目(1)または移行出目(2)が入賞ラインに停止することでRT(0)へ移行し、RT(0)においてリプレイ(2)が入賞することでRT(2)へ移行することとなる。
そして、ナビ権利が付与されている場合であっても、BB終了後のRT(1)では、ナビ権利に基づくリプレイナビや小役ナビは、実行されず、その後、RT(0)に移行してリプレイGR(1)〜(6)が当選することで初めてナビ権利に基づくリプレイナビが実行されるようになっている。
このため、BBの終了後、小役GR(1)〜(9)が当選した際に、小役ナビが行われない場合でも、RT(0)へ移行するまでは、ナビ権利が付与されているか否かを判断することができないため、RT(0)へ移行するまでナビ権利が付与されていることへの期待感を持続させることができる。
尚、本実施例では、有利度決定手段が決定する有利度としてリプレイナビや小役ナビが実行される権利であるナビ権利を適用しているが、リプレイナビや小役ナビのように遊技者にとって有利な操作態様が報知される確率、遊技者にとって有利な状況(リプレイナビや小役ナビが実行される状況など)を継続させるか否かを決定する場合の継続率などでも良いし、特定の条件が成立せずに経過したゲーム数が規定ゲーム数に到達した場合に遊技者にとって有利な状況(リプレイナビや小役ナビが実行される状況など)に移行させる場合などのように遊技者にとって有利な状況に制御される条件が設定されている場合には、その条件の難易度を適用しても良いし、これらの要素のうちの複数の要素を複合的に適用しても良い。
また、本実施例では、リプレイGRの種類、すなわち同時当選する再遊技役の違いに応じて有利度の高い再遊技役を入賞させるリールの停止順が異なる構成であり、リプレイGRの種類に応じて有利度の高い再遊技役を入賞させることが可能なリールの停止順を報知するリプレイナビを実行する構成であるが、リプレイGRの種類に応じて有利度の高い再遊技役を入賞させることが可能となる停止操作のタイミングが異なる構成としリプレイGRの種類に応じて有利度の高い再遊技役を入賞させることが可能な停止操作タイミングまたはそれを特定可能な情報を報知する構成としても良い。
また、本実施例では、小役GRの種類、すなわち同時当選する小役の違いに応じて払出期待値の高いリールの停止順が異なる構成であり、小役GRの種類に応じて払出期待値の高いリールの停止順を報知する小役ナビを実行する構成であるが、リプレイGRまたは小役の種類に応じて払出期待値の高い停止操作のタイミングが異なる構成とし小役GRの種類または小役の種類に応じて払出期待値の高い停止操作タイミングまたはそれを特定可能な情報を報知する構成としても良い。
以上、本発明の実施例を図面により説明してきたが、本発明はこの実施例に限定されるものではなく、本発明の主旨を逸脱しない範囲における変更や追加があっても本発明に含まれることは言うまでもない。
前記実施例では、遊技機の一例としてスロットマシンを適用しているが、所定の遊技を行う遊技機であれば本発明を適用可能であり、例えば、遊技球を遊技領域内に発射し、遊技球が特定の入賞口に入賞させる遊技を行う弾球遊技機にも適用可能である。
1 スロットマシン
2L、2C、2R リール
6 MAXBETスイッチ
7 スタートスイッチ
8L、8C、8R ストップスイッチ
41 メイン制御部
91 サブ制御部
505 CPU
506 ROM
507 RAM

Claims (1)

  1. 所定の遊技を行うことが可能な遊技機であって、
    プログラムに従って遊技の制御を行う遊技制御手段を備え、
    前記遊技制御手段は、
    電源遮断時に、電断が発生した旨を示す電断データを設定する電断データ設定手段と、
    電源投入時に、前記電断データが設定されていることを条件に正常に復帰可能であると判定する復帰判定手段と、
    前記復帰判定手段が復帰可能ではないと判定した場合に、異常時制御を行う異常時制御手段と、
    複数種類の割込要因毎に該割込要因に応じて実行する割込処理プログラムのアドレスを格納する割込アドレス格納手段と、
    前記割込要因が発生した場合に、前記割込アドレス格納手段において該発生した割込要因の種類に対応して格納されているアドレスのプログラムを実行する割込処理手段と、
    を含み、
    前記割込アドレス格納手段における前記複数種類の割込要因のうち使用予定のない割込要因に対応する領域に前記電源投入時に実行するプログラムの先頭アドレスを格納し、
    前記使用予定のない割込要因が発生した場合には、前記電源投入時のプログラムを実行させることにより、前記復帰判定手段により復帰可能ではないと判定させ、前記異常時制御手段により前記異常時制御を行わせる
    ことを特徴とする遊技機。
JP2011037896A 2011-02-24 2011-02-24 遊技機 Active JP5833826B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011037896A JP5833826B2 (ja) 2011-02-24 2011-02-24 遊技機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011037896A JP5833826B2 (ja) 2011-02-24 2011-02-24 遊技機

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015212511A Division JP6267680B2 (ja) 2015-10-29 2015-10-29 遊技機

Publications (2)

Publication Number Publication Date
JP2012170755A true JP2012170755A (ja) 2012-09-10
JP5833826B2 JP5833826B2 (ja) 2015-12-16

Family

ID=46974197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011037896A Active JP5833826B2 (ja) 2011-02-24 2011-02-24 遊技機

Country Status (1)

Country Link
JP (1) JP5833826B2 (ja)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014121392A (ja) * 2012-12-20 2014-07-03 Sankyo Co Ltd スロットマシン
JP2014176443A (ja) * 2013-03-14 2014-09-25 Sammy Corp 遊技機
JP2015029598A (ja) * 2013-07-31 2015-02-16 株式会社三共 スロットマシン
JP2015029597A (ja) * 2013-07-31 2015-02-16 株式会社三共 スロットマシン
JP2015058094A (ja) * 2013-09-18 2015-03-30 サミー株式会社 遊技機
JP2015058095A (ja) * 2013-09-18 2015-03-30 サミー株式会社 遊技機
JP2016022109A (ja) * 2014-07-18 2016-02-08 京楽産業.株式会社 遊技機
JP2017086779A (ja) * 2015-11-17 2017-05-25 株式会社三共 遊技機
JP2017140520A (ja) * 2017-05-29 2017-08-17 株式会社ユニバーサルエンターテインメント 遊技機
JP2017225728A (ja) * 2016-06-24 2017-12-28 株式会社三共 遊技機
JP2017225727A (ja) * 2016-06-24 2017-12-28 株式会社三共 遊技機
JP2018086462A (ja) * 2018-02-28 2018-06-07 株式会社三共 スロットマシン
JP2018086461A (ja) * 2018-02-28 2018-06-07 株式会社三共 スロットマシン
JP2018134221A (ja) * 2017-02-21 2018-08-30 株式会社オリンピア 遊技機
JP2020116219A (ja) * 2019-01-25 2020-08-06 株式会社三共 遊技機
JP2020195906A (ja) * 2020-09-15 2020-12-10 株式会社藤商事 遊技機
JP2021166831A (ja) * 2016-08-09 2021-10-21 株式会社三共 遊技機
JP7329272B1 (ja) 2022-02-17 2023-08-18 株式会社ユニバーサルエンターテインメント 遊技機

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6267680B2 (ja) * 2015-10-29 2018-01-24 株式会社三共 遊技機

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10146437A (ja) * 1996-11-18 1998-06-02 Sankyo Kk 遊技機
JP2007313121A (ja) * 2006-05-26 2007-12-06 Sankyo Kk スロットマシン
JP2008023224A (ja) * 2006-07-25 2008-02-07 Sankyo Kk 遊技機

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10146437A (ja) * 1996-11-18 1998-06-02 Sankyo Kk 遊技機
JP2007313121A (ja) * 2006-05-26 2007-12-06 Sankyo Kk スロットマシン
JP2008023224A (ja) * 2006-07-25 2008-02-07 Sankyo Kk 遊技機

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014121392A (ja) * 2012-12-20 2014-07-03 Sankyo Co Ltd スロットマシン
JP2014176443A (ja) * 2013-03-14 2014-09-25 Sammy Corp 遊技機
JP2015029598A (ja) * 2013-07-31 2015-02-16 株式会社三共 スロットマシン
JP2015029597A (ja) * 2013-07-31 2015-02-16 株式会社三共 スロットマシン
JP2015058094A (ja) * 2013-09-18 2015-03-30 サミー株式会社 遊技機
JP2015058095A (ja) * 2013-09-18 2015-03-30 サミー株式会社 遊技機
JP2016022109A (ja) * 2014-07-18 2016-02-08 京楽産業.株式会社 遊技機
JP2017086779A (ja) * 2015-11-17 2017-05-25 株式会社三共 遊技機
JP2017225727A (ja) * 2016-06-24 2017-12-28 株式会社三共 遊技機
JP2017225728A (ja) * 2016-06-24 2017-12-28 株式会社三共 遊技機
JP2021166831A (ja) * 2016-08-09 2021-10-21 株式会社三共 遊技機
JP7110455B2 (ja) 2016-08-09 2022-08-01 株式会社三共 遊技機
JP2018134221A (ja) * 2017-02-21 2018-08-30 株式会社オリンピア 遊技機
JP2017140520A (ja) * 2017-05-29 2017-08-17 株式会社ユニバーサルエンターテインメント 遊技機
JP2018086462A (ja) * 2018-02-28 2018-06-07 株式会社三共 スロットマシン
JP2018086461A (ja) * 2018-02-28 2018-06-07 株式会社三共 スロットマシン
JP2020116219A (ja) * 2019-01-25 2020-08-06 株式会社三共 遊技機
JP2020195906A (ja) * 2020-09-15 2020-12-10 株式会社藤商事 遊技機
JP7241725B2 (ja) 2020-09-15 2023-03-17 株式会社藤商事 遊技機
JP7329272B1 (ja) 2022-02-17 2023-08-18 株式会社ユニバーサルエンターテインメント 遊技機
JP2023119987A (ja) * 2022-02-17 2023-08-29 株式会社ユニバーサルエンターテインメント 遊技機

Also Published As

Publication number Publication date
JP5833826B2 (ja) 2015-12-16

Similar Documents

Publication Publication Date Title
JP5833826B2 (ja) 遊技機
JP5566122B2 (ja) 遊技機
JP5597451B2 (ja) スロットマシン
JP6147950B2 (ja) スロットマシン
JP2012005544A (ja) スロットマシン
JP5543229B2 (ja) 遊技機
JP5937639B2 (ja) 遊技機
JP5937638B2 (ja) 遊技機
JP6129147B2 (ja) スロットマシン
JP2011194156A (ja) 遊技機
JP6147951B2 (ja) スロットマシン
JP6267680B2 (ja) 遊技機
JP6279006B2 (ja) スロットマシン
JP6143419B2 (ja) スロットマシン
JP5543230B2 (ja) 遊技機
JP2014208098A (ja) スロットマシン
JP5665354B2 (ja) スロットマシン
JP6240651B2 (ja) 遊技機
JP6143418B2 (ja) スロットマシン
JP6279008B2 (ja) スロットマシン
JP6212597B2 (ja) 遊技機
JP6279007B2 (ja) スロットマシン
JP6334600B2 (ja) 遊技機
JP5850987B2 (ja) 遊技機
JP2017124229A (ja) スロットマシン

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150401

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151030

R150 Certificate of patent or registration of utility model

Ref document number: 5833826

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250