[実施形態1]
本発明が適用されたスロットマシンの実施形態1について図面を用いて説明すると、本実施形態に係るスロットマシン1は、前面が開口する筐体1aと、この筐体1aの側端に回動自在に枢支された前面扉1bと、から構成されている。筐体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の外周部に描かれた図柄は、前面扉1bのリールパネル1c略中央に設けられた透視窓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には、メダル投入部4、メダル払出口9、MAXBETスイッチ6、精算スイッチ10、スタートスイッチ7、ストップスイッチ8L、8C、8R、演出用スイッチ56が遊技者により操作可能にそれぞれ設けられている。また、前面扉1bには、クレジット表示器11、遊技補助表示器12、1BETLED14、2BETLED15、3BETLED16、投入要求LED17、スタート有効LED18、ウェイト中LED19、リプレイ中LED20が設けられた遊技用表示部13が設けられている。MAXBETスイッチ6の内部には、BETスイッチ有効LED21(図4参照)が設けられており、ストップスイッチ8L、8C、8Rの内部には、左、中、右停止有効LED22L、22C、22R(図4参照)がそれぞれ設けられている。
前面扉1bの内側には、リセットスイッチ23、設定値表示器24、打止スイッチ36a、自動精算スイッチ36b、流路切替ソレノイド30、投入メダルセンサ31を有するメダルセレクタ(図示略)、ドア開放検出スイッチ25(図4参照)が設けられている。
筐体1a内部には、図2に示すように、リールセンサ33L、33C、33R(図4参照)からなるリールユニット2、外部出力基板1000、ホッパータンク34a、ホッパーモータ34b、払出センサ34cからなるホッパーユニット34、電源ボックス100が設けられている。ホッパーユニット34の側部には、オーバーフロータンク35が設けられている。オーバーフロータンク35の内部には、満タンセンサ35aが設けられており、導電部材がオーバーフロータンク35内に貯留されたメダルを介して接触することにより導電したときに内部に貯留されたメダル貯留量が所定量以上となったこと、すなわちオーバーフロータンクが満タン状態となったことを検出できるようになっている。電源ボックス100の前面には、設定キースイッチ37、リセット/設定スイッチ38、電源スイッチ39が設けられている。
本実施形態のスロットマシン1においてゲームを行う場合には、まず、メダルをメダル投入部4から投入するか、MAXBETスイッチ6の操作によってクレジットを使用して賭数を設定する。遊技状態に応じて定められた規定数の賭数が設定されると、入賞ラインLNが有効となり、スタートスイッチ7の操作が有効な状態(ゲームが開始可能な状態)となる。なお、遊技状態に対応する規定数のうち最大数を超えてメダルが投入された場合には、その分はクレジットに加算される。入賞ラインとは、各リール2L、2C、2Rの透視窓3に表示された図柄の組合せが入賞図柄の組合せであるかを判定するために設定されるラインである。本実施形態では、リール2L、2C、2Rの中段、すなわち中段に水平方向に並んだ図柄に跨って設定された入賞ラインLNのみが入賞ラインとして定められている。なお、入賞役として、入賞ラインLNに役として定められた所定の図柄の組合せが揃ったときに入賞するとともに、所定の図柄組合せが揃うことにより無効ラインLM1〜LM4の何れかに所定の図柄組合せよりも認識しやすい指標となる図柄の組合せが揃うことにより、無効ラインLM1〜LM4の何れかに揃った図柄の組合せによって入賞したように見せることが可能な役を含む。
ゲームが開始可能な状態でスタート操作が行われると、各リール2L、2C、2Rが回転し、図柄が連続的に変動する。この状態でストップスイッチ8L、8C、8Rを操作すると、対応するリール2L、2C、2Rが停止し、透視窓3に表示結果が導出表示される。そして全てのリール2L、2C、2Rが停止されることで1ゲームが終了し、入賞ラインLN上に予め定められた図柄の組合せが各リール2L、2C、2Rの表示結果として停止した場合には入賞が発生し、その入賞に応じて定められた枚数のメダルが遊技者に対して付与され、クレジットに加算される。また、クレジットが上限数(50)に達した場合には、メダルが直接メダル払出口9(図1参照)から払い出されるようになっている。また、入賞ラインLNに、遊技状態の移行を伴う図柄の組み合わせが各リール2L、2C、2Rの表示結果として停止した場合には図柄の組み合わせに応じた遊技状態に移行する。
また、本実施形態におけるスロットマシン1にあっては、ゲームが開始されて各リール2L、2C、2Rが回転して図柄の変動が開始した後、いずれかのストップスイッチ8L、8C、8Rが操作されたときに、当該ストップスイッチ8L、8C、8Rに対応するリールの回転が停止して図柄が停止表示される。ストップスイッチ8L、8C、8Rの操作から対応するリール2L、2C、2Rの回転を停止するまでの最大停止遅延時間は190ms(ミリ秒)である。リール2L、2C、2Rは、1分間に80回転し、80×21(1リール当たりの図柄コマ数)=1680コマ分の図柄を変動させるので、190msの間では最大で4コマの図柄を引き込むことができる。すなわち、停止図柄として選択可能なのは、ストップスイッチ8L、8C、8Rが操作されたときに表示されている図柄と、そこから4コマ先までにある図柄、合計5コマ分の図柄である。このため、例えば、ストップスイッチ8L、8C、8Rのいずれかが操作されたときにリールの下段に表示されている図柄を基準とした場合、当該図柄から4コマ先までの図柄を下段に表示させることができ、リール2L、2C、2R各々において、ストップスイッチ8L、8Rのうちいずれかが操作されたときに対応するリールの中段に表示されている図柄を含めて5コマ以内に配置されている図柄を入賞ラインLNに表示させることができる。
スロットマシン1には、図4に示すように、遊技制御基板40、演出制御基板90、電源基板101が設けられており、遊技制御基板40によって遊技状態が制御され、演出制御基板90によって遊技状態に応じた演出が制御され、電源基板101によってスロットマシン1を構成する電気部品の駆動電源が生成され、各部に供給される。電源基板101には、外部からAC100Vの電源が供給されるとともに、このAC100Vの電源からスロットマシン1を構成する電気部品の駆動に必要な直流電圧が生成され、遊技制御基板40及び遊技制御基板40を介して接続された演出制御基板90に供給されるようになっている。また、後述するメイン制御部41からサブ制御部91へのコマンド伝送ラインと、遊技制御基板40から演出制御基板90に対して電源を供給する電源供給ラインと、が一系統のケーブル及びコネクタを介して接続されており、これらケーブルと各基板とを接続するコネクタ同士が全て接続されることで演出制御基板90側の各部が動作可能となり、かつメイン制御部41からのコマンドを受信可能な状態となる。このため、メイン制御部41からコマンドを伝送するコマンド伝送ラインが演出制御基板90に接続されている状態でなければ、演出制御基板90側に電源が供給されず、演出制御基板90側のみが動作してしまうことがない。また、電源基板101には、前述したホッパーモータ34b、払出センサ34c、満タンセンサ35a、設定キースイッチ37、リセット/設定スイッチ38、電源スイッチ39が接続されている。
遊技制御基板40には、前述したMAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R、精算スイッチ10、リセットスイッチ23、打止スイッチ36a、自動精算スイッチ36b、投入メダルセンサ31、ドア開放検出スイッチ25、リールセンサ33L、33C、33Rが接続されているとともに、電源基板101を介して前述した払出センサ34c、満タンセンサ35a、設定キースイッチ37、リセット/設定スイッチ38が接続されており、これら接続されたスイッチ類の検出信号が入力されるようになっている。また、遊技制御基板40には、前述したクレジット表示器11、遊技補助表示器12、ペイアウト表示器13、1〜3BETLED14〜16、投入要求LED17、スタート有効LED18、ウェイト中LED19、リプレイ中LED20、BETスイッチ有効LED21、左、中、右停止有効LED22L、22C、22R、設定値表示器24、流路切替ソレノイド30、リールモータ32L、32C、32Rが接続されているとともに、電源基板101を介して前述したホッパーモータ34bが接続されており、これら電気部品は、遊技制御基板40に搭載された後述のメイン制御部41の制御に基づいて駆動されるようになっている。
遊技制御基板40には、メイン制御部41、乱数発生回路42、サンプリング回路43、スイッチ検出回路44、モータ駆動回路45、ソレノイド駆動回路46、LED駆動回路47、電断検出回路48、リセット回路49が搭載されている。
メイン制御部41は、1チップマイクロコンピュータにて構成され、メインCPU41a、ROM41b、RAM41c、I/Oポート41dを備えている。メイン制御部41は、ROM41bに記憶された制御プログラムを実行して、遊技の進行に関する処理を行うとともに、遊技制御基板40に搭載された制御回路の各部を直接的又は間接的に制御する。
乱数発生回路42は、所定数のパルスを発生するたびにカウントアップして値を更新するカウンタによって構成され、サンプリング回路43は、乱数発生回路42がカウントしている数値を取得する。乱数発生回路42は、乱数の種類毎にカウントする数値の範囲が定められており、本実施形態では、その範囲として0〜65535が定められている。メインCPU41aは、その処理に応じてサンプリング回路43に指示を送ることで、乱数発生回路42が示している数値を乱数値として取得する(以下、この機能をハードウェア乱数機能という)。内部抽選用の乱数は、ハードウェア乱数機能により抽出した乱数をそのまま使用するのではなく、ソフトウェアにより加工して使用する。また、メインCPU41aは、前述のタイマ割込処理(メイン)により、特定のレジスタの値を更新し、こうして更新された数値を乱数として取得する機能も有する(以下、この機能をソフトウェア乱数機能という)。
スイッチ検出回路44は、遊技制御基板40に直接又は電源基板101を介して接続されたスイッチ類から入力された検出信号を取り込んでメイン制御部41に伝送する。モータ駆動回路45は、メイン制御部41から出力されたモータ駆動信号をリールモータ32L、32C、32Rに伝送する。ソレノイド駆動回路46は、メイン制御部41から出力されたソレノイド駆動信号を流路切替ソレノイド30に伝送する。LED駆動回路は、メイン制御部41から出力されたLED駆動信号を遊技制御基板40に接続された各種表示器やLEDに伝送する。電断検出回路48は、スロットマシン1に供給される電源電圧を監視し、電圧低下を検出したときに、その旨を示す電圧低下信号をメイン制御部41に対して出力する。リセット回路49は、電源投入時又は電源遮断時等の電源が不安定な状態においてメイン制御部41にシステムリセット信号を与える。
メイン制御部41のCPU41aは、ROM41bから読み出したプログラムを実行することにより、スロットマシン1におけるゲームの進行を制御するための処理等を実行する。
このように、メイン制御部41では、CPU41aがROM41bに格納されているプログラムに従って制御を実行するので、以下、メイン制御部41(又はCPU41a)が実行する(又は処理を行う)ということは、具体的には、CPU41aがプログラムに従って制御を実行することである。このことは、遊技制御基板40以外の他の基板に搭載されているマイクロコンピュータについても同様である。
メイン制御部41が備えるRAM41cは、ゲーム制御用のワークエリアを提供する。ここで、RAM41cの少なくとも一部は、バックアップ電源によってバックアップされているバックアップRAMであればよい。すなわち、スロットマシンへの電力供給が停止しても、所定期間はRAM41cの少なくとも一部の内容が保存される。なお、本実施形態では、RAM41cの全ての領域がバックアップRAMとされており、スロットマシンへの電力供給が停止しても、所定期間はRAM41cの全ての内容が保存される。
メイン制御部41が備えるROM41bには、ゲームの進行を制御するために用いられる各種の選択用データ、テーブルデータ等が格納される。例えば、ROM41bには、CPU41aが各種の判定や決定、設定を行うために用意された複数の判定テーブルや決定テーブル、設定テーブル等を構成するデータが記憶されている。また、ROM41bには、CPU41aが遊技制御基板40から各種の制御コマンドとなる制御信号を送信するために用いられる複数のコマンドテーブルを構成するテーブルデータ等が記憶されている。
メイン制御部41は、サブ制御部91に各種のコマンドを送信する。メイン制御部41からサブ制御部91へ送信されるコマンドは一方向のみで送られ、サブ制御部91からメイン制御部41へ向けてコマンドが送られることはない。また、メイン制御部41は、遊技制御基板40に接続された各種スイッチ類の検出状態が入力ポートから入力される。そしてメイン制御部41は、これら入力ポートから入力される各種スイッチ類の検出状態に応じて段階的に移行する基本処理を実行する。また、メイン制御部41は、割込の発生により基本処理に割り込んで割込処理を実行できるようになっている。本実施形態では、一定時間間隔(本実施形態では、約0.56ms)毎に後述するタイマ割込処理(メイン)を実行する。なお、タイマ割込処理(メイン)の実行間隔は、基本処理において制御状態に応じて繰り返す処理が一巡する時間とタイマ割込処理(メイン)の実行時間とを合わせた時間よりも長い時間に設定されており、今回と次回のタイマ割込処理(メイン)との間で必ず制御状態に応じて繰り返す処理が最低でも一巡することとなる。また、メイン制御部41は、割込処理の実行中に他の割込を禁止するように設定されているとともに、複数の割込が同時に発生した場合、予め定められた順位によって優先して実行する割込が設定されている。なお、割込処理の実行中に他の割込要因が発生し、割込処理が終了してもその割込要因が継続している状態であれば、その時点で新たな割込が発生することとなる。
演出制御基板90には、演出用スイッチ56が接続されており、この演出用スイッチ56の検出信号が入力されるようになっている。また、演出制御基板90には、スロットマシン1の前面扉1bに配置された液晶表示器51(図1参照)、演出効果LED52、スピーカ53、54、前述したリールLED55等の演出装置が接続されており、これら演出装置は、演出制御基板90に搭載された後述のサブ制御部91による制御に基づいて駆動されるようになっている。なお、本実施形態では、演出制御基板90に搭載されたサブ制御部91により、液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55等の演出装置の出力制御が行われる構成であるが、サブ制御部91とは別に演出装置の出力制御を直接的に行う出力制御部を演出制御基板90又は他の基板に搭載し、サブ制御部91がメイン制御部41からのコマンドに基づいて演出装置の出力パターンを決定し、サブ制御部91が決定した出力パターンに基づいて出力制御部が演出装置の出力制御を行う構成としても良く、このような構成では、サブ制御部91及び出力制御部の双方によって演出装置の出力制御が行われることとなる。また、本実施形態では、演出装置として液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55を例示しているが、演出装置は、これらに限られず、例えば、機械的に駆動する表示装置や機械的に駆動する役モノ等を演出装置として適用してもよい。
演出制御基板90には、メイン制御部41と同様にサブCPU91a、ROM91b、RAM91c、I/Oポート91dを備えたマイクロコンピュータにて構成されたサブ制御部91、表示制御回路92、LED駆動回路93、音声出力回路94、リセット回路95、スイッチ検出回路96、時計装置97、電断検出回路98、その他の回路等が搭載されている。サブCPU91aは、遊技制御基板40から送信されるコマンドを受けて演出を行うための各種の制御を行うとともに、演出制御基板90に搭載された制御回路の各部を直接的又は間接的に制御する。
リセット回路95は、遊技制御基板40においてメイン制御部41にシステムリセット信号を与えるリセット回路49よりもリセット信号を解除する電圧が低く定められており、電源投入時においてサブ制御部91は、メイン制御部41よりも早い段階で起動するようになっている。一方で、電断検出回路98は、遊技制御基板40においてメイン制御部41に電圧低下信号を出力する電断検出回路48よりも電圧低下信号を出力する電圧が低く定められており、電断時においてサブ制御部91は、メイン制御部41よりも遅い段階で停電を検知し、後述する電断処理(サブ)を行うこととなる。
サブ制御部91は、メイン制御部41と同様に、割込機能を備えており、メイン制御部41からのコマンド受信時に割込を発生させて、メイン制御部41から送信されたコマンドを取得し、バッファに格納するコマンド受信割込処理を実行する。また、サブ制御部91は、システムクロックの入力数が一定数に到達する毎、すなわち一定間隔毎に割込を発生させて後述するタイマ割込処理(サブ)を実行する。一方、サブ制御部91は、メイン制御部41とは異なり、コマンドの受信に基づいて割込が発生した場合には、タイマ割込処理(サブ)の実行中であっても、当該処理に割り込んでコマンド受信割込処理を実行し、タイマ割込処理(サブ)の契機となる割込が同時に発生してもコマンド受信割込処理を最優先で実行するようになっている。
また、サブ制御部91にも、停電時においてバックアップ電源が供給されており、バックアップ電源が供給されている間は、RAM91cに記憶されているデータが保持されるようになっている。すなわち、スロットマシンへの電力供給が停止しても、所定期間はRAM91cの少なくとも一部の内容が保存される。なお、本実施形態では、RAM91cの全ての領域がバックアップRAMとされており、スロットマシンへの電力供給が停止しても、所定期間はRAM91cの全ての内容が保存される。なお、本実施形態では、RAM91cの全ての領域がバックアップRAMとされており、スロットマシンへの電力供給が停止しても、所定期間はRAM91cの全ての内容が保存される。
[設定値について]
本実施形態のスロットマシン1は、設定値に応じてメダルの払出率が変わるものである。詳しくは、後述する内部抽選、AT(アシストタイム)抽選等において設定値に応じた当選確率を用いることにより、メダルの払出率が変わるようになっている。設定値は1〜6の6段階からなり、6が最も払出率が高く、5、4、3、2、1の順に値が小さくなるほど払出率が低くなる。すなわち、設定値として6が設定されている場合には、遊技者にとって最も有利度が高く、5、4、3、2、1の順に値が小さくなるほど有利度が段階的に低くなる。なお、設定値は1、3、6や、1、4、H(High)等の3段階や、1〜7の7段階で設定してもよく、6段階に限定する必要はない。
設定値を変更するためには、まず、前面扉1bが開放された状態で、設定キースイッチ37をON状態としてからスロットマシン1の電源をONする必要がある。設定キースイッチ37をON状態として電源をONすると、設定値表示器24にメイン制御部41のRAMから読み出された設定値が表示値として表示され、リセット/設定スイッチ38の操作による設定値の変更操作が可能な設定変更状態(設定変更モード)に移行する。設定変更状態において、リセット/設定スイッチ38が操作されると、設定値表示器24に表示された表示値が1ずつ更新されていく(設定6からさらに操作されたときは、設定1に戻る)。そして、スタートスイッチ7が操作されると表示値を設定値として確定する。そして、設定キースイッチ37がOFFされると、確定した表示値(設定値)がRAMに格納され、遊技の進行が可能な状態に移行する。なお、前面扉1bが開放されていなければ設定値を変更できないようにして、前面扉1bが開放されていない状態での不正な設定変更を防止してもよい。すなわち、前面扉1bの開放と設定キースイッチ37をオン状態にする操作と電源スイッチ39の操作とを設定変更状態の開始条件としてもよい。なお、この場合、設定キースイッチ37がオフ状態になるまで前面扉1bの開閉に関わらず設定値変更状態が維持されるようにしてもよい。すなわち、前面扉1bの開放を設定変更状態の開始条件とした場合であっても前面扉1bの開閉を設定変更状態の終了条件にしなくてもよい。
また、設定値を確認するためには、ゲーム終了後、賭数が設定されていない状態で前面扉1bを開放して設定キースイッチ37をON状態とすればよい。このような状況で設定キースイッチ37をON状態とすると、設定値表示器24にRAMから読み出された設定値が表示されることで設定値を確認可能な設定確認状態(設定確認モード)に移行する。設定確認状態においては、ゲームの進行が不能であり、設定キースイッチ37をOFF状態とすることで、設定確認状態が終了し、ゲームの進行が可能な状態に復帰することとなる。なお、設定値確認状態も設定値変更状態と同様に、前面扉1bが開放されていなければ設定値を変更できないようにして前面扉1bが開放されていない状態での不正な設定確認を防止してもよい。すなわち、前面扉1bの開放と設定キースイッチ37をオン状態にする操作とを設定確認状態の開始条件としてもよい。また、前面扉1bの開放を設定値確認状態の開始条件とした場合であっても前面扉1bの開閉を設定値確認状態の終了条件にしなくてもよい。
次に、メイン制御部41のRAM41cの初期化について説明する。メイン制御部41のRAM41cの格納領域は、重要ワーク、非保存ワーク、一般ワーク、特別ワーク、未使用領域、スタック領域に区分されている。重要ワークは、各種表示器やLEDの表示用データ、I/Oの入出力データ、遊技時間の計時カウンタ等、初期化すると不都合があるデータに加え、後述するRTフラグ及びRT残りゲーム数が格納されるワークである。非保存ワークは、各種スイッチ類の状態を保持するワークであり、起動時にRAM41cのデータが破壊されているか否かに関わらず必ず値が設定されることとなる。一般ワークは、停止制御テーブル、停止図柄、メダルの払出枚数、BB中のメダル払出総数、遊技状態フラグ等、BB終了時に初期化可能なデータが格納されるワークである。特別ワークは、各種ソフトウェア乱数等、設定開始前にのみ初期化されるデータが格納されるワークである。未使用領域は、RAM41cの格納領域のうち使用していない領域であり、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなる。スタック領域は、メイン制御部41のレジスタから退避したデータが格納される領域であり、このうちの未使用スタック領域は、未使用領域と同様に、後述する複数の初期化条件のいずれか1つでも成立すれば初期化されることとなるが、使用中スタック領域は、プログラムの続行のため、初期化されることはない。
本実施形態においてメイン制御部41は、設定キースイッチ37がonの状態での起動時、RAM異常エラー発生時、BB終了時、設定キースイッチ37がoffの状態での起動時でRAM41cのデータが破壊されていないとき、1ゲーム終了時の5つからなる初期化条件が成立した際に、各初期化条件に応じて初期化される領域の異なる4種類の初期化を行う。初期化1は、起動時において設定キースイッチ37がonの状態であり、設定変更状態へ移行する場合において、その前に行う初期化、又はRAM異常エラー発生時に行う初期化であり、初期化1では、RAM41cの格納領域のうち、重要ワーク及び使用中スタック領域を除く全ての領域(未使用領域及び未使用スタック領域を含む)、すなわち非保存ワークから未使用スタック領域までの領域が初期化される。初期化2は、BB終了時に行う初期化であり、初期化2では、RAM41cの格納領域のうち、一般ワーク、未使用領域及び未使用スタック領域、すなわち一般ワークから未使用スタック領域までの領域が初期化される。初期化3は、起動時において設定キースイッチ37がoffの状態であり、かつRAM41cのデータが破壊されていない場合において行う初期化であり、初期化3では、非保存ワーク、未使用領域及び未使用スタック領域が初期化される。初期化4は、1ゲーム終了時に行う初期化であり、初期化4では、RAM41cの格納領域のうち、未使用領域及び未使用スタック領域が初期化される。なお、本実施形態では、初期化1を設定変更状態の移行前に行っているが、設定変更状態の終了時に行ったり、設定変更状態移行前、設定変更状態終了時の双方で行ったりするようにしてもよい。
このように本実施形態では、電源投入時等にRAM異常エラーが発生した場合には、初期化1が実行され、それ以前の制御状態が初期化されることとなるが、この際、重要ワークに割り当てられてられたRTフラグやRT残りゲーム数は初期化されることなく保持されるようになっている。一方で、一般ワークに割り当てられた遊技状態フラグについては、初期化1が実行されることに伴って初期化されることとなる。
次に、本実施形態におけるメイン制御部41が実行する各種制御内容を、図5〜図13に基づいて以下に説明する。
メイン制御部41は、リセット回路49からシステムリセット信号が入力されると、図5に示す起動処理(メイン)を行う。まず、内蔵デバイスや周辺IC、割込モード、スタックポインタ等を初期化した後(ステップSa2)、Iレジスタ及びIYレジスタの値を初期化する(ステップSa3)。Iレジスタ及びIYレジスタの初期化により、Iレジスタには、割込発生時に参照する割込テーブルのアドレスが設定され、IYレジスタには、RAM41cの格納領域を参照する際の基準アドレスが設定される。これらの値は、固定値であり、起動時には常に初期化されることとなる。
次いで、RAM41cへのアクセスを許可し(ステップSa4)、RAM41cの全ての格納領域(未使用領域及び未使用スタック領域を含む)のRAMパリティを計算し(ステップSa5)、計算したRAMパリティが0か否かを判定する(ステップSa6)。正常に電断割込処理(メイン)が行われていれば、RAMパリティが0になるはずであり、RAMパリティが0でなければ(ステップSa6;N)、RAM41cに格納されているデータが正常ではなく、この場合には、RAM41cの格納領域のうち、使用中スタック領域、重要ワークを除く全ての格納領域を初期化する初期化1を実行した後(ステップSa19)、設定キースイッチ37がonか否かを判定し(ステップSa20)、設定キースイッチ37がonであれば(ステップSa20;Y)、設定変更中であることを示す設定変更中コマンドを生成し(ステップSa16)、生成した設定変更中コマンドをコマンドバッファに格納し(ステップSa17)、メイン制御部41が一定間隔(0.56msの間隔)で実行する図7に示すタイマ割込処理(メイン)の割込を許可して(ステップSa18)、当選役の当選確率の変更等を行う設定変更処理、すなわち設定変更状態に移行する。そして、設定変更処理が終了すると、図6に示すゲーム処理に移行する。
一方、設定キースイッチ37がoffであれば(ステップSa20;N)、RAM異常を示すエラーコードをレジスタに設定し(ステップSa21)、RAM異常を示すエラーコマンドを生成し(ステップSa22)、生成したエラーコマンドをコマンドバッファに格納し(ステップSa23)、タイマ割込処理(メイン)の割込を許可して(ステップSa24)、エラー処理、すなわちRAM異常エラー状態に移行する。そして、例えば、遊技店員によってリセット/設定スイッチ38が操作される等して、RAM異常エラー状態が解除されるとゲーム処理に移行する。
一方、RAMパリティが0であれば(ステップSa6;Y)、更に破壊診断用データが正常か否かを判定する(ステップSa7)。正常に電断処理(メイン)が行われていれば、破壊診断用データが設定されているはずであり、破壊診断用データが正常でない場合(破壊診断用データが電断時に格納される5A(H)以外の場合)にも(ステップSa7;N)、RAM41cのデータが正常ではないので、初期化1を実行し(ステップSa19)、その後、前述したステップSa20、Sa16〜Sa18、Sa21〜Sa24の処理を行う。
一方、破壊診断用データが正常であると判定した場合には(ステップSa7;Y)、RAM41cのデータは正常であるので、破壊診断用データをクリアし(ステップSa8)、RAM41cの非保存ワーク、未使用領域及び未使用スタック領域を初期化する初期化3を行った後(ステップSa9)、設定キースイッチ37がonか否かを判定し(ステップSa10)、設定キースイッチ37がonであれば(ステップSa10;Y)、初期化1を実行し(ステップSa15)、その後、前述したSa16〜Sa18の処理を行い、設定変更処理を実行して設定変更状態に移行し、図6に示すゲーム処理に移行する。
一方、設定キースイッチ37がoffであれば(ステップSa10;N)、各レジスタを電断前の状態、すなわちスタックに保存されている状態に復帰し(ステップSa11)、復帰コマンドを生成し(ステップSa12)、コマンドバッファに格納し(ステップSa13)、タイマ割込処理(メイン)の割込を許可し(ステップSa14)、電断前の最後に実行していた処理に戻る。電断前に図6に示すゲーム処理中のいずれかの処理が行われていた場合には、復帰されたプログラムカウンタ(PC)の値に基づいて、ゲーム処理のステップSd1〜Sd6の処理のうち、電断前に行われていた処理に戻る(ステップSa11参照)。また、例えば、電断前に図7に示すタイマ割込処理中のいずれかの処理が行われていた場合には、復帰されたプログラムカウンタ(PC)の値に基づいて、タイマ割込処理のステップSk1〜Sk26の処理のうち、電断前に行われていた処理に戻る(ステップSa11参照)。
本実施形態では、メイン制御部41がサブ制御部91に対して、内部当選コマンド、リール回転開始コマンド、リール停止コマンド、遊技状態コマンド、復帰コマンド、設定変更中コマンド、エラーコマンドを含む複数種類のコマンドを送信する。これらコマンドは、コマンドの種類を示す1バイトの種類データとコマンドの内容を示す1バイトの拡張データとからなり、サブ制御部91は、種類データからコマンドの種類を判別できるようになっている。
内部当選コマンドは、内部当選フラグの当選状況、並びに成立した内部当選フラグの種類、ボーナスの持ち越しの有無を特定可能なコマンドであり、スタートスイッチ7が操作されてゲームが開始したときに送信される。また、内部当選コマンドは、スタートスイッチ7が操作されたときに送信されるので、内部当選コマンドを受信することでスタートスイッチ7が操作されたことを特定可能である。リール回転開始コマンドは、リールの回転の開始を通知するコマンドであり、リール2L、2C、2Rの回転が開始されたときに送信される。リール停止コマンドは、停止するリールが左リール、中リール、右リールのいずれかであるか、該当するリールの停止操作位置の領域番号、該当するリールの停止位置の領域番号、を特定可能なコマンドであり、各リールの停止操作に伴う停止制御が行われる毎に送信される。また、リール停止コマンドは、ストップスイッチ8L、8C、8Rが操作されたときに送信されるので、リール停止コマンドを受信することでストップスイッチ8L、8C、8Rが操作されたことを特定可能である。
遊技状態コマンドは、次ゲームの遊技状態及びRTの種類、RTの残りゲーム数を特定可能なコマンドであり、ゲームの終了時に送信される。エラーコマンドは、エラー状態の発生又は解除、エラー状態の種類を示すコマンドであり、エラーが判定され、エラー状態に制御された時点でエラー状態の発生及びその種類を示すエラーコマンドが送信され、リセット操作がなされてエラー状態が解除された時点で、エラー状態の解除を示すエラーコマンドが送信される。復帰コマンドは、メイン制御部41が電断前の制御状態に復帰した旨を示すコマンドであり、メイン制御部41の起動時において電断前の制御状態に復帰した際に送信される。設定変更中コマンドは、設定変更中であることを示すコマンドであり、設定変更状態に移行する時点で送信される。また、設定変更状態への移行に伴ってメイン制御部41の制御状態が初期化されるため、設定変更中であることを示す設定変更中コマンドによりメイン制御部41の制御状態が初期化されたことを特定可能である。
上述した複数種類のコマンドは、メイン制御部41のRAM41cの特別ワークに設けられたコマンド送信用バッファに一時的に格納され、後述する図7に示すタイマ割込処理(メイン)で実行されるコマンド送信処理(ステップSk16参照)においてサブ制御部91に送信される。詳しくは後述するように、復帰コマンド及び設定変更中コマンドを受信したサブ制御部91は、演出制御基板90の立ち上がりが正常であるか否かの判定をする。
図6に示すように、メイン制御部41は、ゲーム処理において、BET処理(ステップSd1)、内部抽選処理(ステップSd2)、リール回転処理(ステップSd3)、入賞判定処理(ステップSd4)、払出処理(ステップSd5)、ゲーム終了時処理(ステップSd6)を順に実行し、ゲーム終了時処理が終了すると、再びBET処理に戻る。
ステップSd2のBET処理では、図7に示すように、まず、メイン制御部41は、RAM41cにおいて賭数の値が格納されるBETカウンタの値をクリアし(ステップSe1)、遊技状態に応じた規定数(遊技状態に応じて定められた賭数の規定数であり、レギュラーボーナスにあるときには、1が設定され、通常遊技状態にあるときには、3が設定される。)をRAM41cに設定し(ステップSe2)、RAM41cにリプレイゲームである旨を示すリプレイゲームフラグが設定されているか否かに基づいて当該ゲームがリプレイゲームであるか否かを判定する(ステップSe3)。
メイン制御部41は、リプレイゲームであると判定された場合(ステップSe3;Y)、BETカウンタの値を1加算し(ステップSe4)、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定する(ステップSe5)。メイン制御部41は、規定数でなければ(ステップSe5;N)、ステップSe4に戻り、規定数であれば(ステップSe5;Y)、メダルの投入不可を示す投入不可フラグをRAM41cに設定し(ステップSe6)、ステップSe8に進む。メイン制御部41は、リプレイゲームでないと判定された場合(ステップSe3;N)、投入待ち前の設定を行い(ステップSe7)、ステップSe8に進む。投入待ち前の設定では、RAM41cに設定されている投入不可フラグをクリアし、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、精算スイッチ10の検出を有効化する。
投入不可フラグ設定後、または、投入待ち前の設定後、メイン制御部41は、RAM41cに投入不可フラグが設定されているか否かに基づいてメダルの投入が可能な状態か否かを判定する(ステップSe8)。メイン制御部41は、メダルの投入が可能な状態であると判定された場合(ステップSe8;Y)、流路切替ソレノイド30をonの状態とし、メダルの流路をホッパータンク側の経路としてメダルの投入が可能な状態とし(ステップSe9)、ステップSe11に進み、メダルの投入が可能な状態でないと判定された場合(ステップSe8;N)、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(ステップSe10)、ステップSe11に進む。
流路切替ソレノイド30の状態設定後、メイン制御部41は、投入メダルセンサ31により投入メダルの通過が検出されたか否かを判定する(ステップSe11)。メイン制御部41は、投入メダルの通過が検出されていれば(ステップSe11;Y)、RAM41cに投入不可フラグが設定されているか否かに基づいてメダルの投入が可能な状態か否かを判定する(ステップSe12)。メイン制御部41は、メダルの投入が可能な状態であれば(Se12;Y)、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定する(ステップSe13)。メイン制御部41は、BETカウンタの値が規定数でなければ(ステップSe13;N)、BETカウンタの値を1加算し(ステップSe14)、Se8のステップに戻り、BETカウンタの値が規定数であれば(ステップSe13;Y)、RAM41cにおいてクレジットの値が格納されるクレジットカウンタの値を1加算し(ステップSe15)、クレジットカウンタの値が上限値である50であるか否かを判定する(ステップSe16)。メイン制御部41は、クレジットカウンタの値が50でなければ(ステップSe16;N)、ステップSe8に戻り、50であれば(ステップSe16;Y)、投入不可フラグをRAM41cに設定し(ステップSe17)、ステップSe8に戻る。一方、投入メダルの通過が検出されていない場合(ステップSe11;N)、または、メダルの投入が可能な状態でなければ(ステップSe12;N)、メイン制御部41は、スタートスイッチ7の操作が検出されているか否かを判定する(ステップSe18)。メイン制御部41は、スタートスイッチ7の操作が検出されていれば(ステップSe18;Y)、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定する(ステップSe19)。
メイン制御部41は、BETカウンタの値が規定数でなければ(ステップSe19;N)、ステップSe8に戻り、規定数であれば(ステップSe19;Y)、投入不可フラグをRAM41cに設定するとともに、流路切替ソレノイド30をoffの状態とし、メダルの流路をメダル払出口9側の経路として新たなメダルの投入を禁止し(ステップSe20)、ゲーム開始時の設定を行い(ステップSe21)、処理を終了して図6のステップSd1に戻る。ゲーム開始時の設定では、1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、精算スイッチ10の操作の検出を無効化する。これに伴い、メダルの投入、1枚BETスイッチ5及びMAXBETスイッチ6の操作の検出に基づく賭数の設定が禁止されるとともに、精算スイッチ10の操作の検出に基づくクレジットの精算が禁止されることとなる。なお、投入不可フラグは、次回ゲームのBET処理までクリアされることはなく、1枚BETスイッチ5及びMAXBETスイッチ6の操作の検出も次回ゲームのBET処理までクリアされることはないので、次回ゲームのBET処理まで賭数の設定が禁止されることとなる。また、精算スイッチ10の操作の検出は、ビッグボーナス入賞時またはビッグボーナス終了時を除いて次回ゲームのBET処理までクリアされることはないので、次回ゲームのBET処理までクレジットの精算(賭数の設定に用いられたメダルを含む)が禁止されることとなる。なお、ビッグボーナス入賞時やビッグボーナス終了時においては、次回ゲームのBET処理を待たず、ゲームが終了した時点(リール停止時、もしくはメダルの払出終了時)で精算スイッチ10の操作の検出が有効化され、クレジットの精算が可能となる。
一方、スタートスイッチ7の操作が検出されていない場合(ステップSe18;N)、メイン制御部41は、1枚BETスイッチ5の操作が検出されているか否かを判定する(ステップSe22)。メイン制御部41は、1枚BETスイッチ5の操作が検出されていれば(ステップSe22;Y)、図8に示すように、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定する(ステップSe23)。メイン制御部41は、規定数であれば(ステップSe23;Y)、ステップSe8に戻り、規定数でなければ(ステップSe23;N)、クレジットカウンタの値が0であるか否かを判定する(ステップSe24)。メイン制御部41は、0であれば(ステップSe24;Y)、ステップSe8に戻り、0でなければ(ステップSe24;N)、クレジットカウンタの値を1減算し(ステップSe25)、BETカウンタの値を1加算して(ステップSe26)、ステップSe8に戻る。
一方、1枚BETスイッチ5の操作が検出されていない場合(ステップSe22;N)、メイン制御部41は、MAXBETスイッチ6の操作が検出されているか否かを判定する(ステップSe27)。メイン制御部41は、MAXBETスイッチ6の操作が検出されていれば(ステップSe27;Y)、図8に示すように、RAM41cに設定された賭数の規定数を参照し、BETカウンタの値が規定数であるか否を判定する(ステップSe28)。メイン制御部41は、規定数であれば(ステップSe28;Y)、ステップSe8に戻り、規定数でなければ(ステップSe28;N)、クレジットカウンタの値が0であるか否かを判定する(ステップSe29)。メイン制御部41は、0であれば(ステップSe29;Y)、Se8のステップに戻り、0でなければ(ステップSe29;N)、クレジットカウンタの値を1減算し(ステップSe30)、BETカウンタの値を1加算し(ステップSe31)、ステップSe28に戻る。
一方、MAXBETスイッチ6の操作が検出されていなければ(ステップSe27;N)、メイン制御部41は、精算スイッチ10の操作が検出されているか否かを判定する(ステップSe32)。メイン制御部41は、精算スイッチ10の操作が検出されていなければ(ステップSe32;N)、ステップSe8に戻り、検出されていれば(ステップSe32;Y)、RAM41cにリプレイゲームフラグが設定されているか否かに基づいて当該ゲームがリプレイゲームであるか否かを判定する(ステップSe33)。メイン制御部41は、当該ゲームがリプレイゲームであれば(ステップSe33;Y)、ステップSe8に戻り、リプレイゲームでなければ(ステップSe33;N)、BETカウンタの値が0か否かを判定する(ステップSe34)。メイン制御部41は、BETカウンタの値が0であれば(ステップSe34;Y)、ステップSe36に進み、0でなければ(ステップSe34;N)、既に設定済み賭数の精算を行う旨を示す賭数精算フラグをRAM41cに設定し(ステップSe35)、ホッパーモータ34を駆動してクレジットカウンタまたはBETカウンタに格納された値分のメダルを払い出す制御、すなわちクレジットとして記憶されているメダルまたは賭数の設定に用いられたメダルを返却する制御が行われる精算処理を行い(ステップSe36)、RAM41cに設定されている投入不可フラグをクリアして(ステップSe37)、ステップSe8に戻る。
図6に戻り、ステップSd2における内部抽選処理では、スタートスイッチ7の検出によるゲーム開始と同時にラッチされた内部抽選用の乱数値に基づいて上記した各役への入賞を許容するか(すなわち、表示結果の導出を許容するか)否かを決定する処理を行う。この内部抽選処理では、それぞれの抽選結果に基づいて、RAM41cに当選フラグが設定される。なお、内部抽選によりボーナス(BB又はRB)に当選した場合はボーナス持ち越しフラグセットされる。そして、上記したようにボーナス持ち越しフラグの有無を判定することによってボーナスの持ち越しの有無を判定し、持ち越しの有無に応じた当選役(ボーナス持ち越し中においてボーナスは内部抽選の対象から除外される)について判定処理が行われる。
ステップSd3におけるリール回転処理では、図9に示すように、まず、メイン制御部41は、前のゲームのリール回転開始時点からウェイトタイム(4.1秒)が経過したか否かを判定する(ステップSi1)。メイン制御部41は、ウェイトタイムが経過していなければ(ステップSi1;N)、ステップSi1の処理を繰り返してウェイトタイムが経過するまで待機し、ウェイトタイムが経過していれば(ステップSi1;Y)、ウェイトタイムを新たに設定し(ステップSi2)、リールモータの回転開始時の設定を行い、リールの回転を開始させる(ステップSi3)。リール回転開始後、メイン制御部41は、テーブルインデックスを参照して、テーブル作成用データを特定し、特定したテーブル作成用データに基づいて、当該ゲームの遊技状態、役の当選状況、他のリールの停止状況に対応する停止制御テーブルを、回転中のリール別に作成し(ステップSi4)、停止準備完了時の設定を行う(ステップSi5)。これにより、停止操作の有効化させることが可能な状態となり、その後、後述するタイマ割込処理(メイン)の原点通過時処理において、リールの定速回転が検出された時点で、停止操作が有効となる。
停止準備完了時設定後、メイン制御部41は、ストップスイッチ8L、8C、8Rのいずれかのストップスイッチの操作が検出されたか否かを判定する(ステップSi6)、メイン制御部41は、いずれのストップスイッチの操作も検出されていなければ(ステップSi6;N)、リール回転エラー(一定期間以上、リールセンサ33によりリール基準位置が検出されない場合に判定されるエラー)が発生したか否かを判定する(ステップSi7)。メイン制御部41は、リール回転エラーが発生していなければ(ステップSi7;N)、更に、投入エラー(メダルの投入が許可されている期間以外で、メダルの投入が検出した場合に判定されるエラー)が発生したか否かを判定する(ステップSi8)。メイン制御部41は、投入エラーが発生していなければ(ステップSi8;N)、払出エラー(メダルの払出が許可されている期間以外で、メダルの払出が検出した場合に判定されるエラー)が発生したか否かを判定する(ステップSi9)。メイン制御部41は、払出エラーが発生していなければ(ステップSi9;N)、ステップSi6に戻る。
一方、投入エラーまたは払出エラーが判定された場合(ステップSi8;Y、ステップSi9;Y)、メイン制御部41は、リール回転中の投入・払出エラーを示すエラーコードをレジスタに設定し(ステップSi10)、エラー処理に移行し(ステップSi11)、エラーが解除された場合には、再びステップSi6に戻る。一方、リール回転エラーの発生が判定された場合(ステップSi7;Y)、メイン制御部41は、リール回転エラーを示すエラーコードをレジスタに設定し(ステップSi12)、エラー処理に移行し(Si13)、リールの回転も一時的に停止して、エラーが解除された場合に、再びステップSi3に戻り、リールの回転が再開する。
一方、いずれかのストップスイッチの操作が検出された場合(ステップSi6)、メイン制御部41は、ストップスイッチに対応するリールモータにおける、その時点のリール基準位置からのステップ数(停止操作位置となるステップ数)を取得し、停止リールに対応するワークに設定した後(ステップSi14)、メイン制御部41は、停止操作に対応するリールの回転が停止したか否かを判定する(ステップSi15)。メイン制御部41は、停止操作に対応するリールが停止していない場合(ステップSi15;N)、ステップSi15の処理を繰り返し、停止操作に対応するリールの回転が停止した場合(ステップSi15;Y)、全てのリールが停止したか否かを判定する(ステップSi16)。メイン制御部41は、全てのリールが停止していなければ(ステップSi16;N)、ステップSi4に戻り、全てのリールが停止していれば(ステップSi16;Y)、処理を終了して図6のステップSd3に戻る。
以上のようにリール回転処理では、リール2L、2C、2Rの回転が開始した後、ストップスイッチ8L、8C、8Rの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっている。なお、リール回転エラーの発生により、一時的にリールの回転が停止した場合でも、その後リール回転が再開した後、ストップスイッチ8L、8C、8Rの操作が検出されるまで、停止操作が未だ検出されていないリールの回転を継続し、ストップスイッチ8L、8C、8Rの操作が検出されたことを条件に、対応するリールに表示結果を停止させる制御を行うようになっている。
図6に戻り、ステップSd4における入賞判定処理では、全てのリール2L、2C、2Rの回転が停止したと判定した時点で、各リール2L、2C、2Rに導出された表示結果に応じて入賞が発生したか否かを判定する処理を実行する。なお、ボーナスが入賞した場合には本処理においてボーナス持ち越しフラグがクリアされる。
ステップSd5における払出処理では、入賞の発生が判定された場合に、その入賞に応じた払出枚数に基づきクレジットの加算並びにメダルの払出等の処理を行う。
ステップSd6におけるゲーム終了時処理では、次のゲームに備えて遊技状態を設定する処理を実行する。また、ゲーム処理では、ゲームの進行制御に応じてコマンドを生成してコマンドバッファに設定し、サブ制御部91に送信されるようになっている。
また、メイン制御部41は、一定間隔(0.56msの間隔)で起動処理やゲーム処理に割り込んでタイマ割込処理(メイン)を実行する。なお、タイマ割込処理(メイン)の実行期間中は自動的に他の割込が禁止される。タイマ割込処理(メイン)においては、図10に示すように、まず、メイン制御部41は、使用中のレジスタをスタック領域に退避し(ステップSk1)、停電判定処理を行う(ステップSk2)。停電判定処理では、メイン制御部41は、電断検出回路48から電圧低下信号が入力されているか否かを判定し、電圧低下信号が入力されていれば、前回の停電判定処理でも電圧低下信号が入力されていたか否かを判定し、前回の停電判定処理でも電圧低下信号が入力されていた場合には停電と判定し、その旨を示す電断フラグを設定する。停電判定処理の後、メイン制御部41は、電断フラグが設定されているか否かを判定し(ステップSk3)、電断フラグが設定されていなければ(ステップSk3;N)、入力ポートから各種スイッチ類の検出データを入力するポート入力処理を行い(ステップSk4)、電断フラグが設定されていた場合には(ステップSk3;Y)、後述する図12に示す電断処理(メイン)に移行する。
ポート入力処理実行後、メイン制御部41は、4種類のタイマ割込1〜4から当該タイマ割込処理(メイン)において実行すべきタイマ割込を識別するための分岐用カウンタを1進める(ステップSk5)。本実施形態では、タイマ割込1とは、モータを制御してリールの開始制御を行うタイマ割込中の分岐処理であり、具体的には、後述するリール始動処理等、ステップSk9〜Sk11の処理が行われる。また、タイマ割込2とは、LED表示制御や、時間カウンタの更新、ドア開閉状態の監視、制御信号等の出力制御、コマンド及び外部出力信号の更新を行うタイマ割込中の分岐処理であり、具体的には、後述するLEDダイナミック表示処理等、ステップSk12〜Sk17の処理が行われる。また、タイマ割込3とは、リールの原点通過を検出したり、スイッチ入力を監視したり、乱数値の読み出しを行うタイマ割込中の分岐処理であり、具体的には、後述する原点通過時処理等、ステップSk20〜Sk22の処理が行われる。また、タイマ割込4とは、停止スイッチの入力を検出してリールの停止制御を行うタイマ割込中の分岐処理であり、具体的には、後述する停止スイッチ処理等、ステップSk23〜Sk25の処理が行われる。ステップSk5では、分岐用カウンタ値が0〜2の場合に1が加算され、カウンタ値が3の場合に0に更新される。すなわち分岐用カウンタ値は、タイマ割込処理(メイン)が実行される毎に、0→1→2→3→0・・・の順番でループする。
次いで、メイン制御部41は、分岐用カウンタ値を参照して2又は3か、すなわちタイマ割込3又はタイマ割込4かを判定し(ステップSk6)、タイマ割込3又はタイマ割込4ではない場合(ステップSk6;N)、すなわちタイマ割込1又はタイマ割込2の場合には、リールモータ32L、32C、32Rの始動時又は定速回転中か否かを確認し、リールモータ32L、32C、32Rの始動時又は定速回転中であれば、後述するステップSk10のモータステップ処理において変更した位相信号データや後述するステップSk24の最終停止処理において変更した位相信号データを出力するモータ位相信号出力処理を実行する(ステップSk7)。
次いで、メイン制御部41は、分岐用カウンタ値を参照して1か否か、すなわちタイマ割込2か否かを判定し(ステップSk8)、タイマ割込2ではない場合(ステップSk8;N)、すなわちタイマ割込1の場合には、リールモータ32L、32C、32Rの始動時のステップ時間間隔の制御を行うリール始動処理(ステップSk9)、リールモータ32L、32C、32Rの位相信号データの変更を行うモータステップ処理(ステップSk10)、リールモータ32L、32C、32Rの停止後、一定時間経過後に位相信号を1相励磁に変更するモータ位相信号スタンバイ処理(ステップSk11)を順次実行し、スタック領域に退避したレジスタを復帰し(ステップSk26)、割込前の処理に戻る。
一方、メイン制御部41は、タイマ割込2の場合には(ステップSk8;Y)、各種表示器をダイナミック点灯させるLEDダイナミック表示処理(ステップSk12)、各種LED等の点灯信号等のデータを出力ポートへ出力する制御信号等出力処理(ステップSk13)、各種時間カウンタを更新する時間カウンタ更新処理(ステップSk14)、ドア開放検出スイッチ25の検出状態の監視、ドアコマンドの送信要求等を行うドア監視処理(ステップSk15)、コマンドバッファに設定された設定変更中コマンドや復帰コマンド、エラーコマンド等の各種コマンドをサブ制御部91に送信するコマンド送信処理(ステップSk16)、外部出力信号を更新する外部出力信号更新処理(ステップSk17)を順次実行した後、スタック領域に退避したレジスタを復帰し(ステップSk26)、割込前の処理に戻る。
一方、メイン制御部41は、タイマ割込3又はタイマ割込4であれば(ステップSk6;Y)、更に、分岐用カウンタ値を参照して3か否か、すなわちタイマ割込4か否かを判定し(ステップSk18)、タイマ割込4でなければ(ステップSk18;N)、すなわちタイマ割込3であれば、回転中のリール2L、2C、2Rの原点通過(リール基準位置の通過)をチェックし、リール回転エラーの発生を検知するとともに、停止準備が完了しているか(停止準備完了コードが設定されているか)を確認し、停止準備が完了しており、かつ定速回転中であれば、回転中のリールに対応するストップスイッチの操作を有効化する原点通過時処理(ステップSk20)、スイッチ類の検出状態に変化があったか否かの判定、操作検出コマンドの送信要求等を行うスイッチ入力判定処理(ステップSk21)、乱数値レジスタR1Dから数値データを読み出して乱数値格納ワークに格納する乱数値読出処理(ステップSk22)を順次実行した後、スタック領域に退避したレジスタを復帰し(ステップSk26)、割込前の処理に戻る。
一方、メイン制御部41は、タイマ割込4であれば(ステップSk18;Y)、ストップスイッチ8L、8C、8Rの検出に伴って停止リールのワークに停止操作位置が格納されたときに、停止リールのワークに格納された停止操作位置から停止位置を決定し、何ステップ後に停止すればよいかを算出する停止スイッチ処理(ステップSk23)、停止スイッチ処理で算出された停止までのステップ数をカウントして、停止する時期になったら2相励磁によるブレーキを開始する停止処理(ステップSk24)、停止処理においてブレーキを開始してから一定時間後に3相励磁とする最終停止処理(ステップSk25)を順次実行した後、スタック領域に退避したレジスタを復帰し(ステップSk26)、割込前の処理に戻る。
このように本実施形態では、一定間隔毎に基本処理に割り込んでタイマ割込処理(メイン)を実行するとともに、タイマ割込処理(メイン)を実行する毎に処理カウンタ(分岐用カウンタ)を更新し、処理カウンタ値に応じて定められた処理を行うようになっており、一度のタイマ割込処理(メイン)に要する負荷を分散できるうえに、処理カウンタ値に関わらず、電圧低下信号に基づいて電断の条件が成立しているか否かを判定する停電判定処理を行い、電断の条件が成立していれば、電断処理を行うようになっており、電断が検知された場合には速やかに電断処理を行うことが可能となる。
また、タイマ割込処理(メイン)内で、電断の条件が成立しているか否かの判定を行い、電断の条件が成立していれば、そのまま電断処理に移行することとなり、タイマ割込処理(メイン)の実行中に電断に伴う割込が発生することもないため、タイマ割込処理(メイン)の実行中に電断処理を割り込ませたり、タイマ割込処理(メイン)の終了を待って電断に伴う割込処理を行ったりする必要がないため、電断条件の成立に伴う処理が複雑化してしまうことがない。
また、メイン制御部41は、前述したタイマ割込処理(メイン)において電断フラグが設定されていると判定した場合に電断処理(メイン)を実行する。図12に示すように、まず、メイン制御部41は、使用している可能性がある全てのレジスタをスタック領域に退避する(ステップSm1)。なお、前述したIレジスタ及びIYレジスタの値は使用されているが、起動時の初期化に伴って常に同一の固定値が設定されるため、ここでは保存されない。次いで、メイン制御部41は、破壊診断用データ(本実施形態では、5A(H))をセットして(ステップSm2)、全ての出力ポートを初期化する(ステップSm3)。メイン制御部41は、RAM41cの全ての格納領域(未使用領域及び未使用スタック領域を含む)の排他的論理和が0になるようにRAMパリティ調整用データを計算してセットし(ステップSm4)、RAM41cへのアクセスを禁止する(ステップSm5)。その後、メイン制御部41は、電圧が低下してメイン制御部41のCPU41aが停止して待機状態に移行する。そして、この待機状態のまま電圧が低下すると内部的に動作停止状態になる。よって、電断時に確実にメイン制御部41は動作停止する。
本実施形態のスロットマシン1は、メイン制御部41がゲームの進行制御を行う。操作スイッチとしてMAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8Rを備える。また、これら操作スイッチのうちスタートスイッチ7は、設定変更状態において設定値の確定操作にも用いられる。メイン制御部41は、これら操作スイッチを、一定時間間隔毎に割り込んで実行されるタイマ割込処理(メイン)中に実行するスイッチ入力判定処理において検出する。また、メイン制御部41は、電源投入に伴い、起動処理を実行し、起動処理の終了時に割込が許可され、その後、タイマ割込処理(メイン)を一定間隔毎に実行する。そして、メイン制御部41が電断前の状態に復帰可能な場合には、起動処理において割込が許可される前に復帰コマンドがサブ制御部91に対して送信される。また、RAM41cの格納データの異常によりメイン制御部41が電断前の状態に復帰不可能な場合には、起動処理において割込が許可される前にRAM異常を示すエラーコマンドがサブ制御部91に対して送信される。また、設定キースイッチ37がonの状態であり、RAM41cが初期化され、電断前の状態に復帰しない場合には、起動処理において割込が許可される前に設定変更中であることを示す設定変更中コマンドがサブ制御部91に対して送信される。これら起動処理において送信されるコマンドのうち復帰コマンドからは、メイン制御部41が電断前の状態に復帰する旨が特定され、RAM異常を示すエラーコマンド、設定変更中であることを示す設定変更中コマンドからは、メイン制御部41が電断前の状態には復帰しない旨が特定されることとなる。
また、本実施形態のメイン制御部41は、例えば、上述のステップSe11(Se22、Se27、Se32)、Si6等の処理のように遊技者による操作(メダル投入、ゲーム処理における各種スイッチ操作、設定変更状態や設定確認状態における各種スイッチ操作)を判定する前や、上述のステップSa13、Sa17、Sa23の処理やゲーム処理においてコマンドを生成してコマンドバッファに設定(格納)する処理の後に、割込4回待ち処理(n=4となる割込n回待ち処理)を実行する。また、本実施形態のメイン制御部41は、外部出力基板1000を介して外部機器に出力する外部出力信号のためのデータを生成(設定)した後にも割込4回待ち処理を実行する。本実施形態の割込4回待ち処理は、図13に示す割込1回待ち処理を4回連続実行する処理である。
図13に示すように、まず、メイン制御部41は、割込1回待ち処理において、タイマ割込処理(メイン)の割込を許可し(ステップS101)、RAM41cに割り当てられた乱数値を更新する乱数更新処理を実行し(ステップS102)、RAM41cにアクセスして分岐用カウンタの値を取得し(ステップS103)、分岐用カウンタの値が前回取得した値から変化したか否かを判定することにより、分岐用カウンタの値が更新されたか否かを判定する(ステップS104)。メイン制御部41は、分岐用カウンタの値が更新されていない場合(ステップS104;N)、ステップS101の処理に戻ってステップS101〜S104の処理を繰り返し、分岐用カウンタの値が更新された場合(ステップS104;Y)、処理を終了して割込4回待ち処理に復帰する。
以上説明したように、本実施形態に係るスロットマシン1によれば、メイン制御部41は、図5に示す起動処理(メイン)や図6に示すゲーム処理の実行中に一定間隔(0.56msの間隔)で割り込む図9に示すタイマ割込処理(メイン)を実行し、タイマ割込処理(メイン)が実行される毎に分岐用カウンタ値を0→1→2→3→0・・・の順番でループさせている。ここで、タイマ割込処理(メイン)において実行されるタイマ割込1〜4の何れかにおいて行われる処理(例えば、スイッチ入力判定処理、コマンド送信処理、外部出力信号更新処理)については、4回のタイマ割込処理(メイン)毎、すなわち、一定間隔(0.56msの間隔)の4倍の間隔(2.24msの間隔)で行われることになる。このため、メイン制御部41は、例えば、遊技者による操作(メダル投入、各種スイッチ操作)を判定する前やコマンドを生成してコマンドバッファに設定(格納)する処理の後や外部出力信号のためのデータを生成(設定)した後に、タイマ割込処理(メイン)の実行(割込の発生)を4回待つ割込4回待ち処理を実行する。このとき、メイン制御部41は、割込4回待ち処理において実行する割込1回待ち処理で分岐用カウンタの値が更新されたか否かを判定することにより、タイマ割込処理(メイン)が実行されたか否か、すなわち、割込が1回発生したか否かを判定する(図13参照)。
このようにすることで、タイマ割込処理(メイン)において実行すべきタイマ割込1〜4を識別するための分岐用カウンタを、起動処理(メイン)やゲーム処理で実行される割込1回待ち処理(割込4回待ち処理)においてタイマ割込処理(メイン)が実行されたか否かを判定するためにも用いることができる。この結果、割込1回待ち処理においてタイマ割込処理(メイン)が実行されたか否かを判定するための判定情報を別途用いる遊技機よりもデータ記憶容量を低減しつつ割込発生の判定を行うことができる。
また、本実施形態に係るスロットマシン1によれば、メイン制御部41は、割込1回待ち処理において分岐用カウンタ値が判定される度に割込を許可している。
このようにすることで、割込1回待ち処理において割込が発生したときにタイマ割込処理(メイン)の実行が規制されている不測の事態が発生することを防止できる。
また、本実施形態に係るスロットマシン1によれば、メイン制御部41は、割込1回待ち処理において分岐用カウンタ値が更新されたか否かが判定されている間に乱数を更新している。
このようにすることで、割込1回待ち処理の実行中に乱数を更新しない遊技機よりも乱数の更新の効率を向上できる。
また、本実施形態に係るスロットマシン1によれば、メイン制御部41は、タイマ割込処理(メイン)において各種スイッチ類の入力信号の入力状態を監視して入力状態の結果を示す入力情報をRAM41cに記憶(検出データを入力)するスイッチ入力判定処理を実行する一方、BET処理やリール回転処理等において各種スイッチ類の入力情報(検出データ)を参照して入力状態を判定する前に割込1回待ち処理(割込4回待ち処理)を実行する。
このようにすることで、記憶された入力情報への過度な参照を防止できる。具体的には、設定変更状態においてリセット/設定スイッチ38による設定値表示器24の表示値を更新する操作やスタートスイッチ7の確定操作の入力を判定するときに、これらのスイッチ操作の検出データが入力されるのを無限ループで監視し続ける(入力信号の状態が変化するまでRAM41cの入力情報にアクセスを繰り返す)と、入力情報にアクセスする処理を繰り返すことで入力情報を過度に参照することになる。また、この場合、タイマ割込処理(メイン)が意図しないタイミングで実行されてしまうと、検出データの入力判定が割込の発生によって中断されたり、入力情報の更新と読出しが同時に行われることで入力情報へのアクセスに失敗したりして入力判定に失敗する虞があり、検出データの入力判定が中途半端に行われる虞がある。
これに対して、本実施形態では、各種スイッチ操作の入力判定の前に割込1回待ち処理(割込4回待ち処理)を実行しており、単純に無限ループで入力情報にアクセスする処理を繰り返さないので記憶された入力情報への過度な参照を防止できる。また、本実施形態では、タイマ割込処理(メイン)のスイッチ入力判定処理が実行された後、すなわち、入力情報を記憶するための割込が発生したと判断された後の当該割込が入らないタイミングに各種スイッチ操作の入力判定を行うことができ、入力判定において意図しないタイミングで割込が入らないようにすることができ、入力判定を確実に実行することができる。
また、本実施形態に係るスロットマシン1によれば、メイン制御部41は、タイマ割込処理(メイン)において外部出力信号のためのデータの生成を監視して外部出力信号を更新する外部出力信号更新処理を実行する一方、ゲーム処理において外部出力信号のためのデータを生成した後に割込1回待ち処理(割込4回待ち処理)を実行する。
このようにすることで、外部出力信号が外部機器に対して出力されたことを担保してゲーム処理を進行できる。具体的には、外部出力信号の出力完了を判定するときに、タイマ等で外部出力信号が出力されるまでの時間を無限ループで待機し続ける場合(タイムアップするまでRAM41cのタイマにアクセスを繰り返す場合)、タイマ割込処理(メイン)が意図しないタイミングで実行されてしまうと、タイムアップの判定が割込の発生によって中断されたり、タイマの更新と読出しが同時に行われることでタイマへのアクセスに失敗したりしてタイムアップの判定に失敗する虞があり、外部出力信号の出力完了の判定(外部出力信号の出力完了までの待機)が中途半端になる虞がある。
これに対して、本実施形態では、外部出力信号のためのデータを生成の後に割込1回待ち処理(割込4回待ち処理)を実行しており、外部出力信号を出力するための割込の発生を判断することで、外部出力信号の出力を待機することができ、外部出力信号が出力されたことを担保してその後の処理を実行できる。
また、本実施形態に係るスロットマシン1によれば、メイン制御部41は、タイマ割込処理(メイン)においてサブ制御部91に対して各種コマンドを送信するコマンド送信処理を実行する一方、起動処理(メイン)やゲーム処理においてコマンドを生成した後に割込1回待ち処理(割込4回待ち処理)を実行する。
このようにすることで、コマンドが送信されたことを担保してその後のエラー処理や設定変更処理やゲーム処理を進行できる。具体的には、コマンド送信の完了を判定するときに、タイマ等でコマンドが送信されるまでの時間を無限ループで待機し続ける場合(タイムアップするまでRAM41cのタイマにアクセスを繰り返す場合)、タイマ割込処理(メイン)が意図しないタイミングで実行されてしまうと、タイムアップの判定が割込の発生によって中断されたり、タイマの更新と読出しが同時に行われることでタイマへのアクセスに失敗したりしてタイムアップの判定に失敗する虞があり、コマンド送信の完了の判定(コマンド送信の完了までの待機)が中途半端になる虞がある。
これに対して、本実施形態では、コマンド生成の後に割込1回待ち処理(割込4回待ち処理)を実行しており、コマンドを送信するための割込の発生を判断することで、コマンドの送信を待機することができ、コマンドが送信されたことを担保してその後の処理を実行できる。
また、本実施形態に係るスロットマシン1によれば、RAM41cの全ての領域は、バックアップRAMによって構成されており、スロットマシン1への電力供給が停止しても所定期間はRAM41cの全ての内容が保存されるようになっている。また、メイン制御部41は、起動処理(メイン)において初期化1、3を実行し、初期化1、3ではRAM41cの格納領域のうちの非保存ワークや未使用領域や未使用スタック領域が初期化されるので、タイマ割込処理(メイン)において用いられるデータ(例えば、入力ポートや出力ポートのバッファ、コマンドバッファ等)も初期化されることになる。そして、メイン制御部41は、初期化1、3の実行後にタイマ割込処理(メイン)の実行を許可している。すなわち、タイマ割込処理(メイン)において用いられるデータが初期化された後に割込の発生を許可している。
このようにすることで、初期化を行うにも関わらずタイマ割込処理(メイン)において用いられるデータが初期化されないことにより、その後のタイマ割込処理(メイン)において意図しない処理が実行されることを防止できる。
なお、本実施形態では、起動処理(メイン)やゲーム処理において、タイマ割込1〜4に分岐した後の処理(例えば、スイッチ入力判定処理、コマンド送信処理、外部出力信号更新処理)の実行を待機する処理(割込4回待ち処理)を実行したが、これに限定されず、タイマ割込1〜4に分岐する前の処理(停電判定処理やポート入力処理)の実行を待機する処理を実行してもよい。この場合、タイマ割込1〜4に分岐する前の処理は、タイマ割込処理(メイン)が実行される度に一定間隔(0.56msの間隔)で実行されるため、割込1回待ち処理を1回実行して割込の発生を待機すればよい。なお、このように制御するためには、タイマ割込1〜4に分岐した後の処理のうち、割込4回待ち処理で実行されることを待機する処理(スイッチ入力判定処理、コマンド送信処理、外部出力信号更新処理等)をタイマ割込1〜4に分岐する前の処理としてタイマ割込処理(メイン)が実行される度に一定間隔(0.56msの間隔)で実行する必要がある。具体的には、後述する通常時コマンド送信処理のように、タイマ割込処理(メイン)が実行される度に実行すればよい。
このようにすることで、割込1回待ち処理は、タイマ割込処理(メイン)が実行される度に実行されるポート入力処理の実行を担保するために行われていることになる。この結果、タイマ割込処理(メイン)において実行する処理のうちの割込が発生する度に実行される処理(タイマ割込1〜4に分岐する前の処理)が実行されたことを担保してその後のゲーム処理等を進行できる。
なお、本実施形態では、起動処理(メイン)やゲーム処理において、スイッチ入力判定処理、コマンド送信処理、外部出力信号更新処理の実行を待機するために割込4回待ち処理を実行したが、これに限定されず、例えば、リール始動処理やモータステップ処理やモータ位相信号スタンバイ処理等のリール制御処理(ステッピングモータ制御処理)の実行を待機するために割込4回待ち処理を実行してもよい。また、例えば、LEDダイナミック表示処理等のLED照明出力制御処理やドア監視処理等のセンサ検知処理の実行を待機するために割込4回待ち処理を実行してもよい。
[実施形態2]
上記実施形態1では、メイン制御部41は、サブ制御部91に1種類の内部当選コマンドを送信しているが、複数種類の内部当選コマンドを送信してもよい。以下、複数種類の内部当選コマンドを送信する実施形態2について説明する。
なお、本実施形態では、上記実施形態1と同様の構成及び処理となる部分についてはその詳細な説明を省略し、主として上記実施形態1とは異なる部分について説明する。
本実施形態のメイン制御部41は、ATに制御している場合には、遊技状態に応じた報知対象役(ナビ対象役)に当選することにより、遊技補助表示器12等を用いてナビ報知を実行するとともに、サブ制御部91に第1の内部当選コマンド、第2の内部当選コマンド、押し順コマンドを送信することで、サブ制御部91によるナビ演出を実行させる。
本実施形態では、抽選対象役の種類毎に当選番号が予め割り当てられており、持ち越されることがある抽選対象役、すなわち特別役の種類毎の当選番号が設定された特別役当選番号テーブルと、持ち越されることがない抽選対象役、すなわち一般役の種類毎の当選番号が設定された一般役当選番号テーブルとがメイン制御部41のROM41bの所定領域に格納されている。
図14(A)に示すように、特別役当選番号テーブルでは、当選番号として、はずれの「0」、BBの「1」、RBの「1」がそれぞれ割り当てられている。また、図14(B)に示すように、一般役当選番号テーブルでは、当選番号として、はずれの「0」、通常リプレイの「1」、リプレイGR1〜GR6の「2」〜「7」、リプレイGR11〜GR16の「8」〜「13」、リプレイGR21〜GR26の「14」〜「19」、強チェリーの「20」、弱チェリーの「21」、スイカの「22」、左ベル1〜4の「23」〜「26」、中ベル1〜4の「27」〜「30」、右ベル1〜4の「31」〜「34」、共通ベルの当選番号として「35」がそれぞれ割り当てられている。
このように、特別役当選番号テーブル及び一般役当選番号テーブルでは、内部抽選の抽選対象役と当選番号とが対応して設定されている。
また、特別役当選番号テーブルでは、送信用当選番号として、はずれの「0」、BBの「1」、RBの「1」がそれぞれ割り当てられている。また、図14(B)に示すように、一般役当選番号テーブルでは、送信用当選番号として、はずれの「0」、通常リプレイの「1」、リプレイGR1〜GR26の「2」、強チェリーの「20」、弱チェリーの「21」、スイカの「22」、左ベル1〜4、中ベル1〜4、右ベル1〜4の「23」、共通ベルの「35」がそれぞれ割り当てられている。
このように、特別役当選番号テーブル及び一般役当選番号テーブルでは、報知対象役(AT役、ナビ対象役)の一例としての押し順役(リプレイGR1〜GR26、押し順リプレイ、左ベル1〜4、中ベル1〜4、右ベル1〜4、押し順ベル)を除く内部抽選の抽選対象役と送信用当選番号とが対応して設定されているのに対して、押し順役については送信用当選番号によってそれぞれグループ化されて設定されている。
本実施形態では、メイン制御部41は、スタート操作が行われたときに、内部抽選処理を実行し、内部抽選にて特別役及び一般役のうち何れかの役が当選している場合には、当選が判定された抽選対象役に対応する当選番号をRAM41cの所定領域に設定し、何れの役も当選していない場合には、はずれに対応する当選番号をRAM41cの所定領域に設定する。一般役の当選を示す当選番号は1ゲーム終了毎にクリアされる一方で、特別役の当選を示す当選番号は当選した特別役が入賞されるまで維持され、当選した特別役が入賞することでクリアされる。
メイン制御部41は、当選番号を設定した後、図15に示す内部当選コマンド設定処理を実行して、RAM41cの所定領域に設定されている内部当選番号に基づいて第1の内部当選コマンド及び第2の内部当選コマンドをコマンドキューに設定し、その後のタイマ割込処理(メイン)により、第1の内部当選コマンド及び第2の内部当選コマンドをサブ制御部91に対して送信する。具体的には、図15に示すように、メイン制御部41は、内部抽選処理においてRAM41cの所定領域に設定された特別役の当選番号を取得し(ステップSf1)、取得した当選番号を、サブ制御部91に対して送信する送信用当選番号としてRAM41cの所定領域に設定し(ステップSf2)、当該送信用当選番号に基づいて第1の内部当選コマンドをコマンドキューに格納し(ステップSf3)、内部抽選処理においてRAM41cの所定領域に設定された一般役の当選番号を取得し(ステップSf4)、取得した当選番号が、2未満であるか否かを判定する(ステップSf5)。
メイン制御部41は、2未満でない場合(ステップSf5;N)、20未満であるか否かを判定する(ステップSf6)。メイン制御部41は、20未満でない場合(ステップSf6;N)、23未満であるか否かを判定する(ステップSf7)。メイン制御部41は、23未満でない場合(ステップSf7;N)、35未満であるか否かを判定する(ステップSf8)。一方、メイン制御部41は、2未満である場合(ステップSf5;Y)、または、23未満である場合(ステップSf7;Y)、または、35である場合(ステップSf8;N)、当該取得した当選番号を、サブ制御部91に対して送信する送信用当選番号としてRAM41cの所定領域に設定する(ステップSf12)。また、メイン制御部41は、23〜34の何れかである場合(ステップSf8;Y)、送信用当選番号としてRAM41cの所定領域に23を設定する(ステップSf9)。また、メイン制御部41は、2〜19の何れかである場合(ステップSf6;Y)、送信用当選番号としてRAM41cの所定領域に2を設定する(ステップSf11)。一般役の送信用当選番号設定後、メイン制御部41は、当該送信用当選番号に基づいて第2の内部当選コマンドをコマンドキューに格納し(ステップSf10)、内部当選コマンド設定処理を終了してメイン処理(メイン)に戻る。なお、本実施形態の内部当選コマンド設定処理において設定された第1の内部当選コマンド、第2の内部当選コマンドは、その後、割込4回待ち処理の実行後にタイマ割込処理(メイン)が実行されることで、サブ制御部91に対して順次送信されることとなる。
以上説明したように、本実施形態のスロットマシン1によれば、メイン制御部41は、特別役当選番号テーブル及び一般役当選番号テーブルに基づいてサブ制御部91に対して第1の内部当選コマンドや第2の内部当選コマンドを送信している。
ここで、従来のスロットマシンでは、サブ制御部は、ATに制御しているか否かに関わらず、内部当選コマンドに基づいて遊技者にとって有利となる操作手順を特定可能であるので、サブ制御部側に不正がなされると、メイン制御部においてATに制御する旨が決定されていないにも関わらず、内部当選コマンドから有利な操作手順が特定され、当該操作手順がサブ制御部により報知されてしまう可能性がある。
これに対して、本実施形態のメイン制御部41は、内部抽選結果を特定可能な内部当選コマンドとして、内部抽選結果として特別役の当選状況を特定可能な第1の内部当選コマンド及び一般役の当選状況を特定可能な第2の内部当選コマンドを設定し、設定された当該コマンドをサブ制御部91に対して送信可能であり、ATに制御されているか否かに関わらず、報知対象役に当選したときに、報知対象役が当選した旨は特定できるが有利な停止順を特定することができないように第2の内部当選コマンドを設定する。
このようにすることで、メイン制御部41側でATに制御しているか否かに関わらず、共通の第2の内部当選コマンドを送信するので、第2の内部当選コマンドの送信に係る処理を簡素化でき、第2の内部当選コマンドから内部抽選結果に応じた有利な停止順が特定されないので、サブ制御部91側に不正がなされてもATに制御されていない状態で遊技者にとって有利な停止順がナビ演出により報知されてしまうことを防止できる。
また、本実施形態のスロットマシン1によれば、メイン制御部41は、スタート操作が行われたときに、内部抽選を行い、内部抽選結果に応じて内部抽選結果毎に各々異なる当選番号をRAM41cに設定し、設定された当選番号に応じて内部当選フラグの設定、ナビ報知、コマンド作成、リール2L、2C、2Rの停止制御等を行う構成である。また、メイン制御部41は、内部当選コマンドとして、特別役の当選状況を特定可能な第1の内部当選コマンド及び一般役の当選状況を特定可能な第2の内部当選コマンドを内部当選コマンド設定処理において設定し、設定された当該コマンドをサブ制御部91に対して送信する構成である。ここで、内部当選結果として報知対象役が当選したときの当選番号は、所定の数値範囲(報知対象役として押し順リプレイの当選番号が2〜19、押し順ベルの当選番号が23〜34)からなる連続する数値が割り当てられている。また、メイン制御部41は、内部当選コマンド設定処理を実行し、ATに制御されていてナビ報知が実行される状態以外の状態において、RAM41cに設定された当選番号が、当該所定の数値範囲(2〜19、23〜34)であるときに、報知対象役となった旨は特定できるが遊技者にとって有利な停止順を特定できない第2の内部当選コマンドを設定し、設定された第2の内部当選コマンドをサブ制御部91に対して送信する。
このようにすることで、メイン制御部41側でATに制御しているか否かに関わらず、第2の内部当選コマンドから内部抽選結果に応じた遊技者にとって有利な停止順が特定されることはないため、サブ制御部91側に不正がなされてもATに制御されていない状態で遊技者にとって有利な停止順がナビ演出により報知されてしまうことを防止できる。
また、内部抽選結果が報知対象役となったときに設定される当選番号として、所定の数値範囲からなる連続する数値が割り当てられているとともに、メイン制御部41は、内部抽選結果が報知対象役であるか否かを、所定制御を行う際に用いられる当選番号が報知対象役に対して割り当てられた所定の数値範囲内にあるか否かにより判定できるため、第2の内部当選コマンドを送信する際の処理を簡素化できる。
[実施形態3]
上記実施形態1、2では、メイン制御部41は、サブ制御部91に内部当選コマンド、リール回転開始コマンド、リール停止コマンド、遊技状態コマンド、復帰コマンド、設定変更中コマンド、エラーコマンドを含む複数種類のコマンドを送信しているが、例えば、遊技状態コマンドを含む制御状態コマンドを送信してもよい。以下、制御状態コマンドを送信する実施形態3について説明する。
なお、本実施形態では、上記実施形態1と同様の構成及び処理となる部分についてはその詳細な説明を省略し、主として上記実施形態1とは異なる部分について説明する。
本実施形態のメイン制御部41は、ゲームの開始時においては、当該ゲームの開始に伴い各種の制御状態(例えば、遊技状態やナビ報知が実行される状態か否か等)を更新し、更新された制御状態に基づいてゲームに関する制御(例えば、内部抽選やナビ報知、遊技者にとって有利な有利状態に関する抽選等)を行い、当該ゲームの終了時においては、当該ゲームの結果(例えば、各リールに停止した図柄の組合せ、有利状態に関する抽選の結果)に応じて各種の制御状態を維持または更新する。また、ゲームの開始時及び終了時に、その時点における各種の制御状態を特定可能な制御状態コマンドをサブ制御部91に対して送信する。なお、制御状態には、スロットマシン1の機種毎の遊技性や設計思想等に応じて固有に設定される複数種類の状態が含まれており、制御状態コマンドの個数は、当該制御状態の種類数に応じて設定されるようになっている。
図16に示すように、制御状態を特定可能な制御状態コマンドは、制御状態のうち、一単位のゲームの開始時とゲームの終了時とで内容が変化し得る制御状態を特定可能な制御状態コマンド1と、当該ゲームに固有であり、ゲームの開始時とゲームの終了時とで内容が変化することのない制御状態を特定可能な制御状態コマンド2とを含む。
制御状態コマンド1には、メイン制御部41での遊技状態に関連する制御状態を特定可能な複数の遊技状態関連コマンドと、AT中すなわち遊技者にとって有利な有利状態としてATの制御が行われていることに関連する制御状態を特定可能な複数のAT関連コマンドAと、非AT中すなわちATの制御が行われていないことに関連する制御状態を特定可能な複数のAT関連コマンドBとが含まれ、制御状態コマンド2には、当該ゲームに固有な制御状態を特定可能な複数のゲーム内固有情報コマンドが含まれる。
また、遊技状態関連コマンドには、例えば、メイン制御部41での遊技状態を特定可能なコマンド、遊技状態が所定数のゲームが行われることに伴い移行されるものである場合に、当該ゲームで制御されている遊技状態が終了するまでの残りのゲーム数を特定可能なコマンド、遊技状態が所定の枚数のメダルが払出されることで移行されるものである場合に、当該ゲームで制御されている遊技状態が終了するまでの残りのメダルの枚数を特定可能なコマンド等が含まれる。また、AT関連コマンドAには、例えば、遊技者にとって有利な有利状態としてATに制御される権利の数を特定可能なコマンド、当該ゲームで制御されているATの制御が継続される残りのゲーム数を特定可能なコマンド等が含まれる。また、AT関連コマンドBには、例えば、前のATの制御が終了された後から通常状態で行われる通常ゲームの累積数を特定可能なコマンド、通常状態行われた通常ゲーム数が所定ゲーム数に達することで遊技者にとって有利な有利状態に制御される場合に、有利状態に制御されるまでの残りのゲーム数を特定可能なコマンド、ATに制御される権利が付与され当該ATの制御が開始されるまでの残りゲーム数の等が含まれる。
ゲーム内固有情報コマンド群には、例えば、遊技者にとって有利な有利状態としてATに制御される権利を付与するか否かを決定するAT抽選の当選状況を特定可能なコマンド、ATに制御されるゲーム数の上乗せ状況を特定可能なコマンド、ゲームの開始時に内部抽選の結果に応じて決定される遊技者にとって有利な停止順を特定可能なコマンド、ゲームの開始時に内部抽選結果に応じて決定される演出(例えば、遊技の進行を所定期間にわたり遅延させるフリーズ状態、当該フリーズ状態においてリールを用いて行うリール演出、内部抽選結果を示唆する演出等)の種類を特定可能なコマンドが含まれる。
本実施形態のメイン制御部41がサブ制御部91に対して送信する一のコマンドは、2バイト(1バイトの通信データ2つで1組)で構成され、1バイト目(MODE)はコマンドの分類を表し、2バイト目(EXT)はコマンドの内容を表すようになっている。制御状態コマンドに含まれる各コマンドについても、他のコマンドと同様に2バイトで構成されており、特に、図16に示すように、制御状態コマンドに含まれる一連の各コマンドのMODEは、送信される順番に対応する連続した数値(本実施形態では、B0〜CF)に設定されている。
なお、本実施形態で示すコマンドの形態(1バイトの通信データ2つで1組のコマンドをなす形態)は一例であって、他のデータ形態、例えば、一の通信データを2バイト以上とする形態、1つまたは3つ以上の通信データで一のコマンドを構成する形態、これらの形態の組合せた形態等、を用いてもよい。また、本実施形態では、制御状態コマンドに含まれる各コマンドのMODEは、初期値(B0)から順次加算処理(1を加算する処理)により得られる連続した数値であるが、加算処理以外の他の演算処理(四則演算等)により得られる数値であってもよい。
また、制御状態コマンドに含まれる各コマンドにおいてEXTとしてサブ制御部91に送信されることとなる具体的なコマンドの内容を示すデータは、上述のメイン処理及びタイマ割込処理(メイン)において実行される各種処理により、各データに対応するRAM41cの所定のデータアドレスの領域に設定され、各データのデータアドレスは、MODEの値と同様に、送信される順番に対応する連続する数値となるように設定されており、初期値(制御状態コマンドのうち最初に送信されるコマンドのデータアドレス)から順次加算処理(1を加算する処理)を行うことにより得られるようになっている。
メイン制御部41は、ゲームの開始時に実行するゲーム開始時送信コマンド設定処理やゲームの終了時に実行するゲーム終了時送信コマンド設定処理において、制御状態を更新する制御状態更新処理を実行した後に、各制御状態を特定可能な制御状態コマンドに含まれる上述のコマンド群を一括してコマンドキューに設定する制御状態コマンド一括設定処理を実行する。図17に示すように、制御状態コマンド一括設定処理では、まず、メイン制御部41は、RAM41cの所定領域に設定されているMODEの値を、初期値(本実施形態ではB0)に設定し(ステップSb1)、RAM41cの所定領域に設定されているデータアドレスの値を、初期値(遊技状態関連コマンドのデータが記憶されている領域のアドレスの値)に設定し(ステップSb2)、RAM41cの所定領域に設定されている処理回数の値を制御状態コマンド群に含まれるコマンドの個数に設定する(ステップSb3)。処理回数設定後、メイン制御部41は、タイマ割込を禁止に設定し(ステップSb4)、タイマ割込を禁止した状態でRAM41cの所定領域のMODEをコマンドキューに設定し(ステップSb5)、データアドレスの値に対応するアドレスのRAM41cの領域に記憶されているデータを取得し、RAM41cの所定領域にEXTとして設定し(ステップSb6)、当該EXTをコマンドキューに設定する(ステップSb7)。
EXT設定後、メイン制御部41は、割込1回待ち処理を実行する(ステップSb8)。本実施形態では、タイマ割込処理(メイン)が実行される毎に通常時コマンド送信処理を実行してコマンドキューに設定されているデータ(コマンドを構成するMODE及びEXT)を1バイトずつサブ制御部91に送信するようになっている。よって、割込1回待ち処理が実行されることで、通常時コマンド送信処理が実行されることとなり、コマンドキューに設定されたMODE及びEXTのうち先に設定されたMODEがコマンドの1バイト目としてサブ制御部91に送信される。割込1回待ち処理終了後、メイン制御部41は、再び割込1回待ち処理を実行する(ステップSb9)。これにより、通常時コマンド送信処理により、後に設定されたEXTがコマンドの2バイト目としてサブ制御部91に送信される。割込1回待ち処理実行後、メイン制御部41は、MODEの値に1加算し(ステップSb10)、データアドレスの値に1加算し(ステップSb11)、処理回数の値を1減算し(ステップSb12)、減算後の残りの処理回数の値が0であるか否かを判定して(ステップSb13)、制御状態コマンド群の全てのコマンドについてMODE及びEXTを設定したか否かを判定する。メイン制御部41は、残りの処理回数の値が0でない場合(ステップSb13;N)、ステップSb4に戻り、ステップSb5〜Sb7の処理を繰り返し、0である場合(ステップSb13;Y)、処理を終了する。
よって、本実施形態のメイン制御部41は、制御状態コマンドに含まれる複数のコマンドを送信させる際には、割込み禁止した状態で一のコマンドを構成する1組のMODE及びEXTをコマンドキューに設定した後、タイマ割込処理(メイン)が1回行われるまで待機する割込1回待ち処理を2回連続実行(割込2回待ち処理を実行)することで、タイマ割込み処理(メイン)を2回実行させてコマンドキューのMODE及びEXTをサブ制御部91に送信させることで一のコマンドを構成する1組の単位データ(各1バイトのMODE及びEXT)を2つ続けて送信させる処理を繰り返すようになっている。
以上説明したように、本実施形態に係るスロットマシン1では、メイン制御部41は、ゲームの制御状態を示す制御状態コマンドを含む複数のコマンドを送信することが可能であり、サブ制御部91は、コマンドの受信に応じてメイン制御部41側での制御状態を特定して演出の制御を行うことが可能な構成である。また、メイン制御部41は、ゲームの進行に応じてコマンドを生成してコマンドキューに格納し、タイマ割込処理(メイン)により定期的に実行される通常時コマンド送信処理においてコマンドキューに格納されたコマンドをサブ制御部91に対して送信する。このような構成では、例えば、サブ制御部91に対してメイン制御部41側の制御状態を詳細に把握させるために、メイン制御部41側において制御状態が変化する毎に変化した制御状態を示す複数種類の制御状態コマンドをその都度送信しようとすると、複数のコマンドが短期間に集中して生成されることとなり、コマンドキューがオーバーフローして全てのコマンドを送信できなくなる虞がある。
これに対して、本実施形態では、メイン制御部41が送信する一のコマンドは、1バイトのMODE及び1バイトのEXTから構成されており、メイン制御部41は、ゲームの進行に応じてコマンドのMODE及びEXTを作成してコマンドキューに設定し、その後、定期的にタイマ割込処理(メイン)を実行する毎に、コマンドキューに設定されているMODE及びEXTを1バイトずつサブ制御部91に対して送信する構成であり、制御状態コマンドに含まれる複数種類のコマンドをサブ制御部91に対して送信させるための制御状態コマンド一括設定処理において、制御状態コマンドに含まれる一のコマンドを送信させる際に、当該コマンドのMODE及びEXTを作成してコマンドキューに設定した後、タイマ割込処理(メイン)が実行されるまで待機する割込1回待ち処理を2回実行(割込2回待ち処理を実行)することで、コマンドキューに設定されている当該コマンドのMODE及びEXTが送信されるのに要する期間にわたり制御の進行を待機させることで、当該コマンドのMOED及びEXTがサブ制御部91に対して送信されていない状態で、新たに他の一のコマンドがコマンドキューに設定されることを防止する。このため、新たに作成されたコマンドのMODE、EXTによってコマンドキューがオーバーフローすることがなく、制御状態コマンドをサブ制御部91に対して確実に送信することができる。
なお、本実施形態では、第1の制御手段として遊技の制御を行うメイン制御部41が、第2の制御手段として演出の制御を行うサブ制御部91に対してコマンドを送信可能な構成であるが、第1の制御手段は、第2の制御手段に対してコマンド等の制御情報を送信する制御手段であり、第2の制御手段は、第1の制御手段から送信された制御情報に基づいて何らかの制御を行う制御手段であれば良く、第1の制御手段として遊技の制御以外の制御、例えば、演出の制御を行う制御手段を適用し、第2の制御手段として、例えば、第1の制御手段が演出の制御を行う制御手段である場合に、第1の制御手段から送信された制御情報に基づいて演出装置の制御を行う制御手段を適用してもよい。
また、本実施形態では、メイン制御部41は、制御状態コマンドに含まれる複数種類のコマンドをサブ制御部91に対して送信させるための制御状態コマンド一括設定処理において、制御状態コマンドに含まれるコマンドをコマンドキューに設定した後に、割込1回待ち処理を2回実行することで、コマンドキューに設定したMODE及びEXTが送信されるのに要する期間にわたり制御の進行を待機させる構成であるが、制御状態コマンドに含まれるコマンドをコマンドキューに設定した後には、コマンドキューに設定したMODE及びEXTが送信されるのに要する所定の期間以上の期間にわたり制御の進行を待機させる構成であれば良く、例えば、割込1回待ち処理を3回以上実行することで、所定の期間以上の時間にわたり制御の進行を待機させる構成、コマンドキューに一のコマンドを設定した後からの経過時間を計時するタイマを設けて、当該タイマによりタイマ割込処理(メイン)が2回行われるのに要する所定時間以上の時間が計時されたときに、新たな一のコマンドをコマンドキューに設定する構成等とすることで、一のコマンドが送信されるのに要する所定の期間以上の期間にわたり制御の進行を待機させることができる。
本実施形態では、メイン制御部41が送信するコマンドは、MODE及びEXTから構成される2バイトのコマンドであり、タイマ割込処理(メイン)では、コマンドキューに設定されているMODE及びEXTを1バイトずつサブ制御部91に対して送信する構成であるが、タイマ割込処理(メイン)では、所定周期毎にコマンドキューに設定されているコマンドを、コマンドを構成するデータの総容量よりも少ない容量ずつ第2の制御手段としてのサブ制御部91に対して送信する構成において、第1の制御手段としてのメイン制御部41は、コマンドを構成する全てのデータをコマンドキューに設定した後、タイマ割込処理(メイン)により一のコマンドを構成する全てのデータが送信されるために要する期間にわたり制御の進行を待機する構成であってもよく、このような構成においても、本実施形態の構成と同様の効果を奏することができる。
本実施形態のメイン制御部41は、タイマ割込処理(メイン)においてコマンドキューに設定されているコマンドを構成するMODE及びEXTを1バイトずつ送信する構成であって、制御状態コマンド一括設定処理では、制御状態コマンドに含まれる一のコマンドを構成する1組のMODE及びEXTをコマンドキューに設定した後、タイマ割込処理(メイン)が1回実行されるまで待機する割込1回待ち処理を2回実行することで、一のコマンドを構成する1組のMODE及びEXTが送信するのに要する期間にわたりゲームの制御の進行を待機させるので、制御状態コマンド一括設定処理以外の他の処理においても使用される共通の割込待ち処理を複数回実行することで、ゲーム制御の進行を待機させるので待機に係るプログラム容量を削減できる。
また、本実施形態のメイン制御部41は、タイマ割込処理(メイン)において、タイマ割込処理(メイン)においてコマンドキューに設定されているコマンドを構成するMODE及びEXTを1バイトずつ送信するとともに、スタートスイッチ7やストップスイッチ8L、8C、8Rなどのスイッチ類の出力状態を更新し、その後のメイン処理において該当するスイッチの出力状態を参照し、当該出力状態に基づいてゲームの進行を制御する構成であって、メイン処理においてゲームの進行を制御する際に、タイマ割込処理(メイン)が1回実行されるまで待機する割込1回待ち処理を実行した後に、各スイッチ類の出力状態を参照する構成であり、メイン処理において実行する制御状態コマンド一括設定処理では、制御状態コマンドに含まれる一のコマンドを構成する1組のMODE及びEXTをコマンドキューに設定した後、タイマ割込処理(メイン)が1回実行されるまで待機する割込待ち処理を2回実行することで、一のコマンドを構成する1組のMODE及びEXTが送信するのに要する期間にわたりゲームの制御の進行を待機させるので、制御状態コマンド一括設定処理以外の他の処理としてスイッチ類の操作を検出する処理においても使用される共通の割込待ち処理を複数回実行することで、ゲーム制御の進行を待機させるので待機に係るプログラム容量を削減できる。
また、上記実施形態ではメイン制御部41において分岐用カウンタが更新されたか否かを判定する割込1回待ち処理を実行したが、これに限定されず、例えば、実行される割込処理で実行する処理を識別するために更新される処理識別情報(分岐用カウンタ等)を用いている限りにおいて、サブ制御部91やその他の制御部においても同様の割込1回待ち処理を実行してもよい。
なお、上記実施形態では、メイン制御部41側で制御するナビ報知と、サブ制御部91側で制御するナビ演出の双方にて遊技者にとって有利な操作手順を識別可能となる構成であるが、メイン制御部41側で制御するナビ報知だけで遊技者にとって有利な操作手順を識別可能となる構成としても良いし、サブ制御部91側で制御するナビ演出だけで遊技者にとって有利な操作手順を識別可能となる構成としても良い。
なお、上記実施形態では、遊技者にとって有利な特典としてのAT等に関する制御をメイン制御部41が行う構成であるが、遊技者にとって有利な特典に関する制御の一部または全部をサブ制御部91が行う構成としても良い。
なお、上記実施形態では、本発明を遊技用価値としてメダル並びにクレジットを用いて賭数が設定されるスロットマシンに適用した例について説明したが、遊技用価値として遊技球を用いて賭数を設定するスロットマシンや、遊技用価値としてクレジットのみを使用して賭数を設定する完全クレジット式のスロットマシンに適用しても良い。
さらに、メダル及び遊技球等の複数種類の遊技用価値のうち何れか1種類のみを用いるものに限定されるものではなく、例えば、メダル及び遊技球等の複数種類の遊技用価値を併用できるものであっても良い。すなわち、メダル及び遊技球等の複数種類の遊技用価値の何れを用いても賭数を設定してゲームを行うことが可能であり、且つ入賞の発生によってメダル及び遊技球等の複数種類の遊技用価値の何れをも払い出し得るスロットマシンを適用しても良い。
また、上記実施形態では遊技機としてスロットマシンを例に説明したが、上記実施形態で開示した構成、特に、割込1回待ち処理の構成を、他の遊技機、例えば、遊技領域に遊技球を発射させることで遊技が行われ、発射された遊技球が遊技領域内に設けられた入賞口に入って入賞が発生することで、賞球として遊技球が払い出されるパチンコ遊技機等に適用しても良い。パチンコ遊技機に適用した場合、乱数更新処理(図13のステップS102参照)において更新される乱数を、例えば、特別図柄および飾り図柄の変動表示の制御のために用いる所定の乱数(表示用乱数)としてもよい。