本発明が適用されたスロットマシンの実施例1を図面を用いて説明すると、本実施例のスロットマシン1は、前面が開口する筐体1aと、この筐体1aの側端に回動自在に枢支された前面扉1bと、から構成されている。
本実施例のスロットマシン1の筐体1aの内部には、図2に示すように、外周に複数種の図柄が配列されたリール2L、2C、2R(以下、左リール、中リール、右リール)が水平方向に並設されており、図1に示すように、これらリール2L、2C、2Rに配列された図柄のうち連続する3つの図柄が前面扉1bに設けられた透視窓3から見えるように配置されている。
リール2L、2C、2Rの外周部には、図3に示すように、それぞれ「黒7」、「網7(図中網掛け7)」、「白7」、「BAR」、「リプレイ」、「スイカ」、「黒チェリー」、「白チェリー」、「ベル」、「オレンジ」といった互いに識別可能な複数種類の図柄が所定の順序で、それぞれ21個ずつ描かれている。リール2L、2C、2Rの外周部に描かれた図柄は、透視窓3において各々上中下三段に表示される。
各リール2L、2C、2Rは、各々対応して設けられリールモータ32L、32C、32R(図4参照)によって回転させることで、各リール2L、2C、2Rの図柄が透視窓3に連続的に変化しつつ表示されるとともに、各リール2L、2C、2Rの回転を停止させることで、透視窓3に3つの連続する図柄が表示結果として導出表示されるようになっている。
リール2L、2C、2Rの内側には、リール2L、2C、2Rそれぞれに対して、基準位置を検出するリールセンサ33L、33C、33Rと、リール2L、2C、2Rを背面から照射するリールLED55と、が設けられている。また、リールLED55は、リール2L、2C、2Rの連続する3つの図柄に対応する12のLEDからなり、各図柄をそれぞれ独立して照射可能とされている。
前面扉1bの各リール2L、2C、2Rの手前側(遊技者側)の位置には、液晶表示器51(図1参照)の表示領域51aが配置されている。液晶表示器51は、液晶素子に対して電圧が印加されていない状態で、透過性を有するノーマリーホワイトタイプの液晶パネルを有しており、表示領域51aの透視窓3に対応する透過領域51b及び透視窓3を介して遊技者側から各リール2L、2C、2Rが視認できるようになっている。また、表示領域51aの透過領域51bを除く領域の裏面には、背後から表示領域51aを照射するバックライト(図示略)が設けられているとともに、さらにその裏面には、内部を隠蔽する隠蔽部材(図示略)が設けられている。
前面扉1bには、メダルを投入可能なメダル投入部4、メダルが払い出されるメダル払出口9、クレジット(遊技者所有の遊技用価値として記憶されているメダル数)を用いてメダル1枚分の賭数を設定する際に操作される1枚BETスイッチ5、クレジットを用いて、その範囲内において遊技状態に応じて定められた規定数の賭数のうち最大の賭数(本実施例では遊技状態がRB(BB)の場合には2、通常遊技状態では3)を設定する際に操作されるMAXBETスイッチ6、クレジットとして記憶されているメダル及び賭数の設定に用いたメダルを精算する(クレジット及び賭数の設定に用いた分のメダルを返却させる)際に操作される精算スイッチ10、ゲームを開始する際に操作されるスタートスイッチ7、リール2L、2C、2Rの回転を各々停止する際に操作されるストップスイッチ8L、8C、8R、が遊技者により操作可能にそれぞれ設けられている。
また、前面扉1bには、クレジットとして記憶されているメダル枚数が表示されるクレジット表示器11、後述するBB中のメダルの獲得枚数やエラー発生時にその内容を示すエラーコード等が表示される遊技補助表示器12、入賞の発生により払い出されたメダル枚数が表示されるペイアウト表示器13が設けられている。
また、前面扉1bには、賭数が1設定されている旨を点灯により報知する1BETLED14、賭数が2設定されている旨を点灯により報知する2BETLED15、賭数が3設定されている旨を点灯により報知する3BETLED16、メダルの投入が可能な状態を点灯により報知する投入要求LED17、スタートスイッチ7の操作によるゲームのスタート操作が有効である旨を点灯により報知するスタート有効LED18、ウェイト(前回のゲーム開始から一定期間経過していないためにリールの回転開始を待機している状態)中である旨を点灯により報知するウェイト中LED19、後述するリプレイゲーム中である旨を点灯により報知するリプレイ中LED20が設けられている。
MAXBETスイッチ6の内部には、1枚BETスイッチ5及びMAXBETスイッチ6の操作による賭数の設定操作が有効である旨を点灯により報知するBETスイッチ有効LED21(図4参照)が設けられており、ストップスイッチ8L、8C、8Rの内部には、該当するストップスイッチ8L、8C、8Rによるリールの停止操作が有効である旨を点灯により報知する左、中、右停止有効LED22L、22C、22R(図4参照)がそれぞれ設けられている。
前面扉1bの内側には、所定のキー操作により後述するエラー状態及び後述する打止状態を解除するためのリセット操作を検出するリセットスイッチ23、後述する設定値の変更中や設定値の確認中にその時点の設定値が表示される設定値表示器24、メダル投入部4から投入されたメダルの流路を、筐体1a内部に設けられた後述のホッパータンク34a(図2参照)側またはメダル払出口9側のいずれか一方に選択的に切り替えるための流路切替ソレノイド30、メダル投入部4から投入され、ホッパータンク34a側に流下したメダルを検出する投入メダルセンサ31を有するメダルセレクタ(図示略)、前面扉1bの開放状態を検出するドア開放検出スイッチ25(図4参照)が設けられている。
筐体1a内部には、図2に示すように、前述したリール2L、2C、2R、リールモータ32L、32C、32R、各リール2L、2C、2Rのリール基準位置をそれぞれ検出可能なリールセンサ33L、33C、33R(図4参照)からなるリールユニット2、外部出力信号を出力するための外部出力基板1000、メダル投入部4から投入されたメダルを貯留するホッパータンク34a、ホッパータンク34aに貯留されたメダルをメダル払出口9より払い出すためのホッパーモータ34b、ホッパーモータ34bの駆動により払い出されたメダルを検出する払出センサ34cからなるホッパーユニット34、電源ボックス100が設けられている。
ホッパーユニット34の側部には、ホッパータンク34aから溢れたメダルが貯留されるオーバーフロータンク35が設けられている。オーバーフロータンク35の内部には、貯留された所定量のメダルを検出可能な高さに設けられた左右に離間する一対の導電部材からなる満タンセンサ35aが設けられており、導電部材がオーバーフロータンク35内に貯留されたメダルを介して接触することにより導電したときに内部に貯留されたメダル貯留量が所定量以上となったこと、すなわちオーバーフロータンクが満タン状態となったことを検出できるようになっている。
電源ボックス100の前面には、後述のBB終了時に打止状態(リセット操作がなされるまでゲームの進行が規制される状態)に制御する打止機能の有効/無効を選択するための打止スイッチ36a、後述のBB終了時に自動精算処理(クレジットとして記憶されているメダルを遊技者の操作によらず精算(返却)する処理)に制御する自動精算機能の有効/無効を選択するための自動精算スイッチ36b、設定変更状態または設定確認状態に切り替えるための設定キースイッチ37、通常時においてはエラー状態や打止状態を解除するためのリセットスイッチとして機能し、設定変更状態においては後述する内部抽選の当選確率(出玉率)の設定値を変更するための設定スイッチとして機能するリセット/設定スイッチ38、電源をON/OFFする際に操作される電源スイッチ39が設けられている。
本実施例のスロットマシン1においてゲームを行う場合には、まず、メダルをメダル投入部4から投入するか、あるいはクレジットを使用して賭数を設定する。クレジットを使用するには1枚BETスイッチ5またはMAXBETスイッチ6を操作すれば良い。遊技状態に応じて定められた規定数の賭数が設定されると、入賞ラインL1〜L5(図1参照)が有効となり、スタートスイッチ7の操作が有効な状態、すなわち、ゲームが開始可能な状態となる。本実施例では、規定数の賭数として遊技状態がRB(BB)では2枚、通常遊技状態では3枚が定められている。尚、遊技状態に対応する規定数のうち最大数を超えてメダルが投入された場合には、その分はクレジットに加算される。
入賞ラインとは、各リール2L、2C、2Rの透視窓3に表示された図柄の組合せが入賞図柄の組合せであるかを判定するために設定されるラインである。本実施例では、図1に示すように、各リール2L、2C、2Rの中段に並んだ図柄に跨って設定された入賞ラインL1、各リール2L、2C、2Rの上段に並んだ図柄に跨って設定された入賞ラインL2、各リール2L、2C、2Rの下段に並んだ図柄に跨って設定された入賞ラインL3、リール2Lの上段、リール2Cの中段、リール2Rの下段、すなわち右下がりに並んだ図柄に跨って設定された入賞ラインL4、リール2Lの下段、リール2Cの中段、リール2Rの上段、すなわち右上がりに並んだ図柄に跨って設定された入賞ラインL5の5種類が入賞ラインとして定められている。
ゲームが開始可能な状態でスタートスイッチ7を操作すると、各リール2L、2C、2Rが回転し、各リール2L、2C、2Rの図柄が連続的に変動する。この状態でいずれかのストップスイッチ8L、8C、8Rを操作すると、対応するリール2L、2C、2Rの回転が停止し、透視窓3に表示結果が導出表示される。
そして全てのリール2L、2C、2Rが停止されることで1ゲームが終了し、有効化されたいずれかの入賞ラインL1〜L5上に予め定められた図柄の組合せ(以下、役とも呼ぶ)が各リール2L、2C、2Rの表示結果として停止した場合には入賞が発生し、その入賞に応じて定められた枚数のメダルが遊技者に対して付与され、クレジットに加算される。また、クレジットが上限数(本実施例では50)に達した場合には、メダルが直接メダル払出口9(図1参照)から払い出されるようになっている。尚、有効化された複数の入賞ライン上にメダルの払出を伴う図柄の組合せが揃った場合には、有効化された入賞ラインに揃った図柄の組合せそれぞれに対して定められた払出枚数を合計し、合計した枚数のメダルが遊技者に対して付与されることとなる。ただし、1ゲームで付与されるメダルの払出枚数には、上限(本実施例では15枚)が定められており、合計した払出枚数が上限を超える場合には、上限枚数のメダルが付与されることとなる。また、有効化されたいずれかの入賞ラインL1〜L5上に、遊技状態の移行を伴う図柄の組合せが各リール2L、2C、2Rの表示結果として停止した場合には図柄の組合せに応じた遊技状態に移行するようになっている。
図4は、スロットマシン1の構成を示すブロック図である。スロットマシン1には、図4に示すように、遊技制御基板40、演出制御基板90、電源基板101が設けられており、遊技制御基板40によって遊技状態が制御され、演出制御基板90によって遊技状態に応じた演出が制御され、電源基板101によってスロットマシン1を構成する電気部品の駆動電源が生成され、各部に供給される。
電源基板101には、外部からAC100Vの電源が供給されるとともに、このAC100Vの電源からスロットマシン1を構成する電気部品の駆動に必要な直流電圧が生成され、遊技制御基板40及び遊技制御基板40を介して接続された演出制御基板90に供給されるようになっている。
また、電源基板101には、前述したホッパーモータ34b、払出センサ34c、満タンセンサ35a、打止スイッチ36a、自動精算スイッチ36b、設定キースイッチ37、リセット/設定スイッチ38、電源スイッチ39が接続されている。
遊技制御基板40には、前述した1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R、精算スイッチ10、リセットスイッチ23、投入メダルセンサ31、ドア開放検出スイッチ25、リールセンサ33L、33C、33Rが接続されているとともに、電源基板101を介して前述した払出センサ34c、満タンセンサ35a、打止スイッチ36a、自動精算スイッチ36b、設定キースイッチ37、リセット/設定スイッチ38が接続されており、これら接続されたスイッチ類の検出信号が入力されるようになっている。
また、遊技制御基板40には、前述したクレジット表示器11、遊技補助表示器12、ペイアウト表示器13、1〜3BETLED14〜16、投入要求LED17、スタート有効LED18、ウェイト中LED19、リプレイ中LED20、BETスイッチ有効LED21、左、中、右停止有効LED22L、22C、22R、設定値表示器24、流路切替ソレノイド30、リールモータ32L、32C、32Rが接続されているとともに、電源基板101を介して前述したホッパーモータ34bが接続されており、これら電気部品は、遊技制御基板40に搭載された後述のメイン制御部41の制御に基づいて駆動されるようになっている。
遊技制御基板40には、メインCPU41a、ROM41b、RAM41c、I/Oポート41dを備えたマイクロコンピュータからなり、遊技の制御を行うメイン制御部41、所定範囲(本実施例では0〜65535)の乱数を生成する乱数回路42、一定周波数のクロック信号を乱数回路42に供給するパルス発振器43、遊技制御基板40に直接または電源基板101を介して接続されたスイッチ類から入力された検出信号を検出するスイッチ検出回路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は、信号入力端子を備えており、遊技制御基板40に接続された各種スイッチ類の検出状態がこれら信号入力端子を介して入力ポートに入力される。これら信号入力端子の入力状態は、メインCPU41aにより監視されており、メインCPU41aは、信号入力端子の入力状態、すなわち各種スイッチ類の検出状態に応じて段階的に移行する基本処理を実行する。
また、メインCPU41aは、前述のように割込機能を備えており、割込の発生により基本処理に割り込んで割込処理を実行できるようになっている。本実施例では、割込1〜4の4種類の割込を実行可能であり、各割込毎にカウンタモード(信号入力端子とは別個に設けられたトリガー端子からの信号入力に応じて外部割込を発生させる割込モード)とタイマモード(メインCPU41aのクロック入力数に応じて内部割込を発生させる割込モード)のいずれかを選択して設定できるようになっている。
本実施例では、割込1〜4のうち、割込2がカウンタモードに設定され、割込3がタイマモードに設定され、割込1、4は未使用とされている。トリガー端子は、前述した電断検出回路48と接続されており、メインCPU41aは電断検出回路48から出力された電圧低下信号の入力に応じて割込2を発生させて後述する電断割込処理(メイン)を実行する。また、メインCPU41aは、クロック入力数が一定数に到達する毎、すなわち一定時間間隔(本実施例では、約0.56ms)毎に割込3を発生させて後述するタイマ割込処理(メイン)を実行する。また、割込1、4は、未使用に設定されているが、ノイズ等によって割込1、4が発生することがあり得る。このため、メインCPU41aは、割込1、4が発生した場合に、もとの処理に即時復帰させる未使用割込処理を実行するようになっている。
また、メインCPU41aは、割込1〜4のいずれかの割込の発生に基づく割込処理の実行中に他の割込を禁止するように設定されているとともに、複数の割込が同時に発生した場合には、割込2、3、1、4の順番で優先して実行する割込が設定されている。すなわち割込2とその他の割込が同時に発生した場合には、割込2を優先して実行し、割込3と割込1または4が同時に発生した場合には、割込3を優先して実行するようになっている。
また、メインCPU41aは、割込1〜4のいずれかの割込の発生に基づく割込処理の開始時に、レジスタに格納されている使用中のデータをRAM41cに設けられた後述のスタック領域に一時的に退避させるとともに、当該割込処理の終了時にスタック領域に退避させたデータをレジスタに復帰させるようになっている。
また、メイン制御部41には、停電時においてもバックアップ電源が供給されており、バックアップ電源が供給されている間は、RAM41cに記憶されているデータが保持されるようになっている。
メインCPU41aは、基本処理として遊技制御基板40に接続された各種スイッチ類の検出状態が変化するまでは制御状態に応じた処理を繰り返しループし、各種スイッチ類の検出状態の変化に応じて段階的に移行する処理を実行する。また、メインCPU41aは、前述のように割込機能を備えており、割込の発生により基本処理に割り込んで割込処理を実行できるようになっており、電断検出回路48から出力された電圧低下信号の入力に応じて電断割込処理(メイン)を実行し、一定時間間隔(本実施例では、約0.56ms)毎にタイマ割込処理(メイン)を実行する。尚、タイマ割込処理(メイン)の実行間隔は、基本処理において制御状態に応じて繰り返す処理が一巡する時間とタイマ割込処理(メイン)の実行時間とを合わせた時間よりも長い時間に設定されており、今回と次回のタイマ割込処理(メイン)との間で必ず制御状態に応じて繰り返す処理が最低でも一巡することとなる。
メインCPU41aは、I/Oポート41dを介して演出制御基板90に、各種のコマンドを送信する。遊技制御基板40から演出制御基板90へ送信されるコマンドは一方向のみで送られ、演出制御基板90から遊技制御基板40へ向けてコマンドが送られることはない。遊技制御基板40から演出制御基板90へ送信されるコマンドの伝送ラインは、ストローブ(INT)信号ライン、データ伝送ライン、グラウンドラインから構成されているとともに、演出中継基板80を介して接続されており、遊技制御基板40と演出制御基板90とが直接接続されない構成とされている。
図5に示すように、乱数回路42は、カウンタ回路42aとラッチ回路42bから主に構成される。カウンタ回路42aは、パルス発振器43が出力するクロック信号を入力し、クロック信号の立ち上がりまたは立ち下がりで、カウント値を1増やす。カウンタ回路42aは、16ビットカウンタである。よって、カウンタ回路42aの出力(すなわち、カウント値)は、16本の信号線で出力される。カウンタ回路42aの出力は、ラッチ回路42bに入力されている。カウンタ回路42aのカウント値は、0〜65535のいずれかであり、値が1ずつ増えるようになっており、65535までカウントすると0に戻る。
尚、パルス発振器43が出力するクロック信号の発振周波数は任意であるが、カウンタ回路42aのカウント値は、メインCPU41aが内部抽選用の乱数を生成するために用いられるので、クロック信号の発振周波数はメインCPU41aの動作周波数とは異なる周波数であり、かつ、クロック信号の発振周波数はメインCPU41aの動作周波数の整数倍ではないことが好ましい(例えば、メインCPU41aの動作周波数を15.872MHz、クロック信号の発振周波数20MHz)。後述するように、メインCPU41aは、定期的(例えば、約2.24ms毎)に値が更新されるソフトウェアカウンタのカウント値とカウンタ回路42aのカウント値とについて演算を行って内部抽選用の乱数を生成するので、ソフトウェアカウンタのカウント値の更新周期と、カウンタ回路42aの更新周期とが整数倍の関係にならないことが、乱数を生成する上で好ましいからである。さらに、クロック信号の発振周波数とメインCPU41aの動作周波数とは、一方が他方で割り切られない数の周波数であることがより好ましい。
ラッチ回路42bにはスタートスイッチ7の検出信号がラッチ信号として入力されるようになっており、ラッチ回路42bは、スタートスイッチ7の操作を検出したときに、すなわちゲームの開始操作があったときに、カウンタ回路42aのカウント値をバッファにラッチすることで、メインCPU41aがスタートスイッチ7の検出に応じてバッファにラッチされたカウンタ回路42aのカウント値を取得できるようになっている。
尚、乱数回路42は、ハードウェアにて乱数を生成する回路であり、以下では、乱数回路42により生成された乱数をハード乱数とも呼ぶ。
本実施例では、カウンタ回路42aの出力の配線(16本とする。)を、そのままラッチ回路42bに接続するが、配線をずらして接続するようにしても良い。尚、「そのまま接続する」とは、カウンタ回路42aのビットn(n:0〜15のそれぞれ)の配線をラッチ回路42bのビットnの入力に接続することである。つまり、カウンタ回路42aが出力するカウント値と同じ値がラッチ回路42bにラッチされるように配線することである。「配線をずらして接続する」とは、カウンタ回路42aからの16本の配線のうち、ビットi(i:0〜15のいずれか)の配線が、ラッチ回路42bのビットj(j:0〜15のいずれか)に接続されることである(i≠j)。尚、ずらして接続される配線は2本以上であっても良い。また、ラッチ回路42bの出力はメイン制御部41において入力ポートを介してメインCPU41aに入力されるが、カウンタ回路42aとラッチ回路42bとの間の配線をずらすのではなく、ラッチ回路42bと入力ポートとの間の配線をずらして接続するようにしても良い。いずれの場合でも、カウンタ回路42aが出力するカウント値とメインCPU41aに入力される値とは同じにならず、かつ、1ずつ歩進するのではなくランダムに値が変化していくようになり、外部から特定値のタイミングを狙うことがより困難になる。
演出制御基板90には、スロットマシン1の前面扉1bに配置された液晶表示器51(図1参照)、演出効果LED52、スピーカ53、54、前述したリールLED55等の演出装置が接続されており、これら演出装置は、演出制御基板90に搭載された後述のサブ制御部91による制御に基づいて駆動されるようになっている。
尚、本実施例では、演出制御基板90に搭載されたサブ制御部91により、液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55等の演出装置の出力制御が行われる構成であるが、サブ制御部91とは別に演出装置の出力制御を直接的に行う出力制御部を演出制御基板90または他の基板に搭載し、サブ制御部91がメイン制御部41からのコマンドに基づいて演出装置の出力パターンを決定し、サブ制御部91が決定した出力パターンに基づいて出力制御部が演出装置の出力制御を行う構成としても良く、このような構成では、サブ制御部91及び出力制御部の双方によって演出装置の出力制御が行われることとなる。
また、本実施例では、演出装置として液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55を例示しているが、演出装置は、これらに限られず、例えば、機械的に駆動する表示装置や機械的に駆動する役モノなどを演出装置として適用しても良い。
演出制御基板90には、メイン制御部41と同様にサブCPU91a、ROM91b、RAM91c、I/Oポート91dを備えたマイクロコンピュータにて構成され、演出の制御を行うサブ制御部91、演出制御基板90に接続された液晶表示器51の表示制御を行う表示制御回路92、演出効果LED52、リールLED55の駆動制御を行うLED駆動回路93、スピーカ53、54からの音声出力制御を行う音声出力回路94、電源投入時またはサブCPU91aからの初期化命令が一定時間入力されないときにサブCPU91aにリセット信号を与えるリセット回路95、日付情報及び時刻情報を含む時間情報を出力する時計装置97、スロットマシン1に供給される電源電圧を監視し、電圧低下を検出したときに、その旨を示す電圧低下信号をサブCPU91aに対して出力する電断検出回路98、その他の回路等、が搭載されており、サブCPU91aは、遊技制御基板40から送信されるコマンドを受けて、演出を行うための各種の制御を行うとともに、演出制御基板90に搭載された制御回路の各部を直接的または間接的に制御する。
サブCPU91aは、メインCPU41aと同様に、割込機能(割込禁止機能を含む)を備える。サブ制御部91の割込端子の1つは、コマンド伝送ラインのうち、メイン制御部41がコマンドを送信する際に出力するストローブ(INT)信号線に接続されており、サブCPU91aは、ストローブ信号の入力に基づいて割込を発生させて、メイン制御部41からのコマンドを取得し、バッファに格納するコマンド受信割込処理を実行する。また、サブCPU91aは、クロック入力数が一定数に到達する毎、すなわち一定間隔毎に割込を発生させて後述するタイマ割込処理(サブ)を実行する。また、サブ制御部91の割込端子の1つは、電断検出回路98と接続されており、サブCPU91aは、電断検出回路98から出力された電圧低下信号の入力に応じて電断割込処理(サブ)を実行する。また、サブCPU91aにおいても未使用の割込が発生した場合には、もとの処理に即時復帰させる未使用割込処理を実行するようになっている。
また、サブCPU91aは、メインCPU41aとは異なり、ストローブ信号(INT)の入力に基づいて割込が発生した場合には、タイマ割込処理(サブ)の実行中であっても、当該処理に割り込んでコマンド受信割込処理を実行し、タイマ割込処理(サブ)の契機となる割込が同時に発生してもコマンド受信割込処理を最優先で実行するようになっている。尚、電断割込処理(サブ)の実行中には、コマンド受信割込処理も禁止されるが、電断割込処理(サブ)の契機となる割込が同時に発生した場合にはコマンド受信割込処理を優先して実行する
また、サブ制御部91にも、停電時においてバックアップ電源が供給されており、バックアップ電源が供給されている間は、RAM91cに記憶されているデータが保持されるようになっている。
本実施例のスロットマシン1は、設定値に応じてメダルの払出率が変わるものである。詳しくは、後述する内部抽選において設定値に応じた当選確率を用いることにより、メダルの払出率が変わるようになっている。設定値は1〜6の6段階からなり、6が最も払出率が高く、243、2、1の順に値が小さくなるほど払出率が低くなる。すなわち設定値として6が設定されている場合には、遊技者にとって最も有利度が高く、243、2、1の順に値が小さくなるほど有利度が段階的に低くなる。
設定値を変更するためには、設定キースイッチ37をON状態としてからスロットマシン1の電源をONする必要がある。設定キースイッチ37をON状態として電源をONすると、設定値表示器24にRAM41cから読み出された設定値が表示値として表示され、リセット/設定スイッチ38の操作による設定値の変更操作が可能な設定変更状態に移行する。設定変更状態において、リセット/設定スイッチ38が操作されると、設定値表示器24に表示された表示値が1ずつ更新されていく(設定6からさらに操作されたときは、設定1に戻る)。そして、スタートスイッチ7が操作されると表示値を設定値として確定する。そして、設定キースイッチ37がOFFされると、確定した表示値(設定値)がメイン制御部41のRAM41cに格納され、遊技の進行が可能な状態に移行する。
また、設定値を確認するためには、ゲーム終了後、賭数が設定されていない状態で設定キースイッチ37をON状態とすれば良い。このような状況で設定キースイッチ37をON状態とすると、設定値表示器24にRAM41cから読み出された設定値が表示されることで設定値を確認可能な設定確認状態に移行する。設定確認状態においては、ゲームの進行が不能であり、設定キースイッチ37をOFF状態とすることで、設定確認状態が終了し、ゲームの進行が可能な状態に復帰することとなる。
本実施例のスロットマシン1においては、メインCPU41aが電断検出回路48からの電圧低下信号を検出した際に、電断割込処理(メイン)を実行する。電断割込処理(メイン)では、レジスタを後述するRAM41cのスタックに退避し、RAM41cにいずれかのビットが1となる破壊診断用データ(本実施例では、5AH)、すなわち0以外の特定のデータを格納するとともに、RAM41cの全ての領域に格納されたデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、RAM41cに格納する処理を行うようになっている。尚、RAMパリティとはRAM41cの該当する領域(本実施例では、全ての領域)の各ビットに格納されている値の排他的論理和として算出される値である。このため、RAM41cの全ての領域に格納されたデータに基づくRAMパリティが0であれば、RAMパリティ調整用データは0となり、RAM41cの全ての領域に格納されたデータに基づくRAMパリティが1であれば、RAMパリティ調整用データは1となる。
そして、メインCPU41aは、その起動時においてRAM41cの全ての領域に格納されたデータに基づいてRAMパリティを計算するとともに、破壊診断用データの値を確認し、RAMパリティが0であり、かつ破壊診断用データの値も正しいことを条件に、RAM41cに記憶されているデータに基づいてメインCPU41aの処理状態を電断前の状態に復帰させるが、RAMパリティが0でない場合(1の場合)や破壊診断用データの値が正しくない場合には、RAM異常と判定し、RAM異常エラーコードをレジスタにセットしてRAM異常エラー状態に制御し、遊技の進行を不能化させるようになっている。尚、RAM異常エラー状態は、他のエラー状態と異なり、リセットスイッチ23やリセット/設定スイッチ38を操作しても解除されないようになっており、前述した設定変更状態において新たな設定値が設定されるまで解除されることがない。
尚、本実施例では、RAM41cに格納されている全てのデータが停電時においてもバックアップ電源により保持されるとともに、メインCPU41aは、電源投入時においてRAM41cのデータが正常であると判定した場合に、RAM41cの格納データに基づいて電断前の制御状態に復帰する構成であるが、RAM41cに格納されているデータのうち停電時において制御状態の復帰に必要なデータのみをバックアップし、電源投入時においてバックアップされているデータに基づいて電断前の制御状態に復帰する構成としても良い。
また、電源投入時において電断前の制御状態に復帰させる際に、全ての制御状態を電断前の制御状態に復帰させる必要はなく、遊技者に対して不利益とならない最低限の制御状態を復帰させる構成であれば良く、例えば、入力ポートの状態などを全て電断前の状態に復帰させる必要はない。
また、サブCPU91aも電断検出回路98からの電圧低下信号を検出した際に、電断割込処理(サブ)を実行する。電断割込処理(サブ)では、レジスタを後述するRAM91cのスタックに退避し、RAM91cにいずれかのビットが1となる破壊診断用データを格納するとともに、RAM91cの全ての領域に格納されたデータに基づくRAMパリティが0となるようにRAMパリティ調整用データを計算し、RAM91cに格納する処理を行うようになっている。
そして、サブCPU91aは、その起動時においてRAM91cの全ての領域に格納されたデータに基づいてRAMパリティを計算し、RAMパリティが0であることを条件に、RAM91cに記憶されているデータに基づいてサブCPU91aの処理状態を電断前の状態に復帰させるが、RAMパリティが0でない場合(1の場合)には、RAM異常と判定し、RAM91cを初期化するようになっている。この場合、サブCPU91aと異なり、RAM91cが初期化されるのみで演出の実行が不能化されることはない。
尚、本実施例では、RAM91cに格納されている全てのデータが停電時においてもバックアップ電源により保持されるとともに、サブCPU91aは、電源投入時においてRAM91cのデータが正常であると判定した場合に、RAM91cの格納データに基づいて電断前の制御状態に復帰する構成であるが、RAM91cに格納されているデータのうち停電時において制御状態の復帰に必要なデータのみをバックアップし、電源投入時においてバックアップされているデータに基づいて電断前の制御状態に復帰する構成としても良い。
また、電源投入時において電断前の制御状態に復帰させる際に、全ての制御状態を電断前の制御状態に復帰させる必要はなく、遊技者に対して不利益とならない最低限の制御状態を復帰させる構成であれば良く、入力ポートの状態や、演出が途中で中断された場合の途中経過などを全て電断前の状態に復帰させる必要はない。例えば、BB中か、通常遊技状態か、などの遊技状態を示すデータのみをバックアップするとともに、遊技状態に対応する演出(BB中であればBB中演出、通常遊技状態であれば通常演出)以外の特定の演出(小役告知など)の実行中に電断が発生した場合に、次回電源投入時において電断時に実行されていた特定の演出を再開するのではなく、電源投入時においてバックアップされている遊技状態に対応する演出を最初から実行するようにしても良い。
次に、メイン制御部41のRAM41cの初期化について説明する。メイン制御部41のRAM41cの格納領域は、重要ワーク、一般ワーク、特別ワーク、設定値ワーク、非保存ワーク、未使用領域、スタック領域に区分されている。
重要ワークは、各種表示器やLEDの表示用データ、I/Oポート41dの入出力データ、遊技時間の計時カウンタ等、BB終了時に初期化すると不都合があるデータが格納されるワークである。一般ワークは、停止制御テーブル、停止図柄、メダルの払出枚数、BB中のメダル払出総数等、BB終了時に初期化可能なデータが格納されるワークである。特別ワークは、演出制御基板90へコマンドを送信するためのデータ、各種ソフトウェア乱数(後述する判定値加算用乱数、初期値変更用乱数)等、設定変更前にも初期化されないデータが格納されるワークである。設定値ワークは、内部抽選処理で抽選を行う際に用いる設定値が格納されるワークである。非保存ワークは、各種スイッチ類の状態を保持するワークであり、起動時にRAM41cのデータが破壊されているか否かに関わらず必ず値が設定されることとなる。未使用領域は、RAM41cの格納領域のうち使用していない領域であり、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなる。スタック領域は、メインCPU41aのレジスタから退避したデータが格納される領域であり、このうちの未使用スタック領域は、未使用領域と同様に、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなるが、使用中スタック領域は、プログラムの続行のため、初期化されることはない。
本実施例においてメインCPU41aは、RAM異常エラー発生時、設定キースイッチ37がONの状態での起動時、BB終了時、設定キースイッチ37がOFFの状態での起動時においてRAM41cのデータが破壊されていないとき、1ゲーム終了時の5つからなる初期化条件が成立した際に、各初期化条件に応じて初期化される領域の異なる5種類の初期化を行う。
初期化0は、RAM異常エラー発生時に行う初期化であり、初期化0では、RAM41cの格納領域のうち、使用中スタック領域を除く全ての領域(未使用領域及び未使用スタック領域を含む)が初期化される。初期化1は、起動時において設定キースイッチ37がONの状態であり、設定変更状態へ移行する場合において、その前に行う初期化であり、初期化1では、RAM41cの格納領域のうち、特別ワーク、非保存ワーク及び使用中スタック領域以外の領域(未使用領域及び未使用スタック領域を含む)が初期化される。初期化2は、BB終了時に行う初期化であり、初期化2では、RAM41cの格納領域のうち、一般ワーク、未使用領域及び未使用スタック領域が初期化される。初期化3は、起動時において設定キースイッチ37がOFFの状態であり、かつRAM41cのデータが破壊されていない場合において行う初期化であり、初期化3では、非保存ワーク、未使用領域及び未使用スタック領域が初期化される。初期化4は、1ゲーム終了時に行う初期化であり、初期化4では、RAM41cの格納領域のうち、未使用領域及び未使用スタック領域が初期化される。
尚、本実施例では、初期化1を設定変更状態の移行前に行っているが、設定変更状態の終了時に行ったり、設定変更状態移行前、設定変更状態終了時の双方で行うようにしても良い。この場合、設定値ワークを初期化してしまうと確定した設定値が失われてしまうこととなるので、設定変更状態終了時の初期化では、設定値ワークの初期化は行われない。
本実施例のスロットマシン1は、前述のように遊技状態に応じて設定可能な賭数の規定数が定められており、遊技状態に応じて定められた規定数の賭数が設定されたことを条件にゲームを開始させることが可能となる。本実施例では、後に説明するが、遊技状態として、レギュラーボーナス(以下ではRBと称す)(ビッグボーナス(以下ではBBと称す))、通常遊技状態があり、このうちRB(BB)では賭数の規定数として2が定められており、通常遊技状態では賭数の規定数として3が定められている。このため、遊技状態がRB(BB)であれば、賭数として2が設定されるとゲームを開始させることが可能となり、通常遊技状態であれば、賭数として3が設定されるとゲームを開始させることが可能となる。尚、本実施例では、遊技状態に応じた規定数の賭数が設定された時点で、全ての入賞ラインL1〜L5が有効化されるようになっており、RB(BB)では賭数として2が定められた時点で全ての入賞ラインL1〜L5が有効化されることなり、通常遊技状態では賭数として3が設定された時点で全ての入賞ラインL1〜L5が有効化されることとなる。
本実施例のスロットマシン1は、全てのリール2L、2C、2Rが停止した際に、有効化された入賞ライン(本実施例の場合、常に全ての入賞ラインが有効化されるため、以下では、有効化された入賞ラインを単に入賞ラインと呼ぶ)上に役と呼ばれる図柄の組合せが揃うと入賞となる。役は、同一図柄の組合せであっても良いし、異なる図柄を含む組合せであっても良い。入賞となる役の種類は、遊技状態に応じて定められているが、大きく分けて、メダルの払い出しを伴う小役と、賭数の設定を必要とせずに次のゲームを開始可能となる再遊技役と、遊技状態の移行を伴う特別役と、がある。以下では、小役と再遊技役をまとめて一般役とも呼ぶ。遊技状態に応じて定められた各役の入賞が発生するためには、後述する内部抽選に当選して、当該役の当選フラグがRAM41cに設定されている必要がある。
尚、これら各役の当選フラグのうち、小役及び再遊技役の当選フラグは、当該フラグが設定されたゲームにおいてのみ有効とされ、次のゲームでは無効となるが、特別役の当選フラグは、当該フラグにより許容された役の組合せが揃うまで有効とされ、許容された役の組合せが揃ったゲームにおいて無効となる。すなわち特別役の当選フラグが一度当選すると、例え、当該フラグにより許容された役の組合せを揃えることができなかった場合にも、その当選フラグは無効とされずに、次のゲームへ持ち越されることとなる。
このスロットマシン1における役としては、図6に示すように、特別役としてビッグボーナス(以下ではビッグボーナスをBBとする)、レギュラーボーナス(以下ではレギュラーボーナスをRBとする)が、小役として1枚、スイカ、チェリー、ベルが、再遊技役としてリプレイが定められている。
チェリーは、いずれの遊技状態においても右リールについて入賞ラインのいずれかに「白チェリー」の図柄が導出されたときに入賞となり、いずれの遊技状態においても1枚のメダルが払い出される。尚、「白チェリー」の図柄が右リールの上段または下段に停止した場合には、入賞ラインL2、L5または入賞ラインL3、L4の2本の入賞ラインにチェリーの組合せが揃うこととなり、2本の入賞ライン上でチェリーに入賞したこととなるので、2枚のメダルが払い出されることとなる。
スイカは、いずれの遊技状態においても入賞ラインのいずれかに「スイカ−スイカ−スイカ」の組合せまたは「スイカ−スイカ−BAR」の組合せが揃ったときに入賞となり、RB(BB)では15枚のメダルが払い出され、通常遊技状態では12枚のメダルが払い出される。ベルは、いずれの遊技状態においても入賞ラインのいずれかに「ベル−ベル−ベル」の組合せが揃ったときに入賞となり、RB(BB)では15枚のメダルが払い出され、通常遊技状態では10枚のメダルが払い出される。
リプレイは、通常遊技状態において入賞ラインのいずれかに「リプレイ−リプレイ−リプレイ」の組合せ、「BAR−リプレイ−リプレイ」の組合せ、または「黒7−リプレイ−リプレイ」の組合せのうちいずれかの組合せが揃ったときに入賞となる。リプレイが入賞したときには、メダルの払い出しはないが次のゲームを改めて賭数を設定することなく開始できるので、次のゲームで設定不要となった賭数に対応した3枚のメダルが払い出されるのと実質的には同じこととなる。
RBは、通常遊技状態において入賞ラインのいずれかに「網7−網7−黒7」の組合せが揃ったときに入賞となり、遊技状態がRBに移行する。RBは、小役、特にベルの当選確率が高まることによって他の遊技状態よりも遊技者にとって有利となる遊技状態であり、RBが開始した後、12ゲームを消化したとき、または8ゲーム入賞(役の種類は、いずれでも可)したとき、のいずれか早いほうで終了する。
BBは、通常遊技状態において入賞ラインのいずれかに「黒7−黒7−黒7」の組合せ、「網7−網7−網7」の組合せまたは「白7−白7−白7」の組合せが揃ったときに入賞となる。
BBが入賞すると、遊技状態がBBに移行するとともに同時にRBに移行し、RBが終了した際に、BBが終了していなければ、再度RBに移行し、BBが終了するまで繰り返しRBに制御される。すなわちBB中は、常にRBに制御されることとなる。そして、BBは、当該BB中において遊技者に払い出したメダルの総数が465枚を超えたときに終了する。BBの終了時には、RBの終了条件が成立しているか否かに関わらずRBも終了する。
以下、本実施例の内部抽選について説明する。内部抽選は、上記した各役への入賞を許容するか否かを、全てのリール2L、2C、2Rの表示結果が導出表示される以前に(実際には、スタートスイッチ7の検出時)決定するものである。内部抽選では、まず、内部抽選用の乱数(0〜65535の整数)が取得される。そして、遊技状態及び特別役の持ち越しの有無に応じて定められた各役について、取得した内部抽選用の乱数と、遊技状態、賭数及び設定値に応じて定められた各役の判定値数に応じて行われる。
本実施例では、図6に示すように、遊技状態が、通常遊技状態であるか、RB(BB)であるか、によって内部抽選の対象となる役が異なる。さらに遊技状態が通常遊技状態においては、特別役の持越中であるか否かによっても内部抽選の対象となる役が異なる。
遊技状態が通常遊技状態であり、いずれの特別役も持ち越されていない状態では、BB、RB、リプレイ、スイカ、チェリー、ベルが内部抽選の対象役として順に読み出される。
遊技状態が通常遊技状態であり、いずれかの特別役が持ち越されている状態では、リプレイ、スイカ、チェリー、ベルが内部抽選の対象役として順に読み出される。
遊技状態がRBでは、スイカ、チェリー、ベルが内部抽選の対象役として順に読み出される。
内部抽選では、内部抽選の対象となる役、現在の遊技状態及び設定値に対応して定められた判定値数を、内部抽選用の乱数に順次加算し、加算の結果がオーバーフローしたときに、当該役に当選したものと判定される。このため、判定値数の大小に応じた確率(判定値数/65536)で役が当選することとなる。
そして、いずれかの役の当選が判定された場合には、当選が判定された役に対応する当選フラグをRAM41cに割り当てられた内部当選フラグ格納ワークに設定する。内部当選フラグ格納ワークは、2バイトの格納領域にて構成されており、そのうちの上位バイトが、特別役の当選フラグが設定される特別役格納ワークとして割り当てられ、下位バイトが、一般役の当選フラグが設定される一般役格納ワークとして割り当てられている。詳しくは、特別役が当選した場合には、当該特別役が当選した旨を示す特別役の当選フラグを特別役格納ワークに設定し、一般役格納ワークに設定されている当選フラグをクリアする。また、一般役が当選した場合には、当該一般役が当選した旨を示す一般役の当選フラグを一般役格納ワークに設定する。尚、いずれの役及び役の組合せにも当選しなかった場合には、一般役格納ワークのみクリアする。
内部抽選用の乱数は、内部抽選の契機となったスタートスイッチ7の操作が検出された際に乱数回路42のラッチ回路42bによりラッチされたハード乱数と、スタートスイッチ7の操作が検出された際の判定値加算用乱数と、を用いて作成する。
詳しくは、図7(a)に示すように、スタートスイッチ7のONが検出された際に、ラッチ回路42bのバッファからラッチされているハード乱数を読み出すとともに、RAM41cの特別ワークに割り当てられた判定値加算用乱数カウンタから判定値加算用乱数を抽出する。そして読み出したハード乱数と抽出した判定値加算用乱数を加算した結果を内部抽選用の乱数として取得する。ハード乱数及び判定値加算用乱数は、ともに16ビットの値であり、ハード乱数と判定値加算用乱数を加算した結果、オーバーフローすることもあるが、この場合には、加算値の下位16ビットの値、すなわち加算値を65536で除した余りの値を内部抽選用の乱数として取得する。
RAM41cには、内部抽選用の乱数を作成する際に用いる判定値加算用乱数をカウントする判定値加算用乱数カウンタ及び判定値加算用乱数の初期値を決定する際に用いる初期値変更用乱数をカウントする初期値変更用乱数カウンタ、判定値加算用乱数の初期値を格納する初期値格納ワークが割り当てられている。
判定値加算用乱数は、ハード乱数と同じ0〜65535の範囲の値であり、タイマ割込処理(メイン)が4回実行される毎に1回更新される。図7(b)に示すように、更新時期のタイミングで判定値加算用乱数カウンタに格納されている値を読み出し、判定値加算用乱数の総数(65536)と互いに素の関係となる一定の値(本実施例では19463)を加算し、加算値から判定値加算用乱数の総数(65536)を除した余りの値、すなわち加算値の下位16ビットの値を、新たな判定値加算用乱数として判定値加算用乱数カウンタに格納することで更新される。
また、演算によって得られた新たな判定値加算用乱数と初期値格納ワークの値が一致する場合、すなわち判定値加算用乱数が1周した場合には、初期値変更用乱数カウンタの値、すなわちその時点の初期値変更用乱数を新たな判定値加算用乱数として判定値加算用乱数のカウンタに格納することで、1周毎に判定値加算用乱数の初期値が変更されるようになっている。また、判定値加算用乱数の初期値は、初期値格納ワークに格納されることで、判定値加算用乱数の周期の起点を特定できるようになっている。
初期値変更用乱数は、判定値加算用乱数と同じ0〜65535の範囲の値であり、タイマ割込処理(メイン)が4回実行される毎に1回更新されるとともに、ゲーム終了後、ゲームの開始を待機している期間及びゲーム開始後、全てのリールの停止を待機している期間において基本処理1ループ毎に更新される。初期値変更用乱数は、更新毎に値が1ずつ増えるようになっており、65535までカウントすると0に戻る。
尚、判定値加算用乱数、初期値変更用乱数は、ともにソフトウェアによって生成される乱数であり、以下では、これら判定値加算用乱数、初期値変更用乱数をソフトウェア乱数とも呼ぶ。
電源投入時において、電断前の制御状態に復帰する場合には、電断前の判定値加算用乱数、初期値変更用乱数、判定値加算用乱数の初期値のいずれも維持されており、電断前の状態から判定値加算用乱数、初期値変更用乱数の更新を開始する。その後、判定値加算用乱数が初期値に到達した場合には、判定値加算用乱数が1周したと判断して、初期値変更用乱数が新たな判定値加算用乱数の初期値となり、新しい周期の判定値加算用乱数の更新が開始するようになり、以後、判定値加算用乱数が1周する毎にその時点の初期値変更用乱数によって判定値加算用乱数の初期値が変更されることとなる。
電源投入時において、設定キースイッチ37がONの状態であり、設定変更状態に移行する場合には、特別ワーク、非保存ワーク及び使用中スタック領域を除くRAM41cの全ての領域が初期化され、電断前の制御状態が初期化されることとなるが、判定値加算用乱数カウンタ及び初期値変更用乱数カウンタは特別ワークに割り当てられていることから、電断前の判定値加算用乱数及び初期値変更用乱数が初期化されずに維持される。そして、この場合には、電断前から維持されている判定値加算用乱数と初期値変更用乱数とを加算し、加算値を判定値加算用乱数(初期値変更用乱数)の総数(65536)で除した余りの値、すなわち加算値の下位16ビットの値を判定値加算用乱数、初期値変更用乱数、判定値加算用乱数の初期値としてそれぞれ設定し、判定値加算用乱数、初期値変更用乱数の更新を開始する。その後、判定値加算用乱数が初期値に到達した場合、すなわち判定値加算用乱数が、電源投入時に電断前の判定値加算用乱数及び初期値変更用乱数を用いた演算によって得られた値に到達した場合に、判定値加算用乱数が1周したと判断して、初期値変更用乱数が新たな判定値加算用乱数の初期値となり、新しい周期の判定値加算用乱数の更新が開始するようになり、以後、判定値加算用乱数が1周する毎にその時点の初期値変更用乱数によって判定値加算用乱数の初期値が変更されることとなる。
電源投入時において、設定キースイッチ37がOFFの状態であり、かつRAM41cのデータが正常ではなく、電断前の制御状態に復帰できない場合には、使用中スタック領域を除くRAM41cの全ての領域が初期化され、電断前の制御状態が初期化されることとなる。この際、判定値加算用乱数カウンタ及び初期値変更用乱数カウンタが割り当てられた特別ワークも初期化されることから、電断前の判定値加算用乱数及び初期値変更用乱数も初期化されてしまうこととなる。この場合には、メイン制御部41の不揮発性メモリ領域に記憶されているチップIDに基づく値を判定値加算用乱数、初期値変更用乱数、判定値加算用乱数の初期値としてそれぞれ設定し、判定値加算用乱数、初期値変更用乱数の更新を開始する。チップIDは、メイン制御部41の製造時に個別に付与される4バイトの値であり、このうち下位2バイトの値を判定値加算用乱数、初期値変更用乱数、判定値加算用乱数の初期値に用いる。その後、判定値加算用乱数が初期値に到達した場合、すなわち判定値加算用乱数が、電源投入時に設定されたチップIDに基づく値に到達した場合に、判定値加算用乱数が1周したと判断して、初期値変更用乱数が新たな判定値加算用乱数の初期値となり、新しい周期の判定値加算用乱数の更新が開始するようになり、以後、判定値加算用乱数が1周する毎にその時点の初期値変更用乱数によって判定値加算用乱数の初期値が変更されることとなる。
次に、リール2L、2C、2Rの停止制御について説明する。
メインCPU41aは、リールの回転が開始したとき、及びリールが停止し、かつ未だ回転中のリールが残っているときに、ROM41bに格納されているテーブルインデックス及びテーブル作成用データを参照して、回転中のリール別に停止制御テーブルを作成する。そして、ストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作が有効に検出されたときに、該当するリールの停止制御テーブルを参照し、参照した停止制御テーブルの滑りコマ数に基づいて、操作されたストップスイッチ8L、8C、8Rに対応するリール2L、2C、2Rの回転を停止させる制御を行う。
テーブルインデックスには、内部抽選による当選フラグの設定状態(以下、内部当選状態と呼ぶ)別に、テーブルインデックスを参照する際の基準アドレスから、テーブル作成用データが格納された領域の先頭アドレスを示すインデックスデータが格納されているアドレスまでの差分が登録されている。これにより内部当選状態に応じた差分を取得し、基準アドレスに対してその差分を加算することで該当するインデックスデータを取得することが可能となる。尚、役の当選状況が異なる場合でも、同一の制御が適用される場合においては、インデックスデータとして同一のアドレスが格納されており、このような場合には、同一のテーブル作成用データを参照して、停止制御テーブルが作成されることとなる。
テーブル作成用データは、停止操作位置に応じた滑りコマ数を示す停止制御テーブルと、リールの停止状況に応じて参照すべき停止制御テーブルのアドレスと、からなる。
リールの停止状況に応じて参照される停止制御テーブルは、全てのリールが回転しているか、左リールのみ停止しているか、中リールのみ停止しているか、右リールのみ停止しているか、左、中リールが停止しているか、左、右リールが停止しているか、中、右リールが停止しているか、によって異なる場合があり、更に、いずれかのリールが停止している状況においては、停止済みのリールの停止位置によっても異なる場合があるので、それぞれの状況について、参照すべき停止制御テーブルのアドレスが回転中のリール別に登録されており、テーブル作成用データの先頭アドレスに基づいて、それぞれの状況に応じて参照すべき停止制御テーブルのアドレスが特定可能とされ、この特定されたアドレスから、それぞれの状況に応じて必要な停止制御テーブルを特定できるようになっている。尚、リールの停止状況や停止済みのリールの停止位置が異なる場合でも、同一の停止制御テーブルが適用される場合においては、停止制御テーブルのアドレスとして同一のアドレスが登録されているものもあり、このような場合には、同一の停止制御テーブルが参照されることとなる。
停止制御テーブルは、停止操作が行われたタイミング別の滑りコマ数を特定可能なデータである。本実施例では、リールモータ32L、32C、32Rに、168ステップ(0〜167)の周期で1周するステッピングモータを用いている。すなわちリールモータ32L、32C、32Rを168ステップ駆動させることでリール2L、2C、2Rが1周することとなる。そして、リール1周に対して16ステップ(1図柄が移動するステップ数)毎に分割した21の領域(コマ)が定められており、これらの領域には、リール基準位置から0〜20の領域番号が割り当てられている。一方、1リールに配列された図柄数も21であり、各リールの図柄に対して、リール基準位置から0〜20の図柄番号が割り当てられているので、0番図柄から20番図柄に対して、それぞれ0〜20の領域番号が順に割り当てられていることとなる。そして、停止制御テーブルには、領域番号別の滑りコマ数が所定のルールで圧縮して格納されており、停止制御テーブルを展開することによって領域番号別の滑りコマ数を取得できるようになっている。
前述のようにテーブルインデックス及びテーブル作成用データを参照して作成される停止制御テーブルは、領域番号に対応して、各領域番号に対応する領域が停止基準位置(本実施例では、透視窓3の下段図柄の領域)に位置するタイミング(リール基準位置からのステップ数が各領域番号のステップ数の範囲に含まれるタイミング)でストップスイッチ8L、8C、8Rの操作が検出された場合の滑りコマ数がそれぞれ設定されたテーブルである。
次に、停止制御テーブルの作成手順について説明すると、まず、リール回転開始時においては、そのゲームの内部当選状態に応じたテーブル作成用データの先頭アドレスを取得する。具体的には、まずテーブルインデックスを参照し、内部当選状態に対応するインデックスデータを取得し、そして取得したインデックスデータに基づいてテーブル作成用データを特定し、特定したテーブル作成用データから全てのリールが回転中の状態に対応する各リールの停止制御テーブルのアドレスを取得し、取得したアドレスに格納されている各リールの停止制御テーブルを展開して全てのリールについて停止制御テーブルを作成する。
また、いずれか1つのリールが停止したとき、またはいずれか2つのリールが停止したときには、リール回転開始時に取得したインデックスデータ、すなわちそのゲームの内部当選状態に応じたテーブル作成用データの先頭アドレスに基づいてテーブル作成用データを特定し、特定したテーブル作成用データから停止済みのリール及び当該リールの停止位置の領域番号に対応する未停止リールの停止制御テーブルのアドレスを取得し、取得したアドレスに格納されている各リールの停止制御テーブルを展開して未停止のリールについて停止制御テーブルを作成する。
次に、メインCPU41aがストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作を有効に検出したときに、該当するリールに表示結果を導出させる際の制御について説明すると、ストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作を有効に検出すると、停止操作を検出した時点のリール基準位置からのステップ数に基づいて停止操作位置の領域番号を特定し、停止操作が検出されたリールの停止制御テーブルを参照し、特定した停止操作位置の領域番号に対応する滑りコマ数を取得する。そして、取得した滑りコマ数分リールを回転させて停止させる制御を行う。具体的には、停止操作を検出した時点のリール基準位置からのステップ数から、取得した滑りコマ数引き込んで停止させるまでのステップ数を算出し、算出したステップ数分リールを回転させて停止させる制御を行う。これにより、停止操作が検出された停止操作位置の領域番号に対応する領域から滑りコマ数分先の停止位置となる領域番号に対応する領域が停止基準位置(本実施例では、透視窓3の下段図柄の領域)に停止することとなる。
本実施例のテーブルインデックスには、一の遊技状態における一の内部当選状態に対応するインデックスデータとして1つのアドレスのみが格納されており、更に、一のテーブル作成用データには、一のリールの停止状況(及び停止済みのリールの停止位置)に対応する停止制御テーブルの格納領域のアドレスとして1つのアドレスのみが格納されている。すなわち一の遊技状態における一の内部当選状態に対応するテーブル作成用データ、及びリールの停止状況(及び停止済みのリールの停止位置)に対応する停止制御テーブルが一意的に定められており、これらを参照して作成される停止制御テーブルも、一の遊技状態における一の内部当選状態、及びリールの停止状況(及び停止済みのリールの停止位置)に対して一意となる。このため、遊技状態、内部当選状態、リールの停止状況(及び停止済みのリールの停止位置)の全てが同一条件となった際に、同一の停止制御テーブル、すなわち同一の制御パターンに基づいてリールの停止制御が行われることとなる。
また、本実施例では、滑りコマ数として0〜4の値が定められており、停止操作を検出してから最大4コマ図柄を引き込んでリールを停止させることが可能である。すなわち停止操作を検出した停止操作位置を含め、最大5コマの範囲から図柄の停止位置を指定できるようになっている。また、1図柄分リールを移動させるのに1コマの移動が必要であるので、停止操作を検出してから最大4図柄を引き込んでリールを停止させることが可能であり、停止操作を検出した停止操作位置を含め、最大5図柄の範囲から図柄の停止位置を指定できることとなる。
本実施例では、いずれかの役に当選している場合には、当選役を入賞ライン上に4コマの範囲で最大限引き込み、当選していない役が入賞ライン上に揃わないように引き込む滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う一方、いずれの役にも当選していない場合には、いずれの役も揃わない滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う。これにより、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で当選している役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役は、最大4コマの引込範囲でハズシて停止させる制御が行われることとなる。
特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合など、特別役と小役が同時に当選している場合には、当選した小役を入賞ラインに4コマの範囲で最大限に引き込むように滑りコマ数が定められているとともに、当選した小役を入賞ラインに最大4コマの範囲で引き込めない停止操作位置については、当選した特別役を入賞ラインに4コマの範囲で最大限に引き込むように滑りコマ数が定められた停止制御テーブルを作成し、リールの停止制御を行う。これにより、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で当選している小役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、入賞ライン上に最大4コマの引込範囲で当選している小役を引き込めない場合には、入賞ライン上に最大4コマの引込範囲で当選している特別役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役は、4コマの引込範囲でハズシて停止させる制御が行われることとなる。すなわちこのような場合には、特別役よりも小役を入賞ライン上に揃える制御が優先され、小役を引き込めない場合にのみ、特別役を入賞させることが可能となる。尚、特別役と小役を同時に引き込める場合には、小役のみを引き込み、特別役と同時に小役が入賞ライン上に揃わないようになっている。
尚、本実施例では、特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合や新たに特別役と小役が同時に当選した場合など、特別役と小役が同時に当選している場合には、当選した特別役よりも当選した小役が優先され、小役が引き込めない場合のみ、特別役を入賞ライン上に揃える制御を行っているが、特別役と小役が同時に当選している場合に、小役よりも特別役を入賞ライン上に揃える制御が優先され、特別役を引き込めない場合にのみ、小役を入賞ライン上に揃える制御を行っても良い。
特別役が前ゲーム以前から持ち越されている状態で再遊技役が当選した場合など、特別役と再遊技役が同時に当選している場合には、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で再遊技役の図柄を揃えて停止させる制御が行われる。尚、この場合、再遊技役を構成する図柄または同時当選する再遊技役を構成する図柄は、リール2L、2C、2Rのいずれについても5図柄以内、すなわち4コマ以内の間隔で配置されており、4コマの引込範囲で必ず任意の位置に停止させることができるので、特別役と再遊技役が同時に当選している場合には、遊技者によるストップスイッチ8L、8C、8Rの操作タイミングに関わらずに、必ず再遊技役が揃って入賞することとなる。すなわちこのような場合には、特別役よりも再遊技役を入賞ライン上に揃える制御が優先され、必ず再遊技役が入賞することとなる。尚、特別役と再遊技役を同時に引き込める場合には、再遊技役のみを引き込み、再遊技役と同時に特別役が入賞ライン上に揃わないようになっている。
本実施例においてメインCPU41aは、リール2L、2C、2Rの回転が開始した後、ストップスイッチ8L、8C、8Rの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっている。尚、リール回転エラーの発生により、一時的にリールの回転が停止した場合でも、その後リール回転が再開した後、ストップスイッチ8L、8C、8Rの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっている。
尚、本実施例では、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっているが、リールの回転が開始してから、予め定められた自動停止時間が経過した場合に、リールの停止操作がなされない場合でも、停止操作がなされたものとみなして自動的に各リールを停止させる自動停止制御を行うようにしても良い。この場合には、遊技者の操作を介さずにリールが停止することとなるため、例え、いずれかの役が当選している場合でもいずれの役も構成しない表示結果を導出させることが好ましい。
次に、メインCPU41aが演出制御基板90に対して送信するコマンドについて説明する。
本実施例では、メインCPU41aが演出制御基板90に対して、BETコマンド、クレジットコマンド、内部当選コマンド、リール回転開始コマンド、リール停止コマンド、入賞判定コマンド、払出開始コマンド、払出終了コマンド、遊技状態コマンド、待機コマンド、打止コマンド、エラーコマンド、復帰コマンド、設定開始コマンド、確認開始コマンド、確認終了コマンド、操作検出コマンドを含む複数種類のコマンドを送信する。
これらコマンドは、コマンドの種類を示す1バイトの種類データとコマンドの内容を示す1バイトの拡張データとからなり、サブCPU91aは、種類データからコマンドの種類を判別できるようになっている。
BETコマンドは、メダルの投入枚数、すなわち賭数の設定に使用されたメダル枚数を特定可能なコマンドであり、ゲーム終了後(設定変更後)からゲーム開始までの状態であり、規定数の賭数が設定されていない状態において、メダルが投入されるか、1枚BETスイッチ5またはMAXBETスイッチ6が操作されて賭数が設定されたときに送信される。また、BETコマンドは、賭数の設定操作がなされたときに送信されるので、BETコマンドを受信することで賭数の設定操作がなされたことを特定可能である。
クレジットコマンドは、クレジットとして記憶されているメダル枚数を特定可能なコマンドであり、ゲーム終了後(設定変更後)からゲーム開始までの状態であり、規定数の賭数が設定されている状態において、メダルが投入されてクレジットが加算されたときに送信される。
内部当選コマンドは、内部当選フラグの当選状況、並びに成立した内部当選フラグの種類を特定可能なコマンドであり、スタートスイッチ7が操作されてゲームが開始したときに送信される。また、内部当選コマンドは、スタートスイッチ7が操作されたときに送信されるので、内部当選コマンドを受信することでスタートスイッチ7が操作されたことを特定可能である。
リール回転開始コマンドは、リールの回転の開始を通知するコマンドであり、リール2L、2C、2Rの回転が開始されたときに送信される。
リール停止コマンドは、停止するリールが左リール、中リール、右リールのいずれかであるか、該当するリールの停止操作位置の領域番号、該当するリールの停止位置の領域番号、を特定可能なコマンドであり、各リールの停止操作に伴う停止制御が行われる毎に送信される。また、リール停止コマンドは、ストップスイッチ8L、8C、8Rが操作されたときに送信されるので、リール停止コマンドを受信することでストップスイッチ8L、8C、8Rが操作されたことを特定可能である。
入賞判定コマンドは、入賞の有無、並びに入賞の種類、入賞時のメダルの払出枚数を特定可能なコマンドであり、全リールが停止して入賞判定が行われた後に送信される。
払出開始コマンドは、メダルの払出開始を通知するコマンドであり、入賞やクレジット(賭数の設定に用いられたメダルを含む)の精算によるメダルの払出が開始されたときに送信される。また、払出終了コマンドは、メダルの払出終了を通知するコマンドであり、入賞及びクレジットの精算によるメダルの払出が終了したときに送信される。
遊技状態コマンドは、次ゲームの遊技状態を特定可能なコマンドであり、設定変更状態の終了時及びゲームの終了時に送信される。
待機コマンドは、待機状態へ移行する旨を示すコマンドであり、1ゲーム終了後、賭数が設定されずに一定時間経過して待機状態に移行するとき、クレジット(賭数の設定に用いられたメダルを含む)の精算によるメダルの払出が終了し、払出終了コマンドが送信された後に送信される。
打止コマンドは、打止状態の発生または解除を示すコマンドであり、BB終了後、エンディング演出待ち時間が経過した時点で打止状態の発生を示す打止コマンドが送信され、リセット操作がなされて打止状態が解除された時点で、打止状態の解除を示す打止コマンドが送信される。
エラーコマンドは、エラー状態の発生または解除、エラー状態の種類を示すコマンドであり、エラーが判定され、エラー状態に制御された時点でエラー状態の発生及びその種類を示すエラーコマンドが送信され、リセット操作がなされてエラー状態が解除された時点で、エラー状態の解除を示すエラーコマンドが送信される。
復帰コマンドは、メインCPU41aが電断前の制御状態に復帰した旨を示すコマンドであり、メインCPU41aの起動時において電断前の制御状態に復帰した際に送信される。
設定開始コマンドは、設定変更状態の開始を示すコマンドであり、設定変更状態に移行する際に送信される。また、設定変更状態への移行に伴ってメインCPU41aの制御状態が初期化されるため、設定開始コマンドによりメインCPU41aの制御状態が初期化されたことを特定可能である。
確認開始コマンドは、設定確認状態の開始を示すコマンドであり、設定確認状態に移行する際に送信される。確認終了コマンドは、設定確認状態の終了を示すコマンドであり、設定確認状態の終了時に送信される。
操作検出コマンドは、操作スイッチ類(1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R)の検出状態(ON/OFF)を示すコマンドであり、一定間隔毎に送信される。
これらコマンドのうち設定開始コマンド、RAM異常を示すエラーコマンド、復帰コマンドは、起動処理において割込が許可される前の段階で生成され、RAM41cの特別ワークに割り当てられた特定コマンド送信用バッファに格納され、直ちに送信される。
設定開始コマンド、RAM異常を示すエラーコマンド、復帰コマンド、操作検出コマンド以外のコマンドは、ゲーム処理においてゲームの進行状況に応じて生成され、RAM41cの特別ワークに設けられた通常コマンド送信用バッファに一時格納され、タイマ割込処理(メイン)中に実行されるコマンド送信処理において送信される。
操作検出コマンドは、コマンド送信処理が5回実行される毎に生成され、前述の特定コマンド送信用バッファに格納され、直ちに送信される。また、通常コマンド送信用バッファに未送信のコマンドが格納されている状態で操作検出コマンドの送信時期に到達した場合には、操作検出コマンドの送信を優先し、通常コマンド送信用バッファに格納されている未送信のコマンドは、次回のコマンド送信処理において送信されるようになっており、1度のコマンド送信処理において複数のコマンドが送信されることがないようになっている。
次に、メインCPU41aが演出制御基板90に対して送信するコマンドに基づいてサブ制御部91が実行する演出の制御について説明する。
サブCPU91aは、メインCPU41aからのコマンドの送信を示すストローブ信号を入力した際に、コマンド受信割込処理を実行する。コマンド受信割込処理では、RAM91cに設けられた受信用バッファに、コマンド伝送ラインから取得したコマンドを格納する。
サブCPU91aは、タイマ割込処理(サブ)において、受信用バッファに未処理のコマンドが格納されているか否かを判定し、未処理のコマンドが格納されている場合には、そのうち最も早い段階で受信したコマンドに基づいてROM91bに格納された制御パターンテーブルを参照し、制御パターンテーブルに登録された制御内容に基づいて液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55等の各種演出装置の出力制御を行う。
制御パターンテーブルには、複数種類の演出パターン毎に、コマンドの種類に対応する液晶表示器51の表示パターン、演出効果LED52の点灯態様、スピーカ53、54の出力態様、リールLEDの点灯態様等、これら演出装置の制御パターンが登録されており、サブCPU91aは、コマンドを受信した際に、制御パターンテーブルの当該ゲームにおいてRAM91cに設定されている演出パターンに対応して登録された制御パターンのうち、受信したコマンドの種類に対応する制御パターンを参照し、当該制御パターンに基づいて演出装置の出力制御を行う。これにより演出パターン及び遊技の進行状況に応じた演出が実行されることとなる。
尚、サブCPU91aは、あるコマンドの受信を契機とする演出の実行中に、新たにコマンドを受信した場合には、実行中の制御パターンに基づく演出を中止し、新たに受信したコマンドに対応する制御パターンに基づく演出を実行するようになっている。すなわち演出が最後まで終了していない状態でも、新たにコマンドを受信すると、受信した新たなコマンドが新たな演出の契機となるコマンドではない場合を除いて実行していた演出はキャンセルされて新たなコマンドに基づく演出が実行されることとなる。
特に、本実施例では、演出の実行中に賭数の設定操作がなされたとき、すなわちサブCPU91aが、賭数が設定された旨を示すBETコマンドを受信したときに、実行中の演出を中止するようになっている。このため、遊技者が、演出を最後まで見るよりも次のゲームを進めたい場合には、演出がキャンセルされ、次のゲームを開始できるので、このような遊技者に対して煩わしい思いをさせることがない。また、演出の実行中にクレジットまたは賭数の精算操作がなされたとき、すなわちサブCPU91aが、ゲームの終了を示す遊技状態コマンドを受信した後、ゲームの開始を示す内部当選コマンドを受信する前に、払出開始コマンドを受信した場合には、実行中の演出を中止するようになっている。クレジットや賭数の精算を行うのは、遊技を終了する場合であり、このような場合に実行中の演出を終了させることで、遊技を終了する意志があるのに、不要に演出が継続してしまわないようになっている。
演出パターンは、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じた選択率にて選択され、RAM91cに設定される。演出パターンの選択率は、ROM91bに格納された演出テーブルに登録されており、サブCPU91aは、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じて演出テーブルに登録されている選択率を参照し、その選択率に応じて複数種類の演出パターンからいずれかの演出パターンを選択し、選択した演出パターンを当該ゲームの演出パターンとしてRAM91cに設定するようになっており、同じコマンドを受信しても内部当選コマンドの受信時に選択された演出パターンによって異なる制御パターンが選択されるため、結果として演出パターンによって異なる演出が行われることがある。
次に、本実施例におけるメイン制御部41のメインCPU41aが実行する各種制御内容を、図8〜図19に基づいて以下に説明する。
メインCPU41aは、リセット回路49からリセット信号が入力されると、図8のフローチャートに示す起動処理(メイン)を行う。尚、リセット信号は、電源投入時及びメイン制御部41の動作が停滞した場合に出力される信号であるので、起動処理(メイン)は、電源投入に伴うメインCPU41aの起動時及びメインCPU41aの不具合に伴う再起動時に行われる処理である。
起動処理(メイン)では、まず、内蔵デバイスや周辺IC、割込モード、スタックポインタ等を初期化した後(Sa1)、入力ポートから電圧低下信号の検出データを取得し、電圧低下信号が入力されているか否か、すなわち電圧が安定しているか否かを判定し(Sa2)、電圧低下信号が入力されている場合には、電圧低下信号が入力されているか否かの判定以外は、いずれの処理も行わないループ処理に移行する。
Sa2のステップにおいて電圧低下信号が入力されていないと判定した場合には、Iレジスタ及びIYレジスタの値を初期化する(Sa3)。Iレジスタ及びIYレジスタの初期化により、Iレジスタには、割込発生時に参照する割込テーブルのアドレスが設定され、IYレジスタには、RAM41cの格納領域を参照する際の基準アドレスが設定される。これらの値は、固定値であり、起動時には常に初期化されることとなる。
次いで、RAM41cへのアクセスを許可し(Sa4)、RAM41cの全ての格納領域(未使用領域及び未使用スタック領域を含む)のRAMパリティを計算し(Sa5)、打止スイッチ36a、自動精算スイッチ36bの状態を取得し、メインCPU41aの特定のレジスタに打止機能、自動精算機能の有効/無効を設定する(Sa6)。
次いで、Sa5のステップにおいて計算したRAMパリティが0か否かを判定する(Sa7)。正常に電断割込処理(メイン)が行われていれば、RAMパリティが0になるはずであり、Sa7のステップにおいてRAMパリティが0でなければ、RAM41cに格納されているデータが正常ではなく、この場合には、RAM41cの格納領域のうち、使用中スタック領域を除く全ての格納領域を初期化する初期化0を実行した後(Sa17)、チップIDの下位2バイトの値を判定値加算用乱数カウンタ、初期値変更用乱数カウンタ、初期値格納ワークにそれぞれ設定し(Sa18)、設定キースイッチ37がONか否か、すなわち設定変更状態への移行操作がなされているか否かを判定し(Sa19)、設定キースイッチ37がONであれば、割込を許可して(Sa16)、設定変更処理、すなわち設定変更状態に移行する。
Sa19のステップにおいて設定キースイッチ37がOFFであれば、RAM異常を示すエラーコードをレジスタに設定し(Sa20)、割込を許可して(Sa21)、エラー処理、すなわちRAM異常エラー状態に移行する。
Sa7のステップにおいて、RAMパリティが0であれば、更に破壊診断用データが正常か否かを判定する(Sa8)。正常に電断割込処理(メイン)が行われていれば、破壊診断用データが設定されているはずであり、Sa8のステップにおいて破壊診断用データが正常でない場合(破壊診断用データが電断時に格納される5A(H)以外の場合)にも、RAM41cのデータが正常ではないので、Sa17のステップに移行して初期化0を実行し、Sa18のステップにおいてチップIDの下位2バイトの値を判定値加算用乱数カウンタ、初期値変更用乱数カウンタ、初期値格納ワークにそれぞれ設定し、その後、Sa19のステップにおいて設定キースイッチ37がONであれば、割込を許可して(Sa16)、設定変更処理に移行し、設定キースイッチ37がOFFであれば、RAM異常を示すエラーコードの設定(Sa20)、割込を許可して(Sa21)、エラー処理に移行する。
Sa8のステップにおいて破壊診断用データが正常であると判定した場合には、RAM41cのデータは正常であるので、破壊診断用データをクリアし(Sa9)、RAM41cの非保存ワーク、未使用領域及び未使用スタック領域を初期化する初期化3を行った後(Sa10)、設定キースイッチ37がONか否かを判定し(Sa11)、設定キースイッチ37がONであれば、Sa14のステップに移行してRAM41cの格納領域のうち、特別ワーク、非保存ワーク及び使用中スタック領域を除く全ての格納領域を初期化する初期化1を実行し、初期化1では初期化されずに維持される判定値加算用乱数と初期値変更用乱数とを加算し、加算値を65536で除した余りの値、すなわち加算値の下位16ビットの値を判定値加算用乱数カウンタ、初期値変更用乱数カウンタ、初期値格納ワークにそれぞれ設定し(Sa15)、割込を許可して(Sa16)、設定変更処理に移行する。
Sa11のステップにおいて設定キースイッチ37がOFFであれば、各レジスタを電断前の状態、すなわちスタックに保存されている状態に復帰し(Sa12)、割込を許可して(Sa13)、電断前の最後に実行していた処理に戻る。
図9は、メインCPU41aが実行するエラー処理の制御内容を示すフローチャートである。
エラー処理では、まず、現在の遊技補助表示器12の表示状態をスタックに退避し(Sb1)、レジスタに格納されているエラーコードを遊技補助表示器12に表示し(Sb2)、エラーコードがRAM異常エラーを示すエラーコードであるか否かを判定し(Sb3)、RAM異常エラーを示すエラーコードである場合には、いずれの処理も行わないループ処理に移行する。
Sb3のステップにおいてRAM異常エラーを示すエラーコードではないと判定された場合には、リセット/設定スイッチ38の操作が検出されているか否かを判定し(Sb4)、リセット/設定スイッチ38の操作が検出されていなければ、更にリセットスイッチ23の操作が検出されているか否かを判定し(Sb5)、リセットスイッチ23の操作も検出されていなければ、Sb4のステップに戻る。すなわちリセット/設定スイッチ38またはリセットスイッチ23の操作が検出されるまで、遊技の進行が不能な状態で待機する。
そして、Sb4のステップにおいてリセット/設定スイッチ38の操作が検出された場合、またはSb5のステップにおいてリセットスイッチ23の操作が検出された場合には、レジスタに格納されているエラーコードをクリアし(Sb6)、遊技補助表示器12の表示状態をSb1のステップにおいてスタックに退避した表示状態に復帰させ(Sb7)、もとの処理に戻る。
このようにエラー処理においては、RAM異常エラー以外によるエラー処理であれば、リセット/設定スイッチ38またはリセットスイッチ23が操作されることで、エラー状態を解除してもとの処理に復帰するが、RAM異常エラーによるエラー処理であれば、リセット/設定スイッチ38またはリセットスイッチ23が操作されてもエラー状態が解除され、元の状態に復帰することはない。
図10は、メインCPU41aが実行する設定変更処理の制御内容を示すフローチャートである。
設定変更処理では、まず、RAM41cの設定値ワークに格納されている設定値を読み出して、読み出した値を表示値とし(Sc1)、表示値が設定可能な範囲(1〜6)外か否かを判定し(Sc2)、表示値が設定可能な範囲内であればSc4のステップに進み、表示値が設定可能な範囲外であれば、表示値を1に補正し、Sc5のステップに進む。
Sc5のステップでは、設定値表示器24に表示値を表示させた後、リセット/設定スイッチ38とスタートスイッチ7の操作の検出待ちの状態となり(Sc5、Sc6)、Sc5のステップにおいてリセット/設定スイッチ38のonが検出されると、表示値を1加算し(Sc7)、Sc2のステップに戻る。
また、Sc6のステップにおいてスタートスイッチ7のonが検出されると、設定値表示器24に表示されている値を0に更新し(Sc8)、設定キースイッチ37がOFFの状態となるまで待機する(Sc9)。
Sc9のステップにおいて設定キースイッチ37のOFFが判定されると、表示値を設定値ワークに格納して(Sc10)、ゲーム処理に移行する。
図11は、メインCPU41aが実行するゲーム処理の制御内容を示すフローチャートである。
ゲーム処理では、BET処理(Sd1)、内部抽選処理(Sd2)、リール回転処理(Sd3)、入賞判定処理(Sd4)、払出処理(Sd5)、ゲーム終了時処理(Sd6)を順に実行し、ゲーム終了時処理が終了すると、再びBET処理に戻る。
Sd1のステップにおけるBET処理では、賭数を設定可能な状態で待機し、遊技状態に応じた規定数の賭数が設定され、スタートスイッチ7が操作された時点でゲームを開始させる処理を実行する。
Sd2のステップにおける内部抽選処理では、Sd1のステップにおいてスタートスイッチ7の検出と同時に作成した内部抽選用の乱数の値に基づいて上記した各役への入賞を許容するかどうかを決定する処理を行う。この内部抽選処理では、それぞれの抽選結果に基づいて、RAM41cに当選フラグが設定される。
Sd3のステップにおけるリール回転処理では、各リール2L、2C、2Rを回転させる処理、遊技者によるストップスイッチ8L、8C、8Rの操作が検出されたことに応じて対応するリール2L、2C、2Rの回転を停止させる処理を実行する。
Sd4のステップにおける入賞判定処理では、Sd3のステップにおいて全てのリール2L、2C、2Rの回転が停止したと判定した時点で、各リール2L、2C、2Rに導出された表示結果に応じて入賞が発生したか否かを判定する処理を実行する。
Sd5のステップにおける払出処理では、Sd4のステップにおいて入賞の発生が判定された場合に、その入賞に応じた払出枚数に基づきクレジットの加算並びにメダルの払出等の処理を行う。
Sd6のステップにおけるゲーム終了時処理では、次のゲームに備えて遊技状態を設定する処理を実行する。
また、ゲーム処理では、ゲームの進行制御に応じてコマンドを生成し、通常コマンド送信用バッファに設定することで、その後のタイマ割込処理(メイン)においてサブCPU91aに対して設定されたコマンドが送信されるようになっている。
図12〜図14は、メインCPU41aがSd1のステップにおいて実行するBET処理の制御内容を示すフローチャートである。
BET処理では、まず、RAM41cにおいて賭数の値が格納されるBETカウンタの値をクリアし(Se1)、遊技状態に応じた規定数(本実施例では遊技状態に関わらず3)をRAM41cに設定し(Se2)、RAM41cにリプレイゲームである旨を示すリプレイゲームフラグが設定されているか否かに基づいて当該ゲームがリプレイゲームであるか否かを判定する(Se3)。
Se3のステップにおいて当該ゲームがリプレイゲームであると判定された場合には、BETカウンタの値を1加算し(Se4)、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定し(Se5)、BETカウンタの値が規定数でなければSe4のステップに戻り、BETカウンタの値が規定数であれば、メダルの投入不可を示す投入不可フラグをRAM41cに設定し(Se6)、Se8のステップに進む。
Se3のステップにおいて当該ゲームがリプレイゲームでないと判定されれば、投入待ち前の設定を行い(Se7)、Se8のステップに進む。投入待ち前の設定では、RAM41cに設定されている投入不可フラグをクリアし、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、精算スイッチ10の検出を有効化、すなわちゲームの進行制御に関与する状態とする。
Se8のステップでは、割込を禁止した後(Se8)、初期値変更用乱数を更新する(Se9)。Se9のステップでは、初期値変更用乱数カウンタの値に1加算し、加算後の値がオーバーフローした場合には、初期値変更用カウンタの値をクリアして0に戻す。Se9のステップの後、Se8のステップにて禁止した割込を再び許可し(Se10)、Se11のステップに進む。
Se11のステップでは、レジスタにエラーコードが設定されているか否か、すなわちエラーが検知されたか否かを判定し、エラーコードが設定されていれば、図9に示すエラー処理に移行する。
Se11のステップにおいてエラーコードが設定されていなければ、RAM41cに投入不可フラグが設定されているか否かに基づいてメダルの投入が可能な状態か否かを判定する(Se12)。Se12のステップにおいてメダルの投入が可能な状態であると判定された場合には、流路切替ソレノイド30をonの状態とし、メダルの流路をホッパータンク側の経路としてメダルの投入が可能な状態とし(Se13)、Se15のステップに進み、メダルの投入が可能な状態でないと判定された場合には、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Se14)、Se15のステップに進む。
Se15のステップにおいては、設定キースイッチ37がonの状態か否かを判定し、設定キースイッチ37がonであれば、BETカウンタの値が0か否かを判定する(Se16)。そして、Se16のステップにおいてBETカウンタの値が0であれば、設定確認処理、すなわち設定確認状態に移行し(Se17)、設定確認処理が終了した後は、Se8のステップに戻る。
Se15のステップにおいて設定キースイッチ37がonではない場合またはSe16のステップにおいてBETカウンタの値が0ではない場合には、Se18のステップに進み、投入メダルセンサ31により投入メダルの通過が検出されたか否か、すなわち投入メダルの通過が検出された旨を示す投入メダルフラグの有無を判定する。Se18のステップにおいて投入メダルの通過が検出されていなければ、Se26のステップに進み、投入メダルの通過が検出されていれば、投入メダルフラグをクリアし(Se19)、RAM41cに投入不可フラグが設定されているか否かに基づいてメダルの投入が可能な状態か否かを判定し(Se20)、メダルの投入が可能な状態でなければSe26のステップに進む。
Se20のステップにおいてメダルの投入が可能な状態であれば、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定し(Se21)、BETカウンタの値が規定数でなければ、BETカウンタの値を1加算し(Se22)、Se8のステップに戻る。
Se21のステップにおいてBETカウンタの値が規定数であれば、RAM41cにおいてクレジットの値が格納されるクレジットカウンタの値を1加算し(Se23)、クレジットカウンタの値が上限値である50であるか否かを判定し(Se24)、クレジットカウンタの値が50でなければ、Se8のステップに戻り、クレジットカウンタの値が50であれば投入不可フラグをRAM41cに設定し(Se25)、Se8のステップに戻る。
Se26のステップでは、スタートスイッチ7の操作が検出されているか否かを判定する。Se26のステップにおいてスタートスイッチ7の操作が検出されていなければSe32のステップに進み、スタートスイッチ7の操作が検出されていれば、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否かを判定する(Se27)。
Se27のステップにおいてBETカウンタの値が規定数でなければ、Se8のステップに戻り、BETカウンタの値が規定数であれば、スタートスイッチ7の検出時にラッチ回路42bがラッチしたハード乱数に判定値加算用乱数を加算し(Se28)、加算値の下位16ビットの値を内部抽選用の乱数として取得し、RAM41cに割り当てられた乱数値取得ワークに設定する(Se29)。これにより、乱数値取得ワークには、スタートスイッチ7が操作された時点のハード乱数と判定値加算用乱数を加算し、加算値を65536で除した余りの値が内部抽選用の乱数として設定されることとなる。
Se29のステップの後、投入不可フラグをRAM41cに設定するとともに、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Se30)、ゲーム開始時の設定を行う(Se31)。そして、Se31のステップの後、BET処理を終了して図11のフローチャートに復帰する。
Se32のステップにおいては、1枚BETスイッチ5の操作が検出されているか否かを判定する。Se32のステップにおいて1枚BETスイッチ5の操作が検出されていなければ、Se37のステップに進み、1枚BETスイッチ5の操作が検出されていれば、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否かを判定する(Se33)。Se33のステップにおいてBETカウンタの値が規定数であればSe8のステップに戻り、BETカウンタの値が規定数でなければ、クレジットカウンタの値が0であるか否かを判定し(Se34)、クレジットカウンタの値が0であればSe8のステップに戻る。Se34のステップにおいてクレジットカウンタの値が0でなければ、クレジットカウンタの値を1減算し(Se35)、BETカウンタの値を1加算して(Se36)、Se8のステップに戻る。
Se37のステップにおいては、MAXBETスイッチ6の操作が検出されているか否かを判定する。Se37のステップにおいてMAXBETスイッチ6の操作が検出されていなければ、Se42のステップに進み、MAXBETスイッチ6の操作が検出されていれば、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否かを判定する(Se38)。Se38のステップにおいてBETカウンタの値が規定数であれば、Se8のステップに戻り、BETカウンタの値が規定数でなければ、クレジットカウンタの値が0であるか否かを判定し(Se39)、クレジットカウンタの値が0であれば、Se8のステップに戻る。Se39のステップにおいてクレジットカウンタの値が0でなければ、クレジットカウンタの値を1減算し(Se40)、BETカウンタの値を1加算して(Se41)、Se38のステップに戻る。
Se42のステップにおいては、精算スイッチ10の操作が検出されているか否かを判定する。Se42のステップにおいて精算スイッチ10の操作が検出されていなければ、Se8のステップに戻り、精算スイッチ10の操作が検出されていれば、RAM41cにリプレイゲームフラグが設定されているか否かに基づいて当該ゲームがリプレイゲームであるか否かを判定し(Se43)、当該ゲームがリプレイゲームであればSe8のステップに戻る。Se43のステップにおいて当該ゲームがリプレイゲームでなければ、BETカウンタの値が0か否かを判定し(Se44)、BETカウンタの値が0であればSe46のステップに進み、BETカウンタの値が0でなければ、既に設定済み賭数の精算を行う旨を示す賭数精算フラグをRAM41cに設定し(Se45)、Se46のステップに進む。Se46のステップにおいては、ホッパーモータ34bを駆動してクレジットカウンタまたはBETカウンタに格納された値分のメダルを払い出す制御、すなわちクレジットとして記憶されているメダルまたは賭数の設定に用いられたメダルを返却する制御が行われる精算処理を行う。そして、Se46のステップにおける精算処理の後、RAM41cに設定されている投入不可フラグをクリアして(Se47)、Se8のステップに戻る。
図15は、メインCPU41aがSd3のステップにおいて実行するリール回転処理の制御内容を示すフローチャートである。
リール回転処理では、まず、前のゲームのリール回転開始時点からウェイトタイム(本実施例では、約4.1秒)が経過したか否かを判定し(Si1)、ウェイトタイムが経過していなければ、ウェイトタイムが経過するまで待機する。
そして、Si1のステップにおいてウェイトタイムが経過していれば、ウェイトタイムを新たに設定する(Si2)。
次いで、リールモータの回転開始時の設定を行い、リールの回転を開始させる(Si3)。そして、回転中のリール別に各停止操作位置毎の滑りコマ数を設定する滑りコマ数設定処理を行い(Si4)、停止準備完了時の設定を行う(Si5)。これにより、停止操作を有効化させることが可能な状態となり、その後、タイマ割込処理(メイン)の原点通過時処理において、リールの定速回転が検出された時点で、停止操作が有効となる。
次いで、割込を禁止した後(Si6)、初期値変更用乱数を更新する(Si7)。Si7のステップでは、初期値変更用乱数カウンタの値に1加算し、加算後の値がオーバーフローした場合には、初期値変更用カウンタの値をクリアして0に戻す。Si7のステップの後、Si6のステップにて禁止した割込を再び許可し(Si8)、Si9のステップに進む。
Si9のステップでは、いずれかのストップスイッチの操作が検出されたか否かを判定し、いずれのストップスイッチの操作も検出されていなければ、リール回転エラー(一定期間以上、リールセンサ33によりリール基準位置が検出されない場合に判定されるエラー)が発生したか否かを判定し(Si10)、リール回転エラーが発生していなければ、更に、投入エラー(メダルの投入が許可されている期間以外で、メダルの投入を検出した場合に判定されるエラー)が発生したか否か、及び払出エラー(メダルの払出が許可されている期間以外で、メダルの払出を検出した場合に判定されるエラー)が発生したか否かを判定し(Si11、Si12)、Si10〜Si12のステップにおいていずれのエラーの発生も判定されなければ、Si6のステップに戻る。
また、Si11のステップにおいて投入エラーの発生が判定された場合、またはSi12のステップにおいて払出エラーが判定された場合には、リール回転中の投入・払出エラーを示すエラーコードをレジスタに設定し(Si13)、Si6のステップに戻る。尚、ここでエラーコードが設定されると、次ゲームのBET処理においてエラー処理に移行することとなる。
また、Si10のステップにおいてリール回転エラーの発生が判定された場合には、リール回転エラーを示すエラーコードをレジスタに設定し(Si14)、全てのリールを停止させて(Si15)、図9に示すエラー処理に移行する(Si13)。そして、エラーが解除された場合には、再びSi3のステップに戻り、リールの回転が再開する。
また、Si9のステップにおいていずれかのストップスイッチの操作が検出された場合には、操作が検出されたストップスイッチに対応するリールモータにおける、その時点のリール基準位置からのステップ数(停止操作位置となるステップ数)を取得し、停止リールに対応するワークに設定した後(Si17)、停止操作に対応するリールの回転が停止するまで待機する(Si18)。
そして、停止操作に対応するリールの回転が停止すると、全てのリールが停止したか否かを判定し(Si19)、全てのリールが停止していなければ、Si4のステップに戻り、全てのリールが停止していれば、リール回転処理を終了して、図11のフローチャートに復帰する。
図16及び図17は、メインCPU41aが割込3の発生に応じて、すなわち0.56msの間隔で起動処理やゲーム処理に割り込んで実行するタイマ割込処理(メイン)の制御内容を示すフローチャートである。
タイマ割込処理(メイン)においては、まず、割込を禁止する(Sk1)。すなわち、タイマ割込処理(メイン)の実行中に他の割込処理が実行されることを禁止する。そして、使用中のレジスタをスタック領域に退避した後(Sk2)、入力ポートから各種スイッチ類の検出データを入力するポート入力処理を行う(Sk3)。
次いで、4種類のタイマ割込1〜4から当該タイマ割込処理(メイン)において実行すべきタイマ割込を識別するための分岐用カウンタを1進める(Sk4)。Sk4のステップでは、分岐用カウンタ値が0〜2の場合に1が加算され、カウンタ値が3の場合に0に更新される。すなわち分岐用カウンタ値は、タイマ割込処理(メイン)が実行される毎に、0→1→2→3→0・・・の順番でループする。
次いで、分岐用カウンタ値を参照して2または3か、すなわちタイマ割込3またはタイマ割込4かを判定し(Sk5)、タイマ割込3またはタイマ割込4ではない場合、すなわちタイマ割込1またはタイマ割込2の場合には、リールモータ32L、32C、32Rの始動時または定速回転中か否かを確認し、リールモータ32L、32C、32Rの始動時または定速回転中であれば、後述するSk9のモータステップ処理において変更した位相信号データや後述するSk25の最終停止処理において変更した位相信号データを出力するモータ位相信号出力処理を実行する(Sk6)。
次いで、分岐用カウンタ値を参照して1か否か、すなわちタイマ割込2か否かを判定し(Sk7)、タイマ割込2ではない場合、すなわちタイマ割込1の場合には、リールモータ32L、32C、32Rの始動時のステップ時間間隔の制御を行うリール始動処理(Sk8)、リールモータ32L、32C、32Rの位相信号データの変更を行うモータステップ処理(Sk9)、リールモータ32L、32C、32Rの停止後、一定時間経過後に位相信号を1相励磁に変更するモータ位相信号スタンバイ処理(Sk10)を順次実行した後、Sk2においてスタック領域に退避したレジスタを復帰し(Sk20)、Sk1のステップにおいて禁止した割込を許可して(Sk21)、割込前の処理に戻る。
また、Sk7のステップにおいてタイマ割込2の場合には、各種表示器をダイナミック点灯させるLEDダイナミック表示処理(Sk11)、各種LED等の点灯信号等のデータを出力ポートへ出力する制御信号等出力処理(Sk12)、各種ソフトウェア乱数(判定値加算用乱数、初期値変更用乱数)を更新する乱数更新処理(Sk13)、各種時間カウンタを更新する時間カウンタ更新処理(Sk14)、通常コマンド送信用バッファに格納されているコマンドまたは操作検出コマンドをサブCPU91aに対して送信するコマンド送信処理(Sk15)、外部出力信号を更新する外部出力信号更新処理(Sk16)を順次実行した後、Sk2においてスタック領域に退避したレジスタを復帰し(Sk20)、Sk1のステップにおいて禁止した割込を許可して(Sk21)、割込前の処理に戻る。
また、Sk5のステップにおいてタイマ割込3またはタイマ割込4であれば、更に、分岐用カウンタ値を参照して3か否か、すなわちタイマ割込4か否かを判定し(Sk17)、タイマ割込4でなければ、すなわちタイマ割込3であれば、回転中のリール2L、2C、2Rの原点通過(リール基準位置の通過)をチェックし、リール回転エラーの発生を検知するとともに、停止準備が完了しているか(停止準備完了コードが設定されているか)を確認し、停止準備が完了しており、かつ定速回転中であれば、回転中のリールに対応するストップスイッチの操作を有効化する原点通過時処理(Sk18)、スイッチ類の検出状態に変化があったか否かを判定するスイッチ入力判定処理(Sk19)を順次実行した後、Sk2においてスタック領域に退避したレジスタを復帰し(Sk20)、Sk1のステップにおいて禁止した割込を許可して(Sk21)、割込前の処理に戻る。
また、Sk17のステップにおいてタイマ割込4であれば、ストップスイッチ8L、8C、8Rの検出に伴って停止リールのワークに停止操作位置が格納されたときに、停止リールのワークに格納された停止操作位置から停止位置を決定し、何ステップ後に停止すれば良いかを算出する停止スイッチ処理(Sk22)、停止スイッチ処理で算出された停止までのステップ数をカウントして、停止する時期になったら2相励磁によるブレーキを開始する停止処理(Sk23)、停止処理においてブレーキを開始してから一定時間後に3相励磁とする最終停止処理(Sk24)を順次実行した後、Sk2においてスタック領域に退避したレジスタを復帰し(Sk20)、Sk1のステップにおいて禁止した割込を許可して(Sk21)、割込前の処理に戻る。
図18は、メインCPU41aが前述したタイマ割込処理(メイン)のタイマ割込2内において実行する乱数更新処理の制御内容を示すフローチャートである。
乱数更新処理では、判定値加算用乱数カウンタの判定値加算用乱数を読み出し(Sk131)、読み出した判定値加算用乱数に19463を加算し(Sk132)、加算値の下位16ビットの値が初期値格納ワークに格納されている判定値加算用乱数の初期値と一致するか否か、すなわち判定値加算用乱数の更新が1周したか否かを判定し(Sk133)、一致しなければ、加算値の下位16ビットの値を新たな判定値加算用乱数として判定値加算用乱数カウンタの値を更新し(Sk134)、Sk137のステップに進む。
Sk133のステップにおいて判定値加算用乱数と19463の加算値の下位16ビットの値が判定値加算用乱数の初期値と一致する場合には、初期値変更用カウンタの初期値変更用乱数を新たな初期値として初期値格納ワークに設定し(Sk135)、さらに初期値変更用カウンタの初期値変更用乱数を新たな判定値加算用乱数として判定値加算用乱数カウンタに設定し(Sk136)、Sk137のステップに進む。
Sk137のステップでは、初期値変更用乱数を更新する。すなわち初期値変更用乱数カウンタの値に1加算し、加算後の値がオーバーフローした場合には、初期値変更用カウンタの値をクリアして0に戻す。そしてSk137のステップの後、乱数更新処理を終了して図16のフローチャートに復帰する。
図19は、メインCPU41aが割込2の発生に応じて、すなわち電断検出回路48からの電圧低下信号が入力されたときに起動処理やゲーム処理に割り込んで実行する電断割込処理(メイン)の制御内容を示すフローチャートである。
電断割込処理(メイン)においては、まず、割込を禁止する(Sm1)。すなわち電断割込処理(メイン)の開始にともなってその他の割込処理が実行されることを禁止する。次いで、使用している可能性がある全てのレジスタをスタック領域に退避する(Sm2)。尚、前述したIレジスタ及びIYレジスタの値は使用されているが、起動時の初期化に伴って常に同一の固定値が設定されるため、ここでは保存されない。
次いで、入力ポートから電圧低下信号の検出データを取得し、電圧低下信号が入力されているか否かを判定する(Sm3)。この際、電圧低下信号が入力されていなければ、Sm2においてスタック領域に退避したレジスタを復帰し(Sm4)、Sk1のステップにおいて禁止した割込を許可して(Sm5)、割込前の処理に戻る。
また、Sk3のステップにおいて電圧低下信号が入力されていれば、破壊診断用データ(本実施例では、5A(H))をセットして(Sm6)、全ての出力ポートを初期化する(Sm7)。次いでRAM41cの全ての格納領域(未使用領域及び未使用スタック領域を含む)の排他的論理和が0になるようにRAMパリティ調整用データを計算してセットし(Sm8)、RAM41cへのアクセスを禁止する(Sm9)。
そして、電圧低下信号が入力されているか否かの判定(Sm10、尚、Sm10は、Sm3と同様の処理である)を除いて、何らの処理も行わないループ処理に入る。すなわち、そのまま電圧が低下すると内部的に動作停止状態になる。よって、電断時に確実にメインCPU41aは動作停止する。また、このループ処理において、電圧が回復し、電圧低下信号が入力されない状態となると、前述した起動処理(メイン)が実行され、RAMパリティが0となり、かつ破壊診断用データが正常であれば、元の処理に復帰することとなる。
尚、本実施例では、RAM41cへのアクセスを禁止した後、電圧低下信号の出力状況を監視して、電圧低下信号が入力されなくなった場合に電圧の回復を判定し、起動処理(メイン)へ移行するようになっているが、ループ処理において何らの処理も行わず、ループ処理が行われている間に、電圧が回復し、リセット回路49からリセット信号が入力されたことに基づいて、起動処理(メイン)へ移行するようにしても良い。
以上説明したように、本実施例のスロットマシン1では、内部抽選に用いる判定値加算用乱数が1周する毎に、次回周期の起点となる初期値が初期値変更用乱数に基づいて決定され、決定された初期値から判定値加算用乱数の更新が開始されるようになっており、判定値加算用乱数が1周する毎に、次回周期の起点が変化することとなるため、判定値加算用乱数が特定の値となるタイミングを特定することが困難となる。
特に、本実施例では、遊技者にとって有利なBBやRBなどの遊技状態への移行契機となる特別役の入賞の発生を許容するか否かが決定される内部抽選に用いる乱数を作成するにあたり上記の判定値加算用乱数を用いているため、遊技者の利益に大きく関わる特別役の判定値と一致する内部抽選用の乱数が発生するタイミングを狙ってゲームが行われてしまうことを防止できる。
尚、本実施例では、判定値加算用乱数が1周する毎に、初期値変更用乱数を用いて判定値加算用乱数の初期値が変更されるようになっているが、複数周期毎に初期値変更用乱数を用いて初期値を変更する構成、判定値加算用乱数を所定回数更新する毎に初期値変更用乱数を用いて初期値を変更する構成であっても良く、さらには、所定時間毎に初期値変更用乱数を用いて初期値を変更する構成であっても良い。
また、判定値加算用乱数が1周した時点の初期値変更用乱数をそのまま判定値加算用乱数の初期値として用いているが、判定値加算用乱数が1周した時点の初期値変更用乱数に特定の値を加算または減算した値など、初期値変更用乱数に所定の演算を行って得られた演算値を判定値加算用乱数の初期値として用いても良い。
また、判定値加算用乱数は、判定値加算用乱数の総数と互いに素の関係となる一定の値を加算した後、判定値加算用乱数の総数で除した余りを新たな判定値加算用乱数とすることで更新されるようになっており、更新後の乱数が更新前の乱数と連続することなく、かつ周期性を持たせることができることから好ましいが、初期値変更用乱数と同様に1ずつ加算または減算することにより更新することで周期性を持たせるようにしても良い。
また、判定値加算用乱数の初期値を決定する初期値変更用乱数の範囲が判定値加算用乱数の範囲と同じ0〜65535であり、判定値加算用乱数の初期値、すなわち次回周期の起点が判定値加算用乱数の全ての数値範囲にわたって変化し得るため、判定値加算用乱数の初期値を特定することが困難となることから好ましいが、初期値変更用乱数として判定値加算用乱数の数値範囲とは異なる範囲の乱数を適用しても良い。
また、判定値加算用乱数は、定期的(約2.24ms毎)に更新されるのに対して、初期値変更用乱数は、定期的な更新に加えてゲーム終了後、ゲームの開始操作を待機している期間及びゲーム開始後、リールの停止操作を待機している期間においても更新されるようになっている。すなわち判定値加算用乱数と初期値変更用乱数の更新頻度が異なるため、判定値加算用乱数の初期値が特定の範囲に偏ってしまうことを防止できる。
また、初期値変更用乱数は、上述のようにゲーム終了後、ゲームの開始操作を待機している期間及びゲーム開始後、リールの停止操作を待機している期間、すなわち遊技者の操作が関与しなければ進行しない不定な期間において基本処理の1ループ毎に更新されるようになっており、初期値変更用乱数の更新頻度が遊技者の操作という不確定な要素によって変化することとなるため、初期値変更用乱数のランダム性が高まり、判定値加算用乱数の初期値を一層ばらつかせることが可能となる。
尚、本実施例では、ゲーム終了後、ゲームの開始操作を待機している期間とゲーム開始後、リールの停止操作を待機している期間の双方において初期値変更用乱数を更新しているが、いずれか一方の期間においてのみ初期値変更用乱数を更新する構成としても初期値変更用乱数のランダム性を高めることができる。
また、本実施例では、電源投入時において設定キースイッチ37がONであり、設定変更状態への移行に伴って電断前の制御状態が初期化される場合でも、RAM41cの格納データが正常であれば、電断前の判定値加算用乱数、初期値変更用乱数の値が維持されるとともに、電断前の判定値加算用乱数と初期値変更用乱数の双方を用いた演算によって得られた値を、判定値加算用乱数の初期値として設定し、設定された初期値から判定値加算用乱数の更新を開始するようになっており、電源投入後、判定値加算用乱数の更新を開始する起点もばらつくこととなるので、判定値加算用乱数から内部抽選用の乱数が特定の値となるタイミングを特定することがさらに困難となる。
また、電源投入後、設定変更状態への移行に伴って電断前の制御状態が初期化される場合に、電断前の判定値加算用乱数と初期値変更用乱数の双方を用いた演算によって得られた値を起点として判定値加算用乱数の更新が1周した後に、次回周期の起点となる判定値加算用乱数の初期値が決定され、その後、判定値加算用乱数が1周する毎に、判定値加算用乱数の初期値が変更されるので、電源投入後の最初の判定値加算用乱数の周期とその後の周期とが異なってしまうことがなく、設定変更状態への移行に伴って電断前の制御状態が初期化される場合には、均等な周期の判定値加算用乱数を用いて内部抽選を行うことが可能となり、ゲームの公平性を確保することができる。
尚、本実施例では、判定値加算用乱数が1周する毎に、初期値変更用乱数を用いて判定値加算用乱数の初期値が変更される構成であるが、前述のように複数周期毎に初期値変更用乱数を用いて判定値加算用乱数の初期値を変更する構成、判定値加算用乱数を所定回数更新する毎に初期値変更用乱数を用いて判定値加算用乱数の初期値を変更する構成、所定時間毎に初期値変更用乱数を用いて判定値加算用乱数の初期値を変更する構成など、1周以外の所定期間、判定値加算用乱数が更新される毎に判定値加算用乱数の初期値が変更される構成でも良く、このような構成であれば、電源投入後、判定値加算用乱数の更新を開始してから所定期間、判定値加算用乱数が更新された後、所定期間毎に初期値変更用乱数を用いて判定値加算用乱数の初期値を変更するようにすることで、均等な周期の判定値加算用乱数を用いて内部抽選を行うことが可能となる。
また、本実施例では、電断時にRAM41cの全ての格納データが保持される構成であるが、電断時にRAM41cの格納データのうち復帰に必要なデータのみを保持する構成を採用した場合には、上記のように、電断前の判定値加算用乱数と初期値変更用乱数の双方を用いた演算によって得られた値を起点として判定値加算用乱数の更新が1周した後に、次回周期の起点となる判定値加算用乱数の初期値を決定し、その後、判定値加算用乱数が1周する毎に、判定値加算用乱数の初期値を変更する構成とすることで、電断時に判定値加算用乱数の初期値を保持する必要がなくなることから、電断時に保持されるバックアップデータの容量を削減することができる。
また、本実施例では、電源投入後、設定変更状態への移行に伴って電断前の制御状態が初期化される場合に、電断前の判定値加算用乱数と初期値変更用乱数の双方を用いた演算によって得られた値、すなわち電断前から保持されている複数のデータを用いて算出された値を判定値加算用乱数の初期値として設定するようになっており、判定値加算用乱数から内部抽選用の乱数が特定の値となるタイミングを特定することがさらに困難となることから好ましいが、電断前の判定値加算用乱数または初期値変更用乱数のいずれか一方を用いた演算によって得られた値を判定値加算用乱数の初期値として設定するようにしても良い。
また、本実施例では、電源投入後、設定変更状態への移行に伴って電断前の制御状態が初期化される場合に、電断前の判定値加算用乱数と初期値変更用乱数の双方を用いた演算によって得られた値を、初期値変更用乱数として設定し、設定された値から初期値変更用乱数の更新を開始するようになっており、電源投入後、初期値変更用乱数の更新を開始する起点もばらつくこととなるので、判定値加算用乱数の初期値を特定することが困難となる。
尚、電源投入後、設定変更状態への移行に伴って電断前の制御状態が初期化される場合に、電断前の判定値加算用乱数と初期値変更用乱数の双方を用いた演算によって得られた値、すなわち電断前から保持されている複数のデータを用いて算出された値を初期値変更用乱数として設定するようになっており、判定値加算用乱数の初期値を特定することがささに困難となることから好ましいが、電断前の判定値加算用乱数または初期値変更用乱数のいずれか一方を用いた演算によって得られた値を初期値変更用乱数として設定するようにしても良い。
また、本実施例では、電断前の判定値加算用乱数と初期値変更用乱数の双方を用いた演算によって得られた判定値加算用乱数の初期値を初期値変更用乱数として用いるようになっており、初期値変更用乱数を算出するためのプログラムを必要としないことからプログラム容量を削減することができる。
尚、本実施例では、電断前の判定値加算用乱数と初期値変更用乱数の双方を用いた演算によって得られた判定値加算用乱数の初期値を初期値変更用乱数として用いているが、判定値加算用乱数の初期値を算出するための演算と同じ演算プログラムにて初期値変更用乱数を算出する構成とした場合でも、これら双方を算出するための演算プログラムを共通化できるため、プログラム容量を削減することができる。
また、本実施例では、電源投入時に電断前の制御状態に復帰する場合には、電断前から維持されている値から判定値加算用乱数、初期値変更用乱数の更新を開始し、判定値加算用乱数が電断前から維持されている初期値に到達することで1周したと判断し、初期値変更用乱数に基づいて次回周期の初期値が決定されるようになっており、電源投入時に電断前の制御状態に復帰する場合には、判定値加算用乱数、初期値変更用乱数の更新も電断前の制御状態から再開されることとなり、電断前の制御状態に復帰する際に、判定値加算用乱数、初期値変更用乱数についても電断前の状態となるので、電断前と復帰後の制御状態の連続性を確保できる。
また、電源投入時において、電断前の制御状態を初期化する場合と、電断前の制御状態に復帰する場合と、で判定値加算用乱数、初期値変更用乱数の更新を開始する値の決定方法が異なることとなるため、判定値加算用乱数から内部抽選用の乱数が特定の値となるタイミングを特定することや判定値加算用乱数の初期値を特定することがさらに困難となる。
尚、本実施例では、電源投入後、設定変更状態への移行に伴って電断前の制御状態が初期化される場合に、電断前から維持されている判定値加算用乱数を用いた演算により得られた値を判定値加算用乱数の初期値として設定し、設定した値から判定値加算用乱数の更新を開始し、電源投入時に電断前の制御状態に復帰する場合には、電断前から維持されている値から判定値加算用乱数の更新を開始する構成であるが、設定変更状態への移行に伴って電断前の制御状態が初期化される場合に、電断前から維持されている値から判定値加算用乱数の更新を開始し、電源投入時に電断前から維持されている判定値加算用乱数を用いた演算により得られた値を判定値加算用乱数の初期値として設定し、設定した値から判定値加算用乱数の更新を開始する構成としても良い。さらには、電源投入後、設定変更状態への移行に伴って電断前の制御状態が初期化される場合、電源投入時に電断前の制御状態に復帰する場合のいずれの場合でも、ともに電源投入時に電断前から維持されている判定値加算用乱数を用いた演算により得られた値を判定値加算用乱数の初期値として設定し、設定した値から判定値加算用乱数の更新を開始する構成としても良い。
また、本実施例では、乱数回路42により生成されるハード乱数と、ソフトウェアにより生成されるソフトウェア乱数である判定値加算用乱数と、を用いた演算の結果により得られた値を内部抽選用の乱数としているので、内部抽選用の乱数が特定の値となるタイミングを特定することが一層困難となる。
また、乱数回路42のカウンタ回路42aが出力するカウント値を変化させないような不正行為を受けても、ソフトウェアによって作成される判定値加算用乱数によって内部抽選用の乱数がカウンタ回路42aと同じ0〜65535の範囲で変化するので、少なくともカウンタ回路42aが出力したカウント値の数値範囲と同じ数値範囲(内部抽選用の乱数の数値範囲も同じ)で変化する判定値加算用乱数によって、内部抽選用の乱数がランダムに生ずるようにすることができ、このような場合でも内部抽選用の乱数が特定の値となるタイミングを特定することが困難となる。すなわち、カウンタ回路42aが出力するカウント値が固定されてしまっても(カウント値が変化しない)、カウンタ回路42aと同じ数値範囲内で変化する判定値加算用乱数に対して演算を行った結果は、0〜65535の範囲内でランダムな値になり、このような不正行為に対する対策を施すことができる。
尚、本実施例では、カウンタ回路42aが16ビットカウンタであるが、カウンタ回路42aのビット幅を16ビット以外としても良い。この場合、カウンタ回路42aのビット幅を16以外の値にする場合でも、判定値加算用乱数のビット幅を、カウンタ回路42aのビット幅と同じとしたり、カウンタ回路42aのビット幅はnであるが所定の数値範囲を2のn乗の範囲にしない場合(例えば、nが16である場合に、所定の数値範囲を2の16乗(0〜65535)にせず、0〜59999にする等)には、ソフトウェアカウンタによる数値の範囲も同じとする(例えば、所定の数値範囲を越える値がカウンタ回路42aのカウント値およびソフトウェアカウンタによる数値(例えば、60000以上)になったときには、所定の演算(例えば、60000を減算する。)を行って所定の数値範囲内の数値にする。)ことで、上記と同様の効果が得られる。
また、判定値加算用乱数が、判定値加算用乱数の総数と互いに素の関係となる一定の値を加算した後、判定値加算用乱数の総数で除した余りを新たな判定値加算用乱数とすることで更新されるようになっており、更新後の乱数が更新前の乱数と連続することなく、判定値加算用乱数だけでも十分なランダム性を確保できるので、上記のように乱数回路42のカウンタ回路42aが出力するカウント値を変化させないような不正行為を受けても、内部抽選用の乱数が特定の値となるタイミングを特定することがさらに困難となる。
尚、本実施例では、乱数回路42により生成されるハード乱数と、ソフトウェアにより生成されるソフトウェア乱数である判定値加算用乱数と、を用いた演算の結果により得られた値を内部抽選用の乱数として用いているが、ハード乱数を用いずに本実施例の判定値加算用乱数自体を内部抽選用の乱数として用いても良いし、本実施例の判定値加算用乱数と初期値変更用乱数とを用いた演算の結果により得られた値を内部抽選用の乱数として用いても良い。
以上、本発明の実施例1を図面により説明してきたが、本発明はこの実施例に限定されるものではなく、本発明の主旨を逸脱しない範囲における変更や追加があっても本発明に含まれることは言うまでもない。
例えば、前記実施例1では、メダル並びにクレジットを用いて賭数を設定するスロットマシンを用いているが、本発明はこれに限定されるものではなく、遊技球を用いて賭数を設定するスロットマシンや、クレジットのみを使用して賭数を設定する完全クレジット式のスロットマシンであっても良い。
更に、流路切替ソレノイド30や投入メダルセンサ31など、メダルの投入機構に加えて、遊技球の取込を行う球取込装置、球取込装置により取り込まれた遊技球を検出する取込球検出スイッチを設けるとともに、ホッパーモータ34bや払出センサ34cなど、メダルの払出機構に加えて、遊技球の払出を行う球払出装置、球払出装置により払い出された遊技球を検出する払出球検出スイッチを設け、メダル及び遊技球の双方を用いて賭数を設定してゲームを行うことが可能であり、かつ入賞の発生によってメダル及び遊技球が払い出されるスロットマシンに適用しても良い。
以下、本発明の実施例2を、図面を参照して説明する。まず、遊技機の一例であるパチンコ遊技機201の全体の構成について説明する。図20はパチンコ遊技機201を正面からみた正面図である。
パチンコ遊技機201は、縦長の方形状に形成された外枠(図示せず)と、外枠の内側に開閉可能に取り付けられた遊技枠とで構成される。また、パチンコ遊技機201は、遊技枠に開閉可能に設けられている額縁状に形成されたガラス扉枠202を有する。遊技枠は、外枠に対して開閉自在に設置される前面枠(図示せず)と、機構部品等が取り付けられる機構板(図示せず)と、それらに取り付けられる種々の部品(後述する遊技盤206を除く)とを含む構造体である。
ガラス扉枠202の下部表面には打球供給皿(上皿)203がある。打球供給皿203の下部には、打球供給皿203に収容しきれない遊技球を貯留する余剰球受皿204や、打球を発射する打球操作ハンドル(操作ノブ)205が設けられている。また、ガラス扉枠202の背面には、遊技盤206が着脱可能に取り付けられている。尚、遊技盤206は、それを構成する板状体と、その板状体に取り付けられた種々の部品とを含む構造体である。また、遊技盤206の前面には、打ち込まれた遊技球が流下可能な遊技領域207が形成されている。
遊技領域207の中央付近には、液晶表示装置(LCD)で構成された演出表示装置209が設けられている。演出表示装置209では、第1特別図柄または第2特別図柄の可変表示に同期した演出図柄(飾り図柄)の可変表示(変動)が行われる。よって、演出表示装置209は、識別情報としての演出図柄(飾り図柄)の可変表示を行う可変表示装置に相当する。演出表示装置209は、演出制御基板90に搭載されている演出制御用マイクロコンピュータによって制御される。演出制御用マイクロコンピュータが、第1特別図柄表示器208aで第1特別図柄の可変表示が実行されているときに、その可変表示に伴って演出表示装置209における図柄表示エリア209L、209C、209Rで演出表示を実行させ、第2特別図柄表示器208bで第2特別図柄の可変表示が実行されているときに、その可変表示に伴って演出表示装置209で演出表示を実行させるので、遊技の進行状況を把握しやすくすることができる。尚、図柄表示エリア209Lでは飾り図柄の左図柄の可変表示が実行され、図柄表示エリア209Cでは飾り図柄の中図柄の可変表示が実行され、図柄表示エリア209Rでは飾り図柄の右図柄の可変表示が実行される。演出表示装置209の表示画面における図柄表示エリア209L、209C、209Rの配置位置は、固定的でも良いが、遊技の進行に応じて変更されても良い。
遊技盤206における演出表示装置209の上部の左側には、識別情報としての第1特別図柄を可変表示する第1特別図柄表示器(第1可変表示手段)208aが設けられている。本実施例では、第1特別図柄表示器208aは、0〜9の数字を可変表示可能な簡易で小型の表示器(例えば、7セグメントLED)で実現されている。すなわち、第1特別図柄表示器208aは、0〜9の数字(または、記号)を可変表示するように構成されている。遊技盤206における演出表示装置209の上部の右側には、識別情報としての第2特別図柄を可変表示する第2特別図柄表示器(第2可変表示手段)208bが設けられている。第2特別図柄表示器208bは、0〜9の数字を可変表示可能な簡易で小型の表示器(例えば、7セグメントLED)で実現されている。すなわち、第2特別図柄表示器208bは、0〜9の数字(または、記号)を可変表示するように構成されている。
本実施例では、第1特別図柄の種類と第2特別図柄の種類とは同じ(例えば、ともに0〜9の数字)であるが、種類が異なっていても良い。また、第1特別図柄表示器208aおよび第2特別図柄表示器208bは、それぞれ、例えば、00〜99の数字(または、2桁の記号)を可変表示するように構成されていても良い。
以下、第1特別図柄と第2特別図柄とを特別図柄と総称することがあり、第1特別図柄表示器208aと第2特別図柄表示器208bとを特別図柄表示器と総称することがある。
第1特別図柄または第2特別図柄の可変表示は、可変表示の実行条件である第1始動条件または第2始動条件が成立(例えば、遊技球が第1始動入賞口213または第2始動入賞口214に入賞したこと)した後、可変表示の開始条件(例えば、保留記憶数が0でない場合であって、第1特別図柄および第2特別図柄の可変表示が実行されていない状態であり、かつ、大当り遊技が実行されていない状態)が成立したことにもとづいて開始され、可変表示時間(変動時間)が経過すると表示結果(停止図柄)を導出表示する。尚、入賞とは、入賞口などのあらかじめ入賞領域として定められている領域に遊技球が入ったことである。また、表示結果を導出表示するとは、図柄(識別情報の例)を最終的に停止表示させることである。また、本実施例では、第1始動入賞口213への入賞および第2始動入賞口214への入賞に関わりなく、始動入賞が生じた順に可変表示の開始条件を成立させる。しかし、第1始動入賞口213への入賞と第2始動入賞口214への入賞のうち例えば、第2始動入賞口214への入賞を優先させて可変表示の開始条件を成立させるようにしても良い。その場合、第1特別図柄および第2特別図柄の可変表示が実行されていない状態であり、かつ、大当り遊技が実行されていない状態であれば、第1保留記憶数が0でない場合でも、第2保留記憶数が0になるまで、第2特別図柄の可変表示を続けて実行する。
演出表示装置209は、第1特別図柄表示器208aでの第1特別図柄の可変表示時間中、および第2特別図柄表示器208bでの第2特別図柄の可変表示時間中に、装飾用(演出用)の図柄としての演出図柄(飾り図柄)の可変表示を行う。第1特別図柄表示器208aにおける第1特別図柄の可変表示と、演出表示装置209における演出図柄の可変表示とは同期している。また、第2特別図柄表示器208bにおける第2特別図柄の可変表示と、演出表示装置209における演出図柄の可変表示とは同期している。同期とは、可変表示の開始時点および終了時点がほぼ同じ(全く同じでも良い。)であって、可変表示の期間がほぼ同じ(全く同じでも良い。)であることをいう。また、第1特別図柄表示器208aにおいて大当り図柄が停止表示されるときと、第2特別図柄表示器208bにおいて大当り図柄が停止表示されるときには、演出表示装置209において大当りを想起させるような演出図柄の組み合わせが停止表示される。
演出表示装置209の下方には、第1始動入賞口213を有する入賞装置が設けられている。第1始動入賞口213に入賞した遊技球は、遊技盤206の背面に導かれ、第1始動口スイッチ213aによって検出される。
また、第1始動入賞口(第1始動口)213を有する入賞装置の下方には、遊技球が入賞可能な第2始動入賞口214を有する可変入賞球装置215が設けられている。第2始動入賞口(第2始動口)214に入賞した遊技球は、遊技盤206の背面に導かれ、第2始動口スイッチ214aによって検出される。可変入賞球装置215は、ソレノイド216によって開状態とされる。可変入賞球装置215が開状態になることによって、遊技球が第2始動入賞口214に入賞可能になり(始動入賞し易くなり)、遊技者にとって有利な状態になる。可変入賞球装置215が開状態になっている状態では、第1始動入賞口213よりも第2始動入賞口214に遊技球が入賞しやすい。また、可変入賞球装置215が閉状態になっている状態では、遊技球は第2始動入賞口214に入賞しない。尚、可変入賞球装置215が閉状態になっている状態において、入賞はしづらいものの、入賞することは可能である(すなわち、遊技球が入賞しにくい)ように構成されていても良い。
以下、第1始動入賞口213と第2始動入賞口214とを総称して始動入賞口または始動口ということがある。
可変入賞球装置215が開放状態に制御されているときには可変入賞球装置215に向かう遊技球は第2始動入賞口214に極めて入賞しやすい。そして、第1始動入賞口213は演出表示装置209の直下に設けられているが、演出表示装置209の下端と第1始動入賞口213との間の間隔をさらに狭めたり、第1始動入賞口213の周辺で釘を密に配置したり、第1始動入賞口213の周辺での釘配列を遊技球を第1始動入賞口213に導きづらくして、第2始動入賞口214の入賞率の方を第1始動入賞口213の入賞率よりも高くするようにしても良い。
第1特別図柄表示器208aの下部には、第1始動入賞口213に入った有効入賞球数すなわち第1保留記憶数(保留記憶を、始動記憶または始動入賞記憶ともいう。)を表示する4つの表示器(例えば、LED)からなる第1特別図柄保留記憶表示器218aが設けられている。第1特別図柄保留記憶表示器218aは、有効始動入賞がある毎に、点灯する表示器の数を1増やす。そして、第1特別図柄表示器208aでの可変表示が開始される毎に、点灯する表示器の数を1減らす。
第2特別図柄表示器208bの下部には、第2始動入賞口214に入った有効入賞球数すなわち第2保留記憶数を表示する4つの表示器(例えば、LED)からなる第2特別図柄保留記憶表示器218bが設けられている。第2特別図柄保留記憶表示器218bは、有効始動入賞がある毎に、点灯する表示器の数を1増やす。そして、第2特別図柄表示器208bでの可変表示が開始される毎に、点灯する表示器の数を1減らす。
また、演出表示装置209の表示画面には、第1保留記憶数と第2保留記憶数との合計である合計数(合算保留記憶数)を表示する領域(以下、合算保留記憶表示部218cという。)が設けられている。合計数を表示する合算保留記憶表示部218cが設けられているので、可変表示の開始条件が成立していない実行条件の成立数の合計を把握しやすくすることができる。尚、合算保留記憶表示部218cが設けられているので、第1特別図柄保留記憶表示器218aおよび第2特別図柄保留記憶表示器218bは、設けられていなくても良い。
尚、本実施例では、図20に示すように、第2始動入賞口214に対してのみ開閉動作を行う可変入賞球装置215が設けられているが、第1始動入賞口213および第2始動入賞口214のいずれについても開閉動作を行う可変入賞球装置が設けられている構成であっても良い。
また、図20に示すように、可変入賞球装置215の下方には、特別可変入賞球装置220が設けられている。特別可変入賞球装置220は開閉板を備え、第1特別図柄表示器208aに特定表示結果(大当り図柄)が導出表示されたとき、および第2特別図柄表示器208bに特定表示結果(大当り図柄)が導出表示されたときに生起する特定遊技状態(大当り遊技状態)においてソレノイド221によって開閉板が開放状態に制御されることによって、入賞領域となる大入賞口が開放状態になる。大入賞口に入賞した遊技球はカウントスイッチ223で検出される。
遊技盤206の右側方下部には、普通図柄表示器210が設けられている。普通図柄表示器210は、普通図柄と呼ばれる複数種類の識別情報(例えば、「○」および「×」)を可変表示する。
遊技球がゲート232を通過しゲートスイッチ232aで検出されると、普通図柄表示器210の表示の可変表示が開始される。本実施例では、上下のランプ(点灯時に図柄が視認可能になる)が交互に点灯することによって可変表示が行われ、例えば、可変表示の終了時に下側のランプが点灯すれば当りとなる。そして、普通図柄表示器210における停止図柄が所定の図柄(当り図柄)である場合に、可変入賞球装置215が所定回数、所定時間だけ開状態になる。すなわち、可変入賞球装置215の状態は、普通図柄の停止図柄が当り図柄である場合に、遊技者にとって不利な状態から有利な状態(第2始動入賞口214に遊技球が入賞可能な状態)に変化する。普通図柄表示器210の近傍には、ゲート232を通過した入賞球数を表示する4つの表示器(例えば、LED)を有する普通図柄保留記憶表示器241が設けられている。ゲート232への遊技球の通過がある毎に、すなわちゲートスイッチ232aによって遊技球が検出される毎に、普通図柄保留記憶表示器241は点灯する表示器を1増やす。そして、普通図柄表示器210の可変表示が開始される毎に、点灯する表示器を1減らす。さらに、通常状態に比べて大当りとすることに決定される確率が高い状態である確変状態では、普通図柄表示器210における停止図柄が当り図柄になる確率が高められるとともに、可変入賞球装置215の開放時間が長くなり、かつ、開放回数が増加される。また、時短状態(特別図柄の可変表示時間が短縮される遊技状態)において、可変入賞球装置215の開放時間が長くなり、かつ、開放回数が増加されるようにしても良い。
遊技盤206の遊技領域207の左右周辺には、遊技中に点滅表示される装飾LED225が設けられ、下部には、入賞しなかった打球が取り込まれるアウト口226がある。また、遊技領域207の外側の左右上部には、所定の音声出力として効果音や音声を発声する2つのスピーカ227R,227Lが設けられている。遊技領域207の外周上部、外周左部および外周右部には、前面枠に設けられた天枠LED228a、左枠LED228bおよび右枠LED228cが設けられている。また、左枠LED228bの近傍には賞球残数があるときに点灯する賞球LED251が設けられ、右枠LED228cの近傍には補給球が切れたときに点灯する球切れLED252が設けられている。天枠LED228a、左枠LED228bおよび右枠LED228cおよび装飾LED225は、パチンコ遊技機201に設けられている演出用の発光体の一例である。尚、上述した演出用(装飾用)の各種LEDの他にも演出のためのLEDやランプが設置されている。
パチンコ遊技機201には、遊技者が打球操作ハンドル205を操作することに応じて駆動モータを駆動し、駆動モータの回転力を利用して遊技球を遊技領域207に発射する打球発射装置(図示せず)が設けられている。打球発射装置から発射された遊技球は、遊技領域207を囲むように円形状に形成された打球レールを通って遊技領域207に入り、その後、遊技領域207を下りてくる。遊技球が第1始動入賞口213に入り第1始動口スイッチ213aで検出されると、第1特別図柄の可変表示を開始できる状態であれば(例えば、特別図柄の可変表示が終了し、第1の開始条件が成立したこと)、第1特別図柄表示器208aにおいて第1特別図柄の可変表示(変動)が開始されるとともに、演出表示装置209において演出図柄(飾り図柄)の可変表示が開始される。すなわち、第1特別図柄および演出図柄の可変表示は、第1始動入賞口213への入賞に対応する。第1特別図柄の可変表示を開始できる状態でなければ、第1保留記憶数が上限値に達していないことを条件として、第1保留記憶数を1増やす。
遊技球が第2始動入賞口214に入り第2始動口スイッチ214aで検出されると、第2特別図柄の可変表示を開始できる状態であれば(例えば、特別図柄の可変表示が終了し、第2の開始条件が成立したこと)、第2特別図柄表示器208bにおいて第2特別図柄の可変表示(変動)が開始されるとともに、演出表示装置209において演出図柄(飾り図柄)の可変表示が開始される。すなわち、第2特別図柄および演出図柄の可変表示は、第2始動入賞口214への入賞に対応する。第2特別図柄の可変表示を開始できる状態でなければ、第2保留記憶数が上限値に達していないことを条件として、第2保留記憶数を1増やす。
また、遊技機における左下部には、遊技者が押下可能であり、押下されると押下信号を出力する操作ボタン358が設けられている。所定の予告演出が行われているときに、遊技者によって操作ボタン358が操作されたことに応じて、演出表示装置209の表示領域における演出画像が変化する演出表示が行われる。
図21は、主基板(遊技制御基板)231における回路構成の一例を示すブロック図である。尚、図21には、払出制御基板237および演出制御基板280等も示されている。主基板231には、プログラムに従ってパチンコ遊技機201を制御する遊技制御用マイクロコンピュータ(遊技制御手段に相当)260が搭載されている。遊技制御用マイクロコンピュータ760は、ゲーム制御(遊技進行制御)用のプログラム等を記憶するROM254、ワークメモリとして使用される記憶手段としてのRAM255、プログラムに従って制御動作を行うCPU256およびI/Oポート部257を含む。本実施例では、ROM254およびRAM255は遊技制御用マイクロコンピュータ760に内蔵されている。すなわち、遊技制御用マイクロコンピュータ760は、1チップマイクロコンピュータである。1チップマイクロコンピュータには、少なくともCPU256のほかRAM255が内蔵されていればよく、ROM254は外付けであっても内蔵されていても良い。また、I/Oポート部257は、外付けであっても良い。遊技制御用マイクロコンピュータ760には、さらに、ハードウェア乱数(ハードウェア回路が発生する乱数)を発生する乱数回路706が内蔵されている。
乱数回路706は、遊技制御用マイクロコンピュータ760における各ブロックを駆動するための内部クロック信号をカウントする。尚、内部クロック信号を分周したクロック信号または周波数を上げたクロック信号が乱数回路706に供給されるように構成されたマイクロコンピュータを用いても良い。
主基板231には、乱数を発生するために用いられるカウンタ回路711が搭載されている。遊技制御用マイクロコンピュータ760は、所定の時期にカウンタ回路711が出力するデータを入力し、入力したデータを、乱数を生成するためのカウンタ(RAM255の領域)のカウント値に加算する。
尚、遊技制御用マイクロコンピュータ760においてCPU256がROM254に格納されているプログラムに従って制御を実行するので、以下、遊技制御用マイクロコンピュータ760(またはCPU256)が実行する(または、処理を行う)ということは、具体的には、CPU256がプログラムに従って制御を実行することである。このことは、主基板231以外の他の基板に搭載されているマイクロコンピュータについても同様である。
また、RAM255は、その一部または全部が電源基板において作成されるバックアップ電源によってバックアップされている不揮発性記憶手段としてのバックアップRAMである。すなわち、遊技機に対する電力供給が停止しても、所定期間(バックアップ電源としてのコンデンサが放電してバックアップ電源が電力供給不能になるまで)は、RAM255の一部または全部の内容は保存される。特に、少なくとも、遊技状態すなわち遊技制御手段の制御状態に応じたデータ(特別図柄プロセスフラグや合算保留記憶数カウンタの値など)と未払出賞球数を示すデータは、バックアップRAMに保存される。遊技制御手段の制御状態に応じたデータとは、停電等が生じた後に復旧した場合に、そのデータにもとづいて、制御状態を停電等の発生前に復旧させるために必要なデータである。また、制御状態に応じたデータと未払出賞球数を示すデータとを遊技の進行状態を示すデータと定義する。尚、本実施例では、RAM255の全部が、電源バックアップされている。
遊技制御用マイクロコンピュータ760のリセット端子には、電源基板からのリセット信号(図示せず)が入力される。電源基板には、遊技制御用マイクロコンピュータ760等に供給されるリセット信号を生成するリセット回路が搭載されている。尚、リセット信号がハイレベルになると遊技制御用マイクロコンピュータ760等は動作可能状態になり、リセット信号がローレベルになると遊技制御用マイクロコンピュータ760等は動作停止状態になる。従って、リセット信号がハイレベルである期間は、遊技制御用マイクロコンピュータ760等の動作を許容する許容信号が出力されていることになり、リセット信号がローレベルである期間は、遊技制御用マイクロコンピュータ760等の動作を停止させる動作停止信号が出力されていることになる。尚、リセット回路をそれぞれの電気部品制御基板(電気部品を制御するためのマイクロコンピュータが搭載されている基板)に搭載しても良い。
さらに、遊技制御用マイクロコンピュータ760の入力ポートには、電源基板からの電源電圧が所定値以下に低下したことを示す電源断信号が入力される。すなわち、電源基板には、遊技機において使用される所定電圧(例えば、DC30VやDC5Vなど)の電圧値を監視して、電圧値があらかじめ定められた所定値にまで低下すると(電源電圧の低下を検出すると)、その旨を示す電源断信号を出力する電源監視回路が搭載されている。また、遊技制御用マイクロコンピュータ760の入力ポートには、RAMの内容をクリアすることを指示するためのクリアスイッチが操作されたことを示すクリア信号(図示せず)が入力される。
また、ゲートスイッチ232a、第1始動口スイッチ213a、第2始動口スイッチ214aおよびカウントスイッチ223からの検出信号を遊技制御用マイクロコンピュータ760に与える入力ドライバ回路258も主基板231に搭載されている。また、可変入賞球装置215を開閉するソレノイド216、および大入賞口を形成する特別可変入賞球装置220を開閉するソレノイド221を遊技制御用マイクロコンピュータ760からの指令に従って駆動する出力回路59も主基板231に搭載されている。さらに、大当り遊技状態の発生を示す大当り情報等の情報出力信号をホールコンピュータ等の外部装置に対して出力する情報出力回路(図示せず)も主基板231に搭載されている。
本実施例では、演出制御基板280に搭載されている演出制御手段(演出制御用マイクロコンピュータで構成される。)が、中継基板377を介して遊技制御用マイクロコンピュータ760から演出内容を指示する演出制御コマンドを受信し、演出図柄を可変表示する演出表示装置209との表示制御を行う。
図22は、カウンタ回路711と遊技制御用マイクロコンピュータ760との関係を示すブロック図である。図22に示すように、カウンタ回路711は、主基板231に搭載されているパルス発振器713(図21では図示せず)が出力するクロック信号を入力し、クロック信号の立ち上がりまたは立ち下がりで、カウント値を1増やす。カウンタ回路711は、例えば、16ビットカウンタである。よって、カウンタ回路711の出力(すなわち、カウント値)は、16本の信号線で出力される。カウンタ回路711の出力は、第1ラッチ回路714と第2ラッチ回路715とに入力されている。カウンタ回路711のカウント値は、0〜65535のいずれかであり、1ずつ歩進する。すなわち、値が1ずつ増える。
また、この例では、カウンタ回路711は、16ビットカウンタであるが、カウンタ回路711のビット幅は16に限られない。ただし、カウンタ回路711のビット幅を16以外の値にする場合でも、ソフトウェアカウンタのビット幅を、カウンタ回路711のビット幅と同じにすることが好ましい。また、カウンタ回路711のビット幅はnであるが所定の数値範囲を2のn乗の範囲にしない場合(例えば、nが16である場合に、所定の数値範囲を2の16乗(0〜65535)にせず、0〜59999にする等)には、ソフトウェアカウンタによる数値の範囲も同じにすることが好ましい。その場合には、CPU256は、所定の数値範囲を越える値がカウンタ回路711のカウント値およびソフトウェアカウンタによる数値(例えば、60000以上)になったときに、所定の演算(例えば、60000を減算する。)を行って所定の数値範囲内の数値にすれば良い。
また、パルス発振器713が出力するクロック信号の発振周波数は任意であるが、カウンタ回路711のカウント値は、遊技制御用マイクロコンピュータ760が判定用の乱数を生成するために用いられるので、クロック信号の発振周波数はCPU256の動作周波数とは異なる周波数であり、かつ、クロック信号の発振周波数はCPU256の動作周波数の整数倍ではないことが好ましい(例えば、CPU256の動作周波数を15.872MHz、クロック信号の発振周波数20MHz)。後述するように、CPU256は、定期的(例えば、2ms経過毎)に遊技制御処理を開始し、かつ、遊技制御処理で値が更新されるソフトウェアカウンタ(RAM255を用いるカウンタ)のカウント値とカウンタ回路711のカウント値とについて演算を行って乱数を生成するので、ソフトウェアカウンタのカウント値の更新周期と、カウンタ回路711の更新周期とが整数倍の関係にならないことが、乱数を生成する上で好ましいからである。さらに、クロック信号の発振周波数とCPU256の動作周波数とは、一方が他方で割り切られない数の周波数であることがより好ましい。
図22に示すように、第1ラッチ回路714には第1始動口スイッチ213aの検出信号がラッチ信号として入力されている。また、第2ラッチ回路715には第2始動口スイッチ214aの検出信号がラッチ信号として入力されている。第1ラッチ回路714は、第1始動口スイッチ213aが遊技球を検出したときに、すなわち第1始動入賞があったときに、カウンタ回路711のカウント値をラッチする。第2ラッチ回路715は、第2始動口スイッチ214aが遊技球を検出したときに、すなわち第2始動入賞があったときに、カウンタ回路711のカウント値をラッチする。図22に示すような構成によれば、複数種類の始動条件が同時に成立した場合でも、それぞれの始動条件の成立に応じてカウンタ回路711のカウント値がそれぞれのラッチ回路でラッチされるので、それぞれの始動条件の成立に対して生成される数値の値は正確である。
図23は、中継基板377、演出制御基板280、ランプドライバ基板235および音声出力基板270の回路構成例を示すブロック図である。尚、図23に示す例では、ランプドライバ基板235および音声出力基板270には、マイクロコンピュータは搭載されていないが、マイクロコンピュータを搭載しても良い。また、ランプドライバ基板235および音声出力基板270を設けずに、演出制御に関して演出制御基板280のみを設けても良い。
演出制御基板280は、演出制御用CPU311およびRAMを含む演出制御用マイクロコンピュータ310を搭載している。尚、RAMは外付けであっても良い。演出制御基板280において、演出制御用CPU311は、内蔵または外付けのROM(図示せず)に格納されたプログラムに従って動作し、中継基板377を介して入力される主基板231からの取込信号(演出制御INT信号)に応じて、入力ドライバ312および入力ポート313を介して演出制御コマンドを受信する。また、演出制御用CPU311は、演出制御コマンドにもとづいて、VDP(ビデオディスプレイプロセッサ)319に演出表示装置209の表示制御を行わせる。
本実施例では、演出制御用マイクロコンピュータ310と共動して演出表示装置209の表示制御を行うVDP319が演出制御基板280に搭載されている。VDP319は、演出制御用マイクロコンピュータ310とは独立したアドレス空間を有し、そこにVRAMをマッピングする。VRAMは、VDPによって生成された画像データを展開するためのバッファメモリである。そして、VDP319は、VRAM内の画像データを演出表示装置209に出力する。
演出制御用CPU311は、受信した演出制御コマンドに従ってキャラクタROM(図示せず)から必要なデータを読み出す。キャラクタROMは、演出表示装置209に表示されるキャラクタ画像データ、具体的には、人物、文字、図形または記号等(演出図柄を含む)をあらかじめ格納しておくためのものである。演出制御用CPU311は、キャラクタROMから読み出したデータをVDP319に出力する。VDP319は、演出制御用CPU311から入力されたデータにもとづいて表示制御を実行する。また、演出制御用CPU311は、入力ポート316を介して操作ボタン358からの押下信号を入力する。
演出制御コマンドおよび演出制御INT信号は、演出制御基板280において、まず、入力ドライバ312に入力する。入力ドライバ312は、中継基板377から入力された信号を演出制御基板280の内部に向かう方向にしか通過させない(演出制御基板280の内部から中継基板377への方向には信号を通過させない)信号方向規制手段としての単方向性回路でもある。
中継基板377には、主基板231から入力された信号を演出制御基板280に向かう方向にしか通過させない(演出制御基板280から中継基板377への方向には信号を通過させない)信号方向規制手段としての単方向性回路377Aが搭載されている。単方向性回路として、例えば、ダイオードやトランジスタが使用される。図23には、ダイオードが例示されている。また、単方向性回路377Aは、各信号毎に設けられる。さらに、やはり単方向性回路である出力ポート771を介して主基板231から演出制御コマンドおよび演出制御INT信号が出力されるので、中継基板377から主基板231の内部に向かう信号が規制される。すなわち、中継基板377からの信号は主基板231の内部(遊技制御用マイクロコンピュータ760側)に入り込まない。尚、出力ポート771は、図21に示されたI/Oポート部257の一部である。また、出力ポート771の外側(中継基板377側)に、さらに、単方向性回路である信号ドライバ回路が設けられていても良い。
さらに、演出制御用CPU311は、出力ポート315を介してランプドライバ基板235に対してLEDを駆動する信号を出力する。また、演出制御用CPU311は、出力ポート314を介して音声出力基板270に対して音番号データを出力する。
ランプドライバ基板235において、LEDを駆動する信号は、入力ドライバ551を介してLEDドライバ552に入力される。LEDドライバ552は、駆動信号を天枠LED228a、左枠LED228b、右枠LED228cなどの枠側に設けられている各LEDに供給する。また、遊技盤側に設けられている装飾LED225に駆動信号を供給する。尚、LED以外の発光体が設けられている場合には、それを駆動する駆動回路(ドライバ)がランプドライバ基板235に搭載される。
音声出力基板270において、音番号データは、入力ドライバ902を介して音声合成用IC903に入力される。音声合成用IC903は、音番号データに応じた音声や効果音を発生し増幅回路905に出力する。増幅回路905は、音声合成用IC903の出力レベルを、ボリューム906で設定されている音量に応じたレベルに増幅した音声信号をスピーカ227R,227Lに出力する。音声データROM904には、音番号データに応じた制御データが格納されている。音番号データに応じた制御データは、所定期間(例えば、演出図柄の変動期間)における効果音または音声の出力態様を時系列的に示すデータの集まりである。
次に、遊技機の動作について説明する。図24は、主基板231における遊技制御用マイクロコンピュータ760が実行するメイン処理を示すフローチャートである。遊技機に対して電源が投入され電力供給が開始されると、リセット信号が入力されるリセット端子の入力レベルがハイレベルになり、遊技制御用マイクロコンピュータ760(具体的には、CPU256)は、プログラムの内容が正当か否か確認するための処理であるセキュリティチェック処理を実行した後、S1以降のメイン処理を開始する。メイン処理において、CPU256は、まず、必要な初期設定を行う。
初期設定処理において、CPU256は、まず、割込禁止に設定する(S1)。次に、割込モードを割込モード2に設定し(S2)、スタックポインタにスタックポインタ指定アドレスを設定する(S3)。そして、内蔵デバイスの初期化(内蔵デバイス(内蔵周辺回路)であるCTC(カウンタ/タイマ)およびPIO(パラレル入出力ポート)の初期化など)を行った後(S4)、RAMをアクセス可能状態に設定する(S5)。尚、割込モード2は、CPU256が内蔵する特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビット0)とから合成されるアドレスが、割込番地を示すモードである。
次いで、CPU256は、入力ポートを介して入力されるクリアスイッチ(例えば、電源基板に搭載されている。)の出力信号の状態を確認する(S6)。その確認においてオンを検出した場合には、CPU256は、通常の初期化処理を実行する(S9〜S15)。
クリアスイッチがオンの状態でない場合には、遊技機への電力供給が停止したときにバックアップRAM領域のデータ保護処理(例えばパリティデータの付加等の電力供給停止時処理)が行われたか否か確認する(S7)。そのような保護処理が行われていないことを確認したら、CPU256はRAM異常に伴う初期化処理を実行する(S20、S21、S11〜S15)。バックアップRAM領域にバックアップデータがあるか否かは、例えば、電力供給停止時処理においてバックアップRAM領域に設定されるバックアップフラグの状態によって確認される。
電力供給停止時処理が行われたことを確認したら、CPU256は、バックアップRAM領域のデータチェックを行う(S8)。本実施例では、データチェックとしてパリティチェックを行う。よって、S8では、算出したチェックサムと、電力供給停止時処理で同一の処理によって算出され保存されているチェックサムとを比較する。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップRAM領域のデータは保存されているはずであるから、チェック結果(比較結果)は正常(一致)になる。チェック結果が正常でないということは、バックアップRAM領域のデータが、電力供給停止時のデータとは異なっていることを意味する。そのような場合には、内部状態を電力供給停止時の状態に戻すことができないので、RAM異常に伴う初期化処理を実行する(S20、S21、S11〜S15)。
チェック結果が正常であれば、CPU256は、遊技制御手段の内部状態と演出制御手段等の電気部品制御手段の制御状態を電力供給停止時の状態に戻すための遊技状態復旧処理(S22〜S25の処理)を行う。具体的には、ROM254に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し(S22)、バックアップ時設定テーブルの内容を順次作業領域(RAM255内の領域)に設定する(S23)。作業領域はバックアップ電源によって電源バックアップされている。バックアップ時設定テーブルには、作業領域のうち初期化しても良い領域についての初期化データが設定されている。S22およびS23の処理によって、作業領域のうち初期化してはならない部分については、保存されていた内容がそのまま残る。初期化してはならない部分とは、例えば、電力供給停止前の遊技状態を示すデータ(特別図柄プロセスフラグ、確変フラグ、時短フラグ、各種ソフトウェア乱数など)、出力ポートの出力状態が保存されている領域(出力ポートバッファ)、未払出賞球数を示すデータが設定されている部分などである。
また、CPU256は、電力供給復旧時の初期化コマンドとしての停電復旧指定コマンドを送信する(S24)。また、表示結果特定コマンド、合算保留記憶数指定コマンドおよび変動パターンコマンドを送信する(S25)。そして、S14に移行する。尚、変動パターンコマンドは、電力供給が停止したときに特別図柄および飾り図柄の可変表示が行われていたときにのみ送信される。可変表示が行われていたか否かは、例えば、RAM255に保存されていた特別図柄プロセスフラグ等で判定される。ただし、停電等が生じたときに特別図柄および飾り図柄の可変表示が行われていても、電力供給復旧時に可変表示を継続しないように構成されている遊技機では、変動パターンコマンドを送信しない。そのように構成されている遊技機では、演出制御用マイクロコンピュータ310は、受信した表示結果特定コマンドにもとづいて飾り図柄の表示結果を特定し、変動時間が経過したときに遊技制御用マイクロコンピュータ760から送信される図柄確定指定コマンドを受信したときに、演出表示装置209に、表示結果を導出表示する。
また、表示結果特定コマンドとして複数種類のコマンドがあるが、S24の処理では、RAM255に保存されていた表示結果特定コマンド(電力供給が停止した時点において最後に送信した表示結果特定コマンド)を示すデータにもとづくコマンドを送信する。また、合算保留記憶数指定コマンドには合算保留記憶数を示すデータが含まれるが、S23の処理では、RAM255に保存されていた合算保留記憶数を示すデータを含む合算保留記憶数指定コマンドを送信する。そして、変動パターンコマンドとして、RAM255に保存されていた変動パターンコマンド(電力供給が停止した時点において最後に送信した変動パターンコマンド)を示すデータにもとづくコマンドを送信する。
尚、本実施例では、バックアップフラグとチェックデータとの双方を用いてバックアップRAM領域のデータが保存されているか否か確認しているが、いずれか一方のみを用いても良い。すなわち、バックアップフラグとチェックデータとのいずれかを、遊技状態復旧処理を実行するための契機としても良い。
通常の初期化処理では、CPU256は、まず、通常の初期化処理ではクリアされない非初期化領域以外のRAM領域をクリアする(S9)。非初期化領域には、ソフトウェア乱数などが含まれており、通常の初期化処理では、これらソフトウェア乱数はクリアされず、電断前の状態が維持されることとなる。
次に、RAM255の非初期化領域に格納されているソフトウェア乱数、すなわち電断前から保持されているソフトウェア乱数のうち後述するランダム1のカウンタ値とランダム6のカウンタ値とを加算し、加算値をランダム1(ランダム6も同じ)の数値範囲(65536)の総数で除した余りの値(下位16ビットの値)をランダム1のカウンタ値、ランダム6のカウンタ値及びランダム1の初期値としてそれぞれ設定する(S10)。
S14では、CPU256は、乱数回路706を初期設定する乱数回路設定処理を実行する。CPU256は、例えば、乱数回路設定プログラムに従って処理を実行することによって、乱数回路706に乱数値を更新させるための設定を行う。
そして、S15において、CPU256は、所定時間(例えば2ms)毎に定期的にタイマ割込がかかるように遊技制御用マイクロコンピュータ760に内蔵されているCTCのレジスタの設定を行なう。すなわち、初期値として例えば2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。本実施例では、2ms毎に定期的にタイマ割込がかかるとする。
次に、ROM254に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し(S11)、初期化時設定テーブルの内容を順次作業領域に設定する(S12)。
S11およびS12の処理によって、例えば、特別図柄バッファ、総賞球数格納バッファ、特別図柄プロセスフラグなど制御状態に応じて選択的に処理を行うためのフラグに初期値が設定される。
次に、CPU256は、サブ基板(主基板231以外のマイクロコンピュータが搭載された基板)を初期化するための初期化指定コマンド(遊技制御用マイクロコンピュータ760が初期化処理を実行したことを示すコマンドでもある。)をサブ基板に送信する(S13)。例えば、演出制御用マイクロコンピュータ310は、初期化指定コマンドを受信すると、演出表示装置209において、遊技機の制御の初期化がなされたことを報知するための画面表示、すなわち初期化報知を行う。
RAM異常に伴う初期化処理では、CPU256は、まず、非初期化領域を含め全てのRAM領域をクリアする(S20)。すなわちRAM異常に伴う初期化処理では、ソフトウェア乱数を含む全てのデータが初期化されることとなる。
次に、遊技制御用マイクロコンピュータ760のチップID(実施例1と同様に遊技制御用マイクロコンピュータ760の製造時に個別に付与された4バイトの値)を読み出し、読み出したチップIDの下位2バイトの値を後述するランダム1のカウンタ値、ランダム6のカウンタ値及びランダム1の初期値としてそれぞれ設定する(S21)。
尚、S11〜S15の処理は、通常の初期化処理と同じであるので、ここでの説明は省略する。
初期化処理の実行(S10〜S15またはS20、S21、S11〜S15)が完了すると、CPU256は、メイン処理で、表示用乱数更新処理(S17)および初期値用乱数更新処理(S18)を繰り返し実行する。表示用乱数更新処理および初期値用乱数更新処理を実行するときには割込禁止状態に設定し(S16)、表示用乱数更新処理および初期値用乱数更新処理の実行が終了すると割込許可状態に設定する(S19)。本実施例では、表示用乱数とは、変動パターンを決定するための乱数およびリーチするか否か決定するための乱数であり、表示用乱数更新処理とは、表示用乱数を発生するためのカウンタのカウント値を更新する処理である。また、初期値用乱数更新処理とは、初期値用乱数(後述するランダム6、7)を発生するためのカウンタのカウント値を更新する処理である。初期値用乱数とは、後述するランダム1やランダム5を生成するためのカウンタのカウント値の初期値を決定するための乱数である。
タイマ割込が発生すると、CPU256は、図25に示すS30〜S44のタイマ割込処理を実行する。タイマ割込処理において、まず、電源断信号が出力されたか否か(オン状態になったか否か)を検出する電源断検出処理を実行する(S30)。電源断信号は、例えば、電源基板に搭載されている電圧低下監視回路が遊技機に供給される電源の電圧の低下を検出した場合に出力される。そして、電源断検出処理において、CPU256は、電源断信号が出力されたことを検出したら、必要なデータをバックアップRAM領域に保存するための電力供給停止時処理を実行する。次いで、入力ドライバ回路258を介して、ゲートスイッチ232a、第1始動口スイッチ213a、第2始動口スイッチ214aおよびカウントスイッチ223の検出信号を入力し、それらの状態判定を行う(スイッチ処理:S31)。
次に、CPU256は、第1特別図柄表示器208a、第2特別図柄表示器208b、普通図柄表示器210、第1特別図柄保留記憶表示器218a、第2特別図柄保留記憶表示器218b、普通図柄保留記憶表示器241の表示制御を行う表示制御処理を実行する(S32)。第1特別図柄表示器208a、第2特別図柄表示器208bおよび普通図柄表示器210については、S42,S43で設定される出力バッファの内容に応じて各表示器に対して駆動信号を出力する制御を実行する。
次に、遊技制御に用いられる大当り図柄決定用の乱数等の各判定用乱数を生成するための各カウンタのカウント値を更新する処理を行う(判定用乱数更新処理:S33)。CPU256は、さらに、初期値用乱数および表示用乱数を生成するためのカウンタのカウント値を更新する処理を行う(初期値用乱数更新処理,表示用乱数更新処理:S34,S35)。
図26は、各乱数を示す説明図である。各乱数は、以下のように使用される。ランダム1はソフトウェア乱数であるが、ランダム1については、それらの値と遊技制御用マイクロコンピュータ760の外部のハードウェア回路(図22に示すカウンタ回路711)が生成する乱数(ハード乱数)の値との演算結果を最終的な乱数値とする。最終的な乱数値とは、判定値と比較される値である。ランダム2−2,3,4は、ソフトウェア乱数に対して、遊技制御用マイクロコンピュータ760に内蔵された乱数回路706の乱数値が加算されて作成された値である。ランダム5,6,7は、遊技制御用マイクロコンピュータ760によってプログラムにもとづいて生成されるソフトウェア乱数である。また、各ランダムn(n:1など)を生成するためのカウンタは、RAM255に形成されているソフトウェアカウンタである。「RAM255に形成されている」とは、RAM255の領域であることを意味する。
また、本実施例では、ランダム2−1については乱数回路706の乱数値を用いた作成を行わないが、ランダム2−1についても、ランダム2−2,3,4の場合と同様に、遊技制御用マイクロコンピュータ760に内蔵された乱数回路706の乱数値を用いて作成しても良い。
(1)ランダム1:第1始動入賞口または第2始動入賞口への遊技球の入賞(第1始動入賞または第2始動入)にもとづく第1特別図柄(または第2特別図柄)の可変表示に対応して、大当りまたは小当りを発生させるか否か決定する(大当り判定用)
(2−1)ランダム2−1(MR2−1):大当りの種類(確変大当たり、突然確変大当り、通常大当り)を決定する(大当り種別判定用)
(2−2)ランダム2−2(MR2−2): リーチとするか否か決定する(リーチ判定用)
(3)ランダム3(MR3):変動パターンの種類(種別)を決定する(変動パターン種別判定用)
(4)ランダム4(MR4):変動パターン(変動時間)を決定する(変動パターン判定用)
(5)ランダム5(MR5):普通図柄にもとづく当りを発生させるか否か決定する(普通図柄当り判定用)
(6)ランダム6(MR6):ランダム1の初期値を決定する(ランダム1初期値決定用)
(7)ランダム7(MR7):ランダム5の初期値を決定する(ランダム5初期値決定用)
図25に示された遊技制御処理におけるS33では、遊技制御用マイクロコンピュータ760は、(1)の大当り判定用乱数、(2−1)の大当り種別判定用乱数、および(5)の普通図柄当り判定用乱数を生成するためのカウンタの更新を行う。すなわち、それらが判定用乱数であり、それら以外の乱数が表示用乱数(MR2−2、MR3、MR4)または初期値用乱数(MR6、MR7)である。尚、遊技効果を高めるために、上記(1)〜(7)の乱数以外の乱数も用いても良い。
尚、上述したように、(1)の大当り判定用乱数については、それが大当り判定値と比較されるのではなく、その値に対して演算処理が施された値(MR1になる)が大当り判定値と比較される。
S33の判定用乱数更新処理では、遊技制御用マイクロコンピュータ760は、ランダム1を生成するためのカウンタのカウント値にランダム1の総数と互いに素の関係となる一定の値(本実施例では、19463)を加算した後、ランダム1の総数で除した余りの値を、新たなカウント値とし、新たなカウント値が初期値と一致する場合、すなわちカウント値が1周した場合には、ランダム6のカウント値をランダム1の新たなカウント値とし、さらに同じ値をランダム6の初期値として設定する。また、ランダム2−1を生成するためのカウンタのカウント値を+1し、カウント値が101になったらカウント値を1に戻す。また、ランダム5を生成するためのカウンタのカウント値を+1し、カウント値が14になったらカウント値を3に戻す。また、ランダム5のカウント値が、初期値と一致する場合、すなわちカウント値が1周した場合には、ランダム7のカウント値をランダム5のカウント値とし、さらに同じ値をランダム5の初期値として設定する。
S34の初期値用乱数更新処理では(S18でも同様)、ランダム6を生成するためのカウンタのカウント値を+1し、カウント値が65536になったらカウント値を0に戻し、ランダム7を生成するためのカウンタのカウント値を+1し、カウント値が14になったらカウント値を3に戻す。S35の表示用乱数更新処理では(S17でも同様)、ランダム2−2,3,4を生成するためのカウンタのカウント値に所定の値(例えば、乱数回路706の乱数値)を加算し、カウント値が図26に示す範囲を越えたら、カウント値を図26に示す範囲内に戻す。
尚、本実施例では、第1始動入賞に対応する乱数と第2始動入賞に対応する乱数とを共通のソフトウェア乱数としているが、それらを別個の乱数にしても良い。
さらに、CPU256は、特別図柄プロセス処理を行う(S36)。特別図柄プロセス処理では、第1特別図柄表示器208a、第2特別図柄表示器208bおよび大入賞口を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理を実行する。CPU256は、特別図柄プロセスフラグの値を、遊技状態に応じて更新する。
次いで、普通図柄プロセス処理を行う(S37)。普通図柄プロセス処理では、CPU256は、普通図柄表示器210の表示状態および可変入賞球装置215の開閉状態を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理を実行する。CPU256は、普通図柄プロセスフラグの値を、遊技状態に応じて更新する。
また、CPU256は、演出制御用マイクロコンピュータ310に演出制御コマンドを送出する処理を行う(演出制御コマンド制御処理:S38)。
さらに、CPU256は、例えば、ホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する情報出力処理を行う(S39)。
また、CPU256は、第1始動口スイッチ213a、第2始動口スイッチ214aおよびカウントスイッチ223の検出信号にもとづく賞球個数の設定などを行う賞球処理を実行する(S40)。具体的には、第1始動口スイッチ213a、第2始動口スイッチ214aおよびカウントスイッチ223のいずれかがオンしたことにもとづく入賞検出に応じて、払出制御基板237に搭載されている払出制御用マイクロコンピュータに賞球個数を示す払出制御コマンド(賞球個数信号)を出力する。払出制御用マイクロコンピュータは、賞球個数を示す払出制御コマンドに応じて球払出装置297を駆動する。
本実施例では、出力ポートの出力状態に対応したRAM領域(出力ポートバッファ)が設けられているのであるが、CPU256は、出力ポートの出力状態に対応したRAM領域におけるソレノイドのオン/オフに関する内容を出力ポートに出力する(S41:出力処理)。
また、CPU256は、特別図柄の演出表示を行うための特別図柄表示制御データを特別図柄表示制御データ設定用の出力バッファに設定する特別図柄表示制御処理を行う(S42)。CPU256は、例えば、特別図柄プロセス処理でセットされる開始フラグがセットされると終了フラグがセットされるまで、または、特別図柄プロセス処理でセットされる特別図柄プロセスフラグの値が特別図柄の変動中を示している期間において、変動速度が1コマ/0.2秒であれば、0.2秒が経過する毎に、出力バッファに設定される表示制御データの値を+1する。また、CPU256は、出力バッファに設定された表示制御データに応じて、S32において駆動信号を出力することによって、第1特別図柄表示器208aおよび第2特別図柄表示器208bにおける第1特別図柄および第2特別図柄の可変表示を実行する。
さらに、CPU256は、普通図柄の演出表示を行うための普通図柄表示制御データを普通図柄表示制御データ設定用の出力バッファに設定する普通図柄表示制御処理を行う(S43)。CPU256は、例えば、普通図柄プロセス処理で普通図柄の変動に関する開始フラグがセットされると終了フラグがセットされるまで、または、普通図柄プロセス処理でセットされる普通図柄プロセスフラグの値が普通図柄の変動中を示している期間において、普通図柄の変動速度が0.2秒ごとに表示状態(「○」および「×」)を切り替えるような速度であれば、0.2秒が経過する毎に、出力バッファに設定される表示制御データの値(例えば、「○」を示す1と「×」を示す0)を切り替える。また、CPU256は、出力バッファに設定された表示制御データに応じて、S32において駆動信号を出力することによって、普通図柄表示器210における普通図柄の演出表示を実行する。
その後、割込許可状態に設定し(S44)、処理を終了する。
以上の制御によって、本実施例では、遊技制御処理は2ms毎に起動されることになる。尚、遊技制御処理は、タイマ割込処理におけるS30〜S44の処理に相当する。また、本実施例では、タイマ割込処理で遊技制御処理が実行されているが、タイマ割込処理では例えば、割込が発生したことを示すフラグのセットのみがなされ、遊技制御処理はメイン処理において実行されるようにしても良い。
図27は、大当り判定値と比較されるランダム(MR1)の作成の仕方を示す説明図である。図27(A)に示すように、第1始動入賞口213に遊技球が入賞したときに、すなわち第1始動入賞が生じたときに、CPU256は、第1ラッチ回路714を介してカウンタ回路711のカウント値を読み出す。また、ランダム1を抽出する。すなわち、ランダム1を生成するためのカウンタ(カウンタ回路711のビット幅と同じビット幅(例えば16ビット)のソフトウェアカウンタ)からカウント値を読み出す。そして、カウンタ回路711から読み出したカウント値と抽出したランダム1とを加算し、さらに、加算値を65536(0〜65535の数値の総数に相当、換言すれば、65535+1に相当)で除算(整数としての除算)し、剰余(余り)をMR1(実際に大当り判定値と比較される乱数)とする。
また、図27(B)に示すように、第2始動入賞口214に遊技球が入賞したときに、すなわち第2始動入賞が生じたときに、CPU256は、第2ラッチ回路715を介してカウンタ回路711のカウント値を読み出す。また、ランダム1を抽出する。すなわち、ランダム1を生成するためのカウンタ(ソフトウェアカウンタ)からカウント値を読み出す。そして、カウンタ回路711から読み出したカウント値と抽出したランダム1とを加算し、さらに、加算値を65536(0〜65535の数値の総数に相当、換言すれば、65535+1に相当)で除算(整数としての除算)し、剰余(余り)をMR1とする。
図27(C)には、演出態様を決定するための乱数に相当するリーチ判定用乱数(MR2−2)、変動パターン種別判定用乱数(MR3)、および変動パターン判定用乱数(MR4)の作成の仕方が示されている。CPU256は、乱数更新のタイミング(図24におけるS17,図25におけるS35の処理の実行時期に相当)になると、乱数回路706から乱数値を読み出す。
そして、乱数回路706から読み出した乱数値を加算値として、ランダム2−2を生成するためのカウンタ(ソフトウェアカウンタ)のカウント値に加算する。また、乱数回路706から読み出した乱数値を加算値として、ランダム3を生成するためのカウンタ(ソフトウェアカウンタ)のカウント値に加算する。さらに、乱数回路706から読み出した乱数値を加算値として、ランダム4を生成するためのカウンタ(ソフトウェアカウンタ)のカウント値に加算する。それぞれ、加算処理後の値が、ソフトウェアカウンタに残る。
CPU256は、所定の乱数抽出タイミングにおいて、ランダム2−2を生成するためのカウンタ(ソフトウェアカウンタ)からカウント値を読み出してMR2−1とし、ランダム3を生成するためのカウンタ(ソフトウェアカウンタ)からカウント値を読み出してMR3とし、ランダム4を生成するためのカウンタ(ソフトウェアカウンタ)からカウント値を読み出してMR4とする。
図27(D)には、演出態様を決定するための乱数の作成の仕方の他の例が示されている。図27(D)に示す例では、ROM254に、数値変換テーブルが格納されている。数値変換テーブルには、乱数回路706が出力しうる乱数値の範囲(例えば、0〜65535)の値のそれぞれに対応した数値が設定されている。CPU256は、所定の乱数抽出タイミングにおいて、乱数回路706から乱数値を読み出し、読み出した乱数値に対応する数値を数値変換テーブルから読み出し、数値変換テーブルから読み出した数値を加算値として、ランダム2−2を生成するためのカウンタ、ランダム3を生成するためのカウンタ、およびランダム4を生成するためのカウンタに加算する。尚、図27(D)には、乱数回路706から読み出した乱数値をアドレスとして数値変換テーブルから数値を読み出す例が示されているが、そのような読み出し方は必須のことではない。
また、図27(C)および図27(D)に示す例では、遊技制御用マイクロコンピュータ760において、乱数回路706から読み出した乱数値または数値変換テーブルから読み出した数値をソフトウェアカウンタに加算する処理を実行する部分が、乱数回路から乱数の値を読み出し、読み出した乱数の値にもとづいて加算値を決定し、決定した加算値を数値記憶手段としてのソフトウェアカウンタに記憶されている数値に加算する加算手段に相当する。
尚、本実施例では、MR1(大当り判定値と比較される乱数)について、ハードウェアカウンタのカウント値と遊技制御用マイクロコンピュータ760の内部で作成されるソフトウェアカウンタのカウント値とを用いて所定の演算によって乱数を生成するようにしたが、大当りの種別を決定するための大当り種別判定用乱数や、普通図柄にもとづく当りを発生させるか否か決定するための普通図柄当り判定用乱数等(図26参照)について、ハードウェアカウンタのカウント値とソフトウェアカウンタのカウント値とを用いて所定の演算によって乱数を生成するようにしても良い。さらに、大当り遊技のラウンド数が複数種類(例えば、7ラウンドと15ラウンド)あり、抽選によってラウンド数を決定するように構成されている場合には、その抽選に用いる乱数(ラウンド数決定用乱数)について、ハードウェアカウンタのカウント値とソフトウェアカウンタのカウント値とを用いて所定の演算によって乱数を生成するようにしても良い。
また、本実施例では、図22に示すように、1つのカウンタ回路711のカウント値を複数のラッチ回路に入力させるように構成されているが、カウンタ回路を、ラッチ回路のそれぞれに対応して設けても良い。また、図22に示すように、第1始動口スイッチ213aおよび第2始動口スイッチ214aの検出信号を第1ラッチ回路714および第2ラッチ回路715に対するラッチ信号にしているが、ラッチ回路に対するラッチ信号は、遊技制御用マイクロコンピュータ760から出力されるようにしても良い。その場合には、CPU256が、第1始動口スイッチ213aからの検出信号を入力したときに第1ラッチ回路714にラッチ信号を出力し、第2始動口スイッチ214aからの検出信号を入力したときに第2ラッチ回路715にラッチ信号を出力する。
また、本実施例では、カウンタ回路711の出力の配線(16本とする。)を、そのままラッチ回路(第1ラッチ回路714および第2ラッチ回路715)に接続するが、配線をずらして接続するようにしても良い。尚、「そのまま接続する」とは、カウンタ回路711のビットn(n:0〜15のそれぞれ)の配線をラッチ回路のビットnの入力に接続することである。つまり、カウンタ回路711が出力するカウント値と同じ値がラッチ回路にラッチされるように配線することである。「配線をずらして接続する」とは、カウンタ回路711からの16本の配線のうち、ビットi(i:0〜15のいずれか)の配線が、ラッチ回路のビットj(j:0〜15のいずれか)に接続されることである(i≠j)。尚、ずらして接続される配線は2本以上であっても良い。また、ラッチ回路の出力は遊技制御用マイクロコンピュータ760において入力ポート(図21に示すI/Oポート部257の一部)を介してCPU256に入力されるが、カウンタ回路711とラッチ回路との間の配線をずらすのではなく、ラッチ回路と入力ポートとの間の配線をずらして接続するようにしても良い。いずれの場合でも、カウンタ回路711が出力するカウント値とCPU256に入力される値とは同じにならず、かつ、1ずつ歩進するのではなくランダムに値が変化していくようになり、外部から特定値を狙うことがより困難になる。
また、MR1を作成するときに、ソフトウェア乱数であるランダム1に代えて、遊技制御用マイクロコンピュータ760が内蔵するリフレッシュレジスタ(DRAMをリフレッシュするためのレジスタ)の値を用いても良い。その場合にも、リフレッシュレジスタから取得する値の範囲を、カウンタ回路711のカウントの数値範囲(この例では、16ビットで表される数値範囲)と同じにする。
図29は、乱数生成処理(MR1を生成するための処理)を示すフローチャートである。乱数生成処理において、CPU256は、始動口ポインタの値が「第1」か否か確認する(S51)。始動口ポインタの値が「第1」である場合には、CPU256は、第1ラッチ回路714からカウント値を読み出す(S52)。すなわち、第1ラッチ回路714にラッチされているカウンタ回路711のカウント値を読み出す。始動口ポインタの値が「第2」である場合には、CPU256は、第2ラッチ回路715からカウント値を読み出す(S53)。
そして、CPU256は、第1ラッチ回路714または第2ラッチ回路715から読み出したカウント値と保存値とを比較する。保存値は、RAM255に記憶されている値であり、第1ラッチ回路714または第2ラッチ回路715から前回読み出したカウント値である。第1ラッチ回路714または第2ラッチ回路715から読み出したカウント値が保存値と同じ値でない場合、すなわち、前回読み出したカウント値と今回読み出したカウント値とが同じでない場合(カウンタ回路711のカウント値が歩進していることを意味する。)には(S54)、S60に移行する。
第1ラッチ回路714または第2ラッチ回路715から読み出したカウント値が保存値と同じ値である場合(カウンタ回路711のカウント値が歩進していないことを意味する。)には、RAM255に形成されている未歩進回数カウンタの値を+1する(S55)。そして、未歩進回数カウンタの値が所定値(例えば、10)に達した場合には(S56)、演出制御用マイクロコンピュータ310に異常報知開始指定コマンドを送信する制御を行う(S57)。また、異常報知中フラグをセットする(S58)。
S60では、CPU256は、異常報知中フラグがセットされているか否か確認する。異常報知中フラグがセットされていない場合には、S63に移行する。異常報知中フラグがセットされている場合には、異常報知中フラグをリセットし(S61)、演出制御用マイクロコンピュータ310に異常報知終了指定コマンドを送信する制御を行う(S62)。異常報知中フラグがセットされている状況においてカウンタ回路711のカウント値が歩進しているということは(S54,S60)、カウンタ回路711が異常と判定された後に正常動作していることが確認されたことになるので、CPU256は、S61,S62の処理を行う。
そして、CPU256は、未歩進回数カウンタの値をクリア(0にする)処理を行い(S63)、S59に移行する。
S59では、CPU256は、S52またはS53の処理で第1ラッチ回路714または第2ラッチ回路715から読み出したカウント値を、保存値としてRAM255に記憶する。
そして、ランダム1を抽出し(S64)、S52またはS53の処理で第1ラッチ回路714または第2ラッチ回路715から読み出したカウント値とランダム1とを加算する(S65)。尚、ランダム1がとりうる範囲は0〜65535(図26参照)であり、カウンタ回路711のカウント値がとりうる範囲も0〜65535である。
そして、CPU256は、加算値(S65の処理結果)を65536で除算する演算を行い、余りを演算値とする(S66)。演算値がとりうる範囲は、やはり、0〜65535である。
そして、CPU256は、S66の処理で得られた値を、MR1として、第1保留記憶バッファ151Aと第2保留記憶バッファ151Bとのうちの始動口ポインタが示す方の保留記憶バッファにおける保存領域に格納する処理を実行する(S67)。具体的には、CPU256は、始動口ポインタが「第1」を示しているので、ソフトウェア乱数を第1保留記憶バッファ151Aの第1保留記憶数カウンタが示す値に対応する保存領域に格納する。
次に、本実施例の遊技機における表示演出を説明する。第1特別図柄表示器208aや第2特別図柄表示器208bにおいて、特別図柄の可変表示を開始した後、所定時間が経過すると、特別図柄の可変表示結果である停止図柄を停止表示(導出表示)する。大当りにすることに決定されている場合には、特定の特別図柄(大当り図柄)が停止表示される。小当りにすることに決定されている場合には、大当り図柄とは異なる所定の特別図柄(小当り図柄)が停止表示される。はずれにすることに決定されている場合には、大当り図柄や小当り図柄以外の特別図柄が停止表示される。大当り図柄が導出表示された場合には、遊技状態が、特定遊技状態としての大当り遊技状態に制御される。また、小当り図柄が導出表示された場合には、大当り遊技状態とは異なる小当り遊技状態に制御される。本実施例では、一例として、「1」、「3」、「7」を示す数字を大当り図柄とし、「5」を示す数字を小当り図柄とし、「−」を示す記号をはずれ図柄にする。尚、第1特別図柄表示器208aによる特別図柄の可変表示における大当り図柄や小当り図柄、はずれ図柄は、第2特別図柄表示器208bによる特別図柄の可変表示における各図柄とは異なるようにしても良いし、双方の特別図柄の可変表示において共通にしても良い。
本実施例では、大当り図柄となる「1」、「3」、「7」の数字を示す特別図柄のうち、「3」、「7」の数字を示す特別図柄を15ラウンド大当り図柄にする。「1」の数字を示す特別図柄を2ラウンド大当り図柄にする。特別図柄表示器に15ラウンド大当り図柄が停止表示された場合には、特別可変入賞球装置220における開閉板が、所定期間(例えば、29秒間)または所定個数(例えば、10個)の入賞球が発生するまでの期間、開放状態になって、特別可変入賞球装置220を遊技者にとって有利な第1状態に変化させるラウンドが開始される。15ラウンド大当り状態では、ラウンドの回数は第1回数(例えば、15)である。以下、ラウンドの回数が第1回数である大当り遊技状態を15ラウンド大当り状態ともいう。
また、特別図柄表示器に2ラウンド大当り図柄が停止表示された場合には、ラウンドの回数が第2回数(例えば、「2」)である大当り遊技状態(2ラウンド大当り状態)に移行する。また、2ラウンド大当り状態では、各ラウンドの期間は、15ラウンド大当り状態における第1期間よって、も短い第2期間(例えば、0.5秒間)になる。また、2ラウンド大当り状態では、ラウンドの実行回数が、15ラウンド大当り状態における第1回数よりも少ない第2回数(例えば、「2」)である。尚、2ラウンド大当り状態では、各ラウンドで大入賞口を開放状態とする期間が第2期間となることと、ラウンドの実行回数が第2回数となることのうち、少なくともいずれか一方が行われるように制御されれば良い。尚、2ラウンド大当り状態では、各ラウンドで特別可変入賞球装置220とは別個に設けられた所定の入賞球装置を、遊技者にとって不利な第2状態から遊技者にとって有利な第1状態に変化させ、所定期間(第1期間または第2期間)が経過した後に第2状態へと戻すようにしても良い。
また、大当り遊技状態が終了した後、遊技状態を時短状態に制御することに決定されている場合には、特別図柄の停止図柄は「3」になる。時短状態では、通常状態(確変状態や時短状態ではない状態)に比べて特別図柄の可変表示における特別図柄の変動時間が短縮される。時短状態は、例えば、所定回数(例えば、100回)の特別図柄の可変表示が実行されることと、可変表示結果が「大当り」となることのうち、いずれかの条件が先に成立したときに終了する。尚、特別図柄の可変表示における停止図柄として15ラウンド大当り図柄のうち「3」の数字を示す特別図柄が停止表示された後に実行される大当り状態が終了した後に、時短状態にせずに通常状態になるようにしても良い。大当り遊技状態が終了した後に時短状態や通常状態に制御される場合に導出表示され大当り図柄を、通常大当り図柄または非確変大当り図柄(非確変図柄)という。
大当り遊技状態が終了した後、遊技状態を確変状態に制御することに決定されている場合には、特別図柄の停止図柄は「7」になる。確変状態は、例えば、次に可変表示結果として大当り図柄が導出表示されるまで継続する。尚、所定回数(例えば、100回)の特別図柄の可変表示が実行されることと、可変表示結果として大当り図柄が導出表示されることのうち、いずれかの条件が先に成立したときに、確変状態を終了するようにしても良い。また、遊技状態を確変状態に制御することに決定されている場合に導出表示される特別図柄の停止図柄を確変大当り図柄または確変図柄という。
2ラウンド大当り状態が終了した後にも、遊技状態が確変状態(高確率状態)に制御される。2ラウンド大当り状態が終了した後に制御される確変状態を、突然確変(突確)状態ともいう。
特別図柄表示器に小当り図柄が停止表示された場合には、遊技状態が、大当り遊技状態とは異なる小当り遊技状態に制御される。小当り遊技状態では、2ラウンド大当り状態と同様に、特別可変入賞球装置220における開閉板が第2期間開放状態になって大入賞口が開放される。ラウンドの回数は第2回数(例えば、2)である。ただし、2ラウンド大当り状態とは異なり、遊技状態は変更されない。すなわち、小当り遊技状態に制御される前の遊技状態が継続する。ただし、確変状態や時短状態を終了することに決定されている場合には、小当り遊技状態の終了後に、遊技状態は通常状態に制御される。尚、2ラウンド大当り状態における各ラウンドで特別可変入賞球装置220とは別個に設けられた入賞球装置を第1状態に変化させる場合には、小当り遊技状態でも、2ラウンド大当り状態の場合と同様に、その入賞球装置を第1状態に変化させる。
また、確変状態では、低確率状態(通常状態)に比べて、大当りの決定される確率が高くなっている。例えば、10倍になっている。具体的には、確変状態では、大当り判定用乱数の値と一致すると大当りとすることに決定される判定値の数が、通常状態に比べて10倍になっている。また、普通図柄表示器210の停止図柄が当り図柄になる確率が高められている。すなわち、第2始動入賞口214が開放しやすくなって、始動入賞が生じやすくなっている。具体的には、確変状態は、普通図柄当り判定用乱数の値と一致すると当りとすることに決定される判定値の数が、通常状態に比べて多い。また、普通図柄表示器210の停止図柄が当り図柄になる確率を高めることに加えて、可変入賞球装置215の開放回数または開放時間を多くしたり、可変入賞球装置215の開放回数および開放時間を多くしたりしても良い。また、時短状態でも、普通図柄表示器210の停止図柄が当り図柄になる確率を高めたり、可変入賞球装置215の開放回数または開放時間を多くしたり、可変入賞球装置215の開放回数および開放時間を多くしたりしても良い。
演出表示装置209の表示領域において、第1特別図柄表示器208aや第2特別図柄表示器208bによる特別図柄の可変表示に対応して、飾り図柄の可変表示が行われる。すなわち、演出表示装置209の表示領域では、第1開始条件と第2開始条件のいずれか一方が成立したことにもとづいて、「左」、「中」、「右」の各図柄表示エリア209L、209C、209Rにおいて飾り図柄の変動が開始され、例えば、「左」→「右」→「中」の順序で飾り図柄の停止図柄が停止表示(導出表示)される。尚、「左」、「中」、「右」の図柄表示エリア209L、209C、209Rにおいて所定順序で飾り図柄を停止表示しても良いし、「左」、「中」、「右」の各図柄表示エリア209L、209C、209Rにおいて同時に停止図柄を停止表示しても良い。
飾り図柄の可変表示が開始されてから「左」、「中」、「右」の各図柄表示エリア209L、209C、209Rにおいて停止図柄が導出表示されるまでの期間(可変表示期間)で、飾り図柄の可変表示状態が所定のリーチ状態となることがある。リーチ状態は、演出表示装置209の表示領域において停止表示された飾り図柄が大当り組み合わせの一部を構成しているときに未だ停止表示されていない飾り図柄の変動が継続している表示状態、または、全部もしくは一部の飾り図柄が大当り組み合わせの全部または一部を構成しながら同期して変動している表示状態である。リーチ状態における表示演出が、リーチ演出表示(リーチ演出)である。
また、飾り図柄の可変表示中に、リーチ演出とは異なり、飾り図柄の可変表示状態がリーチ状態となる可能性があることや、可変表示結果が大当り図柄になる可能性があることを、飾り図柄の可変表示態様などによって遊技者に報知するための特定演出が実行されることがある。本実施例では、「滑り」、「擬似連」、「イントロ」、「発展チャンス目」、「発展チャンス目終了」といった特定演出が実行可能である。
「滑り」の特定演出では、「左」、「中」、「右」の図柄表示エリア209L、209C、209Rにおいて飾り図柄を変動させてから、2つ以上の図柄表示エリア(例えば、「左」および「右」の図柄表示エリア209L、9R)において飾り図柄を仮停止表示させた後、その仮停止表示した図柄表示エリアのうち所定数(例えば、「1」または「2」)の図柄表示エリア(例えば、「左」の図柄表示エリア209Lと「右」の図柄表示エリア209Rのいずれか一方または双方)において飾り図柄を再び変動させた後に停止表示させることによって、停止表示する飾り図柄を変更させる演出表示が行われる。尚、仮停止表示において揺れ変動表示したり、短時間の仮停止の後に飾り図柄を再変動させることなどによって、遊技者に停止表示された飾り図柄が確定(最終停止)しない旨を報知することが好ましい。また、停止表示された飾り図柄が確定したと遊技者が認識する程度に飾り図柄を仮停止させてから、飾り図柄を再変動させるようにしても良い。
「擬似連」の特定演出では、特別図柄の可変表示の第1開始条件と第2開始条件のいずれか一方が1回成立したことにもとづいて、「左」、「中」、「右」の図柄表示エリア209L、209C、209Rにおいて飾り図柄を変動させてから、全ての図柄表示エリア209L、209C、209Rにおいて飾り図柄を仮停止表示させた後、全ての図柄表示エリア209L、209C、209Rにおいて飾り図柄を再び変動(擬似連変動)させる演出表示を、所定回(例えば、最大4回まで)行う。
遊技制御用マイクロコンピュータ760におけるROM254には、遊技制御用のプログラムの他に、遊技の進行を制御するために用いられる各種のデータテーブルなどが格納されている。例えば、CPU256が各種の判定や決定を行うために用意された複数の判定テーブルや決定テーブルを構成するテーブルデータが記憶されている。また、ROM254には、CPU256が主基板231から各種の制御コマンドを送信するために用いられる複数のコマンドテーブルを構成するテーブルデータや、飾り図柄の変動パターンを複数種類格納する変動パターンテーブルを構成するテーブルデータなどが記憶されている。
ROM254に記憶されている判定テーブルには、例えば、図29に示す特別図柄表示結果判定テーブル330が含まれている。特別図柄表示結果判定テーブル330は、第1特別図柄表示器208aにおける第1特別図柄の可変表示および第2特別図柄表示器208bにおける第2特別図柄の可変表示において可変表示結果となる停止図柄が導出表示される以前に、その可変表示結果を大当り図柄にして大当り遊技状態に制御するか否かや、可変表示結果を小当り図柄にして小当り遊技状態に制御するか否かを、特別図柄の表示結果判定用の乱数MR1にもとづいて判定するために参照されるテーブルである。特別図柄表示結果判定テーブル330には、確変フラグがセットされているか否かに応じて(オフであるかオンであるかに応じて)、特別図柄の表示結果判定用の乱数MR1の値と比較される数値(判定値)であって、大当り、小当り、はずれに対応付けられた判定値が設定されている。
ROM254に記憶されている判定テーブルには、図30に示す大当り種別判定テーブル331が含まれている。大当り種別判定テーブル331は、可変表示結果を大当り図柄にする旨の判定がなされたときに、大当り種別判定用の乱数MR2−1にもとづいて、飾り図柄の可変表示態様を「通常」、「第1確変」〜「第3確変」、「突確」の複数種類の大当り種別のいずれかに決定するために参照されるテーブルである。大当り種別判定テーブル331には、第1特別図柄の変動を示す第1特別図柄変動フラグがセットされているか否かに応じて、大当り種別判定用の乱数MR2−1の値と比較される数値(判定値)であって、「通常」、「第1確変」〜「第3確変」、「突確」の大当り種別に対応した判定値が設定されている。
図30に示す大当り種別判定テーブル331において、第1特別図柄の変動を示す第1特別図柄変動フラグがセットされているか否かに応じて、「突確」の大当り種別に対する判定値の割り当てが異なっている。すなわち、第1特別図柄変動フラグがセットされている場合には、「83」〜「100」の範囲の値が「突確」の大当り種別に対応し、第1特別図柄変動フラグがセットされていない場合(第2特別図柄の変動を示す。)には、「突確」の大当り種別に対して判定値が割り当てられていない。このような設定によって、第1特別図柄表示器208aにおける第1特別図柄の可変表示を開始するための第1開始条件が成立したことにもとづいて大当り種別を複数種類のうちのいずれかに決定する場合と、第2特別図柄表示器208bにおける第2特別図柄の可変表示を開始するための第2開始条件が成立したことにもとづいて大当り種別を複数種類のうちのいずれかに決定する場合とで、大当り種別を「突確」に決定する割合を、異ならせることができる。
図30に示す例では、第2始動入賞にもとづいて第1特別図柄の可変表示が行われる場合には、突確に判定値が割り当てられていない。よって、第2始動入賞口214が開放する機会が多い(開放期間が長いことも含む)確変状態において、突確に決定される割合を低くすることができる。よって、既に確変状態になっている状況において、確変状態に移行させることになる突確が発生して、遊技者に与えられる遊技の興趣が低下してしまう可能性を減らすことができる。
尚、判定値は、抽出された乱数の値(乱数値)と比較される数値であるが、乱数値が判定値のいずれかと一致すると、その判定値に対応する(判定値が割り当てられた)遊技状態等が決定される。例えば、その判定値に対応する演出を実行することに決定される。
以上のように、本実施例のパチンコ遊技機201では、ランダム1が1周する毎に、次回周期の起点となる初期値が初期値決定用乱数であるランダム6に基づいて決定され、決定された初期値からランダム1の更新が開始されるようになっており、ランダム1が1周する毎に、次回周期の起点が変化することとなるため、ランダム1が特定の値となるタイミングを特定することが困難となる。
特に、本実施例では、遊技者にとって有利な大当り遊技状態に移行するか否かが決定される大当り判定に用いる乱数であるMR1を作成するにあたり上記のランダム1を用いているため、遊技者の利益に大きく関わる大当り遊技状態の判定値と一致するMR1が発生するタイミングを狙って遊技が行われてしまうことを防止できる。
尚、本実施例では、ランダム1が1周する毎に、初期値決定用乱数(ランダム6)を用いてランダム1の初期値が変更されるようになっているが、複数周期毎に初期値決定用乱数(ランダム6)を用いてランダム1の初期値を変更する構成、ランダム1を所定回数更新する毎に初期値決定用乱数(ランダム6)を用いてランダム1の初期値を変更する構成であっても良く、さらには、所定時間毎に初期値決定用乱数(ランダム6)を用いてランダム1の初期値を変更する構成であっても良い。
また、初期値決定用乱数(ランダム6)が1周した時点の初期値決定用乱数をそのままランダム1の初期値として用いているが、ランダム1の初期値が1周した時点の初期値決定用乱数に特定の値を加算または減算した値など、初期値決定用乱数に所定の演算を行って得られた演算値をランダム1の初期値として用いても良い。
また、ランダム1は、ランダム1の総数と互いに素の関係となる一定の値を加算した後、ランダム1の総数で除した余りを新たなランダム1とすることで更新されるようになっており、更新後の乱数が更新前の乱数と連続することなく、かつ周期性を持たせることができることから好ましいが、他の乱数と同様に1ずつ加算または減算することにより更新することで周期性を持たせるようにしても良い。
また、ランダム1の初期値を決定するランダム6の範囲がランダム1の範囲と同じ0〜65535であり、ランダム1の初期値、すなわち次回周期の起点がランダム1の全ての数値範囲にわたって変化し得るため、ランダム1の初期値を特定することが困難となることから好ましいが、ランダム6としてランダム1の数値範囲とは異なる範囲の乱数を適用しても良い。
また、ランダム1は、定期的(2ms毎)に更新されるのに対して、ランダム6は、定期的な更新に加えてタイマ割込処理が実行されていない期間においても更新されるようになっている。すなわちランダム1とランダム6の更新頻度が異なるため、ランダム1の初期値が特定の範囲に偏ってしまうことを防止できる。
また、本実施例では、電源投入時においてクリアスイッチが操作されており、電断前の制御状態が初期化される場合でも、電断前のソフトウェア乱数の値が維持されるとともに、電断前のランダム1とランダム6の双方を用いた演算によって得られた値を、ランダム1の初期値として設定し、設定された初期値からランダム1の更新を開始するようになっており、電源投入後、ランダム1の更新を開始する起点もばらつくこととなるので、ランダム1から大当り判定値と比較されるMR1が特定の値となるタイミングを特定することがさらに困難となる。
また、電源投入時のクリアスイッチの操作に伴って電断前の制御状態が初期化される場合に、電断前のランダム1とランダム6の双方を用いた演算によって得られた値を起点としてランダム1の更新が1周した後に、次回周期の起点となるランダム1の初期値が決定され、その後、ランダム1が1周する毎に、ランダム1の初期値が変更されるので、電源投入後の最初のランダム1の周期とその後の周期とが異なってしまうことがなく、クリアスイッチの操作に伴って電断前の制御状態が初期化される場合には、均等な周期のランダム1を用いて大当り判定を行うことが可能となり、遊技の公平性を確保することができる。
尚、本実施例では、ランダム1が1周する毎に、初期値決定用乱数(ランダム6)を用いてランダム1の初期値が変更される構成であるが、前述のように複数周期毎に初期値決定用乱数(ランダム6)を用いてランダム1の初期値を変更する構成、ランダム1を所定回数更新する毎に初期値決定用乱数(ランダム6)を用いてランダム1の初期値を変更する構成、所定時間毎に初期値決定用乱数(ランダム6)を用いてランダム1の初期値を変更する構成など、1周以外の所定期間、ランダム1が更新される毎にランダム1の初期値が変更される構成でも良く、このような構成であれば、電源投入後、ランダム1の更新を開始してから所定期間、ランダム1が更新された後、所定期間毎に初期値決定用乱数(ランダム6)を用いてランダム1の初期値を変更するようにすることで、均等な周期のランダム1を用いて大当り判定を行うことが可能となる。
また、本実施例では、電断時にRAM255の全ての格納データが保持される構成であるが、電断時にRAM255の格納データのうち復帰に必要なデータのみを保持する構成を採用した場合には、上記のように、電断前のランダム1とランダム6の双方を用いた演算によって得られた値を起点としてランダム1の更新が1周した後に、次回周期の起点となるランダム1の初期値を決定し、その後、ランダム1が1周する毎に、ランダム1の初期値を変更する構成とすることで、電断時にランダム1の初期値を保持する必要がなくなることから、電断時に保持されるバックアップデータの容量を削減することができる。
また、本実施例では、電源投入時のクリアスイッチの操作に伴って電断前の制御状態が初期化される場合に、電断前のランダム1とランダム6の双方を用いた演算によって得られた値、すなわち電断前から保持されている複数のデータを用いて算出された値をランダム1の初期値として設定するようになっており、ランダム1から大当り判定に用いる乱数であるMR1が特定の値となるタイミングを特定することがさらに困難となることから好ましいが、電断前のランダム1またはランダム6のいずれか一方を用いた演算によって得られた値をランダム1の初期値として設定するようにしても良い。
また、本実施例では、電源投入時のクリアスイッチの操作に伴って電断前の制御状態が初期化される場合に、電断前のランダム1とランダム6の双方を用いた演算によって得られた値を、ランダム6として設定し、設定された値からランダム6の更新を開始するようになっており、電源投入後、ランダム6の更新を開始する起点もばらつくこととなるので、ランダム1の初期値を特定することが困難となる。
尚、電源投入時のクリアスイッチの操作に伴って電断前の制御状態が初期化される場合に、電断前のランダム1とランダム6の双方を用いた演算によって得られた値、すなわち電断前から保持されている複数のデータを用いて算出された値をランダム6として設定するようになっており、ランダム1の初期値を特定することがささに困難となることから好ましいが、電断前のランダム1またはランダム6のいずれか一方を用いた演算によって得られた値をランダム6として設定するようにしても良い。
また、本実施例では、電断前のランダム1とランダム6の双方を用いた演算によって得られたランダム1の初期値をランダム6として用いるようになっており、ランダム6を算出するためのプログラムを必要としないことからプログラム容量を削減することができる。
尚、本実施例では、電断前のランダム1とランダム6の双方を用いた演算によって得られたランダム1の初期値をランダム6として用いているが、ランダム1の初期値を算出するための演算と同じ演算プログラムにてランダム6を算出する構成とした場合でも、これら双方を算出するための演算プログラムを共通化できるため、プログラム容量を削減することができる。
また、本実施例では、電源投入時に電断前の制御状態に復帰する場合には、電断前から維持されている値からランダム1、ランダム6の更新を開始し、ランダム1が電断前から維持されている初期値に到達することで1周したと判断し、ランダム6に基づいて次回周期の初期値が決定されるようになっており、電源投入時に電断前の制御状態に復帰する場合には、ランダム1、ランダム6の更新も電断前の制御状態から再開されることとなり、電断前の制御状態に復帰する際に、ランダム1、ランダム6についても電断前の状態となるので、電断前と復帰後の制御状態の連続性を確保できる。
また、電源投入時において、電断前の制御状態を初期化する場合と、電断前の制御状態に復帰する場合と、でランダム1、ランダム6の更新を開始する値の決定方法が異なることとなるため、ランダム1から大当り判定に用いる乱数であるMR1が特定の値となるタイミングを特定することやランダム1の初期値を特定することがさらに困難となる。
尚、本実施例では、電源投入時のクリアスイッチの操作に伴って電断前の制御状態が初期化される場合に、電断前から維持されているランダム1を用いた演算により得られた値をランダム1の初期値として設定し、設定した値からランダム1の更新を開始し、電源投入時に電断前の制御状態に復帰する場合には、電断前から維持されている値からランダム1の更新を開始する構成であるが、クリアスイッチの操作に伴って電断前の制御状態が初期化される場合に、電断前から維持されている値からランダム1の更新を開始し、電源投入時に電断前から維持されているランダム1を用いた演算により得られた値をランダム1の初期値として設定し、設定した値からランダム1の更新を開始する構成としても良い。さらには、電源投入後、クリアスイッチの操作に伴って電断前の制御状態が初期化される場合、電源投入時に電断前の制御状態に復帰する場合のいずれの場合でも、ともに電源投入時に電断前から維持されているランダム1を用いた演算により得られた値をランダム1の初期値として設定し、設定した値からランダム1の更新を開始する構成としても良い。
また、本実施例では、カウンタ回路711により生成されるハード乱数と、ソフトウェアにより生成されるソフトウェア乱数であるランダム1と、を用いた演算の結果により得られた値を大当り判定に用いる乱数であるMR1としているので、大当り判定に用いる乱数であるMR1が特定の値となるタイミングを特定することが一層困難となる。
また、カウンタ回路711が出力するカウント値を変化させないような不正行為を受けても、ソフトウェアによって作成されるランダム1によって大当り判定に用いる乱数であるMR1がカウンタ回路711と同じ0〜65535の範囲で変化するので、少なくともカウンタ回路711が出力したカウント値の数値範囲と同じ数値範囲(MR1の数値範囲も同じ)で変化するランダム1によって、MR1がランダムに生ずるようにすることができ、このような場合でも大当り判定に用いる乱数であるMR1が特定の値となるタイミングを特定することが困難となる。すなわち、カウンタ回路711が出力するカウント値が固定されてしまっても(カウント値が変化しない)、カウンタ回路711と同じ数値範囲内で変化するランダム1に対して演算を行った結果は、0〜65535の範囲内でランダムな値になり、このような不正行為に対する対策を施すことができる。
また、ランダム1が、ランダム1の総数と互いに素の関係となる一定の値を加算した後、ランダム1の総数で除した余りを新たなランダム1とすることで更新されるようになっており、更新後の乱数が更新前の乱数と連続することなく、ランダム1だけでも十分なランダム性を確保できるので、上記のようにカウンタ回路711が出力するカウント値を変化させないような不正行為を受けても、大当り判定に用いる乱数であるMR1が特定の値となるタイミングを特定することがさらに困難となる。
また、図29等には、複数の判定値が連続した数値(図29における0〜109など)として示されているが、実際には、複数の判定値は、所定の数値範囲において、飛び飛びの値(離散的な値)として割り当てられる。複数の判定値が離散的な値であれば、CPU256の判定処理(乱数に一致する判定値があるか否か判定する処理)の負担は大きくなるが、不正行為に対する対策としては効果的である。
尚、本実施例では、カウンタ回路711により生成されるハード乱数と、ソフトウェアにより生成されるソフトウェア乱数であるランダム1と、を用いた演算の結果により得られた値を大当り判定に用いる乱数であるMR1として用いているが、ハード乱数を用いずに本実施例のランダム1自体をMR1として用いても良いし、本実施例のランダム1と他のソフトウェア乱数とを用いた演算の結果により得られた値をMR1として用いても良い。
また、本実施例では、普通図柄当り判定用のランダム5も、ランダム1と同様に1周する毎に、初期値決定用のランダム7に基づいて初期値が決定されることで、ランダム5が1周する毎にその初期値が変化する一方、電源投入時にクリアスイッチの操作に伴って初期化される場合には、ランダム5のカウント値及び初期値が新たに設定されることはなく、電断前の値から更新が再開されるようになっているが、ランダム1と同様、電断前から維持されているランダム5及び/またはランダム7を用いた演算によって得られた値をランダム5のカウント値及びその初期値として新たに設定することで、設定された値からランダム5の更新を開始するようにしても良い。
また、大当り種別を判定する際に用いるランダム2−1、リーチ判定に用いるランダム2−2、変動パターン種別判定に用いるランダム3、変動パターン判定に用いるランダム4についても、ランダム1と同様に初期値決定用の乱数カウンタをそれぞれ設け、これら各乱数が1周する毎に、その初期値が変更されるようにしても良い。
この場合には、ランダム1と同様に、電源投入時において電断前から維持されている乱数及び/または対応する初期値決定用の乱数とを用いた演算を行うことにより得られた値を、新たな乱数及びその初期値としてそれぞれ設定し、設定した値から更新を開始することで、それぞれの乱数が特定の値となるタイミングを特定することが困難となる。
以上、本発明の実施例2を図面により説明してきたが、本発明はこの実施例に限定されるものではなく、本発明の主旨を逸脱しない範囲における変更や追加があっても本発明に含まれることは言うまでもない。
例えば、前記実施例2では、各々を識別可能な複数種類の識別情報を可変表示可能な可変表示手段を備え、あらかじめ定められている可変表示の実行条件が成立した後、可変表示の開始条件の成立にもとづいて可変表示手段にて識別情報の可変表示を開始し、識別情報の可変表示の表示結果が特定の表示結果となったときに遊技者にとって有利な特定遊技状態に移行させる遊技機(以下、機種Aという)を例示したが、本発明による遊技機はそのような遊技機に限定されるものではなく、「識別情報を可変表示可能な可変表示手段」を有さない遊技機にも適用できる。つまり、所定の始動入賞領域への入賞により、可変入賞装置を所定回数開放させ、その開放により可変入賞装置に入賞した遊技媒体が特定領域(V領域)を通過すると特定遊技状態(大当り状態)に制御される遊技機(以下、機種Bという)にも適用することができる。
また、機種Aと機種Bとの混合タイプの機種にも適用することができる。つまり、各々を識別可能な複数種類の識別情報を可変表示可能な可変表示手段を備え、あらかじめ定められている可変表示の実行条件が成立した後、可変表示の開始条件の成立にもとづいて可変表示手段にて識別情報の可変表示を開始し、識別情報の可変表示の表示結果が特定の表示結果となったときに遊技者にとって有利な特定遊技状態に移行させる制御と、識別情報の可変表示の表示結果が特定の表示結果と異なる所定の表示結果(小当り)となったときに可変入賞装置を所定回数開放させ、その開放により可変入賞装置に入賞した遊技媒体が特定領域(V領域)を通過することで特定遊技状態(大当り状態)に移行させる制御とをともに実行する遊技機であっても良い。