本発明の実施例を以下に説明する。
本発明が適用されたスロットマシンの実施例を図面を用いて説明すると、図1に示すように、本実施例のスロットマシン1には、外周に複数種の図柄が配列されたリール2L、2C、2R(以下、左リール、中リール、右リールともいう)が水平方向に並設されており、これらリール2L、2C、2Rに配列された図柄のうち連続する3つの図柄がスロットマシン1の前面に設けられた透視窓3から見えるように配置されている。
各リール2L、2C、2Rは、各々対応して設けられたリールモータ34L、34C、34R(図2参照)によって回転されることで、各リール2L、2C、2Rの図柄が透視窓3に連続的に変化しつつ表示されるとともに、各リール2L、2C、2Rの回転を停止させることで、透視窓3に3つの連続する図柄が表示結果として導出表示されるようになっている。
また、本実施例のスロットマシン1には、メダルが投入可能なメダル投入部4、クレジットを用いて賭数を設定する際に操作される1枚BETスイッチ5及びMAXBETスイッチ6、ゲームを開始する際に操作されるスタートスイッチ7、リール2L、2C、2Rの回転を各々停止する際に操作されるストップスイッチ8L、8C、8Rが設けられている。
本実施例のスロットマシン1においてゲームを行う場合には、まず、メダルをメダル投入部4から投入するか、あるいはクレジットを使用して賭数を設定する。クレジットを使用するにはMAXBETスイッチ6、または1枚BETスイッチ5を操作すれば良い。所定数の賭数が設定されると、設定された賭数に応じて入賞ラインL1、L2、L2’、L3、L3’(図1参照)が有効となり、スタートスイッチ7の操作が有効な状態、すなわち、ゲームが開始可能な状態となる。本実施例では賭数として最大賭数である3が設定された時点でゲームが開始可能な状態となる。尚、所定数の賭数とは、少なくとも1以上の賭数であれば良い。
ゲームが開始可能な状態でスタートスイッチ7を操作すると、各リール2L、2C、2Rが回転し、各リール2L、2C、2Rの図柄が連続的に変動する。この状態でいずれかのストップスイッチ8L、8C、8Rを操作すると、対応するリール2L、2C、2Rの回転が停止し、表示結果が導出表示される。
そして全てのリール2L、2C、2Rが停止されることで1ゲームが終了し、賭数に応じて有効化されたいずれかの入賞ラインL1、L2、L2’、L3、L3’上に予め定められた図柄の組合せが各リール2L、2C、2Rの表示結果として停止した場合には入賞が発生し、その入賞に応じて定められた枚数のメダルが遊技者に対して付与され、クレジットに加算される。また、クレジットが上限数(本実施例では50)に達した場合には、メダルが直接メダル払出穴9(図1参照)から払い出されるようになっている。
図2は、スロットマシン1の構成を示すブロック図である。スロットマシン1には、図2に示すように、遊技制御基板40、演出制御基板90、電源基板202が設けられており、遊技制御基板40によって主に遊技状態が制御され、演出制御基板90によって遊技状態に応じた演出が制御され、電源基板202から遊技制御基板40、演出制御基板90ホッパーモータ32の電源が供給される。
電源基板202には、遊技制御基板40が接続されており、外部から供給されたAC100Vの電源に基づいてスロットマシン1を構成する電気部品の駆動に必要な直流電圧が生成され、遊技制御基板40及び遊技制御基板40を介して接続された演出制御基板90に供給されるようになっている。また、電源基板202には、メダル払出穴9よりメダルを払い出すためのホッパーモータ32の駆動により払い出されたメダルを検出する払出センサ33、ホッパーモータ32が接続されている。ホッパーモータ32は、後述するメイン制御部41から出力される制御信号に基づき駆動されるようになっている。
遊技制御基板40には、前述した1枚BETスイッチ5、MAXBETスイッチ6、スタートスイッチ7、ストップスイッチ8L、8C、8R、メダル投入部4から投入されたメダルを検出する投入メダルセンサ31、リール2L、2C、2Rの基準位置を検出するリールセンサ35等の部品が接続されているとともに、電源基板202を介して払出センサ33が接続されており、これら接続されたスイッチ、センサの検出信号が入力されるようになっている。
また、遊技制御基板40には、前述したリールモータ34L、34C、34Rやクレジット表示器、ゲーム表示器、ソレノイド等の電気部品(図示略)が接続されており、遊技制御基板40に搭載された後述のメイン制御部41の制御に基づいて駆動されるようになっている。
遊技制御基板40には、所定の手順で演算を行うCPU、CPUの制御プログラムや各種データテーブル等を格納するROM、必要なデータの書き込み及び読み出しを行うRAMを備えるメイン制御部41、遊技制御基板40に接続されたスイッチ、センサから入力された検出信号が入力されるスイッチ回路42、リールモータ34L、34C、34Rの駆動制御を行うモータ回路43、スロットマシン1に供給される電源電圧の低下を検出する電源監視用IC44等、が搭載されており、メイン制御部41は、遊技制御基板40に直接または電源基板202を介して接続されたスイッチ、センサの検出信号を受けて、ゲームの進行に応じた各種の制御を行う。
メイン制御部41は、図5に示すように、割込処理を要求する旨を示す信号を受け付ける割込入力端子(CLK/TRG)を備えており、この割込入力端子からの入力に基づいてメイン制御部41のCPUは割込処理1を遊技の進行に応じて段階的に実行する基本処理に割り込んで実行可能とされている。また、メイン制御部41は、計時を行う内部タイマ(図示略)を備えており、この内部タイマの出力に基づいてメイン制御部41のCPUは割込処理2を基本処理に割り込んで定期的に実行可能とされている。また、メイン制御部41のCPUは、割込処理1を割込処理2よりも優先して実行するよう設定されており、割込処理1と割込処理2が同時に要求された場合には、割込処理1を優先して実行するようになっている。また、割込処理1または割込処理2の実行中においては、他の割込処理が禁止されるようになっている。
メイン制御部41のRAMは、図3に示すように、CPUのワークメモリとして使用されるワーク領域と、停電時においてその時点の遊技状態を特定可能なバックアップデータが記憶されるバックアップ領域1〜3と、これらバックアップ領域に記憶されたデータの正誤を確認するためのパリティ(データ列を足し合わせた総和の最下位bit)や後述の電源断フラグ等が記憶されるパリティ格納領域と、から構成されている。このうちワーク領域は停電時において記憶されているデータが保持されない非バックアップRAM領域とされており、バックアップ領域1〜3並びにパリティ格納領域は、停電時においてもバックアップ電源により付勢されることで記憶されているデータが保持されるバックアップRAM領域とされている。
演出制御基板90には、スロットマシン1の前面に配置された液晶表示器51(図1参照)、演出効果LED52、スピーカ53、54、リールランプ55等の電気部品が接続されており、これら電気部品は、演出制御基板90に搭載された後述のサブ制御部91による制御に基づいて駆動されるようになっている。
演出制御基板90には、メイン制御部41と同様のCPU、ROM、RAMを備えるサブ制御部91、演出制御基板90に接続された液晶表示器51の駆動制御を行う液晶駆動回路92、演出効果LED52の駆動制御を行うランプ駆動回路93、スピーカ53、54からの音声出力制御を行う音声出力回路94、サブ制御部91の制御状態を特定可能なバックアップデータが記憶されるとともに停電時においてもバックアップ電源により付勢されることで記憶されているデータが保持されるバックアップ用RAM95等、が搭載されており、サブ制御部91は、遊技制御基板40に搭載されたメイン制御部41から送信されたコマンドを受けて演出を行うための各種の制御を行う。
サブ制御部91は、メイン制御部41と同様に割込入力端子(図示略)及び内部タイマ(図示略)を備えており、サブ制御部91のCPUは割込入力端子からの入力に基づく割込処理1を基本処理に割り込んで実行可能とされ、内部タイマの出力に基づいて割込処理2を基本処理に割り込んで定期的に実行可能とされている。また、サブ制御部91のCPUにおいても、割込処理1を割込処理2よりも優先して実行するよう設定されており、割込処理1と割込処理2が同時に要求された場合には、割込処理1を優先して実行するようになっている。また、メイン制御部41と異なり、割込処理1の実行中は割込処理2の割込が禁止されるようになっているのに対して、割込処理2の実行中においては、割込処理1の割込が可能とされている。
バックアップ用RAM95は、メイン制御部41のRAMのバックアップ領域と同様にバックアップデータが記憶されるバックアップ領域1〜3と、これらバックアップ領域に記憶されたバックアップデータの正誤を確認するためのパリティが記憶されるパリティ格納領域と、から構成されている。
図4は、電源基板202の構成を説明するための回路図であり、図5は、遊技制御基板40におけるメイン制御部41への電源まわりの構成を説明するための回路図であり、図6は、演出制御基板90におけるサブ制御部91への電源まわりの構成を説明するための回路図である。
電源基板202には、図4に示すように、整流回路302、トランス304、電圧生成回路303、305〜308が搭載されている。整流回路302は、外部から供給されたAC100Vの交流電圧を直流電圧に変換し、トランス304は、整流回路302により変換された直流電圧を内部回路に伝達する。そして電圧生成回路303は、トランス302を介して伝達された直流電圧から+25Vの直流電圧を生成してコネクタ301と電圧生成回路305、306、307、308にそれぞれ出力する。電圧生成回路305、306、307、308は、電圧生成回路303にて生成された+25Vの直流電圧から、+24V、+12V(VCC)、+12V、+5Vの直流電圧を各々生成してコネクタ301に出力する。コネクタ301は遊技制御基板40等に接続され、電圧生成回路305、306、307、308により生成された直流電圧が、遊技制御基板40や演出制御基板90に搭載されたデバイス、遊技制御基板40や演出制御基板90に接続された各種電気部品を駆動するための電源として供給される。すなわち電圧生成回路303により生成された+25Vの直流電圧は、遊技制御基板40や演出制御基板90に搭載された各種デバイス、遊技制御基板40や演出制御基板90に接続された各種電気部品を駆動するための電源の生成源となっている。
電源基板202から供給される直流電圧のうち、+24Vの直流電圧は、ホッパーモータ32の駆動電源として使用される。また、+12Vの直流電圧は、遊技制御基板40に供給され、遊技制御基板40に接続されたLEDや表示器、スイッチ類等の電気部品の駆動電源として使用される。また、+12V(VCC)の直流電圧は、遊技制御基板40を介して演出制御基板90に供給されており、演出制御基板90の各デバイスを駆動させるための元となる電源や、演出制御基板90に接続される液晶表示器51、LED、ランプ、蛍光灯等の電気部品の駆動電源として使用される。また、+5Vの直流電圧は、遊技制御基板40に供給され、メイン制御部41や電源監視用IC44等の遊技制御基板40に搭載されたデバイス(図示略)の駆動電源として使用される。
また、遊技制御基板40における+5Vの直流電圧の供給ラインは、図5に示すように、遊技制御基板40上で分岐して+5V(VBB)の直流電圧の供給ラインを形成する。この+5V(VBB)の直流電圧の供給ラインは、逆流防止用のダイオード312を介してメモリバックアップ電源入力端子VBBに接続されているとともに、図4に示すように、電源基板202側でグラウンドレベルに接続され、その間には大容量のコンデンサ310が設けられている。これにより+5V(VBB)の直流電圧をコンデンサ310に蓄積可能とされ、スロットマシン1に対する電力供給が遮断されたときに、コンデンサ310に蓄積された電圧を、メイン制御部41におけるRAMのバックアップRAM領域の記憶状態を保持するためのバックアップ電源として供給できるようになっている。
また、電源基板202から出力される直流電圧のうち、+25Vの直流電圧、すなわち+24V、+12V(VCC)、+12V、+5Vの直流電圧の生成源となる直流電圧は、遊技制御基板40において、図5に示すように、抵抗311により減圧(本実施例では、約6.6%減圧)されて、電源監視用IC44が備える監視電圧入力端子VSBに入力される。電源監視用IC44は、監視電圧入力端子VSBに入力された電圧が所定の大きさ(本実施例では、+1.2V)以下となったときに、電圧低下信号出力端子RESETから電圧低下信号を出力する構成とされている。この電圧低下信号出力端子RESETは、メイン制御部41の割込入力端子CLK/TRGに接続されており、監視電圧入力端子VSBに入力された電圧が所定の大きさ以下となったときに、電圧低下信号がメイン制御部41の割込入力端子CLK/TRGに入力されるようになっている。すなわち、メイン制御部41は、電源監視用IC44からの電圧低下信号の入力に基づき電源断の発生を検知することができるようになっている。本実施例では、+25Vの直流電圧が約+18V以下となったときに抵抗311により減圧された電圧が+1.2V以下となり、電圧低下信号が出力されるため、メイン制御部41は電圧低下信号の入力に基づいて、+25Vの直流電圧が、+18V以下となったときに電源断の発生を検知することができる。
このように本実施例では、メイン制御部41並びに電源監視用IC44が、電圧生成回路308により生成された+5Vの直流電圧にて駆動されているとともに、電源監視用IC44は、電圧生成回路303により生成された+25Vの直流電圧がこれら各デバイスを駆動させる+5Vよりも高い電圧である+18V以下となったときに、電源断の発生を検知し、電圧低下信号を出力するようになっており、メイン制御部41が電源断の発生を検知した後もしばらくは+5Vの直流電圧がメイン制御部41等のデバイスに対して供給されるため、電圧低下信号の入力に基づきメイン制御部41が後述の電源断割込処理を行うのに必要な時間を十分に確保することができるようになっている。
また、本実施例では、電源監視用IC44が、電圧生成回路303にて生成された+25Vの直流電圧の降下を監視するとともに、ホッパーモータ32、遊技制御基板40が搭載する各種デバイス、遊技制御基板40に接続された電気部品、演出制御基板90が搭載する各種デバイス、演出制御基板90に接続された電気部品を駆動するための電源電圧が、電源監視用IC44が監視する+25Vの直流電圧を生成する電圧生成回路303とは別個に設けられた電圧生成回路305、306、307、308にて生成されるようになっており、これら電気部品の駆動状況により下降し易い電源電圧に比較して安定した電圧が電源監視用IC44により監視されるので、一時的な電圧降下に伴って電源断の発生が判別され、後述の電源断割込処理が行われてしまう等の誤動作を防止できる。
また、図4に示すように、電源基板202において電圧生成回路306に入力される+25Vの直流電圧のラインにはコンデンサ309が設けられており、+25Vの直流電圧から電圧生成回路306に供給される電圧を蓄積可能とされ、スロットマシン1に対する電力供給が遮断されて電圧生成回路303からの電圧の供給が途切れたときでも、一定時間、電圧生成回路306に対して+12V(VCC)を生成するのに必要な電圧が供給されるようになっている。このため、電圧生成回路306は、停電時において電圧生成回路303からの電圧の供給が途切れたときでも一定時間の間、演出制御基板90に搭載されたサブ制御部91等のデバイスの電源の元となる+12V(VCC)の直流電圧の供給を維持できるようになっており、演出制御基板90に搭載されたデバイスは、停電時において遊技制御基板40に搭載されたデバイスよりも長い時間駆動させることができるようになっている。尚、本実施例では、コンデンサ309として停電時において電源監視用IC44が電圧低下信号を出力した時点、すなわち+25Vの直流電圧が+18V以下となった時点から、最低でも20ms以上の時間にわたりサブ制御部91の駆動を維持することが可能な容量のコンデンサが用いられている。
また、演出制御基板90には、図6に示すように、電源基板202から遊技制御基板40を介して供給された+12V(VCC)の直流電圧から+5V(VCC)を生成する電圧生成回路313が設けられており、電圧生成回路313により生成された+5V(VCC)の直流電圧は、サブ制御部91やバックアップ用RAM95等、演出制御基板90が搭載する各種デバイスに供給され、これらデバイスの駆動電源として使用される。
また、+5V(VCC)の直流電圧のバックアップRAM95への供給ラインは、図6に示すように、逆流防止用のダイオード314を介してバックアップRAM95の電源入力端子VCCに接続されるとともに、グラウンドレベルに接続され、その間には大容量のコンデンサ315が設けられている。これにより+5V(VCC)の直流電圧をコンデンサ315に蓄積可能とされ、スロットマシン1に対する電力供給が遮断されたときに、コンデンサ315に蓄積された電圧を、バックアップ用RAM95の記憶状態を保持するためのバックアップ電源として供給できるようになっている。
次に、本実施例における遊技制御基板40に搭載されたメイン制御部41が実行する各種制御内容を、図7〜図10、図14、図15、図17のフローチャートに基づいて以下に説明する。
図7に示すように、電源が投入されると、まず、停電からの復旧時であったか否かを確認する(Sa1)。停電からの復旧時であったか否かは、電源断時に設定される電源断フラグによって確認される。
停電からの復旧時であった場合には、メイン制御部41のRAMにおけるバックアップRAM領域のデータチェック(本実施例ではパリティチェック)を行う(Sa2、Sa3)。詳しくは、バックアップ領域のパリティを生成し、パリティ格納領域に格納されているパリティと一致するか否かによってバックアップ領域のバックアップデータが正常か否かを判断する。
チェック結果が正常であれば、RAMにおけるバックアップ領域1〜3のバックアップデータを比較して、少なくとも2つのバックアップデータが一致するか否かにより正しいデータがバックアップされているかを確認する(Sa4、Sa5)。
比較結果が正常であれば、RAMにおけるバックアップ領域のバックアップデータから遊技状態の復帰に必要な特定のレジスタを復帰させるとともに(Sa6)、電源断フラグをクリアする(Sa7)。そして、割込禁止を解除し(Sa8)、電源断前のルーチンに戻る。すなわち電源断時の遊技状態に復帰する。
また、データチェックの結果並びにバックアップデータの比較結果が正常でない場合には、遊技状態を電源断時の状態に戻すことができないので、ゲーム表示器(図示略)にエラーコードを表示させることで遊技状態を電源断前の状態に復帰できない旨を外部に報知するとともに(Sa9)、遊技状態の初期化を行うメイン初期化処理を実行し(Sa10)、遊技状態を初期化する。尚、Sa1において停電復旧時でないと確認された場合、すなわち電源断フラグがセットされていない場合にも、メイン初期化処理を実行する(Sa10)。
メイン初期化処理が終了すると、割込禁止を解除し(Sa11)、ゲーム制御処理(Sa12)を繰り返し実行するループ処理に移行する。
次いで、Sa10において実施されるメイン初期化処理について説明すると、図8に示すように、RAMをクリアする処理(Sb1)を行った後、必要な初期値の設定処理(Sb2)を行い、演出状態の初期化を指示する旨の初期化コマンドを後述するコマンド格納処理によりコマンドキューにセットする(Sb3)。尚、ここでコマンドキューに格納された初期化コマンドは、割込禁止の解除に伴い実行される後述のメインタイマ割込処理にてサブ制御部91に送信され、これに基づきサブ制御部91が制御する演出状態も初期化されることとなる。
図9に示すように、ゲーム制御処理では、BET処理(Sc1)、内部抽選処理(Sc2)、リール回転処理(Sc3)、リール停止処理(Sc4)、入賞判定処理(Sc5)、払出処理(Sc6)、遊技状態更新処理(Sc7)の各処理を遊技の進行に応じて段階的に実行する。
Sc1のステップにおけるBET処理では、メダルやクレジットを受付可能な状態で待機し、メダルやクレジットの受付に応じて賭数を設定し、スタートスイッチ7の操作が検出された時点で賭数を確定する処理を実行する。また、前回のゲームでリプレイ入賞が発生した場合には、前回のゲームと同じ賭数を設定する。
Sc2のステップにおける内部抽選処理では、Sc1のステップにおけるスタートスイッチ7の検出によるゲームスタートに伴い取得した乱数値と各入賞の当選確率を定めた内部当選確率テーブルとの比較結果に基づいて入賞の発生を許容するか否かを決定し、その結果に応じて内部当選フラグを設定する処理を実行する。
Sc3のステップにおけるリール回転処理では、各リール2L、2C、2Rを回転させる処理を実行する。このリール回転処理においては、全てのリール2L、2C、2Rが定速回転した時点でストップスイッチ8L、8C、8Rの操作を有効とする。
Sc4のステップにおけるリール停止処理では、遊技者によるストップスイッチ8L、8C、8Rの操作が検出されるか、リール2L、2C、2Rが定速回転した時点から遊技者によるストップスイッチ8L、8C、8Rの操作が検出されることなく自動停止時間が経過したこと、すなわち各リール2L、2C、2Rの停止条件が成立したことに応じて対応するリール2L、2C、2Rの回転を停止させる処理を実行する。
Sc5のステップにおける入賞判定処理では、Sc4のステップにおいて全てのリール2L、2C、2Rの回転が停止されたと判定した時点で、各リール2L、2C、2Rに導出された表示結果に応じて入賞が発生したか否かを判定する処理を実行する。
Sc6のステップにおける払出処理では、Sc5のステップにおいて入賞の発生が判定された場合に、その入賞に応じた払出枚数に基づきクレジットの加算並びにメダルの払出等の処理を行う。
Sc7のステップにおける遊技状態更新処理では、Sc2のステップにおいて当選した内部当選フラグのクリアまたは持越を行うフラグ更新処理、通常遊技状態からBB・RB、BB・RBから通常遊技状態への移行処理、等を行う。
次に、メイン制御部41が内部タイマからの出力に基づき前述した割込処理2として基本処理(本実施例ではゲーム制御処理)に割り込んで定期的(本実施例では0.56ms毎)に実行するメインタイマ割込処理の制御内容を、図10のフローチャートに基づいて以下に説明していく。
メインタイマ割込処理においては、まず、割込禁止を設定する(Sd1)。すなわち、メインタイマ割込処理の開始にともなってその他の割込処理の実行を禁止する。そして、レジスタを退避し(Sd2)、メインタイマ割込処理の終了後に、割込前の処理状態に復帰できるようにする。
次いで、4種類のタイマ割込1〜4から当該メインタイマ割込処理において実行すべきタイマ割込を識別するための分岐用カウンタを1進める(Sd3)。Sd3のステップでは、分岐用カウンタ値が0〜2の場合に1が加算され、カウンタ値が3の場合に0に更新される。すなわち分岐用カウンタ値は、メインタイマ割込処理が実行される毎に、0→1→2→3→0・・・の順番でループする。
次いで、各種センサやスイッチから入力された信号を監視するセンサー/スイッチ監視処理(Sd4)、メイン制御部41の内部に設けられた乱数カウンタの乱数値を更新する乱数更新処理(Sd5)を実行する。
次いで、分岐用カウンタ値を参照して0かを判定し(Sd6)、分岐用カウンタ値が0、すなわちタイマ割込1である場合には、後述するコマンド送信処理と(Sd7)、時間を計数するための各種時間カウンタの値を更新するカウンタ更新処理を実行し(Sd8)、Sd14に移行する。
Sd6において、分岐用カウンタ値が0でない場合には、分岐用カウンタ値が1かを判定し(Sd9)、分岐用カウンタ値が1、すなわちタイマ割込2である場合には、外部出力信号をパルス出力する信号送信処理を実行し(Sd10)、Sd13に移行する。
Sd9において、分岐用カウンタ値が1でない場合には、分岐用カウンタ値が2かを判定し(Sd11)、分岐用カウンタ値が2、すなわちタイマ割込3である場合には、LED等をダイナミック表示させるためのLED等出力処理を実行し(Sd12)、Sd13に移行する。
分岐用カウンタ値が0、1、2でない場合、すなわち分岐用カウンタ値が3であり当該メインタイマ割込処理がタイマ割込4と確定した場合、及び、タイマ割込2に固有な処理(Sd9、Sd10)やタイマ割込3に固有な処理(Sd11、Sd12)の実行後には、リールモータ34L、34C、34Rの回転や停止に関わる制御を行うためのリールモータ制御処理を実行し(Sd13)、Sd14に移行する。
タイマ割込1〜4に分類された各種処理(Sd6〜Sd13)の実行後には、タイマ割込1〜4に共通な処理(Sd14〜Sd18)として、まず、リールモータ34L、34C、34Rの停止カウンタの更新や位相信号の出力を行う停止カウンタ更新処理(Sd14)、LED等を制御するための制御信号を出力するLED等制御信号出力処理(Sd15)を実行し、投入メダルセンサ31の検出状況に基づいて投入されたメダルの通過時間を計時するためのメダル通過時間タイマを更新する(Sd16)。
次いで、Sd3において退避したレジスタを復帰し(Sd17)、Sd2において割込禁止状態とされたメイン制御部41の割込禁止を解除し(Sd18)、割込前のルーチンに戻る。すなわち割込時の遊技状態に復帰する。
本実施例では、上述のようなメインタイマ割込処理が0.56msの間隔で行われることにより、図11に示すように、タイマ割込1〜4に固有な処理が2.24msの間隔で行われるようになっている。特に本実施例では、コマンド送信処理が行われるタイマ割込1の間隔として、サブ制御部91側でコマンドを確実に受信し、受信したコマンドをバッファした後、新たなコマンドを検出してこのコマンドを確実にバッファするのに必要な時間を十分に確保できる時間(2.24ms)が設定されている。更に、後に詳述するが、サブ制御部91では、1.12ms毎にサブタイマ割込処理が実行され、その中でバックアップが行われるようになっているため、メイン制御部41からサブ制御部91に対して連続してコマンドを送信する場合でも、サブ制御部91がコマンドを確実に受信し、かつ受信したコマンドをバックアップするための時間を確保することができるようになっている。
尚、本実施例では、タイマ割込処理が行われた毎に分岐用カウンタ値が更新されるとともに、この分岐用カウンタ値に対応するタイマ割込1〜4の処理が行われる、すなわちタイマ割込1〜4がタイマ割込処理の回数に応じて順番に行われるようになっており、タイマ割込1〜4がそれぞれ同一の間隔(2.24ms)で行われるようになっているが、例えば、これらタイマ割込1〜4をその実行頻度に応じて定められた異なる間隔で行うようにしても良い。
図12は、遊技制御基板40に搭載されたメイン制御部41から演出制御基板90のサブ制御部91に対して送信されるコマンドの一例を示す図である。
演出制御基板90のサブ制御部91に対して送信されるコマンドのうち、BETコマンドは、メダルの投入枚数、すなわち賭数の設定に使用されたメダル枚数を特定可能なコマンドであり、メダル投入時、1枚BETスイッチ5またはMAXBETスイッチ6が操作されて賭数が設定されたときに送信される。
内部当選コマンドは、内部当選フラグの当選状況、並びに成立した内部当選フラグの種類を特定可能なコマンドであり、ゲームが開始されたとき、すなわちスタートスイッチ7が操作されたときに送信される。
リール回転開始コマンドは、リールの回転の開始を通知するコマンドであり、各リールの回転が開始されたときに送信される。
リール停止コマンドは、停止するリールが左リール、中リール、右リールのいずれかであるか、該当するリールに停止する図柄、を特定可能なコマンドであり、各リールの停止操作が検出される毎に送信される。
入賞判定コマンドは、入賞の有無、並びに入賞の種類、入賞時の払出枚数、を特定可能なコマンドであり、全リールが停止して入賞判定が行われた後に送信される。
払出開始コマンドは、入賞等によるメダルの払出開始を通知するコマンドであり、払出が開始されたときに送信される。また、払出終了コマンドは、メダルの払出終了を通知するコマンドであり、払出が終了したときに送信される。
遊技状態コマンドは、次ゲームの遊技状態(通常ゲームであるか、BB中であるか等)を特定可能なコマンドであり、ゲームの終了時に送信される。
初期化コマンドは、遊技状態が初期化された旨を示すコマンドであり、遊技状態が初期化されたときに送信される。
これら各コマンドのうち初期化コマンドを除くコマンドは、前述したゲーム制御処理においてゲームの進行に応じて生成された後、メイン制御部41のRAMに設けられたコマンドキューに一時格納され、前述したタイマ割込1のコマンド送信処理において演出制御部91に対して送信される。尚、初期化コマンドは、前述した初期化処理においてコマンドキューに一時格納され、その後割込禁止が解除されて最初に実行されるタイマ割込1のコマンド送信処理において演出制御基板90に対して送信される。
図13は、前述したコマンドキューの構成を示す図である。コマンドキューには、最大で16個のコマンドを格納可能な領域が設けられており、複数のコマンドを蓄積できるようになっている。また、各コマンドを格納する領域には、領域の識別番号として領域の通し番号を示す数値(0〜15)が対応付けて設定される。さらに、コマンドキューには、次に送信すべきコマンドが格納されている領域の通し番号を示す送信ポインタと次にコマンドを格納すべき領域の通し番号を示す格納ポインタが設定されている。送信ポインタは、コマンドキューに格納された未送信のコマンドが送信される毎に1加算され、格納ポインタは、コマンドを格納する際に1加算されるようになっており、未送信のコマンドが全て送信されたとき及び未送信のコマンドでコマンドキューの全ての領域が満タンとなったときに送信ポインタが示す通し番号と格納ポインタの通し番号とが同一の番号となる。尚、未送信のコマンドが格納されている場合には、未送信フラグがセットされるため、送信ポインタが示す通し番号と格納ポインタの通し番号とが同一の番号の場合に、未送信フラグがセットされていれば、コマンドキューが未送信のコマンドで満タンである旨が示され、未送信フラグがセットされていなければ未送信のコマンドが空である旨が示されるようになっている。
図14は、メイン制御部41のゲーム制御処理においてコマンドを生成して、コマンドキューに格納する際に実行するコマンド格納処理の制御内容を示すフローチャートである。
尚、メイン制御部41から送信されるコマンドは、2バイトで構成され、1バイト目はMODE(コマンドの分類)を表し、2バイト目はEXT(コマンドの内容)を表す。また、本実施例で示すコマンドの形態は一例であって他のデータ形態を用いても良い。また、本実施例では、コマンドを2バイトの信号で構成しているが、これらコマンドを1バイトの信号または3バイト以上の信号で構成しても良い。
コマンド格納処理では、まず、送信すべきコマンドを構成するMODEとEXTを生成する(Se1)。
次いで、生成したコマンドを格納ポインタが示す通し番号の領域、すなわちコマンドキューの空き領域に格納した後(Se2)、格納ポインタが示す通し番号に1を加算する(Se3)。尚、通し番号は0〜15の範囲の数値なので、格納ポインタが示す通し番号が15の場合に1を加算して16となったときには0に更新する。
次いで、未送信フラグがセットされているか否かを確認し(Se4)、未送信フラグがセットされていなければ未送信フラグをセットする(Se5)。
次いで、格納ポインタが示す通し番号が送信ポインタが示す通し番号と一致したか否か、すなわち未送信のコマンドでコマンドキューの全ての領域が満タンとなったか否かを確認し、一致している場合には、コマンドキューに格納されている未送信のコマンドが送信されて格納ポインタが示す通し番号と送信ポインタが示す通し番号とが一致しなくなるまで待機し、格納ポインタが示す通し番号と送信ポインタが示す通し番号とが一致しなくなった時点、すなわちコマンドキューに空きができた時点でコマンド格納処理を終了する(Se4)。
図15は、メイン制御部41が前述したメインタイマ割込処理のタイマ割込1内において実行するコマンド送信処理の制御内容を示すフローチャートである。
コマンド送信処理では、まず、コマンドの送信遅延時間を設定するための遅延カウンタが0より大きいか否か、すなわちコマンドキューに格納されたコマンドの送信待ちの状態であるか否かを判定する(Sf1)。
Sf1において、送信待ちの状態でない場合には、コマンドキューに未送信のコマンドが格納されている旨を示す前述の未送信フラグがセットされているか否かを判定する(Sf2)。
Sf2において未送信フラグがセットされていない場合には、送信すべきコマンドが格納されていないので、処理を終了する。
また、Sf2において未送信フラグがセットされている場合、すなわちコマンドキューに未送信のコマンドが格納されている場合には、乱数カウンタから0〜15の範囲でランダムに発生する乱数値を取得し(Sf3)、取得した乱数値に2を加算して2〜17の値に補正し、遅延カウンタに設定する(Sf4)。
次いで、遅延カウンタ値を1減算し(Sf5)、遅延カウンタ値が0より大きいか否か、すなわちコマンドキューの送信ポインタ値が示す領域に格納されたコマンドの送信遅延時間が経過したか否か、を判定し(Sf6)、遅延カウンタ値が0より大きい場合、すなわち送信遅延時間が経過していない場合には、処理を終了する。
また、Sf6のステップにおいて遅延カウンタ値が0の場合、すなわち送信遅延時間が経過した場合には、コマンドキューの送信ポインタ値が示す領域に格納されたコマンドをサブ制御部91に対して送信する(Sf7〜Sf10)。詳しくは、まず、コマンドキューの送信ポインタ値が示す領域に格納されたコマンドを構成するMODEを出力し(Sf7)、コマンドを出力した旨をサブ制御部91に通知するためのストローブ信号を所定時間(本実施例では、10μs)出力する(Sf8)。そして、送信ポインタ値が示す領域に格納されたコマンドを構成するEXTを出力し(Sf9)、再度ストローブ信号を所定時間出力する(Sf10)。
次いで、送信ポインタが示す通し番号に1を加算する(Sf11)。尚、通し番号は0〜15の範囲の数値なので、送信ポインタが示す通し番号が15の場合に1を加算して16となったときには0に更新する。
次いで、送信ポインタが示す通し番号が格納ポインタが示す通し番号と一致したか否か、すなわちコマンドキューに送信すべきコマンドが格納されているか否かを確認し(Sf12)、一致している場合には、未送信フラグをクリアして処理を終了する(Sf13)。
また、Sf1において遅延カウンタ値が0より大きい、すなわち送信待ちの状態であると判定した場合には、Sf5に移行し、送信遅延時間が経過した場合にはコマンドキューの送信ポインタ値が示す領域に格納されたコマンドを送信するとともに、未送信のコマンドが空になった場合には未送信フラグをクリアする等の処理を行い、処理を終了する(Sf5〜Sf13)。
図16(a)(b)は、本実施例におけるコマンドの送信状況の一例を示すタイミングチャートである。
本実施例では、図16(a)に示すように、ゲーム制御処理中のコマンド格納処理においてコマンドが生成され、コマンドキューに格納されるとともに、メインタイマ割込処理のタイマ割込1内のコマンド送信処理においてコマンドキューに格納された未送信のコマンドが検知されると、遅延時間が設定され、設定した遅延時間が経過した時点で、コマンドキューに格納された未送信のコマンドが送信される。
具体的には、コマンド送信処理においてコマンドキューに格納された未送信のコマンドを検知すると、0〜15の範囲に設定された遅延用乱数値を取得し、取得した値を補正した2〜17の範囲の値(L)を遅延カウンタに設定する。
この際、当該遅延カウンタ値(L)を設定したコマンド送信処理及びその後のタイマ割込1内において実行するコマンド送信処理において遅延カウンタ値を1ずつ減算していき、遅延カウンタ値が0となった時点で、コマンドキューに格納されているコマンドを送信する。
すなわち、コマンド送信処理において検知されたコマンドは、コマンド送信処理の実行間隔(2.24ms)の倍数に相当する時間、詳しくはその際取得した遅延カウンタの値(L)から1を減算した値(L−1)にコマンド送信処理の実行間隔(2.24ms)を乗じた時間{(L)は2〜17の値なので2.24〜35.84ms}が経過した後、送信されることとなる。
また、本実施例では、コマンドキューに複数のコマンドを格納可能な領域が設けられており、コマンドキューに格納されたコマンドの送信を待たずに、新たにゲーム制御処理において生成したコマンドをコマンドキューの空き領域に格納することが可能とされている。すなわち複数のコマンドを蓄積できるようになっている。このため、コマンドの送信が遅延されることに伴ってゲーム制御処理の進行が停止してしまうことを回避できる。尚、コマンドキューが未送信のコマンドで満タンの場合はこの限りでない。
また、コマンド格納処理では、コマンドキューに複数のコマンドを格納する際にこれらコマンドをその生成順に格納するとともに、コマンド送信処理ではコマンドキューに格納された順番でコマンドを送信するようになっている。すなわちコマンドキューに格納されたコマンドは、常に生成された順番で送信されるようになっている。
また、コマンドキューに未送信のコマンドが複数格納されている場合には、最初に生成されたコマンドを送信した後、次に実行するコマンド送信処理において改めてコマンドキューに未送信のコマンドが格納されているかを判定し、コマンドが格納されている場合には、その時点でそのコマンドの遅延時間(遅延カウンタ値)を設定し、その遅延時間が経過した時点で送信する。このため、複数のコマンドがコマンドキューに格納されている場合には、各々の送信間隔が最短(遅延カウンタの値として2が決定された場合)でも、図16(a)に示すように、4.48ms(2.24×2ms)の間隔をあけて送信されることとなる。言い換えれば、コマンドの送信後、4.48msが経過するまでは新たなコマンドの送信が禁止されるようになっている。
本実施例のスロットマシン1では、リール2L、2C、2Rに配列された図柄数が21個とされているとともに、回転速度が750msで1回転(1分間で80回転)するように構成されており、各メインリールが1図柄移動するのに要する時間は35.7ms(=750/21ms)となる。
また、サブ制御部91により目押しの補助となるような演出が行われてしまうことを防止するためには、メイン制御部41からサブ制御部91に各種コマンドを送信するときに、遅延時間の最大値としてリール2L、2C、2Rが1図柄移動するのに要する時間以上の時間を設定する必要がある。すなわち本実施例では、遅延時間の最大値として35.7ms以上の時間を設定する必要がある。
一方、サブ制御部91による演出と、メイン制御部41による制御とのズレが大きくなって違和感が生じるのを防止するためには、コマンド送信処理における遅延時間の最大値をできるだけ短くすることが好ましい。すなわち本実施例の場合には、遅延時間の最大値が35.7ms以上の値で、かつ35.7msに可能な限り近い値に設定されることが好ましい。また、本実施例では、前述したようにコマンド送信処理における遅延時間がコマンド送信処理の実行間隔(2.24ms)の倍数に相当する時間のみ設定可能とされており、これら2.24msの倍数で35.7ms以上の値のうち最小の値は、2.24ms×16=35.84msとなることから、本実施例のスロットマシン1において最適な遅延時間の最大値は35.84msとなる。
このため、遅延カウンタの値(L)の上限値として17を設定すれば良く、このようにすれば遅延時間の最大値を、本実施例において目押しの補助となるような演出を防止するために最低限必要な遅延時間の最大値以上の値のうち最小の値とすることができる。
また、本実施例では、図16(b)に示すように、未送信のコマンドが検知された際に設定された遅延時間{2.24×(La−1)ms}が経過する前に停電が発生し、後述する電源断割込処理が実行された場合には、当該電源断割込処理においてコマンドキューに格納されたコマンド及び格納されている領域の通し番号、送信ポインタ及び格納ポインタの値、未送信フラグがバックアップされるのに対して、遅延カウンタの値、すなわち遅延時間のバックアップは行わないようになっている。そして、電源断が復旧して割込禁止が解除された後、最初に実行されるタイマ割込処理1のコマンド送信処理において電源断前に未送信のコマンドが残っている場合には、遅延カウンタの値を再度設定し、ここで設定された遅延カウンタの値が0となった時点で、未送信のコマンドを送信する。すなわち電源断の復旧後に再設定した遅延時間{2.24×(Lb−1)ms}が経過することで未送信のコマンドを送信するようになっている。
図17は、メイン制御部41が電源監視用IC44からの電圧低下信号の検出に基づいて割込処理1として基本処理(本実施例ではゲーム制御処理)に割り込んで実行する電源断割込処理を示すフローチャートである。
電源断割込処理においては、まず、割込禁止に設定する(Sg1)。すなわち、電源断割込処理の開始にともなってその他の割込処理の実行を禁止する。
次いで、電源断フラグが既にセットされているか否かを確認する(Sg2)。電源断フラグが既にセットされていれば、メイン制御部41のRAMをアクセス禁止状態にし(Sg3)、何らの処理も行わないループ処理に入る。このように電源断フラグが既にセットされている場合に以後の処理を行わないことにより、電源投入後、電源断フラグがクリアされる以前、すなわち遊技状態の復帰が完了する以前に停電が発生し、バックアップデータが上書きされてしまう等の不都合を回避できる。
Sg2において、電源断フラグがセットされていなければ、以下の処理を実行する。
まず、全ての出力ポートを閉じる(Sg4)。そして、停電復旧後に停電前の遊技状態に復帰するのに必要な特定のレジスタの内容、例えば、遊技状態を示す遊技状態フラグや抽選結果を示す内部当選フラグ等のデータ、特に、コマンドの送信に関連して前述したコマンドキューに格納されたコマンド及び格納されている領域の通し番号、送信ポインタ及び格納ポインタの値、未送信フラグをバックアップデータとしてメイン制御部41のRAMのバックアップ領域1〜3に格納する(Sg5〜Sg7)。この際、RAMにおけるバックアップ領域1〜3には、同一のバックアップデータが格納される。更に、RAMにおけるバックアップRAM領域全体のデータに基づいてパリティを生成し(Sg8)、生成したパリティをパリティ格納領域に格納する(Sg9)。その後、電源断フラグをパリティ格納領域にセットする(Sg10)。この電源断フラグは、前述したように、電源投入時において停電からの復旧か否かを判断する際に使用される。次いで、RAMをアクセス禁止状態にし(Sg11)、何らの処理も行わないループ処理に入る。すなわち、内部的に動作停止状態になる。よって、電源断時に確実にメイン制御部41は動作停止する。尚、本実施例の電源断割込処理では最終部でプログラムをループ状態にしたが、ホールト(HALT)命令を発行するように構成しても良い。
次に、本実施例における演出制御基板90に搭載されたサブ制御部91が実行する各種制御内容を、図18〜図21のフローチャートに基づいて以下に説明していく。
図18に示すように、電源が投入されると、まず、バックアップデータが記憶されているか否かを確認する(Sh1)。バックアップデータが記憶されているか否かは、バックアップ用RAM95にデータが記憶されているか否かによって確認される。
バックアップデータが記憶されている場合には、バックアップ用RAM95のデータチェック(本実施例ではメイン制御部41と同じパリティチェック)を行う(Sh2、Sh3)。
チェック結果が正常であれば、バックアップ用RAM95におけるバックアップ領域1〜3のバックアップデータを比較して、少なくとも2つのバックアップデータが一致するか否かにより正しいデータがバックアップされているかを確認する(Sh4、Sh5)。
比較結果が正常であれば、バックアップ用RAM95におけるバックアップデータから全レジスタを復帰するとともに(Sh6)、割込禁止を解除する(Sh8)すなわち電源断時の演出状態に復帰する。
また、データチェックの結果並びにバックアップデータの比較結果が正常でない場合には、演出状態を電源断時の状態に戻すことができないので、演出状態の初期化を行うサブ初期化処理を実行し(Sh7)、割込禁止を解除して(Sh8)。割込待ちの状態でループする。尚、Sh1においてサブバックアップデータが記憶されていないと確認された場合にも、Sf7に移行し、サブ初期化処理を実行する。
サブ初期化処理では、サブ制御部91のレジスタ及びRAMをクリアする処理、必要な初期値の設定処理、演出制御基板90が制御する各種ランプや表示器、スピーカ等の演出用周辺機器の出力状態を初期状態とする処理、を行う。すなわち、サブ制御部91のレジスタやRAMの初期化に伴って演出用周辺機器の出力状態も初期化されることとなる。
図19は、サブ制御部91が、メイン制御部41から出力されたストローブ信号の検出に基づき割込処理1として他の処理に割り込んで実行するコマンド受信割込処理の制御内容を示すフローチャートである。尚、ストローブ信号は、コマンド送信時にサブ制御部91の割込入力端子に入力される信号である。
コマンド受信割込処理においては、まず、割込禁止に設定する(Si1)。そして、レジスタを退避して(Si2)、コマンド受信割込処理の終了後に、割込前の処理状態に復帰できるようにする。
次いで、メイン制御部41から出力されるMODEを取得するとともに(Si3)、再度ストローブ信号が検出されるまで待機して(Si4)、再度ストローブ信号を検出するとメイン制御部41から出力されるEXTを取得する(Si5)。そして、MODEとEXTから構成されるコマンドをサブ制御部91のRAMに設けられたバッファに格納する(Si6)。
次いで、Si2において退避したレジスタを復帰し(Si7)、割込禁止を解除し(Si8)、割込前の処理状態に戻る。
次に、サブ制御部91が内部タイマからの出力に基づき定期的(本実施例では1.12ms毎)に実行する割込処理2としてのサブタイマ割込処理の制御内容を、図20のフローチャートに基づいて以下に説明していく。
サブタイマ割込処理においては、まず、レジスタを退避して(Sj1)、サブタイマ割込処理の終了後に、割込前の処理状態に復帰できるようにする。
次いで、サブ制御部91のRAMに設けられたバッファにコマンドが格納されているか否かを確認する(Sj2)。格納されていれば、バッファからコマンドを取得し(Sj3)、取得したコマンドが初期化コマンドであるか否かを判定する(Sj4)。そして取得したコマンドが初期化コマンドであれば、前述したサブ初期化処理を実行し(Sj5)、Sj2において退避したレジスタを復帰した後(Sj10)、割込前の処理状態に戻る。
また、Sj4において、取得したコマンドが初期化コマンドでないと判定された場合には、コマンドの内容に応じた演出用周辺機器の制御内容を設定する演出設定処理と(Sj6)、設定された制御内容に従って演出用周辺機器を制御する演出制御処理を行うことにより(Sj7)、コマンドに応じた演出状態に制御するとともに、各種カウンタを更新するカウンタ更新処理を行う(Sj8)。
次いで、サブ制御部91のRAMの内容、すなわち演出状態のバックアップを行うためのサブバックアップ処理を行い(Sj9)、Sj2において退避したレジスタを復帰した後(Sj10)、割込前の処理状態に戻る。
図21は、サブ制御部91がサブタイマ割込処理内で実行するサブバックアップ処理の制御内容を示すフローチャートである。
サブバックアップ処理においては、まず、サブ制御部91のRAMの内容をバックアップデータとしてバックアップ用RAM95のバックアップ領域1〜3に格納する(Sk1〜Sk3)。この際、バックアップ用RAM95のバックアップ領域1〜3には、同一のバックアップデータが格納される。これにより演出状態のバックアップをより確実に行うことが可能となる。更に、バックアップ用RAM95におけるバックアップRAM領域全体のデータに基づいてパリティを生成し(Sk4)、生成したパリティをパリティ格納領域に格納し(Sk5)、サブバックアップ処理を終了する。尚、本実施例では、サブ制御部91のバックアップデータとして、サブ制御部91のRAMの内容を記憶するようになっているが、メイン制御部41と同様に、停電復旧後に停電前の状態に復帰するのに必要な特定のレジスタの内容のみをバックアップデータとして記憶するようにしても良い。
次に停電時におけるメイン制御部41及びサブ制御部91の動作状況を図22のタイミングチャートに基づいて説明する。
まず、電源監視用IC44は、+25Vの直流電圧(以下電源監視用電圧と称す)が+18V以下となったとき(t1)に電圧低下信号(on)をメイン制御部41に対して出力する。メイン制御部41が電圧低下信号を検出した際にゲーム制御処理の実行中であればゲーム制御処理に割り込んで電源断割込処理を実行する。また、メイン制御部41がタイマ割込処理の要求と同時に電圧低下信号を検出した場合にはメインタイマ割込処理よりも電源断割込処理を優先して電源断割込処理を実行する。また、メイン制御部41がメインタイマ割込処理の実行中に電圧低下信号を検出した場合には実行中のメインタイマ割込処理が終了した時点で電源断割込処理を実行する(t2)。尚、本実施例では、メインタイマ割込処理に要する最大時間と電源断割込処理に要する最大時間の合計よりも、電源監視用電圧が電圧低下信号が出力される+18Vとなってからメイン制御部41を駆動させることが可能な電圧(+7V)(t3)まで降下する時間の方が長いので、停電時にメイン制御部41がメインタイマ割込処理の実行中であっても電源断割込処理を確実に行える時間が担保されるようになっている。
また、サブ制御部91の電源電圧{+5V(VCC)}の元となる+12V(VCC)は、停電時においても電源基板202に搭載されたコンデンサ309によって電圧の降下が遅延されるようになっており、停電時にメインタイマ割込処理において送信されたコマンドを受信し、かつ受信したコマンドをその後のサブタイマ割込処理においてバックアップするのに十分な時間が経過するまで(t4)、サブ制御部91を駆動させることが可能な電圧(+7V)が維持されるので、停電時にメイン制御部41からコマンドを受信した場合でも、当該コマンドを確実にバックアップする時間が担保されるようになっている。尚、本実施例では、電源監視用電圧が+18V以下となった時点から20ms以上の時間が経過するまでサブ制御部91を駆動させることが可能な電圧が維持されるようになっているが、少なくともタイマ割込1の実行間隔(サブ制御部91がコマンドを確実に受信するのに十分な時間)の時間以上にわたり、サブ制御部91を駆動させることが可能な電圧を維持できれば良い。
以上説明したように、本実施例のスロットマシン1では、メイン制御部41からサブ制御部91に対して送信されるコマンドの送信タイミングが所定時間の範囲(2.24〜35.84ms)でランダムに変化するため、サブ制御部91によりメイン制御部41から送信されるコマンドの受信タイミングに基づいて目押しの補助となるような演出が行われてしまうことを防止できるとともに、複数のコマンドが連続して送信される場合でも、各々のコマンドがその生成順、すなわち本来コマンドが送信されるべき順番にて送信されるため、サブ制御部91はメイン制御部41の制御状態を正確な順番で把握して演出を行うことが可能であり、演出の順番に食い違いが生じることにより遊技者に違和感を与えてしまうことを防止できる。
尚、本実施例では、2.24〜35.84msの範囲でコマンドの送信タイミングが遅延されるようになっているが、少なくとも、その最大遅延時間がリール2L、2C、2Rの図柄が1図柄以上移動する時間を超えるものであれば良い。
また、本実施例のメイン制御部41では、電源断割込処理またはメインタイマ割込処理のいずれか一方の割込処理の実行中に他方の割込処理の割込が禁止されるので、メインタイマ割込処理の実行中に電圧低下信号を検出した場合、すなわち電源断が検出された場合でも2重に割込が生じることがなく、メイン制御部41の制御負荷が増大してしまったりデータの整合性がとれなくなってしまうことを防止できる。特に、制御情報の送信中に電源断の検出による割込が生じて当該制御情報の送信が阻害されることなく、メイン制御手段が停止する前に正常に送信を完了させることができる。
また、電源断割込処理の割込タイミングとメインタイマ割込処理の割込タイミングとが同時となった場合には、電源断割込処理を優先して実行するとともに、メインタイマ割込処理の実行中に電源断が検出された場合には、当該メインタイマ割込処理の終了を待って電源断割込処理が実行されるようになっており、多重割込を防止しつつも極力早い段階でメイン制御部41のバックアップが行われるため、メイン制御部41の駆動が停止する前にバックアップを確実に行うことができる。
更に、多重割込を防止しつつも極力早い段階でメイン制御部41のバックアップが行われることに加えて、コマンドの送信を遅延させている状態、すなわちコマンドの送信待ちの状態で電源断が検出されたときには、当該コマンドはバックアップされるのに対して遅延カウンタの値はバックアップされず、復旧時において送信待ちのコマンドが残っている場合に当該コマンドの遅延時間が再度ランダムに設定されるので、電源断時にメイン制御部41のRAMのバックアップ領域に保存されるデータ容量を軽減させることができるため、メイン制御部41の駆動が停止する前にバックアップを確実に行うことができる。
また、本実施例では、メイン制御部41からのコマンドに依存せずに定期的にサブ制御部91の制御状態がバックアップされるので、コマンドを遅延して送信する場合でも従来のように停電を示すコマンドの送信が遅延されることによってサブ制御部91のバックアップが行えなくなってしまうようなことがなく、サブ制御部91の制御状態のバックアップを確実に行うことができる。
また、本実施例では、メイン制御部41がコマンドを送信した後、最低でも4.48msの間、新たなコマンドの送信が禁止されるため、サブ制御部91がコマンドを確実に受信し、かつ受信したコマンドをバックアップするための時間を担保できる。尚、本実施例では、新たなコマンドの送信が禁止される時間として4.48msが適用されているが、少なくともサブ制御部91がコマンドを受信し、かつ受信したコマンドをバックアップするのに十分な時間であれば、4.48msよりも短い時間(例えば、2.24ms)を適用しても良い。
また、本実施例では、電源監視用IC44が監視する電圧と、ホッパーモータ32、遊技制御基板40が搭載する各種デバイス、遊技制御基板40に接続された電気部品、演出制御基板90が搭載する各種デバイス、演出制御基板90に接続された電気部品を駆動させるための電源電圧と、が別個に設けられた電圧生成回路にて生成されるようになっており、これら電気部品の駆動状況により下降し易い電源電圧に比較して安定した電圧が電源監視用IC44により監視されるので、一時的な電圧降下に伴って電源断の発生が判別され、後述の電源断割込処理が行われてしまう等の誤動作を防止できる。
また、本実施例では、サブ制御部91の電源電圧{+5V(VCC)}の元となる+12V(VCC)が、停電時においても電源基板202に搭載されたコンデンサ309によって電圧の降下が遅延され、少なくとも停電時にメインタイマ割込処理において送信されたコマンドを確実に受信するのに十分な時間(本実施例では20ms)が経過するまで、サブ制御部91を駆動させることが可能な電圧(+7V)が維持されるようになっており、コマンドの送信中に電源断が検出された場合でも、サブ制御部91は、電源断の検出時に送信されたコマンドを駆動が停止する前に確実に受信することができるとともに、サブ制御部91がバックアップを実行する間隔よりも長く、サブ制御部91を駆動させることが可能な電圧(+7V)が維持されるので受信したコマンドを確実にバックアップすることもできる。
以上、本発明の実施例を図面により説明してきたが、本発明はこの実施例に限定されるものではなく、本発明の主旨を逸脱しない範囲における変更や追加があっても本発明に含まれることは言うまでもない。
例えば、前記実施例では、メイン制御部41及びサブ制御部91は、バックアップデータのパリティを作成し、電断復旧時にパリティを比較することにより、バックアップデータが正常か否かを確認しているが、パリティに替えてチェックサム(データ列を足し合わせた総和)を作成し、電断復旧時にチェックサムを比較することにより、バックアップデータが正常か否かを確認するようにしても良い。
また、前記実施例では、メイン制御部41のRAMのバックアップ領域やバックアップ用RAM95のバックアップ電源として大容量のコンデンサを用いているが、電池を用いるようにしても良い。
また、前記実施例では、有価価値としてメダル並びにクレジットを使用してゲームを実施可能な通常のスロットマシンを用いているが、本発明はこれに限定されるものではなく、有価価値としてパチンコ球を用いてゲームを行うスロットマシンや、メダルが外部に排出されることなくクレジットを使用して遊技可能な完全クレジット式のスロットマシン、更には可変表示装置が画像にて表示される画像式のスロットマシンにも適用可能であることはいうまでもなく、これら遊技機の種別が限定されるものではない。
前記実施例における各要素は、本発明に対して以下のように対応している。
本発明の請求項1は、1ゲームに対して所定数の賭数を設定することによりゲームが開始可能となるとともに、各々が識別可能な複数種類の識別情報(図柄)を変動表示可能な可変表示装置(リール2L、2C、2R)の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて入賞が発生可能とされたスロットマシン1であって、
遊技の制御を行うメイン制御手段(メイン制御部41)と、
該メイン制御手段(メイン制御部41)から送信された制御情報(コマンド)の受信に基づき演出の制御を行うサブ制御手段(サブ制御部91)と、
前記メイン制御手段から送信された制御情報(コマンド)の受信に基づき演出の制御を行うサブ制御手段(サブ制御部91)と、前記スロットマシンで用いられる所定の電力の状態(+25V)を監視し、電力の供給停止に関わる所定条件が成立したとき(+18V以下となったとき)に電源断を検出する電断検出手段(電源監視用IC44)と、
を備え、
前記メイン制御手段は、予め定められた単位時間(0.56ms)毎に実行中の処理に割り込んで実行するタイマ割込処理(メインタイマ割込処理)を実行するタイマ割込処理実行手段と、
前記タイマ割込処理の実行に応じて、該タイマ割込処理において実行すべき処理(タイマ割込1〜4)を識別するための分岐用カウンタ値を更新する分岐用カウンタ更新手段と、
前記タイマ割込処理において、遊技者の操作を検出する検出手段(センサ、スイッチ)の入力状態を監視して該入力状態を示す入力情報を記憶する処理(センサ/スイッチ監視処理)を含む複数種類の処理(タイマ割込1〜4)のうちから前記分岐用カウンタ値に対応する処理を、該タイマ割込処理にて実行する処理として選択する処理選択手段と、
前記タイマ割込処理にて記憶した入力情報を読み出し、該読み出した入力情報に基づいて遊技の進行に応じた複数の制御状態(BET処理、内部抽選処理、リール回転処理、リール停止処理、入賞判定処理、払出処理、遊技状態更新処理)を段階的に移行させることにより1ゲームの制御を行う基本処理(ゲーム制御処理)を実行する基本処理実行手段と、
前記電断検出手段により電源断が検出されたときに、前記メイン制御手段の制御状態を電源断前の制御状態に復帰させるのに必要な情報(停電復旧後に停電前の遊技状態に復帰するのに必要な特定のレジスタの内容)を電力供給が停止しても所定時間記憶内容を保持可能なバックアップ領域に保存する電断割込処理(電源断割込処理)を、実行中の処理に割り込んで実行する電断割込処理実行手段(割込入力端子からの入力に基づく電源断割込処理)と、
前記電断割込処理または前記タイマ割込処理のいずれか一方の割込処理の実行中に他方の割込処理を禁止する多重割込禁止手段(メインタイマ割込処理及び電源断割込処理において割込禁止に設定する処理)と、
を含み、
前記電断割込処理実行手段は、前記タイマ割込処理の実行中において前記電断検出手段により電源断が検出されたときに、該実行中のタイマ割込処理の終了を待って前記電断割込処理を実行するとともに、
前記メイン制御手段(メイン制御部41)は、
複数の前記制御情報(コマンド)を格納可能な制御情報格納手段(コマンドキュー)と、
前記基本処理(ゲーム制御処理)においてゲームの進行状況に応じて前記制御情報(コマンド)を生成し、前記制御情報格納手段(コマンドキュー)に格納する制御情報生成手段(コマンド格納処理)と、
前記タイマ割込処理(メインタイマ割込処理)において、前記制御情報格納手段(コマンドキュー)に格納されている前記制御情報(コマンド)を前記サブ制御手段(サブ制御部91)に対して送信する制御情報送信処理(コマンド送信処理)を行う制御情報送信処理手段と、
を更に含み、
前記制御情報送信処理手段は、前記タイマ割込処理(メインタイマ割込処理)において前記分岐用カウンタ値が特定の値(0)を示すときに1回のみ前記制御情報送信処理(コマンド送信処理)を行い、かつ前記制御情報格納手段(コマンドキュー)に前記制御情報(コマンド)が複数格納されている場合に、該制御情報送信処理(コマンド送信処理)において前記制御情報格納手段(コマンドキュー)に格納されている複数の制御情報(コマンド)のうち最も早い時期に生成された制御情報(コマンド)のみを送信する。
本発明の請求項2の前記メイン制御手段(メイン制御部41)は、
前記可変表示装置(リール2L、2C、2R)の表示制御を行う表示制御手段(リールモータ制御処理)と、
前記制御情報格納手段(コマンドキュー)に前記制御情報(コマンド)が格納されている場合に、前記タイマ割込処理(メインタイマ割込処理)において所定の範囲でランダムに発生する乱数値を取得し、該取得した乱数値に基づいて所定時間の範囲(2.24〜35.84ms)でランダムに変化する遅延時間が経過したときに実行される前記タイマ割込処理まで前記格納されている制御情報(コマンド)の送信を遅延させる送信タイミング遅延手段と、
を含む。
本発明の請求項3の前記サブ制御手段(サブ制御部91)は、該サブ制御手段の制御状態を電源断前の制御状態に復帰させるのに必要な情報(サブ制御部91のRAMの内容)を電力供給が停止しても所定時間記憶内容を保持可能なサブ用バックアップ領域(バックアップ用RAM95)に保存する処理(サブバックアップ処理)を、前記制御情報送信処理手段が前記タイマ割込処理(タイマ割込1)において前記制御情報送信処理(コマンド送信処理)を行う時間間隔(2.24ms)よりも短い時間(1.12ms)毎に実行する定期処理実行手段を含む。