本発明の実施例を以下に説明する。
本発明が適用されたスロットマシンの実施例を図面を用いて説明すると、本実施例のスロットマシン1は、前面が開口する筐体(図示略)と、この筺体の側端に回動自在に枢支された前面扉と、から構成されている。
本実施例のスロットマシン1の筐体内部には、外周に複数種の図柄が配列されたリール2L、2C、2R(以下、左リール、中リール、右リールともいう)が水平方向に並設されており、図1に示すように、これらリール2L、2C、2Rに配列された図柄のうち連続する3つの図柄が前面扉に設けられた透視窓3から見えるように配置されている。
リール2L、2C、2Rの外周部には、図2に示すように、それぞれ「赤7」(図中黒色の7)、「青7」(図中網かけの7)、「白7」、「BAR」、「JAC」、「スイカ」、「チェリー」、「ベル」といった互いに識別可能な複数種類の図柄が所定の順序で、それぞれ21個ずつ描かれている。リール2L、2C、2Rの外周部に描かれた図柄は、透視窓3において各々上中下三段に表示される。
各リール2L、2C、2Rは、各々対応して設けられリールモータ32L、32C、32R(図3参照)によって回転させることで、各リール2L、2C、2Rの図柄が透視窓3に連続的に変化しつつ表示されるとともに、各リール2L、2C、2Rの回転を停止させることで、透視窓3に3つの連続する図柄が表示結果として導出表示されるようになっている。
また、前面扉には、メダルを投入可能なメダル投入部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の内部には、1BETスイッチ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参照)から払い出されるようになっている。また、有効化されたいずれかの入賞ライン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は、クロック入力数が一定数に到達する毎、すなわち一定間隔毎に割込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には、このリフレッシュ動作を行うためのリフレッシュレジスタ41R(図53参照)が設けられている。リフレッシュレジスタ41Rは、8ビットからなり、そのうちの下位7ビットが、CPU41aがROM41bから命令をフェッチする度に自動的にインクリメントされるもので、その値の更新は、1命令の実行時間毎に行われる。
また、メイン制御部41には、停電時においてもバックアップ電源が供給されており、バックアップ電源が供給されている間は、CPU41aによりリフレッシュ動作が行われてRAM41cに記憶されているデータが保持されるようになっている。
乱数発生回路42は、後述するように所定数のパルスを発生する度にカウントアップして値を更新するカウンタによって構成され、サンプリング回路43は、乱数発生回路42がカウントしている数値を取得する。乱数発生回路42は、乱数の種類毎にカウントする数値の範囲が定められており、本実施例では、その範囲として0〜16383が定められている。CPU41aは、その処理に応じてサンプリング回路43に指示を送ることで、乱数発生回路42が示している数値を乱数として取得する(以下、この機能をハードウェア乱数機能という)。後述する内部抽選用の乱数は、ハードウェア乱数機能により抽出した乱数をそのまま使用するのではなく、ソフトウェアにより加工して使用するが、その詳細については詳しく説明する。また、CPU41aは、前述のタイマ割込処理により、RAM41cの特定アドレスの数値を更新し、こうして更新された数値を乱数として取得する機能も有する(以下、この機能をソフトウェア乱数機能という)。
CPU41aは、I/Oポート41dを介して演出制御基板90に、各種のコマンドを送信する。遊技制御基板40から演出制御基板90へ送信されるコマンドは一方向のみで送られ、演出制御基板90から遊技制御基板40へ向けてコマンドが送られることはない。遊技制御基板40から演出制御基板90へ送信されるコマンドの伝送ラインは、ストローブ(INT)信号ライン、データ伝送ライン、グラウンドラインから構成されているとともに、演出中継基板80を介して接続されており、遊技制御基板40と演出制御基板90とが直接接続されない構成とされている。
演出制御基板90には、スロットマシン1の前面扉に配置された液晶表示器51(図1参照)、演出効果LED52、スピーカ53、54、リールLED等の電気部品が接続されており、これら電気部品は、演出制御基板90に搭載された後述のサブ制御部91による制御に基づいて駆動されるようになっている。
演出制御基板90には、メイン制御部41と同様にCPU91a、ROM91b、RAM91c、I/Oポート91dを備えたマイクロコンピュータにて構成され、演出の制御を行うサブ制御部91、演出制御基板90に接続された液晶表示器51の駆動制御を行う液晶駆動回路92、演出効果LED52の駆動制御を行うランプ駆動回路93、スピーカ53、54からの音声出力制御を行う音声出力回路94、電源投入時またはCPU91aからの初期化命令が入力されないときにCPU91aにリセット信号を与えるリセット回路95、その他の回路等、が搭載されており、CPU91aは、遊技制御基板40から送信されるコマンドを受けて、演出を行うための各種の制御を行うとともに、演出制御基板90に搭載された制御回路の各部を直接的または間接的に制御する。
CPU91aは、メイン制御部41のCPU41aと同様に、タイマ割込などの割込機能(割込禁止機能を含む)を備える。サブ制御部91の割込端子(図示略)は、コマンド伝送ラインのうち、メイン制御部41がコマンドを送信する際に出力するストローブ(INT)信号線に接続されており、CPU91aは、ストローブ信号の入力に基づいて割込を発生させて後述するコマンド受信割込処理を実行する。また、CPU91aは、クロック入力数が一定数に到達する毎、すなわち一定間隔毎に割込を発生させて後述するタイマ割込処理(サブ)を実行する。また、CPU91aにおいても未使用の割込が発生した場合には、もとの処理に即時復帰させる未使用割込処理を実行するようになっている。
また、CPU91aは、CPU41aとは異なり、ストローブ信号(INT)の入力に基づいて割込が発生した場合には、他の割込に基づく割込処理の実行中であっても、当該処理に割り込んでコマンド受信割込処理を実行し、他の割込が同時に発生してもコマンド受信割込処理を最優先で実行するようになっている。
また、サブ制御部91にも、停電時においてバックアップ電源が供給されており、バックアップ電源が供給されている間は、CPU91aによりリフレッシュ動作が行われてRAM91cに記憶されているデータが保持されるようになっている。
図4は、電源基板100の構成を説明するための回路図であり、図5(a)は、遊技制御基板40におけるメイン制御部41まわりの構成を説明するための回路図であり、図5(b)は、演出制御基板90におけるサブ制御部91まわりの構成を説明するための回路図である。
電源基板100には、図4に示すように、整流回路302、トランス304、電圧生成回路303、305〜308が搭載されている。整流回路302は、外部から供給されたAC100Vの交流電圧を直流電圧に変換し、トランス304は、整流回路302により変換された直流電圧を内部回路に伝達する。そして電圧生成回路303は、トランス304を介して伝達された直流電圧から+25Vの直流電圧を生成してコネクタ301と電圧生成回路305、306、307、308にそれぞれ出力する。電圧生成回路305、306、307、308は、電圧生成回路303にて生成された+25Vの直流電圧から、+24V、+12V(VCC)、+12V、+5Vの直流電圧を各々生成してコネクタ301に出力する。コネクタ301は遊技制御基板40等に接続され、電圧生成回路305、306、307、308により生成された直流電圧が、遊技制御基板40や演出制御基板90に搭載されたデバイス、遊技制御基板40や演出制御基板90に接続された各種電気部品を駆動するための電源として供給される。すなわち電圧生成回路303により生成された+25Vの直流電圧は、遊技制御基板40や演出制御基板90に搭載された各種デバイス、遊技制御基板40や演出制御基板90に接続された各種電気部品を駆動するための電源の生成源となっている。
電源基板100から供給される直流電圧のうち、+24Vの直流電圧は、電源基板100に直接接続されたホッパーモータ34の駆動電源として使用されるとともに、遊技制御基板40に供給され、遊技制御基板40に接続されたリールモータ32L、32C、32R、流路切替ソレノイド30等の電気部品の駆動電源としても使用される。また、+12V(VCC)の直流電圧は、遊技制御基板40を介して演出制御基板90に供給されており、サブ制御部91等の演出制御基板90に搭載されたデバイスの駆動電源である後述の+5V(VCC)の元となる電源や、演出制御基板90に接続される液晶表示器51、LED、スピーカ等の電気部品の駆動電源として使用される。また、+12Vの直流電圧は、遊技制御基板40に供給され、遊技制御基板40に接続されたLEDや表示器、センサ、スイッチ等の電気部品(電源基板100を介して遊技制御基板40に接続されたスイッチ等の電気部品を含む)の駆動電源として使用される。また、+5Vの直流電圧は、遊技制御基板40に供給され、メイン制御部41等の遊技制御基板40に搭載されたデバイスの駆動電源として使用される。
また、遊技制御基板40における+5Vの直流電圧の供給ラインは、図5(a)に示すように、遊技制御基板40上で分岐して+5V(VBB)の直流電圧の供給ラインを形成する。この+5V(VBB)の直流電圧の供給ラインは、逆流防止用のダイオード312を介してバックアップ電源入力端子VBBに接続されているとともに、図5(a)に示すように、電源基板100側でグラウンドレベルに接続され、その間には大容量のコンデンサ310が設けられている。これにより+5V(VBB)の直流電圧をコンデンサ310に蓄積可能とされ、停電時においても、コンデンサ310に蓄積された電圧を、当該電圧が全て放出されるまでの期間にわたりバックアップ電源として供給できるようになっている。
また、電源基板100から出力される直流電圧のうち、+25Vの直流電圧、すなわち+24V、+12V(VCC)、+12V、+5Vの直流電圧の生成源となる直流電圧は、遊技制御基板40において、5(a)に示すように、抵抗311により減圧(本実施例では、約6.6%減圧)されて、電断検出回路48が備える監視電圧入力端子VSBに入力される。電断検出回路48は、監視電圧入力端子VSBに入力された電圧が所定の大きさ(本実施例では、+1.2V)以下となったときに、電圧低下信号出力端子RESETから電圧低下信号を出力する構成とされている。この電圧低下信号出力端子RESETは、前述のようにメイン制御部41のトリガー端子CLK/TRGに接続されており、監視電圧入力端子VSBに入力された電圧が所定の大きさ以下となったときに、電圧低下信号がメイン制御部41のトリガー端子CLK/TRGに入力されるようになっている。すなわち、メイン制御部41のCPU41aは、電断検出回路48からの電圧低下信号の入力に基づき電断の発生を検知して後述する電断割込処理を実行できるようになっている。本実施例では、+25Vの直流電圧が約+18V以下となったときに抵抗311により減圧された電圧が+1.2V以下となり、電圧低下信号が出力されるため、CPU41aは電圧低下信号の入力に基づいて、+25Vの直流電圧が、+18V以下となったときに電断の発生を検知することができる。
また、電圧低下信号出力端子RESETは、途中で分岐してメイン制御部41の信号入力端子DATAにも接続されており、監視電圧入力端子VSBに入力された電圧が所定の大きさ以下となったときに、電圧低下信号がメイン制御部41のトリガー端子CLK/TRGに加えて信号入力端子DATAにも入力されるようになっている。また、電断検出回路48は、監視電圧入力端子VSBに入力された電圧が所定の大きさ(+1.2V)以下となってから、当該電断検出回路48が動作不能となるか、電圧が所定の大きさ(+1.2V)を超えるまでの間、継続して電圧低下信号を出力するようになっている。このため、CPU41aは、電断検出回路48からの電圧低下信号の入力に基づく電断割込処理中にも、電圧低下信号の入力状況を監視することが可能とされている。
このように本実施例では、メイン制御部41並びに電断検出回路48が、電圧生成回路308により生成された+5Vの直流電圧にて駆動されるとともに、電断検出回路48は、電圧生成回路303により生成された+25Vの直流電圧がこれら各デバイスを駆動させる+5Vよりも高い電圧である+18V以下となったときに、電断の発生を検知し、電圧低下信号を出力するようになっており、CPU41aが電断の発生を検知した後もしばらくは+5Vの直流電圧がメイン制御部41に対して供給されるため、電圧低下信号の入力に基づきCPU41aが電断割込処理を行うのに必要な時間を十分に確保することができるようになっている。
また、本実施例では、電断検出回路48が、電圧生成回路303にて生成された+25Vの直流電圧の降下を監視するとともに、電源基板100、遊技制御基板40及び演出制御基板90に接続された電気部品を駆動するための電源電圧が、電断検出回路48が監視する+25Vの直流電圧を生成する電圧生成回路303とは別個に設けられた電圧生成回路305、306、307にて生成されるようになっており、これら電気部品の駆動状況により下降し易い電源電圧に比較して安定した電圧が電断検出回路48により監視されるので、一時的な電圧降下に伴って電断の発生が検知され、電断割込処理が行われてしまう等の誤動作を防止できる。
また、図4に示すように、電源基板100において電圧生成回路306に入力される+25Vの直流電圧のラインにはコンデンサ309が設けられており、+25Vの直流電圧から電圧生成回路306に供給される電圧を蓄積可能とされ、電圧生成回路303からの電圧の供給が途切れたときでも、コンデンサ309に蓄積された電圧が放出されるまでの期間にわたり電圧生成回路306に対して+12V(VCC)を生成するのに必要な電圧が供給されるようになっている。このため、電圧生成回路306は、停電時において電圧生成回路303からの電圧の供給が途切れたときでも一定時間の間、演出制御基板90に搭載されたサブ制御部91等のデバイスの電源の元となる+12V(VCC)の直流電圧の供給を維持できるようになっており、演出制御基板90に搭載されたデバイス、特にサブ制御部91を、停電時において遊技制御基板40に搭載されたデバイスよりも長い時間駆動させることができるようになっている。尚、本実施例では、コンデンサ309として停電時において電断検出回路48が電圧低下信号を出力した時点、すなわち+25Vの直流電圧が+18V以下となった時点から、最低でも20ms以上の時間にわたりサブ制御部91の駆動を維持することが可能な容量のコンデンサが用いられている。
また、演出制御基板90には、図5(b)に示すように、電源基板100から遊技制御基板40を介して供給された+12V(VCC)の直流電圧から+5V(VCC)を生成する電圧生成回路313が設けられており、この電圧生成回路により生成された+5V(VCC)の直流電圧は、サブ制御部91等、演出制御基板90が搭載する各種デバイスに供給され、これらデバイスの駆動電源として使用される。
また、+5V(VCC)の直流電圧のサブ制御部91への供給ラインは、逆流防止用のダイオード314を介してサブ制御部91のバックアップ電源入力端子VBBに接続されるとともに、グラウンドレベルに接続され、その間には大容量のコンデンサ315が設けられている。これにより+5V(VCC)の直流電圧をコンデンサに蓄積可能とされ、停電時においても、コンデンサ315に蓄積された電圧を、当該電圧が全て放出されるまでの期間にわたりバックアップ電源として供給できるようになっている。
本実施例のスロットマシン1は、設定値に応じてメダルの払出率が変わるものであり、後述する内部抽選の当選確率は、設定値に応じて定まるものとなる。以下、設定値の変更操作について説明する。
設定値を変更するためには、設定キースイッチ37をON状態としてからスロットマシン1の電源をONする必要がある。設定キースイッチ37をON状態として電源をONすると、設定値表示器24に設定値の初期値として1が表示され、リセット/設定スイッチ38の操作による設定値の変更操作が可能な設定変更モードに移行する。設定変更モードにおいて、リセット/設定スイッチ38が操作されると、設定値表示器24に表示された設定値が1ずつ更新されていく(設定6から更に操作されたときは、設定1に戻る)。そして、スタートスイッチ7が操作されると設定値が確定し、確定した設定値がメイン制御部41のRAM41cに格納される。そして、設定キースイッチ37がOFFされると、遊技の進行が可能な状態に移行する。
本実施例のスロットマシン1においては、メイン制御部41のCPU41aが電圧低下信号を検出した際に、電断割込処理を実行する。電断割込処理では、レジスタを後述するRAM41cのスタックに退避し、メイン制御部41のRAM41cにいずれかのビットが1となる破壊診断用データ(本実施例では、5A(H))、すなわち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を操作しても解除されないようになっており、前述した設定変更モードにおいて新たな設定値が設定されるまで解除されることがない。
本実施例のスロットマシン1は、前述のように遊技状態に応じて設定可能な賭数の規定数が定められており、遊技状態に応じて定められた規定数の賭数が設定されたことを条件にゲームを開始させることが可能となる。本実施例では、後に説明するが、遊技状態として、レギュラーボーナス、ビッグボーナス中の小役ゲーム、通常遊技状態があり、このうちレギュラーボーナスに対応する賭数の規定数として1が定められており、小役ゲーム及び通常遊技状態に対応する賭数の規定数として3が定められている。このため、遊技状態がレギュラーボーナスにあるときには、賭数として1が設定されるとゲームを開始させることが可能となり、遊技状態が小役ゲームまたは通常遊技状態にあるときには、賭数として3が設定されるとゲームを開始させることが可能となる。尚、本実施例では、遊技状態に応じた規定数の賭数が設定された時点で、全ての入賞ラインL1〜L5が有効化されるようになっており、遊技状態に応じた規定数が1であれば、賭数として1が設定された時点で全ての入賞ラインL1〜L5が有効化され、遊技状態に応じた規定数が3であれば、賭数として3が設定された時点で全ての入賞ラインL1〜L5が有効化されることとなる。
本実施例のスロットマシン1は、全てのリール2L、2C、2Rが停止した際に、有効化された入賞ライン(以下、有効ラインと呼ぶ)上に役と呼ばれる図柄の組み合わせが揃うと入賞となる。入賞となる役の種類は、遊技状態に応じて定められているが、大きく分けて、メダルの払い出しを伴う小役と、賭数の設定を必要とせずに次のゲームを開始可能となる再遊技役と、遊技状態の移行を伴う特別役とがある。遊技状態に応じて定められた各役の入賞が発生するためには、後述する内部抽選に当選して、当該役の当選フラグが設定されている必要がある。
尚、これら各役の当選フラグのうち、小役及び再遊技役の当選フラグは、当該フラグが設定されたゲームにおいてのみ有効とされ、そのゲームの終了時にクリアされるが、特別役の当選フラグは、当該フラグにより許容された役の組み合わせが揃うまで有効とされ、許容された役の組み合わせが揃ったゲームにおいてクリアされる。すなわち特別役の当選フラグが一度当選すると、例え、当該フラグにより許容された役の組み合わせを揃えることができなかった場合にも、その当選フラグはクリアされずに、次のゲームへ持ち越されることとなる。もっとも、後に説明するように特別役のうちJACINの組み合わせは、当選したゲームに必ず揃うこととなるので、次のゲームへ持ち越されることはなく、それ以外の特別役の当選フラグのみ、当該フラグにより許容される役の組み合わせが揃わなかった場合に、次のゲームへ持ち越されることとなる。
図6(a)は、遊技状態別当選役テーブルを示す図である。遊技状態別当選役テーブルは、メイン制御部41のROM41bに予め格納され、内部抽選において当選と判定される役を判断するために用いられるものであるが、遊技状態別当選役テーブルの登録内容は、遊技状態に応じて定められた役を示すものとなる。このスロットマシン1における役としては、小役としてJAC、チェリー、スイカ、ベルが、再遊技役としてリプレイ、特別役としてビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)、レギュラーボーナス(1)、レギュラーボーナス(2)、JACINが定められている。
レギュラーボーナスの遊技状態では、小役であるJAC、チェリー、スイカ及びベルが、入賞となる役として定められており、レギュラーボーナスにおける内部抽選で抽選の対象とされる。ビッグボーナスの後述する小役ゲームでは、小役であるチェリー、スイカ及びベル、特別役であるレギュラーボーナス(2)及びJACINが入賞となる役として定められており、小役ゲームにおける内部抽選で抽選の対象とされる。通常遊技状態では、小役であるチェリー、スイカ及びベル、再遊技役であるリプレイ、特別役であるビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)、レギュラーボーナス(1)が入賞となる役として定められており、通常遊技状態における内部抽選で抽選の対象とされる。
尚、本実施例では、レギュラーボーナスの遊技状態において、チェリー、スイカ及びベルに加えてJACが入賞となる小役として定められているが、レギュラーボーナスの遊技状態においても、小役ゲームや通常遊技状態と同様に、チェリー、スイカ及びベルのみを入賞となる小役として定めるようにしても良い。
JACは、レギュラーボーナスにおいて有効ラインに「ベル−JAC−JAC」の組み合わせが揃ったときに入賞となるが、レギュラーボーナス以外の遊技状態では、この組み合わせが揃ったとしてもJAC入賞とならない。チェリーは、いずれの遊技状態においても左のリール2Lについて有効ラインのいずれかに「チェリー」の図柄が導出されたときに入賞となる。スイカは、いずれの遊技状態においても有効ラインのいずれかに「スイカ−スイカ−スイカ」の組み合わせが揃ったときに入賞となる。ベルは、いずれの遊技状態においても有効ラインのいずれかに「ベル−ベル−ベル」の組み合わせが揃ったときに入賞となる。これらの小役が入賞したときのメダルの払い出しについては後述する。
リプレイは、通常遊技状態において有効ラインのいずれかに「JAC−JAC−JAC」の組み合わせが揃ったときに入賞となるが、レギュラーボーナスやビッグボーナス(小役ゲーム及びレギュラーボーナス)では、この組み合わせが揃ったとしてもリプレイ入賞とならない。リプレイ入賞したときには、メダルの払い出しはないが次のゲームを改めて賭数を設定することなく開始できるので、次のゲームで設定不要となった賭数(レギュラーボーナスではリプレイ入賞しないので必ず3)に対応した3枚のメダルが払い出されるのと実質的には同じこととなる。
ビッグボーナスは、通常遊技状態において有効ラインのいずれかに「赤7−赤7−赤7」の組み合わせ、「白7−白7−白7」の組み合わせ、または「青7−青7−青7」の組み合わせが揃ったときに入賞となる。ビッグボーナス入賞すると、遊技状態がビッグボーナスに移行する。ビッグボーナスにおいては、小役ゲームと称されるゲームを行うことができる。遊技状態がビッグボーナスにある間は、ビッグボーナス中フラグがRAM41cに設定される。ビッグボーナスは、当該ビッグボーナス中において遊技者に払い出したメダルの総数が465枚に達したときに終了する。
尚、「赤7−赤7−赤7」によるビッグボーナス、「白7−白7−白7」によるビッグボーナス、及び「青7−青7−青7」を区別する必要がある場合には、それぞれビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)と呼ぶものとする。また、ビッグボーナス(1)〜(3)は、更に、内部抽選で当選が判定される順番に応じてそれぞれ細分化されており、これらを区別する場合には、それぞれビッグボーナス(1)−A、ビッグボーナス(1)−B、ビッグボーナス(1)−C、ビッグボーナス(2)−A、ビッグボーナス(2)−B、ビッグボーナス(2)−C、ビッグボーナス(3)−A、ビッグボーナス(3)−B、ビッグボーナス(3)−Cと呼ぶものとする。
レギュラーボーナスは、小役ゲーム及び通常遊技状態において有効ラインのいずれかに「BAR−BAR−BAR」の組み合わせが揃ったときに入賞となる。レギュラーボーナス入賞すると、遊技状態が小役ゲームまたは通常遊技状態からレギュラーボーナスに移行する。レギュラーボーナスは、12ゲームを消化したとき、または8ゲーム入賞(役の種類は、いずれでも可)したとき、のいずれか早いほうで終了する。遊技状態がレギュラーボーナスにある間は、レギュラーボーナス中フラグがRAM41cに設定される。特に、小役ゲームにおいてレギュラーボーナス入賞すると、ビッグボーナス中にレギュラーボーナスが提供されることとなり、ビッグボーナス中フラグに併せてレギュラーボーナス中フラグもRAM41cに設定される。ビッグボーナス中のレギュラーボーナスで当該ビッグボーナス中において遊技者に払い出したメダルの総数が465枚に達したときは、ビッグボーナスとともに当該レギュラーボーナスも終了する。
尚、通常遊技状態の「BAR−BAR−BAR」によるレギュラーボーナス、ビッグボーナスにおける小役ゲームの「BAR−BAR−BAR」によるレギュラーボーナスを区別する必要がある場合には、それぞれレギュラーボーナス(1)、レギュラーボーナス(2)と呼ぶものとする。また、前述したビッグボーナス(1)、ビッグボーナス(2)及びビッグボーナス(3)、レギュラーボーナス(1)及びレギュラーボーナス(2)をまてめて、単に「ボーナス」と呼ぶ場合があるものとする。
JACINは、小役ゲームにおいて有効ラインのいずれかに「スイカ−JAC−JAC」の組み合わせが揃ったときに入賞となるが、小役ゲーム以外の遊技状態では、この組み合わせが揃ったとしてもJACIN入賞とならない。JACIN入賞すると、ビッグボーナス中に前述したレギュラーボーナスが提供されることとなり、ビッグボーナス中フラグに併せてレギュラーボーナス中フラグもメイン制御部41のRAM41cに設定される。ビッグボーナス中のレギュラーボーナスで当該ビッグボーナス中において遊技者に払い出したメダルの総数が465枚に達したときは、ビッグボーナスとともに当該レギュラーボーナスも終了する。
以下、内部抽選について説明する。内部抽選は、上記した各役への入賞を許容するかどうかを、全てのリール2L、2C、2Rの表示結果が導出表示される以前に(実際には、スタートスイッチ7の検出時)決定するものである。内部抽選では、まず、後述するように内部抽選用の乱数(0〜16383の整数)が取得される。そして、遊技状態に応じて定められた各役について、取得した内部抽選用の乱数と、遊技者が設定した賭数と、リセット/設定スイッチ38により設定された設定値に応じて定められた各役の判定値数に応じて行われる。本実施例においては、通常遊技状態において小役及び再遊技役の抽選と特別役の抽選とが個別に行われるので、内部抽選における当選は、排他的なものではなく、1ゲームにおいて小役と特別役とが同時に当選することがあり得る。
遊技状態に応じた役の参照は、レギュラーボーナス、ビッグボーナス中の小役ゲームにおいては、図6(a)に示した遊技状態別当選役テーブルに基づいて行われ、通常遊技状態においては、図6(a)に示した遊技状態別当選役テーブル及び図6(c)に示す後述の特別役用の役別テーブルの双方に基づいて行われる。
遊技状態がレギュラーボーナス(ビッグボーナス中に提供された場合を含む)にあるときには、遊技状態別当選役テーブルを参照し、JAC、チェリー、スイカ、ベルが内部抽選の対象役として順に読み出され、遊技状態がビッグボーナス中の小役ゲームにあるときには、チェリー、スイカ、ベル、レギュラーボーナス(2)、JACINが内部抽選の対象役として順に読み出される。もっとも、前回以前のゲームでレギュラーボーナス当選フラグ(2)が設定され、当該フラグに基づく入賞が発生しないで持ち越されているときには、レギュラーボーナス(2)及びJACINは、内部抽選の対象役とならない。
通常遊技状態にあるときには、まず、小役及び再遊技役の抽選が行われ、その後、特別役の抽選が行われる。小役及び再遊技役の抽選では、遊技状態別当選役テーブルを参照し、通常遊技状態において対象となる小役及び再遊技役、すなわちチェリー、スイカ、ベル、リプレイが内部抽選の対象役として順に読み出される。
特別役の抽選では、遊技状態別当選役テーブル及び特別役用の役別テーブルを参照し、遊技状態別当選役テーブルに登録された通常遊技状態において対象となる特別役が、特別役用の役別テーブルに登録された順に読み出される。
また、特別役の抽選においては、複数の特別役について当選が判定される間に、特別役のハズレか否かが判定されるようになっており、特別役用の役別テーブルには、特別役及び特別役のハズレがそれぞれ判定される順番に登録されている。このため、特別役の抽選においては、特別役用の役別テーブルに登録された順に特別役及び特別役のハズレが読み出されることとなる。
図6(c)に示すように、特別役用の役別テーブルには、通常遊技状態において抽選対象となる特別役として、ビッグボーナス(1)−A、ビッグボーナス(2)−A、ビッグボーナス(3)−A、ビッグボーナス(1)−B、ビッグボーナス(2)−B、ビッグボーナス(3)−B、ビッグボーナス(1)−C、ビッグボーナス(2)−C、ビッグボーナス(3)−C、レギュラーボーナス(1)が登録されているとともに、ビッグボーナス(3)−Aとビッグボーナス(1)−Bの間、ビッグボーナス(3)−Bとビッグボーナス(1)−Cの間に、それぞれハズレ−A、ハズレ−Bが登録されているので、特別役の抽選では、ビッグボーナス(1)−A、ビッグボーナス(2)−A、ビッグボーナス(3)−A、ハズレ−A、ビッグボーナス(1)−B、ビッグボーナス(2)−B、ビッグボーナス(3)−B、ハズレ−B、ビッグボーナス(1)−C、ビッグボーナス(2)−C、ビッグボーナス(3)−C、レギュラーボーナス(1)の順に読み出されることとなる。
もっとも、前回以前のゲームでレギュラーボーナス(1)、ビッグボーナス(1)、ビッグボーナス(2)またはビッグボーナス(3)の当選フラグが設定され、当該フラグに基づく入賞が発生しないで持ち越されているときには、レギュラーボーナス(1)及びビッグボーナス(1)〜(3)は、内部抽選の対象役とならないので特別役の抽選自体行われることはない。
内部抽選では、内部抽選の対象役について定められた判定値数を、内部抽選用の乱数に順次加算し、加算の結果がオーバーフローしたときに、当該役に当選したものと判定される。当選と判定されると、当該役の当選フラグがメイン制御部41のRAM41cに設定される。判定値数は、メイン制御部41のROMに予め格納された役別テーブルに登録されている判定値数の格納アドレスに従って読み出されるものとなる。
また、特に通常遊技状態においては、まず通常遊技状態において対象となる小役及び再遊技役について定められた判定値数を、内部抽選用の乱数に順次加算し、加算の結果がオーバーフローしたときに、当該役に当選したものと判定され、当該役の当選フラグが設定される。
更に、内部抽選用乱数の加算の結果がオーバーフローしたか否かに関わらず、通常遊技状態において対象となる特別役について定められた判定値数(特別役のハズレに対応して定められた判定値数を含む)を、加算前の内部抽選用の乱数(最初に取得した乱数)に順次加算し、加算の結果がオーバーフローしたときに、当該役に当選したものと判定され、当該役の当選フラグが設定される(特別役のハズレに対応して定められた判定値数の加算結果がオーバーフローしたときはこの限りではない)。すなわち通常遊技状態においては、同一の内部抽選用の乱数に基づいて小役及び再遊技役の抽選及び特別役の抽選の双方が行われるようになっている。
尚、前述のように、前回以前のゲームから前回以前のゲームでレギュラーボーナス(1)、ビッグボーナス(1)、ビッグボーナス(2)またはビッグボーナス(3)の当選フラグが持ち越されている状態であれば、特別役の抽選が行われることはない。
図6(b)は、小役及び再遊技役用の役別テーブルの例を示す図であり、図6(c)は、特別役(及びハズレ)用の役別テーブルの例を示す図である。判定値数は、その値が256以上のものとなるものもあり、1バイト分では記憶できないので、判定値数毎に2バイト分の記憶領域を用いて登録されるものとなる。
各役(及びハズレ)の判定値数は、ゲームにおいて遊技者が設定する賭数(BET)に対応して登録されている。同一の役であっても、レギュラーボーナスにおける当選確率が他の役と異なっている場合があるからである。また、各役(及びハズレ)の賭数に応じた判定値数は、設定値に関わらずに共通になっているものと、設定値に応じて異なっているものとがある。判定値数が設定値に関わらずに共通である場合には、共通フラグが設定される(値が「1」とされる)。
小役及び再遊技役用の役別テーブルには、図6(b)に示すように、JAC、チェリー、スイカ、ベル、リプレイの判定値数の格納アドレスが参照される順番に登録されている。
JACは、レギュラーボーナスでのみ内部抽選の対象となる役であり、レギュラーボーナスでの賭数1に対応する判定値数の格納アドレスが登録されている。この役の共通フラグは1であり、設定値に関わらず共通の判定値数の格納アドレスが登録されている。
チェリー、スイカ及びベルは、いずれの遊技状態でも内部抽選の対象となる役であり、レギュラーボーナスでの賭数1に対応する判定値数の格納アドレスと、通常遊技状態または小役ゲームでの賭数3に対応する判定値数の格納アドレスとが登録されている。チェリー及びスイカについては、共通フラグが1となっており、それぞれの賭数に対応して設定値に関わらず共通の判定値数の格納アドレスが登録されている。ベルについては、共通フラグが0となっており、それぞれの賭数に対応して設定値に応じて個別に判定値数の格納アドレスが登録されている。
リプレイは、通常遊技状態でのみ内部抽選の対象となる役であり、通常遊技状態での賭数3に対応する判定値数の格納アドレスが登録されている。この役の共通フラグは1であり、設定値に関わらず共通の判定値数の格納アドレスが登録されている。
特別役(及びハズレ)用の役別テーブルには、図6(c)に示すように、ビッグボーナス(1)−A、ビッグボーナス(2)−A、ビッグボーナス(3)−A、ハズレ−A、ビッグボーナス(1)−B、ビッグボーナス(2)−B、ビッグボーナス(3)−B、ハズレ−B、ビッグボーナス(1)−C、ビッグボーナス(2)−C、ビッグボーナス(3)−C、レギュラーボーナス(1)、レギュラーボーナス(2)及びJACINの順番に各役の判定値数の格納アドレスが登録されている。
ビッグボーナス(1)−A、ビッグボーナス(2)−A、ビッグボーナス(3)−A、ハズレ−A、ビッグボーナス(1)−B、ビッグボーナス(2)−B、ビッグボーナス(3)−Bは、通常遊技状態でのみ内部抽選の対象となる役であり、通常遊技状態での賭数3に対応する判定値数の格納アドレスがそれぞれ登録されている。これらの役については、共通フラグの値は1であり、設定値に関わらずに共通の判定値数の格納アドレスが登録されている。
ハズレ−B、ビッグボーナス(1)−C、ビッグボーナス(2)−C、ビッグボーナス(3)−C、レギュラーボーナス(1)は、通常遊技状態でのみ内部抽選の対象となる役であり、通常遊技状態での賭数3に対応する判定値数の格納アドレスがそれぞれ登録されている。これらの役については、共通フラグの値は0となっており、設定値に応じて個別に判定値数の格納アドレスが登録されている。
レギュラーボーナス(2)及びJACINは、ビッグボーナス中の小役ゲームでのみ内部抽選の対象となる役であり、小役ゲームでの賭数3に対応する判定値数の格納アドレスが登録されている。この役の共通フラグの値は1であり、設定値に関わらずに共通の判定値数の格納アドレスが登録されている。
また、役別テーブルには、各役に入賞したときに払い出されるメダルの払出枚数も登録されている。もっとも、入賞したときにメダルの払い出し対象となる役は、小役であるJAC、チェリー、スイカ及びベルだけである。チェリー、スイカ及びベルは、賭数が1のとき(レギュラーボーナス)でも3のとき(レギュラーボーナス以外の遊技状態)でも入賞が発生可能であるが、ベルについては、賭数が1であるとき、すなわち遊技状態がレギュラーボーナスにあるときには、それ以外の8枚よりも多い15枚のメダルが払い出されるものとなる。
ビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)、レギュラーボーナス(1)、レギュラーボーナス(2)、及びJACINの入賞は、遊技状態の移行を伴うものであり、メダルの払い出し対象とはならない。リプレイでは、メダルの払い出しを伴わないが、次のゲームで賭数の設定に用いるメダルの投入が不要となるので実質的には3枚の払い出しと変わらない。また、当然ながら特別役のハズレについてはメダルの払い出し対象とはならない。
図7は、役別テーブルに登録されたアドレスに基づいて取得される判定値数の記憶領域を示す図である。この判定値数の記憶領域は、開発用の機種ではメイン制御部41のRAM41cに、量産機種ではメイン制御部41のROM41bに割り当てられたアドレス領域に設けられている。
例えばアドレスADD、ADD+34、ADD+36、ADD+38、ADD+40、ADD+42、ADD+44、ADD+46、ADD+48、ADD+110、ADD+112は、それぞれ内部抽選の対象役がJAC、リプレイ、ビッグボーナス(1)−A、ビッグボーナス(2)−A、ビッグボーナス(3)−A、ハズレ−A、ビッグボーナス(1)−B、ビッグボーナス(2)−B、ビッグボーナス(3)−B、レギュラーボーナス(2)、JACINであるときに設定値に関わらずに参照されるアドレスであり、設定値に関わらずに、それぞれ27、2245、2、2、2、263、4、4、4、32、4311が判定値数として取得される。
アドレスADD+98は、内部抽選の対象役がレギュラーボーナス(1)であって設定値が1のときに参照されるアドレスであり、このときには、ここに格納された値である31が判定値数として取得される。アドレスADD+100、ADD+102、ADD+104、ADD+106、ADD+108は、それぞれ内部抽選の対象役がレギュラーボーナス(1)であって設定値が2〜6のときに参照されるアドレスである。レギュラーボーナス(1)については、設定値に応じて個別に判定値数が記憶されているが、同一の判定値数が記憶されているので、いずれの設定値においてもレギュラーボーナス(1)の当選確率は同じとなっている。
アドレスADD+50、ADD+52、ADD+54、ADD+56、ADD+58、ADD+60は、それぞれ内部抽選の対象役がハズレ−Bであって設定値が1〜6のときに参照されるアドレスである。アドレスADD+62、ADD+64、ADD+66、ADD+68、ADD+70、ADD+72は、それぞれ内部抽選の対象役がビッグボーナス(1)−Cであって設定値が1〜6のときに参照されるアドレスである。アドレスADD+74、ADD+76、ADD+78、ADD+80、ADD+82、ADD+84は、それぞれ内部抽選の対象役がビッグボーナス(2)−Cであって設定値が1〜6のときに参照されるアドレスである。アドレスADD+86、ADD+88、ADD+90、ADD+92、ADD+94、ADD+96は、それぞれ内部抽選の対象役がビッグボーナス(3)−Cであって設定値が1〜6のときに参照されるアドレスである。ハズレ−B、ビッグボーナス(1)−C、(2)−C、(3)−Cについては、設定値に応じて個別に判定値数が記憶され、しかも異なる判定値数が記憶されているので、設定値に応じてハズレ−B、ビッグボーナス(1)−C、(2)−C、(3)−Cの当選(特別役のハズレ)確率が異なることとなる。
アドレスADD+2は、賭数が1のとき、すなわちレギュラーボーナスにおいて内部抽選の対象役がチェリーであるときに設定値に関わらずに参照されるアドレスである。アドレスADD+4は、賭数が3のとき、すなわち通常遊技状態または小役ゲームにおいて内部抽選の対象役がチェリーであるときに設定値に関わらず参照されるアドレスである。チェリーについての判定値数は、賭数に応じて登録されているが、同じ値が登録されているので、いずれの遊技状態においてもチェリーの当選確率は同じとなる。スイカについても、アドレスADD+6、ADD+8に同様にして判定値数が登録されている。
アドレスADD+10、ADD+12、ADD+14、ADD+16、ADD+18、ADD+20は、それぞれ賭数が1のとき、すなわちレギュラーボーナスにおいて内部抽選の対象役がベルであって設定値が1〜6のときに参照されるアドレスである。アドレスADD+10とADD+12、ADD+14とADD+16、ADD+18とADD+20には、それぞれ同一の値が登録されているので、レギュラーボーナス時においては、設定値1と設定値2、設定値3と設定値4、設定値5と設定値6とで、ベルの当選確率が同一となる。
アドレスADD+22、ADD+24、ADD+26、ADD+28、ADD+30、ADD+32は、それぞれ賭数が3のとき、すなわち通常遊技状態または小役ゲームにおいて内部抽選の対象役がベルであって設定値が1〜6のときに参照されるアドレスである。アドレスADD+22、ADD+24、ADD+26、ADD+28、ADD+30、ADD+32には、互いに異なる値が登録されているので、通常遊技状態または小役ゲームにおいては、設定値に応じてベルの当選確率が異なることとなる。
図8(a)(b)、図9、図10(a)(b)は、内部抽選用の乱数の値及び各役の判定値数と、当選役との関係の例を示す図である。図8(a)(b)及び図9では通常遊技状態にあるときの、図10(a)では小役ゲームにあるときの、図10(b)ではレギュラーボーナスにあるときの例を示している。図8(a)(b)、図9、図10(a)(b)のいずれも、設定値が6の場合の例を示しており、また、図8(b)及び図9では、レギュラーボーナス及びビッグボーナスの当選フラグのいずれも設定されてない場合の例を示している。
通常遊技状態において内部抽選の対象役となる役は、レギュラーボーナス(1)、ビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)、チェリー、スイカ、ベル、リプレイであるが、前述のように通常遊技状態においては、同一の内部抽選用の乱数につき小役及び再遊技役の抽選と特別役の抽選とが別個に行われるので、ここでは、小役及び再遊技役の抽選における内部抽選用の乱数の値及び各役の判定値数と当選役との関係、特別役の抽選における内部抽選用の乱数の値及び各役の判定値数と当選役との関係、双方の抽選を合わせた結果による内部抽選用の乱数の値及び各役の判定値数と当選役との関係、についてそれぞれ説明する。
例えば、図8(a)に示すように、通常遊技状態における小役及び再遊技役の抽選において対象となる役は、チェリー、スイカ、ベル、リプレイであり、設定値6においては、それぞれの判定値数は、269、68、3582、2245となる。最初に小役及び再遊技役の抽選の対象役となるチェリーは、判定値数の31を加算することで加算結果がオーバーフローすることとなる16115〜16383が内部抽選用の乱数として取得されたときに当選となる。
次に小役及び再遊技役の抽選の対象役となるスイカは、チェリーの判定値数269とスイカの判定値数68とを合計した337を加算することで加算結果がオーバーフローすることとなる16047〜16114が内部抽選用の乱数として取得されたときに当選となる。同様に、ベルは、12465〜16046が内部抽選用の乱数として取得されたときに、リプレイは、10220〜12464が内部抽選用の乱数として取得されたときに、それぞれ当選と判定される。
これらの判定値数に基づいて算出される小役及び再遊技役のおおよその当選確率は、チェリー、スイカ、ベル、リプレイのそれぞれについて、1/60.9、1/240.9、1/4.6、1/7.3となる。尚、0〜10219が内部抽選用の乱数として取得されたときには、全ての小役及び再遊技役にハズレとなる。
一方、図8(b)に示すように、通常遊技状態における特別役の抽選において対象となる役は、ビッグボーナス(1)−A、ビッグボーナス(2)−A、ビッグボーナス(3)−A、ハズレ−A、ビッグボーナス(1)−B、ビッグボーナス(2)−B、ビッグボーナス(3)−B、ハズレ−B、ビッグボーナス(1)−C、ビッグボーナス(2)−C、ビッグボーナス(3)−C、レギュラーボーナス(1)であり、設定値6においては、それぞれの判定値数は、2、2、2、263、4、4、4、5883、14、14、14、31となるので、16382〜16383、16380〜16381、16378〜16379、16115〜16674、16111〜16114、16107〜16110、16103〜16106、10220〜16102、10206〜10219、10192〜10205、10178〜10191、10147〜10777が内部抽選用の乱数として取得されたときに、当選(特別役のハズレ)と判定される。また、それぞれの役のおおよその当選確率は、1/8192、1/8192、1/8192、1/62.3、1/4096、1/4096、1/4096、1/2.8、1/1170.3、1/1170.3、1/1170.3、1/528.5となる。尚、0〜10146が内部抽選用の乱数として取得されたときには、全ての特別役にハズレとなる。
そして、小役及び再遊技役の抽選においてチェリーが当選と判定される内部抽選用の乱数の範囲(16115〜16383)と特別役の抽選においてビッグボーナス(1)−A、ビッグボーナス(2)−A、ビッグボーナス(3)−Aが当選と判定される内部抽選用の乱数の範囲(16382〜16383、16380〜16381、16378〜16379)は重複するので、これら重複する範囲の値が内部抽選用の乱数として取得されたときには、それぞれビッグボーナス(1)とチェリー、ビッグボーナス(2)とチェリー、ビッグボーナス(3)とチェリーが同時に当選したと判定される。同様に、小役及び再遊技役の抽選においてスイカが当選と判定される内部抽選用の乱数の範囲(16047〜16114)と特別役の抽選においてビッグボーナス(1)−B、ビッグボーナス(2)−B、ビッグボーナス(3)−Bが当選と判定される内部抽選用の乱数の範囲(16111〜16114、16107〜16110、16103〜16106)、はそれぞれ重複するので、これら重複する範囲の値が内部抽選用の乱数として取得されたときには、それぞれビッグボーナス(1)とスイカ、ビッグボーナス(2)とスイカ、ビッグボーナス(3)とスイカが同時に当選したと判定される。
このため、通常遊技状態では、図9に示すように、16382〜16383、16380〜16381、16378〜16379が内部抽選用の乱数として取得されたときに、それぞれビッグボーナス(1)とチェリー、ビッグボーナス(2)とチェリー、ビッグボーナス(3)とチェリーが同時に当選したと判定され、16115〜16377が内部抽選用の乱数として取得されたときに、チェリーのみが単独で当選したと判定され、16111〜16114、16107〜16110、16103〜16106が内部抽選用の乱数として取得されたときに、それぞれビッグボーナス(1)とスイカ、ビッグボーナス(2)とスイカ、ビッグボーナス(3)とスイカが同時に当選したと判定され、16047〜16102が内部抽選用の乱数として取得されたときに、スイカのみが単独で当選したと判定され、12465〜16046が内部抽選用の乱数として取得されたときに、ベルのみが単独で当選したと判定され、10220〜12464が内部抽選用の乱数として取得されたときに、リプレイのみが単独で当選したと判定され、10206〜10219が内部抽選用の乱数として取得されたときに、ビッグボーナス(1)のみが単独で当選したと判定され、10192〜10205が内部抽選用の乱数として取得されたときに、ビッグボーナス(2)のみが単独で当選したと判定され、10178〜10191が内部抽選用の乱数として取得されたときに、ビッグボーナス(3)のみが単独で当選したと判定され、10147〜10177が内部抽選用の乱数として取得されたときに、レギュラーボーナス(1)のみが単独で当選したと判定されることとなる。
そしてビッグボーナス(1)とチェリー、ビッグボーナス(2)とチェリー、ビッグボーナス(3)とチェリーが同時当選するおおよその確率はそれぞれ1/8192となり、チェリーが単独で当選するおおよその確率は1/62.3となり、ビッグボーナス(1)とスイカ、ビッグボーナス(2)とスイカ、ビッグボーナス(3)とスイカが同時当選するおおよその確率はそれぞれ1/4096となり、スイカが単独で当選するおおよその確率は1/292.6となり、ベル、リプレイ、ビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)、レギュラーボーナス(1)が単独で当選するおおよその確率はそれぞれ1/4.6、1/7.3、1/1170.3、1/1170.3、1/1170.3、1/528.5となる。尚、0〜10146が内部抽選用の乱数として取得されたときには、全ての役にハズレとなる。
このように本実施例では、小役及び再遊技役用の役別テーブルに登録されているアドレス領域に格納された判定値数及び特別役用の役別テーブルに登録されているアドレス領域に格納された判定値数から、小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲と、小役及び特別役が重複して当選する判定値の範囲と、が特定できるようになっており、内部抽選においては、内部抽選用の乱数として取得した値が、これら判定値数により特定される小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲に含まれていれば、小役、再遊技役、特別役がそれぞれ単独で当選したと判定し、小役及び特別役が重複して当選する判定値の範囲に含まれていれば、小役及び特別役の双方が当選したと判定するようになっている。
また、本実施例では、ビッグボーナス(1)〜(3)とチェリーが重複して当選する判定値の範囲よりも、ビッグボーナス(1)〜(3)とスイカが重複して当選する判定値の範囲の方が大きくなるように設定されているため、ビッグボーナス(1)〜(3)とチェリーが同時に当選する確率よりも、ビッグボーナス(1)〜(3)とスイカが同時に当選する確率の方が高い。
また、通常遊技状態において、既にレギュラーボーナスまたはビッグボーナスの当選フラグのいずれかが設定されている場合、すなわちこれら当選フラグが前回以前のゲームにて設定され、持ち越されている場合には、小役及び再遊技役の抽選のみが行われるため、各役が当選と判定される乱数値及び各役の当選確率は、図8(a)に示すものとなる。
また、図10(a)に示すように、小役ゲームでは、チェリー、スイカ、ベル、レギュラーボーナス(2)、JACINが内部抽選の対象役となり、それぞれの判定値数が269、68、3582、32、4311であるので、16115〜16383、16047〜16114、12465〜16046、12433〜12464、8122〜12432が内部抽選用の乱数として取得されたときに、当選と判定される。また、それぞれの役のおおよその当選確率は、1/60.9、1/240.9、1/4.6、1/512、1/3.8となる。尚、0〜8121が内部抽選用の乱数として取得されたときには、全ての役にハズレとなる。
また、図10(b)に示すように、レギュラーボーナスでは、JAC、チェリー、スイカ、ベルが内部抽選の対象役となり、それぞれの判定値数が27、269、68、15919であるので、16357〜16383、16088〜16356、16020〜16087、101〜16019が内部抽選用の乱数として取得されたときに、当選と判定される。また、それぞれの役のおおよその当選確率は、1/606.8、1/60.9、1/240.9、1/1.03となる。尚、0〜100が内部抽選用の乱数として取得されたときには、全ての役にハズレとなる。
次に、内部抽選用の乱数の取得について、図11を参照して詳しく説明する。内部抽選用の乱数は、ハードウェア乱数機能により乱数発生回路42から乱数を抽出し、これをCPU41aがソフトウェアによって加工することによって取得されるものとなる。尚、乱数発生回路42から抽出した、或いはこれを加工した乱数の最下位ビットを第0ビット、最上位ビットを第15ビットと呼ぶものとする。
図11(a)は、乱数発生回路42の構成を詳細に示すブロック図である。図示するように、乱数発生回路42は、パルス発生回路42aと、下位カウンタ42bと、上位カウンタ42cとから構成されている。下位カウンタ42b及び上位カウンタ42cは、いずれも8ビット(1バイト)のカウンタであり、下位カウンタ42bが第0ビット〜第7ビット、上位カウンタ42cが第8ビット〜第15ビットの合計で16ビットのデータ信号を出力する。
パルス発生回路42aは、CPU41aの動作クロックの周波数よりも高く、その整数倍とはならない周波数(互いに素とすることが好ましい)でパルス信号を出力する。パルス発生回路42aの出力するパルス信号が下位カウンタ42bにクロック入力される。
下位カウンタ42bは、パルス発生回路42aからパルス信号が入力される度に第0ビットのデータ信号をHレベルとLレベルとで交互に反転させる。正論理を適用するものとすると、Hレベルの論理値が1でLレベルの論理値が0に対応する。負論理の場合は、論理値が1の場合をLレベル、論理値が0の場合をHレベルと読み替えれば良い。第0ビットのデータ信号のレベルがHレベルからLレベルに反転するとき、すなわち第0ビットのデータ信号の論理値が1から0に変化する度に第1ビットのデータ信号のレベルをHレベルとLレベルとで交互に反転させる。
同様に、第m−1ビットのデータ信号のレベルがHレベルからLレベルに反転するとき、すなわち第m−1ビットのデータ信号の論理値が1から0に変化する度に第mビットのデータ信号のレベルをHレベルとLレベルとで交互に反転させる。また、第7ビットのデータ信号のレベルがHレベルからすなわち第7ビットのデータ信号の論理値が1から0に変化する度に桁上げ信号を出力する。下位カウンタ42bの出力する桁上げ信号が上位カウンタ42cにクロック入力される。
上位カウンタ42cは、下位カウンタ42bから桁上げ信号が入力される度に第8ビットのデータ信号をHレベルとLレベルとで交互に反転させる。第9ビットのデータ信号のレベルがHレベルからLレベルに反転する度に第9ビットのデータ信号のレベルをHレベルとLレベルとで交互に反転させる。同様に、第m−1ビットのデータ信号のレベルがHレベルからLレベルに反転する度に第mビットのデータ信号のレベルをHレベルとLレベルとで交互に反転させる。
下位カウンタ42bのデータ信号を下位8ビットとし、上位カウンタ42cのデータ信号を上位8ビットとした16ビットのデータ信号の論理値は、パルス発生回路42aがパルス信号を出力する度に、0(0000h)→1(0001h)→2(0002h)→…→65535(FFFFh)と値が更新毎に連続するように更新され、最大値の65535(FFFFh)の次は初期値の0(0000h)へと値が循環して、乱数発生回路42から出力されるものとなる。
サンプリング回路43は、ラッチ回路から構成され、CPU41aからのサンプリング指令(スタートスイッチ7の操作時)に基づいて、乱数発生回路42からそのときに出力されている16ビットのデータ信号をラッチし、ラッチしたデータ信号を出力する。CPU41aは、I/Oポート41dを介してサンプリング回路43から入力されたデータ信号に対応した数値データを、乱数発生回路42が発生する乱数として抽出するものとなる。尚、以下では、乱数発生回路42から出力されるデータ信号は、その論理値に応じた乱数として説明するものとする。
図11(b)は、乱数発生回路42から抽出した乱数をCPU41aがソフトウェアにより内部抽選用の乱数に加工するまでの説明図である。乱数発生回路42から抽出された乱数は、CPU41aが有する16ビットの汎用レジスタ41GRに格納されるものとなる。
乱数発生回路42から抽出された乱数が汎用レジスタ41GRに格納されると、CPU41aは、他の汎用レジスタまたはRAM41cの作業領域を用いて、汎用レジスタ41GRの下位バイト(下位カウンタ42bから抽出した値)と、上位バイトの値(上位カウンタ42cから抽出した値)とを入れ替える。
次に、CPU41aは、抽出された乱数に対して上位バイトと下位バイトとが入れ替えられた乱数の値を、8080hと論理和演算をする。CPU41aの処理ワークは1バイトなので、実際には上位バイトと下位バイトとについて順次論理和演算を行うものとなる。この論理和演算によって第15ビットと第7ビットは常に1となる。更に、CPU41aは、上位1バイト(第8ビット〜第15ビット)までを1ビットずつ下位にシフトし、これによって空いた第15ビットに1を挿入する。
CPU41aは、このときに汎用レジスタ41GRに格納されている値を、内部抽選用の乱数として取得してRAM41cの所定の領域に記憶させ、これに各役の判定値数を順次加算していくものとなる。内部抽選用の乱数の第15ビットと第14ビットは常に1となるので、内部抽選用の乱数は、14ビット(16384)の大きさを有する乱数ということになり、実質的に0〜16383の値をとるものとなる。
尚、乱数発生回路42からの乱数の抽出から加工を終了するまでの間は、CPU41aに対する割り込みが禁止される。CPU41aに対して割り込みが発生することによって、当該割り込み処理ルーチンで汎用レジスタ41GRの内容が書き換えられてしまうのを防ぐためである。
次に、リール2L、2C、2Rの図柄の配列と、停止制御とについて説明する。前述したように、リール2L、2C、2Rの回転は、ストップスイッチ8L、8C、8Rを操作したときから4図柄以内の引き込み範囲で停止される。停止すべき図柄は、当選フラグの設定状況に応じて選択されるものであり、各ゲームにおいて設定された有効ライン上に4図柄の引き込み範囲で当選している役の図柄を揃えて停止させることができれば、これを揃えて停止させる。当選していない役の図柄は、4図柄の引き込み範囲でハズシて停止させる。
ここで、図2に示すように、「スイカ」、「ベル」、「JAC」については、リール2L、2C、2Rのいずれについても5図柄以内の間隔で配置されており、4図柄の引き込み範囲で必ず可変表示装置2の任意の位置に停止させることができる。つまり、スイカ、ベル、リプレイ、JAC、JACINの当選フラグがそれぞれ設定されているときには、遊技者によるストップスイッチ8L、8C、8Rの操作タイミングに関わらずに、必ず当該役を入賞させることができる。
次に、賭数の設定及びクレジット(賭数の設定に用いられたメダルを含む)の精算について説明する。図12〜図16は、賭数の設定が許容される期間及びクレジットの精算が許容される期間を示すタイミングチャートである。
図12に示すように、ゲームが実行されていない間は、賭数の設定及びクレジットの精算が許可された状態であり、この状態においては、メダルを投入するか、クレジットを用いて賭数の設定が可能に制御されている。賭数の設定が可能な状態で、遊技状態に応じた規定数の賭数が設定されていない状態であれば、メダルの投入が検出される毎に、賭数が1ずつ加算される。また、遊技状態に応じた規定数の賭数が設定された状態であれば、メダルの投入が検出される毎に、クレジットが1ずつ加算される。そして、クレジットが上限(本実施例では50枚)に到達した時点で流路切替ソレノイド30がoffとなり、投入されたメダルの流路がメダル払出口9側に切り替わり、メダルの投入が禁止される。また、クレジットが残存している状態であれば、1BETスイッチ5またはMAXBETスイッチ6の操作により、これらのスイッチに応じて賭数が設定され、その分がクレジットから減算される。また、クレジットが残存しているか、賭数が設定されている状態であれば、精算スイッチ10の操作により、ホッパーモータ34の駆動によりクレジットとして記憶されている分のメダル及び賭数の設定に用いられた分のメダルが払い出され、遊技者に返却されるとともに、メダルの払出に応じてクレジット及び賭数が減算される。
賭数の設定及びクレジットの精算が許可された状態において、スタートスイッチ7が操作され、ゲームが開始すると、その時点で賭数の設定もクレジットの精算も禁止される。詳しくは、流路切替ソレノイド30がoffとなり、投入されたメダルの流路がメダル払出口9側に切り替わるとともに、1BETスイッチ5、MAXBETスイッチ6、精算スイッチ10の操作が無効化される。尚、ゲームが開始した時点とは、リールの回転が開始した時点ではなく、スタートスイッチ7が操作されて制御段階が移った時点である。これは、前回のゲーム開始から一定期間経過していないためにウェイトがかかる場合があるが、この時点で、リールの回転開始は待機するものの制御段階としてはゲームが開始しているからである。
その後、リール2L、2C、2Rの回転が停止し、全てのリール2L、2C、2Rに表示結果が導出され、メダルの払出を伴う入賞が発生していなければ、全てのリール2L、2C、2Rに表示結果が導出された時点でゲームの終了と判定され、ゲームの終了が判定された時点で賭数の設定及びクレジットの精算の禁止が解除され、賭数の設定及びクレジットの精算が許可された状態となる。尚、例外として、リプレイ入賞が発生した場合には、賭数が自動的に設定されることとなるので、遊技者の操作による賭数の設定は禁止されたままの状態であり、この状態では、クレジットの精算も禁止されるようになっている。
また、リール2L、2C、2Rの回転が停止した結果、メダルの払出を伴う入賞が発生していれば、図13に示すように、全てのリール2L、2C、2Rに表示結果が導出された時点でゲームの終了は判定されず、当該入賞の発生に伴うメダルの払出が終了した時点で、ゲームの終了が判定され、その時点で賭数の設定及びクレジットの精算の禁止が解除され、賭数の設定及びクレジットの精算が許可された状態となる。
また、リール2L、2C、2Rの回転が停止した結果、ビッグボーナス入賞が発生していれば、図14に示すように、全てのリール2L、2C、2Rに表示結果が導出された時点でゲームの終了は判定されるが、ゲームの終了が判定された時点から、後述するBB入賞時演出が実行される期間であるBB入賞時演出の演出待ち時間が経過するまで、賭数の設定は禁止されたままの状態であり、BB入賞時演出の演出待ち時間が経過した時点で、賭数の設定の禁止が解除され、賭数の設定が許可された状態となる。一方、クレジットの精算については、ゲームの終了が判定された時点で、禁止が解除され、その時点からクレジットの精算が許可された状態となる。
また、ビッグボーナス中のゲームにおいて、リール2L、2C、2Rの回転が停止した結果、ビッグボーナスの終了条件が成立したゲーム、すなわち何らかの入賞が発生してビッグボーナス中の払出総数が465枚に到達したゲームで、かつ打止機能が設定されていない場合であれば、図15に示すように、メダルの払出が終了した時点でゲームの終了は判定されるが、ゲームの終了が判定された時点から、後述するエンディング演出が実行される期間であるエンディング演出の演出待ち時間が経過するまで、賭数の設定は禁止されたままの状態であり、エンディング演出の演出待ち時間が経過した時点で、賭数の設定の禁止が解除され、賭数の設定が許可された状態となる。一方、クレジットの精算については、ゲームの終了が判定された時点で、禁止が解除され、その時点からクレジットの精算が許可された状態となる。
一方、打止機能が設定されている場合であれば、図16に示すように、メダルの払出が終了した時点でゲームの終了は判定されるが、ゲームの終了が判定され、エンディング演出の演出待ち時間が経過すると打止状態に制御されるため、エンディング演出の演出待ち時間が経過しても、リセットスイッチ23またはリセット/設定スイッチ38が操作されるまで、賭数の設定は禁止されたままの状態であり、リセットスイッチ23またはリセット/設定スイッチ38が操作され、打止状態が解除された時点で賭数の設定の禁止も解除され、賭数の設定が許可された状態となる。一方、クレジットの精算については、ゲームの終了が判定された時点で、禁止が解除され、その時点からクレジットの精算が許可された状態となる。
尚、本実施例では、ビッグボーナスの終了条件が、ビッグボーナス中の払出総数が465枚に到達することであるため、ビッグボーナスの終了条件が成立したゲームでは、必ずメダルの払出を伴うこととなり、払出が終了した時点でゲームの終了が判定されることとなるが、例えば、ビッグボーナスが規定ゲーム数に到達することを終了条件として適用する場合には、ビッグボーナスの終了条件が成立したゲームにおいてメダルの払出を伴わないこともあり、このような場合には、全てのリール2L、2C、2Rの表示結果が導出された時点でゲームの終了が判定されることとなる。
次に、メダルの払出に伴うエラー制御について説明する。CPU41aは、小役入賞の発生やクレジット(賭数の設定に用いられたメダルを含む)の精算に伴い、ホッパーモータ34を駆動してメダルを払い出す制御を行う。この際、払出センサ35により一定時間以上メダルが継続して検出された場合には、メダル詰まりと判定し、ホッパーモータ34の駆動を停止し、エラー状態に制御して遊技の進行を停止させる。また、ホッパーモータ34を駆動しているにも関わらず、払出センサ35により一定時間以上メダルが検出されない場合には、一旦ホッパーモータ34の駆動を停止し、数回にわたりホッパーモータ34の駆動を再試行しても払出センサ35によりメダルが検出されない場合には、ホッパーエラー(ホッパー内のメダル不足を示すエラー)と判定し、エラー状態に制御して遊技の進行を停止させる。これらメダル詰まりエラーやホッパーエラーに伴うエラー状態は、リセットスイッチ23やリセット/設定スイッチ38が操作されることで解除され、残りのメダルを払い出す制御が行われるようになっている。
次に、メイン制御部41のRAM41cの初期化について説明する。メイン制御部41のRAM41cは、512バイトの格納領域を有しており、図17に示すように、各バイト毎に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)の45バイトの領域であり、このうち7FD2(H)〜スタックポインタ−1の領域は、スタック領域内の使用されていない未使用スタック領域であり、スタックポインタ〜7FFF(H)の領域は、CPU41aのレジスタから退避したデータが格納されている使用中スタック領域である。このうち未使用スタック領域は、未使用領域と同様に、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなるが、使用中スタック領域は、プログラムの続行のため、初期化されることはない。
本実施例においてメイン制御部41のCPU41aは、図18(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を初期化する際には、初期化条件に応じた領域毎に初期化するのではなく、指定したアドレスから指定したサイズ分の領域を初期化することとなる。
図18(b)は、初期化テーブルを示す図である。初期化テーブルには、前述のように初期化1〜4に対応して開始アドレス及び初期化サイズが登録されている。
初期化1には、開始アドレスとして7E00(H)、初期化サイズとして1D3(H)+M(未使用スタック領域のサイズ:(スタックポインタ−7FD2))バイトが登録されているので、初期化1では、7E00(H)から1D3(H)+Mバイト分の領域が初期化される。そして、図17に示すように、重要ワーク、一般ワーク、特別ワーク、設定値ワーク、非保存ワーク、一般ワーク、未使用領域、未使用スタック領域は、7E00(H)から連続するアドレス領域に割り当てられており、これらの領域のサイズを合計すると1D3(H)+Mバイトとなるので、初期化1において、7E00(H)から1D3(H)+Mバイト分が初期化されることで、重要ワーク、一般ワーク、特別ワーク、設定値ワーク、非保存ワーク、一般ワーク、未使用領域、未使用スタック領域の順番でこれらの各領域が初期化されることとなる。
初期化2には、2つの開始アドレス及び各アドレス別の初期化サイズが登録されている。これは、初期化2において初期化される一般ワークが離れた2つのアドレス領域に割り当てられているからである。初期化2には、最初に初期化する領域の開始アドレスとして7E28(H)、初期化サイズとして67(H)バイトが登録され、次に初期化する領域の開始アドレスとして7EB7(H)、初期化サイズとして118(H)+Mバイトがそれぞれ登録されているので、初期化2では、7E28(H)から67(H)バイト分の領域及び7EB7(H)から118(H)+Mバイト分の領域が初期化される。そして、7E28(H)〜7E8E(H)の一般ワークのサイズは67(H)バイトとなり、図17に示すように、残りの一般ワークの領域、未使用領域、未使用スタック領域は、7EB7(H)から連続するアドレス領域に割り当てられ、これらの領域のサイズを合計すると118(H)+Mバイトとなるので、初期化2において、7E28(H)から67(H)バイト分が初期化され、7EB7(H)から118(H)+Mバイト分が初期化されることで、一般ワーク、未使用領域、未使用スタック領域の順番でこれらの各領域が初期化されることとなる。
初期化3にも、2つの開始アドレス及び各アドレス別の初期化サイズが登録されている。これは、初期化3において初期化される非保存ワークと未使用領域及び未使用スタック領域とが離れた2つのアドレス領域に割り当てられているからである。初期化3には、最初に初期化する領域の開始アドレスとして7EB7(H)、初期化サイズとして3(H)バイトが登録され、次に初期化する領域の開始アドレスとして7F05(H)、初期化サイズとしてCD(H)+Mバイトがそれぞれ登録されているので、初期化3では、7EB7(H)から3(H)バイト分の領域及び7F05(H)からCD(H)+Mバイト分の領域が初期化される。そして、図17に示すように、非保存ワークは、7EB7(H)から3バイト分の領域であり、未使用領域、未使用スタック領域は、7F05(H)から連続するアドレス領域に割り当てられ、これらの領域のサイズを合計するとCD(H)+Mバイトとなるので、初期化3において、7EB7(H)から3(H)バイト分が初期化され、7F05(H)からCD(H)+Mバイト分が初期化されることで、非保存ワーク、未使用領域、未使用スタック領域の順番でこれらの各領域が初期化されることとなる。
初期化4には、開始アドレスとして7F05(H)、初期化サイズとしてCD(H)+Mバイトが登録されているので、初期化4では、7F05(H)からCD(H)+Mバイト分の領域が初期化される。そして、図17に示すように、未使用領域、未使用スタック領域は、7F05(H)から連続するアドレス領域に割り当てられており、これらの領域のサイズを合計するとCD(H)+Mバイトとなるので、初期化4において、7F05(H)からCD(H)+Mバイト分が初期化されることで、未使用領域、未使用スタック領域の順番でこれらの各領域が初期化されることとなる。
また、初期化1〜4のうち初期化1、3については、CPU41aの起動後、割込が許可される前に行われる処理である。一方、初期化2、4については、割込が許可されている状態で行われる処理であるが、これら初期化2、4の実行中は、割込が禁止されるようになっている。すなわち初期化1〜4の実行中においては常に割込が禁止されるようになっている。
次に、メイン制御部41のCPU41aが演出制御基板90に対してコマンドを送信する際の制御について説明する。
図19は、メイン制御部41から演出制御基板90に対して送信されるコマンドの一例を示す図である。
BETコマンドは、メダルの投入枚数、すなわち賭数の設定に使用されたメダル枚数を特定可能なコマンドであり、メダル投入時、1枚BETスイッチ5またはMAXBETスイッチ6が操作されて賭数が設定されたときに送信される。
内部当選コマンドは、内部当選フラグの当選状況、並びに成立した内部当選フラグの種類を特定可能なコマンドであり、スタートスイッチ7が操作されてゲームが開始したときに送信される。
リール回転開始コマンドは、リールの回転の開始を通知するコマンドであり、リール2L、2C、2Rの回転が開始されたときに送信される。
リール停止コマンドは、停止するリールが左リール、中リール、右リールのいずれかであるか、該当するリールに停止する図柄、を特定可能なコマンドであり、各リールの停止制御が行われる毎に送信される。
入賞判定コマンドは、入賞の有無、並びに入賞の種類、入賞時のメダルの払出枚数を特定可能なコマンドであり、全リールが停止して入賞判定が行われた後に送信される。
払出開始コマンドは、メダルの払出開始を通知するコマンドであり、入賞やクレジット(賭数の設定に用いられたメダルを含む)の精算によるメダルの払出が開始されたときに送信される。また、払出終了コマンドは、メダルの払出終了を通知するコマンドであり、入賞及びクレジットの精算によるメダルの払出が終了したときに送信される。
遊技状態コマンドは、次ゲームの遊技状態(通常遊技状態であるか、ビッグボーナス中であるか、レギュラーボーナス中であるか、等)を特定可能なコマンドであり、ゲームの終了時に送信される。
待機コマンドは、待機状態へ移行する旨を示すコマンドであり、1ゲーム終了後、賭数が設定されずに一定時間経過して待機状態に移行するときに送信される。
打止コマンドは、打止状態の発生または解除を示すコマンドであり、BB終了後、エンディング演出の演出待ち時間が経過した時点で打止状態の発生を示す打止コマンドが送信され、リセット操作がなされて打止状態が解除された時点で、打止状態の解除を示す打止コマンドが送信される。
エラーコマンドは、エラー状態の発生または解除を示すコマンドであり、エラーが判定され、エラー状態に制御された時点で打止状態の発生を示すエラーコマンドが送信され、リセット操作がなされてエラー状態が解除された時点で、エラー状態の解除を示すエラーコマンドが送信される。
設定開始コマンドは、設定変更モードの開始を示すコマンドであり、設定開始時、すなわち設定変更モードに移行した時点で送信される。
初期化コマンドは、遊技状態が初期化された旨を示すコマンドであり、設定終了時、すなわち設定変更モードの終了時に送信される。
これら各コマンドのうち初期化コマンドを除くコマンドは、後述する起動処理及びゲーム処理において生成され、RAM41cの特別ワークに設けられたコマンドキューに一時格納され、前述したタイマ割込処理において送信される。尚、メイン制御部41の起動時にRAM異常エラーを示すエラーコマンドを送信する場合には、タイマ割込処理ではなく起動処理において送信される。これは、後述するがメイン制御部41の起動時にRAM異常エラーが発生した場合には、割込が禁止されているからである。
図20は、前述したコマンドキューの構成を示す図である。コマンドキューには、最大で16個のコマンドを格納可能な領域が設けられており、複数のコマンドを蓄積できるようになっている。また、各コマンドを格納する領域には、各格納領域毎に領域番号を示す数値(0〜15)が対応付けて設定されている。更に、コマンドキューには、次に送信すべきコマンドが格納されている領域の領域番号を示す送信ポインタと次にコマンドを格納すべき領域の領域番号を示す格納ポインタが設定されている。送信ポインタは、コマンドキューに格納された未送信のコマンドが送信される毎に1加算され、格納ポインタは、コマンドを格納する際に1加算されるようになっており、未送信のコマンドが全て送信されたとき及び未送信のコマンドでコマンドキューの全ての領域が満タンとなったときに送信ポインタが示す領域番号と格納ポインタの領域番号とが同一の番号となる。尚、未送信のコマンドが格納されている場合には、未送信フラグがセットされるため、送信ポインタが示す領域番号と格納ポインタの領域番号とが同一の番号の場合に、未送信フラグがセットされていれば、コマンドキューが未送信のコマンドで満タンである旨が示され、未送信フラグがセットされていなければ未送信のコマンドが空である旨が示されるようになっている。
本実施例においてCPU41aは、0.56msの間隔で割込3を発生させるとともに、割込3の発生によりタイマ割込処理を実行するので、タイマ割込処理は0.56ms毎に実行されることとなる。また、図21に示すように、タイマ割込処理では、タイマ割込1〜4が繰り返し行われるようになっており、これらタイマ割込1〜4に固有な処理が2.24msの間隔で行われることとなる。そして、コマンドキューに格納されたコマンドの送信を行うコマンド送信処理は、タイマ割込2で実行されるので、コマンド送信処理も2.24msの間隔で実行されることとなる。
一方、サブ制御部91では、後に説明するがバッファしたコマンドを1.12msの間隔で実行するタイマ割込処理(サブ)において取得する。このため、CPU41aがタイマ割込処理を実行する毎、すなわち0.56msの間隔でコマンドの送信処理を行った場合には、サブ制御部91側でコマンドを正常に受信できない可能性がある。
しかしながら、本実施例では、前述のようにCPU41aがタイマ割込処理4回につき1回の割合、すなわち2.24msの間隔でコマンド送信処理を実行することで、2つのコマンドが連続して送信される場合でも、最低2.24msの間隔をあけて送信されることとなり、サブ制御部91側でこれら連続して送信されるコマンドを確実に取得することができる。
図22(a)(b)は、本実施例におけるコマンドの送信状況の一例を示すタイミングチャートである。
本実施例では、図22(a)に示すように、ゲームの進行に応じてコマンドが生成され、コマンドキューに格納される。タイマ割込2内のコマンド送信処理においてコマンドキューに格納された未送信のコマンドが検知されると、遅延時間が設定され、設定した遅延時間が経過した時点で、コマンドキューに格納された未送信のコマンドが送信される。
具体的には、コマンド送信処理においてコマンドキューに格納された未送信のコマンドを検知すると、0〜15の範囲に設定された遅延用乱数値を取得し、取得した値を補正した2〜17の範囲の値(L)をRAM41cの特別ワークに設けられた遅延カウンタに設定する。
この際、当該遅延カウンタ値(L)を設定したコマンド送信処理及びその後のタイマ割込2内において実行するコマンド送信処理において遅延カウンタ値を1ずつ減算していき、遅延カウンタ値が0となった時点で、コマンドキューに格納されているコマンドを送信する。
すなわち、コマンド送信処理において検知されたコマンドは、コマンド送信処理の実行間隔(2.24ms)の倍数に相当する時間、詳しくはその際取得した遅延カウンタの値(L)から1を減算した値(L−1)にコマンド送信処理の実行間隔(2.24ms)を乗じた時間{(L)は2〜17の値なので2.24〜35.84ms}が経過した後、送信されることとなる。
また、本実施例では、コマンドキューに複数のコマンドを格納可能な領域が設けられており、コマンドキューに格納されたコマンドの送信を待たずに、新たに生成したコマンドをコマンドキューの空き領域に格納することが可能とされている。すなわち複数のコマンドを蓄積できるようになっている。このため、コマンドの送信が遅延されることに伴ってゲームの進行が停止してしまうことを回避できる。尚、コマンドキューが未送信のコマンドで満タンの場合はこの限りでない。
また、コマンド格納処理では、コマンドキューに複数のコマンドを格納する際にこれらコマンドをその生成順に格納するとともに、コマンド送信処理ではコマンドキューに格納された順番でコマンドを送信するようになっている。すなわちコマンドキューに格納されたコマンドは、常に生成された順番で送信されるようになっている。
また、コマンドキューに未送信のコマンドが複数格納されている場合には、最初に生成されたコマンドを送信した後、次に実行するコマンド送信処理において改めてコマンドキューに未送信のコマンドが格納されているかを判定し、コマンドが格納されている場合には、その時点でそのコマンドの遅延時間(遅延カウンタ値)を設定し、その遅延時間が経過した時点で送信する。このため、複数のコマンドがコマンドキューに格納されている場合には、各々の送信間隔が最短(遅延カウンタの値として2が決定された場合)でも、図22(a)に示すように、4.48ms(2.24×2ms)の間隔をあけて送信されることとなる。言い換えれば、コマンドの送信後、4.48msが経過するまでは新たなコマンドの送信が禁止されるようになっている。
本実施例のスロットマシン1では、リール2L、2C、2Rに配列された図柄数が21個とされているとともに、回転速度が750msで1回転(1分間で80回転)するように構成されており、各リール2L、2C、2Rが1図柄移動するのに要する時間は35.7ms(=750/21ms)となる。
また、演出制御基板90側で目押しの補助となるような演出が行われてしまうことを防止するためには、CPU41aが演出制御基板90にコマンドを送信するときに、遅延時間の最大値としてリール2L、2C、2Rが1図柄移動するのに要する時間以上の時間を設定する必要がある。すなわち本実施例では、遅延時間の最大値として35.7ms以上の時間を設定する必要がある。
一方、演出制御基板90に搭載されたサブ制御部91による演出と、メイン制御部41による制御とのズレが大きくなって違和感が生じるのを防止するためには、コマンド送信処理における遅延時間の最大値をできるだけ短くすることが好ましい。すなわち本実施例の場合には、遅延時間の最大値が35.7ms以上の値で、かつ35.7msに可能な限り近い値に設定されることが好ましい。また、本実施例では、前述したようにコマンド送信処理における遅延時間がコマンド送信処理の実行間隔(2.24ms)の倍数に相当する時間のみ設定可能とされており、これら2.24msの倍数で35.7ms以上の値のうち最小の値は、2.24ms×16=35.84msとなることから、本実施例のスロットマシン1において最適な遅延時間の最大値は35.84msとなる。
このため、遅延カウンタの値(L)の上限値として17を設定すれば良く、このようにすれば遅延時間の最大値を、本実施例において目押しの補助となるような演出を防止するために最低限必要な遅延時間の最大値以上の値のうち最小の値とすることができる。
また、本実施例では、図22(b)に示すように、未送信のコマンドが検知された際に設定された遅延時間{2.24×(La−1)ms}が経過する前に停電が発生し、後述する電断割込処理が実行された場合には、当該電断割込処理においてコマンドキューに格納されたコマンド、送信ポインタ、格納ポインタの値、未送信フラグ、その時点の遅延カウンタの値La’がバックアップされるようになっている。そして、電断が復旧して割込禁止が解除された後、未送信のコマンドが残っている場合には、その時点で設定されている遅延カウンタの値La’が0となった時点で未送信のコマンドを送信する。すなわち電断復旧時には、電断時の遅延カウンタの値La’から減算が再開されるようになっており、電断復旧後、遅延時間{2.24×(La’−1)ms}が経過することで未送信のコマンドを送信するようになっている。
次に、メイン制御部41のCPU41aが演出制御基板90に対して送信するコマンドに基づいてサブ制御部91が実行する演出の制御について説明する。
サブ制御部91のCPU91aは、メイン制御部41のCPU41aが送信したコマンドを受信した際に、ROM91bに格納された制御パターンテーブルを参照し、制御パターンテーブルに登録された制御内容に基づいて液晶表示器51、演出効果LED52、スピーカ53、54、リールLED等の各種演出装置の制御を行う。
制御パターンテーブルには、複数種類の演出パターン毎に、コマンドの種類に対応する液晶表示器51の表示パターン、演出効果LED52の点灯態様、スピーカ53、54の出力態様、リールLEDの点灯態様等、これら演出装置の制御パターンが登録されており、CPU91aは、コマンドを受信した際に、制御パターンテーブルの当該ゲームにおいてRAM91cに設定されている演出パターンに対応して登録された制御パターンのうち、受信したコマンドの種類に対応する制御パターンを参照し、当該制御パターンに基づいて演出装置の制御を行う。これにより演出パターン及び遊技の進行状況に応じた演出が実行されることとなる。
演出パターンは、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じた選択率にて選択され、RAM91cに設定される。演出パターンの選択率は、ROM91bに格納された演出テーブルに登録されており、CPU91aは、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じて演出テーブルに登録されている選択率を参照し、その選択率に応じて複数種類の演出パターンからいずれかの演出パターンを選択し、選択した演出パターンを当該ゲームの演出パターンとしてRAM91cに設定するようになっている。
また、CPU91aは、特にビッグボーナス入賞が発生した旨を示す入賞判定コマンドを受信した際に、ビッグボーナス入賞時に特有のBB入賞時演出を実行するための制御パターンを参照し、当該制御パターンに基づいて演出の制御を行う。これにより、図14に示すように、賭数の設定の禁止が解除されるまでの期間(BB入賞時演出の演出待ち時間)にわたり、ファンファーレの出力等がなされるBB入賞時演出が実行されることとなる。
また、CPU91aは、ビッグボーナスの終了条件が成立したゲームの終了を示す遊技状態コマンドを受信した際に、ビッグボーナスの終了を示すエンディング演出を実行するための制御パターンを参照し、当該制御パターンに基づいて演出の制御を行う。これにより、図15に示すように、賭数の設定の禁止が解除されるまでの期間にわたり、終了画面の表示等がなされるエンディング演出が実行されることとなる。
次に、本実施例におけるメイン制御部41のCPU41aが実行する各種制御内容を、図23〜図46に基づいて以下に説明する。
CPU41aは、リセット回路49からリセット信号が入力されると、図23のフローチャートに示す起動処理を行う。尚、リセット信号は、電源投入時及びメイン制御部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異常を示すエラーコードをRAM41cに設定し(Sa10)、図24に示すエラー処理に移行する。
また、Sa8のステップにおいてRAMパリティが0であれば、更に破壊診断用データが正常か否かを判定する(Sa9)。正常に電断割込処理が行われていれば、破壊診断用データが設定されているはずであり、Sa9のステップにおいて破壊診断用データが正常でない場合(破壊診断用データが電断時に格納される5A(H)以外の場合)にも、RAM41cのデータが正常ではないので、RAM異常を示すエラーコードをRAM41cに設定し(Sa10)、図24に示すエラー処理に移行する。
エラー処理では、図24に示すように、現在の遊技補助表示器12の表示状態をスタックに退避し(Sb1)、RAM41cに設定されているエラーコードを遊技補助表示器12に表示する(Sb2)。
次いで、RAM41cに設定されているエラーコードを確認し、当該エラーコードがRAM異常エラーを示すエラーコードであるか否かを判定し(Sb3)、RAM異常エラーを示すエラーコードを示すエラーコードが設定されている場合には、エラーコードがRAM異常エラーを示すエラーコードであるか否かを判定する以外はいずれの処理も行わないループ処理に移行する。
また、Sb3のステップにおいて、RAM異常以外を示すエラーコードが設定されている場合には、リセット/設定スイッチ38の操作が検出されているか否かを判定し(Sb4)、リセット/設定スイッチ38の操作が検出されていなければ、更にリセットスイッチ23の操作が検出されているか否かを判定し(Sb5)、リセットスイッチ23の操作も検出されていなければ、Sb4のステップに戻る。すなわちリセット/設定スイッチ38またはリセットスイッチ23の操作が検出されるまで、遊技の進行が不能な状態で待機する。
そして、Sb4のステップにおいてリセット/設定スイッチ38の操作が検出された場合、またはSb5のステップにおいてリセットスイッチ23の操作が検出された場合には、RAM41cに設定されているエラーコードをクリアし(Sb6)、遊技補助表示器12の表示状態をSb1のステップにおいてスタックに退避した表示状態に復帰させて(Sb7)、もとの処理に戻る。
このようにエラー処理においては、RAM異常エラー以外によるエラー処理であれば、リセット/設定スイッチ38またはリセットスイッチ23が操作されることで、エラー状態を解除してもとの処理に復帰するが、RAM異常エラーによるエラー処理であれば、リセット/設定スイッチ38またはリセットスイッチ23が操作されてもエラー状態が解除されることはない。
図23に戻り、Sa9のステップにおいて破壊診断用データが正常であると判定した場合には、RAM41cのデータは正常であるので、RAM41cの非保存ワーク、未使用領域及び未使用スタック領域を初期化する初期化3を行った後(Sa11)、破壊診断用データをクリアする(Sa12)。次いで、各レジスタを電断前の状態、すなわちスタックに保存されている状態に復帰し(Sa13)、割込を許可して(Sa14)、電断前の最後に実行していた処理に戻る。
また、Sa6のステップにおいて設定キースイッチ37がONの状態であれば、RAM41cの格納領域のうち、使用中スタック領域を除く全ての格納領域を初期化する初期化1を実行した後(Sa15)、設定値ワークに格納されている値(この時点では0)を1に補正する(Sa16)。次いで、割込を許可して(Sa17)、図25に示す設定変更処理、すなわち設定変更モードに移行し(Sa18)、設定変更処理の終了後、ゲーム処理に移行する。
設定変更処理では、図25に示すように、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が判定されると、図23のフローチャートに復帰し、ゲーム処理に移行することとなる。
このように起動処理においては、設定キースイッチ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の操作により新たに設定値が選択・設定されたことを条件に、ゲームの進行が不能な状態が解除され、ゲームを再開させることが可能となる。
図26は、CPU41aが実行するゲーム処理の制御内容を示すフローチャートである。
ゲーム処理では、BET処理(Sd1)、内部抽選処理(Sd2)、リール回転処理(Sd3)、リール停止処理(Sd4)、入賞判定処理(Sd5)、払出処理(Sd6)、ゲーム終了時処理(Sd7)、フリーズ処理(Sd8)、を順に実行し、フリーズ処理が終了すると、再びBET処理に戻る。
Sd1のステップにおけるBET処理では、賭数を設定可能な状態で待機し、遊技状態に応じた規定数の賭数が設定され、スタートスイッチ7が操作された時点で賭数を確定する処理を実行する。
Sd2のステップにおける内部抽選処理では、Sd1のステップにおけるスタートスイッチ7の検出によるゲームスタートと同時に内部抽選用の乱数を抽出し、抽出した乱数の値に基づいて上記した各役への入賞を許容するかどうかを決定する処理を行う。この内部抽選処理では、それぞれの抽選結果に基づいて、RAM41cに当選フラグが設定される。
Sd3のステップにおけるリール回転処理では、各リール2L、2C、2Rを回転させる処理を実行する。このリール回転処理においては、全てのリール2L、2C、2Rが定速回転した時点でストップスイッチ8L、8C、8Rの操作を有効とする。
Sd4のステップにおけるリール停止処理では、遊技者によるストップスイッチ8L、8C、8Rの操作が検出され、各リール2L、2C、2Rの停止条件が成立したことに応じて対応するリール2L、2C、2Rの回転を停止させる処理を実行する。
Sd5のステップにおける入賞判定処理では、Sd4のステップにおいて全てのリール2L、2C、2Rの回転が停止したと判定した時点で、各リール2L、2C、2Rに導出された表示結果に応じて入賞が発生したか否かを判定する処理を実行する。
Sd6のステップにおける払出処理では、Sd5のステップにおいて入賞の発生が判定された場合に、その入賞に応じた払出枚数に基づきクレジットの加算並びにメダルの払出等の処理を行う。
Sd7のステップにおけるゲーム終了時処理では、次のゲームに備えて遊技状態を設定する処理を実行する。
Sd8のステップにおけるフリーズ処理では、ビッグボーナス入賞時、及びビッグボーナスの終了時に、BET処理への移行を遅延させることにより、その間賭数の設定を不能化させる処理を行う。また、ビッグボーナスの終了時の打止状態もこの処理により制御される。
図27及び図28は、CPU41aがSd1のステップにおいて実行するBET処理の制御内容を示すフローチャートである。
BET処理では、まず、RAM41cにおいて賭数の値が格納されるBETカウンタの値をクリアし(Se1)、当該ゲームがリプレイゲームであるか否かを判定する(Se2)。RAM41cにリプレイゲーム中である旨を示すリプレイゲーム中フラグが設定されており、当該ゲームがリプレイゲームであると判定された場合には、BETカウンタの値を1加算し、RAM41cに設定された賭数の規定数(後に説明するが、遊技状態に応じて定められた賭数の規定数であり、レギュラーボーナスにあるときには、1が設定され、通常遊技状態及び小役ゲームにあるときには、3が設定される。もっともリプレイゲームに制御されるのは通常遊技状態のみである。)を参照し、BETカウンタの値が規定数であるか否を判定する処理(Se3、Se4)をSe4のステップにおいてBETカウンタの値が規定数であると判定されるまで繰り返し実行し、Se4のステップにおいてBETカウンタの値が規定数であると判定された場合には、スタートスイッチ7の操作の検出待ちの状態で待機する(Se5)。そして、この状態でスタートスイッチ7の操作が検出されると、BET処理を終了して、図26のフローチャートに復帰する。
また、Se2のステップにおいてリプレイゲームでなければ、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定し(Se6)、BETカウンタの値が規定数であれば、更にRAM41cにおいてクレジットの値が格納されるクレジットカウンタの値が上限値である50であるか否かを判定する(Se7)。そして、Se6及びSe7のステップにおいてBETカウンタの値が規定数であり、かつクレジットカウンタの値が50であれば、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Se8)、Se6のステップにおいてBETカウンタの値が規定数ではない場合、またはSe7のステップにおいてクレジットカウンタの値が50ではない場合には、流路切替ソレノイド30をonの状態とし、メダルの流路をホッパータンク側の経路としてメダルの投入が可能な状態とする(Se9)。
次いで、クレジットカウンタの値及びBETカウンタの値の双方が0であるか否かを判定し(Se10)、クレジットカウンタまたはBETカウンタの値のいずれか一方でも0でなければ、更に精算スイッチ10の操作が検出されているか否かを判定し(Se11)、精算スイッチ10の操作が検出されていれば、ホッパーモータ34を駆動してクレジットカウンタ及びBETカウンタに格納された値分のメダルを払い出す制御、すなわちクレジットとして記憶されているメダル及び賭数の設定に用いられたメダルを返却する制御が行われる精算処理(Se12)を行った後、Se6のステップに戻る。
また、Se10のステップにおいてクレジットカウンタの値及びBETカウンタの値の双方が0の場合、またはSe12のステップにおいて精算スイッチ10の操作が検出されていない場合には、投入メダルセンサ31により投入メダルの通過が検出されたか否かを判定し(Se13)、投入メダルの通過が検出されていれば、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定し(Se14)、BETカウンタの値が規定数でなければ、BETカウンタの値を1加算した後(Se15)、Se6のステップに戻り、Se14のステップにおいてBETカウンタの値が規定数であれば、クレジットカウンタの値が50であるか否かを判定し(Se16)、クレジットカウンタの値が50であれば、そのままSe6のステップに戻り、クレジットカウンタの値が50でなければ、クレジットカウンタの値を1加算した後(Se17)、Se6のステップに戻る。
また、Se13のステップにおいて投入メダルの通過が検出されていなければ、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定し(Se18)、BETカウンタの値が規定数であれば、スタートスイッチ7の操作が検出されているか否かを判定し(Se19)、スタートスイッチ7の操作が検出されていなければ、そのままSe6のステップに戻り、スタートスイッチ7の操作が検出されていれば、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Se20)、BET処理を終了して、図26のフローチャートに復帰する。これに伴い、投入メダルセンサ31、1BETスイッチ5及びMAXBETスイッチ6の検出に基づく賭数の設定が禁止されるとともに、精算スイッチ10の検出に基づくクレジットの精算が禁止されることとなる。尚、本実施例では、BET処理においてのみ賭数の設定を行い、図26に示すSd2〜Sd8の処理では、賭数の設定が禁止される。また、BET処理及び後述するSd8のフリーズ処理においてのみクレジット(賭数の設定に用いられたメダルを含む)の精算を行い、図26に示すSd2〜Sd7までのステップにおいては、クレジットの精算が禁止される。
また、Se18のステップにおいてBETカウンタの値が規定数でなければ、クレジットカウンタの値が0か否かを判定し(Se21)、クレジットカウンタの値が0であれば、Se6のステップに戻る。Se21のステップにおいてクレジットカウンタの値が0でなければ、1枚BETスイッチ5の操作が検出されているか否かを判定し(Se22)、1枚BETスイッチ5の操作が検出されていなければ、MAXBETスイッチ6の操作が検出されているか否かを判定し(Se23)、MAXBETスイッチ6の操作が検出されていなければ、Se6のステップに戻る。
また、Se22のステップにおいて1枚BETスイッチ5の操作が検出されていれば、クレジットカウンタの値を1減算し(Se24)、BETカウンタの値を1加算した後(Se25)、Se6のステップに戻る。また、Se23のステップにおいてMAXBETスイッチ6の操作が検出されていれば、クレジットカウンタの値が0となるか、BETカウンタの値が規定数となるまで、クレジットカウンタの値を1減算し、BETカウンタの値を1加算する処理(Se26〜Se29)を繰り返し実行し、Se26のステップにおいてクレジットカウンタの値が0となるか、Se29のステップにおいてBETカウンタの値が規定数となった時点で、Se6のステップに戻る。
図29は、CPU41aがBET処理のSe12のステップ及びSd8のステップのフリーズ処理において実行する精算処理の制御内容を示すフローチャートである。
精算処理では、まず、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路としてメダルの投入を禁止し(Sf1)、1枚分のメダルの払出制御を行うメダル1枚払出処理を行う(Sf2)。
Sf2のステップにおけるメダル1枚払出処理では、ホッパーモータ34の駆動状態がonでなければ、ホッパーモータ34の駆動状態をonに設定する。そして、払出センサ35の検出状態を監視し、払出センサ35により1枚分のメダルの払出が検出されると、メダルの払出と判定し、次の処理に移行する。また、払出センサ35により一定時間以上メダルが継続して検出された場合には、メダル詰まりと判定し、ホッパーモータ34の駆動状態をoffに設定し、メダル詰まりエラーを示すエラーコードをRAM41cに設定した後、図24に示すエラー処理に移行する。また、払出センサ35により一定時間以上メダルが検出されない場合には、一旦ホッパーモータ34の駆動状態をoffとし、数回にわたりホッパーモータ34の駆動を再試行しても払出センサ35によりメダルが検出されない場合には、ホッパーエラー(ホッパー内のメダル不足を示すエラー)を示すエラーコードをRAM41cに設定した後、図24に示すエラー処理に移行する。これらメダル詰まりエラーやホッパーエラーによるエラー処理は、リセットスイッチ23やリセット/設定スイッチ38が操作されることで解除され、解除後、再びメダル1枚払出処理の先頭に戻る。
Sf2のステップにおけるメダル1枚払出処理により1枚分のメダルが払い出されると、BETカウンタの値が0か否かを判定し(Sf3)、BETカウンタの値が0でない場合、すなわち1以上の賭数が設定されている状態であれば、BETカウンタの値を1減算し(Sf4)、Sf6のステップに進む。一方、Sf3のステップにおいてBETカウンタの値が0であれば、クレジットカウンタの値を1減算し(Sf5)、Sf6のステップに進む。
Sf6のステップでは、BETカウンタの値が0か否かを判定し、BETカウンタの値が0でなければ、更にクレジットカウンタの値が0か否かを判定する(Sf7)。そして、BETカウンタの値またはクレジットカウンタの値の一方でも0でなければ、Sf2のステップに戻る。すなわちBETカウンタの値及びクレジットカウンタの値が0となるまでメダル1枚払出処理が行われる毎に、BETカウンタの値及びクレジットカウンタの値を減算する処理を繰り返す。この際、BETカウンタ及びクレジットカウンタの双方の値が残存する場合には、BETカウンタ、クレジットカウンタの順で減算されることとなる。
Sf6、Sf7のステップにおいてBETカウンタの値もクレジットカウンタの値も0であれば、ホッパーモータ34の駆動状態をoffに設定して駆動を停止させた後(Sf8)、精算処理を終了して、もとの処理に復帰する。
図30〜32は、CPU41aがSd2のステップにおいて実行する内部抽選処理の制御内容を示すフローチャートである。
内部抽選処理では、まず、詳細を後述する乱数取得処理を行う(Sg1)。この乱数取得処理においては、乱数発生回路(図示略)が発生する乱数に基づいて、内部抽選用の乱数の値が取得されることとなる。
そして、RAM41cの設定値ワークに格納されている設定値を読み出し(Sg2)、読み出した設定値が1〜6の範囲か否か、すなわち設定値ワークに格納されている設定値が適正な値か否かを判定し(Sg3)、読み出した設定値が1〜6の範囲の値でなければ、RAM異常を示すエラーコードをRAM41cに設定し(Sg4)、図24に示すエラー処理に移行する。
また、Sg4のステップにおいて読み出した設定値が1〜6の範囲であれば、現在の遊技状態が通常遊技状態であるか否かを判定し(Sg5)、通常遊技状態であれば、通常遊技状態に対応して、図6(a)に示す遊技状態別当選役テーブルに登録されている順番で小役及び再遊技役を読み出す(Sg6)。Sd1のステップで設定されたBET数(賭数)を読み出し、当該役と読み出したBET数に対応する役について、図6(b)の小役及び再遊技役用の役別テーブルから共通フラグの設定状況を取得する(Sg7)。この結果、当該役、当該BET数について共通フラグが設定されているかどうかを判定する(Sg8)。
共通フラグが設定されていれば、当該役、当該BET数について図6(b)の小役及び再遊技役用の役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg9)。そして、Sg11の処理に進む。共通フラグが設定されていなければ、当該役、当該BET数について読み出した設定値に対応して小役及び再遊技役用の役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg10)。そして、Sg11の処理に進む。
Sg11のステップでは、Sg9またはSg10のステップにおいて取得した判定値数を内部抽選用の乱数の値に加算し、加算の結果を新たな内部抽選用の乱数の値とする。ここで、判定値数を内部抽選用の乱数の値に加算したときにオーバーフローが生じたかどうかを判定する(Sg12)。オーバーフローが生じた場合には、当該役の当選フラグをRAM41cに設定する(Sg13)。そして、図31に示すSg15の処理に進む。
Sg12のステップにおいてオーバーフローが生じていない場合には、通常遊技状態について定められた小役及び再遊技役のうちで未だ処理対象としていない役があるかどうかを判定する(Sg14)。未だ処理対象としていない役があれば、Sg6の処理に戻り、通常遊技状態について定められた小役及び再遊技役から次の役を処理対象として処理を継続する。処理対象としていない役がなければ、図31に示すSg15の処理に進む。
Sg15のステップでは、前回以前のゲームでRAM41cにレギュラーボーナスまたはビッグボーナスの当選フラグが既に設定され、当該当選フラグに基づいて入賞することなく持ち越されているかどうかを判定する。レギュラーボーナスまたはビッグボーナスの当選フラグが既に設定されていれば、内部抽選処理を終了して、図26のフローチャートに復帰する。また、レギュラーボーナスの当選フラグもビッグボーナスの当選フラグも設定されていなければ、内部抽選用の乱数を加算前の値、すなわちSg1の乱数取得処理において取得した値に戻す(Sg16)。
次いで、図6(a)に示す遊技状態別当選役テーブル及び図6(c)に示す特別役用の役別テーブルを参照し、遊技状態別当選役テーブルに登録されている通常遊技状態の抽選対象となる特別役を、特別役用の役別テーブルに登録されている順番で読み出す(Sg17)。この際、特別役のハズレが特別役用の役別テーブルに登録されている場合には、特別役のハズレについても登録されている順番で読み出す。更に、図6(c)の特別役用の役別テーブルから共通フラグの設定状況を取得する(Sg18)。この結果、当該役について共通フラグが設定されているかどうかを判定する(Sg19)。
共通フラグが設定されていれば、当該役について図6(c)の特別役用の役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg20)。そして、Sg22の処理に進む。共通フラグが設定されていなければ、当該役について読み出した設定値に対応して特別役用の役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg21)。そして、Sg22の処理に進む。
Sg22のステップでは、Sg20またはSg21のステップにおいて取得した判定値数を内部抽選用の乱数の値に加算し、加算の結果を新たな内部抽選用の乱数の値とする。ここで、判定値数を内部抽選用の乱数の値に加算したときにオーバーフローが生じたかどうかを判定する(Sg23)。オーバーフローが生じた場合には、当該役がハズレ−Aまたはハズレ−Bであるか否かを判定する(Sg24)。当該役がハズレ−Aまたはハズレ−Bのいずれかであれば、内部抽選処理を終了して、図26のフローチャートに復帰する。また、当該役がハズレ−Aでもなく、ハズレ−Bでもなければ、当該役の当選フラグをRAM41cに設定する(Sg25)。そして、内部抽選処理を終了して、図26のフローチャートに復帰する。
Sg23のステップにおいてオーバーフローが生じていない場合には、通常遊技状態について定められた特別役(特別役のハズレ含む)のうちで未だ処理対象としていない役があるかどうかを判定する(Sg26)。未だ処理対象としていない役があれば、Sg17の処理に戻り、通常遊技状態について定められた特別役(特別役のハズレ含む)から次の役を処理対象として処理を継続する。処理対象としていない役がなければ、内部抽選処理を終了して、図26のフローチャートに復帰する。
また、Sg5のステップにおいて、現在の遊技状態が通常遊技状態でなければ、小役ゲームか否かを判定する(Sg27)。小役ゲームであれば、小役ゲームに対応して、図6(a)の遊技状態別当選役テーブルに登録されている役を順番に読み出し(Sg28)、Sg30の処理に進む。Sg27のステップにおいて小役ゲームでなければ、レギュラーボーナスであるので、レギュラーボーナスに対応して図6(a)の遊技状態別当選役テーブルに登録されている役を順番に読み出し(Sg29)、Sg30の処理に進む。
Sg30のステップでは、Sg28及びSg29のステップで読み出した役の種類がレギュラーボーナス(2)またはJACINであるかどうかを判定する。レギュラーボーナス(2)またはJACINである場合には、前回以前のゲームでRAM41cにレギュラーボーナス(2)の当選フラグが既に設定され、当該当選フラグに基づいて入賞することなく持ち越されているかどうかを判定する(Sg31)。読み出した役の種類がレギュラーボーナス(2)でもJACINでもなければ、そのままSg32の処理に進む。
レギュラーボーナス(2)の当選フラグが既に設定されていれば、内部抽選処理を終了して、図26のフローチャートに復帰する(レギュラーボーナス(2)及びJACINは、前述のように遊技状態別当選役テーブルにおいて小役よりも後に登録されているので、これで内部抽選処理が終了することとなるので)。読み出した役の種類がレギュラーボーナス(2)またはJACINであっても、レギュラーボーナス(2)の当選フラグが設定されていなければ、Sg32の処理に進む。
Sg32のステップでは、更にSd1のステップで設定されたBET数(賭数)を読み出し、当該役と読み出したBET数に対応する役について、図6(b)(c)の該当する役別テーブルから共通フラグの設定状況を取得する。この結果、当該役、当該BET数について共通フラグが設定されているかどうかを判定する(Sg33)。
共通フラグが設定されていれば、当該役、当該BET数について図6(b)(c)の該当する役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg34)。そして、Sg36の処理に進む。共通フラグが設定されていなければ、当該役、当該BET数について読み出した設定値に対応して図6(b)(c)の該当する役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg35)。そして、Sg36の処理に進む。
Sg36のステップでは、Sg34またはSg35のステップにおいて取得した判定値数を内部抽選用の乱数の値に加算し、加算の結果を新たな内部抽選用の乱数の値とする。ここで、判定値数を内部抽選用の乱数の値に加算したときにオーバーフローが生じたかどうかを判定する(Sg37)。オーバーフローが生じた場合には、当該役の当選フラグをRAM41cに設定する(Sg38)。そして、内部抽選処理を終了して、図26のフローチャートに復帰する。
Sg37のステップにおいてオーバーフローが生じていない場合には、当該遊技状態について定められた役のうちで未だ処理対象としていない役があるかどうかを判定する(Sg39)。未だ処理対象としていない役があれば、Sg27の処理に戻り、当該遊技状態について定められた次の役を処理対象として処理を継続する。処理対象としていない役がなければ、内部抽選処理を終了して、図26のフローチャートに復帰する。
以上のように内部抽選処理においては、RAM41cの設定値ワークに格納されている設定値が適正な値であるか否かを確認し、設定値が適正な値でない場合には、前述したRAM異常エラーを示すエラーコードを設定してエラー処理に移行し、起動時にRAM41cのデータが正常ではないと判定された場合と同様に、RAM異常エラーによるエラー状態となり、ゲームの進行が不能化されるようになっている。
また、通常遊技状態においては、同一の内部抽選用の乱数につき小役及び再遊技役と特別役との抽選が別個に行われるようになっているため、通常遊技状態においては、当選となる乱数の範囲が重複する小役(本実施例では、チェリー及びスイカ)と特別役(本実施例では、ビッグボーナス(1)〜(3))とが同時に当選することがある。
次に、Sg1のステップにおける乱数取得処理を図33のフローチャートに基づいて詳しく説明する。乱数取得処理では、まず、割込を禁止する(Sh1)。次に、サンプリング回路43にサンプリング指令を出力し、乱数発生回路42が発生している乱数をラッチさせ、ラッチさせた乱数の値をI/Oポート41dから入力して、これを抽出する。乱数発生回路42から抽出された乱数の値は、汎用レジスタ41GRに格納される(Sh2)。
次に、汎用レジスタ41GRに格納された乱数の下位バイトの値と上位バイトの値を、RAM41cの作業領域を用いて互いに入れ替える(Sh3)。次に、汎用レジスタ41GRに格納された乱数の値を8080hと論理和演算する(Sh4)。更に上位バイト(第15〜第8ビット)を1ビットずつ下位にシフトし、これによって空いた第15ビットに1を挿入する。このときに汎用レジスタ41GRに格納された値が内部抽選用の乱数として取得され、RAM41cの所定の領域に保存される(Sh5)。そして、Sh1のステップで禁止した割込を許可してから(Sh6)、乱数取得処理を終了して、図30のフローチャートに復帰する。
図34は、CPU41aがSd5のステップにおいて実行する入賞判定処理の制御内容を示すフローチャートである。
入賞判定処理では、まず、現在の遊技状態に対応して、図6(a)の遊技状態別当選役テーブルに入賞判定の対象として登録されている役を順番に読み出し(Si1)、読み出した役の組み合わせが有効ラインに揃っているか否かを判定する(Si2)。そして当該役の組み合わせが有効ラインに揃っていなければ、Si4の処理に進み、当該役の組み合わせが有効ラインに揃っていれば、当該役が入賞した旨を示す入賞フラグをRAM41cに設定した後(Si3)、Si4の処理進む。
Si4のステップでは、当該遊技状態について入賞判定の対象として定められた役のうちで未だ処理対象としていない役があるかどうかを判定する。未だ処理対象としていない役があれば、Si1の処理に戻り、遊技状態別当選役テーブルに登録されている次の役を処理対象として処理を継続する。処理対象としていない役がなければ、入賞フラグを参照し、リプレイが入賞したか否かを判定し(Si5)、リプレイが入賞していなければ、Si7に進み、リプレイが入賞していれば、リプレイゲーム中である旨を示すリプレイゲーム中フラグをRAM41cに設定し(Si6)、Si7の処理進む。
Si7のステップでは、入賞フラグを参照し、ビッグボーナスが入賞したか否かを判定し、ビッグボーナスが入賞していなければSi10の処理に進み、ビッグボーナスが入賞していれば、ビッグボーナス中である旨を示すビッグボーナス中フラグをRAM41cに設定するとともに、ビッグボーナス当選フラグをクリアし(Si8)、RAM41cにおいてビッグボーナス中のメダルの払出総数が格納されるビッグボーナス中払出数カウンタの値を初期化し(Si9)、RAM41cに前述したBB入賞時演出の演出待ち時間を設定した後(Si10)、Si11の処理に進む。
Si11のステップでは、入賞フラグを参照し、レギュラーボーナスが入賞したか否かを判定し、レギュラーボーナスが入賞していなければ、入賞判定処理を終了して、図26のフローチャートに復帰する。レギュラーボーナスが入賞していれば、レギュラーボーナス中である旨を示すレギュラーボーナス中フラグをRAM41cに設定するとともに、レギュラーボーナス当選フラグをクリアし(Si12)、RAM41cにおいてレギュラーボーナスのゲーム数が格納されるレギュラーボーナスゲーム数カウンタの値及びレギュラーボーナス中の入賞回数が格納されるレギュラーボーナス中入賞カウンタの値を初期化した後(Si13)、入賞判定処理を終了して、図26のフローチャートに復帰する。
図35は、CPU41aがSd7のステップにおいて実行するゲーム終了時処理の制御内容を示すフローチャートである。
ゲーム終了時処理では、まず、現在の遊技状態に対応して、ボーナス中か否か、すなわちレギュラーボーナス中、ビッグボーナス中であるか否かを判定し(Sj1)、ボーナス中でなければ、Sj3の処理に進み、ボーナス中であれば、ボーナス中に用いる各種カウンタ(前述したビッグボーナス中払出数カウンタ、レギュラーボーナスゲーム数カウンタ、レギュラーボーナス中入賞カウンタ)の値を更新し(Sj2)、Sj3の処理に進む。
Sj3のステップでは、当該ゲームがリプレイゲームであったか否かを判定し、リプレイゲームでなければSj5の処理に進み、リプレイゲームであったならば、RAM41cに設定されているリプレイゲーム中フラグをクリアし(Sj4)、Sj5の処理に進む。
Sj5のステップでは、当該ゲームがビッグボーナス中か否かを判定し、ビッグボーナス中であれば、更に当該ビッグボーナスの終了条件が成立したか否か、すなわち当該ビッグボーナス中の払出総数が465枚を越えたか否か、を判定し(Sj6)、Sj5のステップでビッグボーナス中ではない場合、またはSj6のステップにおいてビッグボーナスの終了条件が成立していなければ、Sj10の処理に進み、Sj6のステップにおいてビッグボーナスの終了条件が成立していれば、RAM41cに前述したエンディング演出の演出待ち時間を設定した後(Sj7)、RAM41cに設定されているビッグボーナス中フラグをクリアし(Sj8)、RAM41cの未使用領域及び未使用スタック領域に加えて一般ワークを初期化する初期化2を行った後(Sj9)、Sj10の処理に進む。
Sj10のステップでは、当該ゲームがレギュラーボーナス中であるか否かを判定し、レギュラーボーナス中であれば、更に当該レギュラーボーナスの終了条件が成立したか否か、すなわちレギュラーボーナスのゲーム数が12ゲームに到達するか、レギュラーボーナス中の入賞回数が8回に到達するか、また、ビッグボーナス中に提供されたレギュラーボーナスであれば、当該ビッグボーナス中の払出総数が465枚を越えたか否か、を判定し(Sj11)、Sj10のステップでレギュラーボーナス中ではない場合、またはSj11のステップにおいてレギュラーボーナスの終了条件が成立していなければ、Sj13の処理に進み、Sj11のステップにおいてレギュラーボーナスの終了条件が成立していれば、RAM41cに設定されているレギュラーボーナス中フラグをクリアし(Sj12)、Sj13の処理に進む。
Sj13のステップでは、次ゲームの遊技状態がレギュラーボーナスであるか否かを判定し、次ゲームの遊技状態がレギュラーボーナスであれば、RAM41cに設定されている賭数の規定値を1とし(Sj14)、Sj16の処理に進む。次ゲームの遊技状態がレギュラーボーナスでない場合、すなわち次ゲームが通常遊技状態またはビッグボーナス中の小役ゲームである場合には、RAM41cに設定されている賭数の規定値を3とし(Sj15)、Sj16の処理に進む。
Sj16のステップでは、RAM41cに設定されている特別役以外の当選フラグをクリアした後、RAM41cの未使用領域及び未使用スタック領域を初期化する初期化4を行い(Sj17)、ゲーム終了時処理を終了して、図26に示すフローチャートに復帰する。
図36は、CPU41aがSd8のステップにおいて実行するフリーズ処理の制御内容を示すフローチャートである。
フリーズ処理では、まず、終了したゲームがビッグボーナス入賞の発生したゲームであったか否かを判定し(Sk1)、ビッグボーナス入賞の発生したゲームであったならば、Sk12の処理に進む。ビッグボーナス入賞の発生したゲームでなければ、ビッグボーナス入賞の発生したゲームでない場合には、終了したゲームが、ビッグボーナスの終了ゲームであったか否かを判定し(Sk2)、ビッグボーナスの終了ゲームでなければ、フリーズ処理を終了して、図26に示すフローチャートに復帰する。
Sk2のステップにおいて、ビッグボーナスの終了ゲームであった場合には、更にCPU41aの特定のレジスタの設定状況を確認し、打止機能が有効に設定されているか否かを判定し(Sk3)、打止機能が有効に設定されていなければ、Sk12の処理に進む。
Sk3のステップにおいて打止機能が有効に設定されていれば、クレジットカウンタの値が0か否かを判定し(Sk4)、クレジットカウンタの値が0でなければ、精算スイッチ10の操作が検出されたか否かを判定し(Sk5)、精算スイッチ10の操作が検出されていれば、図29に示す精算処理を実行し(Sk6)、精算処理の実行後、Sk4のステップに戻る。また、Sk4のステップにおいてクレジットカウンタの値が0の場合、またはSk5のステップにおいて精算スイッチ10の操作が検出されなかった場合には、入賞判定時に設定された時間に基づいて当該ゲームの終了時点からエンディング演出の演出待ち時間が経過したか否かを判定し(Sk7)、エンディング演出の演出待ち時間が経過していなければ、Sk4のステップに戻り、エンディング演出の演出待ち時間が経過していれば、打止状態に移行する。
打止状態では、遊技補助表示器12に「END」を表示するとともに(Sk8)、リセット/設定スイッチ38の操作が検出されたか否かを判定し(Sk9)、リセット/設定スイッチ38の操作が検出されていなければ、更に、リセットスイッチ23の操作が検出されたか否かを判定し(Sk10)、リセットスイッチ23の操作も検出されていなければ、Sk5のステップに戻る。すなわち打止状態に移行すると、リセット/設定スイッチ38またはリセットスイッチ23の操作が検出されるまで、遊技の進行が不能な状態で待機する。尚、この間も、クレジットカウンタの値が0ではない場合、すなわちクレジットが残存する状態であれば、精算スイッチ10の操作が検出されることで、精算処理が行われることとなる。
また、Sk9のステップにおいてリセット/設定スイッチ38の操作が検出された場合、または、Sk10のステップにおいてリセットスイッチ23の操作が検出された場合には、遊技補助表示器12の「END」表示を解除して(Sk11)、フリーズ処理を終了して、図26に示すフローチャートに復帰する。
Sk1のステップにおいて当該ゲームがビッグボーナス入賞が発生したゲームであった場合、またはSk3のステップにおいて当該ゲームがビッグボーナスの終了ゲームであり、かつ打止機能が有効に設定されていない場合には、クレジットカウンタの値が0か否かを判定し(Sk12)、クレジットカウンタの値が0でなければ、精算スイッチ10の操作が検出されたか否かを判定し(Sk13)、精算スイッチ10の操作が検出されていれば、図29に示す精算処理を実行し(Sk14)、精算処理の実行後、Sk12のステップに戻る。また、Sk12のステップにおいてクレジットカウンタの値が0の場合、またはSk13のステップにおいて精算スイッチ10の操作が検出されなかった場合には、入賞判定時に設定された時間に基づいて当該ゲームの終了時点からBB入賞時演出またはエンディング演出の演出待ち時間が経過したか否かを判定し(Sk15)、BB入賞時演出またはエンディング演出の演出待ち時間が経過していなければ、Sk12のステップに戻り、BB入賞時演出またはエンディング演出の演出待ち時間が経過していれば、フリーズ処理を終了して、図26に示すフローチャートに復帰する。
次に、CPU41aが初期化条件の成立に応じて実行する初期化1〜4の制御内容を図37〜41のフローチャートに基づいて説明する。
図37は、CPU41aが起動処理において設定変更モードへの移行前に実行する初期化1の制御内容を示すフローチャートである。
初期化1では、まず、ROM41bの初期化テーブルを参照し、初期化1に対応して登録されている開始アドレスと初期化サイズを読み出す(Sm1)。読み出した開始アドレス(7E00(H))にポインタをセットする(Sm2)。次いで、未使用スタック領域のサイズ(M=スタックポインタ−7FD2(H))を計算し(Sm3)、初期化する領域のバイト数(1DM(H)+M)をセットする(Sm4)。そして、Sm2でセットされた開始アドレスからSm4でセットされたバイト数にわたりデータをクリアするRAMクリア処理を実行し(Sm5)、RAMクリア処理が終了すると、初期化1を終了してもとの処理に復帰する。
図38は、図37のSm5のステップにおいて実行するRAMクリア処理の制御内容を示すフローチャートである。
RAMクリア処理では、ポインタが示すアドレスが示す1バイトのデータを0クリアし(Sn1)、初期化バイト数(初期化する領域としてセットされたバイト数)を1減算する(Sn2)。次いで、減算後の初期化バイト数が0となったか否か、すなわち指定されたバイト数全ての初期化が終了したか否かを判定する(Sn3)。減算後の初期化バイト数が0でなければ、ポインタを1進めて(Sn4)、Sn1の処理に戻り、初期化バイト数が0となるまでSn1〜4の処理を繰り返し行う。そして、Sn3のステップにおいて減算後の初期化バイト数が0であれば、指定されたバイト数全ての初期化が終了したこととなるので、RAMクリア処理を終了し、もとの処理に復帰する。
図39は、CPU41aがSd7のゲーム終了時処理においてビッグボーナス終了時に実行する初期化2の制御内容を示すフローチャートである。
初期化2では、まず、割込を禁止した後(Sp1)、ROM41bの初期化テーブルを参照し、初期化2に対応して登録されている開始アドレスと初期化サイズを読み出す(Sp2)。初期化2には、2つの開始アドレス及びそれぞれに対応する初期化サイズが登録されているので、読み出した開始アドレスのうち最初に初期化する領域の開始アドレス(7E28(H))にポインタをセットし(Sp3)、最初に初期化する領域のバイト数(67(H))をセットし(Sp4)、Sp3でセットされた開始アドレスからSp4でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図38参照)を実行する(Sp5)。RAMクリア処理が終了すると、読み出した開始アドレスのうち2番目に初期化する領域の開始アドレス(7EBA(H))にポインタをセットし(Sp6)、未使用スタック領域のサイズ(M=スタックポインタ−7FD2(H))を計算し(Sp7)、2番目に初期化する領域のバイト数(118(H)+M)をセットする(Sp8)。そして、Sp6でセットされた開始アドレスからSp8でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図38参照)を実行し(Sp9)、RAMクリア処理が終了すると、Sp1のステップにおいて禁止していた割込を許可し(Sp10)、初期化2を終了してもとの処理に復帰する。
図40は、CPU41aが起動処理においてRAM41cのデータが正常である場合に実行する初期化3の制御内容を示すフローチャートである。
初期化3では、まず、ROM41bの初期化テーブルを参照し、初期化3に対応して登録されている開始アドレスと初期化サイズを読み出す(Sq1)。初期化3には、2つの開始アドレス及びそれぞれに対応する初期化サイズが登録されているので、読み出した開始アドレスのうち最初に初期化する領域の開始アドレス(7EB7(H))にポインタをセットし(Sq2)、最初に初期化する領域のバイト数(3(H))をセットし(Sq3)、Sq2でセットされた開始アドレスからSq3でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図38参照)を実行する(Sq4)。RAMクリア処理が終了すると、読み出した開始アドレスのうち2番目に初期化する領域の開始アドレス(7F05(H))にポインタをセットし(Sq5)、未使用スタック領域のサイズ(M=スタックポインタ−7FD2(H))を計算し(Sq6)、2番目に初期化する領域のバイト数(CD(H)+M)をセットする(Sq7)。そして、Sq5でセットされた開始アドレスからSq7でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図38参照)を実行し(Sq8)、RAMクリア処理が終了すると、初期化3を終了してもとの処理に復帰する。
図41は、CPU41aがSd7のゲーム終了時処理において各ゲーム毎に実行する初期化4の制御内容を示すフローチャートである。
初期化4では、まず、割込を禁止した後(Sr1)、ROM41bの初期化テーブルを参照し、初期化4に対応して登録されている開始アドレスと初期化サイズを読み出す(Sr2)。読み出した開始アドレス(7F05(H))にポインタをセットする(Sr3)。次いで、未使用スタック領域のサイズ(M=スタックポインタ−7FD2(H))を計算し(Sr4)、初期化する領域のバイト数(CD(H)+M)をセットする(Sr5)。そして、Sr3でセットされた開始アドレスからSr5でセットされたバイト数にわたりデータをクリアするRAMクリア処理(図38参照)を実行し(Sr6)、RAMクリア処理が終了すると、Sr1のステップにおいて禁止していた割込を許可し(Sr7)、初期化4を終了してもとの処理に復帰する。
図42及び図43は、CPU41aが割込3の発生に応じて、すなわち0.56msの間隔で起動処理やゲーム処理に割り込んで実行するタイマ割込処理の制御内容を示すフローチャートである。
タイマ割込処理においては、まず、割込を禁止する(Ss1)。すなわち、タイマ割込処理の実行中に他の割込処理が実行されることを禁止する。そして、使用中のレジスタをスタック領域に退避する(Ss2)。
次いで、4種類のタイマ割込1〜4から当該タイマ割込処理において実行すべきタイマ割込を識別するための分岐用カウンタを1進める(Ss3)。Ss3のステップでは、分岐用カウンタ値が0〜2の場合に1が加算され、カウンタ値が3の場合に0に更新される。すなわち分岐用カウンタ値は、タイマ割込処理が実行される毎に、0→1→2→3→0・・・の順番でループする。
次いで、分岐用カウンタ値を参照して2または3か、すなわちタイマ割込3またはタイマ割込4かを判定し(Ss4)、タイマ割込3またはタイマ割込4ではない場合、すなわちタイマ割込1またはタイマ割込2の場合には、リールモータ32L、32C、32Rの始動時または定速回転中か否かを確認し、リールモータ32L、32C、32Rの始動時または定速回転中であれば、後述するSs8のモータステップ処理において変更した位相信号データや後述するSs23の最終停止処理において変更した位相信号データを出力するモータ位相信号出力処理を実行する(Ss5)。
次いで、分起用カウンタ値を参照して1か否か、すなわちタイマ割込2か否かを判定し(Ss6)、タイマ割込2ではない場合、すなわちタイマ割込1の場合には、リールモータ32L、32C、32Rの始動時のステップ時間間隔の制御を行うリール始動処理(Ss7)、リールモータ32L、32C、32Rの位相信号データの変更を行うモータステップ処理(Ss8)、リールモータ32L、32C、32Rの停止後、一定時間経過後に位相信号を1相励磁に変更するモータ位相信号スタンバイ処理(Ss9)を順次実行した後、Ss2においてスタック領域に退避したレジスタを復帰し(Ss20)、Ss1のステップにおいて禁止した割込を許可して(Ss21)、割込前の処理に戻る。
また、Ss6のステップにおいてタイマ割込2の場合には、各種表示器をダイナミック点灯させるLEDダイナミック表示処理(Ss10)、各種LED等の点灯信号等のデータを出力ポートへ出力する制御信号等出力処理(Ss11)、各種ソフトウェア乱数を更新する乱数更新処理(Ss12)、各種時間カウンタを更新する時間カウンタ更新処理(Ss13)、コマンドキューに格納されたコマンドを演出制御基板90に対して送信するコマンド送信処理(Ss14)、外部出力信号を更新する外部出力信号更新処理(Ss15)を順次実行した後、Ss2においてスタック領域に退避したレジスタを復帰し(Ss20)、Ss1のステップにおいて禁止した割込を許可して(Ss21)、割込前の処理に戻る。
また、Ss4のステップにおいてタイマ割込3またはタイマ割込4であれば、更に、分起用カウンタ値を参照して3か否か、すなわちタイマ割込4か否かを判定し(Ss16)、タイマ割込4でなければ、すなわちタイマ割込3であれば、入力ポートから各種スイッチ類の検出データを入力するポート入力処理(Ss17)、定速回転中のリール2L、2C、2Rの原点通過をチェックする原点通過時処理(Ss18)、各種スイッチ類の検出信号に基づいてこれら各種スイッチが検出条件を満たしているか否かを判定するスイッチ入力判定処理(Ss19)を順次実行した後、Ss2においてスタック領域に退避したレジスタを復帰し(Ss20)、Ss1のステップにおいて禁止した割込を許可して(Ss21)、割込前の処理に戻る。
また、Ss17のステップにおいてタイマ割込4であれば、有効なストップスイッチ8L、8C、8Rの検出が判定されたときに、停止位置を決定し、何ステップ後に停止すれば良いかを算出する停止スイッチ処理(Ss22)、停止スイッチ処理で算出された停止までのステップ数をカウントして、停止する時期になったら2相励磁によるブレーキを開始する停止処理(Ss23)、停止処理においてブレーキを開始してから一定時間後に3相励磁とする最終停止処理(Ss24)を順次実行した後、Ss2においてスタック領域に退避したレジスタを復帰し(Ss20)、Ss1のステップにおいて禁止した割込を許可して(Ss21)、割込前の処理に戻る。
図44は、CPU41aが起動処理及びゲーム制御処理において遊技の進行に応じてコマンドを生成し、コマンドキューに格納する際に実行するコマンド格納処理の制御内容を示すフローチャートである。
尚、CPU41aが送信するコマンドは、2バイトで構成され、1バイト目はMODE(コマンドの分類)を表し、2バイト目はEXT(コマンドの内容)を表す。また、本実施例で示すコマンドの形態は一例であって他のデータ形態を用いても良い。また、本実施例では、コマンドを2バイトの信号で構成しているが、これらコマンドを1バイトの信号または3バイト以上の信号で構成しても良い。
コマンド格納処理では、まず、送信すべきコマンドを構成するMODEとEXTを生成する(St1)。そして、生成したコマンドを格納ポインタが示す領域番号の領域、すなわちコマンドキューの空き領域に格納した後(St2)、格納ポインタが示す領域番号に1を加算する(St3)。尚、領域番号は0〜15の範囲の数値なので、格納ポインタが示す通し番号が15の場合に1を加算して16となったときには0に更新する。
次いで、未送信フラグがセットされているか否かを確認し(St4)、未送信フラグがセットされていなければ未送信フラグをセットする(St5)。そして、格納ポインタが示す領域番号が送信ポインタが示す領域番号と一致したか否か、すなわち未送信のコマンドでコマンドキューの全ての領域が満タンとなったか否かを確認し、一致している場合には、コマンドキューに格納されている未送信のコマンドが送信されて格納ポインタが示す領域番号と送信ポインタが示す領域番号とが一致しなくなるまで待機し、格納ポインタが示す領域番号と送信ポインタが示す領域番号とが一致しなくなった時点、すなわちコマンドキューに空きができた時点でコマンド格納処理を終了する(St6)。
図45は、CPU41aが前述したタイマ割込処理のタイマ割込2内において実行するコマンド送信処理の制御内容を示すフローチャートである。
コマンド送信処理では、まず、コマンドの送信遅延時間を設定するための遅延カウンタが0より大きいか否か、すなわちコマンドキューに格納されたコマンドの送信待ちの状態であるか否かを判定する(Su1)。
Su1において送信待ちの状態でない場合には、コマンドキューに未送信のコマンドが格納されている旨を示す前述の未送信フラグがセットされているか否かを判定する(Su2)。Su2において未送信フラグがセットされていない場合には、送信すべきコマンドが格納されていないので、コマンド送信処理を終了する。
また、Su2において未送信フラグがセットされている場合、すなわちコマンドキューに未送信のコマンドが格納されている場合には、乱数カウンタから0〜15の範囲でランダムに発生する乱数値を取得し(Su3)、取得した乱数値に2を加算して2〜17の値に補正し、遅延カウンタに設定する(Su4)。
次いで、遅延カウンタ値を1減算し(Su5)、遅延カウンタ値が0より大きいか否か、すなわちコマンドキューの送信ポインタ値が示す領域に格納されたコマンドの送信遅延時間が経過したか否か、を判定し(Su6)、遅延カウンタ値が0より大きい場合、すなわち送信遅延時間が経過していない場合には、コマンド送信処理を終了する。
また、Su6のステップにおいて遅延カウンタ値が0の場合、すなわち送信遅延時間が経過した場合には、コマンドキューの送信ポインタ値が示す領域に格納されたコマンドを演出制御基板90に対して送信する(Su7〜Su10)。詳しくは、まず、コマンドキューの送信ポインタ値が示す領域に格納されたコマンドを構成するMODEを出力し(Su7)、コマンドを出力した旨をサブ制御部91に通知するためのストローブ信号を所定時間(本実施例では、10μs)出力する(Su8)。そして、送信ポインタ値が示す領域に格納されたコマンドを構成するEXTを出力し(Su9)、再度ストローブ信号を所定時間出力する(Su10)。
次いで、送信ポインタが示す領域番号に1を加算する(Su11)。尚、領域番号は0〜15の範囲の数値なので、送信ポインタが示す領域番号が15の場合に1を加算して16となったときには0に更新する。
次いで、送信ポインタが示す領域番号が格納ポインタが示す通し番号と一致したか否か、すなわちコマンドキューに送信すべきコマンドが格納されているか否かを確認し(Su12)、一致している場合には、未送信フラグをクリアしてコマンド送信処理を終了する(Su13)。
また、Su1において遅延カウンタ値が0より大きい、すなわち送信待ちの状態であると判定した場合には、Su5に移行し、送信遅延時間が経過した場合にはコマンドキューの送信ポインタ値が示す領域に格納されたコマンドを送信するとともに、未送信のコマンドが空になった場合には未送信フラグをクリアする等の処理を行い(Su5〜Su13)、コマンド送信処理を終了する。
図46は、CPU41aが割込2の発生に応じて、すなわち電断検出回路48からの電圧低下信号が入力されたときに起動処理やゲーム処理に割り込んで実行する電断割込処理の制御内容を示すフローチャートである。
電断割込処理においては、まず、割込を禁止する(Sv1)。すなわち電断割込処理の開始にともなってその他の割込処理が実行されることを禁止する。次いで、使用している可能性がある全てのレジスタをスタック領域に退避する(Sv2)。尚、前述したIレジスタ及びIYレジスタの値は使用されているが、起動時の初期化に伴って常に同一の固定値が設定されるため、ここでは保存されない。
次いで、入力ポートから電圧低下信号の検出データを取得し、電圧低下信号が入力されているか否かを判定する(Sv3)。この際、電圧低下信号が入力されていなければ、Sv2においてスタック領域に退避したレジスタを復帰し(Sv4)、Sv1のステップにおいて禁止した割込を許可して(Sv5)、割込前の処理に戻る。
また、Sv3のステップにおいて電圧低下信号が入力されていれば、破壊診断用データ(本実施例では、5A(H))をセットして(Sv6)、全ての出力ポートを初期化する(Sv7)。次いでRAM41cの全ての格納領域(未使用領域及び未使用スタック領域を含む)の排他的論理和が0になるようにRAMパリティ調整用データを計算してセットし(Sv8)、RAM41cへのアクセスを禁止する(Sv9)。
そして、電圧低下信号が入力されているか否かの判定(Sv10、尚、Sv10は、Sv3と同様の処理である)を除いて、何らの処理も行わないループ処理に入る。すなわち、そのまま電圧が低下すると内部的に動作停止状態になる。よって、電断時に確実にCPU41aは動作停止する。また、このループ処理において、電圧が回復し、電圧低下信号が入力されない状態となると、前述した起動処理が実行され、RAMパリティが0となり、かつ破壊診断用データが正常であれば、元の処理に復帰することとなる。
尚、本実施例では、RAM41cへのアクセスを禁止した後、電圧低下信号の出力状況を監視して、電圧低下信号が入力されなくなった場合に電圧の回復を判定し、起動処理へ移行するようになっているが、ループ処理において何らの処理も行わず、ループ処理が行われている間に、電圧が回復し、リセット回路49からリセット信号が入力されたことに基づいて、起動処理へ移行するようにしても良い。
次に、演出制御基板90に搭載されたサブ制御部91のCPU91aが実行する各種制御内容を、図47〜49のフローチャートに基づいて以下に説明する。
CPU91aは、サブ制御部91にリセット回路95からリセット信号が入力されると、図47に示す起動処理(サブ)を行う。
起動処理(サブ)では、内蔵デバイスや周辺IC、割込モード、スタックポインタ等を初期化した後(Sw1)、RAM91cへのアクセスを許可する(Sw2)。そして、RAM91cの全ての格納領域のRAMパリティを計算し(Sw3)、RAMパリティが0か否かを判定する(Sw4)。RAM91cのデータが正常であれば、RAMパリティが0になるはずであり、Sw4のステップにおいてRAMパリティが0であれば、RAM91cに格納されているデータが正常であるので、各レジスタを復帰した後(Sw5)、割込を許可して(Sw7)、ループ処理に移行する。すなわち電断時の制御状態に復帰する。また、Sw4のステップにおいてRAMパリティが0でなければ、RAM91cに格納されているデータが正常ではないので、RAM91cを初期化した後(Sw6)、割込を許可して(Sw7)、ループ処理に移行する。
図48は、CPU91aが、遊技制御基板40から出力されたストローブ信号の検出に基づき他の処理に割り込んで実行するコマンド受信割込処理の制御内容を示すフローチャートである。尚、ストローブ信号は、コマンド送信時にサブ制御部91の割込端子に入力される信号である。
コマンド受信割込処理においては、まず、割込を禁止し(Sx1)、レジスタをRAM91cに退避する(Sx2)。そして、入力ポートからコマンド伝送ラインの検出データ、すなわち遊技制御基板40から出力されるMODEを取得するとともに(Sx3)、再度ストローブ信号が検出されるまで待機する(Sx4)。
次いで、再度ストローブ信号を検出すると、再び入力ポートからコマンド伝送ラインの検出データ、すなわち遊技制御基板40から出力されるEXTを取得する(Sx5)。そして、MODEとEXTから構成されるコマンドをRAM91cに設けられたバッファに格納する(Sx6)。そして、Sx2において退避したレジスタを復帰し(Sx7)、Sx1において禁止した割込を許可し(Sx8)、割込前の状態に戻る。
図49は、CPU91aが内部クロックのカウントに基づいて1.12msの間隔で実行するタイマ割込処理(サブ)の制御内容を示すフローチャートである。
タイマ割込処理(サブ)においては、まず、バッファにコマンドが格納されているか否かを判定する(Sy1)。バッファにコマンドが格納されていなければ、Sy6の処理に進み、バッファにコマンドが格納されていれば、バッファからコマンドを取得し(Sy2)、取得したコマンドが初期化コマンドであるか否かを判定する(Sy3)。そして取得したコマンドが初期化コマンドであれば、RAM91cを初期化した後(Sy4)、Sy14の処理に進む。
また、Sy3のステップにおいて、取得したコマンドが初期化コマンドでないと判定された場合には、取得したコマンドが入賞判定コマンドであるか否かを判定する(Sy5)。そして取得したコマンドが入賞判定コマンドでなければ、Sy8の処理に進み、入賞判定コマンドであれば、当該入賞判定コマンドがビッグボーナスの入賞を示すか否かを判定する(Sy6)。
Sy6のステップにおいて入賞判定コマンドがビッグボーナスの入賞を示すものでなければ、Sy14の処理に進み、入賞判定コマンドがビッグボーナスの入賞を示すものであれば、BB入賞時パターン(BB入賞時演出に対応する演出パターン)を演出パターンとしてRAM91cに設定し(Sy7)、Sy14の処理に進む。
Sy5のステップにおいて、取得したコマンドが入賞判定コマンドでないと判定された場合には、取得したコマンドが遊技状態コマンドであるか否かを判定する(Sy8)。そして取得したコマンドが遊技状態コマンドでなければ、Sy12の処理に進み、遊技状態コマンドであれば、当該遊技状態コマンドが示す遊技状態をRAM91cに設定するとともに(Sy9)、設定された遊技状態に基づいて当該ゲームがビッグボーナスの終了ゲームであったか否かを判定する(Sy10)。
Sy10のステップにおいて当該ゲームがビッグボーナスの終了ゲームでなかった場合には、Sy12の処理に進み、ビッグボーナスの終了ゲームであった場合には、エンディングパターン(エンディング演出に対応する演出パターン)を演出パターンとしてRAM91cに設定し(Sy11)、Sy14の処理に進む。
Sy12のステップでは、取得したコマンドが内部当選コマンドであるか否かを判定し、取得したコマンドが内部当選コマンドでなければ、Sy14の処理に進み、内部当選コマンドであれば、ROM91bに格納されている演出テーブルを参照し、内部当選コマンドが示す内部抽選の結果に応じた選択率にて演出パターンを選択し、選択した演出パターンを当該ゲームの演出パターンとしてRAM91cに設定する演出パターン選択処理を実行し(Sy13)、Sy14の処理に進む。
Sy14のステップでは、ROM91bに格納されている制御パターンテーブルを参照し、RAM91cに設定されている演出パターン及び取得したコマンドに対応して登録されている制御パターンを読み出してRAM91cに設定する制御パターン設定処理を行い、Sy15の処理に進む。
Sy15のステップでは、Sy14のステップにおいて設定された制御パターンに従って、液晶表示器51、演出効果LED52、スピーカ53、54、リールLED等の各種演出装置の制御を行う演出制御処理を実行し、Sy16のステップに進む。
Sy16のステップでは、RAM91cの乱数カウンタ等の各種カウンタの値を更新する処理を行った後、Sy17の処理に進み、Sy17のステップでは、起動時にRAM91cにバックアップされているデータの内容が正常であるか否かを確認できるように、RAM91cの全ての格納領域の排他的論理和が0になるようにRAMパリティ調整用データを計算してセットし、タイマ割込処理(サブ)を終了する。すなわちCPU91aは、メイン制御部41のCPU41aのように電断検出時にRAMパリティ調整用データをセットするのではなく、定期的に実行されるタイマ割込処理(サブ)毎に、RAMパリティ調整用データをセットし、いつ電断しても、復旧時にRAM91cにバックアップされているデータの内容が正常であるか否かを判定できるようになっている。
次に停電時におけるメイン制御部41のCPU41a及びサブ制御部91のCPU91aの動作状況を図50のタイミングチャートに基づいて説明する。
まず、電断検出回路48は、+25Vの直流電圧(以下電源監視用電圧と称す)が+18V以下となったとき(ta1)に電圧低下信号をメイン制御部41に対して出力する。電圧低下信号が入力された際にCPU41aが設定変更処理やゲーム処理の実行中であればゲーム処理に割り込んで電断割込処理が実行される。また、タイマ割込処理の要求(割込3)と同時に電圧低下信号が入力された場合にはタイマ割込処理よりも電断割込処理を優先して電断割込処理が実行される。また、CPU41aがタイマ割込処理の実行中に電圧低下信号が入力された場合には実行中のタイマ割込処理が終了した時点で電断割込処理が実行される(ta2)。尚、本実施例では、タイマ割込処理に要する最大時間と電断割込処理に要する最大時間の合計よりも、電源監視用電圧が電圧低下信号が出力される+18VとなってからCPU41aを駆動させることが可能な電圧(+5V)(ta3)まで降下する時間の方が長いので、停電発生時にCPU41aがタイマ割込処理の実行中であっても電断割込処理を確実に行える時間が担保されるようになっている。
また、サブ制御部91の電源電圧(+5V(VCC))の元となる+12V(VCC)は、停電時においても電源基板100に搭載されたコンデンサ309によって電圧の降下が遅延されるようになっており、停電発生時にタイマ割込処理において送信されたコマンドをバッファし、かつバッファしたコマンドをその後のタイマ割込処理(サブ)において取得するのに十分な時間が経過するまで(ta4)、CPU91aを駆動させることが可能な電圧(+7V)が維持されるので、停電発生時に遊技制御基板40からコマンドをバッファした場合でも、当該コマンドを確実に取得し、RAM91cにバックアップされるデータとして反映させる時間が担保されるようになっている。尚、本実施例では、電源監視用電圧が+18V以下となった時点から20ms以上の時間が経過するまでCPU91aを駆動させることが可能な電圧が維持されるようになっているが、少なくともタイマ割込2の実行間隔(CPU91aがコマンドを確実に取得するのに十分な時間)の時間以上にわたり、CPU91aを駆動させることが可能な電圧を維持できれば良い。
以上説明したように、本実施例のスロットマシン1では、メイン制御部41のRAM41cにおける未使用領域が1ゲーム毎に初期化されるので、RAM41cの未使用領域を利用して不正プログラムを格納させても、当該不正プログラムが常駐してしまうことを防止できる。
また、本実施例では、RAM41cにおける未使用領域に加えてスタック領域における未使用スタック領域も1ゲーム毎に初期化されるので、RAM41cにおいてその時点で使用されていない全ての領域が1ゲーム毎に初期化されることとなり、例え、RAM41cの未使用領域を利用せずに未使用スタック領域を利用して不正プログラムを格納させようとしても、当該不正プログラムが常駐してしまう余地を無くすことができるので、不正プログラムが常駐してしまうことを一層確実に防止できるとともに、例えば、未使用スタック領域に不正なデータ(不正プログラムが指定するアドレス等)を加え、データの復帰時にマイクロコンピュータを誤作動させることでレジスタを不正なものに書き換えてしまうことにより、本来のプログラムとは異なる動作を行わせてしまうような不正も防止できる。更に、未使用スタック領域に不正なデータが格納されることによって、本来であれば退避したデータを格納できるはずの領域が圧迫され、スタック領域がオーバーフローしてしまい、メイン制御部41を構成するマイクロコンピュータが暴走してしまう等の不具合も防止できる。
尚、本実施例では、ゲーム終了時にRAM41cの未使用領域及び未使用スタック領域を初期化する初期化4を毎ゲーム実行することで、RAM41cの未使用領域や未使用スタック領域を1ゲーム毎に初期化しているが、少なくとも1ゲーム毎に1回以上RAM41cの未使用領域及び/または未使用スタック領域が初期化されるものであれば、RAM41cの未使用領域及び/または未使用スタック領域の初期化を行うタイミングは、1ゲーム中のどのタイミングであっても良く、例えば、ゲーム開始時や1ゲーム毎に必ず実行される処理の実行時にRAM41cの未使用領域及び/または未使用スタック領域の初期化を行うものであっても良い。
また、設定開始前(設定変更モードへの移行前)、ビッグボーナス終了時、起動時にRAM41cのデータが破壊されていないとき、1ゲーム終了時の4つからなる初期化条件が成立した際に、各初期化条件に応じて初期化される領域の異なる4種類の初期化1〜4を行うとともに、これら4種類の初期化条件のうちどの条件が成立した場合でも、必ずRAM41cにおける未使用領域及びスタック領域における未使用スタック領域が初期化されるので、不正プログラムが常駐してしまうことを一層確実に防止できる。
特に、起動時においてRAM41cのデータが破壊されていないときに、必ずRAM41cにおける未使用領域及びスタック領域における未使用スタック領域が初期化されるので、RAM41cにの未使用領域や未使用スタック領域を利用して不正プログラムや不正データが格納された場合にも、当該不正プログラムや不正データが格納されたままメイン制御部41の制御状態がRAM41cのデータに基づいて復帰してしまうことを防止できる。
また、メイン制御部41のROM41bには、初期化1〜4に対応してそれぞれ初期化する領域の開始アドレスと初期化する領域のサイズを示す初期化サイズとが登録されており、CPU41aがRAM41cの初期化を行う際には、初期化テーブルを参照し、初期化条件に応じて初期化1〜4のいずれかに対応する開始アドレスと初期化サイズを取得し、開始アドレスにポインタを設定し、初期化サイズを設定する(初期化サイズが未使用スタック領域のサイズを含むものであれば、未使用スタック領域のサイズ(スタックポインタ−7FD2(H))を計算し、初期化サイズを設定する)。そして、ポインタが設定された初期化アドレスから1バイトづつ該当するアドレスの領域を0クリアし、1バイトクリアする毎に初期化サイズを1減算するとともに、ポインタを1進める処理を、初期化サイズが0になるまで実行する。すなわちCPU41aがRAM41cを初期化する際には、初期化条件に応じた領域毎に初期化するのではなく、指定したアドレスから指定したサイズ分の領域を初期化するようになっている。
このため、ROM41bの初期化テーブルに、初期化条件の種類に対応する開始アドレスとその際初期化される領域のサイズのみを設定しておくことで、初期化条件の種類に対応する初期化終了アドレスを個々に設定しておくことなく、初期化条件の種類に対応する領域を初期化することができるとともに、複数種類の初期化を共通の処理(RAM初期化処理)を用いて行えるので、複数種類の初期化を行うためのプログラム容量を削減できる。更に、RAM初期化処理においては、初期化サイズが0か否かを判定するのみで処理の終了を判定するので、現在初期化したバイトのアドレスと終了アドレスとの比較によって処理の終了を判定する場合に比較して、処理負荷を大幅に軽減できる。
また、初期化1〜4の実行中においては常に割込が禁止されるようになっており、RAM41cに記憶されているデータを初期化している最中に電断検出回路48から電圧低下信号が入力されても、初期化が終了するまでは電断割込処理が実行されないので、例えば、初期化が完全に終了する前の段階で電断割込処理が行われることにより、初期化されるべきデータのうち初期化されたデータと初期化されていないデータとが混在してしまい、復旧時に電断前の制御状態へ正常に復帰させることができなくなってしまう等の不具合を防止できる。
また、電断割込処理において、いずれかのビットが1となる破壊診断用データをRAM41cの所定アドレスに格納した後、RAM41cの未使用領域及び未使用スタック領域を含む全てのデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、格納するとともに、復旧時においてRAM41cにおける未使用領域及び未使用スタック領域を含む全ての領域に格納されているデータに基づいて計算したRAMパリティが0か否か、及び破壊診断用データが格納されているか否か、を判定し、RAMパリティが0でなかった場合、またはRAMパリティが0であっても破壊診断用データが正常に格納されていない場合には、RAM異常エラーによるエラー状態となり、設定キースイッチ37をONの状態で電源投入し、RAM41cの使用中スタック領域を除く全ての領域を初期化する初期化1が行われるまで、ゲームの進行が不可能となるので、起動時にRAM41cの未使用領域及び/または未使用スタック領域に不正プログラムが格納された場合でも、当該不正プログラムを発見して初期化することができる。
また、本実施例では、RAM41cに記憶されているデータに異常が生じた場合には、RAM異常エラーによるエラー状態に制御され、ゲームの進行が不能化されるとともに、一度RAM異常エラーによるエラー状態に制御されると、設定変更モードに移行し、設定変更操作に基づいて設定値を新たに選択・設定しなければ、ゲームの進行が不能化された状態が解除されない。すなわち、RAM41cに記憶されているデータに異常が生じても、スロットマシンにより自動的に設定された設定値ではなく、設定変更操作に基づいて選択・設定された設定値(一般的に、設定変更操作は遊技店の従業員により行われるので、遊技店側が選択した設定値である)に基づいてゲームが行われることが担保されるので、ゲームの公平性を図ることができる。
また、本実施例では、内部抽選処理において入賞の発生を許容するか否かを決定する際に、RAM41cの設定値ワークに格納されている設定値が適正な値(1〜6の範囲の値)でなければ、デフォルトの設定値(例えば設定1)に基づく確率で入賞の発生を許容するか否かを決定するのではなく、この場合にもRAM異常エラーによるエラー状態に制御され、ゲームの進行が不能化され、設定変更モードに移行し、設定変更操作に基づいて設定値を新たに選択・設定しなければ、ゲームの進行が不能化された状態が解除されない。すなわ内部抽選処理において入賞の発生を許容するか否かの決定を適正に行うことができない場合にも、設定変更操作に基づいて選択・設定された設定値に基づいてゲームが行われることが担保されるので、ゲームの公平性を図ることができる。
また、RAM41cに記憶されたデータに異常が生じるのは、停電時やCPU41aが暴走する等、制御に不具合が生じて制御を続行できないときがほとんどである。このため本実施例では、これらの状態から復旧してCPU41aが起動するときにおいてのみデータが正常か否かの判定を行うようになっているので、RAM41cに記憶されたデータが正常か否かの判定をデータに異常が生じている可能性が高い状況においてのみ行うことができる。すなわちデータに異常が生じている可能性の低い状況では、当該判定を行わずに済み、CPU41aの負荷を軽減させることができる。
また、本実施例では、電断割込処理においてRAM41cの全てのデータに基づくRAMパリティ、すなわち排他的論理和演算した結果が0となるようにRAMパリティ調整用データを計算し、格納するとともに、復旧時においてRAM41cにおける全ての領域に格納されているデータに基づいて計算したRAMパリティが0か否かを判定することで、RAM41cのデータが正常か否かを判定しているので、当該判定を正確にかつ簡便に行うことができる。
また、本実施例では、、電断割込処理において、いずれかのビットが1となる破壊診断用データ(本実施例では、5A(H))、すなわち0以外の特定のデータをRAM41cの所定のアドレスに格納した後、この破壊診断用データを含むRAM41cの全てのデータに基づくRAMパリティが0となる調整用データを格納し、起動時においてRAMパリティが0か否かの判定に加えて、破壊診断用データが正常に格納されているか否かの判定を行い、RAMパリティが0であり、かつ破壊診断用データも正常に格納されていることを条件に、RAM41cのデータが正常であると判定し、RAM41cに格納されているデータに基づいて制御状態を復帰させるようになっている。これにより、全ての領域に00(H)が格納されている場合、すなわち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)に設定し、この状態でリセット操作がなされることで、ゲームを再開できるようにしても良い。
また、本実施例では、内部抽選処理において入賞の発生を許容するか否かを決定する際に、RAM41cの設定値ワークに格納されている設定値が適正な値(1〜6の範囲の値)でなければ、この場合にもRAM異常エラー状態に制御されるようになっているが、RAM41cの設定値ワークに格納されている設定値が適正な値(1〜6の範囲の値)でない場合に、設定値の初期値(例えば、設定値1)に基づく確率で入賞の発生を許容するか否かを決定するようにしても良い。
また、本実施例では、CPU41aが演出制御基板90に対して遊技の進行に応じたコマンドを送信し、演出制御基板90に搭載されたサブ制御部91は、遊技制御基板40から送信されたコマンドに基づいて演出の制御を行うようになっており、CPU41aは、コマンドを送信するのみで演出の制御を行う必要がないので、CPU41aの処理負荷を軽減できるうえに、演出を多彩なものにできる。
また、遊技制御基板40から演出制御基板90にコマンドが送信されるコマンド伝送ラインが、遊技制御基板40と演出制御基板90との間で演出中継基板80を介して接続されており、遊技制御基板40に演出制御基板90が直接接続される構成ではないので、コマンド伝送ラインからCPU41aに対して外部から不正な信号が入力され、遊技の制御に影響を与えられてしまうことを防止できる。
また、CPU41aは、コマンドを送信する際に、遅延カウンタの値をランダムに設定し、遅延カウンタ値が0となったときに当該コマンドを送信するようになっており、コマンドの送信タイミングが所定時間の範囲(2.24〜35.84ms)でランダムに変化するため、演出制御基板90側で遊技制御基板40から送信されたコマンドの受信タイミングに基づいて目押しの補助となるような演出が行われてしまうことを防止できる
尚、本実施例では、2.24〜35.84msの範囲でコマンドの送信タイミングが遅延されるようになっているが、少なくとも、その最大遅延時間がリール2L、2C、2Rの図柄が1図柄以上移動する時間を超えるものであれば良い。
また、複数のコマンドが連続して送信される場合でも、これらコマンドは、生成された順番でRAM41cに設けられたコマンドキューに格納され、各々のコマンドがその生成順、すなわち本来コマンドが送信されるべき順番にて送信されるため、演出制御基板90側では、CPU41aの制御状態を正確な順番で把握して演出を行うことが可能であり、演出の順番に食い違いが生じることにより遊技者に違和感を与えてしまうことを防止できる。
また、コマンドの送信を遅延させている状態、すなわちコマンドの送信待ちの状態で停電し、電断割込処理が行われた場合には、コマンドキューに格納されているコマンド、送信ポインタ、格納ポインタ、遅延カウンタ値の全てがRAM41cにバックアップされるとともに、復旧時においてはこれらRAM41cにバックアップされているコマンドキューに格納されているコマンド、送信ポインタ、格納ポインタ、遅延カウンタ値の状態でコマンドの送信制御が再開されるようになっており、コマンドの送信の送信待ちの状態で停電しても、復旧時には停電時のままの状態からコマンドの送信制御を再開できるので、CPU41aの制御を簡素化できる。
尚、本実施例では、コマンドの送信コマンドの送信の送信待ちの状態で停電し、停電が復旧した際には、停電時のままの状態からコマンドの送信制御を再開するようになっているが、コマンドの送信コマンドの送信の送信待ちの状態で停電した際に、復旧後、遅延カウンタ値を新たに再設定し、送信待ちのコマンドを再設定された遅延カウンタ値に基づく遅延時間が経過したときに送信するようにしても良い。すなわち復旧時において送信待ちのコマンドが残っている場合には、復旧時において新たに設定した遅延時間が経過したときに当該コマンドを送信するようにしても良く、このようにすることで、復旧時にも確実にコマンドの送信タイミングを変化させることができる。
また、本実施例では、トリガー端子CLK/TRGに電圧低下信号が入力されることで、CPU41aが実行中の処理に割り込んで電断割込処理を実行するようになっているが、電断割込処理では、破壊診断用データを設定する処理やRAMパリティ調整用データを計算して設定する処理等、復旧時にRAM41cのデータが正常であるかを判定可能とするための処理や出力ポートの初期化等を行う前に、信号入力端子DATAに電圧低下信号が入力されているか否かを判定を行い、信号入力端子DATAにも電圧低下信号が入力されていれば、復旧時にRAM41cのデータが正常であるかを判定可能とするための処理や出力ポートの初期化等を行うのに対して、信号入力端子DATAに電圧低下信号が入力されていなければ、もとの処理に復帰するようになっている。
すなわち、メイン制御部41には、電圧低下信号が2系統の入力部に入力され、CPU41aは、一方の入力部に電圧低下信号が入力されて電断割込処理を実行しても、復旧時にRAM41cのデータが正常であるかを判定可能とするための処理や出力ポートの初期化等が実行される前に再度他方の入力部に電圧低下信号が入力されているか否かを判定し、他方の入力部にも電圧低下信号が入力されていて初めてこれらの処理が実行されるようになっており、電断を誤って検出した際に、誤って復旧時にRAM41cのデータが正常であるかを判定可能とするための処理や出力ポートの初期化等の処理が行われてしまうことが防止できるので、電断を誤って検出することに伴い、必要以上に長い間CPU41aの制御が中断されたり、必要以上に負荷がかかってしまうことを防止できる。
また、本実施例では、電断検出回路48が監視する電圧と、電源基板100、遊技制御基板40及び演出制御基板90に接続された電気部品を駆動させるための電源電圧と、が別個に設けられた電圧生成回路にて生成されるようになっており、これら電気部品の駆動状況により下降し易い電源電圧に比較して安定した電圧が電断検出回路48により監視されるので、一時的な電圧降下に伴って電圧低下信号が出力され、電断割込処理が行われてしまう等の誤動作を防止できる。
また、電断割込処理及びタイマ割込処理の実行中においては、他の割込が禁止されるようになっており、例えば、タイマ割込処理の実行中に電圧低下信号が入力された場合でも2重に割込が生じることがなく、CPU41aの処理負荷が増大してしまったりデータの整合性がとれなくなってしまうことを防止できる。特に、コマンドの送信中に電圧低下信号が入力されても、割込が生じて当該コマンドの送信が阻害されることがなく、CPU41aの駆動が停止する前に正常に送信を完了させることができる。
また、電断割込処理の割込タイミングとタイマ割込処理の割込タイミングとが同時となった場合、すなわち割込2と割込3が同時に発生した場合には、割込2を優先し、電断割込処理を実行するとともに、タイマ割込処理の実行中に割込2が発生した場合には、当該タイマ割込処理の終了を待って電断割込処理を実行するようになっており、多重割込を防止しつつも極力早い段階で電断割込処理が行われるので、CPU41aの駆動が停止する前に電断割込処理を確実に行うことができる。
また、CPU41aは、割込1〜4の4種類の割込を実行可能であり、このうち未使用に設定されている割込1、4が発生した場合には、もとの処理に即時復帰させる未使用割込処理を実行するようになっている。このため、未使用の割込1、4が発生したときでも、すぐに割込前の処理に復帰することとなるので、ノイズ等によって未使用の割込が発生してもCPU41aが暴走してしまうといった不具合を防止できる。
また、本実施例では、サブ制御部91のCPU91aは、タイマ割込処理が実行される毎に、RAMパリティ調整用データを計算して設定するようになっている。すなわち復旧時にRAM91cにバックアップされているデータの内容が正常であるか否かを判定可能とするための処理を、遊技制御基板40から送信されるコマンドに依存せずに定期的に行うようになっており、コマンドを遅延して送信する場合でもコマンドの送信が遅延されることによってCPU91aがRAMパリティ調整用データを計算して設定する前に停止してしまうようなことがないので、復旧時においてCPU91aがRAM91cにバックアップされているデータが正常であるか否かを正確に判定することができる。
また、本実施例では、CPU41aがコマンドを送信した後、最低でも4.48msの間、新たなコマンドの送信が禁止されるようになっており、サブ制御部91のCPU91aがコマンドを確実に受信し、かつ受信したコマンドをRAM91cにバックアップするための時間を担保できる。尚、本実施例では、新たなコマンドの送信が禁止される時間として4.48msを適用しているが、少なくともCPU91aがコマンドを受信し、かつ受信したコマンドをRAM91cにバックアップするのに十分な時間であれば、4.48msよりも短い時間(例えば、2.24ms)を適用しても良い。
また、本実施例では、サブ制御部91の電源電圧{+5V(VCC)}の元となる+12V(VCC)が、停電時においても電源基板100に搭載されたコンデンサ309によって電圧の降下が遅延され、少なくとも停電時には、タイマ割込処理において送信されたコマンドをCPU91aが確実に受信するのに十分な時間(本実施例では20ms)が経過するまで、サブ制御部91のCPU91aを駆動させることが可能な電圧(+7V)が維持されるようになっており、コマンドの送信中に停電した場合でも、CPU91aは、停電時に送信されたコマンドを駆動が停止する前に確実に受信することができるとともに、CPU91aが受信したコマンドのバックアップがなされる間隔(タイマ割込処理(サブ)の実行間隔)よりも長く、CPU91aを駆動させることが可能な電圧(+7V)が維持されるので受信したコマンドをRAM91cに確実にバックアップすることもできる。
また、本実施例のスロットマシン1では、ビッグボーナス入賞が発生したゲームにおいて、ゲームの終了が判定された時点でクレジットの精算の禁止は解除され、ゲーム終了後、BB入賞時演出の演出待ち時間が経過するまで賭数の設定が禁止されている期間であっても、クレジット(賭数の設定に用いられたメダルを含む)として記憶されているメダルを返却させることが可能となるので、可能な限り遊技者の意志を反映して、遊技者所有のものとして記憶されているクレジット分のメダルの返却を受けることができる。これにより、例えば、ビッグボーナス入賞が発生したゲームにおいて、ビッグボーナス入賞の発生に伴うビッグボーナスのゲームを始める前に、クレジットとして記憶されているメダルの一部を景品(例えば、清涼飲料水やたばこ等)に交換したいこともあり得るが、このような遊技者の意志を反映させてメダルの返却を受けることが可能となる。
また、ビッグボーナス入賞が発生した際に、賭数の設定が禁止されている期間にわたりビッグボーナス入賞の発生した旨を示すBB入賞時演出が実行されるので、ビッグボーナス入賞の発生に伴いビッグボーナスに移行する際の遊技者の興趣を効果的に高めることができる。
また、ビッグボーナスの終了条件が成立したゲームにおいて、ゲームの終了が判定された時点でクレジットの精算の禁止は解除され、ゲーム終了後、エンディング演出の演出待ち時間が経過するまで賭数の設定が禁止されている期間であっても、クレジット(賭数の設定に用いられたメダルを含む)として記憶されているメダルを返却させることが可能となるので、可能な限り遊技者の意志を反映して、遊技者所有のものとして記憶されているクレジット分のメダルの返却を受けることができる。これにより、特に、ビッグボーナスの終了後、すぐに遊技を終了したい遊技者の意志を反映させてメダルの返却を受けることが可能となる。
また、ビッグボーナスの終了条件が成立したゲームの終了時に、賭数の設定が禁止されている期間にわたりビッグボーナスが終了した旨を示すエンディング演出が実行されるので、ビッグボーナスの終了を分かりやすく報知することができる。
また、ビッグボーナスの終了条件が成立したゲームにおいて、打止状態に制御される場合でも、ゲームの終了が判定された時点でクレジットの精算の禁止は解除され、ゲームが終了し、店員によるリセット操作がなされて打止状態が解除されるまで賭数の設定が禁止されている期間であっても、クレジット(賭数の設定に用いられたメダルを含む)として記憶されているメダルを返却させることが可能となるので、可能な限り遊技者の意志を反映して、遊技者所有のものとして記憶されているクレジット分のメダルの返却を受けることができる。これにより、特に、ビッグボーナスの終了後、すぐに遊技を終了したい遊技者の意志を反映させてメダルの返却を受けることが可能となる。
また、本実施例のスロットマシン1では、入賞となる役の種類として、メダルの払い出しを伴う小役、次のゲームでの賭数にメダルを消費しないで済む再遊技役、遊技状態の移行を伴う特別役が定められている。特別役は、遊技状態の移行を伴うものであって、そのときの遊技状態に依存するので基本的な役とは言えない。スロットマシンの遊技性は、単にゲームを行うだけではなく、ゲームの結果により遊技者がメダルを獲得していくことにあるので、入賞によってメダルの払い出しを伴う小役が最も基本的な役であるということができる。ここで、小役の種類としては、JAC、チェリー、スイカ、ベルがあるが、レギュラーボーナスにおいて僅かな確率で当選するJACの他は、いずれの遊技状態においても入賞となる役の種類として定められている。このように基本となる小役を、いずれの遊技状態に制御されているときであっても入賞となる役として定めることで、遊技性が遊技者にとって分かり易いものとなる。
通常遊技状態でビッグボーナス入賞すると、レギュラーボーナスへの移行を伴うJACINに比較的高い確率で当選する(取りこぼしがないので、入賞する)ビッグボーナスに遊技状態が移行される。ビッグボーナスは、消化ゲーム数に関わらず、当該ビッグボーナス中において遊技者に払い出したメダル数の総数が465枚に達すると終了するものとなっている。ここでビッグボーナス(小役ゲーム及びレギュラーボーナスを含む)中のゲームでは、リプレイが内部抽選の対象役として定められていないので、リプレイ入賞することがない。リプレイは、遊技者の手持ちのメダルを減らさないものであるがメダルの払い出しを伴わないので、ビッグボーナスの終了条件となる払い出しメダル数に影響しない。つまり、ビッグボーナス中にリプレイ入賞させても不必要にビッグボーナスのゲーム数を増やすだけのものとなってしまうので、リプレイをビッグボーナスにおける内部抽選の対象役として定めないことで、ビッグボーナスの遊技状態を無駄に長引かせることがなく、遊技を効率良く進めることができるようになる。
また、レギュラーボーナスの遊技状態では、小役(特にベル)に高い確率で当選し、非常に多くのメダルを獲得できるようになるので、これに対する遊技者の期待感は高い。このレギュラーボーナスには、小役ゲームでJACIN入賞したときに移行されるだけではなく、通常遊技状態でレギュラーボーナス入賞したときにも移行される。このため、通常遊技状態にあるときであっても、レギュラーボーナスに対する期待感を遊技者に与えることができるので、遊技の興趣を向上させることができる。更に、レギュラーボーナスにおいては、通常遊技状態や小役ゲームにおいても定められているチェリー、スイカ、ベルに加えて、JACも小役として定められている。これにより、レギュラーボーナスにおける遊技者の期待感を更に高めさせて、遊技の興趣を向上させることができる。
また、ビッグボーナスにおいて小役ゲームからレギュラーボーナスに遊技状態を移行させるためのJACINの表示態様は、「スイカ−JAC−JAC」の組み合わせにより構成され、他の役の表示態様として使用されていないものである。レギュラーボーナスにおいてチェリー、スイカ、ベルの小役に加えて入賞と判定されるJACの表示態様も、「ベル−JAC−JAC」の組み合わせにより構成され、他の役の表示態様として使用されていないものである。このため、リール2L、2C、2Rの表示結果として導出された表示態様と入賞となる役との関係が明確になり、遊技者にとっては遊技性が分かりやすいものとなる。
また、リール2L、2C、2Rの回転は、ストップスイッチ8L、8C、8Rの操作が検出されてから190ミリ秒の最大停止遅延時間の範囲で停止されることとなるが、この間に4図柄を引き込むことができるので、停止すべき図柄は5図柄の範囲から選ぶことができる。ここで、「スイカ」、「ベル」及び「JAC」の図柄は、リール2L、2C、2Rのいずれについても必ず5コマ以内の間隔で配置されているので、これらの図柄によって構成されるスイカ、ベル、リプレイ、JAC、及びJACINは、当選しているときには取りこぼしが生じない。特にレギュラーボーナス中のベルは、おおよそ1/1.03という非常に高い確率で当選することとなるが、これの取りこぼしが生じ得ないので、レギュラーボーナスでは遊技者が実質的には目押しをしなくても済むようになり、簡単に遊技を進められるようになる。
上記したように遊技状態毎に内部抽選の対象となる役の種類は、遊技状態別当選役テーブルに登録されているが、各役の当選確率を定める判定値数は、役別テーブルから参照されるアドレスに格納されている。役別テーブルには、各役の入賞が発生したときのメダル数も登録されている。
役別テーブルにおいて、メダル数は賭数に応じて登録されており、チェリー、スイカ、ベルの入賞が発生したときには、賭数に応じてメダル数が設定される(もっとも、チェリー、スイカでは、結果的に同じメダル数が設定される)。ここで、レギュラーボーナスにおける賭数は1で固定されているが、レギュラーボーナス以外の遊技状態における賭数は3で固定されている。これにより、賭数に応じて払出数を取得するだけでも、遊技状態に応じて適切な数のメダルを払い出すことができる。また、メダル数を設定する際に遊技状態を判断する必要がないので、入賞判定処理における処理ステップが簡素化される。しかも、レギュラーボーナスに対応した賭数1の方が、賭数3のときよりもベルの入賞時におけるメダル数が多いので、レギュラーボーナスにおける遊技者の期待感を更に高めさせて、遊技の興趣を向上させることができる。
役別テーブルにおいて、いずれの遊技状態においても入賞となる役として定められたチェリー、スイカ、及びベルについては、賭数毎に判定値数の格納先アドレスが登録されており、賭数に従って判定値数が取得されることとなる(もっとも、チェリー、スイカでは、結果的に同じ判定値数が取得される)。ここで、レギュラーボーナスにおける賭数は1で固定されているが、レギュラーボーナス以外の遊技状態における賭数は3で固定されている。これにより、賭数に応じて判定値数を取得するだけでも、遊技状態に応じた当選確率でチェリー、スイカ、及びベルの内部抽選を行うことができる。また、判定値数を取得する際に遊技状態を判断する必要がないので、内部抽選における処理ステップが簡素化される。しかも、レギュラーボーナスに対応した賭数1の方が、賭数3のときよりもベルの当選確率が高いので、レギュラーボーナスにおける遊技者の期待感を更に高めさせて、遊技の興趣を向上させることができる。
また、役別テーブルに登録されている各役の判定値数の格納先のアドレスは、設定値に応じて異なっている場合もあるが、設定値に関わらずに当選確率を同一とするものとした役については、設定値に関わらずに判定値数が共通化して格納されるものとなる。このように判定値数を共通化して格納することで、そのために必要な記憶容量が少なくて済むようになる。もっとも、役別テーブルにおいて、内部抽選の対象役と設定されている賭数とが同じで設定値に応じて参照される判定値数を格納したアドレスが異なっていても、異なるアドレスにおいて格納されている判定値数が同じである場合がある。
一般に開発段階においては、少なくとも一部の役について設定値に応じて判定値数を調整しながら(すなわち、内部抽選の当選確率を調整しながら)、シミュレーションを行っていくものとしている。当初の判定値数として、設定値に応じて異なる判定値数を登録しておいたが、シミュレーションにより調整を行った結果として、設定値が異なる場合の判定値数が同一になる場合もある。当初の判定値数として、設定値に応じて同一の判定値数を登録しておいたが、シミュレーションの結果により当初から登録してあった判定値数がそのまま用いられる場合もある(シミュレーションの結果により当初とは異なる判定値数すなわち、設定値に応じて異なる判定値数となる場合もある)。そして、それぞれの場合におけるシミュレーションで適切な結果の得られた判定値数を、量産用の機種に設定する判定値数として選ぶものとしている。
ここで、シミュレーションにより調整された判定値数が結果として設定値に関わらずに同じになったとしても、その開発段階でのアドレス割り当てと同じアドレスの割り当てで判定値数をROM41bに記憶して、そのまま量産用の機種とすることができる。このため、量産用の機種において判定値数の格納方法を開発用の機種から変更する必要がなく、最初の設計段階から量産用の機種に移行するまでの開発を容易に行うことができるようになる。
また、役別テーブルに登録されている各役の判定値数の格納先のアドレスは、賭数(1または3)に応じて異なっているが、例えば、チェリーやスイカのように異なるアドレスにおいて格納されている判定値数が同じである場合がある。
開発用の機種においては、賭数に応じても判定値データを微妙に調整しながらシミュレーションを行っていくのが通常である(当初の判定値数を異なるものとしておく場合と、同じものとしておく場合とがあり得る)。ここで、シミュレーションにより調整された判定値数が結果として賭数に関わらずに同じになったとしても、その開発段階でのアドレス割り当てと同じアドレスの割り当てで判定値数をROM41bに記憶して、そのまま量産用の機種とすることができる。このため、量産用の機種において判定値数の格納方法を開発用の機種から変更する必要がなく、最初の設計段階から量産用の機種に移行するまでの開発を容易に行うことができるようになる。
また、内部抽選は、取得した内部抽選用の乱数に、役別テーブルから参照された各役の判定値数を加算していき、その加算の結果がオーバーフローしたか否かによって、それぞれの役の当選の有無を判定するものとしている。このため、各役の判定値数をそのまま用いて内部抽選を行うことができる。尚、実際の当選判定を行う前に当選判定用テーブルを生成する場合にはループ処理が2回必要になるが、この実施の形態によれば、抽選処理におけるループ処理が1回で済むようになり、抽選処理全体での処理効率が高いものとなる。
また、通常遊技状態における内部抽選では、同一の内部抽選用の乱数に基づいて小役及び再遊技役の抽選と特別役の抽選とを別個に行うようになっている。そして、特別役の成立後、すなわち特別役の当選フラグが持ち越されている状態においては、小役及び再遊技役の抽選のみが行われることとなる。このため、複数の特別役が重複して当選してしまうことがない。更に、特別役の成立前後において、小役及び再遊技役の抽選を共通化できるので、通常遊技状態における内部抽選を簡素化することができるとともに、特別役の成立後、持ち越されている状態においては、小役及び再遊技役の抽選のみを行えば良いので、特別役の当選が持ち越されている状態での内部抽選の処理効率も高くなる。
尚、本実施例では、同一の内部抽選用の乱数に基づいて小役及び再遊技役の抽選と特別役の抽選とを別個に行うようになっており、特別役の成立後、すなわち特別役の当選フラグが持ち越されている状態においては、小役及び再遊技役の抽選のみが行われるようになっているが、特別役の成立後も、小役及び再遊技役の抽選、及び特別役の抽選の双方を行い、特別役の抽選により特別役が当選した場合に、当該当選を無効に扱うようにしても良く、この場合でも、複数の特別役が重複して当選してしまうことがない。
また、小役及び再遊技役用の役別テーブルに登録されているアドレス領域に格納された判定値数及び特別役用の役別テーブルに登録されているアドレス領域に格納された判定値数から、小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲と、小役及び特別役が重複して当選する判定値の範囲と、が特定できるようになっており、内部抽選においては、内部抽選用の乱数として取得した値が、これら判定値数により特定される小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲に含まれていれば、小役、再遊技役、特別役がそれぞれ単独で当選したと判定し、小役及び特別役が重複して当選する判定値の範囲に含まれていれば、小役及び特別役の双方が当選したと判定するようになっている。このため、特別役と小役の双方の当選が判定される範囲の値が内部抽選用の乱数として取得された場合には、特別役と小役が同時に当選することとなり、特別役または小役の当選のみが判定される範囲の値が内部抽選用の乱数として取得された場合には、特別役または小役のみが当選することとなる。これにより、ゲームの結果として小役入賞が発生した場合でも、小役よりも有利度の高い特別役の発生が許容されていることが否定されないので、このような状況においても特別役の発生に対する遊技者の期待感を持続させることができる。
尚、本実施例では、小役及び再遊技役用の役別テーブルに登録されているアドレス領域に格納された判定値数及び特別役用の役別テーブルに登録されているアドレス領域に格納された判定値数から、小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲と、小役及び特別役が重複して当選する判定値の範囲と、が特定できるようになっているが、小役及び再遊技役用の役別テーブルに登録されているアドレス領域に格納された判定値数及び特別役用の役別テーブルに登録されているアドレス領域に格納された判定値数から、再遊技役が単独で当選する判定値の範囲、小役及び特別役が重複して当選する判定値の範囲のみが特定できるようしても良く、このような構成によれば、ゲームの結果として小役が入賞した場合に、特別役に当選していることに対して期待が持てる。また、小役及び再遊技役用の役別テーブルに登録されているアドレス領域に格納された判定値数及び特別役用の役別テーブルに登録されているアドレス領域に格納された判定値数から、再遊技役及び特別役が単独で当選する判定値の範囲、小役及び特別役が重複して当選する判定値の範囲のみが特定できるようしても良く、このような構成によれば、ゲームの結果として小役が入賞しなかった場合でも、特別役に当選していることが否定されないので、このような状況においても特別役の入賞に対する遊技者の期待感を持続させることができる。また、小役及び再遊技役用の役別テーブルに登録されているアドレス領域に格納された判定値数及び特別役用の役別テーブルに登録されているアドレス領域に格納された判定値数から、再遊技役及び小役が単独で当選する判定値の範囲、小役及び特別役が重複して当選する判定値の範囲のみが特定できるようしても良く、このような構成によれば、ゲームの結果として小役が入賞した場合でも、特別役に当選していることが否定されないので、このような状況においても特別役の入賞に対する遊技者の期待感を持続させることができる。
また、本実施例では、ビッグボーナス(1)〜(3)とチェリーが重複して当選する判定値の範囲よりも、ビッグボーナス(1)〜(3)とスイカが重複して当選する判定値の範囲の方が大きくなるように設定されているため、ビッグボーナス(1)〜(3)とチェリーが同時に当選する確率よりも、ビッグボーナス(1)〜(3)とスイカが同時に当選する確率の方が高くなる。これにより、チェリーが入賞したときよりもスイカが入賞したときの方が、ビッグボーナス(1)〜(3)と同時に当選している可能性が高くなるので、小役が入賞したときに、その小役の種類によってビッグボーナス(1)〜(3)の当選に対する期待感に変化を持たせることができるため、興趣を高めることができる。
また、本実施例において乱数取得処理によって取得される内部抽選用の乱数は、サンプリング回路43により乱数発生回路42から抽出した乱数をそのまま使用するのではなく、ソフトウェアにより加工してから使用するものとしている。乱数発生回路42は、パルス発生回路42aのパルス信号の周波数で高速に更新して乱数を発生しているが、ソフトウェアにより加工した後の内部抽選用の乱数では、その加工によって更新の周期性が失われるものとなる。
これに対して、内部抽選では各役に対応した判定値数を内部抽選用の乱数の値に順次加算していくことにより行うため、図8〜図10に示したように各役を当選とする内部抽選用の乱数の値は、固まってしまうこととなる。これに対して、ソフトウェアによる加工で内部抽選用の乱数の周期性を失わせ、その値をバラつかせることによって、遊技者による狙い打ちを可能な限り防ぐことができる。
しかも、乱数発生回路42のカウンタ42b、42cの値を更新させるためにパルス発生回路42aが発生するパルス信号の周波数は、CPU41aの動作クロックの周波数よりも高く、整数倍ともなっていない。このため、乱数発生回路42が発生する乱数の更新が、CPU41aが行う処理と同期しにくくなる。しかも、パルス発生回路42aのパルス信号の周波数の方を高くすることで、乱数発生回路42が発生する乱数の更新速度を非常に速いものとすることができる。
一方、ソフトウェアによる乱数の加工は、サンプリング回路43により乱数発生回路42から抽出した乱数の上位バイトと下位バイトとを入れ替え、第15、第7ビットをマスクした後、上位バイトをビットシフトするだけで良い。従って、16ビット(実際にはマスクされて14ビット)という比較的大きな乱数であっても、周期性を失わせるために必要な加工の処理に要する負荷がそれほど大きくならず、容易に取得することができる。このように大きな乱数が取得できることで、内部抽選における確率設定を細かく行うことができるようになる。
また、本実施例では、サンプリング回路43により乱数発生回路42から抽出した2バイト(16ビット)の乱数のうち、特定の2ビット(本実施例では第15、第7ビット)をマスクして得られる14ビットの乱数が取得されるようになっている。これは、一般的に汎用品の乱数発生回路は、16ビットの乱数を出力するものであるが、内部抽選において用いる乱数の範囲としては、14ビットの乱数で十分であり、16ビットの乱数をそのまま取得した場合には、乱数の範囲が大き過ぎるため、役別テーブルに格納されるデータ量がも多くなってしまい、ROM41bの格納領域も圧迫されてしまううえに、内部抽選で処理する数値も大きくなってしまうので、CPU41aの負荷も大きくなってしまうからである。
このように本実施例では、サンプリング回路43により乱数発生回路42から抽出した2バイト(16ビット)の乱数のうち、特定の2ビットをマスクして得られる14ビットの乱数を取得するので、比較的安価な汎用の乱数発生回路を用いても、ROM41bの格納領域を圧迫することがなく、CPU41aの負荷も大きくなってしまうことがない。
以上、本発明の実施例を図面により説明してきたが、本発明はこの実施例に限定されるものではなく、本発明の主旨を逸脱しない範囲における変更や追加があっても本発明に含まれることは言うまでもない。
例えば、前記実施例では、内部抽選に用いる判定値数が記憶されるRAM41cの判定値数記憶領域は、2バイトの領域を用いて、それぞれの場合における判定値数を記憶するものとしていた。もっとも、一般的なスロットマシンでは、特別役の判定値数は、いずれの遊技状況においても255を超えるものが設定されることはあまりない。このように255を超える判定値数を設定する必要がないものについては、1バイトの領域だけを用いて、判定値数を記憶するものとしても良い。
また、前記実施例では、判定値数が設定値に関わらず共通のものについて、その一部を設定値1〜6の全体に共通して記憶しているが、判定値数が設定値に関わらず共通のものについても、設定値1〜6のそれぞれに対して個別に記憶することもできる。また、判定値数が設定値に関わらず共通のものは、その全てを設定値1〜6の全体に共通して記憶するすることもできる。
また、前記実施例では、判定値数が、設定値1〜6の全体に共通して記憶されているか、設定値1〜6のそれぞれに対して個別に記憶されているかであった。もっとも、設定値1〜6の全体に共通して判定値数が記憶されない(設定値についての共通フラグが設定されない)ものとして、例えば、設定値1〜3については判定値数が共通、設定値4〜6については判定値数が共通のものとすることもできる。賭数についての判定値数についても同様で、例えば賭数1と2については共通、賭数3では個別とすることもできる。
また、前記実施例では、同一の設定値における同一の役について賭数に応じて参照される判定値数が賭数(1または3)のそれぞれに対して異なるアドレスに格納されていた。すなわち同一の設定値における同一の役について賭数に応じて参照される判定値数が同じであっても個別に記憶されていたが、賭数に関わらず当選確率を同一とするものとした役について、判定値数の格納先のアドレスを共通化したり、設定値及び賭数に関わらず当選確率を同一とするものとした役について、判定値数の格納先のアドレスを共通化するようにしても良く、このように判定値数を共通化して格納することで、そのために必要な記憶容量が少なくて済むようになる。
また、前記実施例では、設定値等に応じて取得した判定値数を内部抽選用の乱数の値に順次加算していたが、取得した判定値数を取得した内部抽選用の乱数の値から順次減算して、減算の結果を新たな内部抽選用の乱数の値とするものとしても良い。判定値数を内部抽選用の乱数の値から減算するときには、内部抽選用の乱数の第15ビットと第14ビットとを「0」として、減算の結果にオーバーフロー(ここでは、減算結果がマイナスとなること)が生じたかどうかを判定するものとすることができる。
また、前記実施例では、内部抽選において、取得した内部抽選用の乱数の値に遊技状況に応じた各役の判定値数を順次加算していき、加算結果がオーバーフローしたときに当該役を当選と判定するものとしていた。これに対して、遊技状況に応じた各役の判定値数に応じて、各役を当選と判定する判定値を定めた当選判定用テーブルをゲーム毎に作成し、取得した内部抽選用の乱数の値を各役の判定値と比較することで、内部抽選を行うものとしても良い。また、各役を当選と判定する判定値を定めた当選判定用テーブルを予めROM41bに格納しておき、取得した内部抽選用の乱数の値を各役の判定値と比較することで、内部抽選を行うものとしても良い。
また、前記実施例では、通常遊技状態及びビッグボーナス中の小役ゲームにおいて、賭数として3を設定することのみによりゲームを開始させることができた。これに対して、通常遊技状態及びビッグボーナス中の小役ゲームにおいても、賭数として1を設定してゲームを開始させることをできるようにしたり、更には賭数として2を設定してゲームを開始させることをできるようにしても良い。これにより、通常遊技状態及びビッグボーナス中の小役ゲームで賭数として1または2が設定されていたときには、賭数として3が設定されたときよりも内部抽選における小役の当選確率を低下させるともに、小役に入賞したときの払い出しメダル枚数を増加させることができる。例えば、通常遊技状態及びビッグボーナス中の小役ゲームで賭数として3が設定されたときには、ベルの当選確率を1/4.6、払出枚数を8枚とするが、賭数として1または2が設定されたときには、ベルの当選確率を1/240.9、払出枚数を15枚としても良い。更に賭数として1が設定されたときと2が設定されたときとで、ベルの当選確率及び払出枚数を変えても良い。
また、前記実施例では、通常遊技状態における内部抽選において、同一の内部抽選用の乱数について、小役及び再遊技役用の役別テーブルを参照する小役及び再遊技役の抽選と、特別役用の役別テーブルを参照する特別役の抽選と、を別個に行うとともに、小役及び再遊技役用の役別テーブルに登録されているアドレス領域に格納された判定値数及び特別役用の役別テーブルに登録されているアドレス領域に格納された判定値数から、小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲と、小役及び特別役が重複して当選する判定値の範囲と、が特定できるようにすることにより、特別役と小役が同時に当選し得る構成としていたが、役別テーブルに、特別役のみに対応する判定値数の格納先のアドレス、特別役及び小役の双方に対応する判定値数の格納先のアドレス、小役のみに対応する判定値数の格納先アドレス、再遊技役のみに対応する判定値数の格納先アドレスをそれぞれ登録しておき、内部抽選において、取得した内部抽選用の乱数に、役別テーブルから参照された各役の判定値数を加算していき、特別役のみに対応する判定値数との加算結果がオーバーフローした場合には、特別役のみの当選を判定し、特別役及び小役の双方に対応する判定値数との加算結果がオーバーフローした場合には、特別役及び小役の双方の当選を判定し、小役または再遊技役のみに対応する判定値数との加算結果がオーバーフローした場合には、小役または再遊技役のみの当選を判定するようにすることで、特別役と小役が同時に当選し得る構成とすることもできる。すなわち1つの役別テーブルから、小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲と、小役及び特別役が重複して当選する判定値の範囲と、が特定できるようにすることで、特別役と小役が同時に当選し得る構成とすることもできる。
図51は、役別テーブルの変形例を示す図であり、図52は内部抽選処理の変形例を示すフローチャートである。
図51に示す役別テーブルには、ビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)、レギュラーボーナス(1)、レギュラーボーナス(2)、JACIN、JAC、チェリー、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(3)+チェリー、スイカ、ビッグボーナス(1)+スイカ、ビッグボーナス(2)+スイカ、ビッグボーナス(3)+スイカ、ベル、リプレイの判定値数の格納アドレスが参照される順番に登録されている。
各役の判定値数は、ゲームにおいて遊技者が設定する賭数(BET)に対応して登録されている。同一の役であっても、レギュラーボーナスにおける当選確率が他の役と異なっている場合があるからである。また、各役の賭数に応じた判定値数は、設定値に関わらずに共通になっているものと、設定値に応じて異なっているものとがある。判定値数が設定値に関わらずに共通である場合には、共通フラグが設定される(値が「1」とされる)。
ビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)、レギュラーボーナス(1)、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(3)+チェリー、ビッグボーナス(1)+スイカ、ビッグボーナス(2)+スイカ、ビッグボーナス(3)+スイカは、通常遊技状態でのみ内部抽選の対象となる役であり、通常遊技状態での賭数3に対応する判定値数の格納アドレスが登録されている。これらの役のうち、ビッグボーナス(1)、ビッグボーナス(2)及びビッグボーナス(3)、レギュラーボーナス(1)については、共通フラグの値が0となっており、設定値に応じて個別に判定値数の格納アドレスが登録されている。また、ビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(3)+チェリー、ビッグボーナス(1)+スイカ、ビッグボーナス(2)+スイカ、ビッグボーナス(3)+スイカについては、共通フラグの値が1であり、設定値に関わらずに共通の判定値数の格納アドレスが登録されている。レギュラーボーナス(2)及びJACINは、ビッグボーナス中の小役ゲームでのみ内部抽選の対象となる役であり、小役ゲームでの賭数3に対応する判定値数の格納アドレスが登録されている。この役の共通フラグの値は1であり、設定値に関わらずに共通の判定値数の格納アドレスが登録されている。
JACは、レギュラーボーナスでのみ内部抽選の対象となる役であり、レギュラーボーナスでの賭数1に対応する判定値数の格納アドレスが登録されている。この役の共通フラグは1であり、設定値に関わらず共通の判定値数の格納アドレスが登録されている。リプレイは、通常遊技状態でのみ内部抽選の対象となる役であり、通常遊技状態での賭数3に対応する判定値数の格納アドレスが登録されている。この役の共通フラグは1であり、設定値に関わらず共通の判定値数の格納アドレスが登録されている。
チェリー、ベル、及びスイカは、いずれの遊技状態でも内部抽選の対象となる役であり、レギュラーボーナスでの賭数1に対応する判定値数の格納アドレスと、通常遊技状態または小役ゲームでの賭数3に対応する判定値数の格納アドレスとが登録されている。チェリー及びスイカについては、共通フラグが1となっており、それぞれの賭数に対応して設定値に関わらず共通の判定値数の格納アドレスが登録されている。ベルについては、共通フラグが0となっており、それぞれの賭数に対応して設定値に応じて個別に判定値数の格納アドレスが登録されている。
次に、図52に示すフローチャートに基づいて、CPU41aが実行する内部抽選処理の変形例を説明する。
この内部抽選処理では、乱数取得処理を行う(Sg101)。この乱数取得処理においては、乱数発生回路42が発生する乱数に基づいて、内部抽選用の乱数の値が取得されることとなる。
そして、RAMの設定値ワークに格納されている設定値を読み出し(Sg102)、読み出した設定値が1〜6の範囲か否か、すなわち設定値ワークに格納されている設定値が適正な値か否かを判定し(Sg103)、読み出した設定値が1〜6の範囲の値でなければ、RAM異常を示すエラーコードをRAM41cに設定し(Sg104)、図24に示すエラー処理に移行する。
また、Sg103のステップにおいて読み出した設定値が1〜6の範囲であれば、現在の遊技状態に対応して、図51の役別テーブルに登録されている役を順番に読み出す(Sg105)。ここで読み出した役の種類がレギュラーボーナス(レギュラーボーナス(1)、レギュラーボーナス(2))、ビッグボーナス(ビッグボーナス(1)、ビッグボーナス(2)、ビッグボーナス(3)(+チェリー、+スイカは含まず))であるかどうかを判定する(Sg106)。レギュラーボーナス、ビッグボーナスまたはJACINのいずれかである場合には、前回以前のゲームでRAM41cにレギュラーボーナスまたはビッグボーナスの当選フラグが既に設定され、当該当選フラグに基づいて入賞することなく持ち越されているかどうかを判定する(Sg107)。読み出した役の種類がレギュラーボーナスでもレギュラーボーナスでもなければ、そのままSg108の処理に進む。
レギュラーボーナスまたはビッグボーナスの当選フラグが既に設定されていれば、Sg105の処理に戻り、更に遊技状態別当選役テーブルに次に登録されている役を読み出すものとなる(レギュラーボーナス、ビッグボーナス及びJACINは、役別テーブルにおいて最初に登録されており、これで抽選処理が終了となることはないので)。読み出した役の種類がレギュラーボーナス、ビッグボーナスまたはJACINであっても、レギュラーボーナスの当選フラグもビッグボーナスの当選フラグも設定されていなければ、Sg108の処理に進む。
Sg108では、更にSa2のステップで設定されたBET数を読み出し、当該役と読み出したBET数に対応する役について、図51の役別テーブルから共通フラグの設定状況を取得する。この結果、当該役、当該BET数について共通フラグが設定されているかどうかを判定する(Sg109)。
共通フラグが設定されていれば、当該役、当該BET数について図51の役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg110)。そして、Sg112の処理に進む。共通フラグが設定されていなければ、RAM41cに設定されている設定値を読み出し、当該役、当該BET数について読み出した設定値に対応して役別テーブルに登録されているアドレスに格納されている判定値数を取得する(Sg111)。そして、Sg112の処理に進む。
Sg112のステップでは、Sg110またはSg111のステップにおいて取得した判定値数を内部抽選用の乱数の値に加算し、加算の結果を新たな内部抽選用の乱数の値とする。ここで、判定値数を内部抽選用の乱数の値に加算したときにオーバーフローが生じたかどうかを判定する(Sg113)。オーバーフローが生じた場合には、当該役がビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(3)+チェリー、またはビッグボーナス(1)+スイカ、ビッグボーナス(2)+スイカ、ビッグボーナス(3)+スイカであるか否かを判定する(Sg114)。当該役がビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(3)+チェリー、またはビッグボーナス(1)+スイカ、ビッグボーナス(2)+スイカ、ビッグボーナス(3)+スイカでなければ、当該役の当選フラグをRAM41cに設定する(Sg114)。そして、内部抽選処理を終了して、図26のフローチャートに復帰する。
Sg114のステップにおいて、当該役がビッグボーナス(1)+チェリー、ビッグボーナス(2)+チェリー、ビッグボーナス(3)+チェリー、またはビッグボーナス(1)+スイカ、ビッグボーナス(2)+スイカ、ビッグボーナス(3)+スイカであれば、前回以前のゲームでRAM41cにレギュラーボーナスまたはビッグボーナスの当選フラグが既に設定され、当該当選フラグに基づいて入賞することなく持ち越されているかどうかを判定する(Sg116)。レギュラーボーナスの当選フラグもビッグボーナスの当選フラグも設定されていなければ、ビッグボーナス(1)〜(3)の該当する当選フラグ及びチェリーの当選フラグ、またはビッグボーナス(1)〜(3)の該当する当選フラグ及びスイカの当選フラグをそれぞれRAM41cに設定する(Sg117)。そして、内部抽選処理を終了して、図26のフローチャートに復帰する。
Sg116のステップにおいてレギュラーボーナスまたはビッグボーナスの当選フラグが既に設定されていれば、チェリーの当選フラグまたはスイカの当選フラグをRAM41cに設定する(Sg118)。そして、内部抽選処理を終了して、図26のフローチャートに復帰する。
Sg113のステップにおいてオーバーフローが生じていない場合には、当該遊技状態について定められた役のうちで未だ処理対象としていない役があるかどうかを判定する(Sg119)。未だ処理対象としていない役があれば、Sg105の処理に戻り、遊技状態別当選役テーブルに登録されている次の役を処理対象として処理を継続する。処理対象としていない役がなければ、内部抽選処理を終了して、図26のフローチャートに復帰する。
上記のように、図51に示す役別テーブル及び図52に示す内部抽選処理を適用した変形例によれば、特別役と小役の双方の当選が判定される範囲の値が内部抽選用の乱数として取得された場合には、特別役と小役が同時に当選することとなり、特別役の当選のみが判定される範囲の値が内部抽選用の乱数として取得された場合には、特別役のみが当選することとなる。これにより、ゲームの結果として小役入賞が発生した場合でも、小役よりも有利度の高い特別役の発生が許容されていることが否定されないので、このような状況においても特別役の発生に対する遊技者の期待感を持続させることができる。また、特別役のハズレに対応する判定値数を登録する必要がないので、ROM41bの容量を節約できるとともに、遊技状態に関わらず、内部抽選処理を共通化できるので、プログラムも簡素化することができる。
尚、上記の構成においては、図51に示す役別テーブルに登録されているアドレス領域に格納された判定値数から、小役、再遊技役、特別役がそれぞれ単独で当選する判定値の範囲と、小役及び特別役が重複して当選する判定値の範囲と、が特定できるようになっているが、役別テーブルに登録されているアドレス領域に格納された判定値数から、再遊技役が単独で当選する判定値の範囲、小役及び特別役が重複して当選する判定値の範囲のみが特定できるようしても良く、このような構成によれば、ゲームの結果として小役が入賞した場合に、特別役に当選していることに対して期待が持てる。また、役別テーブルに登録されているアドレス領域に格納された判定値数から、再遊技役及び特別役が単独で当選する判定値の範囲、小役及び特別役が重複して当選する判定値の範囲のみが特定できるようしても良く、このような構成によれば、ゲームの結果として小役が入賞しなかった場合でも、特別役に当選していることが否定されないので、このような状況においても特別役の入賞に対する遊技者の期待感を持続させることができる。また、役別テーブルに登録されているアドレス領域に格納された判定値数から、再遊技役及び小役が単独で当選する判定値の範囲、小役及び特別役が重複して当選する判定値の範囲のみが特定できるようしても良く、このような構成によれば、ゲームの結果として小役が入賞した場合でも、特別役に当選していることが否定されないので、このような状況においても特別役の入賞に対する遊技者の期待感を持続させることができる。
また、上記の構成においては、特別役の成立後、すなわち特別役の当選フラグが持ち越されている状態において、特別役が単独で当選する判定値の範囲の値が内部抽選用の乱数として取得された場合にハズレと判定され、小役及び特別役が重複して当選する判定値の範囲の値が内部抽選用の乱数として取得された場合に、小役のみの当選が判定されることで、複数の特別役が当選してしまうことがないようになっているが、小役及び特別役が重複して当選する判定値の範囲の値が内部抽選用の乱数として取得された場合にもハズレと判定するようにしても良く、この場合でも、複数の特別役が重複して当選してしまうことがない。また、特別役の成立後は、特別役が単独で当選する判定値の範囲や小役及び特別役が重複して当選する判定値の範囲を特定可能なデータが登録されていない役別テーブル、すなわち再遊技役が当選する判定値の範囲を特定可能なデータと小役のが当選する判定値の範囲を特定可能なデータのみが登録された役別テーブルによって内部抽選処理を行うようにしても良く、この場合でも、複数の特別役が重複して当選してしまうことがない。
また、前記実施例では、乱数発生回路42から抽出した乱数の上位バイト全体を下位バイトで置換し、下位バイト全体を上位バイトで置換するという入れ替えを行っていた。これに対して、乱数発生回路42から抽出した乱数のビットのうちの特定のビットのデータを他のビットのデータ(但し、マスクされる第7、第15ビット以外)で置換するだけであっても良い。また、乱数発生回路42から抽出した乱数の値を、そのまま内部抽選用の乱数として取得するものとしても良い。更に、上記の実施の形態とは異なる方法により内部抽選用の乱数に加工するものとしても良い。
図53は、乱数発生回路42から抽出した乱数をCPU41aがソフトウェアにより内部抽選用の乱数に加工するまでの処理の第1の変形例の説明図である。この第1の変形例でも、乱数発生回路42から抽出された乱数は、CPU41aが有する16ビットの汎用レジスタ41GRに格納されるものとなる。
乱数発生回路42から抽出された乱数が汎用レジスタ41GRに格納されると、CPU41aは、更に内部のリフレッシュレジスタ41Rの値を加工用の乱数として抽出する。CPU41aは、汎用レジスタ41GRの上位バイトの値(上位カウンタ42cから抽出した値)にリフレッシュレジスタ41Rから抽出した加工用の乱数を加算する。汎用レジスタ41GRの下位バイトの値(下位カウンタ42bから抽出した値)は、そのままにしておく。
次に、CPU41aは、汎用レジスタ41GRの値、すなわち上位バイトに加工用の乱数を加算した値を、8080hと論理和演算をする。更に、CPU41aは、上位1バイト(第8ビット〜第15ビット)までを1ビットずつ下位にシフトし、これによって空いた第15ビットに1を挿入する。CPU41aは、このときに汎用レジスタ41GRに格納されている値を内部抽選用の乱数として取得し、これに判定値数を順次加算していくものとなる。
図54は、乱数発生回路42から抽出した乱数をCPU41aがソフトウェアにより内部抽選用の乱数に加工するまでの処理の第2の変形例の説明図である。この例でも、乱数発生回路42から抽出された乱数は、CPU41aが有する16ビットの汎用レジスタ41GRに格納されるものとなる。
乱数発生回路42から抽出された乱数が汎用レジスタ41GRに格納されると、CPU41aは、更に内部のリフレッシュレジスタ41Rの値を加工用の乱数として抽出する。CPU41aは、汎用レジスタ41GRの上位バイトの値(上位カウンタ42cから抽出した値)にリフレッシュレジスタ41Rから抽出した加工用の乱数を加算する。また、汎用レジスタ41GRの下位バイトの値(下位カウンタ42bから抽出した値)にもリフレッシュレジスタ41Rから抽出した加工用の乱数を加算する。
次に、CPU41aは、汎用レジスタ41GRの値、すなわち上位バイト及び下位バイトにそれぞれ加工用の乱数を加算した値を、8080hと論理和演算をする。更に、CPU41aは、上位1バイト(第8ビット〜第15ビット)までを1ビットずつ下位にシフトし、これによって空いた第15ビットに1を挿入する。CPU41aは、このときに汎用レジスタ41GRに格納されている値を内部抽選用の乱数として取得し、これに判定値数を順次加算していくものとなる。
以上説明した第1、第2の変形例では、リフレッシュレジスタ41Rの値を加工用の乱数として抽出し、これを乱数発生回路42から抽出した乱数の上位バイト(第2変形例では、更に下位バイト)に加算して、乱数の加工を行うものとしている。ここで適用した乱数の加工には、少なくとも加工用の乱数を上位バイトに加算する処理を含んでいる。これにより、内部抽選用の乱数のバラツキを大きくすることができ、遊技者による狙い打ちを可能な限り防ぐことができる。
また、加工用の乱数をリフレッシュレジスタ41Rから抽出するものとしたことで、加工用の乱数を生成する手段として特別な構成が必要ない。しかも、リフレッシュレジスタ41Rの値は、CPU41aの命令フェッチ毎に更新されるもので、その更新間隔は一定しないので、ランダム性の高い乱数を加工用の乱数として抽出することができる。そして、加工用の乱数のランダム性が高いことから、これを用いて生成される内部抽選用の乱数のランダム性も高くなる。
尚、上記第1、第2の変形例において、乱数発生回路42から抽出した乱数の上位バイト(及び下位バイト)にリフレッシュレジスタ41Rから抽出した値を加算していたが、リフレッシュレジスタ41R以外でハードウェアまたはソフトウェアにより周期的に更新される値を加算しても良い。また、リフレッシュレジスタ41Rから抽出した値(或いは、リフレッシュレジスタ41Rに代わるものの値)を加算するのではなく、減算や、論理和、論理積などの論理演算を行っても良い。
また、前記実施例で示した上位バイトと下位バイトとの入れ替えのようなビットの置換を、第1、第2の変形例に併用するものとしても良い。上記第1、第2の変形例においても、乱数発生回路42からの乱数の抽出から加工を終了するまでの間は、汎用レジスタ41GRの内容が書き換えられてしまうのを防ぐため、CPU41aに対する割り込みが禁止されるものとなる。
また、第2の変形例においては、乱数発生回路42から抽出した乱数の上位バイトと下位バイトにそれぞれ加算する加工用の乱数を、リフレッシュレジスタ41Rから異なるタイミングで別々に抽出しても良い。上位バイトに加算する加工用の乱数を更新する手段と、下位バイトに加算する加工用の乱数を更新する手段とを別々に用意し、それぞれから上位バイト用、下位バイト用の加工用の乱数を抽出する手段を設けるものとしても良い。この場合において、上位バイト用の加工用の乱数を更新する手段と下位バイト用の加工用の乱数を更新する手段の一方をリフレッシュレジスタ41Rによって構成するものとすることができる。
また、前記実施例では、乱数発生回路42が発生する乱数、すなわちハードウェア乱数機能により抽出した乱数をソフトウェアにより加工する場合に本発明を適用した場合について説明した。しかしながら、上記したソフトウェアによる乱数の加工は、ソフトウェアにより周期的に更新される乱数に適用しても良い。例えば、メイン制御部41を構成するマイクロコンピュータとは別の第2のマイクロコンピュータにおいてタイマ割り込みなどにより周期的に更新される乱数を、CPU41aが第2のマイクロコンピュータに指示を送って抽出させ、I/Oポート41dを介してCPU41aに入力して、汎用レジスタ41GRに格納するものとすることができる。第2のマイクロコンピュータの機能は、メイン制御部41を構成するマイクロコンピュータに含まれていても良い。この場合にも、加工後に取得される乱数の値をバラつかせることができるようになり、遊技者による狙い打ちの防止の効果を図ることができる。
また、前記実施例では、ビッグボーナス入賞時においてゲーム終了後、BB入賞時演出の演出待ち時間が経過するまでの期間、打止機能が無効に設定されている場合のビッグボーナス終了時においてゲーム終了後、エンディング待ち時間が経過するまでの期間、打止機能が有効に設定されている場合のビッグボーナス終了時においてエンディング待ち時間の経過後、店員によるリセット操作がなされて打止状態が解除されるまでの期間、のいずれにおいても賭数の設定が禁止されるようになっているが、少なくともこれらいずれか1つ以上の期間において賭数の設定が禁止されるものであれば良い。
また、前記実施例のスロットマシン1では、打止機能を搭載しているが、打止機能を搭載しないスロットマシンに適用しても良い。
また、前記実施例では、入賞時に賭数の設定が一定期間禁止される特別入賞として、ビッグボーナス入賞のみを適用しているが、その他の特別入賞を適用しても良いし、複数種類の特別入賞に適用しても良い。
また、前記実施例では、終了時に賭数の設定が一定期間禁止される特別遊技状態として、ビッグボーナスのみを適用しているが、その他の特別遊技状態を適用しても良いし、複数種類の特別遊技状態に適用しても良い。
また、前記実施例では、ゲーム終了時処理の終了によりゲームの終了が判定されるが、メダルの払出が終了することで、実質的にゲームは終了しているので、払出処理の終了によりゲームの終了が判定されるようにしても良い。すなわち払出処理の終了時点からクレジットの精算が可能となる構成としても良い。
前記実施例において、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か否かを判定する処理の方が処理効率が高いからである。
図55(a)は、RAM41cの格納領域の変形例を示す図であり、図55(b)は、初期化テーブルの変形例を示す図であり、図56は、初期化1の変形例を示すフローチャートである。
図55(a)に示すように、この変形例においては、RAM41cの格納領域が7E00(H)から、設定値ワーク、特別ワーク、重要ワーク、非保存ワーク、一般ワーク、未使用領域、未使用スタック領域、使用中スタック領域の順番で割り当てられている。このため、初期化1、2、4のいずれを行った場合でも、初期化される領域が連続するアドレス領域となる。詳しくは、初期化1において初期化される領域は、使用中スタック領域を除く全ての領域、すなわち、設定値ワーク、特別ワーク、重要ワーク、非保存ワーク、一般ワーク、未使用領域、未使用スタック領域であり、これらの領域は、7E00(H)〜スタックポインタまでの連続するアドレス領域である。また、初期化2において初期化される領域は、一般ワーク、未使用領域、未使用スタック領域であり、これらの領域は、7E53(H)〜スタックポインタまでの連続するアドレス領域である。また、初期化4において初期化される領域は、未使用領域、未使用スタック領域であり、これらの領域は、7F05(H)〜スタックポインタまでの連続するアドレス領域である。尚、初期化2において一般ワーク、未使用領域、未使用スタック領域が初期化されるのに対して、初期化3では、非保存ワーク、未使用領域、未使用スタック領域が初期化されるので、初期化3において初期化される未使用領域及び未使用スタック領域は、連続するアドレス領域となるが、非保存ワークは連続しないアドレス領域となる。
図55(b)に示すように、この変形例において適用する初期化テーブルには、初期化1〜4に対応して開始アドレスが登録されているとともに、初期化1〜4に共通する終了アドレスが登録されている。また、初期化3については、非保存ワークが連続しないアドレス領域となるので、非保存ワークの開始アドレスに対応して初期化サイズが登録されている。
次に、図56に示すフローチャートに基づいて、CPU41aが実行する初期化1の変形例を説明する。
この初期化1では、まず、ROM41bの初期化テーブルを参照し、初期化1に対応して登録されている開始アドレスを読み出す(Sm101)。そして、読み出した開始アドレス(7E00(H))にポインタをセットする(Sm102)。次いで、ROM41bの初期化テーブルを参照し、初期化1〜4に共通の終了アドレスを読み出す(Sm103)。そして、Sm101で読み出した開始アドレス(7E00(H))からSm103で読み出した終了アドレス(スタックポインタ)までのバイト数を計算し(Sm104)、計算したバイト数を初期化する領域のバイト数をセットする(Sm105)。そして、Sm102でセットされた開始アドレスからSm105でセットされたバイト数にわたりデータをクリアするRAMクリア処理を実行し(Sm106)、RAMクリア処理が終了すると、初期化1を終了してもとの処理に復帰する。
また、初期化2、4の変形例は、図56に示す初期化1の変形例とほぼ同様の処理であり、初期化テーブルに登録されている初期化2または初期化4の開始アドレスを取得し、開始アドレスから共通の終了アドレスまでのバイト数を計算し、開始アドレスから計算したバイト数にわたりデータをクリアする処理を行う。また、初期化3の変形例では、まず、初期化テーブルに登録されている非保存ワークの開始アドレスと初期化サイズを取得し、開始アドレスから初期化サイズ分のバイト数にわたりデータをクリアした後、初期化テーブルに登録されている未使用領域及び未使用スタック領域の開始アドレスを取得し、開始アドレスから共通の終了アドレスまでのバイト数を計算し、開始アドレスから計算したバイト数にわたりデータをクリアする処理を行う。
上記のようなRAM41cの初期化の変形例によれば、複数の初期化条件について、初期化テーブルに対応する開始アドレスとこれら複数の初期化条件に共通の終了アドレスのみを設定しておくことで、複数の初期化条件に対応する終了アドレスを個々に設定しておくことなく、複数の初期化条件に対応する領域を初期化することができるので、複数種類の初期化を行うためのプログラム容量を削減できる。
また、前記実施例では、電断割込処理において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の起動時においてのみRAM41cのデータが正常か否かを判定しているが、その他の契機、例えば、1ゲーム毎に判定するようにしても良い。
また、前記実施例では、メイン制御部41とは別個に設けられたリセット回路49からのリセット信号に基づいてメイン制御部41が起動するようになっているが、リセット回路をメイン制御部41を構成するマイクロコンピュータが搭載していても良い。
また、前記実施例では、メイン制御部41を構成するマイクロコンピュータにRAM41cが搭載されているが、マイクロコンピュータの外部に当該マイクロコンピュータのワークとして用いるRAMを搭載したものであっても良い。
また、前記実施例では、電断検出回路48が、スロットマシン1に用いられる直流電圧を監視し、当該直流電圧が一定の電圧以下となったときに電断を検出しているが、例えば、当該直流電圧が一定の電圧以下となった期間が一定期間継続したときに電断を検出するようにしても良い。また、スロットマシン1に供給される交流電圧を監視し、交流電圧の波形の乱れを検出したとき、またはその期間が一定期間継続したときに電断を検出するようにしても良い。
また、前記実施例では、電断検出回路48が、遊技制御基板40に搭載されているが、その他の場所に搭載されていても良く、例えば、電源基板100や電源基板100から遊技制御基板40への電源の供給ラインが経由する中継基板等に搭載されていても良い。
また、前記実施例では、メダル並びにクレジットを用いて賭数を設定するスロットマシンを用いているが、本発明はこれに限定されるものではなく、遊技球を用いて賭数を設定するスロットマシンや、クレジットのみを使用して賭数を設定する完全クレジット式のスロットマシンであっても良い。
前記実施例における各要素は、本発明に対して以下のように対応している。
本発明の請求項1に記載のスロットマシンは、
遊技用価値(メダル)を用いて1ゲームに対して所定数(1または3)の賭数を設定することによりゲームが開始可能となるとともに、各々が識別可能な複数種類の識別情報を変動表示可能な可変表示装置(リール2L、2C、2R)の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされたスロットマシン1であって、
遊技の制御を行うメイン制御手段(メイン制御部41)を備え、
前記メイン制御手段は、
前記可変表示装置の表示結果が導出される前に、前記遊技用価値の付与を伴う小役入賞(小役)及び遊技状態の移行を伴う特別入賞(特別役)を含む予め定められた複数種類の入賞を発生させることを許容するか否かを決定する事前決定手段(CPU41aによる内部抽選処理)と、
所定の設定操作手段(リセット/設定スイッチ36)の操作に基づいて、前記事前決定手段が入賞の発生を許容する旨を決定する割合(当選確率)が異なる複数種類の許容段階(設定値)のうちから、いずれかの許容段階を選択して設定する許容段階設定手段(CPU41aによる設定変更処理)と、
前記許容段階設定手段により設定された許容段階を示すデータ及び遊技者所有の遊技用価値(クレジット)を示すデータを含む前記メイン制御手段が動作を行うためのデータを読み出し及び書き込みが可能に記憶するメインデータ記憶手段(RAM41c)と、
前記メインデータ記憶手段に記憶されているデータが正常か否かを判定する記憶データ判定手段(CPU41aによるRAMパリティの判定及び破壊診断用データの判定)と、
前記記憶データ判定手段により前記メインデータ記憶手段に記憶されているデータが正常ではないと判定されたときに、ゲームの進行を不能化する不能化手段(CPU41aによるエラー処理)と、
前記不能化手段により前記ゲームの進行が不能化された状態(RAM異常エラーによるエラー状態)において、前記設定操作手段の操作に基づいて前記許容段階設定手段により前記許容段階が新たに設定されたこと(設定変更処理により新たに設定値が選択・設定されたこと)を条件に、前記ゲームの進行が不能化された状態を解除し、ゲームの進行を可能とする不能化解除手段(CPU41aによるゲーム制御処理への移行)と、
少なくとも前記メインデータ記憶手段に記憶されている遊技用価値を用いて賭数を設定する賭数設定手段(CPU41aによるBET処理)と、
前記メインデータ記憶手段に記憶されている遊技用価値を返却させる際に操作される遊技用価値返却操作手段(精算スイッチ10)と、
前記遊技用価値返却操作手段の操作に応じて前記メインデータ記憶手段に記憶されている遊技用価値を返却させる返却制御を行う返却制御手段(CPU41aによる精算処理)と、
前記小役入賞が発生したときに、該小役入賞の種類に応じて定められた数の遊技用価値を付与する価値付与処理を行う価値付与処理手段(CPU41aによる払出処理)と、
前記特別入賞(ビッグボーナス入賞)が発生したときに、終了条件が成立するまでの期間にわたり遊技者にとって有利な特別遊技状態(ビッグボーナス)に制御する特別遊技状態制御手段(CPU41aによる遊技状態の移行制御)と、
前記ゲームが開始したときに、前記賭数設定手段による賭数の設定を禁止する賭数設定禁止手段(CPU41aによる賭数設定の禁止制御)と、
前記ゲームが開始したときに、前記遊技用価値返却手段による返却制御を禁止する返却制御禁止手段(CPU41aによるクレジットの精算の禁止制御)と、
前記可変表示装置の表示結果が導出された後、前記小役入賞に対応する表示結果以外の表示結果が導出されたときには、該表示結果が導出されたときにゲームの終了を判定し、前記小役入賞に対応する表示結果が導出されたときには、該小役入賞の発生に伴う前記価値付与処理が終了したときにゲームの終了を判定するゲーム終了判定手段(CPU41aによるゲームの終了判定制御、具体的には、ゲーム終了時処理の終了によりゲームの終了が判定される)と、
前記ゲーム終了判定手段がゲームの終了を判定したことを条件に、前記賭数設定禁止手段による賭数の設定の禁止を解除する賭数設定禁止解除手段(CPU41aによる賭数設定の禁止制御の解除)と、
前記ゲーム終了判定手段がゲームの終了を判定したことを条件に、前記返却制御禁止手段による返却制御の禁止を解除する返却制御禁止解除手段(CPU41aによるクレジットの精算の禁止制御の解除)と、
を含み、
前記賭数設定禁止解除手段は、前記特別入賞が発生したゲームにおいて、前記ゲーム終了判定手段がゲームの終了を判定してから所定時間(BB入賞時演出の演出待ち時間)が経過したときに前記賭数設定禁止手段による賭数の設定の禁止を解除し、
前記返却制御禁止解除手段は、前記特別入賞が発生したゲームにおいて、前記ゲーム終了判定手段がゲームの終了を判定したときに、前記返却制御禁止手段による返却制御の禁止を解除する、
ことを特徴としている。
本発明のスロットマシンは、請求項1に記載のスロットマシンであって、
前記賭数設定禁止解除手段(CPU41aによる賭数設定の禁止制御の解除)は、前記特別遊技状態(ビッグボーナス)における終了条件が成立したゲームにおいて、前記ゲーム終了判定手段(CPU41aによるゲームの終了判定制御)がゲームの終了を判定してから予め定められた時間(エンディング演出の演出待ち時間)が経過したときに前記賭数設定禁止手段(CPU41aによる賭数設定の禁止制御)による賭数の設定の禁止を解除し、
前記返却制御禁止解除手段(CPU41aによるクレジットの精算の禁止制御の解除)は、前記特別遊技状態における終了条件が成立したゲームにおいて、前記ゲーム終了判定手段がゲームの終了を判定したときに、前記返却制御禁止手段(CPU41aによるクレジットの精算の禁止制御)による返却制御の禁止を解除する、
ことを特徴としている。
本発明のスロットマシンは、請求項1に記載のスロットマシンであって、
前記特別遊技状態(ビッグボーナス)における終了条件が成立したゲームにおいて、該特別遊技状態が終了した後前記賭数の設定が禁止される打止状態とするか否かを設定する打止設定手段(CPU41aによる打止機能の有効/無効の設定)を更に備え、
前記賭数設定禁止解除手段(CPU41aによる賭数設定の禁止制御の解除)は、前記特別遊技状態における終了条件が成立したゲームにおいて、前記打止状態とする旨が設定されていない場合には、前記ゲーム終了判定手段(CPU41aによるゲームの終了判定制御)がゲームの終了を判定してから予め定められた時間(エンディング演出の演出待ち時間)が経過したときに前記賭数設定禁止手段(CPU41aによる賭数設定の禁止制御)による賭数の設定の禁止を解除し、前記打止状態とする旨が設定されている場合には、前記ゲーム終了判定手段がゲームの終了を判定してから前記予め定められた時間が経過した後、所定の解除操作(リセット操作)がなされたときに前記賭数設定禁止手段による賭数の設定の禁止を解除し、
前記返却制御禁止解除手段(CPU41aによるクレジットの精算の禁止制御の解除)は、前記特別遊技状態における終了条件が成立したゲームにおいて、前記ゲーム終了判定手段がゲームの終了を判定したときに、前記返却制御禁止手段(CPU41aによるクレジットの精算の禁止制御)による返却制御の禁止を解除する、
ことを特徴としている。
本発明のスロットマシンは、請求項1に記載のスロットマシンであって、
前記賭数設定禁止解除手段(CPU41aによる賭数設定の禁止制御の解除)は、前記特別遊技状態における終了条件が成立したゲームにおいて、前記ゲーム終了判定手段(CPU41aによるゲームの終了判定制御)がゲームの終了を判定した後、所定の解除操作(リセット操作)がなされたときに前記賭数設定禁止手段(CPU41aによる賭数設定の禁止制御)による賭数の設定の禁止を解除し、
前記返却制御禁止解除手段(CPU41aによるクレジットの精算の禁止制御の解除)は、前記特別遊技状態における終了条件が成立したゲームにおいて、前記ゲーム終了判定手段がゲームの終了を判定したときに、前記返却制御禁止手段(CPU41aによるクレジットの精算の禁止制御)による返却制御の禁止を解除する、
ことを特徴としている。
本発明の請求項2に記載のスロットマシンは、請求項1に記載のスロットマシンであって、
前記特別入賞(ビッグボーナス入賞)が発生したゲームにおいて、前記ゲーム終了判定手段(CPU41aによるゲームの終了判定制御)がゲームの終了を判定してから所定時間(BB入賞時演出の演出待ち時間)が経過するまでの期間に、特別入賞が発生した旨を示す特別入賞演出(BB入賞時演出)を実行する特別入賞演出実行手段(CPU91によるBB入賞時演出の実行制御)を更に備える、
ことを特徴としている。
本発明の請求項3に記載のスロットマシンは、
遊技用価値(メダル)を用いて1ゲームに対して所定数(1または3)の賭数を設定することによりゲームが開始可能となるとともに、各々が識別可能な複数種類の識別情報を変動表示可能な可変表示装置(リール2L、2C、2R)の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされたスロットマシン1であって、
遊技の制御を行うメイン制御手段(メイン制御部41)を備え、
前記メイン制御手段は、
前記可変表示装置の表示結果が導出される前に、前記遊技用価値の付与を伴う小役入賞(小役)及び遊技状態の移行を伴う特別入賞(特別役)を含む予め定められた複数種類の入賞を発生させることを許容するか否かを決定する事前決定手段(CPU41aによる内部抽選処理)と、
所定の設定操作手段(リセット/設定スイッチ36)の操作に基づいて、前記事前決定手段が入賞の発生を許容する旨を決定する割合(当選確率)が異なる複数種類の許容段階(設定値)のうちから、いずれかの許容段階を選択して設定する許容段階設定手段(CPU41aによる設定変更処理)と、
前記許容段階設定手段により設定された許容段階を示すデータ及び遊技者所有の遊技用価値(クレジット)を示すデータを含む前記メイン制御手段が動作を行うためのデータを読み出し及び書き込みが可能に記憶するメインデータ記憶手段(RAM41c)と、
前記メインデータ記憶手段に記憶されているデータが正常か否かを判定する記憶データ判定手段(CPU41aによるRAMパリティの判定及び破壊診断用データの判定)と、
前記記憶データ判定手段により前記メインデータ記憶手段に記憶されているデータが正常ではないと判定されたときに、ゲームの進行を不能化する不能化手段(CPU41aによるエラー処理)と、
前記不能化手段により前記ゲームの進行が不能化された状態(RAM異常エラーによるエラー状態)において、前記設定操作手段の操作に基づいて前記許容段階設定手段により前記許容段階が新たに設定されたこと(設定変更処理により新たに設定値が選択・設定されたこと)を条件に、前記ゲームの進行が不能化された状態を解除し、ゲームの進行を可能とする不能化解除手段(CPU41aによるゲーム制御処理への移行)と、
少なくとも前記メインデータ記憶手段に記憶されている遊技用価値を用いて賭数を設定する賭数設定手段(CPU41aによるBET処理)と、
前記メインデータ記憶手段に記憶されている遊技用価値を返却させる際に操作される遊技用価値返却操作手段(精算スイッチ10)と、
前記遊技用価値返却操作手段の操作に応じて前記メインデータ記憶手段に記憶されている遊技用価値を返却させる返却制御を行う返却制御手段(CPU41aによる精算処理)と、
前記小役入賞が発生したときに、該小役入賞の種類に応じて定められた数の遊技用価値を付与する価値付与処理を行う価値付与処理手段(CPU41aによる払出処理)と、
前記特別入賞(ビッグボーナス入賞)が発生したときに、終了条件が成立するまでの期間にわたり遊技者にとって有利な特別遊技状態(ビッグボーナス)に制御する特別遊技状態制御手段(CPU41aによる遊技状態の移行制御)と、
前記ゲームが開始したときに、前記賭数設定手段による賭数の設定を禁止する賭数設定禁止手段(CPU41aによる賭数設定の禁止制御)と、
前記ゲームが開始したときに、前記遊技用価値返却手段による返却制御を禁止する返却制御禁止手段(CPU41aによるクレジットの精算の禁止制御)と、
前記可変表示装置の表示結果が導出された後、前記小役入賞に対応する表示結果以外の表示結果が導出されたときには、該表示結果が導出されたときにゲームの終了を判定し、前記小役入賞に対応する表示結果が導出されたときには、該小役入賞の発生に伴う前記価値付与処理が終了したときにゲームの終了を判定するゲーム終了判定手段(CPU41aによるゲームの終了判定制御、具体的には、ゲーム終了時処理の終了によりゲームの終了が判定される)と、
前記ゲーム終了判定手段がゲームの終了を判定したことを条件に、前記賭数設定禁止手段による賭数の設定の禁止を解除する賭数設定禁止解除手段(CPU41aによる賭数設定の禁止制御の解除)と、
前記ゲーム終了判定手段がゲームの終了を判定したことを条件に、前記返却制御禁止手段による返却制御の禁止を解除する返却制御禁止解除手段(CPU41aによるクレジットの精算の禁止制御の解除)と、
を含み、
前記賭数設定禁止解除手段は、前記特別遊技状態における終了条件が成立したゲームにおいて、前記ゲーム終了判定手段がゲームの終了を判定してから予め定められた時間(エンディング演出の演出待ち時間)が経過したときに前記賭数設定禁止手段による賭数の設定の禁止を解除し、
前記返却制御禁止解除手段は、前記特別遊技状態における終了条件が成立したゲームにおいて、前記ゲーム終了判定手段がゲームの終了を判定したときに、前記返却制御禁止手段による返却制御の禁止を解除する、
ことを特徴としている。
本発明のスロットマシンは、請求項3に記載のスロットマシンであって、
前記特別遊技状態(ビッグボーナス)における終了条件が成立したゲームにおいて、該特別遊技状態が終了した後前記賭数の設定が禁止される打止状態とするか否かを設定する打止設定手段(CPU41aによる打止機能の有効/無効の設定)を更に備え、
前記賭数設定禁止解除手段(CPU41aによる賭数設定の禁止制御の解除)は、前記特別遊技状態における終了条件が成立したゲームにおいて、前記打止状態とする旨が設定されていない場合には、前記ゲーム終了判定手段(CPU41aによるゲームの終了判定制御)がゲームの終了を判定してから前記予め定められた時間(エンディング演出の演出待ち時間)が経過したときに前記賭数設定禁止手段(CPU41aによる賭数設定の禁止制御)による賭数の設定の禁止を解除し、前記打止状態とする旨が設定されている場合には、前記ゲーム終了判定手段がゲームの終了を判定してから前記予め定められた時間が経過した後、所定の解除操作(リセット操作)がなされたときに前記賭数設定禁止手段による賭数の設定の禁止を解除し、
前記返却制御禁止解除手段(CPU41aによるクレジットの精算の禁止制御の解除)は、前記特別遊技状態における終了条件が成立したゲームにおいて、前記ゲーム終了判定手段がゲームの終了を判定したときに、前記返却制御禁止手段(CPU41aによるクレジットの精算の禁止制御)による返却制御の禁止を解除する、
ことを特徴としている。
本発明の請求項4に記載のスロットマシンは、請求項3に記載のスロットマシンであって、
前記特別遊技状態(ビッグボーナス)における終了条件が成立したゲームにおいて、前記ゲーム終了判定手段(CPU41aによるゲームの終了判定制御)がゲームの終了を判定してから予め定められた時間(エンディング演出の演出待ち時間)が経過するまでの期間に、特別遊技状態が終了した旨を示す終了演出(エンディング演出)を実行する終了演出実行手段(CPU91によるエンディング演出の実行制御)を更に備える、
ことを特徴としている。
本発明の請求項5に記載のスロットマシンは、
遊技用価値(メダル)を用いて1ゲームに対して所定数(1または3)の賭数を設定することによりゲームが開始可能となるとともに、各々が識別可能な複数種類の識別情報を変動表示可能な可変表示装置(リール2L、2C、2R)の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされたスロットマシン1であって、
遊技の制御を行うメイン制御手段(メイン制御部41)を備え、
前記メイン制御手段は、
前記可変表示装置の表示結果が導出される前に、前記遊技用価値の付与を伴う小役入賞(小役)及び遊技状態の移行を伴う特別入賞(特別役)を含む予め定められた複数種類の入賞を発生させることを許容するか否かを決定する事前決定手段(CPU41aによる内部抽選処理)と、
所定の設定操作手段(リセット/設定スイッチ36)の操作に基づいて、前記事前決定手段が入賞の発生を許容する旨を決定する割合(当選確率)が異なる複数種類の許容段階(設定値)のうちから、いずれかの許容段階を選択して設定する許容段階設定手段(CPU41aによる設定変更処理)と、
前記許容段階設定手段により設定された許容段階を示すデータ及び遊技者所有の遊技用価値(クレジット)を示すデータを含む前記メイン制御手段が動作を行うためのデータを読み出し及び書き込みが可能に記憶するメインデータ記憶手段(RAM41c)と、
前記メインデータ記憶手段に記憶されているデータが正常か否かを判定する記憶データ判定手段(CPU41aによるRAMパリティの判定及び破壊診断用データの判定)と、
前記記憶データ判定手段により前記メインデータ記憶手段に記憶されているデータが正常ではないと判定されたときに、ゲームの進行を不能化する不能化手段(CPU41aによるエラー処理)と、
前記不能化手段により前記ゲームの進行が不能化された状態(RAM異常エラーによるエラー状態)において、前記設定操作手段の操作に基づいて前記許容段階設定手段により前記許容段階が新たに設定されたこと(設定変更処理により新たに設定値が選択・設定されたこと)を条件に、前記ゲームの進行が不能化された状態を解除し、ゲームの進行を可能とする不能化解除手段(CPU41aによるゲーム制御処理への移行)と、
少なくとも前記メインデータ記憶手段に記憶されている遊技用価値を用いて賭数を設定する賭数設定手段(CPU41aによるBET処理)と、
前記メインデータ記憶手段に記憶されている遊技用価値を返却させる際に操作される遊技用価値返却操作手段(精算スイッチ10)と、
前記遊技用価値返却操作手段の操作に応じて前記メインデータ記憶手段に記憶されている遊技用価値を返却させる返却制御を行う返却制御手段(CPU41aによる精算処理)と、
前記小役入賞が発生したときに、該小役入賞の種類に応じて定められた数の遊技用価値を付与する価値付与処理を行う価値付与処理手段(CPU41aによる払出処理)と、
前記特別入賞(ビッグボーナス入賞)が発生したときに、終了条件が成立するまでの期間にわたり遊技者にとって有利な特別遊技状態(ビッグボーナス)に制御する特別遊技状態制御手段(CPU41aによる遊技状態の移行制御)と、
前記ゲームが開始したときに、前記賭数設定手段による賭数の設定を禁止する賭数設定禁止手段(CPU41aによる賭数設定の禁止制御)と、
前記ゲームが開始したときに、前記遊技用価値返却手段による返却制御を禁止する返却制御禁止手段(CPU41aによるクレジットの精算の禁止制御)と、
前記可変表示装置の表示結果が導出された後、前記小役入賞に対応する表示結果以外の表示結果が導出されたときには、該表示結果が導出されたときにゲームの終了を判定し、前記小役入賞に対応する表示結果が導出されたときには、該小役入賞の発生に伴う前記価値付与処理が終了したときにゲームの終了を判定するゲーム終了判定手段(CPU41aによるゲームの終了判定制御、具体的には、ゲーム終了時処理の終了によりゲームの終了が判定される)と、
前記ゲーム終了判定手段がゲームの終了を判定したことを条件に、前記賭数設定禁止手段による賭数の設定の禁止を解除する賭数設定禁止解除手段(CPU41aによる賭数設定の禁止制御の解除)と、
前記ゲーム終了判定手段がゲームの終了を判定したことを条件に、前記返却制御禁止手段による返却制御の禁止を解除する返却制御禁止解除手段(CPU41aによるクレジットの精算の禁止制御の解除)と、
を含み、
前記賭数設定禁止解除手段は、前記特別遊技状態における終了条件が成立したゲームにおいて、前記ゲーム終了判定手段がゲームの終了を判定した後、所定の解除操作(リセット操作)がなされたときに前記賭数設定禁止手段による賭数の設定の禁止を解除し、
前記返却制御禁止解除手段は、前記特別遊技状態における終了条件が成立したゲームにおいて、前記ゲーム終了判定手段がゲームの終了を判定したときに、前記返却制御禁止手段による返却制御の禁止を解除する、
ことを特徴としている。
本発明の請求項6に記載のスロットマシンは、請求項1〜5のいずれかに記載のスロットマシンであって、
前記事前決定手段(CPU41aによる内部抽選処理)は、入賞の発生を許容するか否かを決定する際に、前記メインデータ記憶手段(RAM41c)に記憶されている許容段階(設定値)を示すデータを読み出し、該読み出した許容段階を示すデータが前記許容段階設定手段(CPU41aによる設定変更処理)により設定可能な許容段階を示す適正なデータ(1〜6の範囲の値)であるか否かを判定する許容段階データ判定手段(CPU41aによる設定値の確認)を含み、
前記不能化手段(CPU41aによるエラー処理)は、前記許容段階データ判定手段により前記メインデータ記憶手段から読み出した許容段階を示すデータが適正なデータではないと判定されたときにも、ゲームの進行を不能化する、
ことを特徴としている。
本発明の請求項7に記載のスロットマシンは、請求項1〜6のいずれかに記載のスロットマシンであって、
前記記憶データ判定手段(CPU41aによるRAMパリティの判定及び破壊診断用データの判定)は、前記メイン制御手段(メイン制御部41)の起動時にのみ前記メインデータ記憶手段に記憶されているデータが正常か否かを判定する、
ことを特徴としている。
本発明の請求項8に記載のスロットマシンは、請求項1〜7のいずれかに記載のスロットマシンであって、
前記スロットマシン1で用いられる所定の電力(+25V)の状態を監視し、電力供給が断たれたことに関わる電断条件が成立しているとき(+18V以下となったとき)に電断信号(電圧低下信号)を出力する電断検出手段(電断検出回路48)を備え、
前記メイン制御手段(メイン制御部41)は、
前記メインデータ記憶手段(RAM41c)における記憶領域のデータを所定の演算方法(排他的論理和演算)にて計算するデータ演算手段(CPU41aによるRAMパリティの計算)と、
前記電断検出手段から出力された前記電断信号の入力を契機に、前記データ演算手段による計算結果を特定の値(0)とするための調整用データ(パリティ調整用データ)を算出し、該算出した調整用データを前記メインデータ記憶手段に格納する電断処理(電断割込処理)を実行する電断処理実行手段(CPU41a)と、
を含み、
前記記憶データ判定手段は、前記メイン制御手段の起動時に、前記データ演算手段による計算結果が前記特定の値か否かを判定し、該データ演算手段による計算結果が前記特定の値であると判定したときに、前記メインデータ記憶手段に記憶されているデータが正常であると判定し、該データ演算手段による計算結果が前記特定の値ではないと判定したときに、前記メインデータ記憶手段に記憶されているデータを正常ではないと判定する、
ことを特徴としている。
本発明の請求項9に記載のスロットマシンは、請求項1〜8のいずれかに記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、
前記メイン制御手段の起動時に、前記設定操作手段(リセット/設定スイッチ36)による前記許容段階(設定値)の設定操作が有効となる設定操作有効状態(設定変更モード)へ移行させるための移行操作手段(設定キースイッチ37)の操作がなされているか否かを判定する移行操作判定手段(CPU41aによる設定キースイッチ37のON/OFF判定)と、
前記メイン制御手段の起動時において、前記移行操作判定手段により前記移行操作手段の操作がなされていると判定されたことを条件に、前記設定操作有効状態へ移行させる設定操作有効状態移行手段(CPU41aによる設定変更処理への移行)と、
を含み、
前記初期化手段(CPU41aによるRAM41cの初期化)は、前記メイン制御手段の起動時において、前記移行操作判定手段により前記移行操作手段の操作がなされていると判定され、前記設定操作有効状態移行手段が前記設定操作有効状態に移行させることに伴って、前記メインデータ記憶手段(RAM41c)において前記メイン制御手段が使用中のデータが格納されている領域(スタック領域)を除く全ての領域を初期化し、
前記移行操作判定手段は、前記メイン制御手段の起動時において、前記記憶データ判定手段が前記メインデータ記憶手段に記憶されているデータが正常か否かを判定する前に、前記移行操作手段の操作がなされているか否かを判定し、
前記記憶データ判定手段は、前記移行操作判定手段により前記移行操作手段の操作がなされていないと判定されたときに、前記メインデータ記憶手段に記憶されているデータが正常か否かを判定する、
ことを特徴としている。
本発明の請求項10に記載のスロットマシンは、請求項1〜9のいずれかに記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、
前記事前決定手段(CPU41aによる内部抽選処理)により決定を行う前に、所定のタイミングで所定の範囲(0〜16383)内において更新される数値データを、ゲーム毎に判定用数値データ(内部抽選用の乱数)として判定領域に入力する数値データ入力手段(CPU41aによる乱数の取得)と、
前記複数種類の入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の範囲が特定可能となるように定められた範囲特定データ(判定値数の格納アドレス)を記憶する範囲特定データ記憶手段(役別テーブル(図51))と、
を含み、
前記範囲特定データ記憶手段は、前記範囲特定データとして、前記特別入賞及び前記小役入賞の双方の発生を同時に許容する旨を決定することとなる判定値の範囲を特定可能な重複範囲特定データ(ビッグボーナス+チェリー、ビッグボーナス+スイカの判定値数の格納アドレス)を記憶し、
前記事前決定手段は、前記範囲特定データ記憶手段に記憶された範囲特定データにより特定される判定値の範囲に、前記判定領域に入力された判定用数値データが含まれるか否かによって前記入賞の発生を許容する旨を示しているか否かを判定する入賞許容判定手段(役の当選判定)を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定する、
ことを特徴としている。
本発明の請求項11に記載のスロットマシンは、請求項10に記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、前記事前決定手段(CPU41aによる内部抽選処理)により前記特別入賞(特別役)の発生を許容する旨が決定され、該決定(特別役の当選フラグ)により発生が許容された特別入賞が発生しなかったときに、当該決定を次ゲーム以降に持ち越す決定持越手段(CPU41aによる当選フラグの持越)を更に含み、
前記許容判定手段(役の当選判定)は、前記決定持越手段により前記特別入賞の発生を許容する旨の決定が持ち越されている場合において、前記判定領域に入力された判定用数値データ(内部抽選用の乱数)が、前記範囲特定データ記憶手段(役別テーブル(図51))に記憶されている前記重複範囲特定データ(ビッグボーナス+チェリー、ビッグボーナス+スイカの判定値数の格納アドレス)により特定される判定値の範囲に含まれる場合に、前記小役入賞(チェリー、スイカ)のみの発生を許容する旨、または前記特別入賞の発生も前記小役入賞の発生も許容しない旨(ハズレ)を示していると判定する、
ことを特徴としている。
本発明の請求項12に記載のスロットマシンは、請求項10に記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、前記事前決定手段(CPU41aによる内部抽選処理)により前記特別入賞(特別役)の発生を許容する旨が決定され、該決定(特別役の当選フラグ)により発生が許容された特別入賞が発生しなかったときに、当該決定を次ゲーム以降に持ち越す決定持越手段(CPU41aによる当選フラグの持越)を更に含み、
前記範囲特定データ記憶手段(役別テーブル)は、
前記範囲特定データとして、前記特別入賞及び前記小役入賞(小役)の双方の発生を同時に許容する旨を決定することとなる判定値の範囲を特定可能な重複範囲特定データを記憶する第1の範囲特定データ記憶手段(例えば、小役及び特別役の双方が当選と判定される判定値数の格納領域のアドレスが記憶された役別テーブル)と、
前記範囲特定データとして、前記特別入賞を除く入賞の発生を許容する旨を決定することとなる判定値の範囲を特定可能な範囲特定データのみを記憶する第2の範囲特定データ記憶手段(例えば、小役または再遊技役が当選と判定される判定値数の格納領域のアドレスのみが記憶された役別テーブル)と、
を含み、
前記許容判定手段(役の当選判定)は、
前記決定持越手段により前記特別入賞の発生を許容する旨の決定が持ち越されていない場合(特別役の成立前)において、前記第1の範囲特定データ記憶手段に記憶された範囲特定データにより特定される判定値の範囲に、前記判定領域に入力された判定用数値データが含まれるか否かによって前記入賞の発生を許容する旨を示しているか否かを判定し、
前記決定持越手段により前記特別入賞の発生を許容する旨の決定が持ち越されている場合(特別役の成立後)において、前記第2の範囲特定データ記憶手段に記憶された範囲特定データにより特定される判定値の範囲に、前記判定領域に入力された判定用数値データが含まれるか否かによって前記入賞の発生を許容する旨を示しているか否かを判定する、
ことを特徴としている。
本発明の請求項13に記載のスロットマシンは、請求項1〜9のいずれかに記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、
前記事前決定手段(CPU41aによる内部抽選処理)により決定を行う前に、所定のタイミングで所定の範囲(0〜16383)内において更新される数値データを、ゲーム毎に判定用数値データ(内部抽選用の乱数)として判定領域に入力する数値データ入力手段(CPU41aによる乱数の取得)と、
前記小役入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の範囲が特定可能となるように定められた範囲特定データ(小役の判定値数の格納アドレス)を記憶する小役入賞用範囲特定データ記憶手段(小役及び再遊技役用の役別テーブル)と、
前記特別入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の範囲が特定可能となるように定められた範囲特定データ(特別役の判定値数の格納アドレス)を記憶する特別入賞用範囲特定データ記憶手段(特別役用の役別テーブル)と、
を含み、
前記事前決定手段が前記特別入賞の発生を許容する旨を決定することとなる判定値の範囲は、前記事前決定手段が前記小役入賞の発生を許容する旨を決定することとなる判定値の範囲と重複する判定値の範囲(ビッグボーナス−A、ビッグボーナス−Cの判定値の範囲)を含み、
前記事前決定手段は、
前記小役入賞用範囲特定データ記憶手段に記憶された範囲特定データにより特定される判定値の範囲に、前記判定領域に入力された判定用数値データが含まれるか否かによって前記小役入賞の発生を許容する旨を示しているか否かを判定する小役入賞許容判定手段(小役及び再遊技役の当選判定)と、
前記特別入賞用範囲特定データ記憶手段に記憶された範囲特定データにより特定される判定値の範囲に、前記小役入賞許容判定手段が判定に用いるのと同一の前記判定用数値データが含まれるか否かによって前記特別入賞の発生を許容する旨を示しているか否かを判定する特別入賞許容判定手段(特別役の当選判定)と、
を含み、
該事前決定手段は、
前記小役入賞許容判定手段及び前記特別入賞許容判定手段の双方によって入賞の発生を許容する旨を示しているか否かの判定を行い、
前記小役入賞許容判定手段及び前記特別入賞許容判定手段の双方が入賞の発生を許容する旨を示していると判定した場合に前記小役入賞及び前記特別入賞双方の発生を許容する旨を決定する、
ことを特徴としている。
本発明の請求項14に記載のスロットマシンは、請求項13に記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、前記事前決定手段(CPU41aによる内部抽選処理)により前記特別入賞(特別役)の発生を許容する旨が決定され、該決定(特別役の当選フラグ)により発生が許容された特別入賞が発生しなかったときに、当該決定を次ゲーム以降に持ち越す決定持越手段(CPU41aによる当選フラグの持越)を更に含み、
前記事前決定手段は、
前記決定持越手段により前記特別入賞の発生を許容する旨の決定が持ち越されていない場合(特別役の成立前)に、前記小役入賞許容判定手段(小役及び再遊技役の当選判定)及び前記特別入賞許容判定手段(特別役の当選判定)の双方によって入賞の発生を許容する旨を示しているか否かの判定を行い、
前記決定持越手段により前記特別入賞の発生を許容する旨の決定が持ち越されている場合(特別役の成立後)に、前記小役入賞許容判定手段のみによって入賞の発生を許容する旨を示しているか否かの判定を行う、
ことを特徴としている。
本発明の請求項15に記載のスロットマシンは、請求項13に記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、前記事前決定手段(CPU41aによる内部抽選処理)により前記特別入賞(特別役)の発生を許容する旨が決定され、該決定(特別役の当選フラグ)により発生が許容された特別入賞が発生しなかったときに、当該決定を次ゲーム以降に持ち越す決定持越手段(CPU41aによる当選フラグの持越)を更に含み、
前記事前決定手段は、
前記決定持越手段により前記特別入賞の発生を許容する旨の決定が持ち越されているか否かに関わらず、前記小役入賞許容判定手段(小役及び再遊技役の当選判定)及び前記特別入賞許容判定手段(特別役の当選判定)の双方によって入賞の発生を許容する旨を示しているか否かの判定を行い、
前記決定持越手段により前記特別入賞の発生を許容する旨の決定が持ち越されている場合(特別役の成立後)に、前記小役入賞許容判定手段及び前記特別入賞許容判定手段の双方が入賞の発生を許容する旨を示していると判定した場合に、前記小役入賞許容判定手段が発生を許容する旨を示していると判定した小役入賞のみの発生を許容する旨を決定する、
ことを特徴としている。
本発明の請求項16に記載のスロットマシンは、請求項1〜15のいずれかに記載のスロットマシンであって、
前記事前決定手段(CPU41aによる内部抽選処理)は、前記特別入賞(特別役)及び前記小役入賞(小役)双方の発生を同時に許容する旨を決定することが可能であり、前記特別入賞(ビッグボーナス)及び第1の小役入賞(チェリー)の発生を同時に許容する旨を決定するよりも高い確率で、前記特別入賞(ビッグボーナス)及び第2の小役入賞(スイカ)の発生を同時に許容する旨を決定する、
ことを特徴としている。
本発明の手段1に記載のスロットマシンは、請求項1〜16のいずれかに記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、
前記事前決定手段(CPU41aによる内部抽選処理)により決定を行う前に、所定のタイミングで所定の範囲(0〜16383)内において更新される数値データを、ゲーム毎に判定用数値データ(内部抽選用の乱数)として判定領域に入力する数値データ入力手段(CPU41aによる乱数の取得)と、
いずれかの入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数(判定値数)を示す判定値データ(判定値数の格納アドレス)を、前記複数種類の許容段階に共通して記憶する(例えば、チェリー、スイカ)とともに、前記許容段階に共通して判定値データが記憶されていない入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数を示す判定値データを、前記許容段階の種類に応じて個別に記憶する(例えば、ベル、レギュラーボーナス(1))判定値データ記憶手段(役別テーブル)と、
を含み、
前記事前決定手段は、前記許容段階設定手段により設定された許容段階に対応して前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段(役の当選判定)を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定する、
ことを特徴としている。
本発明の手段2に記載のスロットマシンは、手段1に記載のスロットマシンであって、
前記判定値データ記憶手段(役別テーブル)は、前記許容段階(設定値)の種類に応じて個別に記憶する判定値データ(判定値数の格納アドレス)として異なる判定値の数(判定値数)を示す異数判定値データ(ベルの判定値数の格納アドレス)と、前記許容段階の種類に応じて個別に記憶する判定値データとして同一の判定値の数を示す同数判定値データ(レギュラーボーナス(1)の判定値数の格納アドレス)とを、前記入賞の種類に応じて記憶する、
ことを特徴としている。
本発明の手段3に記載のスロットマシンは、請求項1〜16、手段1、手段2のいずれかに記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、
前記事前決定手段(CPU41aによる内部抽選処理)により決定を行う前に、所定のタイミングで所定の範囲(0〜16383)内において更新される数値データを、ゲーム毎に判定用数値データ(内部抽選用の乱数)として判定領域に入力する数値データ入力手段(CPU41aによる乱数の取得)と、
前記複数種類の入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数(判定値数)を示す判定値データ(判定値数の格納アドレス)を記憶する判定値データ記憶手段(役別テーブル)と、
を含み、
前記事前決定手段は、前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段(役の当選判定)を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定するとともに、
前記スロットマシン1は、
所定周波数のパルス信号を発生するパルス発生回路(パルス発生回路42a)と、
nビット(nは2以上の整数)配列のデータ信号を、前記パルス発生回路からパルス信号が入力されるごとに最下位ビットのレベルを第1レベルと第2レベルとで交互に反転するとともに、下位からm−1番目(mは2以上の整数:m≦n)のビットのレベルが第1レベルから第2レベルに反転されるごとに下位からm番目のビットのレベルを第1レベルと第2レベルとで交互に反転して出力するカウンタ回路(下位カウンタ42b、上位カウンタ42c)と、
遊技者の操作に起因する所定の抽出条件が成立することにより、前記カウンタ回路が出力しているnビット配列のデータ信号をラッチし、ラッチしたnビット配列のデータ信号をビット配列順を変えることなく出力するラッチ回路(サンプリング回路43)と、
前記判定領域とは異なる特定領域に、前記ラッチ回路が出力したnビット配列のデータ信号をビット配列順を変えることなくnビットの数値データとして入力する入力手段(CPU41aによる汎用レジスタ41GRへの乱数発生回路42から出力された16ビットのデータ信号の入力)と、
を更に備え、
前記数値データ入力手段は、前記特定領域に入力されたnビットの数値データのうちの特定のビットのデータ(上位8ビットのデータ)と、該数値データのうちの他のビットのデータ(下位8ビットのデータ)を入れ替えて、該入れ替えを行ったnビットの入替数値データを、前記判定用数値データとして前記判定領域に入力する、
ことを特徴としている。
本発明の手段4に記載のスロットマシンは、請求項1〜16、手段1〜3のいずれかに記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、
前記事前決定手段(CPU41aによる内部抽選処理)により決定を行う前に、所定のタイミングで所定の範囲(0〜16383)内において更新される数値データを、ゲーム毎に判定用数値データ(内部抽選用の乱数)として判定領域に入力する数値データ入力手段(CPU41aによる乱数の取得)と、
前記複数種類の入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数(判定値数)を示す判定値データ(判定値数の格納アドレス)を記憶する判定値データ記憶手段(役別テーブル)と、
を含み、
前記事前決定手段は、前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段(役の当選判定)を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定するとともに、
前記スロットマシン1は、
所定周波数のパルス信号を発生するパルス発生回路(パルス発生回路42a)と、
nビット(nは2以上の整数)配列のデータ信号を、前記パルス発生回路からパルス信号が入力されるごとに最下位ビットのレベルを第1レベルと第2レベルとで交互に反転するとともに、下位からm−1番目(mは2以上の整数:m≦n)のビットのレベルが第1レベルから第2レベルに反転されるごとに下位からm番目のビットのレベルを第1レベルと第2レベルとで交互に反転して出力するカウンタ回路(下位カウンタ42b、上位カウンタ42c)と、
遊技者の操作に起因する所定の抽出条件が成立することにより、前記カウンタ回路が出力しているnビット配列のデータ信号をラッチし、ラッチしたnビット配列のデータ信号をビット配列順を変えることなく出力するラッチ回路(サンプリング回路43)と、
前記判定領域とは異なる特定領域に、前記ラッチ回路が出力したnビット配列のデータ信号をビット配列順を変えることなくnビットの第1の数値データとして入力する入力手段(CPU41aによる汎用レジスタ41GRへの乱数発生回路42から出力された16ビットのデータ信号の入力)と、
所定のタイミングで第2の数値データを更新する数値更新手段(リフレッシュレジスタ41R)と、
前記所定の抽出条件が成立することにより、前記数値更新手段が更新する第2の数値データを抽出する数値抽出手段(CPU41aによるリフレッシュレジスタ41Rの値の抽出)と、
上位kビット(kは自然数:k<n)と下位jビット(j=n−k)の第1の数値データにおける上位kビットに対して前記数値抽出手段が抽出した第2の数値データを用いて所定の演算を行う演算手段(CPU41aによる汎用レジスタ41GRの上位バイトの値へのリフレッシュレジスタ41Rから抽出した加工用の乱数の加算)と、
を更に備え、
前記数値データ入力手段は、前記演算手段による演算後の上位kビットと前記下位jビ
ットからなる演算結果数値データを、前記判定用数値データとして前記判定領域に入力する、
ことを特徴としている。
本発明の手段5に記載のスロットマシンは、請求項1〜16、手段1〜4のいずれかに記載のスロットマシンであって、
前記メイン制御手段(メイン制御部41)は、
前記事前決定手段(CPU41aによる内部抽選処理)により決定を行う前に、所定のタイミングで所定の範囲(0〜16383)内において更新される数値データを、ゲーム毎に判定用数値データ(内部抽選用の乱数)として判定領域に入力する数値データ入力手段(CPU41aによる乱数の取得)と、
前記複数種類の入賞について、前記判定領域に入力された判定用数値データに対して前記事前決定手段が発生を許容する旨を決定することとなる判定値の数(判定値数)を示す判定値データ(判定値数の格納アドレス)を記憶する判定値データ記憶手段(役別テーブル)と、
を含み、
前記事前決定手段は、前記判定値データ記憶手段に記憶された判定値データに応じて、前記判定領域に入力された判定用数値データが前記入賞の発生を許容する旨を示しているか否かを判定する許容判定手段(役の当選判定)を含み、該許容判定手段により発生を許容する旨を示していると判定された入賞の発生を許容する旨を決定するとともに、
前記スロットマシン1は、
所定周波数のパルス信号を発生するパルス発生回路(パルス発生回路42a)と、
nビット(nは2以上の整数)配列のデータ信号を、前記パルス発生回路からパルス信号が入力されるごとに最下位ビットのレベルを第1レベルと第2レベルとで交互に反転するとともに、下位からm−1番目(mは2以上の整数:m≦n)のビットのレベルが第1レベルから第2レベルに反転されるごとに下位からm番目のビットのレベルを第1レベルと第2レベルとで交互に反転して出力するカウンタ回路(下位カウンタ42b、上位カウンタ42c)と、
遊技者の操作に起因する所定の抽出条件が成立することにより、前記カウンタ回路が出力しているnビット配列のデータ信号をラッチし、ラッチしたnビット配列のデータ信号をビット配列順を変えることなく出力するラッチ回路(サンプリング回路43)と、
前記判定領域とは異なる特定領域に、前記ラッチ回路が出力したnビット配列のデータ信号をビット配列順を変えることなくnビットの第1の数値データとして入力する入力手段(CPU41aによる汎用レジスタ41GRへの乱数発生回路42から出力された16ビットのデータ信号の入力)と、
所定のタイミングで第2の数値データを更新する第1の数値更新手段(リフレッシュレジスタ41R)と、
所定のタイミングで前記第2の数値データとは異なる第3の数値データを更新する第2の数値更新手段(リフレッシュレジスタ41R)と、
予め定められた抽出条件が成立することにより、前記第1の数値更新手段から第2の数値データを抽出する第1の数値抽出手段(CPU41aによるリフレッシュレジスタ41Rの値の抽出)と、
所定の抽出条件が成立することにより、前記第2の数値更新手段から第3の数値データ
を抽出する第2の数値抽出手段(CPU41aによるリフレッシュレジスタ41Rの値の抽出)と、
上位kビット(kは自然数:k<n)と下位jビット(j=n−k)の第1の数値データにおける上位kビットに対して前記第1の数値抽出手段が抽出した第2の数値データを用いて所定の演算を行い、下位jビットに対して前記第2の数値抽出手段が抽出した第3の数値データを用いて所定の演算を行う演算手段(CPU41aによる汎用レジスタ41GRの上位バイト及び下位バイトの値へのリフレッシュレジスタ41Rから抽出した加工用の乱数の加算)と、
を更に備え、
前記数値データ入力手段は、前記演算手段による演算後の上位kビットと該演算後の下位jビットからなる演算結果数値データを、前記判定用数値データとして前記判定領域に入力する、
ことを特徴としている。