本発明の実施例を以下に説明する。
本発明が適用されたスロットマシンの実施例を図面を用いて説明すると、本実施例のスロットマシン1は、前面が開口する筐体(図示略)と、この筺体の側端に回動自在に枢支された前面扉と、から構成されている。前面扉は、施錠装置を施解錠することで開閉できるようになっており、施解錠装置のキーは主に遊技場側で管理される。
本実施例のスロットマシン1の筐体内部には、外周に複数種の図柄が配列されたリール2L、2C、2R(以下、左リール、中リール、右リールともいう)が水平方向に並設されており、図1に示すように、これらリール2L、2C、2Rに配列された図柄のうち連続する3つの図柄が前面扉に設けられた透視窓3から見えるように配置されている。
リール2L、2C、2Rの外周部には、図2に示すように、それぞれ「赤7(図中黒7)」、「青7(図中網掛7)」、「BAR」、「リプレイ」、「スイカ」、「チェリー」、「ベル」といった互いに識別可能な複数種類の図柄が所定の順序で、それぞれ21個ずつ描かれている。リール2L、2C、2Rの外周部に描かれた図柄は、透視窓3において各々上中下三段に表示される。
各リール2L、2C、2Rは、各々対応して設けられリールモータ32L、32C、32R(図3参照)によって回転させることで、各リール2L、2C、2Rの図柄が透視窓3に連続的に変化しつつ表示されるとともに、各リール2L、2C、2Rの回転を停止させることで、透視窓3に3つの連続する図柄が表示結果として導出表示されるようになっている。
透視窓3の上方には、ゲームに関する各種演出や、後述するように既に行われた遊技に関する遊技履歴データ(過去の遊技の結果に関する遊技履歴情報)等を表示可能な液晶表示器51が設けられているとともに、該液晶表示器51の右側方下部には、既に行われた遊技に関する遊技履歴データの閲覧やこれら遊技履歴データの初期化等を行う際に操作される、選択スイッチ56及び決定スイッチ57からなる選択・決定スイッチが設けられている。
つまり、本発明の表示用操作部を構成する選択スイッチ56及び決定スイッチ57は、遊技者が手を触れて操作ができるように、スロットマシン1の前面扉の前面、すなわち遊技者による操作が可能な位置に設けられている。
また、前面扉には、メダルを投入可能なメダル投入部4、メダルが払い出されるメダル払出口9、クレジット(遊技者所有の遊技用価値として記憶されているメダル数)を用いてメダル1枚分の賭数を設定する際に操作される1枚BETスイッチ5、クレジットを用いて、その範囲内において遊技状態に応じて定められた規定数の賭数(本実施例では後述の通常遊技状態においては3、後述のレギュラーボーナスにおいては1)を設定する際に操作されるMAXBETスイッチ6、クレジットとして記憶されているメダル及び賭数の設定に用いたメダルを精算する(クレジット及び賭数の設定に用いた分のメダルを返却させる)際に操作される精算スイッチ10、ゲームを開始する際に操作されるスタートスイッチ7、リール2L、2C、2Rの回転を各々停止する際に操作されるストップスイッチ8L、8C、8Rが設けられている。
また、前面扉には、クレジットとして記憶されているメダル枚数が表示されるクレジット表示器11、後述するビッグボーナス中のメダルの獲得枚数やエラー発生時にその内容を示すエラーコード等が表示される遊技補助表示器12、入賞の発生により払い出されたメダル枚数が表示されるペイアウト表示器13が設けられている。
また、前面扉には、賭数が1設定されている旨を点灯により報知する1BETLED14、賭数が2設定されている旨を点灯により報知する2BETLED15、賭数が3設定されている旨を点灯により報知する3BETLED16、メダルの投入が可能な状態を点灯により報知する投入要求LED17、スタートスイッチ7の操作によるゲームのスタート操作が有効である旨を点灯により報知するスタート有効LED18、ウェイト(前回のゲーム開始から一定期間経過していないためにリールの回転開始を待機している状態)中である旨を点灯により報知するウェイト中LED19、後述するリプレイゲーム中である旨を点灯により報知するリプレイ中LED20が設けられている。
また、MAXBETスイッチ6の内部には、1枚BETスイッチ5及びMAXBETスイッチ6の操作による賭数の設定操作が有効である旨を点灯により報知するBETスイッチ有効LED21(図3参照)が設けられており、ストップスイッチ8L、8C、8Rの内部には、該当するストップスイッチ8L、8C、8Rによるリールの停止操作が有効である旨を点灯により報知する左、中、右停止有効LED22L、22C、22R(図3参照)がそれぞれ設けられている。
また、前面扉の内側には、所定のキー操作により後述するRAM異常エラーを除くエラー状態及び後述する打止状態を解除するためのリセット操作を検出するリセットスイッチ23、後述する設定値の変更中や設定値の確認中にその時点の設定値が表示される設定値表示器24、メダル投入部4から投入されたメダルの流路を、筐体内部に設けられた後述のホッパータンク(図示略)側またはメダル払出口9側のいずれか一方に選択的に切り替えるための流路切替ソレノイド30、メダル投入部4から投入され、ホッパータンク側に流下したメダルを検出する投入メダルセンサ31が設けられている。
筐体内部には、前述したリール2L、2C、2R、リールモータ32L、32C、32R、各リール2L、2C、2Rのリール基準位置をそれぞれ検出可能なリールセンサ33からなるリールユニット(図示略)、メダル投入部4から投入されたメダルを貯留するホッパータンク(図示略)、ホッパータンクに貯留されたメダルをメダル払出口9より払い出すためのホッパーモータ34、ホッパーモータ34の駆動により払い出されたメダルを検出する払出センサ35、電源ボックス(図示略)が設けられている。
電源ボックスの前面には、後述のビッグボーナス終了時に打止状態(リセット操作がなされるまでゲームの進行が規制される状態)に制御する打止機能の有効/無効を選択するための打止スイッチ36、起動時に設定変更モードに切り替えるための設定キースイッチ37、通常時においてはRAM異常エラーを除くエラー状態や打止状態を解除するためのリセットスイッチとして機能し、設定変更モードにおいては後述する内部抽選の当選確率(出玉率)の設定値を変更するための設定スイッチとして機能するリセット/設定スイッチ38、電源をON/OFFする際に操作される電源スイッチ39が設けられている。
本実施例のスロットマシン1においてゲームを行う場合には、まず、メダルをメダル投入部4から投入するか、あるいはクレジットを使用して賭数を設定する。クレジットを使用するには1枚BETスイッチ5、またはMAXBETスイッチ6を操作すれば良い。遊技状態に応じて定められた規定数の賭数が設定されると、入賞ラインL1〜L5(図1参照)が有効となり、スタートスイッチ7の操作が有効な状態、すなわち、ゲームが開始可能な状態となる。尚、本実施例では、規定数の賭数として後述する通常遊技状態においては3枚が定められており、後述するレギュラーボーナス中においては、1枚が定められている。尚、遊技状態に対応する規定数を超えてメダルが投入された場合には、その分はクレジットに加算される。
ゲームが開始可能な状態でスタートスイッチ7を操作すると、各リール2L、2C、2Rが回転し、各リール2L、2C、2Rの図柄が連続的に変動する。この状態でいずれかのストップスイッチ8L、8C、8Rを操作すると、対応するリール2L、2C、2Rの回転が停止し、透視窓3に表示結果が導出表示される。
そして全てのリール2L、2C、2Rが停止されることで1ゲームが終了し、有効化されたいずれかの入賞ラインL1〜L5上に予め定められた図柄の組み合わせ(以下、役とも呼ぶ)が各リール2L、2C、2Rの表示結果として停止した場合には入賞が発生し、その入賞に応じて定められた枚数のメダルが遊技者に対して付与され、クレジットに加算される。また、クレジットが上限数(本実施例では50)に達した場合には、メダルが直接メダル払出口9(図1参照)から払い出されるようになっている。尚、有効化された複数の入賞ライン上にメダルの払出を伴う図柄の組み合わせが揃った場合には、有効化された入賞ラインに揃った図柄の組み合わせそれぞれに対して定められた払出枚数を合計し、合計した枚数のメダルが遊技者に対して付与されることとなる。ただし、1ゲームで付与されるメダルの払出枚数には、上限(本実施例では、15枚)が定められており、合計した払出枚数が上限を超える場合には、上限枚数のメダルが付与されることとなる。また、有効化されたいずれかの入賞ラインL1〜L5上に、遊技状態の移行を伴う図柄の組み合わせが各リール2L、2C、2Rの表示結果として停止した場合には図柄の組み合わせに応じた遊技状態に移行するようになっている。
図3は、スロットマシン1の構成を示すブロック図である。スロットマシン1には、図3に示すように、遊技制御基板40、演出制御基板90、電源基板100が設けられており、遊技制御基板40によって遊技状態が制御され、演出制御基板90によって遊技状態に応じた演出が制御され、電源基板100によってスロットマシン1を構成する電気部品の駆動電源が生成され、各部に供給される。
電源基板100には、外部からAC100Vの電源が供給されるとともに、このAC100Vの電源からスロットマシン1を構成する電気部品の駆動に必要な直流電圧が生成され、遊技制御基板40及び遊技制御基板40を介して接続された演出制御基板90に供給されるようになっている。また、電源基板100には、前述したホッパーモータ34、払出センサ35、打止スイッチ36、設定キースイッチ37、リセット/設定スイッチ38、電源スイッチ39が接続されている。
遊技制御基板40には、前述した1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R、精算スイッチ10、リセットスイッチ23、投入メダルセンサ31、リールセンサ33が接続されているとともに、電源基板100を介して前述した払出センサ35、打止スイッチ36、設定キースイッチ37、リセット/設定スイッチ38が接続されており、これら接続されたスイッチ類の検出信号が入力されるようになっている。
また、遊技制御基板40には、前述したクレジット表示器11、遊技補助表示器12、ペイアウト表示器13、1〜3BETLED14〜16、投入要求LED17、スタート有効LED18、ウェイト中LED19、リプレイ中LED10、BETスイッチ有効LED21、左、中、右停止有効LED22L、22C、22R、設定値表示器24、流路切替ソレノイド30、リールモータ32L、32C、32Rが接続されているとともに、電源基板100を介して前述したホッパーモータ34が接続されており、これら電気部品は、遊技制御基板40に搭載された後述のメイン制御部41の制御に基づいて駆動されるようになっている。
遊技制御基板40には、CPU41a、ROM41b、RAM41c、I/Oポート41dを備えたマイクロコンピュータからなり、遊技の制御を行うメイン制御部41、所定範囲(本実施例では0〜16383)の乱数を発生させる乱数発生回路42、乱数発生回路から乱数を取得するサンプリング回路43、遊技制御基板40に直接または電源基板100を介して接続されたスイッチ類から入力された検出信号を検出するスイッチ検出回路44、リールモータ32L、32C、32Rの駆動制御を行うモータ駆動回路45、流路切替ソレノイド30の駆動制御を行うソレノイド駆動回路46、遊技制御基板40に接続された各種表示器やLEDの駆動制御を行うLED駆動回路47、スロットマシン1に供給される電源電圧を監視し、電圧低下を検出したときに、その旨を示す電圧低下信号をメイン制御部41に対して出力する電断検出回路48、電源投入時またはCPU41aからの初期化命令が入力されないときにCPU41aにリセット信号を与えるリセット回路49、その他各種デバイス、回路が搭載されている。
CPU41aは、計時機能、タイマ割込などの割込機能(割込禁止機能を含む)を備え、ROM41bに記憶されたプログラム(後述)を実行して、遊技の進行に関する処理を行うととともに、遊技制御基板40に搭載された制御回路の各部を直接的または間接的に制御する。ROM41bは、CPU41aが実行するプログラムや各種テーブル等の固定的なデータを記憶する。RAM41cは、CPU41aがプログラムを実行する際のワーク領域等として使用される。I/Oポート41dは、メイン制御部41が備える信号入出力端子を介して接続された各回路との間で制御信号を入出力する。
メイン制御部41は、信号入力端子DATAを備えており、遊技制御基板40に接続された各種スイッチ類の検出状態がこれら信号入力端子DATAを介して入力ポートに入力される。これら信号入力端子DATAの入力状態は、CPU41aにより監視されており、CPU41aは、信号入力端子DATAの入力状態、すなわち各種スイッチ類の検出状態に応じて段階的に移行する基本処理を実行する。
また、CPU41aは、前述のように割込機能を備えており、割込の発生により基本処理に割り込んで割込処理を実行できるようになっている。本実施例では、割込1〜4の4種類の割込を実行可能であり、各割込毎にカウンタモード(信号入力端子DATAとは別個に設けられたトリガー端子CLK/TRGからの信号入力に応じて外部割込を発生させる割込モード)とタイマモード(CPU41aのクロック入力数に応じて内部割込を発生させる割込モード)のいずれかを選択して設定できるようになっている。
本実施例では、割込1〜4のうち、割込2がカウンタモードに設定され、割込3がタイマモードに設定され、割込1、4は未使用とされている。トリガー端子CLK/TRGは、前述した電断検出回路48と接続されており、CPU41aは電断検出回路48から出力された電圧低下信号の入力に応じて割込2を発生させて後述する電断割込処理を実行する。また、CPU41aは、クロック入力数が一定数に到達する毎、すなわち一定時間間隔(本実施例では、約0.56ms)毎に割込3を発生させて後述するタイマ割込処理(メイン)を実行する。また、割込1、4は、未使用に設定されているが、ノイズ等によって割込1、4が発生することがあり得る。このため、CPU41aは、割込1、4が発生した場合に、もとの処理に即時復帰させる未使用割込処理を実行するようになっている。
また、CPU41aは、割込1〜4のいずれかの割込の発生に基づく割込処理の実行中に他の割込を禁止するように設定されているとともに、複数の割込が同時に発生した場合には、割込2、3、1、4の順番で優先して実行する割込が設定されている。すなわち割込2とその他の割込が同時に発生した場合には、割込2を優先して実行し、割込3と割込1または4が同時に発生した場合には、割込3を優先して実行するようになっている。
また、CPU41aは、割込1〜4のいずれかの割込の発生に基づく割込処理の開始時に、レジスタに格納されている使用中のデータをRAM41cに設けられた後述のスタック領域に一時的に退避させるとともに、当該割込処理の終了時にスタック領域に退避させたデータをレジスタに復帰させるようになっている。
RAM41cには、DRAM(Dynamic RAM)が使用されており、記憶しているデータ内容を維持するためのリフレッシュ動作が必要となる。CPU41aには、このリフレッシュ動作を行うためのリフレッシュレジスタ(図示略)が設けられている。リフレッシュレジスタは、8ビットからなり、そのうちの下位7ビットが、CPU41aがROM41bから命令をフェッチする度に自動的にインクリメントされるもので、その値の更新は、1命令の実行時間毎に行われる。
また、メイン制御部41には、停電時においてもバックアップ電源が供給されており、バックアップ電源が供給されている間は、CPU41aによりリフレッシュ動作が行われてRAM41cに記憶されているデータが保持されるようになっている。
乱数発生回路42は、後述するように所定数のパルスを発生する度にカウントアップして値を更新するカウンタによって構成され、サンプリング回路43は、乱数発生回路42がカウントしている数値を取得する。乱数発生回路42は、乱数の種類毎にカウントする数値の範囲が定められており、本実施例では、その範囲として0〜16383が定められている。CPU41aは、その処理に応じてサンプリング回路43に指示を送ることで、乱数発生回路42が示している数値を乱数として取得する(以下、この機能をハードウェア乱数機能という)。後述する内部抽選用の乱数は、ハードウェア乱数機能により抽出した乱数をそのまま使用するのではなく、ソフトウェアにより加工して使用するが、その詳細については後述する。また、CPU41aは、前述のタイマ割込処理(メイン)により、特定のレジスタの数値を更新し、こうして更新された数値を乱数として取得する機能も有する(以下、この機能をソフトウェア乱数機能という)。
CPU41aは、I/Oポート41dを介して演出制御基板90に、各種のコマンドを送信する。遊技制御基板40から演出制御基板90へ送信されるコマンドは一方向のみで送られ、演出制御基板90から遊技制御基板40へ向けてコマンドが送られることはない。遊技制御基板40から演出制御基板90へ送信されるコマンドの伝送ラインは、ストローブ(INT)信号ライン、データ伝送ライン、グラウンドラインから構成されているとともに、演出中継基板80を介して接続されており、遊技制御基板40と演出制御基板90とが直接接続されない構成とされている。
演出制御基板90には、スロットマシン1の前面扉に配置された液晶表示器51(図1参照)、演出効果LED52、スピーカ53、54、リールLED55、選択スイッチ56、決定スイッチ57等の電気部品が接続されており、これら電気部品は、演出制御基板90に搭載された後述のサブ制御部91による制御に基づいて駆動されるようになっている。
演出制御基板90には、メイン制御部41と同様にCPU91a、ROM91b、RAM91c、I/Oポート91dを備えたマイクロコンピュータにて構成され、演出の制御を行うサブ制御部91、演出制御基板90に接続された液晶表示器51の駆動制御を行う液晶駆動回路92、演出効果LED52、リールLED55の駆動制御を行うランプ駆動回路93、スピーカ53、54からの音声出力制御を行う音声出力回路94、電源投入時またはCPU91aからの初期化命令が入力されないときにCPU91aにリセット信号を与えるリセット回路95、日付情報及び時刻情報を含む時間情報を出力する時計装置96、その他の回路等、が搭載されており、CPU91aは、遊技制御基板40から送信されるコマンドを受けて、演出を行うための各種の制御を行うとともに、演出制御基板90に搭載された制御回路の各部を直接的または間接的に制御する。
CPU91aは、メイン制御部41のCPU41aと同様に、タイマ割込などの割込機能(割込禁止機能を含む)を備える。サブ制御部91の割込端子(図示略)は、コマンド伝送ラインのうち、メイン制御部41がコマンドを送信する際に出力するストローブ(INT)信号線に接続されており、CPU91aは、ストローブ信号の入力に基づいて割込を発生させて、メイン制御部41からのコマンドを取得し、バッファに格納するコマンド受信割込処理を実行する。また、CPU91aは、クロック入力数が一定数に到達する毎、すなわち一定間隔毎に割込を発生させて後述するタイマ割込処理(サブ)を実行する。また、CPU91aにおいても未使用の割込が発生した場合には、もとの処理に即時復帰させる未使用割込処理を実行するようになっている。
また、CPU91aは、CPU41aとは異なり、ストローブ信号(INT)の入力に基づいて割込が発生した場合には、他の割込に基づく割込処理の実行中であっても、当該処理に割り込んでコマンド受信割込処理を実行し、他の割込が同時に発生してもコマンド受信割込処理を最優先で実行するようになっている。
また、サブ制御部91にも、停電時においてバックアップ電源が供給されており、バックアップ電源が供給されている間は、CPU91aによりリフレッシュ動作が行われてRAM91cに記憶されているデータが保持されるようになっている。
本実施例のスロットマシン1は、設定値に応じてメダルの払出率が変わるものであり、後述する内部抽選の当選確率は、設定値に応じて定まるものとなる。以下、設定値の変更操作について説明する。
設定値を変更するためには、設定キースイッチ37をON状態としてからスロットマシン1の電源をONする必要がある。設定キースイッチ37をON状態として電源をONすると、設定値表示器24に設定値の初期値として1が表示され、リセット/設定スイッチ38の操作による設定値の変更操作が可能な設定変更モードに移行する。設定変更モードにおいて、リセット/設定スイッチ38が操作されると、設定値表示器24に表示された設定値が1ずつ更新されていく(設定6から更に操作されたときは、設定1に戻る)。そして、スタートスイッチ7が操作されると設定値が確定し、確定した設定値がメイン制御部41のRAM41cに格納される。そして、設定キースイッチ37がOFFされると、遊技の進行が可能な状態に移行する。
また、設定された設定値を確認する場合には、後述するBET処理中において、賭数の設定が可能な状態(メダル投入が可能な状態を含む)で設定キースイッチ37をONとすると設定値表示器24に設定値が表示され、その時点で設定されている設定値を確認することが可能な設定値確認モードに移行する。そして、設定キースイッチ37がOFFされると、遊技の進行が可能な状態に移行する。
本実施例のスロットマシン1においては、メイン制御部41のCPU41aが電圧低下信号を検出した際に、電断割込処理を実行する。電断割込処理では、レジスタを後述するRAM41cのスタックに退避し、メイン制御部41のRAM41cにいずれかのビットが1となる破壊診断用データ(本実施例では、5AH)、すなわち0以外の特定のデータを格納するとともに、RAM41cの全ての領域に格納されたデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、RAM41cに格納する処理を行うようになっている。尚、RAMパリティとはRAM41cの該当する領域(本実施例では、全ての領域)の各ビットに格納されている値の排他的論理和として算出される値である。このため、RAM41cの全ての領域に格納されたデータに基づくRAMパリティが0であれば、RAMパリティ調整用データは0となり、RAM41cの全ての領域に格納されたデータに基づくRAMパリティが1であれば、RAMパリティ調整用データは1となる。
そして、CPU41aは、その起動時においてRAM41cの全ての領域に格納されたデータに基づいてRAMパリティを計算するとともに、破壊診断用データの値を確認し、RAMパリティが0であり、かつ破壊診断用データの値も正しいことを条件に、RAM41cに記憶されているデータに基づいてCPU41aの処理状態を電断前の状態に復帰させるが、RAMパリティが0でない場合(1の場合)や破壊診断用データの値が正しくない場合には、RAM異常と判定し、RAM異常エラーコードをレジスタにセットしてRAM異常エラー状態に制御し、遊技の進行を不能化させるようになっている。尚、RAM異常エラー状態は、他のエラー状態と異なり、リセットスイッチ23やリセット/設定スイッチ38を操作しても解除されないようになっており、前述した設定変更モードにおいて新たな設定値が設定されるまで解除されることがない。
また、CPU41aは、後述する内部抽選処理において設定された賭数が遊技状態に応じた賭数であるか否かを判定するとともに、内部抽選に用いる設定値が適正な値であるか否かを判定する。
そして、設定された賭数が遊技状態に応じた賭数ではない場合、または内部抽選に用いる設定値が適正な値でない場合にも、RAM異常と判定し、RAM異常エラーコードをセットしてRAM異常エラー状態に制御し、遊技の進行を不能化させるようになっている。尚、前述のようにRAM異常エラー状態は、他のエラー状態と異なり、リセットスイッチ23やリセット/設定スイッチ38を操作しても解除されないようになっており、前述した設定変更モードにおいて新たな設定値が設定されるまで解除されることがない。
本実施例のスロットマシン1は、前述のように遊技状態に応じて設定可能な賭数の規定数が定められており、遊技状態に応じて定められた規定数の賭数が設定されたことを条件にゲームを開始させることが可能となる。本実施例では、遊技状態として、レギュラーボーナス、通常遊技状態があり、このうちレギュラーボーナスに対応する賭数の規定数として1が定められており、通常遊技状態に対応する賭数の規定数として3が定められている。このため、遊技状態がレギュラーボーナスにあるときには、賭数として1が設定されるとゲームを開始させることが可能となり、遊技状態が通常遊技状態にあるときには、賭数として3が設定されるとゲームを開始させることが可能となる。尚、本実施例では、遊技状態に応じた規定数の賭数が設定された時点で、全ての入賞ラインL1〜L5が有効化されるようになっており、遊技状態に応じた規定数が1であれば、賭数として1が設定された時点で全ての入賞ラインL1〜L5が有効化され、遊技状態に応じた規定数が3であれば、賭数として3が設定された時点で全ての入賞ラインL1〜L5が有効化されることとなる。
本実施例のスロットマシン1は、全てのリール2L、2C、2Rが停止した際に、有効化された入賞ライン(本実施例の場合、常に全ての入賞ラインが有効化されるため、以下では、有効化された入賞ラインを単に入賞ラインと呼ぶ)上に役と呼ばれる図柄の組み合わせが揃うと入賞となる。入賞となる役の種類は、遊技状態に応じて定められているが、大きく分けて、メダルの払い出しを伴う小役と、賭数の設定を必要とせずに次のゲームを開始可能となる再遊技役と、遊技状態の移行を伴う特別役と、がある。以下では、小役と再遊技役をまとめて一般役とも呼ぶ。遊技状態に応じて定められた各役の入賞が発生するためには、後述する内部抽選に当選して、当該役の当選フラグがRAM41cに設定されている必要がある。
尚、これら各役の当選フラグのうち、小役及び再遊技役の当選フラグは、当該フラグが設定されたゲームにおいてのみ有効とされ、次のゲームでは無効となるが、特別役の当選フラグは、当該フラグにより許容された役の組み合わせが揃うまで有効とされ、許容された役の組み合わせが揃ったゲームにおいて無効となる。すなわち特別役の当選フラグが一度当選すると、例え、当該フラグにより許容された役の組み合わせを揃えることができなかった場合にも、その当選フラグは無効とされずに、次のゲームへ持ち越されることとなる。
図4(a)は、当選役テーブルを示す図である。当選役テーブルは、メイン制御部41のROM41bに予め格納されており、内部抽選において抽選対象となる役及び役の組み合わせに対応して、抽選が行われる順番に割り当てられた役番号(1〜14)が登録されている。
このスロットマシン1における役としては、特別役としてビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナスが、小役としてチェリー、1枚(1)、1枚(2)、ベルが、再遊技役としてリプレイが定められている。また、スロットマシン1における役の組み合わせとしては、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(1)+1枚(1)、ビッグボーナス(2)+1枚(1)、ビッグボーナス(1)+1枚(2)、ビッグボーナス(2)+1枚(2)が定められている。すなわち、役及び役の組み合わせの合計は14となっている。
本実施例のスロットマシン1においては、図4(a)に示すように、遊技状態が、通常遊技状態であるか、レギュラーボーナスであるか、によって抽選の対象となる役及び役の組み合わせが異なる。更に遊技状態が通常遊技状態である場合には、いずれかの特別役の持ち越し中か否か(特別役の当選フラグにいずれかの特別役が当選した旨が既に設定されているか否か)によっても抽選の対象となる役及び役の組み合わせが異なる。本実施例では、遊技状態に応じた状態番号が割り当てられており、内部抽選を行う際に、現在の遊技状態に応じた状態番号を設定し、この状態番号に応じて抽選対象となる役を特定することが可能となる。具体的には、通常遊技状態においていずれの特別役も持ち越されていない場合には、状態番号として「0」が設定され、通常遊技状態においていずれかの特別役が持ち越されている場合には、状態番号として「1」が設定され、レギュラーボーナスである場合には、状態番号として「2」が設定されるようになっている。
図4(a)に示すように、遊技状態が通常遊技状態であり、いずれの特別役も持ち越されていない状態、すなわち状態番号として「0」が設定されている場合には、ビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナス、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(1)+1枚(1)、ビッグボーナス(2)+1枚(1)、ビッグボーナス(1)+1枚(2)、ビッグボーナス(2)+1枚(2)、リプレイ、チェリー、1枚(1)、1枚(2)、ベル、すなわち全ての役及び役の組み合わせが内部抽選の対象となる。また、遊技状態が通常遊技状態であり、いずれかの特別役が持ち越されている状態、すなわち状態番号として「1」が設定されている場合には、リプレイ、チェリー、1枚(1)、1枚(2)、ベル、すなわち役番号10以降の役及び役の組み合わせが内部抽選の対象となる。また、遊技状態がレギュラーボーナス、すなわち状態番号として「3」が設定されている場合には、チェリー、1枚(1)、1枚(2)、ベル、すなわち役番号11以降の役及び役の組み合わせが内部抽選の対象となる。
チェリーは、いずれの遊技状態においても左リールについて入賞ラインのいずれかに「チェリー」の図柄が導出されたときに入賞となり、通常遊技状態においては2枚のメダルが払い出され、レギュラーボーナスにおいては15枚のメダルが払い出される。尚、「チェリー」の図柄が左リールの上段または下段に停止した場合には、入賞ラインL2、L4または入賞ラインL3、L5の2本の入賞ラインにチェリーの組み合わせが揃うこととなり、2本の入賞ライン上でチェリーに入賞したこととなるので、通常遊技状態においては4枚のメダルが払い出されることとなるが、レギュラーボーナスでは、2本の入賞ライン上でチェリーに入賞しても、1ゲームにおいて払い出されるメダル枚数の上限が15枚に設定されているため、15枚のみメダルが払い出されることとなる。1枚(1)は、いずれの遊技状態においても入賞ラインのいずれかに「青7−赤7−スイカ」の組み合わせが揃ったときに入賞となり、通常遊技状態においては1枚のメダルが払い出され、レギュラーボーナスにおいては15枚のメダルが払い出される。1枚(2)は、いずれの遊技状態においても入賞ラインのいずれかに「赤7−青7−スイカ」の組み合わせが揃ったときに入賞となり、通常遊技状態においては1枚のメダルが払い出され、レギュラーボーナスにおいては15枚のメダルが払い出される。ベルは、いずれの遊技状態においても入賞ラインのいずれかに「ベル−ベル−ベル」の組み合わせが揃ったときに入賞となり、通常遊技状態においては8枚のメダルが払い出され、レギュラーボーナスにおいては15枚のメダルが払い出される。
リプレイは、通常遊技状態において入賞ラインのいずれかに「リプレイ−リプレイ−リプレイ」の組み合わせが揃ったときに入賞となるが、レギュラーボーナスでは、この組み合わせが揃ったとしてもリプレイ入賞とならない。リプレイ入賞したときには、メダルの払い出しはないが次のゲームを改めて賭数を設定することなく開始できるので、次のゲームで設定不要となった賭数(レギュラーボーナスではリプレイ入賞しないので必ず3)に対応した3枚のメダルが払い出されるのと実質的には同じこととなる。
レギュラーボーナスは、通常遊技状態において入賞ラインのいずれかに「赤7−赤7−BAR」の組み合わせが揃ったときに入賞となる。レギュラーボーナス入賞すると、遊技状態が通常遊技状態からレギュラーボーナスに移行する。レギュラーボーナスは、12ゲームを消化したとき、または8ゲーム入賞(役の種類は、いずれでも可)したとき、のいずれか早いほうで終了する。遊技状態がレギュラーボーナスにある間は、レギュラーボーナス中フラグがRAM41cに設定される。
ビッグボーナスは、通常遊技状態において入賞ラインのいずれかに「赤7−赤7−赤7」の組み合わせ、または「青7−青7−青7」の組み合わせが揃ったときに入賞となる。ビッグボーナス入賞すると、遊技状態がビッグボーナスに移行する。ビッグボーナスに移行すると、ビッグボーナスへの移行と同時にレギュラーボーナスに移行し、レギュラーボーナスが終了した際に、ビッグボーナスが終了していなければ、再度レギュラーボーナスに移行し、ビッグボーナスが終了するまで繰り返しレギュラーボーナスに制御される。すなわちビッグボーナス中は、常にレギュラーボーナスに制御されることとなる。そして、ビッグボーナスは、当該ビッグボーナス中において遊技者に払い出したメダルの総数が466枚に達したときに終了する。この際、レギュラーボーナスの終了条件が成立しているか否かに関わらずレギュラーボーナスも終了する。遊技状態がビッグボーナスにある間は、ビッグボーナス中フラグがRAM41cに設定される。
尚、「赤7−赤7−赤7」によるビッグボーナス及び「青7−青7−青7」によるビッグボーナスを区別する必要がある場合には、それぞれビッグボーナス(1)、ビッグボーナス(2)と呼ぶものとする。また、前述したレギュラーボーナス、ビッグボーナス(1)及びビッグボーナス(2)をまとめて、単に「ボーナス」と呼ぶ場合があるものとする。
以下、本実施例の内部抽選について説明する。内部抽選は、上記した各役への入賞を許容するか否かを、全てのリール2L、2C、2Rの表示結果が導出表示される以前に(実際には、スタートスイッチ7の検出時)決定するものである。内部抽選では、まず、後述するように内部抽選用の乱数(0〜16383の整数)が取得される。そして、遊技状態に応じて定められた各役及び役の組み合わせについて、取得した内部抽選用の乱数と、遊技状態及び設定値に応じて定められた各役及び役の組み合わせの判定値数に応じて行われる。本実施例においては、各役及び役の組み合わせの判定値数から、一般役、特別役がそれぞれ単独で当選する判定値の範囲と、一般役及び特別役が重複して当選する判定値の範囲と、が特定されるようになっており、内部抽選における当選は、排他的なものではなく、1ゲームにおいて一般役と特別役とが同時に当選することがあり得る。
遊技状態に応じて定められた各役及び役の組み合わせの参照は、図4(a)に示した当選役テーブルに登録された役番号の順番で行われる。
遊技状態が通常遊技状態であり、いずれの特別役も持ち越されていない状態、すなわち状態番号として「0」が設定されている場合には、当選役テーブルを参照し、役番号1〜14の役及び役の組み合わせ、すなわちビッグボーナス(1)[役番号1]、ビッグボーナス(2)[役番号2]、レギュラーボーナス[役番号3]、ビッグボーナス(1)+チェリー[役番号4]、ビッグボーナス(2)+チェリー[役番号5]、ビッグボーナス(1)+1枚(1)[役番号6]、ビッグボーナス(2)+1枚(1)[役番号7]、ビッグボーナス(1)+1枚(2)[役番号8]、ビッグボーナス(2)+1枚(2)[役番号9]、リプレイ[役番号10]、チェリー[役番号11]、1枚(1)[役番号12]、1枚(2)[役番号13]、ベル[役番号14]が内部抽選の対象役として順に読み出される。
また、遊技状態が通常遊技状態であり、いずれかの特別役が持ち越されている状態、すなわち状態番号として「1」が設定されている場合には、当選役テーブルを参照し、役番号10〜14の役及び役の組み合わせ、すなわちリプレイ[役番号10]、チェリー[役番号11]、1枚(1)[役番号12]、1枚(2)[役番号13]、ベル[役番号14]が内部抽選の対象役として順に読み出される。
また、遊技状態がレギュラーボーナス、すなわち状態番号として「2」が設定されている場合には、当選役テーブルを参照し、役番号11〜14の役及び役の組み合わせ、すなわちチェリー[役番号11]、1枚(1)[役番号12]、1枚(2)[役番号13]、ベル[役番号14]が内部抽選の対象役として順に読み出される。
内部抽選では、内部抽選の対象となる役または役の組み合わせについて定められた判定値数を、内部抽選用の乱数に順次加算し、加算の結果がオーバーフローしたときに、当該役または役の組み合わせに当選したものと判定される。
そして、いずれかの役または役の組み合わせの当選が判定された場合には、当選が判定された役または役の組み合わせに対応する当選フラグをRAM41cに割り当てられた特別役格納ワーク及び一般役格納ワークに設定する。詳しくは、役番号1〜3のいずれかの役(特別役)が当選した場合には、当該特別役が当選した旨を示す特別役の当選フラグを特別役格納ワークに設定し、一般役格納ワークに設定されている当選フラグをクリアする。また、役番号4〜9のいずれかの役(特別役+一般役)が当選した場合には、当該特別役が当選した旨を示す特別役の当選フラグを特別役格納ワークに設定し、当該一般役が当選した旨を示す一般役の当選フラグを一般役格納ワークに設定する。また、役番号10〜14のいずれかの役(一般役)が当選した場合には、当該一般役が当選した旨を示す一般役の当選フラグを一般役格納ワークに設定する。尚、いずれの役及び役の組み合わせにも当選しなかった場合には、一般役格納ワークのみクリアする。
各役及び役の組み合わせの判定値数は、メイン制御部41のROM41bに予め格納された役別テーブルに登録されている判定値数の格納アドレスに従って読み出されるものとなる。
図4(b)は、役別テーブルの例を示す図である。判定値数は、その値が256以上のものとなるものもあり、1バイト分では記憶できないので、判定値数毎に2バイト分の記憶領域を用いて登録されるものとなる。また、判定値数は、前述した遊技状態を特定可能な状態番号に対応して登録されている。同一の役または同一の役の組み合わせであっても、遊技状態に応じて当選確率が異なっている場合があるからである。また、それぞれの判定値数は、設定値に関わらずに共通になっているものと、設定値に応じて異なっているものとがある。判定値数が設定値に関わらずに共通である場合には、共通フラグが設定される(値が「1」とされる)。
役別テーブルには、図4(b)に示すように、ビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナス、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(1)+1枚(1)、ビッグボーナス(2)+1枚(1)、ビッグボーナス(1)+1枚(2)、ビッグボーナス(2)+1枚(2)、リプレイ、チェリー、1枚(1)、1枚(2)、ベルの判定値数の格納アドレスが登録されている。
ビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナス、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(1)+1枚(1)、ビッグボーナス(2)+1枚(1)、ビッグボーナス(1)+1枚(2)、ビッグボーナス(2)+1枚(2)は、通常遊技状態においていずれの特別役も持ち越されていない場合に内部抽選の対象となる役であり、状態番号0に対応する判定値数の格納アドレスが登録されている。ビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナスについては、共通フラグが0となっており、設定値に応じて個別に判定値数の格納アドレスが登録されている。ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(1)+1枚(1)、ビッグボーナス(2)+1枚(1)、ビッグボーナス(1)+1枚(2)、ビッグボーナス(2)+1枚(2)については、共通フラグが1となっており、設定値に関わらず共通の判定値数の格納アドレスが登録されている。
リプレイは、通常遊技状態において特別役が持ち越されているか否かに関わらず内部抽選の対象となる役であり、状態番号0、1に対応する判定値数の格納アドレスが登録されている。この役の共通フラグは1であり、設定値に関わらず共通の判定値数の格納アドレスが登録されている。
チェリー、1枚(1)、2枚(2)は、いずれの遊技状態においても内部抽選の対象となる役であり、状態番号0、1に対応する判定値数の格納アドレスと、状態番号2に対応する判定値数の格納アドレスと、がそれぞれ登録されている。この役の共通フラグは1であり、設定値に関わらず共通の判定値数の格納アドレスが登録されている。
ベルは、いずれの遊技状態においても内部抽選の対象となる役であり、状態番号0、1に対応する判定値数の格納アドレスと、状態番号2に対応する判定値数の格納アドレスと、がそれぞれ登録されている。この役の共通フラグは0であり、設定値に応じて個別に判定値数の格納アドレスが登録されている。
また、役別テーブルには、各役に入賞したときに払い出されるメダルの払出枚数も登録されている。もっとも、入賞したときにメダルの払い出し対象となる役は、小役であるチェリー、1枚(1)、1枚(2)、ベルだけである。これら小役は、いずれの遊技状態においても入賞が発生可能であるが、状態番号が2であるとき、すなわち遊技状態がレギュラーボーナスにあるときには、状態番号が0、1であるとき、すなわち遊技状態が通常遊技状態にあるときよりも多いメダルが払い出されるものとなる。また、左リールの上段または下段に「チェリー」が停止した場合には、前述のように2本の入賞ラインにチェリーの組み合わせが揃ったこととなるため、それぞれの払出枚数の合計枚数が払い出されることとなる。本実施例では、通常遊技状態においてチェリーの払出枚数が2枚であるため、4枚のメダルが払い出される。レギュラーボーナスでは、チェリーの払出枚数が15枚であるが、合計枚数が上限である15枚を超えるため、この場合には15枚のメダルが払い出される。
ビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナスの入賞は、遊技状態の移行を伴うものであり、メダルの払い出し対象とはならない。リプレイでは、メダルの払い出しを伴わないが、次のゲーム(必ず通常遊技状態)で賭数の設定に用いるメダルの投入が不要となるので実質的には3枚の払い出しと変わらない。
図5は、役別テーブルに登録されたアドレスに基づいて取得される判定値数の記憶領域を示す図である。この判定値数の記憶領域は、開発用の機種ではメイン制御部41のRAM41cに、量産機種ではメイン制御部41のROM41bに割り当てられたアドレス領域に設けられている。
例えばアドレスADDは、状態番号0の遊技状態、すなわち通常遊技状態でいずれの特別役も持ち越されていない状態において、内部抽選の対象役がビッグボーナス(1)であって設定値が1のときに参照されるアドレスであり、このときには、ここに格納された値である15が判定値数として取得される。アドレスADD+2、ADD+4、ADD+6、ADD+8、ADD+10は、状態番号0の遊技状態において、それぞれ内部抽選の対象役がビッグボーナス(1)であって設定値が2〜6のときに参照されるアドレスである。アドレスADD+12、ADD+14、ADD+16、ADD+18、ADD+20、ADD+22は、状態番号0の遊技状態において、それぞれ内部抽選の対象役がビッグボーナス(2)であって設定値が1〜6のときに参照されるアドレスである。アドレスADD+24、ADD+26、ADD+28、ADD+30、ADD+32、ADD+34は、状態番号0の遊技状態において、それぞれ内部抽選の対象役がレギュラーボーナスであって設定値が1〜6のときに参照されるアドレスである。
これら状態番号0の遊技状態、すなわち通常遊技状態においていずれの特別役も持ち越されていない状態におけるビッグボーナス(1)、ビッグボーナス(2)については、設定値に応じて個別に判定値数が記憶され、しかも異なる判定値数が記憶されているので、設定値に応じてこれらの役及び役の組み合わせの当選確率が異なることとなる。
一方、これら状態番号0の遊技状態、すなわち通常遊技状態においていずれの特別役も持ち越されていない状態におけるレギュラーボーナスについては、設定値に応じて個別に判定値数が記憶されているが、同一の判定値数が記憶されているので、いずれの設定値においてもレギュラーボーナスの当選確率は同じとなっている。
また、アドレスADD+36は、状態番号0の遊技状態、すなわち通常遊技状態でいずれの特別役も持ち越されていない状態において、内部抽選の対象役がビッグボーナス(1)+チェリーであるときに設定値に関わらずに参照されるアドレスであり、アドレスADD+38は、状態番号0の遊技状態、すなわち通常遊技状態でいずれの特別役も持ち越されていない状態において、内部抽選の対象役がビッグボーナス(2)+チェリーであるときに設定値に関わらずに参照されるアドレスであり、アドレスADD+40は、状態番号0の遊技状態、すなわち通常遊技状態でいずれの特別役も持ち越されていない状態において、内部抽選の対象役がビッグボーナス(1)+1枚(1)であるときに設定値に関わらずに参照されるアドレスであり、アドレスADD+42は、状態番号0の遊技状態、すなわち通常遊技状態でいずれの特別役も持ち越されていない状態において、内部抽選の対象役がビッグボーナス(2)+1枚(1)であるときに設定値に関わらずに参照されるアドレスであり、アドレスADD+44は、状態番号0の遊技状態、すなわち通常遊技状態でいずれの特別役も持ち越されていない状態において、内部抽選の対象役がビッグボーナス(1)+1枚(2)あるときに設定値に関わらずに参照されるアドレスであり、アドレスADD+46は、状態番号0、すなわち通常遊技状態でいずれの特別役も持ち越されていない状態の遊技状態において、内部抽選の対象役がビッグボーナス(2)+1枚(2)であるときに設定値に関わらずに参照されるアドレスである。
アドレスADD+48は、状態番号0及び状態番号1のとき、すなわち通常遊技状態において、内部抽選の対象役がリプレイであるときに設定値に関わらずに参照されるアドレスである。
アドレスADD+50は、状態番号0及び状態番号1のとき、すなわち通常遊技状態において、内部抽選の対象役がチェリーであるときに設定値に関わらずに参照されるアドレスである。アドレスADD+52は、状態番号2のとき、すなわちレギュラーボーナスにおいて、内部抽選の対象役がチェリーであるときに設定値に関わらずに参照されるアドレスである。
アドレスADD+54は、状態番号0及び状態番号1のとき、すなわち通常遊技状態において、内部抽選の対象役が1枚(1)であるときに設定値に関わらずに参照されるアドレスである。アドレスADD+56は、状態番号2のとき、すなわちレギュラーボーナスにおいて、内部抽選の対象役が1枚(1)であるときに設定値に関わらずに参照されるアドレスである。
アドレスADD+58は、状態番号0及び状態番号1のとき、すなわち通常遊技状態において、内部抽選の対象役が1枚(2)であるときに設定値に関わらずに参照されるアドレスである。アドレスADD+60は、状態番号2のとき、すなわちレギュラーボーナスにおいて、内部抽選の対象役が1枚(2)であるときに設定値に関わらずに参照されるアドレスである。
アドレスADD+62、ADD+64、ADD+66、ADD+68、ADD+70、ADD+72は、状態番号0及び状態番号1の遊技状態、すなわち通常遊技状態において、それぞれ内部抽選の対象役がベルであって設定値が1〜6のときに参照されるアドレスである。アドレスADD+74、ADD+76、ADD+78、ADD+80、ADD+82、ADD+84は、状態番号2の遊技状態、すなわちレギュラーボーナスにおいて、それぞれ内部抽選の対象役がベルであって設定値が1〜6のときに参照されるアドレスである。この遊技状態2の遊技状態におけるベルについては、設定値に応じて個別に判定値数が記憶されているが、設定値1と2の判定値数、3と4の判定値数、5と6の判定値数にはそれぞれ共通の判定値数が記憶されているので、設定値1と2の当選確率、3と4の当選確率、5と6の当選確率はそれぞれ共通となる。
図6(a)〜(c)は、内部抽選用の乱数の値と各役及び役の組み合わせの判定値数と、当選との関係の例を示す図である。図6(a)では通常遊技状態においていずれの特別役も持ち越されていないときの、図6(b)では通常遊技状態においていずれかの特別役が持ち越されているときの、図6(c)ではレギュラーボーナスにあるときの例をそれぞれ示している。図6(a)〜(c)のいずれも、設定値が6の場合の例を示している。
例えば、図6(a)に示すように、通常遊技状態においていずれの特別役も持ち越されていない場合には、ビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナス、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(1)+1枚(1)、ビッグボーナス(2)+1枚(1)、ビッグボーナス(1)+1枚(2)、ビッグボーナス(2)+1枚(2)、リプレイ、チェリー、1枚(1)、1枚(2)、ベルが内部抽選の対象となり、設定値6において、各役のそれぞれの判定値数は、20、20、31、10、10、5、5、5、5、2245、96、163、163、2082となる。最初に内部抽選の対象となるビッグボーナス(1)は、判定値数の20を加算することで加算結果がオーバーフローすることとなる16364〜16383が内部抽選用の乱数として取得されたときに当選となる。
次に内部抽選の対象役となるビッグボーナス(2)は、ビッグボーナス(1)の判定値数20とビッグボーナス(2)の判定値数20とを合計した40を加算することで加算結果がオーバーフローすることとなる16344〜16363が内部抽選用の乱数として取得されたときに当選となる。同様に、レギュラーボーナスは、16313〜16343が内部抽選用の乱数として取得されたときに、ビッグボーナス(1)+チェリーは、16303〜16312が内部抽選用の乱数として取得されたときに、ビッグボーナス(2)+チェリーは、16293〜16302が内部抽選用の乱数として取得されたときに、ビッグボーナス(1)+1枚(1)は、16288〜16292が内部抽選用の乱数として取得されたときに、ビッグボーナス(2)+1枚(1)は、16283〜16287が内部抽選用の乱数として取得されたときに、ビッグボーナス(1)+1枚(2)は、16278〜16282が内部抽選用の乱数として取得されたときに、ビッグボーナス(2)+1枚(2)は、16273〜16277が内部抽選用の乱数として取得されたときに、リプレイは、14028〜16272が内部抽選用の乱数として取得されたときに、チェリーは、13932〜14027が内部抽選用の乱数として取得されたときに、1枚(1)は、13769〜13931が内部抽選用の乱数として取得されたときに、1枚(2)は、13606〜13768が内部抽選用の乱数として取得されたときに、ベルは、11524〜13605が内部抽選用の乱数として取得されたときに、それぞれ当選と判定される。尚、0〜11523が内部抽選用の乱数として取得されたときには、全ての役にハズレとなる。
これらの判定値数に基づいて算出される各役及び役の組み合わせのおおよその当選確率は、ビッグボーナス(1)、ビッグボーナス(2)、レギュラーボーナス、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(1)+1枚(1)、ビッグボーナス(2)+1枚(1)、ビッグボーナス(1)+1枚(2)、ビッグボーナス(2)+1枚(2)、リプレイ、チェリー、1枚(1)、1枚(2)、ベルのそれぞれについて、1/819.2、1/819.2、1/528.5、1/1638、1/1638、1/3277、1/3277、1/3277、1/3277、1/7.3、1/170.7、1/100.5、1/100.5、1/7.87となる。
また、図6(b)に示すように、通常遊技状態においていずれかの特別役が持ち越されている場合には、リプレイ、チェリー、1枚(1)、1枚(2)、ベルのみが内部抽選の対象となり、設定値6においては、各役のそれぞれの判定値数が2245、96、163、163、2082となるので、14139〜16383、14043〜14138、13880〜14042、13717〜13789、11635〜13716が内部抽選用の乱数として取得されたときに、それぞれ当選と判定される。また、それぞれの役のおおよその当選確率は、1/7.3、1/170.7、1/100.5、1/100.5、1/7.87となる。尚、0〜11634が内部抽選用の乱数として取得されたときには、全ての役にハズレとなる。
また、図6(c)に示すように、レギュラーボーナスでは、チェリー、1枚(1)、1枚(2)、ベルのみが内部抽選の対象となり、設定値6においては、各役のそれぞれの判定値数が96、163、163、15919となるので、16288〜16383、16125〜16287、15962〜16124、43〜15961が内部抽選用の乱数として取得されたときに、それぞれ当選と判定される。また、それぞれの役のおおよその当選確率は、1/7.1、1/128となる。尚、0〜55823が内部抽選用の乱数として取得されたときには、全ての役にハズレとなる。
次に、リール2L、2C、2Rの停止制御について説明する。
CPU41aは、リールの回転が開始したとき及び、リールが停止し、かつ未だ回転中のリールが残っているときに、ROM41bに格納されているテーブルインデックス及びテーブル作成用データを参照して、回転中のリール別に停止制御テーブルを作成する。そして、ストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作が有効に検出されたときに、該当するリールの停止制御テーブルを参照し、参照した停止制御テーブルの引込コマ数に基づいて、操作されたストップスイッチ8L、8C、8Rに対応するリール2L、2C、2Rの回転を停止させる制御を行う。
テーブルインデックスには、図7に示すように、内部抽選による当選フラグの設定状態(以下、内部当選状態と呼ぶ)別に、テーブルインデックスを参照する際の基準アドレス(table_index)から、テーブル作成用データが格納された領域の先頭アドレスを示すインデックスデータが格納されているアドレスまでの差分が登録されている。これにより内部当選状態に応じた差分を取得し、基準アドレス(table_index)に対してその差分を加算することで該当するインデックスデータを取得することが可能となる。
具体的には、ハズレ、チェリー、1枚(1)、1枚(2)、ベル、リプレイ、ビッグボーナス(1)(+ハズレ)、ビッグボーナス(1)+チェリー、ビッグボーナス(1)+1枚(1)、ビッグボーナス(1)+1枚(2)、ビッグボーナス(1)+ベル、ビッグボーナス(1)+リプレイ、ビッグボーナス(2)(+ハズレ)、ビッグボーナス(2)+チェリー、ビッグボーナス(2)+1枚(1)、ビッグボーナス(2)+1枚(2)、ビッグボーナス(2)+ベル、ビッグボーナス(2)+リプレイ、レギュラーボーナス(+ハズレ)、レギュラーボーナス+チェリー、レギュラーボーナス+1枚(1)、レギュラーボーナス+1枚(2)、レギュラーボーナス+ベル、レギュラーボーナス+リプレイのそれぞれについて、テーブル作成用データが格納された領域の先頭アドレスを示すインデックスデータが格納されている。尚、役の当選状況が異なる場合でも、同一の制御が適用される場合(例えば、ビッグボーナス(1)+リプレイ当選時と、ビッグボーナス(2)+リプレイ当選時と、レギュラーボーナス+リプレイ当選時と、で同一の制御を適用する場合など)においては、インデックスデータとして同一のアドレスが格納されており、このような場合には、同一のテーブル作成用データを参照して、停止制御テーブルが作成されることとなる。
テーブル作成用データは、停止操作位置に応じた引込コマ数を示す引込コマ数データと、リールの停止状況に応じて参照すべき引込コマ数データのアドレスと、からなる。
リールの停止状況に応じて参照される引込コマ数データは、全てのリールが回転しているか、左リールのみ停止しているか、中リールのみ停止しているか、右リールのみ停止しているか、左、中リールが停止しているか、左、右リールが停止しているか、中、右リールが停止しているか、によって異なる場合があり、更に、いずれかのリールが停止している状況においては、停止済みのリールの停止位置によっても異なる場合があるので、それぞれの状況について、参照すべき引込コマ数データのアドレスが回転中のリール別に登録されており、テーブル作成用データの先頭アドレスに基づいて、それぞれの状況に応じて参照すべき引込コマ数データのアドレスが特定可能とされ、この特定されたアドレスから、それぞれの状況に応じて必要な引込コマ数データを特定できるようになっている。尚、リールの停止状況や停止済みのリールの停止位置が異なる場合でも、同一の引込コマ数データが適用される場合においては、引込コマ数データのアドレスとして同一のアドレスが登録されているものもあり、このような場合には、同一の引込コマ数データが参照されることとなる。
引込コマ数データは、停止操作が行われたタイミング別の引込コマ数を特定可能なデータである。本実施例では、リールモータ32L、32C、32Rに、168ステップ(0〜167)の周期で1周するステッピングモータを用いている。すなわちリールモータ32L、32C、32Rを168ステップ駆動させることでリール2L、2C、2Rが1周することとなる。そして、特に図示はしないが、リール1周に対して8ステップ(1図柄が移動するステップ数)毎に分割した21の領域(コマ)が定められており、これらの領域には、リール基準位置から1〜21の領域番号が割り当てられている。一方、1リールに配列された図柄数も21であり、各リールの図柄に対して、リール基準位置から1〜21の図柄番号が割り当てられているので、1番図柄から21番図柄に対して、それぞれ1〜21の領域番号が順に割り当てられていることとなる。そして、引込コマ数データには、領域番号別の引込コマ数が所定のルールで圧縮して格納されており、引込コマ数データを展開することによって領域番号別の引込コマ数を取得できるようになっている。
次に、メイン制御部41のRAM41cの初期化について説明する。メイン制御部41のRAM41cは、512バイトの格納領域を有しており、図8に示すように、各バイト毎に7E00(H)〜7FFF(H)のアドレスが割り当てられているとともに、重要ワーク、一般ワーク、特別ワーク、設定値ワーク、非保存ワーク、未使用領域、スタック領域に区分されている。
重要ワークは、7E00(H)〜7E27(H)の40バイトの領域であり、各種表示器やLEDの表示用データ、I/Oポート41dの入出力データ、遊技時間の計時カウンタ等、ビッグボーナス終了時に初期化すると不都合があるデータが格納されるワークである。
一般ワークは、7E28(H)〜7E8E(H)、7EBA(H)〜7F04(H)の178バイトの領域であり、停止図柄データ、メダルの払出枚数、役の当選フラグ、ビッグボーナス中のメダル払出総数等、ビッグボーナス終了時に初期化可能なデータが格納されるワークである。
特別ワークは、7E8F(H)〜7EB5(H)の39バイトの領域であり、演出制御基板90へコマンドを送信するためのデータ、各種ソフトウェア乱数等、設定開始前にのみ初期化されるデータが格納されるワークである。
設定値ワークは、7EB6(H)の1バイトの領域であり、設定値が格納されるワークであり、設定開始前(設定変更モードへの移行前)の初期化において0が格納された後、1に補正され、設定終了時(設定変更モードへの終了時)に新たに設定された設定値が格納されることとなる。
非保存ワークは、7EB7(H)〜7EB9(H)の3バイトの領域であり、打止スイッチ36の状態を各種スイッチ類の状態を保持するワークであり、起動時にRAM41cのデータが破壊されているか否かに関わらず必ず値が設定されることとなる。
未使用領域は、7F05(H)〜7FD1(H)の205バイトの領域であり、RAM41cの格納領域のうち使用していない領域であり、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなる。
スタック領域は、7FD2(H)〜7FFF(H)の46バイトの領域であり、このうち7FD2(H)〜スタックポインタ−1の領域は、スタック領域内の使用されていない未使用スタック領域であり、スタックポインタ〜7FFF(H)の領域は、CPU41aのレジスタから退避したデータが格納されている使用中スタック領域である。このうち未使用スタック領域は、未使用領域と同様に、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなるが、使用中スタック領域は、プログラムの続行のため、初期化されることはない。
本実施例においてメイン制御部41のCPU41aは、図9(a)に示すように、設定開始前(設定変更モードへの移行前)、ビッグボーナス終了時、起動時にRAM41cのデータが破壊されていないとき、1ゲーム終了時の4つからなる初期化条件が成立した際に、各初期化条件に応じて初期化される領域の異なる4種類の初期化を行う。
初期化1は、起動時において設定キースイッチ37がONの状態であり、設定変更モードへ移行する場合において、その前に行う初期化であり、初期化1では、RAM41cの格納領域のうち、使用中スタック領域を除く全ての領域(未使用領域及び未使用スタック領域を含む)が初期化される。初期化2は、ビッグボーナス終了時に行う初期化であり、初期化2では、RAM41cの格納領域のうち、一般ワーク、未使用領域及び未使用スタック領域が初期化される。初期化3は、起動時において設定キースイッチ37がOFFの状態であり、かつRAM41cのデータが破壊されていない場合において行う初期化であり、初期化3では、非保存ワーク、未使用領域及び未使用スタック領域が初期化される。初期化4は、1ゲーム終了時に行う初期化であり、初期化4では、RAM41cの格納領域のうち、未使用領域及び未使用スタック領域が初期化される。
ROM41bには、初期化1〜4に対応してそれぞれ初期化する領域の開始アドレスと初期化する領域のサイズを示す初期化サイズとが登録されており、CPU41aがRAM41cの初期化を行う際には、初期化テーブルを参照し、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスと初期化サイズを取得し、開始アドレスにポインタを設定し、初期化サイズを設定する。また、初期化サイズが未使用スタック領域のサイズを含むものであれば、未使用スタック領域のサイズ(スタックポインタ−7FD2(H))を計算し、初期化サイズを設定する。そして、ポインタが設定された初期化アドレスから1バイトづつ該当するアドレスの領域を0クリアし、1バイトクリアする毎に初期化サイズを1減算するとともに、ポインタを1進める処理を、初期化サイズが0になるまで実行する。すなわちCPU41aがRAM41cを初期化する際には、初期化条件に応じた領域毎に初期化するのではなく、指定したアドレスから指定したサイズ分の領域を初期化することとなる。
図9(b)は、初期化テーブルを示す図である。初期化テーブルには、前述のように初期化1〜4に対応して開始アドレス及び初期化サイズが登録されている。
初期化1には、開始アドレスとして7E00(H)、初期化サイズとして1D3(H)+M(未使用スタック領域のサイズ:(スタックポインタ−7FD2))バイトが登録されているので、初期化1では、7E00(H)から1D3(H)+Mバイト分の領域が初期化される。そして、図8に示すように、重要ワーク、一般ワーク、特別ワーク、設定値ワーク、非保存ワーク、一般ワーク、未使用領域、未使用スタック領域は、7E00(H)から連続するアドレス領域に割り当てられており、これらの領域のサイズを合計すると1D3(H)+Mバイトとなるので、初期化1において、7E00(H)から1D3(H)+Mバイト分が初期化されることで、重要ワーク、一般ワーク、特別ワーク、設定値ワーク、非保存ワーク、一般ワーク、未使用領域、未使用スタック領域の順番でこれらの各領域が初期化されることとなる。
初期化2には、2つの開始アドレス及び各アドレス別の初期化サイズが登録されている。これは、初期化2において初期化される一般ワークが離れた2つのアドレス領域に割り当てられているからである。初期化2には、最初に初期化する領域の開始アドレスとして7E28(H)、初期化サイズとして67(H)バイトが登録され、次に初期化する領域の開始アドレスとして7EB7(H)、初期化サイズとして119(H)+Mバイトがそれぞれ登録されているので、初期化2では、7E28(H)から67(H)バイト分の領域及び7EB7(H)から119(H)+Mバイト分の領域が初期化される。そして、7E28(H)〜7E8E(H)の一般ワークのサイズは67(H)バイトとなり、図8に示すように、残りの一般ワークの領域、未使用領域、未使用スタック領域は、7EB7(H)から連続するアドレス領域に割り当てられ、これらの領域のサイズを合計すると119(H)+Mバイトとなるので、初期化2において、7E28(H)から67(H)バイト分が初期化され、7EB7(H)から119(H)+Mバイト分が初期化されることで、一般ワーク、未使用領域、未使用スタック領域の順番でこれらの各領域が初期化されることとなる。
初期化3にも、2つの開始アドレス及び各アドレス別の初期化サイズが登録されている。これは、初期化3において初期化される非保存ワークと未使用領域及び未使用スタック領域とが離れた2つのアドレス領域に割り当てられているからである。初期化3には、最初に初期化する領域の開始アドレスとして7EB7(H)、初期化サイズとして3(H)バイトが登録され、次に初期化する領域の開始アドレスとして7F05(H)、初期化サイズとしてCE(H)+Mバイトがそれぞれ登録されているので、初期化3では、7EB7(H)から3(H)バイト分の領域及び7F05(H)からCE(H)+Mバイト分の領域が初期化される。そして、図8に示すように、非保存ワークは、7EB7(H)から3バイト分の領域であり、未使用領域、未使用スタック領域は、7F05(H)から連続するアドレス領域に割り当てられ、これらの領域のサイズを合計するとCE(H)+Mバイトとなるので、初期化3において、7EB7(H)から3(H)バイト分が初期化され、7F05(H)からCE(H)+Mバイト分が初期化されることで、非保存ワーク、未使用領域、未使用スタック領域の順番でこれらの各領域が初期化されることとなる。
初期化4には、開始アドレスとして7F05(H)、初期化サイズとしてCE(H)+Mバイトが登録されているので、初期化4では、7F05(H)からCE(H)+Mバイト分の領域が初期化される。そして、図8に示すように、未使用領域、未使用スタック領域は、7F05(H)から連続するアドレス領域に割り当てられており、これらの領域のサイズを合計するとCE(H)+Mバイトとなるので、初期化4において、7F05(H)からCE(H)+Mバイト分が初期化されることで、未使用領域、未使用スタック領域の順番でこれらの各領域が初期化されることとなる。
また、初期化1〜4のうち初期化1、3については、CPU41aの起動後、割込が許可される前に行われる処理である。一方、初期化2、4については、割込が許可されている状態で行われる処理であるが、これら初期化2、4の実行中は、割込が禁止されるようになっている。すなわち初期化1〜4の実行中においては常に割込が禁止されるようになっている。
尚、本実施例においてRAM41cの記憶領域を初期化するとは、対象となる領域のデータを0クリアすること、すなわち対象となる領域の値を0に更新することであるが、例えば、対象となる領域のデータを予め定められた初期値に書き換えるようにしても良い。
次に、メイン制御部41のCPU41aが演出制御基板90に対して送信するコマンドについて説明する。
本実施例では、メイン制御部41のCPU41aが演出制御基板90に対して、BETコマンド、内部当選コマンド、リール回転開始コマンド、リール停止コマンド、入賞判定コマンド、払出開始コマンド、払出終了コマンド、遊技状態コマンド、待機コマンド、打止コマンド、エラーコマンド、設定開始コマンド、設定終了コマンド、設定確認開始コマンド、設定確認終了コマンド、初期化コマンドを含む複数種類のコマンドを送信する。
BETコマンドは、メダルの投入枚数、すなわち賭数の設定に使用されたメダル枚数を特定可能なコマンドであり、メダル投入時、1枚BETスイッチ5またはMAXBETスイッチ6が操作されて賭数が設定されたときに送信される。
内部当選コマンドは、内部当選フラグの当選状況、並びに成立した内部当選フラグの種類を特定可能なコマンドであり、スタートスイッチ7が操作されてゲームが開始したときに送信される。
リール回転開始コマンドは、リールの回転の開始を通知するコマンドであり、リール2L、2C、2Rの回転が開始されたときに送信される。
リール停止コマンドは、停止するリールが左リール、中リール、右リールのいずれかであるか、自動停止によるものか否か、該当するリールの停止操作位置の領域番号、該当するリールの停止位置の領域番号、を特定可能なコマンドであり、各リールの停止制御が行われる毎に送信される。
入賞判定コマンドは、入賞の有無、並びに入賞の種類、入賞時のメダルの払出枚数を特定可能なコマンドであり、全リールが停止して入賞判定が行われた後に送信される。
払出開始コマンドは、メダルの払出開始を通知するコマンドであり、入賞やクレジット(賭数の設定に用いられたメダルを含む)の精算によるメダルの払出が開始されたときに送信される。また、払出終了コマンドは、メダルの払出終了を通知するコマンドであり、入賞及びクレジットの精算によるメダルの払出が終了したときに送信される。
遊技状態コマンドは、次ゲームの遊技状態(通常遊技状態であるか、ビッグボーナス中であるか、レギュラーボーナス中であるか、等)を特定可能なコマンドであり、ゲームの終了時に送信される。
待機コマンドは、待機状態へ移行する旨を示すコマンドであり、1ゲーム終了後、賭数が設定されずに一定時間経過して待機状態に移行するときに送信される。
打止コマンドは、打止状態の発生または解除を示すコマンドであり、BB終了後、エンディング演出待ち時間が経過した時点で打止状態の発生を示す打止コマンドが送信され、リセット操作がなされて打止状態が解除された時点で、打止状態の解除を示す打止コマンドが送信される。
エラーコマンドは、エラー状態の発生または解除を示すコマンドであり、エラーが判定され、エラー状態に制御された時点でエラー状態の発生を示すエラーコマンドが送信され、リセット操作がなされてエラー状態が解除された時点で、エラー状態の解除を示すエラーコマンドが送信される。
設定開始コマンドは、設定変更モードの開始を示すコマンドであり、設定開始時、すなわち設定変更モードに移行した時点で送信される。また、設定終了コマンドは、設定変更モードの終了及び設定された設定値等を示すコマンドであり、設定終了時、すなわち設定変更モードが終了した時点で送信される。
尚、設定確認開始コマンドは、設定値確認モードの開始を示すコマンドであり、後述するBET処理における賭数の設定が可能な状態(メダルの投入が可能な状態を含む)において、設定キースイッチ37がONの状態とされたことに基づいて設定値確認モードに移行した時点で送信される。また、設定確認終了コマンドは、設定値確認モードの終了を示すコマンドであり、設定値確認モードにおいて設定キースイッチ37がOFFとされて該設定値確認モードが終了した時点で送信される。
初期化コマンドは、遊技状態が初期化された旨を示すコマンドであり、前述した初期化1の終了時に送信される。
これら各コマンドは、後述する起動処理及びゲーム処理において生成され、RAM41cの特別ワークに設けられたコマンドキューに一時格納され、前述したタイマ割込処理(メイン)において送信される。
次に、メイン制御部41のCPU41aが演出制御基板90に対して送信するコマンドに基づいてサブ制御部91が実行する演出の制御について説明する。
サブ制御部91のCPU91aは、メイン制御部41のCPU41aが送信したコマンドを受信した際に、ROM91bに格納された制御パターンテーブルを参照し、制御パターンテーブルに登録された制御内容に基づいて液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55等の各種演出装置の制御を行う。
制御パターンテーブルには、複数種類の演出パターン毎に、コマンドの種類に対応する液晶表示器51の表示パターン、演出効果LED52の点灯態様、スピーカ53、54の出力態様、リールLEDの点灯態様等、これら演出装置の制御パターンが登録されており、CPU91aは、コマンドを受信した際に、制御パターンテーブルの当該ゲームにおいてRAM91cに設定されている演出パターンに対応して登録された制御パターンのうち、受信したコマンドの種類に対応する制御パターンを参照し、当該制御パターンに基づいて演出装置の制御を行う。これにより演出パターン及び遊技の進行状況に応じた演出が実行されることとなる。
尚、CPU91aは、あるコマンドの受信を契機とする演出の実行中に、新たにコマンドを受信した場合には、実行中の制御パターンに基づく演出を中止し、新たに受信したコマンドに対応する制御パターンに基づく演出を実行するようになっている。すなわち演出が最後まで終了していない状態でも、新たにコマンドを受信すると、実行していた演出はキャンセルされて新たなコマンドに基づく演出が実行されることとなる。
演出パターンは、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じた選択率にて選択され、RAM91cに設定される。演出パターンの選択率は、ROM91bに格納された演出テーブルに登録されており、CPU91aは、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じて演出テーブルに登録されている選択率を参照し、その選択率に応じて複数種類の演出パターンからいずれかの演出パターンを選択し、選択した演出パターンを当該ゲームの演出パターンとしてRAM91cに設定するようになっている。
また、制御パターンテーブルには、特定のコマンド(自動停止を示すリール停止コマンド、入賞の発生を示す入賞判定コマンド、払出開始コマンド、払出終了、ビッグボーナス終了を示す遊技状態コマンド、待機コマンド、打止コマンド、エラーコマンド、設定開始コマンド、設定終了コマンド、設定確認開始コマンド、設定確認終了コマンド、初期化コマンド等)を受信した際に参照される特定の制御パターンが格納されており、CPU91aは、これら特定のコマンドを受信した場合には、当該ゲームにおいて設定されている演出パターンに関わらず、当該コマンドに対応する特定の制御パターンを参照し、当該制御パターンに基づいて演出装置の制御を行う。
入賞の発生を示す入賞判定コマンドを受信した場合には、入賞の種類に応じた入賞時演出を実行するための入賞時演出パターンが制御パターンとして参照される。特に、ビッグボーナス入賞の発生を示す入賞判定コマンドを受信した場合には、ビッグボーナス入賞時に特有のBB入賞時演出を実行するためのBB入賞時パターンが制御パターンとして参照される。
払出開始コマンドを受信した場合には、払出効果音を出力するための払出パターンが制御パターンとして参照される。また、払出効果音の出力中に払出終了コマンドを受信すると、払出効果音の出力を停止する。尚、払出開始コマンドを受信した場合には、他のコマンドと異なり、実行中の演出を中止して受信したコマンドに対応する演出を実行するのではなく、実行中の演出は継続したまま、払出効果音の出力が行われるようになっている。すなわち他の演出と払出に伴う演出が並行して実行されることとなる。
ビッグボーナス終了を示す遊技状態コマンドを受信した場合には、ビッグボーナスの終了を示すエンディング演出を実行するためのエンディングパターンが制御パターンとして参照される。
待機コマンドを受信した場合には、待機演出を実行するための待機パターンが制御パターンとして参照される。
打止状態の発生を示す打止コマンドを受信した場合には、打止状態である旨を報知するための打止報知パターンが制御パターンとして参照される。また、打止状態の解除を示す打止コマンドを受信した場合には、前述した待機パターンが制御パターンとして参照される。すなわち打止状態が解除されると待機演出が実行されることとなる。
エラー状態の発生を示すエラーコマンドを受信した場合には、エラー状態である旨及びその種類を報知するためのエラー報知パターンが制御パターンとして参照される。また、エラー状態の解除を示すエラーコマンドを受信した場合には、エラー発生時に実行していた制御パターンが参照される。すなわちエラー発生時の演出が最初から実行されることとなる。
設定開始コマンドを受信した場合には、設定変更中である旨を報知するための設定中報知パターンが参照される。
設定確認開始コマンドまたは初期化コマンドを受信した場合には、後述する初期化パターンが制御パターンとして参照される。すなわち設定確認開始コマンドまたは初期化コマンドを受信すると、遊技履歴データの初期化が可能となる遊技店設定用モードに移行することとなる。
サブ制御部91のCPU91aは、定期的に実行するタイマ割込処理(サブ)を実行する毎に、RAM91cの全ての領域に格納されたデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、RAM91cに格納する処理を行うようになっている。
そして、CPU91aは、その起動時においてRAM91cの全ての領域に格納されたデータに基づいてRAMパリティを計算し、RAMパリティが0であることを条件に、RAM91cに記憶されているデータに基づいて電断前の演出状態に復帰させるようになっている。具体的には、最後に実行していた制御パターンを参照し、当該制御パターンに基づく制御を実行する。これにより電断前に実行していた制御パターンに基づく演出が最初から実行されることとなる。
次に、本実施例におけるメイン制御部41のCPU41aが実行する各種制御内容を、図10〜図20に基づいて以下に説明する。
CPU41aは、リセット回路49からリセット信号が入力されると、図10のフローチャートに示す起動処理を行う。尚、リセット信号は、電源投入時及びメイン制御部41の動作が停滞した場合に出力される信号であるので、起動処理は、電源投入に伴うCPU41aの起動時及びCPU41aの不具合に伴う再起動時に行われる処理である。
起動処理では、まず、内蔵デバイスや周辺IC、割込モード、スタックポインタ等を初期化した後(Sa1)、入力ポートから電圧低下信号の検出データを取得し、電圧低下信号が入力されているか否か、すなわち電圧が安定しているか否かを判定し(Sa2)、電圧低下信号が入力されている場合には、電圧低下信号が入力されているか否かの判定以外は、いずれの処理も行わないループ処理に移行する。
Sa2のステップにおいて電圧低下信号が入力されていないと判定した場合には、Iレジスタ及びIYレジスタの値を初期化する(Sa3)とともに、打止スイッチ36の状態を取得し、CPU41aの特定のレジスタに打止機能の有効/無効を設定する(Sa4)。Iレジスタ及びIYレジスタの初期化により、Iレジスタには、割込発生時に参照する割込テーブルのアドレスが設定され、IYレジスタには、RAM41cの格納領域を参照する際の基準アドレスが設定される。これらの値は、固定値であり、起動時には常に初期化されることとなる。
次いで、RAM41cへのアクセスを許可し(Sa5)、設定キースイッチ37がONの状態か否かを判定する(Sa6)。Sa6のステップにおいて設定キースイッチ37がONの状態でなければ、RAM41cの全ての格納領域(未使用領域及び未使用スタック領域を含む)のRAMパリティを計算し(Sa7)、RAMパリティが0か否かを判定する(Sa8)。正常に電断割込処理が行われていれば、RAMパリティが0になるはずであり、Sa8のステップにおいてRAMパリティが0でなければ、RAM41cに格納されているデータが正常ではないので、RAM異常を示すエラーコードをレジスタに設定し(Sa10)、図11に示すエラー処理に移行する。
また、Sa8のステップにおいてRAMパリティが0であれば、更に破壊診断用データが正常か否かを判定する(Sa9)。正常に電断割込処理が行われていれば、破壊診断用データが設定されているはずであり、Sa9のステップにおいて破壊診断用データが正常でない場合(破壊診断用データが電断時に格納される5A(H)以外の場合)にも、RAM41cのデータが正常ではないので、RAM異常を示すエラーコードをレジスタに設定し(Sa10)、図11に示すエラー処理に移行する。
エラー処理では、図11に示すように、現在の遊技補助表示器12の表示状態をスタックに退避し(Sb1)、レジスタに格納されているエラーコードを遊技補助表示器12に表示する(Sb2)。
次いで、レジスタに格納されているエラーコードを確認し、当該エラーコードがRAM異常エラーを示すエラーコードであるか否かを判定し(Sb3)、RAM異常エラーを示すエラーコードを示すエラーコードである場合には、RAM41cの格納領域のうち、使用中スタック領域を除く全ての格納領域を初期化する初期化1を行った後(Sb4)、いずれの処理も行わないループ処理に移行する。
また、Sb3のステップにおいて、RAM異常以外を示すエラーコードではないと判定された場合には、リセット/設定スイッチ38の操作が検出されているか否かを判定し(Sb5)、リセット/設定スイッチ38の操作が検出されていなければ、更にリセットスイッチ23の操作が検出されているか否かを判定し(Sb6)、リセットスイッチ23の操作も検出されていなければ、Sb4のステップに戻る。すなわちリセット/設定スイッチ38またはリセットスイッチ23の操作が検出されるまで、遊技の進行が不能な状態で待機する。
そして、Sb5のステップにおいてリセット/設定スイッチ38の操作が検出された場合、またはSb6のステップにおいてリセットスイッチ23の操作が検出された場合には、レジスタに格納されているエラーコードをクリアし(Sb7)、遊技補助表示器12の表示状態をSb1のステップにおいてスタックに退避した表示状態に復帰させて(Sb8)、もとの処理に戻る。
このようにエラー処理においては、RAM異常エラー以外によるエラー処理であれば、リセット/設定スイッチ38またはリセットスイッチ23が操作されることで、エラー状態を解除してもとの処理に復帰するが、RAM異常エラーによるエラー処理であれば、リセット/設定スイッチ38またはリセットスイッチ23が操作されてもエラー状態が解除されることはない。
図10に戻り、Sa9のステップにおいて破壊診断用データが正常であると判定した場合には、RAM41cのデータは正常であるので、RAM41cの非保存ワーク、未使用領域及び未使用スタック領域を初期化する初期化3を行った後(Sa11)、破壊診断用データをクリアする(Sa12)。次いで、各レジスタを電断前の状態、すなわちスタックに保存されている状態に復帰し(Sa13)、割込を許可して(Sa14)、電断前の最後に実行していた処理に戻る。
また、Sa6のステップにおいて設定キースイッチ37がONの状態であれば、設定変更モードに移行するとともに、RAM41cの格納領域のうち、使用中スタック領域を除く全ての格納領域を初期化する初期化1を実行した後(Sa15)、設定値ワークに格納されている値(この時点では0)を1に補正する(Sa16)。次いで、割込を許可して(Sa17)、図12に示す設定変更処理、すなわち設定変更モードに移行し(Sa18)、設定変更処理の終了後、ゲーム処理に移行する。
設定変更処理では、図12に示すように、RAM41cの設定値ワークに格納されている設定値(設定変更処理に移行する前に設定値ワークの値は1に補正されているので、ここでは1である)を読み出す(Sc1)。
その後、リセット/設定スイッチ38とスタートスイッチ7の操作の検出待ちの状態となり(Sc2、Sc3)、Sc2のステップにおいてリセット/設定スイッチ38の操作が検出されると、Sc1のステップにおいて読み出した設定値に1を加算し(Sc4)、加算後の設定値が7であるか否か、すなわち設定可能な範囲を超えたか否かを判定し(Sc5)、加算後の設定値が7でなければ、再びSc2、Sc3のステップにおけるリセット/設定スイッチ38とスタートスイッチ7の操作の検出待ちの状態に戻り、Sc5のステップにおいて加算後の設定値が7であれば設定値を1に補正した後(Sc6)、再びSc2、Sc3のステップにおけるリセット/設定スイッチ38とスタートスイッチ7の操作の検出待ちの状態に戻る。
また、Sc3のステップにおいてスタートスイッチ7の操作が検出されると、その時点で選択されている変更後の設定値をRAM41cの設定値ワークに格納して、設定値を確定した後(Sc7)、設定キースイッチ37がOFFの状態となるまで待機する(Sc8)。そして、Sc8のステップにおいて設定キースイッチ37のOFFが判定されると、図10のフローチャートに復帰し、ゲーム処理に移行することとなる。
このように起動処理においては、設定キースイッチ37がONの状態ではない場合に、RAMパリティが0であるか否か、破壊診断用データが正常であるか否かを判定することでRAM41cに記憶されているデータが正常か否かを判定し、RAM41cのデータが正常でなければ、異常エラー処理に移行する。RAM異常エラーによるエラー処理では、RAM異常エラーを示すエラーコードを遊技補助表示器12に表示させた後、いずれの処理も行わないループ処理に移行するので、ゲームの進行が不能化される。そして、RAM41cのデータが正常でなければ、割込が許可されることがないので、一度RAM異常エラーによるエラー処理に移行すると、設定キースイッチ37がONの状態で起動し、割込が許可されるまでは、電断しても電断割込処理は行われない。すなわち電断割込処理において新たにRAMパリティが0となるようにRAM調整用データが計算されて格納されることはなく、破壊診断用データが新たに設定されることもないので、CPU41aが再起動しても設定キースイッチ37がONの状態で起動した場合を除き、CPU41aを再起動させてもゲームを再開させることができないようになっている。
そして、RAM異常エラーによるエラー処理に一度移行すると、設定キースイッチ37がONの状態で起動し、RAM41cの使用中スタック領域を除く全ての領域が初期化された後、設定変更処理が行われ、リセット/設定スイッチ38の操作により新たに設定値が選択・設定されるまで、ゲームの進行が不能な状態となる。すなわちRAM異常エラーによるエラー処理に移行した状態では、リセット/設定スイッチ38の操作により新たに設定値が選択・設定されたことを条件に、ゲームの進行が不能な状態が解除され、ゲームを再開させることが可能となる。
図13は、CPU41aが実行するゲーム処理の制御内容を示すフローチャートである。
ゲーム処理では、BET処理(Sd1)、内部抽選処理(Sd2)、リール回転処理(Sd3)、入賞判定処理(Sd4)、払出処理(Sd5)、ゲーム終了時処理(Sd6)を順に実行し、ゲーム終了時処理が終了すると、再びBET処理に戻る。
Sd1のステップにおけるBET処理では、賭数を設定可能な状態で待機し、遊技状態に応じた規定数の賭数が設定され、スタートスイッチ7が操作された時点で賭数を確定する処理を実行する。
Sd2のステップにおける内部抽選処理では、Sd1のステップにおけるスタートスイッチ7の検出によるゲームスタートと同時に内部抽選用の乱数を抽出し、抽出した乱数の値に基づいて上記した各役への入賞を許容するかどうかを決定する処理を行う。この内部抽選処理では、それぞれの抽選結果に基づいて、RAM41cに当選フラグが設定される。
Sd3のステップにおけるリール回転処理では、各リール2L、2C、2Rを回転させる処理、遊技者によるストップスイッチ8L、8C、8Rの操作が検出されたことに応じて対応するリール2L、2C、2Rの回転を停止させる処理を実行する。また、リールの回転開始から予め定められた自動停止時間が経過した場合には、ストップスイッチ8L、8C、8Rの操作の検出を待つことなく自動的にリール2L、2C、2Rの回転を停止させる処理を実行する。
Sd4のステップにおける入賞判定処理では、Sd3のステップにおいて全てのリール2L、2C、2Rの回転が停止したと判定した時点で、各リール2L、2C、2Rに導出された表示結果に応じて入賞が発生したか否かを判定する処理を実行する。
Sd5のステップにおける払出処理では、Sd4のステップにおいて入賞の発生が判定された場合に、その入賞に応じた払出枚数に基づきクレジットの加算並びにメダルの払出等の処理を行う。
Sd6のステップにおけるゲーム終了時処理では、次のゲームに備えて遊技状態を設定する処理を実行する。また、このゲーム終了時処理では、RAM41cの格納領域のうち、未使用領域及び未使用スタック領域を初期化する初期化4が毎ゲーム実施されるとともに、ビッグボーナス終了時においては、RAM41cの格納領域のうち、一般ワーク、未使用領域及び未使用スタック領域が初期化される初期化2が実施される。
図14は、CPU41aがSd2のステップにおいて実行する内部抽選処理の制御内容を示すフローチャートである。
本実施例の内部抽選処理では、まず、当該ゲームの遊技状態に応じて予め定められたメダルの投入枚数である規定枚数を読み出し(Se1)、Se2のステップに進む。規定枚数は、通常遊技状態においては3枚、レギュラーボーナスの遊技状態においては1枚とされている。
Se2のステップでは、メダルの投入枚数、すなわちBETカウンタの値が、Se1のステップにて読み出した規定枚数か否かを判定し、メダルの投入枚数が規定枚数であればSe3のステップに進み、メダルの投入枚数が規定枚数でなければSe4のステップに進む。
Se3のステップでは、RAM41cの設定値ワークに格納されている設定値が1〜6の範囲であるか否か、すなわち設定値ワークに格納されている設定値が適正な値か否かを判定し、設定値が1〜6の範囲であればSe5のステップに進み、1〜6の範囲でなければSe4のステップに進む。
Se4のステップでは、RAM41cに格納されているデータが正常ではないと判定されたため、RAM異常を示すエラーコードをレジスタに格納し、図11に示すエラー処理に移行する。
Se5のステップでは、乱数取得処理を行う。乱数取得処理では、まず、割込を禁止する。次に、サンプリング回路43にサンプリング指令を出力し、乱数発生回路42が発生している乱数をラッチさせ、ラッチさせた乱数の値をI/Oポート41dから入力して、これを抽出する。乱数発生回路42から抽出された乱数の値は、汎用レジスタ(図示略)に格納される。
次に、汎用レジスタに格納された乱数の下位バイトの値と上位バイトの値を、円算用レジスタを用いて互いに入れ替えた後、汎用レジスタに格納された乱数の値を8080hと論理和演算する。更に上位バイト(第15〜第8ビット)を1ビットずつ下位にシフトし、これによって空いた第15ビットに1を挿入する。このときに汎用レジスタに格納された値が内部抽選用の乱数として取得される。そして、禁止した割込を許可してから乱数取得処理を終了して、図14のフローチャートに復帰する。
図14に戻り、乱数取得処理が終了するとSe6のステップに進み、当該ゲームの遊技状態に応じて状態番号(0〜2のいずれか)をRAM41cに格納し、Se7のステップに進む。Se7のステップでは、状態番号が示す遊技状態において最初に抽選対象とする役番号をRAM41cに格納し、Se8のステップに進む。Se7のステップでは、状態番号が0の場合、すなわち通常遊技状態においていずれの特別役も持ち越されていない場合には、最初に抽選対象とする役番号として1(ビッグボーナス(1))を設定し、状態番号が1の場合、すなわち通常遊技状態においていずれかの特別役が持ち越されている場合には、最初に抽選対象とする役番号として10(リプレイ)を設定し、状態番号が2の場合、すなわちレギュラーボーナスの場合には、最初に抽選対象とする役番号として11(チェリー)を設定する。
Se8のステップでは、抽選対象とする役番号が15であるか否か、すなわち抽選対象となる全ての役の抽選が終了したか否かを確認し、15である場合、すなわち抽選対象となる全ての役の抽選が終了している場合にはSe9のステップに進む。15でない場合にはSe10のステップに進む。
Se9のステップでは、RAM41cにおいて一般役の当選フラグが格納される一般役格納ワークをクリアして、内部抽選処理を終了し、図13に示すフローチャートに復帰する。
Se10のステップでは、処理対象の役番号に対応付けて、図4(b)の役別テーブルに登録されている共通フラグが1か否かを確認し、1である場合にはSe11のステップに進み、1でない場合にはSe12のステップに進む。
Se11のステップでは、処理対象の役番号に対応付けて図4(b)の役別テーブルに登録されているROM41bの判定値数の格納領域のアドレス(図5参照)を読み出す。そして、このアドレスに格納されている判定値数を取得して、Se13のステップに進む。
Se12のステップでは、まず、RAM41cに格納されている設定値を読み出し、更に、処理対象の役番号と読み出した設定値に対応付けて、図4(b)の役別テーブルに登録されているROM41bの判定値数の格納領域のアドレスを読み出す。そして、このアドレスに格納されている判定値数を取得して、Se13のステップに進む。
Se13のステップでは、内部抽選用の乱数値に、Se11またはSe12のステップにおいて取得した判定値数を加算し、加算の結果を新たな乱数値とし、Se14のステップに進み、判定値数を内部抽選用の乱数値に加算したときにオーバーフローが生じたかを判定する。尚、オーバーフローの発生は、処理対象の役番号に該当する役が当選した旨を示している。そしてオーバーフローが生じた場合にはSe16のステップに進み。オーバーフローが生じなかった場合にはSe15のステップに進む。
Se15のステップでは、処理対象の役番号に1を加算し、Se8のステップに戻る。
Se16のステップでは、役番号が1〜9であるか、すなわち特別役または特別役を含む役の組み合わせを示す役番号か否かを確認し、役番号が1〜9の場合にはSe17のステップに進み、役番号が1〜9でない場合にはSe18のステップに進む。
Se17のステップでは、RAM41cにおいて特別役の当選フラグが格納される特別役格納ワークに、処理対象の役番号に対応する特別役の当選フラグを設定し、Se18のステップでは、RAM41cの一般役格納ワークに、処理対象の役番号に対応する一般役の当選フラグを設定して、内部抽選処理を終了し、図13に示すフローチャートに復帰する。尚、Se18のステップでは、役番号が1〜3の場合、一般役は当選していないため、この場合には、RAM41cの一般役格納ワークをクリアする。
次に、CPU41aが初期化条件の成立に応じて実行する初期化1〜4の制御内容を図15〜図19のフローチャートに基づいて説明する。
図15は、CPU41aが起動処理において設定変更モードへの移行前に実行する初期化1の制御内容を示すフローチャートである。
初期化1では、まず、ROM41bの初期化テーブルを参照し、初期化1に対応して登録されている開始アドレスと初期化サイズを読み出す(Sf1)。読み出した開始アドレス(7E00(H))にポインタをセットする(Sf2)。次いで、未使用スタック領域のサイズ(M=スタックポインタ−7FD2(H))を計算し(Sf3)、初期化する領域のバイト数(1D3(H)+M)をセットする(Sf4)。そして、Sf2でセットされた開始アドレスからSf4でセットされたバイト数にわたりデータをクリアするRAMクリア処理を実行し(Sf5)、RAMクリア処理が終了すると、初期化1を終了してもとの処理に復帰する。
図16は、図15のSf5のステップにおいて実行するRAMクリア処理の制御内容を示すフローチャートである。
RAMクリア処理では、ポインタが示すアドレスが示す1バイトのデータを0クリアし(Sf101)、初期化バイト数(初期化する領域としてセットされたバイト数)を1減算する(Sf102)。次いで、減算後の初期化バイト数が0となったか否か、すなわち指定されたバイト数全ての初期化が終了したか否かを判定する(Sf103)。減算後の初期化バイト数が0でなければ、ポインタを1進めて(Sf104)、Sf101の処理に戻り、初期化バイト数が0となるまでSf101〜4の処理を繰り返し行う。そして、Sf103のステップにおいて減算後の初期化バイト数が0であれば、指定されたバイト数全ての初期化が終了したこととなるので、RAMクリア処理を終了し、もとの処理に復帰する。
図17は、CPU41aがSd8のゲーム終了時処理においてビッグボーナス終了時に実行する初期化2の制御内容を示すフローチャートである。
初期化2では、まず、割込を禁止した後(Sf11)、ROM41bの初期化テーブルを参照し、初期化2に対応して登録されている開始アドレスと初期化サイズを読み出す(Sf12)。初期化2には、2つの開始アドレス及びそれぞれに対応する初期化サイズが登録されているので、読み出した開始アドレスのうち最初に初期化する領域の開始アドレス(7E28(H))にポインタをセットし(Sf13)、最初に初期化する領域のバイト数(67(H))をセットし(Sf14)、Sf13でセットされた開始アドレスからSf14でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図16参照)を実行する(Sf15)。RAMクリア処理が終了すると、読み出した開始アドレスのうち2番目に初期化する領域の開始アドレス(7EBA(H))にポインタをセットし(Sf16)、未使用スタック領域のサイズ(M=スタックポインタ−7FD2(H))を計算し(Sf17)、2番目に初期化する領域のバイト数(119(H)+M)をセットする(Sf18)。そして、Sf16でセットされた開始アドレスからSf18でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図16参照)を実行し(Sf19)、RAMクリア処理が終了すると、Sf11のステップにおいて禁止していた割込を許可し(Sf20)、初期化2を終了してもとの処理に復帰する。
図18は、CPU41aが起動処理においてRAM41cのデータが正常である場合に実行する初期化3の制御内容を示すフローチャートである。
初期化3では、まず、ROM41bの初期化テーブルを参照し、初期化3に対応して登録されている開始アドレスと初期化サイズを読み出す(Sf21)。初期化3には、2つの開始アドレス及びそれぞれに対応する初期化サイズが登録されているので、読み出した開始アドレスのうち最初に初期化する領域の開始アドレス(7EB7(H))にポインタをセットし(Sf22)、最初に初期化する領域のバイト数(3(H))をセットし(Sf23)、Sf22でセットされた開始アドレスからSf23でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図16参照)を実行する(Sf24)。RAMクリア処理が終了すると、読み出した開始アドレスのうち2番目に初期化する領域の開始アドレス(7F05(H))にポインタをセットし(Sf25)、未使用スタック領域のサイズ(M=スタックポインタ−7FD2(H))を計算し(Sf26)、2番目に初期化する領域のバイト数(CE(H)+M)をセットする(Sf27)。そして、Sf25でセットされた開始アドレスからSf27でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図16参照)を実行し(Sf28)、RAMクリア処理が終了すると、初期化3を終了してもとの処理に復帰する。
図19は、CPU41aがSd8のゲーム終了時処理において各ゲーム毎に実行する初期化4の制御内容を示すフローチャートである。
初期化4では、まず、割込を禁止した後(Sf31)、ROM41bの初期化テーブルを参照し、初期化4に対応して登録されている開始アドレスと初期化サイズを読み出す(Sf32)。読み出した開始アドレス(7F05(H))にポインタをセットする(Sf33)。次いで、未使用スタック領域のサイズ(M=スタックポインタ−7FD2(H))を計算し(Sf34)、初期化する領域のバイト数(CE(H)+M)をセットする(Sf35)。そして、Sf33でセットされた開始アドレスからSf5でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図16参照)を実行し(Sf36)、RAMクリア処理が終了すると、Sf31のステップにおいて禁止していた割込を許可し(Sf37)、初期化4を終了してもとの処理に復帰する。
図20は、CPU41aが割込2の発生に応じて、すなわち電断検出回路48からの電圧低下信号が入力されたときに起動処理やゲーム処理に割り込んで実行する電断割込処理の制御内容を示すフローチャートである。
電断割込処理においては、まず、割込を禁止する(Sg1)。すなわち電断割込処理の開始にともなってその他の割込処理が実行されることを禁止する。次いで、使用している可能性がある全てのレジスタをスタック領域に退避する(Sg2)。尚、前述したIレジスタ及びIYレジスタの値は使用されているが、起動時の初期化に伴って常に同一の固定値が設定されるため、ここでは保存されない。
次いで、入力ポートから電圧低下信号の検出データを取得し、電圧低下信号が入力されているか否かを判定する(Sg3)。この際、電圧低下信号が入力されていなければ、Sg2においてスタック領域に退避したレジスタを復帰し(Sg4)、Sg1のステップにおいて禁止した割込を許可して(Sg5)、割込前の処理に戻る。
また、Sg3のステップにおいて電圧低下信号が入力されていれば、破壊診断用データ(本実施例では、5A(H))をセットして(Sg6)、全ての出力ポートを初期化する(Sg7)。次いでRAM41cの全ての格納領域(未使用領域及び未使用スタック領域を含む)の排他的論理和が0になるようにRAMパリティ調整用データを計算してセットし(Sg8)、RAM41cへのアクセスを禁止する(Sg9)。
そして、電圧低下信号が入力されているか否かの判定(Sg10、尚、Sg10は、Sg3と同様の処理である)を除いて、何らの処理も行わないループ処理に入る。すなわち、そのまま電圧が低下すると内部的に動作停止状態になる。よって、電断時に確実にCPU41aは動作停止する。また、このループ処理において、電圧が回復し、電圧低下信号が入力されない状態となると、前述した起動処理が実行され、RAMパリティが0となり、かつ破壊診断用データが正常であれば、元の処理に復帰することとなる。
尚、本実施例では、RAM41cへのアクセスを禁止した後、電圧低下信号の出力状況を監視して、電圧低下信号が入力されなくなった場合に電圧の回復を判定し、起動処理へ移行するようになっているが、ループ処理において何らの処理も行わず、ループ処理が行われている間に、電圧が回復し、リセット回路49からリセット信号が入力されたことに基づいて、起動処理へ移行するようにしても良い。
次に、サブ制御部91による遊技履歴データの記憶及び閲覧処理に関して説明する。
本実施例では、演出制御基板90に搭載されたサブ制御部91のRAM91cには、既に行われた遊技に関する遊技履歴データを記憶可能な遊技履歴データ記憶領域が設けられているとともに、これら遊技履歴データは、メイン制御部41から送信されたコマンドに基づいて逐次最新のデータに更新されるようになっている。一方、サブ制御部91のROM91bには、当該スロットマシン1にて実施される演出を紹介する演出紹介データが記憶されている。
そして、遊技者は、ゲームの実行中(ゲームの開始後、当該ゲームが終了するまでの期間)を除いて、選択スイッチ56、決定スイッチ57の操作を行うことにより、RAM91cの遊技履歴データ記憶領域に記憶されている遊技履歴データ(後述する設定変更の履歴を除く)に基づく遊技履歴情報やROM91bに記憶されている演出紹介データを閲覧することが可能とされている。
遊技履歴データ記憶領域は、ボーナス間ゲーム数カウンタ、ボーナス間ゲーム数テーブル、総ゲーム数カウンタ、RBカウンタ、BB(1)カウンタ、BB(2)カウンタ、投入枚数カウンタ、払い出し枚数カウンタ、時間別差枚数テーブル、日付別履歴テーブル、設定値変更テーブルから構成される。
ボーナス間ゲーム数カウンタは、前回のボーナス(BB(1)、BB(2)、RB)終了時からのゲーム数を計数するカウンタであり、ボーナス中以外の状態で遊技状態コマンドを受信する毎に1加算され、BB(1)、BB(2)またはRBから通常遊技状態への移行を示す遊技状態コマンドを受信した際にクリアされる。
ボーナス間ゲーム数テーブルは、ボーナス間ゲーム数を各ボーナス毎に当該ボーナスの種類(BB(1)、BB(2)またはRB)とともに格納するテーブルであり、通常遊技状態からBB(1)、BB(2)またはRBへの移行を示す遊技状態コマンドを受信した際に、ボーナスの種類を格納するとともに、ボーナス間ゲーム数カウンタの値を取得してボーナス間ゲーム数として格納する。
総ゲーム数カウンタは、本日の総ゲーム数を計数するカウンタであり、ボーナス中以外の状態で遊技状態コマンドを受信する毎に1加算される。
RBカウンタは、本日のRB回数を計数するカウンタであり、通常遊技状態からRBへの移行を示す遊技状態コマンドを受信した際に1加算される。
BB(1)カウンタは、本日のBB(1)回数を計数するカウンタであり、通常遊技状態からBB(1)への移行を示す遊技状態コマンドを受信した際に1加算される。また、BB(2)カウンタは、本日のBB(2)回数を計数するカウンタであり、通常遊技状態からBB(2)への移行を示す遊技状態コマンドを受信した際に1加算される。
投入枚数カウンタは、ゲームに使用されたパチンコ球数、すなわち賭数の設定に用いるために取り込まれた球数を計数するカウンタであり、内部当選コマンドを受信した際に、それまでに当該ゲームにおいて受信したBETコマンドから特定される賭数に応じた値(賭数×5)が加算される。
払い出し枚数カウンタは、賞球として払い出されたパチンコ球数を計数するカウンタであり、賞球の払出を伴う入賞を示す入賞判定コマンドを受信した際に、当該コマンドにより特定される賞球数が加算される。
時間別差枚数テーブルは、所定間隔毎の差枚数(払い出し枚数カウンタの値−投入枚数カウンタの値)を格納するテーブルであり、時計装置96から取得した時間情報に基づいて所定間隔毎(例えば5分毎)に、払い出し枚数カウンタの値と投入枚数カウンタの値を取得し、差枚数を算出して格納する。
日付別履歴テーブルは、過去3日分のボーナス間ゲーム数テーブル、総ゲーム数カウンタ、RBカウンタ、BB(1)カウンタ、BB(2)カウンタ、投入枚数カウンタ、払い出し枚数カウンタ、時間別差枚数テーブルの各データを格納するテーブルである。サブ制御部91は、起動処理(サブ)の実施の際に、時計装置96から日付情報を取得し、該取得した日付情報をRAM91cの日付記憶領域に記憶する。そして、起動処理において新たに取得した日付情報がRAM91cの日付記憶領域記憶されていた日付情報と一致するか否かを判定し、一致していない、すなわち日付が更新されたと判定したときには、その時点で2日前の領域に格納されているデータを3日前の領域に格納し、1日前の領域に格納されているデータを2日前の領域に格納し、本日の領域に格納されているデータを1日前の領域に格納するとともに、本日のデータが格納される領域に格納されているデータをクリア(初期化)する。つまり、ボーナス間ゲーム数テーブル、総ゲーム数カウンタ、RBカウンタ、BB(1)カウンタ、BB(2)カウンタ、投入枚数カウンタ、払い出し枚数カウンタ、時間別差枚数テーブルの各データを1日前のデータとして格納する処理が行われる。
尚、本実施例の日付別履歴テーブルでは、過去3日分の遊技履歴データが格納されるようになっているが、過去3日分以上のデータを格納するようにしてもよい。
また、ボーナス間ゲーム数テーブル、総ゲーム数カウンタ、RBカウンタ、BB(1)カウンタ、BB(2)カウンタ、投入枚数カウンタ、払い出し枚数カウンタ、時間別差枚数テーブルの各データを日付別履歴テーブルに格納することに伴って、ボーナス間ゲーム数テーブル、総ゲーム数カウンタ、RBカウンタ、BB(1)カウンタ、BB(2)カウンタ、投入枚数カウンタ、払い出し枚数カウンタ、時間別差枚数テーブルはクリアされる。
設定値変更テーブルは、過去5回分の設定値の変更履歴を格納するテーブルであり、設定終了コマンドを受信した際に、時計装置96から取得した時間情報(日付及び時間)に対応付けて設定終了コマンドが示す設定値を格納する。尚、この際、最も古い変更履歴はクリアされる。
尚、演出制御基板90に搭載された時計装置96の時間(日付、時刻)の設定は、例えば遊技制御基板40(演出中継基板80)から延設される配線のコネクタが差し込まれる演出制御基板90上のコネクタに外部時計装置(図示略)を接続し、サブ制御部91において、該外部時計装置から出力される時間情報を示す時間設定コマンドの取得を監視するようにするとともに、該外部時計装置から出力された時間設定コマンドを取得したことに基づいて、演出制御基板90に搭載された時計装置96の時間設定を行うようにすればよい。このようにすることで、例えば演出制御基板90に時間合わせ用の操作スイッチ等を設け、作業者が外部時計を見ながら該操作スイッチを操作して時間設定を行わなくても、時間設定を簡単に行うことができる。
ここで、遊技履歴情報や演出紹介データの閲覧状況及びその際のサブ制御部91の制御状況を図21に基づいて説明する。
本実施例では、ゲームの実行中以外の期間、すなわち遊技状態コマンドを受信した後、内部当選コマンドを受信するまでの期間において、選択スイッチ56、決定スイッチ57のいずれかのスイッチを検出すると、液晶表示器51に図21(a)に示す閲覧メニュー画面を表示させる。
閲覧メニュー画面には、現在選択されているメニューの説明領域と、「ボーナス間情報」「演出紹介」「ボーナス履歴」「スランプグラフ」「戻る」からなるメニュー領域と、が設けられており、選択スイッチ56の検出に応じて、メニュー領域の選択枠を移動させるとともに、この移動に伴って説明領域の表示内容も現在選択されているメニュー領域の説明に更新される。尚、閲覧メニュー画面には、RAM91cに設定されている閲覧有効フラグの設定状況に応じたメニュー領域のみが表示されるようになっており、「ボーナス間情報」「演出紹介」「ボーナス履歴」「スランプグラフ」のうち、閲覧有効フラグが設定されていない項目のメニュー領域は表示されないようになっている。閲覧有効フラグは、後述するオプション画面にて閲覧を有効とする設定がなされた項目についてのみ設定されるようになっており、後述するオプション画面にて閲覧を有効とする設定がなされていない項目については、遊技者の操作によって閲覧ができないようになっている。
閲覧メニュー画面で「ボーナス間情報」のメニュー領域が選択された状態で、決定スイッチ57を検出すると、図21(b)に示すボーナス間情報画面を表示させる。ボーナス間情報画面には、「本日」「1日前」「2日前」「3日前」「戻る」からなるメニュー領域と、ボーナス毎にボーナスの種類及びボーナス間ゲーム数が表示されるボーナス間情報表示領域と、が設けられている。そして、閲覧メニュー画面からボーナス間情報画面を表示させる際には、本日のボーナス間ゲーム数テーブルに登録されているデータに基づいてボーナス間情報表示領域に、本日のボーナスの種類及びボーナス間ゲーム数がボーナス毎に表示される。また、ボーナス間情報画面において「1日前」「2日前」「3日前」のいずれかが選択された状態で、決定スイッチ57を検出すると、日付別履歴データテーブルに格納されているデータに基づいて、選択された日のボーナスの種類及びボーナス間ゲーム数がボーナス毎にボーナス間情報表示領域に表示される。また、ボーナス間情報画面において「戻る」が選択された状態で、決定スイッチ57を検出すると、閲覧メニュー画面に戻る。
閲覧メニュー画面で「演出紹介」のメニュー領域が選択された状態で、決定スイッチ57を検出すると、図21(c)に示す演出紹介画面を表示させる。ボーナス間情報画面には、各演出に対応するメニュー領域と、「戻る」に対応するメニュー領域と、が設けられている。そして、演出紹介画面において各演出に対応するメニュー領域のいずれかが選択された状態で、決定スイッチ57を検出すると、ROM91bに格納されている演出紹介データから該当するデータが抽出されて表示される。また、演出紹介画面において「戻る」が選択された状態で、決定スイッチ57を検出すると、閲覧メニュー画面に戻る。
閲覧メニュー画面で「ボーナス確率」のメニュー領域が選択された状態で、決定スイッチ57を検出すると、図21(d)に示すボーナス確率画面を表示させる。ボーナス確率画面には、「本日」「1日前」「2日前」「3日前」「戻る」からなるメニュー領域と、ボーナスの種類別に確率が表示されるボーナス確率表示領域と、が設けられている。そして、閲覧メニュー画面からボーナス確率画面を表示させる際には、本日の総ゲーム数カウンタ、RBカウンタ及びBB(1)カウンタ、BB(2)カウンタの値に基づき本日のBBの確率及びRBの確率が算出されてボーナス確率表示領域に表示される。また、ボーナス確率画面において「1日前」「2日前」「3日前」のいずれかが選択された状態で、決定スイッチ57を検出すると、日付別履歴データテーブルに格納されているデータに基づき、選択された日のBB(1)、BB(2)の確率及びRBの確率が算出されてボーナス確率表示領域に表示される。また、ボーナス確率画面において「戻る」が選択された状態で、決定スイッチ57を検出すると、閲覧メニュー画面に戻る。
閲覧メニュー画面で「スランプグラフ」のメニュー領域が選択された状態で、決定スイッチ57を検出すると、図21(e)に示すスランプグラフ画面を表示させる。スランプグラフ画面には、「本日」「1日前」「2日前」「3日前」「戻る」からなるメニュー領域と、時系列的に差球の状況を示すスランプグラフが表示されるグラフ表示領域と、が設けられている。そして、閲覧メニュー画面からスランプグラフ画面を表示させる際には、本日の時間別差枚数テーブルに基づき本日のスランプグラフが生成されてグラフ表示領域に表示される。また、スランプグラフ画面において「1日前」「2日前」「3日前」のいずれかが選択された状態で、決定スイッチ57を検出すると、日付別履歴データテーブルに格納されているデータに基づき、選択された日のスランプグラフが生成されてグラフ表示領域に表示される。また、スランプグラフ画面において「戻る」が選択された状態で、決定スイッチ57を検出すると、閲覧メニュー画面に戻る。
以上のように、遊技者はゲームの実行中(ゲームの開始後、当該ゲームが終了するまでの期間)を除いて、選択スイッチ56、決定スイッチ57の操作を行うことにより、RAM91cの遊技履歴データ記憶領域に記憶されている遊技履歴データ(後述する設定変更の履歴を除く)に基づく遊技履歴情報やROM91bに記憶されている演出紹介データを閲覧することが可能となる。
また、本実施例では、前述した遊技履歴データをクリアしたり、遊技者により閲覧可能な遊技履歴データの設定、設定変更履歴の閲覧を行うことが可能とされている。
次に、遊技履歴データのクリア、遊技者により閲覧可能な遊技履歴データの設定、設定変更履歴の閲覧を行う際の操作状況及びその際のサブ制御部91の制御状況を図22に基づいて説明する。
まず、遊技履歴データのクリア、遊技者により閲覧可能な遊技履歴データの設定、設定変更履歴の閲覧は、メイン制御部41による遊技状態が初期化された場合、すなわち設定キースイッチ37をonの状態として電源が投入された場合に制御される遊技店設定用モードにおいて実行可能とされている。尚、遊技状態の初期化は、遊技店の係員の操作によるものであるので、遊技履歴データのクリア、遊技者により閲覧可能な遊技履歴データの設定、設定変更履歴の閲覧は、原則として店側のみが行えるものである。
具体的には、サブ制御部91は、メイン制御部41が前述した初期化1を実施したことに基づいて送信する初期化コマンドを受信したときに遊技店設定用モードに制御する。これに伴い、図22に示す初期化時メニュー画面が液晶表示器51に表示されるようになっており、この初期化時メニュー画面において、遊技履歴データのクリアや遊技者により閲覧可能な遊技履歴データの設定、設定変更履歴の閲覧を行うことが可能とされている。
また、遊技店設定用モード(初期化時メニュー画面の表示)は、初期化時メニュー画面に表示された所定のメニュー領域を選択スイッチ56により選択した状態で決定スイッチ57を操作することで終了する(通常表示画面に切り替わる)ようになっているとともに、遊技店設定用モードに制御されている状態(初期化時メニュー画面の表示中)において、メイン制御部41から設定終了コマンドを取得したとき、すなわちゲーム処理に移行したときには、上記選択スイッチ56や設定スイッチ57による所定の終了操作を行うことなく、遊技店設定用モードが終了する(通常表示画面に切り替わる)ようになっている。
また、遊技店設定用モード(初期化時メニュー画面の表示)は、メイン制御部41からBETコマンドを取得したときにも、上記選択スイッチ56や設定スイッチ57による所定の終了操作を行うことなく、遊技店設定用モードが終了する(通常表示画面に切り替わる)ようになっている。これは、サブ制御部91による遊技店設定用モードの制御中において、メイン制御部41がゲーム処理に移行することが可能であるため、選択スイッチ56や設定スイッチ57の検出や設定終了コマンドの取得が何らかの不具合により認識されなかった場合に、遊技者による遊技の進行操作が行われたにも関わらず、遊技店設定用モードが延々と続いてしまうことが考えられる。
よって、ゲームの進行に関わる操作(メダル投入操作や1BETスイッチ5、MAXBETスイッチ6の操作)を有効に検出したことに基づいてメイン制御部41から出力されるBETコマンドを取得したときに、遊技店設定用モード(初期化時メニュー画面の表示)を終了して通常遊技画面に戻るようにすれば、遊技店設定用モードが延々と続いてしまうことが防止される。
尚、本実施例では、ゲームの進行に関わる操作の一例である1BETスイッチ5、MAXBETスイッチ6の操作やメダル投入の有効な検出に基づいてメイン制御部41から出力されるBETコマンドの取得に基づいて遊技店設定用モードを終了するようになっているが、例えばスタートスイッチ7の有効な検出に基づいてメイン制御部41から出力される内部当選コマンドや、ストップスイッチ8L、8C、8Rの有効な検出に基づいてメイン制御部41から出力されるリール停止コマンドの取得に基づいて遊技店設定用モードを終了するようにしてもよい。
また、本実施例では、初期化時メニュー画面で「戻る」のメニュー領域が選択された状態で決定スイッチ57を検出した場合、設定終了コマンドを取得した場合、BETコマンドを取得した場合に遊技店設定用モードを終了して、通常遊技画面に戻るようになっていたが、例えば初期化時メニュー画面の表示中において所定時間(例えば30秒)いずれの選択・決定スイッチの操作を受付けなかったときに、自動的に遊技店設定用モードを終了して通常遊技画面に戻るようにしても良い。
初期化時メニュー画面には、現在選択されているメニューの説明領域と、「履歴データクリア」「オプション」「設定変更履歴」「戻る」からなるメニュー領域と、が設けられており、選択スイッチ56の検出に応じて、メニュー領域の選択枠を移動させるとともに、この移動に伴って説明領域の表示内容も現在選択されているメニュー領域の説明に更新される。
図22(a)に示すように、初期化時メニュー画面で「履歴データクリア」のメニュー領域が選択された状態で、決定スイッチ57を検出すると、図23(a)に示す履歴データクリア画面を表示させる。履歴データクリア画面には、現在選択されているメニューの説明領域と、「はい」「いいえ」からなるメニュー領域と、が設けられている。そして、履歴データクリア画面において「はい」が選択された状態で、決定スイッチ57を検出すると、RAM91cの遊技履歴データ記憶領域に記憶されている遊技履歴データのうち、設定変更履歴を除く全てのデータがクリアされた後、図23(b)に示すように履歴データのクリアが完了した旨を示すメッセージが表示され、初期化時メニュー画面に戻る。尚、履歴データクリア画面において「いいえ」が選択された状態で、決定スイッチ57を検出すると、遊技履歴データはクリアされずに初期化時メニュー画面に戻る。
図22(b)に示すように、初期化時メニュー画面で「オプション」のメニュー領域が選択された状態で、履歴データ決定スイッチ57を検出すると、図24(a)に示すオプション画面を表示させる。オプション画面には、「ボーナス間情報」「演出紹介」「ボーナス履歴」「スランプグラフ」「戻る」からなるメニュー領域が設けられている。そして、オプション画面において「ボーナス間情報」「演出紹介」「ボーナス履歴」「スランプグラフ」のいずれかが選択された状態で、決定スイッチ57を検出すると、対応する閲覧可能設定欄の表示が切り替わる。具体的には、閲覧を有効とする旨を示す「ON」が表示されている状態では閲覧を有効としない旨を示す「OFF」に切り替わり、「OFF」が表示されている状態では「ON」に切り替わる。そして、オプション画面において「戻る」が選択された状態で、決定スイッチ57を検出すると、閲覧可能設定欄に「ON」が表示されている項目の閲覧有効フラグを設定する一方、「OFF」が表示されている項目の閲覧有効フラグをクリアした後、初期化時メニュー画面に戻る。
図22(c)に示すように、初期化時メニュー画面で「設定変更履歴」のメニュー領域が選択された状態で、決定スイッチ57を検出すると、図24(b)に示す設定変更履歴画面を表示させる。設定変更履歴画面には、過去5回分の設定変更履歴、すなわちRAM91cに格納されている設定変更履歴が表示される設定変更履歴表示領域と、「戻る」に対応するメニュー領域と、が設けられている。そして、設定変更履歴画面において「戻る」が選択された状態で、決定スイッチ57を検出すると、初期化時メニュー画面に戻る。
図22(d)に示すように、初期化時メニュー画面で「戻る」のメニュー領域が選択された状態で決定スイッチ57を検出すると、遊技店設定用モードを終了して、通常遊技画面に戻る。
以上のように、メイン制御部41による遊技状態が初期化された場合、すなわち設定キースイッチ37をonの状態として電源が投入された場合に制御される遊技店設定用モードにおいて、初期化時メニュー画面が表示され、当該画面において選択スイッチ56及び決定スイッチ57を操作することにより、遊技履歴データのクリア、遊技者により閲覧可能な遊技履歴データの設定、設定変更履歴の閲覧を行うことが可能となる。
尚、本実施例では、遊技履歴データをクリアしても設定変更履歴のデータはクリアされないようになっているので、例えば、不正に設定変更がなされた場合でも、その証拠を確実に残しておくことができるが、遊技履歴データのクリアとともに設定変更履歴データについてもクリアされるようにしても良いし、遊技履歴データと、設定変更履歴データと、を別個の操作によりクリアできるようにしても良い。
また、本実施例では、スロットマシン1の管理に関する管理情報の一例としての設定変更履歴が記憶され、遊技店設定用モードにおいて該設定変更履歴を確認できるようになっているが、スロットマシン1の管理に関する管理情報は設定変更履歴情報に限られず、例えばスロットマシン1の前面扉の開放履歴、具体的には、前面扉の開放に基づいて開放時間や開放回数情報等を記憶し、遊技店設定用モードにおいて該開放履歴を確認できるようにしてもよい。
次に、本実施例における演出制御基板90に搭載されたサブ制御部91のCPU91aが実行する各種制御内容を、図25〜図27のフローチャートに基づいて以下に説明する。
CPU91aは、電源が投入されてCPUがリセットされると、図25に示す起動処理(サブ)を行う。
起動処理(サブ)では、まずサブ制御部91のRAMのデータチェック(本実施例ではパリティチェック)を行う(Sh1、Sh2)。詳しくは、現在のパリティを作成し、電断前に格納されたパリティと一致するか否かによってバックアップされているデータが正常か否かを判断する。
チェック結果が正常であれば、電断前に作成されたRAM診断用データを確認し(Sh3)、正常か否かを判定する(Sh4)。そして、RAM診断用データが正常であれば、全レジスタを復帰した後(Sh5)、割込禁止を解除する(Sh6)。
また、Sh2のステップにおいてデータチェックの結果が正常でない場合やSh4のステップにおいてRAM診断用データが正常でない場合には、演出状態を電断時の状態に戻すことができないので、RAM91cに記憶されている全てのデータを初期化する全初期化処理を実行した後(Sh7)、割込禁止を解除する(Sh6)。
そして、Sh6のステップにおいて割込禁止を解除した後は、時計装置96から日付情報を取得し(Sh8)、該取得した日付情報から特定される日付と、RAM91cの日付記憶領域に記憶されている日付と、が一致しているか否か、すなわち前回起動処理が行われたときから日付が変更されているか否かを判定し(Sh9)、一致している、すなわち日付は変更されてないと判定した場合には、そのままSh13のステップに進む。
また、Sh9のステップにおいて一致していない、すなわち日付は変更されていると判定した場合にはSh10のステップに進み、RAM91cの日付記憶領域に記憶されている日付を取得した日付に更新した後(Sh10)、日付別履歴テーブルにおける2日前の領域に格納されているデータを3日前の領域に格納し、1日前の領域に格納されているデータを2日前の領域に格納し、本日の領域に格納されているデータを1日前の領域に格納する(Sh11)。そして、本日のデータが格納される領域をクリア(初期化)した後(Sh12)、Sh13のステップに進む。
尚、ここでは日付の変更が前日から本日の1日であるため、日付別履歴テーブルにおける各領域に格納されているデータを前日の領域にそれぞれ格納し、本日の領域のデータをクリアするようになっていたが、日付けの変更が例えば前々日から本日の2日であった場合には、日付別履歴テーブルにおける各領域に格納されているデータを2日前の領域にそれぞれ格納し、本日及び前日の2日分の領域のデータをクリアするといったように、変更日数分の履歴情報を初期化するようにしてもよい。
Sh13のステップにおいては、メイン制御部41から送信された初期化コマンドがバッファされているか否か、すなわち後述するコマンド受信割込処理において初期化コマンドがRAM91cのバッファに格納されているか否かを、Sh6のステップにおいて割込禁止を解除したときから所定期間経過するまでの間監視する(Sh13、Sh14)。
そして、Sh6のステップにおいて割込禁止を解除したときから所定期間経過するまでの間に初期化コマンドを取得した場合、すなわちメイン制御部41においてRAM41cに記憶されている全データを初期化する初期化1処理が実行された場合には(Sh13)、RAM91cに記憶されているデータのうち遊技履歴データ記憶領域に記憶されているデータを除くデータ、すなわちサブ制御部91の演出に関わるデータを初期化する演出初期化処理を実行するとともに(Sh16)、遊技履歴データのクリア、遊技者により閲覧可能な遊技履歴データの設定、設定変更履歴の閲覧を行うことが可能な遊技店設定用モードに制御するための履歴データ設定更新処理を実行した後(Sh17)、後述するタイマ割込処理(サブ)において通常処理を行うか否かを判定するための通常処理フラグをセットし(Sh15)、後述するタイマ割込処理(サブ)やコマンド受信割込処理のみが行われるループ処理に移行する。
また、Sh6のステップにおいて割込禁止を解除したときから所定期間経過するまでの間に初期化コマンドを取得しなかった場合、すなわちメイン制御部41においてRAM41cに記憶されている全データを初期化する初期化1処理が実行されていない場合には、後述するタイマ割込処理(サブ)において通常処理を行うか否かを判定するための通常処理フラグをセットし(Sh15)、後述するタイマ割込処理(サブ)やコマンド受信割込処理のみが行われるループ処理に移行する。
尚、ここではSh6のステップにおいて割込禁止が解除された後、日付けの変更があった場合には、Sh11のステップにおけるデータの移行及びSh12のステップにおける本日のデータのクリアを、初期化コマンドを取得しているか否かに関わりなく行うようになっていたが、例えば日付けの変更があった場合において、Sh11のステップにおけるデータの移行及びSh12のステップにおける本日のデータのクリアを、例えば日付けの更新を行った後、初期化コマンドをしていないと判定した場合及び履歴データ設定更新処理において履歴データの初期化が行われなかった場合にのみ行うようにしてもよい。
本実施例では、メイン制御部41のCPU41aが、電源投入時に初期化1処理を行ったときのみ、初期化コマンドを送信し、電源投入時に電断前の状態に復帰した場合には、初期化コマンドを送信しないようになっており、サブ制御部91のCPU91aは、割込禁止を解除した後、所定期間の間、初期化コマンドを監視し、この間に初期化コマンドを受信することでメイン制御部41の制御状態の初期化を判定し、この間に初期化コマンドを受信しなければ、メイン制御部41の制御状態が電断前の状態に復帰したと判定するようになっている。このため、サブ制御部91がメイン制御部41の制御状態が初期化されたか復帰したかを判定するのに、メイン制御部41が複数の種類のコマンド、すなわち制御状態が初期化された旨を示すコマンドと電断前の状態に復帰した旨を示すコマンドとを送信する必要がないので、電源投入時におけるメイン制御部41の制御負荷を軽減できる。
また、本実施例では、電源が投入された際に、メイン制御部41のCPU41aに対して、サブ制御部91のCPU91aにおける電源投入時処理が終了し、メイン制御部41からのコマンドを受信可能な状態となるまでの時間よりも長い期間、リセット信号が入力されるようになっている。詳しくは、図28に示すように、CPU91aに対するリセット信号がoffとなってCPU91aがスタートするタイミング(ta1)よりも遅いタイミングで、かつCPU91aがスタートした後、割込禁止を解除してコマンドの受信が可能な状態となるのに十分な時間(L1)が経過したタイミング(ta2)で、CPU41aに対するリセット信号がoffとなり、CPU41aがスタートするように設計されている。更に、RAM91cに通常処理フラグが設定されるまでの時間、すなわち初期化コマンドの監視を終了するタイミングが、CPU41aがスタートした後、初期化1処理を実行して初期化コマンドを送信するのに十分な時間(L2)が経過したタイミング(ta3)となるように設計されている。このため、CPU91aは、メイン制御部41から送信された初期化コマンドを確実に受信することができる。
次に、本実施例におけるCPU91aが、前述したSh17のステップにおいて実行する履歴データ設定更新処理の詳細な制御内容を、図26のフローチャートに基づいて以下に説明する。
履歴データ設定更新処理においては、まず、遊技店設定用モードに移行して液晶表示器51の表示画面に初期化時メニュー画面(図22参照)を表示した後(Sh101)、設定終了コマンドまたはBETコマンドを取得したか否か、すなわちメイン制御部41がゲーム処理に移行したか否かを判定し(Sh102)、取得したと判定した場合にはSh125に進み、液晶表示器51の表示画面に表示されている初期化時メニュー画面を終了した後、通常遊技画面を表示し(Sh128)、遊技店設定用モードを終了して、Sh15のステップに戻る。
Sh102のステップにおいて設定終了コマンド及びBETコマンドのいずれも取得してないと判定したときは、選択スイッチ56、決定スイッチ57の操作を監視する。すなわち、初期化時メニュー画面中の「履歴データクリア」「オプション」「設定変更履歴画面」「戻る」のうちから所定のメニュー領域を選択する選択枠を移動させる操作がなされたか否か、または選択されたメニュー領域に決定する操作がなされたか否かを確認する(Sh103、Sh105)。
そして、Sh103のステップにおいて選択スイッチ56を検出した場合は、選択枠を次のメニュー領域に移動させる(Sh104)。また、Sh104のステップにおいて選択枠を移動した場合、またはSh103、105のステップにおいて選択スイッチ56及び決定スイッチ57のいずれの操作も検出しなかった場合はSh102に戻り、設定終了コマンド、BETコマンドの取得及び選択スイッチ56、決定スイッチ57の操作を監視する(Sh102〜Sh105)。
そして、Sh105のステップにおいて決定スイッチ57を検出した場合、その状態において、「履歴データクリア」「オプション」「設定変更履歴画面」のメニュー領域のうちのいずれのメニュー領域が選択されているか否かを確認し(Sh106、Sh115、Sh124)、「履歴データクリア」「オプション」「設定変更履歴画面」のいずれのメニュー領域も選択されていない場合には、「戻る」のメニュー領域が選択されていることになるため、液晶表示器51の表示画面に表示されている初期化時メニュー画面を終了した後、通常遊技画面を表示し(Sh128)、遊技店設定用モードを終了して、Sh15のステップに戻る。
Sh105のステップにおいて決定スイッチ57を検出した状態で、「履歴データクリア」のメニュー領域が選択されている場合には(Sh106)、履歴データクリア画面(図23参照)を表示した後(Sh107)、設定終了コマンドまたはBETコマンドを取得したか否か、すなわちメイン制御部41がゲーム処理に移行したか否かを判定し(Sh108)、取得したと判定した場合にはSh128のステップに進む。また、取得してないと判定した場合には、設定終了コマンドまたはBETコマンドの取得及び選択スイッチ56、決定スイッチ57の操作を監視する(Sh108,109,111)。すなわち、履歴データクリア画面中の「はい」「いいえ」のメニュー領域で選択枠を移動する操作がなされたか否か、または選択されているメニュー領域に決定する操作がなされたか否かを確認する。
そして、Sh108,109,111の監視状態において選択スイッチ56を検出した場合は(Sh109)、選択枠を次のメニュー領域に移動させる(Sh110)。また、Sh108,109,111の監視状態において選択枠を移動した場合(Sh110)、またはSh109、111のステップにおいて選択スイッチ56及び決定スイッチ57のいずれの操作も検出しなかった場合はSh108に戻り、再び設定終了コマンドまたはBETコマンドの取得及び選択スイッチ56、決定スイッチ57の操作を監視する(Sh108,109,111)。
そして、Sh111のステップにおいて決定スイッチ57を検出した場合、その状態において、「はい」「いいえ」のうちいずれのメニュー領域が選択されているかを確認し(Sh112)、「はい」のメニュー領域が選択されている場合、つまり遊技履歴データクリア画面においてクリア操作がなされた場合には、RAM91cの遊技履歴データ記憶領域に記憶されている遊技履歴データのうち、設定変更履歴を除く全てのデータをクリアした後(Sh113)、履歴データのクリアが完了した旨を示すメッセージを表示し(Sh114)、Sh101のステップに戻る。つまり、履歴データクリアの領域が選択された状態で決定スイッチ57を検出したことに基づいて、遊技履歴データのうち、設定変更履歴を除く全てのデータが初期化される。
また、Sh108,109,111の監視状態において設定終了コマンドまたはBETコマンドを取得した場合には、液晶表示器51の表示画面に表示されている履歴データクリア画面を終了した後、通常遊技画面を表示し(Sh128)、遊技店設定用モードを終了して、Sh15のステップに戻る。
Sh105のステップにおいて決定スイッチ57を検出した状態で、「オプション」のメニュー領域が選択されている場合には(Sh115)、オプション画面(図24(a)参照)を表示した後(Sh116)、設定終了コマンドまたはBETコマンドの取得及び選択スイッチ56、決定スイッチ57の操作を監視する(Sh117,118,120)。すなわち、オプション画面中の「ボーナス間情報」「演出紹介」「ボーナス履歴」「スランプグラフ」のうち、選択枠を移動させる操作がなされたか否か、または選択されているメニュー領域に決定する操作がなされたか否かを確認する。
そして、Sh117,118,120の監視状態において、選択スイッチ56を検出した場合は(Sh118)、次の選択メニュー領域に変更する(Sh119)。また、選択メニュー領域を変更した場合、または選択スイッチ56及び決定スイッチ57のいずれの操作も検出しなかった場合はSh117に戻り、再び設定終了コマンドまたはBETコマンドの取得及び選択スイッチ56、決定スイッチ57の操作を監視する(Sh117,118,120)。また、Sh117,118,120の監視状態において設定終了コマンドまたはBETコマンドを取得した場合には、液晶表示器51の表示画面に表示されているオプション画面を終了した後、通常遊技画面を表示し(Sh128)、遊技店設定用モードを終了して、Sh15のステップに戻る。
そして、Sh117,118,120の監視状態において決定スイッチ57を検出した場合(Sh120)、その状態において、「戻る」のメニュー領域が選択されているか否かを確認し(Sh121)、「戻る」のメニュー領域が選択されている場合には、閲覧可能設定欄に「ON」が表示されている項目の閲覧有効フラグを設定する一方、「OFF」が表示されている項目の閲覧有効フラグをクリアした後(Sh122)、Sh101のステップに戻る。
また、Sh121のステップにおいて「戻る」のメニュー領域が選択されていない場合、すなわち他のいずれかのメニュー領域が選択されている場合には、対応する閲覧可能設定欄の表示を切り替える(Sh123)。具体的には、閲覧を有効とする旨を示す「ON」が表示されている状態では閲覧を有効としない旨を示す「OFF」に切り替わり、「OFF」が表示されている状態では「ON」に切り替え、Sh117のステップに戻る。
Sh105のステップにおいて決定スイッチ57を検出した状態で、「設定変更履歴」のメニュー領域が選択されている場合には(Sh124)、設定変更履歴画面(図24(c)参照)を表示した後(Sh125)、決定スイッチ57の操作及び設定終了コマンドまたはBETコマンドの取得を監視する(Sh126,127)。すなわち、設定変更履歴画面中においては「戻る」のメニュー領域しか選択できないので、当該メニュー領域に決定する操作がなされたか否か、及び設定終了コマンドまたはBETコマンドの取得を確認し、Sh126のステップにおいて決定スイッチ57を検出した場合、Sh101のステップに戻る。また、Sh126,127の監視状態において設定終了コマンドまたはBETコマンドを取得した場合には、液晶表示器51の表示画面に表示されている設定変更履歴画面を終了した後、通常遊技画面を表示し(Sh128)、遊技店設定用モードを終了して、Sh15のステップに戻る。
本実施例では、CPU91aがメイン制御部41からコマンドが送信される際に出力されるストローブ信号(割込信号)の検出に基づき割込処理1として他の処理に割り込んでコマンド受信割込処理を実行するようになっており、このコマンド受信割込処理において、メイン制御部41から送信されたコマンドを取得し、RAM91cに設けられたバッファに格納する処理を行う。
また、CPU91aは、内部タイマからの出力に基づき前述した割込処理2として定期的(本実施例では1.12ms毎)にタイマ割込処理(サブ)を実行するようになっており、このタイマ割込処理において、各種演出を行うための制御等を行う。
図27は、CPU91aがタイマ割込処理(サブ)の制御内容を示すフローチャートである。
タイマ割込処理(サブ)においては、まず、レジスタをRAMに退避して(Si1)、タイマ割込処理(サブ)の終了後に、割込前の処理に復帰できるようにする。
次いで、各種センサやスイッチ、信号の検出状態を取得するスイッチ検出処理を実行した後(Si2)、通常処理フラグがセットされているか否か、すなわち初期化コマンドの監視期間が終了したか否かを確認し(Si3)、通常処理フラグがセットされていれば、ゲーム処理に移行したものとして、メイン制御部41から出力されたコマンドがバッファされているか否かを確認する(Si4)。また、Si3のステップにおいて通常処理フラグがセットされていなければ、Si18のステップに進む。
Si4のステップにおいてコマンドがバッファされていれば、バッファされているコマンドが、遊技状態コマンド、内部当選コマンド、待機コマンド、設定終了コマンドのうちのいずれかであるか否かを確認し(Si5、Si8、Si10、Si14)、これらいずれのコマンドでもない場合は、バッファされているコマンドの内容に応じた演出用周辺機器(液晶表示器51やランプ、LED、スピーカ)の制御内容を設定する演出設定処理と(Si16)、設定された制御内容に従って演出用周辺機器を制御する演出制御処理とを行うことにより(Si17)、コマンドに応じた演出状態に制御し、Si18のステップに進む。
Si5のステップにおいてバッファされているコマンドが遊技状態コマンドであれば、サブ制御部91のRAM91cにおける遊技履歴データ記憶領域に記憶されている遊技履歴データを、受信した遊技状態コマンドに基づいて最新のデータに更新した後(Si6)、選択・決定スイッチ(選択スイッチ56、決定スイッチ57)の操作が有効である旨を示す選択・決定スイッチ有効フラグをセットし(Si7)、Si18のステップに進む。
Si8のステップにおいてバッファされているコマンドが内部当選コマンドであれば、選択・決定スイッチ有効フラグをクリアし(Si9)、Si18のステップに進む。
Si10のステップにおいて受信したコマンドが待機コマンドであれば、待機画面表示フラグをセットした後(Si11)、その時点で液晶表示器51の表示画面にいずれかの遊技履歴データが表示されているか否かを確認し(Si12)、表示されていればそのままSi18に進み、表示されていなければ、待機コマンドに基づく待機画面を表示させた後(Si13)、Si18のステップに進む。
Si14のステップにおいて受信したコマンドが設定終了コマンドであれば、遊技履歴データ記憶領域に記憶されている設定変更履歴を更新した後(Si15)、Si18のステップに進む。
また、Si4のステップにおいてコマンドを受信していなければ、選択・決定スイッチ有効フラグの有無に基づいて、選択スイッチ56、決定スイッチ57の操作が有効であるか否かを確認し(Si21)、操作が有効であれば選択・決定スイッチの操作が検出されたか否かを確認する(Si22)。Si19のステップにおいて選択・決定スイッチの操作が有効でない、またはSi22のステップにおいて選択・決定スイッチを検出していなければ、そのままSi18のステップに進む。
そして、Si22のステップにおいて選択・決定スイッチを検出していれば、当該操作は遊技履歴データ画面から通常遊技画面に戻す操作であるか否かを確認し(Si23)、遊技履歴データ画面から通常遊技画面に戻す操作でなければ、閲覧のための操作であるとして、操作に応じた表示画面に更新し(Si24)、Si18のステップに進む。また、Si23のステップにおいて遊技履歴データ画面から通常遊技画面に戻す操作であれば、待機画面表示フラグがセットされているか否かを確認し(Si25)、待機画面表示フラグがセットされていなければ、通常遊技画面を表示し(Si26)、そのままSi18のステップに進み、待機画面表示フラグがセットされていれば、待機画面を表示し(Si27)、そのままSi18のステップに進む。
そして、Si18のステップにおいては、各種カウンタを更新するカウンタ更新処理を行う。カウンタ更新処理では、遊技履歴データとしてRAM91cに記憶されている投入枚数カウンタ、払い出し枚数カウンタの更新も行う。
次いで、サブ制御部91のRAMの内容、すなわち演出状態のバックアップを正常に行うための処理、詳しくは、前述した起動処理(サブ)でバックアップされているデータが正常か否かを確認するためのパリティやRAM診断データを作成して保存するバックアップ処理を行い(Si19)、Si1において退避したレジスタを復帰した後(Si20)、割込前の処理に戻る。
以上説明したように、本実施例のスロットマシン1では、RAM91cに記憶されている遊技履歴データを初期化する履歴データ設定更新処理は、電源投入時において、前述したように前面扉により被覆された状態に設けられた設定キースイッチ37の操作がなされていない限り実行されることがない初期化1処理(Sa15)が実施されたとサブ制御部91が判定したときに制御する遊技店設定用モード(初期化可状態)において、選択・決定スイッチ(選択スイッチ56、決定スイッチ57)の操作による初期化操作がなされたときに行われるため、遊技者が遊技履歴データを勝手に初期化して、他の遊技者が短期的な遊技履歴データしか閲覧できなくなるといった不具合が発生することを効果的に防止できる。
また、サブ制御部91は、電源投入時において時計装置96から日付を取得するとともに、該取得した日付をRAM91cの日付記憶領域に記憶するようになっており、起動処理において日付を取得したときに、該取得した日付と前記日付記憶領域に記憶されている日付とが一致しているか否かを判定し、該判定結果に基づいて、前回の起動処理から当該起動処理の間に日付の変更があったか否かを判定するようになっている。そして、日付が変更した場合には、RAM91cに記憶される複数種類の遊技履歴データのうち、毎日初期化する必要がある本日の遊技履歴が記憶される領域が、遊技店設定用モードにおいて所定の初期化操作を行うことなく初期化(クリア)される。つまり、日付の変更に応じて本日の遊技履歴データが初期化されることで、遊技場の店員等による遊技履歴データの初期化作業の手間が省けるため、遊技場の負担が軽減される。
尚、本実施例では、日付が変更されたか否かを、前回の起動処理の実施時に記憶していた日付と今回の起動処理の実施時に取得した日付とを比較することで判定していたが、日付変更の有無の判定方法はこれに限定されるものではなく、日付の変更を判定できるものであれば、必ずしも日付に基づいて判定するものに限定されるものではなく、例えば起動処理時に時計装置96から時刻情報を取得し、該取得した時刻が予め定められた営業開始時間前(もしくは営業時間終了後)であるか否かを判定し、営業開始時間前(もしくは営業時間終了後)であるときには、本日の遊技履歴データを初期化するようにしてもよい。
また、本実施例では、起動処理(サブ)の実行時に日付を取得して記憶するようにするとともに、前回の起動処理時から今回の起動処理時までの間に日付けの変更がされたか否かを判定し、該判定結果に基づいて本日の遊技履歴データの初期化を行うようになっていたが、例えばスロットマシンの電源をOFFにしたとき(終了処理時)等にも日付を記憶するようにし、前回スロットマシンの電源をOFFにしたときから日付けの変更があったか否かを判定し、該判定結果に基づいて本日の遊技履歴データの初期化を行うようにしてもよい。
また、本実施例では、リアルタイムクロック等からなる時計装置96により計時された時刻や日付等の計時情報に基づいて日付けの変更があったか否かを判定するようになっていたが、例えば演出制御基板90上に実装したカウンタ等により、例えば前回起動処理が実行されたときから今回起動処理が実行されるまでの時間を計時し、計時された時間が24時間以上であるか否かに基づいて日付の変更があったか否かを判定するようにしてもよい。
また、遊技履歴データの初期化は、電源投入時においてメイン制御部41が実行する初期化1処理とともに行うことができるばかりか、遊技履歴データを閲覧する際に使用する選択・決定スイッチを利用するため、初期化処理の手間を軽減できる。
また、本実施例では、電源投入時においてメイン制御部41が初期化1を実行したか否かをサブ制御部91が判定し、初期化1が実行されたと判定したときに、遊技履歴データの初期化が可能な遊技店用モードに制御する(初期化時メニュー画面の表示)ようになっていたが、例えば初期化1が実行されたか否かに関わらず、メイン制御部41が初期化1を実行可能な状態に移行したか否か、つまり設定変更モードに移行した否かを設定開始コマンドの取得に基づいて判定し、設定変更モードに移行したと判定したときに、遊技履歴データの初期化が可能な遊技店用モードに制御する(初期化時メニュー画面の表示)ようにしてもよい。
また、設定変更モードにおいてメイン制御部41が初期化1を実行し、かつ設定変更処理が開始したか否かを設定開始コマンド等の取得に基づいて判定し、初期化1及び新たな設定値を設定する処理が開始されたと判定したときに、遊技履歴データの初期化が可能な遊技店用モードに制御する(初期化時メニュー画面の表示)ようにしてもよい。
また、遊技履歴データが記憶されるRAM91cは、遊技制御基板40とは別個に設けられた演出制御基板90に設けられることで、メイン制御部41の制御負荷を効果的に軽減できるばかりか、演出制御基板90は中継基板80を介して遊技制御基板40に接続され、遊技の制御を行うメイン制御部41が搭載される遊技制御基板40に直接接続されないため、外部から不正な信号がメイン制御部41に入力されて遊技の制御に影響を与えてしまうことを防止できる。
また、サブ制御部91は、電源投入時処理において割込禁止を解除したときから所定時間が経過するまでの期間、メイン制御部41からの初期化コマンドの受信待ちの状態となり、通常処理フラグをセットせずに待機することで、電源が投入されたときにメイン制御部41によるRAM41cの初期化1処理が行われなかった場合に、該初期化1処理が行われなかった旨を示す初期化コマンド等をサブ制御部91に出力しなくても、前記所定期間中に初期化コマンドを受信しなかった場合には通常処理フラグをセットして通常処理(タイマ割込処理)を実行して演出に関する制御を開始する。このようにサブ制御部91は、初期化1処理が行われなかった旨を示す初期化コマンド等を受信しなくても、メイン制御部41において初期化1処理が行われたか否かを判定することができるため、サブ制御部91に出力するコマンドの種類を極力低減し、RAM41cにおけるデータの記憶領域を削減することができる。
また、サブ制御部91は、遊技店設定用モードに制御している状態(初期化時メニュー画面の表示中)において、初期化時メニュー画面を終了する操作がなされたときか、設定変更処理が終了したことに基づいて送信される設定終了コマンドを取得したときに、遊技店設定用モードを終了するようになっているとともに、遊技店設定用モードに制御している状態において、遊技の進行に関わる操作である賭数の設定操作(1枚BETスイッチ5、MAXBETスイッチ6やメダルの投入操作)に基づいて送信されるBETコマンドを取得したときにも、該遊技店設定用モードを終了するようになっているため、遊技店設定用モードにおいて設定終了コマンドを何らかの不具合により検出できなかったとしても、BETコマンドの取得、すなわち遊技の進行操作に応じて遊技店設定用モードが終了するため、遊技店設定用モードが延々と続いてしまうことが防止される。
また、サブ制御部91は、遊技履歴データの表示中において待機コマンドを受信しても、表示中の画面の終了条件が成立するまでの間は待機画面に切り替えることはしないため、不用意に待機画面の表示に切り替わり、遊技者に不快感を与えてしまうことを防止することができる。また、表示中に待機コマンドを受信したときは、遊技履歴データの表示が終了したときに待機画面を表示することで、遊技履歴データの表示終了後にメイン制御部41が待機コマンドを再度送信しなくても済むため、メイン制御部41の制御負荷を軽減できる。
また、遊技場の店員等しか操作することができない設定キースイッチ37(筐体内に設けられ、施錠装置を解錠して前面扉を開放しない限り操作出来ない状態に設けられたスイッチ)の操作が検出されている状態で電源が投入された時においてのみ、液晶表示器51の表示画面にて表示されるオプション画面において、遊技店がスロットマシン1を管理する際に必要な管理情報の一例である設定値変更履歴等を閲覧することができるため、許容段階の設定(設定値)が不正に変更されているか否かを遊技場の店員が容易に確認することができる。
また、遊技場の店員等しか操作することができない設定キースイッチ37の操作が検出されている状態で電力が投入された時においてのみ、液晶表示器51の表示画面にて表示されるオプション画面において、サブ制御部91のRAM91cに記憶されている複数の遊技履歴データのうち、例えば遊技者に対して秘匿しておきたい所定の遊技履歴データを遊技場の店員等が設定して遊技者から閲覧不可とすることができるばかりか、選択・決定スイッチの操作による表示を許容する遊技履歴データの設定は、遊技店設定用モードに制御されているときにおいてのみ有効となることで、遊技者に秘匿しておきたい遊技履歴データを遊技者等により閲覧可能に設定されることを効果的に防止できる。
次に、RAM41cの初期化についての変形例について説明する。
前記実施例において、CPU41aがRAM41cの初期化を行う際には、ROM41bの初期化テーブルを参照し、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスと初期化サイズを取得し、開始アドレスにポインタを設定し、初期化サイズを設定するとともに、ポインタが設定された初期化アドレスから1バイトづつ該当するアドレスの領域を0クリアし、1バイトクリアする毎に初期化サイズを1減算するとともに、ポインタを1進める処理を、初期化サイズが0になるまで実行することで、初期化条件に応じたRAM41cの領域を初期化しているが、初期化1〜4において初期化される領域を連続するアドレス領域に設定するとともに、初期化テーブルには、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスと、初期化1〜4の全てに共通する終了アドレスと、を登録しておき、CPU41aがRAM41cの初期化を行う際に、初期化テーブルを参照し、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスを取得し、開始アドレスにポインタを設定するとともに、ポインタが設定された初期化アドレスから1バイトづつ該当するアドレスの領域を0クリアし、1バイトクリアする毎に、ポインタを進める処理を、初期化1〜4に共通の終了アドレスの領域がクリアされるまで実行することで、初期化条件に応じたRAM41cの領域を初期化するようにしても良い。
尚、この場合、1バイトクリアする毎に、ポインタが示すアドレスが終了アドレスであるかを判定し、終了アドレスであれば初期化を終了させるようにしても良いが、まず、初期化テーブルから取得した開始アドレスから共通の終了アドレスまでの初期化バイト数を計算して設定し、開始アドレスから1バイトクリアする毎に初期化バイト数を1減算するとともに、ポインタを1進める処理を、初期化バイト数が0になるまで実行し、初期化バイト数が0となった時点で終了アドレスの領域がクリアされたと判定し、初期化を終了することが好ましい。これは、ポインタが示すアドレスと終了アドレスを1バイト毎に比較する処理を行うよりも、初期化バイト数が0か否かを判定する処理の方が処理効率が高いからである。
図29(a)は、RAM41cの格納領域の変形例を示す図であり、図29(b)は、初期化テーブルの変形例を示す図であり、図30は、初期化1の変形例を示すフローチャートである。
図29(a)に示すように、この変形例においては、RAM41cの格納領域が7E00(H)から、設定値ワーク、特別ワーク、重要ワーク、非保存ワーク、一般ワーク、未使用領域、未使用スタック領域、使用中スタック領域の順番で割り当てられている。このため、初期化1、2、4のいずれを行った場合でも、初期化される領域が連続するアドレス領域となる。詳しくは、初期化1において初期化される領域は、使用中スタック領域を除く全ての領域、すなわち、設定値ワーク、特別ワーク、重要ワーク、非保存ワーク、一般ワーク、未使用領域、未使用スタック領域であり、これらの領域は、7E00(H)〜スタックポインタまでの連続するアドレス領域である。また、初期化2において初期化される領域は、一般ワーク、未使用領域、未使用スタック領域であり、これらの領域は、7E53(H)〜スタックポインタまでの連続するアドレス領域である。また、初期化4において初期化される領域は、未使用領域、未使用スタック領域であり、これらの領域は、7F05(H)〜スタックポインタまでの連続するアドレス領域である。尚、初期化2において一般ワーク、未使用領域、未使用スタック領域が初期化されるのに対して、初期化3では、非保存ワーク、未使用領域、未使用スタック領域が初期化されるので、初期化3において初期化される未使用領域及び未使用スタック領域は、連続するアドレス領域となるが、非保存ワークは連続しないアドレス領域となる。
図29(b)に示すように、この変形例において適用する初期化テーブルには、初期化1〜4に対応して開始アドレスが登録されているとともに、初期化1〜4に共通する終了アドレスが登録されている。また、初期化3については、非保存ワークが連続しないアドレス領域となるので、非保存ワークの開始アドレスに対応して初期化サイズが登録されている。
次に、図30に示すフローチャートに基づいて、CPU41aが実行する初期化1の変形例を説明する。
この初期化1では、まず、ROM41bの初期化テーブルを参照し、初期化1に対応して登録されている開始アドレスを読み出す(Sf1001)。そして、読み出した開始アドレス(7E00(H))にポインタをセットする(Sf1002)。次いで、ROM41bの初期化テーブルを参照し、初期化1〜4に共通の終了アドレスを読み出す(Sf1003)。そして、Sf1001で読み出した開始アドレス(7E00(H))からSf1003で読み出した終了アドレス(スタックポインタ)までのバイト数を計算し(Sf1004)、計算したバイト数を初期化する領域のバイト数をセットする(Sf1005)。そして、Sf1002でセットされた開始アドレスからSf1005でセットされたバイト数にわたりデータをクリアするRAMクリア処理を実行し(Sf1006)、RAMクリア処理が終了すると、初期化1を終了してもとの処理に復帰する。
また、初期化2、4の変形例は、図30に示す初期化1の変形例とほぼ同様の処理であり、初期化テーブルに登録されている初期化2または初期化4の開始アドレスを取得し、開始アドレスから共通の終了アドレスまでのバイト数を計算し、開始アドレスから計算したバイト数にわたりデータをクリアする処理を行う。また、初期化3の変形例では、まず、初期化テーブルに登録されている非保存ワークの開始アドレスと初期化サイズを取得し、開始アドレスから初期化サイズ分のバイト数にわたりデータをクリアした後、初期化テーブルに登録されている未使用領域及び未使用スタック領域の開始アドレスを取得し、開始アドレスから共通の終了アドレスまでのバイト数を計算し、開始アドレスから計算したバイト数にわたりデータをクリアする処理を行う。
上記のようなRAM41cの初期化の変形例によれば、複数の初期化条件について、初期化テーブルに対応する開始アドレスとこれら複数の初期化条件に共通の終了アドレスのみを設定しておくことで、複数の初期化条件に対応する終了アドレスを個々に設定しておくことなく、複数の初期化条件に対応する領域を初期化することができるので、複数種類の初期化を行うためのプログラム容量を削減できる。
次に、RAM41cに格納されているデータの異常判定等の変形例について説明する。
前記実施例では、電断割込処理においてRAM41cのRAMパリティが0となるようにRAMパリティ調整用データを格納し、復旧時においてRAM41cのRAMパリティが0か否かを判定することで、RAM41cのデータが正常か否かを判定しているが、もちろん電断割込処理においてRAM41cのRAMパリティが1となるようにRAMパリティ調整用データを格納し、復旧時においてRAM41cのRAMパリティが1か否かを判定することで、RAM41cのデータが正常か否かを判定するようにしても良い。更には、電断割込処理においてRAM41cの全ての領域のチェックサム(該当する領域に格納されているデータの排他的論理和)を計算し、特定の領域に格納するとともに、復旧時において、RAM41cのチェックサムが格納されている特定の領域を含む全ての領域のチェックサムを計算し、その結果が00HであればRAM41cのデータが正常であると判定し、00HでなければRAM41cのデータが異常であると判定するようにしても良い。
これは、電断割込処理において正常にチェックサムが格納されていれば、復旧時において特定の領域を除く領域のチェックサムと特定の領域に格納されているデータ(電断時に計算したチェックサム)が同じ値をとるはずであり、特定の領域を除く領域のチェックサムと特定の領域に格納されているデータが一致するのであれば、双方のデータの排他的論理和を計算するとその結果が00Hとなるので、RAM41cのチェックサムが格納されている特定の領域を含む全ての領域のチェックサムを計算した結果が00Hであれば、RAM41cのデータが正常であると判定できるためである。
尚、この場合にも、電断割込処理において、チェックサムを計算する前にいずれかのビットが1となる破壊診断用データ(例えば5AH)を所定のアドレスに格納し、復旧時においては、チェックサムが00Hか否かの判定に加えて、破壊診断用データが正常に格納されているか否かの判定を行い、チェックサムが00Hであり、かつ破壊診断用データも正常であることを条件に、RAM41cのデータが正常であると判定することが好ましい。RAM41cのデータが正常でなくても、全ての領域に00Hが格納されている場合には、起動時のチェックサムの判定により正常であると判定されてしまうが、停電時にいずれかのビットが1となる破壊診断用データを格納した後、チェックサムを計算し、特定の領域に格納しておくとともに、起動時にチェックサムの判定に加えて破壊診断用データのチェックも行うことで、例え、起動時において全ての領域が0クリアされてしまい、チェックサムが00Hとなり正常と判定された場合にも、破壊診断用データが停電時に格納された値と一致しなくなり、異常と判定されるため、RAM41cに格納されているデータの異常の判定精度を高めることができる。
また、上記では、電断割込処理においてRAM41cのRAMパリティまたはチェックサムを計算し、RAM41cに格納するとともに、復旧時においてRAM41cの全ての領域に基づいて計算したRAMパリティが0であるか否か、またはRAM41cの全ての領域に基づいて計算したチェックサムが00Hであるか否か、に基づいてRAM41cのデータが正常か否かを判定しているが、電断割込処理においてRAM41cのRAMパリティまたはチェックサムを計算し、特定の領域に格納するとともに、復旧時においてRAM41cの特定の領域を除くRAMパリティまたはチェックサムを計算し、特定の領域に格納されているRAMパリティまたはチェックサムとの比較結果が一致するか否かによってRAM41cのデータが正常か否かを判定するようにしても良い。尚、この場合にも上記と同様に、RAMパリティやチェックサムを計算する前にいずれかのビットが1となる破壊診断用データを所定のアドレスに格納し、復旧時においては、RAMパリティやチェックサムが一致するか否かの判定に加えて、破壊診断用データが正常に格納されているか否かの判定を行い、RAMパリティやチェックサムが一致し、かつ破壊診断用データも正常であることを条件に、RAM41cのデータが正常であると判定することが好ましい。
また、前記実施例では、電断割込処理において破壊診断用データとして、5AHをRAM41cに格納しているが、0以外のデータを格納し、起動時に確認できるものであれば良く、このような構成であっても、起動時において全ての領域が0クリアされてしまった場合に破壊診断用データが停電時に格納された値と一致しなくなり、異常と判定されるため、RAM41cに格納されているデータの異常の判定精度を高めることができる。
また、前記実施例では、CPU41aの起動時において、RAM41cのRAMパリティを計算し、その結果が0であるか否かを判定し、RAMパリティが0であることを条件に破壊診断用データが正常に格納されているか否かの判定を行っているが、まず、破壊診断用データが正常に格納されているか否かを判定し、破壊診断用データが正常に格納されていることを条件に、RAM41cのRAMパリティを計算し、その結果が0であるか否かを判定するようにしても良く、このようにすれば、破壊診断用データが正常に格納されていない場合には、RAMパリティを計算せずに、RAM41cのデータが異常である旨を判定することができる。
また、前記実施例では、メイン制御部41の起動時においてのみRAM41cのデータが正常か否かを判定しているが、その他の契機、例えば、1ゲーム毎に判定するようにしても良い。
また、前記実施例では、メイン制御部41とは別個に設けられたリセット回路49からのリセット信号に基づいてメイン制御部41が起動するようになっているが、リセット回路をメイン制御部41を構成するマイクロコンピュータが搭載していても良い。
また、前記実施例では、メイン制御部41を構成するマイクロコンピュータにRAM41cが搭載されているが、マイクロコンピュータの外部に当該マイクロコンピュータのワークとして用いるRAMを搭載したものであっても良い。
また、前記実施例では、電断検出回路48が、スロットマシン1に用いられる直流電圧を監視し、当該直流電圧が一定の電圧以下となったときに電断を検出しているが、例えば、当該直流電圧が一定の電圧以下となった期間が一定期間継続したときに電断を検出するようにしても良い。また、スロットマシン1に供給される交流電圧を監視し、交流電圧の波形の乱れを検出したとき、またはその期間が一定期間継続したときに電断を検出するようにしても良い。
また、前記実施例では、電断検出回路48が、遊技制御基板40に搭載されているが、その他の場所に搭載されていても良く、例えば、電源基板100や電源基板100から遊技制御基板40への電源の供給ラインが経由する中継基板等に搭載されていても良い。
また、前記実施例では、各種エラー状態の内容をエラー状態に応じたエラーコードを遊技補助表示器12に表示させることで、エラーを報知するようになっている。すなわちメイン制御部41により制御される報知手段により報知されているが、これらメイン制御部41により制御される報知手段に加えて、エラー状態を示すコマンドをサブ制御部91に対して送信し、サブ制御部91により制御される報知手段によりエラーの報知が行われるようにしても良いし、メイン制御部41により制御される報知手段による報知を行わず、サブ制御部91により制御される報知手段によりエラーの報知が行われるようにしても良い。
また、本実施例のスロットマシン1では、設定値ワークから読み出した値が1〜6の範囲か否か、すなわち内部抽選に用いる設定値が適正な範囲の値か否かを判定する処理を1ゲーム毎に実行し、設定値ワークから読み出した値が1〜6の範囲の値でない場合、RAM異常エラーによるエラー状態に制御され、ゲームの進行が不能化される。本実施例において設定値ワークに格納される値、すなわち設定変更処理により選択可能な設定値の範囲は1〜6の値であるので、設定値ワークに格納されている値が1〜6の範囲の値でなければゲームの進行が不能化されることとなる。
更に、設定された賭数が遊技状態に応じた賭数であるか否かを判定する処理を1ゲーム毎に実行し、設定された賭数が遊技状態に応じた賭数ではない場合にも、RAM異常エラーによるエラー状態に制御され、ゲームの進行が不能化される。本実施例では、遊技状態毎に対応する賭数が定められているが、その賭数とは異なる賭数でゲームが行われている場合には、RAM41cに格納されているデータが壊れているか、或いは不正なプログラムが作動している可能性があるので、設定された賭数が遊技状態に応じた賭数ではない場合にもゲームの進行が不能化されることとなる。
そして、一度RAM異常エラーによるエラー状態に制御されると、設定変更モードに移行させて、設定変更操作に基づいて設定値を新たに選択・設定しなければ、ゲームの進行が不能化された状態が解除されない。すなわちデータ化けや不正なプログラムの作動などにより、設定値が適正でない場合や設定された賭数が遊技状態に応じた賭数ではない場合には、スロットマシンにより自動的に設定された設定値ではなく、設定変更操作に基づいて選択・設定された設定値(一般的に、設定変更操作は遊技店の従業員により行われるので、遊技店側が選択した設定値である)に基づいてゲームが行われることが担保されるので、ゲームの公平性を図ることができる。
尚、本実施例では、内部抽選処理において入賞の当選を判定する際に、適正な設定値ではないと判定された場合には、RAM異常エラー状態に制御されるようになっているが、RAM41cの設定値ワークに格納されている設定値が適正な値(1〜6の範囲の値)でない場合に、設定値の初期値(例えば、設定値1)に基づく確率で入賞の当選を判定するようにしても良い。
また、本実施例のスロットマシン1では、メイン制御部41のRAM41cにおける未使用領域が1ゲーム毎に初期化されるので、RAM41cの未使用領域を利用して不正プログラムを格納させても、当該不正プログラムが常駐してしまうことを防止できる。
また、本実施例では、RAM41cにおける未使用領域に加えてスタック領域における未使用スタック領域も1ゲーム毎に初期化されるので、RAM41cにおいてその時点で使用されていない全ての領域が1ゲーム毎に初期化されることとなり、例え、RAM41cの未使用領域を利用せずに未使用スタック領域を利用して不正プログラムを格納させようとしても、当該不正プログラムが常駐してしまう余地を無くすことができるので、不正プログラムが常駐してしまうことを一層確実に防止できるとともに、例えば、未使用スタック領域に不正なデータ(不正プログラムが指定するアドレス等)を加え、データの復帰時にマイクロコンピュータを誤作動させることでレジスタを不正なものに書き換えてしまうことにより、本来のプログラムとは異なる動作を行わせてしまうような不正も防止できる。更に、未使用スタック領域に不正なデータが格納されることによって、本来であれば退避したデータを格納できるはずの領域が圧迫され、スタック領域がオーバーフローしてしまい、メイン制御部41を構成するマイクロコンピュータが暴走してしまう等の不具合も防止できる。
尚、本実施例では、RAM41cの未使用領域及び未使用スタック領域を1ゲーム毎に初期化しているが、少なくともRAM41cの未使用領域または未使用スタック領域のいずれか一方の領域を1ゲーム毎に初期化するものであれば良い。
また、本実施例では、ゲーム終了時にRAM41cの未使用領域及び未使用スタック領域を初期化する初期化4を毎ゲーム実行することで、RAM41cの未使用領域や未使用スタック領域を1ゲーム毎に初期化しているが、少なくとも1ゲーム毎に1回以上RAM41cの未使用領域及び/または未使用スタック領域が初期化されるものであれば、RAM41cの未使用領域及び/または未使用スタック領域の初期化を行うタイミングは、1ゲーム中のどのタイミングであっても良く、例えば、ゲーム開始時や1ゲーム毎に必ず実行される処理の実行時にRAM41cの未使用領域及び/または未使用スタック領域の初期化を行うものであっても良い。
また、設定開始前(設定変更モードへの移行前)、ビッグボーナス終了時、起動時にRAM41cのデータが破壊されていないとき、1ゲーム終了時の4つからなる初期化条件が成立した際に、各初期化条件に応じて初期化される領域の異なる4種類の初期化1〜4を行うとともに、これら4種類の初期化条件のうちどの条件が成立した場合でも、必ずRAM41cにおける未使用領域及びスタック領域における未使用スタック領域が初期化されるので、不正プログラムが常駐してしまうことを一層確実に防止できる。
特に、起動時においてRAM41cのデータが破壊されていないときに、必ずRAM41cにおける未使用領域及びスタック領域における未使用スタック領域が初期化されるので、RAM41cの未使用領域や未使用スタック領域を利用して不正プログラムや不正データが格納された場合にも、当該不正プログラムや不正データが格納されたままメイン制御部41の制御状態がRAM41cのデータに基づいて復帰してしまうことを防止できる。
また、電断割込処理において、いずれかのビットが1となる破壊診断用データをRAM41cの所定アドレスに格納した後、RAM41cの未使用領域及び未使用スタック領域を含む全てのデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、格納するとともに、復旧時においてRAM41cにおける未使用領域及び未使用スタック領域を含む全ての領域に格納されているデータに基づいて計算したRAMパリティが0か否か、及び破壊診断用データが格納されているか否か、を判定し、RAMパリティが0でなかった場合、またはRAMパリティが0であっても破壊診断用データが正常に格納されていない場合には、RAM異常エラーによるエラー状態となり、設定キースイッチ37をONの状態で電源投入し、RAM41cの使用中スタック領域を除く全ての領域を初期化する初期化1が行われるまで、ゲームの進行が不可能となるので、起動時にRAM41cの未使用領域及び/または未使用スタック領域に不正プログラムが格納された場合でも、当該不正プログラムを発見して初期化することができる。
更に、RAM41cに格納されているデータが正常ではないと判定され、RAM異常エラー状態となると、RAM41cの使用中スタック領域を除く全ての領域を初期化する初期化1が行われるようになっており、RAM41cに格納されているデータが正常ではないと判定されたときにも、その後、設定キースイッチ37がONの状態で電源投入されたときにも、RAM41cの使用中スタック領域を除く全ての領域を初期化する初期化1が行われるので、RAM41cに格納されている可能性がある不正プログラムを確実に除去することができる。
また、本実施例では、RAM41cに記憶されているデータに異常が生じた場合には、RAM異常エラーによるエラー状態に制御され、ゲームの進行が不能化されるとともに、一度RAM異常エラーによるエラー状態に制御されると、設定変更モードに移行し、設定変更操作に基づいて設定値を新たに選択・設定しなければ、ゲームの進行が不能化された状態が解除されない。すなわち、RAM41cに記憶されているデータに異常が生じても、スロットマシンにより自動的に設定された設定値ではなく、設定変更操作に基づいて選択・設定された設定値(一般的に、設定変更操作は遊技店の従業員により行われるので、遊技店側が選択した設定値である)に基づいてゲームが行われることが担保されるので、ゲームの公平性を図ることができる。
尚、本実施例では、上記のようにRAM異常エラーによるエラー状態に制御され、ゲームの進行が不能化された後は、設定変更モードにおいて設定変更操作に基づいて設定値を新たに選択・設定しなければ、ゲームの進行が不能化された状態が解除されないようになっていたが、設定変更モードに移行することを条件にゲームの進行の不能化が解除されるようにしてもよい。
また、RAM41cに記憶されたデータに異常が生じるのは、停電時やCPU41aが暴走する等、制御に不具合が生じて制御を続行できないときがほとんどである。このため本実施例では、これらの状態から復旧してCPU41aが起動するときにおいてのみデータが正常か否かの判定を行うようになっているので、RAM41cに記憶されたデータが正常か否かの判定をデータに異常が生じている可能性が高い状況においてのみ行うことができる。すなわちデータに異常が生じている可能性の低い状況では、当該判定を行わずに済み、CPU41aの負荷を軽減させることができる。
また、本実施例では、電断割込処理においてRAM41cの全てのデータに基づくRAMパリティ、すなわち排他的論理和演算した結果が0となるようにRAMパリティ調整用データを計算し、格納するとともに、復旧時においてRAM41cにおける全ての領域に格納されているデータに基づいて計算したRAMパリティが0か否かを判定することで、RAM41cのデータが正常か否かを判定しているので、当該判定を正確にかつ簡便に行うことができる。
また、本実施例では、電断割込処理において、いずれかのビットが1となる破壊診断用データ(本実施例では、5AH)、すなわち0以外の特定のデータをRAM41cの所定のアドレスに格納した後、この破壊診断用データを含むRAM41cの全てのデータに基づくRAMパリティが0となる調整用データを格納し、起動時においてRAMパリティが0か否かの判定に加えて、破壊診断用データが正常に格納されているか否かの判定を行い、RAMパリティが0であり、かつ破壊診断用データも正常に格納されていることを条件に、RAM41cのデータが正常であると判定し、RAM41cに格納されているデータに基づいて制御状態を復帰させるようになっている。これにより、全ての領域に00Hが格納されている場合、すなわちRAM41cのデータが正常でなくても、RAM41cのデータが0クリアされてしまった場合には、起動時のRAMパリティの判定により正常であると判定されてしまうが、RAM41cのデータが0クリアされてしまった場合には、破壊診断用データが格納されるべき領域も0となり、RAM41cのデータが正常ではないと判定され、誤ってRAM41cのデータが正常であると判定されてしまうことを防止できるので、起動時においてRAM41cのデータが正しい内容であるか否かの判定精度を一層高めることができる。
また、CPU41aは、起動時においてRAMパリティが0であり、かつ破壊診断用データも正常に格納されていると判定し、RAM41cのデータが正常であると判定すると、RAM41cに格納されている破壊診断用データをクリアするようになっているので、起動後もRAM41cに破壊診断用データが格納されたままの状態となることで、次回起動時においてRAM41cのデータが正常ではないにも関わらず、破壊診断用データが格納されているために正常であると誤って判定してしまうことを防止できる。
また、本実施例では、RAM41cのデータに異常が生じて、ゲームの進行が不能化された場合には、ゲームの進行が不能化された状態を解除する条件となる設定値の変更操作が有効となる設定変更モード(設定変更処理)へ移行することに伴って、RAM41cの使用中スタック領域を除く全ての領域が初期化されるので、RAM41cのデータに異常が生じたことに伴うデータの初期化及び設定値の選択・設定に伴うデータの初期化を1度で行うことができ、無駄な処理を省くことができる。更に、CPU41aの起動時には、RAM41cのデータが正常か否かを判定する前に、設定キースイッチ37がONの状態であるか否かを判定し、その時点で設定キースイッチ37がONの状態であると判定した場合には、RAM41cのデータが正常か否かの判定は行わず、設定変更モードに移行し、新たに設定値が選択・設定されることとなり、この場合にも無駄な処理を省くことができる。
尚、本実施例では、設定変更処理に移行する前に、RAM41cの使用中スタック領域を除く全ての領域を初期化する初期化1を行っているが、設定変更処理に移行することに伴って初期化1が行われれば良く、例えば、設定変更処理の終了後に行っても良いし、設定変更処理において設定値が確定した時点で行っても良い。尚、この場合には、確定した設定値が変更されてしまうと不都合が生じるので、初期化1においては、RAM41cの使用中スタック領域及び設定値ワークを除く全ての領域が初期化されることとなる。
また、本実施例では、一度RAM異常エラーによるエラー状態に制御されると、設定変更処理が行われるまで、ゲームが不能動化されるようになっているが、RAM異常エラーによるエラー状態となったときに、RAM41cの使用中スタック領域を除く全ての領域を初期化する初期化1を行うとともに、設定値を初期値(例えば、設定値1)に設定し、この状態でリセット操作がなされることで、ゲームを再開できるようにしても良い。
また、本実施例では、CPU41aが演出制御基板90に対して遊技の進行に応じたコマンドを送信し、演出制御基板90に搭載されたサブ制御部91は、遊技制御基板40から送信されたコマンドに基づいて演出の制御を行うようになっており、CPU41aは、コマンドを送信するのみで演出の制御を行う必要がないので、CPU41aの処理負荷を軽減できるうえに、演出を多彩なものにできる。
また、遊技制御基板40から演出制御基板90にコマンドが送信されるコマンド伝送ラインが、遊技制御基板40と演出制御基板90との間で演出中継基板80を介して接続されており、遊技制御基板40に演出制御基板90が直接接続される構成ではないので、コマンド伝送ラインからCPU41aに対して外部から不正な信号が入力され、遊技の制御に影響を与えられてしまうことを防止できる。
また、本実施例では、トリガー端子CLK/TRGに電圧低下信号が入力されることで、CPU41aが実行中の処理に割り込んで電断割込処理を実行するようになっているが、電断割込処理では、破壊診断用データを設定する処理やRAMパリティ調整用データを計算して設定する処理等、復旧時にRAM41cのデータが正常であるかを判定可能とするための処理や出力ポートの初期化等を行う前に、信号入力端子DATAに電圧低下信号が入力されているか否かの判定を行い、信号入力端子DATAにも電圧低下信号が入力されていれば、復旧時にRAM41cのデータが正常であるかを判定可能とするための処理や出力ポートの初期化等を行うのに対して、信号入力端子DATAに電圧低下信号が入力されていなければ、もとの処理に復帰するようになっている。
すなわち、メイン制御部41には、電圧低下信号が2系統の入力部に入力され、CPU41aは、一方の入力部に電圧低下信号が入力されて電断割込処理を実行しても、復旧時にRAM41cのデータが正常であるかを判定可能とするための処理や出力ポートの初期化等が実行される前に再度他方の入力部に電圧低下信号が入力されているか否かを判定し、他方の入力部にも電圧低下信号が入力されていて初めてこれらの処理が実行されるようになっており、電断を誤って検出した際に、誤って復旧時にRAM41cのデータが正常であるかを判定可能とするための処理や出力ポートの初期化等の処理が行われてしまうことが防止できるので、電断を誤って検出することに伴い、必要以上に長い間CPU41aの制御が中断されたり、必要以上に負荷がかかってしまうことを防止できる。
また、電断割込処理及びタイマ割込処理(メイン)の実行中においては、他の割込が禁止されるようになっており、例えば、タイマ割込処理(メイン)の実行中に電圧低下信号が入力された場合でも2重に割込が生じることがなく、CPU41aの処理負荷が増大してしまったりデータの整合性がとれなくなってしまうことを防止できる。特に、コマンドの送信中に電圧低下信号が入力されても、割込が生じて当該コマンドの送信が阻害されることがなく、CPU41aの駆動が停止する前に正常に送信を完了させることができる。
また、電断割込処理の割込タイミングとタイマ割込処理(メイン)の割込タイミングとが同時となった場合、すなわち割込2と割込3が同時に発生した場合には、割込2を優先し、電断割込処理を実行するとともに、タイマ割込処理(メイン)の実行中に割込2が発生した場合には、当該タイマ割込処理(メイン)の終了を待って電断割込処理を実行するようになっており、多重割込を防止しつつも極力早い段階で電断割込処理が行われるので、CPU41aの駆動が停止する前に電断割込処理を確実に行うことができる。
また、CPU41aは、割込1〜4の4種類の割込を実行可能であり、このうち未使用に設定されている割込1、4が発生した場合には、もとの処理に即時復帰させる未使用割込処理を実行するようになっている。このため、未使用の割込1、4が発生したときでも、すぐに割込前の処理に復帰することとなるので、ノイズ等によって未使用の割込が発生してもCPU41aが暴走してしまうといった不具合を防止できる。
以上、本発明の実施例を図面により説明してきたが、本発明はこの実施例に限定されるものではなく、本発明の主旨を逸脱しない範囲における変更や追加があっても本発明に含まれることは言うまでもない。
例えば、前記実施例では、サブ制御部91は、メイン制御部41から出力された初期化コマンドを取得したときに遊技店設定用モードに制御する、つまりメイン制御部1において初期化1が実施されたときにのみ、遊技店設定用モードに制御して、遊技履歴データを初期化できるようになっていたが、初期化コマンドを取得したとき以外において遊技店設定用モードに制御するようにしてもよい。
具体的には、メイン制御部41は、前述したBET処理中において、賭数の設定が可能な状態(メダル投入が可能な状態を含む)で設定キースイッチ37がONとされたときに、設定されている設定値の確認が可能な設定値確認モードに制御可能とし、該設定値確認モードの開始に伴い設定確認開始コマンドをサブ制御部91に送信し、該設定値確認モードの終了に伴い設定確認終了コマンドをサブ制御部91に送信するようにする。
そしてサブ制御部91は、設定確認開始コマンドを取得したときに、前記遊技店設定用モードに制御するとともに、前述した所定の終了操作を検出したとき、または設定確認終了コマンドを取得したときに該遊技店設定用モードの制御を終了するようにすればよい。
このようにすることで、サブ制御部91は、初期化コマンドを取得したとき以外でも遊技店設定用モードに制御することが可能であり、このような場合、特に遊技者から操作不能な位置に配置されたスイッチ(ここでは設定キースイッチ37)等の操作に基づいて遊技店設定用モードに制御するようにすることが好ましい。
また、前記実施例では、電源投入時において、設定変更モードに移行させるための設定キースイッチ37がONとされていることを条件に初期化1が実施されるようになっていたが、本発明にあっては、初期化1が必ずしも設定変更モードへの移行の契機となる操作スイッチの検出に基づいて行われるものに限定されるわけではなく、例えば電源投入時において、設定キースイッチ37とは別個に設けたRAMクリアスイッチ(図示略)等が操作されていることを条件に初期化1の実施が可能な状態(例えば初期化モード等)に移行し、初期化1の実施が可能となるようにしてもよい。つまり設定変更処理と初期化1とを別個に行うことができるようにしてもよい。
また、前記実施例では、電源投入時において設定キースイッチ37がONとされて設定変更モードに移行したときに初期化1が実施されるようになっていたが、例えば設定変更モードに移行した後、所定のRAMクリアスイッチ(図示略)等が操作されたことに基づいて初期化1を実施するようにしてもよい。
また、前記実施例では、サブ制御部91は、メイン制御部41から初期化コマンドを取得したことに基づいて遊技店設定用モードに移行するようになっていたが、例えば該初期化1の処理後に行われる設定変更処理の開始(終了)に基づいて送信される設定開始(終了)コマンドの取得に基づいて遊技店設定用モードに移行するようにしてもよい。つまり、本発明の初期化コマンドを設定開始コマンド等と兼用してもよい。
また、前記実施例では、内部抽選に用いる判定値数が記憶されるRAM41cの判定値数記憶領域は、2バイトの領域を用いて、それぞれの場合における判定値数を記憶するものとしていた。もっとも、一般的なスロットマシンでは、特別役の判定値数は、いずれの遊技状況においても255を超えるものが設定されることはあまりない。このように255を超える判定値数を設定する必要がないものについては、1バイトの領域だけを用いて、判定値数を記憶するものとしても良い。
また、前記実施例では、判定値数が設定値に関わらず共通のものについて、その一部を設定値1〜6の全体に共通して記憶しているが、判定値数が設定値に関わらず共通のものについても、設定値1〜6のそれぞれに対して個別に記憶することもできる。また、判定値数が設定値に関わらず共通のものは、その全てを設定値1〜6の全体に共通して記憶することもできる。
また、前記実施例では、判定値数が、設定値1〜6の全体に共通して記憶されているか、設定値1〜6のそれぞれに対して個別に記憶されているかであった。もっとも、設定値1〜6の全体に共通して判定値数が記憶されない(設定値についての共通フラグが設定されない)ものとして、例えば、設定値1〜3については判定値数が共通、設定値4〜6については判定値数が共通のものとすることもできる。
また、前記実施例では、同一の設定値における同一の役または役の組み合わせについて遊技状態(状態番号)に応じて参照される判定値数が遊技状態(状態番号)のそれぞれに対して異なるアドレスに格納されていた。すなわち同一の設定値における同一の役または役の組み合わせについて遊技状態(状態番号)に応じて参照される判定値数が同じであっても個別に記憶されていたが、遊技状態(状態番号)に関わらず当選確率を同一とするものとした役または役の組み合わせについて、判定値数の格納先のアドレスを共通化したり、設定値及び遊技状態(状態番号)に関わらず当選確率を同一とするものとした役または役の組み合わせについて、判定値数の格納先のアドレスを共通化するようにしても良く、このように判定値数を共通化して格納することで、そのために必要な記憶容量が少なくて済むようになる。
また、前記実施例では、設定値等に応じて取得した判定値数を内部抽選用の乱数の値に順次加算していたが、取得した判定値数を取得した内部抽選用の乱数の値から順次減算して、減算の結果を新たな内部抽選用の乱数の値とするものとしても良い。判定値数を内部抽選用の乱数の値から減算するときには、減算の結果にオーバーフロー(ここでは、減算結果がマイナスとなること)が生じたかどうかを判定するものとすることができる。
また、前記実施例では、内部抽選において、取得した内部抽選用の乱数の値に遊技状態に応じた各役または役の組み合わせの判定値数を順次加算していき、加算結果がオーバーフローしたときに当該役または役の組み合わせを当選と判定するものとしていた。これに対して、遊技状態に応じた各役または役の組み合わせの判定値数に応じて、各役または役の組み合わせを当選と判定する判定値の範囲を定めた当選判定用テーブルをゲーム毎に作成し、取得した内部抽選用の乱数の値を各役または役の組み合わせの判定値の範囲と比較することで、内部抽選を行うものとしても良い。また、各役または役の組み合わせを当選と判定する判定値の範囲を定めた当選判定用テーブルを予めROM41bに格納しておき、取得した内部抽選用の乱数の値を各役の判定値の範囲と比較することで、内部抽選を行うものとしても良い。
また、前記実施例では、通常遊技状態において、賭数として3を設定することのみによりゲームを開始させることができた。これに対して、通常遊技状態においても、賭数として1を設定してゲームを開始させることをできるようにしたり、更には賭数として2を設定してゲームを開始させることをできるようにしても良い。これにより、通常遊技状態で賭数として1または2が設定されていたときには、賭数として3が設定されたときよりも内部抽選における小役の当選確率を低下させるともに、小役に入賞したときの払い出しメダル枚数を増加させることができる。例えば、通常遊技状態で賭数として3が設定されたときには、ベルの当選確率を1/4.82、払出枚数を7枚とするが、賭数として1または2が設定されたときには、ベルの当選確率を1/4.82よりも低くし、払出枚数を7枚よりも多くしても良い。更に賭数として1が設定されたときと2が設定されたときとで、ベルの当選確率及び払出枚数を変えても良い。
また、前記実施例では、乱数発生回路42から抽出した乱数の上位バイト全体を下位バイトで置換し、下位バイト全体を上位バイトで置換するという入れ替えを行っていた。これに対して、乱数発生回路42から抽出した乱数のビットのうちの特定のビットのデータを他のビットのデータ(但し、マスクされる第7、第15ビット以外)で置換するだけであっても良い。また、乱数発生回路42から抽出した乱数の値を、そのまま内部抽選用の乱数として取得するものとしても良い。更に、上記の実施の形態とは異なる方法により内部抽選用の乱数に加工するものとしても良い。
また、前記実施例では、電断割込処理においてRAM41cのRAMパリティが0となるようにRAMパリティ調整用データを格納し、復旧時においてRAM41cのRAMパリティが0か否かを判定することで、RAM41cのデータが正常か否かを判定しているが、もちろん電断割込処理においてRAM41cのRAMパリティが1となるようにRAMパリティ調整用データを格納し、復旧時においてRAM41cのRAMパリティが1か否かを判定することで、RAM41cのデータが正常か否かを判定するようにしても良い。更には、電断割込処理においてRAM41cの全ての領域のチェックサム(該当する領域に格納されているデータの排他的論理和)を計算し、特定の領域に格納するとともに、復旧時において、RAM41cのチェックサムが格納されている特定の領域を含む全ての領域のチェックサムを計算し、その結果が00(H)であればRAM41cのデータが正常であると判定し、00(H)でなければRAM41cのデータが異常であると判定するようにしても良い。
これは、電断割込処理において正常にチェックサムが格納されていれば、復旧時において特定の領域を除く領域のチェックサムと特定の領域に格納されているデータ(電断時に計算したチェックサム)が同じ値をとるはずであり、特定の領域を除く領域のチェックサムと特定の領域に格納されているデータが一致するのであれば、双方のデータの排他的論理和を計算するとその結果が00(H)となるので、RAM41cのチェックサムが格納されている特定の領域を含む全ての領域のチェックサムを計算した結果が00(H)であれば、RAM41cのデータが正常であると判定できるためである。
尚、この場合にも、電断割込処理において、チェックサムを計算する前にいずれかのビットが1となる破壊診断用データ(例えば5A(H))を所定のアドレスに格納し、復旧時においては、チェックサムが00(H)か否かの判定に加えて、破壊診断用データが正常に格納されているか否かの判定を行い、チェックサムが00(H)であり、かつ破壊診断用データも正常であることを条件に、RAM41cのデータが正常であると判定することが好ましい。RAM41cのデータが正常でなくても、全ての領域に00(H)が格納されている場合には、起動時のチェックサムの判定により正常であると判定されてしまうが、停電時にいずれかのビットが1となる破壊診断用データを格納した後、チェックサムを計算し、特定の領域に格納しておくとともに、起動時にチェックサムの判定に加えて破壊診断用データのチェックも行うことで、例え、起動時において全ての領域が0クリアされてしまい、チェックサムが00(H)となり正常と判定された場合にも、破壊診断用データが停電時に格納された値と一致しなくなり、異常と判定されるため、RAM41cに格納されているデータの異常の判定精度を高めることができる。
また、上記では、電断割込処理においてRAM41cのRAMパリティまたはチェックサムを計算し、RAM41cに格納するとともに、復旧時においてRAM41cの全ての領域に基づいて計算したRAMパリティが0であるか否か、またはRAM41cの全ての領域に基づいて計算したチェックサムが00(H)であるか否か、に基づいてRAM41cのデータが正常か否かを判定しているが、電断割込処理においてRAM41cのRAMパリティまたはチェックサムを計算し、特定の領域に格納するとともに、復旧時においてRAM41cの特定の領域を除くRAMパリティまたはチェックサムを計算し、特定の領域に格納されているRAMパリティまたはチェックサムとの比較結果が一致するか否かによってRAM41cのデータが正常か否かを判定するようにしても良い。尚、この場合にも上記と同様に、RAMパリティやチェックサムを計算する前にいずれかのビットが1となる破壊診断用データを所定のアドレスに格納し、復旧時においては、RAMパリティやチェックサムが一致するか否かの判定に加えて、破壊診断用データが正常に格納されているか否かの判定を行い、RAMパリティやチェックサムが一致し、かつ破壊診断用データも正常であることを条件に、RAM41cのデータが正常であると判定することが好ましい。
また、前記実施例では、電断割込処理において破壊診断用データとして、5A(H)をRAM41cに格納しているが、0以外のデータを格納し、起動時に確認できるものであれば良い。
また、前記実施例では、CPU41aの起動時において、RAM41cのRAMパリティを計算し、その結果が0であるか否かを判定し、RAMパリティが0であることを条件に破壊診断用データが正常に格納されているか否かの判定を行っているが、まず、破壊診断用データが正常に格納されているか否かを判定し、破壊診断用データが正常に格納されていることを条件に、RAM41cのRAMパリティを計算し、その結果が0であるか否かを判定するようにしても良く、このようにすれば、破壊診断用データが正常に格納されていない場合には、RAMパリティを計算せずに、RAM41cのデータが異常である旨を判定することができる。
また、前記実施例では、メイン制御部41とは別個に設けられたリセット回路49からのリセット信号に基づいてメイン制御部41が起動するようになっているが、リセット回路をメイン制御部41を構成するマイクロコンピュータが搭載していても良い。
また、前記実施例では、メイン制御部41を構成するマイクロコンピュータにRAM41cが搭載されているが、マイクロコンピュータの外部に当該マイクロコンピュータのワークとして用いるRAMを搭載したものであっても良い。
また、前記実施例では、電断検出回路48が、スロットマシン1に用いられる直流電圧を監視し、当該直流電圧が一定の電圧以下となったときに電断を検出しているが、例えば、当該直流電圧が一定の電圧以下となった期間が一定期間継続したときに電断を検出するようにしても良い。また、スロットマシン1に供給される交流電圧を監視し、交流電圧の波形の乱れを検出したとき、またはその期間が一定期間継続したときに電断を検出するようにしても良い。
また、前記実施例では、電断検出回路48が、遊技制御基板40に搭載されているが、その他の場所に搭載されていても良く、例えば、電源基板100や電源基板100から遊技制御基板40への電源の供給ラインが経由する中継基板等に搭載されていても良い。
また、前記実施例では、メダル並びにクレジットを用いて賭数を設定するスロットマシンを用いているが、本発明はこれに限定されるものではなく、遊技球を用いて賭数を設定するスロットマシンや、クレジットのみを使用して賭数を設定する完全クレジット式のスロットマシンであっても良い。
更に、図31に示すように、流路切替ソレノイド30や投入メダルセンサ31など、メダルの投入機構に加えて、遊技球の取込を行う球取込装置30’、球取込装置30’により取り込まれた遊技球を検出する取込球検出スイッチ31’を設けるとともに、ホッパーモータ34や払出センサ35など、メダルの払出機構に加えて、遊技球の払出を行う球払出装置34’、球払出装置34’により払い出された遊技球を検出する払出球検出スイッチ35’を設け、メダル及び遊技球の双方を用いて賭数を設定してゲームを行うことが可能であり、かつ入賞の発生によってメダル及び遊技球が払い出されるスロットマシンに適用しても良い。