実施の形態1.
以下、本発明の一実施形態を図面を参照して説明する。
まず、遊技機の一例であるパチンコ遊技機の全体の構成について説明する。図1はパチンコ遊技機を正面からみた正面図、図2は遊技盤の前面を示す正面図である。なお、以下の実施の形態では、パチンコ遊技機を例に説明を行うが、本発明による遊技機はパチンコ遊技機に限られず、スロット機などの他の遊技機に適用することもできる。
パチンコ遊技機1は、縦長の方形状に形成された外枠(図示せず)と、外枠の内側に開閉可能に取り付けられた遊技枠とで構成される。また、パチンコ遊技機1は、遊技枠に開閉可能に設けられている額縁状に形成されたガラス扉枠2を有する。遊技枠は、外枠に対して開閉自在に設置される前面枠(図示せず)と、機構部品等が取り付けられる機構板と、それらに取り付けられる種々の部品(後述する遊技盤を除く。)とを含む構造体である。
図1に示すように、パチンコ遊技機1は、額縁状に形成されたガラス扉枠2を有する。ガラス扉枠2の下部表面には打球供給皿(上皿)3がある。打球供給皿3の下部には、打球供給皿3に収容しきれない遊技球を貯留する余剰球受皿4と遊技球を発射する打球操作ハンドル(操作ノブ)5が設けられている。ガラス扉枠2の背面には、遊技盤6が着脱可能に取り付けられている。なお、遊技盤6は、それを構成する板状体と、その板状体に取り付けられた種々の部品とを含む構造体である。また、遊技盤6の前面には遊技領域7が形成されている。
遊技領域7の中央付近には、それぞれが演出用の飾り図柄を可変表示する複数の可変表示部を含む可変表示装置(飾り図柄表示装置)9が設けられている。可変表示装置9には、例えば「左」、「中」、「右」の3つの可変表示部(図柄表示エリア)がある。可変表示装置9は、特別図柄表示器8による特別図柄の可変表示期間中に、装飾用(演出用)の図柄としての飾り図柄の可変表示を行う。飾り図柄の可変表示を行う可変表示装置9は、表示制御基板に搭載されている表示制御用マイクロコンピュータによって制御される。
可変表示装置9の下部には、始動入賞口14に入った有効入賞球数すなわち保留記憶(始動記憶または始動入賞記憶ともいう。)数を表示する4つの特別図柄保留記憶表示器18が設けられている。特別図柄保留記憶表示器18は、保留記憶数を入賞順に4個まで表示する。特別図柄保留記憶表示器18は、始動入賞口14に始動入賞があるごとに、点灯状態のLEDの数を1増やす。そして、特別図柄保留記憶表示器18は、特別図柄表示器8で可変表示が開始されるごとに、点灯状態のLEDの数を1減らす(すなわち1つのLEDを消灯する)。具体的には、特別図柄保留記憶表示器18は、特別図柄表示器8で可変表示が開始されるごとに、点灯状態をシフトする。なお、この例では、始動入賞口14への入賞による始動記憶数に上限数(4個まで)が設けられているが、上限数を4個以上あるいは3個以下にしてもよい。
可変表示装置9の上部には、識別情報としての特別図柄を可変表示する特別図柄表示器(特別図柄表示装置)8が設けられている。この実施の形態では、特別図柄表示器8は、例えば0〜9の数字を可変表示可能な簡易で小型の表示器(例えば7セグメントLED)で実現されている。特別図柄表示器8は、遊技者に特定の停止図柄を把握しづらくさせるために、0〜99など、より多種類の数字を可変表示するように構成されていてもよい。また、可変表示装置9は、特別図柄表示器8による特別図柄の可変表示期間中に、装飾用(演出用)の図柄としての飾り図柄の可変表示を行う。
さらに、可変表示装置9の左側には、遊技演出に用いられる可動部材としてのハンマ151が設けられている。ハンマ151は、可動部152を支点として右方向に倒れ、可変表示装置9に表示される飾り図柄のうち最も左側の飾り図柄を叩くような演出を行うことができる。
また、パチンコ遊技機1は、遊技の進行中に遊技者が操作可能な操作スイッチ81を備えている。例えば、操作スイッチ81が操作(押下)されると、可動部材としてのハンマ151が動作する。
可変表示装置9の下方には、始動入賞口14を形成する可変入賞球装置15が設けられている。始動入賞口14に入った入賞球は、遊技盤6の背面に導かれ、始動口スイッチ14aによって検出される。可変入賞球装置15は、ソレノイド16によって開状態にされる。
可変入賞球装置15の下部には、特定遊技状態(大当り状態)においてソレノイド21によって開状態に制御される開閉板を用いた特別可変入賞球装置20が設けられている。特別可変入賞球装置20は大入賞口を開閉する手段である。特別可変入賞球装置20に入賞し遊技盤6の背面に導かれた入賞球のうち一方(V入賞領域:特別領域)に入った入賞球はV入賞スイッチ22で検出された後カウントスイッチ23で検出され、他方の領域に入った遊技球は、そのままカウントスイッチ23で検出される。遊技盤6の背面には、大入賞口内の経路を切り換えるためのソレノイド21Aも設けられている。
遊技球がゲート32を通過しゲートスイッチ32aで検出されると、普通図柄表示器10の表示の可変表示が開始される。この実施の形態では、左右のランプ(点灯時に図柄が視認可能になる)が交互に点灯することによって可変表示が行われ、例えば、可変表示の終了時に左側のランプが点灯すれば当たりになる。そして、普通図柄表示器10における停止図柄が所定の図柄(当り図柄)である場合に、可変入賞球装置15が所定回数、所定時間だけ開状態になる。普通図柄表示器10の近傍には、ゲート32を通過した入賞球数を表示する4つのLEDによる表示部を有する普通図柄始動記憶表示器41が設けられている。ゲート32への遊技球の通過があるごとに、普通図柄始動記憶表示器41は点灯するLEDを1増やす。そして、普通図柄表示器10の可変表示が開始されるごとに、点灯するLEDを1減らす。
遊技盤6には、複数の入賞口29,30,33,39が設けられ、遊技球の入賞口29,30,33,39への入賞は、それぞれ入賞口スイッチ29a,30a,33a,39aによって検出される。各入賞口29,30,33,39は、遊技媒体を受け入れて入賞を許容する領域として遊技盤6に設けられる入賞領域を構成している。なお、始動入賞口14や大入賞口も、遊技媒体を受け入れて入賞を許容する入賞領域を構成する。遊技領域7の左右周辺には、遊技中に点滅表示される装飾ランプ25が設けられ、下部には、入賞しなかった遊技球を吸収するアウト口26がある。また、遊技領域7の外側の左右上部には、効果音を発する2つのスピーカ27が設けられている。遊技領域7の外周には、天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cが設けられている。さらに、遊技領域7における各構造物(大入賞口等)の周囲には装飾LEDが設置されている。天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cおよび装飾用LEDは、遊技機に設けられている装飾発光体の一例である。
そして、この例では、左枠ランプ28bの近傍に、賞球払出中に点灯する賞球ランプ51が設けられ、右枠ランプ28cの近傍に、補給球が切れたときに点灯する球切れランプ52が設けられている。さらに、プリペイドカードが挿入されることによって球貸しを可能にするプリペイドカードユニット(以下、「カードユニット」という。)50が、パチンコ遊技機1に隣接して設置されている。
カードユニット50には、例えば、使用可能状態であるか否かを示す使用可表示ランプ、カードユニットがいずれの側のパチンコ遊技機1に対応しているのかを示す連結台方向表示器、カードユニット内にカードが投入されていることを示すカード投入表示ランプ、記録媒体としてのカードが挿入されるカード挿入口、およびカード挿入口の裏面に設けられているカードリーダライタの機構を点検する場合にカードユニットを解放するためのカードユニット錠が設けられている。
遊技者の操作により打球発射装置から発射された遊技球は、打球レールを通って遊技領域7に入り、その後、遊技領域7を下りてくる。遊技球が始動入賞口14に入り始動口スイッチ14aで検出されると、図柄の可変表示を開始できる状態であれば、特別図柄表示器8において特別図柄が可変表示(変動)を始める。図柄の可変表示を開始できる状態でなければ、保留記憶数を1増やす。
特別図柄表示器8における特別図柄の可変表示は、一定時間が経過したときに停止する。停止時の特別図柄(停止図柄)が大当り図柄(特定表示結果)であると、大当り遊技状態に移行する。すなわち、特別可変入賞球装置20が、一定時間経過するまで、または、所定個数(例えば10個)の遊技球が入賞するまで開放する。そして、特別可変入賞球装置20の開放中に遊技球がV入賞領域に入賞しV入賞スイッチ22で検出されると、継続権が発生し特別可変入賞球装置20の開放が再度行われる。継続権の発生は、所定回数(例えば15ラウンド)許容される。なお、この実施の形態では、特別可変入賞球装置20の開放回数(ラウンド数ともいう)は、後述するようにラウンド数決定用乱数を用いて決定される。そして、継続権の発生は、ラウンド数決定用乱数を用いて決定されたラウンド数だけ許容される。また、V入賞領域を設けずに、特別可変入賞球装置20の開放を常に決定されたラウンド数の最後のラウンドまで(例えば、15ラウンドまで)許容するようにしてもよい。
停止時の特別図柄表示器8における特別図柄が確率変動を伴う大当り図柄(確変図柄)である場合には、次に大当りになる確率が高くなる。すなわち、確変状態という遊技者にとってさらに有利な状態になる。
遊技球がゲート32を通過すると、普通図柄表示器10において普通図柄が可変表示される状態になる。また、普通図柄表示器10における停止図柄が所定の図柄(当り図柄)である場合に、可変入賞球装置15が所定時間だけ開状態になる。さらに、高ベース状態では、普通図柄表示器10における停止図柄が当り図柄になる確率が高められるとともに、可変入賞球装置15の開放時間と開放回数が高められる。すなわち、可変入賞球装置15の開放時間と開放回数は高ベース状態に制御されているときに高められることとなり、高ベース状態は遊技者にとって有利な状態の一つとなる。なお、開放回数が高められることは、開放時間が延長されることの他、閉状態から開状態になることも含む概念である。また、開放回数が高められるとは、開放回数が増加されることを含む概念である。ここで、「高ベース状態」とは、単位時間あたりに遊技領域に発射される遊技球の数に対する賞球数の割合が、通常状態(ここでは、高ベース状態でない通常の状態)よりも高い状態を意味する。
次に、パチンコ遊技機1の裏面の構造について図3を参照して説明する。図3は、遊技機を裏面から見た背面図である。
図3に示すように、遊技機裏面側では、可変表示装置9を制御する表示制御用マイクロコンピュータが搭載された表示制御基板80を含む可変表示制御ユニット49、遊技制御用マイクロコンピュータ等が搭載された遊技制御基板(主基板)31が設置されている。また、球払出制御を行う払出制御用マイクロコンピュータ等が搭載された払出制御基板37が設置されている。なお、図3には現れていないが、遊技機裏面側には、音・ランプ演出用マイクロコンピュータが搭載された音・ランプ制御基板35も設置されている。なお、音・ランプ演出用マイクロコンピュータは、各種装飾LED、装飾ランプ25、枠側に設けられている天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cを点灯制御し、スピーカ27からの音発生を制御する。
さらに、DC30V、DC21V、DC12VおよびDC5Vを作成する電源回路が搭載された電源基板910やタッチセンサ基板91が設けられている。電源基板910は、大部分が主基板31と重なっているが、主基板31に重なることなく外部から視認可能に露出した露出部分がある。この露出部分には、遊技機1における主基板31および各電気部品制御基板(表示制御基板80および払出制御基板37)や遊技機に設けられている各電気部品(電力が供給されることによって動作する部品)への電力供給を実行あるいは遮断するための電力供給許可手段としての電源スイッチが設けられている。さらに、露出部分における電源スイッチの内側(基板内部側)には、交換可能なヒューズが設けられている。
なお、電気部品制御基板には、電気部品制御用マイクロコンピュータを含む電気部品制御手段が搭載されている。電気部品制御手段は、遊技制御手段からのコマンドとしての指令信号(制御信号)にもとづいて、遊技機に設けられている電気部品(遊技用装置:球払出装置97、可変表示装置9、ランプやLEDなどの発光体、スピーカ27等)を制御する。本例では、電気部品制御手段としての音・ランプ制御手段は、遊技制御手段からのコマンドとしての指令信号(制御信号)に従って、ランプやLEDなどの発光体やスピーカ27等の音・ランプ用の電気部品を制御する。また、電気部品制御手段としての表示制御手段は、遊技制御手段からのコマンドに応じて音・ランプ制御手段にて選択されたコマンド(遊技制御手段からのコマンド自体を含む)に従って、可変表示装置9等の表示用の電気部品を制御する。以下、主基板31を電気部品制御基板に含めて説明を行うことがある。その場合には、電気部品制御基板に搭載される電気部品制御手段は、遊技制御手段と、遊技制御手段等からの指令信号に従って遊技機に設けられている電気部品を制御する手段とのそれぞれを指す。また、主基板31以外のマイクロコンピュータが搭載された基板をサブ基板ということがある。
遊技機裏面において、上方には、各種情報を遊技機外部に出力するための各端子を備えたターミナル基板160が設置されている。ターミナル基板160には、少なくとも、球切れ検出スイッチ167の出力を導入して外部出力するための球切れ用端子、賞球情報(賞球個数信号)を外部出力するための賞球用端子および球貸し情報(球貸し個数信号)を外部出力するための球貸し用端子が設けられている。また、中央付近には、主基板31からの各種情報を遊技機外部に出力するための各端子を備えた情報端子基板(情報出力基板)36が設置されている。
貯留タンク38に貯留された遊技球は誘導レールを通り、カーブ樋を経て払出ケース40Aで覆われた球払出装置に至る。球払出装置の上部には、遊技媒体切れ検出手段としての球切れスイッチ187が設けられている。球切れスイッチ187が球切れを検出すると、球払出装置の払出動作が停止する。球切れスイッチ187は遊技球通路内の遊技球の有無を検出するスイッチであるが、貯留タンク38内の補給球の不足を検出する球切れ検出スイッチ167も誘導レールにおける上流部分(貯留タンク38に近接する部分)に設けられている。球切れ検出スイッチ167が遊技球の不足を検知すると、遊技機設置島に設けられている補給機構から遊技機に対して遊技球の補給が行われる。
入賞にもとづく景品としての遊技球や球貸し要求にもとづく遊技球が多数払い出されて打球供給皿3が満杯になると、遊技球は、余剰球通路を経て余剰球受皿4に導かれる。さらに遊技球が払い出されると、感知レバー(図示せず)が貯留状態検出手段としての満タンスイッチ(図示せず)を押圧して、貯留状態検出手段としての満タンスイッチがオンする。その状態では、球払出装置内の払出モータの回転が停止して球払出装置の動作が停止するとともに打球発射装置の駆動も停止する。
図4は、主基板31における回路構成の一例を示すブロック図である。なお、図4には、遊技機に搭載されている払出制御基板37、音・ランプ制御基板35、インタフェース基板66、中継基板77および表示制御基板80も示されている。主基板31には、プログラムに従ってパチンコ遊技機1を制御する基本回路(遊技制御手段に相当)53と、ゲートスイッチ32a、始動口スイッチ14a、V入賞スイッチ22、カウントスイッチ23、入賞口スイッチ29a,30a,33a,39a、および全入賞計数スイッチ34からの信号を基本回路53に与える入力ドライバ回路58と、可変入賞球装置15を開閉するソレノイド16、特別可変入賞球装置20を開閉するソレノイド21および大入賞口内の経路を切り換えるためのソレノイド21Aを基本回路53からの指令に従って駆動する出力回路59とが搭載されている。
なお、ゲートスイッチ32a、始動口スイッチ14a、V入賞スイッチ22、カウントスイッチ23、入賞口スイッチ29a,30a,33a,39a、全入賞計数スイッチ34等のスイッチは、センサと称されているものでもよい。すなわち、遊技球を検出できる遊技媒体検出手段(この例では遊技球検出手段)であれば、その名称を問わない。入賞検出を行う始動口スイッチ14a、カウントスイッチ23、および入賞口スイッチ29a,30a,33a,39aの各スイッチは、入賞領域への遊技球の入賞を検出する入賞検出手段でもある。なお、ゲート32のような通過ゲートであっても、賞球の払い出しが行われるものであれば、通過ゲートへ遊技球が進入することが入賞になり、通過ゲートに設けられているスイッチ(例えばゲートスイッチ32a)が入賞検出手段になる。さらに、この実施の形態では、V入賞領域に入賞した遊技球が、V入賞スイッチ22で検出されるとともにカウントスイッチ23でも検出される。よって、大入賞口に入賞した遊技球数は、カウントスイッチ23による検出数に相当する。しかし、V入賞領域に入賞した遊技球はV入賞スイッチ22のみで検出されるようにし、大入賞口に入賞した遊技球数は、V入賞スイッチ22による検出数とカウントスイッチ23による検出数との和になるようにしてもよい。さらに、V入賞領域を設けず、最終ラウンド以外のラウンドでは、常に継続権が発生するようにしてもよい。
基本回路53は、ゲーム制御(遊技進行制御)用のプログラム等を記憶するROM54、ワークメモリとして使用される記憶手段(変動データを記憶する変動データ記憶手段)としてのRAM55、およびプログラムに従って制御動作を行うCPU56を有する遊技制御用マイクロコンピュータ560を含む。なお、この実施の形態では、CPU56とは、基本回路53のうち、プログラムに従って動作する中央処理装置(ROM54やRAM55などの記憶手段、I/Oポート部57などを除いた部分)を指し、後述するメイン処理や割込処理(タイマ割込処理や、シリアル通信回路からの割り込み要求による割込処理)を実行する。また、遊技制御用マイクロコンピュータ560とは、基本回路53のうち、CPU56に加えて、ROM54やRAM55などの記憶手段、乱数回路503、I/Oポート部57などを含む部分を指し、各基板(払出制御基板37や表示制御基板80)が搭載するマイクロコンピュータと各種データの送受信を行う。
この実施の形態では、ROM54、ワークメモリとしての記憶手段であるRAM55およびI/Oポート部57は遊技制御用マイクロコンピュータ560に内蔵されている。すなわち、遊技制御用マイクロコンピュータ560は、1チップマイクロコンピュータである。1チップマイクロコンピュータは、少なくともRAM55が内蔵されていればよく、ROM54は外付けであっても内蔵されていてもよい。
なお、遊技制御用マイクロコンピュータ560においてCPU56がROM54に格納されているプログラムに従って制御を実行するので、以下、遊技制御用マイクロコンピュータ560が実行する(または、処理を行う)ということは、具体的には、CPU56がプログラムに従って制御を実行することである。このことは、主基板31以外の他の基板に搭載されているマイクロコンピュータについても同様である。また、遊技制御手段は、遊技制御用マイクロコンピュータ560を含む基本回路53で実現されている。
また、RAM55は、その一部または全部が電源基板910において作成されるバックアップ電源によってバックアップされている不揮発性記憶手段としてのバックアップRAMである。すなわち、遊技機に対する電力供給が停止しても、所定期間(バックアップ電源としてのコンデンサが放電してバックアップ電源が電力供給不能になるまで)は、RAM55の一部または全部の内容は保存される。特に、少なくとも、遊技状態すなわち遊技制御手段の制御状態に応じたデータ(特別図柄プロセスフラグ等)と未払出賞球数を示すデータは、バックアップRAMに保存される。遊技制御手段の制御状態に応じたデータとは、停電等が生じた後に復旧した場合に、そのデータにもとづいて、制御状態を停電等の発生前に復旧させるために必要なデータである。また、制御状態に応じたデータと未払出賞球数を示すデータとを遊技の進行状態を示すデータと定義する。なお、この実施の形態では、RAM55の全部が、電源バックアップされているとする。
遊技制御用マイクロコンピュータ560のリセット端子には、電源基板910からのリセット信号が入力される。また、払出制御用マイクロコンピュータのリセット端子にも、電源基板910からのリセット信号が入力される。なお、リセット信号がハイレベルになると遊技制御用マイクロコンピュータ560および払出制御用マイクロコンピュータは動作可能状態になり、リセット信号がローレベルになると遊技制御用マイクロコンピュータ560および払出制御用マイクロコンピュータは動作停止状態になる。従って、リセット信号がハイレベルである期間は、遊技制御用マイクロコンピュータ560および払出制御用マイクロコンピュータの動作を許容する許容信号が出力されていることになり、リセット信号がローレベルである期間は、遊技制御用マイクロコンピュータ560および払出制御用マイクロコンピュータの動作を停止させる動作停止信号が出力されていることになる。なお、リセット回路をそれぞれの電気部品制御基板(主基板31を含む)に搭載してもよいし、複数の電気部品制御基板のうちの一つまたは複数にリセット回路を搭載し、そこからリセット信号を他の電気部品制御基板に供給するようにしてもよい。
さらに、基本回路53の入力ポートには、払出制御基板37を経由して、電源基板910からの電源電圧が所定値以下に低下したことを示す電源断信号が入力される。また、基本回路53の入力ポートには、RAMの内容をクリアすることを指示するためのクリアスイッチが操作されたことを示すクリア信号が入力される。
クリア信号は、主基板31において分岐され、払出制御基板37にも供給される。なお、遊技制御用マイクロコンピュータ560が入力ポートを介して入力したクリア信号の状態を、出力ポートを介して払出制御基板37に出力してもよい。
この実施の形態では、表示制御基板80に搭載されている表示制御手段(表示制御用マイクロコンピュータで構成される。)が、遊技制御用マイクロコンピュータ560からの演出制御コマンドに応じて音・ランプ制御基板35にて選択された表示制御コマンドを受信し、飾り図柄を可変表示する可変表示装置9の表示制御等を行う。
図5は、中継基板77、表示制御基板80、および音・ランプ制御基板35の回路構成例を示すブロック図である。音・ランプ制御基板35は、音・ランプ制御用CPU351およびRAMを含む音・ランプ制御用マイクロコンピュータ350を搭載している。なお、RAMは外付けであってもよい。音・ランプ制御基板35において、音・ランプ制御用マイクロコンピュータ350は、内蔵または外付けのROM(図示せず)に格納されたプログラムに従って動作し、中継基板77を介して入力される主基板31からのストローブ信号(演出制御INT信号)に応じて、演出制御コマンドを受信する。
中継基板77には、主基板31から入力された信号を音・ランプ制御基板35に向かう方向にしか通過させない(音・ランプ制御基板35から中継基板77への方向には信号を通過させない)信号方向規制手段としての単方向性回路が搭載されている。単方向性回路として、例えばダイオードやトランジスタが使用される。図5には、ダイオードが例示されている。また、単方向性回路は、各信号毎に設けられる。
さらに、音・ランプ制御用マイクロコンピュータ350は、ランプドライバ352に対してランプを駆動する信号を出力する。ランプドライバ352は、ランプを駆動する信号を増幅して天枠ランプ28a、左枠ランプ28b、右枠ランプ28cなどの枠側に設けられている各ランプに供給する。また、枠側に設けられている装飾ランプ25に供給する。
また、音・ランプ制御用マイクロコンピュータ350は、音声合成用IC703に対して音番号データを出力する。音声合成用IC703は、音番号データに応じた音声や効果音を発生し増幅回路705に出力する。増幅回路705は、音声合成用IC703の出力レベルを、ボリューム706で設定されている音量に応じたレベルに増幅した音声信号をスピーカ27に出力する。音声データROM704には、音番号データに応じた制御データが格納されている。音番号データに応じた制御データは、所定期間(例えば飾り図柄の変動期間)における効果音または音声の出力態様を時系列的に示すデータの集まりである。
表示制御基板80は、表示制御用CPU101およびRAMを含む表示制御用マイクロコンピュータ100を搭載している。なお、RAMは外付けであってもよい。表示制御基板80において、表示制御用マイクロコンピュータ100は、内蔵または外付けのROM(図示せず)に格納されたプログラムに従って動作し、音・ランプ制御基板35からのストローブ信号(表示制御INT信号)に応じて、入力ドライバ102および入力ポート103を介して表示制御コマンドを受信する。また、表示制御用マイクロコンピュータ100は、表示制御コマンドにもとづいて、VDP(ビデオディスプレイプロセッサ)109に、LCDを用いた可変表示装置9の表示制御を行わせる。
表示制御コマンドおよび表示制御INT信号は、表示制御基板80において、まず、入力ドライバ102に入力する。入力ドライバ102は、音・ランプ制御基板35から入力された信号を表示制御基板80の内部に向かう方向にしか通過させない(表示制御基板80の内部から音・ランプ制御基板35への方向には信号を通過させない)信号方向規制手段としての単方向性回路でもある。
表示制御用マイクロコンピュータ100は、受信した表示制御コマンドに従ってキャラクタROM(図示せず)から必要なデータを読み出す。キャラクタROMは、可変表示装置9に表示される画像の中でも使用頻度の高いキャラクタ画像データ、具体的には、人物、文字、図形または記号等(飾り図柄を含む)をあらかじめ格納しておくためのものである。表示制御用マイクロコンピュータ100は、キャラクタROMから読み出したデータをVDP109に出力する。VDP109は、表示制御用マイクロコンピュータ100から入力されたデータにもとづいて可変表示装置9の表示制御を実行する。
この実施の形態では、可変表示装置9の表示制御を行うVDP109が表示制御基板80に搭載されている。VDP109は、表示制御用マイクロコンピュータ100とは独立したアドレス空間を有し、そこにVRAMをマッピングする。VRAMは、VDPによって生成された画像データを展開するためのバッファメモリである。そして、VDP109は、VRAM内の画像データを可変表示装置9に出力する。
図6は、主基板31における回路構成および主基板31から音・ランプ制御基板35に送信される演出制御コマンドの信号線と、音・ランプ制御基板35から表示制御基板80に送信される表示制御コマンドの信号線とを示すブロック図である。図6に示すように、この実施の形態では、主基板31が搭載する遊技制御用マイクロコンピュータ560は、演出制御信号送信用の8本の信号線CD0〜CD7を用いて、演出制御コマンドを音・ランプ制御基板35に送信する。また、主基板31と音・ランプ制御基板35との間には、ストローブ信号を送受するための演出制御INT信号の信号線も配線されている。そして、この実施の形態では、音・ランプ制御基板35が搭載する音・ランプ制御用マイクロコンピュータ350は、表示制御信号送信用の8本の信号線CD0〜CD7を用いて、表示制御コマンドを表示制御基板80に送信する。また、音・ランプ制御基板35と表示制御基板80との間には、ストローブ信号を送受するための表示制御INT信号の信号線も配線されている。
主基板31には、図6に示すように、始動口スイッチ14aからの配線が接続されている。また、主基板31には、大入賞口である特別可変入賞球装置20や、その他の入賞口への遊技球の入賞等を検出するための各種スイッチ29a,30a,33a,39aからの配線も接続されている。さらに、主基板31には、可変入賞球装置15を開閉するソレノイド16、特別可変入賞球装置20を開閉するソレノイド21および大入賞口内の経路を切り換えるためのソレノイド21Aへの配線が接続されている。
主基板31は、遊技制御用マイクロコンピュータ560、入力ドライバ回路58および出力回路59を搭載する。遊技制御用マイクロコンピュータ560は、クロック回路501、システムリセット手段として機能するリセットコントローラ502、乱数回路503a,503b、ゲーム制御用のプログラム等を記憶するROM54、ワークメモリとして使用されるRAM55、プログラムに従って動作するCPU56、CPU56に割込要求信号(タイマ割込による割込要求信号)を送出するCTC504およびI/Oポート部57を内蔵する。
クロック回路501は、システムクロック信号を27(=128)分周して生成した所定の周期の基準クロック信号CLKを、各乱数回路503a,503bに出力する。リセットコントローラ502は、ローレベルの信号が一定期間入力されたとき、CPU56および各乱数回路503a,503bに所定の初期化信号を出力して、遊技制御用マイクロコンピュータ560をシステムリセットする。
また、この実施の形態では、図6に示すように、遊技制御用マイクロコンピュータ560は、発生可能な乱数の値の範囲が異なる2つの乱数回路503a,503bを搭載する。乱数回路503aは、12ビットの疑似乱数を発生する乱数回路(以下、12ビット乱数回路ともいう)である。12ビット乱数回路503aは、12ビットで発生できる範囲(すなわち、0から4095までの範囲)の値の乱数を発生する機能を備える。また、乱数回路503bは、16ビットの疑似乱数を発生する乱数回路(以下、16ビット乱数回路ともいう)である。16ビット乱数回路503bは、16ビットで発生できる範囲(すなわち、0から65535までの範囲)の値の乱数を発生する機能を備える。なお、この実施の形態では、遊技制御用マイクロコンピュータ560が2つの乱数回路を内蔵する場合を説明するが、遊技制御用マイクロコンピュータ560は、3以上の乱数回路を内蔵してもよい。また、この実施の形態では、12ビット乱数回路503aおよび16ビット乱数回路503bを包括的に表現する場合、または、12ビット乱数回路503aと16ビット乱数回路503bとのうちいずれかを指す場合に、乱数回路503という。
次に、乱数回路503の構成について説明する。図7は、乱数回路503の構成例を示すブロック図である。なお、この実施の形態において、12ビット乱数回路503aと16ビット乱数回路503bとの基本的な構成は同じである。図7に示すように、乱数回路503は、カウンタ521、比較器522、カウント値順列変更回路523、クロック信号出力回路524、カウント値更新信号出力回路525、乱数値読取信号出力回路526、乱数更新方式選択信号出力回路527、セレクタ528、乱数回路起動信号出力回路530、乱数値記憶回路531、反転回路532、ラッチ信号生成回路533およびタイマ回路534とを含む。
この実施の形態では、乱数回路503は、複数種類の識別情報の可変表示の表示結果を特定の表示結果とするか否か(例えば、特別図柄表示装置8の表示図柄の組み合わせを大当り図柄の組み合わせとするか否か)を判定するための大当り判定用の乱数を発生する。そして、遊技制御用マイクロコンピュータ560のCPU56は、乱数回路503が発生した乱数にもとづいて特定の表示結果とすると判定すると、遊技状態を遊技者にとって有利な特定遊技状態(例えば、大当り遊技状態)に移行させる。なお、この実施の形態では、大当りの種類を決定するための大当り種類判定用乱数や、特別図柄(大当り図柄)を決定する大当り図柄決定用乱数など、大当り判定用以外の判定用乱数については、後述するようにソフトウェア乱数を用いる。
カウンタ521は、セレクタ528によって選択された所定の信号を入力し、セレクタ528から入力する信号に応答してカウント値Cを出力する。この場合、カウンタ521は、所定の初期値を入力し、カウント値Cを一定の規則に従って初期値から所定の最終値まで循環的に更新して出力する。また、カウンタ521は、カウント値Cを最終値まで更新すると、カウント値Cを最終値まで更新した旨を示す通知信号をCPU56に出力する。この実施の形態では、カウンタ521から通知信号が出力されると、CPU56によって初期値が更新される。
この実施の形態において、12ビット乱数回路503aを設定した場合には、カウンタ521は、セレクタ528から信号を入力するごとに(セレクタ528からの信号における立ち上がりエッヂが入力されるごとに)、カウント値Cを「0」から「4095」まで1ずつカウントアップする。また、カウンタ521は、カウント値Cを「4095」までカウントアップすると、カウント値Cを最終値まで更新した旨を示す通知信号をCPU56に出力する。すると、CPU56は、カウンタ521から通知信号を入力し、初期値を更新する。そして、カウンタ521は、CPU56によって更新された初期値から「4095」まで、再びカウント値Cをカウントアップする。また、「4095」までカウントアップすると、カウンタ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」から「4095」まで入力している間、カウント値が乱数最大値を超えていると判断して、繰り返しカウンタ521に通知信号を出力する。そして、カウンタ521は、比較器522から通知信号を入力している間、クロック信号出力回路524からの乱数発生用クロック信号SI1の入力を待つことなく、カウント値を繰り返し更新し出力する。そのようにすることによって、クロック信号出力回路524が次に乱数発生用クロック信号SI1を出力するまでの間に、「257」から「4095」までカウント値を高速にカウントアップさせるように制御し、「257」から「4095」までの乱数値を読み飛ばす(乱数値記憶回路531に記憶させない)ように制御する。
カウント値順列変更回路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によってカウント値順列変更データをクリアするのでなく、乱数回路503側でカウント値順列変更データをクリアするようにしてもよい。例えば、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」が書き込まれたことにもとづいて、更新規則選択レジスタ(RRC)542にレジスタ値が設定されると、カウント値順列変更回路523は、カウント値順列変更レジスタ536のレジスタ値をクリアするようにしてもよい。
図8は、更新規則選択レジスタ542の例を示す説明図である。更新規則選択レジスタ542は、カウンタ521が出力するカウント値の並び順の並べ替え(順列の変更)に用いる更新規則を設定するレジスタである。この実施の形態では、更新規則選択レジスタ542にレジスタ値が設定されることによって、カウンタ521が出力するカウント値の順列の変更に用いる更新規則が設定される。図8に示すように、更新規則選択レジスタ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」に戻る。
図9は、更新規則メモリ543の例を示す説明図である。図9に示すように、更新規則メモリ543は、更新規則選択レジスタ542の値(レジスタ値)と、カウント値の更新規則とを対応付けて格納している。図9に示す例では、例えば、更新規則選択レジスタ542にレジスタ値1が設定されている場合、更新規則Bを用いて、カウンタ521が出力するカウント値の順列が変更されることが分かる。なお、図9において、更新規則Aは、カウンタ521がカウント値Cを更新する規則と同一の更新規則であり、レジスタ値「0」に対応づけて更新規則メモリ543に格納される。また、更新規則メモリ543には、カウンタ521がカウント値Cを更新する更新規則とは異なる更新規則B〜Pが、レジスタ値「1」〜「15」に対応づけて格納される。
カウント値順列変更回路523は、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」が書き込まれている場合、まず、カウンタ521からカウント値の最終値「4095」が最初に入力されるまで、現在設定されている更新規則に従って、そのままカウント値を出力する。そして、カウント値順列変更回路523は、カウンタ521からカウント値の最終値「4095」を入力すると、カウント値の更新規則を変更する。なお、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の順列を変更して出力する。そのため、乱数回路503が生成する乱数のランダム性を向上させることができる。
図10は、カウント値順列変更回路523が、カウンタ521が出力するカウント値の順列を変更する場合の例を示す説明図である。図10に示すように、CPU56は、所定のタイミングで、カウント値順列変更データ「01h」をカウント値順列変更レジスタ536に書き込む。すると、更新規則選択レジスタ542のレジスタ値が1加算される。例えば、更新規則選択レジスタ542のレジスタ値が「0」から「1」に更新される。レジスタ値が更新されると、カウント値順列変更回路523は、カウンタ521から最初にカウント値の最終値「4095」が入力されるまで、更新前のレジスタ値「0」に対応する「更新規則A」に従ってカウント値を更新して出力する。このとき、カウント値順列変更回路523は、更新規則Aに従って、「0→1→・・・→4095」の順列でカウント値を出力する。
カウンタ521からカウント値の最終値「4095」が入力されると、カウント値順列変更回路523は、更新規則メモリ543から、更新後のレジスタ値「1」に対応する「更新規則B」を選択して設定する。カウント値順列変更回路523は、カウンタ521から再び初期値「0」以降のカウント値の入力を開始すると、選択設定した「更新規則B」に従って、カウント値の順列を変更して出力する。本例では、カウント値順列変更回路523は、順列を「0→1→・・・→4095」から「4095→4094→・・・→0」に変更して、カウント値を出力する。
その後、カウント値順列変更レジスタ536は、後述するように、カウント値順列変更回路523が切り替え後の更新規則に従ってカウント値の更新動作を開始したことに応じてリセットされる。そして、次にカウント値順列変更データ「01h」がカウント値順列変更レジスタ536に書き込まれるまで、カウント値順列変更回路523は、「4095→4094→・・・→0」のままの順列で、カウント値を出力し続ける。
CPU56によってカウント値順列変更データ「01h」がカウント値順列変更レジスタ536に再度書き込まれると、カウント値順列変更レジスタ536のレジスタ値が「1」から「2」に更新される。そして、カウンタ521からカウント値の最終値「4095」を入力すると、カウント値順列変更回路523は、更新規則メモリ543から、レジスタ値「2」に対応する「更新規則C」を選択して設定する。カウント値順列変更回路523は、カウンタ521から再び初期値「0」以降のカウント値の入力を開始すると、選択設定した「更新規則C」に従って、カウント値の順列を更新して出力する。本例では、カウント値順列変更回路523は、順列を「4095→4094→・・・→0」から「1→3→…→4095→0→・・・→4094」に変更して、カウント値を出力する。
以上のように、カウント値順列変更レジスタ536をリセットした後、カウント値順列データ「01h」をカウント値順列変更レジスタ536に再度書き込むことによって、カウント値の順列をさらに変更することができる。
図11は、カウント値順列変更レジスタ536の例を示す説明図である。カウント値順列変更レジスタ536は、カウンタ521がカウントアップするカウント値の順列を変更させるためのカウント値順列変更データ「01h」を設定するレジスタである。図11に示すように、カウント値順列変更レジスタ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は、入力したカウント値が乱数最大値以下であると判断すると、入力したカウント値を乱数値記憶回路531に出力する。
この実施の形態では、比較器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」から「4095」までのカウント値を比較器522に出力しない。カウンタ521は、例えば、初期値が「0」と設定されているときに、最終値「256」までカウント値を更新すると、通知信号をCPU56に出力する。通知信号を出力すると、CPU56によって、カウンタ521のカウント値の初期値が変更される。本例では、CPU56によって、初期値が「50」に変更されるものとする。
なお、カウント値が乱数最大値「256」より大きいか否かをカウント値順列変更回路523が判断するのでなく、比較器522が判定するようにしてもよい。この場合、例えば、比較器522は、カウント値が乱数最大値設定レジスタ535に設定されている乱数最大値より大きいか否かを判断し、カウント値が乱数最大値より大きいと判断すると、通知信号をカウンタ521に出力する。そして、比較器522は、カウント値が乱数最大値を超えたと判断すると、クロック信号出力回路524が次に乱数発生用クロック信号SI1を出力する前に、通知信号をカウンタ521に出力する。そのようにすることによって、比較器522は、クロック信号出力回路524が次に乱数発生用クロック信号SI1を出力するまでの間に、「257」から「4095」までカウント値を高速にカウントアップさせるようにカウンタ521を制御する。そのようにすることによって、カウント値順列変更回路523からの値が「257」未満のときだけカウント値を乱数値記憶回路531に出力するようにし、カウント値順列変更回路523からの値が「257」以上のときにはカウント値を高速で更新させるようにすることができる。
更新規則Aにもとづいて、カウント値順列変更回路523から、「0」から「255」までカウント値を入力している間、比較器522は、入力するカウント値が乱数最大値「256」以下であるので、入力したカウント値をそのまま乱数値記憶回路531に出力する。次に、カウント値順列変更回路523から入力するカウント値が「256」に達すると、比較器522は、入力したカウント値を乱数値記憶回路531に出力するとともに、初期値から最大値までの全てのカウント値を入力した旨の通知信号をカウンタ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」から「4095」までのカウント値を比較器522に出力せず、カウンタ521の更新するカウント値が1周したとき(257回更新したとき)に、カウント値順列変更レジスタ536にカウント値順列変更データが書き込まれた場合には、カウント値順列変更回路523は、カウント値の順列を変更して出力する。例えば、更新規則が更新規則Bに変更された場合、カウント値順列変更回路523は、カウント値の順列を「256→255→・・・→50」に変更して出力する。
カウント値順列変更回路523から、「256」から「50」までカウント値を入力している間、比較器522は、入力したカウント値をそのまま乱数値記憶回路531に出力する。次に、カウント値順列変更回路523から入力するカウント値が「50」に達すると、比較器522は、入力したカウント値を乱数値記憶回路531に出力するとともに、初期値から最大値までの全てのカウント値を入力した旨の通知信号をカウンタ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からのカウント値の入力にもとづいて乱数値記憶回路531にカウント値を出力する。そして、カウンタ521は、最終値(本例では、「49」)までカウント値を更新すると、通知信号をCPU56に出力する。通知信号を出力すると、CPU56によって、カウンタ521のカウント値の初期値が再び変更される。
以上のような動作を繰り返すことにより、比較器522は、カウンタ521に、「0」から乱数最大値「256」まで連続的にカウント値をカウントアップさせ、「0」から「256」までの値を乱数値記憶回路531にランダムR(乱数値)として記憶させる。すなわち、比較器522は、カウント値の更新範囲を乱数最大値「256」以下に制限して、カウンタ521にカウント値を更新させる。
図12は、乱数最大値設定レジスタ535の例を示す説明図である。図12(a)は、12ビット乱数回路503aが搭載する乱数最大値設定レジスタ535の例を示す。また、図12(b)は、16ビット乱数回路503bが搭載する乱数最大値設定レジスタ535の例を示す。まず、12ビット乱数回路503aが搭載する乱数最大値設定レジスタ535について説明する。図12(a)に示すように、12ビット乱数回路503aにおいて、乱数最大値設定レジスタ535は、16ビットレジスタであり、初期値が「4095(=0FFFh)」に設定されている。乱数最大値設定レジスタ535は、ビット0〜ビット11が書込および読出ともに可能な状態に構成されている。また、乱数最大値設定レジスタ535は、ビット12〜ビット15が書込および読出ともに不可能な状態に構成されている。したがって、12ビット乱数回路503aにおいて、乱数最大値設定レジスタ535のビット12〜ビット15に値を書き込む制御を行っても無効とされ、ビット12〜ビット15から読み出す値は全て「0(=0000b)」である。
また、乱数最大値設定レジスタ535に設定される乱数最大値は、所定の下限値が定められている。この実施の形態では、乱数最大値設定レジスタ535に下限値「256」より小さい値を指定する乱数最大値設定データ「0000h」〜「00FEh」が書き込まれた場合、CPU56は、乱数最大値設定レジスタ535に、初期値「4095」を指定する乱数最大値設定データ「0FFFh」を設定しなおす。すなわち、乱数最大値設定レジスタ535に設定可能な乱数最大値は「256」から「4095」までであり、CPU56は、下限値「256」より小さい値が設定されていると判断すると、乱数最大値を所定値「4095」に設定しなおす。なお、CPU56は、リセットコントローラ502によって遊技制御用マイクロコンピュータ560がシステムリセットされるまで、乱数最大値設定データが書き込まれた乱数最大値設定レジスタ535を書込不可能に制御する。なお、CPU56により書込不可能に制御するのでなく、乱数最大値設定レジスタ535は、データが書き込まれた後にリセット信号を入力するまで書込不可能となるように形成されていてもよい。
次に、16ビット乱数回路503bが搭載する乱数最大値設定レジスタ535について説明する。図12(b)に示すように、16ビット乱数回路503bにおいて、乱数最大値設定レジスタ535は、16ビットレジスタであり、初期値が「65535(=FFFFh)」に設定されている。また、16ビット乱数回路503bにおいて、乱数最大値設定レジスタ535は、ビット0〜ビット15の全てのビットが書込および読出ともに可能な状態に構成されている。
また、乱数最大値設定レジスタ535に下限値「512」より小さい値を指定する乱数最大値設定データ「0000h」〜「01FFh」が書き込まれた場合、CPU56は、乱数最大値設定レジスタ535に、初期値「65535」を指定する乱数最大値設定データ「FFFFh」を設定しなおす。すなわち、乱数最大値設定レジスタ535に設定可能な乱数最大値は「512」から「65535」までであり、CPU56は、下限値「512」より小さい値が設定されていると判断すると、乱数最大値を所定値「65535」に設定しなおす。なお、CPU56は、リセットコントローラ502によって遊技制御用マイクロコンピュータ560がシステムリセットされるまで、乱数最大値設定データが書き込まれた乱数最大値設定レジスタ535を書込不可能に制御する。
クロック信号出力回路524は、セレクタ528および反転回路532に出力するクロック信号の周期(すなわち、カウント値の更新周期)を指定するための周期設定データを格納する周期設定レジスタ(RPS)537を備える。クロック信号出力回路524は、周期設定レジスタ537に格納されている周期設定データに基づいて、遊技制御用マイクロコンピュータ560が搭載するクロック回路501から入力する基準クロック信号CLKを分周して、乱数回路503内部で乱数値の生成に用いるクロック信号(乱数発生用クロック信号SI1)を生成する。そのようにすることによって、クロック信号出力回路524は、クロック信号を所定回数入力したことを条件に、カウント値Cを更新させるための乱数発生用クロック信号SI1をカウンタ521に出力するように動作する。なお、周期設定データとは、クロック回路501から入力した基準クロック信号CLKを何分周させるかを設定するためのデータである。また、クロック出力回路524は、生成した乱数発生用クロック信号SI1をセレクタ528および反転回路532に出力する。例えば、周期設定レジスタ537に周期設定データ「0Fh(=16)」が書き込まれている場合、クロック信号出力回路524は、クロック回路501から入力する基準クロック信号CLKを16分周して乱数発生用クロック信号SI1を生成する。この場合、クロック信号出力回路524が生成する乱数発生用クロック信号SI1の周期は、「システムクロック信号の周期×128×16」となる。
図13は、周期設定レジスタ537の例を示す説明図である。図13に示すように、周期設定レジスタ537は、8ビットレジスタであり、初期値が「256(=FFh)」に設定されている。また、周期設定レジスタ537は、書込および読出ともに可能な状態に構成されている。
また、周期設定レジスタ537に設定される周期設定データの値は、所定の下限値が定められている。この実施の形態では、周期設定レジスタ537に下限値「システムクロック信号の周期×128×7」より小さい値を指定する周期設定データ「00h〜06h」が書き込まれた場合、CPU56は、周期設定レジスタ537に下限値「システムクロック信号の周期×128×7」を指定する周期設定データ「07h」を設定しなおす。すなわち、周期設定レジスタ537に設定可能な周期は「システムクロック信号の周期×128×7」から「システムクロック信号の周期×128×256」までであり、CPU56は、下限値より小さい値が設定されていると判断すると、周期設定データを設定しなおす。なお、CPU56は、リセットコントローラ502によって遊技制御用マイクロコンピュータ560がシステムリセットされるまで、周期設定データが書き込まれた周期設定レジスタ537を書込不可能に制御する。なお、CPU56により書込不可能に制御するのでなく、周期設定レジスタ537は、データが書き込まれた後にリセット信号を入力するまで書込不可能となるように形成されていてもよい。
なお、周期設定レジスタ537に下限値としての周期設定データを設定することなく、設定された周期設定データに基づいて、例えばクロック信号出力回路524が基準クロック信号CLKをそのままカウンタ521および反転回路532に出力するようにしてもよい。この場合、CPU56は、周期設定レジスタ537に設定される周期設定データの値を下限値と比較して設定しなおす処理を行う必要がなくなる。また、カウンタ521は、クロック信号出力回路524から基準クロック信号CLKを入力する毎にカウント値Cを更新することになる。
カウント値更新信号出力回路525は、カウント値更新データ「01h」を格納するカウント値更新レジスタ(RGN)538を備える。カウント値更新データとは、カウント値の更新を要求するためのデータである。カウント値更新信号出力回路525は、カウント値更新レジスタ538にカウント値更新データ「01h」が書き込まれたことに応じて、カウント値更新信号SI3をセレクタ528に出力する。
図14は、カウント値更新レジスタ538の例を示す説明図である。図14に示すように、カウント値更新レジスタ538は、読出不能な8ビットレジスタであり、ビット0のみが書込可能な状態に構成されている。したがって、カウント値更新レジスタ538のビット1〜ビット7に値を書き込む制御を行っても無効とされる。
乱数値読取信号出力回路526は、乱数値取込データ「01h」を格納する乱数値取込レジスタ(RLT)539を備える。乱数値取込データとは、乱数値記憶回路531へのカウント値の取込を要求するためのデータである。乱数値読取信号出力回路526は、乱数値取込レジスタ539に乱数値取込データ「01h」が書き込まれたことに応じて、乱数値の読み取りを要求するための乱数値読取信号をラッチ信号生成回路533に出力する。
図15は、乱数値取込レジスタ539の例を示す説明図である。図15に示すように、乱数値取込レジスタ539は、読出不能な8ビットレジスタである。また、乱数値取込レジスタ539は、ビット0だけが書込可能な状態に構成されている。すなわち、乱数値取込レジスタ539のビット1〜ビット7に値を書き込む制御を行っても無効とされる。
乱数更新方式選択信号出力回路527は、乱数更新方式選択データを格納する乱数更新方式選択レジスタ(RTS)540を備える。乱数更新方式選択データとは、ランダムRの値を更新する方式である各乱数更新方式のうち、いずれかの乱数更新方式を指定するためのデータである。乱数更新方式選択信号出力回路527は、乱数更新方式選択レジスタ540に乱数更新方式選択データが書き込まれたことに応じて、書き込まれた乱数更新方式選択データにより指定される乱数更新方式に対応する乱数更新方式選択信号を、セレクタ528およびラッチ信号生成回路533に出力する。
図16(A)は、乱数更新方式選択レジスタ540の例を示す説明図である。図16(A)に示すように、乱数更新方式選択レジスタ540は、8ビットレジスタであり、初期値が「00h」に設定されている。また、乱数更新方式選択レジスタ540は、ビット0〜ビット1が書込および読出ともに可能な状態に構成されている。また、乱数更新方式選択レジスタ540は、ビット2〜ビット7が書込および読出ともに不可能な状態に構成されている。したがって、乱数更新方式選択レジスタ540のビット2〜ビット7に値を書き込む制御を行っても無効とされ、ビット2〜ビット7から読み出す値は全て「0(=000000b)」である。
図16(B)は、乱数更新方式選択レジスタ540に書き込まれる乱数更新方式選択データの一例の説明図である。図16(B)に示すように、乱数更新方式選択データは、2ビットのデータから構成される。乱数更新方式選択データ「01b」は、第1の乱数更新方式を指定するために用いられる。また、乱数更新方式選択データ「10b」は、第2の乱数更新方式を指定するために用いられる。なお、この実施の形態では、第1の乱数更新方式とは、カウント値更新信号出力回路525からカウント値更新信号SI3が出力されたことをトリガとして、カウント値を更新する方式である。また、第2の乱数更新方式とは、クロック信号出力回路524から乱数発生用クロック信号SI1が出力されたことをトリガとして、カウント値を更新する方式である。また、乱数更新方式選択データ「01b」または「10b」が乱数更新方式選択レジスタ540に書き込まれた場合、乱数回路503は起動可能な状態となる。一方、乱数更新方式選択データ「00b」または「11b」が乱数更新方式選択レジスタ540に書き込まれた場合、乱数回路503は起動不能な状態となる。
セレクタ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を備える。乱数回路起動データとは、乱数回路503の起動を要求するためのデータである。乱数回路起動信号出力回路530は、乱数回路起動レジスタ541に乱数回路起動データ「80h」が書き込まれると、所定の乱数回路起動信号をカウンタ521およびクロック信号出力回路537に出力し、カウンタ521およびクロック信号出力回路524をオンにさせる。そして、カウンタ521によるカウント値の更新動作とクロック信号出力回路524による内部クロック信号の出力動作とを開始させることによって、乱数回路503を起動させる。
図17は、乱数回路起動レジスタ541の例を示す説明図である。図17に示すように、乱数回路起動レジスタ541は、8ビットレジスタであり、初期値が「00h」に設定されている。乱数回路起動レジスタ541は、ビット7だけが書込および読出ともに可能な状態に構成されている。また、乱数回路起動レジスタ541は、ビット0〜ビット6が書込および読出ともに不可能な状態に構成されている。すなわち、乱数回路起動レジスタ541のビット0〜ビット6に値を書き込む制御を行っても無効とされ、ビット0〜ビット6から読み出す値は全て「0(=0000000b)」である。
乱数値記憶回路531は、例えば16ビットレジスタであり、遊技制御処理における大当り判定において用いられる乱数であるランダムRの値を格納する。乱数値記憶回路531は、ラッチ信号生成回路533からラッチ信号SLを入力したことに応じて、カウンタ521から比較器522を介して出力されるカウント値CをランダムRの値として格納する。そして、乱数値記憶回路531は、ラッチ信号生成回路533からラッチ信号SLを入力するごとに、カウンタ521が更新するカウント値Cを読み込んでランダムRの値を記憶する。
図18は、乱数値記憶回路531の一構成例を示す回路図である。乱数値記憶回路531は、図18に示すように、2個のAND回路201,203と、2個のNOT回路202,204と、16個のフリップフロップ回路2101〜2116と、16個のOR回路2201〜2216とを含む。
図18に示すように、AND回路201の入力端子は、ラッチ信号生成回路533の出力端子とNOT回路204の出力端子とに接続され、出力端子は、NOT回路202の入力端子とフリップフロップ回路2101〜2116のクロック端子Clk1〜Clk16とに接続されている。NOT回路202の入力端子は、AND回路201の出力端子に接続され、出力端子は、AND回路203の一方の入力端子に接続されている。
AND回路203の入力端子は、NOT回路202の出力端子と遊技制御用マイクロコンピュータ560が搭載するCPU56とに接続され、出力端子は、NOT回路204の入力端子に接続されている。NOT回路204の入力端子は、AND回路203の出力端子に接続され、出力端子は、AND回路201の一方の入力端子とOR回路2201〜2216の一方の入力端子とに接続されている。
フリップフロップ回路2101〜2116の入力端子D1〜D16は、比較器522の出力端子に接続されている。フリップフロップ回路2101〜2116のクロック端子Clk1〜Clk16は、AND回路201の出力端子に接続され、出力端子Q1〜Q16は、OR回路2201〜2216の他方の入力端子に接続されている。
OR回路2201〜2216の入力端子は、NOT回路204の出力端子とフリップフロップ回路2101〜2116の出力端子とに接続され、出力端子は、遊技制御用マイクロコンピュータ560が搭載するCPU56に接続されている。
乱数値記憶回路531の動作について説明する。図19は、乱数値記憶回路531に各信号が入力されるタイミング、および乱数値記憶回路531が各信号を出力するタイミングを示すタイミングチャートである。図19に示すように、遊技制御用マイクロコンピュータ560が搭載するCPU56から出力制御信号SC(本例では、ハイレベル信号)が入力されていない場合(すなわち、AND回路203の一方の入力端子への入力がローレベルの場合)、ラッチ信号生成回路533からラッチ信号SLが入力されると(図19に示す例では、タイミングT1,T2,T7のとき)、AND回路201の2つの入力端子への入力はともにハイレベルとなる。そのため、AND回路201の出力端子から出力される信号SRはハイレベルとなる。そして、AND回路201から出力された信号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が入力されていない場合(図19に示す例では、タイミングT3までの期間およびタイミングT6以降の期間)、AND回路203の一方の入力端子への入力がローレベルとなるので、AND回路203の出力端子から出力される信号SGはローレベルとなる。AND回路203が出力する信号SGは、NOT回路204において反転され、ハイレベルの信号とされる。そして、OR回路2201〜2216の一方の入力端子に、NOT回路204からハイレベルの信号が入力される。
以上のように、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は、読出不能(ディセイブル)状態となる。なお、16ビット乱数回路503bを用いる場合、乱数値としての値「65535」が用いられる可能性がある。この場合、遊技制御用マイクロコンピュータ560は、値「65535」を読み込んだとしても、その値が乱数であるのか読出不能状態であるのかを判断することができない。そのため、図28に示す各大当り判定用の判定テーブルにおいて、あらかじめランダムRが「65535」である場合には「ハズレ」と判定するように設定しておけばよい。
ラッチ信号生成回路533からラッチ信号SLが入力されていないときに、CPU56から出力制御信号SCが入力されると(図19に示す例では、タイミングT4からタイミングT6までの期間)、AND回路203の2つの入力端子への入力がともにハイレベルとなるので、AND回路203の出力端子から出力される信号SGはハイレベルとなる。AND回路203が出力する信号SGは、NOT回路204において反転され、ローレベルの信号とされる。そして、OR回路2201〜2216の一方の入力端子に、NOT回路204からローレベルの信号が入力される。
以上のように、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が入力される前に、ラッチ信号生成回路533からラッチ信号SLが入力されている場合、AND回路203の一方の入力端子への入力がローレベルとなるので、ラッチ信号SLが入力されている状態のままで、出力制御信号SCが入力されても(図19に示す例では、タイミングT3からタイミングT4の期間)、AND回路203の出力端子から出力される信号SGはローレベルのままとなる。AND回路203が出力する信号SGは、NOT回路204において反転され、ハイレベルの信号とされる。そして、OR回路2201〜2216の一方の入力端子に、NOT回路204からハイレベルの信号が入力される。
以上のように、OR回路2201〜2216の一方の入力端子への入力がハイレベルとなるので、他方の入力端子に入力される信号がハイレベルであるかローレベルであるかに関わらず、OR回路2201〜2216から出力される信号SO1〜SO16は全てハイレベルとなる。そして、出力制御信号SCが入力されているにも関わらず、乱数値記憶回路531からランダムRを読み出すことができない状態のままとなる。すなわち、ラッチ信号SLが入力されている場合、乱数値記憶回路531は、出力制御信号SCを受信不可能な状態となる。なお、16ビット乱数回路503bを用いる場合、乱数値としての値「65535」が用いられる可能性がある。この場合、遊技制御用マイクロコンピュータ560は、値「65535」を読み込んだとしても、その値が乱数であるのか読出不能状態であるのかを判断することができない。そのため、図28に示す各大当り判定用の判定テーブルにおいて、あらかじめランダムRが「65535」である場合には「ハズレ」と判定するように設定しておけばよい。
また、ラッチ信号生成回路533からラッチ信号SLが入力される前に、CPU56から出力制御信号SCが入力されている場合、AND回路201の一方の入力端子への入力がローレベルとなるので、出力制御信号SCが入力されているままの状態で、ラッチ信号SLが入力されても(図19に示す例では、タイミングT5)、AND回路201の出力端子から出力される信号SRはローレベルのままとなる。そのため、フリップフロップ回路2101〜2116のクロック端子Clk1〜Clk16に入力される信号SRは、ローレベルからハイレベルに立ち上がらず、フリップフロップ回路2101〜2116に格納されているランダムRのビットデータR1〜R16は、ラッチ信号SLが入力されているにも関わらず、記憶される乱数は更新されない。すなわち、出力制御信号SCが入力されている場合、乱数値記憶回路531は、ラッチ信号SLを受信不可能な状態となる。
反転回路532は、クロック信号出力回路524から入力する乱数発生用クロック信号SI1における信号レベルを反転させることによって、クロック信号の極性を反転させた反転クロック信号SI2を生成する。また、反転回路532は、生成した反転クロック信号SI2をラッチ信号生成回路533に出力する。
ラッチ信号生成回路533は、セレクタおよびフリップフロップ回路等を用いて構成される。ラッチ信号生成回路533は、乱数値読取信号出力回路526からの乱数値読取信号と反転回路532からの反転クロック信号SI2とを入力し、乱数値記憶回路531に乱数値を記憶させるためのラッチ信号SLを出力する。また、ラッチ信号生成回路533は、乱数更新方式選択信号出力回路527からの乱数更新方式選択信号によって指定された乱数値更新方式に応じて、ラッチ信号SLを出力する。この場合、ラッチ信号生成回路533は、乱数更新方式選択信号出力回路527から第1の乱数更新方式選択信号が入力された場合、反転回路532から出力される反転クロック信号SI2を選択し、ラッチ信号SLとして乱数値記憶回路531に出力する。一方、ラッチ信号生成回路533は、乱数更新方式選択信号出力回路527から第2の乱数更新方式選択信号が入力された場合、乱数値読取信号出力回路526から出力される乱数値読取信号を、反転回路532から出力される反転クロック信号SI2の立ち上がりエッヂに同期させて、ラッチ信号SLとして乱数値記憶回路531に出力する。
タイマ回路534は、始動口14への遊技球の入賞を検出した旨の入賞検出信号SSを始動口スイッチ14aから入力する。また、タイマ回路534は、始動口スイッチ14aから入賞検出信号SSが継続して入力されている時間を計測する。そして、タイマ回路534は、計測時間が所定期間(例えば、3ms)になると、乱数値読取信号出力回路526の乱数値取込レジスタ539に乱数値取込データ「01h」を書き込む。例えば、タイマ回路534は、ハイレベルの信号が入力されたことに応じて起動するアップカウンタまたはダウンカウンタによって構成される。タイマ回路534は、始動口スイッチ14aからの入力がハイレベルとなっている間(すなわち、入賞検出信号SSが継続して入力されている間)、クロック回路501から順次入力する基準クロック信号CLKをアップカウントまたはダウンカウントする。そして、タイマ回路534は、アップカウントまたはダウンカウントするカウント値が3msに対応する値になると、始動口スイッチ14aから入賞検出信号SSが入力されたと判断して、乱数値取込データ「01h」を乱数値取込レジスタ539に書き込む。
図20は、遊技制御用マイクロコンピュータ560における記憶領域のアドレスマップの一例を示す説明図である。図20に示すように、遊技制御用マイクロコンピュータ560の記憶領域のうち、0000h番地〜1FFFh番地の領域は、ROM54に割り当てられている。また、7E00h番地〜7FFFh番地の領域は、RAM55に割り当てられている。さらに、FD00h番地〜FDFFh番地の領域は、乱数最大値設定レジスタ535等の内蔵レジスタに割り当てられている。
また、図20に示すように、ROM54に割り当てられている0000h番地〜1FFFh番地の領域は、ユーザプログラムエリアとユーザプログラム管理エリアとを含む。0000h番地〜1F7Fh番地の領域のユーザプログラムエリアには、ユーザ(例えば、遊技機の製作者)により予め作成されたプログラム(ユーザプログラム)550が記憶される。また、1F80h番地〜1FFFh番地の領域のユーザプログラム管理エリアには、CPU56がユーザプログラム550を実行するために必要となるデータ(ユーザプログラム実行データ)が記憶される。また、RAM55に割り当てられている7E00h番地〜7FFFh番地の領域のうち、7E00h番地〜7EFFh番地の領域は未使用領域であり、7F00h番地〜7FFFh番地の領域はワークエリアとして用いられる。
図21は、ユーザプログラム管理エリアにおけるアドレスマップの一例を示す説明図である。図21に示すように、1F97h番地の領域には、乱数回路503のカウンタ521に入力される初期値を変更するための方式である初期値変更方式のうち、ユーザによって選択された初期値変更方式を指定するための初期値変更方式設定データが記憶される。また、1F98h番地および1F99h番地の領域には、RAM55に割り当てられた7F00h番地〜7FFFh番地のうち、ユーザによって予め指定されたRAM55における番地(指定RAM番地)を特定するためのRAM番地データが記憶される。この場合、指定RAM番地を示す値のうち、指定RAM番地の下位の値が1F98h番地に記憶され、指定RAM番地の上位の値が1F99h番地に記憶される。
図22は、初期値変更方式選択データの一例を示す説明図である。図22に示すように、初期値変更方式選択データは、8ビットのデータから構成される。初期値変更方式選択データ「00h」は、初期値変更方式として、初期値を変更しないことを指定するデータである。この実施の形態では、初期値変更方式選択データ「00h」が設定されている場合、乱数回路503のカウンタ521は、予め定められた初期値「0」から所定の最終値までカウント値を更新することになる。また、初期値変更方式選択データ「01h」は、初期値変更方式として、カウンタ521に入力する初期値を、遊技制御用マイクロコンピュータ560を識別するためのIDナンバにもとづく値に変更することを指定するデータである。この実施の形態では、初期値変更方式選択データ「01h」が設定されている場合、カウンタ521が更新するカウンタ値の初期値が「0」からIDナンバにもとづく値に変更され、カウンタ521は、変更後の初期値から所定の最終値までカウント値を更新することになる。
ユーザプログラムエリアに記憶されるユーザプログラム550について説明する。図23は、ユーザプログラム550の構成例を示す説明図である。図23に示すように、この実施の形態では、ユーザプログラム550は、複数種類のプログラムモジュールから構成される乱数回路設定プログラム551と、表示結果決定プログラム552と、カウント値順列変更プログラム554と、乱数値更新プログラム555とを含む。
乱数回路設定プログラム551は、乱数回路503にランダムRの値を更新させるための初期設定を行う乱数回路設定処理を実行させるためのプログラムである。すなわち、CPU56は、乱数回路設定プログラム551に従って処理を実行することにより、乱数回路初期設定手段として機能する。
図24は、乱数回路設定プログラム551の構成例を示す説明図である。図24に示すように、乱数回路設定プログラム551は、複数種類のプログラムモジュールとして、乱数最大値設定モジュール551aと、乱数更新方式選択モジュール551bと、周期設定モジュール551cと、乱数回路起動モジュール551dと、初期値変更モジュール551eと、乱数回路選択モジュール551fとを含む。
乱数最大値設定モジュール551aは、ユーザ(例えば、遊技機の製作者)によって予め設定されたランダムRの最大値を乱数回路503に設定させるためのプログラムモジュールである。CPU56は、乱数最大値設定モジュール551aに従って処理を実行することによって、ユーザによって予め設定されたランダムRの最大値を指定する乱数最大値設定データを、乱数最大値設定レジスタ535に書き込む。そのようにすることによって、CPU56は、ユーザによって予め設定されたランダムRの最大値を乱数回路503に設定する。例えば、ユーザによってランダムRの最大値として予め「255」が設定された場合、CPU56は、乱数最大値設定レジスタ535に乱数最大値設定データ「00FFh」を書き込んで、ランダムRの最大値「255」を乱数回路503に設定する。
乱数更新方式選択モジュール551bは、ユーザによって選択された乱数更新方式(第1の乱数更新方式または第2の乱数更新方式)を乱数回路503に設定させるためのプログラムモジュールである。CPU56は、乱数更新方式選択モジュール551bに従って処理を実行することによって、ユーザによって選択された乱数更新方式を指定する乱数更新方式選択データ「01b」または「10b」を乱数更新方式選択レジスタ540に書き込む。そのようにすることによって、CPU56は、ユーザによって選択された乱数更新方式を乱数回路503に設定する。よって、遊技制御用マイクロコンピュータ560は、第1の乱数更新方式又は第2の乱数更新方式のうちのいずれかを、乱数回路503が乱数更新に用いる乱数更新方式として選択する機能を備える。
周期設定モジュール551cは、ユーザによって予め設定された内部クロック信号の周期(すなわち、クロック信号出力回路524がセレクタ528および反転回路532にクロック信号を出力する周期)を乱数回路503に設定させるためのプログラムモジュールである。CPU56は、周期設定モジュール551cに従って処理を実行することによって、ユーザによって予め設定された内部クロック信号の周期を指定するための周期設定データを周期設定レジスタ537に書き込む。そのようにすることによって、CPU56は、ユーザによって予め設定された内部クロック信号の周期を乱数回路503に設定する。例えば、ユーザによって内部クロック信号の周期が予め「システムクロック信号の周期×128×16」と設定された場合、CPU56は、周期設定レジスタ537に周期設定データ「0Fh」を書き込んで、内部クロック信号の周期「システムクロック信号の周期×128×16」を乱数回路503に設定する。
乱数回路起動モジュール551dは、乱数回路503を起動させるためのプログラムモジュールである。CPU56は、乱数回路起動モジュール551dに従って処理を実行することによって、乱数回路起動データ「80h」を乱数回路起動レジスタ541に書き込むことにより、乱数回路503を起動させる。
初期値変更モジュール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ナンバにもとづく演算値にカウント値の初期値を変更させる。そのようにすれば、乱数回路503が発生する乱数のランダム性をより向上させることができ、遊技制御用マイクロコンピュータ560のIDナンバを見ただけでは乱数の初期値を認識しにくくすることができる。そのため、無線信号を用いた取り込み信号を遊技機に対して発生させるなどの行為によって、大当り状態への移行条件を不正に成立させられてしまうことをより確実に防止することができ、セキュリティ性を向上させることができる。
また、例えば、初期値変更方式設定データ「01h」が記憶されている場合、CPU56は、遊技制御用マイクロコンピュータ560のIDナンバと所定値とを演算して(例えば、IDナンバに所定値を加算して)求めた演算値にカウント値の初期値を変更させる。この場合、例えば、CPU56は、乱数を用いてランダムに変化させた値をIDナンバと演算することによって、演算に用いる値をランダムに更新し初期値を求めてもよい。そのようにすれば、乱数回路503が発生する乱数のランダム性をより向上させることができる。
乱数回路選択モジュール551fは、遊技制御用マイクロコンピュータ560が内蔵する各乱数回路503の中から、遊技制御処理を含むタイマ割込処理の実行時に用いる乱数回路を設定するためのプログラムモジュールである。CPU56は、乱数回路選択モジュール551fに従って処理を実行することによって、遊技制御用マイクロコンピュータ560が内蔵する2つの乱数回路(12ビット乱数回路503aおよび16ビット乱数回路503b)のうち、いずれの乱数回路をタイマ割込処理の実行時に用いるかを設定する。例えば、CPU56は、ROM54の所定の記憶領域に記憶された所定の設定値(ユーザによって予め設定された値)に従って、タイマ割込処理の実行時に用いる乱数回路として、12ビット乱数回路503aまたは16ビット乱数回路503bを設定する。
なお、タイマ割込処理の実行時に用いる乱数回路として、12ビット乱数回路503aおよび16ビット乱数回路503bの両方を設定してもよい。この場合、CPU56は、例えば、12ビット乱数回路503aが発生した乱数にもとづいて変動パターンを決定し、16ビット乱数回路503bが発生した乱数にもとづいて大当り判定を行うようにしてもよい。この実施の形態では、乱数値記憶回路531は、12ビット乱数回路503aと16ビット乱数回路503bとにそれぞれ存在する(すなわち、12ビット用の乱数を記憶する乱数値記憶回路と、16ビット用の乱数を記憶する乱数値記憶回路とが、別個に存在する)。また、12ビット乱数回路503aおよび16ビット乱数回路503bの両方を設定した場合、CPU56は、12ビット乱数回路503aから読み出した乱数と、16ビット乱数回路503bから読み出した乱数とを、RAM55に設けられた別々のバッファ領域にそれぞれ格納する。そのため、12ビット乱数回路503aから乱数を読み出すタイミングと、16ビット乱数回路503bから乱数を読み出すタイミングとが同じであっても、2つの異なる乱数を抽出し別々のバッファ領域に格納することができる。
乱数値更新プログラム555は、乱数更新方式として第1の乱数更新方式が選択されているときに、乱数値記憶回路531に格納されているランダムRの値を更新させるためのプログラムである。CPU56は、乱数値更新プログラム555に従って処理を実行することによって、乱数値更新手段として機能する。CPU56は、第1の乱数更新方式が選択されているときに、乱数値更新プログラム555を実行して、カウント値更新データ「01h」をカウント値更新レジスタ538に書き込むことにより、カウンタ521にカウント値を更新させ、乱数値記憶回路531に格納さているランダムRの値を更新させる。なお、乱数更新方式として第2の乱数更新方式が選択されている場合には、クロック信号出力回路537が出力する乱数発生用クロック信号によって、カウンタ521にカウント値を更新させ、乱数値記憶回路531に格納さているランダムRの値を更新させることになる。
表示結果決定プログラム552は、特別図柄表示装置8における表示結果を大当り図柄とするか否かを決定するためのプログラムである。CPU56は、表示結果決定プログラム552に従って処理を実行することによって、表示結果決定手段として機能する。
この実施の形態では、CPU56は、遊技球が可変入賞球装置15に入賞して特別図柄の可変表示を実行するための条件(実行条件)が成立したことに応じて、表示結果決定プログラム552に従って処理を実行する。なお、CPU56は、遊技球が可変入賞球装置15に入賞したときに、乱数値記憶回路531から更新後のランダムRの値を読み出して、特別図柄表示装置8における表示結果を大当り図柄とするか否かを決定する。
図25は、第1の乱数更新方式が選択されている場合に、CPU56がランダムRの値を更新させたりランダムRの値を読出したりする動作を示す説明図である。図25に示すように、第1の乱数更新方式が選択されている場合、CPU56は、カウント値更新データ「01h」をカウント値更新レジスタ538に書き込むことによって、乱数値記憶回路531が記憶するランダムRの値(例えば「2」)を更新させる。そして、CPU56は、遊技球が可変入賞球装置15に入賞して特別図柄の可変表示を実行するための条件(実行条件)が成立したことに応じて、乱数値記憶回路531からランダムRの値(例えば「2」)を読み出す。
なお、乱数値記憶回路531が記憶するランダムRの値をさらに更新させる場合、前回更新時にランダムRの値を更新したときから、クロック回路501が出力するシステムクロック信号の周期以上の間隔を経過したときに、カウント値更新レジスタ538にカウント値更新データ「01h」を書き込まなければならない。なぜなら、更新後のランダムRの値を乱数値記憶回路531から読み出す時間を確保する必要があるからである。
図26は、第2の乱数更新方式が選択されている場合に、CPU56がランダムRの値を読出したりする動作を示す説明図である。図26に示すように、第2の乱数更新方式が選択されている場合、タイマ回路534は、乱数値取込データ「01h」を乱数値取込レジスタ539に書き込むことによって、カウンタ521が出力するカウント値(例えば「2」)を乱数値記憶回路531に取り込ませて、乱数値記憶回路531が記憶するランダムRの値を更新させる。そして、CPU56は、乱数値記憶回路531から更新後のランダムRの値(例えば「2」)を読み出す。
具体的には、第2の乱数更新方式が選択されている場合、カウンタ521は、乱数発生用クロック信号SI1を入力したことをトリガとしてカウント値Cを更新する。その後、乱数値取込データ「01h」が乱数値取込レジスタ539に書き込まれると、ラッチ信号生成回路533はラッチ信号SLを乱数値記憶回路531に出力する。そして、乱数値記憶回路531は、ラッチ信号SLを入力したことをトリガとしてカウンタ521が出力するカウント値を読み込んで記憶する。そして、CPU56は、乱数値記憶回路531が記憶するランダムRの値を読み出す。
なお、タイマ回路534が乱数値取込データ「01h」を乱数値取込レジスタ539に書き込まなければ、カウンタ521がカウント値を更新しても、乱数値記憶回路531は、カウンタ521が更新する乱数値を記憶しない。例えば、タイマ回路534が乱数値取込データ「01h」を乱数値取込レジスタ539に書き込み、カウンタ521が出力するカウント値「3」を乱数値記憶回路531に取り込ませて、乱数値記憶回路531が記憶するランダムRの値「3」を更新させたとする。この場合、タイマ回路534が乱数値取込データ「01h」を再び乱数値取込レジスタ539に書き込まなければ、カウンタ521が出力するカウント値が「3」から「4」や「5」に更新されても、乱数値記憶回路531が記憶する乱数値は更新されず、乱数値記憶回路531から読み出される乱数値は「3」のままである。
カウント値順列変更プログラム554は、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」を書き込んで、乱数値記憶回路531が記憶するカウント値の順列を変更させるカウント値順列変更処理を実行するためのプログラムである。CPU56は、カウント値順列変更プログラム554に従って処理を実行することによって、数値データ順列変更手段として機能する。CPU56は、カウント値順列変更プログラム554を実行して、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」を書き込むことによって、カウント値順列変更回路523が出力し乱数値記憶回路531に入力されるカウント値の順列を変更させる。
また、遊技制御用マイクロコンピュータ560は、図27に示すように、特図保留メモリ570と、大当り判定用テーブルメモリ571と、フラグメモリ572と、始動入賞口スイッチタイマメモリ573とを備える。
特図保留メモリ570は、遊技球が可変入賞球装置15に入賞して特別図柄の可変表示の実行条件は成立したが、未だ可変表示の開始条件が成立していない(例えば、特別図柄表示装置8がまだ可変表示を実行中である)可変表示の実行条件の成立回数を含む保留データを記憶するためのメモリ(保存領域)である。特図保留メモリ570は、4つのエントリを備え、各エントリには、遊技球が可変入賞球装置15に入賞した順に、保留番号と、入賞に応じて乱数値記憶回路531から読み出したランダムRの値とが対応付けて格納される。また、特別図柄表示装置8における特別図柄の可変表示が1回終了したり、大当り遊技状態が終了したりするごとに、特図保留メモリ570の最上位の情報にもとづいた可変表示の開始条件が成立し、特図保留メモリ570最上位の情報にもとづいた可変表示が実行される。この場合、特別図柄の可変表示の開始条件が成立すると、特図保留メモリ570の第2位以下に登録されている情報が1位ずつ繰り上がる。また、特別図柄の可変表示中に遊技球が可変入賞球装置15に新たに入賞した場合には、その新たな入賞にもとづいて乱数値記憶回路531から読み出されたランダムRの値が、特図保留メモリ570の空エントリに登録される。
大当り判定用テーブルメモリ571は、CPU56が特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定するために用いる複数の大当り判定テーブルを記憶する。具体的には、大当り判定用テーブルメモリ571は、図28(A)に示すように、確変状態でも時短状態でもない遊技状態(通常状態という)において用いられる通常時大当り判定テーブル571aを記憶する。また、大当り判定用テーブルメモリ571は、図28(B)に示すように、確変状態において用いられる確変時大当り判定テーブル571bを格納する。なお、図28に示す判定テーブルを用いて大当り判定を行う場合、乱数最大値設定レジスタ535に設定された乱数最大値によって大当りと判定する確率が大きく変化することになる。この場合、例えば、誤動作により最大値が設定されてしまったとき等に、設定される乱数最大値が小さすぎると、通常時大当り判定テーブル571aを用いた場合と、確変時大当り判定テーブル571bを用いた場合とで、大当りと判定する確率の差が小さくなってしまい、遊技者の遊技に対する興味を減退させてしまうことになる。そのため、乱数回路503および乱数最大値に対応づけて、複数の判定テーブル(複数の通常時大当り判定用テーブル571aおよび複数の確変時大当たり判定用テーブル571b)を大当り判定用テーブルメモリ571に記憶してもよい。そして、遊技制御用マイクロコンピュータ560のCPU56は、大当り判定用テーブルメモリ571が記憶する判定テーブルのうち、使用する乱数回路503および乱数最大値に対応する判定テーブル571a,571bを用いて、表示結果決定プログラム552に従って、特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定するようにしてもよい。そのようにすることによって、使用する乱数回路503の種類や乱数最大値が異なっても、大当たりと判定する確率がある程度同じになるように制御することができる。
フラグメモリ572には、遊技の進行を制御する遊技制御処理において用いられる各種のフラグが設定される。例えば、フラグメモリ572には、遊技状態が確変状態であることを示す確変フラグや、大当り状態であることを示す大当りフラグが設定される。
始動口スイッチタイマメモリ573は、始動口スイッチ14aから入力される入賞検出信号SSに応じて加算またはクリアされるタイマ値を記憶する。
次に遊技機の動作について説明する。図29および図30は、遊技機に対して電力供給が開始され遊技制御用マイクロコンピュータ560へのリセット信号がハイレベルになったことに応じて遊技制御用マイクロコンピュータ560のCPU56が実行するメイン処理を示すフローチャートである。リセット信号が入力されるリセット端子の入力レベルがハイレベルになると、遊技制御用マイクロコンピュータ560のCPU56は、プログラムの内容が正当か否かを確認するための処理であるセキュリティチェック処理を実行した後、ステップS1以降のメイン処理を開始する。メイン処理において、CPU56は、まず、必要な初期設定を行う。
初期設定処理において、CPU56は、まず、割込禁止に設定する(ステップS1)。次に、マスク可能割込の割込モードを設定し(ステップS2)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS3)。なお、ステップS2では、遊技制御用マイクロコンピュータ560の特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビット0)から合成されるアドレスが、割込番地を示すモードに設定する。また、マスク可能な割込が発生すると、CPU56は、自動的に割込禁止状態に設定するとともに、プログラムカウンタの内容をスタックにセーブする。
次いで、内蔵デバイスレジスタの設定(初期化)を行う(ステップS4)。ステップS4の処理によって、内蔵デバイス(内蔵周辺回路)であるCTC(カウンタ/タイマ)およびPIO(パラレル入出力ポート)の設定(初期化)がなされる。
この実施の形態で用いられる遊技制御用マイクロコンピュータ560は、I/Oポート(PIO)およびタイマ/カウンタ回路(CTC)504も内蔵している。
次に、入力ポート1のビット0の状態によって電源断信号がオフ状態になっているか否か確認する(ステップS5)。遊技機に対する電力供給が開始されたときに、+5V電源などの各種電源の出力電圧は徐々に規定値に達するのであるが、ステップS5の処理によって、すなわち、電源断信号が出力されていない(ハイレベルになっている)ことを確認することによりCPU56は電源電圧が安定したことを確認することができる。
電源断信号がオン状態である場合には、CPU56は、所定期間(例えば、0.1秒)の遅延時間の後に(ステップS80)、再度、電源断信号がオフ状態になっているか否か確認する。電源断信号がオフ状態になっている場合には、RAM55をアクセス可能状態に設定し(ステップS6)、クリア信号のチェック処理に移行する。
なお、電源断信号がオフ状態である場合に、遊技の進行を制御する遊技装置制御処理(遊技制御処理)の開始タイミングをソフトウェアで遅らせるためのソフトウェア遅延処理を実行したあと、ステップS6に移行するようにしてもよい。そのようなソフトウェア遅延処理によって、ソフトウェア遅延処理を実行しない場合に比べて、遊技制御処理の開始タイミングを遅延させることができる。遅延処理を実行したときには、他の制御基板(例えば、払出制御基板37)に対して、遊技制御基板(主基板31)が送信するコマンドを他の制御基板のマイクロコンピュータが受信できないという状況が発生することを防止できる。
次いで、CPU56は、クリアスイッチがオンされているか否か確認する(ステップS7)。なお、CPU56は、入力ポート0を介して1回だけクリア信号の状態を確認するようにしてもよいが、複数回クリア信号の状態を確認するようにしてもよい。例えば、クリア信号の状態がオフ状態であることを確認したら、所定時間(例えば、0.1秒)の遅延時間をおいた後、クリア信号の状態を再確認する。そのときにクリア信号の状態がオン状態であることを確認したら、クリア信号がオン状態になっていると判定する。また、このときにクリア信号の状態がオフ状態であることを確認したら、所定時間の遅延時間をおいた後、再度、クリア信号の状態を再確認するようにしてもよい。ここで、再確認の回数は、1回または2回に限られず、3回以上であってもよい。また、2回チェックして、チェック結果が一致していなかったときにもう一度確認するようにしてもよい。
ステップS7でクリアスイッチがオンでない場合には、遊技機への電力供給が停止したときにバックアップRAM領域のデータ保護処理(例えばパリティデータの付加等の電力供給停止時処理)が行われたか否か確認する(ステップS8)。この実施の形態では、電力供給の停止が生じた場合には、バックアップRAM領域のデータを保護するための処理が行われている。そのような電力供給停止時処理が行われていたことを確認した場合には、CPU56は、電力供給停止時処理が行われた、すなわち電力供給停止時の制御状態が保存されていると判定する。電力供給停止時処理が行われていないことを確認した場合には、CPU56は初期化処理を実行する。
電力供給停止時処理が行われていたか否かは、電力供給停止時処理においてバックアップRAM領域に保存されるバックアップ監視タイマの値が、電力供給停止時処理を実行したことに応じた値(例えば2)になっているか否かによって確認される。なお、そのような確認の仕方は一例であって、例えば、電力供給停止時処理においてバックアップフラグ領域に電力供給停止時処理を実行したことを示すフラグをセットし、ステップS8において、そのフラグがセットされていることを確認したら電力供給停止時処理が行われたと判定してもよい。
電力供給停止時の制御状態が保存されていると判定したら、CPU56は、バックアップRAM領域のデータチェック(この例ではパリティチェック)を行う(ステップS9)。この実施の形態では、クリアデータ(00)をチェックサムデータエリアにセットし、チェックサム算出開始アドレスをポインタにセットする。また、チェックサムの対象になるデータ数に対応するチェックサム算出回数をセットする。そして、チェックサムデータエリアの内容とポインタが指すRAM領域の内容との排他的論理和を演算する。演算結果をチェックサムデータエリアにストアするとともに、ポインタの値を1増やし、チェックサム算出回数の値を1減算する。以上の処理が、チェックサム算出回数の値が0になるまで繰り返される。チェックサム算出回数の値が0になったら、CPU56は、チェックサムデータエリアの内容の各ビットの値を反転し、反転後のデータをチェックサムにする。
電力供給停止時処理において、上記の処理と同様の処理によってチェックサムが算出され、チェックサムはバックアップRAM領域に保存されている。ステップS9では、算出したチェックサムと保存されているチェックサムとを比較する。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップRAM領域のデータは保存されているはずであるから、チェック結果(比較結果)は正常(一致)になる。チェック結果が正常でないということは、バックアップRAM領域のデータが、電力供給停止時のデータとは異なっている可能性があることを意味する。そのような場合には、内部状態を電力供給停止時の状態に戻すことができないので、電力供給の停止からの復旧時でない電源投入時に実行される初期化処理(ステップS10〜S14の処理)を実行する。
チェック結果が正常であれば、CPU56は、遊技制御手段の内部状態と演出制御手段等の電気部品制御手段の制御状態を電力供給停止時の状態に戻すための遊技状態復旧処理を行う。具体的には、ROM54に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し(ステップS91)、バックアップ時設定テーブルの内容を順次作業領域(RAM55内の領域)に設定する(ステップS92)。作業領域はバックアップ電源によって電源バックアップされている。バックアップ時設定テーブルには、作業領域のうち初期化してもよい領域についての初期化データが設定されている。ステップS91およびS92の処理によって、作業領域のうち初期化してはならない部分については、保存されていた内容がそのまま残る。初期化してはならない部分とは、例えば、電力供給停止前の遊技状態を示すデータ(特別図柄プロセスフラグなど)、出力ポートの出力状態が保存されている領域(出力ポートバッファ)、未払出賞球数を示すデータが設定されている部分などである。
また、CPU56は、ROM54に格納されているバックアップ時コマンド送信テーブルの先頭アドレスをポインタに設定し(ステップS93)、ステップS15に移行する。
初期化処理では、CPU56は、まず、RAMクリア処理を行う(ステップS10)。なお、RAM55の全領域を初期化せず、所定のデータをそのままにしてもよい。また、ROM54に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し(ステップS11)、初期化時設定テーブルの内容を順次作業領域に設定する(ステップS12)。
ステップS11およびS12の処理によって、例えば、普通図柄判定用乱数カウンタ、普通図柄判定用バッファ、特別図柄バッファ、総賞球数格納バッファ、特別図柄プロセスフラグ、賞球中フラグ、球切れフラグなど制御状態に応じて選択的に処理を行うためのフラグに初期値が設定される。また、出力ポートバッファにおける接続確認信号を出力する出力ポートに対応するビットがセット(接続確認信号のオン状態に対応)される。
また、CPU56は、ROM54に格納されている初期化時コマンド送信テーブルの先頭アドレスをポインタに設定し(ステップS13)、その内容に従ってサブ基板を初期化するための初期化コマンドをサブ基板に送信する処理を実行する(ステップS14)。初期化コマンドとして、可変表示装置9に表示される初期図柄を示すコマンドや払出制御基板37への初期化コマンド等を使用することができる。
また、CPU56は、各乱数回路503a,503bを初期設定する乱数回路設定処理を実行する(ステップS15)。この場合、CPU56は、乱数回路設定プログラム551に従って処理を実行することによって、各乱数回路503a,503bにランダムRの値を更新させるための設定を行う。
そして、CPU56は、所定時間(例えば2ms)ごとに定期的にタイマ割込がかかるように遊技制御用マイクロコンピュータ560に内蔵されているCTCのレジスタの設定を行なうタイマ割込設定処理を実行する(ステップS16)。すなわち、初期値として例えば2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。この実施の形態では、2msごとに定期的にタイマ割込がかかるとする。
タイマ割込の設定が完了すると、CPU56は、表示用乱数更新処理(ステップS18)および初期値用乱数更新処理(ステップS18a)を繰り返し実行する。CPU56は、表示用乱数更新処理および初期値用乱数更新処理が実行されるときには割込禁止状態にして(ステップS17)、表示用乱数更新処理および初期値用乱数更新処理の実行が終了すると割込許可状態にする(ステップS19)。
ステップS19で割込許可状態に設定されると、次にステップS17の処理が実行されて割込禁止状態とされるまで、タイマ割込またはシリアル通信回路からの割り込み要求を許可する状態となる。そして、割込許可状態に設定されている間に、タイマ割込が発生すると、遊技制御用マイクロコンピュータ560のCPU56は、後述するタイマ割込処理を実行する。また、割込許可状態に設定されている間に、シリアル通信回路から割り込み要求が発生すると、遊技制御用マイクロコンピュータ560のCPU56は、各割込処理(通信エラー割込処理や、受信時割込処理、送信完了割込処理)を実行する。
なお、表示用乱数とは、特別図柄表示器8の表示を決定するための乱数(ソフトウェア乱数)である。この実施の形態では、表示用乱数として、特別図柄の変動パターンを決定するための変動パターン決定用乱数や、大当りを発生させない場合にリーチとするか否かを決定するためのリーチ判定用乱数が用いられる。また、表示用乱数更新処理とは、表示用乱数を発生するためのカウンタのカウント値を更新する処理である。
ここで、「リーチ」について説明する。可変表示装置9において最終停止図柄(例えば左中右図柄のうち中図柄)となる図柄以外の図柄が、所定時間継続して、特定の表示結果と一致している状態で停止、揺動、拡大縮小もしくは変形している状態、または、複数の図柄が同一図柄で同期して変動したり、表示図柄の位置が入れ替わっていたりして、最終結果が表示される前で大当り発生の可能性が継続している状態(以下、これらの状態を「リーチ状態」あるいは単に「リーチ」という。)において行われる演出をリーチ演出という。遊技機では、一般に、リーチ状態において、変動パターンを通常状態における変動パターンとは異なるパターンにすることによって、遊技の興趣が高められている。
また、初期値用乱数更新処理とは、初期値用乱数を発生するためのカウンタのカウント値を更新する処理である。初期値用乱数とは、大当りの種類を決定するための判定用乱数(例えば、大当りの種類(例えば、2R確変大当りA、2R確変大当りB、15R確変大当り、時短大当り、通常大当り等)を判定するための大当り種類判定用乱数、普通図柄にもとづく当りを発生させるか否かを決定するための普通図柄当たり判定用乱数)を発生するためのカウンタ(判定用乱数発生カウンタ)等のカウント値の初期値を決定するための乱数(ソフトウェア乱数)である。なお、本例では「大当り図柄決定用乱数」は大当りの種類を決定するための判定用乱数として用いられるものではないが、例えば「大当り種類判定用乱数」によって2R確変大当りとするか否か及び2R確変大当りの種類を決定し、2R確変大当り以外の大当りとする場合に「大当り図柄決定用乱数」によって大当りの種類と大当り図柄とを同時に決定することもできるので、「大当り図柄決定用乱数」は判定用乱数であるものとして説明する。後述する遊技制御処理(遊技制御用マイクロコンピュータが、遊技機に設けられている可変表示装置9、可変入賞球装置15、球払出装置97等の遊技用の装置を、自身で制御する処理、または他のマイクロコンピュータに制御させるために指令信号を送信する処理、遊技装置制御処理ともいう)において、判定用乱数発生カウンタのカウント値が1周すると、そのカウンタに初期値が設定される。
なお、表示用乱数更新処理および初期値用乱数更新処理が実行されるときに割込禁止状態にされるのは、表示用乱数更新処理および初期値用乱数更新処理が後述するタイマ割込処理でも実行される(すなわち、タイマ割込処理のステップS24,S25でも同じ処理が実行される)ことから、タイマ割込処理における処理と競合してしまうのを避けるためである。すなわち、ステップS18,S18aの処理中にタイマ割込が発生してタイマ割込処理中で表示用乱数や初期値用乱数を発生するためのカウンタのカウント値を更新してしまったのでは、カウント値の連続性が損なわれる場合がある。しかし、ステップS18,S18aの処理中では割込禁止状態にしておけば、そのような不都合が生ずることはない。
以上のように、遊技店員等は、クリアスイッチ921をオン状態してクリア信号が出力される状態にしながら遊技機に対する電力供給を開始する(例えば電源スイッチをオンする)ことによって、容易に初期化処理を実行させることができる。すなわち、RAMクリア等を行うことができる。
次に、メイン処理における乱数回路設定処理(ステップS15)を説明する。図31は、乱数回路設定処理を示すフローチャートである。乱数回路設定処理において、CPU56は、まず、乱数回路設定プログラム551に含まれる乱数回路選択モジュール551fに従って処理を実行し、遊技制御用マイクロコンピュータ560が内蔵する各乱数回路503a,503bの中から、遊技制御処理を含むタイマ割込処理の実行時に用いる乱数回路を設定する(ステップS151)。例えば、遊技制御用マイクロコンピュータ560は、ユーザ(例えば、遊技機の製作者)によって設定されたタイマ割込処理の実行時に用いる乱数回路503を指定する指定情報を、あらかじめROM54の所定の記憶領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された指定情報に従って、12ビット乱数回路503aまたは16ビット乱数回路503bのいずれかを選択し、選択した乱数回路をタイマ割込処理の実行時に用いる乱数回路として設定する。なお、タイマ割込処理の実行時に用いる乱数回路として、12ビット乱数回路503aおよび16ビット乱数回路503bの両方を設定してもよい。
上記のように、ステップS151において、更新可能な数値データの所定の範囲が異なる複数の乱数回路(12ビット乱数回路503aと16ビット乱数回路503b)について、それぞれ使用可能とするか否かを設定するので、タイマ割込処理の実行中に不要な乱数を処理することを防止することができ、遊技制御用マイクロコンピュータ560の制御負担を軽減することができる。例えば、遊技制御用マイクロコンピュータ560が、2つの乱数回路503a,503bのうちの一方が発生する乱数のみを用いて遊技制御処理を行う場合、遊技制御処理に用いない方の乱数回路から乱数を読み出す処理等を行わないようにでき、遊技制御用マイクロコンピュータ560の制御負担を軽減できる。
CPU56は、ステップS151で使用する乱数回路503を設定すると、例えば、乱数回路起動レジスタ541にデータを書き込まない等により、カウンタ521やクロック信号出力回路524の動作を停止させることで、使用しないように設定した方の乱数回路のカウンタ521がカウント値Cを更新しないようにする。また、例えば、使用しないように設定した方の乱数回路のカウンタ521はカウント値Cを更新するが、CPU56は出力制御信号SCを出力しないようにし、乱数値記憶回路531から乱数を読み出せないように制御してもよい。また、例えば、CPU56は、タイマ回路534に使用しないように設定した方の乱数回路の乱数値取込レジスタ539に乱数値取込データ「01h」を書き込ませないようにし、ラッチ信号生成回路533がラッチ信号SLを乱数値記憶回路531に出力しないように制御してもよい。
上記のように、使用する乱数回路503だけを設定することによって、生成する乱数の値の範囲を適切に設定することができる。また、タイマ割込処理の実行中に不要な乱数を処理することを防止することができ、遊技制御用マイクロコンピュータ560の制御負担を軽減することができる。例えば、大当りとする判定値として離れた値(例えば、「1」と「100」を含む判定テーブルを用いて大当り判定を行う場合、所定の大当り確率(例えば、100分の1)で大当りと判定するようにすると、16ビット乱数回路503bによる乱数を用いるよりも、12ビット乱数回路503aによる乱数を用いた方が、処理すべき判定値の種類の数が少なくて済み、遊技制御用マイクロコンピュータ560の制御負担が軽減される。
また、CPU56は、乱数回路設定プログラム551に含まれる乱数最大値設定モジュール551aに従って処理を実行し、ユーザによって予め設定された乱数最大値を指定する乱数最大値設定データを、乱数最大値設定レジスタ535に書き込む(ステップS152)。そのようにすることによって、ユーザによって予め設定されたランダムRの乱数最大値を乱数回路503に設定する。なお、タイマ割込実行時に用いる乱数回路として12ビット乱数回路503aを設定した場合、CPU56は、乱数最大値(「0」〜「4095」のうちのいずれかの値)を指定する乱数最大値設定データを、12ビット乱数回路503aの乱数最大値設定レジスタ535に書き込む。また、タイマ割込実行時に用いる乱数回路として16ビット乱数回路503bを設定した場合、CPU56は、乱数最大値(「0」〜「65535」のうちのいずれかの値)を指定する乱数最大値設定データを、16ビット乱数回路503bの乱数最大値設定レジスタ535に書き込む。
なお、この実施の形態では、乱数最大値として「0」〜「255」よりも大きい値が設定された場合には、後述する乱数最大値再設定処理において乱数最大値を所定値に設定しなおすことになる。また、乱数最大値として「255」以下の値を書き込む制御を行った場合であっても、データ化けなどの原因によって「0」〜「255」よりも大きい値が乱数最大値設定レジスタ535に設定されてしまった場合には、後述する乱数最大値再設定処理において乱数最大値を所定値に設定しなおす。
上記のように、ステップS152において、生成する乱数の最大値をあらかじめ乱数最大値設定レジスタ535に設定するので、タイマ割込処理の実行中に用いる乱数の範囲より大きい値の乱数を生成してしまうことを防止でき、乱数回路503および遊技制御用マイクロコンピュータ560の処理負担を軽減することができる。
また、CPU56は、ステップS152で乱数最大値設定レジスタ535に設定した乱数最大値が所定の下限値以下でないかを確認し、乱数最大値が下限値以下である場合には、乱数最大値設定レジスタ535に設定されている乱数最大値の再設定を行う乱数最大値再設定処理を実行する(ステップS153)。
また、CPU56は、乱数回路設定プログラム551に含まれる初期値変更モジュール551eに従って処理を実行し、乱数回路503のカウンタ521が更新するカウント値の初期値を変更させる初期値変更処理を実行する(ステップS154)。
また、CPU56は、乱数回路設定プログラム551に含まれる乱数更新方式選択モジュール551bに従って処理を実行し、乱数更新方式選択データを乱数更新方式選択レジスタ540に書き込む(ステップS155)。そのようにすることによって、乱数回路503の乱数更新方式を設定する。なお、この実施の形態では、CPU56は、乱数更新方式選択データ「10h」を乱数更新方式選択レジスタ540に書き込むものとする。すなわち、この実施の形態では、乱数回路503の乱数更新方式として第2の乱数更新方式が設定される。
また、CPU56は、乱数回路設定プログラム551に含まれる周期設定モジュール551cに従って処理を実行し、ユーザによって予め設定された乱数発生用クロック信号SI1の周期を指定する周期設定データ(基準クロック信号を何分周させるかを設定するためのデータ)を、周期設定レジスタ537に書き込む(ステップS156)。そのようにすることによって、ユーザによって予め設定された乱数発生用クロック信号SI1の周期を乱数回路503に設定する。
また、CPU56は、乱数回路503のカウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521に入力する初期値を更新するか否かを設定する(ステップS157)。例えば、遊技制御用マイクロコンピュータ560は、カウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521に入力する初期値を更新するか否かを示す設定値を、予めユーザによって設定されROM54の所定領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された所定の設定値に従って、カウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521に入力する初期値を更新するか否かを設定する。この実施の形態では、CPU56は、ステップS157において、カウンタ521に入力する初期値を更新すると判定すると、所定の最終値までカウント値が更新されたとき(カウンタ521から通知信号を入力したとき)に初期値を更新する旨を示す初期値更新フラグをセットする。この実施の形態では、ステップS157において、所定の設定値に従って初期値更新フラグをセットする場合を説明する。そして、CPU56は、後述する乱数回路初期値更新処理において、初期値更新フラグがセットされていることにもとづいて、カウンタ521が出力するカウント値の初期値を更新する。
なお、CPU56によってカウント値の初期値を変更するのでなく、最終値までカウント値を更新したことにもとづいて、乱数回路503側でカウント値の初期値を所定値に変更するようにしてもよい。例えば、乱数回路503は、初期値を更新する旨を示す初期値更新データを格納する初期値更新データレジスタ、及び初期値の変更を行う初期値変更回路を備え、CPU56は、ステップS157において、初期値更新データを初期値更新データレジスタに設定する。この場合、カウンタ521は、最終値までカウント値を更新すると、通知信号を初期値変更回路に出力する。すると、初期値変更回路は、初期値更新データレジスタに初期値更新データが設定されているか否かを確認する。そして、初期値変更回路は、初期値更新データが設定されていることを確認すると、カウント値の初期値を所定値に変更する。なお、初期値変更回路は、後述するカウント値順列変更処理において、順列を変更したカウント値の初期値を変更してもよい。
また、CPU56は、乱数回路503のカウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521が更新するカウント値の順列を変更するか否かを設定する(ステップS158)。例えば、遊技制御用マイクロコンピュータ560は、カウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521が出力するカウント値の順列を変更するか否かを示す設定値を、予めユーザによって設定されROM54の所定領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された所定の設定値に従って、カウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521が出力するカウント値の順列を変更するか否かを設定する。この実施の形態では、CPU56は、ステップS158において、カウンタ521が出力するカウント値の順列を変更すると判定すると、所定の最終値までカウント値が更新されたときにカウント値の順列を変更する旨を示すカウント値順列変更フラグをセットする。この実施の形態では、ステップS158において、所定の設定値に従ってカウント値順列変更フラグをセットする場合を説明する。そして、CPU56は、後述するカウント値順列変更処理において、カウント値順列変更フラグがセットされていることにもとづいて、カウンタ521が出力するカウント値の順列を変更する。
なお、CPU56の制御によってカウント値の順列を変更するのでなく、最終値までカウント値を更新したことにもとづいて、乱数回路503側でカウント値の順列変更するようにしてもよい。例えば、乱数回路503は、カウント値の順列を変更する旨を示す順列変更データを格納する順列変更データレジスタを備え、CPU56は、ステップS158において、順列変更データを順列変更データレジスタに設定する。この場合、カウンタ521が最終値までカウント値を更新すると、通知信号をカウント値順列変更回路523に出力し、通知信号を入力したカウント値順列変更回路523は、順列変更データレジスタに順列変更データが設定されているか否かを確認する。そして、カウント値順列変更回路523は、順列変更データが設定されていることを確認すると、カウント値の順列を変更する。
そして、CPU56は、乱数回路設定プログラム551に含まれる乱数回路起動モジュール551dに従って処理を実行し、乱数回路起動データ「80h」を乱数回路起動レジスタ541に書き込む(ステップS159)。そのようにすることによって、CPU56は、乱数回路503を起動させる。
次に、乱数回路設定処理における乱数最大値再設定処理(ステップS153)を説明する。図32は、乱数最大値再設定処理を示すフローチャートである。乱数最大値再設定処理において、CPU56は、乱数最大値設定レジスタ535に設定されている乱数最大値を読み込む(ステップS153a)。なお、タイマ割込処理の実行時に用いる乱数回路として12ビット乱数回路503aを設定した場合、CPU56は、12ビット乱数回路503aの乱数最大値設定レジスタ535に設定されている乱数最大値を読み込む。また、タイマ割込処理の実行時に用いる乱数回路として16ビット乱数回路503bを設定した場合、CPU56は、16ビット乱数回路503bの乱数最大値設定レジスタ535に設定されている乱数最大値を読み込む。
CPU56は、読み込んだ乱数最大値が所定の下限値以下であるか否かを判定する(ステップS153b)。12ビット乱数回路503aを設定した場合、12ビット乱数回路503aにおいて設定可能な乱数最大値が「256」から「4095」までであるので、CPU56は、12ビット乱数回路503aの乱数最大値設定レジスタ535から読み込んだ乱数最大値が下限値「255」以下であるか否かを判定する。また、16ビット乱数回路503bを設定した場合、16ビット乱数回路503bにおいて設定可能な乱数最大値が「512」から「65535」までであるので、CPU56は、16ビット乱数回路503bの乱数最大値設定レジスタ535から読み込んだ乱数最大値が下限値「511」以下であるか否かを判定する。
読み込んだ乱数最大値が下限値以下である場合、CPU56は、乱数最大値設定レジスタ535に設定される乱数最大値を所定値に設定しなおす(ステップS153c)。12ビット乱数回路503aを設定した場合、12ビット乱数回路503aの乱数最大値設定レジスタ535から読み込んだ乱数最大値が下限値「255」以下であると判定すると、CPU56は、乱数最大値設定レジスタ535に設定される乱数最大値を所定値「4095」に設定しなおす。また、16ビット乱数回路503bを設定した場合、16ビット乱数回路503bの乱数最大値設定レジスタ535から読み込んだ乱数最大値が下限値「511」以下であると判定すると、CPU56は、乱数最大値設定レジスタ535に設定される乱数最大値を所定値「65535」に設定しなおす。
以上のように、乱数最大値設定レジスタ535に設定した乱数最大値が所定の下限値以下となっている場合には、乱数最大値を所定値に設定しなおす。そのため、遊技制御用マイクロコンピュータ560の誤動作や、無線信号を用いた取り込み信号を遊技機に対して発生させるなどの行為によって、過度に小さい値が乱数の最大値として設定されてしまうことを防止することができる。従って、最小値から最大値までの値の範囲が過度に小さい乱数を生成する事態が発生することを防止することができる。
次に、乱数回路設定処理における初期値変更処理(ステップS154)を説明する。図33は、初期値変更処理を示すフローチャートである。初期値変更処理において、CPU56は、まず、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されている初期値変更方式選択データを読み出し、ユーザによって選択された初期値変更方式を特定する。この場合、CPU56は、読み出した初期値変更方式選択データの値が「01h」であるか否かを判定することによって(ステップS154a)、ユーザによって選択された初期値変更方式を特定する。
初期値変更方式設定データの値が「01h」である場合、CPU56は、乱数回路503のカウンタ521に入力する初期値を、遊技制御用マイクロコンピュータ560固有のIDナンバにもとづいて設定された値に変更する(ステップS154b)。例えば、遊技制御用マイクロコンピュータ560は、ROM54の所定の記憶領域に、遊技制御用マイクロコンピュータ560のIDナンバと、IDナンバにもとづいて所定の演算を行って求めた演算値とを予め対応付けて記憶している。そして、ステップS154bにおいて、CPU56は、予め記憶するIDナンバにもとづく演算値にカウント値の初期値を変更させる。また、例えば、ステップS154bにおいて、CPU56は、遊技制御用マイクロコンピュータ560のIDナンバと所定値とを演算して(例えば、IDナンバ(例えば、「100」)に所定値(例えば、「100」)を加算して)求めた演算値(例えば、「200」)にカウント値の初期値を設定する。また、カウンタ521に入力する初期値を変更すると、CPU56は、カウント値の初期値を変更した旨を示す初期値変更フラグをセットする(ステップS154c)。
なお、CPU56は、ステップS154bにおいてカウンタ521に入力する初期値を変更する際、乱数回路503の比較器522の乱数最大値設定レジスタ535の値を確認し、IDナンバにもとづいて設定された値が乱数最大値以上であるか否かを判断する。そして、IDナンバにもとづいて設定された値が乱数最大値以上であると判断すると、CPU56は、カウンタ521に入力する初期値を変更しない(例えば、初期値を「0」に設定しなおす)。そのようにすることによって、カウント値の初期値が乱数最大値以上の値に設定されてしまう事態を防止することができる。
ステップS154aにおいて、初期値変更方式設定データの値が「01h」でない場合(すなわち、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されている初期値変更方式設定データの値が「00h」である場合)、CPU56は、カウント値の初期値の変更を行わず、そのまま初期値変更処理を終了し、ステップS155に移行する。
乱数回路設定処理が実行されることによって、遊技制御処理を含むタイマ割込処理の実行時に乱数回路503に各種信号が入力され、乱数回路503内で各種信号が生成される。図34は、乱数回路503に各信号が入力されるタイミング、および乱数回路503内で各信号が生成されるタイミングを示すタイミングチャートである。
図34に示すように、クロック回路501は、所定周期ごと(図34に示すタイミングT11,T21,・・・)に、出力端子の信号レベルをローレベルからハイレベルに立ち上げることによって、乱数回路503に基準クロック信号CLK(図34(A)参照)を入力する。
クロック信号出力回路524は、クロック回路501から供給された基準クロック信号CLKを分周し、乱数発生用クロック信号SI1(図34(B)参照)を生成する。例えば、クロック信号出力回路524は、タイミングT11,T12,・・・で出力端子の信号レベルをローレベルからハイレベルに立ち上げ、タイミングT21,T22,・・・で信号レベルをハイレベルからローレベルに立ち下げることによって、乱数発生用クロック信号SI1を出力する。
なお、図34に示す例では、説明を分かりやすくするために、クロック信号出力回路524が基準クロック信号CLKを2分周して乱数発生用クロック信号SI1を生成する場合を示している。しかし、実際の乱数回路では、周期設定レジスタ537に設定可能な周期は「システムクロック信号の周期×128×7」から「システムクロック信号の周期×128×255」まである。従って、実際の乱数回路では、クロック信号出力回路524は、「システムクロック信号の周期×128×7」から「システムクロック信号の周期×128×255」までの範囲で周期設定レジスタ537に設定される周期設定データ「07h」〜「FFh」に対応した分周比で、基準クロック信号CLKを分周し乱数発生用クロック信号SI1を生成する。クロック信号出力回路524によって生成された乱数発生用クロック信号SI1は、セレクタ528と反転回路532とに出力される。
この実施の形態では、乱数回路設定処理において、第2の乱数更新方式が設定されるので、乱数更新方式選択信号出力回路527から第2の乱数更新方式選択信号がセレクタ528に入力される。セレクタ528は、乱数更新方式選択信号出力回路527から第2の乱数更新方式選択信号が入力されると、クロック信号出力回路524から入力した乱数発生用クロック信号SI1を選択してカウンタ521に出力する。カウンタ521は、セレクタ528から供給される乱数発生用クロック信号SI1の立ち上がりエッヂが入力されるごとに、カウント値Cを更新してカウント値順列変更回路523に出力する。
反転回路532は、クロック信号出力回路524から入力した乱数発生用クロック信号SI1の信号レベルを反転させることによって、反転クロック信号SI2(図34(C)参照)を生成する。例えば、反転回路532は、タイミングT11,T12,・・・で出力端子の信号レベルをハイレベルからローレベルに立ち下げ、タイミングT21,T22,・・・で信号レベルをローレベルからハイレベルに立ち上げることによって、反転クロック信号SI2を出力する。また、反転回路532によって生成された反転クロック信号SI2は、ラッチ信号生成回路533に出力される。
ラッチ信号生成回路533には、入賞検出信号SS(図34(D)参照)がタイマ回路534に入力されてから所定時間(例えば3ミリ秒)が経過すると、乱数値読取信号出力回路526から乱数値読取信号が入力される。例えば、乱数値読取信号出力回路526の出力端子の信号レベルがローレベルからハイレベルに立ち上がることによって、ラッチ信号生成回路533に乱数値読取信号が入力される。ラッチ信号生成回路533は、乱数更新方式選択信号出力回路527から第2の乱数更新方式選択信号が入力されたことに応じて、乱数値読取信号出力回路526から入力する乱数値読取信号を反転回路532から供給される反転クロック信号SI2の立ち上がりエッヂに同期させて、ラッチ信号SL(図34(E)参照)を出力する。
以上のように、乱数回路503は、タイミングT11,T12,T13・・・においてカウント値Cを更新し、タイミングT11,T12,T13とは異なるタイミングT22においてラッチ信号SLを出力させ、乱数値記憶回路531に乱数値を記憶する。
次に、遊技制御処理について説明する。図35は、タイマ割込処理を示すフローチャートである。メイン処理の実行中に、具体的には、ステップS17〜S19のループ処理の実行中における割込許可になっている期間において、タイマ割込が発生すると、遊技制御用マイクロコンピュータ560のCPU56は、タイマ割込の発生に応じて起動されるタイマ割込処理において遊技制御処理を実行する。タイマ割込処理において、CPU56は、まず、電源断信号が出力されたか否か(オン状態になったか否か)を検出する電源断処理(電源断検出処理)を実行する(ステップS20)。次いで、入力ドライバ回路58を介して、ゲートスイッチ32a、始動口スイッチ14a、カウントスイッチ23および入賞口スイッチ29a,30a,33a,39a等のスイッチの検出信号を入力し、それらの状態判定を行う(スイッチ処理:ステップS21)。具体的には、各スイッチの検出信号を入力する入力ポートの状態がオン状態であれば、各スイッチに対応して設けられているスイッチタイマの値を+1する。
次に、CPU56は、乱数回路設定処理において所定の最終値までカウント値が更新されたときに初期値を更新する旨の設定がされているか(ステップS157参照)を確認し、乱数回路503のカウンタ521に入力する初期値を更新する処理を行う(乱数回路初期値更新処理:ステップS22)。
次に、遊技制御に用いられる各判定用乱数を生成するための各カウンタのカウント値を更新する処理を行う(ステップS23)。判定用乱数とは、大当りの種類を判定するための乱数(ソフトウェア乱数)等である。この実施の形態では、判定用乱数として、大当りを発生させる特別図柄を決定するための大当り図柄決定用乱数や、リーチとするか否かを判定するためのリーチ判定用乱数、大当りの種類を判定するための大当り種類判定用乱数、普通図柄にもとづく当りを発生させるか否か決定するための普通図柄当り判定用乱数が用いられる。なお、判定用乱数として用いる乱数は、これらの乱数に限られない。例えば、大入賞口が複数(例えば2つ)ある場合には、判定用乱数として、大当り時に複数の大入賞口のうちいずれを開放するかを決定する乱数が用いられてもよい。また、例えば、判定用乱数として、大当り遊技状態において入賞したときに払い出す賞球数を決定するための乱数が用いられてもよい。
また、この実施の形態では、遊技制御手段は、大当りとすることに決定したときに大当り種類判定用乱数にもとづいて大当り(特定遊技状態)の種類を決定する。そして、遊技制御手段は、決定した大当りの種類に従って遊技状態を制御する。なお、この実施の形態において、「遊技状態を制御する」とは、例えば、判定用乱数にもとづいて決定した大当りの種類(例えば、確変とするか否か、時短とするか否か、大当り遊技演出におけるラウンド数を2Rとするか15Rとするか)に従って、大当り遊技状態を制御する(例えば、特別可変入賞球装置20の開放を、決定したラウンド数だけ継続させたり、大当り遊技状態において入賞したときに、決定した賞球数の遊技球を払い出したりする)ことである。また、例えば、大当り種類判定用乱数にもとづいて決定した大当りの種類に従って、大当り終了後に遊技状態を確変状態に移行させたり、時短状態に移行させたりすることである。
また、CPU56は、初期値用乱数を生成するためのカウンタのカウント値を更新する処理を行う(初期値用乱数更新処理:ステップS24)。さらに、CPU56は、表示用乱数を生成するためのカウンタのカウント値を更新する処理を行う(表示用乱数更新処理:ステップS25)。なお、判定用乱数がタイマ割込処理においてのみ更新されるのに対して(ステップS23参照)、初期値用乱数は、タイマ割込処理において更新されるとともに(ステップS24参照)、メイン処理におけるループ処理(ステップS17〜S19)においても更新される(ステップS18a参照)。従って、判定用乱数と初期値用乱数とは異なる周期で更新されることになる。
図36は、各乱数(ソフトウェア乱数)を示す説明図である。各乱数は、以下のように使用される。
(1)ランダム2:大当りを発生させる特別図柄を決定する(大当り図柄決定用)。なお、本実施の形態では、大当りとしないと判定された場合に特別図柄表示装置8に表示させる特別図柄(はずれ図柄)は、1種類(例えば、図柄「−」を表示)だけである。そのため、本実施の形態では、特別図柄のはずれ図柄を決定するはずれ図柄決定用乱数は用いない。なお、特別図柄のはずれ図柄は複数種類であってもよい。この場合、大当り図柄決定用乱数とは別にはずれ図柄決定用乱数を用いて、大当りとしないと判定された場合に特別図柄表示装置8に表示させる特別図柄(はずれ図柄)を決定するようにしてもよい。
(2)ランダム3:特別図柄の変動パターンを決定する(変動パターン決定用)
(3)ランダム4:大当りを発生させない場合にリーチとするか否かを決定する(リーチ判定用)
(4)ランダム5:普通図柄にもとづく当りを発生させるか否か決定する(普通図柄当り判定用)
(5)ランダム6:ランダム2の初期値を決定する(ランダム2初期値決定用)
(6)ランダム7:ランダム5の初期値を決定する(ランダム5初期値決定用)
(7)ランダム8:大当りの種類を決定する(大当り種類判定用)。
(8)ランダム9:ランダム8の初期値を決定する(ランダム8初期値決定用)
(9)ランダム10:大当り遊技演出の開始前に再抽選演出を実行するか否かを決定する(大当り前再抽選決定用)
(10)ランダム11:大当り遊技演出の終了後(具体的には、最終ラウンドにおける大入賞口の開放が終了して大入賞口が閉じたあと、特別図柄の変動が開始されるまでの期間)に再抽選演出を実行するか否かを決定する(大当り後再抽選決定用)
この実施の形態では、確変状態への移行条件(ランダム8が所定の判定値と一致すること)が成立すると、大当り遊技の終了後に遊技状態が確変状態に移行される。確変状態では、特別図柄や飾り図柄の変動の結果(最終停止図柄、単に停止図柄ともいう。)が大当り図柄となる確率が、確変状態でない状態(低確率状態)に比べて高められる。このことを、以下、「確変状態では高確率で当り/はずれが判定される」と表現することがある。この実施の形態では、確変状態では大当り図柄となる確率が10倍に高められているとする。また、この実施の形態では、後述するように、遊技状態が確変状態に制御されている場合、遊技状態が確変状態であることを示す確変フラグがセットされる。確変状態は、所定回の特別図柄の変動が終了するまで、または、大当りが発生するまで継続する。この実施の形態では、所定回は、100回とするが、所定回を抽選によって複数種類のうちから選択してもよい。
また、この実施の形態では、時短状態への移行条件(ランダム8が所定の判定値と一致すること)が成立すると、大当り遊技の終了後に遊技状態が時短状態に移行される。時短状態では、特別図柄や飾り図柄の変動時間(可変表示期間)が、時短状態でない場合に比べて短縮される。時短状態は、所定回の特別図柄の変動が終了するまで、または、大当りが発生するまで継続する。この実施の形態では、所定回は、100回とするが、所定回を抽選によって複数種類のうちから選択してもよい。時短状態では、特別図柄の変動時間が短縮されるので、特別図柄の変動が開始される頻度が高くなり(換言すれば、保留記憶の消化が速くなる。)、結果として、大当り遊技が行われる可能性が高まる。また、この実施の形態では、後述するように、遊技状態が時短状態に制御されている場合、遊技状態が時短状態であることを示す時短フラグがセットされる。
なお、この実施の形態では、大当り種類判定用乱数(ランダム8)が所定の判定値と一致したときに確変状態や時短状態への移行条件が成立する場合を説明するが、確変状態または時短状態への移行条件は、上記に示したものに限られない。例えば、停止時における特別図柄や飾り図柄の組み合わせが所定の大当り図柄(確変図柄)である場合に、確変状態への移行条件が成立し、停止時における特別図柄や飾り図柄の組み合わせが所定の大当り図柄(時短図柄)である場合に、時短状態への移行条件が成立するようにしてもよい。
図35に示された遊技制御処理におけるステップS23では、CPU56は、(1)の大当り図柄決定用乱数、(4)の普通図柄当り判定用乱数、および(7)の大当り種類判定用乱数を生成するためのカウンタのカウントアップ(1加算)を行う。すなわち、それらが判定用乱数であり、それら以外の乱数が表示用乱数または初期値用乱数である。また、遊技効果を高めるために、上記(1)〜(10)の乱数以外の普通図柄に関する乱数等も用いられていてもよい。
なお、遊技制御処理に用いる判定用乱数は、上記に示したものに限られない。例えば、所定の確変継続回数に達っしたときに確変状態を終了させるものでなく、確変状態を終了させるか否かを決定するための確変終了判定用乱数を用いた抽選により確変状態を終了させるようにしてもよい。
また、遊技制御手段は、判定用乱数として、大当り時における特別可変入賞球装置20の開放回数(ラウンド数)を決定するラウンド数決定用乱数を用いて、ラウンド数を決定するようにしてもよい。例えば、遊技制御手段は、ラウンド数決定用乱数の値に応じて、2回、5回、10回、または15回にラウンド数を決定する。そして、遊技制御手段は、例えば、ステップS305の大入賞口開放前処理において決定されたラウンド数をセットし、ステップS306やステップS307において、再び大入賞口を開放するか、大当りを終了させるか(ステップS305に移行させるか、ステップS308に移行させるか)を判断する際に、セットされたラウンド数と実行したラウンド数とが等しくなったか否かを判定し、等しくなったときにステップS308に移行させることにより、大当り時において、特別可変入賞球装置20を、ラウンド数決定用乱数を用いて決定したラウンド数の回数だけ開放させる。
判定用乱数更新処理、初期値用乱数更新処理および表示用乱数更新処理を行うと、CPU56は、乱数回路503のカウンタ521が出力するカウント値の順列をカウント値順列変更回路523に変更させるカウント値順列変更処理を行う(ステップS26)。この実施の形態では、乱数回路設定処理のステップS158でカウント値順列変更フラグがセットされているか否かによって、カウント値順列変更処理を実行するか否かが決定されている。そして、CPU56は、カウント値順列変更フラグがセットされていることにもとづいて、カウント値順列変更処理を実行する。
さらに、CPU56は、特別図柄プロセス処理を行う(ステップS27)。特別図柄プロセス処理では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。また、普通図柄プロセス処理を行う(ステップS28)。普通図柄プロセス処理では、普通図柄表示器10の表示状態を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。
次いで、CPU56は、特別図柄の変動に同期する飾り図柄に関する演出制御コマンドをRAM55の所定の領域に設定して演出制御コマンドを送出する処理を行う(飾り図柄コマンド制御処理:ステップS29)。なお、飾り図柄の変動が特別図柄の変動に同期するとは、変動時間(可変表示期間)が同じであることを意味する。
さらに、CPU56は、例えばホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する情報出力処理を行う(ステップS30)。
また、CPU56は、入賞口スイッチ29a,30a,33a,39a等の検出信号にもとづく賞球個数の設定などを行う賞球処理を実行する(ステップS31)。具体的には、入賞口スイッチ29a,30a,33a,39a等がオンしたことにもとづく入賞検出に応じて、払出制御基板37に賞球個数を示す賞球個数コマンド等の払出指令コマンドを出力する。払出制御基板37に搭載されている払出制御用マイクロコンピュータ370は、賞球個数を示す賞球個数コマンドの受信に応じて球払出装置97を駆動する。
そして、CPU56は、保留記憶数の増減をチェックする記憶処理を実行する(ステップS32)。また、遊技機の制御状態を遊技機外部で確認できるようにするための試験信号を出力する処理である試験端子処理を実行する(ステップS33)。また、この実施の形態では、出力ポートの出力状態に対応したRAM領域(出力ポートバッファ)が設けられているのであるが、CPU56は、出力ポート2のRAM領域におけるソレノイドに関する内容を出力ポートに出力する(ステップS34:出力処理)。その後、CPU56は、割込許可状態に設定し(ステップS35)、処理を終了する。
この実施の形態では、遊技制御処理は定期的(例えば2msごと)に起動されることになる。なお、この実施の形態では、タイマ割込処理で遊技制御処理が実行されているが、タイマ割込処理では例えば割込が発生したことを示すフラグのセットのみがなされ、遊技制御処理はフラグがセットされたことにもとづいてメイン処理において実行されるようにしてもよい。
また、例えば、タイマ割込処理では遊技制御処理のうちスイッチ処理(ステップS21参照)、初期値用乱数更新処理(ステップS24参照)、飾り図柄コマンド制御処理(ステップS29参照)、及び後述する割込回数カウント処理(ステップS322,S323参照)のみを実行するようにし、遊技制御処理のうちの他の処理をメイン処理において実行するようにしてもよい。この場合、遊技制御用マイクロコンピュータ560のCPU56は、メイン処理におけるステップS17からステップS19までのループ処理において、遊技制御処理のうち、ステップS22からステップS28(割込回数カウント処理を除く)、及びステップS31からステップS35(ステップS33を除く)の処理を実行する。また、遊技制御用マイクロコンピュータ560のCPU56は、タイマ割込処理において、割込回数(入賞検出信号を検出したあとにタイマ割込処理を実行した回数)をカウントした(ステップS322参照)あとに、タイマ割込処理の実行回数が所定回数(例えば、3回)に達したことを検出すると(ステップS323参照)、乱数回路503から乱数値を読み出す条件が成立した(可変表示の実行条件が成立した)と判断し、乱数値の読み出し条件が成立した旨を示す乱数読出フラグをセットする。また、遊技制御用マイクロコンピュータ560のCPU56は、メイン処理において、特別図柄プロセス処理(ステップS27参照)における始動口スイッチ通過処理(ステップS312参照)の実行の際に、乱数読出フラグがセットされているか否かを判断し、乱数読出フラグがセットされていると判断すると、乱数回路503の乱数値記憶回路531に出力制御信号SCを出力し(ステップS324参照)、乱数値記憶回路531から乱数値として記憶されているランダムRの値を読み出す(ステップS325参照)。そして、CPU56は、メイン処理において、特別図柄プロセス処理(ステップS27参照)における特別図柄通常処理(ステップS300参照)の実行の際に、読み出した乱数値にもとづいて大当りとするか否かを決定することになる。なお、この実施の形態において、ステップS21〜S35の処理(ステップS30およびS33を除く)が、遊技の進行を制御する遊技制御処理に相当する。
次に、タイマ割込処理における乱数回路初期値更新処理(ステップS22)について説明する。図37は、乱数回路初期値更新処理を示すフローチャートである。乱数回路初期値更新処理において、CPU56は、乱数回路503のカウンタ521が出力するカウント値Cを最終値まで更新した旨を示す通知信号の状態を確認する(ステップS220)。通知信号がオン状態になっていることを検出した場合には、CPU56は、初期値更新フラグがセットされているか否かを確認する(ステップS221)。すなわち、CPU56は、乱数回路設定処理において、所定の最終値までカウント値が更新されたときに初期値を更新する旨の設定がなされたか否か(ステップS157参照)を確認する。
初期値更新フラグがセットされている場合、CPU56は、乱数回路503のカウンタ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)、初期値更新処理を終了する。
なお、12ビット乱数回路503aおよび16ビット乱数回路503bの両方を設定した場合、ステップS225において、CPU56は、一方の乱数回路(例えば、12ビット乱数回路503a)から読み込んだ乱数を所定値としてIDナンバに加算して、カウンタ521に入力する初期値を求めてもよい。そして、CPU56は、他の一方(例えば、16ビット乱数回路503b)から読み込んだ乱数を、大当り判定用の乱数として用いてもよい。
なお、CPU56は、ステップS225においてカウンタ521に入力する初期値を更新する際、乱数回路503の比較器522の乱数最大値設定レジスタ535の値を確認し、IDナンバにもとづいて設定された値が乱数最大値以上であるか否かを判断する。そして、IDナンバにもとづいて設定された値が乱数最大値以上であると判断すると、CPU56は、カウンタ521に入力する初期値を所定値のまま更新しない(例えば、所定値「0」のまま更新しない)。そのようにすることによって、カウント値の初期値が乱数最大値以上の値に設定されてしまう事態を防止することができる。
なお、ステップS220において通知信号がオフ状態であると判断した場合、およびステップS221において初期値更新フラグがセットされていないと判断した場合、CPU56は、カウンタ521に入力する初期値を更新することなく、そのまま乱数回路初期値更新処理を終了し、ステップS23に移行する。
次に、タイマ割込処理における判定用乱数更新処理(ステップS23)について説明する。図38は、判定用乱数更新処理を示すフローチャートである。判定用乱数更新処理において、CPU56は、まず、ランダム2(大当り図柄決定用乱数)を生成するためのカウンタを1加算する(ステップS231)。そして、そのカウンタのカウント値が「10」よりも小さいかどうか判定する(ステップS232)。小さくなければ、すなわち、10に達していればその値を「0」に戻す(ステップS233)。さらに、CPU56は、ランダム2を生成するためのカウンタのカウント値が初期値バッファに設定されている値と一致したか否か確認する(ステップS234)。一致していたら、ランダム6を生成するためのカウント値を読み出して初期値決定用乱数を抽出し、その乱数値をランダム2を生成するためのカウンタに設定するとともに(ステップS235)、初期値バッファにも格納する(ステップS236)。
ステップS234〜S236の処理によって、ランダム2を生成するためのカウンタのカウント値は、1周するたびに(10カウントするたびに)、設定値(初期値)が変更され、ランダム2のランダム性がより向上する。
次いで、CPU56は、ランダム5(普通図柄当り判定用乱数)を生成するためのカウンタを1加算する(ステップS237)。そして、そのカウンタのカウント値が「14」に達しているかどうか判定する(ステップS238)。達していれば、その値を「3」に戻す(ステップS239)。すなわち、ランダム5を生成するためのカウンタのカウント値がとりうる範囲は、3〜13である。さらに、CPU56は、ランダム5を生成するためのカウンタのカウント値が初期値バッファに設定されている値と一致したか否か確認する(ステップS240)。一致していたら、ランダム7を生成するためのカウント値を読み出して初期値決定用乱数を抽出し、その乱数値をランダム5を生成するためのカウンタに設定するとともに(ステップS241)、初期値バッファにも格納する(ステップS242)。
ステップS240〜S242の処理によって、ランダム5を生成するためのカウンタのカウント値は、1周するたびに(3から13まで11カウントするたびに)、設定値(初期値)が変更され、ランダム5のランダム性がより向上する。
次いで、CPU56は、ランダム8(大当り種類判定用乱数)を生成するためのカウンタを1加算する(ステップS243)。そして、そのカウンタのカウント値が「17」に達しているかどうか判定する(ステップS244)。達していれば、その値を「0」に戻す(ステップS245)。さらに、CPU56は、ランダム8を生成するためのカウンタのカウント値が初期値バッファに設定されている値と一致したか否か確認する(ステップS246)。一致していたら、ランダム9を生成するためのカウント値を読み出して初期値決定用乱数を抽出し、その乱数値をランダム8を生成するためのカウンタに設定するとともに(ステップS247)、初期値バッファにも格納する(ステップS248)。
ステップS246〜S248の処理によって、ランダム8を生成するためのカウンタのカウント値は、1周するたびに(18カウントするたびに)、設定値(初期値)が変更され、ランダム8のランダム性がより向上する。
なお、判定用乱数として、確変回数決定用乱数やラウンド数決定用乱数を用いる場合には、判定用乱数更新処理において、CPU56は、確変回数決定用乱数やラウンド数決定用乱数の更新も行う。この場合、例えば、CPU56は、確変回数決定用乱数を生成するためのカウンタを1加算する。そして、CPU56は、そのカウンタのカウント値が所定値(例えば、「4」)に達しているかどうか判定し、達していれば、その値を「0」に戻す。さらに、CPU56は、確変回数決定用乱数やラウンド数決定用乱数を生成するためのカウンタのカウント値が初期値バッファに設定されている値と一致したか否か確認する。一致していたら、確変回数決定用乱数やラウンド数決定用乱数の初期値用乱数を生成するためのカウント値を読み出して、その乱数値を確変回数決定用乱数やラウンド数決定用乱数を生成するためのカウンタに設定するとともに、初期値バッファにも格納する。
次に、タイマ割込処理における初期値用乱数更新処理(ステップS24)について説明する。図39は、初期値決定用乱数更新処理を示すフローチャートである。初期値決定用乱数更新処理において、CPU56は、ランダム6(ランダム2用の初期値決定用乱数)を生成するためのカウンタを1加算する(ステップS261)。そして、そのカウンタのカウント値が「10」に達しているかどうか判定する(ステップS262)。達していれば、その値を「0」に戻す(ステップS263)。
また、CPU56は、ランダム7(ランダム5用の初期値決定用乱数)を生成するためのカウンタを1加算する(ステップS264)。そして、そのカウンタのカウント値が「14」に達しているかどうか判定する(ステップS265)。達していれば、その値を「3」に戻す(ステップS266)。すなわち、ランダム7を生成するためのカウンタのカウント値がとりうる範囲は、3〜13である。
また、CPU56は、ランダム9(ランダム8用の初期値決定用乱数)を生成するためのカウンタを1加算する(ステップS267)。そして、そのカウンタのカウント値が「17」に達しているかどうか判定する(ステップS268)。達していれば、その値を「0」に戻す(ステップS269)。
なお、判定用乱数として、確変回数決定用乱数やラウンド数決定用乱数を用いる場合には、確変回数決定用乱数やラウンド数決定用乱数の初期値を決定するための初期値決定用乱数を用いてもよい。そして、ステップS24の初期値用乱数更新処理において、確変回数決定用乱数やラウンド数決定用乱数の初期値決定用乱数の更新処理を行ってもよい。
次に、タイマ割込処理におけるカウント値順列変更処理(ステップS26)について説明する。図40は、カウント値順列変更処理を示すフローチャートである。CPU56は、カウント値順列変更プログラム554に従って処理を実行することによって、カウント値順列変更処理を行う。カウント値順列変更処理において、CPU56は、乱数回路503のカウンタ521が出力するカウント値Cを最終値まで更新した旨を示す通知信号の状態を確認する(ステップS281)。通知信号がオン状態になっていることを検出した場合には、CPU56は、カウント値順列変更フラグがセットされているか否かを確認する(ステップS282)。すなわち、CPU56は、乱数回路設定処理において、所定の最終値までカウント値が更新されたときにカウンタ521が更新するカウント値の順列を変更する旨の設定がなされたか否か(ステップS158参照)を確認する。
カウント値順列変更フラグがセットされている場合、CPU56は、乱数回路503のカウンタ521が所定の最終値までカウント値を更新したときに、カウンタ521が更新するカウント値の順列を変更すると判断する。そして、CPU56は、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」を書き込む(ステップS283)。すなわち、CPU56は、カウント値順列変更データ「01h」を書き込むことによって、乱数値記憶回路531に入力されるカウント値Cの順列をカウント値順列変更回路523に変更させる。
以上のように、カウント値順列変更処理において、乱数を所定の最終値まで更新したときに、カウンタ521が更新するカウント値の順列を変更するので、乱数回路503が生成する乱数のランダム性をより向上させることができる。
次に、メイン処理における特別図柄プロセス処理(ステップS27)を説明する。図41は、遊技制御用マイクロコンピュータ560のCPU56が実行する特別図柄プロセス処理のプログラムの一例を示すフローチャートである。CPU56は、特別図柄プロセス処理を行う際に、変動短縮タイマ減算処理(ステップS310)を行い、遊技盤6に設けられている始動入賞口14に遊技球が入賞したことを検出するための始動口スイッチ14aがオンしていたら、すなわち遊技球が始動入賞口14に入賞する始動入賞が発生していたら(ステップS311)、始動口スイッチ通過処理(ステップS312)を行った後に、内部状態に応じて、ステップS300〜S308のうちのいずれかの処理を行う。変動短縮タイマは、例えば始動入賞記憶数が所定数以上あるとき等に特別図柄の変動時間が短縮される場合に、変動時間を設定するためのタイマである。なお、時短状態のときは、変動短縮タイマ減算処理によって変動時間は設定されることはない。
特別図柄通常処理(ステップS300):特別図柄の可変表示を開始できる状態(例えば、特別図柄表示器8において図柄の変動がなされておらず、特別図柄表示器8における前回の図柄変動が終了してから所定期間が経過しており、かつ、大当り遊技中でもない状態)になるのを待つ。特別図柄の可変表示が開始できる状態になると、特別図柄についての始動入賞記憶数を確認する。始動入賞記憶数が0でなければ、特図保留メモリ570に記憶されている乱数回路503が発生したランダムRにもとづいて、特別図柄の可変表示の結果を大当りとするか否か決定する。そして、内部状態(特別図柄プロセスフラグ)をステップS301に移行するように更新する。
特別図柄停止図柄設定処理(ステップS301):特別図柄の可変表示後の停止図柄を決定する。そして、内部状態(特別図柄プロセスフラグ)をステップS302に移行するように更新する。
変動パターン設定処理(ステップS302):変動パターンを決定し、その変動パターンと表示結果とにもとづいて決定される変動時間(可変表示時間:可変表示を開始してから表示結果を導出表示(停止表示)するまでの時間)を特別図柄の可変表示の変動時間とすることに決定する。また、決定した特別図柄の変動時間を計測する変動時間タイマをスタートさせる。そして、内部状態(特別図柄プロセスフラグ)をステップS303に移行するように更新する。
特別図柄変動処理(ステップS303):所定時間(ステップS302の変動時間タイマで示された時間)が経過すると、内部状態(特別図柄プロセスフラグ)をステップS304に移行するように更新する。
特別図柄停止処理(ステップS304):音・ランプ制御基板35に対して、飾り図柄の停止を指示するための飾り図柄停止コマンドを送信する。また、特別図柄表示器8における特別図柄を停止させる。そして、特別図柄の停止図柄が大当り図柄である場合には、内部状態(特別図柄プロセスフラグ)をステップS305に移行するように更新する。そうでない場合には、内部状態をステップS300に移行するように更新する。なお、飾り図柄停止コマンドを送信しない構成としてもよい。この場合、表示制御基板80は、主基板31からの変動パターンコマンドと表示結果指定コマンドとにもとづいて音・ランプ制御基板35によって選択され送信された変動パターンを示す表示制御コマンドに応じて変動時間タイマに変動時間を設定するとともに、その変動時間タイマを更新していくことで飾り図柄の変動時間を独自に監視し、その変動時間が経過したと判定したときに飾り図柄を停止する処理を行うようにすればよい。
大入賞口開放前処理(ステップS305):大入賞口を開放する制御を開始する。具体的には、カウンタ(例えば大入賞口に入った遊技球数をカウントするカウンタ)やフラグ(入賞口への入賞を検出する際に用いられるフラグ)を初期化するとともに、ソレノイド21を駆動して大入賞口を開放する。また、プロセスタイマによって大入賞口開放中処理の実行時間を設定し、大当り中フラグをセットする。そして、内部状態(特別図柄プロセスフラグ)をステップS306に移行するように更新する。なお、大当り遊技中の処理の一部については、ラウンド数が2Rの場合と15Rの場合とで異なる処理(例えば、1ラウンドの時間やラウンド継続回数が異なる。また例えば、異なるコマンド(ファンファーレコマンド)を送信する等。)が実行される。また、ソレノイド21を駆動して大入賞口を開放するときに、大入賞口開放中表示コマンドを送信する。
大入賞口開放中処理(ステップS306):大入賞口ラウンド表示の演出制御コマンドを音・ランプ制御基板35に送出する制御や大入賞口の閉成条件(例えば、大入賞口に所定個数(例えば10個)の遊技球が入賞したこと)の成立を確認する処理等を行う。大入賞口の閉成条件が成立したら、大入賞口開放後表示コマンドを送信するとともに、内部状態をステップS307に移行するように更新する。
特定領域有効時間処理(ステップS307):V入賞スイッチ22の通過の有無を監視して、大当り遊技状態継続条件の成立を確認する処理を行う。大当り遊技状態継続の条件が成立し、かつ、まだ残りラウンドがある場合には、内部状態をステップS305に移行するように更新する。また、所定の有効時間内に大当り遊技状態継続条件が成立しなかった場合、または、全てのラウンドを終えた場合には、内部状態をステップS308に移行するように更新する。
大当り終了処理(ステップS308):大当り遊技状態が終了したことを遊技者に報知する表示制御を演出制御手段に行わせるための制御を行う。また、エンディングコマンドを送信する。そして、内部状態をステップS300に移行するように更新する。
なお、2R確変大当りにおける大当り遊技演出(ファンファーレ、ラウンド中、ラウンド間インターバル、エンディングなどの各種の演出を含む)では、15R大当りにおける大当り遊技演出と異なり、大当りとなったことは報知されない。
図42は、始動口スイッチ通過処理(ステップS312)を示すフローチャートである。始動口スイッチ通過処理において、遊技制御用マイクロコンピュータ560のCPU56は、始動入賞カウンタが示す始動入賞記憶数(または特図保留メモリ570が記憶している始動入賞記憶数)が最大値である4に達しているかどうか確認する(ステップS321)。始動入賞記憶数が4に達していなければ、CPU56は、タイマ割込処理を実行した回数を示す割込実行回数カウンタの値を1加算する(ステップS322)。すなわち、CPU56は、タイマ割込処理を実行した回数をカウントする処理を実行する。この実施の形態では、CPU56は、ステップS322を実行することによって、タイマ割込処理を実行するごとに、タイマ割込処理を実行した回数を示す割込実行回数カウンタをカウントアップする。割込実行回数カウンタの値を1加算すると、CPU56は、割込実行回数カウンタに示されるタイマ割込処理の実行回数が所定回数(例えば、3回)に達しているか否かを確認する(ステップS323)。そして、CPU56は、遊技球が始動入賞口14に入賞したあと、割込実行回数カウンタが所定回数に達しているか否かを確認する。なお、遊技球が始動入賞口14に入賞したことを検出すると(すなわち、ステップS323でYESと判定すると)、CPU56は、後述するように割込実行回数カウンタをリセットする(ステップS328参照)。
ステップS323において所定回数としてあらかじめ設定される値は、以下のように定められる。前述のように、乱数回路503のタイマ回路534は、始動口スイッチ14aから入賞検出信号SSが継続して入力されている時間を計測し、計測時間が所定期間になったことを検出すると、乱数値取り込みデータ「01h」を書き込む。この実施の形態では、タイマ回路534が計測する所定期間(例えば、3ms)が、所定回数のタイマ割込処理が実行される期間(例えば、2msごとのタイマ割込処理を3回実行する場合は6ms)よりも短くなるように、ステップS323において用いる所定回数(例えば、3回)が設定される。そのように設定することによって、乱数を読み出してから、乱数値記憶回路531に記憶される乱数の値が更新される前に再び乱数を読み出してしまうことを防止することができ、前回乱数値記憶回路531から読み出した乱数と同じ値の乱数を再び読み出してしまうことを防止することができる。なお、タイマ回路534が入賞検出信号SSの入力時間を計測するのでなく、CPU56が入賞検出信号SSの入力時間を計測し、乱数値取り込みデータ「01h」を乱数値取込レジスタ539に書き込むようにしてもよい。
タイマ割込処理の実行回数が所定回数に達している場合、CPU56は、特定した乱数回路503の乱数値記憶回路531に出力制御信号SCを出力し、乱数値記憶回路531を読出可能(イネイブル)状態に制御する(ステップS324)。
CPU56は、乱数回路503の乱数値記憶回路531から、乱数値として記憶されているランダムRの値を読み出す(ステップS325)。また、CPU56は、読み出したランダムRの値を、始動入賞記憶数の値に対応した保存領域(特別図柄判定用バッファ(特図保留メモリ570))に格納する(ステップS326)。また、CPU56は、ランダムRの値をバッファ領域に格納すると、乱数値記憶回路531への出力制御信号SCの出力を停止し、乱数値記憶回路531を読出不能(ディセイブル)状態に制御する(ステップS327)。また、CPU56は、割込実行回数カウンタをリセットする(ステップS328)。そして、CPU56は、所定のバッファ領域に格納したランダムRの値を特図保留メモリ570の空エントリの先頭にセットし(ステップS329)、始動入賞カウンタのカウント数を1加算することで始動入賞記憶数を1増やす(ステップS330)。
また、CPU56は、判定用乱数や表示用乱数などの各乱数(ソフトウェア乱数)の値を抽出し、それらを始動入賞記憶数の値に対応した保存領域(特別図柄判定用バッファ)に格納する(ステップS331)。なお、乱数を抽出するとは、乱数を生成させるためのカウンタからカウント値を読み出して、読み出したカウント値を乱数値とすることである。ステップS331では、図36に示された乱数のうち、ランダム2〜ランダム4,ランダム8,ランダム10,ランダム11が抽出される。
そして、CPU56は、変動時間を短縮するか否かの判定を行うための変動時間短縮判定時間を変動短縮タイマにセットする(ステップS332)。なお、上述したように、ここでセットされた変動短縮タイマはステップS310にて減算される。
ステップS321において始動入賞記憶数が最大値である4に達している場合、およびステップS323においてタイマ割込処理の実行回数が所定回数に達してない場合、そのまま始動口スイッチ通過処理を終了する。
以上のように、始動口スイッチ通過処理において、乱数値記憶回路531からランダムRを読み出すにあたって、タイマ割込処理が所定回数実行されたこと(すなわち、タイマ割込処理が所定回数実行される間継続して入賞検出信号SSが入力されたこと)を条件に、乱数値記憶回路531から乱数を読み出す。そのため、乱数を読み出してから、乱数値記憶回路531に記憶される乱数の値が更新される前に再び乱数を読み出してしまうことを防止することができる。また、前回乱数値記憶回路531から読み出した乱数と同じ値の乱数を再び読み出してしまうことを防止することができる。
図43は、音・ランプ制御基板35に送出される演出制御コマンドの内容の一例を示す説明図である。この実施の形態では、演出制御コマンドは2バイト構成である。1バイト目はMODE(コマンドの分類)を表し、2バイト目はEXT(コマンドの種類)を表す。MODEデータの先頭ビット(ビット7)は必ず「1」とされ、EXTデータの先頭ビット(ビット7)は必ず「0」とされる。なお、そのようなコマンド形態は一例であって他のコマンド形態を用いてもよい。例えば、1バイトや3バイト以上で構成される制御コマンドを用いてもよい。
図43に示す例において、コマンド8000(H)〜800C(H)は、特別図柄の可変表示に対応してサブ基板が制御する電気部品(スピーカ27、各種のランプ、可変表示装置9)において実行される演出の変動パターンを指定する演出制御コマンド(変動パターンコマンド)である。なお、変動パターンを指定する演出制御コマンドは、変動開始を指定するためのコマンドでもある。なお、本例では、変動パターンコマンドによって、大当り演出の開始前に再抽選演出を実行するか否かをも指定する。
コマンド81XX(H)は、可変表示装置9の表示結果を指定する演出制御コマンド(表示結果指定コマンド)である。XX(H)によって、はずれ、通常大当り、15R確変大当り、2R確変大当り、時短大当りなどの各種の表示結果を指定する。なお、本例では、表示結果指定コマンドによって、大当り演出の終了後に再抽選演出を実行するか否かをも指定する。なお、大当り演出の終了後に再抽選演出を実行する場合は、表示結果指定コマンドか示す表示結果と異なる表示結果が飾り図柄の変動表示結果として可変表示装置9に表示されることがあるが、その後の再抽選演出によって表示結果指定コマンドか示す表示結果が表示されることになる。
コマンドA000(H)は、可変表示装置9における飾り図柄の可変表示(変動)の停止を指定する演出制御コマンド(飾り図柄停止指定コマンド)である。
コマンドBXXX(H)は、大当り遊技開始から大当り遊技終了までの間に送出される演出制御コマンドである。そして、コマンドD000(H)〜EXXX(H)は、飾り図柄の変動および大当り遊技に関わらない可変表示装置9の表示状態に関する演出制御コマンドである。
コマンドB000(H)は、15ラウンドの大当り遊技が開始されることを指定する演出制御コマンド(ファンファーレ1コマンド)である。コマンドB001(H)は、2ラウンドの大当り遊技が開始されることを指定する演出制御コマンド(ファンファーレ2コマンド)である。
コマンドB1XX(H)は、大当り遊技中のラウンド中の表示を指定する演出制御コマンド(大入賞口開放中表示コマンド)である。なお、「XX」に表示するラウンド数が設定される。コマンドB2XX(H)は、各ラウンド中の大入賞口への入賞球数(カウントスイッチ23の入賞検出数)を指定する演出制御コマンド(カウント数指定コマンド)である。なお、「XX」に入賞球数(カウント数)が設定される。コマンドB3XX(H)は、大当り遊技中のラウンド後の表示(ラウンド間のインターバルの表示)を指定する演出制御コマンド(大入賞口開放後表示コマンド)である。
コマンドB400(H)は、大当り遊技の終了後のエンディング演出(大当り終了演出)において大当り終了を表示することを指定する演出制御コマンド(エンディングコマンド)である。
コマンドD000(H)は、客待ちデモンストレーションを指定する演出制御コマンドである。また、コマンドE400(H)は、通常大当り遊技演出が終了したことを示す演出制御コマンド(通常大当り終了指定コマンド)であり、コマンドE401(H)は、2R確変A大当り遊技演出が終了したことを示す演出制御コマンド(2R確変A大当り終了指定コマンド)であり、コマンドE402(H)は、2R確変B大当り遊技演出が終了したことを示す演出制御コマンド(2R確変B大当り終了指定コマンド)であり、コマンドE403(H)は、15R確変大当り遊技演出が終了したことを示す演出制御コマンド(15R確変大当り終了指定コマンド)であり、コマンドE404(H)は、時短大当り遊技演出が終了したことを示す演出制御コマンド(時短大当り終了指定コマンド)である。上記の大当り終了指定コマンド(コマンドE400(H)〜コマンドE404(H))にもとづいて、遊技状態の変化に応じた可変表示装置9の表示状態の変更(例えば背景や背景色の変更)、ランプの点灯態様の変更、スピーカ27からの音出力態様の変更などが実行される。
なお、時短状態とは、特別図柄表示器8(および可変表示装置9)における特別図柄(および飾り図柄)の可変表示時間(変動時間)を通常遊技状態(あるいは通常遊技状態および確変状態)よりも短縮するように制御された遊技状態をいう。この実施の形態では、時短状態のときには、同時に高ベース状態となり、普通図柄表示器10における普通図柄の可変表示時間(変動時間)が通常遊技状態よりも短縮され、さらに、可変入賞装置15において、開放時間と開放回数とのうちの一方または双方が遊技者にとって有利な状態になる。
音・ランプ制御基板35に搭載されている音・ランプ制御用マイクロコンピュータ350は、主基板31に搭載されている遊技制御用マイクロコンピュータ560から上述した演出制御コマンドを受信すると図43に示された内容に応じてスピーカ27からの音出力状態や各種のランプの表示状態(ランプの表示状態というときは、「表示状態」は点灯状態や点滅状態を意味する)を変更するとともに、受信した演出制御コマンドと同一の表示制御コマンド、あるいは受信した演出制御コマンドにもとづいて選択した表示制御コマンドを、表示制御用マイクロコンピュータ100に対して送信する。
具体的には、例えば再抽選演出の実行を指定する変動パターンコマンドを受信した場合には、音・ランプ制御用マイクロコンピュータ350は、後述するステップS509の決定に応じて、可変表示装置9での再抽選演出に同期したスピーカ27による音出力制御や各種のランプによる点灯・点滅制御を行う。
そして、表示制御用マイクロコンピュータ100は、受信した表示制御コマンドの内容に応じて可変表示装置9の表示状態(可変表示装置9の表示状態というときは、「表示状態」は、図柄、キャラクタ、背景などの表示画面上に表示されている文字や図形等の表示状態を意味する)を変更する。なお、図43に示された演出制御コマンド以外の演出制御コマンドも主基板31から音・ランプ制御基板35に送信される。例えば、可変表示装置9に始動入賞記憶数を表示する場合は始動入賞記憶数を指定する演出制御コマンドなども主基板31から音・ランプ制御基板35に送信される。
図44は、この実施の形態で用いられる変動パターンの一例を示す説明図である。図44において、「EXT」とは、2バイト構成の演出制御コマンドにおける2バイト目のEXTデータを示す。
この例では、特別図柄の各変動パターンは、通常変動とするか、リーチとなる場合(リーチ後に大当りとなる場合とはずれとなる場合を含む)におけるリーチ態様、予告演出をするか否か、予告演出を実行する場合の予告演出態様、大当りとする場合に大当り遊技の開始前に大当たり図柄の再抽選演出を実行するか否かなど、各種の演出態様の違いに応じて複数種類用意されている。なお、本例では、リーチ演出、予告演出および再抽選演出は、表示制御用マイクロコンピュータ100が表示制御する可変表示装置9において実行される。
ここで、「通常変動」は、リーチ態様を伴わない変動パターンである。「ノーマルリーチ」は、単純なリーチ態様を伴う変動パターンである。「スーパーリーチA」は、「ノーマルリーチ」とは異なるリーチ態様を持つ変動パターンである。また、リーチ態様が異なるとは、リーチ変動時間において異なった態様(速度や回転方向等)の変動が行われたりキャラクタ等が現れたりすることをいう。例えば、「ノーマル」では単に1種類の変動態様によってリーチ態様が実現されるのに対して、「スーパーリーチA」では、変動速度や変動方向が異なる複数の変動態様を含むリーチ態様が実現される。
また、「スーパーリーチB」は、「ノーマルリーチ」および「スーパーリーチA」とは異なるリーチ態様を持つ変動パターンである。そして、「スーパーリーチC」は、「ノーマルリーチ」、「スーパーリーチA」および「スーパーリーチB」とは異なるリーチ態様を持つ変動パターンである。なお、「ノーマルリーチ」、「スーパーリーチA」、「スーパーリーチB」および「スーパーリーチC」では、大当りとなる場合と大当りとならない場合とがある。
また、「予告演出」は、大当りとなるまたはその可能性があることを事前(可変表示装置9において飾り図柄の停止図柄が導出表示される前に)に遊技者に報知するための演出をいう。例えば、変動中に異なった態様(速度や回転方向等)の変動を行ったりキャラクタ等を登場させたりすることにより大当りになる可能性があることを遊技者に報知する。なお、この実施の形態では、遊技制御用マイクロコンピュータ560から音・ランプ制御用マイクロコンピュータ350に送信される演出制御コマンド、および音・ランプ制御用マイクロコンピュータ350から表示制御用マイクロコンピュータ100に送信される表示制御コマンドにもとづいて、音・ランプ制御用マイクロコンピュータ350および演出制御用マイクロコンピュータ100が所定のタイミングで予告演出を実行するように構成されているが、このような構成に限られず、例えば、音・ランプ制御用マイクロコンピュータ350が、予告判定用乱数にもとづいて予告演出を実行するか否か判定し、予告演出を実行すると判定したときに所定のタイミングで予告演出を実行するとともにその旨を示す表示制御コマンド(予告演出の演出内容をも指定するようにしてもよい)を表示制御用マイクロコンピュータ100に送信し、表示制御用マイクロコンピュータ100が、予告演出の実行指示を示す表示制御コマンドの受信に応じて所定のタイミングで予告演出を実行するように構成されていてもよい。
本例では、図44に示すように、「予告演出」として、演出態様の異なる「予告演出A」と「予告演出B」との2種類が用意されている。
また、「再抽選演出」とは、可変表示装置9に大当り図柄(非確変図柄または確変図柄)が導出表示されることが事前に決定されている場合において、可変表示装置9において左中右の飾り図柄を同一の非確変図柄(非確変図柄が一般的であるが、はずれ図柄であってもよい)が揃った状態で仮停止表示し、その揃った状態の非確変図柄を再変動させてから大当り図柄(非確変図柄または確変図柄)を導出表示する演出をいう。この実施の形態では、再抽選演出は、大当り遊技の開始前と終了後の2回実行される場合がある。図44に示した変動パターンに含まれる「再抽選演出」は、大当り遊技の開始前に飾り図柄の変動の一部として実行される再抽選演出のことをいう。なお、「再抽選演出」は、仮停止表示した図柄を再変動させる演出に限らず、例えばルーレットゲームや2種類のキャラクタが戦闘する様子などを表示することによる演出などであってもよい。また、本例では大当り遊技の終了後に「再抽選演出」を行う場合があるが、大当り遊技の実行中(例えば、ファンファーレ演出中、ラウンド中、ラウンド間のインターバル中など)に行うようにしてもよい。
図45は、この実施の形態で用いられる表示結果指定コマンドの例を示す説明図である。図45において、「EXT」とは、2バイト構成の演出制御コマンドにおける2バイト目のEXTデータを示す。
この例では、特別図柄の表示結果は、リーチにもならないはずれとするか、リーチ後にはずれとする場合に何コマずれ(非最終停止図柄に対する最終停止図柄のずれ数を意味する。具体的には、「7,8,7」であれば+1コマずれとなり、「7,5,7」であれば−2コマずれとなる。)のリーチはずれとするか、通常大当りとするか、15R確変大当りとするか、2R確変大当りAとするか、2R確変大当りBとするか、時短大当りとするか、通常大当りまたは15R確変大当りにおける大当り遊技演出の終了後に再抽選演出を行うか否かなど、各種の表示結果の違いに応じて複数種類用意されている。なお、本例では、リーチとなる表示結果は、表示制御用マイクロコンピュータ100が表示制御する可変表示装置9において表示される。
図46は、この実施の形態で用いられる変動時間決定用テーブルの一例を示す説明図である。図46において、「変動時間」は、特別図柄の変動時間(識別情報の可変表示期間)を示す。
図46に示すように、変動時間決定用テーブルには、各種の変動パターンと各種の表示結果との組毎に、変動時間が対応付けされて設定されている。本例では、決定された変動パターンと決定された表示結果とにもとづいて、図46に示す変動時間決定用テーブルに従って、特別図柄の変動時間が決定される。なお、図46に示すように、本例では、リーチ表示結果となる場合には、特別図柄の変動時間は、変動パターンによって特定される基本時間に、図柄の偏差に応じて特定される時間を加算(負の値を加算する場合を含む)した時間となっている。
なお、図46には表れていないが、各リーチの種類毎に、通常大当り、15R確変大当り、2R確変大当りA、2R確変大当りB、及び時短大当りがそれぞれ対応付けされた「表示結果」と「変動パターン」との組があるものとする。本例では、「変動パターン」(例えばリーチの種類)が同じであっても、「表示結果」が15R大当り(通常大当り、15R確変大当り、時短大当り)であるか2R大当り(2R確変大当りA、2R確変大当りB)であるかによって、対応する変動時間が異なっているものとする。同様に、後述する図65のテーブルについても、変動パターンコマンドが同一であっても、表示結果指定コマンドが示す表示結果の違いによって、対応する変動時間が異なっているものとする。
次に、特別図柄プロセス処理における特別図柄通常処理(ステップS300)について説明する。図47および図48は、特別図柄通常処理を示すフローチャートである。特別図柄通常処理において、遊技制御用マイクロコンピュータ560は、特別図柄の変動を開始することができる状態(例えば特別図柄プロセスフラグの値がステップS300を示す値となっている場合)には(ステップS341)、始動入賞記憶数(保留記憶数)の値を確認する(ステップS342)。具体的には、始動入賞記憶カウンタのカウント値を確認する。なお、特別図柄プロセスフラグの値がステップS300を示す値となっている場合とは、特別図柄表示器8において図柄の変動がなされておらず、かつ、大当り遊技中でもない場合である。また、ステップS341で変動開始不可能である場合や、ステップS342で保留記憶数が0である場合には、遊技制御用マイクロコンピュータ560は、そのまま特別図柄通常処理を終了する。
保留記憶数が0でなければ、保留記憶数=1に対応する保存領域に格納されている各乱数値(ランダムRや各判定用乱数、表示用乱数)を読み出してRAM55の乱数格納バッファに格納するとともに(ステップS343)、保留記憶数の値を1減らし(始動入賞記憶カウンタの値を1減らし)、かつ、各保存領域の内容をシフトする(ステップS344)。すなわち、保留記憶数=n(n=2,3,4)に対応する保存領域に格納されている各乱数値を、保留記憶数=n−1に対応する保存領域に格納する。よって、各保留記憶数に対応するそれぞれの保存領域に格納されている各乱数値が抽出された順番は、常に、保留記憶数=1,2,3,4の順番と一致するようになっている。すなわち、この例では、遊技制御用マイクロコンピュータ560は、可変表示の開始条件が成立する毎に、各保存領域の内容をシフトする処理を実行する。
また、遊技制御用マイクロコンピュータ560は、確変フラグがセットされているか否かを確認する(ステップS345)。すなわち、遊技制御用マイクロコンピュータ560は、遊技状態が確変状態に制御されているか否かを確認する。
確変フラグがセットされていない場合、遊技制御用マイクロコンピュータ560は、遊技状態が確変状態でないと判断し、特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定するために用いるテーブルとして、通常時大当り判定テーブル571a(図28(A)参照)を設定する(ステップS346)。また、確変フラグがセットされている場合、遊技制御用マイクロコンピュータ560は、遊技状態が確変状態であると判断し、特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定するために用いるテーブルとして、確変時大当り判定テーブル571b(図28(B)参照)を設定する(ステップS347)。
遊技制御用マイクロコンピュータ560は、乱数格納バッファに格納したランダムRの値にもとづいて、特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定する(ステップS348)。この場合、遊技制御用マイクロコンピュータ560は、ステップS346で設定した通常時大当り判定テーブル571aまたはステップS347で設定した確変時大当り判定テーブル571bを用いて、大当りとするか否かを判定する。また、特別図柄表示装置8の表示結果を大当り図柄とすると決定したときは、遊技制御用マイクロコンピュータ560は、大当り遊技状態とすることを示す大当りフラグをオン状態にする(ステップS349)。
大当りフラグをオン状態にすると、遊技制御用マイクロコンピュータ560は、大当りの種類を決定するための大当り種類判定用乱数を乱数格納バッファから読み出して、大当り種類判定用テーブルに設定されている大当り種類判定値と比較することで、大当りの種類を決定する(ステップS350)。
図49は、大当り種類判定用テーブルの例を示す説明図である。大当り種類判定用テーブルは、主基板31が備えるROM54に格納されている。図49に示すように、本例では、大当りの種類として、15回のラウンド数の大当り遊技が行われたあと通常状態が維持あるいは通常状態に移行される通常大当りと、15回のラウンド数の大当り遊技が行われたあと確変状態に移行する15R確変大当りと、15R確変大当りと比較して1回あたりのラウンド時間が短い2回のラウンド数の大当り遊技が行われたあと確変状態に移行する2R確変大当りAおよび2R確変大当りBと、15回のラウンド数の大当り遊技が行われたあと時短状態に移行する時短大当りとがある。「2R確変大当りA」は、大当り遊技終了後に、遊技状態が常に高確率状態(確変状態)かつ高ベース状態となる大当りである。「2R確変大当りB」は、大当り遊技終了後に、遊技状態が、高確率状態(確変状態)かつ高ベース状態となる場合と、高確率状態(確変状態)かつ低ベース状態となる場合とがある大当りである。なお、判定用乱数としての確変決定用乱数を用いて確変状態とするか否かを決定したあと、判定用乱数としてのラウンド数決定用乱数を用いてラウンド数の決定を行うようにしてもよい。また、ラウンド数は、2回や15回に限らず、例えば5回、10回などの他の回数であってもよい。
次いで遊技制御用マイクロコンピュータ560は、ステップS350にて通常大当りと決定された場合にはステップS3531に移行し(ステップS351)、ステップS350にて15R確変大当りと決定された場合にはその旨を示す15R確変決定フラグをセットしたあとステップS3531に移行する(ステップS352,S353)。
ステップS350にて通常大当りまたは15R確変大当りと決定された場合には、遊技制御用マイクロコンピュータ560は、乱数格納バッファから大当り前再抽選決定用乱数を読み出し、読み出した大当り前再抽選決定用乱数の値に従って、大当り遊技の開始前に再抽選演出を実行するか否かを決定する(ステップS3531)。そして、遊技制御用マイクロコンピュータ560は、大当り遊技の開始前に再抽選演出を実行すると決定した場合には(ステップS3532のY)、大当り開始前再抽選決定フラグをセットする(ステップS3533)。また、遊技制御用マイクロコンピュータ560は、乱数格納バッファから大当り後再抽選決定用乱数を読み出し、読み出した大当り後再抽選決定用乱数の値に従って、大当り遊技の終了後に再抽選演出を実行するか否かを決定する(ステップS3534)。そして、遊技制御用マイクロコンピュータ560は、大当り遊技の終了後に再抽選演出を実行すると決定した場合には(ステップS3535のY)、大当り終了後再抽選決定フラグをセットする(ステップS3536)。
また、遊技制御用マイクロコンピュータ560は、ステップS350にて2R確変大当りAと決定された場合にはその旨を示す2R確変A決定フラグをセットしたあとステップS360に移行し(ステップS354,S355)、ステップS350にて2R確変大当りBと決定された場合にはその旨を示す2R確変B決定フラグをセットしたあとステップS360に移行し(ステップS356,S357)、ステップS350にて時短大当りと決定された場合にはその旨を示す時短決定フラグをセットしたあとステップS360に移行する(ステップS358,S359)。そして、特別図柄プロセスフラグの値を特別図柄停止図柄設定処理に対応した値に更新する(ステップS360)。
以上のように、ステップS348においてランダムRにもとづいて大当りとすると判定すると、CPU56は、大当り種類決定用乱数を読み出して、確変とするか否か、確変とする場合の大当り遊技におけるラウンド数を何回にするか、時短とするか否かを判定する(ステップS350参照)。例えば、大当り判定と大当り種類判定とをともにソフトウェア乱数を用いて行う場合、無線信号などを用いた取り込み信号を遊技機に対して発生させたり入力したりことによって(例えば、不正信号によってソフトウェア乱数の初期値を狙うことによって)、大当りと確変状態や時短状態への移行条件とを不正に成立させられてしまう可能性がある。この実施の形態では、乱数回路503が発生させた乱数を用いて大当りとするか否かの判定を行うので、大当りの判定と大当り種類(確変や時短など)の判定を両方ともソフトウェア乱数を用いて行う場合と比較して、大当りと確変状態や時短状態への移行条件とを不正に成立させられてしまう可能性を低減できる。また、大当りと判定したときのみ大当り種類決定用乱数を読み出して確変とするか否か等を判定するので、大当りと判定された場合でなければ、不正信号を発生させたり入力したりする行為を行っても意味がないので、大当り種類決定用乱数の初期値を不正信号により狙われたときに生じる被害が少なくて済む。
図50は、特別図柄プロセス処理における特別図柄停止図柄設定処理(ステップS301)を示すフローチャートである。特別図柄停止図柄設定処理において、遊技制御用マイクロコンピュータ560は、まず、大当りフラグがセットされているか否か確認する(ステップS361)。
大当りフラグがセットされていない場合は、遊技制御用マイクロコンピュータ560は、特別図柄表示器8に表示する特別図柄の可変表示結果をあらかじめ定められたはずれ図柄(例えば、図柄「−」)とすることに決定する(ステップS365)。また、はずれとする場合にリーチとするか否かを決定するためのリーチ判定用乱数を乱数格納バッファから読み出して、飾り図柄をリーチ図柄とするか否か決定する(ステップS366)。そして、飾り図柄をリーチ図柄とすることに決定した場合には、リーチフラグをセットするとともに、リーチとなったあとの表示結果を、リーチとなったときの停止図柄(例えば左右図柄)と最終停止図柄(例えば中図柄)とが何コマ分ずれたものとするかを決定する(ステップS367)。ステップS367では、例えば乱数を用いて、左中右の飾り図柄がそれぞれ10図柄ある場合には、−4コマ〜−1コマあるいは+1コマ〜+5コマのいずれのずれ数であるかが決定される。その後、遊技制御用マイクロコンピュータ560は、特別図柄プロセスフラグの値を変動パターン設定処理(ステップS302)に対応した値に更新する(ステップS368)。
なお、本例ではステップS367にてずれ数を決定するようにしているが、ステップS367にてリーチとなったあとはずれとなる飾り図柄の表示結果を決定するようにしてもよい。また、リーチとなったあとはずれとなる飾り図柄だけでなく、大当りとなる場合やリーチにもならないはずれとなる場合を含む全ての場合に飾り図柄の表示結果を決定するようにしてもよい。この場合、例えば、飾り図柄の表示結果を示す演出制御コマンドを送信するようにすればよい。例えば、飾り図柄が左中右の3図柄である場合には、左図柄の表示結果を示す演出制御コマンドと、中図柄の表示結果を示す演出制御コマンドと、右図柄の表示結果を示す演出制御コマンドとを送信するようにすればよい。
大当りフラグがセットされている場合には、遊技制御用マイクロコンピュータ560は、2R確変A決定フラグまたは2R確変B決定フラグがセットされていれば(ステップS362)、特別図柄表示器8に表示する特別図柄と、可変表示装置9に表示する飾り図柄とを、あらかじめ定められている2R確変大当り図柄とすることに決定する。例えば、2R確変大当り図柄は、可変表示装置9に表示する飾り図柄については「1,3,5」とされ、特別図柄表示器8に表示する特別図柄については「E」または「F」とされる。なお、2R確変A決定フラグがセットされていたときと、2R確変B決定フラグがセットされていたときとで、2R確変大当り図柄を異ならせるようにしてもよい。具体的には、2R確変A決定フラグがセットされていたときは特別図柄表示器8に表示する特別図柄を「E」とすることとし、2R確変B決定フラグがセットされていたときは特別図柄表示器8に表示する特別図柄を「F」とすることとすればよい。また、飾り図柄における2R確変大当り図柄は、1種類でなく、2種類以上とされていてもよい。
2R確変A決定フラグおよび2R確変B決定フラグがセットされていなければ(ステップS362)、遊技制御用マイクロコンピュータ560は、大当り種類が通常大当りであるか、15R確変大当りであるか、時短大当りであるかと、乱数格納バッファから読み出した大当り図柄決定用乱数の値とに従って、特別図柄表示器8に表示する特別図柄と、可変表示装置9に表示する飾り図柄とについて、大当り図柄を決定する。本例では、特別図柄表示器8に表示する特別図柄についても、可変表示装置9に表示する飾り図柄についても、大当り種類によって異なる大当り図柄が決定される。大当り演出終了後の再抽選演出が実行される場合には、大当り種類に応じて決定された大当り図柄と異なる大当り図柄が表示されることがあるが、その場合には表示された図柄は遊技者に対する大当り種類の最終的な報知とはならない。なお、特別図柄表示器8に表示する特別図柄と可変表示装置9に表示する飾り図柄とのうち何れか一方が、通常大当りであるか、15R確変大当りであるか、時短大当りであるかによらず、同一の大当り図柄(例えば特別図柄については全て「7」、飾り図柄については全て「7,7,7」)とされていてもよい。
その後、遊技制御用マイクロコンピュータ560は、特別図柄プロセスフラグの値を変動パターン設定処理(ステップS302)に対応した値に更新する(ステップS368)。
図51は、特別図柄プロセス処理における変動パターン設定処理(ステップS302)を示すフローチャートである。変動パターン設定処理において、遊技制御用マイクロコンピュータ560は、まず、大当りフラグがセットされているか否か、大当りフラグがセットされているときは15R確変決定フラグ、2R確変A決定フラグ、2R確変B決定フラグ、時短決定フラグの何れかがセットされているか否かを確認し、さらに確変フラグや時短フラグによって現在の遊技状態を確認するとともに、大当り再抽選演出を実行することに決定されているかを確認(大当り開始前再抽選演出実行フラグにより確認)して、使用する変動パターン決定テーブルを決定して使用テーブルに設定する(ステップS381)。すなわち、大当りとするか否か、大当りとする場合には大当りの種類と、現在の遊技状態と、大当り再抽選演出を実行することに決定されているか否かに応じて使用する変動パターン決定テーブルを決定する。例えば、確変時はずれ用、確変時通常大当り用、確変時15R確変大当り用、確変時2R確変大当り用、確変時時短大当り用、通常時通常大当り用、通常時15R確変大当り用、通常時2R確変大当り用、通常時時短大当り用、通常時はずれ用、各大当りの種類に対応した大当り再抽選演出実行用などの変動パターン決定テーブルがあらかじめ用意されており、それらの中から使用する変動パターン決定テーブルを決定する。
例えば、通常時大当り用変動パターン決定テーブルには、大当りのときに選択される変動パターンの一部または全部が設定され、各変動パターンに複数の判定値が割り当てられている。また、通常時はずれ用変動パターン決定テーブルには、はずれのときに選択される変動パターンの一部または全部が設定され、各変動パターンに複数の判定値が割り当てられている。なお、確変時大当り用変動パターン決定テーブルと通常時大当り用変動パターン決定テーブルとは、ともに大当りのときに選択される変動パターンが設定されるが、設定される変動パターンの一部または全部が異なっているものとする。
遊技制御用マイクロコンピュータ560は、乱数格納バッファから変動パターン決定用乱数を読み出し、読み出した変動パターン決定用乱数の値にもとづいて、変動パターン決定テーブルを用いて飾り図柄の変動パターンを決定する(ステップS382)。具体的には、変動パターン決定用乱数値と一致する判定値に対応した変動パターンが可変表示装置9にて実行される飾り図柄の変動パターンと決定される。
次いで、遊技制御用マイクロコンピュータ560は、決定された変動パターンに応じた変動パターン指定の演出制御コマンド(変動パターンコマンド)を送信する制御を行う(ステップS383)。
次いで、遊技制御用マイクロコンピュータ560は、大当りフラグがセットされていれば(ステップS384)、15R確変決定フラグ、2R確変A決定フラグ、2R確変B決定フラグ、時短決定フラグの状態に応じて決定した表示結果と、大当り後再抽選演出を実行するか否か(大当り終了後再抽選演出実行フラグによって確認)とを確認し、決定した表示結果と大当り後再抽選演出を実行するか否かとに応じた表示結果指定の演出制御コマンド(表示結果指定コマンド)を選択する(ステップS385)。
また、遊技制御用マイクロコンピュータ560は、大当りフラグがセットされていなければ、リーチフラグがセットされているか否か確認する(ステップS386)。リーチフラグがセットされていれば、ステップS367にて決定したズレ数に応じて表示結果指定の演出制御コマンド(表示結果指定コマンド)を選択する(ステップS387)。リーチフラグがセットされていなければ、リーチにもならないはずれ時の表示結果指定の演出制御コマンド(表示結果指定コマンド)を選択する(ステップS388)。
次いで、遊技制御用マイクロコンピュータ560は、選択した表示結果指定コマンドを送信する制御を行う(ステップS389)。
次に、遊技制御用マイクロコンピュータ560は、決定した変動パターンと、決定した表示結果とにもとづいて、変動時間決定用テーブル(図46)を用いて変動時間を決定する(ステップS390)。
そして、遊技制御用マイクロコンピュータ560は、特別図柄プロセスタイマに決定した変動時間をセットする(ステップS391)。そして、内部状態(特別図柄プロセスフラグ)をステップS303に応じた値に更新する(ステップS392)。
図52は、特別図柄プロセス処理における特別図柄変動処理(ステップS303)を示すフローチャートである。特別図柄変動処理において、まず、遊技制御用マイクロコンピュータ560は、特別図柄プロセスタイマの値を−1する(ステップS401)。そして、特別図柄プロセスタイマがタイムアップしているかどうかを確認し(すなわち特別図柄プロセスタイマの値が0であるか否かを確認し)、タイムアップしていなければ(ステップS402のN)、特別図柄表示器8における特別図柄の変動中の表示状態を制御する特別図柄表示制御処理を実行する(ステップS403)。特別図柄プロセスタイマがタイムアップしていれば(ステップS402のY)、内部状態(特別図柄プロセスフラグ)をステップS304に応じた値に更新する(ステップS404)。
次に、特別図柄プロセス処理における特別図柄停止処理(ステップS304)について説明する。図53は、特別図柄停止処理を示すフローチャートである。特別図柄停止処理において、CPU56は、特別図柄表示器8での特別図柄の変動表示を終了し、決定されている停止図柄で特別図柄を停止表示する(ステップS410)。また、CPU56は、飾り図柄停止を示す演出制御コマンド(飾り図柄停止コマンド)を送信する処理を行う(ステップS411)。
次いで、CPU56は、大当りであることを示す大当りフラグがセットされているか否か確認する(ステップS412)。大当りフラグがセットされていれば、CPU56は、2R確変A決定フラグまたは2R確変B決定フラグがセットされているか否かを確認する(ステップS412a)。2R確変A決定フラグおよび2R確変B決定フラグがセットされていなければ、ステップS427に移行する。2R確変A決定フラグまたは2R確変B決定フラグがセットされている場合には、CPU56は、確変回数カウンタの残り回数が2以上であれば、確変回数カウンタのカウント値を−1した値(確変残り回数)を示す確変残り回数指定コマンドを送信し(ステップS413,ステップS414)、時短回数カウンタの残り回数が2以上であれば、時短回数カウンタのカウント値を−1した値(時短残り回数)を示す時短残り回数指定コマンドを送信する(ステップS415,ステップS416)。そして、ステップS427に移行する。
ステップS412において大当りフラグがセットされていなければ、CPU56は、確変状態であることを示す確変フラグがセットされているか否か確認する(ステップS417)。セットされていれば、CPU56は、確変回数カウンタのカウント値を−1する(ステップS418)。そして、確変回数カウンタのカウント値が0になった場合には(ステップS419)、確変フラグをリセットするとともに(ステップS420)、確変回数カウンタのカウント値が0になったことによって確変状態が終了したことを示す確変回数終了指定コマンドを送信する(ステップS421)。
次いで、CPU56は、時短状態であることを示す時短フラグがセットされているか否か確認する(ステップS422)。セットされていれば、CPU56は、時短回数カウンタのカウント値を−1する(ステップS423)。そして、時短回数カウンタのカウント値が0になった場合には(ステップS424)、時短フラグをリセットするとともに(ステップS425)、時短回数カウンタのカウント値が0になったことによって時短状態が終了したことを示す時短回数終了指定コマンドを送信する(ステップS426)。
そして、CPU56は、大当りとすることに決定された場合には、ステップS427にて、内部状態(特別図柄プロセスフラグ)をステップS305に移行するように更新する。そうでない場合には、CPU56は、ステップS427にて、内部状態をステップS300に移行するように更新する。
次に、特別図柄プロセス処理における大当り終了処理(ステップS308)について説明する。図54は、大当り遊技が終了したときに実行される大当り終了処理を示すフローチャートである。大当り終了処理において、CPU56は、エンディングコマンドの送信処理を含むエンディング演出制御処理を行う(ステップS452)。
エンディング演出制御処理では、CPU56は、先ず、エンディング演出中であるか否か判定する(後述するエンディング演出中フラグにより判定する)。エンディング演出中でない場合には、2R確変A決定フラグまたは2R確変B決定フラグがセットされていれば2R大当り時のエンディング時間をエンディング時タイマにセットする。また、2R確変A決定フラグまたは2R確変B決定フラグがセットされていない場合には、大当り後再抽選決定フラグがセットされていれば再抽選時のエンディング時間をエンディング時タイマにセットし、大当り後再抽選決定フラグがセットされていなければ再抽選なし時のエンディング時間をエンディング時タイマにセットする。そして、エンディング演出中フラグをセットしたあと、エンディングコマンドを送信し、RET処理に移行する。
エンディング演出中であれば、CPU56は、エンディング時タイマが示す値を1減算したあと、エンディング時タイマが示す値が0になっていなければRET処理に移行し、エンディング時タイマが示す値が0になっていればステップS431に移行する。すなわち、エンディング演出の実行期間が経過したときに、ステップS431以降の処理が実行される。
なお、音・ランプ制御用マイクロコンピュータ350および表示制御用マイクロコンピュータ100は、エンディングコマンドの受信に応じてエンディング演出を行うが、大当り遊技演出後の再抽選演出を含むエンディング演出を行う場合には、再抽選演出を含まないエンディング演出を行う場合と異なる所定の演出時間がセットされる。
次いで、CPU56は、2R確変A決定フラグがセットされているか否かを確認する(ステップS431)。2R確変A決定フラグがセットされている場合には、CPU56は、2R確変A大当り遊技が終了したことを示す2R確変A終了コマンドを送信する(ステップS431a)。次いで、CPU56は、現在の遊技状態が高ベース状態であるか否かを、時短フラグがセットされているか否かによって確認する(ステップS432)。時短フラグがセットされておらず高ベース状態でなければ、CPU56は、時短フラグをセットするとともに(ステップS433)、時短回数カウンタをセットする(ステップS434)。そして、ステップS441に移行する。
2R確変A決定フラグがセットされていなければ、CPU56は、2R確変B決定フラグがセットされているか否かを確認する(ステップS435)。2R確変B決定フラグがセットされている場合には、CPU56は、2R確変B大当り遊技が終了したことを示す2R確変B終了コマンドを送信する(ステップS435a)。次いで、CPU56は、現在の遊技状態が高ベース状態であるか否かを、時短フラグがセットされているか否かによって確認する(ステップS436)。時短フラグがセットされておらず高ベース状態でなければ、CPU56は、現在の遊技状態が確変状態であるか否かを、確変フラグがセットされているか否かによって確認する。確変フラグがセットされており確変状態であると判定した場合には、CPU56は、時短フラグをセットするとともに(ステップS438)、時短回数カウンタをセットする(ステップS439)。そして、ステップS441に移行する。なお、この実施の形態では、時短回数カウンタには所定値として100が設定される。
2R確変B決定フラグがセットされていなければ、CPU56は、15R確変決定フラグがセットされているか否かを確認する(ステップS440)。15R確変決定フラグがセットされていれば、CPU56は、時短フラグをセットするとともに(ステップS442a)、時短回数カウンタをセットする(ステップS442b)。さらに、CPU56は、15R確変大当り遊技が終了したことを示す15R確変終了コマンドを送信する(ステップS447)。また、CPU56は、確変フラグをセットするするとともに(ステップS441)、確変回数カウンタをセットする(ステップS442)。なお、この実施の形態では、確変回数カウンタには所定値として100が設定される。そして、ステップS448に移行する。
15R確変決定フラグがセットされていなければ、CPU56は、時短決定フラグがセットされているか否かを確認する(ステップS443)。時短決定フラグがセットされていれば、CPU56は、時短大当り遊技が終了したことを示す時短大当り終了コマンドを送信する(ステップS443a)。次いで、CPU56は、時短フラグをセットするとともに(ステップS444)、時短回数カウンタをセットする(ステップS445)。なお、この実施の形態では、時短回数カウンタには所定値として100が設定される。そして、CPU56は、確変フラグをリセットするとともに、確変回数カウンタをクリアする(ステップS446)。そして、ステップS448に移行する。
そして、CPU56は、確変決定フラグおよび時短決定フラグをリセットし(ステップS448)、ステップS449に移行する。
ステップS443にて時短決定フラグがセットされていないと判定した場合には、CPU56は、確変フラグおよび時短フラグをリセットするともに、確変回数カウンタおよび時短回数カウンタをクリアし(ステップS450)、さらに通常の大当り遊技演出(確変大当り遊技演出でも時短大当り遊技演出でもない大当り遊技演出)が終了したことを示す通常大当り終了コマンドを送信する(ステップS451)。そして、ステップS449に移行する。
ステップS449では、CPU56は、特別図柄プロセスフラグの値を、特別図柄通常処理(ステップS300)に応じた値にする。なお、大当り遊技演出終了後に再抽選演出がなされる場合には、その再抽選演出が終了したあとに、特別図柄プロセスフラグの値が特別図柄通常処理(ステップS300)に応じた値とされる。
図55は、高ベース状態と低ベース状態の具体例を説明するための説明図である。この例では、特別制御ベース150の1種類の高ベース状態があらかじめ用意されている。なお、特別制御ベース100、特別制御ベース200などの他の高ベース状態を用意しておくようにしてもよい。高ベース状態とは、上述したように、単位時間あたりに発射される遊技球の数に対する賞球の数が、高ベース状態でない通常の状態(通常状態:本例では、高ベース状態が1種類であるため、高ベース状態との比較において「低ベース状態」と呼ぶことがある。)と比較して多い状態をいう。特別制御ベース150はベース150であるが、これは、単位時間あたりに発射される遊技球の数を100としたときに、その単位時間あたりに付与される賞球の数が150となるような高ベース状態を意味する。
特別制御ベースは遊技盤面の釘の配置などによっても変化するが、この例では、可変入賞球装置15の開放時間と開放回数とを異ならせることによって特別制御ベースを調整するようにしている。
図55に示すように、本例では、特別制御ベース150の高ベース状態に制御されているときには、当りが発生する毎に可変入賞球装置15が1回だけ2秒間開放する制御が実行されるものとする。また、本例では、低ベース状態に制御されているときは、当りが発生する毎に可変入賞球装置15が1回だけ0.2秒間開放する制御が実行されるものとする。
図56は、普通図柄プロセス処理を示すフローチャートである。普通図柄プロセス処理では、CPU56は、ゲート32を遊技球が通過してゲートスイッチ32aがオン状態となったことを検出すると(ステップS81)、ゲートスイッチ通過処理(ステップS82)を実行する。そして、CPU56は、普通図柄プロセスフラグの値に応じてステップS83〜S87に示された処理のうちのいずれかの処理を実行する。
図57は、ゲートスイッチ通過処理の例を示すフローチャートである。ゲートスイッチ通過処理において、CPU56は、ゲート通過記憶カウンタのカウント値(ゲート通過記憶数)が最大値(この例では「4」)に達しているか否か確認する(ステップS611)。最大値に達していなければ、ゲート通過記憶カウンタのカウント値を+1する(ステップS612)。なお、ゲート通過記憶カウンタの値に応じて普通図柄始動記憶表示器41のLEDが点灯される。そして、CPU56は、普通図柄当り判定用乱数の値を抽出し、ゲート通過記憶数の値に対応した保存領域(普通図柄判定用バッファ)に格納する処理を行う(ステップS613)。
図58は、普通図柄の変動を開始するときの変動開始時処理の例を示すフローチャートである。図58に示す変動開始時処理は、普通図柄変動待ち処理(ステップS83)と普通図柄判定処理(ステップS84)とをまとめて示す処理である。
変動開始時処理において、CPU56は、普通図柄の変動を開始することができる状態(例えば普通図柄プロセスフラグの値がステップS83を示す値となっている場合)には(ステップS621)、ゲート通過記憶数の値を確認する(ステップS622)。具体的には、ゲート通過記憶カウンタのカウント値を確認する。なお、普通図柄プロセスフラグの値がステップS83を示す値となっている場合とは、普通図柄表示器10において普通図柄の演出がなされておらず、かつ、大当り遊技中でもない場合である。
ゲート通過記憶数が0でなければ、CPU56は、ゲート通過記憶数=1に対応する保存領域に格納されている普通図柄当り判定用乱数値を読み出してRAM55の乱数格納バッファに格納するとともに(ステップS623)、ゲート通過記憶数の値を1減らし(ゲート通過記憶カウンタのカウント値を1減らし)、かつ、各保存領域の内容をシフトする(ステップS624)。すなわち、ゲート通過記憶数=n(n=2,3,4)に対応する保存領域に格納されている当り判定用乱数値を、ゲート通過記憶数=n−1に対応する保存領域に格納する。よって、各ゲート通過記憶数に対応するそれぞれの保存領域に格納されている普通図柄当り判定用乱数値が抽出された順番は、常に、ゲート通過記憶数=1,2,3,4の順番と一致するようになっている。
次いで、CPU56は、乱数格納バッファから普通図柄当り判定用乱数(図36のランダム5)を読み出し(ステップS625)、当りとするかはずれとするかを決定する(ステップS626)。ステップS626では、普通図柄当り判定用乱数の値が当り判定値と一致するか否かが判定され、一致する当り判定値があれば当りと決定される。当り判定値は、例えば、高ベース状態のときには3〜12のいずれかとして高確率で当りとなる状態とされ、高ベース状態でないときには3,5または7として比較的低確率で当りとなる状態とされる。
当り/はずれを決定すると、CPU56は、普通図柄変動開始指定のコマンド送信テーブルのアドレスをポインタにセットし(ステップS627)、サブルーチンであるコマンドセット処理を実行する(ステップS628)。
そして、CPU56は、普通図柄の変動時間データを普通図柄プロセスタイマに設定し、普通図柄プロセスタイマをスタートし(ステップS629)、普通図柄表示器10における普通図柄の演出を開始する。例えば、高ベース状態時には、普通図柄プロセスタイマに5.1秒に相当する値を設定する。低ベース状態時には、普通図柄プロセスタイマに29.2秒に相当する値を設定する。さらに、内部状態(普通図柄プロセスフラグ)をステップS85(普通図柄変動処理)に移行するように更新する(ステップS630)。
図59は、普通図柄変動処理の例を示すフローチャートである。普通図柄変動処理において、CPU56は、普通図柄プロセスタイマがタイムアウトしたか否か確認する(ステップS641)。タイムアウトしていなければ、CPU56は、普通図柄プロセスタイマが示す値を減算するとともに(ステップS644)、普通図柄表示器10における普通図柄の変動表示演出を実行する(ステップS643)。普通図柄プロセスタイマがタイムアウトしていたら、普通図柄プロセスフラグを普通図柄停止処理を示す値に更新する(ステップS642)。
図60は、普通図柄停止処理の例を示すフローチャートである。普通図柄停止処理において、CPU56は、普通図柄の変動を停止し、普通図柄表示器10に停止図柄を表示する(ステップS651)。停止図柄が当り図柄であれば(ステップS653)、普通図柄プロセスフラグを始動入賞口開閉処理を示す値に更新する(ステップS654)。また、停止図柄がはずれ図柄であれば(ステップS653)、普通図柄プロセスフラグを普通図柄変動待ち処理を示す値に更新する(ステップS655)。
図61は、始動入賞口開閉処理の例を示すフローチャートである。普通図柄停止処理において、CPU56は、時短フラグがセットされていなければ(ステップS661)、可変入賞球装置15が1回だけ0.2秒間開放するように制御を行う(ステップS662)。本例では、時短状態であるときは常に高ベース状態であるため、ステップS661にて、高ベース状態であるか否かを時短フラグの状態によって確認する。
時短フラグがセットされている場合には(ステップS661)、CPU56は、高ベース状態(本例では、特別制御ベース150の特別遊技状態とされている遊技状態)であるため、可変入賞球装置15が1回だけ2秒間開放するように制御を行う(ステップS663)。
上記のように、本例では、始動入賞口開閉処理で用いられる開放パターンは、2種類あり、特別制御ベース150とされているときの開放パターンが高ベース状態に制御されているときに使用される。また、遊技状態が高ベース状態であるか否かによって、それぞれ異なる開放パターンで可変入賞球装置15の開閉制御が実行される。
そして、CPU56は、普通図柄プロセスフラグを普通図柄変動待ち処理を示す値に更新する(ステップS664)。
次に、音・ランプ制御用マイクロコンピュータ350の動作を説明する。図62は、音・ランプ制御用マイクロコンピュータ350が実行するメイン処理を示すフローチャートである。遊技機に対する電力供給が開始され、リセット信号がハイレベルのなると、音・ランプ制御用マイクロコンピュータ350は、メイン処理を開始する。
メイン処理では、音・ランプ制御用マイクロコンピュータ350は、まず、RAM領域のクリアや各種初期値の設定、また音・ランプ制御の起動間隔を決めるためのタイマの初期設定等を行うための初期化処理を行う(ステップS781)。次いで、主基板31から受信した演出制御コマンドを解析する処理を行う(ステップS782:コマンド解析処理)。
その後、音・ランプ制御用マイクロコンピュータ350は、タイマ割込フラグの監視(ステップS783)を行うループ処理に移行する。そして、図63に示すように、タイマ割込が発生すると、音・ランプ制御用マイクロコンピュータ350は、タイマ割込フラグをセットする(ステップS787)。メイン処理において、タイマ割込フラグがセットされていたら、音・ランプ制御用マイクロコンピュータ350は、そのフラグをクリアするとともに(ステップS784)、以下の音・ランプ制御処理を実行する。
タイマ割込は例えば2ms毎にかかる。すなわち、音・ランプ制御処理は、例えば2ms毎に起動される。また、この実施の形態では、タイマ割込処理ではフラグセットのみがなされ、具体的な音・ランプ制御処理はメイン処理において実行されるが、タイマ割込処理で音・ランプ制御処理を実行してもよい。
音・ランプ制御処理において、音・ランプ制御用マイクロコンピュータ350は、まず、音出力処理を行う(ステップS785)。この場合、音・ランプ制御用マイクロコンピュータ350は、音声合成用IC703に対して音番号データ(例えば、変動パターンコマンドに示される変動パターンに対応する音番号データ)を出力する。そして、音声合成用IC703は、音番号データに応じた音声や効果音を発生し増幅回路705に出力する。
次いで、音・ランプ制御用マイクロコンピュータ350は、ランプ表示処理を行う(ステップS786)。この場合、音・ランプ制御用マイクロコンピュータ350は、プロセスデータ中に設定されているランプ制御実行データにもとづいてランプ制御を行う。その後、ステップS783のタイマ割込フラグの確認を行う処理に戻る。
主基板31からの演出制御用のINT信号は音・ランプ制御用マイクロコンピュータ350の割込端子に入力されている。例えば、主基板31からのINT信号がオン状態になると、音・ランプ制御用マイクロコンピュータ350において割込がかかる。そして、音・ランプ制御用マイクロコンピュータ350は、割込処理において演出制御コマンドの受信処理を実行する。演出制御コマンドの受信処理において、音・ランプ制御用マイクロコンピュータ350は、受信した演出制御コマンドデータをコマンド受信バッファに格納する。
図64は、メイン処理におけるコマンド解析処理(ステップS782)を示すフローチャートである。遊技制御用マイクロコンピュータ560から送信された演出制御コマンドは、コマンド受信バッファに格納される。コマンド解析処理において、音・ランプ制御用マイクロコンピュータ350は、まず、コマンド受信バッファに受信コマンドが格納されているか否か確認する(ステップS501)。コマンド受信バッファに受信コマンドが格納されている場合には、音・ランプ制御用マイクロコンピュータ350は、コマンド受信バッファから受信コマンドを読み出す(ステップS502)。
受信した演出制御コマンドが変動パターン指定の演出制御コマンド(変動パターンコマンド)であれば(ステップS503)、音・ランプ制御用マイクロコンピュータ350は、そのコマンドのEXTデータをRAMにおける受信変動パターンデータ格納領域に格納する(ステップS504)。また、受信した変動パターンコマンドが大当り遊技演出の開始前の再抽選演出の実行を指定するものであれば(ステップS506)、大当り開始前再抽選フラグをセットする(ステップS507)。
受信した演出制御コマンドが表示結果指定の演出制御コマンド(表示結果指定コマンド)であれば(ステップS508)、音・ランプ制御用マイクロコンピュータ350は、受信変動パターンデータ格納領域に格納されている変動パターンコマンドのEXTデータと、受信した表示結果指定コマンドとにもとづいて、変動時間と、表示制御基板80に送信する表示制御コマンドとしての変動パターンコマンドとを決定する(ステップS509)。そして、決定した変動時間をRAMにおける実行変動パターンデータ格納領域に格納する(ステップS510)。
ステップS509では、図65に示す変動時間・変動パターンコマンド決定用テーブルに従って、変動時間と変動パターンコマンドとが決定される。図65に示す変動時間・変動パターンコマンド決定用テーブルは、上述した図46に示した主基板31で使用される変動時間決定用テーブルにおける変動パターン、表示結果、変動時間の各組み合わせについて、それぞれ、表示制御基板80に送信する変動パターンコマンドが対応付けされたテーブルである。よって、ステップS509にて、主基板31におけるステップS390で決定される変動時間と同一の変動時間が決定される。
表示制御基板80に送信する表示制御コマンドとしての変動パターンコマンドを決定すると、音・ランプ制御用マイクロコンピュータ350は、決定した変動パターンコマンドをコマンド送信バッファに設定し(ステップS511)、表示制御基板80に向けて送信する(ステップS512)。
また、受信した表示結果指定コマンドが大当り遊技演出の終了後の再抽選演出の実行を指定するものであれば(ステップS513)、大当り終了後再抽選フラグをセットする(ステップS514)。
受信した演出制御コマンドがその他のコマンドであれば、音・ランプ制御用マイクロコンピュータ350は、フラグセットなどの受信した演出制御コマンドに応じた処理を実行し(ステップS519)、表示制御基板80に送信する必要があるコマンドであれば(ステップS520)、受信した演出制御コマンドを表示制御コマンドとしてコマンド送信バッファに設定し(ステップS521)、表示制御基板80に向けて送信する(ステップS522)。なお、表示制御基板80に送信する必要があるコマンドは、例えば、ファンファーレコマンド、エンディングコマンド、確変回数終了指定コマンド、時短回数終了指定コマンド、確変残り回数指定コマンド、時短残り回数指定コマンドなど、表示制御基板80において使用されるコマンドであり、あらかじめ定められたコマンドである。
なお、図64等には示されていないが、音・ランプ制御用マイクロコンピュータ350は、後述する表示制御用マイクロコンピュータ100と同様(図68、図71参照)にして遊技状態の報知を行うか否かを決定したり、その決定結果に応じて報知したりする。また、例えば、音・ランプ制御用マイクロコンピュータ350が、現在の遊技状態や2R確変大当りAとするか2R確変大当りBとするか等にもとづいて移行あるいは継続した遊技状態を報知するか否かを決定するとともに、報知する場合にはその報知タイミングを決定し、決定した遊技状態の報知タイミングを示す表示制御コマンド(報知タイミング指定コマンド)を表示制御用マイクロコンピュータ100に送信し、表示制御用マイクロコンピュータ100が、受信した報知タイミング指定コマンドが示す報知タイミングで遊技状態の報知を行うようにしてもよい。この場合、報知タイミング指定コマンドに、報知タイミングだけでなく、報知態様をも含めるようにしてもよい。
次に、表示制御手段の動作を説明する。図66は、表示制御基板80に搭載されている表示制御用マイクロコンピュータ100が実行するメイン処理を示すフローチャートである。表示制御用マイクロコンピュータ100は、電源が投入されると、メイン処理の実行を開始する。メイン処理では、まず、RAM領域のクリアや各種初期値の設定、また表示制御処理の起動間隔を決めるためのタイマの初期設定等を行うための初期化処理を行う(ステップS701)。その後、表示制御用マイクロコンピュータ100は、タイマ割込フラグの監視(ステップS702)の確認を行うループ処理に移行する。タイマ割込が発生すると、表示制御用マイクロコンピュータ100は、タイマ割込処理においてタイマ割込フラグをセットする。メイン処理において、タイマ割込フラグがセットされていたら、表示制御用マイクロコンピュータ100は、そのフラグをクリアし(ステップS703)、以下の表示制御処理を実行する。
表示制御処理において、表示制御用マイクロコンピュータ100は、まず、受信した表示制御コマンドを解析する(コマンド解析処理:ステップS704)。次いで、表示制御用マイクロコンピュータ100は、表示制御プロセス処理を行う(ステップS705)。表示制御プロセス処理では、制御状態に応じた各プロセスのうち、現在の制御状態(表示制御プロセスフラグ)に対応した処理を選択して可変表示装置9の表示制御を実行する。さらに、飾り図柄決定用乱数や仮停止図柄決定用乱数などの乱数を生成するためのカウンタのカウント値を更新する乱数更新処理を実行する(ステップS706)。その後、ステップS702に移行する。
図67〜図68は、メイン処理におけるコマンド解析処理(ステップS704)を示すフローチャートである。音・ランプ制御用マイクロコンピュータ350から送信された表示制御コマンドは、コマンド受信バッファに格納される。コマンド解析処理において、表示制御用マイクロコンピュータ100は、まず、コマンド受信バッファに受信コマンドが格納されているか否か確認する(ステップS811)。コマンド受信バッファに受信コマンドが格納されている場合には、表示制御用マイクロコンピュータ100は、コマンド受信バッファから受信コマンドを読み出す(ステップS812)。
受信した表示制御コマンドが、変動パターン指定の表示制御コマンドであれば(ステップS813)、表示制御用マイクロコンピュータ100は、そのコマンドのEXTデータをRAMにおける変動パターンデータ格納領域に格納し(ステップS814)、変動パターン受信フラグをセットする(ステップS815)。また、表示制御用マイクロコンピュータ100は、飾り図柄決定用乱数を抽出し、抽出した飾り図柄決定用乱数の値にもとづいて、受信した変動パターンコマンドが示す表示結果に対応した左中右の飾り図柄の停止図柄を決定する(ステップS816)。なお、飾り図柄決定用乱数は、左中右の飾り図柄に対応して設けられている。例えば、受信した変動パターンコマンドが示す表示結果が2R確変大当りであった場合には、その旨を示すあらかじめ定められた停止図柄とすることに決定する(本例では、2R確変大当りの停止図柄は1種類のため、ここでは飾り図柄決定用乱数は使用しない)。また、例えば、受信した変動パターンコマンドが示す表示結果が+2コマずれのリーチであった場合には、例えば飾り図柄決定用乱数にもとづいて左図柄を決定し、決定した左図柄(例えば「5」)と同じ図柄(例えば「5」)を右図柄とすることに決定し、決定した左図柄(例えば「5」)から+2コマずれている図柄(例えば「7」)を中図柄とすることに決定する。さらに、受信した変動パターンコマンドが示す表示結果が15R確変大当りであるが大当り遊技の終了後の再抽選演出が含まれている場合には、例えば飾り図柄決定用乱数にもとづいて確定図柄が非確変図柄となるように左図柄を決定し、決定した左図柄(例えば「2」)と同じ図柄(例えば「2」)を右図柄及び中図柄とすることに決定する。なお、受信した変動パターンコマンドが示す表示結果が15R確変大当りあるいは通常大当りであり大当り遊技の終了後の再抽選演出が含まれていない場合には、例えば飾り図柄決定用乱数にもとづいて、変動パターンコマンドが示す表示結果通りの確定図柄となるように左図柄を決定し、決定した左図柄(例えば、15R確変大当りであれば「7」、通常大当りであれば「2」)と同じ図柄を右図柄及び中図柄とすることに決定する。そして、決定した飾り図柄の停止図柄をRAMにおける飾り図柄格納領域に格納する(ステップS817)。さらに、表示制御用マイクロコンピュータ100は、受信した変動パターンコマンドが示す変動パターンに再抽選演出(ここでは大当り遊技の開始前の再抽選演出)が含まれているか否かを確認し(ステップS818)、再抽選演出が含まれている場合は、大当り開始前再抽選フラグをセットする(ステップS819)。そして、表示制御用マイクロコンピュータ100は、受信した変動パターンコマンドが示す表示結果に再抽選演出(ここでは大当り遊技の終了後の再抽選演出)が含まれているか否かを確認し(ステップS820)、再抽選演出が含まれている場合は、大当り終了後再抽選フラグをセットする(ステップS821)。
また、受信した表示制御コマンドが、ファンファーレ指定の表示制御コマンド(ファンファーレコマンド)であれば(ステップS822)、表示制御用マイクロコンピュータ100は、そのコマンドのEXTデータをRAMにおけるファンファーレデータ格納領域に格納し(ステップS823)、ファンファーレコマンドを受信したことを示すファンファーレフラグをセットする(ステップS824)。
また、受信した表示制御コマンドが、エンディング指定の表示制御コマンド(エンディングコマンド)であれば(ステップS825)、表示制御用マイクロコンピュータ100は、そのコマンドのEXTデータをRAMにおけるエンディングデータ格納領域に格納し(ステップS826)、エンディングコマンドを受信したことを示すエンディングフラグをセットする(ステップS827)。
また、受信した表示制御コマンドが、大当り遊技演出の終了を示す表示制御コマンド(図43における演出制御コマンドE400(H)〜E404(H)に対応する表示制御コマンド)であれば(ステップS828)、表示制御用マイクロコンピュータ100は、後述する遊技状態データを必要に応じて更新する(ステップS829)。そして、遊技状態の報知を行うか否か判定し(ステップS830)、報知を行うと判定したときは、可変表示装置9の表示態様を変更することによって、変更後の遊技状態を報知する(ステップS831)。本例では、例えば、背景の表示態様を変更させることによって、変更後の遊技状態を報知する。
遊技状態データは、現在の遊技状態を示すものであり、例えば、遊技状態が通常状態であるか、確変状態であるか否か、時短状態であるか否かをそれぞれ示す3つのフラグによって構成される。
本例では、ステップS830において、受信した表示制御コマンドが2R確変A終了コマンドまたは2R確変B終了コマンドであり、かつ後述する確変残り回数カウンタがセットされていたとき(0でなかったとき)は、確変状態が継続したこと(変更後の遊技状態)を報知しないことに決定する。また、受信した表示制御コマンドが2R確変A終了コマンドまたは2R確変B終了コマンドであり、かつ後述する時短残り回数カウンタがセットされていたとき(0でなかったとき)は、時短状態から確変状態に移行したこと(変更後の遊技状態)を報知しないことに決定する。さらに、受信した表示制御コマンドが2R確変B終了コマンドであり、ステップS829にて遊技状態データが通常状態から確変状態に更新されていたときは、通常状態から確変状態に移行したことを報知しないことに決定するとともに、本例ではミッションモードに移行することに決定する。その他の場合には、変更後の遊技状態を報知することに決定する。
また、受信した表示制御コマンドが、確変回数終了指定コマンドであれば(ステップS832a)、表示制御用マイクロコンピュータ100は、遊技状態データを非確変状態を示すように更新する(ステップS834a)。
また、受信した表示制御コマンドが、時短回数終了指定コマンドであれば(ステップS832b)、表示制御用マイクロコンピュータ100は、遊技状態データを非時短状態を示すように更新する(ステップS834b)。
また、受信した表示制御コマンドが、確変残り回数指定コマンドであった場合には(ステップS835)、表示制御用マイクロコンピュータ100は、確変残り回数カウンタに、確変残り回数指定コマンドが示す確変残り回数(確変回数としてセットされた回数のうち、2R確変大当りとなったことによって実行されなかった回数)をセットする(ステップS836)。
また、受信した表示制御コマンドが、時短残り回数指定コマンドであった場合には(ステップS837)、表示制御用マイクロコンピュータ100は、時短残り回数カウンタに、時短残り回数指定コマンドが示す時短残り回数(時短回数としてセットされた回数のうち、2R確変大当りとなったことによって実行されなかった回数)をセットする(ステップS838)。
なお、確変残り回数カウンタおよび時短残り回数カウンタは、後述する確変維持報知(ステップS842d参照)や確変移行報知(ステップS842h参照)が意図しないタイミングで実行されることを防止するため、15R大当りを示すコマンド(例えば、ファンファーレ1コマンド、15R確変大当り終了指定コマンド、通常大当り終了指定コマンド、時短大当り終了指定コマンド)を受信したときにクリアされる。
ステップS812で読み出した受信コマンドがその他の表示制御コマンドである場合には、表示制御用マイクロコンピュータ100は、受信コマンドに対応するフラグをセットする(ステップS839)。
図69は、図66に示されたメイン処理における表示制御プロセス処理(ステップS705)を示すフローチャートである。表示制御プロセス処理では、表示制御用マイクロコンピュータ100は、表示制御プロセスフラグの値に応じてステップS800〜S807のうちのいずれかの処理を行う。各処理において、以下のような処理を実行する。
変動パターンコマンド受信待ち処理(ステップS800):コマンド受信割込処理によって、変動パターン指定の表示制御コマンド(変動パターンコマンド)を受信したか否か確認する。具体的には、変動パターンコマンドが受信されたことを示すフラグ(変動パターン受信フラグ)がセットされたか否か確認する。変動パターン受信フラグは、表示制御用マイクロコンピュータ100が実行するコマンド解析処理で可変表示装置9における飾り図柄の変動パターン指定の表示制御コマンドが受信されたことが確認された場合にセットされる(ステップS815参照)。
飾り図柄変動開始処理(ステップS801):飾り図柄の変動が開始されるように制御する。また、変動時間タイマに変動時間に相当する値を設定し、使用するプロセステーブルを選択するとともに、プロセステーブルの最初に設定されているプロセスタイマ設定値をプロセスタイマに設定する。
飾り図柄変動中処理(ステップS802):変動パターンを構成する各変動状態(変動速度)の切替タイミングを制御するとともに、変動時間の終了を監視する。なお、大当り遊技の開始前の再抽選演出を実行するときには、飾り図柄変動中処理において、大当りのときの飾り図柄の変動パターンの一部の演出表示として再抽選演出表示が実行される。
飾り図柄変動停止処理(ステップS803):変動時間タイマがタイムアウトしたことに応じて、飾り図柄の変動を停止し停止図柄(確定図柄)を導出表示する制御を行う。
大当り表示処理(ステップS804):変動時間の終了後、大当り表示の制御を行う。例えば、大当りの開始を指定するファンファーレコマンドを受信したら、ファンファーレ演出表示を実行する。
ラウンド中処理(ステップS805):ラウンド中の表示制御を行う。例えば、大入賞口が開放中であることを示す大入賞口開放中表示コマンドを受信したら、ラウンド数の表示制御等を行う。
ラウンド後処理(ステップS806):ラウンド間の表示制御を行う。例えば、大入賞口が開放後(閉鎖中)であることを示す大入賞口開放後表示コマンドを受信したら、インターバル表示を行う。
大当り終了演出処理(ステップS807):大当り遊技の終了後の大当り終了表示の制御を行う。例えば、大当りの終了を指定するエンディングコマンドを受信したら、エンディング演出表示を実行する。なお、変動パターンコマンドで大当り遊技演出後の再抽選演出の実行が指定されていれば、エンディング演出表示の中で再抽選演出表示を実行する。大当り遊技演出後の再抽選演出を含むエンディング演出を行う場合には、再抽選演出を含まないエンディング演出を行う場合と異なる所定の演出時間がセットされる。
図70は、プロセステーブルの一構成例を示す説明図である。プロセステーブルは、プロセスタイマ設定値と表示制御実行データの組み合わせが複数集まったデータで構成されている。表示制御実行データには、変動パターンを構成する各変動態様が記載されている。また、プロセスタイマ設定値には、その変動態様での変動時間が設定されている。表示制御用マイクロコンピュータ100は、プロセステーブルを参照し、プロセスタイマ設定値に設定されている時間だけ表示制御実行データに設定されている変動態様で飾り図柄を変動表示させる制御を行う。
図70に示すプロセスデータは、表示制御基板80におけるROMに格納されている。また、プロセステーブルは、各変動パターンのそれぞれに応じて用意されている。
図71は、表示制御プロセス処理における変動パターンコマンド受信待ち処理(ステップS800)を示すフローチャートである。変動パターンコマンド受信待ち処理において、表示制御用マイクロコンピュータ100は、変動パターン受信フラグがセットされたか否か確認する(ステップS841)。セットされていたら、そのフラグをリセットする(ステップS842)。
次いで、表示制御用マイクロコンピュータ100は、確変残り回数カウンタがセット(0でないとき)されていれば(ステップS842a)、確変残り回数カウンタのカウント値を1減算し(ステップS842b)、確変残り回数カウンタのカウント値が0になっていれば(ステップS842c)、確変状態が維持されたことを報知する(ステップS842d)。すなわち、本例では、確変状態であるときに2R確変大当りが発生して確変状態が維持されたときは、前回の確変状態のときの確変回数分の変動表示が実行されたあとに、確変状態が維持されたことを報知する。例えば、確変状態が維持されたことを示す表示態様(例えば特定のキャラクタを登場させる等)で背景を所定期間表示し、その後に確変状態であることを示す表示態様とするようにすればよい。
また、表示制御用マイクロコンピュータ100は、時短残り回数カウンタがセット(0でないとき)されていれば(ステップS842e)、時短残り回数カウンタのカウント値を1減算し(ステップS842f)、時短残り回数カウンタのカウント値が0になっていれば(ステップS842g)、時短状態から確変状態に移行されたことを報知する(ステップS842h)。すなわち、本例では、時短状態であるときに2R確変大当りが発生して時短状態から確変状態に以降されたときは、時短状態であったときの時短回数分の変動表示が実行されたあとに、時短状態から確変状態に移行したことを報知する。例えば、背景を、時短状態であることを示す表示態様から、確変状態であることを示す表示態様に変更するようにすればよい。なお、本例では、確変状態であるときは常に時短状態であるため、時短状態から確変状態かつ時短状態というように、遊技者にとってさらに有利な状態に遊技状態が移行されていたことを報知することができるようになる。
そして、表示制御用マイクロコンピュータ100は、大当り開始前再抽選フラグがセットされていなければ、コマンド解析処理において決定した図柄(飾り図柄(はずれ図柄)、または大当り表示図柄)および変動パターンコマンドで指定された内容(変動時間)にもとづいて、飾り図柄の変動パターンを決定する(ステップS844)。なお、本例では、飾り図柄の変動パターンは音・ランプ制御用マイクロコンピュータ350によって決定され、その決定結果に従って表示制御用マイクロコンピュータ100が飾り図柄の変動表示を行うため、厳密に言えば、表示制御用マイクロコンピュータ100が飾り図柄の変動パターンを決定しているわけではない。ただし、表示制御用マイクロコンピュータ100が、音・ランプ制御用マイクロコンピュータ350からの変動パターンコマンドによって指定される変動時間及び表示結果となる変動パターンを、あらかじめ用意されている複数種類の変動パターンから選択するようにしてもよい。
大当り開始前再抽選フラグがセットされていれば、表示制御用マイクロコンピュータ100は、大当り終了後再抽選フラグがセットされているか否か確認する(ステップS845)。
大当り終了後再抽選フラグがセットされていれば、表示制御用マイクロコンピュータ100は、仮停止図柄決定用乱数を抽出し、抽出した仮停止図柄決定用乱数の値にもとづいて、飾り図柄の仮停止図柄を決定する(ステップS846)。ここで、仮停止図柄とは、大当り遊技の開始前の再抽選演出が実行される前に仮停止表示される非確変図柄(はずれ図柄であってもよい)である。表示制御用マイクロコンピュータ100は、決定した仮停止図柄をRAMにおける仮停止図柄格納領域に格納する(ステップS847)。そして、表示制御用マイクロコンピュータ100は、コマンド解析処理において決定した図柄(飾り図柄(はずれ図柄、または大当り図柄))と、仮停止図柄と、変動パターンコマンドで指定された内容(変動時間)にもとづいて、成り上がらない再抽選演出を含む飾り図柄の変動パターンを決定する(ステップS848)。すなわち、ステップS848にて決定された変動パターンにもとづく再抽選演出では、仮停止されている非確変図柄を再変動させた後に、非確変図柄(仮停止図柄と同一図柄でも異なる図柄でもよい)を停止表示させる演出が実行され、その後に大当り遊技に移行する。
大当り終了後再抽選フラグがセットされていなければ、表示制御用マイクロコンピュータ100は、仮停止図柄決定用乱数を抽出し、抽出した仮停止図柄決定用乱数の値にもとづいて、飾り図柄の仮停止図柄を決定する(ステップS849a)。表示制御用マイクロコンピュータ100は、決定した仮停止図柄をRAMにおける仮停止図柄格納領域に格納する(ステップS849b)。そして、表示制御用マイクロコンピュータ100は、コマンド解析処理において決定した図柄(飾り図柄(はずれ図柄、または大当り表示図柄))と、仮停止図柄と、変動パターンコマンドで指定された内容(変動時間)にもとづいて、成り上がる又は成り上がらない再抽選演出を含む飾り図柄の変動パターンを決定する(ステップS849c)。すなわち、ステップS849cにて決定された変動パターンにもとづく再抽選演出では、仮停止されている非確変図柄を再変動させた後に、非確変図柄(仮停止図柄と同一図柄でも異なる図柄でもよい)または確変図柄を停止表示させる演出が実行され、その後に大当り遊技に移行する。
その後、表示制御用マイクロコンピュータ100は、表示制御プロセスフラグの値を飾り図柄変動開始処理(ステップS801)に対応した値に変更する(ステップS849d)。
図72は、表示制御プロセス処理における飾り図柄変動開始処理(ステップS801)を示すフローチャートである。飾り図柄変動開始処理において、表示制御用マイクロコンピュータ100は、まず、使用する飾り図柄の変動パターンに応じたプロセスデータを選択する(ステップS851)。そして、選択したプロセスデータ1におけるプロセスタイマ設定値をプロセスタイマに設定してプロセスタイマをスタートさせる(ステップS852)。次いで、表示制御用マイクロコンピュータ100は、プロセスデータ1の表示制御実行データ1に従って可変表示装置9の制御を実行する(ステップS853)。例えば、可変表示装置9において変動パターンに応じた画像を表示させるために、VDP109に制御信号を出力する。
その後、表示制御用マイクロコンピュータ100は、変動時間タイマ(飾り図柄の変動時間に応じたタイマ)をスタートし(ステップS854)、表示制御プロセスフラグの値を飾り図柄変動中処理(ステップS802)を示す値に更新する(ステップS855)。
図73は、表示制御プロセス処理における飾り図柄変動中処理(ステップS802)を示すフローチャートである。飾り図柄変動中処理において、表示制御用マイクロコンピュータ100は、変動時間タイマがタイムアウトしていないか否かを確認する(ステップS861)。変動時間タイマがタイムアウトしていれば、表示制御プロセスフラグの値を飾り図柄変動停止処理(ステップS803)を示す値に更新する(ステップS868)。
変動時間タイマがタイムアウトしていなければ、表示制御用マイクロコンピュータ100は、プロセスタイマを1減算するとともに(ステップS862)、変動時間タイマを1減算する(ステップS863)。そして、表示制御用マイクロコンピュータ100は、プロセスデータnにおける表示制御実行データnの内容に従って可変表示装置9の制御を実行する(ステップS864)。次いで、表示制御用マイクロコンピュータ100は、プロセスタイマがタイムアウトしていないかどうかを確認し(ステップS865)、プロセスタイマがタイムアウトしていれば、プロセスデータの切替を行う(ステップS866)。すなわち、プロセステーブルにおける次に設定されているプロセスデータ(表示制御実行データ)に切り替える。そして、次のプロセスデータにおけるプロセスタイマ設定値をプロセスタイマに設定してプロセスタイマをスタートさせる(ステップS867)。
図74は、表示制御プロセス処理における飾り図柄変動停止処理(ステップS803)を示すフローチャートである。飾り図柄変動停止処理において、表示制御用マイクロコンピュータ100は、飾り図柄の変動停止を指示する演出制御コマンド(飾り図柄停止指定コマンド)を受信しているか否か確認する(ステップS871)。飾り図柄停止指定コマンドを受信していれば、記憶されている停止図柄(飾り図柄(はずれ図柄)、大当り表示図柄)を停止表示させる制御を行う(ステップS872)。
なお、この実施の形態では、表示制御用マイクロコンピュータ100が、遊技制御用マイクロコンピュータ560からの飾り図柄停止指定コマンドが、音・ランプ制御用マイクロコンピュータ350を介して受信したことに応じて、飾り図柄を停止表示する制御を行うが、このような構成に限られず、変動時間タイマがタイムアップしたことにもとづいて飾り図柄を停止表示する制御を行うようにしてもよい。
そして、ステップS872で大当り表示図柄を表示しない場合(すなわち、はずれ図柄を表示する場合:ステップS873のN)は、表示制御用マイクロコンピュータ100は、所定のフラグ(例えば飾り図柄停止指定コマンドに応じたフラグがセットされるときは、そのフラグ)をリセットし(ステップS874)、表示制御プロセスフラグの値を変動パターンコマンド受信待ち処理(ステップS800)に対応した値に更新する(ステップS875)。
ステップS872で大当り図柄を表示する場合には(ステップS873のY)、表示制御用マイクロコンピュータ100は、ファンファーレフラグがセットされたか否か確認する(ステップS876)。ファンファーレフラグがセットされたときは(ステップS876のY)、表示制御用マイクロコンピュータ100は、格納されたファンファーレコマンドの内容にもとづいて、15ラウンドの大当り用のファンファーレ演出または突然確変用演出(2ラウンドの大当り用のファンファーレ演出)を選択する(ステップS877)。
次に、表示制御用マイクロコンピュータ100は、ステップS877にて選択した15ラウンド用のファンファーレ演出または突然確変用演出に応じたプロセスデータを選択する(ステップS880)。そして、プロセスタイマをスタートさせ(ステップS881)、表示制御プロセスフラグの値を大当り表示処理(ステップS804)に対応した値に設定する(ステップS882)。
図75は、表示制御プロセス処理における大当り表示処理(ステップS804)を示すフローチャートである。大当り表示処理において、表示制御用マイクロコンピュータ100は、まず、大入賞口開放中表示コマンドを受信したことを示す大入賞口開放中フラグがセットされているか否かを確認する(ステップS901)。大入賞口開放中フラグがセットされていないときは(ステップS901のN)、表示制御用マイクロコンピュータ100は、プロセスタイマの値を1減算し(ステップS902)、プロセスデータnにおける表示制御実行データnの内容に従って可変表示装置9の制御を実行する(ステップS903)。例えば、可変表示装置9において大当り表示図柄を表示するとともに、大当りが発生したことを示す文字やキャラクタなどを表示する演出が実行される。
次いで、表示制御用マイクロコンピュータ100は、プロセスタイマがタイムアウトしていないかどうかを確認し(ステップS904)、プロセスタイマがタイムアウトしていれば、プロセスデータの切替を行う(ステップS905)。すなわち、プロセステーブルにおける次に設定されているプロセスデータ(表示制御実行データ)に切り替える。そして、次のプロセスデータにおけるプロセスタイマ設定値をプロセスタイマに設定してプロセスタイマをスタートさせる(ステップS906)。
大入賞口開放中フラグがセットされているときは(ステップS901のY)、表示制御用マイクロコンピュータ100は、大入賞口開放中表示コマンドの内容にもとづいてラウンド中演出(例えば、15R大当り遊技のときはラウンド数に応じたラウンド表示を実行する演出、2R大当り遊技のときはラウンド表示とは異なる所定の表示を実行する演出)を選択する(ステップS907)。次いで、大入賞口開放中フラグをリセットし(ステップS908)、ラウンド中演出に応じたプロセスデータを選択する(ステップS909)。そして、プロセスタイマをスタートさせ(ステップS910)、表示制御プロセスフラグの値をラウンド中処理(ステップS805)に対応した値に設定する(ステップS911)。
図76は、表示制御プロセス処理におけるラウンド中処理(ステップS805)を示すフローチャートである。ラウンド中処理において、表示制御用マイクロコンピュータ100は、まず、エンディングフラグがセットされているか否かを確認する(ステップS921)。エンディングフラグがセットされていないときは(ステップS921のN)、表示制御用マイクロコンピュータ100は、大入賞口開放後表示コマンドを受信したことを示す大入賞口開放後フラグがセットされているか否かを確認する(ステップS922)。大入賞口開放後フラグもセットされていないときは(ステップS922のN)、表示制御用マイクロコンピュータ100は、プロセスタイマの値を1減算し(ステップS923)、プロセスデータnにおける表示制御実行データnの内容に従って可変表示装置9の制御を実行する(ステップS924)。例えば、可変表示装置9において大当り表示図柄を表示するとともに、ラウンド数を示す文字やその他のキャラクタなどを表示する演出が実行される。
次いで、表示制御用マイクロコンピュータ100は、プロセスタイマがタイムアウトしていないかどうかを確認し(ステップS925)、プロセスタイマがタイムアウトしていれば、プロセスデータの切替を行う(ステップS926)。すなわち、プロセステーブルにおける次に設定されているプロセスデータ(表示制御実行データ)に切り替える。そして、次のプロセスデータにおけるプロセスタイマ設定値をプロセスタイマに設定してプロセスタイマをスタートさせる(ステップS927)。
ステップS922において大入賞口開放後フラグがセットされているときは(ステップS922のY)、表示制御用マイクロコンピュータ100は、大入賞口開放後表示コマンドの内容にもとづいてインターバル演出(例えば、15R大当り遊技のときはラウンド数に応じたインターバル表示を行う演出、2R大当り遊技のときはインターバル表示とは異なる所定の表示を実行する演出)を選択する(ステップS928)。そして、表示制御用マイクロコンピュータ100は、大入賞口開放後フラグをリセットし(ステップS929)、選択したインターバル演出に応じたプロセスデータを選択する(ステップS930)。そして、プロセスタイマをスタートさせ(ステップS931)、演出制御プロセスフラグの値をラウンド後処理(ステップS806)に対応した値に設定する(ステップS932)。
ステップS921においてエンディングフラグがセットされたときは(ステップS921のY)、表示制御用マイクロコンピュータ100は、再抽選演出の実行が指定されているかどうか(すなわち大当り終了後再抽選フラグがセットされているか否か)を確認し、再抽選演出の実行が指定されていれば(ステップS933のY)、可変表示装置9に表示する飾り図柄の大当り確定図柄を決定し格納する処理を行う(ステップS934)。なお、大当り確定図柄とは、エンディング演出中の再抽選演出が実行された後に最終的に停止表示(導出表示)される飾り図柄の大当り図柄のことをいう。
具体的には、表示制御用マイクロコンピュータ100は、変動パターンコマンドの内容(ステップS814にて格納された内容)にもとづいて、大当り確定図柄として確変図柄とすべきか非確変図柄とすべきかを認識する。そして、各図柄に対応つけて複数の判定値が設定された、確変図柄用の大当り確定図柄決定用テーブルと非確変図柄用の大当り確定図柄決定テーブルとを予め用意しておく。表示制御用マイクロコンピュータ100は、大当り確定図柄として確変図柄と非確変図柄のどちらを決定すべきかを認識した上で、大当り確定図柄決定用テーブルを選択する。そして、大当り確定図柄決定用乱数を抽出し、抽出した大当り確定図柄決定用乱数の値と一致する判定値に対応付けられた確変図柄または非確変図柄を大当り確定図柄に決定する。そして、表示制御用マイクロコンピュータ100は、決定した大当り確定図柄をRAMにおける大当り確定図柄格納領域に格納する。
次に、表示制御用マイクロコンピュータ100は、決定した大当り確定図柄にもとづいて、再抽選演出の内容を選択する(ステップS935)。そして、表示制御用マイクロコンピュータ100は、エンディングフラグをリセットし(ステップS938)、エンディング演出に応じたプロセスデータを選択する(ステップS939)。そして、プロセスタイマをスタートさせ(ステップS940)、表示制御プロセスフラグの値を大当り終了演出処理(ステップS807)に対応した値に設定する(ステップS941)。
図77は、表示制御プロセス処理におけるラウンド後処理(ステップS806)を示すフローチャートである。ラウンド後処理において、表示制御用マイクロコンピュータ100は、大入賞口開放中表示コマンドを受信したことを示す大入賞口開放中フラグがセットされているか否かを確認する(ステップS951)。大入賞口開放中フラグがセットされていないときは(ステップS951のN)、表示制御用マイクロコンピュータ100は、プロセスタイマの値を1減算し(ステップS952)、プロセスデータnの内容に従って可変表示装置9の制御を実行する(ステップS953)。例えば、可変表示装置9において大当り表示図柄を表示するとともに、所定のキャラクタなどを表示する演出が実行される。
次いで、表示制御用マイクロコンピュータ100は、プロセスタイマがタイムアウトしていないかどうかを確認し(ステップS954)、プロセスタイマがタイムアウトしていれば、プロセスデータの切替を行う(ステップS955)。すなわち、プロセステーブルにおける次に設定されているプロセスデータ(表示制御実行データ)に切り替える。そして、次のプロセスデータにおけるプロセスタイマ設定値をプロセスタイマに設定してプロセスタイマをスタートさせる(ステップS956)。
大入賞口開放中フラグがセットされているときは(ステップS951のY)、表示制御用マイクロコンピュータ100は、大入賞口開放中表示コマンドの内容にもとづいてラウンド中演出(例えば、15R大当り遊技のときはラウンド数に応じたラウンド表示を実行する演出、2R大当り遊技のときはラウンド表示とは異なる所定の表示を実行する演出)を選択する(ステップS957)。次いで、大入賞口開放中フラグをリセットし(ステップS958)、ラウンド中演出に応じたプロセスデータを選択する(ステップS959)。そして、プロセスタイマをスタートさせ(ステップS960)、表示制御プロセスフラグの値をラウンド中処理(ステップS805)に対応した値に設定する(ステップS961)。
図78は、表示制御プロセス処理における大当り終了演出処理(ステップS807)を示すフローチャートである。大当り終了演出処理において、表示制御用マイクロコンピュータ100は、まず、大当りが終了することを示す大当り終了フラグがセットされているか否かを確認する(ステップS971)。なお、大当り終了フラグは、コマンド解析処理においては説明が省略されているが、遊技制御用マイクロコンピュータ560からの大当り終了指定コマンドを受信したことにもとづいて、音・ランプ制御用マイクロコンピュータ350が送信した表示制御コマンドを受信したとき(例えばステップS828のY参照)にセットされる。
大当り終了フラグがセットされていないときは(ステップS971のN)、表示制御用マイクロコンピュータ100は、プロセスタイマの値を1減算し(ステップS972)、プロセスデータnの内容に従って可変表示装置9を制御する処理を実行する(ステップS973)。例えば、確変大当りまたは通常大当りが終了することを表示したり、再抽選演出を実行する。
そして、表示制御用マイクロコンピュータ100は、プロセスタイマがタイムアウトしていないかどうかを確認し(ステップS974)、プロセスタイマがタイムアウトしていれば、プロセスデータの切替を行う(ステップS975)。そして、次のプロセスデータにおけるプロセスタイマ設定値をプロセスタイマに設定してプロセスタイマをスタートさせる(ステップS976)。
大当り終了フラグがセットされたときは(ステップS971のY)、表示制御用マイクロコンピュータ100は、大当り遊技演出において使用される所定のフラグをリセットし(ステップS977)、演出制御プロセスフラグの値を変動パターンコマンド受信待ち処理(ステップS800)に対応した値に設定する(ステップS978)。
次に、本例において2R確変大当り(突然確変大当り)となったときの遊技状態の変化について説明する。
図79は、通常状態(非確変状態かつ非高ベース(非時短)状態)であるときに、2R確変大当りAとなり、確変状態かつ高ベース状態となる場合における可変表示装置9および特別図柄表示器8の表示態様の例を示す説明図である。
通常状態(非確変状態かつ非高ベース(非時短)状態)であるときに、事前判定により2R確変大当りAとすることに決定したあと、可変表示の開始条件が成立すると、遊技制御用マイクロコンピュータ560が特別図柄表示器8にて特別図柄の変動表示を開始し、表示制御用マイクロコンピュータ100が可変表示装置9にて飾り図柄の変動表示を開始する(図79(A))。
その後、変動時間が終了すると、遊技制御用マイクロコンピュータ560が特別図柄表示器8において2R確変大当りA図柄(例えば「E」)で特別図柄を停止表示し、表示制御用マイクロコンピュータ100が可変表示装置9において2R確変大当り図柄(例えば「1,3,5」)で飾り図柄を停止表示する(図79(B))。
次いで、遊技制御用マイクロコンピュータ560により大入賞口が2回開放されたあと、確変フラグおよび時短フラグがセットされ、表示制御用マイクロコンピュータ100が可変表示装置9に「確変突入!」と表示することによって、確変状態に移行したことが報知される(図79(C))。
そして、確変フラグがセットされて確変状態となったこと、および時短フラグがセットされて高ベース状態となったことを示す背景画像が表示制御用マイクロコンピュータ100によって可変表示装置9に表示され、確変状態かつ高ベース状態で可変表示が開始される(図79(D))。
図80は、通常状態(非確変状態かつ非高ベース(非時短)状態)であるときに、2R確変大当りBとなり、確変状態かつ非高ベース状態となる場合における可変表示装置9および特別図柄表示器8の表示態様の例を示す説明図である。
通常状態(非確変状態かつ非高ベース(非時短)状態)であるときに、事前判定により2R確変大当りBとすることに決定したあと、可変表示の開始条件が成立すると、遊技制御用マイクロコンピュータ560が特別図柄表示器8にて特別図柄の変動表示を開始し、表示制御用マイクロコンピュータ100が可変表示装置9にて飾り図柄の変動表示を開始する(図80(A))。
その後、変動時間が終了すると、遊技制御用マイクロコンピュータ560が特別図柄表示器8において2R確変大当りB図柄(例えば「F」)で特別図柄を停止表示し、表示制御用マイクロコンピュータ100が可変表示装置9において2R確変大当り図柄(例えば「1,3,5」)で飾り図柄を停止表示する(図80(B))。
次いで、遊技制御用マイクロコンピュータ560により大入賞口が2回開放されたあと、確変フラグがセットされ確変状態に移行するが、本例では遊技状態の報知を行わないことに決定されるとともにミッションモードに移行することに決定されるため(ステップS830参照)、表示制御用マイクロコンピュータ100が可変表示装置9に「ミッションモード突入!」と表示し、確変状態に移行したことは報知されない(図80(C))。また、時短フラグはセットされずに、非高ベースが維持される。
そして、表示制御用マイクロコンピュータ100が可変表示装置9に例えば「30回転以内にキャラXを出せ!」と表示しミッションの内容を報知したあと(図80(D))、確変状態となっていることは報知されず、ミッションの内容とミッション達成までの可変表示の残り回数とを示す背景画像が表示制御用マイクロコンピュータ100によって可変表示装置9に表示され、確変状態かつ非高ベース状態で可変表示が開始される(図80(E))。
ここで、ミッションモードについて説明する。「ミッションモード」とは、所定期間内(例えば可変表示が10回実行されるまで)にクリアすべき課題(ミッション:例えば、「特定のリーチをだせ」、「リーチを3回だせ」など)が与えられ、そのミッションが達成されると遊技者にとって有利な遊技状態(例えば大当り遊技状態)に制御されるモードである。なお、2R確変大当りによる大当り遊技演出の終了後でなくても、「ミッションモード」となる場合があるようにしてもよい。例えば、あらかじめ定められた所定の図柄(例えば「1,2,3」:いわゆるチャンス目)で飾り図柄が停止表示されたときに、「ミッションモード」となるようにすればよい。このようにすれば、ミッションモードとなったときに高確率状態であるか否かが遊技者にわからなくなり、ミッションモードに対する遊技者の興趣を高めることができる。
なお、ここでは2R確変大当りによる大当り遊技演出の終了後に「ミッションモード」となる場合を例に説明しているが、その他のモードになるようにしてもよい。なお、その他のモードでは、例えば、ミッションモードと異なる背景の表示、ミッションモードと異なる点灯態様のランプ制御、ミッションモードと異なるキャラクタの表示のうち少なくとも一つが行われるようにすればよい。また、2R確変大当りによる大当り遊技演出の終了後に、「ミッションモード」とすることなく通常状態であるときの背景を表示するようにして、確変状態となっていることが遊技者にわからないようにしてもよい。さらに、通常状態や確変状態などの特定の遊技状態であるときの背景とは異なる背景を表示するようにしてもよい。
図81は、確変状態で、かつ非高ベース(非時短)状態であるときに、2R確変大当りAとなり、確変状態かつ高ベース状態となる場合における可変表示装置9および特別図柄表示器8の表示態様の例を示す説明図である。なお、2R確変大当りBとなった場合であっても、同様に確変状態かつ高ベース状態となる。
確変状態かつ非高ベース(非時短)状態であり、ここではミッションモードとなっているときに、事前判定により2R確変大当りAとすることに決定したあと、可変表示の開始条件が成立すると、遊技制御用マイクロコンピュータ560が特別図柄表示器8にて特別図柄の変動表示を開始し、表示制御用マイクロコンピュータ100が可変表示装置9にて飾り図柄の変動表示を開始する(図81(A))。
その後、変動時間が終了すると、遊技制御用マイクロコンピュータ560が特別図柄表示器8において2R確変大当りA図柄(例えば「E」)で特別図柄を停止表示し、表示制御用マイクロコンピュータ100が可変表示装置9において2R確変大当り図柄(例えば「1,3,5」)で飾り図柄を停止表示する(図81(B))。
次いで、遊技制御用マイクロコンピュータ560により大入賞口が2回開放されたあと、確変フラグおよび時短フラグがセットされ、表示制御用マイクロコンピュータ100が可変表示装置9に「確変突入!」と表示することによって、確変状態に移行したことが報知される(図81(C))。
そして、確変フラグがセットされて確変状態となったこと、および時短フラグがセットされて高ベース状態となったことを示す背景画像が表示制御用マイクロコンピュータ100によって可変表示装置9に表示され、確変状態かつ高ベース状態で可変表示が開始される(図81(D))。
以上に説明したように、上述した実施の形態では、遊技制御用マイクロコンピュータ560が、大当り遊技状態として、15R確変大当り遊技状態と、通常大当り遊技状態と、2R確変大当り遊技状態とのうちいずれか1つの大当り遊技状態に制御可能であり、15R確変大当り遊技状態、通常大当り遊技状態と、2R確変大当り遊技状態のいずれかに移行させるか否かを特別図柄(飾り図柄)の表示結果の導出表示以前に決定し、その決定結果にもとづいて、特別図柄(飾り図柄)の可変表示時間を特定するための可変表示データを選択する。また、遊技制御用マイクロコンピュータ560が、選択した可変表示データ(変動パターン)を示す可変表示コマンド(変動パターンコマンド)を送信するとともに、大当りとするときには大当りの種類を示し、はずれとするときには飾り図柄の表示結果を決定可能な表示結果データを示す表示結果指定コマンドを送信する。さらに、演出制御用マイクロコンピュータ(音・ランプ制御用マイクロコンピュータ350、表示制御用マイクロコンピュータ100)が、表示結果指定コマンドが示す大当りの種類または表示結果データ(具体的には、例えばリーチ表示とするときの左右図柄と中図柄のずれ数)と、変動パターンコマンドが示す可変表示データとにもとづいて、可変表示装置9における飾り図柄の可変表示時間を決定し、決定した可変表示時間にもとづいて可変表示装置9において飾り図柄の可変表示を実行し、決定された可変表示時間が経過したときに導出表示する飾り図柄を表示結果指定コマンドにもとづいて選択する。この場合において、演出制御用マイクロコンピュータが、変動パターンコマンドが同一であっても、表示結果指定コマンドにより特定される大当りの種類、およびリーチ表示結果とするときの大当り表示結果に対する表示順序における飾り図柄の偏差(例えば、左右図柄に対する中図柄のずれ数)に応じて、異なる可変表示時間を決定するように構成されているので、変動パターンコマンドや表示結果指定コマンドのコマンド数を増やすことなく、遊技者にとって有利なラウンドの実行回数が異なる複数種類の大当りとなるそれぞれの飾り図柄の可変表示における表示演出のバリエーションを増やすことができる。また、リーチ表示結果とするときに、大当り表示結果に対する表示順序における飾り図柄の偏差に応じて、表示演出のバリエーションを増やすことができる。
なお、上述した実施の形態では、遊技者にとって有利なラウンドの実行回数が異なる複数種類の大当り(15R確変大当りと、2R確変大当り)が用意されていたが、遊技者にとって有利なラウンドの実行期間が異なる複数種類の大当り(例えば、ラウンド数は同数(例えば15R)であるが、各ラウンドの実行期間が30秒の大当り遊技がなされる大当りと、各ラウンドの実行期間が1秒の大当り遊技がなされる大当り)が用意されていてもよい。
また、上述した実施の形態では、遊技制御用マイクロコンピュータ560が、15R確変大当り遊技状態または通常大当り遊技状態に移行させると決定したときに、大当り遊技状態の開始前に確変状態に移行するか否かを報知する大当り開始前再抽選演出を実行するか否かを決定するとともに、大当り遊技状態に移行後の所定のタイミングで確変状態に移行するか否かを報知する大当り終了後再抽選演出を実行するか否かを決定し、大当り開始前再抽選演出を実行するか否かをも特定可能な可変表示データを示す変動パターンコマンドを送信するとともに、大当り終了後再抽選演出を実行するか否かをも示す表示結果指定コマンドを送信する構成とされている。また、遊技制御用マイクロコンピュータ560が、大当り終了後再抽選演出を実行するときは、大当り遊技状態に移行した後の所定の演出切替タイミングとなったときに、当該演出切替タイミングとなったことを示す演出切替コマンド(エンディングコマンド)を送信する構成とされている。さらに、演出制御用マイクロコンピュータ(音・ランプ制御用マイクロコンピュータ350、表示制御用マイクロコンピュータ100)が、大当り開始前再抽選演出を実行する旨の変動パターンコマンドにもとづいて、大当り開始前再抽選演出を可変表示装置9において実行し、大当り終了後再抽選演出を実行する旨の表示結果指定コマンドにもとづいて、演出切替コマンドを受信したときに大当り終了後再抽選演出を可変表示装置9において実行する構成とされている。そして、演出制御用マイクロコンピュータ(音・ランプ制御用マイクロコンピュータ350、表示制御用マイクロコンピュータ100)が、変動パターンコマンドが大当り開始前再抽選演出を実行する旨を示し、かつ、表示結果指定コマンドが大当り終了後再抽選演出を実行する旨を示すときは、大当り開始前再抽選演出において確変状態に移行することを報知しないように制御する構成とされているので、大当り表示結果が表示された以後において遊技者にとって報知演出がいつ実行されるかわからず、また再抽選演出が複数回(例えば大当り遊技の開始前と大当り遊技の開始後)実行される可能性もあるため、長期間にわたって遊技者の確変状態への移行に対する期待感を持続させることができる。さらに、大当り開始前再抽選演出において確変状態に移行することを報知したにもかかわらず大当り終了後再抽選演出が実行されてしまうという不自然な状況が発生してしまうことを防止することができる。
なお、上述した実施の形態では、エンディングコマンドを受信したときに大当り終了後再抽選演出を行う構成としていたが、大当り遊技演出の演出切替時に送信されるコマンドであればどのコマンドであってもよく、例えばファンファーレコマンドやラウンド開始時に送信されるコマンドあるいはラウンド終了時に送信されるコマンドなどの他のタイミングで送信されるコマンドを受信したときに大当り終了後再抽選演出を行うようにしてもよい。また、遊技制御用マイクロコンピュータ560が、演出切替コマンドとして使用されるコマンドをランダムに決定(例えば、再抽選演出指定をファンファーレ演出表示時とするかエンディング演出表示時とするかランダムに決定し、決定結果に応じて再抽選演出指定を含むファンファーレコマンドまたはエンディングコマンドを選択するようにすればよい。)するようにしてもよい。このように構成すれば、遊技制御用マイクロコンピュータ560からの演出切替コマンドを受信したときに、大当り終了後再抽選演出を行うので、遊技者にとって大当り終了後再抽選演出がいつ実行されるかわからず、大当り遊技状態中の遊技者の興趣を高めることができる。
なお、上述した実施の形態では、大当り開始前再抽選演出を実行するか否かをも特定可能な可変表示データを示す変動パターンコマンドと、大当り終了後再抽選演出を実行するか否かをも示す表示結果指定コマンドとを用いる構成とされていたが、大当り開始前再抽選演出を実行するか否かを特定可能であり、かつ大当り終了後再抽選演出を実行するか否かを特定可能な変動パターンコマンドまたは表示結果指定コマンドを用いる構成としてもよい。この場合、例えば、上述したステップS381にてステップS3535の決定結果をも加味(大当り終了後再抽選演出実行フラグにより確認)して使用する変動パターン決定テーブルを決定したあとステップS382にて変動パターンを決定し、ステップS383にて決定した変動パターンコマンドを送信するとともに、ステップS385では大当り後再抽選演出を実行するか否かを確認(大当り終了後再抽選演出実行フラグによって確認)することなく決定した表示結果に応じた表示結果指定の演出制御コマンド(表示結果指定コマンド)を選択し、選択した表示結果指定コマンドをステップS389にて送信するようにすればよい。また、ステップS506にて大当り開始前再抽選演出の実行の有無と大当り終了後再抽選演出の実行の有無それぞれを判定し、大当り終了後再抽選演出を実行する場合にはステップS507にて大当り終了後再抽選フラグをもセットするようにすればよい。このように構成した場合においても、大当り表示結果が表示された以後において遊技者にとって報知演出がいつ実行されるかわからず、また再抽選演出が複数回(例えば大当り遊技の開始前と大当り遊技の開始後)実行される可能性もあるため、長期間にわたって遊技者の確変状態への移行に対する期待感を持続させることができる。また、遊技制御用マイクロコンピュータ560からの演出切替コマンドを受信したときに、大当り終了後再抽選演出を行うので、遊技者にとって大当り終了後再抽選演出がいつ実行されるかわからず、大当り遊技状態中の遊技者の興趣を高めることができる。さらに、大当り開始前再抽選演出において確変状態に移行することを報知したにもかかわらず大当り終了後再抽選演出が実行されてしまうという不自然な状況が発生してしまうことを防止することができる。
また、上述した実施の形態では、遊技制御用マイクロコンピュータ560が、高ベース状態でないときに2R確変大当りとすることに決定したときは、2R確変大当り遊技状態が終了した後に「高確率かつ低ベース状態」または「高確率かつ高ベース状態」に制御すると判定し、「高ベース状態」であるときに2R確変大当りとすることに決定したときは、2R確変大当り遊技状態が終了した後に「高確率かつ高ベース状態」に制御すると判定するように構成されているので、2R確変大当り遊技状態が開始されたときの遊技状態(高ベースであるか、低ベースであるか)によって2R確変大当り遊技の終了後の遊技状態を異ならせることができ、遊技者の興趣を高めることができる。また、2R確変大当りが開始されたときの遊技状態がいずれであっても、2R確変大当り遊技状態終了後に不利な状態となることがない(高ベース状態から低ベース状態に移行することがない)ので、遊技者の興趣が低下することを防止することができる。
上記のように、上述した実施の形態では、「高ベース状態」であるときに2R確変大当りとすることに決定したときは、2R確変大当り遊技状態が終了した後に「高確率かつ高ベース状態」に制御する構成とされているが、「低確率かつ高ベース状態」であるときに2R確変大当りとすることに決定したときは、2R確変大当り遊技状態が終了した後に「高確率かつ低ベース状態」または「高確率かつ高ベース状態」に制御するようにしてもよい。
また、上述した実施の形態では、演出制御用マイクロコンピュータ(音・ランプ制御用マイクロコンピュータ350、表示制御用マイクロコンピュータ100)が、確変状態に移行したときに、確変状態に移行したことを報知するか否か判定し、報知すると判定したときに確変状態に移行したことを報知するように構成されているので、確変状態に制御されている可能性があるという期待感を継続的に持たせることができ、遊技者の興趣を高めることができる。
また、上述した実施の形態では、演出制御用マイクロコンピュータ(音・ランプ制御用マイクロコンピュータ350、表示制御用マイクロコンピュータ100)が、確変状態において実行された可変表示の回数が確変終了回数(例えば100回)に達する前に2R確変大当りに移行させることが決定されたときは、その2R確変大当り遊技の終了後には確変状態が継続したことを報知しないと判定し、報知しない旨の判定がなされたときには、当該2R確変大当り遊技が終了したあと確変終了回数(例えば100回)の残り回数の可変表示が実行されたときに、確変状態が継続したことを報知する構成とされているので、遊技者の興趣を高めることができる。また、大当りの発生により確変状態における可変表示の残り回数が無効とされたことを遊技者に悟られ難くすることができる。
また、上述した実施の形態では、演出制御用マイクロコンピュータ(音・ランプ制御用マイクロコンピュータ350、表示制御用マイクロコンピュータ100)が、時短状態(低確率かつ高ベース状態)において実行された可変表示の回数が時短終了回数(例えば100回)に達する前に、2R確変大当り(特に、大当り遊技演出が終了したあとに高確率かつ高ベース状態となる2R確変大当り)に移行させることが決定されたときは、その2R確変大当り遊技の終了後には確変状態(特に、高確率かつ高ベース状態)に移行したことを報知しないと判定し、報知しない旨の判定がなされたときには、当該2R確変大当り遊技が終了したあと時短終了回数(例えば100回)の残り回数の可変表示が実行されたときに、時短状態から確変状態に移行したことを報知する構成とされているので、遊技者の興趣を高めることができる。また、大当りの発生により時短状態における可変表示の残り回数が無効とされたことを遊技者に悟られ難くすることができる。なお、上記のように高確率かつ高ベース状態に移行したことを報知しない場合に、高確率かつ高ベース状態に移行したのか低確率かつ高ベース状態が維持されたのかがわからないような演出(例えば、時短状態または確変状態と同じ演出、時短状態や確変状態の演出とは異なる専用の演出など)を行うようにしてもよい。
なお、上述した実施の形態では、表示制御用マイクロコンピュータ100が遊技状態の報知を行うか否かを判定することについて説明したが、同様にして、音・ランプ制御用マイクロコンピュータ350も遊技状態の報知を行うか否かを判定し、判定結果に応じた処理を実行する。また、遊技状態の報知を行うか否かの判定を音・ランプ制御用マイクロコンピュータ350のみが行い、その判定結果を表示制御コマンドによって表示制御用マイクロコンピュータ100に通知するようにしてもよい。さらに、遊技状態の報知を行うか否かの判定を遊技制御用マイクロコンピュータ560が行うこととし、その判定結果を演出制御用マイクロコンピュータ(音・ランプ制御用マイクロコンピュータ350、表示制御用マイクロコンピュータ100)に通知するようにしてもよい。この場合、例えば、遊技制御用マイクロコンピュータ560は、確変状態において実行された可変表示の回数が確変終了回数(例えば100回)に達する前に2R確変大当りに移行させることを決定したときは、その2R確変大当り遊技の終了後には確変状態が継続したことを報知しないと判定し、報知しない旨の判定がなされたときには、当該2R確変大当り遊技が終了したあと、始動入賞が発生する毎に、確変終了回数(例えば100回)の残り回数の可変表示が実行されたか否か監視し、残り回数の可変表示が実行されたときに、確変状態が継続したことを報知することになる。
また、上述した実施の形態では、遊技制御用マイクロコンピュータ560が、可変表示時間が経過したことにより、飾り図柄の可変表示の停止を指示する図柄停止コマンドを送信し、演出制御用マイクロコンピュータ(音・ランプ制御用マイクロコンピュータ350、表示制御用マイクロコンピュータ100)が、遊技制御用マイクロコンピュータ560からの図柄停止コマンドを受信したことにより、可変表示装置9における飾り図柄の可変表示を停止して、可変表示装置9に可変表示の表示結果を表示する構成とされているので、演出制御用マイクロコンピュータが変動時間を誤って特定したときであっても、正しいタイミングで表示結果を導出表示することができる。
また、上述した実施の形態では、遊技制御用マイクロコンピュータ560が、リーチ表示結果とするときは、大当り表示結果に対する表示順序における飾り図柄の偏差毎に1つずつ用意されている複数種類の表示結果指定コマンドから、飾り図柄の偏差に応じた表示結果指定コマンドを選択して送信する構成とされているので、表示結果が異なる場合であっても飾り図柄の偏差が同じ(左右図柄に対する中図柄のずれ数が同じ)であれば同一のコマンドを使用することができるため、コマンドの送信回数を削減することができる。
なお、上述した実施の形態では、大当り前再抽選決定用乱数を用いて大当り前再抽選演出を実行するか否か決定する構成としていたが、変動パターンを決定する際に、大当り前再抽選演出を実行するか否かが決定されるようにしてもよい。この場合、例えば図49に示すような大当り種類によって決定率が定められているテーブルを用いて、大当り前再抽選演出を実行するか否かを含む変動パターンを決定するようにすればよい。
また、上述した実施の形態では、2R確変大当りAとするか2R確変大当りBとするかによって異なる表示結果指定コマンドが選択される構成としていたが、2R確変大当りAとするか2R確変大当りBとするかにかかわらず、2R確変大当りとするときは同一の表示結果指定コマンドが選択されるようにしてもよい。すなわち、2R確変大当りAとするときと、2R確変大当りBとするときとで、共通の表示結果指定コマンドが用いられるようにしてもよい。
また、2R確変大当りAとするときと、2R確変大当りBとするときとで、共通の表示結果指定コマンドが用いられるようにした場合には、変動パターンによって区別するようにしてもよい。すなわち、2R確変大当りAとするか2R確変大当りBとするかによって、異なる変動パターンが選択されるようにしてもよい。また、2R確変大当りAとするか2R確変大当りBとするかによって異なる変動パターンとするのではなく、大当り遊技演出終了後の遊技状態(高確率かつ低ベース状態であるか高確率かつ高ベース状態であるか)によって異なる変動パターンとするようにしてもよい。
また、上述した実施の形態では、表示制御用マイクロコンピュータ100が停止表示する飾り図柄を決定するようにしていたが、可変表示装置9にて停止表示する飾り図柄をも音・ランプ制御用マイクロコンピュータ350が決定し、その決定結果を表示制御コマンドによって表示制御用マイクロコンピュータ100に通知するようにしてもよい。また、その他の表示制御用マイクロコンピュータ100側で実行される判定処理についても、音・ランプ制御用マイクロコンピュータ350にて実行し、判定処理による判定結果のうち表示制御用マイクロコンピュータ100にて使用する判定結果を表示制御コマンドによって表示制御用マイクロコンピュータ100に通知するようにしてもよい。
また、上述した実施の形態では、確変回数や時短回数が残っている状態で大当りが発生したときは、残り回数は失われる構成としていたが、確変回数や時短回数が残っている状態で確変大当りが発生したときには、残り回数が上乗せされるようにしてもよい。
また、上述した実施の形態では、確変回数や時短回数だけ可変表示が実行されても大当りが発生しなければ確変状態や時短状態が終了(パンク)する構成としていたが、2R確変大当りの場合には次回の大当りが発生するまで確変状態や時短状態が継続するようにしてもよい。この場合、確変状態や時短状態であるときに確変大当りが発生したときには、次回の大当りまで確変状態が継続する旨の継続報知や、時短状態から確変状態に成りあがる旨の報知を行うようにすればよい。
また、上述した実施の形態では、再抽選演出は、通常大当りから確変大当りとなる演出に限らず、遊技者にとってより有利な大当りに成り上がる演出であれば、どのような演出であってもよい。例えば、通常大当りから時短大当りとなる演出、時短大当りから確変大当りとなる演出、確変状態かつ低ベース状態から確変状態かつ高ベース状態に遊技状態が移行する大当りとなる演出、少ない確変回数になる大当りから多い確変回数になる大当りとなる演出、少ない時短回数になる大当りから多い時短回数になる大当りとなる演出、ラウンド数の少ない大当りからラウンド数の多い大当りとなる演出などが考えられる。
なお、上述した実施の形態では言及されていないが、「高ベース状態」は、特別図柄時短状態、普通図柄時短状態、可変入賞装置15の開放時間の延長、可変入賞装置15の開放回数の増加のうち、少なくとも1つが行われる状態であればよい。
また、上述した実施の形態では、突然確変大当りが発生する遊技機について説明したが、突然時短大当りが発生する遊技機についても適用することができる。なお、突然時短大当りとは、通常の大当りよりも少ないラウンド数(例えば2回)あるいは短いラウンド時間の大当り遊技演出が実行されたあと、時短状態に移行する大当りである。
また、この実施の形態では、遊技機への電源投入が開始されてからタイマ割込設定を行うまでに乱数回路503の初期設定(乱数回路設定処理)を行うとともに、乱数回路設定処理において、遊技制御用マイクロコンピュータ560固有のIDナンバにもとづく値を乱数の初期値として設定する。そのため、乱数回路503が生成する乱数のランダム性を向上させることができる。また、乱数のランダム性を向上させることができるので、乱数生成のタイミングを遊技者や遊技店に認識されにくくすることができ、無線信号を用いた取り込み信号を遊技機に対して発生させることによって、大当り状態などの特定遊技状態への移行条件を不正に成立させられてしまうことを防止することができる。
また、この実施の形態では、遊技制御処理に用いる各乱数のうち、大当りの種類を決定するための各判定用乱数(大当り種類判定用乱数や大当り図柄決定用乱数)として、ソフトウェア乱数を用いる。そして、大当りとするか否かを決定するための大当り判定用乱数のみを乱数回路503を用いて発生させる。例えば、大当り判定用乱数に加えて、大当り種類判定用乱数や大当り図柄決定用乱数などの各判定用乱数も乱数回路503を用いて発生させるようにすると、乱数回路503を用いて複数種類の乱数を発生させることとなり、乱数回路503の構成が必要以上に複雑化してしまう。この実施の形態では、大当り判定用乱数のみを乱数回路503を用いて発生させるので、乱数回路503の回路構成が複雑化することを防止することができる。
また、この実施の形態では、乱数回路503が発生した乱数にもとづいて大当りとすると判定すると、大当り種類判定用乱数を読み出して確変とするか否か等を判定する。例えば、大当りとするか否かの判定と確変とするか否か等の判定とをともにソフトウェア乱数を用いて行う場合、無線信号などを用いた取り込み信号を遊技機に対して発生させたり入力したりことによって(例えば、不正信号によってソフトウェア乱数の初期値を狙うことによって)、大当りと確変状態等(具体的には、確変状態や時短状態)への移行条件とを不正に成立させられてしまう可能性がある。この実施の形態では、乱数回路503が発生させた乱数を用いて大当りとするか否かの判定を行うので、大当りの判定と確変等の判定を両方ともソフトウェア乱数を用いて行う場合と比較して、大当りと確変状態への移行条件とを不正に成立させられてしまう可能性を低減できる。また、大当りと判定したときのみ大当り種類判定用乱数を読み出して確変とするか否か等を判定するので、大当りと判定された場合でなければ、不正信号を発生させたり入力したりする行為を行っても意味がないので、大当り種類判定用乱数の初期値を不正信号により狙われたときに生じる被害が少なくて済む。
なお、全ての判定用乱数を乱数回路503を用いて発生させるようにすれば、大当り判定用乱数だけを乱数回路503を用いて発生させる場合と比較して、大当りや確変状態への移行条件を不正に成立させられてしまう可能性をより効果的に低減できるが、乱数回路503の回路構成が複雑になってしまう。この実施の形態では、大当り判定用乱数のみを乱数回路503を用いて発生させることによって、乱数回路503の回路構成が必要以上に複雑化することを防止している。
また、この実施の形態では、乱数回路503の反転回路532が極性を反転させた反転クロック信号SI2を生成し、反転クロック信号SI2に同期して乱数の記憶を指示するためのラッチ信号を出力する。そのため、乱数を更新するタイミングと乱数値記憶回路531に乱数を記憶させるタイミングとをずらすことができ、生成した乱数を安定して確実に記憶させることができる。
また、この実施の形態では、初期値決定用乱数にもとづいて、大当り種類判定用乱数や大当り図柄決定用乱数などの各判定用乱数の所定の初期値を設定する。また、各判定用乱数を生成するためのカウンタのカウント値は、1周するたびに設定値(初期値)が変更される。そのため、特定遊技状態の種類を決定するために用いる判定用乱数のランダム性を向上させることができる。
実施の形態2.
上記に示した実施の形態では、ラッチ信号生成回路533に入力するクロック信号を反転させて、乱数を更新するタイミングと乱数値記憶回路531に乱数を記憶させるタイミングとをずらすようにしたが、ラッチ信号生成回路533に入力するクロック信号を遅延させるようにしてもよい。以下、ラッチ信号生成回路533に入力するクロック信号を遅延させる第2の実施の形態を説明する。
なお、本実施の形態において、第1の実施の形態と同様の構成および処理をなす部分についてはその詳細な説明を省略し、主として第1の実施の形態と異なる部分について説明する。
図82は、乱数回路503の他の構成例を示すブロック図である。なお、この実施の形態において、12ビット乱数回路503aと16ビット乱数回路503bとの基本的な構成は同じである。図82に示すように、この実施の形態では、乱数回路503が、図7で示した反転回路532に代えて遅延回路532Aを含む点で、第1の実施の形態と異なる。
遅延回路532Aは、クロック信号出力回路524から入力する乱数発生用クロック信号SI1を遅延させることによって、クロック信号を遅延させた遅延クロック信号SI4を生成する。また、遅延回路532Aは、生成した遅延クロック信号SI4をラッチ信号生成回路533に出力する。従って、この実施の形態では、ラッチ信号生成回路533は、乱数発生用クロック信号SI1を遅延させた遅延クロック信号SI4に同期して、乱数値記憶回路531にラッチ信号を出力することになる。
なお、遅延回路532A以外の乱数回路503の各構成要素の基本的な機能は、第1の実施の形態で示したそれらの機能と同様である。
以上に説明したように、この実施の形態では、乱数回路503の遅延回路532Aが遅延クロック信号SI4を生成し、遅延クロック信号SI4に同期して乱数の記憶を指示するためのラッチ信号を出力する。そのため、乱数を更新するタイミングと乱数値記憶回路531に乱数を記憶させるタイミングとをずらすことができ、生成した乱数を安定して確実に記憶させることができる。
次に、上記に示した各実施の形態における遊技機の他の一例であるスロット機(スロットマシン)の全体の構成について説明する。図83はスロット機を正面からみた正面図である。
図83に示すように、スロット機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の手前左右には、それぞれランプが設けられている。操作テーブル620の下部には、効果音等を出力するスピーカ630が設けられている。
遊技パネル601の上部には、遊技者に遊技方法や遊技状態等を報知する画像表示装置(LCD:液晶表示装置)640が設けられている。例えば、入賞発生時に、キャラクタが所定動作を行う画像を画像表示装置640に表示することで、後述する当選フラグが設定されていることを遊技者に報知する。また、画像表示装置640の左右には、効果音を発する2つのスピーカ641L,641Rが設けられている。
なお、スロット機600で発生する入賞役には、小役入賞と、リプレイ入賞と、ビッグボーナス入賞と、レギュラーボーナス入賞とがある。スロット機600では、スタートスイッチ625を操作したタイミングで乱数が抽出され、上記いずれかの入賞役による入賞の発生を許容するか否かを決定する。入賞の発生が許容されていることを、「内部当選している」という。内部当選した場合、その旨を示す当選フラグがスロット機600の内部で設定される。当選フラグが設定された状態でのゲームでは、その当選フラグに対応する入賞役を引き込むことが可能なようにリール602a〜602cが制御される。一方、当選フラグが設定されていない状態でのゲームでは、入賞が発生しないようにリール602a〜602cが制御される。
なお、スロット機600の遊技の進行を制御する遊技制御用マイクロコンピュータは、乱数を発生する乱数回路(12ビット乱数回路および16ビット乱数回路)を内蔵する。また、遊技制御用マイクロコンピュータのCPUは、スタートスイッチ625を操作したタイミングで、乱数回路が発生した乱数(ランダムR)を抽出する。例えば、スタートスイッチ625が押下されると、遊技制御用マイクロコンピュータのCPUは、スタートスイッチ625から検出信号SSを入力する。また、乱数回路のタイマ回路534は、所定時間継続して検出信号SSが入力されたことを検出すると、乱数値取込レジスタ539に乱数値取込データ「01h」を書き込み、ラッチ信号生成回路533がラッチ信号SLを乱数値記憶回路531に出力する。ラッチ信号SLを入力すると、乱数値記憶回路531は、カウンタ521が更新したカウント値を読み込んで記憶する。また、遊技制御用マイクロコンピュータのCPUは、所定回数(例えば、3回)継続して検出信号SSが入力されたことを検出すると、出力制御用信号SCを乱数回路の乱数値記憶回路に出力し、乱数回路から乱数値(ランダムR)を抽出する。そして、遊技制御用マイクロコンピュータのCPUは、抽出したランダムRにもとづいて入賞の発生を許容するか否かを決定する。
次に、スロット機により提供されるゲームの概要について説明する。
例えば、コイン投入口624からコインが投入されBETスイッチ621又はMAXBETスイッチ622が押下される等してかけ数が設定されると、スタートスイッチ625の操作が有効となる。そして、遊技者によってスタートスイッチ625が操作されると、可変表示装置602に設けられている各図柄表示リール602a〜602cが回転を始める。また、スタートスイッチ625を操作したタイミングで、レギュラーボーナス入賞又はビッグボーナス入賞が内部当選した場合には、例えば、画像表示装置640に所定のキャラクタが所定の動作を行っている画面を表示する等して、内部当選した旨が遊技者等に報知される。
各図柄表示リール602a〜602cが回転を始めてから所定時間が経過すると、各リールストップスイッチ626a〜626cの操作が有効となる。この状態で、遊技者が各リールストップスイッチ626a〜626cのいずれかを押下すれば、操作されたストップスイッチに対応するリールの回転が停止する。なお、各図柄表示リール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によって行うようにすればよい。
上記の各実施の形態では、以下のような遊技機が開示されている。
各々を識別可能な複数種類の識別情報(例えば、飾り図柄)の可変表示を行い表示結果を導出表示する可変表示装置(例えば、可変表示装置9)を備え、該可変表示装置に特定表示結果(例えば大当り表示結果)が導出表示されたときに遊技者にとって有利な特定遊技状態(例えば大当り遊技状態)に移行させる遊技機であって、遊技の進行を制御する遊技制御用マイクロコンピュータ(例えば遊技制御用マイクロコンピュータ560)が搭載された遊技制御基板(例えば主基板31)と、遊技制御用マイクロコンピュータからのコマンドにもとづいて遊技演出を行う発光体(例えば、装飾ランプ25、天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28c等)および音出力装置(例えばスピーカ27)の少なくとも一方を制御する音・発光体制御用マイクロコンピュータ(例えば音・ランプ制御用マイクロコンピュータ350)が搭載された音・発光体制御基板(例えば音・ランプ制御基板35)と、音・発光体制御用マイクロコンピュータからのコマンドにもとづいて可変表示装置の表示状態を制御する表示制御用マイクロコンピュータ(例えば表示制御用マイクロコンピュータ100)が搭載された表示制御基板(例えば表示制御基板80)と、を備え、遊技制御用マイクロコンピュータは、特定遊技状態として、所定の開始条件が成立したときから所定期間が経過するまで実行される遊技者にとって有利なラウンドが所定回数(例えば、15回)繰り返し実行されたことによって終了し、その後に識別情報の可変表示の表示結果を特定表示結果とする確率を通常状態であるときに比べて向上させた特別有利状態(例えば確変状態)に制御される第1特定遊技状態(例えば15R確変大当り遊技状態)と、所定の開始条件が成立したときから所定期間が経過するまで実行される遊技者にとって有利なラウンドが所定回数繰り返し実行されたことによって終了し、その後に特別有利状態に制御されない第2特定遊技状態(例えば通常大当り遊技状態)と、所定期間よりも短い期間および所定回数よりも少ない回数(例えば、2回)の少なくともいずれかでラウンドが繰り返し実行されたことによって終了し、その後に特別有利状態に制御される第3特定遊技状態(例えば2R確変大当り遊技状態)とのうちいずれか1つの特定遊技状態に制御する特定遊技状態制御手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS305〜S307を実行する部分)と、第1特定遊技状態に移行させるか否かと、第2特定遊技状態に移行させるか否かと、第3特定遊技状態に移行させるか否かとを表示結果の導出表示以前に決定する事前決定手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS348,S350を実行する部分)と、事前決定手段による決定結果にもとづいて、特定遊技状態に移行させるか否かと、特定遊技状態に移行させるときには移行させる特定遊技状態の種類を示す表示結果コマンドを音・発光体制御用マイクロコンピュータに送信する表示結果コマンド送信手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS389を実行する部分)と、を含み、音・発光体制御用マイクロコンピュータは、遊技制御用マイクロコンピュータからの表示結果コマンドに所定の演算処理を行った表示制御コマンド(例えばステップS509で決定された変動パターンコマンド)を表示制御用マイクロコンピュータに送信する表示制御コマンド送信手段(例えば、音・ランプ制御用マイクロコンピュータ350におけるステップS512を実行する部分)を含み、表示制御用マイクロコンピュータは、音・発光体制御用マイクロコンピュータからの表示制御コマンドにもとづいて、可変表示装置において識別情報の可変表示を実行する可変表示実行手段(例えば、表示制御用マイクロコンピュータ100におけるステップS800〜S803を実行する部分)を含む遊技機。
遊技制御用マイクロコンピュータが、特定遊技状態として、所定の開始条件が成立したときから所定期間が経過するまで実行される遊技者にとって有利なラウンドが所定回数繰り返し実行されたことによって終了し、その後に識別情報の可変表示の表示結果を特定表示結果とする確率を通常状態であるときに比べて向上させた特別有利状態に制御される第1特定遊技状態と、所定の開始条件が成立したときから所定期間が経過するまで実行される遊技者にとって有利なラウンドが所定回数繰り返し実行されたことによって終了し、その後に特別有利状態に制御されない第2特定遊技状態と、所定期間よりも短い期間および所定回数よりも少ない回数の少なくともいずれかでラウンドが繰り返し実行されたことによって終了し、その後に特別有利状態に制御される第3特定遊技状態とのうちいずれか1つの特定遊技状態に制御する特定遊技状態制御手段と、第1特定遊技状態に移行させるか否かと、第2特定遊技状態に移行させるか否かと、第3特定遊技状態に移行させるか否かとを表示結果の導出表示以前に決定する事前決定手段と、事前決定手段による決定結果にもとづいて、特定遊技状態に移行させるか否かと、特定遊技状態に移行させるときには移行させる特定遊技状態の種類を示す表示結果コマンドを音・発光体制御用マイクロコンピュータに送信する表示結果コマンド送信手段と、を含み、音・発光体制御用マイクロコンピュータは、遊技制御用マイクロコンピュータからの表示結果コマンドに所定の演算処理を行った表示制御コマンドを表示制御用マイクロコンピュータに送信する表示制御コマンド送信手段を含み、表示制御用マイクロコンピュータは、音・発光体制御用マイクロコンピュータからの表示制御コマンドにもとづいて、可変表示装置において識別情報の可変表示を実行する可変表示実行手段を含む構成とされているので、可変表示、音出力、及び発光体の点灯による各演出に統一性をもたせることができ、演出内容の一部を選択・決定する処理の重複やコマンドをサブ側制御基板の間で戻す処理等の無駄な処理を低減させることができる。
さらに、遊技領域に設けられた始動入賞領域に遊技媒体(例えば遊技球)が進入したこと(例えば、始動入賞口14への遊技球の入賞)にもとづいて識別情報の可変表示を行う遊技機であって、事前決定手段により第3特定遊技状態(例えば2R確変大当り遊技状態)に移行させることが決定されたときに、第3特定遊技状態が終了した後、特別有利状態(例えば確変状態)のうち始動入賞領域への遊技媒体の入賞のし易さが通常状態と同一の第1特別有利状態(例えば、高ベース状態でない確変状態)と該第1特別有利状態よりも始動入賞領域へ遊技媒体が入賞し易い第2特別有利状態(例えば、高ベース状態かつ確変状態)とのいずれの特別有利状態に制御されるかを判定する特別有利状態判定手段(例えば遊技制御用マイクロコンピュータ560におけるステップS431,S435,S437を実行する部分)を備え、特別有利状態判定手段は、特別有利状態でないときに事前決定手段により第3特定遊技状態に移行させることが決定されたときは、該第3特定遊技状態が終了した後に第1特別有利状態または第2特別有利状態に制御されると判定し(例えばステップS432のNと判定したときにはステップS433で時短フラグをセットし、ステップS437のNと判定したときには時短フラグをセットしない)、第2特別有利状態であるときに事前決定手段により第3特定遊技状態に移行させることが決定されたときは、該第3特定遊技状態が終了した後に第2特別有利状態に制御されると判定する(例えばステップS432のY,ステップS436のYと判定したときに時短フラグをセットしたままとする)ように構成された遊技機。
遊技領域に設けられた始動入賞領域に遊技媒体が進入したことにもとづいて識別情報の可変表示を行う遊技機であって、事前決定手段により第3特定遊技状態に移行させることが決定されたときに、第3特定遊技状態が終了した後、特別有利状態のうち始動入賞領域への遊技媒体の入賞のし易さが通常状態と同一の第1特別有利状態と該第1特別有利状態よりも始動入賞領域へ遊技媒体が入賞し易い第2特別有利状態とのいずれの特別有利状態に制御されるかを判定する特別有利状態判定手段を備え、特別有利状態判定手段が、特別有利状態でないときに事前決定手段により第3特定遊技状態に移行させることが決定されたときは、該第3特定遊技状態が終了した後に第1特別有利状態または第2特別有利状態に制御されると判定し、第2特別有利状態であるときに事前決定手段により第3特定遊技状態に移行させることが決定されたときは、該第3特定遊技状態が終了した後に第2特別有利状態に制御されると判定するように構成されているので、第3特定遊技状態が開始されたときの遊技状態によって第3特定遊技状態終了後の遊技状態を異ならせることができ、遊技者の興趣を高めることができる。また、第3特定遊技状態が開始されたときの遊技状態がいずれであっても、第3特定遊技状態終了後に不利な状態となることがないので、遊技者の興趣が低下することを防止することができる。
さらに、あらかじめ定められている可変表示の実行条件(例えば、始動入賞口14への遊技球の入賞)が成立した後、可変表示の開始条件(例えば、特別図柄の最終停止および大当たり遊技の終了)の成立にもとづいて識別情報の可変表示を開始する遊技機であって、遊技制御用マイクロコンピュータは、乱数を発生する乱数回路(例えば、乱数回路503)を内蔵し、遊技の進行を制御する遊技制御処理を実行し、乱数回路は、所定周期のクロック信号を生成し、乱数回路に出力するクロック信号生成手段(例えば、クロック信号出力回路524)と、クロック信号の入力にもとづいて、数値データを更新可能な所定の範囲において、所定の初期値から所定の最終値まで予め定められた順序に従って数値データを更新する数値更新手段(例えば、カウンタ521)と、クロック信号生成手段が出力するクロック信号の極性を反転させるクロック信号反転手段(例えば、反転回路532)と、識別情報の可変表示の実行条件が成立したときに、クロック信号反転手段が反転させたクロック信号(例えば、反転クロック信号SI2)に同期して、数値更新手段が更新する数値データを記憶させるためのラッチ信号を出力するラッチ信号出力手段(例えば、ラッチ信号生成回路533)と、ラッチ信号出力手段によってラッチ信号が出力されたことにもとづいて、数値更新手段によって更新された数値データを乱数値として記憶する乱数記憶手段(例えば、乱数値記憶回路531)とを含み、遊技制御用マイクロコンピュータは、遊技機への電力供給が開始されたときに、乱数回路の初期設定を行う乱数回路初期設定手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS15を実行する部分)と、乱数回路初期設定手段が乱数回路の初期設定を行ったあとに、所定時間毎にタイマ割込を発生させるための設定をする割込設定手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS16を実行する部分)と、タイマ割込が発生したときに、遊技制御処理(例えば、タイマ割込処理におけるステップS21〜S35(ステップS30,S33を除く)の処理)を含むタイマ割込処理を実行する割込処理実行手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS20〜S35を実行する部分)と、割込処理実行手段によるタイマ割込処理において、可変表示の実行条件が成立したときに、乱数記憶手段が記憶する乱数値を読み出す乱数読出手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS325を実行する部分)とを含み、事前決定手段は、乱数読出手段によって読み出された乱数値が所定の判定値と合致するか否かを判定することによって、可変表示装置に導出表示される表示結果を特定表示結果とするか否かを決定し(例えば、ステップS348を実行する部分)、乱数回路初期設定手段は、初期設定において、数値更新手段が更新する数値データの所定の初期値を、遊技制御用マイクロコンピュータ毎に付与された遊技制御用マイクロコンピュータを識別するためのマイコン識別情報(例えば、遊技制御用マイクロコンピュータ560固有のIDナンバ)にもとづいて設定する(例えば、ステップS154b)ように構成された遊技機。
遊技制御用マイクロコンピュータが、遊技機への電源投入が開始されてからタイマ割込設定を行うまでに乱数回路の初期設定を行うとともに、初期設定においてマイコン識別情報にもとづく値を乱数の初期値として設定するように構成されているので、乱数回路が生成する乱数のランダム性を向上させることができる。また、乱数のランダム性を向上させることができるので、乱数生成のタイミングを遊技者や遊技店に認識されにくくすることができ、無線信号を用いた取り込み信号を遊技機に対して発生させることによって、特定遊技状態への移行条件を不正に成立させられてしまうことを防止することができる。さらに、極性を反転させたクロック信号に同期して乱数の記憶を指示するためのラッチ信号を出力するように構成されているので、乱数を更新するタイミングと乱数記憶手段に乱数を記憶させるタイミングとをずらすことができ、生成した乱数を安定して確実に記憶させることができる。
さらに、あらかじめ定められている可変表示の実行条件(例えば、始動入賞口14への遊技球の入賞)が成立した後、可変表示の開始条件(例えば、特別図柄の最終停止および大当たり遊技の終了)の成立にもとづいて識別情報の可変表示を開始する遊技機であって、遊技制御用マイクロコンピュータは、乱数を発生する乱数回路(例えば、乱数回路503)を内蔵し、遊技の進行を制御する遊技制御処理を実行し、乱数回路は、所定周期のクロック信号を生成し、乱数回路に出力するクロック信号生成手段(例えば、クロック信号出力回路524)と、クロック信号の入力にもとづいて、数値データを更新可能な所定の範囲において、所定の初期値から所定の最終値まで予め定められた順序に従って数値データを更新する数値更新手段(例えば、カウンタ521)と、クロック信号生成手段が出力するクロック信号を遅延させるクロック信号遅延手段(例えば、遅延回路532A)と、識別情報の可変表示の実行条件が成立したときに、クロック信号遅延手段が遅延させたクロック信号(例えば、遅延クロック信号SI4)に同期して、数値更新手段が更新する数値データを記憶させるためのラッチ信号を出力するラッチ信号出力手段(例えば、ラッチ信号生成回路533)と、ラッチ信号出力手段によってラッチ信号が出力されたことにもとづいて、数値更新手段によって更新された数値データを乱数値として記憶する乱数記憶手段(例えば、乱数値記憶回路531)とを含み、遊技制御用マイクロコンピュータは、遊技機への電力供給が開始されたときに、乱数回路の初期設定を行う乱数回路初期設定手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS15を実行する部分)と、乱数回路初期設定手段が乱数回路の初期設定を行ったあとに、所定時間毎にタイマ割込を発生させるための設定をする割込設定手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS16を実行する部分)と、タイマ割込が発生したときに、遊技制御処理(例えば、タイマ割込処理におけるステップS21〜S35(ステップS30,S33を除く)の処理)を含むタイマ割込処理を実行する割込処理実行手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS20〜S35を実行する部分)と、割込処理実行手段によるタイマ割込処理において、可変表示の実行条件が成立したときに、乱数記憶手段が記憶する乱数値を読み出す乱数読出手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS325を実行する部分)とを含み、事前決定手段は、乱数読出手段によって読み出された乱数値が所定の判定値と合致するか否かを判定することによって、可変表示装置に導出表示される表示結果を特定表示結果とするか否かを決定し(例えばステップS348)、乱数回路初期設定手段は、初期設定において、数値更新手段が更新する数値データの所定の初期値を、遊技制御用マイクロコンピュータ毎に付与された遊技制御用マイクロコンピュータを識別するためのマイコン識別情報(例えば、遊技制御用マイクロコンピュータ560固有のIDナンバ)にもとづいて設定する(例えばステップS154b)ように構成された遊技機。
遊技制御用マイクロコンピュータが、遊技機への電源投入が開始されてからタイマ割込設定を行うまでに乱数回路の初期設定を行うとともに、初期設定においてマイコン識別情報にもとづく値を乱数の初期値として設定するように構成されているので、乱数回路が生成する乱数のランダム性を向上させることができる。また、乱数のランダム性を向上させることができるので、乱数生成のタイミングを遊技者や遊技店に認識されにくくすることができ、無線信号を用いた取り込み信号を遊技機に対して発生させることによって、特定遊技状態への移行条件を不正に成立させられてしまうことを防止することができる。さらに、遅延させたクロック信号に同期して乱数の記憶を指示するためのラッチ信号を出力するように構成されているので、乱数を更新するタイミングと乱数記憶手段に乱数を記憶させるタイミングとをずらすことができ、生成した乱数を安定して確実に記憶させることができる。