以下、本発明の実施の形態を、図面を参照して説明する。まず、遊技機の一例であるパチンコ遊技機1の全体の構成について説明する。図1はパチンコ遊技機1を正面からみた正面図である。また、図2はパチンコ遊技機を示す背面図である。
パチンコ遊技機1は、縦長の方形状に形成された外枠(図示せず)と、外枠の内側に開閉可能に取り付けられた遊技枠とで構成される。また、パチンコ遊技機1は、遊技枠に開閉可能に設けられている額縁状に形成されたガラス扉枠2を有する。遊技枠は、外枠に対して開閉自在に設置される前面枠(図示せず)と、機構部品等が取り付けられる機構板(図示せず)と、それらに取り付けられる種々の部品(後述する遊技盤6を除く)とを含む構造体である。
ガラス扉枠2の下部表面には打球供給皿(上皿)3がある。打球供給皿3の下部には、打球供給皿3に収容しきれない遊技球を貯留する余剰球受皿4や、打球を発射する打球操作ハンドル(操作ノブ)5が設けられている。また、ガラス扉枠2の背面には、遊技盤6が着脱可能に取り付けられている。なお、遊技盤6は、それを構成する板状体と、その板状体に取り付けられた種々の部品とを含む構造体である。また、遊技盤6の前面には、打ち込まれた遊技球が流下可能な遊技領域7が形成されている。
遊技領域7の中央付近には、液晶表示装置(LCD)で構成された演出表示装置9が設けられている。演出表示装置9の表示画面には、第1特別図柄または第2特別図柄の可変表示に同期した演出図柄の可変表示を行う演出図柄表示領域がある。よって、演出表示装置9は、演出図柄の可変表示を行う可変表示装置に相当する。演出図柄表示領域には、例えば「左」、「中」、「右」の3つの装飾用(演出用)の識別情報を可変表示する図柄表示エリアがある。図柄表示エリアには「左」、「中」、「右」の各図柄表示エリア9L、9C、9Rがあるが、図柄表示エリア9Aの位置は、演出表示装置9の表示画面において固定的でなくてもよいし、図柄表示エリア9L、9C、9Rの3つ領域が離れてもよい。演出表示装置9は、演出制御基板に搭載されている演出制御用マイクロコンピュータによって制御される。演出制御用マイクロコンピュータが、第1特別図柄表示器8aで第1特別図柄の可変表示が実行されているときに、その可変表示に伴って演出表示装置9で演出表示を実行させ、第2特別図柄表示器8bで第2特別図柄の可変表示が実行されているときに、その可変表示に伴って演出表示装置で演出表示を実行させるので、遊技の進行状況を把握しやすくすることができる。
遊技盤6における下部の左側には、識別情報としての第1特別図柄を可変表示する第1特別図柄表示器(第1可変表示部)8aが設けられている。この実施の形態では、第1特別図柄表示器8aは、0〜9の数字を可変表示可能な簡易で小型の表示器(例えば7セグメントLED)で実現されている。すなわち、第1特別図柄表示器8aは、0〜9の数字(または、記号)を可変表示するように構成されている。遊技盤6における下部の右側には、識別情報としての第2特別図柄を可変表示する第2特別図柄表示器(第2可変表示部)8bが設けられている。第2特別図柄表示器8bは、0〜9の数字を可変表示可能な簡易で小型の表示器(例えば7セグメントLED)で実現されている。すなわち、第2特別図柄表示器8bは、0〜9の数字(または、記号)を可変表示するように構成されている。
小型の表示器は、例えば方形状に形成されている。また、この実施の形態では、第1特別図柄の種類と第2特別図柄の種類とは同じ(例えば、ともに0〜9の数字)であるが、種類が異なっていてもよい。また、第1特別図柄表示器8aおよび第2特別図柄表示器8bは、それぞれ、例えば、00〜99の数字(または、2桁の記号)を可変表示するように構成されていてもよい。
以下、第1特別図柄と第2特別図柄とを特別図柄と総称することがあり、第1特別図柄表示器8aと第2特別図柄表示器8bとを特別図柄表示器(可変表示部)と総称することがある。
第1特別図柄または第2特別図柄の可変表示は、可変表示の実行条件である第1始動条件または第2始動条件が成立(例えば、遊技球が第1始動入賞口13または第2始動入賞口14に入賞したこと)した後、可変表示の開始条件(例えば、保留記憶数が0でない場合であって、第1特別図柄および第2特別図柄の可変表示が実行されていない状態であり、かつ、大当り遊技が実行されていない状態)が成立したことにもとづいて開始され、可変表示時間が経過すると表示結果(停止図柄)を導出表示する。なお、入賞とは、入賞口などのあらかじめ入賞領域として定められている領域に遊技球が入ったことである。また、表示結果を導出表示するとは、図柄(識別情報の例)を停止表示させることである(いわゆる再変動の前の停止を除く。)。また、この実施の形態では、第1始動入賞口13への入賞および第2始動入賞口14への入賞に関わりなく、始動入賞が生じた順に可変表示の開始条件を成立させるが、第1始動入賞口13への入賞と第2始動入賞口14への入賞のうちのいずれかを優先させて可変表示の開始条件を成立させるようにしてもよい。例えば第1始動入賞口13への入賞を優先させる場合には、第1特別図柄および第2特別図柄の可変表示が実行されていない状態であり、かつ、大当り遊技が実行されていない状態であれば、第2保留記憶数が0でない場合でも、第1保留記憶数が0になるまで、第1特別図柄の可変表示を続けて実行する。
第1特別図柄表示器8aの近傍には、第1特別図柄表示器8aによる第1特別図柄の可変表示時間中に、装飾用(演出用)の図柄としての第1飾り図柄の可変表示を行う第1飾り図柄表示器9aが設けられている。この実施の形態では、第1飾り図柄表示器9aは、2つのLEDで構成されている。第1飾り図柄表示器9aは、演出制御基板に搭載されている演出制御用マイクロコンピュータによって制御される。また、第2特別図柄表示器8bの近傍には、第2特別図柄表示器8bによる第2特別図柄の可変表示時間中に、装飾用(演出用)の図柄としての第2飾り図柄の可変表示を行う第2飾り図柄表示器9bが設けられている。第2飾り図柄表示器9bは、2つのLEDで構成されている。第2飾り図柄表示器9bは、演出制御基板に搭載されている演出制御用マイクロコンピュータによって制御される。
なお、第1飾り図柄と第2飾り図柄とを、飾り図柄と総称することがあり、第1飾り図柄表示器9aと第2飾り図柄表示器9bを、飾り図柄表示器と総称することがある。
飾り図柄の変動(可変表示)は、2つのLEDが交互に点灯する状態を継続することによって実現される。第1特別図柄表示器8aにおける第1特別図柄の可変表示と、第1飾り図柄表示器9aにおける第1飾り図柄の可変表示とは同期している。第2特別図柄表示器8bにおける第2特別図柄の可変表示と、第2飾り図柄表示器9bにおける第2飾り図柄の可変表示とは同期している。同期とは、可変表示の開始時点および終了時点が同じであって、可変表示の期間が同じであることをいう。また、第1特別図柄表示器8aにおいて大当り図柄が停止表示されるときには、第1飾り図柄表示器9aにおいて大当りを想起させる側のLEDが点灯されたままになる。第2特別図柄表示器8bにおいて大当り図柄が停止表示されるときには、第2飾り図柄表示器9bにおいて大当りを想起させる側のLEDが点灯されたままになる。なお、第1飾り図柄表示器9aおよび第2飾り図柄表示器9bの機能を、演出表示装置9で実現するようにしてもよい。すなわち、第1飾り図柄および第2飾り図柄が、演出表示装置9の表示画面において画像として可変表示されるように制御してもよい。
演出表示装置9の下方には、第1始動入賞口13を有する入賞装置が設けられている。第1始動入賞口13に入賞した遊技球は、遊技盤6の背面に導かれ、第1始動口スイッチ13aによって検出される。
また、第1始動入賞口(第1始動口)13を有する入賞装置の下方には、遊技球が入賞可能な第2始動入賞口14を有する可変入賞球装置15が設けられている。第2始動入賞口(第2始動口)14に入賞した遊技球は、遊技盤6の背面に導かれ、第2始動口スイッチ14aによって検出される。可変入賞球装置15は、ソレノイド16によって開状態とされる。可変入賞球装置15が開状態になることによって、遊技球が第2始動入賞口14に入賞可能になり(始動入賞し易くなり)、遊技者にとって有利な状態になる。可変入賞球装置15が開状態になっている状態では、第1始動入賞口13よりも、第2始動入賞口14に遊技球が入賞しやすい。また、可変入賞球装置15が閉状態になっている状態では、遊技球は第2始動入賞口14に入賞しない。従って、可変入賞球装置15が閉状態になっている状態では、第2始動入賞口14よりも、第1始動入賞口13に遊技球が入賞しやすい。なお、可変入賞球装置15が閉状態になっている状態において、入賞はしづらいものの、入賞することは可能である(すなわち、遊技球が入賞しにくい)ように構成されていてもよい。
以下、第1始動入賞口13と第2始動入賞口14とを総称して始動入賞口または始動口ということがある。
可変入賞球装置15が開放状態に制御されているときには可変入賞球装置15に向かう遊技球は第2始動入賞口14に極めて入賞しやすい。そして、第1始動入賞口13は演出表示装置9の直下に設けられているが、演出表示装置9の下端と第1始動入賞口13との間の間隔をさらに狭めたり、第1始動入賞口13の周辺で釘を密に配置したり、第1始動入賞口13の周辺での釘配列を遊技球を第1始動入賞口13に導きづらくして、第2始動入賞口14の入賞率の方を第1始動入賞口13の入賞率よりもより高くするようにしてもよい。
なお、この実施の形態では、図1に示すように、第2始動入賞口14に対してのみ開閉動作を行う可変入賞球装置15が設けられているが、第1始動入賞口13および第2始動入賞口14のいずれについても開閉動作を行う可変入賞球装置が設けられている構成であってもよい。
第1飾り図柄表示器9aの側方には、第1始動入賞口13に入った有効入賞球数すなわち第1保留記憶数(保留記憶を、始動記憶または始動入賞記憶ともいう。)を表示する4つの表示器からなる第1特別図柄保留記憶表示器18aが設けられている。第1特別図柄保留記憶表示器18aは、有効始動入賞がある毎に、点灯する表示器の数を1増やす。そして、第1特別図柄表示器8aでの可変表示が開始される毎に、点灯する表示器の数を1減らす。
第2飾り図柄表示器9bの側方には、第2始動入賞口14に入った有効入賞球数すなわち第2保留記憶数を表示する4つの表示器からなる第2特別図柄保留記憶表示器18bが設けられている。第2特別図柄保留記憶表示器18bは、有効始動入賞がある毎に、点灯する表示器の数を1増やす。そして、第2特別図柄表示器8bでの可変表示が開始される毎に、点灯する表示器の数を1減らす。
また、演出表示装置9の表示画面には、第1保留記憶数と第2保留記憶数との合計である合計数(合算保留記憶数)を表示する領域(以下、合算保留記憶表示部18cという。)が設けられている。合計数を表示する合算保留記憶表示部18cが設けられているので、可変表示の開始条件が成立していない実行条件の成立数の合計を把握しやすくすることができる。なお、合算保留記憶表示部18cが設けられているので、第1特別図柄保留記憶表示器18aおよび第2特別図柄保留記憶表示器18bは、設けられていなくてもよい。
演出表示装置9は、第1特別図柄表示器8aによる第1特別図柄の可変表示時間中、および第2特別図柄表示器8bによる第2特別図柄の可変表示時間中に、装飾用(演出用)の図柄としての演出図柄の可変表示を行う。第1特別図柄表示器8aにおける第1特別図柄の可変表示と、演出表示装置9における演出図柄の可変表示とは同期している。また、第2特別図柄表示器8bにおける第2特別図柄の可変表示と、演出表示装置9における演出図柄の可変表示とは同期している。また、第1特別図柄表示器8aにおいて大当り図柄が停止表示されるときと、第2特別図柄表示器8bにおいて大当り図柄が停止表示されるときには、演出表示装置9において大当りを想起させるような演出図柄の組み合わせが停止表示される。
演出表示装置9の周囲の飾り部において、右側には、上演出LED85a、中演出LED85bおよび下演出LED85cが設けられている。上演出LED85a、中演出LED85bおよび下演出LED85cは、特定演出としての擬似連の演出(1回の変動期間中におけるそれぞれの再変動期間(初回変動の期間も含む。)において関連する表示演出が実行されるような演出)が実行されるときに点滅する。また、左側には、モータ86の回転軸に取り付けられ、モータ86が回転すると移動する可動部材78が設けられている。可動部材78は、擬似連の演出が実行されるときに動作する。なお、上演出LED85a、中演出LED85bおよび下演出LED85cの近傍には、各LEDの取付部分を信号させる振動モータ(図示せず)が設けられている。
また、図1に示すように、可変入賞球装置15の下方には、特別可変入賞球装置20が設けられている。特別可変入賞球装置20は開閉板を備え、第1特別図柄表示器8aに特定表示結果(大当り図柄)が導出表示されたときと、第2特別図柄表示器8bに特定表示結果(大当り図柄)が導出表示されたときに生起する特定遊技状態(大当り遊技状態)においてソレノイド21によって開閉板が開放状態に制御されることによって、入賞領域となる大入賞口が開放状態になる。大入賞口に入賞した遊技球はカウントスイッチ23で検出される。
遊技領域6には、遊技球の入賞にもとづいてあらかじめ決められている所定数の景品遊技球の払出を行うための入賞口(普通入賞口)29,30,33,39も設けられている。入賞口29,30,33,39に入賞した遊技球は、入賞口スイッチ29a,30a,33a,39aで検出される。
遊技盤6の右側方には、普通図柄表示器10が設けられている。普通図柄表示器10は、普通図柄と呼ばれる複数種類の識別情報(例えば、「○」および「×」)を可変表示する。
遊技球がゲート32を通過しゲートスイッチ32aで検出されると、普通図柄表示器10の表示の可変表示が開始される。この実施の形態では、上下のランプ(点灯時に図柄が視認可能になる)が交互に点灯することによって可変表示が行われ、例えば、可変表示の終了時に下側のランプが点灯すれば当りとなる。そして、普通図柄表示器10における停止図柄が所定の図柄(当り図柄)である場合に、可変入賞球装置15が所定回数、所定時間だけ開状態になる。すなわち、可変入賞球装置15の状態は、普通図柄の停止図柄が当り図柄である場合に、遊技者にとって不利な状態から有利な状態(第2始動入賞口14に遊技球が入賞可能な状態)に変化する。普通図柄表示器10の近傍には、ゲート32を通過した入賞球数を表示する4つのLEDによる表示部を有する普通図柄保留記憶表示器41が設けられている。ゲート32への遊技球の通過がある毎に、すなわちゲートスイッチ32aによって遊技球が検出される毎に、普通図柄保留記憶表示器41は点灯するLEDを1増やす。そして、普通図柄表示器10の可変表示が開始される毎に、点灯するLEDを1減らす。
遊技盤6の遊技領域7の左右周辺には、遊技中に点滅表示される装飾LED25が設けられ、下部には、入賞しなかった打球が取り込まれるアウト口26がある。また、遊技領域7の外側の左右上部には、所定の音声出力として効果音や音声を発声する2つのスピーカ27が設けられている。遊技領域7の外周には、前面枠に設けられた枠LED28が設けられている。
遊技機には、遊技者が打球操作ハンドル5を操作することに応じて駆動モータを駆動し、駆動モータの回転力を利用して遊技球を遊技領域7に発射する打球発射装置(図示せず)が設けられている。打球発射装置から発射された遊技球は、遊技領域7を囲むように円形状に形成された打球レールを通って遊技領域7に入り、その後、遊技領域7を下りてくる。遊技球が第1始動入賞口13に入り第1始動口スイッチ13aで検出されると、第1特別図柄の可変表示を開始できる状態であれば(例えば、特別図柄の可変表示が終了し、第1の開始条件が成立したこと)、第1特別図柄表示器8aにおいて第1特別図柄の可変表示(変動)が開始されるとともに、第1飾り図柄表示器9aにおいて第1飾り図柄の可変表示が開始され、演出表示装置9において演出図柄の可変表示が開始される。すなわち、第1特別図柄、第1飾り図柄および演出図柄の可変表示は、第1始動入賞口13への入賞に対応する。第1特別図柄の可変表示を開始できる状態でなければ、第1保留記憶数が上限値に達していないことを条件として、第1保留記憶数を1増やす。
遊技球が第2始動入賞口14に入り第2始動口スイッチ14aで検出されると、第2特別図柄の可変表示を開始できる状態であれば(例えば、特別図柄の可変表示が終了し、第2の開始条件が成立したこと)、第2特別図柄表示器8bにおいて第2特別図柄の可変表示(変動)が開始されるとともに、第2飾り図柄表示器9bにおいて第2飾り図柄の可変表示が開始され、演出表示装置9において演出図柄の可変表示が開始される。すなわち、第2特別図柄、第2飾り図柄および演出図柄の可変表示は、第2始動入賞口14への入賞に対応する。第2特別図柄の可変表示を開始できる状態でなければ、第2保留記憶数が上限値に達していないことを条件として、第2保留記憶数を1増やす。
また、この実施の形態では、特別図柄変動の表示結果が確変大当りまたは突然確変大当りとなったときに、遊技状態が確変状態に移行される。この確変状態では、少なくとも通常状態に比べて大当りとすることに決定される確率が高い高確率状態となるように制御される。なお、確変状態において、高確率状態に制御するとともに、特別図柄の変動時間を短縮したり、普通図柄表示器10における停止図柄が当り図柄になる確率を高めるようにしたり、普通図柄の変動時間を短縮したり、可変入賞球装置15の開放時間と開放回数とを高めるようにしたりするようにしてもよい。この場合、確変状態において、これらのいずれか1つまたは複数が実行されるようにしてもよく、全てが実行されるようにしてもよい。
また、この実施の形態では、大当り遊技終了後に、少なくとも普通図柄の変動時間が短縮される時短状態に制御される。なお、時短状態において、特別図柄の変動時間を短縮したり、普通図柄表示器10における停止図柄が当り図柄になる確率を高めるようにしたり、可変入賞球装置15の開放時間と開放回数とを高めるようにしたりするようにしてもよい。この場合、時短状態において、これらのいずれか1つまたは複数が実行されるようにしてもよく、全てが実行されるようにしてもよい。
次に、パチンコ遊技機1の裏面の構造について図2を参照して説明する。図2に示すように、パチンコ遊技機1裏面側では、演出表示装置9を制御する演出制御用マイクロコンピュータ110が搭載された演出制御基板80を含む変動表示制御ユニット、遊技制御用マイクロコンピュータ等が搭載された遊技制御基板(主基板)31、音声出力基板70、LEDドライバ基板(図示せず)、および、球払出制御を行なう払出制御用マイクロコンピュータ等が搭載された払出制御基板37等の各種基板が設置されている。なお、遊技制御基板31は基板収納ケース200に収納されている。また、遊技制御基板31には、遊技の開始を指示するための遊技開始スイッチ90が設けられている。
さらに、パチンコ遊技機1裏面側には、DC30V、DC21V、DC12VおよびDC5V等の各種電源電圧を作成する電源回路が搭載された電源基板910やタッチセンサ基板91Aが設けられている。電源基板910には、パチンコ遊技機1における遊技制御基板31および各電気部品制御基板(演出制御基板80および払出制御基板37)やパチンコ遊技機1に設けられている各電気部品(電力が供給されることによって動作する部品)への電力供給を実行あるいは遮断するための電力供給許可手段としての電源スイッチ、遊技制御基板31の遊技制御用マイクロコンピュータ560のRAM55をクリアするためのクリアスイッチ921が設けられている。さらに、電源スイッチの内側(基板内部側)には、交換可能なヒューズが設けられている。
また、主基板31を収納する基板収納ケース200におけるケースカバーには、四角筒状の被固着部255a〜255dが、基板収納ケース200におけるケース本体201の各ねじ穴に対向する箇所に複数形成されている。それらの固着部によって第1被固着部255が構成されている。なお、第1被固着部255の役割等については後述する。また、主基板31には、遊技の開始を指示するための遊技開始スイッチ90が設けられている。
なお、電気部品制御基板には、電気部品制御用マイクロコンピュータを含む電気部品制御手段が搭載されている。電気部品制御手段は、遊技制御手段等からのコマンドとしての指令信号(制御信号)に従ってパチンコ遊技機1に設けられている電気部品(遊技用装置:球払出装置97、演出表示装置9、LEDなどの発光体、スピーカ27等)を制御する。以下、遊技制御基板31を電気部品制御基板に含めて説明を行なうことがある。その場合には、電気部品制御基板に搭載される電気部品制御手段は、遊技制御手段と、遊技制御手段等からの指令信号に従ってパチンコ遊技機1に設けられている電気部品を制御する手段とのそれぞれを指す。また、遊技制御基板31以外のマイクロコンピュータが搭載された基板をサブ基板ということがある。
パチンコ遊技機1裏面において、上方には、各種情報をパチンコ遊技機1の外部に出力するための各端子を備えたターミナル基板159が設置されている。ターミナル基板159には、少なくとも、球切れ検出スイッチ167の出力を導入して外部出力するための球切れ用端子、賞球情報(賞球個数信号)を外部出力するための賞球用端子および球貸し情報(球貸し個数信号)を外部出力するための球貸し用端子が設けられている。
貯留タンク38に貯留された遊技球は誘導レール(図示せず)を通り、カーブ樋を経て払出ケース40Aで覆われた球払出装置97に至る。球払出装置97の上方には、遊技媒体切れ検出手段としての球切れスイッチ187が設けられている。球切れスイッチ187が球切れを検出すると、球払出装置97の払出動作が停止する。球切れスイッチ187は遊技球通路内の遊技球の有無を検出するスイッチであるが、貯留タンク38内の補給球の不足を検出する球切れ検出スイッチ167も誘導レールにおける上流部分(貯留タンク38に近接する部分)に設けられている。球切れ検出スイッチ167が遊技球の不足を検知すると、遊技機設置島に設けられている補給機構からパチンコ遊技機1に対して遊技球の補給が行なわれる。
入賞にもとづく景品としての遊技球や球貸し要求にもとづく遊技球が多数払出されて打球供給皿3が満杯になると、遊技球は、余剰球誘導通路を経て余剰球受皿4に導かれる。さらに遊技球が払出されると、感知レバー(図示せず)が貯留状態検出手段としての満タンスイッチを押圧して、貯留状態検出手段としての満タンスイッチがオンする。その状態では、球払出装置内の払出モータの回転が停止して球払出装置の動作が停止するとともに打球発射装置の駆動も停止する。
図3は、主基板(遊技制御基板)31における回路構成の一例を示すブロック図である。なお、図3は、払出制御基板37および演出制御基板80等も示されている。主基板31には、プログラムに従ってパチンコ遊技機1を制御する遊技制御用マイクロコンピュータ(遊技制御手段に相当)560が搭載されている。遊技制御用マイクロコンピュータ560は、ゲーム制御(遊技進行制御)用のプログラム等を記憶するROM54、ワークメモリとして使用される記憶手段としてのRAM55、プログラムに従って制御動作を行うCPU56およびI/Oポート部57を含む。この実施の形態では、ROM54およびRAM55は遊技制御用マイクロコンピュータ560に内蔵されている。すなわち、遊技制御用マイクロコンピュータ560は、1チップマイクロコンピュータである。1チップマイクロコンピュータには、少なくともCPU56のほかRAM55が内蔵されていればよく、ROM54は外付けであっても内蔵されていてもよい。また、I/Oポート部57は、外付けであってもよい。
さらに、遊技制御用マイクロコンピュータ560には、ハードウェア乱数(ハードウェア回路が発生する乱数)を発生する乱数回路5003が内蔵されている。この実施の形態では、後述するように、遊技制御用マイクロコンピュータ560は、乱数回路5003が発生するハードウェア乱数を用いて生成した大当り判定用乱数にもとづいて、大当りとするか否かを決定する。例えば、乱数回路5003において、カウンタ521は、セレクタ528を介してクロック信号出力回路524が出力した乱数発生用クロック信号SI1を入力したことにもとづいて、カウント値Cを1つずつ更新する。そして、遊技制御用マイクロコンピュータ560は、カウンタ521によって更新されたカウント値Cをハードウェア乱数として用いて大当り判定用乱数を生成し、大当りとするか否かを決定する。
なお、遊技制御用マイクロコンピュータ560は、乱数回路5003を内蔵しなくてもよい。この場合、例えば、遊技制御用マイクロコンピュータ560は、遊技制御用マイクロコンピュータ560に外付けで取り付けられた乱数回路からハードウェア乱数を読み込み、そのハードウェア乱数を用いて生成した大当り判定用乱数にもとづいて、大当りとするか否かを決定するようにしてもよい。
また、RAM55は、その一部または全部が電源基板910において作成されるバックアップ電源によってバックアップされている不揮発性記憶手段としてのバックアップRAMである。すなわち、遊技機に対する電力供給が停止しても、所定期間(バックアップ電源としてのコンデンサが放電してバックアップ電源が電力供給不能になるまで)は、RAM55の一部または全部の内容は保存される。特に、少なくとも、遊技状態すなわち遊技制御手段の制御状態に応じたデータ(特別図柄プロセスフラグなど)、未払出賞球数を示すデータ、判定用乱数などの各ソフトウェア乱数(後述する大当り判定算出用乱数(ランダム2−1)や、普通図柄当り判定用乱数(ランダム6)など)、および各ソフトウェア乱数をカウントするためのカウンタ(後述する大当り判定算出用カウンタや、普通図柄当り判定用カウンタなど)は、バックアップRAMに保存される。なお、後述する大当り判定算出用乱数(ランダム2−1)とハードウェア乱数とを用いて算出される大当り判定用乱数MR1も(ステップS2015参照)、バックアップRAMに保存される。遊技制御手段の制御状態に応じたデータとは、停電等が生じた後に復旧した場合に、そのデータにもとづいて、制御状態を停電等の発生前に復旧させるために必要なデータである。また、制御状態に応じたデータと未払出賞球数を示すデータとを遊技の進行状態を示すデータと定義する。なお、この実施の形態では、RAM55の全部が、電源バックアップされているとする。
なお、遊技制御用マイクロコンピュータ560においてCPU56がROM54に格納されているプログラムに従って制御を実行するので、以下、遊技制御用マイクロコンピュータ560(またはCPU56)が実行する(または、処理を行う)ということは、具体的には、CPU56がプログラムに従って制御を実行することである。このことは、主基板31以外の他の基板に搭載されているマイクロコンピュータについても同様である。
乱数回路5003は、特別図柄の可変表示の表示結果により大当りとするか否か判定するための判定用の乱数を発生するために用いられるハードウェア回路である。乱数回路5003は、初期値(例えば、0)と上限値(例えば、65535)とが設定された数値範囲内で、数値データを、設定された更新規則に従って更新し、ランダムなタイミングで発生する始動入賞時が数値データの読出(抽出)時であることにもとづいて、読出される数値データが乱数値となる乱数発生機能を有する。
乱数回路5003は、数値データの更新範囲の選択設定機能(初期値の選択設定機能、および、上限値の選択設定機能)、数値データの更新規則の選択設定機能、および数値データの更新規則の選択切換え機能等の各種の機能を有する。このような機能によって、生成する乱数のランダム性を向上させることができる。
また、遊技制御用マイクロコンピュータ560は、乱数回路5003が更新する数値データの初期値を設定する機能を有している。例えば、ROM54等の所定の記憶領域に記憶された遊技制御用マイクロコンピュータ560のIDナンバ(遊技制御用マイクロコンピュータ560の各製品ごとに異なる数値で付与されたIDナンバ)を用いて所定の演算を行なって得られた数値データを、乱数回路5003が更新する数値データの初期値として設定する。そのような処理を行うことによって、乱数回路5003が発生する乱数のランダム性をより向上させることができる。
また、ゲートスイッチ32a、始動口スイッチ13a、カウントスイッチ23、入賞口スイッチ29a,30a,33a,39aからの検出信号を遊技制御用マイクロコンピュータ560に与える入力ドライバ回路58も主基板31に搭載されている。また、可変入賞球装置15を開閉するソレノイド16、および大入賞口を形成する特別可変入賞球装置20を開閉するソレノイド21を遊技制御用マイクロコンピュータ560からの指令に従って駆動する出力回路59も主基板31に搭載されている。また、遊技の開始を指示するための遊技開始スイッチ90も主基板31に搭載されている。
また、遊技制御用マイクロコンピュータ560は、特別図柄を可変表示する第1特別図柄表示器8a、第2特別図柄表示器8b、普通図柄を可変表示する普通図柄表示器10、第1特別図柄保留記憶表示器18a、第2特別図柄保留記憶表示器18bおよび普通図柄保留記憶表示器41の表示制御を行う。
なお、大当り遊技状態の発生を示す大当り情報等の情報出力信号をホールコンピュータ等の外部装置に対して出力する情報出力回路(図示せず)も主基板31に搭載されている。
この実施の形態では、演出制御基板80に搭載されている演出制御手段(演出制御用マイクロコンピュータで構成される。)が、中継基板77を介して遊技制御用マイクロコンピュータ560から演出内容を指示する演出制御コマンドを受信し、飾り図柄を可変表示する第1飾り図柄表示器9aおよび第2飾り図柄表示器9bと、演出図柄を可変表示する演出表示装置9との表示制御を行う。
また、演出制御基板80に搭載されている演出制御手段が、ランプドライバ基板35を介して、遊技盤に設けられている装飾LED25、および枠側に設けられている枠LED28の表示制御を行うとともに、音声出力基板70を介してスピーカ27からの音出力の制御を行う。
図4は、中継基板77、演出制御基板80、ランプドライバ基板35および音声出力基板70の回路構成例を示すブロック図である。なお、図4に示す例では、ランプドライバ基板35および音声出力基板70には、マイクロコンピュータは搭載されていないが、マイクロコンピュータを搭載してもよい。また、ランプドライバ基板35および音声出力基板70を設けずに、演出制御に関して演出制御基板80のみを設けてもよい。
演出制御基板80は、演出制御用CPU101、および演出図柄プロセスフラグ等の演出に関する情報を記憶するRAMを含む演出制御用マイクロコンピュータ100を搭載している。なお、RAMは外付けであってもよい。この実施の形態では、演出制御用マイクロコンピュータ100におけるRAMは電源バックアップされていない。演出制御基板80において、演出制御用CPU101は、内蔵または外付けのROM(図示せず)に格納されたプログラムに従って動作し、中継基板77を介して入力される主基板31からの取込信号(演出制御INT信号)に応じて、入力ドライバ102および入力ポート103を介して演出制御コマンドを受信する。また、演出制御用CPU101は、演出制御コマンドにもとづいて、VDP(ビデオディスプレイプロセッサ)109に演出表示装置9の表示制御を行わせる。
この実施の形態では、演出制御用マイクロコンピュータ100と共動して演出表示装置9の表示制御を行うVDP109が演出制御基板80に搭載されている。VDP109は、演出制御用マイクロコンピュータ100とは独立したアドレス空間を有し、そこにVRAMをマッピングする。VRAMは、画像データを展開するためのバッファメモリである。そして、VDP109は、VRAM内の画像データをフレームメモリを介して演出表示装置9に出力する。
演出制御用CPU101は、受信した演出制御コマンドに従ってCGROM(図示せず)から必要なデータを読み出すための指令をVDP109に出力する。CGROMは、演出表示装置9に表示されるキャラクタ画像データや動画像データ、具体的には、人物、文字、図形や記号等(演出図柄を含む)、および背景画像のデータをあらかじめ格納しておくためのROMである。VDP109は、演出制御用CPU101の指令に応じて、CGROMから画像データを読み出す。そして、VDP109は、読み出した画像データにもとづいて表示制御を実行する。
演出制御コマンドおよび演出制御INT信号は、演出制御基板80において、まず、入力ドライバ102に入力する。入力ドライバ102は、中継基板77から入力された信号を演出制御基板80の内部に向かう方向にしか通過させない(演出制御基板80の内部から中継基板77への方向には信号を通過させない)信号方向規制手段としての単方向性回路でもある。
中継基板77には、主基板31から入力された信号を演出制御基板80に向かう方向にしか通過させない(演出制御基板80から中継基板77への方向には信号を通過させない)信号方向規制手段としての単方向性回路74が搭載されている。単方向性回路として、例えばダイオードやトランジスタが使用される。図4には、ダイオードが例示されている。また、単方向性回路は、各信号毎に設けられる。さらに、単方向性回路である出力ポート571を介して主基板31から演出制御コマンドおよび演出制御INT信号が出力されるので、中継基板77から主基板31の内部に向かう信号が規制される。すなわち、中継基板77からの信号は主基板31の内部(遊技制御用マイクロコンピュータ560側)に入り込まない。なお、出力ポート571は、図3に示されたI/Oポート部57の一部である。また、出力ポート571の外側(中継基板77側)に、さらに、単方向性回路である信号ドライバ回路が設けられていてもよい。
また、演出制御用CPU101は、出力ポート106を介して、可動部材78を動作させるためにモータ86を駆動する。また、上演出LED85a、中演出LED85bおよび下演出LED85cの近傍に設けられ各LEDの取付部分を信号させる振動モータ87a,87b,87cを出力ポート106を介して駆動する。なお、振動モータ87aは上演出LED85aを振動させ、振動モータ87bは中演出LED85bを振動させ、振動モータ87cは下演出LED85cを振動させる。
また、演出制御用CPU101は、出力ポート105を介してランプドライバ基板35に対してLEDを駆動する信号を出力する。また、演出制御用CPU101は、出力ポート104を介して音声出力基板70に対して音番号データを出力する。
さらに、演出制御用マイクロコンピュータ100には、ハードウェア乱数(ハードウェア回路が発生する乱数)を発生する乱数回路107が内蔵されている。乱数回路107は、初期値(例えば、0)と上限値(例えば、65535)とが設定された数値範囲内で、数値データを、設定された更新規則に従って更新する。この実施の形態では、演出制御用マイクロコンピュータ100は、乱数回路107が発生する乱数値にもとづいて加算値を決定し、決定した加算値を加算することによって、所定の演出内容(例えば、演出図柄の最終停止図柄)を決定するための演出決定用乱数(具体的には、図66に示す乱数SR1−1〜SR1−3)を更新する処理を行う。
ランプドライバ基板35において、LEDを駆動する信号は、入力ドライバ351を介してLEDドライバ352に入力される。LEDドライバ352は、LEDを駆動する信号にもとづいて枠LED28などの枠側に設けられている発光体に電流を供給する。また、遊技盤側に設けられている装飾LED25、上演出LED85a、中演出LED85bおよび下演出LED85cに電流を供給する。
音声出力基板70において、音番号データは、入力ドライバ702を介して音声合成用IC703に入力される。音声合成用IC703は、音番号データに応じた音声や効果音を発生し増幅回路705に出力する。増幅回路705は、音声合成用IC703の出力レベルを、ボリューム706で設定されている音量に応じたレベルに増幅した音声信号をスピーカ27に出力する。音声データROM704には、音番号データに応じた制御データが格納されている。音番号データに応じた制御データは、所定期間(例えば演出図柄の変動期間)における効果音または音声の出力態様を時系列的に示すデータの集まりである。
次に、電源基板910の構成を図5のブロック図を参照して説明する。電源基板910には、遊技機内の各電気部品制御基板や機構部品への電力供給を許可したり遮断したりするための電源スイッチ914が設けられている。なお、電源スイッチ914は、遊技機において、電源基板910の外に設けられていてもよい。電源スイッチ914が閉状態(オン状態)では、交流電源(AC24V)がトランス911の入力側(一次側)に印加される。トランス911は、交流電源(AC24V)と電源基板910の内部とを電気的に絶縁するためのものであるが、その出力電圧もAC24Vである。また、トランス911の入力側には、過電圧保護回路としてのバリスタ918が設置されている。
電源基板910は、電気部品制御基板(主基板31、払出制御基板37および演出制御基板80等)と独立して設置され、遊技機内の各基板および機構部品が使用する電圧を生成する。この例では、AC24V、VSL(DC+30V)、VLP(DC+24V)、VDD(DC+12V)およびVCC(DC+5V)を生成する。また、バックアップ電源(VBB)すなわちバックアップRAMに記憶内容を保持させるための記憶保持手段となるコンデンサ916は、DC+5V(VCC)すなわち各基板上のIC等を駆動する電源のラインから充電される。また、+5Vラインとバックアップ+5V(VBB)ラインとの間に、逆流防止用のダイオード917が挿入される。なお、VSLは、整流平滑回路915において、整流素子でAC24Vを整流昇圧することによって生成される。VSLは、ソレノイド駆動電源になる。また、VLPは、ランプ点灯用の電圧であって、整流回路912において、整流素子でAC24Vを整流することによって生成される。
電源電圧生成手段としてのDC−DCコンバータ913は、1つまたは複数のスイッチングレギュレータ(図5では2つのレギュレータIC924A,924Bを示す。)を有し、VSLにもとづいてVDDおよびVCCを生成する。レギュレータIC(スイッチングレギュレータ)924A,924Bの入力側には、比較的大容量のコンデンサ923A,923Bが接続されている。従って、外部からの遊技機に対する電力供給が停止したときに、VSL、VDD、VCC等の直流電圧は、比較的緩やかに低下する。
図5に示すように、トランス911から出力されたAC24Vは、そのままコネクタ922Bに供給される。また、VLPは、コネクタ922Cに供給される。VCC、VDDおよびVSLは、コネクタ922A,922B,922Cに供給される。
コネクタ922Aに接続されるケーブルは、主基板31に接続される。また、コネクタ922Bに接続されるケーブルは、払出制御基板37に接続される。従って、コネクタ922Aには、VBBも供給されている。例えば、コネクタ922Cに接続されるケーブルは、ランプドライバ基板35に接続される。なお、演出制御基板80には、ランプドライバ基板35を経由して各電圧が供給される。
また、電源基板910には、押しボタン構造のクリアスイッチ921が搭載されている。クリアスイッチ921が押下されるとローレベル(オン状態)のクリア信号が出力され、コネクタ922Aを介して主基板31に出力される。また、クリアスイッチ921が押下されていなければハイレベル(オフ状態)の信号が出力される。なお、クリアスイッチ921は、押しボタン構造以外の他の構成であってもよい。また、クリアスイッチ921は、遊技機において、電源基板910以外に設けられていてもよい。
さらに、電源基板910には、電気部品制御基板に搭載されているマイクロコンピュータに対するリセット信号を作成するとともに、電源断信号を出力する電源監視回路920と、電源監視回路920からのリセット信号を増幅してコネクタ922A,922B,922Cに出力するとともに、電源断信号を増幅してコネクタ922Bに出力する出力ドライバ回路925が搭載されている。なお、演出制御用マイクロコンピュータに対するリセット信号は、ランプドライバ基板35を経由して演出制御基板80に伝達される。また、リセット回路をそれぞれの電気部品制御基板に搭載した場合に、リセット信号をハイレベルにすることになる電圧値を異ならせるようにしてもよい(例えば、主基板31における場合を最も高くして、遊技制御用マイクロコンピュータ560に対するリセット信号がハイレベルになるタイミングを最も遅くする。)。
電源監視回路920からの電源断信号すなわち電源監視手段からの検出信号は、主基板31に搭載されている入力ポートを介して遊技制御用マイクロコンピュータ560に入力される。すなわち、遊技制御用マイクロコンピュータ560は、入力ポートの入力信号を監視することによって遊技機への電力供給の停止の発生を確認することができる。
次に、主基板31を収納する基板収納ケース200の構造を説明する。図6は、基板収納ケースを示す分解斜視図であり、図7は、基板収納ケースを示す分解斜視図であるが、2回目に基板収納ケース200の封止がなされる場合の例を示す。図8は、基板収納ケース200および主基板31の組み付け状態を示す分解斜視図である。図9は、ケースカバー202に対する主基板31の取り付け状態を示す斜視図である。図10は、配線側コネクタの接続状況を示す斜視図である。図11は、コネクタ規制部材の取り付け状況を示す斜視図である。図12は、ケース本体201とケースカバー202とを閉鎖した状態を示す縦断面図である。図13は、基板収納ケース200の封止状態を示す斜視図である。図14は、図13に示す基板収納ケース200のA−A断面を示す断面図である。図15は、基板収納ケース200を示す一部破断側面図である。図16(a)は、図15に示す基板収納ケース200のB−B断面を示す断面図である。図16(b)は、図15に示す基板収納ケース200のC−C断面を示す断面図である。なお、図2に示したように、この実施の形態では、主基板31には遊技開始スイッチ90が設けられているのであるが、図6〜図16に示す主基板31を収納する基板収納ケース200では、遊技開始スイッチ90の図示を省略している。
基板収納ケース200は、図6に示すように、主基板31の裏面側を覆うケース本体201と、主基板31の実装面31a(図12参照)側を覆うケースカバー202とを含み、主基板31を挟持するように組み付けられる。なお、主基板31の実装面31aには、遊技制御用マイクロコンピュータ560等の電子部品や、他の基板から延出された配線の一端に設けられた配線側コネクタ等が接続される基板側コネクタ238a〜238c等が実装されている。なお、この実施の形態では、3つの基板側コネクタ238a〜238cが例示されているが、実装されるコネクタの数は任意であり、実際には3つ以上のコネクタが実装されることがある。
また、基板収納ケース200は、ケースカバー201の外側に装着され、基板側コネクタ238a〜238cに接続される配線側コネクタ(ハーネス側コネクタ)290a〜290cの抜脱を防止するためのコネクタ規制部材500を備えている。なお、主基板31は、ケースカバー202の裏面側に取り付けられた状態で基板収納ケース200の内部に封止状態で収納される。
ケース本体201は、透明な合成樹脂からなり、略長方形状に形成される底板201aと、底板201aの周囲を囲むように形成された側壁203〜206とで、上面が開放する直方体状に成形されている。側壁205,206の内面には、図13に示す封止状態(閉鎖状態)において主基板31の裏面周囲を支持する上下方向を向く支持リブ207が複数形成されている。また、側壁203および閉塞壁216の内面における長手方向の中央位置には、ケースカバー202を位置決めするための上下方向を向く位置決め用リブ270が形成されている。
一方の短辺の側壁203は、図6に示すように、長手方向の略中央に位置する中央側壁203aと、中央側壁203aの左右側方に位置する膨出壁203b,203cと、中央側壁203aと膨出壁203b,203cとを連接する連接壁203dとで、略凹状に形成されている。つまり、膨出壁203b,203cと連接壁203dとで、中央側壁203aの長手方向の左右側に、本体内部側から外側に向けて膨出する略長方形状の膨出部208a,208bが形成されている。
膨出部208a,208bの内部は、ケース本体201の内部に形成される略長方形状の基板収納空間S1にそれぞれ連通する膨出空間S2,S3が形成されている。つまり、内部が中空状に構成されている。一方の膨出部208aの膨出空間S2内には、複数(この実施の形態では3本)の予備用ワンウェイねじ281を収納するねじ収納部209が設けられている。
ねじ収納部209は、ケース本体201の底板201aから立設される側壁203よりも若干低い板状部209aと、板状部209aの長手方向に向けて所定間隔おきに形成される複数の筒状部209bとで構成される。各筒状部209bには、予備用ワンウェイねじ281のねじ部の直径よりも若干大径で、かつ、頭部の直径よりも小径の所定深さの挿入孔209cが形成されている。挿入孔209cには、上面開口から予備用ワンウェイねじ281を挿通して収納できる(図16(a)参照)。
板状部209aは、長手方向の両端が、それぞれ側壁206および連接壁203dの内面に連設されている。また、板状部209aは、膨出壁203bに対して平行に、基板収納空間S1と膨出空間S2とを区画するように配設されている。また、膨出壁203b,203cの下部には、ケースカバー202の係止爪251を係止可能な係止穴210がそれぞれ形成されている(図16(a)参照)。
予備用ワンウェイねじ281は、一方向の回転によってねじ止めされる。しかし、他方向に回転させようとしても回転させることができない、すなわち、そのねじを緩めることができない機能を有するねじである。具体的には、外周に雄ねじ部が形成されたねじ部283と、ねじ部283の上端に設けられる頭部284とで構成され、ねじ部283の直径よりも頭部284の直径の方が大径になっている(図16(a)参照)。なお、ワンウェイねじ280も予備用ワンウェイねじ281と同様に構成されている。ただし、最初に固着に用いられるワンウェイねじ280の色は、予備用ワンウェイねじ281の色とは異なっている。
中央側壁203aの外側には、ワンウェイねじ280がねじ止めされる複数(この実施の形態では4つ)のねじ穴211a〜211dが形成される第2被固着部212が形成されている。被固着部212は、図6および図15に示すように、中央側壁203aの外側における両連接壁203d,203d間に架設されるとともに、ねじ穴211a〜211dが長手方向に向けて所定間隔おきに形成された固着片212aと、固着片212aの下面における各ねじ穴211a〜211dに対応する箇所から垂下される筒状部212bとで構成され、ねじ穴211a〜211dは、固着片212aから筒状部212bにかけて所定深さに形成されている。
固着片212aは、側壁203に連設されている。固着片212aにおける3辺が、側壁203における中央側壁203aおよび両連接壁203dに接している。また、固着片212aにおける中央側壁203aの反対側の長辺が、膨出壁203b,203dと同じ平面上にくるように形成されている。つまり、両サイドの膨出部208a,208bよりも外側に突出しないように形成されている。よって、誤ってケース本体201を落下した場合でも、第2被固着部212が両サイドの膨出部208a,208bによって保護されて損傷しない。
他方の短寸の側壁204には、図6および図12に示すように、その上端から内向きに連設される内向片204aと、内向片204aの先端から下方に垂れ下がるように形成されている垂下片204bとが連設されている。側壁204、内向片204aおよび垂下片204bの内面によって、ケースカバー202の回動枢支片を係止する下向きに開口する被係止凹部215(図12参照)が長手方向に向けて形成されている。
また、図12に示すように、底板201aにおける被係止凹部215の下方には開口が形成されている。そして、開口端縁部から、側壁204よりも高さが低い閉塞壁216が立ち上がるように設けられ、封止状態においてケースカバー202の側壁下端と底板201aの上面との間が外側から被覆される。
底板201aの下面には、ケース本体201をパチンコ遊技機1に設けられる基板収納ケース取付板(図示せず)に取り付ける際に、基板収納ケース取付板に係止可能な複数の取付板用係止爪217と、取り付けの際における位置決め用の位置決め片218とが突出するように設けられている。
ケースカバー202は、透明な合成樹脂で形成され、図6および図7に示すように、略長方形状に形成される上板220と、上板220の周縁辺のうちの3つの縁辺を囲むように形成された側壁230〜232とによって下面が開放する直方体状に形成されている。上板220における2つの長辺のうち一方側は、長手方向に向けて下方に凹設され、上板220の一部に所定幅を有する帯状の凹部234が形成されている。
具体的には、上板220は、図8および図14に示すように、実装面31aとの対向面(裏面)が実装面31にほぼ当接する位置に設けられている低被覆面部220aと、低被覆面部220aよりも実装面31aから離間した位置に設けられる高被覆面部220bと、低被覆面部220aと高被覆面部220bとを連設する傾斜被覆面部220cとで構成され、低被覆面部220aおよび傾斜被覆面部220cによって凹部234が形成されている。
低被覆面部220aは、図8に示すように、平面視略長方形状に形成された主基板31の実装面31aにおける一方の長辺に沿うように形成された帯状のコネクタ実装領域S10(図8において斜線で示される領域)を被覆するとともに、コネクタ実装領域S10に実装された複数の基板側コネクタ238a〜238cの接続口238dおよび本体上部を通してケースカバー202の外部に通過させるためのコネクタ用開口236a〜236cが形成されている。
また、低被覆面部220aの裏面は、主基板31が取り付けられた状態で、図14に示すように主基板31の実装面31aにほぼ当接する。なお、各コネクタ用開口236a〜236cにおいて、開口端縁と各種コネクタ238a〜238cの本体側面との間から針金等の異物や配線等が容易に入れないように、開口端縁と各種コネクタ238a〜238cの本体側面との間は、例えば約1mm以内の隙間になるように形成されている。
高被覆面部220bは、主基板31の実装面31aにおけるコネクタ実装領域S10以外のメイン部品実装領域(図中斜線で示される領域以外の領域)すなわち遊技制御用マイクロコンピュータ560等の電子部品や各種回路等が実装される領域の上方を被覆するために、低被覆面部220aよりも高い位置、つまり低被覆面部220aに比べて実装面31aから離れた位置に配置される。
傾斜被覆面部220cは、高被覆面部220bの一側縁から低被覆面部220aの一側縁に向けて下方に傾斜するように設けられている。高被覆面部220b側の上部には、コネクタ規制部材500に形成された複数の係止爪501が係合される複数の係合穴502が長手方向に向けて所定間隔おきに形成されている。
上板220の裏面四隅には、図9に示すように、主基板31を取り付けるための基板取付ねじ239が取り付けられるねじ穴240aを有する取付用支柱240が一方の対角線上に2つ突出するように設けられている(図9では、一方のみを示す)。また、取り付けの際の位置決め用の位置決め用凸部(図示せず)が他方の対角線上に2つ突出するように設けられ、ケースカバー202の裏面側に主基板31を取り付けできるようになっている。
主基板31を取り付けるときには、主基板31の実装面31aをケースカバー202の裏面に対向させた状態、つまり実装面31aを上方に向けた状態でケースカバー202の裏面側に主基板31を押し当てる。そして、各コネクタ用開口236a〜236cから各コネクタ238a〜238cが通過するように、主基板31における位置決め用凸部に対応する2つの角部に形成された位置決め孔243をそれぞれ位置決め用凸部内に挿通して位置決めした状態で、主基板31の取付用支柱240に対応する2つの角部に形成されたねじ取付孔242に基板取付ねじ239を取り付け、ねじ穴240aに基板取付ねじ239をねじ止めする。
ケースカバー202に主基板31を取り付けた状態において、上板220における低被覆面220aの裏面と実装面31aとが対向してほぼ当接した状態になる(図14参照)。よって、各コネクタ用開口236a〜236cの開口端縁と各種コネクタ238a〜238cの本体側面との間から針金等の異物や配線等を差し込んでも、遊技制御用マイクロコンピュータ等が実装されている主基板31の中央部に向けて進入することが困難であり、不正行為が効果的に防止される。
また、高被覆面220bの裏面所定箇所には、ワンウェイねじ280の頭部284を被覆するキャップ265が複数繋げられたキャップ吊支体245(図6および図7参照)を保持する四角柱状のキャップ保持部(図示せず)が下向きに設けられている。キャップ吊支体245におけるキャップ265は、予備用ワンウェイねじ281の頭部284を被覆するものであり、予備用ワンウェイねじ281の合計数(3個)のキャップを有している。
図7に示すように、キャップ265には下端に係止爪267が形成された一対の係止片268が設けられている。係止爪267を被固着部255b〜255dの内面に形成された段部266に係止することによって、キャップ265は、被固着部255b〜255dの上面開口を閉塞するように保持される。係止爪267は、被固着部255b〜255dの内部に設けられている段部266に嵌り込んでキャップ265の引き抜きを防止するためのものである。
上板220の上面には、図6および図7に示すように、パチンコ遊技機1の機種名を記した機種名シール(図示せず)を貼着するための機種名表示用凹部247と、主基板31を検査した際に書き込む「検査者」や「検査日」等の各項目が記された検査履歴シール(図示せず)を貼着するための検査名表示用凹部248が設けられている。
側壁230におけるケース本体201側の膨出部208a,208bに対応する箇所には、膨出部208a,208bよりも一回り小さい膨出部カバー250a,250bが外側に向けて膨出するように形成されている。膨出部カバー250a,250bは、封止状態において膨出部208a,208bを構成する膨出壁203b,203cおよび連接壁203dよりも内側に入り込み、膨出空間S2,S3の上方を閉塞する。
膨出部カバー250a,250bは、内部が中空状に形成され、一方の膨出部カバー250bの内部空間は、側壁230によりケースカバー202における基板収納空間と区画されて独立した空間となっている。他方の膨出部カバー250aの内部空間は、側壁230における膨出部カバー250aに対応する箇所が切り欠かれ、ケースカバー202の基板収納空間と連通する(図16(a)参照)。
膨出部カバー250a,250bにおける膨出部208a,208bに形成された係止穴210に対応する壁部には、下端から上方に向けて切り欠かれた2本のスリットを介して弾性変形自在に構成された係止片252が形成されている。係止片252の下端には、係止穴210に係止可能な外向きの係止爪251が形成され、ケース本体201の上面をケースカバー202により閉鎖した状態、つまり封止状態において係止爪251が係止穴210に係止される。
また、図16(a)に示すように、ねじ収納部209に対応する膨出部カバー250aの上壁裏面254には、膨出部カバー250aの長手方向に向けて延びるねじ規制用リブ253が下方に向かって設けられている(図6参照)。具体的には、ねじ規制用リブ253は、ケース本体201の上面をケースカバー202により閉鎖した状態、つまり封止状態において、ねじ収納部209の板状部209aの直上に板状部209aと平行になるように配置されるように、膨出部カバー250aの上壁裏面254における板状部209aとの対向位置から下方に向かって設けられている。つまり、上壁裏面254における挿入孔209cの上面開口との対向位置から、挿入孔209cの上面開口に向けて所定長さ延設されている。具体的には、その下端が挿入孔209c内に挿入された各予備用ワンウェイねじ281の頭部284に近接する長さを有している。
封止状態において、膨出部カバー250aの上壁裏面254から下方に向けて延設されたねじ規制用リブ253によって、ねじ収納部209内に収納された予備用ワンウェイねじ281のねじ収納部209からの逸脱が防止される。すなわち、ねじ収納部209から予備用ワンウェイねじ281が逸脱して基板収納空間S1内に入り込み、基板を損傷させてしまうこと等が確実に防止される。
図6に示すように、側壁203における両膨出部カバー250a,250bの間には、複数(この実施の形態では4つ)の四角筒状の被固着部255a〜255dが、ケース本体201の各ねじ穴211a〜211dに対向する箇所に複数形成されている。それらの固着部によって第1被固着部255が構成されている。
各被固着部255a〜255dは、図15および図16(b)に示すように、ワンウェイねじ280および予備用ワンウェイねじ281を挿通可能な四角柱状のねじ挿入部256と、ねじ挿入部256と側壁230とを連接する連接部(ケースカバー202の一部)257とで構成されている。そして、連接部257を介してねじ挿入部256が側壁230から所定距離離間した状態で配置されている。よって、連接部257をニッパ等の工具で切断できる。また、連接部257は、ケースカバー202の一側縁である側壁230の外面から外方に向けて複数設けられ、各連接部257の先端に被固着部255a〜255dが設けられている。
ねじ挿入部256は、上面が開口する有底の筒体であり、内部にワンウェイねじ280を収納可能な大きさを有しているとともに、底板258には、ワンウェイねじ280の頭部284の直径よりも小径の取付孔259が形成されている。取付孔259は、封止状態において、各ねじ穴211a〜211dの対向位置に配置される。
図6および図12に示すように、ケース本体201側の被係止凹部215が形成されている側壁204に対応する側壁231には、先端に被係止凹部215に係止可能な上向きの係止条260が長手方向に設けられた係止片261が、外方に向けて設けられている。
このように構成されたケース本体201およびケースカバー202は、ケース本体201の上面開口がケースカバー202で塞がれた状態において、ケース本体201の側壁205の内面と、ケースカバー202の低被覆面部220aにおける側壁205の内面との対向辺である長辺220d(図10参照)端面との間に、垂直板500bを挿通可能な間隙部505が、側壁205の内面に沿って形成される(図14参照)。
次に、コネクタ規制部材500の構造について説明する。コネクタ規制部材500は、透明な合成樹脂材からなる板部材で形成され、図11に示すように、ケースカバー202の外側に装着可能に構成されている。板材の幅寸法は、ケースカバー202の長辺202dにおける長手方向の幅寸法よりも若干短い。コネクタ規制部材500は、装着時においてケースカバー202における低被覆面220aよりも若干大きめに形成される上板500aと、上板500aの外端から下方に向けて設けられる垂直板500bと、垂直板500bの下端から上板500aと平行になるように同方向に設けられる下板500cとで、略コ字形に形成されている。
上板500aにおける長辺500dには、複数の係合穴502のそれぞれに差し込み可能に、かつ、弾性変形可能に構成される。また、先端に上向きの係止爪501が形成された係止片が上板500aとほぼ平行になるように突出して設けられ、係止片を係合穴502からケースカバー202内に通した状態において、ケースカバー202の裏面における係合穴502の上縁に係止爪501が係止されるように形成されている。
上板500aには、各配線側コネクタ290a〜290cから延びる配線291a〜291cを通過させることが可能な細長長方形状の配線挿通用開口503a〜503cが長手方向に向けて形成されている。各配線挿通用開口503a〜503cから長辺500dに向けて、各配線291a〜291cを通すことが可能な配線挿通用スリット504a〜504cが設けられている。
各配線291a〜291cは、いわゆるフラットケーブルである。よって、配線挿通用開口503a〜503cおよび配線挿通用スリット504a〜504cは、横長長方形状に形成されている。すなわち、配線挿通用開口503a〜503cは、長辺および短辺が、配線側コネクタ290a〜290c本体の長辺および短辺よりも短く形成され、配線側コネクタ290a〜290cを通過させることは不可能であり、かつ、配線291a〜291cを通過させることが可能に形成されている。また、配線挿通用スリット504a〜504cは、配線291a〜291cを配線挿通用スリット504a〜504cに対して平行にした状態で長辺500d側から差し込み可能な幅寸法に形成されている。
よって、各配線291a〜291cを、長辺500d側から配線挿通用スリット504a〜504c内に差し込んで配線挿通用開口503a〜503cまで引き込むことによって、配線挿通用開口503a〜503c内に配置することができる。
また、これら配線挿通用スリット504a〜504cは、配線挿通用開口503a〜503cの開口長縁辺に対して傾斜するように、かつ、互いに平行に形成されているとともに、開口長縁辺における長手方向の中央位置から長辺500d側に向けて斜めに延設されている。これにより、配線挿通用スリット504a〜504cを介して引き込んだ配線291a〜291cを、配線挿通用開口503a〜503c内に斜めに進入させることができるため、配線挿通用開口503a〜503c内にスムーズに進入させることができる。
また、開口長縁辺の長手方向の中央位置から配線挿通用スリット504a〜504cが設けられているので、配線挿通用開口503a〜503c内に配線291a〜291cを配置した状態において、配線291a〜291cの列方向の両端が配線挿通用スリット504a〜504cとの連接部から離れ、配線291a〜291cが配線挿通用スリット504a〜504c内に逆戻りすることがない。すなわち、配線挿通用スリット504a〜504cの幅は、配線挿通用開口503a〜503cの一辺よりも狭い。
下板500cは、垂直板500bの下端から上板500aと同方向に向けて設けられ、その幅は、主基板31の短辺の幅寸法よりも若干短い。つまり、主基板31の裏面31b(実装面31aの反対面)ほぼ全域を被覆可能な長さである(図14参照)。
このように形成されたコネクタ規制部材500は、基板側コネクタ238a〜238cに接続された配線側コネクタ290a〜290cからの各配線291a〜291cを、配線挿通用スリット504a〜504cを介して配線挿通用開口503a〜503c内を通過させた後、ケースカバー202に対して側方から近接させ、係止爪501を係合穴502に差し込んで一端をケースカバー202に係止させることによって、ケースカバー202に対して仮止めすることができる。
この状態において、上板500aにより低被覆面部220aの上方および外側方が上板500aおよび垂直板500bにより被覆されるとともに、主基板31の裏面31bが下板500cにより被覆される。
次に、このように構成されたケース本体201とケースカバー202とで、主基板31を内部に収納して封止状態とするとともに、コネクタ規制部材500により配線側コネクタ290a〜290cを抜くことを規制する状況を説明する。
主基板31を封止状態で収納するときには、まず、ケースカバー202の裏面に設けられたキャップ保持部(図示せず)に、キャップ吊支体245を取り付けた後、主基板31をケースカバー202の裏面側に取り付ける。具体的には、図9に示すように、主基板31の実装面31aをケースカバー202の裏面に対向させた状態、つまり実装面31aを上方に向けた状態でケースカバー202の裏面側に押し当てる。そして、各コネクタ用開口236a〜236cに各基板側コネクタ238a〜238cが通るように、主基板31における位置決め用凸部241に対応する2つの角部に形成された位置決め孔243をそれぞれ位置決め用凸部241内に通して位置決めした状態で、主基板31の取付用支柱240に対応する2つの角部に形成されたねじ取付孔242に基板取付ねじ239を取り付け、ねじ穴240aに基板取付ねじ239をねじ止めする。
図10に示すように、主基板31をケースカバー202の裏面側に取り付けた状態において、各コネクタ用開口236a〜236cから、各基板側コネクタ238a〜238c本体上部がケースカバー202の外部に露出される。つまり、各基板側コネクタ238a〜238cの本体上面に形成された接続口238dがケースカバー202の外部に上向きに開放されるため、ケースカバー202に配線側コネクタ290a〜290cを通すことなく、各基板側コネクタ238a〜238cの接続口238dに各配線側コネクタ290a〜290cを差し込んで接続することができる。
次いで、図11に示すように、各基板側コネクタ238a〜238cに接続された各配線側コネクタ290a〜290cからの各配線291a〜291cを、長辺500d側から配線挿通用スリット504a〜504c内に差し込み、配線挿通用開口503a〜503c内を通した後、ケースカバー202に対して側方から近接させ、係止爪501を係合穴502に差し込んで一端をケースカバー202に係止させることによって、ケースカバー202に対して仮止めする。
このように、各基板側コネクタ238a〜238cに各配線291a〜291cの配線側コネクタ290a〜290cを接続した状態で、各配線291a〜291cを配線挿通用開口503a〜503cに簡単に通すことができる。また、配線291a〜291cにおける配線側コネクタ290a〜290cとは反対側の端部に設けられる配線側コネクタ(図示せず)等を、配線挿通用開口503a〜503cを通過させる必要がない上に、例えば、配線291a〜291cにおける配線側コネクタ290a〜290cとは反対側の端部が図示しない他の基板に対してコネクタ等を介さずに直接接続されている場合であっても、配線側コネクタ290a〜290cを配線挿通用開口503a〜503cを通過させる必要がなく、上板500aに大きな開口を形成しなくて済む。よって、コネクタ規制部材500の強度低下が防止される。
ケース本体201において、図8に示すように、ねじ収納部209の挿入孔209c(図16(a)参照)内に、予備用ワンウェイねじ281を収納しておく。このとき、各挿入孔209cの上面開口の上方からねじ部283を挿入孔209c内に通すだけで、簡単に収納することができる。この収納状態において、ねじ部283は挿入孔209c内に完全に収納され、頭部284のみが挿入孔209cの上面開口から外部に突出された状態で保持されている(図16(a)参照)。よって、収納された予備用ワンウェイねじ281を使用する際に、頭部284を手で摘むだけで簡単に取り出すことができる。
次いで、主基板31が一体的に取り付けられるとともに、コネクタ規制部材500が外側に仮止めされたケースカバー202で、ケース本体201の上面開口を閉鎖する。具体的には、図12に示すように、ケースカバー202の一方の短辺から外方に向けて突設された係止片260が下を向くようにケースカバー202を傾斜させた状態、すなわち、主基板31の裏面31bをケース本体201に対向させた状態で、ケース本体201における閉塞壁216の上端と垂下片204bの下端との間に係止片260を差し込む。そして、係止条260を被係止凹部215内に係止させた状態で、係止部を中心としてケースカバー202を図中矢印方向に向けて向けて回転させ、ケースカバー202をケース本体201の側壁203〜206により囲まれた空間内に嵌め込む。
ケース本体201の膨出部208a,208bの膨出空間S2,S3内に膨出部カバー250a,250bが嵌め込まれて、両係止爪251がそれぞれ係止穴210の開口上端縁に係止される。その結果、ケースカバー202の一方の短辺側が係止条260と被係止凹部215とにより係止されるとともに、他方の短辺側が係止爪251と係止孔251とにより係止され、ケースカバー202がケース本体201に対して仮止めされる。なお、この状態では、係止穴210の外方からそれぞれの係止爪251を内側に向けて押し込んで係止状態を解除すれば、ケースカバー202を簡単に開放させることができる。
この状態において、膨出部カバー250aの上壁裏面254から下方に向かって設けられているねじ規制用リブ253の下端が、ねじ収納部209に収納された3本の予備用ワンウェイねじ281の頭部284に近接した状態で配置される。従って、予備用ワンウェイねじ281がねじ収納部209から逸脱して基板収納空間S1内に入り込み、主基板31の配線パターン等を傷つけて断線させてしまうこと等が防止される。
また、ケースカバー202の各側壁230〜233の下端が、ケース本体201の側壁203〜206の上端よりも下方に深く入り込んだ状態になるので、ケース本体201とケースカバー202との間から針金等の異物を進入しにくくなる。
また、ねじ収納部209は、膨出部208aの膨出空間S2内に設けられているので、主基板31が基板収納空間S1内におけるねじ収納部209の上端よりも下方位置に配置された状態でも(図16(b)参照)、ねじ収納部209と干渉することがない。
また、図14に示されるように、ケース本体201の側壁205の内面とケースカバー202の低被覆面部220aの長辺220dとの間に形成される間隙部505に、コネクタ規制部材500の垂直板500bが差し込まれた状態で配置される。また、下板500cの下面全域がケース本体201の底板201a上面に載置される。コネクタ規制部材500は、ケース本体201に対して安定的に保持されるとともに、主基板31の裏面31bが下板500cにより被覆される。
つまり、ケースカバー202に対して係止爪501を介して一端側が係止されたコネクタ規制部材500は、その一部を構成する他端側の下板500cおよび垂直板500bの下部がケース内部に配置される。
さらに、この状態において、ケース本体201の第2被固着部212の上方に、ケースカバー202の第1被固着部255が配置される。すなわち、固着片212aの上面に各被固着部255a〜255dが載置されると、各ねじ穴211a〜211dと各取付孔259とが合致し、ワンウェイねじ280を通すことが可能な状態になる。ここで、4つの被固着部255a〜255dのうち、いずれか1つ(例えば、被固着部255a)のねじ挿入部256の上面開口からワンウェイねじ280を挿入し、ねじ部283の先端を取付孔259に差し込んだ状態で、マイナスドライバー等の工具によりワンウェイねじ280を時計回りにねじ込む。
図6に示す例では、被固着部255aのねじ挿入部256の上面開口からワンウェイねじ280が挿入される。そして、ワンウェイねじ280が時計回りにねじ込まれる。
すると、図15に示すように、ねじ部283の外周に形成された雄ねじのねじ切り作用によって、ねじ部283が取付孔259を貫通して、固着片212aおよび筒状部212b内に貫通形成されたねじ穴211a内にねじ止めされ、固着片212aおよび被固着部255a、つまり第2被固着部212と第1被固着部255とがワンウェイねじ280を介して固着(かしめ)される。
すなわち、ケースカバー202は、一方の短辺側が係止条260が被係止凹部215により係止され、他方の短辺側がワンウェイねじ280を介して固着されていることにより、ケース本体201に対してケースカバー202が開放不能に固着され、主基板31は、実装面31aおよび裏面31bがこれらケース本体201およびケースカバー202により被覆された状態で、基板収納ケース200内に封止状態で収納される。
ワンウェイねじ280を完全にねじ込んだ後、その上方から、接着剤Zをねじ挿入部256内に注入した後、キャップ244を被固着部255aの上面開口に嵌め込んで、頭部284の上面に形成された溝等を被覆することにより、ワンウェイねじ280を取り外しにくくすることができる。
なお、この実施の形態では、最初の封止の際に用いられるキャップ244は、有色のキャップであり、キャップ吊支体245に繋げられた予備用のキャップ265は、最初の封止の際に用いられるキャップ244とは異なる色(透明であってもよい)のものである。よって、何らかの不正行為がなされた後に被固着部255aに遊技機の中古機から入手した予備用のキャップ265を装着できたとしても、直ちにそのことが視認される。
有色のキャップ244を用いることに代えて、または、有色のキャップ244を用いるとともに、接着剤Zとして、色付接着剤を用いるようにしてもよい。透明な合成樹脂材からなるねじ挿入部256内に色付接着剤が注入されることによって、ワンウェイねじ280に対する何らかのアクセスがあった場合において、色付の接着剤Zが抉り取られた痕跡等が色により視認しやすくなるため、透明なねじ挿入部256の外部からでも不正行為の痕跡を発見しやすくなる。
また、ねじ挿入部256に接着剤を注入することに代えて、被固着部255aの上面開口にキャップ244を載置した後、熱溶着や超音波溶着によってキャップ244を固着するようにしてもよい。溶着で固着する場合には、接着剤で固着する場合に比べて、より強固に固着される。
また、この封止状態を解除してケースカバー202を開放しようとする場合、ワンウェイねじ280を反時計回りに回して取り外すことができないので、ケース本体201またはケースカバー202の一部を破壊するか、あるいは、連接部257をニッパ等の工具により切断し、固着片212aにワンウェイねじ280を介して固着されている被固着部255aのねじ挿入部256をケースカバー202から切り離すしかない。
つまり、破壊または切断のいずれの方法をとるにせよ、封止状態を解除してケースカバー202を開放した場合には、破壊または切断の痕跡が残る。その結果、例えば不正行為によりケースカバー202が開放された場合でも、早期のうちに不正行為が行われたことを発見することができる。よって、万が一不正な遊技制御プログラムが格納されたROMを有する主基板等にすりかえられた場合でも、早期に発見して対処することができる。従って、その状態で遊技が行われて遊技店が不利益を被ることを回避することができる。
なお、連接部257をニッパ等の工具により切断して正規に封止状態を解除した場合には、ねじ収納部209に収納されている予備用ワンウェイねじ281を取り出し、3つの被固着部255b〜255dのうち、いずれか1つ(例えば、被固着部255b)のねじ挿入部256の上面開口から予備用ワンウェイねじ281を挿入し、ねじ部283の先端を取付孔259(図15および図16(a)参照)に差し込んだ状態で、マイナスドライバー等の工具により予備用ワンウェイねじ281を時計回りにねじ込む。そして、キャップ吊支体245に繋げられている複数のキャップ265から1つのキャップ265を外し、キャップ265を被固着部255bの上面開口に嵌め込んで、頭部284の上面に形成された溝等を被覆する。キャップ265を装着する際に、キャップ265に下端に設けられている係止爪267を被固着部255bの内面に形成された段部266に係止することによって(図7参照)、キャップ265は、被固着部255bの上面開口を閉塞するように保持される。
キャップ265には、キャップ265から突出するように係止爪267が設けられているが、最初に固着に用いられるキャップ244には、係止爪267は設けられていない。また、図7に示すように2回目以降の固着に用いられる被固着部255b〜255dの内面には段部266が形成されているが、図6に示すように最初の固着に用いられる被固着部255aには、段部266は形成されていない。すなわち、最初の固着に用いられるキャップ244および被固着部255aの形状は、2回目以降の固着に用いられるキャップ265および被固着部255b〜255dの形状と異なっている。従って、キャップ265を被固着部255aに装着することはできない。よって、ワンウェイねじ取り外し専用の特殊な工具等でワンウェイねじ280による接合が不正に解除され、不正行為を隠すために、具体的にはケースカバーを開放した痕跡を残さないようにするために、基板に対する不正行為を行った後、遊技機の中古機から入手した予備用ワンウェイねじ281で接合部を接合したとしても、さらに、遊技機の中古機から入手した予備用のキャップ265で被固着部255aの上面を覆うことは困難である。よって、不正行為が行われたことを隠蔽することが困難になる。
なお、この実施の形態では、キャップ244の形状と予備用のキャップ265の形状とを変え、被固着部255aの形状と2回目以降の固着に用いられる被固着部255b〜255dの形状とを変えることによって、他の固着部被覆部材(この例ではキャップ265)が一の収納部(この例では被固着部255a)に装着不能になるように収納部を形成することを実現したが、キャップ244の形状と予備用のキャップ265の形状とが同じであり、被固着部255aの形状と2回目以降の固着に用いられる被固着部255b〜255dの形状とが同じである場合にも、他の固着部被覆部材が一の収納部に装着不能に収納部を形成することを実現することができる。例えば、被固着部255aを、被固着部255b〜255dと同様に、突出するような係止爪を有する形状にする。また、キャップ244を、予備用のキャップ265と同様に、内面に段部が形成された形状にする。そして、最初の固着の際に、被固着部255aにキャップ244を装着(被固着部255aの係止爪を、被固着部255aの段部に係合させる。)し、熱溶着や超音波溶着によってキャップ244を被固着部255aに固着する。すると、熱溶着や超音波溶着の際に、段部の形状が崩れ、係止爪を係合不能な形状に変形する。または、段部が存在しなくなる。そのような状況において、何らかの手段で被固着部255aからキャップ244を取り外してワンウェイねじ280を外した後不正行為を行ったとしても、不正行為を隠蔽するために、例えば遊技機の中古機から入手した予備用のキャップ265で被固着部255aの上面を覆うことは困難である。上記のように、キャップ265から突出する係止爪267を受け入れる段部が既に被固着部255aにおいて変形しているからである。よって、不正行為の隠蔽を困難にすることができる。その結果、不正行為をしづらくすることができる。
また、図15および図16には、ワンウェイねじ280を用いた場合の例が示されているが、予備用ワンウェイねじ281を用いる場合にも、ワンウェイねじ280を用いた場合と同様に、ケース本体201とケースカバー202とを固着することができる。ただし、予備用ワンウェイねじ281の色はワンウェイねじ280の色とは異なっているので、不正行為を行った後、遊技機の中古機から入手した予備用ワンウェイねじ281で接合部を接合したとしても、不正行為の発見は容易である。
また、ワンウェイねじ280によりケース本体201に対してケースカバー202が開放不能に固着された封止状態にされるので、ケースカバー202の外側に仮止めされたコネクタ規制部材500が、ケースカバー202から離脱不能に保持されるとともに、基板側コネクタ238a〜238cに接続された配線側コネクタ290a〜290cの抜脱が上板500aとの当接により規制される。
具体的には、図14に示すように、ケース本体201に対してケースカバー202が開放不能に固着された封止状態において、コネクタ規制部材500は、下板500cが主基板31の裏面31bを被覆するようにその下方に配置されることによって、その上方への移動が、ケース本体201に固着されたケースカバー202の裏面側に取り付けられた主基板31との当接により規制される。
また、下板500cから上向きに連設された垂直板500bが、ケースカバー202の長辺220dとケース本体201の側壁205内面とに挟持されるとともに、係止爪501が係合穴502に係止されることによって、ケース本体201の底板201a上でのスライド移動が規制されるとともに、上板500aの変形も防止される。特に、垂直板500bの外面が側壁205の内面に上下方向にわたり密着した状態で保持されるので、垂直板500bの外側への変形も防止される。つまり、下板500c,垂直板500b,ケースカバー202の長辺220dおよび側壁205によって、規制部材保持手段が構成されている。
コネクタ規制部材500の上方および水平方向の移動が規制されることによって、コネクタ規制部材500のケースカバー202からの離脱が防止され、安定して基板収納ケース200に保持される。そして、基板収納ケース200に保持されたコネクタ規制部材500の上板500aによって、ケースカバー202における低被覆面部220aの上面が被覆されるとともに、垂直板500bの上部,傾斜被覆面部220c,ケースカバー202の一部により低被覆面部220aの上方側周面が被覆される。よって、基板側コネクタ238a〜238cおよび配線側コネクタ290a〜290cが外部から遮断される。従って、コネクタの接続部に対する不正行為が防止される。
また、図14に示すように、基板側コネクタ238a〜238cに接続された配線側コネクタ290a〜290cの上方近傍に上板500aが配置されるので、配線側コネクタ290a〜290cを基板側コネクタ238a〜238cから抜脱しようとする際に、配線側コネクタ290a〜290cの本体上面における配線291a〜291cの延出部周囲が、上板500aの裏面における配線挿通用開口503a〜503cの周囲(当接規制部)に当接される。すなわち、配線側コネクタ290a〜290cの抜脱方向への移動が上板500aにより当接規制されるため、基板側コネクタ238a〜238cに正規以外の不正部品が接続された配線が接続されることを効果的に防止できる。
また、下板500cは主基板31の裏面31bを被覆可能な大きさに形成されているので、封止状態において、裏面31bに形成された配線パターン等に対する不正行為も抑制できるとともに、安定性も向上する。なお、この実施の形態では、下板500cは主基板31の裏面31bを被覆可能な大きさに形成されていたが、コネクタ規制部材500の上方への移動を主基板31の裏面31bとの当接により規制可能な長さを有していれば、裏面31b全域を被覆可能な大きさに形成されていなくてもよい。
次に、第2被固着部212と第1被固着部255とをワンウェイねじ280を介して固着して封止状態を構成した後、主基板31の故障や検査等により主基板31を取り出すために封止状態を解除し、再度封止状態とする場合について説明する。
なお、ねじ穴211a〜211dおよび被固着部255a〜255dを複数形成し、繰り返し封止状態とすることができるようにするのは、例えばメーカが主基板31を遊技店等に出荷する際に、主基板31を基板収納ケース200内に封止状態で収納するために、1つのねじ穴211a〜211dおよび被固着部255a〜255dを使用した後、遊技店において、上記のように主基板31が故障して交換する場合や検査等を行うために主基板31を取り出す場合等において、封止状態を解除することがあるからである。その後再度封止状態にする際に他のねじ穴211a〜211dおよび被固着部255a〜255dを使用するので複数必要になる。
再度封止状態にする場合には、ケースカバー202を開放したときに、キャップ吊支体245からキャップ265を1つ分離して取り出しておくとともに、ねじ収納部209から予備用ワンウェイねじ281を1本取り出しておく。そして、ケース本体201の上面開口をケースカバー202により閉鎖する。ここで、まだ連接部257が切断されていない被固着部255b〜255dのうちいずれかに予備用ワンウェイねじ281を挿入し、ねじ穴211bにねじ止めして、第2被固着部212と第1被固着部255とを固着して封止状態を構成することができる。
このように、第2被固着部212としてのねじ穴211a〜211dおよび第1被固着部255としての被固着部255a〜255dが複数設けられているので、ケース本体201やケースカバー202の一部を破壊することなく連接部257を切断するだけで、基板収納ケース200を交換すること等なく、封止状態を解除した後でも、封止状態を複数回繰り返し構成することができる。
図17は、主基板31における回路構成および主基板31から演出制御基板80に送信される演出制御コマンドの信号線を示すブロック図である。図17に示すように、この実施の形態では、主基板31が搭載する遊技制御用マイクロコンピュータ560は、演出制御信号送信用の8本の信号線CD0〜CD7を用いて、演出制御コマンドを演出制御基板80に送信する。また、主基板31と演出制御基板80との間には、ストローブ信号を送受するための演出制御INT信号の信号線も配線されている。
主基板31には、図17に示すように、第1始動口スイッチ13aおよび第2始動口スイッチ14aからの配線が接続されている。また、主基板31には、大入賞口である特別可変入賞球装置20や、その他の入賞口への遊技球の入賞等を検出するための各種スイッチ29a,30a,33a,39aからの配線も接続されている。さらに、主基板31には、可変入賞球装置15を開閉するソレノイド16、および特別可変入賞球装置20を開閉するソレノイド21への配線が接続されている。なお、第1始動口スイッチ13aおよび第2始動口スイッチ14aからの入力は、遊技制御用マイクロコンピュータ560が搭載する乱数回路5003にも、ラッチ信号として直接入力される。
主基板31は、遊技制御用マイクロコンピュータ560、入力ドライバ回路58および出力回路59を搭載する。遊技制御用マイクロコンピュータ560は、クロック回路5001、システムリセット手段として機能するリセットコントローラ5002、乱数回路5003、ゲーム制御用のプログラム等を記憶するROM54、ワークメモリとして使用されるRAM55、プログラムに従って動作するCPU56、CPU56に割込要求信号(タイマ割込による割込要求信号)を送出するCTC5004およびI/Oポート部57を内蔵する。
クロック回路5001は、システムクロック信号を出力するシステムクロック回路(図示せず)とは別に設けられる。この実施の形態では、遊技機が内蔵する(遊技制御用マイクロコンピュータ560の外部に設けられた)発振器が発生する所定周波数(例えば、10.0MHz)のクロック信号が遊技制御用マイクロコンピュータ560に入力され、遊技制御用マイクロコンピュータ560の各部で分周されて乱数回路5003などの各部に入力される。遊技制御用マイクロコンピュータ560のクロック回路5001は、発振器から入力したクロック信号を27(=128)分周して生成した所定の周期の基準クロック信号CLKを、乱数回路5003に出力する。なお、この実施の形態では、遊技制御用マイクロコンピュータ560は、内蔵するシステムクロック回路が出力する所定周波数(例えば、6.0MHz)のシステムクロック信号にもとづいて動作する。従って、この実施の形態では、クロック回路5001が乱数回路5003に出力する基準クロック信号CLKの周波数と、遊技制御用マイクロコンピュータ560の動作周波数とが異なるように構成されている。そのように構成することによって、遊技制御用マイクロコンピュータ560の外部からカウント値の更新周期を認識されてしまうことを防止することができ、初期化させてから大当り遊技状態に移行させると判定されるタイミングで、外部接続基板(ぶら下げ基板)から信号を入力することによって大当りが狙われてしまうことを防止する効果をより向上させることができる。
なお、遊技制御用マイクロコンピュータ560が乱数回路5003を内蔵するものではなく、遊技制御用マイクロコンピュータ560に外付けの乱数回路を用いる場合であっても、クロック回路5001は、システムクロック信号を出力するシステムクロック回路(図示せず)とは別に設けられる。そして、クロック回路5001は、遊技制御用マイクロコンピュータ560の外部に設けられた発振器から入力した所定周波数(例えば、10.0MHz)のクロック信号を27(=128)分周して生成した所定の周期の基準クロック信号CLKを、外付けの乱数回路に出力するように構成される。そのように構成されることによって、外付けの乱数回路を用いる場合であっても、クロック回路5001が外付けの乱数回路に出力する基準クロック信号CLKの周波数と、遊技制御用マイクロコンピュータ560の動作周波数とが異なるように構成することができる。なお、外付けの乱数回路を用いる場合、クロック回路5001は、遊技制御用マイクロコンピュータ560に内蔵されるものであってもよく、遊技制御用マイクロコンピュータ560の外部に設けられていてもよい。
また、クロック回路5001は、遊技制御用マイクロコンピュータ560の外部に設けられた発振器から入力したクロック信号を分周せずに、そのまま基準クロック信号CLKとして乱数回路5003(または、遊技制御用マイクロコンピュータ560に外付けの乱数回路)に出力してもよい。そのようにしても、発振器が発生するクロック信号の周波数(例えば、10.0MHz)と、システムクロック回路が出力するシステムクロック信号の周波数(例えば、6.0MHz)とが異なっていれば、乱数回路5003(または、遊技制御用マイクロコンピュータ560に外付けの乱数回路)に出力する基準クロック信号CLKの周波数と、遊技制御用マイクロコンピュータ560の動作周波数とが異なるように構成することができる。
また、例えば、クロック回路5001をシステムクロック回路とは別に設けるのではなく、共通のクロック回路を用いて、CPU56と乱数回路5003(または、遊技制御用マイクロコンピュータ560に外付けの乱数回路)とにクロック信号を出力するようにしてもよい。この場合、例えば、クロック回路とCPU56との間およびクロック回路と乱数回路5003(または、遊技制御用マイクロコンピュータ560に外付けの乱数回路)との間に、それぞれ異なる分周数の分周器を設けるようにすればよい。例えば、クロック回路が出力するクロック信号を2分周器で2分周した信号を乱数回路5003(または、遊技制御用マイクロコンピュータ560に外付けの乱数回路)に入力するようにし、クロック回路が出力するクロック信号を3分周器で3分周した信号をCPU56に入力するようにしてもよい。そのようにしても、乱数回路5003(または、遊技制御用マイクロコンピュータ560に外付けの乱数回路)に出力する基準クロック信号CLKの周波数と、遊技制御用マイクロコンピュータ560の動作周波数とが異なるように構成することができる。また、乱数回路5003(または、遊技制御用マイクロコンピュータ560に外付けの乱数回路)に入力するクロック信号の周期が、CPU56に入力するクロック信号の周期よりも短くなるように構成してもよい。
また、CPU56と乱数回路に入力されるクロック信号に関しては、以下のように構成してもよい。
(1)例えば、乱数回路5003が遊技制御用マイクロコンピュータ560に内蔵されている場合に、CPU56の動作クロック信号を発生するために遊技制御用マイクロコンピュータ560外部に設けられた発振器とは別に、遊技制御用マイクロコンピュータ560外部に設けられた発振器からのクロック信号が遊技制御用マイクロコンピュータ560に入力されるようにしてもよい。そして、遊技制御用マイクロコンピュータ560は、入力したクロック信号を乱数回路5003に入力し、乱数回路5003内のカウンタ521を更新するようにしてもよい。
(2)また、例えば、乱数回路5003が遊技制御用マイクロコンピュータ560に内蔵されている場合に、CPU56の動作クロック信号を発生するために、遊技制御用マイクロコンピュータ560外部に設けられた発振器からのクロック信号が遊技制御用マイクロコンピュータ560に入力するようにしてもよい。そして、遊技制御用マイクロコンピュータ560は、入力したクロック信号をCPU56および乱数回路5003に入力し、乱数回路5003内のカウンタ521を更新するようにしてもよい。この場合、遊技制御用マイクロコンピュータ560に入力された後に、CPU56に入力する前にクロック信号を分周するとともに、乱数回路5003に入力する前にクロック信号を分周するようにすればよい。
(3)また、例えば、乱数回路が遊技制御用マイクロコンピュータ560の外部に設けられている場合には、遊技制御用マイクロコンピュータ560の外部に設けられた1つの発振器からのクロック信号を分岐して、遊技制御用マイクロコンピュータ560と外付けの乱数回路とに入力するようにしてもよい。そして、遊技制御用マイクロコンピュータ560の外部でクロック信号を分周または遊技制御用マイクロコンピュータ560の内部でクロック信号を分周して動作クロック信号としてCPU56に入力するとともに、外付けの乱数回路に入力する前にクロック信号を分周して、外付けの乱数回路に入力するようにしてもよい。
(4)また、例えば、乱数回路が遊技制御用マイクロコンピュータ560の外部に設けられている場合には、遊技制御用マイクロコンピュータ560の動作クロック信号用の発振器と、外付けの乱数回路のカウンタを更新するための発振器とを、それぞれ別個に遊技制御用マイクロコンピュータ560の外部に設けるようにし、それぞれの発振器により発生させるクロック信号の周波数を異ならせるようにしてもよい。
上記(1)〜(4)に示すように、いずれにしても遊技制御用マイクロコンピュータ560を動作させるために遊技制御用マイクロコンピュータ560に入力されるクロック信号を発生する発振器を備えるようにし、当該発振器により発生されたクロック信号によりCPU56が動作するために分周された動作クロック信号と、乱数回路(遊技制御用マイクロコンピュータ560内蔵の乱数回路5003でも、遊技制御用マイクロコンピュータ560に外付けの乱数回路でも、いずれでもよい。)に入力されるクロック信号とで周波数が異なればよい。特に、乱数回路に入力されるクロック信号の周波数の方が高周波である場合には、遊技制御用マイクロコンピュータ560から出力されるコマンドなどの信号により乱数の更新周期を認識されてしまうことを防止できるので、より好ましい。
リセットコントローラ5002は、ローレベルの信号が一定期間入力されたとき、CPU56および乱数回路5003に所定の初期化信号を出力して、遊技制御用マイクロコンピュータ560をシステムリセットする。
また、この実施の形態では、乱数回路5003は、16ビットの疑似乱数を発生する乱数回路である。乱数回路5003は、16ビットで発生できる範囲(すなわち、0から65535までの範囲)の値の乱数を発生する機能を備える。
次に、乱数回路5003の構成について説明する。図18は、乱数回路5003の構成例を示すブロック図である。図18に示すように、乱数回路5003は、カウンタ521、比較器522、カウント値順列変更回路523、クロック信号出力回路524、カウント値更新信号出力回路525、乱数更新方式選択信号出力回路527、セレクタ528、乱数回路起動信号出力回路530、第1乱数値記憶回路(第1ラッチ回路)531a、および第2乱数値記憶回路(第2ラッチ回路)531aを含む。なお、以下、遊技制御用マイクロコンピュータ5003が搭載する乱数回路5003について説明するが、演出制御用マイクロコンピュータ100が搭載する乱数回路107の基本的な機能および動作についても同様である。
この実施の形態では、乱数回路5003が発生するハードウェア乱数は、複数種類の識別情報の可変表示の表示結果を特定の表示結果とするか否か(例えば、特別図柄表示装置8の表示図柄の組み合わせを大当り図柄の組み合わせとするか否か)を判定するための大当り判定用乱数を生成するために用いられる。また、遊技制御用マイクロコンピュータ560は、後述するように、乱数回路5003が発生するハードウェア乱数(ランダムR)と、ソフトウェア乱数(ランダム2−1)とを用いて、大当り判定用乱数を生成する。そして、遊技制御用マイクロコンピュータ560のCPU56は、生成した大当り判定用乱数にもとづいて特定の表示結果とすると判定すると、遊技状態を遊技者にとって有利な特定遊技状態(例えば、大当り遊技状態)に移行させる。なお、乱数回路5003が発生した乱数を、確変とするか否かを決定するための確変判定用乱数や、特別図柄の変動パターンを決定する変動パターン判定用乱数など、大当り図柄以外の判定用乱数を生成するために用いてもよい。
カウンタ(ハードウェアカウンタ)521は、セレクタ528によって選択された所定の信号を入力し、セレクタ528から入力する信号に応答してカウント値Cを出力する。この場合、カウンタ521は、所定の初期値を入力し、カウント値Cを一定の規則に従って初期値から所定の最終値まで循環的に更新して出力する。また、カウンタ521は、カウント値Cを最終値まで更新すると、カウント値Cを最終値まで更新した旨を示す通知信号をCPU56に出力する。この実施の形態では、カウンタ521から通知信号が出力されると、CPU56によって初期値が更新される。
この実施の形態において、カウンタ521は、セレクタ528から信号を入力するごとに(セレクタ528からの信号における立ち上がりエッヂが入力されるごとに)、カウント値Cを「0」から「65535」まで1ずつカウントアップする。また、カウンタ521は、カウント値Cを「65535」までカウントアップすると、カウント値Cを最終値まで更新した旨を示す通知信号をCPU56に出力する。すると、CPU56は、カウンタ521から通知信号を入力し、初期値を更新する。そして、カウンタ521は、CPU56によって更新された初期値から「65535」まで、再びカウント値Cをカウントアップする。また、「65535」までカウントアップすると、カウンタ521は、再び「0」からカウントを開始する。そして、カウンタ521は、更新後の初期値の1つ前の値(最終値)までカウントアップすると、通知信号をCPU56に出力する。なお、この実施の形態では、比較器522は、後述するように、全てのカウント値を入力すると通知信号をカウンタ521に出力する。この場合、カウンタ521は、比較器522から通知信号を入力すると、カウント値をリセットして「0」にする。
なお、比較器522は、入力したカウント値が乱数最大値設定レジスタ535に設定されている乱数最大値より大きいか否かを判断し、カウント値が乱数最大値より大きい(乱数最大値を超えた)と判断すると、通知信号をカウンタ521に出力してもよい。この場合、例えば、比較器522は、カウント値が乱数最大値を超えたと判断すると、クロック信号出力回路524が次に乱数発生用クロック信号SI1を出力する前に、通知信号をカウンタ521に出力する。例えば、乱数最大値設定レジスタ535に乱数最大値「256」が設定されている場合を考える。この場合、カウンタ521が「0」から「256」までカウントアップし、さらにカウント値「257」を出力すると、比較器522は、入力したカウント値「257」が乱数最大値「256」を超えたと判断し、カウンタ521に通知信号を出力する。比較器522から通知信号を入力すると、カウンタ521は、クロック信号出力回路524からの乱数発生用クロック信号SI1の入力を待つことなく、カウント値を「258」に更新し出力する。以上の処理を繰り返し実行することによって、比較器522は、カウント値「257」から「65535」まで入力している間、カウント値が乱数最大値を超えていると判断して、繰り返しカウンタ521に通知信号を出力する。そして、カウンタ521は、比較器522から通知信号を入力している間、クロック信号出力回路524からの乱数発生用クロック信号SI1の入力を待つことなく、カウント値を繰り返し更新し出力する。そのようにすることによって、クロック信号出力回路524が次に乱数発生用クロック信号SI1を出力するまでの間に、「257」から「65535」までカウント値を高速にカウントアップさせるように制御し、「257」から「65535」までの乱数値を読み飛ばす(第1乱数値記憶回路531aおよび第2乱数値記憶回路531bに記憶させない)ように制御する。
カウント値順列変更回路523は、カウント値順列変更レジスタ(RSC)536、更新規則選択レジスタ(RRC)542および更新規則メモリ543を含む。カウント値順列変更レジスタ536は、カウンタ521がカウントアップするカウント値Cの更新順である順列(初期値から最終値までの並び順)を変更させるためのカウント値順列変更データ「01h」を格納する。カウント値順列変更回路523は、カウント値順列変更レジスタ536に数値順列変更データ「01h」が格納されているとき、カウンタ521がカウントアップして更新するカウント値Cの順列を、カウント値順列変更データ「01h」が格納されていないときとは異なる順列に変更する。この場合、カウント値順列変更回路523は、数値順列変更データ「01h」が格納されているとき、カウント値の順列の変更に用いる更新規則を切り換える。また、カウント値の順列の変更に用いる更新規則を切り換えた後に、カウンタ521がカウント値の更新を開始すると、カウント値順列変更レジスタ536のカウント値順列変更データは、CPU56によって、「01h」から初期値である「0(=00h)」に戻される(クリアされる)。
なお、CPU56によってカウント値順列変更データをクリアするのでなく、乱数回路5003側でカウント値順列変更データをクリアするようにしてもよい。例えば、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」が書き込まれたことにもとづいて、更新規則選択レジスタ(RRC)542にレジスタ値が設定されると、カウント値順列変更回路523は、カウント値順列変更レジスタ536のレジスタ値をクリアするようにしてもよい。
図19は、更新規則選択レジスタ542の例を示す説明図である。更新規則選択レジスタ542は、カウンタ521が出力するカウント値の並び順の並べ替え(順列の変更)に用いる更新規則を設定するレジスタである。この実施の形態では、更新規則選択レジスタ542にレジスタ値が設定されることによって、カウンタ521が出力するカウント値の順列の変更に用いる更新規則が設定される。図19に示すように、更新規則選択レジスタ542は、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、更新規則選択レジスタ542は、ビット0〜ビット3が書込および読出ともに可能な状態に構成されている。また、更新規則選択レジスタ542は、ビット4〜ビット7が書込および読出ともに不可能な状態に構成されている。したがって、更新規則選択レジスタ542のビット4〜ビット7に値を書き込む制御を行っても無効とされ、ビット4〜ビット7から読み出す値は全て「0(=0000b)」である。
更新規則選択レジスタ542の値(レジスタ値)は、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」が書き込まれたことに応じて、レジスタ値が「0(=00h)」から「15(=0Fh)」まで循環的に更新される。すなわち、カウント値順列変更レジスタ536にカウント値順列データ「01h」が書き込まれるごとに、更新規則選択レジスタ542のレジスタ値は、「0」から「1」ずつ加算され、「15」になると再び「0」に戻る。
図20は、更新規則メモリ543の例を示す説明図である。図20に示すように、更新規則メモリ543は、更新規則選択レジスタ542の値(レジスタ値)と、カウント値の更新規則とを対応付けて格納している。図20に示す例では、例えば、更新規則選択レジスタ542にレジスタ値1が設定されている場合、更新規則Bを用いて、カウンタ521が出力するカウント値の順列が変更されることが分かる。なお、図20において、更新規則Aは、カウンタ521がカウント値Cを更新する規則と同一の更新規則であり、レジスタ値「0」に対応づけて更新規則メモリ543に格納される。また、更新規則メモリ543には、カウンタ521がカウント値Cを更新する更新規則とは異なる更新規則B〜Pが、レジスタ値「1」〜「15」に対応づけて格納される。
カウント値順列変更回路523は、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」が書き込まれている場合、まず、カウンタ521からカウント値の最終値「65535」が最初に入力されるまで、現在設定されている更新規則に従って、そのままカウント値を出力する。そして、カウント値順列変更回路523は、カウンタ521からカウント値の最終値「65535」を入力すると、カウント値の更新規則を変更する。なお、CPU56によって初期値が変更されている場合には、カウント値順列変更回路523は、カウンタ521から変更後の最終値(初期値の1つ前の値)まで入力すると、カウント値の更新規則を変更することになる。
カウント値順列変更回路523は、更新規則選択レジスタ542のレジスタ値に対応する更新規則を更新規則メモリ543から選択し、カウント値の順列の変更に用いる更新規則として設定する。また、カウント値順列変更回路523は、カウンタ521によって再び初期値「0」から順にカウント値の更新が開始されると、設定した更新規則に従って、カウント値の初期値から最終値までの順列を変更する。なお、CPU56によって初期値が変更されている場合には、カウント値順列変更回路523は、カウンタ521によって変更後の初期値から順にカウント値の更新が開始されると、設定した更新規則に従って、カウント値の初期値から最終値までの順列を変更することになる。そして、カウント値順列変更回路523は、変更した順列に従ってカウント値を出力する。
なお、この実施の形態では、後述する乱数最大値設定レジスタ535に乱数最大値が設定されていることによって、発生させる乱数の最大値が制限されている場合、カウント値順列変更回路523は、カウント値Cを乱数最大値以下に制限して順列を変更して出力する。例えば、乱数最大値設定レジスタ535に乱数最大値「256」が設定されているものとし、カウント値順列変更回路523が、更新規則Aから更新規則Bに変更して、カウント値の順列を変更するものとする。この場合、カウント値順列変更回路523は、比較器522の乱数最大値設定レジスタ535に設定されている乱数最大値「256」にもとづいて、更新規則Bに従って、カウント値の順列を「256→255→・・・→0」に変更して出力する。
以上のように、カウント値順列変更回路523は、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」が書き込まれている場合、更新規則を切り替えて用いることによって、カウント値Cの順列を変更して出力する。そのため、乱数回路5003が生成する乱数のランダム性を向上させることができる。
図21は、カウント値順列変更回路523が、カウンタ521が出力するカウント値の順列を変更する場合の例を示す説明図である。図21に示すように、CPU56は、所定のタイミングで、カウント値順列変更データ「01h」をカウント値順列変更レジスタ536に書き込む。すると、更新規則選択レジスタ542のレジスタ値が1加算される。例えば、更新規則選択レジスタ542のレジスタ値が「0」から「1」に更新される。レジスタ値が更新されると、カウント値順列変更回路523は、カウンタ521から最初にカウント値の最終値「65535」が入力されるまで、更新前のレジスタ値「0」に対応する「更新規則A」に従ってカウント値を更新して出力する。このとき、カウント値順列変更回路523は、更新規則Aに従って、「0→1→・・・→65535」の順列でカウント値を出力する。
カウンタ521からカウント値の最終値「65535」が入力されると、カウント値順列変更回路523は、更新規則メモリ543から、更新後のレジスタ値「1」に対応する「更新規則B」を選択して設定する。カウント値順列変更回路523は、カウンタ521から再び初期値「0」以降のカウント値の入力を開始すると、選択設定した「更新規則B」に従って、カウント値の順列を変更して出力する。本例では、カウント値順列変更回路523は、順列を「0→1→・・・→65535」から「65535→65534→・・・→0」に変更して、カウント値を出力する。
その後、カウント値順列変更レジスタ536は、後述するように、カウント値順列変更回路523が切り替え後の更新規則に従ってカウント値の更新動作を開始したことに応じてリセットされる。そして、次にカウント値順列変更データ「01h」がカウント値順列変更レジスタ536に書き込まれるまで、カウント値順列変更回路523は、「65535→65534→・・・→0」のままの順列で、カウント値を出力し続ける。
CPU56によってカウント値順列変更データ「01h」がカウント値順列変更レジスタ536に再度書き込まれると、カウント値順列変更レジスタ536のレジスタ値が「1」から「2」に更新される。そして、カウンタ521からカウント値の最終値「65535」を入力すると、カウント値順列変更回路523は、更新規則メモリ543から、レジスタ値「2」に対応する「更新規則C」を選択して設定する。カウント値順列変更回路523は、カウンタ521から再び初期値「0」以降のカウント値の入力を開始すると、選択設定した「更新規則C」に従って、カウント値の順列を更新して出力する。本例では、カウント値順列変更回路523は、順列を「65535→65534→・・・→0」から「1→3→…→65535→0→・・・→65534」に変更して、カウント値を出力する。
以上のように、カウント値順列変更レジスタ536をリセットした後、カウント値順列データ「01h」をカウント値順列変更レジスタ536に再度書き込むことによって、カウント値の順列をさらに変更することができる。
図22は、カウント値順列変更レジスタ536の例を示す説明図である。カウント値順列変更レジスタ536は、カウンタ521がカウントアップするカウント値の順列を変更させるためのカウント値順列変更データ「01h」を設定するレジスタである。図22に示すように、カウント値順列変更レジスタ536は、読出可能な8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、カウント値順列変更レジスタ536は、ビット0だけが書込および読出ともに可能な状態に構成されている。すなわち、カウント値順列変更レジスタ536は、ビット1〜ビット7が書込および読出ともに不可能な状態に構成されている。したがって、カウント値順列変更レジスタ536のビット1〜ビット7に値を書き込む制御を行っても無効とされ、ビット1〜ビット7から読み出す値は全て「0(=0000000b)」である。
なお、カウント値順列変更レジスタ536の値は、カウント値順列変更回路523が切り替え後の更新規則に従ってカウント値の更新動作を開始したことに応じて、CPU56によってリセットされる。この場合、CPU56は、カウント値順列変更レジスタ536に書き込まれている値を、カウント値順列変更データ「01h」から初期値である「0(=00h)」に戻す。
比較器522は、ランダムRの最大値(乱数最大値)を指定するための乱数最大値設定データを格納する乱数最大値設定レジスタ(RMX)535を備える。比較器522は、乱数最大値設定レジスタ535に格納されている乱数最大値設定データに示される乱数最大値に従って、カウンタ521が更新するカウント値の更新範囲を制限する。この実施の形態では、比較器522は、カウンタ521から入力するカウント値と乱数最大値設定レジスタ535に格納されている乱数最大値設定データ(例えば「00FFh」)に示される乱数最大値(例えば「256」)とを比較する。そして、比較器522は、入力したカウント値が乱数最大値以下であると判断すると、入力したカウント値を第1乱数値記憶回路531aおよび第2乱数値記憶回路531bに出力する。
この実施の形態では、比較器522は、具体的には、以下のような制御を行う。比較器522は、カウント値の初期値更新の際に、CPU56からカウント値の初期値をもらい、初期値から乱数最大値までのカウント値の個数を求める。例えば、カウント値の初期値が「157」であり乱数最大値が「256」である場合、比較器522は、初期値から乱数最大値までのカウント値の個数を「100個」と求める。また、比較器522は、カウント値順列変更回路523からカウント値を入力するに従って、初期値からカウント値をいくつ入力したかをカウントアップする。初期値からカウント値を入力した回数が「100回」に達すると、比較器522は、初期値「157」から最大値「256」までの全てのカウント値を入力したと判断する。そして、比較器522は、全てのカウント値を入力した旨の通知信号をカウンタ521に出力する。カウント値の個数で判断することによって、カウント値順列変更回路523によってカウント値の順列が変更されている場合であっても、比較器522は、カウント値の更新範囲を乱数最大値以下に制限し、全てのカウント値を入力した際にカウンタ521に通知信号を出力することができる。
カウント値の更新範囲を比較器522が制限する動作について説明する。なお、本例では、カウント値順列変更回路523が更新規則Aを選択し、乱数最大値設定レジスタ535に乱数最大値「256」が設定されている場合を説明する。
カウンタ521が「0」から「256」までカウント値を更新している間、カウント値順列変更回路523は、乱数最大値設定レジスタ535に設定されている乱数最大値「256」にもとづいて、更新規則Aに従って、「0」から「256」までのカウント値をそのまま比較器522に出力する。この場合、カウント値順列変更回路523は、比較器522から乱数最大値「256」の値をもらい、カウンタ521から入力するカウント値が乱数最大値より大きいか否かを判断し、更新規則が変更されているとき(例えば、更新規則B)であっても、乱数最大値設定レジスタ535に設定されている乱数最大値「256」にもとづいて、「257」から「65535」までのカウント値を比較器522に出力しない。カウンタ521は、例えば、初期値が「0」と設定されているときに、最終値「256」までカウント値を更新すると、通知信号をCPU56に出力する。通知信号を出力すると、CPU56によって、カウンタ521のカウント値の初期値が変更される。本例では、CPU56によって、初期値が「50」に変更されるものとする。
なお、カウント値が乱数最大値「256」より大きいか否かをカウント値順列変更回路523が判断するのでなく、比較器522が判定するようにしてもよい。この場合、例えば、比較器522は、カウント値が乱数最大値設定レジスタ535に設定されている乱数最大値より大きいか否かを判断し、カウント値が乱数最大値より大きいと判断すると、通知信号をカウンタ521に出力する。そして、比較器522は、カウント値が乱数最大値を超えたと判断すると、クロック信号出力回路524が次に乱数発生用クロック信号SI1を出力する前に、通知信号をカウンタ521に出力する。そのようにすることによって、比較器522は、クロック信号出力回路524が次に乱数発生用クロック信号SI1を出力するまでの間に、「257」から「65535」までカウント値を高速にカウントアップさせるようにカウンタ521を制御する。そのようにすることによって、カウント値順列変更回路523からの値が「257」未満のときだけカウント値を第1乱数値記憶回路531aおよび第2乱数値記憶回路531bに出力するようにし、カウント値順列変更回路523からの値が「257」以上のときにはカウント値を高速で更新させるようにすることができる。
更新規則Aにもとづいて、カウント値順列変更回路523から、「0」から「255」までカウント値を入力している間、比較器522は、入力するカウント値が乱数最大値「256」以下であるので、入力したカウント値をそのまま第1乱数値記憶回路531aおよび第2乱数値記憶回路531bに出力する。次に、カウント値順列変更回路523から入力するカウント値が「256」に達すると、比較器522は、入力したカウント値を第1乱数値記憶回路531aおよび第2乱数値記憶回路531bに出力するとともに、初期値から最大値までの全てのカウント値を入力した旨の通知信号をカウンタ521に出力する。具体的には、比較器522は、カウント値の初期値変更の際に、CPU56からカウント値の初期値(本例では、「0」)をもらい、初期値「0」から乱数最大値(本例では、「256」)までのカウント値の個数(本例では、「257個」)を求める。そして、カウント値順列変更回路523から入力したカウント値の個数が257個に達すると、全てのカウント値を入力した旨の通知信号をカウンタ521に出力する。なお、本例では、CPU56によって初期値が「50」に変更されるので、カウンタ521は、比較器522から通知信号を入力しても、カウント値をリセットするとなく、変更後の初期値「50」からカウント値の更新を行う。
カウンタ521が変更後の初期値「50」から「256」までカウント値を更新している間、カウント値順列変更回路523は、乱数最大値設定レジスタ535に設定されている乱数最大値「256」にもとづいて、更新規則Aに従って、「50」から「256」までのカウント値をそのまま比較器522に出力する。また、カウント値順列変更回路523は、乱数最大値設定レジスタ535に設定されている乱数最大値「256」にもとづいて、「257」から「65535」までのカウント値を比較器522に出力せず、カウンタ521の更新するカウント値が1周したとき(257回更新したとき)に、カウント値順列変更レジスタ536にカウント値順列変更データが書き込まれた場合には、カウント値順列変更回路523は、カウント値の順列を変更して出力する。例えば、更新規則が更新規則Bに変更された場合、カウント値順列変更回路523は、カウント値の順列を「256→255→・・・→50」に変更して出力する。
カウント値順列変更回路523から、「256」から「50」までカウント値を入力している間、比較器522は、入力したカウント値をそのまま第1乱数値記憶回路531aおよび第2乱数値記憶回路531bに出力する。次に、カウント値順列変更回路523から入力するカウント値が「50」に達すると、比較器522は、入力したカウント値を第1乱数値記憶回路531aおよび第2乱数値記憶回路531bに出力するとともに、初期値から最大値までの全てのカウント値を入力した旨の通知信号をカウンタ521に出力する。具体的には、比較器522は、カウント値の初期値変更の際に、CPU56からカウント値の初期値(本例では、「50」)をもらい、初期値「50」から乱数最大値(本例では、「256」)までのカウント値の個数(本例では、「207個」)を求める。そして、カウント値順列変更回路523から入力したカウント値の個数が207個に達すると、全てのカウント値を入力した旨の通知信号をカウンタ521に出力する。
なお、カウント値順列変更回路523がカウント値の順列を変更した場合であっても、比較器522は、カウント値の個数が207個に達すると、通知信号をカウンタ521に出力する。そのようにすることによって、カウント値の順列が変更された場合であっても、初期値「50」から最大値「256」までの全てのカウント値を入力したことにもとづいて、通知信号をカウンタ521に出力できる。
比較器522から通知信号を入力すると、カウンタ521は、カウント値の初期値をリセットし「0」に戻す。そして、カウンタ521は、「0」からカウント値の更新を行う。カウンタ521の値が「0」から再び更新がされると、カウンタ521からのカウント値にもとづいて、カウント値順列変更回路523は「49」〜「0」までのカウント値を比較器522に出力し、比較器522はカウント値順列変更回路523からのカウント値の入力にもとづいて第1乱数値記憶回路531aおよび第2乱数値記憶回路531bにカウント値を出力する。そして、カウンタ521は、最終値(本例では、「49」)までカウント値を更新すると、通知信号をCPU56に出力する。通知信号を出力すると、CPU56によって、カウンタ521のカウント値の初期値が再び変更される。
以上のような動作を繰り返すことにより、比較器522は、カウンタ521に、「0」から乱数最大値「256」まで連続的にカウント値をカウントアップさせ、「0」から「256」までの値を第1乱数値記憶回路531aおよび第2乱数値記憶回路531bにランダムR(乱数値)として記憶させる。すなわち、比較器522は、カウント値の更新範囲を乱数最大値「256」以下に制限して、カウンタ521にカウント値を更新させる。
図23は、乱数最大値設定レジスタ535の例を示す説明図である。図23に示すように、乱数回路5003において、乱数最大値設定レジスタ535は、16ビットレジスタであり、初期値が「65535(=FFFFh)」に設定されている。また、乱数回路5003において、乱数最大値設定レジスタ535は、ビット0〜ビット15の全てのビットが書込および読出ともに可能な状態に構成されている。
また、乱数最大値設定レジスタ535に下限値「512」より小さい値を指定する乱数最大値設定データ「0000h」〜「01FEh」が書き込まれた場合、CPU56は、乱数最大値設定レジスタ535に、初期値「65535」を指定する乱数最大値設定データ「FFFFh」を設定しなおす。すなわち、乱数最大値設定レジスタ535に設定可能な乱数最大値は「512」から「65535」までであり、CPU56は、下限値「512」より小さい値が設定されていると判断すると、乱数最大値を所定値「65535」に設定しなおす。なお、CPU56は、リセットコントローラ5002によって遊技制御用マイクロコンピュータ560がシステムリセットされるまで、乱数最大値設定データが書き込まれた乱数最大値設定レジスタ535を書込不可能に制御する。なお、CPU56により書込不可能に制御するのでなく、乱数最大値設定レジスタ535は、データが書き込まれた後にリセット信号を入力するまで書込不可能となるように形成されていてもよい。
クロック信号出力回路524は、セレクタ528に出力するクロック信号の周期(すなわち、カウント値の更新周期)を指定するための周期設定データを格納する周期設定レジスタ(RPS)537を備える。クロック信号出力回路524は、周期設定レジスタ537に格納されている周期設定データに基づいて、遊技制御用マイクロコンピュータ560が搭載するクロック回路5001から入力する基準クロック信号CLKを分周して、乱数回路5003内部で乱数値の生成に用いるクロック信号(乱数発生用クロック信号SI1)を生成する。そのようにすることによって、クロック信号出力回路524は、クロック信号を所定回数入力したことを条件に、カウント値Cを更新させるための乱数発生用クロック信号SI1をカウンタ521に出力するように動作する。なお、周期設定データとは、クロック回路5001から入力した基準クロック信号CLKを何分周させるかを設定するためのデータである。また、クロック出力回路524は、生成した乱数発生用クロック信号SI1をセレクタ528に出力する。例えば、周期設定レジスタ537に周期設定データ「0Fh(=16)」が書き込まれている場合、クロック信号出力回路524は、クロック回路5001から入力する基準クロック信号CLKを16分周して乱数発生用クロック信号SI1を生成する。この場合、クロック信号出力回路524が生成する乱数発生用クロック信号SI1の周期は、「システムクロック信号の周期×128×16」となる。
図24は、周期設定レジスタ537の例を示す説明図である。図24に示すように、周期設定レジスタ537は、8ビットレジスタであり、初期値が「256(=FFh)」に設定されている。また、周期設定レジスタ537は、書込および読出ともに可能な状態に構成されている。
また、周期設定レジスタ537に設定される周期設定データの値は、所定の下限値が定められている。この実施の形態では、周期設定レジスタ537に下限値「システムクロック信号の周期×128×7」より小さい値を指定する周期設定データ「00h〜06h」が書き込まれた場合、CPU56は、周期設定レジスタ537に下限値「システムクロック信号の周期×128×7」を指定する周期設定データ「07h」を設定しなおす。すなわち、周期設定レジスタ537に設定可能な周期は「システムクロック信号の周期×128×7」から「システムクロック信号の周期×128×256」までであり、CPU56は、下限値より小さい値が設定されていると判断すると、周期設定データを設定しなおす。なお、CPU56は、リセットコントローラ5002によって遊技制御用マイクロコンピュータ560がシステムリセットされるまで、周期設定データが書き込まれた周期設定レジスタ537を書込不可能に制御する。なお、CPU56により書込不可能に制御するのでなく、周期設定レジスタ537は、データが書き込まれた後にリセット信号を入力するまで書込不可能となるように形成されていてもよい。
なお、周期設定レジスタ537に下限値としての周期設定データを設定することなく、設定された周期設定データに基づいて、例えばクロック信号出力回路524が基準クロック信号CLKをそのままカウンタ521に出力するようにしてもよい。この場合、CPU56は、周期設定レジスタ537に設定される周期設定データの値を下限値と比較して設定しなおす処理を行う必要がなくなる。また、カウンタ521は、クロック信号出力回路524から基準クロック信号CLKを入力する毎にカウント値Cを更新することになる。
カウント値更新信号出力回路525は、カウント値更新データ「01h」を格納するカウント値更新レジスタ(RGN)538を備える。カウント値更新データとは、カウント値の更新を要求するためのデータである。カウント値更新信号出力回路525は、カウント値更新レジスタ538にカウント値更新データ「01h」が書き込まれたことに応じて、カウント値更新信号SI3をセレクタ528に出力する。
図25は、カウント値更新レジスタ538の例を示す説明図である。図25に示すように、カウント値更新レジスタ538は、読出不能な8ビットレジスタであり、ビット0のみが書込可能な状態に構成されている。したがって、カウント値更新レジスタ538のビット1〜ビット7に値を書き込む制御を行っても無効とされる。
乱数更新方式選択信号出力回路527は、乱数更新方式選択データを格納する乱数更新方式選択レジスタ(RTS)540を備える。乱数更新方式選択データとは、ランダムRの値を更新する方式である各乱数更新方式のうち、いずれかの乱数更新方式を指定するためのデータである。乱数更新方式選択信号出力回路527は、乱数更新方式選択レジスタ540に乱数更新方式選択データが書き込まれたことに応じて、書き込まれた乱数更新方式選択データにより指定される乱数更新方式に対応する乱数更新方式選択信号を、セレクタ528に出力する。
図26(A)は、乱数更新方式選択レジスタ540の例を示す説明図である。図26(A)に示すように、乱数更新方式選択レジスタ540は、8ビットレジスタであり、初期値が「00h」に設定されている。また、乱数更新方式選択レジスタ540は、ビット0〜ビット1が書込および読出ともに可能な状態に構成されている。また、乱数更新方式選択レジスタ540は、ビット2〜ビット7が書込および読出ともに不可能な状態に構成されている。したがって、乱数更新方式選択レジスタ540のビット2〜ビット7に値を書き込む制御を行っても無効とされ、ビット2〜ビット7から読み出す値は全て「0(=000000b)」である。
図26(B)は、乱数更新方式選択レジスタ540に書き込まれる乱数更新方式選択データの一例の説明図である。図26(B)に示すように、乱数更新方式選択データは、2ビットのデータから構成される。乱数更新方式選択データ「01b」は、第1の乱数更新方式を指定するために用いられる。また、乱数更新方式選択データ「10b」は、第2の乱数更新方式を指定するために用いられる。なお、この実施の形態では、第1の乱数更新方式とは、カウント値更新信号出力回路525からカウント値更新信号SI3が出力されたことをトリガとして、カウント値を更新する方式である。また、第2の乱数更新方式とは、クロック信号出力回路524から乱数発生用クロック信号SI1が出力されたことをトリガとして、カウント値を更新する方式である。また、乱数更新方式選択データ「01b」または「10b」が乱数更新方式選択レジスタ540に書き込まれた場合、乱数回路5003は起動可能な状態となる。一方、乱数更新方式選択データ「00b」または「11b」が乱数更新方式選択レジスタ540に書き込まれた場合、乱数回路5003は起動不能な状態となる。
セレクタ528は、カウント値更新信号出力回路525から出力されるカウント値更新信号SI3、またはクロック信号出力回路524から出力される乱数発生用クロック信号SI1のいずれかを選択してカウンタ521に出力する。セレクタ528は、乱数更新方式選択信号出力回路527から第1の乱数更新方式に対応する乱数更新方式選択信号(第1の乱数更新方式選択信号ともいう)が入力されると、カウント値更新信号出力回路525から出力されるカウント値更新信号SI3を選択してカウンタ521に出力する。一方、セレクタ528は、乱数更新方式選択信号出力回路527から第2の乱数更新方式に対応する乱数更新方式選択信号(第2の乱数更新方式選択信号ともいう)が入力されると、クロック信号出力回路524から出力される乱数発生用クロック信号SI1を選択してカウンタ521に出力する。なお、セレクタ528は、乱数更新方式選択信号出力回路527から第1の更新方式選択信号が入力されると、カウント値更新信号出力回路525から出力されるカウント値更新信号SI3に応じて、クロック信号出力回路524から出力される乱数発生用クロック信号SI1に同期した数値データの更新を指示する数値更新指示信号を、カウンタ521に出力してもよい。
乱数回路起動信号出力回路530は、乱数回路起動データ「80h」を格納する乱数回路起動レジスタ(RST)541を備える。乱数回路起動データとは、乱数回路5003の起動を要求するためのデータである。乱数回路起動信号出力回路530は、乱数回路起動レジスタ541に乱数回路起動データ「80h」が書き込まれると、所定の乱数回路起動信号をカウンタ521およびクロック信号出力回路537に出力し、カウンタ521およびクロック信号出力回路524をオンにさせる。そして、カウンタ521によるカウント値の更新動作とクロック信号出力回路524による内部クロック信号の出力動作とを開始させることによって、乱数回路5003を起動させる。
図27は、乱数回路起動レジスタ541の例を示す説明図である。図27に示すように、乱数回路起動レジスタ541は、8ビットレジスタであり、初期値が「00h」に設定されている。乱数回路起動レジスタ541は、ビット7だけが書込および読出ともに可能な状態に構成されている。また、乱数回路起動レジスタ541は、ビット0〜ビット6が書込および読出ともに不可能な状態に構成されている。すなわち、乱数回路起動レジスタ541のビット0〜ビット6に値を書き込む制御を行っても無効とされ、ビット0〜ビット6から読み出す値は全て「0(=000000b)」である。
第1乱数値記憶回路531aおよび第2乱数値記憶回路531bは、例えば16ビットレジスタであり、遊技制御処理における大当り判定用乱数の生成に用いられるハードウェア乱数であるランダムRの値を格納する。第1乱数値記憶回路531aは、第1始動口スイッチ13aからの検出信号をラッチ信号SL1として入力したことに応じて、カウンタ521から比較器522を介して出力されるカウント値CをランダムRの値として格納する。そして、第1乱数値記憶回路531aは、第1始動口スイッチ13aからの検出信号をラッチ信号SL1として入力するごとに、カウンタ521が更新するカウント値Cを読み込んでランダムRの値を記憶する。また、第2乱数値記憶回路531bは、第2始動口スイッチ14aからの検出信号をラッチ信号SL2として入力したことに応じて、カウンタ521から比較器522を介して出力されるカウント値CをランダムRの値として格納する。そして、第2乱数値記憶回路531bは、第2始動口スイッチ13bからの検出信号をラッチ信号SL2として入力するごとに、カウンタ521が更新するカウント値Cを読み込んでランダムRの値を記憶する。
なお、以下、第1乱数値記憶回路531aおよび第2乱数値記憶回路531bを包括的に表現する場合、または第1乱数値記憶回路531aと第2乱数値記憶回路531bとのいずれかを指す場合に、単に乱数値記憶回路531ともいう。
また、この実施の形態では、後述する乱数回路設定処理(ステップS14参照)が実行されるときに、乱数値記憶回路531は、CPU56からラッチ信号SL0を入力したことに応じて、カウンタ521から比較器522を介して出力されるカウント値CをランダムRの値として格納する。
図28は、乱数値記憶回路531の一構成例を示す回路図である。乱数値記憶回路531は、図28に示すように、2個のAND回路2001,2003と、2個のNOT回路2002,2004と、16個のフリップフロップ回路2101〜2116と、16個のOR回路2201〜2216とを含む。
図28に示すように、AND回路2001の入力端子は、ラッチ信号生成回路533の出力端子とNOT回路2004の出力端子とに接続され、出力端子は、NOT回路2002の入力端子とフリップフロップ回路2101〜2116のクロック端子Clk1〜Clk16とに接続されている。NOT回路2002の入力端子は、AND回路2001の出力端子に接続され、出力端子は、AND回路2003の一方の入力端子に接続されている。
AND回路2003の入力端子は、NOT回路2002の出力端子と遊技制御用マイクロコンピュータ560が搭載するCPU56とに接続され、出力端子は、NOT回路2004の入力端子に接続されている。NOT回路2004の入力端子は、AND回路2003の出力端子に接続され、出力端子は、AND回路2001の一方の入力端子とOR回路2201〜2216の一方の入力端子とに接続されている。
フリップフロップ回路2101〜2116の入力端子D1〜D16は、比較器522の出力端子に接続されている。フリップフロップ回路2101〜2116のクロック端子Clk1〜Clk16は、AND回路201の出力端子に接続され、出力端子Q1〜Q16は、OR回路2201〜2216の他方の入力端子に接続されている。
OR回路2201〜2216の入力端子は、NOT回路2004の出力端子とフリップフロップ回路2101〜2116の出力端子とに接続され、出力端子は、遊技制御用マイクロコンピュータ560が搭載するCPU56に接続されている。
乱数値記憶回路531の動作について説明する。図29は、乱数値記憶回路531に各信号が入力されるタイミング、および乱数値記憶回路531が各信号を出力するタイミングを示すタイミングチャートである。図29に示すように、遊技制御用マイクロコンピュータ560が搭載するCPU56から出力制御信号SC(本例では、ハイレベル信号)が入力されていない場合(すなわち、AND回路203の一方の入力端子への入力がローレベルの場合)、第1始動口スイッチ13aまたは第2始動口スイッチ14aからラッチ信号SL(具体的には、第1始動口スイッチ13aからのラッチ信号SL1、または第2始動口スイッチ14aからのラッチ信号SL2)が入力されると(図29に示す例では、タイミングT1,T2,T7のとき)、AND回路2001の2つの入力端子への入力はともにハイレベルとなる。そのため、AND回路2001の出力端子から出力される信号SRはハイレベルとなる。そして、AND回路2001から出力された信号SRは、フリップフロップ回路2101〜2116のクロック端子Clk1〜Clk16に入力される。
フリップフロップ回路2101〜2116は、クロック端子Clk1〜Clk16から入力される信号SRの立ち上がりエッヂに応答して、比較器522から入力端子D1〜D16を介して入力されるカウント値CのビットデータC1〜C16を乱数値のビットデータR1〜R16としてラッチして記憶する。また、フリップフロップ回路2101〜2116は、記憶するランダムRのビットデータR1〜R16を出力端子Q1〜Q16から出力する。
出力制御信号SCが入力されていない場合(図29に示す例では、タイミングT3までの期間およびタイミングT6以降の期間)、AND回路2003の一方の入力端子への入力がローレベルとなるので、AND回路2003の出力端子から出力される信号SGはローレベルとなる。AND回路2003が出力する信号SGは、NOT回路2004において反転され、ハイレベルの信号とされる。そして、OR回路2201〜2216の一方の入力端子に、NOT回路2004からハイレベルの信号が入力される。
以上のように、OR回路2201〜2216の一方の入力端子への入力がハイレベルとなるので、他方の入力端子に入力される信号がハイレベルであるかローレベルであるかに関わらず、OR回路2201〜2216はハイレベルの信号を出力する。すなわち、入力されるランダムRのビットデータR1〜R16の値が「0」であるか「1」であるかに関わらず、OR回路2201〜2216から出力される信号SO1〜SO16は、全てハイレベル(「1」)となる。そのようにすることによって、乱数値記憶回路531から出力される値は、常に「65535(=1111111111111111b)」となり、乱数値記憶回路531からランダムRを読み出すことができない状態となる。すなわち、乱数値記憶回路531から乱数を読み出そうとしても、乱数値記憶回路531から常に同じ値「65535」しか読み出せない状態となり、出力制御信号SCが入力されていない場合、乱数値記憶回路531は、読出不能(ディセイブル)状態となる。
ラッチ信号生成回路533からラッチ信号SLが入力されていないときに、CPU56から出力制御信号SCが入力されると(図29に示す例では、タイミングT4からタイミングT6までの期間)、AND回路2003の2つの入力端子への入力がともにハイレベルとなるので、AND回路2003の出力端子から出力される信号SGはハイレベルとなる。AND回路2003が出力する信号SGは、NOT回路2004において反転され、ローレベルの信号とされる。そして、OR回路2201〜2216の一方の入力端子に、NOT回路2004からローレベルの信号が入力される。
以上のように、OR回路2201〜2216の一方の入力端子への入力がローレベルとなるので、他方の入力端子に入力される信号がハイレベルの場合、OR回路2201〜2216の出力端子からハイレベルの信号が出力される。また、OR回路2201〜2216の他方の入力端子に入力される信号がローレベルの場合、OR回路2201〜2216からローレベルの信号が出力される。すなわち、OR回路2201〜2216の他方の入力端子に入力されるランダムRのビットデータR1〜R16の値は、OR回路2201〜2216の出力端子からそのまま(すなわち、ビットデータR1〜R16の値が「1」のときは「1」が、「0」のときは「0」)出力される。そのようにすることによって、乱数値記憶回路531からのランダムRの読出が可能となる。すなわち、出力制御信号SCが入力されている場合、乱数値記憶回路531は、読出可能(イネイブル)状態となる。
ただし、CPU56から出力制御信号SCが入力される前に、第1始動口スイッチ13aまたは第2始動口スイッチ14aからラッチ信号SLが入力されている場合、AND回路2003の一方の入力端子への入力がローレベルとなるので、ラッチ信号SLが入力されている状態のままで、出力制御信号SCが入力されても(図29に示す例では、タイミングT3からタイミングT4の期間)、AND回路2003の出力端子から出力される信号SGはローレベルのままとなる。AND回路2003が出力する信号SGは、NOT回路2004において反転され、ハイレベルの信号とされる。そして、OR回路2201〜2216の一方の入力端子に、NOT回路2004からハイレベルの信号が入力される。
以上のように、OR回路2201〜2216の一方の入力端子への入力がハイレベルとなるので、他方の入力端子に入力される信号がハイレベルであるかローレベルであるかに関わらず、OR回路2201〜2216から出力される信号SO1〜SO16は全てハイレベルとなる。そして、出力制御信号SCが入力されているにも関わらず、乱数値記憶回路531からランダムRを読み出すことができない状態のままとなる。すなわち、ラッチ信号SLが入力されている場合、乱数値記憶回路531は、出力制御信号SCを受信不可能な状態となる。
また、第1始動口スイッチ13aまたは第2始動口スイッチ14aからラッチ信号SLが入力される前に、CPU56から出力制御信号SCが入力されている場合、AND回路2001の一方の入力端子への入力がローレベルとなるので、出力制御信号SCが入力されているままの状態で、ラッチ信号SLが入力されても(図29に示す例では、タイミングT5)、AND回路2001の出力端子から出力される信号SRはローレベルのままとなる。そのため、フリップフロップ回路2101〜2116のクロック端子Clk1〜Clk16に入力される信号SRは、ローレベルからハイレベルに立ち上がらず、フリップフロップ回路2101〜2116に格納されているランダムRのビットデータR1〜R16は、ラッチ信号SLが入力されているにも関わらず、記憶される乱数は更新されない。すなわち、出力制御信号SCが入力されている場合、乱数値記憶回路531は、ラッチ信号SLを受信不可能な状態となる。
図30は、遊技制御用マイクロコンピュータ560における記憶領域のアドレスマップの一例を示す説明図である。図30に示すように、遊技制御用マイクロコンピュータ560の記憶領域のうち、0000h番地〜1FFFh番地の領域は、ROM54に割り当てられている。また、7E00h番地〜7FFFh番地の領域は、RAM55に割り当てられている。さらに、FD00h番地〜FE00h番地の領域は、乱数最大値設定レジスタ535等の内蔵レジスタに割り当てられている。
また、図30に示すように、ROM54に割り当てられている0000h番地〜1FFFh番地の領域は、ユーザプログラムエリアとユーザプログラム管理エリアとを含む。0000h番地〜1F7Fh番地の領域のユーザプログラムエリアには、ユーザ(例えば、遊技機の製作者)により予め作成されたプログラム(ユーザプログラム)550が記憶される。また、1F80h番地〜1FFFh番地の領域のユーザプログラム管理エリアには、CPU56がユーザプログラム550を実行するために必要となるデータ(ユーザプログラム実行データ)が記憶される。また、RAM55に割り当てられている7E00h番地〜7FFFh番地の領域は、ワークエリア(作業領域)として用いられる。このワークエリアのうち、7E00h番地〜7EFFh番地の領域は、ソフトウェア乱数(具体的には、後述するランダム2−1〜ランダム7)をカウントするための各カウンタ(例えば、後述する大当り判定算出用カウンタや大当り種別判定用カウンタ)を格納するソフトウェア乱数カウンタ格納エリアとして用いられる。また、7F00h番地〜7FFFh番地の領域は、ソフトウェア乱数カウンタ格納エリア以外のその他のエリア(例えば、各カウンタから抽出されたソフトウェア乱数の値などが格納されるエリア)として用いられる。
なお、この実施の形態では、後述するように、電源投入時の初期化処理(ステップS11参照)において、RAM55の領域のうち、7F00h番地〜7FFFh番地の領域(ワークエリアのうちのソフトウェア乱数カウンタ格納エリア以外のその他のエリア)に格納されているデータのみをクリアする処理が行われ、7E00h番地〜7EFFh番地の領域(ソフトウェア乱数カウンタ格納エリア)に格納されているデータ(具体的には、各ソフトウェア乱数をカウントするためのカウンタ(例えば、後述する大当り判定算出用カウンタや、普通図柄当り判定用カウンタ))はクリアしないように処理される。なお、クリアされないように処理されるのは、大当り判定算出用カウンタや普通図柄当り判定用カウンタなどのカウンタであって、これらのカウンタを用いて更新された後に抽出される各ソフトウェア乱数の値そのものは、その他の領域に格納され、初期化処理(ステップS11参照)の際にクリアされる。
なお、電源投入時の初期化処理(ステップS11参照)において全てのソフトウェア乱数用のカウンタをクリアしないようにするのではなく、ソフトウェア乱数のうち後述する大当り判定算出用乱数(ランダム2−1)をカウントするための大当り判定算出用カウンタのみをクリアしないようにし、他のソフトウェア乱数をカウントするためのカウンタはクリアするようにしてもよい。そのように構成しても、初期化させてから大当り遊技状態に移行させると判定されるタイミングで、外部接続基板(ぶら下げ基板)から信号を入力することによって大当りが狙われてしまうことを十分に防止することができる。例えば、後述する普通図柄当り判定用乱数(ランダム6)については、普通図柄の変動表示結果が当りとなったことによる利益は少ないのであるから、外部接続基板(ぶら下げ基板)から信号を入力することによって当りが狙われてしまう可能性は低い。そのため、普通図柄当り判定用乱数(ランダム6)をカウントするための普通図柄当り判定用カウンタについては、初期化処理においてクリアしたとしても影響は小さい。従って、大当り判定算出用カウンタのみをクリアしないように構成しても、初期化させてから大当り遊技状態に移行させると判定されるタイミングで、外部接続基板(ぶら下げ基板)から信号を入力することによって大当りが狙われてしまうことを十分に防止することができる。
また、RAM55の領域のうち、初期化を実行する領域の開始アドレスは初期化しない領域と連続するアドレスとなるようにしてもよい。そのようにすれば、無駄なRAM領域が生じてしまうことを防止することができる。また、ソフトウェア乱数カウンタ格納エリアがワークエリアのアドレスの最終番地に位置するようにしてもよく、その場合には、アドレスの下位の番地から上位の番地に向けて順に初期化を実行していくようにしてもよい。また、ワークエリアの開始アドレスからソフトウェア乱数カウンタ格納エリアの手前までのアドレスを順に初期化していくようにしてもよい。また、ソフトウェア乱数カウンタ格納エリアをワークエリアの途中の番地となるように設定してもよい。
図31は、ユーザプログラム管理エリアにおけるアドレスマップの一例を示す説明図である。図31に示すように、1F97h番地の領域には、乱数回路5003のカウンタ521に入力される初期値を変更するための方式である初期値変更方式のうち、ユーザによって選択された初期値変更方式を指定するための初期値変更方式設定データが記憶される。また、1F98h番地および1F99h番地の領域には、RAM55に割り当てられた7F00h番地〜7FFFh番地のうち、ユーザによって予め指定されたRAM55における番地(指定RAM番地)を特定するためのRAM番地データが記憶される。この場合、指定RAM番地を示す値のうち、指定RAM番地の下位の値が1F98h番地に記憶され、指定RAM番地の上位の値が1F99h番地に記憶される。
図32は、初期値変更方式設定データの一例を示す説明図である。図32に示すように、初期値変更データは、8ビットのデータから構成される。初期値変更データ「00h」は、初期値変更方式として、初期値を変更しないことを指定するデータである。この実施の形態では、初期値変更データ「00h」が設定されている場合、乱数回路5003のカウンタ521は、予め定められた初期値「0」から所定の最終値までカウント値を更新することになる。また、初期値変更データ「01h」は、初期値変更方式として、カウンタ521に入力する初期値を、遊技制御用マイクロコンピュータ560を識別するためのIDナンバにもとづく値に変更することを指定するデータである。この実施の形態では、初期値変更データ「01h」が設定されている場合、カウンタ521が更新するカウンタ値の初期値が「0」からIDナンバにもとづく値に変更され、カウンタ521は、変更後の初期値から所定の最終値までカウント値を更新することになる。
ユーザプログラムエリアに記憶されるユーザプログラム550について説明する。図33は、ユーザプログラム550の構成例を示す説明図である。図33に示すように、この実施の形態では、ユーザプログラム550は、複数種類のプログラムモジュールから構成される乱数回路設定プログラム551と、表示結果決定プログラム552と、カウント値順列変更プログラム554と、乱数値更新プログラム555とを含む。
乱数回路設定プログラム551は、乱数回路5003にランダムRの値を更新させるための初期設定を行う乱数回路設定処理を実行させるためのプログラムである。すなわち、CPU56は、乱数回路設定プログラム551に従って処理を実行することにより、乱数回路初期設定手段として機能する。
図34は、乱数回路設定プログラム551の構成例を示す説明図である。図34に示すように、乱数回路設定プログラム551は、複数種類のプログラムモジュールとして、乱数最大値設定モジュール551aと、乱数更新方式選択モジュール551bと、周期設定モジュール551cと、乱数回路起動モジュール551dと、初期値変更モジュール551eと、乱数回路選択モジュール551fとを含む。
乱数最大値設定モジュール551aは、ユーザ(例えば、遊技機の製作者)によって予め設定されたランダムRの最大値を乱数回路5003に設定させるためのプログラムモジュールである。CPU56は、乱数最大値設定モジュール551aに従って処理を実行することによって、ユーザによって予め設定されたランダムRの最大値を指定する乱数最大値設定データを、乱数最大値設定レジスタ535に書き込む。そのようにすることによって、CPU56は、ユーザによって予め設定されたランダムRの最大値を乱数回路5003に設定する。例えば、ユーザによってランダムRの最大値として予め「255」が設定された場合、CPU56は、乱数最大値設定レジスタ535に乱数最大値設定データ「00FFh」を書き込んで、ランダムRの最大値「255」を乱数回路5003に設定する。
乱数更新方式選択モジュール551bは、ユーザによって選択された乱数更新方式(第1の乱数更新方式または第2の乱数更新方式)を乱数回路5003に設定させるためのプログラムモジュールである。CPU56は、乱数更新方式選択モジュール551bに従って処理を実行することによって、ユーザによって選択された乱数更新方式を指定する乱数更新方式選択データ「01b」または「10b」を乱数更新方式選択レジスタ540に書き込む。そのようにすることによって、CPU56は、ユーザによって選択された乱数更新方式を乱数回路5003に設定する。よって、遊技制御用マイクロコンピュータ560は、第1の乱数更新方式又は第2の乱数更新方式のうちのいずれかを、乱数回路5003が乱数更新に用いる乱数更新方式として選択する機能を備える。
周期設定モジュール551cは、ユーザによって予め設定された内部クロック信号の周期(すなわち、クロック信号出力回路524がセレクタ528および反転回路532にクロック信号を出力する周期)を乱数回路5003に設定させるためのプログラムモジュールである。CPU56は、周期設定モジュール551cに従って処理を実行することによって、ユーザによって予め設定された内部クロック信号の周期を指定するための周期設定データを周期設定レジスタ537に書き込む。そのようにすることによって、CPU56は、ユーザによって予め設定された内部クロック信号の周期を乱数回路5003に設定する。例えば、ユーザによって内部クロック信号の周期が予め「システムクロック信号の周期×128×16」と設定された場合、CPU56は、周期設定レジスタ537に周期設定データ「0Fh」を書き込んで、内部クロック信号の周期「システムクロック信号の周期×128×16」を乱数回路5003に設定する。
乱数回路起動モジュール551dは、乱数回路5003を起動させるためのプログラムモジュールである。CPU56は、乱数回路起動モジュール551dに従って処理を実行することによって、乱数回路起動データ「80h」を乱数回路起動レジスタ541に書き込むことにより、乱数回路5003を起動させる。
初期値変更モジュール551eは、カウンタ521が更新するカウント値の初期値を変更させるためのプログラムモジュールである。CPU56は、初期値変更モジュール551eに従って処理を実行することによって、初期値変更手段として機能する。CPU56は、初期値変更モジュール551eを実行して、ユーザによって選択された初期値変更方式によって、カウンタ521が更新するカウント値の初期値を変更させる。そのようにすることによって、CPU56は、初期値変更方式を選択する機能を備える。
この実施の形態では、ユーザプログラム管理エリアの1F97h番地の領域に初期値変更方式設定データ「01h」が記憶されている場合、CPU56は、カウント値の初期値を、遊技制御用マイクロコンピュータ560毎に付与された固有のIDナンバにもとづいて算出された値に変更させる。
例えば、遊技制御用マイクロコンピュータ560は、ROM54の所定の記憶領域に、遊技制御用マイクロコンピュータ560のIDナンバと、IDナンバにもとづいて所定の演算を行って求めた演算値とを予め対応付けて記憶している。この場合、例えば、遊技制御用マイクロコンピュータ560のIDナンバが「100」であるとすると、IDナンバ「100」に所定値「50」を加算して求めた演算値「150」を、予めIDナンバに対応付けて記憶している。また、例えば、IDナンバ「100」に所定値「50」を減算して求めた演算値「50」を、予めIDナンバに対応付けて記憶している。また、例えば、予めIDナンバに対応づけて所定値だけを記憶していてもよい。そして、遊技制御用マイクロコンピュータ560のCPU56は、予め記憶される所定値(例えば、「50」)にIDナンバ(例えば、「100」を加算して求めた値「150」を、カウント値の初期値としてもよい。また、CPU56は、予め記憶される所定値(例えば、「50」)をIDナンバ(例えば、「100」)から減算して求めた値「50」を、カウント値の初期値としてもよい。
そして、初期値変更方式設定データ「01h」が記憶されている場合、CPU56は、予め記憶するIDナンバにもとづく演算値にカウント値の初期値を変更させる。そのようにすれば、乱数回路5003が発生する乱数のランダム性をより向上させることができ、遊技制御用マイクロコンピュータ560のIDナンバを見ただけでは乱数の初期値を認識しにくくすることができる。そのため、無線信号を用いた取り込み信号を遊技機に対して発生させるなどの行為によって、大当り状態への移行条件を不正に成立させられてしまうことをより確実に防止することができ、セキュリティ性を向上させることができる。
また、例えば、初期値変更方式設定データ「01h」が記憶されている場合、CPU56は、遊技制御用マイクロコンピュータ560のIDナンバと所定値とを演算して(例えば、IDナンバに所定値を加算して)求めた演算値にカウント値の初期値を変更させる。この場合、例えば、CPU56は、乱数を用いてランダムに変化させた値をIDナンバと演算することによって、演算に用いる値をランダムに更新し初期値を求めてもよい。そのようにすれば、乱数回路5003が発生する乱数のランダム性をより向上させることができる。
乱数値更新プログラム555は、乱数更新方式として第1の乱数更新方式が選択されているときに、乱数値記憶回路531に格納されているランダムRの値を更新させるためのプログラムである。CPU56は、乱数値更新プログラム555に従って処理を実行することによって、乱数値更新手段として機能する。CPU56は、第1の乱数更新方式が選択されているときに、乱数値更新プログラム555を実行して、カウント値更新データ「01h」をカウント値更新レジスタ538に書き込むことにより、カウンタ521にカウント値を更新させ、乱数値記憶回路531に格納さているランダムRの値を更新させる。なお、乱数更新方式として第2の乱数更新方式が選択されている場合には、クロック信号出力回路537が出力する乱数発生用クロック信号によって、カウンタ521にカウント値を更新させ、乱数値記憶回路531に格納さているランダムRの値を更新させることになる。
表示結果決定プログラム552は、特別図柄表示装置8における表示結果を大当り図柄とするか否かを決定するためのプログラムである。CPU56は、表示結果決定プログラム552に従って処理を実行することによって、表示結果決定手段として機能する。
この実施の形態では、CPU56は、遊技球が第1始動入賞口13または第2始動入賞口14に入賞して特別図柄の可変表示を実行するための条件(実行条件)が成立したことに応じて、表示結果決定プログラム552に従って処理を実行する。そして、CPU56は、乱数値記憶回路531から更新後のランダムRの値を読み出して大当り決定用乱数を生成し、特別図柄表示装置8における表示結果を大当り図柄とするか否かを決定する。
図35は、第1の乱数更新方式が選択されている場合に、CPU56がランダムRの値を更新させたりランダムRの値を読出したりする動作を示す説明図である。図35に示すように、第1の乱数更新方式が選択されている場合、CPU56は、カウント値更新データ「01h」をカウント値更新レジスタ538に書き込むことによって、乱数値記憶回路531が記憶するランダムRの値(例えば「2」)を更新させる。そして、CPU56は、遊技球が可変入賞球装置15に入賞して特別図柄の可変表示を実行するための条件(実行条件)が成立したことに応じて、乱数値記憶回路531からランダムRの値(例えば「2」)を読み出す。
なお、乱数値記憶回路531が記憶するランダムRの値をさらに更新させる場合、前回更新時にランダムRの値を更新したときから、クロック回路5001が出力するシステムクロック信号の周期以上の間隔を経過したときに、カウント値更新レジスタ538にカウント値更新データ「01h」を書き込まなければならない。なぜなら、更新後のランダムRの値を乱数値記憶回路531から読み出す時間を確保する必要があるからである。
図36は、第2の乱数更新方式が選択されている場合に、CPU56がランダムRの値を読出したりする動作を示す説明図である。図36に示すように、第2の乱数更新方式が選択されている場合、タイマ回路534は、乱数値取込データ「01h」を乱数値取込レジスタ539に書き込むことによって、カウンタ521が出力するカウント値(例えば「2」)を乱数値記憶回路531に取り込ませて、乱数値記憶回路531が記憶するランダムRの値を更新させる。そして、CPU56は、乱数値記憶回路531から更新後のランダムRの値(例えば「2」)を読み出す。
具体的には、第2の乱数更新方式が選択されている場合、カウンタ521は、乱数発生用クロック信号SI1を入力したことをトリガとしてカウント値Cを更新する。その後、第1始動口スイッチ13aまたは第2始動口スイッチ14aがオン状態となると、ラッチ信号SL(具体的には、第1始動口スイッチ13aからのラッチ信号SL1または第2始動口スイッチ14aからのラッチ信号SL2)が乱数値記憶回路531(具体的には、第1乱数値記憶回路531aまたは第2乱数値記憶回路531b)に出力される。そして、乱数値記憶回路531は、ラッチ信号SLを入力したことをトリガとしてカウンタ521が出力するカウント値を読み込んで記憶する。そして、CPU56は、乱数値記憶回路531が記憶するランダムRの値を読み出す。なお、具体的には、CPU56が出力制御信号SCを乱数値記憶回路531に出力したことにもとづいて、乱数値記憶回路531からランダムRの値を読出可能となり、CPU56は、乱数回路5003の乱数値記憶回路531からランダムRの値を読み出す。すなわち、乱数値記憶回路531は、CPU56からの出力制御信号SCに応じてランダムRの値を出力し、CPU56は、乱数値記憶回路531から出力されたランダムRの値を読み出す。なお、遊技制御用マイクロコンピュータ560に外付けの乱数回路を用いる場合であっても、同様に、外付けの乱数回路の乱数値記憶回路531は、CPU56からの出力制御信号SCに応じてランダムRの値を出力する。そして、CPU56は、外付けの乱数回路の乱数値記憶回路531から出力されたランダムRの値を読み出す。
カウント値順列変更プログラム554は、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」を書き込んで、乱数値記憶回路531が記憶するカウント値の順列を変更させるカウント値順列変更処理を実行するためのプログラムである。CPU56は、カウント値順列変更プログラム554に従って処理を実行することによって、数値データ順列変更手段として機能する。CPU56は、カウント値順列変更プログラム554を実行して、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」を書き込むことによって、カウント値順列変更回路523が出力し乱数値記憶回路531に入力されるカウント値の順列を変更させる。
次に、遊技機の動作について説明する。図37および図38は、主基板31における遊技制御用マイクロコンピュータ560が実行するメイン処理を示すフローチャートである。遊技機に対して電源が投入され電力供給が開始されると、リセット信号が入力されるリセット端子の入力レベルがハイレベルになり、遊技制御用マイクロコンピュータ560(具体的には、CPU56)は、プログラムの内容が正当か否か確認するための処理であるセキュリティチェック処理を実行した後、ステップS1以降のメイン処理を開始する。メイン処理において、CPU56は、まず、必要な初期設定を行う。
初期設定処理において、CPU56は、まず、割込禁止に設定する(ステップS1)。次に、割込モードを割込モード2に設定し(ステップS2)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS3)。そして、内蔵デバイスの初期化(内蔵デバイス(内蔵周辺回路)であるCTC(カウンタ/タイマ)およびPIO(パラレル入出力ポート)の初期化など)を行った後(ステップS4)、RAM55をアクセス可能状態に設定する(ステップS5)。なお、割込モード2は、CPU56が内蔵する特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビット0)とから合成されるアドレスが、割込番地を示すモードである。
次いで、CPU56は、入力ポートを介して入力されるクリアスイッチ(電源基板910に搭載されている。)の出力信号の状態を確認する(ステップS6)。その確認においてオンを検出した場合には、CPU56は、通常の初期化処理を実行する(ステップS10〜S13)。
なお、CPU56は、ステップS6においてクリアスイッチ921の出力信号の状態を確認してその出力状態を記憶し、所定時間(例えば、0.1秒)遅延させる遅延処理を実行するようにしてもよい。そして、遅延処理の実行後に、記憶内容にもとづいてクリアスイッチ921のオン状態を検出していたか否かを確認し、検出していれば、初期化処理(ステップS10〜S13)に移行し、RAM55の作業領域をクリアするようにしてもよい。そのように構成すれば、遊技機への電源投入時に演出制御用マイクロコンピュータ100側や払出制御基板37が搭載する払出制御用マイクロコンピュータ側で実行する初期化処理が終了しコマンドを受信可能な状態となるのを待ってから、遊技制御用マイクロコンピュータ560側の初期化処理を実行するようにすることができる。また、まずクリアスイッチ921の状態を記憶してから遅延処理の後に初期化処理に移行するので、演出制御用マイクロコンピュータ100側や払出制御用マイクロコンピュータ側でコマンド受信可能な状態となるまでクリアスイッチ921を押し続ける手間を省くことができる。
クリアスイッチがオンの状態でない場合には、遊技機への電力供給が停止したときにバックアップRAM領域のデータ保護処理(例えばパリティデータの付加等の電力供給停止時処理)が行われたか否か確認する(ステップS7)。そのような保護処理が行われていないことを確認したら、CPU56は初期化処理を実行する。バックアップRAM領域にバックアップデータがあるか否かは、例えば、電力供給停止時処理においてバックアップRAM領域に設定されるバックアップフラグの状態によって確認される。
電力供給停止時処理が行われたことを確認したら、CPU56は、バックアップRAM領域のデータチェックを行う(ステップS8)。この実施の形態では、データチェックとしてパリティチェックを行う。よって、ステップS8では、算出したチェックサムと、電力供給停止時処理で同一の処理によって算出され保存されているチェックサムとを比較する。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップRAM領域のデータは保存されているはずであるから、チェック結果(比較結果)は正常(一致)になる。チェック結果が正常でないということは、バックアップRAM領域のデータが、電力供給停止時のデータとは異なっていることを意味する。そのような場合には、内部状態を電力供給停止時の状態に戻すことができないので、電力供給の停止からの復旧時でない電源投入時に実行される初期化処理を実行する。
チェック結果が正常であれば、CPU56は、遊技制御手段の内部状態と演出制御手段等の電気部品制御手段の制御状態を電力供給停止時の状態に戻すための遊技状態復旧処理(ステップS41〜S43の処理)を行う。具体的には、ROM54に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し(ステップS41)、バックアップ時設定テーブルの内容を順次作業領域(RAM55内の領域)に設定する(ステップS42)。作業領域はバックアップ電源によって電源バックアップされている。バックアップ時設定テーブルには、作業領域のうち初期化してもよい領域についての初期化データが設定されている。ステップS41およびS42の処理によって、作業領域のうち初期化してはならない部分については、保存されていた内容がそのまま残る。初期化してはならない部分とは、例えば、電力供給停止前の遊技状態を示すデータ(特別図柄プロセスフラグ、確変フラグ、時短フラグなど)、出力ポートの出力状態が保存されている領域(出力ポートバッファ)、未払出賞球数を示すデータ、判定用乱数などのソフトウェア乱数(例えば、大当り判定算出用カウンタの値)が設定されている部分などである。ただし、後述する始動口スイッチ通過処理のステップS2015で算出される大当り判定用乱数MR1については初期化されクリアされる。
また、CPU56は、電力供給復旧時の初期化コマンドとしての停電復旧指定コマンド(停電復旧1指定コマンド)を演出制御基板80に送信する(ステップS43)。そして、ステップS14に移行する。
なお、この実施の形態では、バックアップフラグとチェックデータとの双方を用いてバックアップRAM領域のデータが保存されているか否か確認しているが、いずれか一方のみを用いてもよい。すなわち、バックアップフラグとチェックデータとのいずれかを、遊技状態復旧処理を実行するための契機としてもよい。
初期化処理では、CPU56は、まず、RAMクリア処理を行う(ステップS10)。ステップS10の初期化処理では、CPU56は、RAM55の領域のワークエリア(作業領域)のうち、ソフトウェア乱数カウンタ格納エリア以外のその他のエリアの先頭アドレス(7F00h番地。図30参照。)をポインタにセットし、クリアデータ(例えば、「0」)を順次RAM55における作業領域にセットする。そのように処理することによって、7F00h番地〜7FFFh番地の領域(ワークエリアのうちソフトウェア乱数カウンタ格納エリア以外のその他のエリア)に格納されているデータのみをクリアする処理が行われ、7E00h番地〜7EFFh番地の領域(ソフトウェア乱数カウンタ格納エリア)に格納されているデータはクリアしないように処理される。また、ROM54に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し(ステップS11)、初期化時設定テーブルの内容を順次RAM55における作業領域に設定する(ステップS12)。
ステップS11およびS12の処理によって、特別図柄プロセスフラグなど制御状態に応じて選択的に処理を行うためのフラグに初期値が設定される。
また、CPU56は、サブ基板(主基板31以外のマイクロコンピュータが搭載された基板。)を初期化するための初期化指定コマンド(遊技制御用マイクロコンピュータ560が初期化処理を実行したことを示すコマンドでもある。)を演出制御基板80に送信する(ステップS13)。例えば、演出制御基板80に搭載されている演出制御用マイクロコンピュータ100は、初期化指定コマンドを受信すると、演出表示装置9において、遊技機の制御の初期化がなされたことを報知するための画面表示、すなわち初期化報知を行う。なお、初期化処理において、CPU56は、客待ちデモンストレーション指定(デモ指定)コマンドも送信する。
次いで、CPU56は、遊技開始スイッチ90がオン状態であるか否かを確認する(ステップS44)。オフ状態でれば(ステップS44のN)、CPU56は、所定時間(例えば、0.1秒)の遅延時間の後に(ステップS45)、再度、遊技開始スイッチ90がオン状態であるか否かを確認する(ステップS46)。オン状態であれば(ステップS46のY)、ステップS44に戻り、ステップS44〜S46の処理を繰り返し実行する。
以上のように、ステップS44〜S46の処理が実行されることによって、ステップS10〜S13の初期化処理を実行した後に、一旦、遊技開始スイッチ90が所定時間(例えば、0.1秒)以上オフ状態であることを確認してから、次のステップS47以降の処理に移行する。
なお、ステップS45において、所定のカウンタの値を加算または減算する処理を行い、ステップS46でそのカウンタの値が所定値となったことを条件として(例えば、0から順に加算して50になったこと、または50から順に減算して0になったことを条件として)、ステップS47以降の処理に移行するようにしてもよい。また、この場合に、カウンタの値が所定値となる前に遊技開始スイッチ90のオン状態が検出された場合には、所定のカウンタの値を0(加算する場合)または50(減算する場合)に戻し、再びステップS44の処理から実行しなおすようにしてもよい。
ステップS46で遊技開始スイッチ90がオフ状態であれば(ステップS46のN)、CPU56は、その後、遊技開始スイッチ90のオン状態を検出すると(ステップS47のY)、所定時間(例えば、0.1秒)の遅延時間の後に(ステップS48)、再度、遊技開始スイッチ90がオン状態であるか否かを確認する(ステップS49)。オフ状態であれば(ステップS49のN)、ステップS47に戻り、ステップS47〜S49の処理を繰り返し実行する。遊技開始スイッチ90のオン状態であれば(ステップS49のY)、次のステップS14の処理に移行する。
以上のように、ステップS47〜S49の処理が実行されることによって、ステップS10〜S13の初期化処理を実行した後に、遊技開始スイッチ90がオンとなったことを条件として、ステップS14以降の処理に移行する。具体的には、遊技開始スイッチ90がオンとなったことを条件として、後述するステップS14の乱数回路設定処理で乱数回路5003が起動されハードウェア乱数の更新が開始される。また、後述するタイマ割込処理のステップS24の判定用乱数更新処理が開始され、ソフトウェア乱数の更新が開始される。
なお、この実施の形態では、ステップS10〜S13の初期化処理を実行した場合にのみ、遊技開始スイッチ90がオンとなったことを条件として、ステップS14以降の処理に移行する場合を示したが、ステップS41〜S43の遊技状態復旧処理を実行した場合にも同様の処理を実行してもよい。すなわち、遊技制御用マイクロコンピュータ560は、ステップS41〜S43の遊技状態復旧処理を実行すると、ステップS44に移行し、ステップS44〜S49と同様の処理を実行するようにして、遊技開始スイッチ90がオンとなったことを条件として、ステップS14以降の処理に移行するようにしてもよい。
また、この実施の形態では、後述するように、ソフトェア乱数であるランダム2−1(大当り判定算出用乱数)と、乱数回路5003から読み出したハードウェア乱数との2つの乱数を用いて大当り判定用乱数(ランダムMR1)を算出するように構成するのであるが(始動口スイッチ通過処理のステップS2015参照)、このように構成する場合には、ランダム2−1(大当り判定算出用乱数)を含むソフトウェア乱数の更新と、乱数回路5003(または、遊技制御用マイクロコンピュータ560に外付けの乱数回路)によるハードウェア乱数の更新との少なくとも一方が、遊技開始スイッチ90がオンとなった後に開始されるようにしてもよい。例えば、外付けの乱数回路を用いる場合には、遊技機への電源を投入すると、遊技用マイクロコンピュータ560による制御にかかわらずそのまま乱数回路が起動されるものであるから、ステップS14の乱数回路設定処理を実行しないようにし、ソフトウェア乱数の更新のみ遊技開始スイッチ90がオンとなった後に開始されるようにしてもよい。そのように構成しても、少なくともソフトウェア乱数に関しては遊技開始スイッチ90による操作が行われなければ更新を開始しないのであるから、大当り判定用乱数(MR1)を生成するためのカウンタの値の更新開始タイミングを異ならせることができ、大当り遊技状態に移行すると判定するタイミングを予測しにくくすることができる。
また、ステップS48において、所定のカウンタの値を加算または減算する処理を行い、ステップS49でそのカウンタの値が所定値となったことを条件として、ステップS14以降の処理に移行するようにしてもよい。
次いで、CPU56は、乱数回路5003を初期設定する乱数回路設定処理を実行する(ステップS14)。CPU56は、例えば、乱数回路設定プログラムに従って処理を実行することによって、乱数回路5003にランダムRの値を更新させるための設定を行う。なお、ステップS14の乱数回路設定処理では、乱数回路起動データが乱数回路起動レジスタ541に書き込む処理が実行され(ステップS1507参照)、乱数回路5003を起動させる処理が実行される。
なお、遊技制御用マイクロコンピュータ560が乱数回路5003を内蔵するものではなく、遊技制御用マイクロコンピュータ560に外付けの乱数回路を用いる場合であっても、CPU56は、ステップS14と同様の処理に従って、外付けの乱数回路にランダムRの値を更新させるための設定を行う。また、外付けの乱数回路を用いる場合には、遊技開始スイッチ90がオンされる前であっても、乱数回路の設定を行いランダムRの更新を開始するようにしてもよい。
そして、CPU56は、所定時間(例えば2ms)毎に定期的にタイマ割込がかかるように遊技制御用マイクロコンピュータ560に内蔵されているCTCのレジスタの設定を行なう(ステップS15)。すなわち、初期値として例えば2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。この実施の形態では、2ms毎に定期的にタイマ割込がかかるとする。
次いで、CPU56は、メイン処理で、表示用乱数更新処理(ステップS17)および初期値用乱数更新処理(ステップS18)を繰り返し実行する。表示用乱数更新処理および初期値用乱数更新処理を実行するときには割込禁止状態に設定し(ステップS16)、表示用乱数更新処理および初期値用乱数更新処理の実行が終了すると割込許可状態に設定する(ステップS19)。この実施の形態では、表示用乱数とは、変動パターン等を決定するための乱数であり、表示用乱数更新処理とは、表示用乱数を発生するためのカウンタのカウント値を更新する処理である。また、初期値用乱数更新処理とは、初期値用乱数を発生するためのカウンタのカウント値を更新する処理である。この実施の形態では、初期値用乱数とは、普通図柄の当りとするか否か決定するための乱数を発生するためのカウンタ(普通図柄当り判定用乱数発生カウンタ)のカウント値の初期値や、後述する大当り判定算出用乱数(ランダム2−1)を発生するためのカウンタ(大当り判定算出用カウンタ)のカウント値の初期値などを決定するための乱数である。後述する遊技の進行を制御する遊技制御処理(遊技制御用マイクロコンピュータ560が、遊技機に設けられている演出表示装置、可変入賞球装置、球払出装置等の遊技用の装置を、自身で制御する処理、または他のマイクロコンピュータに制御させるために指令信号を送信する処理、遊技装置制御処理ともいう)において、大当り判定用乱数発生カウンタ等のカウント値が1周(乱数の取りうる値の最小値から最大値までの間の数値の個数分歩進したこと)すると、そのカウンタに初期値が設定される。
図39は、遊技制御用マイクロコンピュータ560が送信する演出制御コマンドの内容の一例を示す説明図である。図39に示す例において、コマンド80XX(H)は、特別図柄の可変表示に対応して演出表示装置9において可変表示される演出図柄の変動パターンを指定する演出制御コマンド(変動パターンコマンド)である(それぞれ変動パターンXXに対応)。つまり、使用されうる変動パターンのそれぞれに対して一意な番号を付した場合に、その番号で特定される変動パターンのそれぞれに対応する変動パターンコマンドがある。なお、「(H)」は16進数であることを示す。また、変動パターンを指定する演出制御コマンドは、変動開始を指定するためのコマンドでもある。従って、演出制御用マイクロコンピュータ100は、コマンド80XX(H)を受信すると、第1飾り図柄表示器9aまたは第2飾り図柄表示器9bにおいて飾り図柄可変表示を開始するように制御し、演出表示装置9において演出図柄の可変表示を開始するように制御する。
コマンド8C01(H)〜8C04(H)は、大当りとするか否か、および大当り遊技の種類を示す演出制御コマンドである。演出制御用マイクロコンピュータ100は、コマンド8C01(H)〜8C04(H)の受信に応じて飾り図柄および演出図柄の表示結果を決定するので、コマンド8C01(H)〜8C04(H)を表示結果特定コマンドという。
コマンド8D01(H)は、第1特別図柄の可変表示(変動)を開始することを示す演出制御コマンド(第1図柄変動指定コマンド)である。コマンド8D02(H)は、第2特別図柄の可変表示(変動)を開始することを示す演出制御コマンド(第2図柄変動指定コマンド)である。第1図柄変動指定コマンドと第2図柄変動指定コマンドとを特別図柄特定コマンド(または図柄変動指定コマンド)と総称することがある。なお、第1特別図柄の可変表示を開始するのか第2特別図柄の可変表示を開始するのかを示す情報を、変動パターンコマンドに含めるようにしてもよい。
コマンド8F00(H)は、演出図柄(および飾り図柄)の可変表示(変動)を終了して表示結果(停止図柄)を導出表示することを示す演出制御コマンド(図柄確定指定コマンド)である。演出制御用マイクロコンピュータ100は、図柄確定指定コマンドを受信すると、演出図柄および飾り図柄の可変表示(変動)を終了して表示結果を導出表示する。
コマンド9000(H)は、遊技機に対する電力供給が開始されたときに送信される演出制御コマンド(初期化指定コマンド:電源投入指定コマンド)である。コマンド9200(H)は、遊技機に対する電力供給が再開されたときに送信される演出制御コマンド(停電復旧指定コマンド)である。遊技制御用マイクロコンピュータ560は、遊技機に対する電力供給が開始されたときに、バックアップRAMにデータが保存されている場合には、停電復旧指定コマンドを送信し、そうでない場合には、初期化指定コマンドを送信する。
コマンド9F00(H)は、客待ちデモンストレーションを指定する演出制御コマンド(客待ちデモ指定コマンド)である。
コマンドA001〜A003(H)は、ファンファーレ画面を表示すること、すなわち大当り遊技の開始を指定する演出制御コマンド(大当り開始指定コマンド:ファンファーレ指定コマンド)である。大当り開始指定コマンドには、大当りの種類に応じた大当り開始1指定コマンド、大当り開始指定2指定コマンドおよび突確開始指定コマンドがある。コマンドA1XX(H)は、XXで示す回数目(ラウンド)の大入賞口開放中の表示を示す演出制御コマンド(大入賞口開放中指定コマンド)である。A2XX(H)は、XXで示す回数目(ラウンド)の大入賞口閉鎖を示す演出制御コマンド(大入賞口開放後指定コマンド)である。
コマンドA301(H)は、大当り終了画面を表示すること、すなわち大当り遊技の終了を指定するとともに、非確変大当り(通常大当り)であったことを指定する演出制御コマンド(大当り終了1指定コマンド:エンディング1指定コマンド)である。コマンドA302(H)は、大当り終了画面を表示すること、すなわち大当り遊技の終了を指定するとともに、確変大当りであったことを指定する演出制御コマンド(大当り終了2指定コマンド:エンディング2指定コマンド)である。コマンドA303(H)は、突然確変の遊技の終了を指定する演出制御コマンド(突確終了指定コマンド:エンディング3指定コマンド)である。
コマンドC000(H)は、第1始動入賞があったことを指定する演出制御コマンド(第1始動入賞指定コマンド)である。コマンドC100(H)は、第2始動入賞があったことを指定する演出制御コマンド(第2始動入賞指定コマンド)である。第1始動入賞指定コマンドと第2始動入賞指定コマンドとを、始動入賞指定コマンドと総称することがある。
コマンドC2XX(H)は、第1保留記憶数と第2保留記憶数との合計である合計数(合算保留記憶数)を指定する演出制御コマンド(合算保留記憶数指定コマンド)である。コマンドC2XX(H)における「XX」が、合算保留記憶数を示す。コマンドC300(H)は、合算保留記憶数を1減算することを指定する演出制御コマンド(合算保留記憶数減算指定コマンド)である。この実施の形態では、遊技制御用マイクロコンピュータ560は、合算保留記憶数を減算する場合には合算保留記憶数減算指定コマンドを送信するが、合算保留記憶数減算指定コマンドを使用せず、合算保留記憶数を減算するときに、減算後の合算保留記憶数を合算保留記憶数指定コマンドで指定するようにしてもよい。
コマンドE000(H)は、乱数回路5003の異常発生を指定する演出制御コマンド(乱数異常指定コマンド)である。この実施の形態では、後述するように、遊技制御用マイクロコンピュータ560は、乱数回路設定処理(ステップS14参照)および始動口スイッチ通過処理(ステップS332参照)において、乱数回路5003の異常発生を検出したことにもとづいて、乱数異常指定コマンドを演出制御用マイクロコンピュータ100に送信する。そして、演出制御用マイクロコンピュータ100は、乱数異常指定コマンドを受信したことにもとづいて、乱数回路5003に異常が発生したことを報知する。なお、遊技制御用マイクロコンピュータ560は、乱数回路設定処理(ステップS14参照)で乱数回路5003の異常発生を検出した場合と、始動口スイッチ通過処理(ステップS332参照)で乱数回路5003の異常発生を検出した場合とで、別々の乱数異常指定コマンドを送信するようにしてもよい。
演出制御基板80に搭載されている演出制御用マイクロコンピュータ100(具体的には、演出制御用CPU101)は、主基板31に搭載されている遊技制御用マイクロコンピュータ560から上述した演出制御コマンドを受信すると、図39に示された内容に応じて画像表示装置9の表示状態を変更したり、ランプの表示状態を変更したり、音声出力基板70に対して音番号データを出力したりする。
例えば、遊技制御用マイクロコンピュータ560は、始動入賞があり第1特別図柄表示器8aまたは第2特別図柄表示器8bにおいて特別図柄の可変表示が開始される度に、演出図柄の変動パターンを指定する変動パターンコマンドおよび表示結果特定コマンドを演出制御用マイクロコンピュータ100に送信する。
この実施の形態では、演出制御コマンドは2バイト構成であり、1バイト目はMODE(コマンドの分類)を表し、2バイト目はEXT(コマンドの種類)を表す。MODEデータの先頭ビット(ビット7)は必ず「1」に設定され、EXTデータの先頭ビット(ビット7)は必ず「0」に設定される。なお、そのようなコマンド形態は一例であって他のコマンド形態を用いてもよい。例えば、1バイトや3バイト以上で構成される制御コマンドを用いてもよい
なお、演出制御コマンドの送出方式として、演出制御信号CD0〜CD7の8本のパラレル信号線で1バイトずつ主基板31から中継基板77を介して演出制御基板80に演出制御コマンドデータを出力し、演出制御コマンドデータの他に、演出制御コマンドデータの取込を指示するパルス状(矩形波状)の取込信号(演出制御INT信号)を出力する方式を用いる。演出制御コマンドの8ビットの演出制御コマンドデータは、演出制御INT信号に同期して出力される。演出制御基板80に搭載されている演出制御用マイクロコンピュータ100は、演出制御INT信号が立ち上がったことを検知して、割込処理によって1バイトのデータの取り込み処理を開始する。
図39に示す例では、変動パターンコマンドおよび表示結果特定コマンドを、第1特別図柄表示器8aでの第1特別図柄の変動に対応した飾り図柄の可変表示(変動)と第2特別図柄表示器8bでの第2特別図柄の変動に対応した飾り図柄の可変表示(変動)とで共通に使用でき、第1特別図柄および第2特別図柄の可変表示に伴って演出を行う画像表示装置9などの演出用部品を制御する際に、遊技制御用マイクロコンピュータ560から演出制御用マイクロコンピュータ100に送信されるコマンドの種類を増大させないようにすることができる。
なお、コマンド8D01(H)(第1図柄変動指定コマンド)およびコマンド8D02(H)(第2図柄変動指定コマンド)は、演出制御用マイクロコンピュータ100が、第1特別図柄表示器8aによる第1特別図柄の可変表示時間中に装飾用(演出用)の図柄としての第1飾り図柄の可変表示を行う第1飾り図柄表示器9aにおいて飾り図柄の変動を行うのか、第2特別図柄表示器8bによる第2特別図柄の可変表示時間中に第2飾り図柄の可変表示を行う第2飾り図柄表示器9bにおいて飾り図柄の変動を行うのかを判定するために使用される。
次に、メイン処理における乱数回路設定処理(ステップS14)を説明する。図40は、乱数回路設定処理を示すフローチャートである。なお、遊技制御用マイクロコンピュータ560が乱数回路5003を内蔵するものではなく、遊技制御用マイクロコンピュータ560に外付けの乱数回路を用いる場合であっても、CPU56は、図40と同様の処理に従って、外付けの乱数回路にランダムRの値を更新させるための設定を行う。また、外付けの乱数回路を用いる場合には、遊技開始スイッチ90がオンされる前であっても、図40に示す乱数回路の設定を行いランダムRの更新を開始するようにしてもよい。
乱数回路設定処理において、CPU56は、まず、乱数回路設定プログラム551に含まれる乱数最大値設定モジュール551aに従って処理を実行し、ユーザによって予め設定された乱数最大値を指定する乱数最大値設定データを、乱数最大値設定レジスタ535に書き込む(ステップS1500)。そのようにすることによって、ユーザによって予め設定されたランダムRの乱数最大値を乱数回路5003に設定する。なお、この実施の形態では、乱数最大値として「65535」を設定するものとする。
また、CPU56は、ステップS1500で乱数最大値設定レジスタ535に設定した乱数最大値が所定の下限値以下でないかを確認し、乱数最大値が下限値以下である場合には、乱数最大値設定レジスタ535に設定されている乱数最大値の再設定を行う乱数最大値再設定処理を実行する(ステップS1501)。
また、CPU56は、乱数回路設定プログラム551に含まれる初期値変更モジュール551eに従って処理を実行し、乱数回路5003のカウンタ521が更新するカウント値の初期値を変更させる初期値変更処理を実行する(ステップS1502)。
また、CPU56は、乱数回路設定プログラム551に含まれる乱数更新方式選択モジュール551bに従って処理を実行し、乱数更新方式選択データを乱数更新方式選択レジスタ540に書き込む(ステップS1503)。そのようにすることによって、乱数回路5003の乱数更新方式を設定する。なお、この実施の形態では、CPU56は、乱数更新方式選択データ「10h」を乱数更新方式選択レジスタ540に書き込むものとする。すなわち、この実施の形態では、乱数回路5003の乱数更新方式として第2の乱数更新方式が設定される。
また、CPU56は、乱数回路設定プログラム551に含まれる周期設定モジュール551cに従って処理を実行し、ユーザによって予め設定された乱数発生用クロック信号SI1の周期を指定する周期設定データ(基準クロック信号を何分周させるかを設定するためのデータ)を、周期設定レジスタ537に書き込む(ステップS1504)。そのようにすることによって、ユーザによって予め設定された乱数発生用クロック信号SI1の周期を乱数回路5003に設定する。
また、CPU56は、乱数回路5003のカウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521に入力する初期値を更新するか否かを設定する(ステップS1505)。例えば、遊技制御用マイクロコンピュータ560は、カウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521に入力する初期値を更新するか否かを示す設定値を、予めユーザによって設定されROM54の所定領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された所定の設定値に従って、カウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521に入力する初期値を更新するか否かを設定する。この実施の形態では、CPU56は、ステップS1505において、カウンタ521に入力する初期値を更新すると判定すると、所定の最終値までカウント値が更新されたとき(カウンタ521から通知信号を入力したとき)に初期値を更新する旨を示す初期値更新フラグをセットする。この実施の形態では、ステップS1505において、所定の設定値に従って初期値更新フラグをセットする場合を説明する。そして、CPU56は、後述する乱数回路初期値更新処理において、初期値更新フラグがセットされていることにもとづいて、カウンタ521が出力するカウント値の初期値を更新する。
なお、CPU56によってカウント値の初期値を変更するのでなく、最終値までカウント値を更新したことにもとづいて、乱数回路5003側でカウント値の初期値を所定値に変更するようにしてもよい。例えば、乱数回路5003は、初期値を更新する旨を示す初期値更新データを格納する初期値更新データレジスタ、及び初期値の変更を行う初期値変更回路を備え、CPU56は、ステップS1505において、初期値更新データを初期値更新データレジスタに設定する。この場合、カウンタ521は、最終値までカウント値を更新すると、通知信号を初期値変更回路に出力する。すると、初期値変更回路は、初期値更新データレジスタに初期値更新データが設定されているか否かを確認する。そして、初期値変更回路は、初期値更新データが設定されていることを確認すると、カウント値の初期値を所定値に変更する。なお、初期値変更回路は、後述するカウント値順列変更処理において、順列を変更したカウント値の初期値を変更してもよい。
また、CPU56は、乱数回路5003のカウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521が更新するカウント値の順列を変更するか否かを設定する(ステップS1506)。例えば、遊技制御用マイクロコンピュータ560は、カウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521が出力するカウント値の順列を変更するか否かを示す設定値を、予めユーザによって設定されROM54の所定領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された所定の設定値に従って、カウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521が出力するカウント値の順列を変更するか否かを設定する。この実施の形態では、CPU56は、ステップS1506において、カウンタ521が出力するカウント値の順列を変更すると判定すると、所定の最終値までカウント値が更新されたときにカウント値の順列を変更する旨を示すカウント値順列変更フラグをセットする。この実施の形態では、ステップS1506において、所定の設定値に従ってカウント値順列変更フラグをセットする場合を説明する。そして、CPU56は、後述するカウント値順列変更処理において、カウント値順列変更フラグがセットされていることにもとづいて、カウンタ521が出力するカウント値の順列を変更する。
なお、CPU56の制御によってカウント値の順列を変更するのでなく、最終値までカウント値を更新したことにもとづいて、乱数回路5003側でカウント値の順列変更するようにしてもよい。例えば、乱数回路5003は、カウント値の順列を変更する旨を示す順列変更データを格納する順列変更データレジスタを備え、CPU56は、ステップS1506において、順列変更データを順列変更データレジスタに設定する。この場合、カウンタ521が最終値までカウント値を更新すると、通知信号をカウント値順列変更回路523に出力し、通知信号を入力したカウント値順列変更回路523は、順列変更データレジスタに順列変更データが設定されているか否かを確認する。そして、カウント値順列変更回路523は、順列変更データが設定されていることを確認すると、カウント値の順列を変更する。
そして、CPU56は、乱数回路設定プログラム551に含まれる乱数回路起動モジュール551dに従って処理を実行し、乱数回路起動データ「80h」を乱数回路起動レジスタ541に書き込む(ステップS1507)。そのようにすることによって、CPU56は、乱数回路5003を起動させる。なお、この実施の形態では、遊技開始スイッチ90のオン状態を検出したことを条件として(ステップS47〜S49参照)、乱数回路設定処理が実行されて、ステップS1507で乱数回路5003が起動され、ハードウェア乱数の更新が開始される。
次いで、CPU56は、乱数回路5003の各乱数値記憶回路531a,531bにラッチ信号SL0(CPU56から乱数値記憶回路(ラッチ回路)531に対して出力されるラッチ信号)を出力する(ステップS1508)。次いで、所定時間(例えば、0.1秒)の遅延時間の後に(ステップS1509)、乱数回路5003の各乱数値記憶回路531a,531bに出力制御信号SCを出力する(ステップS1510)。次いで、CPU56は、各乱数値記憶回路531a,531bから乱数値として記憶されているランダムRの値を読み出し、読み出した乱数値の各ビット値が0から1に変化したか否かを確認する(ステップS1511)。この場合、例えば、16ビットの乱数値の各ビット値に対応するフラグをあらかじめ用意しておき、値の変化を検出したビットに対応するフラグ値を0から1に変更する。各乱数値記憶回路531a,531bから読み出す乱数値の全てのビット値が変化した場合には(ステップS1512のY)、例えば16ビットの乱数値の各ビット値に対応する全てのフラグ値が0からに1に変更されていれば、乱数回路設定処理を終了する。
なお、遊技制御用マイクロコンピュータ560が乱数回路5003を内蔵するものではなく、遊技制御用マイクロコンピュータ560に外付けの乱数回路を用いる場合であっても、CPU56は、ステップS1508と同様の処理に従って、ラッチ信号SL0を外付けの乱数回路の乱数値記憶回路に出力し、所定時間の遅延の後に(ステップS1509参照)、外付けの乱数回路の乱数値記憶回路に出力制御信号SCを出力する(ステップS1510参照)。そして、CPU56は、外付けの乱数回路の乱数値記憶回路から乱数値として記憶されているランダムRの値を読み出し、読み出した乱数値の各ビット値が0から1に変化したか否かを確認する(ステップS1511参照)。
各乱数値記憶回路531a,531bから読み出す乱数値のビット値の中にまだ値が変化していないビット値が存在する場合には(ステップS1512のN)、CPU56は、乱数回路5003の異常発生の判定に用いるための乱数異常判定カウンタの値を1加算する(ステップS1513)。そして、加算後の乱数異常判定カウンタの値が所定値(例えば、65535)以上であるか否かを確認する(ステップS1514)。乱数異常判定カウンタの値が所定値以上でなければ、ステップS1508以降の処理を繰り返し実行する。乱数異常判定カウンタの値が所定値以上であれば、CPU56は、乱数異常指定コマンドを、演出制御用マイクロコンピュータ100に送信する制御を行う(ステップS1515)。なお、CPU56は、乱数異常指定コマンドを送信するのではなく、乱数値のビット値が全て変化するまでステップS1508〜S1512の処理を繰り返し実行し、ループ処理を実行するようにしてもよい。
なお、遊技制御用マイクロコンピュータ560が乱数回路5003を内蔵するものではなく、遊技制御用マイクロコンピュータ560に外付けの乱数回路を用いる場合であっても、CPU56は、ステップS1508〜S1515と同様の処理を実行することによって、外付けの乱数回路に異常が発生しているか否かを判定するようにすればよい。そして、外付けの乱数回路に異常が発生していると判定した場合には、ステップS1515と同様の処理を実行することによって、乱数異常指定コマンドを送信するようにしてもよい。
次に、乱数回路設定処理における乱数最大値再設定処理(ステップS1501)を説明する。図41は、乱数最大値再設定処理を示すフローチャートである。乱数最大値再設定処理において、CPU56は、乱数最大値設定レジスタ535に設定されている乱数最大値を読み込む(ステップS1531)。
CPU56は、読み込んだ乱数最大値が所定の下限値以下であるか否かを判定する(ステップS1532)。この実施の形態では、乱数回路5003において設定可能な乱数最大値が「512」から「65535」までであるとし、CPU56は、乱数回路5003の乱数最大値設定レジスタ535から読み込んだ乱数最大値が下限値「512」以下であるか否かを判定する。
読み込んだ乱数最大値が下限値以下である場合、CPU56は、乱数最大値設定レジスタ535に設定される乱数最大値を所定値に設定しなおす(ステップS1533)。この場合、乱数回路5003の乱数最大値設定レジスタ535から読み込んだ乱数最大値が下限値「512」以下であると判定すると、CPU56は、乱数最大値設定レジスタ535に設定される乱数最大値を所定値「65535」に設定しなおす。
以上のように、乱数最大値設定レジスタ535に設定した乱数最大値が所定の下限値以下となっている場合には、乱数最大値を所定値に設定しなおす。そのため、遊技制御用マイクロコンピュータ560の誤動作や、無線信号を用いた取り込み信号を遊技機に対して発生させるなどの行為によって、過度に小さい値が乱数の最大値として設定されてしまうことを防止することができる。従って、最小値から最大値までの値の範囲が過度に小さい乱数を生成する事態が発生することを防止することができる。
なお、この実施の形態では、ステップS1500で乱数最大値設定レジスタ535に乱数最大値を設定した後に、ステップS1501の乱数最大値再設定処理で設定後の乱数最大値が所定の下限値以下であるか否かを判断する場合を説明したが、乱数最大値設定レジスタ535に乱数最大値を設定する前に所定の下限値以下であるか否かを判断するようにしてもよい。この場合、例えば、ステップS1500の処理を実行する際に、CPU56は、ユーザによって予め設定された乱数最大値設定データに示される値が所定の下限値以下であるか否かを判断する。乱数最大値設定データに示される値が所定の下限値より大きい場合、CPU56は、乱数最大値設定データに示される値をそのまま乱数最大値設定レジスタ535に書き込む。また、乱数最大値設定データに示される値が所定の下限値以下である場合、CPU56は、乱数最大値設定データに示される値ではなく、所定値(例えば、「65535」)を乱数最大値設定レジスタ535に書き込む。
次に、乱数回路設定処理における初期値変更処理(ステップS1502)を説明する。図42は、初期値変更処理を示すフローチャートである。初期値変更処理において、CPU56は、まず、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されている初期値変更方式設定データを読み出し、ユーザによって選択された初期値変更方式を特定する。この場合、CPU56は、読み出した初期値変更方式設定データの値が「01h」であるか否かを判定することによって(ステップS1541)、ユーザによって選択された初期値変更方式を特定する。
初期値変更方式設定データの値が「01h」である場合、CPU56は、乱数回路5003のカウンタ521に入力する初期値を、遊技制御用マイクロコンピュータ560固有のIDナンバにもとづいて設定された値に変更する(ステップS1542)。例えば、遊技制御用マイクロコンピュータ560は、ROM54の所定の記憶領域に、遊技制御用マイクロコンピュータ560のIDナンバと、IDナンバにもとづいて所定の演算を行って求めた演算値とを予め対応付けて記憶している。そして、ステップS1542において、CPU56は、予め記憶するIDナンバにもとづく演算値にカウント値の初期値を変更させる。また、例えば、ステップS1542において、CPU56は、遊技制御用マイクロコンピュータ560のIDナンバと所定値とを演算して(例えば、IDナンバ(例えば、「100」)に所定値(例えば、「100」)を加算して)求めた演算値(例えば、「200」)にカウント値の初期値を設定する。また、カウンタ521に入力する初期値を変更すると、CPU56は、カウント値の初期値を変更した旨を示す初期値変更フラグをセットする(ステップS1543)。
なお、CPU56は、ステップS1542においてカウンタ521に入力する初期値を変更する際、乱数回路5003の比較器522の乱数最大値設定レジスタ535の値を確認し、IDナンバにもとづいて設定された値が乱数最大値以上であるか否かを判断する。そして、IDナンバにもとづいて設定された値が乱数最大値以上であると判断すると、CPU56は、カウンタ521に入力する初期値を変更しない(例えば、初期値を「0」に設定しなおす)。そのようにすることによって、カウント値の初期値が乱数最大値以上の値に設定されてしまう事態を防止することができる。
ステップS1541において、初期値変更方式設定データの値が「01h」でない場合(すなわち、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されている初期値変更方式設定データの値が「00h」である場合)、CPU56は、カウント値の初期値の変更を行わず、そのまま初期値変更処理を終了し、ステップS1503に移行する。
タイマ割込が発生すると、CPU56は、図43に示すステップS20〜S36のタイマ割込処理を実行する。タイマ割込処理において、まず、電源断信号が出力されたか否か(オン状態になったか否か)を検出する電源断検出処理を実行する(ステップS20)。電源断信号は、例えば電源基板に搭載されている電源監視回路920が、遊技機に供給される電源の電圧の低下を検出した場合に出力する。そして、電源断検出処理において、CPU56は、電源断信号が出力されたことを検出したら、必要なデータをバックアップRAM領域に保存するための電力供給停止時処理を実行する。次いで、入力ドライバ回路58を介して、ゲートスイッチ32a、第1始動口スイッチ13a、第2始動口スイッチ14a、カウントスイッチ23、および入賞口スイッチ29a,30a,33a,39aの検出信号を入力し、それらの状態判定を行う(スイッチ処理:ステップS21)。
次に、CPU56は、乱数回路設定処理において所定の最終値までカウント値が更新されたときに初期値を更新する旨の設定がされてるか(ステップS1505参照)を確認し、乱数回路5003のカウンタ521に入力する初期値を更新する処理を行う(乱数回路初期値更新処理:ステップS22)。
次に、CPU56は、第1特別図柄表示器8a、第2特別図柄表示器8b、普通図柄表示器10、第1特別図柄保留記憶表示器18a、第2特別図柄保留記憶表示器18b、普通図柄保留記憶表示器41の表示制御を行う表示制御処理を実行する(ステップS23)。第1特別図柄表示器8a、第2特別図柄表示器8bおよび普通図柄表示器10については、ステップS34,S35で設定される出力バッファの内容に応じて各表示器に対して駆動信号を出力する制御を実行する。
また、遊技制御に用いられる普通当り図柄決定用の乱数等の各判定用乱数を生成するための各カウンタのカウント値を更新する処理(例えば、後述する大当り判定算出用カウンタのカウント値を更新する処理)を行う(判定用乱数更新処理:ステップS24)。CPU56は、さらに、初期値用乱数および表示用乱数を生成するためのカウンタのカウント値を更新する処理を行う(初期値用乱数更新処理,表示用乱数更新処理:ステップS25,S26)。なお、この実施の形態では、遊技開始スイッチ90のオン状態を検出したことを条件として(ステップS47〜S49参照)、タイマ割込の設定が行われ(ステップS15参照)、タイマ割込処理の判定用乱数更新処理(ステップS24参照)が実行されて、ソフトウェア乱数の更新が開始される。
乱数回路初期値更新処理および表示用乱数更新処理を行うと、CPU56は、乱数回路5003のカウンタ521が出力するカウント値の順列をカウント値順列変更回路523に変更させるカウント値順列変更処理を行う(ステップS27)。この実施の形態では、乱数回路設定処理のステップS1506でカウント値順列変更フラグがセットされているか否かによって、カウント値順列変更処理を実行するか否かが決定されている。そして、CPU56は、カウント値順列変更フラグがセットされていることにもとづいて、カウント値順列変更処理を実行する。
さらに、CPU56は、特別図柄プロセス処理を行う(ステップS28)。特別図柄プロセス処理では、第1特別図柄表示器8a、第2特別図柄表示器8bおよび大入賞口を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理を実行する。CPU56は、特別図柄プロセスフラグの値を、遊技状態に応じて更新する。
次いで、普通図柄プロセス処理を行う(ステップS29)。普通図柄プロセス処理では、CPU56は、普通図柄表示器10の表示状態を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理を実行する。CPU56は、普通図柄プロセスフラグの値を、遊技状態に応じて更新する。
また、CPU56は、演出制御用マイクロコンピュータ100に演出制御コマンドを送出する処理を行う(演出制御コマンド制御処理:ステップS30)。
さらに、CPU56は、例えばホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する情報出力処理を行う(ステップS31)。
また、CPU56は、第1始動口スイッチ13a、第2始動口スイッチ14a、カウントスイッチ23および入賞口スイッチ29a,30a,33a,39aの検出信号にもとづく賞球個数の設定などを行う賞球処理を実行する(ステップS32)。具体的には、第1始動口スイッチ13a、第2始動口スイッチ14a、カウントスイッチ23および入賞口スイッチ29a,30a,33a,39aのいずれかがオンしたことにもとづく入賞検出に応じて、払出制御基板37に搭載されている払出制御用マイクロコンピュータに賞球個数を示す払出制御コマンド(賞球個数信号)を出力する。払出制御用マイクロコンピュータは、賞球個数を示す払出制御コマンドに応じて球払出装置97を駆動する。
この実施の形態では、出力ポートの出力状態に対応したRAM領域(出力ポートバッファ)が設けられているのであるが、CPU56は、出力ポートの出力状態に対応したRAM領域におけるソレノイドのオン/オフに関する内容を出力ポートに出力する(ステップS33:出力処理)。
また、CPU56は、特別図柄プロセスフラグの値に応じて特別図柄の演出表示を行うための特別図柄表示制御データを特別図柄表示制御データ設定用の出力バッファに設定する特別図柄表示制御処理を行う(ステップS34)。CPU56は、例えば、特別図柄プロセス処理でセットされる開始フラグがセットされると終了フラグがセットされるまで、変動速度が1コマ/0.2秒であれば、0.2秒が経過する毎に、出力バッファに設定される表示制御データの値を+1する。また、CPU56は、出力バッファに設定された表示制御データに応じて、ステップS22において駆動信号を出力することによって、第1特別図柄表示器8aおよび第2特別図柄表示器8bにおける第1特別図柄および第2特別図柄の可変表示を実行する。
なお、ステップS34において、開始フラグがセットされたことにもとづいて特別図柄の変動を開始するのではなく、特別図柄プロセスフラグの値が変動パターン決定後の特別図柄変動中処理を示す値(具体的には3)となった(または、表示結果特定コマンド送信処理を示す値(具体的には2)となった)ことにもとづいて、特別図柄の変動を開始するようにしてもよい。そして、特別図柄プロセスフラグの値が特別図柄停止処理を示す値(具体的には4)となったことにもとづいて、特別図柄の変動を停止するようにしてもよい。そのようにすれば、開始フラグおよび終了フラグを不要とすることができ、RAM55の必要容量を低減することができる。
さらに、CPU56は、普通図柄プロセスフラグの値に応じて普通図柄の演出表示を行うための普通図柄表示制御データを普通図柄表示制御データ設定用の出力バッファに設定する普通図柄表示制御処理を行う(ステップS35)。CPU56は、例えば、普通図柄の変動に関する開始フラグがセットされると終了フラグがセットされるまで、普通図柄の変動速度が0.2秒ごとに表示状態(「○」および「×」)を切り替えるような速度であれば、0.2秒が経過する毎に、出力バッファに設定される表示制御データの値(例えば、「○」を示す1と「×」を示す0)を切り替える。また、CPU56は、出力バッファに設定された表示制御データに応じて、ステップS22において駆動信号を出力することによって、普通図柄表示器10における普通図柄の演出表示を実行する。
なお、ステップS35において、開始フラグがセットされたことにもとづいて普通図柄の変動を開始するのではなく、普通図柄プロセスフラグの値が普通図柄変動中処理を示す値となったことにもとづいて、普通図柄の変動を開始するようにしてもよい。そして、普通図柄プロセスフラグの値が普通図柄停止処理を示す値となったことにもとづいて、普通図柄の変動を停止するようにしてもよい。そのようにすれば、開始フラグおよび終了フラグを不要とすることができ、RAM55の必要容量を低減することができる。
その後、割込許可状態に設定し(ステップS36)、処理を終了する。
なお、遊技制御用マイクロコンピュータ560は、タイマ割込処理においてステップS22の乱数回路初期値更新処理やステップS27のカウント値順列変更処理を実行しないようにするとともに、メイン処理の乱数回路設定処理(ステップS14参照)におけるステップS1500,S1501の乱数最大値の設定の処理を実行しないようにしてもよい。すなわち、。ハードウェア乱数に関して、乱数回路の初期値の変更や順列の変更、乱数最大値の設定を行わないようにし、常に0〜65535の範囲でハードウェア乱数を更新し続けるようにしてもよい。
次に、タイマ割込処理における乱数回路初期値更新処理(ステップS22)について説明する。図44は、乱数回路初期値更新処理を示すフローチャートである。乱数回路初期値更新処理において、CPU56は、乱数回路5003のカウンタ521が出力するカウント値Cを最終値まで更新した旨を示す通知信号の状態を確認する(ステップS220)。通知信号がオン状態になっていることを検出した場合には、CPU56は、初期値更新フラグがセットされているか否かを確認する(ステップS221)。すなわち、CPU56は、乱数回路設定処理において、所定の最終値までカウント値が更新されたときに初期値を更新する旨の設定がなされたか否か(ステップS1505参照)を確認する。
初期値更新フラグがセットされている場合、CPU56は、乱数回路5003のカウンタ521が所定の最終値までカウント値を更新したときに、カウンタ521に入力する初期値を更新すると判断する。また、初期値更新フラグがセットされている場合、CPU56は、初期値変更フラグがセットされているか否かを確認する(ステップS222)。すなわち、CPU56は、カウント値の初期値が現在変更されているか否か(すなわち、遊技制御用マイクロコンピュータ560のIDナンバにもとづく値に変更されているか否か)を判断する。
初期値変更フラグがセットされている(すなわち、遊技制御用マイクロコンピュータ560のIDナンバにもとづく値に初期値が現在変更されている)場合、CPU56は、カウンタ521に入力する初期値を、遊技制御用マイクロコンピュータ560のIDナンバにもとづく値から元の値(例えば、「1」)にもどす(ステップS223)。そして、CPU56は、初期値変更フラグをリセットし(ステップS224)、初期値更新処理を終了する。
初期値変更フラグがセットされていない(すなわち、初期値が現在変更されていない)場合、CPU56は、カウンタ521に入力する初期値を、遊技制御用マイクロコンピュータ560のIDナンバにもとづく値に変更する(ステップS225)。この場合、例えば、遊技制御用マイクロコンピュータ560のIDナンバが「100」であるとすると、カウンタ521に入力する初期値を、IDナンバ「100」に所定値「100」を加算して求めた演算値「200」に変更する。また、例えば、カウンタ521に入力する初期値を、IDナンバ「100」に所定値「50」を減算して求めた演算値「50」に変更する。そして、CPU56は、初期値変更フラグをセットし(ステップS226)、初期値更新処理を終了する。
なお、CPU56は、ステップS225においてカウンタ521に入力する初期値を更新する際、乱数回路5003の比較器522の乱数最大値設定レジスタ535の値を確認し、IDナンバにもとづいて設定された値が乱数最大値以上であるか否かを判断する。そして、IDナンバにもとづいて設定された値が乱数最大値以上であると判断すると、CPU56は、カウンタ521に入力する初期値を所定値のまま更新しない(例えば、所定値「0」のまま更新しない)。そのようにすることによって、カウント値の初期値が乱数最大値以上の値に設定されてしまう事態を防止することができる。
なお、ステップS220において通知信号がオフ状態であると判断した場合、およびステップS221において初期値更新フラグがセットされていないと判断した場合、CPU56は、カウンタ521に入力する初期値を更新することなく、そのまま乱数回路初期値更新処理を終了し、ステップS23に移行する。
次に、タイマ割込処理におけるカウント値順列変更処理(ステップS27)について説明する。図45は、カウント値順列変更処理を示すフローチャートである。CPU56は、カウント値順列変更プログラム554に従って処理を実行することによって、カウント値順列変更処理を行う。カウント値順列変更処理において、CPU56は、乱数回路5003のカウンタ521が出力するカウント値Cを最終値まで更新した旨を示す通知信号の状態を確認する(ステップS241)。通知信号がオン状態になっていることを検出した場合には、CPU56は、カウント値順列変更フラグがセットされているか否かを確認する(ステップS242)。すなわち、CPU56は、乱数回路設定処理において、所定の最終値までカウント値が更新されたときにカウンタ521が更新するカウント値の順列を変更する旨の設定がなされたか否か(ステップS1506参照)を確認する。
カウント値順列変更フラグがセットされている場合、CPU56は、乱数回路5003のカウンタ521が所定の最終値までカウント値を更新したときに、カウンタ521が更新するカウント値の順列を変更すると判断する。そして、CPU56は、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」を書き込む(ステップS243)。すなわち、CPU56は、カウント値順列変更データ「01h」を書き込むことによって、乱数値記憶回路531に入力されるカウント値Cの順列をカウント値順列変更回路523に変更させる。
以上のように、カウント値順列変更処理において、乱数を所定の最終値まで更新したときに、カウンタ521が更新するカウント値の順列を変更するので、乱数回路5003が生成する乱数のランダム性をより向上させることができる。
次に、遊技制御用マイクロコンピュータ560によって更新されるソフトウェア乱数について説明する。図46は、各ソフトウェア乱数を示す説明図である。各ソフトウェア乱数は、以下のように使用される。
(2−1)ランダム2−1(MR2−1):大当り判定用乱数を算出するために用いられる(大当り判定算出用)
(2−2)ランダム2−2(MR2−2):大当りの種類(確変大当り、突然確変大当り、通常大当り)を決定する(大当り種別判定用)
(2−3)ランダム2−3(MR2−3): リーチとするか否か決定する(リーチ判定用)
(3)ランダム3(MR3):ランダム2−1の初期値を決定する(ランダム2−1初期値決定用)
(4)ランダム4(MR4):変動パターンの種類(種別)を決定する(変動パターン種別判定用)
(5)ランダム5(MR5):変動パターン(変動時間)を決定する(変動パターン判定用)
(6)ランダム6(MR6):普通図柄にもとづく当りを発生させるか否か決定する(普通図柄当り判定用)
(7)ランダム7(MR7):ランダム6の初期値を決定する(ランダム6初期値決定用)
図43に示された遊技制御処理におけるステップS24では、遊技制御用マイクロコンピュータ560は、(2−1)の大当り判定算出用乱数、(2−2)の大当り種別判定用乱数、および(5)の普通図柄当り判定用乱数を生成するためのカウンタのカウントアップ(1加算)を行う。例えば、大当り判定算出用乱数(ランダム2−1)をカウントするための大当り判定算出用カウンタの値をカウントアップ(1加算)したり、大当り種別判定用乱数(ランダム2−2)をカウントするための大当り種別判定用カウンタの値をカウントアップ(1加算)したりする。すなわち、それらが判定用乱数であり、それら以外の乱数が表示用乱数(ランダム2−2、ランダム4、ランダム5)または初期値用乱数(ランダム3、ランダム7)である。例えば、図38に示されたメイン処理におけるステップS17や図43に示された遊技制御処理におけるステップS26では、遊技制御用マイクロコンピュータ560は、(2−2)大当り種別判定用乱数、(3)の変動パターン種別判定用乱数、および(4)変動パターン判定用乱数を生成するためのカウンタのカウントアップ(1加算)を行う。例えば、大当り種別判定用乱数(ランダム2−2)をカウントするための大当り種別判定用カウンタの値をカウントアップ(1加算)したり、変動パターン種別判定用乱数(ランダム4)をカウントアップするための変動パターン種別判定用カウンタの値をカウントアップ(1加算)したり、変動パターン判定用乱数(ランダム5)をカウントアップするための変動パターン判定用カウンタの値をカウントアップ(1加算)したりする。また、例えば、図38に示されたメイン処理におけるステップS18や図43に示された遊技制御処理におけるステップS25では、ランダム2−1初期値決定用乱数(ランダム3)をカウントアップするためのランダム2−1初期値決定用カウンタの値をカウントアップ(1加算)したり、ランダム6初期値決定用乱数(ランダム7)をカウントアップするためのランダム6初期値決定用カウンタの値をカウントアップ(1加算)したりする。
なお、ステップS24で更新した判定用乱数のカウンタの値、ステップS17,S26で更新した表示用乱数のカウンタの値、およびステップS18,S25で更新した初期値用乱数のカウンタの値は、図30に示すRAM55の領域のソフトウェア乱数カウンタ格納エリアに格納される。なお、前述したように、大当り判定算出用乱数(ランダム2−1)をカウントするための大当り判定算出用カウンタのみをソフトウェア乱数カウンタ格納エリアに格納するようにし、それ以外のソフトウェア乱数用のカウンタについては、図30に示すワークエリアのうちのソフトウェア乱数カウンタ格納エリア以外のその他のエリアに格納するようにしてもよい。
また、この実施の形態では、後述するように、遊技制御用マイクロコンピュータ560は、ソフトウェア乱数であるランダム2−1の大当り判定算出用乱数と、乱数回路5003が発生するハードウェア乱数とを用いて、大当り判定用乱数を生成する。そして、生成した大当り判定用乱数にもとづいて、大当りとするか否かを判定する。
図47(A)は、大当り判定テーブルを示す説明図である。大当り判定テーブルとは、ROM54に記憶されているデータの集まりであって、遊技制御用マイクロコンピュータ560によって算出される大当り判定用乱数と比較される大当り判定値が設定されているテーブルである。大当り判定テーブルには、通常状態(確変状態でない遊技状態)において用いられる通常時大当り判定テーブルと、確変状態において用いられる確変時大当り判定テーブルとがある。通常時大当り判定テーブルには、図47(A)の左欄に記載されている各数値が設定され、確変時大当り判定テーブルには、図47(A)の右欄に記載されている各数値が設定されている。
CPU56は、所定の時期に、乱数回路5003から抽出したハードウェア乱数とランダム2−1(ソフトウェア乱数)とを用いて大当り判定用乱数を生成するのであるが、大当り判定用乱数値が図47(A)に示すいずれかの大当り判定値に一致すると、特別図柄に関して大当り(確変大当り、通常大当りもしくは突確大当り)にすることに決定する。なお、図47(A)に示す「確率」は、大当りになる確率(割合)を示す。また、大当りにするか否か決定するということは、大当り遊技状態に移行させるか否か決定するということであるが、第1特別図柄表示器8aまたは第2特別図柄表示器8bにおける停止図柄を大当り図柄にするか否か決定するということでもある。
なお、図47(A)に示すように、大当り判定用乱数のとりうる最小の値である0と最大の値である65535については、乱数回路5003の読み出し不能状態の出力値と重なる可能性があるため、大当り判定値とはなっていない。
図47(B)は、ROM54に記憶されている大当り種別判定テーブル131を示す説明図である。大当り種別判定テーブル131は、可変表示結果を大当り図柄にする旨の判定がなされたときに、大当り種別判定用の乱数(ランダム2−2)にもとづいて、大当りの種別を「通常大当り」、「確変大当り」、「突確大当り」のうちのいずれかに決定するために参照されるテーブルである。大当り種別判定テーブル131には、ランダム2−2の値と比較される数値であって、「通常大当り」、「確変大当り」、「突確大当り」のそれぞれに対応した判定値(大当り種別判定値)が設定されている。CPU56は、ランダム2−2の値が大当り種別判定値のいずれかに一致した場合に、大当りの種別を、一致した大当り種別判定値に対応する種別に決定する。
なお、第1特別図柄の変動表示を行う場合と第2特別図柄の変動表示を行う場合とで、異なる大当り種別判定テーブルを用いてもよい。この場合、例えば、可変入賞球装置15が設けられている第2始動入賞口14に始動入賞したことにもとづいて実行される第2特別図柄の変動表示を行う場合には、通常大当りと確変大当りのみで突然確変大当りを含まない大当り種別判定テーブルを用いて大当り種別を決定するようにしてもよい。具体的には、図47(B)において突然確変大当りに振分けている判定値「7」も確変大当りに振り分けて大当り種別判定テーブルを構成するようにすればよい。そのように構成することによって、確変状態(時短状態)である場合には、可変入賞球装置15が設けられている第2始動入賞口14に始動入賞して第2特別図柄の変動表示が実行される頻度が高くなるのであるから、15ラウンドの大当りとなる確率を高めることができ、出球率が向上し、遊技に対する興趣を向上させることができる。
図48は、主基板31に搭載される遊技制御用マイクロコンピュータ560(具体的には、CPU56)が実行する特別図柄プロセス処理(ステップS28)のプログラムの一例を示すフローチャートである。上述したように、特別図柄プロセス処理では第1特別図柄表示器8aまたは第2特別図柄表示器8bおよび大入賞口を制御するための処理が実行される。特別図柄プロセス処理において、CPU56は、第1始動入賞口13に遊技球が入賞したことを検出するための第1始動口スイッチ13aまたは第2始動入賞口14に遊技球が入賞したことを検出するための第2始動口スイッチ14aがオンしていたら、すなわち始動入賞が発生していたら、始動口スイッチ通過処理を実行する(ステップS311,S312)。そして、ステップS300〜S307のうちのいずれかの処理を行う。第1始動入賞口スイッチ13aまたは第2始動口スイッチ14aがオンしていなければ、内部状態に応じて、ステップS300〜S307のうちのいずれかの処理を行う。
ステップS300〜S307の処理は、以下のような処理である。
特別図柄通常処理(ステップS300):特別図柄プロセスフラグの値が0であるときに実行される。遊技制御用マイクロコンピュータ560は、特別図柄の可変表示が開始できる状態になると、保留記憶数バッファに記憶される数値データの記憶数(合計保留記憶数)を確認する。保留記憶数バッファに記憶される数値データの記憶数は合計保留記憶数カウンタのカウント値により確認できる。また、合計保留記憶数カウンタのカウント値が0でなければ、第1特別図柄または第2特別図柄の可変表示の表示結果を大当りとするか否かを決定する。大当りとする場合には大当りフラグをセットする。そして、内部状態(特別図柄プロセスフラグ)をステップS301に応じた値(この例では1)に更新する。なお、大当りフラグは、大当り遊技が終了するときにリセットされる。
変動パターン設定処理(ステップS301):特別図柄プロセスフラグの値が1であるときに実行される。また、変動パターンを決定し、その変動パターンにおける変動時間(可変表示時間:可変表示を開始してから表示結果を導出表示(停止表示)するまでの時間)を特別図柄の可変表示の変動時間とすることに決定する。また、特別図柄の変動時間を計測する変動時間タイマをスタートさせる。そして、内部状態(特別図柄プロセスフラグ)をステップS302に対応した値(この例では2)に更新する。
表示結果特定コマンド送信処理(ステップS302):特別図柄プロセスフラグの値が2であるときに実行される。演出制御用マイクロコンピュータ100に、表示結果特定コマンドを送信する制御を行う。そして、内部状態(特別図柄プロセスフラグ)をステップS303に対応した値(この例では3)に更新する。
特別図柄変動中処理(ステップS303):特別図柄プロセスフラグの値が3であるときに実行される。変動パターン設定処理で選択された変動パターンの変動時間が経過(ステップS301でセットされる変動時間タイマがタイムアウトすなわち変動時間タイマの値が0になる)すると、内部状態(特別図柄プロセスフラグ)をステップS304に対応した値(この例では4)に更新する。
特別図柄停止処理(ステップS304):特別図柄プロセスフラグの値が4であるときに実行される。第1特別図柄表示器8aまたは第2特別図柄表示器8bにおける可変表示を停止して停止図柄を導出表示させる。また、演出制御用マイクロコンピュータ100に、図柄確定指定コマンドを送信する制御を行う。そして、大当りフラグがセットされている場合には、内部状態(特別図柄プロセスフラグ)をステップS305に対応した値(この例では5)に更新する。大当りフラグがセットされていない場合には、内部状態(特別図柄プロセスフラグ)をステップS300に対応した値(この例では0)に更新する。なお、演出制御用マイクロコンピュータ100は、遊技制御用マイクロコンピュータ560が送信する図柄確定指定コマンドを受信すると演出表示装置9において演出図柄および飾り図柄が停止されるように制御する。
大入賞口開放前処理(ステップS305):特別図柄プロセスフラグの値が5であるときに実行される。大入賞口開放前処理では、大入賞口を開放する制御を行う。具体的には、カウンタ(例えば、大入賞口に入った遊技球数をカウントするカウンタ)などを初期化するとともに、ソレノイド21を駆動して大入賞口を開放状態にする。また、タイマによって大入賞口開放中処理の実行時間を設定し、内部状態(特別図柄プロセスフラグ)をステップS306に対応した値(この例では6)に更新する。なお、大入賞口開放前処理は各ラウンド毎に実行されるが、第1ラウンドを開始する場合には、大入賞口開放前処理は大当り遊技を開始する処理でもある。
大入賞口開放中処理(ステップS306):特別図柄プロセスフラグの値が6であるときに実行される。大当り遊技状態中のラウンド表示の演出制御コマンドを演出制御用マイクロコンピュータ100に送信する制御や大入賞口の閉成条件の成立を確認する処理等を行う。大入賞口の閉成条件が成立し、かつ、まだ残りラウンドがある場合には、内部状態(特別図柄プロセスフラグ)をステップS305に対応した値(この例では5)に更新する。また、全てのラウンドを終えた場合には、内部状態(特別図柄プロセスフラグ)をステップS307に対応した値(この例では7)に更新する。
大当り終了処理(ステップS307):特別図柄プロセスフラグの値が7であるときに実行される。大当り遊技状態が終了したことを遊技者に報知する表示制御を演出制御用マイクロコンピュータ100に行わせるための制御を行う。また、遊技状態を示すフラグ(例えば、確変フラグや時短フラグ)をセットする処理を行う。そして、内部状態(特別図柄プロセスフラグ)をステップS300に対応した値(この例では0)に更新する。
図49および図50は、ステップS312の始動口スイッチ通過処理を示すフローチャートである。第1始動口スイッチ13aと第2始動口スイッチ14aとのうちの少なくとも一方がオン状態の場合に実行される始動口スイッチ通過処理において、CPU56は、オンしたのが第1始動口スイッチ13aであるか否かを確認する(ステップS2001)。第1始動口スイッチ13aがオンしていれば、CPU56は、始動口ポインタに「第1」を示すデータ(例えば「01(H)」)をセットする(ステップS2002)。第1始動口スイッチ13aがオンしていなければ(すなわち、第2始動口スイッチ14aがオンしていれば)、CPU56は、始動口ポインタに「第2」を示すデータ(例えば「02(H)」)をセットする(ステップS2003)。
次いで、CPU56は、始動口ポインタが指す方の保留記憶数カウンタ(第1保留記憶数カウンタまたは第2保留記憶数カウンタの値が4であるか否かを確認する(ステップS2004)。なお、第1保留記憶数カウンタは、第1始動入賞口13に始動入賞した第1保留記憶数をカウントするためのカウンタであり、第2保留記憶数カウンタは、第2始動入賞口14に始動入賞した第2保留記憶数をカウントするためのカウンタである。保留記憶数カウンタの値が4であれば、そのまま処理を終了する。
保留記憶数カウンタの値が4でなければ、CPU56は、始動口ポインタが指す方の保留記憶数カウンタの値を1増やす(ステップS2005)。また、CPU56は、第1始動入賞口13および第2始動入賞口14への入賞順を記憶するための保留記憶特定情報記憶領域(保留特定領域)において、合計保留記憶数カウンタの値に対応した領域に、始動口ポインタが示すデータ(「第1」または「第2」を示すデータ)をセットする(ステップS2006)。
この実施の形態では、第1始動口スイッチ13aがオン状態となった場合(すなわち、第1始動入賞口13に遊技球が始動入賞した場合)には「第1」を示すデータをセットし、第2始動口スイッチ14aがオン状態となった場合(すなわち、第2始動入賞口14に遊技球が始動入賞した場合)には「第2」を示すデータをセットする。例えば、CPU56は、保留記憶特定情報記憶領域(保留特定領域)において、第1始動口スイッチ13aがオン状態となった場合には「第1」を示すデータとして01(H)をセットし、第2始動口スイッチ14aがオン状態となった場合には「第2」を示すデータとして02(H)をセットする。なお、この場合、対応する保留記憶がない場合には、保留記憶特定情報記憶領域(保留特定領域)には、00(H)がセットされている。
図51(A)は、保留記憶特定情報記憶領域(保留特定領域)の構成例を示す説明図である。図51(A)に示すように、保留特定領域には、合計保留記憶数カウンタの値の最大値(この例では8)に対応した領域が確保されている。なお、図51(A)には、合計保留記憶数カウンタの値が5である場合の例が示されている。図51(A)に示すように、保留特定領域には、合計保留記憶数カウンタの値の最大値(この例では8)に対応した領域が確保され、第1始動入賞口13または第2始動入賞口14への入賞にもとづいて入賞順に「第1」または「第2」であることを示すデータがセットされる。従って、保留記憶特定情報記憶領域(保留特定領域)には、第1始動入賞口13および第2始動入賞口14への入賞順が記憶される。なお、保留特定領域は、RAM55に形成されている。「RAMに形成されている」とは、RAM内の領域であることを意味する。
図51(B)は、保留記憶に対応する乱数等を保存する領域(保留バッファ)の構成例を示す説明図である。図51(B)に示すように、第1保留記憶バッファには、第1保留記憶数の上限値(この例では4)に対応した保存領域が確保されている。また、第2保留記憶バッファには、第2保留記憶数の上限値(この例では4)に対応した保存領域が確保されている。なお、第1保留記憶バッファおよび第2保留記憶バッファは、RAM55に形成されている。
次いで、CPU56は、始動口ポインタが指す方の乱数回路読出値格納領域(第1乱数回路読出値格納領域または第2乱数回路読出値格納領域)の値を始動口ポインタが指す方の前回乱数回路読出値格納領域(第1前回乱数回路読出値格納領域または第2前回乱数回路読出値格納領域)に退避する(ステップS2007)。なお、乱数回路読出値格納領域は、乱数回路5003の乱数値記憶回路531から読み出したハードウェア乱数の値を格納する領域であり、例えば、RAM55内に確保される。また、前回乱数回路読出値格納領域は、乱数回路5003の乱数値記憶回路531から前回の処理で読み出したハードウェア乱数の値を格納する領域であり、例えば、RAM55内に確保される。
次いで、CPU56は、始動口ポインタが指す方の乱数値記憶回路531からハードウェア乱数の値を読出し、始動口ポインタが指す方の乱数回路読出値格納領域に格納する(ステップS2008)。例えば、第1始動入賞口13に遊技球が始動入賞した場合には、第1始動口スイッチ13aからの検出信号をラッチ信号SL1として入力することによって、第1乱数値記憶回路531aにハードウェア乱数がラッチされている。この場合、CPU56は、第1乱数値記憶回路531aへの出力制御信号の出力を開始し、第1乱数値記憶回路531aからハードウェア乱数を読み出す。そして、読み出したハードウェア乱数の値を第1乱数回路読出値格納領域に格納する。また、例えば、第2始動入賞口14に遊技球が始動入賞した場合には、第2始動口スイッチ14aからの検出信号をラッチ信号SL2として入力することによって、第2乱数値記憶回路531bにハードウェア乱数がラッチされている。この場合、CPU56は、第2乱数値記憶回路531bへの出力制御信号の出力を開始し、第2乱数値記憶回路531bからハードウェア乱数を読み出す。そして、読み出したハードウェア乱数の値を第2乱数回路読出値格納領域に格納する。
なお、この実施の形態では、各乱数値記憶回路531a,531bが第1始動口スイッチ13aまたは第2始動口スイッチ14aからの検出信号をラッチ信号として入力してハードウェア乱数をラッチする場合を示すが、CPU56から各乱数値記憶回路531a,531bにラッチ信号を出力するようにしてもよい。例えば、ステップS2008の処理において、CPU56は、始動口ポインタが指す方の乱数値記憶回路531にラッチ信号を出力し、所定時間(例えば、0.1秒)の遅延時間の後に、乱数値記憶回路531からハードウェア乱数の値を読み出して、始動口ポインタが指す方の乱数回路読出値格納領域に格納するようにしてもよい。
次いで、CPU56は、始動口ポインタが指す方の乱数回路読出値格納領域の値が、始動口ポインタが指す方の前回乱数回路読出値格納領域の値と合致するか否かを確認する(ステップS2009)。合致しなければ、CPU56は、始動口ポインタが指す方の乱数未更新回数カウンタ(第1乱数未更新回数カウンタまたは第2乱数未更新回数カウンタ)をリセットする(ステップS2010)。なお、乱数未更新回数カウンタは、乱数回路5003が発生する乱数値が継続して更新されていない回数をカウントするためのカウンタである。そして、ステップS2014に移行する。
始動口ポインタが指す方の乱数回路読出値格納領域の値が、始動口ポインタが指す方の前回乱数回路読出値格納領域の値と合致すれば(ステップS2009のY)、CPU56は、始動口ポインタが指す方の乱数未更新回数カウンタの値を1加算する(ステップS2011)。また、加算後の乱数未更新回数カウンタの値が所定値(例えば、2または3)以上であるか否かを確認する(ステップS2012)。加算後の乱数未更新回数カウンタの値が所定値であれば(ステップS2012のY)、CPU56は、乱数異常指定コマンドを、演出制御用マイクロコンピュータ100に送信する制御を行う(ステップS2013)。すなわち、所定回数以上にわたって乱数回路5003によるハードウェア乱数の値が更新されていないので、乱数回路5003に対して何らかの不正行為が行われたと判断し、乱数異常指定コマンドを送信する制御を行う。
なお、始動口ポインタが指す方の乱数回路読出値格納領域の値が、始動口ポインタが指す方の前回乱数回路読出値格納領域の値と合致した場合に、直ちに乱数回路5003の異常と判定し、乱数異常指定コマンドを送信するようにしてもよい。この場合、例えば、CPU56は、ステップS2009でYと判定したときには、、ステップS2011,S2012を実行することなく、そのままステップS2013を実行するようにすればよい。
また、ステップS2007〜S2013の処理において、CPU56は、始動口ポインタが指す方の乱数回路読出値格納領域の値のうちの特定のビット(複数ビットでも単一ビットでもよい)が、始動口ポインタが指す方の前回乱数回路読出値格納領域の値と比較して、複数回にわたって変化していないか否かを確認するようにしてもよい。そして、特定のビットが複数回にわたって変化していなければ、乱数回路5003の異常と判定し、乱数異常指定コマンドを送信するようにしてもよい。そのように構成すれば、乱数回路5003の特定のビットをつぶして(例えば、ショートさせて)、乱数の更新範囲を狭める不正行為に対しても効果的に防止することができる。
また、遊技制御用マイクロコンピュータ560が乱数回路5003を内蔵するものではなく、遊技制御用マイクロコンピュータ560に外付けの乱数回路を用いる場合であっても、CPU56は、ステップS2007〜S2013と同様の処理を実行することによって、外付けの乱数回路に異常が発生したか否かを判定することができる。そして、CPU56は、外付けの乱数回路に異常が発生したと判定すると、ステップS2013と同様の処理に従って乱数異常指定コマンドを送信する。
次いで、CPU56は、各ソフトウェア乱数を生成するためのカウンタから値を抽出する(ステップS2014)。なお、ステップS2014の処理では、ソフトウェア乱数であるランダム2−1やランダム2−2(図46参照)が、大当り判定算出用カウンタや大当り種別判定用カウンタから抽出される。この場合、具体的には、CPU56は、メイン処理における初期化処理(ステップS10〜S13参照)において初期化されないRAM55の領域であるソフトウェア乱数カウンタ格納エリア(図30参照)に格納されている各カウンタから、大当り判定算出用乱数(ランダム2−1)や大当り種別判定用乱数(ランダム2−2)などのソフトウェア乱数を読み出す。
次いで、CPU56は、ステップS2014で読み出したソフトェア乱数であるランダム2−1(大当り判定算出用乱数)と、ステップS2008で読み出したハードウェア乱数とにもとづいて、大当り判定に用いる大当り判定用乱数(ランダムMR1)を算出する(ステップS2015)。
図52は、大当り判定値と比較されるランダムMR1の作成の仕方を示す説明図である。図52(A)に示すように、第1始動入賞口13に遊技球が入賞したときに、すなわち第1始動入賞が生じたときに、CPU56は、第1乱数値記憶回路(第1ラッチ回路)531aがラッチするカウント値を読み出す。また、ソフトウェア乱数であるランダム2−1(大当り判定算出用乱数)を抽出する。すなわち、ランダム2−1を生成するためのカウンタ(乱数回路5003のカウンタ521のビット幅と同じビット幅(例えば16ビット)のソフトウェアカウンタである大当り判定算出用カウンタ)からカウント値を読み出す。そして、カウンタ521から読み出したカウント値と抽出したランダム2−1とを加算し、さらに、加算値を65536(0〜65535の数値の総数に相当、換言すれば、65535+1に相当)で除算(整数としての除算)し、剰余(余り)を大当り判定用乱数(ランダムMR1:実際に大当り判定値と比較される乱数)とする。
また、図52(B)に示すように、第2始動入賞口14に遊技球が入賞したときに、すなわち第2始動入賞が生じたときに、CPU56は、第2乱数値記憶回路(第2ラッチ回路)531bがラッチするカウント値を読み出す。また、ソフトウェア乱数であるランダム2−1(大当り判定算出用乱数)を抽出する。すなわち、ランダム2−1を生成するためのカウンタ(ソフトウェアカウンタである大当り判定算出用カウンタ)からカウント値を読み出す。そして、カウンタ521から読み出したカウント値と抽出したランダム2−1とを加算し、さらに、加算値を65536(0〜65535の数値の総数に相当、換言すれば、65535+1に相当)で除算(整数としての除算)し、剰余(余り)を大当り判定用乱数(ランダムMR1)とする。
なお、遊技制御用マイクロコンピュータ560が乱数回路5003を内蔵するものではなく、遊技制御用マイクロコンピュータ560に外付けの乱数回路を用いる場合には、CPU56は、ステップS2008で外付けの乱数回路の乱数値記憶回路からハードウェア乱数を読み出す。そして、CPU56は、ステップS2015において、ステップS2014で読み出したソフトェア乱数であるランダム2−1(大当り判定算出用乱数)と、ステップS2008で読み出したハードウェア乱数とにもとづいて、図52と同様の処理に従って、大当り判定に用いる大当り判定用乱数(ランダムMR1)を算出する。
また、この実施の形態では、ソフトェア乱数であるランダム2−1(大当り判定算出用乱数)と、乱数回路5003から読み出したハードウェア乱数との2つの乱数を用いて大当り判定用乱数(ランダムMR1)を算出する場合を示したが、いずれか一方のみを用いて大当り判定用乱数(ランダムMR1)を算出するようにしてもよい。例えば、遊技制御用マイクロコンピュータ560は、ステップS2015において、ソフトェア乱数であるランダム2−1(大当り判定算出用乱数)のみを用いて、大当り判定用乱数(ランダムMR1)を算出してもよい。この場合、遊技制御用マイクロコンピュータ560は、大当り判定算出用乱数(ランダム2−1)を、演算することなくそのまま大当り判定用乱数(ランダムMR1)としてもよい。また、例えば、遊技制御用マイクロコンピュータ560は、ステップS2015において、乱数回路5003(または、遊技制御用マイクロコンピュータ560に外付けの乱数回路)から読み出したハードウェア乱数のみを用いて、大当り判定用乱数(ランダムMR1)を算出してもよい。この場合、遊技制御用マイクロコンピュータ560は、読み出したハードウェア乱数(ランダムR)を、演算することなくそのまま大当り判定用乱数(ランダムMR1)としてもよい。
次いで、CPU56は、ステップS2014で読み出したランダム2−1以外のソフトウェア乱数やステップS2015で算出したランダムMR1を、始動口ポインタが指す方の保留記憶バッファ(第1保留記憶バッファまたは第2保留記憶バッファ)における保存領域に格納する処理を実行する(ステップS2016)。なお、この場合、CPU56は、算出した大当り判定用乱数(MR1)を含む各乱数の値を、RAM55の領域のうち、メイン処理における初期化処理(ステップS10〜S13参照)において初期化されるその他のエリア(図30参照。すなわち、図30に示すRAM55の領域のうち、ソフトウェア乱数カウンタ格納エリアは初期化処理において初期化されないのに対して、ソフトウェア乱数カウンタ格納エリア以外のその他のエリアは初期化処理において初期化される。)に格納する。また、CPU56は、ステップS2008で開始した乱数値記憶回路531に対する出力制御信号の送出を停止する。
次いで、CPU56は、始動口ポインタが指す方の始動入賞指定コマンド(第1始動入賞指定コマンドまたは第2始動入賞指定コマンド)を送信する制御を行う(ステップS2018)。また、CPU56は、第1保留記憶数と第2保留記憶数との合計である合計保留記憶数を示す合算保留記憶数カウンタの値を1増やす(ステップS2019)。そして、CPU56は、合算保留記憶数カウンタの値にもとづいて、合算保留記憶数を示す合算保留記憶数指定コマンドを送信する制御を行う(ステップS2020)。なお、合算保留記憶数指定コマンドを、始動入賞指定コマンドの前に送信してもよい。
また、演出制御用マイクロコンピュータ100に演出制御コマンドを送信する場合には、CPU56は、演出制御コマンドに応じたコマンド送信テーブル(あらかじめROMにコマンド毎に設定されている)のアドレスをポインタにセットする。そして、演出制御コマンドに応じたコマンド送信テーブルのアドレスをポインタにセットして、演出制御コマンド制御処理(ステップS30)において演出制御コマンドを送信する。
なお、ステップS2002で始動口ポインタが指す保留記憶数が上限値(本例では4)に達していたときに、そのまま処理を終了するのではなく、第2始動口スイッチ14aがオンしているか否かを確認し、オンしていたらステップS2003に移行して始動口ポインタに「第2」を示すデータをセットするようにしてもよい。そのように構成すれば、第1始動口スイッチ13aと第2始動口スイッチ14aとが同じタイミングでオンした場合に、正確なタイミングで乱数値を抽出して保留記憶数バッファに保存することができる。
図53および図54は、特別図柄プロセス処理における特別図柄通常処理(ステップS300)を示すフローチャートである。特別図柄通常処理において、CPU56は、合算保留記憶数の値を確認する(ステップS51)。具体的には、合算保留記憶数カウンタのカウント値を確認する。合算保留記憶数が0であれば処理を終了する。
合算保留記憶数が0でなければ、CPU56は、保留特定領域(図51(A)参照)に設定されているデータのうち1番目のデータが「第1」を示すデータであるか否か確認する(ステップS52)。「第1」を示すデータであれば、特別図柄ポインタ(第1特別図柄について特別図柄プロセス処理を行っているのか第2特別図柄について特別図柄プロセス処理を行っているのかを示すフラグ)に「第1」を示すデータを設定する(ステップS53)。「第1」を示すデータでなければ、すなわち「第2」を示すデータであれば、特別図柄ポインタに「第2」を示すデータを設定する(ステップS54)。
この実施の形態では、以下、特別図柄ポインタに「第1」を示すデータが設定されたか「第2」を示すデータが設定されたかに応じて、第1特別図柄表示器8aにおける第1特別図柄の変動表示と、第2特別図柄表示器8bにおける第2特別図柄の変動表示とを、共通の処理ルーチンを用いて実行する。なお、ここでいう「共通の処理ルーチン」とは、ある特定の一連の処理を実現するためのプログラムであり、この実施の形態では、第1特別図柄や第2特別図柄の変動表示を行う一連の処理を実現するためのプログラムを指している。この実施の形態において、「共通の処理ルーチン」には、後述する特別図柄通常処理におけるステップS55〜S76の処理、ステップS301の変動パターン設定処理、ステップS302の表示結果特定コマンド送信処理、ステップS303の特別図柄変動中処理およびステップS304の特別図柄停止処理が含まれる。
CPU56は、RAM55において、特別図柄ポインタが示す方の保留記憶数=1に対応する保存領域に格納されている各乱数値を読み出してRAM55の乱数バッファ領域に格納する(ステップS55)。具体的には、CPU56は、特別図柄ポインタが「第1」を示している場合には、第1保留記憶数バッファにおける第1保留記憶数=1に対応する保存領域に格納されている各乱数値を読み出してRAM55の乱数バッファ領域に格納する。また、CPU56は、特別図柄ポインタが「第2」を示している場合には、第2保留記憶数バッファにおける第2保留記憶数=1に対応する保存領域に格納されている各乱数値を読み出してRAM55の乱数バッファ領域に格納する。
そして、CPU56は、特別図柄ポインタが示す方の保留記憶数カウンタのカウント値を1減算し、かつ、各保存領域の内容をシフトする(ステップS56)。具体的には、CPU56は、特別図柄ポインタが「第1」を示している場合には、第1保留記憶数カウンタのカウント値を1減算し、かつ、第1保留記憶数バッファにおける各保存領域の内容をシフトする。また、特別図柄ポインタが「第2」を示している場合に、第2保留記憶数カウンタのカウント値を1減算し、かつ、第2保留記憶数バッファにおける各保存領域の内容をシフトする。
すなわち、CPU56は、特別図柄ポインタが「第1」を示している場合に、RAM55の第1保留記憶数バッファにおいて第1保留記憶数=n(n=2,3,4)に対応する保存領域に格納されている各乱数値を、第1保留記憶数=n−1に対応する保存領域に格納する。また、特別図柄ポインタが「第2」を示す場合に、RAM55の第2保留記憶数バッファにおいて第2保留記憶数=n(n=2,3,4)に対応する保存領域に格納されている各乱数値を、第2保留記憶数=n−1に対応する保存領域に格納する。
よって、各第1保留記憶数(または、各第2保留記憶数)に対応するそれぞれの保存領域に格納されている各乱数値が抽出された順番は、常に、第1保留記憶数(または、第2保留記憶数)=1,2,3,4の順番と一致するようになっている。
そして、CPU56は、合算保留記憶数カウンタのカウント値をRAM55の所定の領域に保存した後(ステップS57)、合算保留記憶数の値を1減らす。すなわち、合算保留記憶数カウンタのカウント値を1減算する(ステップS58)。なお、CPU56は、カウント値が1減算される前の合算保留記憶数カウンタの値をRAM55の所定の領域に保存する。
特別図柄通常処理では、最初に、第1始動入賞口13を対象として処理を実行することを示す「第1」を示すデータすなわち第1特別図柄を対象として処理を実行することを示す「第1」を示すデータ、または第2始動入賞口14を対象として処理を実行することを示す「第2」を示すデータすなわち第2特別図柄を対象として処理を実行することを示す「第2」を示すデータが、特別図柄ポインタに設定される。そして、特別図柄プロセス処理における以降の処理では、特別図柄ポインタに設定されているデータに応じた処理が実行される。よって、ステップS300〜S307の処理を、第1特別図柄を対象とする場合と第2特別図柄を対象とする場合とで共通化することができる。
次いで、CPU56は、乱数バッファ領域から大当り判定用乱数MR1を読み出し(ステップS61)、大当り判定モジュールを実行する(ステップS62)。大当り判定モジュールは、あらかじめ決められている大当り判定値(図47参照)と大当り判定用乱数とを比較し、それらが一致したら大当りとすることに決定する処理を実行するプログラムである。すなわち、大当り判定の処理を実行するプログラムである。
大当り判定の処理では、遊技状態が確変状態(高確率状態)の場合は、遊技状態が非確変状態(通常遊技状態および時短状態)の場合よりも、大当りとなる確率が高くなるように構成されている。具体的には、あらかじめ大当り判定値の数が多く設定されている確変時大当り判定テーブル(ROM54における図47(A)の右側の数値が設定されているテーブル)と、大当り判定値の数が確変大当り判定テーブルよりも少なく設定されている通常時大当り判定テーブル(ROM54における図47(A)の左側の数値が設定されているテーブル)とが設けられている。そして、CPU56は、遊技状態が確変状態であるか否かを確認し、遊技状態が確変状態であるときは、確変時大当り判定テーブルを使用して大当りの判定の処理を行い、遊技状態が通常遊技状態であるときは、通常時大当り判定テーブルを使用して大当りの判定の処理を行う。すなわち、CPU56は、大当り判定用乱数(ランダムR)の値が図47(A)に示すいずれかの大当り判定値に一致すると、特別図柄に関して大当り(確変大当りまたは通常大当り)とすることに決定する。大当りとすることに決定した場合には(ステップS63のY)、ステップS71に移行する。なお、大当りとするか否か決定するということは、大当り遊技状態に移行させるか否か決定するということであるが、特別図柄表示器における停止図柄を大当り図柄とするか否か決定するということでもある。
なお、現在の遊技状態が確変状態であるか否かの確認は、確変フラグがセットされているか否かにより行われる。確変フラグは、遊技状態を確変状態に移行するときにセットされ、確変状態を終了するときにリセットされる。具体的には、確変大当りまたは突然確変大当りとすることに決定され、大当り遊技を終了する処理においてセットされ、通常大当りとすることに決定され、大当り遊技を終了する処理においてリセットされる。
ランダムRの値が大当り判定値のいずれにも一致しない場合には、そのままステップS75に移行する。
ステップS71では、CPU56は、大当りフラグをセットする。そして、大当り種別を複数種類のうちのいずれかに決定するために使用するテーブルとして、図47(B)に示す大当り種別判定テーブル131を選択する(ステップS72)。乱数バッファ領域に格納された大当り種別判定用の乱数(ランダム2−2)の値と一致する値に対応した種別(「通常」、「確変」または「突確」)を大当りの種別に決定する(ステップS73)。また、決定した大当りの種別を示すデータをRAM55における大当り種別バッファに設定する(ステップS74)。例えば、大当り種別が「通常」の場合には大当り種別を示すデータとして「01」が設定され、大当り種別が「確変」の場合には大当り種別を示すデータとして「02」が設定され、大当り種別が「突確」の場合には大当り種別を示すデータとして「03」が設定される。
次いで、CPU56は、特別図柄の停止図柄を決定する(ステップS75)。具体的には、大当りフラグがセットされていない場合には、はずれ図柄となる「−」を特別図柄の停止図柄に決定する。大当りフラグがセットされている場合には、大当り種別の決定結果に応じて、大当り図柄となる「1」、「3」、「7」のいずれかを特別図柄の停止図柄に決定する。すなわち、大当り種別を「突確」に決定した場合には、2ラウンド大当り図柄となる「1」を特別図柄の停止図柄に決定する。大当り種別を「通常」または「確変」に決定した場合には、「3」または「7」を特別図柄の停止図柄に決定する。
そして、特別図柄プロセスフラグの値を変動パターン設定処理(ステップS301)に対応した値に更新する(ステップS76)。
図55は、特別図柄プロセス処理における変動パターン設定処理(ステップS301)を示すフローチャートである。変動パターン設定処理において、CPU56は、大当りフラグがセットされているか否か確認する(ステップS91)。
大当りフラグがセットされている場合には、変動パターン種別を複数種類のうちのいずれかに決定するために使用するテーブルとして、あらかじめ用意されているいずれかの大当り用変動パターン種別判定テーブルを選択する(ステップS92)。そして、ステップS101に移行する。なお、CPU56は、遊技状態を、確変フラグおよび時短フラグの状態によって判定できる。
大当りフラグがセットされていない場合には、パチンコ遊技機1における遊技状態が通常状態、確変状態および時短状態のいずれであるかにもとづいて、演出図柄の可変表示状態をリーチ状態とするか否かを判定するために使用するテーブルとして、あらかじめ用意されているいずれかのリーチ判定テーブルを選択する(ステップS95)。また、ランダム2−3を生成するためのカウンタのカウント値を抽出することによってランダム2−3を抽出する(ステップS96)。そして、CPU56は、選択したリーチ判定テーブルのいずれかにおける保留記憶数(保留記憶数カウンタの値)に応じた領域において、ランダム2−3の値と一致する値に対応したリーチ状態の有無を示すデータによって、リーチするか否かと、リーチしない場合の演出の種別またはリーチする場合のリーチの種別を決定する(ステップS97)。なお、ステップS97の処理で用いられる保留記憶数として、ステップS53の処理で−1される前の値を用いてもよい。
リーチすることに決定した場合には(ステップS98のY)、ステップS97の処理で決定されたリーチの種別に応じて、変動パターン種別を複数種類のうちのいずれかに決定するために使用するテーブルとして、あらかじめ用意されているいずれかのリーチ用変動パターン種別判定テーブルを選択する(ステップS99)。リーチしないことに決定した場合には(ステップS98のN)、ステップS97の処理で決定された演出の種別に応じて、変動パターン種別を複数種類のうちのいずれかに決定するために使用するテーブルとして、あらかじめ用意されているいずれかの非リーチ用変動パターン種別判定テーブルを選択する(ステップS100)。そして、ステップS101に移行する。
ステップS101では、CPU56は、ランダム4を生成するためのカウンタのカウント値を抽出することによってランダム4の値を抽出する。そして、抽出したランダム4の値にもとづいて、ステップS92、S99またはS100の処理で選択したテーブルを参照することによって、変動パターン種別を複数種類のうちのいずれかに決定する(ステップS102)。ステップS102では、例えば、CPU56は、ハズレであってリーチとしない場合には、変動パターン種別として、特定の演出(滑り演出や擬似連)を伴うハズレとするか、特定の演出も伴わないハズレとするかのいずれかの種別に決定する。また、例えば、大当りまたはリーチを伴うハズレとする場合には、変動パターン種別として、ノーマルリーチ、スーパーリーチ1、またはスーパーリーチ2(スーパーリーチ1とは出現するキャラクタなどが異なるもの)のいずれかの種別に決定する。そして、CPU56は、決定した変動パターン種別にもとづいて、後述するステップS105で変動パターンを決定する。例えば、CPU56は、ステップS102で決定した変動パターン種別にもとづいて、後述するステップS105において、変動パターン種別に含まれる変動パターンのうち、滑り演出も擬似連も伴わない変動パターン、滑り演出を伴う変動パターン、または擬似連を伴う変動パターンの中から、実行する変動パターンを決定する。
次いで、CPU56は、ステップS102の変動パターン種別の決定結果にもとづいて、変動パターンを複数種類のうちのいずれかに決定するために使用するテーブルとして、あらかじめ用意されているいずれかの当り変動パターン判定テーブル、または、あらかじめ用意されているいずれかのはずれ変動パターン判定テーブルを選択する(ステップS103)。また、ランダム5を生成するためのカウンタのカウント値を抽出することによってランダム5の値を抽出する(ステップS104)。そして、抽出したランダム5の値にもとづいて、ステップS103の処理で選択した変動パターン判定テーブルを参照することによって、変動パターンを複数種類のうちのいずれかに決定する(ステップS105)。
次いで、決定した変動パターンに対応する演出制御コマンド(変動パターンコマンド)を、演出制御用マイクロコンピュータ100に送信する制御を行う(ステップS106)。
また、特別図柄の変動を開始する(ステップS107)。例えば、ステップS35の特別図柄表示制御処理で参照される特別図柄に対応した開始フラグをセットする。また、RAM55に形成されている変動時間タイマに、選択された変動パターンに対応した変動時間に応じた値を設定する(ステップS108)。そして、特別図柄プロセスフラグの値を表示結果特定コマンド送信処理(ステップS302)に対応した値に更新する(ステップS109)。
図56は、表示結果特定コマンド送信処理(ステップS302)を示すフローチャートである。表示結果特定コマンド送信処理において、CPU56は、決定されている大当りの種類、はずれに応じて、表示結果1指定〜表示結果4指定のいずれかの演出制御コマンド(図39参照)を送信する制御を行う。具体的には、CPU56は、まず、大当りフラグがセットされているか否か確認する(ステップS110)。セットされていない場合には、ステップS118に移行する。大当りフラグがセットされている場合、大当りの種別が確変大当りであるときには、表示結果3指定コマンドを送信する制御を行う(ステップS111,S112)。大当りの種別が突然確変大当りであるときには、表示結果4指定コマンドを送信する制御を行う(ステップS113,S114)。確変大当りでも突然確変大当りでもないときには、表示結果2指定コマンドを送信する制御を行う(ステップS115)。
大当りフラグがセットされていない場合には(ステップS110のN)、CPU56は、表示結果1指定コマンドを送信する制御を行う(ステップS118)。
そして、合算保留記憶数を1減算することを指定する合算保留記憶数減算指定コマンドを送信する(ステップS119)。なお、合算保留記憶数減算指定コマンドを送信せずに、減算後の合算保留記憶数を指定する合算保留記憶数指定コマンドを送信してもよい。また、CPU56は、送信した表示結果特定コマンドをRAM55における演出図柄種類格納領域に保存しておく。
その後、CPU56は、特別図柄プロセスフラグの値を特別図柄変動中処理(ステップS303)に対応した値に更新する(ステップS120)。
図57は、特別図柄プロセス処理における特別図柄変動中処理(ステップS303)を示すフローチャートである。特別図柄変動中処理において、CPU56は、変動時間タイマを1減算し(ステップS125)、変動時間タイマがタイムアウトしたら(ステップS126)、特別図柄プロセスフラグの値を特別図柄停止処理(ステップS304)に対応した値に更新する(ステップS127)。変動時間タイマがタイムアウトしていない場合には、そのまま処理を終了する。
図58は、特別図柄プロセス処理における特別図柄停止処理(ステップS304)を示すフローチャートである。特別図柄停止処理において、CPU56は、ステップS34の特別図柄表示制御処理で参照される終了フラグをセットして特別図柄の変動を終了させ、第1特別図柄表示器8aまたは第2特別図柄表示器8bに停止図柄を導出表示する制御を行う(ステップS131)。なお、特別図柄ポインタに「第1」を示すデータが設定されている場合には第1特別図柄表示器8aでの第1特別図柄の変動を終了させ、特別図柄ポインタに「第2」を示すデータが設定されている場合には第2特別図柄表示器8bでの第2特別図柄の変動を終了させる。また、演出制御用マイクロコンピュータ100に図柄確定指定コマンドを送信する制御を行う(ステップS132)。そして、大当りフラグがセットされていない場合には、ステップS139に移行する(ステップS133)。
大当りフラグがセットされている場合には、CPU56は、確変フラグおよび時短フラグをリセットし(ステップS134)、演出制御用マイクロコンピュータ100に大当り開始指定コマンドを送信する制御を行う(ステップS135)。具体的には、大当りの種別が確変大当りである場合には大当り開始2指定コマンドを送信する。大当りの種別が突然確変大当りである場合には突確開始指定コマンドを送信する。そうでない場合には大当り開始1指定コマンドを送信する。なお、大当りの種別が確変大当りまたは突然確変大当りであるか否かは、RAM55に記憶されている大当り種別を示すデータ(大当り種別バッファに記憶されているデータ)にもとづいて判定される。
また、大当り表示時間タイマに大当り表示時間(大当りが発生したことを例えば、演出表示装置9において報知する時間)に相当する値を設定する(ステップS136)。また、大入賞口開放回数カウンタに開放回数(例えば、通常大当りおよび確変大当り(15ラウンド大当り)の場合には15回。突確(2ラウンド大当り)の場合には2回。)をセットする(ステップS137)。そして、特別図柄プロセスフラグの値を大入賞口開放前処理(ステップS305)に対応した値に更新する(ステップS138)。
ステップS139では、CPU56は、時短状態であることを示す時短フラグがセットされているか否か確認する。時短フラグがセットされている場合には、時短状態における特別図柄の変動可能回数を示す時短回数カウンタの値を−1する(ステップS140)。そして、時短回数カウンタの値が0になった場合には、時短フラグをリセットする(ステップS142)。そして、CPU56は、特別図柄プロセスフラグの値を特別図柄通常処理(ステップS300)に対応した値に更新する(ステップS148)。
図59は、特別図柄プロセス処理における大入賞口開放前処理(ステップS305)を示すフローチャートである。大入賞口開放前処理において、CPU56は、大入賞口制御タイマの値を−1する(ステップS401)。そして、大入賞口制御タイマの値が0であるか否かを確認し(ステップS402)、大入賞口制御タイマの値が0になっていなければ、処理を終了する。
大入賞口制御タイマの値が0になっている場合には、CPU56は、大入賞口の開放中(ラウンド中)におけるラウンド数に応じた表示状態を指定する大入賞口開放中指定コマンド(A1XX(H))を演出制御用マイクロコンピュータ100に送信する制御を行う(ステップS403)。なお、CPU56は、ラウンド数を、大当り遊技中のラウンド数をカウントするための開放回数カウンタの値を確認することにより認識する。そして、CPU56は、は、ソレノイド21を駆動して大入賞口(特別可変入賞球装置20)を開放する制御を行うとともに(ステップS404)、開放回数カウンタの値を−1する(ステップS405)。
また、大入賞口制御タイマに、各ラウンドにおいて大入賞口が開放可能な最大時間に応じた値を設定する(ステップS406)。例えば、15ラウンド大当りの場合には最大時間は29秒であり、突然確変大当りの場合には最大時間は0.5秒である。そして、特別図柄プロセスフラグの値をステップ大入賞口開放中処理(ステップS306)に応じた値に更新する(ステップS415)。
図60および図61は、特別図柄プロセス処理における大入賞口開放中処理(ステップS306)を示すフローチャートである。大入賞口開放中処理において、CPU56は、大入賞口制御タイマの値を−1する(ステップS420)。
そして、CPU56は、大入賞口制御タイマの値が0になったか否か確認する(ステップS421)。大入賞口制御タイマの値が0になっていないときは、カウントスイッチ23がオンしたか否か確認し(ステップS432)、カウントスイッチ23がオンしていなければ、処理を終了する。カウントスイッチ23がオンした場合には、大入賞口への遊技球の入賞個数をカウントするための入賞個数カウンタの値を+1する(ステップS433)。そして、CPU56は、入賞個数カウンタの値が所定数(例えば10)になっているか否か確認する(ステップS434)。入賞個数カウンタの値が所定数になっていなければ、処理を終了する。なお、S421とS432の判定順は逆でもよい。
大入賞口制御タイマの値が0になっているとき、または入賞個数カウンタの値が所定数になっているときには、CPU56は、ソレノイド21を駆動して大入賞口を閉鎖する制御を行う(ステップS435)。そして、入賞個数カウンタの値をクリアする(0にする)(ステップS436)。
次いで、CPU56は、開放回数カウンタの値を確認する(ステップS438)。開放回数カウンタの値が0でない場合には、CPU56は、大入賞口の開放後(ラウンドの終了後)におけるラウンド数に応じた表示状態を指定する大入賞口開放後指定コマンド(A2XX(H))を演出制御用マイクロコンピュータ100に送信する制御を行う(ステップS439)。そして、大入賞口制御タイマに、ラウンドが終了してから次のラウンドが開始するまでの時間(インターバル期間)に相当する値を設定し(ステップS440)、特別図柄プロセスフラグの値を大入賞口開放前処理(ステップS305)に応じた値に更新する(ステップS441)。なお、インターバル期間は、例えば5秒である。突然確変大当りのときは15R大当りより短い期間としてもよい。
開放回数カウンタの値が0である場合には、CPU56は、大当り種別を示すデータが確変大当りを示すデータであるときに、大当り終了2指定コマンドを演出制御用マイクロコンピュータ100に送信する制御を行う(ステップS442,S447)。なお、ステップS442で確変大当りであるか否かは、具体的には、ステップS74でRAM55における大当り種別バッファに設定した大当り種別を示すデータが確変大当りを示す値(本例では「02」)であるか否かを確認することにより判定できる。そして、CPU56は、大入賞口制御タイマに大当り終了時間(大当り遊技が終了したことを例えば、演出表示装置9において報知する時間)に相当する値を設定し(ステップS449)、特別図柄プロセスフラグの値を大当り終了処理(ステップS307)に応じた値に更新する(ステップS450)。
CPU56は、大当り種別を示すデータが確変大当りを示すデータでなく、突然確変大当りを示すデータである場合には、突確終了指定コマンドを演出制御用マイクロコンピュータ100に送信する制御を行う(ステップS443,S444)。なお、ステップS443で突然確変大当りであるか否かは、具体的には、ステップS74でRAM55における大当り種別バッファに設定した大当り種別を示すデータが突然確変大当りを示す値(本例では「03」)であるか否かを確認することにより判定できる。大当り種別を示すデータが突然確変大当りを示すデータでもないときには、大当り終了1指定コマンドを演出制御用マイクロコンピュータ100に送信する制御を行う(ステップS445)。そして、ステップS449に移行する。
図62は、特別図柄プロセス処理における大当り終了処理(ステップS307)を示すフローチャートである。大当り終了処理において、CPU56は、大当り終了表示タイマが設定されているか否か確認し(ステップS150)、大当り終了表示タイマが設定されている場合には、ステップS154に移行する。大当り終了表示タイマが設定されていない場合には、大当りフラグをリセットし(ステップS151)、大当り終了指定コマンドを送信する制御を行う(ステップS152)。ここで、確変大当りであった場合には大当り終了2指定コマンドを送信し、突然確変大当りであった場合には突確終了指定コマンドを送信し、いずれでもない場合には大当り終了1指定コマンドを送信する。そして、大当り終了表示タイマに、画像表示装置9において大当り終了表示が行われている時間(大当り終了表示時間)に対応する表示時間に相当する値を設定し(ステップS153)、処理を終了する。
ステップS154では、大当り終了表示タイマの値を1減算する。そして、CPU56は、大当り終了表示タイマの値が0になっているか否か、すなわち大当り終了表示時間が経過したか否か確認する(ステップS155)。経過していなければ処理を終了する。経過していれば、大当りの種別が確変大当りまたは突然確変大当りであったか否か確認する(ステップS158)。
大当りの種別が確変大当りまたは突然確変大当りであった場合には、確変フラグをセットして遊技状態を確変状態に移行させる(ステップS161)。そして、ステップS162に移行する。確変大当りでも突然確変大当りでもない場合には、時短フラグをセットし(ステップS162)、時短回数カウンタに例えば100をセットする(ステップS163)。そして、特別図柄プロセスフラグの値を特別図柄通常処理(ステップS300)に対応した値に更新する(ステップS164)。
なお、この実施の形態では、確変大当り(突然確変大当りを含む)であっても通常大当りであっても、大当り終了後に変動表示を100回終了するまで時短状態を継続し、100回の変動表示を終了すると時短状態を終了する場合を示しているが、確変大当りである場合には、変動表示回数で制限することなく、次回の大当りとなるまで時短状態を継続するようにしてもよい。
次に、演出制御手段の動作を説明する。図63は、演出制御基板80に搭載されている演出制御手段としての演出制御用マイクロコンピュータ100(具体的には、演出制御用CPU101)が実行するメイン処理を示すフローチャートである。演出制御用CPU101は、電源が投入されると、メイン処理の実行を開始する。メイン処理では、まず、RAM領域のクリアや各種初期値の設定、また演出制御の起動間隔(例えば、2ms)を決めるためのタイマの初期設定等を行うための初期化処理を行う(ステップS701)。その後、演出制御用CPU101は、タイマ割込フラグの監視(ステップS702)を行うループ処理に移行する。タイマ割込が発生すると、演出制御用CPU101は、タイマ割込処理においてタイマ割込フラグをセットする。メイン処理において、タイマ割込フラグがセットされていたら、演出制御用CPU101は、そのフラグをクリアし(ステップS703)、ステップS704〜S709の演出制御処理を実行する。
演出制御処理において、演出制御用CPU101は、まず、受信した演出制御コマンドを解析し、受信した演出制御コマンドに応じたフラグをセットする処理等を行う(コマンド解析処理:ステップS704)。次いで、演出制御用CPU101は、演出制御プロセス処理を行う(ステップS705)。演出制御プロセス処理では、制御状態に応じた各プロセスのうち、現在の制御状態(演出制御プロセスフラグ)に対応した処理を選択して演出表示装置9の表示制御を実行する。
次いで、第1飾り図柄表示制御処理を行う(ステップS706)。第1飾り図柄表示制御処理では、第1飾り図柄表示器9aの表示制御を実行する。また、第2飾り図柄表示制御処理を行う(ステップS707)。第2飾り図柄表示制御処理では、第2飾り図柄表示器9bの表示制御を実行する。また、合算保留記憶表示部18cの表示状態の制御を行う保留記憶表示制御処理を実行する(ステップS708)。さらに、演出の態様等を決定するために用いられる乱数を生成するためのカウンタのカウント値を更新する乱数更新処理を実行する(ステップS709)。その後、ステップS702に移行する。なお、遊技制御用マイクロコンピュータ560が実行する特別図柄プロセス処理のように、第1飾り図柄表示制御処理と第2飾り図柄表示制御処理とを共通化して、すなわち一つのプログラムモジュールで実現するようにして、演出制御用マイクロコンピュータ100が実行するプログラム容量を減らすようにしてもよい。
図64および図65は、コマンド解析処理(ステップS704)の具体例を示すフローチャートである。主基板31から受信された演出制御コマンドは受信コマンドバッファに格納されるが、コマンド解析処理では、演出制御用CPU101は、コマンド受信バッファに格納されているコマンドの内容を確認する。
コマンド解析処理において、演出制御用CPU101は、まず、RAMに形成されているコマンド受信バッファに受信コマンドが格納されているか否か確認する(ステップS611)。格納されているか否かは、コマンド受信個数カウンタの値と読出ポインタとを比較することによって判定される。両者が一致している場合が、受信コマンドが格納されていない場合である。コマンド受信バッファに受信コマンドが格納されている場合には、演出制御用CPU101は、コマンド受信バッファから受信コマンドを読み出す(ステップS612)。なお、読み出したら読出ポインタの値を+2しておく(ステップS613)。+2するのは2バイト(1コマンド)ずつ読み出すからである。
コマンド受信バッファとして、例えば、2バイト構成の演出制御コマンドを6個格納可能なリングバッファ形式のコマンド受信バッファが用いられる。従って、コマンド受信バッファは、受信コマンドバッファ1〜12の12バイトの領域で構成される。そして、受信したコマンドをどの領域に格納するのかを示すコマンド受信個数カウンタが用いられる。コマンド受信個数カウンタは、0〜11の値をとる。なお、必ずしもリングバッファ形式でなくてもよい。
なお、遊技制御用マイクロコンピュータ560から送信された演出制御コマンドは、演出制御INT信号にもとづく割込処理で受信されコマンド受信バッファに保存されている。コマンド解析処理では、バッファ領域に保存されている演出制御コマンドがどのコマンド(図32参照)であるのか解析する。
受信した演出制御コマンドが変動パターンコマンドであれば(ステップS614)、演出制御用CPU101は、その変動パターンコマンドを、RAMに形成されている変動パターンコマンド格納領域に格納する(ステップS615)。そして、変動パターンコマンド受信フラグをセットする(ステップS616)。
受信した演出制御コマンドが表示結果特定コマンドであれば(ステップS617)、演出制御用CPU101は、その表示結果特定コマンド(表示結果1指定コマンド〜表示結果4指定コマンドのいずれか)を、RAMに形成されている表示結果特定コマンド格納領域に格納する(ステップS618)。
受信した演出制御コマンドが図柄確定指定コマンドであれば(ステップS621)、演出制御用CPU101は、確定コマンド受信フラグをセットする(ステップS622)。
受信した演出制御コマンドが大当り開始1指定コマンドまたは大当り開始2指定コマンドであれば(ステップS623)、演出制御用CPU101は、大当り開始1指定コマンド受信フラグまたは大当り開始2指定コマンド受信フラグをセットする(ステップS624)。受信した演出制御コマンドが突確開始指定コマンドであれば(ステップS625)、演出制御用CPU101は、突確開始指定コマンド受信フラグをセットする(ステップS626)。
受信した演出制御コマンドが第1図柄変動指定コマンドであれば(ステップS627)、第1図柄変動指定コマンド受信フラグをセットする(ステップS628)。受信した演出制御コマンドが第2図柄変動指定コマンドであれば(ステップS629)、第2図柄変動指定コマンド受信フラグをセットする(ステップS630)。
受信した演出制御コマンドが電源投入指定コマンド(初期化指定コマンド)であれば(ステップS631)、演出制御用CPU101は、初期化処理が実行されたことを示す初期画面を演出表示装置9に表示する制御を行う(ステップS632)。初期画面には、あらかじめ決められている演出図柄の初期表示が含まれる。
また、受信した演出制御コマンドが停電復旧指定コマンドであれば(ステップS633)、あらかじめ決められている停電復旧画面(遊技状態が継続していることを遊技者に報知する情報を表示する画面)を表示する制御を行う(ステップS634。
受信した演出制御コマンドが大当り終了1指定コマンドまたは大当り終了2指定コマンドであれば(ステップS641)、演出制御用CPU101は、大当り終了1指定コマンド受信フラグまたは大当り終了2指定コマンド受信フラグをセットする(ステップS642)。受信した演出制御コマンドが突確終了指定コマンドであれば(ステップS643)、演出制御用CPU101は、突確終了指定コマンド受信フラグをセットする(ステップS644)。
受信した演出制御コマンドが大入賞口開放中指定コマンドであれば(ステップS645)、演出制御用CPU101は、大入賞口開放中フラグをセットする(ステップS646)。また、受信した演出制御コマンドが大入賞口開放後指定コマンドであれば(ステップS647)、演出制御用CPU101は、大入賞口開放後フラグをセットする(ステップS648)。
受信した演出制御コマンドが乱数異常指定コマンドであれば(ステップS649)、演出制御用CPU101は、あらかじめ決められている乱数回路異常報知画面(乱数回路5003の異常が発生していることを報知する情報を表示する画面)を表示する制御を行う(ステップS650)。例えば、演出制御用CPU101は、演出表示装置9に、「乱数回路の異常です」などの文字列を表示させる制御を行う。
受信した演出制御コマンドがその他のコマンドであれば、演出制御用CPU101は、受信した演出制御コマンドに応じたフラグをセットする(ステップS651)。そして、ステップS611に移行する。
図66は、演出制御用マイクロコンピュータ100が用いる乱数を示す説明図である。図66に示すように、この実施の形態では、演出制御用マイクロコンピュータ100は、第1〜第3最終停止図柄決定用の乱数SR1−1〜SR1−3を用いる。なお、演出効果を高めるために、これら以外の乱数(例えば、滑り演出や擬似連を行う際の仮停止図柄決定用の乱数)を用いてもよい。
図63に示された演出制御メイン処理におけるステップS709では、演出制御用マイクロコンピュータ100は、第1〜第3最終停止図柄決定用の乱数SR1−1〜SR1−3を生成するためのカウンタのカウントアップ(1加算)を行う。例えば、各最終停止図柄決定用乱数をカウントするための最終停止図柄決定用カウンタ(具体的には、第1最終停止図柄決定用カウンタ、第2最終停止図柄決定用カウンタ、および第3最終停止図柄決定用カウンタ)の値をカウントアップ(求めた乱数加算値を加算)する処理を行う。
図67は、図63に示されたメイン処理における演出制御プロセス処理(ステップS705)を示すフローチャートである。演出制御プロセス処理では、演出制御用CPU101は、演出制御プロセスフラグの値に応じてステップS800〜S807のうちのいずれかの処理を行う。各処理において、以下のような処理を実行する。
変動パターンコマンド受信待ち処理(ステップS800):遊技制御用マイクロコンピュータ560から変動パターンコマンドを受信しているか否か確認する。具体的には、コマンド解析処理でセットされる変動パターンコマンド受信フラグがセットされているか否か確認する。変動パターンコマンドを受信していれば、演出制御プロセスフラグの値を演出図柄変動開始処理(ステップS801)に対応した値に変更する。
演出図柄変動開始処理(ステップS801):ランダムSR1−1〜SR1−3を用いて演出表示装置9に表示する最終停止図柄を決定するなどの演出態様を決定し、演出図柄および飾り図柄の変動が開始されるように制御する。そして、演出制御プロセスフラグの値を演出図柄変動中処理(ステップS802)に対応した値に更新する。
演出図柄変動中処理(ステップS802):変動パターンを構成する各変動状態(変動速度)の切替タイミング等を制御するとともに、変動時間の終了を監視する。そして、変動時間が終了したら、演出制御プロセスフラグの値を演出図柄変動停止処理(ステップS803)に対応した値に更新する。
演出図柄変動停止処理(ステップS803):全図柄停止を指示する演出制御コマンド(図柄確定指定コマンド)を受信したことにもとづいて、演出図柄(および飾り図柄)の変動を停止し表示結果(停止図柄)を導出表示する制御を行う。そして、演出制御プロセスフラグの値を大当り表示処理(ステップS804)または変動パターンコマンド受信待ち処理(ステップS800)に対応した値に更新する。
大当り表示処理(ステップS804):変動時間の終了後、演出表示装置9に大当りの発生を報知するための画面を表示する制御を行う。そして、演出制御プロセスフラグの値をラウンド中処理(ステップS805)に対応した値に更新する。
ラウンド中処理(ステップS805):ラウンド中の表示制御を行う。また、いわゆる確変昇格演出を実行する遊技機では、確変昇格演出の実行を示す確変昇格演出実行中フラグがセットされている場合には確変昇格演出を実行する。そして、ラウンド終了条件が成立したら、最終ラウンドが終了していなければ、演出制御プロセスフラグの値をラウンド後処理(ステップS806)に対応した値に更新する。最終ラウンドが終了していれば、演出制御プロセスフラグの値を大当り終了処理(ステップS807)に対応した値に更新する。
ラウンド後処理(ステップS806):ラウンド間の表示制御を行う。そして、ラウンド開始条件が成立したら、演出制御プロセスフラグの値をラウンド中処理(ステップS805)に対応した値に更新する。
大当り終了処理(ステップS807):演出表示装置9において、大当り遊技状態が終了したことを遊技者に報知する表示制御を行う。そして、演出制御プロセスフラグの値を変動パターンコマンド受信待ち処理(ステップS800)に対応した値に更新する。
図68は、図63に示されたメイン処理における乱数更新処理(ステップS709)を示すフローチャートである。乱数更新処理では、演出制御用CPU101は、演出制御用マイクロコンピュータ100が搭載する乱数回路107からハードウェア乱数(ランダムR)を読み込む(ステップS900)。次いで、演出制御用CPU101は、読み込んだ乱数値にもとづいて、各演出決定用乱数(具体的には、図66に示すSR1−1〜SR1−3)の更新に用いる乱数加算値を決定する(ステップS901)。この実施の形態では、図69に示すように、読み込んだハードウェア乱数の値に応じて、乱数加算値として1〜7のいずれかの値が決定される。そして、演出制御用CPU101は、決定した乱数加算値を加算することによって、各演出決定用乱数(具体的には、図66に示すSR1−1〜SR1−3)を更新する(ステップS902)。この場合、演出制御用CPU101は、例えば、各最終停止図柄決定用カウンタ(具体的には、第1最終停止図柄決定用カウンタ、第2最終停止図柄決定用カウンタ、および第3最終停止図柄決定用カウンタ)に、算出した乱数加算値を加算する。このように、この実施の形態では、乱数回路107が発生する乱数値にもとづいて決定された加算値を各演出決定用乱数(具体的には、図66に示すSR1−1〜SR1−3)に加算することによって、各演出決定用乱数を更新する。そのため、各演出決定用乱数の値をランダムに更新することができ、決定される演出内容に偏りが生じてしまう事態を防止することができる。
なお、この実施の形態では、各演出決定用乱数(具体的には、図66に示すSR1−1〜SR1−3)に対して共通の乱数加算値を加算する場合を示したが、演出決定用乱数ごとに別々に乱数加算値を算出するようにし、それぞれ別々に算出した乱数加算値を、それぞれの各演出決定用乱数(具体的には、図66に示すSR1−1〜SR1−3)に加算するようにしてもよい。この場合、例えば、演出決定用乱数ごとに別々の乱数加算値決定用のテーブル(図69参照)を備えるようにし、乱数加算値決定用のテーブルごとに乱数加算値に対する乱数値の振り分けが異なるように構成するようにしてもよい。そして、演出決定用乱数ごとの乱数加算値決定用のテーブルを用いて、それぞれ乱数加算値を算出するようにしてもよい。
なお、各演出決定用乱数(具体的には、図66に示すSR1−1〜SR1−3)に加算する加算値は、様々な方法を用いて決定することができる。例えば、乱数回路107が16ビットの乱数値を発生するハードウェア乱数回路である場合であって、3ビットの加算値をランダムに決定したい場合には、乱数回路107が発生する16ビットの乱数値の上位13ビットをマスク処理することによって、3ビットの加算値を求めるようにしてもよい。また、例えば、加算値を1(001)〜7(111)の範囲で決定する場合において、乱数回路107が発生する16ビットの乱数値がこの範囲に入っていない場合には、1(001)〜7(111)の範囲になるまで、乱数回路107が発生した乱数値に加算値最大値7(111)の値を繰り返し加算(または減算)していくようにしてもよい。そして、最終的に1(001)〜7(111)の範囲となった値を加算値として求めて、各演出決定用乱数(具体的には、図66に示すSR1−1〜SR1−3)に加算するようにしてもよい。
また、この実施の形態では、演出制御用マイクロコンピュータ100側で、ハードウェア乱数にもとづいて乱数加算値を求め、演出態様を決定するための乱数(本例では、図66に示すSR1−1〜SR1−3)を更新する場合を示したが、遊技制御用マイクロコンピュータ560側で、同様の処理を実行するようにしてもよい。この場合、例えば、遊技制御用マイクロコンピュータ560は、乱数回路5003から読み出したハードウェア乱数にもとづいて、ステップS901と同様の処理に従って乱数加算値を求める。そして、遊技制御用マイクロコンピュータ560は、ステップS902と同様の処理に従って乱数加算値を加算することによって、演出態様を決定するための乱数として、変動パターン種別判定用乱数(図46に示すランダム4)や変動パターン判定用乱数(図46に示すランダム5)を更新してもよい。例えば、遊技制御用マイクロコンピュータ560は、ステップS17,S26の表示用乱数更新処理において、ステップS901と同様の処理を実行することによって乱数加算値を求めるとともに、ステップS902と同様の処理を実行することによって、変動パターン種別判定用乱数(図46に示すランダム4)や変動パターン判定用乱数(図46に示すランダム5)に乱数加算値を加算する。
また、上記のように、遊技制御用マイクロコンピュータ560側で変動パターン種別判定用乱数(図46に示すランダム4)や変動パターン判定用乱数(図46に示すランダム5)を更新するように構成する場合、変動パターン種別判定用乱数と変動パターン判定用乱数とで別々に異なる乱数加算値を算出するようにし、それぞれ別々に算出した乱数加算値を、それぞれ変動パターン種別判定用乱数と変動パターン判定用乱数とに加算するようにしてもよい。この場合、例えば、変動パターン種別判定用乱数と変動パターン判定用乱数とで別々の乱数加算値決定用のテーブル(図69参照)を備えるようにし、乱数加算値決定用のテーブルごとに乱数加算値に対する乱数値の振り分けが異なるように構成するようにしてもよい。そして、変動パターン種別判定用乱数と変動パターン判定用乱数とで別々の乱数加算値決定用のテーブルを用いて、それぞれ乱数加算値を算出するようにしてもよい。
以上に説明したように、この実施の形態によれば、大当り遊技状態に移行するか否かを判定するために用いる大当り判定用乱数(MR1)を生成するためのカウンタ(乱数回路5003が備えるカウンタ521。ソフトウェアカウンタである大当り判定算出用カウンタ。)の値を更新する。また、遊技制御用マイクロコンピュータ560は、更新したカウンタの値を用いて生成された大当り判定用乱数(MR1)にもとづいて、大当り遊技状態に移行させるか否かを判定する。また、遊技機は、遊技制御を開始させるための指示操作に応じて遊技開始指示信号を出力する遊技開始スイッチ90を備える。そして、初期化処理によってRAM55の記憶内容が初期化された後に、遊技開始スイッチ90から遊技開始指示信号が出力されたことを条件に、カウンタの値の更新を開始する。そのため、遊技開始スイッチ90の操作タイミングに応じて、大当り判定用乱数(MR1)を生成するためのカウンタの値の更新開始タイミングを異ならせることができ、大当り遊技状態に移行すると判定するタイミングを予測しにくくすることができる。従って、外部接続基板などを用いて強制的にバックアップRAMを初期化させることにより、初期化させてから大当り遊技状態に移行させると判定されるタイミングで、外部接続基板(ぶら下げ基板)から信号を入力することによって大当りが狙われてしまうことを防止することができる。
また、この実施の形態によれば、遊技制御基板(主基板)31が、非可逆的に固着された(ワンウェアイねじ280で固定された)収納ケース200に収納されている。また、クリアスイッチ921が電源基板910に搭載され、遊技開始スイッチ90が遊技制御基板(主基板)31に搭載されている。そのため、非可逆的に固着された収納ケース200を開封しなければ、遊技開始スイッチ90に細工を施せないようにすることができ、遊技開始スイッチ90に対する不正行為を防止することができる。
なお、遊技開始スイッチ90を設けずに、クリアスイッチ921を遊技制御基板(主基板)31に搭載するようにし、遊技制御基板31に搭載されたクリアスイッチ921を遊技開始スイッチと兼用で用いるようにしてもよい。
図70は、クリアスイッチと遊技開始スイッチとを兼用する場合の主基板(遊技制御基板)31における回路構成の例を示すブロック図である。図70に示すように、主基板31において、遊技開始スイッチ90に代えて、クリアスイッチ921を搭載するようにしてもよい。
図71は、クリアスイッチと遊技開始スイッチとを兼用する場合のメイン処理を示すフローチャートである。図71において、ステップS1〜S13,S14〜S19の処理は、図37および図38に示したそれらの処理と同様である。
初期化指定コマンドを送信すると(ステップS13参照)、CPU56は、クリアスイッチ921がオン状態であるか否かを確認する(ステップS44A)。オフ状態でれば(ステップS44AのN)、CPU56は、所定時間(例えば、0.1秒)の遅延時間の後に(ステップS45A)、再度、クリアスイッチ921がオン状態であるか否かを確認する(ステップS46A)。オン状態であれば(ステップS46AのY)、ステップS44Aに戻り、ステップS44A〜S46Aの処理を繰り返し実行する。
以上のように、ステップS44A〜S46Aの処理が実行されることによって、ステップS10〜S13の初期化処理を実行した後に、一旦、クリアスイッチ921が所定時間(例えば、0.1秒)以上オフ状態であることを確認してから、次のステップS47A以降の処理に移行する。
なお、ステップS45Aにおいて、所定のカウンタの値を加算または減算する処理を行い、ステップS46Aでそのカウンタの値が所定値となったことを条件として、ステップS47A以降の処理に移行するようにしてもよい。
ステップS46Aでクリアスイッチ921がオフ状態であれば(ステップS46AのN)、CPU56は、その後、クリアスイッチ921のオン状態を検出すると(ステップS47AのY)、所定時間(例えば、0.1秒)の遅延時間の後に(ステップS48A)、再度、クリアスイッチ921がオン状態であるか否かを確認する(ステップS49A)。オフ状態であれば(ステップS49AのN)、ステップS47Aに戻り、ステップS47A〜S49Aの処理を繰り返し実行する。クリアスイッチ921のオン状態であれば(ステップS49AのY)、次のステップS14の処理に移行する。
以上のように、ステップS47A〜S49Aの処理が実行されることによって、ステップS10〜S13の初期化処理を実行した後に、遊技開始スイッチとして兼用するクリアスイッチ921がオンとなったことを条件として、ステップS14以降の処理に移行する。具体的には、クリアスイッチ921がオンとなったことを条件として、ステップS14の乱数回路設定処理で乱数回路5003が起動されハードウェア乱数の更新が開始される。また、タイマ割込処理のステップS24の判定用乱数更新処理が開始され、ソフトウェア乱数の更新が開始される。
なお、ステップS48Aにおいて、所定のカウンタの値を加算または減算する処理を行い、ステップS49Aでそのカウンタの値が所定値となったことを条件として、ステップS14以降の処理に移行するようにしてもよい。
以上のように、図70および図71に示す変形例では、以下に示す遊技機の特徴的構成が示されている。
遊技機は、遊技の進行を制御するマイクロコンピュータ(例えば、遊技制御用マイクロコンピュータ560)を搭載した遊技制御基板(例えば、遊技制御基板31)を備え、遊技制御基板は、非可逆的に固着された(例えば、ワンウェアイねじ280で固定された)収納ケース(例えば、収納ケース200)に収納され、初期化操作手段は、遊技制御基板に搭載され(例えば、図70に示すように、クリアスイッチ921は、遊技制御基板31に搭載され)、カウンタ更新手段は、初期化処理手段によってデータ記憶手段の記憶内容が初期化された後に、初期化操作手段から遊技開始指示信号が出力されたことを条件に、カウンタの値の更新を開始する(例えば、遊技制御用マイクロコンピュータ560は、ステップS44A〜S49Aを実行し、ステップS49AでYと判定した後に、ステップS14の乱数回路設定処理で乱数回路5003を起動してハードウェア乱数の更新を開始し、タイマ割込処理のステップS24の判定用乱数更新処理を開始してソフトウェア乱数の更新を開始する)ように構成されていてもよい。そのように構成すれば、初期化操作手段と遊技開始操作手段とを兼用することによって、初期化操作手段とは別に遊技開始操作手段を設けることを不要とすることができ、不正に大当り遊技状態に移行させる行為を防止するように構成するためのコストを低減することができる。
なお、図70および図71に示す変形例では、クリアスイッチと遊技開始スイッチとを兼用するスイッチ(図70ではクリアスイッチ921)を主基板(遊技制御基板)31に設ける場合を示したが、電源基板910に設けるようにしてもよい。そして、図71に示すメイン処理のステップS44A,S46A,S47A,S49Aにおいて、CPU56は、電源基板910に設けられたクリアスイッチ921(クリアスイッチと遊技開始スイッチとを兼用するスイッチ)からのオン信号を入力したか否かを判定するようにしてもよい。
また、この実施の形態によれば、RAM領域のうちのソフトウェア乱数カウンタ格納エリア(図30参照)に各ソフトウェア乱数をカウントするためのカウンタ(例えば、大当り判定算出用カウンタ)を記憶する。そして、遊技制御用マイクロコンピュータ560は、クリアスイッチ921からクリア信号が出力されていることにもとづいて、RAM領域の記憶内容のうち、ワークエリア(作業領域)のうち、ソフトウェア乱数カウンタ格納エリア以外のその他のエリアに記憶されている記憶内容を初期化する。この場合、遊技制御用マイクロコンピュータ560は、ソフトウェア乱数カウンタ格納エリアに記憶されている記憶内容を初期化しないように制御する。そのため、初期化処理においてRAM領域の記憶内容の初期化が行われても、ソフトウェア乱数用のカウンタの値は初期化されないようにすることによって、大当り遊技状態に移行すると判定するタイミングを予測しにくくすることができる。従って、初期化させてから大当り遊技状態に移行させると判定されるタイミングで、外部接続基板(ぶら下げ基板)から信号を入力することによって大当りが狙われてしまうことを防止する効果をより向上させることができる。
また、この実施の形態によれば、遊技制御用マイクロコンピュータ560は、始動条件が成立したときに大当り判定用乱数MR1を生成する。そして、生成した大当り判定用乱数MR1と所定の判定値とを比較することによって大当り遊技状態に移行させるか否かを判定する。この場合、遊技制御用マイクロコンピュータ560は、判定用数値生成条件が成立したときに、乱数回路5003のカウンタ521が出力したランダムRと、大当り判定算出用カウンタが更新する大当り判定算出用乱数(ランダム2−1)とを加算する。次いで、加算値を、所定の数値範囲内の数値の個数(65536(0〜65535の数値の総数に相当、換言すれば、65535+1に相当))で除算し、当該除算の結果である余りを大当り判定用乱数MR1とする。そのため、ランダムRを出力するカウンタ521に不正が行われた場合であっても、少なくとも大当り判定算出用カウンタが更新する大当り判定算出用乱数(ランダム2−1)の更新に従って大当り判定用乱数MR1も更新されるようにすることができる。従って、初期化させてから大当り遊技状態に移行させると判定されるタイミングで、外部接続基板(ぶら下げ基板)から信号を入力することによって大当りが狙われてしまうことを防止する効果をより向上させることができる。
また、この実施の形態によれば、複数の始動条件のそれぞれに対応した複数の乱数値記憶回路(ラッチ回路)531と、始動条件が成立したことにもとづいて、対応する乱数値記憶回路(ラッチ回路)531に対してラッチ信号を出力するラッチ信号出力手段としての複数の始動口スイッチ13a,14aとを備える。また、乱数値記憶回路(ラッチ回路)531を介してカウンタ521から入力したカウント値を用いて生成された大当り判定用乱数MR1にもとづいて、大当り遊技状態に移行させるか否かを判定する。そのため、遊技機が複数の始動入賞口13,14を備える場合であっても、1つのカウンタ521のみを用いて正確なカウント値を取得することができる。従って、遊技機が複数の始動入賞口13,14を備える場合であっても、コストを増大させることなく、所定の遊技制御を実行することができる。また、始動入賞口13と始動入賞口14とに微少な時間差で遊技球が入賞した場合であっても、別々のラッチ回路にカウント値がラッチされるので、乱数値を確実に抽出することができる。
また、この実施の形態によれば、遊技制御用マイクロコンピュータ560は、カウンタ521が出力した数値を保存数値として前回乱数回路読出値格納領域に保存する。また、判定用数値生成条件が成立したときに、カウンタ521が出力した数値と、前回乱数回路読出値格納領域に保存されている保存数値とを比較して一致するか否かを判定する。そして、所定回連続して一致したと判定したときに異常報知を行う。この場合、遊技制御用マイクロコンピュータ560は、判定用数値生成条件が成立したときに、カウンタ521が前回出力したカウント値を保存数値として保存する。そのため、カウンタ521に対して不正が行われた場合に異常が発生したと判定することができ、初期化させてから大当り遊技状態に移行させると判定されるタイミングで、外部接続基板(ぶら下げ基板)から信号を入力することによって大当りが狙われてしまうことを防止する効果をより向上させることができる。
また、この実施の形態によれば、クロック回路5001が出力するパルス信号の周波数と遊技制御用マイクロコンピュータ560の動作周波数とを異ならせるように構成されている。そのため、遊技制御用マイクロコンピュータ560の外部からカウント値の更新周期を認識されてしまうことを防止することができ、初期化させてから大当り遊技状態に移行させると判定されるタイミングで、外部接続基板(ぶら下げ基板)から信号を入力することによって大当りが狙われてしまうことを防止する効果をより向上させることができる。
また、この実施の形態によれば、演出制御用マイクロコンピュータ100は、各演出決定用乱数(具体的には、図66に示すSR1−1〜SR1−3)を記憶するための各最終停止図柄決定用カウンタ(具体的には、第1最終停止図柄決定用カウンタ、第2最終停止図柄決定用カウンタ、および第3最終停止図柄決定用カウンタ)を備える。また、演出制御用マイクロコンピュータ100は、乱数回路107から乱数の値を読み出し、読み出した乱数の値にもとづいて乱数加算値を決定する。また、決定した乱数加算値を各最終停止図柄決定用カウンタに記憶されている演出決定用乱数に加算する。そして、所定の演出態様決定条件が成立したときに、各最終停止図柄決定用カウンタに記憶されている演出決定用乱数を読み出し、読み出した演出決定用乱数を所定の判定値と比較することによって、遊技機における演出態様(例えば、最終停止図柄)を決定する。そのため、演出決定用乱数をランダムに更新することができ、決定される演出態様に偏りが生じてしまう事態を防止することができる。
また、この実施の形態によれば、遊技制御用マイクロコンピュータ560は、ラッチ信号を乱数回路5003に出力することにより、各乱数値記憶回路(ラッチ回路)531からカウント値を抽出する。また、抽出したカウント値にもとづいて、カウンタ521によるカウント値の更新が正常に行われているか否かを判定することにより、乱数回路5003に異常が発生しているか否かを判定する。そのため、乱数回路5003に対して不正が行われたことを容易に発見することができる。例えば、乱数回路5003において一部のビット端子をショートさせたり、乱数回路5003を不正に交換したりする不正行為も容易に発見することができる。例えば、乱数値記憶回路(ラッチ回路)531からカウント値を読み出す周期と、乱数回路5003のカウント値の更新の周期とを考慮すれば、乱数値記憶回路531から前回読み出したカウント値にもとづいて、乱数値記憶回路531から今回読み出されるカウント値の更新値の予測値を求めることは可能である。この場合に、乱数値記憶回路(ラッチ回路)531から前回読み出したカウント値から予測した更新値の予測値と、実際に乱数値記憶回路(ラッチ回路)531から読み出した更新値とを比較して、乱数回路5003に異常が発生しているか否かを判定することも可能なのであるが、このような方法を用いる場合と比較して、より正確に乱数回路5003に異常が発生しているか否かを判定することができる。
また、この実施の形態によれば、遊技制御用マイクロコンピュータ560は、変動パターン種別判定用乱数を用いて演出図柄の変動パターン種別を複数種類のいずれかに決定する。また、遊技制御用マイクロコンピュータ560は、決定した変動パターン種別に含まれる変動パターンの中から、変動パターン判定用乱数を用いて演出図柄の変動パターンを決定する。そのため、共通の変動パターン種別判定用乱数を用いて変動パターンの種別を決定することができ、変動パターン決定の設計変更を容易化できるとともに、変動パターンを決定するためのデータ容量(変動パターンを決定するための作業領域のデータ容量)を低減することができる。
また、この実施の形態によれば、遊技制御用マイクロコンピュータ560は、第1特別図柄表示器8aにおける第1特別図柄の可変表示と、第2特別図柄表示器8bにおける第2特別図柄の可変表示とを、共通の処理ルーチンを用いて実行する。そのため、2つの特別図柄の可変表示を実行するためのデータ容量(2つの特別図柄の可変表示を実行するための作業領域のデータ容量)を低減することができる。
なお、この実施の形態では、可変表示部として2つの特別図柄表示器(第1特別図柄表示器8aおよび第2特別図柄表示器8b)を備えた遊技機を例にしたが、1つの特別図柄表示器が設けられた遊技機にも本発明を適用することができる。
また、この実施の形態では、演出装置を制御する回路が搭載された基板として、演出制御基板80、音声出力基板70およびランプドライバ基板35が設けられているが、演出装置を制御する回路を1つの基板に搭載してもよい。さらに、演出表示装置9等を制御する回路が搭載された第1の演出制御基板(表示制御基板)と、その他の演出装置(ランプ、LED、スピーカ27など)を制御する回路が搭載された第2の演出制御基板との2つの基板を設けるようにしてもよい。
また、この実施の形態では、遊技制御用マイクロコンピュータ560は、演出制御用マイクロコンピュータ100に対して直接コマンドを送信していたが、遊技制御用マイクロコンピュータ560が他の基板(例えば、図4に示す音声出力基板70やランプドライバ基板35など、または音声出力基板70に搭載されている回路による機能とランプドライバ基板35に搭載されている回路による機能とを備えた音/ランプ基板)に演出制御コマンドを送信し、他の基板を経由して演出制御基板80における演出制御用マイクロコンピュータ100に送信されるようにしてもよい。その場合、他の基板においてコマンドが単に通過するようにしてもよいし、音声出力基板70、ランプドライバ基板35、音/ランプ基板にマイクロコンピュータ等の制御手段を搭載し、制御手段がコマンドを受信したことに応じて音声制御やランプ制御に関わる制御を実行し、さらに、受信したコマンドを、そのまま、または例えば、簡略化したコマンドに変更して、演出表示装置9を制御する演出制御用マイクロコンピュータ100に送信するようにしてもよい。その場合でも、演出制御用マイクロコンピュータ100は、上記の実施の形態における遊技制御用マイクロコンピュータ560から直接受信した演出制御コマンドに応じて表示制御を行うのと同様に、音声出力基板70、ランプドライバ基板35または音/ランプ基板から受信したコマンドに応じて表示制御を行うことができる。
次に、上記に示した各実施の形態における遊技機の他の一例であるスロット機(スロットマシン)の全体の構成について説明する。図72はスロット機を正面からみた正面図である。
図72に示すように、スロット機600は、中央付近に遊技パネル601が着脱可能に取り付けられている。また、遊技パネル601の前面の中央付近には、複数種類の図柄が可変表示される可変表示装置602が設けられている。この実施の形態では、可変表示装置602には、「左」、「中」、「右」の3つの図柄表示エリアがあり、各図柄表示エリアに対応してそれぞれ図柄表示リール602a,602b,602cが設けられている。
遊技パネル601の下部には、遊技者が各種の操作を行うための各種入力スイッチ等が配される操作テーブル620が設けられている。操作テーブル620の奥側には、コインを1枚ずつBETする(かける)ためのBETスイッチ621、1ゲームでかけることのできる最高枚数(本例では3枚)ずつコインをBETするためのMAXBETスイッチ622、精算スイッチ623、およびコイン投入口624が設けられている。コイン投入口624に投入されたコインは、図示しない投入コインセンサによって検知される。
操作テーブル620の手前側には、スタートスイッチ625、左リールストップスイッチ626a、中リールストップスイッチ626b、右リールストップスイッチ626cおよびコイン詰まり解消スイッチ627が設けられている。操作テーブル620の手前左右には、それぞれランプ628a,628bが設けられている。操作テーブル620の下部には、効果音等を出力するスピーカ630が設けられている。
遊技パネル601の上部には、遊技者に遊技方法や遊技状態等を報知する画像表示装置(LCD:液晶表示装置)640が設けられている。例えば、入賞発生時に、キャラクタが所定動作を行う画像を画像表示装置640に表示することで、後述する当選フラグが設定されていることを遊技者に報知する。また、画像表示装置640の左右には、効果音を発する2つのスピーカ641L,641Rが設けられている。
なお、スロット機600で発生する入賞役には、小役入賞と、リプレイ入賞と、ビッグボーナス入賞と、レギュラーボーナス入賞とがある。スロット機600では、スタートスイッチ625を操作したタイミングで乱数が抽出され、上記いずれかの入賞役による入賞の発生を許容するか否かを決定する。入賞の発生が許容されていることを、「内部当選している」という。内部当選した場合、その旨を示す当選フラグがスロット機600の内部で設定される。当選フラグが設定された状態でのゲームでは、その当選フラグに対応する入賞役を引き込むことが可能なようにリール602a〜602cが制御される。一方、当選フラグが設定されていない状態でのゲームでは、入賞が発生しないようにリール602a〜602cが制御される。なお、スロット機600は、例えば、スタートスイッチ625に代えて、スタートレバーを備えるようにしてもよい。そして、スタートレバーを操作したタイミングで乱数が抽出され、上記いずれかの入賞役による入賞の発生を許容するか否かを決定するようにしてもよい。
なお、スロット機600の遊技制御基板(主基板)には、遊技開始スイッチが搭載されており、図37および図38と同様の処理に従って、ステップS10〜S13と同様の初期化処理を実行した後に、遊技開始スイッチ90がオンとなったことを条件として、ステップS14以降の処理と同様の処理に移行する。具体的には、遊技開始スイッチがオンとなったことを条件として、ステップS14の乱数回路設定処理と同様の処理で乱数回路が起動されハードウェア乱数の更新が開始される。また、タイマ割込処理のステップS24の判定用乱数更新処理と同様の処理が開始され、ソフトウェア乱数の更新が開始される。
次に、スロット機により提供されるゲームの概要について説明する。
例えば、コイン投入口624からコインが投入されBETスイッチ621又はMAXBETスイッチ622が押下される等してかけ数が設定されると、スタートスイッチ625の操作が有効となる。そして、遊技者によってスタートスイッチ625が操作されると、可変表示装置602に設けられている各図柄表示リール602a〜602cが回転を始める。また、スタートスイッチ625を操作したタイミングで、レギュラーボーナス入賞又はビッグボーナス入賞が内部当選した場合には、例えば、画像表示装置640に所定のキャラクタが所定の動作を行っている画面を表示する等して、内部当選した旨が遊技者等に報知される。
各図柄表示リール602a〜602cが回転を始めてから所定時間が経過すると、各リールストップスイッチ626a〜626cの操作が有効となる。この状態で、遊技者が各リールストップスイッチ626a〜626cのいずれかを押下すれば、操作されたストップスイッチに対応するリールの回転が停止する。また、各図柄表示リール602a〜602cを停止させずに、所定期間以上放置した場合には、各図柄表示リール602a〜602cが自動的に停止する。なお、各図柄表示リール602a〜602cを停止させずに、所定期間以上放置した場合であっても、各図柄表示リール602a〜602cを自動的に停止させないようにしてもよい。
すべての図柄表示リール602a〜602cが停止した時点で、可変表示装置602に表示されている各図柄表示リール602a〜602cの上段、中段、下段の3段の図柄中、かけ数に応じて定められる有効な入賞ライン上に位置する図柄の組合せによって入賞したか否かが定められる。かけ数が1の場合には、可変表示装置602における中段の横1列の入賞ラインのみが有効となる。かけ数が2の場合には、可変表示装置602における上段、中段、下段の横3列の入賞ラインが有効となる。かけ数が3の場合には、可変表示装置602における横3列と斜め対角線上2列の合計5本の入賞ラインが有効ラインとなる。
有効ライン上の図柄の組合せが、予め定められた特定の表示態様となって入賞が発生した場合には、音、光、画像表示装置640の表示等によって所定の遊技演出がなされ、入賞の発生に応じたゲームが開始される。
スロット機600では、スロット機600に搭載されている演出制御手段が、スロット機600に設けられている画像表示装置640の表示制御を行う。画像表示装置640には、演出制御手段の制御によって、演出図柄の変動表示や、遊技状態や遊技方法を報知するための表示等の様々な情報が表示される。そのような、演出図柄の変動表示や、遊技状態や遊技方法を報知するための表示等の様々な情報の表示をムービー画像により行い、そのムービー画像の表示制御を画像処理装置640によって行うようにすればよい。
また、上記に示した実施の形態では、以下の(1)〜(9)に示すような遊技機の特徴的構成も示されている。
(1)遊技者が所定の遊技を行うことが可能であり、遊技の結果が所定の態様となったこと(例えば、大当り図柄が表示されたこと)にもとづいて遊技者にとって有利となる特定遊技状態(例えば、大当り遊技状態)に移行可能な遊技機であって、バックアップ電源により遊技機に対する電力供給が停止してもデータが保持されるデータ記憶手段(例えば、RAM55)と、該データ記憶手段の記憶内容を初期化するための指示操作に応じて初期化指示信号(例えば、クリアスイッチ921の検出信号)を出力する初期化操作手段(例えば、クリアスイッチ921)と、初期化操作手段から初期化指示信号が出力されたことにもとづいて、データ記憶手段の記録内容を初期化する初期化処理手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS10〜S13を実行する部分)と、特定遊技状態に移行するか否かを判定するために用いる判定用乱数(例えば、大当り判定用乱数MR1)を生成するためのカウンタ(例えば、乱数回路5003のカウンタ521。大当り判定算出用乱数(ランダム2−1)をカウントアップするための大当り判定算出用カウンタ。)の値を更新するカウンタ更新手段(例えば、乱数回路5003のクロック信号出力回路524が乱数発生用クロック信号SI1を出力したことにもとづいて、乱数回路5003のカウンタ521がカウント値を更新する部分。遊技制御用マイクロコンピュータ560におけるステップS24を実行して大当り判定算出用カウンタのカウント値を更新する処理を実行する部分。)と、カウンタ更新手段が更新したカウンタの値を用いて生成された判定用乱数にもとづいて、特定遊技状態に移行させるか否かを判定する遊技状態判定手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS62,S63を実行する部分)と、遊技制御を開始させるための指示操作に応じて遊技開始指示信号(例えば、遊技開始スイッチ90の検出信号)を出力する遊技開始操作手段(例えば、遊技開始スイッチ90)とを備え、カウンタ更新手段は、初期化処理手段によってデータ記憶手段の記憶内容が初期化された後に、遊技開始操作手段から遊技開始指示信号が出力されたことを条件に、カウンタの値の更新を開始する(例えば、遊技制御用マイクロコンピュータ560は、ステップS10〜S13の初期化処理を実行した後に、ステップS49で遊技開始スイッチ90がオンとなったことを条件として、ステップS14以降の処理に移行する。具体的には、遊技開始スイッチ90がオンとなったことを条件として、ステップS14の乱数回路設定処理で乱数回路5003が起動されハードウェア乱数の更新が開始される。また、タイマ割込処理のステップS24の判定用乱数更新処理が開始され、ソフトウェア乱数の更新が開始される。)ことを特徴とする遊技機。
そのような構成によれば、特定遊技状態に移行するか否かを判定するために用いる判定用乱数を生成するためのカウンタの値を更新するカウンタ更新手段と、カウンタ更新手段が更新したカウンタの値を用いて生成された判定用乱数にもとづいて、特定遊技状態に移行させるか否かを判定する遊技状態判定手段と、遊技制御を開始させるための指示操作に応じて遊技開始指示信号を出力する遊技開始操作手段とを備え、カウンタ更新手段が、初期化処理手段によってデータ記憶手段の記憶内容が初期化された後に、遊技開始操作手段から遊技開始指示信号が出力されたことを条件に、カウンタの値の更新を開始するように構成されているので、遊技開始操作手段の操作タイミングに応じて、判定用乱数を生成するためのカウンタの値の更新開始タイミングを異ならせることができ、特定遊技状態に移行すると判定するタイミングを予測しにくくすることができる。従って、外部接続基板などを用いて強制的にバックアップRAMを初期化させることにより、初期化させてから特定遊技状態(大当り遊技状態)に移行させると判定されるタイミングで、外部接続基板(ぶら下げ基板)から信号を入力することによって大当りが狙われてしまうことを防止することができる。
(2)遊技機は、遊技機に電源を供給する電源供給回路(例えば、DC−DCコンバータ913)を搭載した電源供給基板(例えば、電源基板910)と、遊技の進行を制御するマイクロコンピュータ(例えば、遊技制御用マイクロコンピュータ560)を搭載した遊技制御基板(例えば、主基板31)とを備え、遊技制御基板は、非可逆的に固着された(ワンウェイねじ280で固定された)収納ケース(例えば、収納ケース200)に収納され、初期化操作手段は、電源供給基板に搭載され(例えば、図4に示すように、クリアスイッチ921は、電源基板910に搭載されている)、遊技開始操作手段は、遊技制御基板に搭載されている(例えば、図3に示すように、遊技開始スイッチ90は、主基板31に搭載されている)ように構成されていてもよい。
そのような構成によれば、遊技制御基板が、非可逆的に固着された収納ケースに収納され、初期化操作手段が、電源供給基板に搭載され、遊技開始操作手段が、遊技制御基板に搭載されているように構成されているので、非可逆的に固着された収納ケースを開封しなければ、遊技開始操作手段に細工を施せないようにすることができ、遊技開始操作手段に対する不正行為を防止することができる。
(3)カウンタ更新手段は、ソフトウェアによって所定の数値範囲内で数値を更新してソフトウェア乱数を作成する数値作成手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS24を実行して大当り判定算出用カウンタの値をカウントアップする部分)を含み、遊技状態判定手段は、ソフトウェア乱数を用いて生成された判定用乱数(例えば、大当り判定用乱数MR1)にもとづいて、特定遊技状態に移行させるか否かを判定し(例えば、遊技制御用マイクロコンピュータ560は、ステップS2015で生成した大当り判定用乱数MR1を用いて、ステップS62,S63を実行する)、データ記憶手段は、ソフトウェア乱数記憶領域にソフトウェア乱数を記憶し(例えば、RAM55は、図30に示すソフトウェア乱数カウンタ格納エリアに大当り判定算出用乱数(ランダム2−1)をカウントするための大当り判定算出用カウンタを格納する)、初期化処理手段は、初期化操作手段から初期化指示信号が出力されていることにもとづいて、データ記憶手段の記憶内容のうち、ソフトウェア乱数記憶領域以外の記憶領域に記憶されている記憶内容を初期化し、ソフトウェア乱数記憶領域に記憶されている記憶内容を初期化しないように制御する(例えば、遊技制御用マイクロコンピュータ560は、ステップS10において、RAM55の領域のワークエリア(作業領域)のうち、ソフトウェア乱数カウンタ格納エリア以外のその他のエリアの先頭アドレス(7F00h番地。図30参照。)をポインタにセットし、クリアデータ(例えば、「0」)を順次RAM55における作業領域にセットする。そのように処理することによって、7F00h番地〜7FFFh番地の領域(ワークエリアのうちのソフトウェア乱数カウンタ格納エリア以外のその他のエリア)に格納されているデータのみをクリアする処理を行い、7E00h番地〜7EFFh番地の領域(ソフトウェア乱数カウンタ格納エリア)に格納されているデータはクリアしないように処理する。)ように構成されていてもよい。
そのような構成によれば、データ記憶手段が、ソフトウェア乱数記憶領域にソフトウェア乱数を記憶し、初期化処理手段が、初期化操作手段から初期化指示信号が出力されていることにもとづいて、データ記憶手段の記憶内容のうち、ソフトウェア乱数記憶領域以外の記憶領域に記憶されている記憶内容を初期化し、ソフトウェア乱数記憶領域に記憶されている記憶内容を初期化しないように制御するように構成されているので、データ記憶手段の記憶内容の初期化が行われても、ソフトウェア乱数の値は初期化されないようにすることによって、特定遊技状態に移行すると判定するタイミングを予測しにくくすることができる。従って、初期化させてから特定遊技状態(大当り遊技状態)に移行させると判定されるタイミングで、外部接続基板(ぶら下げ基板)から信号を入力することによって大当りが狙われてしまうことを防止する効果をより向上させることができる。
(4)カウンタ更新手段は、所定の数値範囲内(例えば、0〜65535)でカウント値を歩進させ、カウント値を第1数値(例えば、ランダムR)として出力するカウンタ回路(例えば、カウンタ521)と、ソフトウェアによって所定の数値範囲内(例えば、0〜65535)で数値を更新して第2数値(例えば、大当り判定算出用乱数(ランダム2−1)を作成する数値作成手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS24を実行して大当り判定算出用カウンタの値をカウントアップする部分)とを含み、始動条件が成立した(例えば、第1始動入賞口13または第2始動入賞口14に遊技球が入賞したこと)ときに判定用数値(例えば、大当り判定用乱数MR1)を生成する判定用数値生成手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS2015を実行する部分)を備え、遊技状態判定手段は、判定用数値生成手段が生成した判定用数値と所定の判定値とを比較することによって特定遊技状態に移行させるか否かを判定し(例えば、遊技制御用マイクロコンピュータ560は、ステップS2015で生成した大当り判定用乱数MR1を用いて、ステップS62,S63を実行する)、判定用数値生成手段は、判定用数値生成条件が成立した(例えば、第1始動入賞口13または第2始動入賞口14に遊技球が入賞したこと)ときに、カウンタ回路が出力した第1数値と数値作成手段が作成した第2数値とを加算し、加算値を、所定の数値範囲内の数値の個数(例えば、65536)で除算し、当該除算の結果である余りを判定用数値とする(例えば、遊技制御用マイクロコンピュータ560は、ステップS2015において、図52に示すように、ランダムRとランダム2−1とを加算し、さらに、加算値を65536(0〜65535の数値の総数に相当、換言すれば、65535+1に相当)で除算(整数としての除算)し、剰余(余り)を大当り判定用乱数(ランダムMR1:実際に大当り判定値と比較される乱数)とする)ように構成されていてもよい。
そのような構成によれば、データ記憶手段が、ソフトウェア乱数記憶領域にソフトウェア乱数を記憶し、初期化処理手段が、初期化操作手段から初期化指示信号が出力されていることにもとづいて、データ記憶手段の記憶内容のうち、ソフトウェア乱数記憶領域以外の記憶領域に記憶されている記憶内容を初期化し、ソフトウェア乱数記憶領域に記憶されている記憶内容を初期化しないように制御するように構成されているので、データ記憶手段の記憶内容の初期化が行われても、ソフトウェア乱数の値は初期化されないようにすることによって、特定遊技状態に移行すると判定するタイミングを予測しにくくすることができる。従って、初期化させてから特定遊技状態(大当り遊技状態)に移行させると判定されるタイミングで、外部接続基板(ぶら下げ基板)から信号を入力することによって大当りが狙われてしまうことを防止する効果をより向上させることができる。
(5)カウンタ更新手段は、所定の数値範囲内でカウント値を歩進させ、カウント値を出力するカウンタ回路(例えば、カウンタ521)を含み、複数の始動条件(例えば、第1始動入賞口13または第2始動入賞口14に始動入賞すること)のそれぞれに対応した複数のラッチ回路(例えば、第1乱数値記憶回路531a。第2乱数値記憶回路531b。)と、始動条件が成立したことにもとづいて、対応するラッチ回路に対してラッチ信号を出力する複数のラッチ信号出力手段(例えば、第1始動口スイッチ13a。第2始動口スイッチ14a。)とを備え、遊技状態判定手段は、ラッチ回路を介してカウンタ回路から入力したカウント値を用いて生成された判定用乱数にもとづいて、特定遊技状態に移行させるか否かを判定する(例えば、遊技制御用マイクロコンピュータ560は、ステップS2015においてランダムRを用いて求めた大当り判定用乱数MR1を用いて、ステップS62,S63を実行する)ように構成されていてもよい。
そのような構成によれば、複数の始動条件のそれぞれに対応した複数のラッチ回路と、始動条件が成立したことにもとづいて、対応するラッチ回路に対してラッチ信号を出力する複数のラッチ信号出力手段とを備え、遊技状態判定手段が、ラッチ回路を介してカウンタ回路から入力したカウント値を用いて生成された判定用乱数にもとづいて、特定遊技状態に移行させるか否かを判定するように構成されているので、遊技機が複数の始動領域を備える場合であっても、1つのカウンタ回路のみを用いて正確なカウント値を取得することができる。従って、遊技機が複数の始動領域を備える場合であっても、コストを増大させることなく、所定の遊技制御を実行することができる。
(6)カウンタ更新手段は、所定の数値範囲内でカウント値を歩進させ、カウント値を出力するカウンタ回路(例えば、カウンタ521)を含み、カウンタ回路が出力した数値を保存数値として保存する数値保存手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS2007を実行する部分)と、判定用数値生成条件が成立した(例えば、第1始動入賞口13または第2始動入賞口14に遊技球が入賞したこと)ときに、カウンタ回路が出力した数値と、数値保存手段に保存されている保存数値とを比較して一致するか否かを判定する数値比較手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS2009を実行する部分)と、数値比較手段が所定回連続して一致したと判定したときに、異常報知を行う異常報知手段(例えば、遊技制御用マイクロコンピュータ560がステップS2012でYと判定したときにステップS2013で送信された乱数異常指定コマンドにもとづいて、演出制御用マイクロコンピュータ100においてステップS650を実行する部分)とを備え、数値保存手段は、判定用数値生成条件が成立したときに、カウンタ回路が出力した第1数値を保存数値として保存する(例えば、遊技制御用マイクロコンピュータ560は、ステップS2007を実行して、乱数値記憶回路531から前回読み出した値を前回乱数回路読出値格納領域に退避する)ように構成されていてもよい。
そのような構成によれば、カウンタ回路が出力した数値を保存数値として保存する数値保存手段と、判定用数値生成条件が成立したときに、カウンタ回路が出力した数値と、数値保存手段に保存されている保存数値とを比較して一致するか否かを判定する数値比較手段と、数値比較手段が所定回連続して一致したと判定したときに、異常報知を行う異常報知手段とを備え、数値保存手段が、判定用数値生成条件が成立したときに、カウンタ回路が出力した第1数値を保存数値として保存するように構成されているので、カウンタ回路に対して不正が行われた場合に異常が発生したと判定することができ、初期化させてから特定遊技状態(大当り遊技状態)に移行させると判定されるタイミングで、外部接続基板(ぶら下げ基板)から信号を入力することによって大当りが狙われてしまうことを防止する効果をより向上させることができる。
(7)遊技機は、遊技の進行を制御する遊技制御処理を行う遊技制御用マイクロコンピュータ(例えば、遊技制御用マイクロコンピュータ560)を備え、パルス信号供給回路(例えば、クロック回路5001)が出力するパルス信号の周波数と遊技制御用マイクロコンピュータの動作周波数とを異ならせる(例えば、クロック回路5001は、システムクロック信号を27(=128)分周して生成した所定の周期の基準クロック信号CLKを、乱数回路5003に出力する)ように構成されていてもよい。
そのような構成によれば、パルス信号供給回路が出力するパルス信号の周波数と遊技制御用マイクロコンピュータの動作周波数とを異ならせるように構成されているので、遊技制御用マイクロコンピュータの外部からカウント値の更新周期を認識されてしまうことを防止することができ、初期化させてから特定遊技状態(大当り遊技状態)に移行させると判定されるタイミングで、外部接続基板(ぶら下げ基板)から信号を入力することによって大当りが狙われてしまうことを防止する効果をより向上させることができる。
(8)遊技機は、数値(例えば、各演出決定用乱数(具体的には、図66に示すSR1−1〜SR1−3)。または、例えば、変動パターン種別判定用乱数(ランダム4)や変動パターン判定用乱数(ランダム5)。)を記憶するための数値記憶手段(例えば、各最終停止図柄決定用カウンタ(具体的には、第1最終停止図柄決定用カウンタ、第2最終停止図柄決定用カウンタ、および第3最終停止図柄決定用カウンタ)。または、例えば、変動パターン種別判定用カウンタや変動パターン判定用カウンタ。)と、乱数回路から乱数の値を読み出し、読み出した乱数の値にもとづいて加算値を決定し、決定した加算値を数値記憶手段に記憶されている数値に加算する加算手段(例えば、演出制御用マイクロコンピュータ100におけるステップS901,S902を実行する部分。または、例えば、遊技制御用マイクロコンピュータ560において、ステップS17,S26においてステップS901,S902と同様の処理を実行する部分。)と、所定の演出態様決定条件が成立したときに、数値記憶手段に記憶されている数値を読み出し、読み出した数値を所定の判定値と比較することによって、遊技機における演出態様を決定する演出態様決定手段(例えば、演出制御用マイクロコンピュータ100におけるステップS801の演出図柄変動開始処理を実行してランダムSR1−1〜SR1−3を用いて演出表示装置9に表示する最終停止図柄を決定する部分。または、例えば、遊技制御用マイクロコンピュータ560におけるステップS102,S105を実行する部分)とを備えるように構成されていてもよい。
そのような構成によれば、数値を記憶するための数値記憶手段と、乱数回路から乱数の値を読み出し、読み出した乱数の値にもとづいて加算値を決定し、決定した加算値を数値記憶手段に記憶されている数値に加算する加算手段と、所定の演出態様決定条件が成立したときに、数値記憶手段に記憶されている数値を読み出し、読み出した数値を所定の判定値と比較することによって、遊技機における演出態様を決定する演出態様決定手段とを備えるように構成されているので、演出決定用の数値をランダムに更新することができ、決定される演出態様に偏りが生じてしまう事態を防止することができる。
(9)遊技機は、遊技の進行を制御する遊技制御用マイクロコンピュータ(例えば、遊技制御用マイクロコンピュータ560)と、乱数を発生する乱数回路(例えば、乱数回路5003)と、始動条件の成立を検出したこと(例えば、第1始動口スイッチ13aまたは第2始動口スイッチ14aが遊技球を検出したこと)にもとづいて、所定のラッチ信号を乱数回路に出力する始動検出スイッチ(例えば、第1始動口スイッチ13a。第2始動口スイッチ14a。)とを備え、乱数回路は、所定の数値範囲内でカウント値を歩進させ、カウント値を出力するカウンタ更新手段としてのカウンタ回路(例えば、カウンタ521)と、ラッチ信号が入力されたことにもとづいて、カウンタ回路から入力されるカウント値をラッチして遊技制御用マイクロコンピュータに出力するラッチ回路(例えば、第1乱数値記憶回路531a。第2乱数値記憶回路531b。)とを含み、遊技制御用マイクロコンピュータは、電源が投入されたことにもとづいて、所定の初期設定処理を実行する初期設定手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS14を実行する部分)を含み、初期設定手段は、ラッチ信号を乱数回路に出力することにより、ラッチ回路からカウント値を抽出するカウント値抽出手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS1508〜S1511を実行する部分)と、カウント値抽出手段によって抽出されたカウント値にもとづいて、カウンタ回路によるカウント値の更新が正常に行われているか否かを判定することにより、乱数回路に異常が発生しているか否かを判定する異常判定手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS1512〜S1515を実行する部分)とを含むように構成されていてもよい。
そのような構成によれば、初期設定手段が、ラッチ信号を乱数回路に出力することにより、ラッチ回路からカウント値を抽出するカウント値抽出手段と、カウント値抽出手段によって抽出されたカウント値にもとづいて、カウンタ回路によるカウント値の更新が正常に行われているか否かを判定することにより、乱数回路に異常が発生しているか否かを判定する異常判定手段とを含むように構成されているので、乱数回路に対して不正が行われたことを容易に発見することができる。