本発明が適用されたスロットマシンの実施例を図面を用いて説明すると、本実施例のスロットマシン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を照射するバックライト(図示略)が設けられているとともに、さらにその裏面には、内部を隠蔽する隠蔽部材(図示略)が設けられている。
液晶表示器51の前面側(図1においては手前側)には、表示面に対する遊技者からの指示(たとえば、タッチ操作)を検出し、当該位置(たとえば、タッチ操作された位置)を特定するためのタッチパネルを構成する発光装置56a、56bと、受光装置57a、57bと、が設置されている。発光装置56a、56bは、赤外線の発光素子(たとえば、LED)を複数備えている。受光装置57a、57bは、赤外線の受光素子(たとえば、フォトトランジスター)を複数備えている。
発光装置56aと受光装置57aとは、液晶表示器51の表示面を挟んで、水平方向に対に設置されている。発光装置56aと受光装置57aとは、発光装置56aが備える複数の発光素子から放射される赤外線を、受光装置57aが備える複数の受光素子により受光可能に設置されている。同様に、発光装置56bと受光装置57bとは、液晶表示器51の表示面を挟んで、垂直方向に対に設置されている。発光装置56bと受光装置57bとは、発光装置56bが備える複数の発光素子から放射される赤外線を、受光装置57bが備える複数の受光素子により受光可能に設置されている。
本実施例では、発光装置56a、56bから赤外線を投射することにより、液晶表示器51の表示面に沿って赤外線のグリッドが形成される。そして、表示面に対して遊技者によりタッチ操作が行なわれると、受光装置57a、57bは、赤外線の遮光を検出し、この検出された受光素子が配置されている位置を特定するための信号を、後述するタッチパネルコントローラ99に出力する。タッチパネルコントローラ99は、受光装置57a、57bからの信号に基づき、液晶表示器51の表示面に対してタッチ操作された位置を特定することができるようになっており、これらによってタッチパネルが形成されている。
タッチパネルを構成する発光装置56a、56bは、液晶表示器51の表示面の左辺および下辺に設置され、受光装置57a、57bは、液晶表示器51の表示面の右辺および上辺に設置されている。タッチパネルは、発光装置56a、56bおよび受光装置57a、57bにより囲まれた領域内のタッチ操作を検出し、タッチ操作された位置を特定することができるようになっている。
前面扉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内に貯留されたメダルを介して接触することにより導電したときに内部に貯留されたメダル貯留量が所定量以上となったこと、すなわちオーバーフロータンク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、遊技制御基板40と投入メダルセンサ31との間の電気的な接続状態及び遊技制御基板40と演出制御基板90との間の電気的な接続状態を監視する断線監視IC50、その他各種デバイス、回路が搭載されている。
メインCPU41aは、計時機能、タイマ割込などの割込機能(割込禁止機能を含む)を備え、ROM41bに記憶されたプログラム(後述)を実行して、遊技の進行に関する処理を行うととともに、遊技制御基板40に搭載された制御回路の各部を直接的または間接的に制御する。ROM41bは、メインCPU41aが実行するプログラムや各種テーブル等の固定的なデータを記憶する。RAM41cは、メインCPU41aがプログラムを実行する際のワーク領域等として使用される。I/Oポート41dは、メイン制御部41が備える信号入出力端子を介して接続された各回路との間で制御信号を入出力する。
また、メイン制御部41には、停電時においてもバックアップ電源が供給されており、バックアップ電源が供給されている間は、RAM41cに記憶されているデータが保持されるようになっている。
メインCPU41aは、遊技制御基板40に接続された各種スイッチ類の検出状態が変化するまでは制御状態に応じた処理を繰り返しループし、各種スイッチ類の検出状態の変化に応じて段階的に移行する基本処理を実行する。また、メインCPU41aは、前述のように割込機能を備えており、割込の発生により基本処理に割り込んで割込処理を実行できるようになっている。本実施例では、電断検出回路48から出力された電圧低下信号の入力に応じて電断割込処理を実行する。また、メインCPU41aは、一定時間間隔(本実施例では、約0.56ms)毎にタイマ割込処理(メイン)を実行する。尚、タイマ割込処理(メイン)の実行間隔は、基本処理において制御状態に応じて繰り返す処理が一巡する時間とタイマ割込処理(メイン)の実行時間とを合わせた時間よりも長い時間に設定されており、今回と次回のタイマ割込処理(メイン)との間で必ず制御状態に応じて繰り返す処理が最低でも一巡することとなる。
メインCPU41aは、I/Oポート41dを介して演出制御基板90に、各種のコマンドを送信する。遊技制御基板40から演出制御基板90へ送信されるコマンドは一方向のみで送られ、演出制御基板90から遊技制御基板40へ向けてコマンドが送られることはない。遊技制御基板40から演出制御基板90へ送信されるコマンドの伝送ラインは、ストローブ(INT)信号ライン、データ伝送ライン、グラウンドラインから構成されているとともに、演出中継基板80を介して接続されており、遊技制御基板40と演出制御基板90とが直接接続されない構成とされている。
演出制御基板90には、前述したタッチパネルを構成する受光装置57a、57bが接続されており、これら接続された受光装置57a、57bの検出信号がタッチパネルコントローラ99に入力されるようになっている。
演出制御基板90には、スロットマシン1の前面扉1bに配置された液晶表示器51(図1参照)、演出効果LED52、スピーカ53、54、前述したリールLED55等の電気部品が接続されており、これら電気部品は、演出制御基板90に搭載された後述のサブ制御部91による制御に基づいて駆動されるようになっている。また、演出制御基板90には、前述したタッチパネルを構成する発光装置56a、56bが接続されており、発光装置56a、56bは、演出制御基板90に搭載された後述のタッチパネルコントローラ99による制御に基づいて駆動されるようになっている。
演出制御基板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、受光装置57a、57bからの信号に基づき、液晶表示器51の表示面に対してタッチ操作された位置を特定する処理などを行うタッチパネルコントローラ99、その他の回路等、が搭載されており、サブCPU91aは、遊技制御基板40から送信されるコマンド、タッチパネルコントローラ99からの出力情報を受けて、演出を行うための各種の制御を行うとともに、演出制御基板90に搭載された制御回路の各部を直接的または間接的に制御する。
サブCPU91aは、メインCPU41aと同様に、割込機能(割込禁止機能を含む)を備える。サブCPU91aは、メイン制御部41がコマンドを送信する際に出力するストローブ(INT)信号の入力に基づいてメイン制御部41からのコマンドを取得し、受信用バッファに格納するコマンド受信割込処理を実行する。また、サブCPU91aは、一定間隔毎に割込を発生させてタイマ割込処理(サブ)を実行する。また、サブCPU91aは、電断検出回路98から出力された電圧低下信号の入力に応じて電断割込処理を実行する。
また、サブ制御部91にも、停電時においてバックアップ電源が供給されており、バックアップ電源が供給されている間は、RAM91cに記憶されているデータが保持されるようになっている。
本実施例のスロットマシン1は、設定値に応じてメダルの払出率が変わるものである。詳しくは、後述する内部抽選において設定値に応じた当選確率を用いることにより、メダルの払出率が変わるようになっている。設定値は1〜6の6段階からなり、6が最も払出率が高く、5、4、3、2、1の順に払出率が低くなる。すなわち設定値として6が設定されている場合には、遊技者にとって最も有利度が高く、5、4、3、2、1の順に有利度が段階的に低くなる。
設定値を変更するためには、設定キースイッチ37をON状態としてからスロットマシン1の電源をONする必要がある。設定キースイッチ37をON状態として電源をONすると、設定値表示器24に設定値の初期値として1が表示され、リセット/設定スイッチ38の操作による設定値の変更操作が可能な設定変更モードに移行する。設定変更モードにおいて、リセット/設定スイッチ38が操作されると、設定値表示器24に表示された設定値が1ずつ更新されていく(設定6からさらに操作されたときは、設定1に戻る)。そして、スタートスイッチ7が操作されると設定値が確定し、確定した設定値がメイン制御部41のRAM41cに格納される。そして、設定キースイッチ37がOFFされると、遊技の進行が可能な状態に移行する。
次に、メイン制御部41のRAM41cの初期化について説明する。メイン制御部41のRAM41cの格納領域は、重要ワーク、一般ワーク、特別ワーク、設定値ワーク、停止相ワーク、非保存ワーク、未使用領域、スタック領域に区分されている。
重要ワークは、各種表示器やLEDの表示用データ、I/Oポート41dの入出力データ、遊技時間の計時カウンタ等、BB終了時に初期化すると不都合があるデータが格納されるワークである。一般ワークは、停止制御テーブル、停止図柄、メダルの払出枚数、BB中のメダル払出総数等、BB終了時に初期化可能なデータが格納されるワークである。特別ワークは、演出制御基板90へコマンドを送信するためのデータ、各種ソフトウェア乱数等、設定開始前にのみ初期化されるデータが格納されるワークである。設定値ワークは、内部抽選処理で抽選を行う際に用いる設定値が格納されるワークであり、設定開始前(設定変更モードへの移行前)の初期化において0が格納された後、1に補正され、設定終了時(設定変更モードへの終了時)に新たに設定された設定値が格納されることとなる。停止相ワークは、リールモータ32L、32C、32Rの停止相を示すデータが格納されるワークであり、リールモータ32L、32C、32Rが停止状態となった際にその停止相を示すデータが格納されることとなる。非保存ワークは、各種スイッチ類の状態を保持するワークであり、起動時にRAM41cのデータが破壊されているか否かに関わらず必ず値が設定されることとなる。未使用領域は、RAM41cの格納領域のうち使用していない領域であり、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなる。スタック領域は、メインCPU41aのレジスタから退避したデータが格納される領域であり、このうちの未使用スタック領域は、未使用領域と同様に、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなるが、使用中スタック領域は、プログラムの続行のため、初期化されることはない。
本実施例においてメインCPU41aは、設定キースイッチ37、リセット/設定スイッチ38の双方がONの状態での起動時、RAM異常エラー発生時、設定キースイッチ37のみがONの状態での起動時、BB終了時、設定キースイッチ37、リセット/設定スイッチ38の双方がOFFの状態での起動時においてRAM41cのデータが破壊されていないとき、1ゲーム終了時の6つからなる初期化条件が成立した際に、各初期化条件に応じて初期化される領域の異なる5種類の初期化を行う。
初期化0は、起動時において設定キースイッチ37、リセット/設定スイッチ38の双方がONの状態であり、設定変更モードへ移行する場合において、その前に行う初期化、またはRAM異常エラー発生時に行う初期化であり、初期化0では、RAM41cの格納領域のうち、使用中スタック領域を除く全ての領域(未使用領域及び未使用スタック領域を含む)が初期化される。初期化1は、起動時において設定キースイッチ37のみがONの状態であり、設定変更モードへ移行する場合において、その前に行う初期化であり、初期化1では、RAM41cの格納領域のうち、使用中スタック領域及び停止相ワークを除く全ての領域(未使用領域及び未使用スタック領域を含む)が初期化される。初期化2は、BB終了時に行う初期化であり、初期化2では、RAM41cの格納領域のうち、一般ワーク、未使用領域及び未使用スタック領域が初期化される。初期化3は、起動時において設定キースイッチ37、リセット/設定スイッチ38の双方がOFFの状態であり、かつRAM41cのデータが破壊されていない場合において行う初期化であり、初期化3では、非保存ワーク、未使用領域及び未使用スタック領域が初期化される。初期化4は、1ゲーム終了時に行う初期化であり、初期化4では、RAM41cの格納領域のうち、未使用領域及び未使用スタック領域が初期化される。
尚、本実施例では、初期化0、初期化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における役としては、図5に示すように、特別役としてビッグボーナス(以下ではビッグボーナスをBBとする)、レギュラーボーナス(以下ではレギュラーボーナスをRBとする)が、小役として1枚、スイカ、チェリー、ベルが、再遊技役としてリプレイ(1)〜(3)が定められている。
チェリーは、いずれの遊技状態においても右リールについて入賞ラインのいずれかに「白チェリー」の図柄が導出されたときに入賞となり、いずれの遊技状態においても1枚のメダルが払い出される。尚、「白チェリー」の図柄が右リールの上段または下段に停止した場合には、入賞ラインL2、L5または入賞ラインL3、L4の2本の入賞ラインにチェリーの組合せが揃うこととなり、2本の入賞ライン上でチェリーに入賞したこととなるので、2枚のメダルが払い出されることとなる。
スイカは、いずれの遊技状態においても入賞ラインのいずれかに「スイカ−スイカ−スイカ」の組合せまたは「スイカ−スイカ−BAR」の組合せが揃ったときに入賞となり、RB(BB)では15枚のメダルが払い出され、通常遊技状態では12枚のメダルが払い出される。ベルは、いずれの遊技状態においても入賞ラインのいずれかに「ベル−ベル−ベル」の組合せが揃ったときに入賞となり、RB(BB)では15枚のメダルが払い出され、通常遊技状態では10枚のメダルが払い出される。
リプレイ(1)は、通常遊技状態において入賞ラインのいずれかに「リプレイ−リプレイ−リプレイ」の組合せ、「BAR−リプレイ−リプレイ」の組合せ、または「黒7−リプレイ−リプレイ」の組合せのうちいずれかの組合せが揃ったときに入賞となる。リプレイ(2)は、通常遊技状態において入賞ラインのいずれかに「スイカ−リプレイ−リプレイ」の組合せが揃ったときに入賞となる。リプレイ(3)は、通常遊技状態において入賞ラインのいずれかに「黒チェリー−リプレイ−リプレイ」の組合せが揃ったときに入賞となる。リプレイ(1)〜(3)が入賞したときには、メダルの払い出しはないが次のゲームを改めて賭数を設定することなく開始できるので、次のゲームで設定不要となった賭数に対応した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の整数)が取得される。そして、遊技状態及び特別役の持ち越しの有無に応じて定められた各役について、取得した内部抽選用の乱数と、遊技状態、賭数及び設定値に応じて定められた各役の判定値数に応じて行われる。
本実施例では、図5に示すように、遊技状態が、通常遊技状態であるか、RB(BB)であるか、によって内部抽選の対象となる役が異なる。さらに遊技状態が通常遊技状態においては、特別役の持越中であるか否かによっても内部抽選の対象となる役が異なる。
遊技状態が通常遊技状態であり、いずれの特別役も持ち越されていない状態では、BB、RB、リプレイ、スイカ、チェリー、ベルが内部抽選の対象役として順に読み出される。
遊技状態が通常遊技状態であり、いずれかの特別役が持ち越されている状態では、リプレイ、スイカ、チェリー、ベルが内部抽選の対象役として順に読み出される。
遊技状態がRBでは、スイカ、チェリー、ベルが内部抽選の対象役として順に読み出される。
内部抽選では、内部抽選の対象となる役、現在の遊技状態及び設定値に対応して定められた判定値数を、内部抽選用の乱数に順次加算し、加算の結果がオーバーフローしたときに、当該役に当選したものと判定される。このため、判定値数の大小に応じた確率(判定値数/65536)で役が当選することとなる。
そして、いずれかの役の当選が判定された場合には、当選が判定された役に対応する当選フラグをRAM41cに割り当てられた内部当選フラグ格納ワークに設定する。内部当選フラグ格納ワークは、2バイトの格納領域にて構成されており、そのうちの上位バイトが、特別役の当選フラグが設定される特別役格納ワークとして割り当てられ、下位バイトが、一般役の当選フラグが設定される一般役格納ワークとして割り当てられている。詳しくは、特別役が当選した場合には、当該特別役が当選した旨を示す特別役の当選フラグを特別役格納ワークに設定し、一般役格納ワークに設定されている当選フラグをクリアする。また、一般役が当選した場合には、当該一般役が当選した旨を示す一般役の当選フラグを一般役格納ワークに設定する。尚、いずれの役及び役の組合せにも当選しなかった場合には、一般役格納ワークのみクリアする。
次に、リール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が操作されたことを特定可能である。
フリーズコマンドは、後述するフリーズ状態に制御される旨、及びフリーズ状態に制御される場合には、その開始時期が、全リール回転中であるか、第1停止時であるか、第2停止時であるか、を通知するコマンドであり、後述するフリーズ抽選にてフリーズ状態に制御する旨が決定されたときに送信される。
リール回転開始コマンドは、リールの回転の開始を通知するコマンドであり、リール2L、2C、2Rの回転が開始されたときに送信される。
リール停止コマンドは、停止するリールが左リール、中リール、右リールのいずれかであるか、該当するリールの停止操作位置の領域番号、該当するリールの停止位置の領域番号、を特定可能なコマンドであり、各リールの停止操作に伴う停止制御が行われる毎に送信される。また、リール停止コマンドは、ストップスイッチ8L、8C、8Rが操作されたときに送信されるので、リール停止コマンドを受信することでストップスイッチ8L、8C、8Rが操作されたことを特定可能である。
入賞判定コマンドは、入賞の有無、並びに入賞の種類、入賞時のメダルの払出枚数を特定可能なコマンドであり、全リールが停止して入賞判定が行われた後に送信される。
払出開始コマンドは、メダルの払出開始を通知するコマンドであり、入賞やクレジット(賭数の設定に用いられたメダルを含む)の精算によるメダルの払出が開始されたときに送信される。また、払出終了コマンドは、メダルの払出終了を通知するコマンドであり、入賞及びクレジットの精算によるメダルの払出が終了したときに送信される。
遊技状態コマンドは、次ゲームの遊技状態(通常遊技状態であるか、RT(1)中であるか、RT(2)中であるか、RT(3)中であるか、RT(4)中であるか、BB中であるか、RB中であるか、等)及びRT(1)の残りゲーム数、現在設定されている設定値を特定可能なコマンドであり、後述する設定終了コマンドの送信後及びゲームの終了時に送信される。
待機コマンドは、待機状態へ移行する旨を示すコマンドであり、1ゲーム終了後、賭数が設定されずに一定時間経過して待機状態に移行するとき、クレジット(賭数の設定に用いられたメダルを含む)の精算によるメダルの払出が終了し、払出終了コマンドが送信された後に送信される。
打止コマンドは、打止状態の発生または解除を示すコマンドであり、BB終了後、エンディング演出待ち時間が経過した時点で打止状態の発生を示す打止コマンドが送信され、リセット操作がなされて打止状態が解除された時点で、打止状態の解除を示す打止コマンドが送信される。
エラーコマンドは、エラー状態の発生または解除を示すコマンドであり、エラーが判定され、エラー状態に制御された時点でエラー状態の発生を示すエラーコマンドが送信され、リセット操作がなされてエラー状態が解除された時点で、エラー状態の解除を示すエラーコマンドが送信される。
初期化コマンドは、遊技状態が初期化された旨及び設定変更モードの開始を示すコマンドであり、RAM41cが初期化され、設定変更モードに移行した時点で送信される。
設定終了コマンドは、設定変更モードの終了を示すコマンドであり、設定終了時、すなわち設定変更モードの終了時に送信される。
電源投入コマンドは、電源投入時にいずれかの特別役に当選しているか否かを示すコマンドであり、起動時に電断前の状態に復帰することが可能な場合に、電断前の状態に復帰するときに送信される。
ドアコマンドは、ドア開放検出スイッチ25の検出状態、すなわちON(開放状態)/OFF(閉状態)を示すコマンドであり、電源投入時、1ゲーム終了時(ゲーム終了後、次のゲームの賭数の設定が開始可能となる前までの時点)、ドア開放検出スイッチ25の検出状態が変化(ONからOFF、OFFからON)した時に送信される。
操作検出コマンドは、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rのうちゲームの進行制御に関与しない操作スイッチの検出状態がOFFからONに変化した旨、またはONからOFFに変化した旨を示すコマンドであり、ゲームの進行制御に関与しない操作スイッチの検出状態が変化したときに送信される。
これらコマンドのうちドアコマンド、エラーコマンド、初期化コマンド、電源投入コマンド以外のコマンドは、後述する起動処理及びゲーム処理において生成され、RAM41cの特別ワークに設けられた通常コマンド送信用バッファに一時格納され、前述したタイマ割込処理(メイン)において送信される。
エラーコマンド、初期化コマンド、電源投入コマンドは、前述した起動処理において生成され、RAM41cの特別ワークに設けられた特殊コマンド送信用バッファに格納され、前述したタイマ割込処理(メイン)において送信される。
通常コマンド送信用バッファには、最大で16個のコマンドを格納可能な領域が設けられており、複数のコマンドを蓄積できるようになっている。また、各コマンドを格納する領域には、各格納領域毎にアドレス(0〜15)が割り当てられている。更に、通常コマンド送信用バッファには、次に送信すべきコマンドが格納されている領域のアドレスを示す送信ポインタと次にコマンドを格納すべき領域のアドレスを示す格納ポインタが設定されている。送信ポインタは、通常コマンド送信用バッファに格納された未送信のコマンドが送信される毎に1加算され、格納ポインタは、コマンドを格納する際に1加算されるようになっており、未送信のコマンドが全て送信されたとき及び未送信のコマンドで通常コマンド送信用バッファの全ての領域が満タンとなったときに送信ポインタが示すアドレスと格納ポインタのアドレスとが同一の番号となる。尚、未送信のコマンドが格納されている場合には、未送信フラグがセットされるため、送信ポインタが示すアドレスと格納ポインタのアドレスとが同一の番号の場合に、未送信フラグがセットされていれば、通常コマンド送信用バッファが未送信のコマンドで満タンである旨が示され、未送信フラグがセットされていなければ未送信のコマンドが空である旨が示されるようになっている。
特殊コマンド送信用バッファは、通常コマンド送信用バッファとは別個に設けられており、エラーコマンド、電源投入コマンドまたは初期化コマンドを1個のみ格納可能な領域が割り当てられている。特殊コマンド送信用バッファには、電源投入時に初期化される場合には、初期化コマンドが格納され、電断前の状態に復帰する場合には、電源投入コマンドが格納される。また、その後は、エラーの発生時及びエラーの解除時にエラーコマンドが格納される。
ドアコマンドは、前述したタイマ割込処理(メイン)中のドア監視処理においてRAM41cの特別ワークに設けられたドアコマンド送信用バッファに格納され、前述したタイマ割込処理(メイン)において送信される。
ドアコマンド送信用バッファは、通常コマンド送信用バッファとは別個に設けられており、ドアコマンドを1個のみ格納可能な領域が割り当てられている。ドアコマンド送信用バッファには、電源投入時または1ゲーム終了時にその時点のドア開放検出スイッチ25の検出状態を示すドアコマンドが格納され、ドア開放検出スイッチ25の検出状態が変化した時にその変化後の検出状態を示すドアコマンドが格納される。また、ドアコマンド送信用バッファに格納されたドアコマンドは、当該ドアコマンドが送信された後もクリアされることがなく、その後、新たに格納されるドアコマンドによって上書きされるようになっている。尚、電源投入時または1ゲーム終了時には、ドアコマンド送信用バッファに格納されているドアコマンドの送信を要求するドアコマンド送信要求1が設定され、ドアコマンド送信要求1が設定されているか、ドア開放検出スイッチ25の検出状態が変化したときに、ドアコマンド送信要求2が設定されるようになっており、このドアコマンド送信要求2が設定されることによりドアコマンド送信用バッファに格納されているドアコマンドの送信が命令されるようになっている。
本実施例においてメインCPU41aは、0.56msの間隔で割込3を発生させるとともに、割込3の発生によりタイマ割込処理(メイン)を実行するので、タイマ割込処理(メイン)は0.56ms毎に実行されることとなる。また、タイマ割込処理(メイン)では、タイマ割込1〜4が繰り返し行われるようになっており、これらタイマ割込1〜4に固有な処理が2.24msの間隔で行われることとなる。そして、通常コマンド送信用バッファに格納されたコマンド、特殊コマンド送信用バッファに格納されたエラーコマンド、電源投入コマンドまたは初期化コマンド及びドアコマンド送信用バッファに格納されたドアコマンドの送信を行うコマンド送信処理は、タイマ割込2で実行されるので、コマンド送信処理も2.24msの間隔で実行されることとなる。
一方、サブ制御部91のサブCPU91aでは、後述する受信用バッファにバッファしたコマンドを1.12msの間隔で実行するタイマ割込処理(サブ)において取得する。このため、メインCPU41aがタイマ割込処理(メイン)を実行する毎、すなわち0.56msの間隔でコマンドの送信処理を行った場合には、サブ制御部91側でコマンドを正常に受信できない可能性がある。
しかしながら、本実施例では、前述のようにメインCPU41aがタイマ割込処理(メイン)4回につき1回の割合、すなわち2.24msの間隔でコマンド送信処理を実行するとともに1回のコマンド送信処理では、通常コマンド送信用バッファに格納されたコマンド、特殊コマンド送信用バッファに格納されたエラーコマンド、電源投入コマンドまたは初期化コマンド及びドアコマンド送信用バッファに格納されたドアコマンドのうちの1つのみ送信することで、複数のコマンドが連続して送信される場合でも、最低2.24msの間隔をあけて送信されることとなり、サブ制御部91側でこれら連続して送信されるコマンドを確実に取得することができる。
本実施例では、起動処理またはゲーム処理においてドアコマンド以外のコマンドが生成され、通常コマンド送信用バッファまたは特殊コマンド送信用バッファに格納される。一方ドアコマンドは、起動処理またはゲーム処理においてドアコマンド送信用バッファに格納されているドアコマンドの送信を要求するドアコマンド送信要求1が設定された場合、またはドア開放検出スイッチ25の検出状態が変化した場合に、ドアコマンド送信用バッファに格納される。
タイマ割込2内のコマンド送信処理において通常コマンド送信用バッファに格納された未送信のコマンド、特殊コマンド送信用バッファに格納された未送信のエラーコマンド、電源投入コマンドまたは初期化コマンド、またはドアコマンド送信用バッファに格納された未送信のドアコマンドが検知されると、遅延時間が設定され、設定した遅延時間が経過した時点で、通常コマンド送信用バッファに格納された未送信のコマンドまたはドアコマンド送信用バッファに格納された未送信のドアコマンドが送信される。
具体的には、未送信のコマンドを検知すると、0〜17の範囲に設定された遅延用乱数値を取得し、RAM41cの特別ワークに設けられた遅延カウンタに設定する。この際、当該遅延カウンタ値を設定したコマンド送信処理及びその後のタイマ割込2内において実行するコマンド送信処理において遅延カウンタ値を1ずつ減算していき、遅延カウンタ値が0となった時点で、未送信のコマンドを送信する。
すなわち、コマンド送信処理において検知されたコマンドは、コマンド送信処理の実行間隔(2.24ms)の倍数に相当する時間、詳しくはその際取得した遅延カウンタの値から1を減算した値にコマンド送信処理の実行間隔(2.24ms)を乗じた時間{遅延カウンタの値は0〜17の値なので0〜35.84ms}が経過した後、送信されることとなる。
また、本実施例では、通常コマンド送信用バッファに複数のコマンドを格納可能な領域が設けられており、通常コマンド送信用バッファに格納された未送信のコマンドの送信を待たずに、新たに生成したコマンドを通常コマンド送信用バッファの空き領域に格納することが可能とされている。すなわち通常コマンド送信用バッファには複数のコマンドを蓄積できるようになっている。このため、コマンドの送信が遅延されることに伴ってゲームの進行が停止してしまうことを回避できる。尚、通常コマンド送信用バッファが未送信のコマンドで満タンの場合はこの限りでない。
また、基本処理において通常コマンド送信用バッファにコマンドを格納する際に、これらコマンドをその生成順に格納するとともに、コマンド送信処理では通常コマンド送信用バッファに格納された順番でコマンドを送信するようになっている。すなわち通常コマンド送信用バッファに格納されたコマンドは、生成された順番で送信されるようになっている。尚、エラーコマンド、電源投入コマンドまたは初期化コマンドが特殊コマンド送信用バッファに格納された場合には、それよりも先に生成されたコマンドが通常コマンド送信用バッファに格納されていても、原則としてエラーコマンド、電源投入コマンドまたは初期化コマンドが優先して送信される。ただし、通常コマンド送信用バッファに格納されているコマンドの送信待ち(遅延中)の状態でエラーコマンド、電源投入コマンドまたは初期化コマンドが特殊コマンド送信用バッファに格納された場合にはこの限りではなく、送信待ちのコマンドを優先して送信する。送信待ちのコマンドを送信した後、通常コマンド送信用バッファに未送信のコマンドが残っている場合には、特殊コマンド送信用バッファに格納されているエラーコマンド、電源投入コマンドまたは初期化コマンドを優先して送信する。
また、エラーコマンド、電源投入コマンドまたは初期化コマンドが特殊コマンド送信用バッファに格納された場合には、それよりも先にドアコマンドの送信が要求された場合(ドアコマンド送信要求2が設定されている場合)であっても、エラーコマンド、電源投入コマンドまたは初期化コマンドが優先して送信される。
また、通常コマンド送信用バッファにコマンドが格納されている状態で、ドアコマンドの送信が要求された場合(ドアコマンド送信要求2が設定されている場合)には、原則として通常コマンド送信用バッファに格納されているコマンドよりもドアコマンド送信用バッファに格納されているドアコマンドを優先して送信するようになっている。ただし、通常コマンド送信用バッファに格納されているコマンドの送信待ち(遅延中)の状態でドアコマンドの送信が要求された場合にはこの限りではなく、送信待ちのコマンドを優先して送信し、送信待ちのコマンドが送信された後、ドアコマンドを送信する。送信待ちのコマンドを送信した後、通常コマンド送信用バッファに未送信のコマンドが残っている場合には、ドアコマンド送信用バッファに格納されているドアコマンドを優先して送信する。
メインCPU41aは、約100ms毎にドア開放検出スイッチ25の検出状態を監視する。詳しくは、タイマ割込処理(メイン)のタイマ割込1〜4のいずれでも行う、すなわち0.56ms毎に行うポート入力処理においてドア開放検出スイッチ25からの検出信号を正論理化した入力状態(ドア開放検出スイッチ25ON=1、ドア閉塞状態で0)を取得し、タイマ割込処理(メイン)のタイマ割込2で行う、すなわち2.24ms毎に行うドア監視処理において、前述のポート入力処理において取得したドア開放検出スイッチ25の検出信号の確定状態(2回連続同一となった入力状態)を、約100ms(ドア監視処理45回)論理和し続け、その結果を使用してドア開放検出スイッチ25の検出状態を判定する。そして、約100msが経過した時点で算出結果が1の場合、すなわちその間に1回でもドア開放検出スイッチ25のON(開放状態)が検出された場合には、ドア開放検出スイッチ25のONと判定し、算出結果が0の場合、すなわちその間に1回もドア開放検出スイッチ25のON(開放状態)が検出されていない場合には、ドア開放検出スイッチ25のOFFと判定する。この判定の結果と、ドアコマンド送信用バッファに格納されているドアコマンドが示すドア開放検出スイッチ25の検出状態と、が一致すればドア開放検出スイッチ25の検出状態に変化なしと判定し、一致しなければドア開放検出スイッチ25の検出状態が変化したと判定し、ドアコマンド送信用バッファに格納されているドアコマンドを、変化後の検出状態を示すドアコマンドに更新し、ドアコマンド送信要求2を設定して当該ドアコマンドの送信を命令する。また、メインCPU41aは、ドア開放検出スイッチ25の検出状態が変化したと判定した場合に、ドアコマンドの送信命令に加えて、外部出力基板1000に対するドア開放信号の出力状態も更新する。
また、メインCPU41aは、電源投入時または1ゲーム終了時に、起動処理またはゲーム処理においてドアコマンド送信要求1を設定し、ドアコマンド送信用バッファに格納されているドアコマンドの送信を要求する。一方ドア監視処理においては、ドアコマンド送信要求1が設定されているか否かを判定し、ドアコマンド送信要求1が設定されている場合には、ドアコマンドの送信要求ありと判定し、ドアコマンド送信要求2を設定してドアコマンド送信用バッファに格納されているドアコマンドの送信を命令する。また、メインCPU41aは、ドアコマンド送信要求1が設定されている場合に、ドアコマンドの送信命令に加えて、外部出力基板1000に対するドア開放信号の出力状態も更新する。
このように外部出力基板1000に対するドア開放信号の出力状態は、ドアコマンドの送信命令にリンクして更新されるようになっている。
本実施例では、前述のようにドアコマンドを他のコマンドよりも優先して行うとともに、ドアコマンドについても他のコマンドと同様にランダムに決定された遅延時間が経過した後に送信される。一方、コマンドの遅延時間の最大が35.84msであるので、通常コマンド送信用バッファにコマンドが格納されている状態でドアコマンドの送信が要求された場合には、ドアコマンドを送信した後、さらに通常コマンド送信用バッファに格納されているコマンドを送信するまでに約72ms必要とするが、ドア開放検出スイッチ25の監視間隔がドアコマンドを送信した後、さらに通常コマンド送信用バッファに格納されているコマンドを送信するまでに要する約72msよりも短いと、ドア開放検出スイッチ25の検出状態が連続して変化した場合に、その変化し続けている間は、通常コマンド送信用バッファに格納されているコマンドが送信されないこととなるため、通常コマンド送信用バッファがオーバーフローしてしまう可能性がある。このため、本実施例では、ドア開放検出スイッチ25の監視間隔が、ドアコマンドを送信した後、さらに通常コマンド送信用バッファに格納されているコマンドを送信するまでに要する約72msよりも長い約100msに設定されている。これにより、ドア開放検出スイッチ25の検出状態が連続して変化した場合でも、ドアコマンドが送信された後、次のドアコマンドが送信されるまでの間に、通常コマンド送信用バッファに格納されているコマンドを少なくとも1つ以上送信することが可能となり、通常コマンド送信用バッファがオーバーフローしないようになっている。
本実施例のスロットマシン1は、メインCPU41aがゲームの進行制御を行う操作スイッチとして1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rを備える。
これらスイッチ類の操作は、ゲームの終了時から次回のゲーム終了時までを構成する全ての制御状態において常にゲームの進行制御に関与するものではなく、制御状態に応じてゲームの進行制御に関与することもあれば関与しないことがある。
図6に示すように、ゲーム終了後(設定変更後)からゲーム開始までの制御状態においては、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7の操作がゲームの進行制御に関与し、ストップスイッチ8L、8C、8Rの操作はゲームの進行制御に関与しない。さらにゲーム終了後(設定変更後)からゲーム開始までの制御状態であっても、賭数が規定数に到達していない状態、すなわち賭数をさらに加算できる状態であり、かつゲームの開始条件が成立していない状態では、1枚BETスイッチ5、MAXBETスイッチ6の操作がゲームの進行制御に関与するが、スタートスイッチ7の操作はゲームの進行制御に関与せず、一方で、賭数が規定数に到達している状態、すなわち賭数を加算できない状態であり、かつゲームの開始条件が成立している状態では、スタートスイッチ7の操作がゲームの進行制御に関与するが、1枚BETスイッチ5、MAXBETスイッチ6の操作はゲームの進行制御に関与しない。
また、ゲーム開始後からゲーム終了までの制御状態では、ストップスイッチ8L、8C、8Rの操作がゲームの進行制御に関与し、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7の操作はゲームの進行制御に関与しない。さらにゲーム開始後からゲーム終了までの制御状態であっても、全リールが回転中であれば、ストップスイッチ8L、8C、8Rの全ての操作がゲームの進行制御に関与するが、いずれかのリールが停止している状態であれば、ストップスイッチ8L、8C、8Rのうち回転中のリールに対応するストップスイッチのみがゲームの進行制御に関与し、停止済みのリールに対応するストップスイッチはゲームの進行制御に関与しない。また、後述するようにいずれかのリールが回転中であっても一定期間にわたりストップスイッチ8L、8C、8Rの操作が無効化されるフリーズ状態に制御されることがあるが、このフリーズ状態においては、ストップスイッチ8L、8C、8Rの全ての操作がゲームの進行制御に関与しない。
尚、本発明における制御状態とは、ゲーム終了後(設定変更後)からゲーム開始までの制御状態、ゲーム開始後からゲーム終了までの制御状態に限らず、ゲーム終了後(設定変更後)からゲーム開始までの制御状態のうち賭数が規定数に到達していない状態、すなわち賭数をさらに加算できる状態であり、かつゲームの開始条件が成立していない制御状態、賭数が規定数に到達している状態、すなわち賭数を加算できない状態であり、かつゲームの開始条件が成立している制御状態、ゲーム開始後からゲーム終了までの制御状態のうち全リールが回転中の制御状態、左リールのみが停止している制御状態、中リールのみが停止している制御状態、右リールのみが停止している制御状態、左、中リールが停止している制御状態、左、右リールが停止している制御状態、右、中リールが停止している制御状態、前述したフリーズ状態、ウェイト期間の状態、メダルの払出期間の状態のそれぞれについても該当する。さらに、ゲーム終了後(設定変更後)からゲーム開始までの制御状態において1枚BETスイッチ5やMAXBETスイッチ6の操作がゲームの進行制御に関与しない状態であっても、規定数の賭数が既に設定されているために1枚BETスイッチ5やMAXBETスイッチ6の操作がゲームの進行制御に関与しない制御状態と、規定数の賭数が未だ設定されてはいないが、クレジットが残存していないために1枚BETスイッチ5やMAXBETスイッチ6の操作がゲームの進行制御に関与しない制御状態とは、異なる制御状態といえる。
メインCPU41aは、これら操作スイッチのうち制御状態に応じてゲームの進行制御に関与する操作スイッチを、一定時間間隔毎に割り込んで実行されるタイマ割込処理(メイン)中に実行するスイッチ入力判定処理1において検出する。スイッチ入力判定処理1では、操作スイッチの検出状態を監視し、OFFからONに変化した場合に該当する操作スイッチが検出された旨を示すスイッチオンフラグを設定する。そして、基本処理では、ゲームの進行制御に関与する操作スイッチのスイッチオンフラグの有無を判定し、スイッチオンフラグが設定されていると判定された場合に、スイッチオンフラグをクリアし、操作スイッチの操作に応じたゲームの進行制御を行うとともに、ゲームの進行制御に伴うコマンド(BETコマンド、内部当選コマンド、リール停止コマンドなど)をコマンド送信用バッファに格納する処理を行うようになっており、コマンド送信用バッファに格納されたコマンドは、その後実行されるタイマ割込処理(メイン)内のコマンド送信処理にてサブCPU91aに対して送信される。
一方、メインCPU41aは、制御状態に応じてゲームの進行制御に関与しない操作スイッチを、タイマ割込処理(メイン)中に実行するスイッチ入力判定処理2において検出する。スイッチ入力判定処理2では、操作スイッチの検出状態を監視し、OFFからONに変化した場合に該当する操作スイッチがOFFからONに変化した旨を示すエッジデータ(以下、立上りエッジとする)を設定し、ONからOFFに変化した場合に該当する操作スイッチがONからOFFに変化した旨を示すエッジデータ(以下、立下りエッジとする)を設定する。そして、基本処理では、ゲームの進行制御に関与しない操作スイッチの立上りエッジまたは立下りエッジの有無を判定し、立上りエッジまたは立下りエッジが設定されていると判定された場合に、設定されている立上りエッジまたは立下りエッジをクリアし、ゲームの進行制御に関与しない操作スイッチの検出状態が変化した旨を示す操作検出コマンドをコマンド送信用バッファに格納する処理を行うようになっており、コマンド送信用バッファに格納された操作検出コマンドは、その後実行されるタイマ割込処理(メイン)内のコマンド送信処理にてサブCPU91aに対して送信される。
尚、本実施例では、スイッチ入力判定処理1において制御状態に応じてゲームの進行制御に関与する操作スイッチだけでなく、ゲームの進行制御に関与しない操作スイッチの操作が検出された場合にもスイッチオンフラグを設定するが、ゲームの進行制御に関与しない操作スイッチの操作を示すスイッチオンフラグが設定されても基本処理において無視されることにより、当該操作スイッチの操作がゲームの進行制御に関与しない構成であるが、スイッチ入力判定処理1において制御状態に応じてゲームの進行制御に関与する操作スイッチの操作のみを検出し、ゲームの進行制御に関与しない操作スイッチの操作の検出自体を行わない構成としても良い。
また、本実施例では、スイッチ入力判定処理2において制御状態に応じてゲームの進行制御に関与しない操作スイッチだけでなく、ゲームの進行制御に関与する操作スイッチの操作が検出された場合にもエッジデータ(立上りエッジまたは立下りエッジ)を設定するが、ゲームの進行制御に関与する操作スイッチの操作を示すエッジデータが設定されても基本処理においては、ゲームの進行制御に関与する操作スイッチの操作を示すエッジデータを無視し、ゲームの進行制御に関与しない操作スイッチの操作を示すエッジデータのみを監視する構成であるが、スイッチ入力判定処理2において制御状態に応じてゲームの進行制御に関与しない操作スイッチの操作のみを検出し、ゲームの進行制御に関与する操作スイッチの操作の検出自体を行わない構成とし、エッジデータが設定されたときに、当該エッジデータが示す操作スイッチの操作を特定可能な操作検出コマンドを送信するようにしても良い。
本実施例では、ゲーム終了後(設定変更後)からゲーム開始までの制御状態と、ゲームの開始後からゲームの終了までの制御状態と、でゲームの進行制御に関与する操作スイッチ及びゲームの進行制御に関与しない操作スイッチが異なり、メインCPU41aは、前者の制御状態では、ストップスイッチ8L、8C、8Rの操作がゲームの進行制御に関与せず、これらゲームの進行制御に関与しないストップスイッチ8L、8C、8Rの操作が検出されたときに、その旨を特定可能な操作検出コマンドをサブCPU91aに対して送信する一方、後者の制御状態では、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7の操作がゲームの進行制御に関与せず、これらゲームの進行制御に関与しない操作スイッチのうちMAXBETスイッチ6の操作が検出されたときに、その旨を特定可能な操作検出コマンドを送信するようになっており、サブCPU91aは、それぞれの制御状態においてゲームの進行制御に関与しない操作スイッチの操作が検出された旨を特定可能な操作検出コマンドを受信した際に、演出を実行可能である。
すなわちメインCPU41aは、複数の制御状態のうち一方の制御状態ではゲームの進行制御に関与しないが、他方の制御状態においてゲームの進行制御に関与する操作スイッチの操作を一方の制御状態において検出したときに、その旨を特定可能な操作検出コマンドを送信し、他方の制御状態ではゲームの進行制御に関与しないが、一方の制御状態においてゲームの進行制御に関与する操作スイッチの操作を他方の制御状態において検出したときに、その旨を特定可能な操作検出コマンドを送信し、サブCPU91aは、それぞれの制御状態においてゲームの進行制御に関与しない操作スイッチの操作が検出された旨を特定可能な操作検出コマンドを受信した際に、演出を実行可能である。
このように本実施例では、複数の制御状態のいずれにおいても、ゲームの進行制御に関与しない操作スイッチの操作に応じて演出が実行され得るので、ゲームの進行制御に関与しない操作スイッチの操作に応じた演出を有効に活用できるとともに、制御状態に応じて演出を行わせるための操作スイッチが変化するため、ゲームが単調化してしまうことがなく、演出の操作に変化を持たせることが可能となり、効果的に興趣を高めることができる。
また、一方の制御状態ではゲームの進行制御に用いられない操作スイッチが他方の制御状態における演出の契機に用いられるため、複数の制御状態において異なるゲームの進行制御に用いられないそれぞれの操作スイッチを有効に活用できる。
また、本実施例では、ゲーム終了後(設定変更後)からゲーム開始までの制御状態、ゲーム開始後からゲーム終了までの制御状態のうちの一方の制御状態だけでなく、双方の制御状態においてゲームの進行制御に関与しない操作スイッチの操作を検出したときに、その旨を特定可能な操作検出コマンドをサブCPU91aに対して送信し、サブCPU91aは、それぞれの制御状態においてゲームの進行制御に関与しない操作スイッチの操作が検出された旨を特定可能な操作検出コマンドを受信した際に、演出を実行可能であり、ゲーム終了後(設定変更後)からゲーム開始までの制御状態、ゲーム開始後からゲーム終了までの制御状態のうちの一方の制御状態だけでなく、双方の制御状態においてゲームの進行制御に関与しない操作スイッチの操作を活用して演出を行うことが可能である。
尚、本実施例では、ゲーム終了後(設定変更後)からゲーム開始までの制御状態においては、この間に常にゲームの進行制御に関与しないストップスイッチ8L、8C、8Rの操作が検出されたときに、その旨を特定可能な操作検出コマンドを送信するようになっており、ゲーム開始後からゲーム終了までの制御状態においては、この間に常にゲームの進行制御に関与しないMAXBETスイッチ6の操作が検出されたときに、その旨を特定可能な操作検出コマンドを送信するようになっているが、ゲーム終了後(設定変更後)からゲーム開始までの制御状態において賭数が規定数未満であり、スタートスイッチ7の操作がゲームの進行制御に関与しない状態においてスタートスイッチ7の操作が検出されたとき、賭数が規定数となり、1枚BETスイッチ5、MAXBETスイッチ6の操作がゲームの進行制御に関与しない状態において1枚BETスイッチ5、MAXBETスイッチ6の操作が検出されたとき、ゲーム開始後からゲーム終了までの制御状態においていずれかのリールが停止し、対応するストップスイッチの操作がゲームの進行制御に関与しない状態において停止済みリールに対応するストップスイッチの操作が検出されたときなど、その制御状態において常にゲームの進行制御に関与しない操作スイッチだけでなく、状況によってはゲームの進行制御に関与しない操作スイッチの操作が、ゲームの進行制御に関与しない状態において検出されたときにも、その旨を特定可能な操作検出コマンドを送信し、サブCPU91aが、これら操作検出コマンドを受信した際に、演出を実行可能な構成としても良い。
ゲームの進行制御に関与する操作スイッチの操作を検出するスイッチ入力判定処理1では、操作スイッチの検出状態がOFFからONに変化した場合に、他の操作スイッチの検出状態がONでないことを条件に、変化した操作スイッチのスイッチオンフラグを設定するようになっており、他の操作スイッチがONであれば、スイッチオンフラグの設定を行わない。例えば、図7に示すように、ゲーム終了後(設定変更後)からゲーム開始までの制御状態において、MAXBETスイッチ6の検出状態がOFFからONに変化した際に、他の操作スイッチの検出状態がONであればMAXBETスイッチ6のスイッチオンフラグは設定されず、その後、他の操作スイッチの検出状態がOFFとなった状態でMAXBETスイッチ6の検出状態がOFFからONに変化した時点でMAXBETスイッチ6のスイッチオンフラグが設定されるようになっている。また、図9に示すように、ゲーム開始後からゲーム終了までの制御状態において、ストップスイッチの検出状態がOFFからONに変化した際に、他の操作スイッチの検出状態がONであればストップスイッチのスイッチオンフラグは設定されず、その後、他の操作スイッチの検出状態がOFFとなった状態でストップスイッチの検出状態がOFFからONに変化した時点でストップスイッチのスイッチオンフラグが設定されるようになっている。
一方で、ゲームの進行制御に関与しない操作スイッチの操作を検出するスイッチ入力判定処理2では、操作スイッチの検出状態がOFFからONに変化した場合またはONからOFFに変化した場合に、他の操作スイッチの検出状態がONであっても、変化した操作スイッチの立上りエッジまたは立下りエッジを設定するようになっている。例えば、図8に示すように、ゲーム終了後(設定変更後)からゲーム開始までの制御状態において、ストップスイッチの検出状態がOFFからONに変化した際に、他の操作スイッチの検出状態がONであっても、検出状態が変化したストップスイッチの立上りエッジが設定され、ストップスイッチの検出状態がONからOFFに変化した際に、他の操作スイッチの検出状態がONであっても、検出状態が変化したストップスイッチの立下りエッジが設定されるようになっている。また、図10に示すように、ゲーム開始後からゲーム終了までの制御状態において、MAXBETスイッチ6の検出状態がOFFからONに変化した際に、他の操作スイッチの検出状態がONであっても、MAXBETスイッチ6の立上りエッジが設定され、MAXBETスイッチ6の検出状態がONからOFFに変化した際に、他の操作スイッチの検出状態がONであっても、MAXBETスイッチ6の立下りエッジが設定されるようになっている。
このように本実施例では、ゲームの進行制御に関与する操作スイッチの操作を検出するスイッチ入力判定処理1では、ゲームの進行制御に関与する操作スイッチが操作された際に、他の操作スイッチが操作されていないことを条件に、ゲームの進行制御に関与する操作スイッチの操作が検出されるようになっており、他の操作スイッチが操作されている状態では、ゲームの進行制御に関与する操作スイッチが操作されても検出されない。このため、ゲームの進行制御に関与する操作スイッチを含む複数の操作スイッチが同時に操作された場合であっても、これら操作スイッチのうちゲームの進行制御に関与する操作スイッチの操作が検出されることがなく、これらゲームの進行制御に関与する操作スイッチを含む複数の操作スイッチの操作が同時に検出されることによってゲームの進行制御に関与する操作スイッチの操作に応じたゲームの進行制御と、他の操作スイッチの操作に応じた制御と、の間に優先度を設けるなどの処理を必要としないので、ゲームの進行制御に関与する操作スイッチの検出に伴うゲームの進行制御を簡素化することができる。
一方で、ゲームの進行制御に関与しない操作スイッチの操作を検出するスイッチ入力判定処理2では、ゲームの進行制御に関与しない操作スイッチが操作された際に、他の操作スイッチが操作されていても、ゲームの進行制御に関与しない操作スイッチの操作が検出されるようになっている。このため、ゲームの進行制御に影響しない操作スイッチが操作された場合には、他の操作手段と同時に操作されていてもその操作スイッチの操作が検出され、当該操作スイッチの操作を特定可能な操作検出コマンドがサブCPU91aに対して送信されるようになるので、サブCPU91a側でゲームの進行制御に関与しない操作スイッチの操作に伴う演出を確実に実行させることが可能となる。
尚、本実施例では、スイッチ入力判定処理1において、制御状態がBET処理及びリール回転処理のいずれの場合でも、ゲームの進行制御に関与する操作スイッチが操作された際に、他の操作スイッチが操作されていないことを条件に、ゲームの進行制御に関与する操作スイッチの操作が検出されるようになっているが、少なくともいずれかの制御状態において、ゲームの進行制御に関与する操作スイッチが操作された際に、他の操作スイッチが操作されていないことを条件に、ゲームの進行制御に関与する操作スイッチの操作が検出される構成であれば、該当する制御状態においてゲームの進行制御に関与する操作スイッチの検出に伴うゲームの進行制御を簡素化することができるのであり、例えば、BET処理またはリール回転処理のうちいずれか一方の制御状態においてのみ、ゲームの進行制御に関与する操作スイッチが操作された際に、他の操作スイッチが操作されていないことを条件に、ゲームの進行制御に関与する操作スイッチの操作が検出される構成とし、他の制御状態においては、ゲームの進行制御に関与する操作スイッチが操作された際に、他の操作スイッチが操作されていても、ゲームの進行制御に関与する操作スイッチの操作が検出される構成としても良い。
また、本実施例では、ゲームの進行制御に関与しない操作スイッチの操作を検出するスイッチ入力判定処理2では、操作スイッチの検出状態を監視し、操作スイッチの検出状態がOFFからONに変化した旨またはONからOFFに変化した旨、すなわち検出状態が変化した旨を検出し、ゲームの進行に関与しない操作スイッチの検出状態の変化が検出されたときのみ、該当する操作スイッチがOFFからONに変化した旨、またはONからOFFに変化した旨を示す操作検出コマンドがサブCPU91aに対して送信されるようになっている。このため、ゲームの進行制御に関与しない操作スイッチが操作された旨を示す操作検出コマンドの送信を極力減らすことが可能となり、操作検出コマンドの送信に係る制御の負荷を軽減できるうえに、サブCPU91a側でも必要以上に操作検出コマンドを受信せずに済む。
また、ゲームの進行制御に関与しない操作スイッチの検出状態がOFFからONに変化した場合だけでなく、ONからOFFに変化した場合にも、その変化を示す操作検出コマンドが送信されるので、サブCPU91a側で、ゲームの進行制御に関与しない操作スイッチの検出状態をリアルタイムに特定することが可能となるため、ゲームの進行制御に関与しない操作スイッチの操作が開始したタイミングだけでなく、操作が解除されたタイミングや操作が解除されないまま一定時間継続したタイミングに応じて異なる演出を行ったり、演出の開始タイミングや終了タイミングを変化させることも可能となり、ゲームの進行制御に関与しない操作スイッチの操作に応じて多彩な演出を行うことができる。
尚、本実施例では、ゲームの進行制御に関与しない操作スイッチの検出状態がOFFからONに変化した旨またはONからOFFに変化した旨を検出し、ゲームの進行制御に関与しない操作スイッチの検出状態の変化が検出されたときに、変化後の検出状態が特定される操作検出コマンドが送信されるようになっているが、ゲームの進行制御に関与しない操作スイッチの検出状態がOFFからONに変化した旨のみを検出し、OFFからONに変化した旨が検出されたときに、該当する操作スイッチの操作を特定可能な操作検出コマンドを送信するようにしたり、ゲームの進行制御に関与しない操作スイッチの検出状態がONからOFFに変化した旨のみを検出し、ONからOFFに変化した旨が検出されたときに、該当する操作スイッチの操作を特定可能な操作検出コマンドを送信するようにしたりしても良く、このような構成とすることで、ゲームの進行制御に関与しない操作スイッチが操作された旨を示す操作検出コマンドの送信をさらに減らすことが可能となり、操作検出コマンドの送信に係る制御の負荷を軽減できるうえに、サブCPU91a側で受信する操作検出コマンドも減らすことができる。
本実施例では、メインCPU41aがゲームの進行制御に関与する操作スイッチの操作が検出された場合にも、ゲームの進行制御に関与しない操作スイッチの操作が検出された場合にも、操作スイッチが操作された旨を特定可能なコマンドを送信するが、ゲームの進行制御に関与する操作スイッチの操作が検出された場合と、ゲームの進行制御に関与しない操作スイッチの操作が検出された場合と、で異なる種類のコマンドを送信するようになっている。詳しくは、MAXBETスイッチ6の操作がゲームの進行制御に関与する制御状態でMAXBETスイッチ6の操作が検出された場合には、BETコマンドを送信し、MAXBETスイッチ6の操作がゲームの進行制御に関与しない制御状態でMAXBETスイッチ6の操作が検出された場合には、操作検出コマンドを送信する。また、ストップスイッチ8L、8C、8Rの操作がゲームの進行制御に関与する制御状態でストップスイッチ8L、8C、8Rの操作が検出された場合には、リール停止コマンドを送信し、ストップスイッチ8L、8C、8Rの操作がゲームの進行制御に関与しない制御状態でストップスイッチ8L、8C、8Rの操作が検出された場合には、操作検出コマンドを送信する。
BETコマンド、MAXBETスイッチ6が操作された旨を示す操作検出コマンドは、ともにMAXBETスイッチ6が操作された旨を特定可能なコマンドであるが、コマンドの種類を示す種類データが異なり、サブCPU91aは、同じMAXBETスイッチ6が操作された旨を示すコマンドであっても、その種類データの違いによって、当該コマンドがゲームの進行制御に関与する制御状態でMAXBETスイッチ6が操作されたのか、ゲームの進行制御に関与しない制御状態でMAXBETスイッチ6が操作されたのか、を判別することが可能となる。
また、リール停止コマンド、ストップスイッチ8L、8C、8Rが操作された旨を示す操作検出コマンドは、ともにストップスイッチ8L、8C、8Rが操作された旨を特定可能なコマンドであるが、コマンドの種類を示す種類データが異なり、サブCPU91aは、同じストップスイッチ8L、8C、8Rが操作された旨を示すコマンドであっても、その種類データの違いによって、当該コマンドがゲームの進行制御に関与する制御状態でストップスイッチ8L、8C、8Rが操作されたのか、ゲームの進行制御に関与しない制御状態でストップスイッチ8L、8C、8Rが操作されたのか、を判別することが可能となる。
このように本実施例では、メインCPU41aが、ゲームの進行制御に関与する操作スイッチの操作が検出された場合と、ゲームの進行制御に関与しない操作スイッチの操作が検出された場合と、で異なる種類のコマンドを送信するようになっており、サブCPU91aは、操作スイッチが操作された旨を示すコマンドを受信した際に、その種類の違いから、ゲームの進行制御に関与する状態で操作されたのか、ゲームの進行制御に関与しない状態で操作されたのか、を判別することが可能となり、操作スイッチが操作された旨を示すコマンドを受信した際に、前後のコマンドなどから当該コマンドが示す操作スイッチの操作がゲームの進行制御に関与するものであるか否かを特定する必要がない。
また、メインCPU41aは、ゲームの進行制御に関与する操作スイッチの操作が検出された場合と、ゲームの進行制御に関与しない操作スイッチの操作が検出された場合と、で異なる種類のコマンドを送信するが、ゲームの進行制御に関与する操作スイッチの操作を特定可能なBETコマンド、リール停止コマンドを送信する場合であっても、ゲームの進行制御に関与しない操作スイッチの操作を特定可能な操作検出コマンドを送信する場合であっても、共通の通常コマンド送信用バッファに格納し、共通のコマンド送信処理によって通常コマンド送信用バッファに格納された順番で送信するようになっている。このため、RAM41cのワーク領域に、通常コマンド送信用バッファとは別に操作検出コマンドを格納するための領域を設ける必要がないため、メインCPU41aが動作を行うためのワーク領域を削減できるとともに、操作検出コマンドを送信する際の処理が他のコマンドと共通化されているため、プログラム容量も削減できる。
また、メインCPU41aは、エラーコマンドが特殊コマンド送信用バッファに格納された場合には、それよりも先に生成されたコマンドが通常コマンド送信用バッファに格納されていても、原則として通常コマンド送信用バッファに格納されているコマンドよりもエラーコマンドを優先して送信するようになっている。また、ドアコマンドがドアコマンド送信用バッファに格納された場合には、それよりも先に生成されたコマンドが通常コマンド送信用バッファに格納されていても、原則として通常コマンド送信用バッファに格納されているコマンドよりもドアコマンドを優先して送信するようになっている。
このため、ゲームの進行制御に関与しない操作スイッチの操作が検出され、操作検出コマンドが通常コマンド送信用バッファに格納されていても、その後に発生した事象に基づくエラーコマンドやドアコマンドが優先して送信されるので、ゲームの進行制御に関与しない操作の影響によってサブCPU91a側でエラーの報知やドア開放の報知が遅れてしまうことを防止できる。
本実施例のスロットマシン1では、ゲーム終了後(設定変更後)からゲーム開始までの制御状態において、賭数が規定数未満であれば、ストップスイッチ8L、8C、8R、スタートスイッチ7の操作がゲームの進行制御に関与せず、賭数が規定数に到達していれば、ストップスイッチ8L、8C、8R、1枚BETスイッチ5、MAXBETスイッチ6の操作がゲームの進行制御に関与しないが、メインCPU41aは、ゲーム終了後(設定変更後)からゲーム開始までの制御状態において基本処理を構成するBET処理において、これらゲームの進行制御に関与しない操作スイッチのうちストップスイッチ8L、8C、8Rの検出状態の変化を示す立上りエッジまたは立下りエッジの有無のみを判定し、ストップスイッチ8L、8C、8Rの検出状態の変化を示す立上りエッジまたは立下りエッジが設定されていると判定された場合に、該当するストップスイッチの立上りエッジまたは立下りエッジを示す操作検出コマンドを通常コマンド送信用バッファに格納する。これにより、ゲーム終了後(設定変更後)からゲーム開始までの制御状態においてゲームの進行制御に関与しないストップスイッチ8L、8C、8Rの検出状態が変化すると、サブCPU91aに対して、該当するストップスイッチの立上りエッジまたは立下りエッジを示す操作検出コマンドが送信されることとなる。
一方で、BET処理においては、ゲームの進行制御に関与しない操作スイッチのうちストップスイッチ8L、8C、8R以外の操作スイッチの検出状態の変化を示す立上りエッジまたは立下りエッジの有無は判定されず、これらゲームの進行制御に関与しないストップスイッチ8L、8C、8R以外の操作スイッチの検出状態の変化を示す立上りエッジまたは立下りエッジが設定されても、該当する操作スイッチの立上りエッジまたは立下りエッジを示す操作検出コマンドが通常コマンド送信用バッファに格納されることはない。このため、これらゲームの進行制御に関与しないストップスイッチ8L、8C、8R以外の操作スイッチの検出状態の変化を示す立上りエッジまたは立下りエッジが設定されても、操作検出コマンドが送信されることはない。
ゲーム開始後からゲーム終了までの制御状態において、フリーズ状態以外であれば、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、停止済リールに対応するストップスイッチの操作がゲームの進行制御に関与せず、フリーズ状態であれば、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rの操作がゲームの進行制御に関与しないが、メインCPU41aは、ゲーム開始後からゲーム終了までの制御状態において基本処理を構成するリール回転処理において、これらゲームの進行制御に関与しない操作スイッチのうちMAXBETスイッチ6の検出状態の変化を示す立上りエッジまたは立下りエッジの有無のみを判定し、MAXBETスイッチ6の検出状態の変化を示す立上りエッジまたは立下りエッジが設定されていると判定された場合に、MAXBETスイッチ6の立上りエッジまたは立下りエッジを示す操作検出コマンドを通常コマンド送信用バッファに格納する。これにより、ゲーム開始後からゲーム終了までの制御状態においてゲームの進行制御に関与しないMAXBETスイッチ6の検出状態が変化すると、サブCPU91aに対して、MAXBETスイッチ6の立上りエッジまたは立下りエッジを示す操作検出コマンドが送信されることとなる。
一方で、リール回転処理においては、ゲームの進行制御に関与しない操作スイッチのうちMAXBETスイッチ6以外の操作スイッチの検出状態の変化を示す立上りエッジまたは立下りエッジの有無は判定されず、これらゲームの進行制御に関与しないMAXBETスイッチ6以外の操作スイッチの検出状態の変化を示す立上りエッジまたは立下りエッジが設定されても、該当する操作スイッチの立上りエッジまたは立下りエッジを示す操作検出コマンドが通常コマンド送信用バッファに格納されることはない。このため、これらゲームの進行制御に関与しないMAXBETスイッチ6以外の操作スイッチの検出状態の変化を示す立上りエッジまたは立下りエッジが設定されても、操作検出コマンドが送信されることはない。
このように本実施例では、ある制御状態においてゲームの進行制御に関与しない操作スイッチが複数であっても、そのうちの特定の操作スイッチの操作が検出された場合のみ、該当する操作スイッチの操作を特定可能な操作検出コマンドを送信し、ゲームの進行制御に関与しない操作スイッチが操作されても特定の操作スイッチ以外であれば操作検出コマンドは送信されないようになっている。このため、ゲームの進行制御に関与しない操作スイッチが操作された旨を示す操作検出コマンドの送信を極力減らすことが可能となり、操作検出コマンドの送信に係る制御の負荷を軽減できるうえに、サブCPU91a側でも必要以上に操作検出コマンドを受信せずに済む。
尚、本実施例では、スイッチ入力判定処理2において、全ての操作スイッチについてその検出状態の変化を検出し、検出された場合には、該当する操作スイッチの立上りエッジまたは立下りエッジを設定し、基本処理においてゲームの進行制御に関与しない操作スイッチのうちの特定の操作スイッチについてのみ立上りエッジまたは立下りエッジが設定されているか否かを判定し、特定の操作スイッチの立上りエッジまたは立下りエッジが設定されていると判定された場合のみ、操作検出コマンドを送信することにより、ゲームの進行制御に関与しない複数の操作スイッチのうち特定の操作スイッチが操作された場合のみ操作検出コマンドが送信されるようになっているが、スイッチ入力判定処理2において、全ての操作スイッチについて検出状態の変化を検出するのではなく、ゲームの進行制御に関与しない操作スイッチのうちの特定の操作スイッチについてのみ検出状態の変化を監視し、その変化が検出された場合に、立上りエッジまたは立下りエッジを設定し、立上りエッジまたは立下りエッジが設定された場合に一律に該当する操作スイッチの検出状態の変化を示す操作検出コマンドを送信する構成としても、特定の操作スイッチ以外の操作検出コマンドを送信せずに済むため、ゲームの進行制御に関与しない操作スイッチが操作された旨を示す操作検出コマンドの送信を極力減らすことが可能となり、操作検出コマンドの送信に係る制御の負荷を軽減できるうえに、サブCPU91a側でも必要以上に操作検出コマンドを受信せずに済む。
また、本実施例では、ゲームの進行制御に関与しない複数の操作スイッチのうち特定の操作スイッチが操作された場合のみ操作検出コマンドが送信されるようになっているが、ゲームの進行制御に関与しない複数の操作スイッチそれぞれが操作された場合に操作検出コマンドを送信する構成としても良く、このような構成とすることで、サブCPU91aが側で、ゲームの進行制御に関与しない操作スイッチの操作を用いて多様な演出を行うことができる。
本実施例では、基本処理において通常コマンド送信用バッファにコマンドが格納されているか否かに関わらず、ゲームの進行制御に関与する操作スイッチの操作が検出された旨を示すスイッチオンフラグが設定されているか否かを判定し、スイッチオンフラグが設定されていると判定した場合に、スイッチオンフラグが示す操作スイッチが操作された旨を特定可能なコマンドを通常コマンド送信用バッファに格納する。例えば、図11に示すように、タイマ割込処理(メイン)においてスイッチオンフラグが設定され、復帰後の基本処理においてスイッチオンフラグが設定されていると判定した場合に、通常コマンド送信用バッファにコマンドが格納されていてもその時点でスイッチオンフラグが示す操作スイッチの操作を特定可能なコマンドが通常コマンド送信用バッファに格納される。
一方で、基本処理において通常コマンド送信用バッファが空であるか否かを判定し、通常コマンド送信用バッファが空であると判定した場合に限り、ゲームの進行制御に関与しない操作スイッチの操作が検出された旨を示す立上りエッジまたは立下りエッジが設定されているか否かを判定し、立上りエッジまたは立下りエッジが設定されていると判定した場合に、立上りエッジまたは立下りエッジが示す操作スイッチが操作された旨を特定可能な操作検出コマンドを通常コマンド送信用バッファに格納する。例えば、図12に示すように、タイマ割込処理(メイン)において立上りエッジまたは立下りエッジが設定された場合に、復帰後の基本処理において通常コマンド送信用バッファにコマンドが格納されていなければ、その時点で立上りエッジまたは立下りエッジが示す操作スイッチの操作を特定可能な操作検出コマンドが通常コマンド送信用バッファに格納されるが、通常コマンド送信用バッファにコマンドが格納されている場合には、その時点では操作検出コマンドは格納されず、通常コマンド送信用バッファが空となった時点で立上りエッジまたは立下りエッジが示す操作スイッチの操作を特定可能な操作検出コマンドが格納される。
本実施例のスロットマシン1では、前述のようにゲームの進行制御に関与する操作スイッチの操作が検出された場合に送信されるBETコマンドやリール停止制御コマンドも、ゲームの進行制御に関与しない操作スイッチの操作が検出された場合に送信される操作検出コマンドも、共通の通常コマンド送信用バッファに格納され、これらコマンドは格納された順番で送信されるようになっている。また、コマンド送信処理は、タイマ割込処理(メイン)4回に1回しか行われず、さらに1回のコマンド送信処理では、最も早い段階で格納されたコマンドのみが送信されるので、通常コマンド送信用バッファに複数のコマンドが格納されている場合、最後に格納されたコマンドは、格納されているコマンド数をnとした場合に、コマンド送信処理の実行間隔は2.24msであることから、最速でも、(2.24×n)の時間が経過するまでは送信されることがなく、このような場合には、最後に格納されたコマンドの送信タイミングが大幅に遅れてしまう虞がある。
これに対して、メインCPU41aは、基本処理において通常コマンド送信用バッファが空か否かを判定し、通常コマンド送信用バッファが空であると判定した場合に限り、ゲームの進行制御に関与しない操作スイッチの操作が検出された旨を示す立上りエッジまたは立下りエッジが設定されているか否かを判定し、立上りエッジまたは立下りエッジが設定されていると判定した場合に、立上りエッジまたは立下りエッジが示す操作スイッチが操作された旨を特定可能な操作検出コマンドを通常コマンド送信用バッファに格納し、通常コマンド送信用バッファが空ではないと判定した場合には、立上りエッジまたは立下りエッジが設定されているか否かを判定せず、操作検出コマンドが通常コマンド送信用バッファに格納されることがない。このため、ゲームの進行制御に関与しない操作スイッチが連続して操作されても、操作検出コマンドが通常コマンド送信用バッファに複数貯まってしまうことがなく、操作検出コマンドが通常コマンド送信用バッファに複数貯まってしまった結果、ゲームの進行制御に関与する操作スイッチが操作された旨を示すコマンドの送信が大幅に遅れてしまうことを防止できる。
尚、本実施例では、基本処理において通常コマンド送信用バッファが空か否かを判定し、通常コマンド送信用バッファが空であると判定した場合に限り、ゲームの進行制御に関与しない操作スイッチの操作が検出された旨を示す立上りエッジまたは立下りエッジが設定されているか否かを判定することで、通常コマンド送信用バッファが空の場合にのみ操作検出コマンドが格納される構成としているが、基本処理においてゲームの進行制御に関与しない操作スイッチの操作が検出された旨を示す立上りエッジまたは立下りエッジが設定されているか否かを判定し、立上りエッジまたは立下りエッジが設定されていると判定された場合に、通常コマンド送信用バッファが空か否かを判定し、通常コマンド送信用バッファが空であると判定した場合に限り、通常コマンド送信用バッファに操作検出コマンドを格納することで、通常コマンド送信用バッファが空の場合にのみ操作検出コマンドが格納される構成としても良く、このような構成であっても上記と同様の効果が得られる。
また、スイッチ入力判定処理2においてゲームの進行制御に関与しない操作スイッチの操作が検出された際に、通常コマンド送信用バッファが空か否かを判定し、通常コマンド送信用バッファが空であると判定した場合に限り、立上りエッジまたは立下りエッジを設定することで、通常コマンド送信用バッファが空の場合にのみ操作検出コマンドが格納される構成としたり、スイッチ入力判定処理2において通常コマンド送信用バッファが空か否かを判定し、通常コマンド送信用バッファが空であると判定した場合に限り、ゲームの進行制御に関与しない操作スイッチの検出状態を監視し、通常コマンド送信用バッファが空ではない場合にゲームの進行制御に関与しない操作スイッチの検出状態を監視しないことで、通常コマンド送信用バッファが空の場合にのみ操作検出コマンドが格納される構成としても良く、これらの構成であっても上記と同様の効果が得られる。
また、本実施例では、通常コマンド送信用バッファに未送信のコマンドが格納されている状態で設定された立上りエッジまたは立下りエッジは、通常コマンド送信用バッファが空となるまで維持され、通常コマンド送信用バッファが空となった時点で、立上りエッジまたは立下りエッジが設定されていることが判定され、その時点で操作検出コマンドが通常コマンド送信用バッファに格納されるようになっているが、通常コマンド送信用バッファに未送信のコマンドが格納されている状態で設定された立上りエッジまたは立下りエッジをクリアすることで、通常コマンド送信用バッファに未送信のコマンドが格納されている状態でゲームの進行制御に関与しない操作スイッチが検出された場合に当該検出が無効化するようにしても良い。
また、本実施例では、通常コマンド送信用バッファが空であると判定した場合に限り、操作検出コマンドが格納される構成、すなわち通常コマンド送信用バッファに格納されているコマンドの種類に関わらず、いずれかの種類のコマンドが格納されていれば、操作検出コマンドが格納されない構成であるが、通常コマンド送信用バッファに特定の種類のコマンドが格納されている場合に限り、操作検出コマンドを格納せず、特定の種類以外のコマンドが格納されていれば操作検出コマンドを格納する構成としても良く、例えば、操作検出コマンドが格納されていない場合に限り、操作検出コマンドを格納する構成としたり、センサの変化がなくとも一定間隔でそのセンサ状態を示すコマンド以外のコマンドが格納されていない場合に限り、操作検出コマンドを格納する構成としても良く、これらの構成とすることで、操作検出コマンドの送信が必要以上に遅れてしまうことがない。
また、本実施例では、ゲームの進行制御に関与する操作スイッチの操作が検出された旨を特定可能なコマンドと、ゲームの進行制御に関与しない操作スイッチの操作が検出された旨を特定可能な操作検出コマンドと、が同じ通常コマンド送信用バッファに格納されるようになっているが、ゲームの進行制御に関与する操作スイッチの操作が検出された旨を特定可能なコマンドを格納する通常コマンド送信用バッファとは別に、ゲームの進行制御に関与しない操作スイッチの操作が検出された旨を特定可能な操作検出コマンドを格納する操作検出コマンド送信用バッファを設け、基本処理においては、通常コマンド送信用バッファが空か否かに関わらず、ゲームの進行制御に関与する操作スイッチの操作が検出された場合に、操作検出コマンドを操作検出コマンド送信用バッファに格納するが、コマンド送信処理において、操作検出コマンド送信用バッファよりも先に通常コマンド送信用バッファにコマンドが格納されているか否かを判定し、通常コマンド送信用バッファにコマンドが格納されている場合には、この通常コマンド送信用バッファに格納されているコマンドの送信を行うことにより、操作検出コマンドよりもゲームの進行制御に関与する操作スイッチの操作が検出された旨を特定可能なコマンドの送信を優先する構成としても良く、このような構成とした場合でも、ゲームの進行制御に関与しない操作スイッチの操作によって、ゲームの進行制御に関与する操作スイッチが操作された旨を特定可能なコマンドの送信が大幅に遅れてしまうことを防止できる。
また、ゲームの進行制御に関与する操作スイッチの操作が検出された旨を特定可能なコマンドを格納する通常コマンド送信用バッファとは別に、ゲームの進行制御に関与しない操作スイッチの操作が検出された旨を特定可能な操作検出コマンドを格納する操作検出コマンド送信用バッファを設け、コマンド送信処理において、通常コマンド送信用バッファに格納されているコマンドの送信と、操作検出コマンド送信用バッファに格納されている操作検出コマンドの送信と、を交互に行う構成としたり、操作検出コマンド送信用バッファに格納されている操作検出コマンドを、n(nは自然数)回コマンドを送信する毎に1回のみ送信することにより、操作検出コマンドよりもゲームの進行制御に関与する操作スイッチの操作が検出された旨を特定可能なコマンドの送信を優先する構成としても良く、このような構成とした場合でも、ゲームの進行制御に関与しない操作スイッチの操作によって、ゲームの進行制御に関与する操作スイッチが操作された旨を特定可能なコマンドの送信が大幅に遅れてしまうことを防止できる。
また、このような構成とした場合であっても、基本処理において通常コマンド送信用バッファが空か否かを判定し、通常コマンド送信用バッファが空であると判定した場合に限り、操作検出コマンドが格納される構成とすることが好ましく、通常コマンド送信用バッファにコマンドが既に格納されている場合には、そのコマンドが送信されるまでは、操作検出コマンド送信用バッファに新たに操作検出コマンドが格納されることがなく、送信の遅延中にゲームの進行制御に関与する操作スイッチの操作が検出され、新たに通常コマンド送信用バッファにゲームの進行制御に関与する操作スイッチが操作された旨を特定可能なコマンドが格納された場合でも、当該コマンドの送信が遅れてしまうことを防止できる。
また、ゲームの進行制御に関与する操作スイッチの操作が検出された旨を特定可能なコマンドを格納する通常コマンド送信用バッファとは別に、ゲームの進行制御に関与しない操作スイッチの操作が検出された旨を特定可能な操作検出コマンドを格納する操作検出コマンド送信用バッファを設け、コマンド送信処理において、通常コマンド送信用バッファにコマンドが格納されているか否かを判定する第1の判定、操作検出コマンド送信用バッファに操作検出コマンドが格納されているか否かを判定する第2の判定のうち先に行う判定を、コマンドを1回送信する毎に交互に変更する構成としたり、n(nは自然数)回コマンドを送信する毎に1回のみ第1の判定よりも先に第2の判定を行い、他は第2の判定よりも先に第1の判定を行うことにより、操作検出コマンドよりもゲームの進行制御に関与する操作スイッチの操作が検出された旨を特定可能なコマンドの送信を優先する構成としても良く、このような構成とした場合でも、ゲームの進行制御に関与しない操作スイッチの操作によって、ゲームの進行制御に関与する操作スイッチが操作された旨を特定可能なコマンドの送信が大幅に遅れてしまうことを防止できる。
また、このような構成とした場合であっても、基本処理において通常コマンド送信用バッファが空か否かを判定し、通常コマンド送信用バッファが空であると判定した場合に限り、操作検出コマンドが格納される構成とすることが好ましく、通常コマンド送信用バッファにコマンドが既に格納されている場合には、そのコマンドが送信されるまでは、操作検出コマンド送信用バッファに新たに操作検出コマンドが格納されることがなく、送信の遅延中にゲームの進行制御に関与する操作スイッチの操作が検出され、新たに通常コマンド送信用バッファにゲームの進行制御に関与する操作スイッチが操作された旨を特定可能なコマンドが格納された場合でも、当該コマンドの送信が遅れてしまうことを防止できる。
また、本実施例のスロットマシン1では、タイマ割込処理(メイン)において操作スイッチの操作を検出し、基本処理においては、タイマ割込処理(メイン)で操作スイッチの操作が検出されるまで制御状態に応じて定められた処理を繰り返し行い、操作スイッチの操作が検出されることで、段階的に次の制御状態に移行させることでゲームの進行制御を行っている。
一方で、コマンドは基本処理において生成されてコマンド送信用バッファに格納され、その後のタイマ割込処理(メイン)においてサブCPU91aに対して送信されるようになっている。また、コマンド送信処理は、タイマ割込処理(メイン)内において1回のみ実行され、1回のコマンド送信処理では、最も早い段階で生成・格納されたコマンドが1つのみ送信されるようになっている。
また、ゲームの進行制御に関与する操作スイッチの操作を検出するスイッチ入力判定処理1、ゲームの進行制御に関与しない操作スイッチの操作を検出するスイッチ入力判定処理2が、同じタイマ割込処理(メイン)内で実行されるようになっており、ゲームの進行制御に関与する操作スイッチの操作と、ゲームの進行に関与しない操作スイッチの操作と、が同じタイマ割込処理(メイン)内で検出される場合がある。
このような場合、タイマ割込処理(メイン)は一定時間毎に一律に実行され、基本処理中のどの位置で実行されるかは分からないため、基本処理でゲームの進行制御に関与する操作スイッチの操作の検出が判定されるよりも前に、ゲームの進行制御に関与しない操作スイッチの操作の検出が判定されてしまうこともあり、この場合には、ゲームの進行制御に関与する操作スイッチの操作を特定可能なコマンドよりもゲームの進行制御に関与しない操作スイッチの操作を特定可能な操作検出コマンドが先に通常コマンド送信用バッファに格納されてしまうこととなり、操作検出コマンドによって、BETコマンドやリール停止コマンドなどゲームの進行制御に関与する操作スイッチの操作を特定可能なコマンドの送信が遅れてしまい、さらにはゲームの進行制御に関与しない操作の影響によってゲームの進行制御に関与する操作に応じた演出が遅れてしまうという問題が生じる。
このため、本実施例では、基本処理においてゲームの進行制御に関与しない操作が検出された旨を示す立上りエッジまたは立下りエッジが設定されているか否かの判定を行う前に、ゲームの進行制御に関与する操作スイッチの操作が検出された旨を示すスイッチオンフラグが設定されているか否かを判定し、ゲームの進行制御に関与する操作スイッチの操作が検出された旨を示すスイッチオンフラグが設定されていないと判定した場合に限り、立上りエッジまたは立下りエッジが設定されているか否かの判定を行い、立上りエッジまたは立下りエッジが設定されている場合に、該当する操作スイッチの操作検出コマンドを通常コマンド送信用バッファに格納するようになっている。
これにより、図13に示すように、同一のタイマ割込処理(メイン)内でゲームの進行制御に関与する操作スイッチの操作及びゲームの進行制御に関与しない操作スイッチの操作の双方が検出され、スイッチオンフラグ及び立上りエッジまたは立下りエッジの双方が設定された場合において、必ず立上りエッジまたは立下りエッジが設定されている旨が判定されて操作検出コマンドが設定されるよりも前にスイッチオンフラグが設定されている旨が判定され、スイッチオンフラグが示す操作スイッチの操作を特定可能なコマンドが通常コマンド送信用バッファに格納されることとなり、同一のタイマ割込処理(メイン)内でゲームの進行制御に関与する操作スイッチの操作及びゲームの進行制御に関与しない操作スイッチの操作の双方が検出された場合でも、必ずゲームの進行制御に関与する操作スイッチの操作を特定可能なコマンドがゲームの進行制御に関与しない操作スイッチの操作を特定可能な操作検出コマンドよりも先にサブCPU91aに対して送信されることとなる。このため、ゲームの進行制御に関与しない操作スイッチの操作を特定可能な操作検出コマンドによって、ゲームの進行制御に関与する操作スイッチの操作を特定可能なコマンドの送信が遅れてしまうことがなく、ゲームの進行制御に影響しない操作の影響によってゲームの進行制御に関与する操作に応じた演出が遅れてしまうことを防止できる。
尚、本実施例では、基本処理においてゲームの進行制御に関与しない操作が検出された旨を示す立上りエッジまたは立下りエッジが設定されているか否かの判定を行う前に、ゲームの進行制御に関与する操作スイッチの操作が検出された旨を示すスイッチオンフラグが設定されているか否かを判定し、ゲームの進行制御に関与する操作スイッチの操作が検出された旨を示すスイッチオンフラグが設定されていないと判定した場合に限り、立上りエッジまたは立下りエッジが設定されているか否かの判定を行うことで、必ずゲームの進行制御に関与する操作スイッチの操作を特定可能なコマンドがゲームの進行制御に関与しない操作スイッチの操作を特定可能な操作検出コマンドよりも先にサブCPU91aに対して送信される構成であるが、基本処理において立上りエッジまたは立下りエッジが設定されているか否かの判定を行い、立上りエッジまたは立下りエッジが設定されていると判定した場合に、ゲームの進行制御に関与する操作スイッチの操作が検出された旨を示すスイッチオンフラグが設定されているか否かを判定し、ゲームの進行制御に関与する操作スイッチの操作が検出された旨を示すスイッチオンフラグが設定されていないと判定した場合に限り、該当する操作スイッチの操作検出コマンドを通常コマンド送信用バッファに格納することで、必ずゲームの進行制御に関与する操作スイッチの操作を特定可能なコマンドがゲームの進行制御に関与しない操作スイッチの操作を特定可能な操作検出コマンドよりも先にサブCPU91aに対して送信される構成としても良く、このような構成とした場合でも上記と同様の効果を得られる。
また、本実施例では、ゲームの進行制御に関与しない操作が検出された旨を示す立上りエッジまたは立下りエッジが設定されているか否かの判定を行う前に、ゲームの進行制御に関与する操作スイッチの操作が検出された旨を示すスイッチオンフラグが設定されていると判定された場合でも、立上りエッジまたは立下りエッジはクリアせずに維持され、スイッチオンフラグに対応するゲームの進行制御に関与する操作スイッチの操作を特定可能なコマンドが通常コマンド送信用バッファに格納され、スイッチオンフラグがクリアされた後に、立上りエッジまたは立下りエッジが設定されている旨が判定されることで、該当する操作スイッチの操作を特定可能な操作検出コマンドが通常コマンド送信用バッファに格納されるようになっているが、立上りエッジまたは立下りエッジが設定されているか否かの判定を行う前に、スイッチオンフラグが設定されていると判定された場合に、立上りエッジまたは立上りエッジをクリアし、ゲームの進行制御に関与しない操作スイッチの操作の検出が無効化されるようにしても良い。
本実施例では、メインCPU41aが、特別役が当選していることを条件に、ゲーム開始後、ストップスイッチ8L、8C、8Rの操作が有効となる前に、フリーズ状態に制御するか否かを決定するフリーズ抽選を行う。フリーズ抽選では、フリーズ状態に制御すると決定する場合に、全リール回転中にフリーズ状態に制御するか、第1停止時にフリーズ状態に制御するか、第2停止時にフリーズ状態に制御するか、についても決定する。
メインCPU41aは、フリーズ抽選にてフリーズ状態に制御しないと決定した場合には、図14に示すように、ゲーム開始後、ルールの回転が開始し、全てのリールが定速回転となった時点で各リールに対応するストップスイッチ8L、8C、8Rの操作がゲームの進行制御に関与する操作として有効となる。その後、いずれかのストップスイッチが操作されてリールが停止する毎に、停止したリールに対応するストップスイッチは無効となり、ゲームの進行制御に関与しない操作スイッチとなる。
一方、フリーズ抽選にてフリーズ状態に制御すると決定した場合には、フリーズ状態に制御される時期(全リール回転中、第1停止時、第2停止時)から、回転中のリールに対応するストップスイッチであっても、ストップスイッチの操作が無効となり、MAXBETスイッチ6とともに、ストップスイッチについてもその操作がゲームの進行制御に関与しなくなることによりゲームの進行制御が不能化されるフリーズ状態に制御する。そして、フリーズ状態の開始後、一定時間が経過することでフリーズ状態は解除され、回転中のリールに対応するストップスイッチの操作が有効となり、その操作がゲームの進行制御に関与する制御状態となる。
例えば、フリーズ抽選にて第1停止時にフリーズ状態に制御すると決定された場合には、図15に示すように、全リール回転中にいずれかのストップスイッチが操作され、対応するリールが停止した時点で、停止済みリールに対応するストップスイッチだけでなく、回転中のリールに対応するストップスイッチの操作も無効化され、ゲームの進行制御に関与しない操作となり、一定時間が経過することで再び回転中のリールに対応するストップスイッチの操作は有効化され、ゲームの進行制御に関与する操作となる。
そして、本実施例では、上述のようにフリーズ状態において、MAXBETスイッチ6だけでなく、ストップスイッチ8L、8C、8Rの操作もゲームの進行制御に関与しない操作となるが、フリーズ状態では、基本処理においてMAXBETスイッチ6及びストップスイッチ8L、8C、8RのうちMAXBETスイッチ6の操作が検出されたか否かの判定のみを行い、MAXBETスイッチ6の操作が検出されたと判定されたときに、その旨を特定可能な操作検出コマンドを通常コマンド送信用バッファに格納し、ストップスイッチ8L、8C、8Rの操作が検出されたか否かの判定は行わず、ストップスイッチ8L、8C、8Rの操作が検出されても、その旨を特定可能な操作検出コマンドは通常コマンド送信用バッファに格納されることがない。すなわちフリーズ状態では、MAXBETスイッチ6及びストップスイッチ8L、8C、8RのうちMAXBETスイッチ6の操作が検出された場合のみ、その旨を特定可能な操作検出コマンドがサブCPU91aに対して送信される一方、ストップスイッチ8L、8C、8Rの操作が検出されても、その旨を特定可能な操作検出コマンドがサブCPU91aに対して送信されることがない。
また、サブCPU91aは、図15に示すように、フリーズ状態(フリーズコマンドを受信し、該受信したフリーズコマンドが示すフリーズ状態の開始時期から一定時間が経過するまでの期間)においてMAXBETスイッチ6の連続操作を指示し、MAXBETスイッチ6の操作が10回検出されたとき(MAXBETスイッチ6がOFFからONに変化した旨を示す操作検出コマンド及びMAXBETスイッチ6がONからOFFに変化した旨を示す操作検出コマンドを10回受信したとき)に特別役に当選した旨を告知するフリーズ演出を実行する。
例えば、第1停止時にフリーズ状態に制御される場合には、図38(a)に示すように、全リール回転中においてMAXBETスイッチ6の操作は無効であり、ストップスイッチ8L、8C、8Rの操作は有効である。また、液晶表示器51には、通常演出画面が表示されている。
そして、いずれかのストップスイッチが操作され、対応するリールが停止すると、本来であれば、停止リールに対応するストップスイッチのみが無効となり、回転中のリールに対応するストップスイッチの操作は有効となるが、図38(b)に示すように、フリーズ状態に制御されることによりMAXBETスイッチ6の操作に加えて、ストップスイッチ8L、8C、8Rの全ての操作が無効となり、液晶表示器51には、フリーズ中である旨及びMAXBETスイッチ6の連打を指示する旨が表示される。
この状態で、MAXBETスイッチ6が10回操作されることで、図38(c)に示すように、液晶表示器51に「ボーナス確定!」と表示され、特別役に当選している旨が告知されるようになっている。
また、リールの停止後、一定時間が経過することでフリーズ状態が終了し、停止リールに対応するストップスイッチの操作は無効のままであるが、回転中のリールに対応するストップスイッチの操作は再び有効となる。
フリーズ演出は複数種類からなり、BBが当選しているかRBが当選しているかに応じてフリーズ演出の種類が選択され、フリーズ演出の種類によってBBが当選している可能性が高いか、RBが当選している可能性が高いか、が示唆されるようになっている。このため、フリーズ状態においてゲームの進行制御に関与しないMAXBETスイッチ6の操作を行うことにより、当選した特別役の種類を推測することが可能となり、ゲームの進行制御に関与しない操作スイッチの操作を行うことに対する意欲を高めることができるようになっている。
本実施例のスロットマシン1では、フリーズ状態においてゲームの進行制御に関与しない操作スイッチの操作に応じてフリーズ演出を実行するが、フリーズ状態ではゲームの進行制御に関与しないが、その終了後にゲームの進行制御に関与する操作スイッチの操作に応じてフリーズ演出が実行される構成とした場合に、フリーズ状態は、一定時間の経過で終了することとなるため、フリーズ状態が終了したことに気づかずに、遊技者が演出を実行させようと操作スイッチを操作してしまう虞がある。特に、上記のようにフリーズ状態においてゲームの進行制御に関与しない操作スイッチを複数回操作したときにフリーズ演出が実行される構成とした場合、フリーズ状態の終了を気づかずに操作を行ってしまう可能性が高い。このような場合には既にその操作スイッチがゲームの進行制御に関与する状態となるため、遊技者が意図せずにゲームが進行してしまうという問題が生じる。
このため、本実施例では、フリーズ状態において、MAXBETスイッチ6及びストップスイッチ8L、8C、8RのうちMAXBETスイッチ6の操作が検出された場合のみ、その旨を特定可能な操作検出コマンドを送信し、サブCPU91aでは、フリーズ状態においてMAXBETスイッチ6の操作を特定可能な操作検出コマンドを受信した場合のみ、フリーズ演出を行うようになっている。これにより、フリーズ状態においてフリーズ演出が実行される契機となる操作スイッチが、フリーズ状態の終了後もゲームの進行制御に関与しないMAXBETスイッチ6に制限されることとなるため、フリーズ状態が終了したことに気づかずに、遊技者がフリーズ演出を実行させようと操作を行うことにより遊技者が意図せずにリールを停止させてしまうこと、すなわちゲームを進行させてしまうことを防止できる。
尚、本実施例では、フリーズ状態である場合に基本処理においてMAXBETスイッチ6及びストップスイッチ8L、8C、8RのうちMAXBETスイッチ6の操作が検出されたか否かの判定のみを行い、ストップスイッチ8L、8C、8Rの操作が検出されたか否かの判定を行わないことにより、ストップスイッチ8L、8C、8Rの操作を特定可能な操作検出コマンドがサブCPU91aに対して送信されない構成とすることで、フリーズ状態においてフリーズ演出が実行される契機となる操作スイッチが、フリーズ状態の終了後もゲームの進行制御に関与しないMAXBETスイッチ6に制限されるようになっているが、スイッチ入力判定処理2においてフリーズ状態である場合に、MAXBETスイッチ6の検出状態の変化のみを検出し、ストップスイッチ8L、8C、8Rの検出状態の変化を検出しない構成とすることで、フリーズ状態においてフリーズ演出が実行される契機となる操作スイッチが、フリーズ状態の終了後もゲームの進行制御に関与しないMAXBETスイッチ6に制限されるようにしても良く、このような構成とした場合でも、フリーズ状態が終了したことに気づかずに、遊技者がフリーズ演出を実行させようと操作を行うことにより遊技者が意図せずにリールを停止させてしまうこと、すなわちゲームを進行させてしまうことを防止できる。
また、サブCPU91aが、フリーズ状態においてMAXBETスイッチ6の操作を特定可能な操作検出コマンドを受信した場合のみフリーズ演出を実行し、フリーズ状態においてストップスイッチ8L、8C、8Rの操作を特定可能な操作検出コマンドを受信してもフリーズ演出を実行しない構成とすることで、フリーズ状態においてフリーズ演出が実行される契機となる操作スイッチが、フリーズ状態の終了後もゲームの進行制御に関与しないMAXBETスイッチ6に制限されるようにしても良く、このような構成とした場合でも、フリーズ状態が終了したことに気づかずに、遊技者がフリーズ演出を実行させようと操作を行うことにより遊技者が意図せずにリールを停止させてしまうこと、すなわちゲームを進行させてしまうことを防止できる。
また、本実施例では、フリーズ状態において、その間無効化されるMAXBETスイッチ6及びストップスイッチ8L、8C、8RのうちMAXBETスイッチ6の操作が検出された場合のみ、その旨を特定可能な操作検出コマンドを送信し、サブCPU91aでは、フリーズ状態においてMAXBETスイッチ6の操作を特定可能な操作検出コマンドを受信した場合のみ、フリーズ演出を行う構成であるが、例えば、ウェイト期間中、すなわち前のゲームのリール回転開始時点からウェイトタイムが未だ経過していないためにストップスイッチ8L、8C、8Rの操作が無効化されている状態において、MAXBETスイッチ6及びストップスイッチ8L、8C、8RのうちMAXBETスイッチ6の操作が検出された場合のみ、その旨を特定可能な操作検出コマンドを送信し、サブCPU91aでは、ウェイト期間中においてMAXBETスイッチ6の操作を特定可能な操作検出コマンドを受信した場合のみ、特定の演出を行う構成としても良く、このような構成とした場合には、ウェイト期間中において特定の演出が実行される契機となる操作スイッチが、ウェイト期間の終了後もゲームの進行制御に関与しないMAXBETスイッチ6に制限されることとなるため、ウェイト期間が終了したことに気づかずに、遊技者が特定の演出を実行させようと操作を行うことにより遊技者が意図せずにリールを停止させてしまうこと、すなわちゲームを進行させてしまうことを防止できる。
また、メダルの払出期間中、すなわち小役の入賞に伴うメダルの払出中或いはクレジットの加算中において1枚BETスイッチ5やMAXBETスイッチ6の操作が無効化されている状態において、1枚BETスイッチ5、MAXBETスイッチ6、ストップスイッチ8L、8C、8Rのうちストップスイッチ8L、8C、8Rの操作が検出された場合のみ、その旨を特定可能な操作検出コマンドを送信し、サブCPU91aでは、メダルの払出期間中においてストップスイッチ8L、8C、8Rの操作を特定可能な操作検出コマンドを受信した場合のみ、特定の演出を行う構成としても良く、このような構成とした場合には、メダルの払出期間中において特定の演出が実行される契機となる操作スイッチが、メダルの払出期間の終了後もゲームの進行制御に関与しないストップスイッチ8L、8C、8Rに制限されることとなるため、メダルの払出期間が終了したことに気づかずに、遊技者が特定の演出を実行させようと操作を行うことにより遊技者が意図せずに賭数を設定してしまうこと、すなわちゲームを進行させてしまうことを防止できる。
次に、ストップスイッチ8L、8C、8Rの構造について説明すると、図16に示すように、ストップスイッチ8L、8C、8Rは、有底筒状の収容部材8aと、収容部材8a内部に嵌挿された操作部8bと、操作部8bにおける収容部材8aの内方側端部に突出して設けられた検出部8cと、操作部8bを収容部材8aの開放面側に付勢するコイルバネ8dと、投光部8f及び投光部からの照射光を受光する受光部8gを有する検出センサ8eと、から主に構成されている。
操作部8bは、図16(a)に示す位置から図16(c)に示す位置の間で移動可能とされており、操作部8bが操作されていない状態においては、操作部8bがコイルバネ8dによって図中上方に付勢されているため、図16(a)に示す位置となる。この位置では、投光部8fからの照射光が受光部8gに受光されており、検出センサ8eにより操作部8bの押圧操作は検知されない。
操作部8bをコイルバネ8dの付勢に抗して押圧すると、操作部8bは図中下方に移動し、これに伴い検出部8cも図中下方に移動する。そして、操作部8bが図16(b)に示す位置を超えると、投光部8fからの照射光が検出部8cによって遮断され、受光部8gは受光しなくなり、検出センサ8eによって操作部8bの押圧操作が検知される。
そして、操作部8bは、図16(c)に示す位置までコイルバネ8dの付勢に抗して押圧された時点でそれ以上の移動が規制される。また、操作部8bの押圧を解除すると、操作部8bはコイルバネ8dにより図中上方に付勢され、図16(b)に示す位置まで復元することで、投光部8fからの照射光が受光部8gに受光されるようになり、検出センサ8eによって操作部8bの押圧操作が検知されなくなる。そして、操作部8bは最終的に図16(a)に示す位置まで復元することとなる。
このように構成された本実施例のストップスイッチ8L、8C、8Rでは、操作部8bが操作されていない状態で操作部8bの操作を行うと、図17に示すように、操作部8bの非操作位置(図16(a)の位置)から検出センサ8eによる操作の検出の境界となる検出境界位置(図16(b)の位置)に到達するまでに(a)−(b)の時間を要し、さらに検出境界位置から操作部8bが最深位置(図16(c)の位置)に到達するまでに(b)−(c)の時間を要し、最深位置から検出境界位置に復元するまでに(c)−(b)の時間を要し、検出境界位置から非操作位置に復元するまでに(b)−(a)の時間を要する。
このような構造のストップスイッチ8L、8C、8Rが人為的に連続して操作された場合には、通常、最初の操作に伴って操作部8bが最深位置に到達し、その後、非操作位置まで復元してから、次の操作に伴って操作部8bが最深位置に向かって動作することとなることから、ストップスイッチ8L、8C、8Rが連続して操作された場合には、最初の操作が検出された後、次回の操作が検出されるまでの時間として、操作部8bが検出境界位置から最深位置に到達した後、非操作位置に復元し、再び検出境界位置まで到達する時間(t:on−on)を要することとなる。また、ストップスイッチ8L、8C、8Rが連続して操作された場合に、ONが検出されてからOFFが検出されるまでの時間として、操作部8bが検出境界位置から最深位置に到達した後、検出境界位置まで復元する時間(t:on−off)を要し、OFFが検出されてからONが検出されるまでの時間として、操作部8bが検出境界位置から非操作位置まで復元した後、再び検出境界位置に到達する時間(t:off−on)を要する。
また、MAXBETスイッチ6も上記したストップスイッチ8L、8C、8Rと同様の構成であり、MAXBETスイッチ6の操作部が操作された場合にも、ストップスイッチ8L、8C、8Rが操作された場合と同様に操作部が操作されていない状態で操作部の操作を行うと、図17に示すように、操作部の非操作位置から検出センサによる操作の検出の境界となる検出境界位置に到達するまでに(a)−(b)の時間を要し、さらに検出境界位置から操作部が最深位置に到達するまでに(b)−(c)の時間を要し、最深位置から検出境界位置に復元するまでに(c)−(b)の時間を要し、検出境界位置から非操作位置に復元するまでに(b)−(a)の時間を要する。
このような構造のMAXBETスイッチ6が人為的に連続して操作された場合にも、ストップスイッチ8L、8C、8Rと同様に、通常、最初の操作に伴って操作部が最深位置に到達し、その後、非操作位置まで復元してから、次の操作に伴って操作部が最深位置に向かって動作することとなることから、MAXBETスイッチ6が連続して操作された場合には、最初の操作が検出された後、次回の操作が検出されるまでの時間として、操作部が検出境界位置から最深位置に到達した後、非操作位置に復元し、再び検出境界位置まで到達する時間(t:on−on)を要することとなる。また、MAXBETスイッチ6が連続して操作された場合に、ONが検出されてからOFFが検出されるまでの時間として、操作部が検出境界位置から最深位置に到達した後、検出境界位置まで復元する時間(t:on−off)を要し、OFFが検出されてからONが検出されるまでの時間として、操作部が検出境界位置から非操作位置まで復元した後、再び検出境界位置に到達する時間(t:off−on)を要する。
尚、MAXBETスイッチ6とストップスイッチ8L、8C、8Rとは全く同一の構造ではなく、それに伴い上記の動作に伴う時間が全く同じというものではない。
一方、本実施例では、演出制御基板90側で目押しの補助となるような演出が行われてしまうことを防止するために、メインCPU41aが演出制御基板90にコマンドを送信する際に一定時間の範囲でコマンドの送信タイミングをランダムに遅延させるようになっている。演出制御基板90側で目押しの補助となるような演出が行われてしまうことを確実に防止するためには、最大遅延時間が長い方が好ましいが、本実施例では、コマンドの送信が遅延されている間もゲームの進行制御に関与しない操作スイッチの操作がなされる毎に操作検出コマンドが生成され、通常コマンド送信用バッファに格納されるため、最大遅延時間が長すぎると、未送信のコマンドが通常コマンド送信用バッファに多数貯まってしまうこととなり、その後、ゲームの進行制御に関与する操作スイッチの操作がなされ、その旨を特定可能なコマンドが生成された場合に、当該コマンドは、それまでに貯まっている操作検出コマンドが全て送信された後に送信されることとなるため、ゲームの進行制御に関与する操作スイッチの操作を特定可能なコマンドの送信が著しく遅れてしまう虞がある。
これに対して本実施例では、図17に示すように、コマンドの最大遅延時間が、ストップスイッチ8L、8C、8Rの操作が解除された場合に操作部8bが最深位置から検出境界位置に復元するまでの時間(t2)、すなわちストップスイッチ8L、8C、8Rが連続して操作された場合にONが検出されてからOFFが検出されるまでに要する時間(t:on−off)よりもさらに短い時間よりも短い時間に設定されているとともに、ストップスイッチ8L、8C、8Rの操作が解除された場合に操作部8bが検出境界位置から非操作位置に復元するまでの時間(t3)、すなわちストップスイッチ8L、8C、8Rが連続して操作された場合にOFFが検出されてからONが検出されるまでに要する時間(t:off−on)よりもさらに短い時間よりも短い時間に設定されている。また、コマンドの最大遅延時間が、MAXBETスイッチ6の操作が解除された場合に操作部が最深位置から検出境界位置に復元するまでの時間(t2)、すなわちMAXBETスイッチ6が連続して操作された場合にONが検出されてからOFFが検出されるまでに要する時間(t:on−off)よりもさらに短い時間よりも短い時間に設定されているとともに、MAXBETスイッチ6の操作が解除された場合に操作部が検出境界位置から非操作位置に復元するまでの時間(t3)、すなわちMAXBETスイッチ6が連続して操作された場合にOFFが検出されてからONが検出されるまでに要する時間(t:off−on)よりもさらに短い時間よりも短い時間に設定されている。
一方、本実施例では、ストップスイッチ8L、8C、8Rの操作、またはMAXBETスイッチ6の操作がゲームの進行制御に関与しない制御状態においてストップスイッチ8L、8C、8Rの操作、またはMAXBETスイッチ6の検出状態が変化し、その旨を示す操作検出コマンドが通常コマンド送信用バッファに格納された場合には、その時点から最大遅延時間以内に必ずサブCPU91aに対して送信されることとなる。
このため、ストップスイッチ8L、8C、8Rの操作、またはMAXBETスイッチ6の操作がゲームの進行制御に関与しない制御状態においてストップスイッチ8L、8C、8Rの検出状態、またはMAXBETスイッチ6の検出状態がOFFからONに変化して操作検出コマンドが通常コマンド送信用バッファに格納された場合に、この格納された操作検出コマンドは、ストップスイッチ8L、8C、8Rの検出状態、またはMAXBETスイッチ6の検出状態がONからOFFに変化して次の操作検出コマンドが格納される前に必ず送信されることとなり、ストップスイッチ8L、8C、8RまたはMAXBETスイッチ6が連続して操作された場合でも、ストップスイッチ8L、8C、8Rの検出状態、またはMAXBETスイッチ6の検出状態がOFFからONに変化した旨を示す操作検出コマンドが送信される前に、さらにストップスイッチ8L、8C、8Rの検出状態、またはMAXBETスイッチ6の検出状態がONからOFFに変化した旨を示す操作検出コマンドが通常コマンド送信用バッファに格納されることがない。また、ストップスイッチ8L、8C、8Rの検出状態、またはMAXBETスイッチ6の検出状態がONからOFFに変化して操作検出コマンドが通常コマンド送信用バッファに格納された場合にも、この格納された操作検出コマンドは、ストップスイッチ8L、8C、8Rの検出状態、またはMAXBETスイッチ6の検出状態がOFFからONに変化して次の操作検出コマンドが格納される前に必ず送信されることとなり、ストップスイッチ8L、8C、8RまたはMAXBETスイッチ6が連続して操作された場合でも、ストップスイッチ8L、8C、8Rの検出状態、またはMAXBETスイッチ6の検出状態がONからOFFに変化した旨を示す操作検出コマンドが送信される前に、さらにストップスイッチ8L、8C、8Rの検出状態、またはMAXBETスイッチ6の検出状態がOFFからONに変化した旨を示す操作検出コマンドが通常コマンド送信用バッファに格納されることがない。
これにより、ゲームの進行制御に関与しない操作スイッチが連続して操作された場合であっても、この操作スイッチの操作を特定可能な操作検出コマンドが送信タイミングの遅延によって複数貯まってしまうことがなく、操作検出コマンドが複数貯まってしまうことにより、ゲームの進行制御に関与する操作スイッチの操作を特定可能なコマンドの送信が大幅に遅れてしまうことを防止できる。
尚、本実施例では、コマンドの最大遅延時間を、ゲームの進行制御に関与しない操作スイッチの操作が解除された場合に操作部が最深位置から検出境界位置に復元するまでの時間(t2)及びゲームの進行制御に関与しない操作スイッチの操作が解除された場合に操作部が検出境界位置から非操作位置に復元するまでの時間(t3)よりも短い時間に設定することにより、ゲームの進行制御に関与しない操作スイッチが連続して操作された場合にも、操作検出コマンドが送信タイミングの遅延によって複数貯まってしまうことを回避する構成としているが、操作が解除された場合に操作部が最深位置から検出境界位置に復元するまでの時間(t2)及び操作が解除された場合に操作部が検出境界位置から非操作位置に復元するまでの時間(t3)が、コマンドの最大遅延時間よりも長く設定された操作スイッチをゲームの進行制御に関与しない操作スイッチとして用いることで、操作検出コマンドが送信タイミングの遅延によって複数貯まってしまうことを回避する構成としても良く、このような構成とした場合であっても、操作検出コマンドが複数貯まってしまうことにより、ゲームの進行制御に関与する操作スイッチの操作を特定可能なコマンドの送信が大幅に遅れてしまうことを防止できる。
また、本実施例では、ゲームの進行制御に関与しない操作スイッチの検出状態が変化する毎に操作検出コマンドを送信する構成であるが、ゲームの進行制御に関与しない操作スイッチの検出状態がOFFからONに変化した場合のみ、操作検出コマンドを送信する構成やゲームの進行制御に関与しない操作スイッチの検出状態がONからOFFに変化した場合のみ、操作検出コマンドを送信する構成であれば、コマンドの最大遅延時間を、ゲームの進行制御に関与しない操作スイッチの操作部が最深位置から非操作位置に復元するまでの時間(t1)、すなわち最初の操作が検出された後、次回の操作が検出されるまでの時間(図17に示すt:on−onまたはt:off−off)よりもさらに短い時間よりも短く設定するのみで、ゲームの進行制御に関与しない操作スイッチが連続して操作された場合にも、操作検出コマンドが送信タイミングの遅延によって複数貯まってしまうことを回避することが可能となる。
また、ゲームの進行制御に関与しない操作スイッチの検出状態がOFFからONに変化した場合のみ、操作検出コマンドを送信する構成やゲームの進行制御に関与しない操作スイッチの検出状態がONからOFFに変化した場合のみ、操作検出コマンドを送信する構成であれば、ゲームの進行制御に関与しない操作スイッチの操作部が最深位置から非操作位置に復元するまでの時間(t1)が、コマンドの最大遅延時間よりも長く設定された操作スイッチをゲームの進行制御に関与しない操作スイッチとして用いることで、操作検出コマンドが送信タイミングの遅延によって複数貯まってしまうことを回避する構成としても良く、このような構成とした場合であっても、操作検出コマンドが複数貯まってしまうことにより、ゲームの進行制御に関与する操作スイッチの操作を特定可能なコマンドの送信が大幅に遅れてしまうことを防止できる。
また、本実施例では、ゲームの進行制御に関与しない操作スイッチの操作に要する時間とコマンドの最大遅延時間との関係を規定することにより、操作検出コマンドが送信タイミングの遅延によって複数貯まってしまうことを回避する構成としているが、例えば、ゲームの進行制御に関与しない操作スイッチの操作または検出状態の変化を検出する処理の実行間隔を、コマンドの最大遅延時間よりも長く設定するなど、ゲームの進行制御に関与しない操作スイッチの操作または検出状態の変化の検出に要する時間を、コマンドの最大遅延時間よりも長く設定することで、操作検出コマンドが送信タイミングの遅延によって複数貯まってしまうことを回避する構成としても良い。
次に、メインCPU41aが演出制御基板90に対して送信するコマンドに基づいてサブ制御部91が実行する演出の制御について説明する。
サブCPU91aは、メインCPU41aからのコマンドの送信を示すストローブ信号を入力した際に、コマンド受信割込処理を実行する。コマンド受信割込処理では、RAM91cに設けられた受信用バッファに、コマンド伝送ラインから取得したコマンドを格納する。
サブCPU91aは、タイマ割込処理(サブ)において、受信用バッファに未処理のコマンドが格納されているか否かを判定し、未処理のコマンドが格納されている場合には、そのうち最も早い段階で受信したコマンドに基づいてROM91bに格納された制御パターンテーブルを参照し、制御パターンテーブルに登録された制御内容に基づいて液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55等の各種演出装置の制御を行う。
尚、本実施例では、サブCPU91aがタイマ割込処理(サブ)を行う時間間隔(1.12ms)が、メインCPU41aがコマンドを送信する時間間隔(2.24ms)よりも短い間隔であるため、通常のゲームに伴う動作が行われていれば、メインCPU41aから連続してコマンドが送信される場合であっても受信用バッファに格納された未処理のコマンドは、次のコマンドを受信するまでにタイマ割込処理(サブ)によって読み出されることとなり、受信用バッファに未処理のコマンドが複数蓄積されることはなく、メインCPU41aから送信されたコマンドを受信すると、その後最初に行われるタイマ割込処理(サブ)によって受信したコマンドは読み出され、コマンドに対応する処理が行われる。
制御パターンテーブルには、複数種類の演出パターン毎に、コマンドの種類に対応する液晶表示器51の表示パターン、演出効果LED52の点灯態様、スピーカ53、54の出力態様、リールLED55の点灯態様等、これら演出装置の制御パターンが登録されており、サブCPU91aは、コマンドを受信した際に、制御パターンテーブルの当該ゲームにおいてRAM91cに設定されている演出パターンに対応して登録された制御パターンのうち、受信したコマンドの種類に対応する制御パターンを参照し、当該制御パターンに基づいて演出装置の制御を行う。これにより演出パターン及び遊技の進行状況に応じた演出が実行されることとなる。
尚、サブCPU91aは、あるコマンドの受信を契機とする演出の実行中に、新たにコマンドを受信した場合には、実行中の制御パターンに基づく演出を中止し、新たに受信したコマンドに対応する制御パターンに基づく演出を実行するようになっている。すなわち演出が最後まで終了していない状態でも、新たにコマンドを受信すると、受信した新たなコマンドが新たな演出の契機となるコマンドではない場合を除いて実行していた演出はキャンセルされて新たなコマンドに基づく演出が実行されることとなる。
特に、本実施例では、演出の実行中に賭数の設定操作がなされたとき、すなわちサブCPU91aが、賭数が設定された旨を示すBETコマンドを受信したときに、実行中の演出を中止するようになっている。このため、遊技者が、演出を最後まで見るよりも次のゲームを進めたい場合には、演出がキャンセルされ、次のゲームを開始できるので、このような遊技者に対して煩わしい思いをさせることがない。また、演出の実行中にクレジットまたは賭数の精算操作がなされたとき、すなわちサブCPU91aが、ゲームの終了を示す遊技状態コマンドを受信した後、ゲームの開始を示す内部当選コマンドを受信する前に、払出開始コマンドを受信した場合には、実行中の演出を中止するようになっている。クレジットや賭数の精算を行うのは、遊技を終了する場合であり、このような場合に実行中の演出を終了させることで、遊技を終了する意志があるのに、不要に演出が継続してしまわないようになっている。尚、演出の実行中において賭数の設定操作やクレジット、賭数の精算操作が不能化されている状態(BETフリーズ状態)に制御する場合には、その間に、賭数の設定操作や精算操作がなされても、BETコマンドや払出開始コマンドを送信させず、結果、これら操作に伴い実行中の演出がキャンセルされない構成としても良い。
演出パターンは、内部当選コマンドを受信した際に、内部当選コマンドが示す内部抽選の結果に応じた選択率にて選択され、RAM91cに設定される。演出パターンは、フリーズコマンドを受信した際にも、その直前に受信した内部当選コマンドが示す内部抽選の結果がBBの当選を示すか、RBの当選を示すか、に応じた確率にて選択され、RAM91cに設定される。演出パターンの選択率は、ROM91bに格納された演出テーブルに登録されており、サブCPU91aは、内部当選コマンドまたはフリーズコマンドを受信した際に、内部抽選の結果に応じて演出テーブルに登録されている選択率を参照し、その選択率に応じて複数種類の演出パターンからいずれかの演出パターンを選択し、選択した演出パターンを当該ゲームの演出パターンとしてRAM91cに設定するようになっている。
制御パターンテーブルには、特定のコマンド(待機コマンド、打止コマンド、エラーコマンド、初期化コマンド、設定終了コマンド、特別役の当選を示す電源投入コマンド等)を受信した際に参照される特定の制御パターンが格納されており、サブCPU91aは、これら特定のコマンドを受信した場合には、当該ゲームにおいて設定されている演出パターンに関わらず、当該コマンドに対応する特定の制御パターンを参照し、当該制御パターンに基づいて演出装置の制御を行う。
待機コマンドを受信した場合には、デモ演出(デモンストレーション演出)を実行するためのデモパターンが制御パターンとして参照される。尚、特別役の当選を報知する確定演出が実行されている場合には、デモ演出の実行が禁止されるようになっており、このような状態で待機コマンドを受信してもデモパターンが制御パターンとして参照されることはなく、デモ演出が実行されることもない。
打止状態の発生を示す打止コマンド受信した場合には、打止状態である旨を報知するための打止報知パターンが制御パターンとして参照される。また、打止状態の解除を示す打止コマンドを受信した場合には、前述したデモパターンが制御パターンとして参照される。すなわち打止状態が解除されるとデモ演出が実行されることとなる。
エラー状態の発生を示すエラーコマンドを受信した場合には、エラー状態である旨及びその種類を報知するためのエラー報知パターンが制御パターンとして参照される。また、エラー状態の解除を示すエラーコマンドを受信した場合には、エラー発生時に実行していた制御パターンが参照される。すなわちエラー発生時の演出が最初から実行されることとなる。
初期化コマンドを受信した場合には、設定変更中である旨を報知するための設定中報知パターンが参照される。また、設定終了コマンドを受信した場合には、前述したデモパターンが制御パターンとして参照される。すなわち初期化コマンドを受信すると設定変更中報知が実行され、その後、設定終了コマンドを受信するとデモ演出が実行されることとなる。
特別役の当選を示す電源投入コマンドを受信した場合には、特別役の当選を報知するための特別役告知パターンが参照される。すなわち、特別役の当選を示す電源投入コマンドを受信すると特別役の当選を報知する告知演出が実行されることとなる。尚、特別役の当選を報知する告知演出は、一度実行されると、当該特別役が入賞した旨を示す入賞判定コマンドを受信するまで継続するようになっている。
本実施例においてサブCPU91aは、ドアコマンドの受信に基づき、前面扉1bが開放されている旨を示すドア開放報知を行う。詳しくは、サブCPU91aがドアコマンドを受信したときに、その後、100ms経過しても新たにドアコマンドを受信しなかった場合に、受信したドアコマンドが示すドア開放検出スイッチ25の検出状態を確定検出状態とし、確定検出状態がON(ドア開放)であれば、ドア開放報知を行う。ドア開放報知では、演出効果LED52を点滅させ、液晶表示器51にドア開放報知画面を表示させるとともに、エラー警告音を出力する。そして、その後ドアコマンドを受信し、100ms経過しても新たにドアコマンドを受信せずにドアコマンドが示す検出状態が確定検出状態となり、確定検出状態がOFF(ドア閉塞)であれば、ドア開放報知を停止し、もとの演出に復帰する。
また、最後にドアコマンドを受信してから、100ms経過しないうちに新たにドアコマンドを受信したときは、その前に受信したコマンドが示すドア開放検出スイッチ25の検出状態を確定検出状態とせず、新たなドアコマンドの受信後、100ms経過してもさらにドアコマンドを受信しなかった場合に、最後に受信したドアコマンドが示すドア開放検出スイッチ25の検出状態と確定検出状態とし、確定検出状態がON(ドア開放)であれば、ドア開放報知を行い、確定検出状態がOFF(ドア閉塞)であれば、ドア開放報知を停止する。
このため、ドア開放報知を行っていない状態で、ドア開放検出スイッチ25のON(ドア開放)を示すドアコマンドを受信しても、その後100ms以内にドア開放検出スイッチ25のOFF(ドア閉塞)を示すドアコマンドを受信した場合には、ドア開放報知は行われず、ドア開放報知を行っている状態で、ドア開放検出スイッチ25のOFF(ドア閉塞)を示すドアコマンドを受信しても、その後100ms以内にドア開放検出スイッチ25のON(ドア開放)を示すドアコマンドを受信した場合には、ドア開放報知を停止しない。
また、ドアコマンドを受信した後、100ms以内に新たにドアコマンドを受信し、さらにその後100ms以内に新たにドアコマンドを受信した場合など、100ms以内の間隔で連続してドアコマンドを受信した場合には、その間、ドア開放報知の状態は維持し(ドア開放報知を行っていない状態であれば、ドア開放報知を開始することがなく、ドア開放報知を行っている状態であれば継続する)、最後に受信したドアコマンドの後、100ms経過した時点で確定した検出状態に基づきドア開放報知の状態を決定し、それまでドア開放報知が行われており、かつ確定した検出状態がON(ドア開放)であれば、ドア開放報知を継続し、確定した検出状態がOFF(ドア閉塞)であれば、ドア開放報知を停止する一方、それまでドア開放報知が行われておらず、かつ確定した検出状態がOFF(ドア閉塞)であれば、ドア開放報知は行わず、確定した検出状態がON(ドア開放)であれば、ドア開放報知開始する。
このように本実施例では、前面扉1bが開放されると、その旨が報知されるため、このような不正を効果的に防止できるとともに、不正がなされても早期に発見することができる。
また、メインCPU41aは、ドア開放検出スイッチ25の検出状態を約100ms毎に監視し、ドア開放検出スイッチ25の検出状態が変化した際に、変化後の検出状態を示すドアコマンドを送信するのみで、ドア開放検出スイッチ25の検出状態から前面扉1bが開放されているか否かの判定は行わず、サブ制御部91のサブCPU91aが、メインCPU41aから受信したドアコマンドが示すドア開放検出スイッチ25の検出状態に基づいて前面扉1bが開放されているか否かの判定を行い、その判定結果に基づいてドア開放報知を行うようになっている。このため、メインCPU41aは、前面扉1bの開放を報知するにあたって、ドア開放検出スイッチ25の検出状態から前面扉1bが開放しているか否かの判定(ドア開放検出スイッチ25のチャタリング防止判定など)を行う必要がなく、メインCPU41aの制御負荷を軽減することができる。
また、メインCPU41aは、ドア開放検出スイッチ25の検出状態が変化していない場合でも、メインCPU41aの起動時及び1ゲーム終了時には、その時点のドア開放検出スイッチ25の検出状態を示すドアコマンドを送信するので、サブCPU91aが変化時のドアコマンドを取りこぼした場合であっても、起動時及び1ゲーム終了時には必ずドア開放検出スイッチ25の検出状態を取得できるため、このように変化時のドアコマンドを取りこぼした後、ドア開放検出スイッチ25の検出状態が変化しない場合でも、ドア開放検出スイッチ25の検出状態の変化がドア開放報知に反映されない状態が継続してしまうことを防止できる。
また、メインCPU41aは、通常コマンド送信用バッファにコマンドが格納されている状態で、ドアコマンドの送信が要求された場合(ドアコマンド送信要求2が設定されている場合)には、原則として通常コマンド送信用バッファに格納されているコマンドよりもドアコマンド送信用バッファに格納されているドアコマンドを優先して送信するようになっており、ドア開放検出スイッチ25の監視間隔と、ドアコマンドの送信間隔と、の誤差を極力抑えられるようになっている。
尚、通常コマンド送信用バッファに格納されているコマンドの送信待ち(遅延中)の状態では、ドアコマンドよりも遅延中のコマンドを優先して送信するようになっており、既に遅延時間の計時を開始しているにも関わらず、それに割り込むことによって遅延制御が複雑化してしまうことがない。また、エラーコマンド、電源投入コマンド、初期化コマンドについては、ドアコマンドを含む全てのコマンドよりも優先して送信するようになっており、他のコマンドを先に送信することによりサブCPU91aの復帰が遅れてしまうことがない。
また、本実施例では、ドアコマンドの送信を命令するドアコマンド送信要求2が一度設定されると、当該命令に基づくドアコマンドが送信されるまで、ドア開放検出スイッチ25の検出状態が変化してもドアコマンドが更新されないようになっており、エラーコマンド、電源投入コマンドまたは初期化コマンドの送信待ちの状態においてドア開放検出スイッチ25の検出状態が変化した場合にも、ドアコマンドが未送信のまま上書きされてしまうことを防止できる。
また、本実施例では、通常コマンド送信用バッファとは別個にドアコマンド送信用バッファが設けられており、ドアコマンドを通常コマンドよりも優先して送信する場合に、その送信管理が煩雑となってしまうことがない。
また、本実施例では、ドアコマンドを基本処理に定期的に割り込んで実行するタイマ割込処理(メイン)内でコマンド送信用バッファに格納するのに対して、ドアコマンド以外のコマンドは、基本処理においてコマンド送信用バッファに格納する構成であるため、ドアコマンドと他のコマンドとを同一のコマンド送信用バッファに格納する場合には、他のコマンドをコマンド送信用バッファに格納する際に割込を禁止する必要があり(他のコマンドをコマンド送信用バッファに格納している最中に割り込んでドアコマンドが格納されると、処理中のコマンドが上書きされてしまううえに、復帰後にさらにドアコマンドが部分的に上書きされてしまうなどの不具合がある)、このような構成とした場合には、他のコマンドを格納する毎に割込が禁止され、リールの回転のブレやメダルの払出時のブレが発生するなど、他の制御に影響を及ぼす虞があるが、上記のように通常コマンド送信用バッファとは別個にドアコマンド送信用バッファが設けられることで、ドアコマンドを基本処理に定期的に割り込んで実行するタイマ割込処理(メイン)内でコマンド送信用バッファに格納し、他のコマンドを基本処理においてコマンド送信用バッファに格納する構成としても、他のコマンドを格納する際に割込を禁止する必要がなくなり、上記のような不具合を解消することができる。
また、本実施例では、ドア開放検出スイッチ25の監視間隔がドア開放検出スイッチ25の監視間隔が、ドアコマンドを送信した後、さらに通常コマンド送信用バッファに格納されているコマンドを送信するまでに要する約72msよりも長い約100msに設定されており、これにより、ドア開放検出スイッチ25の検出状態が連続して変化した場合でも、ドアコマンドが送信された後、次のドアコマンドが送信されるまでの間に、通常コマンド送信用バッファに格納されているコマンドを少なくとも1つ以上送信することが可能となり、通常コマンド送信用バッファがオーバーフローしないようになっている。
本実施例においてサブCPU91aは、メインCPU41aの制御状態に応じてゲームの進行制御に関与しない操作スイッチの操作が検出されたこと、すなわち操作検出コマンドの受信を契機として操作演出を実行する。
図18は、操作演出の一例を示すものである。図18に示すパターン1は、液晶表示器51の背景や出現するキャラクタなどの種類が異なる複数種類の演出ステージからいずれかのステージを変更するためのステージ変更演出を実行するためのパターンであり、ゲーム終了後(設定変更後)からゲーム開始までの制御状態において、ストップスイッチ8L、8C、8Rの全てが同時に操作されたとき、すなわちストップスイッチ8Lの検出状態がOFFからONに変化した旨を示す操作検出コマンド、ストップスイッチ8Cの検出状態がOFFからONに変化した旨を示す操作検出コマンド、ストップスイッチ8Rの検出状態がOFFからONに変化した旨を示す操作検出コマンドをそれぞれ受信し、かつこれらいずれのストップスイッチについてもONからOFFに変化した旨を示す操作検出コマンドを受信しなかったときに実行される。
パターン2は、ステージ変更演出において、各ストップスイッチに対応して提示された演出パターンを選択して決定するパターンであり、ゲーム終了後(設定変更後)からゲーム開始までの制御状態であり、かつステージ変更演出が実行されている状態においていずれかのストップスイッチが操作されたとき、すなわちいずれかのストップスイッチの検出状態がOFFからONに変化した旨を示す操作検出コマンドを受信したときに実行される。
パターン3は、効果音を出力するパターンであり、ゲーム終了後(設定変更後)からゲーム開始までの制御状態であり、かつステージ変更演出が実行されていない状態においていずれかのストップスイッチが操作されたとき、すなわちいずれかのストップスイッチの検出状態がOFFからONに変化した旨を示す操作検出コマンドを受信したときに1/100の確率で実行される。
パターン4は、特別役に当選した可能性を示唆するとともに、最終的に特別役に当選しているか否かを報知する特別役当選示唆演出を実行するパターンであり、ゲーム開始後からゲーム終了までの制御状態においてMAXBETスイッチ6の連続操作を指示する演出を行った後、MAXBETスイッチ6が10回操作されたとき、すなわちMAXBETスイッチ6の検出状態がOFFからONに変化した旨を示す操作検出コマンドを10回受信したときに実行される。
パターン5は、パターン4と同様に特別役当選示唆演出を実行するパターンであり、ゲーム開始後からゲーム終了までの制御状態においてMAXBETスイッチ6の長押しを指示する演出を行った後、MAXBETスイッチ6が3秒間継続して操作されたとき、すなわちMAXBETスイッチ6の検出状態がOFFからONに変化した旨を示す操作検出コマンドを受信し、MAXBETスイッチ6の検出状態がONからOFFに変化した旨を示す操作検出コマンドを受信せずに3秒間経過したときに実行される。
パターン6は、前述したフリーズ演出、すなわち特別役に当選した旨が告知される演出を実行するパターンであり、フリーズ状態においてMAXBETスイッチ6の連続操作を指示する演出を行った後、MAXBETスイッチ6が10回操作されたとき、すなわちMAXBETスイッチ6の検出状態がOFFからONに変化した旨を示す操作検出コマンドを10回受信したときに実行される。
尚、図18に示す操作演出は、ゲームの進行制御に関与しない操作がなされた際に実行される演出の一例であり、他の演出を適用しても良い。
サブ制御部91のRAM91cには、ゲームの進行制御に関与しない操作スイッチの操作状態が変化した旨を示す操作検出フラグが操作スイッチ毎に格納される操作検出フラグ格納領域と、ゲームの進行制御に関与しない操作スイッチの検出状態の変化状況が操作スイッチ毎に格納される検出状態格納領域と、が割り当てられている。さらに検出状態格納領域には、操作検出コマンドを受信する前(前回)の検出状態と、操作検出コマンドを受信した後(今回)の検出状態と、が割り当てられており、それぞれに操作検出コマンドの受信前後の各操作スイッチの検出状態が格納されるようになっている。
サブCPU91aは、タイマ割込処理(サブ)において受信用バッファに未処理のコマンドが格納されていると判定した場合に、操作検出処理1を行う。操作検出処理1では、未処理のコマンドが操作検出コマンドか否かを判定し、操作検出コマンドであると判定した場合に、操作検出コマンドが示す操作スイッチの検出状態格納領域に格納されている今回の検出状態を前回の検出状態に移動し、操作検出コマンドが示す変化後の検出状態を今回の検出状態として格納するとともに、操作検出コマンドが示す操作スイッチに対応する操作検出フラグを設定する。
このように本実施例では、メインCPU41aが、ゲームの進行制御に関与しない操作スイッチの検出状態の変化を検出した際に、OFFからONに変化したのか、ONからOFFに変化したのか、を特定可能な操作検出コマンドを送信するとともに、サブCPU91aは、操作検出コマンドを受信した際に、操作検出コマンドが示す操作スイッチの検出状態が変化した旨を示す操作検出フラグを設定するとともに、操作検出コマンドが示す検出状態の変化に応じて、検出状態格納領域に格納されている操作検出コマンドの受信前後の各操作スイッチの検出状態を更新するようになっており、サブCPU91aは、操作検出フラグの有無を確認することで、ゲームの進行制御に関与しない操作スイッチの検出状態が変化した旨を判別できるとともに、検出状態格納領域に格納された検出状態を確認することで、操作検出コマンドの受信前後で各操作スイッチの検出状態がどのように変化したかを判別できるようになっている。
このため、サブCPU91aは、ゲームの進行制御に関与しない操作スイッチの操作が開始したタイミングだけでなく、その操作が解除されたタイミングに応じて演出を行ったり、演出を変化させることが可能となり、ゲームの進行制御に関与しない操作スイッチの操作態様に応じて多彩な演出を行うことができる。
尚、本実施例では、サブCPU91aが、ゲームの進行制御に関与しない操作スイッチの検出状態の変化に加えて操作検出コマンドの受信前後の各操作スイッチの検出状態がどのように変化したか否かを判別できるようになっているが、メインCPU41aが、ゲームの進行制御に関与しない操作スイッチの検出状態がOFFからONに変化した場合またはOFFからONに変化した場合のいずれか一方においてのみ操作検出コマンドを送信し、サブCPU91aが、ゲームの進行制御に関与しない操作スイッチが操作されたことのみを判別できる構成としても良く、このような構成とすることで、ゲームの進行制御に影響しない操作スイッチの操作に伴うメインCPU41a及びサブCPU91aの双方の制御負荷を軽減することができる。
サブCPU91aは、操作検出処理1において操作検出コマンドがOFFからONに変化した旨を示す場合、すなわちゲームの進行制御に関与しない操作スイッチの操作が開始した旨を示す場合に、RAM91cに割り当てられた操作時間カウンタのうち該当する操作スイッチの操作時間カウンタの値を初期化する。操作時間カウンタの値は、タイマ割込処理(サブ)が実行される毎に加算されるようになっており、操作時間カウンタの値を参照することでゲームの進行制御に関与しない操作スイッチの操作が開始してからの経過時間を判別できる。
また、サブCPU91aは、タイマ割込処理(サブ)が実行される毎に、操作検出処理2を実行する。操作検出処理2では、検出状態格納領域に格納された今回の検出状態がONであるか否かを操作スイッチ毎に判定し、ONである場合、すなわちゲームの進行制御に関与しない操作スイッチの操作が継続している場合には、該当する操作スイッチの操作時間カウンタの値を参照し、予め定められた時間経過していれば、その旨を示す時間経過フラグを操作スイッチに対応付けて設定する。本実施例では、3秒経過時、5秒経過時、10秒経過時に、それぞれ時間経過フラグとして3秒経過フラグ、5秒経過フラグ、10秒経過フラグを設定する。
このため、サブCPU91aは、時間経過フラグが設定されているか否かを確認することによりゲームの進行制御に関与しない操作スイッチが継続して操作された時間が一定時間経過したことを契機に演出を行うことが可能となる。
尚、本実施例では、メインCPU41aが、ゲームの進行制御に関与しない操作スイッチの検出状態の変化を検出した際に、OFFからONに変化したのか、ONからOFFに変化したのか、を特定可能な操作検出コマンドを送信するとともに、サブCPU91aが、メインCPU41aからゲームの進行制御に関与しない操作スイッチの検出状態がOFFからONに変化した旨を特定可能な操作検出コマンドを受信した後、当該操作スイッチの検出状態がONからOFFに変化した旨を特定可能な操作検出コマンドを受信せずに経過した時間を計時することで、サブCPU91a側でゲームの進行制御に関与しない操作スイッチの連続操作時間を把握することが可能となり、メインCPU41a側で個々のスイッチ毎に連続操作時間を計時するタイマを有することなく、サブCPU91aのプログラムを変更するのみでゲームの進行制御に関与しない操作スイッチの連続操作時間を検出することが可能となるが、メインCPU41a側でゲームの進行制御に関与しない操作スイッチの操作がOFFからONに変化した後、ONからOFFに変化せずに経過した時間を計時し、この時間が規定時間に到達したときにゲームの進行制御に関与しない操作スイッチが規定時間連続して操作された旨を示す操作検出コマンドを送信することで、サブCPU91a側で、ゲームの進行制御に関与しない操作スイッチの操作が継続して操作された旨を特定できるようにしても良い。
また、本実施例では、メインCPU41aが、ゲームの進行制御に関与しない操作スイッチの検出状態の変化を検出した際に、OFFからONに変化したのか、ONからOFFに変化したのか、を特定可能な操作検出コマンドを送信するとともに、サブCPU91aが、メインCPU41aからゲームの進行制御に関与しない操作スイッチの検出状態がOFFからONに変化した旨を特定可能な操作検出コマンドを受信した回数を計数することで、サブCPU91a側でゲームの進行制御に関与しない操作スイッチが操作された回数を把握することが可能となり、メインCPU41a側で個々のスイッチ毎に操作回数を計数するカウンタを有することなく、サブCPU91aのプログラムを変更するのみでゲームの進行制御に関与しない操作スイッチの操作回数を検出することが可能となるが、メインCPU41a側でゲームの進行制御に関与しない操作スイッチの操作がOFFからONに変化した回数、またはONからOFFに変化した回数を計数し、この回数が規定回数に到達したときにゲームの進行制御に関与しない操作スイッチが規定回数操作された旨を示す操作検出コマンドを送信することで、サブCPU91a側で、ゲームの進行制御に関与しない操作スイッチの操作が規定回数操作された旨を特定できるようにしても良い。
また、サブCPU91aは、操作検出処理1において操作検出コマンドがOFFからONに変化した旨を示すと判定した場合に、前回の状態がOFFか否かを判定し、前回の状態がOFFではない場合、すなわちOFFからONに変化した旨を示す操作検出コマンドを受信した後、ONからOFFに変化した旨を示す操作検出コマンドを受信せずに、再度OFFからONに変化した旨を示す操作検出コマンドを受信した場合には、操作検出フラグをクリアする。
このため、OFFからONに変化した旨を示す操作検出コマンドを受信した後、ONからOFFに変化した旨を示す操作検出コマンドを受信せずに、再度OFFからONに変化した旨を示す操作検出コマンドを受信した場合には、操作検出フラグが設定されず、当該操作検出コマンドが示す操作スイッチの操作に伴う演出は実行されない。
このようにOFFからONに変化した旨を示す操作検出コマンドを受信した後、ONからOFFに変化した旨を示す操作検出コマンドを受信せずに、再度OFFからONに変化した旨を示す操作検出コマンドを受信した場合には、操作検出コマンドを取りこぼしたか、ノイズ等の異常でデータが破損した虞があり、正常に演出を行えない可能性が高く、このような場合には、操作検出コマンドの受信に伴う演出を実行しないことにより演出の整合性を保つことができる。
また、サブCPU91aは、操作検出処理1において未処理のコマンドが操作検出コマンドでもなく、ドアコマンドでもないと判定した場合、すなわちゲームの進行制御に関与する操作スイッチが操作されてゲームが進行した場合に、検出状態格納領域の今回の状態としてONが設定されているか否かを判定し、ONが設定されている操作スイッチがあれば、今回の状態を全てOFFに更新する。
OFFからONに変化した旨を示す操作検出コマンドを受信した後、ONからOFFに変化した旨を示す操作検出コマンドを取りこぼすと、該当する操作スイッチの操作が解除されていても、検出状態格納領域の今回の状態がONのまま維持されてしまうこととなるが、ゲームの進行制御に関与する操作スイッチは、他の操作スイッチがONの状態では、その操作が検出されることはなく、OFFからONに変化した旨を示す操作検出コマンドを受信した後、ONからOFFに変化した旨を示す操作検出コマンドを受信していなくても、操作検出コマンド以外のコマンド、すなわちゲームの進行制御に関与する操作スイッチが操作された旨を特定可能なコマンドを受信したということは、既にゲームの進行制御に関与しない操作スイッチの操作が解除されていることを示すものであり、このような場合には、検出状態格納領域の今回の状態としてONが設定されていても、今回の状態をOFFに更新することで、検出状態格納領域における操作スイッチの検出状態と、該当する操作スイッチの実際の検出状態と、を整合させることができる。
次に、本実施例におけるメイン制御部41のメインCPU41aが実行する各種制御内容を、図19〜図34に基づいて以下に説明する。
メインCPU41aは、リセット回路49からリセット信号が入力されると、図19のフローチャートに示す起動処理を行う。尚、リセット信号は、電源投入時及びメイン制御部41の動作が停滞した場合に出力される信号であるので、起動処理は、電源投入に伴うメインCPU41aの起動時及びメインCPU41aの不具合に伴う再起動時に行われる処理である。
起動処理では、まず、内蔵デバイスや周辺IC(断線監視IC50を除く)、割込モード、スタックポインタ等を初期化した後(Sa1)、入力ポートから電圧低下信号の検出データを取得し、電圧低下信号が入力されているか否か、すなわち電圧が安定しているか否かを判定し(Sa2)、電圧低下信号が入力されている場合には、電圧低下信号が入力されているか否かの判定以外は、いずれの処理も行わないループ処理に移行する。
Sa2のステップにおいて電圧低下信号が入力されていないと判定した場合には、Iレジスタ及びIYレジスタの値を初期化する(Sa3)とともに、打止スイッチ36、自動精算スイッチ29の状態を取得し、メインCPU41aの特定のレジスタに打止機能、自動精算機能の有効/無効を設定する(Sa4)。Iレジスタ及びIYレジスタの初期化により、Iレジスタには、割込発生時に参照する割込テーブルのアドレスが設定され、IYレジスタには、RAM41cの格納領域を参照する際の基準アドレスが設定される。これらの値は、固定値であり、起動時には常に初期化されることとなる。
次いで、RAM41cへのアクセスを許可し(Sa5)、設定キースイッチ37がONの状態か否かを判定する(Sa6)。Sa6のステップにおいて設定キースイッチ37がONの状態でなければ、断線監視IC50から断線フラグの記憶状態を取得し(Sa7)、断線フラグが記憶されているか否かを判定する(Sa8)。停電中に遊技制御基板40と投入メダルセンサ31との間の電気的な接続状態及び遊技制御基板40と演出制御基板90との間の電気的な接続状態が解除されていなければ、断線フラグは記憶されていないはずであり、断線フラグが記憶されている場合には、停電中に遊技制御基板40と投入メダルセンサ31との間の電気的な接続状態または遊技制御基板40と演出制御基板90との間の電気的な接続状態が解除されたこととなるため、断線異常を示すエラーコードをレジスタに設定し(Sa9)、RAM41cの格納領域のうち、使用中スタック領域を除く全ての格納領域を初期化する初期化0を実行した後(Sa10)、ドアコマンド送信用バッファに格納されているドアコマンドの送信を命令する際にRAM41cに設定されるドアコマンド送信要求2をクリアするとともに、ドアコマンド送信用バッファに格納されているドアコマンドの送信を要求するドアコマンド送信要求1をRAM41cに設定し(Sa11)、割込を許可して(Sa12)、図20に示すエラー処理に移行する。
Sa8のステップにおいて断線フラグが記憶されていない場合には、RAM41cの全ての格納領域(未使用領域及び未使用スタック領域を含む)のRAMパリティを計算し(Sa13)、RAMパリティが0か否かを判定する(Sa14)。正常に電断割込処理(メイン)が行われていれば、RAMパリティが0になるはずであり、Sa13のステップにおいてRAMパリティが0でなければ、RAM41cに格納されているデータが正常ではないので、RAM異常を示すエラーコードをレジスタに設定し(Sa15)、RAM41cの格納領域のうち、使用中スタック領域を除く全ての格納領域を初期化する初期化0を実行した後(Sa10)、ドアコマンド送信要求2をクリアするとともに、ドアコマンド送信要求1を設定し(Sa11)、割込を許可して(Sa12)、図20に示すエラー処理に移行する。
また、Sa14のステップにおいてRAMパリティが0であれば、更に破壊診断用データが正常か否かを判定する(Sa16)。正常に電断割込処理(メイン)が行われていれば、破壊診断用データが設定されているはずであり、Sa16のステップにおいて破壊診断用データが正常でない場合(破壊診断用データが電断時に格納される5A(H)以外の場合)にも、RAM41cのデータが正常ではないので、RAM異常を示すエラーコードをレジスタに設定し(Sa15)、RAM41cの格納領域のうち、使用中スタック領域を除く全ての格納領域を初期化する初期化0を実行した後(Sa10)、RAM41cに設定されているドアコマンド送信要求2をクリアするとともに、ドアコマンド送信要求1をRAM41cに設定し(Sa11)、割込を許可して(Sa12)、図20に示すエラー処理に移行する。また、Sa12のステップにおいて割込が許可されると、タイマ割込処理(メイン)が定期的に実行されることとなり、これに伴いSa11のステップで設定されたドアコマンド送信要求1に基づきドアコマンドがサブCPU91aに対して送信される。
エラー処理では、図20に示すように、現在の遊技補助表示器12の表示状態をスタックに退避し(Sb1)、レジスタに格納されているエラーコードを遊技補助表示器12に表示し(Sb2)、エラー状態の発生を示すエラーコマンドを特殊コマンド送信用バッファに設定する(Sb3)。Sb3で設定されたエラーコマンドは、その後のタイマ割込処理(メイン)にてサブCPU91aに対して送信される。
次いで、レジスタに格納されているエラーコードを確認し、当該エラーコードが断線異常エラー、RAM異常エラーまたは異常入賞エラーを示すエラーコードであるか否かを判定し(Sb4)、断線異常エラー、RAM異常エラーまたは異常入賞エラーを示すエラーコードである場合には、いずれの処理も行わないループ処理に移行する。
また、Sb4のステップにおいて、断線異常エラー、RAM異常エラー及び異常入賞エラー以外を示すエラーコードではないと判定された場合には、リセット/設定スイッチ38の操作が検出されているか否かを判定し(Sb5)、リセット/設定スイッチ38の操作が検出されていなければ、更にリセットスイッチ23の操作が検出されているか否かを判定し(Sb6)、リセットスイッチ23の操作も検出されていなければ、Sb5のステップに戻る。すなわちリセット/設定スイッチ38またはリセットスイッチ23の操作が検出されるまで、遊技の進行が不能な状態で待機する。
そして、Sb5のステップにおいてリセット/設定スイッチ38の操作が検出された場合、またはSb6のステップにおいてリセットスイッチ23の操作が検出された場合には、レジスタに格納されているエラーコードをクリアし(Sb7)、遊技補助表示器12の表示状態をSb1のステップにおいてスタックに退避した表示状態に復帰させ(Sb8)、エラー状態が解除された旨を示すエラーコマンドを特殊コマンド用送信バッファに設定して(Sb9)、もとの処理に戻る。Sb9で設定されたエラーコマンドは、その後のタイマ割込処理(メイン)にてサブCPU91aに対して送信される。
このようにエラー処理においては、断線異常エラー、RAM異常エラー及び異常入賞エラー以外によるエラー処理であれば、リセット/設定スイッチ38またはリセットスイッチ23が操作されることで、エラー状態を解除してもとの処理に復帰するが、断線異常エラー、RAM異常エラーまたは異常入賞エラーによるエラー処理であれば、リセット/設定スイッチ38またはリセットスイッチ23が操作されてもエラー状態が解除され、元の状態に復帰することはない。
図19に戻り、Sa16のステップにおいて破壊診断用データが正常であると判定した場合には、RAM41cのデータは正常であるので、RAM41cの非保存ワーク、未使用領域及び未使用スタック領域を初期化する初期化3を行った後(Sa17)、破壊診断用データをクリアし(Sa18)、ドア開放検出スイッチ25の検出状態の監視間隔を計時するドア監視タイマの値、コマンドの送信遅延時間を計時する遅延カウンタの値、ドア開放検出スイッチ25からの検出信号の入力状態の履歴をクリアし(Sa19)、ドアコマンド送信要求2をクリアするとともに、ドアコマンド送信要求1を設定する(Sa20)。次いで、電断前の状態でいずれかの特別役が当選しているか否かを判定し(Sa21)、電断前の状態でいずれかの特別役が当選している場合には、特別役の当選を示す電源投入コマンドを特殊コマンド送信用バッファに設定し(Sa22)、Sa19のステップに進み、電断前の状態でいずれの特別役も当選していない場合には、特別役の非当選を示す電源投入コマンドを特殊コマンド送信用バッファに設定し(Sa23)、Sa24のステップに進む。
Sa24のステップでは、各レジスタを電断前の状態、すなわちスタックに保存されている状態に復帰し、割込を許可して(Sa25)、電断前の最後に実行していた処理に戻る。また、Sa25のステップにおいて割込が許可されると、タイマ割込処理(メイン)が定期的に実行されることとなり、これに伴いSa22またはSa23のステップにおいて設定された電源投入コマンドがサブCPU91aに対して送信され、その後、Sa20のステップで設定されたドアコマンド送信要求1に基づきドアコマンドがサブCPU91aに対して送信される。
また、Sa6のステップにおいて設定キースイッチ37がONの状態であれば、リセット/設定スイッチ38がONの状態か否かを判定する(Sa26)。Sa26のステップにおいてリセット/設定スイッチ38がONの状態であれば、RAM41cの格納領域のうち、使用中スタック領域を除く全ての格納領域を初期化する初期化0を実行した後(Sa27)、Sa29のステップに進む。一方Sa26のステップにおいてリセット/設定スイッチ38がOFFの状態であれば、RAM41cの格納領域のうち、停止相ワーク及び使用中スタック領域を除く全ての格納領域を初期化する初期化1を実行した後(Sa28)、Sa29のステップに進む。
Sa29のステップでは、ドアコマンド送信要求2をクリアするとともに、ドアコマンド送信要求1を設定した後、Sa30のステップに進み、設定値ワークに格納されている値(この時点では0)を1に補正する。次いで、初期化コマンドを特殊コマンド送信用バッファにセットした後(Sa31)、割込を許可して(Sa32)、図21に示す設定変更処理、すなわち設定変更モードに移行する(Sa33)。Sa32のステップにおいて割込が許可されると、タイマ割込処理(メイン)が定期的に実行されることとなり、これに伴いSa31のステップにおいて設定された初期化コマンドがサブCPU91aに対して送信され、その後、Sa29のステップで設定されたドアコマンド送信要求1に基づきドアコマンドがサブCPU91aに対して送信される。Sa33のステップにおける設定変更処理の終了後、設定終了コマンドを通常コマンド送信用バッファに設定し(Sa34)、ゲーム処理に移行する。Sa34のステップにおいて設定された設定終了コマンドは、その後のタイマ割込処理(メイン)においてサブCPU91aに対して送信される。
設定変更処理では、図21に示すように、RAM41cの設定値ワークに格納されている設定値(設定変更処理に移行する前に設定値ワークの値は1に補正されているので、ここでは1である)を読み出す(Sc1)。
その後、リセット/設定スイッチ38とスタートスイッチ7の操作の検出待ちの状態となり(Sc2、Sc3)、Sc2のステップにおいてリセット/設定スイッチ38の操作が検出されると、Sc1のステップにおいて読み出した設定値に1を加算し(Sc4)、加算後の設定値が7であるか否か、すなわち設定可能な範囲を超えたか否かを判定し(Sc5)、加算後の設定値が7でなければ、再びSc2、Sc3のステップにおけるリセット/設定スイッチ38とスタートスイッチ7の操作の検出待ちの状態に戻り、Sc5のステップにおいて加算後の設定値が7であれば設定値を1に補正した後(Sc6)、再びSc2、Sc3のステップにおけるリセット/設定スイッチ38とスタートスイッチ7の操作の検出待ちの状態に戻る。
また、Sc3のステップにおいてスタートスイッチ7の操作が検出されると、その時点で選択されている変更後の設定値をRAM41cの設定値ワークに格納して、設定値を確定した後(Sc7)、設定キースイッチ37がOFFの状態となるまで待機する(Sc8)。そして、Sc8のステップにおいて設定キースイッチ37のOFFが判定されると、図19のフローチャートに復帰し、ゲーム処理に移行することとなる。
図22は、メイン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のステップにおけるゲーム終了時処理では、次のゲームに備えて遊技状態を設定する処理を実行する。また、ゲーム終了時処理の最後に、RAM41cにドアコマンド送信要求1を設定し、ドアコマンドの送信を要求する。
図23〜図25は、メインCPU41aがSd1のステップにおいて実行するBET処理の制御内容を示すフローチャートである。
BET処理では、まず、RAM41cにおいて賭数の値が格納されるBETカウンタの値をクリアし(Se1)、遊技状態に応じた規定数(本実施例では遊技状態に関わらず3)をRAM41cに設定し(Se2)、RAM41cにリプレイゲームである旨を示すリプレイゲームフラグが設定されているか否かに基づいて当該ゲームがリプレイゲームであるか否かを判定する(Se3)。
Se3のステップにおいて当該ゲームがリプレイゲームであると判定された場合には、賭数が3加算された旨を示すBETコマンドを通常コマンド用送信バッファに設定し(Se4)、BETカウンタの値を1加算し(Se5)、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定し(Se6)、BETカウンタの値が規定数でなければSe5のステップに戻り、BETカウンタの値が規定数であれば、メダルの投入不可を示す投入不可フラグをRAM41cに設定し(Se7)、Se11のステップに進む。Se4のステップで設定されたBETコマンドは、その後のタイマ割込処理(メイン)でサブCPU91aに対して送信される。
Se3のステップにおいて当該ゲームがリプレイゲームでないと判定されれば、満タンフラグがRAM41cに設定されているか否か、すなわち前のゲーム以前にオーバーフロータンク35の満タン状態が判定されているか否かを判定し(Se8)、満タンフラグが設定されていれば、満タン異常を示すエラーコードをレジスタに設定し(Se9)、図20に示すエラー処理に移行する。
Se8のステップにおいて満タンフラグが設定されていなければ、投入待ち前の設定を行い(Se10)、Se11のステップに進む。投入待ち前の設定では、RAM41cに設定されている投入不可フラグをクリアし、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、精算スイッチ10の検出を有効化、すなわちゲームの進行制御に関与する状態とするとともに、メダルの投入が検出された際に、そのメダルが前のゲーム制御終了後、最初に投入されたメダルである旨を示す第1投入フラグをRAM41cに設定する。
Se11のステップにおいては、RAM41cに投入不可フラグが設定されているか否かに基づいてメダルの投入が可能な状態か否かを判定する。Se11のステップにおいてメダルの投入が可能な状態であると判定された場合には、流路切替ソレノイド30をonの状態とし、メダルの流路をホッパータンク側の経路としてメダルの投入が可能な状態とし(Se12)、Se14のステップに進み、メダルの投入が可能な状態でないと判定された場合には、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Se13)、Se14のステップに進む。
Se14のステップにおいては、BET処理においてゲームの進行制御に関与する1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、精算スイッチ10がONの状態である旨を示すスイッチオンフラグが設定されているか否かを判定し、これらスイッチオンフラグのいずれかが設定されていれば、Se19のステップに進み、これらスイッチオンフラグのいずれも設定されていなければ、Se15のステップに進む。
Se15のステップにおいては、通常コマンド送信用バッファが空か否かを判定し、通常コマンド送信用バッファが空でなければ、Se19のステップに進み、通常コマンド送信用バッファが空であれば、Se16のステップに進む。
Se16のステップにおいては、ゲームの進行制御に関与しないストップスイッチ8L、8C、8Rの検出状態に変化があったか否か、すなわち立上りエッジまたは立下りエッジが設定されているか否かを判定し、ストップスイッチ8L、8C、8Rの検出状態に変化がなければ、Se19のステップに進み、ストップスイッチ8L、8C、8Rの検出状態に変化があれば、該当するストップスイッチの検出状態の変化を特定可能な操作検出コマンドを通常コマンド送信用バッファに設定し(Se17)、ストップスイッチ8L、8C、8Rの検出状態の変化を示すエッジデータをクリアし(Se18)、Se19のステップに進む。Se17のステップで設定された操作検出コマンドは、その後のタイマ割込処理(メイン)でサブCPU91aに対して送信される。
Se19のステップにおいては、投入メダルセンサ31により投入メダルの通過が検出されたか否か、すなわち投入メダルの通過が検出された旨を示す投入メダルフラグの有無を判定する。Se19のステップにおいて投入メダルの通過が検出されていなければ、Se33のステップに進み、投入メダルの通過が検出されていれば、投入メダルフラグをクリアし(Se20)、RAM41cに投入不可フラグが設定されているか否かに基づいてメダルの投入が可能な状態か否かを判定し(Se21)、メダルの投入が可能な状態でなければSe33のステップに進む。
Se21のステップにおいてメダルの投入が可能な状態であれば、第1投入フラグが設定されているか否かに基づいてゲーム制御終了後最初の投入であるか否かを判定し(Se22)、ゲーム制御終了後最初の投入でなければSe26のステップに進み、ゲーム制御終了後、最初の投入であれば、第1投入フラグをクリアし(Se23)、満タンセンサ35aが検出されているか否かを判定する(Se24)。Se24のステップにおいて満タンセンサ35aが検出されていなければSe26のステップに進み、満タンセンサ35aが検出されている場合には、オーバーフロータンク35の満タン状態を示す満タンフラグをRAM41cに設定し(Se25)、Se26のステップに進む。
Se26のステップでは、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定し、BETカウンタの値が規定数でなければ、賭数が1加算された旨を示すBETコマンドを通常コマンド送信用バッファに設定し(Se27)、BETカウンタの値を1加算し(Se28)、Se11のステップに戻る。Se27のステップで設定されたBETコマンドは、その後のタイマ割込処理(メイン)でサブCPU91aに対して送信される。
Se26のステップにおいてBETカウンタの値が規定数であれば、現在のクレジットカウンタの値を示すクレジットコマンドを通常コマンド送信用バッファに設定し(Se29)、RAM41cにおいてクレジットの値が格納されるクレジットカウンタの値を1加算し(Se30)、クレジットカウンタの値が上限値である50であるか否かを判定し(Se31)、クレジットカウンタの値が50でなければ、Se11のステップに戻り、クレジットカウンタの値が50であれば投入不可フラグをRAM41cに設定し(Se32)、Se11のステップに戻る。Se29のステップに戻る。Se29のステップで設定されたクレジットコマンドは、その後のタイマ割込処理(メイン)でサブCPU91aに対して送信される。
Se33のステップでは、スタートスイッチ7の操作が検出されているか否か、すなわちスタートスイッチ7の操作の検出を示すスイッチオンフラグが設定されているか否かを判定する。Se33のステップにおいてスタートスイッチ7の操作が検出されていなければSe38のステップに進み、スタートスイッチ7の操作が検出されていれば、スイッチオンフラグをクリアし(Se34)、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否かを判定する(Se35)。
Se35のステップにおいてBETカウンタの値が規定数でなければ、Se11のステップに戻り、BETカウンタの値が規定数であれば、投入不可フラグをRAM41cに設定するとともに、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(Se36)、ゲーム開始時の設定を行う(Se37)。そして、Se37のステップの後、BET処理を終了して図22のフローチャートに復帰する。
Se38のステップにおいては、1枚BETスイッチ5の操作が検出されているか否か、すなわち1枚BETスイッチ5の操作が検出された旨を示すスイッチオンフラグが設定されているか否かを判定する。Se38のステップにおいて1枚BETスイッチ5の操作が検出されていなければ、Se45のステップに進み、1枚BETスイッチ5の操作が検出されていれば、スイッチオンフラグをクリアし(Se39)、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否かを判定する(Se40)。Se40のステップにおいてBETカウンタの値が規定数であればSe11のステップに戻り、BETカウンタの値が規定数でなければ、クレジットカウンタの値が0であるか否かを判定し(Se41)、クレジットカウンタの値が0であればSe11のステップに戻る。Se41のステップにおいてクレジットカウンタの値が0でなければ、賭数が1加算された旨を示すBETコマンドを通常コマンド送信用バッファに設定し(Se42)、クレジットカウンタの値を1減算し(Se43)、BETカウンタの値を1加算して(Se44)、Se11のステップに戻る。Se42のステップで設定されたBETコマンドは、その後のタイマ割込処理(メイン)でサブCPU91aに対して送信される。
Se45のステップにおいては、MAXBETスイッチ6の操作が検出されているか否か、すなわちMAXBETスイッチ6の操作が検出された旨を示すスイッチオンフラグが設定されているか否かを判定する。Se45のステップにおいてMAXBETスイッチ6の操作が検出されていなければ、Se53のステップに進み、MAXBETスイッチ6の操作が検出されていれば、スイッチオンフラグをクリアし(Se46)、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否かを判定する(Se47)。Se47のステップにおいてBETカウンタの値が規定数であれば、Se51のステップに進み、BETカウンタの値が規定数でなければ、クレジットカウンタの値が0であるか否かを判定し(Se48)、クレジットカウンタの値が0であれば、Se51のステップに進む。Se48のステップにおいてクレジットカウンタの値が0でなければ、クレジットカウンタの値を1減算し(Se49)、BETカウンタの値を1加算して(Se50)、Se47のステップに戻る。Se51のステップでは、BETカウンタが加算されたか否かを判定し、BETカウンタが加算されていなければ、Se11のステップに戻り、BETカウンタが加算されていれば、加算された数分賭数が加算された旨を示すBETコマンドを通常コマンド送信用バッファに設定し(Se52)、Se11のステップに戻る。Se52のステップで設定されたBETコマンドは、その後のタイマ割込処理(メイン)でサブCPU91aに対して送信される。
Se53のステップにおいては、精算スイッチ10の操作が検出されているか否か、すなわち精算スイッチ10の操作が検出された旨を示すスイッチオンフラグが設定されているか否かを判定する。Se53のステップにおいて精算スイッチ10の操作が検出されていなければ、Se11のステップに戻り、精算スイッチ10の操作が検出されていれば、スイッチオンフラグをクリアし(Se54)、RAM41cにリプレイゲームフラグが設定されているか否かに基づいて当該ゲームがリプレイゲームであるか否かを判定し(Se55)、当該ゲームがリプレイゲームであればSe11のステップに戻る。Se54のステップにおいて当該ゲームがリプレイゲームでなければ、BETカウンタの値が0か否かを判定し(Se56)、BETカウンタの値が0であればSe58のステップに進み、BETカウンタの値が0でなければ、既に設定済み賭数の精算を行う旨を示す賭数精算フラグをRAM41cに設定し(Se57)、Se58のステップに進む。Se58のステップにおいては、ホッパーモータ34bを駆動してクレジットカウンタまたはBETカウンタに格納された値分のメダルを払い出す制御、すなわちクレジットとして記憶されているメダルまたは賭数の設定に用いられたメダルを返却する制御が行われる精算処理を行う。そして、Se58のステップにおける精算処理の後、RAM41cに設定されている投入不可フラグをクリアして(Se59)、Se11のステップに戻る。
図26及び図27は、メインCPU41aがSd3のステップにおいて実行するリール回転処理の制御内容を示すフローチャートである。
リール回転処理では、まず、フリーズ状態に制御するか否かを決定するフリーズ抽選を実行する(Si1)。その後、前のゲームのリール回転開始時点からウェイトタイム(本実施例では、約4.1秒)が経過したか否かを判定し(Si2)、ウェイトタイムが経過していなければ、ウェイトタイムが経過するまで待機する。
そして、Si2のステップにおいてウェイトタイムが経過していれば、ウェイトタイムを新たに設定する(Si3)。
次いで、リールモータの回転開始時の設定を行い、リールの回転を開始させる(Si4)。そして、回転中のリール別に仮想滑りコマテーブルの滑りコマ数を設定する滑りコマ数設定処理を行い(Si5)、停止準備完了時の設定を行う(Si6)。これにより、停止操作を有効化させることが可能な状態となり、その後、タイマ割込処理(メイン)の原点通過時処理において、リールの定速回転が検出された時点で、停止操作が有効となる。
次いで、フリーズ条件が成立しているか否か、すなわちフリーズ抽選にてフリーズ状態に制御する旨が決定され、かつフリーズ状態に制御する時期(全リール回転中、第1停止時、第2停止時のいずれか)であるかを判定し(Si7)、フリーズ条件が成立していなければ、Si9のステップに進み、フリーズ条件が成立していれば、フリーズ状態の時間を計時するためにRAM41cに割り当てられたフリーズタイマカウンタに規定値を設定し(Si8)、Si9のステップに進む。フリーズタイマカウンタの値は、タイマ割込処理(メイン)が4回実行される毎に1ずつ減算される。
Si9のステップにおいては、リール回転処理においてゲームの進行制御に関与するストップスイッチ8L、8C、8Rの操作が検出された旨を示すスイッチオンフラグが設定されているか否かを判定し、いずれかのスイッチオンフラグが設定されていれば、Si14のステップの進み、いずれのスイッチオンフラグも設定されていなければ、通常コマンド送信用バッファが空か否かを判定する(Si10)。
Si10のステップにおいては、通常コマンド送信用バッファが空でなければ、Se14のステップに進み、通常コマンド送信用バッファが空であれば、ゲームの進行制御に関与しないMAXBETスイッチ6の操作が検出されたか否か、すなわちMAXBETスイッチ6の検出状態の変化を示す立上りエッジまたは立下りエッジが設定されているか否かを判定し(Si11)、MAXBETスイッチ6の検出状態に変化がなければ、Si14のステップに進み、MAXBETスイッチ6の検出状態に変化があれば、MAXBETスイッチ6の検出状態の変化を特定可能な操作検出コマンドを通常コマンド送信用バッファに設定し(Si12)、MAXBETスイッチ6の検出状態の変化を示すエッジデータをクリアし(Si13)、Si14のステップに進む。
Si14のステップにおいては、フリーズタイマカウンタの値が0か否か、すなわちフリーズ状態に制御されているか否かを判定する。Si14のステップにおいてフリーズタイマカウンタの値が0ではない場合、すなわちフリーズ状態に制御されている場合には、ストップスイッチ8L、8C、8Rの操作が検出された旨を示すスイッチオンフラグをクリアし(Si15)、Si9のステップに戻る。
Si14のステップにおいてフリーズタイマカウンタの値が0の場合、すなわちフリーズ状態に制御されていない場合(当初からフリーズ状態に制御されていない場合、またはフリーズ状態が終了した場合)には、いずれかのストップスイッチの操作が検出されたか否か、すなわちいずれかのストップスイッチの操作が検出された旨を示すスイッチオンフラグが設定されているか否かを判定し(Si16)、いずれのストップスイッチの操作も検出されていなければ、リール回転エラー(一定期間以上、リールセンサ33によりリール基準位置が検出されない場合に判定されるエラー)が発生したか否かを判定し(Si17)、リール回転エラーが発生していなければ、更に、投入エラー(メダルの投入が許可されている期間以外で、メダルの投入を検出した場合に判定されるエラー)が発生したか否か、及び払出エラー(メダルの払出が許可されている期間以外で、メダルの払出を検出した場合に判定されるエラー)が発生したか否かを判定し(Si18、Si19)、Si17〜Si19のステップにおいていずれのエラーの発生も判定されなければ、Si9のステップに戻る。
また、Si18のステップにおいて投入エラーの発生が判定された場合、またはSi19のステップにおいて払出エラーが判定された場合には、リール回転中の投入・払出エラーを示すエラーコードをレジスタに設定し(Si20)、図20に示すエラー処理に移行する(Si21)。そして、エラーが解除された場合には、再びSi9のステップに戻る。
また、Si17のステップにおいてリール回転エラーの発生が判定された場合には、リール回転エラーを示すエラーコードをレジスタに設定し(Si22)、図20に示すエラー処理に移行する(Si23)。これに伴い、リールの回転も一時的に停止する。そして、エラーが解除された場合には、再びSi4のステップに戻り、リールの回転が再開する。
また、Si16のステップにおいていずれかのストップスイッチの操作が検出された場合には、スイッチオンフラグをクリアし(Si24)、操作が検出されたストップスイッチに対応するリールモータにおける、その時点のリール基準位置からのステップ数(停止操作位置となるステップ数)を取得し、停止リールに対応するワークに設定した後(Si25)、停止操作に対応するリールの回転が停止するまで待機する(Si26)。
そして、停止操作に対応するリールの回転が停止すると、全てのリールが停止したか否かを判定し(Si27)、全てのリールが停止していなければ、Si5のステップに戻り、全てのリールが停止していれば、リール回転処理を終了して、図22のフローチャートに復帰する。
図28及び図29は、メイン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においてスタック領域に退避したレジスタを復帰し(Sk22)、Sk1のステップにおいて禁止した割込を許可して(Sk23)、割込前の処理に戻る。
また、Sk7のステップにおいてタイマ割込2の場合には、各種表示器をダイナミック点灯させるLEDダイナミック表示処理(Sk11)、各種LED等の点灯信号等のデータを出力ポートへ出力する制御信号等出力処理(Sk12)、各種ソフトウェア乱数を更新する乱数更新処理(Sk13)、各種時間カウンタを更新する時間カウンタ更新処理(Sk14)、ドア開放検出スイッチ25の検出状態の監視、ドアコマンドの送信要求、送信命令などを行うドア監視処理(Sk15)、通常コマンド送信用バッファまたはドアコマンド送信用バッファに格納されているコマンドをサブCPU91aに対して送信するコマンド送信処理(Sk16)、外部出力信号を更新する外部出力信号更新処理(Sk17)を順次実行した後、Sk2においてスタック領域に退避したレジスタを復帰し(Sk22)、Sk1のステップにおいて禁止した割込を許可して(Sk23)、割込前の処理に戻る。
また、Sk5のステップにおいてタイマ割込3またはタイマ割込4であれば、更に、分岐用カウンタ値を参照して3か否か、すなわちタイマ割込4か否かを判定し(Sk18)、タイマ割込4でなければ、すなわちタイマ割込3であれば、回転中のリール2L、2C、2Rの原点通過(リール基準位置の通過)をチェックし、リール回転エラーの発生を検知するとともに、停止準備が完了しているか(停止準備完了コードが設定されているか)を確認し、停止準備が完了しており、かつ定速回転中であれば、回転中のリールに対応するストップスイッチの操作を有効化する原点通過時処理(Sk19)、スイッチ類の操作が検出されているか否かを判定するスイッチ入力判定処理1(Sk20)、スイッチ類の検出状態に変化があったか否かを判定するスイッチ入力判定処理2(Sk21)を順次実行した後、Sk2においてスタック領域に退避したレジスタを復帰し(Sk22)、Sk1のステップにおいて禁止した割込を許可して(Sk23)、割込前の処理に戻る。
また、Sk18のステップにおいてタイマ割込4であれば、ストップスイッチ8L、8C、8Rの検出、または自動停止制御に伴って停止リールのワークに停止操作位置が格納されたときに、停止リールのワークに格納された停止操作位置から停止位置を決定し、何ステップ後に停止すれば良いかを算出する停止スイッチ処理(Sk24)、停止スイッチ処理で算出された停止までのステップ数をカウントして、停止する時期になったら2相励磁によるブレーキを開始する停止処理(Sk25)、停止処理においてブレーキを開始してから一定時間後に3相励磁とする最終停止処理(Sk26)を順次実行した後、Sk2においてスタック領域に退避したレジスタを復帰し(Sk22)、Sk1のステップにおいて禁止した割込を許可して(Sk23)、割込前の処理に戻る。
図30は、メインCPU41aが前述したタイマ割込処理(メイン)のタイマ割込3内において実行するスイッチ入力判定処理1の制御内容を示すフローチャートである。
スイッチ入力判定処理1では、今回の確定データ及び前回の確定データを取得する(Sk101)。確定データとは、入力ポートから取得した各スイッチの検出状態が連続して同じ状態となった場合に更新される各スイッチの検出状態を示すデータである。そして、今回の確定データのうちいずれかのスイッチがONの状態であるか否かを判定し(Sk103)、いずれのスイッチもONの状態でなければ、図29のフローチャートに復帰する。
Sk103のステップにおいていずれかのスイッチがONの状態であれば、2つ以上のスイッチがONの状態であるか否か判定し(Sk104)、2つ以上のスイッチがONの状態であれば、図29のフローチャートに復帰する。
Sk104のステップにおいて2つ以上のスイッチがONの状態でなければ、ONの状態のスイッチの前回の確定データもONであるか否かを判定し(Sk105)、前回の確定データもONであれば、図29のフローチャートに復帰する。
Sk105のステップにおいて前回の確定データONでなければ、OFFからONに変化したスイッチの操作が検出された旨を示すスイッチオンフラグを設定し(Sk106)、図29のフローチャートに復帰する。
図31は、メインCPU41aが前述したタイマ割込処理(メイン)のタイマ割込3内において実行するスイッチ入力判定処理2の制御内容を示すフローチャートである。
スイッチ入力判定処理2では、ポート入力処理において取得した各スイッチの入力データを更新し(Sk111)、前回の入力データが示す検出状態と今回の入力データが示す検出状態とが同じであるか否かを判定し(Sk112)、前回の入力データが示す検出状態と今回の入力データが示す検出状態とが同じでなければ、図29のフローチャートに復帰する。
Sk112のステップにおいて、前回の入力データが示す検出状態と今回の入力データが示す検出状態とが同じであれば、該当するスイッチの確定データを更新し(Sk113)、Sk114のステップに進む。Sk113のステップでは、今回の確定データを前回の確定データに移動し、前回と今回が同じと判定された入力データが示す検出状態を今回の確定データとして設定する。
Sk114のステップでは、更新後の前回の確定データと今回の確定データとが同じか否かを判定し、前回の確定データと今回の確定データとが同じであれば、図29のフローチャートに復帰する。
Sk114のステップにおいて前回の確定データと今回の確定データとが同じでなければ、該当するスイッチがOFFからONに変化したかを判定し(Sk115)、スイッチがOFFからONに変化した場合には、OFFからONに変化した旨を示す立上りエッジを設定し(Sk116)、図29のフローチャートに復帰する。
Sk115のステップにおいてONからOFFに変化した場合には、ONからOFFに変化した旨を示す立下りエッジを設定し(Sk117)、図29のフローチャートに復帰する。
図32は、メインCPU41aが前述したタイマ割込処理(メイン)のタイマ割込2内において実行するドア監視処理の制御内容を示すフローチャートである。
ドア監視処理では、まず、ドア開放検出スイッチ25の入力状態の履歴(ポート入力処理において取得したドア開放検出スイッチ25の正論理化した検出信号の確定状態を約100ms論理和し続けた値)であるドアセンサ履歴を更新する(Sk201)。すなわちドア開放検出スイッチ25の正論理化した検出信号の確定状態とドアセンサ履歴との論理和をとって新たなドアセンサ履歴とする。
次いで、ドア監視タイマの値が0か否か、すなわち前回の監視から約100msが経過したか否かを判定し(Sk202)、ドア監視タイマの値が0でなければ、ドア監視タイマの値を1減算し(Sk203)、ドア監視処理を終了し、図28のフローチャートに復帰する。
Sk202のステップにおいてドア監視タイマの値が0であれば、ドアコマンド送信要求2が設定されているか否か、すなわち起動時において電源投入コマンドまたは初期化コマンドの送信を優先するために、ドアコマンドが送信待ちの状態か否かを判定し(Sk204)、ドアコマンド送信要求2が設定されていれば、ドア監視処理を終了し、図28のフローチャートに復帰する。Sk204のステップにおいてドアコマンド送信要求2が設定されているか否かを判定し、ドアコマンド送信要求2が設定されている場合に、ドア監視処理を終了することで、ドアコマンド送信用バッファの値が更新されないようになっており、電源投入コマンドまたは初期化コマンドによる送信待ちの間に、ドアコマンド送信用バッファの値、すなわち起動後、最初のドア開放検出スイッチ25の検出状態を示すドアコマンドが上書きされないようになっている。
Sk204のステップにおいてドアコマンド送信要求2が設定されていなければ、ドア監視タイマの値として44を設定し(Sk205)、新たに100msの計時を開始する。そしてドアセンサ履歴をレジスタに取得し、RAM41cのドアセンサ履歴をクリアした後(Sk206)、レジスタに取得したドアセンサ履歴が示すドア開放検出スイッチ25の検出状態と、ドアコマンド送信用バッファに格納されているドアコマンドが示すドア開放検出スイッチ25の検出状態と、を比較し、ドア開放検出スイッチ25の検出状態に変化があるか否かを判定する(Sk207)。
Sk207のステップにおいてドア開放検出スイッチ25の検出状態に変化がなければ、ドアコマンド送信要求1が設定されているか否か、すなわちメインCPU41aの起動またはゲームの終了に伴いドアコマンドの送信が要求されているか否かを判定し(Sk208)、ドアコマンド送信要求1が設定されていなければ、ドア監視処理を終了し、図28のフローチャートに復帰する。
Sk207のステップにおいてドア開放検出スイッチ25の検出状態に変化がある場合、またはSk208のステップにおいてドアコマンド送信要求1が設定されている場合には、ドアコマンド送信要求をクリアするとともに、ドアコマンド送信要求2を設定し(Sk209)、レジスタに取得したドアセンサ履歴(変化後のドア開放検出スイッチ25の検出状態)に基づくドアコマンドをドアコマンド送信用バッファに格納する(Sk210)ことで、変化後のドアコマンドの送信を命令した後、ドア監視処理を終了し、図28のフローチャートに復帰する。
図33は、メインCPU41aが前述したタイマ割込処理(メイン)のタイマ割込2内において実行するコマンド送信処理の制御内容を示すフローチャートである。
コマンド送信処理では、まず、エラーコマンド、電源投入コマンドまたは初期化コマンドの送信遅延中か否かを判定し(Sk301)、エラーコマンド、電源投入コマンドまたは初期化コマンドの送信遅延中であれば、Sk308のステップに進み、エラーコマンド、電源投入コマンドまたは初期化コマンドの送信遅延中でなければ、未送信のエラーコマンド、電源投入コマンドまたは初期化コマンドが特殊コマンド送信用バッファに格納されているか否かを判定する(Sk302)。
Sk302のステップにおいて未送信のエラーコマンド、電源投入コマンドまたは初期化コマンドが特殊コマンド送信用バッファに格納されている場合には、Sk307のステップに進み、未送信のエラーコマンド、電源投入コマンドまたは初期化コマンドが特殊コマンド送信用バッファに格納されていない場合には、ドアコマンド、エラーコマンド、電源投入コマンドまたは初期化コマンド以外のコマンド(以下、通常コマンドとする)の送信遅延中か否かを判定する(Sk303)。
Sk303のステップにおいて通常コマンドの送信遅延中であれば、Sk308のステップに進み、通常コマンドの送信遅延中でなければ、ドアコマンドの送信遅延中か否かを判定し(Sk304)、ドアコマンドの送信遅延中であれば、Sk308のステップに進み、ドアコマンドの送信遅延中でなければドアコマンド送信要求2が設定されているか、すなわちドアコマンドの送信が命令されているか否かを判定する(Sk305)。
Sk305のステップにおいてドアコマンドの送信要求2が設定されていなければ、未送信の通常コマンドが通常コマンド送信用バッファに格納されているか否かを判定し(Sk306)、未送信の通常コマンドが通常コマンド送信用バッファに格納されている場合には、Sk307のステップに進み、未送信の通常コマンドが通常コマンド送信用バッファに格納されていない場合には、コマンド送信処理を終了し、図28に示すフローチャートに復帰する。
Sk307のステップでは、コマンド遅延用の乱数値(0〜17)を取得し、遅延カウンタに格納し、Sk308のステップに進む。
Sk308のステップでは、遅延カウンタ値を1減算した後、Sk309のステップに進み、遅延カウンタ値が0か否かを判定し、遅延カウンタ値が0でない場合には、コマンド送信処理を終了し、図28に示すフローチャートに復帰する。
Sk309のステップにおいて遅延カウンタ値が0の場合には、ドアコマンドの送信時か否かを判定し(Sk310)、ドアコマンドの送信時であれば、ドアコマンド送信要求2をクリアし、ドアコマンド送信用バッファのアドレスを設定し(Sk311)、Sk315のステップに進む。尚、ドアコマンド送信要求2は、ドア監視処理で設定された後、当該ドアコマンド送信要求2の設定に伴うドアコマンドが送信される直前までクリアされないため、ドアコマンド送信要求2が設定された後、電源投入コマンドまたは初期化コマンドによるドアコマンドの送信待ちの間に、ドアコマンド送信用バッファの値、すなわち起動後、最初のドア開放検出スイッチ25の検出状態を示すドアコマンドが上書きされることがない。
Sk310のステップにおいてドアコマンドの送信時でなければ、エラーコマンド、電源投入コマンドまたは初期化コマンドの送信時か否かを判定し(Sk312)エラーコマンド、電源投入コマンドまたは初期化コマンドの送信時であれば、特殊コマンド送信用バッファのアドレスを設定し(Sk313)、Sk315のステップに進む。
Sk312のステップにおいてエラーコマンド、電源投入コマンドまたは初期化コマンドの送信時ではない場合、すなわち通常コマンドの送信時であれば、通常コマンド送信用バッファの送信ポインタが示すアドレスを設定し(Sk314)、Sk315のステップに進む。
Sk315のステップでは、Sk311、Sk313、Sk314のステップにおいて設定されたアドレスに格納されているコマンドを読み出し、サブCPU91aに対して送信し、コマンド送信処理を終了して、図28に示すフローチャートに復帰する。
図34は、メインCPU41aが割込2の発生に応じて、すなわち電断検出回路48からの電圧低下信号が入力されたときに起動処理やゲーム処理に割り込んで実行する電断割込処理(メイン)の制御内容を示すフローチャートである。
電断割込処理(メイン)においては、まず、割込を禁止する(Sm1)。すなわち電断割込処理(メイン)の開始にともなってその他の割込処理が実行されることを禁止する。次いで、使用している可能性がある全てのレジスタをスタック領域に退避する(Sm2)。尚、前述したIレジスタ及びIYレジスタの値は使用されているが、起動時の初期化に伴って常に同一の固定値が設定されるため、ここでは保存されない。
次いで、入力ポートから電圧低下信号の検出データを取得し、電圧低下信号が入力されているか否かを判定する(Sm3)。この際、電圧低下信号が入力されていなければ、Sm2においてスタック領域に退避したレジスタを復帰し(Sm4)、Sm1のステップにおいて禁止した割込を許可して(Sm5)、割込前の処理に戻る。
また、Sm3のステップにおいて電圧低下信号が入力されていれば、破壊診断用データ(本実施例では、5A(H))をセットして(Sm6)、全ての出力ポートを初期化する(Sm7)。次いでRAM41cの全ての格納領域(未使用領域及び未使用スタック領域を含む)の排他的論理和が0になるようにRAMパリティ調整用データを計算してセットし(Sm8)、RAM41cへのアクセスを禁止する(Sm9)。
そして、電圧低下信号が入力されているか否かの判定(Sm10、尚、Sm10は、Sm3と同様の処理である)を除いて、何らの処理も行わないループ処理に入る。すなわち、そのまま電圧が低下すると内部的に動作停止状態になる。よって、電断時に確実にメインCPU41aは動作停止する。また、このループ処理において、電圧が回復し、電圧低下信号が入力されない状態となると、前述した起動処理が実行され、RAMパリティが0となり、かつ破壊診断用データが正常であれば、元の処理に復帰することとなる。
尚、本実施例では、RAM41cへのアクセスを禁止した後、電圧低下信号の出力状況を監視して、電圧低下信号が入力されなくなった場合に電圧の回復を判定し、起動処理へ移行するようになっているが、ループ処理において何らの処理も行わず、ループ処理が行われている間に、電圧が回復し、リセット回路49からリセット信号が入力されたことに基づいて、起動処理へ移行するようにしても良い。
次に、演出制御基板90に搭載されたサブ制御部91のサブCPU91aが1.12msの間隔で定期的に実行するタイマ割込処理(サブ)を、図35〜図37のフローチャートに基づいて以下に説明する。
図35に示すように、タイマ割込処理(サブ)においては、まず、受信用バッファにコマンドが格納されているか否か、すなわちメイン制御部41からコマンドを受信しているか否かを判定する(Ss1)。受信用バッファにコマンドが格納されていなければ、Ss6のステップに進み、受信用バッファにコマンドが格納されていれば、受信用バッファからコマンドを取得し(Ss2)、Ss3のステップに進む。
Ss3のステップでは、操作検出コマンドの受信に応じてゲームの進行制御に関与しない操作スイッチの検出状態を更新する操作検出処理1を実行し、Ss4のステップに進む。
Ss4のステップでは、取得したコマンドが内部当選コマンドまたはフリーズコマンドの場合に、ROM91bに格納されている演出テーブルを参照し、内部当選コマンドが示す内部抽選の結果に応じた選択率にて演出パターンを選択し、選択した演出パターンを当該ゲームの演出パターンとしてRAM91cに設定する演出パターン選択処理を実行し、Ss5のステップに進む。
Ss5のステップでは、ROM91bに格納されている制御パターンテーブルを参照し、RAM91cに設定されている演出パターン及び取得したコマンドに対応して登録されている制御パターンを読み出してRAM91cに設定する制御パターン設定処理を実行し、Ss6のステップに進む。
Ss6のステップでは、Ss14のステップにおいて設定された制御パターンに従って、演出効果LED52、スピーカ53、54、リールLED等の各種演出装置の制御を行う演出制御処理を実行し、Ss7のステップに進む。
Ss7のステップでは、ゲームの進行制御に関与しない操作スイッチが一定時間継続して操作されたか否かを監視する操作検出処理2を実行し、Ss8のステップに進む。
Ss8のステップでは、ゲームの進行制御に関与しない操作スイッチの検出状態などに応じて操作演出を行う操作演出制御処理を実行し、Ss9のステップに進む。
Ss9のステップでは、タッチパネルコントローラ99から取得したデータに基づいてタッチパネルの検出状況を解析するタッチパネル処理を行った後、Ss10のステップに進み、各種カウンタの値を更新する処理を行った後、タイマ割込処理(サブ)を終了する。
図36は、サブCPU91aが前述したタイマ割込処理(サブ)において実行する操作検出処理1の制御内容を示すフローチャートである。
操作検出処理1では、Ss2のステップにおいて取得したコマンドが操作検出コマンドか否かを判定し(Ss201)、操作検出コマンドでない場合には、さらに取得したコマンドがドアコマンドか否かを判定し(Ss202)、ドアコマンドであれば、図35のフローチャートに復帰する。
Ss201、Ss202のステップにおいて操作検出コマンドでもなく、ドアコマンドでもないと判定した場合には、検出状態格納領域の今回の状態としてONが設定されているスイッチがあるか否かを判定し(Ss203)、今回の状態としていずれもONが設定されていない場合には、図35のフローチャートに復帰する。
Ss203のステップにおいて今回の状態としてONが設定されているスイッチがあると判定した場合、すなわちONからOFFに変化した旨を示す操作検出コマンドを受信しないまま、操作検出コマンドでもなく、ドアコマンドでもないコマンドを受信した場合には、今回の状態をOFFに更新し(Ss204)、図35のフローチャートに復帰する。
Ss201のステップにおいて取得したコマンドが操作検出コマンドであると判定した場合には、検出状態格納領域における該当する操作スイッチの検出状態を操作検出コマンドが示す検出状態の変化に合わせて更新し(Ss205)、操作検出コマンドが示す操作スイッチの操作が検出された旨を示す操作検出フラグを設定し(Ss206)、Ss207のステップに進む。尚、Ss206のステップで設定された操作検出フラグは、後述するSs209のステップでクリアされるか、操作演出制御処理において操作検出フラグによりゲームの進行制御に関与しない操作スイッチの検出状態の変化が確認されることでクリアされる。
Ss207のステップでは、更新された検出状態格納領域を参照し、操作検出フラグが示す操作スイッチの検出状態がOFFからONに変化したか否かを判定し、OFFからONに変化したものでなければ、図35のフローチャートに復帰する。
Ss207のステップにおいて、OFFからONに変化したと判定した場合には、更新された検出状態格納領域を参照し、前回の状態がOFFか否かを判定し(Ss208)、前回の状態OFFではない場合、すなわちONからOFFに変化した旨を示す操作検出コマンドを受信しないまま、OFFからONに変化した旨を示す操作検出コマンドを受信した場合には、操作検出フラグをクリアし(Ss209)、図35のフローチャートに復帰する。
Ss208のステップにおいて前回の状態がOFFであると判定した場合には、時間経過フラグをクリアし(Ss210)、操作時間カウンタの値を初期化(0とする)し(Ss211)、図35のフローチャートに復帰する。
図37は、サブCPU91aが前述したタイマ割込処理(サブ)において実行する操作検出処理2の制御内容を示すフローチャートである。
操作検出処理2では、検出状態格納領域を参照し、今回の状態がONの操作スイッチがあるか否かを判定し(Ss601)、今回の状態がONの操作スイッチがなければ、図35に示すフローチャートに復帰する。
Ss601のステップにおいて今回の状態がONの操作スイッチがあれば、今回の状態がONの操作スイッチの操作時間カウンタの値を参照し、当該操作スイッチがONとなってから10秒経過したか否かを判定し(Ss602)、10秒経過していなければ、Ss604のステップに進み、10秒経過していれば10秒経過フラグを設定し(Ss603)、Ss604のステップに進む。
Ss604のステップでは、今回の状態がONの操作スイッチの操作時間カウンタの値を参照し、当該操作スイッチがONとなってから5秒経過したか否かを判定し、5秒経過していなければ、Ss606のステップに進み、5秒経過していれば5秒経過フラグを設定し(Ss605)、Ss606のステップに進む。
Ss606のステップでは、今回の状態がONの操作スイッチの操作時間カウンタの値を参照し、当該操作スイッチがONとなってから3秒経過したか否かを判定し、3秒経過していなければ、図35に示すフローチャートに復帰し、3秒経過していれば3秒経過フラグを設定し(Ss607)、図35に示すフローチャートに復帰する。
これら時間経過フラグは、操作演出制御処理においてゲームの進行制御に関与しない操作スイッチの連続操作時間が確認されることでクリアされる。
以上、本発明の実施例を図面により説明してきたが、本発明はこの実施例に限定されるものではなく、本発明の主旨を逸脱しない範囲における変更や追加があっても本発明に含まれることは言うまでもない。
例えば、前記実施例では、メダル並びにクレジットを用いて賭数を設定するスロットマシンを用いているが、本発明はこれに限定されるものではなく、遊技球を用いて賭数を設定するスロットマシンや、クレジットのみを使用して賭数を設定する完全クレジット式のスロットマシンであっても良い。
更に、流路切替ソレノイド30や投入メダルセンサ31など、メダルの投入機構に加えて、遊技球の取込を行う球取込装置、球取込装置により取り込まれた遊技球を検出する取込球検出スイッチを設けるとともに、ホッパーモータ34bや払出センサ34cなど、メダルの払出機構に加えて、遊技球の払出を行う球払出装置、球払出装置により払い出された遊技球を検出する払出球検出スイッチを設け、メダル及び遊技球の双方を用いて賭数を設定してゲームを行うことが可能であり、かつ入賞の発生によってメダル及び遊技球が払い出されるスロットマシンに適用しても良い。