1a(1) 前記差数カウント値の初期値(例えば、13983)は、前記合計付与数と前記合計使用数との差が前記特定数を上回ったとき、前記差数カウント値の特定ビット(例えば、15ビット目)が桁上がりするように設定され(例えば、図83に示されるように差数カウンタの15ビット目が「0」から「1」に変化すること)、
前記遊技制御手段は、前記差数カウント値の前記特定ビットが桁上がりしたことに応じて、前記有利区間への制御を終了する
ことを特徴としている。
この特徴によれば、差数カウント値に特定の演算を加えることなく、差数カウント値の特定ビットを参照することによって、有利区間への制御を終了するか否かを判定できる。
(1b) 前記遊技制御手段は、前記有利区間において、付与された遊技用価値が合計された合計付与数と使用された遊技用価値が合計された合計使用数との差を、前記差数カウンタを用いて計数し、前記合計付与数と前記合計使用数との差が前記特定数を上回ったとき、前記有利区間への制御を終了し(例えば、図4に示されるように有利区間から通常区間へと制御される)、
前記差数カウント値は、遊技用価値が使用されたときに使用された遊技用価値(例えば、3枚)に対応する値が減算され(例えば、図88に示されるように使用されたとき差数カウンタを減算)、遊技用価値が付与されたときに付与された遊技用価値(例えば、8枚)に対応する値が加算され(例えば、図88に示されるように付与されたとき差数カウンタを加算)、
前記遊技制御手段は、前記差数カウント値に判定値(例えば、1983)を加算したときに、前記特定事象(例えば、図88に示されるように差数カウンタの15ビット目が「0」から「1」に変化すること)が発生したか否かに応じて、前記合計付与数と前記合計使用数との差が前記特定数を上回ったことを判定する
ことを特徴としている。
この特徴によれば、差数カウント値に判定値を加算したときに特定事象が発生したか否かに応じて、合計付与数と合計使用数との差が特定数を上回ったことを判定することによって、差数カウンタに予め特定の初期値を設定せずとも有利区間の終了を好適に判定することができる。
(1b) 前記判定値(例えば、1983)は、前記合計付与数と前記合計使用数との差が前記特定数を上回ったとき、前記差数カウント値の特定ビット(例えば、15ビット目)が桁上がりするように設定され、
前記遊技制御手段は、前記差数カウント値の前記特定ビットが桁上がりしたことに応じて、前記有利区間への制御を終了する(例えば、図88に示されるように差数カウンタの15ビット目が「0」から「1」に変化すること)
ことを特徴としている。
この特徴によれば、判定値が加算された差数カウント値に基づいて、有利区間への制御を終了するか否かを判定できる。
(2a) 前記遊技制御手段は、前記有利区間において、付与された遊技用価値が合計された合計付与数と使用された遊技用価値が合計された合計使用数との差を、前記差数カウンタを用いて計数し、前記合計付与数と前記合計使用数との差が前記特定数を上回ったとき、前記有利区間への制御を終了し(例えば、図4に示されるように有利区間から通常区間へと制御される)、
前記差数カウント値は、遊技用価値が使用されたときに使用された遊技用価値(例えば、3枚)に対応する値が加算され(例えば、図85に示されるように使用されたとき差数カウンタを加算)、遊技用価値が付与されたときに付与された遊技用価値(例えば、8枚)に対応する値が減算され(例えば、図85に示されるように付与されたとき差数カウンタを減算)、
前記差数カウント値の初期値(例えば、18784)は、前記合計付与数と前記合計使用数との差が前記特定数を上回ったとき前記特定事象(例えば、図85に示されるように差数カウンタの15ビット目が「1」から「0」に変化すること)が発生するように設定される
ことを特徴としている。
この特徴によれば、合計付与数と合計使用数との差が特定数を上回ったときに特定事象が発生するように差数カウント値の初期値が設定されることによって、差数カウント値に対して何ら特定の演算をすることなく、合計付与数と合計使用数との差が特定数を上回ったことを判定することができ、有利区間の終了を好適に判定することができる。
2a(1) 前記差数カウント値の初期値(例えば、18784)は、前記合計付与数と前記合計使用数との差が前記特定数を上回ったとき、前記差数カウント値の特定ビット(例えば、15ビット目)が桁下がりするように設定され(例えば、図85に示されるように差数カウンタの15ビット目が「1」から「0」に変化すること)、
前記遊技制御手段は、前記差数カウント値の前記特定ビットが桁下がりしたことに応じて、前記有利区間への制御を終了する
ことを特徴としている。
この特徴によれば、差数カウント値に演算を加えることなく、差数カウント値の特定ビットを参照することによって、有利区間への制御を終了するか否かを判定できる。
(2b) 前記遊技制御手段は、前記有利区間において、付与された遊技用価値が合計された合計付与数と使用された遊技用価値が合計された合計使用数との差を、前記差数カウンタを用いて計数し、前記合計付与数と前記合計使用数との差が前記特定数を上回ったとき、前記有利区間への制御を終了し(例えば、図4に示されるように有利区間から通常区間へと制御される)、
前記差数カウント値は、遊技用価値が使用されたときに使用された遊技用価値(例えば、3枚)に対応する値が加算され、(例えば、図90に示されるように使用されたとき差数カウンタを加算)遊技用価値が付与されたときに付与された遊技用価値(例えば、8枚)に対応する値が減算され(例えば、図90に示されるように付与されたとき差数カウンタを減算)、
前記遊技制御手段は、前記差数カウント値に判定値(例えば、34752)を減算したときに、特定事象(例えば、図90に示されるように差数カウンタの15ビット目が「1」から「0」に変化すること)が発生したか否かに応じて、前記合計付与数と前記合計使用数との差が前記特定数を上回ったことを判定する
ことを特徴としている。
この特徴によれば、差数カウント値に判定値を減算したときに特定事象が発生したか否かに応じて、合計付与数と合計使用数との差が特定数を上回ったことを判定することによって、差数カウンタに予め特定の初期値を設定せずとも、有利区間の終了を好適に判定することができる。
2b(1) 前記判定値(例えば、34751)は、前記合計付与数と前記合計使用数との差が前記特定数を上回ったとき、前記差数カウント値の特定ビット(例えば、15ビット目)が桁下がりするように設定され(例えば、図87に示されるように差数カウンタの15ビット目が「1」から「0」に変化すること)、
前記遊技制御手段は、前記差数カウント値の前記特定ビットが桁下がりしたことに応じて、前記有利区間への制御を終了する
ことを特徴としている。
この特徴によれば、判定値が減算された差数カウント値に基づいて、有利区間への制御を終了するか否かを判定できる。
(5) 前記遊技制御手段は、前記差数カウント値を複数のコマンド(例えば、図95に示されるように、1バイト目のコマンドと2バイト目のコマンド)を用いて、前記演出制御手段に送信し、
前記複数のコマンドにおいて前記差数カウント値を格納するための領域は、均等に分割される(例えば、図95に示されるように、1バイト目の1~7ビット目、2バイト目の1~7ビット目が、差数カウント値を格納するために用いられる。)
ことを特徴としている。
この特徴によれば、各バイトの先頭ビットを情報の種別に使用しても、1バイトを越えるデータの送受信をすることができる。
(6) 前記遊技制御手段は、単位遊技が終了するときに、前記差数カウント値を前記特定レジスタに格納し(例えば、図80のSv2の処理)、前記特定レジスタに格納されている前記差数カウント値に付与された遊技用価値(例えば、8枚)に対応する値を加算(例えば、図80のSv3の処理)した後に、使用された遊技用価値(例えば、3枚)に対応する値を減算(例えば、図80のSv4の処理)する(例えば、読み出し、加算、減算の処理が図80に示される順で実行される。)
ことを特徴としている。
この特徴によれば、加算された後に減算されることを担保できるため、減算のみが行われることがなく、差数カウント値が意図せずに小さい値となることを防止できる。
(8) 前記遊技制御手段は、更新された前記特定レジスタに格納される前記差数カウント値に基づいて前記有利区間への制御を終了するか否かを判定する前に(例えば、図67に示されるように、出玉制御前処理の前に出玉制御後処理が実行される)、前記特定記憶領域に格納されている前記差数カウント値に対して、更新された前記特定レジスタに格納される前記差数カウント値を更新する(例えば、図82に示されるようにレジスタに読み出された値が更新された後に、RAMに書き戻す処理が行われる。)
ことを特徴としている。
この特徴によれば、有利区間を終了する場合であっても特定記憶領域に格納されている差数カウント値が意図しない値となることを防止することができる。
(9) 前記遊技制御手段は、単位遊技が終了するときに再遊技表示結果(例えば、リプレイ)が導出されたか否かを判定し(例えば、図80のSv1)、前記再遊技表示結果が導出されたと判定する場合、前記差数カウント値の更新をしない(例えば、図80に示されるように、リプレイが入賞した場合は、差数カウンタが更新されない。)
ことを特徴としている。
この特徴によれば、再遊技表示結果が導出される場合には更新処理を省略することができ、処理負担を軽減することができる。
(10) 前記遊技制御手段は、単位遊技が開始されるときと当該単位遊技の終了するときとで前記差数カウント値が変化するか否かにかかわらず、単位遊技ごとに前記差数カウント値に基づいて、有利区間への制御を終了するか否かを判定する(例えば、図67に示されるように、差数カウント値にかかわらず出玉制御後処理Sd30が実行される。)
ことを特徴としている。
この特徴によれば、単位遊技ごとに確実に有利区間への制御を終了するか否かを判定することができる。
(13) 前記遊技制御手段は、前記有利区間において特典の付与に関して、第1抽選(例えば、図97の第1モードによる上乗せ有利度)または第2抽選(例えば、図97の第2モードによる上乗せ有利度)を実行し、前記差数カウント値に応じて、前記第1抽選または前記第2抽選のいずれを実行するかを判定する(例えば、図96、図97に示されるように、第1モードまたは第2モードのいずれでAT1状態に制御されるかは、差数カウント値に応じて定められる。)
ことを特徴としている。
この特徴によれば、差数カウント値に応じた抽選処理を実行することができる。
[スロットマシンの構成]
図1は、カードユニット及びスロットマシンの正面図である。
図1を参照して、遊技場(ホール)内に複数配置されている各遊技島(図示略)には、スロットマシン2が併設されており、そのスロットマシン2の所定側の側方位置に該スロットマシン2に対して遊技用装置の一例のカードユニット(以下CUと略称することもある)3が1対1に対応設置されている。尚、カードユニットは、「遊技メダル貸出装置」とも称する。
スロットマシン2は、遊技者がメダルを手に取り投入口に投入することなく、また遊技者の手元にメダルが払出されることもないスロットマシンである。このため、貸出操作などに応じて遊技価値が直接クレジット(ゲームに使用可能な遊技点(以下、「遊技メダル」、または単に「メダル」とも称する))に加算される。
また、従来のスロットマシンのように、メダルの投入口や払出口がないだけではなく、メダルセレクタやホッパーなどの投入されたメダルを制御するための装置も備える必要がない。このような、メダルを一切必要としないスロットマシンを「管理遊技機」や「メダルレススロットマシン」と称する。
図1には、前面(正面)側から視たときのスロットマシン2が示されている。スロットマシン2の内部には、外周に複数種の図柄が配列されたリール2L、2C、2R(以下、左リール、中リール、右リールともいう)が水平方向に並設されており、これらリール2L、2C、2Rに配列された図柄のうち連続する3つの図柄が透過窓3Wから見えるように配置されている。
各リール2L、2C、2Rは、図2に示される各々対応して設けられたリールモータ32L、32C、32Rによって回転する。これにより、各リール2L、2C、2Rの図柄が透過窓3Wに連続的に変化しつつ表示される。また、各リール2L、2C、2Rの回転を停止させることで、透過窓3Wに3つの連続する図柄が表示結果として導出表示されるようになっている。
リール2L、2C、2Rの内側には、図2に示されるリールLED55が設けられている。リールLED55は、図1に示されているリール2L、2C、2Rを背面から照射する。また、リールLED55は、リール2L、2C、2Rの連続する3つの図柄に対応する12のLEDからなり、各図柄をそれぞれ独立して照射可能とされている。
各リール2L、2C、2Rの手前側(遊技者側)の位置には、液晶表示器51の表示領域が配置されている。液晶表示器51は、表示領域の透過窓3Wに対応する透過領域及び透過窓3Wを介して遊技者側から各リール2L、2C、2Rが視認できるようになっている。
図3は、リールの図柄配列を示す図である。図3に示すように、各リールには、各々が識別可能な複数種類の図柄(「キャラ」、「黒7」、「白7」、「BAR」、「リプレイ」、「プラム」、「チェリー」、「スイカ」、「月」、「オレンジ」)が所定の順序で配列されている。
突出部95は、スロットマシン2の前面側に向けて突出している。突出部95がスロットマシン2の前面側に向けて突出することによって、突出部95には上面96が形成されている。突出部95の上面96には、MAXBETスイッチ6、1BETスイッチ20、賭数クリアスイッチ21、演出用スイッチ57、遊技情報表示部90が設けられ、突出部95の手前側側面にはスタートスイッチ7、ストップスイッチ8L、8C、8R、計数ボタン10が設けられている。尚、上面96は、透過窓3Wよりも下方の位置から奥から手前側へと緩やかに傾斜する傾斜面であっても良い。
スタートスイッチ7は、賭数設定後にリールを回転開始させるためのスイッチである。ストップスイッチ8L、8C、8Rは、回転中のリールを停止操作するためのスイッチであり、8Lが左、8Cが中、8Rが右のそれぞれのリールに対応する。計数ボタン10は、クレジット数(遊技メダル数)を計数して持ちメダル数に変換する際に操作されるスイッチである。
スロットマシン2の前面扉の内側には、図2に示されるドア開放検出スイッチ25が設けられている。ドア開放検出スイッチ25は、前面扉の開放状態を検出する。さらに、筐体内部には、電源ボックスが設けられている。電源ボックスの前面には、図2に示される設定キースイッチ37及びリセット/設定スイッチ38などが設けられている。設定キースイッチ37は、設定変更状態または設定確認状態に切り替える。リセット/設定スイッチ38は、通常時においてはエラー状態や打止状態を解除するためのリセットスイッチとして機能し、設定変更状態においては内部抽選の当選確率(出玉率)の設定値を変更するための設定スイッチとして機能する。スロットマシン2の前面扉の内側には、図2に示される設定値表示器24が設けられている。
尚、本実施例では、回転を開始した3つのリール2L、2C、2Rのうち、最初に停止するリールを第1停止リールと称し、また、その停止を第1停止と称する。同様に、2番目に停止するリールを第2停止リールと称し、また、その停止を第2停止と称し、3番目に停止するリールを第3停止リールと称し、また、その停止を第3停止、最終停止、あるいは全リール停止と称する。
次に、スロットマシン2におけるゲームの流れについて説明する。スロットマシン2においてゲームを行う場合には、まず、CU3において貸出操作をしてクレジット(遊技メダル)を確保する。この貸出操作は、従来のメダル払出し方式のスロットマシンにおいて、「メダルの貸出操作」と「貸し出されたメダルを手で投入口に投入する操作」との2ステップの操作に対応する。
クレジットが存在する状態でMAXBETスイッチ6を操作すると、クレジットの範囲で賭数が最大数になるように追加設定され、クレジット数がその追加設定分だけ減算される。賭数が設定されると、入賞ラインL1~L5のうち賭数及び遊技状態に応じて定められた入賞ラインが有効となり、スタートスイッチ7の操作が有効な状態、すなわち、ゲームが開始可能な状態となる。
ここで、入賞ラインとは、各リール2L、2C、2Rの透過窓3Wに表示された図柄の組合せが入賞図柄の組合せであるかを判定するために設定されるラインである。本実施例では、図1に示すように、各リール2L、2C、2Rの中段に並んだ図柄に跨って設定された入賞ラインL1、各リール2L、2C、2Rの上段に並んだ図柄に跨って設定された入賞ラインL2、各リール2L、2C、2Rの下段に並んだ図柄に跨って設定された入賞ラインL3、リール2Lの上段、リール2Cの中段、リール2Rの下段、すなわち右下がりに並んだ図柄に跨って設定された入賞ラインL4、リール2Lの下段、リール2Cの中段、リール2Rの上段、すなわち右上がりに並んだ図柄に跨って設定された入賞ラインL5の5種類が入賞ラインとして定められている。
ゲームが開始可能な状態でスタートスイッチ7を操作すると、各リール2L、2C、2Rが回転し、各リール2L、2C、2Rの図柄が連続的に変動する。この状態でいずれかのストップスイッチ8L、8C、8Rを操作すると、対応するリール2L、2C、2Rの回転が停止し、透過窓3Wに表示結果が導出表示される。
全てのリール2L、2C、2Rが停止することで1ゲームが終了し、有効化されたいずれかの入賞ラインL1~L5上に予め定められた図柄の組合せが各リール2L、2C、2Rの表示結果として停止した場合には入賞が発生する。入賞が発生すると、その入賞に応じて定められた点数が遊技者に対して付与される。この点数は、クレジットに加算される。
クレジットは、計数ボタン10を操作することによって、計数して持ちメダルに変換することができる。持ちメダルに変換することによって、遊技終了時にはその持ちメダルをカードに記録することが可能となる。
本実施例では、計数ボタン10を1度押下した場合には、その押下時間に関わらず(長押しか否かに関わらず)、現在遊技者が所有している遊技球の全てが計数される。しかし、これに限らず、計数ボタン10を押下し続けた時間に応じて計数動作が繰返し実行される(例えば0.3秒押下状態が継続する度に50枚の計数処理が実行される)ようにしても良い。また、押下継続時間に関わらず、1度押下すると、所定数(例えば50枚)だけ遊技球から持ちメダルへの計数が行われるようにしても良い。
液晶表示器51の上部には、クレジット表示セグメント7Sと、スピーカ53,54が設けられている。クレジット表示セグメント7Sは、5つの7セグメントから形成され、遊技者が所持するクレジット数を表示する。クレジット表示セグメント7Sは、スロットマシン2の上部に設けられていることにより、スロットマシン2で遊技をしている遊技者以外の遊技者または店員に対して、スロットマシン2が記憶するクレジット数を表示することができる。スピーカ53,54は、演出に合わせた効果音などを発する。
上述したように、MAXBETスイッチ6は、賭数を最大数にするために用いられるスイッチである。すなわち、MAXBETスイッチ6は、遊技の進行に用いられる。また、本実施例におけるMAXBETスイッチ6は、演出のためにも用いられる。すなわち、MAXBETスイッチ6に対して、同じ操作がされたときに、該操作が有効操作であるときと無効操作であるときとで実行する処理を変化させる。これにより、MAXBETスイッチ6は、遊技の進行及び演出の両方に用いられる。
以下、MAXBETスイッチ6の有効操作と無効操作とについて説明する。MAXBETスイッチ6の有効操作とは、賭数の設定が可能である賭数設定可能状況において、MAXBETスイッチ6に対して行われる操作である。賭数設定可能状況とは、例えば、賭数を受け付けることが可能な期間であって、「クレジットが1以上残存しており、かつ3枚未満の賭数が設定されている状況」または「クレジットが1以上残存しており、かつ賭数が設定されていない状況」である。「クレジットが1以上残存しており、かつBETカウンタに3枚未満の賭数が設定されている状況」において、MAXBETスイッチが操作されたときには、3枚を上限として、残存しているクレジット分だけ、賭数が設定される。「クレジットが1以上残存しており、かつ賭数が設定されていない状況」において、MAXBETスイッチが操作されたときには、3枚を上限として、残存しているクレジット分だけ、賭数が設定される。このように、MAXBETスイッチ6は、賭数設定可能状況における有効操作がされることにより賭数を設定する遊技の進行のためのスイッチとして用いられる。
一方で、MAXBETスイッチ6の無効操作とは、賭数の設定が可能ではない賭数設定不可能状況において、MAXBETスイッチ6に対して行われる操作である。賭数設定不可能状況は、「遊技が開始されてから終了するまでの期間」を含む。すなわち、リールが回転して、遊技が行われている期間において、MAXBETスイッチ6に対する操作は、無効操作となる。本実施例において、スロットマシン2では、リールが回転している期間において、MAXBETスイッチ6の無効操作を促す操作促進画像が表示され得る。このとき、遊技者によってMAXBETスイッチ6の無効操作がされることによって、有利度合いを示唆する画像などを表示する演出が行われる。このように、本実施例におけるMAXBETスイッチ6は、賭数設定不可能状況における無効操作がされることにより、演出画像を表示するための契機として用いられる。すなわち、MAXBETスイッチ6は、有効操作の受け付け期間においては遊技の進行のために用いられ、無効操作の受け付け期間においては演出のために用いられる。
[カードユニットの構成]
図1を参照して、本実施例に係るCU3の構成を説明する。このCU3は、会員登録をしていない一般の遊技者に対して発行される遊技用記憶媒体であるプリペイド機能を備えるビジターカード(一般カードとも言う)や、該遊技場に会員登録した会員遊技者に対して発行される遊技用記憶媒体である会員カードを受け付ける。ビジターカードや会員カードはICカードで構成されている。
それらのカードを受け付けたCU3は、カードの記憶情報により特定される遊技者所有の遊技価値(例えばプリペイド残高、持ちメダル数、あるいは貯メダル数(「貯玉数」とも称する)など)をクレジット数(遊技メダル数)に変換する機能を有する。
CU3の前面側には、紙幣を挿入するための紙幣挿入口302、装置前面より装置前方方向に突出形成された張出部305、会員カードやビジターカードを挿入するためのカード挿入/排出口309などが設けられている。このカード挿入/排出口309に挿入された会員カードやビジターカードがカードリーダライタ(図示省略)に受け付けられ、そのカードに記録されている情報が読み取られる。
前述の張出部305において、遊技者と対向する面には、表示器312と、会員カードを受け付けた場合において、該会員カードに記録された会員カードID(単に、カードID、C-IDともいう)並びに会員カードIDにより特定される貯メダル数(貯玉数)を用いた再プレイ遊技を実施するための再プレイボタン319と、遊技場の係員が所持するリモコン(図示略)から赤外線信号を受信して電子信号に変換して出力するIR感光ユニット320が設けられている。
表示器312は、挿入された遊技用記録媒体(カード)に記録されているプリペイド残高(カード残高または単に残高ともいう)や、持ちメダル数、クレジット数(遊技メダル数)、その他の各種情報を表示可能であるとともに、表面が透明タッチパネルで構成されている。表示器312の表示部に表示された各種表示項目を指でタッチすることにより各種操作が入力可能となるように構成されている。
持ちメダルボタン324を操作した場合、挿入されたカードに記録されている持ちメダル数の一部が引き落とされてクレジット数(遊技メダル数)に変換される。再プレイボタン319を操作した場合に、挿入されたカードに遊技者が獲得した持ちメダル数が記憶されているときにはその持ちメダル数の一部を引落としてクレジットに変換し、変換したクレジットに基づいてスロットマシン2による遊技を行うことが可能となる。
一方、挿入されたカードが会員カードであり持ちメダル数が記憶されておらずかつ貯メダルがホール用管理コンピュータなどに記憶されている場合には、その貯メダルの一部が引落とされてクレジットに変換され、スロットマシン2による遊技が可能となる。つまり、挿入されたカードに対応付けて貯メダルと持ちメダルとの双方が記憶されている場合には、持ちメダルが優先的に引落とされる。尚、再プレイボタン319とは別に、持ちメダルを引落とすための専用の持ちメダル払出ボタンを設け、再プレイボタン319は貯メダル引落とし専用のボタンとしても良い。
ここで、「クレジット数(遊技メダル数)」とは、賭数設定に使用可能であるとともに、「持ちメダル数」に変換可能なデータである。「クレジット数」は、プリペイドカードの残高、持ちメダル数、あるいは貯メダル数を引き落とすことと引き換えにして生成される。
「持ちメダル数」とは、遊技者がスロットマシンにより遊技を行った結果、遊技者の所有となったクレジット数(遊技メダル数)を計数変換したものである。この「持ちメダル数」は、遊技者のカードによって特定可能に記憶される。尚、持ちメダル数を遊技場に設定された持ちメダル数管理用の管理装置で管理しても良い。
「貯メダル数(貯玉数)」とは、遊技場に預け入れられた持ちメダル数である。遊技者が遊技で獲得した持ちメダル数は、当日中は持ちメダル数として管理されるが、獲得した翌日以降は「貯メダル数」として管理される。すなわち、遊技場において当日遊技者が獲得して計数したクレジット数(遊技メダル数)を「持点」と言い、前日以前に遊技者が獲得して遊技場に預け入れられた持ちメダル数を「貯メダル数」と言う。この「貯メダル数」は、一般的に当該遊技場に設置されたホール用管理コンピュータやその他の管理コンピュータにより管理される。
以上の「残高」、「貯メダル数(貯玉数)」、「持ちメダル数」、「クレジット数(遊技メダル数)」の各データの変換可能方向を矢印で表すと、「『残高、貯メダル数、持ちメダル数』→『クレジット数』→『持ちメダル数』→『貯メダル数』」となる。
本実施形態では、貯メダル数データは会員カードに直接記録させずホール用管理コンピュータなどの上位サーバに会員カード番号と対応付けて記憶させ、会員カード番号に基づいて対応する貯メダル数を検索できるように構成されている。一方、持ちメダル数は、カードに直接記録している。
しかし、両者ともに上位サーバにカード番号と対応付けて記憶させても良い。ビジターカードの場合も、持ちメダル数は、ビジターカードに直接記録している。しかし、持ちメダル数を上位サーバにカード番号と対応させて記憶させても良い。この上位サーバにカード番号と対応させて記憶させる際に、上位サーバに記憶させた時刻を特定できるデータをカード(会員カード、ビジターカード)に書込んで排出しても良い。また、プリペイド残高についてはカード(会員カード、ビジターカード)に直接書込んで排出する。
尚、持ちメダル数を、カード(会員カード、ビジターカード)、または上位サーバに記憶させるタイミングは、例えば、計数ボタン10が操作されて計数処理が行われるタイミングである。しかしながら、これに代えて、カードを返却するときに一括して記憶させるようにしても良い。
また、遊技者が遊技を終えてCU3からカードを返却したときには、CU3に記憶していた持ちメダルが一旦貯玉としてホールサーバに記憶されるようにし、その遊技者がカードの返却を受けた日と同じ日に再び同じまたは別のCU3にカードを挿入したときには、一旦貯玉として記憶された当日分の持ちメダルのみが再びそのCU3に記憶され、その持ちメダルの範囲でクレジットを加算し、遊技できるようにしても良い。
紙幣挿入口302に挿入された紙幣は、貨幣識別器(図示省略)により取込まれてその真贋や紙幣種別の識別がなされる。
CU3の前面側には、さらに、貸出ボタン321とカード返却ボタン322とが設けられている。貸出ボタン321は、挿入されたカードに記録されている残高を引き落としてクレジット数を得るための操作を行うボタンである。具体的には、貸出ボタン321を操作することで引き落とされる残高に応じてクレジット数が加算される。カード返却ボタン322は、遊技者が遊技を終了するときに操作され、挿入されているカードに遊技終了時の確定した持ちメダル数(カード挿入時の持ちメダル数-持ちメダル数からクレジット数への変換数+計数操作によって計数された数)を記憶させて排出するための操作ボタンである。
以上、説明したように、本実施例に係るスロットマシン2によれば、カードで特定される持ちメダル数に応じてクレジット数(遊技メダル数)に変換し、さらにはクレジット数を用いて賭数設定が可能となるため、メダルの貸し出しを受けて、そのメダルを投入してクレジットを確保し、そのクレジットを用いて賭数設定が行われるような従来のスロットマシンに慣れている遊技者に混乱を与えることなく、メダルを用いない新たなスロットマシン(管理遊技機)による遊技を提供できる。
[カードユニットとスロットマシンとの内部構成]
図2は、カードユニット及びスロットマシンの内部構成を示すブロック図である。図2を参照して、CU3とスロットマシン2との制御回路の概略を説明する。
CU3にはCU制御基板32が設けられ、このCU制御基板32にはマイクロコンピュータなどから構成されたCU制御部323が設けられている。このCU制御部323は、CU3の主制御機能部であり、制御中枢としてのCPU、CPUが動作するためのプログラムや制御データなどを記憶しているROM、CPUのワークエリアとして機能するRAM、周辺機器との信号の整合性を保つための入出力インターフェイスなどが設けられている。
CU制御部323には、ホール用管理コンピュータやセキュリティ上の管理を行うホールサーバと通信を行うための外部出力端子(図示省略)が設けられている。CU3は、外部出力端子を介して、CU3の状態や、スロットマシン2から受信した遊技機状態情報をホール用管理コンピュータ(ホールコン)やセキュリティ上の管理を行うホールサーバなどの外部に送信する。CU制御部323は、通信制御IC325を介してスロットマシン2のメダル数制御基板17と通信を行っている。通信制御IC325とメダル数制御基板17とは、例えば、非同期シリアル通信ポートで接続されている。通信制御IC325とメダル数制御基板17との通信は、接続端子板1000を介して行われる。
CU制御部323とメダル数制御基板17との通信は、貸出情報(挿入されたカードに記憶されている残高を引落としてスロットマシン2による遊技に用いるための操作に関する情報)と貸出応答情報(貸出情報に対する応答情報)とを双方向で行い、それ以外の計数情報(クレジットから持ちメダルへの計数処理に関する情報)、及び遊技機情報を、メダル数制御基板17からCU制御部323への一方向の通信で行っている。そのため、CU3が計数情報及び遊技機情報を受信したか否かをスロットマシン2側では認識していない。CU3にはスロットマシン2側への接続部(図示省略)が設けられており、スロットマシン2にはCU3側への接続部(図示省略)が設けられている。これら接続部は、例えばコネクタなどで構成されている。
CU制御部323は、遊技者が遊技している際、遊技者の持ちメダルを管理・記憶する。表示器312には、CU制御部323から出力される残高あるいは持ちメダル数などのデータに応じた画像が表示される。また、表示器312の表面に設けられているタッチパネルを遊技者が操作すれば、その操作信号がCU制御部323に入力される。遊技者が貸出ボタン321を操作することにより、その操作信号がCU制御部323に入力される。尚、貸出ボタン321は、CU3に設ける構成に限定されるものではなく、スロットマシン2に設けて操作信号をCU制御部323に入力する構成であっても良い。遊技者がカード返却ボタン322を操作することによりその操作信号がCU制御部323に入力される。
スロットマシン2には、スロットマシン2の遊技の進行を制御する主制御基板16と、遊技者所有のクレジットに関する制御を行うメダル数制御基板17と、遊技状態に応じた演出の制御を行う演出制御基板15と、電源基板101とが設けられている。電源基板101によってスロットマシン2を構成する電気部品の駆動電源が生成され、各部に供給される。
電源基板101には、外部からAC100Vの電源が供給されるとともに、このAC100Vの電源からスロットマシン2を構成する電気部品の駆動に必要な直流電圧が生成され、主制御基板16、メダル数制御基板17及び演出制御基板15に供給されるようになっている。
メダル数制御基板17には、メダル数制御部171である払出制御用マイクロコンピュータが搭載されている。メダル数制御部171は、制御中枢としてのCPU171a、CPU171aが動作するためのプログラムや制御データなどを記憶しているROM171b、CPU171aのワークエリアとして機能するRAM171c、周辺機器との信号の整合性を保つための入出力インターフェイスなどが設けられている。
メダル数制御基板17には、RAM171cに記憶された情報を消去するためのRAMクリアスイッチ293、ドア開放検出スイッチ25が接続されており、これら接続されたスイッチ類の検出信号が入力される。また、メダル数制御基板17には、計数ボタン10が接続されており、計数ボタン10の検出信号が入力される。
メダル数制御基板17には、役比モニタ89が接続されており、メダル数制御部171により表示が制御される。また、メダル数制御基板17には、バックアップメモリ294が接続されており、メダル数制御基板17が役比モニタ89に表示するための役比情報をバックアップする。
役比モニタ89は、通常、スロットマシンの性能を示す数値(以下、「役比情報」とも称する)を表示する。スロットマシンの性能を示す数値は、例えば、総累計払出枚数に対する指示込役物払出比率、過去6000ゲーム間の連続役物払出比率、過去6000ゲーム間の役物払出比率、総累計払出枚数に対する連続役物払出比率、総累計払出枚数に対する役物払出比率、総累計払出枚数に対する役物等状態比率である。これらの情報についての詳細は、後述にて説明する。
主制御基板16には、主制御部161である遊技制御用マイクロコンピュータが搭載されている。主制御部161は、制御中枢としてのCPU161a、CPU161aが動作するためのプログラムや制御データなどを記憶しているROM161b、CPU161aのワークエリアとして機能するRAM161c、周辺機器との信号の整合性を保つための入出力インターフェイスなどが設けられている。
主制御基板16には、リールモータ32L、32C、32Rが接続されており、主制御部161の制御に基づいて駆動される。また、主制御基板16には、設定キースイッチ37、リセット/設定スイッチ38、スタートスイッチ7が接続されており、これら接続されたスイッチ類の検出信号が入力される。また、主制御基板16には、遊技補助表示器12、設定値表示器24が接続されており、主制御部161により表示が制御される。
また、主制御基板16には、中継基板1100を介して、賭数クリアスイッチ21、1BETスイッチ20、ストップスイッチ8L、8C、8R、ドア開放検出スイッチ25、MAXBETスイッチ6が接続されており、これら接続されたスイッチ類の検出信号が入力される。また、主制御基板16には、中継基板1100を介して、1~3BETLED14~16が接続されており、主制御部161により表示が制御される。主制御部161は、MAXBETスイッチ6の無効操作の受け付け期間において、MAXBETスイッチ6が操作されたことを検出した場合、MAXBETスイッチ6の無効操作がされたことを示す操作コマンドを演出制御部151へ送信する。
演出制御基板15には、演出制御部151である演出制御用マイクロコンピュータが搭載されている。演出制御部151は、制御中枢としてのCPU151a、CPU151aが動作するためのプログラムや制御データなどを記憶しているROM151b、CPU151aのワークエリアとして機能するRAM151c、周辺機器との信号の整合性を保つための入出力インターフェイスなどが設けられている。
演出制御基板15には、演出用スイッチ57が接続されており、演出用スイッチ57の検出信号が入力される。また、演出制御基板15には、液晶表示器51、演出効果LED52、スピーカ53、54、リールLED55、クレジット表示セグメント7Sなどの演出装置が接続されており、これら演出装置は、演出制御部151による制御に基づいて駆動されるようになっている。
また、演出制御基板15には、光量・音量調整基板111が接続されている。光量・音量調整基板111には、光量や音量を調整するためのスイッチ類が接続されており、これらのスイッチ類からの検出信号は、光量・音量調整基板111を介して演出制御基板15に入力される。
主制御部161は、演出制御部151に各種のコマンドを送信する。主制御部161から演出制御部151へ送信されるコマンドは一方向のみで送られ、演出制御部151から主制御部161へ向けてコマンドが送られることはない。演出制御部151は、主制御部161から送信されるコマンドを受けて、演出を行うための各種の制御を行う。
メダル数制御部171は、主制御部161に対して各種のコマンドを送信する。また、主制御部161もメダル数制御部171に対して各種のコマンドを送信する。すなわち、メダル数制御部171と主制御部161との通信は双方向通信である。また、メダル数制御基板17からは、主制御基板16に対するバックアップ電源が供給され、電断後もバックアップ電源が供給されている期間は主制御基板16のRAM161cに格納されたデータが保持されるようになっている。
また、メダル数制御部171は、RAM171cの所定領域にクレジットを記憶する。具体的には、クレジット数はクレジットカウンタに記憶されている。メダル数制御部171は、クレジット加算処理またはクレジット減算処理において、RAM171cの所定領域に記憶されているクレジットを更新する。
設定された賭数は、RAM161cの所定領域に記憶されている。具体的には、設定された賭数は、BETカウンタとして記憶されている。BETカウンタに記憶されている値が「3」である場合に、遊技を開始可能な状態となる。以下では、BETカウンタに記憶されている値を、単に「賭数」と称する場合がある。
以上説明したような、メダルが不要なメダルレススロットマシンにおいては、メダル数制御基板17を備えるようにしている。そして、従来のスロットマシンにおけるメダルの投入や払出に関する機能をメダル数制御基板17に集中させるようにしている。また、メダルが必要な従来のスロットマシンであれば、メダルセレクタやホッパーやのようなメダルの投入・払出に関連する装置を備える必要があるが、メダルレススロットマシンにおいては、このような装置は不要である。
また、本実施例のようにメダルレススロットマシンを構成することで、従来のスロットマシンと部品を共通化することができる。具体的には、クレジットを更新する機能(メダルの投入や払出に関する機能)をメダル数制御基板17に集中させているため、メダルレススロットマシンのメダル数制御基板17を交換することで従来のスロットマシンを構成することができる。従来のスロットマシンを構成する場合は、メダル数制御基板17にメダルの投入や払出に関する機能を備えた上で、メダルセレクタやホッパーやのようなメダルの投入・払出に関連する装置をメダル数制御基板17に接続すれば良い。このような構成にすることで、従来のスロットマシンと互換性を有するとともに、部品の共通化により、スロットマシンの設計及び製造において、コストダウンを図ることができる。
主制御部161は、スタートスイッチ7より検出信号が入力されると、リールモータ32L、32C、32Rを回転駆動させるとともに、入賞役の抽選を行う。
入賞役の種類は、遊技状態に応じて定められているが、大きく分けて、ビッグボーナス(BB)、レギュラーボーナス(RB)への移行を伴う特別役と、メダルの払い出しを伴う小役と、賭数の設定を必要とせずに次のゲームを開始可能となる再遊技役(リプレイ)とがある。
主制御部161は、入賞役の抽選をし、リールを回転駆動させた後、遊技者によるリールの停止操作を待つ。主制御部161は、いずれかのストップスイッチ8L、8C、8Rが操作されたときに、当該ストップスイッチ8L、8C、8Rに対応するリールの回転を停止させる。主制御部161は、3つの図柄を停止させ、入賞の有無を判定する入賞判定処理を実行する。入賞と判定された場合には、入賞の種類に応じた数のクレジット数が遊技者に付与される。電源基板101には、電源投入スイッチ102が接続されており、電源投入スイッチ102の検出信号が入力される。
尚、本実施例における「ゲーム(遊技)」とは、スタートスイッチ7が操作されてからリール2L、2C、2Rが停止するまでをいう。尚、ゲームを行う際には、スタートスイッチ7の操作前の賭数の設定や、リール2L、2C、2Rの停止後にメダルの払い出しや遊技状態の移行も行われるので、これらの付随的な処理も広義には「ゲーム」に含まれるものとする。
また、本実施例では、MAXBETスイッチ6の操作をMAXBET操作、スタートスイッチ7の操作を開始操作、ストップスイッチ8L、8C、8Rの操作を停止操作、計数ボタン10の操作を計数操作、貸出ボタン321の操作を貸出操作、カード返却ボタン322の操作を返却操作とも称する。
また、スロットマシン2は、設定値に応じてメダルの払出率が変わる構成である。詳しくは、内部抽選などの遊技者に対する有利度に影響する抽選において設定値に応じた当選確率を用いることにより、メダルの払出率が変わるようになっている。設定値は1~6の6段階からなり、6が最も払出率が高く、5、4、3、2、1の順に値が小さくなるほど払出率が低くなる。すなわち設定値として6が設定されている場合には、遊技者にとって最も有利度が高く、5、4、3、2、1の順に値が小さくなるほど有利度が段階的に低くなる。
設定値を変更するためには、設定キースイッチ37をON状態としてからスロットマシン2の電源をONする必要がある。設定キースイッチ37をON状態として電源をONすると、設定値表示器24にRAM161cから読み出された設定値が表示値として表示され、リセット/設定スイッチ38の操作による設定値の変更が可能な設定変更状態に移行する。設定変更状態において、リセット/設定スイッチ38が操作されると、設定値表示器24に表示された表示値が1ずつ更新されていく(設定値6からさらに操作されたときは、設定値1に戻る)。そして、スタートスイッチ7が操作されると表示値を設定値として確定する。そして、設定キースイッチ37がOFFされると、確定した表示値(設定値)が主制御部161のRAM161cに格納され、遊技の進行が可能な状態に移行する。
[状態遷移]
図4は、遊技状態の遷移を説明するための図である。図4に示すように、主制御部161によって管理される状態は、出玉率に関わる遊技状態が含まれる。
遊技状態には、非内部中、内部中、及びBBが含まれる。内部中は、遊技が進行可能な状態であってかつ予め定められた設計値に基づくメダルの払出率が担保されている状態である。尚、本実施例のスロットマシン2では、ほとんどのゲームを内部中で遊技者に遊技させることになっている。
一方、非内部中は、遊技者によって遊技することがない、あるいは遊技することがあってもその時間が極端に短い状態である。非内部中においては、BBに当選し、かつ当該BBの入賞を取りこぼしたときに、次のゲームから遊技状態が内部中に移行する。すなわち、内部中は、BBの当選を持ち越した状態である。
非内部中及び内部中のいずれにおいても、BBに入賞可能なゲーム(以下、「BB入賞可能ゲーム」とも称する)が行われることがある。具体的には、非内部中においては、BBに当選したゲームでストップスイッチ8L,8C,8Rの操作に応じてBBの図柄組合せを導出させることができれば、BBに入賞する。この場合、次のゲームから遊技状態がBBに制御される。つまり、非内部中においては、BBに当選したゲームがBB入賞可能ゲームとなる。
内部中においては、BB当選が持ち越されている。ここで、BBと小役とが同時当選した場合、小役の図柄組合せを優先的に導出させるようにリール制御が行われる。さらに、小役が取りこぼしのない役であれば、BBと小役とが同時当選したゲームでは、ストップスイッチ8L,8C,8Rの操作に関わらず、必ず小役が入賞し、BBは入賞することができない。同様に、BBと再遊技役とが同時当選した場合、再遊技役の図柄組合せを優先的に導出させるようにリール制御が行われる。一般的に再遊技役は取りこぼしのない役であるため、BBと再遊技役とが同時当選したゲームでは、ストップスイッチ8L,8C,8Rの操作に関わらず、必ず再遊技役が入賞し、BBは入賞することができない。したがって、内部中においては、内部抽選でハズレになったゲーム(何らの役にも当選しないゲーム)に限り、ストップスイッチ8L,8C,8Rの操作に応じてBBの図柄組合せを導出させることができれば、BBに入賞する。この場合、次のゲームから遊技状態がBBに制御される。つまり、内部中においては、内部抽選でハズレになったゲームがBB入賞可能ゲームとなる。
BB中においては、所定ゲーム数(例えば、60G)に亘ってBB中ゲームが行われるが、BB中における出玉率は約101%であるため、純増枚数はほとんど増えることがない。よって、BBは、遊技者にとっては単に所定ゲーム数(例えば、60G)を消化する状態に過ぎない。BBが終了すると、再び非内部中へと遊技状態が移行する。
内部中における状態には、通常区間及び有利区間が含まれる。通常区間は、ナビが実行されない状態であり、ナビ情報を報知不可能な非報知状態である。有利区間は、ナビが実行され得る状態であり、ナビ情報を報知可能な報知状態である。本実施例においては、有利区間のうち、有利区間通常は、ナビが実行されないが、高確状態、AT1状態、AT2状態、及びエンディング状態は、いずれもナビが実行され得る。尚、有利区間通常においてもナビが実行されるものであっても良いが、高確状態、AT1状態、AT2状態、及びエンディング状態においては、有利区間通常よりも、押し順役当選時に主役を入賞させるためのナビの実行確率が高くなっている。このように、高確状態、AT1状態、AT2状態、及びエンディング状態では、有利区間通常であるときよりも高い確率でナビが行われる。
通常区間においては、有利区間移行抽選で当選(有利区間当選)したときに、有利区間に状態が制御される。尚、本実施例においては、通常中に当選し得る大部分の役の当選が有利区間当選の条件となっているため、通常における遊技の滞在は約1Gである。尚、有利区間当選の条件は、通常中に当選し得る全ての役のうちのいずれかが当選したときに成立しても良い。
通常区間においては、押し順役に当選したゲームでナビが実行されないため、遊技者が獲得可能な1ゲーム当たりの純増枚数は、賭数の設定に用いたメダルの枚数を考慮すると、0枚またはマイナスになる。尚、1ゲーム当たりの純増枚数とは、1ゲーム当たりで払い出されるメダルの枚数から1ゲーム当たりで賭数の設定に用いられるメダルの枚数を差し引いた数である。本実施例においては、通常の出玉率が40%に設定されている。このように、通常においては、出玉率が1以下(100%以下)または1未満(100%未満)となる。
有利区間は、有利区間通常、高確状態、AT1状態、AT2状態、エンディング状態を含む。有利区間通常においては、押し順役に当選したゲームでナビが実行されないため、遊技者が獲得可能な1ゲーム当たりの純増枚数は、賭数の設定に用いたメダルの枚数を考慮すると、0枚またはマイナスになる。本実施例においては、有利区間通常の出玉率が40%に設定されている。このように、有利区間通常においては、出玉率が1以下(100%以下)または1未満(100%未満)となる。
本実施例において、AT1状態は、所定のゲーム数が消化されることによって終了する。すなわち、図に示されているように、通常区間へと移行する。AT1状態の所定のゲーム数は、特定の図柄(例えば、スイカ、強チェリー)の当選によって増加し得る。すなわち、本実施例においては、特定の図柄(スイカ、強チェリー)が当選することで、遊技者の有利度が高くなる。
有利区間通常においては、高確状態、AT1状態への制御に関わる抽選等の処理が行われる。尚、有利区間通常において、主制御部161は、ポイント獲得抽選によってAT1状態への抽選を行う。ポイント獲得抽選によって更新されるポイントは、主制御部161によって管理される。主制御部161は、内部にポイントを計数するためのポイントカウンタ(図示せず)を備える。また、ポイントカウンタの値が規定の値に到達したとき、主制御部161は、AT1状態に制御するか否かの抽選を行うAT抽選を実行する。尚、主制御部161は、ポイントを用いずに特定の図柄(スイカ、強チェリー)が当選したことに基づいて、AT抽選を実行しても良い。高確状態は、付与されるポイントの数が有利区間通常よりも大きくなる状態である。すなわち、高確状態は、有利区間通常よりもAT1状態に移行しやすい状態である。
AT2状態への制御は、有利区間通常及び高確状態にあるときに行われ得る。AT2状態は、ナビに従うことで遊技者が獲得可能な純増枚数を増加させることが可能な、いわゆる疑似ボーナスである。AT1状態を介することなく有利区間通常または高確状態から直接的にAT2状態に制御される当選を「直撃疑似ボーナス当選」とも称する。また、AT1状態からAT2状態へと制御されるような当選を「疑似ボーナス当選」とも称する。疑似ボーナスにおいては、押し順役に当選したゲームでナビが実行されるため、遊技者が獲得可能な1ゲーム当たりの純増枚数は、賭数の設定に用いたメダルの枚数を考慮しても、プラスになる。
有利区間においては、後述する獲得メダル数(差数)が所定のエンディング移行枚数に達したときに、エンディング状態に制御される。有利区間中の獲得メダル数とは、有利区間への制御が開始されてから、入賞によって遊技者に付与されたメダル数から遊技者によって使用されたメダル数を減算した値である。本実施例において、獲得メダル数は、後述にて詳述に説明する差数カウント値を用いて計数される。エンディング状態は、例えば、有利区間中の獲得メダル数の合計値が上限枚数(例えば、2400枚)に達するまで有利区間である状態への制御が継続することが確定する状態である。
エンディング移行枚数は、通常区間から有利区間に移行したときにセットされる。尚、エンディング移行枚数は、抽選によって決定されても良いし、予め定められても良い。エンディング移行枚数は、主制御部161によって管理される。すなわち、主制御部161のRAM161cは、エンディング移行枚数を記憶する。エンディング移行枚数は、例えば、2300である。すなわち、主制御部161は、差数カウント値を累積的に計数し、当該計数する処理において、差数カウント値がエンディング移行枚数に到達したとき、有利区間を終了する。
有利区間においてリミッタ条件が成立すると、当該有利区間から通常区間に制御される。より具体的には、有利区間中の獲得メダル数が2400枚に達したとき、有利区間が終了し、通常区間に制御される。尚、有利区間中の獲得メダル数は、RAM161cに格納されたカウンタによってカウントされる。有利区間中の獲得メダル数が上限枚数に達することを「リミッタ条件」が成立する、と称する。
このように、有利区間は、遊技者に有利なエンディング状態を含み、主制御部161は、獲得メダル数が2300枚よりも大きいと判定するとき、エンディング状態に制御する。これにより、獲得メダル数が2300枚よりも大きくなったときに、有利区間を継続させ易くすることができる。
有利区間から通常区間に制御されると、有利区間において計数されていた有利区間中の獲得メダル数、さらに遊技中に獲得可能なポイントも初期化される。有利区間中の獲得メダル数は、有利区間中に限らずBB中においても更新され、通常区間においては更新されない。
本実施例のスロットマシン2は、設定値に応じてメダルの払出率が変わるものである。詳しくは、設定値(例えば、1,2,4,5,6)に応じて、ポイント獲得抽選等の所定の抽選における当選確率を異ならせることにより、メダルの払出率が変わるようになっている。遊技店の店員等は、設定変更を行うことで、この設定値を変更することができる。
このように、有利区間から通常区間に状態が移行する条件には、遊技の進行に基づき成立するリミッタ条件や任意の終了条件と、設定変更が行われるという条件とが含まれる。
また、本実施例のスロットマシン2では、有利区間通常においてゲーム数の上限が定められている。有利区間通常において予め定められたゲーム数の上限に達することにより、到達ポイントに関わらず強制的にAT1状態へと移行させるためのAT権利を付与する。有利区間通常におけるゲーム数の上限は、例えば、1280ゲームである。当該上限のゲーム数は、いわゆる「天井」と称されている。主制御部161は、天井に到達したか否かを判断するため、RAM161cに抽選用カウンタを有する。すなわち、主制御部161は、有利区間通常で実行されたゲーム数をRAM161c内の抽選用カウンタに記憶する。主制御部161は、有利区間通常におけるゲームが実行される度に抽選用カウンタの値を加算する。例えば、有利区間通常におけるゲーム数の上限値が700ゲームとして設定されている場合、抽選用カウンタの値が700に到達したとき、主制御部161は、AT権利を付与する。有利区間通常におけるゲーム数の上限値は、700ゲームに限られず、例えば、1280ゲームであっても良い。
[入賞役]
図5~図8は、入賞役の種類、入賞役の図柄組合せ、及び入賞時の付与について説明するための図である。図5~図8の名称欄には、入賞役の名称が示され、図柄の組合せ欄には、その入賞役が入賞となる図柄の組合せが示されている。また、付与欄には、入賞時に付与される価値(メダル払出枚数、再遊技付与等)が示されている。
図5に示すように、再遊技役としては、リプ1~リプ6が設けられている。図6に示すように、特別役としては、BBが設けられている。図6~図8に示すように、小役としては、プラム1~6、スイカ、及び1枚役1~33が設けられている。プラム1~6は、押し順役当選時に入賞し得る主役であり、入賞時には、賭数に用いられるメダルの枚数(3枚)よりも多い9枚のメダルが払い出される。プラム1~6をまとめて「プラム役」とも称する。1枚役1~33は、押し順役当選時に入賞し得る副役であり、入賞時には、賭数に用いられるメダルの枚数(3枚)よりも少ない1枚のメダルが払い出される。1枚役1~33をまとめて「1枚役」とも称する。
図7に示すように、1枚役22の入賞が発生する図柄組合せのうち、「キャラ-キャラ-黒7」がリール2L,2C,2Rにおいて導出すると、キャラ図柄が3つ並んでリール上に配置される。具体的には、左リール2Lの下段、中リール2Cの中段、及び右リール2Rの上段のそれぞれにおいてキャラ図柄が導出することで、右上がりにキャラ図柄が並んで配置される。尚、キャラ図柄が並んで配置されることを「キャラ揃い」とも称する。
図8に示すように、1枚役23の入賞が発生する図柄組合せのうち、「キャラ-キャラ-プラム」または「キャラ-プラム-プラム」がリール2L,2C,2Rにおいて導出すると、7図柄が3つ並んでリール上に配置される。具体的には、左リール2Lの上段、中リール2Cの上段、及び右リール2Rの上段のそれぞれにおいて7図柄が導出することで、上段に7図柄が並んで配置される。尚、7図柄が並んで配置されることを「7揃い」とも称する。
[抽選対象役]
図9は、遊技状態ごとに抽選対象役として読み出される入賞役の組合せについて説明するための図である。図9の役番号欄には、抽選対象役ごとに定められた役番号が示され、フラグカテゴリ欄には、抽選対象役の種類ごとに割り当てられたフラグカテゴリが示され、抽選対象役欄には、その名称が示され、遊技状態欄には、遊技状態ごとに丸印でその抽選対象役が抽選対象であることが示され、有利区間当選欄には、有利区間当選の有無が示されている。また、図9における入賞役の組合せ欄には、各抽選対象役に含まれる入賞役の組合せが示されている。
図9に示すように、特別役の抽選対象役としては、BBが設けられている。再遊技役の抽選対象役としては、通常リプ、7揃いリプ、7不揃いリプ、キャラ揃いリプ、及びキャラ不揃いリプが設けられている。小役の抽選対象役としては、共通プラム、213択役A~D、231択役A~D、312択役A~D、321択役A~D、スイカ、7揃い1枚1,2、キャラ揃い1枚、弱チェリー、強チェリー、及びチャンス目A,Bが設けられている。BB中における小役としては、BB中小役及びBB中1枚が設けられている。尚、213択役A~D、231択役A~D、312択役A~D、及び321択役A~Dは、当選したときにナビが実行され得る役であるため、押し順役の一種である。213択役A~D、231択役A~D、312択役A~D、及び321択役A~Dをまとめて、「押し順ベル」とも称する。また、7揃い1枚1,2をまとめて「7揃い1枚」とも称する。
非内部中においては、BB中小役及びBB中1枚を除く役が当選可能であるが、内部中においては、既にBBの当選が持ち越されているため、BB、BB中小役、及びBB中1枚が当選不可能になっている。
フラグカテゴリは、非内部中、内部中、及びBBのいずれにおいても共通するフラグカテゴリが各役に割り当てられている。また、役番号は、抽選対象役ごとに定められているのに対して、フラグカテゴリは、抽選対象役の種類ごとに割り当てられている。このため、フラグカテゴリの数は、役番号の数よりも少ない。また、有利区間通常におけるポイント獲得抽選、有利区間における特典抽選(以下、これらをまとめて「AT制御に関わる抽選」とも称する)は、いずれもフラグカテゴリに基づいて行われる。このため、役番号に基づいてこれらのAT状態の制御に関わる抽選を行うよりも、処理負担を軽減することができる。
本実施例においては、ハズレやBBに対してもフラグカテゴリが割り当てられており、BBについては、通常リプ等の他の役と同じFC1が割り当てられている。また、共通プラムは、スイカと同じFC4が割り当てられている。
[押し順役のリール制御]
図10は、押し順役当選時のリール制御を説明するための図である。前述したように、本実施例においては、有利区間において押し順役が当選したゲームでは、ナビが実行され、正解手順が遊技者に報知される。遊技者は、ナビにしたがって正解手順でストップスイッチ8L,8C,8Rを操作することで、遊技者にとって有利な入賞役(主役)を入賞させることができる。
例えば、図10に示すように、213択役A~D、231択役A~D、312択役A~D、及び321択役A~Dのいずれかに当選したゲームでは、正解手順でストップスイッチ8L,8C,8Rが操作されたときに主役であるプラム役が入賞する一方、不正解手順でストップスイッチ8L,8C,8Rが操作されたときに副役である1枚役が入賞する。尚、不正解手順でストップスイッチ8L,8C,8Rが操作されたときに副役である1枚役の入賞を取りこぼし場合、何らの入賞も発生しないものであっても良い。
「通常手順」は、「正解手順」として設定されない一方で、「変則手順」は、「正解手順」として設定され得る。すなわち、遊技者は、213択役A~D、231択役A~D、312択役A~D、及び321択役A~Dのいずれかに当選したゲームにおいて、ストップスイッチ8L,8C,8Rを通常手順で操作する限り、主役であるプラム役を入賞させることはできないようになっている。このことは、ストップスイッチ8L,8C,8Rを変則手順で操作することを遊技者に誘発させる要因ともなり得るが、本実施例においてはナビが実行されないゲームにおいて変則手順で操作すると、遊技者にとって不利なペナルティが遊技者に課せられる。したがって、遊技者は、ナビが実行されないゲームにおいて、ストップスイッチ8L,8C,8Rを通常手順で操作することを促されるようになっている。
図11は、スタートスイッチ7が操作されたときに主制御部161が演出制御部151に対して送信する遊技開始時コマンドを示す図である。主制御部161は、スタートスイッチ7が操作(スタート操作)されたときに、内部抽選処理を実行し、当該内部抽選処理の結果に応じて、予め定められた情報を含むコマンド群を演出制御部151に送信する。以下では、図11に示すNo.1からNo.13のコマンド群を、単に「遊技開始時コマンド」と称する。主制御部161は、遊技開始時コマンドとして各コマンドをNo.1からNo.13の順番で送信する。各コマンドには、No.と同様の番号で「設定通番」として通番が定められている。各コマンドは、主制御部161が管理する各種情報を格納する。
例えば、No.2のコマンド「指示番号」には、ナビに関する情報が格納される。すなわち、No.2のコマンドは、スタートスイッチ7が操作された遊技における押し順を特定可能な情報を格納する。具体的には、コマンド「指示番号」には、ストップスイッチ8L,ストップスイッチ8C,ストップスイッチ8Rを押す順番を示す情報が格納される。演出制御部151は、No.2のコマンド「指示番号」を受け付けたときに、当該コマンド「指示番号」から特定可能な操作手順に基づいて、液晶表示器51に、ナビ演出を実行する。尚、演出制御部151は、コマンド「指示番号」から特定可能な操作手順に基づいて、スピーカ53から当該操作手順を遊技者に報知する音を出力させる。
例えば、No.3のコマンド「小役種別」には、内部抽選によって当選した役が、小役であるのか、再遊技役であるのか、特別役であるのかを特定可能な情報が格納される。また、No.6のコマンド「区間状態」には、スタートスイッチ7が操作されたゲームが図4に示す内部中の状態のいずれの状態であるかを特定可能な情報が格納される。具体的には、No.6コマンド「区間状態」には、現在制御中の状態が通常区間であるのか、有利区間であるのか、さらには、有利区間のうち、有利区間通常であるのか、高確状態であるのか、AT1状態またはAT2状態であるのか、エンディング状態であるのかを示す情報が格納される。演出制御部151は、No.6のコマンド「区間状態」を受け付けたことに基づいて、スタートスイッチ7が操作されたゲームがいずれの区間状態であるかを特定することができる。また、No.4のコマンド「出玉状態」においても、スタートスイッチ7が操作されたゲームの遊技状態を特定可能な情報が格納され得る。No.9のコマンド「ART前兆G数」には、AT連続演出のゲーム数が格納される。遊技開始時コマンドにおけるNo.10のコマンド「ポイント」には、前のゲームにおいて獲得したポイント数が格納される。また、No.11のコマンド「当選番号」には、内部抽選によって当選した役の役番号を特定可能な情報が格納される。
また、主制御部161は、遊技開始時コマンドを送信する場合、No.12のコマンド「メダル投入」にメダルがBETされたことを示す情報を格納する。No.12のコマンド「メダル投入」にメダルがBETされたことを示す情報が格納されている場合、演出制御部151は、遊技開始時コマンドを受信していることを判定できる。
図12は、第3停止時に主制御部161が演出制御部151に送信する遊技終了時コマンドを示すである。主制御部161は、スタートスイッチ7が操作されたときのみならず、ストップスイッチの第3停止時においても、No.1からNo.13までのコマンド群を、No.1からNo.13の順に演出制御部151に送信する。以下では、図12に示すNo.1からNo.13のコマンド群を、単に「遊技終了時コマンド」と称する。尚、第3停止時に送信される各コマンドにおいて、No.11については、スタートスイッチ7が操作されたときに送信されるNo.11のコマンドと異なる。No.11は、入賞に関する情報を格納するコマンドである。すなわち、第3停止時において、主制御部161は、当選番号に関する情報ではなく、入賞に関する情報を送信する。
遊技終了時コマンドにおけるNo.10のコマンド「ポイント」には、後述する第3停止時におけるポイント獲得抽選処理において獲得したポイント数が格納される。また、主制御部161は、遊技終了時コマンドを送信する場合、No.13のコマンド「回胴停止」にリールが停止していることを示す情報を格納する。No.13のコマンド「回胴停止」にリールが停止していることを示す情報が格納されている場合、演出制御部151は、遊技終了時コマンドを受信していることを判定できる。すなわち、演出制御部151は、No.12のコマンド「メダル投入」及びNo.13のコマンド「回胴停止」に基づいて、受信したコマンド群が遊技開始時コマンドであるのか、遊技終了時コマンドであるのかを判定する。主制御部161は、遊技開始時コマンドを送信する場合は、No.13のコマンド「回胴停止」を送信せず、遊技終了時コマンドを送信する場合は、No.12のコマンド「メダル投入」を送信しなくても良い。
[主制御基板とメダル数制御基板との送受信態様]
主制御基板16とメダル数制御基板17との送受信態様を説明する。本実施例においては、主制御基板16とメダル数制御基板17との間でコマンドによる通信が行われる。主制御基板16は、イベントが発生する度にメダル数制御基板17に所定のコマンドを送信する。イベントには、スタートスイッチ7が押下されたこと、1BETスイッチ20やMAXBETスイッチ6が押下されたこと、全リール停止したことなどが含まれる。
メダル数制御基板17は、主制御基板16から送信された所定のコマンドが、予め定められた応答を必要とするコマンドである場合、応答コマンドを主制御基板16に送信する。例えば、スロットマシン2が遊技場に設置されて電気的に接続された状態で電源を立上げたことを契機として、主制御基板16は、メインチップID(主制御チップID)を含む遊技機設置情報コマンドをメダル数制御基板17に送信する。それ以降の電源投入時においても、主制御基板16から、メインチップID(主制御チップID)を含む遊技機設置情報がメダル数制御基板17に送信される。すなわち、主制御基板16は、スロットマシン2の電源が投入されたときに、主制御基板16が有する固有情報のメインチップIDを特定可能な遊技機設置情報コマンドをメダル数制御基板17に送信する。
主制御基板16及びメダル数制御基板17の双方は、コマンドに「通番」を付与して送信する。また、主制御基板16及びメダル数制御基板17の双方は、受信した「通番」を記憶する。スロットマシン2では、コマンドに「通番」を付与することにより、メダルを不正に取得しようとする者(以下、不正者と称する。)がスロットマシン2を不正操作することを防止する。不正操作とは、例えば、主制御基板16とメダル数制御基板17との間で送受信されるコマンドが改変される操作、または、不正者が主制御基板16またはメダル数制御基板17を制御する操作などを示す。不正者は、例えば、不正操作を実行する装置等(以下、不正装置と称する。)を、主制御基板16またはメダル数制御基板17に接続することによって不正操作をする。
「通番」の初期値及び加算値は、メダル数制御基板17及び主制御基板16の各々によって定められる。メダル数制御基板17は、主制御基板16から受信した遊技機設置情報コマンドに基づいて「通番」の初期値及び加算値を定める。遊技機設置情報コマンドに含まれるメインチップIDは、4バイト長のチップ固有ナンバーレジスタを含む。メインチップIDが含む各バイトには、16進数のチップ固有の値が記憶されている。メダル数制御基板17は、メインチップIDが含む各バイトに記憶されている16進数の値を加算して、合計値を算出する。メダル数制御基板17は、算出した合計値の下位2バイトが示す値を10進数に変換した値を「通番」における初期値として決定する。
例えば、合計値の値が「189h」である場合(hは「189」が16進数であることを示す。)、通番における初期値は、「89h」の10進数で表した値となる。すなわち、「通番」における初期値は「137」となる。
さらに、メダル数制御基板17は、初期値に対して予め定められた数を除算する。予め定められた数が、例えば「5」である場合、除算の結果として算出される余りの種類が「0」、「1」、「2」、「3」、「4」の4種類となる。メダル数制御基板17は、当該4種類の余りに対応した加算値を予め定め記憶する。例えば、メダル数制御基板17は、「0」に対応して「7」を記憶し、「1」に対応して「11」を記憶し、「2」に対応して「13」を記憶し、「3」に対応して「19」を記憶し、「4」に対応して「23」を記憶する。メダル数制御基板17は、初期値に対して予め定められた数を除算した後、当該除算の結果の余りに対応して記憶している値を加算値とする。
一例を示すと、初期値である「137」を5で除した結果の余りは「2」である。上述の通り、メダル数制御基板17は、除算の結果の余りである「2」に対応して「13」を記憶している。したがって、メダル数制御基板17は、通番における加算値を「13」として決定する。このように、メダル数制御基板17は遊技機設置情報コマンドから特定したメインチップIDに基づき、主制御基板16から送信されたコマンドが正常であるか否かを判定するための通番の初期値と加算値を生成する。また、主制御基板16においても、同様の計算を行うことによって、初期値と加算値を生成する。これにより、主制御基板16とメダル数制御基板17との双方において、同様の初期値と加算値とが記憶されることとなる。
上述の通り、本実施例においては、イベントが発生したことを契機に主制御基板16がメダル数制御基板17に所定のコマンドを送信する。主制御基板16は、当該所定のコマンドに対して、通番を付与する。例えば、遊技機設置情報コマンドがメダル数制御基板17へ送信され、主制御基板16とメダル数制御基板17との双方が通番における初期値と加算値とを決定した後に、所定のイベントAが発生した例を説明する。
所定のイベントAが発生したことに基づいて、主制御基板16は、メダル数制御基板17にコマンドAを送信する。このとき、主制御基板16は、遊技機設置コマンドを送信した後に、初めて送信するコマンドAに対して通番の初期値を付与する。すなわち、主制御基板16は、当該コマンドAに通番「137」を付与して送信する。
メダル数制御基板17は、初期値として「137」を記憶しており、遊技機設置コマンドを受信してから初めて受信するコマンドAに付与された通番が「137」であるため、通信は正常であると判断する。
続いて、新たなイベントBが発生した場合、主制御基板16は、メダル数制御基板17に対して、コマンドBを送信する。このとき、主制御基板16は、前回送信した通番の値に加算値を加えた値を付与したコマンドBを送信する。すなわち、主制御基板16は、前回送信した「137」に加算値「13」を加えた値である「150」をコマンドBに付与して、送信する。メダル数制御基板17は、コマンドBを受信する前に、事前に次に送信されてくるコマンドに付与される通番が「150」であることを算出する。メダル数制御基板17は、受信したコマンドBに付与されている通番が「150」であり、事前に算出した通番と一致するため、主制御基板16との間における通信が正常であると判断する。
すなわち、主制御基板16は、コマンドを送るごとに、前回送信した通番の値に加算値を加えた値を通番として付与する。メダル数制御基板17においても、初期値と加算値を記憶しているため、次に受信するコマンドに付与されるべき通番の値を事前に算出することができ、コマンドを受信する度に通番が正常であるか否かを判断することができる。メダル数制御基板17は、受信したコマンドに付与されている通番が算出した通番の値と一致しない場合、主制御基板16とメダル数制御基板17との間において通信異常が発生していると判断する。
主制御基板16は、前回送信した通番の値に加算値を加えた値が255を超える場合は、255を差し引いた値を通番として送信する。主制御基板16は、メダル数制御基板17からエラーが発生していることを示す応答コマンドを受信した場合、当該応答コマンドの後に送信するコマンドの通番に加算値を加算せず、再度、同一の通番を付与して送信する。
[主制御基板からメダル数制御基板へ送信されるコマンド]
図13は、主制御基板16がメダル数制御基板17へ送信するコマンドの種類を示す図である。本実施例において、主制御基板16は、図13のコマンド名欄に示されるように、遊技機設置情報コマンド、役物情報コマンド、有利区間情報コマンド、投入コマンド、精算コマンド、終了時コマンド、開始時コマンド、払出パルスコマンド、大当りコマンド、遊技機不正1コマンド、遊技機不正2コマンド、遊技機不正3コマンド、主制御状態コマンド、主制御基板エラーコマンド、遊技機性能情報(予備)コマンドを、メダル数制御基板17へ送信する。また、番号欄には、各コマンドに予め設定されているコマンド番号が示されている。さらに、電文長欄には、各コマンドが有する電文長、すなわち、バイト長が示されている。
双方向欄には、主制御基板16がコマンドを送信した後に、メダル数制御基板17が応答コマンドを送信する必要があるか否かが示されている。例えば、メダル数制御基板17は、開始時コマンドを主制御基板16から受信したときには、当該開始時コマンドに応答する応答コマンドを送信しない。すなわち、主制御基板16は、メダル数制御基板17から応答コマンドの受信を待たずに、リールの回胴などの制御をする。
一方で、メダル数制御基板17は、投入コマンド、精算コマンド、終了時コマンドを主制御基板16から受信した場合、これらのコマンドを受信したことに応答して、応答コマンドを主制御基板16へ送信する。投入コマンド、精算コマンド、終了時コマンドは、メダル数制御基板17が管理するクレジット数に直接影響するコマンドである。そのため、主制御基板16は、投入コマンド、精算コマンド、終了時コマンドを送信した後は、メダル数制御基板17からの応答コマンドを受信したことを条件に次の制御を行う。以下では、図14~図35を用いて、主制御基板16からメダル数制御基板17へ送信されるコマンドについて説明する。
図14は、遊技機設置情報コマンドを説明する図である。図14に示されるように、遊技機設置情報コマンドは、22バイト長を有するコマンドである。1バイト目には、遊技機設置情報コマンドの電文長が格納される。2バイト目には、通番が送信される。遊技機設置情報コマンドは、電源投入後、メダル数制御基板17が通番の初期値と加算値を決定する前に送信されるコマンドであるため、通番として「0」の値が固定されて格納される。3バイト目~6バイト目には、それぞれ、コマンド番号、遊技機特性、遊技機種別、識別コードを示す値が格納される。7バイト目~10バイト目には、メインチップIDが有する固有ナンバーレジスタの1~4バイト目の値が格納される。メダル数制御基板17は、7バイト目~10バイト目のメインチップIDの値を用いて、通番の初期値及び加算値を定める。
11バイト目~13バイト目には、メーカーコードが格納される。14バイト目~21バイト目には、製品コードが格納される。22バイト目には、1バイト目~21バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。
図15は、遊技機特性の詳細を示す図である。以下では、遊技設置情報コマンドの4バイト目に示される遊技機特性の詳細について説明する。遊技機特性は、0ビット目~7ビット目までの1バイトのデータである。0ビット目は、スロットマシン2が、RB(レギュラーボーナス)搭載であるか否かを示す。スロットマシン2がRB搭載である場合、0ビット目は「1」となり、スロットマシン2がRB搭載でない場合、0ビット目は「0」となる。
1ビット目は、スロットマシン2が、BB(ビッグボーナス)搭載であるか否かを示す。スロットマシン2がBB搭載である場合、1ビット目は「1」となり、スロットマシン2がBB搭載でない場合、1ビット目は「0」となる。2ビット目は、スロットマシン2がCT(チャレンジタイム)搭載であるか否かを示す。スロットマシン2がCT搭載である場合、2ビット目は「1」となり、スロットマシン2がCT搭載でない場合、2ビット目は「0」となる。3ビット目は、スロットマシン2がCB(チャレンジボーナス)搭載であるか否かを示す。スロットマシン2がCB搭載である場合、3ビット目は「1」となり、スロットマシン2がCB搭載でない場合、3ビット目は「0」となる。
4ビット目は、スロットマシン2がSB(シングルボーナス)搭載であるか否かを示す。スロットマシン2がSB搭載である場合、4ビット目は「1」となり、スロットマシン2がSB搭載でない場合、4ビット目は「0」となる。5ビット目は、スロットマシン2が指示機能搭載であるか否かを示す。スロットマシン2が指示機能搭載である場合、5ビット目は「1」となり、スロットマシン2が指示機能搭載でない場合、5ビット目は「0」となる。6ビット目は、スロットマシン2の指示種別を示す。スロットマシン2の指示種別が7Pタイプである場合、6ビット目は「1」となり、スロットマシン2の指示種別が7Uタイプである場合、6ビット目は「0」となる。7ビット目は使用されず、「0」が格納される。
図16は、役物情報コマンドの構成を示す図である。役物情報コマンドは、メダル数制御基板17が遊技機性能情報、役比モニタ情報を更新するためのコマンドである。役物情報コマンドは、終了時コマンドが送信された後にメダル数制御基板17へ送信される。
役物情報コマンドは、5バイトのデータから構成される。1バイト目には、役物情報コマンドの電文長が格納される。2バイト目には、通番が格納される。3バイト目には、コマンド番号を示す値が格納される。図13に示されるように、役物情報コマンドのコマンド番号は、「1」である。
4バイト目には、役物作動情報が格納される。役物作動情報は、現在、いずれかのボーナスに当選中であるか否かを示す情報が格納される。5バイト目には、1バイト目~4バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。
図17は、役物作動情報の詳細を示す図である。役物作動情報は、役物情報コマンドの4バイト目に格納されるデータである。役物作動情報は、0ビット目~7ビット目までの1バイトのデータから構成される。0ビット目には、RBが作動中であるかを示す「一種」の情報が格納される。1ビット目には、BBが作動中であるかを示す「一種連」の情報が格納される。2ビット目には、CTが作動中であるかを示す「二種」の情報が格納される。3ビット目には、CBが作動中であるかを示す「二種連」の情報が格納される。5ビット目には、SBが作動中であるかを示す「普通役物」の情報が格納される。4ビット目、6ビット目、7ビット目は使用されず、「0」が格納される。
図18は、有利区間情報コマンドの構成を示す図である。有利区間情報コマンドは、メダル数制御基板17が遊技機性能情報、役比モニタ情報を更新するためのコマンドである。有利区間情報コマンドは、終了時コマンドが送信された後に、送信される。
有利区間情報コマンドは、5バイトのデータから構成される。1バイト目には、役物情報コマンドの電文長が格納される。2バイト目には、通番が格納される。3バイト目には、コマンド番号を示す値が格納される。図13に示されるように、有利区間情報コマンドのコマンド番号は、「2」である。
4バイト目には、有利区間情報が格納される。有利区間情報は、有利区間における再遊技、指示情報に関するデータが送信される。5バイト目には、1バイト目~4バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。
図19は、有利区間情報の詳細を示す図である。有利区間情報は、有利区間情報コマンドの4バイト目に格納されるデータであり、有利区間情報コマンドが送信される前に、行われた遊技に関する情報を示すデータである。
有利区間情報は、0ビット目~7ビット目までの1バイトのデータから構成される。0ビット目には、有利区間情報コマンドが送信される前に行われた遊技が有利区間中であったか否かを示す情報が格納される。有利区間中であった場合、0ビット目には、「1」が格納される。1ビット目には、有利区間情報コマンドが送信される前に行われた遊技において指示情報があったか否かを示す情報が格納される。指示情報があった場合は、1ビット目には、「1」が格納される。4ビット目には、有利区間情報コマンドが送信される前に行われた遊技において再遊技図柄組み合わせが表示されたか否かを示す情報が格納される。再遊技図柄組み合わせが表示された場合は、4ビット目には、「1」が格納される。2,3,5,6,7ビット目は使用されず、「0」が格納される。
図20は、投入コマンドの構成を示す図である。投入コマンドは、1BETスイッチ20が押下されたとき、または、MAXBETスイッチ6が押下されたときに、主制御基板16からメダル数制御基板17へと送信される。すなわち、主制御基板16は、一のゲームを開始するための賭数を設定するための賭数設定操作を受け付けたときに、投入コマンドをメダル数制御基板17に送信する。また、図13を参照して、投入コマンドは双方向性を有するコマンドであるため、メダル数制御基板17は、投入コマンドを受信したときに、投入コマンドに応答する応答コマンドを主制御基板16に送信する。投入コマンドは、5バイトのデータから構成される。1バイト目には、投入コマンドの電文長が格納される。2バイト目には、通番が格納される。3バイト目には、コマンド番号を示す値が格納される。図13に示されるように、投入コマンドのコマンド番号は「3」である。
4バイト目には、投入メダル数が格納される。賭数が0枚、1枚、または2枚のいずれかの状態で1BETスイッチ20が押下された場合、投入メダル数は1枚となる。賭数が0枚の状態でMAXBETスイッチ6が押下された場合、投入メダル数は3枚となり、賭数が1枚の状態でMAXBETスイッチ6が押下された場合、投入メダル数は2枚となり、賭数が2枚の状態でMAXBETスイッチ6が押下された場合、投入メダル数は1枚となる。再遊技作動状態のときにおいて、1BETスイッチ20またはMAXBETスイッチ6が押下されて、投入コマンドが送信される場合、投入メダル数にはデータが格納されない。5バイト目には、1バイト目~4バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。「再遊技作動状態」とは、再遊技役が入賞した後の状態を示す。
図21は、精算コマンドの構成を示す図である。精算コマンドは、賭数クリアスイッチ21が押下されたときに、主制御基板16からメダル数制御基板17へと送信される。すなわち、主制御基板16は、一のゲームを開始するための賭数をキャンセルするための精算操作を受け付けたときに、精算コマンドをメダル数制御基板17に送信する。また、図13を参照して、精算コマンドは双方向性を有するコマンドであるため、メダル数制御基板17は、精算コマンドを受信したときに、精算コマンドに応答する応答コマンドを主制御基板16に送信する。精算コマンドは、5バイトのデータから構成される。1バイト目には、精算コマンドの電文長が格納される。2バイト目には、通番が格納される。3バイト目には、コマンド番号を示す値が格納される。図13に示されるように、精算コマンドのコマンド番号は、「4」である。
4バイト目には、精算メダル数が格納される。賭数が1枚の状態で賭数クリアスイッチ21が押下された場合、精算メダル数は1枚となり、賭数が2枚の状態で賭数クリアスイッチ21が押下された場合、精算メダル数は2枚となり、賭数が3枚の状態で賭数クリアスイッチ21が押下された場合、精算メダル数は3枚となる。5バイト目には、1バイト目~4バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。
図22は、開始時コマンドの構成を示す図である。開始時コマンドは、スタートスイッチ7が押下されたときに、主制御基板16からメダル数制御基板17へ送信される。すなわち、主制御基板16は、一のゲームを開始するときに、開始時コマンドをメダル数制御基板17へ送信する。開始時コマンドは、再遊技作動状態でスタートスイッチ7が押下された場合であっても、送信される。開始時コマンドは、メダル数制御基板17が管理するクレジット数に直接的に影響を及ぼさないコマンドである。そのため、メダル数制御基板17は、開始時コマンドを受信したときに、開始時コマンドに対する応答コマンドを主制御基板16へ送信せず、開始時コマンドに応じた制御を行う。開始時コマンドに応じた制御とは、例えば、ゲーム終了待ち状態に制御する処理や終了時コマンドを受信するための準備処理などが該当する。主制御基板16は、開始時コマンドを送信した後はメダル数制御基板17からの応答を待たずに次の制御を行う。次の制御とは、リールを駆動させる制御などである。
開始時コマンドは、5バイトのデータから構成される。1バイト目には、開始時コマンドの電文長が格納される。2バイト目には、通番が格納される。3バイト目には、コマンド番号を示す値が格納される。図13に示されるように、開始時コマンドのコマンド番号は、「6」である。
4バイト目には、ホールコンピュータに送信する1~3の投入パルス数が格納される。再遊技作動状態においても、投入規定数分の投入パルス数が送信される。5バイト目には、1バイト目~4バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。
図23は、終了時コマンドの構成を示す図である。終了時コマンドは、全てのリールが停止したとき、すなわち、第3停止されたときに、主制御基板16からメダル数制御基板17へ送信される。言い換えれば、主制御基板16は、一のゲームを終了するときに、終了時コマンドをメダル数制御基板17へ送信する。終了時コマンドには、導出された図柄の組み合わせに応じて定められる払出メダルの枚数が含まれる。メダルが遊技者に払い出される場合、クレジット数は増加する。そのため、終了時コマンドは、メダル数制御基板17が管理するクレジット数に直接的に影響を及ぼすコマンドである。よって、メダル数制御基板17は、終了時コマンドを受信したとき、応答コマンドを主制御基板16へ送信する。また、主制御基板16は、終了時コマンドを送信した後は当該応答コマンドを受信したことを条件に次の制御を行う。次の制御とは、遊技補助表示器12に表示するデータの更新処理などが該当する。
ようするに、メダル数制御基板17は、終了時コマンドを受信したときに、該終了時コマンドに応答する応答コマンドを主制御基板16に送信するとともに、該終了時コマンドに応じた制御を行う。該終了時コマンドに応じた制御とは、例えば、払出メダル数をクレジット数に加算する制御である。
終了時コマンドは、5バイトのデータから構成される。1バイト目には、終了時コマンドの電文長が格納される。2バイト目には、通番が格納される。3バイト目には、コマンド番号を示す値が格納される。図13に示されるように、終了時コマンドのコマンド番号は、「5」である。
4バイト目には、払出メダル数が格納される。払出メダル数は、最大15枚のメダル数となる。再遊技の図柄組み合わせが導出された場合、または、払出メダル数がない場合は、4バイト目には「0」が格納される。すなわち、終了時コマンドは、一のゲームを終了するときに、該一のゲームの結果に応じて遊技者に付与される遊技価値を特定可能なコマンドである。5バイト目には、1バイト目~4バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。
図24は、払出パルスコマンドの構成を示す図である。払出パルスコマンドは、全リール停止したとき、すなわち、第3停止されたときに、主制御基板16からメダル数制御基板17へ送信される。払出パルスコマンドは、メダル数制御基板17と接続された図示しないホールコンピュータへ、入賞に応じて遊技者に付与されるメダル数を送信するためのパルス信号である。メダル数制御基板17は、払出パルスコマンドを受信した後、図示しないホールコンピュータへ払出パルス信号を送信する。これにより、ホールコンピュータは、スロットマシン2における払出枚数を記憶することができる。払出パルスコマンドは、再遊技作動状態であるときにおいてもメダル数制御基板17へ送信される。主制御基板16は、払出パルスコマンドを送信した後はメダル数制御基板17からの応答を待たずに次の制御を行う。
払出パルスコマンドは、5バイトのデータから構成される。1バイト目には、払出パルスコマンドの電文長が格納される。2バイト目には、通番が格納される。3バイト目には、コマンド番号を示す値が格納される。図13に示されるように、払出パルスコマンドのコマンド番号は、「7」である。
4バイト目には、ホールコンピュータに送信するための払出パルス数が格納される。払出パルス数は、最大で15のパルス数となる。再遊技の図柄組み合わせが導出された場合、または、払出メダル数がない場合は、4バイト目には「0」が格納される。5バイト目には、1バイト目~4バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。
図25は、大当りコマンドの構成を示す図である。大当りコマンドは、大当りの開始時及び終了時に主制御基板16からメダル数制御基板17へ送信される。また、大当りコマンドは、電源投入時にホットスタート時である場合においても主制御基板16からメダル数制御基板17へ送信される。これにより、スロットマシン2では、ホールコンピュータ信号をバックアップせずともホールコンピュータ信号を復旧させることができる。
大当りコマンドは、5バイトのデータから構成される。1バイト目には、大当りコマンドの電文長が格納される。2バイト目には、通番が格納される。3バイト目には、コマンド番号を示す値が格納される。図13に示されるように、大当りコマンドのコマンド番号は、「8」である。
4バイト目には、ホールコンピュータ信号が格納される。ホールコンピュータ信号は、ホールコンピュータにスロットマシン2の大当り情報を通知するための信号である。RB、BB、ATなどの大当り種別などが格納される。5バイト目には、1バイト目~4バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。
図26は、ホールコンピュータ信号の詳細を示す図である。ホールコンピュータ信号は、大当りコマンドの4バイト目に格納されるデータである。ホールコンピュータ信号は、0ビット目~7ビット目までの1バイトのデータから構成される。0ビット目には、大当りの種別がRBであることを示す情報が格納される。1ビット目には、大当りの種別がBBであることを示す情報が格納される。2ビット目には、大当りの種別がATであることを示す情報が格納される。3ビット目~7ビット目は使用されず、「0」が格納される。
図27は、遊技機不正1コマンドの構成を示す図である。遊技機不正1コマンドは、設定変更・設定確認の開始、終了時に主制御基板16からメダル数制御基板17へ送信される。
遊技機不正1コマンドは、5バイトのデータから構成される。1バイト目には、遊技機不正1コマンドの電文長が格納される。2バイト目には、通番が格納される。3バイト目には、コマンド番号を示す値が格納される。図13に示されるように、遊技機不正1コマンドのコマンド番号は、「9」である。
4バイト目には、設定情報が格納される。設定情報は、設定変更・設定確認される際の情報、及び、その際に不正を検知したか否かなどを示す情報である。5バイト目には、1バイト目~4バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。
図28は、設定情報の詳細を示す図である。設定情報は、遊技機不正1コマンドの4バイト目に格納されるデータである。設定情報は、0ビット目~7ビット目までの1バイトのデータから構成される。0ビット目には、設定変更中であるか否かを示すデータが格納される。1ビット目には、設定確認中であるか否かを示すデータが格納される。2ビット目~4ビット目には、メーカー定義の不正を検知したか否かを示すデータが格納される。6ビット目、7ビット目は使用されず、「0」が格納される。
図29は、遊技機不正2コマンドの構成を示す図である。遊技機不正2コマンドは、スロットマシン2においては未使用のコマンドである。スロットマシン2では、ドア開放検出スイッチ25がメダル数制御基板17に接続されている。したがって、主制御基板16は、メダル数制御基板17にドア情報を送信する必要がない。そのため、4バイト目は、「0」が格納される。
図30は、ドア情報の詳細を示す図である。メダル数制御基板17がドアの開放または閉鎖を検出するため、ドア情報が含む全てのビットは使用されず「0」が格納される。
図31は、遊技機不正3コマンドの構成を示す図である。遊技機不正3コマンドは、スロットマシン2においては未使用のコマンドである。遊技機不正3コマンドは、拡張用のコマンドであり、主制御基板16からメダル数制御基板17へ将来的に新たなコマンドを送信する必要が生じた場合に使用される。
図32は、主制御状態コマンドの構成を示す図である。主制御状態コマンドは、主制御基板16の状態を示すコマンドである。主制御状態コマンドは、予め定められたタイミングで主制御基板16からメダル数制御基板17へ送信される。メダル数制御基板17は、主制御状態コマンドを受信することによって、主制御基板16またはスロットマシン2の状態を取得することができる。
主制御状態コマンドは、5バイトのデータから構成される。1バイト目には、主制御状態コマンドの電文長が格納される。2バイト目には、通番が格納される。3バイト目には、コマンド番号を示す値が格納される。図13に示されるように、主制御状態コマンドのコマンド番号は「12」である。4バイト目には、遊技機状態信号が格納される。5バイト目には、1バイト目~4バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。
図33は、主制御基板エラーコマンドの構成を示す図である。主制御基板エラーコマンドは、主制御基板16で発生したエラーの種類を示すコマンドである。主制御基板エラーコマンドは、主制御基板16にてエラーが発生したとき、及び、発生したエラーが解消したときに、主制御基板16からメダル数制御基板17へ送信される。
主制御基板エラーコマンドは、5バイトのデータから構成される。1バイト目には、主制御状態コマンドの電文長が格納される。2バイト目には、通番が格納される。3バイト目には、コマンド番号を示す値が格納される。図13に示されるように、主制御基板エラーコマンドのコマンド番号は、「13」である。4バイト目には、エラー番号が格納される。エラー番号は、主制御基板16で発生しているエラーの種類を示す番号である。5バイト目には、1バイト目~4バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。
図34は、主制御基板エラー一覧を示す図である。図34に示されるエラー番号は、主制御基板エラーコマンドの4バイト目に格納されるエラー番号である。E6は、リール回転エラーを示すエラー番号である。主制御基板16は、3回連続で原点センサからの入力を検出することができない場合、リール回転エラーが発生したと判断する。リール回転エラーが発生したとき、主制御基板16は、主制御基板エラーコマンドの4バイト目の値を「E6」として送信する。主制御基板16は、図示しないエラー解除スイッチが押下されたことを契機にして、当該エラーが解消されたと判断する。当該エラーが解消されたときにおいても、主制御基板16は、主制御基板エラーコマンドを送信する。
E7は、遊技メダル数オーバーフローエラーを示すエラー番号である。主制御基板16は、遊技メダル数が16383を超えたとき、遊技メダル数オーバーフローエラーが発生したと判断する。遊技メダル数オーバーフローエラーが発生したとき、主制御基板16は、主制御基板エラーコマンドの4バイト目の値を「E7」として送信する。主制御基板16は、図示しないエラー解除スイッチが押下されたとき、当該エラーが解消されたと判断する。当該エラーが解消されたときにおいても、主制御基板16は、主制御基板エラーコマンドを送信する。
E8は、バックアップエラーを示すエラー番号である。主制御基板16は、電源投入後のRAMの検査において、電断前にバックアップしたRAMの値と一致しないとき、バックアップエラーが発生したと判断する。バックアップエラーが発生したとき、主制御基板16は、主制御基板エラーコマンドの4バイト目の値を「E8」として送信する。主制御基板16は、スロットマシン2の電源を切断し、再度設定変更されたことを契機として、当該エラーが解消されたと判断する。当該エラーが解消されたときにおいても、主制御基板16は、主制御基板エラーコマンドを送信する。
E9は、通信異常エラーを示すエラー番号である。主制御基板16は、メダル数制御基板17へ応答コマンドが必要となるコマンドを送信してから、40msが経過する前に応答コマンドを受信しない場合、通信異常エラーが発生したと判断する。通信異常エラーが発生したとき、主制御基板16は、主制御基板エラーコマンドの4バイト目の値を「E9」として送信する。主制御基板16は、図示しないエラー解除スイッチが押下されたとき、当該エラーが解消されたと判断する。当該エラーが解消されたときにおいても、主制御基板16は、主制御基板エラーコマンドを送信する。
図35は、遊技機性能情報(予備)コマンドの構成を示す図である。遊技機性能情報は、性能情報の集計を目的とする情報である。遊技機性能情報は、遊技に基づいて算出された結果を出力するものである。
遊技機性能情報(予備)コマンドは、28バイトのデータから構成される。1バイト目には、遊技機性能情報(予備)コマンドの電文長が格納される。2バイト目には、通番が格納される。3バイト目には、コマンド番号を示す値が格納される。図13に示されるように、遊技機性能情報(予備)コマンドのコマンド番号は、「14」である。4バイト目~27バイト目には、遊技機性能情報が格納され得る。本実施例において、当該予備領域には、「0」が格納される。28バイト目には、1バイト目~27バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。
図36は、メダル数制御基板17から主制御基板16へのコマンド一覧を示す図である。メダル数制御基板17は、主制御基板16に対して2種類のコマンドを送信する。
応答コマンドは、主制御基板16から受信したコマンドに応答するためのコマンドである。例えば、メダル数制御基板17は、終了時コマンドを受信したとき、当該終了時コマンドはクレジット数に影響を与えるコマンドであるため、応答コマンドを送信する。すなわち、応答コマンドは、受信したことに応じて応答するので双方向性を有するコマンドである。応答コマンドは、3~5のコマンド番号が設定され得る。応答コマンドの電文長は、4バイトである。
枠側情報コマンドは、メダル数制御基板17とCU3との間の接続情報を含むシステム情報を送信するコマンドである。メダル数制御基板17は、0.3秒ごとに枠側情報コマンドを主制御基板16に送信する。尚、枠側情報コマンドが送信される所定の期間は、0.3秒ではなく、その他の期間であっても良い。主制御基板16は、枠側情報コマンドを受信しても応答は行わない。そのため、枠側情報コマンドは、双方向性を有さないメダル数制御基板17から主制御基板16への単方向で送信し続けるコマンドである。枠側情報コマンドのコマンド番号は、「81h」であり、電文長は、4バイトである。
図37は、応答コマンドの構成を示す図である。応答コマンドは、4バイトのデータから構成される。1バイト目には、応答コマンドの電文長が格納される。2バイト目には、コマンド番号を示す値が格納される。応答コマンドにおけるコマンド番号は、応答の対象となる受信したコマンドのコマンド番号が格納される。投入コマンドに対する応答コマンドを送信する場合、メダル数制御基板17は、コマンド番号として「3」を格納する。精算コマンドに対する応答コマンドを送信する場合、メダル数制御基板17は、コマンド番号として「4」を格納する。終了時コマンドに対する応答コマンドを送信する場合、メダル数制御基板17は、コマンド番号として「5」を格納する。
3バイト目には、応答コマンドの受領結果を示す情報が格納される。3バイト目は、1~4ビットのデータ領域を含む。3バイト目のデータ領域における0ビット目が「1」である場合、応答コマンドは「受領OK」であることを示す。「受領OK」とは、メダル数制御基板17が受信した受信コマンドが正常である旨を示す。以下では、3バイト目のデータ領域における0ビット目が「1」である応答コマンドを、「受領OKを示す応答コマンド」と称する場合がある。すなわち、応答コマンドは、受信コマンドを正常に受信したことを主制御基板16へ通知するコマンドとなる。受信コマンドとは、応答コマンドの応答の対象となった主制御基板16から送信されたコマンドである。3バイト目のデータ領域における1ビット目が「1」である場合、応答コマンドは「通番不一致」であることを示す。「通番不一致」とは、メダル数制御基板17が受信した受信コマンドが正常でない旨を示す。以下では、3バイト目のデータ領域における1ビット目が「1」である応答コマンドを、「通番不一致を示す応答コマンド」と称する場合がある。すなわち、応答コマンドは、応答の対象となった受信コマンドの通番がメダル数制御基板17で算出した通番と不一致であったことを示す。
3バイト目のデータ領域における2ビット目が「1」である場合、応答コマンドは「遊技メダル数不足」であることを示す。メダル数制御基板17が受信コマンドとして投入コマンドを受信し、クレジット数の減算を要求されたにも関わらず、クレジット数が不足している場合に、2ビット目が「1」が格納された応答コマンドが送信される。
3バイト目のデータ領域における3ビット目が「1」である場合、応答コマンドは「遊技メダル数オーバーフロー」であることを示す。メダル数制御基板17が受信コマンドとして精算コマンドを受信し、クレジット数(遊技メダル数)が上限である場合、3ビット目が「1」が格納された応答コマンドが送信される。4バイト目には、1バイト目~3バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。
図38は、枠側情報コマンドの構成を示す図である。枠側情報コマンドは、上述の通り、0.3秒ごとにメダル数制御基板17から主制御基板16へ送信される。
枠側情報コマンドは、4バイトのデータから構成される。1バイト目には、枠側情報コマンドの電文長が格納される。2バイト目には、コマンド番号が格納される。枠側情報コマンドのコマンド番号は、「81h」である。3バイト目には、メダル数制御基板17のシステム状態を示す情報が格納される。メダル数制御基板17のシステム状態は、計数ボタンが押下されたか否か、CU3とメダル数制御基板17とが正常に接続されているか否かという情報を含む。4バイト目には、1バイト目~3バイト目に送信した情報に誤りが生じていたか否かを判断するためのチェックサムが格納される。
[主制御基板とメダル数制御基板間の通信について]
図39は、主制御基板16とメダル数制御基板17間の通信の一例を示す図である。主制御基板16とメダル数制御基板17間の通信は、シリアル通信が採用される。図39に示すように、主制御基板16は、賭数設定操作がされたことにより投入コマンドを送信する。賭数設定操作とは、1BETスイッチ20またはMAXBETスイッチ6が押下されたことを含む。
メダル数制御基板17は、主制御基板16からコマンドを受信したとき、カウンタを用いて経過時間を測定する。主制御基板16からコマンドを受信したときから10msが経過するまでに、当該コマンドの受信が終了しない場合、メダル数制御基板17は、主制御基板16とメダル数制御基板17との間の通信においてタイムアウトエラーが発生したと判断する。図39の例では、投入コマンドは、メダル数制御基板17が受信してから10msが経過する前に受信が完了しているため、タイムアウトエラーは発生しない。
メダル数制御基板17は、投入コマンドを受信したことに応じて、応答コマンドを送信する。主制御基板16は、メダル数制御基板17からコマンドを受信したとき、カウンタを用いて経過時間を測定する。メダル数制御基板17からコマンドを受信したときから2.24msが経過するまでに、当該コマンドの受信が終了しない場合、主制御基板16は、主制御基板16とメダル数制御基板17との間の通信においてタイムアウトエラーが発生したとして判断する。図39の例では、応答コマンドは、主制御基板16が受信してから2.24msが経過する前に受信が完了しているため、タイムアウトエラーは発生しない。
また、主制御基板16は、投入コマンドなどのメダル数制御基板17からの応答コマンドが必要なコマンドを送信する場合、投入コマンドを送信する契機となった賭数設定操作がされたときからの経過時間を、カウンタを用いて測定する。
賭数設定操作などのイベントが発生したときから40msが経過するまでに、メダル数制御基板17からの応答コマンドの受信が完了しない場合、主制御基板16は、主制御基板16とメダル数制御基板17との間の通信においてタイムアウトエラーが発生したとして判断する。図39の例では、応答コマンドの受信は、賭数設定操作がされてから40msが経過する前に完了しているため、タイムアウトエラーは発生しない。
主制御基板16は、投入コマンドに対する応答コマンドを受信した後に、賭数設定操作がされたことに対応する制御を開始する。
続いて、スロットマシン2のスタートスイッチ7が遊技者によって押下される。主制御基板16は、スタートスイッチ7が押下されたことに基づいて、開始時コマンドをメダル数制御基板17へ送信する。上述の通り、開始時コマンドは、メダル数制御基板17からの応答コマンドを必要としないコマンドである。そのため、メダル数制御基板17は、応答コマンドを送信しない。
最後に、遊技者によって第3停止の操作がされると、全てのリールが停止する。全リールが停止したことに基づいて、主制御基板16は、終了時コマンドをメダル数制御基板17へ送信する。この例では、終了時コマンドは応答コマンドが必要なコマンドであるにも関わらず、メダル数制御基板17は、応答コマンドを送信しない。したがって、主制御基板16は、全リールが停止してから40msが経過するまでに、応答コマンドを受信せず、タイムアウトエラーが発生したと判定する。
図40は、枠側情報コマンドの通信を説明するための図である。図40に示されるように、メダル数制御基板17は、枠側情報コマンドを300msが経過するごとに主制御基板16へ送信する。主制御基板16は、枠側情報コマンドの受信を開始してから、受信が完了するまでに、2.24ms秒を超える期間が経過した場合、タイムアウトエラーが発生したと判断する。
図41は、主制御基板16がコマンド受信をする際の処理を示すフローチャートである。図36に示されるように、メダル数制御基板17は、主制御基板16へ、応答コマンドまたは枠側情報コマンドの2種類のコマンドを送信する。
図41を参照して、主制御基板16は、メダル数制御基板17からコマンドを受信する(S10)。主制御基板16は、受信したコマンドが枠側情報コマンドであるか否かを判断する(S11)。受信したコマンドが枠側情報コマンドである場合(S11でYES)、主制御基板16は、枠側情報コマンドにエラー情報が含まれているか否かを確認する(S12)。当該エラー情報とは、CU3がスロットマシン2と正常に接続されているか否かを示す情報である。枠側情報コマンドにエラー情報が含まれている場合(S12でYES)、主制御基板16は、演出制御基板15に当該エラー情報を送信して、処理を終了する。これにより、演出制御基板15は、スロットマシン2にCU3が接続されていないエラーが発生していることを液晶表示器51に表示することができる。枠側情報コマンドにエラー情報が含まれていない場合(S12でNO)、処理を終了する。
受信したコマンドが枠側情報コマンドでない場合(S11でNO)、すなわち、受信したコマンドが応答コマンドである場合、主制御基板16は、当該応答コマンドに応じた処理を実行して、処理を終了する。
図42は、電源投入からの主制御基板16とメダル数制御基板17との間の通信の流れを示す図である。電源投入スイッチ102が押下されて、主制御基板16に電源が投入されたことに応じて、主制御基板16は、遊技機設置情報コマンドを送信する。その後、賭数設定操作がされたことに応じて、主制御基板16は、投入コマンドを送信する。投入コマンドは、応答コマンドが必要なコマンドであるため、メダル数制御基板17は、投入コマンドを受信したことに基づいて、応答コマンドを主制御基板16へ送信する。例えば、メダル数制御基板17は、遊技メダル数に余裕がある場合は応答コマンドの3バイト目における0ビット目を「1」(受領OK)とし、通番が一致しない場合は応答コマンドの3バイト目における1ビット目を「1」(通番不一致)とし、遊技メダル数が足りない場合は応答コマンドの3バイト目における2ビット目を「1」(遊技メダル数不足)とする。
続いて、主制御基板16は、精算操作がされたことに基づいて、精算コマンドをメダル数制御基板17へ送信する。精算操作とは、賭数クリアスイッチ21が押下されたことを示す操作である。これにより、賭数をクレジット数に戻す処理が実行される。精算コマンドは、応答コマンドを必要とするコマンドであるため、メダル数制御基板17は、精算コマンドを受信したことに基づいて、応答コマンドを主制御基板16へ送信する。例えば、メダル数制御基板17は、遊技メダル数に余裕がある場合は応答コマンドの3バイト目における0ビット目を「1」(受領OK)とし、通番が一致しない場合は応答コマンドの3バイト目における1ビット目を「1」(通番不一致)とし、遊技メダル数がオーバーフローする場合は応答コマンドの3バイト目における3ビット目を「1」(遊技メダル数オーバーフロー)とする。
図42では、再度、賭数設定操作がされ、当該賭数設定操作に基づく通信が行われる。続いて、スタートスイッチ7が押下されたことに基づいて、主制御基板16が開始時コマンドをメダル数制御基板17へ送信する。主制御基板16は、開始時コマンドを送信した後、メダル数制御基板17からの応答を待たずに、リールを駆動させる制御など、ゲームを進行させる制御を行う。メダル数制御基板17は、主制御基板16から開始時コマンドを受信すると、開始時コマンドに応じた制御として、ゲーム終了待ち状態に制御する。開始時コマンドは、応答コマンドを必要としないコマンドであるため、メダル数制御基板17は、応答コマンドを送信しない。
全リール停止したことに基づいて、主制御基板16は、終了時コマンドをメダル数制御基板17へ送信する。メダル数制御基板17は、終了時コマンドの受信に基づいて、応答コマンドを主制御基板16へ送信する。例えば、メダル数制御基板17は、終了時コマンドが正常である場合は応答コマンドの3バイト目における0ビット目を「1」(受領OK)とし、通番が一致しない場合は応答コマンドの3バイト目における1ビット目を「1」(通番不一致)とする。続いて、主制御基板16は、役物情報コマンド、有利区間コマンド、払出パルスコマンドの順番でメダル数制御基板17へ送信する。
このように、主制御基板16は、一のゲームを開始するときは、クレジット数に影響しないため、開始時コマンドを送信した後、メダル数制御基板17からの応答を待たずに次の制御を実行し、一のゲームを終了するときは、クレジット数に影響し得るため、終了時コマンドを送信した後、メダル数制御基板17から送信された応答コマンドを受信したことを条件に次の制御を実行する。これにより、主制御基板16とメダル数制御基板17との間の遣り取りに関して改良を施すことで、主制御基板16は、メダル数制御基板17の状況を確認しながらゲームを進行させることができる。
[通番における処理の例]
上述の通り、主制御基板16とメダル数制御基板17とは、通番を用いて通信をする。すなわち、メダル数制御基板17は、主制御基板16から送信されたコマンドが正常であるか否かを判定するために、通番が一致するかを確認する処理を実行する。以下では、通番における処理の例を図43~図45を用いて説明する。図43は、通番が正常である場合の通信の一例を示す図である。
電源投入に基づいて、主制御基板16は、遊技機設置情報コマンドをメダル数制御基板17へ送信する。上述にて説明した通り、遊技機設置情報コマンドに付与される通番は、「0」である。メダル数制御基板17は、遊技機設置情報コマンドが含むメインチップIDに基づいて、通番における初期値と加算値を定める。図43の例では、メダル数制御基板17は、通番における初期値を「137」とし、加算値を「13」として決定する。主制御基板16は、同様の計算方法を用いて、メインチップIDに基づいて、通番における初期値を「137」とし、加算値を「13」として決定する。
遊技機設置情報コマンドを送信した後、賭数設定操作がされ、主制御基板16は、投入コマンドを送信する。当該投入コマンドは、遊技機設置情報コマンドが送信されてから初めてメダル数制御基板17へ送信されるコマンドである。そのため、主制御基板16は、当該投入コマンドに通番として初期値である「137」を付与して送信する。メダル数制御基板17は、当該投入コマンドに対する応答コマンドを送信する。このとき、メダル数制御基板17は、通信が正常であったため、受領OKを示す応答コマンドを主制御基板16へ送信する。すなわち、メダル数制御基板17は、通番が一致するかを確認する処理によって、主制御基板16から送信された投入コマンドが正常であると判定したときに、該投入コマンドに応答して該投入コマンドが正常である旨を示す応答コマンドを主制御基板16に送信する。
続いて、スタートスイッチ7が押下されたことにより、主制御基板16は、開始時コマンドを送信する。このとき、主制御基板16は、前回送信した通番の値である「137」に加算値「13」を加えた値を付与して送信する。すなわち、主制御基板16は、開始時コマンドの通番として「150」を付与して送信する。
メダル数制御基板17は、通番が「137」である投入コマンドを受信した時点において、次に受信するコマンドの通番を加算値に基づいて「150」であることを算出する。メダル数制御基板17は、開始時コマンドを受信した際に、受信する前に算出した通番の値と、実際に受信した開始時コマンドに付与されている通番の値とが一致するかを確認する処理を実行する。メダル数制御基板17は、通番が一致するため、通信は正常であると判断する。
図44は、通番不一致エラーが発生した場合の通信の一例を示す図である。主制御基板16が賭数設定操作に対応する応答コマンドを受信するまでの処理は、図42と同一であるため、説明を繰り返さない。上述の通り、メダル数制御基板17は、投入コマンドを受信した時点において、次に受信するコマンドに付与されている通番は「150」であると算出する。
図44の例では、賭数設定操作がされた後、不正操作がされる。上述の通り、不正操作とは、例えば、主制御基板16とメダル数制御基板17との間で送受信されるコマンドが改変される操作、または、不正者が主制御基板16またはメダル数制御基板17を制御する操作などを示す。図44では、主制御基板16が不正者によって制御されることにより、主制御基板16は、全リール停止していないにも関わらず、終了時コマンドを送信する。すなわち、図44では、入賞が発生していないにも関わらず、メダル数制御基板17に払出処理を実行させる目的で不正操作が行なわれる。しかしながら、不正者は、主制御基板16のメインチップIDに基づいて定められる通番の初期値及び加算値、さらに、コマンドの送受信の回数を取得することができないため、次のコマンドに付与されるべき通番の値を知ることができない。そのため、図44の例では、不正者は、終了時コマンドに通番「78」を付与して送信しているが、メダル数制御基板17は、算出した通番「150」と実際に受信した通番「78」とが一致しないため、通番不一致エラーが発生したと判断し、通番不一致であることを示す応答コマンドを主制御基板16へ送信する。すなわち、メダル数制御基板17は、通番が一致するかを確認する処理によって主制御基板16から送信された終了時コマンドが正常でないと判定したときに、該終了時コマンドに応答して該終了時コマンドが正常でない旨を示す応答コマンドを主制御基板16に送信する。通番不一致であることを示す応答コマンドを受信した主制御基板16は、終了時コマンド後に行う払出制御を実行しない。これにより、不正操作がされることを防止することができる。
不正操作には、図44に示すような入賞が発生していないにも関わらず、主制御基板16に終了時コマンドを送信させるものだけでなく、下記に示すような不正操作も含まれる。
例えば、不正操作として、主制御基板16におけるRAM161cのBETカウンタに設定されている賭数が0にも関わらず、主制御基板16に賭数キャンセルコマンドを送信させることが考えられる。これにより、不正者は、賭数が設定されていないにも関わらず、メダル数制御基板17が記憶するクレジット数を増加させることができる。
また、不正操作として、主制御基板16が送信する投入コマンドに対して、メダル数制御基板17が送信する応答コマンドを改変することが考えられる。例えば、不正者は、クレジット数が「0」であるにも関わらず、メダル数制御基板17に、受領OKを示す応答コマンドを主制御基板16に送信させる。これにより、不正者は、クレジット数が「0」であるにも関わらず、賭数を設定することができる。
このように、不正操作には、主制御基板16が送信するコマンドを偽造する不正操作、及び、メダル数制御基板17が送信するコマンドを偽造する不正操作が考えられる。本実施例のスロットマシン2では、「通番」を用いることによって、上述に示した不正操作の全てを防止することができる。
続いて、通番「150」が付与された開始時コマンドがメダル数制御基板17に送信される。開始時コマンドに付与された通番「150」は、事前にメダル数制御基板17が算出した通番と一致する。一致したことにより、メダル数制御基板17は、通番不一致エラーが解消したと判断し、受領OKを示す応答コマンドを主制御基板16へ送信する。このように、スロットマシン2では、メダル数制御基板17において通番不一致エラーが解消したことを容易に判断することができる。
図43、図44に示されるように、メダル数制御基板17は、主制御基板16から送信されたコマンドを受信したときに、通番の初期値と加算値とを用いて、主制御基板16から送信されたコマンドが正常であるか否かを判定する。すなわち、メダル数制御基板17は、応答の必要なコマンドを受信した際に応答コマンドを送信し、さらに、当該応答コマンドに通信が正常であるか否かを示す情報が付与されていることにより、主制御基板16は、メダル数制御基板17の状況を確認しながらゲームを進行させることができる。
また、図44に示されるように、通番が不一致であることから不正操作がされている可能性があることを把握することができ、主制御基板16とメダル数制御基板17との間の遣り取りに関してセキュリティが高まる。
図45は、遊技メダルに関するエラーが発生した場合の通信の一例を示す図である。メダル数制御基板17が開始時コマンドを受信するまでの処理は、図42と同一であるため、説明を繰り返さない。主制御基板16は、開始時コマンドを送信した後、全リールが停止したことに基づいて、通番「163」を付与した終了時コマンドを送信する。このとき、終了時コマンドには、払出メダル数が付与されているが、クレジット数が上限値であることから、遊技メダルに関するエラーが発生する。そのため、メダル数制御基板17は、遊技メダル数オーバーフローを示す応答コマンドを主制御基板16へ送信する。これにより、主制御基板16は、払出に関する処理を実行しない。
その後、計数ボタン10が操作されたことなどに基づいて、クレジット数が減算され、メダル数制御基板17が払出メダルを許容することできる状態となる。すなわち、遊技メダルに関するエラーが解消する。その後、主制御基板16は、再度、通番「163」が付与された終了時コマンドをメダル数制御基板17へ送信する。これに対して、メダル数制御基板17は、遊技メダルに関するエラーが発生しないことから、受領OKを示す応答コマンドを送信する。
[遊技機設置情報コマンドの送受信前における通信]
図46は、遊技機設置情報コマンドの送受信前における通信が発生した例を示す図である。上述で説明したように、主制御基板16は、電源投入後に、遊技機設置情報コマンドをメダル数制御基板17へ送信する。
図46の例では、主制御基板16は、電源投入後であって、遊技機設置情報コマンドを送信する前に、終了時コマンドをメダル数制御基板17へ送信する。メダル数制御基板17は、遊技機設置情報コマンドを受信する前に、コマンドを主制御基板16から受信した場合、当該コマンドの種類、付与された通番に関わらず当該コマンドを破棄する。すなわち、メダル数制御基板17は、少なくとも遊技機設置情報コマンドを受信するまでは、主制御基板16から該遊技機設置情報コマンド以外のコマンドに応じた処理を実行しない。
これにより、メダル数制御基板17は、遊技機設置情報コマンドに基づき主制御基板16との間で通信が確立していない状態で、主制御基板16との間で遣り取りを行わないため、主制御基板16とメダル数制御基板17との間の遣り取りに関してセキュリティを高めることができる。すなわち、遊技機設置情報コマンドを受信する前に行われる不正操作を防止することができる。
図46の例では、終了時コマンドが破棄された後に、電源投入に応じて、遊技機設置情報コマンドAがメダル数制御基板17に送信される。メダル数制御基板17は、遊技機設置情報コマンドAを受信したことに基づいて、通番における初期値と加算値とを決定する。
続いて、図46では、メダル数制御基板17は、主制御基板16から、遊技機設置情報コマンドBを受信する。このとき、メダル数制御基板17は、既に遊技機設置情報コマンドAを受信していることから、遊技機設置情報コマンドBに基づいて通番の初期値と加算値を更新しない。すなわち、メダル数制御基板17は、遊技機設置情報コマンドを受信した後、主制御基板16から再び遊技機設置情報コマンドが送信されても、遊技機設置情報コマンドに応じた処理を実行しない。
これにより、メダル数制御基板17は、例えば、メダル数制御基板17に接続された主制御基板16以外の不正基板などによる主制御基板16のなりすましを防止することができる。すなわち、通番の初期値と加算値とが不正に書き換えられることを防止することができる。
[電源投入におけるタイムアウト]
図47は、電源投入におけるタイムアウトの例を示す図である。主制御基板16は、電源投入に基づいて、遊技機設置情報コマンドを送信する。主制御基板16は、電源投入されたときからの経過時間を、カウンタを用いて測定する。
主制御基板16の電源投入されたときから5000msが経過するまでに、主制御基板16が遊技機設置情報コマンドの送信を完了しない場合、主制御基板16は、主制御基板16とメダル数制御基板17との間の通信にいてエラーが発生したとして判断する。すなわち、メダル数制御基板17は、スロットマシン2の電源が投入された後、5000ms以内に遊技機設置情報コマンドを受信することができなかったときに、異常状態に制御する。図47の例では、主制御基板16の電源投入されたときから5000msが経過するまでに、遊技機設置情報コマンドが送信されていないため、メダル数制御基板17は、通信エラーが発生したと判断する。メダル数制御基板17は、通信エラーが発生した旨を、CU3が有する表示器312に表示させる。
これにより、メダル数制御基板17は、スロットマシン2の電源が投入された後、遊技機設置情報コマンドに基づきメダル数制御基板17との間で通信を確立することができなかった場合に、通信異常である旨を外部に知らせることができる。
メダル数制御基板17は、CU制御基板32と接続されている。主制御基板16において、通信エラーが発生している場合であっても、メダル数制御基板17は、CU制御基板32との間で通信をすることができる。
主制御基板16において発生した当該通信エラーは、電源を再投入し、遊技機設置情報コマンドが主制御基板16の電源投入されたときから5000msが経過するまでに正常に送信され、メダル数制御基板17から受領OKを示す応答コマンドが送信されることにより解消する。
[賭数設定操作と精算操作について]
図48は、賭数設定操作と精算操作について説明する図である。上述のように、主制御基板16は、1BETスイッチ20またはMAXBETスイッチ6が押下される賭数設定操作がされることに基づいて、投入コマンドをメダル数制御基板17へ送信する。また、主制御基板16は、賭数クリアスイッチ21が押下される精算操作がされることに基づいて、精算コマンドをメダル数制御基板17へ送信する。
図48に示されるように、主制御基板16は、賭数設定操作がされたことに基づいて、投入コマンドをメダル数制御基板17へ送信する。投入コマンドは、投入メダル数を含むコマンドである。メダル数制御基板17は、受信した投入コマンドに含まれる投入メダル数を読み取り、賭数設定処理を行う。具体的には、メダル数制御基板17が管理するクレジット数から投入メダル数を減算し、賭数に投入メダル数を加算する。例えば、賭数設定処理が実行される前の賭数が0枚であり、賭数設定操作としてMAXBETスイッチ6の有効操作がされた場合、メダル数制御基板17は、クレジット数から3枚を減算し、賭数に3枚を加算する。メダル数制御基板17は、投入コマンドを受信したことに基づいて、応答コマンドを主制御基板16へ送信する。
続いて、主制御基板16は、精算操作がされたことに基づいて、精算コマンドをメダル数制御基板17へ送信する。精算コマンドは、精算メダル数を含むコマンドである。メダル数制御基板17は、受信した精算コマンドが含む精算メダル数を読み取り、賭数キャンセル処理を行う。具体的には、メダル数制御基板17が管理する賭数から精算メダル数を減算し、クレジット数に精算メダル数を加算する。例えば、賭数キャンセル処理が実行される前の賭数が3枚であり、賭数クリアスイッチ21が押下された場合、メダル数制御基板17は、賭数から3枚を減算し、クレジット数に3枚を加算する。メダル数制御基板17は、精算コマンドを受信したことに基づいて、応答コマンドを主制御基板16へ送信する。
ここで、メダル数制御基板17は、投入コマンド及び精算コマンドに対して、共通の応答コマンドを送信する。すなわち、メダル数制御基板17は、投入コマンドを受信したときと、精算コマンドを受信したときとで、共通の応答コマンドを主制御基板16に送信する。具体的には、メダル数制御基板17は、投入コマンドを受信したときと、精算コマンドを受信したときとのいずれにおいても、応答コマンドを主制御基板16に送信する。ここで、メダル数制御基板17では、投入コマンドを受信した場合、クレジット数(遊技メダル数)を加算する処理を実行することはないため、遊技メダル数オーバーフローは生じ得ない。したがって、メダル数制御基板17では、投入コマンドに対する応答コマンドの3バイト目の3ビット目に「1」を格納して送信することはない。
また、メダル数制御基板17では、精算コマンドを受信した場合、クレジット数を減算する処理を実行することはないため、遊技メダル数不足は生じ得ない。したがって、メダル数制御基板17では、投入コマンドに対する応答コマンドの3バイト目の2ビット目に「1」を格納して送信することはない。
このように、メダル数制御基板17は、投入コマンドを受信したときと、精算コマンドを受信したときとで、3バイト目に格納されるデータを使い分けることで、遊技メダル数不足や遊技メダル数オーバーフローを主制御基板16に通知する。これにより、メダル数制御基板17は、賭数設定操作が行われたときと、賭数キャンセル操作が行われたときとで、応答コマンドを共通化することができるため、処理負担を軽減することができる。
図49は、賭数設定操作後、応答コマンドを受信する前に新たに賭数設定操作がされた例を示す図である。図49に示されるように、主制御基板16は、賭数設定操作Aに基づいて投入コマンドを送信する。主制御基板16は、タイムアウトエラーが発生しないように、投入コマンドを送信開始から40msが経過する前に送信を完了するように制御する。メダル数制御基板17は、投入コマンドを受信したことに応じて、応答コマンドを送信する。
図49の例では、賭数設定操作Aを受け付けてから、賭数設定操作Aに基づく投入コマンドに対する応答コマンドを受信する前に、新たに賭数設定操作Bがなされる。主制御基板16は、賭数設定操作Bを受け付けない。すなわち、主制御基板16は、投入コマンドをメダル数制御基板17に送信した後、メダル数制御基板17から応答コマンドを受信するまでは、新たな賭数設定操作を受け付けない。これにより、メダル数制御基板17において賭数設定操作Aに応じた処理が確定していない状況で新たな賭数設定操作Bが受け付けられることを防止することができる。
図50は、精算操作後、応答コマンドを受信する前に新たに精算操作がされた例を示す図である。図50に示されるように、主制御基板16は、精算操作Aに基づいて精算コマンドを送信する。主制御基板16は、タイムアウトエラーが発生しないように、精算コマンドを送信開始から40msが経過する前に送信を完了するように制御する。メダル数制御基板17は、精算コマンドを受信したことに応じて、応答コマンドを送信する。
図50の例では、精算操作Aを受け付けてから、精算操作Aに基づく投入コマンドに対する応答コマンドを受信する前に、新たに精算操作Bがなされる。主制御基板16は、精算操作Bを受け付けない。すなわち、主制御基板16は、精算コマンドをメダル数制御基板17に送信した後、メダル数制御基板17から応答コマンドを受信するまでは、新たな精算操作を受け付けない。これにより、メダル数制御基板17において精算操作Aに応じた処理が確定していない状況で新たな精算操作Bが受け付けられることを防止することができる。
図51は、賭数設定操作後、応答コマンドを受信する前に新たに精算操作がされた例を示す図である。図51に示されるように、主制御基板16は、賭数設定操作に基づいて投入コマンドを送信する。メダル数制御基板17は、投入コマンドを受信したことに応じて、応答コマンドを送信する。
図51の例では、賭数設定操作を受け付けてから、当該賭数設定操作に基づく投入コマンドに対する応答コマンドを受信する前に、新たに精算操作がなされる。主制御基板16は、当該精算操作を受け付けない。すなわち、主制御基板16は、投入コマンドをメダル数制御基板17に送信した後、メダル数制御基板17から応答コマンドを受信するまでは、新たな精算操作を受け付けない。これにより、メダル数制御基板17において賭数設定操作に応じた処理が確定していない状況で新たな精算操作が受け付けられることを防止することができる。
図52は、精算操作後、応答コマンドを受信する前に新たに賭数設定操作がされた例を示す図である。図52に示されるように、主制御基板16は、精算操作に基づいて投入コマンドを送信する。メダル数制御基板17は、投入コマンドを受信したことに応じて、応答コマンドを送信する。
図52の例では、精算操作を受け付けてから、当該精算操作に基づく精算コマンドに対する応答コマンドを受信する前に、新たに賭数設定操作がなされる。主制御基板16は、当該賭数設定操作を受け付けない。すなわち、主制御基板16は、精算コマンドをメダル数制御基板17に送信した後、メダル数制御基板17から応答コマンドを受信するまでは、新たな賭数設定操作を受け付けない。これにより、メダル数制御基板17において精算操作に応じた処理が確定していない状況で新たな賭数設定操作が受け付けられることを防止することができる。
[賭数設定操作と通番]
図53は、賭数設定操作における通番エラーを説明する図である。図53に示されるように、メダル数制御基板17は、遊技機設置情報コマンドを受信したことに基づいて、通番の初期値を「137」に決定する。
その後、スロットマシン2では、賭数設定操作がなされる。主制御基板16は、賭数設定操作に基づいて、投入コマンドを送信する。当該投入コマンドには、通番として「78」が付与されている。すなわち、当該投入コマンドに付与された通番は、通番の初期値と一致しない。そのため、メダル数制御基板17は、通番不一致を示す応答コマンドを主制御基板16へ送信する。主制御基板16は、通番不一致を示す応答コマンドを受信したときから、新たな賭数設定操作を受け付けない。すなわち、主制御基板16は、正常でない旨を示す応答コマンドを受信した場合、賭数設定操作の受付を再開しない。
図54は、精算操作における通番エラーを説明する図である。図54に示されるように、メダル数制御基板17は、遊技機設置情報コマンドを受信したことに基づいて、通番の初期値を「137」に決定する。
その後、スロットマシン2では、賭数設定操作がなされる。主制御基板16は、賭数設定操作に基づいて、投入コマンドを送信する。当該投入コマンドには、通番として「137」が付与されている。すなわち、当該投入コマンドに付与された通番は、通番の初期値と一致する。そのため、メダル数制御基板17は、受領OKを示す応答コマンドを主制御基板16へ送信する。主制御基板16は、受領OKを示す応答コマンドを受信したことに基づいて、賭数設定操作を受け付け、次の制御をする。
続いて、図54では、精算操作がなされる。主制御基板16は、精算操作に基づいて、精算コマンドを送信する。当該精算コマンドには、通番として「78」が付与されている。すなわち、当該精算コマンドに付与された通番は、メダル数制御基板17が算出する通番と一致しない。そのため、メダル数制御基板17は、通番不一致を示す応答コマンドを主制御基板16へ送信する。主制御基板16は、通番不一致を示す応答コマンドを受信したことに基づいて、新たな精算操作を受け付けない。すなわち、主制御基板16は、正常でない旨を示す応答コマンドを受信した場合、精算操作の受付を再開しない。
図53及び図54を参照して、主制御基板16は、メダル数制御基板17において賭数設定操作または精算操作に応じた処理が確定していない状況で新たな賭数設定操作または賭数キャンセル操作が受け付けられることを防止することができる。
[枠側情報の確認処理]
図55は、枠側情報の確認処理を説明する図である。上述で説明したように、メダル数制御基板17は、一定期間ごとに主制御基板16へ、枠側情報コマンドを送信する。枠側情報コマンドが含むシステム情報には、メダル数制御基板17とCU制御基板32とが正常に接続されているか否かを示す接続状況を示す情報が含まれている。
図55の例では、メダル数制御基板17とCU制御基板32との接続が切断される。切断された後、メダル数制御基板17は、接続異常を示す枠側情報コマンドを主制御基板16へ送信する。主制御基板16が接続異常を示す枠側情報コマンドを受信した後、スタートスイッチ7が押下される。このとき、主制御基板16は、開始時コマンドを送信しない。
一方で、図55に示されるように、主制御基板16が接続異常を示す枠側情報コマンドを受信した後であっても、賭数設定操作及び精算操作がされた場合、主制御基板16は、投入コマンド及び精算コマンドを送信する。すなわち、主制御基板16は、一のゲームの開始するための賭数を設定するための賭数設定操作を受け付けたときに、メダル数制御基板17とCU3との接続が正常であるか否かに関わらず、投入コマンドをメダル数制御基板17に送信する。また、主制御基板16は、一のゲームの開始するための賭数をキャンセルするための精算操作を受け付けたときに、メダル数制御基板17とCU3との接続が正常であるか否かに関わらず、精算コマンドをメダル数制御基板17に送信する。さらに、主制御基板16は、メダル数制御基板17とCU制御基板32との接続が回復し、接続正常を示す枠側情報コマンドを受信した後には、開始時コマンドを送信する。すなわち、主制御基板16は、一のゲームの開始時に枠側情報コマンドに基づいて、メダル数制御基板17とCU3との接続状況を確認するとともに、メダル数制御基板17とCU3との接続が正常であるときに該一のゲームを開始する。また、主制御基板16は、開始時コマンドを送信した後はメダル数制御基板17からの応答を待たずに次の制御を行う。次の制御とは、ゲームを開始するためのリールの駆動制御などである。
これにより、主制御基板16は、メダル数制御基板17とCU3との接続が正常であることを条件に一のゲームを開始するため、メダル数制御基板17の状況を確認しながらゲームを進行させることができる。さらに、主制御基板16は、一のゲームを開始するときは、遊技価値に影響しないため、開始時コマンドを送信した後、メダル数制御基板17からの応答を待たずに次の制御を実行することができる。
また、主制御基板16は、メダル数制御基板17とCU3との接続が正常であるか否かに関わらず、賭数設定操作に応じて投入コマンドを送信することができ、精算操作に応じて精算コマンドを送信することができる。
[払出数の表示について]
図56は、払出枚数の表示制御を説明する図である。全リール停止した後、主制御基板16は、終了時コマンドをメダル数制御基板17へ送信する。図56に示す終了時コマンドは、少なくとも1枚以上の払出メダルを伴うコマンドである。メダル数制御基板17は、終了時コマンドを受信したことに基づいて、応答コマンドを送信する。また、メダル数制御基板17は、終了時コマンドが示す払出メダル数に応じて、クレジット数の加算などを行う。主制御基板16は、応答コマンドを受信した後に、遊技補助表示器12へ払出枚数を表示する。すなわち、主制御基板16は、終了時コマンドを送信した後、応答コマンドを受信したことを条件に、払出メダル数を遊技補助表示器12に表示させる。これにより、主制御基板16は、メダル数制御基板17の状況を確認しながら払出枚数を遊技補助表示器12に表示させることができる。
主制御基板16は、応答コマンドを送信した後に、役物情報コマンド、有利区間コマンド、払出パルスコマンドを送信する。すなわち、主制御基板16は、終了時コマンドを送信した後、応答コマンドを受信したことを条件に、特別役が入賞した状態に制御されているか否かを特定可能な役物情報コマンド、有利区間コマンドをメダル数制御基板17に送信する。これにより、主制御基板16は、メダル数制御基板17の状況を確認しながら有利区間などに制御されているか否かをメダル数制御基板17に知らせることができるため、メダル数制御基板17の状況を確認しながら有利区間などにおいて付与された払出枚数が占める割合をメダル数制御基板17に出力させることができる。
[役比モニタについて]
図57は、役比モニタ89を示す図である。図57では、消灯時の役比モニタ89を示されている。図57に示すように、役比モニタ89は、第1セグメントA、第2セグメントB、第3セグメントC、第4セグメントD、第5セグメントE、第6セグメントF、第7セグメントGをそれぞれ点灯/消灯可能な4つの役比情報表示器50a,50b,50c,50dからなり、メダル数制御基板17は、役比情報表示器50a,50b,50c,50dそれぞれに対して表示データを設定することで、第1~第7セグメントA~Gを点灯または消灯させることにより種々の情報を表示可能な表示器である。
図58は、役比モニタ89の表示例を示す図である。メダル数制御基板17は、役比モニタ89に、(1)総累計払出枚数に対する指示込役物払出比率、(2)過去6000ゲーム間の連続役物払出比率、(3)過去6000ゲーム間の役物払出比率、(4)総累計払出枚数に対する連続役物払出比率、(5)総累計払出枚数に対する役物払出比率、(6)総累計払出枚数に対する役物等状態比率を、(1)~(6)の順番で表示させる。以下では、(1)~(6)で示される情報を、表示内容と称する場合がある。
役物払出比率とは、所定の期間の払出枚数に対して特別役(BB)に入賞したときの役物払出数の割合を示す。連続役物比率とは、所定の期間の払出枚数に対して特別役(RB)に入賞したときの役物払出数の割合を示す。また、指示込役物払出比率とは、指示(ナビ)発生時の払出数を役物払出数に含めたときの、所定の期間の払出枚数に対する役物払出数の割合を示す。すなわち、メダルの総累計払出枚数に対して、ナビ報知が行われたときに払い出されたメダルの枚数とBBやRBで払い出されたメダルの枚数との累計枚数の割合である。役物等状態比率とは、所定の期間の遊技回数に対して、特別役(BB、RB、CB、及びSB)に入賞したときの遊技回数の割合を示す。すなわち、役比モニタ89は、付与済みの全ての払出メダル数のうち、特別役に入賞した状態において付与された払出メダル数が占める割合を出力する。役比モニタ89に表示される表示内容は、メダル数制御基板17によって、算出される。
メダル数制御部171は、図58及び上述に示す(1)~(6)の表示順にて表示内容を所定期間毎に切り替えて表示させる際に、各表示が一巡し終えるまでの一の期間内において、ゲームが進行されて、これらの値が新たな値に更新され得る場合であっても、新たな値に更新することを制限して、元の値を用いて表示を一巡させる。
詳しくは、これらの表示が一巡し終えるまでの一の期間内において、ゲームが進行されて、これらの値が新たな値に更新され得る場合には、新たな値を演算してRAM171cに記憶させるが、役比モニタ89に表示内容を表示させるための出力バッファに当該新たな値を設定することなく、元の値を設定することで、役比モニタ89における表示を出力バッファに設定された元の値を用いて一巡させ、一巡の表示が終了したときから、新たな値を出力バッファに設定することで、その後、新たな値で表示を行うようにしても良い。また、これらの表示が一巡し終えるまでの一の期間内において、これらの値が新たな値に更新され得る場合には、新たな値を求めるための演算を行うことを制限して、役比モニタ89における表示を一巡させ、一巡の表示が終了した際に、新たな値を求めるための演算を行い、その後、当該新たな値を用いて役比モニタ89における表示を行うようにしても良い。このようにすることで、役比モニタ89における表示内容が一巡するまでの期間において、異なる時期に演算された値が混在してしまうことを防止できる。
また、メダル数制御基板17は、過去6000ゲーム間の連続役物払出比率、総累計払出枚数に対する連続役物払出比率が規定割合(例えば、60%)を超える場合には、通常と異なる表示態様(例えば、通常が常時点灯であれば、役比モニタ89の上位2桁の点滅点灯など)にて連続役物払出比率を表示する。また、メダル数制御基板17は、過去6000ゲーム間の役物払出比率、総累計払出枚数に対する役物払出比率が規定割合(例えば、70%)を超える場合には、通常と異なる表示態様(例えば、通常が常時点灯であれば、役比モニタ89の上位2桁の点滅点灯など)にて役物払出比率を表示する。
このように連続役物払出比率、役物払出比率が規定割合を超えると、通常と異なる表示態様にて表示されるようになっており、射幸性が高い状態に制御されている可能性があることを警告できるようになっている。
また、メダル数制御基板17は、過去6000ゲーム間の連続役物払出比率、役物払出比率を役比モニタ89に表示させる場合において、電源投入から過去の総ゲーム数が6000ゲームに到達していない状態であるときには、例えば、役比モニタ89の全ての桁の表示を点滅させるなど、通常とは異なる表示態様に制御することで、集計が6000ゲームに到達していないことが認識できるようになっている。すなわち、メダル数制御基板17は、役比モニタ89に表示させる表示内容を算出する処理において、当該処理に用いられるデータの蓄積開始から6000ゲームが消化される期間を経過していないときに、役比モニタ89の全ての桁を点滅させる。尚、メダル数制御基板17は、役比モニタ89に表示させる表示内容を算出する処理において、当該処理に用いられるデータの蓄積開始から6000ゲームが消化される期間を経過していないときに、役比モニタ89の一部の桁を点滅させても良い。これにより、表示されている割合、比率に偏りが生じている可能性が認識できるようになっており、メダル数制御基板17は、連続役物払出比率、役物払出比率を役比モニタ89に表示させるにあたって、データ不足のおそれがあることを外部に知らせることができる。
尚、メダル数制御基板17は、6000ゲームに到達していない状態では、役比モニタ89の下位2桁に「00」を表示し、6000ゲームに到達した以降の状態では、役比モニタ89の下位2桁に表示すべき割合、比率を表示しても良い。すなわち、6000ゲームに到達していない状態では、役比モニタ89の下位2桁の表示態様を、6000ゲーム以降の表示態様とは異なる表示態様とする構成とすることが好ましい。このような構成とすることで、6000ゲームに到達していない状態では、役比モニタ89の上位2桁の表示(例えば、「1C」)により特定される連続役物払出比率などの集計が6000ゲームに到達していないことが認識でき、表示されている割合、比率に偏りが生じている可能性が認識できる。また、6000ゲームに到達していない状態では、役比モニタ89の下位2桁に「00」を表示する構成とすることで、6000ゲームに到達していない状態では、常に役比モニタ89の下位2桁にデータが表示されることとなり、例えば、下位2桁の役比モニタ89の一方にデータが表示されない場合に、役比モニタ89の異常を認識させることができる。
また、メダル数制御基板17は、総累計払出枚数に対する連続役物払出比率を役比モニタ89に表示させる場合において、過去のゲーム数が概ねスロットマシンの設計値に連続役物払出比率が収束する規定ゲーム数(例えば、175000ゲーム)に到達していない状態であるときには、例えば、役比モニタ89の上位2桁の表示を点滅させるなど、通常とは異なる表示態様に制御することで、連続役物払出比率が概ねスロットマシンの設計値に収束する規定ゲーム数に到達していないことが認識できるようになっており、表示されている割合、比率に偏りが生じている可能性が認識できるようになっている。
また、メダル数制御基板17は、総累計払出枚数に対する役物払出比率を役比モニタ89に表示させる場合において、過去のゲーム数が概ねスロットマシンの設計値に役物払出比率が収束する規定ゲーム数(例えば、175000ゲーム)に到達していない状態であるときには、例えば、役比モニタ89の上位2桁の表示を点滅させるなど、通常とは異なる表示態様に制御することで、役物払出比率が概ねスロットマシンの設計値に収束する規定ゲーム数に到達していないことが認識できるようになっており、表示されている割合、比率に偏りが生じている可能性が認識できるようになっている。
また、メダル数制御基板17は、総累計払出枚数に対する指示込役物払出比率を役比モニタ89に表示させる場合において、過去のゲーム数が概ねスロットマシンの設計値に指示込役物払出比率が収束する規定ゲーム数(例えば、175000ゲーム)に到達していない状態であるときには、例えば、役比モニタ89の上位2桁の表示を点滅させるなど、通常とは異なる表示態様に制御することで、指示込役物払出比率が概ねスロットマシンの設計値に収束する規定ゲーム数に到達していないことが認識できるようになっており、表示されている割合、比率に偏りが生じている可能性が認識できるようになっている。
また、メダル数制御基板17は、過去6000ゲーム間の連続役物払出比率、役物払出比率、を算出するために用いるデータが正常か否かを判定し、異常と判定された場合(格納された値がある一定のデータ形式(01繰り返しなど)である場合など)には、異常と判定されたデータ及び当該データに関連するデータを初期化し、役比モニタ89に異常が検知された旨の表示(例えば、「FFFF」)をさせて、その旨を報知するようになっており、これらのデータの算出が正常に行われていないことを認識できるようになっている。
尚、異常と判定されたデータ及び当該データに関連するデータを初期化する際には、例えば、過去6000ゲーム間の連続役物払出比率または役物払出比率のうちのいずれか1つが異常と判定された場合には、これら全てに関するデータを初期化するようにしても良いし、一部のデータのみを初期化するようにしても良い。
また、過去6000ゲーム間または総累計払出枚数に対する連続役物払出比率、役物払出比率、総累計払出枚数に対する指示込役物払出比率を算出するために用いるデータが正常か否かを判定し、異常と判定された場合には、その旨を報知し、その後、所定の操作(例えば、スタートスイッチ7、ストップスイッチ8L、8C、8R、設定キースイッチ37などのスイッチ類が所定の手順で操作されること)されることで、当該データに関する初期化を行うようにしても良い。
また、異常が判定された旨の報知では、前述のように、役比モニタ89に異常が検知された旨の表示(例えば、「FFFF」)をさせて、その旨を報知しても良いし、異常が判定された際に、その旨を特定可能なコマンドを演出制御部151に対して送信し、演出制御部151側において液晶表示器51などにより異常が判定された旨を報知させるようにしても良い。
尚、本実施例では、電源投入後、電力供給が停止するまでの期間において、総累計払出枚数に対する指示込役物払出比率、過去6000ゲーム間の連続役物払出比率、過去6000ゲーム間の役物払出比率、総累計払出枚数に対する連続役物払出比率、総累計払出枚数に対する役物払出比率、総累計払出枚数に対する役物等状態比率が所定期間毎に切り替えて表示されるようになっているが、前面扉1bの開放状態が検出されている場合のみ表示されるようにしたり、所定の操作スイッチ(例えばリセット/設定スイッチ38)の操作が検出されている場合のみ表示されるようにしたり、ゲーム中でないときに表示されるようにしたり、設定変更状態や設定確認中に表示されるようにしたり、電源投入後から所定期間のみ表示されるようにしたりしても良い。また、所定期間毎に自動で切り替わるのではなく、所定の操作がされる毎に表示内容が切り替わるようにしても良い。
また、本実施例では、役比モニタ89の表示内容を算出するために用いるデータ異常が判定されたことや表示内容を算出するためのデータが不十分な期間であることが役比モニタ89を用いて報知される構成であるが、その旨を特定可能なコマンドを演出制御部151に送信し、演出制御部151が制御する液晶表示器51や演出装置にて確認できるようにしても良い。
また、本実施例では、総累計払出枚数に対する指示込役物払出比率、過去6000ゲーム間の連続役物払出比率、過去6000ゲーム間の役物払出比率、総累計払出枚数に対する連続役物払出比率、総累計払出枚数に対する役物払出比率、総累計払出枚数に対する役物等状態比率が、役比モニタ89に表示される構成であるが、これらの表示に加えて設定変更によってRAM171cが初期化されたこと、スロットマシン2に設けられた配線(バックアップ電源の配線など)の断線検出があったときなどに、その旨が認識可能となる内容が役比モニタ89に表示されるようにしても良い。
特に、ボーナス中、有利区間中やボーナスの持越中に設定変更がされてボーナスや有利区間が強制的に終了されたり、持越中のボーナスがクリアされた場合、ボーナスの持越中のままゲームが規定数以上行われたり、故意に有利区間を終了させる操作が行われたりしたこと、すなわち故意に遊技者にとって相対的に有利な遊技状態から不利な遊技状態に移行された場合、及び役比モニタ89に断線などが生じたことにより正常に接続されていない可能性を検出した場合などには、その旨を特定可能に報知する。このようにすることで、役物払出比率、連続役物払出比率、指示込役物払出比率などとして正しい情報が表示されないように不正に操作された可能性があることを認識することができる。
また、総累計ゲーム数や総累計払出枚数などのオーバーフローを回避するために、当該総累計データなどを初期化する構成においては、その旨を特定可能に、前述した役物払出比率、連続役物払出比率、指示込役物払出比率などとして正しい情報が表示されないように不正に操作された可能性がある場合とは異なる態様で、報知することが好ましい。このようにすることで、オーバーフローを回避する処理より総累計ゲーム数や総累計払出枚数などが初期化されたことを、役物払出比率などとして正しい情報が表示されないようにするための不正な操作による初期化とは、別に認識させることができる。
尚、前述のように役物払出比率、連続役物払出比率、指示込役物払出比率などとして正しい情報が表示されないように不正に操作された可能性がある場合には、その旨を検出して当該検出の履歴をメダル数制御基板17側で記録し、当該検出時には報知することなく、その後、所定の操作が行われることで、これらの履歴を、メダル数制御基板17側に設けられた表示器(例えば、役比モニタ89など)や演出制御部151側に設けられた表示器(例えば、液晶表示器51など)、スロットマシン2の外部の表示器(例えば、表示器312)などにより確認できるようにしても良い。
また、設定変更がされたこと、断線検出がされたこと、役比モニタ89の接続不良が発生して役物払出比率、連続役物払出比率、指示込役物払出比率などとして正しい情報が表示されない可能性があること、前述のように役物払出比率、連続役物払出比率、指示込役物払出比率などとして正しい情報が表示されないように不正に操作された可能性があることを演出制御部151が制御する表示器や演出装置にて確認できるようにしても良い。また、ボーナス中、有利区間中やボーナスの持越中に設定変更がされてボーナスや有利区間が強制的に終了されたり、持越中のボーナスがクリアされたりして、役物払出比率、連続役物払出比率、指示込役物払出比率などとして正しい情報が表示されないように不正に操作された可能性があることが検出されたことの履歴を演出制御部151側で記録し、所定の操作でこれらの履歴を確認できるようにしても良い。
[役比情報の初期化処理]
図59は、役比情報の初期化処理を説明するための図である。図59に示されるように、電源投入後、主制御基板16は、遊技機設置情報コマンドAをメダル数制御基板17へ送信する。その後、遊技が繰り返され、主制御基板16は、有利区間コマンド及び払出パルスコマンドをメダル数制御基板17へ送信する。
メダル数制御基板17は、払出パルスコマンドを受信したことに基づいて、役比情報をバックアップメモリ294に記憶させるバックアップ処理を実行する。役比情報とは、役比モニタ89に表示するデータを算出するために使用されるデータであり、役物情報コマンド、有利区間コマンド、払出パルスコマンドに含まれる。メダル数制御基板17は、役比情報を含むコマンドを受信する度に、当該役比情報をバックアップメモリ294に記憶させても良い。
図59の例では、バックアップ処理が実行された後に、主制御基板16に対して不正操作がなされる。上述の通り、「不正操作」とは、主制御基板16とメダル数制御基板17との間で遣り取りされるコマンドが改変される操作または主制御基板16またはメダル数制御基板17を不正に制御する操作などを示す。図44の例では、不正操作がされたことにより、主制御基板16が不正に接続された装置によって制御され、主制御基板16は、遊技機設置情報コマンドBをメダル数制御基板17へ送信する。このとき、メダル数制御基板17は、再び、遊技機設置情報コマンドを受信したことに基づいて、バックアップメモリ294に記憶させていた役比情報を初期化するバックアップ初期化を実行する。すなわち、メダル数制御基板17は、遊技機設置情報コマンドから特定したメインチップIDが、前回受信した遊技機設置情報コマンドから特定したメインチップIDと異なっている場合に、役比モニタ89の表示に用いられるデータを初期化する。
これにより、メダル数制御基板17は、主制御基板16が有するメインチップIDに基づき、主制御基板16が正当なものでない場合は役比情報の表示に用いられるデータを初期化するため、各スロットマシンに対応した正常な役比が出力されることを担保することができる。
[容量内プログラムと容量外プログラムについて]
本実施例のスロットマシン2の主制御部161は、容量内プログラムと、容量外プログラムとを実行する。容量内プログラムとは、内部抽選処理などの遊技の進行に関する命令が記述されたプログラムである。容量外プログラムとは、役比モニタへのデータの出力処理など遊技の進行に直接関わらない命令が記述されたプログラムである。容量内プログラムと容量外プログラムとの間でデータが意図されずに混在すると、不具合が発生し得る。例えば、容量内プログラムの命令によって、容量内RAM領域のデータを書き換えるべきであるにも関わらず、容量外RAM領域のデータが書き換わる場合、プログラムの不具合となり得る。主制御部161は、このような不具合を防止するため、容量内プログラムと容量外プログラムとを区別して、プログラムを実行して、遊技を進行させる。
以下では、図60を用いて、容量外プログラムと容量内プログラムが格納されている領域について説明する。図60は、主制御部161が用いるメモリ領域のアドレスマップである。図60に示すように、主制御部161が用いるメモリ領域は、ROM161bに割り当てられたメモリ領域(0000H~EFFFH)と、RAM161cに割り当てられたメモリ領域(F000H~FFFFH)とを含む。
ROM161bのメモリ領域は、プログラム及び固定データが格納されるプログラム/データ領域と、アクセスが禁止される未使用領域と、その他領域とからなる。その他の領域は、プログラムのタイトル、バージョンなどの任意のデータを設定可能なROMコメント領域と、CALLV命令のサブルーチンの上位アドレス及びタイマ割込処理(メイン)の先頭アドレスが設定されるベクタテーブル領域と、主制御部161の内部機能をハードウェア的に設定するためのパラメータが設定されるHWパラメータ領域と、アクセスが禁止される未使用領域を含む。
RAM161cのメモリ領域は、ワークとして使用可能な使用可能領域(F000H~F400H)と、その他の領域(F401H~FFFFH)とからなる。その他の領域は、主制御部161に搭載されている各機能を制御するためのレジスタ群が格納される内部機能レジスタ領域(FE00H~FEACH)を含む。主制御部161に搭載されている各機能には、例えば、後述するシリアル通信回路の機能が含まれる。すなわち、RAM161cの内部機能レジスタ領域には、シリアル通信回路の機能設定用の記憶領域が含まれる。
ROM161bにおけるプログラム/データ領域は、遊技の進行に直接関わる容量内プログラムが記憶される容量内プログラム領域と、容量内プログラムが用いる容量内データが記憶される容量内データ領域と、遊技の進行に直接関わらない容量外プログラムが記憶される容量外プログラム領域と、容量外プログラムが用いる容量外データが記憶される容量外データ領域と、未使用領域とを含む。
尚、遊技の進行とは、遊技を構成する一連のプロセスを進行させることであり、スロットマシンであれば、賭数を設定してゲームを開始可能とする段階、ゲームを開始してリールを回転させる段階、リールを停止させて表示結果を導出させる段階、表示結果に応じてメダルなどの価値を付与する段階を進行させることである。
尚、上記において記憶領域の前後とは、記憶領域に割り当てられたアドレス値の大小関係であり、アドレスが小さい方が前方となり、アドレスが大きい方が後方となる。このため、一の記憶領域よりも後方に割り当てられた記憶領域とは、一の記憶領域よりもアドレス値が大きい記憶領域が該当し、一の記憶領域よりも前方に割り当てられた記憶領域とは、一の記憶領域よりもアドレス値が小さい記憶領域が該当する。
RAM161cは、容量内プログラムがワークとして用いる容量内RAM領域と、容量外プログラムがワークとして用いる容量外RAM領域と、制御に用いられるデータが格納されることのない領域であり、常に0が格納される未使用領域とを含む。また、容量内RAM領域は、容量内プログラムがデータを退避する容量内スタック領域を含み、容量外RAM領域は、容量外プログラムがデータを退避する容量外スタック領域を含む。容量内RAM領域の最終アドレス(F1FFH)から先頭側アドレスに向かって4バイトの領域には、後述する仮スタック領域が割り当てられ、さらに先頭側アドレスに向かって4バイトの領域には、後述する払出管理仮スタック領域が割り当てられており、容量内スタック領域は、払出管理スタック領域のさらに先頭側アドレス側に割り当てられており、その先頭アドレス側のアドレスに向かってデータが退避されるようになっている。また、容量外スタック領域は、容量内RAM領域の最終アドレス(F1FFH)から先頭側のアドレスに向かってデータが退避されるようになっている。
図61に示すように、容量内RAM領域は、領域A~Fと、未使用領域と、容量内スタック領域と、後述する初期設定処理のみで用いられる払出管理仮スタック領域及び仮スタック領域とにより構成される。領域Aには、設定値、設定キースイッチ37の状態の格納領域が割り当てられている。領域Bには、リールモータ32L、32C、32R等の出力バッファ、ドアコマンド、有利区間中信号バッファ、AT状態、外部信号フラグ等の格納領域が割り当てられている。領域Cには、タイマカウンタ、LEDの出力バッファ、リールモータ32L、32C、32Rの制御データ、外部信号データ等の格納領域が割り当てられている。領域Dには、遊技状態、RTステータス、再遊技メダルカウンタ、BB中のカウンタ等の格納領域が割り当てられている。領域Eには、停止リール情報(停止順等)、当選フラグ、指示番号、有利区間終了フラグ、リール演出、リールモータ状態、メダル投入枚数、乱数、リール状態、リール制御データ等の格納領域が割り当てられている。領域Fには、メダル数制御基板17との制御に関連するデータが格納される払出関連領域が割り当てられている。
ここで、図61に示すように、領域Aから払出管理仮スタック領域までの領域を全初期化対象領域と呼び、領域Bからスタック領域手前の未使用領域までの領域を設定変更開始時初期化対象領域と呼び、領域Cから領域Eまでの領域を設定変更終了時初期化対象領域と呼び、領域D、Eの領域をBB終了時初期化対象領域と呼び、領域Eを毎遊技終了時初期化対象領域と呼ぶ。全初期化対象領域は、RAM異常エラーが発生したときに初期化される領域である。設定変更開始時初期化対象領域は、設定変更が開始した際に初期化される領域である。設定変更終了時初期化対象領域は、設定変更が終了した際に初期化される領域である。BB終了時初期化対象領域は、BB終了時に初期化される領域である。毎遊技終了時初期化対象領域は、遊技(ゲーム)が終了するたびに初期化される領域である。
以下では、容量内プログラム領域、容量内データ領域及び容量内RAM領域をまとめて容量内領域と称す場合があり、容量外プログラム領域、容量外データ領域及び容量外RAM領域をまとめて容量外領域と称す場合がある。
[プログラムが用いる命令]
主制御部161が実行するプログラムは、プログラム全体の進行を管理するメインルーチンと、他のプログラムの実行中に呼び出されるサブルーチンとを含む。
主制御部161にROM161b、RAM161cに格納されたデータを読み出す命令、RAM161cにデータを書き込む命令としてLD命令を含む。LD命令は、メインルーチンまたはサブルーチンにおいて指定されたアドレスに格納された1バイトデータを指定されたレジスタに読み出す命令、またはインルーチンまたはサブルーチンにおいて指定されたレジスタに格納された1バイトデータを、指定されたアドレスに書き込む命令である。
LD命令は、通常のLD命令と、特殊なLD命令であるLDQ命令とを含む。通常のLD命令は、レジスタと、上位アドレス及び下位アドレスの双方を指定し、該指定された上位アドレス及び下位アドレスに格納されているROM161bまたはRAM161cのデータを読み出す命令、または、上位アドレス及び下位アドレスの双方と、レジスタを指定し、指定されたレジスタのデータをRAM161cの指定された上位アドレス及び下位アドレスに書き込む命令である。これに対して、LDQ命令は、レジスタと、下位アドレスのみを指定することで、前述のRAM161cの内部機能レジスタ領域における特別なレジスタ(Qレジスタ)に予め設定された上位アドレス及び指定された下位アドレスによりアドレスを特定し、特定したアドレスに格納されているROM161bまたはRAM161cのデータを指定されたレジスタに読み出す命令、または下位アドレスのみとレジスタを指定することで、特別なレジスタ(Qレジスタ)に予め設定された上位アドレス及び指定された下位アドレスによりアドレスを特定し、指定されたレジスタのデータをRAM161cの特定したアドレスに書き込む命令であり、通常のLD命令に比較して少ないデータ量で所定のデータを所定のレジスタに格納することが可能となる。
また、LDQ命令は、転送先としてHLレジスタやDEレジスタ等の2つのレジスタを指定することで、特別なレジスタ(Qレジスタ)に予め設定された上位アドレス及び指定された下位アドレスにより特定されるアドレス及びそれに続くアドレスに格納された2バイトのデータを読み出すことが可能であり、転送元としてHLレジスタやDEレジスタ等の2つのレジスタを指定することで、特別なレジスタ(Qレジスタ)に予め設定された上位アドレス及び指定された下位アドレスにより特定されるアドレス及びそれに続くアドレスに2バイトのデータを書き込むことが可能である。
メインルーチンまたはサブルーチンにおいてROM161b、RAM161cの特定領域に格納されているデータを読み出す場合に、特殊なLD命令であるLDQ命令を用いることで、特定領域を示す全てのアドレス(上位部分及び下位部分)を指定するのではなく、アドレスの下位部分のみを指定して特定領域のデータを読み出すことまたは特定領域にデータを書き込むことが可能である。LDQ命令を用いることで、上位アドレス及び下位アドレスの双方を指定する通常のLD命令に比較して少ないデータ量にてデータを読み出すことまたは書き込むことが可能となり、データの読出または書込を行う際にアドレスを指定するためのプログラムの無駄を削減することができる。
また、RAM161cの容量内RAM領域に格納された容量内データのうち、特に使用頻度の高い容量内データを、容量内RAM領域のうち先頭アドレスが特定値となる領域に格納するとともに、当該特定値を特別なレジスタ(Qレジスタ)に容量内データの上位アドレスとして設定し、当該容量内データを主制御部161が読み出すときに、LDQ命令を用いて下位アドレスのみ指定することで、容量内データの読出または書込を行う構成とした場合に、上位アドレス及び下位アドレスの双方を指定する通常のLD命令に比較して少ないデータ量にて容量内データを読み出すことまたは書き込むことが可能となり、これらの容量内データの読出または書込を行う際にアドレスを指定するためのプログラムの無駄を削減することができる。
また、主制御部161は、特別なレジスタ(Qレジスタ)に設定する値を、メインルーチンまたはサブルーチンにおいて変更することが可能であり、後述するように起動時において行う初期設定処理での内蔵レジスタの設定において、特別なレジスタ(Qレジスタ)に、特に容量内プログラムによる使用頻度の高い容量内データの先頭アドレスを示す特定値を初期値として設定するようになっている。本実施例においては、特別なレジスタ(Qレジスタ)は、第1Qレジスタと、第2Qレジスタの2つのレジスタが含まれるが、以下では、第1Qレジスタと、第2Qレジスタとを、総称して、単に「特別なレジスタ(Qレジスタ)」と称する。例えば、特別なレジスタ(Qレジスタ)には、初期値として「F0」が記憶される。これにより、容量内プログラムが実行されているときには、容量内プログラムによる使用頻度の高い容量内データの先頭アドレスを示す特定値が特別なレジスタ(Qレジスタ)に設定されるようになっており、容量内プログラムは、LDQ命令を用いて使用頻度の高い容量内データを読み出すことまたは書き込むことができるようになっている。
尚、特殊なLD命令としてLDQ命令で読み出す際に用いる上位アドレスを、特別なレジスタ(例えば、Qレジスタ)以外の所定の記憶領域、例えば、ベクタテーブル領域に設定する構成としても良く、ベクタテーブル領域などの所定の記憶領域に格納された値を用いてアドレスの一部が特定され、アドレスの残りの部分をプログラムにより指定することで、データの格納アドレスが特定可能となる特殊なLD命令を用いる構成であれば、データの読出または書込を行う際にアドレスを指定するためのプログラムの無駄を削減することができる。また、例えば、ベクタテーブル領域を構成する複数の領域に、それぞれアドレスよりもデータ量の小さい識別値を割り当て、これら複数の領域にそれぞれデータの格納アドレスを設定するとともに、識別値を指定することで、識別値に対応する領域に格納されたデータの格納アドレスを特定可能となる特殊なLD命令を用いる構成であっても、データの読出または書込を行う際にアドレスを指定するためのプログラムの無駄を削減することができる。
また、主制御部161にプログラム/データ領域に格納されたプログラムを実行させる命令として、CALL命令(呼出命令)を含む。CALL命令は、メインルーチンまたはサブルーチンにおいて指定されたアドレスに格納されたサブルーチンを呼び出して実行させる命令である。主制御部161は、CALL命令によりサブルーチンを呼び出す場合には、呼び出し元のアドレスをスタック領域に格納し、指定されたアドレスに格納されたサブルーチンを呼び出して実行する。そして、当該サブルーチンの終了時には、RET命令(復帰命令)により、スタック領域に格納されている呼び出し元のアドレス、すなわちCALL命令を実行した呼び出し元のメインルーチンまたはサブルーチンのプログラムに復帰する。
さらに、主制御部161にプログラム/データ領域に格納されたプログラムを実行させる命令として、CALLEX命令(呼出命令)を含む。CALLEX命令は、メインルーチンまたはサブルーチンにおいて指定されたアドレスに格納されたサブルーチンを呼び出すことに加えて、レジスタバンクを切り替える。図62は、主制御部161のCPU161aに含まれるレジスタバンクを説明するための図である。図62に示されるように、CPU161aは、第1レジスタバンクR1と、第2レジスタバンクR2を有する。
第1レジスタバンクR1には、第1Qレジスタ、第1Uレジスタ、第1Aレジスタ、第1Bレジスタ、第1Cレジスタ、第1Dレジスタ、第1Eレジスタ、第1Fレジスタ、第1Hレジスタ、第1Lレジスタの10個のレジスタが含まれる。また、同様に、第2レジスタバンクR2には、第2Qレジスタ、第2Uレジスタ、第2Aレジスタ、第2Bレジスタ、第2Cレジスタ、第2Dレジスタ、第2Eレジスタ、第2Fレジスタ、第2Hレジスタ、第2Lレジスタの10個のレジスタが含まれる。
本実施例における主制御部161は、容量内プログラム領域に記述されているプログラムにしたがって命令を実行する場合、第1レジスタバンクR1を使用し、容量外プログラム領域に記述されているプログラムにしたがって命令を実行する場合、第2レジスタバンクR2を使用する。換言すれば、主制御部161は、容量内プログラム領域に記述されているプログラムにしたがって命令を実行する場合、第2レジスタバンクR2を使用せず、容量外プログラム領域に記述されているプログラムにしたがって命令を実行する場合、第1レジスタバンクR1を使用しない。これにより、本実施例におけるスロットマシン2では、容量内プログラムと容量外プログラムとの間でデータが意図されずに混在し、不具合が発生することを防止できる。尚、以下では、容量内プログラム領域に記述されているプログラムを単に「容量内プログラム」と称し、容量外プログラム領域に記述されているプログラムを単に「容量外プログラム」と称する。
すなわち、主制御部161は、メインルーチンとして容量内プログラムを実行しているときに、第1レジスタバンクR1を使用するが、CALLEX命令によって容量外プログラムがサブルーチンとして呼び出された場合、第1レジスタバンクR1から第2レジスタバンクR2へと切り替える。より具体的には、主制御部161は、CALLEX命令により容量外プログラム領域をサブルーチンとして呼び出す場合には、呼び出し元のアドレスをスタック領域に格納し、指定されたアドレスに格納されたサブルーチンを呼び出して実行する。そして、当該サブルーチンの終了時には、RETEX命令(復帰命令)により、スタック領域に格納されている呼び出し元のアドレス、すなわちCALLEX命令を実行した呼び出し元の容量内プログラムに復帰し、第2レジスタバンクR2から第1レジスタバンクR1に切り替える。これにより、本実施例におけるスロットマシン2では、容量内プログラムを実行しているときと、容量外プログラムを実行しているときとで異なるレジスタバンクを使用することができ、容量内プログラム領域での処理内容と容量外プログラム領域での処理内容とがレジスタ上で混在してしまうことを防止することができる。
第1レジスタバンク及び第2レジスタバンクに含まれる各レジスタには、役割、機能が与えられている。第1Aレジスタ及び第2Aレジスタは、アキュムレータと呼ばれる汎用レジスタであり、種々の機能を有する。第1Bレジスタ,第2Bレジスタ及び第1Cレジスタ,第2Cレジスタも、汎用レジスタであるがAレジスタよりも有する固有の機能は少ない。
第1Fレジスタ及び第2Fレジスタは、フラグレジスタと称される。フラグレジスタは、演算の結果に応じて変化するように構成されている。第1Fレジスタ及び第2Fレジスタの各々は、8ビットで構成され、2ビット目にオーバーフローが生じたか否かを判定するためのフラグが記憶されている。第1レジスタバンクR1及び第2レジスタバンクR2における演算の結果、オーバーフローが生じた場合、フラグレジスタの2ビット目に「1」が格納される。以下では、オーバーフローが生じたことによりフラグレジスタの2ビット目に「1」が格納されることを「フラグレジスタがオン状態となる」と称する。
また、オーバーフロー(桁あふれ)は、加算によるオーバーフローと、減算によるオーバーフローの両方を含む。すなわち、オーバーフローとは、予め定められた記憶領域の容量を越えた演算の結果となることを意味する。オーバーフローは、記憶容量の上限を上回ることと、記憶容量の下限を下回ることの両方を含む。より具体的には、オーバーフローは、「1111 1111 1111 1111」が記憶されている8バイトの記憶領域に対して、「1」加算する処理がされたことを含む。オーバーフローは、「0000 0000 0000 0000」が記憶されている8バイトの記憶領域に対して、「1」減算する処理がされたことを含む。尚、減算によるオーバーフローは、アンダーフローとも称される場合もある。これにより、主制御部161は、演算結果にオーバーフローが生じたか否かを、フラグレジスタを用いて検出することが可能となる。当該オーバーフローの検出処理は、レジスタの機能を用いて検出することが可能であるため、プログラム上で検出することよりも、処理速度が速く、また処理負荷が小さくなる。
[Qレジスタの設定]
図63は、主制御部161の起動処理を示すフローチャートである。主制御部161は、例えば、マイコンなどの制御用コンピュータとして実現される。主制御部161では、ユーザプログラムが実行される前に、例えば、マイコンのハードウェア機能などに関する設定をするための起動処理が実行される。ユーザプログラムとは、遊技進行を制御するためのプログラムであって、ROM161bに格納されているプログラムであり、遊技機メーカーなどによって設計されるプログラムを意味する。一方で、起動処理は、主制御部161自体に設けられた処理であって、主制御部161が起動するとともに自動的に実行される。
主制御部161は、主制御部161に電源が供給されたことにも基づいて、図63に示される主制御部161の起動処理を実行する。図63では、主制御部161のハードウェア機能などに関する設定処理の一例として、第1Qレジスタと第2Qレジスタとに初期値を設定する(Sj1)。Sj1の実行後、図示されていないが、主制御部161は、主制御部161のハードウェア機能などに関する設定処理を行い得る。当該ハードウェア機能などに関する設定処理には、例えば、シリアル通信回路の機能設定などを行う。
本実施例のSj1において、第1Qレジスタの初期値とは、例えば「F0」であり、第2Qレジスタの初期値とは、例えば「F3」である。これにより、主制御部161は、容量内プログラムを実行する際に高い頻度で参照及び書き込みがされる容量内RAM領域の呼び出し処理をするときに、アドレスを指定するためのプログラムの無駄を削減することができる。同様に、主制御部161は、容量外プログラムを実行する際に高い頻度で参照及び書き込みがされる容量外RAM領域の呼び出し処理をするときに、アドレスを指定するためのプログラムの無駄を削減することができる。これにより、本実施例の主制御部161では、容量内プログラムと容量外プログラムのそれぞれにおいて、命令実行時のプログラム容量を削減することができる。
主制御部161は、Sj1にて、第1Qレジスタと第2Qレジスタとに初期値を設定した後、ユーザプログラムを実行する(Sj2)。ユーザプログラムには、図64にて後述する初期設定処理、図67にて後述するメイン処理などが含まれる。このように、ユーザプログラムによって遊技の制御を開始する前に、第1Qレジスタに初期値が設定されるとともに、第2Qレジスタにも初期値が予め設定される。これにより、主制御部161は、遊技の制御を開始する前に第1Qレジスタと第2Qレジスタとに初期値を予め設定し、処理の簡素化を図ることができる。また、このような構成によれば、ユーザプログラムにおいて第1Qレジスタと第2Qレジスタの値を設定する必要がなくなる。すなわち、ユーザプログラムで行われる処理を節減することができる。尚、本実施例において第1Qレジスタの初期値と第2Qレジスタの初期値とは、各々が異なる値であるが、同一の値が初期値として設定されても良い。
[主制御基板16の初期設定処理について]
図64は、主制御基板16が行う初期設定処理を説明する図である。初期設定処理は、ユーザプログラムに含まれ、ROM161bの容量内プログラム領域に記述されている処理である。
主制御基板16は、スロットマシン2への電力供給が開始された際に、リセットの発生によりタイマ割込が禁止に設定された状態で起動し、主制御基板16が備えるROM161bに格納されているプログラムにしたがって各種処理を行う。起動した後は、まず、全ての出力ポート0~9を初期化し、容量内プログラムに含まれる初期設定処理を行う。
初期設定処理はタイマ割込が禁止された状態で開始され、図64に示すように、初期設定処理では、まず、入力ポートの所定領域を参照して(Sa1)、電断検出回路から出力される電断検出信号がON状態であるか否かを判定する(Sa2)。そして、電断検出信号がON状態である場合には、電断検出信号がOFF状態となるまで待機する。その後、スロットマシン2の電源電圧が正常となり、電断検出信号がOFF状態となった後に、内蔵レジスタ設定処理を行う(Sa3)。内蔵レジスタ設定処理では、特に、第1Qレジスタと第2Qレジスタとに値を設定する。第1Qレジスタに「F0」が設定され、第2Qレジスタに「F3」が設定される。すなわち、内蔵レジスタ設定処理では、図63におけるSj1と同様の処理が行われている。換言すれば、第1Qレジスタと第2Qレジスタとに、同一の値が再設定される。
このように、主制御部161は、起動処理のみならずユーザプログラムにおいても、第1Qレジスタに値を設定するとともに、第2Qレジスタに値を設定する。これにより、主制御部161は、ユーザプログラムにおいて、第1Qレジスタ及び第2Qレジスタに値を任意の値に設定することができる。また、仮に、主制御部161の起動処理に異常が発生し、Sj1で第1Qレジスタと第2Qレジスタとに対して初期値の設定が行われなかったとしても、ユーザプログラムにて第1Qレジスタと第2Qレジスタとに値を設定するため、第1Qレジスタと第2Qレジスタとに値が設定されていないことによってユーザプログラムで異常が発生することを防止できる。尚、本実施例のスロットマシン2においては、図62におけるSj1の処理と、図64におけるSa3の処理の両方において、第1Qレジスタ及び第2Qレジスタに値を設定しているが、スロットマシン2は、図63におけるSj1の処理と、図64におけるSa3の処理のいずれか一方の処理だけが行われる構成であっても良い。
続いて、スタックポインタに仮スタック領域のアドレスを設定し(Sa4)、RAMアクセス許可を設定し(Sa5)、容量外RAM領域初期化処理を呼び出して行う(Sa6)。すなわち、Sa6の処理は、容量内プログラムから容量外プログラムを呼び出す処理である。そのため、Sa6の処理名の末尾には「(容量外)」という文言が付されている。図64に示す初期設定処理及び図67に示すメイン処理において、容量内プログラムから容量外プログラムを呼び出す処理の処理名には、末尾に「(容量外)」という文言が付されている。以下では、このような容量内プログラムから容量外プログラムを呼び出す処理を、単に「容量外プログラム呼出処理」と称する。容量外プログラム呼出処理には、上述で説明したCALLEX命令が用いられる。
また、Sa6において容量外RAM初期化処理を呼び出す際に、レジスタが退避されることとなるが、この際、Sa5でスタックポインタに設定された仮スタック領域にレジスタが退避されることとなる。
主制御部161は、Sa6の容量外RAM初期化処理のような容量外プログラム呼出処理が実行するとき、CPU161aが使用するレジスタバンクを第1レジスタバンクR1から第2レジスタバンクR2へと切り替える処理と、第2Qレジスタの値の設定処理を、容量外プログラム呼出処理に該当する処理の始めに実行する。このとき、第2Qレジスタには、「F3」が設定される。すなわち、容量外プログラム呼出処理では、図63におけるSj1と、図64におけるSa3と同様に、第2Qレジスタの値が再設定される。
このように、主制御部161は、遊技の制御が開始される前に、図6におけるSj1と、図64におけるSa3にて第1Qレジスタに値を設定するとともに、容量内プログラムから容量外プログラムを呼び出す容量外プログラム呼出処理が実行される毎に、第2Qレジスタの値を設定する。これにより、本実施例におけるスロットマシン2では、第2レジスタバンクR2の第2Qレジスタに意図しない値が設定されていた場合においても、容量外プログラムが呼び出される度に第2レジスタバンクR2の第2Qレジスタの値を設定し直すことができるため、不具合防止を担保できる。尚、主制御部161は、容量外プログラムが呼び出される度に第2Qレジスタの値を設定しなくても良い。すなわち、上述したように、本実施例におけるスロットマシン2では、遊技の進行の制御が行われる前に、図63におけるSj1の処理と、図64におけるSa3の処理とで、あらかじめ第1Qレジスタ及び第2Qレジスタに値が設定されているため、容量外プログラムが呼び出される度に第2Qレジスタの値を設定しなくとも既に第2Qレジスタに値が設定されているためである。
また、主制御部161は、図63におけるSj1の処理と、図64におけるSa2Qの処理とでは、第2Qレジスタに値を設定せず第1Qレジスタにだけ値を設定し、容量外プログラムが呼び出されたときに、第2Qレジスタの値を設定しても良い。このとき、主制御部161は、電源投入後において容量外プログラムが初めて呼び出されたときだけに第2Qレジスタの値を設定しても良い。すなわち、上述のように、不具合防止を担保のため、容量外プログラムが呼び出される毎に、第2Qレジスタの値を再設定せず、電源投入後に容量外プログラムが初めて呼び出されたときにだけ第2Qレジスタの値の設定することにより、処理の簡素化を図ることができる。
Sa6の容量外RAM初期化処理では、図65に示すように、まず、RAM161cの全領域に格納されているデータの排他的論理和であるRAMパリティを計算し(Sb1)、RAMパリティが0であるか否かを判定する(Sb2)。
電断時に正常に停電処理が行われた場合には、RAM161cの全領域のRAMパリティが0となるようにパリティ調整用データが設定されるようになっており、Sb2においてRAMパリティが0でない場合には、RAM161cに格納されているデータに異常が生じていることが判定される。
また、Sa6では、容量外RAM初期化処理を呼び出す際に、RAM161cの仮スタック領域にレジスタの値が退避されることとなるが、その後、容量外RAM初期化処理が終了してレジスタが復帰した後は、仮スタック領域が使用されることはなく、仮スタック領域の値は、そのまま維持されることとなり、次回電源投入時の初期設定処理において容量外RAM初期化処理を呼び出す際に、再び同じレジスタの値が仮スタック領域に格納されることとなる。すなわち仮スタック領域には、RAM161cのデータに異常が生じていない場合に常時同じデータが格納されていることとなるため、仮スタック領域の値を含めたRAM161cの全領域のRAMパリティに基づいて判定を行ってもRAM161cに格納されているデータに異常が生じているか否かを正常に判定することが可能となっている。
Sb2においてRAMパリティが0であると判定された場合には、破壊診断用データを取得する(Sb3)。破壊診断用データは、停電処理においてRAM161cに設定される1バイトのデータであり、複数のビットが1となるデータである。
Sb3において破壊診断用データを取得した後、RAM161cに設定されている破壊診断用データをクリアし(Sb4)、Sb3で取得した破壊診断用データが0か否かを判定する(Sb5)。
電断時に正常に停電処理が行われた場合には、前述のようにRAM161cに複数のビットが1となる破壊診断用データが設定されるようになっており、Sb5において破壊診断用データが0の場合には、RAMパリティが0であっても全てのデータが初期化されてしまっている可能性があり、このような場合には、RAM161cに格納されているデータに異常が生じていることが判定される。
Sb2においてRAMパリティが0であり、Sb5において破壊診断用データが0でない場合、すなわちRAM161cのデータが異常でないと判定された場合には、図64の初期設定処理に復帰する。
一方、Sb2においてRAMパリティが0でない場合、またはSb5において破壊診断用データが0の場合、すなわちRAM161cのデータが異常であると判定された場合には、初期設定処理、すなわち容量内プログラムに復帰することなく、RAM161cの容量外RAM領域の全領域を初期化し(Sb6)、RAM161cのデータが破壊されている旨を示すRAM破壊診断フラグを容量外RAM領域の所定の領域に設定し(Sb7)、その後、図64の初期設定処理に復帰する。
Sa6の容量外RAM初期化処理の終了後、RAM破壊診断フラグが設定されているか否かを判定し(Sa7)、RAM破壊診断フラグが設定されていないと判定した場合、すなわちRAM161cのデータが異常でないと判定した場合にはSa9に進み、RAM破壊診断フラグが設定されていると判定した場合、すなわちRAM161cのデータが異常であると判定した場合には容量内RAM領域のうち全初期化領域を初期化し(Sa8)、Sa9に進む。Sa8において初期化される全初期化領域は、仮スタック領域及び払出管理仮スタック領域を含まず、仮スタック領域及び払出管理仮スタック領域のデータは維持される。特に、仮スタック領域のデータが維持されることで、次回電源投入時に仮スタック領域にレジスタが退避した痕に、RAMパリティが0となることを担保することができる。
Sa9では、スタックポインタに払出管理仮スタック領域のアドレスを設定し、払出管理領域を初期化する払出管理領域初期化処理を呼び出して実行する(Sa10)。
また、Sa10において払出管理領域初期化処理を呼び出す際に、Sa9でスタックポインタに設定された払出管理仮スタック領域にレジスタが退避されることとなるが、その後、払出管理領域初期化処理が終了してレジスタが復帰した後は、払出管理仮スタック領域が使用されることはなく、払出管理仮スタック領域の値は、そのまま維持されることとなるため、払出管理仮スタック領域の値を含めたRAM161cの全領域のRAMパリティに基づいて判定を行ってもRAM161cに格納されているデータに異常が生じているか否かを正常に判定することが可能となっている。
Sa10の払出管理領域初期化処理の終了後、スタックポインタに容量内スタック領域のアドレスを設定し(Sa11)、設定キースイッチ37がON状態か否かを判定し(Sa12)、設定キースイッチ37がON状態であると判定した場合、すなわち設定キースイッチ37のON状態で電源が投入された場合には、メダル数制御基板17へ遊技機設置情報コマンドを送信し(Sa13)、図65に示す設定変更処理に移行する。
Sa12において設定キースイッチ37がON状態でないと判定した場合には、RAM破壊診断フラグが設定されているか否かを判定し(Sa14)、RAM破壊診断フラグが設定されていないと判定した場合、すなわちRAM161cのデータが異常でないと判定した場合には、リセット/設定スイッチ38がON状態か否かを判定し(Sa15)、リセット/設定スイッチ38がON状態であると判定した場合、すなわち設定キースイッチ37はOFF状態であるが、リセット/設定スイッチ38のON状態で電源が投入され、かつRAM161cのデータが異常でない場合にも、メダル数制御基板17へ遊技機設置情報コマンドを送信し(Sa13)、図65に示す設定変更処理に移行する。
図66に示すように、設定変更処理では、RAM161cの設定変更開始時初期化領域、すなわち容量内RAM領域のうち設定値・設定キースイッチ37のバッファが格納される領域A、容量内スタック領域、払出管理仮スタック領域及び仮スタック領域を除く領域を初期化する(Sc1)。
続いて、容量外RAMクリア処理を呼び出して行う(Sc2)。容量外RAMクリア処理は、前述の容量外プログラム呼出処理である。容量外RAMクリア処理では、容量外RAM領域のうち容量外スタック領域を除く領域を初期化する。
Sc2の容量外RAMクリア処理の終了後、設定変更状態が開始した旨を示す設定変更開始コマンドを演出制御部151に対して送信し(Sc3)、設定キースイッチ37がON状態か否かを判定する(Sc4)。
Sc4において設定キースイッチがON状態でないと判定した場合、すなわち設定キースイッチ37はOFF状態であるが、リセット/設定スイッチ38のON状態で電源が投入され、設定変更処理に移行した場合には、RAMクリア許可フラグがRAM161cに設定されているか否かを判定する(Sc5)。RAMクリア許可フラグは、後述するメイン処理においてRAM161cの初期化後、最初にRAM61cに設定されるものであり、電断前の状態がメイン処理中、すなわち初期設定処理中、設定変更処理中、RAM異常によるエラー処理中以外の状態である旨を示すものである。
Sc5においてRAMクリア許可フラグが設定されていないと判定した場合には、タイマ割込を許可に設定して(Sc6)、RAM161cに異常がある旨を示すRAM異常エラーコードを所定のレジスタに設定して(Sc7)、エラー処理に移行する。エラー処理については後述する。
Sc5においてRAMクリア許可フラグが設定されていると判定した場合には、Sc20に進み、設定変更処理の終了を示す設定変更終了コマンドを演出制御部151に対して送信し、タイマ割込処理(メイン)が1回行われるまで待機する割込1回待ち処理を行い(Sc21)、設定変更終了時に初期化されるRAM161cの領域(設定変更終了時初期化領域)のサイズを設定し(Sc22)、メイン処理に移行する。この場合、すなわち設定キースイッチ37はOFF状態であるが、リセット/設定スイッチ38のON状態で電源が投入され、設定変更処理に移行した場合において、RAMクリア許可フラグが設定されている場合には、容量内RAM領域のうち設定値・設定キースイッチバッファが格納される領域A、容量内スタック領域、払出管理仮スタック領域及び仮スタック領域を除く領域と、容量外RAM領域のうち容量外スタック領域を除く領域と、が初期化されるが、新たに設定値が設定されることはなく、電断前の設定値を維持した状態で、遊技可能な状態に移行することとなる。
Sc4において設定キースイッチがON状態であると判定した場合、すなわち設定キースイッチ37はON状態で電源が投入され、設定変更処理に移行した場合には、RAM161cから設定値をAレジスタに取得し(Sc8)、Aレジスタの設定値から1減算する(Sc9)。この際、RAM161cから取得した設定値から1減算した値がAレジスタに設定される。また、RAM異常によりRAM161cがクリアされ、設定値として0が格納されている場合には、Aレジスタに0が設定される。
次いで、Aレジスタの設定値を1加算し(Sc10)、加算後の設定値が6を超えるか否かを判定し(Sc11)、加算後の設定値が6を超えない場合にはSc13に進み、加算後の設定値が6を超える場合には加算後の設定値を1に補正し(Sc12)、Sc13に進む。
Sc13では、設定値表示器24の出力バッファの値を更新後の設定値に更新し(Sc13)、割込1回待ち処理を行う(Sc14)。これにより、タイマ割込処理(メイン)が1回実行され、設定値表示器24に更新後の設定値が表示される。
その後、リセット/設定スイッチ38またはスタートスイッチ7の操作が検出されるまで待機し(Sc15、Sc16)、Sc15においてリセット/設定スイッチ38の操作が検出された場合には、Sc10に戻り、Sc10~Sc14の処理が行われることで設定値が1加算更新され(加算後の設定値が6を超える場合には1に更新され)、再びリセット/設定スイッチ38またはスタートスイッチ7の操作が検出されるまで待機する(Sc15、Sc16)。
Sc16においてスタートスイッチ7が検出された場合には、設定キースイッチ37のOFF状態が検出されるまで待機し(Sc17)、設定キースイッチ37のOFF状態が検出されると、Aレジスタの設定値を確定してRAM161cに格納し(Sc18)、設定値表示器24の出力バッファの値をクリアし(Sc19)、設定変更処理の終了を示す設定変更終了コマンドを演出制御部151に対して送信し(Sc20)、割込1回待ち処理を行う(Sc21)。これにより、タイマ割込処理(メイン)が1回実行され、設定値表示器24の設定値が消去される。次いで、設定変更終了時に初期化されるRAM161cの領域(設定変更終了時初期化領域)のサイズを設定し(Sc22)、メイン処理に移行する。後述のようにメイン処理では、最初に初期化対象最終アドレスまでの指定サイズ分の領域が初期化されることとなり、設定変更処理の終了後、メイン処理に移行することで、容量内RAM領域における設定変更終了時初期化領域が初期化されることとなる。
図64に戻り、Sa15においてリセット/設定スイッチ38がON状態でないと判定した場合には、スタックポインタをRAM161cに記憶されている電断時の状態に復帰し(Sa16)、メダル数制御基板17へ遊技機設置情報コマンドを送信し(Sa17)、さらに主制御部161が復帰した旨を示す復帰コマンドを演出制御部151に対して送信し(Sa18)、ポート入力処理を2回連続で行う(Sa19、Sa20)。
ポート入力処理は、パラレル入力ポートに入力される各種スイッチ類の検出信号などの入力状態に関する入力状態データ(各種スイッチ類の現在の入力状態を示す入力データ、前回と今回の入力データが同じ状態である旨を示す確定データ、前回から確定データが変化した旨を示すエッジデータ)を更新する処理である。RAM161cの容量内RAM領域の所定領域には、各種スイッチ類の入力状態データを格納するポート入力バッファ0~2が設けられており、ポート入力処理により更新される各種スイッチ類の入力状態データは、その種類毎に予め定められたポート入力バッファの所定ビットに格納されるようになっている。ポート入力処理では、パラレル入力ポートの入力ポート0~2にされる。
各種スイッチ類の検出状態(ON状態またはOFF状態)を入力データとして、ポート入力バッファの所定ビットに格納する。また、前回と今回のポート入力処理での検出状態(ON状態またはOFF状態)を比較して、今回と前回の入力データが同じ状態である場合には、今回の入力データの検出状態を示すように確定データを更新する一方、今回と前回の入力データが異なる状態である場合には、前回の確定データを維持する。また、今回と前回の確定データを比較して、確定データがOFF状態からON状態に変化した場合には、確定データがOFF状態からON状態に変化した旨を示すONエッジデータをポート入力バッファ0~2の所定ビットに格納し、確定データがON状態からOFF状態に変化した場合には、確定データがON状態からOFF状態に変化した旨を示すOFFエッジデータをポート入力バッファ0~2の所定ビットに格納する。ポート入力バッファに格納された各種スイッチ類の入力データ、確定データ、エッジデータは、容量内プログラム及び容量外プログラムから参照することが可能である。
また、初期設定処理では、ポート入力処理を2回連続して行うことで、その後、ポート入力処理が行われる際に、初期設定処理が行われた以後の各種スイッチ類の入力状態すなわちスロットマシン2への電力供給が再開された後の各種スイッチ類の入力状態に基づいて、各種スイッチ類の検出信号などの入力状態に関する入力状態データが作成されるので、意図しない入力状況が特定されてしまうことを防止できるようになっている。また、ポート入力処理において、3回以上のポート入力処理により取得された入力データ(例えば、今回、前回及び前々回の入力データ)に基づいて確定データを作成する構成でも良い。このような構成では、確定データを作成するために必要なポート入力処理の回数よりも1回少ない回数連続してポート入力処理を初期設定処理において行う構成とすることで、初期設定処理が行われた後にポート入力処理が行われる際に、初期設定処理が行われた以後の各種スイッチ類の入力状態に基づいて入力状態データを作成させることができる。
Sa19及びSa20においてポート入力処理を行った後は、全てのレジスタをRAM161cに記憶されている電断前の状態に復帰させ(Sa21)、タイマ割込を許可に設定して(Sa22)、初期設定処理を終了させてタイマ割込処理(メイン)に移行させた後、スロットマシン2への電力供給が停止される前に実行していたメイン処理における処理に復帰する。
一方、Sa14においてRAM破壊診断フラグが設定されていると判定した場合、すなわちRAM161cのデータが異常であると判定した場合にはSa23に進み、メダル数制御基板17へ遊技機設置情報コマンドを送信し、タイマ割込を許可に設定して(Sa24)、RAM161cに異常がある旨を示すRAM異常エラーコードを所定のレジスタに設定して(Sa25)、エラー処理に移行する。
エラー処理は、遊技の進行が不能化されるエラー状態に制御する処理である。所定のレジスタに設定されているエラーコードを特定可能なエラーコマンドを演出制御部151に対して送信し、当該エラーコードをRAM161cの所定領域にその他の処理(例えば、後述するセンサ監視処理など)でも参照可能なエラーフラグとして設定する。また、当該エラーコードを遊技補助表示器12に表示させるように制御する。その後は、所定のレジスタに設定されているエラーコードに応じたエラー状態の解除条件が成立したことが特定されるまでエラー状態の制御を行い、遊技の進行が不能な状態とする。RAM異常エラーコードが所定のレジスタに設定されてエラー状態に移行された場合には、設定キースイッチ37をONにした状態で電源スイッチを投入することによって、設定変更状態に移行させて、RAM161cのデータが初期化され、かつ新たに設定値が設定されることでエラー状態を解除することができるようになっている。一方、設定キースイッチ37をON状態にせずに電源スイッチをONにした場合には、RAM161cの異常が再び検出されて、再度、エラー状態となる。
このように、主制御基板16は、スロットマシン2への電力供給が開始された後には、図62に示す主制御部161の起動処理を実行した後、初期設定処理を含むユーザプログラムを行うようになっており、初期設定処理では、スロットマシン2への電力供給が開始された際の主制御基板16の状態に応じて、タイマ割込処理(メイン)、設定変更処理、エラー処理のいずれかに移行させる。そして、これらの処理に移行させる際に、移行させる処理の種類を特定可能なコマンドを演出制御部151に対して送信するようになっており、タイマ割込処理(メイン)に移行させる場合すなわちスロットマシン2への電力供給が停止される前の制御状態に復帰した場合には、復帰コマンドを演出制御部151に対して送信し、設定変更処理を開始して設定変更状態に移行する場合には、設定コマンド(開始)を演出制御部151に対して送信し、RAM161cの異常によりエラー処理を開始してエラー状態に移行する場合には、エラーコマンドを演出制御部151に対して送信する。
尚、主制御基板16は、初期設定処理から設定変更処理に移行した後は、設定変更状態を経て、ゲームの進行が可能な状態に復帰するようになっており、当該ゲームの進行が可能な状態に復帰する際には、当該設定変更状態が終了されることを特定可能な設定コマンド(終了)を演出制御部151に対して送信する一方で、復帰コマンドは送信しない。また、RAM161cの異常によりエラー処理に移行した後は、上述のように設定変更処理に移行されてエラー状態が解除されることで、ゲームの進行が可能な状態に復帰するようになっており、エラー処理が終了されてゲームの進行が可能な状態に復帰する場合にも、演出制御部151に対して復帰コマンドを送信しない。
このように本実施例では、電源投入時にRAM161cにおける容量内RAM領域及び容量外RAM領域のデータが破壊されているか否かを判定する処理を、容量外プログラムである容量外RAM初期化処理において行うようになっており、容量内プログラムの容量を削減することができる。尚、本実施例では、容量外RAM初期化処理においてRAM161cに格納されているデータの排他的論理和であるRAMパリティを算出し、RAMパリティが正常な値か否かを判定することでRAM161cが破壊されているか否かを判定する構成であるが、複数の領域毎のチェックサムを算出し、電断前のチェックサムが正常な値か否かを判定する等、他の方法でRAM161cが破壊されているか否かを判定する構成でも良い。
また、本実施例では、容量外プログラムによりRAM161cにおける容量内RAM領域及び容量外RAM領域のデータが破壊されていると判定された場合に、容量内プログラムに復帰する前に、容量外RAM領域の初期化を行い、容量内プログラムに復帰した後に、容量内RAM領域の初期化を行うようになっているため、容量内プログラムと容量外プログラムの行き来を減らすことができる。
また、本実施例では、容量内RAM領域が、容量内プログラムの制御命令に伴いデータが退避される領域内スタック領域を含んでおり、電源投入時に、容量内RAM領域及び容量外RAM領域のデータが破壊されているか否かを判定する処理を行うために、容量内プログラムから容量外プログラムを呼び出す際に、容量内スタック領域ではなく、容量内RAM領域内の仮スタック領域にデータを退避するようになっており、電源投入時に、容量外プログラムを呼び出す際に容量内スタック領域に退避するデータによって、電断前の容量内スタック領域内のデータが変化してしまうことを防止できる。
また、容量内RAM領域及び容量外RAM領域のデータが破壊されているか否かを判定する処理では、仮スタック領域を含む領域を対象として判定を行うようになっており、容量内RAM領域及び容量外RAM領域の全てのデータについて破壊されているか否かを判定することが可能となり、領域が区切られることで判定を行う際の処理が複雑となることがない。
尚、容量内RAM領域及び容量外RAM領域のデータが破壊されているか否かを判定する処理において、仮スタック領域を含まない領域を対象として判定を行うようにしても良く、このような構成とすることで、電断時のデータを対象として破壊されているか否かを判定することができる。
また、容量外プログラムによりRAM161cにおける容量内RAM領域及び容量外RAM領域のデータが破壊されていると判定された場合において、容量内RAM領域を初期化する際に仮スタック領域は初期化されないようになっており、電源投入後に設定された仮スタック領域のデータがそのまま維持されるとともに、次回電源投入時において、容量内RAM領域及び容量外RAM領域のデータが破壊されているか否かを判定するための容量外プログラムを呼び出す際に、同じ内容のデータが仮スタック領域に退避されることとなるため、電断時の仮スタック領域のデータを、次回電源投入時において容量内RAM領域及び容量外RAM領域のデータが破壊されているか否かを判定する際のデータと一致させることができる。
また、容量内RAM領域及び容量外RAM領域のデータが破壊されているか否かを判定する際に用いる診断用データ(RAMパリティ)は、容量外プログラムにより作成されるようになっており、容量内プログラムの容量を削減できる。
また、本実施例では、設定キースイッチ37をON状態として電源投入した場合に、設定値を設定する設定変更状態に移行させることが可能であり、主制御部161は、設定変更状態に移行することに関連してRAM161cを初期化し、制御状態を初期化するとともに、設定キースイッチ37をON状態とせず、リセット/設定スイッチ38をON状態として電源投入した場合にも、RAM161cを初期化し、制御状態を初期化するようになっており、設定変更状態に移行させることがなく、制御状態を初期化することができる。
また、RAM異常に伴いエラー状態に制御された場合には、設定キースイッチ37をON状態として電源を再投入し、設定変更状態に移行して設定値が新たに設定されたことにより遊技可能な状態へ移行可能である一方で、RAM異常に伴いエラー状態に制御された場合に、設定キースイッチ37をON状態とせず、リセット/設定スイッチ38をON状態として電源投入した場合には、遊技可能な状態へ移行しないようになっており、データに異常が生じている場合には、新たに設定値が設定されることを担保することができる。
また、RAM異常に伴いエラー状態に制御された場合に、設定キースイッチ37をON状態とせず、リセット/設定スイッチ38をON状態として電源投入した場合には、遊技可能な状態へ移行しないものの制御状態は初期化されるようになっており、データに異常が生じている場合に遊技可能な状態に移行しない場合でもリセット/設定スイッチ38をON状態として電源投入することにより制御状態を初期化することは可能となる。
また、RAM異常に伴うエラー状態に制御されていない場合に設定され、RAM異常に伴うエラー状態に制御される場合にクリアされるRAMクリア許可フラグを有しており、設定キースイッチ37をON状態とせず、リセット/設定スイッチ38をON状態として電源投入した場合に、RAMクリア許可フラグが設定されているか否かを判定し、RAMクリア許可フラグが設定されている場合に遊技可能な状態に移行可能となる。このため、データに異常が生じているにも関わらず、リセット/設定スイッチ38をON状態として電源投入することによって遊技可能な状態に移行してしまうことがない。
また、打止条件が成立した場合に遊技を進行不能な打止エラーによるエラー状態に制御されるとともに、打止エラーによるエラー状態に制御される場合には、設定キースイッチ37をON状態とせず、リセット/設定スイッチ38をON状態として電源投入した場合に、制御状態を初期化して遊技可能な状態へ移行可能となっており、リセット/設定スイッチ38をON状態として電源投入することによって制御状態が初期化されることにより打止エラーによるエラー状態を解除することができる。
[メイン処理について]
図67は、主制御基板16が行うメイン処理の制御内容を説明する図である。尚、メイン処理は、一単位の遊技(1ゲーム)毎に繰り返し実行される。そして、メイン処理の一周期が遊技の一単位に相当している。また、メイン処理は、容量内プログラムに含まれ、複数の処理を含む。上述にて説明したように、図67に示すメイン処理においても、容量外プログラム呼出処理に該当する処理の処理名には、末尾に「(容量外)」という文言が付されている。
図67に示すように、メイン処理では、まず、容量内RAM領域における初期化対象最終アドレスまでの指定サイズ分の領域を初期化する(Sd1)。初期化対象最終アドレスは、容量内RAM領域の領域Eの最終アドレスであり、領域Eの最終アドレスまでの指定サイズ分の領域が初期化されることとなる。設定変更処理から移行した場合には、設定変更終了時初期化領域のサイズが指定されているため、容量内RAM領域のうち設定変更終了時領域が初期化されることとなる。また、BB終了時には、BB終了時初期化領域のサイズが指定されることとなるため、容量内領域のうちBB終了時初期化領域が初期化されることとなる。また、1ゲーム終了時には、1ゲーム終了時初期化領域のサイズが指定されることとなるため、容量内領域のうち1ゲーム終了時初期化領域が初期化されることとなる。
続いて、RAMクリア許可フラグをONに設定し(Sd2)、一遊技が終了した旨を特定可能な遊技終了時コマンドを演出制御部151に対して送信する遊技終了時コマンド送信処理を行う(Sd3)。主制御部161は、前遊技におけるストップスイッチ8L,8C,8Rの操作によって遊技が終了したことに基づいて、遊技終了時コマンドを送信して演出制御部151にゲームの終了を通知する。
次に、容量外プログラムに含まれるRT情報出力処理を行う(Sb4)。RT情報出力処理では、スロットマシン2のRT状態を示すRT情報をスロットマシン外部に設けた試験装置で確認できるようにするための試験信号が送信される。その後、割込複数回待ち処理を実行する(Sd5)。割込複数回待ち処理は、RT情報出力処理で出力される情報の出力時間を担保するために実行される。すなわち、主制御部161は、遊技の進行を所定期間遅延させる目的で割込複数回待ち処理を実行する。割込複数回待ち処理は、遅延処理とも称される。これにより、主制御部161は、前の遊技が終了した時において試験信号を生成した後に、所定期間待ち状態となることによって、例えば、試験用基板などの外部機器が試験信号を確実に受信することを担保することができ、外部機器と主制御部161との間において情報の齟齬が生じることを防止できる。
その後、後述にて説明する遊技開始待ち処理を行って(Sd6)、前の一遊技の制御の終了後から次の一遊技を開始させるまでの処理を行う。遊技開始待ち処理では、賭数設定の受付を開始し、賭数設定操作に応じて賭数を設定する処理を行い、規定数の賭数が設定された状態でスタートスイッチ7の操作が検出されることで、次の一遊技を開始させる処理を行う。
そして、入賞の発生を許容するか否かを決定(内部抽選)するための内部抽選処理を行う(Sd7)。内部抽選処理では、スロットマシン2において予め設定された設定値(1~6)やスタートスイッチ7の検出による遊技の開始と同時に取得された内部抽選用の乱数値に基づいて、入賞の発生を許容するか否か(すなわち、表示結果の導出を許容するか否か)を決定する内部抽選を行う。
続いて、主制御部161は、遊技開始時の出玉制御を行う出玉制御前処理を行う(Sd8)。出玉制御前処理は、有利区間内における出玉制御を行うための前処理である。
その後、AT抽選などが実行された後に、演出制御処理(Sd9)、試験信号生成処理(Sd10)、制御状態コマンド群送信処理(Sd11)、フリーズ制御実行処理(Sd12)を順次行う。
演出制御処理では、主制御基板16が演出制御を行う際に参照する演出用フラグの設定を行う。試験信号生成処理は、容量外プログラム呼出処理に該当する。試験信号生成処理では、スロットマシン2の制御状態を示す情報をスロットマシン外部に設けた試験装置で確認できるようにするための試験信号が送信される。スロットマシン2の制御状態を示す情報には、Sd7における内部抽選処理の抽選結果が含まれる。
制御状態コマンド群送信処理では、一遊技の開始時点における各種の制御状態を特定可能な複数のコマンドを含む制御状態コマンド群を演出制御部151に対して送信する。すなわち、主制御部161は、内部抽選の結果に関する情報及び遊技状態に関する情報を演出制御部151に対して出力する。
フリーズ制御実行処理では、所定終了条件が成立するまで遊技の進行を遅延させるフリーズ制御について、当該フリーズ制御を行う旨の要求の有無を確認して、要求がある場合にフリーズ制御の種類や当該フリーズ制御を行うタイミングをRAM161cの所定領域に設定し、RAM161cに設定されたフリーズ制御の種類やフリーズ制御の実行タイミングに基づいてフリーズ制御を実行する。詳しくは、フリーズ制御を行う旨が設定されている場合には、フリーズ制御を実行して所定期間にわたり遊技の制御を遅延させる。
また、フリーズ制御の種類として、リール2L、2C、2Rを用いた演出(以下、リール演出と呼ぶ)を伴うフリーズ制御の種類が設定されている場合には、リールモータ32L、32C、32Rを励磁させる励磁パターンとして演出用加速パターン(例えば、遊技でのリールの回転と異なる方向に回転させる加速パターン、遊技でのリールの回転に比べて遅い速度で、遊技での回転と同じ方向に回転を開始させる加速パターン、リールを振動させる加速パターンなど)をRAM161cの所定領域に設定して、フリーズ制御を行っている期間内においてリール演出を行うように制御する。
その後、割込複数回待ち処理を実行する(Sd13)。割込複数回待ち処理は、試験信号生成処理で出力される情報の出力時間を担保するために実行される。すなわち、主制御部161は、遊技の進行を所定期間遅延させる目的で割込複数回待ち処理を実行する。Sd13における割込複数回待ち処理と、Sd5における割込複数回待ち処理とは、共通の処理である。すなわち、主制御部161は、スタートスイッチ7が操作されてリールの回転が開始されたときに実行されるときと、ストップスイッチ8L,8C,8Rの操作によって遊技が終了したときとで共通の割込複数回待ち処理を実行する。これにより、遊技開始時と遊技終了時とにおいて行われる遅延処理を共通化することによって、記憶容量の削減を図ることができる。本実施例においては、Sd5における割込複数回待ち処理が実行されることによって、約130ミリ秒(0.13秒)の遅延が生じる。
また、共通で実行される割込複数回待ち処理において、スロットマシン2の状態をエラー状態に制御するか否かの判定処理を実行しない。エラー状態に制御するか否かの判定処理とは、例えば、Sd29に示されるエラーチェック処理である。これにより、主制御部161は、遅延処理中にエラー状態に制御されてしまうことで、試験用基板に送信した試験信号の情報と、エラー状態となったスロットマシン2の情報との間に齟齬が生じることを防止することができる。
Sd13において割込複数回待ち処理を行った後は、前回の遊技におけるリール回転開始時点からの経過時間を計時するためにRAM161cの所定領域に設定されている一遊技時間管理用タイマを参照して(Sd14)、一遊技時間管理用タイマに基づいて前回の遊技におけるリール回転開始時点から一遊技の規定時間(本実施例では4.1秒)が経過したか否かを判定する(Sd15)。このとき、主制御部161は、Sd13にて割込複数回待ち処理が行われることを考慮して、一遊技の規定時間(本実施例では4.1秒)が経過したか否かを判定する。主制御部161は、スタートスイッチ7が操作されタイミングによっては、一遊技の規定時間(4.1秒)が経過するよりも前に割込複数回待ち処理が終了するタイミングで、複数回待ち処理を実行する。より具体的には、主制御部161は、前回の遊技におけるリール回転開始時点から3.97秒が経過する前に割込複数回待ち処理の実行可能なタイミングでスタートスイッチ7が操作された場合、少なくとも3.97秒が経過する前に割込複数回待ち処理の実行を開始する。
これにより、前の遊技のリール回転開始したときからの次の遊技のリール回転開始が可能となるまでの特定時間に、遅延処理によって発生する0.13秒を含めず、適切に4.1秒が経過したか否かを判断することができる。ようするに、主制御部161は、所定遊技において、所定遊技の前の遊技におけるスタートスイッチ7の操作から4.1秒が経過した後にリール回転開始コマンド送信処理を実行する。また、主制御部161は、遅延処理を実行した後に、一遊技の規定時間が経過したか否かを判定するSd15の処理をする。すなわち、主制御部161は、一遊技の規定時間の終了時がよりも前に、遅延処理が終了するように遅延処理を実行する。
そして、一遊技の規定時間が経過していないと判定した場合は、一遊技時間管理用タイマに基づいて一遊技の規定時間が経過するまで待機し、一遊技時間管理用タイマに基づいて一遊技規定時間が経過した後に、一遊技時間管理用タイマに予め定められた所定値(本実施例では、4.1秒に対応する値)を設定して、新たにリール回転開始時点からの経過時間の計時を開始させ(Sd16)、リール2L、2C、2Rの回転制御を開始させる旨を特定可能なリール回転開始コマンドを演出制御部151に対して送信するリール回転開始コマンド送信処理を行う(Sd17)。一方、Sd15において一遊技の規定時間が経過していると判定した場合は、直ちに、Sd16~Sd17の処理を行う。尚、一遊技時間管理用タイマは、Sd16において所定値が設定された後は、所定時間毎に減算されて、遊技におけるリール回転開始時点から一遊技の規定時間(本実施例では4.1秒)が経過したときに、0となるようになっており、一遊技時間管理用タイマが0か否かに基づいて一遊技規定時間が経過したか否かを判定できるようになっている。
このように、本実施例における主制御部161は、Sd10における試験信号生成処理を実行した後、遊技の進行を所定期間遅延させるSd13の割込複数回待ち処理を実行する。また、主制御部161は、Sd13の割込複数回待ち処理によって所定期間遅延された後にリールの回転を開始する、Sd19に示されるリール回転起動処理を実行する。これにより、主制御部161は、遊技開始時に試験信号を生成した後に、遅延処理によって所定期間待ち状態となることによって、例えば、試験用基板を含む外部機器が試験信号を確実に受信することを担保することができ、外部機器と主制御部161との間において情報の齟齬が生じることを防止できる。
また、主制御部161は、Sd11において内部抽選結果に関する情報及び遊技状態に関する情報を演出制御部151に出力する制御状態コマンド群送信処理を実行した後に、Sd19に示されるリール回転起動処理を実行する。これにより、主制御部161は、遊技開始時に試験信号を生成し、演出制御部151に内部抽選結果に関する情報などを出力した後に、所定期間待ち状態となることによって、例えば、試験用基板を含む外部機器が試験信号を確実に受信すること、及び演出制御部151が内部抽選結果に関する情報を確実に受信することを担保することができ、外部機器と主制御部161と演出制御部151との間において情報の齟齬が生じることを防止できる。
Sd17においてリール回転開始コマンド送信処理を行った後は、リールモータ32L、32C、32Rを励磁制御する際の励磁パターンとして、遊技用の所定速度でリールを回転制御する通常加速パターンをRAM161cの所定領域に設定し(Sd18)、RAM161cに設定されている励磁パターンに基づいてリールモータ32L、32C、32Rを励磁制御することでリールの回転を開始させるリール回転起動処理を行う(Sd19)。次いで、遊技機状態などの情報をホール用管理コンピュータ(ホールコン)やセキュリティ上の管理を行うホールサーバなどの外部に送信する外部信号処理を実行する(Sd20)。
そして、ナビ報知処理を行う(Sd21)。ナビ報知処理では、ATの制御が行われており、内部抽選にて報知対象役が当選している場合には、当該報知対象役に応じて遊技者にとって有利な停止態様を特定可能なナビ番号を、遊技補助表示器12に表示させるように制御する一方、ATの制御が行われていない場合には、ナビ番号を遊技補助表示器12に表示させないように制御する。
リールの停止制御に必要な各種情報をRT状態及び内部抽選の抽選結果に応じて設定するリール停止初期設定処理(Sd22)を行う。そして、フリーズ制実行御処理を行い(Sd23)、当該タイミングでフリーズ制御を行う旨が設定されている場合には、設定されている種類のフリーズ制御を行う。
Sd23においてフリーズ制御処理を行った後は、リールの停止制御を行うリール停止制御処理を行う(Sd24)。リール停止制御処理では、回転制御中のリールが所定の定速回転で回転されているかを判定し、定速回転で回転されていないリールがある場合には、リールエラーを検出して、該当するリールについて定速回転まで加速させる励磁パターンを設定して、回転制御中の全てのリールが定速回転で回転されるように制御する。一方、回転制御中の全てのリールが定速回転で回転されている場合には、回転制御中のリールの停止操作の受け付けを有効化し、ストップスイッチによる停止操作が行われるまで待機する。そして、停止操作が有効化されているリールについて有効な停止操作が検出されること(停止操作が有効なストップスイッチについてONエッジデータが検出されること)で、有効な停止操作が行われたリールについて、リール停止初期設定処理にて設定された情報などに基づいて所定の停止位置で停止させるリール停止制御を行う。このようなリール停止制御を、回転制御中のリールについて繰り返し行って、全てのリールの回転を停止させることで、リール停止処理を終了させる。
そして、リール停止処理を終了させた後は、フリーズ制御処理を行い(Sd25)、当該タイミングでフリーズ制御を行う旨が設定されている場合には、設定されている種類のフリーズ制御を行う。
その後、RT状態チェック処理(Sd26)、入賞判定処理(Sd27)を行う。RT状態チェック処理では、リールにRT状態の移行を伴うRT移行図柄の組合せが停止しているか否かを判定し、RT移行図柄の組合せが停止している場合には、RAM161cの所定領域に設定されている現在のRT状態を、当該RT移行図柄の組合せに応じたRT状態に更新する。入賞判定処理では、内部抽選結果及びリール2L、2C、2Rに停止している図柄組合せに基づいて不正入賞が発生しているか否かを判定する。
そして、Sd27における入賞判定処理を行った後は、容量外プログラム呼出処理に該当する打止判定処理を行う(Sd28)。
打止判定処理では、遊技者への付与メダルが増加傾向に転じてから、当該付与メダルの増加枚数が上限値を超えたか否かを判定する。例えば、+域のみを計数する純増枚数カウンタ、すなわち投入枚数を減算するとともに、払出枚数を加算し、更新後の値が0を下回る場合には0に補正するカウンタを設け、当該純増枚数カウンタの値が上限値を超えたか否かを判定する。そして、遊技者への付与メダルが増加傾向に転じてから、当該付与メダルの増加枚数が上限値を超えたと判定した場合に、容量外RAM領域に打止フラグを設定する処理を行う。
打止判定処理が終了した後、エラーチェック処理を行い(Sd29)、遊技終了時の出玉制御を行う出玉制御後処理を行う(Sd30)。出玉制御後処理は、有利区間内における出玉制御を行うための後処理である。
その後、リプレイ中LEDをOFF状態(消灯状態)に制御し(Sd31)、リプレイ中である旨を示す再遊技中フラグをクリアし(Sd32)、遊技補助表示器12におけるナビ番号の表示をクリアした後(Sd33)、メダル数制御基板17へ終了時コマンドを送信し(Sd34)、フリーズ制御実行処理を行い(Sd35)、当該タイミングでフリーズ制御を行う旨が設定されている場合には、設定されている種類のフリーズ制御を行う。
そして、メダル数制御基板17へ、役物情報コマンドを送信し(Sd36)、有利区間コマンドを送信する(Sd37)。その後、遊技機状態などの情報をホール用管理コンピュータ(ホールコン)やセキュリティ上の管理を行うホールサーバなどの外部に送信する外部信号処理を行い(Sd38)、さらに遊技終了時設定処理を行って(Sd39)、再遊技役の図柄組合せがリール2L、2C、2Rに停止しているか否かを判定し、再遊技役の図柄組合せが停止している場合には、次ゲームにおいて再遊技を行うための賭数を設定する処理(本実施例では、RAM161cの所定領域に設定されている再遊技用メダルカウンタに、再遊技用メダルとして3を設定する。)や、再遊技中フラグをRAM161cの所定領域に設定する処理、リプレイ中LEDをON状態(点灯状態)に制御する処理などを行う。遊技終了時設定処理では、有利区間中の獲得メダル数が2400枚に達したか否か(リミッタ条件)の判定が行われる。このとき、有利区間中の獲得メダル数が2400枚に達した場合、有利区間を終了し、通常区間に制御する。
そして、メダル数制御基板17へ、払出パルスコマンドを送信し(Sd40)、大当りコマンドを送信する(Sd41)。その後、遊技終了時における初期化対象のRAM161cの領域のサイズを設定する(Sd42)。これにより次ゲームにおけるSd2において1ゲーム終了時初期化領域が初期化されることとなる。
次いで、容量外RAM領域に打止フラグが設定されているか否かを判定する(Sd43)。Sd43において打止フラグが設定されていないと判定した場合には、Sd1に戻る。これにより、主制御部161は、Sd2に処理を戻し、再度Sd2からの繰り返し行う。メイン処理が一巡することで、一単位の遊技の制御に関する処理が終了することとなり、一単位の遊技毎にメイン処理が繰り返し実行されることとなる。
一方、Sd43において打止フラグが設定されていると判定した場合、すなわちSd28において遊技者への付与メダルが増加傾向に転じてから、当該付与メダルの増加枚数が上限値を超えたと判定された場合には、打止エラーコードを設定した後に(Sd46)、エラー処理に移行し、遊技を進行不能な状態にする。打止エラーコードが設定されたことによるエラー処理では、設定キースイッチ37をONにした状態で電源スイッチを投入することによって、設定変更状態に移行させて、RAM161cのデータが初期化され、かつ新たに設定値が設定されるか、設定キースイッチ37はOFF状態であるが、リセット/設定スイッチ38をONにした状態で電源スイッチを投入することによって、設定変更状態に移行させてRAM161cのデータが初期化されることでエラー状態を解除することができるようになっている。一方、設定キースイッチ37またはリセット/設定スイッチ38をON状態にせずに電源スイッチをONにした場合には、再度、エラー状態となる。
これにより、本実施例におけるスロットマシン2は、不正操作によってスロットマシンから過剰にメダルが払い出されることを防止できる。また、付与メダル数が増大すれば、著しく射幸心をそそるおそれのある状態となり得る。そのため、上限を設けて付与メダル数に制限を設けることにより、スロットマシン2において、著しく射幸心をそそる状態となることを抑制できる。
図67に示されるように、打止フラグが設定されている場合に、打止エラーによるエラー状態に移行させる処理は、ホールコンピュータなどの外部機器に対して有利区間に制御されているか否かを報知する外部出力信号処理(Sd38)や、有利区間中の獲得メダル数が2400枚に達したか否か(リミッタ条件)の判定をする遊技終了時設定処理(Sd39)などのあらゆる処理の最後に行われる処理である。このように、遊技者への付与メダルが増加傾向に転じてから、当該付与メダルの増加枚数が上限値を超えたことによって遊技の進行を不能化する処理がメイン処理の最後に行われることにより、遊技の進行が不能な状態に制御する前に、遊技終了時設定処理が行われるため、リミッタ条件が成立した場合に通常区間に制御した後に、遊技の進行が不能な状態へと制御することができる。
また、遊技の進行が不能な状態に制御する前に、Sd38において外部出力信号処理が行われるため、外部機器に対して有利区間に制御されているか否かを報知した後に、遊技の進行が不能な状態へと制御することができる。このため、主制御部161は、遊技者への付与メダルが増加傾向に転じてから、当該付与メダルの増加枚数が上限値を超えたことによって遊技の進行を不能化する場合であっても、有利区間に関する情報を適切に処理した後に、遊技の進行を不能化することができる。これにより、遊技の進行を不能化が解除された後に、有利区間に関する情報に関して不整合が発生することを防止することができる。
本実施例の主制御基板16が行うメイン処理は、容量内プログラムに含まれており、容量外プログラムに含まれる処理、例えば、RT情報出力処理、試験信号生成処理などを呼び出すようになっている。そして、容量外プログラムに含まれる処理を呼び出す際には、該当する容量外プログラムの処理を呼び出す毎に、呼び出し元の容量内プログラム側で、主制御基板16が備えるレジスタのうちフラグレジスタの値を遊技スタック領域に記憶させて退避させ、呼び出し先の容量外プログラム側で、容量内プログラムで使用しているスタックポインタSPの値を容量外RAM領域に記憶させて退避するとともに、主制御基板16が備える全てのレジスタの値を非遊技スタック領域に記憶させて退避させる処理を行う。そして、呼び出された容量外プログラムに応じた処理を行うようになっている。
また、主制御基板16は、容量外プログラムの処理を行った後には、容量外プログラム側で、当該容量外プログラムの開始時に非遊技スタック領域に退避させた、全てのレジスタの値を該当するレジスタに読み込んで当該容量外プログラムの開始時の状態にレジスタを復帰させるとともに、当該容量外プログラムの開始時に容量外RAM領域に記憶させたスタックポインタSPの値をスタックポインタSPに設定して、当該容量外プログラムの開始時の状態にスタックポインタSPを復帰させ、さらに、呼び出し元の容量内プログラム側で、容量外プログラムの呼び出し前に遊技スタック領域に記憶させたフラグレジスタの値を、該当するフラグレジスタに読み込んで当該容量外プログラムの呼び出し前の状態にレジスタを復帰させる処理を行うようになっている。
また、主制御基板16は、容量外プログラムにしたがって各種処理を行う場合には、上述のCALLEX命令などを用いて容量内プログラムから容量外プログラムを呼び出すことで、当該容量外プログラムにしたがって各種処理を行い、当該容量外プログラムに応じた各処理が終了することで、呼び出し元の容量内プログラムに復帰するようになっている。
[制御部間の通信について]
以下では、演出制御部151、主制御部161、メダル数制御部171、CU制御部323との間における通信について説明する。本実施例では、主制御部161は、主制御基板16に含まれ、メダル数制御部171は、メダル数制御基板17に含まれる構成について説明した。主制御部161とメダル数制御部171とが統合された場合のスロットマシン2では、メダル数制御部171が主制御部161とともに、主制御基板16に含まれる構成について説明する。
図68は、主制御部161とメダル数制御部171とが統合された場合のカードユニット及びスロットマシンの内部構成を示すブロック図である。図68に示されるように、主制御部161は、メダル数制御部171及び主制御部161の両方を含む。すなわち、主制御部161とメダル数制御部171とは、同一の基板上に搭載されている。これにより、主制御部161とメダル数制御部171との間をコネクタ等によって接続する必要がなく、セキュリティを高めることができる。また、部品点数が少なくなることによって、不具合が発生する確率を低減させることができる。
図68に示されるように、主制御部161は、リールモータ32L,32C,32Rと、設定キースイッチ37と、リセット/設定スイッチ38と、設定値表示器24と、スタートスイッチ7と、遊技補助表示器12と接続されている。尚、主制御部161は、リールモータ32L,32C,32Rと、設定キースイッチ37と、リセット/設定スイッチ38と、設定値表示器24と、スタートスイッチ7と、遊技補助表示器12と、メダル数制御部171を介して、接続される構成であっても良い。すなわち、リールモータ32L,32C,32Rと、設定キースイッチ37と、リセット/設定スイッチ38と、設定値表示器24と、スタートスイッチ7と、遊技補助表示器12とは、メダル数制御部171と接続されても良い。
また、メダル数制御部171は、計数ボタン10と、RAMクリアスイッチ293と、役比モニタ89と接続されている。尚、メダル数制御部171は、計数ボタン10と、RAMクリアスイッチ293と、役比モニタ89と、主制御部161を介して接続される構成であっても良い。計数ボタン10と、RAMクリアスイッチ293と、役比モニタ89とは、主制御部161と接続されても良い。
図69は、演出制御部151、主制御部161、メダル数制御部171、CU制御部323の通信を説明するための図である。図69に示されるように、主制御部161とメダル数制御部171とが統合された場合における主制御基板16には、メダル数制御部171と主制御部161とが搭載されている。主制御部161は、第1シリアル通信回路SR1と、第2シリアル通信回路SR2と、第3シリアル通信回路SR3とを備える。第1シリアル通信回路SR1~第3シリアル通信回路SR3は、マイコンなどの制御用コンピュータとして実現される主制御部161に搭載されているシリアル通信回路である。メダル数制御部171は、第4シリアル通信回路SR4と、第5シリアル通信回路SR5と、第6シリアル通信回路SR6とを備える。第4シリアル通信回路SR4~第6シリアル通信回路SR6も、マイコンなどの制御用コンピュータとして実現されるメダル数制御部171に搭載されているシリアル通信回路である。
主制御部161の第1シリアル通信回路SR1及び第3シリアル通信回路SR3は、送信機能及び受信機能を有する。図69に示されるように、第1シリアル通信回路SR1は、他の機器と接続するための端子として、送信端子Tx1と、受信端子Rx1とを有する。また、第1シリアル通信回路SR1は、送信用のバッファである送信バッファTb1と、受信用のバッファである受信バッファRb1とを有する。また、第3シリアル通信回路SR3も、送信端子Tx3と、受信端子Rx3と、送信バッファTb3と、受信バッファRb3とを有する。
一方で、主制御部161の第2シリアル通信回路SR2は、送信機能と受信機能のうち送信機能だけを有する。すなわち、第2シリアル通信回路SR2は、送信専用のシリアル通信回路である。図69に示されるように、第2シリアル通信回路SR2は、他の機器と接続するための端子として、送信端子Tx2と、送信用のバッファである送信バッファTb2とだけを有する。このため、第2シリアル通信回路SR2は、他の機器から信号(コマンド)を受信することができないように構成されている。これにより、一方向で信号送信するのにあたって好適に信号送信できる。すなわち、第2シリアル通信回路SR2は、一方向での信号の送信の必要がある主制御部161と演出制御部151との間の通信に対して好適に用いられ得る。
メダル数制御部171の第5シリアル通信回路SR5及び第6シリアル通信回路SR6は、第1シリアル通信回路SR1、第3シリアル通信回路SR3と同様に、送信機能及び受信機能を有する。すなわち、第5シリアル通信回路SR5は、送信端子Tx5、受信端子Rx5、送信バッファTb5、受信バッファRb5を有する。また、第6シリアル通信回路SR6は、送信端子Tx6、受信端子Rx6、送信バッファTb6、受信バッファRb6を有する。また、メダル数制御部171の第4シリアル通信回路SR4は、主制御部161の第2シリアル通信回路と同様に送信機能だけを有する。すなわち、第4シリアル通信回路SR4は、送信端子Tx4と、送信バッファTb4とを有する。
図69に示されるように、主制御部161とメダル数制御部171とは、第1シリアル通信回路SR1と第5シリアル通信回路SR5とを用いて、信号の通信を行う。上述したように、メダル数制御部171と主制御部161との間では、投入コマンド、精算コマンドなどの双方向性を有するコマンドが送信される。すなわち、メダル数制御部171と主制御部161との間の通信は、双方向通信を含む。このように、送信機能と、受信機能とを有する第1シリアル通信回路SR1と、第5シリアル通信回路SR5とを用いることにより、双方向通信を実現する。
また、メダル数制御部171とCU制御部323との通信は双方向通信であるため、メダル数制御部171では、接続端子板1000との通信のために、送信機能と受信機能の両方を有する第6シリアル通信回路SR6が用いられている。メダル数制御部171は、接続端子板1000を介してCU制御部323と接続されている。また、枠側情報コマンドは、双方向性を有さないメダル数制御基板17から主制御基板16への一方向で送信し続けるコマンドである。メダル数制御部171は、送信機能だけを有する第4シリアル通信回路SR4を用いて、枠側情報コマンドを、主制御部161の第3シリアル通信回路SR3に対して送信する。第3シリアル通信回路SR3は、試験信号を試験用基板300に送信する。このように、主制御部161とメダル数制御部171とが統合された場合におけるスロットマシン2では、一方向通信については、送信機能だけを有するシリアル通信回路を用いて行い、双方向通信については、送信機能と受信機能との両方を有するシリアル通信回路を用いて行うことにより、一方向でのコマンド送信と、双方向でのコマンド送信とを分けてシリアル通信回路を使用することができ、好適なデータの通信をすることができる。
試験用基板300は、様々な種類の試験信号を特定信号に変換して、試験装置に出力可能であるように構成されている。これにより、試験用基板300を用いることよって、スロットマシンは、試験装置に合わせた特定信号を生成する必要がなく、試験用基板300を介することによって、試験装置は、様々な種類のスロットマシンから試験信号を受信可能となる。これにより、規定の試験装置に合わせた試験信号をスロットマシンごとに生成する必要がなくなる。
また、主制御部161は、メダル数制御部171からの投入コマンドなどの双方向性を有するコマンドを第1シリアル通信回路SR1の受信端子Rx1を用いて受信するとともに、応答コマンドを第1シリアル通信回路SR1の送信端子Tx1を用いて送信する。これにより、主制御部161とメダル数制御部171との間の双方向性を有するコマンドの送受信を第1シリアル通信回路SR1だけで完結させることができ、セキュリティを高めることができる。
また、図41にて説明したように、主制御部161は、投入コマンドなどの不定期に送信される双方向性を有するコマンドを受信したときに、メダル数制御部171に受信した旨を示す応答コマンドを送信する。これにより、メダル数制御部171は、投入コマンドなどが主制御部161によって正常受信されたことを判定できる。
さらに、主制御部161は、メダル数制御部171からの枠側情報コマンドを第1シリアル通信回路SR1とは異なる第3シリアル通信回路SR3の受信端子Rx3を用いて受信する。これにより、主制御部161は、第1シリアル通信回路SR1に異常が生じても第3シリアル通信回路SR3を用いて、メダル数制御部171からのコマンドを受信することができる。
また、定期的に送信される枠側情報コマンドの通信は、メダル数制御部171の第4シリアル通信回路SR4と、主制御部161の第3シリアル通信回路SR3とを用いて行われている。一方で、定期的ではない投入コマンドなどの通信は、メダル数制御部171において、第4シリアル通信回路SR4ではなく第5シリアル通信回路SR5が用いられ、主制御部161において、第3シリアル通信回路SR3ではなく第1シリアル通信回路SR1が用いられている。これにより、定期的に送信される枠側情報コマンドと、遊技者の操作に基づいて送信される投入コマンド等が重なってしまい、オーバーフローが発生することを防止できる。
続いて、送信バッファの容量について説明する。一方向の通信に用いられる第2シリアル通信回路SR2の送信バッファTb2及び第4シリアル通信回路SR4の送信バッファTb4は、128バイトである。一方で、双方向の通信に用いられる第1シリアル通信回路SR1の送信バッファTb1、第3シリアル通信回路SR3の送信バッファTb3、第5シリアル通信回路SR5の送信バッファTb5、及び第6シリアル通信回路SR6の送信バッファTb6は、64バイトである。これにより、一方向通信のためのシリアル通信回路において、多くのコマンドが送信される場合であっても、オーバーフローし難くなる。
続いて、内部機能レジスタ領域に含まれている各シリアル通信回路の機能設定用の記憶領域について説明する。RAM161cの内部機能レジスタ領域には、マイコンなどの制御用コンピュータである主制御部161の機能として搭載されている第1シリアル通信回路SR1~第3シリアル通信回路SR3が有する機能を設定する領域が含まれている。同様に、RAM171cの図示されない内部機能レジスタ領域には、マイコンなどの制御用コンピュータであるメダル数制御部171の機能として搭載されている第4シリアル通信回路SR4~第6シリアル通信回路SR6が有する機能を設定する領域が含まれている。
一方向の通信に用いられるシリアル通信回路の機能設定領域の容量は、双方向の通信に用いられるシリアル通信回路の機能設定領域の容量よりも小さい。これにより、一方向通信のためのシリアル通信回路において、複雑な設定が必要なく、設定を簡素化できる。すなわち、RAM161c内の第2シリアル通信回路SR2の機能設定領域の容量は、RAM161c内の第1シリアル通信回路SR1の機能設定領域の容量よりも小さい。
また、図69に示されるように、主制御部161、メダル数制御部171、演出制御部151、接続端子板1000と、シリアル通信回路で接続されている。これによって、配線パターンの取り回しが容易になる。換言すれば、パラレル通信と比較して、配線数を少なくすることができるため、配線パターンの配置が容易となる。
[記憶領域とデータの読出及び書込について]
次に、主制御部161のROM161bとRAM161cからのデータの読出及びRAM161cへのデータの書込に関連する技術事項について説明する。尚、本実施例では、主制御部161のROM161bとRAM161cを例に説明するが、メダル数制御部171のROM171bとRAM171c、演出制御部151のROM151b、RAM151cにおいても以下に説明する技術事項を適用可能である。
主制御部161が用いるメモリ領域には、1バイトの領域毎に2バイトからなるアドレスが割り当てられている。特に、図70に示すように、RAM161cのメモリ領域のうち主制御部161がユーザプログラムによって用いる作業領域(いわゆるワーク領域)は、上位アドレスがF0Hの第1領域(F000H~F0FFH)、上位アドレスがF1Hの第2領域(F100H~F1FFH)、上位アドレスがF2Hの第3領域(F200H~F2FFH)、上位アドレスがF3Hの第4領域(F300H~F3FFH)から構成されている。図60に示すように、第1領域及び第2領域は容量内RAM領域であり、第3領域は未使用領域であり、第4領域は容量外RAM領域である。
このように本実施例では、RAM161cにおいてアドレスが連続する第1~第4領域のうちの先頭の第1領域からの領域が主制御部161の作業領域(ワーク)として割り当てられているため、作業領域の管理がし易くなる。
また、前述LDQ命令で用いられる特別なレジスタ(Qレジスタ)の初期値として第1領域の上位アドレスであるF0Hが主制御部161が起動する際に設定される初期値及び主制御部161がユーザプログラムを開始した際に設定される初期値として設定されるようになっており、LDQ命令によりRAM161cからデータを読み出す場合やRAM161cにデータを書き込む場合にRAM161cにおける主制御部161の作業領域の先頭の領域にアクセスし易くなる。
また、上位アドレスがF2Hである第3領域に未使用領域が割り当てられているため、上位アドレスの値からRAM161cの未使用領域を特定することが容易となる。
また、RAM161cのデータを初期化する場合に、特別なレジスタ(Qレジスタ)に予め設定された上位アドレスを用いてアドレスを特定するLDQ等の命令を用いないようになっており、RAM161cの初期化されるアドレスをコードから特定できるようになっている。
また、RAM161cが破壊されているか否かを判定するためのデータ(前述のRAMパリティ等)を算出する場合にも、特別なレジスタ(Qレジスタ)に予め設定された上位アドレスを用いてアドレスを特定するLDQ等の命令を用いないようになっており、RAM161cの破壊を診断するためのデータを算出する際に用いられるデータのアドレスをコードから特定できるようになっている。
また、RAM161cにデータを退避するスタック領域が割り当てられており、このうち容量外スタック領域は、上位アドレスがF3である第4領域の最終アドレスから先頭側のアドレスに向かってデータが退避されるようになっている。このため、容量外スタック領域に退避されるデータの上位アドレスが変化してしまうことがない。
また、容量内スタック領域は、上位アドレスがF1である第2領域の最終アドレスではないが、最終アドレス近くのアドレスから先頭側のアドレスに向かってデータが退避されるようになっている。このため、容量内スタック領域に退避されるデータの上位アドレスが変化してしまうことがない。尚、容量内スタック領域についても、上位アドレスが所定値である領域(例えば、上位アドレスがF1Hである第2領域)の最終アドレスから先頭側のアドレスに向かってデータが退避されるようにしても良く、このような構成においても、容量内スタック領域に退避されるデータの上位アドレスが変化してしまうことがない。
また、メダル数制御部171と通信を行う際に用いる払出管理データが全て上位アドレスがF1Hである第2領域に割り当てられているため、メダル数制御部171と通信を行う制御に関する払出管理データが管理し易い。
本実施例において主制御部161は、ROM161bまたはRAM161cの転送元の開始アドレスとRAM161cの転送先の開始アドレスと転送回数を指定することで、転送元の開始アドレスから転送回数分の連続する転送元連続メモリ領域に格納されたデータを読み出し、読み出した転送元連続メモリ領域のデータを、転送先の開始アドレスから転送回数分の連続する転送先連続メモリ領域に書き込むことが可能な連続領域転送処理を実行可能である。
連続領域転送処理は、指定される転送元の開始アドレス、転送回数を変更して呼び出すことにより、異なる範囲の転送元連続メモリ領域のデータを共通の処理にて読み出すことが可能であり、本実施例では、異なる範囲の転送元連続メモリ領域のデータを読み出す際に、共通の連続領域転送処理を用いている。
また、連続領域転送処理は、指定される転送先の開始アドレス、転送回数を変更して呼び出すことにより、異なる範囲の転送先連続メモリ領域に共通の処理にてデータを書き込むことが可能であり、本実施例では、異なる範囲の転送先連続メモリ領域にデータを書き込む際に、共通の連続領域転送処理を用いている。
連続領域転送処理は、上位アドレス及び下位アドレスを指定するLD命令によりデータの読出及び書込を行う連続転送処理Aと、下位アドレスのみを指定するLDQ命令によりデータの呼出及び書込を行う連続転送処理Bと、を含む。
図71は、主制御部161が行う連続領域転送処理Aの制御内容を示すフローチャートである。連続転送処理Aは、メインルーチンまたはサブルーチンから呼び出される処理であり、まず、Bレジスタに転送回数をセットし(Se1)、HLレジスタに転送元の上位アドレス及び下位アドレスをセットし(Se2)、DEレジスタに転送先の上位アドレス及び下位アドレスを設定する(Se3)。
次いで、LD命令(LD A,(HL))によりHLレジスタにセットされている転送元アドレスのデータをAレジスタに読み出し(Se4)、LD命令(LD (DE),A)によりAレジスタのデータをDEレジスタにセットされている転送先アドレスの領域に書き込む(Se5)。
その後、HLレジスタの転送元アドレスを1加算し(Se6)、DEレジスタの転送先アドレスを1加算し(Se7)、Bレジスタの転送回数を1減算し(Se8)、Bレジスタの転送回数が0か否かを判定する(Se9)。
Se9においてBレジスタの転送回数が0でないと判定した場合には、Se4に戻り、再びSe4~Se9の処理を行い、Se9においてBレジスタの転送回数が0であると判定されるまでSe4~Se9の処理を繰り返し行う。
Se9においてBレジスタの転送回数が0であると判定した場合には、連続領域転送処理Aを終了し、呼出元の処理に復帰する。
このように連続領域転送処理Aでは、ROM161bまたはRAM161cの転送元の開始アドレスとRAM161cの転送先の開始アドレスと転送回数を指定することで、転送元のアドレスから読み出したデータをAレジスタに読み出し、読み出したAレジスタのデータを転送先のアドレスの領域に書き込んだ後、転送元アドレス及び転送先アドレスをそれぞれ1加算する処理を転送回数分行うことにより、転送元の開始アドレスから転送回数分の連続する転送元連続メモリ領域に格納されたデータを読み出し、読み出した転送元連続メモリ領域のデータを、転送先の開始アドレスから転送回数分の連続する転送先連続メモリ領域に書き込むようになっている。
図72は、主制御部161が行う連続領域転送処理Bの制御内容を示すフローチャートである。連続転送処理Bは、メインルーチンまたはサブルーチンから呼び出される処理であり、まず、Bレジスタに転送回数をセットし(Sf1)、Cレジスタに転送元開始アドレスの下位アドレスをセットし(Sf2)、Dレジスタに転送先開始アドレスの下位アドレスを設定する(Sf3)。
次いで、LDQ命令(LDQ A,(C))によりQレジスタにセットされている上位アドレス及びCレジスタにセットされている転送元の下位アドレスからなる転送元アドレスのデータをAレジスタに読み出し(Sf4)、LDQ命令(LDQ (D),A)によりAレジスタのデータをQレジスタにセットされている上位アドレス及びDレジスタにセットされている転送先の下位アドレスからなる転送先アドレスの領域に書き込む(Sf5)。
その後、Cレジスタの転送元の下位アドレスを1加算し(Sf6)、Dレジスタの転送先の下位アドレスを1加算し(Sf7)、Bレジスタの転送回数を1減算し(Sf8)、Bレジスタの転送回数が0か否かを判定する(Sf9)。
Sf9においてBレジスタの転送回数が0でないと判定した場合には、Sf4に戻り、再びSf4~Sf9の処理を行い、Sf9においてBレジスタの転送回数が0であると判定されるまでSf4~Sf9の処理を繰り返し行う。
Sf9においてBレジスタの転送回数が0であると判定した場合には、連続領域転送処理Bを終了し、呼出元の処理に復帰する。
このように連続領域転送処理Bでは、ROM161bまたはRAM161cの転送元開始アドレスの下位アドレスとRAM161cの転送先開始アドレスの下位アドレスと転送回数を指定することで、Qレジスタの上位アドレス及び転送元の下位アドレスからなる転送元アドレスから読み出したデータをAレジスタに読み出し、読み出したAレジスタのデータをQレジスタの上位アドレス及び転送先の下位アドレスからなる転送先アドレスの領域に書き込んだ後、転送元の下位アドレス及び転送先の下位アドレスをそれぞれ1加算する処理を転送回数分行うことにより、転送元の開始アドレスから転送回数分の連続する転送元連続メモリ領域に格納されたデータを読み出し、読み出した転送元連続メモリ領域のデータを、転送先の開始アドレスから転送回数分の連続する転送先連続メモリ領域に書き込むようになっている。
主制御部161は、LDQ命令により転送先としてHLレジスタやDEレジスタ等の2つのレジスタを指定することで、特別なレジスタ(Qレジスタ)に予め設定された上位アドレス及び指定された下位アドレスにより特定されるアドレス及びそれに続くアドレスに格納された2バイトのデータを読み出すことが可能であり、LDQ命令により転送元としてHLレジスタやDEレジスタ等の2つのレジスタを指定することで、特別なレジスタ(Qレジスタ)に予め設定された上位アドレス及び指定された下位アドレスにより特定されるアドレス及びそれに続くアドレスに2バイトのデータを書き込むことが可能である。
例えば、図73に示すように、LDQ命令(LDQ HL,(k))により転送先としてHLレジスタを指定し、転送元の下位アドレス:kを指定することで、Qレジスタに設定された上位アドレス及び指定された下位アドレス:kからなるアドレスのデータをLレジスタに読み出し、当該アドレス+1のデータをHレジスタに読み出す。すなわちアドレスの連続する2バイトの領域から2バイトのデータがHLレジスタに読み出される。また、LDQ命令(LDQ (k),HL)により転送元としてHLレジスタを指定し、転送先の下位アドレス:kを指定することで、LレジスタのデータをQレジスタに設定された上位アドレス及び指定された下位アドレス:kからなるアドレスの領域に書き込み、Hレジスタの値を当該アドレス+1の領域に書き込む。すなわちHLレジスタの2バイトのデータがアドレスの連続する2バイトの領域に書き込まれる。
このように本実施例では、連続領域転送処理やLDQ命令を用いることにより連続するアドレス領域のデータの読出及び書込が可能とされている。一方、主制御部161が用いるメモリ領域は、上位アドレスが異なる複数の領域からなる。このように上位アドレスが異なる領域を跨いで連続したアドレス領域にアクセスすると、アクセスしたアドレスが分かり難くなってしまうという問題がある。
このため、本実施例では、下位アドレスのみを指定するLDQ命令によりデータの読出を行う連続領域転送処理Bにより読み出すデータが格納された転送元連続メモリ領域が、RAM161cのうち第1領域と第2領域、第2領域と第3領域、第3領域と第4領域に跨がらない領域、すなわち上位アドレスが変わることのない領域に割り当てられており、上位アドレスを指定せずに実行される連続領域転送処理Bにより転送元連続メモリ領域からデータが読み出される場合には、いずれも上位アドレスが同じ領域からデータが読み出されるため、連続領域転送処理においていずれのアドレスからデータが取得されるのか分かり難くなってしまうことが防止されるようになっている。
また、ROM161bの連続するアドレスからデータを読み出す場合にも、下位アドレスのみを指定するLDQ命令によりデータの読出を行う連続領域転送処理Bにより読み出すデータが格納された転送元連続メモリ領域が、ROM161bにおいて上位アドレスが変わることのない領域に割り当てられており、上位アドレスを指定せずに実行される連続領域転送処理Bにより転送元連続メモリ領域からデータが読み出される場合には、いずれも上位アドレスが同じ領域からデータが読み出されるため、連続領域転送処理においていずれのアドレスからデータが取得されるのか分かり難くなってしまうことが防止されるようになっている。
また、RAM161cのうち第1領域と第2領域、第2領域と第3領域、第3領域と第4領域に跨がる領域、すなわち上位アドレスが途中で変わる領域に転送元連続メモリ領域が割り当てられている場合には、上位アドレス及び下位アドレスの双方を指定するLD命令によりデータの読出を行う連続領域転送処理Aにより転送元連続メモリ領域のデータを読み出すようになっており、上位アドレスが途中で変わる転送元連続メモリ領域からデータを読み出す場合には、転送元連続メモリ領域の上位アドレス及び下位アドレスの双方の指定を必要とすることで、連続領域転送処理においていずれのアドレスからデータが取得されるのか分かり難くなってしまうことが防止されるようになっている。
また、ROM161bの連続するアドレスからデータを読み出す場合にも、ROM161bのうち上位アドレスが途中で変わる領域に転送元連続メモリ領域が割り当てられている場合には、上位アドレス及び下位アドレスの双方を指定するLD命令によりデータの読出を行う連続領域転送処理Aにより転送元連続メモリ領域のデータを読み出すようになっており、上位アドレスが途中で変わる転送元連続メモリ領域からデータを読み出す場合には、転送元連続メモリ領域の上位アドレス及び下位アドレスの双方の指定を必要とすることで、連続領域転送処理においていずれのアドレスからデータが取得されるのか分かり難くなってしまうことが防止されるようになっている。
尚、本実施例では、上位アドレス及び下位アドレスの双方を指定するLD命令によりデータの読出を行う連続領域転送処理Aを用いることにより、RAM161cのうち第1領域と第2領域、第2領域と第3領域、第3領域と第4領域に跨がる領域、すなわち上位アドレスが途中で変わる領域に転送元連続メモリ領域を割り当てることが可能な構成であるが、連続領域転送処理Aを用いる場合でも、連続領域転送処理Bを用いる場合でも、転送元連続メモリ領域が、RAM161cのうち第1領域と第2領域、第2領域と第3領域、第3領域と第4領域に跨がらない領域、すなわち上位アドレスが変わることのない領域に割り当てられる構成としても良く、このような構成とすることで、連続領域転送処理により転送元連続メモリ領域からデータが読み出される場合には、いずれも上位アドレスが同じ領域からデータが読み出されるため、連続領域転送処理においていずれのアドレスからデータが取得されるのか分かり難くなってしまうことが防止される。
また、上位アドレス及び下位アドレスの双方を指定するLD命令によりデータの読出を行う連続領域転送処理Aを用いることにより、ROM161bのうち上位アドレスが途中で変わる領域に転送元連続メモリ領域を割り当てることが可能な構成であるが、連続領域転送処理Aを用いる場合でも、連続領域転送処理Bを用いる場合でも、転送元連続メモリ領域が、ROM161bのうち上位アドレスが変わることのない領域に割り当てられる構成としても良く、このような構成とすることで、連続領域転送処理により転送元連続メモリ領域からデータが読み出される場合には、いずれも上位アドレスが同じ領域からデータが読み出されるため、連続領域転送処理においていずれのアドレスからデータが取得されるのか分かり難くなってしまうことが防止される。
また、本実施例では、下位アドレスのみを指定するLDQ命令によりデータの書込を行う連続領域転送処理Bによりデータが書き込まれる転送先連続メモリ領域が、RAM161cのうち第1領域と第2領域、第2領域と第3領域、第3領域と第4領域に跨がらない領域、すなわち上位アドレスが変わることのない領域に割り当てられており、上位アドレスを指定せずに実行される連続領域転送処理Bにより転送先連続メモリ領域にデータを書き込む場合には、いずれも上位アドレスが同じ領域にデータが書き込まれるため、連続領域転送処理においていずれのアドレスにデータが書き込まれるのか分かり難くなってしまうことが防止されるようになっている。
また、RAM161cのうち第1領域と第2領域、第2領域と第3領域、第3領域と第4領域に跨がる領域、すなわち上位アドレスが途中で変わる領域に転送先連続メモリ領域が割り当てられている場合には、上位アドレス及び下位アドレスの双方を指定するLD命令によりデータの書込を行う連続領域転送処理Aにより転送先連続メモリ領域にデータを書き込むようになっており、上位アドレスが途中で変わる転送先連続メモリ領域にデータを書き込む場合には、転送先連続メモリ領域の上位アドレス及び下位アドレスの双方の指定を必要とすることで、連続領域転送処理においていずれのアドレスにデータが書き込まれるのか分かり難くなってしまうことが防止されるようになっている。
尚、本実施例では、上位アドレス及び下位アドレスの双方を指定するLD命令によりデータの書込を行う連続領域転送処理Aを用いることにより、RAM161cのうち第1領域と第2領域、第2領域と第3領域、第3領域と第4領域に跨がる領域、すなわち上位アドレスが途中で変わる領域に転送先連続メモリ領域を割り当てることが可能な構成であるが、連続領域転送処理Aを用いる場合でも、連続領域転送処理Bを用いる場合でも、転送先連続メモリ領域が、RAM161cのうち第1領域と第2領域、第2領域と第3領域、第3領域と第4領域に跨がらない領域、すなわち上位アドレスが変わることのない領域に割り当てられる構成としても良く、このような構成とすることで、連続領域転送処理により転送元連続メモリ領域にデータを書き込む場合に、いずれも上位アドレスが同じ領域にデータが書き込まれるため、連続領域転送処理においていずれのアドレスにデータが書き込まれるのか分かり難くなってしまうことが防止される。
また、本実施例では、LDQ命令により転送先としてHLレジスタやDEレジスタ等の2つのレジスタを指定することで、特別なレジスタ(Qレジスタ)に予め設定された上位アドレス及び指定された下位アドレスにより特定されるアドレス及びそれに続くアドレスに格納された2バイトのデータを読み出すことが可能であるが、LDQ命令により2バイトのデータを読み出す場合に、転送元のアドレスとして、RAM161cの第1記憶領域の最終アドレス、第2記憶領域の最終アドレス、第3記憶領域の最終アドレス、第4記憶領域の最終アドレス以外のアドレス、すなわち特定の上位アドレスが割り当てられた領域の最後の領域のアドレス以外のアドレスを指定するようになっており、転送元アドレスとして下位アドレスのみを指定するLDQ命令により2バイトのデータの読出を行う場合には、転送元のデータが格納されている2バイトの領域が、上位アドレスの異なる領域に跨がることがなく、いずれも上位アドレスが同じ領域から2バイトのデータが読み出されるため、LDQ命令により2バイトのデータを読み出す場合においていずれのアドレスからデータが取得されるのか分かり難くなってしまうことが防止されるようになっている。
また、LDQ命令により2バイトのデータを読み出す場合に、転送元のアドレスとして、ROM161bの特定の上位アドレスが割り当てられた領域の最後の領域のアドレス以外のアドレスを指定するようになっており、転送元アドレスとして下位アドレスのみを指定するLDQ命令により2バイトのデータの読出を行う場合には、転送元のデータが格納されている2バイトの領域が、上位アドレスの異なる領域に跨がることがなく、いずれも上位アドレスが同じ領域から2バイトのデータが読み出されるため、LDQ命令により2バイトのデータを読み出す場合においていずれのアドレスからデータが取得されるのか分かり難くなってしまうことが防止されるようになっている。
また、本実施例では、LDQ命令により転送元としてHLレジスタやDEレジスタ等の2つのレジスタを指定することで、特別なレジスタ(Qレジスタ)に予め設定された上位アドレス及び指定された下位アドレスにより特定されるアドレス及びそれに続くアドレスに2バイトのデータを書き込むことが可能であるが、LDQ命令により2バイトのデータを書き込む場合に、転送先のアドレスとして、RAM161cの第1記憶領域の最終アドレス、第2記憶領域の最終アドレス、第3記憶領域の最終アドレス、第4記憶領域の最終アドレス以外のアドレス、すなわち特定の上位アドレスが割り当てられた領域の最後の領域のアドレス以外のアドレスを指定するようになっており、転送先アドレスとして下位アドレスのみを指定するLDQ命令により2バイトのデータの書込を行う場合には、転送先のデータが格納されている2バイトの領域が、上位アドレスの異なる領域に跨がることがなく、いずれも上位アドレスが同じ領域に2バイトのデータが書き込まれるため、LDQ命令により2バイトのデータを書き込む場合においていずれのアドレスにデータが書き込まれるのか分かり難くなってしまうことが防止されるようになっている。
また、RAM161cのうち第1領域と第2領域、第2領域と第3領域、第3領域と第4領域に跨がる領域、すなわち上位アドレスが途中で変わる領域のうち、連続領域転送処理Aによりデータが読み出される転送元連続メモリ領域が割り当てられていない領域については、該当する領域の最終アドレスと該当する領域に続く領域の開始アドレス(例えば、第1領域と第2領域に連続領域転送処理Aによりデータが読み出される転送元連続メモリ領域が割り当てられている場合には、第2領域の最終アドレスと第3領域の開始アドレス、第3領域の最終アドレスと第4領域の開始アドレス)が未使用領域、すなわち制御に用いるデータが格納されることがなく、常に0が格納されている領域とされるようにしても良く、このような構成とすることで、下位アドレスのみを指定するLDQ命令によりデータの読出を行う連続領域転送処理Bによりデータを読み出す場合、LDQ命令により2バイトのデータを読み出す場合に、上位アドレスが変わることのない領域からデータが読み出されることとなるため、いずれのアドレスからデータが取得されるのか分かり難くなってしまうことが防止される。また、下位アドレスのみを指定するLDQ命令によりデータの読出を行う連続領域転送処理Bによりデータを書き込む場合、LDQ命令により2バイトのデータを書き込む場合に、上位アドレスが変わることのない領域にデータが書き込まれることとなるため、いずれのアドレスにデータが書き込まれるのか分かり難くなってしまうことが防止される。
また、RAM161cのうち第1領域と第2領域、第2領域と第3領域、第3領域と第4領域に跨がる領域、すなわち上位アドレスが途中で変わるいずれの領域のいずれについて、該当する領域の最終アドレスと該当する領域に続く領域の開始アドレスが未使用領域、すなわち制御に用いるデータが格納されることがなく、常に0が格納されている領域とされるようにしても良く、このような構成とすることで、連続領域転送処理によりデータを読み出す場合、LDQ命令により2バイトのデータを読み出す場合に、上位アドレスが変わることのない領域からデータが読み出されることとなるため、いずれのアドレスからデータが取得されるのか分かり難くなってしまうことが防止される。また、連続領域転送処理によりデータを書き込む場合、LDQ命令により2バイトのデータを書き込む場合に、上位アドレスが変わることのない領域にデータが書き込まれることとなるため、いずれのアドレスにデータが書き込まれるのか分かり難くなってしまうことが防止される。
また、RAM161cのうち上位アドレスが途中で変わる領域のうち、連続領域転送処理Aによりデータが読み出される転送元連続メモリ領域が割り当てられていない領域であっても、容量内RAM領域等、まとまって区別される領域については未使用領域とはせず、その他の領域については、該当する領域の最終アドレスと該当する領域に続く領域の開始アドレス(例えば、まとまって区別される領域が第1領域と第2領域の場合には、第2領域の最終アドレスと第3領域の開始アドレス、第3領域の最終アドレスと第4領域の開始アドレス)が未使用領域とされるようにしても良く、このような構成とすることで、連続領域転送処理によりデータを読み出す場合、LDQ命令により2バイトのデータを読み出す場合に、上位アドレスが変わることのない領域からデータが読み出されることとなるため、いずれのアドレスからデータが取得されるのか分かり難くなってしまうことが防止されつつ、RAM161cの領域を効率良く用いることができる。また、連続領域転送処理によりデータを書き込む場合、LDQ命令により2バイトのデータを書き込む場合に、上位アドレスが変わることのない領域にデータが書き込まれることとなるため、いずれのアドレスにデータが書き込まれるのか分かり難くなってしまうことが防止されつつ、RAMの領域を効率良く用いることができる。
[遊技情報表示部について]
本実施例におけるスロットマシン2においては、突出部95の上面96に遊技情報表示部90が設けられている。遊技情報表示部90では、AT1状態、AT2状態、または高確状態などの有利状態に関する報知が行われる。図74は、遊技情報表示部90の外観を示す図である。
遊技情報表示部90は、1BETLED14、2BETLED15、3BETLED16、及び遊技補助表示器12、リプレイランプ91、外端信号ランプ92、投入可能ランプ93、スタート有効ランプ94を含む。
遊技補助表示器12は、入賞の発生により払い出されたメダル枚数、操作態様に対応する操作情報(ナビ報知)などを表示する。以下では、遊技補助表示器12が表示する払い出されたメダル枚数を「払出枚数」と称する場合がある。すなわち、遊技補助表示器12は、一のゲームの結果に応じて遊技者へ付与される遊技価値を表示する。遊技補助表示器12は、7セグメント式のLEDディスプレイで構成されており、主制御部161によって制御される。
1BETLED14は、賭数が1設定されている旨を点灯により報知する。2BETLED15は、賭数が2設定されている旨を点灯により報知する。3BETLED16は、賭数が3設定されている旨を点灯により報知する。リプレイランプ91は、点灯状態となることで、リプレイ入賞をしたことを示す。外端信号ランプ92は、点灯状態となることで、スロットマシン2がAT1状態またはAT2状態に移行することを示す。投入可能ランプ93は、点灯状態となることで、賭数を設定可能であることを示す。スタート有効ランプ94は、スタートスイッチ7の操作が有効であることを示す。
上述したように、本実施例におけるスロットマシン2は、有利区間通常、高確状態、AT1状態、AT2状態に制御されることが可能である。有利区間通常は、ナビが実行されない状態である。高確状態は、付与されるポイントの数が有利区間通常よりも大きくなる状態であって、AT1状態に移行しやすい状態である。AT1状態は、ナビが表示される状態であって、所定のゲーム数が消化されることによって終了する。AT2状態は、ナビに従うことで遊技者が獲得可能な純増枚数を増加させることが可能な、いわゆる疑似ボーナスの状態である。
図4に示されるように、AT2状態は、AT1状態から制御され得る。例えば、AT1状態の残りゲーム数が0ではない状態で、AT2状態に制御された場合、AT1状態を保持したまま、AT2状態に制御される。例えば、AT1状態の残りゲーム数が30ゲームである状態に、AT2状態に制御された場合、AT2状態における遊技の終了後、残りゲーム数が30ゲームの状態のAT1状態のゲームが再開される。
本実施例におけるスロットマシン2では、ホール用管理コンピュータまたはセキュリティ上の管理を行うホールサーバ、外部表示機器などと通信を行うための外部出力端子が設けられている。メイン処理のフローチャートにて説明したように、主制御部161は、外部出力端子を介して、スロットマシン2から受信した遊技機状態情報をホール用管理コンピュータ(ホールコン)やセキュリティ上の管理を行うホールサーバなどの外部に送信する。すなわち、主制御部161は、スロットマシン2の状態が、有利区間通常、高確状態、AT1状態、AT2状態のいずれに制御されているのかを外端信号ランプ92の点灯によって報知する。
図75は、外部信号処理を示すフローチャートである。メイン処理の外部信号処理(Sd20,Sd38)において、主制御部161は、図75に示されるフローチャートを実行する。主制御部161は、スロットマシン2が制御されている有利状態を取得し、有利状態はAT1状態に制御されているか否かを判断する(St1)。St1において、上述したように、AT1状態の残りゲーム数を残した状態でAT2状態へと制御されている遊技状態の場合、主制御部161は、AT1状態に制御されていると判断する。また、単にAT1状態にだけ制御されている場合であっても、主制御部161は、AT1状態に制御されていると判断する。AT1状態に制御されていると判断する場合(S11でYES)、主制御部161は、外端信号ランプ92を発光態様に制御する(St2)。その後、主制御部161は、外部信号1の出力を開始する(St3)。外部信号1は、AT1状態に制御されていることを示す信号である。既に外部信号1の出力が行われている場合、主制御部161は、外部信号1を出力する状態を保持する。
主制御部161は、さらに、スロットマシン2が制御されている有利状態を取得し、有利状態はAT2状態であるか否かを判断する(St4)。すなわち、St4において主制御部161は、AT1状態を保持した状態でAT2状態に制御されているか否かを判断する。AT1状態を保持した状態でAT2状態に制御されていると判断する場合(St4でYES)、主制御部161は、外部信号2の出力を開始する(St5)。外部信号2は、AT2状態に制御されていることを示す信号である。既に外部信号2の出力が行われている場合、主制御部161は、外部信号2が出力されている状態を保持する。AT1状態を保持した状態でAT2状態に制御されていないと判断する場合(St4でNO)、主制御部161は、外部信号2の出力を終了する(St5)。既に外部信号2の出力が行われていない場合、主制御部161は、外部信号2が出力されていない状態を保持する。
St1に戻り、AT1状態に制御されていないと判断する場合(St1でNo)、その後、主制御部161は、外部信号1の出力を停止する(St7)。既に外部信号1の出力が行われていない場合、主制御部161は、外部信号1が出力されていない状態を保持する。その後、主制御部161は、外端信号ランプ92を通常態様に制御する(St8)。外端信号ランプ92の通常態様とは、発光が行われていない態様を意味する。
主制御部161は、有利状態はAT2状態に制御されているか否かを判断する(St9)。AT2状態に制御されていると判断する場合(St9でYES)、主制御部161は、外端信号ランプ92を発光態様に制御する(St10)。その後、主制御部161は、外部信号2の出力を開始する(St11)。既に外部信号2の出力が行われている場合、主制御部161は、外部信号2を出力している状態を保持する。AT2状態に制御されていないと判断する場合(St9でNO)、主制御部161は、外部信号2の出力を停止する(St12)。既に外部信号2の出力が行われていない場合、主制御部161は、外部信号2を出力していない状態を保持する。その後、主制御部161は、外端信号ランプ92を通常態様に制御する(St13)。主制御部161は、図75に示すフローチャートに従うことによって、図76に示すように外端信号ランプ92をさせる。
図76は、本実施例における外端信号ランプ92の点灯態様を説明するための図である。図76に示されるように、タイミングt1において、高確状態または有利区間通常からAT2状態に制御されることによって外端信号ランプ92は点灯状態に制御される。また、タイミングt2において、AT2状態から高確状態または有利区間通常に制御されることによって外端信号ランプ92は通常状態に制御される。続いて、タイミングt3において、高確状態または有利区間通常からAT1状態に制御されることによって外端信号ランプ92は点灯状態に制御される。さらに、タイミングt4において、AT1状態を保持した状態でAT2状態に制御される。このとき、外端信号ランプ92は点灯状態を保持する。また、タイミングt5において、AT2状態からAT1状態へと制御されたとき、外端信号ランプ92は点灯状態を保持する。最後に、タイミングt6において、AT1状態から通常区間へと制御されることによって外端信号ランプ92は通常状態に制御される。
このように、本実施例におけるスロットマシン2では、AT1状態に制御されているときに外部信号1を出力し、AT2状態に制御されているときに外部信号2を出力するため、外部信号の出力によって、スロットマシン2がAT1状態またはAT2状態のいずれに制御されているかの判別を遊技者が行うことを防止できる。また、主制御部161は、外部信号1及び外部信号2のいずれか一方を外部に出力する前に外端信号ランプ92を発光態様に制御する。これにより、外部機器に対して有利状態に関する信号を出力する前に、特定発光手段によって第1有利状態または第2有利状態に制御されたことを報知することができるため、スロットマシンよりも先に外部機器にて、有利状態が報知されることを防止することができる。
さらに、主制御部161は、図75のSt7,St8及び図76のタイミングt6に示されるように外部信号1の出力を停止した後に外端信号ランプ92を通常態様に制御し、図75のSt12,St13及び図76のタイミングt2に示されるように外部信号2の出力を停止した後に外端信号ランプ92を通常態様に制御する。これにより、外部機器に対して有利状態に関する外部信号の出力を停止した後に、外端信号ランプ92が通常態様に制御されるため、外部機器にてAT1状態またはAT2状態であることが報知されているにも関わらず、スロットマシン2ではAT1状態またはAT2状態以外の有利状態に制御されることを防止することができる。また、主制御部161は、外部信号1及び外部信号2のいずれか一方を出力する期間に前記特定発光手段を前記特定態様に制御する。これにより、外端信号ランプ92が発光態様に制御されることよって、AT1状態またはAT2状態のいずれかに制御されていることを外部に判別させることができる。
図76のタイミングt4とタイミングt5とに示されるように、主制御部161は、外部信号1を出力している期間において、外部信号2の出力を開始及び停止することがあり得る。主制御部161は、外部信号2の出力を開始したか否か、及び外部信号2の出力を終了したかに関わらず、外端信号ランプ92の発光態様を保持する。これにより、外端信号ランプ92が発光態様に制御されることよって、少なくともAT1状態に制御されていることを外部に判別させることができる。
図77は、外端信号ランプ92の点灯態様の第1変形例を説明するための図である。第1変形例では、タイミングt2~タイミングt3において高確状態に制御されている。変形例1に示されるように、主制御部161は、タイミングt2~タイミングt3の間において、外端信号ランプ92を発光態様に制御する。すなわち、主制御部161は、外部信号1及び外部信号2のいずれか一方を出力する期間において、外端信号ランプ92を発光態様に制御する。これにより、主制御部161は、外端信号ランプ92が発光態様に制御されることよって、AT1状態またはAT2状態に制御されている可能性があることを外部に判別させることができる。
図78は、外端信号ランプ92の点灯態様の第2変形例を説明するための図である。第2変形例では、主制御部161は、AT2状態に制御されている期間の間、継続して外部信号2を出力せず、1パルスの外部信号2だけを外部機器に送信する。これにより、外部信号処理における通信量を削減することができる。
[有利区間における出玉制御処理について]
図67に示されるメイン処理のフローチャートで説明したように、本実施例におけるスロットマシン2では、有利区間における出玉制御が行われる。有利区間における出玉制御とは、所定の条件が成立したことによって有利区間を終了する制御であって、いわゆるリミッタ制御である。本実施例において、主制御部161は、有利区間において付与されたメダル数の合計である合計付与数と、有利区間において使用されたメダル数の合計である合計使用数との差を差数カウント値として計数し、当該差数カウント値を用いて出玉制御を行う。すなわち、主制御部161は、差数カウント値を用いて遊技者の獲得メダル数を計数する。差数カウント値は、主制御部161のRAM161c内に記憶されている差数カウンタによって保持される。
より具体的には、主制御部161は、有利区間におけるメダル数の合計付与数から合計使用数を差し引いた値が+2400枚を越えたとき、有利区間への制御を終了して通常区間への制御を開始する。合計付与数から合計使用数を差し引いた値が+2400枚を越えるときとは、例えば、有利区間において、遊技者に10000枚のメダルが付与され、かつ、遊技者によって7600枚より多くのメダルが使用されたときである。
主制御部161は、図67のメイン処理にて出玉制御前処理(Sd8)を実行する。図79は、主制御部161の出玉制御前処理を示すフローチャートである。出玉制御前処理は、遊技開始時に実行される。出玉制御前処理(Sd8)において、主制御部161は、スロットマシン2の状態が有利区間へ制御されているか否かを判断する(Su1)。有利区間への制御がされている場合(Su1でYES)、主制御部161は、有利区間カウンタの値を加算する(Su2)。
有利区間カウンタとは、主制御部161のRAM161c内に記憶されているカウンタであって、有利区間におけるゲーム数の上限を定めるためのカウンタである。本実施例におけるスロットマシン2では、メダル数の合計付与数と合計使用数との差を用いて有利区間を終了するリミッタ制御に加えて、有利区間において実行されたゲーム数を用いて有利区間を終了するリミッタ制御の2つのリミッタ制御が行われる。すなわち、有利区間におけるリミッタ制御は、メダル数とゲーム数との2つの観点から実行される。
ゲーム数を用いるリミッタ制御において、主制御部161は、有利区間が開始されてから所定数のゲームが実行されたことに基づいて、有利区間への制御を終了し通常区間への制御を開始する。本実施例における所定数は、4000ゲームである。すなわち、主制御部161は、有利区間での最大ゲーム数である4000ゲームに到達したか否かを計数するため、1ゲーム(単位遊技)ごとに有利区間カウンタの値を1加算する。
続いて、主制御部161は、差数カウント値がエンディング移行枚数に到達したか否かを判断する(Su3)。上述したように、本実施例におけるスロットマシン2では、差数カウント値がエンディング移行枚数(例えば、2300)に達したときに、上限枚数(例えば、2400枚)に達するまで有利区間である状態への制御が継続することが確定するエンディング状態に制御される。
主制御部161は、差数カウント値がエンディング移行枚数に到達したと判断する場合(Su3においてYES)、スロットマシン2の遊技状態をエンディング状態へと移行する(Su4)。主制御部161は、差数カウント値がエンディング移行枚数に到達していないと判断する場合(Su3においてNO)、エンディング状態へ移行しない。
続いて、主制御部161は、内部抽選の結果、有利区間終了の条件が成立したか否かを判断する(Su5)。本実施例における主制御部161は、AT1状態を終了するときに、差数カウント値に関わらず、内部抽選の結果に基づいて有利区間を終了し、通常区間に制御することができる。換言すれば、主制御部161は、AT1状態を終了するときに、予め定められた特定役が当選したときに、有利区間を終了する。Su5では、予め定められた特定役に当選することが、有利区間終了の条件である。主制御部161は、メイン処理の内部抽選処理において、予め定められた特定役に当選していた場合、有利区間終了の条件が成立したとして(Su5でYes)、有利区間終了フラグに「3」をセットする(Su6)。
有利区間終了フラグは、RAM161c内に記憶されているフラグであって、後の処理において有利区間を終了するか否かを判定するために使用されるフラグである。有利区間終了フラグは、例えば、0~3の値を保持可能なカウンタである。有利区間終了フラグには、初期値として「0」が記憶されている。Su6において、主制御部161は、有利区間終了フラグが保持する値を「3」に更新し、出玉制御前処理を終了し、メイン処理に戻る。また、主制御部161は、内部抽選の結果、有利区間終了の条件が成立していないと判断する場合(Su5でNO)、出玉制御前処理を終了し、メイン処理に戻る。
また、Su1において、有利区間ではなく通常区間に制御されていると判断する場合(Su1でNO)、主制御部161は、有利区間へ移行するか否かを判定する(Su7)。より具体的には、主制御部161は、メイン処理における内部抽選処理の結果に応じて、通常区間から有利区間へ移行するか否かを決定する。内部抽選処理の結果の通常区間に留まると判断する場合(Su7でNO)、主制御部161は、出玉制御前処理を終了し、メイン処理に戻る。
内部抽選処理の結果の通常区間から有利区間へ移行すると判断する場合(Su7でYES)、主制御部161は、差数カウンタを初期化する(Su8)。すなわち、主制御部161は、差数カウント値を初期値に戻す。当該差数カウント値の初期値については、合計付与数と合計使用数との間の差の算出方法によって、種々の値が設定され得る。詳細については、後述で複数のパターンを例示して説明する。
その後、主制御部161は、有利区間カウンタを初期化する(Su9)。すなわち、主制御部161は、有利区間カウンタの値を初期値に戻す。本実施例において、有利区間カウンタの初期値は、「0」である。主制御部161は、差数カウンタ及び有利区間カウンタを初期化した後に、出玉制御前処理を終了する。
図67に示されるように、Sd8にて出玉制御前処理を終了した後、内部抽選処理、入賞判定処理などが行われ、その後、主制御部161は、Sd30にて出玉制御後処理を行う。図80は、初期値による有利区間終了判定を実行する主制御部161の出玉制御後処理を示すフローチャートである。
出玉制御後処理(Sd30)において、主制御部161は、入賞判定処理にてリプレイ入賞したか否かを判断する(Sv1)。リプレイ入賞していないと判断する場合(Sv1でNO)、主制御部161は、RAM161cの差数カウンタに保持されている差数カウント値を、第1レジスタバンクR1に含まれるレジスタに読み出す(Sv2)。主制御部161は、例えば、第1レジスタバンクR1のAレジスタとその他のレジスタの組合せによって差数カウント値を記憶する。以下では、第1レジスタバンクR1のレジスタに読み出された値を「差数カウント値に対応する値」と称する。
主制御部161は、第1レジスタバンクR1に読み出された差数カウント値に対応する値に対して、実行されているゲーム(単位遊技)における付与数を加算する(Sv3)。さらに、主制御部161は、第1レジスタバンクR1に読み出した差数カウント値に対応する値に対して、実行されているゲーム(単位遊技)における使用数を減算する(Sv4)。すなわち、主制御部161は、実行されているゲームにおいて付与されたメダル数と使用されたメダル数とを第1レジスタバンクR1内の差数カウント値に対応する値に対して加減算し、差数カウント値に対応する値を更新する。
最後に、Sv3及びSv4の処理によって、更新された第1レジスタバンクR1に記憶されている差数カウント値に対応する値を、RAM161cに書き込む(Sv5)。Sv2において、読み出した差数カウント値を第1レジスタバンクR1において加算及び減算処理を行い、当該加算及び減算処理が行われた後の差数カウント値に対応する値をRAM161cに書き戻す。これによって、RAM161cの差数カウンタが更新され、実行されているゲームの付与数と使用数が反映される。
続いて、主制御部161は、差数カウント値に特定事象が発生したか否かを判断する(Sv6)。特定事象については、後述にて詳細に説明する。主制御部161は、差数カウント値に特定事象が発生したと判断する場合(Sv6でYES)、有利区間終了フラグに「1」をセットする(Su7)。すなわち、主制御部161は、有利区間終了フラグが保持する値を「1」に更新する。差数カウント値に特定事象が発生していない場合(Su6でNO)、主制御部161は、Sv7にて有利区間終了フラグの更新処理を行わない。
続いて、主制御部161は、有利区間カウンタの値が所定数(4000)より大きいか否かを判断する(Sv8)。特定事象については、後述にて詳細に説明する。主制御部161は、差数カウント値に特定事象が発生したと判断する場合(Sv8でYES)、有利区間終了フラグに「2」をセットする(Sv9)。すなわち、主制御部161は、Sv9にて有利区間終了フラグが保持する値を「1」に更新する。有利区間カウンタの値が所定数以下である場合(Sv9でNO)、主制御部161は、有利区間終了フラグの更新処理を行わない。
さらに、主制御部161は、有利区間終了フラグに「0」以外の値がセットされているか否かを判定する(Sv10)。「0」以外の値がセットされている場合とは、出玉制御前処理におけるSu6、出玉制御後処理におけるSv7及びSv9の少なくともいずれかの処理において、有利区間終了フラグの更新が行われたときである。主制御部161は、有利区間終了フラグに「0」以外の値がセットされている場合(Sv10にてYES)、有利区間から通常区間へと移行させる(Sv11)。換言すれば、主制御部161は、有利区間を終了して、通常区間を開始する。
また、主制御部161は、Sv1において、リプレイ入賞したと判断する場合(Sv1でNO)、Sv2~Sv5までに示される差数カウント値の更新処理を実行することなく、出玉制御後処理を終了する。すなわち、主制御部161は、単位遊技が終了するときに再遊技表示結果(リプレイ役)が導出されたか否かを判定し、再遊技表示結果が導出されたと判定する場合、差数カウント値の更新をしない。これにより、再遊技表示結果が導出されるときには、更新処理を省略することができ、処理負担を軽減することができる。
また、図67,図80に示されるように、メイン処理の出玉制御後処理において、主制御部161は、単位遊技が開始されるときと当該単位遊技の終了するときとで差数カウント値が変化するか否かに関わらず、単位遊技ごとに差数カウント値に基づいて、有利区間への制御を終了するか否かをSv6、8にて判定する。これにより、単位遊技ごとに確実に有利区間への制御を終了するか否かを判定することができる。
このように、主制御部161は、単位遊技が終了するときに、差数カウント値を第1レジスタバンクR1に格納し、第1レジスタバンクR1に格納されている差数カウント値に付与されたメダル数に対応する値を加算した後に、使用されたメダル数に対応する値を減算する。これにより、加算された後に減算されることを担保できるため、減算のみが行われることがなく、差数カウント値が意図せずに小さい値となることを防止できる。
図81は、RAM161cの差数カウンタを説明するための図である。差数カウンタは、2バイトの容量を有する記憶領域である。RAM161cの差数カウンタは、16ビット(2バイト)の領域を2進数で記憶することができる。すなわち、差数カウンタでは、0~65535までの数値を計数し保持することができる。また、第1レジスタバンクR1においても、差数カウント値に対応する値を記憶するため、16ビット(2バイト)の使用可能な領域が同様に配置されている。
図81(A)に示されているように、2バイト中の全てのビットが「0」である場合、対応する10進数は「0」である。図81(B)に示されているように、6ビット目~8ビット目、10ビット目~12ビット目、14ビット目が「1」であり、その他のビットが「0」である場合、すなわち「0010 1110 1110 0000」である場合、対応する10進数は、「12000」である。また、図81(C)に示されているように、15ビット目だけが「1」であり、その他のビットが「0」である場合、すなわち「0100 0000 0000 0000」である場合、対応する10進数は、「16384」である。最後に、図81(D)に示されているように、全てのビットが「1」である場合、対応する10進数は、「65535」である。
図82は、CPU161aを介した第1レジスタバンクR1とRAM161cとの間の通信の流れを示す図である。出玉制御後処理が実行された後、CPU161aは、リプレイ入賞していない場合、RAM161cの差数カウント値を第1レジスタバンクR1に読み出す。例えば、RAM161c内の差数カウンタに図81(B)の「0010 1110 1110 0000」が記憶されている場合、CPU161aは、第1レジスタバンクに「0010 1110 1110 0000」を、差数カウント値に対応する値として書き込む。
続いて、図82に示されているように、実行されているゲームにおいて発生した付与数を第1レジスタバンクR1の差数カウント値に対応する値に対して加算する。CPU161aは、実行されているゲームにおいて、例えば、8枚のメダルが付与されたと判断する場合、第1レジスタバンクR1に記憶される「0010 1110 1110 0000」に対して、8枚に対応する数値を加算し、「0010 1110 1110 1000」とする。すなわち、4ビット目を「0」から「1」に書き換える。
さらに、実行されているゲームにおいて発生した使用数を第1レジスタバンクR1の差数カウント値に対応する値に減算する。CPU161aは、実行されているゲームにおいて、例えば、3枚のメダルが使用されたと判断する場合、付与数が加算された後の第1レジスタバンクR1に記憶されている「0010 1110 1110 1000」に対して、3枚に対応する数値を減算し「0010 1110 1110 0101」とする。すなわち、1~4ビット目を「1000」から「0101」に書き換える。
最後に、CPU161aは、付与数の加算及び使用数の減算が行われた後の第1レジスタバンクR1の「0010 1110 1110 0101」という値を、RAM161cの差数カウンタに書き戻す。これによって、RAM161cに含まれる差数カウント値は「0010 1110 1110 0000」から「0010 1110 1110 0101」とに書き換えられ、付与数と使用数の加減算が適用された値となる。換言すれば、RAM161cの差数カウント値は、更新される。
このように、差数カウント値は、RAM161cに格納され、主制御部161は、RAM161cに記憶されている差数カウント値を第1レジスタバンクR1に読み出し、当該読み出された第1レジスタバンクR1の値に対して、付与されたメダル数に対応する値と使用されたメダル数に対応する値とを更新し、当該更新された第1レジスタバンクR1の値に基づいて、有利区間への制御を終了するか否かを判定する。これにより、第1レジスタバンクR1を用いて、差数カウント値の計数を行うことができるため、CPU161aの処理負担を軽減することができる。
また、主制御部161は、図80のSv10にて有利区間への制御を終了するか否かを判定する前に、図80にて更新された第1レジスタバンクR1の値をRAM161cに格納されている差数カウント値に対して更新する。これにより、有利区間を終了する場合であってもRAM161cに格納されている差数カウント値が意図しない値となることを防止することができる。
[初期値による有利区間終了判定]
上述したように、本実施例におけるスロットマシン2では、有利区間においてメダルの合計付与数から合計使用数を差し引いた値が2400枚を上回ったときリミッタ制御が実行される。すなわち、有利区間での付与数から使用数を差し引いた差の上限は、2400枚であり、2400枚を上回って払い出されたとき、通常区間へと移行する。これにより、射幸性が過度に高まってしまうことを防ぐことができる。
差数カウント値が特定数(+2400)を上回ったか否かを主制御部161が判定する方法として、種々の方法が考えられ得る。以下では、図83~図86を用いて、初期値設定による有利区間の終了判定(リミッタ制御)を行うための4パターンについて説明する。
図83は、初期値設定による有利区間終了判定の第1パターンを説明するための図である。図80のSv6,Sv10にて説明したように、本実施例におけるスロットマシン2では、主制御部161は、差数カウント値に特定事象が発生したことに基づき有利区間を終了する。
特定事象をどのような事象とするかは、設定、プログラムによって可変であるが、合計付与数から合計使用数を差し引いた値が特定数を上回ったときに特定事象が発生するように設定される必要がある。図83の例では、差数カウント値の15ビット目が「0」から「1」に変化することが特定事象として設定されている。主制御部161は、差数カウント値の15ビット目が「0」から「1」に桁上がりしたとき、特定事象が発生したと判断する。
図83における差数カウント値の初期値は、「0011 0110 1001 1111」であり、10進数として表現すれば「13983」である。以下では、説明を簡単とするため、2進数として保持されている差数カウント値を10進数に変換した値で説明する場合がある。図79のSu8において、差数カウンタが初期化されたとき、差数カウンタには「0011 0110 1001 1111」が記憶される。
差数カウント値の初期値は、有利区間が終了したときに設定される値であるから、メダルの合計付与数から合計使用数を差し引いた値が「0枚」であることを意味する。すなわち、図83における差数カウント値「13983」は、合計付与数から合計使用数を差し引いた値が「0枚」であることと対応する。図83の中央には、上述で説明した差数カウント値の容量を示す1次元の横軸が示されている。当該横軸の左端は、図81(A)に示されるように差数カウント値が「0000 0000 0000 0000」(10進数で「0」)を示し、右端は、図81(D)に示されるように差数カウント値が「1111
1111 1111 1111」(10進数で「65535」)を示す。1次元の横軸の上部には、便宜上、差数カウント値を10進数として表現した場合の値が示されている。1次元の横軸の下部には、差数カウント値に対応する合計付与数と合計使用数との差が示されている。
初期値である「13983」に対して、特定数である「2400」を加算すれば、「16383」となる。「16383」を2進数として表現すれば「0011 1111 1111 1111」である。付与数と使用数との差が+2400を上回ったときとは、差数カウント値「16383」に「1」加算され「16384」となったときである。「16384」は、2進数で表現すれば、「0100 0000 0000 0000」となる。すなわち、合計付与数と合計使用数との差が+2400を上回ったとき、15ビット目が「0」から「1」に変化する特定事象が発生している。このように、主制御部161は、有利区間における合計付与数と合計使用数との差が、+2400枚を上回ったとき、差数カウント値の15ビット目の桁上がりが発生することによって特定事象が発生したと判断できる。その結果、出玉制御後処理において、図80にて説明したようにSv10からSv11へと移行し、有利区間を終了させることができる。
このように、図83では、差数カウント値の初期値は、合計付与数と合計使用数との差が+2400枚を上回ったときに、特定事象が発生するように設定されている。これによって、本実施例のスロットマシン2では、差数カウント値に対して、特定数を上回ったかを判断するために何ら特定の演算をすることなく、初期値を「13983」に設定するだけで合計付与数と合計使用数との差が特定数を上回ったことを判定でき、有利区間の終了を好適に判定することができる。
より具体的に説明すれば、差数カウント値の初期値は、合計付与数と合計使用数との差が+2400を上回ったとき、差数カウント値の15ビット目が桁上がりするように設定されている。主制御部161は、差数カウント値の15ビット目が桁上がりしたことに応じて、有利区間への制御を終了する。これにより、差数カウント値に特定の演算を加えることなく、差数カウント値の特定ビットを参照することによって、有利区間への制御を終了するか否かを判定できる。
尚、図83の例では、特定事象を15ビット目の値が桁上がりしたこととして設定した例を説明したが、15ビット目以外のビットが桁上がりしたことを特定事象として設定しても良い。例えば、14ビット目の桁上がりを特定事象として設定しても良い。この場合、差数カウント値の初期値は、付与数と使用数との差が+2400枚を上回ったときに、14ビット目が桁上がりするように設定される。
図84は、初期値設定による有利区間終了判定の第2パターンを説明するための図である。上述したように、特定事象をどのような事象とするかは、主制御部161の設定、プログラムによって可変である。図84の例では、差数カウント値が加算されたことによってオーバーフローしたことが特定事象として設定されている。主制御部161は、差数カウント値が加算されたことによってオーバーフローしたか否かを、図61にて説明したフラグレジスタを用いて判断する。より具体的には、主制御部161は、第1Fレジスタの2ビット目の値が「0」から「1」に変化したとき、オーバーフローが生じたと判断する。
図84における差数カウント値の初期値は、「1111 0110 1001 1111」であり、10進数として表現すれば「63135」である。図84においては、差数カウント値の初期値である「63135」が、合計付与数から合計使用数を差し引いた値が「0枚」であることと対応する。
初期値である「63135」に対して、特定数である「2400」を加算すれば、「65535」となる。「65535」を2進数として表現すれば、「1111 1111 1111 1111」となる。すなわち、差数カウント値が「65535」を上回ったとき、差数カウント値に特定事象として設定された加算によるオーバーフローが生じる。さらに換言すれば、「65535」を上回ったとき、フラグレジスタがオン状態となる。このように、主制御部161は、有利区間における合計付与数と合計使用数との差が、+2400枚を上回ったときにフラグレジスタの2ビット目が桁上がりするため、特定事象が発生したと判断できる。その結果、出玉制御後処理において、図80にて説明したようにSv10からSv11へと移行し、有利区間を終了させることができる。
このように、図84では、差数カウント値の初期値は、合計付与数と合計使用数との差が+2400枚を上回ったときに加算によるオーバーフローである特定事象が発生するように設定されている。これにより、本実施例のスロットマシン2では、第1レジスタバンクR1が機能として有するフラグレジスタを用いることによって、有利区間への制御を終了するか否かを好適に判定できる。
図85は、初期値設定による有利区間終了判定の第3パターンを説明するための図である。図85では、図83及び図84に対して、付与数、使用数の加減算の手法が異なる。図85の下部に示されるように、メダルが使用されたときに使用されたメダル数に対応する値が加算される。また、メダルが付与されたときに付与されたメダル数に対応する値が減算される。すなわち、図85に示される第3パターンでは、図80におけるSv3において、単位遊技における付与数を減算し、図80におけるSv4において、単位遊技における使用数を加算する。ようするに、図85では、図83、92に対して、使用及び付与と加算及び減算との関係が入れ替わっている。
図85の例では、図83と同様に、差数カウント値の15ビット目が「1」から「0」に変化することが特定事象として設定される。図85における差数カウント値の初期値は、「0100 1001 0110 0000」であり、10進数として表現すれば「18784」である。図85における差数カウント値「18784」は、合計付与数から合計使用数を差し引いた値が「0枚」であることと対応する。
初期値である「18784」に対して、特定数である「2400」を減算すれば、「16384」となる。「16384」を2進数として表現すれば、「0100 0000 0000 0000」となる。付与数と使用数との差が+2400を上回ったときとは、差数カウント値「16384」から「1」減算され「16383」となったときである。「16383」は、2進数で表現すれば、「0011 1111 1111 1111」となるため、付与数と使用数との差が+2400を上回ったとき、15ビット目が「1」から「0」に変化する特定事象が発生する。
このように、主制御部161は、有利区間における合計付与数と合計使用数との差が、+2400枚を上回ったとき、差数カウント値の15ビット目の桁下がりに基づき、特定事象が発生したと判断できる。その結果、出玉制御後処理において、図80にて説明したようにSv10からSv11へと移行し、有利区間を終了させることができる。
このように、図85では、差数カウント値の初期値は、合計付与数と合計使用数との差が+2400枚を上回ったときに差数カウント値の15ビット目の桁下がりである特定事象が発生するように設定されている。これにより、差数カウント値に対して何ら特定の演算をすることなく、合計付与数と合計使用数との差が+2400枚を上回ったことを判定することができ、有利区間の終了を好適に判定することができる。
より具体的に説明すれば、差数カウント値の初期値は、合計付与数と合計使用数との差が+2400枚を上回ったとき、差数カウント値の15ビット目が桁下がりするように設定される。主制御部161は、差数カウント値の15ビット目が桁下がりしたことに応じて、有利区間への制御を終了する。これにより、差数カウント値に演算を加えることなく、差数カウント値の15ビット目を参照することによって、有利区間への制御を終了するか否かを判定できる。
図86は、初期値設定による有利区間終了判定の第4パターンを説明するための図である。図86では、図85と同様に、メダルが使用されたときに加算され、付与されたときに減算される。すなわち、図86に示される第4パターンも、図85と同様に、図80におけるSv3において、単位遊技における付与数を減算し、図80におけるSv4において、単位遊技における使用数を加算する。
図86の例では、差数カウント値が減算されたことによってオーバーフローすることが特定事象として設定されている。図86における差数カウント値の初期値は、「0000
1001 0110 0000」であり、10進数として表現すれば「2400」である。図86における差数カウント値「2400」は、合計付与数から合計使用数を差し引いた値が「0枚」であることと対応する。
初期値である「2400」に対して、特定数である「2400」を減算すれば、10進数で「0」となる。「0」を2進数として表現すれば、「0000 0000 0000
0000」となる。すなわち、付与数と使用数との差が+2400を上回ったときとは、差数カウント値「0」から「1」減算され、「0」を下回り、オーバーフローが生じるときである。すなわち、フラグレジスタがオン状態となる。このように、主制御部161は、有利区間における合計付与数と合計使用数との差が、+2400枚を上回ったときにフラグレジスタの2ビット目が桁上がりするため、減算によるオーバーフローである特定事象が発生したと判断できる。その結果、出玉制御後処理において、図80にて説明したようにSv10からSv11へと移行し、有利区間を終了させることができる。
このように、図86では、差数カウント値の初期値は、合計付与数と合計使用数との差が+2400枚を上回ったときに減算によるオーバーフローである特定事象が発生するように設定されている。これにより、図86のスロットマシン2では、第1レジスタバンクR1が機能として有するフラグレジスタを用いることによって、有利区間への制御を終了するか否かを好適に判定できる。
[判定値による有利区間終了判定]
上述したように、図83~図86では、差数カウント値の初期値を、付与数と使用数との差が特定数を上回ったときに特定事象が発生するように設定することによって、有利区間を終了した。以下、図87~図91では、初期値を特定の値に設定するのではなく、判定値を用いて有利区間を終了する例について説明する。
図87は、判定値による有利区間終了判定を実行する場合の主制御部161の出玉制御後処理を示すフローチャートである。図87に示されるフローチャートでは、図80のフローチャートに対して、Sv5Aの処理が追加されている。その他の処理は、図80と同様であるため、説明を繰り返さない。図87では、Sv5の処理を実行した後、Sv5Aの処理が実行される。Sv5Aの処理では、第1レジスタバンクに記憶されている差数カウント値に対応する値に対して、判定値を加算する。判定値とは、有利区間終了判定を行うための値であって、図88にて説明する。
図88は、判定値による有利区間終了判定の第1パターンを説明するための図である。図88においても、図80のSv10,11にて説明したように、主制御部161は、差数カウント値に特定事象が発生したことに基づいて有利区間を終了する。
図88の例では、図83と同様に、差数カウント値の15ビット目が「0」から「1」に変化することが特定事象として設定されている。図88における差数カウント値の初期値は図83と異なる。図88における差数カウント値の初期値は、「0010 1110
1110 0000」であり、10進数として表現すれば「12000」である。図88における差数カウント値の初期値は、有利区間カウンタの上限数に基づいて定められている。上述したように、ゲーム数の観点からの有利区間の上限数は、4000ゲームである。仮に4000ゲームの間、一度も入賞しなかった場合、付与数と使用数との差は、-12000枚となる。そのため、図88における差数カウント値の初期値を「12000」とすることによって、使用数が極度に増大してしまったとしても、減算によるオーバーフローは発生しない。尚、図88において初期値は「12000」に限られず、例えば、「12000」よりも大きい値であっても良い。
主制御部161は、図87のSv5Aに示されるように、差数カウント値の更新後、差数カウント値に対応する値に対して判定値を加算する。図88における判定値は「1983」である。初期値である「12000」に対して、特定数である「2400」を加算すれば、「14400」となる。さらに、「14400」に対して、判定値である「1983」を加算すれば「16383」となる。
「16383」を2進数として表現すれば、「0011 1111 1111 1111」となる。付与数と使用数との差が+2400を上回り、さらに判定値が加算されたとき、差数カウント値は「16383」から「16384」となる。「16384」は、2進数で表現すれば、「0100 0000 0000 0000」となるため、付与数と使用数との差が+2400を上回り、判定値が加算されたとき、15ビット目が「0」から「1」に変化する特定事象が発生する。
このように、図88においても、主制御部161は、有利区間における合計付与数と合計使用数との差が+2400枚を上回ったとき、差数カウント値の15ビット目の桁上がりに基づき、特定事象が発生したと判断できる。図88の例では、主制御部161は、判定値「1983」を加算した後の差数カウント値に対して特定事象が発生したか否かを判定する。その結果、出玉制御後処理において、図80にて説明したようにSv10からSv11へと移行し、有利区間を終了させることができる。
図88では、差数カウント値の判定値は、合計付与数と合計使用数との差が+2400枚を上回ったときに特定事象が発生するように設定されている。これにより、本実施例のスロットマシン2では、差数カウント値に判定値を加算したときに特定事象が発生したか否かに応じて、合計付与数と合計使用数との差が+2400枚を上回ったことを判定することで、差数カウンタに予め特定の初期値を設定せずとも有利区間の終了を好適に判定することができる。
より具体的に説明すれば、判定値は、合計付与数と合計使用数との差が+2400枚を上回ったとき、差数カウント値の15ビット目が桁上がりするように設定される。主制御部161は、差数カウント値の15ビット目が桁上がりしたことに応じて、有利区間への制御を終了する。これにより、主制御部161は、判定値が加算された差数カウント値に基づいて、有利区間への制御を終了するか否かを判定できる。
尚、図88における初期値は、有利区間カウンタとの関係から「12000」と定められているが「12000」以外の値であっても良く、例えば、「12000」よりも大きい値であれば良い。この場合、判定値は、合計付与数と合計使用数との差が+2400を上回ったとき、差数カウント値の15ビット目が桁上がりするように設定されればい良い。
図89は、判定値による有利区間終了判定の第2パターンを説明するための図である。図89の例では、差数カウント値が加算されたことによってオーバーフローしたことが特定事象として設定されている。主制御部161は、差数カウント値が加算されたことによってオーバーフローしたか否かを、フラグレジスタを用いて判断する。
図89の初期値は、図88と同様に有利区間カウンタとの関係から「12000」として定められている。一方で、図89における判定値は、「51135」である。初期値である「12000」に対して、特定数である「2400」を加算すれば、「14400」となる。さらに、「14400」に判定値である「51135」を加算すれば、「65535」となる。
すなわち、付与数と使用数との差が+2400を上回って差数カウント値が「65535」を越えたとき、加算によるオーバーフローが生じ、フラグレジスタがオン状態となる。このように、図89においても主制御部161は、有利区間における合計付与数と合計使用数との差が+2400枚を上回ったとき、フラグレジスタがオン状態となったことによって特定事象が発生したと判断できる。
図89の例では、主制御部161は、判定値「51135」を加算した後の差数カウント値に対して特定事象が発生したか否かを判定する。その結果、出玉制御後処理において、図80にて説明したようにSv10からSv11へと移行し、有利区間を終了させることができる。これにより、図89に示されるスロットマシン2では、判定値「51135」が加算された後の差数カウント値に対応する値に基づき、かつ、第1レジスタバンクR1が機能として有するフラグレジスタを用いることによって、有利区間への制御を終了するか否かを好適に判定できる。
図90は、判定値による有利区間終了判定の第3パターンを説明するための図である。図90では、図85、94と同様に、図80におけるSv3において、単位遊技における付与数を減算し、図80におけるSv4において、単位遊技における使用数を加算する。すなわち、図90では、図88、97に対して、使用及び付与と加算及び減算との関係が入れ替わっている。
図90の例では、差数カウント値の15ビット目が「1」から「0」に変化することが特定事象として設定されている。図90における差数カウント値の初期値は、「1100
0111 1011 1111」であり、10進数として表現すれば「53535」である。初期値である「53535」に「12000」を加算すると、「65535」となる。すなわち、初期値「53535」は、上述で説明したように有利区間カウンタとの関係から定められている。
図90における判定値は、「34751」である。初期値である「53535」に対して、特定数である「2400」を減算すれば、「51135」となる。さらに、「51135」に判定値である「34751」を減算すれば、「16384」となる。付与数と使用数との差が+2400を上回り、判定値が減算されたときとは、差数カウント値「16384」から「1」減算され「16383」となったときである。すなわち、付与数と使用数との差が+2400を上回り、判定値が減算されたとき、15ビット目が「1」から「0」に変化する特定事象が発生する。
主制御部161は、有利区間における合計付与数と合計使用数との差が、+2400枚を上回り、判定値が減算されたとき、差数カウント値の15ビット目の桁下がりに基づき、特定事象が発生したと判断できる。その結果、出玉制御後処理において、図80にて説明したようにSv10からSv11へと移行し、有利区間を終了させることができる。
このように、図90の判定値は、合計付与数と合計使用数との差が+2400枚を上回り、判定値が減算されたとき、差数カウント値の15ビット目の桁下がりである特定事象が発生するように設定されている。これにより、合計付与数と合計使用数との差が特定数を上回ったことを判定することによって、差数カウンタに予め特定の初期値を設定せずとも、有利区間の終了を好適に判定することができる。
より具体的に説明すれば、図90の判定値は、合計付与数と合計使用数との差が特定数を上回ったとき、差数カウント値の15ビット目が桁下がりするように設定される。主制御部161は、差数カウント値の15ビット目が桁下がりしたことに応じて、有利区間への制御を終了する。これにより、主制御部161は、判定値が減算された差数カウント値に基づいて、有利区間への制御を終了するか否かを判定できる。
図91は、判定値による有利区間終了判定の第4パターンを説明するための図である。図91では、図90と同様に、メダルが使用されたときに加算され、付与されたときに減算される。
図91の例では、差数カウント値の減算されたことによってオーバーフローすることが特定事象である。図91における差数カウント値の初期値は、図90と同様に、「53535」である。一方で、図91における判定値は、「51135」である。初期値である「53535」に対して、特定数である「2400」を減算し、さらに判定値である「51135」を減算すれば、「0」となる。合計付与数と合計使用数との差が+2400を上回り、判定値が減算されたときとは、差数カウント値「0」から「1」減算され、「0」を下回り、オーバーフローが生じるときである。すなわち、フラグレジスタがオン状態となる。その結果、出玉制御後処理において、図80にて説明したようにSv10からSv11へと移行し、有利区間を終了させることができる。
このように、図91では、判定値は、合計付与数と合計使用数との差が+2400枚を上回り、判定値を減算したときに、減算によるオーバーフローである特定事象が発生するように設定されている。これにより、本実施例のスロットマシン2では、第1レジスタバンクR1が機能として有するフラグレジスタを用いることによって、有利区間への制御を終了するか否かを好適に判定できる。
[演出制御部151における差数カウント値の計数]
上述では、主制御部161によって、単位遊技ごとにRAM161c及び第1レジスタバンクR1を用いて、差数カウント値が更新されることについて説明した。演出制御部151においても、主制御部161において保持される差数カウンタと、同様のカウンタが保持され、単位遊技毎に更新される。すなわち、本実施例のスロットマシン2では、主制御部161と演出制御部151の各々で、差数カウント値を記憶するためのカウンタが保持されている。以下では、演出制御部151によって保持される差数カウント値を記憶するためのカウンタを、「演出制御側の差数カウンタ」と称する。
図92は、主制御基板16と演出制御基板15との間におけるコマンド通信を説明するための図である。図92に示されるように、主制御部161は、スタートスイッチ7が操作(スタート操作)されたときに、図11に示す遊技開始時コマンドを演出制御部151に送信する。また、図92に示されるように、主制御部161は、ストップスイッチの第3停止時(全リール停止時)に、図12に示す遊技終了時コマンドを演出制御部151に送信する。
図11に示されるように、遊技開始時コマンドには、No.12のコマンド「メダル投入」が含まれ、当該コマンド「メダル投入」には、メダルがBETされたことを示す情報を格納されている。また、遊技終了時コマンドには、コマンド「入賞番号」が含まれ、コマンド「入賞番号」には、入賞に関する情報が格納されている。
図93は、演出制御部151が行う演出制御側の差数カウンタの使用数に関する更新処理の制御内容を説明する図である。演出制御部151は、遊技開始時コマンドを受信したか否かを判定する(Sm1)。遊技開始時コマンドを受信していない場合(Sm1でNO)、演出制御部151は、演出制御側の差数カウンタの更新処理を行うことなく、処理を終了する。遊技開始時コマンドを受信した場合(Sm1でYES)、演出制御部151は、遊技開始時コマンドに含まれるコマンド「メダル投入」を参照して、スタートスイッチ7が押下されたゲームにおいて使用されたメダルの使用数を取得する(Sm2)。その後、演出制御部151は、演出制御側の差数カウンタを更新する(Sm3)。
より具体的には、図83,図84,図88,図89のパターン例では、演出制御部151は、演出制御側の差数カウンタの値を減算する。一方、図85,図86,図90,図91のパターン例では、演出制御部151は、演出制御側の差数カウンタの値を加算する。
続いて、演出制御部151側の差数カウンタの付与数に関する更新について説明する。図94は、演出制御部151が行う演出制御側の付与数に関する更新の制御内容を説明する図である。演出制御部151は、遊技終了時コマンドを受信したか否かを判定する(Sn1)。遊技終了時コマンドを受信していない場合(Sn1でNO)、演出制御部151は、演出制御側の差数カウンタの付与数に関する更新処理を行うことなく、処理を終了する。遊技終了時コマンドを受信した場合(Sn1でYES)、演出制御部151は、遊技終了時コマンドに含まれるコマンド「入賞番号」を参照して、スタートスイッチ7が押下されたゲームにおいて使用されたメダルの付与数を取得する(Sn2)。その後、演出制御部151は、演出制御側の差数カウンタの付与数に関する更新をする(Sn3)。
より具体的には、図83,図84,図88,図89のパターン例では、演出制御部151は、演出制御側の差数カウンタの値を加算する。一方、図85,図86,図90,図91のパターン例では、演出制御部151は、演出制御側の差数カウンタの値を減算する。
演出制御側の差数カウンタは、演出制御部151のRAM151cに含まれる変数であり、主制御部161のRAM161cに含まれる差数カウンタと対応する。演出制御部151は、遊技開始時コマンドを受信する度に、演出制御側の差数カウンタの使用数に関する更新をするため、演出制御部151側の差数カウンタと、主制御部161側の差数カウンタとは、不正や不具合などが生じなければ、単位遊技終了時には同一の数となる。
図92に戻り、演出制御部151は、遊技開始時コマンドを受信後、演出制御側における差数カウント値に基づいて演出制御を実行する。演出制御部151は、差数カウント値からリミッタ制御が実行されるまでの枚数を取得することができる。演出制御部151は、リミッタ制御が実行されるまでの枚数が特定の閾値よりも小さい場合、煽り演出を実行しない。例えば、リミッタ制御直前において、遊技者に対して、無用な煽り演出を実行し、遊技者の興趣を低下させてしまうことが考えられる。そのため、本実施例におけるスロットマシン2では、演出制御部151は、差数カウント値に基づいて、演出制御を実行することによって、遊技者の興趣を低下してしまうことを防止する。
このように、演出制御部151は、主制御部161から受信するコマンドに基づいて、主制御部161から送信された投入数、入賞数に対応する値を用いて、演出制御側における差数カウント値を計数し、計数した後の演出制御側における差数カウント値に基づいて、演出制御を実行する。これにより、演出制御部151と主制御部161との各々で、差数カウンタを計数するため、正確な差数カウンタに基づいた演出制御部151による演出制御を実行できる。
尚、上述の例では、演出制御部151と主制御部161との各々で、差数カウンタを有する構成について説明したが、演出制御部151では差数カウンタの更新処理を実行せずに、主制御部161におけるRAM161cの差数カウント値が、直接、演出制御部151へと送信されても良い。この場合、主制御部161は、差数カウント値を演出制御部151に送信する。演出制御部151は、主制御部161から送信された差数カウント値に基づいて、演出制御を実行する。これにより、演出制御部151は、主制御部161の差数カウント値に基づいて演出制御を実行することができる。
[演出制御部と主制御部との間における差数カウント値の送信例]
上述したように、演出制御部151は、主制御部161から直接、差数カウント値を受信しても良い。図95は、主制御基板16から演出制御基板15へ送信されるコマンドを説明するための図である。
主制御基板16は、演出制御基板15に対して、図95(A)に示される2バイトのコマンドをセットにして送信する。主制御部161は、差数カウント値を図95(A)に示される2バイトのコマンドに含ませて演出制御部151へと送信する。図95(A)に示される2バイトのコマンドのうち、図95(A)上部に示される1バイト目のコマンドは、情報種別を示すコマンドである。例えば、図95(A)上部に示される1バイト目のコマンドには、内部抽選に係るコマンドであるのか、安全装置処理における安全装置発動残数を示すコマンドであるのか、などの送信コマンドの情報種別を示すデータである。
一方で、図95(A)に示される2バイトのコマンドのうち、図95(A)下部に示される2バイト目のコマンドは、情報内容を示すコマンドである。図95(A)下部に示される1バイト目のコマンドには、内部抽選の抽選結果や、安全装置発動残数を示すデータが格納される。1バイト目のコマンド及び2バイト目のコマンドの両方において、8ビット目(先頭ビット)は、コマンド自身が1バイト目のコマンド及び2バイト目のコマンドを区別するための情報が格納される。より具体的に説明すれば、演出制御部151は、主制御部161から2バイトのコマンドを受信する。演出制御部151は、受信した2バイトのコマンドの一方の8ビット目(先頭ビット)を参照し、「1」が格納されていれば、参照したコマンドは、情報種別を示す1バイト目のコマンドであると判断する。一方、演出制御部151は、受信した2バイトのコマンドの他方の8ビット目(先頭ビット)を参照し、「0」が格納されていれば、参照したコマンドは、情報内容を示す1バイト目のコマンドであると判断する。
差数カウンタの容量は、16ビット(2バイト)である。7ビットの領域に格納することができる最大の数は、127であり、1回のコマンド送信では、差数カウンタの容量の全てを送信することができない。
そのため、本実施例におけるスロットマシン2では、差数カウント値を主制御部161から演出制御部151へと送信する場合、2セットのコマンド送信(合計4バイト)をする。図95(B)は、送信コマンドの一例である。図95(B)に示されるように、主制御部161のRAM161cにおける差数カウンタには、「0001 0101 1111 1000」が記憶されている。
主制御部161は、1セット目における1バイト目のコマンドに「差数カウント値の1ビット~7ビット」を意味する種別情報を格納し、送信する。演出制御部151に対して1セット目の1バイト目が種別情報を表すことを示すため、1セット目の1バイト目の先頭ビットは、「1」となる。さらに、主制御部161は、1セット目における2バイト目のコマンドに、主制御部161の差数カウント値の1ビット~7ビット「000 0000」までの情報を格納し、送信する。演出制御部151に対して1セット目の2バイト目が情報内容であることを表すことを示すため、1セット目の2バイト目の先頭ビットは、「0」となる。
また、主制御部161は、2セット目における1バイト目のコマンドに「差数カウント値の8ビット~14ビット」を意味する種別情報を格納し、送信する。さらに、主制御部161は、2セット目における2バイト目のコマンドに、主制御部161の差数カウント値の8ビット~14ビット「11 1111 1」までの情報を格納し、送信する。このように、主制御部161は、差数カウント値が14ビットまでで表すことが可能な値である場合、2セットのコマンド群(4バイト)を演出制御部151へと送信する。主制御部161は、差数カウント値が15ビットまたは16ビットを用いなければ表すことができない値である場合、3セットのコマンド群(6バイト)を演出制御部151へと送信する。
このように、主制御部161は、差数カウント値を複数のコマンドを用いて、演出制御部151に送信する。図95(B)に示されるように、複数のコマンドにおいて差数カウント値を格納するための領域は、均等に分割される。言い換えれば、差数カウント値は、1バイト目の1ビット~7ビットの領域と、2バイト目の1ビット~7ビットの領域とに分割されている。これにより、先頭ビットを情報の種別に使用しても、1バイトを越えるデータの送受信をすることができる。
[AT1状態におけるモード振り分け]
上述にて説明したように、本実施例におけるスロットマシン2では、有利区間において、AT1状態を含む複数の状態に制御され得る。主制御部161は、AT1状態に制御されるとき、AT1状態のモードを抽選する。AT1状態は、第1モード、第2モード、第3モードの3つのモードを含む。いずれのモードに制御されるかに応じて、AT1状態において実行される最低ゲーム数(保証ゲーム数)が異なり、また、上乗せ有利度も異なる。
図96は、AT1状態のモードを振り分けるための抽選テーブルを示す図である。主制御部161は、AT1状態に制御されたとき、図96に示される抽選テーブルに基づいて、AT1状態のモードを決定する。図96に示されるように、いずれのモードに振り分けられるかは、付与数から使用数を差し引いた数に基づいて定められる。すなわち、主制御部161は、差数カウント値に基づいて、AT1状態のモードを抽選する。
図83~図86、図87~図91にて説明したように、差数カウント値のデータを保持するパターンは、複数のパターンが考えら得るが、いずれのパターンにおいても、差数カウント値は、有利区間における合計付与数から合計使用数を減算した後の値を示している。主制御部161は、差数カウント値が示す合計付与数と合計使用数との差に応じたモード抽選を行う。
図96に示されるように、合計付与数と合計使用数との差が+2000枚以上である場合、第1モードに決定される確率は、90%であり、第2モードに決定される確率は、10%であり、第3モードに決定される確率は、0%である。また、合計付与数と合計使用数との差が+2000枚未満であって、-2000枚を上回る場合、第1モードに決定される確率は、5%であり、第2モードに決定される確率は、90%であり、第3モードに決定される確率は、5%である。最後に、合計付与数と合計使用数との差が-2000枚以下である場合、第1モードに決定される確率は、33%であり、第2モードに決定される確率は、34%であり、第3モードに決定される確率は、33%である。
図97は、AT1状態のモード別の設定を示す図である。主制御部161は、第1モードに制御されたとき、上乗せ有利度を第2モード及び第3モードよりも低く設定する。上乗せ役とは、例えば、スイカ及びチェリーである。
上乗せ有利度は、上乗せ役当選のときにおいて、上乗せされるゲーム数、または上乗せ処理を実行するかの確率によって定められる。より具体的には、スロットマシン2は、第1モード、第2モード、及び第3モードのうち、いずれのモードに制御されるかに応じて、上乗せ役(例えば、スイカ及びチェリー)が当選した際に、上乗せされるゲーム数が異なるように構成される。例えば、第1モードにおいてスイカが当選したとき平均で5ゲームが上乗せされ、第2モードにおいてスイカが当選したとき平均で10ゲームが上乗せされ、第3モードにおいてスイカが当選したとき平均で20ゲームが上乗せされる。これにより、いずれのモードに制御されるか否かによって、制御されるモードによって上乗せ有利度を異ならせることができる。
また、スロットマシン2は、第1モード、第2モード、及び第3モードのうち、いずれのモードに制御されるかに応じて、上乗せ役が当選した際に、上乗せ処理を実行するか否かの確率が異なるように構成されても良い。例えば、第1モードにおいてスイカが当選したとき、10%の確率で10ゲームが上乗せされ、第2モードにおいてスイカが当選したとき、33%の確率で10ゲームが上乗せされ、第3モードにおいてスイカが当選したとき、85%の確率で10ゲームされる。これにより、いずれのモードに制御されるか否かによって、モードごとに上乗せ有利度を異ならせることができる。尚、スロットマシン2は、上乗せゲーム数と上乗せ処理の実行確率との両方を異ならせることによって、モードごとの上乗せ有利度を異ならせても良い。
主制御部161は、AT1状態において、第1モードに制御されたとき、少なくとも30ゲーム以上のゲームをAT1状態に制御された状態のまま実行する。また、主制御部161は、AT1状態において、第2モードに制御されたとき、少なくとも50ゲーム以上のゲームをAT1状態に制御された状態のまま実行する。また、主制御部161は、第2モードに制御されたとき、上乗せ有利度を、第1モードよりも高く、第3モードよりも低く設定する。主制御部161は、AT1状態において、第3モードに制御されたとき、少なくとも300ゲーム以上のゲームをAT1状態に制御された状態のまま実行する。また、主制御部161は、第3モードに制御されたとき、上乗せ有利度を、第1モード及び第2モードよりも高く設定する。
第3モードに制御された場合、もっともAT1状態が継続されやすく、第1モードに制御された場合、もっともAT1状態が継続されにくい。また、主制御部161は、リミッタ制御が実行されるまでの合計付与数と合計使用数との差が+2000よりも大きい場合、すなわち、リミッタ制御までの遊技者の許容獲得数が400枚より少ない場合、第1モードに制御されやすい。さらに、リミッタ制御が実行されるまでの合計付与数と合計使用数との差が-2000よりも小さい場合、すなわち、リミッタ制御までの遊技者の許容獲得数が4400枚より多い場合、主制御部161は第3モードへと制御しやすい。本実施例におけるスロットマシン2では、リミッタ制御までに遊技者が獲得可能な許容枚数が小さいとき、AT1状態が継続されやすいモードに抽選されやすく、リミッタ制御までに遊技者が獲得可能な許容枚数が大きいとき、AT1状態が継続され難いモードに抽選されやすい。
換言すれば、主制御部161は、AT1状態に制御されている場合において、差数カウント値が示す合計付与数と合計使用数との差が+2000よりも大きい場合は、差数カウント値が示す合計付与数と合計使用数との差が+2000以下である場合よりもAT1状態を継続させる割合が高い。これにより、遊技者が有利区間において付与され得るメダル数の最大数が大きいときにAT1状態を継続させ易くなる。尚、主制御部161は、AT1状態に制御されている場合において、差数カウント値が示す合計付与数と合計使用数との差が+2000以上である場合は、差数カウント値が示す合計付与数と合計使用数との差が+2000より小さい場合よりもAT1状態を継続させる割合が高くなるように制御しても良い。
図79のSu5にて説明したように、主制御部161は、AT1状態を終了するときに、差数カウント値にいずれの値が格納されているかに関わらず、内部抽選の結果に基づいて有利区間を終了し、通常区間に制御することができる。このとき、主制御部161は、内部抽選において予め定められた特定役が当選したと判断し、かつ、合計付与数と合計使用数との差が例えば+2000枚よりも大きい場合、有利区間への制御を第1割合で終了する。また、主制御部161は、内部抽選において予め定められた特定役が当選したと判断し、かつ、+2000よりも小さい場合、有利区間への制御を第2割合で終了する。第1割合は、第2割合よりも高い割合である。ようするに、主制御部161は、リミッタ制御までに遊技者が獲得可能な許容枚数が小さいとき、有利区間を終了させて、差数カウント値を初期化することによって、遊技者が獲得可能な許容枚数を増加させることができる。これにより、AT1状態が終了するときに差数カウント値が合計付与数と合計使用数との差が+2000枚よりも大きい値を示す場合、差数カウント値が合計付与数と合計使用数との差が+2000枚よりも小さい値を示す場合よりも、有利区間を終了する割合を高くすることによって、合計付与数と合計使用数との差が小さいときにAT1状態を継続し易くなり、遊技の興趣を向上させることができる。
尚、主制御部161は、差数カウント値が合計付与数と合計使用数との差が例えば、-10000枚を下回る場合、有利区間を終了させやすくしても良い。合計付与数と合計使用数との差が-10000枚を下回る場合、遊技者が獲得可能な許容数が増大している場合であって、著しく射幸心をそそることがあるため、差数カウント値をリセットすることで射幸心の助長を防ぐことができる。
上述の例は、AT1状態が終了したときに、差数カウント値に関わらず有利区間を終了させる割合を決定するための差数カウント値として、合計付与数と合計使用数との差が+2000枚よりも大きい場合または、-10000枚を下回る場合に、有利区間を終了させる割合を高くする例について説明した。すなわち、+2000枚及び10000枚は、AT1状態が終了したときに有利区間を終了するかを判定するための閾値として用いられている。この閾値は、特定数と同じ値であっても良い。すなわち、差数カウント値が合計付与数と合計使用数との差が+2400を上回ることを示す場合、100%の割合で有利区間を終了させ、差数カウント値が合計付与数と合計使用数との差が+2400以下であることを示す場合、0%の割合で有利区間を終了させても良い。
図97に示されるように、主制御部161は、有利区間における上乗せ役の当選に関して、第1モードでは第2モード及び第3モードよりも低い有利度で抽選され、第3モードでは第1モード及び第2モードよりも高い有利度で抽選される。主制御部161は、差数カウント値に応じて、第1モード~第3モードのいずれのモードでAT1状態に制御するかを判定する。これにより、差数カウント値に応じてAT1状態の上乗せ役の抽選処理を実行することができる。
また、主制御部161は、AT1状態に制御するときにモードごとに保証ゲーム数を設定する。保証ゲーム数は、AT1状態に制御されてからAT1状態を保ったまま少なくとも実行される単位遊技の数である。また、主制御部161は、差数カウント値に応じて、第1モード~第3モードのいずれのモードでAT1状態に制御するかを判定する。これにより、差数カウント値に応じた期待感を遊技者に抱かせることができる。
上述の図96及び図97の例では、保証ゲーム数に関して、モードごとに予め定められている例について説明した。しかしながら、AT1状態の保証ゲーム数ではなく、AT1状態に制御するときに一律で第3モードに制御し、第3モードから第1モードへの移行する移行ゲーム数を差数カウント値に応じて設定することにより、差数カウント値に応じた期待感を遊技者に抱かせる構成であっても良い。以下では、移行ゲーム数を用いて、AT1状態のゲーム数の制御を例について説明する。移行ゲーム数を用いる構成では、第2モードは使用されず、第1モードと第3モードだけが用いられる。
移行ゲーム数を用いる構成において、主制御部161は、AT1状態に制御するとき、一律で第3モードに制御する。さらに、主制御部161は、AT1状態に制御するとき、差数カウント値に応じて第3モードから第1モードへの移行ゲーム数を決定する。
例えば、差数カウント値が示す合計付与数と合計使用数との差が+2000以上である場合は、第3モードに制御されてから30ゲームが実行されたとき、主制御部161は、スロットマシン2の状態を第3モードから第1モードに移行させる。すなわち、移行ゲーム数は、30ゲームである。また、差数カウント値が示す合計付与数と合計使用数との差が+2000より小さく、かつ、-2000より大きい場合は、第3モードに制御されてから50ゲームを実行されたとき、主制御部161は、スロットマシン2の状態を第3モードから第1モードに移行させる。すなわち、移行ゲーム数は、50ゲームである。さらに、差数カウント値が示す合計付与数と合計使用数との差が-2000以下である場合は、第3モードに制御されてから300ゲームを実行したとき、主制御部161は、スロットマシン2の状態を第3モードから第1モードに移行させる。すなわち、移行ゲーム数は、300ゲームである。
移行ゲーム数を用いる構成において、第1モード及び第3モードはAT1状態の継続率が異なるように上乗せ有利度が定められる。AT1状態の継続率とは、特定のゲーム数あたりのAT1状態を保持して制御される確率である。例えば、第3モードでは、AT1状態が継続する確率が1ゲームあたり、例えば98%になるように、第3モードの上乗せ有利度が設定される。また、第1モードでは、AT1状態が継続する確率が1ゲームあたり、例えば10%になるように、第1モードの上乗せ有利度が設定される。
これにより、差数カウント値の値に応じて、AT1状態の継続率が高い第3モードに滞在する期間を異ならせることができ、その結果、差数カウント値に応じた期待感を遊技者に抱かせることができる。また、最も上乗せ有利度が高い第3モードでAT1状態を開始することができるため、遊技の興趣が向上させることができる。
[特殊フラグについて]
本実施例の主制御部161は、RAM161cに格納される1バイトのデータを構成する各ビット毎に事象毎のフラグを割り当て、いずれかの条件が発生した場合に、成立した条件に対応するビットを「0」から「1」に変更する。そして主制御部161は、フラグが割り当てられたビットが1か否かを判定し、1が設定されていると判定した場合に、対応する条件が成立したと判定する。この際、特定のビットの値が1であるかを判定するため、フラグが格納されるデータと判定用データとの演算が必要となる。
また、主制御部161は、上記のようなフラグとは別に、特定の条件が成立した場合に、1バイトの特殊なフラグを設定することが可能である。
特殊なフラグは、1バイトのデータからなり、特殊なフラグが格納される領域は、特定の条件が成立していない場合には00Hであり、特定の条件が成立すると当該条件に対応する複数のビットが1となるデータが設定される。
例えば、図98に示すように、主制御部161は、第1条件が成立した場合に、RAM161cの第1領域に1バイトの特殊フラグ1を設定する。特殊フラグ1は、下位1ビット目及び下位5ビット目が1であり、他のビットが0となるデータである。
また、主制御部161は、第1条件とは異なる第2条件が成立した場合に、RAM161cの第2領域に1バイトの特殊フラグ2を設定する。特殊フラグ2は、下位2ビット目及び下位5ビット目が1であり、他のビットが0となるデータである。
そして、主制御部161は、RAM161cの特殊フラグ1が格納される第1領域のデータを読み出し、読み出したデータが0か否かを判定し、0でないと判定した場合に第1条件が成立していると判定する。また、主制御部161は、RAM161cの特殊フラグ2が格納される第2領域のデータを読み出し、読み出したデータが0か否かを判定し、0でないと判定した場合に第2条件が成立していると判定する。
このように本実施例では、特定の条件が成立した場合に、1バイトのデータからなる特殊フラグを設定可能であり、RAM161cの特殊フラグが格納される領域のデータを読み出し、読み出したデータが0か否かを判定した場合に、0でないと判定した場合に特定の条件が成立していることを判定するようになっており、通常のフラグのように特定のビットの値を判定するために判定用データと比較する必要がないため、特定の条件の判定が簡素となり、プログラム容量を削減できるうえに、判定用データも不要となるため、データ容量も削減できる。
また、本実施例では、特定の条件が成立した場合に、複数のビットが1となる1バイトの特殊フラグが設定されるため、デバッグの際などフラグの設定状況を確認し易くなり、データの管理が容易となる。
また、本実施例では、特定の条件として第1条件及び第2条件を含み、第1条件が成立した場合と、第2条件が成立した場合と、で複数のビットのうち1となるビットが異なるビットを含むため、第1特殊フラグと第2特殊フラグの違いを区別し易くなる。
尚、本実施例では、第1特殊フラグと第2特殊フラグとで、全く異なるビットが1となる構成であるが、一部が重複している場合でも他が異なる構成であれば第1特殊フラグと第2特殊フラグの違いを区別し易くなる。
また、上記では、主制御部161が用いる特殊フラグについて説明したが、メダル数制御部171や演出制御部151が特殊フラグを用いる構成としても良い。