以下、本発明の好適な実施の形態を図面に基づいて説明する。
図1は、本発明の一実施形態の遊技機の説明図である。
<第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(図4参照)が配設されている。
また、センターケース40の下方には、特図変動表示ゲームの開始条件を与える始動入賞口36が設けられ、その直下には上部に逆「ハ」の字状に開いて遊技球が流入し易い状態に変換する一対の可動部材37b、37bを備えるとともに内部に第2始動入賞口を有する普通変動入賞装置(普電)37が配設されている。
普通変動入賞装置37の一対の可動部材37b,37bは、常時は遊技球の直径程度の間隔をおいた閉じた閉状態(遊技者にとって不利な状態)を保持している。ただし、普通変動入賞装置37の上方には、始動入賞口36が設けられているので、閉じた状態では遊技球が入賞できないようになっている。
そして、普図変動表示ゲームの結果が所定の停止表示態様となった場合には、駆動装置としての普電ソレノイド37c(図4参照)によって、逆「ハ」の字状に開いて普通変動入賞装置37に遊技球が流入し易い開状態(遊技者にとって有利な状態)に変化させられるようになっている。
さらに、普通変動入賞装置37の下方には、特図変動表示ゲームの結果によって遊技球を受け入れない状態と受け入れ易い状態とに変換可能な特別変動入賞装置(大入賞口)38が配設されている。
特別変動入賞装置38は、上端側が手前側に倒れる方向に回動して開放可能になっているアタッカ形式の開閉扉38cを有しており、補助遊技としての特図変動表示ゲームの結果如何によって大入賞口を閉じた状態(遊技者にとって不利な閉塞状態)から開放状態(遊技者にとって有利な状態)に変換する。
即ち、特別変動入賞装置38は、例えば、駆動装置としての大入賞口ソレノイド38b(図4参照)により駆動される開閉扉38cによって開閉される大入賞口を備え、特別遊技状態中は、大入賞口を閉じた状態から開いた状態に変換することにより大入賞口内への遊技球の流入を容易にさせ、遊技者に所定の遊技価値(賞球)を付与するようになっている。
なお、大入賞口の内部(入賞領域)には、当該大入賞口に入った遊技球を検出する検出手段としてのカウントスイッチ38a(図4参照)が配設されている。
特別変動入賞装置38の下方には、入賞口などに入賞しなかった遊技球を回収するアウト口39が設けられている。
また、遊技領域32の外側(例えば、遊技盤30の上部)には、特図変動表示ゲームをなす第1特図変動表示ゲームや第2特図変動表示ゲーム及び普図始動ゲート34への入賞をトリガとする普図変動表示ゲームを一箇所で実行する一括表示装置50が設けられている。
一括表示装置50は、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への入賞球数のうち未消化の球数(始動記憶数=保留数)を表示する。具体的には、保留数が「0」のときは4つのランプを全て消灯状態にし、保留数が「1」のときはランプ1のみを点灯状態にする。また、保留数が「2」のときはランプ1と2を点灯状態にし、保留数が「3」のときはランプ1と2と3を点灯状態にし、保留数が「4」のときは4つのランプ1〜4をすべて点灯状態にする。
特図2保留表示器55は、特図2表示器52の変動開始条件となる第2始動入賞口(普通変動入賞装置37)の始動記憶数(=保留数)を、特図1保留表示器54と同様にして表示する。
普図保留表示器56は、普図表示器53の変動開始条件となる普図始動ゲート34の始動記憶数(=保留数)を表示する。例えば保留数が「0」のときはランプ1と2を消灯状態にし、保留数が「1」のときはランプ1のみを点灯状態にする。また、保留数が「2」のときはランプ1と2を点灯状態にし、保留数が「3」のときはランプ1を点滅、ランプ2を点灯状態にし、保留数が「4」のときはランプ1と2を点滅状態にする。
第1遊技状態表示器57は、例えば通常の遊技状態の場合にはランプを消灯状態にし、大当りが発生している場合にはランプを点灯状態にする。
第2遊技状態表示器60は、例えば通常の遊技状態の場合にはランプを消灯状態にし、時短状態が発生している場合にはランプを点灯状態にする。
第3遊技状態表示器58は、例えば遊技機10の電源投入時に大当りの確率状態が低確率状態の場合にはランプを消灯状態にし、遊技機10の電源投入時に大当りの確率状態が高確率状態の場合にはランプを点灯状態にする。
ラウンド表示部(ラウンド数表示器)59は、例えば、通常の遊技状態の場合にはランプを消灯状態にし、大当りが発生した場合にはその大当りのラウンド数に対応するランプ(2ラウンドor16ラウンド)を点灯状態にする。なお、ラウンド表示部(ラウンド数表示器)59は7セグメント型の表示器で構成してもよい。
本実施形態の遊技機10では、図示しない発射装置から遊技領域32に向けて遊技球(パチンコ球)が打ち出されることによって遊技が行われる。打ち出された遊技球は、遊技領域32内の各所に配置された障害釘や風車等の方向転換部材によって転動方向を変えながら遊技領域32を流下し、普図始動ゲート34、一般入賞口35、始動入賞口36、普通変動入賞装置37又は特別変動入賞装置38に入賞するか、遊技領域32の最下部に設けられたアウト口39へ流入し遊技領域から排出される。そして、一般入賞口35、始動入賞口36、普通変動入賞装置37又は特別変動入賞装置38に遊技球が入賞すると、入賞した入賞口の種類に応じた数の賞球が、払出制御装置200によって制御される払出ユニットから、前面枠12の上皿21又は下皿23に排出される。
一方、普図始動ゲート34内には、該普図始動ゲート34を通過した遊技球を検出するための非接触型のスイッチなどからなるゲートスイッチ34a(図4参照)が設けられており、遊技領域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(図4参照)が駆動されることにより、可動部材37bが所定の時間(例えば、0.3秒間)だけ開放する状態に変換され、遊技球の入賞が許容される。
始動入賞口36への入賞球及び普通変動入賞装置37への入賞球は、それぞれは内部に設けられた始動口1スイッチ36aと始動口2スイッチ37aによって検出される。始動入賞口36へ入賞した遊技球は第1特図変動表示ゲームの始動入賞球として検出され、所定の上限数(例えば、4個)を限度に記憶されるとともに、普通変動入賞装置37へ入賞した遊技球は第2特図変動表示ゲームの始動入賞球として検出され、所定の上限数(例えば、4個)を限度に記憶される。
また、この始動入賞球の検出時にそれぞれ大当り乱数値や大当り図柄乱数値、並びに各変動パターン乱数値が抽出され、抽出された乱数値は、遊技制御装置100(図4参照)内の特図記憶領域(RAMの一部)に特図始動記憶として各々所定回数(例えば、最大で4回分)を限度に記憶される。そして、この特図始動記憶の記憶数は、一括表示装置50の始動入賞数報知用の記憶表示部54、55に表示されるとともに、センターケース40の表示装置41においても表示される。
遊技制御装置100は、始動入賞領域としての始動入賞口(第1始動入賞口)36若しくは普通変動入賞装置(第2始動入賞口)37への入賞、又はそれらの始動記憶に基づいて、特図表示器51又は52で第1又は第2特図変動表示ゲームを行う。
第1特図変動表示ゲーム及び第2特図変動表示ゲームは、複数の特別図柄(特図、識別情報)を変動表示したのち、所定の結果態様を停止表示することで行われる。また、表示装置41にて各特図変動表示ゲームに対応して複数種類の識別情報(例えば、数字、記号、キャラクタ図柄など)を変動表示させる飾り特図変動表示ゲームが実行されるようになっている。
そして、特図変動表示ゲームの結果として、特図1表示器51若しくは特図2表示器52の表示態様が特別結果態様となった場合には、大当りとなって特別遊技状態(いわゆる、大当り状態)となる。また、これに対応して表示装置41の表示態様も特別結果態様となる。
表示装置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には、機械的な接点を有するマイクロスイッチを用いることができる。
図4は、本実施形態のパチンコ遊技機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が参照して変動パターンを決定するためのテーブルである。また、変動パターンテーブルには、結果がはずれとなる場合に選択されるはずれ変動パターンテーブル、結果が16R大当りや2R大当りとなる場合に選択される大当り変動パターンテーブル等が含まれる。さらに、これらのパターンテーブルには、後半変動パターンテーブル、前半変動パターンテーブルが含まれている。
また、リーチ(リーチ状態)とは、表示状態が変化可能な表示装置を有し、該表示装置が時期を異ならせて複数の表示結果を導出表示し、該複数の表示結果が予め定められた特別結果態様となった場合に、遊技状態が遊技者にとって有利な遊技状態(特別遊技状態)となる遊技機10において、複数の表示結果の一部がまだ導出表示されていない段階で、既に導出表示されている表示結果が特別結果態様となる条件を満たしている表示状態をいう。また、別の表現をすれば、リーチ状態とは、表示装置の変動表示制御が進行して表示結果が導出表示される前段階にまで達した時点でも、特別結果態様となる表示条件からはずれていない表示態様をいう。そして、例えば、特別結果態様が揃った状態を維持しながら複数の変動表示領域による変動表示を行う状態(いわゆる全回転リーチ)もリーチ状態に含まれる。また、リーチ状態とは、表示装置の表示制御が進行して表示結果が導出表示される前段階にまで達した時点での表示状態であって、表示結果が導出表示される以前に決定されている複数の変動表示領域の表示結果の少なくとも一部が特別結果態様となる条件を満たしている場合の表示状態をいう。
よって、例えば、特図変動表示ゲームに対応して表示装置に表示される飾り特図変動表示ゲームが、表示装置における左、中、右の変動表示領域の各々で所定時間複数の識別情報を変動表示した後、左、右、中の順で変動表示を停止して結果態様を表示するものである場合、左、右の変動表示領域で、特別結果態様となる条件を満たした状態(例えば、同一の識別情報)で変動表示が停止した状態がリーチ状態となる。またこの他に、すべての変動表示領域の変動表示を一旦停止した時点で、左、中、右のうち何れか二つの変動表示領域で特別結果態様となる条件を満たした状態(例えば、同一の識別情報となった状態、ただし特別結果態様は除く)をリーチ状態とし、このリーチ状態から残りの一つの変動表示領域を変動表示するようにしても良い。そして、このリーチ状態には複数のリーチ演出が含まれ、特別結果態様が導出される可能性が異なる(期待度が異なる)リーチ演出として、ノーマルリーチ、スペシャル1リーチ、スペシャル2リーチ等が設定されている。
なお、期待度は、リーチなし<ノーマルリーチ<スペシャル1リーチ<スペシャル2リーチの順に高くなるようになっている。また、このリーチ状態は、少なくとも特図変動表示ゲームで特別結果態様が導出される場合(大当りとなる場合)における変動表示態様に含まれるようになっている。即ち、特図変動表示ゲームで特別結果態様が導出されないと判定すると(はずれとなる場合)における変動表示態様に含まれることもある。よって、リーチ状態が発生した状態は、リーチ状態が発生しない場合に比べて大当りとなる可能性の高い状態である。
CPU111Aは、ROM111B内の遊技制御用プログラムを実行して、払出制御装置200や演出制御装置300に対する制御信号(コマンド)を生成したりソレノイドや表示装置の駆動信号を生成して出力して遊技機10全体の制御を行う。
また、後述するように、遊技用マイコン111は、特図変動表示ゲームの大当り判定用乱数や大当りの図柄を決定するための大当り図柄乱数、普図変動表示ゲームの当り判定用乱数等を生成するための乱数生成回路608と、発振回路113からの発振信号(原クロック信号)に基づいてCPU111Aに対する所定周期(例えば、4ミリ秒)のタイマ割込み信号や乱数生成回路の更新タイミングを与えるクロックを生成するクロックジェネレータ609を備えている。
払出制御装置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のようなポートは設けられていない。
次に、図5を用いて、演出制御装置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は、アドレス/データバス340を介して主制御用マイコン(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の時短動作状態は、それぞれ独立して発生可能であり、両方を同時に発生することも可能であるし、一方のみを発生させることも可能である。
次に、図6を用いて、図4の遊技機制御システムを構成する遊技用マイコン111の構成について説明する。図6には遊技用マイコン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は、ユーザプログラムROM602に格納されている遊技制御プログラムや演出制御プログラムをロードして実行することによって、遊技機10の制御に必要な各種機能をソフト的に実現する。ユーザプログラムROM602に格納されている制御プログラムは、遊技用演算処理装置600が遊技制御装置100に備わる遊技用マイコンである場合には、遊技の制御を行う遊技制御プログラムであり、遊技用演算処理装置600が払出制御装置200の遊技用マイコンである場合には、遊技球の払出しを行う球払出装置を制御する払出制御プログラムである。
HWパラメータROM603は、正当性確認情報を格納するメモリである。正当性確認情報とは、遊技用演算処理装置600の正当なものであるかのチェックを行うための情報であり、例えば、パチンコ遊技機10の一意な識別子を示す固有ID、メーカコード(パチンコ遊技機の製造メーカ毎に割り振られた固有の製造メーカの一意な識別子)、パチンコ遊技機のランク(1種、2種等)を示すランクコード、製造メーカがパチンコ遊技機の種類に設定する機種コード、検査番号を示す検査コード、電源投入時にRAMをバックアップするか否かを示すRAMバックアップコード、貸出料金設定スイッチによって設定された貸出料金等である。また、HWパラメータROM603には、最初に貸出情報要求を送信した検査装置の一意な識別子である固有IDが一つのみ記憶される。第3者機関又はパチンコ遊技機の製造メーカがユーザプログラムROM602にプログラムを書き込む際に、正当性確認情報がHWパラメータROM603に書き込まれる。
遊技用演算処理装置600の正当性のチェックを行う場合、遊技用演算処理装置600の電源立ち上がり時に、遊技用演算処理装置600自身が演算した演算値と、正当性確認情報(すなわち、第3者機関等によって予め設定された結果値)とを比較判定することで、遊技用演算処理装置600が正規のものであるか否かチェックする構成になっている。
ユーザワークRAM604は、遊技領域部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に備わる遊技用マイコンである場合には、乱数生成回路608はなくてもよい。
クロックジェネレータ609は、内部クロック信号を生成するとともに、生成されたクロック信号をさらに分周して遊技制御に必要なタイミングに係わる信号を発生させる(詳細は図7にて後述)。リセット/割込制御回路(割込信号発生手段)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内に設けられ、当り乱数等の生成に使用される乱数生成回路およびクロックジェネレータについて、詳細に説明する。
図7は、本発明の実施形態の遊技用演算処理装置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に対して所定周期(例えば、4ミリ秒)のタイマ割込み信号(CTC2)および乱数コントローラ608aへ供給する乱数更新のトリガを与える信号CTC2を発生する。なお、CTC回路609aは、発生する信号としてCTC2の他に、例えばCTC1を発生するようにし、このCTC1とCTC2の発生周期を同じ(例えば、4ミリ秒)にしたり、異なる(例えば、CTC1;4ミリ秒、CTC2;2ミリ秒)ようにしたり、自由に設定できるように構成されている。
乱数生成回路(乱数生成手段)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の更新範囲情報を記憶する範囲情報記憶手段として機能する。本実施形態では、大当り乱数の最大値は例えば310に設定され、普図当り乱数の最大値は例えば250に設定され、特図大当り図柄乱数1,2の最大値は例えば198に設定される。
スタート値設定レジスタ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の間の値をとり得ることになる。また、「乱数モード」では、カウンタ値が一周するまで、同じ乱数値が生成されないようになっている。従って、乱数カウンタ608b6が所定の最小値と最大値の範囲内で循環して所定時間毎にカウント値が更新される周期的カウンタとして機能する。
ワークエリア608b8は、バックアップ電源によりバックアップされたRAMもしくは不揮発性のメモリで構成され、乱数カウンタ608b7の更新用バッファおよびバックアップエリアとして機能するものであり、ワークエリア608b8で乱数の更新がなされ更新された値が乱数カウンタ608b7に格納される。従って、ワークエリア608b8が乱数の更新手段として機能し、乱数カウンタ608b7が乱数値記憶手段として機能する。ワークエリア608b8はCPUからの読込みが不能なレジスタとされ、これにより誤って更新中の不確定な値がCPUに取り込まれるのを防止することができる。また、ワークエリア608b8は複数のエリアに分割されており、そのうちひとつのエリアには停電発生時に停電直前の初期値用カウンタ608b14の値が保持される。以下、このエリアをバックアップエリアと称し、乱数値の入る乱数更新エリアと区別する。
ワークエリア608b8の乱数値は、CTC回路609aからの信号CTC2または乱数更新トリガレジスタ608b3の書込みにより乱数の更新が指令されると、最大値設定レジスタ608b4で示される範囲の値となるまで更新され続ける。そして、このワークエリア608b8の値が更新(ダウンカウント方式によりカウント値を更新(−1))されている間は、「乱数モード」であっても「カウンタモード」であっても、乱数カウンタ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による乱数生成処理に関わる不正が行なわれにくくする初期値(スタート値)の攪拌更新処理の概略について、図8を用いて説明する。なお、本実施形態においてこの処理が適用されるのは、普図変動表示ゲームにおいて当りを発生させるか否かを決定する当り乱数と、特図1および特図2の各変動表示ゲームにおいて大当りを発生させるか否かを決定する大当り乱数と、特図1および特図2の各変動表示ゲームにおける大当り停止図柄を決定する大当り図柄乱数1,2の計4つの乱数の生成処理である。
本実施形態において、当り乱数は、図9(a)に示すように「0」〜「250」の範囲内で更新され、遊技状態が通常遊技状態の場合には、当り判定値と一致する値(例えば、「7」)の振分数が1であり、当り判定値と一致しない値(はずれ値;例えば、「0」〜「6」、「8」〜「250」)の振分数が250となっている。すなわち、通常遊技状態における普図変動表示ゲームにおいて、当りが発生する確率は1/251となるように設定されている。
また、大当り乱数は、図9(b)に示すように「0」〜「310」の範囲内で更新され、遊技状態が通常遊技状態の場合には、当り判定値と一致する値(例えば、「7」)の振分数が1であり、当り判定値と一致しない値(はずれ値;例えば、「0」〜「6」、「8」〜「310」)の振分数が310となっている。すなわち、通常遊技状態における特図1および特図2の各変動表示ゲームにおいて、大当りが発生する確率は1/311となるように設定されている。
また、大当り図柄乱数1は、図9(c)に示すように「0」〜「198」の範囲内で更新され、遊技状態が通常遊技状態、確率変動状態のいずれの場合も共通の判定値が振り分けられている。具体的には、例えば、大当り図柄乱数1として「0」〜「29」のうちの何れか1つを抽出した場合には、停止表示態様として「2R通常大当りを示す大当り図柄(大当りラウンド数が2ラウンドであり、その大当りの終了後に時短状態が発生することを示す図柄)」を選択する。
また、大当り図柄乱数1として「30」〜「79」のうちの何れか1つを抽出した場合には、停止表示態様として「2R確変大当りを示す大当り図柄(大当りラウンド数が2ラウンドであり、その大当りの終了後に確率変動状態が発生することを示す図柄)」を選択する。
また、大当り図柄乱数1として「80」〜「118」のうちの何れか1つを抽出した場合には、停止表示態様として「16R通常大当りを示す大当り図柄(大当りラウンド数が16ラウンドであり、その大当りの終了後に時短状態が発生することを示す図柄)」を選択する。
また、大当り図柄乱数1として「119」〜「198」のうちの何れか1つを抽出した場合には、停止表示態様として「16R確変大当りを示す大当り図柄(大当りラウンド数が16ラウンドであり、その大当りの終了後に確率変動状態が発生することを示す図柄)」を選択する。
すなわち、大当りが発生した場合において確率変動状態が発生する確率(割合)は130/199となるように設定されている。なお、大当り図柄乱数2の振り分けは大当り図柄乱数1と同一であるため、説明を省略する。
次に、普図の当り乱数の攪拌更新処理について説明する。
図8(A)は普図の当り乱数を生成する乱数カウンタ608b7の概念図、図8(B)は乱数カウンタ608b7が一周するごとに乱数カウンタ608bに再設定される初期値(スタート値)を生成する初期値乱数カウンタの概念図である。図8(A)の乱数カウンタは、CTC回路609aから出力される周期的な信号CTC2が乱数更新コントローラ608aに入力される毎に更新(−1)される。初期値乱数カウンタは、図6の遊技用演算処理装置600内のユーザワークRAM604内に設けられるカウンタで、ユーザプログラム(メイン処理の図15の初期値乱数更新処理)によって更新(+1)される。なお、図8には、一例として初期値乱数カウンタが8ビットで構成され、乱数カウンタ608b7の最大値として「250」が設定されている場合が示されている。前記最大値設定レジスタ608b4に最大値として「N」が設定された場合には、図8(A)の乱数カウンタは最大値MAXが「N」のカウンタとして動作することとなる。
本実施形態においては、電源投入時およびシステムリセット時に、乱数生成回路608内のワークエリア608b8から復帰され毎回ランダムな値となる初期値用カウンタ608b14の値(図8では「2」)が、図8(A)の乱数カウンタ608b7と、図8(B)の初期値乱数カウンタ(置換カウンタ)に、初期値としてそれぞれ設定される(符号#1)。その後、図8(A)の乱数カウンタ608b7と図8(B)の初期値乱数カウンタは、別々のタイミングで更新(−1または+1)される(符号#2)。
その後、(B)の初期値乱数カウンタの値は、CPUのタイマ割込み処理(図17)内の乱数更新処理1(S45、図18)において、そのときの値Ni(図8では「149」)がスタート値レジスタ608b5にセットされる(符号#3)。そして、乱数カウンタ608b7が一周したとき(符号#4)に、スタート値レジスタ608b5の値を、次の計数サイクルにおける初期値(スタート値)として乱数カウンタ608b7に再設定、すなわちスタート値の差し替えをする(符号#5)。すると、その後、乱数カウンタ608b7は、設定された値Ni(=149)を初期値(スタート値)として、信号CTC2が入力される毎に更新(−1)される(符号#6)。
一方、図8(B)の初期値乱数カウンタは、スタート値レジスタ608b5にカウント値Ni(=149)が設定された後も引き続いて更新(+1)される(符号#3’)。なお、初期値(スタート値)の乱数カウンタ608b7への再設定(差し替え)は、直接ではなくスタート値レジスタ608b5の値をワークエリア608b8へ格納することにより行なわれる。乱数カウンタ608b7の値の更新は直接行なわれるのではなく、実際の更新はワークエリア608b8で行い、乱数カウンタ608b7には更新結果が格納されるためである。以上のような処理によって、乱数カウンタ608b7のスタート値が攪拌され、乱数取得に関わる不正が行われにくくすることができる。
すなわち、不正行為者が、例えば遊技機の遊技制御装置から各種被制御装置への制御信号の送信タイミングなどに基づいて乱数カウンタの更新タイミングを割り出したとしても、周回の初期値の変更の仕組みについて解析しない限り乱数カウンタの値まで割り出すことは難しく、特定の遊技状態(大当り状態)を発生させる不正行為を行うことが著しく困難になる。また、電源投入及びシステムリセット毎に乱数生成回路でランダムな値が生成され、乱数カウンタの1周目の周回初期値と、2周目以降の周回初期値(スタート値)を生成する置換カウンタの初期値として設定されるようにしたので、乱数カウンタの値を外部から割り出すことは難しくなり、不正行為を未然に防止できる。
そして、本実施形態の遊技機10は、初期値乱数カウンタの更新タイミングを攪拌するようにして、不正行為に対する防止策をより強固のものとするように構成している。これにより、不正行為者が乱数カウンタの更新タイミングを不正に取得し、さらに初期値乱数カウンタの更新タイミングも不正に取得するために、所定タイミングで初期値乱数カウンタのカウンタ値を取得したとしても、この不正取得したカウンタ値から初期値乱数カウンタの更新タイミングが割り出されることを防止するようにしている。なお、この初期値乱数カウンタの更新タイミングの攪拌に関する詳細については後述する。
〔乱数更新コントローラのメイン処理〕
次に、乱数更新コントローラ608aによる乱数生成回路608内の制御手順について説明する。図10には、乱数更新コントローラによるメイン処理の前半部分のフローチャートが、また、図11には、乱数更新コントローラによるメイン処理のうち、カウンタモードが設定された場合に実行する処理とメイン処理の後半部分のフローチャートが、また、図12には、乱数更新コントローラによるメイン処理のうち、乱数モードが設定された場合に実行する処理のフローチャートが示されている。このメイン処理は、電源投入及びシステムリセット毎に開始され電源がオンされている間連続して実行されるループ処理であり、乱数更新コントローラ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,図13)を実行してから、回数カウンタ608b13を「0」に設定する(ステップS107)。なお、乱数カウンタ608b7の変更が禁止されるまでの間は、CPUコア601(図6)によって乱数カウンタ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)、ステップS118へ移行する。
次に、ステップS118では、スタート値設定レジスタ608b5に次回に設定されるスタート値(開始値)が格納されているか否かを示すソフト乱数ステータスレジスタ608b15の情報(フラグ)がオフになっているか判定する(ステップS118)。ここで、フラグがオフになっていないつまり新しいスタート値が格納されていない状態の場合(No)は、ステップS121へジャンプする。
また、ステップS118で、フラグがオフになっている(Yes)と判定すると、次のステップS119で、ワークエリア608b8に記憶されている初期値用カウンタの値とスタート値設定レジスタ608b5に設定されているスタート値とを比較して前回の値と一致しているか否か判定する。そして、一致している場合(Yes)は、ステップS121へジャンプし、ステップS119で、一致していない(No)と判定すると、次のステップS120でソフト乱数ステータスレジスタ608b15のフラグをオンに設定してステップS121へ進む。
ステップS121では、周回カウンタ608b12の値をインクリメント(+1)し、周回カウンタの値が乱数カウンタの最大値に1加えた値以上か否かの判定を行う(ステップS122)。そして、周回カウンタの値が乱数カウンタ608b7の最大値に1加えた値以上の場合(ステップS122;Yes)は、周回カウンタの値を「0」に設定する(ステップS123)。一方、この周回カウンタの値が乱数カウンタ608b7の最大値に1加えた値以上か否かの判定(ステップS122)において、周回カウンタの値が乱数カウンタ608b7の最大値に1加えた値以上でない場合(ステップS122;No)は、ステップS142へ進む。従って、ステップS122が周期的カウンタのカウント値が一循環を完了したか否かを判定する周期的カウンタ循環判定手段として機能する。
次に、スタート値設定レジスタ608b5において乱数更新のスタート値の取得及び最大値以下にする補正を行う(ステップS124)。図8に示すように、当り乱数カウンタ(A)よりも初期値乱数カウンタ(B)の方が範囲が大きい場合に、当り乱数カウンタのとり得ない値を初期値乱数カウンタからスタート値として取得して設定した場合を考慮したものである。
具体的には、このとき、最大値よりも取得したスタート値の方が大きい場合には、最大値をスタート値で除した際の余り値をスタート値とする補正を行う。その後、ワークエリア608b8にスタート値を取り込み(ステップS125)、次のステップS126でソフト乱数ステータスレジスタ608b15のフラグをオフに設定してスタート値設定レジスタ608b5の値を設定したことを記憶してから、一周完了報知レジスタ608b6をオンに設定する(ステップS127)。
従って、ステップS122〜S124が周期的カウンタ循環判定手段により一循環完了したと判定された場合に、初期値カウンタのカウント値を周回初期値として取得する周回初期値取得手段として機能する。また、ステップS125が周回初期値取得手段によって取得された周回初期値を、周期的カウンタの周回初期値として設定する周回初期値設定手段として機能する。そして、スタート値設定レジスタ608b5とステップS122〜S125とが、乱数カウンタに1周目の周回初期値が設定された後、乱数カウンタが更新されて当該周回の周回初期値に達する毎に、当該乱数カウンタの新たな周回初期値を設定する第2攪拌手段として機能することとなる。このように、乱数カウンタの周回の初期値は少なくとも一巡する毎に第2攪拌手段によって設定された周回初期値に置換されるので、乱数カウンタの値を外部から割り出すことは難しく、不正行為を未然に防止することができる。
また、最大値設定レジスタ608b4に設定されたモードが「乱数モード」であるか「カウンタモード」であるかの判定(ステップS114)において、最大値設定レジスタ608b4に設定されたモードが「乱数モード」の場合、ステップS128へ進む。そして、ワークエリア608b8にてM系列乱数を更新し(ステップS128)、ワークエリア608b8のM系列乱数に基づく値が最大値よりも大きいか否かの判定を行う(ステップS129)。
この判定(ステップS129)において、ワークエリア608b8のM系列乱数に基づく値が最大値よりも大きい場合(Yes)は、分周信号を検出したか否かの判定(ステップS130)を行う。そして、この判定(ステップS130)において、分周信号を検出した場合(Yes)は、回数カウンタ608b13の値を1インクリメントし(ステップS131)、ステップS128へ戻る。一方、この分周信号を検出したか否かの判定(ステップS130)において、分周信号を検出していない場合(ステップS130;No)は、ステップS131を実行せずにステップS128へ戻る。
また、ステップS129の判定において、ワークエリア608b8のM系列乱数に基づく値が最大値よりも大きくない場合(ステップS129;No)は、ステップS132へ移行して、スタート値設定レジスタ608b5に次回に設定されるスタート値(開始値)が格納されているか否かを示すソフト乱数ステータスレジスタ608b15の情報(フラグ)がオフになっているか判定する(ステップS132)。ここで、フラグがオフになっていないつまり新しいスタート値が格納されていない状態の場合(ステップS132;No)は、ステップS135へジャンプする。
また、ステップS132で、フラグがオフになっている(ステップS132;Yes)と判定すると、次のステップS133で、ワークエリア608b8に記憶されている初期値用カウンタの値とスタート値設定レジスタ608b5に設定されているスタート値とを比較して前回の値と一致しているか否か判定する(ステップS133)。そして、一致している場合(ステップS133;Yes)は、ステップS135へジャンプし、ステップS133で、一致していない(ステップS133;No)と判定すると、次のステップS134でソフト乱数ステータスレジスタ608b15のフラグをオンに設定(ステップS134)してステップS135へ進む。
ステップS135では、周回カウンタ608b12の値をインクリメント(+1)し、周回カウンタの値が最大値以上か否かの判定を行う(ステップS136)。この判定(ステップS136)において、周回カウンタの値が最大値以上の場合(ステップS136;Yes)は、周回カウンタの値を「0」に設定する(ステップS137)。一方、周回カウンタの値が最大値以上か否かの判定(ステップS136)において、周回カウンタの値が最大値以上でない場合(ステップS136;No)は、ステップS142へ進む。従って、ステップS136が一周検出手段として機能する。
次に、スタート値設定レジスタ608b5においてスタート値の取得及び最大値以下にする補正を行う(ステップS138)。具体的には、このとき、最大値よりも取得したスタート値の方が大きい場合に、最大値をスタート値で除した際の余り値をスタート値とする補正を行う。そして、ワークエリア608b8にスタート値を取り込み(ステップS139)、次のステップS140でソフト乱数ステータスレジスタ608b15のフラグをオフに設定してステップS141へ進む。ステップS141では、一周完了報知レジスタ608b6をオンに設定し、ステップS142へ進む。
次に、ステップS127又はステップS141から移行したステップS142で回数カウンタ608b13の値が規定値に達したか否かの判定を行う。ここで、規定値(規定更新時間)は、例えば、「カウンタモード」の場合は規定値が「2」、「乱数モード」の場合であって最大値が「17」以上の場合は規定値が「20」、「乱数モード」の場合であって最大値が「16」以下の場合は規定値が「200」に設定される。これらの規定値(規定更新時間)のデータは、遊技用マイコン111のROM111Bに予め記憶されている。
従って、乱数カウンタ608b7の更新が開始されると、分周回路609bから乱数更新コントローラ608aへ分周信号入力ごとに乱数を更新するのではなく、入力される分周信号が所定回数検出されるまでは、乱数カウンタ608b7を更新しないことになり、さらに、その検出回数がある程度のまとまった数に固定されることになる。言い換えれば、「カウンタモード」の場合は、乱数カウンタ608b7を更新するために、分周信号が2回発生する時間(規定更新時間)を要することになる。また、「乱数モード」の場合であって乱数カウンタの最大値が「17」以上の場合は、乱数カウンタ608b7を更新するために、分周信号が20回発生する時間を要することになり、「乱数モード」の場合であって乱数カウンタの最大値が「16」以下の場合は、乱数カウンタ608b7を更新するために、分周信号が200回発生する時間を要することになる。
回数カウンタ608b13の値が規定値に達したか否かの判定(ステップS142)において、回数カウンタの値が規定値に達していない場合(ステップS142;No)は、分周信号を待ち(ステップS145)、回数カウンタの値をインクリメント(+1)して(ステップS146)、ステップS142へ戻る。一方、回数カウンタの値が規定値に達したか否かの判定(ステップS142)において、回数カウンタの値が規定値に達した場合(ステップS142;Yes)は、ワークエリア608b8の値を乱数カウンタ608b7に設定し(ステップS143)、乱数更新中報知レジスタ608b9をオフに設定し(ステップS144)、ステップS107に戻る。
なお、図10乃至図12には示されていないが、乱数更新コントローラ608aは、乱数更新処理後に乱数カウンタ608b7の値をチェックして、更新がされていない場合には更新エラーと判定して、更新エラー報知レジスタ608b10にエラーが発生したことを示す値を設定するように構成されている。
従って、この乱数更新コントローラ608aによるメイン処理によって構成されるソフトウェアによって、所定の最小値と最大値の範囲内で循環してカウント値が更新され、該カウント値を周期的カウンタの周回初期値として使用される初期値カウンタが機能することとなる。
また、本実施形態では、複数の乱数ブロック608b〜608eを設けることで、乱数更新コントローラ608aによって実行されるメイン処理をそれぞれの乱数ブロック608b〜608に対して実行することとなる。これにより、周期的カウンタを複数設けるとともに、各々の周期的カウンタに対応して初期値カウンタを複数設けることとなる。
〔乱数カウンタ初期値補正処理〕
図13には、図10のステップS160で行なわれる乱数カウンタ初期値補正処理の具体的な手順の一例が示されている。
この乱数カウンタ初期値補正処理では、先ずワークエリア608b8内の初期値用カウンタの値が最大値よりも大きいか否か判定する(ステップS161)。この最大値は、最大値設定レジスタ608b4に設定されている値である。ステップS161で、ワークエリア608b8内の初期値用カウンタの値が最大値よりも大きくない(ステップS160;No)と判定するとステップS163へ移行し、ステップS161でワークエリア608b8の値が最大値よりも大きい(ステップS161;Yes)と判定すると、ステップS162でワークエリア608b8内の乱数カウンタの値を最大値以下にする補正を行なってからステップS163へ移行する。具体的には、ワークエリア608b8内の乱数カウンタの値を最大値で割った余りを算出して補正した値とする。従って、ステップS161〜S162が、生成されたランダムな値が更新範囲情報に規定されている更新範囲外の値が設定された場合には、更新範囲外の値を前記範囲情報記憶手段に記憶された上限値で除算し、算出された余り値を前記乱数カウンタの1周目の周回初期値として設定する第1攪拌手段として機能することとなる。
ステップS163では、補正後(もしくは補正されていない)値が、ワークエリア608b8のバックアップエリアに格納されている前回の初期値(電源遮断時に格納した初期値用カウンタ608b14の値)と一致しているか否か判定し、一致していない(ステップS163;No)と判定するとステップS165へ移行し、ワークエリア608b8の値を乱数カウンタ608b7に格納する。また、ステップS163で前回の初期値と一致している(ステップS163;Yes)と判定すると、ステップS164でワークエリア608b8内の初期値用カウンタの値をM系列更新してからステップS165へ移行してワークエリア608b8の値を乱数カウンタ608b7に格納する。これにより、乱数カウンタの値が前回と同じ初期値から更新開始されるのを回避して、遊技者による不正な大当り乱数の取得を防止することができる。なお、ステップS164における更新は、M系列更新に限定されず他の方式による更新であってもよい。
なお、ユーザプログラムによって周期的に更新される乱数カウンタの周回初期値として不適切な値(所定の範囲外の値)が記憶されるおそれがあるが、不適切な値(所定の範囲外の値)が記憶された場合には、上記乱数カウンタ初期値補正処理により補正を受けて、所定の範囲内の値に設定し直され、乱数カウンタの周回の初期値には常に所定の範囲内の適切な値が設定されるので、所定の正しい確率で遊技の決定処理を行うことができる。
次に、上記遊技制御装置100の遊技用マイクロコンピュータ(遊技用マイコン)111によって実行される制御について説明する。
遊技用マイコン111による制御処理は、ループ処理として繰り返されるメインルーチンであるメイン処理(主に図14及び図15参照)と、メイン処理に対する割り込みルーチンとして、所定時間周期(例えば4ms)で行われるタイマ割込み処理(図16参照)とからなる。
〔メイン処理〕
先ず、メイン処理について説明する。
メイン処理は、電源が投入されることで開始される。このメイン処理においては、図14に示すように、まず、割込みを禁止する処理(ステップ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)と判定された場合は、図15のステップS20へジャンプする。
また、ステップS13でチェックサムが正常(ステップS13;Yes)と判定した場合は、図15のステップS14へ移行して、RWM(リードライトメモリ:実施例ではRAM)内の初期化すべき領域に停電復旧時の初期値をセーブ(格納)してから、エラーや不正監視に係る領域をリセットする(ステップS15)。次に、RWM内の遊技状態を記憶する領域を調べて遊技状態が高確率状態であるか否かを判定する(ステップS16)。ここで、高確率でないと(ステップS16;No)と判定した場合は、ステップS17,S18をスキップしてステップS19へ移行する。
また、ステップS16で高確率であると(ステップS16;Yes)と判定した場合は、ステップS17で高確率の報知フラグ領域にオン情報をセーブしてから、例えば一括表示装置50に設けられる高確率報知LEDをオン(点灯)させるONデータをセグメントに対応する領域(ポート136)に設定(ステップS18)してステップS19へ移行する。ステップS19では、後述の特図ゲーム処理を合理的に実行するために用意されている処理番号に対応する停電復旧時のコマンドを演出制御装置300へ送信する処理を行なってステップS23へ進む。
一方、ステップS9,S11,S13からステップS20へジャンプした場合には、先ずCPUが使用するRAM内の作業領域をリセットしてから、初期化すべき領域に電源投入時の初期値をセーブする(ステップS21)。それから、ステップS22で電源投入時のコマンドを演出制御装置300へ送信する処理を行なってステップS23へ進む。ステップS23では、遊技用マイコン111(クロックジェネレータ609)内のタイマ割込み信号及び乱数更新トリガ信号(CTC2)を発生するCTC(Counter/Timer Circuit)回路609aを起動する処理を行う。
上記ステップS23のCTC起動処理の後は、乱数生成回路608を起動設定する処理を行う(ステップS24)。具体的には、乱数生成回路608内の所定のレジスタ(CTC更新許可レジスタ608b1〜608e1)へ乱数生成回路608を起動させるためのコード(指定値)の設定などがCPU111Aによって行われる。それから、ステップS25で、電源投入時の乱数生成回路608内の所定のレジスタ(ソフト乱数ステータスレジスタ608b15〜608e15)の値を、対応する各種初期値乱数(普図の当たりを決定する乱数(当り乱数)、特図変動表示ゲームにおいて大当りを発生させるか否かを決定する乱数(大当り乱数)、大当り図柄を決定する乱数(大当り図柄乱数1、大当り図柄乱数2))の初期値(スタート値)としてRWMの所定領域にセーブしてから、割込みを許可する(ステップS26)。本実施例で使用するCPU111A内の乱数生成回路においては、電源投入毎にソフト乱数ステータスレジスタ608b15〜608e15の初期値が変わるように構成されているため、この値をCPU側で生成する各種初期値乱数の初期値(スタート値)とすることで、ソフトウェアで生成される乱数の規則性を崩すことができ、遊技者による不正な乱数の取得を困難にすることができる。
続いて、各種初期値乱数の値を更新して乱数の規則性を崩すための初期値乱数更新処理(ステップS27,図16)を行う。なお、本実施形態においては、当り乱数、大当り乱数、及び大当り図柄乱数をソフトウェアで生成されるソフト乱数で構成したが、これに限定されず、特に、大当り乱数を乱数生成回路のハードウェアにおいて生成される乱数(ハード乱数)を使用して生成するように構成してもよい。
また、本実施形態では、このステップS27にて初期値乱数更新処理が行われる前に、ステップS26において割込みを許可している。このため、初期値乱数更新処理の実行中に割込み(タイマ割込み)が発生することがあり、この割込みが発生するタイミングに応じてスタート値設定レジスタ608b5〜608e5に設定される各種初期値乱数の乱数値が、初期値乱数更新処理において更新される前の値と更新された後の値の何れかをとることとなる。このため、後述するタイマ割込み処理にて実行される乱数更新処理1においてスタート値設定レジスタ608b5〜608e5に設定される各種初期値乱数の乱数値の規則性を崩すことができるようになる。また、初期値乱数更新処理(ステップS27)の前に割り込みを許可する(ステップS26)ことによって、初期値乱数更新処理中にタイマ割込みが発生すると割込み処理が優先して実行されるようになり、タイマ割込みが初期値乱数更新処理によって待たされることで割込み処理が圧迫されるのを回避することができる。
従って、このメイン処理におけるステップS26及びステップS27が、周回初期値更新手段による更新を制御する更新制御手段として機能し、これにより初期値カウンタ更新手段による一の更新処理の実行中に、周回初期値更新手段による周回初期値更新を割り込ませて実行可能に制御することができるようになる。
上記ステップS27の初期値乱数更新処理の後、電源装置400から入力されている停電監視信号をポート及びデータバスを介して読み込んでチェックして停電が発生したか否かの判定(ステップS28)を行い、停電が発生していない場合(ステップS28;No)には、ステップS27に戻り、上記初期値乱数更新処理と停電監視信号のチェック(ループ処理)を繰り返し行う。
上記ステップS28において、停電が発生していると判定した場合(ステップS28;Yes)は、一旦割込みを禁止する処理(ステップS29)、全出力ポートにオフデータを出力する処理(ステップS30)、を行う。その後さらに、停電復旧検査領域に停電復旧検査領域チェックデータをセーブする処理(ステップS31)、RWMの電源遮断時のチェックサムを算出する処理(ステップS32)を行なった後、算出したチェックサムをセーブ(ステップS33)して、RWMへのアクセスを禁止する処理(ステップS34)を行なってから、遊技機の電源が遮断されるのを待つ。このように、停電復旧検査領域にチェックデータをセーブするとともに、電源遮断時のチェックサムを算出することで、電源の遮断の前にRWMに記憶されていた情報が正しくバックアップされているか否かを電源再投入時に判断することができる。
〔初期値乱数更新処理〕
次に、上述のメイン処理における初期値乱数更新処理(ステップS27)の詳細について説明する。
図16に示すように、初期値乱数更新処理では、当り初期値乱数をインクリメント(更新(+1))する処理(ステップS271)、大当り初期値乱数をインクリメント(更新(+1))する処理(ステップS272)、大当り図柄初期値乱数1をインクリメント(更新(+1))する処理(ステップS273)、大当り図柄初期値乱数2をインクリメント(更新(+1))する処理(ステップS274)を順次行う。なお、各乱数更新処理では、上限値がそれぞれ設けられ、上限値に達すると0となり、0から上限値の間で順次更新(+1)する処理が行われる。このように、メイン処理の中で時間が許す限り乱数をインクリメントし続けることによって、乱数のランダム性を高めることができるようにするとともに、割込みが発生した時点における各種初期値乱数がとる値の規則を無くすことができるようになる。
従って、このメイン処理における初期値乱数更新処理(ステップS27)が、遊技プログラムに基づいて複数の初期値カウンタのカウント値の更新処理を実行する初期値カウンタ更新手段として機能する。これにより、初期値カウンタ更新手段は、一の更新処理において複数の初期値カウンタのカウント値を順次更新させることとなり、また、割込み制御手段による一の制御処理が終了し、該割込み制御手段による次の制御処理が実行されるまでの残余時間において、初期値カウンタのカウント値の更新処理を実行することとなる。
〔タイマ割込み処理〕
次に、タイマ割込み処理について説明する。
図17に示すように、タイマ割込み処理は、クロックジェネレータ609内のCTC回路609aで生成される周期的なタイマ割込み信号(CTC2)がCPU111Aに入力されることで開始される。遊技用マイコン111Aにおいてタイマ割込みが発生すると、図17のタイマ割込み処理が開始される。
タイマ割込み処理が開始されると、まず所定のレジスタに保持されている値を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)を行なって、タイマ割込み処理を終了する。
従って、この遊技制御装置100の遊技用マイコン111によって実行されるタイマ割込み処理(図17)が、更新制御手段による制御を含む遊技の進行を制御する処理を所定時間毎に、初期値カウンタ更新手段による一の更新処理に割り込ませて実行する割込み制御手段として機能する。
〔乱数更新処理1〕
次に、上述のタイマ割込み処理における乱数更新処理1(ステップS45)の詳細について説明する。
乱数更新処理1は、図16の初期値乱数更新処理の対象となっている当り乱数、大当り乱数、大当り図柄乱数1、大当り図柄乱数2の初期値(スタート値)を更新するための処理である。
図18に示すように、乱数更新処理1においては、先ず乱数の更新状態を示すソフト乱数ステータスレジスタ608b15〜608e15の値を読み込む(ステップS451)。そして、乱数が一周して次回の初期値(スタート値)設定待ちの乱数があるかチェックする(ステップS452)。ここで、初期値設定待ちの乱数がなければ当該乱数更新処理1を終了する(ステップS453:No)。一方、初期値設定待ちの乱数があるときはステップS454へ進む(ステップS453:Yes)。
ステップS454では、普図の当り乱数が次回の初期値(スタート値)設定待ちの乱数であるかチェックする。ここで、初期値設定待ちでなければステップS458へジャンプする(ステップS455:No)。一方、普図の当り乱数が初期値設定待ちであるときはステップS456へ進む(ステップS455:Yes)。ステップS456では、次回初期値として当り初期値乱数をロードし、次のステップS457で普図の当り乱数の次回の初期値を、対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタ(スタート値設定レジスタ608b5)に設定して、ステップS458へ進む。
ステップS458では、大当り乱数が次回の初期値(スタート値)設定待ちの乱数であるかチェックする。ここで、初期値設定待ちでなければステップS462へジャンプする(ステップS459:No)。一方、大当り乱数が初期値設定待ちであるときはステップS460へ進む(ステップS459:Yes)。ステップS460では、次回初期値として大当り初期値乱数をロードし、次のステップS461で大当り乱数の次回の初期値を、対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタ(スタート値設定レジスタ608c5)に設定して、ステップS462へ進む。
ステップS462では、大当り図柄乱数1が次回の初期値(スタート値)設定待ちの乱数であるかチェックする。ここで、初期値設定待ちでなければステップS466へジャンプする(ステップS463:No)。一方、大当り図柄乱数1が初期値設定待ちであるときはステップS464へ進む(ステップS463:Yes)。ステップS464では、次回初期値として大当り図柄初期値乱数1をロードし、次のステップS465で大当り図柄乱数1の次回の初期値を、対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタ(スタート値設定レジスタ608d5)に設定して、ステップS466へ進む。
ステップS466では、大当り図柄乱数2が次回の初期値(スタート値)設定待ちの乱数であるかチェックする。ここで、初期値設定待ちでなければ当該乱数更新処理1を終了する(ステップS467:No)。一方、大当り図柄乱数2が初期値設定待ちであるときはステップS468へ進む(ステップS467:Yes)。ステップS468では、次回初期値として大当り図柄初期値乱数2をロードし、次のステップS469で大当り図柄乱数2の次回の初期値を、対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタ(スタート値設定レジスタ60e5)に設定して、当該乱数更新処理1を終了する。
従って、このタイマ割込み処理における乱数更新処理1(ステップS45)が、周回初期値更新手段による更新を制御する更新制御手段として機能する。
なお、乱数更新処理1(ステップS45)を、周期的カウンタの周回初期値を対応する初期値カウンタのカウント値で更新する周回初期値更新手段として機能させることもできる。また、ステップS452を、周期的カウンタのカウント値が一循環を完了したか否かを判定する周期的カウンタ循環判定手段として機能させることもできる。また、ステップS456を、周期的カウンタ循環判定手段により一循環完了したと判定された場合に、初期値カウンタのカウント値を周回初期値として取得する周回初期値取得手段として機能させることもできる。また、ステップS457を、周回初期値取得手段によって取得された周回初期値を、周期的カウンタの周回初期値として設定する周回初期値設定手段として機能させることもできる。
次に、普図の当り乱数を攪拌更新するために用いられる、初期値乱数の攪拌について説明する。
図19(A)は割込みが発生した際の図16の初期値乱数更新処理における初期値乱数の更新状況の概念図、図19(B)は、割込みの発生タイミングに応じてスタート値設定レジスタに設定される初期値乱数カウンタの値の概念図である。
図17及び図18に示すように、割込みが発生してタイマ割込み処理が実行され、このタイマ割込み処理のうち乱数更新処理1が実行されると、ステップS454で当り乱数を初期値乱数カウンタのカウンタ値で更新するか否かがチェックされ、更新すると判定された場合(ステップS255;Yes)は、初期値乱数カウンタのカウント値が当り乱数をカウントするための乱数カウンタのスタート値として設定される(ステップS456、S457)。
一方、図15のステップS26で割込みを許可するようにしたため、ステップS27で初期値乱数更新処理が実行されている場合であっても割込みが発生する。そのため、割込みが発生したタイミングにおける初期値乱数更新処理の進行状況(乱数の更新状況)に応じて、スタート値設定レジスタに設定される値に変化が生じる。具体的には、図19(A)に示すように、初期値乱数更新処理を実行している際に発生した割込みのタイミングが、当該更新処理によってカウンタ値が更新される前(割込み発生タイミング「1」)である場合と、カウンタ値が更新された後(割込み発生タイミング「3」)である場合とが生じ、何れのタイミングであるかに応じてスタート値設定レジスタに設定される値が決定される。
図19(A)(B)に示すように、割込み発生タイミング「1」で割込みが発生し、かつ、この割込みにおいて初期値乱数カウンタのカウント値を当り乱数の乱数カウンタのスタート値として設定する場合は、スタート値設定レジスタに「146」が設定される。一方、割込み発生タイミング「3」で割込みが発生し、かつ、この割込みにおいて初期値乱数カウンタのカウント値を当り乱数の乱数カウンタのスタート値として設定する場合は、スタート値設定レジスタに「147」が設定される。すなわち、割込み発生タイミングに応じてスタート値設定レジスタに設定される値(初期値乱数カウンタの値)が決定されることとなり、この割込み発生タイミングによって当り乱数を生成する乱数カウンタのスタート値が攪拌されることとなり、乱数取得に関わる不正が行われにくくすることができる。
なお、図19(A)に示すように当り初期値乱数の更新タイミングと割込み発生タイミングが重なった場合(割込み発生タイミング「2」)は、更新後の値をスタート値設定レジスタに設定することとする。
また、図16の初期値乱数更新処理では、当り初期値乱数の他にも、大当り初期値乱数、大当り図柄初期値乱数1、及び大当り図柄初期値乱数2の更新を行っており、割込み発生タイミングに応じて各乱数をカウントするためのカウンタのスタート値が、更新前の値となる乱数と、更新後の値となる乱数とが混在することとなる。例えば、図19(A)に示すように、割込み発生タイミング「3」で割込みが発生した場合、当り初期値乱数は更新後の値がスタート値として設定されるが、大当り初期値乱数は更新前の値がスタート値として設定されるため、その割込み発生タイミングに応じて初期値乱数カウンタの値を各乱数カウンタのスタート値として設定する規則性が崩れることとなる。したがって、不正行為者が、何らかの不正な手法で1つの乱数に関して乱数カウンタの値及び初期値乱数カウンタの値を入手したとしても、そこから他の乱数に関する更新タイミングが推測されることを防止できる。
以上のような処理にすることで、不正行為者が、何らかの手法で遊技機外部から乱数カウンタの値と初期値乱数カウンタの値を割り出したとしても、周回の初期値の更新タイミングが規則性を持たないため、特定のカウント値(特定の遊技状態(大当り状態)を発生させることとなる値)を常に狙い撃ちすることが困難となり、不正行為の実行を著しく困難にすることができる。
また、初期値乱数更新処理(ステップS27)の前に割り込みを許可する(ステップS26)ことによって、初期値乱数更新処理中にタイマ割込みが発生すると割込み処理が優先して実行されるようになり、タイマ割込みが初期値乱数更新処理によって待たされることで割込み処理が圧迫されるのを回避することができる。したがって、不正防止対策を施すとともに、遊技の実行制御が煩雑になることを防止することができるようになる。
なお、普図の当り乱数を例にあげて説明を行ったが、大当り乱数及び大当り図柄乱数1、2に関しても同様の処理を行い、当り乱数を各々の乱数に置き換えればよいため、説明は省略する。
上述の説明から、上記実施形態には、遊技プログラムに基づいて遊技の進行を制御することが可能な遊技制御手段と、前記遊技制御手段による制御に基づき、複数の識別情報を変動表示する変動表示ゲームを実行可能な変動表示手段と、を備え、前記変動表示ゲームの停止結果が特別結果となった場合に、遊技者に遊技価値を付与可能な遊技機において、所定の最小値と最大値の範囲内で循環して所定時間毎にカウント値が更新される周期的カウンタと、前記所定の最小値と最大値の範囲内で循環してカウント値が更新され、該カウント値を前記周期的カウンタの周回初期値として使用される初期値カウンタと、を備え、前記周期的カウンタを複数設けるとともに、各々の周期的カウンタに対応して前記初期値カウンタを複数設け、前記遊技プログラムに基づいて前記複数の初期値カウンタのカウント値の更新処理を実行する初期値カウンタ更新手段と、前記周期的カウンタの周回初期値を対応する前記初期値カウンタのカウント値で更新する周回初期値更新手段と、前記周回初期値更新手段による更新を制御する更新制御手段と、を備え、前記初期値カウンタ更新手段は、一の更新処理において前記複数の初期値カウンタのカウント値を順次更新させ、前記更新制御手段は、前記初期値カウンタ更新手段による一の更新処理の実行中に、前記周回初期値更新手段による周回初期値更新を割り込ませて実行可能に制御する発明が含まれることが分かる。
そして、この発明によれば、所定の最小値と最大値の範囲内で循環して所定時間毎にカウント値が更新される周期的カウンタと、所定の最小値と最大値の範囲内で循環してカウント値が更新され、該カウント値を周期的カウンタの周回初期値として使用される初期値カウンタと、を備え、周期的カウンタを複数設けるとともに、各々の周期的カウンタに対応して初期値カウンタを複数設け、遊技プログラムに基づいて複数の初期値カウンタのカウント値の更新処理を実行する初期値カウンタ更新手段と、周期的カウンタの周回初期値を対応する初期値カウンタのカウント値で更新する周回初期値更新手段と、周回初期値更新手段による更新を制御する更新制御手段と、を備え、初期値カウンタ更新手段は、一の更新処理において複数の初期値カウンタのカウント値を順次更新させ、更新制御手段は、初期値カウンタ更新手段による一の更新処理の実行中に、周回初期値更新手段による周回初期値更新を割り込ませて実行可能に制御するので、外部からの乱数の捕捉を困難にして不正行為を効果的に防止できるようになる。
また、上記実施形態には、前記周回初期値更新手段は、前記周期的カウンタのカウント値が一循環を完了したか否かを判定する周期的カウンタ循環判定手段と、前記周期的カウンタ循環判定手段により一循環完了したと判定された場合に、前記初期値カウンタのカウント値を前記周回初期値として取得する周回初期値取得手段と、前記周回初期値取得手段によって取得された周回初期値を、前記周期的カウンタの周回初期値として設定する周回初期値設定手段と、を備える発明が含まれることが分かる。
そして、この発明によれば、周回初期値更新手段は、周期的カウンタのカウント値が一循環を完了したか否かを判定する周期的カウンタ循環判定手段と、周期的カウンタ循環判定手段により一循環完了したと判定された場合に、初期値カウンタのカウント値を周回初期値として取得する周回初期値取得手段と、周回初期値取得手段によって取得された周回初期値を、周期的カウンタの周回初期値として設定する周回初期値設定手段とを備えるので、周期的カウンタの周回初期値として設定する初期値カウンタのカウント値の規則性を崩すことができるようになり、外部からの乱数の捕捉を困難にして不正行為を効果的に防止できるようになる。
また、上記実施形態には、前記更新制御手段による制御を含む遊技の進行を制御する処理を前記所定時間毎に、前記初期値カウンタ更新手段による一の更新処理に割り込ませて実行する割込み制御手段を備え、前記初期値カウンタ更新手段は、前記割込み制御手段による一の制御処理が終了し、該割込み制御手段による次の制御処理が実行されるまでの残余時間において、前記初期値カウンタのカウント値の更新処理を実行する発明が含まれることが分かる。
そして、この発明によれば、更新制御手段による制御を含む遊技の進行を制御する処理を所定時間毎に、初期値カウンタ更新手段による一の更新処理に割り込ませて実行する割込み制御手段を備え、初期値カウンタ更新手段は、割込み制御手段による一の制御処理が終了し、該割込み制御手段による次の制御処理が実行されるまでの残余時間において、初期値カウンタのカウント値の更新処理を実行するので、周期的カウンタの周回初期値として設定する初期値カウンタのカウント値の規則性を崩すことができるようになり、外部からの乱数の捕捉を困難にして不正行為を効果的に防止できるようになる。
また、上記実施形態には、前記複数の初期値カウンタには、前記割込み制御手段による一の制御処理の発生時において、前記初期値カウンタ更新手段による一の更新処理によって更新された後の初期値カウンタと更新される前の初期値カウンタとが発生するように構成され、前記割込み制御手段による一の制御処理の処理量に基づいて前記残余時間が可変し、該残余時間が可変することに基づいて、前記割込み制御手段によって次の制御処理が発生された際に、前記更新された後の初期値カウンタと前記更新される前の初期値カウンタの比率が変化する発明が含まれることが分かる。
そして、この発明によれば、複数の初期値カウンタには、割込み制御手段による一の制御処理の発生時において、初期値カウンタ更新手段による一の更新処理によって更新された後の初期値カウンタと更新される前の初期値カウンタとが発生するように構成され、割込み制御手段による一の制御処理の処理量に基づいて残余時間が可変し、該残余時間が可変することに基づいて、割込み制御手段によって次の制御処理が発生された際に、更新された後の初期値カウンタと更新される前の初期値カウンタの比率が変化するので、万が一、不正行為者が、何らかの不正な手法で1つの初期値カウンタのカウント値を入手したとしても、周期的カウンタの周回初期値として設定する初期値カウンタのカウント値の規則性を崩すことで、その更新タイミングを推測されることを防止できる。さらに、そこから他の初期値カウンタの更新タイミングを推測されることも防止できるようになる。
また、上記実施形態には、前記遊技プログラムを実行するために使用される乱数値を前記周期的カウンタのカウント値で構成する発明が含まれることが分かる。
そして、この発明によれば、遊技プログラムを実行するために使用される乱数値を周期的カウンタのカウント値で構成するので、遊技制御で使用する複数の乱数を並行して生成することができるようになる。
また、上記実施形態には、前記周期的カウンタのカウント値は、前記変動表示ゲームの停止結果を特別結果とするか否かを決定するための特別結果判定用乱数値である発明が含まれることが分かる。
そして、この発明によれば、周期的カウンタのカウント値は、変動表示ゲームの停止結果を特別結果とするか否かを決定するための特別結果判定用乱数値であるので、外部からの特別結果判定用乱数の捕捉を困難にして不正行為を効果的に防止できるようになる。
また、上記実施形態には、前記周期的カウンタのカウント値は、前記変動表示ゲームの停止結果が特別結果となる場合に、該特別結果を構成する識別情報の表示態様を決定するための特別結果態様決定用乱数値である発明が含まれることが分かる。
そして、この発明によれば、周期的カウンタのカウント値は、変動表示ゲームの停止結果が特別結果となる場合に、該特別結果を構成する識別情報の表示態様を決定するための特別結果態様決定用乱数値であるので、外部からの特別結果態様決定用乱数の捕捉を困難にして不正行為を効果的に防止できるようになる。
また、上記実施形態には、遊技球が入賞することに基づいて、前記変動表示ゲームの実行権利が付与される始動入賞口と、前記始動入賞口へ遊技球が入賞しない閉状態と遊技球が入賞し易い開状態とに変化する普通変動入賞装置と、前記普通変動入賞装置を開状態にするか否かを決定するための普図変動表示ゲームを実行する普図変動表示装置と、を備え、前記周期的カウンタのカウント値は、前記普図変動表示ゲームにおいて前記普通変動入賞装置を開状態にすることとなる当りを発生させるか否かを決定するための当り乱数値である発明が含まれることが分かる。
そして、この発明によれば、周期的カウンタのカウント値は、普図変動表示ゲームにおいて普通変動入賞装置を開状態にすることとなる当りを発生させるか否かを決定するための当り乱数値であるので、外部からの当り乱数の捕捉を困難にして不正行為を効果的に防止できるようになる。
また、上記実施形態には、遊技プログラムに従って遊技に係わる所要の制御を行う遊技制御手段と、該遊技制御手段による制御で用いられる乱数値を生成する乱数生成手段と、を備えた遊技機であって、
前記乱数生成手段は、所定の最小値と最大値の範囲内で循環して所定時間毎に更新される乱数カウンタと、電源投入及びシステムリセット毎にランダムな値を生成して前記乱数カウンタの1周目の周回初期値として設定する第1攪拌手段と、前記第1攪拌手段によって前記乱数カウンタに1周目の周回初期値が設定された後、前記乱数カウンタが更新されて当該周回の周回初期値に達する毎に、当該乱数カウンタの新たな周回初期値を設定する第2攪拌手段と、を備え、
前記遊技制御手段は、遊技における所定の事象の発生に基づいて前記乱数生成手段で生成された乱数値を取得する乱数値取得手段と、前記乱数値取得手段によって取得された乱数値を判定して遊技制御に係わる決定を行う遊技結果決定手段と、前記第2攪拌手段によって設定される周回初期値として用いられる値を生成する置換カウンタを更新する置換カウンタ更新手段と、を備え、電源投入及びシステムリセットが発生したこと基づいて、前記置換カウンタに第1攪拌手段が生成したランダムな値を初期値として設定する発明が含まれることが分かる。
そして、この発明によれば、不正行為者が、例えば遊技機の遊技制御装置から各種被制御装置への制御信号の送信タイミングなどに基づいて乱数カウンタの更新タイミングを割り出したとしても、周回の初期値の変更の仕組みについて解析しない限り乱数カウンタの値まで割り出すことは難しく、特定の遊技状態(大当り状態)を発生させる不正行為を行うことが著しく困難になる。また、電源投入及びシステムリセット毎にランダムな値を生成して前記乱数カウンタの1周目の周回初期値と、2周目以降の周回初期値として用いられる値を生成する置換カウンタの初期値に設定するようにしたので、乱数カウンタの値を外部から割り出すことは難しくなり、不正行為を未然に防止できることとなる。
また、上記実施形態には、前記乱数生成手段は、前記乱数カウンタの更新範囲を規定する更新範囲情報が記憶される範囲情報記憶手段と、を備え、前記範囲情報記憶手段に記憶される更新範囲情報には、少なくとも前記乱数カウンタ更新範囲の上限値が含まれ、前記第1攪拌手段は、生成されたランダムな値が前記更新範囲情報に規定されている更新範囲外の値が設定された場合には、前記更新範囲外の値を前記範囲情報記憶手段に記憶された上限値で除算し、算出された余り値を前記乱数カウンタの1周目の周回初期値として設定するようにした発明が含まれる。
そしてかかる発明によれば、周期的に更新される乱数カウンタの周回初期値として不適切な値(所定の範囲外の値)が記憶されるおそれがあるが、不適切な値(所定の範囲外の値)が記憶された場合には、補正を受けるので、所定の範囲内の値に設定し直され、乱数カウンタの周回の初期値には常に所定の範囲内の適切な値が設定されるので、所定の正しい確率で遊技の決定処理を行うことができる。
さらに、上記実施形態には、前記乱数生成手段は、周回初期値より更新が開始され前記乱数カウンタの値が一巡して再び周回初期値へと戻ったことを検出する一周検出手段と、遊技制御手段によって記憶可能に構成され、前記第2攪拌手段によって前記乱数カウンタに記憶される周回初期値を記憶する周回初期値記憶手段と、を備え、前記一周検出手段によって前記乱数カウンタの値が一巡して周回初期値へと戻ったことが検出された場合に、前記第2攪拌手段によって前記周回初期値記憶手段に設定された周回初期値を前記乱数カウンタに設定するようにした発明が含まれる。
そしてかかる発明によれば、乱数カウンタの周回の初期値は少なくとも一巡する毎に第2攪拌手段によって設定された周回初期値に置換されるので、乱数カウンタの値を外部から割り出すことは難しく、不正行為を未然に防止することができる。
さらに、上記実施形態には、前記乱数生成手段は、前記周回初期値記憶手段に記憶された周回初期値が、前記第2攪拌手段によって前記乱数カウンタに設定されたか否かを示す設定情報を記憶する設定情報記憶手段を備え、前記遊技制御手段は、前記設定情報を参照して前記周回初期値記憶手段に記憶された周回初期値が前記第2攪拌手段によって前記乱数カウンタに設定されたことが示された場合に、前記置換カウンタの値を取得して、次の周回初期値として前記周回初期値記憶手段に記憶するようにした発明が含まれる。
そしてかかる発明によれば、遊技制御手段は、周回初期値が乱数カウンタに設定されたか否かを示す設定情報に基づいて、次の周回初期値を設定するようにしたので、乱数カウンタが一巡する毎に確実に次の周回初期値を設定することができる。
以上、本発明を実施形態に基づき具体的に説明したが、今回開示した実施形態は、全ての点で例示であって制限的なものではない。本発明の範囲は前述した発明の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び内容の範囲での全ての変更が含まれることが意図される。
例えば、本実施形態では、乱数生成回路608で乱数値が更新されなかった場合にエラーを示す値が設定され更新エラー報知レジスタ608b10とは別に、スタート値設定レジスタ608b5に次回に設定される値(開始値)が記憶されているか否かを示す情報(フラグ)を記憶するソフト乱数ステータスレジスタ608b15を設けているが、これらのレジスタを1つのステータスレジスタとして構成するようにしてもよい。このようにすれば、レジスタの数を減らすことができる。
また、このステータスレジスタには、カウンタモードにおける更新エラーと乱数モードにおける更新エラーとを区別して設定できるようにしてもよい。