本発明が適用された遊技機であるスロットマシンの実施例1について図面を用いて説明すると、本実施例のスロットマシン1は、図1に示すように、前面が開口する筐体1aと、この筐体1aの側端に回動自在に枢支された前面扉1bと、から構成されている。
本実施例のスロットマシン1の筐体1aの内部には、図2に示すように、外周に複数種の図柄が配列されたリール2L、2C、2R(以下、左リール、中リール、右リール)が水平方向に並設されており、図1に示すように、これらリール2L、2C、2Rに配列された図柄のうち連続する3つの図柄が前面扉1bに設けられた透視窓3から見えるように配置されている。
リール2L、2C、2Rの外周部には、互いに識別可能な複数種類の図柄(例えば、「7」、「BAR」、「スイカ」、「チェリー」、「ベル」、「リプレイ」等)が所定の順序で、それぞれ21個ずつ描かれている。リール2L、2C、2Rの外周部に描かれた図柄は、前面扉1bの略中央に設けられた透視窓3において各々上中下三段に表示される。
各リール2L、2C、2Rは、各々対応して設けられたリールモータ32L、32C、32R(図3参照)によって回転されることで、各リール2L、2C、2Rの図柄が透視窓3に連続的に変化しつつ表示される一方で、各リール2L、2C、2Rの回転が停止されることで、透視窓3に3つの連続する図柄が表示結果として導出表示されるようになっている。
尚、本実施例のリール2L、2C、2Rは、リールモータ32L、32C、32Rを用いて、外周面に複数の図柄が配置されたリール2L、2C、2Rを回転させることで、遊技者から視認可能な複数の図柄を移動させる変動表示を行うことが可能な構成であるが、複数の図柄を移動させる変動表示を行う手段は、リール以外であっても良く、例えば、外周面に複数の図柄が配置されたベルトを移動させることで変動表示を行うことが可能な構成等であっても良い。
リール2L、2C、2Rの内側には、リール2L、2C、2Rそれぞれに対して、基準位置を検出するリールセンサ33L、33C、33Rと、リール2L、2C、2Rを背面から照射するリールLED55と、が設けられている。また、リールLED55は、リール2L、2C、2Rの連続する3つの図柄に対応する12のLEDからなり、各図柄をそれぞれ独立して照射可能とされている。
また、リールセンサ33L、33C、33Rは、各リール2L、2C、2Rについて図柄番号1の図柄の領域の下端が各リールにおける所定位置を通過するときに、検出信号を出力するように配置されており、各リールについて図柄番号1の図柄の領域の下端がリール基準位置となる。
前面扉1bの各リール2L、2C、2Rの手前側(遊技者側)の位置には、液晶表示器51(図1参照)の表示領域51aが配置されている。液晶表示器51は、液晶素子に対して電圧が印加されていない状態で透過性を有する液晶パネルを有しており、表示領域51aの透視窓3に対応する透過領域51b及び透視窓3を介して遊技者側から各リール2L、2C、2Rが視認できるようになっている。
前面扉1bには、図1に示すように、メダルを投入可能なメダル投入部4、メダルが払い出されるメダル払出口9、クレジット(遊技者所有の遊技用価値として記憶されているメダル数)を用いて、その範囲内において遊技状態に応じて定められた規定数の賭数のうち最大の賭数を設定する際に操作されるMAXBETスイッチ6、クレジットとして記憶されているメダル及び賭数の設定に用いたメダルを精算する(クレジット及び賭数の設定に用いた分のメダルを返却させる)際に操作される精算スイッチ10、ゲームを開始する際に操作されるスタートスイッチ7、リール2L、2C、2Rの回転を各々停止する際に操作されるストップスイッチ8L、8C、8R、演出に用いられる演出用スイッチ56が遊技者により操作可能にそれぞれ設けられている。
尚、本実施例では、回転を開始した3つのリール2L、2C、2Rのうち、最初に停止するリールを第1停止リールと称し、また、その停止を第1停止と称する。同様に、2番目に停止するリールを第2停止リールと称し、また、その停止を第2停止と称し、3番目に停止するリールを第3停止リールと称し、また、その停止を第3停止あるいは最終停止と称する。
また、前面扉1bには、図1に示すように、クレジットとして記憶されているメダル枚数が表示されるクレジット表示器11、入賞の発生により払い出されたメダル枚数やエラー発生時にその内容を示すエラーコード等が表示される遊技補助表示器12、賭数が1設定されている旨を点灯により報知する1BETLED14、賭数が2設定されている旨を点灯により報知する2BETLED15、賭数が3設定されている旨を点灯により報知する3BETLED16、メダルの投入が可能な状態を点灯により報知する投入要求LED17、スタートスイッチ7の操作によるゲームのスタート操作が有効である旨を点灯により報知するスタート有効LED18、ウェイト(前回のゲーム開始から一定期間経過していないためにリールの回転開始を待機している状態)中である旨を点灯により報知するウェイト中LED19、リプレイゲーム中である旨を点灯により報知するリプレイ中LED20が設けられた遊技用表示部13が設けられている。
MAXBETスイッチ6の内部には、MAXBETスイッチ6の操作による賭数の設定操作が有効である旨を点灯により報知するBETスイッチ有効LED21(図3参照)が設けられており、ストップスイッチ8L、8C、8Rの内部には、該当するストップスイッチ8L、8C、8Rによるリールの停止操作が有効である旨を点灯により報知する左、中、右停止有効LED22L、22C、22R(図3参照)がそれぞれ設けられており、演出用スイッチ56の内部には、演出用スイッチ56の操作が有効である旨を点灯により報知する演出用LED56a(図3参照)が設けられている。
前面扉1bの内側には、図2に示すように、所定のキー操作により前面扉1bを開放することなく後述するエラー状態及び打止状態を解除するためのリセット操作を検出するリセットスイッチ23、後述する設定値の変更中や設定値の確認中にその時点の設定値が表示される設定値表示器24、所定の契機に打止状態(リセット操作がなされるまでゲームの進行が規制される状態)に制御する打止機能の有効/無効を選択するための打止スイッチ36a、所定の契機に自動精算処理(クレジットとして記憶されているメダルを遊技者の操作によらず精算(返却)する処理)に制御する自動精算機能の有効/無効を選択するための自動精算スイッチ36b、メダル投入部4から投入されたメダルの流路を、筐体1aの内部に設けられた後述のホッパータンク34a(図2参照)側またはメダル払出口9側のいずれか一方に選択的に切り替えるための流路切替ソレノイド30、メダル投入部4から投入され、ホッパータンク34a側に流下したメダルを検出する投入メダルセンサ31、投入メダルセンサ31の上流側で異物の挿入を検出する投入口センサ26を有するメダルセレクタ29、前面扉1bの開放状態を検出するドア開放検出スイッチ25(図3参照)が設けられている。
筐体1aの内部には、図2に示すように、前述したリール2L、2C、2R、リールモータ32L、32C、32R(図3参照)、各リール2L、2C、2Rのリール基準位置をそれぞれ検出可能なリールセンサ33L、33C、33R(図3参照)からなるリールユニット2、外部出力信号を出力するための外部出力基板1000(図3参照)、メダル投入部4から投入されたメダルを貯留するホッパータンク34a、ホッパータンク34aに貯留されたメダルをメダル払出口9より払い出すためのホッパーモータ34b(図3参照)、ホッパーモータ34bの駆動により払い出されたメダルを検出する払出センサ34c(図3参照)からなるホッパーユニット34、電源ボックス100が設けられている。
ホッパーユニット34の側部には、ホッパータンク34aからあふれたメダルが貯留されるオーバーフロータンク35が設けられている。オーバーフロータンク35の内部には、貯留されたメダルが満タン状態となったことを検出する満タンセンサ35a(図3参照)が設けられている。
電源ボックス100の前面には、図2に示すように、設定変更状態または設定確認状態に切り替えるための設定キースイッチ37、通常時においてはエラー状態や打止状態を解除するためのリセットスイッチとして機能し、設定変更状態においては後述する内部抽選の当選確率(出玉率)の設定値を変更するための設定スイッチとして機能するリセット/設定スイッチ38、電源をon/offする際に操作される電源スイッチ39が設けられている。
尚、電源ボックス100は、筐体1aの内部に設けられており、さらに前面扉1bは、店員等が所持する所定のキー操作により開放可能な構成であるため、これら電源ボックス100の前面に設けられた設定キースイッチ37、リセット/設定スイッチ38、電源スイッチ39は、キーを所持する店員等の者のみが操作可能とされ、遊技者による操作ができないようになっている。また、所定のキー操作により検出されるリセットスイッチ23も同様である。特に、設定キースイッチ37は、キー操作により前面扉1bを開放したうえで、さらにキー操作を要することから、遊技店の店員のなかでも、設定キースイッチ37の操作を行うキーを所持する店員のみ操作が可能とされている。
本実施例のスロットマシン1においてゲームを行う場合には、まず、メダルをメダル投入部4から投入するか、あるいはクレジットを使用して賭数を設定する。クレジットを使用するにはMAXBETスイッチ6を操作すれば良い。遊技状態に応じて定められた規定数の賭数が設定されると、入賞ラインLN(図1参照)が有効となり、スタートスイッチ7の操作が有効な状態、すなわち、ゲームが開始可能な状態となる。尚、遊技状態に対応する規定数のうち最大数を超えてメダルが投入された場合には、その分はクレジットに加算される。
入賞ラインとは、各リール2L、2C、2Rの透視窓3に表示された図柄の組合せが入賞図柄の組合せであるかを判定するために設定されるラインである。本実施例では、図1に示すように、リール2Lの中段、リール2Cの中段、リール2Rの中段、すなわち中段に水平方向に並んだ図柄に跨がって設定された入賞ラインLNのみが入賞ラインとして定められている。尚、本実施例では、1本の入賞ラインのみを適用しているが、複数の入賞ラインを適用しても良い。
また、本実施例では、入賞ラインLNに入賞を構成する図柄の組合せが揃ったことを認識しやすくするために、入賞ラインLNとは別に、無効ラインLM1~4(LM1は、左中右リールの各上段にわたるラインであり、LM2は、左中右リールの各中段にわたるラインであり、LM3は、左中右リールの各下段にわたるラインであり、LM4は、左リールの下段、中リールの中段、右リールの上段にわたるラインである。)を設定している。無効ラインLM1~4は、これら無効ラインLM1~4に揃った図柄の組合せによって入賞が判定されるものではなく、入賞ラインLNに特定の入賞を構成する図柄の組合せが揃った際に、無効ラインLM1~4のいずれかに入賞ラインLNに揃った場合に入賞となる図柄の組合せ(例えば、ベル‐ベル‐ベル)が揃う構成とすることで、入賞ラインLNに特定の入賞を構成する図柄の組合せが揃ったことを認識しやすくするものである。
本実施例では、図1に示すように、リール2Lの上段、リール2Cの上段、リール2Rの上段、すなわち上段に水平方向に並んだ図柄に跨がって設定された無効ラインLM1、リール2Lの下段、リール2Cの下段、リール2Rの下段、すなわち下段に水平方向に並んだ図柄に跨がって設定された無効ラインLM2、リール2Lの上段、リール2Cの中段、リール2Rの下段、すなわち右下がりに並んだ図柄に跨がって設定された無効ラインLM3、リール2Lの下段、リール2Cの中段、リール2Rの上段、すなわち右上がりに並んだ図柄に跨がって設定された無効ラインLM4の4種類が無効ラインLMとして定められている。
また、本実施例では、入賞役として、入賞ラインLNに役として定められた所定の図柄の組合せ(例えば、「ベル‐スイカ‐チェリー」)が揃ったときに入賞するとともに、かつ所定の図柄組合せが揃うことにより無効ラインLM1~LM4のいずれかに所定の図柄組合せよりも認識しやすい指標となる図柄の組合せ(例えば、「スイカ‐スイカ‐スイカ」)が揃うことにより、無効ラインLM1~LM4のいずれかに揃った図柄の組合せによって入賞したように見せることが可能な役を含む。以下では、所定の図柄の組合せが入賞ラインLNに揃ったときに無効ラインLM1~LM4のいずれかに揃う図柄の組合せを、指標となる図柄の組合せと呼び、指標となる図柄の組合せを構成する図柄を指標図柄と呼ぶ。
ゲームが開始可能な状態でスタートスイッチ7を操作すると、各リール2L、2C、2Rが回転し、各リール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の表示結果として停止した場合には図柄の組合せに応じた遊技状態に移行するようになっている。
尚、本実施例では、スタートスイッチ7の操作が有効な状態でスタートスイッチ7の操作が検出されたときにゲームが開始し、全てのリールが停止したときにゲームが終了する。また、ゲームを実行するための1単位の制御(ゲーム制御)は、前回のゲームの終了に伴う全ての制御が完了したときに開始し、当該ゲームの終了に伴う全ての制御が完了したときに終了する。
また、本実施例では、3つのリールを用いた構成を例示しているが、リールを1つのみ用いた構成、2つのリールを用いた構成、4つ以上のリールを用いた構成としても良く、2以上のリールを用いた構成においては、2以上の全てのリールに導出された表示結果の組合せに基づいて入賞を判定する構成とすれば良い。また、本実施例では、物理的なリールにて可変表示装置が構成されているが、液晶表示器などの画像表示装置にて可変表示装置が構成されていても良い。
また、本実施例におけるスロットマシン1にあっては、ゲームが開始されて各リール2L、2C、2Rが回転して図柄の変動が開始した後、いずれかのストップスイッチ8L、8C、8Rが操作されたときに、当該ストップスイッチ8L、8C、8Rに対応するリールの回転が停止して図柄が停止表示される。ストップスイッチ8L、8C、8Rの操作が行われたときから、対応するリール2L、2C、2Rの回転を停止するまでの最大停止遅延時間は190ミリ秒(ms)である。
リール2L、2C、2Rは、1分間に80回転し、80×20(1リール当たりの図柄コマ数)=1600コマ分の図柄を変動させるので、190ミリ秒の間では最大で4コマの図柄を引き込むことができることとなる。つまり、停止図柄として選択可能なのは、ストップスイッチ8L、8C、8Rが操作されたときに表示されている図柄と、そこから4コマ先までにある図柄、合計5コマ分の図柄である。
このため、例えば、ストップスイッチ8L、8C、8Rのいずれかが操作されたときに当該ストップスイッチに対応するリールの下段に表示されている図柄を基準とした場合は、当該基準とした図柄から4コマ先までの図柄を下段に表示させることができるため、リール2L、2C、2R各々において、ストップスイッチ8L、8Rのうちいずれかが操作されたときに当該ストップスイッチに対応するリールの入賞ライン上に表示されている図柄を含めて5コマ以内に配置されている図柄を入賞ライン上に表示させることができる。
以下では、特に区別する必要がない場合にはリール2L、2C、2Rを単にリールという場合がある。また、リール2Lを左リール、リール2Cを中リール、リール2Rを右リールという場合がある。また、ストップスイッチ8L、8C、8Rの操作によりリール2L、2C、2Rを停止させる操作を停止操作という場合がある。
図3は、スロットマシン1の構成を示すブロック図である。スロットマシン1には、図3に示すように、遊技制御基板40、演出制御基板90、電源基板101が設けられており、遊技制御基板40によって遊技の制御が行われ、演出制御基板90によって遊技状態に応じた演出の制御が行われ、電源基板101によってスロットマシン1を構成する電気部品の駆動電源が生成され、各部に供給される。
電源基板101には、外部からAC100Vの電源が供給されるとともに、このAC100Vの電源からスロットマシン1を構成する電気部品の駆動に必要な直流電圧が生成され、遊技制御基板40及び演出制御基板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、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を備えたマイクロコンピュータにより構成され、内部抽選用の乱数を生成する乱数回路等を備えており、遊技の進行に関する処理を行うとともに遊技制御基板40に搭載された制御回路の各部を直接的または間接的に制御するメイン制御部41と、遊技制御基板40に直接または電源基板101を介して接続されたスイッチ類から入力された検出信号を取り込んでメイン制御部41に伝送するスイッチ検出回路44と、メイン制御部41から出力されたモータ駆動信号(ステッピングモータの位相信号)をリールモータ32L、32C、32Rに伝送するモータ駆動回路45と、メイン制御部41から出力されたソレノイド駆動信号を流路切替ソレノイド30に伝送するソレノイド駆動回路46と、メイン制御部41から出力されたLED駆動信号を遊技制御基板40に接続された各種表示器やLEDに伝送するLED駆動回路47と、スロットマシン1に供給される電源の電圧を監視して電圧の低下を検出したときに、その旨を示す電圧低下信号をメイン制御部41に対して出力する電断検出回路48と、電源投入時または電源遮断時等の電力供給が不安定な状態においてメイン制御部41にシステムリセット信号を与えるリセット回路49と、が搭載されている。
メイン制御部41は、サブ制御部91に各種のコマンドを送信する。メイン制御部41からサブ制御部91へ送信されるコマンドは一方向のみで送られ、サブ制御部91からメイン制御部41へ向けてコマンドが送られることはない。
また、I/Oポート41dは、出力ポート0~9を含み、メイン制御部41は、出力ポート0及び出力ポート1よりリールモータ32L、32C、32Rの制御信号を出力可能であり、出力ポート2より左・中・右停止有効LED22L、22C、22Rの制御信号、流路切替ソレノイド30の制御信号を出力可能であり、出力ポート3よりホッパーモータ34bの制御信号、外部出力信号を出力可能であり、出力ポート4及び出力ポート5よりクレジット表示器11、遊技補助表示器12、1~3BETLED14~16、投入要求LED17、スタート有効LED18、ウェイト中LED19、リプレイ中LED20、BETスイッチ有効LED21の制御信号を出力可能であり、出力ポート6より試験信号を出力可能であり、出力ポート7より外部出力信号を出力可能であり、出力ポート8及び出力ポート9よりコマンドを出力可能である。
メイン制御部41は、メイン処理として遊技制御基板40に接続された各種スイッチ類の検出状態が変化するまでは制御状態に応じた処理を繰り返しループし、各種スイッチ類の検出状態の変化に応じて段階的に移行する処理を実行する。また、メイン制御部41は、一定時間間隔(本実施例では、約0.56ミリ秒)毎にタイマ割込処理(メイン)を実行する。尚、タイマ割込処理(メイン)の実行間隔は、メイン処理において制御状態に応じて繰り返す処理が一巡する時間とタイマ割込処理(メイン)の実行時間とを合わせた時間よりも長い時間に設定されており、今回と次回のタイマ割込処理(メイン)との間で必ず制御状態に応じて繰り返す処理が最低でも一巡することとなる。
演出制御基板90には、演出用スイッチ56が接続されており、この演出用スイッチ56の検出信号が入力されるようになっている。また、液晶表示器51、演出効果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は、サブCPU91a、ROM91b、RAM91c、I/Oポート91dを備えたマイクロコンピュータにより構成されて演出の制御を行うサブ制御部91と、演出制御基板90に接続された液晶表示器51の表示制御を行う表示制御回路92と、演出効果LED52と、リールLED55の駆動制御を行うLED駆動回路93と、スピーカ53、54からの音声出力制御を行う音声出力回路94と、電源投入時またはサブCPU91aからの初期化命令が一定時間入力されないときにサブCPU91aにリセット信号を与えるリセット回路95と、演出制御基板90に接続されたスイッチ類から入力された検出信号を検出するスイッチ検出回路96と、日付情報及び時刻情報を含む時間情報を出力する時計装置97と、スロットマシン1に供給される電源電圧を監視し、電圧低下を検出したときに、その旨を示す電圧低下信号をサブCPU91aに対して出力する電断検出回路98と、その他の回路等、が搭載されている。
サブ制御部91は、遊技制御基板40から送信されるコマンドを受けて、演出を行うための各種の制御を行うとともに、演出制御基板90に搭載された制御回路の各部を直接的または間接的に制御する。
本実施例のスロットマシン1は、設定値に応じてメダルの払出率が変わる構成である。詳しくは、内部抽選等の遊技者に対する有利度に影響する抽選において設定値に応じた当選確率を用いることにより、メダルの払出率が変わるようになっている。設定値は1~6の6段階からなり、6が最も払出率が高く、5、4、3、2、1の順に値が小さくなるほど払出率が低くなる。すなわち設定値として6が設定されている場合には、遊技者にとって最も有利度が高く、5、4、3、2、1の順に値が小さくなるほど有利度が段階的に低くなる。
設定値を変更するためには、設定キースイッチ37をon状態としてからスロットマシン1の電源をonする必要がある。設定キースイッチ37をon状態として電源をonすると、設定値表示器24にRAM41cから読み出された設定値が表示値として表示され、リセット/設定スイッチ38の操作による設定値の変更が可能な設定変更状態に移行する。設定変更状態において、リセット/設定スイッチ38が操作されると、設定値表示器24に表示された表示値が1ずつ更新されていく(設定値6からさらに操作されたときは、設定値1に戻る)。そして、スタートスイッチ7が操作されると表示値を設定値として確定する。そして、設定キースイッチ37がoffされると、確定した表示値(設定値)がメイン制御部41のRAM41cに格納され、遊技の進行が可能な状態に移行する。
本実施例のスロットマシン1は、遊技状態に応じて設定可能な賭数の規定数が定められており、遊技状態に応じて定められた規定数の賭数が設定されたことを条件にゲームを開始させることが可能となる。尚、本実施例では、遊技状態に応じた規定数の賭数が設定された時点で、入賞ラインLNが有効化される。
そして、本実施例では、全てのリール2L、2C、2Rが停止した際に、有効化された入賞ライン(本実施例の場合、常に入賞ラインLNが有効化されるため、以下では、有効化された入賞ラインLNを単に入賞ラインという)上に役と呼ばれる図柄の組合せが揃うと入賞となる。役は、同一図柄の組合せであっても良いし、異なる図柄を含む組合せであっても良い。
入賞となる役の種類は、遊技状態に応じて定められているが、大きく分けて、メダルの払い出しを伴う小役と、賭数の設定を必要とせずに次のゲームを開始可能となる再遊技役と、遊技者にとって有利な遊技状態への移行を伴う特別役と、がある。以下では、小役と再遊技役をまとめて一般役とも呼ぶ。遊技状態に応じて定められた各役の入賞が発生するためには、内部抽選に当選して、当該役の当選フラグがRAM41cに設定されている必要がある。内部抽選は、メイン制御部41が、上記した各役への入賞を許容するか否かを、全てのリール2L、2C、2Rの表示結果が導出される以前(具体的には、スタートスイッチ7の検出時)に乱数を用いて決定するものである。尚、これら各役の当選フラグのうち、小役及び再遊技役の当選フラグは、当該フラグが設定されたゲームにおいてのみ有効とされ、次のゲームでは無効となるが、特別役の当選フラグは、当該フラグにより許容された役の組合せが揃うまで有効とされ、許容された役の組合せが揃ったゲームにおいて無効となる。すなわち特別役の当選フラグが一度当選すると、例え、当該フラグにより許容された役の組合せを揃えることができなかった場合にも、その当選フラグは無効とされずに、次のゲームへ持ち越されることとなる。
また、内部抽選では、特別役と重複して当選する一般役(以下、重複当選役と呼ぶ)が設けられており、内部抽選にて当該重複当選役が当選した場合には、特別役も重複して当選し得るようになっており、当該重複当選役を構成する図柄組合せがリール2L、2C、2Rに停止することで、特別役が当選している可能性がある旨が示唆されるようになっている。
また、内部抽選では、予め定められた所定の停止順で停止操作が行われる場合にのみ当該役を構成する図柄を入賞ラインLNに揃えて停止させ、入賞を発生させることが可能な小役、再遊技役(以下押し順役と呼ぶ場合がある)と、停止順によらず役を構成する図柄を入賞ラインLNに揃えて停止させ、入賞を発生させることが可能な小役、再遊技役(非押し順役と呼ぶ場合がある)とが当選し得るようになっている。
また、内部抽選では、当選し得る役として、通常の役とは異なる特殊役(特殊小役または特殊再遊技役)が含まれており、内部抽選にて特殊役が当選することで、規定のゲーム数にわたり後述のアシストタイム(以下、ATという)に制御される権利(以下、ATの権利という)が当選し得るようになっている。
本実施例のスロットマシン1は、メイン制御部41により、内部抽選結果に応じて遊技者にとって有利となるストップスイッチ8L、8C、8Rの操作態様を遊技補助表示器12の点灯態様により報知するナビ報知を実行可能な報知期間となるアシストタイム(以下、ATという)に制御可能となっており、ATに制御される権利が当選し、所定の開始条件(例えば、ATの権利の当選後、所定のゲーム数が経過すること、ATの権利の当選後、所定の図柄組合せがリール2L、2C、2Rに停止すること等)が成立することで、メイン制御部41はATの制御を開始して、ATに制御する。そして、ATに制御している場合には、遊技状態に応じたナビ対象役(前述の押し順役のうち該当する役)に当選することにより、ナビ報知を実行して、遊技者にとって有利となるストップスイッチ8L、8C、8Rの操作態様(押し順、操作タイミング)を報知するとともに、遊技者にとって有利となる操作態様を特定可能なコマンドをサブ制御部91に対して送信することで、液晶表示器51等を用いたナビ演出を実行させる。ナビ報知及びナビ演出により報知される操作態様にて、ストップスイッチ8L、8C、8Rを操作することで、内部抽選にて当選した押し順役を確実に入賞させることができるようになっている。尚、本実施例においてメイン制御部41は、ATに制御していない通常状態であっても、一定の条件を満たすことにより、ナビ報知を実行し、ナビ演出を実行させることが可能である。
次に、メイン制御部41が行うリール2L、2C、2Rの停止制御について説明する。メイン制御部41は、リールの回転が開始したとき、及びリールが停止し、かつ未だ回転中のリールが残っているときに、当選番号及びROM41bに格納されているテーブルインデックス、テーブル作成用データを参照して、回転中のリール別に停止制御テーブルを作成する。そして、ストップスイッチ8L、8C、8Rのうち、回転中のリールに対応するいずれかの操作が有効に検出されたときに、該当するリールの停止制御テーブルを参照し、参照した停止制御テーブルの滑りコマ数に基づいて、操作されたストップスイッチ8L、8C、8Rに対応するリール2L、2C、2Rの回転を停止させる制御を行う。
本実施例では、滑りコマ数として0~4の値が定められており、停止操作を検出してから最大4図柄を引き込んでリールを停止させることが可能である。すなわち停止操作を検出した停止操作位置を含め、最大5コマの範囲から図柄の停止位置を指定できるようになっている。また、1図柄分リールを移動させるのに1コマの移動が必要であるので、停止操作を検出してから最大4図柄を引き込んでリールを停止させることが可能であり、停止操作を検出した停止操作位置を含め、最大5図柄の範囲から図柄の停止位置を指定できることとなる。
本実施例では、いずれかの役に当選している場合には、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で当選している役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役は、最大4コマの引込範囲で揃えずに停止させる制御が行われることとなる。
特別役が前ゲーム以前から持ち越されている状態で小役が当選した場合など、特別役と小役が同時に当選している場合には、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で当選している小役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、入賞ライン上に最大4コマの引込範囲で当選している小役を引き込めない場合には、入賞ライン上に最大4コマの引込範囲で当選している特別役を揃えて停止させることができれば、これを揃えて停止させる制御が行われ、当選していない役は、4コマの引込範囲で揃えずに停止させる制御が行われることとなる。すなわちこのような場合には、特別役よりも小役を入賞ライン上に揃える制御が優先され、小役を引き込めない場合にのみ、特別役を入賞させることが可能となる。尚、特別役と小役を同時に引き込める場合には、小役のみを引き込み、特別役と同時に小役が入賞ライン上に揃わないようになる。また、特別役と小役が同時に当選している場合に、小役よりも特別役を入賞ライン上に揃える制御が優先され、特別役を引き込めない場合にのみ、小役を入賞ライン上に揃える制御を行っても良い。
また、本実施例では、特別役が前ゲーム以前から持ち越されている状態で再遊技役が当選した場合など、特別役と再遊技役が同時に当選している場合には、停止操作が行われた際に、入賞ライン上に最大4コマの引込範囲で再遊技役の図柄を揃えて停止させる制御を行う。尚、この場合、再遊技役を構成する図柄または同時当選する再遊技役を構成する図柄は、リール2L、2C、2Rのいずれについても5図柄以内、すなわち4コマ以内の間隔で配置されており、4コマの引込範囲で必ず任意の位置に停止させることができるので、特別役と再遊技役が同時に当選している場合には、遊技者によるストップスイッチ8L、8C、8Rの操作タイミングに関わらずに、必ず再遊技役が揃って入賞することとなる。すなわちこのような場合には、特別役よりも再遊技役を入賞ライン上に揃える制御が優先され、必ず再遊技役が入賞することとなる。尚、特別役と再遊技役を同時に引き込める場合には、再遊技役のみを引き込み、再遊技役と同時に特別役が入賞ライン上に揃わないようになる。
尚、本実施例では、停止操作が行われたタイミング別の滑りコマ数を特定可能な停止制御テーブルを用いてリールの停止制御を行う構成であるが、停止可能な位置を特定可能な停止位置テーブルから停止位置を特定し、特定した停止位置にリールを停止させる停止制御を行う構成、停止制御テーブルや停止位置テーブルを用いずに、停止操作がされたタイミングで停止可能な停止位置を検索・特定し、特定した停止位置にリールを停止させる停止制御を行う構成、停止制御テーブルを用いた停止制御、停止位置テーブルを用いた停止制御、停止制御テーブルや停止位置テーブルを用いずに停止可能な停止位置を検索・特定することによる停止制御を併用する構成、停止制御テーブルや停止位置テーブルを一部変更して停止制御を行う構成としても良い。
[メダルセレクタについて]
前面扉1bの内側に配置されたメダルセレクタ29の構造について、図4~図6に基づいて説明する。尚、以下の説明において、前面扉1bの裏面側からメダルセレクタ29を見た状態を、メダルセレクタ29の前面側として説明する。
メダルセレクタ29は、図4及び図5に示すように直方体形状に構成されており、当該メダルセレクタ29の本体部の上側壁には、当該本体部の内部へメダルが流入可能な流入口141が設けられ、本体部の左側壁には、当該本体部の内部からホッパータンク34a側の外部へメダルが流出可能な流出口142が設けられ、本体部の下側壁には、当該本体部の内部からメダル払出口9側の外部へメダルを排出可能な排出口143が設けられている。そして、メダルセレクタ29の本体部の内部には、流入口141から流出口142に連通する正面視略L字状のメダル流下流路が形成されている。このメダル流下流路の側壁は、図4(b)及び図5(b)に示すように、流下するメダルの上端が下端よりも前方側に傾く姿勢となるように下方から上方にかけて前面側に傾斜している。また、流入口141から排出口143に連通する正面視略S字状のメダル流下流路が形成されている。以下、メダルセレクタ29の本体部の内部のメダル流下流路のうち流入口141側の流路をメダル流入流路29a、流出口142側の流路をメダル受入流路29b、排出口143側の流路をメダル返却流路29cと呼ぶ。
メダルセレクタ29では、投入されたメダルの真偽(形状、大きさ、厚み等)が判別されるようになっており、真正なメダルは、流入口141から流入した後、メダルセレクタ29の本体部内部のメダル流入流路29a及びメダル受入流路29bを流下して、投入メダルセンサ31a~31cの検出範囲Aを通過することで、投入メダルセンサ31a~31cにて検出された後、流出口142から流出される。そして、当該メダルは、メダルシュート142a(図2参照)を介して、ホッパータンク34aに導かれるようになっている。一方、偽メダルは、流入口141から流入した後、メダル流入流路29aの流下中にメダル返却流路29cへ落下させられて、当該メダル返却流路29cを流下し、排出口143から流出される。そして、当該メダルは、メダルセレクタ29の下方に設けられたメダル返却通路(図示略)を介してメダル払出口9(図1参照)から下皿に返却されるようになっている。
また、メダル流入流路29a、メダル受入流路29b、メダル返却流路29cの合流部分には、メダルセレクタ29の本体部の前面側に設けられる流路切替ソレノイド30(図3参照)の励磁に連係して、メダル流入流路29aを流下するメダルがメダル受入流路29bへ流入する前に、当該メダルをメダル流入流路29aから下方に向けて強制的に落下させて、当該メダルをメダル返却流路29cに流入させるための流路切替板147が揺動自在に設けられている。
流路切替板147は、流路切替ソレノイド30が励磁されていない状態、すなわちメダルの受付が許可されていない状態において、図4(a)(b)に示すように、メダル流入流路29aの下方側が開放状態となり、メダル流入流路29aとメダル返却流路29cが連通した状態となるように搖動可能である。また、流路切替ソレノイド30が励磁されている状態、すなわちメダルの受付が許可されている状態において、図5(a)(b)に示すように、流路切替板147の上部が図中左方向(矢印A方向)に揺動することで、流路切替板147の上端面がメダル流入流路29aの底面を構成する状態となり、メダル流入流路29aの下方側を閉鎖状態として、メダル流入流路29aとメダル返却流路29cが連通しない状態となるように搖動可能に構成されている。このような構成により、流路切替ソレノイド30が励磁されている状態では、流入口141から流入してメダル流入流路29aを流下するメダルは流路切替板147の上端面に沿って流下し、メダル受入流路29bに流入して流出口142から流出されるようになっている。
また、メダル流入流路29aの上流側には、流入口141から流入したメダルの通過を検出する投入口センサ26が設けられており、メダル受入流路29bの下流側には、流出口142に排出されるメダルの通過を検出する投入メダルセンサ31a~31cが設けられている。
投入メダルセンサ31a~31cのうち投入メダルセンサ31a及び31cは、投光部と受光部の間をメダルが通過することにより受光部が投光部からの光の遮断を検知することでメダルの通過を検出するフォトセンサであり、投入メダルセンサ31bは、メダルの通過に連動して動作する可動片180の動作を検知器183により検知することでメダルの通過を検出する物理センサである。尚、以下、投入メダルセンサ31aを投入メダルセンサ1、投入メダルセンサ31bを投入メダルセンサ2、投入メダルセンサ31cを投入メダルセンサ3と呼ぶ場合がある。また、投入メダルセンサ31a~31cによりメダルの通過が検出される範囲を検出範囲Aと呼ぶ場合がある。
次に、物理センサである投入メダルセンサ31bの構成について、図4~図6に基づいて説明する。図6(a)(b)は、図4(a)のC-C断面図のうち投入メダルセンサ31bの周辺を示す図であり、図6(a)は、投入メダルセンサ31a~31cの検出範囲Aをメダルが通過していないときの図であり、図6(b)は、投入メダルセンサ31a~31cの検出範囲Aをメダルが通過しているときの図である。
図4(a)、図5(a)、図6(a)(b)に示すように、メダルセレクタ29におけるメダル受入流路29bの下流側の下方部分の側壁に、投入メダルセンサ31bの可動片180が、メダル受入流路29bに出没可能に設けられている。また、図6(a)(b)に示すように、メダル受入流路29bの外部における可動片180に対応する位置に、検知器183が設置されている。検知器183は、検知部183aに投光部と受光部が設けられている。
そして、図6(a)に示すように、可動片180は、メダル受入流路29bをメダルが通過する際に、メダルが可動片180の先端部180bをメダル受入流路29b内から退けることにより、可動片180の端部に設けられた被検知部180aを、検知部183aの投光部と受光部の間に進入させるようになっており、投光部から受光部へ照射される光が遮断されて、検知器183によりメダルの通過が検出されるようになっている。一方、図6(b)に示すように、可動片180は、メダル受入流路29bをメダルが通過していない状態では、当該可動片180の先端部180bがメダル受入流路29b内に突出するように付勢されている。この状態では、可動片180の被検知部180aが検知部183aの投光部と受光部の間に進入せず、検知部183aの投光部から受光部に照射される光を遮断することがないので、検知器183によりメダルの通過が検出されないようになっている。
[メイン制御部のメモリ領域とプログラムについて]
図7は、メイン制御部41が用いるメモリ領域のアドレスマップである。図7に示すように、メイン制御部41が用いるメモリ領域は、ROM41bに割り当てられたメモリ領域(0000H~7FFFH)と、RAM41cに割り当てられたメモリ領域(F000H~FFFFH)と、を含む。
ROM41bのメモリ領域は、プログラム及び固定データが格納されるプログラム/データ領域(0000H~26FFH)と、プログラムのタイトル、バージョン等の任意のデータを設定可能なROMコメント領域(2700H~277FH)と、後述するCALLV命令のサブルーチンの上位アドレス及びタイマ割込処理(メイン)の先頭アドレスが設定されるベクタテーブル領域(2780H~27A7H)と、メイン制御部41の内部機能をハードウェア的に設定するためのパラメータが設定されるHWパラメータ領域(27A8H~27FFH)と、アクセスが禁止される未使用領域(2800H~7FFFH)を含む。
ROM41bにおけるHWパラメータ領域に設定されるパラメータは、プログラム/データ領域で使用するROM領域の最終アドレス(HPRGEND)、アクセス禁止するRAM領域の開始アドレス(HRAMSTAT)及び最終アドレス(HRAMEND)を含む。
RAM41cのメモリ領域は、ワークとして使用可能な使用可能領域(F000H~F400H)と、メイン制御部41に搭載されている各機能を制御するためのレジスタ群が格納される内部機能レジスタ領域(F4B0H~F6FFH)と、アクセスが禁止される未使用領域(F401H~F4AFH、F700H~FFFFH)と、を含む。
図8は、メイン制御部41のROM41bにおけるプログラム/データ領域及びRAM41cにおける使用可能領域のアドレスマップである。
図8(a)に示すように、ROM41bにおけるプログラム/データ領域は、遊技の進行に係わる遊技プログラムが記憶される遊技プログラム領域と、遊技プログラムが用いる遊技データが記憶される遊技データ領域と、未使用領域1と、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、非遊技プログラムが用いる非遊技データが記憶される非遊技データ領域と、未使用領域2と、を含む。
尚、遊技の進行とは、遊技を構成する一連のプロセスを進行させることであり、スロットマシンであれば、賭数を設定してゲームを開始可能とする段階、ゲームを開始してリールを回転させる段階、リールを停止させて表示結果を導出させる段階、表示結果に応じてメダル等の価値を付与する段階、を進行させることである。
遊技の進行に係わる遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムと、がそれぞれ別個に割り当てられているとともに、遊技プログラム領域及び非プログラム領域のうちROM41bの記憶領域において後方に割り当てられていた非プログラム領域の手前の領域は、少なくとも16バイト以上の未使用領域1が割り当てられているため、遊技の進行に係わる遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムと、を記憶領域の違いに応じて容易に特定することができる。
また、遊技プログラム領域と遊技データ領域、非遊技プログラム領域と非遊技データ領域はそれぞれ連続する領域に割り当てられる一方、遊技の進行に係わる遊技プログラム領域及び遊技データ領域と、遊技の進行に係わらない非遊技プログラム及び非遊技データ領域と、が少なくとも16バイト以上の未使用領域1を挟んで連続しない領域に割り当てられているため、遊技の進行に係わる遊技プログラム領域及び遊技データ領域と、遊技の進行に係わらない非遊技プログラム及び非遊技データ領域と、を記憶領域の違いに応じて容易に特定することができる。
尚、上記において記憶領域の前後とは、記憶領域に割り当てられたアドレス値の大小関係であり、アドレスが小さい方が前方となり、アドレスが大きい方が後方となる。このため、一の記憶領域よりも後方に割り当てられた記憶領域とは、一の記憶領域よりもアドレス値が大きい記憶領域が該当し、一の記憶領域よりも前方に割り当てられた記憶領域とは、一の記憶領域よりもアドレス値が小さい記憶領域が該当する。
また、非遊技プログラム領域よりも後方に遊技プログラムが割り当てられ、非遊技プログラム領域よりも後方に割り当てられた遊技プログラムの手前に未使用領域が割り当てられた構成としても良く、このような構成においても遊技の進行に係わる遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムと、を記憶領域の違いに応じて容易に特定することができる。
また、遊技プログラム領域と、非遊技プログラム領域と、が未使用領域1を挟んで隣接する領域に割り当てられる構成としても良く、このような構成であっても、遊技の進行に係わる遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムと、を記憶領域の違いに応じて容易に特定することができる。
また、ROM41bのプログラム/データ領域の未使用領域1、2には、全ての領域に0値が格納されているため、遊技プログラム領域及び遊技データ領域と、非遊技プログラム領域及び非遊技データと、未使用領域1、2と、を容易に区別することができるとともに、未使用領域1、2に不正なデータが格納されている場合でも容易に発見することができる。
尚、ROM41bのプログラム/データ領域の未使用領域1、2における全ての領域に1が格納される構成としても良く、このような構成とした場合でも、遊技プログラム領域及び遊技データ領域と、非遊技プログラム領域及び非遊技データと、未使用領域1、2と、を容易に区別することができるとともに、未使用領域1、2に不正なデータが格納されている場合でも容易に発見することができる。
また、遊技プログラム領域と、非遊技プログラム領域と、が別個の領域に割り当たられた構成であれば、遊技プログラム領域と、非遊技プログラム領域と、が隣接する領域にわら当てられる構成としても良く、このような構成であっても遊技の進行に係わる遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムと、を記憶領域の違いに応じて容易に特定することができる。
また、遊技プログラム領域及び非遊技プログラム領域はいずれも、アドレスを2進数表記した場合に下位4桁の値が同じ0のアドレス(0H)から開始するようになっており、ROM41bのプログラム/データ領域のうち遊技の進行に係る遊技プログラム領域と、遊技の進行に係わらない非遊技プログラム領域と、を他の領域と容易に区別することができる。
また、遊技プログラム領域及び非遊技プログラム領域はいずれも、アドレスを2進数表記した場合に下位4桁の値が同じ0のアドレスから開始するだけでなく、16進数表記した場合に下位1桁の値が同じ0のアドレス(0H)から開始するので、アドレスを2進数表記した場合だけでなく、16進数表記した場合にも遊技プログラム領域と、非遊技プログラム領域と、を他の領域と容易に区別することができる。
尚、遊技プログラム領域及び非遊技プログラム領域がいずれも、アドレスを2進数表記したか、16進数表記したか、に関わらず、下位N(Nは1以上の自然数)桁が同じ値のアドレスから開始する構成であれば、遊技プログラム領域と、非遊技プログラム領域と、を他の領域と容易に区別することが可能であり、例えば、下位N(Nは1以上の自然数)桁の値が同じ1のアドレスから開始する構成でも同様の効果が得られるものである。
図8(b)に示すように、RAM41cの使用可能領域は、遊技プログラムがワークとして用いる遊技RAM領域と、非遊技プログラムがワークとして用いる非遊技RAM領域と、未使用領域4と、を含んでおり、遊技RAM領域には、特別ワークと、重要ワークと、一般ワークと、未使用領域3と、遊技プログラムがデータを退避する遊技スタック領域と、が含まれ、非遊技RAM領域には、遊技プログラムが参照可能な領域と、遊技プログラムが参照不可能な領域と、非遊技プログラムがデータを退避する非遊技スタック領域と、が含まれる。尚、本実施例では、遊技スタック領域と非遊技スタック領域とをそれぞれ異なる領域に個別に備える構成であるが、遊技プログラム及び非遊技プログラムが共用する一のスタック領域を備える構成としても良い。
未使用領域3は、遊技プログラム及び非遊技プログラムのいずれも使用しない領域であり、予め定められた容量の遊技RAM領域に対して余剰となった領域である。
また、未使用領域4は、遊技プログラム及び非遊技プログラムのいずれも使用しない16バイト以上の領域である。遊技RAM領域と、非遊技RAM領域とが、未使用領域4を挟んで連続しない領域に割り当てられているため、遊技の進行に係わる遊技プログラムが用いる遊技RAM領域と、遊技の進行に係わらない非遊技プログラムが用いる非遊技RAM領域と、を記憶領域の違いに応じて容易に特定することができる。
以下では、遊技プログラム領域、遊技データ領域及び遊技RAM領域をまとめて遊技領域と称す場合があり、非遊技プログラム領域、非遊技データ領域及び非遊技RAM領域をまとめて非遊技領域と称す場合がある。また、未使用領域1及び未使用領域2、未使用領域3及び未使用領域4をまとめて未使用領域と称す場合がある。
メイン制御部41は、HWパラメータ領域に設定されるパラメータに基づいて、ROM41bのプログラム/データ領域のうちアクセスが禁止された領域へのアクセスがあったとき、RAM41cの使用可能領域のうちアクセスが許可に設定されていない領域へのアクセスがあったとき、ROM41bのうちプログラム/データ領域以外の領域へのアクセスがあったとき、RAM41cのうち使用可能領域以外の領域へのアクセスがあったときに、すなわち正常な動作ではアクセスすることのないメモリ領域へのアクセスがあったときにイリーガルアクセスリセットを発生させることで、遊技の進行を不能化させるので、ROM41bの未使用領域や動作とは関係しない領域、RAM41cの未使用領域等に不正なプログラムが格納された場合であっても、不正なプログラムが実行されてしまうことを防止できる。
特に本実施例では、ROM41bのうちプログラムによってアクセスが許可されたプログラム/データ領域に遊技プログラム領域と、非遊技プログラム領域と、が割り当てられ、遊技プログラム領域よりも後方の非遊技プログラム領域の手前の領域に未使用領域1が割り当てられるとともに、HWパラメータ領域に設定されるパラメータに基づいて、プログラム/データ領域のうち遊技プログラム領域の先頭アドレスから非遊技プログラムの最終アドレスまでの領域を含む一かたまりの領域(遊技プログラム領域から非遊技データ領域までの領域)へのアクセスを一括して許可に設定する一方で、それ以外の領域、すなわちプログラム/データ領域のうち遊技プログラムや遊技データ、非遊技プログラム、非遊技データが格納されていない非遊技データよりも後の領域へのアクセスが禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
また、ROM41bのうちプログラムによってアクセスが許可されたプログラム/データ領域において非遊技プログラム領域よりも後方に遊技領域が割り当てられ、非遊技プログラム領域よりも後方の遊技プログラム領域の手前の領域に未使用領域が割り当てられるとともに、HWパラメータ領域に設定されるパラメータに基づいて、プログラム/データ領域のうち非遊技プログラム領域の先頭アドレスから遊技プログラムの最終アドレスまでの領域を含む一かたまりの領域へのアクセスを一括して許可に設定する一方で、それ以外の領域へのアクセスが禁止されるようにしても、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
尚、プログラム/データ領域に遊技プログラム領域と、非遊技プログラム領域と、が割り当てられ、遊技プログラム領域よりも後方の非遊技プログラム領域の手前の領域に未使用領域1が割り当てられるとともに、プログラム/データ領域のうち遊技プログラム領域を含む一かたまりの領域(遊技プログラム領域から遊技データ領域までの領域)、非遊技プログラムを含む一かたまりの領域(非遊技プログラム領域から非遊技データ領域までの領域)へのアクセスをそれぞれ許可に設定し、他の領域へのアクセスを禁止する構成としても良く、このような構成とした場合でも、プログラム/データ領域のうち遊技プログラムや非遊技プログラムが格納されていない領域へのアクセスが禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。また、ROM41bのうちプログラムによってアクセスが許可されたプログラム/データ領域において非遊技プログラム領域よりも後方に遊技領域が割り当てられ、非遊技プログラム領域よりも後方の遊技プログラム領域の手前の領域に未使用領域が割り当てられるとともに、プログラム/データ領域のうち遊技プログラム領域を含む一かたまりの領域(遊技プログラム領域から遊技データ領域までの領域)、非遊技プログラムを含む一かたまりの領域(非遊技プログラム領域から非遊技データ領域までの領域)へのアクセスをそれぞれ許可に設定し、他の領域へのアクセスを禁止する構成としても良く、このような構成とした場合でも、プログラム/データ領域のうち遊技プログラムや非遊技プログラムが格納されていない領域へのアクセスが禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
また、上記では、プログラム/データ領域においてアクセスを許可する領域そのものを設定する構成であるが、プログラム/データ領域においてアクセスを禁止する領域を設定することで、間接的にアクセスを許可する領域が設定される構成としても良い。
メイン制御部41は、HWパラメータ領域に設定されるパラメータに基づいて、プログラム走行を許可する指定エリア以外の領域においてユーザプログラムが実行された場合、すなわち正常な動作ではユーザプログラムが実行されることのない領域でユーザプログラムが実行された場合に、IAT回路506aがIAT発生信号を出力することで、遊技の進行を不能化させるので、ROM41bの未使用領域や動作とは関係しない領域、RAM41cの未使用領域等に不正なプログラムが格納された場合であっても、不正なプログラムが実行されてしまうことを防止できる。
特に本実施例では、ROM41bのうちプログラムによってアクセスが許可されたプログラム/データ領域に遊技プログラム領域と、非遊技プログラム領域と、が割り当てられ、遊技プログラム領域よりも後方の非遊技プログラム領域の手前の領域に未使用領域1が割り当てられるとともに、HWパラメータ領域に設定されるパラメータに基づいて、プログラム/データ領域のうち遊技プログラム領域、非遊技プログラム領域の各々について、IAT回路506aがプログラム走行を許可する指定エリアとして設定する一方で、それ以外の領域、すなわちプログラム/データ領域のうち遊技プログラムや非遊技プログラムが格納されていない領域でのプログラム走行が禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
また、ROM41bのうちプログラムによってアクセスが許可されたプログラム/データ領域において非遊技プログラム領域よりも後方に遊技領域が割り当てられ、非遊技プログラム領域よりも後方の遊技プログラム領域の手前の領域に未使用領域が割り当てられるとともに、HWパラメータ領域に設定されるパラメータに基づいて、プログラム/データ領域のうち遊技プログラム領域、非遊技プログラム領域の各々について、IAT回路506aがプログラム走行を許可する指定エリアとして設定する一方で、それ以外の領域でのプログラム走行が禁止されるようにしても、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
尚、プログラム/データ領域に遊技プログラム領域と、非遊技プログラム領域と、が割り当てられ、遊技プログラム領域よりも後方の非遊技プログラム領域の手前の領域に未使用領域1が割り当てられるとともに、HWパラメータ領域に設定されるパラメータに基づいて、プログラム/データ領域のうち遊技プログラム領域の先頭アドレスから非遊技プログラムの最終アドレスまでの領域を含む一かたまりの領域(遊技プログラム領域から非遊技データ領域までの領域)について、IAT回路506aがプログラム走行を許可する指定エリアとして一括して設定し、他の領域でのプログラム走行が禁止される構成としても良く、このような構成とした場合でも、プログラム/データ領域のうち遊技プログラムや非遊技プログラムが格納されていない領域でのプログラム走行が禁止されるため、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。また、ROM41bのうちプログラムによってアクセスが許可されたプログラム/データ領域において非遊技プログラム領域よりも後方に遊技領域が割り当てられ、非遊技プログラム領域よりも後方の遊技プログラム領域の手前の領域に未使用領域が割り当てられるとともに、HWパラメータ領域に設定されるパラメータに基づいて、プログラム/データ領域のうち非遊技プログラム領域の先頭アドレスから遊技プログラムの最終アドレスまでの領域を含む一かたまりの領域(遊技プログラム領域から非遊技データ領域までの領域)について、IAT回路506aがプログラム走行を許可する指定エリアとして一括して設定し、他の領域でのプログラム走行が禁止されるようにしても、不正プログラムや不正データによる意図しない制御が行われてしまうことを防止できる。
また、上記では、プログラム/データ領域においてプログラム走行を許可する領域そのものを設定する構成であるが、プログラム/データ領域においてプログラム走行を禁止する領域を設定することで、間接的にプログラム走行を許可する領域が設定される構成としても良い。
[プログラムが用いる命令について]
メイン制御部41が実行するプログラムは、プログラム全体の進行を管理するメインルーチンと、他のプログラムの実行中に呼び出されるサブルーチンとを含む。
また、メイン制御部41にプログラム/データ領域に格納されたプログラムを実行させる命令として、CALL命令を含む。
CALL命令は、メインルーチンまたはサブルーチンにおいて指定されたアドレスに格納されたサブルーチンを呼び出して実行させる命令である。メイン制御部41は、CALL命令によりサブルーチンを呼び出す場合には、呼び出し元のアドレスをスタック領域に格納し、指定されたアドレスに格納されたサブルーチンを呼び出して実行する。そして、当該サブルーチンの終了後、スタック領域に格納されている呼び出し元のアドレス、すなわちCALL命令を実行した呼び出し元のメインルーチンまたはサブルーチンのプログラムに復帰する。
また、CALL命令は、通常のCALL命令と、特殊なCALL命令であるCALLV命令と、を含む。通常のCALL命令は、上位アドレス及び下位アドレスの双方を指定して指定された上位アドレス及び下位アドレスによりアドレスを特定してサブルーチンを呼び出す命令であるのに対して、CALLV命令は、下位アドレスのみを指定することで、ROM41bのベクタテーブル領域に予め設定された上位アドレス及び指定された下位アドレスによりアドレスを特定してサブルーチンを呼び出す命令であり、通常のCALL命令に比較して少ないデータ量でサブルーチンを呼び出すことが可能となる。
RST命令は、予め定められた複数の特定アドレスに対応する値を指定することで、指定された値に対応する特定アドレスに格納されたサブルーチンを呼び出して実行させる命令であり、上記した通常のCALL命令やCALLV命令に比較して少ないデータ量でサブルーチンを呼び出すことが可能となる。メイン制御部41は、RST命令によりサブルーチンを呼び出す場合には、呼び出し元のアドレスをスタック領域に格納し、指定された値に対応する特定アドレスに格納されたサブルーチンを呼び出して実行する。そして、当該サブルーチンの終了後、スタック領域に格納されている呼び出し元のアドレス、すなわちRST命令を実行した呼び出し元のメインルーチンまたはサブルーチンに復帰する。
ジャンプ命令は、メインルーチンまたはサブルーチンにおいて指定されたアドレスに格納されたプログラムに移動する命令である。メイン制御部41は、ジャンプ命令により指定されたアドレスに格納されたプログラムに移動し、移動先のプログラムを実行する。この場合には、CALL命令やRST命令と異なり、移動後のプログラムが終了しても移動元のプログラムに復帰することはない。
ROM41bに格納された遊技プログラムのうち特に使用頻度の高いサブルーチンは、ROM41bの遊技プログラム領域のうち先頭アドレスが特定値(例えば00H)となる領域に格納されている。一方、ROM41bのベクタテーブル領域には、CALLV命令で呼び出すサブルーチンの上位アドレスとして特定値が設定されている。そして、メイン制御部41は、先頭アドレスの上位アドレスが特定値となるサブルーチンを呼び出すときに、CALLV命令を用いて下位アドレスのみ指定することで、上位アドレスとしてベクタテーブル領域に設定された特定値を特定し、下位アドレスとして指定された下位アドレスを特定し、上位及び下位を合わせたアドレスに格納されたサブルーチンを呼び出して実行する。このため、遊技プログラムのうち特に使用頻度の高いサブルーチンを呼び出す際に用いるアドレスの一部を構成する上位アドレスが特定値として予めベクタテーブルに設定されており、ベクタテーブルに設定された特定値に基づいてアドレスが特定されるため、上位アドレス及び下位アドレスの双方を指定してプログラムを呼び出す通常のCALL命令に比較して少ないデータ量にてサブルーチンを呼び出すことが可能となり、これらのサブルーチンを呼び出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
本実施例では、CALLV命令により用いられるROM41bのベクタテーブル領域、及びRST命令により用いられるROM41bの特定アドレスの領域には、遊技プログラムのサブルーチンの先頭が格納されており、CALLV命令及びRST命令では通常のCALL命令に比較して少ないデータ量でサブルーチンを呼び出すことが可能であるため、遊技プログラムにおいてCALLV命令やRST命令を用いることで、当該遊技プログラムのデータ容量を削減することができるようになっている。また、ROM41bのベクタテーブル領域及び特定アドレスの領域には、遊技プログラムのサブルーチンの先頭が格納されており、非遊技プログラムの先頭が格納されないようになっており、CALLV命令及びRST命令により非遊技プログラムが呼び出されるようになってしまい、遊技プログラムのデータ容量の削減を阻害することがないようになっている。
尚、ROM41bに格納された非遊技プログラムのうち特に使用頻度の高いサブルーチンを、ROM41bの非遊技プログラム領域のうち先頭アドレスが特定値となる領域に格納するとともに、ROM41bのベクタテーブル領域に、CALLV命令で呼び出すサブルーチンの上位アドレスとして特定値を設定し、メイン制御部41が先頭アドレスの上位アドレスが特定値となるサブルーチンを呼び出すときに、CALLV命令を用いて下位アドレスのみ指定することで、これらのサブルーチンを呼び出して実行する構成とした場合でも、上位アドレス及び下位アドレスの双方を指定してプログラムを呼び出す通常のCALL命令に比較して少ないデータ量にてサブルーチンを呼び出すことが可能となり、これらのサブルーチンを呼び出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
また、CALLV命令で呼び出す際に用いる上位アドレスを、ベクタテーブル領域ではなく、メイン制御部41の特定のレジスタに設定する構成としても良い。
また、CALLV命令に限らず、アドレスの一部が、ベクタテーブル領域に格納された値、特定のレジスタに設定された値等を用いて特定され、アドレスの残りの部分を指定することで、サブルーチンの格納アドレスが特定可能となる特殊なCALL命令を用いる構成であれば、サブルーチンを呼び出す際にアドレスを指定するためのプログラムの無駄を削減することができる。また、ベクタテーブル領域を構成する複数の領域に、それぞれアドレスよりもデータ量の小さい識別値を割り当て、これら複数の領域にそれぞれサブルーチンの格納アドレスを設定するとともに、識別値を指定することで、識別値に対応する領域に格納されたサブルーチンの格納アドレスを特定可能となる特殊なCALL命令を用いる構成であっても、サブルーチンを呼び出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
また、ROM41bに格納された遊技データのうち特に使用頻度の高い遊技データを、ROM41bの遊技データ領域のうち先頭アドレスが特定値となる領域に格納するとともに、ROM41bのベクタテーブル領域に、特殊なLD命令で読み出すデータの上位アドレスとして特定値を設定し、メイン制御部41が先頭アドレスの上位アドレスが特定値となる遊技データを呼び出すときに、特殊なLD命令を用いて下位アドレスのみ指定することで、これらの遊技データを読み出す構成とした場合でも、上位アドレス及び下位アドレスの双方を指定してデータを読み出す通常のLD命令に比較して少ないデータ量にて遊技データを呼び出すことが可能となり、これらの遊技データを読み出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
また、ROM41bに格納された非遊技データのうち特に使用頻度の高い非遊技データを、ROM41bの非遊技データ領域のうち先頭アドレスが特定値となる領域に格納するとともに、ROM41bのベクタテーブル領域に、特殊なLD命令で読み出すデータの上位アドレスとして特定値を設定し、メイン制御部41が先頭アドレスの上位アドレスが特定値となる非遊技データを呼び出すときに、特殊なLD命令を用いて下位アドレスのみ指定することで、これらの非遊技データを読み出す構成とした場合でも、上位アドレス及び下位アドレスの双方を指定してデータを読み出す通常のLD命令に比較して少ないデータ量にて非遊技データを呼び出すことが可能となり、これらの非遊技データを読み出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
メイン制御部41は、システムリセット信号の入力によるシステムリセット、WDT(ウォッチドックタイマ、図示略)によるWDTリセット、前述のイリーガルアクセスリセットが発生することで起動することとなるが、この際、ベクタテーブル領域に設定された値、すなわちCALLV命令のサブルーチンの上位アドレス及びタイマ割込処理(メイン)の先頭アドレスが、プログラム領域のうちプログラム等が実際に格納された領域を示す値であるか、またはFFFFH(未使用のベクタテーブル領域に設定される値)であるか、を判定し、ベクタテーブル領域に設定された値がプログラムの設定される領域外を示す値でもなく、FFFFHでもない場合には、起動しないようになっており、割込の発生等により本来意図していない処理が実行されてしまうことを事前に防止できる。
メイン制御部41にプログラム/データ領域に格納されたデータを読み出す命令としてLD命令を含む。LD命令は、メインルーチンまたはサブルーチンにおいて指定されたアドレスに格納されたデータを指定されたレジスタに読み出す命令である。メイン制御部41は、LD命令により指定されたアドレスに格納されたデータを読み出し、LD命令により指定されたレジスタに読み出したデータを格納する。
また、LD命令は、通常のLD命令と、特殊なLD命令であるLDQ命令と、を含む。通常のLD命令は、上位アドレス及び下位アドレスの双方を指定して指定された上位アドレス及び下位アドレスによりROM41bまたはRAM41cの特定領域に格納されているデータを読み出す命令であるのに対して、LDQ命令は、下位アドレスのみを指定することで、前述のRAM41cの内部機能レジスタ領域における特別なレジスタ(Qレジスタ)に予め設定された上位アドレス及び指定された下位アドレスによりアドレスを特定してROM41bまたはRAM41cの特定領域に格納されているデータを読み出して指定されたレジスタに読み出したデータを格納する命令であり、通常のLD命令に比較して少ないデータ量で所定のデータを所定のレジスタに格納することが可能となる。
メインルーチンまたはサブルーチンにおいてROM41b、RAM41cの特定領域に格納されているデータを読み出す場合に、特殊なLD命令であるLDQ命令を用いることで、特定領域を示す全てのアドレス(上位部分及び下位部分)を指定するのではなく、アドレスの下位部分のみを指定して特定領域のデータを読み出すことが可能である。LDQ命令を用いることで、上位アドレス及び下位アドレスの双方を指定してデータを読み出す通常のLD命令に比較して少ないデータ量にてデータを読み出すことが可能となり、データを読み出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
また、RAM41cの遊技RAM領域に格納された遊技データのうち特に使用頻度の高い遊技データを、遊技RAM領域のうち先頭アドレスが特定値となる領域に格納するとともに、当該特定値を特別なレジスタ(Qレジスタ)に遊技データの上位アドレスとして設定し、当該遊技データをメイン制御部41が読み出すときに、LDQ命令を用いて下位アドレスのみ指定することで、遊技データを読み出す構成とした場合に、上位アドレス及び下位アドレスの双方を指定してデータを読み出す通常のLD命令に比較して少ないデータ量にて遊技データを読み出すことが可能となり、これらの遊技データを読み出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
また、メイン制御部41は、特別なレジスタ(Qレジスタ)に設定する値を、メインルーチンまたはサブルーチンにおいて変更することが可能であり、後述するように起動時において行う初期設定処理での内蔵レジスタの設定において、特別なレジスタ(Qレジスタ)に、特に遊技プログラムによる使用頻度の高い遊技データの先頭アドレスを示す特定値を設定するようになっている。また、遊技プログラムから非遊技プログラムを呼び出す際には、特別なレジスタ(Qレジスタ)に設定する値を退避し、遊技プログラムに復帰した際に、特別なレジスタ(Qレジスタ)に設定する値を退避していた値に再び設定するようになっている。これらにより、遊技プログラムが実行されているときには、遊技プログラムによる使用頻度の高い遊技データの先頭アドレスを示す特定値が特別なレジスタ(Qレジスタ)に設定されるようになっており、遊技プログラムは、LDQ命令を用いて使用頻度の高い遊技データを読み出すことができるようになっている。
尚、特殊なLD命令としてLDQ命令で読み出す際に用いる上位アドレスを、特別なレジスタ(例えば、Qレジスタ)以外の所定の記憶領域、例えば、ベクタテーブル領域に設定する構成としても良く、ベクタテーブル領域などの所定の記憶領域に格納された値を用いてアドレスの一部が特定され、アドレスの残りの部分をプログラムにより指定することで、データの格納アドレスが特定可能となる特殊なLD命令を用いる構成であれば、データを読み出す際にアドレスを指定するためのプログラムの無駄を削減することができる。また、例えば、ベクタテーブル領域を構成する複数の領域に、それぞれアドレスよりもデータ量の小さい識別値を割り当て、これら複数の領域にそれぞれデータの格納アドレスを設定するとともに、識別値を指定することで、識別値に対応する領域に格納されたデータの格納アドレスを特定可能となる特殊なLD命令を用いる構成であっても、データを読み出す際にアドレスを指定するためのプログラムの無駄を削減することができる。
また、本実施例では、Qレジスタに特定値として、特定プログラムにおいて用いられる値と同一の値を記憶させる構成であるが、特定プログラムにおいて用いられる値と異なる値を記憶させる構成としても良い。例えば、非特プログラムが呼び出される際に、Qレジスタに特定値として特定プログラムにおいて用いられる値と異なる値であって、非遊技プログラムにおける使用頻度の高いデータの記憶されている記憶領域の先頭アドレスの値を記憶させ、非特定プログラムにおいてデータを呼び出す際にLDQ命令を用いることで、非特定プログラムのデータ容量を削減することができる。
遊技プログラムとは、遊技の進行に係わるプログラムであり、当該プログラムに基づく処理を実行しないと、遊技の進行に支障をきたす処理を実行するためのプログラムである。一方、非遊技プログラムとは、遊技の進行に係わらないプログラムであり、遊技プログラムから呼び出されて当該プログラムに基づく処理が実行されずに遊技プログラムに復帰した場合でも、遊技を進行させることが可能な処理を実行するためのプログラムである。
遊技プログラムでは、前述のCALL命令やLD命令について、特殊なCALL命令であるCALLV命令、RST命令、特殊なLD命令であるLDQ命令を含むいずれの命令も使用されることがあり、特殊なCALL命令を用いてアドレスを特定してサブルーチンを呼び出すことも、特殊なLD命令を用いてROM41b、RAM41cにおける特定の遊技データ、非遊技データを読み出すことも可能になっている。
非遊技プログラムでは、前述のCALL命令について、通常のCALL命令が使用される一方、特殊なCALL命令であるCALLV命令が使用されないようになっており、通常のCALL命令を用いてアドレスを特定してサブルーチンを呼び出すことがある一方で、特殊なCALL命令を用いてサブルーチンを呼び出すことがなく、非遊技プログラムによりROM41bにおける遊技プログラム領域にアクセスされてしまうことがないようになっている。
また、非遊技プログラムでは、前述のLD命令について、通常のLD命令、特殊なLD命令であるLDQ命令も使用されることがあり、通常のLD命令を用いてアドレスを特定して所定のデータを読み出すことも、特殊なLD命令を用いてサブルーチンやデータを読み出すことも可能となっている。
このように、本実施例では、特殊なCALL命令であるCALLV命令やRST命令により用いられるROM41bのベクタテーブル領域及び特定アドレスの領域には、遊技プログラムのサブルーチンの先頭が格納されており、これらの特殊なCALL命令を用いることで遊技プログラムを呼び出すことが可能になっている。このように特殊なCALL命令により遊技プログラムのみを呼び出すことが可能な場合には、非遊技プログラムにより特殊なCALL命令が用いられることで、非遊技プログラムにより遊技プログラムが呼び出されてしまい、意図しない遊技の進行が行われたり、意図しない遊技プログラムにより遊技データが書き換えられたりしてしまう虞がある。これに対して、非遊技プログラムにより特殊なCALL命令によらず通常CALL命令によりプログラムを呼び出すことで、ベクタテーブル領域及び特定アドレスの領域を用いないことにより、意図せず遊技プログラムが呼び出されて遊技の進行が行われることを防止できるようになっている。
また、本実施例では、特殊なLD命令であるLDQ命令は、特別なレジスタ(Qレジスタ)に記憶されている特定値を用いて遊技RAM領域を特定して、所定の遊技データを読み出すことが可能になっており、非特定プログラムでも特殊なLD命令を使用することで、非特定プログラムのデータ容量を削減しつつ、遊技データを容易に読み出すことができるようになっている。
尚、特殊なLD命令であるLDQ命令は、特別なレジスタ(Qレジスタ)に記憶されている特定値を用いて遊技RAM領域を特定して、所定の遊技データを読み出すことが可能になっているが、特殊なLD命令により遊技データを読み出す際に、特別なレジスタ(Qレジスタ)の特定値が破損している場合には、遊技RAM領域を正常に特定することができず、意図しないデータが読み出されてしまう虞がある。これに対して、非遊技プログラムにより特殊なLD命令であるLDQ命令によらず通常のLD命令によりデータを読み出すようにすることで、遊技プログラムから非遊技プログラムに切り替わったときに特定値が破損した場合でも、非遊技プログラムから遊技RAM領域を特定してデータが読み出されるので、意図しないデータが読み出されることを防止できる。
[遊技の流れについて]
本実施例においてメイン制御部41のメインCPU41aは、図9に示すように、遊技プログラムに基づく処理において非遊技プログラムを呼び出して非遊技プログラムに基づく処理を実行し、非遊技プログラムに基づく処理の終了後、遊技プログラムに基づく処理に復帰する。
図9に示すように、メインCPU41aは、原則として遊技プログラムに基づく処理を実行するにあたり、遊技データ領域の遊技データを参照して遊技プログラムに基づく処理を実行するとともに、遊技RAM領域をワークとして使用し、遊技RAM領域の内容を参照及び更新することが可能である。また、メインCPU41aは、原則として非遊技プログラムに基づく処理を実行するにあたり、非遊技データ領域の遊技データを参照して非遊技プログラムに基づく処理を実行するとともに、非遊技RAM領域をワークとして使用し、非遊技RAM領域の内容を参照及び更新することが可能である。
また、メインCPU41aは、遊技プログラムに基づく処理を実行するにあたり、非遊技データ領域を参照することはなく、非遊技RAM領域を更新することはないが、非遊技RAM領域を参照することは可能であり、非遊技プログラムに基づく処理を実行するにあたり、遊技データ領域を参照することはなく、遊技RAM領域を更新することはないが、遊技RAM領域を参照することは可能である。
また、遊技プログラムに基づく処理は、非遊技RAM領域のうち遊技プログラムに必要な特定の領域(例えば、異常の検知を示すエラーフラグの設定領域等)のみ参照可能とされており、非遊技プログラムに基づく処理は、遊技RAM領域のうち非遊技プログラムに必要な特定の領域(例えば、内部当選フラグの設定領域、遊技状態の設定領域、RTの設定領域等)のみ参照可能とされている。また、非遊技RAM領域のうち遊技プログラムに基づく処理が参照可能な特定の領域、遊技RAM領域のうち非遊技プログラムに基づく処理が参照可能な特定の領域は、連続するアドレス領域に割り当てられることが好ましいが、一部または全部が連続しないアドレス領域に割り当てられる構成であっても良い。
このように本実施例では、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技プログラムが参照する遊技データが読み出し可能に記憶される遊技データ領域と、遊技プログラムが参照するワークデータが読み出し及び書き込み可能に記憶される遊技RAM領域と、遊技プログラムによって呼び出されるプログラムであり、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、非遊技プログラムが参照する非遊技データが読み出し可能に記憶される非遊技データ領域と、非遊技プログラムが参照するワークデータが読み出し及び書き込み可能に記憶される非遊技RAM領域と、がそれぞれ別個に割り当てられているため、遊技プログラム、遊技データ及び遊技プログラムのワークデータと、非遊技プログラム、非遊技データ及び非遊技プログラムのワークデータと、を記憶領域の違いに応じて容易に特定することができる。
また、遊技プログラム領域及び遊技データ領域と、非遊技プログラム領域及び非遊技データ領域と、を分けることで、それぞれの機能に応じてROM41bに占める領域をコンパクトに管理することができるため、各領域において該当するデータを特定することがさらに容易となる。
また、本実施例では、遊技プログラムを実行する際に、非遊技RAM領域を参照することが可能であり、非遊技プログラムを実行する際に、遊技RAM領域を参照することが可能であるため、遊技プログラムを実行するにあたり、非遊技プログラムが使用していたデータを簡単に利用することができ、非遊技プログラムを実行するにあたり、遊技プログラムが使用していたデータを簡単に利用することができる。一方で、遊技プログラムを実行する際に、非遊技RAM領域を更新することは不可能であり、非遊技プログラムを実行する際に、遊技RAM領域を更新することは不可能であるため、遊技プログラムが非遊技プログラムの処理に影響を及ぼすことなく、非遊技プログラムが遊技プログラムの処理に影響を及ぼすことがない。
また、本実施例では、遊技プログラムに基づく処理は、非遊技RAM領域のうち遊技プログラムに必要な特定の領域(例えば、異常の検知を示すエラーフラグの設定領域等)のみ参照可能とされており、非遊技プログラムに基づく処理は、遊技RAM領域のうち非遊技プログラムに必要な特定の領域(例えば、内部当選フラグの設定領域、遊技状態の設定領域、RTの設定領域等)のみ参照可能とされているので、遊技プログラムが非遊技RAM領域において参照可能なデータ、非遊技プログラムが参照可能なデータが特定の領域に制限されているため、遊技プログラムまたは非遊技プログラムの参照先を容易に特定することができる。
メイン制御部41が遊技プログラム及び非遊技プログラムを実行することで行う各種処理の制御内容について、図10~図30に基づいて説明する。
[メイン制御部41の起動時の処理と初期設定処理について]
メイン制御部41が行う起動時の処理と初期設定処理について、図10に基づいて説明する。起動時の処理、初期設定処理は、遊技プログラムに含まれるサブルーチンである。
メイン制御部41は、スロットマシン1への電力供給が開始された際に、リセットの発生によりタイマ割込みが禁止に設定された状態で起動し、ROM41bに格納されているプログラムに従って各種処理を行う。起動した後は、まず、遊技プログラムに含まれる起動時設定処理を行って、すべての出力ポート0~9を初期化し、メイン制御部41が備える内部レジスタをROM41bの所定領域に予め設定されている内蔵レジスタ初期化テーブルに基づいて初期化した、遊技プログラムに含まれる初期設定処理を行う。
図10に示すように、初期設定処理はタイマ割込みが禁止された状態で開始され、初期設定処理では、まず、入力ポートの所定領域を参照して(Sa1)、電断検出回路48から出力される電断検出信号がON状態であるか否かを判定する(Sa2)。そして、電断検出信号がON状態である場合には、電断検出信号がOFF状態となるまで待機する。その後、スロットマシン1の電源電圧が正常となり、電断検出信号がOFF状態となった後は、RAM41cの所定領域のパリティを算出し(Sa3)、スタックポインタに予め定められた初期アドレスを設定する(Sa4)。そして、Sa3のステップにおいて算出したパリティが正常であるか否かを判定し(Sa5)、パリティが正常ある場合には、電断時にRAM41cの所定領域に設定されたRAM破壊診断用固定データを取得して(Sa6)、当該RAM破壊診断用固定データに基づきRAM41cの記憶内容が破壊されていないか否かを診断する(Sa7)。
Sa5のステップにおいてパリティが正常であると判定した場合、及びSa7のステップにおいてRAM41cの記憶内容を診断した場合は、Sa3のステップにおいて算出したRAMのパリティとSa7における診断の結果に基づいて、RAM41cに異常があるか否かを判定する(Sa8)。尚、RAM41cに異常がある場合とは、パリティが正常でない場合、またはパリティが正常であるが記憶内容に異常があると診断した場合である。
そして、RAM41cに異常がある場合には、メイン制御部41が備えるレジスタのうち演算結果が格納されるフラグレジスタの値を、遊技RAM領域の遊技スタック領域に所定の順序で記憶させることで退避させた後(Sa9)、非遊技プログラムに含まれる非遊技RAM領域初期化処理を呼び出して行う(Sa10)。そして、非遊技RAM領域初期化処理において、RAM41cの非遊技RAM領域を初期化した後、初期設定処理に戻る。そして、初期設定処理に戻った際には、Sa9のステップにおいて遊技スタック領域に退避させたフラグレジスタの値を、退避させるときと逆の順序で遊技スタック領域から順次読み出してフラグレジスタに設定することで、RAM領域初期化処理を行う前の状態にフラグレジスタを復帰させる(Sa11)。
非遊技RAM領域初期化処理では、まず、呼び出し元の遊技プログラムにより使用されていたスタックポインタSPにより示される遊技スタック領域の現在のアドレスの値を、非遊技RAM領域の所定領域に記憶させて退避させる。その後、当該スタックポインタSPの値として非遊技スタック領域の所定値(前回の非遊技プログラムの終了時にスタックポインタSPにより示されるアドレスとして非遊技RAM領域の所定領域に記憶されている値)を設定することで、スタックポインタSPを非遊技プログラム用に設定する。そして、上述のフラグレジスタを含むメイン制御部41が備えるすべてのレジスタの値を、スタックポインタSPにより特定される非遊技RAM領域の非遊技スタック領域に所定の順序で記憶させることで退避させる。その後、初期化対象RAMの先頭アドレス(未使用領域4の最初のアドレス)と終了アドレス(非遊技RAM領域の最後のアドレス)を指定し、当該先頭アドレスを指定アドレスの初期値として指定アドレスのデータをクリアした後に指定アドレスを次のアドレスに更新する処理を、指定アドレスが当該終了アドレスとなるまで繰り返し実行することで、初期化対象RAMの先頭アドレスから終了アドレスまでの領域(本実施例では、未使用領域4の最初から非遊技RAM領域の最後までの領域)を初期化する。そして、非遊技RAM領域初期化処理を開始した際に非遊技スタック領域に記憶させて退避させていたレジスタの値を、退避させるときと逆の順序で非遊技スタック領域から順次読み出して、当該順序に対応するレジスタに設定することで、非遊技RAM領域初期化処理を開始したときの状態にすべてのレジスタを復帰させる。その後、非遊技RAM領域初期化処理を開始した際に非遊技RAM領域の所定領域に退避させたスタックポインタSPの値を、スタックポインタSPに設定することで、非遊技RAM領域初期化処理を開始したときの状態にスタックポインタSPを復帰させて、非遊技RAM領域初期化処理を終了させる。
尚、非遊技RAM領域初期化処理において、初期化対象RAMの先頭アドレスと終了アドレスとを指定することで、初期化対象RAMの容量を算出し、当該容量分のRAM領域を初期化対象RAMの先頭アドレスから順次クリアすることで、初期化対象RAMの先頭アドレスから終了アドレスまでの領域を初期化する構成としても良い。
Sa8のステップにおいてRAM41cに異常がないと判定した場合、及びSa11のステップにおいてレジスタを復帰させた場合は、RAM41cに設定されているRAM破壊診断用固定データをクリアして(Sa12)、RAM41cに異常がある場合に初期化処理を行う対象となる遊技RAM領域のアドレスを指定するためのRAM破壊時初期化開始アドレスを設定する(Sa13)。その後、入力ポート2を参照して設定キースイッチ37がON状態であるか否かを判定する(Sa14)。
Sa14のステップにおいて設定キースイッチ37がON状態であると判定した場合は、設定変更処理を行う。設定変更処理では、リセット/設定スイッチ38及びスタートスイッチ7が所定の手順で操作されることにより設定値が確定され、設定キースイッチ37がOFFにされたことが検出されることで、設定変更処理を終了して、遊技を進行可能な状態に移行する。また、設定変更処理では、設定変更処理を開始する際に、設定変更処理を開始する旨を示す設定コマンド(開始)をサブ制御部91に対して送信し、設定変更処理を終了する際に、設定変更処理を終了する旨を示す設定コマンド(終了)するようになっている。また、設定変更処理では、設定変更処理を終了する際に、設定変更時の初期化対象RAM領域の先頭アドレスを指定し、メイン処理のSb47のステップに復帰する。そして、Sb47のステップにおいてRAM初期化処理が行われることで、設定変更時の初期化対象RAM領域の先頭アドレスから遊技RAM領域の終端のアドレスまでの領域、すなわちすべての遊技RAM領域が初期化されるようになっている。尚、RAM41cの使用中のスタック領域を除く全ての遊技RAM領域を初期する構成としても良い。
Sa14のステップにおいて設定キースイッチ37がON状態でないと判定した場合は、Sa3のステップにおいて算出したRAMのパリティとSa7における診断結果に基づいて、RAM41cに異常があるか否かを判定し(Sa15)、RAM41cに異常がないと判定した場合には、外部出力信号を出力するための出力バッファをクリアする(Sa16)。また、RAM41cの所定領域に設定されており、後述のメイン処理においてリールの回転エラーが検出された回数を計数するためのリールエラーカウンタをクリアする(Sa17)。その後、RAM41cの記憶内容に基づいてスタックポインタSPに電断時のアドレスを設定することで、スタックポインタを電断時の状態に復帰させ(Sa18)、ポート入力処理を2回連続で行う(Sa19、Sa20)。
ポート入力処理は、パラレル入力ポート511に入力される各種スイッチ類の検出信号等の入力状態に関する入力状態データ(各種スイッチ類の現在の入力状態を示す入力データ、前回と今回の入力データが同じ状態である旨を示す確定データ、前回から確定データが変化した旨を示すエッジデータ)を更新する処理である。RAM41cの遊技RAM領域の所定領域には、各種スイッチ類の入力状態データを格納するポート入力バッファ0~2が設けられており、ポート入力処理により更新される各種スイッチ類の入力状態データは、その種類毎に予め定められたポート入力バッファの所定ビットに格納されるようになっている。ポート入力処理では、パラレル入力ポート511の入力ポート0~2にされる各種スイッチ類の検出状態(ON状態またはOFF状態)を入力データとして、ポート入力バッファの所定ビットに格納する。また、前回と今回のポート入力処理での検出状態(ON状態またはOFF状態)を比較して、今回と前回の入力データが同じ状態である場合には、今回の入力データの検出状態を示すように確定データを更新する一方、今回と前回の入力データが異なる状態である場合には、前回の確定データを維持する。また、今回と前回の確定データを比較して、確定データがOFF状態からON状態に変化した場合には、確定データがOFF状態からON状態に変化した旨を示すONエッジデータをポート入力バッファ0~2の所定ビットに格納し、確定データがON状態からOFF状態に変化した場合には、確定データがON状態からOFF状態に変化した旨を示すOFFエッジデータをポート入力バッファ0~2の所定ビットに格納する。ポート入力バッファに格納された各種スイッチ類の入力データ、確定データ、エッジデータは、遊技プログラム及び非遊技プログラムから参照することが可能である。
また、初期設定処理では、ポート入力処理を2回連続して行うことで、その後、ポート入力処理が行われる際に、初期設定処理が行われた以後の各種スイッチ類の入力状態すなわちスロットマシン1への電力供給が再開された後の各種スイッチ類の入力状態に基づいて、各種スイッチ類の検出信号等の入力状態に関する入力状態データが作成されるので、意図しない入力状況が特定されてしまうことを防止できるようになっている。また、ポート入力処理において、3回以上のポート入力処理により取得された入力データ(例えば、今回、前回及び前々回の入力データ)に基づいて確定データを作成する構成でも良い。このような構成では、確定データを作成するために必要なポート入力処理の回数よりも1回少ない回数連続してポート入力処理を初期設定処理において行う構成とすることで、初期設定処理が行われた後にポート入力処理が行われる際に、初期設定処理が行われた以後の各種スイッチ類の入力状態に基づいて入力状態データを作成させることができる。
Sa19及びSa20のステップにおいてポート入力処理を行った後は、所定の入力ポートを参照して(Sa21)、リセット/設定スイッチ38がON状態であるか否かを判定し(Sa22)、リセット/設定スイッチ38がON状態である場合には、当該リセット/設定スイッチ38がON状態である旨を示すステータスデータをRAM41cの所定領域に設定する(Sa23)。
Sa22のステップにおいてリセット/設定スイッチ38がON状態でないと判定した場合、及びSa23のステップにおいてステータスデータを設定した後は、電断前の制御状態に復帰した旨を示す復帰コマンドをサブ制御部91に送信した後(Sa24)、タイマ割込み処理(メイン)のコマンド送信処理において、ドア開放検出スイッチ25の検出状態を示すドアコマンドを送信する旨を示すドアコマンド送信フラグをRAM41cの所定領域に設定する(Sa25)。コマンド送信処理では、通常、ドア開放検出スイッチ25の検出状態が変化した場合にドアコマンドを送信するが、RAM41cの所定領域にドアコマンド送信フラグが設定されている場合には、ドア開放検出スイッチ25の検出状態が変化したか否かにかかわらず、ドア開放検出スイッチ25の検出状態を示すドアコマンドを送信する。
そして、Sa25のステップにおいてドアコマンド送信フラグを設定した後は、すべてのレジスタをRAM41cに記憶されている電断前の状態に復帰させ(Sa26)、タイマ割込みを許可に設定して(Sa27)、初期設定処理を終了させてタイマ割込処理(メイン)に移行させた後、スロットマシン1への電力供給が停止される前に実行していたメイン処理における処理に復帰する。
一方、Sa15のステップにおいて、RAM41cに異常があると判定した場合には、遊技RAM初期化処理を行って(Sa28)、Sa13のステップにおいて設定したRAM破壊時初期化開始アドレスからRAM41cの遊技RAM領域の終端までの領域を初期化する。その後、Sa9~Sa11のステップまでの処理と同様に、レジスタのうちフラグが設定されるフラグレジスタの値を遊技RAM領域の遊技スタック領域に退避させた後(Sa29)、非遊技プログラムに含まれる非遊技RAM領域初期化処理を呼び出して行って(Sa30)、RAM41cのすべての非遊技RAM領域を初期化した後、呼び出し元に戻り、Sa29のステップにおいて退避させたレジスタを復帰させる(Sa31)。
Sa31のステップにおいてレジスタを復帰させた後は、ドアコマンド送信フラグを設定し(Sa32)、タイマ割込みを許可に設定し(Sa33)、RAM41cに異常がある旨を示すRAM異常エラーコード(E8)を所定のレジスタに準備して(Sa34)、初期設定処理を終了させてエラー処理に移行させる。
尚、エラー処理では、遊技の進行が不能化されるエラー状態に制御する。また、所定のレジスタに準備されているエラーコード(E8)を特定可能なエラーコマンドをサブ制御部91に対して送信し、当該エラーコード(E8)をRAM41cの所定領域にその他の処理(例えば、後述するセンサ監視処理等)でも参照可能なエラーフラグとして設定する。また、当該エラーコード(E8)を遊技補助表示器12に表示させるように制御する。その後は、所定のレジスタに準備されているエラーコード(E8)に応じたエラー状態の解除条件が成立したことが特定されるまでエラー状態の制御を行う。RAM異常エラーコード(E8)が所定のレジスタに準備されてエラー状態に移行された場合には、設定キースイッチ37をONにした状態で電源スイッチ39を投入することによって、設定変更状態に移行させてすべての遊技RAM領域を初期化させることで、RAM41cのデータの異常を確実に解消してエラー状態を解除することができるようになっている。一方、設定キースイッチ37をON状態にせずに電源スイッチ39をONにした場合には、RAM41cの異常が再び検出されて、再度、エラー状態となる。
このように、メイン制御部41は、スロットマシン1への電力供給が開始された後には、初期設定処理を最初に行うようになっており、初期設定処理では、スロットマシン1への電力供給が開始された際のメイン制御部41の状態に応じて、タイマ割込処理(メイン)、設定変更処理、エラー処理のいずれかに移行させる。そして、これらの処理に移行させる際に、移行させる処理の種類を特定可能なコマンドをサブ制御部91に対して送信するようになっており、タイマ割込処理(メイン)に移行させる場合すなわちスロットマシン1への電力供給が停止される前の制御状態に復帰した場合には、復帰コマンドをサブ制御部91に対して送信し、設定変更処理を開始して設定変更状態に移行する場合には、設定コマンド(開始)をサブ制御部91に対して送信し、RAM41cの異常によりエラー処理を開始してエラー状態に移行する場合には、エラーコマンドをサブ制御部91に対して送信する。
尚、メイン制御部41は、初期設定処理から設定変更処理に移行した後は、設定変更状態を経て、ゲームの進行が可能な状態に復帰するようになっており、当該ゲームの進行が可能な状態に復帰する際には、当該設定変更状態が終了されることを特定可能な設定コマンド(終了)をサブ制御部91に対して送信する一方で、復帰コマンドは送信しない。また、RAM41cの異常によりエラー処理に移行した後は、上述のように設定変更処理に移行されてエラー状態が解除されることで、ゲームの進行が可能な状態に復帰するようになっており、エラー処理が終了されてゲームの進行が可能な状態に復帰する場合にも、サブ制御部91に対して復帰コマンドを送信しない。
このように、本実施例のメイン制御部41は、スロットマシン1への電力供給が開始されることで起動し、遊技プログラムに含まれる起動時設定処理を行い、当該起動時設定処理によりすべての出力ポート0~9を初期化するようになっている。
また、メイン制御部41は、起動時設定処理を行った後、遊技プログラムに含まれる初期設定処理を行う。そして、初期設定処理では、RAM41cに異常があると判定した場合に、非遊技プログラムに含まれる非遊技RAM領域初期化処理を呼び出して、RAM41cの非遊技RAM領域の所定領域を初期化する。また、初期設定処理では、遊技プログラムに含まれるRAM初期化処理を呼び出して、RAM41cの遊技RAM領域の所定領域を初期化するようになっており、遊技RAM領域は遊技プログラムにより初期化し、非遊技RAM領域は非遊技プログラムにより初期化する構成になっている。
[メイン処理について]
メイン制御部41が行うメイン処理の制御内容について、図11に基づいて説明する。尚、メイン処理は、一単位の遊技毎に繰り返し実行される。そして、メイン処理の一周期が遊技の一単位に相当している。また、メイン処理は、遊技プログラムに含まれ、複数の処理を含む。以下、特に非遊技プログラムに含まれる旨を示さない処理は、遊技プログラムに含まれる。尚、遊技プログラムにより呼び出される遊技プログラムには、非遊技プログラムを呼び出すものもある。
図11に示すように、メイン制御部41は、まず、レジスタのうち演算結果が格納されるフラグレジスタの値を、遊技RAM領域の遊技スタック領域に所定の順序で記憶させることで退避させて(Sb1)、非遊技プログラムに含まれるRT情報出力処理を行った後(Sb2)、Sb1のステップにおいて退避させたレジスタの値を、退避させるときと逆の順序で遊技スタック領域から順次読み出してフラグレジスタに設定することで復帰させる(Sb3)。
RT情報出力処理では、まず、呼び出し元の遊技プログラムにより使用されていたスタックポインタSPにより示される遊技スタック領域の現在のアドレスの値を、非遊技RAM領域の所定領域に記憶させて退避させる。その後、当該スタックポインタSPの値として非遊技スタック領域の所定値(前回の非遊技プログラムの終了時にスタックポインタSPにより示されるアドレスとして非遊技RAM領域の所定領域に記憶されている値)を設定することで、スタックポインタSPを非遊技プログラム用に設定する。そして、上述のフラグレジスタを含むメイン制御部41が備えるすべてのレジスタの値を、スタックポインタSPにより特定される非遊技RAM領域の非遊技スタック領域に所定の順序で記憶させることで退避させる。その後、遊技RAM領域の所定領域に設定されているスロットマシン1の遊技状態に関する情報を参照し、当該遊技状態に関する情報(例えば、RTの状態)を外部出力信号として出力ポート7より出力させるように設定する。そして、RT情報出力処理を開始した際に非遊技スタック領域に記憶させて退避させていたレジスタの値を、退避させるときと逆の順序で非遊技スタック領域から順次読み出して、当該順序に対応するレジスタに設定することで、RT情報出力処理を開始したときの状態にすべてのレジスタを復帰させる。その後、RT情報出力処理を開始した際に非遊技RAM領域の所定領域に退避させたスタックポインタSPの値を、スタックポインタSPに設定することで、RT情報出力処理を開始したときの状態にスタックポインタSPを復帰させて、RT情報出力処理を終了させる。
Sb3のステップにおいてレジスタを復帰させた後は、タイマ割込みが1回行われるまで待機する割込み1回待ち処理を行う(Sb4)。割込み1回待ち処理では、タイマ割込みを許可に設定してタイマ割込み処理(メイン)が1回行われるまで待機する。そして、タイマ割込み処理(メイン)が1回行われたことが特定されることで、当該割込み1回待ち処理を終了する。割込み1回待ち処理を行うことにより、次のタイマ割込み処理(メイン)が行われるまでの時間が最大限に確保されている状態で、割込み1回待ち処理の後に行われる処理を行うことができ、割込み1回待ち処理の後に行われる一連の処理の途中で意図せずタイマ割込みが行われてしまうことを防止できる。Sb4のステップにおいて割込み1回待ち処理を行うことにより、割込み1回待ち処理の後に行われる遊技開始待ち処理のSc1のステップ~Sc10のステップまでの処理の途中で意図せずタイマ割込みが行われてしまうことを防止して、Sc1のステップ~Sc10のステップまでの処理を一連の処理として行うことができる。
そして、タイマ割込み処理(メイン)が行われた後、遊技開始待ち処理を行って(Sb5)、前の一遊技の制御の終了後から次の一遊技を開始させるまでの処理を行う。遊技開始待ち処理では、メダルの投入等に応じて賭数を設定する処理を行い、規定数の賭数が設定された状態でスタートスイッチ7の操作が検出されることで、次の一遊技を開始させる処理を行う。
そして、入賞の発生を許容するか否かを決定(内部抽選)するための内部抽選処理を行う(Sb6)。内部抽選処理では、スロットマシン1において予め設定された設定値(1~6)やスタートスイッチ7の検出による遊技の開始と同時に取得された内部抽選用の乱数値に基づいて、入賞の発生を許容するか否か(すなわち、表示結果の導出を許容するか否か)を決定する内部抽選を行う。
その後、Sb1のステップと同様に、フラグレジスタの値を遊技RAM領域の遊技スタック領域に所定の順序で記憶させることで退避させ(Sb7)、タイマ割込みを禁止に設定し(Sb8)、非遊技プログラムに含まれる当選情報出力処理を行って(Sb9)、内部抽選の抽選結果に関する情報を出力ポートより出力するための設定を行った後、タイマ割込みを許可に設定する(Sb10)。そして、Sb3のステップと同様に、Sb7のステップにおいて遊技スタック領域に退避させたレジスタの値を、退避させるときと逆の順序で遊技スタック領域から順次読み出してフラグレジスタに設定することで、当選情報出力処理を行う前の状態にフラグレジスタを復帰させる(Sb11)。
当選情報出力処理では、まず、上述のRT情報出力処理と同様にして、呼び出し元の遊技プログラムにより使用されていたスタックポインタSPが示すアドレスの値を非遊技RAM領域の所定領域に記憶させて退避させる。その後、当該スタックポインタSPの値として非遊技スタック領域の所定値(前回の非遊技プログラムの終了時に記憶された値)を設定することで、スタックポインタSPを非遊技プログラム用に設定する。そして、メイン制御部41が備えるすべてのレジスタの値を非遊技スタック領域に所定の順序で記憶させることで退避させる。その後、遊技RAM領域の所定領域に設定されている内部抽選の抽選結果を参照し、内部抽選における特別役の当選状況、一般役の当選状況を特定可能なデータを、非遊技プログラムである後述の試験信号出力処理から参照可能にRAM41cの所定領域に設定する。そして、上述のRT情報出力処理と同様にして、当選情報出力処理を開始した際に退避させていたレジスタの値を非遊技スタック領域から順次読み出して、当選情報出力処理を開始したときの状態にすべてのレジスタを復帰させる。その後、当選情報出力処理を開始した際に非遊技RAM領域の所定領域に退避させたスタックポインタSPの値を、スタックポインタSPに設定することで、当選情報出力処理を開始したときの状態にスタックポインタSPを復帰させて、当選情報出力処理を終了させる。尚、当該当選情報出力処理によりRAM41cの所定領域に設定された特別役の当選状況、一般役の当選状況は、後述の試験信号出力処理にて参照されて、試験信号として出力されるようになっている。
Sb11のステップにおいてレジスタを復帰させた後、演出制御処理(Sb12)、フリーズ制御設定処理(Sb13)、制御状態コマンド群送信処理(Sb14)、遊技開始コマンド送信処理(Sb15)を順次行う。演出制御処理では、メイン制御部41が演出制御を行う際に参照する演出用フラグの設定を行う。フリーズ制御設定処理では、所定終了条件が成立するまで遊技の進行を遅延させるフリーズ制御について、当該フリーズ制御を行う旨の要求の有無を確認して、要求がある場合にフリーズ制御の種類や当該フリーズ制御を行うタイミングをRAM41cの所定領域に設定する。制御状態コマンド群送信処理では、一遊技の開始時点における各種の制御状態を特定可能な複数のコマンドを含む制御状態コマンド群をサブ制御部91に対して送信する。遊技開始コマンド送信処理では、一遊技が開始された旨を特定可能な遊技開始コマンドをサブ制御部91に対して送信する。
Sa15のステップにおいて遊技開始コマンド処理と行った後は、Sb13のステップにおいてRAM41cに設定されたフリーズ制御の種類やタイミングに基づいてフリーズ制御を実行するフリーズ実行処理を行う(Sb16)。フリーズ実行処理では、Sb13のステップにおいて遊技の開始時にフリーズ制御を行う旨が設定されている場合には、フリーズ制御を実行して所定期間にわたり遊技の制御を遅延させる。また、フリーズ制御の種類として、リール2L、2C、2Rを用いた演出(以下、リール演出と呼ぶ)を伴うフリーズ制御の種類が設定されている場合には、リールモータ32L、32C、32Rを励磁させる励磁パターンとして演出用加速パターン(例えば、遊技でのリールの回転と異なる方向に回転させる加速パターン、遊技でのリールの回転に比べて遅い速度で、遊技での回転と同じ方向に回転を開始させる加速パターン、リールを振動させる加速パターン等)をRAM41cの所定領域に設定して、フリーズ制御を行っている期間内においてリール演出を行うように制御する。
Sb16のステップにおいてフリーズ制御実行処理を行った後は、演出制御を行っている旨を示すウェイト中LED19をON状態(点灯状態)に制御し(Sb17)、前回の遊技におけるリール回転開始時点からの経過時間を計時するためにRAM41cの所定領域に設定されている一遊技時間管理用タイマを参照して(Sb18)、一遊技時間管理用タイマに基づいて前回の遊技におけるリール回転開始時点から一遊技の規定時間(本実施例では4.1秒)が経過したか否かを判定する(Sb19)。そして、一遊技の規定時間が経過していないと判定した場合は、一遊技時間管理用タイマに基づいて一遊技の規定時間が経過するまで待機し、一遊技時間管理用タイマに基づいて一遊技規定時間が経過した後に、一遊技時間管理用タイマに予め定められた所定値(本実施例では、4.1秒に対応する値)を設定して、新たにリール回転開始時点からの経過時間の計時を開始させ(Sb20)、ウェイト中LED19をOFF状態(消灯状態)に制御し(Sb21)、リール2L、2C、2Rの回転制御を開始させる旨を特定可能なリール回転開始コマンドをサブ制御部91に対して送信するリール回転開始コマンド送信処理を行う(Sb22)。一方、Sa19のステップにおいて一遊技の規定時間が経過していると判定した場合は、直ちに、Sb20~Sb22のステップの処理を行う。尚、一遊技時間管理用タイマは、Sb20のステップにおいて所定値が設定された後は、所定時間毎に減算されて、遊技におけるリール回転開始時点から一遊技の規定時間(本実施例では4.1秒)が経過したときに、0となるようになっており、一遊技時間管理用タイマが0か否かに基づいて一遊技規定時間が経過したか否かを判定できるようになっている。
Sa22のステップにおいてリール回転開始コマンド送信処理を行った後は、リールモータ32L、32C、32Rを励磁制御する際の励磁パターンとして、遊技用の所定速度でリールを回転制御する通常加速パターンをRAM41cの所定領域に設定し(Sb23)、RAM41cに設定されている励磁パターンに基づいてリールモータ32L、32C、32Rを励磁制御することでリールの回転を開始させるリール起動処理を行う(Sb24)。
そして、ナビ報知処理を行う(Sb25)。ナビ報知処理では、ATの制御が行われており、内部抽選にて報知対象役が当選している場合には、当該報知対象役に応じて遊技者にとって有利な停止態様を特定可能なナビ番号を、遊技補助表示器12に表示させるように制御する一方、ATの制御が行われていない場合には、ナビ番号を遊技補助表示器12に表示させないように制御する。
Sb25のステップにおいてナビ報知処理を行った後は、リールの停止制御に必要な各種情報をRT状態及び内部抽選の抽選結果に応じて設定するリール停止初期設定処理(Sb26)を行う。そして、フリーズ制御処理を行い(Sb27)、Sb13のステップにおいて、当該タイミングでフリーズ制御を行う旨が設定されている場合には、設定されている種類のフリーズ制御を行う。
Sb27のステップにおいてフリーズ制御処理を行った後は、リールの停止制御を行うリール停止制御処理を行う(Sb28)。リール停止制御処理では、回転制御中のリールが所定の定速回転で回転されているかを判定し、定速回転で回転されていないリールがある場合には、リールエラーを検出して、該当するリールについて定速回転まで加速させる励磁パターンを設定して、回転制御中のすべてのリールが定速回転で回転されるように制御する。一方、回転制御中のすべてのリールが定速回転で回転されている場合には、回転制御中のリールの停止操作の受け付けを有効化し、ストップスイッチによる停止操作が行われるまで待機する。そして、停止操作が有効化されているリールについて有効な停止操作が検出されること(停止操作が有効なストップスイッチについてONエッジデータが検出されること)で、有効な停止操作が行われたリールについて、リール停止初期設定処理にて設定された情報等に基づいて所定の停止位置で停止させるリール停止制御を行う。このようなリール停止制御を、回転制御中のリールについて繰り返し行って、すべてのリールの回転を停止させることで、リール停止処理を終了させる。
そして、リール停止処理を終了させた後は、フリーズ制御処理を行い(Sb29)、Sb13のステップにおいて、当該タイミングでフリーズ制御を行う旨が設定されている場合には、設定されている種類のフリーズ制御を行う。
その後、RT状態チェック処理(Sb30)、入賞判定処理(Sb31)を行う。RT状態チェック処理では、リールにRT状態の移行を伴うRT移行図柄の組合せが停止しているか否かを判定し、RT移行図柄の組合せが停止している場合には、RAM41cの所定領域に設定されている現在のRT状態を、当該RT移行図柄の組合せに応じたRT状態に更新する。入賞判定処理では、内部抽選結果及びリール2L、2C、2Rに停止している図柄組合せに基づいて不正入賞が発生しているか否かを判定する。
そして、Sa31のステップにおける入賞判定処理を行った後は、メダル投入部4からのメダルの投入に関する異常やホッパーからのメダルの払い出しに関する異常が検出されているか否かを判定する投入払出エラーチェック処理を行う(Sa32)。
投入払出エラーチェック処理では、払出センサ34cの信号(以下、メダル払出信号と呼ぶ場合がある)の遷移に異常が検出された旨を示す払出エラーフラグや、投入メダルセンサ31の信号(以下、メダル投入信号と呼ぶ場合がある)の遷移に異常が検出された旨を示す投入エラーフラグが、RAM41cの所定領域に設定されているか否かを判定し、払出エラーフラグや投入エラーフラグが設定されていない場合には、投入払出エラーチェック処理を終了させる。一方、払出エラーフラグが設定されている場合には、メダル払出信号の異常が検出された旨を示すエラーコード(E4)を所定のレジスタに準備して、エラー処理を行う。また、投入エラーフラグがRAM41cの所定領域に設定されているか否かを判定し、投入エラーフラグが設定されている場合には、メダル投入信号の異常が検出された旨を示すエラーコード(E5)を所定のレジスタに準備して、エラー処理を行う。
エラー処理では、所定のレジスタに準備されているエラーコード(E4、E5)を特定可能なエラーコマンドをサブ制御部91に対して送信し、当該エラーコード(E4、E5)をRAM41cの所定領域にその他の処理でも参照可能なエラーフラグとして設定する。また、当該エラーコード(E4、E5)を遊技補助表示器12に表示させるように制御する。その後は、所定のレジスタに準備されているエラーコード(E4、E5)に応じたエラー状態の解除条件が成立したことが特定されるまでエラー状態の制御を行う。エラーコード(E4)が所定のレジスタに準備されてエラー状態に移行された場合には、エラー状態の解除条件として、払出センサ34cの検出状態がOFF状態であり、かつリセット/設定スイッチ38またはリセットスイッチ23がON状態となったことが成立するまで待機し、当該解除条件が成立することで、エラー状態を解除する旨のエラーコマンド(解除)をサブ制御部91に対して送信し、エラー処理を終了させて、投入払出エラーチェック処理に戻る。また、エラーコード(E5)がレジスタに準備されてエラー状態に移行された場合には、エラー状態の解除条件として、投入メダルセンサ31a~31cの検出状態がOFF状態であり、かつリセット/設定スイッチ38またはリセットスイッチ23がON状態となったことが成立するまで待機し、当該解除条件が成立することで、エラー状態を解除する旨のエラーコマンド(解除)をサブ制御部91に対して送信し、エラー処理を終了させて、投入払出エラーチェック処理に戻る。
そして、メダル払出信号の異常が検出されて移行されたエラー処理、メダル投入信号の異常が検出されて移行されたエラー処理が終了された場合には、エラー処理を実行した旨を示すエラー実行フラグを所定のレジスタに設定し、投入払出エラーチェック処理を終了する。また、払出エラーフラグや投入エラーフラグが設定されておらず、エラー処理に移行しなかった場合には、エラー実行フラグを設定することとなく、投入払出エラーチェック処理を終了する。
Sb32のステップにおいてエラーチェック処理(Sb32)を行った後は、割込み1回待ち処理を行い(Sb33)、タイマ割込み処理(メイン)が行われるまで待機する。そして、タイマ割込み処理(メイン)が行われた後は、Sb3のステップやSb7のステップと同様に、フラグレジスタの値を遊技RAM領域の遊技スタック領域に所定の順序で記憶させることで退避させ(Sb34)、タイマ割込みを禁止に設定し(Sb35)、非遊技プログラムに含まれる役比モニタ用データ処理を行う(Sb36)。そして、役比モニタ用データ処理を行った後は、タイマ割込みを許可に設定する(Sb37)。
このように、Sb33のステップにおいて割込み1回待ち処理を行った後に、役比モニタ用データ処理(Sb36)を行うことで、次のタイマ割込み処理(メイン)が行われるまでの時間が最大限に確保されている状態で、当該役比モニタ用データ処理を行うことができ、当該役比モニタ用データ処理の途中で意図せずタイマ割込みが行われてしまうことを防止できる。また、Sb35のステップにおいてタイマ割込みを禁止に設定して、タイマ割込みが禁止された状態で役比モニタ用データ処理を行い、その後のSb37のステップにおいてタイマ割込みの禁止設定を解除することで、当該役比モニタ用データ処理の途中で意図せずタイマ割込みが行われてしまうことを確実に防止できる。また、Sb33のステップにおいて、役比モニタ用データ処理を行うためにタイマ割込みを禁止状態に設定する前に割込み1回待ち処理を行って、タイマ割込み処理(メイン)を行わせることで、タイマ割込みが禁止されている状態(Sb35~Sb37)であるときに、タイマ割込みを行うタイミングとなることを防止できる。
役比モニタ用データ処理では、まず、上述のRT情報出力処理等と同様にして、呼び出し元の遊技プログラムにより使用されていたスタックポインタSPが示すアドレスの値を非遊技RAM領域の所定領域に記憶させて退避させる。その後、当該スタックポインタSPの値として非遊技スタック領域の所定値(前回の非遊技プログラムの終了時に記憶された値)を設定することで、スタックポインタSPを非遊技プログラム用に設定する。そして、メイン制御部41が備えるすべてのレジスタの値を非遊技スタック領域に所定の順序で記憶させることで退避させる。その後、非遊技プログラムに含まれる各状態カウント処理を行って、予め定められた所定期間(例えば、現在のゲームから6000ゲーム前までの期間、現在のゲームから175000ゲーム前までの期間、遊技者にとって有利な状態に制御された区間(有利区間)等)におけるメダルの払い出し枚数に関するデータを更新する。役比モニタ用データ処理を開始した際に非遊技スタック領域に記憶させて退避させていたレジスタの値を、退避させるときと逆の順序で非遊技スタック領域から順次読み出して、当該順序に対応するレジスタに設定することで、役比モニタ用データ処理を開始したときの状態にすべてのレジスタを復帰させる。その後、役比モニタ用データ処理を開始した際に非遊技RAM領域の所定領域に退避させたスタックポインタSPの値を、スタックポインタSPに設定することで、役比モニタ用データ処理を開始したときの状態にスタックポインタSPを復帰させて、役比モニタ用データ処理を終了させる。
Sb36のステップにおいて役比モニタ用データ処理を行い、Sb37のステップにおいてタイマ割込みを許可に設定した後は、Sb3のステップやSb11のステップと同様に、Sb34のステップにおいて退避させたレジスタの値を、退避させるときと逆の順序で遊技スタック領域から順次読み出してフラグレジスタに設定することで、役比モニタ用データ処理を行う前の状態にフラグレジスタを復帰させる(Sb38)。その後、リプレイ中LED20をOFF状態(消灯状態)に制御し(Sb39)、リプレイ中である旨を示す再遊技中フラグをクリアし(Sb40)、遊技補助表示器12におけるナビ番号の表示をクリアした後(Sb41)、当該ゲームの結果として発生した入賞に応じた枚数のメダルを払い出すメダル払出処理を行う(Sb42)。
メダル払出処理では、発生した入賞に応じて、入賞役毎に予め定められた所定枚数のメダルを遊技者に対して付与して、付与するメダル枚数分をクレジットに加算し、クレジットが上限数(本実施例では、50)に達した場合には、ホッパーモータ34bを駆動させてクレジットに加算されなかった分のメダルをメダル払出口9から払い出す。
Sb42のステップにおいてメダル払出処理を行った後は、フリーズ制御処理を行い(Sb43)、Sb13のステップにおいて、当該タイミングでフリーズ制御を行う旨が設定されている場合には、設定されている種類のフリーズ制御を行う。
そして、遊技終了時設定処理を行って(Sb44)、再遊技役の図柄組合せがリール2L、2C、2Rに停止しているか否かを判定し、再遊技役の図柄組合せが停止している場合には、次ゲームにおいて再遊技を行うための賭数を設定する処理(本実施例では、RAM41cの所定領域に設定されている再遊技用メダルカウンタに、再遊技用メダルとして3を設定する。)や、再遊技中フラグをRAM41cの所定領域に設定する処理、リプレイ中LED20をON状態(点灯状態)に制御する処理等を行う。
そして、遊技終了時の出玉制御を行う出玉制御処理を行った後(Sb45)、遊技終了時における初期化対象のRAM41cの領域の先頭アドレスを設定し(Sb46)、RAM初期化処理を行って(Sb47)、当該先頭アドレスからRAM41cの終端までの領域を初期化する。
そして、RAM41cの所定領域に設定されており、当該ゲームにおける内部抽選の抽選結果を示す当選フラグをクリアした後(Sb48)、一遊技が終了した旨を特定可能な遊技終了コマンドをサブ制御部91に対して送信する遊技終了コマンド送信処理を行い(Sb49)、Sb1のステップに戻り、Sb1~Sb49のステップを繰り返し行う。メイン処理が一巡することで、一単位の遊技の制御に関する処理が終了することとなり、一単位の遊技毎にメイン処理が繰り返し実行されることとなる。
このように、本実施例のメイン制御部41が行うメイン処理は、遊技プログラムに含まれており、非遊技プログラムに含まれる処理、例えば、RT情報出力処理、当選情報出力処理、役比モニタ用データ処理等を呼び出すようになっている。そして、非遊技プログラムに含まれる処理を呼び出す際には、該当する非遊技プログラムの処理を呼び出す毎に、呼び出し元の遊技プログラム側で、メイン制御部41が備えるレジスタのうちフラグレジスタの値を遊技スタック領域に記憶させて退避させ、呼び出し先の非遊技プログラム側で、遊技プログラムで使用しているスタックポインタSPの値を非遊技RAM領域に記憶させて退避するとともに、メイン制御部41が備えるすべてのレジスタの値を非遊技スタック領域に記憶させて退避させる処理を行う。そして、呼び出された非遊技プログラムに応じた処理(例えば、非遊技RAM領域初期化処理において非遊技RAM領域を初期化する処理、後述のメダルセンサ処理におけるメダルセンサチェック処理、後述の役比モニタ用データ処理における各状態カウント処理、後述の非遊技関連処理におけるセンサ監視処理、試験信号出力処理、メダル通過時間タイマ更新処理、役比モニタ表示データ選択処理等)を行うようになっている。
また、メイン制御部41は、非遊技プログラムの処理を行った後には、非遊技プログラム側で、当該非遊技プログラムの開始時に非遊技スタック領域に退避させた、すべてのレジスタの値を該当するレジスタに読み込んで当該非遊技プログラムの開始時の状態にレジスタを復帰させるとともに、当該非遊技プログラムの開始時に非遊技RAM領域に記憶させたスタックポインタSPの値をスタックポインタSPに設定して、当該非遊技プログラムの開始時の状態にスタックポインタSPを復帰させ、さらに、呼び出し元の遊技プログラム側で、非遊技プログラムの呼び出し前に遊技スタック領域に記憶させたフラグレジスタの値を、該当するフラグレジスタに読み込んで当該非遊技プログラムの呼び出し前の状態にレジスタを復帰させる処理を行うようになっている。
また、メイン制御部41は、非遊技プログラムに従って各種処理を行う場合には、上述のCALL命令等を用いて遊技プログラムから非遊技プログラムを呼び出すことで、当該非遊技プログラムに従って各種処理を行い、当該非遊技プログラムに応じた各処理が終了することで、呼び出し元の遊技プログラムに復帰ようになっている。
[遊技開始待ち処理について]
本実施例のメイン制御部41が行う遊技開始待ち処理の制御内容について、図12に基づいて説明する。尚、遊技開始待ち処理は、遊技プログラムに含まれており、遊技プログラムに含まれるメイン処理において呼び出されるサブルーチンである。
図12に示すように、遊技開始待ち処理では、まず、メダル投入枚数表示処理を行い(Sc1)、スロットマシン1に投入済みのメダル枚数に応じた1~3BETLED14~16をON状態(点灯状態)に制御する。その後、ホッパータンク34aが満タン状態である旨を特定可能なエラーコード(E1)を所定のレジスタに準備し(Sc2)、所定のポート入力バッファを参照して、満タンセンサ35aの確定データに基づいてホッパータンク34aが満タン状態であるか否かを判定する(Sc3)。
Sc3のステップにおいてホッパータンク34aが満タン状態であると判定した場合には、エラー処理を行う(Sc4)。エラー処理では、遊技の進行が不能化されるエラー状態に制御する。また、所定のレジスタに準備されているエラーコード(E1)を特定可能なエラーコマンドをサブ制御部91に対して送信し、当該エラーコード(E1)をRAM41cの所定領域にその他の処理でも参照可能なエラーフラグとして設定する。また、当該エラーコード(E1)を遊技補助表示器12に表示させるように制御する。その後は、所定のレジスタに準備されているエラーコード(E1)に応じたエラー状態の解除条件が成立したことが特定されるまでエラー状態の制御を行う。エラーコード(E1)がレジスタに設定されてエラー状態に移行された場合には、満タンセンサ35aの確定データがOFF状態となるまで待機し、当該満タンセンサ35aの確定データがOFF状態となることで、エラー状態を解除する旨のエラーコマンド(解除)をサブ制御部91に対して送信し、エラー処理を終了させて、Sc5のステップへ進む。
Sc3のステップにおいてホッパータンク34aが満タン状態でないと判定した場合、及びSc4のステップにおけるエラー処理を終了した場合には、RAM41cの所定領域に設定されている再遊技用メダルカウンタの値を所定のレジスタに読み込む(Sc5)。尚、再遊技用メダルカウンタには、前回のメイン処理における遊技終了時設定処理により、前回の遊技の結果に応じた値が設定されており、前回の遊技において再遊技役が入賞して再遊技が付与された場合には、遊技を行うために必要な賭数の規定数に相当する数値(例えば、3)が設定されている一方で、前回の遊技において再遊技が付与されなかった場合には、0が設定されている。
その後、RAM41cの再遊技用メダルカウンタをクリアし(Sc6)、Sc5のステップにおいて読み込んだ再遊技用メダルカウンタの値が0より大きいか否か、すなわち再遊技が付与されている否かを判定し(Sc7)、再遊技が付与されている場合には、メダル投入実行処理を行う(Sc8)。メダル投入実行処理では、再遊技用メダルカウンタの値を賭数に設定するとともに、1~3BETLED14~16をON状態(点灯状態)に設定して規定数の賭数(本実施例では、3)が設定されている旨を報知する。また、賭数の設定に使用されたメダル枚数を特定可能な投入枚数コマンドをサブ制御部91に対して送信する。
Sc7のステップにおいて再遊技用メダルカウンタの値が0である、すなわち再遊技が付与されていないと判定した場合、及びSc8のステップにおいて再遊技が付与されたことによりメダル投入実行処理を行った後は、メダル手入れ許可設定処理を行う(Sc9)。メダル手入れ許可設定処理では、RAM41cの所定領域に設定されているクレジットの値を参照し、当該クレジットの値が最大値(本実施例では、50)に達していない場合に、メダル投入部4からのメダルの投入を許可する旨を示すメダル手入れ許可フラグをRAM41cの所定領域に設定する。
Sc9のステップにおいてメダル手入れ許可設定処理を行った後は、割込み1回待ち処理を行う(Sc10)。割込み1回待ち処理を行うことで、タイマ割込み処理(メイン)が行われて各種スイッチ類の検出状態やLEDの点灯状態、各種タイマ等が更新されることとなり、これらの各種スイッチ類の検出状態が更新された状態で、その後の処理(例えば、後述のメダル投入払出エラーチェック処理、メダル投入信号処理、操作入力受付処理)を行わせることができる。
Sc10のステップにおいて割込み1回待ち処理を行ってタイマ割込みが1回行われた後は、上述のメイン処理のSb32のステップと同様の投入払出エラーチェック処理を行う(Sc11)。そして、RAM41cの所定領域にエラー実行フラグが設定されているか否かに基づいて、エラーチェック処理にてエラー処理が実行されたか否かを判定する(Sc12)。
Sc12のステップにおいてエラーチェック処理にてエラー処理が実行されたと判定した場合は、Sc10のステップに戻り、Sc10~Sc12のステップの各処理を再び行う。その後、メダル払出信号の遷移やメダル投入信号の遷移に異常が検出されない状態で、Sc10~Sc12のステップの各処理が行われることで、エラー実行フラグが設定されていない状態で、Sc12のステップの処理が行われることとなる。
一方、Sc12のステップにおいてエラー実行フラグが設定されていないと判定した場合は、メダル投入信号処理を行う(Sc13)。メダル投入信号処理では、メダル投入信号の遷移に基づいてメダルの投入状況を判定する。そして、正常なメダルの投入が検出された場合は、賭数の設定やクレジットにメダルを受け付けて、メダル投入信号処理を終了する。一方、異常なメダルの投入が検出された場合は、エラーコード(E5)を準備してエラー処理を行う。その後、エラー状態が解除されてエラー処理が終了されることで、メダル投入信号処理を終了する。
Sc13のステップにおいてメダル投入信号処理を行った後は、各種スイッチの操作を受け付ける有効化して、操作が有効化されているスイッチの操作が行われることで、当該スイッチによる操作を受け付ける操作入力受付処理を行う(Sc14)。
操作入力受付処理では、メダル投入信号の遷移に基づいてメダルが通過中でないときに、RAM41cの所定領域に設定されているクレジットが、1以上である場合には、MAXBETスイッチ6による操作の受け付けを有効化する。また、メダル投入信号の遷移に基づいてメダルが通過中でないときに、RAM41cの所定領域に設定されている賭数が規定数である場合には、スタートスイッチ7による操作の受け付けを有効化する。また、メダル投入信号の遷移に基づいてメダルが通過中でない場合に、精算スイッチ10及び設定キースイッチ37による操作の受け付けを有効化する。
また、操作入力受付処理では、スタートスイッチ7による操作が有効な状態で、スタートスイッチ7の操作が検出された場合には、スタートスイッチ7が操作された旨を示すスタートフラグを所定レジスタに設定した後、流路切替ソレノイド30をOFF状態としてメダルの流路をメダル払出口9側に切り替える処理を行う。また、設定キースイッチ37による操作が有効な状態で、設定キースイッチ37による操作が検出された場合には、設定値表示器24に設定値を表示させる設定値表示処理を行う。また、精算スイッチ10による操作が有効な状態で、精算スイッチ10による操作が検出された場合には、クレジットに記憶されている分のメダルを遊技者に返却する精算処理を行う。また、MAXBETスイッチ6による操作が有効な状態で、MAXBETスイッチ6による操作が検出された場合には、クレジットに基づいて可能な範囲で規定数までのメダル枚数を賭数に設定し、賭数に設定した分のメダル枚数をクレジットから減算する処理を行う。操作が検出されたスイッチ類に応じた処理を行った後、操作入力受付処理を終了させる。
Sc14のステップにおいて操作入力受付処理を行った後は、スタートフラグに基づいてスタートスイッチ7による有効な操作が検出されたか否かを判定する(Sc15)。所定のレジスタにスタートフラグが設定されておらず、スタートスイッチ7による有効な操作が検出されなかったと判定した場合は、Sc16のステップに進み、スタート有効LED18の点灯状態を制御するLED表示処理を行う。
LED表示処理では、Sc14のステップの操作入力受付処理によりスタートスイッチ7による操作が有効に設定されている状態において、リセットスイッチ23以外のスイッチ類の操作が検出されない場合に、スタート有効LED18をON状態(点灯状態)に制御し、スタートスイッチ7による操作が有効に設定されている状態において、リセットスイッチ23以外のスイッチ類の操作が検出される場合、及びスタートスイッチ7による操作が有効に設定されていない場合に、スタート有効LED18をOFF状態(消灯状態)に制御して、スタート有効LED18の点灯状態によりスタートスイッチ7による操作が有効であるか無効であるかを報知する。
Sc15のステップにおいて、所定のレジスタにスタートフラグが設定されており、スタートスイッチ7による有効な操作が検出されたと判定した場合は、内部抽選用の乱数値を乱数回路42から取得して、RAM41cの所定領域に設定する(Sc17)。その後、設定されている賭数を特定可能なメダル投入状態データをRAM41cの所定領域に設定し(Sc18)、スタート有効LED18をOFF状態(消灯状態)に設定し(Sc19)、メダル手入れ許可フラグをRAM41cの所定領域からクリアし(Sc20)、遊技補助表示器12における払出枚数の表示をクリアするように制御して(Sc21)、遊技開始待ち処理を終了させ、メイン処理に戻る。その後、メイン処理では、Sc17のステップにおいて取得された乱数値を用いて内部抽選が行われ、スタートスイッチ7の操作が検出されたことに応じてリール2L、2C、2Rの回転が開始されることで、一遊技が開始されることとなる。
次に、本実施例のメイン制御部41が遊技開始待ち処理から呼び出して行うメダル投入信号処理の制御内容について、図13に基づいて説明する。尚、メダル投入信号処理は、遊技プログラムに含まれており、遊技プログラムに含まれる遊技開始待ち処理において呼び出されるサブルーチンである。
図13に示すように、メダル投入信号処理では、まず、上述の遊技開始待ち処理のメダル手入れ許可設定処理においてメダル投入部4からのメダルの投入を許可する旨を示すメダル手入れ許可フラグが設定されているか否かを判定する(Sd1)。そして、メダル手入れ許可フラグが設定されていない場合は、メダル投入信号処理を終了して、呼び出し元の遊技開始待ち処理に戻る。一方、メダル手入れ許可フラグが設定されている場合は、RAM41cの所定領域に設定されているメダル投入信号状態遷移データを参照する(Sd2)。メダル投入信号状態遷移データは、投入メダルセンサ31a~31cの検出信号(以下、メダル投入信号と呼ぶ場合がある)の状態の遷移を特定可能なデータであり、非遊技プログラムに含まれるメダルセンサチェック処理により、投入メダルセンサ31a~31cの入力データ等に基づいて所定のタイミングで更新されて、RAM41cの非遊技RAM領域の所定領域に設定されている。
そして、Sd2のステップにおいて参照したメダル投入信号状態遷移データに基づいて、メダルセレクタ29における投入メダルセンサ31a~31cの検出範囲A(図4、図5参照)を、メダル投入部4から投入されたメダルが通過中であるか否かを判定する(Sd3)。投入メダルセンサ31a~31cの検出範囲Aをメダルが通過中でないと判定した場合は、流路切替ソレノイド30をON状態に制御して(Sd4)、メダル投入部4から投入されたメダルがメダルセレクタ29内のメダル流入流路29a及びメダル受入流路29bを流下してホッパータンク34aに導かれるように、メダル投入部4から投入されたメダルの流路を筐体1aの内部に設けられたホッパータンク34a側に切替えるように制御する。その後、メダル投入部4からメダルを投入可能である旨を示す投入要求LED17をON状態に制御し(Sd5)、メダル投入信号無視タイマをクリアする(Sd6)。
ここで、メダル投入信号無視タイマは、流路切替ソレノイド30をOFF状態に設定する際に、少なくとも流路切替ソレノイド30をOFF状態とする制御信号の出力を設定してから、当該流路切替ソレノイド30が作動してメダル投入部4から投入されたメダルの流路がメダル払出口9側に実際に切り替えられるまでの切替時間の経過を計時して、切替時間の計時中には所定処理においてメダル投入信号を無視するように制御するためのタイマである。メダル投入信号無視タイマには、メダルの流路を切り替えるために流路切替ソレノイド30の制御信号の出力が設定された際に、少なくとも流路切替ソレノイド30の制御信号の出力設定を行ってから実際にメダルの流路が切り替えられるまでの所定時間(本実施例では、504ミリ秒)が設定される。その後、タイマ割込み処理(メイン)によりメダル投入信号無視タイマが減算されて更新され、0となることで切替時間が経過したことを特定できるようになっている。
Sd3のステップにおいて投入メダルセンサ31a~31cの検出範囲Aをメダルが通過中であると判定した場合、及びSd6のステップにおいてメダル投入信号無視タイマをクリアした後は、メイン制御部41が備えるレジスタのうち演算結果が格納されるフラグレジスタの値を、遊技RAM領域の遊技スタック領域に所定の順序で記憶させることで退避させた後(Sd7)、タイマ割込みを禁止に設定し(Sd8)、非遊技プログラムに含まれるメダルセンサ処理を行った後(Sd9)、タイマ割込みを許可に設定し(Sd10)、Sd7のステップにおいて退避させたレジスタの値を、退避させるときと逆の順序で遊技スタック領域から順次読み出してフラグレジスタに設定することで、当選情報出力処理を行う前の状態にフラグレジスタを復帰させる(Sd11)。
メダルセンサ処理では、まず、上述のRT情報出力処理と同様にして、呼び出し元の遊技プログラムにより使用されていたスタックポインタSPが示すアドレスの値を非遊技RAM領域の所定領域に記憶させて退避させる。その後、当該スタックポインタSPの値として非遊技スタック領域の所定アドレス(前回の非遊技プログラムの終了時に記憶されたアドレス)を設定することで、スタックポインタSPを非遊技プログラム用に設定する。そして、メイン制御部41が備えるすべてのレジスタの値を非遊技スタック領域に所定の順序で記憶させることで退避させる。その後、メダル投入信号状態遷移データが正常であるか否かを判定する。そして、メダル投入信号状態遷移データが正常である場合には、メダルが投入メダルセンサ31a~31cの検出範囲Aを正常に通過した旨を示すメダル通過状態参照データ(正常通過)またはメダルが投入メダルセンサ31a~31cの検出範囲Aを通過し始めたことを検知した旨を示すメダル通過状態参照データ(メダル検知)、投入メダルセンサ31a~31cの検出範囲Aでのメダルの通過状態が前回の判定時から変化していない旨を示すメダル通過状態参照データ(変化なし)をRAM41cの非遊技RAM領域の所定領域に設定する。その後、投入メダルセンサ31a~31cの入力データに基づいてメダル投入信号状態遷移データを更新する。一方、メダル投入信号状態遷移データに異常がある場合には、メダル投入信号に関する異常が検出された旨を示すエラーコード(E5)を特定可能なメダル関連エラーデータを非遊技RAM領域の所定領域に設定する等の処理を行う。そして、上述のRT情報出力処理と同様にして、メダルセンサ処理を開始した際に退避させていたレジスタの値を非遊技スタック領域から順次読み出して、メダルセンサ処理を開始したときの状態にすべてのレジスタを復帰させる。その後、メダルセンサ処理を開始した際に非遊技RAM領域の所定領域に退避させたスタックポインタSPの値を、スタックポインタSPに設定することで、メダルセンサ処理を開始したときの状態にスタックポインタSPを復帰させて、当選情報出力処理を終了させる。
Sd11のステップにおいてレジスタを復帰させた後には、非遊技RAM領域の所定領域を参照してメダル関連エラーデータを所定のレジスタに読み込み(Sd12)、エラーコード(E5)が設定されているか否かを判定する(Sd13)。そして、エラーコード(E5)が設定されている場合すなわちメダル関連エラーデータが所定のレジスタに読み込まれて、エラーコード(E5)が所定のレジスタに準備されている場合には、エラー処理を行って(Sd14)、遊技の進行を不能化するエラー状態に制御する。
エラー処理では、エラー処理では、遊技の進行が不能化されるエラー状態に制御する。また、所定のレジスタに準備されているエラーコード(E5)を特定可能なエラーコマンドをサブ制御部91に対して送信し、当該エラーコード(E5)をRAM41cの所定領域にその他の処理でも参照可能なエラーフラグとして設定する。また、当該エラーコード(E5)を遊技補助表示器12に表示させるように制御する。その後は、所定のレジスタに準備されているエラーコード(E5)に応じたエラー状態の解除条件が成立したことが特定されるまでエラー状態の制御を行う。エラーコード(E5)が所定のレジスタに準備されてエラー状態に移行された場合には、エラー状態の解除条件として、投入メダルセンサ31a~31cの検出状態がOFF状態であり、かつリセット/設定スイッチ38またはリセットスイッチ23がON状態となったことが成立するまで、遊技を進行させる制御を行わずに待機する。そして、当該解除条件が成立することで、エラー状態を解除する旨のエラーコマンド(解除)をサブ制御部91に対して送信し、エラー処理を終了させてメダル投入信号処理に戻る。
Sd13のステップにおいてメダル関連エラーデータとしてエラーコード(E5)が設定されていないと判定した場合、及びSd14のステップのエラー処理が終了した後は、RAM41cの非遊技RAM領域の所定領域に設定されているメダル通過状態参照データを参照して(Sd15)、メダル通過状態参照データの内容を判定する(Sd16、Sd17)。
Sd16のステップにおいて、メダル通過状態参照データ(変化なし)が設定されていると判定した場合は、メダル投入信号処理を終了して遊技開始待ち処理に戻る。Sd17のステップにおいて、メダル通過状態参照データ(メダル検知)が設定されていると判定した場合は、Sd18のステップに進み、Sd17のステップにおいて、メダル通過状態参照データ(正常通過)が設定されており、メダル通過状態参照データ(メダル検知)が設定されていないと判定した場合には、Sd21のステップへ進む。
Sd17のステップにおいてメダル通過状態参照データ(メダル通過)が設定されていると判定した場合には、投入状況判定処理を行う(Sd18)。投入状況判定処理では、RAM41cの所定領域に設定されている現在のクレジット数を計数するクレジットカウンタを参照し、当該クレジットカウンタの値がスロットマシン1のクレジットの最大値(本実施例では、50)より1少ない状況、すなわち次に受け付けるメダルがクレジットに加算可能な最終メダルとなる状況であるか否かを判定する。そして、次に受け付けるメダルがクレジットに加算可能な最終メダルであるか否かを特定可能な最終受付フラグを所定のレジスタに設定して、投入状況判定処理を終了する。
Sd18のステップにおいて投入状況判定処理を行った後は、所定のレジスタに設定されている最終受付フラグに基づいて、次に受け付けるメダルがクレジットに加算可能な最終メダルであると判定される場合には、メダルブロッカオフ処理を行って(Sd20)、流路切替ソレノイド30をOFF状態に設定することで、メダル投入部4から投入されたメダルの流路をホッパータンク34a側からメダル払出口9側に切り替えて、投入メダルセンサ31cにより検出されているメダルより後にメダル投入部4に投入されたメダルを、メダル返却流路29cを介してメダル払出口9から返却するように制御する。また、メダルブロッカオフ処理では、流路切替ソレノイド30をOFF状態に設定した後、遊技RAM領域に設定されているメダル投入信号状態遷移データを参照して、投入メダルセンサ31a~31cの検出範囲Aをメダルが通過中か否かを判定し、当該検出範囲Aをメダルが通過中である場合には、上述のメダル投入信号無視タイマに所定値(本実施例では、504ミリ秒に対応する値)を設定して、メダル投入信号無視タイマによる所定時間の計時を開始させる。これにより、メダルブロッカオフ処理の終了後から所定時間にわたり後述のセンサ監視処理において、メダル投入信号の状態にかかわらず、メダル投入信号の異常が判定されてセンサエラー参照データ(投入メダルセンサ)が設定されるようなことがないようになっている。
Sd20のステップにおいてメダルブロッカオフ処理を行った後は、メダル投入信号処理を終了させて遊技開始待ち処理に戻る。一方、最終受付フラグに基づいて、次に受け付けるメダルがクレジットに加算可能な最終メダルでないと判定される場合には、メダルブロッカオフ処理を行わずにメダル投入信号処理を終了させて遊技開始待ち処理に戻る。
Sd17のステップにおいてメダル通過状態参照データ(正常通過)が設定されており、メダル通過状態参照データ(正常通過)が設定されていないと判定した場合には、ポート入力バッファの所定領域を参照して、投入メダルセンサ31bの確定データを取得し(Sd21)、当該確定データがON状態であるか否かを判定する(Sd22)。そして、投入メダルセンサ31bの確定データがON状態であると判定した場合は、ポート入力バッファの所定領域を参照して、投入メダルセンサ31cの入力データを取得し(Sd23)、当該入力データがOFF状態であるか否かを判定する(Sd24)。
Sd19のステップにおいて投入メダルセンサ31bの確定データがON状態でないと判定した場合、及び、投入メダルセンサ31bの確定データがON状態であり、かつ、Sd20のステップにおいて当該投入メダルセンサ31bの入力データがOFF状態でないと判定した場合、すなわちメダル受入流路29bをメダルが通過中である場合または当該メダル受入流路29bにメダルがない場合には、メダル投入信号処理を終了させる。一方、Sd22のステップにおいて投入メダルセンサ31bの確定データがON状態であると判定し、かつ、Sd24のステップにおいて当該投入メダルセンサ31bの入力データがOFF状態である判定した場合、すなわちメダル受入流路29bにおいて投入メダルセンサ31cがメダルを検出可能な検出位置をメダルが通過し終えたときである場合には、メダル投入処理を行う(Sd25)。
メダル投入処理では、RAM41cの所定領域に記憶されている現在設定されている賭数を参照して、規定数の賭数が設定されているか否かを判定する。そして、規定数の賭数が設定されていない場合には、現在の賭数に1加算し、既に、規定数の賭数が設定されている場合には、クレジットカウンタに1加算する。
Sd25のステップにおいてメダル投入処理を行った後は、メダル手入れ許可設定処理を行って(Sd26)、クレジットカウンタに基づいてクレジットの値が最大値(本実施例では、50)に達していない場合に、メダル投入部4からのメダルの投入を許可する旨を示すメダル手入れ許可フラグをRAM41cの所定領域に設定する。
Sd26のステップにおいてメダル手入れ許可設定処理を行った後、メダル手入れ許可フラグが設定されていない場合は、メダル投入信号無視タイマに予め定められた所定値(本実施例では、504ミリ秒に対応する値)を設定してメダル投入信号無視タイマによる所定時間の計時を開始させた後(Sd28)、メダル投入信号処理を終了させる。一方、メダル手入れ許可フラグが設定されている場合は、メダル投入信号無視タイマの設定を行わずに、メダル投入信号処理を終了させる。尚、メダル投入信号無視タイマは、Sd28のステップにおいて所定値(本実施例では、504ミリ秒に対応する値)が設定された後、所定時間毎に減算されて、予め定められた所定時間(本実施例では4.1秒)が経過したときに、0となるようになっておりメダル投入信号無視タイマが0か否かに基づいて所定時間が経過したか否かを判定できるようになっている。
[メダルセンサ処理及びメダルセンサチェック処理について]
本実施例のメイン制御部41が行うメダルセンサ処理及びメダルセンサチェック処理の制御内容について、図14及び図15に基づいて説明する。尚、メダルセンサ処理は、非遊技プログラムに含まれており、遊技プログラムに含まれるメダル投入信号処理において呼び出されるサブルーチンである。また、メダルセンサチェック処理は、非遊技プログラムに含まれており、非遊技プログラムに含まれるメダルセンサ処理において呼び出されるサブルーチンである。
図14に示すように、メダルセンサ処理では、まず、呼び出し元の遊技プログラムにより使用されていたスタックポインタSPの示すアドレスの値を非遊技RAM領域の所定領域に記憶させて退避させる(Se1)。その後、当該スタックポインタSPの値として非遊技スタック領域の所定値(前回の非遊技プログラムの終了時に記憶された値)を設定することで、スタックポインタSPを非遊技プログラム用に設定する(Se2)。そして、メイン制御部41が備えるすべてのレジスタの値を非遊技スタック領域に所定の順序で記憶させることで退避させる(Se3)。その後、非遊技プログラムに含まれるメダルセンサチェック処理を行う(Se4)。
Se4のステップにおいてメダルセンサチェック処理を行った後は、Se3のステップにおいて退避させていたレジスタの値を非遊技スタック領域から順次読み出して、当選情報出力処理を開始したときの状態にすべてのレジスタを復帰させた後(Se5)、Se1のステップにおいて非遊技RAM領域の所定領域に記憶させて退避させていたスタックポインタSPの値を、スタックポインタSPに設定することで、メダルセンサ処理を開始したときの状態にスタックポインタSPを復帰させ(Se6)、メダルセンサ処理を終了させて呼び出し元のメダル投入信号処理に戻る。
図15に示すように、メダルセンサチェック処理では、まず、RAM41cのうち非遊技RAM領域の所定領域に設定されているメダル通過状態参照データ及びメダル関連エラー参照データをクリアする(Sf1、Sf2)。メダル通過状態参照データは、メダルセンサチェック処理の処理結果として投入メダルセンサ31a~31cの検出範囲Aにおけるメダルの通過状態を特定可能なデータであり、当該メダルセンサチェック処理により、投入メダルセンサ31a~31cの入力データ等に基づいて、メダルが投入メダルセンサ31a~31cの検出範囲Aを正常に通過したと判定されたことや、メダルが投入メダルセンサ31a~31cの検出範囲Aを通過し始めたことを検知したと判定されたこと、投入メダルセンサ31a~31cによるメダルの検出状態が前回の判定時から変化していないと判定されたことを特定可能である。メダル通過状態参照データの初期値は、メダルの検出状態が前回の判定時から変化していない旨を示すメダル通過状態参照データ(変化なし)である。また、メダル関連エラー参照データは、メダルセンサチェック処理の処理結果として、投入メダルセンサ31a~31cの検出信号(以下、メダル投入信号と呼ぶ場合がある)に関する異常(エラーコードE5)が検出された旨を特定可能なデータである。また、メダル通過状態参照データ及びメダル関連エラー参照データは、RAM41cの非遊技RAM領域に設定されることで、非遊技プログラムにより参照及び更新が可能である一方で遊技プログラムからは参照のみが可能である。
Sf1、Sf2のステップにおいてメダル通過状態参照データ及びメダル関連エラー参照データをクリアした後、ポート入力バッファの所定領域を参照して投入メダルセンサ31a~31cの現在データを取得し(Sf3)、メダル投入信号の状態の遷移が正常であるか否かを判定するための正誤データを、ROM41bの所定領域を参照して取得し(Sf4)、RAM41cの所定領域を参照して前回以前のメダルセンタチェック処理において格納されたメダル投入信号状態遷移データを取得する(Sf5)。
そして、Sf5のステップにおいて取得したメダル投入信号状態遷移データとSf4のステップにおいて取得した正誤データを比較して、メダル投入信号状態遷移データが正しいか否かを判定する(Sf6)。
Sf6のステップにおいてメダル投入信号状態遷移データが正しいと判定した場合は、Sf3のステップにおいて取得した投入メダルセンサ31a~31cの現在データに基づいてメダル投入信号状態遷移データを更新することで、新たなメダル投入信号状態遷移データを作成してRAM41cの非遊技RAM領域の所定領域に格納する(Sf7)。
そして、RAM41cの非遊技RAM領域の所定領域に設定されているメダル通過時間タイマを参照し(Sf8)、Sf7のステップにおいて更新したメダル投入信号状態遷移データに基づいて、投入メダルセンサ31a~31cの今回及び前回の検出状態がOFF状態であるか否かを判定する(Sf9、Sf10)。メダル通過時間タイマは、投入メダルセンサ31a~31cの検出範囲Aをメダルが通過している状態であると判定される期間の継続時間を計時するタイマである。後述のするように、メダル投入信号状態遷移データに基づいて、メダル投入信号がON状態となったときに計時が開始された後、タイマ割込み処理(メイン)により更新されるようになっている。
Sf9、Sf10のステップにおいて投入メダルセンサ31a~31cの今回の検出状態がOFF状態であり、かつ前回の検出状態がOFF状態でないと判定した場合、すなわち投入メダルセンサ31a~31cの検出範囲Aの内にあったメダルが当該検出範囲を出たことにより、当該投入メダルセンサ31a~31cの検出状態がON状態からOFF状態に変化した可能性がある場合には、Sf8のステップにおいて参照したメダル通過時間タイマが、投入メダルセンサ31a~31cの検出範囲Aをメダルが正常に通過するために要する正常通過時間範囲の最短値(本実施例では、10.08ミリ秒)未満であるか否かを判定する(Sf11)。尚、正常通過時間範囲は、メダルが投入メダルセンサ31a~31cの検出範囲を通過するために要する時間の実測値や、メダルセレクタ29のメダル受入流路29bの形状、メダル受入流路29bにおける投入メダルセンサ31a~31cの配置、投入メダルセンサ31a~31cの特性等に基づいて予め定められている(本実施例では、10.08ミリ秒~99.68ミリ秒の範囲である)。
そして、Sf11のステップにおいてメダル通過時間タイマが正常通過時間範囲の最短値未満でないと判定した場合は、Sf7のステップにおいて格納されたメダル投入信号状態遷移データをクリアし(Sf12)、メダル通過時間タイマをクリアした後(Sf13)、メダルが投入メダルセンサ31a~31cの検出範囲Aを正常に通過した旨を示すメダル通過状態参照データ(正常通過)をRAM41cの非遊技RAM領域の所定領域に設定して、メダルセンサチェック処理を終了する。一方、メダル通過時間タイマが正常通過時間範囲の最短値未満でない場合は、後述するSf19のステップへ進む。
Sf9、Sf10のステップにおいて投入メダルセンサ31a~31cの今回及び前回の検出状態がともにOFF状態であると判定した場合、すなわち投入メダルセンサ31a~31cの検出範囲Aをメダルが通過しておらず、投入メダルセンサ31a~31cの検出状態が前回の判定時から変化していない場合には、メダル通過状態参照データがSf1のステップにおいて初期化された状態、すなわちメダル通過状態参照データ(変化なし)がRAM41cの所定領域に設定されている状態を維持して、メダルセンサチェック処理を終了する。
Sf9のステップにおいて投入メダルセンサ31a~31cの今回の検出状態がOFF状態でないと判定した場合、すなわち投入メダルセンサ31a~31cの検出範囲Aをメダルが通過しており、投入メダルセンサ31a~31cがON状態である場合には、Sf8のステップにおいて参照したメダル通過時間タイマが正常通過時間範囲の最大値(本実施例では、99.68ミリ秒)を超えたか否かを判定する(Sf15)。
そして、Sf15のステップにおいてメダル通過時間タイマが正常通過時間範囲の最大値を超えていないと判定した場合は、メダル通過時間タイマが動作中であるか否かを判定する(Sf16)。メダル通過時間タイマが作動中でない場合、すなわち投入メダルセンサ31a~31cの検出範囲Aにメダルが新たに進入したことにより、当該投入メダルセンサ31a~31cの検出状態がOFF状態からON状態に変化したときであり、未だメダル通過時間タイマによる計時を開始していないときである場合には、メダル通過時間タイマを0に設定して始動させた後(Sf17)、メダルが投入メダルセンサ31a~31cの検出範囲Aを通過し始めたことを検知した旨を示すメダル通過状態参照データ(メダル検知)をRAM41cの非遊技領域の所定領域に設定して、メダルセンサチェック処理を終了する。一方、Sf15のステップにおいてメダル通過時間タイマが正常通過時間範囲の最大値を超えたと判定した場合は、後述するSf19のステップへ進む。また、Sf16のステップにおいてメダル通過時間タイマが作動中であると判定した場合、すなわち投入メダルセンサ31a~31cの検出範囲Aをメダルが通過しており、投入メダルセンサ31a~31cのON状態が継続されている場合には、メダル通過状態参照データがSf1のステップにおいて初期化された状態、すなわちメダル通過状態参照データ(変化なし)がRAM41cの所定領域に設定されている状態を維持して、メダルセンサチェック処理を終了する。尚、メダル通過時間タイマは、Sf17のステップにおいて0に設定されて始動された後、タイマ割込み処理により所定時間毎に加算されるようになっており、Sf17のステップにおいて0に設定されてからの経過時間、すなわちメダル投入信号状態遷移が正しく、かつ投入メダルセンサ31a~31cがON状態となったことが判定されたときからの経過時間がメダル通過時間タイマにより計時されるようになっている。
Sf6のステップにおいてメダル投入信号状態遷移データが正しくないと判定した場合、Sf11のステップにおいてメダル通過時間タイマが正常通過時間範囲の最小値未満であると判定した場合、Sf15のステップにおいてメダル通過時間タイマが正常通過時間範囲の最大値を超えたと判定した場合には、メダル投入信号に関して異常が生じている旨を示すメダル関連エラー参照データ(E5)をRAM41cの非遊技RAM領域の所定領域に設定し(Sf19)、Sf7のステップにおいてRAM41cの所定領域に格納したメダル投入信号状態遷移データをクリアし(Sf20)、メダル通過時間タイマをクリアして計時を停止させた後(Sf21)、メダルセンサチェック処理を終了してメダルセンサ処理に戻る。尚、Sf19のステップにおいてメダル関連エラー参照データ(E5)が設定されて、メダルセンサチェック処理に戻る場合には、その後、遊技プログラムに含まれる遊技開始待ち処理のメダル投入信号処理においてメダル関連エラー参照データ(E5)が参照されることで、エラー状態に制御されることとなる。
図16に示すように、非遊技プログラムに含まれるメダルセンサチェック処理のSf6のステップにおけるメダル投入信号状態遷移が正しいか否かの判定では、投入メダルセンサ1~3(投入メダルセンサ31a~31c)により当該投入メダルセンサ1~3の検出範囲をメダルが通過し始めたことが検出される際には、投入メダルセンサ1(投入メダルセンサ31a)がOFF状態からON状態となった後、投入メダルセンサ2(投入メダルセンサ31b)がOFF状態からON状態となり、その後、投入メダルセンサ3(投入メダルセンサ31b)がOFF状態からON状態となる遷移が、メダル投入信号遷移状態データに基づいて特定される場合に、メダル投入信号状態遷移が正しいと判定されるようになっている。
また、投入メダルセンサ1~3により当該投入メダルセンサ1~3の検出範囲をメダルが通過したことが検出される際には、投入メダルセンサ1がON状態からOFF状態となった後、投入メダルセンサ2がON状態からOFF状態となり、その後、投入メダルセンサ3がON状態からOFF状態となる遷移が、メダル投入信号遷移状態データに基づいて特定される場合、及び投入メダルセンサ1がON状態からOFF状態となった後、投入メダルセンサ3がON状態からOFF状態となり、その後、投入メダルセンサ2がON状態からOFF状態となる遷移が、メダル投入信号遷移状態データに基づいて特定される場合に、メダル投入信号状態遷移が正しいと判定されるようになっている。
そして、メダルセンサチェック処理では、メダル投入信号遷移状態データが正しいと判定されており、かつ投入メダルセンサ1~3のいずれかがON状態であると判定されることで、メダル通過状態参照データ(検知)が設定されることとなる。すなわち、投入メダルセンサ1~3のうち投入メダルセンサ1が最初にOFF状態からON状態に変化する場合に、メダル投入信号遷移状態データが正しいと判定されるので、メダル投入信号遷移状態データが正しいと判定されており、かつ投入メダルセンサ1がON状態となったときに、メダル通過状態参照データ(検知)が設定されることとなる。
また、メダル投入信号遷移状態データが正しいと判定されており、かつ投入メダルセンサ1~3のすべてがON状態であると判定されることで、メダル通過状態参照データ(正常通過)が設定されることとなる。すなわち、投入メダルセンサ1~3のうち投入メダルセンサ2が最後にON状態からOFF状態に変化する場合、及び投入メダルセンサ3が最後にON状態からOFF状態に変化する場合に、メダル投入信号遷移状態データが正しいと判定されるので、メダル投入信号遷移状態データが正しいと判定されており、かつ投入メダルセンサ2及び3がOFF状態となったときに、メダル通過状態参照データ(正常通過)が設定されることとなる。
遊技プログラムに含まれるメダル投入信号処理では、Sd16及びSd17のステップによりメダル通過状態参照データ(正常通過)が設定されていると判定した後に、Sd21~Sd24のステップにより投入メダルセンサ1~3の入力データがON状態からOFF状態となったことが特定される場合に、その後のメダル投入処理等に進むようになっている。すなわち、メダルセンサチェック処理によりメダル通過状態参照データ(正常通過)が設定された際に、投入メダルセンサ2または3のON状態からOFF状態への立下りが検出されることで、正常なメダルの投入が検出されるようになっている。
[役比モニタ用データ処理について]
本実施例のメイン制御部41が行う役比モニタ用データ処理の制御内容について、図17~図20に基づいて説明する。尚、役比モニタ用データ処理は、非遊技プログラムに含まれており、遊技プログラムに含まれるメイン処理において呼び出されるサブルーチンである。また、役比モニタ用データ処理は、非遊技プログラムに含まれるサブルーチンである各状態カウント処理を呼び出し、当該各状態カウント処理は、非遊技プログラムに含まれるサブルーチンである役物比率更新処理を更に呼び出すようになっている。
メイン制御部41は、過去6000ゲーム間の役物払出比率と総累計払出数に対する役物払出比率とを比率表示として、2桁の7セグメント表示器で構成されるクレジット表示器11と遊技補助表示器12に表示させる制御を行う。クレジット表示器11と遊技補助表示器12は、遊技の進行に応じた情報が表示される表示器であり、比率表示を常時表示させることができないため、遊技が行われていない状況下で遊技店の店員などにより所定の操作が行われたことにより比率表示を表示させる。
具体的には、ゲームが行われていないときに、通常施錠されている前面扉1bを遊技店の店員が所持する鍵により解錠して開放状態とした上で、筐体1aの内部に設けられたリセット/設定スイッチ38を操作すると、メイン制御部41は、クレジット表示器11と遊技補助表示器12における現在の表示内容が切り替えて比率表示の表示を開始させる。
また、比率表示は、比率表示の種類を示す略記を構成する上位2桁の英数字と、比率を示す下位2桁の数字とからなる4桁の英数字により構成されており、上位2桁の表示内容をクレジット表示器11に、下位2桁の表示内容を遊技補助表示器12に表示させ、比率表示の開始から予め定められた表示順で所定時間毎に切り替えて比率表示を表示させる。
クレジット表示器11と遊技補助表示器12とに比率表示を表示させた状態で、前面扉1bの閉鎖、スロットマシン1へのメダルの投入、エラーの発生、設定キースイッチ37の操作、精算スイッチ10の操作、スロットマシン1への電力供給の停止のいずれかが検出される、比率表示を表示させる前に表示されていた元の表示内容へ切り替えて比率表示を終了させる。
メイン制御部41は、メイン処理の遊技終了時設定処理(図12のSb44のステップ)において、各リール2L、2C、2Rに導出された表示結果に応じて入賞が発生したか否かを判定する処理を行った後に、タイマ割込みを禁止に設定し、非遊技プログラムに含まれる役比モニタ用データ処理を実行する。
図17に示すように、役比モニタ用データ処理では、まず、呼び出し元の遊技プログラムにより使用されていたスタックポインタSPの示すアドレスの値を非遊技RAM領域の所定領域に記憶させて退避させ(Sg1)、その後、当該スタックポインタSPの値として非遊技スタック領域の所定値(前回の非遊技プログラムの終了時に記憶された値)を設定することで、スタックポインタSPを非遊技プログラム用に設定する(Sg2)。そして、メイン制御部41が備えるすべてのレジスタの値を非遊技スタック領域に所定の順序で記憶させることで退避させる(Sg3)。そして、非遊技プログラムに含まれる各状態カウント処理(Sg4)を実行した後、Sg3のステップにおいて退避させていたレジスタの値を非遊技スタック領域から順次読み出して、役比モニタ用データ処理を開始したときの状態にすべてのレジスタを復帰させた後(Sg5)、Sg1のステップにおいて非遊技RAM領域の所定領域に記憶させて退避させていたスタックポインタSPの値を、スタックポインタSPに設定することで、役比モニタ用データ処理を開始したときの状態にスタックポインタSPを復帰させ(Sg6)、役比モニタ用データ処理を終了させて呼び出し元のメイン処理に戻り、Sb37のステップへ進む。その後、メイン処理では、タイマ割込みが許可されて(Sb37)、その後の処理が実行される。
図18に示すように、各状態カウント処理では、総累計ゲーム数の加算が可能であるかが判定される(Sh1)。総累計ゲーム数は、3バイトの記憶領域に格納されており、上限値として16777215ゲームまで計数可能である。
総累計ゲーム数の加算ができない場合は、Sh22のステップに進む。総累計ゲーム数の加算ができる場合、ゲームが行われたとして1を加算する(Sh2~Sh4)。前述したとおり、遊技機に用いられるマイクロコンピュータは最大2バイトの値同士の演算しか行うことができないため、この加算は3バイトデータ加算&格納処理(Sh4)のサブルーチンを呼び出して実行される。そして、加算した結果、総累計ゲーム数が上限に到達したかが判定される(Sh4)。総累計ゲーム数が上限値に到達していない場合はSh7のステップへ進む。総累計ゲーム数が上限値に到達している場合、総累計カウント停止フラグに上限値に到達した旨を示す値が設定され(Sh5、Sh6)、Sh7のステップへ進む。なお、前述したSh1のステップでは総累計カウント停止フラグを参照して総累計ゲーム数の加算が可能であるかが判定される。
Sh7からのステップでは、総累計ゲーム数が0~5999ゲームの範囲にあるか、6000~174999ゲームの範囲にあるか、175000ゲーム以上の範囲にあるか、が判定される(Sh7~Sh20)。判定の結果に応じて、それぞれの範囲にあることを示す値を点灯識別セグとして設定する(Sh8、Sh18、Sh19)。設定された点灯識別セグは、表示モニタ消化遊技判定フラグに格納される。そして、非遊技プログラムに含まれる役物比率更新処理(Sh22)を実行した後に、役比モニタ用データ処理に復帰する。
図19に示すように、役物比率更新処理では、まず遊技回数判定用のゲーム回数の1加算を行う(Si1)。ここで後述する判定用ゲーム数カウンタに1が加算される。次に今回のゲームで入賞が発生したことにより払出される入賞メダル枚数の加算を行う(Si2、Si3)。ここで累計バッファ1~3の総払出カウンタにそれぞれ入賞メダル枚数の加算が行われる。
累計バッファ1には3バイトの総払出カウンタと3バイトの役物払出カウンタとが設けられており、ゲームで入賞が発生してメダルの払出が行われるとそれぞれのカウンタで計数が行われる。計数を開始してから6000ゲームに到達すると総払出カウンタと役物払出カウンタを初期値である0に更新し次のゲームは初期値から計数を開始する。
累計バッファ2も累計バッファ1と同様に3バイトの総払出カウンタと3バイトの役物払出カウンタとが設けられており、ゲームで入賞が発生してメダルの払出が行われるとそれぞれのカウンタで計数が行われる。計数を開始してから6000ゲームに到達すると総払出カウンタと役物払出カウンタを初期値である0に更新し次のゲームは初期値から計数を開始する。但し、計数を開始するゲームは累計バッファ1と2000ゲームずれている。
累計バッファ3も累計バッファ1、累計バッファ2と同様に3バイトの総払出カウンタと3バイトの役物払出カウンタとが設けられており、ゲームで入賞が発生してメダルの払出が行われるとそれぞれのカウンタで計数が行われる。計数を開始してから6000ゲームに到達すると総払出カウンタと役物払出カウンタを初期値である0に更新し次のゲームは初期値から計数を開始する。但し、計数を開始するゲームが累計バッファ1と4000ゲーム、累計バッファ1と2000ゲームずれている。
続いて、総累計払出枚数の加算が可能であるかが判定される(Si4)。総累計払出枚数の加算ができない場合は、Si10のステップに進む。総累計払出枚数の加算が可能である場合、総累計払出枚数に入賞メダル枚数の加算が行われる。そして、加算した結果、総累計払出枚数が上限に到達したかが判定される(Si7)。総累計払出枚数が上限値に到達していない場合はSi10のステップへ進む。総累計払出枚数が上限値に到達している場合、総累計カウント停止フラグに上限値に到達した旨を示す値が設定され(Si8、Si9)、Si10のステップへ進む。なお、総累計払出枚数の加算が可能であるかは総累計カウント停止フラグを参照して判定されるとともに、総累計ゲーム数が上限値に到達したときと、総累計払出枚数が上限値に到達したときとで同じフラグが用いられる。
Si10、Si11のステップでは遊技において役物が作動しているか否か、つまりBBまたはRBに制御されている期間であるかが判定される。役物が作動していない場合、Si17に進む。役物が作動している場合、今回のゲームで入賞が発生したことにより払出される入賞メダル枚数を役物作動期間の払出枚数として加算を行う(Si12、Si13)。ここで累計バッファ1~3の役物払出カウンタにそれぞれ入賞メダル枚数の加算が行われる。
続いて、総累計役物払出枚数の加算が可能であるかが判定される(Si14)。総累計役物払出枚数の加算ができない場合は、Si17のステップに進む。総累計役物払出枚数の加算が可能である場合、総累計役物払出枚数に入賞メダル枚数の加算が行われ(Sb15、16)、Si17のステップへ進む。なお、総累計役物払出枚数の加算が可能であるかは総累計カウント停止フラグを参照して判定される。
以上のように更新された総累計払出枚数と総累計役物払出枚数から総累計払出数に対する役物払出比率の算出を行う(Si17、Si18)。そして算出された値が総累計払出数に対する役物払出比率として格納される(Si19)。
続いて、判定用ゲーム数カウンタを参照して、当該ゲームが更新ゲーム数か否かを判定する(Si20~Si23)。判定用ゲーム数カウンタは1~6000ゲームの間で循環して計数されるカウンタであり、計数を開始してからのゲーム数が2000ゲーム、4000ゲーム、6000ゲームに到達したかを判定するために用いられるカウンタである。上記判定は、判定用カウンタを2000で除算して余りが生じたか否かにより判定され、余りが生じていた場合、当該ゲームが更新ゲーム数でないとして各状態カウント処理に復帰する。
判定用カウンタを2000で除算して余りが生じなかった場合、除算結果の商より当該ゲームが2000ゲーム、4000ゲーム、6000ゲームのいずれの更新ゲームかを特定する(Si24)。そして、累計バッファ1~3のうち、特定された更新ゲームに対応する累計バッファより総払出カウンタの値を読み出して6000回算出用バッファに6000ゲーム累計払出枚数として格納するとともに読み出し元の総払出カウンタを初期値である0に更新する(Si25~Si27)。同様に特定された更新ゲームに対応する累計バッファより役物払出カウンタの値を読み出して6000回算出用バッファに6000ゲーム累計役物払出枚数として格納するとともに読み出し元の役物払出カウンタを初期値である0に更新する(Si28~Si30)。
さらに、6000回算出用バッファに格納された6000ゲーム累計払出枚数と6000ゲーム累計役物払出枚数とから6000ゲーム累計払出枚数に対する役物払出比率の算出を行う。6000ゲーム累計払出枚数と6000ゲーム累計役物払出枚数はいずれも3バイトのデータであるため、実施例1のスロットマシンにおいて説明した演算方法により、役物払出比率の算出を行う(Si31、Si32)。そして算出された値が過去6000ゲーム間の役物払出比率として格納される(Si33)。その後、各状態カウント処理に復帰する。
総累計払出数に対する役物払出比率、過去6000ゲーム間の役物払出比率は、表示モニタ用データ選択処理において参照され、遊技店の店員等により所定操作が行われた際に、遊技補助表示器12に順次表示されることとなる。この際、表示されている比率表示の種類を示す略記は、クレジット表示器11に表示される。
図20を参照して、役比モニタ用データ処理による累計バッファ1~3及び6000回算出用バッファ、総累計払出枚数と総累計役物払出枚数が格納される総累計算出用バッファの更新状況を説明する。累計バッファ1~3、6000回算出用バッファ及び総累計算出用バッファの記憶内容は工場出荷時または何らかの原因でRAM41cのデータに異常が生じて初期化されない限りは保持されている。
各バッファ値が初期化された状態から累計バッファ1と総累計算出用バッファでの計数が開始される。2000ゲームが経過すると累計バッファ2での計数が開始される。累計バッファ1は計数を継続している。続いて2000ゲームが経過すると累計バッファ3での計数が開始される。累計バッファ1と累計バッファ2は計数を継続している。
さらに2000ゲームが経過すると累計バッファ1での計数期間が6000ゲームに達する。ここで累計バッファ1の計数内容が6000回算出用バッファに格納される。そして累計バッファ1の計数内容は初期化され初期値(0)から計数を開始する。
次の2000ゲームが経過すると累積バッファ2での計数期間が6000ゲームに達する。ここで累積バッファ2の計数内容が6000回算出用バッファに格納される。そして累積バッファ2の計数内容は初期化され初期値(0)から計数を開始する。
このように累計バッファ1~3に計数された6000ゲーム間の計数結果が2000ゲーム毎に6000回算出用バッファに格納されていく。なおこの間、総累計算出用バッファの計数結果は初期化されることなく累積して計数が行われている。
[タイマ割込み処理について]
本実施例のメイン制御部41が行うタイマ割込み処理(メイン)の制御内容について、図21に基づいて説明する。尚、タイマ割込み処理(メイン)は、遊技プログラムに含まれるサブルーチンである。
図21に示すように、タイマ割込み処理(メイン)では、まず、すべての表レジスタと裏レジスタを交換した後(Sj1)、タイマ割込を禁止に設定し(Sj2)、RAM41cの所定領域に設定されている電圧低下状態カウンタの値を取得する(Sj3)。そして、電断検出回路48から電圧低下信号が入力される入力ポートを参照して(Sj4)、電圧低下信号が入力されているか否かを判定する(Sj5)。電圧低下信号が入力されている場合には、電圧低下状態カウンタが予め定められた上限値(本実施例では、4)に達しているか否かを判定し(Sj6)、電圧低下状態カウンタが上限値に達している場合には、後述する電断処理(メイン)を行う(Sj7)。
Sj5のステップにおいて電圧低下信号が入力されていないと判定した場合、及びSj6のステップにおいて電圧低下状態カウンタが上限値に達していないと判定した場合は、Sj8のステップに進み、電圧低下状態カウンタを更新する。Sj5のステップからSj8のステップに進んだ場合には、電圧低下状態カウンタに0を加算することで、現在の値を維持する一方で、Sj5のステップからSj8のステップに進んだ場合には、電圧低下状態カウンタに1加算するように更新する。
そして、入力ポートから各種スイッチ類の検出状態を入力し、入力データ、確定データ、エッジデータ(ONエッジデータ及びOFFエッジデータ)を生成するポート入力処理を行う(Sj9)。その後、メイン制御部41が備えるレジスタのうち演算結果が格納されるフラグレジスタの値を、遊技RAM領域の遊技スタック領域に所定の順序で記憶させることで退避させた後(Sj10)、非遊技プログラムに含まれる非遊技関連処理を行う(Sj11)。その後、Sj10のステップにおいて遊技スタック領域に退避させたフラグレジスタの値を、退避させるときと逆の順序で遊技スタック領域から順次読み出してフラグレジスタに設定することで、非遊技関連処理を行う前の状態にフラグレジスタを復帰させる(Sj12)。
非遊技関連処理では、まず、呼び出し元の遊技プログラムにより使用されていたスタックポインタSPにより示される遊技スタック領域の現在のアドレスの値を、非遊技RAM領域の所定領域に記憶させて退避させる。その後、当該スタックポインタSPの値として非遊技スタック領域の所定値(前回の非遊技プログラムの終了時に、非遊技プログラム用のスタックポインタSPにより示されるアドレスとして非遊技RAM領域の所定領域に記憶されている値)を設定することで、スタックポインタSPを非遊技プログラム用に設定する。そして、上述のフラグレジスタを含むメイン制御部41が備えるすべてのレジスタの値を、スタックポインタSPにより特定される非遊技RAM領域の非遊技スタック領域に所定の順序で記憶させることで退避させる。その後、投入メダルセンサ31a~31cや払出センサ34cに関する異常を検出するセンサ監視処理、遊技の結果に関連して発生する試験信号を出力する試験信号出力処理、非遊技プログラムが用いる各種タイマを更新する非遊技関連タイマ更新処理、役比モニタに表示させる出力データを選択する役比モニタ出データ選択処理を順次行う。また、センサ監視処理では、投入メダルセンサ31a~31cや払出センサ34cに関する異常が検出した場合に、検出された異常の種類を特定可能なセンサエラー参照データをRAM41cの非遊技RAM領域の所定領域に設定するようになっている。そして、非遊技関連処理を開始した際に非遊技スタック領域に記憶させて退避させていたレジスタの値を、退避させるときと逆の順序で非遊技スタック領域から順次読み出して、当該順序に対応するレジスタに設定することで、非遊技関連処理を開始したときの状態にすべてのレジスタを復帰させる。その後、非遊技関連処理を開始した際に非遊技RAM領域の所定領域に退避させたスタックポインタSPの値を、スタックポインタSPに設定することで、非遊技関連処理を開始したときの状態にスタックポインタSPを復帰させて、非遊技関連処理を終了させる。
Sj12のステップにおいてフラグレジスタを復帰させた後は、Sj11のステップにおける非遊技関連処理により設定されたセンサエラー参照データを参照し(Sj13)、今回のタイマ割込みにおける非遊技関連処理により設定されたセンサエラー参照データと、前回のタイマ割込みにおける非遊技関連処理により設定されたセンサエラー参照データの論理和を算出する(Sj14)。そして、RAM41cの遊技RAM領域の所定領域に設定されており、投入メダルセンサ31a~31cや払出センサ34cに関する異常が検出されているか否かを特定可能なセンサエラーフラグを、Sj14のステップで算出した論理和に基づいて更新する。Sj13~Sj15のステップを行うことで、センサエラー参照データに基づいて異常が検出されていることが特定される場合には、センサエラーフラグが異常が検出されていることを示す状態であるか否かにかかわらず、当該異常が検出されている旨を示すように、センサエラーフラグを更新する。一方、センサエラー参照データに基づいて異常が検出されていないことが特定される場合には、センサエラーフラグの状態を維持する。すなわち、センサエラー参照データに基づいて異常が検出されていることが特定される場合には、センサエラー参照データの内容をセンサエラーフラグに反映させる一方で、センサエラー参照データに基づいて異常が検出されていないことや異常が解除されたことが特定される場合には、センサエラー参照データの内容をセンサエラーフラグに反映させないようになっている。
Sj15のステップにおいてセンサエラーフラグを更新した後は、メイン制御部41の内部に設けられた乱数回路における乱数値を更新する乱数値更新処理を行い(Sj16)、メイン制御部41の内部に設けられたウォッチドッグタイマ(WDT)のレジスタをクリアする(Sj17)。その後、RAM41cの所定領域に設けられ、タイマ割込みに含まれる処理を分岐させるための分岐用カウンタの値を所定のレジスタに読み込み、所定値(本実施例では、1)を加算して更新し、更新された値を、RAM41cの所定領域の分岐用カウンタの値として設定する(Sj18)。この分岐用カウンタを更新する処理では、当該分岐用カウンタが0~2である場合は1加算し、分岐用カウンタが3である場合は初期化して0に戻すことで、0~3の範囲で更新する。すなわち分岐用カウンタの値は、タイマ割込み処理(メイン)が実行される毎に、0→1→2→3→0・・・の順番でループする。そして、分岐用カウンタの値は、タイマ割込み処理(メイン)において実行される各処理において参照され、例えば、分岐用カウンタが所定値となったときに所定の制御を実行する等、各処理内の制御が分岐されることとなる。
Sj18のステップにおいて分岐用カウンタを更新した後、当該分岐用カウンタが4であるか否かを判定し(Sj19)、分岐用カウンタが4である場合には、RAM41cの所定領域に設定されている所定の各種タイマを更新するタイマ更新処理(Sj20)、出力ポートに接続された各種LED等の表示器(クレジット表示器11、遊技補助表示器12、1~3BETLED14~16、投入要求LED17、スタート有効LED18、ウェイト中LED19、リプレイ中LED20等)の点灯状態をメイン処理等の各処理による設定に応じてダイナミック点灯させるための点灯信号を設定して送信等を行うに制御するLEDダイナミック表示処理(Sj21)を行う。
Sj19のステップにおいて分岐用カウンタが4でないと判定した場合、及びSj21のステップにおいてLEDダイナミック表示処理を行った後は、外部出力信号のうちメダルが投入された旨を示すメダル投入信号やメダルの払い出しが行われる旨を示すメダル払出信号の出力設定を更新して、スロットマシン1の外部に送信するメダル投入払出信号送信処理(Sj22)、外部出力信号のうちセキュリティ信号(ドア開放信号、設定変更信号、投入エラー信号、払出エラー信号)の出力設定を更新して、スロットマシン1の外部に送信するセキュリティ信号送信処理(Sj24)、コマンドキューに設定されたドアコマンドや操作終了コマンド等の各種コマンドを送信させる等を行うコマンド送信処理(Sj25)を順次行う。
その後、分岐用カウンタを参照して、当該分岐用カウンタが2であるか否かを判定し、分岐用カウンタが2である場合には、リールに関する異常が生じている場合(リールエラー中)に設定されるリールエラーフラグがRAM41cの所定領域に設定されているか否かに基づいて、リールエラー中であるか否か判定する(Sj26)。そして、リールエラー中でない場合は、ゲームの進行状況等に応じて各リールモータ32L、32C、32Rの励磁パターンの設定等を行ってリールの回転及び停止を制御するリール制御処理を行う(Sj27)。
そして、Sj25のステップにおいて分岐用タイマが2でないと判定した場合、Sj26のステップにおいてリールエラー中であると判定した場合、及びSj27のステップにおけるリール制御処理を終了した場合は、リール制御処理により設定された励磁パターンに応じた駆動信号を各リールモータ32L、32C、32Rに出力されることで、各リールモータ32L、32C、32Rを所定の制御態様で回転、停止させるリールモータ駆動信号出力処理(Sj29)、ソレノイド駆動回路46に対して制御信号を送信する処理や左・中・右停止有効LED22L、22C、22Rの点灯状態を更新する処理等を行うポート出力更新処理(Sj30)を順次行った後、すべての表レジスタと裏レジスタを交換し(Sj31)、タイマ割込を許可に設定して(Sj32)、タイマ割込み処理(メイン)を終了させて、当該タイマ割込み処理(メイン)が開始されたときのメイン処理に復帰させる。
次いで、メイン制御部41が行う電断処理(メイン)の制御内容について、図22に基づいて説明する。尚、電断処理(メイン)は、遊技プログラムに含まれるサブルーチンである。
メイン制御部41は、上述のタイマ割込処理(メイン)において電圧低下状態が所定時間継続したと判定される場合に電断処理(メイン)を実行する。
図22に示すように、電断処理(メイン)では、まず、すべての表レジスタと裏レジスタを交換し(Sk1)、メイン制御部41が備えるすべてのレジスタの値を、遊技RAM領域の遊技スタック領域に所定の順序で記憶させることで退避させ(Sk2)、スタックポインタSPにより示される遊技スタック領域の現在のアドレスを遊技RAM領域の所定領域に記憶させることで退避させる(Sk3)。尚、メイン制御部41がレジスタの値を記憶させる遊技RAM領域の遊技スタック領域やスタックポインタSPにより示されるアドレスの値を記憶させる遊技RAM領域の所定領域を含む遊技RAM領域の所定領域は、バックアップ電源によりバックアップされており、スロットマシン1への電力供給が停止しても、バックアップ電源により電力が供給される限り当該遊技RAM領域の記憶内容が保存されるようになっている。
そして、まず、メイン制御部41が備えるパラレル出力ポートのうちホッパーモータ34bの駆動信号が出力される出力ポート3を初期化して(Sk4)、出力状態をOFF状態にする。これにより、ホッパーユニット34によりメダルの払い出しが行われている場合には、メダルの払い出しをまず優先的に停止させる。その後、パラレル出力ポートのうちリールモータ32L、32C、32Rの駆動信号が出力される出力ポート0、1を初期化して(Sk5)、リール2L、2C、2Rが回転制御されている場合には、リール2L、2C、2Rの回転を停止させる。
その後、パラレル出力ポートのうち左・中・右停止有効LED22L、22C、22R及び流路切替ソレノイド30の制御信号が出力される出力ポート2、クレジット表示器11、遊技補助表示器12の制御信号が出力される出力ポート4、5、試験用信号を出力する出力ポート6、7、サブ制御部91に対してコマンドを送信する出力ポート8、9を順次初期化して(Sk6~Sk11)、各種スイッチ類への制御信号等の出力を停止させる。
Sk4~Sk11のステップにおいて出力ポート0~9を初期化した後、RAM41cの所定領域に破壊診断用データ(本実施例では、5A(H))を設定し(Sk12)、RAM41cの所定領域に設定されているパリティ調整用データをクリアする(Sk13)。そして、RAM41cのすべての格納領域(未使用領域及び未使用スタック領域を含む)の排他的論理和が0になるように新たなRAM41cのパリティ調整用データを計算して(Sk14)、当該パリティ調整用データをRAM41cの所定領域に設定し(Sk15)、RAM41cへのアクセスを禁止に設定し(Sk16)、ループ処理に入る。
ループ処理では、電圧低下信号の出力状況を監視した状態で待機する。この状態で、電圧低下信号が入力されなくなった場合に電圧の回復を判定し、起動処理(メイン)からプログラムをスタートさせる。一方、電圧低下信号が入力されたまま電圧が低下すると内部的に動作停止状態になる。
以上の処理によって、AC100Vの電力供給が停止される場合には、電断処理(メイン)が実行され、電断前のレジスタの値が遊技RAM領域の遊技スタック領域に退避されるとともに、当該遊技スタック領域を含むRAM41cの遊技RAM領域の所定領域の内容もバックアップ電源が供給されることで保持されるため、スロットマシン1への電力供給が再開された際に実行される起動処理(メイン)において、電断前の制御状態に復帰させることが可能となる。さらに電断前の制御状態において停止操作が有効であったか否も特定できるようになっている。
[非遊技関連処理について]
本実施例のメイン制御部41が行う非遊技関連処理の制御内容について、図23~図21に基づいて説明する。尚、非遊技関連処理は、非遊技プログラムに含まれており、遊技プログラムに含まれるタイマ割込み処理(メイン)により呼び出されるサブルーチンである。また、非遊技関連処理は、非遊技プログラムに含まれるセンサ監視処理、試験信号出力処理、メダル通過時間タイマ更新処理、表示モニタ出力データ選択処理を順次呼び出すようになっている。
図23に示すように、非遊技関連処理では、まず、呼び出し元の遊技プログラムにより使用されていたスタックポインタSPにより示される遊技スタック領域の現在のアドレスの値を、非遊技RAM領域の所定領域に記憶させて退避させる(Sm1)。その後、当該スタックポインタSPの値として非遊技スタック領域の所定値(前回の非遊技プログラムの終了時にスタックポインタSPにより示されるアドレスとして非遊技RAM領域の所定領域に記憶されている値)を設定することで、スタックポインタSPを非遊技プログラム用に設定する(Sm2)。そして、上述のフラグレジスタを含むメイン制御部41が備えるすべてのレジスタの値を、スタックポインタSPにより特定される非遊技RAM領域の非遊技スタック領域に所定の順序で記憶させることで退避させる(Sm3)。その後、非遊技プログラムに含まれており、投入メダルセンサ31a~31c、払出センサ34cの検出信号に異常が発生しているか否かを判定するセンサ監視処理(Sm4)、スロットマシン1に接続される試験装置に試験用信号を出力する試験信号出力処理(Sm5)、投入メダルセンサ31a~31cの検出範囲のメダルの通過時間を計時するタイマを更新するメダル通過時間タイマ更新処理(Sm6)、役比モニタに表示させる役比データを選択する役比モニタ表示データ選択処理(Sm7)を順次行う。
Sm7のステップにおける役比モニタ表示データ選択処理の処理を行った後は、Sm3のステップにおいて非遊技スタック領域に記憶させて退避させていたレジスタの値を、退避させるときと逆の順序で非遊技スタック領域から順次読み出して、当該順序に対応するレジスタに設定することで、非遊技関連処理を開始したときの状態にすべてのレジスタを復帰させる(Sm8)。その後、Sm1のステップにおいて非遊技RAM領域の所定領域に退避させた遊技プログラム用のスタックポインタSPの値を、スタックポインタSPに設定することで、非遊技関連処理を開始したときの状態にスタックポインタSPを復帰させて(Sm9)、非遊技関連処理を終了させて呼び出し元のタイマ割込み処理(メイン)に戻る。
このように、メイン制御部41は、非遊技プログラムに含まれる非遊技関連処理に従って各種処理(センサ監視処理、試験信号出力処理、メダル通過時間タイマ更新処理、役比モニタ表示データ選択処理)を行う場合には、遊技プログラムに含まれるタイマ割込み処理(メイン)(Sj11)から非遊技関連処理を呼び出すことで、当該非遊技関連処理の各種処理を行い、当該各処理が終了することで、呼び出し元のタイマ割込み処理(メイン)に戻るようになっている。
また、非遊技関連処理では、遊技プログラムであるタイマ割込み処理(メイン)から呼び出された後、まず、スタックポインタSP及びレジスタを退避させる処理を行って、その後、センサ監視処理、試験信号出力処理、メダル通過時間タイマ更新処理、役比モニタ表示データ選択処理等の複数の処理を行う。そして、これらの処理がすべて終了した後、遊技プログラムから呼び出されたときに退避させたスタックポインタSP及びレジスタを復帰させて、呼び出し元のタイマ割込み処理(メイン)に戻る構成になっている。このような構成すなわち遊技プログラムから1回の呼出処理により呼び出された非遊技プログラムにおいて、複数の処理(例えば、センサ監視処理、試験信号出力処理、メダル通過時間タイマ更新処理、役比モニタ表示データ選択処理等)を行う構成では、非遊技プログラムにおいて行う複数の各処理毎に、スタックポインタSP及びレジスタを退避させる処理及びこれらを復帰させる処理を行わず、まとめて1回の処理とすることができる。
また、遊技プログラム(例えば、タイマ割込み処理(メイン))から非遊技プログラム(例えば、非遊技関連処理)を呼び出す際に、遊技プログラム側において、メイン制御部41が備えるレジスタのうち演算結果が格納されるフラグレジスタの値を、遊技RAM領域の遊技スタック領域に記憶させることで退避させた後、非遊技プログラムを呼び出し、当該非遊技プログラムが終了された後に、当該非遊技プログラムを呼び出す前に退避させたフラグレジスタの値を、遊技スタック領域から順次読み出して該当するフラグレジスタに設定することで、非遊技プログラムを呼び出す前の状態にフラグレジスタを復帰させるようになっている。これにより、遊技プログラムは、非遊技プログラムを呼び出すことで、当該非遊技プログラムが演算を行うためにフラグレジスタを使用して、当該フラグレジスタの値を変更させた場合でも、遊技プログラムに復帰した際に、当該非遊技プログラムを呼び出す前の状態にフラグレジスタの値を復帰させて、その後の処理を行うことができるようになっている。
また、非遊技プログラム(例えば、非遊技関連処理)では、遊技プログラム(例えば、タイマ割込み処理(メイン))により呼び出された際に、まず、呼び出し元の遊技プログラムにより使用されていたスタックポインタSPにより示される遊技スタック領域の現在のアドレスの値を、非遊技RAM領域の所定領域に記憶させて退避させる。そして、非遊技プログラムに応じた所定の処理を行った後、当該非遊技プログラムを終了させる際に、非遊技プログラムを開始した際に非遊技RAM領域の所定領域に退避させたスタックポインタSPの値をスタックポインタSPに設定することで、非遊技プログラムを開始したときの状態にスタックポインタSPを復帰させるようになっている。これにより、非遊技プログラムは、当該非遊技プログラムにおいてスタックポインタSPを使用して、当該スタックポインタSPを変更させた場合でも、非遊技プログラムを終了させる際に、当該非遊技プログラムを開始したときの状態にスタックポインタSPを復帰させた状態で、呼び出し元の遊技プログラムに復帰させることができるようになっている。
また、非遊技プログラム(例えば、非遊技関連処理)では、遊技プログラム(例えば、タイマ割込み処理(メイン))により呼び出された際に、メイン制御部41が備えるすべてのレジスタの値を、非遊技RAM領域の非遊技スタック領域に記憶させることで退避させる。そして、非遊技プログラムに応じた所定の処理を行った後、当該非遊技プログラムを終了させる際に、当該非遊技プログラムを開始した際に非遊技スタック領域に記憶させて退避させていたレジスタの値を、非遊技スタック領域から順次読み出して、該当するレジスタに設定することで、当該非遊技プログラムを開始したときの状態にすべてのレジスタを復帰させるようになっている。これにより、非遊技プログラムは、当該非遊技プログラムにおいて、各種処理を行うためにレジスタを使用して、当該レジスタの値を変更させた場合でも、非遊技プログラムを終了させる際に、当該非遊技プログラムを開始したときの状態にすべてのレジスタの値を復帰させた状態で、呼び出し元の遊技プログラムに復帰させることができるようになっている。
また、非遊技プログラムでは、遊技プログラムにより呼び出された際に、メイン制御部41が備える全てのレジスタの値を、非遊技RAM領域の非遊技スタック領域に記憶させることで退避させ、当該非遊技プログラムを終了させる際に、非遊技スタック領域に記憶させて退避させていたレジスタの値を該当するレジスタに設定することで、当該非遊技プログラムを開始したときの状態にすべてのレジスタを復帰させるようになっている。遊技プログラムにより使用されていたレジスタの値を、非遊技RAM領域の非遊技スタック領域に記憶させて退避させ、当該非遊技スタック領域からレジスタに復帰させるので、遊技スタック領域に全てのレジスタの値を退避させるための領域を設ける必要がなく、遊技スタック領域にはフラグレジスタの値を退避させるための領域のみを設ければ良いので、当該遊技スタック領域の容量を低減することができる。
また、メイン制御部41がフラグレジスタの値を退避させる命令に1バイトのプログラム容量を必要とする一方、メイン制御部41が全てのレジスタの値を退避させる命令に2バイトのプログラム容量を必要とする。そして、遊技プログラムから非遊技プログラムを呼び出す際に、遊技プログラム側において、メイン制御部41が備えるレジスタのうちフラグレジスタの値を、遊技RAM領域の遊技スタック領域に退避させた後、非遊技プログラムを呼び出し、非遊技プログラム側において、全てのレジスタの値を、非遊技RAM領域の非遊技スタック領域に退避させるようになっており、遊技プログラム側で全てのレジスタを退避させる場合よりも遊技プログラムのプログラム容量を削減できるようになっている。
[センサ監視処理について]
図24に示すように、センサ監視処理では、タイマ割込み処理(メイン)において更新され、RAM41cの遊技RAM領域の所定領域に設定されるタイマ割込み処理(メイン)の分岐用カウンタを参照して払出センサ34c、34dの検出状態に異常が生じているか否かを監視する払出センサに関する処理を行うタイミング(分岐用タイマが0であるタイミング)であるか否かを判定する(Sn1)。そして、払出センサに関する処理を行うタイミングである場合は、Sn2のステップに進む。一方、払出センサに関する処理をタイミングでない場合は、Sn16のステップに進み、投入メダルセンサ31a~31cの検出状態に異常が生じているか否かを監視する投入センサに関する処理を行う。
Sn1のステップにおいて払出センサに関する処理を行うタイミングであると判定した場合は、当該センサ監視処理による監視結果を遊技プログラムに伝達するためにRAM41cの非遊技RAM領域の所定領域に設定されているセンサエラー参照データをクリアする(Sn2)。そして、RAM41cの遊技RAM領域の所定領域に設定されており、エラーコードE1~E5の異常が発生しているか否かを特定可能なエラーフラグを参照して(Sn3)、エラーコードE2、E3、E4の異常が発生しているか否かを判定する(Sn4)。
Sn4のステップにおいてエラーコードE2、E3、E4の異常が発生していると判定した場合は、Sn16のステップに進む一方、エラーコードE2、E3、E4の異常が発生していないと判定した場合は、払出センサ34c、34dの確定データが記憶されているポート入力バッファの所定領域を参照した後(Sn5)、RAM41cの遊技RAM領域の所定領域を参照して、ホッパーユニット34によりメダルを払い出す払出制御を行っている旨を示す払出中フラグが設定されているか否かを判定する(Sn6)。
Sn6のステップにおいて払出中フラグが設定されていると判定した場合は、Sn5のステップにおいて参照した払出センサ34c、34dの確定データに基づいて、払出センサ34c、34dの一方がON状態であるか否かを判定し(Sn7)、払出センサ34c、34dの一方がON状態である場合は、払出センサ34c、34dのエッジデータが記憶されているポート入力バッファの所定領域を参照し(Sn8)、エッジデータ(ONエッジデータまたはOFFエッジデータ)が設定されているか否かを判定する(Sn9)。
そして、Sn7のステップにおいて払出センサ34c、34dの一方がON状態であり、かつSn7のステップにおいてエッジデータが設定されていると判定した場合、すなわちホッパーユニット34から払出された1枚のメダルが払出センサ34c、34dの検出範囲を通過し始めたとき、またはホッパーユニット34から払出された1枚のメダルが払出センサの検出範囲を通過し終えたときである場合は、RAM41cの非遊技RAM領域の所定領域に設定されているセンサチェックタイマ1を初期化して0に設定し(Sn10)、新たなメダルの通過時間の計時を開始させる。そして、Sn9のステップにおいてエッジデータが設定されていないと判定した場合、及びSn10のステップにおいてセンサチェックタイマ1を初期化した後は、センサチェックタイマ1に1を加算して更新する(Sn11)。
センサチェックタイマ1は、払出センサ34c、34dの検出範囲をメダルが通過し始めたときから通過し終えたときまでの時間と、払出センサ34c、34dの検出範囲をメダルが通過し終えたときから次のメダルが通過し始めたときまでの時間とを計時するためのタイマである。センサ監視処理におけるSn11のステップにより更新されることにより、センサチェックタイマ1は、払出中フラグが設定されている期間すなわちホッパーユニット34によりメダルの払出制御が行われている期間中において、払出センサに関する処理を行うタイミング(タイマ割込み処理(メイン)4回毎に1回のタイミングであり、2.24ミリ秒)毎に更新されるようになっている。
Sn7のステップにおいて払出センサ34c、34dの一方がON状態であり、かつSn9のステップにおいてエッジデータが設定されていないと判定した場合、すなわちメダル払出制御がホッパーユニット34から払出された1枚のメダルが払出センサ34c、34dの検出範囲を通過中である場合、または払出制御中において1枚のメダルが払出された後、次のメダルが払出されるまでの間の期間である場合は、センサチェックタイマ1を一単位時間(本実施例では、2.24ミリ秒)分加算して更新する(Sn11)。
そして、Sn11のステップにおいてセンサチェックタイマ1を更新した後、当該センサチェックタイマ1の値が予め定められた監視時間の最大値(本実施例では、11.20ミリ秒)を超えたか否かを判定する(Sn12)。
ここで、センサチェックタイマ1の監視時間の最大値は、少なくともホッパーユニット34により払出されてメダルが払出センサ34c、34dの検出範囲を通過し始めてから通過し終えるまでに要する時間の最大値、及び、ホッパーユニット34により払い出されたメダルが払出センサ34c、34dの検出範囲を通過し終えた後、次のメダルがホッパーユニット34により払い出されて、払出センサ34c、34dの検出範囲を通過し始めるまでに要する時間のうち長い方の時間以上の時間に設定されている。これにより、メダルを払い出す払出制御が行われている期間において、センサチェックタイマ1に基づいて、少なくとも、払出センサ34c、34dの検出状態がON状態で継続し得る時間、及び払出センサ34c、34dの検出状態がOFF状態で継続し得る時間よりも長い期間が経過したか否かが判定されるようになっている。
Sn12のステップにおいてセンサチェックタイマ1の値が監視時間の最大値を超えたと判定した場合は、払出センサ34c、34dの検出状態に基づいて異常が検出された旨を示すセンサエラー参照データ(払出センサ)をRAM14cの非遊技RAM領域の所定領域に設定した後(Sn13)、センサチェックタイマ1を初期化して0に設定し(Sn14)、新たなメダルの通過時間の計時を開始させて、Sn14のステップにおいて設定したセンサチェックタイマ1の値(0)をRAM41cの所定領域に格納して(Sn15)、Sn17のステップに進む。一方、j12のステップにおいてセンサチェックタイマ1の値が監視時間の最大値を超えていないと判定した場合には、当該センサチェックタイマ1の値をRAM41cの所定領域に格納して(Sn15)、Sn17のステップに進む。
また、Sn6のステップにおいて払出中フラグが設定されていると判定した場合であり、Sn7のステップにおいて払出センサ34c、34dの一方がON状態でないと判定した場合は、Sn8~Sn13のステップの処理を行うことなく、Sn14のステップに進むことで、センサエラー参照データをSn2のステップにおいてクリアした状態で維持して、Sn14のステップへ進み、センサチェックタイマ1を初期化して0に設定した後、当該Sn14のステップにおいて設定したセンサチェックタイマ1の値(0)をRAM41cの所定領域に格納して(Sn15)、Sn17のステップに進む。
また、Sn6のステップにおいて払出中フラグが設定されていないと判定した場合は、Sn5のステップにおいて参照した払出センサ34c、34dの確定データに基づいて、払出センサ34c、34dの双方がOFF状態であるか否かを判定し(Sn16)、払出センサ34c、34dの双方がOFF状態である場合は、Sn7のステップに進む。そして、Sn7のステップにおいて払出センサ34c、34dの一方がON状態でないと判定されることで、センサエラー参照データ(払出センサ)を設定せずに、Sn17のステップに進むこととなる。
一方で、Sn6のステップにおいて払出中フラグが設定されていないと判定した場合であって、Sn16のステップにおいて払出センサ34c、34dの双方がOFF状態でないと判定した場合は、Sn13のステップに進み、センサエラー参照データ(払出センサ)をRAM14cの非遊技RAM領域の所定領域に設定した後、センサチェックタイマ1を初期化し(Sn14)、当該センサチェックタイマ1の値をRAM41cの所定領域に記憶させて(Sn15)、Sn17のステップに進む。
以上のSn1~16のステップの処理が行われることで、払出センサ34c、34dの検出状態に基づいてメダルの払い出しに関する異常が生じているか否かを判定する払出センサに関する処理が行われることとなり、当該処理が行われた後は、Sn17のステップ以降の処理を行うことで、投入センサに関する処理を払出センサに関する処理に続けて行うようになっている。
図25に示すように、センサ監視処理における投入センサに関する処理では、まず、メダル投入部4からのメダルの投入を許可する旨を示すメダル手入れ許可フラグがRAM41cの所定領域に設定されているか否かを判定し(Sn17)、メダル手入れ許可フラグが設定されていない場合は、センサ監視処理を終了させて、呼び出し元の非遊技関連処理に戻る。
Sn17のステップにおいてメダル手入れ許可フラグが設定されていると判定した場合は、RAM41cの遊技RAM領域の所定領域を参照し(Sn18)、投入メダルセンサ31a~31cや払出センサ34cに関する異常(以下、メダルセンサエラーと呼ぶ場合がある)が検出されているか否かを特定可能なセンサエラーフラグが設定されているか否かに基づいて、メダルセンサエラー中であるか否かを判定する(Sn19)。そして、メダルセンサエラー中である場合は、センサ監視処理を終了させて、呼び出し元の非遊技関連処理に戻る。
Sn19のステップにおいてメダルセンサエラー中でないと判定した場合は、遊技RAM領域におけるポート入力バッファに設定されている投入メダルセンサ31a~31c(図26中では、投入メダルセンサ1、2、3)の現在データを参照し(Sn20)、投入メダルセンサ31a~31cがON状態であるか否かを判定する(Sn21)。
Sn21のステップにおいて投入メダルセンサ31a~31cがON状態であると判定した場合は、投入メダルセンサ31a~31cのON状態をRAM41cの非遊技RAM領域の所定領域に退避させ(Sn22)、RAM41cの非遊技RAM領域の所定領域に設定されているセンサチェックタイマ2を参照して、当該センサチェックタイマ2が0であるか否かを判定する(Sn23)。
センサチェックタイマ2は、投入メダルセンサ31a~31cの検出範囲をメダルが通過し始めたときから通過し終えたときまでの時間を計時するためのタイマである。センサ監視処理におけるSn27のステップにより更新されることにより、センサチェックタイマ1は、投入メダルセンサ31aがON状態である期間において、センサ監視処理が行われるタイミング(タイマ割込み処理(メイン)毎であり、0.56ミリ秒)毎に更新されるようになっている。
Sn23のステップにおいてセンサチェックタイマ2が0あると判定した場合は、Sn20のステップにおいて参照した投入メダルセンサ31b、31c(図26中では、投入メダルセンサ2、3)がON状態であるか否かを判定し(Sn24)、投入メダルセンサ31b、31cがON状態でない場合は、RAM41cの所定領域にメダル投入信号処理により設定されるメダル投入信号無視タイマに基づいて、メダル投入信号を参照しないメダル投入信号無視時間内(本実施例では、流路切替ソレノイド30によるメダルの流路の切替制御を開始してから504ミリ秒内)であるか否かを判定し(Sn25)、当該メダル投入信号無視時間内でない場合は、センサチェックタイマ2に一単位時間(本実施例では、0.56ミリ秒)分加算して更新し(Sn26)、加算後のセンサチェックタイマ2の値が、投入メダルセンサ31aの検出範囲をメダルが正常に通過するために要する正常通過時間範囲の最大値(本実施例では、99.68m)を超えたか否かを判定する(Sn27)。尚、正常通過時間範囲は、メダルが投入メダルセンサ31a~31cの検出範囲を通過するために要する時間の実測値や、メダルセレクタ29のメダル受入流路29bの形状、メダル受入流路29bにおける投入メダルセンサ31a~31cの配置、投入メダルセンサ31a~31cの特性等に基づいて予め定められている(本実施例では、10.08ミリ秒~99.68ミリ秒の範囲である)。
そして、Sn27のステップにおいてセンサチェックタイマ2の値が正常通過時間範囲の最大値を超えたと判定した場合、Sn24のステップにおいて投入メダルセンサ31b、31cがON状態であると判定した場合は、投入メダルセンサ31a~31cの検出状態に基づいて異常が検出された旨を示すセンサエラー参照データ(投入メダルセンサ)をRAM14cの非遊技RAM領域の所定領域に設定した後(Sn28)、センサチェックタイマ2を初期化して0に設定して(Sn29)、新たなメダルの通過時間の計時を開始させる。そして、センサ監視処理を終了させて呼び出し元の非遊技関連処理に戻る。
また、Sn21のステップにおいて投入メダルセンサ31a~31cがON状態でないと判定した場合、Sn26のステップにおいてメダル投入信号無視タイマに基づいてメダル投入信号無視時間内でないと判定した場合、Sn27のステップにおいてセンサチェックタイマ2の値が正常通過時間範囲の最大値を超えていないと判定した場合は、当該センサチェックタイマ2の値をRAM41cの所定領域に格納して(Sn30)、センサ監視処理を終了させて呼び出し元の非遊技関連処理に戻る。
このように、センサ監視処理では、Sn1~Sn16のステップの処理が行われることで、払出センサに関する処理が行われて、払出センサ34c、34dの検出状態に基づいてメダルの払い出しに関する異常が生じているか否かが判定されることとなり、Sn17~Sn30のステップの処理が行われることで、投入メダルセンサ31a~31cの検出状態に基づいてメダルの投入に関する異常が生じているか否かが判定されるようになっている。
また、センサ監視処理では、払出センサに関する処理を行うことで、メダルの払い出しに関する異常が生じているか否かを判定した後、判定の結果にかかわらず、投入センサに関する処理を続けて行って、メダルの投入に関する異常が生じているか否かの判定を行うようになっている。
[試験信号出力処理について]
メイン制御部41が行う試験信号出力処理について、図26に基づいて説明する。メイン制御部41は、上述のセンサ監視処理を行った後、続けて試験信号処理を行う。
図26に示すように、試験信号出力処理では、まず、メイン処理によりRAM41cの遊技RAM領域の所定領域に設定される一遊技時間管理用タイマを参照し(Sp1)、一遊技時間管理用タイマの値が所定値(本実施例では、一遊技時間管理用タイマによる計時を開始させるときの値であり、4.1秒に対応する値)であるか否かを判定する(Sp2)。尚、当該試験号出力処理を呼び出した非遊技関連処理の更に呼び出し元であるタイマ割込み処理(メイン)が行われる前に、メイン処理のSb20のステップが行われていた場合に、一遊技時間管理用タイマの値が所定値に設定されている。
Sp2のステップにおいて一遊技時間管理用タイマが初期値であると判定した場合に、タイマ割込み処理(メイン)によりRAM41cの遊技RAM領域の所定領域に設定される分岐用カウンタを参照し(Sp3)、当該分岐用カウンタが所定値(本実施例では、3)である場合には、RAM41cの所定領域に設定されている試験信号出力タイマに予め定められた所定値(試験装置に対して出力する出力データ数に応じた値であり、本実施例では、一の出力データを特定可能な試験信号の出力を継続させる時間((22.4ミリ秒)×出力データ数(4))を設定して計時を開始させる(Sp4)。一方、Sp2のステップにおいて一遊技時間管理用タイマが初期値でないと判定した場合、Sp3のステップにおいて分岐用タイマが3でないと判定した場合、Sp4のステップにおいて試験信号出力タイマを設定した後は、試験信号として出力する出力データが記憶されているRAM41cの所定領域を特定するための出力データアドレスの初期アドレスを取得する(Sp5)。尚、出力データは、内部抽選における特別役の当選状況、一般役の当選状況を特定可能なデータである。また、当該出力データは、上述のメイン処理のSb9のステップにおいて行われる当選情報出力処理により、RAM41cの所定領域に設定されている。
その後、試験信号出力タイマの値を参照して(Sp6)、試験信号出力タイマによる所定時間の計時が終了しているか否かを判定する(Sp7)。そして、試験信号出力タイマが0でなく試験信号出力タイマによる所定時間の計時が終了していない場合は、出力データ固定モードが設定されているか否かを判定する(Sp8)。出力データ固定モードは、上述のメイン処理のSb2のステップにおいて行われるRT情報出力処理により設定される出力データを試験信号として出力する場合に設定される。
そして、出力データ固定モードが設定されていない場合は、試験信号出力タイマを1単位時間(本実施例では、0.56ミリ秒)分減算して更新させた後(Sp9)、Sp6のステップにおいて参照した試験信号出力タイマの値を所定値(本実施例では、一の出力データを特定可能な試験信号の出力を継続させる時間(22.4ミリ秒)に相当する値)で除算したときの余り値が0であるか否かを判定する(Sp10)。そして、余り値が0である場合は、Sp5のステップに戻り、Sp9のステップにおいて更新した試験信号出力タイマの値に基づいてSp5~Sp10のステップの処理を行う。一方、余り値が0でない場合は、Sp6のステップにおいて参照した試験信号出力タイマの値を所定値(本実施例では、一の出力データを特定可能な試験信号の出力を継続させる時間(22.4ミリ秒)に対応する値)で除算したときの商を算出し、Sp5のステップにおいて取得した初期アドレスの出力データアドレスに商の値を加算して(Sp11)、Sp12のステップに進む。そして、出力データアドレスを更に1アドレス分進めて、当該出力データアドレスに基づいて特定されるRAM41cの所定領域に記憶されている出力データを取得する(Sp13)。
また、Sp8のステップにおいて出力データ固定モードが設定されていると判定した場合は、Sp12のステップに進み、Sp6のステップにおいて設定した初期アドレスの出力データアドレスを1アドレス分進めて(Sp12)、当該出力データアドレスに基づいて特定されるRAM41cの所定領域に記憶されている出力データを取得する(Sp13)。
その後、Sp13のステップにおいて取得した出力データを試験信号出力として設定し(Sp14)、試験信号出力を出力ポート6に設定して出力させる(Sp15)。また、Sp7のステップにおいて、Sp6のステップにおいて参照した試験信号出力タイマの値が0であると判定した場合は、試験信号出力をOFF状態に設定し(Sp16)、試験信号出力を出力ポート6に設定して出力させる(Sp15)。Sp15のステップにおいて試験信号の出力を設定した後は、試験信号出力処理を終了させて呼び出し元の非遊技関連処理に戻る。
このような制御により、メイン制御部41は、一遊技時間管理用タイマが初期値に設定されて始動されたとき、すなわち遊技としてリール2L、2C、2Rの回転制御が開始されたときかた、所定期間(本実施例では、89.6ミリ秒(22.4ミリ秒×4))にわたり試験信号を出力ポート6から出力させるようになっている。
また、メイン制御部41は、試験信号として、内部抽選における一般役及び特別役の当選状況を特定可能な4つの出力データを、所定時間(本実施例では、22.4ミリ秒)毎に順次切り替えられて出力ポート6より出力させるようになっている。
次に、メイン制御部41が行うメダル通過時間タイマ更新処理について、図27に基づいて説明する。メイン制御部41は、上述の試験信号出力処理を行った後、続けてメダル通過時間タイマ更新処理を行う。
図27に示すように、メダル通過時間タイマ更新処理では、まず、非遊技プログラムに含まれるメダルセンサ処理により、RAM41cの非遊技RAM領域の所定領域に設定されているメダル通過時間タイマを参照し、当該メダル通過時間タイマの値が0であるか否かを判定する(Sq1)。
メダル通過時間タイマの値が0である場合、すなわちメダルセンサ処理により投入メダルセンサ31a~31cの検出範囲をメダルが通過する時間を計時していない場合は、メダル通過時間タイマ更新処理を終了して、呼び出し元の非遊技関連処理に戻る。
一方、メダル通過時間タイマの値が0でない場合、すなわちメダルセンサ処理により投入メダルセンサ31a~31cの検出範囲をメダルが通過する時間を計時している場合は、メダル通過時間タイマに所定値を加算することで更新した後(Sq2)、メダル通過時間タイマ更新処理を終了して、呼び出し元の非遊技関連処理に戻る。
[表示モニタ出力データ選択処理について]
メイン制御部41が行う表示モニタ出力データ選択処理について、図28及び図29に基づいて説明する。メイン制御部41は、上述のメダル通過時間タイマ更新処理を行った後、続けて表示モニタ出力データ選択処理を行う。
表示モニタ出力データ選択処理は、メイン制御部41により0.56ミリ秒毎に行われるタイマ割込処理(メイン)においてポート入力処理の後に開始され、タイマ割込処理(メイン)のLEDダイナミック表示処理で用いられるLEDの点灯データを設定する処理である。また、表示モニタ出力データ選択処理は、表示モニタ出力データ選択処理(1)(図28参照)及び表示モニタ出力データ選択処理(2)(図29参照)により構成され(以下、表示モニタ出力データ選択処理(1)及び(2)をまとめて表示モニタ出力データ選択処理と呼ぶ場合がある)、表示モニタ出力データ選択処理(1)において表示モニタ出力データ選択処理(2)が呼び出されて実行されるようになっている。
図28に示すように、表示モニタ出力データ選択処理(1)が開始されると、遊技RAM領域に格納されているクレジット表示器11と遊技補助表示器12、及び1BETLED14などの点灯用データを非遊技RAM領域の点灯用データ格納領域にコピーする(Sr1~Sr4)。
続いて、メダルが投入可能な状態であるかが、遊技メダルブロッカーの状態によって判定される。ゲーム中やエラー中、設定変更や設定確認が行われている状態では遊技メダルブロッカーがオフとなっており、メダルを投入することができない。メダルが投入可能な状態でなければ、後述するSr8のステップでのリセット/設定スイッチ38の操作の判定が行われることなくSr13のステップに進み、表示モニタフラグにオフデータが設定される。メダルが投入可能な状態であればSr6のステップに進む。
Sr6のステップでは、前面扉1bの開放状態を検出するドア開放検出スイッチ25の状態を参照して前面扉1bが開放状態であるかが判定される。前面扉1bが開放状態でない場合、後述するSr8のステップでのリセット/設定スイッチ38の操作の判定が行われることなくSr13のステップに進み、表示モニタフラグにオフデータが設定される。前面扉1bが開放状態である場合、Sr7のステップに進む。
Sr7のステップでは、遊技RAM領域に格納されている投入済みメダル数の値を参照して賭数が設定されているかが判定される。賭数が設定されている場合、後述するSr8のステップでのリセット/設定スイッチ38の操作の判定が行われることなくSr13のステップに進み、表示モニタフラグにオフデータが設定される。賭数が設定されていない場合、Sr8のステップに進む。
Sr8のステップでは、リセット/設定スイッチ38が操作されているかが判定される。リセット/設定スイッチ38が操作されていない場合、Sr15のステップに進み、後述する表示モニタフラグの内容の判定が行われる。リセット/設定スイッチ38が操作されている場合、Sr9のステップに進んで、クレジット表示器11と遊技補助表示器12に比率表示を行うための設定が行われる。
クレジット表示器11と遊技補助表示器12に比率表示を行うための設定として、表示モニタ選択用タイマと表示モニタ表示内容ベクタの初期化を行う(Sr9~Sr11)。続いて、表示モニタフラグにオンデータを設定し(Sr12、Sr14)、表示モニタフラグの内容の判定を行うためSr15のステップに進む。なお、表示モニタ選択用タイマは一の比率表示を表示する所定期間(例えば5秒)を計測するためのタイマであり、当該所定期間の計時を開始する際に、当該所定期間に相当する値(本実施例では、8927)が初期値として設定された後、タイマ割込み処理(メイン)が行われる毎に一単位時間(本実施例では、0.56ミリ秒)分減算され、当該表示モニタ選択用タイマの値が0となることで所定期間の経過が計時されるようになっている。また、表示モニタ表示内容ベクタは所定順序で切り替えて表示される比率表示の種類を特定するためのデータである。
具体的に、表示モニタ表示内容ベクタに設定されるデータとして、「0」に総累計ゲーム数に対する有利区間割合が対応し、「1」に過去6000ゲーム間の連役払出比率が対応し、「2」に過去6000ゲーム間の役物払出比率が対応し、「3」に総累計払出数に対する連役払出比率が対応し、「4」に総累計払出数に対する役物払出比率が対応している。但し、本実施例では、比率表示をクレジット表示器11及び遊技補助表示器12に表示させる際には、総累計ゲーム数に対する有利区間割合、過去6000ゲーム間の連役払出比率、総累計払出数に対する連役払出比率の算出及び表示は行われない。
Sr15、Sr16のステップでは表示モニタフラグの値が取得されて、オンデータが設定されているかオフデータが設定されているかの判定が行われる。表示モニタフラグは比率表示が行われる場合にオンデータが設定され、比率表示が行われない場合にオフデータが設定されている。
Sr16のステップにおいて表示モニタフラグにオフデータが設定されていると判定された場合、以降のステップが実行されることなく、タイマ割込処理(メイン)に復帰する。なお、タイマ割込処理(メイン)におけるSd15のLEDダイナミック表示処理では、非遊技RAM領域の点灯用データ格納領域に格納されている点灯用データを参照して、クレジット表示器11と遊技補助表示器12、及び1BETLED14などを点灯させる。Sr16以降のステップが実行されることなく、タイマ割込処理(メイン)に復帰した場合、非遊技RAM領域の点灯用データ格納領域にはSr1~Sr4のステップでコピーされた遊技RAMに格納されていた点灯データ、つまり比率表示が行われないときに表示されるその他の表示(クレジット表示器11によるクレジット数の表示、遊技補助表示器12による払出枚数の表示等)を行う点灯データが格納されている。従って、その他の表示がクレジット表示器11と遊技補助表示器12、及び1BETLED14などで行われる。
図29を参照して、Sr16のステップにおいて表示モニタフラグにオンデータが設定されていると判定された場合に実行される表示モニタ出力データ選択処理(2)を説明する。
表示モニタ出力データ選択処理(2)では、まず、表示モニタ選択用タイマを更新して、比較値に達しているかが判定される(Ss1~Ss4)。表示モニタ選択用タイマが比較値に達していない場合、Ss7のステップに進む。表示モニタ選択用タイマが比較値に達している場合、表示モニタ選択用タイマが0クリアされるとともに、比率表示の種類を切り替えるために表示モニタ表示内容ベクタが更新され(Ss5、Ss6)、Ss7のステップに進む。
Ss7からのステップでは、表示モニタ表示内容ベクタの値より7SEG表示モニタ出力用テーブルに格納されたデータを読み出して、クレジット表示器11に現在表示中の表示内容を示す略記(例えば、表示順1の過去6000ゲーム間の有利区間比率が表示されている場合には、「1A」)を表示するためのデータが取得される(Ss7~Ss10)。
続いて、表示モニタ消化遊技判定フラグを参照して、総累計ゲーム数が5999ゲームを超えているかを判定する(Ss11、Ss12)。
総累計ゲーム数が5999ゲームを超えていない場合、現在表示中の表示内容を示す略記を点滅させるために表示モニタ選択用タイマが取得され、該タイマ値を0.3秒にあたる値で除算して点灯期間か消灯期間かが判定される(Ss13~Ss15)。消灯期間と判定された場合(演算結果が奇数の場合)、現在表示中の表示内容を示す略記を表示するためのデータとしてクリアデータが取得され、クレジット表示器11に対応する点灯用データ格納領域に格納され(Ss16、Ss17)、クレジット表示器11が消灯される。また、点灯期間と判定された場合(演算結果が偶数の場合)、先に取得された現在表示中の表示内容を示す略記を表示するためのデータがクレジット表示器11に対応する点灯用データ格納領域に格納され(Ss17)、クレジット表示器11に現在表示中の表示内容を示す略記が表示される。これにより、総累計ゲーム数が5999ゲームを超えていない場合、クレジット表示器11に現在表示中の表示内容を示す略記が0.3秒間隔で点灯消灯を繰り返す。
総累計ゲーム数が5999ゲームを超えている場合、一律に先に取得された現在表示中の表示内容を示す略記を表示するためのデータがクレジット表示器11に対応する点灯用データ格納領域に格納され(Ss17)、クレジット表示器11に現在表示中の表示内容を示す略記が表示される。これにより、総累計ゲーム数が5999ゲームを超えている場合、クレジット表示器11に現在表示中の表示内容を示す略記が点滅することなく表示される。
次に、前述の略記に対応する現在表示すべき比率を表示するためのデータとして一旦、「--」を表示するためのデータが取得される(Ss18)。そして、表示モニタ表示内容ベクタを参照していずれの比率を表示するかが判定される(Ss20、Ss21)。
ここで、表示モニタ表示内容ベクタに累計ゲーム数に対する有利区間割合に対応する値、過去6000ゲーム間の連役払出比率に対応する値、総累計払出数に対する連役払出比率に対応する値が格納されている場合、これらの割合や比率の元となるデータは集計されていない。このため、Ss38のステップに進み、「--」を表示するためのデータが遊技補助表示器12への表示内容として点灯用データ格納領域に格納され、タイマ割込処理(メイン)に復帰する。前述したとおり、タイマ割込処理(メイン)におけるSd15のLEDダイナミック表示処理では、非遊技RAM領域の点灯用データ格納領域に格納されている点灯用データを参照して、クレジット表示器11と遊技補助表示器12、及び1BETLED14などを点灯させる。従って、クレジット表示器11と遊技補助表示器12には総累計ゲーム数に対する有利区間割合、過去6000ゲーム間の連役払出比率、総累計払出数に対する連役払出比率のいずれかを示す略記と「--」が表示されることになる。
続いて、役物比率の規定割合(しきい値)となる70%が設定される(Ss22)。比率表示は表示値が規定割合を超える場合には通常と異なる表示態様で行われる。なお、表示値が規定割合を超える場合、表示値を点滅表示する。
そして、過去6000ゲーム間の役物払出比率が格納された領域のアドレスが初期値としてセットされるとともに、該初期値に対して表示モニタ表示内容ベクタの値を用いて演算を行い、過去6000ゲーム間の役物払出比率と総累計払出数に対する役物払出比率とから表示モニタ表示内容ベクタの値に対応した役物払出比率が取得される(Ss23~Ss25)。
そして、取得した役物払出比率と設定された規定割合とを比較し、取得した役物払出比率がしきい値以上の値である場合、点滅表示を行うための設定がなされる(Ss26~Ss29)。
さらに、取得した役物払出比率にもとづいて遊技補助表示器12の10の位、1の位の各々に表示するデータを特定する(Ss30~Ss32)。さらに、点滅表示を行うための設定がなされているかを判定する(Ss33)。点滅表示を行うための設定がなされていない場合、特定されたデータが遊技補助表示器12への表示内容として点灯用データ格納領域に格納され、タイマ割込処理(メイン)に復帰する。前述したとおり、タイマ割込処理(メイン)におけるSd15のLEDダイナミック表示処理では、非遊技RAM領域の点灯用データ格納領域に格納されている点灯用データを参照して、クレジット表示器11と遊技補助表示器12、及び1BETLED14などを点灯させる。従って、クレジット表示器11と遊技補助表示器12には、過去6000ゲーム間の役物払出比率を示す略記と過去6000ゲーム間の役物払出比率、または総累計払出数に対する役物払出比率を示す略記と総累計払出数に対する役物払出比率が表示されることになる。
点滅表示を行うための設定がなされている場合は、総累計ゲーム数が5999ゲームを超えていない場合と同様に、役物払出比率を点滅させるために表示モニタ選択用タイマが取得され、該タイマ値を0.3秒にあたる値で除算して点灯期間か消灯期間かが判定される(Ss34~Ss36)。点灯期間である場合、遊技補助表示器12への表示内容として役物比率を表示するためのデータが点灯用データ格納領域に格納され、タイマ割込処理(メイン)に復帰する。消灯期間である場合、役物比率を表示するためのデータとしてクリアデータが取得される。そして、遊技補助表示器12への表示内容としてクリアデータが点灯用データ格納領域に格納され(Ss37、Ss38)、タイマ割込処理(メイン)に復帰する。
これにより、役物払出比率がしきい値以上の値である場合、クレジット表示器11と遊技補助表示器12には、過去6000ゲーム間の役物払出比率を示す略記と過去6000ゲーム間の役物払出比率、または総累計払出数に対する役物払出比率を示す略記と総累計払出数に対する役物払出比率が表示されるとともに、遊技補助表示器12に表示される役物払出比率を示す数値が0.3秒間隔で点灯消灯を繰り返すこととなる。
具体的には、図30に示すように、クレジット表示器11に表示させる比率表示の種類を示す略記を、0.3秒間隔で繰り返し点灯消灯させる点滅制御(オン‐オフ制御)を行う際には、一の比率表示を表示する期間(例えば5秒)を計測するための表示モニタ選択用タイマの値(本実施例では、8927~0)を、0.3秒にあたる値(本実施例では、536)で除算して得られる商が偶数である場合、すなわち2進数表記で最下位ビットの値が0である場合は、クレジット表示器11の出力データとしてクリアデータを設定することで、クレジット表示器11を消灯状態に制御する。一方、表示モニタ選択用タイマの値を、0.3秒にあたる値で除算して得られる商が奇数である場合、すなわち2進数表記で最下位ビットの値が1である場合は、クレジット表示器11の出力データとして役物比率の略記を表示するためのデータを設定することで、クレジット表示器11を点灯状態に制御する。
また、遊技補助表示器12に役物払出比率を示す数値を、0.3秒間隔で繰り返し点灯消灯させる点滅制御を行う際には、略記を点滅制御する場合と同様に、表示モニタ選択用タイマの値(本実施例では、8927~0)を、0.3秒にあたる値(本実施例では、536)で除算して、得られる商が偶数である場合は、遊技補助表示器12の出力データとしてクリアデータを設定することで、クレジット表示器11を消灯状態に制御する。一方、表示モニタ選択用タイマの値を、0.3秒にあたる値で除算して得られる商が奇数である場合は、遊技補助表示器12の出力データとして役物比率の略記を表示するためのデータを設定することで、クレジット表示器11を点灯状態に制御する。
このように、本実施例のメイン制御部41は、表示モニタ選択用タイマの値に対して特定値(0.3秒に対応する536)を用いた演算の結果(例えば、表示モニタ選択用タイマの値を特定値で除算した商)に基づいてクレジット表示器11及び遊技補助表示器12の出力データを設定する制御を、表示モニタ用データ選択処理を行う毎、すなわちタイマ割込み処理(メイン)を行う毎に繰り返し行うことで、クレジット表示器11及び遊技補助表示器12での表示を点滅制御するようになっている。
また、メイン制御部41は、表示モニタ選択用タイマの値に対して特定値を用いた演算の結果に基づいてクレジット表示器11及び遊技補助表示器12の出力データを設定する制御を、表示モニタ用データ選択処理を行う毎に繰り返し行うことで、クレジット表示器11及び遊技補助表示器12の表示を点滅制御するようになっており、当該点滅制御において、表示モニタ選択用タイマの初期値に対して特定値を用いた演算の結果に基づいて行う制御すなわち点滅制御の最初の制御をオフ制御とするようになっている。
また、当該点滅制御において、表示モニタ選択用タイマの最終値(0)に対して特定値を用いた演算の結果に基づいて行う制御すなわち点滅制御の最後の制御をオフ制御とするようになっている。
以上のように、本実施例のメイン制御部41は、役比モニタ用データ処理により総累計ゲーム数が達している範囲を特定可能な点灯識別セグが表示モニタ消化遊技判定フラグに格納する。そして、過去6000ゲーム間の役物払出比率や総累計ゲーム数に対する役物払出比率の略記をクレジット表示器11に表示させるとともに、略記に対応する役物払出比率を示す数値を遊技補助表示器12に表示させる場合に、表示モニタ消化遊技判定フラグに格納された点灯識別セグに基づいて、総累計ゲーム数が0~5999ゲームの範囲であるときには、クレジット表示器11での役物払出比率の略記の表示を点灯消灯に繰り返し制御する点滅制御を行い、総累計ゲーム数が6000ゲーム以上の範囲であるときには、クレジット表示器11での役物払出比率の略記の表示を点滅させることなく点灯させるように制御する。クレジット表示器11での略記の表示を点滅制御することにより、集計が6000ゲームに到達していないことが認識できるようになっており、表示されている割合、比率に偏りが生じている可能性が認識できるようになっている。ここで、メイン制御部41が役物払出比率の略記の表示を点滅制御する累計ゲーム数の範囲(本実施例では、0~5999ゲーム)は、スロットマシン1の設計値に応じて定められるものであり、少なくともスロットマシン1において役物払出比率が概ね設計値に収束するために必要なゲーム数までの範囲である。
尚、本実施例では、メイン制御部41は、比率表示として、過去6000ゲーム間の役物払出比率及び総累計払出数に対する役物払出比率の算出を行い、クレジット表示器11及び遊技補助表示器12に表示させることが可能である一方で、比率表示として、総累計ゲーム数に対する有利区間割合、過去6000ゲーム間の連役払出比率、総累計払出数に対する連役払出比率を算出せず、クレジット表示器11及び遊技補助表示器12に表示させない構成であるが、比率表示として、総累計ゲーム数に対する有利区間割合、過去6000ゲーム間の連役払出比率、総累計払出数に対する連役払出比率等の比率表示を算出して表示させる構成としても良い。例えば、比率表示として総累計ゲーム数に対する有利区間割合を表示させる構成では、有利区間割合が概ねスロットマシンの設計値に収束する規定ゲーム数(例えば、175000ゲーム)に累計ゲーム数が達するまでは、クレジット表示器11及び遊技補助表示器12における当該有利区間割合の表示を点滅制御し、規定ゲーム数に累計ゲーム数が達した以降は、当該有利区間割合の表示を点滅させずに点灯させるように制御することが好ましい。また、例えば、比率表示として総累計払出数に対する連役払出比率や過去6000ゲーム間の連役払出比率を表示させる構成では、連役払出比率が概ねスロットマシンの設計値に収束する規定ゲーム数(例えば、17500ゲーム)に累計ゲーム数が達するまでは、クレジット表示器11及び遊技補助表示器12における当該連役払出比率の表示を点滅制御し、規定ゲーム数に累計ゲーム数が達した以降は、当該連役払出比率の表示を点滅させずに点灯させるように制御することが好ましい。
[作用効果について]
従来の遊技機として、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、がそれぞれ別個にROMに割り当てられた構成のものがある。このような構成では、遊技プログラムにおいて、非遊技プログラムに含まれる処理を実行する度に、遊技プログラムから非遊技プログラムを呼び出すようにすると、何度も遊技プログラムと非遊技プログラムとを行き来することとなり、処理が複雑化するという問題が生じる。
これに対して、本実施例の遊技機であるスロットマシン1は、プログラムが記憶される記憶領域を有するROM41bと、当該ROM41bに記憶されたプログラムに基づいて制御を行うメイン制御部41と、を備え、ROM41bの記憶領域は、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技プログラムによって呼び出されるプログラムであり、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、を含み、遊技プログラムであるタイマ割込み処理から非遊技プログラムである非遊技関連処理の1回の呼出により該非遊技プログラムにおいて複数種類の異常判定(メダルの払い出しに関する異常の判定及びメダルの投入に関する異常の判定)を行う構成である。このような構成では、遊技の進行に係る遊技プログラムが記憶されるROM41bの遊技プログラム領域と、遊技プログラムによって呼び出されるプログラムであり、遊技の進行に係わらない非遊技プログラムが記憶されるROM41bの非遊技プログラム領域と、が別個に割り当てられた構成において、遊技プログラムからの1回の非遊技プログラムの呼出により該非遊技プログラムにおいて複数種類の異常判定が行われるため、遊技プログラムと非遊技プログラムとの行き来を極力減らすことができる。
尚、本実施例では、遊技プログラムに含まれるタイマ割込み処理から呼び出される非遊技プログラムに含まれる非遊技関連処理において、メダルの払い出しに関する異常の判定及びメダルの投入に関する異常の判定の2種類の異常の判定を行う構成であるが、遊技プログラムから1回の呼出により呼び出される非遊技プログラムにおいて、3種類以上の複数種類の異常の判定を行う構成でも良い。
また、本実施例では、遊技プログラムから非遊技プログラムを呼び出す構成であり、非遊技プログラムに含まれるタイマ割込み処理から、非遊技プログラムに含まれ、複数種類の異常の判定を行う非遊技関連処理を呼び出す構成であるが、複数種類の異常の判定を行う非遊技プログラムを呼び出す遊技プログラムとして、タイマ割込み処理以外の遊技プログラムに含まれる処理を適用しても良い。
また、本実施例では、遊技プログラムに含まれるタイマ割込み処理から呼び出される非遊技プログラムに含まれる非遊技関連処理において、一のサブルーチンであるセンサ監視処理を行うことで、メダルの払い出しに関する異常の判定及びメダルの投入に関する異常の判定を行う構成すなわち一のサブルーチンにより複数種類の異常の判定を行う構成であるが、遊技プログラムにより呼び出される非遊技プログラムが複数のサブルーチンにより構成され、サブルーチン毎に一種類の異常の判定を行う構成、例えば、非遊技関連処理において、メダルの払い出しに関する異常の判定を行う第1サブルーチンと、メダルの投入に関する異常の判定を行う第2サブルーチンが行われることで、複数種類の異常の判定を行う構成でも良い。このような構成では、複数種類の異常判定を行う処理を異常判定の種類毎にそれぞれサブルーチンとして設定することで、プログラムの管理が容易となる。
本実施例のスロットマシン1は、遊技プログラムが記憶される遊技プログラム領域及び非遊技プログラムが記憶される非遊技プログラム領域を有するROM41bと、当該ROM41bに記憶されたプログラムに基づいて制御を行うメイン制御部41と、を備える構成であり、遊技プログラムであるタイマ割込み処理から非遊技プログラムである非遊技関連処理を呼び出すときに、遊技プログラムにて用いていたレジスタ及びスタックポインタSPを退避させるとともに、非遊技プログラムから遊技プログラムに復帰するときに、退避したレジスタ及びスタックポインタSPを復帰させる構成である。このような構成では、遊技プログラムから非遊技プログラムを呼び出すに際して、遊技プログラムにて用いていたレジスタ及びスタックポインタSPのデータが破損してしまうことを防止できる。
本実施例のスロットマシン1は、遊技プログラムが記憶される遊技プログラム領域及び非遊技プログラムが記憶される非遊技プログラム領域を有するROM41bと、当該ROM41bに記憶されたプログラムに基づいて制御を行うメイン制御部41と、データを一時的に記憶可能な記憶領域を有するRAM41cと、を備え、RAM41cは、遊技プログラムが用いる遊技データが読み出し及び書き込み可能に記憶される遊技RAM領域と、非遊技プログラムが用いる非遊技データが読み出し可能に記憶される非遊技RAM領域と、を含み、遊技プログラムに含まれるタイマ割込み処理から、非遊技プログラムに含まれる非遊技関連処理を1回呼出すことにより、該非遊技関連処理において複数種類の異常判定として、メダルの払い出しに関する異常の判定及びメダルの投入に関する異常の判定を行って、当該異常判定の結果を特定可能なセンサエラー参照データを非遊技RAM領域に記憶させ、非遊技関連処理からタイマ割込み処理に復帰したときに、該遊技プログラムであるタイマ割込み処理では、他の処理を行うことなく、非遊技RAM記憶領域に記憶されたセンサエラー参照データを参照する構成である。このような構成では、非遊技プログラムによる異常判定の結果を他の処理を行うよりも前に参照するため、異常判定の結果をいち早く遊技プログラムが行う処理に反映させることができる。また、異常判定を行う非遊技プログラムから遊技プログラムに復帰後、他の処理を行うよりも前にセンサエラー参照データを参照するため、最新のセンサエラー参照データが反映されたエラーフラグに基づいて他の処理を行わせることができる。
本実施例のスロットマシン1は、遊技プログラムが記憶される遊技プログラム領域及び非遊技プログラムが記憶される非遊技プログラム領域を有するROM41bと、当該ROM41bに記憶されたプログラムに基づいて制御を行うメイン制御部41と、を備え、遊技プログラムに含まれるタイマ割込み処理から、非遊技プログラムに含まれる非遊技関連処理を1回呼出すことにより、該非遊技関連処理において複数種類の異常判定として、メダルの払い出しに関する異常の判定及びメダルの投入に関する異常の判定を行う構成であり、非遊技関連処理では、メダルの払い出しに関する異常の判定を行って異常が判定された場合でも、メダルの払い出しに関する異常の判定の後に、メダルの投入に関する異常の判定を続けて行う構成である。このような構成では、遊技プログラムであるタイマ割込み処理から呼び出される非遊技プログラムである非遊技関連処理において、メダルの払いだしに関する異常の判定を行って異常が判定されたか否かに関わらず、他の種類の異常であるメダルの投入に関する異常についても判定を行うことができる。
尚、本実施例では、遊技プログラムに含まれるタイマ割込み処理から呼び出される非遊技プログラムに含まれる非遊技関連処理において、メダルの払い出しに関する異常の判定及びメダルの投入に関する異常の判定の2種類の異常の判定を行う構成であるが、遊技プログラムから1回の呼出により呼び出される非遊技プログラムにおいて、2種類以上の複数種類の異常の判定を行う構成でも良く、このような構成においては、非遊技プログラムにおいて行われる複数種類の異常の判定のうち一の種類の異常が判定されても他の種類の異常判定を続けて行う構成とすることで、いずれかの種類の異常が判定されたか否かに関わらず、他の種類の異常についても異常判定を行うことができる。
本実施例のスロットマシン1は、遊技プログラムに含まれるタイマ割込み処理から、非遊技プログラムに含まれる非遊技関連処理を1回呼出すことにより、該非遊技関連処理において複数種類の異常判定として、遊技媒体であるメダルの払い出しに関する異常の判定及びメダルの投入に関する異常の判定を行う構成である。このような構成では、遊技媒体であるメダルの払い出しに関する異常判定と、メダルの投入に関する異常判定と、を1回の非遊技プログラムの呼出により行うことができる。
本実施例の遊技機であるスロットマシン1は、プログラムが記憶される記憶領域を有するROM41bと、当該ROM41bに記憶されたプログラムに基づいて制御を行うメイン制御部41と、を備え、ROM41bの記憶領域は、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技プログラムによって呼び出されるプログラムであり、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、を含み、遊技プログラム(タイマ割込み処理)からの1回の非遊技プログラム(非遊技関連処理)の呼出により該非遊技プログラムにおいて、異常判定(センサ監視処理におけるメダルの払い出しに関する異常の判定、メダルの投入に関する異常の判定)、スロットマシン1に接続される外部機器へ出力される外部出力信号のうち試験装置へ出力される試験信号の出力制御(試験信号出力処理)、遊技の履歴に基づく状態である役比を所定表示器(クレジット表示器11、遊技補助表示器12)に表示させる表示制御(役比モニタ表示データ選択処理)を含む複数の制御を行う構成である。このような構成では、遊技の進行に係る遊技プログラムが記憶されるROM41bの遊技プログラム領域と、遊技プログラムによって呼び出されるプログラムであり、遊技の進行に係わらない非遊技プログラムが記憶されるROM41bの非遊技プログラム領域と、が別個に割り当てられた構成において、遊技プログラムからの1回の非遊技プログラムの呼出により該非遊技プログラムにおいて異常判定、試験信号の出力制御、遊技の履歴に基づく状態である役比を所定表示器に表示させる表示制御を含む複数の制御が行われるため、遊技プログラムと非遊技プログラムとの行き来を極力減らすことができる。
尚、本実施例では、メイン制御部41は、遊技プログラム(タイマ割込み処理)からの1回の非遊技プログラム(非遊技関連処理)の呼出により該非遊技プログラムにおいて、複数の制御として、異常判定(センサ監視処理におけるメダルの払い出しに関する異常の判定、メダルの投入に関する異常の判定)、試験装置へ出力される試験信号の出力制御(試験信号出力処理)、遊技の履歴に基づく状態である役比を所定表示器に表示させる表示制御(役比モニタ表示データ選択処理)、タイマを更新する制御(メダル通過時間タイマ更新処理)を行う構成であるが、1回の非遊技プログラムの呼出により少なくとも2種類以上の制御を行う構成でも良く、遊技プログラムからの1回の非遊技プログラムの呼出により、例えば、異常判定及び試験信号の出力制御を行う構成、異常判定及び役比を所定表示器に表示させる表示制御を行う構成、試験信号の出力制御及び役比を所定表示器に表示させる表示制御を行う構成、異常判定及びタイマを更新する制御を行う構成等でも良い。これらの構成でも、遊技プログラムと非遊技プログラムとの行き来を極力減らすことができる。
また、本実施例では、メイン制御部41は、遊技プログラム(タイマ割込み処理)からの1回の非遊技プログラム(非遊技関連処理)の呼出により該非遊技プログラムにおいて異常判定、試験装置へ出力される試験信号の出力制御、遊技の履歴に基づく状態である役比を所定表示器に表示させる表示制御を含む複数の制御を行う構成であり、当該異常判定では、2種類の異常判定(メダルの払い出しに関する異常の判定及びメダルの投入に関する異常の判定)を行う構成であるが、異常判定において1種類の異常判定を行う構成としても良いし、3種類以上の複数の異常判定を行う構成としても良い。このような構成でも、遊技プログラムと非遊技プログラムとの行き来を極力減らすことができる。
本実施例のスロットマシン1は、遊技プログラムが記憶される遊技プログラム領域及び非遊技プログラムが記憶される非遊技プログラム領域を有するROM41bと、当該ROM41bに記憶されたプログラムに基づいて制御を行うメイン制御部41と、を備える構成であり、遊技プログラムに含まれるタイマ割込み処理から非遊技プログラムに含まれる非遊技関連処理の1回の呼出により該非遊技関連処理において異常判定(メダルの払い出しに関する異常の判定、メダルの投入に関する異常の判定)を行う処理であるセンサ監視処理及び試験装置へ出力される試験信号の出力制御を行う処理である試験信号出力処理を行う構成であり、該非遊技関連処理において、センサ監視処理及び試験信号出力処理がそれぞれサブルーチンとして呼び出される構成である。このような構成では、異常判定を行う処理及び外部機器へ出力される外部出力信号の出力制御を行う処理がそれぞれサブルーチンとして設定されているため、プログラムの管理が容易となる。
本実施例のスロットマシン1は、遊技プログラムであるタイマ割込み処理から非遊技プログラムである非遊技関連処理の1回の呼出により該非遊技プログラムにおいて異常判定(例えば、メダルの払い出しに関する異常の判定、メダルの投入に関する異常の判定)を行う処理であるセンサ監視処理及び試験信号の出力制御を行う処理である試験信号出力処理を行う構成であり、非遊技プログラムにおける試験信号出力処理では、遊技プログラムの処理ではオンデータやオフデータが設定されることのない出力ポート(本実施例では、出力ポート6)すなわち遊技プログラムの処理で用いられない出力ポートを用いて試験信号の出力状態を設定する構成である。このような構成では、非遊技プログラムにおける試験信号出力処理によって、遊技プログラムの処理によって出力状態が制御される信号が意図せずに出力状態に制御されてしまうことを防止できる。
本実施例のスロットマシン1は、遊技プログラムが記憶される遊技プログラム領域及び非遊技プログラムが記憶される非遊技プログラム領域を有するROM41bと、当該ROM41bに記憶されたプログラムに基づいて制御を行うメイン制御部41と、を備える構成であり、遊技プログラムに含まれるタイマ割込み処理から非遊技プログラムに含まれる非遊技関連処理の1回の呼出により該非遊技関連処理において異常判定(メダルの払い出しに関する異常の判定、メダルの投入に関する異常の判定)を行う処理であるセンサ監視処理及び遊技の履歴に基づく状態である役比を所定表示器(クレジット表示器11、遊技補助表示器12)に表示させる表示制御を行う表示モニタ用データ選択処理を行う構成であり、該非遊技関連処理において、センサ監視処理及び表示モニタ用データ選択処理がそれぞれサブルーチンとして呼び出される構成である。このような構成では、異常判定を行う処理及び役比の表示制御を行う処理がそれぞれサブルーチンとして設定されているため、プログラムの管理が容易となる。
本実施例のスロットマシン1は、クレジット表示器11に、クレジットを示す数字または役比の種類を示す数字及び記号のいずれかを表示させることが可能であるとともに、遊技補助表示器12に、払い出されるメダルの払出枚数を示す数字、ナビ報知によるナビ番号を示す数字、エラーコード、または役比の比率を示す数字のいずれかを表示させることが可能であり、遊技プログラムは、遊技の状態を示す表示としてクレジット、払出枚数、ナビ番号、エラーコードを、遊技プログラム領域に記憶されている表示データを用いて表示する表示制御を行い、非遊技プログラムは、遊技の履歴に基づく状態を示す表示として役比の種類及び比率を、非遊技プログラム領域に記憶されている表示データを用いて表示する表示制御を行う構成であり、非遊技プログラムにおける遊技の履歴に基づく状態を表示させる表示制御で用いる表示データと、遊技プログラムにおいて遊技の状態を表示させる表示制御で用いる表示データと、が共通の表示態様(例えば、数字「0」~「9」)を表示させるものであっても、遊技プログラム領域と、非遊技プログラム領域と、にそれぞれ表示データが記憶されている構成である。このような構成では、非遊技プログラムにおける遊技の履歴に基づく状態を表示させる役比の表示制御では、非遊技プログラム領域に記憶された表示データを用い、遊技プログラムにおいて遊技の状態を表示させるクレジット等の表示制御では、遊技プログラム領域に記憶された表示データを用いることで、遊技プログラムと非遊技プログラムとの行き来を極力減らすことができる。
本実施例のスロットマシン1は、遊技プログラムが記憶される遊技プログラム領域及び非遊技プログラムが記憶される非遊技プログラム領域を有するROM41bと、当該ROM41bに記憶されたプログラムに基づいて制御を行うメイン制御部41と、を備える構成であり、遊技プログラムに含まれるタイマ割込み処理から非遊技プログラムに含まれる非遊技関連処理の1回の呼出により該非遊技関連処理においてスロットマシン1に接続される外部機器へ出力される外部出力信号のうち試験装置へ出力される試験信号の出力制御を行う処理である試験信号出力処理及び遊技の履歴に基づく状態である役比を所定表示器(クレジット表示器11、遊技補助表示器12)に表示させる表示制御を行う表示モニタ用データ選択処理を行う構成であり、該非遊技関連処理において、試験信号出力処理及び表示モニタ用データ選択処理がそれぞれサブルーチンとして呼び出される構成である。このような構成では、試験信号の出力制御を行う処理及び役比の表示制御を行う処理がそれぞれサブルーチンとして設定されているため、プログラムの管理が容易となる。
従来の遊技機では、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、がそれぞれ別個にROMに割り当てられた構成のものがある。このような構成では、遊技プログラムで用いる遊技データの記憶領域と、非遊技プログラムで用いる非遊技データの記憶領域と、についても別個の領域に割り当てられているが、遊技プログラムにおいて非遊技データを参照する処理を実行する度に、遊技プログラムから非遊技データ領域のデータを参照することとすると、遊技プログラムから何度も遊技データ領域と非遊技データ領域の双方にアクセスする必要があり、処理が複雑化するという問題が生じる。
これに対して、本実施例の遊技機であるスロットマシン1は、プログラムを記憶可能な記憶領域を有するROM41bと、当該ROM41bに記憶されたプログラムに基づいて制御を行うメイン制御部41と、データを一時的に記憶可能な記憶領域を有するRAM41cと、を備え、ROM41bの記憶領域は、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技プログラムによって呼び出されるプログラムであり、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、を含み、RAM41cの記憶領域は、遊技プログラムが用いる遊技データが読み出し及び書き込み可能に記憶される遊技RAM領域と、非遊技プログラムが用いる非遊技データが読み出し可能に記憶される非遊技RAM領域と、を含み、非遊技プログラムである非遊技関連処理のセンサ監視処理において、異常判定としてメダルの払い出しに関する異常の判定、メダルの投入に関する異常の判定を行うとともに、これらの異常判定の結果に基づいて非遊技RAM領域に記憶されている第1異常データとしてセンサエラー参照データを更新し、非遊技関連処理を呼び出した遊技プログラムであるタイマ割込み処理(メイン)では、非遊技関連処理から遊技プログラムに復帰したときに、非遊技RAM領域に記憶されている第1異常データを参照して、該第1異常データに基づいて遊技RAM領域に記憶されている第2異常データとしてセンサエラーフラグを更新可能であり、その後行われる遊技プログラムであるメイン処理では、遊技RAM領域に記憶されている第2異常データを参照して、遊技の進行を不能化するエラー状態に移行させるか否かを判断する構成である。
このような構成では、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技プログラムによって呼び出されるプログラムであり、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、が別個に割り当てられ、さらに遊技プログラムが用いる遊技データが読み出し及び書き込み可能に記憶される遊技RAM領域と、非遊技プログラムが用いる非遊技データが読み出し可能に記憶される非遊技RAM領域と、が別個に割り当てられた構成において、遊技プログラムでは、非遊技プログラムから遊技プログラムに復帰したときに、非遊技データ領域に記憶されている第1異常データを参照して、該第1異常データに基づいて遊技データ領域に記憶されている第2異常データを更新し、さらに遊技プログラムでは、遊技データ領域に記憶されている第2異常データを参照して、遊技の進行を不能化するエラー状態に移行させるか否かを判断するので、一度、非遊技データ領域の第1異常データを参照し、遊技データ領域の第2異常データを更新することで、その後行われるメイン処理等の遊技プログラムにおいて、異常判定に関連する処理を行う毎に何度も非遊技データ領域の第1異常データにアクセスすることなく、非遊技プログラムによる異常判定の結果を参照することが可能となるため、遊技プログラムから非遊技データ領域を参照する頻度を極力減らすことができる。
本実施例のスロットマシン1は、非遊技プログラムである非遊技関連処理から遊技プログラムであるタイマ割込み処理に復帰したときに、非遊技RAM領域に記憶されている第1異常データとしてメダル関連エラー参照データを参照して、該第1異常データに基づいて遊技RAM領域に記憶されている第2異常データとしてセンサエラーフラグを更新可能な構成であり、非遊技プログラムから遊技プログラムに復帰したときに、非遊技RAM領域に記憶されている第1異常データを参照して、当該第1異常データと遊技RAM領域に記憶されているセンサエラーフラグの論理和を演算して、当該演算結果に応じてセンサエラーフラグを更新することで、該第1異常データから異常の発生が特定される場合には第2異常データを更新し、該第1異常データから異常の発生が特定されない場合には第2異常データを更新しない構成である。このような構成では、第1異常データから異常の発生が特定される場合には第2異常データが更新され、第1異常データから異常の発生が特定されない場合には第2異常データが更新されないので、異常が発生した後、異常が解消されて非遊技プログラムで第1異常データが更新された場合でも、遊技プログラム側で異常の発生が確認されるまでは、第2異常データから異常の発生を特定することができる。
本実施例のスロットマシン1は、遊技プログラムであるタイマ割込み処理(メイン)により呼び出される非遊技プログラムである非遊技関連処理において、異常判定を行って該異常判定の結果を特定可能な第1異常データとしてメダル関連エラー参照データを非遊技RAM領域に記憶させる構成であり、遊技プログラムであるタイマ割込み処理(メイン)は、非遊技プログラムである非遊技関連処理から遊技プログラムに復帰したときに、他の処理を行うことなく、非遊技RAM領域に記憶されている第1異常データとしてメダル関連エラー参照データを参照し、該第1異常データに基づいて遊技RAM領域に記憶されている第2異常データとしてセンサエラーフラグを更新可能である構成である。このような構成では、非遊技プログラムによる異常判定の結果を他の処理を行うよりも前に参照するため、異常判定の結果をいち早く遊技プログラムが行う処理に反映させることができる。また、このような構成では、非遊技関連処理が行われた後に、他の処理により、第1異常データに基づいて更新される前の第2異常データを用いた処理が行われてしまうことを防止できる。
従来の遊技機では、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、がそれぞれ別個にROMに割り当てられた構成のものがある。このような構成では、遊技プログラムによる信号出力と、非遊技プログラムによる信号出力と、を共通の出力ポートを用いて行った場合に、非遊技プログラムによって設定された信号の出力データが残ってしまうことにより、遊技プログラムによる出力信号として出力されてしまう虞がある。
これに対して、本実施例の遊技機であるスロットマシン1は、プログラムを記憶可能な記憶領域を有するROM41bと、当該ROM41bに記憶されたプログラムに基づいて制御を行うメイン制御部41と、信号を出力するための出力ポート0~9と、を備え、ROM41bの記憶領域は、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技プログラムによって呼び出されるプログラムであり、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、を含み、出力ポート0~9は、遊技プログラムにおいて出力データ、例えば、リールモータ32L、32C、32Rの制御信号や流路切替ソレノイド30の制御信号、クレジット表示器11の制御信号、サブ制御部91へのコマンド等が設定され、非遊技プログラムにおいては出力データが設定されることのない第1出力ポート(出力ポート0~5、7~9)と、非遊技プログラムにおいて出力データ、例えば、試験信号等が設定され、遊技プログラムにおいては出力データが設定されることのない第2出力ポート(出力ポート6)と、を含み、第1出力ポート及び第2出力ポートの初期化は遊技プログラムである起動時設定処理や電断処理(メイン)から行う構成である。このような構成では、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技プログラムによって呼び出されるプログラムであり、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、が別個に割り当てられた構成において、遊技プログラムにおいて出力データが設定され、非遊技プログラムにおいては出力データが設定されることのない第1出力ポートと、非遊技プログラムにおいて出力データが設定され、遊技プログラムにおいては出力データが設定されることのない第2出力ポートと、をそれぞれ別個に備えるので、非遊技プログラムによって設定された信号の出力データが残ってしまうことにより、遊技プログラムによる出力信号として出力されてしまうようなことがなく、遊技プログラムによる制御と非遊技プログラムによる制御の独立性を担保することができるとともに、第1出力ポート及び前記第2出力ポートの初期化は遊技プログラムから行うことで、出力ポートの初期化に際しての制御を簡素化できる。
本実施例のスロットマシン1は、遊技プログラムにおいて出力データが設定され、非遊技プログラムにおいては出力データが設定されることのない第1出力ポート(出力ポート0~5、7~9)と、非遊技プログラムにおいて出力データが設定され、遊技プログラムにおいては出力データが設定されることのない第2出力ポート(出力ポート6)と、を備える構成であり、遊技プログラムは、初期化条件として、スロットマシン1への電力供給が開始されたこと、電断が検出されたことが成立したときに、第1出力ポート及び第2出力ポートの初期化を行う構成である。このような構成では、初期化条件が成立したときの制御を簡素化できる。
本実施例のスロットマシン1は、遊技プログラムにおいて出力データが設定され、非遊技プログラムにおいては出力データが設定されることのない第1出力ポート(出力ポート0~5、7~9)と、非遊技プログラムにおいて出力データが設定され、遊技プログラムにおいては出力データが設定されることのない第2出力ポート(出力ポート6)と、を備える構成であり、第2出力ポートから試験信号を出力する構成である。このような構成では、遊技を進行するために必須とならない試験信号を出力するための制御を非遊技プログラムにおいて行うことで、遊技プログラムの容量を削減することができる。
本実施例のスロットマシン1は、データを一時的に記憶可能な記憶領域を有するRAM41cを備え、当該RAM41cの記憶領域は、遊技プログラムが用いる遊技データが読み出し及び書き込み可能に記憶される遊技RAM領域と、非遊技プログラムが用いる非遊技データが読み出し可能に記憶される非遊技RAM領域と、を含み、遊技RAM領域は、遊技プログラムであり、初期設定処理やメイン処理から呼び出すRAM初期化処理によって初期化し、非遊技RAM領域は、非遊技プログラムであり、初期設定処理から呼び出す非遊技RAM領域初期化処理によって初期化する構成である。このような構成では、遊技プログラムと非遊技プログラムでは、遊技データと、非遊技データと、を互いに参照することは可能であるが、初期化を含め、互いに書き換えを不能とすることで、遊技プログラムによる制御と非遊技プログラムによる制御の独立性を担保することができる。
本実施例のスロットマシン1は、データを一時的に記憶可能な記憶領域を有するRAM41cを備え、当該RAM41cの記憶領域は、遊技プログラムが用いる遊技データが読み出し及び書き込み可能に記憶される遊技RAM領域と、非遊技プログラムが用いる非遊技データが読み出し可能に記憶される非遊技RAM領域と、を含み、設定変更処理が行われる場合には、遊技RAM領域初期化処理を行うことで、遊技RAM領域を初期化する一方で非遊技RAM領域を初期化しない構成である。このような構成では、遊技RAM領域の初期化を伴う設定変更処理が行われる場合でも、非遊技RAM領域が初期化されることがないので、非遊技RAM領域に記憶されている記憶内容、例えば、遊技の履歴に基づく状態である役比を所定表示器に表示させるためのデータ等が初期化されてしまうことを防止できる。
本実施例のスロットマシン1は、データを一時的に記憶可能な記憶領域を有するRAM41cを備え、当該RAM41cの記憶領域は、遊技プログラムが用いる遊技データが読み出し及び書き込み可能に記憶される遊技RAM領域と、非遊技プログラムが用いる非遊技データが読み出し可能に記憶される非遊技RAM領域と、を含み、非遊技RAM領域は、初期設定処理においてRAMパリティやRAM破壊診断用固定データを用いてRAM41cの異常を判定し、RAM41cの記憶内容に異常があると判定したときに、遊技RAM領域初期化処理及び非遊技RAM領域初期化処理を行うことで、RAM41cのすべての領域を初期化する構成である。このような構成では、RAM41cに記憶されている内容に異常があり、遊技の制御が正常に行われない虞がある場合にRAM41cの非遊技RAM領域を初期化することができる。また、RAM41cに記憶されている内容に異常がある場合に、非遊技RAM領域を初期化するので、設定変更がされても初期化されない非遊技RAM領域に記憶されている記憶内容、例えば、遊技の履歴に基づく状態である役比を所定表示器に表示させるためのデータ等を正常化させて、非遊技RAM領域に記憶されている記憶内容に基づく処理の正常な動作を担保することができる。
従来の遊技機では、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、がそれぞれ別個にROMに割り当てられた構成のものがある。このような構成では、非遊技プログラムにおいてメダルの通過の不正を検知しているが、遊技プログラムにおいては投入されたメダルの通過のみを判定しているため、非遊技プログラムが正常に動作しなかった場合に、不正が行われていてもメダルの通過が判定されてしまう虞がある。
これに対して、本実施例の遊技機であるスロットマシン1は、プログラムを記憶可能な記憶領域を有するROM41bと、当該ROM41bに記憶されたプログラムに基づいて制御を行うメイン制御部41と、を備え、ROM41bの記憶領域は、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技プログラムによって呼び出されるプログラムであり、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、を含み、遊技プログラムにおいて第1条件として、投入メダルセンサ31bまたは31cの確定データがON状態であり、かつ入力データがOFF状態であること、すなわち入力データがON状態からOFF状態に変化したことが成立することで、遊技媒体であるメダルの通過を検出する第1検出処理(メダル投入信号処理)を行い、非遊技プログラムにおいて第2条件として、投入メダルセンサ31a~31cの検出状態に基づいて特定されるメダル投入信号状態遷移データが正常であり、かつ投入メダルセンサ31bまたは31cの確定データがON状態からOFF状態に変化したことが成立することで遊技媒体であるメダルの通過を検出する第2検出処理(メダルセンサチェック処理)を行い、遊技プログラムでは、第1検出処理及び第2検出処理の双方で遊技媒体の通過が検出されたときに賭け数及びクレジットに加算する遊技媒体が通過したことを判定する構成である。
このような構成では、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技プログラムによって呼び出されるプログラムであり、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、が別個に割り当てられた構成において、遊技プログラムにおいて第1条件が成立することで遊技媒体の通過を検出する第1検出処理、及び遊技プログラムにおいて第2条件が成立することで遊技媒体の通過を検出する第2検出処理の双方で遊技媒体の通過が検出されたときに遊技媒体の通過を判定するので、遊技プログラムの容量を増やすことなく、遊技媒体の通過を適切に判定することができる。
本実施例のスロットマシン1は、第1条件として、投入メダルセンサ31bまたは31cの確定データがON状態であり、かつ入力データがOFF状態であることが成立することで、遊技媒体であるメダルの通過を検出する第1検出処理(メダル投入信号処理)を行い、第2条件として、投入メダルセンサ31a~31cの検出状態に基づいて特定されるメダル投入信号状態遷移データが正常であり、かつ投入メダルセンサ31bまたは31cの確定データがON状態からOFF状態に変化したことが成立することで遊技媒体であるメダルの通過を検出する第2検出処理(メダルセンサチェック処理)を行う構成であり、第2条件は、第1条件よりも多くの情報を含むメダル投入信号の状態遷移に基づいて成立する構成である。このような構成では、遊技プログラムの容量を増やすことなく、遊技媒体の通過に係る不正を排除することができる。
本実施例のスロットマシン1は、非遊技プログラムであるメダルセンサチェック処理において、第2条件として、投入メダルセンサ31a~31cの検出状態に基づいて特定されるメダル投入信号状態遷移データが正常であり、かつ投入メダルセンサ31bまたは31cの確定データがON状態からOFF状態に変化したことが成立することで遊技媒体であるメダルの通過を検出する第2検出処理(メダルセンサチェック処理)を行う構成であり、第2検出処理により遊技媒体の通過が正常に検出されなかったときに異常と判定して、メダル関連エラー参照データ(E5)を設定する構成である。このような構成では、遊技プログラムの容量を増やすことなく、遊技媒体の通過に係る不正を検知することができる。
本実施例のスロットマシン1は、第1条件として、投入メダルセンサ31bまたは31cの確定データがON状態であり、かつ入力データがOFF状態であることが成立することで、遊技媒体であるメダルの通過を検出する第1検出処理(メダル投入信号処理)を行い、第2条件として、投入メダルセンサ31a~31cの検出状態に基づいて特定されるメダル投入信号状態遷移データが正常であり、かつ投入メダルセンサ31bまたは31cの確定データがON状態からOFF状態に変化したことが成立することで遊技媒体であるメダルの通過を検出する第2検出処理(メダルセンサチェック処理)を行う構成であり、第1検出処理及び第2検出処理において、共通の投入メダルセンサ31a~31cを用いて遊技媒体の通過を検出する構成である。このような構成では、共通のセンサを対象として遊技プログラムと非遊技プログラムの双方で遊技媒体の通過を検出するため、遊技プログラムの容量を増やすことなく、遊技媒体の通過を適切に判定することができる。
本実施例のスロットマシン1は、一定期間毎に定期処理を実行するタイマ割込み処理(メイン)により、投入メダルセンサ31a~31cの検出状態を取得可能であり、第1条件として、投入メダルセンサ31bまたは31cの確定データがON状態であり、かつ入力データがOFF状態であることが成立することで、遊技媒体であるメダルの通過を検出する第1検出処理(メダル投入信号処理)を行い、第2条件として、投入メダルセンサ31a~31cの検出状態に基づいて特定されるメダル投入信号状態遷移データが正常であり、かつ投入メダルセンサ31bまたは31cの確定データがON状態からOFF状態に変化したことが成立することで遊技媒体であるメダルの通過を検出する第2検出処理(メダルセンサチェック処理)を行う構成であり、第1検出処理及び第2検出処理では、同じタイマ割込み処理(メイン)にて取得された投入メダルセンサ31a~31cの検出状態を用いて遊技媒体の通過を検出する構成である。このような構成では、同じタイマ割込み処理(メイン)にて取得した投入メダルセンサ31a~31cの検出状態を用いて遊技プログラムと非遊技プログラムの双方で遊技媒体の通過を検出するため、遊技プログラムの容量を増やすことなく、遊技媒体の通過を適切に判定することができる。
従来の遊技機では、例えば、リールのバックライトを点滅させる等、オンとオフを繰り返す制御を行う構成のものがある。このような構成では、リールのバックライトのオンとオフを繰り返す制御を行うために、所定回の割込毎に点灯と消灯を繰り返すデータに基づいて制御しており、そのためのデータを必要とする。
これに対して、本実施例の遊技機であるスロットマシン1のメイン制御部41は、所定時間にわたり電子部品、例えば、7セグメント表示器で構成されるクレジット表示器11、遊技補助表示器12のオン制御とオフ制御とを繰り返す制御を行うことが可能であり、所定時間を計測するためのタイマ値を更新するとともに、該タイマ値と特定値を用いて演算し、演算の結果に応じてオン制御とオフ制御とを切り替える構成である。このような構成では、所定時間を計測するためのタイマ値と特定値を用いて演算し、演算の結果に応じてオン制御とオフ制御とを切り替えるので、切り替えのためのデータを別個に必要としないため、オン制御とオフ制御とを繰り返す制御を行うためのデータ容量を削減することができる。
尚、本実施例では、メイン制御部41は、電子部品として7セグメント表示器で構成されるクレジット表示器11、遊技補助表示器12に対してオン制御とオフ制御を行って、点滅させることが可能な構成であるが、メイン制御部41は、電子部品として7セグメント表示器以外の発光手段、例えば、LEDやランプ(本実施例では、ウェイト中LED19やリプレイ中LED20、演出効果LED52等)や、ソレノイド等で動作する動作手段、バイブレータなどの振動手段などを適用する構成でも良い。
また、本実施例では、メイン制御部41が、電子部品のオン制御とオフ制御を行う際に、タイマ値と特定値を用いた演算の結果に応じてオン制御とオフ制御とを切り替える構成であるが、サブ制御部91やその他の制御手段が、タイマ値と特定値を用いた演算の結果に応じて、所定の電子部品のオン制御とオフ制御を行う構成でも良い。
本実施例のメイン制御部41は、タイマ値と特定値を用いた演算の結果に応じてオン制御とオフ制御とを切り替えることで、所定時間にわたり電子部品のオン制御とオフ制御とを繰り返す制御を行う構成であり、タイマ値を特定値で除算し、除算した商の最下位ビットの値によってオン制御とオフ制御とを切り替える構成である。このような構成では、簡単な処理でオン制御とオフ制御とを切り替えることができる。
尚、本実施例では、メイン制御部41は、タイマ値を特定値で除算し、除算した商の最下位ビットの値によってオン制御とオフ制御とを切り替える構成であるが、タイマ値を特定値で除算する以外の演算、例えば、タイマ値を所定ビット数シフトさせて得られる値の最下位ビットの値によってオン制御とオフ制御とを切り替える構成でも良いし、四則演算を行う構成でも良い。
本実施例のメイン制御部41は、タイマ値と特定値を用いた演算の結果に応じてオン制御とオフ制御とを切り替えることで、所定時間にわたり電子部品のオン制御とオフ制御とを繰り返す制御を行う構成であり、タイマ値が更新される毎に特定値を用いて演算する構成である。このような構成では、簡単な処理でオン制御とオフ制御とを切り替えることができる。
尚、本実施例では、メイン制御部41は、タイマ値が更新される毎に特定値を用いて演算する構成であるが、タイマ値の更新が所定回数行われる毎に特定値を用いて演算する構成でも良い。このような構成では、演算の回数を削減して処理負担を軽減できる。
本実施例のメイン制御部41は、タイマ値と特定値を用いた演算の結果に応じてオン制御とオフ制御とを切り替えることで、所定時間にわたり電子部品のオン制御とオフ制御とを繰り返す制御を行う構成であり、電子部品は、7セグメント表示器で構成されるクレジット表示器11、遊技補助表示器12、遊技機情報表示器50などの発光手段である。このような構成では、所定時間にわたり発光手段を点滅させる場合のデータ容量を削減することができる。
本実施例のメイン制御部41は、タイマ値と特定値を用いた演算の結果に応じてオン制御とオフ制御とを切り替えることで、所定時間にわたり電子部品のオン制御とオフ制御とを繰り返すオン‐オフ制御を行う構成であり、当該オン‐オフ制御において、タイマ値の初期値に対する特定値を用いた演算の結果によって行われる制御をオフ制御とする構成である。このような構成では、オン制御の状態である電子部品に対して、オン‐オフ制御を開始させる場合でも、当該オン‐オフ制御を開始させるときにまずオフ制御を行った後、オン制御とオフ制御を繰り返すので、オン‐オフ制御を開始したことを認識させることができる。
尚、本実施例では、メイン制御部41は、タイマ値と特定値を用いた演算の結果に応じてオン制御とオフ制御とを切り替えることで、所定時間にわたり電子部品に対してオン‐オフ制御を行う構成であり、当該オン‐オフ制御において、タイマ値の初期値に対する特定値を用いた演算の結果によって行われる制御をオフ制御とする構成であるが、メイン制御部41は、タイマ値の初期値に対する特定値を用いた演算の結果によって行われる制御をオン制御とする構成でも良く、このような構成では、電子部品に対してオン‐オフ制御を開始する前に、一旦、電子部品をオフ制御した後、当該オン‐オフ制御を開始する構成とすることで、当該オン‐オフ制御を開始したことを認識させることができる。
本実施例のメイン制御部41は、タイマ値と特定値を用いた演算の結果に応じてオン制御とオフ制御とを切り替えることで、所定時間にわたり電子部品のオン制御とオフ制御とを繰り返すオン‐オフ制御を行う構成であり、タイマ値の最終値に対する特定値を用いた演算の結果によって行われる制御をオフ制御とする構成である。このような構成では、所定時間にわたる電子部品に対するオン‐オフ制御の終了時の制御をオフ制御とすることで、当該オン‐オフ制御の終了後に、電子部品をオン状態とする制御が行われる場合(例えば、クレジット表示器11及び遊技補助表示器12において、表示モニタ用データ選択処理により役物の比率表示を表示させる制御を行った後、当該比率表示を表示させる前に表示されていた表示内容(例えば、クレジット、払出枚数、エラーコード)を再び表示させる場合や、複数種類の比率表示のうち一の比率表示を表示させた後、他の比率表示を表示させる場合等)でも、オフ制御を行った後にオン状態とする制御を行うこととなるので、オン‐オフ制御とその後のオン制御との区切りを認識させることができる。
尚、本実施例では、メイン制御部41は、タイマ値と特定値を用いた演算の結果に応じてオン制御とオフ制御とを切り替えることで、所定時間にわたり電子部品に対してオン‐オフ制御を行う構成であり、当該オン‐オフ制御において、タイマ値の最終値に対する特定値を用いた演算の結果によって行われる制御をオフ制御とする構成であるが、メイン制御部41は、タイマ値の最終値に対する特定値を用いた演算の結果によって行われる制御をオン制御とする構成でも良く、このような構成では、電子部品に対するオン‐オフ制御を終了するときに、電子部品をオフ制御する構成とすることで、当該オン‐オフ制御とその後のオン制御との区切りを認識させることができる。
本実施例のスロットマシン1は、小役の入賞に伴い所定枚数のメダルを付与し、特別役の入賞に伴い遊技者にとって有利に制御し、予め定められた特定期間、例えば、過去6000ゲーム間、工場出荷時または何らかの原因でRAM41cのデータが初期化されてから現在までの期間等において付与されたメダルの総数である総累計払出数を計数することや、特定期間のうち有利に制御された期間(BB、RB)において付与されたメダルの総数である役物払出枚数を計数することが可能であり、計数された総累計払出数に占める役物払出枚数により計数された役物払出枚数の割合である役物払出比率を算出し、算出された役物払出比率を特定可能にクレジット表示器11及び遊技補助表示器12に表示することが可能な構成であり、特定期間(本実施例では、6000ゲーム)に到達するタイミングが異なる複数の累計バッファ1~3を有しており、特定期間に到達する毎に該当するカウンタの計数値を用いて役物払出比率を算出し、累計バッファ1~3による計数開始から最初に特定期間に到達するまでの期間において、役物払出比率の表示を点滅させる構成である。このような構成では、クレジット表示器11及び遊技補助表示器12に表示された役物払出比率が正常な値ではないことを認識させることができる。また、特定期間に到達するタイミングが異なる複数の累計バッファ1~3をそれぞれ有しているため、最初の累計バッファが特定期間に一度到達した後は、当該累計バッファが次回特定期間に到達するまで待つことなく、他の累計バッファが特定期間に到達する毎に、役物払出比率を最新の情報に更新させることができる。
尚、本実施例1では、メイン制御部41は、過去6000ゲーム間の役物払出比率と総累計払出数に対する役物払出比率とを比率表示として、クレジット表示器11及び遊技補助表示器12に表示させることが可能な構成であるが、実施例1でも実施例2と同様に、過去6000ゲーム間の有利区間割合、総累計ゲーム数に対する有利区間割合、過去6000ゲーム間の連役払出比率、過去6000ゲーム間の有利区間払出比率、総累計払出数に対する連役払出比率、総累計払出数に対する有利区間払出比率を算出して、これらの割合や比率をクレジット表示器11及び遊技補助表示器12に表示させることが可能な構成としても良い。
以上、本発明の実施例を図面により説明してきたが、本発明はこの実施例に限定されるものではなく、本発明の主旨を逸脱しない範囲における変更や追加があっても本発明に含まれることは言うまでもない。
前記実施例では、本発明を遊技用価値としてメダル並びにクレジットを用いて賭数が設定されるスロットマシンに適用した例について説明したが、遊技用価値として遊技球を用いて賭数を設定するスロットマシンや、遊技用価値としてクレジットのみを使用して賭数を設定する完全クレジット式のスロットマシンに適用しても良い。遊技球を遊技用価値として用いる場合は、例えば、メダル1枚分を遊技球5個分に対応させることができ、前記実施例で賭数として3を設定する場合は、15個の遊技球を用いて賭数を設定するものに相当する。
さらに、メダル及び遊技球等の複数種類の遊技用価値のうちいずれか1種類のみを用いるものに限定されるものではなく、例えば、メダル及び遊技球等の複数種類の遊技用価値を併用できるものであっても良い。すなわち、メダル及び遊技球等の複数種類の遊技用価値のいずれを用いても賭数を設定してゲームを行うことが可能であり、かつ入賞の発生によってメダル及び遊技球等の複数種類の遊技用価値のいずれをも払い出し得るスロットマシンを適用しても良い。
また、前記実施例及び変形例では、本発明が遊技機の一例であるスロットマシン1に適用された例が示されていたが、本発明はこれに限定されるものではなく、遊技機の他の一例であり、遊技領域に遊技球を発射することにより遊技を行うパチンコ遊技機であって、遊技の進行に係る遊技プログラムが記憶される遊技プログラム領域と、遊技の進行に係わらない非遊技プログラムが記憶される非遊技プログラム領域と、がそれぞれ別個にROMに割り当てられた構成である遊技機等においても適用可能である。また、パチンコ遊技機であって、演出用LEDを点滅させる等、電子部品についてオンとオフを繰り返す制御を行う構成である遊技機等においても適用可能である。
本発明が適用されたスロットマシンの実施例2について説明する。尚、本実施例のスロットマシンの構成は、前述した実施例1と同一の構成を含むため、ここでは異なる点について主に説明する。
実施例1のメイン制御部41は、役比モニタ用データ処理により集計された、過去6000ゲーム間の役物払出比率と総累計払出数に対する役物払出比率とを比率表示として、クレジット表示器11及び遊技補助表示器12に表示させることが可能な構成であるが、実施例2のメイン制御部41は、遊技制御基板40に7セグメント表示器で構成される遊技機情報表示器50を備え、過去6000ゲーム間の役物払出比率や総累計払出数に対する役物払出比率などの比率表示を、遊技機情報表示器50に表示させる構成である。
また、実施例1のメイン制御部41は、比率表示として、役比モニタ用データ処理により、過去6000ゲーム間の役物払出比率と総累計払出数に対する役物払出比率とを表示させる構成であるが、実施例2のメイン制御部41は、比率表示として、過去6000ゲーム間の有利区間割合、総累計ゲーム数に対する有利区間割合、過去6000ゲーム間の連役払出比率、過去6000ゲーム間の役物払出比率、過去6000ゲーム間の有利区間払出比率、総累計払出数に対する連役払出比率、総累計払出数に対する役物払出比率、総累計払出数に対する有利区間払出比率を表示させる構成である。
また、実施例1のメイン制御部41は、6000ゲーム分のメダルの払い出しに関するデータを計数可能な3つの累計バッファ1~3を用いて、比率表示を行うためのデータを集計する構成であるが、実施例2のメイン制御部41は、1セットで2バイトのデータを格納可能なバッファが15セット設けられている5つのリングバッファを用いて、比率表示を行うためのデータを集計する構成である。
以下、本実施例2のスロットマシン1について、図31~図35に基づいて説明する。図31に示すように、遊技制御基板40が筐体1aの内部の所定位置に取り付けられた状態において、遊技制御基板40の正面側(遊技者側)の下部には7セグメント表示器で構成される遊技機情報表示器50が配置されている。遊技機情報表示器50は、遊技制御基板40が基板ケース120aに封入されている状態で、当該基板ケース120aの外部から表示内容を視認可能となっており、メイン制御部41により集計され、遊技機情報表示器50に表示されるスロットマシン1における有利区間割合等の情報を、店員等が認識できるようになっている。
このため、前面扉1bを開放した状態において基板ケース120aを介して遊技機情報表示器50の表示内容が視認できるようになっている。また、筐体1aの内部では、遊技機情報表示器50の表示内容の視認性が妨げられないようになっている。詳しくは、遊技機情報表示器50の表示側の位置に、スロットマシン1に設けられたリール等の部品全般、他の基板等が設けられることがなく、遊技機情報表示器50の表示側の位置を、スロットマシン1に設けられた電子部品同士を接続する配線が通過しないようになっている。また、遊技機情報表示器50を搭載した遊技制御基板40を収納する基板ケース120aにおいて、封印シールや開封者を記入するための記入部、スロットマシン1や遊技制御基板40の管理情報や管理履歴等の情報が表示されるラベル、当該ラベルが貼着される貼着部、当該情報が印字、刻印される表示部、放熱穴、放熱用のファン等の部品などが遊技機情報表示器50の表示側の位置を避けて設けられている。
また、基板ケース120aは、遊技制御基板40を収容した後封止されるようになっており、封止された状態では、痕跡を残すことなく封止を解除して開放することができないようになっている。封止する方法としては、封止片をワンウェイネジで封止したり、ケースの一部を溶着したり、剥がした跡が残る封印シールを貼着したりする方法などがある。これにより、遊技機情報表示器50と遊技制御基板40とを接続する接続線を断線させて、基板ケース120aに封入された遊技制御基板40に搭載されている遊技機情報表示器50が正しく表示内容を表示することができないようにしたり、遊技機情報表示器50の表示面にシール等を貼着して視認性を阻害するような不正が行われることを防止できる。
メイン制御部41は、図32に示すように、過去6000ゲーム間の有利区間割合、総累計ゲーム数に対する有利区間割合、過去6000ゲーム間の連役払出比率、過去6000ゲーム間の役物払出比率、過去6000ゲーム間の有利区間払出比率、総累計払出数に対する連役払出比率、総累計払出数に対する役物払出比率、総累計払出数に対する有利区間払出比率を遊技機情報表示器50に表示させる制御を行う。
過去6000ゲーム間の有利区間割合とは、過去6000ゲーム間においてATに関連する有利区間に制御されたゲーム数の割合である。ATに関連する有利区間とは、AT非当選の状態においてATに当選したときから、当選したATに伴うATの制御が全て終了し、非ATに移行するまでの期間である。総累計ゲーム数に対する有利区間割合は、工場出荷時或いは何らかの原因でRAM41cのデータが初期化されてからの累計ゲーム数である総累計ゲーム数に対してATに関連する有利区間に制御されたゲーム数の割合である。過去6000ゲーム間の連役払出比率とは、過去6000ゲーム間において払い出されたメダル数の累計である総払出枚数に占める過去6000ゲーム間において制御されたBB中に払い出されたメダル数の累計である連役払出枚数の比率である。過去6000ゲーム間の役物払出比率とは、過去6000ゲーム間において払い出されたメダル数の累計である総払出枚数に占める過去6000ゲーム間において制御されたBB中及びRB中に払い出されたメダル数の累計である役物払出枚数の比率である。過去6000ゲーム間の有利区間払出比率とは、過去6000ゲーム間において払い出されたメダル数の累計である総払出枚数に占める過去6000ゲーム間において制御されたATに関連する有利区間中に払い出されたメダル数の累計である有利区間払出枚数の比率である。総累計払出数に対する連役払出比率とは、工場出荷時或いは何らかの原因でRAM41cのデータが初期化されてからのメダルの払出枚数の累計である総累計払出数に占める工場出荷時或いは何らかの原因でRAM41cのデータが初期化されてから現在までにおいて制御されたBB中に払い出されたメダル数の累計である連役払出枚数の比率である。総累計払出数に対する役物払出比率とは、総累計払出数に占める工場出荷時或いは何らかの原因でRAM41cのデータが初期化されてから現在までにおいて制御されたBB中及びRB中に払い出されたメダル数の累計である役物払出枚数の比率である。総累計払出数に対する有利区間払出比率とは、総累計払出数に占める工場出荷時或いは何らかの原因でRAM41cのデータが初期化されてから現在までにおいて制御されたATに関連する有利区間中に払い出されたメダル数の累計である有利区間払出枚数の比率である。
尚、本実施例では、ボーナスとして、RBと、RBが連続して作動するBBのみを搭載する構成であるが、全ての種類の小役の入賞が許容されるが、一部のリールについて引込が制限されるCT、CTが連続して作動するCBを搭載する構成であっても良く、CTを搭載する場合には、CT中に払い出されたメダル数は、役物払出比率に反映され、CBを搭載する場合には、CB中に払い出されたメダル数は、連役払出比率に反映されることとなる。
メイン制御部41は、電源投入後、電力供給が停止するまでの期間において過去6000ゲーム間の有利区間割合、総累計ゲーム数に対する有利区間割合、過去6000ゲーム間の連役払出比率、過去6000ゲーム間の役物払出比率、過去6000ゲーム間の有利区間払出比率、総累計払出数に対する連役払出比率、総累計払出数に対する役物払出比率、総累計払出数に対する有利区間払出比率を、図32に示す表示順にて所定期間(本実施例では、30秒間)毎に切り替えて遊技機情報表示器50に表示させる。
この際、遊技機情報表示器50には、上位2桁に現在表示中の表示内容を示す略記(例えば、表示順1の過去6000ゲーム間の有利区間比率が表示されている場合には、「1A」)が表示される。現在表示中の表示内容を示す略記は、表示される2桁のうち最下位の桁の表示内容が数字以外の文字(本実施例では、「A」「C」「F」の英字)となっており、遊技機情報表示器50において、略記及び割合、比率が表示されているときに、略記の数字部分が、割合、比率と隣り合うことがないようになっている。これにより、略記の数字部分と割合、比率とが隣り合って割合、比率の表示内容が誤認されてしまうことを防止できる。
また、この際、遊技機情報表示器50には、下2桁に前述の略記に対応する現在表示すべき割合、比率(以下、表示すべきデータと呼ぶ場合がある)が表示され、いずれのデータについても%で表示されるようになっている。遊技機情報表示器50の下2桁に表示されるデータとして、0~99%が表示されることとなるが、本実施例では、遊技機情報表示器50の下2桁双方を用いて表示すべきデータを表示するようになっており、例えば、表示すべきデータが1桁の場合には、遊技機情報表示器50の下2桁のうち上位の桁に「0」を表示する一方で、下位の桁に表示すべきデータの値を表示する(例えば、5%を表示する場合には、遊技機情報表示器50の下2桁に「05」を表示する)。また、表示すべきデータが2桁の場合には、遊技機情報表示器50の下2桁に表示すべきデータを表示する(例えば、15%を表示する場合には、遊技機情報表示器50の下2桁に「15」を表示する)。このように、遊技機情報表示器50に表示すべきデータが、1桁であるか2桁であるかにかかわらず、遊技機情報表示器50の下2桁双方を用いて表示すべきデータを表示することで、割合、比率の表示内容が誤認されてしまうことを防止できる。また、1桁であるか2桁であるかにかかわらず、遊技機情報表示器50の下2桁双方を用いて表示すべきデータを表示することで、常に遊技機情報表示器50の下2桁にいずれかのデータが表示されることとなり、例えば、下2桁の表示器の一方にデータが表示されない場合に、当該表示器の異常を認識させることができる。
尚、現在表示中の表示内容を示す略記を、表示される2桁のうち最上位の桁の表示内容が数字以外の文字(例えば、「A1」)となるようにして、遊技機情報表示器50における下2桁に当該略記を表示させるとともに、遊技機情報表示器50における上2桁に現在表示すべきデータ(例えば、過去6000ゲーム間の有利区間比率)を表示させる構成でも、略記の数字部分と割合、比率とが隣り合って割合、比率の表示内容が誤認されてしまうことを防止できる。
また、遊技機情報表示器50における下2桁、上2桁のいずれに略記と現在表示すべきデータとを表示させるかにかかわらず、略記を表示する2桁と、現在表示すべきデータを表示する2桁の色彩を異ならせる構成でも、略記の数字部分と割合、比率とが隣り合って割合、比率の表示内容が誤認されてしまうことを防止できる。
また、本実施例のメイン制御部41は、有利区間割合、連役払出比率、役物払出比率、有利区間払出比率、連役払出比率、役物払出比率、有利区間払出比率を、図32に示す表示順にて所定期間毎に切り替えて表示させる際に、これらの表示が一巡し終えるまでの一の期間内においては、ゲームが進行されて、これらの値が新たな値に更新され得る場合であっても、新たな値に更新することを制限して、元の値を用いて表示を一巡させる。詳しくは、これらの表示が一巡し終えるまでの一の期間内において、ゲームが進行されて、これらの値が新たな値に更新され得る場合には、新たな値を演算してRAM41cの所定領域に記憶させるが、遊技機情報表示器50に表示内容を表示させるための出力バッファに当該新たな値を設定することなく、元の値を設定することで、遊技機情報表示器50における表示を元の値を用いて一巡させ、一巡の表示が終了したときから、新たな値を出力バッファに設定することで、その後、新たな値で表示を行うようにしても良いし、これらの表示が一巡し終えるまでの一の期間内において、これらの値が新たな値に更新され得る場合には、新たな値を求めるための演算を行うことを制限して、遊技機情報表示器50における表示を一巡させ、一巡の表示が終了した際に、新たな値を求めるための演算を行い、その後、当該新たな値を用いて遊技機情報表示器50における表示を行うようにしても良い。このようにすることで、遊技機情報表示器50における表示内容が一巡するまでの期間において、異なる時期に演算された有利区間割合等の表示内容が混在してしまうことを防止できる。
また、メイン制御部41は、過去6000ゲーム間の有利区間割合、総累計ゲーム数に対する有利区間割合が規定割合(例えば、70%)を超える場合には、通常と異なる表示態様(例えば、通常が常時点灯であれば点滅点灯等)にて有利区間割合を表示する。また、メイン制御部41は、過去6000ゲーム間の連役払出比率、総累計払出数に対する連役払出比率が規定割合(例えば、60%)を超える場合には、通常と異なる表示態様(例えば、通常が常時点灯であれば点滅点灯等)にて連役払出比率を表示する。また、メイン制御部41は、過去6000ゲーム間の役物払出比率、総累計払出数に対する役物払出比率が規定割合(例えば、70%)を超える場合には、通常と異なる表示態様(例えば、通常が常時点灯であれば点滅点灯等)にて役物払出比率を表示する。また、メイン制御部41は、過去6000ゲーム間の有利区間払出比率、総累計払出数に対する有利区間払出比率が規定割合(例えば、80%)を超える場合には、通常と異なる表示態様(例えば、通常が常時点灯であれば点滅点灯等)にて有利区間払出比率を表示する。
このように有利区間割合、連役払出比率、役物払出比率、有利区間払出比率が規定割合を超えると、通常と異なる表示態様にて表示されるようになっており、射幸性が高い状態に制御されている可能性があることを警告できるようになっている。
また、メイン制御部41は、過去6000ゲーム間の有利区間割合、過去6000ゲーム間の連役払出比率、過去6000ゲーム間の役物払出比率、過去6000ゲーム間の有利区間払出比率を遊技機情報表示器50に表示させる場合において、過去のゲーム数が6000ゲームに到達していない状態であるときには、例えば、遊技機情報表示器50の上位2桁の表示を点滅させる等、通常とは異なる表示態様に制御することで、集計が6000ゲームに到達していないことが認識できるようになっており、表示されている割合、比率に偏りが生じている可能性が認識できるようになっている。
また、メイン制御部41は、総累計ゲーム数に対する有利区間割合を遊技機情報表示器50に表示させる場合において、過去のゲーム数が有利区間割合が概ねスロットマシンの設計値に収束する規定ゲーム数(例えば、175000ゲーム)に到達していない状態であるときには、例えば、遊技機情報表示器50の上位2桁の表示を点滅させる等、通常とは異なる表示態様に制御することで、有利区間割合が概ねスロットマシンの設計値に収束する規定ゲーム数に到達していないことが認識できるようになっており、表示されている割合、比率に偏りが生じている可能性が認識できるようになっている。
また、メイン制御部41は、総累計払出数に対する連役払出比率を遊技機情報表示器50に表示させる場合において、過去のゲーム数が連役払出比率が概ねスロットマシンの設計値に収束する規定ゲーム数(例えば、17500ゲーム)に到達していない状態であるときには、例えば、遊技機情報表示器50の上位2桁の表示を点滅させる等、通常とは異なる表示態様に制御することで、連役払出比率が概ねスロットマシンの設計値に収束する規定ゲーム数に到達していないことが認識できるようになっており、表示されている割合、比率に偏りが生じている可能性が認識できるようになっている。
また、メイン制御部41は、総累計払出数に対する役物払出比率を遊技機情報表示器50に表示させる場合において、過去のゲーム数が役物払出比率が概ねスロットマシンの設計値に収束する規定ゲーム数(例えば、6000ゲーム)に到達していない状態であるときには、例えば、遊技機情報表示器50の上位2桁の表示を点滅させる等、通常とは異なる表示態様に制御することで、役物払出比率が概ねスロットマシンの設計値に収束する規定ゲーム数に到達していないことが認識できるようになっており、表示されている割合、比率に偏りが生じている可能性が認識できるようになっている。
また、メイン制御部41は、総累計払出数に対する有利区間払出比率を遊技機情報表示器50に表示させる場合において、過去のゲーム数が有利区間払出比率が概ねスロットマシンの設計値に収束する規定ゲーム数(例えば、175000ゲーム)に到達していない状態であるときには、例えば、遊技機情報表示器50の上位2桁の表示を点滅させる等、通常とは異なる表示態様に制御することで、有利区間払出比率が概ねスロットマシンの設計値に収束する規定ゲーム数に到達していないことが認識できるようになっており、表示されている割合、比率に偏りが生じている可能性が認識できるようになっている。
尚、メイン制御部41は、6000ゲームに到達していない状態では、遊技機情報表示器50の下位2桁に「00」を表示し、6000ゲームに到達した以降の状態では、遊技機情報表示器50の下位2桁に表示すべき割合、比率を表示する、すなわち6000ゲームに到達した以降の状態では、遊技機情報表示器50の下位2桁の表示態様を、6000ゲーム以降の表示態様とは異なる表示態様とする構成とすることが好ましく、このような構成とすることで、6000ゲームに到達していない状態では、遊技機情報表示器50の上位2桁の表示(例えば、「1A」)により特定される有利区間割合等の集計が6000ゲームに到達していないことが認識でき、表示されている割合、比率に偏りが生じている可能性が認識できる。また、6000ゲームに到達していない状態では、遊技機情報表示器50の下位2桁に「00」を表示する構成とすることで、6000ゲームに到達していない状態では、常に遊技機情報表示器50の下2桁にデータが表示されることとなり、例えば、下2桁の表示器の一方にデータが表示されない場合に、当該表示器の異常を認識させることができる。
また、メイン制御部41は、過去6000ゲーム間の有利区間割合、総累計ゲーム数に対する有利区間割合、過去6000ゲーム間の連役払出比率、過去6000ゲーム間の役物払出比率、過去6000ゲーム間の有利区間払出比率、総累計払出数に対する連役払出比率、総累計払出数に対する役物払出比率、総累計払出数に対する有利区間払出比率を算出するために用いるデータが正常か否かを判定し、異常と判定された場合(総払出枚数より役物払出枚数、連役払出枚数、有利区間払出枚数が多い場合、格納された値がある一定のデータ形式(01繰り返しなど)である場合等)には、異常と判定されたデータ及び当該データに関連するデータを初期化し、遊技機情報表示器50に異常が検知された旨の表示(例えば、「FFFF」)をさせて、その旨を報知するようになっており、これらのデータの算出が正常に行われていないことを認識できるようになっている。
尚、異常と判定されたデータ及び当該データに関連するデータを初期化する際には、例えば、過去6000ゲーム間に対する有利区間割合、連役払出比率、役物払出比率、有利区間払出比率のうちの少なくともいずれか1つが異常と判定された場合には、これら全てに関するデータを初期化するようにしても良いし、一部のデータのみを初期化するようにしても良い。総累計ゲーム数に対する有利区間割合、連役払出比率、役物払出比率、有利区間払出比率のうちの少なくともいずれか1つが異常と判定された場合には、これらの全てに関するデータを初期化するようにしても良いし、一部データのみを初期化するようにしても良い。また、過去6000ゲーム間に対するデータの一部に異常が判定された際に、過去6000ゲーム間及び総累計ゲーム数に対するデータの全てを初期化したり、逆に、総累計ゲーム数に対するデータの一部に異常が判定された際に、過去6000ゲーム間及び総累計ゲーム数に対するデータの全てを初期化するようにしても良い。
また、過去6000ゲーム間及び総累計ゲーム数に対する有利区間割合、連役払出比率、役物払出比率、有利区間払出比率を算出するために用いるデータが正常か否かを判定し、異常と判定された場合には、その旨を報知し、その後、所定の操作(例えば、スタートスイッチ7、ストップスイッチ8L、8C、8R、設定キースイッチ37等のスイッチ類が所定の手順で操作されること)されることで、当該データに関する初期化を行うようにしても良い。
また、異常が判定された旨の報知では、上述のように、遊技機情報表示器50に異常が検知された旨の表示(例えば、「FFFF」)をさせて、その旨を報知しても良いし、異常が判定された際に、その旨を特定可能なコマンドをサブ制御部91に対して送信し、サブ制御部91側において液晶表示器51等により異常が判定された旨を報知させるようにしても良い。
また、メイン制御部41は、データの収集を開始してから6000ゲームに到達するまでの期間、すなわち過去6000ゲーム間の有利区間割合、総累計ゲーム数に対する有利区間割合、過去6000ゲーム間の連役払出比率、過去6000ゲーム間の役物払出比率、過去6000ゲーム間の有利区間払出比率、総累計払出数に対する連役払出比率、総累計払出数に対する役物払出比率、総累計払出数に対する有利区間払出比率等を算出するためのデータが不十分な期間において、遊技機情報表示器50の表示内容が、データの収集を開始してから6000ゲーム以降の表示態様とは異なる態様で表示されるようになっており、表示内容を算出するためのデータが不十分な期間であることを認識できるようになっている。
尚、本実施例では、電源投入後、電力供給が停止するまでの期間において過去6000ゲーム間の有利区間割合、総累計ゲーム数に対する有利区間割合、過去6000ゲーム間の連役払出比率、過去6000ゲーム間の役物払出比率、過去6000ゲーム間の有利区間払出比率、総累計払出数に対する連役払出比率、総累計払出数に対する役物払出比率、総累計払出数に対する有利区間払出比率が、所定期間毎に切り替えて表示されるようになっているが、前面扉1bの開放状態が検出されている場合のみ表示されるようにしたり、所定の操作スイッチ(例えばリセット/設定スイッチ38)の操作が検出されている場合のみ表示されるようにしたり、ゲーム中でないときに表示されるようにしたり、設定変更状態や設定確認中に表示されるようにしたり、電源投入後から所定期間のみ表示されるようにしたりしても良い。また、所定期間毎に自動で切り替わるのではなく、所定の操作がされる毎に表示内容が切り替わるようにしても良い。
また、本実施例では、遊技機情報表示器50の表示内容を算出するために用いるデータ異常が判定されたことや表示内容を算出するためのデータが不十分な期間であることが遊技機情報表示器50を用いて報知される構成であるが、その旨を特定可能なコマンドをサブ制御部91に送信し、サブ制御部91が制御する表示器や演出装置にて確認できるようにしても良い。
また、本実施例では、過去6000ゲーム間の有利区間割合、総累計ゲーム数に対する有利区間割合、過去6000ゲーム間の連役払出比率、過去6000ゲーム間の役物払出比率、過去6000ゲーム間の有利区間払出比率、総累計払出数に対する連役払出比率、総累計払出数に対する役物払出比率、総累計払出数に対する有利区間払出比率が、遊技機情報表示器50に表示される構成であるが、これらの表示に加えて設定変更によってRAM41cが初期化されたこと、スロットマシン1に設けられた配線(バックアップ電源の配線等)の断線検出があったときなどに、その旨が認識可能となる内容が遊技機情報表示器50に表示されるようにしても良い。
特に、ボーナス中、有利区間中やボーナスの持越中に設定変更がされてボーナスや有利区間が強制的に終了されたり、持越中のボーナスがクリアされた場合、ボーナスの持越中のままゲームが規定数以上行われたり、故意に有利区間を終了させる操作が行われたりしたこと(例えば、AT中のRT2、RT3において、故意にRT1移行再遊技やSBを入賞させたり、特定図柄を停止させてRT1に移行させる操作が行われる場合、すなわち故意に遊技者にとって相対的に有利な遊技状態から不利な遊技状態に移行された場合等)を検出した場合、及び、遊技機情報表示器50が断線等が生じたことにより正常に接続されていない可能性を検出した場合には、その旨を特定可能に報知する。このようにすることで、有利区間割合、役物払出比率、連役払出比率、有利区間払出比率等として正しい情報が表示されないように不正に操作された可能性があることを認識することができる。
また、後述するように総累計データのオーバーフローを回避する処理において、当該総累計データ等を初期化した場合には、その旨を特定可能に、上述のように有利区間割合、役物払出比率、連役払出比率、有利区間払出比率等として正しい情報が表示されないように不正に操作された可能性がある場合とは異なる態様で、報知することが好ましく、このようにすることで、オーバーフローを回避する処理より総累計データが初期化されたことを、有利区間割合等として正しい情報が表示されないようにするための不正な操作による初期化とは、別に認識させることができる。
尚、上述のように有利区間割合、役物払出比率、連役払出比率、有利区間払出比率等として正しい情報が表示されないように不正に操作された可能性がある場合には、その旨を検出して当該検出の履歴をメイン制御部41側で記録し、当該検出時には報知することなく、その後、所定の操作(例えば、スタートスイッチ7やストップスイッチ8L、8C、8R、設定キースイッチ37等のスイッチ類を所定の手順で操作すること、遊技制御基板40に検査用端末等の所定の外部機器を接続すること等)が行われることで、これらの履歴を、メイン制御部41側に設けられた表示器(例えば、遊技機情報表示器50等)やサブ制御部91側に設けられた表示器(例えば、液晶表示器51等)、スロットマシン1の外部の表示器等により確認できるようにしても良い。
また、設定変更がされたこと、断線検出がされたこと、遊技機情報表示器50の接続不良が発生して有利区間割合、役物払出比率、連役払出比率、有利区間払出比率等として正しい情報が表示されない可能性があること、上述のように有利区間割合、役物払出比率、連役払出比率、有利区間払出比率等として正しい情報が表示されないように不正に操作された可能性があること、をサブ制御部91が制御する表示器や演出装置にて確認できるようにしても良い。また、ボーナス中、有利区間中やボーナスの持越中に設定変更がされてボーナスや有利区間が強制的に終了されたり、持越中のボーナスがクリアされたこと、有利区間割合、役物払出比率、連役払出比率、有利区間払出比率等として正しい情報が表示されないように不正に操作された可能性があることが検出されたことの履歴をサブ制御部91側で記録し、所定の操作でこれらの履歴を確認できるようにしても良い。
次に、メイン制御部41が、これらの情報を表示するためのデータの集計、計算方法について説明する。
メイン制御部41は、上述の有利区間割合等のスロットマシン1に関する情報を集計して計算し、当該計算結果に基づく情報を、遊技制御基板40に搭載された遊技機情報表示器50に表示させる処理として遊技機情報表示処理を実行することが可能である。遊技機情報表示処理を行うためのプログラムは、前述の非遊技プログラムに含まれており、遊技機情報表示処理を実行する際にメイン制御部41が用いる各種データは、ROM41bの非遊技データ領域に記憶されている。また、メイン制御部41は、当該遊技機情報表示処理を実行する際に、RAM41cの非遊技RAM領域をワークとして使用するようになっている。尚、メイン制御部41が遊技機情報表示処理を実行する際に使用する当該非遊技RAM領域は、バックアップ電源によりバックアップされており、スロットマシン1への電力供給が停止しても、バックアップ電源により電力が供給される限り当該非遊技RAM領域の記憶内容が保存されるようになっている。また、メイン制御部41は、上述のように設定値を変更する操作が行われることで、RAM41cの遊技RAM領域に記憶されているデータは初期化されることとなるが、遊技機情報表示処理を実行する際に使用する当該非遊技RAM領域は、設定値を変更する操作が行われる際や他の遊技RAM領域について初期化条件が成立した際にも、初期化対象とされないようになっており、特に、上述の有利区間割合等のスロットマシン1に関する情報を集計し、計算し、表示させるためのデータが初期化されることがないようになっている。
[遊技機情報表示器に表示されるデータの集計方法について]
図33に示すように、メイン制御部41のRAM41cにおける非遊技RAM領域の所定領域には、スロットマシン1において行われたゲーム回数を計数可能なゲーム回数カウンタ、1ゲーム毎に1加算され、特定期間(本実施例では、6000ゲーム)が経過する毎に初期化される第1のゲーム数カウンタ、1ゲーム毎に1加算され、特定期間(本実施例では、6000ゲーム)を所定数(本実施例では、15)で分割した所定期間(本実施例では、400ゲーム)が経過する毎に初期化される第2のゲーム数カウンタ、1ゲーム毎に1加算されるが初期化されることがない第3のゲーム数カウンタが設けられている。また、1セット分のデータを計数可能な第1~第5のデータ計数バッファ、1セットで2バイトのデータを格納可能なバッファが15セット設けられている第1~第5のリングバッファが設定されている。
メイン制御部41は、第1~第5のデータ計数バッファ及び第1~第5のリングバッファを用いて、特定期間(本実施例では、6000ゲーム)において付与されたメダルの総枚数である総払出枚数、特定期間(本実施例では、6000ゲーム)においてBBまたはRBに制御されている期間に付与されたメダルの枚数である役物払出枚数、特定期間(本実施例では、6000ゲーム)においてBBに制御されている期間に付与されたメダルの枚数である連役払出枚数、特定期間(本実施例では、6000ゲーム)においてATに制御される有利区間(ATに当選した後、ATに制御されてからATの残りゲーム数が0となりATの制御が終了されるまでの期間)において付与されたメダルの枚数である有利区間払出枚数、特定期間(本実施例では、6000ゲーム)においてATに制御される有利区間(ATに当選した後、ATに制御されてからATの残りゲーム数が0となりATの制御が終了されるまでの期間)のゲーム数である遊技区間ゲーム回数を計数することが可能である。
具体的には、メイン制御部41は、小役の入賞に伴いメダルの払い出しが行われた場合には、第1のデータ計数バッファに、払い出されたメダルの枚数を加算し、BBまたはRBに制御されている期間において、小役の入賞に伴いメダルが払出された際に、当該払い出されたメダルの枚数を第2のデータ計数バッファに加算し、BBに制御されている期間において、小役の入賞に伴いメダルが払出された際に、当該払い出されたメダルの枚数を第3のデータ計数バッファに加算し、ATに制御される有利区間(ATに当選した後、ATに制御されてからATの残りゲーム数が0となりATの制御が終了されるまでの期間)において、小役の入賞に伴いメダルが払出された際に、当該払い出されたメダルの枚数を第4のデータ計数バッファに加算し、ATに制御される有利区間(ATに当選した後、ATに制御されてからATの残りゲーム数が0となりATの制御が終了されるまでの期間)においてゲームが行われた際に、第5のデータ計数バッファに1ゲームを加算する。尚、本実施例では、メイン制御部41は、小役入賞の発生が判定されたタイミングで、第1~第4のデータ計数バッファにメダル数を加算する構成であるが、第1~第4のデータ計数バッファにメダル数が加算されるタイミングは、小役入賞の発生により実際にメダルが付与されたタイミング(クレジットの加算または実際のメダルの払出の検出)でも良い。
そして、第2のゲーム数カウンタに基づいて、所定期間が経過したことが特定される毎に、第1~第5のリングバッファの所定のセットのバッファ(前回更新されたセット+1セット目のバッファ、初回または前回更新されたセットが15セット目の場合は1セット目のバッファ)を初期化し、第1~第5のデータ計数カウンタ値を、第1~第5のリングバッファの所定のセットのバッファに加算するとともに、第1~第5のデータ計数バッファ値を、RAM41cの非遊技RAM領域に設けられた3バイトの集計データ領域A’~D’、F’にそれぞれ加算する。また、RAM41cの非遊技RAM領域に設けられた3バイトの集計データ領域a’~d’、f’を初期化し、第1~第5のリングバッファの1セット目から15セット目までの全てのセットのバッファのデータを、対応する集計データ領域a’~d’、f’に順次加算する。その後、第1~第5のデータバッファを初期化する。また、集計データ領域E’を第3のゲーム数カウンタの値に更新する。
これらの処理を行うことにより、所定期間毎に、第1~第5のリングバッファの所定のセットのバッファのデータ、集計データ領域a’~d’、f’、A’~F’がそれぞれ最新の情報に更新されることとなる。
また、メイン制御部41は、所定期間が経過したことが特定される毎に、集計データ領域a’~d’、A’~D’をそれぞれ最新の情報に更新した後、当該集計データ領域のうち集計データ領域a’、A’に設定されているデータが3バイトに達しているか否かを判定して、3バイトに達していないデータについては、当該集計データ領域a’、A’のデータをRAM41cの非遊技RAM領域に設けられた2バイトの二次演算データ領域a、Aに設定する。一方、3バイトに達しているデータについて所定の16ビット分のデータを抽出する抽出処理を行い、抽出されたデータを対応する二次演算データ領域a、Aに設定する。図34(a)に示すように、抽出処理では、集計データ領域のデータを参照して、最上位の位を特定し、当該最上の位を示す最上位データをRAM41cの非遊技RAM領域の所定領域に設定する。そして、当該最上位の位以下の16ビットのデータを抽出する。
また、当該集計データ領域のうちb’~d’については、集計データ領域b’~d’のデータにそれぞれ100を乗算した値を、RAM41cの非遊技RAM領域に設けられた3バイトの一次演算データ領域b”~d”にそれぞれ設定する。その後、集計データ領域aについて抽出処理が行われたか否かを参照し、集計データ領域aについて抽出処理が行われていない場合には、当該集計データ領域b”~d”のデータをRAM41cの非遊技RAM領域に設けられた2バイトの二次演算データ領域b~dに設定する。一方、集計データ領域aについて抽出処理が行われている場合には、抽出処理を行い、集計データ領域aの抽出処理において特定された最上位を特定し、当該最上位以下の16ビット分のデータを抽出して、二次演算データ領域b~dに設定する。
また、当該集計データ領域のうちB’~D’については、集計データ領域B’~D’のデータにそれぞれ100を乗算した値を、RAM41cの非遊技RAM領域に設けられた3バイトの一次演算データ領域B”~D”にそれぞれ設定する。その後、集計データ領域Aについて抽出処理が行われたか否かを参照し、集計データ領域Aについて抽出処理が行われていない場合には、当該集計データ領域B”~D”のデータをRAM41cの非遊技RAM領域に設けられた2バイトの二次演算データ領域B~Dに設定する。一方、集計データ領域Aについて抽出処理が行われている場合には、抽出処理を行い、集計データ領域Aの抽出処理において特定された最上位を特定し、当該最上位以下の16ビット分のデータを抽出して、二次演算データ領域B~Dに設定する。
そして、メイン制御部41は、二次演算データ領域bのデータを、二次演算データ領域aのデータで除算することで、特定期間(本実施例では、6000ゲーム)における総払出枚数の割合を算出し、二次演算データ領域cのデータを、二次演算データ領域aのデータで除算することで、特定期間(本実施例では、6000ゲーム)における役物出枚数の割合を算出し、二次演算データ領域cのデータを、二次演算データ領域aのデータで除算することで、特定期間(本実施例では、6000ゲーム)における連役出枚数の割合を算出し、二次演算データ領域dのデータを、二次演算データ領域aのデータで除算することで、特定期間(本実施例では、6000ゲーム)における有利区間払出枚数の割合を算出する。
また、二次演算データ領域Bのデータを、二次演算データ領域Aのデータで除算することで、スロットマシン1における累計の総払出枚数の割合を算出し、二次演算データ領域Bのデータを、二次演算データ領域Aのデータで除算することで、スロットマシン1における累計の役物出枚数の割合を算出し、二次演算データ領域Cのデータを、二次演算データ領域Aのデータで除算することで、スロットマシン1における累計の連役出枚数の割合を算出し、二次演算データ領域Dのデータを、二次演算データ領域Aのデータで除算することで、スロットマシン1における累計の有利区間払出枚数の割合を算出する。
また、メイン制御部41は、所定期間が経過したことが特定される毎に、集計データ領域f’、E’、F’をそれぞれ最新の情報に更新した後、当該集計データ領域のうち集計データ領域E’に設定されているデータが3バイトに達しているか否かを判定して、3バイトに達していない場合には、当該集計データ領域E’のデータをRAM41cの非遊技RAM領域に設けられた2バイトの二次演算データ領域Eに設定する。一方、3バイトに達している場合には抽出処理を行い、抽出されたデータを対応する二次演算データ領域Eに設定する。図34(b)に示すように、抽出処理では、集計データ領域のデータを参照して、最上位の位を特定し、当該最上の位を示す最上位データをRAM41cの非遊技RAM領域の所定領域に設定する。そして、当該最上位の位以下の16ビットのデータを抽出する。
また、当該集計データ領域f’については、集計データ領域f’のデータに100を乗算した値を、RAM41cの非遊技RAM領域に設けられた3バイトの一次演算データ領域f”に設定する。その後、集計データ領域f”に設定されているデータが3バイトに達しているか否かを判定して、3バイトに達していない場合には、当該集計データ領域f”のデータをRAM41cの非遊技RAM領域に設けられた2バイトの二次演算データ領域fに設定する。一方、3バイトに達している場合には抽出処理を行い、抽出されたデータを対応する二次演算データ領域fに設定する。
また、集計データ領域fについて抽出処理が行われたか否かを参照し、集計データ領域fについて抽出処理が行われていない場合には、所定期間のゲーム数である6000をRAM41cの非遊技RAM領域に設けられた2バイトの二次演算データ領域gに設定する。一方、集計データ領域fについて抽出処理が行われている場合には、所定期間のゲーム数である6000について抽出処理を行い、集計データ領域fの抽出処理において特定された最上位を特定し、当該最上位以下の16ビット分のデータを抽出して、二次演算データ領域gに設定する。
また、当該集計データ領域F’については、集計データ領域F’のデータに100を乗算した値を、RAM41cの非遊技RAM領域に設けられた3バイトの一次演算データ領域F”に設定する。その後、集計データ領域Eについて抽出処理が行われたか否かを参照し、集計データ領域Eについて抽出処理が行われていない場合には、当該集計データ領域F”のデータをRAM41cの非遊技RAM領域に設けられた2バイトの二次演算データ領域Fに設定する。一方、集計データ領域Eについて抽出処理が行われている場合には、抽出処理を行い、集計データ領域Eの抽出処理において特定された最上位を特定し、当該最上位以下の16ビット分のデータを抽出して、二次演算データ領域Fに設定する。
そして、メイン制御部41は、二次演算データ領域Fのデータを、二次演算データ領域Eのデータで除算することで、スロットマシン1における総累計のゲーム数における有利区間ゲーム回数の割合を算出し、二次演算データ領域fのデータを、二次演算データ領域gで除算することで、所定期間における有利区間ゲーム回数の割合を算出する。
メイン制御部41は、所定時間毎に、二次演算データ領域の該当領域を参照して、所定期間の総払出枚数の割合、総累計の総払出枚数の割合、所定期間の連役払出枚数の割合、所定期間の役物払出枚数の割合、所定期間の有利区間払出枚数の割合、総累計の連役払出枚数の割合、総累計の役物払出枚数の割合、総累計の有利区間払出枚数の割合を特定して、遊技機情報表示器50の出力バッファに設定することで、遊技機情報表示器50に表示させる。
メイン制御部41は、所定期間が経過したときに、第1~第5リングバッファのデータに基づいて二次演算データを算出する、すなわち所定期間が経過する毎に、二次演算データを更新するので、所定期間が経過するまでは前回算出された二次演算データが維持され、当該二次演算データに基づいて、遊技機情報表示器50に総払出枚数等を表示させるので、前回の所定期間が経過した後、次の所定期間が経過するまでは、前回の所定期間が経過したときの、総払出枚数等が遊技機情報表示器50に表示されることとなる。
尚、所定時間毎に、上述の総払出枚数等に加えて、所定期間の有利区間ゲーム回数、累計の有利区間ゲーム回数を特定して、遊技機情報表示器50の出力バッファに設定することで、遊技機情報表示器50に表示させる構成としても良い。
また、本実施例では、3バイトからなる総累計データがオーバーフローし得る場合、すなわち総支払枚数等のデータが3バイト以上の数値に達し得る場合には、オーバーフローを回避する処理を実行して、一度関連するデータを消去する。
詳しくは、総累計データが予め定められた規定数に達したときに、当該規定数に達した総累計データ及び当該総累計データに関連するデータを初期化する。この際、規定数に達した総累計データに関連するデータは、演算に用いられる全てのデータ(本実施例では、総支払枚数、役物払出枚数、連役払出枚数、ゲーム回数、有利区間ゲーム回数の集計データの全て)を初期化するようにしても良いし、相対的に関連性の高い一部データ(例えば、総累計データとして総払出枚数の集計データA’が規定数に達した場合には、連役払出比率、役物払出比率、有利区間払出比率の演算の際に集計データA’とともに用いられる連役払出枚数の集計データB’比率、役物払出枚数の集計データC’、有利区間払出枚数の集計データD’、総累計データとしてゲーム数の集計データE’が規定数に達した場合には、有利区間割合(F/E)の演算の際に集計データE’とともに用いられる有利区間ゲーム回数の集計データF’)を初期化するようにしても良い。
尚、総累計データが予め定められた規定数に達したときに、当該規定数に達した総累計データ及び当該総累計データに関連するデータを、所定の比率で減少させる(例えば、総累計データを現在の値を0.5倍する等)ことで、総累計データのオーバーフローを回避するようにしても良く、この際に、規定数に達した総累計データ及び当該総累計データに関連するデータの全てのデータを所定の比率で減少させるようにしても良いし、規定数に達した総累計データ及び当該総累計データと相対的に関連性の高い一部データを所定の比率で減少させるようにしても良い。
また、総累計データが予め定められた規定数に達したときに、当該規定数に達した総累計データ及び当該総累計データに関連するデータを初期化または減少等する場合において、総累計データの規定数は、総累計データの最大値(RAM41cの各集計データ領域(3バイト)に格納可能な値の最大値)であっても良いし、総累計データの最大値よりも小さな所定の値(3バイト内で切りの良い値、例えば、「16000000(10進数)」等)であっても良い。
また、本実施例では、3バイトからなる総累計データがオーバーフローし得る場合、すなわち総支払枚数等のデータが3バイト以上の数値に達し得る場合には、オーバーフローを回避する処理として、一度関連するデータを消去する構成であるが、関連するデータを消去せずに、計数を停止する構成であっても良い。
また、これら遊技機情報表示器50に表示されるデータは、1ゲーム毎に実施するようにしても良いし、入賞が発生したゲームだけ実施するようにしても良い。
遊技機に用いられるマイクロコンピュータは小数点以下の演算を行うことができないため、本実施例では、以下の第1の演算方法を用いて演算を行っている。第1の演算方法においては、まず、分子の値を100倍する。そしてこの100倍した値を分母の値で除算する。これにより小数点以下の演算を行うことなく割合を算出することができる。つまり、被除数を100倍することにより、小数点以下2桁までの演算結果を求められるようにしている。ここで、小数点以下3桁までの演算結果を求める場合1000倍すれば良い。
尚、小数点以下の演算を行うことができないマイクロコンピュータが行う演算方法としては、以下の第2の演算方法を用いても良い。第2の演算方法では、まず、分母の値を100で除算する。そしてこの100で除算した値で分子の値を除算する。これにより小数点以下の演算を行うことなく割合を算出することができる。つまり、除数を100で除算することにより、小数点以下2桁までの演算結果を求められるようにしている。ここで、小数点以下3桁までの演算結果を求める場合1000で除算すれば良い。
また、遊技機に用いられるマイクロコンピュータは最大2バイトの値同士の演算しか行うことができない。従って、本実施例では、演算を容易にするために、下位ビットを必要に応じて切り捨てるようになっている。このような演算方法を用いることで遊技機において用いられるマイクロコンピュータでの演算が容易になる一方で誤差が生じる。ただし、算出するための期間が長くなることにより誤差は縮小され、本来の数値に近似することとなる。このため、本実施例では、演算の対象となる値が2バイト以下の場合には、下位ビットを切り捨てることなく、そのままの値を用いて演算を行い、演算の対象となる値が2バイトを超える場合に、下位ビットを切り捨てた値を用いて演算を行うようになっている。
従来のスロットマシンでは、予め定められた設計値に基づいて遊技者にとって有利な状態に制御されるようになっている。
しかしながら、このような従来の方法では、遊技店に設置された後は、予め定められた設計値に基づいて有利な状態に制御されているか否かを確認することが困難であった。
これに対して本実施例では、特定期間(過去6000ゲーム間、工場出荷時または何らかの原因でRAM41cのデータが初期化されてから現在までの期間)において付与されたメダルの総数に占める特定期間における有利期間(BB、RB、有利区間)において付与されたメダルの総数の割合である連役払出比率、役物払出比率、有利区間払出比率が算出され、遊技機情報表示器50に表示されるので、スロットマシン1が市場に出荷された後も予め定められた設計値に基づいて有利な状態に制御されているか否かを確認することができる。
また、本実施例では、特定期間(過去6000ゲーム間、工場出荷時または何らかの原因でRAM41cのデータが初期化されてから現在までの期間)において有利期間(有利区間)に制御されたゲーム数の割合である有利区間比率が算出され、遊技機情報表示器50に表示されるので、市場に出荷された後も射幸性の度合いとなる情報を確認することができる。
尚、本実施例では、特定期間(過去6000ゲーム間、工場出荷時または何らかの原因でRAM41cのデータが初期化されてから現在までの期間)において有利区間に制御されたゲーム数の割合である有利区間比率が算出され、遊技機情報表示器50に表示される構成であるが、特定期間(過去6000ゲーム間、工場出荷時または何らかの原因でRAM41cのデータが初期化されてから現在までの期間)においてBB、RB等のボーナスに制御されたゲーム数の割合が算出され、遊技機情報表示器50に表示される構成としても良く、このような構成でも市場に出荷された後も射幸性の度合いとなる情報を確認することができる。
また、本実施例では、特定期間(過去6000ゲーム間、工場出荷時または何らかの原因でRAM41cのデータが初期化されてから現在までの期間)の連役払出比率、役物払出比率、有利区間払出比率を算出する際に、これらの元となるデータが所定条件を満たすか否かに応じて異なる算出方法により連役払出比率、役物払出比率、有利区間払出比率を算出するので、これらの元となるデータに合わせて最適な算出方法を選択することができる。例えば、特定期間における払出総数、特定期間の有利区間における払出総数が、2バイト以内であれば、算出の元となるデータを加工することなくそのまま用いて連役払出比率、役物払出比率、有利区間払出比率を算出する一方、特定期間における払出総数、特定期間の有利区間における払出総数が、2バイトを超える場合であれば、算出の元となるデータを2バイト以内のデータに加工してから連役払出比率、役物払出比率、有利区間払出比率を算出することで、誤差の少ない最適な算出方法にて連役払出比率、役物払出比率、有利区間払出比率を算出することができる。
尚、本実施例では、第1の期間(過去6000ゲーム間)において付与されたメダルの総数に占める第1の期間における有利期間(BB、RB、有利区間)において付与されたメダルの総数の割合である連役払出比率、役物払出比率、有利区間払出比率、第2の期間(工場出荷時または何らかの原因でRAM41cのデータが初期化されてから現在までの期間)において付与されたメダルの総数に占める第2の期間における有利期間(BB、RB、有利区間)において付与されたメダルの総数の割合である連役払出比率、役物払出比率、有利区間払出比率が算出され、それぞれ遊技機情報表示器50に表示されるとともに、第1の期間における連役払出比率、役物払出比率、有利区間払出比率を算出する場合にも、第2の期間における連役払出比率、役物払出比率、有利区間払出比率を算出する場合にも、共通の算出方法により連役払出比率、役物払出比率、有利区間払出比率が算出される構成であるが、第1の期間における連役払出比率、役物払出比率、有利区間払出比率を算出する方法と、第2の期間における連役払出比率、役物払出比率、有利区間払出比率を算出する方法とが異なる構成としても良い。例えば、上記の例では、連役払出比率、役物払出比率、有利区間払出比率を算出するにあたり、分子を100倍して結果が%となるようにしているが、分母を1/100倍して結果が%となるようにすると、第1の期間における総払出枚数は、2バイト以内に収めることができる。このような構成においては、第1の期間における連役払出比率、役物払出比率、有利区間払出比率を算出する場合には、算出の元となるデータを加工することなくそのまま用いて連役払出比率、役物払出比率、有利区間払出比率を算出する一方、第2の期間における連役払出比率、役物払出比率、有利区間払出比率を算出する場合には、算出の元となるデータを2バイト以内のデータに加工してから連役払出比率、役物払出比率、有利区間払出比率を算出することで、用いるデータの容量に応じて最適な方法で連役払出比率、役物払出比率、有利区間払出比率を算出することができるようになる。
また、本実施例では、特定期間(過去6000ゲーム間、工場出荷時または何らかの原因でRAM41cのデータが初期化されてから現在までの期間)の連役払出比率、役物払出比率、有利区間払出比率を算出する際に用いるデータが、特定期間における総払出枚数、特定期間における有利区間の総払出枚数とは別個に記憶されるので、特定期間の連役払出比率、役物払出比率、有利区間払出比率を簡単な手順で算出することができる。
また、本実施例では、特定ゲーム数(6000ゲーム)の期間における連役払出比率、役物払出比率、有利区間払出比率を算出するにあたり、特定ゲーム数を所定数(15)で分割した所定ゲーム数(400ゲーム)の期間の総払出枚数、所定ゲーム数の期間の役物払出枚数、所定ゲーム数の期間の連役払出枚数、所定ゲーム数の期間の有利区間払出枚数をそれぞれ記憶する15セットのバッファからなるリングバッファを備え、これらリングバッファに記憶された総払出枚数、役物払出枚数、連役払出枚数、有利区間払出枚数をそれぞれ合算することで、特定ゲーム数の期間における総払出枚数、役物払出枚数、連役払出枚数、有利区間払出枚数を算出し、特定ゲーム数(6000ゲーム)の期間における連役払出比率、役物払出比率、有利区間払出比率を算出するようになっており、直近の特定ゲーム数における連役払出比率、役物払出比率、有利区間払出比率を容易に算出することができる。
また、本実施例では、特定ゲーム数(6000ゲーム)の期間における有利区間割合を算出するにあたり、特定ゲーム数を所定数(15)で分割した所定ゲーム数(400ゲーム)の期間の有利区間のゲーム数をそれぞれ記憶する15セットのバッファからなるリングバッファを備え、これらリングバッファに記憶された有利区間のゲーム数を合算することで、特定ゲーム数の期間における有利区間のゲーム数を算出し、特定ゲーム数(6000ゲーム)の期間における有利区間のゲーム数を算出するようになっており、直近の特定ゲーム数における有利区間のゲーム数を容易に算出することができる。
また、本実施例では、遊技制御基板40は、透明な樹脂を成形した基板ケース120aに収容された状態で筐体1aに取り付けられており、遊技機情報表示器50は、遊技制御基板40が基板ケース120aに収容され、筐体1aに取り付けられた状態で、基板ケース120aを介してその表示内容を視認できるようなっている。また、基板ケース120aは、遊技制御基板40を収容した後封止されるようになっており、封止された状態では、痕跡を残すことなく封止を解除して開放することができないようになっている。このため、遊技機情報表示器50に不正な細工がされることを防止できる。
また、本実施例では、RAM41cに遊技の進行に応じたデータが記憶される遊技RAM領域と、遊技機情報表示器50に役払出比率、役物払出比率、有利区間払出比率等を表示するために用いられるデータが記憶される非遊技RAM領域と、を備え、設定変更状態への移行等によりRAM41cの初期化条件が成立した場合に、遊技RAM領域のデータは初期化される一方、非遊技RAM領域のデータは初期化されないので、初期化条件が成立した場合でも、それ以前のデータを加味して役払出比率、役物払出比率、有利区間払出比率等を算出して表示することができる。
本実施例では、メイン制御部41により、特定期間(過去6000ゲーム間、工場出荷時または何らかの原因でRAM41cのデータが初期化されてから現在までの期間)において付与されたメダルの総数に占める特定期間における有利期間(BB、RB、有利区間)において付与されたメダルの総数の割合である連役払出比率、役物払出比率、有利区間払出比率を算出し、遊技制御基板40に搭載された遊技機情報表示器50に表示させる構成であり、遊技機情報表示器50は、遊技制御基板40が基板ケース120aに封入されている状態で、当該基板ケース120aの外部から表示内容を視認可能となっているとともに、遊技制御基板40に封入された基板ケース120aは、筐体1aの内部に配置されるようになっており、筐体1aの内部は、遊技機情報表示器50の視認性を妨げないように構成されているため、スロットマシン1の前面扉1bを開放するだけで遊技機情報表示器50の表示を確認することが可能であり、遊技機情報表示器50の表示に基づいて、設計値に基づいて有利な状態に制御されているか否かを容易に確認することができる。
本実施例では、メイン制御部41により、特定期間(過去6000ゲーム間、工場出荷時または何らかの原因でRAM41cのデータが初期化されてから現在までの期間)において付与されたメダルの総数に占める特定期間における有利期間(BB、RB、有利区間)において付与されたメダルの総数の割合である連役払出比率、役物払出比率、有利区間払出比率を算出し、遊技制御基板40に搭載された遊技機情報表示器50に表示させる構成であり、ボーナス中、有利区間中やボーナスの持越中に設定変更がされてボーナスや有利区間が強制的に終了されたり、持越中のボーナスがクリアされたり、ボーナスの持越中のままゲームが規定数以上行われたり、故意に有利区間を終了させる操作が行われたり、遊技機情報表示器50に接続不良が生じたりしたこと、すなわち有利区間割合、役物払出比率、連役払出比率、有利区間払出比率等として正しい情報が表示されないように不正に操作された可能性があることを検出するようになっており、有利区間割合、役物払出比率、連役払出比率、有利区間払出比率等として正しい情報が遊技機情報表示器50により適正に表示されなくなる可能性のある事象が発生したことが検知されるので、これらの情報が適正に表示されないようにする不正を防止できる。
本実施例では、メイン制御部41により、特定期間(過去6000ゲーム間、工場出荷時または何らかの原因でRAM41cのデータが初期化されてから現在までの期間)において付与されたメダルの総数に占める特定期間における有利期間(BB、RB、有利区間)において付与されたメダルの総数の割合である連役払出比率、役物払出比率、有利区間払出比率を算出し、遊技制御基板40に搭載された遊技機情報表示器50に表示させる構成であり、連役払出比率、役物払出比率、有利区間払出比率を算出する際に用いる総支払枚数等のデータが3バイト以上の数値に達する場合には、オーバーフローを回避する処理を実行して、一度関連するデータを消去することで、連役払出比率、役物払出比率、有利区間払出比率を算出する際に用いる総支払枚数等のデータが上限値を超えることが回避されるため、連役払出比率等を算出する際に用いる総支払枚数等のデータが上限値を超えてしまう状況に至っても、連役払出比率、役物払出比率、有利区間払出比率を算出して、これらの情報を遊技機情報表示器50に表示させることができる。
本実施例では、メイン制御部41により、特定期間(過去6000ゲーム間、工場出荷時または何らかの原因でRAM41cのデータが初期化されてから現在までの期間)において付与されたメダルの総数に占める特定期間における有利期間(BB、RB、有利区間)において付与されたメダルの総数の割合である連役払出比率、役物払出比率、有利区間払出比率を算出し、遊技制御基板40に搭載された遊技機情報表示器50に表示させる構成であり、メイン制御部41は、遊技機情報表示器50において連役払出比率、役物払出比率、有利区間払出比率等の情報を、所定の表示順にて周期的(本実施例では、30秒毎)に切り替えて表示するようになっており、これら連役払出比率等の表示が一巡し終えるまでの一の期間内においては、これらの値が新たな値に更新され得る場合であっても、新たな値に更新することを制限して、元の値を用いて表示を一巡させるので、遊技機情報表示器50において連役払出比率等の多くの情報を効率良く表示することができるとともに、一の周期で表示される複数種類の情報として同時期に更新された情報が表示されるので、一の周期中に異なる時期の情報が混在してしまうことを防止できる。
本実施例では、メイン制御部41により、特定期間(過去6000ゲーム間、工場出荷時または何らかの原因でRAM41cのデータが初期化されてから現在までの期間)において付与されたメダルの総数に占める特定期間における有利期間(BB、RB、有利区間)において付与されたメダルの総数の割合である連役払出比率、役物払出比率、有利区間払出比率を算出し、遊技制御基板40に搭載された遊技機情報表示器50に表示させる構成であり、メイン制御部41は、過去6000ゲーム間の有利区間割合、総累計ゲーム数に対する有利区間割合、過去6000ゲーム間の連役払出比率、過去6000ゲーム間の役物払出比率、過去6000ゲーム間の有利区間払出比率、総累計払出数に対する連役払出比率、総累計払出数に対する役物払出比率、総累計払出数に対する有利区間払出比率を算出するために用いるデータが正常か否かを判定し、これらのデータの少なくともいずれかに異常と判定された場合には、異常と判定されたデータ及び当該データに関連するデータを初期化し、異常が検知された旨の表示(例えば、「FFFF」)を遊技機情報表示器50にさせて、その旨を報知するようになっているので、有利区間割合等を算出するのに必要なデータが初期化されたことで、これらのデータの算出が正常に行われておらず、有利区間割合等が正常な値ではない可能性を認識させることができる。
尚、メイン制御部41は、RAM41cの異常が検出された場合には、過去6000ゲーム間の有利区間割合、総累計ゲーム数に対する有利区間割合、過去6000ゲーム間の連役払出比率、過去6000ゲーム間の役物払出比率、過去6000ゲーム間の有利区間払出比率、総累計払出数に対する連役払出比率、総累計払出数に対する役物払出比率、総累計払出数に対する有利区間払出比率を算出するために用いるデータが記憶される非遊技RAM領域を初期化する構成としても良く、このような構成とすることで、これらのデータのうち異常が生じているデータを特定せずに、簡素な処理で、これらのデータを新たに算出させることができる。
本実施例では、メイン制御部41により、特定期間(過去6000ゲーム間、工場出荷時または何らかの原因でRAM41cのデータが初期化されてから現在までの期間)において付与されたメダルの総数に占める特定期間における有利期間(BB、RB、有利区間)において付与されたメダルの総数の割合である連役払出比率、役物払出比率、有利区間払出比率を算出し、遊技制御基板40に搭載された遊技機情報表示器50に表示させる構成であり、メイン制御部41は、ゲームの進行に応じて小役入賞の発生が判定されたタイミング、すなわち、メダルが払い出される小役の図柄組合せリールに停止されたときに、メダルが実際に払い出されて、払い出しが完了するのを待つことなく、データ計数バッファにメダル数を加算するので、小役の入賞に伴う払い出しが完了するのを待つことなく連役払出比率、役物払出比率、有利区間払出比率の算出に用いられるデータを更新することができる。
尚、本実施例では、メイン制御部41は、ゲームの進行に応じて小役入賞の発生が判定されたタイミングで、データ計数バッファにメダル数を加算する構成であるが、データ計数バッファにメダル数が加算されるタイミングは、小役入賞の発生により実際にメダルが付与されたタイミング(クレジットの加算または実際のメダルの払出の検出)とする構成であっても良く、このような構成とすることで、メダルが払い出される小役の図柄組合せリールに停止されたときに、メダルが実際に払い出されて、払い出しが完了してから、連役払出比率、役物払出比率、有利区間払出比率の算出に用いられるデータを更新することができる。
以上、本発明の実施例2を説明してきたが、本発明はこの実施例2に限定されるものではなく、本発明の主旨を逸脱しない範囲における変更や追加があっても本発明に含まれることは言うまでもない。また、実施例1と同一もしくは類似する構成については、実施例1で説明したものと同様の効果を有するものである。また、実施例1について例示した変形例についても実施例2に適用可能である。