実施の形態1.
以下、本発明の一実施形態を図面を参照して説明する。まず、遊技機の一例であるパチンコ遊技機の全体の構成について説明する。図1はパチンコ遊技機を正面からみた正面図、図2は遊技盤の前面を示す正面図である。
パチンコ遊技機1は、縦長の方形状に形成された外枠(図示せず)と、外枠の内側に開閉可能に取り付けられた遊技枠とで構成される。また、パチンコ遊技機1は、遊技枠に開閉可能に設けられている額縁状に形成されたガラス扉枠2を有する。遊技枠は、外枠に対して開閉自在に設置される前面枠(図示せず)と、機構部品等が取り付けられる機構板と、それらに取り付けられる種々の部品(後述する遊技盤を除く。)とを含む構造体である。
図1に示すように、パチンコ遊技機1は、額縁状に形成されたガラス扉枠2を有する。ガラス扉枠2の下部表面には打球供給皿(上皿)3がある。打球供給皿3の下部には、打球供給皿3に収容しきれない遊技球を貯留する余剰球受皿4と打球を発射する打球操作ハンドル(操作ノブ)5が設けられている。ガラス扉枠2の背面には、遊技盤6が着脱可能に取り付けられている。なお、遊技盤6は、それを構成する板状体と、その板状体に取り付けられた種々の部品とを含む構造体である。また、遊技盤6の前面には遊技領域7が形成されている。
遊技領域7の中央付近には、それぞれが識別情報としての図柄を可変表示する複数の可変表示部を含む可変表示装置(特別可変表示装置)9が設けられている。可変表示装置9には、例えば「左」、「中」、「右」の3つの可変表示部(図柄表示エリア)がある。可変表示装置9の下方には、始動入賞口14が設けられている。始動入賞口14に入った入賞球は、遊技盤6の背面に導かれ、始動口スイッチ14aによって検出される。また、始動入賞口14の下部には開閉動作を行う可変入賞球装置15が設けられている。可変入賞球装置15は、ソレノイド16によって開状態とされる。
可変入賞球装置15の下部には、特定遊技状態(大当り状態)においてソレノイド21によって開状態とされる開閉板20が設けられている。開閉板20は大入賞口を開閉する手段である。開閉板20から遊技盤6の背面に導かれた入賞球のうち一方(V入賞領域)に入った入賞球はV入賞スイッチ22で検出され、開閉板20からの入賞球はカウントスイッチ23で検出される。遊技盤6の背面には、大入賞口内の経路を切り換えるためのソレノイド21Aも設けられている。また、可変表示装置9の上部には、始動入賞口14に入った有効入賞球数すなわち始動記憶数を表示する4つのLEDによる特別図柄始動記憶表示器(以下、始動記憶表示器という。)18が設けられている。有効始動入賞がある毎に、始動記憶表示器18は点灯するLEDを1増やす。そして、可変表示装置9の可変表示が開始される毎に、点灯するLEDを1減らす。
ゲート32に遊技球が入賞しゲートスイッチ32aで検出されると、普通図柄始動記憶が上限に達していなければ、所定の乱数値が抽出される。そして、普通図柄表示器10において表示状態が変化する可変表示を開始できる状態であれば、普通図柄表示器10の表示の可変表示が開始される。普通図柄表示器10において表示状態が変化する可変表示を開始できる状態でなければ、普通図柄始動記憶の値が1増やされる。普通図柄表示器10の近傍には、普通図柄始動記憶数を表示する4つのLEDによる表示部を有する普通図柄始動記憶表示器41が設けられている。ゲート32への入賞がある毎に、普通図柄始動記憶表示器41は点灯するLEDを1増やす。そして、普通図柄表示器10の可変表示が開始される毎に、点灯するLEDを1減らす。
この実施の形態では、左右のランプ(点灯時に図柄が視認可能になる)が交互に点灯することによって可変表示が行われ、可変表示は所定時間(例えば29秒)継続する。そして、可変表示の終了時に左側のランプが点灯すれば当りとなる。当りとするか否かは、ゲート32に遊技球が入賞したときに抽出された乱数の値が所定の当り判定値と一致したか否かによって決定される。普通図柄表示器10における可変表示の表示結果が当りである場合に、可変入賞球装置15が所定回数、所定時間だけ開状態になって遊技球が入賞しやすい状態になる。すなわち、可変入賞球装置15の状態は、普通図柄の停止図柄が当り図柄である場合に、遊技者にとって不利な状態から有利な状態に変化する。
さらに、確変状態では、普通図柄表示器10における停止図柄が当り図柄になる確率が高められるとともに、可変入賞球装置15の開放時間と開放回数とのうちの一方または双方が高められ、遊技者にとってさらに有利になる。また、確変状態等の所定の状態では、普通図柄表示器10における可変表示期間(変動時間)が短縮されることによって、遊技者にとってさらに有利になるようにしてもよい。
遊技盤6には、複数の入賞口29,30,33,39が設けられ、遊技球の入賞口29,30,33への入賞は、それぞれ入賞口スイッチ29a,30a,33a,39aによって検出される。遊技領域7の左右周辺には、遊技中に点滅表示される装飾ランプ25が設けられ、下部には、入賞しなかった打球を吸収するアウト口26がある。また、遊技領域7の外側の左右上部には、効果音を発する2つのスピーカ27が設けられている。遊技領域7の外周には、天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cが設けられている。さらに、遊技領域7における各構造物(大入賞口等)の周囲には装飾LEDが設置されている。天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cおよび装飾用LEDは、遊技機に設けられている装飾発光体の一例である。
そして、この例では、左枠ランプ28bの近傍に、賞球残数があるときに点灯する賞球ランプ51が設けられ、天枠ランプ28aの近傍に、補給球が切れたときに点灯する球切れランプ52が設けられている。さらに、図1には、パチンコ遊技機1に隣接して設置され、プリペイドカードが挿入されることによって球貸しを可能にするカードユニット50も示されている。なお、プリペイドカードとしての磁気カードに限らず、ICカード等の他の記録媒体を用いることもできる。記録媒体の形状についても、名刺大の薄型のカード形状に限らず、ICコインなど種々の形状のものを使用することができる。
カードユニット50には、使用可能状態であるか否かを示す使用可表示ランプ151、カード内に記録された残額情報に端数(100円未満の数)が存在する場合にその端数を打球供給皿3の近傍に設けられる度数表示LEDに表示させるための端数表示スイッチ152、カードユニット50がいずれの側のパチンコ遊技機1に対応しているのかを示す連結台方向表示器153、カードユニット50内にカードが投入されていることを示すカード投入表示ランプ154、記録媒体としてのカードが挿入されるカード挿入口155、およびカード挿入口155の裏面に設けられているカードリーダライタの機構を点検する場合にカードユニット50を解放するためのカードユニット錠156が設けられている。
打球発射装置から発射された遊技球は、打球レールを通って遊技領域7に入り、その後、遊技領域7を下りてくる。打球が始動入賞口14に入り始動口スイッチ14aで検出されると、図柄の可変表示を開始できる状態であれば、可変表示装置9において特別図柄が可変表示(変動)を始める。図柄の可変表示を開始できる状態でなければ、始動記憶数を1増やす。
可変表示装置9における特別図柄の可変表示は、一定時間が経過したときに停止する。停止時の特別図柄の組み合わせが大当り図柄(特定表示態様)であると、大当り遊技状態に移行する。すなわち、開閉板20が、一定時間経過するまで、または、所定個数(例えば10個)の打球が入賞するまで開放する。そして、開閉板20の開放中に打球がV入賞領域に入賞しV入賞スイッチ22で検出されると、継続権が発生し開閉板20の開放が再度行われる。継続権の発生は、所定回数(例えば15ラウンド)許容される。
停止時の可変表示装置9における特別図柄の組み合わせが確率変動を伴う大当り図柄(確変図柄)の組み合わせである場合には、次に大当りとなる確率が高くなる。すなわち、確変状態という遊技者にとってさらに有利な状態となる。
次に、パチンコ遊技機1の裏面の構造について図3および図4を参照して説明する。図3は、遊技機を裏面から見た背面図である。図4は、各種部材が取り付けられた機構板を遊技機背面側から見た背面図である。
図3に示すように、遊技機裏面側では、可変表示装置9を制御する図柄制御基板80を含む可変表示制御ユニット49、遊技制御用マイクロコンピュータ等が搭載された遊技制御基板(主基板)31が設置されている。また、球払出制御を行う払出制御用マイクロコンピュータ等が搭載された払出制御基板37が設置されている。さらに、遊技盤6に設けられている各種装飾LED、特別図柄始動記憶表示器(始動記憶表示器)18および普通図柄始動記憶表示器41、装飾ランプ25、枠側に設けられている天枠ランプ28a、左枠ランプ28b、右枠ランプ28c、賞球ランプ51および球切れランプ52を点灯制御するランプ制御手段が搭載されたランプ制御基板35、スピーカ27からの音発生を制御する音制御手段が搭載された音制御基板70も設けられている。また、DC30V、DC21V、DC12VおよびDC5Vを作成する電源回路が搭載された電力供給基板としての電源基板910や発射制御基板91が設けられている。
遊技機裏面において、上方には、各種情報を遊技機外部に出力するための各端子を備えたターミナル基板160が設置されている。ターミナル基板160には、少なくとも、球切れ検出スイッチの出力を導入して外部出力するための球切れ用端子、賞球個数信号を外部出力するための賞球用端子および球貸し個数信号を外部出力するための球貸し用端子が設けられている。また、中央付近には、主基板31からの各種情報を遊技機外部に出力するための各端子を備えた情報端子盤34が設置されている。
さらに、各基板(主基板31や払出制御基板37等)に含まれる変動データ記憶手段(例えば、RAM)内のデータのうち、バックアップ電源等の記憶保持手段によって保持されているバックアップデータをクリアするための初期化操作手段としてのクリアスイッチ921が搭載されたスイッチ基板190が設けられている。スイッチ基板190には、クリアスイッチ921と、主基板31等の他の基板と接続されるコネクタ922が設けられている。
貯留タンク38に貯留された遊技球は誘導レール39を通り、図4に示されるように、カーブ樋186を経て賞球ケース40Aで覆われた球払出装置に至る。球払出装置の上部には、遊技媒体切れ検出手段としての球切れスイッチ187が設けられている。球切れスイッチ187が球切れを検出すると、球払出装置の払出動作が停止する。球切れスイッチ187は遊技球通路内の遊技球の有無を検出するスイッチであるが、貯留タンク38内の補給球の不足を検出する球切れ検出スイッチ167も誘導レール39における上流部分(貯留タンク38に近接する部分)に設けられている。球切れ検出スイッチ167が遊技球の不足を検知すると、遊技機設置島に設けられている補給機構から遊技機に対して遊技球の補給が行われる。
なお、球切れスイッチ187は、球払出装置に至る払出球通路に27〜28個程度の遊技球が存在することを検出できるような位置に係止されている。すなわち、球切れスイッチ187は、賞球の一単位の最大払出量(この実施の形態では15個)および球貸しの一単位の最大払出量(この実施の形態では100円:25個)以上が確保されていることが確認できるような位置に設置されている。
球払出装置から払い出された遊技球は、連絡口45を通ってパチンコ遊技機1の前面に設けられている打球供給皿3に誘導される。連絡口45の側方には、パチンコ遊技機1の前面に設けられている余剰球受皿4に連通する余剰球通路46が形成されている。
入賞にもとづく景品としての遊技球や球貸し要求にもとづく遊技球が多数払い出されて打球供給皿3が満杯になり、ついには遊技球が連絡口45に到達した後さらに遊技球が払い出されると、遊技球は、余剰球通路46を経て余剰球受皿4に導かれる。さらに遊技球が払い出されると、感知レバー47が貯留状態検出手段としての満タンスイッチ48を押圧して、貯留状態検出手段としての満タンスイッチ48がオンする。その状態では、球払出装置内の払出モータの回転が停止して球払出装置の動作が停止するとともに発射装置の駆動も停止する。
図4に示すように、球払出装置の側方には、カーブ樋186から遊技機下部の排出口192に至る球抜き通路191が形成されている。球抜き通路191の上部には球抜きレバー193が設けられ、球抜きレバー193が遊技店員等によって操作されると、誘導レール39から球抜き通路191への遊技球通路が形成され、貯留タンク38内に貯留されている遊技球は、排出口192から遊技機外に排出される。
図5は、球払出装置97の構成例を示す分解斜視図である。この例では、賞球ケース40Aとしての3つのケース140,141,142の内部に球払出装置97が形成されている。ケース140,141の上部には、球切れスイッチ187の下部の球通路と連通する穴170,171が設けられ、遊技球は、穴170,171から球払出装置97に流入する。
球払出装置97は駆動源となる払出モータ(例えばステッピングモータ)289を含む。払出モータ289の回転力は、払出モータ289の回転軸に嵌合しているギア290に伝えられ、さらに、ギア290と噛み合うギア291に伝えられる。ギア291の中心軸には、凹部を有するスプロケット292が嵌合している。穴170,171から流入した遊技球は、スプロケット292の凹部によって、スプロケット292の下方の球通路293に1個ずつ落下させられる。
球通路293には遊技球の流下路を切り替えるための振分部材311が設けられている。振分部材311はソレノイド310によって駆動され、賞球払出時には、球通路293における一方の流下路を遊技球が流下するように倒れ、球貸し時には球通路293における他方の流下路を遊技球が流下するように倒れる。なお、払出モータ289およびソレノイド310は、払出制御基板37に搭載されている払出制御用CPUによって制御される。また、払出制御用CPUは、主基板31に搭載されている遊技制御用のCPUからの指令に応じて払出モータ289およびソレノイド310を制御する。
賞球払出時に選択される流下路の下方には球払出装置によって払い出された遊技球を検出する払出検出手段としての賞球センサ(賞球カウントスイッチ)301Aが設けられ、球貸し時に選択される流下路の下方には球払出装置によって払い出された遊技球を検出する球貸しセンサ(球貸しカウントスイッチ)301Bが設けられている。賞球カウントスイッチ301Aの検出信号と球貸しカウントスイッチ301Bの検出信号は払出制御基板37の払出制御用CPUに入力される。払出制御用CPUは、それらの検出信号にもとづいて、実際に払い出された遊技球の個数を計数する。
なお、ギア291の周辺部には、払出モータ位置センサ296を形成する複数の突起部295が形成されている。突起部295は、ギア291の回転すなわち払出モータ289の回転に伴って発光体(図示せず)からの光を、払出モータ位置センサの受光部(図示せず)に対して透過させたり遮蔽したりする。払出制御用CPUは、受光部からの検出信号によって払出モータ289の位置を認識することができる。
また、この実施の形態では、払出手段としての球払出装置97は球貸しも賞球払出も実行可能な構成であるが、球貸しを行う機構と賞球払出を行う機構とが独立していても本発明を適用することができる。球貸しを行う機構と賞球払出を行う機構とが独立している場合には、賞球払出と球貸しとを同時実行可能なので、遊技球の相対的な払出速度を速くすることができる。また、遊技球の流下路を切り替えるための振分部材311およびソレノイド310は不要である。さらに、払出手段として、例えば、モータが正転すると賞球払出が行われモータが逆転すると球貸しが行われるような構造のものなど、他の構造のものを用いることもできる。
図6は、遊技盤6に設置されているスイッチ基板190の部分を示す正面図である。図6に示すように、スイッチ基板190には、主基板31等の他の基板に、ケーブルを介してクリアスイッチ921の出力を接続するためのコネクタ922が搭載されている。
図7は、スイッチ基板190に搭載されたクリアスイッチ921の構成の一例を示す構成図である。図7(A)には、押しボタン構造のクリアスイッチ921が示されている。クリアスイッチ921が押下されるとローレベル(オン状態)のクリアスイッチ信号(操作信号)が出力され、コネクタ922を介して主基板31および払出制御基板37等に出力される。すなわち、クリアスイッチ921から主基板31および払出制御基板37等に出力される操作信号がオン状態になる。また、クリアスイッチ921が押下されていなければハイレベル(オフ状態)の信号が出力される。なお、この実施の形態では、クリアスイッチ信号は少なくとも主基板31および払出制御基板37に出力されるので、コネクタ922として、主基板31へのクリアスイッチ信号を出力するためのコネクタと、払出制御基板37へのクリアスイッチ信号を出力するためのコネクタとを別個に設けてもよい。
図7(B)は、クリアスイッチ921の他の構成例を示す構成図である。図7(B)に示すクリアスイッチ921は、「OFF」、「ON」および「クリア」の選択切り換えを行うための切換操作部921aを有する。切換操作部921aによって、「OFF」が選択されているときは何らの信号も発生しない。「ON」が選択されているときはハイレベルの信号を出力する。なお、クリアスイッチ921が、遊技機1に対する電源供給のオン/オフ切換のためのスイッチも兼ねていてもよい。その場合、「OFF」が選択されると、遊技機1に対する電源供給が停止された状態(遊技機の電源がオフの状態)になる。「ON」または「クリア」が選択されると、遊技機1に対して電源供給が行われる状態(遊技機の電源がオンの状態)になる。また、「クリア」が選択されているときに、ローレベルのクリアスイッチ信号が出力される。
なお、この実施の形態では、クリアスイッチ921が搭載されたスイッチ基板190が他の基板(遊技制御基板等)とは別個に設けられているが、他の基板にクリアスイッチ921を搭載してもよい。例えば、電源基板910に搭載してもよい。クリアスイッチ921が電源基板910に搭載されている場合には、遊技盤6の入れ替え等の場合に入れ替え後の遊技盤6に対して電源基板910をそのまま使用しても、入れ替え後の遊技盤6において、そのままで遊技状態復旧処理等を実行することができる。すなわち、電源基板910の使い回しを行うことができる。
また、クリアスイッチ921は、遊技盤6の側に設置されていてもよいが、遊技枠側に設置されていてもよい。
図8は、主基板31における回路構成の一例を示すブロック図である。なお、図8には、払出制御基板37、ランプ制御基板35、音制御基板70、発射制御基板91および図柄制御基板80も示されている。主基板31には、プログラムに従ってパチンコ遊技機1を制御する基本回路53と、ゲートスイッチ32a、始動口スイッチ14a、V入賞スイッチ22、カウントスイッチ23、入賞口スイッチ29a,30a,33a,39a、満タンスイッチ48、球切れスイッチ187、賞球カウントスイッチ301Aおよびクリアスイッチ921からの信号を基本回路53に与えるスイッチ回路58と、可変入賞球装置15を開閉するソレノイド16、開閉板20を開閉するソレノイド21および大入賞口内の経路を切り換えるためのソレノイド21Aを基本回路53からの指令に従って駆動するソレノイド回路59とが搭載されている。
なお、図8には示されていないが、カウントスイッチ短絡信号もスイッチ回路58を介して基本回路53に伝達される。また、ゲートスイッチ32a、始動口スイッチ14a、V入賞スイッチ22、カウントスイッチ23、入賞口スイッチ29a,30a,33a,39a、満タンスイッチ48、球切れスイッチ187、賞球カウントスイッチ301A等のスイッチは、センサと称されているものでもよい。すなわち、遊技球を検出できる遊技媒体検出手段(この例では遊技球検出手段)であれば、その名称を問わない。スイッチと称されているものがセンサと称されているもの等でもよいこと、すなわち、スイッチが遊技媒体検出手段の一例であることは、他の実施の形態でも同様である。
また、基本回路53から与えられるデータに従って、大当りの発生を示す大当り情報、可変表示装置9における図柄の可変表示開始に利用された始動入賞球の個数を示す有効始動情報、確率変動が生じたことを示す確変情報等の情報出力信号をホールコンピュータ等の外部装置に対して出力する情報出力回路64が搭載されている。
基本回路53は、ゲーム制御用のプログラム等を記憶するROM54、ワークメモリとして使用される記憶手段(変動データを記憶する手段)としてのRAM55、プログラムに従って制御動作を行うCPU56およびI/Oポート部57を含む。この実施の形態では、ROM54,RAM55はCPU56に内蔵されている。すなわち、CPU56は、1チップマイクロコンピュータである。なお、1チップマイクロコンピュータは、少なくともRAM55が内蔵されていればよく、ROM54およびI/Oポート部57は外付けであっても内蔵されていてもよい。
また、RAM(CPU内蔵RAMであってもよい。)55の少なくとも一部が、電源基板910において作成されるバックアップ電源よってバックアップされているバックアップRAMである。すなわち、遊技機に対する電力供給が停止しても、所定期間は、RAM55の少なくとも一部の内容は保存される。ただし、この実施の形態では、RAMの全てがバックアップ電源によってバックアップされている。
遊技球を打撃して発射する打球発射装置は発射制御基板91上の回路によって制御される駆動モータ94で駆動される。そして、駆動モータ94の駆動力は、操作ノブ5の操作量に従って調整される。すなわち、発射制御基板91上の回路によって、操作ノブ5の操作量に応じた速度で打球が発射されるように制御される。
この実施の形態では、ランプ制御基板35に搭載されているランプ制御手段が、遊技盤に設けられている始動記憶表示器18、普通図柄始動記憶表示器41および装飾ランプ25の表示制御を行うとともに、枠側に設けられている天枠ランプ28a、左枠ランプ28b、右枠ランプ28c、賞球ランプ51および球切れランプ52の表示制御を行う。なお、各ランプはLEDその他の種類の発光体でもよく、この実施の形態および他の実施の形態で用いられているLEDも他の種類の発光体でもよい。すなわち、ランプやLEDは発光体の一例である。また、特別図柄を可変表示する可変表示装置9および普通図柄を可変表示する普通図柄表示器10の表示制御は、図柄制御基板80に搭載されている表示制御手段によって行われる。
図9は、図柄制御基板80内の回路構成を、可変表示装置9の一実現例であるLCD(液晶表示装置)82、普通図柄表示器10、主基板31の出力ポート(ポート0,2)570,572および出力バッファ回路620,62Aとともに示すブロック図である。出力ポート(出力ポート2)572からは8ビットのデータが出力され、出力ポート570からは1ビットのストローブ信号(INT信号)が出力される。
表示制御用CPU101は、制御データROM102に格納されたプログラムに従って動作し、主基板31からノイズフィルタ107および入力バッファ回路105Bを介してINT信号が入力されると、入力バッファ回路105Aを介して表示制御コマンドを受信する。入力バッファ回路105A,105Bとして、例えば汎用ICである74HC540,74HC14を使用することができる。なお、表示制御用CPU101がI/Oポートを内蔵していない場合には、入力バッファ回路105A,105Bと表示制御用CPU101との間に、I/Oポートが設けられる。
そして、表示制御用CPU101は、受信した表示制御コマンドに従って、LCD82に表示される画面の表示制御を行う。具体的には、表示制御コマンドに応じた指令をVDP103に与える。VDP103は、キャラクタROM86から必要なデータを読み出す。VDP103は、入力したデータに従ってLCD82に表示するための画像データを生成し、R,G,B信号および同期信号をLCD82に出力する。
なお、図9には、VDP103をリセットするためのリセット回路83、VDP103に動作クロックを与えるための発振回路85、および使用頻度の高い画像データを格納するキャラクタROM86も示されている。キャラクタROM86に格納される使用頻度の高い画像データとは、例えば、LCD82に表示される人物、動物、または、文字、図形もしくは記号等からなる画像などである。
入力バッファ回路105A,105Bは、主基板31から表示制御基板80へ向かう方向にのみ信号を通過させることができる。従って、表示制御基板80側から主基板31側に信号が伝わる余地はない。すなわち、入力バッファ回路105A,105Bは、入力ポートとともに不可逆性情報入力手段を構成する。表示制御基板80内の回路に不正改造が加えられても、不正改造によって出力される信号が主基板31側に伝わることはない。
高周波信号を遮断するノイズフィルタ107として、例えば3端子コンデンサやフェライトビーズが使用されるが、ノイズフィルタ107の存在によって、表示制御コマンドに基板間でノイズが乗ったとしても、その影響は除去される。また、主基板31のバッファ回路620,62Aの出力側にもノイズフィルタを設けてもよい。
図10は、主基板31およびランプ制御基板35における信号送受信部分を示すブロック図である。この実施の形態では、遊技領域7の外側に設けられている天枠ランプ28a、左右枠ランプ28b,28cと遊技盤に設けられている装飾ランプ25、始動記憶表示器18および普通図柄始動記憶表示器41の点灯/消灯と、賞球ランプ51および球切れランプ52の点灯/消灯とを示すランプ制御コマンドが主基板31からランプ制御基板35に出力される。
図10に示すように、ランプ制御に関するランプ制御コマンドは、基本回路53におけるI/Oポート部57の出力ポート(出力ポート0,3)570,573から出力される。出力ポート(出力ポート3)573は8ビットのデータを出力し、出力ポート570は1ビットのINT信号を出力する。ランプ制御基板35において、主基板31からの制御コマンドは、入力バッファ回路355A,355Bを介してランプ制御用CPU351に入力する。なお、ランプ制御用CPU351がI/Oポートを内蔵していない場合には、入力バッファ回路355A,355Bとランプ制御用CPU351との間に、I/Oポートが設けられる。
ランプ制御基板35において、ランプ制御用CPU351は、各制御コマンドに応じて定義されている天枠ランプ28a、左右枠ランプ28b,28c、装飾ランプ25の点灯/消灯パターンに従って、天枠ランプ28a、左右枠ランプ28b,28c、装飾ランプ25に対して点灯/消灯信号を出力する。点灯/消灯信号は、天枠ランプ28a、左右枠ランプ28b,28c、装飾ランプ25に出力される。なお、点灯/消灯パターンは、ランプ制御用CPU351の内蔵ROMまたは外付けROMに記憶されている。
主基板31において、CPU56は、RAM55の記憶内容に未払出の賞球残数があるときに賞球ランプ51の点灯を指示する制御コマンドを出力し、前述した遊技盤裏面の払出球通路の上流に設置されている球切れスイッチ187(図3参照)が遊技球を検出しなくなると球切れランプ52の点灯を指示する制御コマンドを出力する。ランプ制御基板35において、各制御コマンドは、入力バッファ回路355A,355Bを介してランプ制御用CPU351に入力する。ランプ制御用CPU351は、それらの制御コマンドに応じて、賞球ランプ51および球切れランプ52を点灯/消灯する。なお、点灯/消灯パターンは、ランプ制御用CPU351の内蔵ROMまたは外付けROMに記憶されている。
入力バッファ回路355A,355Bとして、例えば、汎用のCMOS−ICである74HC540,74HC14が用いられる。入力バッファ回路355A,355Bは、主基板31からランプ制御基板35へ向かう方向にのみ信号を通過させることができる。従って、ランプ制御基板35側から主基板31側に信号が伝わる余地はない。たとえ、ランプ制御基板35内の回路に不正改造が加えられても、不正改造によって出力される信号がメイン基板31側に伝わることはない。なお、入力バッファ回路355A,355Bの入力側にノイズフィルタを設けてもよい。
また、主基板31において、出力ポート570,573の外側にバッファ回路620,63Aが設けられている。バッファ回路620,63Aとして、例えば、汎用のCMOS−ICである74HC250,74HC14が用いられる。このような構成によれば、外部から主基板31の内部に入力される信号が阻止されるので、ランプ制御基板70から主基板31に信号が与えられる可能性がある信号ラインをさらに確実になくすことができる。なお、バッファ回路620,63Aの出力側にノイズフィルタを設けてもよい。
図11は、主基板31における音制御コマンドの信号送信部分および音制御基板70の構成例を示すブロック図である。この実施の形態では、遊技進行に応じて、遊技領域7の外側に設けられているスピーカ27の音出力を指示するための音制御コマンドが、主基板31から音制御基板70に出力される。
図11に示すように、音制御コマンドは、基本回路53におけるI/Oポート部57の出力ポート(出力ポート0,4)570,574から出力される。出力ポート(出力ポート4)574からは8ビットのデータが出力され、出力ポート570からは1ビットのINT信号が出力される。音制御基板70において、主基板31からの各信号は、入力バッファ回路705A,705Bを介して音制御用CPU701に入力する。なお、音制御用CPU701がI/Oポートを内蔵していない場合には、入力バッファ回路705A,705Bと音制御用CPU701との間に、I/Oポートが設けられる。
そして、例えばディジタルシグナルプロセッサによる音声合成回路702は、音制御用CPU701の指示に応じた音声や効果音を発生し音量切替回路703に出力する。音量切替回路703は、音制御用CPU701の出力レベルを、設定されている音量に応じたレベルにして音量増幅回路704に出力する。音量増幅回路704は、増幅した音信号をスピーカ27に出力する。
入力バッファ回路705A,705Bとして、例えば、汎用のCMOS−ICである74HC540,74HC14が用いられる。入力バッファ回路705A,705Bは、主基板31から音制御基板70へ向かう方向にのみ信号を通過させることができる。よって、音制御基板70側から主基板31側に信号が伝わる余地はない。従って、音制御基板70内の回路に不正改造が加えられても、不正改造によって出力される信号が主基板31側に伝わることはない。なお、入力バッファ回路705A,705Bの入力側にノイズフィルタを設けてもよい。
また、主基板31において、出力ポート570,574の外側にバッファ回路620,67Aが設けられている。バッファ回路620,67Aとして、例えば、汎用のCMOS−ICである74HC250,74HC14が用いられる。このような構成によれば、外部から主基板31の内部に入力される信号が阻止されるので、音制御基板70から主基板31に信号が与えられる可能性がある信号ラインをさらに確実になくすことができる。なお、バッファ回路620,67Aの出力側にノイズフィルタを設けてもよい。
図12は、払出制御基板37および球払出装置97の構成要素などの払出に関連する構成要素を示すブロック図である。図12に示すように、満タンスイッチ48からの検出信号は、中継基板71を介して主基板31のI/Oポート部57に入力される。また、球切れスイッチ187からの検出信号も、中継基板72および中継基板71を介して主基板31のI/Oポート部57に入力される。
主基板31のCPU56は、球切れスイッチ187からの検出信号が球切れ状態を示しているか、または、満タンスイッチ48からの検出信号が満タン状態を示していると、払出を停止すべき状態であることを指示する払出制御コマンドを送出する。払出を停止すべき状態であることを指示する払出制御コマンドを受信すると、払出制御基板37の払出制御用CPU371は球払出処理を停止する。
さらに、賞球カウントスイッチ301Aからの検出信号は、中継基板72および中継基板71を介して主基板31のI/Oポート部57に入力されるとともに、中継基板72を介して払出制御基板37の入力ポート372bに入力される。賞球カウントスイッチ301Aは、球払出装置97の払出機構部分に設けられ、実際に払い出された賞球払出球を検出する。
入賞があると、払出制御基板37には、主基板31の出力ポート(ポート0,1)570,571から賞球個数を示す払出制御コマンドが入力される。出力ポート(出力ポート1)571は8ビットのデータを出力し、出力ポート570は1ビットのINT信号を出力する。賞球個数を示す払出制御コマンドは、入力バッファ回路373Aを介してI/Oポート372aに入力される。INT信号は、入力バッファ回路373Bを介して払出制御用CPU371の割込端子に入力されている。払出制御用CPU371は、I/Oポート372aを介して払出制御コマンドを入力し、払出制御コマンドに応じて球払出装置97を駆動して賞球払出を行う。なお、この実施の形態では、払出制御用CPU371は、1チップマイクロコンピュータであり、少なくともRAMが内蔵されている。
また、主基板31において、出力ポート570,571の外側にバッファ回路620,68Aが設けられている。バッファ回路620,68Aとして、例えば、汎用のCMOS−ICである74HC250,74HC14が用いられる。このような構成によれば、外部から主基板31の内部に入力される信号が阻止されるので、払出制御基板37から主基板31に信号が与えられる可能性がある信号ラインをさらに確実になくすことができる。なお、バッファ回路620,68Aの出力側にノイズフィルタを設けてもよい。
払出制御用CPU371は、出力ポート372cを介して、貸し球数を示す球貸し個数信号をターミナル基板160に出力する。さらに、出力ポート372dを介して、エラー表示用LED374にエラー信号を出力する。
さらに、払出制御基板37の入力ポート372bには、中継基板72を介して、球貸しカウントスイッチ301B、および払出モータ289の回転位置を検出するための払出モータ位置センサ296からの検出信号が入力される。球貸しカウントスイッチ301Bは、球払出装置97の払出機構部分に設けられ、実際に払い出された貸し球を検出する。払出制御基板37からの払出モータ289への駆動信号は、出力ポート372cおよび中継基板72を介して球払出装置97の払出機構部分における払出モータ289に伝えられ、振分ソレノイド310への駆動信号は、出力ポート372eおよび中継基板72を介して球払出装置97の払出機構部分における振分ソレノイド310に伝えられる。また、クリアスイッチ921の出力も、入力ポート372bに入力される。
カードユニット50には、カードユニット制御用マイクロコンピュータが搭載されている。また、カードユニット50には、連結台方向表示器153、カード投入表示ランプ154およびカード挿入口155が設けられている(図1参照)。残高表示基板74には、打球供給皿3の近傍に設けられている度数表示LED、球貸しスイッチおよび返却スイッチが接続される。
残高表示基板74からカードユニット50には、遊技者の操作に応じて、球貸しスイッチ信号および返却スイッチ信号が払出制御基板37を介して与えられる。また、カードユニット50から残高表示基板74には、プリペイドカードの残高を示すカード残高表示信号および球貸し可表示信号が払出制御基板37を介して与えられる。カードユニット50と払出制御基板37の間では、接続信号(VL信号)、ユニット操作信号(BRDY信号)、球貸し要求信号(BRQ信号)、球貸し完了信号(EXS信号)およびパチンコ機動作信号(PRDY信号)が入力ポート372bおよび出力ポート372eを介してやりとりされる。
パチンコ遊技機1の電源が投入されると、払出制御基板37の払出制御用CPU371は、カードユニット50にPRDY信号を出力する。また、カードユニット制御用マイクロコンピュータは、VL信号を出力する。払出制御用CPU371は、VL信号の入力状態により接続状態/未接続状態を判定する。カードユニット50においてカードが受け付けられ、球貸しスイッチが操作され球貸しスイッチ信号が入力されると、カードユニット制御用マイクロコンピュータは、払出制御基板37にBRDY信号を出力する。この時点から所定の遅延時間が経過すると、カードユニット制御用マイクロコンピュータは、払出制御基板37にBRQ信号を出力する。
そして、払出制御基板37の払出制御用CPU371は、カードユニット50に対するEXS信号を立ち上げ、カードユニット50からのBRQ信号の立ち下がりを検出すると、払出モータ289を駆動し、所定個の貸し球を遊技者に払い出す。このとき、振分ソレノイド310は駆動状態とされている。すなわち、球振分部材311を球貸し側に向ける。そして、払出が完了したら、払出制御用CPU371は、カードユニット50に対するEXS信号を立ち下げる。その後、カードユニット50からのBRDY信号がオン状態でなければ、賞球払出制御を実行する。
以上のように、カードユニット50からの信号は全て払出制御基板37に入力される構成になっている。従って、球貸し制御に関して、カードユニット50から主基板31に信号が入力されることはなく、主基板31の基本回路53にカードユニット50の側から不正に信号が入力される余地はない。また、カードユニット50で用いられる電源電圧AC24Vは払出制御基板37から供給される。
この実施の形態では、電源基板910から払出制御基板37に対して電源断信号も入力される。電源断信号は、払出制御用CPU371のマスク不能割込(NMI)端子に入力される。さらに、払出制御基板37に存在するRAM(CPU内蔵RAMであってもよい。)の少なくとも一部は、電源基板910において作成されるバックアップ電源によって、バックアップされている。すなわち、遊技機に対する電力供給が停止しても、所定期間は、RAMの少なくとも一部の内容は保存される。ただし、この実施の形態では、RAMは全てバックアップ電源によってバックアップされている。
なお、この実施の形態では、カードユニット50が遊技機とは別体として遊技機に隣接して設置されている場合を例にするが、カードユニット50は遊技機と一体化されていてもよい。また、コイン投入に応じてその金額に応じた遊技球が貸し出されるような場合でも本発明を適用できる。
図13は、電源基板910の一構成例を示すブロック図である。電源基板910は、主基板31、図柄制御基板80、音制御基板70、ランプ制御基板35および払出制御基板37等の電気部品制御基板と独立して設置され、遊技機内の各電気部品制御基板および機構部品が使用する電圧を生成する。この例では、AC24V、VSL(DC+30V)、DC+21V、DC+12VおよびDC+5Vを生成する。また、バックアップ電源すなわち記憶保持手段となるコンデンサ916は、DC+5Vすなわち各基板上のIC等を駆動する電源のラインから充電される。なお、VSLは、整流回路912において、整流素子でAC24Vを整流昇圧することによって生成される。VSLは、ソレノイド駆動電源となる。
トランス911は、交流電源からの交流電圧を24Vに変換する。AC24V電圧は、コネクタ915に出力される。また、整流回路912は、AC24Vから+30Vの直流電圧を生成し、DC−DCコンバータ913およびコネクタ915に出力する。DC−DCコンバータ913は、1つまたは複数のコンバータIC924(図13では1つのみを示す。)を有し、VSLにもとづいて+21V、+12Vおよび+5Vを生成してコネクタ915に出力する。コンバータIC924の入力側には、比較的大容量のコンデンサ923が接続されている。従って、外部からの遊技機に対する電力供給が停止したときに、+30V、+12V、+5V等の直流電圧は、比較的緩やかに低下する。コネクタ915は例えば中継基板に接続され、中継基板から各電気部品制御基板および機構部品に必要な電圧の電力が供給される。
ただし、電源基板910に各電気部品制御基板に至る各コネクタを設け、電源基板910から、中継基板を介さずにそれぞれの基板に至る各電圧を供給するようにしてもよい。また、図13には1つのコネクタ915が代表して示されているが、コネクタは、各電気部品制御基板対応に設けられている。
DC−DCコンバータ913からの+5Vラインは分岐してバックアップ+5Vラインを形成する。バックアップ+5Vラインとグラウンドレベルとの間には大容量のコンデンサ916が接続されている。コンデンサ916は、遊技機に対する電力供給が停止したときの電気部品制御基板のバックアップRAM(電源バックアップされているRAMすなわち電力供給停止時にも記憶内容保持状態となりうるバックアップ記憶手段)に対して記憶状態を保持できるように電力を供給するバックアップ電源となる。また、+5Vラインとバックアップ+5Vラインとの間に、逆流防止用のダイオード917が挿入される。なお、この実施の形態では、バックアップ用の+5Vは、主基板31および払出制御基板37に供給される。
また、電源基板910には、電源監視回路(電源監視手段)としての電源監視用IC902が搭載されている。電源監視用IC902は、VSL電圧を導入し、VSL電圧を監視することによって遊技機への電力供給停止の発生を検出する。具体的には、VSL電圧が所定値(この例では+22V)以下になったら、電力供給の停止が生ずるとして電源断信号を出力する。なお、監視対象の電源電圧は、各電気部品制御基板に搭載されている回路素子の電源電圧(この例では+5V)よりも高い電圧であることが好ましい。この例では、交流から直流に変換された直後の電圧であるVSLが用いられている。電源監視用IC902からの電源断信号は、主基板31や払出制御基板37等に供給される。
電源監視用IC902が電力供給の停止を検知するための所定値は、通常時の電圧より低いが、各電気部品制御基板上のCPUが暫くの間動作しうる程度の電圧である。また、電源監視用IC902が、CPU等の回路素子を駆動するための電圧(この例では+5V)よりも高く、また、交流から直流に変換された直後の電圧を監視するように構成されているので、CPUが必要とする電圧に対して監視範囲を広げることができる。従って、より精密な監視を行うことができる。さらに、監視電圧としてVSL(+30V)を用いる場合には、遊技機の各種スイッチに供給される電圧が+12Vであることから、電源瞬断時のスイッチオン誤検出の防止も期待できる。すなわち、+30V電源の電圧を監視すると、+30V作成の以降に作られる+12Vが落ち始める以前の段階でそれの低下を検出できる。
+12V電源の電圧が低下するとスイッチ出力がオン状態を呈するようになるが、+12Vより早く低下する+30V電源電圧を監視して電力供給の停止を認識すれば、スイッチ出力がオン状態を呈する前に電力供給回復待ちの状態に入ってスイッチ出力を検出しない状態となることができる。
また、電源監視用IC902は、電気部品制御基板とは別個の電源基板910に搭載されているので、電源監視回路から複数の電気部品制御基板に電源断信号を供給することができる。電源断信号を必要とする電気部品制御基板が幾つあっても電源監視手段は1つ設けられていればよいので、各電気部品制御基板における各電気部品制御手段が後述する復旧制御を行っても、遊技機のコストはさほど上昇しない。
なお、図13に示された構成では、電源監視用IC902の検出信号(電源断信号)は、バッファ回路918,919を介してそれぞれの電気部品制御基板(例えば主基板31と払出制御基板37)に伝達されるが、例えば、1つの検出信号を中継基板に伝達し、中継基板から各電気部品制御基板に同じ信号を分配する構成でもよい。また、電源断信号を必要とする基板数に応じたバッファ回路を設けてもよい。さらに、主基板31と払出制御基板37とに出力される電源断信号について、電源断信号を出力することになる電源監視回路の監視電圧を異ならせてもよい。
図14は、主基板31におけるCPU56周りの一構成例を示すブロック図である。図14に示すように、電源基板910の電源監視回路からの電源断信号がバッファ回路900を介して、CPU56のマスク不能割込端子(XNMI端子)に接続されている。従って、CPU56は、マスク不能割込(NMI)処理によって遊技機への電力供給の停止の発生を確認することができる。また、電源断信号は、判定回路950にも入力されている。バッファ回路900から出力される信号は電源監視回路910からの検出信号と実質的に変わらないので(増幅を受けたのみ)、以下、バッファ回路900から出力される信号を検出信号またはNMI信号と呼ぶことがある。なお、CPU56は、XNMI端子の入力信号がローレベルになると、立ち下がりエッジで割込を受け付ける。
図14には、システムリセット回路65も示されている。リセットIC651は、電源投入時に、外付けのコンデンサの容量で決まる所定時間だけ出力をローレベルとし、所定時間が経過すると出力をハイレベルにする。すなわち、制御手段の動作を初期化するための信号であるリセット信号(システムリセット信号)をハイレベルに立ち上げてCPU56を動作可能状態にする。また、リセットIC651は、電源基板910の電源監視回路が監視する電源電圧と等しい電源電圧であるVSLの電源電圧を監視して電圧値が所定値(電源監視回路が電源断信号を出力する電源電圧値よりも低い値)以下になると出力をローレベルにする。従って、CPU56は、電源監視回路からの電源断信号に応じて所定の電力供給停止時処理を行った後、システムリセットされる。なお、システムリセットとは、CPU56の全ての内蔵デバイスも含めてリセットされるようなリセットの態様である。
図14に示すように、リセットIC651からのリセット信号は、NAND回路947に入力されるとともに、反転回路(NOT回路)944を介してカウンタIC941のクリア端子に入力される。カウンタIC941は、クリア端子への入力がローレベルになると、発振器943からのクロック信号をカウントする。そして、カウンタIC941のQ5出力がNOT回路945,946を介してNAND回路947に入力される。また、カウンタIC941のQ6出力は、フリップフロップ(FF)942のクロック端子に入力される。フリップフロップ942のD入力はハイレベルに固定され、Q出力は論理和回路(OR回路)949に入力される。OR回路949の他方の入力には、NAND回路947の出力がNOT回路948を介して導入される。そして、OR回路949の出力が、リセット信号としてCPU56のリセット端子に接続されている。このような構成によれば、電源投入時に、CPU56のリセット端子に2回のリセット信号(ローレベル信号)が与えられるので、CPU56は、確実に動作を開始する。
そして、例えば、電源基板910の電源監視回路の検出電圧(電源断信号を出力することになる電圧)を+22Vとし、リセット信号をローレベルにするための検出電圧を+9Vとする。そのように構成した場合には、電源監視回路とシステムリセット回路65とが、同一の電源VSLの電圧を監視するので、電圧監視回路が電源断信号を出力するタイミングとシステムリセット回路65がシステムリセット信号を出力するタイミングの差を所望の所定期間に確実に設定することができる。所望の所定期間とは、電源監視回路からの電源断信号に応じて電力供給停止時処理を開始してから電力供給停止時処理が確実に完了するまでの期間である。なお、電源監視回路とシステムリセット回路65とが監視する電源の電圧は異なっていてもよい。
CPU56等の駆動電源である+5V電源から電力が供給されていない間、RAMの少なくとも一部は、電源基板から供給されるバックアップ電源によってバックアップされ、遊技機に対する電力供給が停止しても内容は保存される。そして、+5V電源が復旧すると、システムリセット回路65からリセット信号が発せられるので、CPU56は、通常の動作状態に復帰する。そのとき、必要なデータがバックアップRAMに保存されているので、停電等からの復旧時に停電等の発生時の遊技状態に復旧させることができる。
なお、図14に示す構成では、電源投入時にCPU56のリセット端子に2回のリセット信号(ローレベルがリセットレベル)が与えられるが、リセット信号の立ち上がりタイミングが1回しかなくても確実にリセット解除されるCPUを使用する場合には、符号941〜949で示された回路素子は不要である。その場合、リセットIC651の出力がそのままCPU56のリセット端子に接続される。
また、リセット信号は判定回路950にも入力されている。判定回路950は、NMI信号とリセット信号を入力し、CPU56の入力ポートに対して判定信号を出力する回路である。具体的には、判定回路950は、NMI信号が入力されてから所定期間内にリセット信号がローレベルにならないような場合に判定信号を制御手段に出力する。NMI信号が入力されてから所定期間内にリセット信号がローレベルにならないような場合には、不正にNMI信号が入力されたと判定することができる。
なお、この実施の形態で用いられるCPU56は、I/Oポート(PIO)およびタイマ/カウンタ回路(CTC)も内蔵している。
また、CPU56のクロック入力端子(EXTAL1端子)には、クロック信号を発生する第1発振回路(OSC1)92が接続されている。CPU56は、第1発振回路92からのクロック信号を、必要に応じて分周して内部クロックとして使用する。
この実施の形態で用いられているシステムリセット回路65は、電源電圧のみに関連してシステムリセット信号を出力する(ローレベルにした後ハイレベルにする)が、CPU56から出力ポートを介して定期的に信号を出力するようにして、その信号が所定期間出力されなかったときにもシステムリセット信号を出力する(一旦ローレベルにする)ように構成されていてもよい。すなわち、システムリセット回路65は、ウォッチドッグ回路を含んでいてもよい。また、この実施の形態では、システムリセット回路65は主基板31に搭載されているので、システムリセット信号は主基板31に外部に現れず、システムリセット信号に対して不正行為が行われる可能性が低減する。
図15は、主基板31において、大当りとするか否かを決定するための乱数を生成するカウンタ(この実施の形態では、後述するランダム1生成用カウンタ)の初期値(初期化処理で設定される初期値)をランダムにするための構成例を示すブロック図である。図15に示す例では、第2発振回路(OSC2)930が発生するクロック信号をカウントするカウンタ931と、カウンタ931のカウント値をラッチするラッチ回路932とが設けられている。主基板31には、遊技機への電力供給停止時でも電力を供給可能なコンデンサや電池等による数値保持手段としてのバックアップ電源933が設けられ、第2発振回路930、カウンタ931およびラッチ回路932は、バックアップ電源933の電力によって動作する。なお、カウンタ931およびラッチ回路932は計数手段(第2数値更新手段)を構成する。また、ラッチ回路932は数値出力手段の一例である。
バックアップ電源933は、この実施の形態のように、主基板31に搭載されていることが好ましい。遊技制御手段が搭載されている主基板31は、遊技機裏面において容易に取り外すことができず、また、取り外し履歴がわかるようなカバーで覆われているので、不正行為を受けにくい。よって、主基板31にバックアップ電源933が搭載されていれば、バックアップ電源933を強制的に断させてしまうような不正行為を防止できる可能性が高まる。
ラッチ回路932には、CPU56が出力ポート576を介して出力するラッチ信号が供給され、ラッチ回路932は、ラッチ信号の立ち上がりで、カウンタ931のカウント値をラッチする。なお、ラッチ回路932は、ラッチ信号の立ち下がりでカウンタ931のカウント値をラッチしてもよい。ラッチ回路932がラッチしているデータは、入力ポート582を介してCPU56に入力される。なお、この実施の形態では、カウンタ931は8ビットバイナリカウンタであり、ラッチ回路932から8ビットのデータが入力ポート582に入力される。まあ、カウンタ931のカウント値は0〜FF(H)を循環する。すなわち、カウンタ931はフリーランカウンタである。
遊技機への電力供給が停止しても、第2発振回路930、カウンタ931およびラッチ回路932にはバックアップ電源933から電力が供給されている。従って、カウンタ931は、遊技機への電力供給が停止しても第2発振回路930からのクロック信号をカウントしている。従って、遊技機への電力供給が再開されたときに、カウンタ931のカウント値は不定である。後述するように、遊技機への電力供給が再開され初期化処理が実行されると、ラッチ信号が出力されるのであるが、カウンタ931のカウント値は不定であるから、ラッチ回路932がラッチして入力ポート582に出力するデータも不定である。
なお、遊技機への電力供給が再開された後、初期化処理においてラッチ信号が出力されるで、ラッチ回路932にはバックアップ電源933から電力が供給されなくてもよい。
また、ラッチ回路932のみにバックアップ電源933から電力が供給され、例えば、後述する電力供給停止時処理(遊技機への電力供給が停止するときに実行される処理)においてCPU56がラッチ信号を出力するようにしてもよい。すると、ラッチ回路932は、遊技機への電力供給が停止する直前のカウンタ931のカウント値をラッチし、遊技機への電力供給が停止しているときにも、その値を保持している。そして、遊技機への電力供給が再開され初期化処理が実行されると、CPU56は、ラッチ回路932が保持しているデータを入力ポート582を介して入力する。電力供給停止直前のカウンタ931のカウント値は不定であるから、遊技機への電力供給が再開されたときに入力ポート582を介して入力されるデータも不定である。なお、この場合には、CPU56は、初期化処理においてラッチ信号を出力しない(出力するとラッチ回路932が保持しているデータがそのときのカウンタ931のカウント値で更新されてしまうので)。
さらに、第2発振回路930はその発振周波数が、第1発振回路92の発振周波数とは異なるものである。また、第1発振回路92の発振周波数と第2発振回路930の発振周波数とのうちのいずれかの発振周波数が他方の発振周波数の整数倍にもなっていない。CPU56は、第1発振回路92の発振周波数にもとづいて動作するので、CPU56が内部で(ソフトウェア的に)生成しているカウンタの歩進は、第2発振回路930の発振周波数にもとづいて動作するカウンタ931のカウント値の歩進とは同期しない。なお、CPU56が内部で生成しているカウンタには、例えば、大当りを発生させるか否かを決定するための乱数を生成するカウンタがある。
図16および図17は、この実施の形態における出力ポートの割り当てを示す説明図である。図16に示すように、出力ポート0は各電気部品制御基板に送出される制御コマンドのINT信号の出力ポートである。また、払出制御基板37に送出される払出制御コマンドの8ビットのデータ(払出制御信号CD0〜CD7)は出力ポート1から出力され、図柄制御基板80に送出される表示制御コマンドの8ビットのデータ(表示制御信号CD0〜CD7)は出力ポート2から出力され、ランプ制御基板35に送出されるランプ制御コマンドの8ビットのデータ(ランプ制御信号CD0〜CD7)は出力ポート3から出力される。そして、図17に示すように、音制御基板70に送出される音制御コマンドの8ビットのデータ(音声制御信号CD0〜CD7)は出力ポート4から出力される。
また、出力ポート5から、情報出力回路64を介して情報端子板34やターミナル基板160に至る各種情報出力用信号すなわち制御に関わる情報の出力データが出力される。そして、出力ポート6から、可変入賞球装置15を開閉するためのソレノイド16、大入賞口の開閉板20を開閉するためのソレノイド21、および大入賞口内の経路を切り換えるためのソレノイド21Aに対する駆動信号が出力される。さらに、出力ポート6から、初期化処理を実行したことを遊技店員等に報知するための信号である初期化信号や、図15に示されたラッチ回路932に与えられるラッチ信号も出力される。
図16および図17に示すように、払出制御基板37、図柄制御基板80、ランプ制御基板35および音制御基板70に対して出力される各INT信号(払出制御信号INT、表示制御信号INT、ランプ制御信号INTおよび音制御信号INT)を出力する出力ポート(出力ポート0)と、払出制御信号CD0〜CD7、表示制御信号CD0〜CD7、ランプ制御信号CD0〜CD7および音声制御信号CD0〜CD7を出力する出力ポート(出力ポート1〜4)とは、別ポートである。
従って、INT信号を出力する際に、誤って払出制御信号CD0〜CD7、表示制御信号CD0〜CD7、ランプ制御信号CD0〜CD7および音声制御信号CD0〜CD7を変化させてしまう可能性が低減する。また、払出制御信号CD0〜CD7、表示制御信号CD0〜CD7、ランプ制御信号CD0〜CD7または音声制御信号CD0〜CD7を出力する際に、誤ってINT信号を変化させてしまう可能性が低減する。その結果、主基板31の遊技制御手段から各電気部品制御基板に対するコマンドは、より確実に送出されることになる。さらに、各INT信号は、全て出力ポート0から出力されるように構成されているので、遊技制御手段のINT信号出力処理の負担が軽減される。
図18は、この実施の形態における入力ポートのビット割り当てを示す説明図である。図18に示すように、入力ポート0のビット0〜7には、それぞれ、入賞口スイッチ33a,39a,29a,30a、始動口スイッチ14a、カウントスイッチ23、V入賞スイッチ22、ゲートスイッチ32aの検出信号が入力される。また、入力ポート1のビット0〜4には、それぞれ、賞球カウントスイッチ301A、満タンスイッチ48、球切れスイッチ187の検出信号、カウントスイッチ短絡信号およびクリアスイッチ921の検出信号が入力される。なお、各スイッチからの検出信号は、スイッチ回路58において論理反転されている。このように、クリアスイッチ921の検出信号すなわち初期化操作手段の操作入力は、遊技球を検出するためのスイッチの検出信号が入力される入力ポート(8ビット構成の入力部)と同一の入力ポートにおけるビット(入力ポート回路)に入力されている。
さらに、入力ポート2は、図15に示された入力ポート582に相当するものであり、ラッチ回路932が出力するデータが入力される。以下、ラッチ回路932が出力するデータを判定用乱数初期値という。
次に遊技機の動作について説明する。図19は、主基板31における遊技制御手段(CPU56およびROM,RAM等の周辺回路)が実行するメイン処理を示すフローチャートである。遊技機に対して電源が投入され、リセット端子の入力レベルがハイレベルになると、CPU56は、ステップS1以降のメイン処理を開始する。メイン処理において、CPU56は、まず、必要な初期設定を行う。
初期設定処理において、CPU56は、まず、割込禁止に設定する(ステップS1)。次に、割込モードを割込モード2に設定し(ステップS2)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS3)。そして、内蔵デバイスレジスタの初期化を行う(ステップS4)。また、内蔵デバイス(内蔵周辺回路)であるCTC(カウンタ/タイマ)およびPIO(パラレル入出力ポート)の初期化(ステップS5)を行った後、RAMをアクセス可能状態に設定する(ステップS6)。
この実施の形態で用いられるCPU56は、I/Oポート(PIO)およびタイマ/カウンタ回路(CTC)も内蔵している。また、CTCは、2本の外部クロック/タイマトリガ入力CLK/TRG2,3と2本のタイマ出力ZC/TO0,1を備えている。
この実施の形態で用いられているCPU56には、マスク可能な割込のモードとして以下の3種類のモードが用意されている。なお、マスク可能な割込が発生すると、CPU56は、自動的に割込禁止状態に設定するとともに、プログラムカウンタの内容をスタックにセーブする。
割込モード0:割込要求を行った内蔵デバイスがRST命令(1バイト)またはCALL命令(3バイト)をCPUの内部データバス上に送出する。よって、CPU56は、RST命令に対応したアドレスまたはCALL命令で指定されるアドレスの命令を実行する。リセット時に、CPU56は自動的に割込モード0になる。よって、割込モード1または割込モード2に設定したい場合には、初期設定処理において、割込モード1または割込モード2に設定するための処理を行う必要がある。
割込モード1:割込が受け付けられると、常に0038(H)番地に飛ぶモードである。
割込モード2:CPU56の特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビット0)から合成されるアドレスが、割込番地を示すモードである。すなわち、割込番地は、上位アドレスが特定レジスタの値とされ下位アドレスが割込ベクタとされた2バイトで示されるアドレスである。従って、任意の(飛び飛びではあるが)偶数番地に割込処理を設置することができる。各内蔵デバイスは割込要求を行うときに割込ベクタを送出する機能を有している。
よって、割込モード2に設定されると、各内蔵デバイスからの割込要求を容易に処理することが可能になり、また、プログラムにおける任意の位置に割込処理を設置することが可能になる。さらに、割込モード1とは異なり、割込発生要因毎のそれぞれの割込処理を用意しておくことも容易である。上述したように、この実施の形態では、初期設定処理のステップS2において、CPU56は割込モード2に設定される。
次いで、CPU56は、入力ポート1を介して入力されるクリアスイッチ921の出力信号の状態を1回だけ確認する(ステップS7)。その確認においてオンを検出した場合には、CPU56は、通常の初期化処理を実行する(ステップS181〜ステップS190)。クリアスイッチ921がオンである場合(押下されている場合)には、ローレベルのクリアスイッチ信号が出力されている。なお、入力ポート1では、クリアスイッチ信号のオン状態はハイレベルである(図15参照)。また、例えば、遊技店員は、クリアスイッチ921をオン状態にしながら遊技機に対する電力供給を開始することによって、容易に初期化処理を実行させることができる。すなわち、RAMクリア等を行うことができる。
クリアスイッチ921がオンの状態でない場合には、遊技機への電力供給が停止したときにバックアップRAM領域のデータ保護処理(例えばパリティデータの付加等の電力供給停止時処理)が行われたか否か確認する(ステップS8)。この実施の形態では、電力供給の停止が生じた場合には、バックアップRAM領域のデータを保護するための処理が行われている。そのような保護処理が行われていた場合をバックアップありとする。そのような保護処理が行われていないことを確認したら、CPU56は初期化処理を実行する。
この実施の形態では、バックアップRAM領域にバックアップデータがあるか否かは、電力供給停止時処理においてバックアップRAM領域に設定されるバックアップフラグの状態によって確認される。例えば、バックアップフラグ領域に「55(H)」が設定されていればバックアップあり(オン状態)を意味し、「55(H)」以外の値が設定されていればバックアップなし(オフ状態)を意味する。
バックアップありを確認したら、CPU56は、バックアップRAM領域のデータチェック(この例ではパリティチェック)を行う(ステップS9)。この実施の形態では、クリアデータ(00)をチェックサムデータエリアにセットし、チェックサム算出開始アドレスをポインタにセットする。また、チェックサムの対象となるデータ数に対応するチェックサム算出回数をセットする。そして、チェックサムデータエリアの内容とポインタが指すRAM領域の内容との排他的論理和を演算する。演算結果をチェックサムデータエリアにストアするとともに、ポインタの値を1増やし、チェックサム算出回数の値を1減算する。以上の処理が、チェックサム算出回数の値が0になるまで繰り返される。チェックサム算出回数の値が0になったら、CPU56は、チェックサムデータエリアの内容の各ビットの値を反転し、反転後のデータをチェックサムとする。
電力供給停止時処理において、上記の処理と同様の処理によってチェックサムが算出され、チェックサムはバックアップRAM領域に保存されている。ステップS9では、算出したチェックサムと保存されているチェックサムとを比較する。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップRAM領域のデータは保存されているはずであるから、チェック結果(比較結果)は正常(一致)になる。チェック結果が正常でないということは、バックアップRAM領域のデータが、電力供給停止時のデータとは異なっていることを意味する。そのような場合には、内部状態を電力供給停止時の状態に戻すことができないので、電力供給の停止からの復旧時でない電源投入時に実行される初期化処理を実行する。
チェック結果が正常であれば、CPU56は、遊技制御手段の内部状態と表示制御手段等の電気部品制御手段の制御状態を電力供給停止時の状態に戻すための遊技状態復旧処理を行う(ステップS10)。そして、バックアップRAM領域に保存されていたPC(プログラムカウンタ)の退避値がPCに設定され、そのアドレスに復帰する。
このように、バックアップフラグとチェックサム等のチェックデータとを用いてバックアップRAM領域のデータが保存されているか否かを確認することによって、遊技状態を電力供給停止時の状態に正確に戻すことができる。すなわち、バックアップRAM領域のデータにもとづく状態復旧処理の確実性が向上する。なお、この実施の形態では、バックアップフラグとチェックデータとの双方を用いてバックアップRAM領域のデータが保存されているか否かを確認しているが、いずれか一方のみを用いてもよい。すなわち、バックアップフラグとチェックデータとのいずれかを、状態復旧処理を実行するための契機としてもよい。
初期化処理では、CPU56は、まず、RAMクリア処理を行う(ステップS181)。また、所定の作業領域(例えば、判定用乱数カウンタ、表示用乱数カウンタ、初期値用乱数カウンタ、普通図柄判定用バッファ、特別図柄左中右図柄バッファ、特別図柄プロセスフラグ、払出コマンド格納ポインタ、賞球中フラグ、球切れフラグ、払出停止フラグなど制御状態に応じて選択的に処理を行うためのフラグ)に初期値を設定する作業領域設定処理を行う(ステップS182)。
次いで、CPU56は、例えば情報出力回路64を介して、ホールコンピュータなどの外部装置に向けて初期化信号を出力する(ステップS183)。初期化信号は、起動時に初期化処理を実行したことを遊技店員等に報知するための信号である。従って、ホールコンピュータなどの外部装置は、初期化信号を受信すると、音・ランプ・表示などによって初期化処理が実行されたことを報知する処理を行う。また、球払出装置97からの払出が可能であることを指示する払出許可状態指定コマンド(以下、払出可能状態指定コマンドという。)を払出制御基板37に対して送信する処理を行う(ステップS184)。
また、各サブ基板(払出制御基板37、ランプ制御基板35、音制御基板70、図柄制御基板80)を初期化するための初期化コマンドを各サブ基板に送信する処理を実行する(ステップS185)。初期化コマンドとして、可変表示装置9に表示される初期図柄を示すコマンド(図柄制御基板80に対して)や賞球ランプ51および球切れランプ52の消灯を指示するコマンド(ランプ制御基板35に対して)等がある。なお、この実施の形態では、ステップS184で払出可能状態指定コマンドが送信されるため、ステップS185では払出制御基板37に対する制御コマンドは送信されない。さらに、CPU56は、初期化処理の実行の報知を指定する初期化報知コマンドを図柄制御基板80に対して送信する処理を行う(ステップS186)。この実施の形態では、初期化報知コマンドとして、大当り開始時表示コマンド(図39参照)が用いられる。なお、初期化処理の実行の報知制御がランプ制御手段や音制御手段において実行される場合には、ステップS186で、ランプ制御基板35や音制御基板70に対して初期化報知コマンドを送信する。この場合、ランプ制御基板35に送信する初期化報知コマンドとして、例えば大当り開始時ランプ指定コマンド(図40参照)が用いられる。また、音制御基板70に送信する初期化報知コマンドとして、例えば大当り開始時音指定コマンド(図41参照)が用いられる。
初期化処理では、払出制御基板37に対して常に払出可能状態指定コマンドが送信される。仮に、遊技機の状態が球払出装置97からの払出が可能でない状態であったとしても、直後に実行される遊技制御処理において、その旨が検出され、払出が可能でない状態であることを指示する払出禁止状態指定コマンド(以下、払出停止状態指定コマンドという。)が送信されるので問題はない。
さらに、CPU56は、ラッチ信号を出力する(ステップS187)。ステップS187では、例えば、ラッチ信号として1パルスの信号を出力する。ラッチ信号は、出力ポート576からラッチ回路932に与えられる(図15参照)。ラッチ回路932は、ラッチ信号が入力されると、カウンタ931のカウント値を入力してラッチする。CPU56は、ラッチ回路932でラッチされた判定用乱数初期値としてのデータを入力ポート582を介して入力する(ステップS188)。そして、入力した値を、大当り判定用乱数を生成するためのランダム1生成用カウンタにセットする(ステップS189)。すなわち、遊技制御手段は、第2数値更新手段の数値にもとづいて第1数値更新手段の更新を開始する数値を決定する。なお、入力ポート582を介して入力した値をそのままランダム1生成用カウンタにセットするのではなく、入力した値に何らかの演算(加工)を施した値をランダム1生成用カウンタにセットしてもよい。
上述したように、ラッチ回路932でラッチされているデータは、ハードウェアによるカウンタ931が、CPU56の動作周波数を決める第1発振回路92からのクロック信号とは同期しないクロック信号を出力する第2発振回路930からのクロック信号をカウントした値であって不定な値である。従って、初期化処理におけるステップS189でランダム1生成用カウンタにセットされる値(初期値)も不定な値になる。
なお、ラッチ回路932のみにバックアップ電源933から電力が供給され、例えば電力供給停止時処理においてCPU56がラッチ信号を出力するように構成されている場合には、CPU56は、ステップS187の処理を実行せずに、ステップS188およびS189の処理を行う。電力供給停止直前のカウンタ931のカウント値は不定であるから、遊技機への電力供給が再開されたときに入力ポート582を介して入力されるデータも不定であって、ステップS189でランダム1生成用カウンタにセットされる値(初期値)も不定な値になる。
また、カウンタ931のカウント値の最大値(更新上限値)は、ランダム1生成用カウンタのカウント値の最大値(更新上限値;この実施の形態では316)と同じであるように、カウンタ931が構成されていることが好ましい。そのように構成した場合には、ラッチ回路932から入力した値を、そのままランダム1生成用カウンタにセットすることができる。しかし、この実施の形態のように、カウンタ931を8ビットバイナリカウンタで構成した場合には最大値は256であるから、ステップS189では、CPU56は、ラッチ回路932から入力した値を、ランダム1生成用カウンタの下位8ビットにセットする。
そして、CPU56は、2ms毎に定期的にタイマ割込がかかるようにCPU56に設けられているCTCのレジスタの設定を行う(ステップS190)。すなわち、初期値として2msに相当する値を所定のレジスタ(時間定数レジスタ)に設定する。
この実施の形態では、CPU56がクリアスイッチ921がオンであることを検出した場合には、バックアップRAMにデータが保存されているか否かに関わらず初期化処理(ステップS181〜S190)が実行されるので、遊技店の側で強制的に遊技制御手段を初期化することができる。すなわち、ソフトウェア的に遊技制御手段の初期化が実現される。また、クリアスイッチ921がオンでなくても、バックアップフラグとチェックサム等のチェックデータとを用いてソフトウェア的に遊技制御手段の初期化を行うことができるので、電力供給が復旧したときに、誤った遊技状態が復元されてしまうことが防止される。
また、クリアスイッチ921がオンであることを検出しない場合に、バックアップRAMにデータが正しく保存されていないことを確認したら、CPU56は、初期化処理(ステップS181〜S190)を実行する。従って、CPU56は、初期化操作手段に対する操作がなされなくても、所定の初期化条件が成立した場合には、変動データ記憶手段の記憶内容を初期化する。
初期化処理の実行(ステップS181〜S190)が完了すると、メイン処理で、表示用乱数更新処理(ステップS17)および初期値用乱数更新処理(ステップS18)が繰り返し実行される。表示用乱数更新処理および初期値用乱数更新処理が実行されるときには割込禁止状態とされ(ステップS16)、表示用乱数更新処理および初期値用乱数更新処理の実行が終了すると割込許可状態とされる(ステップS19)。表示用乱数とは、可変表示装置9に表示される図柄を決定するための乱数であり、表示用乱数更新処理とは、表示用乱数を発生するためのカウンタのカウント値を更新する処理である。また、初期値用乱数更新処理とは、初期値用乱数を発生するためのカウンタのカウント値を更新する処理である。初期値用乱数とは、大当りとするか否かを決定するための乱数を発生するためのカウンタ(ランダム1生成用カウンタ)等のカウント値の初期値を決定するための乱数である。後述する遊技制御処理において、ランダム1生成用カウンタのカウント値が1周すると、そのカウンタに再び初期値が設定される。ただし、遊技制御処理で設定される初期値として、初期値決定用のカウンタのカウント値が用いられる。
なお、表示用乱数更新処理が実行されるときには割込禁止状態とされるのは、表示用乱数更新処理が後述するタイマ割込処理でも実行されることから、タイマ割込処理における処理と競合してしまうのを避けるためである。すなわち、ステップS17の処理中にタイマ割込が発生してタイマ割込処理中で表示用乱数を発生するためのカウンタのカウント値を更新してしまったのでは、カウント値の連続性が損なわれる場合がある。しかし、ステップS17の処理中では割込禁止状態にしておけば、そのような不都合が生ずることはない。
図20は、遊技状態復旧処理の一例を示すフローチャートである。遊技状態復旧処理において、CPU56は、まず、スタックポインタの復帰処理を行う(ステップS80)。スタックポインタの値は、後で詳述する電力供給停止時処理において、所定のRAMエリア(電源バックアップされている)に退避している。よって、ステップS80では、そのRAMエリアの値をスタックポインタに設定することによって復帰させる。なお、復帰されたスタックポインタが指す領域(すなわちスタック領域)には、電力供給が停止したときのレジスタ値やプログラムカウンタ(PC)の値が退避している。
次いで、CPU56は、スタックオーバフローとなっているか否か確認する(ステップS81)。この実施の形態では、RAM55に設けられたスタック領域に、所定のデータ量を越えるデータが格納された状態となっているか否か確認する。この実施の形態では、CPU56は、復旧されたスタックポインタの値が、許容されている範囲を越えている場合に、スタックオーバフローであると判定する。スタックオーバフローであれば、CPU56は、遊技状態復旧処理を中止して、スタックポインタにスタックポインタ指定アドレスを設定したあと(ステップS81a:上述したステップS3と同様の処理)、初期化処理(ステップS181〜ステップS190)を実行する。
スタックオーバフローでなければ、CPU56は、払出停止状態であったか否か確認する(ステップS82)。払出停止状態であったか否かは、電源バックアップされているRAMエリアに保存されている所定の作業領域(例えば、普通図柄判定用乱数カウンタ、普通図柄判定用バッファ、特別図柄左中右図柄バッファ、特別図柄プロセスフラグ、払出コマンド格納ポインタ、賞球中フラグ、球切れフラグ、払出停止フラグなど)における払出状態データとしての払出停止フラグによって確認される。払出停止状態であった場合には、払出制御基板37に搭載されている払出制御手段に対して、払出の停止を指示する払出制御コマンド(払出停止状態指定コマンド)を送信する(ステップS83)。払出停止状態でなかった場合には、払出制御手段に対して払出が可能であることを指示する払出制御コマンド(払出可能状態指定コマンド)を送信する(ステップS84)。
補給球の不足や余剰球受皿4の満タンについて払出制御手段は認識できないので、遊技制御手段から通知しないと、停電等からの復旧時に、補給球の不足や余剰球受皿4の満タンであるにもかかわらず遊技球の払出処理を開始してしまうおそれがある。しかし、この実施の形態では、遊技状態復旧処理において、払出の停止を指示する払出制御コマンドまたは払出が可能であること指示する払出制御コマンドが送信されるので、払出制御手段が、補給球の不足や余剰球受皿4の満タンであるにもかかわらず遊技球の払出処理を開始してしまうことはない。
なお、ここでは、遊技媒体の払い出しが可能であるか否かを判定する払出状態判定手段(遊技制御手段の一部)が払出可能でないことを検出したら、原因の如何に関わらず、1種類の払出停止状態指定コマンドが送信されるようにしたが、原因別のコマンド(この例では、補給球の不足を示すコマンドと下皿満タンを示すコマンド)に分けて送信してもよい。さらに、遊技球の払出が可能でない場合に、遊技の継続を禁止するために遊技球の発射を禁止することを指示するコマンドを払出制御基板37に対して送信してもよい。払出制御基板37に搭載された払出制御手段は、遊技球の発射を禁止することを指示するコマンドを受信したら、打球発射装置の駆動を停止する。また、遊技球の払出が可能でない場合に、遊技制御手段が発射制御手段に対して、直接、遊技球の発射を禁止することを指示する信号を与えてもよい。また、払出制御手段は、払出停止状態指定コマンドを受信した場合に、打球発射装置の駆動を停止するようにしてもよい。
次いで、CPU56は、電力供給が停止したときに可変表示装置9において特別図柄変動中であったか否か確認する(ステップS85)。電力供給が停止したときに特別図柄変動中であったか否かは、例えば電源バックアップされているRAMエリアに格納されている特別図柄プロセスフラグの値等によって確認することができる。特別図柄変動中であった場合には、図柄制御基板80に搭載されている表示制御手段に対して、特別図柄停電復旧コマンドおよび左右中の図柄を指定する表示制御コマンドを送信する(ステップS86,S87)。ここで、表示制御コマンドで指定される左右中の図柄は、電力供給が停止したときに行われていた特別図柄変動で停止表示されるはずであった図柄である。
表示制御手段は、特別図柄停電復旧コマンドを受信すると、所定の報知処理を行う。例えば、可変表示装置9に停電が生じた旨の表示を行う。電源バックアップされていた各種情報にもとづいて、遊技状態が電力供給停止前の状態に戻るのであるが、その後、特別図柄の変動期間が終了すると、遊技制御手段は表示制御手段に対して確定コマンドを送信する。表示制御手段は、確定コマンドを受信したことにもとづいて、次の特別図柄の変動を行える状態になる。
特別図柄変動中でなかった場合には、CPU56は、表示制御手段に対して、左右中の図柄を指定する表示制御コマンド、確定コマンドおよび客待ちデモコマンドを送信する処理を行う(ステップS88〜S90)。表示制御コマンドで指定される左右中の図柄は、電力供給が停止したときに可変表示装置9において表示されていた図柄である。
表示制御手段は、確定コマンドを受信すると、左右中の図柄を指定する表示制御コマンドで指定された特別図柄を可変表示装置9に表示させる制御を行う。また、客待ちデモコマンドを受信すると、可変表示装置9の背景等の表示状態を待機状態の表示状態にする制御を行う。
その後、CPU56は、バックアップフラグをクリアする(ステップS91)すなわち、前回の電力供給停止時に所定の記憶保護処理が実行されたことを示すフラグをリセットする。また、スタック領域から各種レジスタの退避値を読み出して、各種レジスタに設定する(ステップS92)。すなわち、レジスタ復元処理を行う。そして、パリティフラグがオンしていない場合には割込許可状態にする(ステップS93,S94)。最後に、AFレジスタ(アキュミュレータとフラグのレジスタ)をスタック領域から復元する(ステップS95)。
そして、RET命令が実行されるのであるが、ここでのリターン先は、遊技状態復旧処理をコールした部分ではない。なぜなら、ステップS81においてスタックポインタの復帰処理がなされ、復帰されたスタックポインタが指すスタック領域に格納されているリターンアドレスは、プログラムにおける前回の電力供給停止時にNMIが発生したアドレスである。従って、ステップS95の次のRET命令によって、電力供給停止時にNMIが発生したアドレスにリターンする。すなわち、スタック領域に退避されていたアドレスにもとづいて復旧制御が実行されている。
遊技状態復旧処理が実行されたときには、ステップS8およびステップS9のチェック結果が「Y」であったので、遊技機への電力供給が停止しても記憶内容が記憶保持手段(この例ではバックアップ電源)によって保存される変動データ記憶手段としてのRAMの内容が、遊技機への電力供給停止直前の内容のまま保存されていたことを意味する。従って、大当りとするか否かを決定するための乱数を生成するカウンタのカウント値も保存されていたことになる。よって、CPU56は、保存されていたカウント値からカウンタの歩進を再開することができる。すなわち、遊技制御手段は、遊技状態復旧処理を実行する場合には、電源バックアップされたRAM55に保存されているランダム1生成用カウンタのカウント値(変動データ記憶手段に記憶されている第1数値更新手段の更新値に相当)から、ランダム1生成用カウンタのカウント値の更新を開始することができる。
タイマ割込が発生すると、CPU56は、レジスタの退避処理(ステップS20)を行った後、図21に示すステップS21〜S33の遊技制御処理を実行する。遊技制御処理において、CPU56は、まず、スイッチ回路58を介して、ゲートスイッチ32a、始動口スイッチ14a、カウントスイッチ23および入賞口スイッチ29a,30a,33a,39a等のスイッチの検出信号を入力し、それらの状態判定を行う(スイッチ処理:ステップS21)。
次いで、パチンコ遊技機1の内部に備えられている自己診断機能によって種々の異常診断処理を行い、その結果に応じて必要ならば警報を発するための処理を行う(エラー処理:ステップS22)。
次に、遊技制御に用いられる大当り判定用の乱数等の各判定用乱数を生成するための各カウンタのカウント値を更新する処理を行う(ステップS23)。CPU56は、さらに、表示用乱数を生成するためのカウンタのカウント値を更新する処理を行い(ステップS24)、さらに、初期値用乱数を生成するためのカウンタのカウント値を更新する処理を行う(ステップS25)。
さらに、CPU56は、特別図柄プロセス処理を行う(ステップS26)。特別図柄プロセス制御では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。また、普通図柄プロセス処理を行う(ステップS27)。普通図柄プロセス処理では、普通図柄表示器10の表示状態を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。
次いで、CPU56は、特別図柄に関する表示制御コマンドをRAM55の所定の領域に設定して表示制御コマンドを送信する処理を行う(特別図柄コマンド制御処理:ステップS28)。また、普通図柄に関する表示制御コマンドをRAM55の所定の領域に設定して表示制御コマンドを送信する処理を行う(普通図柄コマンド制御処理:ステップS29)。
さらに、CPU56は、例えばホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する情報出力処理を行う(ステップS30)。
また、CPU56は、所定の条件が成立したときにソレノイド回路59に駆動指令を行う(ステップS31)。可変入賞球装置15または開閉板20を開状態または閉状態としたり、大入賞口内の遊技球通路を切り替えたりするために、ソレノイド回路59は、駆動指令に応じてソレノイド16,21,21Aを駆動する。
そして、CPU56は、始動口スイッチ14a、入賞口スイッチ29a,30a,33a,39aおよびカウントスイッチ23の検出信号にもとづく賞球個数の設定などを行う賞球処理を実行する(ステップS32)。具体的には、始動口スイッチ14a、入賞口スイッチ29a,30a,33a,39aおよびカウントスイッチ23がオンしたことにもとづく入賞検出に応じて、払出制御基板37に賞球個数を示す払出制御コマンドを出力する。払出制御基板37に搭載されている払出制御用CPU371は、賞球個数を示す払出制御コマンドに応じて球払出装置97を駆動する。
さらに、始動口スイッチ14aへの遊技球の入賞にもとづいて始動入賞記憶を増加させるための制御を行う(始動入賞記憶処理:ステップS33)。その後、レジスタの内容を復帰させ(ステップS34)、割込許可状態に設定する(ステップS35)。
以上の制御によって、この実施の形態では、遊技制御処理は2ms毎に起動されることになる。なお、この実施の形態では、タイマ割込処理で遊技制御処理が実行されているが、タイマ割込処理では例えば割込が発生したことを示すフラグのセットのみがなされ、遊技制御処理はメイン処理において実行されるようにしてもよい。
図22は、CPU56が実行する特別図柄プロセス処理のプログラムの一例を示すフローチャートである。図22に示す特別図柄プロセス処理は、図21のフローチャートにおけるステップS26の具体的な処理である。CPU56は、特別図柄プロセス処理を行う際に、変動短縮タイマ減算処理(ステップS310)を行った後に、内部状態(この例では特別図柄プロセスフラグ)に応じて、ステップS300〜S309のうちのいずれかの処理を行う。
変動短縮タイマ減算処理は、始動記憶(始動口スイッチ14aがオンしたことの記憶)の記憶可能最大数に対応した個数設けられている変動短縮タイマを減算する処理である。そして、後述する特別図柄大当り判定処理(ステップS301)において、例えば、変動短縮タイマの値が0になっていて、かつ、低確率状態(通常状態)では始動記憶数が始動記憶の最大値、確変状態では始動記憶数が「2」以上であれば、図柄の変動パターンとして変動時間が短縮されたパターンを用いることに決定される。また、始動口スイッチ通過確認処理は、始動口スイッチ14aがオンしたときに所定の各乱数値を取得して記憶する処理である。
ステップS300〜S309において、以下のような処理が行われる。
特別図柄通常処理(ステップS300):始動記憶数を確認し、始動記憶数が0でなければ、ステップS301に移行するように特別図柄プロセスフラグの値を変更する。
特別図柄大当り判定処理(ステップS301):始動入賞があったときに記憶された各種乱数を格納するバッファ等の内容をシフトする。シフトの結果、押し出されたバッファの内容にもとづいて大当りとするか否かを決定する。なお、バッファは、始動入賞の記憶可能最大数だけ用意されている。また、シフトによって押し出されたバッファの内容は、最も前に生じた始動入賞に応じた内容である。そして、大当りとすることに決定した場合には、大当りフラグをセットする。その後、ステップS302に移行するように特別図柄プロセスフラグの値を変更する。
停止図柄設定処理(ステップS302):特別図柄の可変表示の表示結果である左右中図柄の停止図柄を決定する。そして、ステップS303に移行するように特別図柄プロセスフラグの値を変更する。
変動パターン設定処理(ステップS303):特別図柄の可変表示のパターンすなわち可変表示パターン(変動パターン)を決定する。そして、決定された変動パターンおよび停止図柄等を通知するための表示制御コマンドを図柄制御基板80等に対して出力するための処理を行う。その後、ステップS304に移行するように特別図柄プロセスフラグの値を変更する。
特別図柄変動処理(ステップS304):変動パターンに応じて決められている変動時間が経過したか否か確認する。経過していれば、ステップS305に移行するように特別図柄プロセスフラグの値を変更する。
特別図柄図柄停止処理(ステップS305):一定時間(例えば1.000秒)が経過した後、大当りとすることに決定されている場合には、ステップS306に移行するように特別図柄プロセスフラグの値を変更する。そうでなければ、ステップS300に移行するように特別図柄プロセスフラグの値を変更する。
大入賞口開放前処理(ステップS306):大入賞口を開放する制御を開始する。具体的には、カウンタやフラグを初期化するとともに、ソレノイド54を駆動して大入賞口を開放する。そして、ステップS307に移行するように特別図柄プロセスフラグの値を変更する。
大入賞口開放中処理(ステップS307):大入賞口の閉成条件の成立を確認する処理等を行う。大入賞口の閉成条件が成立したら、ステップS308に移行するように特別図柄プロセスフラグの値を変更する。
特定領域有効時間処理(ステップS308):V入賞スイッチ22の通過の有無を監視して、大当り遊技状態継続条件の成立を確認する処理を行う。大当り遊技状態継続の条件が成立し、かつ、まだ残りラウンドがある場合には、ステップS307に移行するように特別図柄プロセスフラグの値を変更する。また、所定の有効時間内に大当り遊技状態継続条件が成立しなかった場合、または、全てのラウンドを終えた場合には、ステップS309に移行するように特別図柄プロセスフラグの値を変更する。
大当り終了処理(ステップS309):大当り遊技状態が終了したことを遊技者に報知するための表示をランプ制御手段等に行わせる制御を行う。そして、ステップS300に移行するように特別図柄プロセスフラグの値を変更する。
図23は、図21に示された遊技制御処理における始動入賞記憶処理(ステップS33)のうち特別図柄始動入賞記憶に関わる部分を示すフローチャートである。打球が遊技盤6に設けられている始動入賞口14に入賞すると、始動口スイッチ14aがオンする。CPU56は、スイッチ回路58および入力ポート578を介して始動口スイッチ14aがオンしたことを判定すると(ステップS41)、始動記憶数が上限値(この例では4)に達しているかどうか確認する(ステップS42)。始動記憶数が上限値に達していなければ、始動記憶数を1増やし(ステップS43)、大当り判定用乱数等の各乱数の値を抽出する。そして、それらを始動記憶数の値に対応した乱数値格納エリアに格納する(ステップS44)。始動記憶数が上限値に達している場合には、始動記憶数を増やす処理を行わない。
そして、CPU56は、可変表示装置9において図柄(特別図柄)の可変表示(変動)を開始できる状態にあるか否かを確認する(ステップS45)。例えば、特別図柄プロセスフラグがステップS300の通常処理に対応した値である場合に、特別図柄の可変表示を開始できる状態にあると判断する。特別図柄の可変表示を開始できる状態でなければ、ランプ制御基板35に、始動記憶表示器18の表示数(点灯しているLED数)を1増やすためのランプ制御コマンドを送信するための制御を行う(ステップS46)。
CPU56は、ステップS25の特別図柄プロセス処理において、図24に示すように始動記憶数の値を確認する(ステップS51)。始動記憶数が0でなければ、始動記憶;1(1番目の始動記憶)に対応する乱数値格納エリアに格納されている値を読み出すとともに(ステップS52)、始動記憶数の値を1減らし、かつ、各乱数値格納エリアの値をシフトする(ステップS53)。すなわち、始動記憶;n(n=2,・・・,4)に対応する乱数値格納エリアに格納されている各値を、始動記憶:n−1に対応する乱数値格納エリアに格納する。なお、そのときの始動記憶数に対応した乱数値格納エリアの内容をクリアする。例えば、始動記憶数が4であった場合には、始動記憶;4に対応した特別図柄乱数値格納エリアの内容をクリアする。
また、始動記憶数が1減らされたので、新たな始動記憶数をランプ制御手段に通知するために、始動記憶数指定コマンドの送出要求のための処理を行う(ステップS65)。
そして、CPU56は、ステップS52で読み出した値、すなわち抽出されている大当り判定用乱数(特別図柄判定用乱数)の値にもとづいて当り/はずれを決定する(ステップS54)。ここでは、大当り判定用乱数は0〜316の範囲の値をとることにする。そして、図25に示すように、通常状態では、例えばその値が「3」である場合に「大当り」と決定し、それ以外の値である場合には「はずれ」と決定する。また、高確率状態(確変状態)では、例えばその値が「3」,「7」,「79」,「103」,「107」のいずれかである場合に「大当り」と決定し、それ以外の値である場合には「はずれ」と決定する。
図26は、各乱数を示す説明図である。各乱数は、以下のように使用される。
(1)ランダム1:大当りを発生させるか否か決定する(大当り判定用)
(2)ランダム2−1〜2−3:特別図柄の左右中のはずれ図柄決定用(特別図柄左右中)
(3)ランダム3:大当りを発生させる特別図柄の組合せを決定する(大当り図柄決定用)
(4)ランダム4:特別図柄の変動パターンを決定する(変動パターン決定用)
(5)ランダム5:普通図柄にもとづく当りを発生させるか否か決定する(普通図柄当り判定用)
(6)ランダム6:ランダム1の初期値を決定する(ランダム1初期値決定用)
(7)ランダム7:ランダム5の初期値を決定する(ランダム5初期値決定用)
なお、図21に示された遊技制御処理におけるステップS23では、CPU56は、(1)の大当り判定用乱数、(3)の大当り図柄決定用乱数、および(5)の普通図柄当り判定用乱数を生成するためのカウンタのカウントアップ(1加算)を行う。すなわち、それらが判定用乱数であり、それら以外の乱数が表示用乱数または初期値用乱数である。なお、遊技効果を高めるために、上記(1)〜(7)の乱数以外の普通図柄に関する乱数等も用いられている。
図24に示すステップS54において、大当りと判定されたときには、大当り図柄用乱数(ランダム3)の値に従って大当り図柄を決定する(ステップS55)。この実施の形態では、ランダム3の値に応じた大当り図柄テーブルに設定されている図柄番号の各図柄が、大当り図柄として決定される。大当り図柄テーブルには、複数種類の大当り図柄の組み合わせのそれぞれに対応した左右中の図柄番号が設定されている。また、変動パターン決定用乱数(ランダム4)を抽出し、ランダム4の値にもとづいて特別図柄の変動パターンを決定する(ステップS56)。
はずれと判定された場合には、CPU56は、大当りとしない場合の停止図柄の決定を行う。この実施の形態では、ステップS52で読み出した値、すなわち抽出されているランダム2−1の値に従って左図柄を決定する(ステップS57)。また、ランダム2−2の値に従って中図柄を決定する(ステップS58)。そして、ランダム2−3の値に従って右図柄を決定する(ステップS59)。ここで、決定された中図柄が左右図柄と一致した場合には、中図柄に対応した乱数の値に1加算した値に対応する図柄を中図柄の停止図柄として、大当り図柄と一致しないようにする。
さらに、CPU56は、リーチすることに決定されたか否か(左右の停止図柄が揃っているか否か)を確認し(ステップS60)、リーチすることに決定されている場合には、変動パターン決定用乱数(ランダム4)の値を抽出し、ランダム4にもとづいて図柄の変動パターンを決定する(ステップS61)。
リーチすることに決定されていない場合には、確変状態か否かを確認する(ステップS62)。確変状態であれば変動パターンをはずれ時短縮変動パターンとすることに決定する(ステップS63)。確変状態でなければ変動パターンをはずれ時の通常変動パターンとすることに決定する(ステップS64)。なお、はずれ時短縮変動パターンは、左右中の図柄の変動時間が例えば4.0秒という通常変動パターンよりも変動期間が短い変動パターンである。
以上のようにして、始動入賞にもとづく図柄の変動態様を、リーチ態様とするか、はずれ態様とするか決定され、それぞれの停止図柄の組合せが決定される。すなわち、特別図柄の変動態様として、リーチ演出を行うのか行わないのかが決定されるとともに停止図柄の組合せが決定される。
なお、図24に示された処理は、図22に示された特別図柄プロセス処理におけるステップS301〜S303の処理をまとめて示した場合の処理に相当する。また、この実施の形態では、左右中図柄の停止図柄が揃った場合に大当りが発生する。左右図柄のみが揃った場合にリーチとなる。
図27および図28は、図21に示された遊技制御処理で実行される判定用乱数更新処理(ステップS23)の一例を示すフローチャートである。判定用乱数更新処理において、CPU56は、ランダム1(大当り判定用乱数)を生成するためのカウンタ(ランダム1生成用カウンタ)のカウント値を+1する(ステップS101)。そして、ランダム1を生成するためのカウンタのカウント値が(最大値+1)以上になっている場合には(ステップS102)、値を0に戻す(ステップS103)。なお、この実施の形態では、(最大値+1)は317である。また、所定のタイミングでランダム1を生成するためのカウンタ(ランダム1生成用カウンタ)から読み出された値が、抽出されたランダム1(大当り判定用乱数)である。同様に、他のランダム2等を生成するためのカウンタから読み出された値が、抽出されたランダム2等である。以下、ランダムn(n:1,2,・・・)を生成するためのカウンタをランダムn生成用カウンタということがある。
次いで、CPU56は、ランダム1生成用カウンタのカウント値が初期値としてランダム1用初期値バッファに保存されている値と一致したか否か確認する(ステップS104)。一致していなければ、カウント値はそのままである。一致していた場合には、ランダム6(ランダム1初期値決定用乱数)を抽出する(ステップS105)。すなわち、ランダム6を生成するためのカウンタ(ランダム6生成用カウンタ)のカウント値を入力する。そして、抽出された値を初期値としてランダム1用初期値バッファに保存するとともに(ステップS106)、抽出された値を、ランダム1を生成するためのカウンタに設定する(ステップS107)。よって、この時点で、ランダム1を生成するためのカウンタ(ランダム1生成用カウンタ)の初期値が変更される。
次に、ランダム3(大当り図柄決定用乱数)を生成するためのカウンタ(ランダム3生成用カウンタ)のカウント値を+1する(ステップS108)。ランダム3生成用カウンタのカウント値が(最大値+1)以上になっている場合には(ステップS109)、カウント値を0に戻す(ステップS110)。なお、この実施の形態では、(最大値+1)は12である。
また、ランダム5(普通図柄当り判定用乱数)を生成するためのカウンタ(ランダム5生成用カウンタ)のカウント値を+1する(ステップS121)。ランダム5を生成するためのカウンタのカウント値が(最大値+1)以上になっている場合には(ステップS122)、カウント値を3に戻す(ステップS123)。なお、この実施の形態では、(最大値+1)は14である。
そして、CPU56は、ランダム5生成用カウンタのカウント値が初期値としてランダム5用初期値バッファに保存されている値と一致したか否か確認する(ステップS124)。一致していなければ、カウント値はそのままである。一致していた場合には、ランダム7(ランダム5初期値決定用乱数)を抽出する(ステップS125)。すなわち、ランダム7を生成するためのカウンタ(ランダム7生成用カウンタ)のカウント値を入力する。そして、抽出された値を初期値としてランダム5用初期値バッファに保存するとともに(ステップS126)、抽出された値を、ランダム5生成用カウンタに設定する(ステップS127)。よって、この時点で、ランダム5生成用カウンタの初期値が変更される。なお、遊技機に電源が投入されたときに初期値として「3」がランダム5を生成するためのカウンタに設定されるが、バックアップRAMにランダム5の値が保存されていた場合には電源投入時に保存値に戻される。また、ランダム5用初期値バッファもバックアップRAMに形成される。
図29は、図21に示された遊技制御処理において1回実行されるとともに(ステップS25)、図19に示されたメイン処理における割込余り時間(遊技制御処理終了後、次回の2msタイマ割込が発生するまでの時間)で繰り返し実行される(ステップS18)初期値用乱数更新処理の一例を示すフローチャートである。
初期値用乱数更新処理において、CPU56は、ランダム6(ランダム1初期値決定用乱数)を生成するためのカウンタ(ランダム6生成用カウンタ)のカウント値を+1する(ステップS131)。ランダム6生成用カウンタのカウント値が(最大値+1)以上になっている場合には(ステップS132)、カウント値を0に戻す(ステップS133)。なお、(最大値+1)は、ランダム1の場合と同様に317である。
また、ランダム7生成用カウンタのカウント値を+1する(ステップS134)。ランダム7生成用カウンタのカウント値が(最大値+1)以上になっている場合には(ステップS135)、カウント値を3に戻す(ステップS136)。なお、(最大値+1)は、ランダム5の場合と同様に14である。
図30は、図21に示された遊技制御処理において1回実行されるとともに(ステップS24)、図19に示されたメイン処理における割込余り時間で繰り返し実行される(ステップS17)表示用乱数更新処理の一例を示すフローチャートである。
表示用乱数更新処理において、CPU56は、ランダム4(変動パターン決定用乱数)を生成するためのカウンタ(ランダム4生成用カウンタ)のカウント値を+3する(ステップS151)。ランダム4生成用カウンタのカウント値が251以上になっている場合には(ステップS152)、ランダム4生成用カウンタのカウント値を251減らす(ステップS153)。
なお、この実施の形態では、ランダム4の最大値は250であるが、ランダム4生成用カウンタのカウント値は3ずつ増えていくので、値が0から始まった場合には、249になった後には252になる。すると、251減らすと、その値は1になる。また、値が1から始まった場合には、250になった後に253になる。すると、251減らすと、その値は2になる。また、値が2から始まった場合には、248になった後に251になる。すると、251減らすと、その値は0になる。すなわち、ランダム4の値の初期値(最大値を越えて値が戻された後の値)も、ある程度ランダムになっている。
次に、ランダム2−1(左のはずれ図柄決定用乱数)を生成するためのカウンタ(ランダム2−1生成用カウンタ)のカウント値を+1する(ステップS154)。ランダム2−1生成用カウンタのカウント値が(最大値+1)以上になっている場合には(ステップS155)、カウント値を0に戻す(ステップS156)。なお、この実施の形態では、(最大値+1)は12である。
ランダム2−1生成用カウンタのカウント値が(最大値+1)以上になって値が0に戻された場合、すなわち桁上げが生じた場合には、ランダム2−2(中のはずれ図柄決定用乱数)を生成するためのカウンタ(ランダム2−2生成用カウンタ)のカウント値を+1する(ステップS157)。ランダム2−2生成用カウンタのカウント値が(最大値+1)以上になっている場合には(ステップS158)、カウント値を0に戻す(ステップS159)。なお、この実施の形態では、(最大値+1)は12である。
ランダム2−2生成用カウンタのカウント値が(最大値+1)以上になって値が0に戻された場合、すなわち桁上げが生じた場合には、ランダム2−3(右のはずれ図柄決定用乱数)を生成するためのカウンタ(ランダム2−3生成用カウンタ)のカウント値を+1する(ステップS160)。ランダム2−3生成用カウンタのカウント値が(最大値+1)以上になっている場合には(ステップS161)、カウント値を0に戻す(ステップS162)。なお、この実施の形態では、(最大値+1)は12である。
図31は、図27および図28に示された判定用乱数更新処理によって変化するランダム1(大当り判定用乱数)を生成するためのカウンタ(ランダム1生成用カウンタ)の値の一例を示す説明図である。遊技機への電力供給が開始され初期化処理が実行されたときには、ランダム1生成用カウンタの最初の値は、ラッチ回路932を介して入力したカウンタ931のカウント値(不定な値)になっている。また、最初はランダム1用初期値バッファに「0」が設定されているので、ランダム1生成用カウンタのカウント値が「316」まで進み、そこで+1されて値が0に戻ると(ステップS101,S102,S103)、ステップS104の処理でランダム1生成用カウンタのカウント値が初期値と一致したことが検出される。すると、ステップS105の処理でランダム6(ランダム1初期値決定用乱数)が抽出される。なお、この時点は、図31においてAで示されている。
ここで、その時点のランダム6生成用カウンタのカウント値が「19」であったとする。すると、ランダム6として「19」が抽出され、その値が保存されるとともに(ステップS106)、ランダム1生成用カウンタにその値が設定される。従って、この時点から、ランダム1を生成するためのカウンタは、初期値「19」から歩進することになる。
ランダム1生成用カウンタのカウント値が歩進して「19」になると、ステップS104の処理でカウント値が初期値と一致したことが検出される。すると、ステップS105の処理でランダム6が抽出される。なお、この時点は、図31においてBで示されている。その時点のランダム6生成用カウンタのカウント値が「195」であったとする。すると、ランダム6として「195」が抽出され、その値が保存されるとともに(ステップS106)、ランダム1生成用カウンタにその値が設定される。従って、この時点から、ランダム1生成用カウンタは、初期値「195」から歩進する。
そして、ランダム1生成用カウンタの値が歩進して「195」になると、ステップS104の処理でカウント値が初期値と一致したことが検出される。すると、ステップS105の処理でランダム6が抽出される。なお、この時点は、図31においてCで示されている。その時点のランダム6生成用カウンタのカウント値が「n」であったとする。すると、ランダム6として「n」が抽出され、その値が保存されるとともに(ステップS106)、ランダム1生成用カウンタにその値が設定される。従って、この時点から、ランダム1生成用カウンタは、初期値「n」から歩進する。なお、図31において、星印(☆)は、カウント値が「3(低確率時の大当り判定値)」となる位置を示している。
以上のように、ランダム1生成用カウンタには、初期化処理においてランダムな値が設定される。すなわち、遊技制御手段は、初期化処理を実行する場合には、特定遊技状態(この例では大当り遊技状態)とするか否かを決定するための数値を更新する判定用数値更新手段(第1数値更新手段)としてのランダム1生成用カウンタの更新を、計数手段(この例ではカウンタ931およびラッチ回路932)の計数値、すなわち第2数値更新手段の数値にもとづいて開始する。よって、ランダム1生成用カウンタのカウントの1周目(最初に最大値316を越えるまで)で、カウント値が大当り判定値と一致するタイミングを検出することは困難である。
また、その後、ランダム1生成用カウンタのカウント値が1周(317カウント)する度に、ランダム6生成用カウンタからの抽出値にもとづいて、ランダム1生成用カウンタのカウント値として新たな初期値が設定され、以後、カウンタはその値から歩進していく。すなわち、遊技制御手段は、第1数値更新手段としての判定用数値更新手段の更新を計数手段の計数値(第2数値更新手段の数値)にもとづいて開始した後では、遊技制御処理中で更新する初期値用数値更新手段としてのランダム6生成用カウンタの数値(カウント値)を用いてランダム1生成用カウンタの初期値を更新する。ランダム1生成用カウンタの初期値を決定するためのカウンタ(ランダム6生成用カウンタ)は、CPU56が実行する遊技制御処理の余り時間(遊技制御処理が終了してから次に2msタイマ割込が発生するまでの時間)でカウントアップされている。そして、その余り時間は、遊技の進行状況に応じて異なるので、ランダムな期間になっている。その結果、生成されるランダム6の値もランダムな値になるので、大当り判定用カウンタの初期値もランダムに変化する。
つまり、大当り判定用カウンタとしてのランダム1生成用カウンタのカウントの1周目ではハードウェア回路のカウント値にもとづいてランダムな初期値が設定されるとともに、その後、ランダム1生成用カウンタのカウント値が1周する度に、ランダム1生成用カウンタは、ソフトウェアによるカウンタのカウント値のもとづくランダムな初期値からあらためてカウンタの歩進が始まる。すると、不正基板が主基板31に接続され、主基板31から出力される信号にもとづいて大当り判定用カウント値更新タイミングが認識されたとしても、ランダム1生成用カウンタのカウント値が大当り判定値になるタイミングをねらって不正な始動入賞信号を主基板31に送り込むことは困難になる。この実施の形態によれば、図31に星印で示されたように、ランダム1生成用カウンタのカウント値が大当り判定値になるタイミングに規則性はなくランダムになっているからである。
次に、遊技制御手段から各電気部品制御基板に送信されるコマンドについて説明する。図32は、主基板31から、ランプ制御基板35、払出制御基板37、音制御基板70および図柄制御基板80に送信される制御コマンド(ランプ制御コマンド、音制御コマンド、表示制御コマンドおよび払出制御コマンド)のコマンド形態の一例を示す説明図である。この実施の形態では、制御コマンドのコマンドデータは2バイト構成であり、1バイト目はMODE(コマンドの種類)を表し、2バイト目はEXT(具体的指示内容)を表す。MODEデータの先頭ビット(ビット7)は必ず「1」とされ、EXTデータの先頭ビット(ビット7)は必ず「0」とされる。このように、ランプ制御基板35、払出制御基板37、音制御基板70および図柄制御基板80に送信される制御コマンドは、複数のコマンドデータで構成され、先頭ビットによってそれぞれを区別可能な態様になっている。なお、図32に示されたコマンド形態は一例であって他のコマンド形態を用いてもよい。例えば、1バイトや3バイト以上で構成される制御コマンドを用いてもよい。
図33に示すように、制御コマンドは、8ビットの制御信号CD0〜CD7(コマンドデータ)とINT信号(取込信号)とで構成される。ランプ制御基板35、払出制御基板37、音制御基板70および図柄制御基板80に搭載されているランプ制御手段、払出制御手段、音制御手段および表示制御手段は、INT信号が立ち上がったことを検知して、割込処理によって1バイトのデータの取り込み処理を開始する。
図34は、図柄制御基板80に送出される表示制御コマンドの内容の一例を示す説明図である。表示制御コマンドはMODEとEXTの2バイト構成である。図21に示す例において、コマンド8000(H)〜8031(H)は、特別図柄の変動パターンを指定する表示制御コマンドである。なお、変動パターンを指定するコマンド(変動パターン指定コマンド)は変動開始指示も兼ねている。
コマンド88XX(H)(X=4ビットの任意の値)は、普通図柄の変動パターンに関する表示制御コマンドである。コマンド89XX(H)は、普通図柄の停止図柄を指定する表示制御コマンドである。コマンド8AXX(H)(X=4ビットの任意の値)は、普通図柄の可変表示の停止を指示する表示制御コマンドである。
コマンド91XX(H)、92XX(H)および93XX(H)は、特別図柄の左中右の停止図柄を指定する表示制御コマンドである。また、コマンドA0XX(H)は、特別図柄の可変表示の停止を指示する表示制御コマンドである。コマンドBXXX(H)は、大当り遊技開始から大当り遊技終了までの間に送出される表示制御コマンドである。
コマンドC000(H)は、特別図柄の変動および大当り遊技に関わらない表示状態に関する表示制御コマンドである。
図柄制御基板80の表示制御手段は、主基板31の遊技制御手段から上述した表示制御コマンドを受信すると図34に示された内容に応じて可変表示部装置9における表示領域150の表示状態を変更する制御を行う。
図35は、主基板31からランプ制御基板35に送出されるランプ制御コマンドの内容の一例を示す説明図である。ランプ制御コマンドもMODEとEXTの2バイト構成である。図35に示す例において、コマンド8000(H)〜8031(H)は、特別図柄の変動パターンに対応したランプ・LED(遊技機に設けられている各発光体)の制御パターンを指定するランプ制御コマンドである。また、コマンドA0XX(H)(X=4ビットの任意の値)は、特別図柄の可変表示の停止時のランプ・LEDの制御パターンを指示するランプ制御コマンドである。コマンドBXXX(H)は、大当り遊技開始から大当り遊技終了までの間のランプ・LEDの制御パターンを指示するランプ制御コマンドである。そして、コマンドC000は、客待ちデモンストレーション時のランプ・LEDの制御パターンを指示するランプ制御コマンドである。
なお、コマンド8XXX(H)、AXXX(H)、BXXX(H)およびCXXX(H)は、遊技進行状況に応じて遊技制御手段から送出されるランプ制御コマンド、すなわち遊技状態を報知することを指示するランプ制御コマンドである。ランプ制御手段は、主基板31の遊技制御手段から上述したランプ制御コマンドを受信すると図35に示された内容に応じてランプ・LEDの表示状態(点灯、消灯および点滅)を変更する。
この実施の形態では、ランプ制御手段は、遊技状態を報知することを指示するランプ制御コマンドを受信すると、装飾ランプ25、天枠ランプ28aおよび左右枠ランプ28b,28cのうちの一部または全部を用いて、遊技状態を報知するための点灯/消灯制御を行う。なお、装飾ランプ25、天枠ランプ28aおよび左右枠ランプ28b,28cは、それぞれ、複数の発光体の集まりで構成されていてもよく、その場合、装飾ランプ25、天枠ランプ28aおよび左右枠ランプ28b,28cのうちの一部を用いて遊技状態を報知するということは、例えば、装飾ランプ25を構成する複数の発光体のうちの一部を用いてもよいということも意味する。
コマンドE0XX(H)は、始動記憶数(特別図柄始動記憶数)を示すランプ制御コマンドである。ランプ制御手段は、「XX(H)」で指定される数を遊技者が認識できるように始動記憶表示器18に特別図柄始動記憶数に関する情報を表示する。また、コマンドE1XX(H)は、普通図柄始動記憶数を示すランプ制御コマンドである。ランプ制御手段は、「XX(H)」で指定される数を遊技者が認識できるように普通図柄始動記憶表示器41に普通図柄始動記憶数に関する情報を表示する。
コマンドE200(H)およびE201(H)は、賞球ランプ51の表示状態に関するランプ制御コマンドであり、コマンドE300(H)およびE301(H)は、球切れランプ52の表示状態に関するランプ制御コマンドである。ランプ制御手段は、主基板31の遊技制御手段から「E201(H)」のランプ制御コマンドを受信すると賞球ランプ51の表示状態を賞球残がある場合としてあらかじめ定められた表示状態とし、「E200(H)」のランプ制御コマンドを受信すると賞球ランプ51の表示状態を賞球残がない場合としてあらかじめ定められた表示状態とする。
また、主基板31の遊技制御手段から「E300(H)」のランプ制御コマンドを受信すると球切れランプ52の表示状態を球あり中の表示状態とし、「E301(H)」のランプ制御コマンドを受信すると球切れランプ52の表示状態を球切れ中の表示状態とする。すなわち、コマンドE200(H)およびE201(H)は、未賞球の遊技球があることを遊技者等に報知するために設けられている発光体を制御することを示すコマンドであり、コマンドE300(H)およびE301(H)は、補給球が切れていることを遊技者や遊技店員に報知するために設けられている発光体を制御することを示すコマンドである。
コマンド「E500(H)」は、遊技制御手段が不正行為を検知したときに遊技制御手段から送信される不正報知ランプ指定のランプ制御コマンドである。ランプ制御手段は、不正報知ランプ指定のランプ制御コマンドを受信すると、不正報知の態様としてあらかじめ決められた態様でランプ・LEDを点灯制御する。例えば、全てのランプ・LEDを所定の周期で点滅させる。あるいは、不正報知用の発光手段を特に設け、その発光手段を点灯させるようにしてもよい。
図36は、音制御基板70に送出される音制御コマンドの内容の一例を示す説明図である。音制御コマンドもMODEとEXTの2バイト構成である。図36に示す例において、コマンド8XXX(H)(X=4ビットの任意の値)は、特別図柄の変動期間における音発生パターンを指定する音制御コマンドである。なお、コマンド8000(H)〜8031(H)は、特別図柄の変動パターンに対応した音発生パターンを指定する音制御コマンドである。コマンドBXXX(H)(X=4ビットの任意の値)は、大当り遊技開始から大当り遊技終了までの間における音発生パターンを指定する音制御コマンドである。その他のコマンドは、特別図柄の変動および大当り遊技に関わらない音制御コマンドである。音制御基板70の音制御手段は、主基板31の遊技制御手段から上述した音制御コマンドを受信すると図36に示された内容に応じて音出力状態を変更する。
コマンド「E500(H)」は、遊技制御手段が不正行為を検知したときに遊技制御手段から送信される不正報知音指定の音制御コマンドである。音制御手段は、不正報知音指定の音制御コマンドを受信すると、不正報知の態様としてあらかじめ決められた態様でスピーカ27から音出力する制御を行う。
主基板31の遊技制御手段から各サブ基板(ランプ制御基板35、払出制御基板37、音制御基板70、図柄制御基板80)に制御コマンドを出力しようとするときに、コマンド送信テーブルの設定が行われる。あるいは、ROM54に形成されているコマンド送信テーブルのアドレス指定が行われる。図37は、コマンド送信テーブルの一構成例を示す説明図である。1つのコマンド送信テーブルは3バイトで構成され、1バイト目には後述するINTデータが設定される。また、2バイト目のコマンドデータ1には、制御コマンドの1バイト目のMODEデータが設定される。そして、3バイト目のコマンドデータ2には、制御コマンドの2バイト目のEXTデータが設定される。
なお、EXTデータそのものがコマンドデータ2の領域に設定されてもよいが、コマンドデータ2には、EXTデータが格納されているテーブル(ROM54に形成される。)のアドレスを指定するためのデータ(バッファ指定データ)が設定されるようにしてもよい。この実施の形態では、図38(A)に示すように、コマンドデータ2のビット7(ワークエリア参照ビット)が0であれば、コマンドデータ2にEXTデータそのものが設定されていることを示す。なお、そのようなEXTデータはビット7が0であるデータである。また、図38(B)に示すように、ワークエリア参照ビットが1であれば、他の7ビットが、EXTデータが格納されているテーブルのアドレスを指定するためのオフセットであることを示す。なお、図38(B)に示す例では、ビット4〜ビット0が使用されているので、32種類のバッファを指定することが可能である。また、32種類のバッファには、例えば特別図柄変動パターンバッファ、特別図柄左図柄バッファ、特別図柄中図柄バッファ、特別図柄右図柄バッファなどが含まれる。
図39はINTデータの一構成例を示す説明図である。INTデータにおけるビット0は、払出制御基板37に払出制御コマンドを送出すべきか否かを示す。ビット0が「1」であるならば、払出制御コマンドを送出すべきことを示す。従って、CPU56は、例えば賞球処理(遊技制御処理のステップS32)において、INTデータに「01(H)」を設定する。
また、INTデータにおけるビット1は、図柄制御基板80に表示制御コマンドを送出すべきか否かを示す。ビット1が「1」であるならば、表示制御コマンドを送出すべきことを示す。従って、CPU56は、例えば特別図柄プロセス処理や普通図柄プロセス処理(遊技制御処理のステップS26やS27)において、INTデータに「02(H)」を設定する。
INTデータのビット2,3は、それぞれ、ランプ制御コマンド、音制御コマンドを送出すべきか否かを示すビットであり、CPU56は、それらのコマンドを送出すべきタイミングになったら、特別図柄プロセス処理等で、ポインタ(例えば、特別図柄コマンド送信ポインタ)が指しているコマンド送信テーブルに、INTデータ、コマンドデータ1およびコマンドデータ2を設定する。それらのコマンドを送出するときには、INTデータの該当ビットが「1」に設定され、コマンドデータ1およびコマンドデータ2にMODEデータおよびEXTデータが設定される。
この実施の形態では、各制御コマンドについて、それぞれ複数のコマンド送信テーブルが用意され、使用すべきコマンド送信テーブルはコマンド送信前に設定される。あるいは、ROM54に形成されているコマンド送信テーブルのアドレス指定が行われる。また、複数のコマンド送信テーブルを1つのテーブルに設定してもよい。例えば、図40に示すように、複数の表示制御コマンドを格納することが可能な複数のコマンド送信テーブルを含む1個のテーブルが用意されている。CPU56は、例えば、コマンド制御処理において、ポインタが差しているコマンド送信テーブルから、INTデータ、コマンドデータ1およびコマンドデータ2を読み出し、表示制御コマンドを送信する。そして、ポインタを更新する。その後、ポインタが指定するコマンド送信テーブルが終了コードを示すまで、表示制御コマンドの送信処理を繰り返す。なお、各制御コマンドについて用意されるテーブルの一部(例えば、払出制御基板37に対する払出個数指定コマンドが設定されるテーブル)を、リングバッファ形式に構成するようにしてもよい。
図41は、図21に示す遊技制御処理におけるコマンド制御処理の処理例を示すフローチャートである。コマンド制御処理は、コマンド出力処理とINT信号出力処理とを含む処理である。コマンド制御処理において、CPU56は、まず、コマンド送信テーブルのアドレスをスタック等に退避する(ステップS331)。そして、ポインタが指していたコマンド送信テーブルのINTデータを引数1にロードする(ステップS332)。引数1は、後述するコマンド送信処理に対する入力情報になる。また、コマンド送信テーブルを指すアドレスを+1する(ステップS333)。従って、コマンド送信テーブルを指すアドレスは、コマンドデータ1のアドレスに一致する。なお、表示制御コマンドは例えば図37に示されたコマンド送信テーブルに設定されている。
次いで、CPU56は、コマンドデータ1を読み出して引数2に設定する(ステップS334)。引数2も、後述するコマンド送信処理に対する入力情報になる。そして、コマンド送信処理ルーチンをコールする(ステップS335)。
図42は、コマンド送信処理ルーチンを示すフローチャートである。コマンド送信処理ルーチンにおいて、CPU56は、まず、引数1に設定されているデータすなわちINTデータを、比較値として決められているワークエリアに設定する(ステップS351)。次いで、送信回数=4を、処理数として決められているワークエリアに設定する(ステップS352)。そして、ポート1のアドレスをIOアドレスにセットする(ステップS353)。この実施の形態では、ポート1のアドレスは払出制御コマンドデータを出力するための出力ポートのアドレスであり、ポート2〜4のアドレスが、表示制御コマンドデータ、ランプ制御コマンドデータ、音制御コマンドデータを出力するための出力ポートのアドレスであるとする。
次に、CPU56は、比較値を1ビット右にシフトする(ステップS354)。シフト処理の結果、キャリービットが1になったか否か確認する(ステップS355)。キャリービットが1になったということは、INTデータにおける最も右側のビットが「1」であったことを意味する。この実施の形態では4回のシフト処理が行われるのであるが、例えば、表示制御コマンドを送出すべきことが指定されているときには、2回目のシフト処理でキャリービットが1になる。
キャリービットが1になった場合には、引数2に設定されているデータ、この場合にはコマンドデータ1(すなわちMODEデータ)を、IOアドレスとして設定されているアドレスに出力する(ステップS356)。2回目のシフト処理が行われたときにはIOアドレスにポート2のアドレスが設定されているので、そのときに、表示制御コマンドのMODEデータがポート2に出力される。
次いで、CPU56は、IOアドレスを1加算するとともに(ステップS357)、処理数を1減算する(ステップS358)。加算前にポート2を示していた場合には、IOアドレスに対する加算処理によって、IOアドレスにはポート3のアドレスが設定される。ポート3は、ランプ制御コマンドを出力するためのポートである。そして、CPU56は、処理数の値を確認し(ステップS359)、値が0になっていなければ、ステップS354に戻る。ステップS354で再度シフト処理が行われる。
2回目のシフト処理ではINTデータにおけるビット1の値が押し出され、ビット1の値に応じてキャリーフラグが「1」または「0」になる。従って、表示制御コマンドを送出すべきことが指定されているか否かのチェックが行われる。同様に、3回目および4回目のシフト処理によって、ランプ制御コマンドおよび音制御コマンドを送出すべきことが指定されているか否かのチェックが行われる。このように、それぞれのシフト処理が行われるときに、IOアドレスには、シフト処理によってチェックされるコマンド(払出制御コマンド、表示制御コマンド、ランプ制御コマンド、音制御コマンド)に対応したIOアドレスが設定されている。
よって、キャリーフラグが「1」になったときには、対応する出力ポート(ポート1〜ポート4)に制御コマンドが送出される。すなわち、1つの共通モジュールで、各サブ基板の制御手段に対する制御コマンドの送出処理を行うことができる。
また、このように、シフト処理のみによってどの各サブ基板の制御手段に対して制御コマンドを出力すべきかが判定されるので、いずれの制御手段に対して制御コマンドを出力すべきか判定する処理が簡略化されている。
次に、CPU56は、シフト処理開始前のINTデータが格納されている引数1の内容を読み出し(ステップS360)、読み出したデータをポート0に出力する(ステップS361)。この実施の形態では、ポート0のアドレスは、各制御信号についてのINT信号を出力するためのポートであり、ポート0のビット0〜4が、それぞれ、払出制御INT信号、表示制御INT信号、ランプ制御INT信号、音制御INT信号を出力するためのポートである。INTデータでは、ステップS351〜S359の処理で出力された制御コマンド(払出制御コマンド、表示制御コマンド、ランプ制御コマンド、音制御コマンド)に応じたINT信号の出力ビットに対応したビットが「1」になっている。従って、ポート1〜ポート4のいずれかに出力された制御コマンド(払出制御コマンド、表示制御コマンド、ランプ制御コマンド、音制御コマンド)に対応したINT信号がオフ状態(ローレベル)になる。
次いで、CPU56は、ウェイトカウンタに所定値を設定し(ステップS362)、その値が0になるまで1ずつ減算する(ステップS363,S364)。ウェイトカウンタの値が0になると、クリアデータ(00)を設定して(ステップS365)、そのデータをポート0に出力する(ステップS366)。よって、INT信号はオフ状態になる。そして、ウェイトカウンタに所定値を設定し(ステップS362)、その値が0になるまで1ずつ減算する(ステップS368,S369)。
以上のようにして、制御コマンドの1バイト目のMODEデータが送出される。そこで、CPU56は、図41に示すステップS336で、コマンド送信テーブルを指す値を1加算する。従って、3バイト目のコマンドデータ2の領域が指定される。CPU56は、指し示されたコマンドデータ2の内容を引数2にロードする(ステップS337)。また、コマンドデータ2のビット7(ワークエリア参照ビット)の値が「0」であるか否か確認する(ステップS339)。0でなければ、コマンド拡張データアドレステーブルの先頭アドレスをポインタにセットし(ステップS339)、そのポインタにコマンドデータ2のビット6〜ビット0の値を加算してアドレスを算出する(ステップS340)。そして、そのアドレスが指すエリアのデータを引数2にロードする(ステップS341)。
コマンド拡張データアドレステーブルには、各サブ基板の制御手段に送出されうるEXTデータが順次設定されている。よって、以上の処理によって、ワークエリア参照ビットの値が「1」であれば、コマンドデータ2の内容に応じたコマンド拡張データアドレステーブル内のEXTデータが引数2にロードされ、ワークエリア参照ビットの値が「0」であれば、コマンドデータ2の内容がそのまま引数2にロードされる。なお、コマンド拡張データアドレステーブルからEXTデータが読み出される場合でも、そのデータのビット7は「0」である。
次に、CPU56は、コマンド送信処理ルーチンをコールする(ステップS342)。従って、MODEデータの送出の場合と同様のタイミングでEXTデータが送出される。その後、CPU56は、コマンド送信テーブルのアドレスを復帰し(ステップS343)、コマンド送信テーブルを指す読出ポインタの値を更新する(ステップS344)。そして、さらに送出すべきコマンドがあれば(ステップS345)、ステップS331に戻る。
以上のようにして、2バイト構成の制御コマンド(払出制御コマンド、表示制御コマンド、ランプ制御コマンド、音制御コマンド)が、対応する各サブ基板の制御手段に送信される。各サブ基板の制御手段ではINT信号のレベル変化を検出すると制御コマンドの取り込み処理を開始するのであるが、いずれの制御手段についても、取り込み処理が完了する前に遊技制御手段からの新たな信号が信号線に出力されることはない。すなわち、表示制御手段等の各制御手段において、確実なコマンド受信処理が行われる。なお、INT信号の極性を図33に示された場合と逆にしてもよい。
図43〜図45は、電源基板910からの電源断信号に応じて実行されるマスク不能割込処理(電力供給停止時処理)の処理例を示すフローチャートである。CPU56のXNMI端子にハイレベルからローレベルへの変化が生じてマスク不能割込が発生すると、CPU56に内蔵されている割込制御機構は、マスク不能割込発生時に実行されていたプログラムのアドレス(具体的には実行完了後の次のアドレス)を、スタックポインタが指すスタック領域に退避させるとともに、スタックポインタの値を増やす。すなわち、スタックポインタの値がスタック領域の次のアドレスを指すように更新する。なお、この実施の形態では、XNMI端子にハイレベルからローレベルへの変化が生ずると割込が生ずるが、他の態様のレベル変化に応じて割込が発生するマイクロコンピュータを用いても、以下のような制御を実行することができる。
電力供給停止時処理において、CPU56は、AFレジスタ(アキュミュレータとフラグのレジスタ)をバックアップRAM領域のスタック領域に退避させる(ステップS451)。また、割込フラグをパリティフラグにコピーする(ステップS452)。パリティフラグはバックアップRAM領域に形成されている。割込フラグは、割込許可状態であるのか割込禁止状態であるのかを示すフラグであって、CPU56が内蔵する制御レジスタ中にある。割込フラグのオン状態が割込禁止状態であることを示す。上述したように、パリティフラグは遊技状態復旧処理で参照される。そして、遊技状態復旧処理において、パリティフラグがオン状態であれば、割込許可状態には設定されない。
また、BCレジスタ、DEレジスタ、HLレジスタ、IXレジスタおよびスタックポインタをバックアップRAM領域のスタック領域に退避させる(ステップS454〜S458)。なお、ステップS451〜S458の処理は、電源監視手段の検出信号に応じて制御状態を復旧させるために必要なデータを変動データ記憶手段に保存させるためのデータ退避処理に相当する。
次いで、この実施の形態では、所定期間(入力監視時間の間)、賞球カウントスイッチ301Aの検出信号をチェックする。そして、賞球カウントスイッチ301Aがオンしたら総賞球数バッファの内容を1減らす。総賞球数バッファとは、RAM55における未払出賞球個数を記憶する領域であり、入賞に応じて払出制御基板37に対して賞球個数を示す払出制御コマンドを送信すると加算され、賞球カウントスイッチ301Aの検出信号にもとづいて減算されるデータが設定されている。
なお、この実施の形態では、入力監視時間を計測するために、入力監視時間計測用カウンタが用いられる。入力監視時間計測用カウンタの値は、初期値mから、以下に説明するスイッチ検出処理のループ(S461から始まってS461に戻るループ)が1回実行される毎に−1され、その値が0になると、入力監視時間が終了したとする。検出処理のループでは、例外はあるがほぼ一定の処理が行われるので、ループの1周に要する時間のm倍の時間が、ほぼ入力監視時間に相当する。
入力監視時間を計測するために、CPU56の内蔵タイマを用いてもよい。すなわち、スイッチ検出処理開始時に、内蔵タイマに所定値(入力監視時間に相当)を設定しておく。そして、スイッチ検出処理のループが1回実行される毎に、内蔵タイマのカウント値をチェックする。そして、カウント値が0になったら、入力監視時間が終了したとする。内蔵タイマの値が0になったことを検出するために内蔵タイマによる割込を用いることもできるが、この段階では制御内容(RAMに格納されている各値など)を変化させないように、割込を用いず、内蔵タイマのカウント値を読み出してチェックするようなプログラム構成の方が好ましい。
また、入力監視時間は、遊技球が、球払出装置97から落下した時点から、賞球カウントスイッチ301Aに到達するまでの時間以上に設定される。球払出装置97から賞球カウントスイッチ301Aまでの距離をLとすると、その間の落下時間tは、t=√(2L/g)(g:重力加速度)になるので、入力監視時間は、それ以上に設定される。なお、図5に例示した球払出装置97を用いる場合には、Lは、スプロケット292の凹部から遊技球が落下する位置から賞球カウントスイッチ301Aの位置までの距離に相当する。以上のように、入力監視時間は、払出手段から遊技媒体が払い出されてから払出検出手段で検出されるまでの時間以上の時間に設定される
少なくとも、スイッチ検出処理が実行される入力監視時間では、賞球カウントスイッチ301Aが遊技球を検出できる状態でなければならない。従って、図13に示されたように、電源基板910におけるコンバータIC924の入力側に比較的大容量の補助駆動電源としてのコンデンサ923が接続されている。よって、遊技機に対する電力供給停止時にも、ある程度の期間は+12V電源電圧がスイッチ駆動可能な範囲に維持され、賞球カウントスイッチ301Aが動作可能になる。その期間が、上記の入力監視処理が完了するまでの時間以上になるように、コンデンサの容量が決定される。
なお、入力ポートおよびCPU56も、コンバータIC924で作成される+5V電源で駆動されるので、電力供給停止時にも、比較的長い期間動作可能になっている。
ステップS461において、2ms計測用カウンタに2msの時間に相当する初期値nが設定される。そして、2ms計測用カウンタの値が0になるまで(ステップS462)、2ms計測用カウンタの値が−1される(ステップS463)。
2ms計測用カウンタの値が0になると、賞球カウントスイッチ301Aの検出信号の入力チェックが行われる。具体的には、入力ポート1に入力されているデータを入力する(ステップS464)。次いで、クリアデータ(00)をセットする(ステップS465)。また、ポート入力データ、この場合には入力ポート1からの入力データを「比較値」として設定する(ステップS466)。さらに、賞球カウントスイッチ301Aのためのスイッチタイマのアドレスをポインタにセットする(ステップS467)。
そして、ポインタ(スイッチタイマのアドレスが設定されている)が指すスイッチタイマをロードするとともに(ステップS468)、比較値を右(上位ビットから下位ビットへの方向)にシフトする(ステップS469)。比較値には入力ポート1のデータ設定されている。そして、この場合には、賞球カウントスイッチ301Aの検出信号がキャリーフラグに押し出される。
キャリーフラグの値が「1」であれば(ステップS470)、すなわち賞球カウントスイッチ301Aの検出信号がオン状態であれば、スイッチタイマの値を1加算する(ステップS471)。キャリーフラグの値が「0」であれば、すなわち賞球カウントスイッチ301Aの検出信号がオフ状態であれば、スイッチタイマにクリアデータをセットする(ステップS472)。すなわち、スイッチがオフ状態であれば、スイッチタイマの値が0に戻る。
そして、スイッチタイマの値が2になったときに(ステップS473)、総賞球数格納バッファの格納値を1減算するとともに(ステップS474)、賞球情報カウンタの値を+1する(ステップS475)。そして、賞球情報カウンタの値が10以上であれば(ステップS476)、賞球情報出力カウンタの値を+1するとともに(ステップS477)、賞球情報カウンタの値を−10する(ステップS478)。
次いで、入力監視時間計測用カウンタの値を−1し(ステップS479)、その値が0になっていなければステップS461に戻る。
以上の処理によって、入力監視時間内に賞球カウントスイッチ301Aがオンしたら、総賞球数格納バッファの値が−1される。バックアップRAMの内容を保存するための処理は、このようなスイッチ検出処理の後で行われるので、払出が完了した賞球について、必ず総賞球数格納バッファが−1される。従って、遊技球の払出に関して、保存される制御状態に矛盾が生じてしまうことが防止される。また、上記のスイッチ検出処理では、検出期間用カウンタを用いたタイマ処理が施されている。すなわち、2ms毎に賞球カウントスイッチ301Aの検出出力のチェックが行われ、2回連続してオン検出した場合に、賞球カウントスイッチ301Aが確実にオンしたと見なされる。従って、誤ってスイッチオン検出がなされてしまうことは防止される。また、スイッチ検出処理において、遊技機外部への賞球情報出力のための賞球情報出力回数カウンタの演算も行われるので、外部に出力される賞球情報と実際の払出賞球数とが食い違ってしまうようなこともない。
ここでは、電力供給停止時処理において入力監視時間(球払出装置97から落下した時点から、賞球カウントスイッチ301Aに到達するまでの時間以上の所定時間)だけ入力監視処理を実行したが、さらに、長時間にわたって入力監視処理を実行してもよい。例えば、電力供給が完全に停止するまで入力監視処理を継続してもよい。
なお、払出制御基板37に搭載されている払出制御手段も、電源断信号に応じて電力供給停止時処理を実行する。そして、電力供給停止時処理において早い段階で(少なくとも遊技制御手段における電力供給停止時処理おいて入力監視処理が開始される前の段階で)、払出モータ289の駆動を停止させている。
また、この実施の形態では、賞球カウントスイッチ301Aのみのスイッチ検出処理が行われたが、始動入賞口のスイッチや大入賞口に関連するV入賞スイッチ22やカウントスイッチについても同様のスイッチ検出処理を行ってもよい。また、他の入賞についても同様のスイッチ検出処理を行ってもよい。そのようなオンチェックも行う場合には、入賞口に遊技球が入賞した直後に停電が発生したような場合でも、その入賞が確実に検出され、保存される遊技状態に反映される。
入力監視時間が経過すると(ステップS480)、すなわち、入力監視時間計測用カウンタの値が0になると、バックアップあり指定値(この例では「55(H)」)をバックアップフラグにストアする(ステップS481)。バックアップフラグはバックアップRAM領域に形成されている。次いで、パリティデータを作成する(ステップS482〜S491)。すなわち、まず、クリアデータ(00)をチェックサムデータエリアにセットし(ステップS482)、チェックサム算出開始アドレスをポインタにセットする(ステップS483)。また、チェックサム算出回数をセットする(ステップS484)。
そして、チェックサムデータエリアの内容とポインタが指すRAM領域の内容との排他的論理和を演算する(ステップS485)。演算結果をチェックサムデータエリアにストアするとともに(ステップS486)、ポインタの値を1増やし(ステップS487)、チェックサム算出回数の値を1減算する(ステップS488)。ステップS485〜S488の処理が、チェックサム算出回数の値が0になるまで繰り返される(ステップS489)。
チェックサム算出回数の値が0になったら、CPU56は、チェックサムデータエリアの内容の各ビットの値を反転する(ステップS490)。そして、反転後のデータをチェックサムデータエリアにストアする(ステップS491)。このデータが、電源投入時にチェックされるパリティデータとなる。次いで、RAMアクセスレジスタにアクセス禁止値を設定する(ステップS492)。以後、内蔵RAM55のアクセスができなくなる。
さらに、CPU56は、クリアデータ(00)を適当なレジスタにセットし(ステップS493)、処理数(この例では「7」)を別のレジスタにセットする(ステップS494)。また、出力ポート0のアドレスをIOポインタに設定する(ステップS495)。IOポインタとして、さらに別のレジスタが用いられる。
そして、IOポインタが指すアドレスにクリアデータをセットするとともに(ステップS496)、IOポインタの値を1増やし(ステップS497)、処理数の値を1減算する(ステップS498)。ステップS496〜S498の処理が、処理数の値が0になるまで繰り返される。その結果、全ての出力ポート0〜6(図16および図17参照)にクリアデータが設定される。図16および図17に示すように、この例では、「1」がオン状態であり、クリアデータである「00」が各出力ポートにセットされるので、全ての出力ポートがオフ状態になる。
そして、入力ポートに入力されている判定回路950からの判定信号を確認し判定信号がオン状態(例えばハイレベル)であれば(ステップS171)、不正報知コマンド(ランプ制御コマンドあるいは音制御コマンド、または双方)を送信するための処理を行う(ステップS172)。
なお、この段階では、RAMアクセス禁止状態に設定されているので、ランプ制御コマンドや音制御コマンドを送信するための処理では、CPU56は、例えば、レジスタに所定のデータ(ランプ制御コマンドや音制御コマンドを構成する2バイトのコマンドデータのうちの1バイト)をセットし、レジスタの値を直接出力ポートに出力する。また、INT信号のオン期間(図33参照)を作成するために、例えば、レジスタに所定値をセットし、0になるまで減算する処理を繰り返すことによって、その期間を作成する。そして、そのような処理を、不正報知コマンドを構成するMODEデータとEXTデータについて実行する。
その後、CPU56は、待機状態(ループ状態)に入る。従って、システムリセットされるまで、何もしない状態になる。
この実施の形態では、遊技状態を保存するための処理(この例では、チェックサムの生成およびRAMアクセス防止)が実行された後、各出力ポートは直ちにオフ状態になる。なお、この実施の形態では、遊技制御処理において用いられるデータが格納されるRAM領域は全て電源バックアップされている。従って、その内容が正しく保存されているか否かを示すチェックサムの生成処理、およびその内容を書き換えないようにするためのRAMアクセス防止処理が、遊技状態を保存するための処理に相当する。
遊技状態を保存するための処理が実行された後、直ちに各出力ポートがオフ状態になるので、保存される遊技状態と整合しない状況が発生することは確実に防止される。図43〜図45に示す処理が実行されるときには、遊技機に対する電源供給が停止するので、電気部品に印加される電圧が低下していく。そして、印加電圧が駆動可能電圧を下回った時点で電気部品の駆動は停止する。従って、遊技機に対する電力供給停止時には、短時間の遅れはあるものの電気部品の駆動は停止する。
ところが、この実施の形態のような出力ポートに対するクリア処理を行わないと、遊技状態が保存された後、電力供給が停止するのを遊技制御手段が待っている間に可変入賞球装置15にさらに入賞してしまうこともある。そのような場合、電力供給再開時には保存されている遊技状態が復帰されるので保存時の始動入賞記憶数が始動記憶表示器18に表示される。すると、遊技者から見ると、始動入賞の保留記憶値が少なくなってしまっているように見え、トラブルが発生しかねない。しかし、この実施の形態では、そのようなトラブルが生ずる可能がなくなる。
また、遊技状態が保存された後に、可変入賞球装置としての大入賞口への入賞が発生する場合もあり得る。そのような場合、遊技者が認識している入賞個数と、電力供給復帰時に、保存されていた遊技状態にもとづいて表示部に表示される入賞個数とが食い違ってトラブルが生ずる可能性もある。しかし、この実施の形態では、そのようなトラブルが生ずる可能がなくなる。
また、この実施の形態では、電源断信号に応じて起動される処理の最初にレジスタの保存処理が行われたが、スイッチ検出処理においてレジスタを使用しない場合には、スイッチ検出処理の実行後に、すなわち、バックアップフラグの設定とチェックサムの算出の処理の前にレジスタ保存処理を行うことができる。その場合には、レジスタ保存処理、バックアップフラグ設定処理、チェックサム算出処理および出力ポートのオフ設定処理を電力供給停止時処理と見なすことができる。さらに、スイッチ検出処理において幾つかのレジスタを使用する場合であっても、使用しないレジスタについては、バックアップフラグの設定とチェックサムの算出の処理の前にレジスタ保存処理を行うことができる。
なお、出力ポートのクリア処理を、スイッチ検出処理の実行前(ステップS460の前)に行ってもよい。電力供給停止時処理の実行中では、CPU56やスイッチ類はコンデンサの充電電力等で駆動されることになる。出力ポートのクリア処理をスイッチ検出処理の実行前に行った場合には、大入賞口や可変入賞装置等がソレノイド等の電気部品で駆動されるように構成されていても、それらが駆動されることはなく、コンデンサの充電電力等を電力供給停止時処理のために効果的に使用することができる。
ただし、電源が断することが検出された後にV入賞スイッチ22を検出する場合には、ソレノイド21(大入賞口をV入賞スイッチに誘導するための部材を動作させるもの)の出力ポートについては、スイッチ検出処理の実行後にクリアする。そのようにすれば、継続権発生の条件であるV入賞をしていない状態で停電が発生した場合、停電発生直前に大入賞口に入った遊技球をV入賞スイッチ22の側に誘導することができる。従って、不当な継続権の消滅を防止することができる。この場合、電源が保持される期間は、大入賞口に入賞した遊技球がV入賞スイッチ22に到達するまでの時間以上の期間である。なお、ラッチ式のソレノイドを用いた場合には、出力ポートのクリア処理は不要である。
また、出力ポートのクリアによって大入賞口が閉じた場合でも、大入賞口内に遊技球があることも考えられるので、電源断信号に応じて実行されるスイッチ検出処理において、カウントスイッチ23の検出も行うことが望ましい。上記の出力ポートのクリア処理をスイッチ検出処理前に行ってもよいこと、および、上記の例外的な処理については、第1種パチンコ遊技機においてのみならず、第2種パチンコ遊技機や第3種パチンコ遊技機についても同様である。
なお、この実施の形態では、NMIに応じて電力供給停止時処理が実行されたが、電源断信号をCPU56のマスク可能端子に接続し、マスク可能割込処理によって電力供給停止時処理を実行してもよい。また、電源断信号を入力ポートに入力し、入力ポートのチェック結果に応じて電力供給停止時処理を実行してもよい。
図46は、この実施の形態におけるRAM領域のアドレスマップを示す説明図である。図46に示すように、RAM領域の先頭はバックアップフラグの領域に割り当てられている。そして、最後部にチェックサムバッファの領域が割り当てられている。なお、バックアップフラグからチェックサムバッファまでの領域が作業領域に相当し、チェックサムバッファ以降の領域にスタック領域が設定されている。また、この実施の形態では、RAM領域の全てが電源バックアップされている。
図47は、チェックサム作成方法の一例を説明するための説明図である。ただし、図47に示す例では、簡単のために、バックアップRAM領域のデータのサイズを3バイトとする。電源電圧低下にもとづく電力供給停止時処理において、図47に示すように、チェックサムデータとして初期データ(この例では00(H))が設定される。次に、「00(H)」と「F0(H)」の排他的論理和がとられ、その結果と「16(H)」の排他的論理和がとられる。さらに、その結果と「DF(H)」の排他的論理和がとられる。そして、その結果(この例では「39(H)」)を論理反転して得られた値(この例では「C6(H)」)がチェックサムバッファに設定される。
なお、図47では、説明を容易にするために、論理反転前のデータ「39(H)」がチェックサムバッファに格納されている様子が示されている。なお、初期データとしての00(H)はステップS460で設定されるチェックサムデータに対するクリアデータに応じた値であるが、実際には、00(H)との排他的論理和は演算前と後とで値が変わらないので、00(H)との排他的論理和演算を行わなくてもよい。
この実施の形態では、チェックサムバッファは、バックアップRAM領域(変動データ記憶手段)の最後のアドレスに格納されている。従って、例えば、チェックサム作成方法のプログラムに誤りがないかどうか確認する際に、容易にその確認を行うことができる。RAM領域の最終アドレスの値が正しいか否か確認すればよいからである。また、この実施の形態では、チェックサム算出開始アドレスはバックアップフラグが設定されるアドレスであり、チェックサム算出最終アドレスは賞球制御用フラグ・バッファのうちの最後のアドレスである(図46参照)。従って、賞球制御用フラグ・バッファの後、すなわち、バックアップRAM領域の最後のアドレスをチェックサムバッファの領域にすれば、RAM領域において無駄が生ずることはない。
なお、確認のしやすさやRAM領域の無駄防止を考慮すると、バックアップRAM領域の最初のアドレスをチェックサムバッファの領域にしてもよい。
また、遊技機への電力供給開始時にはパリティチェックOKか否かの判断が行われるが(図19におけるステップS9)、その判断では、電力供給停止時処理におけるパリティデータの作成処理(ステップS482〜S491)と同様の処理が行われ、処理結果すなわち演算結果がチェックサムバッファの内容と一致したらパリティチェックOKと判定される。
なお、ここでは、バックアップRAM領域の最後または最初のアドレスをチェックサムバッファの領域にしたが、バックアップRAM領域の中途の領域にチェックサムバッファの領域を割り当ててもよい。また、この実施の形態では、作業領域のデータにもとづいてチェックサムが生成されているが、スタック領域のデータも含めてチェックサムを生成するようにしてもよい。
さらに、この実施の形態では、電力供給開始時に、電力供給停止時処理における処理と同じ処理によってチェックサムを生成し、生成されたチェックサムとバックアップRAMに保存されていたチェックサムとを比較したが、他の方法を用いてもよい。例えば、バックアップRAMに保存されていたチェックサムを初期値として、電力供給停止時処理において演算対象となった各データについて演算を行い、演算結果が所定値(例えば00(H))と一致したらパリティチェックOKと判定するようにしてもよい。また、パリティチェックのためのチェックデータはチェックサムに限られず、バックアップRAMの内容が正当に保存されているかを判定できるものであれば、他のチェックデータを用いてもよい。
図48は、遊技機への電力供給停止時の電源電圧低下やNMI信号(=電源断信号:電力供給停止時信号)の様子を示すタイミング図である。遊技機に対する電力供給が停止すると、最も高い直流電源電圧であるVSLの電圧値は徐々に低下する。そして、この例では、+22Vにまで低下すると、電源基板910に搭載されている電源監視用IC902から電源断信号が出力される(ローレベルになる)。
電源断信号は、電気部品制御基板(この実施の形態では主基板31および払出制御基板37)に導入され、CPU56および払出制御用CPU371のNMI端子に入力される。CPU56および払出制御用CPU371は、NMI処理によって、所定の電力供給停止時処理を実行する。
VSLの電圧値がさらに低下して所定値(この例では+9V)にまで低下すると、主基板31や払出制御基板37に搭載されているシステムリセット回路の出力がローレベルになり、CPU56および払出制御用CPU371がシステムリセット状態になる。なお、CPU56および払出制御用CPU371は、システムリセット状態とされる前に、電力供給停止時処理を完了している。
VSLの電圧値がさらに低下してVcc(各種回路を駆動するための+5V)を生成することが可能な電圧を下回ると、各基板において各回路が動作できない状態となる。しかし、少なくとも主基板31や払出制御基板37では、電力供給停止時処理が実行され、CPU56および払出制御用CPU371がシステムリセット状態とされている。
以上のように、この実施の形態では、電源監視回路は、遊技機で使用される直流電圧のうちで最も高い電源VSLの電圧を監視して、その電源の電圧が所定値を下回ったら電圧低下信号(電源断検出信号)を発生する。図48に示すように、電源断信号が出力されるタイミングでは、IC駆動電圧は、まだ各種回路素子を十分駆動できる電圧値になっている。従って、IC駆動電圧で動作する主基板31のCPU56が所定の電力供給停止時処理を行うための動作時間が確保されている。
なお、ここでは、電源監視回路は、遊技機で使用される直流電圧のうちで最も高い電源VSLの電圧を監視したが、電源断信号を発生するタイミングが、IC駆動電圧で動作する電気部品制御手段が所定の電力供給停止時処理を行うための動作時間が確保されるようなタイミングであれば、監視対象電圧は、最も高い電源VSLの電圧でなくてもよい。すなわち、少なくともIC駆動電圧よりも高い電圧を監視すれば、電気部品制御手段が所定の電力供給停止時処理を行うための動作時間が確保されるようなタイミングで電源断信号を発生することができる。
その場合、上述したように、監視対象電圧は、電力供給停止時のスイッチオン誤検出の防止も期待できる電圧であることが好ましい。すなわち、遊技機の各種スイッチに供給される電圧(スイッチ電圧)が+12Vであることから、+12V電源電圧が落ち始める以前の段階で、電圧低下を検出できることが好ましい。よって、少なくともスイッチ電圧よりも高い電圧を監視することが好ましい。
止する。
次に、表示制御用CPU101を含む表示制御手段について説明する。図49は、表示制御用CPU101が実行するメイン処理を示すフローチャートである。メイン処理では、まず、RAM領域のクリアや各種初期値の設定、また表示制御の起動間隔を決めるための2msタイマの初期設定等を行うための初期化処理が行われる(ステップS701)。その後、この実施の形態では、表示制御用CPU101は、タイマ割込フラグの監視(ステップS703)の確認を行うループ処理に移行する。なお、ループ内では所定の乱数を発生するためのカウンタを更新する処理も行われる(ステップS702)。そして、図50に示すように、タイマ割込が発生すると、表示制御用CPU101は、タイマ割込フラグをセットする(ステップS715)。メイン処理において、タイマ割込フラグがセットされていたら、表示制御用CPU101は、そのフラグをクリアし(ステップS704)、以下の可変表示制御処理を実行する。
なお、この実施の形態では、タイマ割込は2ms毎にかかるとする。すなわち、可変表示制御処理は、2ms毎に起動される。また、この実施の形態では、タイマ割込処理ではフラグセットのみがなされ、具体的な可変表示制御処理はメイン処理において実行されるが、タイマ割込処理で可変表示制御処理を実行してもよい。
可変表示制御処理において、表示制御用CPU101は、まず、受信した表示制御コマンドを解析する(コマンド解析実行処理:ステップS705)。次いで、初期化報知コマンドを受信しているか否か確認する(ステップS706)。具体的には、初期化報知コマンドに対応するコマンド受信フラグがセットされているか否か確認する。初期化報知コマンドを受信していれば、初期化処理の実行を報知するための初期化報知を開始する(ステップS707)。この例では、初期化報知として、可変表示装置9に、例えば「初期化処理実行中!」などの文字や図形などによって構成される初期化報知画面を表示する。初期化報知画面は、初期化処理の実行を報知するための画面であり、初期化報知画面を示すデータは、例えばキャラクタROM86に格納されている。また、表示制御用CPU101は、初期化報知中フラグをオンするとともに(ステップS708)、初期化報知期間タイマを設定する(ステップS709)。初期化報知中フラグは、初期化報知の実行中であるか否かを確認するためのフラグであり、表示制御基板80が備えるRAMに保存されている。初期化報知期間タイマは、初期化報知の実行期間を計測するためのタイマである。初期化報知の実行期間は、報知を確実とするために比較的長い期間(例えば5分)が設定される。
次いで、表示制御用CPU101は、初期化報知中フラグがオン状態であるか否か確認する(ステップS710)。初期化報知中フラグがオン状態であれば、初期化報知期間タイマがタイムアウトしているか否か確認し(ステップS711)、タイムアウトしていれば、初期化報知中フラグをオフするとともに(ステップS712)、可変表示装置9での初期化報知画面の表示を終了する(ステップS713)。
さらに、表示制御用CPU101は、表示制御プロセス処理を行う(ステップS714)。表示制御プロセス処理では、制御状態に応じた各プロセスのうち、現在の制御状態に対応したプロセスを選択して実行する。その後、ステップS702に戻る。
次に、主基板31からの表示制御コマンド受信処理について説明する。図51は、主基板31から受信した表示制御コマンドを格納するためのコマンド受信バッファの一構成例を示す説明図である。この例では、2バイト構成の表示制御コマンドを6個格納可能なリングバッファ形式のコマンド受信バッファが用いられる。従って、コマンド受信バッファは、受信コマンドバッファ1〜12の12バイトの領域で構成される。そして、受信したコマンドをどの領域に格納するのかを示すコマンド受信個数カウンタが用いられる。コマンド受信個数カウンタは、0〜11の値をとる。なお、必ずしもリングバッファ形式でなくてもよく、例えば、図柄指定コマンド格納領域を3個(2×3=6バイトのコマンド受信バッファ)、それ以外の変動パターン指定などのコマンド格納領域を1個(2×1=2バイトのコマンド受信バッファ)のようなバッファ構成としてもよい。音制御手段や、ランプ制御手段においても同様に、リングバッファ形式でないバッファ形式としてもよい。この場合、表示制御手段、音制御手段、ランプ制御手段は、変動パターンなどの格納領域に格納される最新のコマンドにもとづいて制御される。これにより、主基板31からの指示に迅速に対応することができる。
図52は、割込処理による表示制御コマンド受信処理を示すフローチャートである。主基板31からの表示制御用のINT信号は表示制御用CPU101の割込端子に入力されている。例えば、主基板31からのINT信号がオン状態になると、表示制御用CPU101において割込がかかる。そして、図52に示す表示制御コマンドの受信処理が開始される。
表示制御コマンドの受信処理において、表示制御用CPU101は、まず、各レジスタをスタックに退避する(ステップS670)。なお、割込が発生すると表示制御用CPU101は自動的に割込禁止状態に設定するが、自動的に割込禁止状態にならないCPUを用いている場合には、ステップS670の処理の実行前に割込禁止命令(DI命令)を発行することが好ましい。次いで、表示制御コマンドデータの入力に割り当てられている入力ポートからデータを読み込む(ステップS671)。そして、2バイト構成の表示制御コマンドのうちの1バイト目であるか否か確認する(ステップS672)。
1バイト目であるか否かは、受信したコマンドの先頭ビットが「1」であるか否かによって確認される。先頭ビットが「1」であるのは、2バイト構成である表示制御コマンドのうちのMODEデータ(1バイト目)のはずである(図32参照)。そこで、表示制御用CPU101は、先頭ビットが「1」であれば、有効な1バイト目を受信したとして、受信したコマンドを受信バッファ領域におけるコマンド受信個数カウンタが示す受信コマンドバッファに格納する(ステップS673)。
表示制御コマンドのうちの1バイト目でなければ、1バイト目を既に受信したか否か確認する(ステップS674)。既に受信したか否かは、受信バッファ(受信コマンドバッファ)に有効なデータが設定されているか否かによって確認される。
1バイト目を既に受信している場合には、受信した1バイトのうちの先頭ビットが「0」であるか否か確認する。そして、先頭ビットが「0」であれば、有効な2バイト目を受信したとして、受信したコマンドを、受信バッファ領域におけるコマンド受信個数カウンタ+1が示す受信コマンドバッファに格納する(ステップS675)。先頭ビットが「0」であるのは、2バイト構成である表示制御コマンドのうちのEXTデータ(2バイト目)のはずである(図32参照)。なお、ステップS674における確認結果が1バイト目を既に受信したである場合には、2バイト目として受信したデータのうちの先頭ビットが「0」でなければ処理を終了する。
ステップS675において、2バイト目のコマンドデータを格納すると、コマンド受信個数カウンタに2を加算する(ステップS676)。そして、コマンド受信カウンタが12以上であるか否か確認し(ステップS677)、12以上であればコマンド受信個数カウンタをクリアする(ステップS678)。その後、退避されていたレジスタを復帰し(ステップS679)、割込許可に設定する(ステップS680)。
表示制御コマンドは2バイト構成であって、1バイト目(MODE)と2バイト目(EXT)とは、受信側で直ちに区別可能に構成されている。すなわち、先頭ビットによって、MODEとしてのデータを受信したのかEXTとしてのデータを受信したのかを、受信側において直ちに検出できる。よって、上述したように、適正なデータを受信したのか否かを容易に判定することができる。なお、このことは、払出制御コマンド、ランプ制御コマンドおよび音制御コマンドについても同様である。
図53は、コマンド解析処理(ステップS705)の具体例を示すフローチャートである。主基板31から受信された表示制御コマンドは受信コマンドバッファに格納されるが、コマンド解析処理では、受信コマンドバッファに格納されているコマンドの内容が確認される。
コマンド解析処理において、表示制御用CPU101は、まず、コマンド受信バッファに受信コマンドが格納されているか否か確認する(ステップS681)。格納されているか否かは、コマンド受信カウンタの値と読出ポインタとを比較することによって判定される。両者が一致している場合が、受信コマンドが格納されていない場合である。コマンド受信バッファに受信コマンドが格納されている場合には、表示制御用CPU101は、初期化処理中フラグがオン状態であるか確認する(ステップS682)。初期化処理中フラグがオン状態であれば、コマンド受信バッファに格納されている受信コマンドをクリアする(ステップS683)。すなわち、表示制御用CPU101は、初期化報知の実行中には、受信コマンドにもとづく処理を実行しない。なお、受信コマンドをクリアしたら読出ポインタの値を+1しておく。また、初期化処理中フラグがオフ状態であれば、表示制御用CPU101は、コマンド受信バッファから受信コマンドを読み出す(ステップS684)。なお、読み出したら読出ポインタの値を+1しておく。
読み出した受信コマンドが左図柄指定コマンドであれば(ステップS685)、そのコマンドのEXTデータを左停止図柄格納エリアに格納し(ステップS686)、対応する有効フラグをセットする(ステップS687)。なお、左図柄指定コマンドであるか否かは、2バイトの表示制御コマンドのうちの1バイト目(MODEデータ)によって直ちに認識できる。
読み出した受信コマンドが中図柄指定コマンドであれば(ステップS688)、表示制御用CPU101は、そのコマンドのEXTデータを中停止図柄格納エリアに格納し(ステップS689)、対応する有効フラグをセットする(ステップS690)。読み出した受信コマンドが右図柄指定コマンドであれば(ステップS691)、そのコマンドのEXTデータを右停止図柄格納エリアに格納し(ステップS692)、対応する有効フラグをセットする(ステップS693)。なお、左中右停止図柄格納エリアは、表示制御基板80が備える例えばRAMに設けられている。
読み出した受信コマンドが変動パターンコマンドであれば(ステップS694)、表示制御用CPU101は、そのコマンドのEXTデータを変動パターン格納エリアに格納し(ステップS695)、変動パターン受信フラグをセットする(ステップS696)。なお、変動パターン格納エリアは、表示制御基板80が備える例えばRAMに設けられている。
読み出した受信コマンドが初期化報知コマンドであれば(ステップS697)、表示制御用CPU101は、初期化報知受信フラグをセットする(ステップS698)。なお、この実施の形態では、初期化報知コマンドとして、大当り開始時表示コマンドを用いているため、受信コマンドが初期化報知コマンドとして送信されてきたコマンドであるか否かを確認する必要がある。この場合、例えば、遊技機への電力供給が開始されたあとであって、変動パターンコマンドを受信する前に、大当り開始時表示コマンドを受信した場合には、初期化報知コマンドを受信したものと判定するようにすればよい。なお、遊技機への電力供給が開始されたあとの所定期間が経過する前に大当り開始時表示コマンドを受信した場合に初期化報知コマンドを受信したものとするなど、他の方法によって確認するようにしてもよい。
そして、ステップS684で読み出した受信コマンドがその他の表示制御コマンドである場合には、受信コマンドに対応するフラグをセットする(ステップS699)。
以上説明したように、初期化処理を実行する場合には、可変表示装置9で初期化報知を行う構成としたので、遊技制御手段に不正に信号を送り込むような不正行為が行われても、そのような不正行為を容易に発見することができるとともに、不正行為者が報知に気付いて直ちに離席したような場合でも、再度の不正行為を実行しづらくするという効果がある。初期化処理は、遊技店の営業中において、停電からの復旧時でもない限り実行されることは考えにくい。それにもかかわらず、初期化処理が実行されているということは、スタックオーバーフローを発生させたり遊技制御手段にリセット信号を入力させるなどの不正行為によってシステムリセットされた可能性が高い。従って、停電復旧時でも遊技店員による初期化操作がなされたわけでもないのに、遊技店の営業時間中に初期化報知がなされている場合には、不正行為(RAMをクリアさせて初期状態とするなどの行為)が行われたものと判断することができ、その後の不正行為(大当りを発生させるなどの行為)を未然に防ぐことができる。
また、上述したように、遊技制御手段(CPU56)が、初期化報知を行うことを示す初期化報知コマンドを表示制御手段(表示制御用CPU101)に送信し、表示制御手段が初期化報知のための処理を実行するように構成したので、遊技制御手段における初期化報知を行うための処理負担が軽減される。
また、上述したように、初期化報知を所定期間(初期化報知期間タイマに設定される期間であって、例えば5分などのあらかじめ定められた期間)継続的に実行する構成としたので、不正行為の発見を容易とすることができる。
また、上述したように、表示制御手段が、初期化報知の実行中に新たにコマンドを受信した場合でも、新たに受信したコマンドにもとづく制御を実行しない構成としたので、初期化報知を優先的に行うことができ、たとえ不正にコマンドが送信されたとしても、そのコマンドにもとづく処理が実行されず初期化報知が継続されるので、不正に送信されたコマンドにもとづいて報知が停止されてしまうことを防止することができる。
また、上述したように、初期化報知の指定を行う初期化報知コマンドとして、大当り開始時表示コマンドを用いる構成としたので、初期化報知を妨害するような不正行為が行われても、その不正行為を容易に発見することができる。すなわち、初期化報知コマンドを不正にマスクして、初期化報知コマンドによる指定を不正に不能とした場合には、大当り開始時表示コマンドも同時にマスクされたことになるので、大当り遊技が開始されたときに大当り開始時表示がなされないことになる。このように、初期化報知コマンドを不正にマスクした場合には、通常の遊技に影響を及ぼすことになる。従って、初期化報知コマンドによる指定を不正に不能としたことを容易に発見することができる。
なお、初期化報知の指定を行う初期化報知コマンドとして、他の既存のコマンドを用いる構成としてもよい。その場合にも、初期化報知コマンドを不正にマスクした場合には、通常の遊技に影響を及ぼすことになるので、不正行為を容易に発見することができる。この場合、初期化報知コマンドとして、大当り遊技に関するコマンド(例えば、大入賞口開放時表示コマンド、大入賞口開放時表示コマンド、大当り終了表示コマンドなど)などの比較的目立つ演出を指定するコマンドを用いるようにすれば、不正行為をより容易に発見することができる。
また、初期化報知の指定を行う初期化報知コマンドとして、他の既存のコマンドとは異なる専用のコマンドを用いる構成としてもよい。このように構成すれば、初期化報知コマンドを受信した場合に、表示制御手段が、共通に用いられている他のコマンドとして送信されたのであるか初期化報知の指定を行うコマンドとして送信されてきたのかを確認することなく、初期化報知の指定を行うコマンドであることを直ちに把握することができるようになる。
また、上述したように、遊技制御手段(CPU56)が、初期化処理中であることを示す初期化信号を遊技機外部に出力する構成としたので、遊技店側などにおいて初期化処理中であることを認識可能とすることができる。よって、実際には電力供給が停止していないにも関わらず初期化処理中であることを示す信号が遊技機から出力された場合には不正行為がなされたと判断することができ、不正行為者が不正行為を行った遊技機から離れた場所で容易に不正行為を発見することができるようになる。
なお、遊技制御手段(CPU56)が、電力供給停止時処理中であることを示す信号を遊技機外部に出力するようにしてもよい。例えば、情報出力信号としてホールコンピュータ等に出力する。電力供給停止時処理中であることを示す信号をホールコンピュータ等に出力するようにした場合には、遊技店側で電力供給停止時処理中であることが認識可能になる。よって、実際には電力供給が停止していないにも関わらず電力供給停止時処理中であることを示す信号が遊技機から出力された場合には不正行為がなされたと判断することができる。
このように、遊技店側で遊技機が初期化処理中または電力供給停止時処理中であることを認識可能に構成した場合には、遊技店側において、不正行為が発覚していることを不正行為者が気付かないうちに、不正行為を行っている者を特定することができる。
なお、上述した実施の形態では、可変表示装置9で初期化報知を行うことによって初期化処理の実行を報知する構成としていたが、可変表示装置9以外の表示手段(例えば、初期化報知用の専用の表示装置)によって報知する構成としてもよい。また、初期化報知を、例えばランプや音などによって報知する構成としてもよい。
次に、初期化報知をランプやLEDなどの発光体によって報知する構成について説明する。ここでは、電気部品制御手段の一例であり、ランプ制御基板35に搭載されたランプ制御用CPU351を含む発光体制御手段としてのランプ制御手段の動作を説明する。
図54は、ランプ制御用CPU351が実行するメイン処理を示すフローチャートである。ランプ制御用CPU351は、メイン処理において、まず、レジスタ、ワークエリアを含むRAMおよび出力ポート等を初期化する初期化処理を実行する(ステップS441)。その後、この実施の形態では、ランプ制御用CPU351は、タイマ割込フラグの監視(ステップS443)の確認を行うループ処理に移行する。なお、ループ内では所定の乱数を発生するためのカウンタを更新する処理も行われる(ステップS442)。そして、図55に示すように、タイマ割込が発生すると、ランプ制御用CPU351は、タイマ割込フラグをセットする(ステップS457)。メイン処理において、タイマ割込フラグがセットされていたら、ランプ制御用CPU351は、そのフラグをクリアし(ステップS444)、以下のランプ制御処理を実行する。
なお、この実施の形態では、タイマ割込は2ms毎にかかるとする。すなわち、ランプ制御処理は、2ms毎に起動される。また、この実施の形態では、タイマ割込処理ではフラグセットのみがなされ、具体的なランプ制御処理はメイン処理において実行されるが、タイマ割込処理でランプ制御処理を実行してもよい。
ランプ制御処理において、ランプ制御用CPU351は、まず、主基板31からランプ制御コマンドを受信したか否かの確認を行う(ステップS445:コマンド認識処理)。次いで、初期化報知コマンドを受信しているか否か確認する(ステップS446)。具体的には、初期化報知コマンドに対応するコマンド受信フラグがセットされているか否か確認する。ここでは、初期化報知コマンドとして、例えば大当り開始時ランプ指定コマンド(図35参照)が用いられる。初期化報知コマンドを受信していれば、初期化処理の実行を報知するための初期化報知を開始する(ステップS447)。この例では、初期化報知として、ランプ制御基板35が制御する発光体を点灯させたり点滅させたりする処理を行う。また、ランプ制御用CPU351は、初期化報知中フラグをオンするとともに(ステップS448)、初期化報知期間タイマを設定する(ステップS449)。初期化報知中フラグは、初期化報知の実行中であるか否かを確認するためのフラグであり、ランプ制御基板35が備えるRAMに保存されている。初期化報知期間タイマは、初期化報知の実行期間を計測するためのタイマである。初期化報知の実行期間は、報知を確実とするために比較的長い期間(例えば5分)が設定される。
次いで、ランプ制御用CPU351は、初期化報知中フラグがオン状態であるか否か確認する(ステップS450)。初期化報知中フラグがオン状態であれば、初期化報知期間タイマがタイムアウトしているか否か確認し(ステップS451)、タイムアウトしていれば、初期化報知中フラグをオフするとともに(ステップS452)、発光体を用いた初期化報知の実行を終了する(ステップS453)。
さらに、ランプ制御用CPU351は、受信したランプ制御コマンドに応じて、使用するランプデータを変更する等の処理であるコマンド実行処理を行う(ステップS454)。なお、主基板31からのランプ制御コマンドは、INT信号の入力に応じて起動される割込処理で取り込まれ、RAMに形成されている入力バッファに格納される。その後、この実施の形態では、ランプ制御用CPU351は、ランププロセス更新処理およびポート出力処理を行う(ステップS455,S456)。その後、ステップS442に戻る。
この実施の形態では、遊技の進行に応じて点滅制御されるランプ・LEDの点灯パターンは、ROMに格納されているランプデータに応じて制御される。ランプデータは、制御パターンの種類毎に用意されている(特別図柄の変動中のランプ・LEDによる演出パターンを指定する制御コマンドおよび遊技進行状況に応じて遊技制御手段から送出されるその他の遊技演出に関する制御コマンド毎に用意されている)。ランプデータには、ランプ・LEDを点灯または消灯することを示すデータ、および点灯または消灯の期間(プロセスタイマ値)を示すデータが設定されている。すなわち、制御用データ領域には、発光体の点灯パターンを示すデータが格納されている。
ランププロセス更新処理では、タイマ状態保存領域に保存されている演出タイマの値にもとづいて、プロセスタイマがタイムアウトしたか否かを判定する。具体的には、タイマ状態保存領域に保存されている演出タイマの値に、ランプ・LEDを消灯または点灯させることが設定されているデータに応じたプロセスタイマ値を、そのデータにもとづく演出を開始するときに加算し、プロセス終了判定値を算出してRAMの所定の領域に保存しておく。なお、演出タイマはタイマ割込処理で更新される。そして、演出タイマの値と、算出されているプロセス終了判定値とが一致するか否かを確認して、一致している場合にはプロセスタイマがタイムアウトしたものと判定する。プロセスタイマがタイムアウトしたと判定された場合には、ランプデータにおける次のアドレスに設定されているデータに応じてランプ・LEDを消灯または点灯させることに決定されるとともに、その決定結果に応じたプロセスタイマ値を、演出タイマの値に加算して新たなプロセス終了判定値が算出されて保存される。新たなプロセス終了判定値が設定されたときには点灯/消灯の切替がなされたときであるから、ポート出力処理において、ランプ・LEDを点灯または消灯のためのデータが該当する出力ポートに出力される。
以上のように、初期化処理を実行する場合に、発光体を用いて初期化報知を行う構成にした場合についても、可変表示装置9で報知する場合と同様に、遊技制御手段に不正に信号を送り込むような不正行為が行われても、そのような不正行為を容易に発見することができるとともに、不正行為者が報知に気付いて直ちに離席したような場合でも、再度の不正行為を実行しづらくするという効果がある。また、不正行為(RAMをクリアさせて初期状態とするなどの行為)が行われたことを容易に発見することができるので、その後の不正行為(大当りを発生させるなどの行為)を未然に防ぐことができる。
次に、初期化報知をスピーカなどの音声出力装置によって報知する構成について説明する。ここでは、電気部品制御手段の一例であり、音制御基板70に搭載された音制御用CPU701を含む音制御手段の動作を説明する。
図56は、音制御用CPU701が実行するメイン処理を示すフローチャートである。音制御用CPU701は、メイン処理において、まず、レジスタ、ワークエリアを含むRAMおよび出力ポート等を初期化する初期化処理を実行する(ステップS471)。その後、この実施の形態では、音制御用CPU701は、タイマ割込フラグの監視(ステップS473)の確認を行うループ処理に移行する。なお、ループ内では所定の乱数を発生するためのカウンタを更新する処理も行われる(ステップS472)。そして、図57に示すように、タイマ割込が発生すると、音制御用CPU701は、タイマ割込フラグをセットする(ステップS487)。メイン処理において、タイマ割込フラグがセットされていたら、音制御用CPU701は、そのフラグをクリアし(ステップS474)、以下の音制御処理を実行する。
なお、この実施の形態では、タイマ割込は2ms毎にかかるとする。すなわち、音制御処理は、2ms毎に起動される。また、この実施の形態では、タイマ割込処理ではフラグセットのみがなされ、具体的な音制御処理はメイン処理において実行されるが、タイマ割込処理で音制御処理を実行してもよい。
音制御処理において、音制御用CPU701は、まず、主基板31から音制御コマンドを受信したか否かの確認を行う(ステップS475:コマンド認識処理)。次いで、初期化報知コマンドを受信しているか否か確認する(ステップS476)。具体的には、初期化報知コマンドに対応するコマンド受信フラグがセットされているか否か確認する。ここでは、初期化報知コマンドとして、例えば大当り開始時音指定コマンド(図36参照)が用いられる。初期化報知コマンドを受信していれば、初期化処理の実行を報知するための初期化報知を開始する(ステップS477)。この例では、初期化報知として、音制御基板70が制御するスピーカ27を用いて所定の音出力処理を行う。また、音制御用CPU701は、初期化報知中フラグをオンするとともに(ステップS478)、初期化報知期間タイマを設定する(ステップS479)。初期化報知中フラグは、初期化報知の実行中であるか否かを確認するためのフラグであり、音制御基板70が備えるRAMに保存されている。初期化報知期間タイマは、初期化報知の実行期間を計測するためのタイマである。初期化報知の実行期間は、報知を確実とするために比較的長い期間(例えば5分)が設定される。
次いで、音制御用CPU701は、初期化報知中フラグがオン状態であるか否か確認する(ステップS480)。初期化報知中フラグがオン状態であれば、初期化報知期間タイマがタイムアウトしているか否か確認し(ステップS481)、タイムアウトしていれば、初期化報知中フラグをオフするとともに(ステップS482)、音出力手段(スピーカ27)を用いた初期化報知の実行を終了する(ステップS483)。
さらに、音制御用CPU701は、受信した音制御コマンドに応じて、使用する音声データを変更する等の処理であるコマンド実行処理を行う(ステップS484)。なお、主基板31からの音制御コマンドは、INT信号の入力に応じて起動される割込処理で取り込まれ、RAMに形成されている入力バッファに格納される。その後、この実施の形態では、音制御用CPU701は、音声プロセス更新処理およびポート出力処理を行う(ステップS485,S486)。その後、ステップS472に戻る。
この実施の形態では、遊技の進行に応じてスピーカ27から出力される音声パターンは、ROMに格納されている音声データに応じて制御される。音声データは、制御パターンの種類毎に用意されている(特別図柄の変動中の音声出力手段による演出パターンを指定する制御コマンドおよび遊技進行状況に応じて遊技制御手段から送出されるその他の遊技演出に関する制御コマンド毎に用意されている)。
また、音声合成回路702は、転送リクエスト信号(SIRQ)、シリアルクロック信号(SICK)、シリアルデータ信号(SI)および転送終了信号(SRDY)によって制御される。音声合成回路702は、SIRQがローレベルになると、SICKに同期してSIを1ビットずつ取り込み、SRDYがローレベルになるとそれまでに受信した各SIからなるデータを1つの音声再生用データと解釈する。
各音声データには、音声合成回路702に出力されるシリアルデータ信号に応じたデータ、およびそのデータに応じて発生される音声の継続期間(プロセスタイマ値)を示すデータが設定されている。すなわち、制御用データには、音発生手段(この例ではスピーカ27)からの出力パターンを示すデータが格納されている。
音声プロセス更新処理では、プロセスタイマ値に応じた値が初期設定されたタイマの値の減算処理が行われ、そのタイマがタイムアウトすると、音声データにおける次のアドレスに設定されているデータに応じて出力音声に変更することが決定されるとともに、その決定結果に応じたプロセスタイマ値がタイマに設定される。また、プロセスタイマ値がタイマに設定されたときには出力音声の切替がなされたときであるから、ポート出力処理(ステップS486)において、音声合成回路702にデータを出力するための出力ポートを介して、音声合成回路702に、新たな出力音声に対応したデータが出力される。
音声プロセス更新処理では、タイマ状態保存領域に保存されている演出タイマの値にもとづいて、プロセスタイマがタイムアウトしたか否かを判定する。具体的には、演出タイマの値に、スピーカ27に音声出力させることが設定されているデータに応じたプロセスタイマ値を、そのデータにもとづく演出を開始するときに加算し、プロセス終了判定値を算出してRAMの所定の領域に保存しておく。なお、演出タイマはタイマ割込処理で更新される。そして、タイマ状態保存領域に保存されている演出タイマの値と、算出されているプロセス終了判定値とが一致するか否かを確認して、一致している場合にはプロセスタイマがタイムアウトしたものと判定する。プロセスタイマがタイムアウトしたと判定された場合には、音声データにおける次のアドレスに設定されているデータに応じて音声出力を行うことに決定されるとともに、その決定結果に応じたプロセスタイマ値を演出タイマの値に加算して新たなプロセス終了判定値が算出されて保存される。新たなプロセス終了判定値が設定されたときには出力音声の切替がなされたときであるから、ポート出力処理(ステップS486)において、音声合成回路702にデータを出力するための出力ポートを介して、音声合成回路702に、新たな出力音声に対応したデータが出力される。
具体的には、音制御用CPU701は、ポート出力処理において、SIRQをオン(ローレベル)にして、ROM(音声コマンドデータ領域)から読み出したデータ(音声コマンド)をSICKに同期してSIとして出力し、出力が完了したらSRDYをローレベルにする。音声合成回路702は、SIによってデータを受信すると、受信したデータに応じた音声を発生する。
以上のように、初期化処理を実行する場合に、音出力手段を用いて初期化報知を行う構成とした場合についても、可変表示装置9で報知する場合と同様に、遊技制御手段に不正に信号を送り込むような不正行為が行われても、そのような不正行為を容易に発見することができるとともに、不正行為者が報知に気付いて直ちに離席したような場合でも、再度の不正行為を実行しづらくするという効果がある。また、不正行為(RAMをクリアさせて初期状態とするなどの行為)が行われたことを容易に発見することができるので、その後の不正行為(大当りを発生させるなどの行為)を未然に防ぐことができる。
上述したように、この実施の形態では、遊技機は、遊技に関わる制御を行う遊技制御手段と、遊技機への電力供給が停止しても所定期間は記憶内容を保持することが可能なバックアップRAMとが搭載された主基板31と、所定電位の電源の出力電圧を監視し検出条件が成立した場合に検出信号を出力する電源監視手段(この実施の形態では電源監視用IC902)と、遊技者に所定の遊技価値を付与するか否かの判定に用いられる判定用の数値を所定の数値範囲内で更新する判定用数値更新手段(この実施の形態ではランダム1生成用カウンタ)とを備え、主基板31には、遊技制御手段の動作に用いられる発振信号を発生する第1発振回路92と、前記第1発振回路92とは別に構成され所定の発振信号を発生する第2発振回路930と、第2発振回路930の発振信号を計数する計数手段(この実施の形態ではカウンタ931)とが搭載され、遊技制御手段は、電源監視手段からの検出信号の出力に関連して、制御状態の復旧に必要なデータをバックアップRAMに退避させる処理を含む電力供給停止時処理を実行可能であり、遊技機への電力供給が開始された場合に、所定の条件に応じて、制御状態を初期化する初期化処理またはバックアップRAMの記憶内容にもとづいて制御状態を復旧する復旧処理のいずれか一方を実行可能であって、初期化処理を実行する場合には、計数手段の計数値にもとづいて判定用数値更新手段の更新を開始するように構成されている。なお、所定の条件とは、例えば、電力供給が開始されたときにバックアップRAMの記憶内容が電力供給が停止したときの状態のまま保存されていたことである。
また、遊技制御手段が実行する遊技制御処理において所定の数値範囲内で数値を更新する初期値用数値更新手段(この実施の形態ではランダム6生成用カウンタ)を備え、遊技制御手段は、計数手段の計数値にもとづいて判定用数値更新手段の更新を開始した後では、初期値用数値更新手段の数値を用いて初期値を更新する。
具体的には、CPU56は、遊技制御プログラムに従って、大当り判定用乱数を生成するためのカウンタ(上記の例ではランダム1生成用カウンタ)を、初期化処理(図19に示すステップS101)においてカウンタ931のカウント値にもとづいて不定値に初期化し、ランダム1生成用カウンタのカウント値が最大値になると初期値用乱数の値にもとづいて新たな初期値(0〜316のいずれか:図26参照)を設定する。よって、初期化後の1周目においては、大当り判定用乱数を生成するためのカウンタのカウント値があらかじめ決められた大当り判定値に一致するタイミングを把握することは困難である。
また、計数手段の計数値は、遊技機への電力供給が停止しても保存される。すなわち、遊技機への電力供給が停止しても初期化されない。よって、遊技機への電力供給停止に関連した不正行為をより受けにくくすることができる。
さらに、遊技制御手段は、復旧処理を実行する場合には、特定の値はなっていないバックアップRAMに記憶されている判定用数値更新手段の更新値にもとづいて更新を開始する。
なお、大当り判定用乱数を生成するためのカウンタの更新が初期化処理後の1周目であるときには、たとえ始動入賞があったとしても、例えば上述したステップS44で大当り判定用乱数を抽出しないで他のはずれ値を用いるようにしたり、ステップS54で常にはずれと判断するなどのようにして、大当り判定用乱数にもとづく抽選を行わないように構成してもよい。このように構成すれば、初期化処理において大当り判定用乱数を生成するためのカウンタの初期値を不定値にしなくても、大当り判定用乱数の初期値を特定できなくなるので、大当り判定用乱数の更新が初期化後の1周目であるときであっても、不正行為によって大当り判定値を狙われてしまうことを防止することができる。
また、上記の実施の形態では、大当り判定用乱数を生成するためのカウンタ以外の判定用乱数や初期値決定用乱数を生成するためのカウンタは、初期化処理(図19に示すステップS101)において0に初期化されたが、初期化処理においてカウンタの値を0に初期化しないようにしてもよい。そのようにすれば、初期化処理が実行されても各カウンタの初期値がばらつくので、不正行為によって大当り判定値を狙われてしまうことを防止することができる。
例えば、システムリセット回路65に相当する回路(リセット回路とする。)が、主基板31ではなく電源源基板910等の主基板31の外部の基板に設けられ、そのリセット回路からシステムリセット信号を主基板31に入力しているような構成では、基板間で、上述したような不正行為がなされる可能性がある。すなわち、基板間のケーブルに、主基板31に対して不正にシステムリセット信号を入力させるような不正回路が接続されて不正行為がなされる可能性がある。主基板31のCPU56に対して不正にシステムリセット信号が入力された場合には、遊技機に対して電力供給が開始された場合と同様に制御状態が初期状態に戻る。すなわち、CPU56は、図9に示されたメイン処理を最初から実行する状態になる。この場合、電力供給停止時処理は実行されていないので、遊技状態復旧処理(図19におけるステップS10)は実行されず、CPU56は初期化処理を実行する。
初期化処理において、判定用乱数を生成するためのカウンタのカウント値を0に初期化すると、不正にシステムリセット信号を入力させた時点から、大当り判定用乱数(ランダム1)を生成するためのカウンタのカウント値が大当り判定値に一致するタイミングを予測することが容易になってしまう。そして、不正行為者は、そのタイミングで始動入賞が生じたような不正信号を主基板31に送り込むことによって、不正に大当りを生じさせてしまう。
しかし、上述したように、初期化処理において、判定用乱数を生成するためのカウンタのカウント値を不定値に初期化しておくか、判定用乱数の更新が1周目である場合には大当り抽選を行わないようにしておけば、そのような不正行為を防止することができる。そして、電力供給停止時処理が実行された後、電力供給が復旧して遊技状態復旧処理が実行される場合には、遊技状態復旧処理において、CPU56は、バックアップRAMに保存されているカウント値からカウンタの歩進を再開する。
また、初期化処理において、大当り判定用乱数を生成するためのカウンタの更新が1周目である場合には大当り抽選を行わないようにしておけば、不正にシステムリセット信号が入力されたことによって制御状態が初期状態に戻っても、すぐに1周目の更新を終え、判定用乱数を生成するためのカウンタのカウント値は、初期値決定用乱数を生成するためのカウンタのカウント値によって更新されるようになるので、ランダム1を生成するためのカウンタのカウント値が大当り判定値に一致するタイミングを予測することが困難になる。そして、電力供給停止時処理が実行された後、電力供給が復旧して遊技状態復旧処理が実行される場合には、遊技状態復旧処理において、CPU56は、バックアップRAMに保存されているカウント値から、初期値決定用乱数を生成するためのカウンタの歩進を再開する。
また、判定用乱数を生成するためのカウンタおよび初期値決定用乱数を生成するためのカウンタとは別に、ソフトウェアによる無限カウンタ(例えば、タイマ割込処理で常に更新される)を設け、初期化処理において、無限カウンタのカウント値を、初期値としてランダム1を生成するためのカウンタに設定するようにしてもよい。そのようにしても、ランダム1生成用カウンタのカウント値が大当り判定値に一致するタイミングを予測することが困難になる。なお、無限カウンタは例えば2バイトで構成されるが、初期化処理において、例えば無限カウンタの下位8ビットの値が、ランダム1生成用カウンタに設定される。
上記のように、大当り判定用乱数の初期値を不定値にすることによってばらつきをもたせたり、大当り判定用乱数の更新が1周目であるときには大当り抽選を行わないようにした場合には、上述したスタックオーバーフローを発生させる不正行為や、リセット信号を強制的に入力させる不正行為の他、例えば遊技機に供給される制御電源(5V)やバックアップ電源を切ることによってRAMクリアする不正行為が行われた場合であっても、そのような不正行為によって大当りが発生してしまうことを防止することができる。
実施の形態2.
実施の形態1では、カウンタ931等がバックアップ電源933によって電源バックアップされ、遊技機に対する電力供給が停止してもカウントを継続することによって、遊技機に対して電力供給が再開されたときに、カウンタ931のカウント値を不定にした。そして、遊技機に対して電力供給が再開されたときに、カウンタ931のカウント値をランダム1生成用カウンタに設定することによって、ランダム1生成用カウンタの初期値(初期化処理で設定される初期値)を不定にした。しかし、ハードウェア回路を用いてランダム1生成用カウンタの初期値をランダムにするのであれば、他の実施の形態を用いてもよい。
図58は、本発明の他の実施の形態におけるランダム1生成用カウンタの初期値をランダムにするための構成例を示すブロック図である。この実施の形態では、主基板31において、CPU56の外部に、主基板31への電力供給が停止しても所定期間は記憶内容を保持可能な第2変動データ記憶手段としてのRAM934が搭載され、RAM934は、バックアップ電源933で電源バックアップされている。従って、遊技機に対する電力供給停止時でも、RAM934の内容は保存されている。なお、CPU56に内蔵され、電源基板910に搭載されているバックアップ電源(この例ではコンデンサ923)で電源バックアップされるRAMが、遊技機への電力供給が停止しても記憶内容を保持可能な第1変動データ記憶手段に相当する。
図59は、この実施の形態において、CPU56が実行するメイン処理を示すフローチャートである。図59に示すように、初期化処理(ステップS181〜S193およびS190)では、CPU56は、RAMクリア処理を行う(ステップS181)。また、所定の作業領域に初期値を設定する作業領域設定処理を行う(ステップS182)。
次いで、CPU56は、例えば情報出力回路64を介して、ホールコンピュータなどの外部装置に向けて初期化信号を出力する(ステップS183)。また、球払出装置97からの払出が可能であることを指示する払出許可状態指定コマンドを払出制御基板37に対して送信する処理を行う(ステップS184)。
また、各サブ基板を初期化するための初期化コマンドを各サブ基板に送信する処理を実行する(ステップS185)。初期化コマンドとして、可変表示装置9に表示される初期図柄を示すコマンド(図柄制御基板80に対して)や賞球ランプ51および球切れランプ52の消灯を指示するコマンド(ランプ制御基板35に対して)等がある。さらに、CPU56は、初期化処理の実行の報知を指定する初期化報知コマンドを図柄制御基板80に対して送信する処理を行う(ステップS186)。この実施の形態では、初期化報知コマンドとして、大当り開始時表示コマンド(図39参照)が用いられる。初期化処理の実行の報知制御がランプ制御手段や音制御手段において実行される場合には、ステップS186で、ランプ制御基板35や音制御基板70に対して初期化報知コマンドを送信する。この場合、ランプ制御基板35に送信する初期化報知コマンドとして、例えば大当り開始時ランプ指定コマンド(図40参照)が用いられる。また、音制御基板70に送信する初期化報知コマンドとして、例えば大当り開始時音指定コマンド(図41参照)が用いられる。
さらに、CPU56は、判定用乱数初期値とおよび初期値用乱数初期値をRAM934から入力する(ステップS191,S192)。そして、入力した判定用乱数初期値を、大当り判定用乱数を生成するためのランダム1生成用カウンタにセットするとともに、入力した初期値用乱数初期値をランダム1用初期値バッファ(図27に示されたステップS104でランダム1生成用カウンタのカウント値と比較される値)にセットする(ステップS193)。
また、CPU56は、2ms毎に定期的にタイマ割込がかかるようにCPU56に設けられているCTCのレジスタの設定を行う(ステップS190)。すなわち、初期値として2msに相当する値を所定のレジスタ(時間定数レジスタ)に設定する。
なお、図58に示された構成および図59に示されたメイン処理における初期化処理以外の構成および処理は、実施の形態1の場合と同様である。
CPU56は、RAM934に、例えば定期的(1秒毎等)に、そのときのランダム1生成用カウンタのカウント値を判定用乱数初期値として書き込み、ランダム6生成用カウンタのカウント値を初期値用乱数初期値として書き込む。定期的でなくても、何かの事象の発生を契機としてRAM934に書き込んでもよい。例えば、可変表示装置9において可変表示が開始されたときや、可変表示装置における可変表示が終了したときや、特定の入賞口に遊技球の入賞があったときなどを契機として、判定用乱数初期値および初期値用乱数初期値を書き込む。なお、ここで例示した契機は単なる例であって、遊技進行中に生じうる他の事象の発生を契機としてもよい。
また、この実施の形態では、何かの事象の発生を契機としてRAM934に判定用乱数初期値および初期値用乱数初期値を書き込み、初期化処理において、RAM934に保存されている判定用乱数初期値および初期値用乱数初期値をランダム1生成用カウンタおよびランダム6生成用カウンタにセットするようにしたが、何かの事象の発生を契機としてRAM934に判定用乱数初期値のみを書き込んでRAM934に判定用乱数初期値のみが保存されるようにして、初期化処理において、RAM934に保存されている判定用乱数初期値をランダム1生成用カウンタにセットするようにしてもよい。
さらに、この実施の形態では、遊技機への電力供給が停止しても記憶内容を保持可能な第2変動データ記憶手段としてバックアップ電源933で電源バックアップされるRAM934を例示したが、第2変動データ記憶手段として、EEPROMやフラッシュROM等の、他のランダムアクセス可能な不揮発性メモリを使用してもよい。バックアップ電源933で電源バックアップされるRAM934を用いる場合には、バックアップ電源933は、この実施の形態のように、主基板31に搭載されていることが好ましい。遊技制御手段が搭載されている主基板31は、遊技機裏面において容易に取り外すことができず、また、取り外し履歴がわかるようなカバーで覆われているので、不正行為を受けにくいからである。
図60は、図27および図28に示された判定用乱数更新処理によって変化するランダム1(大当り判定用乱数)を生成するためのカウンタ(ランダム1生成用カウンタ)の値の一例を示す説明図である。遊技機への電力供給が開始され初期化処理が実行されたときには、ランダム1生成用カウンタの最初の値はRAM934から読み出された値(不定な値)になっている。また、ランダム1生成用カウンタのカウント値がランダム1用初期値バッファの保存値と一致したことが、ステップS104の処理で検出されると、ステップS105の処理でランダム6(ランダム1初期値決定用乱数)が抽出されるとともに、ランダム1生成用カウンタのカウント値が更新される。なお、この時点は、図60においてAで示されている。以降の動作は、実施の形態1の場合(図31参照)と同様である。
以上に説明したように、この実施の形態では、遊技機は、遊技に関わる制御を行う遊技制御手段と、遊技の進行に応じて変動するデータを記憶するための変動データ記憶手段とが搭載された主基板31と、所定電位の電源の出力電圧を監視し検出条件が成立した場合に検出信号を出力する電源監視手段(この実施の形態では電源監視用IC902)と、遊技者に所定の遊技価値を付与するか否かの判定に用いられる判定用の数値を所定の数値範囲内で更新する判定用数値更新手段(この実施の形態ではランダム1生成用カウンタ)とを備え、変動データ記憶手段は、遊技機への電力供給が停止しても所定期間は記憶内容を保持することが可能なバックアップRAM(CPU56に内蔵されたRAM)と、そのバックアップRAMと別個に設けられ遊技機への電力供給が停止しても所定期間は記憶内容を保持することが可能なRAM934とを含み、遊技制御手段は、電源監視手段からの検出信号の出力に関連して、制御状態の復旧に必要なデータをバックアップRAMに退避させる処理を含む電力供給停止時処理を実行可能であり、遊技機への電力供給が開始された場合に、所定の条件に応じて、バックアップRAMの内容を初期化する初期化処理またはバックアップRAMの記憶内容にもとづいて制御状態を復旧する復旧処理のいずれか一方を実行可能であって、初期化処理を実行する場合には、RAM934の記憶内容にもとづいて判定用数値更新手段の更新を開始する。
また、遊技制御手段は、定期的に、または所定の事象の発生を契機として、遊技機への電力供給が停止しても記憶内容を保持可能なRAM934に判定用乱数初期値を書き込む。すると、遊技機への電力供給が停止するときのRAM934に記憶されている判定用乱数初期値は不定な値である。その結果、遊技機への電力供給が再開されたときに初期化処理が実行される場合には、不定値である判定用乱数初期値が判定用数値更新手段に初期値として設定されるので、判定用数値更新手段の更新値(この実施の形態ではランダム生成用カウンタのカウント値)が遊技者に所定の遊技価値を付与することにする所定値(この実施の形態では大当り判定値)と一致するタイミングは不定になり、そのようなタイミングを狙った不正行為を防止することができる。
なお、上記の各実施の形態では、大当りとするか否かを決定する乱数を生成するためのランダム1生成用カウンタはRAMに形成されたが、CPU56のレジスタを用いてランダム1生成用カウンタを形成してもよい。例えば、IXレジスタをランダム1生成用カウンタとして使用してもよい。その場合、ランダム1生成用カウンタとして使用されるレジスタは、他の用途には使用されない。
また、上記の各実施の形態では、遊技機に供給される制御電源(5V)やバックアップ電源を切ることによってRAMクリアする不正行為が行われた場合であっても、初期化報知が行われるので、そのような不正行為を容易に発見することができる。
また、上記の各実施の形態では、表示制御用CPU101、ランプ制御用CPU351、あるいは音制御用CPU701の制御によって初期化報知を行う構成としていたが、CPU56が表示器などを制御して初期化報知を行う構成としてもよい。
なお、上記の各実施の形態において、スタックされるデータがRAM55に設けられたスタック領域の記憶容量を越えてしまった場合には、作業領域(スタック領域以外のRAM領域)のデータ領域にまでスタックされるデータがスタック領域から溢れて(オーバーフローして)、プログラムが暴走することが考えられる。例えば、プログラム上のある命令(オペコード)により指定されたデータの格納先のアドレスが、スタック領域から溢れたデータにより書き換えられた結果、誤ったアドレスにジャンプし、その後暴走してしまう。そのような場合には、ウォッチドッグタイマのタイムアウト等に起因して、電力供給の停止や再開がされない場合であっても、プログラムが先頭アドレスから開始される。この場合には、NMI処理(電力供給停止時処理)で実行されるはずのバックアップフラグのセットやチェックサムデータのセットがなされていないので、ステップS8,S9の処理によって初期化処理が実行される。
遊技制御手段の動作状態が所定期間停止状態となった場合に遊技制御手段の動作状態を初期化する初期化手段としてのウォッチドッグタイマによる監視は、CPU56に内蔵されているウォッチドッグ機能を用いてもよいが、システムリセット回路65を利用してもよい。図61は、システムリセット回路65を利用してウォッチドッグタイマによる監視を行う場合の主基板31に搭載されているCPU56およびそれに接続される主要な構成要素を示すブロック図である。リセットIC652を有するシステムリセット回路65からのリセット信号は、CPU56のリセット端子に入力されている。リセットIC652は、電力供給が開始されると、所定の期間(外付けされているコンデンサと内蔵抵抗とによって決まる時間)だけリセット信号のレベルをローレベル(リセットレベル)とし、その期間が経過するとリセット信号のレベルをハイレベルにする。CPU56はリセット信号がハイレベルになると動作可能状態になる。また、図61に示す例では、リセットIC652のCK端子にはCPU56の出力ポートから、ある時間間隔で信号が供給される。その信号が途絶えて所定期間(ウォッチドッグタイマのタイムアウト時間)以上信号の入力がない状態になると、リセットIC652は、リセット信号のレベルを一旦リセットレベル(ローレベル)にした後、非リセットレベル(ハイレベル)に戻す。よって、CPU56は、そのようなリセット信号にもとづいて初期化処理を実行する状態になる。なお、ウォッチドッグタイマ回路はシステムリセット回路65を利用したものではなく独立して設けられていてもよいし、基板外に設けられていてもよい。
図61に示す例では、遊技制御手段から出力される信号が所定期間入力されなかった場合に遊技制御手段に信号(一旦リセットレベルになった後、非リセットレベルなる信号)を出力する監視回路は、システムリセット回路65で実現されている。
また、上記の各実施の形態では、遊技制御手段(CPU56)が、電力供給停止時処理中であることを示すコマンドを出力し、表示制御手段(表示制御用CPU101)が電力供給停止時処理の実行を示す報知制御を行う構成であったが、他のサブ基板35,70において電力供給停止時処理の実行を示す報知制御が行われる構成にしてもよい。なお、電力供給停止時処理の実行を示す報知を行う場合には、遊技機への電力供給が停止されるまで報知を継続して行うことが望ましい。スタックオーバーフローを発生させたり、リセット信号をCPU56に不正に入力させたりする不正行為が行われた場合には、主基板31が初期化された場合であっても電力が継続して供給されるので、サブ基板35,70,80では電力供給停止時処理の実行を示す報知を継続して行うことができる。従って、不正行為を容易に発見することができるようになる。
また、上記の実施の形態では、電源断信号(NMI信号)がマスク不能割込端子に入力されたが、マスク可能割込端子に入力するようにしてもよく、入力ポートに入力するようにしてもよい。入力ポートに入力される場合には、遊技制御手段は、ポートチェックの結果電源断信号がオン状態であれば、上述したマスク不能割込処理に相当する処理を実行する。
なお、上記の実施の形態では、電源監視手段は電源基板910に搭載されていたが、主基板31以外の他の基板や、遊技機における他の箇所に設定されていてもよい。また、システムリセット手段は主基板31に搭載されていたが、電源基板910等の他の基板に搭載されていてもよい。
また、上記の実施の形態では、表示制御用CPU101、ランプ制御用CPU351、あるいは音制御用CPU701が、初期化報知の実行期間中は受信コマンドを廃棄して、そのコマンドにもとづく制御を実行しない構成にしていたが、初期化報知の実行期間中に受信したコマンドを記憶保持しておき、初期化報知の終了後に記憶保持しているコマンドにもとづく制御を実行する構成にしてもよい。
なお、上記の実施の形態では、バックアップRAMに電力を供給するバックアップ電源が電源基板910において作成される構成であったが、バックアップ電源は、主基板31において作成されるようにしてもよい。さらに、遊技機に設けられている他の基板にバックアップ電源が設けられていてもよい。例えば、他の電気部品制御基板35,70,80が電源バックアップ可能な構成とされている場合に、その電気部品制御基板35,70,80においてバックアップ電源を作成するように構成してもよい。また、いずれかの基板上ではなく基板外に設けられていてもよい。
なお、上記の各実施の形態において、「特定遊技状態」とは、所定の遊技価値が付与された遊技者にとって有利な状態を意味する。具体的には、「特定遊技状態」は、例えば、例えば可変入賞球装置の状態が打球が入賞しやすい遊技者にとって有利な状態(大当り遊技状態)、遊技者にとって有利な状態となるための権利が発生した状態、景品遊技媒体払出の条件が成立しやすくなる状態、遊技者に対して得点を付与するための条件が成立しやすくなる状態などの、所定の遊技価値が付与された状態である。
また、上記の各実施の形態では、所定条件の成立に応じて遊技者に所定の遊技価値を付与可能であり、具体的には、特定の条件が成立した場合に遊技者にとって有利な特定遊技状態に制御可能であり、遊技制御手段が、報知処理で、特定遊技状態の発生に関連して送出されるコマンド(例えば大当り開始時表示コマンド)を、報知を行うことを示すコマンドとして電気部品制御手段に送出するように構成された遊技機が構成されているが、所定条件としての「特定の条件」とは、遊技機の制御状態を特定遊技状態とするための条件を意味する。従って、特定の条件が成立すると、遊技機の制御状態が特定遊技状態となる。具体的には、「特定の条件」とは、例えば、「複数種類の識別情報(例えば、図柄、絵柄、数値など)を可変表示(例えば、スクロール表示、コマ送り表示、切替え表示など)可能な可変表示装置(例えば、液晶表示装置、ドットマトリクス表示器、セグメント表示器、ドラム式の表示器など)を備える構成とされ、可変表示装置における識別情報の表示結果が特定の表示結果(例えば、全てが同一の識別情報となる表示結果。具体的には、例えば左中右の識別情報が全て「1」となる表示結果。)となった場合に成立する条件とされる。また、例えば、「特定の条件」とは、遊技領域における特定の領域に設けられた球検出手段(例えば、フォトセンサ、近接スイッチなど)により遊技球が検出された場合に成立する条件としてもよい。例えば、特定入賞口等の特定入賞領域への遊技球の入賞(通過や検出)に応じて遊技者に所定の遊技価値を付与するように構成してもよい。そして、特定の条件の成立に応じて遊技者に付与される遊技価値は、遊技機に設けられている始動口に遊技球が入賞したことにもとづいて遊技者にとってさらに有利な状態を生起させる権利発生状態のようなものであってもよい。
また、遊技者に所定の遊技価値を付与する条件となる特定の条件を、所定の乱数(例えば大当り決定用乱数)の値として特定の値(例えば大当り判定値)が抽出されたこととしてもよい。
なお、上記の各実施の形態のパチンコ遊技機1は、主として、始動入賞にもとづいて可変表示装置9に可変表示される特別図柄の停止図柄が所定の図柄の組み合わせになると所定の遊技価値が遊技者に付与可能になる第1種パチンコ遊技機であったが、始動入賞にもとづいて開放する電動役物の所定領域への入賞があると所定の遊技価値が遊技者に付与可能になる第2種パチンコ遊技機や、始動入賞にもとづいて可変表示される図柄の停止図柄が所定の図柄の組み合わせになると開放する所定の電動役物への入賞があると所定の権利が発生または継続する第3種パチンコ遊技機であっても、本発明を適用できる。また、パチンコ遊技機に限られず、乱数にもとづいて遊技者に有利な状態になるスロットマシン等にも本発明を適用することができる。