以下、本発明の好適な実施の形態を図面に基づいて説明する。
図1は、本発明の一実施形態の遊技機の説明図である。
本実施形態の遊技機10は前面枠12を備え、該前面枠12は本体枠(外枠)11にヒンジ13を介して開閉回動可能に組み付けられている。遊技盤30(図2参照)は前面枠12の表側に形成された収納部(図示省略)に収納されている。また、前面枠(内枠)12には、遊技盤30の前面を覆うカバーガラス(透明部材)14を備えたガラス枠15が取り付けられている。
また、ガラス枠15の上部には、内部にランプ及びモータを内蔵した照明装置(ムービングライト)16や払出異常報知用のランプ(LED)17が設けられている。また、ガラス枠15の左右には内部にランプ等を内蔵し装飾や演出のための発光をする枠装飾装置18や、音響(例えば、効果音)を発するスピーカ(上スピーカ)19aが設けられている。さらに、前面枠12の下部にもスピーカ(下スピーカ)19bが設けられている。
また、前面枠12の下部には、図示しない打球発射装置に遊技球を供給する上皿21、遊技機10の裏面側に設けられている球払出装置から払い出された遊技球が流出する上皿球出口22、上皿21が一杯になった状態で払い出された遊技球を貯留する下皿23及び打球発射装置の操作部24等が設けられている。さらに、上皿21の上縁部には、遊技者からの操作入力を受け付けるための操作スイッチを内蔵した演出ボタン25が設けられている。さらに、前面枠12下部右側には、前面枠12を開放したり施錠したりするための鍵26が設けられている。
この実施形態の遊技機10においては、遊技者が上記操作部24を回動操作することによって、打球発射装置が、上皿21から供給される遊技球を遊技盤30前面の遊技領域32に向かって発射する。また、遊技者が演出ボタン25を操作することによって、表示装置41(図2参照)における変動表示ゲーム(飾り特図変動表示ゲーム)において、遊技者の操作を介入させた演出等を行わせることができる。さらに、上皿21上方のガラス枠15の前面には、遊技者が隣接する球貸機から球貸しを受ける場合に操作する球貸ボタン27、球貸機のカードユニットからプリペイドカードを排出させるために操作する排出ボタン28、プリペイドカードの残高を表示する残高表示部(図示省略)等が設けられている。
次に、図2を用いて遊技盤30の一例について説明する。図2は、本実施形態の遊技盤30の正面図である。
遊技盤30の表面には、ガイドレール31で囲われた略円形状の遊技領域32が形成されている。遊技領域32は、遊技盤30の四隅に各々設けられた樹脂製のサイドケース33及びガイドレール31に囲繞されて構成される。遊技領域32には、ほぼ中央に表示装置41を備えたセンターケース40が配置されている。表示装置41は、センターケース40に設けられた凹部に、センターケース40の前面より奥まった位置に取り付けられている。即ち、センターケース40は表示装置41の表示領域の周囲を囲い、表示装置41の表示面よりも前方へ突出するように形成されている。
表示装置41は、例えば、LCD(液晶表示器)、CRT(ブラウン管)等の表示画面を有する装置で構成されている。表示画面の画像を表示可能な領域(表示領域)には、複数の識別情報(特別図柄)や特図変動表示ゲームを演出するキャラクタや演出効果を高める背景画像等が表示される。表示装置41の表示画面においては、識別情報として割り当てられた複数の特別図柄が変動表示(可変表示)されて、特図変動表示ゲームに対応した飾り特図変動表示ゲームが行われる。また、表示画面には遊技の進行に基づく演出のための画像(例えば、大当たり表示画像、ファンファーレ表示画像、エンディング表示画像等)が表示される。
遊技領域32のセンターケース40の左側には、普通図柄始動ゲート(普図始動ゲート)34が設けられている。センターケース40の左下側には、三つの一般入賞口35が配置され、センターケース40の右下側には、一つの一般入賞口35が配置されている。
これら一般入賞口35、…には、各一般入賞口35に入った遊技球を検出するための入賞口スイッチ35a〜35n(図3参照)が配設されている。
また、センターケース40の下方には、特図変動表示ゲームの開始条件を与える始動入賞口36が設けられ、その直下には上部に逆「ハ」の字状に開いて遊技球が流入し易い状態に変換する一対の可動部材37b、37bを備えるとともに内部に第2始動入賞口を有する普通変動入賞装置(普電)37が配設されている。
普通変動入賞装置37の一対の開閉部材37b,37bは、常時は遊技球の直径程度の間隔をおいた閉じた閉状態(遊技者にとって不利な状態)を保持している。ただし、普通変動入賞装置37の上方には、始動入賞口36が設けられているので、閉じた状態では遊技球が入賞できないようになっている。
そして、普図変動表示ゲームの結果が所定の停止表示態様となった場合には、駆動装置としての普電ソレノイド37c(図3参照)によって、逆「ハ」の字状に開いて普通変動入賞装置37に遊技球が流入し易い開状態(遊技者にとって有利な状態)に変化させられるようになっている。
さらに、普通変動入賞装置37の下方には、特図変動表示ゲームの結果によって遊技球を受け入れない状態と受け入れ易い状態とに変換可能な特別変動入賞装置(大入賞口)38が配設されている。
特別変動入賞装置38は、上端側が手前側に倒れる方向に回動して開放可能になっているアタッカ形式の開閉扉38cを有しており、補助遊技としての特図変動表示ゲームの結果如何によって大入賞口を閉じた状態(遊技者にとって不利な閉塞状態)から開放状態(遊技者にとって有利な状態)に変換する。
即ち、特別変動入賞装置38は、例えば、駆動装置としての大入賞口ソレノイド38b(図3参照)により駆動される開閉扉38cによって開閉される大入賞口を備え、特別遊技状態中は、大入賞口を閉じた状態から開いた状態に変換することにより大入賞口内への遊技球の流入を容易にさせ、遊技者に所定の遊技価値(賞球)を付与するようになっている。
なお、大入賞口の内部(入賞領域)には、当該大入賞口に入った遊技球を検出する検出手段としてのカウントスイッチ38a(図3参照)が配設されている。
特別変動入賞装置38の下方には、入賞口などに入賞しなかった遊技球を回収するアウト口39が設けられている。
また、遊技領域32の外側(例えば、遊技盤30の上部)には、特図変動表示ゲームをなす第1特図変動表示ゲームや第2特図変動表示ゲーム及び普図始動ゲート34への入賞をトリガとする普図変動表示ゲームを一箇所で実行する一括表示装置50が設けられている。
一括表示装置50は、図5(a)に示すように、7セグメント型の表示器(LEDランプ)等で構成された第1特図変動表示ゲーム用の第1特図変動表示部(特図1表示器)51及び第2特図変動表示ゲーム用の第2特図変動表示部(特図2表示器)52と、普図変動表示ゲーム用の変動表示部(普図表示器)53と、同じくLEDランプで構成された各変動表示ゲームの始動記憶数報知用の記憶表示部54〜56を備える。また、一括表示装置50には、大当りが発生すると点灯して大当り発生を報知する第1遊技状態表示部(第1遊技状態表示器)57、時短状態が発生すると点灯して時短状態発生を報知する第2遊技状態表示部(第2遊技状態表示器)60、遊技機10の電源投入時に大当りの確率状態が高確率状態となっているエラーを表示するエラー表示部(第3遊技状態表示器)58、大当り時のラウンド数(特別変動入賞装置38の開閉回数)を表示するラウンド表示部59が設けられている。
特図1表示器51と特図2表示器52における特図変動表示ゲームは、例えば変動表示ゲームの実行中、即ち、表示装置41において飾り特図変動表示ゲームを行っている間は、中央のセグメントを点滅駆動させて変動中であることを表示する。そして、ゲームの結果が「はずれ」のときは、はずれの結果態様として例えば中央のセグメントを点灯状態にし、ゲームの結果が「当り」のときは、当りの結果態様(特別結果態様)としてはずれの結果態様以外の結果態様(例えば「3」や「7」の数字等)を点灯状態にしてゲーム結果を表示する。
普図表示器53は、変動中はランプを点滅させて変動中であることを表示する。そして、ゲームの結果が「はずれ」のときは、例えばランプを消灯状態にし、ゲームの結果が「当り」のときはランプを点灯状態にしてゲーム結果を表示する。
特図1保留表示器54は、特図1表示器51の変動開始条件となる始動入賞口36への入賞球数のうち未消化の球数(始動記憶数=保留数)を表示する。具体的には、図5(b)のように、保留数が「0」のときは4つのランプを全て消灯状態にし、保留数が「1」のときはランプ1のみを点灯状態にする。また、保留数が「2」のときはランプ1と2を点灯状態にし、保留数が「3」のときはランプ1と2と3を点灯状態にし、保留数が「4」のときは4つのランプ1〜4をすべて点灯状態にする。
特図2保留表示器55は、特図2表示器52の変動開始条件となる第2始動入賞口(普通変動入賞装置37)の始動記憶数(=保留数)を、特図1保留表示器54と同様にして表示する(図5(b)参照)。
普図保留表示器56は、図5(c)に示すように、普図表示器53の変動開始条件となる普図始動ゲート34の始動記憶数(=保留数)を表示する。例えば保留数が「0」のときはランプ1と2を消灯状態にし、保留数が「1」のときはランプ1のみを点灯状態にする。また、保留数が「2」のときはランプ1と2を点灯状態にし、保留数が「3」のときはランプ1を点滅、ランプ2を点灯状態にし、保留数が「4」のときはランプ1と2を点滅状態にする。
第1遊技状態表示器57は、例えば通常の遊技状態の場合にはランプを消灯状態にし、大当りが発生している場合にはランプを点灯状態にする。
第2遊技状態表示器60は、例えば通常の遊技状態の場合にはランプを消灯状態にし、時短状態が発生している場合にはランプを点灯状態にする。
エラー表示器58は、例えば遊技機10の電源投入時に大当りの確率状態が低確率状態の場合にはランプを消灯状態にし、遊技機10の電源投入時に大当りの確率状態が高確率状態の場合にはランプを点灯状態にする。
ラウンド表示部59は、例えば、通常の遊技状態の場合にはランプを消灯状態にし、大当りが発生した場合にはその大当りのラウンド数に対応するランプ(2ラウンドor15ラウンド)を点灯状態にする。なお、ラウンド表示部59は7セグメント型の表示器で構成してもよい。
本実施形態の遊技機10では、図示しない発射装置から遊技領域32に向けて遊技球(パチンコ球)が打ち出されることによって遊技が行われる。打ち出された遊技球は、遊技領域32内の各所に配置された障害釘や風車等の方向転換部材によって転動方向を変えながら遊技領域32を流下し、普図始動ゲート34、一般入賞口35、始動入賞口36、普通変動入賞装置37又は特別変動入賞装置38に入賞するか、遊技領域32の最下部に設けられたアウト口39へ流入し遊技領域から排出される。そして、一般入賞口35、始動入賞口36、普通変動入賞装置37又は特別変動入賞装置38に遊技球が入賞すると、入賞した入賞口の種類に応じた数の賞球が、払出制御装置200によって制御される払出ユニットから、前面枠12の上皿21又は下皿23に排出される。
一方、普図始動ゲート34内には、該普図始動ゲート34を通過した遊技球を検出するための非接触型のスイッチなどからなるゲートスイッチ34a(図3参照)が設けられており、遊技領域32内に打ち込まれた遊技球が普図始動ゲート34内を通過すると、ゲートスイッチ34aにより検出されて普図変動表示ゲームが行われる。
また、普図変動表示ゲームを開始できない状態、例えば、既に普図変動表示ゲームが行われ、その普図変動表示ゲームが終了していない状態や、普図変動表示ゲームが当って普通変動入賞装置37が開状態に変換されている場合に、普図始動ゲート34を遊技球が通過すると、普図始動記憶数の上限数未満でならば、普図始動記憶数が加算(+1)されて普図始動記憶が1つ記憶されることとなる。この普図始動入賞の記憶数は、一括表示装置50の始動入賞数報知用の記憶表示部56に表示される。
また、普図始動記憶には、普図変動表示ゲームの当りはずれを決定するための当り判定用乱数値が記憶されるようになっていて、この当り判定用乱数値が判定値と一致した場合に、当該普図変動表示ゲームが当りとなって特定の結果態様(特定結果)が導出されることとなる。
普図変動表示ゲームは、一括表示装置50に設けられた変動表示部(普図表示器)53で実行されるようになっている。普図表示器53は、普通識別情報(普図、普通図柄)として点灯状態の場合に当たりを示し、消灯状態の場合にはずれを示すLEDから構成され、このLEDを点滅表示することで普通識別情報の変動表示を行い、所定の変動表示時間の経過後、LEDを点灯又は消灯することで結果を表示するようになっている。
なお、普通識別情報として例えば数字、記号、キャラクタ図柄などを用い、これを所定時間変動表示させた後、停止表示させることにより行うように構成しても良い。この普図変動表示ゲームの停止表示が特定結果となれば、普図の当りとなって、普通変動入賞装置37の一対の可動部材37bが所定時間(例えば、0.3秒間)開放される開状態となる。これにより、普通変動入賞装置37の内部の第2始動入賞口へ遊技球が入賞し易くなり、第2特図変動表示ゲームが実行される回数が多くなる。
普図始動ゲート34への通過検出時に抽出した普図乱数値が当たり値であるときには、普図表示器53に表示される普通図柄が当たり状態で停止し、当たり状態となる。このとき、普通変動入賞装置37は、内蔵されている普電ソレノイド37c(図3参照)が駆動されることにより、可動部材37bが所定の時間(例えば、0.3秒間)だけ開放する状態に変換され、遊技球の入賞が許容される。
始動入賞口36への入賞球及び普通変動入賞装置37への入賞球は、それぞれは内部に設けられた始動口1スイッチ36aと始動口2スイッチ37aによって検出される。始動入賞口36へ入賞した遊技球は第1特図変動表示ゲームの始動入賞球として検出され、所定の上限数(例えば、4個)を限度に記憶されるとともに、普通変動入賞装置37へ入賞した遊技球は第2特図変動表示ゲームの始動入賞球として検出され、所定の上限数(例えば、4個)を限度に記憶される。
また、この始動入賞球の検出時にそれぞれ大当り乱数値や大当り図柄乱数値、並びに各変動パターン乱数値が抽出され、抽出された乱数値は、遊技制御装置100(図3参照)内の特図記憶領域(RAMの一部)に特図始動記憶として各々所定回数(例えば、最大で4回分)を限度に記憶される。そして、この特図始動記憶の記憶数は、一括表示装置50の始動入賞数報知用の記憶表示部54、55に表示されるとともに、センターケース40の表示装置41においても表示される。
遊技制御装置100は、始動入賞口36若しくは普通変動入賞装置37への入賞、又はそれらの始動記憶に基づいて、特図表示器(変動表示装置)51又は52で第1又は第2特図変動表示ゲームを行う。
第1特図変動表示ゲーム及び第2特図変動表示ゲームは、複数の特別図柄(特図、識別情報)を変動表示したのち、所定の結果態様を停止表示することで行われる。また、表示装置41にて各特図変動表示ゲームに対応して複数種類の識別情報(例えば、数字、記号、キャラクタ図柄など)を変動表示させる飾り特図変動表示ゲームが実行されるようになっている。
そして、特図変動表示ゲームの結果として、特図1表示器51若しくは特図2表示器52の表示態様が特別結果態様となった場合には、大当りとなって特別遊技状態(いわゆる、大当り状態)となる。また、これに対応して表示装置41の表示態様も特別結果態様となる。
表示装置41における飾り特図変動表示ゲームは、例えば前述した数字等で構成される飾り特別図柄(識別情報)が左(第一特別図柄)、右(第二特別図柄)、中(第三特別図柄)の順に変動表示を開始して、所定時間後に変動している図柄を順次停止させて、特図変動表示ゲームの結果を表示することで行われる。また、表示装置41では、特図始動記憶数に対応する飾り特別図柄による変動表示ゲームを行うとともに、興趣向上のためにキャラクタの出現など多様な演出表示が行われる。
なお、特図1表示器51、特図2表示器52は、別々の表示器でも良いし同一の表示器でも良いが、各々独立して、また、同時には実行しないように各特図変動表示ゲームが表示される。また、表示装置41も、第1特図変動表示ゲームと第2特図変動表示ゲームで別々の表示装置や別々の表示領域を使用するとしても良いし、同一の表示装置や表示領域を使用するとしても良いが、各々独立して、また、同時には実行しないように飾り特図変動表示ゲームが表示される。また、遊技機10に特図1表示器51、特図2表示器52を備えずに、表示装置41のみで特図変動表示ゲームを実行するようにしても良い。
また、第2特図変動表示ゲームは、第1特図変動表示ゲームよりも優先して実行されるようになっている。即ち、第1特図変動表示ゲームと第2特図変動表示ゲームの始動記憶がある場合であって、特図変動表示ゲームの実行が可能となった場合は、第2特図変動表示ゲームが実行されるようになっている。
また、第1特図変動表示ゲーム(第2特図変動表示ゲーム)が開始可能な状態で、且つ、始動記憶数が0の状態で、始動入賞口36(若しくは、普通変動入賞装置37)に遊技球が入賞すると、始動権利の発生に伴って始動記憶が記憶されて、始動記憶数が1加算されるととともに、直ちに始動記憶に基づいて、第1特図変動表示ゲーム(第2特図変動表示ゲーム)が開始され、この際に始動記憶数が1減算される。
一方、第1特図変動表示ゲーム(第2特図変動表示ゲーム)が直ちに開始できない状態、例えば、既に第1若しくは第2特図変動表示ゲームが行われ、その特図変動表示ゲームが終了していない状態や、特別遊技状態となっている場合に、始動入賞口36(若しくは、普通変動入賞装置37)に遊技球が入賞すると、始動記憶数が上限数未満ならば、始動記憶数が1加算されて始動記憶が1つ記憶されることになる。そして、始動記憶数が1以上となった状態で、第1特図変動表示ゲーム(第2特図変動表示ゲーム)が開始可能な状態(前回の特図変動表示ゲームの終了若しくは特別遊技状態の終了)となると、始動記憶数が1減算されるとともに、記憶された始動記憶に基づいて第1特図変動表示ゲーム(第2特図変動表示ゲーム)が開始される。
なお、以下の説明において、第1特図変動表示ゲームと第2特図変動表示ゲームを区別しない場合は、単に特図変動表示ゲームと称する。
なお、特に限定されるわけではないが、上記始動入賞口36内の始動口1スイッチ36a、普通変動入賞装置37内の始動口2スイッチ37a、ゲートスイッチ34a、一般入賞口スイッチ35a〜35n、カウントスイッチ38aには、磁気検出用のコイルを備え該コイルに金属が近接すると磁界が変化する現象を利用して遊技球を検出する非接触型の磁気近接センサ(以下、近接スイッチと称する)が使用されている。遊技機10のガラス枠15等に設けられた前枠開放検出スイッチ63や前面枠(遊技枠)12等に設けられた遊技枠開放検出スイッチ64には、機械的な接点を有するマイクロスイッチを用いることができる。
図3は、本実施形態のパチンコ遊技機10の制御システムのブロック図である。
遊技機10は遊技制御装置100を備え、遊技制御装置100は、遊技を統括的に制御する主制御装置(主基板)であって、遊技用マイクロコンピュータ(以下、遊技用マイコンと称する)111を有するCPU部110と、入力ポートを有する入力部120と、出力ポートやドライバなどを有する出力部130、CPU部110と入力部120と出力部130との間を接続するデータバス140などからなる。
上記CPU部110は、アミューズメントチップ(IC)と呼ばれる遊技用マイコン(CPU)111と、入力部120内の近接スイッチ用のインタフェースチップ(近接I/F)121からの信号(始動入賞検出信号)を論理反転して遊技用マイコン111に入力させるインバータなどからなる反転回路112と、水晶振動子のような発振子を備え、CPUの動作クロックやタイマ割込み、乱数生成回路の基準となるクロックを生成する発振回路(水晶発振器)113などを有する。遊技制御装置100及び該遊技制御装置100によって駆動されるソレノイドやモータなどの電子部品には、電源装置400で生成されたDC32V,DC12V,DC5Vなど所定のレベルの直流電圧が供給されて動作可能にされる。
電源装置400は、24Vの交流電源から上記DC32Vの直流電圧を生成するAC−DCコンバータやDC32Vの電圧からDC12V,DC5Vなどのより低いレベルの直流電圧を生成するDC−DCコンバータなどを有する通常電源部410と、遊技用マイコン111の内部のRAMに対して停電時に電源電圧を供給するバックアップ電源部420と、停電監視回路や初期化スイッチを有し遊技制御装置100に停電の発生、回復を知らせる停電監視信号や初期化スイッチ信号、リセット信号などの制御信号を生成して出力する制御信号生成部430などを備える。
この実施形態では、電源装置400は、遊技制御装置100と別個に構成されているが、バックアップ電源部420及び制御信号生成部430は、別個の基板上あるいは遊技制御装置100と一体、即ち、主基板上に設けるように構成してもよい。遊技盤30及び遊技制御装置100は機種変更の際に交換の対象となるので、実施例のように、電源装置400若しくは主基板とは別の基板にバックアップ電源部420及び制御信号生成部430を設けることにより、交換の対象から外しコストダウンを図ることができる。
上記バックアップ電源部420は、電解コンデンサのような大容量のコンデンサ1つで構成することができる。バックアップ電源は、遊技制御装置100の遊技用マイコン111(特に内蔵RAM)に供給され、停電中あるいは電源遮断後もRAMに記憶されたデータが保持されるようになっている。制御信号生成部430は、例えば通常電源部410で生成された32Vの電圧を監視してそれが例えば17V以下に下がると停電発生を検出して停電監視信号を変化させるとともに、所定時間後にリセット信号を出力する。また、電源投入時や停電回復時にもその時点から所定時間経過後にリセット信号を出力する。
初期化スイッチ信号は初期化スイッチがオン状態にされたときに生成される信号で、遊技用マイコン111内のRAM111C及び払出制御装置200内のRAMに記憶されている情報を強制的に初期化する。特に限定されるわけではないが初期化スイッチ信号は電源投入時に読み込まれ、停電監視信号は遊技用マイコン111が実行するメインプログラムのメインループの中で繰り返し読み込まれる。リセット信号は強制割込み信号の一種であり、制御システム全体をリセットさせる。
遊技用マイコン111は、遊技を統括的に制御する制御手段を構成している。具体的には、遊技用マイコン111は、CPU(中央処理ユニット:マイクロプロセッサ)111A、読出し専用のROM(リードオンリメモリ)111B及び随時読出し書込み可能なRAM(ランダムアクセスメモリ)111Cを備える。
ROM111Bは、遊技制御のための不変の情報(プログラム、固定データ、各種乱数の判定値等)を不揮発的に記憶し、RAM111Cは、遊技制御時にCPU111Aの作業領域や各種信号や乱数値の記憶領域として利用される。ROM111B又はRAM111Cとして、EEPROMのような電気的に書換え可能な不揮発性メモリを用いてもよい。
また、ROM111Bは、例えば、特図変動表示ゲームの実行時間、演出内容、リーチ状態の発生の有無などを規定する変動パターンを決定するための変動パターンテーブルを記憶している。
変動パターンテーブルとは、始動記憶として記憶されている変動パターン乱数1〜3をCPU111Aが参照して変動パターンを決定するためのテーブルである。また、変動パターンテーブルには、結果がはずれとなる場合に選択されるはずれ変動パターンテーブル、結果が15R当りや2R当りとなる場合に選択される大当り変動パターンテーブル等が含まれる。さらに、これらのパターンテーブルには、後半変動パターンテーブル、前半変動パターンテーブルが含まれている。
また、リーチ(リーチ状態)とは、表示状態が変化可能な表示装置を有し、該表示装置が時期を異ならせて複数の表示結果を導出表示し、該複数の表示結果が予め定められた特別結果態様となった場合に、遊技状態が遊技者にとって有利な遊技状態(特別遊技状態)となる遊技機10において、複数の表示結果の一部がまだ導出表示されていない段階で、既に導出表示されている表示結果が特別結果態様となる条件を満たしている表示状態をいう。また、別の表現をすれば、リーチ状態とは、表示装置の変動表示制御が進行して表示結果が導出表示される前段階にまで達した時点でも、特別結果態様となる表示条件からはずれていない表示態様をいう。そして、例えば、特別結果態様が揃った状態を維持しながら複数の変動表示領域による変動表示を行う状態(いわゆる全回転リーチ)もリーチ状態に含まれる。また、リーチ状態とは、表示装置の表示制御が進行して表示結果が導出表示される前段階にまで達した時点での表示状態であって、表示結果が導出表示される以前に決定されている複数の変動表示領域の表示結果の少なくとも一部が特別結果態様となる条件を満たしている場合の表示状態をいう。
よって、例えば、特図変動表示ゲームに対応して表示装置に表示される飾り特図変動表示ゲームが、表示装置における左、中、右の変動表示領域の各々で所定時間複数の識別情報を変動表示した後、左、右、中の順で変動表示を停止して結果態様を表示するものである場合、左、右の変動表示領域で、特別結果態様となる条件を満たした状態(例えば、同一の識別情報)で変動表示が停止した状態がリーチ状態となる。またこの他に、すべての変動表示領域の変動表示を一旦停止した時点で、左、中、右のうち何れか二つの変動表示領域で特別結果態様となる条件を満たした状態(例えば、同一の識別情報となった状態、ただし特別結果態様は除く)をリーチ状態とし、このリーチ状態から残りの一つの変動表示領域を変動表示するようにしても良い。
そして、このリーチ状態には複数のリーチ演出が含まれ、特別結果態様が導出される可能性が異なる(信頼度が異なる)リーチ演出として、ノーマルリーチ、スペシャル1リーチ、スペシャル2リーチ、スペシャル3リーチ、プレミアリーチ等が設定されている。なお、信頼度は、リーチなし<ノーマルリーチ<スペシャル1リーチ<スペシャル2リーチ<スペシャル3リーチ<プレミアリーチの順に高くなるようになっている。また、このリーチ状態は、少なくとも特図変動表示ゲームで特別結果態様が導出される場合(大当りとなる場合)における変動表示態様に含まれるようになっている。即ち、特図変動表示ゲームで特別結果態様が導出されないと判定すると(はずれとなる場合)における変動表示態様に含まれることもある。よって、リーチ状態が発生した状態は、リーチ状態が発生しない場合に比べて大当りとなる可能性の高い状態である。
ここで、CPU111Aは、始動記憶手段としてのRAM111Cに記憶された始動記憶に基づく特図変動表示ゲームにおいてリーチ状態を発生可能なリーチ状態発生手段をなす。
CPU111Aは、ROM111B内の遊技制御用プログラムを実行して、払出制御装置200や演出制御装置300に対する制御信号(コマンド)を生成したりソレノイドや表示装置の駆動信号を生成して出力して遊技機10全体の制御を行う。
また、図示しないが、遊技用マイコン111は、特図変動表示ゲームの大当り判定用乱数や大当りの図柄を決定するための大当り図柄用乱数、特図変動表示ゲームでの変動パターン(各種リーチやリーチ無しの変動表示における変動表示ゲームの実行時間等を含む)を決定するための変動パターン乱数、普図変動表示ゲームの当たり判定用乱数等を生成するための乱数生成回路と、発振回路113からの発振信号(原クロック信号)に基づいてCPU111Aに対する所定周期(例えば、4ミリ秒)のタイマ割込み信号や乱数生成回路の更新タイミングを与えるクロックを生成するクロックジェネレータを備えている。
また、CPU111Aは、後述する特図ゲーム処理における始動口スイッチ監視処理(ステップA1)や特図普段処理(ステップA9)にて、ROM111Bに記憶されている複数の変動パターンテーブルの中から、何れか一の変動パターンテーブルを取得する。具体的には、CPU111Aは、特図変動表示ゲームの遊技結果(大当り或いははずれ)や、現在の遊技状態としての特図変動表示ゲームの確率状態(通常確率状態或いは高確率状態)、現在の遊技状態としての普通変動入賞装置37の動作状態(通常動作状態或いは時短動作状態)、始動記憶数などに基づいて、複数の変動パターンテーブルの中から、何れか一の変動パターンテーブルを選択して取得する。
払出制御装置200は、図示しないが、CPU、ROM、RAM、入力インタフェース、出力インタフェース等を備え、遊技制御装置100からの賞球払出し指令(コマンドやデータ)に従って、払出ユニットの払出モータを駆動させ、賞球を払い出させるための制御を行う。また、払出制御装置200は、カードユニットからの貸球要求信号に基づいて払出ユニットの払出モータを駆動させ、貸球を払い出させるための制御を行う。
遊技用マイコン111の入力部120には、始動入賞口36内の始動口1スイッチ36a、普通変動入賞装置37内の始動口2スイッチ37a、普図始動ゲート34内のゲートスイッチ34a、一般入賞口スイッチ35a〜35n、カウントスイッチ38aに接続され、これらのスイッチから供給されるハイレベルが11Vでロウレベルが7Vのような負論理の信号が入力され、0V−5Vの正論理の信号に変換するインタフェースチップ(近接I/F)121が設けられている。近接I/F121は、入力の範囲が7V−11Vとされることで、近接スイッチのリード線が不正にショートされたり、スイッチがコネクタから外されたり、リード線が切断されてフローティングになったような異常な状態を検出することができ、異常検知信号を出力するように構成されている。
近接I/F121の出力はすべて第2入力ポート122へ供給されデータバス140を介して遊技用マイコン111に読み込まれるとともに、主基板100から中継基板70を介して図示しない試射試験装置へ供給されるようになっている。また、近接I/F121の出力のうち始動口1スイッチ36aと始動口2スイッチ37aの検出信号は、第2入力ポート122の他、反転回路112を介して遊技用マイコン111へ入力されるように構成されている。反転回路112を設けているのは、遊技用マイコン111の信号入力端子が、マイクロスイッチなどからの信号が入力されることを想定し、かつ負論理、即ち、ロウレベル(0V)を有効レベルとして検知するように設計されているためである。
従って、始動口1スイッチ36aと始動口2スイッチ37aとしてマイクロスイッチを使用する場合には、反転回路112を設けずに直接遊技用マイコン111へ検出信号を入力させるように構成することができる。つまり、始動口1スイッチ36aと始動口2スイッチ37aからの負論理の信号を直接遊技用マイコン111へ入力させたい場合には、近接スイッチを使用することはできない。上記のように近接I/F121は、信号のレベル変換機能を有する。このようなレベル変換機能を可能にするため、近接I/F121には、電源装置400から通常のICの動作に必要な例えば5Vのような電圧の他に、12Vの電圧が供給されるようになっている。
また、入力部120には、遊技機10の前面枠12等に設けられた不正検出用の磁気センサスイッチ61及び振動センサスイッチ62からの信号及び上記近接I/F121により変換された始動入賞口36内の始動口1スイッチ36a、普通変動入賞装置37内の始動口2スイッチ37a、ゲートスイッチ34a、一般入賞口スイッチ35a〜35n、カウントスイッチ38aからの信号を取り込んでデータバス140を介して遊技用マイコン111に供給する第2入力ポート122が設けられている。第2入力ポート122が保持しているデータは、遊技用マイコン111が第2入力ポート122に割り当てられているアドレスをデコードすることによってイネーブル信号CE1をアサート(有効レベルに変化)することよって、読み出すことができる。後述の他のポートも同様である。
さらに、入力部120には、遊技機10のガラス枠15等に設けられた前枠開放検出スイッチ63及び前面枠(遊技枠)12等に設けられた遊技枠開放検出スイッチ64からの信号及び払出制御装置200からの払出異常を示すステータス信号や払出し前の遊技球の不足を示すシュート球切れスイッチ信号、オーバーフローを示すオーバーフロースイッチ信号を取り込んでデータバス140を介して遊技用マイコン111に供給する第1入力ポート123が設けられている。オーバーフロースイッチ信号は、下皿23に遊技球が所定量以上貯留されていること(満杯になったこと)を検出したときに出力される信号である。
また、入力部120には、電源装置400からの停電監視信号や初期化スイッチ信号、リセット信号などの信号を遊技用マイコン111等に入力するためのシュミットトリガ回路124が設けられており、シュミットトリガ回路124はこれらの入力信号からノイズを除去する機能を有する。電源装置400からの信号のうち停電監視信号と初期化スイッチ信号は、一旦第1入力ポート123に入力され、データバス140を介して遊技用マイコン111に取り込まれる。つまり、前述の各種スイッチからの信号と同等の信号として扱われる。遊技用マイコン111に設けられている外部からの信号を受ける端子の数には制約があるためである。
一方、シュミットトリガ回路124によりノイズ除去されたリセット信号RSTは、遊技用マイコン111に設けられているリセット端子に直接入力されるとともに、出力部130の各ポートに供給される。また、リセット信号RSTは出力部130を介さずに直接中継基板70に出力することで、試射試験装置へ出力するために中継基板70のポート(図示省略)に保持される試射試験信号をオフするように構成されている。また、リセット信号RSTを中継基板70を介して試射試験装置へ出力可能に構成するようにしてもよい。なお、リセット信号RSTは入力部120の各ポート122,123には供給されない。リセット信号RSTが入る直前に遊技用マイコン111によって出力部130の各ポートに設定されたデータはシステムの誤動作を防止するためリセットする必要があるが、リセット信号RSTが入る直前に入力部120の各ポートから遊技用マイコン111が読み込んだデータは、遊技用マイコン111のリセットによって廃棄されるためである。
出力部130は、データバス140に接続され払出制御装置200へ出力する4ビットのデータ信号とデータの有効/無効を示す制御信号(データストローブ信号)及び演出制御装置300へ出力するデータストローブ信号SSTBを生成する第1出力ポート131と、演出制御装置300へ出力する8ビットのデータ信号を生成する第2出力ポート132とを備える。遊技制御装置100から払出制御装置200及び演出制御装置300へは、パラレル通信でデータが送信される。また、出力部130には、演出制御装置300の側から遊技制御装置100へ信号を入力できないようにするため、即ち、片方向通信を担保するために第1出力ポート131からの上記データストローブ信号SSTB及び第2出力ポート132からの8ビットのデータ信号を出力する単方向のバッファ133が設けられている。なお、第1出力ポート131から払出制御装置200へ出力する信号に対してもバッファを設けるようにしてもよい。
さらに、出力部130には、データバス140に接続され図示しない認定機関の試射試験装置へ変動表示ゲームの特図図柄情報を知らせるデータや大当りの確率状態を示す信号などを中継基板70を介して出力するバッファ134が実装可能に構成されている。このバッファ134は遊技店に設置される実機(量産販売品)としてのパチンコ遊技機の遊技制御装置(主基板)には実装されない部品である。なお、前記近接I/F121から出力される始動口スイッチなど加工の必要のないスイッチの検出信号は、バッファ134を通さずに中継基板70を介して試射試験装置へ供給される。
一方、磁気センサスイッチ61や振動センサスイッチ62のようにそのままでは試射試験装置へ供給できない検出信号は、一旦遊技用マイコン111に取り込まれて他の信号若しくは情報に加工されて、例えば遊技機が遊技制御できない状態であることを示すエラー信号としてデータバス140からバッファ134、中継基板70を介して試射試験装置へ供給される。なお、中継基板70には、上記バッファ134から出力された信号を取り込んで試射試験装置へ供給するポートや、バッファを介さないスイッチの検出信号の信号線を中継して伝達するコネクタなどが設けられている。中継基板70上のポートには、遊技用マイコン111から出力されるチップイネーブル信号CEも供給され、該信号CEにより選択制御されたポートの信号が試射試験装置へ供給されるようになっている。
また、出力部130には、データバス140に接続され特別変動入賞装置38を開成させるソレノイド(大入賞口ソレノイド)38bや普通変動入賞装置37の可動部材37bを開成させるソレノイド(普電ソレノイド)37cの開閉データと、一括表示装置50のLEDのカソード端子が接続されているデジット線のオン/オフデータを出力するための第3出力ポート135、一括表示装置50に表示する内容に応じてLEDのアノード端子が接続されているセグメント線のオン/オフデータを出力するための第4出力ポート136、大当り情報など遊技機10に関する情報を外部情報端子71へ出力するための第5出力ポート137が設けられている。外部情報端子71から出力された遊技機10に関する情報は、例えば遊技店に設置された情報収集端末や遊技場内部管理装置(図示省略)に供給される。
さらに、出力部130には、第3出力ポート135から出力される大入賞口ソレノイド38bの開閉データ信号を受けてソレノイド駆動信号や普電ソレノイド37cの開閉データ信号を受けてソレノイド駆動信号を生成し出力する第1ドライバ(駆動回路)138a、第3出力ポート135から出力される一括表示装置50の電流引き込み側のデジット線のオン/オフ駆動信号を出力する第2ドライバ138b、第4出力ポート136から出力される一括表示装置50の電流供給側のセグメント線のオン/オフ駆動信号を出力する第3ドライバ138c、第5出力ポート137から管理装置等の外部装置へ供給する外部情報信号を外部情報端子71へ出力する第4ドライバ138dが設けられている。
上記第1ドライバ138aには、32Vで動作するソレノイドを駆動できるようにするため、電源電圧としてDC32Vが電源装置400から供給される。また、一括表示装置50のセグメント線を駆動する第3ドライバ138cには、DC12Vが供給される。デジット線を駆動する第2ドライバ138bは、表示データに応じたデジット線を電流で引き抜くためのものであるため、電源電圧は12V又は5Vのいずれであってもよい。12Vを出力する第3ドライバ138cによりセグメント線を介してLEDのアノード端子に電流を流し込み、接地電位を出力する第2ドライバ138bによりカソード端子よりセグメント線を介して電流を引き抜くことで、ダイナミック駆動方式で順次選択されたLEDに電源電圧が流れて点灯される。外部情報信号を外部情報端子71へ出力する第4ドライバ138dは、外部情報信号に12Vのレベルを与えるため、DC12Vが供給される。なお、バッファ134や第3出力ポート135、第1ドライバ138a等は、遊技制御装置100の出力部130、即ち、主基板ではなく、中継基板70側に設けるようにしてもよい。
さらに、出力部130には、外部の検査装置500へ各遊技機の識別コードやプログラムなどの情報を送信するためのフォトカプラ139が設けられている。フォトカプラ139は、遊技用マイコン111が検査装置500との間でシリアル通信によってデータの送受信を行なえるように双方通信可能に構成されている。なお、かかるデータの送受信は、通常の汎用マイクロプロセッサと同様に遊技用マイコン111が有するシリアル通信端子を利用して行なわれるため、入力ポート122,123のようなポートは設けられていない。
次に、図4を用いて、演出制御装置300の構成について説明する。
演出制御装置300は、遊技用マイコン111と同様にアミューズメントチップ(IC)からなる主制御用マイコン(1stCPU)311と、該1stCPU311の制御下でもっぱら映像制御を行う映像制御用マイコン(2ndCPU)312と、該2ndCPU312からのコマンドやデータに従って表示装置41への映像表示のための画像処理を行うグラフィックプロセッサとしてのVDP(Video Display Processor)313と、各種のメロディや効果音などをスピーカ19a,19bから再生させるため音の出力を制御する音源LSI314を備えている。
上記主制御用マイコン(1stCPU)311と映像制御用マイコン(2ndCPU)312には、各CPUが実行するプログラムを格納したPROM(プログラマブルリードオンリメモリ)からなるプログラムROM321、322がそれぞれ接続され、VDP313にはキャラクタ画像や映像データが記憶された画像ROM323が接続され、音源LSI314には音声データが記憶された音ROM324が接続されている。主制御用マイコン(1stCPU)311は、遊技用マイコン111からのコマンドを解析し、演出内容を決定して映像制御用マイコン312へ出力映像の内容を指示したり、音源LSI314への再生音の指示、装飾ランプの点灯、モータの駆動制御、演出時間の管理などの処理を実行する。主制御用マイコン(1stCPU)311と映像制御用マイコン(2ndCPU)312の作業領域を提供するRAMは、それぞれのチップ内部に設けられている。なお、作業領域を提供するRAMはチップの外部に設けるようにしてもよい。
特に限定されるわけではないが、主制御用マイコン(1stCPU)311と映像制御用マイコン(2ndCPU)312との間、主制御用マイコン(1stCPU)311と音源LSI314との間は、それぞれシリアル方式でデータの送受信が行なわれ、映像制御用マイコン(2ndCPU)312との間、主制御用マイコン(1stCPU)311とVDP313との間は、パラレル方式でデータの送受信が行なわれるように構成されている。パラレル方式でデータを送受信することで、シリアルの場合よりも短時間にコマンドやデータを送信することができる。VDP313には、画像ROM323から読み出されたキャラクタなどの画像データを展開したり加工したりするのに使用される超高速なVRAM(ビデオRAM)313aや、画像を拡大、縮小処理するためのスケーラ313b、LVDS(小振幅信号伝送)方式で表示装置41へ送信する映像信号を生成する信号変換回路313cなどが設けられている。
VDP313から主制御用マイコン311へは表示装置41の映像と前面枠12や遊技盤30に設けられている装飾ランプの点灯を同期させるために垂直同期信号VSYNCが入力される。さらに、VDP313から映像制御用マイコン312へは、VRAMへの描画の終了等処理状況を知らせるため割込み信号INT0〜n及び映像制御用マイコン312からのコマンドやデータの受信待ちの状態にあることを知らせるためのウェイト信号WAITが入力される。また、映像制御用マイコン312から主制御用マイコン311へは、映像制御用マイコン312が正常に動作していることを知らせるとともにコマンドの送信タイミングを与える同期信号SYNCが入力される。主制御用マイコン311と音源LSI314との間は、ハンドシェイク方式でコマンドやデータの送受信を行うために、呼び掛け(コール)信号CTSと応答(レスポンス)信号RTSが交換される。
なお、映像制御用マイコン(2ndCPU)312には、主制御用マイコン(1stCPU)311よりも高速なつまり高価なCPUが使用されている。主制御用マイコン(1stCPU)311とは別に映像制御用マイコン(2ndCPU)312を設けて処理を分担させることによって、主制御用マイコン(1stCPU)311のみでは実現困難な大画面で動きの速い映像を表示装置41に表示させることが可能となるとともに、映像制御用マイコン(2ndCPU)312と同等な処理能力を有するCPUを2個使用する場合に比べてコストの上昇を抑制することができる。また、CPUを2つ設けることによって、2つのCPUの制御プログラムを別々に並行して開発することが可能となり、これによって新機種の開発期間を短縮することができる。
また、演出制御装置300には、遊技制御装置100から送信されてくるコマンドを受信するインタフェースチップ(コマンドI/F)331が設けられている。このコマンドI/F331を介して、遊技制御装置100から演出制御装置300へ送信された変動開始コマンド、客待ちデモコマンド、ファンファーレコマンド、確率情報コマンド、及びエラー指定コマンド等を、演出制御指令信号として受信する。遊技制御装置100の遊技用マイコン111はDC5Vで動作し、演出制御装置300の主制御用マイコン(1stCPU)311はDC3.3Vで動作するため、コマンドI/F331には信号のレベル変換の機能が設けられている。
また、演出制御装置300には、遊技盤30(センターケース40を含む)に設けられているLED(発光ダイオード)を有する盤装飾装置42を駆動制御する盤装飾LED制御回路332、前面枠12に設けられているLED(発光ダイオード)を有する枠装飾装置(例えば枠装飾装置18等)を駆動制御する枠装飾LED制御回路333、遊技盤30(センターケース40を含む)に設けられている盤演出装置(例えば表示装置41における演出表示と協働して演出効果を高める電動役物等)44を駆動制御する盤演出モータ/SOL制御回路334、前面枠12に設けられているモータ(例えば前記ムービングライト16を動作させるモータ等)45を駆動制御する枠演出モータ制御回路335が設けられている。なお、ランプやモータ及びソレノイドなどを駆動制御するこれらの制御回路332〜335は、アドレス/データバス304を介して主制御用マイコン(1stCPU)311と接続されている。
さらに、演出制御装置300には、前面枠12に設けられた演出ボタン25に内蔵されているスイッチ25aや上記盤演出装置44内のモータの初期位置を検出する演出モータスイッチのオン/オフ状態を検出して主制御用マイコン(1stCPU)311へ検出信号を入力するスイッチ入力回路336、前面枠12に設けられた上スピーカ19aを駆動するオーディオパワーアンプなどからなるアンプ回路337a、前面枠12に設けられた下スピーカ19bを駆動するアンプ回路337bが設けられている。
電源装置400の通常電源部410は、上記のような構成を有する演出制御装置300やそれによって制御される電子部品に対して所望のレベルの直流電圧を供給するため、モータやソレノイドを駆動するためのDC32V、液晶パネルからなる表示装置41を駆動するためのDC12V、コマンドI/F331の電源電圧となるDC5Vの他に、LEDやスピーカを駆動するためのDC18Vやこれらの直流電圧の基準としたり電源モニタランプを点灯させるのに使用するNDC24Vの電圧を生成するように構成されている。さらに、主制御用マイコン(1stCPU)311や映像制御用マイコン(2ndCPU)312として、3.3Vあるいは1.2Vのような低電圧で動作するLSIを使用する場合には、DC5Vに基づいてDC3.3VやDC1.2Vを生成するためのDC−DCコンバータが演出制御装置300に設けられる。なお、DC−DCコンバータは通常電源部410に設けるようにしてもよい。
電源装置400の制御信号生成部430により生成されたリセット信号RSTは、主制御用マイコン311、映像制御用マイコン312、VDP313、音源LSI314、ランプやモータなどを駆動制御する制御回路332〜335、スピーカを駆動するアンプ回路337a、337bに供給され、これらをリセット状態にする。また、この実施例においては、映像制御用マイコン312の有する汎用のポートを利用して、VDP313に対するリセット信号を生成して供給する機能を有するように構成されている。これにより、映像制御用マイコン312とVDP313の動作の連携性を向上させることができる。
次に、これらの制御回路において行われる遊技制御について説明する。
遊技制御装置100の遊技用マイコン111のCPU111Aでは、普図始動ゲート34に備えられたゲートスイッチ34aからの遊技球の検出信号の入力に基づき、普図の当たり判定用乱数値を抽出してROM111Bに記憶されている判定値と比較し、普図変動表示ゲームの当たり外れを判定する処理を行う。そして、普図表示器53に、識別図柄を所定時間変動表示した後、停止表示する普図変動表示ゲームを表示する処理を行う。この普図変動表示ゲームの結果が当たりの場合は、普図表示器53に特別の結果態様を表示するとともに、普電ソレノイド37cを動作させ、普通変動入賞装置37の開閉部材37b、37bを所定時間(例えば、0.3秒間)上述のように開放する制御を行う。
なお、普図変動表示ゲームの結果がはずれの場合は、普図表示器53にはずれの結果態様を表示する制御を行う。
また、始動入賞口36に備えられた始動口1スイッチ36aからの遊技球の検出信号の入力に基づき始動入賞(始動記憶)を記憶し、この始動記憶に基づき、第1特図変動表示ゲームの大当たり判定用乱数値を抽出してROM111Bに記憶されている判定値と比較し、第1特図変動表示ゲームの当たり外れを判定する処理を行う。
また、普通変動入賞装置37に備えられた始動口2スイッチ37aからの遊技球の検出信号の入力に基づき始動記憶を記憶し、この始動記憶に基づき、第2特図変動表示ゲームの大当たり判定用乱数値を抽出してROM111Bに記憶されている判定値と比較し、第2特図変動表示ゲームの当たり外れを判定する処理を行う。
そして、遊技制御装置100のCPU111Aは、上記の第1特図変動表示ゲームや第2特図変動表示ゲームの判定結果を含む制御信号(演出制御コマンド)を、演出制御装置300に出力する。そして、特図1表示器51や特図2表示器52に、識別図柄を所定時間変動表示した後、停止表示する特図変動表示ゲームを表示する処理を行う。
また、演出制御装置300では、遊技制御装置100からの制御信号に基づき、表示装置41で特図変動表示ゲームに対応した飾り特図変動表示ゲームを表示する処理を行う。
さらに、演出制御装置300では、遊技制御装置100からの制御信号に基づき、スピーカ19a,19bからの音の出力、各種LEDの発光を制御する処理等を行う。
そして、遊技制御装置100のCPU111Aは、特図変動表示ゲームの結果が当たりの場合は、特図1表示器51や特図2表示器52に特別結果態様を表示するとともに、特別遊技状態を発生させる処理を行う。
特別遊技状態を発生させる処理においては、CPU111Aは、例えば、大入賞口ソレノイド38bにより特別変動入賞装置38の開閉扉38cを開放させ、大入賞口内への遊技球の流入を可能とする制御を行う。
そして、大入賞口に所定個数(例えば、10個)の遊技球が入賞するか、大入賞口の開放から所定時間(例えば、25秒又は1秒)が経過するかの何れかの条件が達成されるまで大入賞口を開放することを1ラウンドとし、これを所定ラウンド回数(例えば、15回又は2回)継続する(繰り返す)制御(サイクル遊技)を行う。
また、特図変動表示ゲームの結果がはずれの場合は、特図1表示器51や特図2表示器52にはずれの結果態様を表示する制御を行う。
また、遊技制御装置100は、特図変動表示ゲームの結果態様に基づき、特別遊技状態の終了後に、遊技状態として確変状態を発生可能となっている。
この確変状態は、特図変動表示ゲームにて当り結果となる確率が、通常確率状態に比べて高い状態(高確率状態)である。また、第1特図変動表示ゲーム及び第2特図変動表示ゲームのどちらの特図変動表示ゲームの結果態様に基づき確変状態となっても、第1特図変動表示ゲーム及び第2特図変動表示ゲームの両方が確変状態となる。
また、遊技制御装置100は、特図変動表示ゲームの結果態様に基づき、特別遊技状態の終了後に、遊技状態として時短状態を発生可能となっている。
この時短状態においては、普図変動表示ゲーム及び普通変動入賞装置37を時短動作状態とする制御を行う。具体的には、時短状態においては、上述の普図変動表示ゲームの実行時間が第1の変動表示時間よりも短い第2の変動表示時間となるように制御され(例えば、10秒が1秒)、これにより、単位時間当りの普通変動入賞装置37の開放回数が実質的に多くなるように制御される。また、時短状態においては、普図変動表示ゲームが当り結果となって普通変動入賞装置37が開放される場合に、開放時間が通常状態の第1開放時間よりも長い第2開放時間となるように制御される(例えば、0.3秒が1.7秒)。また、時短状態においては、普図変動表示ゲームの1回の当り結果に対して、普通変動入賞装置37の開放回数が1回の第1開放回数ではなく、2回以上の複数回(例えば、3回)の第2開放回数に設定される。
なお、普図変動表示ゲームの実行時間を第2の変動表示時間(例えば、1秒)とする制御と、普通変動入賞装置37の開放態様を開放時間が第2開放時間(例えば、1.7秒)とし、且つ、普図変動表示ゲームの1回の当り結果に対する開放回数が第2開放回数(例えば、3回)とする制御は、何れか一方のみを行っても良いし、両方を行っても良い。また、時短動作状態においては、普図変動表示ゲームの当り結果となる確率が通常動作状態より高くなるように制御してもよい。
これにより、普通変動入賞装置37に遊技球が入賞し易くなり、第2特図変動表示ゲームの始動が容易となる。
なお、確変状態と普図変動表示ゲーム及び普通変動入賞装置37の時短動作状態は、それぞれ独立して発生可能であり、両方を同時に発生することも可能であるし、一方のみを発生させることも可能である。
次に、上記遊技制御装置100の遊技用マイクロコンピュータ(遊技用マイコン)111によって実行される制御について説明する。
遊技用マイコン111による制御処理は、ループ処理として繰り返されるメインルーチンであるメイン処理(主に図6及び図7参照)と、メイン処理に対する割り込みルーチンとして、所定時間周期(例えば4ms)で行われるタイマ割込み処理(図9参照)とからなる。
〔メイン処理〕
先ず、メイン処理について説明する。
メイン処理は、電源が投入されることで開始される。このメイン処理においては、図6に示すように、まず、割込み禁止する処理(ステップS1)を行なってから、割込みが発生したときに実行するジャンプ先のベクタアドレスを設定する割込みベクタ設定処理(ステップS2)、割込みが発生したときにレジスタ等の値を退避する領域の先頭アドレスであるスタックポインタを設定するスタックポインタ設定処理(ステップS3)、割込み処理のモードを設定する割込みモード設定処理(ステップS4)を行う。
次に、払出制御装置(払出基板)200のプログラムが正常に起動するのを待つため例えば4msの時間待ちを行う(ステップS5)。これにより、電源投入の際に仮に遊技制御装置100が先に立ち上がって払出制御装置200が立ち上がる前にコマンドを払出制御装置200へ送ってしまい、払出制御装置200がコマンドを取りこぼすのを回避することができる。その後、RAMやEEPROM等の読出し書込み可能なRWM(リードライトメモリ)のアクセス許可をし、全出力ポートをオフ(出力が無い状態)に設定する(ステップS6,S7)。また、シリアルポート((遊技用マイコン111に予め搭載されているポート)この実施例では、払出制御装置200や演出制御装置300とパラレル通信を行っているため使用しない))を使用しない状態に設定する処理を行う(ステップS8)。
続いて、電源装置400内の初期化スイッチがオンしているか否か判定する(ステップS9)。ここで、初期化スイッチがオフ(ステップS9;No)と判定すると、ステップS10で、RWM内の停電検査領域のデータをチェックした後、停電復旧か否かの判定を行う(ステップS11)。このステップS11で停電復旧である(ステップS11;Yes)と判定すると、ステップS12へ進みチェックサムと呼ばれるデータを算出する処理及び算出されたチェックサムが正常か異常かを判定する(ステップS13)。
また、ステップS9で初期化スイッチがオン(ステップS9;Yes)と判定された場合、ステップS11で停電復旧でない(ステップS11;No)と判定された場合及びステップS13でチェックサムが正常でない(ステップS13;No)と判定された場合は、図7のステップS20へジャンプする。
また、ステップS13でチェックサムが正常(ステップS13;Yes)と判定した場合は、図7のステップS14へ移行して、RWM(リードライトメモリ:実施例ではRAM)内の初期化すべき領域に停電復旧時の初期値をセーブ(格納)してから、エラーや不正監視に係る領域をリセットする(ステップS15)。次に、RWM内の遊技状態を記憶する領域を調べて遊技状態が高確率状態であるか否かを判定する(ステップS16)。ここで、高確率でないと(ステップS16;No)と判定した場合は、ステップS17,S18をスキップしてステップS19へ移行する。
また、ステップS16で高確率であると(ステップS16;Yes)と判定した場合は、ステップS17で高確率の報知フラグを設定してから、例えば一括表示装置50に設けられる高確率報知LED(エラー表示器58)をオン(点灯)に設定(ステップS18)してステップS19へ移行する。ステップS19では、後述の特図ゲーム処理を合理的に実行するために用意されている処理番号に対応する電源復旧時のコマンドを演出制御装置300へ送信する処理を行なってステップS23へ進む。
一方、ステップS9,S11,S13からステップS20へジャンプした場合には、先ずCPUが使用するRAM内の作業領域をリセットしてから、初期化すべき領域に電源投入時の初期値をセーブする(ステップS21)。それから、ステップS22で電源投入時のコマンドを演出制御装置300へ送信する処理を行なってステップS23へ進む。ステップS23では、遊技用マイコン111(クロックジェネレータ)内のタイマ割込み信号及び乱数更新トリガ信号(CTC)を発生するCTC(Counter/Timer Circuit)回路を起動する処理を行う。
なお、CTC回路は、遊技用マイコン111内のクロックジェネレータに設けられている。クロックジェネレータは、水晶発振器113からの発振信号(原クロック信号)を分周する分周回路と、分周された信号に基づいてCPU111Aに対して所定周期(例えば、4ミリ秒)のタイマ割込み信号及び乱数生成回路へ供給する乱数更新のトリガを与える信号CTCを発生するCTC回路とを備えている。
上記ステップS23のCTC起動処理の後は、乱数生成回路を起動設定する処理を行う(ステップS24)。具体的には、乱数生成回路内の所定のレジスタ(CTC更新許可レジスタ)へ乱数生成回路を起動させるためのコード(指定値)の設定、最大値設定レジスタへの最大値(更新モードを含む)の設定、タップ設定レジスタへのタップ設定などがCPU111Aによって行われる。それから、ステップS25で、電源投入時の乱数生成回路内の所定のレジスタ(ソフト乱数レジスタ1〜n)の値を、対応する各種初期値乱数(大当り図柄を決定する乱数(大当り図柄乱数1、大当り図柄乱数2)、普図の当たりを決定する乱数(当り乱数))の初期値(スタート値)としてRWMの所定領域にセーブしてから、割込みを許可する(ステップS26)。本実施例で使用するCPU111A内の乱数生成回路においては、電源投入毎にソフト乱数レジスタの初期値が変わるように構成されているため、この値をCPU側で生成する各種初期値乱数の初期値(スタート値)とすることで、ソフトウェアで生成される乱数の規則性を崩すことができ、遊技者による不正な乱数の取得を困難にすることができる。
続いて、各種初期値乱数の値を更新して乱数の規則性を崩すための初期値乱数更新処理(ステップS27)を行う。なお、本実施形態においては、特に限定されるわけではないが、大当り乱数は乱数生成回路において生成される乱数(大当り乱数)を使用して生成するように構成されている。つまり、大当り乱数はハードウェアで生成されるハード乱数であり、大当り図柄乱数、当り乱数、変動パターン乱数はソフトウェアで生成されるソフト乱数である。
上記ステップS27の初期値乱数更新処理の後、電源装置400から入力されている停電監視信号をポート及びデータバスを介して読み込んでチェックして停電が発生したか否かの判定(ステップS28)を行い、停電が発生していない場合(ステップS28;No)には、ステップS27に戻り、上記初期値乱数更新処理と停電監視信号のチェック(ループ処理)を繰り返し行う。初期値乱数更新処理(ステップS27)の前に割り込みを許可する(ステップS26)ことによって、初期値乱数更新処理中にタイマ割込みが発生すると割込み処理が優先して実行されるようになり、タイマ割込みが初期値乱数更新処理によって待たされることで割込み処理が圧迫されるのを回避することができる。
なお、上記ステップS27での初期値乱数更新処理は、メイン処理のほか、タイマ割込み処理の中においても初期値乱数更新処理を行う方法もあり、そのような方法を採用した場合には両方で初期値乱数更新処理が実行されるのを回避するため、メイン処理で初期値乱数更新処理を行う場合には割込みを禁止してから更新して割込みを解除する必要があるが、本実施例のようにタイマ割込み処理の中での初期値乱数更新処理はせず、メイン処理内のみした場合には初期値乱数更新処理の前に割込みを解除しても何ら問題はなく、それによってメイン処理が簡素化されるという利点がある。
上記ステップS28において、停電が発生していると判定した場合(ステップS28;Yes)は、一旦割込みを禁止する処理(ステップS29)、全出力ポートをオフにする処理(ステップS30)、を行う。その後さらに、停電復旧検査領域に停電復旧検査領域チェックデータをセーブする処理(ステップS31)、RWMの電源遮断時のチェックサムを算出する処理(ステップS32)を行なった後、RWMへのアクセスを禁止する処理(ステップS33)を行なってから、遊技機の電源が遮断されるのを待つ。このように、停電復旧検査領域にチェックデータをセーブするとともに、電源遮断時のチェックサムを算出することで、電源の遮断の前にRWMに記憶されていた情報が正しくバックアップされているか否かを電源再投入時に判断することができる。
〔初期値乱数更新処理〕
次に、上述のメイン処理における初期値乱数更新処理(ステップS27)の詳細について説明する。
図8に示すように、初期値乱数更新処理では、大当り図柄初期値乱数1をインクリメント(更新(+1))する処理(ステップS271)、当り初期値乱数をインクリメント(更新(+1))する処理(ステップS272)、大当り図柄初期値乱数2をインクリメント(更新(+1))する処理(ステップS273)、遊技用マイコン111に内蔵されている後述の乱数生成回路(608)内のタップ設定レジスタ(608b2)に設定する値を生成するタップカウンタをインクリメント(更新(+1))する処理(ステップS274)を順次行う。タップカウンタは遊技用マイコン111のRAM111C内にある。なお、各乱数更新処理では、上限値がそれぞれ設けられ、上限値に達すると0となり、0から上限値の間で順次更新(+1)する処理が行なわれる。
ここで、「大当り図柄初期値乱数1」は、特図1の大当り停止図柄を決定する乱数の初期値となる乱数、「大当り図柄初期値乱数2」は、特図2の大当り停止図柄を決定する乱数の初期値乱数のことである。また、「当り初期値乱数」は普図変動ゲームの当りを決定する乱数の初期値となる乱数のことである。このように、メイン処理の中で時間が許す限り乱数をインクリメントし続けることによって、乱数のランダム性を高めることができるようにしている。また、後に詳しく説明するが、乱数生成回路(608)はカウンタ方式の乱数生成機能の他に、M系列乱数と呼ばれる乱数生成機能も備えており、タップ設定レジスタ(608b2)の設定値は、M系列乱数生成の計算式を特定するインデックスとして使用される。従って、上記ステップS274でタップカウンタを繰り返しインクリメントすることによって、M系列乱数生成機能で生成されるM系列乱数のランダム性も高めることができる。
〔タイマ割込み処理〕
次に、タイマ割込み処理について説明する。
図9に示すように、タイマ割込み処理は、クロックジェネレータ内のCTC回路で生成される周期的なタイマ割込み信号がCPU111Aに入力されることで開始される。遊技用マイコン111Aにおいてタイマ割込みが発生すると、図9のタイマ割込み処理が開始される。
タイマ割込み処理が開始されると、まず所定のレジスタに保持されている値をRWMに移すレジスタ退避の処理(ステップS41)を行う。なお、本実施例において遊技用マイコンとして使用しているZ80系のマイコンでは、当該処理を表レジスタに保持されている値を裏レジスタに退避することで置き換えることができる。次に、各種センサ(始動口1スイッチ36a、始動口2スイッチ37a、普図のゲートスイッチ34a、カウントスイッチ38aなど)からの入力の取込み、即ち、各入力ポートの状態を読み込む入力処理(ステップS42)を行う。それから、各種処理でセットされた出力データに基づき、ソレノイド(大入賞口SOL38b、普電SOL37c)等のアクチュエータの駆動制御などを行うための出力処理(ステップS43)を行う。
次に、各種処理で送信バッファにセットされたコマンドを演出制御装置300や払出制御装置200等に出力するコマンド送信処理(ステップS44)、乱数更新処理1(ステップS45)、乱数更新処理2(ステップS46)を行う。その後、始動口1スイッチ36a、始動口2スイッチ37a、普図のゲートスイッチ34a、入賞口スイッチ35a…35n、カウントスイッチ38aから正常な信号の入力があるか否かの監視や、エラーの監視(前面枠やガラス枠が開放されていないかなど)を行う入賞口スイッチ/エラー監視処理(ステップS47)を行う。また、特図変動表示ゲームに関する処理を行う特図ゲーム処理(ステップS48)、普図変動表示ゲームに関する処理を行う普図ゲーム処理(ステップS49)を行う。
次に、遊技機10に設けられ、特図変動ゲームの表示や遊技に関する各種情報を表示するセグメントLEDを所望の内容を表示するように駆動するセグメントLED編集処理(ステップS50)、磁気センサスイッチ61や振動センサスイッチ62からの検出信号をチェックして異常がないか判定する磁石不正監視処理(ステップS51)を行う。それから、外部の各種装置に出力する信号を出力バッファにセットする外部情報編集処理(ステップS52)を行う。続いて、割込み要求をクリアして割込みの終了を宣言する処理(ステップS53)を行い、ステップS41で退避したレジスタのデータを復帰する処理(ステップS54)を行った後、割込みを許可する処理(ステップS55)を行なって、タイマ割込み処理を終了する。
〔入力処理〕
次に、上述のタイマ割込み処理における入力処理(ステップS42)の詳細について説明する。
図10に示すように、入力処理においては、先ず入力ポート1、即ち、第1入力ポート123に取り込まれたスイッチの検出信号の状態を読み込む(ステップS421)。そして、8ビットのポートのうち未使用ビットがあればそのビットの状態をクリアする(ステップS422)。
続いて、読み込まれた入力ポート1の状態をRWM内のスイッチ制御領域1にセーブ(格納)する(ステップS423)。その後、ステップS424で入力ポート2、即ち、第2入力ポート122に取り込まれた信号の状態を読み込むためのパラメータの準備を行なってから、スイッチ読込み処理(ステップS425)へ移行する。ここで、本実施形態において「準備」とは、レジスタに値をセットすることを意味するが、これに限らず、RWM、その他のメモリに値をセットするようにしてもよい。
〔スイッチ読込み処理〕
次に、上述の入力処理におけるスイッチ読込み処理(ステップS425)の詳細について説明する。
図11に示すように、スイッチ読込み処理においては、先ずステップS424にて準備されたパラメータで指定された入力ポート、即ち、第2入力ポート122に取り込まれた信号の状態を読み込む(ステップS251)。そして、8ビットのポートのうち未使用ビットがあればそのビットの状態をクリアする(ステップS252)。続いて、読み込まれた入力ポート2の状態をRWM内のスイッチ制御領域2にセーブ(格納)する(ステップS253)。それから、2回目の読込みまでのディレイ時間(0.1ms)が経過するのを待つ(ステップS254)。
ディレイ時間(0.1ms)が経過すると、第2入力ポート122に取り込まれた信号の状態の2回目の読込みを行う(ステップS255)。そして、8ビットのポートのうち未使用ビットがあればそのビットの状態をクリアする(ステップS256)。続いて、読み込まれた入力ポート2の状態をスイッチ制御領域2にセーブ(格納)する(ステップS257)。それから、1回目と2回目の読込みで変化したビット、即ち、信号を検出する(ステップS258)。
その後、今回の2回の読込み、即ち、ステップS251〜S258の処理で確定できるビットを抽出する(ステップS259)。一方、2回の読込みでは確定できないビットについては前回の割込み時におけるスイッチ読込み処理で読み込んだ値を抽出する(ステップS260)。これにより、スイッチのチャタリング等によるノイズを除去した信号の状態を得ることができる。次に、ステップS259とS260で抽出した値を合成して、今回の読込み処理の確定状態としてRWMにセーブする(ステップS261)。その後、確定状態がハイレベルに変化したビットを検出して、対応する信号の立上りエッジの検出としてRWMにセーブして、スイッチ読込み処理を終了する(ステップS262)。
なお、スイッチの読込みは、タイマ割込みの周期が短い場合(例えば2ms)には、各割込みの処理ごとにそれぞれ1回ずつスイッチの読込みを行なって前回の読込みの結果と比較することで信号が変化したか否か判定する方法があるが、そのようにすると次の割込み処理までに前回の割込みで読み込んだスイッチの状態が失われた場合、正しい判定が行なえないおそれがある。これに対し、本実施例のように、所定の時間差をおいて1回の割込み処理の中で2回のスイッチ読込み処理を行うことで、上記のような不具合を回避することが可能となる。
〔出力処理〕
次に、上述のタイマ割込み処理における出力処理(ステップS43)の詳細について説明する。
図12に示すように、出力処理では、先ず一括表示装置(LED)50のセグメントのデータを出力するポート136(図3参照)をリセットする(ステップS431)。続いて、一括表示装置(LED)50のデジット線を順次スキャンするためのデジットカウンタの値を更新(ステップS432)し、デジットカウンタの値に対応するLEDのデジット線の出力データをロードする(ステップS433)。次に、大入賞口ソレノイド38bの出力データをロードして上記デジット出力データと合成した後、普電ソレノイド37cの出力データをロードしてさらに合成する(ステップS434,S435)。そして、合成したデータを、ソレノイド・試験端子・デジットのデータ出力用のポート135へ出力する(ステップS436)。
その後、デジットカウンタの値に対応するRWM内のセグメントデータ領域からセグメント線の出力データを取得する(ステップS437)。そして、取得したデータをセグメント出力用のポート136に出力する(ステップS438)。続いて、外部情報出力端子71へ出力するデータをロードして合成し、外部情報出力用のポート137へ出力する(ステップS439,S440)。次に、試射試験装置へ出力する試験信号の出力データ1〜3をロードして合成し、中継基板70上に設けられている試験端子出力ポート1へ合成したデータを出力する(ステップS441,S442)。
さらにその後、試射試験装置へ出力する試験信号の出力データ4〜6をロードして合成し、中継基板70上に設けられている試験端子出力ポート2へ合成したデータを出力する(ステップS443,S444)。次に、試射試験装置へ出力する試験信号の出力データ7〜8をロードして合成し、中継基板70上に設けられている試験端子出力ポート3へ合成したデータを出力する(ステップS445,S446)。また、試射試験装置へ出力する試験信号の出力データ9〜10をロードして合成し、中継基板70上に設けられている試験端子出力ポート4へ合成したデータを出力する(ステップS447,S448)。さらに、試射試験装置へ出力する試験信号の出力データ11をロードして合成し、中継基板70上に設けられている試験端子出力ポート5へ合成したデータを出力(ステップS449,S450)して、図12の出力処理を終了する。
〔コマンド送信処理〕
次に、上述のタイマ割込み処理におけるコマンド送信処理(ステップS44)の詳細について説明する。
図13に示すように、コマンド送信処理は、演出制御装置300に対する演出制御コマンド送信処理(ステップS410)と、払出制御装置200に対する払出コマンド送信処理(ステップS420)とからなる。
〔演出制御コマンド送信処理〕
先ず、上述のコマンド送信処理における演出制御コマンド送信処理(ステップS410)の詳細について説明する。
図14に示すように、演出制御コマンド送信処理においては、先ず、送信コマンドをRWMに設定するときに「+1」されるライトカウンタの値と、RWMから送信コマンドを読み出すときに「+1」されるリードカウンタの値とを比較して、コマンドが設定されているかチェックする(ステップS411)。具体的には、ライトカウンタの値とリードカウンタの値とが同一であれば設定コマンドなしと判定し、ライトカウンタの値とリードカウンタの値とが一致していない場合には、未送信のコマンドが設定されていると判定する(ステップS412)。
このステップS412の判定で、設定コマンドなし(ステップS412;No)と判定した場合には当該演出制御コマンド送信処理から抜け、ステップS412の判定で、コマンドが設定されている(ステップS412;Yes)と判定した場合には次のステップS413でリードカウンタを更新(+1)する。そして、リードカウンタの値に対応するコマンド送信領域(MODE(上位バイト))からコマンドをロードする(ステップS414)。それから、取得したコマンドが入っていた領域をリセットする(ステップS415)。さらに、リードカウンタの値に対応するコマンド送信領域(ACTION(下位バイト))からコマンドをロードする(ステップS416)。それから、取得したコマンドが入っていた領域をリセットする(ステップS416)。しかる後、演出制御コマンド出力処理(ステップS418)へ移行する。
〔演出制御コマンド出力処理〕
次に、上述の演出制御コマンド送信処理における演出制御コマンド出力処理(ステップS418)の詳細について説明する。
図15(a)に示すように、演出制御コマンド出力処理においては、先ず、コマンド(MODE)出力中を示すストローブ信号のオフ時間を準備して(ステップS181)、コマンドデータ出力処理(ステップS182)を実行する。その後、コマンド(ACTION)を出力し(ステップS183)、コマンド(ACTION)出力中を示すストローブ信号のオフ時間を準備(ステップS184)してから、コマンドデータ出力処理(ステップS185)を実行する。
〔コマンドデータ出力処理〕
次に、上述の演出制御コマンド出力処理におけるコマンドデータ出力処理(ステップS182、S185)の詳細について説明する。
図15(b)に示すように、コマンドデータ出力処理においては、先ず、ポートの直前の状態が失われないようにするため、演出制御コマンド出力のストローブ信号を含む出力ポート131のポート状態保持データをロードする(ステップS821)。それから、演出制御コマンドを出力ポート132へ出力(ステップS822)し、出力ポート131へはストローブ信号を除く信号を直前の状態に保持してオフ状態(データの読取り無効を示す例えばロウレベル)のストローブ信号を付加して出力する(ステップS823)。そして、次のステップS824で、ストローブ信号をオフ状態にすべき時間(オフ時間)が終了したか否か判定する。ここで、オフ時間が終了していない(ステップS824;No)と判定するとステップS822へ戻って上記処理を繰り返す。
一方、ステップS824で、オフ時間が終了した(ステップS824;Yes)と判定するとステップS825へ移行して、ストローブ信号のオン状態(データの読取り有効を示す例えばハイレベル)の時間を設定する。続いて、ステップS821でロードしたデータを保持するレジスタ上で、出力ポート131のストローブ信号を除く信号を直前の状態に保持したままストローブ信号をオン状態に設定する(ステップS826)。それから、演出制御コマンドを出力(ステップS827)し、オン状態(ハイレベル)のストローブ信号を出力する(ステップS828)。
そして、次のステップS829で、ストローブ信号をオン状態にすべき時間(オン時間)が終了したか否か判定する。ここで、オン時間が終了していない(ステップS829;No)と判定するとステップS827へ戻って上記処理を繰り返す。また、ステップS829で、オン時間が終了した(ステップS829;Yes)と判定するとステップS830へ移行して、オフ状態のストローブ信号を設定してから、オフ状態のストローブ信号を出力(ステップS831)して、当該コマンドデータ出力処理を終了する。ステップS827で演出制御コマンドを再度出力しているのは、ステップS827〜S829のループ処理中に停電が発生した場合に、出力中の演出制御コマンドが停電復帰後に出力されなくなるのを回避するためである。また、ノイズによって、コマンドコードが変わってしまうのを回避することもできる。なお、このステップS824及びステップS829は、各々の処理のみをループさせることも可能である。
〔払出コマンド送信処理〕
先ず、上述のコマンド送信処理における払出コマンド送信処理(ステップS420)の詳細について説明する。
図16に示すように、払出コマンド送信処理においては、先ず入賞口別に設けられている入賞数カウンタ領域に「0」でないカウント数があるかチェックする(ステップS201)。ここで、カウント数がない(ステップS202:No)と判定した場合には、ステップS203へ進んでチェック対象となる入賞数カウンタ領域のアドレスを更新し、すべての入賞数カウンタ領域のカウント数のチェックが終了したか判定する(ステップS204)。この判定で、すべてのチェックが終了した(ステップS204;Yes)と判定すると、当該コマンド送信処理を終了する。一方、ステップS204ですべてのチェックが終了していない(ステップS204;No)と判定すると、ステップS201へ戻って上記処理を繰り返す。
また、上記ステップS202で、カウント数がある(ステップS202;Yes)と判定した場合には、ステップS205へ移行して、入賞数カウンタ領域のカウント数を減算(−1)する。その後、入賞数カウンタ領域、即ち、入賞口に対応した払出コマンド(負論理のデータ)を取得する(ステップS206)。それから、データの読込みが有効か無効かを示すストローブ信号のオフ時間(例えばロウレベルに維持する時間)を設定する(ステップS207)。そして、次のステップS208で、上記ステップS206で取得した払出コマンド(負論理のデータ)とオフ状態(ロウレベル)のストローブ信号をポート131(図3参照)へ出力する。
しかる後、ステップS207で設定したオフ時間が経過したか否か判定し(ステップS209)、経過していない場合(ステップS209;No)にはステップS208へ戻り、経過した場合(ステップS209;Yes)にはステップS210へ進む。ステップS210では、ストローブ信号をオン状態(ハイレベル)に設定し、続いて負論理データの残り出力時間を設定する(ステップS211)。そして、次のステップS212で、引き続き払出コマンド(負論理のデータ)を出力するとともにオン状態(ハイレベル)のストローブ信号をポート131へ出力する。その後、ステップS211で設定した負論理データの残り出力時間が経過したか否か判定し(ステップS213)、経過していない場合(ステップS213;No)にはステップS212へ戻り、経過した場合(ステップS213;Yes)にはステップS214へ進む。
ステップS214では、上記負論理の払出コマンドデータを反転して正論理の払出コマンドデータを生成する。それから、ストローブ信号のオン残り時間(ハイレベルの時間)を設定する(ステップS215)。そして、次のステップS216で、上記ステップS214で生成した払出コマンド(正論理のデータ)とオン状態(ハイレベル)のストローブ信号をポート131へ出力する。しかる後、ステップS215で設定したオン時間が経過したか否か判定し(ステップS217)、経過していない場合(ステップS217;No)にはステップS216へ戻り、経過した場合(ステップS217;Yes)にはステップS218へ進む。
ステップS218では、ストローブ信号をオフ状態(ロウレベル)に設定し、続いて正論理データの残り出力時間を設定する(ステップS219)。そして、次のステップS220で、引き続き払出コマンド(正論理のデータ)を出力するとともにオフ状態(ロウレベル)のストローブ信号をポート131へ出力する。その後、ステップS219で設定した正論理データの残り出力時間が経過したか否か判定し(ステップS221)、経過していない場合(ステップS221;No)にはステップS220へ戻り、経過した場合(ステップS221;Yes)にはステップS222へ進む。ステップS222では、正論理の払出コマンドデータをポート状態保持データとしてRWMにセーブし、当該コマンド送信処理を終了する。
上記のように、負論理の払出コマンドデータを出力した後に正論理の払出コマンドデータを出力することによって、コマンド受信側では、負論理の払出コマンドデータと正論理の払出コマンドデータを読み込んで比較することによって、正しいコマンドを受信することができたか否かを判定することができる。例えば先に受信した負論理の払出コマンドデータを論理反転して、それと後で受信した正論理の払出コマンドデータとを比較して、同一でない場合にはコマンド受信エラーと判断し、コマンドの再送を遊技制御装置へ要求することで正確なコマンドを受信することが可能となる。
〔乱数更新処理1〕
次に、上述のタイマ割込み処理における乱数更新処理1(ステップS45)の詳細について説明する。
乱数更新処理1は、図8の初期値乱数更新処理の対象となっている大当り図柄乱数1、当り乱数、大当り図柄乱数2の初期値(スタート値)を更新するための処理であり、遊技用マイコン111が備える乱数生成回路(図48:608)内のレジスタ(スタート値設定レジスタ608b5)に設定する初期値を更新する。
図17に示すように、乱数更新処理1においては、先ず乱数の更新状態を示すソフト乱数ステータスレジスタ(608b15)の値を読み込む(ステップS451)。そして、乱数が1周して次回の初期値(スタート値)設定待ちの乱数があるかチェックする(ステップS452)。ここで、初期値設定待ちの乱数がなければ当該乱数更新処理1を終了する(ステップS453:No)。一方、初期値設定待ちの乱数があるときはステップS454へ進む(ステップS453:Yes)。上記のように、遊技制御手段としての遊技用マイコン111は、周回初期値(スタート値)が乱数カウンタに設定されたか否かを示す設定情報を記憶するソフト乱数ステータスレジスタの値に基づいて、次の周回初期値を設定するようにしているので、乱数カウンタが一巡する毎に確実に次の周回初期値を設定することができる。
ステップS454では、普図の当り乱数が次回の初期値(スタート値)設定待ちの乱数であるかチェックする。ここで、初期値設定待ちでなければステップS457へジャンプする(ステップS455:No)。一方、普図の当り乱数が初期値設定待ちであるときはステップS456へ進む(ステップS455:Yes)。ステップS456では、普図の当り乱数の次回の初期値を、対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタに設定して、ステップS457へ進む。
ステップS457では、大当り図柄乱数1が次回の初期値(スタート値)設定待ちの乱数であるかチェックする。ここで、初期値設定待ちでなければステップS460へジャンプする(ステップS458:No)。一方、大当り図柄乱数1が初期値設定待ちであるときはステップS459へ進む(ステップS458:Yes)。ステップS459では、大当り図柄乱数1の次回の初期値を、対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタに設定して、ステップS460へ進む。
ステップS460では、大当り図柄乱数2が次回の初期値(スタート値)設定待ちの乱数であるかチェックする。ここで、初期値設定待ちでなければ当該乱数更新処理1を終了する(ステップS461:No)。一方、大当り図柄乱数2が初期値設定待ちであるときはステップS462へ進む(ステップS461:Yes)。ステップS462では、大当り図柄乱数2の次回の初期値を、対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタに設定して、当該乱数更新処理1を終了する。
〔乱数更新処理2〕
次に、図18を用いて上述のタイマ割込み処理における乱数更新処理2(ステップS46)の詳細について説明する。
乱数更新処理2は、特図1,特図2の変動表示ゲームにおける変動パターンを決定するための変動パターン乱数1,2,3の計算式(特性多項式)を更新する処理であり、遊技用マイコン111が備える乱数生成回路(図48:608)内のレジスタ(タップ設定レジスタ608b2)に設定するタップ値を更新する。変動パターン乱数1,2,3は、特図1,特図2の変動表示ゲームにおいて共有して使用され、変動パターン乱数1に基づいて後半変動選択テーブルを選択し、変動パターン乱数2に基づいて後半変動選択テーブルから特図1,特図2の変動表示ゲームの後半変動パターンを選択し、変動パターン乱数3に基づいて前半変動選択テーブルから特図1,特図2の変動表示ゲームの後半変動パターンを選択するようにされる。
図18(A)に示すように、乱数更新処理2においては、遊技用マイコン111のCPU111Aが先ず乱数の更新状態を示すソフト乱数ステータスレジスタ(図48:608b15)の値を読み込む(ステップS601)。そして、乱数が1周して次回のタップ設定待ちの乱数があるかチェックする(ステップS602)。ここで、タップ設定待ちの乱数がなければ当該乱数更新処理2を終了する(ステップS603:No)。一方、タップ設定待ちの乱数があるときはステップS604へ進む(ステップS603:Yes)。上記のように、遊技制御手段としての遊技用マイコン111は、タップ値がタップ設定レジスタに設定されたか否かを示す設定情報を記憶するソフト乱数ステータスレジスタの値に基づいて、次のタップ値を設定するようにしているので、乱数カウンタが一巡する毎に確実に次のタップ値を設定することができる。なお、一巡とは、乱数が取り得る範囲内で一通り出現した状態のことを意味する。
ステップS604では、変動パターン乱数1が次回のタップ設定待ちの乱数であるかチェックする。ここで、変動パターン乱数1が次回のタップ設定待ちでなければステップS607へジャンプする(ステップS605:No)。一方、変動パターン乱数1が次回のタップ設定待ちである(ステップS605:Yes)ときはステップS606へ進みタップ設定処理を実行する。
ステップS607では、変動パターン乱数2が次回のタップ設定待ちの乱数であるかチェックする。ここで、変動パターン乱数2が次回のタップ設定待ちでなければステップS610へジャンプする(ステップS608:No)。一方、変動パターン乱数2が次回のタップ設定待ちである(ステップS608:Yes)ときはステップS609へ進みタップ設定処理を実行する。
ステップS610では、変動パターン乱数3が次回のタップ設定待ちの乱数であるかチェックする。ここで、変動パターン乱数3が次回のタップ設定待ちでなければ(ステップS611:No)、ステップS612をスキップして当該乱数更新処理2を終了する。一方、変動パターン乱数3が次回のタップ設定待ちである(ステップS611:Yes)ときはステップS612へ進みタップ設定処理を実行する。
図18(B)には、上記ステップS606、S609、S612におけるタップ設定処理の具体的な手順が示されている。
タップ設定処理においては、先ずそのときのタップカウンタの値を取得する(ステップS621)。タップカウンタは、遊技用マイコン111のRAM111C内に用意されている。
次のステップS622では、取得したタップカウンタの値が前回の値と一致しているか否か判定する。そして、一致していない(ステップS622;No)と判定した場合は、ステップS623〜S624をスキップして当該タップ設定処理を終了する。一方、ステップS622でタップカウンタの値が前回の値と一致している(ステップS622:Yes)と判定した場合は、ステップS623へ進む。
ステップS623では、タップカウンタの値をインクリメント(+1更新)し、次のステップS624で、更新したタップカウンタの値を、後述の乱数生成回路(608)内のタップ設定レジスタ(608b2)に設定して、当該タップ設定処理を終了する。
上記のように、遊技用マイコン111のCPU111Aは、特図1,特図2の変動表示ゲームにおける変動パターンを決定するための変動パターン乱数1,2,3の計算式を指定するタップ値を更新する。なお、変動パターンとしては、「リーチなし」の変動パターンや、「ノーマルリーチ」、「スペシャル(SP)1−Aリーチ」、「スペシャル(SP)1−Bリーチ」、「スペシャル(SP)2−Aリーチ」、「スペシャル(SP)2−Bリーチ」、「スペシャル(SP)3−Aリーチ」、「スペシャル(SP)3−Bリーチ」等の各種リーチ状態における変動パターン(リーチ変動態様)が設定されている。
〔入賞口スイッチ/エラー監視処理〕
次に、上述のタイマ割込み処理における入賞口スイッチ/エラー監視処理(ステップS47)の詳細について説明する。
入賞口スイッチ/エラー監視処理は、各種入賞口に設けられたスイッチから信号の入力(信号の変化)があるか否かの監視や、エラーの監視を行う処理である。
図19に示すように、入賞口スイッチ/エラー監視処理においては、先ずエラー監視処理が不要な入賞口スイッチの入賞監視テーブル(例えばエラー監視不要なスイッチを示すリスト)を準備する(ステップS471)。エラー監視処理が不要な入賞口スイッチについては、エラー監視はしないが入賞検出処理は行うので、ステップS471でその処理のために入賞監視テーブルを用意し、次のステップで、入賞数を更新する入賞数カウンタ更新処理(ステップS472)を実行する。この入賞数カウンタ更新処理の詳細な手順については、後に図20を用いて説明する。
入賞数カウンタ更新処理(ステップS472)の後は、特別変動入賞装置(大入賞口)38内のカウントスイッチ38aのエラー監視テーブル(例えばカウントスイッチからの検出信号が入力されるポートの番号や該信号のポート内でのビット位置等を示すデータが格納されている)を準備する(ステップS473)。それから、大入賞口が開いていないにもかかわらず大入賞口に不正な入賞がないか監視するとともに正常な入賞を検出する入賞監視処理S474を実行する。この入賞監視処理の詳細な手順については、後に図21を用いて説明する。つまり、カウントスイッチ38aは、エラー監視処理が必要であるとして、ステップS471で外された入賞口スイッチの一つである。
入賞監視処理(ステップS474)の後は、普電(普通変動入賞装置37)内の始動口2スイッチ37aのエラー監視テーブルを準備する(ステップS475)。それから、普電が開いていないにもかかわらず普電に不正な入賞がないか監視するとともに正常な入賞を検出する入賞監視処理S476を実行する。つまり、始動口2スイッチ37aは、エラー監視処理が必要であるとして、ステップS471で外された入賞口スイッチの一つである。
次に、エラーを監視すべき複数のスイッチ並びに信号のうちいずれのスイッチ又は信号を今回の監視の対象とするかを順番に指定するためのエラースキャンカウンタを更新する(ステップS477)。続いて、払出制御装置200からのシュート玉切れスイッチ、オーバーフロースイッチ及び払出制御装置の異常監視用のエラー監視テーブルを準備する(ステップS478)。それから、これらのスイッチ及び払出制御装置に異常が発生していないかをタイマを参照しながら判定するエラーチェック処理S479を実行する。
その後、前枠開放検出スイッチ63及び遊技枠開放検出スイッチ64からの信号に基づく前枠(ガラス枠15)及び遊技枠(前面枠12)の開放監視用のエラー監視テーブルを準備する(ステップS480)。それから、前枠及び遊技枠の開放監視用エラースキャンカウンタを準備し(ステップS481)、これらのスイッチに異常が発生していないかをタイマを参照しながら判定するエラーチェック処理(ステップS482)を実行する。
〔入力数カウンタ更新処理〕
次に、上述の入賞口スイッチ/エラー監視処理における入力数カウンタ更新処理(ステップS472)の詳細について説明する。
図20に示すように、入力数カウンタ更新処理においては、先ず、ステップS471で取得した入賞監視テーブルから監視する入賞口スイッチの個数を取得する(ステップS711)。次に、図11のステップS262でRWMにセーブしたスイッチ入力信号の立ち上がりエッジを取得する(ステップS712)。そして、監視対象の入賞口スイッチから検出信号の入力(正確には入力の変化)があるかチェックする(ステップS713)。ここで、入力がない(S714:No)と判定するとステップS719へジャンプし、入力がある(S714:Yes)と判定すると、次のステップS715で、更新対象である入賞数カウンタ領域の値をロードする。
それから、ステップS715でロードした値を更新(+1)してオーバーフローするかチェックする(ステップS716)。そして、オーバーフローが発生していない(ステップS717:No)と判定すると、ステップS718へ進んで更新後の値を入賞数カウンタ領域にセーブしてからステップS719へ進む。一方、ステップS717でオーバーフローが発生している(S717;Yes)と判定すると、ステップS718をスキップしてステップS719へジャンプする。例えば、始動入賞のように、予め最大記憶数(例えば4個)が設定されているものにおいては、更新後の値がセーブされないこととなる。ステップS719では、全部のスイッチの監視処理が終了したか判定して、終了している場合(ステップS719:Yes)には当該入力数カウンタ更新処理を終了し、終了していない場合(ステップS719:No)にはステップS712へ戻り上記処理を繰り返す。
〔入賞監視処理〕
次に、上述の入賞口スイッチ/エラー監視処理における入賞監視処理(ステップS474、S476)の詳細について説明する。
入賞監視処理は、大入賞口のカウントスイッチ38a又は普電内の始動口2スイッチ37aに対して行なわれる処理であり、入賞の検出の他に不正の監視をする。大入賞口(特別変動入賞装置38)や普電(普通変動入賞装置37)は、無理やり開閉部材を開いて遊技球を入れて賞球を払い出させる不正が行なわれ易いためである。
図21に示すように、入賞監視処理においては、先ず不正入賞数の加算値として「0」を設定する(ステップS741)。それから、図11のステップS262でRWMにセーブしたスイッチ入力信号の立ち上がりエッジをロードする(ステップS742)。そして、エラー監視対象の入賞口スイッチ(大入賞口のカウントスイッチ38a又は普電内の始動口2スイッチ37a)に入力があるかチェックする(ステップS743)。ここで、入力なし(ステップS744:No)と判定すると、ステップS746へジャンプし、入力がある(ステップS744:Yes)と判定すると、ステップS745へ進んで不正入賞数の加算値として「1」を設定してステップS746へ進む。ステップS746では、エラー監視対象の入賞口スイッチの不正監視期間フラグをRWMからロードする。
その後、エラー監視対象の入賞口スイッチの不正入賞エラー発生コマンドを取得する(ステップS747)。そして、次のステップS748で不正監視期間かつまり遊技状態として大入賞口(特別変動入賞装置38)が閉じている期間又は普電(普通変動入賞装置37)が閉じている期間かチェックし、不正監視期間でない(ステップS749:No)と判定するとステップS758へジャンプし、不正監視期間である(ステップS749:Yes)と判定すると、ステップS750へ進んで不正入賞数加算値が「0」かチェックする。ここで、不正入賞数加算値が「0」である(ステップS751:Yes)と判定するとステップS760へジャンプし、不正入賞数加算値が「0」でない(ステップS751:No)と判定すると、ステップS752へ進んでエラー監視対象の不正入賞数に「1」を加算する。
次に、加算後の不正入賞数が監視対象の不正発生判定個数(例えば5個)を超えたかチェックする(ステップS753)。判定個数を5個としているのは、例えば、開状態にある大入賞口が閉状態に変換した際に遊技球が大入賞口の扉部材に挟まり、その遊技球がカウントスイッチの有効期間を過ぎて入賞した場合や信号にノイズがのった場合にそれを不正と判断しない、不正でないのに簡単にエラーと判定しないためである。ここで、判定個数を超えていない(ステップS754:No)と判定するとステップS758へジャンプし、判定個数を超えた(ステップS754:Yes)と判定するとステップS755へ進む。
ステップS755では、不正入賞数を不正発生判定個数に留め、次のステップS756で報知タイマ領域に初期値をセーブしてから、エラー発生フラグを準備する(ステップS757)。その後、ステップS767へ移行して、エラー監視対象の入賞口スイッチのエラーフラグ領域を準備して、ステータス更新処理S768を実行する。ステータス更新処理については、図22を用いて後に説明するが、エラーが発生しているとこの中でエラー報知コマンドが演出制御装置300へ送信され、エラー報知がなされる。
一方、ステップS754で判定個数を超えていない(ステップS754;No)と判定して移行したステップS758では、エラー監視対象の入賞口スイッチ(大入賞口のカウントスイッチ38a又は普電内の始動口2スイッチ37a)の入賞監視テーブルを準備する。その後、入賞数カウンタを更新するつまり賞球排出の対象として入賞数を計数する処理S759を実行してから、報知タイマ領域を更新(−1)する(ステップS760)。そして、次のステップS761で当該タイマがタイムアップしたか判定し、タイムアップしていない(ステップS761:No)と判定したときは一旦当該入賞監視処理を抜ける。また、報知タイマがタイムアップした(ステップS761:Yes)と判定したときは、ステップS762へ進んでエラー監視対象の入賞口スイッチの不正入賞エラー解除コマンドを設定する。つまり、所定時間経過しても不正入賞が所定個数以上発生しない場合には、不正入賞エラー解除コマンドを設定する。
ステップS762の後、エラー解除フラグを準備し(ステップS763)、エラー解除タイミングかチェックする(ステップS764)。ここで、エラー解除タイミングでない(ステップS765:No)と判定すると、ステップS767へジャンプし、エラー解除タイミングである(ステップS765:Yes)と判定すると、ステップS766へ進んで不正入賞数をリセットし、ステップS767へ進む。ステップS767では、エラー監視対象の入賞口スイッチのエラーフラグ領域を準備してステップS757で準備したエラー発生フラグ又はステップS763で準備したエラー解除フラグに対応した設定を行なってから、ステータス更新処理S768へ移行する。ステップS762で設定された不正入賞エラー解除コマンドは、このステータス更新処理S768の中で演出制御装置300へ送信され、エラー報知が解除される。
〔ステータス更新処理〕
次に、上述の入賞監視処理におけるステータス更新処理(ステップS768)の詳細について説明する。
図22に示すように、ステータス更新処理においては、ステップS757で準備したエラー発生フラグ又はステップS763で準備したエラー解除フラグが、ステップS767で準備したエラー監視対象のエラーフラグ領域の値と変化しているか(異なるか)チェックする(ステップS681)。
ここで、エラーフラグ領域の値から変化していない(ステップS682:No)と判定したときは当該ステータス更新処理を終了する。また、エラーフラグ領域の値から変化した(ステップS682:Yes)と判定したときは、ステップS683へ進んでエラーフラグをRWMにセーブする。その後、エラー報知コマンド(MODE)を準備し(ステップS684)、当該エラー報知コマンドを演出制御装置300へ送信するためのコマンド設定処理(ステップS685)を実行して、ステータス更新処理が終了する。
〔特図ゲーム処理〕
次に、上述のタイマ割込み処理における特図ゲーム処理(ステップS48)の詳細について説明する。
特図ゲーム処理では、始動口1スイッチ36a及び始動口2スイッチ37aの入力の監視と、特図変動表示ゲームに関する処理全体の制御、特図の表示の設定を行う。
図23に示すように、特図ゲーム処理では、先ず、始動口1スイッチ36a及び始動口2スイッチ37aの入賞を監視する始動スイッチ監視処理(ステップA1)を行う。
始動口スイッチ監視処理では、始動入賞口36、第2始動入賞口をなす普通変動入賞装置37に遊技球の入賞があると、各種乱数(大当り乱数など)の抽出を行い、当該入賞に基づく特図変動表示ゲームの開始前の段階で入賞に基づく遊技結果を事前に判定する遊技結果事前判定を行う。
なお、始動口スイッチ監視処理(ステップA1)の詳細については後述する。
次に、カウントスイッチ監視処理(ステップA2)を行う。このカウントスイッチ監視処理では、特別変動入賞装置38内に設けられたカウントスイッチ38aのカウント数を監視する処理を行う。
なお、カウントスイッチ監視処理(ステップA2)の詳細については後述する。
次に、特図ゲーム処理タイマを更新(−1)して、当該ゲーム処理タイマがタイムアップしたか否かをチェックして(ステップA3)、特図ゲーム処理タイマがタイムアップした(ステップA4;Yes)と判定すると、特図ゲーム処理番号に対応する処理に分岐させるために参照する特図ゲームシーケンス分岐テーブルをレジスタに設定する処理(ステップA5)を行って、当該テーブルを用いて特図ゲーム処理番号に対応する処理の分岐先アドレスを取得する処理(ステップA6)を行う。
そして、分岐処理終了後のリターンアドレスをスタック領域に退避させる処理(ステップA7)を行った後、ゲーム処理番号に応じてゲーム分岐処理(ステップA8)を行う。
ステップA8にて、ゲーム処理番号が「0」の場合は、特図変動表示ゲームの変動開始を監視し、特図変動表示ゲームの変動開始の設定や演出の設定や、特図変動中処理を行うために必要な情報の設定等を行う特図普段処理(ステップA9)を行う。
なお、特図普段処理(ステップA9)の詳細については後述する。
また、ステップA8にて、ゲーム処理番号が「1」の場合は、特図の停止表示時間の設定や、特図表示中処理を行うために必要な情報の設定等を行う特図変動中処理(ステップA10)を行う。
なお、特図変動中処理(ステップA10)の詳細については後述する。
また、ステップA8にて、ゲーム処理番号が「2」の場合は、特図変動表示ゲームの遊技結果が大当りであれば、大当りの種類(2R大当りor15R大当り)に応じたファンファーレコマンドの設定や、各大当り(2R大当りor15R大当り)の大入賞口開放パターンに応じたファンファーレ時間の設定や、ファンファーレ/インターバル中処理を行うために必要な情報の設定等を行う特図表示中処理(ステップA11)を行う。
なお、特図表示中処理(ステップA11)の詳細については後述する。
また、ステップA8にて、ゲーム処理番号が「3」の場合は、大入賞口の開放時間の設定や開放回数の更新、大入賞口開放中処理を行うために必要な情報の設定等を行うファンファーレ/インターバル中処理(ステップA12)を行う。
なお、ファンファーレ/インターバル中処理(ステップA12)の詳細については後述する。
また、ステップA8にて、ゲーム処理番号が「4」の場合は、大当りラウンドが最終ラウンドでなければインターバルコマンドを設定する一方で最終ラウンドであれば大当り終了画面のコマンドを設定する処理や、大入賞口残存球処理を行うために必要な情報の設定等を行う大入賞口開放中処理(ステップA13)を行う。
なお、大入賞口開放中処理(ステップA13)の詳細については後述する。
また、ステップA8にて、ゲーム処理番号が「5」の場合は、大当りラウンドが最終ラウンドであれば大入賞口内にある残存球が排出されるための時間を設定する処理や、大当り終了処理を行うために必要な情報の設定等を行う大入賞口残存球処理(ステップA14)を行う。
なお、大入賞口残存球処理(ステップA14)の詳細については後述する。
また、ステップA8にて、ゲーム処理番号が「6」の場合は、特図普段処理(ステップA9)を行うために必要な情報の設定等を行う大当り終了処理(ステップA15)を行う。
なお、大当り終了処理(ステップA15)の詳細については後述する。
その後、分岐処理にて準備したテーブルの各データをRWMの作業領域にセーブする(ステップA16)。
そして、特図1表示器51の変動を制御するためのテーブルを準備した後(ステップA17)、特図1表示器51に係る図柄変動制御処理(ステップA18)を行う。その後、特図2表示器52の変動を制御するためのテーブルを準備した後(ステップA19)、特図2表示器52に係る図柄変動制御処理(ステップA20)を行う。
なお、図柄変動制御処理(ステップA18、A20)の詳細については後述する。
一方、ステップA4にて、特図ゲーム処理タイマがタイムアップしていない(ステップA4;No)と判定すると、処理をステップA17に移行して、それ以降の処理を行う。
〔始動口スイッチ監視処理〕
次に、上述の特図ゲーム処理における始動口スイッチ監視処理の詳細について説明する。
図24に示すように、始動口スイッチ監視処理では、先ず、始動入賞口36(第1始動口)による始動口入賞演出コマンドを設定するテーブルを準備し(ステップA111)、さらに、第1始動口による保留の情報を設定するテーブルを準備した後(ステップA112)、特図始動口スイッチ共通処理(ステップA113)を行う。
なお、ステップA113における特図始動口スイッチ共通処理の詳細については、ステップA1110における特図始動口スイッチ共通処理とともに後述する。
次に、普通電動役物(普通変動入賞装置37)が作動中である、即ち、普通変動入賞装置37が作動して遊技球の入賞が可能な開状態となっているか否かをチェックして(ステップA114)、普通電動役物が作動中である(ステップA115;Yes)と判定すると、処理をステップA118に移行して、それ以降の処理を行う。一方、ステップA115にて、普通電動役物が作動中でない(ステップA115;No)と判定すると、普通変動入賞装置37への不正入賞数が不正発生判定個数以上であるかをチェックして(ステップA116)、不正入賞数が不正発生判定個数以上であるか否かを判定する処理(ステップA117)を行う。
普通変動入賞装置37は、閉状態では遊技球が入賞不可能であり、開状態でのみ遊技球が入賞可能である。よって、閉状態で遊技球が入賞した場合は何らかの異常や不正が発生した場合であり、このような閉状態で入賞した遊技球があった場合はその数を不正入賞数として計数する。そして、このように計数された不正入賞数が所定の不正発生判定個数(上限値)以上であるかが判定される。
ステップA117にて、不正入賞数が不正判定個数以上でない(ステップA117;No)と判定すると、普通変動入賞装置37(始動口2)による始動口入賞演出コマンドを設定するテーブルを準備する(ステップA118)。
その後、始動口2による保留の情報を設定するテーブルを準備した後(ステップA119)、特図始動口スイッチ共通処理(ステップA120)を行って、始動口スイッチ監視処理を終了する。
また、ステップA117にて、不正入賞数が不正判定個数以上であると判定された場合も(ステップA117;Yes)、始動口スイッチ監視処理を終了する。即ち、第2始動記憶をそれ以上発生させないようにする。
〔特図始動口スイッチ共通処理〕
次に、上述の始動口スイッチ監視処理における特図始動口スイッチ共通処理(ステップA113、A120)の詳細について説明する。
特図始動口スイッチ共通処理は、始動口1スイッチ36aや始動口2スイッチ37aの入力があった場合に、各々の入力について共通して行われる処理である。
図25に示すように、特図始動口スイッチ共通処理では、CPU111Aは、先ず始動口1スイッチ36a及び始動口2スイッチ37aのうち、監視対象の始動口スイッチ(例えば、始動口1スイッチ36a等)に入力があるか否かをチェックして(ステップA201)、監視対象の始動口スイッチに入力がない(ステップA202;No)と判定すると、特図始動口スイッチ共通処理を終了する。一方、ステップA202にて、監視対象の始動口スイッチに入力がある(ステップA202;Yes)と判定すると、当該監視対象の始動口スイッチの始動口入賞フラグをセーブした後(ステップA203)、大当り乱数をロード(大当り乱数を抽出)する(ステップA204)。
続けて、始動口1スイッチ36a及び始動口2スイッチ37aのうち、監視対象の始動口スイッチ(例えば、始動口1スイッチ36a等)への入賞の回数に関する情報が遊技機10の外部の管理装置に対して出力された回数(始動口信号制御出力回数)をロードする(ステップA205)。そして、ロードした値を更新(+1)し、出力回数がオーバーフローするか否かをチェックして(ステップA206)、出力回数がオーバーフローしない(ステップA207;No)と判定すると、更新後の値をRWMの始動口信号出力回数領域にセーブして(ステップA208)、処理をステップA209に移行する。一方、ステップA207にて、出力回数がオーバーフローしないと判定された場合は(ステップA207;Yes)、処理をステップA209に移行する。
そして、ステップA209にて、始動口1スイッチ36a及び始動口2スイッチ37aのうち、監視対象の始動口スイッチ(例えば、始動口1スイッチ36a等)に対応する更新対象の特図保留(始動記憶)数が上限値未満か否かをチェックして(ステップA209)、特図保留数が上限値未満か否かを判定する処理(ステップA210)を行う。
ステップA210にて、特図保留数が上限値未満でない(ステップA210;No)と判定すると、ステップA202に係る始動口スイッチの入力が始動口1スイッチ36aの入力であるか否かをチェックして(ステップA211)、始動口1スイッチ36aの入力である(ステップA212;Yes)と判定すると、飾り特図保留数コマンド(オーバーフローコマンド)を準備し(ステップA213)、コマンド設定処理(ステップA214)を行って、特図始動口スイッチ共通処理を終了する。
また、ステップA212にて、始動口1スイッチ36aの入力でない(ステップA212;No)と判定された場合は、ステップA213〜A214をスキップして当該特図始動口スイッチ共通処理を終了する。
一方、ステップA210にて、特図保留数が上限値未満である(ステップA210;Yes)と判定すると、更新対象の特図保留数(例えば、特図1保留数等)を更新(+1)する処理(ステップA215)を行った後、特図保留数に対応する乱数セーブ領域のアドレスを算出する処理(ステップA216)を行う。
続けて、始動口1スイッチ36a及び始動口2スイッチ37aのうち、監視対象の始動口スイッチ(例えば、始動口1スイッチ36a等)の飾り特図保留数コマンド(MODE)を準備した後(ステップA217)、当該監視対象の始動口スイッチの大当り図柄乱数をロード(大当り図柄乱数を抽出)し(ステップA218)、特図保留数に対応する飾り特図保留数コマンド(ACTION)を準備して(ステップA219)、コマンド設定処理(ステップA220)を行う。
そして、大当り乱数をRWMの乱数セーブ領域にセーブし(ステップA221)、次に、対応する大当り図柄乱数をRWMの乱数セーブ領域にセーブするとともに、その大当り図柄乱数をレジスタに退避する(ステップA222)。その後、図26のステップA271へ移行して、変動パターン乱数1が更新中か否かを報知する乱数生成回路内の乱数更新中報知レジスタ(図48:608b9)を参照し、更新中か否か判定し(ステップA272)、更新中であればステップS271へ戻り更新中でなくなるのを待つ。ステップS272で更新中でない(No)と判定すると、乱数生成回路(608)内の乱数カウンタ(608b7)から変動パターン乱数1をロードし、ロードした値をRWMの乱数セーブ領域にセーブする(ステップA273)。
次に、ステップA274で変動パターン乱数2が更新中か否かを報知する乱数更新中報知レジスタを参照し、更新中か否か判定し(ステップA275)、更新中であれば更新されるのを待つ。ステップS275で更新中でない(No)と判定すると、変動パターン乱数2をロードし、ロードした値をRWMの乱数セーブ領域にセーブする(ステップA276)。
続いて、ステップA277で変動パターン乱数3が更新中か否かを報知する乱数更新中報知レジスタを参照し、更新中か否か判定し(ステップA278)、更新中であれば更新されるのを待つ。ステップS278で更新中でない(No)と判定すると、変動パターン乱数3をロードし、ロードした値をRWMの乱数セーブ領域にセーブする(ステップA279)。なお、後述のように、変動パターン乱数1,2,3は、それぞれ乱数生成回路(608)の異なる乱数生成ブロック内の乱数カウンタに格納されており、各ブロックにはそれぞれ乱数更新中報知レジスタが設けられている。
上記の記述から、CPU111Aは、所定の乱数取得条件(始動口への入賞)の発生が検出された場合に、乱数値記憶手段(乱数カウンタ)から乱数値を取得する乱数値取得手段として機能することが分かる。また、図25〜図26に示す特図始動口スイッチ共通処理は、図23の特図ゲーム処理の中の処理であり、特図ゲーム処理は図9のタイマ割込み処理の中の処理であるので、乱数値取得手段による乱数値の取得はタイマ割込み処理中に行われることとなる。
また、RWM(RAM111C)は、始動入賞口36や普通変動入賞装置37の始動領域への遊技球の流入に基づいて各種乱数を抽出し、該抽出された各種乱数を始動記憶として記憶可能な始動記憶手段をなす。
上記ステップA279の後、ステップA222にてレジスタに退避した監視対象の始動口スイッチに対応する大当り図柄乱数をロードし、ロードした値を後述の特図保留情報判定処理(図27)にて使用するために準備する(ステップA280)。そして、特図保留情報判定処理(ステップA281)を実行し、変動パターン乱数1,2,3を生成する各乱数生成ブロック内の更新トリガレジスタ(図48:608b3)への書込み(ステップA282,A283,A284)を順次行なって、特図始動口スイッチ共通処理を終了する。更新トリガレジスタ(図48:608b3)への書込みによって、乱数生成ブロックにおける乱数更新処理が開始される。従って、上記手順から、本実施例では、乱数値の取得後に乱数値を更新させるための更新指令が発生されることとなる。
〔特図保留情報判定処理〕
次に、上述の始動口スイッチ共通処理における特図保留情報判定処理(ステップA281)の詳細について説明する。
特図保留情報判定処理は、対応する始動記憶に基づく特図変動表示ゲームの開始タイミングより前に当該始動記憶に対応した結果関連情報の判定を行う先読み処理である。
図27に示すように、CPU111Aは、先ず、特図始動口スイッチ共通処理のステップA202に係る始動口スイッチの入力が始動口2スイッチ37aの入力であるか否かをチェックして(ステップA231)、始動口2スイッチ37aの入力でない(ステップA232;No)と判定すると、普通変動入賞装置37の開放延長機能が作動中、即ち、普通変動入賞装置37がサポート中(時短動作状態中)であるか否かを判定する処理(ステップA233)を行う。
ここで、普通変動入賞装置37がサポート中でない(ステップA233;No)と判定すると、遊技機10が大当り(特別遊技状態)中であるか否かを判定する処理(ステップA234)を行う。
ステップA234にて、大当り中でない(ステップA234;No)と判定すると、取得した大当り乱数値が大当り判定値と一致するか否かに応じて大当りであるか否かを判定する大当り判定処理(ステップA235)を行う。なお、ステップA235における大当り判定処理は、特図普段処理における大当り判定処理(図32参照)と同様であり、その詳細については後述する。
一方、ステップA233にて、普通変動入賞装置37がサポート中であると判定されるか(ステップA233;Yes)、或いは、ステップA234にて、大当り中であると判定された場合にも(ステップA234;Yes)、特図保留情報判定処理を終了する。
つまり、特図始動口スイッチ共通処理のステップA202に係る始動口スイッチの入力が始動口1スイッチ36aの場合は、普通変動入賞装置37がサポート中、又は大当り中であるときは、当該始動記憶に対応した結果関連情報の判定を行う先読み処理を行わないこととなる。
また、ステップA232にて、始動口2スイッチ37aの入力であると判定された場合(ステップA232;Yes)は、ステップA233、ステップA234の処理を行わずに、ステップA235に処理を移行して、それ以降の処理を行う。
つまり、特図始動口スイッチ共通処理のステップA202に係る始動口スイッチの入力が始動口2スイッチ37aの場合は、普通変動入賞装置37がサポート中、又は大当り中であるかにかかわらず、当該始動記憶に対応した結果関連情報の判定を行う先読み処理を行うこととなる。
そして、はずれ情報テーブルを設定する処理(ステップA236)を行った後、ステップA235における大当り判定処理の判定結果が大当りでない(ステップA237;No)と判定すると、処理をステップA245に移行する。
一方、ステップA235における大当り判定処理の判定結果が大当りである(ステップA237;Yes)と判定すると、大当り図柄乱数チェックテーブル1を準備する(ステップA238)。
次に、特図始動口スイッチ共通処理のステップA202に係る始動口スイッチの入力が始動口1スイッチ36aの入力であるか否かをチェックして(ステップA239)、始動口1スイッチ36aの入力でない(ステップA240;No)と判定すると、ステップA238で準備した大当り図柄乱数チェックテーブル1に置き換えて、大当り図柄乱数チェックテーブル2を準備する(ステップA241)。
そして、大当り図柄乱数に対応する入賞情報ポインタを取得する処理(ステップA242)を行った後、大当り情報テーブルのアドレステーブルを設定する処理(ステップA243)を行って、入賞情報ポインタに対応する大当り情報テーブルを取得する処理(ステップA244)を行う。
また、ステップA240にて、始動口1スイッチ36aの入力であると判定された場合(ステップA240;Yes)は、処理をステップA242に移行して、ステップA238で準備した大当り図柄乱数チェックテーブル1に基づいてそれ以降の処理を行う。
次に、大当り情報テーブルから始動口入賞演出情報を取得する処理(ステップA245)を行って、当該始動口入賞演出情報をRWMの作業用の図柄情報領域にセーブする(ステップA246)。
続けて、大当り情報テーブルから始動口入賞演出図柄コマンドを取得する処理(ステップA247)を行って、当該始動口入賞演出図柄コマンドをRWMの入賞演出図柄コマンド領域にセーブする(ステップA248)。
次に、始動口1スイッチ36a及び始動口2スイッチ37aのうち、監視対象の始動口スイッチの始動口入賞フラグを準備した後(ステップA249)、当該監視対象の始動口に関して設定された特図情報を設定する特図情報設定処理(ステップA250)を行う。続けて、特図変動表示ゲームにおける変動態様のうち、後半変動パターンを設定する後半変動パターン設定処理(ステップA251)を行った後、特図変動表示ゲームの変動態様を設定する変動パターン設定処理(ステップA252)を行う。
なお、ステップA250における特図情報設定処理、ステップA251における後半変動パターン設定処理、ステップA252における変動パターン設定処理の各々は、特図普段処理における特図情報設定処理(図35参照)、後半変動パターン設定処理(図36参照)、変動パターン設定処理(図37参照)と同様であり、その詳細については後述する。
そして、変動パターンに対応する始動口入賞演出コマンドを準備し(ステップA253)、コマンド設定処理(ステップA254)を行う。続けて、入賞演出図柄コマンド領域から始動口入賞演出図柄コマンドをロードして準備し(ステップA255)、コマンド設定処理(ステップA256)を行って、特図保留情報判定処理を終了する。
すなわち、ステップA253にて始動口入賞演出コマンドが準備され、ステップA255にて始動口入賞演出図柄コマンドが準備されることで、始動記憶に対応した結果関連情報の判定結果(先読み結果)を、対応する始動記憶に基づく特図変動表示ゲームの開始タイミングより前に演出制御装置300に対して知らせることができ、特に表示装置41に表示される特図保留数を変化させるなどして、その特図変動表示ゲームの開始タイミングより前に遊技者に結果関連情報を報知することが可能となる。
また、CPU111Aは、前述したように変動パターン乱数1,2,3に基づいて変動パターン(演出態様)を決定し、決定した変動パターンに対応するコマンド(演出制御指令)上記コマンド設定処理でRAM内のコマンド送信領域に設定することにより、前述の演出制御コマンド送信処理(図14)で演出制御装置300へ送信する。従って、CPU111Aは、乱数値に基づいて予め用意されている複数の演出態様の中から前記変動表示ゲームの演出に使用する演出態様を選択し、選択した演出態様に対応する演出制御指令を決定する演出制御指令決定手段として機能する。
〔カウントスイッチ監視処理〕
次に、上述の特図ゲーム処理におけるカウントスイッチ監視処理の詳細について説明する。
図28に示すように、カウントスイッチ監視処理では、先ず、特別変動入賞装置38の大入賞口が開放中であるか否かをチェックして(ステップA261)、大入賞口が開放中である(ステップA262;Yes)と判定すると、カウントスイッチ38aの入力があるか否かをチェックして(ステップA263)、カウントスイッチ38aの入力がある(ステップA264;Yes)と判定すると、大入賞口カウンタの数値を更新(+1)する処理(ステップA265)を行う。
続けて、大入賞口カウンタのカウント数が上限値に達したか否かをチェックして(ステップA266)、大入賞口カウント数が上限値に達した(ステップA267;Yes)と判定すると、特図ゲーム処理タイマを0クリアする処理(ステップA268)を行って、カウントスイッチ監視処理を終了する。
また、ステップA262にて、大入賞口が開放中でないと判定されるか(ステップA262;No)、或いは、ステップA264にて、カウントスイッチ38aの入力がないと判定されるか(ステップA264;No)、或いは、ステップA267にて、大入賞口カウント数が上限値に達していないと判定された場合には(ステップA267;No)、カウントスイッチ監視処理を終了する。
〔特図普段処理〕
次に、上述の特図ゲーム処理における特図普段処理(ステップA9)の詳細について説明する。
図29に示すように、特図普段処理では、先ず、第2特図保留数(第2始動記憶数)が0であるか否かをチェックする(ステップA301)。
そして、第2特図保留数が0である(ステップA302;Yes)と判定すると、第1始動記憶数(第1特図保留数)が0であるか否かをチェックする(ステップA303)。
そして、第1特図保留数が0である(ステップA304;Yes)と判定すると、既に客待ちデモが開始されているか否かをチェックして(ステップA305)、客待ちデモを開始していない、即ち、開始済みでない(ステップA306;No)と判定すると、客待ちデモフラグを客待ちデモ中に設定する処理(ステップA307)を行う。
続けて、客待ちデモコマンドを準備して(ステップA308)、コマンド設定処理(ステップA309)を行う。
一方、ステップA305にて、既に客待ちデモが開始されている(ステップA306;Yes)と判定すると、既に客待ちデモフラグは客待ちデモ中に設定(ステップA307)され、客待ちデモコマンドも準備(ステップA308)され、コマンド設定処理(ステップA309)も実行されているため、これらの処理を行わずにステップA310に移行する。
次に、特図普段処理に移行するためのテーブルを準備する処理(ステップA310)、具体的には、当該テーブルに、特図普段処理に係る処理番号「0」、大入賞口不正監視期間を規定するフラグ(大入賞口不正監視情報)等を設定する処理を行って、特図普段処理を終了する。
一方、ステップA302にて、第2特図保留数が0でない(ステップA302;No)と判定すると、特図2変動開始処理(ステップA311)を行う。なお、ステップA311における特図2変動開始処理の詳細については後述する。
そして、特図変動中処理に移行するためのテーブル(第2特図用)を準備する処理(ステップA312)、具体的には、当該テーブルに、特図変動中処理に係る処理番号「1」、客待ちデモの終了に係る情報、第2特図の変動中に係る試験信号、特図2表示器52における第2特図変動表示ゲームの制御用の情報(例えば、特図2表示器52の変動中に係るフラグ、特図2表示器52の点滅の周期のタイマの初期値など)等を設定する処理を行って、特図普段処理を終了する。
また、ステップA304にて、第1特図保留数が0でない(ステップA304;No)と判定すると、特図1変動開始処理(ステップA313)を行う。なお、ステップA313における特図1変動開始処理の詳細については後述する。
そして、特図変動中処理に移行するためのテーブル(第1特図用)を準備する処理(ステップA314)、具体的には、当該テーブルに、特図変動中処理に係る処理番号「1」、客待ちデモの終了に係る情報、第1特図の変動中に係る試験信号、特図1表示器51における第1特図変動表示ゲームの制御用の情報(例えば、特図1表示器51の変動中に係るフラグ、特図1表示器51の点滅の周期のタイマの初期値など)等を設定する処理を行って、特図普段処理を終了する。
このように、ステップA301とステップA302における第2特図保留数のチェックを、ステップA303とステップA304における第1特図保留数のチェックよりも先に行うことで、第2特図保留数が0でない場合には、特図2変動開始処理(ステップA311)が実行されることとなる。
すなわち、第2特図変動表示ゲームが第1特図変動表示ゲームに優先して実行されることとなる。
〔特図1変動開始処理〕
次に、上述の特図普段処理における特図1変動開始処理(ステップA313)の詳細について説明する。
特図1変動開始処理は、第1特図変動表示ゲームの開始時に行う処理であり、具体的には、図30に示すように、先ず、第1特図変動表示ゲームが大当りであるか否かを判定するための大当りフラグ1にはずれ情報や大当り情報を設定する大当りフラグ1設定処理(ステップA321)を行う。なお、ステップA321における大当りフラグ1設定処理の詳細については後述する。
次に、第1特図停止図柄(特図1停止図柄)の設定に係る特図1停止図柄設定処理(ステップA322)を行った後、第1特図停止図柄番号(特図1停止図柄)に対応する試験信号をセーブする(ステップA323)。なお、ステップA322における特図1停止図柄設定処理の詳細については後述する。
続けて、特図1停止図柄設定処理にて設定された停止図柄パターン情報をロードした後(ステップA324)、当該停止図柄パターン情報をRWMの作業用の図柄情報領域にセーブする(ステップA325)。
次に、特図1変動フラグをロードして準備し(ステップA326)、特図1変動フラグをRWMの特図変動フラグ領域にセーブする(ステップA327)。
続けて、特図後半変動の設定に係るテーブルを準備して(ステップA328)、特図情報を設定する特図情報設定処理(ステップA329)を行う。続けて、第1特図変動表示ゲームにおける変動態様のうち、後半変動パターンを設定する後半変動パターン設定処理(ステップA330)を行った後、第1特図変動表示ゲームの変動態様を設定する変動パターン設定処理(ステップA331)を行う。その後、第1特図の変動開始の情報を設定する変動開始情報設定処理(ステップA332)を行って、特図1変動開始処理を終了する。
なお、ステップA329における特図情報設定処理、ステップA330における後半変動パターン設定処理、ステップA331における変動パターン設定処理、ステップA332における特図1変動開始処理の詳細については後述する。
〔特図2変動開始処理〕
次に、上述の特図普段処理における特図2変動開始処理(ステップA311)の詳細について説明する。
特図2変動開始処理は、第2特図変動表示ゲームの開始時に行う処理であり、具体的には、図31に示すように、先ず、第2特図変動表示ゲームが大当りであるか否かを判定するための大当りフラグ2にはずれ情報や大当り情報を設定する大当りフラグ2設定処理(ステップA341)を行う。
次に、第2特図停止図柄の設定に係る特図2停止図柄設定処理(ステップA342)を行った後、特図2停止図柄番号に対応する試験信号をセーブする(ステップA343)。
続けて、特図2停止図柄設定処理にて設定された停止図柄パターン情報をロードした後(ステップA344)、当該停止図柄パターン情報をRWMの作業用の図柄情報領域にセーブする(ステップA345)。
次に、特図2変動フラグをロードして準備し(ステップA346)、特図2変動フラグをRWMの特図変動フラグ領域にセーブする(ステップA347)。
続けて、特図後半変動の設定に係るテーブルを準備して(ステップA348)、特図情報を設定する特図情報設定処理(ステップA349)を行う。続けて、第2特図変動表示ゲームにおける変動態様のうち、後半変動パターンを設定する後半変動パターン設定処理(ステップA350)を行った後、第2特図変動表示ゲームの変動態様を設定する変動パターン設定処理(ステップA351)を行う。その後、第2特図の変動開始の情報を設定する変動開始情報設定処理(ステップA352)を行って、特図2変動開始処理を終了する。
以下に、図30に示す特図1変動開始処理における、大当りフラグ1設定処理(ステップA321)、特図1停止図柄設定処理(ステップA322)、特図情報設定処理(ステップA329)、後半変動パターン設定処理(ステップA330)、変動パターン設定処理(ステップA331)、変動開始情報設定処理(ステップA332)の各々について説明する。
なお、図31に示す特図2変動開始処理における、大当りフラグ2設定処理(ステップA341)、特図2停止図柄設定処理(ステップA342)、特図情報設定処理(ステップA349)、後半変動パターン設定処理(ステップA350)、変動パターン設定処理(ステップA351)、変動開始情報設定処理(ステップA352)の各々は、特図1変動開始処理における、大当りフラグ1設定処理(ステップA321)、特図1停止図柄設定処理(ステップA322)、特図情報設定処理(ステップA329)、後半変動パターン設定処理(ステップA330)、変動パターン設定処理(ステップA331)、変動開始情報設定処理(ステップA332)の各々と略同様であり、その詳細な説明は省略する。
〔大当りフラグ1設定処理〕
次に、上述の特図1変動開始処理における大当りフラグ1設定処理(ステップA321)の詳細について説明する。
図32(A)に示すように、大当りフラグ1設定処理では、先ず、大当りフラグ1にはずれ情報をセーブした後(ステップA361)、RWMの乱数セーブ領域から大当り乱数をロードして準備し(ステップA362)、取得した大当り乱数値が大当り判定値と一致するか否かに応じて大当りであるか否かを判定する大当り判定処理(ステップA363)を行う。
なお、ステップA363における大当り判定処理の詳細については後述する。
そして、ステップA363における大当り判定処理の判定結果が大当りである(ステップA364;Yes)と判定すると、ステップA361にてはずれ情報をセーブした大当りフラグ1に大当り情報を上書きしてセーブした後(ステップA365)、RWMの乱数セーブ領域を0クリアして(ステップA366)、大当りフラグ1設定処理を終了する。
一方、ステップA363における大当り判定処理の判定結果が大当りでない(ステップA364;No)と判定すると、大当りフラグ1にはずれ情報がセーブされた状態で、処理をステップA366に移行して、それ以降の処理を行う。
〔大当り判定処理〕
次に、上述の大当りフラグ1設定処理における大当り判定処理(ステップA363)の詳細について説明する。
図32(B)に示すように、大当り判定処理では、先ず、大当り判定用の下限判定値を設定する処理(ステップA371)を行う。その後、大当り乱数の値が下限判定値未満であるか否かをチェック、つまり、図32(A)のステップA362で読み込んだ大当り乱数の値が、当該大当り乱数の当り判定値の下限値未満であるかをチェックして(ステップA372)、大当り乱数の値が下限判定値未満でない(ステップA373;No)と判定すると、特図変動表示ゲームにて当り結果となる確率が低確率状態である場合の上限判定値を設定する処理(ステップA374)を行う。
次に、特図変動表示ゲームにて当り結果となる確率が高確率状態(確率変動状態)となっているか否かを判定する処理(ステップA375)を行う。ここで、高確率状態となっている(ステップA375;Yes)と判定すると、特図変動表示ゲームにて当り結果となる確率が高確率状態である場合の上限判定値を設定する処理(ステップA376)を行った後、大当り乱数の値が上限判定値を超えたか否かをチェック、つまり、図32(A)のステップA362で読み込んだ大当り乱数の値が、当該大当り乱数の当り判定値の上限値よりも大きいかをチェックして(ステップA377)、大当り判定処理を終了する。
一方、ステップA375にて、高確率状態となっていない(ステップA375;No)と判定すると、ステップA376をスキップして、大当り乱数の値がステップA374にて設定された上限判定値より大きいか否かをチェックして(ステップA377)、大当り判定処理を終了する。
また、ステップA373にて、大当り乱数の値が下限判定値未満である(ステップA373;Yes)と判定すると、大当り乱数の値が上限判定値より大きいか否かの判定に係るステップA374〜A377の処理を行わずに、大当り判定処理を終了する。
〔特図1停止図柄設定処理〕
次に、上述の特図1変動開始処理における特図1停止図柄設定処理(ステップA322)の詳細について説明する。
特図1停止図柄設定処理は、第1特図変動表示ゲームにおける停止図柄を設定する処理であり、図33に示すように、先ず、第1特図停止図柄にはずれ時の停止図柄番号をセーブした後(ステップA381)、停止図柄パターン情報にはずれ時の停止図柄パターン番号をセーブする(ステップA382)。
次に、大当りフラグ1が大当りであるか否か、即ち、大当り情報がセーブされているか否かをチェックして(ステップA383)、大当りである(ステップA384;Yes)と判定すると、第1特図の大当り図柄テーブルを設定する処理(ステップA385)を行う。
続けて、RWMの乱数セーブ領域から大当り図柄乱数をロードして(ステップA386)、当該大当り図柄乱数に対応する停止図柄番号を取得する処理(ステップA387)を行い、第1特図停止図柄に大当り時の停止図柄番号をセーブする(ステップA388)。
次に、第1特図停止図柄(大当り図柄)に対応する停止図柄情報を設定する停止図柄情報設定処理(ステップA389)を行う。なお、ステップA389における停止図柄情報設定処理の詳細については後述する。
次に、飾り特図コマンドテーブルを設定する処理(ステップA390)を行う。また、ステップA384にて、大当りフラグ1が大当りでないと判定された場合(ステップA384;No)には、ステップA385〜ステップA389の処理を行わない、つまり、特図1停止図柄にはステップA381にてセーブしたはずれ時の停止図柄番号が、停止図柄パターン情報にはステップA382にてセーブしたはずれ時の停止図柄パターン番号がセーブされた状態で、処理をステップA390に移行して、それ以降の処理を行う。
続けて、停止図柄パターン情報に対応する飾り特図1コマンド(ACTION)を取得する処理(ステップA391)を行った後、飾り特図1コマンド(MODE)を取得する処理(ステップA392)を行って、これらのコマンドをRWMの飾り特図コマンド領域にセーブする(ステップA393)。
そして、RWMの乱数セーブ領域を0クリアして(ステップA394)、特図1停止図柄設定処理を終了する。
〔停止図柄情報設定処理〕
次に、上述の特図1停止図柄設定処理における停止図柄情報設定処理(ステップA389)の詳細について説明する。
図34に示すように、停止図柄情報設定処理では、先ず、特図変動表示ゲームにて当り結果となる確率が低確率状態である場合の大当り停止図柄情報テーブルを設定する処理(ステップA401)を行う。
次に、普通変動入賞装置37の開放延長機能が作動中、即ち、普通変動入賞装置37がサポート中であるか否かを判定する処理(ステップA402)を行う。
ここで、普通変動入賞装置37がサポート中である(ステップA402;Yes)と判定すると、特図変動表示ゲームにて当り結果となる確率が高確率状態(確率変動状態)や、普通変動入賞装置37の動作状態が時短動作状態である場合の大当り停止図柄情報テーブルを設定する処理(ステップA403)を行う。
なお、ステップA402にて、普通変動入賞装置37がサポート中でない(ステップA402;No)と判定すると、ステップA403における大当り停止図柄情報テーブルの設定処理を行わずに、処理をステップA404に移行させる。
続けて、ステップA401、或いはステップA403にて設定された大当り停止図柄情報テーブルを用いて、ステップA404以降の処理を行う。
即ち、停止図柄番号に対応する停止図柄パターン番号を取得する処理(ステップA404)を行った後、当該停止図柄パターン番号をRWMの停止図柄情報領域にセーブする(ステップA405)。
続けて、停止図柄番号に対応する確率変動判定フラグを取得する処理(ステップA406)を行った後、当該確率変動判定フラグをRWMの確率変動判定フラグ領域にセーブする(ステップA407)。
次に、停止図柄番号に対応するラウンド数上限値データを取得する処理(ステップA408)を行った後、当該ラウンド数上限値データをRWMのラウンド数上限値判定フラグ領域にセーブする(ステップA409)。
続けて、停止図柄番号に対応する大入賞口開放データを取得する処理(ステップA410)を行った後、当該大入賞口開放データをRWMの大入賞口開放データ判定フラグ領域にセーブする(ステップA411)。
次に、停止図柄番号に対応する変動振り分けデータを取得する処理(ステップA412)を行った後、当該変動振り分けデータをRWMの変動振り分け判定フラグ領域にセーブして(ステップA413)、停止図柄情報設定処理を終了する。
〔特図情報設定処理〕
次に、上述の特図1変動開始処理における特図情報設定処理(ステップA349)の詳細について説明する。
図35に示すように、特図情報設定処理では、先ず、第1特図及び第2特図のうち、設定対象の特図(例えば、第1特図等)を示すフラグを特図フラグにセーブする(ステップA421)。次に、第1特図及び第2特図のうち、対象の特図の保留数を保留数ポインタとしてロードする(ステップA422)。次に、変動振り分けポインタとして基本値0を設定する処理(ステップA423)を行った後、遊技モードポインタとして特図変動表示ゲームにて当り結果となる確率が低確率状態の値を設定する処理(ステップA424)を行う。
次に、普通変動入賞装置37の開放延長機能が作動中、即ち、普通変動入賞装置37がサポート中であるか否かを判定する処理(ステップA425)を行う。
ここで、普通変動入賞装置37がサポート中である(ステップA425;Yes)と判定すると、変動振り分けポインタとして変動パターンテーブルをロードした後(ステップA426)、保留数ポインタとして基本値0を設定する処理(ステップA427)を行い、続けて、遊技モードポインタとして普通変動入賞装置37の動作状態が時短動作状態の値を設定する処理(ステップA428)を行う。
次に、特図変動表示ゲームにて当り結果となる確率が高確率状態(確率変動状態)となっているか否かを判定する処理(ステップA429)を行う。
ステップA429にて、特図変動表示ゲームにて当り結果となる確率が高確率状態となっている(ステップA429;Yes)と判定すると、特図変動表示ゲームが高確率状態の場合に選択される値を、遊技モードポインタとして設定する処理(ステップA430)を行う。
ここで、遊技モードには複数の遊技モードが設定されており、特図変動表示ゲームにおける当りを判定するための確率が高確率状態である場合に、高確率モードAと高確率モードBを有するように構成され、高確率モードAと高確率モードBとでは、特図変動表示ゲームにおける当り判定の確率は共通であるが、各々のモードにおける特図変動表示ゲームの変動パターン(演出パターン)が異なるように設定されている。
そして、ステップA430では、遊技モードポインタとして、高確率モードAに対応するものが設定され、遊技モードポインタに補正が必要かどうか変動パターンテーブルをチェックする処理(ステップA431)が行われる。つまり、現在の遊技モードが高確率モードAであるのか、高確率モードBであるのかをチェックすることとなる。
続けて、ステップA431におけるチェック処理に基づき、補正が必要である(ステップA432;Yes)と判定すると、遊技モードポインタを補正する処理(ステップA433)を行う。つまり、ステップ431におけるチェック処理により、現在の遊技モードが高確率モードBであると判定された場合は、遊技モードポインタとして高確率モードBに対応するものを設定(補正)することとなる。
続けて、第1特図及び第2特図のうち、設定対象の特図(例えば、第1特図等)の保留数が2未満か否かをチェックする(ステップA434)。
また、ステップA429にて、特図変動表示ゲームにて当り結果となる確率が高確率状態となっていないと判定されるか(ステップA429;No)、或いは、ステップA432にて、遊技モードポインタに補正が必要でないと判定された場合にも(ステップA432;No)、処理をステップA434に移行して、それ以降の処理を行う。
そして、保留数が2未満でない(ステップA435;No)と判定すると、保留数ポインタとして1を設定する処理(ステップA436)を行う。
次に、保留・遊技モードポインタとしての保留数ポインタと遊技モードポインタを加算する処理(ステップA437)を行って、当該保留・遊技モードポインタをRWMの対象となる前半変動情報1領域にセーブする(ステップA438)。
また、ステップA425にて、普通変動入賞装置37がサポート中でないと判定されるか(ステップA425;Yes)、或いは、ステップA435にて、保留数が2未満であると判定された場合には(ステップA435;Yes)、処理をステップA437に移行して、それ以降の処理を行う。
続けて、変動振り分けポインタをRWMの対象となる前半変動情報2領域にセーブした後(ステップA439)、停止図柄パターン情報をロードして(ステップA440)、当該停止図柄パターン情報に対応する変動選択グループ情報を設定する処理(ステップA441)を行う。
次に、特図フラグにセーブされているフラグをチェックして(ステップA442)、第1特図及び第2特図のうち、第1特図を示すフラグがセーブされていない、即ち、第2特図を示すフラグがセーブされている(ステップA443;No)と判定すると、変動選択グループ情報を補正する処理(ステップA444)を行う。
ここで、ステップA441にて設定される停止図柄パターン情報に対応する変動選択グループ情報は、第1特図変動表示ゲームに対応するものであるため、ステップA442のチェック処理により第2特図を示すフラグがセーブされていると判定された場合は、停止図柄パターン情報に対応する変動選択グループ情報として、第2特図変動表示ゲームに対応するものに設定する。
すなわち、ステップA441にて設定された停止図柄パターン情報に対応する変動選択グループ情報を、第2特図変動表示ゲームに対応するものに補正することとなる。
一方、第1特図を示すフラグがセーブされている(ステップA443;Yes)と判定すると、ステップA444の処理を行わずにステップA445へ移行する。
すなわち、ステップA441にて設定された停止図柄パターン情報に対応する変動選択グループ情報に基づいて以降の処理を実行することとなる。
続けて、保留数ポインタを変動選択グループ情報1にセーブした後(ステップA445)、変動選択グループ情報を変動選択グループ情報2にセーブする(ステップA446)。
次に、停止図柄パターンに対応する変動選択テーブルのアドレスを設定する処理(ステップA447)を行って、当該アドレスをRWMの対象となる変動テーブルセーブ領域にセーブする(ステップA448)。
続けて、変動選択グループ情報と変動振り分けポインタから特図情報を算出する処理(ステップA449)を行って、特図情報設定処理を終了する。
〔後半変動パターン設定処理〕
次に、上述の特図1変動開始処理における後半変動パターン設定処理(ステップA350)の詳細について説明する。
図36に示すように、後半変動パターン設定処理では、先ず、第1特図及び第2特図のうち、特図情報設定処理にて設定された特図情報(例えば、第1特図等)に対応する変動グループ選択テーブルのアドレスを算出する処理(ステップA451)を行う。
次に、特図1停止図柄設定処理にて設定された停止図柄パターンがはずれ図柄パターンであるか否かをチェックして(ステップA452)、停止図柄パターンがはずれ図柄パターンである(ステップA453;Yes)と判定すると、設定対象の変動選択グループ情報1から保留数ポインタをロードした後(ステップA454)、当該保留数ポインタに対応する変動グループ選択テーブルのアドレスを算出する処理(ステップA455)を行う。
続けて、特図変動表示ゲームの後半変動パターングループを選択するための判定用乱数として、2バイト(複数バイト)で構成された変動パターン乱数1を対象の領域からロードして準備した後(ステップA456)、ステップA455にてアドレスが算出された変動グループ選択テーブルを準備して(ステップA457)、後半変動選択テーブルの特定に係る2バイト振り分け処理(ステップA458)を行う。
また、ステップA453にて、停止図柄パターンがはずれ図柄パターンでない(ステップA453;No)と判定されると、処理をステップA456に移行して、変動パターン乱数1を対象の領域からロードして準備した後(ステップA456)、ステップA451にてアドレスが算出された変動グループ選択テーブルを準備して(ステップA456)、後半変動選択テーブルの特定に係る2バイト振り分け処理(ステップA458)を行う。
次に、2バイト振り分け処理を行うことにより得られた後半変動選択テーブルのアドレスを取得して準備した後(ステップA459)、特図変動表示ゲームの後半変動パターンを選択するための判定用乱数として、変動パターン乱数2を対象の領域からロードして準備し(ステップA460)、後半変動番号の特定に係る振り分け処理(ステップA461)を行う。
そして、振り分け処理を行うことにより得られた後半変動番号を取得する処理(ステップA462)を行って、当該後半変動番号をRWMの対象となる後半変動番号領域にセーブして(ステップA463)、後半変動パターン設定処理を終了する。
〔変動パターン設定処理〕
次に、上述の特図1変動開始処理における変動パターン設定処理(ステップA351)の詳細について説明する。
図37に示すように、変動パターン設定処理では、先ず、変動選択グループ情報2をロードして(ステップA471)、当該変動選択グループ情報2に対応する前半変動選択アドレステーブル(1st)を設定する処理(ステップA472)を行う。
次に、後半変動番号を対象の後半変動番号領域からロードして(ステップA473)、前半変動選択アドレステーブル(1st)の後半変動番号に対応するアドレスを算出する処理(ステップA474)を行う。続けて、算出されたアドレスから前半変動選択アドレステーブル(2nd)のアドレスを取得する処理(ステップA475)を行った後、対象の前半変動情報1をテーブルポインタとしてロードする(ステップA476)。
次に、後半変動番号が1であるか否かをチェックして(ステップA477)、後半変動番号が1でない(ステップA478;No)と判定すると、対象の前半変動情報2をテーブルポインタとしてロードする(ステップA479)。
続けて、テーブルポインタに対応する前半変動選択アドレステーブル(2nd)のアドレスを算出する処理(ステップA480)を行う。
また、ステップA478にて、後半変動番号が1である(ステップA478;Yes)と判定すると、処理をステップA480に移行して、それ以降の処理を行う。
次に、ステップA480にて算出されたアドレスから前半変動選択テーブルのアドレスを取得して準備した後(ステップA481)、特図変動表示ゲームの前半変動パターンを選択するための判定用乱数として、変動パターン乱数3を対象の領域からロードして準備し(ステップA482)、前半変動番号を特定する振り分け処理(ステップA483)を行う。
そして、振り分け処理の結果得られた前半変動番号を取得する処理(ステップA484)を行って、変動パターン設定処理を終了する。
〔変動開始情報設定処理〕
次に、上述の特図1変動開始処理における変動開始情報設定処理(ステップA352)の詳細について説明する。
図38に示すように、変動開始情報設定処理では、先ず、対象となる変動パターン乱数のRWMのセーブ領域をクリアした後(ステップA491)、変動パターン設定処理にて取得された前半変動番号に対応する前半変動時間値テーブルの値を取得する処理(ステップA492)を行い、続けて、後半変動パターン設定処理にて取得された後半変動番号に対応する後半変動時間値テーブルの値を取得する処理(ステップA493)を行う。
次に、取得された前半変動時間値と後半変動時間値とを加算する処理(ステップA494)を行った後、加算値を特図ゲーム処理タイマにセーブする(ステップA495)。
続けて、前半変動番号に対応する変動コマンド(MODE)を算出して準備した後(ステップA496)、後半変動番号の値を変動コマンド(ACTION)として準備して(ステップA497)、コマンド設定処理(ステップA498)を行う。
次に、RWMの飾り特図コマンド領域から、飾り特図変動表示ゲームに係る停止図柄パターン情報に対応する飾り特図コマンドをロードして準備し(ステップA499)、コマンド設定処理(ステップA500)を行う。
続けて、表示装置41に表示される特図保留数に係る飾り特図1保留数コマンド(MODE)を準備して(ステップA501)、RWMの第1特図の乱数セーブ領域のアドレスを準備する(ステップA502)。
次に、特図変動フラグ領域にセーブされている特図変動フラグが特図1変動フラグであるか特図2変動フラグであるかをチェックして(ステップA503)、特図1変動フラグでない、即ち、特図2変動フラグである(ステップA504;No)と判定すると、表示装置41に表示される特図保留数に係る飾り特図2保留数コマンド(MODE)を準備して(ステップA505)、RWMの第2特図の乱数セーブ領域のアドレスを準備する(ステップA506)。
続けて、第1特図及び第2特図のうち、変動対象の特図保留数を更新(−1)する処理(ステップA507)を行う。
また、ステップA504にて、特図1変動フラグであると判定された場合にも(ステップA504;Yes)、処理をステップA507に移行して、それ以降の処理を行う。
次に、第1特図及び第2特図のうち、変動対象の飾り特図保留数コマンド(ACTION)を準備して(ステップA508)、コマンド設定処理(ステップA509)を行う。
そして、第1特図及び第2特図のうち、変動対象の特図の乱数セーブ領域をシフトし(ステップA510)、シフト後の空き領域をクリアする処理(ステップA511)を行って、変動開始情報設定処理を終了する。
〔特図変動中処理〕
次に、上述の特図ゲーム処理における特図変動中処理(ステップA10)の詳細について説明する。
図39に示すように、特図変動中処理では、先ず、特図変動表示ゲームにて特別結果態様が導出されて大当りとなる場合の特図停止時間ポインタを設定する処理(ステップA521)を行う。
次に、特図1停止図柄設定処理にて設定された停止図柄パターン情報をチェックして(ステップA522)、停止図柄パターンが大当り図柄である(ステップA523;Yes)と判定すると、ステップA521にて設定した大当りとなる場合の特図停止時間ポインタが設定された状態でステップA528に移行する。
一方、ステップA523にて、停止図柄パターンが大当り図柄でない、即ち、はずれ図柄である(ステップA523;No)と判定すると、特図変動表示ゲームにて特別結果態様が導出されず、はずれとなる場合の特図停止時間ポインタを設定する処理(ステップA524)を行う。
続けて、後半変動パターン設定処理にて設定された後半変動番号がリーチなしの番号であるか否かをチェックして(ステップA525)、後半変動番号がリーチなしの番号でない、即ち、リーチありの番号である(ステップA526;No)と判定すると、特図変動表示ゲームにて特別結果態様が導出されず、はずれとなる場合であってリーチ状態が発生する場合の特図停止時間ポインタを設定する処理(ステップA527)を行う。
また、ステップA526にて、後半変動番号がリーチなしの番号であると判定された場合(ステップA526;Yes)には、ステップA527の処理を行わずにステップA528に移行する。したがって、特図変動表示ゲームにて特別結果態様が導出されず、はずれとなる場合であってリーチ状態が発生しない場合の特図停止時間ポインタが設定されることとなる。
次に、特図停止時間テーブルを設定する処理(ステップA528)を行う。
そして、ステップA521、A524、A527の何れかにて設定された特図停止時間ポインタに対応する停止時間、即ち、ステップA521にて設定された大当り時の特図停止時間ポインタ、ステップA527にて設定されたリーチはずれ時の特図停止時間ポインタ、或いは、ステップA524にて設定されたはずれ時(リーチ発生無しのはずれ時)の特図停止時間ポインタの何れかに対応する停止時間を取得する処理(ステップA529)を行った後、取得された停止時間を特図ゲーム処理タイマにセーブする(ステップA530)。
そして、特図表示中処理に移行するためのテーブルを準備する処理(ステップA531)、具体的には、当該テーブルに、特図表示中処理に係る処理番号「2」、第1特図や第2特図の変動停止に係る試験信号、外部情報端子に出力用の特図変動表示ゲームの実行回数に係る図柄確定回数信号、特図1表示器51や特図2表示器52における第1特図変動表示ゲームや第2特図変動表示ゲームの制御用の情報(例えば、特図1表示器51や特図2表示器52の変動停止に係るフラグ等)等を設定する処理を行って、特図変動中処理を終了する。
〔特図表示中処理〕
次に、上述の特図ゲーム処理における特図表示中処理(ステップA11)の詳細について説明する。
図40に示すように、特図表示中処理では、先ず、特図2変動開始処理における大当りフラグ2設定処理にて設定された大当りフラグ2をロードして(ステップA541)、RWMの大当りフラグ2領域をクリアする処理(ステップA542)を行う。
次に、ロードされた大当りフラグ2をチェックして(ステップA543)、大当りである(ステップA544;Yes)と判定すると、RWMの大当りフラグ1領域をクリアする処理(ステップA550)を行い、第2特図変動表示ゲームの大当り(特図2大当り)に関する試験信号をRWMにセーブし(ステップA551)、ステップA552に処理を移行する。
一方、ステップA544にて、大当りフラグ2のチェックの結果、大当りでない(ステップA544;No)と判定すると、特図1変動開始処理における大当りフラグ1設定処理にて設定された大当りフラグ1をロードして(ステップA545)、RWMの大当りフラグ1領域をクリアする処理(ステップA546)を行う。
続けて、ロードされた大当りフラグ1をチェックして(ステップA547)、大当りである(ステップA548;Yes)と判定すると、第1特図変動表示ゲームの大当り(特図1大当り)に関する試験信号をRWMにセーブし(ステップA549)、ステップA552に処理を移行する。
そして、上述したステップA549における特図1大当りに関する試験信号のセーブ、或いは、ステップA551における特図2大当りに関する試験信号のセーブの後、ラウンド数上限値テーブルを設定する処理(ステップA552)を行う。
次に、ラウンド数上限値判定フラグに対応するラウンド数上限値を取得した後(ステップA553)、当該ラウンド数上限値をRWMのラウンド数上限値領域にセーブする(ステップA554)。続けて、ラウンド数上限値判定フラグに対応するラウンドLEDポインタを取得した後(ステップA555)、当該ラウンドLEDポインタをRWMのラウンドLEDポインタ領域にセーブする(ステップA556)。
次に、普図変動表示ゲーム及び特図変動表示ゲームにて当り結果となる確率を通常確率状態(低確率状態)とする情報に係る確率情報コマンドを準備して(ステップA557)、コマンド設定処理(ステップA558)を行う。
続けて、停止図柄情報設定処理にて設定された停止図柄パターン番号をRWMの停止図柄情報領域からロードし(ステップA559)、当該停止図柄パターン番号に対応するファンファーレコマンドを準備して(ステップA560)、コマンド設定処理(ステップA561)を行う。
その後、飾り特図変動表示ゲームに係る停止図柄パターン情報に対応する飾り特図コマンドをRWMの飾り特図コマンド領域からロードして準備し(ステップA562)、コマンド設定処理(ステップA563)を行う。
次に、大入賞口開放情報判定フラグをロードして(ステップA564)、当該大入賞口開放情報判定フラグに対応する外部情報データをRWMにセーブする(ステップA565)。
続けて、普図変動表示ゲーム及び特図変動表示ゲームにて当り結果となる確率の状態に対応する外部情報データをRWMにセーブした後(ステップA566)、大入賞口開放情報判定フラグに対応するファンファーレ時間を設定して(ステップA567)、当該ファンファーレ時間を特図ゲーム処理タイマにセーブする(ステップA568)。
その後、大入賞口への不正入賞数をリセットした後(ステップA569)、大入賞口不正監視期間フラグに不正監視期間外フラグをセーブする(ステップA570)。
そして、ファンファーレ/インターバル中処理に移行するためのテーブルを準備する処理(ステップA571)、具体的には、当該テーブルに、ファンファーレ/インターバル中処理に係る処理番号「3」、各種状態の切り替えに係る情報を設定する処理等を行って、特図変動中処理を終了する。
ここで、各種状態が切り替わるための情報としては、例えば、外部情報端子に出力用の遊技状態が特別遊技状態(大当り状態)であることを示す信号、普図変動表示ゲーム及び特図変動表示ゲームにて当り結果となる確率が通常確率状態(低確率状態)であることを示す試験信号、大入賞口不正監視期間における大入賞口への入賞数のクリアに係る情報、特別遊技状態のラウンド数のクリアに係る情報、高確率状態の表示に係る遊技状態表示LED(エラー表示器58)を消灯させる情報、普図変動表示ゲームにて当り結果となる確率を通常確率状態(低確率状態)とする情報、停電復旧時に点灯した高確率状態の表示に係る遊技状態表示LED(エラー表示器58)を消灯させる情報、特図変動表示ゲームの制御用の情報(例えば、特図変動表示ゲームにて当り結果となる確率を通常確率状態(低確率状態)とする情報や、停電復旧時に演出制御装置300に出力される、普図変動表示ゲームや特図変動表示ゲームにて当り結果となる確率が通常確率状態(低確率状態)であることを示す情報や、大当り後の残り時間短縮変動回数のクリアに係る情報など)等が挙げられる。
一方、ステップA548にて、大当りフラグ1のチェックの結果、大当りでない(ステップA548;No)と判定すると、図41に示すように、遊技状態が、特図変動表示ゲームと普図変動表示ゲームを時短動作状態とし、普通変動入賞装置37の開放時間を延長する時短状態であるか否かを判定する処理(ステップA572)を行う。
ここで、遊技状態が時短状態でない(ステップA572;No)と判定すると、特図普段処理に移行するためのテーブルを準備する処理(ステップA573)、具体的には、当該テーブルに、特図普段処理に係る処理番号「0」等を設定する処理を行って、特図表示中処理を終了する。
一方、ステップA572にて、遊技状態が時短状態である(ステップA572;Yes)と判定すると、特図変動表示ゲームが時短動作状態で行われる回数(例えば、100回)に係る時間短縮変動回数を更新(−1)した後(ステップA574)、当該更新後の時間短縮変動回数が0であるか否かを判定する処理(ステップA575)を行う。
ここで、時間短縮変動回数が0でない(ステップA575;No)と判定すると、処理をステップA573に移行して、それ以降の処理を行う。
一方、ステップA575にて、時間短縮変動回数が0である(ステップA575;Yes)と判定すると、即ち、時短状態にて特図変動表示ゲームが時短動作状態での所定回数(例えば、100回)の実行が完了した場合には、特図変動表示ゲームと普図変動表示ゲームの時短動作状態と普通変動入賞装置37の開放時間を延長する状態(時短状態)を終了する場合の確率情報コマンドを準備して(ステップA576)、コマンド設定処理(ステップA577)を行う。
次に、特図普段処理に移行するためのテーブル(時短終了時用)を準備する処理(ステップA578)、具体的には、当該テーブルに、特図普段処理に係る処理番号「0」、特図変動表示ゲームと普図変動表示ゲームの時短動作状態と普通変動入賞装置37の開放時間を延長する状態(時短状態)の終了に係る情報等を設定する処理を行って、特図表示中処理を終了する。
〔ファンファーレ/インターバル中処理〕
次に、上述の特図ゲーム処理におけるファンファーレ/インターバル中処理(ステップA12)の詳細について説明する。
図42に示すように、ファンファーレ/インターバル中処理では、先ず、特別遊技状態のラウンド数を更新(+1)する処理(ステップA591)を行った後、特別遊技状態の各ラウンドにおける大入賞口の開放時間(特別変動入賞装置38の開閉扉38cの開放時間)として開放時間の短い短開放(例えば、1秒等)を設定する処理(ステップA592)を行う。
次に、大入賞口開放情報判定フラグをロードし(ステップA593)、当該大入賞口開放情報判定フラグが大入賞口の開放時間の長い長開放(例えば、25秒等)であるか否かをチェックして(ステップA594)、大入賞口の開放時間が長開放である(ステップA595;Yes)と判定すると、特別遊技状態のラウンド数に対応するラウンドコマンドを準備して(ステップA596)、コマンド設定処理(ステップA597)を行う。
次に、RWMの飾り特図コマンド領域から、飾り特図変動表示ゲームに係る停止図柄パターン情報に対応する飾り特図コマンドをロードして準備し(ステップA598)、コマンド設定処理(ステップA599)を行う。
そして、特別遊技状態の各ラウンドにおける特別変動入賞装置38の開閉扉38cの開放時間(大入賞口の開放時間)として開放時間の長い長開放を設定する処理(ステップA600)を行った後、当該開放時間(長開放に係る開放時間)を特図ゲーム処理タイマにセーブする(ステップA601)。
また、ステップA595にて、大入賞口の開放時間が長開放でないと判定された場合にも(ステップA595;No)、即ち、大入賞口の開放時間が短開放である場合、処理をステップA601に移行して、当該開放時間(短開放に係る開放時間)を特図ゲーム処理タイマにセーブする(ステップA601)。
すなわち、大当りのラウンド数が15ラウンドである場合は、大入賞口の開放時間として長開放に係る開放時間が特図ゲーム処理タイマにセーブされ、大当りのラウンド数が2ラウンドである場合は、大入賞口の開放時間として短開放に係る開放時間が特図ゲーム処理タイマにセーブされることとなる。
次に、大入賞口開放中処理に移行するためのテーブルを準備する処理(ステップA602)、具体的には、当該テーブルに、大入賞口開放中処理に係る処理番号「4」、大入賞口の開放に係る試験信号、大入賞口を開放するための大入賞口ソレノイド38bの駆動に係る制御信号(オン信号)、大入賞口への入賞数のクリアに係る情報等を設定する処理を行って、ファンファーレ/インターバル中処理を終了する。
〔大入賞口開放中処理〕
次に、上述の特図ゲーム処理における大入賞口開放中処理(ステップA13)の詳細について説明する。
図43に示すように、大入賞口開放中処理では、先ず、大入賞口開放情報判定フラグをロードし(ステップA611)、当該大入賞口開放情報判定フラグが大入賞口の開放時間の長い長開放(例えば、25秒等)であるか否かをチェックして(ステップA612)、大入賞口の開放時間が長開放である(ステップA613;Yes)と判定すると、実行中の特別遊技状態における現在のラウンド数とRWMのラウンド数上限値領域のラウンド数上限値とを比較して現在のラウンドが最終ラウンドであるか否かを判定する処理(ステップA614)を行う。
ステップA614における判定の結果、特別遊技状態における現在のラウンドが最終ラウンドでない(ステップA615;No)と判定すると、ラウンド間のインターバルに係るインターバルコマンドを準備して(ステップA616)、コマンド設定処理(ステップA617)を行う。
続けて、RWMの飾り特図コマンド領域から、飾り特図変動表示ゲームに係る停止図柄パターン情報に対応する飾り特図コマンドをロードして準備し(ステップA618)、コマンド設定処理(ステップA619)を行う。
次に、大入賞口残存球処理に移行するためのテーブルを準備する処理(ステップA620)、具体的には、当該テーブルに、大入賞口残存球処理に係る処理番号「5」、特図ゲーム処理タイマにセーブする大入賞口残存球処理に係る処理時間、大入賞口を閉塞するための大入賞口ソレノイド38bの駆動に係る制御信号(オフ信号)等を設定する処理を行って、大入賞口開放中処理を終了する。
一方、ステップA615にて、特別遊技状態における現在のラウンドが最終ラウンドである(ステップA615;Yes)と判定すると、特別遊技状態の終了の際にエンディング表示画面の表示制御等に係るエンディングコマンドを準備して(ステップA621)、コマンド設定処理(ステップA622)を行った後、処理をステップA618に移行して、それ以降の処理を行う。
即ち、RWMの飾り特図コマンド領域から、飾り特図変動表示ゲームに係る停止図柄パターン情報に対応する飾り特図コマンドをロードして準備し(ステップA618)、コマンド設定処理(ステップA619)を行った後、大入賞口残存球処理に移行するためのテーブルを準備する処理(ステップA620)を行う。具体的には、当該テーブルに、大入賞口残存球処理に係る処理番号「5」、特図ゲーム処理タイマにセーブする大入賞口残存球処理に係る処理時間、大入賞口を閉塞するための大入賞口ソレノイド38bの駆動に係る制御信号(オフ信号)等を設定する処理を行って、大入賞口開放中処理を終了する。
また、ステップA613にて、大入賞口の開放時間が長開放でない(ステップA613;No)と判定すると、即ち、大入賞口の開放時間が短開放(例えば、1秒)である場合、インターバルコマンドの設定(ステップA617)、飾り特図コマンドの設定(ステップA619)、エンディングコマンドの設定(ステップA622)を行うことなく、処理をステップA620に移行して、大入賞口残存球処理に移行するためのテーブルを準備する処理(ステップA620)を行う。具体的には、当該テーブルに、大入賞口残存球処理に係る処理番号「5」、特図ゲーム処理タイマにセーブする大入賞口残存球処理に係る処理時間、大入賞口を閉塞するための大入賞口ソレノイド38bの駆動に係る制御信号(オフ信号)等を設定する処理を行って、大入賞口開放中処理を終了する。
〔大入賞口残存球処理〕
次に、上述の特図ゲーム処理における大入賞口残存球処理(ステップA14)の詳細について説明する。
図44に示すように、大入賞口残存球処理では、先ず、実行中の特別遊技状態における現在のラウンド数とRWMのラウンド数上限値領域のラウンド数上限値とを比較して現在のラウンドが最終ラウンドであるか否かを判定する処理(ステップA631)を行う。
そして、ステップA631における判定の結果、特別遊技状態における現在のラウンドが最終ラウンドでない(ステップA632;No)と判定すると、ファンファーレ/インターバル中処理に移行するためのテーブルを準備する処理(ステップA633)、具体的には、当該テーブルに、ファンファーレ/インターバル中処理に係る処理番号「3」、特図ゲーム処理タイマにセーブするファンファーレ/インターバル中処理に係る処理時間、特別変動入賞装置38の作動終了を示す試験信号等を設定する処理を行って、大入賞口残存球処理を終了する。
一方、ステップA631における判定の結果、特別遊技状態における現在のラウンドが最終ラウンドである(ステップA632;Yes)と判定すると、エンディング時間を設定する処理(ステップ634)を行った後、当該エンディング時間を特図ゲーム処理タイマにセーブする(ステップA635)。
次に、大当り終了処理に移行するためのテーブルを準備する処理(ステップA637)、具体的には、当該テーブルに、大当り終了処理に係る処理番号「6」、大入賞口の閉塞に係る試験信号、特別遊技状態における各パラメータのクリアに係る情報(例えば、大入賞口への入賞数のクリアに係る情報、特別遊技状態のラウンド数のクリアに係る情報、特別遊技状態のラウンド数の上限値のクリアに係る情報、ラウンド数の上限値判定用のフラグのクリアに係る情報、大入賞口の開放時間が長開放か短開放かの開放情報判定用のフラグのクリアに係る情報)等を設定する処理を行って、大入賞口残存球処理を終了する。
〔大当り終了処理〕
次に、上述の特図ゲーム処理における大当り終了処理(ステップA15)の詳細について説明する。
図45に示すように、大当り終了処理では、先ず、大当り終了設定テーブルのアドレステーブルを設定する処理(ステップA641)を行う。続けて、停止図柄情報設定処理にて設定された確率変動判定フラグをロードした後(ステップA642)、当該確率変動判定フラグに対応する大当り終了設定テーブルを取得する処理(ステップA643)を行って、取得した大当り終了設定テーブルの各データをRWMの作業領域にセーブする(ステップA644)。
ここで、大当り終了設定テーブルは、特別遊技状態の終了後に発生する遊技状態の種類、例えば、確変状態や時短状態に応じて設定されるようになっている。
確変状態用の大当り終了設定テーブルは、具体的には、外部情報端子に出力用の普通変動入賞装置37の開放延長機能の作動中に係る信号、普図変動表示ゲーム及び特図変動表示ゲームにて当り結果となる確率が高確率状態であることを示す試験信号、高確率状態の表示に係る遊技状態表示LED(エラー表示器58)を点灯させる情報、普図変動表示ゲームにて当り結果となる確率が高確率状態であることを示す情報、特図変動表示ゲームにて当り結果となる確率が高確率状態であることを示す情報、演出制御装置300に出力される、普図変動表示ゲームや特図変動表示ゲームにて当り結果となる確率が高確率状態であることを示す情報等を規定するものである。
また、時短状態用の大当り終了設定テーブルは、具体的には、外部情報端子に出力用の普通変動入賞装置37の開放延長機能の作動中に係る信号、普図変動表示ゲームにて当り結果となる確率が高確率状態であることを示す試験信号、普図変動表示ゲームにて当り結果となる確率が高確率状態であることを示す情報、演出制御装置300に出力される、普図変動表示ゲームにて当り結果となる確率が高確率状態であることを示す情報、時間短縮変動回数(例えば、100回)を指示する情報等を規定するものである。
次に、確率変動判定フラグに対応する確率情報コマンドを準備して(ステップA645)、コマンド設定処理(ステップA646)を行う。
続けて、予め実行された先読み処理にて設定された変動パターンに係る変動振り分け判定フラグをロードした後(ステップA647)、ロードした値をRWMの変動パターンテーブル領域にセーブする(ステップA648)。
その後、特図普段処理に移行するためのテーブルを準備する処理(ステップA649)、具体的には、当該テーブルに、特図普段処理に係る処理番号「0」、大入賞口不正監視期間を規定するフラグ(大入賞口不正監視情報)等を設定する処理を行って、大当り終了処理を終了する。
〔図柄変動制御処理〕
次に、上述の特図ゲーム処理における図柄変動制御処理(ステップA18、A20)の詳細について説明する。
図柄変動制御処理は、第1特図や第2特図等の特別図柄の変動の制御と特別図柄の表示データの設定を行う処理であり、図46に示すように、先ず、第1特図及び第2特図のうち、制御対象の特図(例えば、第1特図等)に対応する特図表示テーブル(停止用)を取得する処理(ステップA671)を行う。
次に、第1特図及び第2特図のうち、制御対象の特図(例えば、第1特図等)に係る特図変動中フラグが変動中であるか否かをチェックして(ステップA672)、当該特図変動中フラグが変動中である(ステップA673;Yes)と判定すると、制御対象の特図(例えば、第1特図等)に対応する特図表示テーブル(変動用)を取得する処理(ステップA674)を行う。
続けて、第1特図及び第2特図のうち、制御対象の特図(例えば、第1特図等)に係る変動タイマを更新(−1)した後、当該タイマがタイムアップしたか否かをチェックして(ステップA675)、タイムアップした(ステップA676;Yes)と判定すると、特図変動制御タイマ初期値を当該制御タイマの変動タイマにセーブする(ステップA677)。
その後、第1特図及び第2特図のうち、制御対象の特図(例えば、第1特図等)に係る図柄番号を更新(+1)する処理(ステップA678)を行った後、当該更新後の図柄番号に対応する表示データを取得する処理(ステップA679)を行う。
また、ステップA673にて、特図変動中フラグが変動中でないと判定されるか(ステップA673;No)、或いは、ステップA676にて、タイムアップしていないと判定された場合にも(ステップA676;No)、処理をステップA679に移行して、ステップA678による更新処理にて更新されていない図柄番号に対応する表示データを取得する処理(ステップA679)を行う。
その後、ステップA679にて取得された表示データを、第1特図及び第2特図のうち、制御対象の特図(例えば、第1特図等)に係るセグメント領域にセーブして(ステップA680)、図柄変動制御処理を終了する。
これにより、特図1表示器51及び特図2表示器52のうち、制御対象となる特図表示器(例えば、特図1表示器51等)に図柄番号に対応した特図が表示されることとなる。
〔普図ゲーム処理〕
次に、上述のタイマ割込み処理における普図ゲーム処理(ステップS49)の詳細について説明する。
普図ゲーム処理では、ゲートスイッチ34aの入力の監視と、普図変動表示ゲームに関する処理全体の制御、普図の表示の設定等を行う。
次に、図47を用いて、図3の遊技機制御システムを構成する遊技用マイコン111の構成について説明する。図47には遊技用マイコン111のブロック構成図が示されている。遊技用マイコン111は、いわゆるアミューズチップ用のIC(以下、遊技用演算処理装置600と称する)として製造され、遊技制御を行う遊技領域部600Aと情報管理を行う情報領域部600Bとに区分することができる。
このうち遊技領域部600Aは、CPUコア601、ユーザプログラムROM602及びHWパラメータROM603(総称して、ROM)、ユーザワークRAM604及びミラードRAM605(総称して、RAM)、外部バスインタフェース(I/F)606、バス切り換え回路607、乱数生成回路608、クロックジェネレータ609、リセット/割込制御回路610、アドレスデコーダ611、出力制御回路612、ブートブロック613、復号化・ROM書込回路614、並びにバス615などにより構成される。この実施例の遊技用演算処理装置600においては、乱数生成回路608がオンチップの回路として形成されているが、乱数生成回路608はチップ外部に別個のICとして形成されていてもよい。
CPUコア601は、各種のレジスタ群、演算・論理部(ALU)、命令レジスタ(IR)、デコーダ、プログラムカウンタ(PC)、スタックポインタ(SP)、これらを結ぶデータバス、アドレスバス及び各種制御部をコア内に含み、例えば、Z80アーキテクチャで構成される。CPUコア601(111A)は、ユーザプログラムROM602(111B)に格納されている遊技制御プログラムや演出制御プログラムをロードして実行することによって、遊技機10の制御に必要な各種機能をソフト的に実現する。ユーザプログラムROM602に格納されている制御プログラムは、遊技用演算処理装置600が遊技制御装置100に備わる遊技用マイコン111である場合には、遊技の制御を行う遊技制御プログラムであり、遊技用演算処理装置600が払出制御装置200の遊技用マイコンである場合には、遊技球の払出しを行う球払出装置を制御する払出制御プログラムである。
HWパラメータROM603は、正当性確認情報を格納するメモリである。正当性確認情報とは、遊技用演算処理装置600の正当なものであるかのチェックを行うための情報であり、例えば、パチンコ遊技機10の一意な識別子を示す固有ID、メーカコード(パチンコ遊技機の製造メーカ毎に割り振られた固有の製造メーカの一意な識別子)、パチンコ遊技機のランク(1種、2種等)を示すランクコード、製造メーカがパチンコ遊技機の種類に設定する機種コード、検査番号を示す検査コード、電源投入時にRAMをバックアップするか否かを示すRAMバックアップコード、貸出料金設定スイッチによって設定された貸出料金等である。また、HWパラメータROM603には、最初に貸出情報要求を送信した検査装置の一意な識別子である固有IDが一つのみ記憶される。第3者機関又はパチンコ遊技機の製造メーカがユーザプログラムROM602にプログラムを書き込む際に、正当性確認情報がHWパラメータROM603に書き込まれる。
遊技用演算処理装置600の正当性のチェックを行う場合、遊技用演算処理装置600の電源立ち上がり時に、遊技用演算処理装置600自身が演算した演算値と、正当性確認情報(すなわち、第3者機関等によって予め設定された結果値)とを比較判定することで、遊技用演算処理装置600が正規のものであるか否かチェックする構成になっている。
ユーザワークRAM604(111C)は、遊技領域部600Aにおけるプログラムに基づく処理を実行する際にワークエリア(作業領域)として用いられるものである。ミラードRAM605は、クロックの立ち下がり時にユーザワークエリアに記憶された情報を複製した情報を記憶する(CPUコアがZ80の場合には、クロックの立ち上がり時に処理を実行するため、同期して動くことがないようにしている。)。
外部バスインタフェース606は、メモリリクエスト信号MREQ、入出力リクエスト信号IORQ、メモリ書込み信号WR、メモリ読み出し信号RD及びモード信号MODEなどのインタフェースをとるものであり、また、バス切り換え回路607は、16ビットのアドレス信号A0〜A15や8ビットのデータ信号D0〜D7のインタフェースをとるものである。例えば、MODE信号を[H]レベルにした状態で、アドレス信号A0〜A15を順次にインクリメントしながら、データ信号D0〜D7を加えると、ユーザプログラムROM602への書き込みモードとなってパチンコ遊技機1の製造メーカ又は第3者機関によるプログラムの書き込みが可能になる。
なお、書き込みモードはプログラムの書き込みを可能にするものであり、ブートブロック613に記憶されるブートプログラムを書き込みできるようにするものではない。また、ユーザプログラムROM602へのプログラムの書き込みが終了すると、HWパラメータROM603の所定領域に書込終了コードが記録(例えば、所定のコード若しくは所定ビットを物理的に切断することで記録)されるようになっており、HWパラメータROM603に書込終了コードが記録されている場合には、ユーザプログラムROM602への新たなプログラムの書き込みができないようになっている。
乱数生成回路608は、遊技の実行過程において遊技制御に係わる乱数(乱数は、当りの決定や停止時の図柄の決定等に使用)を生成するもので、数学的手法(例えば、合同法あるいはM系列法等)を利用して一様性乱数を生成するほか、カウンタ方式で乱数を生成する機能を有している。なお、遊技用演算処理装置600が払出制御装置200に備わる遊技用マイコン211である場合には、乱数生成回路608はなくてもよい。
クロックジェネレータ609は、内部クロック信号を生成するとともに、生成されたクロック信号をさらに分周して遊技制御に必要なタイミングに係わる信号を発生させる(詳細は図48にて後述)。リセット/割込制御回路(割込み信号発生手段)610は図示しない割込み信号発生回路からのリセット割込み信号RSTを検出してCPUコア601や乱数更新コントローラ608aに知らせる。アドレスデコーダ611は内蔵デバイス及び内蔵コントロール/ステータスレジスタ群のロケーションをメモリマップドI/O方式及びI/OマップドI/O方式によりデコードする。
出力制御回路612はアドレスデコーダ611からの信号制御を行って外部端子より8ビットのチップセレクト信号(CS0〜CS7)を外部に出力する。ブートブロック613は、ブートプログラムを記憶し、電源投入時にユーザワークRAM604に記憶された情報を初期化する。
復号化・ROM書込回路614は、ユーザプログラムROM602及びHWパラメータROM603への書込みモードの際に使用されるもので、モード信号MODEが[H]レベルになっている間、バス切り換え回路607を介してアドレス信号A0〜A15やデータ信号D0〜D7を取り込み、そのデータ信号D0〜D7に含まれる情報(暗号化されたプログラム及び暗号化された変更後の固有ID)を復号化処理した後、バス615を介してユーザプログラムROM602及びHWパラメータROM603に出力する(書き込む)ものである。バス615はデータバス、アドレスバス及び制御バスを含むものであり、バス615には情報領域部600Bも接続されている。
遊技用演算処理装置600における情報管理を行う情報領域部600Bは、HPGプログラムROM616、IDプロパティメモリ617、バスモニタ回路618、HPGワークRAM619、制御回路620、外部通信制御回路621、バス622、及び遊技領域600Aから延びるバス615の一部を含んで構成される。
情報領域部600B内のHPGプログラムROM616は、各種検査動作を行うHPGプログラムが格納される。IDプロパティメモリ617には、検査装置(図示省略)から外部通信制御回路621を介して受信した要求に基づいて、HWパラメータROM603に記憶されている情報を検査装置にすぐに出力できるように、遊技用演算処理装置600の電源投入時(システムリセット時)にHWパラメータに記憶されている情報を複製して記憶する。なお、IDプロパティメモリ617は、遊技領域600A側及び情報領域部600B側の双方よりアクセスが可能な構成になっている。
バスモニタ回路618は、情報領域部600B側より遊技領域部600A側のバス615の状態監視及び制御を行う。ここでの制御とは、HWパラメータROM603の内容をIDプロパティメモリ617に複写する際のタイミング制御や、ユーザプログラムROM602に格納されたプログラムを外部に出力する際(遊技領域部600A側のバス615を開放してユーザプログラムROM602からプログラムを読み込んで情報領域部600B側より外部に出力する際)のタイミング制御である。なお、プログラムは、外部通信制御回路621で暗号化されてから出力される。HPGワークRAM619は、情報領域部600Bにおけるプログラムに基づく処理を実行する際にワークエリア(作業領域)として用いられる。
制御回路620は情報領域部600B側を制御するもので、バッファメモリを有している。制御回路620は、例えば、バスモニタ回路618を介してCPUコア601の動作を監視し、非動作中に遊技領域部600AのユーザワークRAM604に記憶された内容をミラードRAM605へコピーする。また、検査装置からの要求に応答して情報領域部600BのIDプロパティメモリ617の内容を外部へ転送したり、プログラム要求に応答してバスモニタ回路618を介してユーザプログラムROM602内のプログラムを外部へ転送したりする。制御回路620のメモリは、転送時のタイミング調節のために用いられる。
外部通信制御回路621は検査装置との通信を行うもので、例えば、外部からの指令に基づいて遊技用演算処理装置600内に格納されている情報(例えば、固有ID、プログラム、実払出数等)を暗号化した後、外部へ転送する等の処理を行う。遊技用演算処理装置600では、遊技領域部600Aと情報領域部600Bがバスモニタ回路618を介して独立して動作する。すなわち、情報領域部600B側は遊技領域部600AにおけるCPUコア601の作動に関係なく(プログラム実行に関係なく)動作可能である。なお、遊技領域部600A及び情報領域部600Bを夫々構成する各種デバイスは共通の半導体基板上に実装しワンチップ化してパッケージングされる。
次に、遊技用演算処理装置600内に設けられ、当り乱数等の生成に使用される乱数生成回路およびクロックジェネレータについて、詳細に説明する。
図48は、本発明の実施形態の遊技用演算処理装置600における乱数生成回路608の詳細を示すブロック図である。遊技用演算処理装置600には、乱数生成回路608の他、電源装置400内のリセット信号生成回路からのリセット信号RSTを入力とし乱数生成回路608や遊技用演算処理装置600に対する割込み信号を生成するリセット割込み制御回路610、外部の水晶発振回路113から供給される原クロック信号CLKに基づいて遊技用演算処理装置600内で使用する複数のクロック信号を生成するクロックジェネレータ609が設けられている。
クロックジェネレータ609は、CTC回路609aと分周回路609bとを備えており、分周回路609bは、遊技用演算処理装置600の外部の水晶発振回路113から入力された原クロック信号CLKを分周し、原クロック信号の周期の2倍の周期のクロック信号φ1を生成して乱数生成回路608のコントローラ608aへ供給するとともに、原クロック信号CLKよりも周期の長いクロック信号φ2を生成しCTC回路609aに入力する。CTC(Counter/Timer Circuit)回路609aは、分周回路609bからのクロック信号φ2に基づいて、CPU601に対して所定周期(例えば、2ミリ秒)のタイマ割込み信号(CTC1)および乱数コントローラ608aへ供給する乱数更新のトリガを与える信号CTC2を発生する。従って、CTC回路609aから乱数コントローラ608aへ供給される信号CTC2は、乱数値を更新させる更新指令信号とみなせる。なお、CTC回路609aは、発生する信号CTC1,CTC2の周期を自由に設定できるように構成されている。
乱数生成回路(乱数生成手段)608は、乱数更新コントローラ608a、第1乱数ブロック608b、第2乱数ブロック608c、第3乱数ブロック608d、第4乱数ブロック608e、第5乱数ブロック608f、第6乱数ブロック608g、及び乱数回路608hにより構成される。このうち、第2乱数ブロック608c〜第6乱数ブロック608gは第1乱数ブロック608bと同様な構成とされ、乱数回路608hは乱数カウンタとワークエリア等CPU111Aが操作不能な回路のみからなる完全ハード乱数回路として構成されている。
そして、この実施例では、例えば第1乱数ブロック608bは当り乱数(普図)の生成に、第2乱数ブロック608cは大当り図柄乱数1の生成に、第3乱数ブロック608dは大当り図柄乱数2の生成に、第4乱数ブロック608eは変動パターン乱数1の生成に、第5乱数ブロック608fは変動パターン乱数2の生成に、第6乱数ブロック608gは変動パターン乱数3の生成に、乱数回路608hは特図の大当り乱数の生成にそれぞれ使用される。
乱数更新コントローラ(更新制御手段)608aは、遊技制御の実行過程において遊技価値(例えば、大当り)を付与するか否か等の判定や制御状態を決定するのに用いる乱数の生成のための演算処理を行うもので、一様性乱数を生成する数学的手法(例えば、合同法あるいはM系列法等)を利用して乱数を生成する。また、乱数更新コントローラ608aには、リセット割込み制御回路610からの割込み信号、クロックジェネレータ609を構成する信号発生手段としてのCTC回路609aおよび分周回路609bからの信号(CTC2,φ1)が入力可能となっている。
なお、特に限定されるものではないが、本実施例の乱数生成回路608は、後述のように、クロックジェネレータ609内のCTC回路609aからの信号CTC2の入力とCPU601による乱数更新トリガレジスタ(608b3)への設定のいずれによっても乱数の更新処理が行なえるように構成されている。従って、信号CTC2の入力とCPU601による乱数更新トリガレジスタ(608b3)の書込みがそれぞれ更新指令となる。また、乱数生成回路608は、後述のように、カウンタ方式すなわちカウンタ値を−1ずつ更新することで乱数を生成するモードと、M系列乱数を生成するモードのいずれかを選択できるように構成されている。
第1乱数ブロック608bは、CTC更新許可レジスタ608b1、タップ設定レジスタ608b2、乱数更新トリガレジスタ608b3、最大値設定レジスタ(範囲情報記憶手段)608b4、スタート値設定レジスタ608b5、一周完了報知レジスタ608b6、乱数カウンタ608b7、ワークエリア608b8、乱数更新中報知レジスタ608b9、更新エラー報知レジスタ608b10、乱数回路リセットレジスタ608b11、乱数カウンタ608b7の周回数を計数する周回カウンタ608b12、分周信号φ1の入力回数を計数する回数カウンタ608b13、電源投入(システムリセット時を含む)ごとに異なる値を発生する初期値用カウンタ608b14、乱数生成回路内のレジスタの更新状態等を示す設定情報記憶手段としてのソフト乱数ステータスレジスタ608b15などにより構成される。
上記ソフト乱数ステータスレジスタ608b15には、スタート値設定レジスタ608b5に次回に設定されるスタート値(開始値)が記憶されているか否かを示す情報(スタート値設定ビット)およびタップ設定レジスタ608b2に次回に設定されるタップ値(インデックス)が記憶されているか否かを示す情報(タップ値設定ビット)が設けられている。
上記レジスタのうち、ワークエリア(更新手段)608b8と初期値用カウンタ608b14およびソフト乱数ステータスレジスタ608b15は、CPUコア601すなわちユーザプログラムによってアクセスすることが不能なレジスタである。乱数カウンタ608b7は、乱数更新コントローラ608aとユーザプログラムの双方からアクセスすることが可能なレジスタで、タップ設定レジスタ608b2の設定前であれば、ユーザプログラムは乱数更新コントローラ608aによるアクセスの許可を条件にアクセスすることができるようになっている。
なお、第2乱数ブロック608c、第3乱数ブロック608d、及び第4乱数ブロック608eに関しては、第1乱数ブロック608bと同様の構成を有するため説明は省略する。複数の乱数ブロックを備えることにより、遊技制御で使用する複数の乱数を並行して生成することができる。本実施形態においては、特図変動表示ゲームにおいて大当りを発生させるか否かを決定する大当り乱数(特図1、特図2に共通)、特図1および特図2の各変動表示ゲームにおける大当り停止図柄を決定する大当り図柄乱数1,2、普図変動表示ゲームにおいて当りを発生させるか否かを決定する当り乱数を並行して生成するようにしているが、変動パターン決定する変動パターン乱数などを生成するようにしてもよい。
CTC更新許可レジスタ608b1は、乱数カウンタ608b7の更新を許可/不可の何れかに設定するものであり、「許可」に設定されていれば、CTC回路609aからの信号CTC2をトリガにして乱数カウンタ608b7が更新されることとなる。タップ設定レジスタ608b2は、「カウンタモード」の場合において、乱数カウンタ608b7を作動させるものであり、電源投入時は「0」となっており、このとき、乱数カウンタ608b7は作動しないようになっている。そして、タップ設定レジスタ608b2に「0」以外の値が書き込まれることによって、乱数カウンタ608b7が作動するようになっている。また、「乱数モード」の場合、タップ設定レジスタ608b2に書き込まれた値によって、M系列の漸化式の種類が決定される。従って、タップ設定レジスタ608b2が乱数値の更新を開始するか否かを示す起動情報を記憶する起動情報記憶手段として機能する。
乱数更新トリガレジスタ608b3は、CPUコア601から直接書込みが可能なレジスタであり、CPUコア601が例えば割込み処理で所定値を書き込むと、乱数更新コントローラ608aがそれを認知して乱数カウンタ608b7を更新するように構成されている。なお、このとき、CTC更新許可レジスタ608b1の設定が「許可」/「不可」の何れの場合でも乱数カウンタ608b7が更新される。従って、乱数更新トリガレジスタ608b3が乱数値の更新を指示する更新指示記憶手段として機能する。
最大値設定レジスタ608b4は、乱数カウンタ608b7の最大値とモードを設定するものである。最大値は8以上4095以下の値に設定される。また、モードは「乱数モード」か「カウンタモード」の何れかに設定される。そして、設定された最大値をNとした場合、「乱数モード」において乱数カウンタ608b7は1〜Nの範囲で更新され、「カウンタモード」において乱数カウンタ608b7は0〜Nの範囲で更新される。従って、最大値設定レジスタ608b4が乱数生成回路608の更新範囲情報を記憶する範囲情報記憶手段として機能する。本実施形態では、普図当り乱数の最大値は例えば250に設定され、特図大当り図柄乱数1,2の最大値は例えば200に設定される。
スタート値設定レジスタ608b5は、ユーザプログラムによってCPUコア601が乱数カウンタ608b7の更新スタート値(開始値)を設定(格納)するためのものである。乱数カウンタ608b7が所定の周期を1周したときに、乱数更新コントローラ608aによってこのスタート値が乱数カウンタ608b7に設定される。具体的には、例えば、最大値設定レジスタ608b4において設定された最大値Nよりも大きな値をスタート値Sとして設定した場合には、乱数カウンタ608b7が所定の周期を1周したときに最大値Nをスタート値Sで除した際の余り値が乱数カウンタ608b7に設定される。従って、スタート値設定レジスタ608b5が乱数値の開始値を記憶する開始値記憶手段として機能し、乱数更新コントローラ608aが開始値設定手段として機能する。
一周完了報知レジスタ608b6は、乱数カウンタ608b7が所定の周期を1周したことを報知するものであり、CPUコア601がスタート値設定レジスタ608b5にスタート値を設定するとオンに設定され、オンに設定された後、乱数カウンタ608b7が所定の周期を1周してスタート値設定レジスタ608b5のスタート値が乱数カウンタ608b7に再設定されると、一周完了報知レジスタ608b6はオフに設定される。そして、周回カウンタ608b12が、乱数カウンタ608b7の周回数を計数する。
乱数カウンタ608b7は、12次(12ビット)の乱数列で構成され、タップ設定レジスタ608b2に所定の値が書き込まれるまでは、データを設定して乱数の電源投入時におけるスタート値を変更することができる。故に、乱数カウンタ608b7の範囲は、「乱数モード」であれば1〜4095の間の値を取りうることになり、「カウンタモード」であれば、0〜4095の間の値をとり得ることになる。また、「乱数モード」では、カウンタ値が一周するまで、同じ乱数値が生成されないようになっている。
ワークエリア608b8は、バックアップ電源によりバックアップされたRAMもしくは不揮発性のメモリで構成され、乱数カウンタ608b7の更新用バッファおよびバックアップエリアとして機能するものであり、ワークエリア608b8で乱数の更新がなされ更新された値が乱数カウンタ608b7に格納される。従って、ワークエリア608b8が乱数の更新手段として機能し、乱数カウンタ608b7が乱数値記憶手段として機能する。ワークエリア608b8はCPUからの読込みが不能なレジスタとされ、これにより誤って更新中の不確定な値がCPUに取り込まれるのを防止することができる。また、ワークエリア608b8は複数のエリアに分割されており、そのうちひとつのエリアには停電発生時に停電直前の初期値用カウンタ608b14の値が保持される。以下、このエリアをバックアップエリアと称し、乱数値の入る乱数更新エリアと区別する。
ワークエリア608b8の乱数値は、CTC回路609aからの信号CTC2または乱数更新トリガレジスタ608b3の書込みにより乱数の更新が指令されると、最大値設定レジスタ608b4で示される範囲の値となるまで更新され続ける。そして、このワークエリア608b8の値が更新されている間は、「乱数モード」であっても「カウンタモード」であっても、乱数カウンタ608b7には「0」が設定される。従って「乱数モード」の場合には、更新範囲内の数値(1〜N)に属しない「0」が乱数カウンタ608b7に設定されていると、乱数カウンタ608b7が更新中であることが示される。従って、乱数カウンタ608b7の値は、乱数値を更新中であるか否かを示す更新中情報とみなすことができる。また、「カウンタモード」では、ワークエリア608b8の中でダウンカウント方式によりカウント値を更新(−1)する。
乱数更新中報知レジスタ608b9は、乱数が更新中であることを報知するものであり、信号発生手段としてのCTC回路609aや乱数更新トリガレジスタ608b3により乱数カウンタ608b7が更新されている間はオンに設定され、更新中でなければオフに設定される。従って、乱数更新中報知レジスタ608b9が乱数値を更新中であるか否かを示す更新中情報が記憶される更新中情報記憶手段として機能する。
更新エラー報知レジスタ608b10は、乱数カウンタ608b7の値が更新されなかった場合に、乱数更新コントローラ608aによってエラーを示す値が設定され、CPU601がこのレジスタの値を読み込むことで乱数更新エラーが発生しているか否か知ることができるようになっている。従って、更新エラー報知レジスタ608b10が乱数生成回路608の異常情報記憶手段として機能する。更新エラーすなわちワークエリア608b8の値が更新されたか否かは乱数更新コントローラ608aによって判定することができる。
乱数回路リセットレジスタ608b11は、乱数更新エラーが発生した場合に乱数生成回路608を外部からリセットするためのもので、CPU601がこのレジスタに所定の値を書き込むと、乱数更新コントローラ608aはリセット指令があったと判定して回路内部をリセット状態にする。回数カウンタ608b13は、分周信号φ1の入力回数を計数する。
初期値用カウンタ608b14は、分周回路609bからの分周信号φ1が入力される毎に乱数更新コントローラ608aの割込み処理によって更新(+1)されるようになっており、電源遮断時に初期値用カウンタ608b14の値がワークエリア608b8に格納され、電源投入時(システムリセット時を含む)にその値が復帰されることで電源投入ごとに異なる値を発生する初期値発生回路として機能する。ソフト乱数ステータスレジスタ608b15は、スタート値設定レジスタ608b5に、次回に設定される値(開始値)が記憶されているか否かを示す情報(フラグ)が乱数更新コントローラ608aによって記憶される設定情報記憶手段として機能する。なお、本実施形態においては、原クロック信号CLKを2分周して原クロック信号の周期の2倍の周期のクロック信号φ1を生成しているが、クロック信号φ1の周期はそれに限定されるものでない。
ここで、本実施形態において、ソフトウェア(ユーザプログラム)によって、乱数生成回路608内の乱数カウンタ608b7による乱数生成処理に関わる不正が行なわれにくくする初期値(スタート値)の攪拌更新処理の概略について、図49を用いて説明する。なお、本実施形態においてこの処理が適用されるのは、特図1および特図2の各変動表示ゲームにおける大当り停止図柄を決定する大当り図柄乱数1,2と、普図変動表示ゲームにおいて当りを発生させるか否かを決定する当り乱数の計3つの乱数(大当り乱数を含まない)の生成処理であるが、ここでは普図の当り乱数の攪拌更新処理について説明する。
図49(A)は普図の当り乱数を生成する乱数カウンタ608b7の概念図、図49(B)は乱数カウンタ608b7が一周するごとに乱数カウンタ608bに再設定される初期値(スタート値)を生成する初期値乱数カウンタの概念図である。図49(A)の乱数カウンタは、CTC回路609aから出力される周期的な信号CTC2が乱数更新コントローラ608aに入力される毎に更新(−1)される。初期値乱数カウンタは、図47の遊技用演算処理装置600内のユーザワークRAM604内に設けられるカウンタで、ユーザプログラム(メイン処理の図8の初期値乱数更新処理)によって更新(+1)される。なお、図49には、一例として初期値乱数カウンタが8ビットで構成され、乱数カウンタ608b7の最大値として「250」が設定されている場合が示されている。前記最大値設定レジスタ608b4に最大値として「N」が設定された場合には、図49(A)の乱数カウンタは最大値MAXが「N」のカウンタとして動作することとなる。
本実施形態においては、電源投入時およびシステムリセット時に、乱数生成回路608内のワークエリア608b8から復帰され毎回ランダムな値となる初期値用カウンタ608b14の値(図49では「2」)が、図49(A)の乱数カウンタ608b7と、図49(B)の初期値乱数カウンタ(置換カウンタ)に、初期値としてそれぞれ設定される(符号#1)。その後、図49(A)の乱数カウンタ608b7と図49(B)の初期値乱数カウンタは、別々のタイミングで更新(−1または+1)される(符号#2)。
その後、(B)の初期値乱数カウンタの値は、CPUのタイマ割込み処理(図9)内の乱数更新処理(S45、図17)において、そのときの値Ni(図49では「149」)がスタート値設定レジスタ608b5にセットされる(符号#3)。そして、乱数カウンタ608b7が一周したとき(符号#4)に、スタート値設定レジスタ608b5の値を、次の計数サイクルにおける初期値(スタート値)として乱数カウンタ608b7に再設定、すなわちスタート値の差し替えをする(符号#5)。すると、その後、乱数カウンタ608b7は、設定された値Ni(=149)を初期値(スタート値)として、信号CTC2が入力される毎に更新(−1)される(符号#6)。
一方、図49(B)の初期値乱数カウンタは、スタート値設定レジスタ608b5にカウント値Ni(=149)が設定された後も引き続いて更新(+1)される(符号#3’)。なお、初期値(スタート値)の乱数カウンタ608b7への再設定(差し替え)は、直接ではなくスタート値設定レジスタ608b5の値をワークエリア608b8へ格納することにより行なわれる。乱数カウンタ608b7の値の更新は直接行なわれるのではなく、実際の更新はワークエリア608b8で行い、乱数カウンタ608b7には更新結果が格納されるためである。以上のような処理によって、乱数カウンタ608b7のスタート値が攪拌され、乱数取得に関わる不正が行なわれにくくすることができる。
すなわち、不正行為者が、例えば遊技機の遊技制御装置から各種被制御装置への制御信号の送信タイミングなどに基づいて乱数カウンタの更新タイミングを割り出したとしても、周回の初期値の変更の仕組みについて解析しない限り乱数カウンタの値まで割り出すことは難しく、特定の遊技状態(大当り状態)を発生させる不正行為を行うことが著しく困難になる。また、電源投入及びシステムリセット毎に乱数生成回路でランダムな値が生成され、乱数カウンタの1周目の周回初期値と、2周目以降の周回初期値(スタート値)を生成する置換カウンタの初期値として設定されるようにしたので、乱数カウンタの値を外部から割り出すことは難しくなり、不正行為を未然に防止できる。
次に、乱数更新コントローラ608aによる乱数生成回路608内の制御手順について説明する。図50には、乱数更新コントローラによるメイン処理の前半部分のフローチャートが、また、図51には乱数更新コントローラによるメイン処理の後半部分のフローチャートが示されている。このメイン処理は、電源投入及びシステムリセット毎に開始され電源がオンされている間連続して実行されるループ処理であり、乱数更新コントローラ608aによる処理には、このメイン処理のほか、クロックジェネレータ609からの信号φ1、CTC2の入力による割込み処理や電源遮断検出時に実行される緊急割込み処理がある。前述した初期値用カウンタ608b14の値のワークエリア608b8(バックアップエリア)への格納は、電源遮断検出時の緊急割込み処理によって行うようにすることができる。
乱数更新コントローラ608aは、リセット割込み制御回路610によるリセット割込み信号もしくは電源投入時のパワーオンリセット信号に基づき、図50の制御フローを開始し、先ず、ワークエリア608b8に記憶されている値を除いて、他の記憶領域やレジスタに記憶されている値を初期化する(ステップS101)。このとき、周回カウンタ608b12の値を「0」に設定する。また、この初期化処理で、ワークエリア608b8のバックアップエリアに記憶されている初期値用カウンタの値を、初期値用カウンタ608b14に復帰させるようにすることができる。
次に、ワークエリア608b8のバックアップエリアに記憶されている初期値用カウンタの値を乱数カウンタ608b7に取り込む(ステップS102)。続いて、乱数カウンタ608b7のユーザプログラムによる変更を許可し(ステップS103)、タップ設定レジスタ608b2の設定を待つ(ステップS104)。乱数カウンタ608b7の変更が許可され、タップ設定レジスタ608b2に「0」の値が書き込まれることによって、CTC2信号または乱数更新トリガレジスタ608b3への所定値の書込みによる乱数カウンタ608b7の更新が可能とされる。従って、初期値用カウンタ608b14とステップS102とが、電源投入及びシステムリセット毎にランダムな値を生成して前記乱数カウンタの1周目の周回初期値として設定する第1攪拌手段として機能することとなる。
その後、乱数更新コントローラ608aは、乱数カウンタ608b7の変更を禁止し(ステップS105)、このときの乱数カウンタ608b7の値をワークエリア608b8に記憶(ステップS106)し、ユーザーによって設定された乱数カウンタの値を所定の範囲内の値に補正するための乱数カウンタ初期値補正処理(ステップS160,図52)を実行してから、回数カウンタ608b13を「0」に設定する(ステップS107)。なお、乱数カウンタ608b7の変更が禁止されるまでの間は、CPUコア601(図47)によって乱数カウンタ608b7に任意の値を直接書き込むことが可能である。また、乱数カウンタ608b7の変更が禁止されても乱数更新コントローラ608aによる更新はいつでも可能である。
次に、CTC回路609aによるCTC信号(CTC2)が発生(検出)したか否かを判定する(ステップS108)。このCTC回路609aによるCTC信号が発生したか否かの判定(ステップS108)において、CTC回路609aによるCTC信号が発生した場合(Yes)は、CTC使用モードか否か、具体的には、CTC更新許可レジスタ608b1が「許可」に設定されているか否かの判定(ステップS109)を行う。
そして、このCTC使用モードか否かの判定(ステップS109)において、CTC使用モードの場合(Yes)は、ステップS111へ進む。一方、このCTC使用モードか否かの判定(ステップS109)において、CTC使用モードでない場合、すなわち、CTC更新許可レジスタ608b1が「不可」に設定されている場合(No)は、乱数更新トリガレジスタ608b3に所定値が書き込まれているか否かの判定(ステップS110)を行う。
また、CTC回路609aによるCTC信号が発生したか否かの判定(ステップS108)において、CTC回路609aによるCTC信号が発生していない場合(No)は、ステップS109をスキップして、乱数更新トリガレジスタ608b3に所定値が書き込まれているか否かの判定(ステップS110)を行う。この判定(ステップS110)において、乱数更新トリガレジスタ608b3に所定値が書き込まれている場合(Yes)は、ステップS111へ進む。一方、ステップS110の判定において、乱数更新トリガレジスタ608b3に所定値が書き込まれていないと判定した場合(No)は、ステップS108へ戻る。
次に、乱数更新中報知レジスタ608b9をオンに設定(ステップS111)した後、乱数カウンタ608b7の値を「0」に設定(ステップS112)し、分周回路609bからの分周信号φ1の入力を待つ(ステップS113)。それから、最大値設定レジスタ608b4に設定されたモードが「乱数モード」であるか「カウンタモード」であるかの判定(ステップS114)を行う。この判定(ステップS114)において、最大値設定レジスタ608b4に設定されたモードが「カウンタモード」の場合、ワークエリア608b8の値が「0」より大きいか否かの判定(ステップS115)を行う。
そして、ワークエリア608b8の値が「0」より大きいか否かの判定(ステップS115)において、ワークエリア608b8の値が「0」(=No)と判定した場合は、ワークエリア608b8の値を最大値に設定する(ステップS116)。一方、このワークエリア608b8の値が「0」より大きいか否かの判定(ステップS115)において、ワークエリア608b8の値が「0」より大きい(Yes)と判定した場合は、ワークエリア608b8の値をデクリメント(−1更新)する(ステップS117)。
その後、スタート値設定レジスタ608b5に次回に設定されるスタート値(開始値)が格納されているか否かを示すソフト乱数ステータスレジスタ608b15の情報(スタート値設定ビット)がオフになっているか判定する(ステップS118)。ここで、フラグがオフになっていないつまり新しいスタート値が格納されていない状態の場合(No)は、ステップS121へジャンプする。また、ステップS118で、スタート値設定ビットがオフになっている(Yes)と判定すると、次のステップS119で、スタート値設定レジスタ608b5に設定されているスタート値とワークエリア608b8に記憶されている初期値用カウンタの値とを比較して前回の値と一致しているか否か判定する。そして、ステップS119で一致している(Yes)と判定した場合は、ステップS121へジャンプし、ステップS119で、一致していない(No)と判定すると、次のステップS120でソフト乱数ステータスレジスタ608b15のスタート値設定ビットをオンに設定してステップS121へ進む。
ステップS121では、周回カウンタ608b12の値をインクリメント(+1更新)し、周回カウンタの値が乱数カウンタの最大値に1足した値以上か否かの判定を行う(ステップS122)。そして、周回カウンタの値が乱数カウンタ608b7の最大値に1足した値以上の場合(ステップS122;Yes)は、周回カウンタの値を「0」に設定する(ステップS123)。一方、この周回カウンタの値が乱数カウンタ608b7の最大値に1足した値以上か否かの判定(ステップS122)において、周回カウンタの値が乱数カウンタ608b7の最大値に1足した値以上でない場合(ステップS122;No)は、図51のステップS147へ進む(符合B)。従って、ステップS122が一周検出手段として機能する。
次に、スタート値設定レジスタ608b5において乱数更新のスタート値の取得及び最大値以下にする補正を行う(ステップS124)。図49に示すように、当り乱数カウンタ(A)よりも初期値乱数カウンタ(B)の方が範囲が大きい場合に、当り乱数カウンタのとり得ない値を初期値乱数カウンタからスタート値として取得して設定した場合を考慮したものである。
具体的には、このとき、最大値よりも取得したスタート値の方が大きい場合には、最大値をスタート値で除した際の余り値をスタート値とする補正を行う。その後、ワークエリア608b8にスタート値を取り込み(ステップS125)、次のステップS126でソフト乱数ステータスレジスタ608b15のスタート値設定ビットをオフに設定してスタート値設定レジスタ608b5の値を設定したことを記憶してから、一周完了報知レジスタ608b6をオンに設定する(ステップS127)。
従って、スタート値設定レジスタ608b5とステップS122〜S125とが、乱数カウンタに1周目の周回初期値が設定された後、乱数カウンタが更新されて当該周回の周回初期値に達する毎に、当該乱数カウンタの新たな周回初期値を設定する第2攪拌手段として機能することとなる。このように、乱数カウンタの周回の初期値は少なくとも一巡する毎に第2攪拌手段によって設定された周回初期値に置換されるので、乱数カウンタの値を外部から割り出すことは難しく、不正行為を未然に防止することができる。
次に、符合Bに従って、ステップS127から移行したステップS147で回数カウンタ608b13の値が規定値に達したか否かの判定を行う。ここで、規定値(規定更新時間)は、例えば、「カウンタモード」の場合は規定値が「2」、「乱数モード」の場合であって最大値が「17」以上の場合は規定値が「20」、「乱数モード」の場合であって最大値が「16」以下の場合は規定値が「200」に設定される。これらの規定値(規定更新時間)のデータは、遊技用マイコン111のROM111Bに予め記憶されている。
従って、乱数カウンタ608b7の更新が開始されると、分周回路609bから乱数更新コントローラ608aへ分周信号入力ごとに乱数を更新するのではなく、入力される分周信号が所定回数検出されるまでは、乱数カウンタ608b7を更新しないことになり、さらに、その検出回数がある程度のまとまった数に固定されることになる。言い換えれば、「カウンタモード」の場合は、乱数カウンタ608b7を更新するために、分周信号が2回発生する時間(規定更新時間)を要することになる。また、「乱数モード」の場合であって乱数カウンタの最大値が「17」以上の場合は、乱数カウンタ608b7を更新するために、分周信号が20回発生する時間を要することになり、「乱数モード」の場合であって乱数カウンタの最大値が「16」以下の場合は、乱数カウンタ608b7を更新するために、分周信号が200回発生する時間を要することになる。
回数カウンタ608b13の値が規定値に達したか否かの判定(ステップS147)において、回数カウンタの値が規定値に達していない場合(No)は、分周信号を待ち(ステップS150)、回数カウンタの値をインクリメント(+1)して(ステップS151)、ステップS147へ戻る。一方、回数カウンタの値が規定値に達したか否かの判定(ステップS147)において、回数カウンタの値が規定値に達した場合(Yes)は、ワークエリア608b8の値を乱数カウンタ608b7に設定し(ステップS148)、乱数更新中報知レジスタ608b9をオフに設定し(ステップS149)、図50のステップS107に戻る。
また、最大値設定レジスタ608b4に設定されたモードが「乱数モード」であるか「カウンタモード」であるかの判定(ステップS114)において、最大値設定レジスタ608b4に設定されたモードが「乱数モード」の場合、ステップS128へ進む。そして、ワークエリア608b8にてM系列乱数を更新し(ステップS128)、ワークエリア608b8のM系列乱数に基づく値が最大値よりも大きいか否かの判定を行う(ステップS129)。
この判定(ステップS129)において、ワークエリア608b8のM系列乱数に基づく値が最大値よりも大きい場合(Yes)は、分周信号を検出したか否かの判定(ステップS130)を行う。そして、この判定(ステップS130)において、分周信号を検出した場合(Yes)は、回数カウンタ608b13の値を1インクリメントし(ステップS131)、ステップS124へ戻る。一方、この分周信号を検出したか否かの判定(ステップS130)において、分周信号を検出していない場合(No)は、ステップS128へ戻る。
また、ステップS129の判定において、ワークエリア608b8のM系列乱数に基づく値が最大値よりも大きくない場合(No)は、ステップS132へ移行して、タップ設定レジスタ608b2に次回に設定されるタップ値(インデックス)が格納されているか否かを示すソフト乱数ステータスレジスタ608b15のタップ設定ビットがオフになっているか判定する(ステップS132)。ここで、タップ設定ビットがオフになっていないつまり新しいタップ値が格納されていない状態の場合(No)は、ステップS135へジャンプする。
また、ステップS132の判定において、タップ設定ビットがオフになっている場合(Yes)は、ステップS133へ移行して、タップ設定レジスタ608b2に設定されているタップ値が前回のタップ値と一致しているか否か判定する。ここで、タップ値が前回と一致している場合(Yes)はステップS135へジャンプする。ステップS133の判定で、タップ値が前回と一致していない場合(No)は、次のステップS134でタップ設定ビットをオンにしてからステップS135へ移行する。
ステップS135では、ソフト乱数ステータスレジスタ608b15のスタート設定ビットがオフになっているか否か判定し、スタート値設定ビットがオフになっていない場合(No)は、ステップS138へジャンプする。また、ステップS135でスタート値設定ビットがオフになっている(Yes)と判定すると、次のステップS136で、ワークエリア608b8に記憶されている初期値用カウンタの値とスタート値設定レジスタ608b5に設定されているスタート値とを比較して前回の値と一致しているか否か判定する。そして、一致している場合(Yes)は、ステップS138へジャンプし、ステップS136で、一致していない(No)と判定すると、次のステップS137でソフト乱数ステータスレジスタ608b15のフラグをオンに設定してステップS138へ進む。
ステップS138では、周回カウンタ608b12の値をインクリメント(+1更新)し、周回カウンタの値が最大値以上か否かの判定を行う(ステップS139)。この判定(ステップS139)において、周回カウンタの値が最大値以上の場合(Yes)は、周回カウンタの値を「0」に設定する(ステップS140)。一方、周回カウンタの値が最大値以上か否かの判定(ステップS139)において、周回カウンタの値が最大値以上でない場合(No)は、ステップS147へ進む。従って、ステップS139が一周検出手段として機能する。
次に、スタート値設定レジスタ608b5においてスタート値の取得及び最大値以下にする補正を行う(ステップS141)。具体的には、このとき、最大値よりも取得したスタート値の方が大きい場合に、最大値をスタート値で除した際の余り値をスタート値とする補正を行う。その後、タップ設定レジスタ608b2に設定されているタップ値に応じた特性多項式(乱数計算式)を設定(ステップS142)し、ソフト乱数ステータスレジスタ608b15のタップ設定ビットをオフに設定する(ステップS143)。
続いて、ワークエリア608b8にスタート値を取り込み(ステップS144)、次のステップS145でソフト乱数ステータスレジスタ608b15のスタート設定ビットをオフに設定してステップS146へ進む。ステップS146では、一周完了報知レジスタ608b6をオンに設定し、ステップS147へ進み、回数カウンタが規定値か否か判定する。そして、この判定において、回数カウンタ608b13の値が規定値に達した(Yes)と判定した場合は、前述したように、ワークエリア608b8の値を乱数カウンタ608b7に設定し(ステップS148)、乱数更新中報知レジスタ608b9をオフに設定し(ステップS149)、図50のステップS107に戻る。
なお、図50および図51には示されていないが、乱数更新コントローラ608aは、乱数更新処理後に乱数カウンタ608b7の値をチェックして、更新がされていない場合には更新エラーと判定して、更新エラー報知レジスタ608b10にエラーが発生したことを示す値を設定するように構成されている。
図52には、図50のステップS160で行なわれる乱数カウンタ初期値補正処理の具体的な手順の一例が示されている。
この乱数カウンタ初期値補正処理では、先ずワークエリア608b8内の初期値用カウンタの値が最大値よりも大きいか否か判定する(ステップS161)。この最大値は、最大値設定レジスタ608b4に設定されている値である。ステップS161で、ワークエリア608b8内の初期値用カウンタの値が最大値よりも大きくない(No)と判定するとステップS163へ移行し、ステップS161でワークエリア608b8の値が最大値よりも大きい(Yes)と判定すると、ステップS162でワークエリア608b8内の乱数カウンタの値を最大値以下にする補正を行なってからステップS163へ移行する。
具体的には、ワークエリア608b8内の乱数カウンタの値を最大値で割った余りを算出して補正した値とする。従って、ステップS161〜S162が、生成されたランダムな値が更新範囲情報に規定されている更新範囲外の値が設定された場合には、更新範囲外の値を前記範囲情報記憶手段に記憶された上限値で除算し、算出された余り値を前記乱数カウンタの1周目の周回初期値として設定する第1攪拌手段として機能することとなる。
ステップS163では、補正後(もしくは補正されていない)値が、ワークエリア608b8のバックアップエリアに格納されている前回の初期値(電源遮断時に格納した初期値用カウンタ608b14の値)と一致しているか否か判定し、一致していない(No)と判定するとステップS165へ移行し、ワークエリア608b8の値を乱数カウンタ608b7に格納する。
また、ステップS163で前回の初期値と一致している(Yes)と判定すると、ステップS164でワークエリア608b8内の初期値用カウンタの値をM系列更新してからステップS165へ移行してワークエリア608b8の値を乱数カウンタ608b7に格納する。これにより、乱数カウンタの値が前回と同じ初期値から更新開始されるのを回避して、遊技者による不正な大当り乱数の取得を防止することができる。なお、ステップS164における更新は、M系列更新に限定されず他の方式による更新であっても良い。
ユーザプログラムによって周期的に更新される乱数カウンタの周回初期値として不適切な値(所定の範囲外の値)が記憶されるおそれがあるが、不適切な値(所定の範囲外の値)が記憶された場合には、上記乱数カウンタ初期値補正処理により補正を受けて、所定の範囲内の値に設定し直され、乱数カウンタの周回の初期値には常に所定の範囲内の適切な値が設定されるので、所定の正しい確率で遊技の決定処理を行うことができる。
なお、上記実施形態では、変動表示ゲームの演出態様としての変動パターンを選択するために使用する乱数を生成する特性多項式を、生成した乱数が一巡するごとに設定し直すようにしているが、2巡ごとや3巡ごとあるいは所定周期ごと特性多項式を設定し直すようにしてもよい。また、本実施例では、変動表示ゲームの変動パターンを判定する乱数生成処理に適用した場合について説明したが、本発明は、変動表示ゲームのはずれ図柄を判定する乱数生成処理等にも適用することができる。
上述の説明から、上記実施形態には、変動表示ゲームの実行を制御する遊技制御手段と、前記遊技制御手段から供給される前記変動表示ゲームの演出を指示する演出制御指令に基づいて前記変動表示ゲームの演出を制御する演出制御手段と、前記遊技制御手段による制御で用いられる乱数値を生成する乱数生成手段と、を備えた遊技機であって、
前記乱数生成手段は、前記乱数値を記憶保持する乱数値記憶手段と、前記乱数値の更新範囲を規定する更新範囲情報が記憶される範囲情報記憶手段と、所定の特性多項式に従った演算によって乱数値を更新し、更新後の乱数値が前記更新範囲外の場合には当該更新後の乱数値が前記更新範囲内の値となるまで乱数値の更新を繰り返し行う更新手段と、所定の条件が成立した場合に複数の異なる特性多項式のうち一つの特性多項式を選択して、前記更新手段が使用する新たな特性多項式として設定する多項式設定手段と、を備え、
前記遊技制御手段は、所定の乱数取得条件が発生したことを検出する取得条件検出手段と、前記取得条件検出手段によって前記所定の乱数取得条件の発生が検出された場合に、前記乱数値記憶手段から乱数値を取得する乱数値取得手段と、前記乱数値取得手段によって取得された乱数値に基づいて予め用意されている複数の演出態様の中から前記変動表示ゲームの演出に使用する演出態様を選択し、選択した演出態様に対応する演出制御指令を決定する演出制御指令決定手段と、を備えた発明が含まれることが分かる。
次に、タップ設定レジスタ608b2に設定されたタップ値と、各乱数ブロック608b〜609gにおいて実行されるM系列乱数生成処理に使用される特性多項式のパターンとの関係および特性多項式の具体例について説明する。
本実施形態の乱数生成回路608においては、乱数モード時に各乱数ブロック608b〜609gにおいて乱数生成に使用される特性多項式が、図53(A)に示すように、8つのパターン0〜7のいずれかに切り替え可能に構成されており、いずれのパターンの特性多項式を使用して乱数を生成するかがタップ設定レジスタ608b2のタップ設定値によって決定されるように構成されている。つまり、タップ設定値をインデックスとして特性多項式のパターンが指定されることとなる。例えば、タップ設定値が「0」の場合には、パターン0の特性多項式、すなわちX12+X11+X10+X4+1が選択される。
図53(B)は、パターン0の特性多項式の演算を、論理回路として示したものである。同図に示すように、本実施形態の乱数生成回路608において使用される特性多項式は、12ビットのシフトレジスタと、最上位ビットからの信号を任意のビット位置にフィードバックして排他的論理和をとった信号をシフトさせるイクスクルーシブORゲートEx−OR1〜3とから構成される。すなわち、この実施例で用いられる特性多項式を実現する論理回路は、リニアフィードバックシフトレジスタと呼ばれるハードウェアと類似の構成を有する。
図53(B)に示すパターン0の特性多項式の演算を実行する論理回路においては、イクスクルーシブORゲートは、ビットR4とビットR5との間、ビットR9とビットR10との間、およびビットR10とビットR11との間にそれぞれ配置される。他のパターンの特性多項式が選択された場合には、3つのイクスクルーシブORゲートのうち少なくとも1つは、図53(B)とは異なるビット間に位置される。イクスクルーシブORゲートの代わりにイクスクルーシブNORゲートを用いた論理も可能である。
図54には、パターン0の特性多項式が選択された場合に、乱数生成回路608の更新コントローラ608aによって実行されるM系列更新処理(M系列乱数生成処理)の手順が示されている。
パターン0の特性多項式が選択された場合のM系列更新処理においては、先ず乱数カウンタ(RAND)の12ビットの値を取得して、全ビットをそれぞれ上位側へ1ビットずつシフトする(ステップS191)。次に、シフトして溢れた最上位のビット11の値を取得し(ステップS192)、該ビット11とステップS191でシフトしたビット10の値の排他的論理和を算出する(ステップS193)。そして、算出した結果をビット11に代入する(ステップS194)。
次に、ステップS191でシフトしたビット11とビット9の値の排他的論理和を算出し(ステップS195)、結果をビット10に代入する(ステップS196)。さらに、ステップS191でシフトしたビット11とビット3の値の排他的論理和を算出し(ステップS197)、結果をビット4に代入する(ステップS199)。その後、ステップS191でシフトしたビット11をビット0に代入して1回の乱数更新処理が終了する。乱数更新コントローラ608aは、上記処理をクロックジェネレータ609からクロックφ1が入力されるごとに実行する。そして、生成された乱数が一巡すると、タップ設定レジスタのタップ値が更新され、特性多項式が変更されて乱数の生成が行なわれる。
本実施形態では、各特性多項式によるランダムな乱数の生成に加えて、タップ設定レジスタのタップ値がランダムに更新されるため、片寄った乱数すなわち片寄った特図変動パターンが出現するのを回避することができる。
更新コントローラ608aには、制御シーケンス(マイクロプログラム)および図53(A)のテーブルデータを記憶するROM、マイクロプログラムの命令コードをデコードする命令デコーダ、次の命令コードを読み出すためのプログラムカウンタ、ビットシフトを行うシフタ、排他的論理和などの論理演算や加減算を行う演算ユニットなどが設けられることにより、上記のような乱数生成処理を更新コントローラ608aによって実行することができるようにされる。つまり、更新コントローラ608a自身が、MPU(マイクロプロセッサ)やDSP(デジタルシグナルプロセッサ)のアーキテクチャに似たようなアーキテクチャを有するように構成される。
次に、本発明の第2の実施例について、図55〜図59を用いて説明する。
第2の実施例は、第1の実施例では遊技制御装置100のCPU内の乱数生成回路608で行なっていた変動パターン選択のための乱数生成処理を、演出制御装置300のCPU311によって行うようにしたものである。
図55(A)には、演出制御装置300の主制御用マイコン(1stCPU)311によって実行されるメイン処理の手順が示されている。
このメイン処理は電源投入により開始され、初めにCPUを初期化する初期化処理(ステップP1)を実行し、続いてVDP(グラフィックプロセッサ)313を初期化する処理(ステップP2)、LED制御回路332,333を初期化する処理(ステップP3)、VDP313内の画像を拡大、縮小処理するためのスケーラ313bを初期化する処理(ステップP4)、音の出力を制御する音源LSI314を初期化する処理(ステップP5)、モータ制御回路334,335を初期化する処理(ステップP6)、VDP313内のビデオRAM313a等描画関連の回路を初期化する処理(ステップP7)を順次行う。
その後、VDP313による表示装置41の画面描画を禁止して(ステップP8)、モータ制御回路が初期化動作中であるか否かの判定を行う(ステップP9)。具体的には、モータの回転軸に設けられているギヤの初期位置を検出するフォトインタラプタ等の信号を監視して、モータが所定の回転角度にあるか否かを検出することで、役物装置の可動部材を初期位置に移動させるための初期化動作中であるか否かを判定する。このステップP9で初期化動作中である(Yes)と判定するとステップP8へ戻って画面描画を禁止する。これにより、表示装置41の画面は消去状態のままとなるので、役物装置に故障があって可動部材を初期位置に移動していないと、遊技店の係員が容易に異常を認識することができる。
一方、ステップP9で初期化動作中でない(No)と判定すると、ステップP10へ移行してVDP313による表示装置41の画面描画を許可する。その後、通常ゲーム処理P11(図55(B))、乱数生成処理P12(図56(A))、初期状態(遊技開始前)から点灯すべきLEDを点灯状態にさせるLED点灯処理(ステップP13)を行う。ステップP13のLED点灯処理の後はステップP11の通常ゲーム処理へ戻り、上記動作を繰り返すループ処理を行う。なお、ステップP11の通常ゲーム処理とステップP12の乱数生成処理の順序は逆であっても良い。
図55(B)には、ステップP11の通常ゲーム処理の詳しい手順が示されている。
この通常ゲーム処理では、電源が投入されているかチェックする電源投入チェック処理P111、遊技制御装置100からのコマンドを受信しているかチェックする受信コマンドチェック処理P112、表示装置41の画面に最初に表示する初期画面を設定する初期画面表示設定処理P113、表示装置41の画面上における表示の態様(演出パターン)を決定する演出パターン決定処理P114(図56(B))、表示装置41の画面上に客待ちデモを表示させる客待ちデモ処理P115、立ち上げ中の音楽(BGM)を徐々に低下させるBGMフェードアウト処理P116を行う。
図56(A)には、図55(A)のステップP12の乱数生成処理の詳しい手順が示されている。
この乱数生成処理では、図53を用いて説明した特性多項式を用いたM系列乱数生成処理と同様な特性多項式を16種類(RAND0〜RAND15と記す)用意し、すべての多項式RAND0〜RAND15による乱数の生成処理を、1ステップずつ順番に実行して16個の乱数をRAM上で生成する。従って、各特性多項式RAND0〜RAND15による乱数生成処理のそれぞれが演出態様を決定する乱数生成手段として機能することとなる。また、図56(A)の乱数生成処理全体が、演出制御手段による制御で用いられる乱数値を生成する演出制御乱数生成手段として機能する。
なお、前記第1実施例では、特性多項式として12ビットの構成のものを使用したが、この第2の実施例においては、16ビットの特性多項式を使用している。従って、生成される乱数は最大16ビットで表わされることとなる。図56(B)に、16種類の特性多項式RAND0〜RAND15の例が示されている。なお、図56(B)の特性多項式は一例であって、これに限定されるものではない。
図57(A)には、図55(B)のステップP114の演出パターン決定処理の詳しい手順が示されている。
演出パターン決定処理においては、先ず背景画像の変更タイミングが到来したか否か判定する(ステップP141)。ここで、変更タイミングでない(ステップP141:No)と判定すると、ステップP143へジャンプする。また、ステップP141で、変更タイミングである(ステップP141:Yes)と判定すると、ステップP142へ進んで背景画像の表示処理を行う。
次のステップP143においては、変動図柄の変更タイミングが到来したか否か判定する。ここで、変更タイミングでない(ステップP143:No)と判定すると、ステップP145へジャンプする。また、ステップP143で、変更タイミングである(ステップP143:Yes)と判定すると、ステップP144へ進んで変動図柄の表示処理を行う。その後、ステップP145において、始動記憶の保留表示(保留数および先読み予告を含む)の変更タイミングが到来したか否か判定する。ここで、変更タイミングでない(ステップP145:No)と判定すると、ステップP146をスキップして当該演出パターン決定処理を終了する。また、ステップP145で、変更タイミングである(ステップP145:Yes)と判定すると、次のステップP146で保留表示処理を行い、当該演出パターン決定処理を終了する。
図57(B)には、図57(A)のステップP142の背景表示処理の詳しい手順が示されている。
背景表示処理においては、図56(A)の乱数生成処理で実行される16種類の特性多項式RAND0〜RAND15を用いた乱数生成のいずれか一つを指定するためのインデックスの値INDEXを計数するカウンタを更新(+1)する(ステップP411)。次に、INDEXの値が上限値(ここでは「15」)以下であるか否か判定する(ステップP412)。ここで、上限値以下である(ステップP412:Yes)と判定すると、ステップP414へジャンプする。また、ステップP142で、上限値以下でない(ステップP412:No)と判定すると、ステップP413へ進んでINDEXに初期値(例えば「0」)をセーブする処理を行う。これにより、INDEXの値は、上限値まで順に+1更新され、上限値を超えると「0」に戻り再び+1更新されることとなる。
次のステップP414においては、INDEXの値iに対応する特性多項式RANDiにより生成された乱数値を取得する。その後、ステップP415で、乱数値に基づいて表示する背景画像を決定し、決定した背景画像の表示を指示する指令信号を2ndCPU(図4参照)に送信するため、送信バッファへの設定を行なって当該背景表示処理を終了する。従って、ステップP411およびP414が、取得毎に複数の乱数生成手段の中から異なる乱数生成手段の乱数値を取得する演出乱数取得手段として機能し、ステップP415が変動表示ゲームにおける演出態様を決定する演出態様を決定する演出態様決定手段として機能することとなる。図57(B)の背景表示処理で送信バッファに設定された指令信号は、逐次、2ndCPU312に送信されるように構成されている。
なお、図57(A)のステップP144の変動表示処理およびステップP146の保留表示処理も、図57(B)に示されている背景表示処理と同様の手順で行われる。図57(B)のステップP414における「背景表示」を、それぞれ「変動表示」または「保留表示」に置き換えるだけでよい。従って、変動表示処理および保留表示処理のフローチャートの図示および説明は省略する。各フローチャートにおけるステップP411およびP414も演出乱数取得手段として機能し、ステップP415は変動表示ゲームにおける演出態様決定手段として機能する。
図58(A)には、図56(B)の特性多項式のうちINDEX0の特性多項式が選択された場合に、演出制御装置300のCPU311によって実行される乱数生成処理の手順が示されている。この処理は、図54を用いて説明した乱数生成回路によるM系列更新処理とほぼ同様である。
INDEX0の特性多項式が選択された場合の乱数生成処理においては、先ず乱数カウンタ(RAND)の16ビットの値を取得して、全ビットをそれぞれ上位側へ1ビットずつシフトする(ステップP291)。次に、シフトして溢れた最上位のビット15の値を取得し(ステップP292)、該ビット15とステップP291でシフトしたビット14の値の排他的論理和を算出する(ステップP293)。そして、算出した結果をビット15に代入する(ステップP294)。
次に、ステップP291でシフトしたビット15とビット11の値の排他的論理和を算出し(ステップP295)、結果をビット12に代入する(ステップP296)。さらに、ステップP291でシフトしたビット15とビット9の値の排他的論理和を算出し(ステップP297)、結果をビット10に代入する(ステップP298)。その後、ステップP291でシフトしたビット15をビット0に代入して(ステップP299)、1回の乱数更新処理が終了する。なお、この更新結果は、RAMに残っている。
図58(B)には、図56(B)の特性多項式のうちINDEX8の特性多項式が選択された場合に、演出制御装置300のCPU311によって実行される乱数生成処理の手順が示されている。この処理は、図58(A)を用いて説明した乱数生成処理とほぼ同様であるので、詳しい説明は省略する。
図59(A)は、図58(A)の特性多項式RAND0の演算を、論理回路として示したものである。同図に示すように、本実施例において使用される特性多項式は、16ビットのシフトレジスタと、最上位ビットからの信号を任意のビット位置にフィードバックして排他的論理和をとった信号をシフトさせるイクスクルーシブORゲートEx−OR1〜3とから構成される。図59(A)に示すパターン0の特性多項式の演算を実行する論理回路においては、イクスクルーシブORゲートは、ビットR9とビットR10との間、ビットR11とビットR12との間、およびビットR14とビットR15との間にそれぞれ配置される。
図59(B)は、図58(B)の特性多項式RAND8の演算を、論理回路として示したものである。同図に示すように、図59(B)に示すINDEX8の特性多項式の演算を実行する論理回路においては、イクスクルーシブORゲートは、ビットR7とビットR8との間、ビットR8とビットR9との間、およびビットR10とビットR11との間にそれぞれ配置される。他のパターンの特性多項式が選択された場合には、3つのイクスクルーシブORゲートのうち少なくとも1つは、図59(A),(B)とは異なるビット間に位置される。イクスクルーシブORゲートの代わりにイクスクルーシブNORゲートを用いた論理も可能である。
上述の説明から、上記実施形態には、変動表示ゲームの実行を制御する遊技制御手段と、前記遊技制御手段から供給される前記変動表示ゲームの演出を指示する演出制御指令に基づいて前記変動表示ゲームの演出を制御する演出制御手段と、前記遊技制御手段による制御で用いられる乱数値を生成する乱数生成手段と、を備えた遊技機であって、
前記乱数生成手段は、前記乱数値を記憶保持する乱数値記憶手段と、前記乱数値の更新範囲を規定する更新範囲情報が記憶される範囲情報記憶手段と、所定の特性多項式に従った演算によって乱数値を更新し、更新後の乱数値が前記更新範囲外の場合には当該更新後の乱数値が前記更新範囲内の値となるまで乱数値の更新を繰り返し行う更新手段と、所定の条件が成立した場合に複数の異なる特性多項式のうち一つの特性多項式を選択して、前記更新手段が使用する新たな特性多項式として設定する多項式設定手段と、を備え、
前記遊技制御手段は、所定の乱数取得条件が発生したことを検出する取得条件検出手段と、前記取得条件検出手段によって前記所定の乱数取得条件の発生が検出された場合に、前記乱数値記憶手段から乱数値を取得する乱数値取得手段と、前記乱数値取得手段によって取得された乱数値に基づいて予め用意されている複数の演出態様の中から前記変動表示ゲームの演出に使用する演出態様を選択し、選択した演出態様に対応する演出制御指令を決定する演出制御指令決定手段と、を備えた発明が含まれることが分かる。
図60には、第2の実施例の変形例が示されている。上記第2の実施例では、図57(A)のステップP144の変動表示処理とステップP146の保留表示処理を、図57(B)に示すステップP142の背景表示処理と同じ手順で行うようにしていたものを、この変形例では、図60(A)〜(C)に示すように、異なる手順で行うようにしたものである。このうち図60(A)の背景表示処理のフローチャートは、図57(B)のフローチャートと同じである。一方、図60(B)の変動表示処理のフローチャートと(C)の保留表示処理のフローチャートは、(A)の背景表示処理のフローチャートと若干異なる。
具体的には、図60(B)の変動表示処理のフローチャートは、16種類の特性多項式RAND0〜RAND15を用いた乱数生成のいずれか一つを指定するためのインデックスの値INDEXを計数するカウンタを更新(+1)する処理(ステップP421)、INDEXの値が上限値以下であるか否か判定する処理(ステップP422)、INDEXに初期値をセーブする処理(ステップP423)までは同じであるが、その後にINDEXの値が背景表示処理のINDEXの値と一致しているか否か判定する処理(ステップP424)を行い、一致しているとき(ステップP424:Yes)のときはステップP421へ戻って再度INDEXの値を更新する点が異なる。ステップP425のINDEXの値に対応する乱数値を取得する処理と、ステップP426の乱数値に基づいて表示する背景画像を決定する処理は、図57(B)の背景表示処理のフローチャートのステップP414,P415と同じである。
また、図60(C)の保留表示処理のフローチャートは、図60(B)の変動表示処理のフローチャートとほぼ同様である。異なるのは、ステップP433でINDEXの値が背景表示処理のINDEXの値および変動表示処理のINDEXの値と一致しているか否か判定し、一致しているとき(ステップP424:Yes)のときはステップP421へ戻って再度INDEXの値を更新する点が異なる。このような処理を行うことによって、図60の変形例を適用した場合には、同一の変動表示ゲーム中に背景表示処理と変動表示処理と保留表示処理で使用する特性多項式を異ならせることができる。その結果、背景表示と変動表示と保留表示との間で何らかの規則性が生じるのを回避することができるようになる。
図61には、第3の実施例が示されている。上記第2の実施例では、図55(A)のメイン処理中の乱数生成処理P12で、図56(A)のように、16種類のすべての特性多項式による乱数生成を毎回行うようにしていたものを、第3の実施例では、図62に示すように、1回の処理では1種類の特性多項式による乱数生成のみを行うようにしたものである。具体的には、先ずRAM内にあるINDEXの値を取得する(ステップP121)。そして、取得したINDEXの値を判定(ステップP122)し、その値に応じて、16種類の特性多項式RAND0〜RAND15による乱数生成処理P123a〜123pのいずれかを実行する。
その後、更新結果(新しい乱数値)を取得した後(ステップP124)、INDEXの値を更新する(ステップP125)。そして、次のステップP126で更新後のINDEXの値が上限値(ここでは「15」)以下であるか否かの判定を行い、上限値以下でない(ステップP126:No)のときはステップP127へ進みINDEXに初期値を設定して当該乱数生成処理を終了する。一方、更新後のINDEXの値が上限値以下(ステップP126:Yes)のときは、ステップP127をスキップして当該乱数生成処理を終了する。従って、図60の乱数生成処理全体が、演出制御手段による制御で用いられる乱数値を生成する演出制御乱数生成手段として機能する。この第3の実施例に従うと、16種類の特性多項式による乱数生成を毎回行う必要がないため、第2の実施例に比べてCPU311の負担を軽減することができるという利点がある。
上述の説明から、上記実施形態には、変動表示ゲームの実行を制御する遊技制御手段と、前記遊技制御手段から供給される前記変動表示ゲームの演出を指示する演出制御指令に基づいて前記変動表示ゲームの演出を制御する演出制御手段と、を備え、前記変動表示ゲームが特定の結果態様を導出した場合に特定の遊技価値を付与可能な遊技機において、
前記演出制御手段は、該演出制御手段による制御で用いられる乱数値を生成する演出制御乱数生成手段と、前記演出制御乱数生成手段によって生成された乱数値を判定して該変動表示ゲームにおける演出態様を決定する演出態様決定手段と、を備え、
前記演出制御乱数生成手段は、それぞれ異なる特性多項式によって乱数値を生成する複数の乱数生成手段を備え、前記複数の乱数生成手段における乱数値の生成をそれぞれ異なるタイミングで実行し、
前記演出態様決定手段は、前記変動表示ゲームの演出を指示する演出制御指令を受信したことに基づいて、前記複数の乱数生成手段のうちの一つの乱数生成手段で生成された乱数値を取得する演出制御乱数取得手段を備え、前記演出制御乱数取得手段によって取得された乱数値に基づき、前記変動表示ゲームにおける演出態様を決定するようにした発明が含まれることが分かる。
図62には、第3の実施例の変形例が示されている。この変形例は、上記第2および第3の実施例では、図55(A)のフローチャートに示すように、通常ゲーム処理P11とは別の処理として行なっていた乱数生成処理P12を、図62(A)のように、メインのフローチャートから除き、通常ゲーム処理P11中に実行される演出パターン決定処理P114中の背景表示処理P142、変動表示処理P144、保留表示処理P146の中でそれぞれ行うようにしたものである。具体的には、背景表示処理では、図62(B)に示すように、先ず図61に示されているような乱数生成処理P12を実行する。その後、更新後の乱数を取得し(ステップP414)、取得した乱数値に基づいて背景表示を決定する(ステップP415)。
以上本発明者によってなされた発明を実施形態に基づき具体的に説明したが、今回開示した実施形態は、全ての点で例示であって制限的なものではない。例えば、前記実施形態では、乱数生成回路608で乱数値が更新されなかった場合にエラーを示す値が設定され更新エラー報知レジスタ608b10や、一周完了報知レジスタ608b6、乱数更新中を報知するレジスタ608b9、スタート値設定レジスタ608b5に次回に設定される値(開始値)が記憶されているか否かを示すスタート値設定ビットやタップ設定ビットを記憶するソフト乱数ステータスレジスタ608b15を別々のレジスタとして設けているが、これらのレジスタを1つのステータスレジスタとして構成するようにしても良い。このようにすれば、レジスタの数を減らすことができる。また、このステータスレジスタには、カウンタモードにおける更新エラーと乱数モードにおける更新エラーとを区別して設定できるようにしてもよい。
また、前記実施形態では、3つの変動パターン乱数を生成する場合について説明したが、生成する変動パターン乱数は1つあるいは2つもしくは4つ以上であっても良い。また、前記実施形態では、特図変動表示ゲームとして特図1の変動表示ゲームと特図2の変動表示ゲームの2種類の変動表示ゲームを実行可能な遊技機を説明したが、1種類の特図変動表示ゲームを実行可能に構成されているものであっても良い。さらに、前記実施形態では、本発明をパチンコ遊技機に適用したものを説明したが、本発明はパチンコ遊技機に限定されず、アレンジボール遊技機、雀球遊技機、及びスロットマシンなどの遊技機にも適用可能である。