本明細書において、用語の意味は、以下の通りである。
「遊技媒体」とは、遊技の用に供する媒体をいい、本実施形態では「メダル」である。ただしこれに限らず、遊技球を使用することも可能である。また、遊技媒体には、実際のメダルの他に、遊技機内部に電気的に貯留(クレジット、記憶)された遊技媒体(遊技媒体に係るデータ)も含まれる。
「ベット」とは、遊技を行うためにメダル(遊技媒体)を賭けることをいう。本実施形態において、ベット可能な最大(限界)枚数は、通常遊技(非特別遊技)では「3」枚に設定され、特別遊技(本実施形態では1BB遊技)では「2」枚に設定されている。ただし、これに限らず、「1」枚の場合を設定してもよい。たとえばSB(シングルボーナス)を設けたときは、通常遊技では「3」枚に設定し、SB遊技中は「1」枚に設定すること等が挙げられる。
「貯留」とは、上記「ベット」とは異なり、スロットマシン10内部にメダルをクレジットすることをいう。「貯留」は、ベットを含む意味で用いられる場合もあるが、本明細書では、「貯留」というときは、「ベット」を含まない意味で使用する。本実施形態において、貯留可能な最大(限界)枚数は、遊技状態等にかかわらず、「50」枚に設定されている。
「手入れ」とは、遊技者が、後述するメダル投入口43からメダルを直接投入することをいう。
「手入れベット」とは、遊技者が、メダル投入口43からメダルを手入れすることにより、メダルをベットすることをいう。
「手入れ貯留」とは、遊技者が、メダル投入口43からメダルを手入れすることにより、メダルを貯留する(クレジットを加算する)ことをいう。
「ベットメダル」とは、ベットされているメダルをいう。
「貯留メダル」とは、クレジットとして貯留されているメダルをいう。
「貯留ベット」とは、遊技者が後述するベットスイッチ40を操作することにより、当該遊技でベット可能な範囲内において、クレジットとして貯留されているメダルの一部又は全部を、遊技を行うためにベットすることをいう。
「自動ベット」とは、リプレイが入賞したときに、スロットマシン10の内部制御処理により、前回遊技でベットされていた数のメダルを自動でベットすることをいう。なお、上記の手入れベットしたメダル、貯留ベットしたメダル、及び貯留メダルは、その後に精算可能であるが、リプレイの入賞により自動ベットされたメダルは精算を行うことができないように設定されている。
「投入」とは、上記の手入れベット、手入れ貯留、貯留ベット、及び自動ベットを含み、メダルをベット又は貯留することをいう。
「精算」とは、ベットメダル及び/又は貯留メダルを遊技者に対して払い出すことをいう。
「払出し」とは、上記精算によりメダルを払い出すこと、又は役の入賞に基づきメダルを遊技者に払い出すことをいい、クレジットとして貯留すること、又は払出し口(図示せず)からの実際のメダルを払い出すことをいう。本実施形態における払出しは、「50」枚を限界枚数として貯留し、役の入賞に基づき貯留数が「50」を超えた分のメダルは、遊技者に対して払い出すように制御する。
なお、本明細書において、2進数で表記される8ビットの数値は末尾に「B」を付し、16進数で表記される数値には末尾に「H」を付す。具体的には、たとえば10進数で「16」を示す数値は、2進数では「00010000B」又は「00010000(B)」と表記し、16進数では「10H」又は「10(H)」と表記する。
ただし、8ビットの数値以外の2進数表記については、「B」の末尾は省略する。たとえば、「Aレジスタ値が「0」」のような表記における「0」は、実際には「00000000B」の2進数を意味している。したがって、末尾に「B」を付していない数値は常に2進数でないことを意味するものではない。
以下、図面等を参照して、本発明の一実施形態について説明する。
<第1実施形態>
図1は、本実施形態におけるスロットマシン10の制御の概略を示すブロック図である。
スロットマシン10は、メイン制御基板60とサブ制御基板80とを備える。
メイン制御基板60は、入力ポート(0〜2)及び出力ポート(0〜8)を有し、RWM(メインメモリ)61、ROM62、メインCPU63等を備える(図1で図示したもののみを備える意味ではない)。
なお、実際には、メイン制御基板60上には、RWM61、ROM62、メインCPU63及びレジスタを含むMPUが搭載される。なお、ROM62は、MPU内部に搭載されるもの以外に、外部に備えていてもよい。一方、RWM61は、現行規則により、MPU内部にのみ設けられる。
これに対し、後述するサブ制御基板80上には、RWM81、ROM82、及びメインCPU83を含むMPUが搭載されるとともに、RWM61は、MPUの外部及び外部にそれぞれ備える。
メイン制御基板60と、図1で図示したベットスイッチ40等の操作スイッチを含む遊技進行用の周辺機器とは、入力ポート又は出力ポートを介して電気的に接続されている。入力ポートは、操作スイッチ等の信号が入力される接続部であり、出力ポートは、モータ32等の周辺機器に対して信号を送信する接続部である。
図1において、入力用の周辺機器は、その周辺機器からの信号がメイン制御基板60に向かう矢印で表示しており、出力用の周辺機器は、メイン制御基板60からその周辺機器に向かう矢印で示している(サブ制御基板80も同様である)。
なお、サブ制御基板80と接続されたプッシュボタン25(「プッシュボタンユニット」ともいう。)は、双方向で信号の送受信が可能となっている。具体的には、プッシュボタン25の操作に基づいてサブ制御基板80に操作が行われた旨の信号を送信し、サブ制御基板80からプッシュボタン25に設けられたランプを発光させる。
また、プッシュボタン25を発光させるタイミングとしては、遊技に関する履歴情報(通常遊技の合計実行回数、ATの実行回数等)が表示可能な遊技待機時や、現在出力中の演出が切り替え可能な特定演出を出力しているときのスタートスイッチ41の操作後、リール31の第1停止操作後、等が挙げられる。このとき、発光色は、遊技待機時は「白色」、遊技中はAT当選の期待度に応じて白色、青色、赤色等にすることが考えられる。
RWM(メインメモリ)61は、遊技の進行等に基づいた各種データを記憶(更新)可能な記憶媒体である。
ROM62は、遊技の進行に必要なプログラムや各種データ(たとえば、データテーブル)等を記憶しておく記憶媒体である。
メインCPU63は、メイン制御基板60上に設けられたCPUを指し、遊技の進行に必要なプログラムの実行、演算等を行い、具体的には、役の抽選、リール31の駆動制御、及び入賞時の払出し等を実行する。メインCPU63は、レジスタ(後述)を内蔵する。
図1において、メダル投入口43から投入されたメダルは、メダルセレクタを通過するように構成されている。
メダルセレクタは、図1に示すように、通路センサ43a、ブロッカ45、投入センサ44a及び44bを備え(ただし、これらに限定されるものではない)、メイン制御基板60と電気的に接続されている。
メダル投入口43からメダルが投入されると、最初に、通路センサ43aにより検知されるように構成されている。
さらに、通路センサ43aの下流側には、ブロッカ45が設けられている。ブロッカ45は、メダルの投入を許可/不許可にするためのものであり、メダルの投入が不許可状態のときは、メダル投入口43から投入されたメダルを払出し口14から返却するメダル通路を形成する。これに対し、メダルの投入が許可状態のときは、メダル投入口43から投入されたメダルをホッパー35aに案内するメダル通路を形成する。
ここで、ブロッカ45は、遊技中(リール31の回転開始時から、全リール31が停止し、役の入賞時には入賞役に対応する払出しの終了時まで)は、メダルの投入を不許可状態とする。すなわち、ブロッカ45がメダルの投入を許可するのは、少なくとも遊技が行われていないときである。
ブロッカ45のさらに下流側には、投入センサ44a及び44b(光学センサ)が設けられている。したがって、メダル投入口43から投入されたメダルは、通路センサ43aによって検知された後、さらに、投入センサ44a(上流側)及び44b(下流側)により検知されるように構成されている。なお、図1に示すように、後述する説明においては、上流側の投入センサ44aを投入センサ1、下流側の投入センサ44bを投入センサ2と称する場合もある。
また、図1に示すように、メイン制御基板60には、遊技者が操作する操作スイッチとして、ベットスイッチ40、スタートスイッチ41、(左、中、右)ストップスイッチ42、及び精算スイッチ46が電気的に接続されている。
ベットスイッチ40(40a又は40b)は、貯留されたメダルを当該遊技のためにベットするときに遊技者が操作するスイッチである。本実施形態では、1枚のメダルを投入するための1ベットスイッチ40aと、3枚(最大数)のメダルを投入するための3ベットスイッチ40bとを備える。
さらに、これに限らず、2枚ベット用のベットスイッチを設けてもよい。
また、スタートスイッチ41は、(左、中、右のすべての)リール31を始動させるときに遊技者が操作するスイッチである。
さらにまた、ストップスイッチ42は、3つ(左、中、右)のリール31に対応して3つ設けられ、対応するリール31を停止させるときに遊技者が操作するスイッチである。
さらに、精算スイッチ46は、スロットマシン10内部に貯留(クレジット)されたメダルを払い戻す(ペイアウトする)ときに遊技者が操作するスイッチである。
また、図1に示すように、メイン制御基板60には、表示基板70が電気的に接続されている。なお、実際には、メイン制御基板60と表示基板70との間には、中継基板が設けられ、メイン制御基板60と中継基板、及び中継基板と表示基板70とが接続されているが、図1では中継基板の図示を省略している。このように、メイン制御基板60と表示基板70とは、直接ハーネス等で接続されていてもよいが、両者間に別の基板が介在してもよい。
さらに、制御基板同士が直接(ハーネス等で)接続されていることに限らず、他の別基板(中継基板等)を介して接続されていてもよい。たとえば、メイン制御基板60とサブ制御基板80との間に1つ以上の他の別基板(中継基板等)が介在してもよい。
この表示基板70には、貯留数表示LED71、獲得数表示LED72、及び状態表示LED73が接続されている。これらのLED71〜73は、遊技者が操作する操作スイッチの近傍に設けられ、遊技者が常に視認できる位置に設けられている。なお、1つの表示基板70上にすべてのLED71〜73が設けられている必要はなく、たとえば表示基板70A、70B、・・・のように複数の表示基板70を備え、いずれかの表示基板70にいずれかのLED71〜73が設けられていればよい。
図2は、貯留数表示LED71、獲得数表示LED72、及び状態表示LED73をより詳細に示す平面図である。
また、図2において、これら貯留数表示LED71、獲得数表示LED72、及び状態表示LED73の下側であってスロットマシン10内部に表示基板70(図2中、点線で示す)が配置されている。
貯留数表示LED71は、スロットマシン10内部に貯留されたメダル枚数を表示するLEDであり、上位桁を表示するデジット1と、下位桁を表示するデジット2とから構成されている。すなわち、貯留数表示LED71は、2桁を表示する。
ここで、「デジット」とは、表示部(ディスプレイ)を意味し、特に本実施形態では、セブンセグメントディスプレイ(セブンセグメント表示部、いわゆる7セグ)から構成されている。
なお、図2に示すように、表示基板70上に実装されたデジットはデジット1〜4の4個であるが、本実施形態では5個のデジットを有し、もう1つのデジット5は、メイン制御基板60上に設けられた設定値表示LED64(図1)に相当する。
また、獲得数表示LED72は、役の入賞時に、払出し数を表示するLEDであり、上位桁を表示するデジット3と、下位桁を表示するデジット4とから構成されている。したがって、獲得数表示LED72は、貯留数表示LED71と同様に、2桁を表示する。
なお、獲得数表示LED72は、通常は獲得数を表示するが、エラー発生時にはエラーの内容(種類)を表示するLEDとして機能するため、「獲得数(又はエラー)表示LED72」と称する場合もある。さらに、獲得数表示LED72は、AT遊技中に正解押し順を報知する表示部として用いられる場合もある。
貯留数表示LED71は、貯留されているメダル枚数を表示するものであり、本実施形態では、「00」〜「50」(整数)の間の数字を表示する。
たとえば、メダルが全くベット及び貯留されていない状態では、貯留数表示LED71の表示は、「00」となっている。ここで、1枚のメダルが手入れされると、当該遊技のためにその1枚のメダルがベットされる。さらに2枚を追加投入すると、当該遊技のために3枚のメダルがベットされる(ベット限界枚数が3枚の場合)。したがって、手入れされたメダルが3枚までのときは、そのメダルはベットされ、貯留されない。さらにメダルが手入れされ続けると、スロットマシン10内部にメダルが貯留されるとともに、その貯留枚数が貯留数表示LED71によって表示される。
本実施形態では、最大で50枚までのメダルを貯留可能となっている。したがって、貯留枚数が50枚となったとき(貯留数表示LED71に「50」と表示されたとき)は、それ以上、メダルは貯留されない。この状態で、仮に、メダル投入口43からメダルが手入れされると、ブロッカ45により、手入れされたメダルは、払出し口から返却される。
また、獲得数表示LED72は、役の入賞時に、払い出されるメダル枚数を表示する。さらに、獲得数表示LED72は、エラー発生時には、それまで表示していた獲得数に代えて、エラーコードを表示する。
獲得数表示LED72は、払い出されるメダルがないときは、表示は「00」であるが、たとえば後述するベル01が入賞して8枚のメダルが払い出されると、獲得数表示LED72の表示は、「00」から「08」となる。
なお、獲得数表示LED72は、払い出されるメダルがないときは、消灯するように制御してもよい。
ここで、メダル払出しのある役(リプレイを除く)が入賞してその役に対応するメダルが払い出されるときは、払出し口から実際にメダルが払い出されることよりも優先して、スロットマシン10内部にメダルが貯留される。たとえば、ベル01入賞前の貯留枚数が「10」であるときは、ベル01の入賞により、獲得数表示LED72の表示が「00」から「08」に更新されるとともに、貯留数表示LED71の表示が「10」から「18」に更新される。
さらにまた、役の入賞時に、貯留枚数が「50」を超えるときは、「50」を超えた分については払出し口から実際に払い出さされる。たとえば、役の入賞前に貯留枚数が「47」であり、ベル01の入賞によって8枚のメダルが払い出されるとき、3枚は貯留されて貯留枚数が「50」となり、「50」を超える5枚については払出し口から払い出される。
さらに、リプレイの入賞時は、メダルの貯留及び払出しは行われず、当該遊技でベットされていた枚数のメダルが再遊技のために自動ベットされる。たとえば、当該遊技を3ベット(3枚)で行い、リプレイが入賞したときは、3枚のメダルが自動ベットされる。そして、リプレイの入賞に基づく自動ベットは、再遊技を行うためのメダルの投入であるので、その後に精算(返却)操作を行っても、当該メダルを精算することはできない。
なお、「遊技機の認定及び型式の検定等に関する規則」では、リプレイに対応する図柄の組合せが有効ラインに停止したときは、再遊技に係る条件装置の作動であって「入賞」ではないと解釈されている。しかし、本願(本明細書等)では、リプレイについても役の1つとして扱い(再遊技役)、リプレイに対応する図柄の組合せが有効ラインに停止したことを「リプレイの入賞」と称する。
図2において、状態表示LED73は、7個のLED(73a〜73g)から構成されている。
リプレイ表示LED73aは、リプレイの入賞時に点灯するLEDであり、リプレイの入賞に基づく自動ベットが行われると、リプレイ表示LED73aが点灯し、自動ベット状態であることを遊技者に知らせる。
投入可表示LED73bは、メダルを投入可能な状態のときに点灯するLEDである。すなわち、遊技が終了し、次遊技に移行するためのメダルが投入される前に点灯し、いわゆるベット待ち状態を示す。なお、本実施形態ではリプレイが作動した後であっても貯留枚数に応じてベット可能なときには点灯する。
精算表示LED73cは、本実施形態では、精算処理中に点灯するLEDである。貯留メダル及び/又はベットメダル(リプレイ入賞時の自動ベットを除く)を有する状態で、精算スイッチ46がオンされたときに、メダルを実際に払い出している最中に点灯する。
遊技開始LED73dは、メダルが投入され、スタートスイッチ41を操作可能な状態となったときに点灯するLEDである。したがって、メダルがベットされていない(又はリプレイの自動投入がされていない)状態では点灯しない。
(1枚、2枚、3枚)投入表示LED73e〜73gは、それぞれ、ベットされているメダル枚数を表示するLEDであり、1枚のメダルがベットされたときは「1BET(1枚投入表示LED73e)」が点灯し、2枚のメダルがベットされたときは、「1BET(1枚投入表示LED73e)」及び「2BET(2枚投入表示LED73f)」が点灯し、3枚のメダルがベットされたときは、「1BET(1枚投入表示LED73e)」、「2BET(2枚投入表示LED73f)」及び「3BET(3枚投入表示LED73g)」が点灯する。
図3は、デジット1〜5と、セグメントA〜Pとの関係を示す図である。
各デジットは、セグメントA〜P(合計8個)から構成され、そのうちのセグメントA〜G(7個)により、いわゆる7セグを構成している。さらに、セグメントPは、状態表示LED73のいずれか1つ(ただし、デジット2を除く)を構成している。
図3に示すように、たとえばデジット1のうち、セグメントA〜Gは、貯留数表示LED71の上位桁の7セグを構成するとともに、セグメントPは、遊技開始LED73dを構成している。
また、図3において、デジット3のうち、セグメントA〜Gは、獲得数表示LED72の上位桁の7セグを構成するとともに、セグメントPは、投入可表示LED73bを構成している。
同様に、図3において、デジット4のうち、セグメントA〜Gは、獲得数表示LED72の下位桁の7セグを構成するとともに、セグメントPは、リプレイ表示LED73aを構成している。
また、図3において、デジット5のうち、セグメントA〜Gは、設定値表示LED64の7セグを構成するとともに、セグメントPは、精算表示LED73cを構成している。
以上より、たとえばデジット1の全セグメント(セグメントA〜P)を点灯させたときは、セグメントA〜Gの点灯により、貯留数表示LED71(上位桁)は、「8」を表示するとともに、セグメントPの点灯により、状態表示LED73中、遊技開始LED73dが点灯する。
図4は、LED表示要求フラグ及びLED表示要求カウンタを示す図である。
LED表示要求フラグは、どのLEDが点灯可能であるかを示すフラグであり、8ビット(D0〜D7)からなる1バイトデータとしてRWM61の所定領域に記憶される。
そして、LED表示要求フラグは、たとえばデジット1及び2、すなわち貯留数表示LED71の上位桁及び下位桁が表示可能であるときは、D0及びD1ビットが「1」となり、他のデジットが表示不可でれば、他のビットは「0」となる。したがって、この場合のLED表示要求フラグのデータは、「00000011B」となる。
図4に示すように、本実施形態では、通常時(遊技中及び遊技待機中)は、デジット5(設定値表示LED64)をオフ、デジット1〜4をオンとする。よって、通常時のLED表示要求フラグは、「00001111B」となる。
また、設定変更中は、デジット5に設定値を表示するのでD4ビットが「1」となり、デジット1及び2(貯留数表示LED71)を非表示とするため「0」となり、デジット3及び4(獲得数表示LED72)には「−−」を表示するため「1」となる。よって、設定変更中のLED表示要求フラグは「00011100B」となる。
さらにまた、設定確認中は、設定変更中と同様にデジット5に設定値を表示するのでD4ビットが「1」となる。さらに、デジット1〜4は、通常時と同じである。よって、設定確認中のLED表示要求フラグは「00011111B」となる。
上記のLED表示要求フラグは、通常時、設定変更中、設定確認中に応じて値が異なるフラグである。
これに対し、LED表示要求カウンタは、LED表示要求フラグと同様に、8ビット(D0〜D7)からなる1バイトデータであり、後述するタイマ割込み(2.235ms)ごとに値が更新されるデータである。図4に示すように、初期値として、「00010000B」をとり、割込み処理ごとに、オン(「1」)となるデジットが一桁ずつ右にシフトする(シフト命令を実行)ように更新される。そして、LED表示要求カウンタの値が「00000001B」のときに、次の割込み時には、「00000000B」となるが、更新後に「0」になったときは、その割込み時に、再度、初期値である「00010000B」に設定される。なお、全ビットが「0」になった次の割込み時に、初期値である「00010000B」に設定しても良い。
また、図4に示すLED表示要求フラグ及びLED表示要求カウンタの各ビットへのデジットの割り当ては、図4に示すものに限らず、種々設計することができる。たとえば、D0〜D2を未使用とし、D3〜D7を各デジットに割り当てることも可能である。
詳細な説明は後述するが、本実施形態では、LED表示要求フラグとLED表示要求カウンタとをAND演算した結果、「1」であるデジットが当該割込み処理時の点灯対象となる。
なお、後述するように、スロットマシン10に復帰不可能エラー(電源断し、電源の再投入を行わないと復帰ができないエラー)が生じた場合のエラー内容(番号)をLED表示するときには、LED表示要求フラグやLED表示要求カウンタを参照することはない。
これに対し、復帰可能エラー(電源のオン/オフ等なく復帰させることができるエラー)時には、通常中と同様に、LED表示要求フラグとLED表示要求カウンタとを「AND」演算した結果、「1」であるLEDが点灯対象となる。
図5は、ROM62に記憶されたLEDセグメントテーブルを示す図である。LEDセグメントテーブルは、アドレス及びオフセット値(先頭アドレスからのズレ)と、各アドレスにごとにセグメントデータ、すなわちどのセグメントを点灯させるかのデータを記憶しているデータテーブルである。たとえば、アドレス「1211」は、LEDセグメントテーブルの先頭アドレス、すなわちオフセット値「0」となり、そのセグメントデータとして、16進数で「3F(H)」(2進数で「00111111B」)を記憶している。
そして、セグメントデータを2進数で表したときの8ビットデータを、「D7,D6,D5,D4,D3,D2,D1,D0」で表し、D0〜D7のデータがそれぞれLEDセグメントA〜P信号のオン/オフを表す。
たとえば、デジットに「0」と表示させるためには、図3中、セグメントA〜Fがオン、セグメントGがオフである。したがって、このときのセグメントデータは、「00111111B」となる。
よって、図5中、アドレス「1211」のセグメントデータは、「00111111B」、すなわち、デジットに「0」を表示するデータとなる。
以上のように、アドレス「1211」を先頭として、順に、デジットに「0」、「1」、「2」、・・を表示するためのデータを記憶している。
また、図5にけるオフセット値の使用については、後述する(図65のステップS635)。
説明を図1に戻す。
メイン制御基板60には、図柄表示装置30のモータ32等が電気的に接続されている。
図柄表示装置30は、図柄を表示する(本実施形態では3つの)リール31と、各リール31をそれぞれ駆動するモータ32と、リール31の位置を検出するためのリールセンサ39とを含む。
モータ32は、リール31を回転させるためのものであり、各リール31の回転中心部に連結され、後述するリール制御手段63cによって制御される。ここで、リール31は、左リール31、中リール31、右リール31からなり、左リール31を停止させるときに操作するストップスイッチ42が左ストップスイッチ42であり、中リール31を停止させるときに操作するストップスイッチ42が中ストップスイッチ42であり、右リール31を停止させるときに操作するストップスイッチ42が右ストップスイッチ42である。
リール31は、リング状のものであって、その外周面には複数種類の図柄(役に対応する図柄の組合せを構成している図柄)を印刷したリールテープを貼付したものである。なお、リール31上の図柄の具体的配置は、後述する。
また、各リール31には、1個(2個以上であってもよい)のインデックスが設けられている。インデックスは、リール31の例えば周側面に凸状に設けられており、リール31が所定位置を通過したか否かや、1回転したか否か等を検出するときに用いられる。そして、各インデックスは、リールセンサ39により検知される。リールセンサ39の信号は、メイン制御基板60に電気的に接続されている。そして、インデックスがインリールセンサ39を検知する(切る)と、その入力信号がメイン制御基板60に入力され、そのリール31が所定位置を通過したことが検知される。
また、リールセンサ39がリール31のインデックスを検知した瞬間の基準位置上の図柄を予めROM62に記憶している。これにより、インデックスを検知した瞬間の基準位置上の図柄を検知することができる。
また、メイン制御基板60には、メダル払出し装置35が電気的に接続されている。メダル払出し装置35は、メダルを溜めておくためのホッパー35aと、ホッパー35aのメダルを払出し口から払い出すときに駆動するホッパーモータ36と、ホッパーモータ36から払い出されたメダルを検出するための払出しセンサ37a及び37bを備える。
メダル投入口43から手入れされ、受け付けられたメダルは、所定の通路(「シュート部」とも称する。)を通してホッパー35a内に収容されるように形成されている。
払出しセンサ37a及び37bは、投入センサ44a及び44bと同様に、上流側に払出しセンサ37aが設けられ、下流側に払出しセンサ37bが設けられている。
なお、図1に示すように、後述する説明においては、上流側の払出しセンサ37aを払出しセンサ1、下流側の払出しセンサ37bを払出しセンサ2と称する場合もある。
払出しセンサ37aと37bとは、所定距離を隔てて配置され、メダルが払出しセンサ37aにより検知されてから所定時間を経過した後に払出しセンサ37bにより検知されるように構成されている。そして、払出しセンサ37a及び37bがそれぞれオン/オフとなるタイミングに基づいて、メダルが正しく払い出されたか否かを判断する。
たとえば、ホッパーモータ36が駆動しているにもかかわらず、払出しセンサ37a及び37bの信号がいずれもオフであるときは、メダルが払い出されていないと判断し、ホッパーエラー(メダルなし)と検知される。
一方、払出しセンサ37a又は37bの信号の少なくとも1つがオンのままとなったときは、メダル詰まりが生じたと検知する。なお、払出しセンサ37を1つだけ設け、上記エラーを検知するようにしてもよい。
満杯センサ38は、ホッパー35aから溢れたメダルを収容するサブタンク35bの満杯を検知するセンサであり、サブタンク35bのメダルが満杯となったときにメダルが接触することで通電する回路から構成される。
また、ドアスイッチ16は、スロットマシン10のフロントカバー(図示せず)を開けたときにオンとなるスイッチであり、フロントカバーの開閉状態を検知するためのものである。
また、電源スイッチ51は、スロットマシン10の電源のオン/オフを行うスイッチである。
設定キースイッチ52は、設定キー挿入口から設定キーが挿入され、右90度に回転しているときにオンとなるスイッチであり、設定確認時や設定変更時にオンとなる。
設定変更/リセットスイッチ53は、1つのスイッチで設定変更スイッチとリセットスイッチとを兼ねているスイッチである。なお、設定変更スイッチとリセットスイッチとは、別々に設けられていてもよい。
設定変更/リセットスイッチ53は、設定値を変更するときに操作される。また、設定キースイッチ52をオンにしつつ電源スイッチ51がオンにされると、リセットすなわち初期化処理が行われ、RWM61に記憶されている所定のデータがクリアされる。
設定ドアスイッチ54は、設定キースイッチ52及び設定変更/リセットスイッチ53を覆うドア(図示せず)の開閉を検知するスイッチである。たとえば設定ドアスイッチ54がオフ、すなわち設定ドアが開けられていない状態で設定キースイッチ52がオンであるとき等は、エラーとなる。
図6は、メイン制御基板60に設けられた入力ポート0〜2を示す図である。また、図7〜図9は、メイン制御基板60に設けられた出力ポート0〜8を示す図である。
本実施形態の入力ポート0〜2及び出力ポート0〜8は、D0〜D7の8ビットが入力又は出力可能な1バイトのポートである。
なお、入力ポート及び出力ポートは、図示したもの以外にも設けられているが、本実施形態では説明を省略する。
また、図6〜図9中、未使用と表示したポートは、実際に使用されていないか、又は本実施形態において説明を省略する信号の入出力ポートを意味する(信号の入出力がないポートは、すべて未使用という意味ではない)。
図6において、入力ポート0は、操作スイッチである精算スイッチ46、ベットスイッチ40(1ベットスイッチ40a及び3ベットスイッチ40b)、スタートスイッチ41、及びストップスイッチ42の各信号が入力される。なお、図6の例では、1ベットスイッチ信号(D1ビット)と3ベットスイッチ信号(D2ビット)とを分けているが、3ベットスイッチ40のみが設けられる仕様のスロットマシン10であるときは、入力ポート0のD1ビットは未使用となる。
また、入力ポート1には、通路センサ43a、ドアスイッチ16、設定ドアスイッチ54、設定キースイッチ52、設定変更/リセットスイッチ53、(左、中、右)リールセンサ39の各信号が入力される。
さらにまた、入力ポート2には、電断信号(電断が発生したときに出力される信号)、投入センサ1(44a)及び2(44b)の信号、払出しセンサ1(37a)及び2(37b)の信号、満杯センサ38の信号が入力される。なお、設定ドアスイッチ54を設けていない仕様のスロットマシン10であるときには、入力ポート1のD2ビットは未使用となる。
そして、後述するように、遊技を進行する情報処理として、1遊技あたり1回行うメイン処理(M_MAIN)(メインループともいう。)が設けられている。メイン処理では、投入されたメダルの検知や、全リール31が停止した後の入賞処理等が行われる処理である。
このメイン処理中に、メイン処理を一旦抜けて、割込み処理(タイマ割込み処理)を実行する。そして、割込み処理では、入力ポート0〜2を検知する処理(図64のステップS607)を実行し、その処理の実行後、再度、メイン処理に戻る処理を定期的に行っている。その割込み時間の間隔は、本実施形態では2.235msである。すなわち、2.235ms間隔の割込み処理ごとに、入力ポート0〜2のデータを取得する。そして、取得したデータに基づいて、入力ポート0〜2のそれぞれについて、レベルデータ(各ビットのオン/オフを示すデータ)、入力ポートの立ち上がりデータ(前回割込み時がオフで、今回割込み時がオンになったデータがどのビットであるかを示すデータ)、入力ポートの立ち下がりデータ(前回割込み時がオンで、今回割込み時がオフになったデータがどのビットであるかを示すデータ)を生成し、記憶する。したがって、これらのデータは、2.235msごとに更新されていく。
また、割込み処理がいつ行われたかにかかわらず、入力ポート0〜2のD0〜D7ビットのすべてを検知する。たとえば、リール31の回転中(ストップスイッチ42が操作される前)は、遊技者によってベットスイッチ40が操作されることはあり得ないので、必ずしも入力ポート0のD1及びD2ビットのデータを取得する必要はないが、本発明では、すべてのビットのデータを取得する。そして、全ビットのデータを取得すれば、エラー判定を行うことも可能となる。たとえばリール31の回転中にベットスイッチ40の立ち上がりデータがオンになった場合が挙げられる。
また、たとえば入力ポート0の1バイトデータ(8ビット)を取得すれば、すべての操作スイッチのオン/オフの状況を知ることができる。
図7において、出力ポート0は、LEDデジット信号の出力用に用いられる。また、出力ポート1は、LEDセグメント信号の出力用に用いられる。これらのLEDデジット信号及びLEDセグメント信号は、設定値表示LED64、貯留数表示LED71、獲得数表示LED72、状態表示LED73を点灯/消灯させるための信号である。
具体的には、たとえば出力ポート0のデータが「00000001B」であるときは、デジット1のみがオンとなるので、貯留数表示LED71の上位桁のみがオンとなる。さらに、出力ポート1のデータが「00111111B」であるとき、セグメントA〜Fの信号がオンとなるので、デジット1には「0」と表示される。
以上のように、出力ポート0でどのデジットを点灯させるかを定め、出力ポート1でどのセグメントを点灯させるかを定める。
また、図1では図示していないが、本実施形態では、3ベットスイッチ40b及びストップスイッチ42の周囲部(ストップスイッチ42のユニット内)にはLEDが設けられている。
そして、出力ポート2では、3ベットスイッチ40b及びストップスイッチ42の上記LEDを点灯させるための信号が出力される。「赤」は操作不可時に、「青」は操作可時にそれぞれ点灯させる。
図8において、出力ポート3では、D0〜D3ビットからは、左リール31のモータ32の各φ0〜φ3信号が出力される。本実施形態のモータ32は、1−2相励磁によりリール31を回転するように構成されており、φ0〜φ3の4相の励磁の組合せでリール31を駆動するようにしているため、各相の信号がそれぞれ所定のビットから出力される。
また、D6ビットからは、ブロッカ45の信号が出力される。さらにまた、D7ビットからは、ホッパーモータ36の駆動信号が出力される。
ここで、ブロッカ45は、ブロッカの信号が「1」(オン)であるときは、メダル投入口43とホッパー35aとを連結するメダル通路を形成し、「0」(オフ)であるときは、メダル投入口43と払出し口とを連結する通路(返却通路)を形成する。
そして、たとえばブロッカ45の駆動時には、割込み処理によって、出力ポート3のD6ビットからブロッカ信号を出力する。
出力ポート4のD0〜D3ビットからは、中リール31のモータ32の各φ0〜φ3信号が出力される。同様に、出力ポート5のD0〜D3ビットからは、右リール31のモータ32の各φ0〜φ3信号が出力される。
また、出力ポート4のD5〜D7ビットからは、状態表示LED73中、1枚、2枚、3枚投入表示LED73e〜73gの信号が出力される。
さらにまた、出力ポート6からは、外部集中端子板100への外部(外端)信号が出力され、本実施形態では、外部信号1〜5、メダル払出し信号、及びメダルベット(投入)信号が出力される。
ここで、「外部信号」とは、外部集中端子板100を介してスロットマシン10の外部(ホールコンピュータや、ホールに設置されているデータカウンタ等)に出力するための信号である。本実施形態では、ART発動(初当たり)を示す外部信号1、ART継続を示す外部信号2、ARTの開始時から終了時までを示す外部信号3、スロットマシン10で生じたエラーや電源断が発生したこと等を示す外部信号4、スロットマシン10のフロントドアの開放を示す外部信号5を設けている。
ただし、これに限らず、たとえば外部信号1を特定のRT状態と定めることや、外部信号2を1BB、外部信号3を2BB等の特定の特別遊技状態に設定することも可能であり、外部信号1〜3は、必ずしもARTに限られるものではない。
これらの出力信号の詳細については後述するが、本実施形態では、出力ポート6から出力される信号がBレジスタに記憶され、「外部出力信号データ」となる。
図9は、出力ポート7及び8を示す図である。本実施形態では、出力ポート7及び8は、試験機に対して所定の信号(情報)を送信するポートに設定されている。ここで、「試験信号」とは、スロットマシン10(遊技機)と試験機とを接続し、スロットマシン10から試験機に対して所定の信号を送信することで、スロットマシン10が「遊技機の認定及び型式の検定等に関する規則」に則って設計されているかを確認するために用いられる信号である。なお、スロットマシン10と試験機との接続は、直接接続されるものだけでなく、中継するためのインターフェイスボードを介して接続してもよい。また、スロットマシン10がホールに設置されるときには、インターフェイスボードを外しているが、出力ポート7及び8への出力処理を含むプログラムはROMに記憶された状態である。
図9において、出力ポート7には、条件装置1〜8信号が割り当てられている。ここで、「条件装置」とは、いわゆる当選番号(当選の種類)を示すものであり、本実施形態では、後述するように、D6及びD7ビットでボーナス当選の有無を示し、D0〜D5ビットで当選の種類を示している。D0〜D5ビットを用いることにより、64種類の当選パターンを出力可能となる。出力ポート7から信号を出力することにより、当該遊技ではどの条件装置がオンであるか(どの当選となったか)を外部に知らせることができる。
また、出力ポート8は、試験信号1〜8の出力ポートである。試験信号の具体的内容にについては後述する。
以上のようにして、一割込み内で、入力ポート0〜2の信号に基づくデータ(「レベルデータ」と称する。)を記憶するとともに、出力ポート0〜8に対しては、記憶されている制御データに基づき信号を出力する。
さらに、本実施形態では、入力ポート0レベルデータから、入力ポート0立ち上がりデータを作成する。また、入力ポート1レベルデータから、入力ポート1立ち上がりデータ及び入力ポート1立ち下がりデータを生成する。
図10は、入力ポート1の立ち上がりデータ及び立ち下がりデータを生成する演算例を示す図である。
図10では、前回割込み時の入力ポート1レベルデータ(データB0)が「00001110」(D1ビットのドアスイッチ信号、D2ビットの設定ドアスイッチ信号、D3ビットの設定キースイッチ信号がオン)であり、今回割込み時の入力ポート1レベルデータ(データA0)が「00011110」(前回レベルデータに対し、さらにD4ビットの設定変更スイッチがオン)となった例を示している。したがって、設定変更スイッチ信号について立ち上がりを有する例である。
この場合、図10に示すように、まず、データA0(今回割込み時のレベルデータ)とデータB0(前回割込み時のレベルデータ)とを排他的論理和(XOR)による演算を実行する。その演算結果をデータC0とすると、データC0は、入力ポート1の変化ビットを示すデータとなる。
次に、データA0(今回割込み時のレベルデータ)とデータC0(変化ビットを示すデータ)とを論理積(AND)により演算を実行する。これにより作成されるデータD0が、入力ポート1立ち上がりデータとなる。
また、立ち下がりを求める場合には、以下のように演算を行う。
図10では、前回割込み時の入力ポート1レベルデータ(データB1)が「00011110」(D1ビットのドアスイッチ信号、D2ビットの設定ドアスイッチ信号、D3ビットの設定キースイッチ信号、D4ビットの設定変更スイッチがオン)であり、今回割込み時の入力ポート1レベルデータ(データA1)が「00001110」(前回レベルデータに対し、設定変更スイッチオフ)となった例を示している。したがって、上記例とは逆に、設定変更スイッチ信号について立ち下がりを有する例である。
この場合、まず、データA1(今回割込み時のレベルデータ)とデータB1(前回割込み時のレベルデータ)とを排他的論理和(XOR)による演算を実行する。その演算結果をデータC1とすると、データC1は、上記のデータC0と同様に、入力ポート1の変化ビットを示すデータとなる。
次に、データB1(前回回割込み時のレベルデータ)とデータC1(変化ビットを示すデータ)とを論理積(AND)により演算を実行する。これにより作成されるデータD1が、入力ポート1立ち下がりデータとなる。
さらに、上記の例は、入力ポート1のデータを一割込みで1回取得する例であるが、ノイズやチャタリング防止のために、一割込み内で複数回、入力ポート1の信号を取得してもよい(入力ポート0も同様である)。
たとえば、入力ポート0を例にあげると、一割込み内で、2回、入力ポート0のデータを取得する。なお、データを2回取得する場合の時間間隔は任意であるが、たとえば1回目のデータ取得時から50μS(マイクロ秒)経過後に2回目のデータを取得することが挙げられる。
具体的に、1ベットスイッチ40aが操作されたことにより、D1ビットがオンになったとき、
00000100:取得データ1回目(正常)
00000100:取得データ2回目(正常)
であったと仮定する。なお、上記例では、1回目及び2回目のいずれも正常なデータを取得し、両データに変化がない例を示している。そして、これら2つのデータを論理積(AND)による演算を実行する。その結果、
00000100:AND演算後
となる。このAND演算後のデータを当該割込み処理時におけるレベルデータとする。
これに対し、ノイズやチャタリングが発生し、2回の取得データが異常となった場合には、以下のようになる。たとえば、2回目のデータ取得時に3ベットスイッチ40bの信号を誤検知し、「1」となったときは、
00000100:取得データ1回目(正常)
00000110:取得データ2回目(異常)
となる。そして、両データを上記のように論理積(AND)による演算を実行すると、
00000100:AND演算後
となり、上記と同じ結果を得る。すなわち、AND演算を実行することで、取得データ2回目のD1ビットを「0」にすることができ、これによってノイズやチャタリング等を防止することができる。
図11〜図17は、RWM61に記憶されるデータの格納アドレス(番地)とその内容を示す図である。なお、図11〜図17で示したデータは、本実施形態の説明で用いるためのデータであり、RWM61に記憶されるデータは、これらのデータに限られるものではない。
図11において、番地「F008」の「_PT_IN0_OLD 」は、入力ポート0レベルデータの記憶領域である。一割込み処理ごとに、入力ポート0からの入力信号が読み込まれ、レベルデータが更新されていく。
番地「F009」の「_PT_IN0_UP」は、入力ポート0立ち上がりデータの記憶領域である。入力ポート0レベルデータの更新ごとに上述のように演算され、一割込み処理ごとに、入力ポート0立ち上がりデータも更新されていく。
図12において、番地「F00A」の「_PT_IN1_OLD 」は、入力ポート1レベルデータの記憶領域である。一割込み処理ごとに、入力ポート1からの入力信号が読み込まれ、データが更新されていく。
また、番地「F00B」の「_PT_IN1_UP」は、入力ポート1立ち上がりデータの記憶領域である。入力ポート1レベルデータの更新ごとに上述のように演算され、入力ポート1立ち上がりデータも更新されていく。
さらにまた、図13において、番地「F00C」の「_PT_IN1_DOWN」は、入力ポート1立ち下がりデータの記憶領域である。入力ポート1レベルデータの更新ごとに上述したように演算され、入力ポート1立ち下がりデータも更新されていく。
また、番地「F00D」の「_PT_IN2_OLD 」は、入力ポート2レベルデータの記憶領域である。一割込み処理ごとに、入力ポート2からの入力信号が読み込まれ、データが更新されていく。
図14において、アドレス「F01B」の「_FL_MEDAL_STS 」は、メダル管理フラグのデータ記憶領域である。このメダル管理フラグは、主として状態表示LED73の点灯/消灯を制御するためのフラグである。メダル管理フラグにおいて、D0ビットは、スタートスイッチ41受付け状態を示し、スタートスイッチ41を受け付けているとき、すなわちスタートスイッチ41が操作可能であるとき(たとえばメダルがベットされ、遊技開始前の状態)に「1」となり、スタートスイッチ41の操作受付けが不可能状態であるとき(たとえばリール31の回転中)は「0」にされる。
D2ビットのブロッカ状態は、ブロッカ45がオンであるときは「1」となり、オフであるときは「0」にされるデータである。このD2ビットの値を判断することにより、現在のブロッカ45がどのような状態であるか(オンかオフか)を判断可能となる。
D3ビットのリプレイ表示LEDは、リプレイが表示され、再遊技としてメダルが自動投入されるとき(図38のステップS141)に、「1」にされるデータである。このデータが「1」のときに、上述した状態表示LED73のうちのリプレイ表示LED73aが点灯する。また、再遊技による遊技が終了したとき(図36のステップS73)に、「0」にされるデータである。このデータが「0」のとき、リプレイ表示LED73aが消灯する。
D4ビットの精算表示LEDは、精算スイッチ46が操作され、貯留メダルを精算するとき(図65のステップS324)に、「1」にされるデータである。このデータが「1」のとき、上述した状態表示LED73のうちの精算表示LED73cが点灯する。また、貯留メダルの精算が終了したとき(図52のステップS326)に、「0」にされるデータである。
このように、本実施形態では、最大50枚まで記憶可能な貯留メダルの精算を実行しているときに精算表示LED73cが点灯するように形成されているが、一度にベットメダルと貯留メダルとを精算するように形成されている場合には、ベット又は貯留メダルを精算するときに「1」にされるように(精算表示LED73cが点灯するように)形成されていることが好ましい。
D6ビットの設定変更不可フラグは、設定変更が可能な状態であるときに「0」となり、それ以外は「1」となるデータである。本実施形態では、スタートスイッチ41が操作されて遊技が進行されたとき(図57のステップS433)に、「1」にされるデータであり、次遊技のメダル受付けが開始されたとき(図38のステップS133)に、「0」にされるデータである。設定変更に際しては、設定変更許可フラグの値が参照され、設定変更不可フラグが「1」であるときは設定変更は許可されない。ただし、設定変更不可フラグが「1」のときであっても復帰不可能エラー(たとえば、割込み処理ごとに判定される乱数の更新異常)と判断されたときは設定変更が許可され、設定変更に基づいて復帰不可能エラーを解除することが可能となる。
D7ビットのメダル限界設定判定は、ベットメダル枚数がメダル限界枚数に達しているときは「1」となり、メダル限界枚数に達していないときは「0」となるデータである。上述したように、限界枚数は、本実施形態では2枚(1BB遊技中)又は3枚(通常遊技等の1BB遊技中以外)に設定されている。したがって、たとえば通常遊技中において、ベットメダル枚数が0、1、又は2枚であるときはメダル限界枚数に達していないので「0」となり、3枚であるときはメダル限界枚数に達しているので「1」となる。
また、アドレス「F01C」の「_FL_ACTION」は、作動状態フラグのデータ記憶領域であり、本実施形態では、D0ビットにリプレイ、D3ビットに1BB、D4ビットにRBが割り当てられている。
たとえばリプレイが入賞したときは、リプレイの作動状態となり、遊技状態をセットするとき(図37のステップS88)に、D0ビットが「1」にされる。このD0ビットが「1」から「0」にされるのは、再遊技による遊技が終了したとき(図36のステップS73)である。
また、本実施形態では設けていないが、2BB及びCBを設けたときは、作動状態フラグに示すように、たとえばD1ビットに2BB、D2ビットにCBを割り当てることが挙げられる。
アドレス「F043」の「_FL_WIN 」は、図柄組合せ表示フラグの記憶領域であり、本実施形態では、D0ビットにリプレイ、D3ビットに1BBが割り当てられている。たとえばリプレイ図柄が停止したと判断したときは、D0ビットが「1」にされる。そして、このビットが「1」から「0」にされるのは、次遊技の遊技開始時(スタートスイッチ41の操作時)である。
また、本実施形態では設けていないが、2BB、CB、(単独当選する)RBを設けたときは、作動状態フラグに対応するように、たとえばD1ビットに2BB、D2ビットにCB、D4ビットにRBを割り当てることが挙げられる。
図15において、アドレス「F023」の「_PT_BLK_HPM 」は、ブロッカ信号及びホッパーモータ駆動信号のデータの記憶領域であり、ブロッカ信号としてD6ビット、ホッパーモータ駆動信号としてD7ビットが用いられる(D0〜D5ビットは未使用)。ブロッカ45をオンにするときは、D6ビットが「1」となり、ホッパーモータ36をオンにするときはD7ビットが「1」にされる。より具体的には、メイン処理内でアドレス「F023」を更新し、割込み処理内でアドレス「F023」のデータに基づいて出力ポート3のデータを生成し、ブロッカ45を制御している。
また、アドレス「F025」の「_PT_MEDAL_LED 」は、投入枚数表示LEDデータの記憶領域であり、D5〜D7ビットにそれぞれ3枚〜1枚投入表示LED73g〜73eが割り当てられている。たとえば、D7ビットのみが「1」であるときは、1枚投入表示LED73eのみが点灯するように制御される。また、D7及びD6ビットが「1」であるときは、1枚投入表示LED73e及び2枚投入表示LED73fが点灯するように制御される。
さらにまた、アドレス「F06A」の「_NB_REP_MEDAL 」は、自動投入枚数データ(リプレイ入賞時に自動ベットするメダル枚数を示すデータ)の記憶領域であり、本実施形態では「3」が記憶される。
アドレス「F06B」の「_NB_PLAY_MEDAL」は、メダルベット枚数データの記憶領域であり、本実施形態では、「0」〜「3」のいずれかが記憶される。
アドレス「F06C」の「_NB_PAY_MEDAL 」は、メダル払出し枚数データの記憶領域であり、本実施形態では、「0」〜「8」の値のいずれかが記憶される。なお、本実施形態では、1遊技におけるメダルの最大払出し枚数が8枚であるため、メダル払出し枚数データの最大値は「8」である。ただし、たとえば15枚払出し役を設けたときは、メダル払出し枚数データは、「0」〜「15」となる。
アドレス「F06D」の「_BF_PAY_MEDAL 」は、メダル払出し枚数データバッファの記憶領域であり、本実施形態では、アドレス「F06C」の「_NB_PAY_MEDAL 」と同様に、「0」〜「8」の値のいずかが記憶される。
本実施形態では、遊技終了時に、アドレス「F06C」の「_NB_PAY_MEDAL 」と、アドレス「F06D」の「_BF_PAY_MEDAL 」との双方の値が更新される。この更新時には、双方のアドレスに同一値が記憶される。そして、アドレス「F06C」の「_NB_PAY_MEDAL 」は、メダル払出しごとに減算され、メダル払出し終了時には「0」となる。これに対し、アドレス「F06D」の「_BF_PAY_MEDAL 」は、メダル払出しによっては値が更新されずに維持される。次回遊技の終了時に値が更新されるまで、記憶された値を維持する。
アドレス「F06E」の「_CT_MEDAL_IN」は、メダルベット(投入)信号出力回数(メダルベット(投入)信号切換回数とも称する)のデータ記憶領域であり、「0」〜「6」の値が記憶される。本実施形態では、このメダル投入信号出力回数は、メダルのベット枚数を信号として外部に出力する回数を示し、ベット枚数を2倍にした回数を出力する。したがって、本実施形態では、ベット枚数の最大値は「3」であるので、メダル投入信号出力回数の最大値は「6」となる。たとえばベット枚数「3」を出力するときは、「オン(1回目)→オフ(2回目)→オン(3回目)→オフ(4回目)→オン(5回目)→オフ(6回目)」となる。
アドレス「F06F」の「_CT_MEDAL_OUT 」は、メダル払出し信号出力回数(メダル払出し信号切換回数とも称する)のデータ記憶領域であり、「0」〜「16」の値が記憶される。このメダル払出し信号出力回数は、メダル払出し枚数を信号として外部に出力する回数を示し、払出し枚数を2倍にした回数を出力する。この点は、上記のメダル投入信号出力回数と同様である。したがって、本実施形態では、払出し枚数の最大値は「8」であるので、メダル払出し信号出力回数の最大値は「16」となる。上述したように、払出し枚数の最大値をたとえば「15」に設定した場合には、メダル払出し信号出力回数の最大値は「30」となる。
図16において、アドレス「F019」の「_NB_CREDIT_LED」は、貯留枚数表示データの記憶領域であり、上述した貯留数表示LED71にその時点での貯留枚数を表示するためのデータを記憶している。ここで、本実施形態では、データそのものは16進数(H)であるが、貯留枚数を10進数に換算した値を記憶する。たとえば、表示すべき貯留枚数が「29」であるとき、「29H」という値を記憶する。換言すると、アドレス「F019」には、「00101001B」を記憶する。これにより、アドレス「F019」のD0〜D3の下位4ビットは、貯留枚数の下位桁(本例では「9」)を表示するために使用し、D4〜D7の上位4ビットは、貯留枚数の上位桁(本例では「2」)を表示するためのデータとして記憶している。なお、本実施形態では、貯留枚数の上限値は「50」であるので、記憶されるデータ値は、「0」〜「50」の範囲となる。
なお、本実施形態では、貯留枚数データそのものを記憶するRWM61のアドレスは設けておらず、貯留数表示LED71の表示データとして貯留枚数表示データを設けている。ただし、貯留枚数表示データは、貯留枚数データそのものである。
また、アドレス「F071」の「_CT_BB1_PAY 」は、1BB作動時の獲得枚数カウンタ(1BB遊技で獲得可能な最大のメダル枚数を格納する記憶領域)であり、本実施形態では、1BB遊技の開始時に初期値として「200」が設定される。そして、メダルが払い出されるごとに、記憶された値が減算される。
また、本実施形態では設けられていないが、たとえば2BB(役物連続作動装置)を設けたときは、次のアドレス「F072」に「_CT_BB2_PAY 」として2BB作動時の獲得枚数カウンタ(2BB遊技で獲得可能な最大のメダル枚数)を格納する記憶領域が設けられる。そして、その2BB遊技の初期値としては、たとえば「40」が設定され、2BB遊技においてメダルが払い出されるごとに、記憶された値が減算される。
なお、2BBを設けたときに、その2BB遊技では、2BB遊技の終了条件(最大払出し枚数)を満たすまで、毎遊技、連続作動するCB(第二種特別役物)遊技が実行される。
アドレス「F073」の「_CT_BONUS_PLAY」は、RB作動時の遊技回数カウンタの記憶領域であり、本実施形態では、「0」〜「2」が記憶される。
また、アドレス「F074」の「_CT_BONUS_WIN 」は、RB作動時の入賞回数カウンタの記憶領域であり、本実施形態では、「0」〜「2」が記憶される。
ここで、本実施形態では、ビッグボーナスとして1BB(役物連続作動装置)を設けており、1BB遊技中は、RB(第一種特別役物)が作動する(RB遊技を実行する)ように設定されている。さらに、RB遊技は、遊技回数が2回又は入賞回数が2回の少なくとも一方を満たすまで継続されるとともに、1BB遊技の終了条件(200枚の払出し)を満たすまで連続作動するように設定されている。
このため、1BB遊技中は、RB遊技の遊技回数及び入賞回数をカウントし続ける。
アドレス「F02B」及び「F02C」の「_CT_INTR」は、割込みカウンタの記憶領域(割込みカウンタ値記憶手段とも称する)である。割込みカウンタの値は、「0」〜「65535」の範囲を有するインクリメントカウンタであり、一割込みごとに値が更新(「+1」)される。なお、本実施形態のように、割込みカウンタの値として「0」〜「65535」を採用する場合には、2バイトのアドレス「F02B」(上位8ビット)と「F02C」(下位8ビット)とを用いるが、たとえば「0」〜「255」の範囲を採用する場合には、1バイトのアドレス「F02B」を用いる。
アドレス「F03A」の「_TM2_GAME 」は、1回の最小遊技時間を監視するタイマであり、初期値として「1836」がセットされると、一割込みごとに「1」ずつ減算されるタイマである。本実施形態の最小遊技時間は、「4.1秒」に設定されている(2.235ms×1836≒4100ms)。
アドレス「F048」の「_NB_CND_NOR 」は、入賞及びリプレイ条件装置番号の記憶領域であり、役の抽選が行われ、当選役が決定されると、この記憶領域に、当選役に対応する値(本実施形態では、「0」〜「16」のいずれか)が記憶される。ここで記憶される値は、図16に示すように、リール31の停止制御に用いる停止位置決定テーブルの選択、AT抽選(AT中の上乗せ)、サブ制御基板80による演出抽選等に用いられる。
また、アドレス「F049」の「_NB_CND_BNS 」は、役物条件装置番号の記憶領域であり、本実施形態では1BBの当選の有無に応じて、「0」又は「1」が記憶される。この値も上記と同様に、リール31の停止制御に用いる停止位置決定テーブルの選択、AT抽選(AT中の上乗せ)、サブ制御基板80による演出抽選等に用いられる。
なお、特別役としてたとえば1BBと2BBとの2種類を設けた場合には、10進数で表すと「0」から「2」が記憶され、1BB(1)、1BB(2)、2BB(1)、2BB(2)の4種類の特別役を設けた場合には、「0」から「4」が記憶される。ここで、本アドレスには特別役の当選番号が記憶されるが、たとえば特別役に当選し、当選した特別役に対応する図柄組合せが停止表示しなかった場合(後述する内部中遊技の場合)にも、当選している特別役の当選番号が記憶される。
図17において、アドレス「F04C」の「_NB_CNDINF_N」は、入賞及びリプレイ条件装置情報の記憶領域であり、役の抽選が行われ、当選役が決定されると、当選役に対応する番号(条件装置番号)が記憶される。換言すると、本アドレスは、アドレス「F048」の「_NB_CND_NOR 」に基づいて生成され、試験機に送信するための情報を格納するための記憶領域である。この入賞及びリプレイ条件装置情報では、D6ビットは常に「1」となるように情報を生成し、さらに、D0〜D5ビットには、当選役に対応する値(本実施形態では「0」〜「16」のいずれか)が記憶される。たとえばアドレス「F048」に「00000101B」が記憶されているとき(本実施形態ではベルA4当選時)には、アドレス「F04C」には「01000101B」が記憶されることになる。また、アドレス「F048」に「00000000B」が記憶されているとき(役の非当選時)にはアドレス「F04C」には「01000000B」が記憶される。
また、アドレス「F04D」の「_NB_CNDINF_B」は、役物条件装置番号の記憶領域であり、1BB(2BBを設けた場合には、さらに2BB)の当選の有無に応じて、当選役に対応する番号(条件装置番号)が記憶される。換言すると、本アドレスは、アドレス「F049」の「_NB_CND_BNS 」に基づいて生成され、試験機に送信するための情報を格納するための記憶領域である。この役物条件装置情報では、D7ビットは常に「1」となるように情報を生成し、さらに、1BB非当選時はD0ビットが「0」とされ、1BB当選時又は1BB内部中時はD0ビットが「1」とされる。たとえばアドレス「F049」に「00000001B」が記憶されている場合には、アドレス「F04D」には「10000001B」が記憶されることになる。また、アドレス「F049」に「00000000B」が記憶されているとき(本実施形態では、1BBの非当選時)にはアドレス「F04D」には「10000000B」が記憶される。
上記の入賞及びリプレイ条件装置番号と、役物条件装置番号とについての詳細は、後述する。
アドレス「F030」の「_TM1_COND_OUT 」は、条件装置信号(入賞及びリプレイ条件装置情報、並びに役物条件装置情報)の出力時間を計測するためのタイマ値を記憶する領域であり、本実施形態では、最小遊技時間経過後に「25」がセットされるとともに、一割込みごとに「1」ずつ減算される。なお、当該タイマ値の減算は、後述する割込み処理のステップS605(タイマー計測)において行われる。
本実施形態では、24割込みにより、約53.64msがカウントされ、この53.64msが条件装置信号の出力時間となる。詳細は後述するが、本実施形態では、最小遊技時間経過後にタイマ値が「25」がセットされた後、最初の割込み処理でそのタイマ値が「24」に更新される。そして、タイマ値が「24」〜「13」である間は、役物条件装置情報(_NB_CNDINF_B)を出力し、タイマ値が「12」〜「1」である間は入賞及びリプレイ条件装置情報(_NB_CNDINF_N)を出力する。さらに、タイマ値が「0」である間は、条件装置情報として「0」の値を出力する。
アドレス「F000」の「_NB_RANK」は、設定値データを記憶しておく領域であり、本実施形態の設定値である「1」〜「6」のいずれかが記憶される(後述する図29のステップS816)。なお、詳細は後述するが、例外時には、「0」が記憶される場合がある。
アドレス「F01F」の「_FL_POWER_OFF 」は、電源断時に、電源断を示すデータを記憶しておく領域であり、正常な電源断が行われたときは「01」Hが記憶され、それ以外の場合(異常時)には「00」Hが記憶される(後述する図66のステップS652)。
アドレス「F075」の「_WK_SUM_CHK 」は、電源断時に算出されるチェックサムのデータ(補数データ)を記憶しておく領域であり、データ値としては、「00」H〜「FF」Hが記憶される(後述する図66のステップS656)。チェックサムデータは、再度、RWM61のチェックサムを行う(チェックの対象となるアドレスの全データの加算し、さらにこのアドレス「F075」に記憶されたチェックサムデータを加算する)と、「0」となるデータ値が記憶される。
次に、メイン制御基板60の具体的構成について説明する。
図1に示すように、メイン制御基板60のメインCPU63は、以下の設定変更手段63a等を備える。なお、本実施形態における以下の各手段は例示であり、本実施形態で示した手段に限定されるものではない。
設定変更手段63aは、設定値を変更・決定する手段である。
ここで、設定値とは、遊技者の有利度、より具体的にはメダルの投入枚数に対する払出し枚数の期待値(遊技者が獲得できるメダル)の程度を定めるものであり、本実施形態では設定1〜設定6の6段階を設けている。
そして、設定値が高くなるほど、少なくとも一部の役(特に、1BB)の当選確率が高く設定される等、遊技者にとっての有利度が高くなるように設定している。
また、設定値が高くなるほど、ARTに移行する確率が高くなり、遊技者にとっての有利度が高くなるように設定している。
なお、ARTに移行する確率を高くすることのみに限られるものではなく、たとえばAT中の遊技回数や払出し枚数を上乗せする確率を高くしたり、ARTを継続する確率を高くしてもよい。
設定値を設定・変更するには、電源スイッチ51、設定キースイッチ52、設定変更/リセットスイッチ53が用いられる。
本実施形態では、電源スイッチ51を一旦オフにし、電源断をした後に、設定キー挿入口に設定キーを差し込み、これを時計回りに90度回転させると、設定キースイッチ52がオンとなる。この状態で電源スイッチ51を再度オンにすると、設定変更中、すなわち設定変更モードになる。この場合、通常の立ち上げ処理は行われない。したがって、設定変更中にするためには、電源スイッチ51のオン/オフ操作が必要である。
設定変更モードでは、設定変更手段63aは、設定値表示LED64に、現在の設定値を表示する。
また、設定変更手段63aは、設定変更/リセットスイッチ53が1回操作(オン)されるごとに、設定値の表示を、・・・→「1」→「2」→「3」→「4」→「5」→「6」→「1」→「2」→・・・と順次変化させる。
さらに、設定変更手段63aは、スタートスイッチ41がオンにされると、このときに設定値表示LED64に表示していた数値で設定値を決定し、設定値が決定されたことを示す「0」を設定値表示LED64に表示する。ここで決定された設定値は、RWM61中、アドレス「F000」に設定値データとして記憶される。
そして、設定変更手段63aは、設定キーを反時計回りに90度回転させて設定キースイッチ52をオフにすることで、設定変更後の設定値で遊技が可能となる。
なお、本実施形態では、設定キースイッチ52のオフの判定は、設定キースイッチ52の立ち下がりデータに基づいて実行されるように構成されているが、設定キースイッチ52のオン/オフの状態に基づいて実行されるように構成してもよい。
また、設定キー挿入口から設定キーを抜かなければ設定変更後の設定値で遊技ができないように構成してもよい。
さらに、設定キーを反時計回りに90度回転させて設定キースイッチ52をオフにし、設定キー挿入口から設定キーを抜き、この状態で電源スイッチ51を一旦オフにした後に再度オンにしなければ、設定変更後の設定値で遊技ができないように構成してもよい。
また、メダルがベットされていない状態で、かつ役抽選が行われていない状態(スタートスイッチ41の操作前)で、設定キーが設定キー挿入口に挿入され、設定キースイッチ52がオンにされると、「設定確認中」になる。すなわち、設定値を確認するだけの場合には、電源スイッチ51のオン/オフは不要である。設定確認中は、設定変更中と同様に、現時点での設定値が設定表示LED64に表示される。
さらにまた、設定キースイッチ52がオンにされた状態で、電源スイッチ51がオンにされると、リセット、すなわち初期化処理が行われる。この初期化処理については後述する。
役抽選手段63bは、遊技ごとに、遊技開始時に、役の抽選を行うものである。
ここで、本実施形態の役、図柄の組合せ等について説明する。
図18は、本実施形態におけるリール31の図柄配列を示す図である。図18では、図柄番号を併せて図示している。たとえば、左リール31において、図柄番号16番の図柄は、「ベル」である。
図18に示すように、本実施形態では、各リール31は、16コマ(図柄)に等分割され、各コマに所定の図柄が表示されている。なお、スロットマシン10の仕様によっては、20コマや21コマであってもよい。
また、図19は、スロットマシン10のフロントカバー11に設けられた表示窓13(透明窓)と、各リール31の位置関係と、有効ラインとを示す図である。
各リール31は、本実施形態では横方向に並列に3つ(左リール31、中リール31、及び右リール31)設けられている。さらに、各リール31は、表示窓13から、上下に連続する3図柄が見えるように配置されている。よって、スロットマシン10の表示窓13から、合計9個の図柄が見えるように配置されている。なお、各図柄の右下の数字は図柄番号を示している。
なお、本明細書では、図19中、左リール31の「スイカ(01番)」、中リール31の「リプレイ(16番)」、及び右リール31の「青7(14番)」の図柄が停止している位置を「上段」と称し、左リール31の「ベル(16番)」、中リール31の「ベル(15番)」、及び右リール31の「リプレイ(13番)」の図柄が停止している位置を「中段」と称し、左リール31の「リプレイ(15番)」、中リール31の「白7(14番)」、及び右リール31の「ベル(12番)」の図柄が停止している位置を「下段」と称する。
さらにまた、図19に示すように、表示窓13から見える9個の図柄に対し、有効ラインが設定されている。
ここで、「有効ライン」とは、リール31の停止時における図柄の並びラインであって図柄の組合せを形成させる図柄組合せラインであり、かつ、いずれかの役に対応する図柄の組合せがそのラインに停止したときに、その役の入賞となるラインである。本実施形態では、図19に示すように、水平方向中段の有効ライン(1本)のみが定められ、他の図柄組合せラインは、全て無効ラインとなっている。
たとえば、図19中、各リール31の上段を通過する図柄組合せラインや、左リール31の下段、中リール31の中段、及び右リール31の上段を通過する図柄組合せラインも考えられるが、このようなラインは、本実施形態では無効ラインとなっている。無効ラインは、図柄組合せラインのうち、有効ラインとして設定されないラインであって、いずれかの役に対応する図柄の組合せがそのラインに停止した場合であっても、その役に応じた利益の付与(メダルの払出し等)を行わないラインである。すなわち、無効ラインは、そもそも図柄の組合せの成立対象となっていないラインである。
また、従来より、メダルのベット枚数に応じて有効ライン数が異なるスロットマシンが知られている。たとえば、メダルベット枚数が1枚のときは有効ラインは1本、メダルベット枚数が2枚のときは有効ライン数は3本、メダルベット枚数が3枚のときは有効ライン数は5本に設定すること等が挙げられる。これに対し、本実施形態では、遊技中は、2枚(1BB遊技中)又は3枚(1BB遊技中以外)のメダルをベットして遊技を行うとともに、すべての遊技において、常に水平方向中段の1本のみが有効ラインとなる。なお、有効ラインはメダルのベット枚数に応じて予め定められていればよい。
図20〜図22は、本実施形態における役の種類、払出し枚数、及び図柄の組合せを示す図である。図20〜図22中、「役」の欄にかっこ書きで表示されたメダル枚数は、その役の入賞時の払出し枚数を示す。
また、たとえば図20のベル02aの場合には、ベル02aの図柄の組合せとして、「リプレイ」−「赤7」−「赤7」と、「リプレイ」−「赤7」−「BAR」の2種類を有するという意味である(他の役において、複数の図柄の組合せを有する場合も、同様の意味である。)。
本実施形態の役は、大別して、特別役、リプレイ、小役を有する。
そして、各役に対応する図柄の組合せ及び入賞時の払出し枚数等が定められている。すべてのリール31の停止時に、いずれかの役に対応する図柄の組合せが有効ラインに停止する(役が入賞する。以下同じ。)と、その役に対応する枚数のメダルが払い出される。
まず、特別役とは、通常遊技から特別遊技に移行させる役である。本実施形態では、特別役として、1BB(第1種ビッグボーナス(役物連続作動装置))が設けられている。
なお、特別役としては、他に、RB(レギュラーボーナス(第一種特別役物))、2BB(第2種ビッグボーナス(役物連続作動装置)。「MB」(ミドルボーナス)ともいう。)、CB(チャレンジボーナス(第二種特別役物))、SB(シングルボーナス(普通役物))が挙げられるが、本実施形態では設けられていない。
1BBが入賞すると、当該遊技におけるメダルの払い出しはないが、次遊技から、特別遊技に相当する1BB遊技に移行する。
なお、1BB遊技は、出率が「1」を超えるように設定されていることで、通常遊技以上にメダル獲得が期待できる、遊技者にとって有利な遊技である。
1BB遊技は、RBが連続作動する(RB遊技が連続して実行される)遊技である。なお、RBに対応する図柄の組合せは設けられておらず、1BB遊技が開始されると同時にRBが作動し、RB遊技の終了後は、1BB遊技の終了条件を満たしていなければ再度RBが作動する。
本実施形態では、1BB遊技は、払出し枚数が200枚を超えるまでに設定されている。一方、1BB遊技中に実行されるRB遊技は、遊技回数又は入賞回数が2回に到達するまで継続される遊技である。したがって、RB遊技の終了条件を満たしたときに、1BB遊技の払出し枚数が200枚を超えていないときは、次遊技もまたRBが作動する。
一方、RBが作動し、たとえば1遊技目終了時に1BB遊技の払出し枚数が200枚を超えたときは、当該遊技で1BB遊技を終了する。
また、本実施形態では設けられていないが、たとえば2BB遊技を設けたときは、2BBに対応する図柄の組合せ(たとえば、「BAR」−「BAR」−「赤7」)を設け、2BBが入賞すると、当該遊技におけるメダルの払い出しはないが、次遊技から、特別遊技に相当する2BB遊技に移行する。
2BB遊技は、上述したように、たとえばメダル払出し枚数が40枚を超えるまで継続される。2BB遊技では、毎遊技、CBが作動し、1遊技ごとに、当該遊技の終了後にCBが非作動となり、次遊技の開始時にCBが作動状態となる。
また、リプレイ(再遊技役)とは、当該遊技で投入したメダル枚数を維持した(メダルを自動ベットする)再遊技が行えるようにした役である。
本実施形態のリプレイは、ノーマルリプレイに相当するリプレイと、2種類の特殊リプレイ(特殊リプレイ1及び2)を備え、それぞれ図柄の組合せが異なる。
特殊リプレイ1は、RT1において入賞すると、RT1からRT2に遊技状態を昇格させる役であり、昇格リプレイとも称される。
一方、特殊リプレイ2は、RT2において入賞すると、RT2からRT1に遊技状態を降格させる役であり、転落リプレイとも称される。
さらにまた、小役は、大別してベルとチェリーとからなる。
そして、ベルは、入賞時に8枚の払出しのあるベル01と、入賞時に1枚の払出しのあるベル02a〜09dを備える。
チェリーは、チェリー01〜04の4種類を有し、いずれも、入賞時の払出し枚数は1枚に設定されている。
上述した各役において、役に当選した遊技でその役に対応する図柄の組合せが有効ラインに停止しなかったときは、次遊技に持ち越される役と、持ち越されない役とが定められている。
持ち越される役は、特別役である1BBである。1BBに当選したときは、1BBが入賞するまでの遊技において、1BBの当選を次遊技に持ち越すように制御される。
一方、1BBの当選は持ち越されるのに対し、1BB以外の小役及びリプレイは、持ち越されない。役の抽選において、小役又はリプレイに当選したときは、当該遊技でのみその当選役が有効となり、その当選は次遊技に持ち越されない。すなわち、これらの役に当選した遊技では、その当選した役に対応する図柄の組合せが入賞可能にリール31が停止制御されるが、その当選役の入賞の有無にかかわらず、その遊技の終了時に、その当選役に係る権利(つまり、情報)は消滅する。
なお、特別役(1BB)に当選していない遊技中(特別役の当選が持ち越されていない遊技中)を、「非内部中」という。また、当該遊技以前の遊技において特別役に当選しているが、当選した特別役が入賞していない遊技中(特別役の当選が持ち越されている遊技中)を「内部中」という。
また、本実施形態では設けられていないが、2BBや単独当選するRBを設けた場合には、1BBと同様に、当選が持ち越され、当選した遊技で入賞しなかったときは、次遊技から内部中遊技に移行する。
これに対し、本実施形態では設けられていないが、SBや単独当選するCBを設けた場合には、小役と同様に、当選が持ち越されることはなく、当選した遊技で入賞しなかった場合には、その遊技の終了時に、その当選役に係る権利は消滅する。
説明を図1に戻す。
役抽選手段63bは、たとえば、役抽選用の乱数発生手段(ハードウェア乱数や、MPUに備えられている乱数生成回路等)と、この乱数発生手段が発生する乱数を抽出する乱数抽出手段と、乱数抽出手段が抽出した乱数値に基づいて、役の当選の有無及び当選役を判定する判定手段とを備えている。
乱数発生手段は、所定の領域(たとえば10進法で0〜65535)の乱数を発生させる。乱数は、たとえば200n(ナノ)secで1カウントを行うカウンターが0〜65535の範囲を1サイクルとしてカウントし続ける乱数(ハードウェア乱数)や予め定められたランダムな数値順序(数列)に対してMPUに入力されるクロックの周期毎に更新する乱数(内蔵乱数)であり、スロットマシン10の電源が投入されている間は、乱数をカウントし続ける。
乱数抽出手段は、乱数発生手段によって発生した乱数を、所定の時、本実施形態では遊技者によりスタートスイッチ41が操作(オン)された時に抽出する。判定手段は、乱数抽出手段により抽出された乱数値を、役抽選テーブルと照合することにより、その乱数値が属する領域に対応する役を決定する。たとえば、抽出した乱数値が1BBの当選領域に属する場合は、1BBの当選と判定し、非当選領域に属する場合は、非当選と判定する。
なお、抽出した乱数を演算により加工して役抽選テーブルと照合してもよい。
役抽選テーブルは、抽選される役の種類と、各役の当選確率とを定めたものである。役抽選テーブルは、遊技状態ごとに設けられ、それぞれ所定の範囲の抽選領域を有し、この抽選領域は、各役の当選領域及び非当選領域に分けられているとともに、抽選される役が、予め設定された当選確率となるように所定の割合に設定されている。
なお、役抽選手段63bは、スタートスイッチ41の操作時に役抽選を行うとき、役抽選を行う前に、アドレス「F000」の設定値データ(_NB_RANK)を読み込み、予め定められた範囲内(「1」〜「6」)の値であるか否かを確認する。設定値が「1」〜「6」の範囲内であると判断したときは役抽選処理を実行するが、設定値が「1」〜「6」の範囲内でないと判断したときは役抽選処理を実行することなく、後述するエラー処理(復帰不可能エラー処理(SS_ERROR_STOP ))を実行する(この時点で遊技の進行が中止される)。
図23及び図24は、本実施形態における当選の種類を示す図である。本実施形態における当選は、当選番号「0」〜「16」を有する。役抽選手段63bで役の抽選が行われると、当選番号「0」〜「16」のいずれか、又は非当選となる。
当選番号「0」の1BBの当選、及び当選番号「1」のリプレイの当選は、それぞれ、1BB及びリプレイの単独当選である。
これに対し、当選番号「2」〜「16」は、複数種類の役の重複当選である。
当選番号「2」〜「13」は、ベル当選を示し、いずれも、8枚役であるベル01と、1枚役である3種類のベル(合計4種類)との重複当選である。たとえば、ベルA1は、ベル01、ベル02a、ベル03、ベル04aの4つのベルの重複当選を意味する。
また、当選番号「14」のチェリー重複は、チェリー01〜04の4つのチェリーが重複当選するものである。
さらにまた、当選番号「15」のリプレイ重複当選1は、特殊リプレイ1及び特殊リプレイ2の重複当選であり、当選番号「16」のリプレイ重複当選2は、特殊リプレイ1、特殊リプレイ2、及びリプレイの重複当選である。
なお、図23及び図24では、「備考」欄において、ストップスイッチ42の押し順と入賞役との関係を示しているが、この点については後述する。
図25は、上述した当選番号「0」〜「16」の遊技状態ごとの当選確率を示す図である。いいかえれば、図25は、遊技状態ごとの役抽選テーブルを示すものである。
図25において、「置数」とは、乱数値がとる全範囲「65536」のうち、当選となる範囲を示す値である。したがって、「当選確率=置数/65536」となる。たとえば、RT1等の遊技状態において、1BBの置数は「218」であるので、1BBの当選確率は、「218/65536」=「約1/300」である。
なお、1BBは、上述した設定値に応じて異なるように設定されており、図25の例は、いずれか1つの設定値における置数を示している(なお、2BB等を設けた場合も同様である)。
また、本実施形態の「遊技状態」としては、通常遊技と1BB遊技(特別遊技)とを有する。通常遊技は、1BBの非内部中遊技と内部中遊技とを有する。内部中遊技におけるリプレイの当選確率は、8978/65536(約1/7.3)である。
また、非内部中遊技は、RT1及びRT2を有する。RT1では、当選番号「1」と、当選番号「15」及び「16」の合算の確率は、「約1/7.3」であり、内部中遊技にけるリプレイの当選確率とほぼ同一である。
ここで、RT1は、リプレイの当選確率が通常確率に設定されたRT(非RTとも称される)状態である。なお、RT1がいわゆる「通常中(非ARTかつ非内部中)」と称される遊技状態である。
また、RT2は、リプレイの当選確率が高確率に設定されたRTである。RT2では、当選役により、非当選をほとんど有さない(1/65536)ように設定されている。
なお、内部中遊技におけるリプレイの当選確率を、通常時(RT1等)よりも高く設定したとき、内部中RTと称する場合もある。
また、本実施形態では、RT1は非ARTであり、RT2はARTである。
したがって、非内部中遊技では、非ARTであるときとARTであるきとを有するが、内部中遊技では、常に非ARTである。
これらの各遊技状態ごとに役抽選テーブルが設けられているとともに、図25に示すように、抽選される役の種類や当選確率が設定されている。
非内部中遊技では、特別役である1BBが抽選される。そして、1BBに当選したときは、次遊技から内部中遊技に移行する。内部中遊技に移行すると、1BBは抽選されない。
1BB遊技以外の遊技状態において、内部中遊技では、リプレイは、当選番号「1」のみが抽選される。これに対し、非内部中であるRT1及びRT2では、リプレイの当選として、当選番号「1」、「15」、「16」を有する。
また、ベル当選の種類としては、ベルA1〜A8及びB1〜B4を有する。そして、詳細は後述するが、ベルA1〜A8当選時は、変則押し(中又は右第一停止)が正解押し順となるベル当選であり、ベルB1〜B4当選時は、順押し(左第一停止)が正解押し順となるベル当選である。
さらに、ベルA1〜A8当選は、いずれも、置数として「1260」が割り当てられているが、ベルB1〜B4当選には、いずれも置数として「1620」が割り当てられており、ベルA1〜A8当選よりも当選確率が高い。
また、1BB遊技では、ベル当選のうち、ベルB1に当選するように設定されている。さらにまた、本実施形態の1BB遊技では、リプレイの抽選を行わないが、リプレイの抽選を行うようにすることは、もちろん可能である。
図1において、メインCPU63は、役抽選手段63bによる役の抽選結果に基づいて、各役に対応する当選フラグのオン/オフを制御する。本実施形態では、すべての役について、各役ごとに当選フラグ(RWM61の記憶領域の一部)を備える。そして、役抽選手段63bによる役の抽選においていずれかの当選となったときは、当該当選に対応する役の当選フラグをオンにする(当選フラグを立てる)。
たとえば、非内部中遊技において、ベルA1に当選したときは、ベル01、02a、03、04a(合計4個)に係る当選フラグがオンとなり、それ以外の役の当選フラグはオフとなる。
さらに、上述したように、1BB以外の小役及びリプレイの当選は持ち越されないので、当該遊技で小役又はリプレイに当選し、これらの役の当選フラグがオンにされても、当該遊技の終了時にその当選フラグがオフにされる。
これに対し、1BBの当選は持ち越されるので、当該遊技で1BBに当選し、当選した1BBに係る当選フラグが一旦オンになったときは、その1BBが入賞するまでオンの状態が維持され、その1BBが入賞した時点でオフにされる。
たとえば役抽選手段63bで1BBに当選し、当該遊技で1BBが入賞しなかった場合において、次遊技(内部中遊技)でベルA1に当選したときは、前遊技で当選した1BB、及び当該遊技で当選したベル01、02a、03、04a(合計5個)の当選フラグがオンにされる。そして、この遊技で1BBが入賞しなかったときは、1BBの当選フラグのオンの状態は維持される。これに対し、当該遊技での遊技結果(入賞/非入賞)にかかわらず、当該遊技の終了時にベルA1に係る4個の当選フラグはオフにされる。
なお、本実施形態における「遊技結果」とは、役抽選手段63bにより当選した当選役に対応したリール31の停止表示結果を指す。
図1において、リール制御手段63cは、リール31の回転開始命令を受けたとき、特に本実施形態ではスタートスイッチ41が操作されたときに、すべて(3つ)のリール31の回転を開始するように制御するものである。さらに、リール制御手段63cは、役抽選手段63bにより役の抽選が行われた後、当該遊技における当選フラグのオン/オフを参照して当選フラグのオン/オフに対応する停止位置決定テーブルを選択するとともに、ストップスイッチ42が操作されたときに、ストップスイッチ42が操作されたときのタイミングに基づいて、そのストップスイッチ42に対応するリール31の停止位置を決定するとともに、モータ32を駆動制御して、その決定した位置にそのリール31を停止させるように制御するものである。
たとえば、リール制御手段63cは、少なくとも1つの当選フラグがオンである遊技では、リール31の停止制御の範囲内において、当選役(当選フラグがオンになっている役)に対応する図柄の組合せを有効ラインに停止可能にリール31を停止制御するとともに、当選役以外の役(当選フラグがオフになっている役)に対応する図柄の組合せを有効ラインに停止させないようにリール31を停止制御する。
ここで、「リール31の停止制御の範囲内」とは、ストップスイッチ42が操作された瞬間からリール31が実際に停止するまでの時間又はリール31の回転量(移動コマ(図柄)数)の範囲内を意味する。
本実施形態では、リール31は、定速時は1分間で約80回転する速度で回転される。
そして、ストップスイッチ42が操作されたときは、ストップスイッチ42が操作された瞬間からリール31を停止させるまでの時間が190ms以内に設定されている。これにより、本実施形態では、ストップスイッチ42が操作された瞬間の図柄からリール31が停止するまでの最大移動コマ数が3コマに設定されている。
そして、ストップスイッチ42の操作を検知した瞬間に、リール31の停止制御の範囲内にある図柄のいずれかが所定の有効ラインに停止させるべき図柄であるときは、ストップスイッチ42が操作されたときに、その図柄が所定の有効ラインに停止するように制御される。
すなわち、役の当選時にストップスイッチ42が操作された瞬間に直ちにリール31を停止させると、当選した役に係るその図柄が所定の有効ラインに停止しないときには、リール31を停止させるまでの間に、リール31の停止制御の範囲内においてリール31を回転移動制御することで、当選した役に係る図柄をできる限り所定の有効ラインに停止させるように制御する(引込み停止制御)。
また逆に、ストップスイッチ42が操作された瞬間に直ちにリール31を停止させると、当選していない役に対応する図柄の組合せが有効ラインに停止してしまうときは、リール31の停止時に、リール31の停止制御の範囲内においてリール31を回転移動制御することで、当選していない役に対応する図柄の組合せを有効ラインに停止させないように制御する(蹴飛ばし停止制御)。
さらに、複数の役に当選している遊技では、入賞させる役の優先順位が予め定められており、所定の優先順位によって、最も優先する図柄の引込み停止制御を行う。
なお、本実施形態では設けられていないが、2BB遊技では、少なくとも1つのリール31について、ストップスイッチ42が操作された瞬間からリール31を停止させるまでの時間が75ms以内に設定される。これにより、本実施形態では、ストップスイッチ42が操作された瞬間の図柄からリール31が停止するまでの最大移動コマ数は0コマに設定される。
また、2BB遊技では、毎遊技、CBが連続作動するが、CB遊技では、小役の抽選は行われない。ただし、全小役が入賞可能にリール31が停止制御される。このため、2BB遊技では、毎遊技、CB遊技が実行されるとともに、CB遊技では、毎遊技、小役が入賞可能となる。
さらにまた、ストップスイッチ42が操作された瞬間からリール31を停止させるまでの時間が75ms以内に設定されるリール31としては、たとえば右リール31に設定することが挙げられる(この場合、左及び中リール31については、通常時と同様の190ms以内停止。)。そして、右リール31の図柄を「ANY(任意)」とした小役を設け、この小役が常に入賞する(後述する「PB=1」)ように設定すれば、毎遊技、当該小役を入賞させることが可能となる。
さらに、たとえば2BB遊技中は、1又は2以上のリプレイの抽選を行い、リプレイの当選の有無、さらには当選したリプレイの種類に応じて、入賞させる小役の種類を異ならせることが挙げられる(このように設定する場合には、右リール31の図柄を「ANY」とした小役を複数設ける)。
さらに、リール制御手段63cは、ストップスイッチ42の押し順(操作順番)を検出する。
ストップスイッチ42が操作されると、そのストップスイッチ42が操作された旨の信号がリール制御手段63cに入力される。この信号を判別することで、どのストップスイッチ42が操作されたかを検出する。
停止位置決定テーブルは、当選フラグのオン/オフの状態ごと、すなわち役抽選手段63bによる役の抽選結果ごとに対応して設けられており、ストップスイッチ42が操作された瞬間のリール31の位置に対する、リール31の停止位置を定めたものである。そして、各停止位置決定テーブルには、たとえば01番の図柄(左リール31であれば「スイカ」)が中段(有効ライン)を通過する瞬間にストップスイッチ42が操作されたときは、何図柄だけ移動制御して、何番の図柄を中段に停止させる、というように停止位置が事前に定められている。
停止位置決定テーブルは、以下のものを備える。
1BBテーブルは、1BBの当選フラグのみがオンであるとき、すなわち当該遊技で1BBに当選したとき、又は当該遊技以前に1BBに当選し、かつ当該遊技で非当選であるときに用いられ、リール31の停止制御の範囲内において、1BBに対応する図柄の組合せを有効ラインに停止させるとともに、1BB以外の役に対応する図柄の組合せを有効ラインに停止させないように、リール31の停止時の図柄の組合せを定めたものである。
本実施形態において、1BBに係る図柄は、全リール31ともに「BAR」図柄である。そして、「BAR」図柄は、各リール31に1個ずつ設けられている。したがって、任意の位置でストップスイッチ42を操作しても、常に「BAR」図柄が有効ラインに引き込まれるものではなく、有効ラインに「BAR」図柄が停止するように狙ってストップスイッチ42を操作すること(目押し)が必要である。
ここで、上記のように、適切なリール31の位置で(対象図柄を最大移動コマ数の範囲内において停止可能な操作タイミングで)ストップスイッチ42を操作しなければ、対象図柄を有効ラインに停止させる(有効ラインまで引き込む)ことができないことを、「PB(引込み率)≠1」と称する。
これに対し、ストップスイッチ42が操作された瞬間のリール31がどの位置であっても(ストップスイッチ42の操作タイミングにかかわらず)、対象図柄を常に有効ラインに停止させる(引き込む)ことができることを、「PB=1」と称する。
そして、「PB=1」は、その役について、全リール31がそのようになっている場合と、特定の(一部の)リール31についてのみそのようになっている場合とを有する。
上述したように、第1実施形態では、最大移動コマ数は「3」であるので、4図柄以内の間隔で対象図柄が配列されているときは、「PB=1」となり、5図柄以上の間隔で配列されているときは、「PB≠1」となる。
なお、2BBを設けた場合の2BBテーブルは、上記1BBテーブルと同様となる。すなわち、上記1BBテーブル中、「1BB」を「2BB」と読み替えたものに相当する。
リプレイテーブルは、リプレイの(単独)当選となったときに用いられ、リール31の停止制御の範囲内において、リプレイを入賞させるとともに、リプレイ以外の役を入賞させないように、リール31の停止時の図柄の組合せを定めたものである。
ここで、図18に示すように、すべてのリール31において、「リプレイ」の図柄は、4図柄以内の間隔で配置されている。したがって、リプレイについては、ストップスイッチ42の操作タイミングにかかわらず、リプレイを常に入賞させることができる(PB=1)。
非内部中遊技及び内部中遊技のいずれも、リプレイの当選時は、「PB=1」でリプレイが入賞する。
リプレイ重複1テーブルは、当選番号「15」のリプレイ重複1に当選したときに用いられ、リール31の停止制御の範囲内において、ストップスイッチ42の押し順が中第一停止であるときは特殊リプレイ1を入賞させ、左又は右第一停止であるときは、特殊リプレイ2を入賞させるように、リール31の停止時の図柄の組合せを定めたものである。
具体的に説明すると、リプレイ重複1テーブルが用いられた遊技において、中第一停止であるときは、中リール31の停止時に中段に「ベル」図柄を停止させる。次の第二停止が左又は右であるかは不問であり、左リール31の停止時には中段に「リプレイ」図柄を停止させ、右リール31の停止時には中段に「リプレイ」図柄を停止させる。
これに対し、左第一停止であるときは、左リール31の停止時に中段に「ベル」図柄を停止させる。そして、この場合、中リール31の停止時には中段に「リプレイ」図柄を停止させ、右リール31の停止時には中段に「ベル」図柄を停止させる。
同様に、右一停止であるときは、右リール31の停止時に中段に「ベル」図柄を停止させる。そして、この場合、左リール31の停止時には中段に「ベル」図柄を停止させ、中リール31の停止時には中段に「リプレイ」図柄を停止させる。
また、リプレイ重複当選2テーブルは、当選番号「16」のリプレイ重複2に当選したときに用いられ、リール31の停止制御の範囲内において、ストップスイッチ42の押し順が右第一停止であるときは特殊リプレイ1を入賞させ、左又は中第一停止であるときは、特殊リプレイ2を入賞させるように、リール31の停止時の図柄の組合せを定めたものである。
リール31の停止制御については、リプレイ重複1テーブルと同様であり、右第一停止であるときは「リプレイ」−「ベル」−「リプレイ」(特殊リプレイ1)を有効ラインに停止させ、左又は中第一停止であるときは「ベル」−「リプレイ」−「ベル」(特殊リプレイ2)を有効ラインに停止させる。
ベルA1テーブルは、ベルA1の当選となったとき(ベル01、02a、03、04aの各当選フラグオン時)に用いられ、リール31の停止制御の範囲内において、ストップスイッチ42の押し順及び操作タイミングに応じて、当選したベルを入賞させる(入賞可能となる)ように、リール31の停止時の図柄の組合せを定めたものである。
ここで、複数の役が同時に当選(重複当選)している場合にリール31を停止制御する方法として、「枚数優先」と「個数優先」とが挙げられる。
「枚数優先」とは、重複当選している役に係る図柄の組合せのうち、払出し枚数の最も多い役に係る図柄の組合せを構成する図柄を優先して有効ラインに停止させる(引き込む)ように、リール31の停止位置を定めている。
一方、「個数優先」とは、リール31の停止時に、その図柄を有効ラインに停止させたときに、入賞可能となる図柄の組合せの数が最も多くなるように、リール31の停止位置を定めている。
本実施形態では、ベルA1の当選時は、8枚役のベル01、1枚役のベル02a、03、04aの重複当選となる。
他のベル当選時においても、8枚役のベル01と、1枚役の3種類のベルとの重複当選になることは、同様である。
そして、本実施形態では、いずれかのベル当選時において、ストップスイッチ42の押し順が正解押し順であるときは枚数優先に基づく停止制御を行い、押し順が不正解押し順であるときは個数優先に基づく停止制御を行う。
以下、ベルA1当選時を例に挙げ、停止制御について説明する。
図23及び図24では、「名称」の欄に、かっこ書きで正解押し順を表示している。さらに、「備考」欄に、ストップスイッチ42の押し順と入賞役との関係を示している。
たとえばベルA1において、「備考」中、「213」とは、中左右の押し順を示し、「231」とは、中右左の押し順を示す(「1」=左、「2」=中、「3」=右)。
また、「1−−」とは、左第一停止(第二及び第三停止の押し順は任意)を意味し、「3−−」とは、右第一停止(第二及び第三停止の押し順は任意)を意味する。
さらに、「231:1枚(ベル03)」とは、「231」すなわち中右左の不正解押し順時には、「PB=1」で1枚役であるベル03が入賞することを意味する。
「備考」欄に記載した他の内容についても上記と同様に解釈する。
ベルA1当選時の正解押し順は、中左右である。したがって、中左右の押し順でストップスイッチ42が操作されたときは、ベル01が入賞し、8枚の払出しとなる。ここで、ベル01の図柄の組合せは、「ベル」−「ベル」−「リプレイ」であるが、右リール31の「リプレイ」は、上述したように、「PB=1」の配列である。
また、図18に示すように、全リール31ともに、「ベル」図柄は、「PB=1」の配列である。よって、ベルA1当選時に、正解押し順である中左右でストップスイッチ42が操作されたときは、有効ラインに、ベル01である「ベル」−「ベル」−「リプレイ」が停止する。
なお、16コマのリール31上に4図柄間隔で均等に配置すれば、「PB=1」の図柄に設定することができる。
一方、ベルA1当選時に、中第一停止であったが(第一停止時点では正解押し順)、右第二停止であり不正解押し順となった場合には、以下のように停止制御する。
中第一停止時には、この時点では正解押し順であるので、リール制御手段63cは、中リール31の停止時に中段に「ベル」を停止させる。この時点では、押し順正解であるので、枚数優先により中リール31を停止させている。
次に、右第二停止時には、この時点で押し順不正解となるので、リール制御手段63cは、個数優先制御を行うことにより、右リール31の停止時に中段に「リプレイ」を停止させない。
なお、中リール31の停止時には「ベル」図柄が停止しているので、中リール31の図柄が「ベル」である図柄の組合せを有効ラインに停止させるように制御する必要がある。
ベルA1当選時に、当選している役のうち、ベル01以外の役は、
「リプレイ」−「赤7」−「赤7」(ベル02a)
「リプレイ」−「赤7」−「BAR」(ベル02a)
「スイカ」−「ベル」−「スイカ」(ベル03)
「スイカ」−「ベル」−「チェリー」(ベル03)
「チェリー」−「ベル」−「スイカ」(ベル03)
「チェリー」−「ベル」−「チェリー」(ベル03)
「赤7」−「スイカ」−「ベル」(ベル04a)
「BAR」−「スイカ」−「ベル」(ベル04a)
である。
これにより、右リール31の停止時に「スイカ」図柄を有効ラインに停止させたときは、その時点で、「スイカ」−「ベル」−「スイカ」又は「チェリー」−「ベル」−「スイカ」の2種類の図柄の組合せが停止可能な状態となる。
同様に、右リール31の停止時に「チェリー」図柄を有効ラインに停止させたときは、その時点で、「スイカ」−「ベル」−「チェリー」又は「チェリー」−「ベル」−「チェリー」の2種類の図柄の組合せが停止可能な状態となる。
一方、右リール31の停止時に「リプレイ」図柄を停止させたときは、その時点で入賞可能となる図柄の組合せは、「ベル」−「ベル」−「リプレイ」(ベル01)の1種類となる。
よって、個数優先により、右リール31の停止時には、「スイカ」図柄又は「チェリー」図柄を優先して停止させることが可能となる。
図18に示すように、右リール31において、「スイカ」図柄は、07番及び15番に配置され、「チェリー」図柄は、03番及び11番に配置されている。したがって、「スイカ」又は「チェリー」図柄のいずれかは、4図柄間隔で配置されていることとなる。よって、上述したように、「スイカ」図柄又は「チェリー」図柄のいずれかを、「PB=1」で有効ラインに停止させることができる。
なお、左及び中リール31においても、右リール31のように、「スイカ」図柄又は「チェリー」図柄のいずれかは、4図柄間隔配置となっている。たとえば左リール31では、「スイカ」図柄又は「チェリー」図柄は、01番、05番、09番、13番に配置されている。また、中リール31では、「スイカ」図柄又は「チェリー」図柄は、01番、05番、09番、13番に配置されている。
仮に、右リール31の停止時に有効ラインに「スイカ」図柄を停止させたときは、その時点では、「回転中」−「ベル」−「スイカ」となる。そして、最後に左リール31を停止させるときは、「スイカ」又は「チェリー」図柄を有効ラインに停止させるように制御する。
また、右リール31の停止時に有効ラインに「チェリー」図柄を停止させたときは、その時点では、「回転中」−「ベル」−「チェリー」となる。そして、最後に左リール31を停止させるときは、上記と同様に、「スイカ」又は「チェリー」図柄を有効ラインに停止させるように制御する。
よって、ベルA1当選時に、中右左の押し順でストップスイッチ42が操作されたときは、「PB=1」(1/1の確率)でベル03を入賞させることができる。
次に、ベルA1当選時において、左第一停止であるときは、以下のように停止制御される。
左第一停止時は、第一停止時に押し順不正解が確定する。したがって、第一停止時から、個数優先によってリール31を停止制御する。
ベルA1当選時における左第一停止時に、有効ラインに「リプレイ」を停止させると、この時点で入賞可能となる図柄の組合せは、
「リプレイ」−「赤7」−「赤7」
「リプレイ」−「赤7」−「BAR」
である(合計2種類)。
また、左第一停止時に、有効ラインに「スイカ」を停止させると、この時点で入賞可能となる図柄の組合せは、
「スイカ」−「ベル」−「スイカ」
「スイカ」−「ベル」−「チェリー」
である(合計2種類)。
さらにまた、左第一停止時に、有効ラインに「チェリー」を停止させると、この時点で入賞可能となる図柄の組合せは、
「チェリー」−「ベル」−「スイカ」
「チェリー」−「ベル」−「チェリー」
である(合計2種類)。
さらに、左第一停止時に、有効ラインに「赤7」を停止させると、この時点で入賞可能となる図柄の組合せは、「赤7」−「スイカ」−「ベル」である(1種類)。
同様に、左第一停止時に、有効ラインに「BAR」を停止させると、この時点で入賞可能となる図柄の組合せは、「BAR」−「スイカ」−「ベル」である(1種類)。
以上において、入賞可能となる図柄の組合せが1種類の場合は、個数優先の対象にはならない。したがって、入賞可能となる図柄の組合せが2種類となる「リプレイ」、「スイカ」、「チェリー」のいずれかである。
このように、個数が同一となる図柄の組合せを複数有する場合には、いずれを採用してもよく、事前に決定しておけばよい。本実施形態では、ベルA1当選時の左第一停止時は、「リプレイ」図柄を有効ラインに停止させると定めている。なお、左リール31の停止時に、「リプレイ」図柄を「PB=1」で有効ラインに停止させることができる。
よって、左第一停止時に「リプレイ」図柄を有効ラインに停止させたとき、その時点で有効ラインに停止可能となるのは、
「リプレイ」−「赤7」−「赤7」
「リプレイ」−「赤7」−「BAR」
の2種類である。
次に、中停止時には、有効ラインに「赤7」図柄を停止可能であるときは「赤7」図柄を停止させ、「赤7」を停止不可能であるときは、他の図柄を停止させる。
図18に示すように、中リール31において、「赤7」図柄は、02番にのみ設けられている。したがって、15番〜16番又は01番〜02番が有効ラインを通過する瞬間(直前)に中ストップスイッチ42が操作されたときは「赤7」図柄を有効ラインに停止させることができる。それ以外の位置で中ストップスイッチ42が操作されたときは、「赤7」図柄を有効ラインに停止させることができない。このため、中リール31の停止時に「赤7」図柄を有効ラインに停止させることができる確率は「1/4」となる。
また、右停止時には、有効ラインに「赤7」又は「BAR」図柄を停止させる。図18において、「赤7」図柄は10番に配置され、「BAR」図柄は06番に配置されている。したがって、03番〜06番又は07番〜10番が有効ラインを通過する瞬間(直前)に右ストップスイッチ42が操作されたときは「赤7」又は「BAR」図柄を有効ラインに停止させることができる。それ以外の位置で右ストップスイッチ42が操作されたときは、「赤7」又は「BAR」図柄を有効ラインに停止させることができない。このため、右リール31の停止時に「赤7」又は「BAR」図柄を有効ラインに停止させることができる確率は「1/2」となる。
以上より、ベルA1当選時に、左第一停止であるとき、「リプレイ」−「赤7」−「赤7」、又は「リプレイ」−「赤7」−「BAR」を有効ラインに停止させることができる確率は、
1/1(左リール31)×1/4(中リール31)×1/2(右リール31)
=1/8
となる。
よって、「備考」欄に記載した通り、「1/8」の確率で1枚ベルが入賞する。
となる。
続いて、ベルA1当選時において、右第一停止であるときは、以下のように停止制御する。
右第一停止時は、第一停止時に押し順不正解が確定する。したがって、第一停止時から、個数優先によってリール31を停止制御する。
ベルA1当選時における右第一停止時に、有効ラインに「赤7」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、「リプレイ」−「赤7」−「赤7」である(1種類)。
また、右第一停止時に、有効ラインに「BAR」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、「リプレイ」−「赤7」−「BAR」である(1種類)。
さらにまた、右第一停止時に、有効ラインに「スイカ」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、
「スイカ」−「ベル」−「スイカ」
「チェリー」−「ベル」−「スイカ」
である(2種類)。
さらに、右第一停止時に、有効ラインに「チェリー」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、
「スイカ」−「ベル」−「チェリー」
「チェリー」−「ベル」−「チェリー」
である(2種類)。
また、右第一停止時に、有効ラインに「ベル」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、
「赤7」−「スイカ」−「ベル」
「BAR」−「スイカ」−「ベル」
である(2種類)。
よって、本実施形態では、個数2種類となる場合のうち、有効ラインに「ベル」図柄を停止させ、「赤7」−「スイカ」−「ベル」又は「BAR」−「スイカ」−「ベル」を停止させるように定める。
右第一停止時には、「PB=1」で有効ラインに「ベル」図柄を停止させることができる。
また、左停止時には、有効ラインに「赤7」又は「BAR」図柄を停止可能であるときは「赤7」又は「BAR」図柄を停止させる。図18に示すように、「赤7」又は「BAR」図柄は、06番及び14番に配置されている。したがって、上述と同様に計算すれば、1/2の確率で、「赤7」又は「BAR」図柄を有効ラインに停止させることができる。
さらにまた、中停止時には、有効ラインに「スイカ」図柄を停止可能であるときは「スイカ」図柄を停止させる。図18に示すように、「スイカ」図柄は、05番及び13番に配置されている。したがって、上記と同様に、1/2の確率で、「スイカ」図柄を有効ラインに停止させることができる。
以上より、ベルA1当選時に、右第一停止であるとき、「赤7」−「スイカ」−「ベル」又は「BAR」−「スイカ」−「ベル」を停止させることができる確率は、
1/2(左リール31)×1/2(中リール31)×1/1(右リール31)
=1/4
となる。
よって、「備考」欄に記載した通りとなる。
以上のようにして、ベルA1及びA2当選時は、213(中左右)が正解押し順となり、その押し順でストップスイッチ42を操作したときは、「PB=1」でベル01が入賞する。また、231(中右左)の押し順では、「PB=1」で1枚ベルが入賞する。
さらにまた、左第一停止の押し順では、「1/8」の確率で1枚ベルが入賞する。
さらに、右第一停止の押し順では、「1/4」の確率で1枚ベルが入賞する。
同様にして、図23に示すように、ベルA3及びA4当選時は、231(中右左)が正解押し順となり、その押し順でストップスイッチ42を操作したときは、「PB=1」でベル01が入賞する。また、213(中左右)の押し順では、「PB=1」で1枚ベルが入賞する。
さらにまた、左第一停止の押し順では、「1/8」の確率で1枚ベルが入賞する。
さらに、右第一停止の押し順では、「1/4」の確率で1枚ベルが入賞する。
さらに同様に、ベルA5及びA6当選時は、312(右左中)が正解押し順となり、その押し順でストップスイッチ42を操作したときは、「PB=1」でベル01が入賞する。また、321(右中左)の押し順では、「PB=1」で1枚ベルが入賞する。
さらにまた、左第一停止の押し順では、「1/8」の確率で1枚ベルが入賞する。
さらに、中第一停止の押し順では、「1/4」の確率で1枚ベルが入賞する。
図24に示すように、ベルA7及びA8当選時は、321(右中左)が正解押し順となり、その押し順でストップスイッチ42を操作したときは、「PB=1」でベル01が入賞する。また、312(右左中)の押し順では、「PB=1」で1枚ベルが入賞する。
さらにまた、左第一停止の押し順では、「1/8」の確率で1枚ベルが入賞する。
さらに、中第一停止の押し順では、「1/4」の確率で1枚ベルが入賞する。
続いて、ベルB1当選時の停止制御について説明する。
ベルB1当選時には、正解押し順は、123(左中右;順押し)である。したがって、左中右の押し順でストップスイッチ42が操作されたときは、ベル01が入賞し、8枚の払出しとなる。ベル01の図柄の組合せは、「ベル」−「ベル」−「リプレイ」であり、上述したように、左及び中リール31の「ベル」図柄、並びに右リール31の「リプレイ」図柄は、いずれも、「PB=1」配置であるから、常に、有効ラインに停止させることができる。
よって、ベルB1当選時に、正解押し順である左中右でストップスイッチ42が操作されたときは、有効ラインに、ベル01である「ベル」−「ベル」−「リプレイ」が停止する。
一方、ベルB1当選時に、左第一停止であったが(第一停止時点では正解)、右第二停止であり押し順不正解となった場合には、以下のように停止制御する。
左第一停止時には、この時点では正解押し順であるので、リール制御手段63cは、左リール31の停止時に中段に「ベル」を停止させる。この時点では、押し順正解であるので、枚数優先により左リール31を停止させている。
次に、右第二停止時には、この時点で押し順不正解となるので、リール制御手段63cは、個数優先制御を行うことにより、右リール31の停止時に中段に「ベル」を停止させない。
ベルB1当選時に、当選している役のうち、ベル01以外の役は、
「ベル」−「スイカ」−「スイカ」(ベル07)
「ベル」−「スイカ」−「チェリー」(ベル07)
「ベル」−「チェリー」−「スイカ」(ベル07)
「ベル」−「チェリー」−「チェリー」(ベル07)
「リプレイ」−「リプレイ」−「ベル」(ベル08)
「赤7」−「リプレイ」−「ベル」(ベル09a)
である。
そして、左リール31の図柄は「ベル」図柄であることが既に確定しているので、この時点で停止可能となる図柄の組合せは、ベル07に係る図柄の組合せ(4種類)である。したがって、右リール31の停止時には、「スイカ」又は「チェリー」図柄を停止させる。「スイカ」又は「チェリー」図柄のいずれを停止させても、その時点で、停止可能となる図柄の組合せは2種類(たとえば、右リール31の停止時に「スイカ」図柄を停止させたときは、停止可能となる図柄の組合せは、「ベル」−「スイカ」−「スイカ」又は「ベル」−「チェリー」−「スイカ」)となる。
ここで、図18に示すように、右リール31の「スイカ」又は「チェリー」図柄のいずれかの図柄は、4図柄間隔、すなわち「PB=1」で配置されている。したがって、右リール31の停止時に、「スイカ」又は「チェリー」図柄のいずれかの図柄を有効ラインに停止させることができる。
そして、中第三停止時には、「スイカ」又は「チェリー」図柄を有効ラインに停止させる。図18に示すように、中リール31の「スイカ」又は「チェリー」のいずれかの図柄は、4図柄間隔、すなわち「PB=1」で配置されている。したがって、中リール31の停止時に、「スイカ」又は「チェリー」図柄のいずれかの図柄を有効ラインに停止させることができる。
以上より、ベルB1当選時に、左右中の押し順でストップスイッチ42が操作されたときは、
左リール(1/1)×中リール(1/1)×右リール(1/1)
=1/1(PB=1)
の確率で、1枚ベル(ベル07)を停止させることができる。
次に、ベルB1当選時において、中第一停止であるときは、以下のように停止制御する。
中第一停止時は、第一停止時に押し順不正解が確定する。したがって、第一停止時から、個数優先制御によってリール31を停止制御する。
ベルB1当選時における中第一停止時に、有効ラインに「スイカ」を停止させると、この時点で入賞可能となる図柄の組合せは、
「ベル」−「スイカ」−「スイカ」
「ベル」−「スイカ」−「チェリー」
である(2種類)。
また、中第一停止時に、有効ラインに「チェリー」を停止させると、この時点で入賞可能となる図柄の組合せは、
「ベル」−「チェリー」−「スイカ」
「ベル」−「チェリー」−「チェリー」
である(2種類)。
さらにまた、中第一停止時に、有効ラインに「リプレイ」を停止させると、この時点で入賞可能となる図柄の組合せは、
「リプレイ」−「リプレイ」−「ベル」
「赤7」−「リプレイ」−「ベル」
である(2種類)。
以上において、本実施形態では、中第一停止時には、個数2種類となる場合のうち、有効ラインに「リプレイ」図柄を停止させるように定める。
中リール31の停止時に、「リプレイ」図柄は「PB=1」であるから、常に有効ラインに停止させることができる。
また、左リール31の停止時には、有効ラインに「赤7」図柄を停止可能であるときは「赤7」図柄を有効ラインに停止させる。なお、左リール31の「赤7」図柄は「PB≠1」配置である。一方、「赤7」図柄を停止させることができないときは、「リプレイ」図柄を有効ラインに停止させる。左リール31の「リプレイ」図柄は「PB=1」配置であるから、「リプレイ」図柄を常に有効ラインに停止させることができる。
さらにまた、右停止時には、有効ラインに「ベル」図柄を停止させる。右リール31の「ベル」図柄は「PB=1」配置であるから、「ベル」図柄を常に有効ラインに停止させることができる。
以上より、ベルB1当選時に、中第一停止であるとき、1枚ベルを有効ラインに停止させることができる確率は、
1/1(左リール31)×1/1(中リール31)×1/1(右リール31)
=1/1(PB=1)
となる。
次に、ベルB1当選時において、右第一停止であるときは、以下のように停止制御する。
右第一停止時は、第一停止時に押し順不正解が確定する。したがって、第一停止時から、個数優先制御によってリール31を停止制御する。
ベルB1当選時における右第一停止時に、有効ラインに「ベル」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、
「リプレイ」−「リプレイ」−「ベル」
「赤7」−「リプレイ」−「ベル」
である(2種類)。
また、右第一停止時に、有効ラインに「スイカ」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、
「ベル」−「スイカ」−「スイカ」
「ベル」−「チェリー」−「スイカ」
である(2種類)。
さらにまた、右第一停止時に、有効ラインに「チェリー」図柄を停止させると、この時点で入賞可能となる図柄の組合せは、
「ベル」−「スイカ」−「チェリー」
「ベル」−「チェリー」−「チェリー」
である(2種類)。
以上において、本実施形態では、右第一停止時には、個数2種類となる場合のうち、有効ラインに「ベル」図柄を停止させるように定める。
したがって、右リール31の「ベル」図柄、左リール31の「赤7」又は「リプレイ」図柄、及び中リール31の「リプレイ」図柄は、いずれも、当該リール31において「PB=1」配置であるから、常に、これらの図柄を有効ラインに停止させることができる。
以上より、ベルB1当選時に、右第一停止であるとき、1枚ベルを有効ラインに停止させることができる確率は、
1/1(左リール31)×1/1(中リール31)×1/1(右リール31)
=1/1(PB=1)
となる。
ベルB2当選時においては、ベルB1当選時と同様に、123(左中右)が正解押し順となり、その押し順でストップスイッチ42を操作したときは、「PB=1」でベル01が入賞する。また、132(左右中)の押し順、中第一停止、及び右第一停止時には、いずれも、「PB=1」で1枚ベルが入賞する。
同様に、ベルB3又はB4の当選時においては、132(左右中)が正解押し順となり、その押し順でストップスイッチ42を操作したときは、「PB=1」でベル01が入賞する。また、123(左中右)の押し順、中第一停止、及び右第一停止時には、いずれも、「PB=1」で1枚ベルが入賞する。
図26は、ベルA1〜B4当選時における押し順ごとの置数及びメダル獲得期待値を示す図である。
図26に示すように、ベルA1〜B4当選時のうち、ベルA1〜A8当選時については、置数が「1260」に設定されており、ベルB1〜B4当選については、置数が「1620」に設定されている。これにより、ベル当選の合計置数は「16560」となり、合算の当選確率は、「16560/65536」≒「1/4」である。
また、図26では、各ベル当選において、押し順ごとのメダル獲得期待値を表示している。たとえばベルA1当選時の場合、正解押し順「213」であるときは、「PB=1」でベル01が入賞するので、メダル獲得期待値は「8」となる。また、押し順「231」であるときは、「PB=1」で1枚ベルが入賞するので、メダル獲得期待値は「1」となる。
さらにまた、左第一停止時は、「1/8」の確率で1枚役が入賞する。したがって、押し順「123」及び「132」のいずれであっても、メダル獲得期待値は、「0.125」となる。
さらに、右第一停止時は、「1/4」の確率で1枚役が入賞する。したがって、押し順「312」及び「321」のいずれであっても、メダル獲得期待値は、「0.25」となる。
そして、ベル押し順A1〜A8においては、いずれも、メダル獲得期待値は、正解押し順(1つ)で「8」であり、不正解押し順のうち1つ(第一停止時押し順正解時)で「1」、2つで「0.125」、2つで「0.25」となる。よって、その合計は、「9.75」となる。したがって、いずれかのベルA1〜A8当選であるときに、いずれか1つの押し順をランダムに選択したときのメダル獲得期待値は、「1.625(枚)」となる。
また、ベルB1当選時の場合、正解押し順「123」であるときは、「PB=1」でベル01が入賞するので、メダル獲得期待値は「8」となる。また、不正解押し順では、いずれの不正解押し順であっても、「PB=1」で1枚ベルが入賞するので、メダル獲得期待値は「1」となる。よって、その合計は、「13」となる。したがって、いずれかのベルB1〜B4当選であるときに、いずれか1つの押し順をランダムに選択したときのメダル獲得期待値は、「約2.17(枚)」となる。
次に、いずれか1つの押し順を固定とし、その押し順をずっと継続した場合には、以下のようになる。たとえば、非ART中は、ずっと「左中右」の押し順で遊技を消化するとする。この場合、図26に示すように、「置数×当該押し順のメダル獲得期待値」の合計は、
(1260×0.125)×8+1620×8×2+1620×1×2
=30420
となる。
そして、図26に示すように、この値は、いずれの押し順であっても同一値となる。
この値を「65536」で割ると、
30420/65536
≒0.46(枚)(ベル当選に基づくメダル獲得期待値)
となる。
以上より、ずっと同一押し順で遊技を消化したときは、押し順による優劣はなく、ベル当選によるメダル獲得期待値は、1遊技あたり、「0.46(枚)」となる。
さらに、いずれの押し順であってもベル当選に基づくメダル獲得期待値は同一であるので、押し順をランダムにして遊技を進行したときと、上記のようにずっと同一押し順(たとえば左中右の順押し)で遊技を消化したときとで、メダル獲得期待値は同一となる。
チェリー重複テーブルは、チェリー01〜04の重複当選となったときに用いられ、チェリー01〜04のいずれかを有効ラインに停止させるように、リール31の停止時の図柄の組合せを定めたものである。
図18に示すように、チェリー01〜04の左リール31の図柄は、いずれも「チェリー」図柄である。そして、図18に示すように、左リール31では、05番及び13番に「チェリー」図柄が配置されている。したがって、「チェリー」図柄は、「PB≠1」配置である。ただし、チェリー重複当選時にその旨が遊技者に報知され、遊技者が「チェリー」図柄が有効ラインに停止するように左リール31を目押しすれば、「チェリー」図柄を有効ラインに停止させることができる。また、左リール31を任意の位置で停止させたとき、「1/2」の確率で「チェリー」図柄が有効ラインに停止する。
また、中リール31の図柄は、「ANY」であるので、中リール31の停止時には、いずれの図柄を有効ラインに停止させてもよい。
さらにまた、右リール31の停止時には、「赤7」、「BAR」、「青7」、又は「白7」図柄のいずれかを有効ラインに停止させる。これら4つのうちのいずれかの図柄を有効ラインに停止させれば、いずれかのチェリー01〜04が入賞可能となるからである。
ここで、図18に示すように、「赤7」、「BAR」、「青7」、「白7」図柄は、4図柄間隔配置である。したがって、「PB=1」で、いずれかの図柄を有効ラインに停止させることができる。
これにより、チェリー当選時には、左リール31のみ、目押しが必要となる。また、チェリー重複当選時に、全く目押しを行うことなく全リール31を停止させたときに、いずれかのチェリーが入賞する確率は、「1/2」となる。
非当選テーブルは、すべての当選フラグがオフであるときに用いられ、いずれの役に対応する図柄の組合せも有効ラインに停止しないように、リール31の停止時の図柄の組合せを定めたものである。
1BBの当選を持ち越しているとき(内部中)にいずれかの小役又はリプレイに当選したときは、小役又はリプレイの入賞を優先する停止位置決定テーブルを用いてリール31を停止制御する。
先ず、内部中遊技のリプレイ当選時は、リプレイの入賞を優先するが、リプレイは、常に入賞可能(PB=1)である。したがって、当該遊技で1BBが入賞する場合はない。
また、内部中遊技のチェリー当選時は、チェリーの入賞を優先するが、左第一停止時に、有効ラインに「チェリー」図柄を停止させることができないが、1BBに係る図柄を停止可能であるときは、当該図柄を停止させ、1BBを入賞可能な停止形とする。
さらにまた、内部中遊技のベル当選時は、ベルの入賞を優先するが、順押し時に、1枚ベルに係る図柄を有効ラインに停止させることができないが、1BBに係る図柄を停止可能であるときは、当該図柄を停止させ、1BBを入賞可能な停止形とする。
また、本実施形態では設けられていないが、2BB遊技中、又は単独当選するCBを設けたときのCB遊技中に用いられるCBテーブルは、全小役の当選フラグがオンとなり、いずれかの小役に対応する図柄の組合せが有効ラインに停止可能にリール31の停止時の図柄の組合せを定めたものである。
図1において、メインCPU63の入賞判定手段63dは、すべてのリール31の停止時に、いずれかの役に対応する図柄の組合せが有効ラインに停止したか否かを判断する。入賞判定手段63dは、たとえばリールセンサ39がインデックスを検知してからのモータ32のステップ数を検知することにより、有効ライン上の図柄を判断する。ただし、入賞判定手段63dは、ストップスイッチ42が操作され、リール31の停止位置が決定された時に、そのリール31が停止したか否かにかかわらず、停止図柄を判断することが可能である。
払出し手段63eは、すべてのリール31の停止時に、いずれかの役に対応する図柄の組合せが有効ラインに停止したと判断され、その役の入賞となったときに、その入賞役に応じて所定枚数のメダルを遊技者に対して払い出す。払出しは、上述したように、貯留枚数として加算するか、又は貯留枚数が「50」を超えるときは実際にメダルを払出し口から払い出す。メダルを実際に払い出すときは、ホッパーモータ36を駆動制御して、所定枚数のメダルを払い出す。メダルの払出し時には、払い出されたメダルを払出しセンサ37a及び37bにより検知し、正しく払い出されたか否かをチェックする。
遊技状態制御手段63fは、遊技状態の移行条件を満たすか否かを判断し、満たすと判断したときは、遊技状態を移行させるように制御する。さらに、遊技状態制御手段63fは、ART遊技を実行するか否かの抽選を含め、ART遊技を制御する(ART制御手段)。
図27は、遊技状態(内部状態を含む)の移行を説明する図である。以下、図27を参照しつつ、状態制御手段63fついて説明する。
本実施形態の遊技状態としては、通常遊技と1BB遊技(特別遊技)とを備える。さらに、通常遊技は、非内部中遊技と内部中遊技とを備える。さらに、非内部中遊技は、RT1及びRT2を備える。
遊技状態制御手段63fは、非内部中遊技(RT1及びRT2)において特別役(1BB)に当選し、当該遊技で当選した特別役が入賞しなかったときは、次遊技から、内部中遊技に移行させるように制御する。さらに、内部中遊技において、当選した特別役が入賞したときは、次遊技から、特別遊技(1BB遊技)に移行させるように制御する。
1BB遊技では、メダル払出し枚数が200枚に到達するまで実行される。さらに、1BB遊技中は、RBが連続作動する(RB遊技が連続して実行される)。RB遊技は、遊技回数が2回又は役の入賞回数が2回のいずれかを満たすまで継続される。1BB遊技中において、当該遊技の終了時にRBの作動終了条件を満たすと判断したときはRBの作動を終了し、さらに1BB遊技の終了条件を満たしていないと判断したときは、次遊技に移行してRBを再度作動させる。
そして、1BB遊技において1BB遊技の終了条件を満たすときは、1BB遊技を終了し、次遊技から、非内部中遊技(RT1)に移行させるように制御する。
なお、RT2は、ART遊技に設定されている。したがって、RT2中に特別役に当選したときは、RT2をその時点で中断し、内部中遊技に移行する。そして、特別遊技の終了後、RT2に戻って、残りのARTを実行する。
なお、ART(RT2)中に特別役に当選したときは、特別役が非入賞であれば、ARTを継続し(内部中ARTとする)、ARTの終了後に特別役を入賞させてもよい。
RT1は、非ATかつリプレイ当選確率が通常確率に設定された、いわゆる「通常中」である。そして、遊技状態制御手段63fは、このRT1中に、ARTの抽選を実行する。RT1においてARTに当選し、特殊リプレイ1が入賞すると、RT2(ART)に移行する。RT2(ART)は、AT遊技であって、かつ、役抽選テーブルはRT1と異なる(リプレイ当選確率が高確率に設定された)遊技である。RT2は、ATかつRT(リプレイの当選確率が高いことを意味するRT)であるので、「ART」と称している。
また、本実施形態における「AT」は、ストップスイッチ42の操作態様に応じて、当該遊技の遊技結果又はその後の遊技において有利/不利が生じる役に当選したときに、遊技者にとって最も有利となるストップスイッチ42の操作態様を遊技者に対して報知する遊技(報知遊技)をいう。特に本実施形態では、第1に、ベル当選時に、正解押し順(8枚の払出しとなる押し順)を報知する。さらに第2に、リプレイ重複当選時には、特殊リプレイ1を入賞させる押し順を報知する。これにより、RT1(非ART)であるときは、RT2(ART)に移行することが可能となり、RT2(ART)中は、ARTの終了条件を満たさない限り、RT1に転落することがなくなる。
また、遊技状態制御手段63fは、ART遊技中は、上述した獲得数表示LED72に正解押し順を表示(報知)する。たとえば、ベルA1に当選したときは、「A1」等と表示する。これにより、遊技者は、ベルA1に当選したことを知ることができるので、ベルA1に対応する正解押し順が「中左右」であることを知っていれば、当該遊技でベル02aを入賞させることができる。
なお、ART遊技中は、メイン制御基板60は、正解押し順の情報をサブ制御基板80に送信する。そして、サブ制御基板80は、たとえば画像表示装置23に正解押し順(たとえばベルA1当選時は、「中左右」)を画像表示する。
非ART中は、ベル当選時に正解押し順を報知しない。
また、非ARTは、内部状態として、ARTに当選する確率が異なる低確率、通常確率、及び高確率と、ART当選後の前兆とを備える。ここで、「内部状態」とは、遊技状態とは異なる概念であって、一つの遊技状態中に、複数の内部状態を備えるものである。本実施形態では、RT1(非ART)において、上記4つの内部状態を備える。
さらに、低確率、通常確率、又は高確率中にARTに当選すると、ARTに当選しているがARTの開始前の遊技期間である前兆に移行する。この前兆中において、ARTに当選していることを遊技者に報知する。
また、前兆の終了後、リプレイ重複当選となったときに、特殊リプレイ1を入賞させる押し順を報知する。当該遊技で特殊リプレイ1が入賞すると、RT1からRT2(ART)への移行条件を満たし、次遊技からRT2を開始する。
さらにまた、RT2(ART)は、内部状態として、ARTの遊技回数が上乗せされる期待値が異なる通常確率と高確率とを備える。
これらの内部状態の移行は、当該遊技における当選役によって行われる。また、一つの内部状態から他の内部状態に移行するときは、前記一つの内部状態における遊技終了時(全リール31が停止して当該遊技の遊技結果を表示した時)に行われる。
本実施形態では、前兆に移行することに決定したときが、ARTの当選に相当する。
RT1の内部状態では、低確率、通常確率、高確率間を移行する。たとえば、以下のように設定される。
(1)低確率中
チェリー当選時、40%の確率で通常確率に移行し、5%の確率で高確率に移行し、1%の確率で前兆に移行する(54%の確率で移行なし)。
(2)通常確率中
a)チェリー当選時、50%の確率で高確率に移行し、10%の確率で前兆に移行する(40%の確率で移行なし)。
b)リプレイ当選時、5%の確率で低確率に移行する(95%の確率で移行なし)。
(3)高確率中
a)チェリー当選時、100%の確率で前兆に移行する。
d)リプレイ当選時、5%の確率で通常確率に移行し、3%の確率で低確率に移行する(92%の確率で移行なし)。
(4)前兆中
遊技状態制御手段63fは、上記のような抽選において前兆に移行することに決定したときは、前兆の遊技回数を、「1」〜「32」の範囲内において抽選で決定し、カウンターにその値をセットする。そして、カウンター値を毎遊技「1」ずつ減算し、「0」となったときは、前兆を終了する。また、前兆中のいずれかの時点で、ARTの当選報知を行う。なお、一旦前兆に移行したときは、前兆から、低確率、通常確率、又は高確率に移行する場合はない。また、ARTに当選したときは、その時点でART確定である旨を報知し、前兆を経由しなくてもよい(前兆の遊技回数を「0」にする)。
また、前兆の終了時は、ART確定演出を表示し、リプレイ重複当選となるまで待機する。そして、RT1においてリプレイ重複当選となったときに、特殊リプレイ1を入賞させる押し順を報知する。なお、前兆終了後は、リプレイ重複当選時に特殊リプレイ1を入賞させる押し順を報知するが、ベル当選時には正解押し順を報知しない。
なお、RT1において、非ART中は、順押しで遊技が消化されるので、リプレイ重複当選となった遊技では、特殊リプレイ2が入賞する。そして、RT1において特殊リプレイ2が入賞してもRT移行はない。
RT1において特殊リプレイ1が入賞すると、次遊技から、RT2(ART)に移行する。
RT2(ART)では、ARTの終了条件を満たすまで、ベル当選時に正解押し順が報知される。また、リプレイ重複当選時に特殊リプレイ1を入賞させる押し順を報知する。なお、RT2において特殊リプレイ2が入賞するとRT1に移行するが、特殊リプレイ1が入賞してもRT移行はない。
また、ARTに当選していない非ART(報知なし時)において、リプレイ重複当選時に遊技者が変則押しをし、特殊リプレイ1を入賞させても、遊技状態制御手段63fは、ARTを開始しない。
ただし、RT1において特殊リプレイ1が入賞すると、次遊技からRT2に移行する。しかし、偶然にRT1からRT2に移行しても、そのRT2で順押しを継続していれば、リプレイ重複当選時に特殊リプレイ2が入賞してRT1に戻る。
ARTの終了条件としては、種々挙げられる。たとえば、
(1)遊技回数が所定回数(たとえば初期遊技回数を「50」とし、この「50」に「N」が上乗せされた場合には、「50+N」)に到達したとき
(2)払出し枚数又は差枚数(払出し枚数から投入枚数を引いた枚数)が所定枚数(たとえば、300枚)に到達したとき
(2)ベル当選回数(正解押し順時)が所定回数(たとえば40回)に到達したとき
が挙げられる。
また、ART中は、上述したように、内部状態として、通常確率と高確率とを有する。たとえば第1に、ARTの開始時は常に通常確率に設定する方法と、ARTを開始するまでに、ARTの初期内部状態を通常確率とするか高確率とするかを抽選で決定する方法とが挙げられる。
本実施形形態では、ART中にレア小役であるチェリーに当選したときには、ARTの上乗せ抽選を行う。そして、通常確率よりも高確率の方が、上乗せされる確率が高く、かつ遊技回数が多くなるように設定する。
たとえば、ARTの終了条件を遊技回数とし、遊技回数の初期値を「50」に設定する。そして、チェリー当選時に、遊技回数を上乗せするか否か、及び上乗せ遊技回数を抽選で決定する。上乗せ遊技回数を決定したときは、その時点でのARTの残り遊技回数に上乗せ遊技回数を加算する処理を行う。
たとえば、以下のようなパターンが挙げられる。なお、上乗せ数「0」とは、上乗せ抽選で非当選であることを意味する。
(1)通常確率中
チェリー当選時、上乗せ数は、「10」(30%)、「30」(50%)、「50」(20%)の中から抽選で決定する。
(2)高確率中
チェリー当選時、上乗せ数は、「30」(30%)、「50」(40%)、「100」(30%)の中から抽選で決定する。
また、ART中における通常確率と高確率の移行は、役の抽選結果や、役抽選とは別個に行う抽選で行うことが挙げられる。
役抽選結果に基づいて内部状態を移行する場合、たとえば、通常確率中は、チェリー当選時の50%で高確率に移行することが挙げられる。
また、高確率中は、リプレイ当選時の10%で通常確率に移行することが挙げられる。
遊技状態制御手段63fは、RT2への移行後は、特殊リプレイ2が入賞しない限り、RT2に滞在し続ける。RT2で特殊リプレイ2が入賞して初めて、RT1に移行する。
これに対し、RT2においてARTを終了したときは、次遊技から、リプレイ重複当選時に特殊リプレイ1を入賞させる押し順や、ベル当選時の正解押し順を報知しない。したがって、遊技状態の移行(RT2からRT1への移行)と、ARTの終了のタイミングとは必ずしも一致するものではない。
なお、図27の例では、通常中であるRT1において特殊リプレイ1が入賞すると、ARTに対応するRT2に移行するが、これに限らず、RT1とRT2との間に他のRT(ART準備中)を設けてもよい。この場合、ART準備中は、RT1とリプレイ当選確率を同一に設定する。そして、RT1でARTに当選すると、リプレイ重複当選時に、RT1からART準備中に昇格する正解押し順を報知する。さらに、ART準備中において、リプレイ重複当選時に、ART準備中からRT2(ART)に昇格する正解押し順を報知する。このように設定すれば、RT1から、(ARTに当選していないときに)偶然にRT2に移行してしまう確率をより低くすることができる。
コマンド送信手段63gは、サブ制御基板80に対し、各種の情報(コマンド)を送信するものである。送信される情報としては、メダルが投入された旨の情報、スタートスイッチ41が操作された旨の情報、役の抽選結果(当選役)の情報、リール31の回転が開始された旨の情報、ストップスイッチ42が操作されたかの情報、リール31が停止した旨の情報、各リール31の停止位置(有効ラインに停止した図柄)の情報、入賞役の情報、遊技状態(ARTの有無)及び内部状態の情報等が挙げられる。
また、図1において、メイン制御基板60は、外部集中端子板100と電気的に接続されている。そして、メイン制御基板60は、ARTを実行することに決定したときに、外部集中端子板100に対して外部信号(1BB遊技やARTの実行を示す信号等)を送信する。その外部信号は、たとえば外部集中端子板100から、遊技情報表示装置やホールコンピュータ等に送信される。
本実施形態では、図8(出力ポート7)に示すように、ARTの発動時、継続時、ART中には、それぞれその旨の外部信号(ART信号)を送信する。
以上説明したように、遊技の開始時には、遊技者は、ベットスイッチ40を操作して予め貯留されたメダルを投入するか、又はメダル投入口43からメダルを投入し、スタートスイッチ41を操作(オン)する。スタートスイッチ41が操作されると、リール制御手段63cは、すべてのモータ32を駆動制御して、すべてのリール31を回転させるように制御する。このようにしてリール31がモータ32によって回転されることで、リール31上の図柄は、所定の速度で表示窓13内で上下方向に移動表示される。また、スタートスイッチ41が操作されると、役抽選手段63bは、役の抽選を行う。
そして、遊技者は、ストップスイッチ42を押すことで、そのストップスイッチ42に対応するリール31(たとえば、左ストップスイッチ42に対応する左リール31)の回転を停止させる。ストップスイッチ42が操作されると、リール制御手段63cは、そのストップスイッチ42に対応するモータ32を駆動制御して、そのモータ32に係るリール31の停止制御を行う。
そして、すべてのリール31の停止時における図柄の組合せにより、当該遊技の遊技結果を表示する。さらに、いずれかの役に対応する図柄の組合せが有効ラインに停止したとき(その役の入賞となったとき)は、入賞した役に対応するメダルの払出し等が行われる。
図1において、サブ制御基板80は、遊技中及び遊技待機中における演出(情報)の選択や出力等を制御するものである。
メイン制御基板60とサブ制御基板80とは、電気的に接続されており、メイン制御基板60のメインCPU63内にあるシリアル通信回路により、サブ制御基板80に一方向で演出等に必要な情報(信号、データ、制御コマンド等)を送信する。
なお、メイン制御基板60とサブ制御基板80とは、電気的に接続されることに限らず、光通信手段を用いた接続であってもよい。さらに、電気的接続及び光通信接続のいずれも、シリアル通信に限らず、パラレル通信であってもよく、シリアル通信とパラレル通信とを併用してもよい。
また、メイン制御基板60と同様に、サブ制御基板80は、RWM81、ROM(サブROM)82、及びサブCPU83等を備える。
ここで、サブ制御基板80上には、RWM81、ROM82、及びサブCPU83を含むMPUが搭載される。さらに、MPU内蔵のRWMとは別個に、MPUの外部(サブ制御基板80上)にRWMが搭載される。このため、RWM81というときは、MPU内蔵のRWM、及び外部RWMを含む意味で使用する。
RWM(サブメモリ)81は、サブCPU83が演出を制御するときに取り込んだデータ等を一時的に記憶可能な記憶媒体である。
また、ROM(サブROM)82は、演出用データとして、演出に係る抽選を行うとき等のプログラムや各種データ等を記憶しておく記憶媒体である。
サブ制御基板80には、入力ポート又は出力ポート(図1では図示を省略する)を介して、以下のような演出用の周辺機器が電気的に接続されている。
演出ランプ21は、たとえばLED等からなり、所定の条件を満たしたときに、それぞれ所定のパターンで点灯する。なお、演出ランプ21には、各リール31の内周側に配置され、リール31に表示された図柄(表示窓13から見える上下に連続する3図柄)を背後から照らすためのバックランプ、リール31の上部からリール31上の図柄を照光する蛍光灯、スロットマシン10のフロントカバー前面に配置され、役の入賞時等に点滅する枠ランプ等が含まれる。
また、スピーカ22は、遊技中に各種の演出を行うべく、所定の条件を満たしたときに、所定のサウンドを出力するものである。
さらにまた、画像表示装置23は、液晶ディスプレイ、有機ELディスプレイ、ドットディスプレイ等からなるものであり、遊技中に各種の演出画像(1BB遊技中及びART中の押し順、役の抽選結果に対応する演出等)や、遊技情報(1BB遊技及びART中の遊技回数や獲得枚数等)等を表示するものである。
また、十字キー24及びプッシュボタン25は、遊技者が意図する情報を表示させたりするときや、ホール管理者(店長等)が各種の設定を変更するとき等に用いられる。
サブCPU83は、演出出力制御手段83aを備える。
演出出力制御手段83aは、当選役及び遊技状態等に応じて、どのようなタイミングで(スタートスイッチ41の操作時や各ストップスイッチ42の操作時等)、どのような演出を出力するか(ランプ21をどのように点灯、点滅又は消灯させるか、スピーカ22からどのようなサウンドを出力するか、及び画像表示装置23にどのような画像を表示させるか等)を抽選によって決定する。
そして、演出出力制御手段83aは、その決定に従い、演出ランプ21、スピーカ22、画像表示装置23の出力を制御する。また、1BB遊技中やART中は、ストップスイッチ42の押し順、獲得枚数、残り遊技回数等を画像表示する。
続いて、メイン制御基板60(メインCPU63)による情報処理について、フローチャートに基づき説明する。
図28は、メイン制御基板60によるプログラムを開始するときの処理(M_PRG_START )を示すフローチャートである。
図28において、ステップS11でプログラムが開始されると、次のステップS12において、メイン制御基板60は、レジスタを初期化する。具体的処理としては、たとえば、メインCPU63に設けられているシリアル通信回路の通信速度の設定、割込みの種類の設定(たとえば、マスカブル割込みに設定すること等)、送信する制御コマンドに付与するパリティビットの設定(たとえば、偶数パリティに設定すること等)が挙げられる。
いいかえれば、スロットマシン10を正常に動作させるために必要な初期値を各種レジスタに設定する。
なお、本実施形態では、レジスタは複数(たとえばAレジスタ〜Lレジスタや及び送信用レジスタ等)設けられている。
次にステップS13に進み、メイン制御基板60は、電源断処理済フラグが正常値であるか否かを判断する。本実施形態では、電源断時に、後述するステップS652(図66)において、電源断処理済みフラグ(アドレス「F01F」の「_FL_POWER_OFF 」)を記憶する。この電源断処理済みフラグは、上述したように、電源オン時に、前回の電源断が正常に行われたか否かを判断するためのフラグである。そして、ステップS13において、電源断処理済みフラグが正常値(本実施形態では、「01」H)であると判断したときは、ステップS14に進み、正常値でない(本実施形態では、「01」H以外)と判断したときは、ステップS14及びS15のチェックサムデータの算出を行うことなくステップS16に進む。
ステップS14では、RWM61のチェックサムの算出を実行する。具体的には、電源断処理時に実行したRWM61のチェックサム(後述する図66のステップS654)と同範囲(たとえば、プログラムで使用する作業領域、未使用領域、スタックエリア)のチェックサム算出(対象となるアドレスのデータ値の加算)を実行するとともに、算出したデータに、RWM61に記憶されたチェックサムデータ(アドレス「F075」の「_WK_SUM_CHK 」)を加算したチェックサムデータを算出する。
本実施形態では、RWM61の所定範囲のチェックサムを行うとともに、アドレス「F075」のチェックサムデータ(_WK_SUM_CHK )を加算したチェックサムデータを算出すると、当該チェックサムデータが「0」となるように、アドレス「F075」のチェックサムデータが設定されている。
ステップS15では、チェックサムを算出するRWM61の範囲が完了したか否かを判定する。具体的には、現時点でのチェックサムを算出したRWM61のアドレスから次のアドレスを指定し、次のアドレスがチェックサムを算出するアドレスであるか否かを判断する。チェックサムの算出が終了していないと判断したときはステップS14に進む。一方、チェックサムを算出するRWM61の範囲が完了したと判断したときはステップS16に進む。
なお、以降の処理においてもRWM61の複数範囲(アドレス)に記憶されたデータを初期化する場合には、本実施形態では指定されたRWM61の範囲で同様の処理を実行するものとする。
ステップS16では、メイン制御基板60は、電源断復帰データを所定のレジスタ(たとえば、Bレジスタ)に記憶する。ここで、電源断処理済みフラグが正常値であり、かつRWM61のチェックサムデータが正常値であると判断したときは、電源断復帰データとして正常値を記憶する。一方、電源断処理済みフラグが異常値であったとき(ステップS13で「No」のとき)、及び/又はRWM61のチェックサムデータが異常値である(ステップS14で算出された、全範囲のチェックサムデータ値が「0」でない)と判断したときは、電源断復帰データとして異常値を記憶する。
次のステップS17では、入力ポート1(図6)のレベルデータを所定のレジスタ(たとえば、Aレジスタ)に記憶する。次にステップS18に進み、入力ポート1のレベルデータに基づいて、指定スイッチがオンであるか否かを判断する。ここで「指定スイッチ」とは、本実施形態では、入力ポート1のうち、ドアスイッチ16の信号(D1)、設定ドアスイッチ54の信号(D2)、設定キースイッチ52の信号(D3)の3つである。
そして、ドアスイッチ16の信号がオンであり(フロントカバー(筐体)が開けられており)、設定ドアスイッチ54の信号がオンであり(設定ドアが開けられており、)、かつ、設定キースイッチ52の信号がオンであるとき(設定キーが挿入されているとき)に限り設定変更を許可する。3個全ての指定スイッチがオンであるときは、ステップS22の設定変更処理に移行可能となるが、少なくとも1つの指定スイッチがオンでないときは、ステップS22の設定変更処理に移行することを許可しない。
つまり、ドアスイッチ16の信号がオフのときや(フロントカバーが閉じられている)、設定ドアスイッチ54の信号がオフのとき(設定ドアが閉じられている)にもかかわらず、設定キースイッチ52の信号がオンになることはあり得ず、不正の可能性が高いことから、設定変更処理への移行を許可しない。
したがって、ステップS18で全指定スイッチがオンであると判断したときはステップS19に進み、オンでないと判断したときはステップS21に進む。
ステップS19では、メイン制御基板60は、電源断復帰データが異常値であるか否かを判断する。この電源断復帰データは、ステップS16でレジスタに記憶したデータである。
そして、電源断復帰データが異常値であると判断したときは、電源断復帰データが異常値である旨(ステップS16で記憶したデータ)を保持しつつステップS22の設定変更処理(M_RANK_SET)に進み、異常値でないと判断したときはステップS20に進む。ステップS20では、設定変更不可フラグがオンであるか否かを判断する。ここで、設定変更不可フラグは、上述した図14のメダル管理フラグのD6ビット値であって、後述する役抽選処理(ステップS60)〜遊技終了チェック処理(ステップS73)までの間は不可にされるフラグである。そして、設定変更不可フラグがオンであるときはステップS21に進み、オンでないときは電源断復帰データが正常値である旨(ステップS16で記憶したデータ)を保持しつつステップS22の設定変更処理(M_RANK_SET)に進む。このようにして、本実施形態では、電源断復帰データが異常値であるときの設定変更処理と、電源断復帰データが正常値であるときの設定変更処理とを有する。
なお、本実施形態では、設定変更不可フラグを設けたが、常時設定変更が可能に構成されている場合には、設定変更不可フラグを設けなくてもよい。その場合、ステップS20に相当する処理は不要となる。
ステップS21では、メイン制御基板60は、電源断復帰データが正常値であるか否かを判断する。この処理は、ステップS19と同等の処理であり、ステップS16でレジスタに記憶したデータを参照する。そして、電源断復帰データが正常値であると判断したときはステップS23に進んで電源復帰処理(M_POWER_ON)を行う。これに対し、電源断復帰データが正常値でないと判断したときはステップS24に進んで復帰不可能エラー処理(SS_ERROR_STOP )を行う。ステップS21において電源断復帰データが正常値でないと判断されたときのエラーは、本実施形態では「E1」エラーと称し、「E1」である旨を所定のデジットに表示する(後述)。復帰不可能エラーは、設定変更処理が実行されないと解除されないエラーである。
以上のように、プログラム開始処理(M_PRG_START )では、電源断復帰データが正常値である場合及び異常値である場合のいずれも、設定変更が可能なときは設定変更処理に進む。
また、指定スイッチがオンでない場合(ステップS18で「No」)又は設定変更が不可である場合において、電源断復帰データが異常値であるとき(ステップS21で「No」)は復帰不可能エラー処理(SS_ERROR_STOP )に進み、電源断復帰データが正常値であるとき(ステップS21で「Yes」)は電源復帰処理(M_POWER_ON)に進む。
図29は、ステップS22における設定変更処理(M_RANK_SET)を示すフローチャートである。
先ず、ステップS801において、RWM61の初期化範囲として、「所定範囲」をレジスタに記憶する。ここでは、電源断処理が正常に実行されたと判断した場合に備えるためのセットであり、設定値データ(アドレス「F000」)、遊技状態(たとえば、RT状態)データ、当選フラグ(持ち越しているフラグ)を初期化しない(含まない)ようにした初期化範囲を「所定範囲」とする。なお、これに限らず、「所定範囲」は、設定値データを含まない範囲であればよく、遊技状態(RT状態等)データや当選フラグの記憶範囲を含めるか否かは任意である。
次にステップS802に進み、メイン制御基板60は、電源断復帰データ(図28のステップS16で記憶した値)が正常値であるか否かを判断する。電源断復帰データが正常値であると判断されたときは、ステップS804に進み、ステップS801における「所定範囲」の記憶を維持する。一方、ステップS802において電源断復帰データが正常値でないと判断されたときはステップS803に進み、メイン制御基板60は、RWM61の初期化範囲として、「特定範囲」をレジスタに記憶する。ここで、電源断が正常でないと判断したときは、設定値データ(アドレス「F000」の「_NB_RANK」)、遊技状態、当選フラグ(たとえばアドレス「F049」の「_NB_CND_BNS 」)についても初期化の対象とした初期化範囲として、「特定範囲」とする。
そして、ステップS804に進み、ステップS801でセットした所定範囲又はステップS803でセットした特定範囲の初期化を開始する。これにより、電源断復帰データが正常値であるときは、RWM61の設定値データ等は初期化されずに所定範囲が初期化される。一方、電源断復帰データが異常値であるときは、RWM61の設定値データを含む特定範囲が初期化される。次のステップS805では、ステップS804で開始した初期化が終了したか否かを判断する。初期化が終了したと判断したときはステップS806に進む。
なお、ステップS804において特定範囲が初期化されると、アドレス「F000」の設定値データの値は「0」となる。
ここで、本実施形態のようにAT抽選を行う場合には、ATが実行されるまでの残りゲーム数、ATの実行の有無を示すフラグ、ATの当選確率が異なる複数のステージのうち現在滞在しているステージ(上述のRT状態とは異なる)を示すフラグ等を、RWM61に記憶しているが、これらのデータは、通常、上記所定範囲内の領域に記憶される。したがって、電源断復帰データが正常値である場合であっても、これらのデータは、設定変更処理時に消去される。
これにより、たとえば遊技店側が前日の設定値と同一の設定値を設定したい場合には、新たに設定値を設定する(同一設定の打ち直しを行う)ことなく、上記のATに関するデータをクリアすることができる。
ステップS806では、割込み処理の起動設定を行う。ここでは、ステップS12で指定した割込み処理に対応する各種レジスタの設定を行う。本実施形態では割込み処理としてタイマ割込み処理を使用しているため、タイマ割込みの周期(本実施形態では、「2.235ms」)を設定する処理等が対応する。そして、このステップS806の処理後に割込み処理が実行される。いいかえれば、「割込み起動」前は、割込み処理が実行されないように構成されている。次のステップS807では、設定変更開始時の出力要求セットを行う。この処理は、設定変更処理を開始することをサブ制御基板80側に知らせるために、サブ制御基板80に送信する制御コマンドをレジスタにセット(記憶)する処理である。
なお、ステップS805においてRWM61の初期化が終了してから、ステップS806において割込み処理を起動している。このように設定しているのは、たとえばリール31の回転中に電源断された後、電源を投入して設定変更処理に進んだときは、RWM61を初期化しないと、リール31の回転中であると判断されてしまうためである。この点については、後述する図34の電源復帰処理も同様であり、RWM61の初期化終了後(ステップS835で「Yes」時)に割込み処理を起動している(ステップS837)。
また、ステップS807では、設定変更開始時のコマンドとして、一律のコマンドをサブ制御基板80に送信してもよいが、ステップS802における判断(電源断復帰データが正常値であるか否か)に応じて、電源断からの復帰が正常である旨を含むコマンドと、電源断からの復帰が正常でない旨を含むコマンドとを設け、それぞれサブ制御基板80に送信してもよい。このようにすれば、サブ制御基板80側では、電源断からの復帰が正常に行われたか否かを設定変更開始時に報知することが可能となり、ホール管理者は、設定変更時に、当該報知により、電源断からの復帰が正常であったか否かを判断できるようになる。
なお、「出力要求セット」とは、以下に説明する処理においてもしばしば実行されるものであるが、このステップS807と同様に、サブ制御基板80に送信するための制御コマンドをセットする処理を意味する。また、ここでの制御コマンドは、実際に送信するコマンドのみを意味しているものではなく、実際に送信するコマンドの元となるコマンドも意味している。
次にステップS808に進み、メイン制御基板60は、制御コマンドセット1を実行する。この処理は、制御コマンドバッファ(RWM61)に、サブ制御基板80に送信するための制御コマンドを記憶する処理である。なお、「制御コマンドセット1」は、以下に説明する処理においてもしばしば実行されるものであるが、このステップS808と同様に、サブ制御基板80に送信するための制御コマンドを記憶する処理を意味する。
本実施形態では、制御コマンドデータは、第1制御コマンドデータ及び第2制御コマンドデータからなり、出力要求に応じて、異なる第1制御コマンドデータ及び第2制御コマンドデータが送信される。
次にステップS809に進み、メイン制御基板60は、設定変更開始時のための待機時間をセットする。本実施形態では、待機時間をセットするためのレジスタとしてBCレジスタ(8ビット1バイトデータからなるBレジスタとCレジスタとからなるペアレジスタ)に記憶する。本実施形態では、設定変更開始時の待機時間として、割込み回数「224」(約500ms)をセットする。
なお、以下のフローチャートにおいても、後述する「2バイト時間待ち処理」を実行するに際し、ステップS809のような待機時間をセット処理を実行するが、この場合の具体的な待機時間(BCレジスタに記憶する値)は、プログラムに記述されている。したがって、RWM61の所定アドレスに記憶された値を呼び出すものではない。
次に、ステップS810に進み、2バイト時間待ち処理(R_2BYTE_WAIT;図32)(ウェイト処理)を実行する。「2バイト」とは、上記のBCレジスタを指している。この処理は、詳細は後述するが、ステップS809でセットした割込み回数「224」をカウントするまで(割込み回数ごとに「1」を減算し、セットした割込み回数が「0」となるまで)待機する処理である。この待機時間中にメイン処理は停止するが、後述する図64の割込み処理は実行される。
このように、ステップS810で2バイト時間待ち処理(ウェイト処理)を実行するのは、メイン制御基板60側におけるRWM61の初期化処理(ステップS804)は比較的短時間で終了するのに対し、サブ制御基板80側のRWM81の初期化処理(図72のステップS754)には時間がかかるため、メイン制御基板60側で2バイト時間待ち処理を実行している。特に、メイン制御基板60側では、サブ制御基板80側で初期化処理が終了したか否かを知り得ないからである。
具体的には、メイン制御基板60のRWM61のクリア範囲(設定変更に伴いクリアされる範囲であって、たとえば特定範囲)は、たとえばアドレス「F000(H)〜F1FF(H)」(バイト数で512バイト)であり、サブ制御基板80のRWM81のクリア範囲は、たとえばアドレス「000000(H)〜800000(H)」(バイト数で約12〜13ギガバイト)である。
したがって、サブ制御基板80側で未だ初期化処理中のときに、メイン制御基板60側では初期化を既に終了し、さらに処理が進んで、メイン制御基板60の制御処理の進行と、サブ制御基板80の制御処理の進行とが同期しなくなることを防止することができる。
また、設定変更開始時の出力要求セット及び制御コマンドセット1の実行後、サブ制御基板80がRWM81の初期化を開始するが、RWM81の初期化が終了するために十分な時間をウェイト時間として設定する。これにより、サブ制御基板80側でRWM81の初期化処理を終了した後に、メイン制御基板60側でステップS811以降の処理に進むようにする。
なお、ステップS807及びステップS808においてセットした設定変更開始時の制御コマンドは、ステップS810の2バイト時間待ち処理中であってもサブ制御基板80に送信される。ただし、ステップS810で2バイト時間待ち処理が実行されている間は、ステップS811以降の処理には進まない(メイン処理が進行しない)。
このように構成することによって、サブ制御基板80に対し、設定変更開始時の制御コマンドを送信することができる。また、ステップS811以降の処理(設定変更の終了や、遊技の開始等)を、ウェイト時間だけ遅延させることができる。さらにまた、ステップS811以降の処理の遅延により、ステップS811以降の処理に付随する各種制御コマンド(設定変更終了時のコマンド、ベットスイッチ40の操作時のコマンド、スタートスイッチ41の操作に基づく役抽選結果に関するコマンド等)の送信タイミングを遅らせることができる。これにより、サブ制御基板80は、メイン制御基板60の処理と同期したタイミングで、各種コマンドに基づいて演出の制御及び出力が可能となる。
これに対し、ステップS810の2バイト時間待ち処理を実行しなかった場合には、メイン制御基板60の処理が先に実行されてしまう。その結果、たとえばスタートスイッチ41の操作に基づき役抽選結果Aとなり、リール31の回転開始時に演出aを出力したいとき、リール31の回転開始のタイミングで演出aが出力されず、少し遅れて演出aが出力されてしまう。
2バイト時間待ち処理の終了後、ステップS811に進み、設定値が正常範囲であるか否かを判断する。本実施形態では、設定値は、「1」〜「6」のいずれか(整数)であり、ステップS804において所定範囲を初期化したときは、アドレス「F000」の設定値データは初期化前から変化はない。これに対し、ステップS804において特定範囲を初期化したときは、アドレス「F000」の設定値データを含めて初期化されるので、設定値データは「0」となる。そして、ステップS811では、設定値が正常範囲(「1」〜「6」の範囲)であると判断したときはステップS813に進み、設定値が正常範囲でない(アドレス「F000」の設定値データを初期化したために「0」となっているときや、「7」や「255」等の異常値が記憶されている場合等)と判断したときはステップS812に進む。ステップS812では、設定値として「1」を記憶する。これにより、電源断復帰データが異常値であると判断され、設定値データを含めて初期化されたときは、このステップS812を経由して、設定値は「1」にされる。なお、本実施形態では設定値を「1」に設定するが、これ以外の値にしてもよい。
ステップS813では、設定変更中のLEDの表示制御(点灯)を行う。これにより、当該処理以降に割込み処理が実行されたとき、設定変更中に表示するLED(設定値表示LED64及び獲得数表示LED72)の点灯が可能となる。本実施形態では、設定値表示LED64に現在の設定値を表示するとともに、獲得数表示LED72に「−−」と表示するために、表示データの値を更新する処理を実行する。このように、設定変更処理を行う場合には、現在の設定値が設定値表示LED64に表示されるので、設定していた設定値が不正に変更されていないかを設定変更処理時に確認することができる。
ここで、電源断復帰が正常に行われたときは、ステップS804の初期化では、設定値データは初期化されずにRWM61のアドレス「F000」に残るので、それまでの設定値が表示される。これにより、設定変更を行う管理者は、前回に設定した設定値と一致しているか否かを確認することができる。
また、たとえば前回設定した設定値が「3」であるが、電源断復帰が正常に行われなかったために、ステップS804で設定値データを含めて初期化されると、ステップS812で設定値として「1」が記憶されるので、ステップS813で表示される設定値は「1」となる。しかし、ステップS807では、電源断復帰時が正常であるか否かを含めた制御コマンドをサブ制御基板80に送信し、サブ制御基板80側で、電源断復帰時の正常/異常を報知すれば、設定値の管理者は、その報知に基づいて、なぜ設定値が「1」と表示されたのかを理解することができる。
次にステップS814に進み、割込み待ち処理(C_INTR_WAIT ;図33)を実行する。この処理は、詳細は後述するが、一割込み時間(2.235ms)を経過するまで待機する処理である。この処理を設けている理由については後述する。そして、一割込み時間の経過後、ステップS815に進む。
ステップS815では、設定変更スイッチ53の操作を検出したか否かを判断する。ここでは、入力ポート1の立ち上がりデータを判断し、D4ビットが「1」であるか否かを判断する。設定変更スイッチ53の操作を検出したと判断したとき、すなわち入力ポート1立ち上がりデータのD4ビットが「1」であるときはステップS816に進み、検出していないと判断したとき、すなわち入力ポート1立ち上がりデータのD4ビットが「0」であるときはステップS817に進む。
ステップS816では、設定値を更新する。具体的には、上述したRWM61のアドレス「F000」の「_NB_RANK」(設定値データ)に記憶された値を、「1」〜「6」を周期として「1」インクリメントする処理を実行する。具体的には、インクリメント前の値が「1」であるときは、「2」に更新し、インクリメント前の値が「6」であるときは、「1」に更新する。また、設定値が更新された後に割込み処理が実行されることにより、設定値表示LED64には更新された値を表示する。
次のステップS817では、スタートスイッチ41の操作を検出したか否かを判断する。本実施形態では、設定変更中にスタートスイッチ41が操作されたときは、その時点における設定値を確定させる。
スタートスイッチ41が操作されたと判断したときはステップS818に進み、操作されていないと判断したときはステップS814に戻る。
以上の処理において、ステップS814の割込み待ち処理は、設定変更スイッチ53の立ち上がりデータをクリアするために設けられる。
たとえば、ステップS814の処理を設けない場合、ステップS815で設定変更スイッチ53の立ち上がりデータがオンであると判断されると、ステップS816で設定値を更新し、次のステップS817でスタートスイッチ41がオンでないと判断されると、ステップS815に進んで、設定変更スイッチ53の立ち上がりデータがオンであるか否かが判断される。
ステップS815でオンであると判断された後、1回でも割込み処理が実行されれば設定変更スイッチ53の立ち上がりデータはオフになる。したがって、設定変更スイッチ53の立ち上がりデータがオフになればステップS815で「No」と判断されるので、設定値の更新は実行されない。しかし、割込み処理が実行されるまでは、ステップS815で設定変更スイッチ53の立ち上がりデータがオンであると判断され続ける。この結果、設定変更スイッチ53を1回操作しただけで、設定値が2以上上がり続けてしまう。そこで、ステップS814において、割込み待ち処理を実行している。特に、この割込み待ち処理は、上述した2バイト時間待ち処理のサブルーチン処理として設けられており(図33)、この処理を利用することで、ステップS814で専用の処理を設けることなく、一割込み時間の待機処理を実行することができる。いいかえれば、割込み待ち処理は、2バイト時間待ち処理における計時に用いることができるとともに、設定変更スイッチ53等(操作スイッチ)の立ち上がりデータをクリアするときの処理としても用いることができる。これにより、それぞれ用途が異なる処理であっても同一モジュール(図33)を用いることができるので、プログラム容量(ROM)を少なくすることができる。
また、設定変更スイッチの立ち上がりデータをオフにする処理を実行することなく、設定値が2以上上がり続けてしまうことを防止できる。
ステップS818では、設定キースイッチ52がオフにされたか否かを判断する。具体的には、入力ポート1の立ち下がりデータ中、D3ビットが「1」であるか否かを判断し、当該ビットが「1」であるときは、設定キースイッチ52がオフにされたと判断する。設定キースイッチ52がオフにされたと判断すると、ステップS819に進み、設定変更終了後のLED表示制御(消灯)を行う。具体的には、第1に、設定値表示LED64を消灯する。第2に、貯留数表示LED71及び獲得数表示LED72を点灯可能にする。また第3に、獲得数表示LED72に「00」と表示するために獲得枚数表示データの値を更新する処理を実行する。
これにより、当該処理以降に割込み処理が実行されたとき、設定値表示LED64が消灯し、貯留数表示LED71及び獲得数表示LED72の点灯が可能となる。
次にステップS820に進み、ステップS807と同様に、設定変更終了時の出力要求セットを行う。この処理は、設定変更処理を終了すること、及び決定された設定値をサブ制御基板80側に知らせ制御コマンドをセットする処理である。次に、ステップS821に進み、ステップS808と同様に、メイン制御基板60は、制御コマンドセット1を実行する。そして、ステップS50のメイン処理(M_MAIN)(図36)に移行する。
図30は、制御コマンドセット1(S_CMD_SET )の処理を示すフローチャートである。本実施形態において、制御コマンドセット1の処理時には、図30に示すステップS501以降の処理が実行される(他のフローチャートにおける「制御コマンドセット1」についても同様である)。
まず、ステップS502では、割込み禁止処理を実行する。次のステップS503では、制御コマンドセット2(SS_CMD_SET)(図31)を実行する。そしてステップS504に進み、ステップS502で禁止した割込み処理を解除(すなわち割込み許可)を実行する。以上の処理により、制御コマンドセット2の実行中は、割込み処理が禁止される。
そして、制御コマンドセット2では、以下に示すように、制御コマンドの書き込みを行うが、制御コマンドセット2の実行中は、上述したように割込み処理が禁止されている。したがって、制御コマンドの書き込み処理中に割込み処理が実行されることによる誤作動(正常の書き込みアドレスとは異なるアドレスに書き込んでしまうこと等)を防止することができる。
ここで、割込みの禁止/解除を記憶するための割込みフラグが設けられている。割込みフラグは、ステップS502で割込み処理を禁止した後、次の割込み処理を実行するタイミング(割込み処理を禁止した時から2.235ms以内)が到来したときにオンにされる。そして、メインCPU63は、禁止した割込み処理を解除するときは、その後、割込みフラグをクリアする。
メイン制御基板60は、割込み処理を実行するタイミングが到来したときは、割込みフラグのオン/オフを判断し、割込み処理の禁止/許可を判断する。
図31は、制御コマンドセット2(SS_CMD_SET)を示すフローチャートである。
まず、ステップS511では、制御コマンドバッファのアドレスをセットする。この処理は、制御コマンドバッファの先頭アドレスをセットする処理である。
次のステップS512では、書き込みポインタの取得を行う。書き込みポインタとは、制御コマンドのデータを、RWM61のどのアドレスに書き込むかを指定するためのものであり、現時点での書き込みポインタが記憶されているので、その書き込みポインタを読み込む処理を行う。
次のステップS513では、指定アドレスを取得する。この処理は、制御コマンドバッファの先頭アドレスと、書き込みポインタの現在位置を示すデータとから、書き込む(RWM61の)アドレスを求めるものである。
次にステップS514に進み、指定アドレスのデータを取得する。この処理は、前処理のステップS513で求めたアドレスのRWM61の記憶領域に保存されているデータを読み込む処理である。
次のステップS515における「制御コマンド<32?」では、指定アドレスのデータが「0」であるか否かを判断する処理を行う。指定アドレスのデータが「0」でないときは、指定アドレスに既にデータが存在することである。そして、指定アドレスのデータが「0」であるとき、すなわち指定アドレスにデータがないときはステップS516に進み、「0」でないときは本フローチャートによる処理を終了する。すなわち、指定アドレスにデータがあるときは、データの書き込み処理を実行しない。これにより、指定アドレスにデータがあるときは、上書きが防止される。
次のステップS516の「RWM指定?」では、制御コマンドバッファに書き込むデータが、RWM61に記憶されているデータを参照する必要があるデータであるか否かを判断する。たとえば、リプレイ入賞時の自動ベット時のメダル投入枚数は、前回遊技に依存するために、RWM指定となる(なお、RWM指定となるか否かについての詳細な説明は割愛するが、Dレジスタに記憶されている値のD7ビットが0か否かで判断する。
RWM指定であると判断されたときはステップS517に進み、RWM指定でないと判断されたときはステップS518に進む。
ステップS517では、第2制御コマンドを示すデータを所定のレジスタ(Eレジスタ)に記憶する。この処理は、第2制御コマンドとして書き込むデータをRWM61から読み込んで、レジスタに記憶する処理を行う。そしてステップS518に進む。
ステップS518では第1制御コマンドを示すデータをRWM61に記憶する。ここでは、ステップS513における「指定アドレス取得」で取得したアドレスに、第12制御コマンドを記憶する処理である。具体的には、制御コマンドセット2処理の前に記憶したDレジスタの値を記憶する処理である(RWM指定の場合は、Dレジスタの値に80(H)を加算した値を記憶している。)。
次にステップS519に進み、第2制御コマンドを示すデータをRWM61に記憶する。この処理は、第1制御コマンドを記憶した次のアドレスに第2制御コマンドを記憶する処理を行う。
そしてステップS520に進み、書き込みポインタの値を「+1」更新する処理を行う。なお、第1制御コマンド及び第2制御コマンドを示すデータを、2か所のRWM61の記憶領域に書き込むが、ステップS513における「指定アドレス取得」処理の演算において、書き込みポインタのデータを2倍にして演算を行うので、書き込みポインタの値としては「1」だけインクリメントする。
以上説明したように、図29中、ステップS807における設定変更開始時の出力要求セット及びステップS808における制御コマンドセット1(S_CMD_SET )を実行することにより、設定変更開始時の制御コマンドデータ(サブ制御基板80に送信するデータ)が所定アドレスの制御コマンドバッファに書き込まれる。そして、これらの制御コマンドデータは、後述する割込み処理により、サブ制御基板80に送信される。他の「出力要求セット」及び「制御コマンドセット1」のときも同様である。
図32は、2バイト時間待ち処理(R_2BYTE_WAIT)を示すフローチャートである。
ステップS31では、2バイトの待機時間が経過したか否かを判断する。この処理は、BCレジスタの値を判断し、「0」であるか否か(Bレジスタ値が「0」、かつCレジスタ値が「0」であるか否か)を判断する。具体的には、たとえばBレジスタ値=「1」、Cレジスタ値=「0」であるときは、「0」でないと判断する。あるいは、Bレジスタ値=「0」、Cレジスタ値=「0」であるときは、「0」であると判断する。
ステップS31において「0」であると判断したときは本フローチャートによる処理を終了し、「0」でないと判断したときはステップS32に進む。
ステップS32では、割込み待ち処理(C_INTR_WAIT ;図33)を実行する。この処理は、一割込み時間(2.235ms)を経過するまで待機する処理である。そして、割込み待ち処理が終了するとステップS33に進み、待機時間の更新処理を実行し、ステップS31に戻る。この処理は、BCレジスタ値から「1」を減算する処理である。具体的には、たとえばBレジスタ値=「1」、Cレジスタ値=「0」であるとき、「1」を減算すると、Bレジスタ値=「0」、Cレジスタ値=「255」(10進数)となる。あるいは、たとえばBレジスタ値=「0」、Cレジスタ値=「1」であるとき、「1」を減算すると、Bレジスタ値=「0」、Cレジスタ値=「0」となる。
図33は、割込み待ち処理(C_INTR_WAIT )を示すフローチャートである。
ステップS41の割込みカウンタ値取得では、割込みカウンタ値をAレジスタに記憶する。ここで、本実施形態では、「F02B」及び「F02C」の2アドレスに16ビットとして割込みカウンタ値を記憶しているが、ステップS41では、下位8ビットのアドレス「F02C」に記憶されている値をAレジスタに記憶する。
次に、ステップS42に進み、割込みカウンタ値(アドレス「F02C」に記憶されている下位8ビットの値)が変化したか否かを判断する。具体的には、「Aレジスタ値」から「アドレス「F02C」に記憶されている割込みカウンタ値」を減算する処理を実行し、演算結果が「0」(ゼロフラグ=「1」)であるときは、「No」と判断する。そして、変化したと判断したときは本フローチャートによる処理を終了し、変化していないと判断したときはステップS42の処理を継続する。
なお、ゼロフラグとは、演算した結果が「0」か否かを判断するためのフラグであって、MPUに設けられたフラグレジスタ(Fレジスタ)の特定ビットを指す。当該特定ビットが「0」(ゼロフラグ=「0」)のときには、演算結果が「0」でないことを示し、当該特定ビットが「1」(ゼロフラグ=「1」)のときには、演算結果が「0」であることを示す。
また、上述したように、割込みカウンタ値として8ビット値を用いる場合には、アドレス「F02B」のみに割込みカウンタ値を記憶するので、ステップS41ではアドレス「F02B」の値をAレジスタに記憶し、ステップS42では、アドレス「F02B」に記憶されている値が変化したか否かを判断する。
図34は、図28中、ステップS23の電源復帰処理(M_POWER_ON)を示すフローチャートである。
先ず、ステップS831では、スタックポインタを復帰させる。ここで、スタックポインタとは、電断が生じた場合に、電断発生時のデータ(例えば、レジスタ値、割込み処理前のメイン処理の命令処理等)を保存するRWM61の領域を指す。
次のステップS832では、RWM61のアドレス「F000」の設定値データを読み込み、設定値の範囲が正常範囲であるか(「1」〜「6」の範囲内であるか)否かを判断する。設定値が正常範囲であると判断したときはステップS833に進み、設定値が正常範囲でないと判断したときはステップS839に進み、復帰不可能エラー処理(SS_ERROR_STOP )に移行する。この場合のエラーは、本実施形態では「E6」エラーと称し、「E6」である旨を獲得数表示LED72に表示する。
ステップS833に進むと、RWM61の未使用領域の初期化範囲をレジスタにセットする。そして次のステップS834において、ステップS833でセットした範囲のRWM61の初期化を実行する。ここで、未使用領域であってもノイズ等によりRWM61に値が記憶されてしまうことが考えられる。万が一、未使用領域に値が記憶されると、不正等のゴトにつながる可能性があるため、未使用領域は電源の投入時に(通常であれば1日に1回)初期化するようにしている。
次のステップS835では、RWM61の初期化を終了したか否かを判断し、終了したと判断したときはステップS836に進む。ステップS836では、入力ポート0〜2の読み込みを行う。この処理は、電源断前の入力ポートの各データ(レベルデータ、立ち上がりデータ、立ち下がりデータ)を最新のデータに更新するための処理である。
次にステップS837に進み、割込みを起動させる。この処理は、たとえばタイマ割込みの周期を設定する処理等であり、上述したステップS806と同様である。
次にステップS838に進み、アドレス「F01F」の電源断処理済フラグをクリア、すなわち「0」にする。そして本フローチャートによる処理を終了する。
上記の電源復帰処理においては、入力ポート0〜2の読み込みを実行した(ステップS836)後に、割込み処理を起動(ステップS837)させている。その理由は、以下の通りである。
本実施形態では、遊技待機中に、設定キーを挿入して、設定値の確認ができるように構成されている。ここで、設定キースイッチ52の立ち下がり信号が「1」になったときに、設定値の確認を終了したと判断している。
しかし、たとえば設定確認中に電源断が生じ、この電源断中に設定キースイッチ52をオフにして(設定キーを抜いて)電源を立ち上げたと仮定する。
この場合、電源断復帰後の割込み処理により、設定キースイッチ52がオフであることに基づいて、設定キースイッチ52の立ち下がり信号が「1」になるので、設定キースイッチの立ち下がりが検知される。
その結果、電源断復帰時の状態と、電源断前の状態とで、異なる状態となってしまう。具体的には、電源断前の状態では、設定キースイッチ52の立ち下がり信号が「0」であるのに対し、電源断復帰時に、設定キースイッチ52の立ち下がり信号が「1」となる。
よって、このように、電源断前後で異なる状態となってしまうことを回避するために、電源断復帰時には、入力ポート0〜2のRWM61の値を最新の状態に更新する。そこで、入力ポート0〜2読み込み処理を実行した後、割込み処理を起動させている。
図35は、図28のステップS24等における復帰不可能エラー処理(SS_ERROR_STOP )を示すフローチャートである。
なお、本実施形態において、復帰不可能エラーと判断されるのは、以下の場合である。ただし、本実施形態で示した復帰不可能エラーに限定されるものではない。
E1エラー:図28のステップS24において、電源断からの復帰が正常でないと判断されたとき
E5エラー:図36のステップS76において、表示エラーが発生したと判断されたとき
E6エラー:図34のステップS839において、設定値が正常範囲でないと判断されたとき
E7エラー:図64のステップS620において、乱数エラーが発生したと判断されたとき
先ず、ステップS881において、メイン制御基板60は、割込み処理を禁止する。この処理は、上述したステップS502と同様である。割込み要求信号(INT信号)が入力されても割込みが発生しないように制御するものである。いいかえれば、タイマ割り込みの周期(2.235ms)が到来してもタイマ割込み処理を実行しない。これにより、割込み処理によってRWM61に記憶された各種データの更新、入力/出力等は実行されないようにするとともに、誤った情報をサブ制御基板80に送信したり、ホールコンピュータに送信したりすることを防止している。
次にステップS882に進み、出力ポート0〜6を順次オフにする。具体的には、出力ポート0〜6を示す各アドレスから、1つの出力ポートずつ、全「0」(「00000000B」)を出力する。ステップS883では、次の出力ポートアドレスをセットする。すなわち、出力ポートを示すアドレスを「1」インクリメントする。たとえば、出力ポート0のアドレスが「0F1(H)」であるときは、次のアドレスとして、出力ポート1のアドレス「0F2(H)」をセットする。
次にステップS884に進み、全出力ポートが終了したか否か、すなわち出力ポート6まで終了したか否かを判断する。終了していないと判断したときはステップS882に戻り、終了したと判断したときはステップS885に進む。
つまり、全出力ポート0〜6をオフにすることにより、当該処理が実行される前に出力されていたアクティブ信号がオフされることとなる。これにより、LEDの焼き付きやモータ32の焼き付き、メダルの飲み込みを防ぐことができる。たとえば、ブロッカ信号を出力している状況において電源断が起こった場合、当該処理を実行しないとブロッカ45がオンの状態(メダル流路を形成している状態)が続くことになる(メダルの検知処理は起こらないのでメダルが飲み込まれる)。
また、モータ32がφ1を出力している状況において電源断が起こった場合、当該処理を実行しないとリセット信号が入力されるまでφ1を出力し続けることとなる。本来であればリセット信号が入力されるまでの時間は短いが、瞬間的に電源電圧が低下したことにより電源断処理が実行され、その後通常の電源電圧が供給されてしまうと、リセット信号が入力されることなくリセット待ちを繰り返すことになる。このため、φ1が出力され続ける状況も起こり得る。
ステップS885では、エラー表示データとして、下位桁をセットする。次にステップS886に進み、エラー表示データとして、上位桁をセットする。
次にステップS887に進み、LEDをオフにする。この処理は、出力ポート0を示すアドレスに「00000000B」を出力する処理である。したがって、ステップS887の時点では、全LEDの出力が「0」(消灯)となる。これにより、LEDのちらつきを防止することができる。
そして、次のステップS888の「エラー表示出力」処理は、出力ポート1を示すアドレスに所定値を出力する処理を行う。ここでは、エラー表示内容として、「E1」、「E5」、「E6」、「E7」等が表示されるようにする処理である。
次にステップS889に進み、LEDをオンにする。この処理は、出力ポート0を示すアドレスに所定値を出力する処理である。次のステップS890では、表示ウェイトが終了したか否かを判断する。ここで、表示ウェイトは、Bレジスタの値を「−1」減算し、Bレジスタの値が「0」となったか否かを判断する処理である。
本実施形態では、ステップS888の処理開始時に、Bレジスタ値として「255」を設定する。そして、減算処理は、Bレジスタ値が「0」になるまで行う。本実施形態では、内部システムクロックが16MHzであり、おおよそ、
「1/内部システムクロック(16MHz)」×256×8(命令)+α(その他命令)≒0.128ms
の時間で、Bレジスタが「255」→「0」になるように設定されている。
そして、表示ウェイトが終了したと判断したときはステップS891に進む。ステップS891では、上位桁と下位桁との切替えを実行する。そして、ステップS887に戻る。
これにより、同一のプログラム処理により下位桁の表示から上位桁の表示に切り替えることができる。また、上位桁/下位桁の切替え周期は、約0.128msとなる。したがって、上位桁を0.128msの間点灯させたら、次に下位桁を0.128msの間点灯させる処理を繰り返す。
上記ステップS887〜ステップS891の処理により、たとえば「E1」エラーを獲得数表示LED72で表示する場合、獲得数表示LED72の上位桁に「E」を約0.128msの間表示した後(この間は、獲得数表示LED72の下位桁は消灯)、次に、獲得数表示LED72の下位桁に「1」を約0.128msの間表示する(この間は獲得数表示LED72の上位桁は消灯)。
また、上位桁/下位桁の切替え周期は、タイマ割込み周期(2.235ms)よりも早くなり、エラー表示時の輝度が高くなる(詳細は後述する)。
いいかえれば、LEDを用いてエラー表示を行う場合に、復帰不可能エラーの方が通常エラーよりも輝度が高いので、サブ制御基板80側の機器(演出ランプ21、スピーカ22、画像表示装置23)を用いたエラー報知を行わなくても(行えなくても)、ホール店員が気づきやすくなる。
以上の通り、タイマ割込み処理が実行されない(実行したくない)期間においてエラーが発生した場合であっても、レジスタを用いた演算処理、及びハード構成により適切にLEDを用いてエラーの表示を実行することができる。
なお、本実施形態では、上記のように表示ウェイト処理(ステップS890)を設けているが、表示ウェイト処理を設けなくても実施が可能である。この場合、ソフトウェア上で上位桁と下位桁とを高速で切り替えるので、ステップS887〜S891の処理時間は、実質上、ほぼ「0」となり、上位桁の表示と下位桁の表示の切替は、プログラムの処理速度や、LEDの応答速度に依存することとなる。
上記のように、約0.1ms程度のウェイト時間を設ければ、そのウェイト時間中は、一方のLEDが点灯し続けるので、LEDの一定の明るさ(光束)を確保できる。一方、近時の高性能のLEDを採用すれば、点灯時間が一瞬(ステップS889のみ)であっても目視に十分な明るさを確保することができる。
図36は、本実施形態におけるメイン処理(M_MAIN)処理を示すフローチャートである。そして、このメイン処理中に、2.235msごとに割込み処理(図64)を行う。
また、図37〜図63は、メイン処理中のサブルーチンを示す処理である。
図36において、ステップS51では、スタックポインタをセットする。スタックポインタとは、上記のように、電断が生じた場合に、電断発生時のデータ(例えば、レジスタ値、割込み処理前のメイン処理の命令処理等)を保存するRWM61の領域を指し、スタックポインタのセットとは、そのRWM61の領域において、レジスタ値を初期値にセットする処理である。
次のステップS52では、遊技開始セット処理(MS_GAME_SET )を行う。ステップS52に進むと、後述する図37の処理に移行する。
次のステップS53ではベットメダルの読み込み(S_PLAYM_READ)を行う。この処理は、現時点においてベットされているメダル枚数が何枚であるかを読み込む処理であり、貯留枚数の読み込みとは異なる。このベットメダルの読み込み処理については後述する(図39)。
次のステップS54では、ステップS53で読み込んだベット枚数に基づき、ベットメダルの有無を判断する。
ステップS54でベットメダルあり(ゼロフラグ=「0」)と判断したときはステップS56に進み、ベットメダルなし(ゼロフラグ=「1」)と判断したときはステップS55に進んでメダル投入待ち処理(MS_STANDBY_DSP;図44)を行い、ステップS56に進む。
ステップS56では、投入されたメダルの管理処理(MS_MEDAL_CHK)を行う。ステップS106に進むと、後述する図45の処理に移行する。
次のステップS57では、ソフト乱数の更新処理を行う。この処理は、役抽選手段63bで使用する乱数(ハード乱数、又は内蔵乱数)に加工(演算処理)するための加工用乱数を更新(たとえば「1」ずつ加算)する処理である。ソフト乱数は、0〜65535の範囲を有する16ビット乱数である。なお、更新方法として、更新前の値に、割込みカウント値(割込み時にインクリメントされるカウント値(変数))を加算する処理を実行してもよい。
次のステップS58では、メイン制御基板60は、スタートスイッチ41が操作されたか否かを判断する。スタートスイッチ41が操作されたと判断したときは、ステップS59に進み、スタートスイッチ41が操作されていないと判断したときはステップS53に戻る。なお、スタートスイッチ41が操作された場合であっても、ベット数が当該遊技の規定数に達していないときは、ステップS58で「No」と判断される。また、規定数に達しているときは、スタートスイッチ受付け許可フラグ(メダル管理フラグの「D0」ビット)をオンにする。
ステップS59では、スタートスイッチ受付け時の処理(MS_START_CTL)を実行するステップS59に進むと、後述する図57の処理に移行する。
ステップS60では、役抽選手段63bは、スタートスイッチ41が操作されたタイミングで、すなわちスタートスイッチ41の操作信号の受信時に、役の抽選を実行する。なお、役抽選時の乱数値はステップS59で取得する。そして、ステップS60において、取得した乱数値が、いずれかの当選役に該当する乱数値であるか否かを役抽選テーブルを用いて判定する処理を行う。
次のステップS61では、リール回転開始準備処理(M_REEL_READY)を実行する。ステップS61に進むと、後述する図58の処理に移行する。
次にステップS62に進み、リール制御手段63cは、リール31の回転を開始する。次のステップS63では、リール31の停止受付けをチェックする。ここでは、ストップスイッチ42の操作信号を受信したか否かを検知し、操作信号を受信したときは、役の抽選結果とリール31の位置とに基づいてリール31の停止位置を決定し、その決定した位置にリール31を停止させるように制御する。
次のステップS64では、リール制御手段63cは、全リール31が停止したか否かをチェックし、ステップS65に進む。ステップS65では、全リール31が停止したか否かを判断し、全リール31が停止したと判断したときはステップS66に進み、全リール31が停止していないと判断したときはステップS63に戻る。
ステップS66では、図柄の表示判定を行う。ここでは、入賞判定手段63dにより、有効ラインに、役に対応する図柄の組合せが停止したか否かを判断する。そして、停止した図柄の組合せに応じて、図柄組合せフラグ(_FL_WIN )を更新する。たとえばリプレイの図柄組合せが有効ラインに停止したと判断したときは、図柄組合せフラグのD0ビットを「1」にする。
次にステップS67に進み、図柄の表示エラーが発生したか否かを判断する。図柄の表示エラーが発生したと判断したときはステップS76に進み、表示エラーが発生していないと判断したときはステップS68に進む。
ここで、リール31の停止は、停止位置決定テーブルに基づき実行されるので、通常は、停止位置決定テーブルで定められた位置以外の位置でリール31が停止する場合はない。しかし、図柄の表示判定の結果、有効ライン上に、本来表示されてはいけない図柄(蹴飛ばし図柄)が表示されたときは、異常であると判定し、ステップS76に進み、復帰不可能エラー処理を実行する。この図柄組合せ異常エラーは、「E5」エラーと称し、獲得数表示LED72に「E5」と表示し、メイン処理を停止する。
なお、復帰不可能エラーの発生時に、それを解除するためには、電源のオン/オフと、設定値の再設定が必要となる。復帰不可能エラーの発生時には、電源をオフにし、設定キーを差し込んで90度時計回りに回転させ、電源をオンにする。これにより、RWM61の所定範囲(設定値情報、RT情報、当選役情報)がクリアされる。そして、設定値を設定し、他のエラーがなければ、復帰処理が行われる。
一方、後述する満杯エラー等の復帰可能エラーの発生時は、エラー内容を表示して処理を停止するが(たとえば後述する図46のステップS239等)、ホール店員がエラー解除操作を実行し(エラー要因を除去し)、リセットスイッチ53を操作すると、エラーが解除されたか否かを判断して、エラーが解除されたと判断したときは、処理を再開する。
ステップS68では、入賞役に応じて、メダル払出し枚数の更新処理(図59)を行う。この処理は、ステップS66の表示判定に基づいて、小役(メダル払出しを有する役)が入賞したときは、入賞した小役に対応する枚数のメダルを払い出す処理(メダル払出し枚数データ(_NB_PAY_MEDAL )、及びメダル払出し枚数データバッファ(_BF_PAY_MEDAL )の更新処理)を実行する。
次のステップS69では、特別役(1BB)の入賞があったか否かを判断する。特別役が入賞したと判断したときはステップS70に進み、特別役が入賞していないと判断したときはステップS72に進む。
ステップS70では、特別役の入賞時の待機時間をセットする。この処理は、上述のステップS809と同様であり、BCレジスタに所定値をセットする処理である。本実施形態では、BCレジスタに「2000」(約4470ms相当)をセットする。より具体的には、Bレジスタ値=「3」(00000011B)、Cレジスタ値=「208」(11101000B)をセットする。そして、次のステップS71で、2バイト時間待ち処理を実行する。
このように、特別役入賞時にウェイト時間を設定するのは、その間、サブ制御基板80側で、特別役入賞時の演出を出力し、かつ、その演出時間中は、遊技者によるベットスイッチ40の操作による演出キャンセルを行わせないようにするためである。このように、メイン処理においてウェイト時間を設けてメイン処理を停止することにより、遊技者に対し、特別役入賞時の演出を確実に見せることができる。
次のステップS72では、払出し手段63eは、入賞役に対応するメダルの払出しを行う(MS_WIN_PAY;図60)。次にステップS73に進む。ステップS73では、メイン制御基板60は、遊技終了チェック処理(M_GAME_CHK)を行う。ステップ72に進むと、後述する図61の処理に移行する。
また、ステップS73では、入力ポート2のD5ビットである満杯センサ38の信号を判断し、オンであるときは、満杯エラーを表示する。満杯エラーは、本実施形態では「FEエラー」と称し、獲得数表示LED72に「FE」と表示する。
次のステップS74では、遊技終了時の出力要求をセットする。この処理は、1遊技が終了した旨をサブ制御基板80に送信するための制御コマンドデータをセットする処理である。
次にステップS75に進み、メイン制御基板60は、制御コマンドセット1を実行する。この処理は、制御コマンドバッファ(RWM61)に、サブ制御基板80に送信する制御コマンドデータを記憶する処理である。
そして、ステップS75の処理を終了すると、再度、ステップS50に戻る。
図37は、図36のステップS52における遊技開始セット(MS_GAME_SET )を示すフローチャートである。
まず、ステップS81では、遊技待機表示時間をセットする(RWM61の所定記憶領域に記憶する)。本実施形態では、遊技待機表示時間としては、「26846」割込み(≒60000ms、すなわち約60秒(1分))をセットする。このステップS81で遊技待機表示時間がセットされると、この時点から割込み処理ごとに値が「1」ずつ減算される。
遊技待機表示時間が「0」となると、図36のステップS55においてメダル払出し枚数データをクリアする(「_NB_PAY_MEDAL 」を「0」にする処理)。つまり、獲得数表示LED72に「00」が表示される。たとえば、前回遊技に払い出されたメダル枚数が「8」枚であり、かつ、遊技者が精算スイッチ43の操作により精算し、遊技を終了したとしても、約1分後には「00」が表示される。これにより、ホールの店員や別の遊技者が空き台として認識できることにより空き台を減少させることができるという効果を有する。
次のステップS82では、図柄組合せ表示フラグのデータを取得する。この処理は、前遊技でのリール31の停止後における有効ライン上の図柄組合せ、すなわち図柄組合せ表示フラグ(_FL_WIN )のデータをAレジスタに記憶する処理である。
次のステップS83では、1BB作動図柄が表示されたか否かを判断する。この処理では、Aレジスタ値に記憶されているD3ビットが「1」であるときは「Yes」と判断し、「0」であるときは「No」と判断する。1BB作動図柄が表示されたと判断したときはステップS84に進み、表示されていないと判断したときは(2BBが設けられていない場合には)ステップS87に進む。
ここで、図37のフローチャートでは、2BBを設けた場合の例を併せて表示している。2BBを設けたときは、ステップS83で「No」と判断されるとステップS85に進み、2BB作動図柄が表示されたか否かを判断する。この処理は、Aレジスタに記憶されているD1ビット(図14参照)が「1」であるときは「Yes」と判断し、「0」であるときは「No」と判断する。2BB作動図柄が表示されたと判断したときはステップS86に進み、表示されていないと判断したときはステップS87に進む。
ステップS84では、1BB作動時(1BB遊技時)の獲得可能枚数を保存する。この処理は、上述の「_CT_BB1_PAY 」(RWM61)に、「200」の値を保存(記憶)する処理である。この「200」は、1BB遊技における獲得可能な最大枚数である。そしてステップS87に進む。
一方、ステップS86では、2BB作動時(2BB遊技時)の獲得可能枚数を保存する。この処理は、上述の「_CT_BB2_PAY 」(RWM61)に、「40」の値を保存(記憶)する処理に相当する。この「40」は、2BB遊技における獲得可能な最大枚数である。そして、ステップS87に進む。
次のステップS87では、作動状態フラグ(_FL_ACTION)を生成する。このステップS87では、以下の1)〜5)の処理を実行する。
1)まず、HLレジスタに、作動状態フラグのアドレスを記憶する。上述したように、作動状態フラグのアドレスは「F01C」であるので、Hレジスタ値=「F0」、及びLレジスタ値=「1C」とする。
2)次に、Aレジスタ値と、HLレジスタに記憶されているアドレスの情報とを「OR」演算し、演算結果をAレジスタに記憶する。ここで、Aレジスタには、ステップS82において図柄組合せ表示フラグ(_FL_WIN )のデータが記憶されており、HLレジスタに記憶されているアドレスの情報は、作動状態フラグ(_FL_ACTION)の情報である。
具体的に説明すると、たとえば以下の通りである。
例1)
1BBの図柄の組合せが表示されたときは、
Aレジスタ値:00001000B
HLレジスタのアドレスの情報値:00000000B
「OR」演算後のAレジスタ値:00001000B
となる。
例2)
1BBの図柄の組合せが既に表示され、かつ、1BB及びRBが作動中であるときは、
Aレジスタ値:00000000B
HLレジスタのアドレスの情報値:00011000B
「OR」演算後のAレジスタ値:00011000B
となる。
例3)
1BBの図柄の組合せが既に表示され、かつ、1BBの作動中であるが、RBの非作動であるときは、
Aレジスタ値:00000000B
HLレジスタのアドレスの情報値:00001000B
「OR」演算後のAレジスタ値:00001000B
となる。
例4)
1BB、及び2BBが非作動であり、かつリプレイ作動であるときは、
Aレジスタ値:00000001B
HLレジスタのアドレスの情報値:00000000B
「OR」演算後のAレジスタ値:00000001B
となる。
3)Aレジスタ値をCレジスタに記憶する。
たとえば上記の例1)〜例4)を例に挙げると、以下のようになる。
例1)及び例3)
Aレジスタ値:00001000B、Cレジスタ値:00001000B
例2)
Aレジスタ値:00011000B、Cレジスタ値:00011000B
例4)
Aレジスタ値:00000001B、Cレジスタ値:00000001B
4)Aレジスタに記憶されている情報と、BBに対応するビットを「1」にした情報とをAND演算し、演算結果をAレジスタに記憶する。
ここで、1BBのみを備える場合には、BBに対応するビットを「1」にした情報は、「00001000B」である。したがって、たとえば上記の例1)〜例4)を例に挙げると、以下のようになる。
例1)及び例3)
Aレジスタ値:00001000B
BBに対応するビットを「1」にした情報:00001000B
AND演算後のAレジスタ値:00001000B
例2)
Aレジスタ値:00011000B
BBに対応するビットを「1」にした情報:00001000B
AND演算後のAレジスタ値:00001000B
例4)Aレジスタ値:00000001B
BBに対応するビットを「1」にした情報:00001000B
AND演算後のAレジスタ値:00000000B
なお、1BBと2BBとの双方を備える場合には、BBに対応するビットを「1」にした情報は、「00001010B」となる。また、2BBのみを備える場合には、BBに対応するビットを「1」にした情報は、「00000010B」となる。
5)Aレジスタ値を左にローテーシフトする演算を行い、演算結果をAレジスタに記憶する。
たとえば上記の例1)〜例4)を例に挙げると、以下のようになる。
例1)〜例3)
Aレジスタ値(演算前):00001000B
Aレジスタ値(演算後):00010000B
例4)
Aレジスタ値(演算前):00000000B
Aレジスタ値(演算後):00000000B
次のステップS88では、作動状態フラグを更新する。この処理は、Aレジスタ値とCレジスタ値とを「OR」演算し、演算結果をAレジスタに記憶する処理である。
たとえば上記の例1)〜例4)を例に挙げると、以下のようになる。
例1)
Aレジスタ値:00010000B
Cレジスタ値:00001000B
Aレジスタ値(演算後):00011000B
例2)
Aレジスタ値:00010000B
Cレジスタ値:00011000B
Aレジスタ値(演算後):00011000B
例3)
Aレジスタ値:00010000B
Cレジスタ値:00001000B
Aレジスタ値(演算後):00011000B
例4)
Aレジスタ値:00000000B
Cレジスタ値:00000001B
Aレジスタ値(演算後):00000001B
さらに次のステップS89では、当該作動状態フラグを保存(記憶)する。この処理は、Aレジスタに記憶された値を、HLレジスタ値が示すRWM61のアドレス(すなわち作動状態フラグ)に記憶する処理である。これにより、それまでの作動状態フラグの情報から、ステップS88で更新した作動状態フラグの情報に置き換わる。
たとえば、例1)のように、1BBの図柄の組合せが表示されたとき(1BB入賞時)は、作動状態フラグの1BBに対応するD3ビットが「0」から「1」となる。
また、例2)のように、1BB及びRBが作動中であるときは、その状態が維持される(作動状態フラグの1BBに対応するD3ビット及びRBに対応するD4ビットが「1」)。
さらにまた、例3)のように、1BBの作動中であるが、RBの非作動であるときは、作動状態フラグのRBに対応するD4ビットが「0」から「1」になる。この点についての詳細は後述するが、本実施形態では、1BB遊技において、RB作動フラグは、2遊技(又は2回入賞時)の終了時にオフ(「0」)とされるが、1BB遊技の終了条件を満たしていないとき(作動状態フラグの1BBに対応するD3ビットが「1」であるとき)は、このステップS89(遊技開始セット)において「1」にされる。
さらに、例4)のように、リプレイ作動時は、作動状態フラグのリプレイに対応するD0ビットが「0」から「1」になる。
次のステップS90では、RB作動が開始したか否かを判断する。この処理は、Aレジスタに記憶された情報とCレジスタに記憶された情報とを「XOR」演算し、演算結果をAレジスタに記憶し、ゼロフラグが「1」であるか否かを判断する処理である。
上記の例1)〜例4)を例に挙げると、以下のようになる。
例1)及び例3)
Aレジスタ値:00011000B
Cレジスタ値:00001000B
Aレジスタ値(「XOR」演算後):00010000B(ゼロフラグ≠1)
例2)
Aレジスタ値:00011000B
Cレジスタ値:00011000B
Aレジスタ値(「XOR」演算後):00000000B(ゼロフラグ=1)
例4)
Aレジスタ値:00000001B
Cレジスタ値:00000001B
Aレジスタ値(「XOR」演算後):00000000B(ゼロフラグ=1)
そして、ゼロフラグ=「1」のときは、「No」と判断しステップS92に進み、ゼロフラグ≠「1」のときは「Yes」と判断してステップS91に進む。以上のように、ステップS90では、
a)1BB遊技の開始時
b)RB作動終了後、1BB遊技の終了条件を満たしていないとき
は、「Yes」と判断される。
次のステップS91では、RB作動時の遊技回数及び入賞回数を保存する。この処理は、RB作動時の遊技回数カウンタ「_CT_BONUS_PLAY」に「2」を保存(記憶)するとともに、RB作動時の入賞回数カウンタ「_CT_BONUS_WIN 」に「2」を保存(記憶)する処理に相当する。そしてステップS92に進む。なお、これらのRB作動時の遊技回数カウンタ「_CT_BONUS_PLAY」及びRB作動時の入賞回数カウンタ「_CT_BONUS_WIN 」は、いずれも、初期値として「2」が設定され、それぞれ遊技回数又は入賞回数が「1」増加するごとに「1」ずつデクリメントされるカウンタである。ただし、これに限らず、これらのカウンタ値の初期値を「0」に設定し、遊技回数又は入賞回数が「1」増加するごとに「1」ずつインクリメントし、これらのカウンタ値が「2」に到達したか否かを判断してもよい。
次のステップS92では、ステップS82で取得した図柄フラグデータに基づいて、リプレイの図柄の組合せが表示されたか(リプレイが入賞したか)否かを判断する。リプレイの図柄の組合せが表示されたと判断したときはステップS93に進み、表示されていないと判断したときはステップS95に進む。
ステップS93では、メイン制御基板60は、ベットメダルの読み込みを行う(図39)。この処理は、前回遊技でベットされていたメダル枚数を読み込む処理である。次にステップS94に進み、自動ベット数データをセットする。この処理は、自動ベット数を記憶した「_NB_REP_MEDAL 」のデータを更新する(「3」を記憶する)処理である。
次にステップS95に進み、作動状態の出力要求をセットする。次のステップS96では、制御コマンドセット1を実行する。具体的には、リプレイが作動したことや1BB等が作動したことを示す情報をサブ制御基板80に送信する。なお、図示していないが、今回遊技の設定値に関する情報や、今回遊技のRT状態に関する情報等も送信している。そして、ステップS97に進み、メダル受付け開始処理(MS_MEDAL_START)(図38)に移行する。
図38は、図37のステップS97におけるメダル受付け開始(MS_MEDAL_START)を示すフローチャートである。
まず、ステップS131では、ベットダル枚数のデータをクリアする。すなわち、前遊技におけるベット枚数をクリアする処理であり、具体的には、メダルベット枚数データ(_NB_PLAY_MEDAL)の値を「0」にする処理を行う。
次にステップS132に進み、投入表示LED(73e〜73g)を消灯する処理を行う。具体的には、投入枚数表示LED信号データ(_PT_MEDAL_LED )のD5〜D7ビットを「0」にする処理を行う。
次のステップS133では、メダル管理フラグの初期化を行う。具体的には、メダル管理フラグ(_FL_MEDAL_STS )のD0、D2〜D4、D6、及びD7ビットを「0」にする処理を行う。
次のステップS134では、メイン制御基板60は、作動状態フラグをチェックする。ここで作動状態フラグをチェックするのは、次のステップS135において、リプレイ作動時であるか否かを判断するためである。本実施形態では、ステップS134では、作動状態フラグ(_FL_ACTION)のD0ビット(リプレイ)の値を読み込む。
次にステップS135に進み、ステップS134における読み込みに基づいて、リプレイ作動時であるか否か、すなわちD0ビットが「1」であるか否かを判断する。D0ビットが「1」、すなわちリプレイ作動時であると判断したときはステップS136に進み、リプレイ作動時でないと判断したときはステップS148に進む。
リプレイ作動時でないと判断され、ステップS148に進むと、ブロッカ45をオンにする処理(MS_BLOCKER_ON ;図41)を実行し、本フローチャートによる処理を終了する。すなわち、リプレイ非作動時には、一律に、メダルの手入れ投入を許可する。
したがって、本フローチャートのメダル受け付け開始処理において、ステップS136以降の処理は、リプレイ作動時のメダルの自動ベット処理に相当する。
ステップS136では、リプレイ作動時の待機時間をセットする。本実施形態では、ウェイト時間として、約500msを設定するために、割込み数のカウント値「237」(237×2.235ms=約529.7ms)を設定する。このため、Bレジスタ値として「00000000B」、及びCレジスタ値として「11101101B」をセットする。次にステップS138に進み、2バイト時間待ち処理を実行する。この処理は、一割込みごとにBCレジスタ値を減算していき、「0」になるまで待機する処理である。この待機処理を設けるのは、遊技終了直後にリプレイ表示LED73aが点灯してしまう(ステップS141)ことや、遊技終了直後に自動ベットされてしまう(ステップS144)ことを防止するためである(見た目上、この好ましくないからである)。これにより、自動ベットのタイミングを適切なものにすることができる。
さらに、たとえばリプレイの入賞時に、2バイト時間待ち処理を利用してリプレイ入賞時の演出(リプレイ入賞時の効果音等も含む)を遊技者に提供することも可能となる(2バイト時間待ち処理中は、遊技進行を停止するので、演出キャンセルができないため)。
また、自動ベット時のベット音は、ステップS142及びステップS143で記憶されるコマンドに基づいて出力される。
なお、入賞したリプレイの種類に応じてウェイト時間を異ならせることが可能である。たとえば特殊リプレイ1入賞時(すなわち、ART開始時)には、1秒以上のウェイト時間を設定してもよい。
次にステップS138に進み、貯留枚数の読み込みを行う(S_CREDIT_READ ;図40)。次のステップS139では、貯留枚数が限界枚数(本実施形態では、50枚)であるか否かを判断する。限界枚数であると判断したときはステップS141に進み、限界枚数でないと判断したときはステップS140に進む。ここでの処理は、貯留枚数表示データ(_NB_CREDIT_LED)を読み込み、貯留枚数をチェックする。
ステップS140では、ブロッカをオン(MS_BLOCKER_ON ;図41)、すなわちメダルの受付けを許可するように制御する。そしてステップS141に進む。
以上より、第1に、リプレイ作動時でないときは、常にブロッカ45をオンにし、メダルの受付けを許可する。リプレイ作動時でないときは、前回遊技で貯留枚数が上限枚数(50枚)であったとしても、ベットメダル(通常遊技では3枚)については消費しており、その分についてはベット可能だからである。
また第2に、リプレイ作動時において、貯留メダル枚数が限界枚数でないときは、ブロッカ45をオンにし、メダルの受付けを許可する。貯留メダル枚数が限界枚数でないときは、メダルの手入れにより、少なくとも貯留枚数の追加が可能だからである。
さらにまた第3に、リプレイ作動時において、貯留メダル枚数が限界枚数であるときは、ブロッカ45をオンにしない(それまでのブロッカ45のオフ状態を維持する)。リプレイ作動時かつ貯留メダル枚数が上限枚数であるときは、メダルをベットできず、かつ貯留メダル枚数の追加ができないので、メダルの受付けを行わないためである。
ステップS141では、リプレイ表示LEDの点灯処理を行う。このステップS141では、メダル管理フラグ(_FL_MEDAL_STS )のD3ビットをオン(「1」)にする処理を実行する。
なお、リプレイ表示LED73aを実際に点灯させる処理は、後述する割込み処理(図64)におけるステップS606のLED表示制御にて行う。
このように、ステップS137において2バイト時間待ち処理の実行後にリプレイ表示LED73aの点灯処理を実行するので、リプレイが表示された瞬間にリプレイ表示LED73aが点灯するのではなく、リプレイが表示された後、約0.5秒の間をおいてから点灯することになる。
そして、次のステップS142では、サブ制御基板80に対し、自動ベットが行われたことを示すコマンドを送信するための出力要求セット処理を行い、次のステップS143で制御コマンドセット1処理を実行する。
次のステップS144では、メダルを1枚加算する処理(ここでは、自動ベット処理を意味する)、すなわち、リプレイの入賞に基づき、自動ベットを行うために、1枚ずつメダルの自動ベット(加算)処理を行う。なお、メダル1枚加算処理の詳細については後述する(MS_MEDAL_INC;図42)。
次に、ステップS145に進み、リプレイに基づく自動ベット時の待機時間をセットする。本実施形態では、ウェイト時間として、約100msを設定するために、割込み数のカウント値「46」(46×2.235ms=約103ms)を設定する。このため、Bレジスタ値として「00000000B」、及びCレジスタ値として「00101110B」をセットする。次にステップS146に進み、2バイト時間待ち処理を実行する。この処理は、一割込みごとにBCレジスタ値を減算していき、「0」になるまで待機する処理である。ステップS146の2バイト時間待ち処理が終了すると、ステップS147に進み、メダル限界枚数(3枚)になったか否かを判断し、メダル限界枚数となったと判断したときは、本フローチャートによる処理を終了する。
一方、メダル限界枚数になっていないと判断したときはステップS144に戻り、メダル1枚加算(自動ベット)処理を再度実行する。
上記のように、リプレイ入賞時の自動ベットにおいて、メダルを1枚ずつ自動ベットすることに合わせてステップS145及びS146の2バイト時間待ち処理が実行されるので、ステップS144のメダル1枚加算処理は、約100ms経過するごとに実行される。これにより、投入枚数表示LED信号データ(_PT_MEDAL_LED )も約100ms経過するごとに更新される。よって、投入表示LED73e〜73gが順次(約100ms経過ごとに)点灯するように遊技者に見せることができる。さらに、サブ制御基板80側において、スピーカ22から自動ベット音(「プルル」等の音)を出力するときには、投入表示LED73e〜73gの点灯の変化と、自動ベット音とを同調させることができる。
さらにまた、図38の例では、ステップS139において貯留限界枚数であるか否かを判断し、貯留限界枚数でないときは、メダルの手入れ投入を可能にするためにブロッカ45をオンにする処理(ステップS140)を実行したが、たとえばリプレイ入賞時には、メダルの手入れ投入を不可に設定することも可能である。このように制御する場合には、ステップS135においてリプレイ作動時であると判断したときは、ステップS139及びS140の処理をなくすようにすればよい。
図39は、メダルの読み込み処理(S_PLAYM_READ)(図36のステップS53等)を示すフローチャートである。先ず、ステップS151において、メイン制御基板60は、メダルベット(投入)枚数データを読み込む。この処理は、RWM61に記憶されたメダルベット(投入)枚数データ(_NB_PLAY_MEDAL)の値を読み込み、読み込んだ値を所定のレジスタ(Aレジスタ)に記憶する処理である。
次にステップS152において、メイン制御基板60は、ステップS151で読み込んだメダル枚数のチェックを行う。具体的には、Aレジスタの値が「0」を示す値となっているときに、ゼロフラグを「1」にする。そして、本フローチャートによる処理を終了する。
図40は、図38のステップS138等における貯留枚数読み込み処理(S_CREDIT_READ )を示すフローチャートである。先ず、ステップS155において、メイン制御基板60は、貯留枚数のデータを読み込む。この処理は、RWM61に記憶された貯留枚数表示データ(_NB_CREDIT_LED)の値を所定のレジスタ(たとえばAレジスタ)に記憶する処理である。次にステップS156において、ステップS155で読み込んだ値のゼロチェックを行う。具体的には、Aレジスタの値が「0」を示す値となっているときに、ゼロフラグを「1」にする。そして本フローチャートによる処理を終了する。
図41は、図38のステップS140等におけるブロッカオンの処理(MS_BLOCKER_ON )を示すフローチャートである。
先ず、ステップS161において、メイン制御基板60は、ブロッカ監視時間の経過をチェックする。ブロッカ監視時間は、予め所定値(46割り込み:約102ms)に設定されており、通路センサ43aがオンとなったとき(メダルを検知したとき)に計時を開始する。次にステップS162に進み、タイマによる所定時間が経過したか否かを判断する。経過したと判断したときはステップS163に進み、経過していないと判断したときはステップS161に戻る。
このように制御するのは、ブロッカ45によりメダルを挟み込んでしまうことを防止するためである。具体的には、通路センサ43aによりメダルを検知してから約102ms経過していれば、通路センサ43aにより検知されたメダルはブロッカ45を既に通り過ぎていると判断できるからである。換言すれば、通路センサ43aがオンとなってから約102ms以内にブロッカ45を駆動すると、通路センサ43aにより検知したメダルをブロッカ45が挟み込んでしまうおそれがあるためである。なお、ブロッカ監視時間は、所定のRWMアドレスに記憶される時間であって、所定値をセットした後も遊技の進行は可能となる(2バイト時間待ち処理とは異なる)。
ステップS163では、メイン制御基板60は、この時点からの割込みを禁止する。上述したように、メイン処理(M_MAIN)の実行中には、2.235msごとに1回のタイマ割込み処理が入るが、ステップS163における「割込み禁止」の処理の実行後は、当該割込み禁止が解除されるまで、割込みを許可しないように制御する。
次のステップS164では、メイン制御基板60は、ブロッカ信号をオンにする処理を行う。この処理は、出力ポート3のD6ビットの信号を「1」にするためのRWM61にデータを記憶する処理である。具体的には、「ブロッカ信号及びホッパーモータ駆動信号データ(_PT_BLK_HPM )」中、D6ビット(ブロッカ信号)を「1」にする処理である。
なお、本実施形態では、割込み処理により出力ポートから情報を出力している(図64のステップS611)。すなわち、ステップS164のタイミングで出力ポート3のD6ビットをオンにするのではなく、メイン処理であるステップS164において、RWM61の「ブロッカ信号及びホッパーモータ駆動信号データ(_PT_BLK_HPM )」にデータを記憶し、割込み処理において出力ポート3を出力する処理時(ステップS611)に、RWM61に記憶されたデータに基づいて出力している。
さらに次のステップS165では、投入監視カウンタの値をクリアする。ここで、投入監視カウンタとは、通路センサ43aがメダルを検知すると「+1」とし、投入センサ44a及び44bがメダルを検知すると「0」とするカウンタである。すなわち、正常時には、「+1」と「0」とを繰り返すカウンタである。ブロッカ45をオン、すなわちブロッカ45によりメダル通路を形成したときは、通路センサ43aをメダルが検知するようになるからである。
次のステップS166では、ブロッカ信号状態のフラグをオンにする。ここでは、上述したメダル管理フラグ(_FL_MEDAL_STS )のD2ビットをオン(「1」)にする処理を行う。そしてステップS167に進み、ステップS163で設定した割込み禁止の解除、すなわち割込みを許可する。そして、本フローチャートによる処理を終了する。
上記において、ステップS164〜ステップS166の処理間に割込みを発生させないのは、以下の理由による。
本実施形態では、ステップS164において、ブロッカ信号をオンにし、ステップS166において、ブロッカ状態信号をオンにする処理を行う。この場合、ステップS164とステップS166との間に割込みが入ると、一方がオン、他方がオフの状態になってしまう。具体的には、途中で入った割込み処理により、ブロッカ45に対してはオンを出力するのにもかかわらず、投入可表示LED73bにはオンを出力しない(非点灯)という不整合が生じることとなる。つまり、そのような状態を避け、双方の値を一気に更新するために、割込み処理を禁止することにより、遊技者に混乱を与えないように制御することを可能としている。なお、本実施形態でステップS164、S165、S166の順で処理を実行しているが、これらの順序は本実施形態と同様の処理順序ではなくてもよい。たとえば、ステップSS166、S165、S164の順序でもよい。
また、本実施形態では、通路センサ43aがメダルを検知してから約100ms経過後にブロッカ45がオンとなり、メダル通路を形成する。このように設定したのは、投入されたメダル(通路センサ43aにより検知されたメダル)がブロッカ45に到達した瞬間にブロッカ45がオンとなり、メダルがブロッカ45に挟まることを防止するためである。よって、通路センサ43aがメダルを検知した後、所定時間(メダルが挟まる可能性のある時間)を経過するまで、ブロッカ45をオンにしないように制御している。
図42は、図38のステップS144等におけるメダル1枚の加算処理(MS_MEDAL_INC)を示すフローチャートである。
なお、この図42におけるメダル1枚の加算処理は、メダルの手入れベット時、リプレイの表示に基づく自動ベット時、及びベットスイッチ40の操作に基づく貯留ベット時に、共通して用いられる処理である。このように、実行するベット処理が異なる場合であっても、共通する処理(プログラム)を用いることにより、プログラム容量を削減することができる。
先ず、ステップS171では、メイン制御基板60は、ベットされたメダルの読み込みを行う(S_PLAYM_READ)。次のステップS172では、読み込んだベットメダル枚数に「1」を加算する処理(「+1」)を行う。そして、その演算結果をCレジスタに記憶する。たとえば、それまでのベットメダル枚数が「0」枚であったときは、「1」を加算することにより、
Cレジスタ値=00000001B
となる。
ここでの処理は、RWM61に記憶されたメダルベット枚数データ(_NB_PLAY_MEDAL)の値を読み込み、読み込んだベットメダル枚数データを所定のレジスタ(たとえばAレジスタ)に記憶し、Aレジスタの値に「1」を加算し、加算後のAレジスタ値をメダルベット枚数データに記憶(更新)する処理である。
たとえば、読み込んだベットメダル枚数データ(_NB_PLAY_MEDAL)が「0」であったときは、
_NB_PLAY_MEDAL=0
Aレジスタ値=00000000B
Aレジスタ値=00000001B(「1」加算後)
_NB_PLAY_MEDAL=1
となる。
次のステップS175では、メイン制御基板60は、獲得数表示LED72の表示のクリア処理を行う。本実施形態では図示していないが、RWM61には、獲得枚数表示データ(_NB_PAY_LED )が記憶されている。そして、このステップS175では、この獲得枚数表示データをクリアする処理である。
この処理は、Aレジスタの値が「0」となるように演算(たとえば、Aレジスタ値とAレジスタ値との排他的論理和を演算)し、演算後のAレジスタ値を獲得枚数表示データに記憶(更新)する処理を実行する。
なお、獲得数表示LED72を実際に表示する処理は、割込み処理でのLED表示制御(ステップS606)にて行われる。
次にステップS176に進み、メイン制御基板60は、投入表示LED73e〜73gの点灯データを生成する。なお、投入表示LED73e〜73gを実際に点灯させる処理は、上記と同様に、後述する割込み処理でのLED表示制御(ステップS606)にて行われる。
先ず、Aレジスタの値に「1」を加算する。加算前のAレジスタ値は、ステップS175の処理により「0」であるため、
Aレジスタ値(加算前):00000000B
Aレジスタ値(加算後):00000001B
となる。
次に、Aレジスタ値を右に一桁シフトする。本シフト処理は、単に右シフトを行うだけでなく、D0ビット目の値をD7にする循環的なシフト命令であるため、ローテートシフトとも呼ばれる。この処理により、
Aレジスタ値(シフト前):00000001B
Aレジスタ値(シフト後):10000000B
となる。
次のステップS177では、メイン制御基板60は、投入枚数分の点灯データの生成を終了したか否かを判断する。具体的には、以下の通りである。
先ず、Cレジスタ値から「1」を減算する。Cレジスタ値は、上記のように、「1」であるので、
Cレジスタ値(演算前):00000001B
Cレジスタ値(演算後):00000000B
となる。
そして、Cレジスタ値が「0」でないときは、ステップS177で「No」となり、「0」であるときは「Yes」となる。
ステップS177において投入枚数分を終了していないと判断したときはステップS176に戻り、点灯データの生成を継続する。一方、投入枚数分を終了したと判断したときはステップS178に進み、メイン制御基板60は、投入枚数表示LEDの点灯データをRWM61に記憶する制御を行う。
実際に投入枚数表示LED信号データを用いて点灯制御を実行するのは、後述する割込み処理にて実行される。
ステップS178の処理は、具体的には、以下の通りである。
先ず、Aレジスタ値を、投入枚数表示LED信号データ(_PT_MEDAL_LED )に記憶する。したがって、
投入表示LED信号データ:10000000B
となる。
なお、既に1枚のメダルが投入されていたときは、以下のようになる。
ステップS172では、
Cレジスタ値=00000010B
となる。
また、ステップS176では、
Aレジスタ値(加算前):00000000B
Aレジスタ値(加算後):00000001B
となる。
さらに、
Aレジスタ値(シフト前):00000001B
Aレジスタ値(シフト後):10000000B
となる。
次のステップS177では、
Cレジスタ値(演算前):00000010B
Cレジスタ値(演算後):00000001B
となる。
したがって、Cレジスタ値≠「0」であるので、ステップS176に戻る。
そして、ステップS176では、
Aレジスタ値(加算前):10000000B
Aレジスタ値(加算後):10000001B
となる。
さらに、
Aレジスタ値(シフト前):10000001B
Aレジスタ値(シフト後):11000000B
となる。
次に、ステップS177に進み、
Cレジスタ値(演算前):00000001B
Cレジスタ値(演算後):00000000B
となる。
そして、Cレジスタ値=「0」であるので、ステップS177で「Yes」となり、ステップS178に進む。
これにより、ステップS178では、
投入枚数表示LED信号データ:11000000B
となる。
このようにして、レジスタ(Cレジスタ、Aレジスタ)とシフト処理を用いることで、少ないプログラム処理(簡素なプログラム)で対応したデータに投入枚数表示LED信号データを記憶することができる。
ステップS178の後、ステップS179に進み、メイン制御基板60は、メダル限界枚数をセットする(MS_MMAX_SET ;図43)。
メダル限界枚数とは、当該遊技においてベット可能なメダル枚数の最大値(又はその遊技でベットしなければいけないメダル枚数)を意味する。具体的には、本実施形態ではベット可能な最大メダル枚数が遊技状態で異なっているので、その遊技状態でベット可能な最大メダル枚数を意味する。特に本実施形態では、通常遊技では、最大3枚のメダルがベット可能であり、1BB遊技中では、最大で2枚のメダルをベット可能である。よって、1BB遊技中を除くメダル限界枚数は3枚となり、1BB遊技中のメダル限界枚数は2枚となる。
次にステップS180に進み、メイン制御基板60は、ベットされたメダルの読み込み処理(S_PLAYM_READ)を行う(ステップS171と同一)。
そして、次のステップS181において、メイン制御基板60は、ベット枚数が限界枚数であるか否かを判断する。具体的には、メダル限界枚数(Aレジスタの値)からベット枚数(Cレジスタの値)を減算することにより、「0」であればベット枚数が限界枚数であると判断する。ベット枚数が限界枚数でないと判断したときは本フローチャートによる処理を終了し、限界枚数であると判断したときはステップS182に進む。ステップS182では、メダル限界フラグをセットする。ここでは、メダル管理フラグ(_FL_MEDAL_STS )のD7ビットを「1」にする処理を実行する。そして本フローチャートによる処理を終了する。
図43は、図42のステップS179等におけるメダル限界枚数のセット処理(MS_MMAX_SET )を示すフローチャートである。ステップS201では、自動ベット時の限界枚数をセットする。なお、自動ベットとは、リプレイ入賞時に自動でメダルが投入されることである。本実施形態では、「_NB_REP_MEDAL 」の値をCレジスタに記憶する処理に相当する。たとえば「_NB_REP_MEDAL 」の値が「3」であれば、Cレジスタ値=「3」となる。
次のステップS202では、作動状態フラグ(_FL_ACTION)の値を読み込む。
そして、次のステップS203では、メイン制御基板60は、ステップS202で読み込んだ作動状態フラグのD0ビットが「1」であるか否か(リプレイ作動時であるか否か)を判断する。ここでは、たとえば、ステップS202で読み込んだデータのD0ビットが「1」であるときはリプレイ作動時であると判断し、「0」であるときはリプレイ非作動時であると判断する。リプレイ作動時であるときは、本フローチャートによる処理を終了し、リプレイ作動時でないときはステップS204に進む。すなわち、リプレイ作動時には、Cレジスタ値「3」が自動ベット数となる。
一方、ステップS204に進むと、メダルの限界枚数として、Cレジスタに「2」を記憶する。
次にステップS205に進み、メイン制御基板60は、当該遊技がメダル限界枚数2枚の遊技時であるか否かを判断する。上述したように、たとえば通常遊技であるときはメダル限界枚数が2枚でないと判断し、1BB遊技中であるときはメダル限界枚数が2枚であると判断する。たとえばステップS202で読み込んだデータのD3ビットが「0」であるときはメダル限界枚数2枚の遊技時(1BB遊技中)でないと判断し、「1」であるときはメダル限界枚数2枚の遊技時(1BB遊技中)であると判断する方法が挙げられる。
メダル限界枚数が2枚であるときは、本フローチャートによる処理を終了する。これにより、メダル限界枚数は「2」に設定される。一方、メダル限界枚数が2枚でないと判断したときはステップS206に進み、Cレジスタ値に「1」を加算する。これにより、Cレジスタ値は「3」となり、この「3」をメダル限界枚数としてセットする。そして本フルによる処理を終了する。
図44は、図36のステップS55におけるメダル投入待ち(MS_STANDBY_DSP)を示すフローチャートである。
先ず、ステップS411では、メイン制御基板60は、設定キースイッチ52の信号がオンであるか否かを判断する。ここでは、入力ポート1の立ち上がりデータ(アドレス「F00B」)において、設定キースイッチ52の立ち上がりデータ(D3ビット)がオン(「1」)であるか否かを判断する。オンであるときはステップS412に進み、オンでないと判断したときはステップS421に進む。すなわち、メダル投入待ち状態において、設定キースイッチ52がオンにされると(設定キー挿入口から設定キーが挿入されると)、設定確認モードとなり、ステップS412〜ステップS420の処理が実行される。設定確認モードは、現設定値を確認(管理者が目視にて確認)するモードであり、設定値の変更はできない。
なお、本実施形態では、設定キースイッチ52の立ち上がりデータによってステップS411の判断を行っている。これにより、たとえば遊技中に設定キースイッチ52がオンにされた場合において、ステップS411による判断を行っても立ち上がりデータはオフ(設定キースイッチ52はオン)であるため、設定確認モードには移行しないようにし、不正に設定値を確認できないようにしている。もちろん、これらを考慮しない場合には、設定キースイッチ52のオン、オフによりステップS411や、後述するステップS416の判断を行ってもよい。
ステップS412では、ブロッカ45がオフにされる(MS_BLOCKER_OFF;図48)。これにより、メダルがメダル投入口43から投入されても払出し口から返却される。
次のステップS413では、メイン制御基板60は、設定値表示開始時の出力要求をセットする。そして、次のステップS414で、サブ制御基板80に対して送信する、設定値表示開始時の制御コマンドデータをセットする。
次にステップS415に進み、メイン制御基板60は、設定値表示LED64を点灯させる処理を行う。これにより、設定値表示LED64を点灯可能とし、現在の設定値を表示することができる。なお、設定値表示LED64を実際に点灯/消灯する処理は、割込み処理におけるLED表示制御(ステップS606)にて行われる。
次にステップS416に進み、設定キースイッチ52の信号がオフになったか否かを判断し続ける。この処理は、ステップS411とは反対に、入力ポート1の立ち下がりデータ(アドレス「F00C」)のD3ビットが「1」になったか否かを判断する。設定キースイッチ52の信号がオフになったと判断されたときはステップS417に進み、メイン制御基板60は、設定値表示LED64を消灯させる処理を実行する。
次に、ステップS418に進み、メイン制御基板60は、設定値表示終了時時の出力要求をセットする。そして、次のステップS419で、サブ制御基板80に対して送信する、設定値表示終了時の制御コマンドデータをセットする。
次のステップS420では、メイン制御基板60は、ブロッカをオンにする処理(MS_BLOCKER_ON ;図41)を行う。次にステップS421に進み、メイン制御基板60は、遊技待機表示時間が、ステップS81(図37)でセットした「26846」割込み(約60秒)を経過したか否かを判断する。
遊技待機表示時間を経過したと判断したときは、ステップS422に進み、獲得数表示LED72の表示をクリアする処理を実行する。この処理は、上述した図42のステップS175の処理と同一である。そして、本フローチャートによる処理を終了する。一方、ステップS421において、遊技待機表示時間を経過していないと判断したときは、本フローチャートによる処理を終了する。
つまり、本実施形態では、所定時間、遊技が行われなかった場合には、獲得数表示LED72の表示をクリアするが、リプレイ表示LED73a、貯留数表示LED71、投入表示LED73e〜73gはクリアしないように構成している。これにより、ベットされていること、再遊技が可能なこと、又は精算可能な貯留枚数は、表示され続けているため、遊技者が一旦離席しようとしたときに、他の遊技者やホール関係者に対してその遊技者が遊技を終了したとは感じさせないことが可能となる。これにより、遊技者が不利益を被ることを少なくすることができる。
また、獲得枚数(たとえば8枚)の獲得があった旨を表示し続けることは、遊技者が遊技を終了(精算処理等を行って離席)したときに、獲得枚数が表示され続けることによって、他の遊技者やホール関係者に対してその遊技者が遊技を終了したとは感じさせないこと(まだ遊技者が遊技をしようとしているかも)と混同してしまうため、獲得枚数はクリアしている。
図37のステップS81及び図44のステップS421、ステップS422の処理により、遊技開始時には、約60秒のタイマがセットされ、遊技開始時から60秒を経過すると、獲得数表示LED72の表示内容をクリアする(「00」にする)。
これにより、たとえば、リール31の回転中や、全リール31の停止時における役の非入賞時(役の当選を有無を問わない)には、獲得数表示LED72には「00」が表示された状態である。また、たとえば全リール31の停止時にベル01が入賞したとき(通常遊技中)は、獲得数表示LED72の表示が「00」から「08」となる。
また、図42のメダル1枚加算(MS_MEDAL_INC)においては、ステップS175で獲得枚数の表示がクリアされるので、メダル投入があったとき(ベットメダルの投入、メダルの手入れ投入、リプレイ入賞時のメダルの自動投入時)は、獲得枚数の表示がクリアされることとなる。
なお、上記の制御は一例であるので、たとえば、リール31の回転中、全リール31の停止時における役の非入賞時、メダル投入時には、獲得数表示LED72には何も表示しないようにしてもよい。
図45は、図36のステップS56におけるメダル管理処理(MS_MEDAL_CHK)を示すフローチャートである。
図45において、ステップS211では、メイン制御基板60は、ブロッカ信号がオンであるか否かを検知する。ブロッカ信号がオンであるときはステップS212に進み、ブロッカ信号がオンでないときはステップS213に進む。ここで、「ブロッカ信号がオン」であるというのは、ブロッカ45によりメダル通路が形成されている場合に相当する。本実施形態では、メダル管理フラグ(_FL_MEDAL_STS )のD2ビットのデータがオンであるか否かを検知する。
ステップS212では、メイン制御基板60は、投入センサ信号に係るデータがオンであるか否かを検知する。ここでは、入力ポート2のレベルデータ(アドレス「F00D」)のD1又はD2ビットのいずれかが「1」であるか否かを判断する。投入センサ信号に係るデータがオンであると判断したときは、メダルの手入れ投入を意味するので、ステップS222(MS_INSERT_CHK :図46)に進み、メダルの手入れ時のチェック処理を実行する。これに対し、オンでないと判断したときは、ステップS213に進む。
ステップS213では、1ベットスイッチ40a、3ベットスイッチ40bのベット操作、精算操作の受付けが可能であるか否かをチェックする要求をセットする。そして、次のステップS214において、これらの操作受付けが可能であるか否かをチェックする。
次にステップS215に進み、メイン制御基板60は、操作受付けが可能であるか否かを判断する。可能であると判断したときはステップS216に進み、可能でないと判断したときは本フローチャートによる処理を終了し、メイン処理に戻る。
上記のステップS213〜S215の処理により、ベット処理又は精算処理を行う前に、1ベットスイッチ40a、3ベットスイッチ40b及び精算スイッチ43の操作受付けが可能な状態であるか否かを判断し、可能な状態である場合のみ、ベット処理又は精算処理に移行するようにしている。たとえば、ステップS213〜S215の処理により、入力ポート0のレベルデータ及び立ち上がりデータを読み込み、入力ポート0のレベルデータと立ち上がりデータとが一致していないときに、操作受付可能ではないと判断している。
ステップS216では、ベットスイッチ信号及び精算スイッチ信号の確認要求をセットする。ここでは、入力ポート0の立ち上がりデータ(アドレス「F009」)を読み込む。
次のステップS217では、ステップS216での確認に基づき、1ベットスイッチ40a、3ベットスイッチ40b又は精算スイッチ43のうち、いずれかの信号の立ち上がりがあるか否かを判断する。ここでの判断は、ステップS213で読み込んだ入力ポート0の立ち上がりデータのうち、D0、D1、D2ビットが「1」であるか否かを判断する。
具体的には、たとえば読み込んだ入力ポート0の立ち上がりデータと、「00000111B」(定義データ)とをAND演算し、D3〜D7ビットをクリアする。そして、演算結果が「0」であるか否かを判断する。
演算結果が「0」であるときは、いずれの信号の立ち上がりもないと判断し(すなわち、1ベットスイッチ40a、3ベットスイッチ40b及び精算スイッチ46のいずれも操作の変化がないと判断し)、本フローチャートによる処理を終了してメイン処理に戻る。
ステップS217で、演算結果が「0」でないと判断したとき、すなわちいずれかの信号の立ち上がりがあると判断されたときはステップS218に進む。ステップS218では、スタートスイッチ41の受付け許可フラグをクリアする。この処理は、上述したメダル管理フラグのD0ビットを「0」にする処理である。メダル管理フラグのD0ビットが「0」のときは、スタートスイッチ41は有効にはならない(操作されても無効となる)ことを示すために、遊技開始LED73dを消灯する。一方、メダル管理フラグのD0ビットが「1」のときは、スタートスイッチ41が有効となっていることを示すために、遊技開始LED73dを点灯する。なお、遊技開始LED73dの点灯/消灯の実際の出力は、割込み処理(図64のステップS606)で実行される。
したがって、1ベットスイッチ40a、3ベットスイッチ40b又は精算スイッチ43のうち、いずれかの信号に変化があったときは、スタートスイッチ41を受付けを許可しないことを報知するために、メダル管理フラグのデータを更新してから、1ベットスイッチ40a、3ベットスイッチ40b又は精算スイッチ43の操作に基づく処理(図45中、精算処理(MS_MEDAL_RET)、又は貯留ベット処理(MS_BET_IN ))を実行する。
なお、スタートスイッチ41に基づく処理(たとえば役抽選処理等)は、メイン処理で実行され、精算処理や貯留ベット処理もメイン処理で実行されることから、たとえば精算処理中にスタートスイッチ41に基づく処理が実行されないように構成されている。
次にステップS219に進み、メイン制御基板60は、精算スイッチ46信号に係るデータの確認要求をセットする。ここでの処理は、たとえば入力ポート0の立ち上がりデータのD0ビットが「0」か「1」かを確認する処理である。
そして、次のステップS220で、メイン制御基板60は、ステップS219での確認に基づき、精算スイッチ46信号の立ち上がりがあるか否かを判断する。ここでの処理は、入力ポート0の立ち上がりデータにおいて、D0ビットが「0」であるときは精算スイッチ43信号の立ち上がりがないと判断し、D0ビットが「1」であるときは、精算スイッチ43信号の立ち上がりがあると判断する。
精算スイッチ46信号の立ち上がりがあると判断したときはステップS221に進み、精算処理(MS_MEDAL_RET:図52)を実行する。一方、精算スイッチ信号の立ち上がりがないと判断したときは、ベットスイッチ信号の立ち上がりがあることを意味するので、ステップS223に進み、貯留ベット処理(MS_BET_IN :図50)を実行する。
以上のメダル管理処理において、ステップS212で投入センサ信号に係るデータがオンであるか否かを判断し、オンであるときは手入れメダルチェックに進み、オンでないと判断したときは、ベットスイッチ40信号又は精算スイッチ46信号に係るデータがオンであるか否かを判断する。
したがって、ベットスイッチ40や精算スイッチ43よりも、物理的なメダルの投入を優先的にチェックするので、メダルの飲み込みを防止することができる。
ここで、「ベットスイッチ40や精算スイッチ46よりも、物理的なメダルの投入を優先的にチェックする」とは、図36のステップS53〜S58をループしているときであって、かつブロッカ信号がオンの状況下において、割込み処理によって各入力ポートに係るRWM61のデータが更新され、入力ポート2のD1又はD2ビットのレベルデータのいずれかが「1」、及び入力ポート0のD0、D1又はD2ビットの立ち上がりデータのいずれかが「1」のときに、「手入れメダルチェック(ステップS222)」が「精算処理(ステップS221)」や「貯留ベット処理(ステップS223)」よりも実行されやすいプログラム順序やプログラム処理を指す。
また、ステップS220では、精算スイッチ43の立ち上がりデータを確認し、続く処理の実行(精算処理又はベット処理)を判断している。
この理由の1つとして、本実施形態では貯留ベット処理を実行するためのスイッチとして1ベットスイッチ40a、3ベットスイッチ40bの2つのスイッチを備えているのに対し、精算処理を実行するためのスイッチとしては精算スイッチ46の1つしか備えていない。そのため、入力ポート0のD0ビット(特定ビット)の立ち上がりデータがオンか否かを判断するだけで、精算処理又は貯留ベット処理の判断が可能となる。換言すると、「D1ビット又はD2ビットがオン?」と判定するより処理が簡素化され、プログラム容量が削減される。
図46及び図47は、図45のステップS222におけるメダルの手入れ時のチェック処理(MS_INSERT_CHK )を示すフローチャートである。図47は、図46に続くフローチャートである。
図46において、ステップS231では、メイン制御基板60は、スタートスイッチ41の受付け許可フラグ(メダル管理フラグのD0ビット)をクリアする。
次にステップS232に進み、メイン制御基板60は、投入センサ1(44a)信号に係るデータがオンであるか否かを判断する。
投入センサ1信号に係るデータがオンであるときはステップS233に進み、オンでないとき(投入センサ2信号に係るデータがオンであるとき)はステップS238に進む。ステップS233では、投入センサ1の通過チェック時間(割り込み回数が64、約143ms)をセットする。ここで、投入センサ1によりメダルが検知されると投入センサ1信号に係るデータがオンとなるが、その後、所定時間を経過しても投入センサ1信号に係るデータがオフにならないときは、メダル詰まり等が考えられるので、投入センサ1の通過チェック時間を計測する。
次にステップS234に進み、メイン制御基板60は、ステップS232と同様にして、投入センサ1及び2信号に係るデータがオフであるか否かを判断する。投入センサ1及び2信号に係るデータがオフであると判断したときは本フローチャートによる処理を終了する。
ここで、ステップS232で投入センサ1信号に係るデータがオンになった後、ステップS234で投入センサ1信号に係るデータがオフと判断されることは稀であるが、ノイズやメダルセレクタ45内でメダルが暴れる等により投入センサ1信号に係るデータが一時的にオンとなり、ステップS232でそのオンが検出される場合がある。そして、ノイズやメダルセレクタ45内でメダルが暴れる等により投入センサ1信号に係るデータが一時的にオンとなっても、ステップS234の処理により、ステップS235以下に進まないようにしている。つまり、このような現象が発生しても、エラーと判定してエラー報知等を行わないので、遊技をスムーズに進行することができる。
ステップS234において、投入センサ1及び2信号に係るデータがオフでないと判断したときはステップS235に進む。ステップS235では、投入センサ1及び2信号に係るデータがオンであるか否かを判断する。投入センサ1及び2信号に係るデータがオンであると判断したときはステップS240に進み、オンでないと判断したときはステップS236に進む。
ステップS236では、メイン制御基板60は、投入センサ1信号に係るデータがオンであるか否かを判断する。オンであると判断したときはステップS237に進み、オンでないと判断したときはステップS238に進む。
ステップS237では、メイン制御基板60は、投入センサ1の通過チェック時間が経過したか否かを判断する。すなわち、ステップS233でセットした時間が所定時間を経過したか否かを判断する。通過チェック時間を経過したと判断したときはステップS248に進み、通過チェック時間を経過していないと判断したときはステップS234に戻る。
ステップS232において投入センサ1信号に係るデータがオンでないと判断されたとき、又はステップS236において投入センサ1信号に係るデータがオンでないと判断されてステップS238に進むと、メイン制御基板60は、メダルの不正通過エラーの表示要求をセットする。このメダル不正通過エラーは、本実施形態では「CPエラー」と称し、獲得数表示LED72に「CP」と表示する制御処理を実行する。そしてステップS239に進み、エラー表示(MS_ERROR_DSP;図56)に移行する。
また、ステップS235において投入センサ1及び2信号に係るデータがオンであると判断され、ステップS240に進むと、メイン制御基板60は、投入センサ2の通過チェック時間(割り込み回数が、約143ms)をセットする。次にステップS241に進み、メイン制御基板60は、投入センサ2信号に係るデータがオンであるか否かを判断する。投入センサ2信号に係るデータがオンであるときはステップS245に進み、オンでないときはステップS242に進む。ステップS242では、メイン制御基板60は、投入センサ1及び2信号に係るデータがオンであるか否かを判断する。オンであるときはステップS243に進み、オンでないときはステップS238に進む。
ステップS243では、メイン制御基板60は、投入センサ2の通過チェック時間が経過したか否かを判断する。すなわち、ステップS240でセットした時間が所定時間を経過したか否かを判断する。投入センサ2の通過チェック時間が経過したと判断したときはステップS248に進み、通過チェック時間が経過していないと判断したときはステップS244に進む。ステップS244では、メイン制御基板60は、投入センサ1の通過チェック時間が経過したか否かを判断する。投入センサ1の通過チェック時間が経過したと判断したときはステップS248に進み、通過チェック時間が経過していないと判断したときはステップS241に戻る。
ステップS241において投入センサ2信号に係るデータがオンであると判断され、ステップS245に進むと、メイン制御基板60は、投入センサ1及び2信号に係るデータがオフであるか否かを判断する。投入センサ1及び2信号に係るデータがオフであると判断したときは図47のステップS249に進み、オフでないと判断したときはステップS246に進む。ステップS246では、メイン制御基板60は、投入センサ2信号に係るデータがオンであるか否かを判断する。
投入センサ2信号に係るデータがオンでないと判断したときはステップS238に進み、オンであると判断したときはステップS247に進む。ステップS247では、メイン制御基板60は、投入センサ2の通過チェック時間が経過したか否かを判断する。投入センサ2の通過チェック時間が経過したと判断したときはステップS248に進み、通過チェック時間が経過していないと判断したときはステップS245に戻る。
ステップS248に進むと、メダル滞留エラーの表示要求をセットする。メダル滞留エラーとは、投入センサ1や2信号に係るデータが、通過チェック時間の経過後もオンの状態となり、メダル通路にメダルが滞留していることを意味するので、そのエラーを表示するためである。このメダル滞留エラーは、本実施形態では「CEエラー」と称し、獲得数表示LED72に「CE」と表示する制御処理を実行する。そしてステップS239に進み、エラー表示に移行する。
ステップS245において投入センサ1及び2信号に係るデータがオフであると判断し、図47のステップS249に進むと、メイン制御基板60は、メダル異常投入エラーの表示要求をセットする。ここで、メダル異常投入エラーとは、通路センサ43aと投入センサ1、2の通過異常があったことを示すエラーである。メダル異常投入エラーは、本実施形態では「C1エラー」と称し、このメダル異常投入エラーが発生したときは、獲得数表示LED72に「C1」と表示する制御処理を実行する。
次にステップS250に進み、メイン制御基板60は、投入監視カウンタの値を「1」減算する。ここで、投入監視カウンタとは、上述したように、通路センサ43aがメダルを検知すると、「+1」とし、投入センサ1及び2がメダルを検知すると、「0」とするカウンタである。すなわち、正常時には、「+1」と「0」とを繰り返す。
次にステップS251に進み、メイン制御基板60は、投入監視カウンタの値が「0」〜「3」の範囲であるか否かを判断する。当該範囲内であると判断したときはステップS252に進み、範囲内でないと判断したときは、図46のステップS239に進み、上記と同様にエラー表示に移行する。
たとえば、当該カウンタの値が「−1」となるのは、通路センサ43aを通過せずに投入センサ1、2を通過した場合が挙げられる。
また、当該カウンタの値が「+4」となるのは、通路センサ43aを通過したメダルが投入センサ1、2を通過する前に滞留している場合が挙げられる。
ステップS252では、メダル限界枚数をセットする(MS_MMAX_SET :図43)。次にステップS253に進み、ベットメダル(現時点でベットされているメダル枚数)の読み込みを実行する(S_PLAYM_READ:図39)。
次のステップS254では、貯留枚数の読み込みを実行する(S_CREDIT_READ :図40)。
次にステップS255に進み、メイン制御基板60は、現時点でベットされているメダル枚数及び貯留枚数の合計数を算出する。次のステップS256では、メダルの投入を有効とした後に、その後のメダル投入は不可能であるか否かを判断する。本実施形態では、
「現在のベット枚数」+「現在の貯留枚数」−49=「メダル限界枚数」
という式が成立するか否かを演算する。
ここで、「現在のベット枚数」とは、現在通過したメダルを加算する前のメダル枚数を指す。たとえば、現在のベット数が「2」であり、現在の貯留数が「50」であるとき、メダル限界枚数は「3」となり、この式が成立するので、現在通過したメダルの投入後は、その後のメダル投入は不可能であると判断する。
そして、投入不可能と判断したときはステップS257に進んでブロッカ45をオフにする処理を実行する(MS_BLOCKER_OFF:図48)。そしてステップS258に進む。一方、投入可能と判断したときは、ステップS257をスキップしてステップS258に進む。
そして、ブロッカ信号がオンであるときは、投入センサ1及び2を通過するメダル通路を形成させ、オフであるときは、メダル投入口43から投入されたメダルを払出し口から返却するメダル通路を形成する。
次のステップS258では、メイン制御基板60は、メダル手入れ時の出力要求をセットし、次のステップS259では、制御コマンドセット1を実行する。
次のステップS260では、メイン制御基板60は、現時点でメダルのベット枚数が限界枚数(上限枚数)であるか否かを判断する。ベット枚数が限界値であると判断したときはステップS262に進み、貯留(クレジット)枚数の加算処理(MS_CREDIT_ADD :図49)を実行する。これに対し、ベット枚数が限界枚数でないと判断したときはステップS261に進み、メダル1枚のベット加算処理を行う(MS_MEDAL_INC:図42)。
図48は、ブロッカオフの処理(MS_BLOCKER_OFF)を示すフローチャートである。上述したように、メダルの手入れが有効になった後、メダルの手入れが不可能(受付け不可能)となったときは、ブロッカ45をオフにし、メダル投入口43から手入れされたメダルを払出し口から返却するメダル通路を形成するように制御する。
先ず、ステップS271において、メイン制御基板60は、ブロッカ信号の確認処理を行う。ここでは、RWM61に記憶されたブロッカ信号及びホッパーモータ駆動信号データ(_PT_BLK_HPM )のD6ビットを確認する。
次にステップS272に進み、メイン制御基板60は、ブロッカ信号がオフ(上記のブロッカ信号データが「0」)であるか否かを判断する。オフでないと判断したときはステップS273に進み、オフであると判断したときは本フローチャートによる処理を終了する。すなわち、既にブロッカ45がオフであるときは、ブロッカ45をオフにする本処理を進めることなく本フローチャートによる処理を終了する。
ステップS272においてブロッカ信号がオフでないと判断し、ステップS273に進むと、メイン制御基板60は、この時点からの割込みを禁止する。上述したように、メイン処理(M_MAIN)の実行中には、2.235msごとに1回のタイマ割込み処理が入るが、ステップS273のような「割込み禁止」の記述があるときは、当該割込み禁止が解除されるまで、割込みを許可しないように制御する。
次のステップS274では、メイン制御基板60は、ブロッカ信号をオフにする処理を行う。この処理は、出力ポート3のD6ビットを「0」にするための処理である。具体的には、上記のブロッカ信号及びホッパーモータ駆動信号データ中、D6ビットを「0」にすることにより、次の割込み処理時に出力ポート3のD6ビットが「0」となる。さらに次のステップS275では、ブロッカ信号状態をオフにする処理を行う。この処理は、メダル管理フラグのD2ビットを「0」にする処理である。
そしてステップS276に進み、メイン制御基板60は、投入センサ2の異常入力の検出時間をセットする。
ここで、本実施形態では、ブロッカ45をオン(メダル通過)からオフ(メダル返却)にした後、所定時間を経過する前には投入センサ2のオン信号を検出しても投入センサ2の異常入力とは判断しないが、所定時間を経過した後に投入センサ2のオン信号を検出したときは投入センサ2の異常入力と判断する。具体的には、ブロッカ45が物理的にオフになった直後やオフに制御している途中でメダルが投入センサ44a(1)や44b(2)を通過することがあり得るため、そのような場合においてエラーとして検知しない(正常の通過とみなす)ようにするためである。このため、ステップS276のタイミングで、投入センサ異常入力の検出時間(500.64ms)をセットする。
ステップS276で投入センサ異常入力の検出時間をセットすると、ステップS277に進み、ステップS273で設定した割込み禁止の解除、すなわち割込みを許可する。そして、本フローチャートによる処理を終了する。
上記処理において、ステップS274〜ステップS276の処理間に割込みを発生させないのは、ブロッカオンの処理時と同様である。
すなわち、ブロッカ信号をオフにする処理、及びブロッカ状態信号をオフにする処理との間に割込みが入ると、一方がオフ、他方がオンの状態になってしまうが、そのような状態を避け、双方の値を一気に更新するために、割込み処理を禁止している。
また、ステップS274においてブロッカ信号をオフにし、ステップS276において投入センサ2異常入力検出開始時間をセットした後、ステップS277で割込み許可をするのは、以下の理由による。
ステップS274でブロッカ信号をオフにした後、ステップS276の処理が実行される前に割込み処理が実行されると、後述する図64のステップS607において入力ポート読込み処理が行われ、投入センサ2がメダルを検知したときはエラーを検出してしまう。そこで、ステップS276の処理の実行後に、ステップS277で割込み処理を許可している。
図49は、図47のステップS262における貯留枚数1枚加算(MS_CREDIT_ADD )を示すフローチャートである。
ステップS278では、貯留枚数の読み込みを実行する(S_CREDIT_READ ;図40)。ここでは、貯留枚数表示データ(_NB_CREDIT_LED)を読み込み、その値をAレジスタに記憶する処理を実行する。
次のステップS279では、貯留枚数に「1」を加算する処理(「+1」)を行う。この処理は、Aレジスタ値に「1」を加算する処理である。次のステップS280では、貯留枚数データを保存、すなわち演算後のAレジスタ値を貯留枚数表示データ(_NB_CREDIT_LED)に記憶する。そして、本フローチャートによる処理を終了する。なお、ステップS280では、貯留枚数データを10進数データに変換した値を貯留枚数表示データとして保存する。
図50は、図45のステップS223における貯留ベット処理(MS_BET_IN )を示すフローチャートである。
先ず、ステップS281において、メイン制御基板60は、メダル管理フラグのD7ビットを読み込むことにより、メダル限界フラグがオン(「1」)であるか否かを判断する。メダル限界フラグがオンであるときは、ベット枚数が既に最大枚数であることを意味するので、本フローチャートによるベット処理を終了する。すなわち、図45のステップS220においてベットスイッチ40の操作を検知し、「MS_BET_IN 」の処理に移行したとしても、ベット枚数が既に最大枚数であるときは、貯留ベット処理を行わない。
ステップS281においてメダル限界フラグがオンでないと判断したときはステップS282に進み、ベット(投入)要求枚数として「1」をセットする。この処理は、Bレジスタに「1」を記憶する。したがって、
Bレジスタ値=1
となる。
次にステップS283に進み、入力ポート0のD1ビットの立ち上がりを有するか否か(「1」であるか否か)、すなわち1ベットスイッチ40aが操作されたか否かを判断する。1ベットスイッチ40aが操作されたと判断したときはステップS288に進み、1ベットスイッチ40aが操作されていないと判断したときはステップS284に進む。
なお、ステップS283以前の処理(図45のステップS217、ステップS220)において、いずれかのベットスイッチ40の操作を検知しているので、ステップS283において「No」となったときは、3ベットスイッチ40bが操作されたことを意味する。
ステップS284では、メダル限界枚数(たとえば、通常遊技では3枚)をセットする(MS_MMAX_SET ;図43)。ここでは、Cレジスタにメダル限界枚数を記憶する。たとえば通常遊技であるときは、
Cレジスタ値=3
となる。
次のステップS285では、(ベット)メダルの読み込み処理を行う(S_PLAYM_READ;図39)。この処理は、上述と同様に、メダルベット枚数データ(_NB_PLAY_MEDAL)の値を読み込み、読み込んだベットメダル枚数データをAレジスタに記憶する処理である。また、メダルベット枚数データのアドレス「F06B」をHLレジスタに記憶する。これにより、
HLレジスタ値=F06B(H)
となる。
次に、ステップS286に進み、ベット要求枚数をセットする。この処理では、まず、Cレジスタ値(メダル限界枚数)をAレジスタに記憶する。Cレジスタ値がたとえば上記のように「3」であるときは、Aレジスタ値=「3」とする処理である。さらに、Aレジスタ値(この時点では、メダル限界枚数を示している)から、HLレジスタが示すアドレスのデータ(メダルベット枚数データ)を減算し、その結果をAレジスタに記憶する。たとえばAレジスタ値(メダル限界枚数)が「3」であり、メダルベット枚数データ(すでにベットされている枚数)が「1」であるとき、「3−1=2」により、Aレジスタ値は「2」に更新される。この値が、新たにベットとして加算されるメダル枚数となる。
次にステップS287に進み、ベット要求枚数修正処理を行う。すなわち、ステップS286で算出した値をベット要求枚数としてセットする処理である。具体的には、Aレジスタ値をBレジスタに記憶する処理を実行する。
上述したステップS282では、初期値として、ベット要求枚数を「1」(Bレジスタ値=「1」)にセットしたが、1ベットスイッチ40aの操作時にはそのままとし、3ベットスイッチ40bの操作時には、ステップS282でセットした「1」に代えて、ステップS286で演算した値を再セットするものである。
次に、ステップS288に進み、現時点における貯留枚数の読み込みを行う(S_CREDIT_READ ;図40)。この処理は、「_NB_CREDIT_LED」の値を読み込み、読み込んだデータをAレジスタに記憶する処理である。
次のステップS289では、メイン制御基板60は、メダルの貯留の有無を判断する。ステップS288で記憶したAレジスタ値が「0」であるときはメダルの貯留なしと判断し、Aレジスタ値が「0」でないときはメダルの貯留ありと判断する。
そして、メダルの貯留なしと判断したときは本フローチャートによる処理を終了し、メダルの貯留有りと判断したときはステップS290に進む。
ステップS290では、1ベットスイッチ40a信号の立ち上がりデータを有するか否か(入力ポート0の立ち上がりデータのD1ビットが「1」であるか否か)を判断する。1ベットスイッチ40a信号の立ち上がりデータを有すると判断したときはステップS291に進み、1ベットスイッチ40a信号の立ち上がりデータを有さないと判断したときはステップS291をスキップしてステップS292に進む。
ステップS291では、1ベットスイッチ40a信号の立ち上がりデータをクリアする。すなわち、入力ポート0の立ち上がりデータのD1ビットを「0」にする処理を実行する。このようにして、ステップS289で貯留メダルありの場合には、1ベットスイッチ40a信号の立ち上がりデータの有無を判断し、立ち上がりデータを有するときは、そのデータをクリアした後、ベット処理を実行する。
上述したように、入力ポート0〜2の立ち上がりデータは、割込み処理によって生成され、記憶される。
一方、ベット処理を実行する場合には、割込み処理によって生成・記憶した1ベットスイッチ40aに係る立ち上がりデータを、メイン処理内でクリアする処理を実行する。
ここで、1ベットスイッチ40aに係る立ち上がりデータをクリアしなかった場合には、再度割込み処理が実行されるまで、1ベットスイッチ40aに係る立ち上がりデータ「1」が維持される。
この場合、次の割込み処理が実行されて1ベットスイッチ40aに係る立ち上がりデータが「0」に更新される前に、図45のメダル管理(MS_MEDAL_CHK)からステップS217で「Yes」となり、図50の貯留ベット処理(MS_BET_IN )が再度実行され、1ベットスイッチ40a信号の立ち上がりデータが「1」であることに基づいて、再度、1枚のベット処理が実行されてしまう。したがって、たとえば遊技者が1ベットスイッチ40aを操作して1枚のメダルをベットしようとしたとき、連続して2枚や3枚のメダルがベットされてしまう可能性がある。
このような不都合を回避するために、メダルの貯留がある場合には、ベット処理の開始前に、1ベットスイッチ40aに係る立ち上がりデータをクリアしている。
なお、本実施形態では、1ベットスイッチ40aに係る立ち上がりデータのみをクリアし、3ベットスイッチ40bが操作されたときには、3ベットスイッチ40bに係る立ち上がりデータをクリアする処理は実行していない。
3ベットスイッチ40bの操作に基づき3枚が貯留ベットされたときは、その後、ステップS296のメダル1枚加算において、メダル限界フラグがセットされる(図42のステップS182)。
これにより、仮に、上記と同様に、次に割込み処理が実行されるまで、3ベットスイッチ40b信号の立ち上がりデータ「1」が維持され、図45のメダル管理(MS_MEDAL_CHK)からステップS217で「Yes」となり、図50の貯留ベット処理(MS_BET_IN )が再度実行されると、ステップS281で「Yes」となり、貯留ベット処理は実行されないからである。
また、たとえば3ベットスイッチ40bが操作される前のベット枚数が「0」、貯留枚数が「2」であったときは、3ベットスイッチ40bの操作に基づいて、ベット枚数が「2」となる。このとき、ベット枚数は、未だ限界枚数となっていないので、メダル限界フラグは「1」にならない。
この状態において、3ベットスイッチ40b信号の立ち上がりデータがクリアされておらず、次の割込み処理が実行される前に、再度、貯留ベット処理が実行されると、ステップS281では、「No」となるが、ステップS289で「No」となるので、ステップS290以降の処理が実行されることはない。
このため、3ベットスイッチ40bに係る立ち上がりデータのクリアは、必ずしも必要でない(少なくとも1ベットスイッチ40aに係る立ち上がりデータをクリアすればよい)。
しかし、3ベットスイッチ40bに係る立ち上がりデータを「1」のままにしておくと、次に割込み処理が実行されるまで、3ベットスイッチ40b信号の立ち上がりデータが「1」であることに基づいて、貯留ベット処理が実行されてしまう(図50の処理に移行する)ことはたしかである。したがって、これを避ける場合には、3ベットスイッチ40b信号の立ち上がりデータについてもクリアしてもよい。3ベットスイッチ40b信号の立ち上がりデータをクリアする場合には、ステップS290の処理を、「1ベットスイッチ40a信号の立ち上がりデータを有するか否かの判断」に代えて、3ベットスイッチ40b信号の立ち上がりデータのクリア処理にすればよい。3ベットスイッチ40b信号の立ち上がりデータのクリア処理は、入力ポート0の立ち上がりデータ(_PT_IN0_UP)のD2ビットを「0」にする処理である。その他方法として、入力ポート0の立ち上がりデータを記憶しているRWMの1アドレスをクリアする処理を採用してもよい。
ステップS292に進むと、メダル貯留枚数(ステップS288で読み込んだ枚数)が、ベット要求枚数(ステップS282又はステップS287でセットした枚数)以上であるか否かを判断する。具体的には、Aレジスタ値(メダル貯留枚数)からBレジスタ値(ベット要求枚数)を減算する処理を実行し、「0」以上であるか否かを判断する。
そして、メダル貯留枚数がベット要求枚数以上であると判断したときはステップS294に進み、メダル貯留枚数がベット要求枚数以上でないと判断したときはステップS293に進む。
ステップS293では、メダル貯留枚数をセットする。この処理は、全貯留枚数をベット加算枚数に設定する処理である。すなわち、ステップS292で「No」のときは、貯留枚数がベット枚数に満たない場合であるので、この場合には全貯留枚数をベット加算枚数とする処理を行う。具体的には、Aレジスタ値をBレジスタに記憶する処理である。そしてステップS294に進む。
以上より、ステップS283で「Yes」であるとき(1ベットスイッチ40a操作時)は、ステップS282でセットしたベット要求枚数「1」がベット加算枚数とされ、その値がBレジスタに記憶される(Bレジスタ値=「00000001B」)。
一方、ステップS287においてたとえばベット要求枚数として「3」がセットされ、ステップS292で「Yes」であるときは、ベット要求枚数「3」がベット加算枚数とされ、その値がBレジスタに記憶される(Bレジスタ値=「00000011B」)。
また、ステップS287においてベット要求枚数として「3」がセットされたが、貯留枚数が「2」であるときは、ステップS292で「No」となり、ステップS293で「2」がベット加算枚数とされ、その値がBレジスタに記憶される(Bレジスタ値=「00000010B」)。
このように、ベット加算枚数(ベット要求枚数)とは、ベットスイッチ40が操作されたときに演算結果に基づいて実際にベットされる枚数を指す。
ステップS294では、貯留ベット時の出力要求をセットする。具体的には、制御コマンドデータである「10(H)」をDレジスタに記憶し、Bレジスタ値をEレジスタに記憶する。ここで、Dレジスタ値は、貯留ベットに係ることを示す制御コマンドとなり、Eレジスタ値は、ベット加算枚数を示す制御コマンドとなる。
次にステップS295に進み、制御コマンドセット1を実行する。ここでの処理は、制御コマンドバッファに制御コマンドデータ(DEレジスタ値)を書き込む処理である。
次のステップS296では、メダル1枚の加算(ベット)処理を行う(MS_MEDAL_INC;図42)。このメダル1枚加算処理が実行されると、メダルベット枚数データ「_NB_PLAY_MEDAL」の値に「1」を加算する処理が行われる。
次にステップS297に進み、貯留枚数から1枚を減算する処理を行う(MS_CREDIT_DEC ;図51)。次のステップS298では、メイン制御基板60は、要求枚数のベットが終了したか否かを判断する。ここでは、Bレジスタ値(ベット要求枚数)から「1」減算し、減算後のBレジスタ値が「0」であるか否かを判断する。たとえば、メダル1枚加算処理前のBレジスタ値が「00000011B」(3)であるとき、メダル1枚加算処理により、Bレジスタ値は、「00000010B」(2)に更新される。
そして、演算後のBレジスタ値が「0」であると判断したときは要求枚数のベットが終了したと判断し、演算後のBレジスタ値が「0」でないと判断したときは要求枚数のベットが終了していないと判断する。
要求枚数のベットが終了したと判断したときはステップS302に進み、終了していないと判断したときはステップSステップS299に進む。
ステップS299では、ブロッカ45をオフにする(MS_BLOCKER_OFF;図48)。次にステップS300に進み、貯留ベット時の待機時間をセットする。この処理は、上述したBCレジスタに待機時間をセットする処理であり、本実施形態では、割込み回数「46」を記憶する。したがって、Bレジスタ値=「00000000B」、Cレジスタ値=「00101110B」となる。次にステップS301に進み、2バイト時間待ち処理(R_2BYTE_WAIT;図32)(ウェイト処理)を実行する。そして、ステップS301の終了後、ステップS296に戻る。
上記の処理において、ステップS299でブロッカ45をオフにするのは、メダル1枚加算処理を繰り返すときに、待ち処理を設けているので、この間にメダルが手入れ投入されてしまい、メダルの飲み込みが発生してしまうことを避けるためである。
以上のようにして、2枚以上をベットするときは、メダル1枚加算処理(ステップS296)とステップS301における2バイト時間待ち処理とを繰り返す。
これにより、2枚以上の貯留ベット処理を実行するときは、1枚のベット処理の後、ウェイト時間を隔てて次の1枚のベット処理が実行される。したがって、3ベットスイッチ40bに基づいて3枚をベットするときに、一瞬で3枚がベットされてしまう(一瞬で投入表示LED73e〜73gが点灯してしまう)ことをなくすことができる。
本実施形態では、1枚目のベット処理(1枚投入表示LED73e点灯)→約100msのウェイト処理→2枚目のベット処理(2枚投入表示LED73f点灯)→約100msのウェイト処理→3枚目のベット処理(3枚投入表示LED73g点灯)となる。
なお、2枚以上をベットするときに限らず、1枚ベットするときにも2バイト時間待ち処理を実行してもよい。この場合には、ステップS297とS298との間に、ステップS299、S300及びS301の処理を設けることが挙げられる。
ステップS298において要求枚数のベットが終了したと判断され、ステップS302に進むと、ブロッカをオンにする(MS_BLOCKER_ON ;図41)。そして、本フローチャートによる処理を終了する。
これにより、貯留ベット処理の終了後は、ブロッカ45がオンとなるので、メダルの手入れ投入が可能となる。
また、図50の処理では、1ベットスイッチ40aに係る立ち上がり信号をクリアした後、メダル1枚加算処理をベット加算枚数が「0」になるまで繰り返したが、これらの処理を逆にしてもよい。
具体的には、メダル1枚加算処理をベット加算枚数が「0」になるまで繰り返した後、ステップS302のブロッカオンの前又は後に、ステップS291における立ち上がりデータのクリア処理を実行してもよい。
本実施形態では、次のベット処理(再度、図50の処理)が実行される前までに、ベットスイッチ40(特に、1ベットスイッチ40a)の立ち上がりデータのクリア処理を実行すればよい。
なお、第1実施形態では、ベットスイッチ40立ち上がりデータが「1」であることを検出すると(ステップS290)、ベットスイッチ40信号の立ち上がりデータをクリアする処理(ステップS291)を実行した。しかし、これに限らず、図29(設定変更処理)のステップS814で示したように、割込み待ち処理(C_INTR_WAIT ;図33)を設けてもよい。具体的には、図50のステップS290において、ベットスイッチ40の立ち上がりデータを検出した後、再度、ステップS290に戻るまでの間に割込み待ち処理を実行すればよい。
図51は、図50のステップS297における貯留枚数から1枚を減算する処理(MS_CREDIT_DEC )を示すフローチャートである。
ステップS305では、貯留枚数の読み込みを実行する(S_CREDIT_READ ;図40)。ここでの処理は、貯留枚数表示データ(_NB_CREDIT_LED)を読み込み、その値をAレジスタに記憶する処理である。
次のステップS306では、貯留枚数から「1」を減算する処理(「−1」)を行う。この処理は、図49のステップS279と逆の処理であり、Aレジスタ値から「1」を減算する。次のステップS307において、貯留枚数データを保存、すなわち演算後のAレジスタ値を貯留枚数表示データに記憶する。そして、本フローチャートによる処理を終了する。なお、ステップS307では、ステップS280と同様に、貯留枚数データを10進数データに変換した値を貯留枚数表示データとして保存する。
図52は、図45のステップS221における精算処理(MS_MEDAL_RET)を示すフローチャートである。
先ず、ステップS311では、メイン制御基板60は、貯留枚数の読み込み処理(S_CREDIT_READ ;図40)を行う。次のステップS312では、メイン制御基板60は、(ベット)メダルの読み込み処理(S_PLAYM_READ;図39)を行う。
次に、ステップS313に進み、メイン制御基板60は、作動状態フラグ(_FL_ACTION)をチェックする。続いて、ステップS314では、メイン制御基板60は、当該遊技がリプレイ作動時であるか否か(リプレイの作動状態フラグがオンであるか否か)を判断する。
ステップS314においてリプレイ作動時でないときはステップS316に進み、リプレイ作動時であるときはステップS315に進む。
ステップS315では、精算可能なベット数をクリアする。この処理は、ステップS312で読み込んだベット枚数を、リプレイ作動時には「0」にする処理である。
なお、本フローチャートに示すように、リプレイの作動による自動ベットを有するときであっても、その自動ベットを維持した状態で、貯留メダルの精算が可能である。
次のステップS316では、メイン制御基板60は、精算可能なメダルの有無を判断する。この処理は、ステップS311で読み込んだ貯留(クレジット)枚数と、ステップS312で読み込んだベット数とを「OR」演算し、精算可能なメダルの有無を判断する。なお、ステップS311で読み込んだ貯留枚数及びステップS312で読み込んだベット枚数(又はステップS315による処理後のベット枚数)は、いずれも、上述したようにレジスタに記憶されている。ここで、リプレイ作動時の場合には、ステップS315において精算可能なベットメダル枚数を「0」(クリア)にしているため、貯留枚数がある場合にのみ「Yes」となる。
ステップS316において精算可能なメダルありと判断したときはステップS317以降の処理に進むが、精算可能なメダルなしと判断したときは、本フローチャートによる処理を終了する。
ステップS317では、ブロッカ45をオフにする処理(MS_BLOCKER_OFF;図48)を行う。
次に、ステップS318に進み、メイン制御基板60は、精算開始時の出力要求をセットし、次のステップS319では制御コマンドセット1を実行する。
次のステップS320及びステップS321の処理は、上述したステップS313及びステップS314の処理と同一である。
そして、ステップS321において、リプレイ作動時であると判断したときはステップS324に進み、リプレイ作動時でないと判断したときはステップS322に進む。
ステップS322では、ベットメダル(現在ベットされているメダル枚数)の読み込み処理(S_PLAYM_READ)(ステップS312と同じ)を行う。
次にステップS323に進み、メイン制御基板60は、ベットメダルの有無を判断する。ベットメダルありと判断されたときはステップS327以降の処理に進み、ベットメダルなしと判断されたときはステップS324以降の処理に進む。
ここで、ベットメダルありの場合には、ステップS327以降の処理を行うことによって、ベットメダルの精算処理を行う。これに対し、ベットメダルなしの場合には、ステップS324以降の処理を行うことによって、貯留メダル、すなわちクレジットされているメダルの精算処理を行う。
したがって、ベットメダル及び貯留メダルの双方を有する場合には、ベットメダルの精算を先に行う。
ステップS323からステップS324に進むと、メイン制御基板60は、精算表示LED73cを点灯する処理を行う。本実施形態では、貯留メダルの精算処理を行っている間は、精算表示LED73cを点灯させる。ここでの処理は、RWM61に記憶されているメダル管理フラグ(_FL_MEDAL_STS )中、D4ビット(精算処理中であるときに「1」)をオンにする処理である。
なお、精算表示LED73cを実際に点灯させる処理は、割込み処理でのLED表示制御(ステップS606)にて行う。
次にステップS325に進み、貯留メダルの精算処理(MS_CREDIT_RET ;図53)を行う。この精算処理後は、ステップS326に進み、ステップS324で点灯させた精算表示LED73cの消灯処理を行う。この処理は、ステップS324とは逆の処理であり、メダル管理フラグ中、D4ビット(精算処理中であるときに「1」)をオフ(「0」)にする処理である。そして、ステップS336に進む。
一方、ステップS323においてベットメダルありと判断され、ステップS327に進むと、メイン制御基板60は、メダル1枚の払出し処理(MS_1MEDAL_PAY ;図54〜図55)を行う)。
次にステップS328に進み、メイン制御基板60は、投入数を表示するLED(投入表示LED73e〜73g)のいずれか1つを消灯する処理を実行する。
たとえば、現時点で3枚のメダルがベットされているときは、投入表示LED73e〜73gの3個全てが点灯状態にある。そして、この状態でステップS328に進んだときは、3枚投入表示LED73gのみを消灯する(1枚投入表示LED73e及び2枚投入表示LED73fの点灯は維持)するように制御する。
また、1枚投入表示LED73e及び2枚投入表示LED73fが点灯している状態でステップS328に進んだときは、2枚投入表示LED73fのみを消灯する(1枚投入表示LED73eの点灯は維持)するように制御する。
さらにまた、1枚投入表示LED73eのみが点灯している状態でステップS328に進んだときは、1枚投入表示LED73eを消灯する(これにより、投入表示LED73e〜73gが全消灯となる)ように制御する。
また、ステップS328では、記憶している投入枚数表示LED信号データを更新する処理を行う。上述のように、投入枚数表示LED信号データ(_PT_MEDAL_LED )は、投入数に応じて、
投入枚数表示LED信号データ(1枚投入時):10000000B
投入枚数表示LED信号データ(2枚投入時):11000000B
投入枚数表示LED信号データ(3枚投入時):11100000B
となっている。
したがって、ステップS328の直前で、投入枚数表示LED信号データが3枚投入時の「11100000B」であるときは、2枚投入時の投入枚数表示LED信号データとなるように、演算を行って「11000000B」とする。
つまり、左にシフトする命令を出すことで、「11100000B」→「11000000B」となる(先述したローテート式ではない命令を用いている。)。
次のステップS329では、ベットメダルの読み込みを行う(S_PLAYM_READ;図39)。次にステップS330に進み、メダル枚数の減算処理を行う。この処理は、RWM61に記憶しているメダルベット枚数データ(_NB_PLAY_MEDAL)から「1」を減算する処理である。
次のステップS331では、メダル枚数表示の出力要求をセットする。この処理は、1枚のメダルを減算した後のメダル枚数の表示の要求である。次のステップS332では、メイン制御基板60は、制御コマンドセット1を実行する。
さらに、次のステップS333では、ベットメダルの読み込みを行う(S_PLAYM_READ;図39)。このステップS333では、1枚減算後のメダル枚数が読み込まれる。
そしてステップS334に進み、メイン制御基板60は、ステップS323と同様に、ベットメダルの有無を判断する。ベットメダルありと判断されたときはステップS327に戻り、上記と同様に、メダル1枚の払い出し処理を行う。これに対し、ベットメダルなしと判断されたときはステップS335に進み、メイン制御基板60は、メダル限界フラグ(D7ビット)をクリアする処理を行う。次にステップS336に進み、メイン制御基板60は、精算終了時の出力要求をセットする。次のステップS337では、メイン制御基板60は、制御コマンドセット1を実行する。そして次に、ステップS338に進んでブロッカ45をオンにする処理(MS_BLOCKER_ON ;図41)に移行する。
以上の精算処理において、ステップS318及びステップS319では、精算を開始したことをサブ制御基板80に送信するため、制御コマンドデータのセットを行う。
また、ステップS336及びステップS337では、精算を終了したことをサブ制御基板80に送信するため、制御コマンドデータのセットを行う。
図53は、図52のステップS325における貯留メダルの精算処理(MS_CREDIT_RET )を示すフローチャートである。
図53において、まず、ステップS341では、メイン制御基板60は、現時点における貯留枚数の読み込み処理(S_CREDIT_READ ;図40)を行う。次にステップS342に進み、メイン制御基板60は、ステップS341で読み込んだ結果に基づいて、貯留メダル、すなわちクレジットの有無を判断する。貯留メダルあり(ゼロフラグが「0」)と判断したときはステップS343に進み、貯留メダルなし(ゼロフラグが「1」)と判断したときは本フローチャートによる処理を終了する。
ステップS343では、貯留メダルから、メダル1枚の払出し処理(MS_1MEDAL_PAY ;図54〜図55)を行う。次にステップS334に進み、貯留メダル枚数から1枚を減算する処理(MS_CREDIT_DEC ;図51)を行う。その後、ステップS341に戻る。つまり、貯留メダル精算では、貯留メダルが「0」となるまで処理が実行される。このとき、後述する図54〜図55の処理により、正常に1枚のメダルが払い出されるときに、約100msの時間を要するように設計されている。いいかえれば、1枚のメダルを払い出す際に貯留枚数表示データが約100msの間隔で更新され、この間に割込み処理が実行されることにより、貯留数表示LED71の表示が1枚ずつ減算されることが視認できるように構成されている。
図54及び図55は、図52のステップS327等におけるメダル1枚の払出し処理(MS_1MEDAL_PAY )を示すフローチャートである。図55は、図54に続くフローチャートである。
図54のステップS351では、メイン制御基板60は、エラー未検出をセットする。すなわち、初期状態ではエラーを検出していない状態をセットする。次のステップS352では、メイン制御基板60は、メダル詰まりエラー表示要求をセットする。
なお、メダル詰まりエラーは、本実施形態では「HPエラー」と称し、このメダル詰まりエラーが発生したときは、獲得数表示LED72に「HP」と表示する処理を実行する。
次にステップS353に進み、メイン制御基板60は、エラーを検出したか否かを判断する。エラーを検出したと判断したときはステップS354に進んでエラー表示(MS_ERROR_DSP;図56)を行う。そしてステップS355に進む。一方、ステップS353でエラーを検出していないと判断したときはステップS355に進む。
ステップS355では、メイン制御基板60は、メダル払出し装置35の制御時間(たとえば「2686」割込み、約6000ms)をセットする。ここでは、制御時間の計時を開始する。次にステップS356に進み、ホッパーモータ36を駆動するための処理を行う。具体的には、ブロッカ信号及びホッパーモータ駆動信号データ中、ホッパーモータ駆動信号データを示すD7ビットを「1」にすることにより、次の割込み処理時に出力ポート3のD7ビットが「1」となる。次にステップS357に進み、メイン制御基板60は、ステップS355でセット後の制御時間の読み込みを行う。
そして、次のステップS358において、メイン制御基板60は、制御時間が所定時間を経過したか否かを判断する。所定時間を経過したと判断したときはステップS361に進み、所定時間を経過していないと判断したときはステップS359に進む。
ステップS361では、ホッパーモータ36の駆動信号をオフにするための処理を行う。具体的には、上述したホッパモータ駆動信号データを「0」にすることにより、次の割込み処理時に出力ポート3のD7ビットが「0」となる。そして、次のステップS362では、払出しセンサ1の検出時間(たとえば「27」割り込み、約60ms)をセットし、検出時間の計時を開始する。次にステップS363に進み、メイン制御基板60は、払出しセンサ1信号に係るデータがオンであるか否かを判断する。オンであると判断したときはステップS355に進み、オンでないと判断したときはステップS364に進む。
ステップS364では、メイン制御基板60は、払出しセンサ1の検出時間が所定時間を経過したか否かを判断する。所定時間を経過したと判断したとき、すなわち払出しセンサ1信号に係るデータがオンでなく、かつ払出しセンサ1の検出時間が所定時間を経過したときは、メダルが払い出されていないこととなるので、ステップS365に進み、メイン制御基板60は、メダル空エラーの表示要求をセットする。メダル空エラーは、本実施形態では「HEエラー」と称し、このメダル空エラーが発生したときは、獲得数表示LED72に「HE」と表示する処理を実行する。そしてステップS353に進む。
一方、ステップS364において払出しセンサ1の検出時間が所定時間を経過していないと判断したときはステップS363に戻る。
ステップS358において制御時間が所定時間を経過していないと判断され、ステップS359に進むと、メイン制御基板60は、払出しセンサ1信号に係るデータがオンであるか否かを判断する。オンであると判断したときはステップS360に進み、オンでないと判断したときはステップS357に戻る。
ステップS360では、払出しセンサ1の検出時間をセットする。この処理は、ステップS362と同様である。次にステップS366に進み、メイン制御基板60は、メダル詰まりを検出したか否かを判断する。メダル詰まりを検出したと判断したときはステップS352に進み、検出していないと判断したときはステップS367に進む。
ステップS367では、メイン制御基板60は、払出しセンサ1信号に係るデータがオンであるか否かを判断する。オンであると判断されたときはステップS368に進み、オンでないと判断されたときはステップSステップS357に進む。
ステップS368では、メイン制御基板60は、払出しセンサ1及び2信号に係るデータがオンであるか否かを判断する。双方がオンであると判断されたときはステップS369に進み、双方がオンでないと判断されたときはステップS366に戻る。
ステップS369では、メイン制御基板60は、払出しセンサ2の検出時間をセットする。次に、図55のステップS370に進み、メイン制御基板60は、メダル詰まりを検出したか否かを判断する。メダル詰まりを検出したと判断したときはステップS352に進み、検出していないと判断したときはステップS371に進む。
ステップS371では、メイン制御基板60は、払出しセンサ2信号に係るデータがオフであるか否かを判断する。払出しセンサ2信号に係るデータがオフでないと判断したときはステップS370に戻り、オフであると判断したときはステップS372に進む。
ステップS372では、メイン制御基板60は、メダル払出しが無効であるか否かを判断する。無効であると判断したときはステップS357に進み、無効でないと判断したときはステップS373に進む。ステップS373では、メイン制御基板60は、払出しセンサ1信号に係るデータがオフであるか否かを判断する。オフであると判断したときはステップS374に進み、オフでないと判断したときはステップS370に戻る。
ステップS374では、残り払出し数(カウント値)を「−1」(「1」減算)する。次にステップS375に進み、メイン制御基板60は、メダル払出しを終了したか否かを判断する。メダル払出しを終了したと判断したときはステップS376に進み、終了していないと判断したときは本フローチャートを終了する。ステップS376では、メイン制御基板60は、ホッパーモータ36の駆動信号をオフにするための処理を行う。具体的には、上述したホッパモータ駆動信号データを「0」にすることにより、次の割込み処理時に出力ポート3のD7ビットが「0」となる。そして本フローチャートによる処理を終了する。
図56は、エラー表示処理(MS_ERROR_DSP)を示すフローチャートである。なお、図56のエラー表示処理は、復帰可能なエラーが発生したときの処理であり、リセットスイッチ53のオン等により復旧する。図56の処理が実行されるときのエラーは、スロットマシン10のホール関係者(管理者)によって解決可能なエラーであり、重大なエラーでない可能性が高いので、割込み禁止のような処理は行わない。
これに対し、上述した「復帰不可能エラー」時には、図56の処理は行われない。復帰不可能エラーの発生時には、上述した図35の処理が行われる(割込みが禁止される)。
図56において、先ず、ステップS381では、今回発生したエラー番号を保存する。具体的には、エラー発生前の所定のレジスタ(たとえばEレジスタ)の値をRWM61の所定領域(エラー番号データ)に保存する。なお、復帰可能エラーは、本実施形態で挙げたエラーに限られるものではなく、他にも種類があるが、本実施形態では説明を省略する。
次のステップS382では、エラーが発生する前のブロッカ(45)信号とホッパーモータ(36)駆動信号の状態を退避させる(記憶する)。具体的には、上述したブロッカ信号データ及びホッパーモータ駆動信号データ(「0」又は「1」)を所定のレジスタ(たとえばCレジスタ)に記憶する。
次に、ステップS383に進み、ホッパーモータ(36)駆動信号をオフにする。具体的には、ホッパモータ駆動信号データを「0」にする。これにより、ホッパーモータ36が駆動中であるときは、次の割込み処理からその駆動が停止する。
次のステップS384では、ブロッカ45をオフにする(MS_BLOCKER_OFF;図48)。また、次のステップS385では、スタートスイッチ41の受付け許可フラグをクリアする。この処理は、メダル管理フラグのD0ビットをオフにする処理である。
次に、ステップS386に進み、獲得枚数の表示を退避する。この処理は、獲得数表示LED72に現時点で表示されている枚数を一時退避し(記憶しておき)、エラー要因の除去後に再表示させるためである。具体的には、RWM61の所定の記憶領域に記憶されている獲得枚数表示データを、所定のレジスタ(たとえばBレジスタ)に記憶する。
次のステップS387では、獲得数表示LED72にエラー情報を表示する処理を行う。具体的には、図56が実行される前に記憶されたDレジスタの値を記憶する。たとえばステップS381において、保存したエラーがCPエラーであるときは、獲得数表示LED72に「CP」と表示するための獲得枚数表示データ値を記憶する。
なお、エラー情報のLED表示は、後述する割込み処理(ステップS606)によって行われる。
そしてステップS388に進み、エラー表示開始時の出力要求をセットし、次のステップS389で制御コマンドセット1を実行する。具体的には、Dレジスタに、エラー表示開始を示す「01(H)」を記憶し、Eレジスタに、エラー番号が記憶されているRWM61のエラー番号データを記憶する。ステップS388〜ステップS389により、エラー表示を開始すべき旨の制御コマンド(サブ制御基板80に送信すべきコマンド)がセットされる。
次にステップS390に進み、リセットスイッチ53の立ち上がりがあるか(操作されたか)否かを検知し続ける。この処理は、入力ポート1のD4ビットの立ち上がり信号がオンとなったか否かを判断することにより行う。リセットスイッチ53の立ち上がりがあったと判断されたときはステップS391に進み、リセットスイッチ信号の立ち上がりデータをクリアする。次にステップS392に進み、満杯検知信号の検査データをセットする。この処理は、満杯センサ38に係るエラーが発生しているか否か(サブタンク35bがメダルで満杯となっているか否か)を判断するための検査データをセットする処理である。
そして、次のステップS393に進み、満杯エラーであるか否かを判断する。満杯エラーであると判断されたときはステップS397に進み、満杯エラーでないと判断されたときはステップS394に進む。
ステップS394では、払出しセンサ37a及び37bの検査データをセットする。この処理は、払出しセンサ37a及び37bに係る異常を検知したか否かを判断するための検査データをセットする処理である。
次にステップS395に進み、払出しセンサ37a及び37bに係るエラーであるか否かを判断する。払出しセンサ37a及び37bに係るエラーであると判断したときはステップS397に進み、当該エラーでないと判断したときはステップS396に進む。
ステップS396では、投入センサ44a及び44b並びに通路センサ43aの検査データをセットする。この処理は、これらのセンサに係る異常であるか否かを判断するための検査データをセットする処理である。
そして、ステップS397に進み、ステップS392、ステップS394、又はステップS396でセットした検査データに基づき、エラーチェックを行う。
次にステップS398に進み、ステップS397のエラーチェック結果に基づいて、エラー要因が除去されたか否かを判断する。除去されたと判断したときはステップS399に進み、除去されていないと判断したときはステップS390に戻る。ステップS399では、ステップS381でRWM61に保存したエラー番号データをクリアする。次にステップS400に進み、ステップS386で退避した(Bレジスタに一時記憶していた)獲得枚数を、RWM61の所定の記憶領域である獲得枚数表示データに復帰する。したがって、当該処理の以降に実行される割込み処理により、獲得数表示LED72の表示内容がエラー発生前に戻る。
そしてステップS401に進み、エラー表示終了時の出力要求をセットし、次のステップS402で制御コマンドセット1を実行する。ステップS401〜ステップS402により、エラー表示を終了すべき旨の制御コマンド(サブ制御基板80に送信すべきコマンド)がセットされる。
次のステップS403では、ステップS382で退避する前の状態に戻す処理を行う。したがって、ステップS382で記憶したエラー発生前のブロッカ信号とホッパーモータ駆動信号との状態を読み込む。具体的には、ステップS382で退避した所定のレジスタ(たとえばCレジスタ)の値に基づいて復帰させる。次にステップS404に進み、所定のレジスタ(たとえばCレジスタ)の値に基づいて、エラー発生前のホッパーモータ駆動信号データを更新する。次のステップS405では、所定のレジスタ(たとえばCレジスタ)の値に基づいて、エラー発生前のブロッカ信号データの値が「1」であったか否かを判断する。この値が「1」であったと判断したときはステップS406に進み、「1」でないと判断したときは本フローチャートによる処理を終了する。ステップS405では、ブロッカ45をオンにし(MS_BLOCKER_ON ;図41)、本フローチャートによる処理を終了する。
以上のようにして、図56のエラー処理では、エラー表示開始時及びエラー表示終了時に、サブ制御基板80に対して制御コマンドを送信するので、エラーが生じている間、サブ制御基板80は、発生したエラーに関する報知(演出ランプ21、スピーカ22及び画像表示装置23を用いた報知)を行うことができる。
図57は、図36中、ステップS59におけるスタートスイッチ受付け(MS_START_CTL)を示すフローチャートである。
ステップS431では、内蔵乱数をMPUのレジスタ(乱数ソフトラッチレジスタ)に記憶する。ここでは、乱数のラッチ(取得)を行うものであり、取得した乱数が当選役に相当する乱数であるか否かを判定するのは、図36のステップS60である。
次のステップS432では、スタートスイッチ受付け許可フラグをクリアする。すなわち、メダル管理フラグのD0ビットをクリアする(「0」にする)。
次にステップS433に進み、設定変更許可フラグをクリアする。この処理では、メダル管理フラグのD6ビットを「1」にする。これにより、設定変更が不可となる。
次のステップS434では、ブロッカ45をオフにする(図48)。すなわち、スタートスイッチ41の操作後は、メダルが投入されても受け付けないように制御する。次のステップS435では、ベットメダルの読み込み(S_PLAYM_READ;図39)を実行する。ここで読み込んだベットメダル枚数をAレジスタに記憶する。次のステップS436では、メイン制御基板60は、リール回転開示の出力要求をセットする。ここでは、第1制御コマンド値として「13(H)」、第2制御コマンドとしてAレジスタ値をセットする。
次にステップS437に進み、ステップS435で読み込んだベットメダル枚数(Aレジスタ値)をEレジスタにセットする。
次のステップS438では、制御コマンドセット1を実行する。この処理は、ステップS436でセットした制御コマンドをバッファに記憶する処理である。
次にステップS439に進み、メイン制御基板60は、RWM61に記憶されている設定値(アドレス「F000」の設定値データ)が正常範囲(1〜6)であるか否かを判断する。正常範囲であると判断したときはステップS440に進み、正常範囲でないと判断したときはステップS445に進んで復帰不可能エラー処理(E6エラー)を実行する。
このように、スタートスイッチ41の操作受付け時に設定値が正常範囲内であるか否かを判断し、正常範囲内であるときは遊技を進行するが、正常範囲内でないと判断したときは、その時点で遊技の進行を中止し、復帰不可能エラーとする。
このように処理するのは、図36において、ステップS59のスタートスイッチ受付け処理後に、ステップS60において役抽選処理(出玉にかかわる抽選)を行うので、設定値が正常範囲外(例えば設定「7」)であると、正しい抽選ができないためである。たとえば設定値が「7」等、「1」〜「6」の範囲外の値であったときは、想定外の抽選テーブルを参照してしまったり、想定外の値(当選確率)で役の抽選等を行うおそれがあるためである。
ステップS440では、ベットメダルの読み込み(S_PLAYM_READ;図39)を実行する。そして、読み込んだベットメダル枚数をAレジスタに記憶する。なお、リプレイの入賞時には、自動投入されたメダル枚数がベットメダル枚数に設定される。次にステップS441に進み、読み込んだベットメダル枚数を2倍にする。この処理は、Aレジスタ値とAレジスタ値とを加算し、加算後の値をAレジスタに記憶する処理である。さらに、HLレジスタに、メダルベット信号出力回数(_CT_MEDAL_IN)のアドレス(F06E)を記憶する。
次のステップS442では、割込み処理を禁止する。次にステップS443に進み、メダル投入信号出力回数をセットする。この処理は、HLレジスタが示すアドレスに記憶されている値(メダル投入信号出力回数(_CT_MEDAL_IN))とAレジスタ(2倍後のベットメダル枚数)とを加算し、その加算後の値をAレジスタに記憶する処理である。さらに、Aレジスタの値を、HLレジスタが示すアドレス(F06E)に記憶する。これにより、メダル投入信号出力回数(_CT_MEDAL_IN)が更新される。そして、ステップS444にすすみ、割込み処理を許可する。
以上のステップS442〜ステップS444の処理は、メダル投入信号出力回数の更新前後で割込みを禁止するものである。この割込み禁止により、メダル投入信号の更新途中に割込み処理が実行され、メダル投入信号出力回数を更新する処理が実行されてしまうことを防止することができる。すなわち、メダル投入信号出力回数を更新する処理の終了後、割込み処理を許可してメダル投入信号の更新を許可するものである。
また、上記のように、本実施形態では、ベットメダル信号を出力するときは、実際のベットメダル枚数を2倍に演算し、その値を出力回数としてセットする。このように制御するのは、上述したように、ベットメダル信号を、オンとオフとを繰り返すパルス信号として外部に出力するときに、オンとオフの2回で1枚のベットメダル枚数を表すように制御するためである。このことは、メダル払出し時も同様である。メダル払出し信号を外部に出力するときは、メダル払出し枚数を2倍に演算し、その値をメダル払出し信号出力回数に設定し、オンとオフの2回で1枚のメダル払出し枚数を表すように制御する。
図58は、図36中、ステップS61におけるリール回転開始準備処理(M_REEL_READY)を示すフローチャートである。
ステップS531では、最小遊技期間が経過したか否かを判断する。本実施形態では、最小遊技時間(リール31の回転開始時から、次回遊技でリール31の回転を開始するまでの最小時間)として、約4.1秒に設定されている。ここでは、RWM61に記憶された最小遊技時間(_TM2_GAME )の値を読み込み、Aレジスタに記憶し、Aレジスタに記憶した値が「0」でないか否か(ゼロフラグが「1」でないか否か)を判断する。「0」でない(ゼロフラグが「1」でない)とき、「No」と判断する。
最小遊技時間を経過したと判断されると、ステップS532に進み、最小遊技時間を保存する。この処理は、RWM61の最小遊技時間(_TM2_GAME )に「1836」(1836×2.235ms=約4100ms)を保存する処理である。このステップS532において最小遊技間がRWM61に記憶されると、次回割込み処理から、後述するステップS605において「1」ずつ減算される。ステップS532の時点から「1836」割込みが実行され、最小時間の値が「0」になったときは、その後は「0」のままである。そして、次遊技のステップS532において、再度、「1836」が記憶される。
次のステップS533では、条件装置番号を取得する。この処理は、Hレジスタにアドレス「F049」の役物条件装置番号(_NB_CND_BNS )の情報を記憶し、Lレジスタにアドレス「F048」の入賞及びリプレイ条件装置番号(_NB_CND_NOR )の情報を記憶する処理である。
次のステップS534における条件装置情報出力ビットセットでは、HレジスタのD7ビットを「1」に設定し、LレジスタのD6ビットを「1」に設定する処理を行う。
本実施形態では、条件装置情報の上位2ビット中、D7ビットが「1」であるときは、役物条件装置情報であることを指し、D6ビットが「1」であるときは、入賞及びリプレイ条件装置情報を指すように設定している。
次にステップS535に進み、条件装置情報の保存処理を行う。この処理は、Hレジスタ値を、アドレス「F04D」の役物条件装置情報(_NB_CNDINF_B)に記憶し、Lレジスタ値を、アドレス「F04C」の入賞及びリプレイ条件装置情報(_NB_CNDINF_N)に記憶する処理である。
次にステップS536に進み、条件装置情報出力時間を保存する。この処理は、RWM61の条件装置出力時間(_TM1_COND_OUT )に「25」を記憶する処理である。詳細は後述するが、本実施形態では、「24×2.235ms=53.64ms」の間、役物条件装置情報(_NB_CNDINF_B)と入賞及びリプレイ条件装置情報(_NB_CNDINF_N)とを外部に出力する。ここでセットした条件装置出力時間は、次回割込み処理から、後述するステップS605において「1」ずつ減算される。
図59は、図36のステップS68におけるメダル払出し枚数更新処理を示すフローチャートである。
まず、ステップS591では、メダル払出し枚数データを取得する。ステップS66における表示判定に基づいて、入賞した役(図柄の組合せ)を特定することができるので、その図柄の組合せに対応するメダル払出し枚数を、データテーブル等から読み取る。
次のステップS592では、メダル払出し枚数データを保存する。この処理は、RWM61において、アドレス「F06C」の「_NB_PAY_MEDAL 」に、ステップS591で取得したメダル払出し枚数データを保存(記憶)する処理である。「_NB_PAY_MEDAL 」の値は、ステップS592の処理時点では「0」になっているので、新たにデータを書き込む処理を実行する。たとえば1枚役入賞時は、データ値を「0」から「1」に更新する。なお、メダル払出しを有する役の非入賞時には、ステップS591の処理を行うか否かは任意である。たとえばステップS591をスキップする方法と、ステップS591の処理を実行するとともに、データ値「0」を書き込む方法とが挙げられる。
次のステップS593では、メダル払出し枚数データバッファを保存する。この処理は、RWM61において、アドレス「F06D」の「_BF_PAY_MEDAL 」に、ステップS591で取得したメダル払出し枚数データを保存(記憶)する処理である。「_BF_PAY_MEDAL 」の値は、前回遊技で書き込んだ値が残っているので、当該遊技におけるメダル払出し枚数(メダル払出しがない場合には、「0」)を書き込む(上書きする)処理を実行する。
そして、本フローチャートによる処理を終了する。
以上の図59のメダル払出し枚数更新処理において、ステップS592で記憶した「_NB_PAY_MEDAL 」の値は、その後、メダル払出しが1枚行われるごとに「1」ずつ減算され、メダル払出し終了時には「0」となる。これに対し、ステップS593で記憶した「_BF_PAY_MEDAL 」の値は、次回遊技で更新されるまで、すなわち次回遊技においてステップS593の処理が行われるまで維持される(変更されることはない)。
図60は、図36のステップS72に示す入賞によるメダル払出し処理(MS_WIN_PAY)を示すフローチャートである。
まず、ステップS451では、メダル払出し開始時の出力要求をセットする。この処理は、獲得(払出し)枚数を示すコマンドを所定のレジスタに記憶する処理である。次のステップS452では、制御コマンドセット1(S_CMD_SET )を実行する。この処理は、RWM61のコマンドバッファにコマンドを記憶する処理である。
次にステップS453に進み、メダル枚数セット処理を実行する。この処理は、以下の2つに分けられる。この処理の1つ目として、Dレジスタに、メダル払出し枚数データ(_NB_PAY_MEDAL )の値を記憶する。2つ目として、Eレジスタに、メダルベット枚数データ(_NB_PLAY_MEDAL)の値を記憶する。次のステップS454では、作動フラグをチェックする。この処理は、作動状態フラグ(_FL_ACTION)の各ビットのオン/オフを判断する処理である。
次にステップS455に進み、BB(特別役)作動時であるか否かを判断する。本実施形態では、作動状態フラグのD3ビットが「1」であるか否かにより、1BBの作動状態フラグを判断する。そして、1BBの作動状態フラグが「1」であると判断したときはステップS456に進み、1BBの作動状態フラグが「1」でないと判断したときはステップS460に進む。
ステップS456では、BB作動時(この例では1BB遊技中)の獲得可能枚数データを取得する。この処理は、RWM61の1BB作動時の獲得可能枚数(_CT_BB1_PAY )のデータをAレジスタに記憶する処理である。そして、次のステップS457では、BB作動時の獲得枚数上限値に到達したか否かを判断する。ここでは、Aレジスタに記憶した値から、Dレジスタの情報(メダル払出し枚数データ)を減算し、その演算結果をAレジスタに記憶し、Aレジスタに記憶した値がマイナスでない(キャリーフラグ≠「1」)か否かを判断する。マイナスでないと判断したときは、「No」と判断される。
マイナスであると判断されるとステップS458に進み、マイナスでないと判断されるとステップS459に進む。
ステップS458では、BB作動時の獲得可能枚数をクリアする。この処理は、Aレジスタ値とAレジスタ値とを「XOR」演算し、その演算結果をAレジスタに記憶する処理である。この演算処理により、Aレジスタ値は必ず「0」となる。そしてステップS459に進む。
ステップS459では、BB作動時の獲得可能枚数を更新する。具体的には、Aレジスタ値をRWM61の1BB作動時の獲得可能枚数(_CT_BB1_PAY )に記憶する。そして、ステップS460に進む。
なお、本実施形態では、特別役として設けた1BBの例を示したが、2BBを設けた場合についても上記と同様に処理可能である。
まず、ステップS455において、作動状態フラグのD1ビットが「1」であるか否かにより、2BBの作動状態フラグを判断する。
2BB作動時は、ステップS456において、2BB作動時(2BB遊技中)の獲得可能枚数データを取得する(RWM61の2BB作動時の獲得可能枚数(_CT_BB2_PAY )のデータをAレジスタに記憶する)。メダル払出し後の値がマイナスでないか否かを判断し、マイナスであるときは、2BB作動時の獲得可能枚数をクリアする。また、Aレジスタ値をRWM61の2BB作動時の獲得可能枚数(_CT_BB2_PAY )に記憶することで、2BB作動時の獲得可能枚数を更新する。
ステップS460では、メダル払出し枚数のセット処理を行う。この処理は、Eレジスタ値(ステップS453の処理により、Eレジスタ値は、メダルベット枚数データ(_NB_PLAY_MEDAL)となっている。)をAレジスタに記憶する処理である。これにより、Aレジスタにはメダルベット枚数データ(_NB_PLAY_MEDAL)の値が記憶される。
次のステップS461では、リプレイが表示されたか否かを判断する。この処理は、図柄組合せ表示フラグ(_FL_WIN )のD0ビットが「1」であるか否かを判断する処理である。そして、リプレイ表示時であると判断したときはステップS463に進み、リプレイ表示時でないと判断したときはステップS462に進む。
ステップS462では、メダル払出し枚数のセット処理を行う。この処理は、Dレジスタ値(ステップS453の処理により、Dレジスタ値は、メダル払出し枚数データ(_NB_PAY_MEDAL )となっている。)をAレジスタに記憶する処理である。これにより、Aレジスタにはメダル払出し枚数データ(_NB_PAY_MEDAL )の値が記憶される。
以上の処理により、リプレイ入賞時には、Aレジスタ値は、ステップS453でセットしたメダルベット枚数データ(_NB_PLAY_MEDAL)値となり、リプレイの入賞時でないとき(すなわち小役入賞時)には、Aレジスタ値は、ステップS462でセットしたメダル払出し枚数データ(_NB_PAY_MEDAL )値となる。
次にステップS463に進み、Aレジスタに記憶されたメダル枚数を2倍にする処理を実行する。2倍にする理由は、上述した通りである。この処理は、Aレジスタ値とAレジスタ値とを加算し、加算後の値をAレジスタに記憶する処理である。また、HLレジスタに、メダル払出し信号出力回数(_CT_MEDAL_OUT )のアドレス(F070)を記憶する。
次にステップS464に進み、割込み処理を禁止する。次のステップS465では、メダル払出し信号出力回数をセットする。この処理は、HLレジスタが示すアドレスに記憶されている値とAレジスタ値とを加算し、加算後の値をAレジスタに記憶する処理である。さらに、Aレジスタの値を、HLレジスタが示すアドレス(F06F)に記憶する。これにより、メダル払出し信号出力回数(_CT_MEDAL_OUT )が更新される。この処理により、メダル払出し信号出力回数の値が更新される。次のステップS466では、割込み処理を許可する。
以上の処理により、メダル払出し信号出力回数の値の更新前後で割込み処理が禁止される。
この割込み禁止により、メダル払出し信号の更新途中に割込み処理が実行され、メダル払出し信号出力回数を更新する処理が実行されてしまうことを防止することができる。すなわち、メダル払出し信号出力回数を更新する処理の終了後、割込み処理を許可してメダル払出し信号の更新を許可するものである。
さらに、本実施形態では、メダルの払出し枚数は最大で8枚に設定しているが、8枚の払出しに伴うメダル払出し信号の出力中に次の遊技による払出し枚数の更新が行われる可能性は低い。しかし、開発過程においてメダル払出し枚数の変更(たとえば、最大払出し枚数を8枚から15枚に変更する等)した場合に、メダル払出し信号が出力されている最中に払出し枚数が更新される可能性がある。ここで、本実施形態のように、割込み禁止処理を設ければ、開発途中でメダル払出し枚数が(たとえば最大15枚に)変更されたとしても、プログラムの変更を少なくすることができる。
また、ステップS465では、実際のメダルの払出し処理前に、メダル払出し信号出力回数をセットすることに意味がある。具体的には、メダル払出し信号出力回数は、リプレイ入賞時以外は、メダル払出し枚数データ(_NB_PAY_MEDAL )から作成する。このとき、メダル払出し信号出力回数をセットする前に、払出し処理(図60中、ステップS467以降)を行うと、メダル払出し枚数データが更新されてしまい、正しい回数分のメダル払出し信号が出力されなくなってしまうおそれがあるからである。
次のステップS467では、メダルの払出しがあるか否かを判断する。具体的には、メダル払出し枚数データ(_NB_PAY_MEDAL )の値が「0」であるか否かを判断する。なお、ここでの処理は、RWM61のアドレス「F06C」の値を読み込み、ゼロチェックを行ってもよいが、ステップS467の時点ではステップS453でメダル払出し枚数データをDレジスタに記憶した状態となっているので、Dレジスタ値を読み込み、ゼロチェックを行うことも可能である。そして、「0」であると判断したとき、すなわちメダルの払出しがないと判断したときは本フローチャートによる処理を終了する。これに対し、「0」でないと判断したとき、すなわちメダルの払出しがあると判断したときは、ステップS468に進む。
ステップS468では、貯留枚数読み込み(S_CREDIT_READ ;図40)を行う。次にステップS469に進み、メダル貯留枚数が限界値となっているか否かを判断する。貯留枚数が「50」であるときは貯留枚数が限界値になっていると判断してステップS473に進み、貯留枚数が限界になっていないと判断したときはステップS470に進む。
ステップS470では、貯留メダル加算時の待機時間をセットする。本実施形態では、図38のステップS145と同様に、ウェイト時間として、約100msを設定するために、割込み数のカウント値「46」(46×2.235ms=約100ms)を設定する。このため、Bレジスタ値として「00000000B」、及びCレジスタ値として「00101110B」をセットする。次にステップS146に進み、2バイト時間待ち処理(R_2BYTE_WAIT)を実行する。この処理は、一割込みごとにBCレジスタ値を減算していき、「0」になるまで待機する処理である。ステップS471の2バイト時間待ち処理が終了すると、ステップS472に進み、貯留枚数1枚加算処理(MS_CREDIT_ADD ;図49)を実行する。そしてステップS474に進む。
ステップS469からステップS473に進むと、メダル1枚払出し処理(MS_1MEDAL_PAY ;図54)を実行する。以上の処理により、貯留枚数が限界値になるまでは貯留枚数を加算し、貯留枚数が限界であるときは、実際のメダルをホッパーから払い出す処理を実行する。
ステップS474では、獲得数表示を「+1」にする。この処理は、獲得数表示LED72に表示するデータを「+1」更新する処理である。たとえばそれまでの表示が「2」であるときは、表示を「3」に更新する処理に相当する。
次のステップS475では、メダル払出し枚数データ(_NB_PAY_MEDAL )から「1」を減算する処理を行う。なお、ステップS475では、アドレス「F06C」のメダル払出し枚数データのみを更新し、アドレス「F06D」のメダル払出し枚数データバッファの値については更新しない。
次にステップS476に進み、メダル払出しが終了したか否かを判断する。この処理は、更新後のメダル払出し枚数データ(_NB_PAY_MEDAL )が「0」となったか否かを判断する。メダル払出し枚数が「0」であると判断したときはステップS477に進み、メダル払出し枚数が「0」でないと判断したときはステップS468に進む。
ステップS477では、メダル払出し終了時の出力要求をセットする。この処理は、メダル払出しの終了を示すコマンドをレジスタに記憶する処理である。次のステップS478では、制御コマンドセット1(S_CMD_SET )を実行する。この処理は、RWM61のコマンドバッファにコマンドを記憶する処理である。そして本フローチャートによる処理を終了する。
以上の払出し処理において、貯留枚数を1枚加算する払出しを行うときは、ステップS471及びS472の処理により、約100ms間の待機時間が設定される。これにより、貯留数表示LED71がカウントアップするように遊技者に見せることができる。たとえば、貯留加算前の貯留数表示LED71の表示が「08」であり、これに8枚のメダルが貯留加算されるときは、「表示「08」→100msのウェイト処理→表示「09」→100msのウェイト処理→・・・→100msのウェイト処理→表示「16」」となる。これに対し、貯留枚数1枚加算時に待機時間を設けないと、表示「08」から瞬時に表示「16」に変化する。
そして、本実施形態のように、貯留枚数を加算するときに、1枚加算ごとに2バイト時間待ち処理を実行することで、サブ制御基板80側から出力する払出し音(「プルルル・・・」)と、貯留枚数のカウントアップとを同調させることが可能となる。
これに対し、貯留枚数が最大数の「50」を超え、ステップS473以降の処理において実際にメダルを払い出すときは、ステップS470及びS471の2バイト時間待ち処理を設けていない。
これは、実際のメダルを1枚払い出すためには、ホッパーモータ36を駆動して払い出すため、上述したように、1枚の払出しに約100msの時間を要するためである。これにより、メダル1枚あたりの払出し時間が約100msとなるので、実際のメダルを払い出すときには、2バイト時間待ち処理を設けていない。よって、実際にメダルを払い出すときには、2バイト時間待ち処理を設けることなく、サブ制御基板80側から出力する払出し音と同調させることができる。
図61は、図36のステップS73における遊技終了チェック処理(M_GAME_CHK)を示すフローチャートである。
ステップS541では、条件装置のフラグをクリアする処理を行う。この処理は、特別役の条件装置以外をクリアする処理であり、特別役に対応する図柄の組合せが有効ラインに停止したと判断したときは特別役の条件装置についてもクリアする処理を実行する。次のステップS542では、リプレイ表示LEDの消灯処理を行う。この処理は、メダル管理フラグ(_FL_MEDAL_STS )のD3ビットを「0」にする処理に相当する。次にステップS543に進み、リプレイ作動フラグをクリアする。この処理は、作動状態フラグ(_FL_ACTION)のD0ビットを「0」にする処理である。
次のステップS544では、BB作動管理(M_BB_CTL;図62)を行う。この処理は、後述するが、1BB遊技中(2BB遊技である場合も同様)である場合に、1BB遊技の終了条件を満たすか否か等を判断する処理である。次のステップS545では、RB作動時であるか否かを判断する。この処理は、作動状態フラグ(_FL_ACTION)のD4ビットであるRB作動状態フラグが「0」であるか否かを判断し、「0」でない(ゼロフラグ≠1)と判断したとき(RB作動時であると判断したとき)は、RB作動管理(M_RB_CTL;図63)を行い、「0」である(RB作動時でない)と判断したときは本フローチャートによる処理を終了する。
なお、図36において、特別役表示時の2バイト時間待ち処理は、ステップS70及び70で実行したが、これに限らず、遊技終了チェック処理において、ステップS541の前に行うこと等も可能である。
図62は、図61のステップS544におけるBB作動管理(M_BB_CTL)を示すフローチャートである。
ステップS551では、作動状態フラグをチェックする。この処理は、作動状態フラグ(_FL_ACTION)の値をAレジスタに記憶する処理を実行する。さらに、Aレジスタに記憶した値を右に(一桁)ローテーションシフトする。具体的には、たとえばリプレイ作動時は、作動状態フラグ(_FL_ACTION)は、
Aレジスタ値=「00000001B」
となる。
さらに、右に一桁ローテーションすると、
Aレジスタ値=「00000000B」(キャリーフラグオン)
となる。
また、たとえば1BB作動時(かつRB作動時)では、作動状態フラグ(_FL_ACTION)は、
Aレジスタ値=「00011000B」
となる。
さらに、右に一桁ローテーションすると、
Aレジスタ値=「00001100B」(ゼロフラグオフ(≠「0」))
となる。
次のステップS552では、BB作動時であるか否かを判断する。本実施形態のように、BBとして1BBのみを備える場合には、上記ローテーション後のゼロフラグが「0」であるか否かを判断し、ゼロフラグが「0」のときは「No」(1BB作動時でない)と判断する。
これに対し、1BBと2BBとの双方を備える場合には、ステップS552における判断枝を、「1BB作動時であるか否か」と「2BB作動時であるか否か」との双方を設けることが挙げられる。さらに、1BB作動時であるか否かの判断では、Aレジスタ値のD2ビットが「1」であるか否かを判断すればよい。また、2BB作動時であるか否かの判断では、Aレジスタ値のD0ビットが「1」であるか否かを判断すればよい。
ステップS552において、BB作動時であると判断したときはステップS553に進み、BB作動時でないと判断したときは本フローチャートによる処理を終了する。
ステップS553では、BB作動時の獲得枚数を取得する。作動中のBBが1BBであるときは、RWM61に記憶している1BB作動時の獲得可能枚数(_CT_BB1_PAY )の値をAレジスタに記憶する。なお、作動中のBBが2BBであるときは、RWM61に記憶している2BB作動時の獲得可能枚数(_CT_BB2_PAY )の値をAレジスタに記憶する。
次のステップS554では、BB作動終了条件を満たすか否か(獲得可能枚数が「0」となったか否か)を判断する。この処理は、Aレジスタに記憶した値が「0」であるか否か(ゼロフラグ=「0」でないか否か)を判断することにより行う。BB作動終了条件を満たすと判断したときはステップS555に進み、BB作動終了条件を満たさないと判断したときは本フローチャートによる処理を終了する。
ステップS555では、Aレジスタ値を作動状態フラグ(_FL_ACTION)に記憶する。なお、ステップS555に進んだときは、Aレジスタ値は「0」となっているので、更新後の作動状態フラグ(_FL_ACTION)は、「00000000B」となる。次にステップS556に進み、BB作動終了時の出力要求をセットする。本実施形態では、DEレジスタに「0471」を記憶する。そして次のステップS557で制御コマンドセット1を実行し、本フローチャートによる処理を終了する。
図63は、図61のステップS546におけるRB作動管理(M_RB_CTL)を示すフローチャートである。
ステップS561では、RWM61に記憶したRB作動時の遊技回数(_CT_BONUS_PLAY)から「1」を減算する。次のステップS562では、ステップS561で更新後のRB作動時の遊技回数が「0」であるか否か(ゼロフラグ=「1」であるか否か)を判断する。RB作動時の遊技回数が「0」であると判断したときはステップS566に進み、「0」でないと判断したときはステップS563に進む。
ステップS563では、メダル払出し枚数データバッファ(アドレス「F06D」の「_BF_PAY_MEDAL 」)の値が「0」であるか否かを判断する。この判断は、RB作動時の入賞回数の値を減算するか否かを判断するための処理であり、当該遊技における小役の入賞による払出しがあったか否かを判断している。すなわち、当該遊技で小役が入賞したとき(メダル払出しを有するとき)は、上述した図59(メダル払出し枚数更新処理)のステップS593において、「_BF_PAY_MEDAL 」にメダル払出し枚数が記憶されるので、このデータ値が「0」であるか否かを判断することで、当該遊技における小役の入賞による払出しがあるか否かを判断している。
このように構成することにより、RB作動時に小役が入賞したか否かを判断するための特別な(専用の)処理を要することなく、小役が入賞したか否かを判断することができる。すなわち、小役が入賞したときには入賞に基づく「払出し枚数の記憶」処理が行われるので、その払出し枚数を読み取って、払出し枚数が特定値(本実施形態では「0」)であれば小役が入賞していないと判断し、特定値以外の値(本実施形態では「0」以外の値)であれば小役が入賞していると判断することができる。
より詳しくは、本実施形態では、当該遊技でメダルの払出しがある場合(小役の入賞時)には、上述したメダル払出し枚数データ(_NB_PAY_MEDAL )にその枚数が記憶されるが、メダル払出し枚数データバッファ(_BF_PAY_MEDAL )にも、当該遊技の払出し枚数が記憶される。そして、メダル払出し枚数データ(_NB_PAY_MEDAL )の値は、メダル払出しが行われるに従って減算され、メダル払出し終了時には「0」となる。これに対し、メダル払出し枚数データバッファ(_BF_PAY_MEDAL )の値は、払出し処理によって更新される(減算される)ことはない。このため、当該遊技における小役の入賞による払出しがあったか否かの判断は、メダル払出し枚数データバッファの値を参照している。
そして、ステップS563において、メダル払出し枚数データバッファの値が「0」であると判断したとき(小役非入賞時)は本フローチャートによる処理を終了し、当該値が「0」でないと判断したとき(小役入賞時)はステップS564に進む。
ステップS564では、RWM61に記憶されたRB作動時の入賞回数(_CT_BONUS_WIN )から「1」を減算する。次にステップS565に進み、RBの作動が終了したか否かを判断する。ステップS565では、ステップS564において入賞回数から「1」を減算した結果、その値が「0」(ゼロフラグ=「1」)であるか否かを判断する。「0」であると判断したときはステップS566に進み、「0」でないと判断したときは本フローチャートによる処理を終了する。
ステップS566では、RBの作動状態フラグを「0」にする。この処理は、作動状態フラグ(_FL_ACTION)のD4ビットを「0」に更新する処理である。
次に、ステップS567に進み、RB作動終了時の待機時間をセットする。この処理は、BCレジスタに、待機時間に対応する値をセットする処理であり、本実施形態では、BCレジスタに「5」(約11ms)をセットする。より具体的には、Bレジスタ値=「0」(00000000B)、Cレジスタ値=「5」(00000101B)をセットする。そして、次のステップ5680で、2バイト時間待ち処理を実行する。2バイト時間待ち処理後、本フローチャートによる処理を終了する。
なお、ステップS566でRBに対応する作動状態フラグ(_FL_ACTIONのD4ビット)をクリア(「0」に)すると、2バイト時間待ち処理の実行後、図36のステップS74に戻る。そして、再度、ステップS50に進むと、ステップS52の遊技開始セット処理に進む。遊技開始セット処理では、図37のステップS88における作動状態フラグ更新で、作動状態フラグ(_FL_ACTION)のD4ビット(RB)が「1」にされる。これにより、RBの作動状態フラグは、RB作動中の遊技回数又は入賞回数が「2」になってRB作動の終了条件を満たすと「0」になるが、1BB遊技の終了条件を満たしていないとき(作動状態フラグ(_FL_ACTION)のD3ビット(1BB)が「1」のとき)は、「5」割込み経過後、再度、「1」にされることとなる。このような処理を設けることにより、ステップS566でRBに対応する作動状態フラグをクリアしても、1BB遊技の継続中は、すぐにRBに対応する作動状態フラグをオンにすることができる。なお、ここで、RBの作動状態フラグを一旦「0」にする理由については後述する。
図64は、メイン制御基板60(メインCPU63)による割込み処理を示すフローチャートである。上述したように、メイン制御基板60は、図36のメインループと並行して、2.235ms周期で、図64に示す割込み処理を行う。
先ず、ステップS601の割込み処理に移行すると、ステップS602では、初期処理として、レジスタ値の退避及び重複割込みの禁止処理を行う。ここでは、メインループで使用しているメインCPU63のレジスタを割込み処理で使用するため、現在のレジスタ値をRWM61のスタック領域に退避する。さらに、割込み処理中に次の割込み処理が開始されないように、割込み禁止フラグをオンにする。このようにするのは、たとえば電源断処理の実行中に割込み処理の実行要求が行われるときがあるからである。
次のステップS603では、電源断を検知したか否かを判断する。ここでは、(図示しない)メイン制御基板60上に設けられた電圧監視装置(電源断検出回路)により、電源電圧が所定値以下になったときには、図6中、入力ポート2のD0ビットに電源断検知信号が入力されるので、その信号の入力があったか否かを検知する。
そして、電源断を検知したときはステップS619の電源断処理(IS_POWER_DOWN )に進み、電源断を検知していないと判断したときはステップS604に進む。
ステップS604では、割込みカウンタ値(_CT_INTR)の更新を行う。
次のステップS605では、タイマー計測を行う。この処理は、メイン処理でセットした時間を減算等する処理である。具体的には、ステップS532でセットした最小遊技時間(_TM2_GAME )の減算処理や、ステップS536でセットした条件装置出力時間(_TM1_COND_OUT )の減算処理、さらには、ステップS237の処理で投入センサ1の所定時間を経過したか否か、ステップS531の処理で最小遊技時間(4.1秒)を経過したか否か等が挙げられる。
次に、ステップS606に進み、LED表示制御(IS_LED_OUT;図65)を行う。ここでは、スロットマシン10の状態に応じて、設定値、貯留枚数、獲得枚数、エラー表示内容(エラーコード)等を7セグLED(デジット1〜5)を用いて点灯する処理である。
上述したように、図35に示す復帰不可能エラー(SS_ERROR_STOP )では、メイン処理によりエラー表示を出力したが(ステップS888)、設定変更や設定確認中の設定値、貯留枚数、獲得枚数、復帰可能なエラーの表示は、割込み処理時ごとに、このLED表示制御にて行う。
次にステップS607に進み、入力ポート0〜2の読み込み処理を行う。これにより、ベットスイッチ40、スタートスイッチ41、ストップスイッチ42等の操作が行われたか否かや、スイッチ信号、各種センサの入力信号が読み込まれ、入力ポート0〜2に基づくデータ(レベルデータ、立ち上がりデータ、立ち下がりデータ)を生成し、RWM61の所定アドレス(「F008」〜「F00D」)に記憶する。次のステップS608では、内蔵乱数のチェック処理を行う。本実施形態では、内蔵乱数にエラーが発生するとオンになるフラグが設けられており、このフラグがオンであるか否かが判断される。
具体的には、たとえば役抽選用の乱数のクロック周波数異常(乱数更新が遅い場合等)を検知したときは、当該エラーフラグがオンにされる。より具体的には、MPUに入力されるSCLK(発振源:12MHz)とRCK(発振源:9MHZ)を備え、RCKに基づいて内蔵乱数を更新するものとする。このとき、「RCK<SCLK/2」を満たした場合にエラーフラグがオンになる。
そして、ステップS609に進み、内蔵乱数にエラーが発生しているか否か(エラーフラグがオンか否か)を判断し、エラーが発生していないと判断されたときはステップS610に進み、エラーが発生していると判断したときは、ステップS620に進んで、復帰不可能エラー処理(SS_ERROR_STOP ;図35)に移行する。このときのエラー表示内容は、「E7」となる。
ステップS610では、リール31の駆動制御を行う。この制御は、リール31単位(左、中、右)で行われるとともに、それぞれ動作状態に応じて、停止中、定速、加速、減速、減速開始、待機が挙げられる。リール31の駆動制御が終了するとステップS611に進み、ポート出力処理を行う。この処理は、(リール用)モータ32、ホッパーモータ36の励磁出力や、ブロッカ45の励磁出力を行う。
次のステップS612では、入力エラーチェック処理を実行する。この処理は、各種センサに異常がないか否かを判断する処理である。
次のステップS613では、制御コマンドの送信(IS_CMD_SET;図67)を行う。この処理は、たとえば出力要求セット及び制御コマンドセット1でセットされた制御コマンド(RWM61のコマンドバッファに記憶されている未送信の制御コマンド)をサブ制御基板80に送信する処理である。
具体的には、出力要求セット及び制御コマンドセット1において制御コマンドがコマンドバッファにセットされると、その時点以降の割込み処理(コマンドバッファが空の場合は、原則としては、その時点の次に到来する割込み処理)において、このステップS613によって制御コマンドがサブ制御基板80に送信される。
次のステップS614では、RWM61に記憶されている外部信号のためのデータをレジスタに記憶する。そして、次のステップS615では、出力ポート6にデータを書き込む(セットする)ことにより、外部信号の出力(外部集中端子板100への信号の送信)を行う。
次のステップS616では、試験信号及び条件装置情報の出力処理(図68)を行う。この処理は、RWM61に記憶されているデータに基づいて出力ポート7、出力ポート8にデータを書き込む(セットする)ことにより、スロットマシン10が法律に従って適切に設計されているか否かを判断するときの試験機に対して試験信号を送信する処理である。
なお、試験機に対して送信する情報名として、作動状態に関する情報を試験信号、当選役に関する情報を条件装置情報と称しているが、作動状態に関する情報を第1の試験信号、当選役に関する情報を第2の試験信号と称してもよい。また、試験機に対して上記以外の他の情報を送信してもよい。たとえば、最適な停止操作態様(停止操作位置、停止操作順序)に関する情報(第3の試験信号と称す)を送信することが挙げられる。これにより、試験機側で出玉試験(シミュレーション試験とも呼ばれる)を行うことができる。
次にステップS617に進み、乱数更新処理を行う。次のステップS618では、ステップS602で退避したレジスタ値を復帰させ、次回割込みの許可を行う。具体的には、割込み処理開始時に記憶していたレジスタデータを復帰するとともに、次回の割込み処理を開始できるように、割込禁止フラグをオフにする。そして本フローチャートによる処理を終了する。
以上の処理に示すように、2.235msごとの割込み処理により、貯留数表示LED71、獲得数表示LED72、状態表示LED73(73a〜73g)、設定値表示LED64の点灯/消灯が制御される。
さらに、割込み処理ごとに、サブ制御基板80に未送信の制御コマンドがコマンドバッファに記憶されているときは、その送信処理が行われる。
なお、図35の復帰不可能エラーにおいてステップS881で示したように、復帰不可能エラー処理時には、割込み処理を行わない。
復帰不可能エラーは、通常では起こり得ない重大なエラーであり、異常データに基づく処理(入力ポートからのデータに基づくRWM61のデータ更新や、サブ制御基板80への制御コマンドの送信)等を実行させないようにするために、割込み自体を禁止している。
いいかえれば、復帰不可能エラー時には、メイン制御基板60からサブ制御基板80への制御コマンドの送信が行われないので、制御コマンドセット1を実行しても意味がない。
さらに、復帰不可能エラーの発生時に、制御コマンドのバッファに未送信のコマンドが格納されていた場合は、当該コマンドをサブ制御基板80に送信しない。バッファに格納されている制御コマンドが正しくないおそれがあるからである。
図65は、図64のステップS606におけるLED表示制御(IS_LED_OUT)を示すフローチャートである。
先ず、ステップS621では、出力ポート0及び1がオフにされる。出力ポート0は、デジット信号に対応する出力ポートであり、出力ポート1は、セグメント信号に対応する出力ポートである。これらの出力ポート0及び1について、「00000000B」を出力することで、一旦、全LEDの出力を行わないようにする。これにより、LEDの表示を切り替える際に、一瞬でも異なるLEDが同時に点灯して見えてしまうこと(被って表示されてしまうこと)を防止している(残像防止)。
次のステップS622では、LED表示要求カウンタを更新する。LED表示要求カウンタの更新は、オンすなわち「1」となっているビットを右に一桁シフトする処理である。この更新後の値を、RWM61の所定の記憶領域及びBレジスタに記憶する。そして、ステップS623に進む。
ステップS623では、LED表示要求カウンタが「0」であるか否かを判断する。すなわち、ステップS622で更新した後のLED表示要求カウンタが「0」であるか否かを判断する。「0」であると判断されたときはステップS624に進み、「0」でないと判断されたときはステップS625に進む。
ステップS624では、LED表示要求カウンタを初期化する。ここでは、LED表示要求カウンタの初期化を「00010000B」にして、RWM61の所定の記憶領域及びBレジスタに記憶する。そしてステップS625に進む。よって、LED表示要求カウンタは、ステップS622において、「00000001B」から「00000000B」に更新されたときは、ステップS623で「0」であると判断されるので、ステップS624で「00010000B」に更新される。すなわち、一割込み処理内で、「00000001B」から「00100000B」に更新される。
ステップS625では、今回の割込み処理で表示するデジットのセグメントA〜Gの表示要求の確認をセットする。
この処理では、先ず、LED表示要求フラグの値をAレジスタに記憶する。LED表示要求フラグは、表示してもよいデジットがオン(「1」)、表示しないデジットがオフ(「0」)となっているフラグである。
次に、LED表示要求カウンタの値(Bレジスタ値)と、LED表示要求フラグの値(Aレジスタ値)とをAND演算(論理積)する。
たとえば、
LED表示要求カウンタの値:00001000B
LED表示要求フラグ値 :00001111B
AND演算後 :00001000B
となる。
あるいは、たとえば、
LED表示要求カウンタの値:00010000B
LED表示要求フラグ値 :00001111B
AND演算後 :00000000B
となる。
そして、上記AND演算の結果、「0」であるときはゼロフラグが「1」となる。
次にステップS626に進み、LED表示要求があるか否かを判断する。ここでは、ステップS625におけるゼロフラグが「1」であるか否かを判断する。「1」であるときは表示要求なしと判断し、ステップS638に進む。一方、「1」でないときは表示要求ありと判断し、ステップS627に進む。
ステップS627では、設定値データを取得する。ここでは、RWM61に記憶された現在の設定値を読み込み、Aレジスタに記憶する。次にステップS628に進み、設定値表示要求があるか否かを判断する。この判断は、上記AND演算の結果、D4ビット(デジット5)が「1」であるか(「00010000B」であるか)否かを判断する。そして、設定値表示要求ありと判断したときはステップS635に進み、設定値表示要求なしと判断したときはステップS629に進む。
ステップS629では、RWM61に記憶された獲得枚数表示データを取得し、Aレジスタに記憶する。次のステップS630では、獲得枚数の下位桁の表示要求があるか否か、すなわちデジット4の表示要求であるか否かを判断する。上記AND演算の結果、D3ビット(デジット4)が「1」であるとき(「00001000B」であるとき)は、表示要求ありと判断し、それ以外は表示要求なしと判断する。
獲得枚数の下位桁の表示要求ありと判断したときはステップS635に進み、表示要求なしと判断したときはステップS631に進む。
ステップS631では、獲得枚数の上位桁の表示要求があるか否か、すなわちデジット3の表示要求があるか否かを判断する。上記AND演算の結果、D2ビットが「1」であるとき(「00000100B」であるとき)は、表示要求ありと判断し、それ以外は表示要求なしと判断する。
獲得枚数の上位桁の表示要求ありと判断したときはステップS634に進み、表示要求なしと判断したときはステップS632に進む。
ここで、ステップS628で設定値表示要求なしと判断され、かつステップS630及びステップS631で獲得枚数表示要求なしと判断されたときは、貯留枚数の表示要求があるということを意味する。したがって、貯留枚数の表示要求があるときはステップS632に進み、貯留枚数読み込み(S_CREDIT_READ ;図40)を行う。そして、読み込んだ貯留枚数データをAレジスタに記憶する。
次にステップS633に進み、今回の割込み処理時の表示要求が、貯留枚数の下位桁(デジット2)の表示要求であるか否かを判断する。上記AND演算の結果、D1ビットが「1」であるとき(「00000010B」であるとき)は、下位桁表示要求ありと判断し、ステップS635に進む。これに対し、D1ビットが「1」でないときは、D0ビットが必ず「1」であるはずである。すなわち、貯留枚数の上位桁(デジット1)の表示要求があると判断することができる。したがって、この場合にはステップS634に進む。
ステップS634では、表示データを、貯留枚数の上位桁の表示データに修正する処理を行う。具体的には、Aレジスタに記憶した値の上位4ビットと下位4ビットとを入れ替える処理を行う。
具体的には、貯留枚数の表示データが「08」、すなわち「0000/1000B」(なお、上位4ビットと下位4ビットとの間に「/」を表記する)であるときは、「1000/0000B」に変換する。また、たとえば貯留枚数が「41」、すなわち「0100/0001B」であるときは、「0001/0100B」に変換する。そして、ステップS635に進む。
ステップS635では、LEDテーブルのオフセットを生成する。具体的には、Aレジスタ値と、「00001111B」とのAND演算(論理積)を行う。この処理は、その後に実行されるセグメントデータを取得するための処理である。そして、その演算結果をAレジスタに記憶する。
たとえば、Aレジスタ値が「10000000B」であるときは、「00000000B」となる。
また、Aレジスタ値がたとえば「10101100B」であるときは、「00001100B」となる。
さらにまた、Aレジスタ値がたとえば「00010100B」であるときは、「00000100B」となる。
ここで記憶されるAレジスタ値が後述するオフセット値となる。
次にステップS636に進み、LEDセグメントテーブルをセットする。この処理は、ROMに記憶されたLEDセグメントテーブルのアドレスをセットする処理である。LEDセグメントテーブルは、図5に示すものであり、先頭アドレスは、「1211」である。
次のステップS637では、セグメントA〜Gの出力データを取得する。ここでは、LEDセグメントテーブルのアドレスにAレジスタ値(オフセット値)を加算することにより、セグメントデータを取得する。そして、取得したデータをHレジスタに記憶する。
たとえば、Aレジスタ値が「00000000B」であるときは、オフセット値は「0」であるので、アドレス「1211」のセグメントデータ、すなわち「00111111B」を取得し、Hレジスタに記憶する。この結果、表示内容は「0」となる。
また、Aレジスタ値がたとえば「00000100B」(オフセット値が「4」)であるときは、アドレス「1215」のセグメントデータ、すなわち「01100110B」を取得し、Hレジスタに記憶する。この結果、表示内容は「4」となる。
さらにまた、Aレジスタ値がたとえば「00001100B」(オフセット値が「C」)であるときは、アドレス「121D」のセグメントデータ、すなわち「00111001B」を取得し、Hレジスタに記憶する。この結果、表示内容は「C」となる。
次にステップS638に進み、セグメントPの表示要求があるか否かを判断する。ここでは、上述したメダル管理フラグに記憶されているデータをAレジスタに記憶する。
そして、メダル管理フラグのデータを記憶したAレジスタ値と、LED表示要求カウンタの値を記憶したBレジスタ値とのAND演算を実行する。そして、AND演算の結果、「0」であるときは、セグメントPの表示要求なしと判断し、「0」でないときは、セグメントPの表示要求ありと判断する。
たとえば、
Aレジスタ値:00001101B
Bレジスタ値:00001000B
AND演算後:00001000B(Aレジスタ)
となり、表示要求ありとなる。
また、たとえば
Aレジスタ値:00000101B
Bレジスタ値:00001000B
AND演算後:00000000B(Aレジスタ)
となり、表示要求なしとなる。
セグメントPの表示要求あり(AND演算後のAレジスタ値が「0」でない)と判断されたときはステップS639に進み、表示要求がないと判断されたときはステップS640に進む。
ステップS639では、セグメントPの出力データをセットする。この処理は、Hレジスタ(ステップS637で記憶したデータ)のD7ビット、すなわち今回の割込み処理において表示要求のあるデジットのD7ビットを「1」にする処理である。
上記のAND演算により、たとえば、今回の割込み処理において表示要求のあるLED(LED表示要求カウンタにおいて「1」となっているデジット)がデジット1であり、そのセグメントPに対応するD7ビットが「1」となったときは、図3に示すように、遊技開始LED73dが点灯対象となる。すなわち、デジット1(貯留数表示LED71の上位桁)と遊技開始LED73dとが同時に点灯する。
同様に、今回の割込み処理において表示要求のあるLEDがデジット3であり、そのセグメントPに対応するD7ビットが「1」となったときは、投入可表示LED73bとデジット3とが同時に点灯する。
また、今回の割込み処理において表示要求のあるLEDがデジット4であり、そのセグメントPに対応するD7ビットが「1」となったときは、リプレイ表示LED73aとデジット4とが同時に点灯する。
さらにまた、今回の割込み処理において表示要求のあるLEDがデジット5であり、そのセグメントPに対応するD7ビットが「1」となったときは、精算表示LED73cとデジッ5とが同時に点灯する。
以上のように、本実施形態では、デジット1〜5の各LEDを表示する場合には、セグメントA〜Gに対応するD0〜D6ビットの7種類があれば十分であるが、8ビットの1バイトデータを用いる際にD7ビットが余るので、そのD7ビットを有効活用し、状態表意LED73中、73a〜73dの点灯制御に用いている。
そして、ステップS640に進み、LED表示データの出力を行う。具体的には、Bレジスタ値(どのデジットをオンにするか)を出力ポート0のアドレスに書き込み、Hレジスタ値(どのセグメントをオンにするか)を出力ポート1のアドレスに書き込む。これにより、該当デジットの該当セグメントが点灯する。
以上のように、本実施形態では、1回の割込み処理で、1つのデジットを点灯させる。すなわち、1回の割込みごと(2.235msごと)に、デジット5→デジット4→・・・→デジット1→デジット5→・・・と点灯対象となるLEDを切り替える。よって、たとえばデジット1である貯留数表示LED71の上位桁を点灯させた後、次に点灯させるのは、5割込み後である「11.18ms」後である。
ここで、LEDの輝度は、点灯時から次の点灯時までに何msの時間間隔を有するかで定まる。本実施形態では、1つのデジットは、上述したように「11.18ms」ごとに1回点灯するように制御されるが、遊技者(ヒト)の目からみれば、デジット1〜4は、ほぼ、常時点灯しているように見えるので、何ら支障はない。
一方、復帰不可能エラーの際には、上述したように、0.128msごとに上位桁と下位桁との点灯切替えを繰り返すので、切替え周期は、割込み周期よりも早くなり、割込み処理におけるLED点灯輝度よりも輝度が高くなる。
図66は、図64において、電源断を検知し、ステップS619に進んだときの電源断処理(IS_POWER_DOWN )を示すフローチャートである。
先ず、ステップS651では、全出力ポート(0〜6)の出力をオフにする。次にステップS652に進み、電源断処理済みフラグをRWM61に記憶する。この処理は、正常な電源断処理が実行されたことを示すデータをRWM61に記憶する処理である。具体的には、アドレス「F01F」の「_FL_POWER_OFF 」に、「01」Hを記憶する。これにより、正常な電源断処理が行われるとステップS652を経由して電源断処理済みフラグとしてアドレス「F01F」に「01」Hが記憶されるが、それ以外の電源断の場合には電源断処理済みフラグとしてアドレス「F01F」に「01」Hは記憶されない。
次のステップS653では、制御コマンド読み込みポインタを偶数(1回目)に設定する。上述したように、制御コマンドを送信する場合には、第1制御コマンドと第2制御コマンド(2つの制御コマンド)とを送信する。また、後述するように、1の割込み処理により第1制御コマンドを送信する処理と第2制御コマンドを送信する処理とを、2回実行する。しかし、1回目の制御コマンドを送信した後、2回目の制御コマンドを送信する前に電源断が発生する場合がある。この場合には、再度、1回目の制御コマンドから送信し直す。
したがって、ステップS653の処理は、このような場合に、制御コマンドが記憶されているバッファのアドレスを指定する読み込みポインタを偶数に設定するものである。たとえば、読み込みポインタが「00011111B」であったときは、「00011110B」に設定する。また、「00011110B」のように最初から偶数であるときは、そのままとする。この処理により、指定されるアドレスのバッファが常に偶数となり、第1制御コマンドが格納されているバッファとなる。これにより、簡素なプログラム処理により確実に2度制御コマンドを送信することが可能となる。
次のステップS654では、RWM61のチェックサムデータを算出する。この処理は、プログラムで使用する作業領域(RWM61)を含むチェックサムを算出するものであり、対象となるプログラム使用領域としては、プログラム作業領域、未使用領域、スタックエリア等が挙げられる。
そして、次のステップS655で、チェックサムの全範囲の算出が終了したか否かを判断し、終了していないと判断したときはステップS654に戻ってチェックサムの算出を継続する。一方、チェックサムの算出が終了したと判断したときはステップS656に進む。
ステップS656では、算出したチェックサムを、RWM61のアドレス「F075」(_WK_SUM_CHK )に記憶する。ここで、RWM61に記憶するデータは、RWM61のチェックサム時に、プログラム使用領域の全データとアドレス「F075」の値とを加算したとき、「0」となる1バイトデータ(補数データともいう)である。具体的には、対象となるRWM61のプログラム使用領域(プログラム作業領域、未使用領域、スタックエリア等)の全データを加算し、そのときの下位8ビットの値がたとえば「00000001」(01H)であったときは、アドレス「F075」に記憶されるチェックサムデータは、「11111111」(FFH)となる。
そして、プログラム開始時(上述した図28のステップS14)に、RWM61のチェックサムを実行する場合は、上記と同範囲のRWM61のプログラム使用領域の全データと、アドレス「F075」に記憶されたチェックサムデータとを加算する。これによって算出されるチェックサムデータが「0」であれば正常値であると判断し、「0」でなければ異常値であると判断する。したがって、図28のステップS14では、チェックサムデータが正しいか否かは、「0」か否かを判定するだけで済むため、プログラム処理の簡素化や処理時間の短縮につながる。
次に、ステップS657に進み、リセット待ち状態にする。ここでは、電圧が所定値になると、メイン制御基板60に設けられた電圧監視装置(電源断検出回路)からリセット信号が出力されるので、そのリセット信号の出力を待つ状態となる。ここで、電圧監視装置は、電源電圧が所定値以下になったときには、入力ポート2(図6)のD0ビットに電源断検知信号が入力され、その後、コンデンサと抵抗からなる回路によって所定時間経過した後にリセット信号がMPUに入力されるように構成されている。このとき、電源断時の処理が正常に実行されるような時間となるようにコンデンサや抵抗値が設計されている。
図67は、図64のステップS613における制御コマンド送信を示すフローチャートである。
先ず、ステップS661では、制御コマンドバッファのアドレスをセットする。メイン制御基板60からサブ制御基板80に送信する制御コマンドのデータは、RWM61内において、アドレスに対応付けられたバッファに記憶されている。また、どのアドレスの制御コマンドデータを読み込むかを指定する読み込みポインタを示すデータについても、アドレスに対応付けられてRWM61に記憶されている。このため、ステップS661では、制御コマンドバッファの先頭アドレスと、RWM61に記憶されている読み込みポインタを記憶しているアドレスを取得する。
次にステップS662に進み、読み込みポインタを取得する。この処理は、RWM61の読み込みポインタを記憶している領域から、現在の読み込みポインタを取得する処理である。
次のステップS663では、送信対象となる制御コマンドバッファのアドレスをセットする。この処理は、制御コマンドバッファの先頭アドレスと、読み込みポインタとから、次に読み込みを行うRWM61の制御コマンドバッファのアドレスを算出する処理である。
そして、ステップS664に進み、(送信すべき)制御コマンドを有するか否かを判断する。ステップS663でセットしたアドレスに制御コマンドデータがあるときは制御コマンドありと判断され、そのアドレスのデータが「0」であるときは制御コマンドなしと判断する。制御コマンドありと判断されたときはステップS665に進み、制御コマンドなしと判断されたときは本フローチャートによる処理を終了する。
ステップS665では、SCU3データレジスタにアドレスをセットする。本実施形態では、送信用の制御コマンドデータを保存する記憶領域として、SCU3データレジスタを使用しており、このレジスタのアドレスをセットする。
次にステップS666に進み、ステップS665でセットしたアドレス(SCU3データレジスタ)に、第1制御コマンドデータを書き込む。これにより、その第1制御コマンドデータがサブ制御基板80に送信される。また、送信対象となる制御コマンドバッファのアドレスのデータを「+1」にする。これにより、第2制御コマンドデータが記憶されているアドレスがセットされる。
次にステップS677に進み、ステップS666と同様に、送信対象となる第2制御コマンドデータをSCU3データレジスタに書き込む。これにより、その第2制御コマンドデータがサブ制御基板80に送信される。
次のステップS668では、制御コマンドの送信が完了したか否かを判断する。ここでは、読み込みポインタのデータが奇数であるか否かを判断する。奇数であるときは、2回目の送信であることを示し、偶数であるときは、1回目の送信であることを示す。
このような処理を行うのは、本実施形態では、同一の制御コマンド(第1制御コマンド及び第2制御コマンド)を、2回続けて(2割込みで)サブ制御基板80に送信するためである。
ステップS668において制御コマンドを送信した(読み込みポインタのデータが奇数である)と判断したときはステップS669に進み、送信していないと判断したときはステップS670に進む。
ステップS669では、送信済みの制御コマンドデータをクリアする。すなわち、制御コマンドバッファに記憶されているデータを消去し、RWM61の領域を空にする。
次にステップS670に進み、読み込みポインタのデータを「+1」更新する。そして本フローチャートによる処理を終了する。
図68は、図64のステップS616における試験信号・条件装置情報出力処理を示すフローチャートである。
ステップS571では、試験信号の出力データをセットする。この処理は、作動状態フラグ(_FL_ACTION)に記憶されている情報をAレジスタに記憶する処理である。そして、次のステップS572において、試験信号を出力する。この処理は、Aレジスタに記憶した情報を出力ポート8に出力する処理である。これにより、出力ポート8から、作動状態フラグ(_FL_ACTION)に記憶された情報に基づいた情報が出力(送信)される。したがって、作動状態フラグの信号を試験信号として試験機に出力可能となる。
なお、図68の処理においては、上記のステップS571及びS572が作動状態フラグの情報の出力処理に相当し、以下のステップS573〜S579が条件装置情報の出力処理に相当する。
このように、本実施形態では、作動状態フラグに記憶された情報に基づいた情報を出力ポート8から出力する。しかし、これに限らず、たとえば作動状態フラグを有さず、複数のRWM61のアドレスからそれぞれ所定の情報(各アドレスにそれぞれ作動状態を示す一部の情報が記憶されているものとする)を取得し、レジスタを用いた演算処理によって作動状態フラグに相当する情報を作成(合成)し、その情報を試験信号として出力ポート8に書き込む(セットする)ような方法であってもよい。
次のステップS573では、条件装置情報のクリアデータをセットする。この処理は、RWM61に記憶された条件装置出力時間(_TM1_COND_OUT )に記憶されている情報をAレジスタに記憶する処理である。
上述したように、図58中、ステップS531で最小遊技時間(約4.1秒)を経過したと判断されると、ステップS536において、条件装置出力時間(_TM1_COND_OUT )に、「25」の値が記憶される。そして、この値は、一割込みごと(具体的には、図64のステップS605のタイマー計測処理時)に「1」ずつ減算されていく。したがって、「25」の値が記憶された後、「25」割込み後は、「0」となる。
次のステップS574では、条件装置情報の出力時であるか否かを判断する。この処理は、Aレジスタに記憶した値が「0」(ゼロフラグ=1)であるか否かを判断し、「0」のときは「No」と判断し、「0」でないときは「Yes」と判断する。条件装置情報の出力時であると判断したときはステップS575に進み、条件装置情報の出力時でないと判断したときはステップS579に進む。
ステップS575では、役物条件装置情報のRWM61のアドレスをセットする。具体的には、HLレジスタに、役物条件装置情報(_NB_CNDINF_B)のアドレス、すなわち「F04D(H)」を記憶する。これにより、Hレジスタ値=「F0(H)」、及びLレジスタ値=「4D(H)」となる。次のステップS576では、役物条件装置情報出力時であるか否かを判断する。この処理は、Aレジスタに記憶された値(Aレジスタには、ステップS573において、条件装置出力時間(_TM1_COND_OUT )が記憶されている)から、「12.5(25/2)」を減算する演算を行い、演算結果が「0」より大きい(キャリーフラグ≠1)と判断した場合には、「Yes」と判断する処理である。すなわち、条件装置出力時間の初期値である「24」から、半分の時間を経過したか否かを判断している。役物条件装置情報出力時であると判断したときはステップS578に進み、役物条件装置情報出力時でないと判断したときはステップS577に進む。
ステップS577では、入賞及びリプレイ条件装置情報のRWM61のアドレスをセットする。この処理は、HLレジスタに、入賞及びリプレイ条件装置情報(_NB_CNDINF_N)のアドレス、すなわち「F04C(H)」を記憶するため、HLレジスタ値から「1」を減算する。これにより、HLレジスタ値=「F04C(H)」(Hレジスタ値=「F0(H)」、及びLレジスタ値=「4C(H)」)となる。
次にステップS578に進み、条件装置情報を取得する。この処理は、HLレジスタ値が示すアドレスに記憶されている応報をAレジスタに記憶する処理である。したがって、HLレジスタ値=「F04C(H)」の場合には、入賞及びリプレイ条件装置情報(_NB_CNDINF_N)の値が記憶され、HLレジスタ値=「F04D(H)」の場合には、役物条件装置情報(_NB_CNDINF_B)の値が記憶される。
次にステップS579に進み、Aレジスタに記憶されている情報を、出力ポート7に出力する。これにより、出力ポート7から、条件装置情報が出力(送信)される。そして本フローチャートによる処理を終了する。
以上の試験信号・条件装置情報出力処理では、割込み処理ごとに、作動状態フラグの情報を試験機に出力(送信)することができる。たとえば、試験機側で当該信号を受信することで、スロットマシン10の作動状態フラグのオン/オフが正しく実行されているかどうかを判断することが可能となる。
また、ステップS574において、条件装置出力時間(_TM1_COND_OUT )の値が「0」であるときは、「No」と判断され、ステップS579に進む。この場合、Aレジスタ値は「0」であるので、条件装置情報として、「0」(00000000B)を出力することとなる。
また、条件装置出力時間(_TM1_COND_OUT )の値が「0」でないとき(「1」〜「24」のとき)は、割込み処理ごとに、条件装置情報を出力することとなる。
なお、条件装置出力時間の初期値としては、図58のステップS536において「25」がセットされるが、図64のステップS605において「1」が減算されてからステップS616の試験信号・条件装置情報出力処理に進む。したがって、ステップS536において「25」がセットされた後、最初に図68のステップS574に進んだときは、条件装置出力時間値は「24」となっている。
さらに、条件装置情報を出力する場合において、ステップS576の判断で、条件装置出力時間(_TM1_COND_OUT )が「13」〜「24」(第1の期間とも称する)であるときは、ステップS577をスキップするので、出力する条件装置情報は、役物条件装置情報(_NB_CNDINF_B)となる。これに対し、ステップS576の判断で、条件装置出力時間(_TM1_COND_OUT )が「1」〜「12」(第2の期間とも称する)であるときは、ステップS577の処理を実行するので、出力する条件装置情報は、入賞及びリプレイ情報装置情報(_NB_CNDINF_N)となる。
さらにまた、割込み処理ごとに、条件装置出力時間(_TM1_COND_OUT )の値が「0」であるときは、条件装置情報として「0」の値、条件装置出力時間(_TM1_COND_OUT )の値が「0」以外の値であるときは、条件装置情報として「0」以外の値が出力される。
そして、条件装置情報が更新されるのは、図58のステップS533である。よって、条件装置情報が更新されるのは、最小遊技時間(4.1秒)の経過後(ステップS531で「Yes」のとき)である。これにより、試験機側では、受信した「0」以外の条件装置情報に変化があったとき、「0」以外の条件装置情報を受信してから、次に変化のあった「0」以外の条件装置情報を受信するまでの時間を計測することで、最小遊技時間(4.1秒)が担保されているかどうかを判断することができる。したがって、最小遊技時間に関する情報を別途設けることなく、上記構成によって、条件装置情報を出力するだけで、最小遊技時間の計測を試験機側で行うことが可能となる。
次に、図68中、ステップS572における試験信号(作動状態フラグ)の出力、及びステップS579における条件装置情報の出力について説明する。
図69は、ステップS572において、試験信号として出力される作動状態フラグの情報中、D3ビット(1BB)及びD4ビット(RB)のオン/オフ状態を示す図である。
図69の例では、1BB遊技中であり、作動状態フラグのD3ビット(1BB)がオンとなっており、D4ビット(RB)がオン/オフを繰り返す例を示している。
1BB遊技が開始されると、作動状態フラグのD3(1BB)及びD4(RB)ビットは、「1」となるので、割込み処理により、試験信号として、D3ビット(1BB)及びD4ビット(RB)がオン(「1」)の情報が出力される。
そして、RB作動後、2遊技が終了し、RBの作動終了条件を満たすと判断されると(図63のステップS565で「Yes」)、同ステップS566でRBの作動状態フラグが「0」とされ、次のステップS567及びS568で、割込み回数「5」(約11ms)の間、待機処理が行われる。その後、図36のステップS74に戻る。そして、再度、ステップS52の遊技開始セット処理に進み、図37のステップS88における作動状態フラグ更新で、1BB遊技の終了条件を満たしていなければ、作動状態フラグ(_FL_ACTION)のD4ビット(RB)が「1」にされる。
これにより、1BB遊技では、1BB遊技の終了条件を満たしていないときは、2遊技間、RBの作動状態フラグが「1」となるので、RB作動の試験信号が出力され続け、2遊技終了後、「5」割込み間(約11ms)の間、「0」となり、再度、「1」となる。これにより、図69に示す信号波形となる。
ここで、図63のステップS567及びS568の間は、メイン処理が停止する。すなわち、操作スイッチを操作しても、その操作が受け付けられない期間となる。RBの作動状態フラグが「1」から「0」になった後、たとえば数秒間の2バイト時間待ち処理を実行したときは、遊技者は、操作スイッチの操作が付け付けられないこと、すなわちメイン処理が停止している(フリーズしている)ことを、体感的に感じ取ることができると考えられる。
これに対し、本実施形態のように、「5」割込み間(約11ms)に設定すれば、メイン処理を停止しても、遊技者に違和感を与えること(遊技者が遊技を行うリズムを壊すこと)は、ほとんどないと考えられる。約11ms間程度のメイン処理の停止であれば、遊技者は、メイン処理の停止を実感できることはほとんどないと考えられる。
一方、RBの作動状態フラグが「0」となっている時間を短くしすぎると、試験信号として試験機側に出力したときに、RBの作動状態フラグが「0」となっていることを正しく検知することができないおそれがある。これらのことを考慮して、本実施形態では、「5」割込み間(約11ms)に設定している。
これにより、遊技者にメイン処理(遊技進行)の停止を実感させず、かつ、試験信号としてRBの作動状態フラグが「0」となっていることを試験機が正しく検知できる時間として、上記時間を設定した。
なお、本実施形態では、「5」割込み間(約11ms)に設定したが、これに限らず、たとえば「2」割込み間(4.5ms程度)〜「25」割込み間(約56ms)程度であれば、上記と同様の効果を発揮できると考えられる。
図70は、図68のステップS579における条件装置情報の出力例を示す図である。
図70の例では、1BB内部中に、「N」遊技目では当選番号「13」(ベルB4に当選)となり、次の「N+1」遊技目では当選番号「1」(リプレイに当選)となったときの条件装置情報の出力例を示す。なお、「N」遊技目では1BBは入賞しないものとする。
まず、1BB内部中であるときは、役物条件装置情報(_NB_CNDINF_B)のD0ビットは「1」となる。したがって、役物条件装置情報(_NB_CNDINF_B)は、「10000001B」となる。
また、「N」遊技目で当選番号「13」となったときは、入賞及びリプレイ条件装置情報(_NB_CNDINF_N)のD0〜D5ビットは、「001101」(=「13」)であるので、入賞及びリプレイ条件装置情報(_NB_CNDINF_N)は、「01001101B」となる。
そして、「N」遊技目において、条件装置出力時間値が「24」〜「13」である間は、図68のステップS576で「Yes」となり、ステップS575でセットした役物条件装置情報を出力する。次に、条件装置出力時間値が「12」〜「1」である間は、図68のステップS576で「No」となり、ステップS577でセットした入賞及びリプレイ条件装置情報を出力する。さらに次に、条件装置出力時間値が「0」になると、図68のステップS574で「No」となるので、ステップS573クリアした条件装置情報(「00000000B」)を出力する。
そして、次遊技が開始され、「N+1」遊技目で役の抽選が行われ、当選番号「1」となった場合において、条件装置出力時間値が「24」〜「13」である間は、「N」遊技目と同様に、「10000001B」を出力し、条件装置出力時間値が「12」〜「1」である間は、「01000001B」を出力する。これにより、図70に示す信号波形となる。
ここで、「N」遊技目の役物条件装置情報の出力が開始された時(条件装置出力時間値が「24」のとき)から、「N+1」遊技目の役物条件装置情報の出力が開始された時(条件装置出力時間値が「24」のとき)までの間は、遊技が最短時間で消化されたときは、最小遊技時間、すなわち4.1秒(「1836」割込み)となる。したがって、上述したように、試験機側では、役物条件装置情報の出力が開始された時から、次遊技での役物条件装置情報の出力が開始された時までの時間を計測し、4.1秒を経過していれば、最小遊技時間を担保しているスロットマシン10であると判断することができる。
次に、サブ制御基板80側の情報処理について説明する。
図71は、サブ制御基板80のプログラム開始処理及びサブ側のメイン処理を示すフローチャートである。
図71において、ステップS700で電源が投入され、サブ制御基板80のプログラムが開始されると、先ず、ステップS701において、サブ制御基板80は、割込み処理を禁止する。次のステップS702では、サブ制御基板80は、各種初期化処理を実行する。初期化処理としては、サブCPU83やRWM81の初期化が挙げられる。
なお、ここで初期化するRWM81は、サブCPU83に内蔵されたRWM(レジスタ)ではなく、サブ制御基板80上に搭載されるととともにMPU(サブCPU83)の外部に設けられたRWMを指す。そして、以下の説明においてRWM81というときは、この外部RWMを示す。また、ステップS702における当該RWM81の初期化は、電源断によって初期化すべき範囲の初期化(電源断で消去すべきデータの消去)を意味する。
次のステップS703では、サブ制御基板80は、チェックサムが一致するか否かを判断する。この処理は、電源投入時にチェックサムを算出し、電源断時にRWM81に記憶していたチェックサムと対比することで、一致するか否かを判断する。この処理の詳細は説明を省略するが、メイン制御基板60における図28のステップS14〜S15、及び図66のステップS654〜S656と同様の処理である。
チェックサムが一致すると判断したときはステップS704に進み、チェックサムが一致しないと判断したときはステップS705に進む。
ステップS704では、サブ制御基板80側のメイン処理、すなわちステップS710における「1コマンド処理」中に電源断が発生したか否かを判断する。そして、1コマンド処理中に電源断が発生したと判断したとき(ステップS704で「Yes」のとき)は、本フローチャートによる処理を終了し、電源断前に実行していた1コマンド処理中のプログラムに戻る。これに対し、1コマンド処理中に電源断が発生していないと判断したときはステップS706に進む。
一方、ステップS703からステップS705に進むと、RWM81をクリアする。ここでのRWM81のクリアは、ステップS702で初期化の対象となっていなかったデータについてもクリアすることを意味する。たとえば、RWM81には、電源断ごとに消去(クリア)するデータと、電源断のみでは消去しないデータとが記憶される。電源断のみでは消去しないデータとしては、たとえば演出ステージ等が挙げられる。
ステップS704又はステップS705からステップS706に進むと、サブ制御基板80側のメイン処理が開始される。
まず、ステップS706では、サブ制御基板80は、実装されているウォッチドッグタイマをクリアする。次にステップS707に進み、ウォッチドッグタイマの動作処理(計測)を開始する。ウォッチドッグタイマは、サブCPU83の暴走判定用のパルスを出力するとともに、このパルスの出力数をカウントし続ける。そして、後述するようにウォッチドッグタイマがクリアされるまでにパルス数のカウント値(時間値)が所定値(たとえば「500ms」)となったときは、サブCPU83が暴走していると判定し、サブ制御基板80の処理を電源投入時の処理に移行する。
次に、ステップS708に進み、(ステップS701で禁止していた)割込み処理を許可する。このステップS708において割込み処理が許可されると、割込み処理が行われる。
次のステップS709では、16ms毎処理(1フレーム毎処理)を行う。サブ制御基板80で実行する処理は、16ms毎に1回行う処理(16ms毎処理、又は1フレーム処理)と、16ms以内で行う1コマンド処理とを有する。そして、ステップS709では、これらの処理のうち、16ms毎処理を実行する。
16ms毎処理としては、画像表示装置23(液晶ディスプレイ)が正常に動作しているか否かの監視、スピーカ22の音源アンプが正常に動作しているか否かの監視、電源投入時間の計測、プッシュボタン24や十字キー25の操作に基づくレベルデータや立ち上がりデータ等の生成、エラー時間やリール31の駆動時間の計測等を実行する。
次に、ステップS710に進み、1コマンド処理(一命令に対する処理)を実行する。1コマンド処理としては、たとえば演出抽選や、メイン制御基板60からのコマンドを受信し、エラー報知等を行うことが挙げられる。
さらに、1コマンド処理として、系統の異なるコマンド(たとえば、第1系統コマンドと第2系統コマンド)を受信した場合には、それぞれのコマンドに対して1コマンド処理を実行する。
たとえば、第1系統コマンドとして、遊技の進行をスムーズに行うために必要なコマンド(役抽選結果を示すコマンド、エラー番号のコマンド、設定変更の開始のコマンド等)とし、第2系統コマンドとして、遊技の進行に直接影響を与えないコマンド(役抽選を行わないときのスタートスイッチ41が操作されたコマンド、リール31の停止制御を行わないときのストップスイッチ42が操作されたコマンド等の入力ポートに入力された情報)としている。
そのような場合、1コマンド処理では、第1系統コマンド→第2系統コマンドのように一連の順序でコマンド処理を実行している。
なお、この1コマンド処理中に電断が生じたときは、完全復帰処理を行う。完全復帰処理では、1コマンド処理中の電断が生じたタイミングから復帰する。
一方、1コマンド処理中以外で電断が生じたときは、通常復帰処理を行う。通常復帰処理では、サブCPU83及びRWM81を初期化し、サブ処理の最初から処理を実行する。
1コマンド処理の実行後はステップS711に進み、16msを経過したか否かを判断する。16msを経過したか否かの判断は、本実施形態では、割込み処理ごと(1msごと)に「+1」するカウンタを設け、このカウンタ値が「+16」となったか否かを判断することにより行う。
16msを経過していないと判断したときはステップS710に戻り、1コマンド処理を継続する。一方、ステップS711において16msを経過したと判断したときは、16msをカウントするカウンタ値をリセットし、ステップS706に戻り、ステップS707で開始したウォッチドッグタイマをクリアする。したがって、この時点で、カウントしていたウォッチドッグタイマのパルス数(時間)がクリアされる。
なお、図71に示すように、ウォッチドッグタイマは、16msごとにクリアされるが、一定時間(たとえば500ms)クリアされなかったときは、ウォッチドッグタイマ割込み処理を発生させ、ステップS701に戻るように制御する。
図72は、サブ制御基板80における設定変更開始処理を示すフローチャートである。メイン制御基板60において設定値の変更が開始されると、図29の設定変更処理(M_RANK_SET)において、ステップS807で設定変更開始時の出力要求がセットされ、次のステップS808で制御コマンドセット1が実行される。
そして、メイン制御基板60による割込み処理(図64)において、ステップS613の制御コマンド送信(図67)で、設定変更が開始された旨の制御コマンドが送信されるので、サブ制御基板80は、この制御コマンドを受信すると、メイン制御基板60側で設定値の変更が開始されたと判断する。これを受けて、図72の処理を開始する。
なお、サブ制御基板80は、メイン制御基板60からの制御コマンドを取りこぼすことを防止するため、上述した1ms割込み処理やその他の割込み処理よりも優先度の高い割込み処理(NMIでも良い)により制御コマンド受信処理を実行し、受信した制御コマンドは、サブ制御基板80の所定の記憶領域を有するRWM81(チップ内の回路でも良い)に順次記憶していく。
この記憶領域は、設定変更処理においても消去されない記憶領域である。これにより、サブ制御基板80の初期化時にメイン制御基板60から制御コマンドが送信された場合であっても、当該コマンドに基づく処理が正常に実行されるようになっている。
設定変更開始処理は、図71のステップS710(1コマンド処理)内において行われる処理である。
図72において、ステップS750で設定変更処理が開始されると、ステップS751で、割込み処理を禁止する。なお、メイン制御基板60からサブ制御基板80に送信される制御コマンドの割込み(2.235msごと)は禁止されない。また、制御コマンド受信処理は、制御コマンドの取りこぼし防止のため、割込み禁止としない。
たとえば、1ms割込みによりプッシュボタン25の入力ポートを検知し、検知結果をRWM81に記憶しておき、16回(ループ回数)のすべての割込みでプッシュボタン25がオンであることを検知したときは、16ms毎処理(1フレーム処理;ステップS709)でプッシュボタン25が操作されたと判断する仕様が考えられる。この場合、初期化中に1ms割込みが実行されてしまうと、プッシュボタン25の入力に関するRWM81の記憶領域のデータが更新されてしまう可能性がある。つまり、RWM81のデータの初期化中であるにもかかわらず、プッシュボタン25の操作に応じて新たなデータに更新されてしまう可能性がある。そこで、初期化中は、割込み処理を禁止することにより、RWM81の記憶領域のデータ更新をなくすことができる。
次のステップS752では、サブ制御基板80は、ウォッチドッグタイマを停止する。この処理は、その後に実行するRWM81の初期化処理中に、ウォッチドッグタイマのクリア処理が実行されてしまわないようにするためである。いいかえれば、暴走と判断してしまうと、初期化処理が途中で中断してしまうからである。
次にステップS753に進み、サブ制御基板80は、RWM81の初期化を開始するアドレスを指定する。ここでは、初期化を行うアドレスの範囲を指定する。次にステップS754に進んで、当該範囲の初期化処理を実行する。
ステップS755では、RWM81の初期化処理が終了したか否かを判断する。初期化処理が終了していないと判断したときは初期化処理を継続し、初期化処理を終了したと判断したときはステップS756に進み、初期化処理を未だ終了していないと判断したときはステップS754に戻って初期化処理を継続する。
ステップS756では、ステップS752で停止したウォッチドッグタイマの停止を解除する。停止の解除とは、ウォッチドッグタイマが停止した途中から計時を開始することを採用する場合と、ウォッチドッグタイマが停止した途中からの計時ではなく、初期値から計時を開始する場合とが考えられる。
次のステップS757では、ステップS751で禁止した割込みを許可する。そして本フローチャートによる処理を終了する。
以上のようにして、サブ制御基板80は、メイン制御基板60から設定変更開始の制御コマンドを受信したときは、サブ制御基板80側において、RWM81の所定範囲の初期化を実行する。
また、上記処理において、ウォッチドッグタイマを停止させてからRWM81の初期化処理に移行するので、初期化処理中にウォッチドッグタイマによる再起動処理が実行しないようにすることができる。
なお、本実施形態では、設定変更開始処理時には、ステップS752においてウォッチドッグタイマを停止したが、これに代えて、ウォッチドッグタイマをクリアする処理とすることも可能である。
また、メイン制御基板60は、図29中、ステップS809及びS810の2バイト時間待ち処理により、サブ制御基板80側で初期化処理(図72のステップS754)が終了するまで待つことができる。これにより、サブ制御基板80が未だ初期化中であるにもかかわらず、メイン制御基板60側で初期化後の処理が進行してしまうことを避けることができる。したがって、サブ制御基板80における設定変更時の初期化終了がメイン制御基板60における設定変更時の初期化終了より遅れる場合であっても、両者の制御処理を同期させることができる。
<第2実施形態>
第2実施形態は、第1実施形態に対し、2バイト時間待ち処理(R_2BYTE_WAIT )を実行する場合に、BCレジスタに記憶する値が異なる。
第2実施形態について、図29の設定変更処理を例に挙げて説明する。
図29のステップS809では、メイン制御基板60は、設定変更開始時のための待機時間をセットする。上述したように、第1実施形態では、設定変更開始時の待機時間として、割込み回数「224」(約500ms)をセットしたが、第2実施形態では、さらに、その時点における割込みカウンタ(_CT_INTR)の値(「0」〜「65535」のいずれかの値)を取得する。そして、待機時間である割込み回数「224」と、割込みカウンタ値とを加算した値を、BCレジスタにセットする。たとえば、割込みカウンタ値が「1000」であるとき、「224+1000=1224」となる。よって、Bレジスタ値=「00000100B」、Cレジスタ値=「11001000B」となる。
もう1つ例を挙げて説明すると、たとえば図38のステップS145において、1枚自動投入時の待機時間として、割込み回数「46」をセットし、この値に、その時点における割込みカウンタ(_CT_INTR)の値を加算するので、たとえば割込みカウンタ値が「50」であるとき、「46+50=96」となる。よって、Bレジスタ値=「00000000B」、Cレジスタ値=「01100000B」となる。
図73は、第2実施形態における待機時間セット処理を示すフローチャートである。第2実施形態では、第1実施形態における待機時間セット処理(図29のステップS809、図36のステップS70、図38のステップS136、図38のステップS145、図50のステップS300、図60のステップS470、図63のステップS567)は、図73のフローチャートに置き換える。
また、第2実施形態では、待機時間セット処理の次に続く「2バイト時間待ち処理」は、後述する図74の処理(ステップS31’)に置き換える。
図73において、ステップS901で待機時間セット処理が開始されると、ステップS902で、待機時間を取得する。たとえば、上記のステップS809の例では、「224」をAレジスタに記憶する処理に相当する。
次のステップS903では、RWM61の割込みカウンタ(_CT_INTR)の値を取得し、その値をたとえばDレジスタに記憶する。
次にステップS904に進み、Aレジスタ値とDレジスタ値とを加算し、その演算結果をBCレジスタに記憶する。上記例に示すように、たとえば割込みカウンタ値が「1000」であるときは、加算による演算結果は「1224」となり、その値をBCレジスタに記憶する。そして本フローチャートによる処理を終了する。
図74は、第2実施形態における2バイト時間待ち処理を示すフローチャートである。図73の処理後、図74のステップS31’に進む。
ステップS911では、割込みカウンタ値を取得する。この処理は、図33のステップS41と同様であり、割込みカウンタ値をAレジスタに記憶する処理である。次にステップS912に進み、ステップS911で取得した割込みカウンタ値(Aレジスタ値)がBCレジスタ値以上であるか否かを判断する。この処理は、たとえば割込みカウンタ値(Aレジスタ値)からBCレジスタ値を減算し、ゼロフラグ=「1」又はキャリーフラグ=「1」であるときは、「Yes」と判断し、ゼロフラグ≠「1」かつキャリーフラグ≠「1」であるときは「No」と判断する。
ステップS912で「Yes」であるときは本フローチャートによる処理を終了し、「No」であるときはステップS32に進む。ステップS32は、割込み待ち処理(C_INTR_WAIT ;図33)(一割込み待ち)を実行し、一割込み待ち後、ステップS911に戻る。
なお、図74においては、ステップS32の割込み待ち処理を実行せずに、ステップS912でNOと判断された場合には、S911に戻るような処理であっても良い。換言すると、ステップS911とステップS912とを循環することにより待機処理を実現してもよい。
<第3実施形態>
第1実施形態では、作動状態フラグ(_FL_ACTION )を設けることで、特別役及びリプレイの作動状態を管理した。換言すると、試験信号の出力に対応するRWMアドレスを設けていた。
これに対し、特別役の種類が多いときは、特別役の作動状態を管理する特別役作動状態フラグを設けることが挙げられる。
図75は、特別役作動状態フラグの例を示す図である。図75の特別役作動状態フラグは、各特別役の作動状態を、「0」番から「7」番までの番号で管理するものである。また、各番号に対応する情報は、それぞれ当該番号を2進数の数値で8ビット表示したものである。
図75の特別役作動状態フラグにおいて、「1」番のRB作動は、単体で当選するレギュラーボーナスである。また、「4」番のSB作動は、単体で当選するシングルボーナスである。たとえば、特別役非内部中においてSBに当選すると、当該遊技で「PB=1」で当選したSBが入賞し、かつ、次遊技の1遊技でSB遊技を行い、SB遊技の終了後(SB遊技は1遊技で終了)、特別役非内部中に戻るように制御される。
さらにまた、「5」番のCB作動は、単体で当選するチャレンジボーナスである。たとえば、特別役非内部中においてCBに当選すると、当該遊技で「PB=1」で当選したCBが入賞し、かつ、次遊技の1遊技でCB遊技を行い、CB遊技の終了後(CB遊技は1遊技で終了)、特別役非内部中に戻るように制御される。このCB遊技は、2BB遊技中のCB連続作動時と同様に、特定のリール31(たとえば右リール31)のみ、75ms停止となり、かつ、当該遊技では全小役の当選フラグをオンにし、いずれかの小役を入賞可能に制御する。
特別役作動状態フラグは、特別役に当選していないときは、「0」番となる。なお、第3実施形態において、1BB遊技中のRB作動については第1実施形態と同一とする。
図75の例1)に示すように、ボーナス非作動時から1BBが入賞し、1BB遊技が開始されると、1BB作動状態となり、特別役作動状態フラグの番号は、「0」番から「3」番に変更される。そして、RB遊技が2遊技実行され、当該遊技の終了時にRBの作動状態フラグを「0」にするときは、番号を「3」番から「2」番に変更(「−1」)する。
また、1BB作動中は、毎遊技終了時に、現在の番号の8ビット情報中、下2桁が「10」であるか否かを判断する。RBの作動中は「3」番であるので、「00000011B」となり、下2桁は「11」である。このように、下2桁が「11」であるときは、何も行わない。これに対し、RBの作動状態フラグを「0」にし、番号を「3」番から「2」番に変更すると、その番号の情報は「00000010B」となり、下2桁が「10」となる。この場合には、次遊技の開始時に、番号を「+1」するように制御する。これにより、次遊技の開始時には、番号が「2」番から「3」番に変更され、再度、「1BB+RB」作動を示す情報となる。
さらにまた、1BBの作動終了時には、番号を「3」番から「0」番に変更する。
また、図75の例2)において、ボーナス非作動時から2BBが入賞し、2BB遊技が開始されると、2BB作動状態となり、特別役作動状態フラグの番号は、「0」番から「7」番に変更される。そして、2BB遊技では、毎遊技の終了時に、CBの作動状態フラグを「0」にするが、このとき、特別役作動状態フラグの番号を「7」番から「6」番に変更(「−1」)する。毎遊技の終了時は、上記と同様に、その番号の8ビット情報中、下2桁が「10」であるか否かを判断する。CBの作動が終了して「6」番になると、その情報は「00000110B」、すなわち下2桁が「10」となる。よって、2BB作動中は、毎遊技、遊技終了時に特別役作動状態フラグの番号が「7」番から「6」番に変更され、その情報の下2桁が「10」となる。よって、この場合には上記と同様に、次遊技の開始時に、番号を「+1」するように制御する。これにより、次遊技の開始時には、特別役作動状態フラグの番号が「6」番から「7」番に変更され、再度、「2BB+CB」作動を示す情報となる。
なお、2BB遊技中は、毎遊技、遊技開始時にCBの作動状態フラグが「1」となり、遊技終了時に「0」となるが、「0」になってから「1」にまるまでは、第1実施形態のRBと同様に、たとえば「5」割込みの待ち処理を実行することが挙げられる。
さらにまた、2BBの作動終了時は、番号を「7」番から「0」番に変更する。
また、図76に示す例3)〜例5)は、それぞれ、RB、SB、CBが単独当選(かつ入賞)し、RB遊技、SB遊技、CB遊技に移行したときの特別役作動状態フラグの例を示している。
例3)に示すように、RB(単独)が作動すると、特別役作動状態フラグの番号を「0」番から「1」番に変更する。これにより、RBの単独作動状態を示す情報となる。そして、RB作動終了時は、特別役作動状態フラグの番号を「1」番から「0」番に変更する。
また、例4)に示すように、SB作動時は、特別役作動状態フラグの番号を「0」番から「4」番に変更する。これにより、SBの作動状態を示す情報となる。そして、SBの作動終了時は、特別役作動状態フラグの番号を「4」番から「0」番に変更する。
さらにまた、例5)に示すように、CB(単独)作動時は、特別役作動状態フラグの番号を「0」番から「5」番に変更する。これにより、CBの単独作動状態を示す情報となる。
そして、CBの作動終了時は、特別役作動状態フラグの番号を「5」番から「0」番に変更する。
以上の特別役作動状態フラグにおいて、番号が「0」番であるか否かによって、特別役作動時と非作動時とを判断することができる。さらに、どの番号であるかを判断することによって、どの特別役が作動状態であるかを判断することができる。
なお、このときに試験機に試験信号を送信するときは、特別役作動状態フラグに記憶されている情報をそのまま試験信号として送信してもよく、あるいは、特別役作動状態フラグに記憶されている情報に基づいて加工・合成した情報を試験信号として送信してもよい。たとえば、特別役作動状態フラグとリプレイ・小役作動状態フラグ(リプレイや小役の作動を管理しているフラグ)が複数のRWM61に記憶されているときに、これらの情報に基づいて試験信号を生成し、試験機に送信してもよい。
<第4実施形態>
図77は、第4実施形態における設定変更処理(M_RANK_SET)を示すフローチャートであり、第1実施形態の図29に対応する図である。
第1実施形態では、図29に示すように、設定変更スイッチ53の立ち上がりデータに基づいて設定値を更新した後(ステップS816)、再度、ステップS815の判断が実行される前に、ステップS814の割込み待ち処理(C_INTR_WAIT )を実行することで、設定変更スイッチ53の立ち上がりデータがクリアされるようにした。
これに対し、第4実施形態では、図29のステップS814に相当する割込み待ち処理を設けていない。
一方、第4実施形態では、ステップS816における設定値更新処理の実行後、ステップS822を設け、設定変更スイッチ53の立ち上がりデータをクリアする処理を実行している。この処理は、入力ポート1の立ち上がりデータ中、D4ビットを「0」にする処理である。なお、ステップS815の後、ステップS822の処理を実行してからステップS816の設定値更新処理を行ってもよい。
第4実施形態では、設定値更新処理の後、ステップS822を経由してからステップS817に進み、ステップS817で「No」と判断されて再度ステップS815に進んだときは、設定変更スイッチの立ち上がりデータは既にクリアされているので、このステップS815において再度「Yes」と判断されることはない。ステップS815で再度「Yes」と判断されるためには、ステップS822の処理後に実行される割込み処理において、設定変更スイッチ53の立ち上がりデータが「1」になった(いいかえれば、割込み処理により、設定変更スイッチ53の立ち上がりデータ「1」が生成された)後である。
第4実施形態のように構成すれば、割込み待ち処理を設けることなく、設定変更スイッチ53の立ち上がりデータを確実にクリアし、操作者が意図しない設定値更新を防止することができる。
なお、第4実施形態において、入力ポート1の立ち上がりデータ中、D4ビット(設定変更スイッチ53信号)のみをクリアするのではなく、アドレス「F00A」の1バイトデータの全ビットをクリアしてもよい。ステップS822のタイミングで、入力ポート1の立ち上がりデータの全ビットをクリアしても特段問題が生じないのであれば、全ビットクリア処理を実行することも可能である。
<第5実施形態>
図78は、第5実施形態における入賞によるメダル払出し処理(MS_WIN_PAY)を示すフローチャートであり、第1実施形態の図60に対応する図である。第5実施形態では、第1実施形態に対し、以下の点が異なる。
(1)第5実施形態では、メダル払出しに伴い、メダル払出し枚数データ(アドレス「F06C」の「_NB_PAY_MEDAL 」)の値を更新(減算)しない。当該遊技においてメダル払出し枚数データが更新された(図59のステップS593)後、次に更新されるのは、次回遊技におけるメダル払出し枚数データの更新時(図59のステップS593)である。
(2)第1実施形態におけるメダル払出し枚数データバッファ(アドレス「F06D」の「_BF_PAY_MEDAL 」)を設けない。このため、第5実施形態では、図59のメダル払出し枚数更新処理においては、ステップS593を有さない。
(3)第5実施形態では、図63のRB作動管理(M_RB_CTL)において、ステップS563では、メダル払出し枚数データ(アドレス「F06C」の「_NB_PAY_MEDAL 」)の値が「0」であるか否かを判断する(メダル払出し枚数データに基づいて、当該遊技で小役が入賞したか否かを判断する)。
図78において、ステップS451〜S466までの処理は、図60(第1実施形態)と同様であるので、説明を省略する。
ステップS466からステップS479に進むと、メダル払出し枚数データの値をXレジスタ(単に「レジスタ」とも称し、具体的には、Aレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、又はLレジスタのうちのいずれかのレジスタを指す。)に記憶する。ここでは、図78のステップS480〜S482の処理を行うためにXレジスタを用いるものであり、特に、ステップS453においてメダル払出し枚数データの値をDレジスタに記憶しているので、ステップS480〜S482の処理を実行している間に他の処理でDレジスタを用いなければ、ステップS479では、XレジスタとしてDレジスタを用いることも可能である。
次のステップS480では、Xレジスタ値が「0」であるか否か判断する。Xレジスタ値が「0」であるときは、メダル払出し枚数データが「0」であることを意味するので、本フローチャートによる処理を終了する。これに対し、ステップS480においてXレジスタ値が「0」でないと判断したときは、メダル払出し枚数データが「1」以上であることを意味するので、ステップS468以降の処理に進んでメダル払出し処理を実行する。
ステップS468からステップS474までは、図60の第1実施形態と同様であるので説明を省略する。
ステップS474の後、ステップS481では、Xレジスタ値を「1」減算する。たとえば、Xレジスタ値が「2」であれば、「1」に更新する。次にステップS482に進み、ステップS481の更新後のXレジスタ値が「0」であるか否かを判断する。Xレジスタ値が「0」であるときは、メダルの払出しが終了したことを意味するので、ステップS477に進む。ステップS477及びS478は、図60(第1実施形態)と同様である。
これに対し、ステップS482でXレジスタ値が「0」でないと判断したときは、払い出すべきメダルが未だ残っている状態であるので、ステップS468に戻って払出し処理を継続する。
以上のようにして、第5実施形態では、メダル払出し処理を行うときに、メダル払出し枚数データをレジスタに格納して、レジスタ内で減算処理を行うので、第1実施形態に記載した効果(小役が入賞したか否かの特別な処理を要することなく、小役入賞時の払出し枚数の記憶処理を利用して、小役の入賞の有無を判断すること)に加え、メダル払出し処理ごとにRWM61(アドレス「F06C」)に記憶したメダル払出し枚数データ値を減算するよりも高速に処理でき、かつプログラム容量を削減することができる。
さらに、メダル払出し枚数データバッファ(_BF_PAY_MEDAL )の記憶領域を不要にすることができるので、RWM61の記憶容量を削減することができる。
<第5実施形態の変形例>
第5実施形態では、メダル払出し枚数データをXレジスタに記憶し、メダル払出し処理ごとにXレジスタ値を減算し、Xレジスタ値が「0」となったときにメダル払出し処理を終了した。そして、RB作動管理中、ステップS563では、アドレス「F06C」の「_NB_PAY_MEDAL 」の値が「0」であるか否かを判断した。
これに対し、第5実施形態の変形例では、第5実施形態と同様に、ステップS479を設け、メダル払出し枚数データをXレジスタに記憶する。
一方、ステップS479の後は、第1実施形態(図60)と同様に、ステップS467の処理、すなわちアドレス「F06C」のメダル払出し枚数データ(_NB_PAY_MEDAL )が「0」であるか否かを判断し、「0」でないときはステップS468以降のメダル払出し処理を実行するとともに、メダル払出し処理ごとにメダル払出し枚数データ(_NB_PAY_MEDAL )を減算する。
また、図63のRB作動管理では、ステップS563において、Xレジスタ値が「0」であるか否かを判断し、「0」でないときはステップS564に進んでRB入賞回数の更新処理を行う。このように、第5実施形態の変形例では、Xレジスタ値を、RB作動管理中、ステップS563における判断に用いる。
また、第5実施形態と同様に、ステップS453においてメダル払出し枚数データ値をDレジスタに記憶しているので、その後、RB作動管理のステップS563における判断までの間にDレジスタが他の処理で用いられることなく、ステップS563の処理時点まで、ステップS453で記憶したDレジスタ値が維持されるのであれば、XレジスタとしてDレジスタを用い、RB作動管理のステップS563では、Dレジスタ値が「0」であるか否かを判断してもよい。
<第6実施形態>
図79は、第6実施形態における入賞によるメダル払出し処理(MS_WIN_PAY)を示すフローチャートであり、第1実施形態の図60に対応する図である。
第5実施形態では、図79において、ステップS483の処理のみが第1実施形態と異なる。
また、第6実施形態では、RWM61のアドレス「F06D」のメダル払出し枚数データバッファ(_BF_PAY_MEDAL )は設けられていない。
上記以外は、第1実施形態と同一である。
第6実施形態では、ステップS467においてメダル払出し枚数データ(アドレス「F06C」の「_NB_PAY_MEDAL 」)が「0」でない(すなわち、払い出すべきメダルがある)と判断されると、ステップS483に進み、RB作動時入賞処理を実行する。このRB作動時入賞処理の実行後、ステップS468に進む。
図79では、第1実施形態の図60と同様に、実際のメダル払出し処理は、ステップS468以降の処理で行われる。そして、実際のメダル払出し処理が実行されると、メダル払出し処理終了時には、メダル払出し枚数データは「0」に更新される。したがって、メダル払出し処理が実行される前に、メダル払出し枚数データが「0」であるか否かを判断している。また、ステップS467において、メダル払出し枚数データが「0」でないということは、メダル払出しを有すること、すなわち当該遊技では小役が入賞していることを意味するので、この場合には、RB作動時の入賞回数を更新するようにしている。
図80は、ステップS483におけるRB作動時入賞処理を示すフローチャートである。まず、ステップS484では、RB作動時であるか否かを判断する。この処理は、作動状態フラグ(_FL_ACTION)のD4ビットであるRB作動状態フラグが「0」であるか否かを判断する処理である。そして、「0」でない(ゼロフラグ≠1)と判断したとき(RB作動時であると判断したとき)はステップS485に進み、「0」であると判断したときは本フローチャートによる処理を終了する。
ステップS485では、RWM61のアドレス「F074」のRB作動時の入賞回数(_CT_BONUS_WIN )から「1」を減算する処理を行う。そして、本フローチャートによる処理を終了する。
図81は、第6実施形態におけるRB作動管理(M_RB_CTL)を示すフローチャートであり、第1実施形態の図63に対応する図である。
第6実施形態では、上述したように、RB作動時入賞処理によりRB作動時の入賞回数を更新する。したがって、第1実施形態のように、RB作動管理(M_RB_CTL)の処理内ではRB作動時の入賞回数の更新処理は行わない。
図81において、ステップS562で、RB作動時の遊技回数が「0」でないと判断したときはステップS569に進む。ステップS569では、RB作動時の入賞回数(_CT_BONUS_WIN )が「0」であるか否かを判断する。ここでの判断は、図80の処理で更新された後である。そして、RB作動時の入賞回数が「0」であると判断したときはステップS566以降の処理を実行し、「0」でないと判断したときは本フローチャートによる処理を終了する。
以上のように、第6実施形態では、図79において、実際のメダル払出し処理(ステップS468以降の処理)を実行する前に、メダル払出し枚数データ(_NB_PAY_MEDAL )が「0」であるか否かを判断する。そして、「0」でないと判断したときは、実際のメダル払出し処理(ステップS468以降の処理)を実行する前に、RB作動時入賞処理により、RB作動時の入賞回数を更新する。これにより、小役の入賞時に、メダル払出し枚数データが「0」に更新される前に、RB作動時の入賞回数を更新することができる。よって、第6実施形態では、第1実施形態に記載した効果(小役が入賞したか否かの特別な処理を要することなく、小役入賞時の払出し枚数の記憶処理を利用して、小役の入賞の有無を判断すること)に加え、第1実施形態のようにメダル払出し枚数データバッファを有さなくても、メダル払出し枚数データのみで、メダル払出し処理とRB作動時の入賞回数の更新処理とを実行することができる。
<第7実施形態>
図82は、第7実施形態におけるメイン処理(M_MAIN)を示すフローチャートであり、第1実施形態の図36に対応する図である。
第1実施形態では、図36中、ステップS59及びS60、並びに図57のステップS439に示すように、スタートスイッチ41の操作受付け時に設定値が正常範囲内であるか否かを判断し、正常範囲内であるときは遊技を進行するが、正常範囲内でないと判断したときは、その時点で遊技の進行を中止し、復帰不可能エラーとした。
ここで、スタートスイッチ41の操作受付け時に限らず、たとえば全停時(第3リール31の停止時、又は第3ストップスイッチ42の立ち上がりデータ若しくは立ち下がりデータの検出時等)に、出玉に影響を与える抽選を行うことが考えられる。ここで、「出玉に影響を与える抽選」とは、AT抽選、ステージ(高確/低確等)移行抽選が挙げられる。
そこで、このような抽選を行う場合には、全停時にも、図57のステップS439に示すように、設定値が正常範囲内であるか否かを判断した後に抽選を実行することが望ましい。
図82において、ステップS67で表示エラーが発生していないと判断されるとステップS77に進み、ステップS439と同様に設定値が正常範囲内であるか否かを判断する。正常範囲内であると判断したときはステップS78に進み、正常範囲内でないと判断したときはステップS76に進んで復帰不可能エラー処理を実行する。
ステップS78では、上述した全停時の抽選を有するときは、当該抽選処理を実行する。たとえば図22に示したようなチェリー等のレア小役当選時に、AT抽選等を実行することが挙げられる。そして、ステップS68に進む。
なお、図82の例では、全リール停止後、表示判定後、かつ表示エラー発生なし時に全停時抽選を行うようにしたが、これに限らず、全リール停止後であって表示判定前、表示エラーの有無の判断前に行うようにしてもよく、あるいは、全リール停止後であるか否かにかかわらず、第3ストップスイッチの立ち上がりデータ検出時、又は立ち下がりデータの検出時に全停時抽選を行ってもよい。いずれにしても、当該抽選を行う場合には、当該抽選を行う直前に、設定値が正常範囲内であるか否かを判断する。
以上、本発明の一実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、たとえば、以下のような種々の変形が可能である。
(1)フリーズ
スロットマシン10において、フリーズを実行することが可能である。
ここで「フリーズ」とは、遊技の進行を、所定期間一時停止状態にして、遅延させることであり、たとえば、メダルの受付け、ベットスイッチ40の操作の受付け、スタートスイッチ41、ストップスイッチ42の操作の受付け(リール31の停止操作の受付け)に関する機能を一時停止状態にすることである。このようなフリーズを実行するとともに、このフリーズ期間中に、各種の演出を出力することが挙げられる。
さらに、フリーズの実行中に、リール31を用いたリール演出(リール31を小刻みに震えさせる、リール31を逆回転させた後、所定位置で停止させる等)を行うことも可能である。
(2)上記実施形態では、遊技状態(RT)の移行を行い、RT2に移行したときにARTを実行した。
これに対し、以下のように遊技状態を制御することも可能である。
まず、当選を持ち越すMB(特別役)を設け、MBに当選したときであってもMBが入賞しにくいように制御する。たとえば、MBは、押し順が右中左であることを条件として入賞可能とする。これにより、遊技者がMB当選時に逆押しをしない限り、当該遊技でMBが入賞することはない。また、MB内部中は、リプレイと小役の当選を用いて、非当選となる確率を極めて低くなるように設定すれば、MB内部中においてMBの入賞機会は極めて低くなるので、MBが入賞しない状態、すなわちMB内部中遊技がずっと継続する確率を高くすることができる。
そして、MB内部中遊技において、メイン制御手段60側の内部状態として非AT、AT準備中、及びATを設け、非ATからATへの移行は、RT(遊技状態)移行を伴わないようにする。
さらに、非ATは、ATに当選する確率が異なる低確率、通常確率、及び高確率を備える。これらの低確率、通常確率、高確率中にATに当選すると、ATに当選しているがATの開始前の遊技期間である前兆に移行する。この前兆中において、ATに当選していることが遊技者に報知される。
また、前兆の終了後、AT開始時までの間の期間は、AT準備中となる。さらにまた、ATは、ATの遊技回数が上乗せされる期待値が異なる通常確率と高確率とを備える。
これらの内部状態の移行は、当該遊技における当選役によって行われる。また、一つの内部状態から他の内部状態に移行するときは、前記一つの内部状態における遊技終了時(全リール31が停止して当該遊技の遊技結果を表示した時)に行われる。
本実施形態では、内部状態のうち、前兆に移行することに決定したときが、ATの当選に相当する。
以上のような遊技状態及び内部状態からなるものであってもよい。
(3)割込み周期は、2.235msとしたが、この値に限られるものではない。たとえば1ms等、種々の時間が挙げられる。そして、本実施形態のように、デジットの点灯時間を一割込み時間に設定したときには、1つのデジットの点灯時間は、割込み時間に依存する。さらに、2バイト時間待ち処理は、割込みカウンタを用いているので、割込み周期をどの程度の時間に設定するかによって、待機時間(BCレジスタに記憶する値)も変わってくる。
(4)本実施形態では、2バイト時間待ち処理を実行するときに、BCレジスタに待機時間を記憶した。しかし、どのレジスタに待機時間を記憶するかは任意であり、たとえばDEレジスタ、HLレジスタに設定してもよい。
さらに、本実施形態では、「0」〜「255」の待機時間を記憶する場合にも、Bレジスタには「00000000B」を記憶した。しかし、これに限らず、待機時間が1バイト(「255」以下)であるときは、Bレジスタのみ又はCレジスタのみを使用してもよい。
(5)本実施形態では、RB作動時の遊技回数上限値を「2」、RB作動時の入賞回数上限値を「2」に設定した。しかし、これに限らず、現行規則に沿って、RB作動時の遊技回数上限値は「12」以下、RB作動時の入賞回数上限値は「8」以下であれば、いずれに設定してもよい。
(6)本実施形態では、割込みカウンタ(_CT_INTR)を用いて2バイト時間待ち処理(割込み待ち処理)を実行した。しかし、これに限らず、割込みごとに変化するカウンタであれば、必ずしも割込みカウンタに限らず、他のカウンタを用いることも可能である。
たとえば、AT抽選等で用いる乱数データが格納されている乱数データの値を用い、この乱数データが変化したことに基づいて割込みが実行された(カウントアップ又はダウンする)と判断してもよい。この場合、図33において、ステップS41では、「乱数データを取得」する。次のステップS42では、「乱数データ値が変化したか否か」を判断し、「Yes」と判断したときは本フローチャートによる処理を終了するように制御すればよい。
(7)図75で説明したように、特別役として、1BB以外に、単独のRB(レギュラーボーナス、第一種特別役物)、CB(第二種特別役物)、SB(シングルボーナス、普通役物)を設けたとき、その特別役が入賞したときに、図36のステップS70及びS71に示すように、2バイト時間待ち処理を実行することが可能である。
これらの特別役入賞時には、2バイト時間待ち処理を実行するとともにその特別役入賞時の演出を出力することで、1BBと同様に、演出キャンセルをさせることなくその演出を遊技者に見せることができる。
さらに、SB遊技中にはSBを含めて抽選を行うことが挙げられる。そして、SB遊技でSBが当選・入賞したときは、次遊技もSB遊技が実行される。この場合、複数遊技連続でSBが作動することとなるが、SB作動終了時(SB遊技終了時)には、図63のステップS567及びS568と同様に2バイト時間待ち処理を設けることが可能である。SBが複数遊技にわたって連続作動するときに、SBの作動終了と次のSB作動開始との区切りを明確にし、試験機側で正しく判断できるようにするためである。
(8)図60の入賞によるメダル払出し処理において、本実施形態では、1枚のメダルを払い出す場合(貯留加算時)であっても、ステップS470及びS471を経由する(すなわち、2バイト時間待ち処理が実行される)。しかし、これに限らず、1枚のメダル払出し処理時(貯留加算時)には、2バイト時間待ち処理を実行せず、2枚以上のメダル払出し処理時(貯留加算時)に限り、貯留メダルの1枚加算ごとに2バイト時間待ち処理を実行するようにしてもよい。
たとえば、ステップS469、S472、S474、S475、S476の順に処理を実行し、S476で「No」のときは、ステップS470及びS471を実行した後、ステップS468に戻るようにしてもよい。このように制御しても、貯留数表示LED71がカウントアップするように遊技者に見せることができるという効果を発揮することができる。
一方、上記のように制御したときに、1枚のメダルを貯留加算する場合には、2バイト時間待ち処理は実行されないので、1枚役が入賞した瞬間にステップS472が実行される。
これに対し、図60のように、1枚のメダルの貯留加算時であっても、その貯留加算の実行前に2バイト時間待ち処理を実行することで、1枚役の入賞後、貯留加算前にウェイトを設けることができるので、役が入賞した瞬間に貯留加算されることはない。このことは、図38において、リプレイ入賞時に、最初の1枚を自動ベットする(ステップS144)前に、ステップS136及びS137で2バイト時間待ち処理を実行することにより、ウェイトを設けていることと同じである。
(9)本実施形態で示したフローチャートにおいて、処理の順序は、図で示した順序に限られるものではなく、処理の順序を入替え可能な場合には、処理の順序を入れ替えることも可能である。
(10)本実施形態では、遊技機の一例としてスロットマシン10を例に挙げたが、弾球遊技機や封入式遊技機等にも適用可能である。
(11)本実施形態及び上記の各種の変形例は、単独で実施されることに限らず、適宜組み合わせて実施することが可能である。
<付記>
本願の当初明細書等に記載した発明(当初発明)は、たとえば以下の当初発明1〜6を挙げることができ、それぞれ、当初発明が解決しようとする課題、当初発明に係る課題を解決するための手段及び当初発明の効果は、以下の通りである。ただし、当初発明は、以下の当初発明1〜6に限ることを意味するものではない。
なお、本願の請求項に係る当初発明は、以下の当初発明4に相当する。
1.当初発明1
(a)当初発明が解決しようとする課題
従来の技術において、遊技機の電源投入時に、電源復帰が異常になる場合が考えられる。このような場合には、設定値が異常値になってしまうおそれがある。しかし、従来の技術では、電源復帰時に設定値異常が生じたときの有効な処理は設けられていなかった。
当初発明が解決しようとする課題は、電源復帰時に設定値異常が生じたときであっても、エラー処理を行うことなく適切に制御処理を進行できるようにすることである。
(b)当初発明に係る課題を解決するための手段(なお、かっこ書きで、対応する実施形態を記載する。)
当初発明(第1実施形態)は、
遊技者の有利度を定める設定値を記憶する設定値記憶手段(RWM61のアドレス「F000」の「_NB_RANK」)と、
電源復帰が正常であるか否かを判断する処理(ステップS802)と、
設定値を変更するための条件を満たした場合(ステップS19で「Yes」、又はステップS20で「No」の場合)において、電源復帰が正常であると判断したとき(ステップS802で「Yes」)は前記設定値記憶手段に記憶されたデータをクリアせずに所定の記憶領域に記憶されたデータをクリアし(ステップS801、ステップS804)、電源復帰が正常でないと判断したとき(ステップS802で「No」)は前記設定値記憶手段に記憶された設定値及び前記所定の記憶領域に記憶されたデータをクリアする(ステップS801、ステップS803、ステップS804)データクリア処理と、
前記設定値記憶手段に記憶された設定値が所定範囲(「1」〜「6」)内であるか否かを判断する設定値判断処理(ステップS811)と、
前記データクリア処理の実行後、前記設定値判断処理を実行し、前記所定範囲外であると判断したときは、前記設定値記憶手段に特定値(「1」)を記憶する設定値更新処理(ステップS812)と
を備え、
前記データクリア処理の実行後とは異なる所定のタイミング(スタートスイッチ受付け処理)で前記設定値判断処理を実行し(ステップS439)、前記所定範囲外であると判断したときは、エラー処理を行う(ステップS445;復帰不可能エラー処理)
ことを特徴とする。
なお、本発明における「所定のタイミング」とは、設定値によって当選確率が変動する抽選タイミングを示し、実施形態で示したステップS439又はステップS77に限定されるものではない。
(c)当初発明の効果
当初発明によれば、設定値を変更するための条件を満たした場合において、電源復帰が正常でないと判断したときは、その時点でエラー処理を行うことなく設定値データをクリアし、設定値として特定値を記憶するので、電源復帰からの制御処理を中断等することなくスムーズに進行することができる。
また、設定値を変更する条件を満たす正常な電源復帰時でも、所定の記憶領域に記憶されたデータについてはクリアするので、新たに設定値を設定し直すことなく、所定の記憶領域に記憶されたデータを消去することができる。
さらにまた、たとえば出玉にかかわる抽選等を実行するときは、設定値判断処理を実行し、設定値が正しくないときはエラー処理を実行するので、不正な設定値に基づく抽選等の処理をが実行されてしまうことを防止することができる。
2.当初発明2
(a)当初発明が解決しようとする課題
従来の技術では、設定値が意図した数値と異なる値にならないようにするために、無効タイマー125を設け、タイムアップとなるまでにずっと時間を計測する必要があった。
当初発明が解決しようとする課題は、タイマーを設けることなく、設定値が意図した値にならないようにすることである。
(b)当初発明に係る課題を解決するための手段(なお、かっこ書きで、対応する実施形態を記載する。)
当初発明(第4実施形態)は、
遊技の進行を制御するメイン処理(M_MAIN)と、
前記メイン処理の実行中に、前記メイン処理とは異なる処理を、一定時間ごとの割込みによって実行する割込み処理(I_INTR)と、
遊技者の有利度を定める設定値を記憶する設定値記憶手段(RWM61のアドレス「F000」の「_NB_RANK」)と、
前記設定値を変更するときに操作される設定変更スイッチ(設定変更/リセットスイッチ53)と
を備え、
前記割込み処理ごとに前記設定変更スイッチのオン/オフを検知するとともに、前回の割込み処理では前記設定変更スイッチのオフを検知し、かつ今回の割込み処理では前記設定変更スイッチのオンを検知したときは、前記設定変更スイッチの立ち上がりデータを生成し、かつその立ち上がりデータを記憶し(ステップS607)、
前記メイン処理は、前記設定変更スイッチの立ち上がりデータがオンであると判断したとき(ステップS815で「Yes」)は、設定値の更新処理を実行した後(ステップS816)、次に前記設定変更スイッチの立ち上がりデータのオン/オフを判断する前に前記設定変更スイッチの立ち上がりデータをオフにする(ステップS822)
ことを特徴とする。
(c)当初発明の効果
当初発明によれば、割込み処理ごとに設定変更スイッチに係る立ち上がりデータを生成し、メイン処理では、設定変更スイッチの立ち上がりデータがオンであるときは設定変更を実行するが、次に設定変更スイッチの立ち上がりデータのオン/オフを判断する前に設定変更スイッチの立ち上がりデータをオフにするので、設定変更スイッチに係る立ち上がりデータがオンとなったときに、その立ち上がりデータによって2回以上続けて設定値が更新されることはない。したがって、タイマー等を設けることなく、設定値が連続して更新されることを防止することができる。
3.当初発明3
(a)当初発明が解決しようとする課題
従来の技術では、設定値が意図した数値と異なる値にならないようにするために、専用の無効タイマー125を設ける必要があった。
当初発明が解決しようとする課題は、専用のタイマーを設けることなく、設定値が意図した値にならないようにすることである。
(b)当初発明に係る課題を解決するための手段(なお、かっこ書きで、対応する実施形態を記載する。)
当初発明(第1実施形態)は、
遊技の進行を制御するメイン処理(M_MAIN)と、
前記メイン処理の実行中に、前記メイン処理とは異なる処理を、一定時間ごとの割込みによって実行する割込み処理(I_INTR)と、
遊技者の有利度を定める設定値を記憶する設定値記憶手段(RWM61のアドレス「F000」の「_NB_RANK」)と、
前記設定値を変更するときに操作される設定変更スイッチ(設定変更/リセットスイッチ53)と
を備え、
前記割込み処理ごとに前記設定変更スイッチのオン/オフを検知するとともに、前回の割込み処理では前記設定変更スイッチのオフを検知し、かつ今回の割込み処理では前記設定変更スイッチのオンを検知したときに、前記設定変更スイッチの立ち上がりデータを生成し、かつその立ち上がりデータを記憶し(ステップS607)、
前記メイン処理は、
前記設定変更スイッチの立ち上がりデータがオンであると判断したとき(ステップS815で「Yes」)は、設定値の更新処理を実行し(ステップS816)、
前記設定変更スイッチの立ち上がりデータのオン/オフを判断した後、次に前記設定変更スイッチの立ち上がりデータのオン/オフを判断するまでの間に、少なくとも1回の割込み処理が実行されるまで待機する割込み待ち処理を実行する(ステップS814;C_INTR_WAIT )
ことを特徴とする。
(c)当初発明の効果
当初発明によれば、メイン処理とは別に設けられている割込み処理を利用し、1割込み処理が行われた後、すなわち設定変更スイッチの立ち上がりデータが更新された後に、設定変更スイッチの立ち上がりデータのオン/オフを判断するので、設定変更スイッチに係る立ち上がりデータがオンとなったときに、その立ち上がりデータによって2回以上続けて設定値が更新されることはない。したがって、意図しない設定値とならないようにするための専用のタイマーを設けることなく、設定値が連続して更新されることを防止することができる。
4.当初発明4
(a)当初発明が解決しようとする課題
従来の遊技機において、レギュラーボーナスゲームを実行するスロットマシンが知られている。レギュラーボーナスゲーム中は、遊技回数及び入賞回数を計数し、遊技回数が12回、又は入賞回数が8回になったときに終了条件を満たすと判断し、レギュラーボーナスゲームを終了させる(たとえば、特開平09−253274号公報)。
しかし、前述の従来の技術において、入賞回数計数手段132がどのようにして入賞回数をカウントするかについての具体的記載はない。
当初発明が解決しようとする課題は、特別遊技中における役の入賞回数に関する情報を正しくカウントすることである。
(b)当初発明に係る課題を解決するための手段(なお、かっこ書きで、対応する実施形態を記載する。)
当初発明(第1実施形態)は、
所定の条件を満たしたとき(RBに係る作動状態フラグが「1」であるとき(ステップS545で「No」のとき))に、特別遊技(RB遊技)を実行する遊技機において、
前記特別遊技における役の入賞回数に関する情報を記憶するカウンタ(アドレス「F074」の「_CT_BONUS_WIN 」)と、
遊技媒体の払出し数を記憶する払出し数記憶手段と
を備え、
前記払出し数記憶手段は、
遊技媒体の払出しに伴って、記憶した値を減算する(ステップS475)払出し数第1記憶手段(アドレス「F06C」の「_NB_PAY_MEDAL 」)と、
遊技媒体の払出しによっても、記憶した値を減算しない払出し数第2記憶手段(アドレス「F06D」の「_BF_PAY_MEDAL 」)と
を備え、
遊技媒体の払出しを有する役が入賞したときは、前記払出し数第1記憶手段及び前記払出し数第2記憶手段にそれぞれ払出し数に相当する値を記憶し(ステップS592及びステップS593)、
前記払出し数第2記憶手段に記憶された値が特定値(「0」)であるとき(ステップS563で「Yes」)は前記カウンタの値を更新せず、前記払出し数第2記憶手段に記憶された値が前記特定値でないとき(ステップS563で「No」)は前記カウンタの値を更新する(ステップS564)
ことを特徴とする。
(c)当初発明の効果
当初発明によれば、遊技媒体の払出しがあるときに、払出し数第1記憶手段及び払出し数第2記憶手段の双方に払出し数を記憶し、払出し数第2記憶手段に記憶した値は、遊技媒体の払出しによっても減算しないので、払出し数第2記憶手段に記憶された値が特定値であるか否かを判断することで、当該遊技で遊技媒体の払出しを有する役が入賞したか否かを判断することができる。これにより、払出し数記憶手段に記憶された値に基づいて、カウンタの値を更新することができる。
5.当初発明5
(a)当初発明が解決しようとする課題
当初発明4と同一。
(b)当初発明に係る課題を解決するための手段(なお、かっこ書きで、対応する実施形態を記載する。)
当初発明(第5実施形態)は、
所定の条件を満たしたとき(RBに係る作動状態フラグが「1」であるとき(ステップS545で「No」のとき))に、特別遊技(RB遊技)を実行する遊技機において、
前記特別遊技における役の入賞回数に関する情報を記憶するカウンタ(アドレス「F074」の「_CT_BONUS_WIN 」)と、
遊技媒体の払出し数を記憶する払出し数記憶手段(アドレス「F06C」の「_NB_PAY_MEDAL 」)と
を備え、
遊技媒体の払出しを有する役が入賞したときは、前記払出し数記憶手段に払出し数に相当する値を記憶し(ステップS68)、
遊技媒体の払出し処理を実行するときは、前記払出し数記憶手段に記憶された値をレジスタ(Xレジスタ)に記憶し(ステップS479)、当該レジスタに記憶された値が「0」になるまで遊技媒体の払出しを行い(ステップS468〜ステップS474、ステップS481、及びステップS482)、
前記払出し数記憶手段に払出し数が記憶された後の所定のタイミング(ステップS563)で、前記払出し数記憶手段に記憶された値が特定値(「0」)であるか否かを判断し、前記払出し数記憶手段に記憶された値が前記特定値であるときは前記カウンタの値を更新せず、前記払出し数記憶手段に記憶された値が前記特定値でないときは前記カウンタの値を更新する(ステップS564)
ことを特徴とする。
なお、本発明において、「所定のタイミング」とは、払出し数記憶手段に払出し数が記憶された後の任意のタイミングを意味し、実施形態で示したステップS563に限定されるものではない。
(c)当初発明の効果
当初発明によれば、遊技媒体の払出し処理を実行するときは、払出し数記憶手段に記憶された値をレジスタに記憶し、当該レジスタ値を払出しに伴って減算していくので、払出し数記憶手段に記憶された値は減算されることはない。これにより、カウンタの値を更新するときは、払出し数記憶手段に記憶された値を参照することで、当該遊技で遊技媒体の払出しを有する役が入賞したか否かを判断することができる。
6.当初発明6
(a)当初発明が解決しようとする課題
当初発明4と同一。
(b)当初発明に係る課題を解決するための手段(なお、かっこ書きで、対応する実施形態を記載する。)
当初発明(第6実施形態)は、
所定の条件を満たしたとき(RBに係る作動状態フラグが「1」であるとき(ステップS545で「No」のとき))に、特別遊技(RB遊技)を実行する遊技機において、
前記特別遊技における役の入賞回数に関する情報を記憶するカウンタ(アドレス「F074」の「_CT_BONUS_WIN 」)と、
遊技媒体の払出し数を記憶する払出し数記憶手段(アドレス「F06C」の「_NB_PAY_MEDAL 」)と
を備え、
遊技媒体の払出しを有する役が入賞したときは、前記払出し数記憶手段に払出し数に相当する値を記憶し(ステップS68)、
遊技媒体の払出しに伴って前記払出し数記憶手段に記憶された値を減算し(ステップS468〜ステップS476)、
前記払出し数記憶手段に払出し数が記憶された後の所定のタイミング(ステップS467)で、前記払出し数記憶手段に記憶された値が特定値(「0」)であるか否かを判断し、前記払出し数記憶手段に記憶された値が前記特定値であるとき(ステップS467で「Yes」)は前記カウンタの値を更新せず、前記払出し数記憶手段に記憶された値が前記特定値でないとき(ステップS467で「No」)は前記カウンタの値を更新し(ステップS483)、
前記カウンタの値が所定値(「0」)であるか否かを判断し(ステップS569)、前記カウンタの値が前記所定値であると判断したときは(ステップS569で「Yes」)、前記特別遊技を終了するように制御する(ステップS566及びステップS567)
ことを特徴とする。
なお、本発明における「所定のタイミング」とは、払出し数記憶手段に払出し数が記憶された後、払出し数記憶手段に記憶された値を減算する前までの任意のタイミングを意味し、実施形態で示したステップS467に限られるものではない。
(c)当初発明の効果
当初発明によれば、払出し数記憶手段に払出し数が記憶された後、払出し数記憶手段に記憶された値を減算する前の所定のタイミングで、払出し数記憶手段に記憶された値が特定値であるか否かを判断し、特定値でないときはカウンタの値を更新するので、払出し数記憶手段に記憶された払出し数が払出しに伴って減算される場合であっても、払出し数記憶手段に記憶された値に基づいてカウンタの値を更新することができる。