以下、本発明の好適な実施の形態を図面に基づいて説明する。
図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当りとなる場合に選択される大当り変動パターンテーブル等が含まれる。さらに、これらのパターンテーブルには、後半変動パターンテーブル、前半変動パターンテーブルが含まれている。
なお、変動パターンテーブルの詳細については、図61〜図64を参照して後述する。
また、リーチ(リーチ状態)とは、表示状態が変化可能な表示装置を有し、該表示装置が時期を異ならせて複数の表示結果を導出表示し、該複数の表示結果が予め定められた特別結果態様となった場合に、遊技状態が遊技者にとって有利な遊技状態(特別遊技状態)となる遊技機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)を順次行う。なお、各乱数更新処理では、上限値がそれぞれ設けられ、上限値に達すると0となり、0から上限値の間で順次更新(+1)する処理が行なわれる。
ここで、「大当り図柄初期値乱数1」は、特図1の大当り停止図柄を決定する乱数の初期値となる乱数、「大当り図柄初期値乱数2」は、特図2の大当り停止図柄を決定する乱数の初期値乱数のことである。また、「当り初期値乱数」は普図変動ゲームの当りを決定する乱数の初期値となる乱数のことである。このように、メイン処理の中で時間が許す限り乱数をインクリメントし続けることによって、乱数のランダム性を高めることができるようにしている。
〔タイマ割込み処理〕
次に、タイマ割込み処理について説明する。
図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の初期値(スタート値)を更新するための処理である。
図17に示すように、乱数更新処理1においては、先ず乱数の更新状態を示すソフト乱数ステータスレジスタの値を読み込む(ステップ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〕
次に、上述のタイマ割込み処理における乱数更新処理2(ステップS46)の詳細について説明する。
乱数更新処理2は、特図1,特図2の変動表示ゲームにおける変動パターンを決定するための変動パターン乱数を更新する処理である。
なお、本実施例においては、変動パターン乱数として1バイトの乱数(変動パターン乱数2、3)と、2バイトの乱数(変動パターン乱数1)があり、図18の乱数更新処理2は両方を更新対象とし、割込みが発生するごとに更新対象を切り替えて処理する。しかも、更新対象の乱数が2バイトの場合には、上位のバイトと下位のバイトに対して異なる割込み時に更新処理を行うようになっている。即ち、メイン処理に対する一の割り込み処理において実行される乱数更新処理2による2バイトの変動パターン乱数1(リーチ変動態様決定用乱数)の更新は、上位1バイト若しくは下位1バイトの何れかについて実行されるように構成されている。
図18に示すように、乱数更新処理2においては、先ず更新すべき複数の乱数のうちいずれの乱数を今回の更新処理の対象とするかを順番に指定するための乱数更新スキャンカウンタを更新する(ステップS601)。次に、乱数更新スキャンカウンタの値に対応するテーブルアドレスを算出する(ステップS602)。そして、算出されたアドレスに基づいて参照したテーブルから乱数の上限判定値を取得する(ステップS603)。このとき参照するテーブルには、乱数の種類ごとに上限値、即ち、乱数が一巡したか否かを判定するための値が格納されている。
続いて、例えば本実施例において遊技用マイコンとして使用しているZ80系のマイコンに設けられているDRAMのリフレッシュ等のため使用されるリフレッシュレジスタ(以下、Rレジスタと称する)のようなランダムな値が設定されるレジスタの値を読み込む(ステップS604)。Rレジスタの値を使用することで、乱数にランダム性を付与することができる。ステップS604の次は、Rレジスタの値をマスクするためのマスク値を取得して、Rレジスタの値をマスクする(ステップS605)。なお、マスク値は、更新対象の乱数によって異なるビット数、例えば、変動パターン乱数1の下位1バイトを更新する場合には、Rレジスタの下位3ビットに、また、変動パターン乱数1の上位1バイトを更新する場合には、Rレジスタの下位4ビットに設定されている。乱数の種類によって上限値が異なるためである。
なお、マスク値として、変動パターン乱数1の下位1バイトを更新する場合には、Rレジスタの下位3ビットを、また、変動パターン乱数1の上位1バイトを更新する場合には、Rレジスタの下位4ビットを例示したが、数値は一例であってこれに限られるものではない。
次に、マスク値によってRレジスタの値をマスクすることによって残った値(以下、これをマスクした値と称する)に「1」を加算したものを加算値算出用更新値とする(ステップS606)。マスクした値に「1」を加算するのは、マスクした値が「0」になる場合があり、「0」を後に加算すると加算する前の値から変化しないので、それを避けるためである。それから、上位1バイトを「0」とし、下位1バイトを上記加算値算出用更新値としたものを加算値とする(ステップS607)。
それから、次のステップS608で、更新する乱数領域(乱数カウンタ)が2バイト乱数の上位1バイトであるかチェックする。ここで、上位1バイトでなければステップS611へジャンプする(ステップS609:No)。一方、乱数領域が2バイト乱数の上位1バイトであるときはステップS610へ進む(ステップS609:Yes)。ステップS610では、上位1バイトを上記加算値算出用更新値、下位1バイトを「0」としたものを加算値として、ステップS611へ進む。
ステップS611では、乱数値の上位1バイトとして「0」を設定する。その後、乱数値の下位1バイトとして、1バイト乱数又は2バイト乱数の下位1バイトをロードする(ステップS612)。そして、更新する乱数が1バイト乱数か否かチェックする(ステップS613)。ここで、更新する乱数が1バイト乱数であるときはステップS616へジャンプする(ステップS614:Yes)。一方、更新する乱数が1バイト乱数でないときはステップS615へ進む(ステップS614:No)。ステップS615では、乱数値の上位1バイトとして2バイト乱数の上位1バイトをロードして、ステップS616へ進む。
ステップS616では、乱数値にステップS607、S610で決定した加算値を加算した値を算出する。さらに、この算出値よりステップS603で取得した上限判定値を差し引いて更新値を求める(ステップS617)。そして、この更新値が「0」よりも小さいか判定する(ステップS618)。このステップで、更新値が「0」よりも小さくなければ(ステップS618;Noなら)ステップS620へジャンプする。一方、更新値が「0」よりも小さいときはステップS619へ進む(ステップS618:Yes)。ステップS619では、ステップS617で更新した更新値にステップS603で取得した上限判定値を加算したものを新たな更新値とし、ステップS620へ進む。
ステップS620では、更新値の下位1バイトを乱数領域の下位側にセーブする。それから、更新する乱数が1バイト乱数か否かチェックする(ステップS621)。ここで、更新する乱数が1バイト乱数であるときはステップS623をスキップして当該乱数更新処理2を終了する(ステップS622:Yes)。一方、更新する乱数が1バイト乱数でないときはステップS623へ進む(ステップS622:No)。ステップS623では、更新値の上位1バイトを乱数領域の上位側にセーブして、当該乱数更新処理2を終了する。
このように、CPU111Aは、特図1,特図2の変動表示ゲームにおける変動パターンを決定するための変動パターン乱数を更新する。また、変動パターンとしては、後述するように、「リーチなし」の変動パターンや、「ノーマルリーチ」、「スペシャル(SP)1−Aリーチ」、「スペシャル(SP)1−Bリーチ」、「スペシャル(SP)2−Aリーチ」、「スペシャル(SP)2−Bリーチ」、「スペシャル(SP)3−Aリーチ」、「スペシャル(SP)3−Bリーチ」等の各種リーチ状態における変動パターン(リーチ変動態様)が規定されている。
従って、CPU111Aは、始動入賞口36や普通変動入賞装置37の始動領域への遊技球の流入に基づいて抽出された各種乱数のうち、リーチ状態におけるリーチ変動態様を決定するためのリーチ変動態様決定用乱数(変動パターン乱数)を更新する乱数更新手段をなす。
〔入賞口スイッチ/エラー監視処理〕
次に、上述のタイマ割込み処理における入賞口スイッチ/エラー監視処理(ステップ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に示すように、特図始動口スイッチ共通処理では、先ず、始動口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;Yes)と判定すると、更新対象の特図保留数(例えば、特図1保留数等)を更新(+1)する処理(ステップA211)を行った後、特図保留数に対応する乱数セーブ領域のアドレスを算出する処理(ステップA212)を行う。
続けて、始動口1スイッチ36a及び始動口2スイッチ37aのうち、監視対象の始動口スイッチ(例えば、始動口1スイッチ36a等)の飾り特図保留数コマンド(MODE)を準備した後(ステップA213)、当該監視対象の始動口スイッチの大当り図柄乱数をロード(大当り図柄乱数を抽出)し(ステップA214)、特図保留数に対応する飾り特図保留数コマンド(ACTION)を準備して(ステップA215)、コマンド設定処理(ステップA216)を行う。
そして、大当り乱数をRWMの乱数セーブ領域にセーブし(ステップA217)、次に、対応する大当り図柄乱数をRWMの乱数セーブ領域にセーブするとともに、その大当り図柄乱数をレジスタに退避する(ステップA218)。次に、対応する変動パターン乱数1をロード(変動パターン乱数1を抽出)し、ロードした値をRWMの乱数セーブ領域にセーブし(ステップA219)、次に、対応する変動パターン乱数2をロード(変動パターン乱数2を抽出)し、ロードした値をRWMの乱数セーブ領域にセーブし(ステップA220)、次に、対応する変動パターン乱数3をロード(変動パターン乱数3を抽出)し、ロードした値をRWMの乱数セーブ領域にセーブする(ステップA221)。
ここで、RWM(RAM111C)は、始動入賞口36や普通変動入賞装置37の始動領域への遊技球の流入に基づいて各種乱数を抽出し、該抽出された各種乱数を始動記憶として記憶可能な始動記憶手段をなす。
続けて、ステップA218にてレジスタに退避した監視対象の始動口スイッチに対応する大当り図柄乱数をロードし、ロードした値を後述の特図保留情報判定処理(ステップA223)にて使用するために準備する(ステップA222)。そして、特図保留情報判定処理(ステップA223)を行って、特図始動口スイッチ共通処理を終了する。
一方、ステップA210にて、特図保留数が上限値未満でない(ステップA210;No)と判定すると、ステップA202に係る始動口スイッチの入力が始動口1スイッチ36aの入力であるか否かをチェックして(ステップA224)、始動口1スイッチ36aの入力である(ステップA225;Yes)と判定すると、飾り特図保留数コマンド(オーバーフローコマンド)を準備し(ステップA226)、コマンド設定処理(ステップA227)を行って、特図始動口スイッチ共通処理を終了する。
一方、ステップA225にて、始動口1スイッチ36aの入力でないと判定された場合にも(ステップA225;No)、特図始動口スイッチ共通処理を終了する。
〔特図保留情報判定処理〕
次に、上述の始動口スイッチ共通処理における特図保留情報判定処理(ステップA223)の詳細について説明する。
特図保留情報判定処理は、対応する始動記憶に基づく特図変動表示ゲームの開始タイミングより前に当該始動記憶に対応した結果関連情報の判定を行う先読み処理である。
図26に示すように、先ず、特図始動口スイッチ共通処理のステップ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に表示される特図保留数を変化させるなどして、その特図変動表示ゲームの開始タイミングより前に遊技者に結果関連情報を報知することが可能となる。
〔カウントスイッチ監視処理〕
次に、上述の特図ゲーム処理におけるカウントスイッチ監視処理の詳細について説明する。
図27に示すように、カウントスイッチ監視処理では、先ず、特別変動入賞装置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)の詳細について説明する。
図28に示すように、特図普段処理では、先ず、第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特図変動表示ゲームの開始時に行う処理であり、具体的には、図29に示すように、先ず、第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特図変動表示ゲームの開始時に行う処理であり、具体的には、図30に示すように、先ず、第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変動開始処理を終了する。
以下に、図29に示す特図1変動開始処理における、大当りフラグ1設定処理(ステップA321)、特図1停止図柄設定処理(ステップA322)、特図情報設定処理(ステップA329)、後半変動パターン設定処理(ステップA330)、変動パターン設定処理(ステップA331)、変動開始情報設定処理(ステップA332)の各々について説明する。
なお、図30に示す特図2変動開始処理における、大当りフラグ2設定処理(ステップA341)、特図2停止図柄設定処理(ステップA342)、特図情報設定処理(ステップA349)、後半変動パターン設定処理(ステップA350)、変動パターン設定処理(ステップA351)、変動開始情報設定処理(ステップA352)の各々は、特図1変動開始処理における、大当りフラグ1設定処理(ステップA321)、特図1停止図柄設定処理(ステップA322)、特図情報設定処理(ステップA329)、後半変動パターン設定処理(ステップA330)、変動パターン設定処理(ステップA331)、変動開始情報設定処理(ステップA332)の各々と略同様であり、その詳細な説明は省略する。
〔大当りフラグ1設定処理〕
次に、上述の特図1変動開始処理における大当りフラグ1設定処理(ステップA321)の詳細について説明する。
図31に示すように、大当りフラグ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に示すように、大当り判定処理では、先ず、大当り判定用の下限判定値を設定する処理(ステップA371)を行う。その後、大当り乱数の値が下限判定値未満であるか否かをチェック、つまり、図31のステップA362で読み込んだ大当り乱数の値が、当該大当り乱数の当り判定値の下限値未満であるかをチェックして(ステップA372)、大当り乱数の値が下限判定値未満でない(ステップA373;No)と判定すると、特図変動表示ゲームにて当り結果となる確率が低確率状態である場合の上限判定値を設定する処理(ステップA374)を行う。
次に、特図変動表示ゲームにて当り結果となる確率が高確率状態(確率変動状態)となっているか否かを判定する処理(ステップA375)を行う。ここで、高確率状態となっている(ステップA375;Yes)と判定すると、特図変動表示ゲームにて当り結果となる確率が高確率状態である場合の上限判定値を設定する処理(ステップA376)を行った後、大当り乱数の値が上限判定値を超えたか否かをチェック、つまり、図31のステップ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に示すように、普図ゲーム処理では、先ず、ゲートスイッチ34aからの入力を監視するゲートスイッチ監視処理(ステップB1)を行う。
なお、ゲートスイッチ監視処理(ステップB1)の詳細については後述する。
次に、始動口2スイッチ37aからの入力を監視する普電入賞スイッチ監視処理(ステップB2)を行う。
なお、普電入賞スイッチ監視処理(ステップB2)の詳細については後述する。
次に、普図ゲーム処理タイマを更新(−1)して、当該ゲーム処理タイマがタイムアップしたか否かをチェックして(ステップB3)、普図ゲーム処理タイマがタイムアップした(ステップB4;Yes)と判定すると、普図ゲーム処理番号に対応する処理に分岐させるために参照する普図ゲームシーケンス分岐テーブルをレジスタに設定する処理(ステップB5)を行って、当該テーブルを用いて普図ゲーム処理番号に対応する処理の分岐先アドレスを取得する処理(ステップB6)を行う。
そして、分岐処理終了後のリターンアドレスをスタック領域に退避させる処理(ステップB7)を行った後、ゲーム処理番号に応じてゲーム分岐処理(ステップB8)を行う。
ステップB8にて、ゲーム処理番号が「0」の場合は、普図変動表示ゲームの変動開始を監視し、普図変動表示ゲームの変動開始の設定や演出の設定や、普図変動中処理を行うために必要な情報の設定等を行う普図普段処理(ステップB9)を行う。
なお、普図普段処理(ステップB9)の詳細については後述する。
また、ステップB8にて、ゲーム処理番号が「1」の場合は、普図表示中処理を行うために必要な情報の設定等を行う普図変動中処理(ステップB10)を行う。
なお、普図変動中処理(ステップB10)の詳細については後述する。
また、ステップB8にて、ゲーム処理番号が「2」の場合は、普図変動表示ゲームの結果が当りであれば、普通変動入賞装置37がサポート中であるか否かに応じた普電開放時間の設定や、普図当り中処理を行うために必要な情報の設定等を行う普図表示中処理(ステップB11)を行う。
なお、普図表示中処理(ステップB11)の詳細については後述する。
また、ステップB8にて、ゲーム処理番号が「3」の場合は、普図当り中処理の継続、或いは普電残存球処理を行うために必要な情報の設定等を行う普図当り中処理(ステップB12)を行う。
なお、普図当り中処理(ステップB12)の詳細については後述する。
また、ステップB8にて、ゲーム処理番号が「4」の場合は、普図当り終了処理を行うために必要な情報の設定等を行う普電残存球処理(ステップB13)を行う。
なお、普電残存球処理(ステップB13)の詳細については後述する。
また、ステップB8にて、ゲーム処理番号が「5」の場合は、普図普段処理(ステップB9)を行うために必要な情報の設定等を行う普図当り終了処理(ステップB14)を行う。
なお、普図当り終了処理(ステップB14)の詳細については後述する。
その後、分岐処理にて準備したテーブルの各データをRWMの作業領域にセーブする(ステップB15)。
そして、普図表示器53による普通図柄の変動を制御するための各種テーブルを準備した後(ステップB16)、普図表示器53による普通図柄の変動の制御に係る図柄変動制御処理(ステップB17)を行って、普図ゲーム処理を終了する。
一方、ステップB4にて、普図ゲーム処理タイマがタイムアップしていない(ステップB4;No)と判定すると、処理をステップB16に移行して、それ以降の処理を行う。
〔ゲートスイッチ監視処理〕
次に、上述の普図ゲーム処理におけるゲートスイッチ監視処理の詳細について説明する。
図48に示すように、ゲートスイッチ監視処理では、先ず、ゲートスイッチ34aに入力があるか否かをチェックする(ステップB101)。そして、ゲートスイッチ34aに入力があると(ステップB102;Yes)判定すると、普図保留数を取得して当該普図保留数が上限値未満か否かをチェックして(ステップB103)、普図保留数が上限値未満である(ステップB104;Yes)と判定すると、普図保留数を更新(+1)する処理(ステップB105)を行う。
その後、更新後の普図保留数に対応する乱数セーブ領域のアドレスを算出する処理(ステップB106)を行った後、取得した当り乱数をRWMの乱数セーブ領域にセーブする処理(ステップB107)を行って、ゲートスイッチ監視処理を終了する。
また、ステップB102にて、ゲートスイッチ34aに入力がないと判定されるか(ステップB102;No)、或いは、ステップB104にて、普図保留数が上限値未満でないと判定された場合にも(ステップB104;No)ゲートスイッチ監視処理を終了する。
〔普電入賞スイッチ監視処理〕
次に、上述の普図ゲーム処理における普電入賞スイッチ監視処理の詳細について説明する。
図49に示すように、普電入賞スイッチ監視処理では、先ず、普図変動表示ゲームが当り状態となって普通変動入賞装置37が所定回数(例えば、3回)の開放動作を実行中であるか(普図当り中か)否かをチェックする(ステップB121)。そして、普図当り中である(ステップB122;Yes)と判定すると、始動口2スイッチ37aに入力があるか否かをチェックして(ステップB123)、始動口2スイッチ37aに入力がある(ステップB124;Yes)と判定すると、普電カウンタのカウント数を更新(+1)する処理(ステップB125)を行う。
次に、更新後の普電カウンタのカウント数が上限値(例えば、9)に達したか否かをチェックして(ステップB126)、カウント数が上限値に達した(ステップB127;Yes)と判定すると、普図当り中処理制御ポインタに当り終了の値をセーブする(ステップB128)。その後、普図ゲーム処理タイマをクリアして(ステップB129)、普電入賞スイッチ監視処理を終了する。
即ち、普図の当り状態中に上限値以上の普電入賞があった場合は、その時点で普図当り中処理制御ポインタに当り終了を設定し、以下に説明する普図当り中処理で普図の当り状態が途中で終了するようにする。
また、ステップB122にて、普図当り中でないと判定されるか(ステップB122;No)、或いは、ステップB124にて、始動口2スイッチ37aに入力がないと判定されるか(ステップB124;No)、或いは、ステップB127にて、カウント数が上限値に達していないと判定された場合にも(ステップB127;No)、普電入賞スイッチ監視処理を終了する。
〔普図普段処理〕
次に、上述の普図ゲーム処理における普図普段処理の詳細について説明する。
図50に示すように、普図普段処理では、先ず、普図普段処理に移行するためのテーブルを準備する処理(ステップB131)、具体的には、当該テーブルに、普図普段処理に係る処理番号「0」、普通変動入賞装置37の不正監視期間を規定するフラグ(普図不正監視情報)等を設定する処理を行う。
次に、普図保留数が0であるか否かをチェックして(ステップB132)、普図保留数が0である(ステップB133;Yes)と判定すると、普図普段処理を終了する。
一方、ステップB133にて、普図保留数が0でない(ステップB133;No)と判定すると、当りフラグにはずれ情報をセーブした後(ステップB134)、普図停止図柄にはずれ時の停止図柄番号を設定する処理(ステップB135)を行う。
次に、普通変動入賞装置37がサポート中、即ち、普図変動表示ゲームにて当り結果となる確率が通常よりも高くされた高確率状態となっているか否かを判定する処理(ステップB136)を行う。
ここで、普通変動入賞装置37がサポート中でない(ステップB136;No)と判定すると、普図変動表示ゲームにて当り結果となる確率が高確率状態となっていないことから、RWMの乱数セーブ領域から当り乱数をロードして準備し(ステップB137)、普通変動入賞装置37のサポートがない場合の判定値を設定する処理(ステップB138)を行う。
その後、当り乱数の値が判定値と一致しているか否かをチェックして(ステップB139)、当り乱数の値が判定値と一致していない(ステップB140;No)と判定すると、乱数セーブ領域を0クリアする処理(ステップB141)を行う。
一方、ステップB140にて、当り乱数の値が判定値と一致している(ステップB140;Yes)と判定すると、当りフラグに当り情報をセーブした後(ステップB142)、普図停止図柄に当り時の停止図柄番号を設定する処理(ステップB143)を行う。その後、処理をステップB141に移行して、乱数セーブ領域を0クリアする処理(ステップB141)を行う。
また、ステップB136にて、普通変動入賞装置37がサポート中である(ステップB136;Yes)と判定すると、普図変動表示ゲームにて当り結果となる確率が高確率状態となっていることから、RWMの乱数セーブ領域から当り乱数をロードして準備し(ステップB144)、普通変動入賞装置37のサポートがある場合の下限判定値を設定する処理(ステップB145)を行う。
その後、当り乱数の値が下限判定値未満であるか否かをチェックして(ステップB146)、当り乱数の値が下限判定値未満でない(ステップB147;No)と判定すると、普通変動入賞装置37のサポートがある場合の上限判定値を設定する処理(ステップB148)を行う。
そして、当り乱数の値が上限判定値より大きいか否かをチェックして(ステップB149)、当り乱数の値が上限判定値より大きくない(ステップB150;No)と判定すると、処理をステップB142に移行して、当りフラグに当り情報をセーブした後(ステップB142)、それ以降の処理を行う。
また、ステップB147にて、当り乱数の値が下限判定値未満であると判定されるか(ステップB147;Yes)、或いは、ステップB150にて、当り乱数の値が上限判定値より大きいと判定された場合にも(ステップB150;Yes)、処理をステップB141に移行して、乱数セーブ領域を0クリアする処理(ステップB141)を行う。
その後、普図停止図柄に停止図柄番号をセーブした後(ステップB151)、普図停止図柄番号に対応する試験信号をセーブする(ステップB152)。
続けて、当り乱数セーブ領域をシフトする処理(ステップB153)を行って、シフト後の空き領域をクリアする処理(ステップB154)を行った後、普図保留数を更新(−1)する処理(ステップB155)を行う。
即ち、最も古い普図保留1に関する普図変動表示ゲームが実行されることに伴い、普図保留1以降に保留となっている普図保留2〜4の順位を1つずつ繰り上げる処理を行う。この処理により、当り乱数セーブ領域の普図保留2用から普図保留4用の値(例えば、当り乱数)が、当り乱数セーブ領域の普図保留1用から普図保留3用に移動することとなる。そして、当り乱数セーブ領域の普図保留4用の値がクリアされて、普図保留数が1デクリメントされる。
次に、普通変動入賞装置37のサポートがない場合の普図の変動時間(例えば、10秒等)を設定する処理(ステップB156)を行った後、普通変動入賞装置37がサポート中であるか否かを判定する処理(ステップB157)を行う。
ここで、普通変動入賞装置37がサポート中である(ステップB157;Yes)と判定すると、普通変動入賞装置37のサポートがある場合の普図の変動時間(例えば、1秒等)を設定する処理(ステップB158)を行う。
そして、ステップB158にて設定された普通変動入賞装置37のサポートがある場合の普図の変動時間を普図ゲーム処理タイマにセーブする(ステップB159)。
また、ステップB157にて、普通変動入賞装置37がサポート中でない(ステップB157;No)と判定した場合には、ステップB158をスキップして、ステップB156にて設定された普通変動入賞装置37のサポートがない場合の普図の変動時間を普図ゲーム処理タイマにセーブする(ステップB159)。
その後、普図変動中処理に移行するためのテーブルを準備する処理(ステップB160)、具体的には、当該テーブルに、普図表示中処理に係る処理番号「1」、普図の変動中に係る試験信号、普図表示器53における普図変動表示ゲームの制御用の情報(例えば、普図表示器53の変動中に係るフラグ、普図表示器53の点滅の周期のタイマの初期値など)等を設定する処理を行って、普図普段処理を終了する。
〔普図変動中処理〕
次に、上述の普図ゲーム処理における普図変動中処理の詳細について説明する。
図51に示すように、普図変動中処理では、普図表示中処理に移行するためのテーブルを準備する処理(ステップB171)、具体的には、当該テーブルに、普図表示中処理に係る処理番号「2」、普図表示器53における普図の停止表示時間(例えば、0.6秒等)を制御する信号、普図の変動停止に係る試験信号、普図表示器53における普図変動表示ゲームの制御用の情報(例えば、普図表示器53の変動停止に係るフラグ等)等を設定する処理を行って、普図変動中処理を終了する。
〔普図表示中処理〕
次に、上述の普図ゲーム処理における普図表示中処理の詳細について説明する。
図52に示すように、普図表示中処理では、先ず、普図普段処理にて設定された当りフラグをロードして(ステップB181)、RWMの当りフラグ領域をクリアする処理(ステップB182)を行う。
次に、ロードされた当りフラグが当りか否かをチェックして(ステップB183)、当りフラグが当りでない(ステップB184;No)と判定すると、普図普段処理に移行するためのテーブルを準備する処理(ステップB185)、具体的には、当該テーブルに、普図普段処理に係る処理番号「0」、普通変動入賞装置37の不正監視期間を規定するフラグ(普図不正監視情報)等を設定する処理を行って、普図表示中処理を終了する。
一方、ステップB184にて、当りフラグが当りである(ステップB184;Yes)と判定すると、普通変動入賞装置37がサポート中でない、即ち、普通変動入賞装置37の開放延長機能が作動していない場合の普電開放時間(例えば、0.3秒)を設定する処理(ステップB186)を行った後、普通変動入賞装置37がサポート中でない場合の当り開始ポインタを設定する処理(ステップB187)を行う。即ち、普通変動入賞装置37がサポート中でない場合には、普通変動入賞装置37の開放回数が1回となるように当り開始ポインタ(例えば、当り開始ポインタ「4」等)を設定する。
その後、普通変動入賞装置37がサポート中であるか否かを判定する処理(ステップB188)を行う。
ここで、普通変動入賞装置37がサポート中である(ステップB188;Yes)と判定すると、普通変動入賞装置37がサポート中である場合の普電開放時間(例えば、1.7秒)を設定する処理(ステップB189)を行った後、普通変動入賞装置37がサポート中である場合の当り開始ポインタを設定する処理(ステップB190)を行う。即ち、普通変動入賞装置37がサポート中である場合には、普通変動入賞装置37の開放回数が2回以上の複数回となるように当り開始ポインタ(例えば、当り開始ポインタ「0」〜「4」等)を設定する。
続けて、普図当り中処理制御ポインタに当り開始の値(例えば、「0」〜「4」等)をセーブする(ステップB191)。
また、ステップB188にて、普通変動入賞装置37がサポート中でないと判定された場合にも(ステップB188;No)、処理をステップB191に移行して、それ以降の処理を行う。
次に、ステップB186、或いは、ステップB189にて設定された普電開放時間(例えば、0.3秒や1.7秒等)を普図ゲーム処理タイマにセーブした後(ステップB192)、普図当り中処理に移行するためのテーブルを準備する処理(ステップB193)、具体的には、当該テーブルに、普通変動入賞装置37の開放を制御する信号、普図当り中処理に係る処理番号「3」、普図の当り中で普通変動入賞装置37の作動中に係る試験信号、普通変動入賞装置37を開放するための普電ソレノイド37cの駆動に係る制御信号、普通変動入賞装置37への入賞数のクリアに係る信号、普電不正監視期間における普通変動入賞装置37への入賞数のクリアに係る信号、普通変動入賞装置37の不正監視期間外を規定するフラグ(普図不正監視情報)等を設定する処理を行って、普図表示中処理を終了する。
〔普図当り中処理〕
次に、上述の普図ゲーム処理における普図当り中処理の詳細について説明する。
図53に示すように、普図当り中処理では、先ず、普図当り中処理制御ポインタをロードした後(ステップB201)、ロードされた普図当り中処理制御ポインタが当り終了の値(例えば、「4」等)であるか否かをチェックして(ステップB202)、当り終了の値でない(ステップB203;No)と判定すると、普図当り中処理制御ポインタを更新(+1)する処理(ステップB204)を行う。
次に、当り中処理設定アドレステーブルを設定する処理(ステップB205)を行う。
また、ステップB203にて、当り終了の値であると判定された場合には(ステップB203;Yes)、ステップB204における普図当り中処理制御ポインタを更新(+1)する処理を行わずに、処理をステップB205に移行して、それ以降の処理を行う。
その後、制御ポインタに対応する普電作動移行設定テーブルのアドレスを取得する処理(ステップB206)を行って、普図当り中処理を終了する。
即ち、普通変動入賞装置37の所定回数(例えば、1回若しくは3回)の開放を制御するため、例えば、制御ポインタが「0」若しくは「2」の場合には、普電作動移行設定テーブルに、普通変動入賞装置37の開放後の閉塞時間(例えば、0.8秒等)を制御する信号、普通変動入賞装置37を閉塞するための普電ソレノイド37cの駆動に係る制御信号等を設定する一方で、制御ポインタが「1」若しくは「3」の場合には、普電作動移行設定テーブルに、普通変動入賞装置37の開放時間(例えば、0.3秒若しくは1.7秒等)を制御する信号、普通変動入賞装置37を開放するための普電ソレノイド37cの駆動に係る制御信号等を設定し、制御ポインタが「4」の場合には、普通変動入賞装置の開放制御を終了して普電残存球処理(ステップB13)を行うために必要な情報等の設定を行う。
〔普電残存球処理〕
次に、上述の普図ゲーム処理における普電残存球処理の詳細について説明する。
図54に示すように、普電残存球処理では、普図当り終了処理に移行するためのテーブルを準備する処理(ステップB211)、具体的には、当該テーブルに、普図当り終了処理に係る処理番号「5」、普図の当り中で普通変動入賞装置37の作動終了に係る試験信号、普通変動入賞装置37への入賞数のクリアに係る信号、普図当り中処理制御ポインタのクリアに係る信号等を設定する処理を行って、普電残存球処理を終了する。
〔普図当り終了処理〕
次に、上述の普図ゲーム処理における普図当り終了処理の詳細について説明する。
図55に示すように、普図当り終了処理では、普図普段処理に移行するためのテーブルを準備する処理(ステップB221)、具体的には、当該テーブルに、普図普段処理に係る処理番号「0」、試験信号領域のクリアに係る信号、普通変動入賞装置37の不正監視期間を規定するフラグ(普図不正監視情報)等を設定する処理を行って、普図当り終了処理を終了する。
〔セグメントLED編集処理〕
次に、上述のタイマ割込み処理におけるセグメントLED編集処理(ステップS50)の詳細について説明する。
セグメントLED編集処理では、一括表示装置50に設けられた特図1保留表示器54、特図2保留表示器55、普図保留表示器56、第1遊技状態表示部57、第2遊技状態表示部60、エラー表示部58、ラウンド表示部59(図5(a)参照)を構成するセグメントLEDの駆動に関する設定等を行う。
図56に示すように、セグメントLED編集処理では、先ず、点滅制御ポインタに点灯ポインタを設定した後(ステップC101)、表示制御タイマを更新(+1)する処理(ステップC102)を行う。
その後、表示制御タイマが出力ONタイミングであるか否かをチェックして(ステップC103)、出力ONタイミングでない(ステップC104;No)と判定すると、点滅制御ポインタに消灯ポインタを設定する処理(ステップC105)を行った後、処理をステップC106に移行する。一方、ステップC104にて、出力ONタイミングである(ステップC104;Yes)と判定すると、ステップC105をスキップして処理をステップC106に移行する。
ここで、出力ONタイミングであるか否かの判定とは、特定のビットの状態を監視し、この監視するビットが「1」であれば出力ONタイミングであると判定する一方、監視するビットが「0」であれば出力ONタイミングでないと判定するものである。
そして、ステップC106では、普図保留数と、ステップC101若しくはステップC105にて設定された点滅制御ポインタに対応する表示データを取得した後(ステップC106)、取得した表示データを普図保留表示器56(図5(a)参照)のセグメント領域にセーブする(ステップC107)。
その後、特図1保留数に対応する表示データを取得した後(ステップC108)、取得した表示データを特図1保留表示器54(図5(a)参照)のセグメント領域にセーブする(ステップC109)。
続けて、特図2保留数に対応する表示データを取得した後(ステップC110)、取得した表示データを特図2保留表示器55(図5(a)参照)のセグメント領域にセーブする(ステップC111)。
次に、ラウンドLEDポインタに対応する表示データを取得した後(ステップC112)、取得した表示データをラウンド表示部59(図5(a)参照)のセグメント領域にセーブする(ステップC113)。
続けて、遊技状態表示番号に対応する表示データを取得した後(ステップC114)、取得した表示データを第1遊技状態表示部57若しくは第2遊技状態表示部60(図5(a)参照)のセグメント領域にセーブする(ステップC115)。
次に、停電復旧時に大当りの確率状態が高確率状態となっていることの報知に係る高確率報知フラグをチェックして(ステップC116)、高確率を報知するタイミングでない(ステップC117;No)と判定すると、高確率報知LEDのOFFデータをエラー表示部58(図5(a)参照)のセグメント領域にセーブして(ステップC118)、セグメントLED編集処理を終了する。
また、ステップC117にて、高確率を報知するタイミングである(ステップC117;Yes)と判定すると、ステップC118をスキップして、セグメントLED編集処理を終了する。
〔磁石不正監視処理〕
次に、上述のタイマ割込み処理における磁石不正監視処理(ステップS51)の詳細について説明する。
磁石不正監視処理では、磁気センサスイッチ61からの検出信号をチェックして異常がないか判定して不正報知の開始や終了の設定等を行う。
図57に示すように、磁石不正監視処理では、先ず、磁気センサスイッチ61から出力されて第2入力ポート122(入力ポート2)に取り込まれる磁石センサ検出信号ビットをチェックして(ステップC121)、磁石センサ検出信号の入力がない(ステップC122;No)と判定すると、磁石不正監視タイマをクリアする(ステップC123)。
その後、磁石不正の報知時間を規定する報知タイマを更新(−1)した後、当該タイマがタイムアップしたか否かをチェックする(ステップC124)。この報知タイマがタイムアップしたか否かの判定(ステップC124)において、タイムアップした(ステップC124;Yes)と判定された場合には、磁石不正報知終了コマンド(ACTION)を準備して、不正解除フラグをセットする処理(ステップC133)を行った後、処理をステップC131に移行して、以降の処理を行う。この場合、不正が発生していない正常な状態であるため不正の報知は行われていない。すなわち、報知タイマが常にタイムアップした状態である。
ステップC131にて、磁石不正監視領域を準備した後(ステップC131)、入力信号に変化が生じていないことから、ステップC132では、一旦設定されたステータスの更新は行われない。
一方、磁石を用いた不正が行われ、ステップC122にて、磁石センサ検出信号の入力がある(ステップC122;Yes)と判定すると、磁石不正監視タイマを更新(+1)した後、当該タイマがタイムアップしたか否かをチェックして(ステップC126)、タイムアップしていない(ステップC127;No)と判定すると、処理をステップC124に移行して、それ以降の処理を行う。
そして、磁石センサ検出信号の入力が一定期間、即ち、所定回数(例えば、8割込み)連続して行われることで、ステップC127にて、磁石不正監視タイマがタイムアップした(ステップC127;Yes)と判定すると、発生確定時監視タイマ初期値を磁石不正監視タイマ領域にセーブした後(ステップC128)、報知タイマ初期値を報知タイマ領域にセーブする(ステップC129)。
続けて、磁石不正報知コマンド(ACTION)を準備するとともに、不正発生フラグをセットする処理(ステップC130)を行う。その後、磁石不正監視領域を準備した後(ステップC131)、入力信号の変化に応じて状態を判定してコマンドやフラグの更新を行うステータス更新処理(ステップC132)を行って、磁石不正監視処理を終了する。
即ち、このステータス更新処理では、磁石不正報知コマンドや不正発生フラグの設定を行うようになっているが、ステップC127にて、磁石不正監視タイマがタイムアップした(ステップC127;Yes)と判定し続けている限り、入力信号に変化が生じないため、一旦設定されたステータスの更新は行われない。
そして、磁石を用いた不正が停止し、磁石センサ検出信号の入力が一定期間、即ち、所定回数(例えば、8割込み)連続して行われなかった場合には、ステップC127にて、磁石不正監視タイマがタイムアップしていない(ステップC127;No)と判定された後、処理をステップC124に移行して、それ以降の処理を行う。
即ち、ステップC124にて、磁石不正の報知時間を規定する報知タイマを更新(−1)した後、当該タイマがタイムアップしたか否かをチェックして(ステップC124)、タイムアップしていない(ステップC125;No)と判定すると、磁石不正監視処理を終了する。
一方、磁石不正に関する報知が所定時間行われ、ステップC125にて、報知タイマがタイムアップした(ステップC125;Yes)と判定すると、磁石不正報知終了コマンド(ACTION)を準備するとともに、不正報知解除フラグをセットする処理(ステップC133)を行った後、処理をステップC131に移行して、それ以降の処理を行う。
具体的には、ステップC131にて、磁石不正監視領域を準備した後(ステップC131)、ステップC132にて、入力信号に変化が生じていることから、磁石不正報知終了コマンドや不正報知解除フラグを設定するステータス更新処理(ステップC132)を行う。
〔外部情報編集処理〕
次に、上述のタイマ割込み処理における外部情報編集処理(ステップS52)の詳細について説明する。
外部情報編集処理では、入賞口スイッチ/エラー監視処理(ステップS47)や磁石不正監視処理(ステップS51)の監視結果に基づいて、情報収集端末や遊技場内部管理装置等の外部装置や試射試験装置に出力する情報を作成して出力バッファにセットする処理等を行う。
図58に示すように、外部情報編集処理では、先ず、外部装置用のセキュリティ信号をOFFに設定した後(ステップC141)、外部装置用の扉・枠開放信号をOFFに設定し(ステップC142)、続けて、試射試験装置用の遊技機エラー状態信号をOFFに設定する処理(ステップC143)を行う。
次に、前枠開放監視領域のステータスがエラー発生中であるか否かをチェックして(ステップC144)、エラー発生中でない(ステップC145;No)と判定すると、遊技枠開放監視領域のステータスがエラー発生中であるか否かをチェックする(ステップC146)。
ここで、エラー発生中である(ステップC147;Yes)と判定すると、扉・枠開放信号をONに設定した後(ステップC148)、遊技機エラー状態信号をONに設定する処理(ステップC149)を行う。
また、ステップC145にて、エラー発生中であると判定した場合にも(ステップC145;Yes)、処理をステップC148に移行して、それ以降の処理を行う。
その後、セキュリティ信号制御タイマを更新(−1)した後、当該タイマがタイムアップしたか否かをチェックする(ステップC150)。また、ステップC147にて、エラー発生中でないと判定した場合にも(ステップC147;No)、処理をステップC150に移行して、セキュリティ信号制御タイマがタイムアップしたか否かをチェックする(ステップC150)。
そして、ステップC151にて、タイムアップしていない(ステップC151;No)と判定すると、セキュリティ信号をONに設定する処理(ステップC152)を行う。
一方、ステップC151にて、タイムアップしたと判定した場合には(ステップC151;Yes)、ステップC152をスキップして処理をステップC153に移行する。
そして、ステップC153では、磁石不正監視領域のステータスがエラー発生中であるか否かをチェックして(ステップC153)、エラー発生中でない(ステップC154;No)と判定すると、大入賞口不正入賞監視領域のステータスがエラー発生中であるか否かをチェックする(ステップC155)。
ここで、エラー発生中でない(ステップC156;No)と判定すると、普電不正入賞監視領域のステータスがエラー発生中であるか否かをチェックする(ステップC157)。
そして、エラー発生中である(ステップC158;Yes)と判定すると、セキュリティ信号をONに設定した後(ステップC159)、遊技機エラー状態信号をONに設定する処理(ステップC160)を行う。
また、ステップC154にて、エラー発生中であると判定するか(ステップC154;Yes)、或いは、ステップC156にて、エラー発生中であると判定した場合にも(ステップC156;Yes)、処理をステップC159に移行して、それ以降の処理を行う。
次に、ON若しくはOFFに設定されたセキュリティ信号をRWMの外部情報出力データ領域にセーブした後(ステップC161)、ON若しくはOFFに設定された扉・枠開放信号をRWMの外部情報出力データ領域にセーブし(ステップC162)、続けて、ON若しくはOFFに設定された遊技機エラー状態信号をRWMの試験信号出力データ領域にセーブする処理(ステップC163)を行う。
また、ステップC158にて、エラー発生中でないと判定した場合にも(ステップC158;No)、処理をステップC161に移行して、それ以降の処理を行う。
その後、始動口の入賞信号を編集する始動口信号編集処理(ステップC164)を行う。
なお、始動口信号編集処理(ステップC164)の詳細については後述する。
次に、図柄確定回数信号をOFFに設定した後(ステップC165)、図柄確定回数信号制御タイマを更新(−1)した後、当該タイマがタイムアップしたか否かをチェックして(ステップC166)、タイムアップしていない(ステップC167;No)と判定すると、図柄確定回数信号をONに設定する処理(ステップC168)を行う。
その後、ステップC168にてONに設定されたセキュリティ信号をRWMの外部情報出力データ領域にセーブする処理(ステップC169)を行って、外部情報編集処理を終了する。
一方、ステップC167にて、図柄確定回数信号制御タイマがタイムアップしたと判定された場合には(ステップC167;Yes)、ステップC168をスキップして、OFFに設定されているセキュリティ信号をRWMの外部情報出力データ領域にセーブする処理(ステップC169)を行って、外部情報編集処理を終了する。
〔始動口信号編集処理〕
次に、上述の外部情報編集処理における始動口信号編集処理(ステップC164)の詳細について説明する。
始動口信号編集処理は、始動口1スイッチ36aや始動口2スイッチ37aの入力があった場合に、各々の入力について共通して行われる処理である。
図59に示すように、始動口信号編集処理では、先ず、外部装置用の始動口信号をOFFに設定した後(ステップC171)、始動口信号出力制御タイマを更新(−1)する処理(ステップC172)を行う。なお、始動口信号出力制御タイマの最小値は、0に設定されている。
その後、タイマ割込みが行われる毎に所定時間(例えば、4ms)ずつ減算されていく始動口信号出力制御タイマの値が0であるか否かに応じて始動口信号の出力制御中であるか否かをチェックする(ステップC173)。そして、始動口信号の出力制御中でない(ステップC174;No)と判定すると、始動口信号出力回数が0であるか否かをチェックする(ステップC175)。
ここで、始動口信号出力回数が0でない(ステップC176;No)と判定すると、始動口信号出力回数を更新(−1)した後(ステップC177)、始動口信号出力制御タイマにタイマ初期値として、始動口信号のオン状態(例えば、ハイレベル)の時間(例えば、128ms)とオフ状態(例えば、ロウレベル)の時間(例えば、64ms)を加算した時間(例えば、192ms)をセーブする(ステップC178)。
そして、始動口信号をONに設定する処理(ステップC179)を行う。その後、ステップC179にてONに設定されたセキュリティ信号をRWMの外部情報出力データ領域にセーブする処理(ステップC180)を行って、外部情報編集処理を終了する。
一方、ステップC175にて、始動口信号出力回数が0である(ステップC176;Yes)と判定すると、ステップC177〜C179をスキップして、OFFに設定されているセキュリティ信号をRWMの外部情報出力データ領域にセーブする処理(ステップC180)を行って、外部情報編集処理を終了する。
また、ステップC174にて、始動口信号の出力制御中である(即ち、始動口信号出力制御タイマの値が0でない)と判定された場合には(ステップC174;Yes)、始動口信号出力制御タイマの値が所定時間(例えば、64ms)以上であるか否かに応じて始動口信号出力制御タイマが出力ON区間中であるか否かをチェックする(ステップC181)。そして、始動口信号出力制御タイマの出力ON区間中である(ステップC182;Yes)と判定すると、処理をステップC179に移行して、始動口信号をONに設定した後(ステップC179)、それ以降の処理を行う。
一方、ステップC182にて、出力ON区間中でない(ステップC182;No)と判定すると、処理をステップC180に移行して、OFFに設定されているセキュリティ信号をRWMの外部情報出力データ領域にセーブする処理(ステップC180)を行って、外部情報編集処理を終了する。
〔コマンド設定処理〕
次に、上述のタイマ割込み処理中に実行される各コマンド設定処理の詳細について説明する。
図60に示すように、コマンド設定処理では、先ず、バッファの書き込む場所を規定するライトカウンタを更新する処理(ステップC191)を行う。
続けて、ライトカウンタに対応するコマンド送信領域(MODE)、即ち、2バイトのコマンドのうちの上位1バイトのコマンドをセーブする(ステップC192)。その後、ライトカウンタに対応するコマンド送信領域(ACTION)、即ち、2バイトのコマンドのうちの下位1バイトのコマンドをセーブした後(ステップC193)、コマンド設定処理を終了する。
次に、後半変動パターンや前半変動パターンを規定する変動パターンテーブルの振り分けについて図61〜図64を参照して説明する。
〔2バイト振り分け処理〕
先ず、後半変動パターン設定処理(図36参照)中に実行される2バイト振り分け処理について説明する。
2バイト振り分け処理は、変動パターン乱数1に基づいて、はずれ変動パターン選択テーブルや大当り変動パターン選択テーブル等の変動グループ選択テーブルから特図変動表示ゲームの後半変動パターングループを選択するための処理である。
図61に示すように、2バイト振り分け処理では、先ず、後半変動パターン設定処理(ステップA350)にて準備した変動グループ選択テーブル(選択テーブル)の先頭のデータが振り分けなしのコード(即ち、「0」)であるか否かをチェックする(ステップA701)。
ここで、変動グループ選択テーブルは、後述するように、少なくとも一の後半変動パターングループと対応付けて所定の振り分け値を記憶しているが、後半変動パターンが「リーチなし」となる後半変動パターングループのみを規定する変動グループ選択テーブル(例えば、はずれ変動パターン選択テーブルB(図62(b)参照))にあっては、振分けの必要がないため、振り分け値「0」、即ち、振り分けなしのコードが先頭に規定されている。
以下に、変動グループ選択テーブルについて図62(a)〜図62(d)を参照して説明する。
変動グループ選択テーブルとしては、例えば、図62(a)〜図62(d)に示すように、特図変動表示ゲームにて特別結果態様が導出されずはずれとなる場合の特図の変動パターンを規定するはずれ変動パターン選択テーブル(例えば、はずれ変動パターン選択テーブルA、はずれ変動パターン選択テーブルB)や、特図変動表示ゲームにて特別結果態様が導出されて大当りとなる場合の特図の変動パターンを規定する大当り変動パターン選択テーブル(例えば、大当り変動パターン選択テーブルA、大当り変動パターン選択テーブルB)等が挙げられる。
これらはずれ変動パターン選択テーブルや大当り変動パターン選択テーブルは、リーチ発生の有無やリーチ演出の種類等に応じて少なくとも一の後半変動パターングループが規定されている。また、はずれ変動パターン選択テーブルや大当り変動パターン選択テーブルに規定されている少なくとも一の後半変動パターングループの各々は、変動パターン乱数1の振り分けに係る所定の振り分け値と対応付けられており、特別結果態様が導出されて大当りとなる可能性(信頼度)に応じて2バイト振り分け処理にて振り分けられる振り分け数を異ならせている。具体的には、少なくとも一の後半変動パターングループの中で、特別結果態様が導出されて大当りとなる可能性(信頼度)が高い後半変動パターングループほど振り分け数が小さくなるように、少なくとも一の振り分け値が所定の順序で規定されている。
はずれ変動パターン選択テーブルA及びはずれ変動パターン選択テーブルBは、例えば、遊技状態(通常遊技状態、確変状態、時短状態等)に応じて選択される確率が異なっており、確変状態や時短状態では、はずれ変動パターン選択テーブルBが選択される確率が高くなる一方で、通常遊技状態では、はずれ変動パターン選択テーブルAが選択される確率が高くなっている。
具体的には、はずれ変動パターン選択テーブルAは、例えば、図62(a)に示すように、後半変動パターンが、「リーチなし」、「ノーマルリーチ」、「スペシャル(SP)1−Aリーチ」、「スペシャル(SP)1−Bリーチ」、「スペシャル(SP)2−Aリーチ」、「スペシャル(SP)2−Bリーチ」、「スペシャル(SP)3−Aリーチ」や「スペシャル(SP)3−Bリーチ」等の何れかとなる後半変動パターングループを選択するためのテーブルである。
即ち、はずれ変動パターン選択テーブルAは、変動パターン乱数1が「0」〜「44999」の場合に、振り分け数を45000として後半変動パターン「リーチなし」を選択する後半変動パターングループ、変動パターン乱数1が「45000」〜「48457」の場合に、振り分け数を3458として後半変動パターン「ノーマルリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「48458」〜「48958」の場合に、振り分け数を501として後半変動パターン「SP1−Aリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「48959」〜「49033」の場合に、振り分け数を75として後半変動パターン「SP1−Bリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「49034」〜「49670」の場合に、振り分け数を637として後半変動パターン「SP2−Aリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「49671」〜「49770」の場合に、振り分け数を100として後半変動パターン「SP2−Bリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「49771」〜「49976」の場合に、振り分け数を206として後半変動パターン「SP3−Aリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「49977」〜「49999」の場合に、振り分け数を23として後半変動パターン「SP3−Bリーチ」を選択する後半変動パターングループが規定されている。
また、はずれ変動パターン選択テーブルBは、例えば、図62(b)に示すように、後半変動パターンが、必ず「リーチなし」となる後半変動パターングループを選択するためのテーブルである。即ち、はずれ変動パターン選択テーブルBは、変動パターン乱数1が「0」〜「49999」の場合に、振り分け数を50000として後半変動パターン「リーチなし」を選択する後半変動パターングループが規定されている。
大当り変動パターン選択テーブルA及び大当り変動パターン選択テーブルBは、例えば、遊技状態(通常遊技状態、確変状態、時短状態等)に応じて選択される確率が異なっており、確変状態や時短状態では、大当り変動パターン選択テーブルBが選択される確率が高くなる一方で、通常遊技状態では、大当り変動パターン選択テーブルAが選択される確率が高くなっているが、これに限られない。
また、大当り変動パターン選択テーブルAは、例えば、図62(c)に示すように、後半変動パターンが、「ノーマルリーチ」、「スペシャル(SP)1−Aリーチ」、「スペシャル(SP)1−Bリーチ」、「スペシャル(SP)2−Aリーチ」、「スペシャル(SP)2−Bリーチ」、「スペシャル(SP)2−Cリーチ」、「スペシャル(SP)3−Aリーチ」や「スペシャル(SP)3−Bリーチ」等の何れかとなる後半変動パターングループを選択するためのテーブルである。
即ち、大当り変動パターン選択テーブルAは、変動パターン乱数1が「0」〜「22499」の場合に、振り分け数を22500として後半変動パターン「ノーマルリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「22500」〜「36499」の場合に、振り分け数を14000として後半変動パターン「SP1−Aリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「36500」〜「38999」の場合に、振り分け数を2500として後半変動パターン「SP1−Bリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「39000」〜「40499」の場合に、振り分け数を1500として後半変動パターン「SP2−Aリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「40500」〜「41999」の場合に、振り分け数を1500として後半変動パターン「SP2−Bリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「42000」〜「43499」の場合に、振り分け数を1500として後半変動パターン「SP2−Cリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「43500」〜「44999」の場合に、振り分け数を1500として後半変動パターン「SP3−Aリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「45000」〜「49999」の場合に、振り分け数を5000として後半変動パターン「SP3−Bリーチ」を選択する後半変動パターングループが規定されている。
また、大当り変動パターン選択テーブルBは、例えば、図62(d)に示すように、後半変動パターンが、「役物ステップアップ(SU)リーチ」、「チャンス目」、「ノーマルリーチ」、「スペシャル(SP)1−Aリーチ」、「スペシャル(SP)1−Bリーチ」、「スペシャル(SP)2−Aリーチ」、「スペシャル(SP)2−Bリーチ」、「スペシャル(SP)2−Cリーチ」、「スペシャル(SP)3−Aリーチ」や「スペシャル(SP)3−Bリーチ」等の何れかとなる後半変動パターングループを選択するためのテーブルである。
即ち、大当り変動パターン選択テーブルAは、変動パターン乱数1が「0」〜「14999」の場合に、振り分け数を15000として後半変動パターン「役物SUリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「15000」〜「22499」の場合に、振り分け数を7500として後半変動パターン「チャンス目」を選択する後半変動パターングループ、変動パターン乱数1が「22500」〜「23999」の場合に、振り分け数を1500として後半変動パターン「ノーマルリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「24000」〜「28999」の場合に、振り分け数を5000として後半変動パターン「SP1−Aリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「29000」〜「38499」の場合に、振り分け数を9500として後半変動パターン「SP1−Bリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「38500」〜「42499」の場合に、振り分け数を4000として後半変動パターン「SP2−Aリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「42500」〜「44999」の場合に、振り分け数を2500として後半変動パターン「SP2−Bリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「45000」〜「46249」の場合に、振り分け数を1250として後半変動パターン「SP2−Cリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「46250」〜「47499」の場合に、振り分け数を1250として後半変動パターン「SP3−Aリーチ」を選択する後半変動パターングループ、変動パターン乱数1が「47500」〜「49999」の場合に、振り分け数を2500として後半変動パターン「SP3−Bリーチ」を選択する後半変動パターングループが規定されている。
そして、変動グループ選択テーブルの先頭のデータが振り分けなしのコードである(ステップA702;Yes)と判定すると、振り分け結果に対応するデータのアドレスに更新して(ステップA703)、2バイト振り分け処理を終了する。
一方、ステップA702にて、変動グループ選択テーブルの先頭のデータが振り分けなしのコードでない(ステップA702;No)と判定すると、対象の変動パターン乱数(変動パターン乱数1)を選択値としてロードした後(ステップA704)、変動グループ選択テーブルに最初に規定されている一の振り分け値を取得する(ステップA705)。
続けて、ステップA704にてロードされた選択値(変動パターン乱数1の値)からステップA705にて取得された振り分け値を減算して新たな選択値を算出した後(ステップA706)、当該算出された新たな選択値が「0」よりも小さいか否かを判定する(ステップA707)。
ここで、新たな選択値が「0」よりも小さくない(ステップA707;No)と判定すると、次の振り分け値のアドレスに更新した後(ステップA708)、処理をステップA705に移行して、それ以降の処理を行う。
即ち、ステップA705にて、変動グループ選択テーブルに次に規定されている振り分け値を取得した後、ステップA707にて判定済みの新たな選択値を選択値として振り分け値を減算することで新たな選択値を算出する(ステップA706)。そして、算出された新たな選択値が「0」よりも小さいか否かを判定する(ステップA707)。
上記の処理をステップA707にて、新たな選択値が「0」よりも小さい(ステップA707;Yes)と判定するまで実行する。これにより、変動グループ選択テーブルに規定されている少なくとも一の後半変動パターングループの中から何れか一の後半変動パターングループを選択する。
そして、ステップA707にて、新たな選択値が「0」よりも小さい(ステップA707;Yes)と判定すると、処理をステップA703に移行して、振り分け結果に対応するデータのアドレスに更新して(ステップA703)、2バイト振り分け処理を終了する。
このように、変動パターン乱数1(リーチ変動態様決定用乱数)は、特図変動表示ゲームにてリーチ状態を発生させるか否かの決定、及び、当該リーチ状態が発生する場合の特図変動表示ゲームにおけるリーチ変動態様の決定に係るものである。
また、はずれ変動パターン選択テーブルや大当り変動パターン選択テーブル等の変動グループ選択テーブルは、特図変動表示ゲームにおけるリーチ状態の発生の有無や当該リーチ状態が発生する場合の特図変動表示ゲームにおけるリーチの種類(リーチ変動態様)に応じて、複数種類の後半変動パターングループが規定されており、当該変動グループ選択テーブルを記憶するROM111Bは、特図変動表示ゲームにおける第1特図、第2特図(識別情報)の変動態様として、リーチ状態の発生しないリーチなし変動態様並びに複数種類のリーチ変動態様の各々の設定に係る複数の変動振り分け情報(後半変動パターングループ)とそれぞれの振り分け値とを所定の順序で対応付けて記憶する変動振り分け情報記憶手段をなす。
また、CPU111Aは、変動振り分け情報設定手段として、変動パターン乱数1(リーチ変動態様決定用乱数)に基づいて、変動振り分け情報記憶手段としてのROM111Bに記憶されている複数の後半変動パターングループ(変動振り分け情報)のうち、何れか一の後半変動パターングループを設定する。
具体的には、CPU111Aは、選択値算出手段として、ROM111Bの変動グループ選択テーブルに最初に記憶されている振り分け値及び変動パターン乱数1に基づいて、即ち、変動パターン乱数1から振り分け値を減算して、後半変動パターングループの選択に係る選択値を算出する。そして、CPU111Aは、選択値判定手段として、算出された選択値が所定値「0」未満であるか否かを判定する。
ここで、選択値判定手段としてのCPU111Aにより選択値が所定値「0」未満であると判定されると、複数の後半変動パターングループのうち、当該判定に係る振り分け値と対応付けて変動グループ選択テーブルに記憶されている後半変動パターングループを設定する。
一方、選択値判定手段としてのCPU111Aにより選択値が所定値「0」未満でないと判定されると、選択値算出手段としてのCPU111Aは、当該判定に係る振り分け値の次にROM111Bの変動グループ選択テーブルに記憶されている振り分け値及び当該判定に係る選択値に基づいて、新たな選択値を算出する。そして、選択値判定手段としてのCPU111Aは、算出された新たな選択値が所定値「0」未満であるか否かを判定する。
そして、CPU111Aは、選択値算出手段としての新たな選択値の算出処理及び選択値判定手段としての判定処理を、新たな選択値が所定値「0」未満であると判定されるまで繰り返していくことで、複数の後半変動パターングループのうち、何れか一の後半変動パターングループを設定する。
ここで、乱数更新処理2による変動パターン乱数1の更新について図63を参照して詳細に説明する。
なお、以下の説明にあっては、変動パターン乱数1の一例を二進数(半角で表す数字)及び十進数(全角で表す数字)の両方の値で表して説明するものとする。また、変動パターン乱数1の二進数の値は、上位1バイトと下位1バイトの間を区切って表している。さらに、数値の直前に二進数との断り書きがない限り、その数値は十進数で表したものである。
変動パターン乱数1の更新は、先ず、一のタイマ割込みのタイミングにて下位1バイトについて行われ、次のタイマ割込みのタイミングにて上位1バイトについて行われる。
その後、次のタイマ割込みのタイミングにて変動パターン乱数2の更新が行われ、さらに、その次のタイマ割込みのタイミングにて変動パターン乱数3の更新が行われた後、変動パターン乱数1の下位1バイトの更新が行われる。
つまり、変動パターン乱数1の下位1バイト、変動パターン乱数1の上位1バイト、変動パターン乱数2及び変動パターン乱数3の各々は、4回のうち1回のタイマ割込みにて更新されるようになっている。
乱数更新手段としてのCPU111Aは、変動パターン乱数1(リーチ変動態様決定用乱数)の2バイトのうち、上位1バイト(第1バイト)を更新する場合には、リフレッシュレジスタの値に基づいて所定の設定可能範囲内から決定された第1の加算値を加算して更新を行うとともに、下位1バイト(第2バイト)を更新する場合には、リフレッシュレジスタの値に基づいて第1の加算値の設定可能範囲よりも狭い設定可能範囲内から決定された第2の加算値を加算して更新を行うようになっている。ここで、設定可能範囲が狭いとは、例えば、第1の加算値の設定可能範囲を「1」〜「16」とし、且つ、第2の加算値の設定可能範囲を「1」〜「8」とする場合のように単に設定可能な値の範囲が狭いだけでなく、各設定可能範囲内から取り得る数値が第2の加算値よりも第1の加算値のほうが小さくなる場合も含む。
具体的には、図63を参照して、変動パターン乱数1の値、例えば、「14131」(二進数で「00110111 00110011」)を更新する場合について説明すると、当該乱数の下位1バイト(二進数で「00110011」)の更新タイミングでは、先ず、読み込まれたリフレッシュレジスタの下位3ビット(第2の所定数のビット)をマスクした値に1を加算した値、例えば、「6」(二進数で「0110」)を第2の加算値(加算値算出用更新値)とする。そして、当該第2の加算値「6」(二進数で「0110」)を変動パターン乱数1の下位1バイト(二進数で「00110011」)に加算することで、更新値「14137」(二進数で「00110111 00111001」)を算出する。
このように、変動パターン乱数1(リーチ変動態様決定用乱数)の下位1バイト(第2バイト)を更新する場合には、リフレッシュレジスタの下位3ビット(最下位から第1の所定数よりも小さい第2の所定数のビット)をマスクした値に1を加算した値を第2の加算値(加算値算出用更新値)として加算して更新を行うようになっている。これによって、従来のように+1更新する場合に比べて、変動パターン乱数1の更新値のランダム性を向上させることができる。
そして、次のタイマ割込みのタイミング、即ち、変動パターン乱数1「14137」(二進数で「00110111 00111001」)の上位1バイト(二進数で「00110111」)の更新タイミングでは、読み込まれたリフレッシュレジスタの下位4ビット(第1の所定数のビット)をマスクした値に1を加算した値、例えば、「11」(二進数で「1011」)を第1の加算値(加算値算出用更新値)とする。そして、当該第1の加算値「11」(二進数で「1011」)を変動パターン乱数1の上位1バイト(二進数で「00110111」)に加算することで、更新値「16953」(二進数で「01000010 00111001」)を算出する。
このように、変動パターン乱数1(リーチ変動態様決定用乱数)の上位1バイト(第1バイト)を更新する場合には、リフレッシュレジスタの下位4ビット(最下位から第1の所定数のビット)をマスクした値に1を加算した値を第1の加算値(加算値算出用更新値)として加算して更新を行うようになっている。これによって、従来のように+1更新する場合に比べて、変動パターン乱数1の更新値のランダム性を向上させるだけでなく、更新幅を非常に大きくすることができ、当該変動パターン乱数1に基づいて、後半変動パターングループとして種々のリーチパターンに係るものを選択することができる。
その後、次のタイマ割込みのタイミングで変動パターン乱数2の更新が行われた後、その次のタイマ割込みのタイミングで変動パターン乱数3の更新が行われる(図示略)。
変動パターン乱数3の更新後のタイマ割込みのタイミングで、変動パターン乱数1「16953」(二進数で「01000010 00111001」)の下位1バイト(二進数で「00111001」)の更新が行われる。この下位1バイトの更新処理は、上記と同様に、先ず、読み込まれたリフレッシュレジスタの下位3ビット(第2の所定数のビット)をマスクした値に1を加算した値、例えば、「5」(二進数で「0101」)を第2の加算値(加算値算出用更新値)とする。そして、当該第2の加算値「5」(二進数で「0101」)を変動パターン乱数1の下位1バイト(二進数で「00111001」)に加算することで、更新値「16958」(二進数で「01000010 00111110」)を算出する。
そして、次のタイマ割込みのタイミングで、変動パターン乱数1「16958」(二進数で「01000010 00111110」)の上位1バイト(二進数で「01000010」)の更新が行われる。この上位1バイトの更新処理は、上記と同様に、読み込まれたリフレッシュレジスタの下位4ビット(第1の所定数のビット)をマスクした値に1を加算した値、例えば、「16」(二進数で「10000」)を第1の加算値(加算値算出用更新値)とする。そして、当該第1の加算値「16」(二進数で「10000」)を変動パターン乱数1の上位1バイト(二進数で「01000010」)に加算することで、更新値「21054」(二進数で「01010010 00111110」)を算出する。
その後、上記と同様にして、変動パターン乱数2、変動パターン乱数3の更新が順次行われる。
上記の処理を繰り返すことで、変動パターン乱数1の下位1バイト、変動パターン乱数1の上位1バイト、変動パターン乱数2及び変動パターン乱数3の各々を、4回に1回のタイマ割込みにて順次更新するようになっている。
〔振り分け処理〕
次に、後半変動パターン設定処理(図36参照)や変動パターン設定処理(図37参照)中に実行される振り分け処理について説明する。
振り分け処理は、変動パターン乱数2に基づいて、後半変動選択テーブル(後半変動パターングループ)から特図変動表示ゲームの後半変動パターンを選択したり、変動パターン乱数3に基づいて、前半変動選択テーブル(前半変動パターングループ)から特図変動表示ゲームの前半変動パターンを選択するための処理である。
図64に示すように、振り分け処理では、先ず、後半変動パターン設定処理(ステップA350)にて準備した後半変動選択テーブル(選択テーブル)や変動パターン設定処理(ステップA351)にて準備した前半変動選択テーブル(選択テーブル)の先頭のデータが振り分けなしのコード(即ち、「0」)であるか否かをチェックする(ステップA711)。
ここで、後半変動選択テーブルや前半変動選択テーブルは、変動グループ選択テーブルと同様に、少なくとも一の後半変動パターンや前半変動パターンと対応付けて所定の振り分け値を記憶しているが、振分けの必要がない選択テーブルの場合、振り分け値「0」、即ち、振り分けなしのコードが先頭に規定されている。
そして、後半変動選択テーブルや前半変動選択テーブルの先頭のデータが振り分けなしのコードである(ステップA712;Yes)と判定すると、振り分け結果に対応するデータのアドレスに更新して(ステップA713)、振り分け処理を終了する。
一方、ステップA712にて、後半変動選択テーブルや前半変動選択テーブルの先頭のデータが振り分けなしのコードでない(ステップA712;No)と判定すると、対象の変動パターン乱数(変動パターン乱数2や変動パターン乱数3)を選択値としてロードした後(ステップA714)、後半変動選択テーブルや前半変動選択テーブルに最初に規定されている一の振り分け値を取得する(ステップA715)。
続けて、ステップA714にてロードされた選択値(変動パターン乱数2や変動パターン乱数3の値)からステップA715にて取得された振り分け値を減算して新たな選択値を算出した後(ステップA716)、当該算出された新たな選択値が「0」よりも小さいか否かを判定する(ステップA717)。
ここで、新たな選択値が「0」よりも小さくない(ステップA717;No)と判定すると、次の振り分け値のアドレスに更新した後(ステップA718)、処理をステップA715に移行して、それ以降の処理を行う。
即ち、ステップA715にて、後半変動選択テーブルや前半変動選択テーブルに次に規定されている振り分け値を取得した後、ステップA717にて判定済みの新たな選択値を選択値として振り分け値を減算することで新たな選択値を算出する(ステップA716)。そして、算出された新たな選択値が「0」よりも小さいか否かを判定する(ステップA717)。
上記の処理をステップA717にて、新たな選択値が「0」よりも小さい(ステップA717;Yes)と判定するまで実行する。これにより、後半変動選択テーブルや前半変動選択テーブルに規定されている少なくとも一の後半変動パターンや前半変動パターンの中から何れか一の後半変動番号や前半変動番号を選択する。
そして、ステップA717にて、新たな選択値が「0」よりも小さい(ステップA717;Yes)と判定すると、処理をステップA713に移行して、振り分け結果に対応するデータのアドレスに更新して(ステップA713)、振り分け処理を終了する。
以上のように、本実施形態の遊技機10によれば、始動入賞口36や普通変動入賞装置37の始動領域への遊技球の流入に基づいて複数の識別情報(特別図柄)を変動表示した後に結果を表示する特図変動表示ゲームを表示する変動表示装置(特図1表示器51及び特図2表示器52)と、遊技を統括的に制御する制御手段(遊技用マイコン111)と、を備え、該特図変動表示ゲームの実行結果が特別結果となる場合に遊技者に有利な特別遊技状態を発生する遊技機10において、制御手段は、始動領域への遊技球の流入に基づいて各種乱数を抽出し、該抽出された各種乱数を始動記憶として記憶可能な始動記憶手段(遊技用マイコン111のRAM111C)と、始動記憶手段に記憶された始動記憶に基づく特図変動表示ゲームにおいてリーチ状態を発生可能なリーチ状態発生手段(遊技用マイコン111のCPU111A)と、各種乱数のうち、リーチ状態におけるリーチ変動態様を決定するためのリーチ変動態様決定用乱数(変動パターン乱数1)を更新する乱数更新手段(遊技用マイコン111のCPU111A)と、を備え、リーチ変動態様決定用乱数は、複数バイトで構成され、リーチ変動状態発生手段によるリーチ状態を発生させるか否かの決定、及び、当該リーチ状態が発生する場合の特図変動表示ゲームにおけるリーチ変動態様の決定に係るものであり、乱数更新手段は、リーチ変動態様決定用乱数の複数バイトのうち、最上位のバイトを含み且つ最下位のバイトを含まない少なくとも一のバイトからなる第1バイト(上位1バイト)を更新する場合には、所定の第1の加算値を加算して更新を行うとともに、最下位のバイトを含み且つ最上位のバイトを含まない少なくとも一のバイトからなる第2バイト(下位1バイト)を更新する場合には、第1の加算値よりも設定可能範囲の狭い第2の加算値を加算して更新を行うように構成されている。
従って、リーチ変動態様決定用乱数(変動パターン乱数1)は、複数バイトで構成され、リーチ状態を発生させるか否かの決定、及び、当該リーチ状態が発生する場合の特図変動表示ゲームにおけるリーチ変動態様の決定に係るものであり、当該リーチ変動態様決定用乱数の複数バイトのうち、最上位のバイトを含み且つ最下位のバイトを含まない少なくとも一のバイトからなる第1バイト(上位1バイト)を更新する場合には、所定の第1の加算値を加算して更新を行うとともに、最下位のバイトを含み且つ最上位のバイトを含まない少なくとも一のバイトからなる第2バイト(下位1バイト)を更新する場合には、第1の加算値よりも設定可能範囲の狭い第2の加算値を加算して更新を行うように構成されているので、リーチ状態を発生させるか否か、及び、当該リーチ状態が発生する場合の特図変動表示ゲームにおけるリーチ変動態様の両方を一のリーチ変動態様決定用乱数を用いて決定することができ、乱数判定処理の回数を減少させて当該制御手段(遊技用マイコン111)にかかる判定処理の実行に関しての処理負担を軽減することができる。
また、このとき、第1バイトを更新する場合には、所定の第1の加算値を加算して更新を行うとともに、第2バイトを更新する場合には、第1の加算値よりも設定可能範囲の狭い第2の加算値を加算して更新を行うので、リーチ変動態様決定用乱数を+1更新する場合に比べて、更新後の値をランダムなものとすることができるだけでなく、更新幅を大きくすることができる。よって、当該リーチ変動態様決定用乱数に基づいて規定されている複数種類のリーチ変動態様の中から種々のリーチ変動態様を選択することができ、遊技者に遊技に対する飽きを生じさせ難くすることができ、結果として、遊技の興趣を向上させることができる。
また、制御手段(遊技用マイコン111)は、特図変動表示ゲームにおける識別情報の変動態様として、リーチ状態の発生しないリーチなし変動態様並びに複数種類のリーチ変動態様の各々の設定に係る複数の変動振り分け情報(変動パターングループ)とそれぞれの振り分け値とを所定の順序で対応付けて記憶する変動振り分け情報記憶手段(遊技用マイコン111のROM111B)と、リーチ変動態様決定用乱数(変動パターン乱数1)に基づいて、変動振り分け情報記憶手段に記憶された複数の変動振り分け情報のうち、何れか一の変動振り分け情報を設定する変動振り分け情報設定手段(遊技用マイコン111のCPU111A)と、を備え、変動振り分け情報設定手段は、変動振り分け情報記憶手段に最初に記憶されている振り分け値及びリーチ変動態様決定用乱数に基づいて、変動振り分け情報の選択に係る選択値を算出する選択値算出手段(遊技用マイコン111のCPU111A)と、選択値算出手段により算出された選択値が所定値(例えば、「0」)未満であるか否かを判定する選択値判定手段(遊技用マイコン111のCPU111A)と、を備え、選択値判定手段により選択値が所定値未満であると判定されると、複数の変動振り分け情報のうち、当該判定に係る振り分け値と対応付けられている変動振り分け情報を設定する一方で、選択値判定手段により選択値が所定値未満でないと判定されると、選択値算出手段は、当該判定に係る振り分け値の次に変動振り分け情報記憶手段に記憶されている振り分け値及び当該判定に係る選択値に基づいて、新たな選択値を算出し、選択値判定手段は、選択値算出手段により算出された新たな選択値が所定値未満であるか否かを判定し、選択値判定手段により新たな選択値が所定値未満であると判定されるまで、選択値算出手段による算出処理及び当該選択値判定手段による判定処理を繰り返すことで、複数の変動振り分け情報のうち、何れか一の変動振り分け情報を設定する構成を採っている。
従って、変動振り分け情報(変動パターングループ)の選択に係る選択値が所定値未満であると判定されると、複数の変動振り分け情報のうち、当該判定に係る振り分け値と対応付けられている変動振り分け情報を設定する一方で、選択値が所定値未満でないと判定されると、当該判定に係る振り分け値の次に変動振り分け情報記憶手段に記憶されている振り分け値及び当該判定に係る選択値に基づいて、新たな選択値を算出し、算出された新たな選択値が所定値未満であるか否かを判定し、新たな選択値が所定値未満であると判定されるまで、選択値算出手段(遊技用マイコン111のCPU111A)による算出処理及び当該選択値判定手段(遊技用マイコン111のCPU111A)による判定処理を繰り返すことで、複数の変動振り分け情報のうち、何れか一の変動振り分け情報を設定するので、リーチ状態の発生しないリーチなし変動態様並びに複数種類のリーチ変動態様の中からリーチなし変動態様が多く選択されたり、一のリーチ変動態様ばかりが偏って選択されることを防止することができ、遊技者に遊技に対する飽きを生じさせ難くすることができる。
また、第1の加算値及び第2の加算値は、変動する不特定な値が記憶されているリフレッシュレジスタの値に基づいて決定され、乱数更新手段(遊技用マイコン111のCPU111A)は、リーチ変動態様決定用乱数(変動パターン乱数1)の第1バイトを更新する場合には、リフレッシュレジスタの最下位から第1の所定数(例えば、「4」)のビットをマスクした値に1を加算した値を第1の加算値として加算して更新を行うとともに、当該リーチ変動態様決定用乱数の第2バイトを更新する場合には、リフレッシュレジスタの最下位から第1の所定数よりも小さい第2の所定数(例えば、「3」)のビットをマスクした値に1を加算した値を第2の加算値として加算して更新を行う構成を採っている。
従って、第1の加算値及び第2の加算値を変動する不特定な値が記憶されているリフレッシュレジスタの値に基づいて決定することで、リーチ変動態様決定用乱数(変動パターン乱数1)を+1更新する場合に比べて、更新後の値をランダムなものとすることができる。さらに、リーチ変動態様決定用乱数の第1バイトを更新する場合には、リフレッシュレジスタの最下位から第1の所定数のビットをマスクした値に1を加算した値を第1の加算値として加算して更新を行うとともに、当該リーチ変動態様決定用乱数の第2バイトを更新する場合には、リフレッシュレジスタの最下位から第1の所定数よりも小さい第2の所定数のビットをマスクした値に1を加算した値を第2の加算値として加算して更新を行うので、第2の加算値の設定可能範囲を第1の加算値よりも狭くすることができ、リーチ変動態様決定用乱数を+1更新する場合に比べて、当該リーチ変動態様決定用乱数の更新幅を大きくすることができる。
また、リーチ変動態様決定用乱数(変動パターン乱数1)は、2バイトで構成され、乱数更新手段(遊技用マイコン111のCPU111A)は、第1バイトとして、リーチ変動態様決定用乱数の上位1バイトを更新する場合には、第1の加算値を加算して更新を行うとともに、第2バイトとして、当該リーチ変動態様決定用乱数の下位1バイトを更新する場合には、第1の加算値よりも設定可能範囲の狭い第2の加算値を加算して更新を行う構成を採っている。
従って、リーチ変動態様決定用乱数(変動パターン乱数1)は、2バイトで構成され、第1バイトとして、リーチ変動態様決定用乱数の上位1バイトを更新する場合には、第1の加算値を加算して更新を行うとともに、第2バイトとして、当該リーチ変動態様決定用乱数の下位1バイトを更新する場合には、第1の加算値よりも設定可能範囲の狭い第2の加算値を加算して更新を行うので、リーチ状態を発生させるか否か、及び、当該リーチ状態が発生する場合の特図変動表示ゲームにおけるリーチ変動態様の両方を一のリーチ変動態様決定用乱数を用いて決定することができ、乱数判定処理の回数を減少させて制御手段(遊技用マイコン111)にかかる判定処理の実行に関しての処理負担を軽減することができる。
また、このとき、リーチ変動態様決定用乱数を+1更新する場合に比べて、更新後の値をランダムなものとすることができるだけでなく、更新幅を大きくすることができる。よって、当該リーチ変動態様決定用乱数に基づいて規定されている複数種類のリーチ変動態様の中から種々のリーチ変動態様を選択することができ、遊技者に遊技に対する飽きを生じさせ難くすることができ、結果として、遊技の興趣を向上させることができる。
次に、図65を用いて、図3の遊技機制御システムを構成する遊技用マイコン111の構成について説明する。図65には遊技用マイコン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が払出制御装置210に備わる遊技用マイコン211である場合には、乱数生成回路608はなくてもよい。
クロックジェネレータ609は、内部クロック信号を生成するとともに、生成されたクロック信号をさらに分周して遊技制御に必要なタイミングに係わる信号を発生させる(詳細は図66にて後述)。リセット/割込制御回路(割込信号発生手段)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内に設けられ、当り乱数等の生成に使用される乱数生成回路およびクロックジェネレータについて、詳細に説明する。
図66は、本発明の実施形態の遊技用演算処理装置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は、発生する信号CTC1,CTC2の周期を自由に設定できるように構成されている。
乱数生成回路(乱数生成手段)608は、乱数更新コントローラ608a、第1乱数ブロック608b、第2乱数ブロック608c、第3乱数ブロック608d、及び第4乱数ブロック608eにより構成される。
乱数更新コントローラ(更新制御手段)608aは、遊技制御の実行過程において遊技価値(例えば、大当り)を付与するか否か等の判定や制御状態を決定するのに用いる乱数の生成のための演算処理を行うもので、一様性乱数を生成する数学的手法(例えば、合同法あるいはM系列法等)を利用して乱数を生成する。また、乱数更新コントローラ608aには、リセット割込み制御回路610からの割込み信号、クロックジェネレータ609を構成する信号発生手段としてのCTC回路609aおよび分周回路609bからの信号(CTC2,φ1)が入力可能となっている。
なお、特に限定されるものではないが、本実施例の乱数生成回路608は、後述のように、クロックジェネレータ609内のCTC回路609aからの信号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などにより構成される。
上記レジスタのうち、ワークエリア(更新手段)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が更新中であることが示される。また、「カウンタモード」ではワークエリア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による乱数生成処理に関わる不正が行なわれにくくする初期値(スタート値)の攪拌更新処理の概略について、図67を用いて説明する。なお、本実施形態においてこの処理が適用されるのは、特図1および特図2の各変動表示ゲームにおける大当り停止図柄を決定する大当り図柄乱数1,2と、普図変動表示ゲームにおいて当りを発生させるか否かを決定する当り乱数の計3つの乱数(大当り乱数を含まない)の生成処理であるが、ここでは普図の当り乱数の攪拌更新処理について説明する。
図67(A)は普図の当り乱数を生成する乱数カウンタ608b7の概念図、図67(B)は乱数カウンタ608b7が一周するごとに乱数カウンタ608bに再設定される初期値(スタート値)を生成する初期値乱数カウンタの概念図である。図67(A)の乱数カウンタは、CTC回路609aから出力される周期的な信号CTC2が乱数更新コントローラ608aに入力される毎に更新(−1)される。初期値乱数カウンタは、図65の遊技用演算処理装置600内のユーザワークRAM604内に設けられるカウンタで、ユーザプログラム(メイン処理の図8の初期値乱数更新処理)によって更新(+1)される。なお、図67には、一例として初期値乱数カウンタが8ビットで構成され、乱数カウンタ608b7の最大値として「250」が設定されている場合が示されている。前記最大値設定レジスタ608b4に最大値として「N」が設定された場合には、図67(A)の乱数カウンタは最大値MAXが「N」のカウンタとして動作することとなる。
本実施形態においては、電源投入時およびシステムリセット時に、乱数生成回路608内のワークエリア608b8から復帰され毎回ランダムな値となる初期値用カウンタ608b14の値(図67では「2」)が、図67(A)の乱数カウンタ608b7と、図67(B)の初期値乱数カウンタ(置換カウンタ)に、初期値としてそれぞれ設定される(符号#1)。その後、図67(A)の乱数カウンタ608b7と図67(B)の初期値乱数カウンタは、別々のタイミングで更新(−1または+1)される(符号#2)。
その後、(B)の初期値乱数カウンタの値は、CPUのタイマ割込み処理(図9)内の乱数更新処理(S45、図17)において、そのときの値Ni(図67では「149」)がスタート値レジスタ608b5にセットされる(符号#3)。そして、乱数カウンタ608b7が一周したとき(符号#4)に、スタート値レジスタ608b5の値を、次の計数サイクルにおける初期値(スタート値)として乱数カウンタ608b7に再設定、すなわちスタート値の差し替えをする(符号#5)。すると、その後、乱数カウンタ608b7は、設定された値Ni(=149)を初期値(スタート値)として、信号CTC2が入力される毎に更新(−1)される(符号#6)。
一方、図67(B)の初期値乱数カウンタは、スタート値レジスタ608b5にカウント値Ni(=149)が設定された後も引き続いて更新(+1)される(符号#3’)。なお、初期値(スタート値)の乱数カウンタ608b7への再設定(差し替え)は、直接ではなくスタート値レジスタ608b5の値をワークエリア608b8へ格納することにより行なわれる。乱数カウンタ608b7の値の更新は直接行なわれるのではなく、実際の更新はワークエリア608b8で行い、乱数カウンタ608b7には更新結果が格納されるためである。以上のような処理によって、乱数カウンタ608b7のスタート値が攪拌され、乱数取得に関わる不正が行なわれにくくすることができる。
すなわち、不正行為者が、例えば遊技機の遊技制御装置から各種被制御装置への制御信号の送信タイミングなどに基づいて乱数カウンタの更新タイミングを割り出したとしても、周回の初期値の変更の仕組みについて解析しない限り乱数カウンタの値まで割り出すことは難しく、特定の遊技状態(大当り状態)を発生させる不正行為を行うことが著しく困難になる。また、電源投入及びシステムリセット毎に乱数生成回路でランダムな値が生成され、乱数カウンタの1周目の周回初期値と、2周目以降の周回初期値(スタート値)を生成する置換カウンタの初期値として設定されるようにしたので、乱数カウンタの値を外部から割り出すことは難しくなり、不正行為を未然に防止できる。
次に、乱数更新コントローラ608aによる乱数生成回路608内の制御手順について説明する。図68には、乱数更新コントローラによるメイン処理の前半部分のフローチャートが、また、図69には乱数更新コントローラによるメイン処理の後半部分のフローチャートが示されている。このメイン処理は、電源投入及びシステムリセット毎に開始され電源がオンされている間連続して実行されるループ処理であり、乱数更新コントローラ608aによる処理には、このメイン処理のほか、クロックジェネレータ609からの信号φ1、CTC2の入力による割込み処理や電源遮断検出時に実行される緊急割込み処理がある。前述した初期値用カウンタ608b14の値のワークエリア608b8(バックアップエリア)への格納は、電源遮断検出時の緊急割込み処理によって行うようにすることができる。
乱数更新コントローラ608aは、リセット割込み制御回路610によるリセット割込信号もしくは電源投入時のパワーオンリセット信号に基づき、図68の制御フローを開始し、先ず、ワークエリア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,図70)を実行してから、回数カウンタ608b13を「0」に設定する(ステップS107)。なお、乱数カウンタ608b7の変更が禁止されるまでの間は、CPUコア601(図65)によって乱数カウンタ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の情報(フラグ)がオフになっているか判定する(ステップS171)。ここで、フラグがオフになっていないつまり新しいスタート値が格納されていない状態の場合(No)は、ステップS118へジャンプする。また、ステップS171で、フラグがオフになっている(Yes)と判定すると、次のステップS172で、スタート値設定レジスタ608b5に設定されているスタート値とワークエリア608b8に記憶されている初期値用カウンタの値とを比較して前回の値と一致しているか否か判定する。そして、ステップS172で一致している(Yes)と判定した場合は、ステップS118へジャンプし、ステップS172で、一致していない(No)と判定すると、次のステップS173でソフト乱数ステータスレジスタ608b15のフラグをオンに設定してステップS118へ進む。
ステップS118では、周回カウンタ608b12の値をインクリメント(+1)し、周回カウンタの値が乱数カウンタの最大値に1足した値以上か否かの判定を行う(ステップS119)。そして、周回カウンタの値が乱数カウンタ608b7の最大値に1足した値以上の場合(ステップS119;Yes)は、周回カウンタの値を「0」に設定する(ステップS120)。一方、この周回カウンタの値が乱数カウンタ608b7の最大値に1足した値以上か否かの判定(ステップS119)において、周回カウンタの値が乱数カウンタ608b7の最大値に1足した値以上でない場合(ステップS119;No)は、ステップS134へ進む(符合B)。従って、ステップS119が一周検出手段として機能する。
次に、スタート値設定レジスタ608b5において乱数更新のスタート値の取得及び最大値以下にする補正を行う(ステップS121)。図67に示すように、当り乱数カウンタ(A)よりも初期値乱数カウンタ(B)の方が範囲が大きい場合に、当り乱数カウンタのとり得ない値を初期値乱数カウンタからスタート値として取得して設定した場合を考慮したものである。
具体的には、このとき、最大値よりも取得したスタート値の方が大きい場合には、最大値をスタート値で除した際の余り値をスタート値とする補正を行う。その後、ワークエリア608b8にスタート値を取り込み(ステップS122)、次のステップS174でソフト乱数ステータスレジスタ608b15のフラグをオフに設定してスタート値設定レジスタ608b5の値を設定したことを記憶してから、一周完了報知レジスタ608b6をオンに設定する(ステップS123)。
従って、スタート値設定レジスタ608b5とステップS119〜S122とが、乱数カウンタに1周目の周回初期値が設定された後、乱数カウンタが更新されて当該周回の周回初期値に達する毎に、当該乱数カウンタの新たな周回初期値を設定する第2攪拌手段として機能することとなる。このように、乱数カウンタの周回の初期値は少なくとも一巡する毎に第2攪拌手段によって設定された周回初期値に置換されるので、乱数カウンタの値を外部から割り出すことは難しく、不正行為を未然に防止することができる。
次に、符合Bに従って、ステップS123から移行したステップS134で回数カウンタ608b13の値が規定値に達したか否かの判定を行う。ここで、規定値(規定更新時間)は、例えば、「カウンタモード」の場合は規定値が「2」、「乱数モード」の場合であって最大値が「17」以上の場合は規定値が「20」、「乱数モード」の場合であって最大値が「16」以下の場合は規定値が「200」に設定される。これらの規定値(規定更新時間)のデータは、遊技用マイコン111のROM111Bに予め記憶されている。
従って、乱数カウンタ608b7の更新が開始されると、分周回路609bから乱数更新コントローラ608aへ分周信号入力ごとに乱数を更新するのではなく、入力される分周信号が所定回数検出されるまでは、乱数カウンタ608b7を更新しないことになり、さらに、その検出回数がある程度のまとまった数に固定されることになる。言い換えれば、「カウンタモード」の場合は、乱数カウンタ608b7を更新するために、分周信号が2回発生する時間(規定更新時間)を要することになる。また、「乱数モード」の場合であって乱数カウンタの最大値が「17」以上の場合は、乱数カウンタ608b7を更新するために、分周信号が20回発生する時間を要することになり、「乱数モード」の場合であって乱数カウンタの最大値が「16」以下の場合は、乱数カウンタ608b7を更新するために、分周信号が200回発生する時間を要することになる。
回数カウンタ608b13の値が規定値に達したか否かの判定(ステップS134)において、回数カウンタの値が規定値に達していない場合(No)は、分周信号を待ち(ステップS137)、回数カウンタの値をインクリメント(+1)して(ステップS138)、ステップS134へ戻る。一方、回数カウンタの値が規定値に達したか否かの判定(ステップS134)において、回数カウンタの値が規定値に達した場合(Yes)は、ワークエリア608b8の値を乱数カウンタ608b7に設定し(ステップS135)、乱数更新中報知レジスタ608b9をオフに設定し(ステップS136)、ステップS107に戻る。
また、最大値設定レジスタ608b4に設定されたモードが「乱数モード」であるか「カウンタモード」であるかの判定(ステップS114)において、最大値設定レジスタ608b4に設定されたモードが「乱数モード」の場合、ステップS124へ進む。そして、ワークエリア608b8にてM系列乱数を更新し(ステップS124)、ワークエリア608b8のM系列乱数に基づく値が最大値よりも大きいか否かの判定を行う(ステップS125)。
この判定(ステップS125)において、ワークエリア608b8のM系列乱数に基づく値が最大値よりも大きい場合(Yes)は、分周信号を検出したか否かの判定(ステップS126)を行う。そして、この判定(ステップS126)において、分周信号を検出した場合(Yes)は、回数カウンタ608b13の値を1インクリメントし(ステップS127)、ステップS124へ戻る。一方、この分周信号を検出したか否かの判定(ステップS126)において、分周信号を検出していない場合(No)は、ステップS124へ戻る。
また、ステップS125の判定において、ワークエリア608b8のM系列乱数に基づく値が最大値よりも大きくない場合(No)は、ステップS175へ移行して、スタート値設定レジスタ608b5に次回に設定されるスタート値(開始値)が格納されているか否かを示すソフト乱数ステータスレジスタ608b15の情報(フラグ)がオフになっているか判定する(ステップS175)。ここで、フラグがオフになっていないつまり新しいスタート値が格納されていない状態の場合(No)は、ステップS128へジャンプする。
また、ステップS175で、フラグがオフになっている(Yes)と判定すると、次のステップS176で、ワークエリア608b8に記憶されている初期値用カウンタの値とスタート値設定レジスタ608b5に設定されているスタート値とを比較して前回の値と一致しているか否か判定する。そして、一致している場合(Yes)は、ステップS128へジャンプし、ステップS176で、一致していない(No)と判定すると、次のステップS177でソフト乱数ステータスレジスタ608b15のフラグをオンに設定してステップS128へ進む。
ステップS128では、周回カウンタ608b12の値をインクリメント(+1)し、周回カウンタの値が最大値以上か否かの判定を行う(ステップS129)。この判定(ステップS129)において、周回カウンタの値が最大値以上の場合(Yes)は、周回カウンタの値を「0」に設定する(ステップS130)。一方、周回カウンタの値が最大値以上か否かの判定(ステップS129)において、周回カウンタの値が最大値以上でない場合(No)は、ステップS134へ進む。従って、ステップS129が一周検出手段として機能する。
次に、スタート値設定レジスタ608b5においてスタート値の取得及び最大値以下にする補正を行う(ステップS131)。具体的には、このとき、最大値よりも取得したスタート値の方が大きい場合に、最大値をスタート値で除した際の余り値をスタート値とする補正を行う。そして、ワークエリア608b8にスタート値を取り込み(ステップS132)、次のステップS178でソフト乱数ステータスレジスタ608b15のフラグをオフに設定してステップS133へ進む。ステップS133では、一周完了報知レジスタ608b6をオンに設定し、ステップS134へ進み、回数カウンタが規定値か否か判定する。そして、この判定において、回数カウンタ608b13の値が規定値に達した(Yes)と判定した場合は、前述したように、ワークエリア608b8の値を乱数カウンタ608b7に設定し(ステップS135)、乱数更新中報知レジスタ608b9をオフに設定し(ステップS136)、ステップS107に戻る。
なお、図68および図69には示されていないが、乱数更新コントローラ608aは、乱数更新処理後に乱数カウンタ608b7の値をチェックして、更新がされていない場合には更新エラーと判定して、更新エラー報知レジスタ608b10にエラーが発生したことを示す値を設定するように構成されている。
図70には、図68のステップ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系列更新に限定されず他の方式による更新であっても良い。
ユーザプログラムによって周期的に更新される乱数カウンタの周回初期値として不適切な値(所定の範囲外の値)が記憶されるおそれがあるが、不適切な値(所定の範囲外の値)が記憶された場合には、上記乱数カウンタ初期値補正処理により補正を受けて、所定の範囲内の値に設定し直され、乱数カウンタの周回の初期値には常に所定の範囲内の適切な値が設定されるので、所定の正しい確率で遊技の決定処理を行うことができる。
上述の説明から、上記実施形態には、遊技プログラムに従って遊技に係わる所要の制御を行う遊技制御手段と、該遊技制御手段による制御で用いられる乱数値を生成する乱数生成手段と、を備えた遊技機であって、
前記乱数生成手段は、所定の最小値と最大値の範囲内で循環して所定時間毎に更新される乱数カウンタと、電源投入及びシステムリセット毎にランダムな値を生成して前記乱数カウンタの1周目の周回初期値として設定する第1攪拌手段と、前記第1攪拌手段によって前記乱数カウンタに1周目の周回初期値が設定された後、前記乱数カウンタが更新されて当該周回の周回初期値に達する毎に、当該乱数カウンタの新たな周回初期値を設定する第2攪拌手段と、を備え、
前記遊技制御手段は、遊技における所定の事象の発生に基づいて前記乱数生成手段で生成された乱数値を取得する乱数値取得手段と、前記乱数値取得手段によって取得された乱数値を判定して遊技制御に係わる決定を行う遊技結果決定手段と、前記第2攪拌手段によって設定される周回初期値として用いられる値を生成する置換カウンタを更新する置換カウンタ更新手段と、を備え、電源投入及びシステムリセットが発生したこと基づいて、前記置換カウンタに第1攪拌手段が生成したランダムな値を初期値として設定する発明が含まれることが分かる。
そして、この発明によれば、不正行為者が、例えば遊技機の遊技制御装置から各種被制御装置への制御信号の送信タイミングなどに基づいて乱数カウンタの更新タイミングを割り出したとしても、周回の初期値の変更の仕組みについて解析しない限り乱数カウンタの値まで割り出すことは難しく、特定の遊技状態(大当り状態)を発生させる不正行為を行うことが著しく困難になる。また、電源投入及びシステムリセット毎にランダムな値を生成して前記乱数カウンタの1周目の周回初期値と、2周目以降の周回初期値として用いられる値を生成する置換カウンタの初期値に設定するようにしたので、乱数カウンタの値を外部から割り出すことは難しくなり、不正行為を未然に防止できることとなる。
また、上記実施形態には、前記乱数生成手段は、前記乱数カウンタの更新範囲を規定する更新範囲情報が記憶される範囲情報記憶手段と、を備え、前記範囲情報記憶手段に記憶される更新範囲情報には、少なくとも前記乱数カウンタ更新範囲の上限値が含まれ、前記第1攪拌手段は、生成されたランダムな値が前記更新範囲情報に規定されている更新範囲外の値が設定された場合には、前記更新範囲外の値を前記範囲情報記憶手段に記憶された上限値で除算し、算出された余り値を前記乱数カウンタの1周目の周回初期値として設定するようにした発明が含まれる。
そしてかかる発明によれば、周期的に更新される乱数カウンタの周回初期値として不適切な値(所定の範囲外の値)が記憶されるおそれがあるが、不適切な値(所定の範囲外の値)が記憶された場合には、補正を受けるので、所定の範囲内の値に設定し直され、乱数カウンタの周回の初期値には常に所定の範囲内の適切な値が設定されるので、所定の正しい確率で遊技の決定処理を行うことができる。
さらに、上記実施形態には、前記乱数生成手段は、周回初期値より更新が開始され前記乱数カウンタの値が一巡して再び周回初期値へと戻ったことを検出する一周検出手段と、遊技制御手段によって記憶可能に構成され、前記第2攪拌手段によって前記乱数カウンタに記憶される周回初期値を記憶する周回初期値記憶手段と、を備え、前記一周検出手段によって前記乱数カウンタの値が一巡して周回初期値へと戻ったことが検出された場合に、前記第2攪拌手段によって前記周回初期値記憶手段に設定された周回初期値を前記乱数カウンタに設定するようにした発明が含まれる。
そしてかかる発明によれば、乱数カウンタの周回の初期値は少なくとも一巡する毎に第2攪拌手段によって設定された周回初期値に置換されるので、乱数カウンタの値を外部から割り出すことは難しく、不正行為を未然に防止することができる。
さらに、上記実施形態には、前記乱数生成手段は、前記周回初期値記憶手段に記憶された周回初期値が、前記第2攪拌手段によって前記乱数カウンタに設定されたか否かを示す設定情報を記憶する設定情報記憶手段を備え、前記遊技制御手段は、前記設定情報を参照して前記周回初期値記憶手段に記憶された周回初期値が前記第2攪拌手段によって前記乱数カウンタに設定されたことが示された場合に、前記置換カウンタの値を取得して、次の周回初期値として前記周回初期値記憶手段に記憶するようにした発明が含まれる。
そしてかかる発明によれば、遊技制御手段は、周回初期値が乱数カウンタに設定されたか否かを示す設定情報に基づいて、次の周回初期値を設定するようにしたので、乱数カウンタが一巡する毎に確実に次の周回初期値を設定することができる。
次に、本実施形態における乱数値による普図の当り判定の具体的な方法について説明する。
従来の遊技機における乱数値による普図の当りや特図の大当りの判定は、乱数カウンタ(乱数生成回路内のものを含む)から取得した乱数値とすべての当り値とを比較して一致しているか否か判定することで行なっており、処理回数が多くCPUにとって負担の重い処理であった。本実施形態においては、当り値が3個以上の場合には、当り判定用の上限値と下限値とを設け、乱数カウンタから取得した乱数値と当り判定用の上限値および下限値とそれぞれ大小比較することで、当りか否かの判定を行うことで、CPUの負担を軽減するようにしたものである。以下、普図の当り判定を例にとって、具体的に説明する。
本実施形態においては、普図の乱数の上限値は「250」である。従って、普図用の乱数カウンタは、図71(A)に示すように、1バイト(8ビット)のカウンタによって構成することができる。この場合、上位の251〜255の値が未使用領域となる。一方、乱数生成回路内の乱数カウンタを使用する場合、CPUによっては乱数カウンタが2バイト(16ビット)で構成されることがある。その場合、図71(B),(C)に示すように、上位の251〜65535の値が未使用領域となる。なお、図71(B)は普図の低確率状態、(C)は普図の高確率状態の値の範囲を示している。図71(D)には、普図の当り値の設定例が示されている。
図71(D)のように、本実施形態においては、普図の低確率状態では、当り値は「250」のみすなわち当りの確率は1/251に設定され、高確率状態では、当り値は「1〜250」すなわち当りの確率は250/251に設定される。従って、低確率状態においては判定値を「250」に設定して乱数値が判定値よりも大きいか否かを判定し、高確率状態においては判定値を「1」に設定して乱数値が判定値よりも大きいか否かを判定することで、基本的にはそれぞれ1回の比較判定処理で判定結果が得られるはずである。しかしながら、ノイズや不正あるいはプログラムのバグ等何らかの原因で、図71の(A)〜(C)の未使用領域の値を誤って乱数カウンタから取得した場合、上記判定値による大小比較では、未使用領域の値が取得された場合にも「当り」と判定されてしまうおそれがある。
そこで、本実施形態においては、普図高確率状態(普電サポート中)は、図50の普図普段処理の中のステップB146およびB149に示すように、下限判定値と上限判定値を用意して、取得した乱数値が下限判定値未満か否かの判定と上限判定値よりも大きいか否かの判定とを行い、両方の判定がNoの場合に「当り」と決定し、それぞれの判定がYesの場合に「はずれ」として決定して、それ以降の処理を行うようにしている。これにより、図71の(A)〜(C)の未使用領域の値を誤って乱数カウンタから取得した場合に、「当り」と判定されてしまうのを回避することができる。
なお、図50の普図普段処理では、普図低確率状態にはステップSB139で乱数値が判定値と一致しているか否か判定している。これは、図71(D)のように、本実施形態においては、普図の低確率状態では当り値は「250」のみであるため、一回の判定で結果を得ることができるためである。当り値が2個以下の場合には当り値との一致判定で行い、当り値が3個以上の場合には、前記高確率状態の処理と同様に下限判定値と上限判定値を用いた2回の判定を行うようにするのが望ましい。これにより、CPUの負担を軽減することができる。なお、当り値が2個以下の場合にも、下限判定値または上限判定値を用いた大小判定を行うようにしてもよい。
さらに、CPUの具体的なアーキテクチャを考慮した場合、CPUは判定値との大小比較を行う比較回路を持たず、加減算器を用いて対象値(乱数)と判定値との差を演算し、その演算結果が負となるか正となるかで大小比較結果が分かるような構成を備えると考えられる。具体的には、減算を行なって結果が負の場合には負であることを示す符号または信号を出力する演算器がある。そのような演算器を使用した場合、ステップB139の処理は「乱数値−判定値」または「判定値−乱数値」とし、ステップB140の判定は、演算(減算)結果が「0」か否かの判定とすればよい。また、ステップB146の処理は「乱数値−判定値」の演算(減算)とし、ステップB147の判定は、演算(減算)結果が「負」か否かの判定とし、ステップSB149の処理は「判定値−乱数値」とし、ステップB150の判定は、演算(減算)結果が「負」か否かの判定とすればよい。
上記のような処理を行うことによって、従来のように複数の判定値を持ち、乱数値と判定値とを逐一比較して当りか否か判定する方法に比べて、プログラムを簡素化することが可能となる。すなわち、この実施例では、特別遊技を発生することとなる値が3個以上となる特定遊技状態では、判定値の下限を示す下限判定値と判定値の上限を示す上限判定値を使用して判定するようにしたことで、判定値と合致するか否かの判定を判定値の数だけ繰り返し行う必要がなく、大当り判定又は当り判定によって生じる制御装置の負担を軽減することができる。また、下限判定値による判定に加えて、上限判定値による判定も行うので、判定を行う際にノイズや不正あるいはプログラムのバグ等によってカウンタ値(乱数値)が本来とることのない値に書き換えられて、誤って特別遊技を発生してしまうのを防止することができる。
なお、上記実施例では、特別遊技を発生することとなる値すなわち当り値が1個の場合に、乱数カウンタから取得してRAM内のカウンタ値取得領域に格納されているカウンタ値が特別遊技を発生するすなわち当りとなる判定値と一致しているか否かの判定を行なっている(図50のステップSB139)が、当り値が2個の場合にも、カウンタ値取得領域に格納されているカウンタ値が特別遊技を発生することとなる判定値と一致しているか否かの判定を行うようにしてもよい。一方、当り値が3個以上の場合には、カウンタ値が当りとなる判定値の下限を示す下限判定値と判定値の上限を示す上限判定値を使用した判定を行うようにするのがよい。このようにすることによって、当り判定に必要な処理の回数を減らし制御装置の負担を軽減することができる。また、当り値の判定のみでなく、はずれ値が2個以下の場合には、はずれ値について判定値と一致しているか否かの判定を行い、はずれ値が3個以上の場合には、下限判定値と判定値の上限を示す上限判定値を使用した判定を行うようにしてもよい。
従って、上述した実施例には、所定の確率で特別遊技を発生可能な通常遊技状態または前記通常遊技状態よりも特別遊技が発生する確率が高い特定遊技状態のいずれかの状態で遊技制御を実行する遊技機において、
カウンタ値を所定の更新許容範囲で循環して更新するカウンタ更新手段と、前記カウンタ更新手段で更新されたカウンタ値が記憶されるカウンタ値更新領域を有する記憶手段と、遊技における所定の事象の発生を検出する検出手段と、前記検出手段による検出に基づいて前記カウンタ値更新領域に格納されているカウンタ値をカウンタ値取得領域に格納する取得手段と、前記カウンタ値取得領域に格納されているカウンタ値に基づいて特別遊技を発生するか否かの判定を行う判定手段と、を備え、
前記カウンタ値更新領域は、前記更新許容範囲の上限値又は下限値を超えたカウンタ値を格納可能なバイト数又はビット数で構成され、
前記判定手段は、特別遊技を発生するか否かの判定時に、前記通常遊技状態または特定遊技状態のいずれの状態であるかの判定を行う遊技状態判定手段と、前記遊技状態判定手段によって通常遊技状態と判定された場合に、特別遊技を発生するか否かの判定を行う通常時判定手段と、前記遊技状態判定手段によって特定遊技状態と判定された場合に、特別遊技を発生するか否かの判定を行う特定時判定手段と、を含み、
特定時判定手段は、前記特別遊技を発生することとなる値が3個以上の場合には、前記カウンタ値が前記特別遊技を発生することとなる判定値の下限を示す下限判定値と、前記カウンタ値が前記特別遊技を発生することとなる判定値の上限を示す上限判定値を使用して判定を行う発明が含まれることが分かる。ただし、次の第2実施例において説明するように、特別遊技を発生することとなる値の設定の仕方などによっては、下限判定値と上限判定値の少なくとも一方を使用して判定を行うようにすることも可能である。
さらに、上述した実施例には、前記特定時判定手段は、前記カウンタ値取得領域に格納されているカウンタ値が、前記カウンタ値が前記特別遊技を発生することとなる判定値の下限を示す下限判定値と、前記カウンタ値が前記特別遊技を発生することとなる判定値の上限を示す上限判定値と、を用いるようにされ、前記特別遊技を発生することとなる値が3個以上の場合には、前記カウンタ値取得領域に格納されている前記カウンタ値が前記下限判定値より大きいか小さいかの判定を行うとともに、該判定により前記カウンタ値が前記下限判定値より大きいと判定された場合には、前記カウンタ値が前記上限判定値より大きいか小さいかの判定を行うようにした発明が含まれることが分かる。
図72には、乱数の判定方法の第2の実施例が示されている。この実施例は、低確率状態での当り値とはずれ値の設定は図71の実施例と同じであるが、高確率状態での当り値とはずれ値の設定を逆、すなわち当り値を「0〜249」とし、はずれ値を乱数の範囲のうち最も大きな値「250」に設定したものである。
図73には、この第2実施例における普図普段処理の処理手順の一例が示されている。図73のフローチャートと図50のフローチャートとの違いは、図73のフローチャートでは図50のフローチャートにおけるステップB145〜B147が不要になっている点にある。ステップB149およびB150における具体的な処理の内容は図50の場合と同様であり、例えばステップB149で「乱数値−判定値」を演算し、ステップB150の判定では、演算(減算)結果が「負」か否かの判定を行うようにすればよい。
この実施例では、特別遊技を発生することとなる値が3個以上となる特定遊技状態では、判定値の上限を示す上限判定値を使用して判定するようにしたことで、判定値と合致するか否かの判定を判定値の数だけ繰り返し行う必要がなく、大当り判定又は当り判定によって生じる制御装置の負担を軽減することができる。従って、本実施例は、第1の実施例に比べてさらにプログラムを簡素化できるという利点がある。また、乱数カウンタの未使用領域の値を誤って取得した場合に、「当り」と判定されてしまうのを回避することができる。さらに、下限判定値が不要となり、ROMの容量を減らすことができる。なお、判定値の上限を示す上限判定値を使用して当りとなるか否かの判定を行なっているが、当り値の設定の仕方によっては判定値の下限を示す下限判定値のみを使用して当りとなるか否かの判定を行うようにすることができる。
図74には、乱数の判定方法の第3の実施例が示されている。この実施例は、低確率状態での当り値とはずれ値の設定を図71の実施例と逆、すなわち当り値を「0」に近い小さな値とするとともに、高確率状態での当り値とはずれ値の設定も図71の実施例と逆、すなわちはずれ値を乱数の範囲のうち最も大きな値「250」に設定したものである。また、この実施例では、低確率状態での当り値は「0〜9」、すなわち当り確率は10/251としている。
図75には、この第3実施例における普図普段処理の処理手順の一例が示されている。図75のフローチャートと図50のフローチャートとの違いは、図73のフローチャートでは図50のフローチャートにおけるステップB145〜B147とステップB139およびB140が不要になっている点と、ステップB138で判定値として上限判定値を設定し、ステップB138の次にステップB149へ移行する点にある。ステップB149およびB150における具体的な処理の内容は図73の場合と同様であり、ステップB149で「判定値−乱数値」を演算し、ステップB150の判定では、演算(減算)結果が「負」か否かの判定を行うようにすればよい。
上記のように第3実施例は、特別遊技を発生しないこととする判定値すなわちはずれ値を、カウンタ値更新領域の更新許容範囲の上限値又は下限値を超えた未使用領域に隣接して配置したことで、通常遊技状態と特定遊技状態のいずれにおいても1回の判定処理によって、特別遊技を発生させることにならないカウンタ値(はずれ値及び未使用領域値)であるか否かを判定することができ、第2の実施例に比べてさらにプログラムを簡素化できるという利点がある。また、カウンタ値(乱数値)が本来とることのない未使用領域の値に書き換えられて、誤って特別遊技を発生してしまうのを回避することができる。さらに、下限判定値および当り判定値が不要となり、ROMの容量を減らすことができる。
なお、上記実施例では、主として、本発明を普図の変動表示ゲームの当り/はずれを判定する処理に適用した場合について説明したが、本発明は、特の変動表示ゲームの当り/はずれを判定する処理にも適用することができる。
以上本発明者によってなされた発明を実施形態に基づき具体的に説明したが、今回開示した実施形態は、全ての点で例示であって制限的なものではない。例えば、前記実施形態では、乱数生成回路608で乱数値が更新されなかった場合にエラーを示す値が設定され更新エラー報知レジスタ608b10とは別に、スタート値設定レジスタ608b5に次回に設定される値(開始値)が記憶されているか否かを示す情報(フラグ)を記憶するソフト乱数ステータスレジスタ608b15を設けているが、これらのレジスタを1つのステータスレジスタとして構成するようにしても良い。このようにすれば、レジスタの数を減らすことができる。また、このステータスレジスタには、カウンタモードにおける更新エラーと乱数モードにおける更新エラーとを区別して設定できるようにしてもよい。
また、前記実施形態では、特図変動表示ゲームとして特図1の変動表示ゲームと特図2の変動表示ゲームの2種類の変動表示ゲームを実行可能な遊技機を説明したが、1種類の特図変動表示ゲームを実行可能に構成されているものであっても良い。さらに、前記実施形態では、本発明をカードユニットによって遊技媒体としての遊技球が貸し出されるパチンコ遊技機に適用したものを説明したが、本発明は、そのようなパチンコ遊技機に限定されないとともに、アレンジボール遊技機、雀球遊技機、及びスロットマシンなどの遊技機にも適用可能である。