以下、本発明の実施の形態を、図面を参照して説明する。まず、遊技機の一例であるパチンコ遊技機1の全体の構成について説明する。図1はパチンコ遊技機1を正面からみた正面図である。
パチンコ遊技機1は、縦長の方形状に形成された外枠(図示せず)と、外枠の内側に開閉可能に取り付けられた遊技枠とで構成される。また、パチンコ遊技機1は、遊技枠に開閉可能に設けられている額縁状に形成されたガラス扉枠2を有する。遊技枠は、外枠に対して開閉自在に設置される前面枠(図示せず)と、機構部品等が取り付けられる機構板(図示せず)と、それらに取り付けられる種々の部品(後述する遊技盤6を除く)とを含む構造体である。
ガラス扉枠2の下部表面には打球供給皿(上皿)3がある。打球供給皿3の下部には、打球供給皿3に収容しきれない遊技球を貯留する余剰球受皿4や、打球を発射する打球操作ハンドル(操作ノブ)5が設けられている。また、ガラス扉枠2の背面には、遊技盤6が着脱可能に取り付けられている。なお、遊技盤6は、それを構成する板状体と、その板状体に取り付けられた種々の部品とを含む構造体である。また、遊技盤6の前面には、打ち込まれた遊技球が流下可能な遊技領域7が形成されている。
余剰球受皿(下皿)4を形成する部材には、例えば下皿本体の上面における手前側の所定位置(例えば下皿の中央部分)などに、スティック形状(棒形状)に構成され、遊技者が把持して複数方向(前後左右)に傾倒操作が可能なスティックコントローラ122が取り付けられている。なお、スティックコントローラ122には、遊技者がスティックコントローラ122の操作桿を操作手(例えば左手など)で把持した状態において、所定の操作指(例えば人差し指など)で押引操作することなどにより所定の指示操作が可能なトリガボタン121(図5を参照)が設けられ、スティックコントローラ122の操作桿の内部には、トリガボタン121に対する押引操作などによる所定の指示操作を検知するトリガセンサ125(図5を参照)が内蔵されている。また、スティックコントローラ122の下部における下皿の本体内部などには、操作桿に対する傾倒操作を検知する傾倒方向センサユニット123(図5を参照)が設けられている。また、スティックコントローラ122には、スティックコントローラ122を振動動作させるためのバイブレータ用モータ126(図5を参照)が内蔵されている。
打球供給皿(上皿)3を形成する部材には、例えば上皿本体の上面における手前側の所定位置(例えばスティックコントローラ122の上方)などに、遊技者が押下操作などにより所定の指示操作を可能なプッシュボタン120が設けられている。プッシュボタン120は、遊技者からの押下操作などによる所定の指示操作を、機械的、電気的、あるいは、電磁的に、検出できるように構成されていればよい。プッシュボタン120の設置位置における上皿の本体内部などには、プッシュボタン120に対してなされた遊技者の操作行為を検知するプッシュセンサ124(図5を参照)が設けられていればよい。図1に示す構成例では、プッシュボタン120とスティックコントローラ122の取付位置が、上皿及び下皿の中央部分において上下の位置関係にある。これに対して、上下の位置関係を保ったまま、プッシュボタン120及びスティックコントローラ122の取付位置を、上皿及び下皿において左右のいずれかに寄せた位置としてもよい。あるいは、プッシュボタン120とスティックコントローラ122の取付位置が上下の位置関係にはなく、例えば左右の位置関係にあるものとしてもよい。
遊技領域7の中央付近には、液晶表示装置(LCD)で構成された演出表示装置9が設けられている。演出表示装置9の表示画面には、第1特別図柄または第2特別図柄の可変表示に同期した演出図柄の可変表示を行う演出図柄表示領域がある。よって、演出表示装置9は、演出図柄の可変表示を行う可変表示装置に相当する。演出図柄表示領域には、例えば「左」、「中」、「右」の3つの装飾用(演出用)の演出図柄を可変表示する図柄表示エリアがある。図柄表示エリアには「左」、「中」、「右」の各図柄表示エリアがあるが、図柄表示エリアの位置は、演出表示装置9の表示画面において固定的でなくてもよいし、図柄表示エリアの3つ領域が離れてもよい。演出表示装置9は、演出制御基板に搭載されている演出制御用マイクロコンピュータによって制御される。演出制御用マイクロコンピュータが、第1特別図柄表示器8aで第1特別図柄の可変表示が実行されているときに、その可変表示に伴って演出表示装置9で演出表示を実行させ、第2特別図柄表示器8bで第2特別図柄の可変表示が実行されているときに、その可変表示に伴って演出表示装置9で演出表示を実行させるので、遊技の進行状況を把握しやすくすることができる。
また、演出表示装置9において、最終停止図柄(例えば左右中図柄のうち中図柄)となる図柄以外の図柄が、所定時間継続して、大当り図柄(例えば左中右の図柄が同じ図柄で揃った図柄の組み合わせ)と一致している状態で停止、揺動、拡大縮小もしくは変形している状態、または、複数の図柄が同一図柄で同期して変動したり、表示図柄の位置が入れ替わっていたりして、最終結果が表示される前で大当り発生の可能性が継続している状態(以下、これらの状態をリーチ状態という。)において行われる演出をリーチ演出という。また、リーチ状態やその様子をリーチ態様という。さらに、リーチ演出を含む可変表示をリーチ可変表示という。そして、演出表示装置9に変動表示される図柄の表示結果が大当り図柄でない場合には「はずれ」となり、変動表示状態は終了する。遊技者は、大当りをいかにして発生させるかを楽しみつつ遊技を行う。
演出表示装置9の表示画面の右上方部には、演出図柄と後述する特別図柄および普通図柄とに次ぐ第4図柄を表示する第4図柄表示領域9c,9dが設けられている。この実施の形態では、後述する第1特別図柄の変動表示に同期して第1特別図柄用の第4図柄の変動表示が行われる第1特別図柄用の第4図柄表示領域9cと、第2特別図柄の変動表示に同期して第2特別図柄用の第4図柄の変動表示が行われる第2特別図柄用の第4図柄表示領域9dとが設けられている。
この実施の形態では、特別図柄の変動表示に同期して演出図柄の変動表示が実行されるのであるが(ただし、正確には、演出図柄の変動表示は、演出制御用マイクロコンピュータ100側で変動パターンコマンドにもとづいて認識した変動時間を計測することによって行われる。)、演出表示装置9を用いた演出を行う場合、例えば、演出図柄の変動表示を含む演出内容が画面上から一瞬消えるような演出が行われたり、可動物が画面上の全部または一部を遮蔽するような演出が行われたりするなど、演出態様が多様化してきている。そのため、演出表示装置9上の表示画面を見ていても、現在変動表示中の状態であるのか否か認識しにくい場合も生じている。そこで、この実施の形態では、演出表示装置9の表示画面の一部でさらに第4図柄の変動表示を行うことによって、第4図柄の状態を確認することにより現在変動表示中の状態であるのか否かを確実に認識可能としている。なお、第4図柄は、常に一定の動作で変動表示され、画面上から消えたり遮蔽物で遮蔽されたりすることはないため、常に視認することができる。
なお、第1特別図柄用の第4図柄と第2特別図柄用の第4図柄とを、第4図柄と総称することがあり、第1特別図柄用の第4図柄表示領域9cと第2特別図柄用の第4図柄表示領域9dを、第4図柄表示領域と総称することがある。
第4図柄の変動(可変表示)は、第4図柄表示領域9c,9dを所定の表示色(例えば、青色)で一定の時間間隔で点灯と消灯とを繰り返す状態を継続することによって実現される。第1特別図柄表示器8aにおける第1特別図柄の可変表示と、第1特別図柄用の第4図柄表示領域9cにおける第1特別図柄用の第4図柄の可変表示とは同期している。第2特別図柄表示器8bにおける第2特別図柄の可変表示と、第2特別図柄用の第4図柄表示領域9dにおける第2特別図柄用の第4図柄の可変表示とは同期している。同期とは、可変表示の開始時点および終了時点が同じであって、可変表示の期間が同じであることをいう。
また、第1特別図柄表示器8aにおいて大当り図柄が停止表示されるときには、第1特別図柄用の第4図柄表示領域9cにおいて大当りを想起させる表示色(はずれとは異なる表示色。例えば、はずれのときには青色で表示されるのに対して、大当りのときには赤色で表示される。また、第2特別図柄表示器8bにおいて大当り図柄が停止表示されるときには、第2特別図柄用の第4図柄表示領域9dにおいて大当りを想起させる表示色(はずれとは異なる表示色。例えば、はずれのときには青色で表示されるのに対して、大当りのときには赤色で表示される。
なお、この実施の形態では、第4図柄表示領域を演出表示装置9の表示画面の一部に設ける場合を示しているが、演出表示装置9とは別に、ランプやLEDなどの発光体を用いて第4図柄表示領域を実現するようにしてもよい。この場合、例えば、第4図柄の変動(可変表示)を、2つのLEDが交互に点灯する状態を継続することによって実現されるようにしてもよく、2つのLEDのうちのいずれのLEDが停止表示されたかによって大当り図柄が停止表示されたか否かを表すようにしてもよい。
演出表示装置9の右方には、識別情報としての第1特別図柄を可変表示する第1特別図柄表示器(第1可変表示部)8aが設けられている。この実施の形態では、第1特別図柄表示器8aは、0〜9の数字を可変表示可能な簡易で小型の表示器(例えば7セグメントLED)で実現されている。すなわち、第1特別図柄表示器8aは、0〜9の数字(または、記号)を可変表示するように構成されている。また、演出表示装置9の右方(第1特別図柄表示器8aの右隣)には、識別情報としての第2特別図柄を可変表示する第2特別図柄表示器(第2可変表示部)8bも設けられている。第2特別図柄表示器8bは、0〜9の数字を可変表示可能な簡易で小型の表示器(例えば7セグメントLED)で実現されている。すなわち、第2特別図柄表示器8bは、0〜9の数字(または、記号)を可変表示するように構成されている。
小型の表示器は、例えば方形状に形成されている。また、この実施の形態では、第1特別図柄の種類と第2特別図柄の種類とは同じ(例えば、ともに0〜9の数字)であるが、種類が異なっていてもよい。また、第1特別図柄表示器8aおよび第2特別図柄表示器8bは、それぞれ、例えば、00〜99の数字(または、2桁の記号)を可変表示するように構成されていてもよい。
以下、第1特別図柄と第2特別図柄とを特別図柄と総称することがあり、第1特別図柄表示器8aと第2特別図柄表示器8bとを特別図柄表示器(可変表示部)と総称することがある。
なお、この実施の形態では、2つの特別図柄表示器8a,8bを備える場合を示しているが、遊技機は、特別図柄表示器を1つのみ備えるものであってもよい。
第1特別図柄の可変表示は、可変表示の実行条件である第1始動条件が成立(この実施の形態では、技球が第1始動入賞口13を通過(入賞を含む)したこと)した後、可変表示の開始条件(例えば、第1保留記憶数が0でない場合であって、第1特別図柄および第2特別図柄の可変表示が実行されていない状態であり、かつ、大当り遊技が実行されていない状態)が成立したことにもとづいて開始され、可変表示時間(変動時間)が経過すると表示結果(停止図柄)を導出表示する。また、第2特別図柄の可変表示は、可変表示の実行条件である第2始動条件が成立(この実施の形態では、遊技球が第2始動入賞口14を通過(入賞を含む)したこと)した後、可変表示の開始条件(例えば、第2保留記憶数が0でない場合であって、第1特別図柄および第2特別図柄の可変表示が実行されていない状態であり、かつ、大当り遊技が実行されていない状態)が成立したことにもとづいて開始され、可変表示時間(変動時間)が経過すると表示結果(停止図柄)を導出表示する。なお、遊技球が通過するとは、入賞口やゲートなどのあらかじめ入賞領域として定められている領域を遊技球が通過したことであり、入賞口に遊技球が入った(入賞した)ことを含む概念である。また、表示結果を導出表示するとは、図柄(識別情報の例)を最終的に停止表示させることである。
演出表示装置9の下方であって、後述する振分装置200の上方には、波形のステージ90が設けられている。このステージ90には、遊技領域に打ち込まれた遊技球のうちの一部の遊技球Bが乗って、当該遊技球Bがステージ90上を行き来し、該ステージ90の中央に形成された穴90aに入って落下するか、該穴90aに入らずに落下する。穴90aに入って落下した遊技球Bは、該穴90aの直下に設けられている振分装置200の流入口201に流入し易く、振分装置200の下方に形成された第1始動入賞口13や第2始動入賞口14を通過(進入)しやすい。
またステージ90の左端には、可動物である羽根91が設けられている。この羽根91は、図4に示すソレノイド22により駆動され、該ソレノイド22がオフ状態であるときに垂直位置の閉鎖状態(実線91)であり、該ソレノイド22がオン状態であるときに下側を中心として反時計回りに45°程度傾動した傾動位置の開放状態(点線91’)に変化する。そして開放状態になると、遊技領域に打ち込まれた遊技球が、傾動位置の羽根91に導かれて、ステージ90に乗りやすい。この羽根91は、遊技制御用マイクロコンピュータ560の制御により変化し、詳細は図74を参照して後述するが、同(c)に示すように、閉鎖状態から10分経つと開放状態になり、同(d)に示すように、開放状態から5秒経つと閉鎖状態になる。
演出表示装置9の下方には、流入した遊技球を振り分けるための振分装置200が設けられている。また、演出表示装置9の下方には、左右に並ぶように第1始動入賞口13および第2始動入賞口14が設けられている。第1始動入賞口13に入賞した遊技球は、遊技盤6の背面に導かれ、第1始動口スイッチ13aによって検出される。また、第2始動入賞口(第2始動口)14に入賞した遊技球は、遊技盤6の背面に導かれ、第2始動口スイッチ14aによって検出される。
また、第2始動入賞口14には、開放状態と閉鎖放状態とに変化可能な可変入賞球装置15が設けられている。可変入賞球装置15は、ソレノイド16によって開放状態とされる。可変入賞球装置15が開放状態になることによって、遊技球が第2始動入賞口14に始動入賞し易くなり、遊技者にとって有利な状態になる。なお、この実施の形態では、可変入賞球装置15が閉鎖放状態の場合であっても、開放状態と比較すると入賞しにくいももの振分装置200を経由して第2始動入賞口14に入賞可能であるように構成する場合を示しているが、可変入賞球装置15が開放状態である場合にのみ第2始動入賞口14に始動入賞可能に構成してもよい。
また、この実施の形態では、後述するように、遊技状態が確変状態(この実施の形態では、高確率状態に制御されるとともに時短状態(高ベース状態)にも制御される)である場合に、可変入賞球装置15が開放状態となる頻度が高められ第2始動入賞口14に始動入賞しやすくなる。そのため、この実施の形態では、遊技状態が確変状態に制御されている場合には、遊技者は遊技領域7の右方を狙って遊技球を発射するように発射操作を行う(いわゆる右打ち)方が有利になる。なお、遊技状態が確変状態に制御された場合には、例えば、演出表示装置9に「右を狙え!」などと表示して右打ちを示唆する表示を行うようにすることが望ましい。
以下、第1始動入賞口13および第2始動入賞口14を総称して始動入賞口または始動口ということがある。
なお、この実施の形態では、図1に示すように、第2始動入賞口14に対してのみ開閉動作を行う可変入賞球装置15が設けられているが、第1始動入賞口13および第2始動入賞口14のいずれについても開閉動作を行う可変入賞球装置が設けられている構成であってもよい。
また、遊技状態が確変状態や時短状態(高ベース状態)であっても一貫して遊技領域7の左方を狙って遊技球を発射させる仕様の遊技機である場合には、逆に左側の第1始動入賞口13にのみ可変入賞球装置15を設けるようにしてもよい。
第2特別図柄表示器8bの上方には、第2始動入賞口14に入った有効入賞球数すなわち第2保留記憶数を表示する4つの表示器からなる第2特別図柄保留記憶表示器18bが設けられている。第2特別図柄保留記憶表示器18bは、有効始動入賞がある毎に、点灯する表示器の数を1増やす。そして、第2特別図柄表示器8bでの可変表示が開始される毎に、点灯する表示器の数を1減らす。
また、第2特別図柄保留記憶表示器18bのさらに上方には、第1始動入賞口13に入った有効入賞球数すなわち第1保留記憶数(保留記憶を、始動記憶または始動入賞記憶ともいう。)を表示する4つの表示器からなる第1特別図柄保留記憶表示器18aが設けられている。第1特別図柄保留記憶表示器18aは、有効始動入賞がある毎に、点灯する表示器の数を1増やす。そして、第1特別図柄表示器8aでの可変表示が開始される毎に、点灯する表示器の数を1減らす。
また、演出表示装置9の表示画面の下部には、第1保留記憶数と第2保留記憶数との合計である合計数(合算保留記憶数)を表示する合算保留記憶表示部18cが設けられている。そのように、この実施の形態では、合計数を表示する合算保留記憶表示部18cが設けられていることによって、可変表示の開始条件が成立していない実行条件の成立数の合計を把握しやすくすることができる。なお、この実施の形態では、合算保留記憶表示部18cにおいて、第1保留記憶と第2保留記憶とが第1始動入賞口13および第2始動入賞口14への入賞順に並べて表示されるとともに、第1保留記憶であるか第2保留記憶であるかを認識可能な態様で表示される(例えば、第1保留記憶は赤色で表示され、第2保留記憶は青色で表示される)。なお、合算保留記憶表示部18cに代えて、第1保留記憶数を表示する第1保留記憶表示部と第2保留記憶数を表示する第2保留記憶表示部とを設けるように構成してもよい。
演出表示装置9は、第1特別図柄表示器8aによる第1特別図柄の可変表示時間中、および第2特別図柄表示器8bによる第2特別図柄の可変表示時間中に、装飾用(演出用)の図柄としての演出図柄の可変表示を行う。第1特別図柄表示器8aにおける第1特別図柄の可変表示と、演出表示装置9における演出図柄の可変表示とは同期している。また、第2特別図柄表示器8bにおける第2特別図柄の可変表示と、演出表示装置9における演出図柄の可変表示とは同期している。また、第1特別図柄表示器8aにおいて大当り図柄が停止表示されるときと、第2特別図柄表示器8bにおいて大当り図柄が停止表示されるときには、演出表示装置9において大当りを想起させるような演出図柄の組み合わせが停止表示される。
また、図1に示すように、第1始動入賞口13および第2始動入賞口14の下方には、大入賞口を形成する特別可変入賞球装置20が設けられている。特別可変入賞球装置20は開閉板を備え、第1特別図柄表示器8aに特定表示結果(大当り図柄)が導出表示されたときと、第2特別図柄表示器8bに特定表示結果(大当り図柄)が導出表示されたときに生起する特定遊技状態(大当り遊技状態)においてソレノイド21によって開閉板が開放状態に制御されることによって、入賞領域となる大入賞口が開放状態になる。大入賞口に入賞した遊技球はカウントスイッチ23で検出される。
演出表示装置9の左方には、普通図柄を可変表示する普通図柄表示器10が設けられている。この実施の形態では、普通図柄表示器10は、0〜9の数字を可変表示可能な簡易で小型の表示器(例えば7セグメントLED)で実現されている。すなわち、普通図柄表示器10は、0〜9の数字(または、記号)を可変表示するように構成されている。また、小型の表示器は、例えば方形状に形成されている。なお、普通図柄表示器10は、例えば、00〜99の数字(または、2桁の記号)を可変表示するように構成されていてもよい。また、普通図柄表示器10は、7セグメントLEDなどにかぎらず、例えば、所定の記号表示を点灯表示可能な表示器(例えば、「○」や「×」を交互に点灯表示可能な装飾ランプ)で構成されていてもよい。
遊技領域7の左右にそれぞれ設けられたゲート32を遊技球が通過しゲートスイッチ32aで検出されると、普通図柄表示器10の表示の可変表示が開始される。そして、普通図柄表示器10における停止図柄が所定の図柄(当り図柄。例えば、図柄「7」。)である場合に、可変入賞球装置15が所定回数、所定時間だけ開放状態になる。すなわち、可変入賞球装置15の状態は、普通図柄の停止図柄が当り図柄である場合に、遊技者にとって不利な状態から有利な状態(第2始動入賞口14に遊技球が入賞しやすい状態)に変化する。普通図柄表示器10の近傍には、ゲート32を通過した入賞球数を表示する4つのLEDによる表示部を有する普通図柄保留記憶表示器41が設けられている。ゲート32への遊技球の通過がある毎に、すなわちゲートスイッチ32aによって遊技球が検出される毎に、普通図柄保留記憶表示器41は点灯するLEDを1増やす。そして、普通図柄表示器10の可変表示が開始される毎に、点灯するLEDを1減らす。さらに、通常状態に比べて大当りとすることに決定される確率が高い状態である確変状態(通常状態と比較して、特別図柄の変動表示結果として大当りと判定される確率が高められた状態)では、普通図柄表示器10における停止図柄が当り図柄になる確率が高められるとともに、可変入賞球装置15の開放時間と開放回数が高められる。なお、この実施の形態では、確変状態に制御されるときには、図柄の変動時間が短縮されている時短状態(特別図柄の可変表示時間が短縮される遊技状態)にも制御される。
遊技盤6の下部には、入賞しなかった打球(アウト球)が取り込まれるアウト口26がある。また、遊技領域7の外側の左右上部および左右下部には、所定の音声出力として効果音や音声を発声する4つのスピーカ27が設けられている。遊技領域7の外周には、前面枠に設けられた枠LED28が設けられている。
遊技機には、遊技者が打球操作ハンドル5を操作することに応じて駆動モータを駆動し、駆動モータの回転力を利用して遊技球を遊技領域7に発射する打球発射装置(図示せず)が設けられている。打球発射装置から発射された遊技球は、遊技領域7を囲むように円形状に形成された打球レール(図示せず)を通って遊技領域7に入り、その後、遊技領域7を下りてくる。遊技球が第1始動入賞口13に入り第1始動口スイッチ13aで検出されると、第1特別図柄の可変表示を開始できる状態であれば(例えば、特別図柄の可変表示が終了し、第1の開始条件が成立したこと)、第1特別図柄表示器8aにおいて第1特別図柄の可変表示(変動)が開始されるとともに、演出表示装置9において演出図柄の可変表示が開始される。すなわち、第1特別図柄および演出図柄の可変表示は、第1始動入賞口13への入賞に対応する。第1特別図柄の可変表示を開始できる状態でなければ、第1保留記憶数が上限値に達していないことを条件として、第1保留記憶数を1増やす。
遊技球が第2始動入賞口14に入り第2始動口スイッチ14aで検出されると、第2特別図柄の可変表示を開始できる状態であれば(例えば、特別図柄の可変表示が終了し、第2の開始条件が成立したこと)、第2特別図柄表示器8bにおいて第2特別図柄の可変表示(変動)が開始されるとともに、演出表示装置9において演出図柄の可変表示が開始される。すなわち、第2特別図柄および演出図柄の可変表示は、第2始動入賞口14への入賞に対応する。第2特別図柄の可変表示を開始できる状態でなければ、第2保留記憶数が上限値に達していないことを条件として、第2保留記憶数を1増やす。
この実施の形態では、大当り(15R確変大当り、7R確変大当り、突然確変大当り)となった場合には、遊技状態を高確率状態(確変状態)に移行するとともに、遊技球が始動入賞しやすくなる(すなわち、特別図柄表示器8a,8bや演出表示装置9における可変表示の実行条件が成立しやすくなる)ように制御された遊技状態である高ベース状態に移行(この実施の形態では、時短状態に移行)する。高ベース状態である場合には、例えば、高ベース状態でない場合と比較して、可変入賞球装置15が開放状態となる頻度が高められたり、可変入賞球装置15が開放状態となる時間が延長されたりして、始動入賞しやすくなる。
なお、可変入賞球装置15が開放状態となる時間を延長する(開放延長状態ともいう)のでなく、普通図柄表示器10における停止図柄が当り図柄になる確率が高められる普通図柄確変状態に移行することによって、高ベース状態に移行してもよい。普通図柄表示器10における停止図柄が所定の図柄(当り図柄)となると、可変入賞球装置15が所定回数、所定時間だけ開放状態になる。この場合、普通図柄確変状態に移行制御することによって、普通図柄表示器10における停止図柄が当り図柄になる確率が高められ、可変入賞球装置15が開放状態となる頻度が高まる。従って、普通図柄確変状態に移行すれば、可変入賞球装置15の開放時間と開放回数が高められ、始動入賞しやすい状態(高ベース状態)となる。すなわち、可変入賞球装置15の開放時間と開放回数は、普通図柄の停止図柄が当り図柄であったり、特別図柄の停止図柄が確変図柄である場合等に高められ、遊技者にとって不利な状態から有利な状態(始動入賞しやすい状態)に変化する。なお、開放回数が高められることは、閉鎖放状態から開放状態になることも含む概念である。
また、普通図柄表示器10における普通図柄の変動時間(可変表示期間)が短縮される普通図柄時短状態に移行することによって、高ベース状態に移行してもよい。普通図柄時短状態では、普通図柄の変動時間が短縮されるので、普通図柄の変動が開始される頻度が高くなり、結果として普通図柄が当りとなる頻度が高くなる。従って、普通図柄が当たりとなる頻度が高くなることによって、可変入賞球装置15が開放状態となる頻度が高くなり、始動入賞しやすい状態(高ベース状態)となる。
また、特別図柄や演出図柄の変動時間(可変表示期間)が短縮される時短状態に移行することによって、特別図柄や演出図柄の変動時間が短縮されるので、特別図柄や演出図柄の変動が開始される頻度が高くなり(換言すれば、保留記憶の消化が速くなる。)、無効な始動入賞が生じてしまう事態を低減することができる。従って、有効な始動入賞が発生しやすくなり、結果として、大当り遊技が行われる可能性が高まる。
さらに、上記に示した全ての状態(開放延長状態、普通図柄確変状態、普通図柄時短状態および特別図柄時短状態)に移行させることによって、始動入賞しやすくなる(高ベース状態に移行する)ようにしてもよい。また、上記に示した各状態(開放延長状態、普通図柄確変状態、普通図柄時短状態および特別図柄時短状態)のうちのいずれか複数の状態に移行させることによって、始動入賞しやすくなる(高ベース状態に移行する)ようにしてもよい。また、上記に示した各状態(開放延長状態、普通図柄確変状態、普通図柄時短状態および特別図柄時短状態)のうちのいずれか1つの状態にのみ移行させることによって、始動入賞しやすくなる(高ベース状態に移行する)ようにしてもよい。
次に、振分装置200について説明する。図2は、振分装置200を説明するための説明図である。図2に示すように、振分装置200上部には、遊技球が流入可能な流入口201が設けられている。また、振分装置200内部には、流入口201から振分装置200内に流入した遊技球を左側通路203と右側通路204とのいずれかに振り分けるための振分部材202が設けられている。また、振分装置200の下部には、左側通路203を通過した遊技球が振分装置200から流出可能な左側流出口205と、右側通路204を通過した遊技球が振分装置200から流出可能な右側流出口206とが設けられている。
図2(a)に示す例では、振分部材202によって振分装置200内の右側通路204が遮蔽され、遊技球が左側通路203を通過可能な状態が示されている。図2(a)に示す状態において遊技球が流入口201から振分装置200内に流入すると、図2(b)に示すように、流入口201から流入した遊技球は振分部材200によって左側通路203に振り分けられ、左側通路203を通過して左側流出口205から流出する。そして、左側流出口205の下方には第1始動入賞口13が位置しているので、左側流出口205から流出した遊技球は、第1始動入賞口13に入賞する。
また、遊技球が左側通路203を通過するときに、振分部材202の回転軸部分に設けられている羽根部202aに遊技球があたり、遊技球の自重によって羽根部202aが押されることによって、図2(a)および図2(b)に示すように、振分部材202が右側に倒れている状態から左側に倒れている状態に変化する。そのように変化することにより、図2(b)に示すように、振分部材202によって振分装置200内の左側通路203が遮蔽され、遊技球が右側通路204を通過可能な状態となる。
次いで、そのような状態において、図2(c)に示すように、遊技球が流入口201から振分装置200内に流入すると、図2(d)に示すように、流入口201から流入した遊技球は振分部材200によって右側通路204に振り分けられ、右側通路204を通過して右側流出口206から流出する。そして、右側流出口206の下方には第2始動入賞口14が位置しているので、右側流出口206から流出した遊技球は、第2始動入賞口14に入賞する。
また、遊技球が右側通路204を通過するときに、振分部材204の回転軸部分に設けられている羽根部202aに遊技球があたり、遊技球の自重によって羽根部202aが押されることによって、図2(c)および図2(d)に示すように、振分部材202が左側に倒れている状態から右側に倒れている状態に変化する。そのように変化することにより、図2(d)に示すように、振分部材202によって振分装置200内の右側通路204が遮蔽され、遊技球が左側通路203を通過可能な状態となる。
図2に示すような動作をすることにより、この実施の形態では、振分部材202によって振分装置200に流入した遊技球が左側通路203と右側通路204とに交互に振り分けられ、第1始動入賞口13と第2始動入賞口14とに交互に入賞可能となる。
一方、この実施の形態では、振分装置200の振分部材202の状態にかかわらず、可変入賞球装置15が開放状態に制御されているときにも第2始動入賞口14に遊技球が入賞可能である。図3は、可変入賞球装置15が開放状態に制御されているときに第2始動入賞口14に遊技球が入賞する形態を説明するための説明図である。図3に示すように、振分部材202によって振分装置200内の右側通路204が遮蔽され、遊技球が左側通路203を通過可能な状態(右側通路204は通過不能または通過困難な状態)であっても、可変入賞球装置15が開放状態に制御されていれば、振分装置200の右方から遊技球が進入し第2始動入賞口14に入賞することが可能である。
なお、この実施の形態では、図3に示すように、第2始動入賞口14の左右両側に可変入賞球装置15の羽根部品が設けられている場合を示しているが、可変入賞球装置15が開放状態の場合に振分装置200を経由せずに第2始動入賞口14に入賞する場合には、図3に示すように振分装置200の右方から遊技球が進入して入賞する場合が殆どであることから、可変入賞球装置15の左側の羽根部品はなくてもよい。ただし、そのようにしてしまうと、振分装置200の右方から進入した遊技球が第2始動入賞口14の上を素通りして入賞できない場合も考えられるので、振分装置200の右方から進入した遊技球の勢いを止めるための遮蔽部(例えば、合成樹脂製の突起状部品や釘)を第2始動入賞口の開口部の左側に設けるようにして、可変入賞球装置15が開放中の第2始動入賞口14に遊技球が入賞するように構成してもよい。
また、この実施の形態では、図2および図3に示したように、振分装置200の下方に第1始動入賞口13および第2始動入賞口14を設けるように構成することによって、左側通路203に振り分けられた遊技球は略100%で第1始動入賞口13に入賞し、右側通路204に振り分けられた遊技球は略100%で第2始動入賞口14に入賞する場合を示したが、左側通路203や右側通路204に振り分けられた遊技球が振分装置200の外にこぼれる場合があるように構成し、左側通路203や右側通路204に振り分けられても必ずしも第1始動入賞口13や第2始動入賞口14に入賞しない場合があるようにしてもよい。例えば、図2および図3では左側流出口205および右側流出口206からダイレクトに真下に遊技球が落下するように構成したが、左側流出口205および右側流出口206に底面部材を設けて遊技者から見て奥側に一旦誘導されてから第1始動入賞口13や第2始動入賞口14に遊技球が流れるように構成するとともに、左側通路203や右側通路204の外側側面に開口部を設けて、左側通路203や右側通路204に振り分けられた遊技球の一部がその開口部から振分装置200の外にこぼれて第1始動入賞口13や第2始動入賞口14に入賞しない場合があるように構成してもよい。
また、この実施の形態では、第1始動入賞口13および第2始動入賞口14が振分装置200の外部に設けられている(具体的には、図2および図3に示すように、振分装置200の下方に設けられている)場合を示したが、第1始動入賞口13および第2始動入賞口14が振分装置200の内部に含まれているように構成してもよい。
また、この実施の形態では、振分装置200に2つの通路203,204が設けられている場合を示したが、2つである場合にかぎらず、3以上の通路が設けられていてもよい。この場合、例えば、第1始動入賞口13または第2始動入賞口14のいずれか一方または両方に入賞可能な通路が複数存在するように構成してもよい。
また、この実施の形態では、振分装置200の振分部材202が遊技球の自重によって物理的に左右に切り替わる場合を示したが、例えば、振分部材202を駆動するためのソレノイドやモータを設け、遊技制御用マイクロコンピュータ560からの制御によって振分部材202を交互に切り替えるように構成してもよい。
また、逆に、この実施の形態では、第2始動入賞口14に設けられた可変入賞球装置15についてはソレノイド16を駆動制御することにより開閉動作を行う場合を示しているが、可変入賞球装置15に振分部材202と類似の機構を適用して遊技球の自重により開閉動作を行うように構成するなど、可変入賞球装置15を遊技制御用マイクロコンピュータ560による制御によらずに物理的に開閉動作するように構成してもよい。この場合、例えば、可変入賞球装置15の開放状態を検出するためのセンサ(例えば、光センサ)を設けるようにし、そのセンサからの入力にもとづいて可変入賞球装置15が開放状態であるか否かを判定するようにすればよい。
図4は、主基板(遊技制御基板)31における回路構成の一例を示すブロック図である。なお、図4は、払出制御基板37および演出制御基板80等も示されている。主基板31には、プログラムに従ってパチンコ遊技機1を制御する遊技制御用マイクロコンピュータ(遊技制御手段に相当)560、制御用クロック生成回路111、および乱数用クロック生成回路112が搭載されている。遊技制御用マイクロコンピュータ560は、ゲーム制御(遊技進行制御)用のプログラム等を記憶するROM54、ワークメモリとして使用される記憶手段としてのRAM55、プログラムに従って制御動作を行うCPU56を含む。また、この実施の形態では、ROM54およびRAM55は遊技制御用マイクロコンピュータ560に内蔵されている。すなわち、遊技制御用マイクロコンピュータ560は、1チップマイクロコンピュータである。1チップマイクロコンピュータには、少なくともCPU56のほかRAM55が内蔵されていればよく、ROM54は外付けであっても内蔵されていてもよい。遊技制御用マイクロコンピュータ560には、さらに、ハードウェア乱数(ハードウェア回路が発生する乱数)を発生する乱数回路508a,508bが内蔵されている。
ここで、制御用クロック生成回路111は、遊技制御用マイクロコンピュータ560の外部にて、所定周波数の発振信号となる制御用クロックCCLKを生成する。制御用クロック生成回路111により生成された制御用クロックCCLKは、例えば、後述する図6に示すような遊技制御用マイクロコンピュータ560の制御用外部クロック端子を介してクロック回路502に供給される。乱数用クロック生成回路112は、遊技制御用マイクロコンピュータ560の外部にて、制御用クロックCCLKの発振周波数とは異なる所定周波数の発振信号となる乱数用クロックRCLKを生成する。乱数用クロック生成回路112により生成された乱数用クロックRCLKは、例えば、後述する図6に示すような遊技制御用マイクロコンピュータ560の乱数用外部クロック端子(RCK端子)を介して乱数回路508a,508bに供給される。一例として、乱数用クロック生成回路112により生成される乱数用クロックRCLKの発振周波数は、制御用クロック生成回路111により生成される制御用クロックCCLKの発振周波数以下となるようにすればよい。あるいは、乱数用クロック生成回路112により生成される乱数用クロックRCLKの発振周波数は、制御用クロック生成回路111により生成される制御用クロックCCLKの発振周波数よりも高周波となるようにしてもよい。
なお、この実施の形態では、乱数用クロック生成回路112から専用の乱数用クロックRCLKを乱数回路508a,508bに入力する場合を示しているが、そのような態様にかぎられない。例えば、専用のクロックを用いるのではなく、制御用クロック生成回路111からの制御用クロックCCLKを遊技制御用マイクロコンピュータ560内部で乱数回路508a,508bに入力させるように構成してもよい。この場合、例えば、制御用クロックCCLKを分周した信号を用いて乱数回路508a,508b内蔵の乱数カウンタ(後述する乱数生成回路525a,525b)を更新させるようにしてもよい。また、この場合、乱数用クロック生成回路112は主基板31上に設けなくてもよい。
また、RAM55は、その一部または全部が電源基板910において作成されるバックアップ電源によってバックアップされている不揮発性記憶手段としてのバックアップRAMである。すなわち、遊技機に対する電力供給が停止しても、所定期間(バックアップ電源としてのコンデンサが放電してバックアップ電源が電力供給不能になるまで)は、RAM55の一部または全部の内容は保存される。特に、少なくとも、遊技状態すなわち遊技制御手段の制御状態に応じたデータ(特別図柄プロセスフラグなど)と未払出賞球数を示すデータは、バックアップRAMに保存される。遊技制御手段の制御状態に応じたデータとは、停電等が生じた後に復旧した場合に、そのデータにもとづいて、制御状態を停電等の発生前に復旧させるために必要なデータである。また、制御状態に応じたデータと未払出賞球数を示すデータとを遊技の進行状態を示すデータと定義する。なお、この実施の形態では、RAM55の全部が、電源バックアップされているとする。
なお、遊技制御用マイクロコンピュータ560においてCPU56がROM54に格納されているプログラムに従って制御を実行するので、以下、遊技制御用マイクロコンピュータ560(またはCPU56)が実行する(または、処理を行う)ということは、具体的には、CPU56がプログラムに従って制御を実行することである。このことは、主基板31以外の他の基板に搭載されているマイクロコンピュータについても同様である。ただし、後述するように、遊技機への電源投入時やシステムリセット発生時には、遊技制御用マイクロコンピュータ560は、プログラム管理エリアの設定内容に従って、内部リセット動作の設定や乱数回路508a,508bの設定、レジスタの設定などを行うのであるが、この設定動作については、遊技制御用マイクロコンピュータ560は、プログラムによらず、ハードウェア的に実行する。
また、ゲートスイッチ32a、第1始動口スイッチ13a、第2始動口スイッチ14aおよびカウントスイッチ23からの検出信号を遊技制御用マイクロコンピュータ560に与える入力ドライバ回路58も主基板31に搭載されている。また、可変入賞球装置15を開閉するソレノイド16、および大入賞口を形成する特別可変入賞球装置20を開閉するソレノイド21、および羽根91を開閉するソレノイド22を遊技制御用マイクロコンピュータ560からの指令に従って駆動する出力回路59も主基板31に搭載されている。
また、遊技制御用マイクロコンピュータ560は、特別図柄を可変表示する第1特別図柄表示器8a、第2特別図柄表示器8b、普通図柄を可変表示する普通図柄表示器10、第1特別図柄保留記憶表示器18a、第2特別図柄保留記憶表示器18bおよび普通図柄保留記憶表示器41の表示制御を行う。
図4に示す遊技制御用マイクロコンピュータ560が備えるROM54には、上記以外にも、所定時間(本例では割込間隔の4ms)毎に更新されるカウンタのカウント数が満了する所定数が格納されている。このカウンタは、本例では1バイトにより構成されるので、0〜255(00(H)〜FF(H))の範囲でカウントでき、この範囲で所定数を設定できる。この所定数の設定を変えることで、多様な時間を計測できるが、本例では、所定数が25に設定され、これによりカウンタは、所定時間4ms×所定数25=100msで満了する。これは、後述する図73に示すように、特別図柄の変動時間が100ms単位で設定されているからである。またROM54には、複数種類のタイマのそれぞれにおける初期値(図74を参照)も格納されている。これらカウンタ及びタイマは、RAM55の遊技制御タイマ設定部に設けられている。
RAM55の遊技制御タイマ設定部には、パチンコ遊技機1における遊技の進行を制御するために用いられる各種のタイマ及び前記カウンタが設けられている。このタイマは、所定時間(本例では割込間隔の4ms)毎に更新される前記カウンタのカウント数が所定数(本例では25カウント)に達したこと(すなわち100ms経過したこと)に基づいて更新され、遊技の進行に関する時間(例えば変動時間,エラー時間,羽根91の動作時間など)を計測するためのものである。このタイマは、本例では2バイトにより構成されるので、0〜65535(0000(H)〜FFFF(H))の範囲でカウントでき、最長では該65535カウント×前記カウンタの満了時間100ms=109分13秒50を計時できる。従って、後述する図73に示すスーパーPC3−1の変動パターン及びスーパーPC3−2の変動パターン(すなわちスーパーリーチCが実行される変動パターン)の変動時間300秒=5分を計時できる。
ここで前記カウンタを設けずに2バイトの前記タイマのみで計時をすると、最長で65535カウント×割込間隔4ms=4分22秒14しか計時できないため、前記スーパーリーチCが実行される変動パターンに対応できない。一方、計時できる時間を長くしようとして前記タイマを3バイトとすれば、0〜16777215(000000(H)〜FFFFFF(H))の範囲でカウントでき、最長では該16777215カウント×割込間隔4ms=18時間38分超を計時できるが、変動パターンの数だけ3バイト分のデータが必要となるためデータ量が増えてしまう。
そこで本例では、変動パターンのデータは2バイト分としてタイマにより更新し、それとは別に1バイト分のカウンタを用いて時間を更新するようにしたので、タイマのみを用いる場合に比べて計時できる時間を長くできると共に、変動パターンのデータ量を増やさないようにしたのである。これらカウンタ及びタイマの更新処理については、図74を参照して後述する。
なお、大当り遊技状態の発生を示す大当り情報等の情報出力信号を、ターミナル基板160を介して、ホール管理用コンピュータ等の外部装置に対して出力する情報出力回路64も主基板31に搭載されている。
主基板31と演出制御基板80との間では、例えば主基板31から中継基板77を介して演出制御基板80へと向かう単一方向のみでシリアル通信などを行うことにより、各種の演出制御コマンドが伝送される。この実施の形態では、演出制御基板80に搭載されている演出制御手段(演出制御用マイクロコンピュータで構成される。)が、中継基板77を介して遊技制御用マイクロコンピュータ560から演出内容を指示する演出制御コマンドを受信し、演出図柄を可変表示する演出表示装置9の表示制御を行う。
また、演出制御基板80に搭載されている演出制御手段が、ランプドライバ基板35を介して、遊技盤に設けられている装飾LED25、および枠側に設けられている枠LED28の表示制御を行うとともに、音声出力基板70を介してスピーカ27からの音出力の制御を行う。
図5は、中継基板77、演出制御基板80、ランプドライバ基板35および音声出力基板70の回路構成例を示すブロック図である。なお、図5に示す例では、ランプドライバ基板35および音声出力基板70には、マイクロコンピュータは搭載されていないが、マイクロコンピュータを搭載してもよい。また、ランプドライバ基板35および音声出力基板70を設けずに、演出制御に関して演出制御基板80のみを設けてもよい。
演出制御基板80は、演出制御用CPU101、および演出図柄プロセスフラグ等の演出に関する情報を記憶するRAMを含む演出制御用マイクロコンピュータ100を搭載している。なお、RAMは外付けであってもよい。この実施の形態では、演出制御用マイクロコンピュータ100におけるRAMは電源バックアップされていない。演出制御基板80において、演出制御用CPU101は、内蔵または外付けのROM(図示せず)に格納されたプログラムに従って動作し、中継基板77を介して演出制御コマンドを受信する。また、演出制御用CPU101は、演出制御コマンドにもとづいて、VDP(ビデオディスプレイプロセッサ)109に演出表示装置9の表示制御を行わせる。
この実施の形態では、演出制御用マイクロコンピュータ100と共動して演出表示装置9の表示制御を行うVDP109が演出制御基板80に搭載されている。VDP109は、演出制御用マイクロコンピュータ100とは独立したアドレス空間を有し、そこにVRAMをマッピングする。VRAMは、画像データを展開するためのバッファメモリである。そして、VDP109は、VRAM内の画像データをフレームメモリを介して演出表示装置9に出力する。
演出制御用CPU101は、受信した演出制御コマンドに従ってCGROM(図示せず)から必要なデータを読み出すための指令をVDP109に出力する。CGROMは、演出表示装置9に表示されるキャラクタ画像データや動画像データ、具体的には、人物、文字、図形や記号等(演出図柄を含む)、および背景画像のデータをあらかじめ格納しておくためのROMである。VDP109は、演出制御用CPU101の指令に応じて、CGROMから画像データを読み出す。そして、VDP109は、読み出した画像データにもとづいて表示制御を実行する。
また、演出制御用CPU101は、スティックコントローラ122のトリガボタン121に対する遊技者の操作行為を検出したことを示す情報信号としての操作検出信号を、トリガセンサ125から、入力ポート106を介して入力する。また、演出制御用CPU101は、プッシュボタン120に対する遊技者の操作行為を検出したことを示す情報信号としての操作検出信号を、プッシュセンサ124から、入力ポート106を介して入力する。また、演出制御用CPU101は、スティックコントローラ122の操作桿に対する遊技者の操作行為を検出したことを示す情報信号としての操作検出信号を、傾倒方向センサユニット123から、入力ポート106を介して入力する。また、演出制御用CPU101は、出力ポート105を介してバイブレータ用モータ126に駆動信号を出力することにより、スティックコントローラ122を振動動作させる。
さらに、演出制御用CPU101は、出力ポート105を介してランプドライバ基板35に対してLEDを駆動する信号を出力する。また、演出制御用CPU101は、出力ポート104を介して音声出力基板70に対して音番号データを出力する。
ランプドライバ基板35において、LEDを駆動する信号は、入力ドライバ351を介してLEDドライバ352に入力される。LEDドライバ352は、LEDを駆動する信号にもとづいて枠LED28などの枠側に設けられている発光体に電流を供給する。また、遊技盤側に設けられている装飾LED25に電流を供給する。
音声出力基板70において、音番号データは、入力ドライバ702を介して音声合成用IC703に入力される。音声合成用IC703は、音番号データに応じた音声や効果音を発生し増幅回路705に出力する。増幅回路705は、音声合成用IC703の出力レベルを、ボリューム706で設定されている音量に応じたレベルに増幅した音声信号をスピーカ27に出力する。音声データROM704には、音番号データに応じた制御データが格納されている。音番号データに応じた制御データは、所定期間(例えば演出図柄の変動期間)における効果音または音声の出力態様を時系列的に示すデータの集まりである。
図6は、主基板31に搭載された遊技制御用マイクロコンピュータ560の構成例を示している。図6に示す遊技制御用マイクロコンピュータ560は、例えば1チップマイクロコンピュータであり、外部バスインタフェース501と、クロック回路502と、照合用ブロック503と、固有情報記憶回路504と、演算回路505と、リセット/割込みコントローラ506と、CPU(Central Processing Unit)56と、ROM(Read Only Memory)54と、RAM(Random Access Memory)55と、フリーランカウンタ回路507と、乱数回路508a,508bと、タイマ回路509と、割り込みコントローラ510と、パラレル入力ポート511と、シリアル通信回路512と、パラレル出力ポート513と、アドレスデコード回路514とを備えて構成される。
また、遊技制御用マイクロコンピュータ560が搭載する乱数回路には、8ビット乱数を発生させる8ビット乱数回路508aと、16ビット乱数を発生させる16ビット乱数回路508bとがある。なお、図6に示す例では、8ビット乱数回路508aと、16ビット乱数を発生させる16ビット乱数回路508bとが1つずつ図示されているが、遊技制御用マイクロコンピュータ560は、8ビット乱数回路508aと、16ビット乱数を発生させる16ビット乱数回路508bとを、それぞれ4回路(4チャネル)ずつ搭載している。なお、この実施の形態では、8ビット乱数回路508aの4つのチャネルをそれぞれRS0〜RS3と表現する場合があり、16ビット乱数回路508bの4つのチャネルをそれぞれRL0〜RL3と表現する場合がある。
また、リセット/割り込みコントローラ506は、指定エリア外走行禁止(IAT)回路506aとウオッチドッグタイマ(WDT)506bとを備える。IAT回路506aは、ユーザプログラムが指定エリア内で正しく実行されているか否かを監視する回路であり、指定エリア外でユーザプログラムが実行されたことを検出するとIAT発生信号を出力する機能を備える。また、ウオッチドッグタイマ506bは、設定期間ごとにタイムアウト信号を発生させる機能を備える。
図7は、遊技制御用マイクロコンピュータ560におけるアドレスマップの一例を示している。図7に示すように、アドレス0000H〜アドレス2FFFHの領域は、遊技制御用マイクロコンピュータ560のROM54に割り当てられ、プログラムコード/データエリア(ユーザプログラムやデータを格納するエリア)とプログラム管理エリアとを含んでいる。図8は、ROM54におけるプログラム管理エリアの主要部分について、用途や内容の一例を示している。アドレスF000H〜アドレスF3FFHの領域は、遊技制御用マイクロコンピュータ560のRAM55に割り当てられている。アドレスFE00H〜アドレスFEBFHの領域は、遊技制御用マイクロコンピュータ560の内蔵レジスタに割り当てられる内蔵レジスタエリアである。図9〜図11は、内蔵レジスタエリアの主要部分について、用途や内容の一例を示している。アドレスFED0H〜アドレスFEFDHの領域は、アドレスデコード回路514に割り当てられるXCS,XCSEデコードエリアである。
プログラム管理エリアは、遊技制御用マイクロコンピュータ560がシステムリセット時に内部リセット動作の設定や乱数回路508a,508bの設定など各種設定を行うために必要な情報を格納する記憶領域である。図8に示すように、プログラム管理エリアには、ヘッダ(KHDR)、プログラムコードエンドアドレス(KPCE)、プログラムコードスタートアドレス2(KPCS2)、プログラムコードエンドアドレス2(KPCE2)、リセット設定(KRES)、16ビット乱数初期設定1(KRL1)、16ビット乱数初期設定2(KRL2)、16ビット乱数初期設定3(KRL3)、8ビット乱数初期設定1(KRS1)、8ビット乱数初期設定2(KRS2)、セキュリティ時間設定(KSES)、乱数クロック監視設定(KRCS)などが、含まれている。また、図9〜図11に示すように、内蔵レジスタエリアには、内部情報レジスタ(CIF)や、乱数回路508a,508bで用いる各種レジスタなどが、含まれている。
プログラム管理エリアに記憶されるヘッダ(KHDR)は、プログラム管理エリアのスタートを示す8バイトのコード列の設定、および遊技制御用マイクロコンピュータ560における内部データの読出設定を示す。図12は、ヘッダ(KHDR)における設定データと動作との対応関係を例示している。ここで、遊技制御用マイクロコンピュータ560では、ROM読出防止機能と、バス出力マスク機能とを設定可能である。ROM読出防止機能は、遊技制御用マイクロコンピュータ560が備えるROM54の記憶データについて、読出動作を許可または禁止する機能であり、読出禁止に設定された状態では、ROM54の記憶データを読み出すことができない。バス出力マスク機能は、外部バスインタフェース501に接続された外部装置から遊技制御用マイクロコンピュータ560の内部データに対する読出要求があった場合に、外部バスインタフェース501におけるアドレスバス出力、データバス出力および制御信号出力にマスクをかけることにより、外部装置から内部データの読み出しを不能にする機能である。図12に示すように、プログラム管理エリアのスタートを示す8バイトのコード列として設定する設定データに対応して、ROM読出防止機能やバス出力マスク機能の動作組合せが異なるように設定される。図12に示す設定データのうち、ROM読出が許可されるとともに、バス出力マスクが有効となる設定データは、バス出力マスク有効データともいう。また、ROM読出が禁止されるとともに、バス出力マスクが有効となる設定データ(全て「00H」)は、ROM読出禁止データともいう。ROM読出が許可されるとともに、バス出力マスクが無効となる設定データは、バス出力マスク無効データともいう。
プログラム管理エリアに記憶されるプログラムコードエンドアドレス(KPCE)は、ユーザプログラムの0000Hから続くプログラムコードエリアの最終アドレスの設定を示す。図13(A)は、プログラムコードエンドアドレス(KPCE)における設定内容の一例を示している。
なお、この実施の形態では、アドレス0000H〜アドレス2FBFHまでのプログラムコード/データエリア内に2つのプログラムコードエリアを設定可能である。具体的には、1つ目のプログラムコードエリアは、アドレス0000Hからプログラムコードエンドアドレス(KPCE)で設定されるアドレスまでのエリアとして設定可能であり、2つ目のプログラムコードエリアは、プログラムコードスタートアドレス2(KPCS2)で設定されるアドレスからプログラムコードエンドアドレス2(KPCE2)で設定されるアドレスまでのエリアとして設定可能である。以下、1つ目のプログラムコードエリアに格納されるプログラムコードをプログラムコード1ともいい、2つ目のプログラムコードエリアに格納されるプログラムコードをプログラムコード2ともいう。
図13(A)に示すように、プログラムコードエンドアドレス(KPCE)のアドレス2FD3Hには、プログラムコード1の最終アドレスの下位アドレスが設定される。また、アドレス2FD4Hには、プログラムコード1の最終アドレスの上位アドレスが設定される。
プログラム管理エリアに記憶されるプログラムコードスタートアドレス2(KPCS2)は、ユーザプログラムが2つのブロックに分かれた場合の2つ目のプログラムコードエリアの先頭アドレスの設定を示す。図13(B)は、プログラムコードスタートアドレス2(KPCS2)における設定内容の一例を示している。
図13(B)に示すように、プログラムコードスタートアドレス2(KPCS2)のアドレス2FD5Hには、プログラムコード2の先頭アドレスの下位アドレスが設定される。また、アドレス2FD6Hには、プログラムコード2の先頭アドレスの上位アドレスが設定される。なお、プログラムコードエリアを2つに分けない場合には、プログラムコードスタートアドレス2(KPCS2)のアドレス2FD5Hおよびアドレス2FD6Hにそれぞれ0000Hを設定するようにすればよい。
プログラム管理エリアに記憶されるプログラムコードエンドアドレス2(KPCE2)は、ユーザプログラムが2つのブロックに分かれた場合の2つ目のプログラムコードエリアの最終アドレスの設定を示す。図13(C)は、プログラムコードエンドアドレス2(KPCE2)における設定内容の一例を示している。
図13(C)に示すように、プログラムコードエンドアドレス2(KPCE2)のアドレス2FD7Hには、プログラムコード2の最終アドレスの下位アドレスが設定される。また、アドレス2FD8Hには、プログラムコード2の最終アドレスの上位アドレスが設定される。なお、プログラムコードエリアを2つに分けない場合には、プログラムコードエンドアドレス2(KPCE2)のアドレス2FD7Hおよびアドレス2FD8Hにそれぞれ0000Hを設定するようにすればよい。
なお、図13に示すプログラムコードエンドアドレス(KPCE)、プログラムコードスタートアドレス2(KPCS2)およびプログラムコードエンドアドレス2(KPCE2)の設定内容は、IAT回路506aによってユーザプログラムが指定エリア内で正しく実行されているか否かを監視する際に参照される。すなわち、IAT回路506aは、0000Hからプログラムコードエンドアドレス(KPCE)で示されるアドレス、またはプログラムコードスタートアドレス2(KPCS2)で示されるアドレスからプログラムコードエンドアドレス2(KPCE2)で示されるアドレスまでの指定範囲でユーザプログラムが実行されているか否かを判定し、その指定範囲外でユーザプログラムが実行されていることを検出したことにもとづいてIAT信号を出力する。
プログラム管理エリアに記憶されるリセット設定(KRES)は、内部リセット動作やウオッチドッグタイマ(WDT)506bの動作許可/禁止の設定を示す。図14は、リセット設定(KRES)における設定内容の一例を示している。
リセット設定(KRES)のビット[7]は、ウオッチドッグタイマ(WDT)506bからのタイムアウト信号を入力したことや、IATが発生したこと(IAT回路506aからのIAT信号を入力したとき)により内部リセットが発生したときの動作の設定を示している。図14に示す例において、リセット設定(KRES)のビット[7]におけるビット値が”0”であれば、タイムアウト信号やIAT信号を入力したときにユーザリセットが発生する。これに対して、リセット設定(KRES)のビット[7]におけるビット値が”1”であれば、タイムアウト信号やIAT信号を入力したときにシステムリセットが発生する。
リセット設定(KRES)のビット[6]は、ウオッチドッグタイマ(WDT)506bの起動方法の設定を示している。図14に示す例において、リセット設定(KRES)のビット[6]におけるビット値が”0”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことにもとづいて自動的にウオッチドッグタイマ(WDT)506bが起動され時間計測が開始される。これに対して、リセット設定(KRES)のビット[6]におけるビット値が”1”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)によりウオッチドッグタイマ(WDT)506bが起動され時間計測が開始される。
リセット設定(KRES)のビット[5−4]は、ウオッチドッグタイマ(WDT)506bの基準クロック信号の設定を示している。図14に示す例では、リセット設定(KRES)のビット[5−4]に”00”が設定された場合には、基準クロック信号として215×TSCLKが選択される。また、リセット設定(KRES)のビット[5−4]に”01”が設定された場合には、基準クロック信号として219×TSCLKが選択される。また、リセット設定(KRES)のビット[5−4]に”10”が設定された場合には、基準クロック信号として222×TSCLKが選択される。また、リセット設定(KRES)のビット[5−4]に”11”が設定された場合には、基準クロック信号として225×TSCLKが選択される。なお、SCLKとは、遊技制御用マイクロコンピュータ560の内部システムクロックを示しており、TSCLKは、1/SCLKを示している。
リセット設定(KRES)のビット[3−0]は、ウオッチドッグタイマ(WDT)506bのタイムアウト時間の設定を示している。具体的には、ウオッチドッグタイマ(WDT)506bのタイムアウト時間は、リセット設定(KRES)のビット[5−4]で選択した基準クロックに、リセット設定(KRES)のビット[3−0]で設定した設定値を乗算した値となる。例えば、リセット設定(KRES)のビット[3−0]に”1000”を設定(すなわち、値「8」を設定)した場合、リセット設定(KRES)のビット[5−4]に”00”を設定した場合には、タイムアウト時間は215×TSCLK×8となり、リセット設定(KRES)のビット[5−4]に”01”を設定した場合には、タイムアウト時間は219×TSCLK×8となり、リセット設定(KRES)のビット[5−4]に”10”を設定した場合には、タイムアウト時間は222×TSCLK×8となり、リセット設定(KRES)のビット[5−4]に”11”を設定した場合には、タイムアウト時間は225×TSCLK×8となる。また、リセット設定(KRES)のビット[3−0]に”1111”を設定(すなわち、値「15」を設定)した場合、リセット設定(KRES)のビット[5−4]に”00”を設定した場合には、タイムアウト時間は215×TSCLK×15となり、リセット設定(KRES)のビット[5−4]に”01”を設定した場合には、タイムアウト時間は219×TSCLK×15となり、リセット設定(KRES)のビット[5−4]に”10”を設定した場合には、タイムアウト時間は222×TSCLK×15となり、リセット設定(KRES)のビット[5−4]に”11”を設定した場合には、タイムアウト時間は225×TSCLK×15となる。なお、図14には、内部システムクロックが10.0MHzと12.0MHzである場合のタイムアウト時間の値の具体例もそれぞれ示されている。
なお、ウオッチドッグタイマ(WDT)506bを使用しないように設定する場合、図14に示すように、リセット設定(KRES)のビット[3−0]に”0000”を設定するようにすればよい。ただし、リセット設定(KRES)のビット[3−0]に”0000”がセットされてウオッチドッグタイマ(WDT)506bが使用禁止状態に設定された場合であっても、リセット設定(KRES)のビット[7]の値を設定することにより、システムリセットするかユーザリセットとするかの設定を行うことは可能である。
プログラム管理エリアに記憶される16ビット乱数初期設定1(KRL1)、16ビット乱数初期設定2(KRL2)および16ビット乱数初期設定3(KRL3)は、16ビット乱数回路508bの設定を示す。図15は、16ビット乱数初期設定1(KRL1)のにおける設定内容の一例を示している。また、図16は、16ビット乱数初期設定2(KRL2)のにおける設定内容の一例を示している。さらに、図17は、16ビット乱数初期設定3(KRL3)のにおける設定内容の一例を示している。
まず、図15を用いて、16ビット乱数初期設定1(KRL1)における設定内容を説明する。16ビット乱数初期設定1(KRL1)のビット「7」は、4チャネルの16ビット乱数回路508bのうち、チャネル1の16ビット乱数回路508bの起動方法の設定を示している。図15に示す例において、16ビット乱数初期設定1(KRL1)のビット「7」におけるビット値が”0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル1の16ビット乱数回路508bが起動される。これに対して、16ビット乱数初期設定1(KRL1)のビット「7」におけるビット値が”1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことにもとづいて自動的にチャネル1の16ビット乱数回路508bが起動される。
16ビット乱数初期設定1(KRL1)のビット「6」は、チャネル1の16ビット乱数回路508bの更新クロックの設定を示している。図15に示す例において、16ビット乱数初期設定1(KRL1)のビット「6」におけるビット値が”0”であれば、遊技制御用マイクロコンピュータ560の内部システムクロックを更新クロックとして用いる。これに対して、16ビット乱数初期設定1(KRL1)のビット「6」におけるビット値が”1”であれば、遊技制御用マイクロコンピュータ560の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
なお、この実施の形態では、既に説明した乱数用クロック生成回路112により生成された乱数用クロックRCLKを乱数用外部クロック端子(RCK端子)を介して入力し、その乱数用クロックRCLKを2分周した信号を更新クロックとして用いるものとする。なお、このことは、他のチャネルの16ビット乱数回路508bや8ビット乱数回路508aについても同様である。
16ビット乱数初期設定1(KRL1)のビット「5−4」は、チャネル1の16ビット乱数回路508bが更新する乱数列を変更するか否かの設定を示している。図15に示す例において、16ビット乱数初期設定1(KRL1)のビット「5−4」におけるビット値が”00”であれば、チャネル1の16ビット乱数回路508bが更新する乱数列は変更されない。また、16ビット乱数初期設定1(KRL1)のビット「5−4」におけるビット値が”01”であれば、チャネル1の16ビット乱数回路508bが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、16ビット乱数初期設定1(KRL1)のビット「5−4」におけるビット値が”10”であれば、チャネル1の16ビット乱数回路508bが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、16ビット乱数初期設定1(KRL1)のビット「5−4」におけるビット値が”11”であれば、チャネル1の16ビット乱数回路508bが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
16ビット乱数初期設定1(KRL1)のビット「3」は、4チャネルの16ビット乱数回路508bのうち、チャネル0の16ビット乱数回路508bの起動方法の設定を示している。図15に示す例において、16ビット乱数初期設定1(KRL1)のビット「3」におけるビット値が”0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル0の16ビット乱数回路508bが起動される。これに対して、16ビット乱数初期設定1(KRL1)のビット「3」におけるビット値が”1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことにもとづいて自動的にチャネル0の16ビット乱数回路508bが起動される。
16ビット乱数初期設定1(KRL1)のビット「2」は、チャネル0の16ビット乱数回路508bの更新クロックの設定を示している。図15に示す例において、16ビット乱数初期設定1(KRL1)のビット「2」におけるビット値が”0”であれば、遊技制御用マイクロコンピュータ560の内部システムクロックを更新クロックとして用いる。これに対して、16ビット乱数初期設定1(KRL1)のビット「2」におけるビット値が”1”であれば、遊技制御用マイクロコンピュータ560の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
16ビット乱数初期設定1(KRL1)のビット「1−0」は、チャネル0の16ビット乱数回路508bが更新する乱数列を変更するか否かの設定を示している。図15に示す例において、16ビット乱数初期設定1(KRL1)のビット「1−0」におけるビット値が”00”であれば、チャネル0の16ビット乱数回路508bが更新する乱数列は変更されない。また、16ビット乱数初期設定1(KRL1)のビット「1−0」におけるビット値が”01”であれば、チャネル0の16ビット乱数回路508bが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、16ビット乱数初期設定1(KRL1)のビット「1−0」におけるビット値が”10”であれば、チャネル0の16ビット乱数回路508bが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、16ビット乱数初期設定1(KRL1)のビット「1−0」におけるビット値が”11”であれば、チャネル0の16ビット乱数回路508bが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
次に、図16を用いて、16ビット乱数初期設定2(KRL2)における設定内容を説明する。16ビット乱数初期設定2(KRL2)のビット「7」は、4チャネルの16ビット乱数回路508bのうち、チャネル3の16ビット乱数回路508bの起動方法の設定を示している。図16に示す例において、16ビット乱数初期設定2(KRL2)のビット「7」におけるビット値が”0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル3の16ビット乱数回路508bが起動される。これに対して、16ビット乱数初期設定2(KRL2)のビット「7」におけるビット値が”1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことにもとづいて自動的にチャネル3の16ビット乱数回路508bが起動される。
16ビット乱数初期設定2(KRL2)のビット「6」は、チャネル3の16ビット乱数回路508bの更新クロックの設定を示している。図16に示す例において、16ビット乱数初期設定2(KRL2)のビット「6」におけるビット値が”0”であれば、遊技制御用マイクロコンピュータ560の内部システムクロックを更新クロックとして用いる。これに対して、16ビット乱数初期設定2(KRL2)のビット「6」におけるビット値が”1”であれば、遊技制御用マイクロコンピュータ560の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
16ビット乱数初期設定2(KRL2)のビット「5−4」は、チャネル3の16ビット乱数回路508bが更新する乱数列を変更するか否かの設定を示している。図16に示す例において、16ビット乱数初期設定2(KRL2)のビット「5−4」におけるビット値が”00”であれば、チャネル3の16ビット乱数回路508bが更新する乱数列は変更されない。また、16ビット乱数初期設定2(KRL2)のビット「5−4」におけるビット値が”01”であれば、チャネル3の16ビット乱数回路508bが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、16ビット乱数初期設定2(KRL2)のビット「5−4」におけるビット値が”10”であれば、チャネル3の16ビット乱数回路508bが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、16ビット乱数初期設定2(KRL2)のビット「5−4」におけるビット値が”11”であれば、チャネル3の16ビット乱数回路508bが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
16ビット乱数初期設定2(KRL2)のビット「3」は、4チャネルの16ビット乱数回路508bのうち、チャネル2の16ビット乱数回路508bの起動方法の設定を示している。図16に示す例において、16ビット乱数初期設定2(KRL2)のビット「3」におけるビット値が”0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル2の16ビット乱数回路508bが起動される。これに対して、16ビット乱数初期設定2(KRL2)のビット「3」におけるビット値が”1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことにもとづいて自動的にチャネル2の16ビット乱数回路508bが起動される。
16ビット乱数初期設定2(KRL2)のビット「2」は、チャネル2の16ビット乱数回路508bの更新クロックの設定を示している。図16に示す例において、16ビット乱数初期設定2(KRL2)のビット「2」におけるビット値が”0”であれば、遊技制御用マイクロコンピュータ560の内部システムクロックを更新クロックとして用いる。これに対して、16ビット乱数初期設定2(KRL2)のビット「2」におけるビット値が”1”であれば、遊技制御用マイクロコンピュータ560の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
16ビット乱数初期設定2(KRL2)のビット「1−0」は、チャネル2の16ビット乱数回路508bが更新する乱数列を変更するか否かの設定を示している。図16に示す例において、16ビット乱数初期設定2(KRL2)のビット「1−0」におけるビット値が”00”であれば、チャネル2の16ビット乱数回路508bが更新する乱数列は変更されない。また、16ビット乱数初期設定2(KRL2)のビット「1−0」におけるビット値が”01”であれば、チャネル2の16ビット乱数回路508bが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、16ビット乱数初期設定2(KRL2)のビット「1−0」におけるビット値が”10”であれば、チャネル2の16ビット乱数回路508bが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、16ビット乱数初期設定2(KRL2)のビット「1−0」におけるビット値が”11”であれば、チャネル2の16ビット乱数回路508bが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
次に、図17を用いて、16ビット乱数初期設定3(KRL3)のにおける設定内容を説明する。16ビット乱数初期設定3(KRL3)のビット「7」は、4チャネルの16ビット乱数回路508bのうち、チャネル3の16ビット乱数回路508bの1周目からのスタート値の設定を示している。図17に示す例において、16ビット乱数初期設定3(KRL3)のビット「7」におけるビット値が”0”であれば、乱数更新の1周目のスタート値として0001Hが用いられる。これに対して、16ビット乱数初期設定3(KRL3)のビット「7」におけるビット値が”1”であれば、乱数更新の1周目のスタート値として遊技制御用マイクロコンピュータ560のIDナンバをもとにした値が用いられる。遊技制御用マイクロコンピュータ560のIDナンバはチップごとに異なることから、スタート値としてIDナンバをもとにした値を用いることにより、乱数の更新タイミングを予測しにくくすることができ、乱数の更新タイミングを狙って不正に大当りを発生させるような行為を防止することができる。なお、IDナンバをもとにした値として、IDナンバそのものを用いてもよいし、IDナンバに所定の演算(例えば、所定値を加算したり減算したりした値)を用いてもよい。
16ビット乱数初期設定3(KRL3)のビット「6」は、チャネル3の16ビット乱数回路508bのスタート値をシステムリセットごとに変更するか否かの設定を示している。図17に示す例において、16ビット乱数初期設定3(KRL3)のビット「6」におけるビット値が”0”であれば、システムリセット時にスタート値の変更は行わない。これに対して、16ビット乱数初期設定3(KRL3)のビット「6」におけるビット値が”1”であれば、システムリセットごとにスタート値を変更する。
16ビット乱数初期設定3(KRL3)のビット「5」は、4チャネルの16ビット乱数回路508bのうち、チャネル2の16ビット乱数回路508bの1周目からのスタート値の設定を示している。図17に示す例において、16ビット乱数初期設定3(KRL3)のビット「5」におけるビット値が”0”であれば、乱数更新の1周目のスタート値として0001Hが用いられる。これに対して、16ビット乱数初期設定3(KRL3)のビット「5」におけるビット値が”1”であれば、乱数更新の1周目のスタート値として遊技制御用マイクロコンピュータ560のIDナンバをもとにした値が用いられる。
16ビット乱数初期設定3(KRL3)のビット「4」は、チャネル2の16ビット乱数回路508bのスタート値をシステムリセットごとに変更するか否かの設定を示している。図17に示す例において、16ビット乱数初期設定3(KRL3)のビット「4」におけるビット値が”0”であれば、システムリセット時にスタート値の変更は行わない。これに対して、16ビット乱数初期設定3(KRL3)のビット「6」におけるビット値が”1”であれば、システムリセットごとにスタート値を変更する。
16ビット乱数初期設定3(KRL3)のビット「3」は、4チャネルの16ビット乱数回路508bのうち、チャネル1の16ビット乱数回路508bの1周目からのスタート値の設定を示している。図17に示す例において、16ビット乱数初期設定3(KRL3)のビット「3」におけるビット値が”0”であれば、乱数更新の1周目のスタート値として0001Hが用いられる。これに対して、16ビット乱数初期設定3(KRL3)のビット「3」におけるビット値が”1”であれば、乱数更新の1周目のスタート値として遊技制御用マイクロコンピュータ560のIDナンバをもとにした値が用いられる。
16ビット乱数初期設定3(KRL3)のビット「2」は、チャネル1の16ビット乱数回路508bのスタート値をシステムリセットごとに変更するか否かの設定を示している。図17に示す例において、16ビット乱数初期設定3(KRL3)のビット「2」におけるビット値が”0”であれば、システムリセット時にスタート値の変更は行わない。これに対して、16ビット乱数初期設定3(KRL3)のビット「2」におけるビット値が”1”であれば、システムリセットごとにスタート値を変更する。
16ビット乱数初期設定3(KRL3)のビット「1」は、4チャネルの16ビット乱数回路508bのうち、チャネル0の16ビット乱数回路508bの1周目からのスタート値の設定を示している。図17に示す例において、16ビット乱数初期設定3(KRL3)のビット「1」におけるビット値が”0”であれば、乱数更新の1周目のスタート値として0001Hが用いられる。これに対して、16ビット乱数初期設定3(KRL3)のビット「1」におけるビット値が”1”であれば、乱数更新の1周目のスタート値として遊技制御用マイクロコンピュータ560のIDナンバをもとにした値が用いられる。
16ビット乱数初期設定3(KRL3)のビット「0」は、チャネル0の16ビット乱数回路508bのスタート値をシステムリセットごとに変更するか否かの設定を示している。図17に示す例において、16ビット乱数初期設定3(KRL3)のビット「0」におけるビット値が”0”であれば、システムリセット時にスタート値の変更は行わない。これに対して、16ビット乱数初期設定3(KRL3)のビット「0」におけるビット値が”1”であれば、システムリセットごとにスタート値を変更する。
プログラム管理エリアに記憶される8ビット乱数初期設定1(KRS1)および8ビット乱数初期設定2(KRS2)は、8ビット乱数回路508aの設定を示す。図18は、8ビット乱数初期設定1(KRS1)のにおける設定内容の一例を示している。また、図19は、8ビット乱数初期設定2(KRS2)のにおける設定内容の一例を示している。
まず、図18を用いて、8ビット乱数初期設定1(KRS1)における設定内容を説明する。8ビット乱数初期設定1(KRS1)のビット「7」は、4チャネルの8ビット乱数回路508aのうち、チャネル1の8ビット乱数回路508aの起動方法の設定を示している。図18に示す例において、8ビット乱数初期設定1(KRS1)のビット「7」におけるビット値が”0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル1の8ビット乱数回路508aが起動される。これに対して、8ビット乱数初期設定1(KRS1)のビット「7」におけるビット値が”1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことにもとづいて自動的にチャネル1の8ビット乱数回路508aが起動される。
8ビット乱数初期設定1(KRS1)のビット「6」は、チャネル1の8ビット乱数回路508aの更新クロックの設定を示している。図18に示す例において、8ビット乱数初期設定1(KRS1)のビット「6」におけるビット値が”0”であれば、遊技制御用マイクロコンピュータ560の内部システムクロックを更新クロックとして用いる。これに対して、8ビット乱数初期設定1(KRS1)のビット「6」におけるビット値が”1”であれば、遊技制御用マイクロコンピュータ560の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
8ビット乱数初期設定1(KRS1)のビット「5−4」は、チャネル1の8ビット乱数回路508aが更新する乱数列を変更するか否かの設定を示している。図18に示す例において、8ビット乱数初期設定1(KRS1)のビット「5−4」におけるビット値が”00”であれば、チャネル1の8ビット乱数回路508aが更新する乱数列は変更されない。また、8ビット乱数初期設定1(KRS1)のビット「5−4」におけるビット値が”01”であれば、チャネル1の8ビット乱数回路508aが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、8ビット乱数初期設定1(KRS1)のビット「5−4」におけるビット値が”10”であれば、チャネル1の8ビット乱数回路508aが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、8ビット乱数初期設定1(KRS1)のビット「5−4」におけるビット値が”11”であれば、チャネル1の8ビット乱数回路508aが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
8ビット乱数初期設定1(KRS1)のビット「3」は、4チャネルの8ビット乱数回路508aのうち、チャネル0の8ビット乱数回路508aの起動方法の設定を示している。図18に示す例において、8ビット乱数初期設定1(KRS1)のビット「3」におけるビット値が”0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル0の8ビット乱数回路508aが起動される。これに対して、8ビット乱数初期設定1(KRS1)のビット「3」におけるビット値が”1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことにもとづいて自動的にチャネル0の8ビット乱数回路508aが起動される。
8ビット乱数初期設定1(KRS1)のビット「2」は、チャネル0の8ビット乱数回路508aの更新クロックの設定を示している。図18に示す例において、8ビット乱数初期設定1(KRS1)のビット「2」におけるビット値が”0”であれば、遊技制御用マイクロコンピュータ560の内部システムクロックを更新クロックとして用いる。これに対して、8ビット乱数初期設定1(KRS1)のビット「2」におけるビット値が”1”であれば、遊技制御用マイクロコンピュータ560の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
8ビット乱数初期設定1(KRS1)のビット「1−0」は、チャネル0の8ビット乱数回路508aが更新する乱数列を変更するか否かの設定を示している。図18に示す例において、8ビット乱数初期設定1(KRS1)のビット「1−0」におけるビット値が”00”であれば、チャネル0の8ビット乱数回路508aが更新する乱数列は変更されない。また、8ビット乱数初期設定1(KRS1)のビット「1−0」におけるビット値が”01”であれば、チャネル0の8ビット乱数回路508aが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、8ビット乱数初期設定1(KRS1)のビット「1−0」におけるビット値が”10”であれば、チャネル0の8ビット乱数回路508aが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、8ビット乱数初期設定1(KRS1)のビット「1−0」におけるビット値が”11”であれば、チャネル0の8ビット乱数回路508aが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
次に、図19を用いて、8ビット乱数初期設定2(KRS2)における設定内容を説明する。8ビット乱数初期設定2(KRS2)のビット「7」は、4チャネルの8ビット乱数回路508aのうち、チャネル3の8ビット乱数回路508aの起動方法の設定を示している。図19に示す例において、8ビット乱数初期設定2(KRS2)のビット「7」におけるビット値が”0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル3の8ビット乱数回路508aが起動される。これに対して、8ビット乱数初期設定2(KRS2)のビット「7」におけるビット値が”1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことにもとづいて自動的にチャネル3の8ビット乱数回路508aが起動される。
8ビット乱数初期設定2(KRS2)のビット「6」は、チャネル3の8ビット乱数回路508aの更新クロックの設定を示している。図19に示す例において、8ビット乱数初期設定2(KRS2)のビット「6」におけるビット値が”0”であれば、遊技制御用マイクロコンピュータ560の内部システムクロックを更新クロックとして用いる。これに対して、8ビット乱数初期設定2(KRS2)のビット「6」におけるビット値が”1”であれば、遊技制御用マイクロコンピュータ560の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
8ビット乱数初期設定2(KRS2)のビット「5−4」は、チャネル3の8ビット乱数回路508aが更新する乱数列を変更するか否かの設定を示している。図19に示す例において、8ビット乱数初期設定2(KRS2)のビット「5−4」におけるビット値が”00”であれば、チャネル3の8ビット乱数回路508aが更新する乱数列は変更されない。また、8ビット乱数初期設定2(KRS2)のビット「5−4」におけるビット値が”01”であれば、チャネル3の8ビット乱数回路508aが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、8ビット乱数初期設定2(KRS2)のビット「5−4」におけるビット値が”10”であれば、チャネル3の8ビット乱数回路508aが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、8ビット乱数初期設定2(KRS2)のビット「5−4」におけるビット値が”11”であれば、チャネル3の8ビット乱数回路508aが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
8ビット乱数初期設定2(KRS2)のビット「3」は、4チャネルの8ビット乱数回路508aのうち、チャネル2の8ビット乱数回路508aの起動方法の設定を示している。図19に示す例において、8ビット乱数初期設定2(KRS2)のビット「3」におけるビット値が”0”であれば、ユーザモードに移行した後、ソフトウェア(ユーザプログラム)により乱数の最大値設定が行われたことにより、チャネル2の8ビット乱数回路508aが起動される。これに対して、8ビット乱数初期設定2(KRS2)のビット「3」におけるビット値が”1”であれば、ユーザプログラムによらず、リセット発生時にユーザモードに移行したことにもとづいて自動的にチャネル2の8ビット乱数回路508aが起動される。
8ビット乱数初期設定2(KRS2)のビット「2」は、チャネル2の8ビット乱数回路508aの更新クロックの設定を示している。図19に示す例において、8ビット乱数初期設定2(KRS2)のビット「2」におけるビット値が”0”であれば、遊技制御用マイクロコンピュータ560の内部システムクロックを更新クロックとして用いる。これに対して、8ビット乱数初期設定2(KRS2)のビット「2」におけるビット値が”1”であれば、遊技制御用マイクロコンピュータ560の外部から入力された外部クロック信号を2分周した信号を更新クロックとして用いる。
8ビット乱数初期設定2(KRS2)のビット「1−0」は、チャネル2の8ビット乱数回路508aが更新する乱数列を変更するか否かの設定を示している。図19に示す例において、8ビット乱数初期設定2(KRS2)のビット「1−0」におけるビット値が”00”であれば、チャネル2の8ビット乱数回路508aが更新する乱数列は変更されない。また、8ビット乱数初期設定2(KRS2)のビット「1−0」におけるビット値が”01”であれば、チャネル2の8ビット乱数回路508aが更新する乱数列をソフトウェア(ユーザプログラム)により変更できる。また、8ビット乱数初期設定2(KRS2)のビット「1−0」におけるビット値が”10”であれば、チャネル2の8ビット乱数回路508aが更新する乱数列が2周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。また、8ビット乱数初期設定2(KRS2)のビット「1−0」におけるビット値が”11”であれば、チャネル2の8ビット乱数回路508aが更新する乱数列が1周目から自動的に変更され、以降、乱数列が一巡するごとに自動的に乱数列が変更される。
なお、8ビット乱数回路508aに関しては、16ビット乱数回路508bとは異なり、図17に示したようなスタート値の設定を行う機能はない。
プログラム管理エリアに記憶されるセキュリティ時間設定(KSES)は、セキュリティモードを延長する時間の設定を示す。図20は、セキュリティ時間設定(KSES)における設定内容の一例を示している。
セキュリティ時間設定(KSES)のビット[7−6]は、セキュリティモード時間をランダムに延長する時間の設定を示している。図20に示す例では、セキュリティ時間設定(KSES)のビット[7−6]に”01”が設定された場合には、セキュリティモード時間をランダムに延長するモードとして、ショートモードが設定され、具体的には、内部システムクロックが10.0MHzである場合には0〜0.816msの範囲の時間がランダムに延長され、内部システムクロックが12.0MHzである場合には0〜0.51msの範囲の時間がランダムに延長される。また、セキュリティ時間設定(KSES)のビット[7−6]に”10”が設定された場合には、セキュリティモード時間をランダムに延長するモードとして、ミドルモードが設定され、具体的には、内部システムクロックが10.0MHzである場合には0〜26.112msの範囲の時間がランダムに延長され、内部システムクロックが12.0MHzである場合には0〜16.32msの範囲の時間がランダムに延長される。また、セキュリティ時間設定(KSES)のビット[7−6]に”11”が設定された場合には、セキュリティモード時間をランダムに延長するモードとして、ロングモードが設定され、具体的には、内部システムクロックが10.0MHzである場合には0〜835.584msの範囲の時間がランダムに延長され、内部システムクロックが12.0MHzである場合には0〜522.24msの範囲の時間がランダムに延長される。
なお、セキュリティモード時間のランダム延長を行わないように設定する場合、図20に示すように、セキュリティ時間設定(KSES)のビット[7−6]に”00”を設定するようにすればよい。
セキュリティ時間設定(KSES)のビット[5]は、セキュリティモード時間を固定延長する時間の基準クロック信号の設定を示している。図20に示す例では、セキュリティ時間設定(KSES)のビット[5]に”0”が設定された場合には、基準クロック信号として222×TSCLKが選択される。また、セキュリティ時間設定(KSES)のビット[5]に”1”が設定された場合には、基準クロック信号として224×TSCLKが選択される。
セキュリティ時間設定(KSES)のビット[4−0]は、セキュリティモード時間を固定で延長する時間の設定を示している。具体的には、セキュリティモード時間の固定延長時間は、セキュリティ時間設定(KSES)のビット[5]で選択した基準クロックに、セキュリティ時間設定(KSES)のビット[4−0]で設定した設定値を乗算した値となる。例えば、セキュリティ時間設定(KSES)のビット[4−0]に”00001”を設定(すなわち、値「1」を設定)した場合、セキュリティ時間設定(KSES)のビット[5]に”0”を設定した場合には、固定延長時間は222×TSCLK×1となり、セキュリティ時間設定(KSES)のビット[5]に”1”を設定した場合には、固定延長時間は224×TSCLK×1となる。また、セキュリティ時間設定(KSES)のビット[4−0]に”01000”を設定(すなわち、値「8」を設定)した場合、セキュリティ時間設定(KSES)のビット[5]に”0”を設定した場合には、固定延長時間は222×TSCLK×8となり、セキュリティ時間設定(KSES)のビット[5]に”1”を設定した場合には、固定延長時間は224×TSCLK×8となる。また、セキュリティ時間設定(KSES)のビット[4−0]に”10000”を設定(すなわち、値「16」を設定)した場合、セキュリティ時間設定(KSES)のビット[5]に”0”を設定した場合には、固定延長時間は222×TSCLK×16となり、セキュリティ時間設定(KSES)のビット[5]に”1”を設定した場合には、固定延長時間は224×TSCLK×16となる。また、セキュリティ時間設定(KSES)のビット[4−0]に”11111”を設定(すなわち、値「31」を設定)した場合、セキュリティ時間設定(KSES)のビット[5]に”0”を設定した場合には、固定延長時間は222×TSCLK×31となり、セキュリティ時間設定(KSES)のビット[5]に1”を設定した場合には、固定延長時間は224×TSCLK×31となる。なお、図20には、内部システムクロックが10.0MHzと12.0MHzである場合の固定延長時間の値の具体例もそれぞれ示されている。
なお、セキュリティモード時間の固定延長を行わないように設定する場合、図20に示すように、セキュリティ時間設定(KSES)のビット[4−0]に”00000”を設定するようにすればよい。
図20に示すように、セキュリティモード時間は、セキュリティ時間設定(KSES)のビット[7−6]の設定によるランダム延長と、セキュリティ時間設定(KSES)のビット[5−0]の設定による固定延長との2種類の方法で延長設定が可能である。そして、これら2種類の方法で設定された時間の加算時間が最終的なセキュリティモード時間の延長時間となる。
プログラム管理エリアに記憶される乱数クロック監視設定(KRCS)は、乱数用外部クロック端子(RCK端子)から入力された外部クロック信号の監視周波数の設定を示す。図21は、乱数クロック監視設定(KRCS)における設定内容の一例を示している。
乱数クロック監視設定(KRCS)のビット[7−2]は、固定ビット(すなわち、特に設定に使用しないビット)であり、全ビット必ず”0”を設定するものとする。
乱数クロック監視設定(KRCS)のビット[1−0]は、乱数を更新するためのクロックとして、乱数用外部クロック端子(RCK端子)から入力された外部クロック信号を選択した場合に、その入力クロックの周波数異常の検出対象とする周波数の設定を示している。図21に示す例では、乱数クロック監視設定(KRCS)のビット[1−0]に”00”が設定された場合には、監視周波数としてSCLK(内部システムクロック)の周波数未満を設定する。また、乱数クロック監視設定(KRCS)のビット[1−0]に”01”が設定された場合には、監視周波数としてSCLK(内部システムクロック)/2の周波数未満を設定する。また、乱数クロック監視設定(KRCS)のビット[1−0]に”10”が設定された場合には、監視周波数としてSCLK(内部システムクロック)/22の周波数未満を設定する。また、乱数クロック監視設定(KRCS)のビット[1−0]に”11”が設定された場合には、監視周波数としてSCLK(内部システムクロック)/23の周波数未満を設定する。
なお、乱数用外部クロック端子(RCK端子)から入力された外部クロック信号の監視周波数の異常を検出した場合には、後述する内部情報レジスタ(CIF)のビット3に”1”がセットされる。
なお、この実施の形態では、遊技制御用マイクロコンピュータ560は、8ビット乱数回路508aと16ビット乱数回路508bとのうち、16ビット乱数回路508bの動作異常(外部クロック周波数異常および更新異常)を検出する機能を備えている。具体的には、遊技制御用マイクロコンピュータ560は、乱数更新用クロックとして乱数用外部クロック端子(RCK端子)から入力された外部クロック信号が選択されている場合に、乱数クロック監視設定(KRCS)で設定されている監視周波数にもとづいて、外部クロック信号の周波数が低下したか否かを検出し、外部クロック信号の周波数が低下(外部クロック周波数異常)を検出した場合には、後述する内部情報レジスタ(CIF)のビット3に”1”をセットする。
また、遊技制御用マイクロコンピュータ560は、16ビット乱数回路508bの乱数の更新状態を監視する機能を備え、更新状態に異常を検出すると(例えば、乱数値が同じ値のまま更新されなくなったり、通常は乱数値が1つずつカウントアップされていくのに乱数値のカウント値がいきなり2以上の値増加した状態を検出したりすると)、内部情報レジスタ(CIF)のビット7〜4のうちの対応するビットに”1”をセットする。
なお、この実施の形態では、乱数クロック監視設定(KRCS)を用いて設定を行うことによって、16ビット乱数回路508bの動作異常の検出に関して、監視対象の外部クロック信号の監視周波数を設定する場合を示しているが、外部クロック周波数異常の検出自体を行うか否かを設定可能に構成したり、更新異常の検出自体を行うか否かを設定可能に構成したりしてもよい。この場合、外部クロック周波数異常の検出自体を行うか否かの設定と、更新異常の検出自体を行うか否かの設定とをそれぞれ独立して行えるように構成してもよいし、両方の設定を一括して有効とするか無効とするかのみ行えるように構成してもよい。
なお、外部クロック周波数異常の検出自体を行うか否かや更新異常の検出自体を行うか否かを設定可能とするためには、例えば、乱数回路自体を起動するか否かを設定するようにし、乱数回路を起動しないように設定した場合には、事実上、外部クロック周波数異常の検出や更新異常の検出を行えないので、外部クロック周波数異常の検出や更新異常の検出を行わないように設定したといえる。このように、外部クロック周波数異常の検出自体を行うか否かや更新異常の検出自体を行うか否かの設定は、乱数回路自体を起動するか否かを設定することによって実現することも含む概念である。
また、この実施の形態では、乱数用クロック生成回路112から専用の乱数用クロックRCLKを乱数回路508a,508bに外部入力する場合を示しているが、例えば、制御用クロック生成回路111からの制御用クロックCCLKを外部入力する場合など専用の乱数用クロックRCLK以外のクロックを外部入力する場合であっても、外部クロック周波数異常の検出や更新異常の検出を行うことが可能である。なお、乱数回路の更新異常の検出に関しては、乱数用クロック生成回路112から専用の乱数用クロックRCLK用いて乱数更新する場合と、制御用クロック生成回路111からの制御用クロックCCLKなど他のクロックを用いて乱数更新する場合とのいずれか一方の場合のみ設定可能に構成してもよい。
また、この実施の形態では、外部クロック周波数の異常の検出を行い、遊技制御用マイクロコンピュータ560の内部システムクロックSCLKの周波数については特に異常の検出を行っていないが、それは次のような理由による。すなわち、乱数更新に内部システムクロックSCLKを用いる場合には、内部システムクロックSCLKに異常が発生しているような状況では、CPU56自体の動作が停止している筈であるので、CPU56が動作しているのに乱数の更新だけが停止しているような事態が生じる場合がなく、何らかの問題が生じるおそれがない。これに対して、乱数更新に外部クロック信号を用いる場合には、CPU56が動作しているのに乱数の更新だけが停止しているような事態が生じる可能性があり弊害が生じるおそれがあるためである。
図6に示す遊技制御用マイクロコンピュータ560が備える外部バスインタフェース501は、遊技制御用マイクロコンピュータ560を構成するチップの外部バスと内部バスとのインタフェース機能や、アドレスバス、データバスおよび各制御信号の方向制御機能などを有するバスインタフェースである。例えば、外部バスインタフェース501は、遊技制御用マイクロコンピュータ560に外付けされた外部メモリや外部入出力装置などに接続され、これらの外部装置との間でアドレス信号やデータ信号、各種の制御信号などを送受信するものであればよい。
遊技制御用マイクロコンピュータ560が備えるクロック回路502は、例えば制御用外部クロック端子EXに入力される発振信号を2分周することなどにより、内部システムクロックSCLKを生成する回路である。なお、生成された内部システムクロックは、外部出力端子(CLKO端子)から外部に出力される。
遊技制御用マイクロコンピュータ560が備える照合用ブロック503は、外部の照合機と接続し、チップの照合を行う機能を備える。
遊技制御用マイクロコンピュータ560が備える固有情報記憶回路504は、例えば遊技制御用マイクロコンピュータ560の内部情報となる複数種類の固有情報を記憶する回路である。一例として、固有情報記憶回路504は、ROMコード、チップ個別ナンバー、IDナンバーといった3種類の固有情報を記憶する。ROM54コードは、ROM54の所定領域における記憶データから生成される4バイトの数値であり、生成方法の異なる4つの数値が準備されればよい。チップ個別ナンバーは、遊技制御用マイクロコンピュータ560の製造時に付与される4バイトの番号であり、遊技制御用マイクロコンピュータ560を構成するチップ毎に異なる数値を示している。IDナンバーは、遊技制御用マイクロコンピュータ560の製造時に付与される8バイトの番号であり、遊技制御用マイクロコンピュータ560を構成するチップ毎に異なる数値を示している。ここで、チップ個別ナンバーはユーザプログラムから読み取ることができる一方、IDナンバーはユーザプログラムから読み取ることができないように設定されていればよい。なお、固有情報記憶回路504は、例えばROM54の所定領域を用いることなどにより、ROM54に含まれるようにしてもよい。あるいは、固有情報記憶回路504は、例えばCPU56の内蔵レジスタを用いることなどにより、CPU56に含まれるようにしてもよい。
遊技制御用マイクロコンピュータ560が備える演算回路505は、乗算および除算を行う回路である。
遊技制御用マイクロコンピュータ560が備えるリセット/割込みコントローラ506は、遊技制御用マイクロコンピュータ560の内部や外部にて発生する各種リセット、割込み要求を制御するためのものである。リセット/割込みコントローラ506が制御するリセットには、システムリセットとユーザリセットが含まれている。システムリセットは、外部システムリセット端子XSRSTに一定の期間にわたりローレベル信号が入力されたときに発生するリセットである。なお、この実施の形態では、リセット設定(KRES)の設定により、ウォッチドッグタイマ(WDT)のタイムアウト信号が発生したときや、指定エリア外走行禁止(IAT)が発生したときにも、システムリセットが発生することがある。ユーザリセットは、ウォッチドッグタイマ(WDT)のタイムアウト信号が発生したことや、指定エリア外走行禁止(IAT)が発生したことなど、所定の要因により発生するリセットである。
リセット/割込みコントローラ506が制御する割込みには、ノンマスカブル割込みNMIとマスカブル割込みINTが含まれている。ノンマスカブル割込みNMIは、CPU56の割込み禁止状態でも無条件に受け付けられる割込みであり、外部ノンマスカブル割込み端子XNMI(入力ポートPI6と兼用)に一定の期間にわたりローレベル信号が入力されたときに発生する割込みである。マスカブル割込みINTは、CPU56の設定命令により、割込み要求の受け付けを許可/禁止できる割込みであり、優先順位設定による多重割込みの実行が可能である。マスカブル割込みINTの要因としては、外部マスカブル割込み端子XINT(入力ポートPI5と兼用)に一定の期間にわたりローレベル信号が入力されたこと、タイマ回路509にてタイムアウトが発生したこと、シリアル通信回路512にてデータ受信またはデータ送信による割込み要因が発生したこと、乱数回路508a,508bにて乱数値となる数値データの取込による割込み要因が発生したことなど、複数種類の割込み要因があらかじめ定められていればよい。
リセット/割込みコントローラ506は、図9〜図11に示すような遊技制御用マイクロコンピュータ560が備える内蔵レジスタのうち、内部情報レジスタCIF(アドレスFE25H)などを用いて、割込みの制御やリセットの管理を行う。内部情報レジスタCIFは、直前に発生したリセット要因を管理したり、乱数更新状態、乱数更新クロックを外部クロックとした場合の入力周波数の状態を読み取るためのレジスタである。
図22(A)は、内部情報レジスタCIFの構成例を示している。図22(B)は、内部情報レジスタCIFに格納される内部情報データの各ビットにおける設定内容の一例を示している。内部情報レジスタCIFのビット番号[7]に格納される内部情報データRL3ERは、チャネル3の16ビット乱数回路508bが更新する16ビット乱数RL3の更新状態の異常を示す。図22(B)に示す例では、16ビット乱数RL3の更新異常が検知されないときに、内部情報データRL3ERのビット値が“0”となる一方、16ビット乱数RL3の更新異常が検知されたときには、そのビット値が“1”となる。内部情報レジスタCIFのビット番号[6]に格納される内部情報データRL2ERは、チャネル2の16ビット乱数回路508bが更新する16ビット乱数RL2の更新状態の異常を示す。図22(B)に示す例では、16ビット乱数RL2の更新異常が検知されないときに、内部情報データRL2ERのビット値が“0”となる一方、16ビット乱数RL2の更新異常が検知されたときには、そのビット値が“1”となる。内部情報レジスタCIFのビット番号[5]に格納される内部情報データRL1ERは、チャネル1の16ビット乱数回路508bが更新する16ビット乱数RL1の更新状態の異常を示す。図22(B)に示す例では、16ビット乱数RL1の更新異常が検知されないときに、内部情報データRL1ERのビット値が“0”となる一方、16ビット乱数RL1の更新異常が検知されたときには、そのビット値が“1”となる。内部情報レジスタCIFのビット番号[4]に格納される内部情報データRL0ERは、チャネル0の16ビット乱数回路508bが更新する16ビット乱数RL0の更新状態の異常を示す。図22(B)に示す例では、16ビット乱数RL0の更新異常が検知されないときに、内部情報データRL0ERのビット値が“0”となる一方、16ビット乱数RL0の更新異常が検知されたときには、そのビット値が“1”となる。なお、内部情報レジスタCIFのビット番号[7−4」は、初期値として”0”が設定されている。
内部情報レジスタCIFのビット番号[3]に格納される内部情報データRCERは、乱数更新用クロックとして乱数用外部クロック端子(RCK端子)から入力された外部クロック信号が選択されている場合に、その外部クロック信号の周波数異常を示す。図22(B)に示す例では、外部クロック信号の周波数異常が検知されないときに、内部情報データRCERのビット値が“0”となる一方、外部クロック信号の周波数異常が検知されたときには、そのビット値が“1”となる。なお、内部情報レジスタCIFのビット番号[3」は、初期値として”0”が設定されている。
内部情報レジスタCIFのビット番号[2]に格納される内部情報データSRSFは、直前に発生したリセット要因がシステムリセットであることを示す。図22(B)に示す例では、直前のリセット要因がシステムリセットではないときに(システムリセット未発生)、内部情報データSRSFのビット値が“0”となる一方、システムリセットであるときには(システムリセット発生)、そのビット値が“1”となる。なお、内部情報レジスタCIFのビット番号[2」は、初期値として”1”が設定されている。
内部情報レジスタCIFのビット番号[1]に格納される内部情報データWDTFは、直前に発生したリセット要因がウオッチドッグタイマ(WDT)506bからタイムアウト信号を入力したことによるユーザリセットであることを示す。図22(B)に示す例では、直前のリセット要因がタイムアウト信号によるユーザリセットではないときに(タイムアウト信号によるユーザリセット未発生)、内部情報データWDTFのビット値が“0”となる一方、タイムアウト信号によるユーザリセットであるときには(タイムアウト信号によるユーザリセット発生)、そのビット値が“1”となる。なお、内部情報レジスタCIFのビット番号[1」は、初期値として”0”が設定されている。
内部情報レジスタCIFのビット番号[0]に格納される内部情報データIATFは、直前に発生したリセット要因がIAT回路506aからのIAT発生信号を入力したことによるユーザリセットであることを示す。図22(B)に示す例では、直前のリセット要因がIAT発生信号によるユーザリセットではないときに(IAT発生信号によるユーザリセット未発生)、内部情報データIATFのビット値が“0”となる一方、IAT発生信号によるユーザリセットであるときには(IAT発生信号によるユーザリセット発生)、そのビット値が“1”となる。なお、内部情報レジスタCIFのビット番号[0」は、初期値として”0”が設定されている。
遊技制御用マイクロコンピュータ560が備えるCPU56は、ROM54から読み出した制御コードにもとづいてユーザプログラム(ゲーム制御用の遊技制御処理プログラム)を実行することにより、パチンコ遊技機1における遊技制御を実行する制御用CPUである。こうした遊技制御が実行されるときには、CPU56がROM54から固定データを読み出す固定データ読出動作や、CPU56がRAM55に各種の変動データを書き込んで一時記憶させる変動データ書込動作、CPU56がRAM55に一時記憶されている各種の変動データを読み出す変動データ読出動作、CPU56が外部バスインタフェース501やパラレル入力ポート511、シリアル通信回路512などを介して遊技制御用マイクロコンピュータ560の外部から各種信号の入力を受け付ける受信動作、CPU56が外部バスインタフェース501やシリアル通信回路512、パラレル出力ポート513などを介して遊技制御用マイクロコンピュータ560の外部へと各種信号を出力する送信動作等も行われる。
遊技制御用マイクロコンピュータ560が備えるROM54には、ユーザプログラム(ゲーム制御用の遊技制御処理プログラム)を示す制御コードや固定データ等が記憶されている。
遊技制御用マイクロコンピュータ560が備えるRAM55は、ゲーム制御用のワークエリアを提供する。ここで、RAM55の少なくとも一部は、電源基板910において作成されるバックアップ電源によってバックアップされているバックアップRAMであればよい。すなわち、パチンコ遊技機1への電力供給が停止しても、所定期間はRAM55の少なくとも一部の内容が保存される。
また、遊技制御用マイクロコンピュータ560は、フリーランカウンタ回路507として、8ビットのフリーランカウンタを4チャネル搭載している。
遊技制御用マイクロコンピュータ560が備える乱数回路508a,508bは、8ビット乱数や16ビット乱数といった、所定の更新範囲を有する乱数値となる数値データを生成する回路である。この実施の形態では、乱数回路508a,508bのうち16ビット乱数回路508bが生成するハードウェア乱数は、大当りとするか否かを判定するための大当り判定用乱数(ランダムR)として用いられる。なお、CPU56は、乱数回路508a,508bから抽出した数値データにもとづき、乱数回路508a,508bとは異なるランダムカウンタを用いて、ソフトウェアによって各種の数値データを加工あるいは更新することで、遊技に用いられる乱数値の全部または一部を示す数値データをカウントするようにしてもよい。あるいは、CPU56は、乱数回路508a,508bを用いることなく、ソフトウェアによって大当り判定用乱数などの乱数値を示す数値データの一部をカウント(更新)するようにしてもよい。一例として、ハードウェアとなる乱数回路508a,508bからCPU56により抽出された数値データを、ソフトウェアにより加工することで、大当り判定用乱数(ランダムR)を示す数値データが更新され、それ以外の乱数値(例えば、大当り種別判定用乱数や、変動パターン種別決定用乱数、変動パターン決定用乱数)を示す数値データは、CPU56がランダムカウンタなどを用いてソフトウェアにより更新すればよい。
図23は、8ビット乱数回路508aの一構成例を示すブロック図である。また、図24は、16ビット乱数回路508bの一構成例を示すブロック図である。8ビット乱数回路508aおよび16ビット乱数回路508bは、図23および図24に示すように、乱数列変更選択回路523a,523b、乱数生成回路525a,525b、乱数列変更回路526a,526b、および最大値比較回路527a,527bを備えて構成される。また、16ビット乱数回路508bは、図24に示すように、8ビット乱数回路508aが備える構成要素に加えて、乱数スタート値選択回路535を備える。さらに、16ビット乱数回路508bは、図24に示すように、8ビット乱数回路508aが備える構成要素に加えて、乱数生成回路525bが更新監視回路537を含む。
また、図24に示す例では、16ビット乱数回路508bの回路部分の構成のみを示し、乱数列変更レジスタ522および最大値設定レジスタ524b以外の16ビット乱数回路508bが用いる各レジスタについては記載を省略している。なお、具体的には、16ビット乱数回路508bは、図23に示すRSハードラッチ選択レジスタ528a,528bに代えて図9に示すRL0ハードラッチ選択レジスタ0(RL0LS0)〜RL3ハードラッチ選択レジスタ(RL3LS)を用い、図23に示すRS0ハードラッチ乱数値レジスタ529a〜RS3ハードラッチ乱数値レジスタ529dに代えて図10および図11に示すRL0ハードラッチ乱数値レジスタ0(RL0HV0)〜RL3ハードラッチ乱数値レジスタ1(RL3HV1)を用い、図23に示すRSハードラッチフラグレジスタ530に代えて図10に示すRLハードラッチフラグレジスタ0(RLHF0)〜RLハードラッチフラグレジスタ1(RLHF1)を用い、図23に示すRS割り込み制御レジスタ531に代えて図9に示すRL割り込み制御レジスタ0(RLIC0)〜RL割り込み制御レジスタ1(RLIC1)を用い、図23に示すRS0ソフトラッチ乱数値レジスタ533a〜RS3ソフトラッチ乱数値レジスタ533dに代えて図10に示すRL0ソフトラッチ乱数値レジスタ(RL0SV)〜RL3ソフトラッチ乱数値レジスタ(RL3SV)を用いる。また、16ビット乱数回路508bは、乱数値ソフトラッチレジスタ532および乱数ソフトラッチフラグレジスタ534については、8ビット乱数回路508aと兼用で同じレジスタを用いる。
また、8ビット乱数回路508aは、既に説明したプログラム管理エリアに設けられた8ビット乱数初期設定521a(図8に示す8ビット乱数初期設定1(KRS1)および8ビット乱数初期設定2(KRS2))の設定内容に従って動作する。
また、16ビット乱数回路508bは、既に説明したプログラム管理エリアに設けられた16ビット乱数初期設定521b(図8に示す16ビット乱数初期設定1(KRL1)〜16ビット乱数初期設定2(KRL2))の設定内容に従って動作する。また、16ビット乱数回路508bは、8ビット乱数回路508aの機能に加えて、乱数スタート値選択回路535が16ビット乱数初期設定536(図8に示す16ビット乱数初期設定3(KRL3))の設定内容に従って動作することにより、1周目の乱数値のスタート値を変更する機能を備えている(図17参照)。
また、16ビット乱数回路508bは、乱数生成回路525bが更新監視回路537を含んでおり、8ビット乱数回路508aの機能に加えて、更新監視回路537が動作することにより外部クロック周波数異常および更新異常を検出する機能を備えている(図21参照)。なお、この実施の形態では、1つの更新監視回路537により外部クロック周波数異常および更新異常の両方を検出する場合を示しているが、外部クロック周波数異常を検出する監視回路と更新異常を検出する監視回路とを別々に備えてもよい。
なお、8ビット乱数回路508aも更新監視回路を備えるように構成し、8ビット乱数回路508aの外部クロック周波数異常および更新異常を検出可能に構成するようにしてもよい。
また、乱数列変更レジスタ522は、図9に示すような遊技制御用マイクロコンピュータ560の内蔵レジスタに含まれる乱数列変更レジスタRDSCに対応している。なお、乱数列変更レジスタRDSCとして、8ビット乱数回路508aおよび16ビット乱数回路508bの各チャネルで共通のレジスタが用いられる。
また、最大値設定レジスタ524a,524bは、図9に示すような遊技制御用マイクロコンピュータ560の内蔵レジスタに含まれるRS0最大値設定レジスタ(RS0MX)〜RS3最大値設定レジスタ(RS3MX)に対応している(16ビット乱数回路508bの場合は、RL0最大値設定レジスタ(RL0MX)〜RL3最大値設定レジスタ(RL3MX)に対応している)。
また、ハードラッチ選択レジスタ528aは、図9に示すような遊技制御用マイクロコンピュータ560の内蔵レジスタに含まれるRSハードラッチ選択レジスタ0(RSLS0)に対応している。また、ハードラッチ選択レジスタ528bは、図9に示すような遊技制御用マイクロコンピュータ560の内蔵レジスタに含まれるRSハードラッチ選択レジスタ1(RSLS1)に対応している。なお、16ビット乱数回路508bの場合は、図9に示すRL0ハードラッチ選択レジスタ0(RL0LS0)〜RL3ハードラッチ選択レジスタ3(RL3LS)に対応している。
また、RS0ハードラッチ乱数値レジスタ529a〜RS3ハードラッチ乱数値レジスタ529dは、図11に示すような遊技制御用マイクロコンピュータ560の内蔵レジスタに含まれるRS0ハードラッチ乱数値レジスタ(RS0HV)〜RS3ハードラッチ乱数値レジスタ(RS3HV)に対応している。なお、16ビット乱数回路508bの場合は、図10に示すRL0ハードラッチ乱数値レジスタ0(RL0HV0)〜RL1ハードラッチ乱数値レジスタ1(RL1HV1)および図11に示すRL2ハードラッチ乱数値レジスタ0(RL2HV0)〜RL3ハードラッチ乱数値レジスタ1(RL3HV1)に対応している。
また、RSハードラッチフラグレジスタ530は、図10に示すRSハードラッチフラグレジスタ(RSHF)に対応している。なお、16ビット乱数回路508bの場合は、図10に示すRLハードラッチフラグレジスタ0(RLHF0)〜RLハードラッチフラグレジスタ1(RLHF1)に対応している。
また、RS割り込み制御レジスタ531は、図9に示すRS割り込み制御レジスタ(RSIC)に対応している。なお、16ビット乱数回路508bの場合は、図9に示すRL割り込み制御レジスタ0(RLIC0)〜RL割り込み制御レジスタ1(RLIC1)に対応している。
また、乱数ソフトラッチレジスタ532は、図9に示す乱数ソフトラッチレジスタ(RDSL)に対応している。なお、ソフトラッチレジスタRDSLとして、8ビット乱数回路508aおよび16ビット乱数回路508bの各チャネルで共通のレジスタが用いられる。
また、RS0ソフトラッチ乱数値レジスタ533a〜RS3ソフトラッチ乱数値レジスタ533dは、は、図10に示すRS0ソフトラッチ乱数値レジスタ(RS0SV)〜RS3ソフトラッチ乱数値レジスタ(RS3SV)に対応している。なお、16ビット乱数回路508bの場合は、図10に示すRL0ソフトラッチ乱数値(RL0SV)〜RL3ソフトラッチ乱数値(RL3SV)に対応している。
また、乱数ソフトラッチフラグレジスタ534は、図9に示す乱数ソフトラッチフラグレジスタ(RDSF)に対応している。なお、乱数ソフトラッチフラグレジスタRDSFとして、8ビット乱数回路508aおよび16ビット乱数回路508bの各チャネルで共通のレジスタが用いられる。
乱数列変更選択回路523a,523bは、図18や図19に示す8ビット乱数初期設定1(KRS1)や8ビット乱数初期設定2(KRS2)の設定内容に従って(16ビット乱数回路508bの場合には、図15や図16に示す16ビット乱数初期設定1(KRL1)や16ビット乱数初期設定2(KRL2)の設定内容に従って)、乱数列の変更方法として、「変更しない」、「ソフトウェアで変更」、「2周目から自動で変更」または「1周目から自動で変更」のうちのいずれかを選択する。そして、「ソフトウェアで変更」、「2周目から自動で変更」または「1周目から自動で変更」のいずれかに選択した場合には、その選択方法に従って乱数列変更回路526a,526bに乱数列を変更させる。また、「変更しない」を選択した場合には乱数列を変更させる制御を行わない。
乱数列変更回路526a,526bは、乱数生成回路525a,525bにより生成された数値データの順列を、乱数列変更選択回路523a,523bの指示に従って変更可能とする回路である。例えば、乱数列変更回路526a,526bは、「ソフトウェアで変更」が指示された場合には、乱数生成回路525a,525bが更新する乱数列をソフトウェア(ユーザプログラム)により変更する。また、例えば、乱数列変更回路526a,526bは、「2周目から自動で変更」が指示された場合には、乱数生成回路525a,525bが更新する乱数列を2周目から自動的に変更し、以降、乱数列が一巡するごとに自動的に乱数列を変更する。また、例えば、乱数列変更回路526a,526bは、「1周目から自動で変更」が指示された場合には、乱数生成回路525a,525bが更新する乱数列を1周目から自動的に変更し、以降、乱数列が一巡するごとに自動的に乱数列を変更する。
乱数生成回路525a,525bは、例えば8ビットのカウンタ(16ビット乱数回路508bの場合は16ビットのカウンタ)などから構成され、乱数更新クロック信号などの入力にもとづき、数値データを更新可能な所定の範囲において所定の初期値から所定の最終値まで循環的に更新する回路である。例えば乱数生成回路525a,525bは、乱数更新クロック信号における立ち下がりエッジに応答して、「0」から「255」までの範囲内で設定された初期値から「255」まで1ずつ加算するように数値データをカウントアップして行く(16ビット乱数回路508bの場合には、「0」から「65535」までの範囲内で設定された初期値から「65535」まで1ずつ加算するように数値データをカウントアップして行く)。そして、「255」までカウントアップした後には、「0」から初期値よりも1小さい最終値となる数値まで1ずつ加算するようにカウントアップすることで、数値データを循環的に更新する。
最大値比較回路527a,527bは、図18や図19に示す8ビット乱数初期設定1(KRS1)や8ビット乱数初期設定2(KRS2)の設定内容に従って(16ビット乱数回路508bの場合には、図15や図16に示す16ビット乱数初期設定1(KRL1)や16ビット乱数初期設定2(KRL2)の設定内容に従って)、乱数生成回路525a,525bが生成する乱数値の最大値を設定する。
図25(A)は、RL0ハードラッチ選択レジスタ0(RL0LS0)の構成例を示している。図25(B)は、RL0ハードラッチ選択レジスタ0(RL0LS0)に格納されるデータの各ビットにおける設定内容の一例を示している。RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[7]に格納されるデータRL01RFは、RL0ハードラッチ乱数値レジスタ1(RL0HV1)に、外部端子入力により、16ビット乱数RL0の値を取り込む際の条件の設定を示している。図25(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRL01RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。なお、データRL01RFは、初期値として”0”が設定されている。
なお、この実施の形態では、プログラム管理エリアや内蔵レジスタのレジスタに関して、具体的には、プログラム管理エリアなどの対応するビットを”0”または”1”のいずれかの値としておくことにより、その対応するビットの値が読み込まれて、読み込まれた”0”または”1”の値が遊技制御用マイクロコンピュータ560の制御レジスタにハードウェア的に書き込まれることにより各種の設定が行われる。例えば、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット7については、そのビット7から読み込まれた値が”0”であれば、遊技制御用マイクロコンピュータ560の制御レジスタにハードウェア的に”0”が書き込まれることによりRL0ハードラッチ乱数値レジスタ1(RL0HV1)から値を読み込まないと次の値をラッチしないように設定され、そのビット7から読み込まれた値が”1”であれば、遊技制御用マイクロコンピュータ560の制御レジスタにハードウェア的に”1”が書き込まれることによりRL0ハードラッチ乱数値レジスタ1(RL0HV1)から値を読み込まなくても次の値をラッチするように設定される。このことは、他のプログラム管理エリアの各設定項目や内蔵レジスタの各レジスタの各ビットに関しても同様である。
RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[6−4]に格納されるデータRL01LS0〜RL01LS2は、RL0ハードラッチ乱数値レジスタ1(RL0HV1)に、どの外部端子入力により、16ビット乱数RL0の値を取り込むかの設定を示している。図25(B)に示す例では、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[6−4]に”000”が設定された場合にはPI0端子が選択され、”001”が設定された場合にはPI1端子が選択され、”010”が設定された場合にはPI2端子が選択され、”011”が設定された場合にはPI3端子が選択され、”100”が設定された場合にはPI4端子が選択され、”101”が設定された場合にはPI5/XINT端子が選択される。なお、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[6−4]に”110”や”111”が設定された場合には、その設定は無効である。また、データRL01LS0〜RL01LS2は、初期値として”000”が設定されている。
RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[3]に格納されるデータRL00RFは、RL0ハードラッチ乱数値レジスタ0(RL0HV0)に、外部端子入力により、16ビット乱数RL0の値を取り込む際の条件の設定を示している。図25(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRL00RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。なお、データRL00RFは、初期値として”0”が設定されている。
RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[2−0]に格納されるデータRL00LS0〜RL00LS2は、RL0ハードラッチ乱数値レジスタ0(RL0HV0)に、どの外部端子入力により、16ビット乱数RL0の値を取り込むかの設定を示している。図25(B)に示す例では、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[2−0]に”000”が設定された場合にはPI0端子が選択され、”001”が設定された場合にはPI1端子が選択され、”010”が設定された場合にはPI2端子が選択され、”011”が設定された場合にはPI3端子が選択され、”100”が設定された場合にはPI4端子が選択され、”101”が設定された場合にはPI5/XINT端子が選択される。なお、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット番号[2−0]に”110”や”111”が設定された場合には、その設定は無効である。また、データRL00LS0〜RL00LS2は、初期値として”000”が設定されている。
図26(A)は、RL0ハードラッチ選択レジスタ1(RL0LS1)の構成例を示している。図26(B)は、RL0ハードラッチ選択レジスタ1(RL0LS1)に格納されるデータの各ビットにおける設定内容の一例を示している。RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[7]に格納されるデータRL03RFは、RL0ハードラッチ乱数値レジスタ3(RL0HV3)に、外部端子入力により、16ビット乱数RL0の値を取り込む際の条件の設定を示している。図26(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRL03RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。なお、データRL03RFは、初期値として”0”が設定されている。
RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[6−4]に格納されるデータRL03LS0〜RL03LS2は、RL0ハードラッチ乱数値レジスタ3(RL0HV3)に、どの外部端子入力により、16ビット乱数RL0の値を取り込むかの設定を示している。図26(B)に示す例では、RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[6−4]に”000”が設定された場合にはPI0端子が選択され、”001”が設定された場合にはPI1端子が選択され、”010”が設定された場合にはPI2端子が選択され、”011”が設定された場合にはPI3端子が選択され、”100”が設定された場合にはPI4端子が選択され、”101”が設定された場合にはPI5/XINT端子が選択される。なお、RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[6−4]に”110”や”111”が設定された場合には、その設定は無効である。また、データRL03LS0〜RL03LS2は、初期値として”000”が設定されている。
RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[3]に格納されるデータRL02RFは、RL0ハードラッチ乱数値レジスタ2(RL0HV2)に、外部端子入力により、16ビット乱数RL0の値を取り込む際の条件の設定を示している。図26(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRL02RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。なお、データRL02RFは、初期値として”0”が設定されている。
RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[2−0]に格納されるデータRL02LS0〜RL02LS2は、RL0ハードラッチ乱数値レジスタ2(RL0HV2)に、どの外部端子入力により、16ビット乱数RL0の値を取り込むかの設定を示している。図26(B)に示す例では、RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[2−0]に”000”が設定された場合にはPI0端子が選択され、”001”が設定された場合にはPI1端子が選択され、”010”が設定された場合にはPI2端子が選択され、”011”が設定された場合にはPI3端子が選択され、”100”が設定された場合にはPI4端子が選択され、”101”が設定された場合にはPI5/XINT端子が選択される。なお、RL0ハードラッチ選択レジスタ1(RL0LS1)のビット番号[2−0]に”110”や”111”が設定された場合には、その設定は無効である。また、データRL02LS0〜RL02LS2は、初期値として”000”が設定されている。
図27(A)は、RLnハードラッチ選択レジスタ(RLnLS)の構成例を示している。図27(B)は、RLnハードラッチ選択レジスタ(RLnLS)に格納されるデータの各ビットにおける設定内容の一例を示している。なお、図27において、nは0〜3の値をとる。RLnハードラッチ選択レジスタ(RLnLS)のビット番号[7]に格納されるデータRLn1RFは、RLnハードラッチ乱数値レジスタ1(RLnHV1)に、外部端子入力により、16ビット乱数RLnの値を取り込む際の条件の設定を示している。図27(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRLn1RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。なお、データRLn1RFは、初期値として”0”が設定されている。
RLnハードラッチ選択レジスタ(RLnLS)のビット番号[6−4]に格納されるデータRLn1LS0〜RLn1LS2は、RLnハードラッチ乱数値レジスタ1(RLnHV1)に、どの外部端子入力により、16ビット乱数RLnの値を取り込むかの設定を示している。図27(B)に示す例では、RLnハードラッチ選択レジスタ(RLnLS)のビット番号[6−4]に”000”が設定された場合にはPI0端子が選択され、”001”が設定された場合にはPI1端子が選択され、”010”が設定された場合にはPI2端子が選択され、”011”が設定された場合にはPI3端子が選択され、”100”が設定された場合にはPI4端子が選択され、”101”が設定された場合にはPI5/XINT端子が選択される。なお、RLnハードラッチ選択レジスタ(RLnLS)のビット番号[6−4]に”110”や”111”が設定された場合には、その設定は無効である。また、データRLn1LS0〜RLn1LS2は、初期値として”000”が設定されている。
RLnハードラッチ選択レジスタ(RLnLS)のビット番号[3]に格納されるデータRLn0RFは、RLnハードラッチ乱数値レジスタ0(RLnHV0)に、外部端子入力により、16ビット乱数RLnの値を取り込む際の条件の設定を示している。図27(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRLn0RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。なお、データRLn0RFは、初期値として”0”が設定されている。
RLnハードラッチ選択レジスタ(RLnLS)のビット番号[2−0]に格納されるデータRLn0LS0〜RLn0LS2は、RLnハードラッチ乱数値レジスタ0(RLnHV0)に、どの外部端子入力により、16ビット乱数RLnの値を取り込むかの設定を示している。図27(B)に示す例では、RLnハードラッチ選択レジスタ(RLnLS)のビット番号[2−0]に”000”が設定された場合にはPI0端子が選択され、”001”が設定された場合にはPI1端子が選択され、”010”が設定された場合にはPI2端子が選択され、”011”が設定された場合にはPI3端子が選択され、”100”が設定された場合にはPI4端子が選択され、”101”が設定された場合にはPI5/XINT端子が選択される。なお、RLnハードラッチ選択レジスタ(RLnLS)のビット番号[2−0]に”110”や”111”が設定された場合には、その設定は無効である。また、データRLn0LS0〜RLn0LS2は、初期値として”000”が設定されている。
図28(A)は、RSハードラッチ選択レジスタ0(RSLS0)の構成例を示している。図28(B)は、RSハードラッチ選択レジスタ0(RSLS0)に格納されるデータの各ビットにおける設定内容の一例を示している。RSハードラッチ選択レジスタ0(RSLS0)のビット番号[7]に格納されるデータRS1RFは、RS1ハードラッチ乱数値レジスタ(RS1HV)に、外部端子入力により、8ビット乱数RS1の値を取り込む際の条件の設定を示している。図28(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRS1RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。なお、データRS1RFは、初期値として”0”が設定されている。
RSハードラッチ選択レジスタ0(RSLS0)のビット番号[6−4]に格納されるデータRS1LS0〜RS1LS2は、RS1ハードラッチ乱数値レジスタ(RS1HV)に、どの外部端子入力により、8ビット乱数RS1の値を取り込むかの設定を示している。図28(B)に示す例では、RSハードラッチ選択レジスタ0(RSLS0)のビット番号[6−4]に”000”が設定された場合にはPI0端子が選択され、”001”が設定された場合にはPI1端子が選択され、”010”が設定された場合にはPI2端子が選択され、”011”が設定された場合にはPI3端子が選択され、”100”が設定された場合にはPI4端子が選択され、”101”が設定された場合にはPI5/XINT端子が選択される。なお、RSハードラッチ選択レジスタ0(RSLS0)のビット番号[6−4]に”110”や”111”が設定された場合には、その設定は無効である。また、データRS1LS0〜RS1LS2は、初期値として”000”が設定されている。
RSハードラッチ選択レジスタ0(RSLS0)のビット番号[3]に格納されるデータRS0RFは、RS0ハードラッチ乱数値レジスタ(RS0HV)に、外部端子入力により、8ビット乱数RS0の値を取り込む際の条件の設定を示している。図28(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRS0RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。なお、データRS0RFは、初期値として”0”が設定されている。
RSハードラッチ選択レジスタ0(RSLS0)のビット番号[2−0]に格納されるデータRS0LS0〜RS0LS2は、RS0ハードラッチ乱数値レジスタ(RS0HV)に、どの外部端子入力により、8ビット乱数RS0の値を取り込むかの設定を示している。図28(B)に示す例では、RSハードラッチ選択レジスタ0(RSLS0)のビット番号[2−0]に”000”が設定された場合にはPI0端子が選択され、”001”が設定された場合にはPI1端子が選択され、”010”が設定された場合にはPI2端子が選択され、”011”が設定された場合にはPI3端子が選択され、”100”が設定された場合にはPI4端子が選択され、”101”が設定された場合にはPI5/XINT端子が選択される。なお、RSハードラッチ選択レジスタ0(RSLS0)のビット番号[2−0]に”110”や”111”が設定された場合には、その設定は無効である。また、データRS0LS0〜RS0LS2は、初期値として”000”が設定されている。
図29(A)は、RSハードラッチ選択レジスタ1(RSLS1)の構成例を示している。図29(B)は、RSハードラッチ選択レジスタ1(RSLS1)に格納されるデータの各ビットにおける設定内容の一例を示している。RSハードラッチ選択レジスタ1(RSLS1)のビット番号[7]に格納されるデータRS3RFは、RS3ハードラッチ乱数値レジスタ(RS3HV)に、外部端子入力により、8ビット乱数RS3の値を取り込む際の条件の設定を示している。図29(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRS3RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。なお、データRS3RFは、初期値として”0”が設定されている。
RSハードラッチ選択レジスタ1(RSLS1)のビット番号[6−4]に格納されるデータRS3LS0〜RS3LS2は、RS3ハードラッチ乱数値レジスタ(RS3HV)に、どの外部端子入力により、8ビット乱数RS3の値を取り込むかの設定を示している。図29(B)に示す例では、RSハードラッチ選択レジスタ1(RSLS1)のビット番号[6−4]に”000”が設定された場合にはPI0端子が選択され、”001”が設定された場合にはPI1端子が選択され、”010”が設定された場合にはPI2端子が選択され、”011”が設定された場合にはPI3端子が選択され、”100”が設定された場合にはPI4端子が選択され、”101”が設定された場合にはPI5/XNT端子が選択される。なお、RSハードラッチ選択レジスタ0(RSLS1)のビット番号[6−4]に”110”や”111”が設定された場合には、その設定は無効である。また、データRS3LS0〜RS3LS2は、初期値として”000”が設定されている。
RSハードラッチ選択レジスタ1(RSLS1)のビット番号[3]に格納されるデータRS2RFは、RS2ハードラッチ乱数値レジスタ(RS2HV)に、外部端子入力により、8ビット乱数RS2の値を取り込む際の条件の設定を示している。図29(B)に示す例では、値を読み込まないと次の値をラッチしないように設定した場合には、データRS2RFのビット値が“0”となる一方、値を読み込まなくても次の値をラッチするように設定した場合には、そのビット値が“1”となる。なお、データRS2RFは、初期値として”0”が設定されている。
RSハードラッチ選択レジスタ1(RSLS1)のビット番号[2−0]に格納されるデータRS2LS0〜RS2LS2は、RS2ハードラッチ乱数値レジスタ(RS2HV)に、どの外部端子入力により、8ビット乱数RS2の値を取り込むかの設定を示している。図29(B)に示す例では、RSハードラッチ選択レジスタ1(RSLS1)のビット番号[2−0]に”000”が設定された場合にはPI0端子が選択され、”001”が設定された場合にはPI1端子が選択され、”010”が設定された場合にはPI2端子が選択され、”011”が設定された場合にはPI3端子が選択され、”100”が設定された場合にはPI4端子が選択され、”101”が設定された場合にはPI5/XINT端子が選択される。なお、RSハードラッチ選択レジスタ1(RSLS1)のビット番号[2−0]に”110”や”111”が設定された場合には、その設定は無効である。また、データRS2LS0〜RS2LS2は、初期値として”000”が設定されている。
図30(A)は、RL割り込み制御レジスタ0(RLIC0)の構成例を示している。図30(B)は、RL割り込み制御レジスタ0(RLIC0)に格納されるデータの各ビットにおける設定内容の一例を示している。なお、RL割り込み制御レジスタ0(RLIC0)のビット[7−6]のビット値は必ず”0”とされる。
RL割り込み制御レジスタ0(RLIC0)のビット番号[5]に格納されるデータRL11IEは、RL1ハードラッチ乱数値レジスタ1(RL1HV1)に、乱数値が取り込まれたことを要因とする割り込みの禁止/許可の設定を示している。図30(B)に示す例では、割り込み禁止に設定した場合には、データRL11IEのビット値が“0”となる一方、割り込み許可に設定した場合には、そのビット値が“1”となる。なお、データRL11IEは、初期値として”0”が設定されている。
RL割り込み制御レジスタ0(RLIC0)のビット番号[4]に格納されるデータRL10IEは、RL1ハードラッチ乱数値レジスタ0(RL1HV0)に、乱数値が取り込まれたことを要因とする割り込みの禁止/許可の設定を示している。図30(B)に示す例では、割り込み禁止に設定した場合には、データRL10IEのビット値が“0”となる一方、割り込み許可に設定した場合には、そのビット値が“1”となる。なお、データRL10IEは、初期値として”0”が設定されている。
RL割り込み制御レジスタ0(RLIC0)のビット番号[3]に格納されるデータRL03IEは、RL0ハードラッチ乱数値レジスタ3(RL0HV3)に、乱数値が取り込まれたことを要因とする割り込みの禁止/許可の設定を示している。図30(B)に示す例では、割り込み禁止に設定した場合には、データRL03IEのビット値が“0”となる一方、割り込み許可に設定した場合には、そのビット値が“1”となる。なお、データRL03IEは、初期値として”0”が設定されている。
RL割り込み制御レジスタ0(RLIC0)のビット番号[2]に格納されるデータRL02IEは、RL0ハードラッチ乱数値レジスタ2(RL0HV2)に、乱数値が取り込まれたことを要因とする割り込みの禁止/許可の設定を示している。図30(B)に示す例では、割り込み禁止に設定した場合には、データRL02IEのビット値が“0”となる一方、割り込み許可に設定した場合には、そのビット値が“1”となる。なお、データRL02IEは、初期値として”0”が設定されている。
RL割り込み制御レジスタ0(RLIC0)のビット番号[1]に格納されるデータRL01IEは、RL0ハードラッチ乱数値レジスタ1(RL0HV1)に、乱数値が取り込まれたことを要因とする割り込みの禁止/許可の設定を示している。図30(B)に示す例では、割り込み禁止に設定した場合には、データRL01IEのビット値が“0”となる一方、割り込み許可に設定した場合には、そのビット値が“1”となる。なお、データRL01IEは、初期値として”0”が設定されている。
RL割り込み制御レジスタ0(RLIC0)のビット番号[1]に格納されるデータRL00IEは、RL0ハードラッチ乱数値レジスタ0(RL0HV0)に、乱数値が取り込まれたことを要因とする割り込みの禁止/許可の設定を示している。図30(B)に示す例では、割り込み禁止に設定した場合には、データRL00IEのビット値が“0”となる一方、割り込み許可に設定した場合には、そのビット値が“1”となる。なお、データRL00IEは、初期値として”0”が設定されている。
図31(A)は、RL割り込み制御レジスタ1(RLIC1)の構成例を示している。図31(B)は、RL割り込み制御レジスタ1(RLIC1)に格納されるデータの各ビットにおける設定内容の一例を示している。なお、RL割り込み制御レジスタ1(RLIC1)のビット[7−6]およびビット[3−2]のビット値は必ず”0”とされる。
RL割り込み制御レジスタ1(RLIC1)のビット番号[5]に格納されるデータRL31IEは、RL3ハードラッチ乱数値レジスタ1(RL3HV1)に、乱数値が取り込まれたことを要因とする割り込みの禁止/許可の設定を示している。図31(B)に示す例では、割り込み禁止に設定した場合には、データRL31IEのビット値が“0”となる一方、割り込み許可に設定した場合には、そのビット値が“1”となる。なお、データRL31IEは、初期値として”0”が設定されている。
RL割り込み制御レジスタ1(RLIC1)のビット番号[4]に格納されるデータRL30IEは、RL3ハードラッチ乱数値レジスタ0(RL3HV0)に、乱数値が取り込まれたことを要因とする割り込みの禁止/許可の設定を示している。図31(B)に示す例では、割り込み禁止に設定した場合には、データRL30IEのビット値が“0”となる一方、割り込み許可に設定した場合には、そのビット値が“1”となる。なお、データRL30IEは、初期値として”0”が設定されている。
RL割り込み制御レジスタ1(RLIC1)のビット番号[1]に格納されるデータRL21IEは、RL2ハードラッチ乱数値レジスタ1(RL2HV1)に、乱数値が取り込まれたことを要因とする割り込みの禁止/許可の設定を示している。図31(B)に示す例では、割り込み禁止に設定した場合には、データRL21IEのビット値が“0”となる一方、割り込み許可に設定した場合には、そのビット値が“1”となる。なお、データRL21IEは、初期値として”0”が設定されている。
RL割り込み制御レジスタ1(RLIC1)のビット番号[0]に格納されるデータRL20IEは、RL2ハードラッチ乱数値レジスタ0(RL2HV0)に、乱数値が取り込まれたことを要因とする割り込みの禁止/許可の設定を示している。図31(B)に示す例では、割り込み禁止に設定した場合には、データRL20IEのビット値が“0”となる一方、割り込み許可に設定した場合には、そのビット値が“1”となる。なお、データRL20IEは、初期値として”0”が設定されている。
図32(A)は、RS割り込み制御レジスタ(RSIC)の構成例を示している。図32(B)は、RS割り込み制御レジスタ(RSIC)に格納されるデータの各ビットにおける設定内容の一例を示している。なお、RS割り込み制御レジスタ(RSIC)は、8ビット乱数回路508aとフリーランカウンタ回路507とで兼用で用いられるレジスであり、RS割り込み制御レジスタ(RSIC)のビット[7−4]は、フリーランカウンタ507が用いるハードラッチレジスタ(FRC0ハードラッチレジスタ(FR0HV)〜FRC3ハードラッチレジスタ(FR3HV))に関する設定を示している。
RS割り込み制御レジスタ(RSIC)のビット番号[3]に格納されるデータRS3IEは、RS3ハードラッチ乱数値レジスタ(RS3HV)に、乱数値が取り込まれたことを要因とする割り込みの禁止/許可の設定を示している。図32(B)に示す例では、割り込み禁止に設定した場合には、データRS3IEのビット値が“0”となる一方、割り込み許可に設定した場合には、そのビット値が“1”となる。なお、データRS3IEは、初期値として”0”が設定されている。
RS割り込み制御レジスタ(RSIC)のビット番号[2]に格納されるデータRS2IEは、RS2ハードラッチ乱数値レジスタ(RS2HV)に、乱数値が取り込まれたことを要因とする割り込みの禁止/許可の設定を示している。図32(B)に示す例では、割り込み禁止に設定した場合には、データRS2IEのビット値が“0”となる一方、割り込み許可に設定した場合には、そのビット値が“1”となる。なお、データRS2IEは、初期値として”0”が設定されている。
RS割り込み制御レジスタ(RSIC)のビット番号[1]に格納されるデータRS1IEは、RS1ハードラッチ乱数値レジスタ(RS1HV)に、乱数値が取り込まれたことを要因とする割り込みの禁止/許可の設定を示している。図32(B)に示す例では、割り込み禁止に設定した場合には、データRS1IEのビット値が“0”となる一方、割り込み許可に設定した場合には、そのビット値が“1”となる。なお、データRS1IEは、初期値として”0”が設定されている。
RS割り込み制御レジスタ(RSIC)のビット番号[0]に格納されるデータRS0IEは、RS0ハードラッチ乱数値レジスタ(RS0HV)に、乱数値が取り込まれたことを要因とする割り込みの禁止/許可の設定を示している。図32(B)に示す例では、割り込み禁止に設定した場合には、データRS0IEのビット値が“0”となる一方、割り込み許可に設定した場合には、そのビット値が“1”となる。なお、データRS0IEは、初期値として”0”が設定されている。
図33(A)は、RLn最大値設定レジスタ(RLnMX)の構成例を示している。図33(B)は、RLn最大値設定レジスタ(RLnMX)に格納されるデータの各ビットにおける設定内容の一例を示している。なお、図33において、nは0〜3の値をとる。図33(B)に示すように、RLn最大値設定レジスタ(RLnMX)のビット番号[15−0]に格納されるデータRLnMX15〜RLnMX0は、16ビット乱数RLnの最大値が設定される。
図34(A)は、RSn最大値設定レジスタ(RSnMX)の構成例を示している。図34(B)は、RSn最大値設定レジスタ(RSnMX)に格納されるデータの各ビットにおける設定内容の一例を示している。なお、図34において、nは0〜3の値をとる。図34(B)に示すように、RSn最大値設定レジスタ(RSnMX)のビット番号[7−0]に格納されるデータRSnMX7〜RSnMX0は、8ビット乱数RSnの最大値が設定される。
図35(A)は、乱数列変更レジスタ(RDSC)の構成例を示している。図35(B)は、乱数列変更レジスタ(RDSC)に格納されるデータの各ビットにおける設定内容の一例を示している。乱数列変更レジスタ(RDSC)のビット番号[7]に格納されるデータRS3SCは、8ビット乱数RS3の乱数列変更要求ビットを示している。図35(B)に示す例では、乱数列を変更しないに設定した場合には、データRS3SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRS3SCは、初期値として”0”が設定されている。
乱数列変更レジスタ(RDSC)のビット番号[6]に格納されるデータRS2SCは、8ビット乱数RS2の乱数列変更要求ビットを示している。図35(B)に示す例では、乱数列を変更しないに設定した場合には、データRS2SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRS2SCは、初期値として”0”が設定されている。
乱数列変更レジスタ(RDSC)のビット番号[5]に格納されるデータRS1SCは、8ビット乱数RS1の乱数列変更要求ビットを示している。図35(B)に示す例では、乱数列を変更しないに設定した場合には、データRS1SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRS1SCは、初期値として”0”が設定されている。
乱数列変更レジスタ(RDSC)のビット番号[4]に格納されるデータRS0SCは、8ビット乱数RS0の乱数列変更要求ビットを示している。図35(B)に示す例では、乱数列を変更しないに設定した場合には、データRS0SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRS0SCは、初期値として”0”が設定されている。
乱数列変更レジスタ(RDSC)のビット番号[3]に格納されるデータRL3SCは、16ビット乱数RL3の乱数列変更要求ビットを示している。図35(B)に示す例では、乱数列を変更しないに設定した場合には、データRL3SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRL3SCは、初期値として”0”が設定されている。
乱数列変更レジスタ(RDSC)のビット番号[2]に格納されるデータRL2SCは、16ビット乱数RL2の乱数列変更要求ビットを示している。図35(B)に示す例では、乱数列を変更しないに設定した場合には、データRL2SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRL2SCは、初期値として”0”が設定されている。
乱数列変更レジスタ(RDSC)のビット番号[1]に格納されるデータRL1SCは、16ビット乱数RL1の乱数列変更要求ビットを示している。図35(B)に示す例では、乱数列を変更しないに設定した場合には、データRL1SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRL1SCは、初期値として”0”が設定されている。
乱数列変更レジスタ(RDSC)のビット番号[0]に格納されるデータRL0SCは、16ビット乱数RL0の乱数列変更要求ビットを示している。図35(B)に示す例では、乱数列を変更しないに設定した場合には、データRL0SCのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRL0SCは、初期値として”0”が設定されている。
図36(A)は、乱数ソフトラッチレジスタ(RDSL)の構成例を示している。図36(B)は、乱数ソフトラッチレジスタ(RDSL)に格納されるデータの各ビットにおける設定内容の一例を示している。乱数ソフトラッチレジスタ(RDSL)のビット番号[7]に格納されるデータRS3SLは、8ビット乱数RS3の乱数値を、RS3ソフトラッチ乱数値レジスタ(RS3SV)に取り込むためのビットを示している。図36(B)に示す例では、乱数値を取り込まないに設定した場合には、データRS3SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRS3SLは、初期値として”0”が設定されている。
乱数ソフトラッチレジスタ(RDSL)のビット番号[6]に格納されるデータRS2SLは、8ビット乱数RS2の乱数値を、RS2ソフトラッチ乱数値レジスタ(RS2SV)に取り込むためのビットを示している。図36(B)に示す例では、乱数値を取り込まないに設定した場合には、データRS2SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRS2SLは、初期値として”0”が設定されている。
乱数ソフトラッチレジスタ(RDSL)のビット番号[5]に格納されるデータRS1SLは、8ビット乱数RS1の乱数値を、RS1ソフトラッチ乱数値レジスタ(RS1SV)に取り込むためのビットを示している。図36(B)に示す例では、乱数値を取り込まないに設定した場合には、データRS1SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRS1SLは、初期値として”0”が設定されている。
乱数ソフトラッチレジスタ(RDSL)のビット番号[4]に格納されるデータRS0SLは、8ビット乱数RS0の乱数値を、RS0ソフトラッチ乱数値レジスタ(RS0SV)に取り込むためのビットを示している。図36(B)に示す例では、乱数値を取り込まないに設定した場合には、データRS0SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRS0SLは、初期値として”0”が設定されている。
乱数ソフトラッチレジスタ(RDSL)のビット番号[3]に格納されるデータRL3SLは、16ビット乱数RL3の乱数値を、RL3ソフトラッチ乱数値レジスタ(RL3SV)に取り込むためのビットを示している。図36(B)に示す例では、乱数値を取り込まないに設定した場合には、データRL3SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRL3SLは、初期値として”0”が設定されている。
乱数ソフトラッチレジスタ(RDSL)のビット番号[2]に格納されるデータRL2SLは、16ビット乱数RL2の乱数値を、RL2ソフトラッチ乱数値レジスタ(RL2SV)に取り込むためのビットを示している。図36(B)に示す例では、乱数値を取り込まないに設定した場合には、データRL2SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRL2SLは、初期値として”0”が設定されている。
乱数ソフトラッチレジスタ(RDSL)のビット番号[1]に格納されるデータRL1SLは、16ビット乱数RL1の乱数値を、RL1ソフトラッチ乱数値レジスタ(RL1SV)に取り込むためのビットを示している。図36(B)に示す例では、乱数値を取り込まないに設定した場合には、データRL1SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRL1SLは、初期値として”0”が設定されている。
乱数ソフトラッチレジスタ(RDSL)のビット番号[0]に格納されるデータRL0SLは、16ビット乱数RL0の乱数値を、RL0ソフトラッチ乱数値レジスタ(RL0SV)に取り込むためのビットを示している。図36(B)に示す例では、乱数値を取り込まないに設定した場合には、データRL0SLのビット値が“0”となる一方、乱数列を変更するに設定した場合には、そのビット値が“1”となる。なお、データRL0SLは、初期値として”0”が設定されている。
図37(A)は、乱数ソフトラッチフラグレジスタ(RDSF)の構成例を示している。図37(B)は、乱数ソフトラッチフラグレジスタ(RDSF)に格納されるデータの各ビットにおける設定内容の一例を示している。乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[7]に格納されるデータRS3SFは、RS3ソフトラッチ乱数値レジスタ(RS3SV)に、乱数値が取り込まれたことを示している。図37(B)に示す例では、乱数値が取り込まれていない場合には、データRS3SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRS3SFは、初期値として”0”が設定されている。
乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[6]に格納されるデータRS2SFは、RS2ソフトラッチ乱数値レジスタ(RS2SV)に、乱数値が取り込まれたことを示している。図37(B)に示す例では、乱数値が取り込まれていない場合には、データRS2SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRS2SFは、初期値として”0”が設定されている。
乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[5]に格納されるデータRS1SFは、RS1ソフトラッチ乱数値レジスタ(RS1SV)に、乱数値が取り込まれたことを示している。図37(B)に示す例では、乱数値が取り込まれていない場合には、データRS1SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRS1SFは、初期値として”0”が設定されている。
乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[4]に格納されるデータRS0SFは、RS0ソフトラッチ乱数値レジスタ(RS0SV)に、乱数値が取り込まれたことを示している。図37(B)に示す例では、乱数値が取り込まれていない場合には、データRS0SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRS0SFは、初期値として”0”が設定されている。
乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[3]に格納されるデータRL3SFは、RL3ソフトラッチ乱数値レジスタ(RL3SV)に、乱数値が取り込まれたことを示している。図37(B)に示す例では、乱数値が取り込まれていない場合には、データRL3SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRL3SFは、初期値として”0”が設定されている。
乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[2]に格納されるデータRL2SFは、RL2ソフトラッチ乱数値レジスタ(RL2SV)に、乱数値が取り込まれたことを示している。図37(B)に示す例では、乱数値が取り込まれていない場合には、データRL2SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRL2SFは、初期値として”0”が設定されている。
乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[1]に格納されるデータRL1SFは、RL1ソフトラッチ乱数値レジスタ(RL1SV)に、乱数値が取り込まれたことを示している。図37(B)に示す例では、乱数値が取り込まれていない場合には、データRL1SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRL1SFは、初期値として”0”が設定されている。
乱数ソフトラッチフラグレジスタ(RDSF)のビット番号[0]に格納されるデータRL0SFは、RL0ソフトラッチ乱数値レジスタ(RL0SV)に、乱数値が取り込まれたことを示している。図37(B)に示す例では、乱数値が取り込まれていない場合には、データRL0SFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRL0SFは、初期値として”0”が設定されている。
図38(A)は、RLnソフトラッチ乱数値レジスタ(RLnSV)の構成例を示している。図38(B)は、RLnソフトラッチ乱数値レジスタ(RLnSV)に格納されるデータの各ビットにおける格納内容の一例を示している。なお、図38において、nは0〜3の値をとる。図38(B)に示すように、RLnソフトラッチ乱数値レジスタ(RLnSV)のビット番号[15−0]に格納されるデータRLnSV15〜RLnSV0は、乱数ソフトラッチレジスタ(RDSL)により取り込まれた16ビット乱数RLnの値が格納される。なお、乱数値が取り込まれると、乱数ソフトラッチフラグレジスタ(RDSF)の該当するビットに”1”がセットされる。
図39(A)は、RSnソフトラッチ乱数値レジスタ(RSnSV)の構成例を示している。図39(B)は、RSnソフトラッチ乱数値レジスタ(RSnSV)に格納されるデータの各ビットにおける格納内容の一例を示している。なお、図39において、nは0〜3の値をとる。図39(B)に示すように、RSnソフトラッチ乱数値レジスタ(RSnSV)のビット番号[7−0]に格納されるデータRSnSV7〜RSnSV0は、乱数ソフトラッチレジスタ(RDSL)により取り込まれた8ビット乱数RSnの値が格納される。なお、乱数値が取り込まれると、乱数ソフトラッチフラグレジスタ(RDSF)の該当するビットに”1”がセットされる。
図40(A)は、RLハードラッチフラグレジスタ0(RLHF0)の構成例を示している。図40(B)は、RLハードラッチフラグレジスタ0(RLHF0)に格納されるデータの各ビットにおける設定内容の一例を示している。なお、RLハードラッチフラグレジスタ0(RLHF0)のビット[7−6]のビット値は必ず”0”とされる。
RLハードラッチフラグレジスタ0(RLHF0)のビット番号[5]に格納されるデータRL11HFは、RL1ハードラッチ乱数値レジスタ1に、乱数値が取り込まれたことを示している。図40(B)に示す例では、乱数値が取り込まれていない場合には、データRL11HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRL11HFは、初期値として”0”が設定されている。
RLハードラッチフラグレジスタ0(RLHF0)のビット番号[4]に格納されるデータRL10HFは、RL1ハードラッチ乱数値レジスタ0に、乱数値が取り込まれたことを示している。図40(B)に示す例では、乱数値が取り込まれていない場合には、データRL10HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRL10HFは、初期値として”0”が設定されている。
RLハードラッチフラグレジスタ0(RLHF0)のビット番号[3]に格納されるデータRL03HFは、RL0ハードラッチ乱数値レジスタ3に、乱数値が取り込まれたことを示している。図40(B)に示す例では、乱数値が取り込まれていない場合には、データRL03HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRL03HFは、初期値として”0”が設定されている。
RLハードラッチフラグレジスタ0(RLHF0)のビット番号[2]に格納されるデータRL02HFは、RL0ハードラッチ乱数値レジスタ2に、乱数値が取り込まれたことを示している。図40(B)に示す例では、乱数値が取り込まれていない場合には、データRL02HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRL02HFは、初期値として”0”が設定されている。
RLハードラッチフラグレジスタ0(RLHF0)のビット番号[1]に格納されるデータRL01HFは、RL0ハードラッチ乱数値レジスタ1に、乱数値が取り込まれたことを示している。図40(B)に示す例では、乱数値が取り込まれていない場合には、データRL01HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRL01HFは、初期値として”0”が設定されている。
RLハードラッチフラグレジスタ0(RLHF0)のビット番号[0]に格納されるデータRL00HFは、RL0ハードラッチ乱数値レジスタ0に、乱数値が取り込まれたことを示している。図40(B)に示す例では、乱数値が取り込まれていない場合には、データRL00HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRL00HFは、初期値として”0”が設定されている。
図41(A)は、RLハードラッチフラグレジスタ1(RLHF1)の構成例を示している。図41(B)は、RLハードラッチフラグレジスタ1(RLHF1)に格納されるデータの各ビットにおける設定内容の一例を示している。なお、RLハードラッチフラグレジスタ1(RLHF1)のビット[7−6]およびビット[3−2]のビット値は必ず”0”とされる。
RLハードラッチフラグレジスタ1(RLHF1)のビット番号[5]に格納されるデータRL31HFは、RL3ハードラッチ乱数値レジスタ1に、乱数値が取り込まれたことを示している。図41(B)に示す例では、乱数値が取り込まれていない場合には、データRL31HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRL31HFは、初期値として”0”が設定されている。
RLハードラッチフラグレジスタ1(RLHF1)のビット番号[4]に格納されるデータRL30HFは、RL3ハードラッチ乱数値レジスタ0に、乱数値が取り込まれたことを示している。図41(B)に示す例では、乱数値が取り込まれていない場合には、データRL30HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRL30HFは、初期値として”0”が設定されている。
RLハードラッチフラグレジスタ1(RLHF1)のビット番号[1]に格納されるデータRL21HFは、RL2ハードラッチ乱数値レジスタ1に、乱数値が取り込まれたことを示している。図41(B)に示す例では、乱数値が取り込まれていない場合には、データRL21HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRL21HFは、初期値として”0”が設定されている。
RLハードラッチフラグレジスタ1(RLHF1)のビット番号[1]に格納されるデータRL20HFは、RL2ハードラッチ乱数値レジスタ0に、乱数値が取り込まれたことを示している。図41(B)に示す例では、乱数値が取り込まれていない場合には、データRL20HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRL20HFは、初期値として”0”が設定されている。
図42(A)は、RSハードラッチフラグレジスタ(RSHF)の構成例を示している。図42(B)は、RSハードラッチフラグレジスタ(RSHF)に格納されるデータの各ビットにおける設定内容の一例を示している。なお、RSハードラッチフラグレジスタ(RSHF)は、8ビット乱数回路508aとフリーランカウンタ回路507とで兼用で用いられるレジスタであり、RSハードラッチフラグレジスタ(RSHF)のビット[7−4]は、フリーランカウンタ507が用いるハードラッチレジスタ(FRC0ハードラッチレジスタ(FR0HV)〜FRC3ハードラッチレジスタ(FR3HV))に関する設定を示している。
RSハードラッチフラグレジスタ(RSHF)のビット番号[3]に格納されるデータRS3HFは、RS3ハードラッチ乱数値レジスタ(RS3HV)に、乱数値が取り込まれたことを示している。図42(B)に示す例では、乱数値が取り込まれていない場合には、データRS3HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRS3HFは、初期値として”0”が設定されている。
RSハードラッチフラグレジスタ(RSHF)のビット番号[2]に格納されるデータRS2HFは、RS2ハードラッチ乱数値レジスタ(RS2HV)に、乱数値が取り込まれたことを示している。図42(B)に示す例では、乱数値が取り込まれていない場合には、データRS2HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRS2HFは、初期値として”0”が設定されている。
RSハードラッチフラグレジスタ(RSHF)のビット番号[1]に格納されるデータRS1HFは、RS1ハードラッチ乱数値レジスタ(RS1HV)に、乱数値が取り込まれたことを示している。図42(B)に示す例では、乱数値が取り込まれていない場合には、データRS1HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRS1HFは、初期値として”0”が設定されている。
RSハードラッチフラグレジスタ(RSHF)のビット番号[0]に格納されるデータRS0HFは、RS0ハードラッチ乱数値レジスタ(RS0HV)に、乱数値が取り込まれたことを示している。図42(B)に示す例では、乱数値が取り込まれていない場合には、データRS0HFのビット値が“0”となる一方、乱数値を取り込み済みである場合には、そのビット値が“1”となる。なお、データRS0HFは、初期値として”0”が設定されている。
図43(A)は、RL0ハードラッチ乱数値レジスタm(RL0mHV)の構成例を示している。図43(B)は、RL0ハードラッチ乱数値レジスタm(RL0mHV)に格納されるデータの各ビットにおける格納内容の一例を示している。なお、図43において、mは0〜3の値をとる。図43(B)に示すように、RL0ハードラッチ乱数値レジスタm(RL0mHV)のビット番号[15−0]に格納されるデータRL0mHV15〜RL0mHV0は、外部端子入力により取り込まれた16ビット乱数RL0の値が格納される。なお、乱数値が取り込まれると、RLハードラッチフラグレジスタ0(RLHF0)の該当するビットに”1”がセットされる。
図44(A)は、RL1ハードラッチ乱数値レジスタm(RL1mHV)の構成例を示している。図44(B)は、RL1ハードラッチ乱数値レジスタm(RL1mHV)に格納されるデータの各ビットにおける格納内容の一例を示している。なお、図44において、mは0〜3の値をとる。図44(B)に示すように、RL1ハードラッチ乱数値レジスタm(RL1mHV)のビット番号[15−0]に格納されるデータRL1mHV15〜RL1mHV0は、外部端子入力により取り込まれた16ビット乱数RL1の値が格納される。なお、乱数値が取り込まれると、RLハードラッチフラグレジスタ0(RLHF0)の該当するビットに”1”がセットされる。
図45(A)は、RL2ハードラッチ乱数値レジスタm(RL2mHV)の構成例を示している。図45(B)は、RL2ハードラッチ乱数値レジスタm(RL2mHV)に格納されるデータの各ビットにおける格納内容の一例を示している。なお、図45において、mは0〜3の値をとる。図45(B)に示すように、RL2ハードラッチ乱数値レジスタm(RL2mHV)のビット番号[15−0]に格納されるデータRL2mHV15〜RL2mHV0は、外部端子入力により取り込まれた16ビット乱数RL2の値が格納される。なお、乱数値が取り込まれると、RLハードラッチフラグレジスタ1(RLHF1)の該当するビットに”1”がセットされる。
図46(A)は、RL3ハードラッチ乱数値レジスタm(RL3mHV)の構成例を示している。図46(B)は、RL3ハードラッチ乱数値レジスタm(RL3mHV)に格納されるデータの各ビットにおける格納内容の一例を示している。なお、図46において、mは0〜3の値をとる。図46(B)に示すように、RL3ハードラッチ乱数値レジスタm(RL3mHV)のビット番号[15−0]に格納されるデータRL3mHV15〜RL3mHV0は、外部端子入力により取り込まれた16ビット乱数RL3の値が格納される。なお、乱数値が取り込まれると、RLハードラッチフラグレジスタ1(RLHF1)の該当するビットに”1”がセットされる。
図47(A)は、RSnハードラッチ乱数値レジスタ(RSnHV)の構成例を示している。図47(B)は、RSnハードラッチ乱数値レジスタ(RSnHV)に格納されるデータの各ビットにおける格納内容の一例を示している。なお、図47において、nは0〜3の値をとる。図47(B)に示すように、RSnハードラッチ乱数値レジスタ(RLnHV)のビット番号[70]に格納されるデータRSnHV7〜RSnHV0は、外部端子入力により取り込まれた8ビット乱数RSnの値が格納される。なお、乱数値が取り込まれると、RSハードラッチフラグレジスタ(RSHF)の該当するビットに”1”がセットされる。
図6に示す遊技制御用マイクロコンピュータ560が備えるタイマ回路509は、8ビットプログラマブルタイマであり、遊技制御用マイクロコンピュータ560は、タイマ回路509として、8ビットのカウンタを3チャネル備える。この実施の形態では、タイマ回路509を用いてユーザプログラムによる設定により、リアルタイム割り込み要求や時間計測を行うことが可能である。
図6に示す遊技制御用マイクロコンピュータ560が備える割り込みコントローラ510は、PI5/XINT端子からの外部割り込み要求や、内蔵の周辺回路(例えば、シリアル通信回路512、乱数回路508a,508b、タイマ回路509)からの割り込み要求を制御する回路である。
図6に示す遊技制御用マイクロコンピュータ560が備えるパラレル入力ポート511は、8ビット幅の入力専用ポート(PIP)を内蔵する。また、図6に示す遊技制御用マイクロコンピュータ560が備えるパラレル出力ポート513は、11ビット幅の出力専用ポート(POP)を内蔵する。
図6に示す遊技制御用マイクロコンピュータ560が備えるシリアル通信回路512は、外部に対する入出力において非同期シリアル通信を行う回路である。なお、遊技制御用マイクロコンピュータ560は、シリアル通信回路512として、送受信両用の1チャネルの回路と、送信用のみの3チャネルの回路とを備える。なお、例えば、送受信両用の回路については、例えば、双方向の通信が必要となる遊技制御用マイクロコンピュータ560と払出制御基板37が搭載する払出制御用マイクロコンピュータとの間の通信に用いるようにし、送信用のみの回路については、例えば、一方向の通信でよい遊技制御用マイクロコンピュータ560から演出制御用マイクロコンピュータ100に対する通信に用いるようにする。
図6に示す遊技制御用マイクロコンピュータ560が備えるアドレスデコード回路514は、遊技制御用マイクロコンピュータ560の内部における各機能ブロックのデコードや、外部装置用のデコード信号であるチップセレクト信号のデコードを行うための回路である。チップセレクト信号により、遊技制御用マイクロコンピュータ560の内部回路、あるいは、周辺デバイスとなる外部装置を、選択的に有効動作させて、CPU56からのアクセスが可能となる。
次に、遊技機の動作について説明する。まず、この実施の形態では、既に説明したように、ウオッチドッグタイマ(WDT)506bからのタイムアウト信号やIAT回路506aからのIAT信号が発生したときに、ユーザリセットを発生させるかシステムリセットを発生させるかを可能である(図14参照)。図48は、リセット設定(KRES)での設定内容によるリセット動作の違いを説明するための説明図である。
まず、図48(A)を用いてウオッチドッグタイマ(WDT)506bからのタイムアウト信号やIAT回路506aからのIAT信号が発生したときにシステムリセットを発生させるように設定した場合について説明する。この場合、図48(A)に示すように、遊技機に対して電源が投入され電力供給が開始されると、遊技制御用マイクロコンピュータ56は、CPUコアを含む全ての内部回路を初期化するとともに、プログラム管理エリアの設定内容に従って、内部リセット動作の設定や乱数回路508a,508bの設定など遊技制御用マイクロコンピュータ560の各種設定をハードウェア的に行う(ステップS1001)。具体的には、プログラム管理エリアの図14に示すリセット設定(KRES)の設定内容に従って内部リセットの動作の設定を行ったり、プログラム管理エリアの図15〜図19に示す16ビット乱数初期設定1(KRL1)〜8ビット乱数初期設定2(KRS2)の設定内容に従って乱数回路508a,508bの設定を行ったりする。なお、図48(A)に示す例では、遊技制御用マイクロコンピュータ56は、プログラム管理エリアの設定内容に従って、内部リセット動作の設定としてシステムリセットを設定する。また、プログラム管理エリアの設定内容は予め遊技機の製作時に遊技機製造メーカ(ユーザ)によって設定されているものとする。
遊技制御用マイクロコンピュータ560の各種設定を完了すると、遊技制御用マイクロコンピュータ56は、セキュリティモードに移行し、セキュリティチェックを実行する(ステップS1002)。ステップS1002で実行するセキュリティチェックでは、ユーザプログラムの認証を行う。具体的には、ユーザプログラムをもとに計算された認証コードが正しいか否か再計算を行う。そして、認証コードが正しければ、ステップS1003に移行し、認証コードが正しくなければ、CPU56を停止する。なお、セキュリティモードに移行されるセキュリティモード時間は、既に説明したように、プログラム管理エリアの図20に示すセキュリティ時間設定(KSES)の設定内容に従って可変とされている。具体的には、プログラム管理エリアの図20に示すセキュリティ時間設定(KSES)の設定内容に従ってステップS1001の設定が行われることによりセキュリティモード時間が設定される。なお、認証コードは、予め遊技機の製作時の内蔵ROM54への書き込み時に遊技機製造メーカ(ユーザ)によってユーザプログラムとともに書き込まれているものとする。
そして、セキュリティチェックを終了すると、遊技制御用マイクロコンピュータ560は、ユーザモードに移行し、ユーザプログラムの実行を開始する。具体的には、後述する図50のメイン処理の実行を開始する。
次いで、ユーザプログラムが実行されているときに(具体的には、後述する図50のメイン処理内のループ処理や図51のタイマ割込処理の実行中に)、ウオッチドッグタイマ(WDT)506bからのタイムアウト信号やIAT回路506aからのIAT信号が発生したものとする。図48(A)に示す例では、ステップS1001で内部リセット動作の設定としてシステムリセットが設定されていることから、タイムアウト信号やIAT信号の発生にもとづいてシステムリセットが発生する。
そして、ステップS1001と同様に、遊技制御用マイクロコンピュータ56は、CPUコアを含む全ての内部回路を初期化するとともに、プログラム管理エリアの設定内容に従って、内部リセット動作の設定や乱数回路508a,508bの設定など遊技制御用マイクロコンピュータ560の各種設定をハードウェア的に行う(ステップS1005)。また、遊技制御用マイクロコンピュータ560の各種設定を完了すると、ステップS1002と同様に、遊技制御用マイクロコンピュータ56は、セキュリティモードに移行し、セキュリティチェックを実行する(ステップS1006)。
そして、セキュリティチェックを終了すると、ステップS1003と同様に、遊技制御用マイクロコンピュータ560は、ユーザモードに移行し、ユーザプログラムの実行を開始する。具体的には、後述する図50のメイン処理の実行を再び開始する。
以降、ウオッチドッグタイマ(WDT)506bからのタイムアウト信号やIAT回路506aからのIAT信号が発生するごとに、ステップS1004〜S1007の動作が実行される。なお、図48(A)において、ステップS1001,S1002の具体的な処理内容とステップS1005,S1006の具体的な処理内容とは同じである。
次に、図48(B)を用いてウオッチドッグタイマ(WDT)506bからのタイムアウト信号やIAT回路506aからのIAT信号が発生したときにユーザリセットを発生させるように設定した場合について説明する。この場合、図48(B)に示すように、遊技機に対して電源が投入され電力供給が開始されると、遊技制御用マイクロコンピュータ56は、CPUコアを含む全ての内部回路を初期化するとともに、プログラム管理エリアの設定内容に従って、内部リセット動作の設定や乱数回路508a,508bの設定など遊技制御用マイクロコンピュータ560の各種設定をハードウェア的に行う(ステップS1011)。具体的には、プログラム管理エリアの図14に示すリセット設定(KRES)の設定内容に従って内部リセットの動作の設定を行ったり、プログラム管理エリアの図15〜図19に示す16ビット乱数初期設定1(KRL1)〜8ビット乱数初期設定2(KRS2)の設定内容に従って乱数回路508a,508bの設定を行ったりする。なお、図48(B)に示す例では、遊技制御用マイクロコンピュータ56は、プログラム管理エリアの設定内容に従って、内部リセット動作の設定としてユーザリセットを設定する。また、プログラム管理エリアの設定内容は予め遊技機の製作時に遊技機製造メーカ(ユーザ)によって設定されているものとする。
遊技制御用マイクロコンピュータ560の各種設定を完了すると、遊技制御用マイクロコンピュータ56は、セキュリティモードに移行し、セキュリティチェックを実行する(ステップS1012)。ステップS1012で実行するセキュリティチェックでは、ユーザプログラムの認証を行う。具体的には、ユーザプログラムをもとに計算された認証コードが正しいか否か再計算を行う。そして、認証コードが正しければ、ステップS1013に移行し、認証コードが正しくなければ、CPU56を停止する。なお、セキュリティモードに移行されるセキュリティモード時間は、既に説明したように、プログラム管理エリアの図20に示すセキュリティ時間設定(KSES)の設定内容に従って可変とされている。具体的には、プログラム管理エリアの図20に示すセキュリティ時間設定(KSES)の設定内容に従ってステップS1011の設定が行われることによりセキュリティモード時間が設定される。なお、認証コードは、予め遊技機の製作時の内蔵ROM54への書き込み時に遊技機製造メーカ(ユーザ)によってユーザプログラムとともに書き込まれているものとする。
そして、セキュリティチェックを終了すると、遊技制御用マイクロコンピュータ560は、ユーザモードに移行し、ユーザプログラムの実行を開始する。具体的には、後述する図50のメイン処理の実行を開始する。
次いで、ユーザプログラムが実行されているときに(具体的には、後述する図50のメイン処理内のループ処理や図51のタイマ割込処理の実行中に)、ウオッチドッグタイマ(WDT)506bからのタイムアウト信号やIAT回路506aからのIAT信号が発生したものとする。図48(B)に示す例では、ステップS1011で内部リセット動作の設定としてユーザリセットが設定されていることから、タイムアウト信号やIAT信号の発生にもとづいてユーザリセットが発生する。
ユーザリセットが発生した場合には、ステップS1011の遊技制御用マイクロコンピュータ560の各種設定やステップS1012のセキュリティチェックは実行されず、遊技制御用マイクロコンピュータ560の内部回路のうち、CPUコア、タイマ回路509、フリーランカウンタ回路507、演算回路505、パラレル入力ポート511、パラレル出力ポート513、シリアル通信回路512、および割り込みコントローラ510などを初期化する。そして、そのままユーザプログラムの先頭のアドレスに戻り、ユーザプログラムの実行が先頭のアドレスから再び開始される(ステップS1015)。具体的には、後述する図50のメイン処理の実行を再び開始する。
以降、ウオッチドッグタイマ(WDT)506bからのタイムアウト信号やIAT回路506aからのIAT信号が発生するごとに、ステップS1014〜S1015の動作が実行される。
また、この実施の形態では、遊技制御用マイクロコンピュータ560は、ユーザプログラムの実行中に内蔵RAM領域に格納されているデータを読み出す場合、そのデータが格納されている内蔵RAM領域の上位および下位全てのアドレスを指定するのではなく、アドレスの下位のみを指定してデータを読み出すことが可能である。図49は、内蔵RAM領域に格納されているデータの読み出し方の例を示す説明図である。この実施の形態では、ユーザプログラムで参照されるデータは、内蔵RAM領域のうちのF000H〜F0FFH領域に格納されるものとし、データ格納領域のアドレスの上位が必ずF0Hとなるものとする。また、遊技制御用マイクロコンピュータ560は、データ格納領域の上位アドレスを固定値として格納しておくための専用のレジスタ(Qレジスタ)を備え、Qレジスタには固定値F0Hが設定されるものとする。
図49に示す例では、内蔵RAM領域のアドレスF020Hに格納されているデータを読み出す場合が示されている。この場合、Qレジスタを用いてデータを読み出すためのコマンドLDQを用いて、下位アドレス20Hのみを指定して、データの読み出し動作を行う(具体的には、LDQ A,(20H)を実行する)。すると、CPU56は、データ格納領域の上位アドレスをQレジスタに設定されている固定値からF0Hと特定するとともに、LDQ命令で指定された下位アドレス20Hを特定し、上位および下位を合わせたデータ格納領域のアドレスがF020Hであると特定する。そして、CPU56は、特定したF020Hに対応するデータ格納領域に格納されているデータaを読み出し、レジスタAに格納する。
なお、Qレジスタの値は、システムリセット時にハードウェア的に初期化されて初期値F0Hに自動設定されるものとする。例えば、遊技機に対して電源が投入され電力供給が開始されたときに、Qレジスタの下位4ビットは0に初期化されるとともに、上位4ビットは反転回路で反転されて全て値1となることによって、Qレジスタの初期値としてF0Hが自動設定される。なお、後述するように、この実施の形態では、ユーザプログラムの実行が開始されたときにも、ユーザプログラムによりQレジスタに初期値F0Hを設定する処理が実行される(後述するステップS5A参照)。
なお、Qレジスタの初期値設定は、遊技機に対して電源が投入され電力供給が開始されたときに行うハードウェア的な自動設定のみでもよいし、ユーザプログラムの開始時に実行されるユーザプログラムによる設定のみでもよい。
次に、システムチェックを実行した後、ユーザモードに移行した後にユーザプログラムに従って実行される処理を説明する。ユーザモードに移行すると、遊技制御用マイクロコンピュータ560は、メイン処理の実行を開始する。
図50は、主基板31における遊技制御用マイクロコンピュータ560が実行するメイン処理を示すフローチャートである。メイン処理において、CPU56は、まず、必要な初期設定を行う。初期設定処理において、CPU56は、まず、割込禁止に設定する(ステップS1)。次に、割込モードの設定を行い(ステップS2)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS3)。そして、内蔵デバイスの初期化(内蔵デバイス(内蔵周辺回路)であるタイマ回路509、パラレル入力ポート511およびパラレル出力ポート513の初期化など)を行った後(ステップS4)、RAMをアクセス可能状態に設定する(ステップS5)。
次いで、CPU56は、Qレジスタに初期値F0Hをセットする(ステップS5A)。すなわち、ステップS5が実行されてRAM55をアクセス可能状態に設定したタイミングで、Qレジスタに初期値F0Hがセットされる。
次いで、CPU56は、入力ポートを介して入力されるクリアスイッチ(例えば、電源基板に搭載されている。)の出力信号(クリア信号)の状態を確認する(ステップS6)。その確認においてオンを検出した場合には、CPU56は、通常の初期化処理(ステップS10〜S15)を実行する。
クリアスイッチがオンの状態でない場合には、遊技機への電力供給が停止したときにバックアップRAM領域のデータ保護処理(例えばパリティデータの付加等の電力供給停止時処理(電源断処理))が行われたか否か確認する(ステップS7)。そのような保護処理が行われていないことを確認したら、CPU56は初期化処理を実行する。バックアップRAM領域にバックアップデータがあるか否かは、例えば、電源断処理においてバックアップRAM領域に設定されるバックアップ監視タイマの値が判定値(例えば2)と同じ値になっていることによって、電力供給停止時処理の処理結果が保存されていることを確認できる。なお、バックアップ監視タイマに代えて、例えば、電源断処理においてバックアップフラグをセットするようにし、ステップS7では、バックアップフラグがセットされているか否かを確認するようにしてもよい。
電力供給停止時処理が行われたことを確認したら、CPU56は、バックアップRAM領域のデータチェックを行う(ステップS8)。この実施の形態では、データチェックとしてパリティチェックを行う。よって、ステップS8では、算出したチェックサムと、電力供給停止時処理で同一の処理によって算出され保存されているチェックサムとを比較する。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップRAM領域のデータは保存されているはずであるから、チェック結果(比較結果)は正常(一致)になる。チェック結果が正常でないということは、バックアップRAM領域のデータが、電力供給停止時のデータとは異なっていることを意味する。そのような場合には、内部状態を電力供給停止時の状態に戻すことができないので、電力供給の停止からの復旧時でない電源投入時に実行される初期化処理を実行する。
チェック結果が正常であれば、CPU56は、遊技制御手段の内部状態と演出制御手段等の電気部品制御手段の制御状態を電力供給停止時の状態に戻すための遊技状態復旧処理(ステップS41〜S43の処理)を行う。具体的には、ROM54に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し(ステップS41)、バックアップ時設定テーブルの内容を順次作業領域(RAM55内の領域)に設定する(ステップS42)。作業領域はバックアップ電源によって電源バックアップされている。バックアップ時設定テーブルには、作業領域のうち初期化してもよい領域についての初期化データが設定されている。ステップS41およびS42の処理によって、作業領域のうち初期化してはならない部分については、保存されていた内容がそのまま残る。初期化してはならない部分とは、例えば、電力供給停止前の遊技状態を示すデータ(特別図柄プロセスフラグ、確変フラグ、時短フラグなど)、出力ポートの出力状態が保存されている領域(出力ポートバッファ)、未払出賞球数を示すデータが設定されている部分などである。
また、CPU56は、電力供給復旧時の初期化コマンドとしての停電復旧指定コマンドを送信する(ステップS43)。また、CPU56は、バックアップRAMに保存されている表示結果(確変大当り、通常大当り、突然確変大当り、小当り、またははずれ)を指定した表示結果指定コマンドを演出制御基板80に対して送信する(ステップS44)。そして、ステップS15に移行する。
なお、この実施の形態では、バックアップRAM領域には、後述する変動時間タイマの値も保存される。従って、停電復旧した場合には、ステップS44で表示結果指定コマンドが送信された後、保存していた変動時間タイマの値の計測を再開して特別図柄の変動表示が再開されるとともに、保存していた変動時間タイマの値がタイムアウトしたときに、さらに後述する図柄確定指定コマンドが送信される。また、この実施の形態では、バックアップRAM領域には、後述する特別図柄プロセスフラグの値も保存される。従って、停電復旧した場合には、保存されている特別図柄プロセスフラグの値に応じたプロセスから特別図柄プロセス処理が再開される。
なお、停電復旧時に必ず表示結果指定コマンドを送信するのではなく、CPU56は、まず、バックアップRAM領域に保存している変動時間タイマの値が0であるか否かを確認するようにしてもよい。そして、変動時間タイマの値が0でなければ、変動中に停電した場合であると判断して、表示結果指定コマンドを送信するようにし、変動時間タイマが0であれば、停電時に変動中の状態ではなかったと判断して、表示結果指定コマンドを送信しないようにしてもよい。
また、CPU56は、まず、バックアップRAM領域に保存している特別図柄プロセスフラグの値が3であるか否かを確認するようにしてもよい。そして、特別図柄プロセスフラグの値が3であれば、変動中に停電した場合であると判断して、表示結果指定コマンドを送信するようにし、特別図柄プロセスフラグが3でなければ、停電時に変動中ではなかったと判断して、表示結果指定コマンドを送信しないようにしてもよい。
なお、この実施の形態では、バックアップ監視タイマ(または、バックアップフラグ)とチェックデータとの双方を用いてバックアップRAM領域のデータが保存されているか否か確認しているが、いずれか一方のみを用いてもよい。すなわち、バックアップ監視タイマ(または、バックアップフラグ)とチェックデータとのいずれかを、遊技状態復旧処理を実行するための契機としてもよい。
初期化処理では、CPU56は、まず、RAMクリア処理を行い(ステップS10)、加算バッファおよびクリアバッファをクリアする(ステップS10a)。加算バッファおよびクリアバッファは、RAM55形成され(すなわちRAM内の領域であって)、後述する入賞順異常報知処理において始動口への入賞順異常が発生したことを検出するために用いられる。なお、RAMクリア処理によって、所定のデータ(例えば、普通図柄当り判定用乱数を生成するためのカウンタのカウント値のデータ)は0に初期化されるが、任意の値またはあらかじめ決められている値に初期化するようにしてもよい。また、RAM55の全領域を初期化せず、所定のデータ(例えば、普通図柄当り判定用乱数を生成するためのカウンタのカウント値のデータ)をそのままにしてもよい。また、この実施の形態では、遊技状態復旧処理(ステップS41〜S43の処理)が実行される場合には、通常の初期化処理(ステップS10〜S13)が実行されないが、遊技状態復旧処理(ステップS41〜S43の処理)が実行される場合にも、加算バッファおよびクリアバッファのクリア(ステップS10a)が実行されるようにしてもよい。このようにすることで、電力供給停止前の状態に復旧させて入賞順異常報知処理を行うのではなく、新たな状態で入賞順異常報知処理を行うことができる。
次いで、CPU56は、ROM54に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し(ステップS11)、初期化時設定テーブルの内容を順次作業領域に設定する(ステップS12)。
ステップS11およびS12の処理によって、例えば、普通図柄当り判定用乱数カウンタ、特別図柄バッファ、総賞球数格納バッファ、特別図柄プロセスフラグなど制御状態に応じて選択的に処理を行うためのフラグに初期値が設定される。
また、CPU56は、サブ基板(主基板31以外のマイクロコンピュータが搭載された基板。)を初期化するための初期化指定コマンド(遊技制御用マイクロコンピュータ560が初期化処理を実行したことを示すコマンドでもある。)をサブ基板に送信する(ステップS13)。例えば、演出制御用マイクロコンピュータ100は、初期化指定コマンドを受信すると、演出表示装置9において、遊技機の制御の初期化がなされたことを報知するための画面表示、すなわち初期化報知を行う。
そして、ステップS15において、CPU56は、所定時間(例えば4ms)毎に定期的にタイマ割込がかかるように遊技制御用マイクロコンピュータ560に内蔵されているタイマ回路509のレジスタの設定を行なう。すなわち、初期値として例えば4msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。この実施の形態では、4ms毎に定期的にタイマ割込がかかるとする。
初期化処理の実行(ステップS10〜S15)が完了すると、CPU56は、メイン処理で、表示用乱数更新処理(ステップS17)および初期値用乱数更新処理(ステップS18)を繰り返し実行する。表示用乱数更新処理および初期値用乱数更新処理を実行するときには割込禁止状態に設定し(ステップS16)、表示用乱数更新処理および初期値用乱数更新処理の実行が終了すると割込許可状態に設定する(ステップS19)。この実施の形態では、表示用乱数とは、大当りとしない場合の特別図柄の停止図柄を決定するための乱数や大当りとしない場合にリーチとするか否かを決定するための乱数であり、表示用乱数更新処理とは、表示用乱数を発生するためのカウンタのカウント値を更新する処理である。また、初期値用乱数更新処理とは、初期値用乱数を発生するためのカウンタのカウント値を更新する処理である。この実施の形態では、初期値用乱数とは、普通図柄に関して当りとするか否か決定するための乱数を発生するためのカウンタ(普通図柄当り判定用乱数発生カウンタ)のカウント値の初期値を決定するための乱数である。後述する遊技の進行を制御する遊技制御処理(遊技制御用マイクロコンピュータ560が、遊技機に設けられている演出表示装置、可変入賞球装置、球払出装置等の遊技用の装置を、自身で制御する処理、または他のマイクロコンピュータに制御させるために指令信号を送信する処理、遊技装置制御処理ともいう)において、普通図柄当り判定用乱数のカウント値が1周(普通図柄当り判定用乱数の取りうる値の最小値から最大値までの間の数値の個数分歩進したこと)すると、そのカウンタに初期値が設定される。
なお、この実施の形態では、リーチ演出は、演出表示装置9において可変表示される演出図柄を用いて実行される。また、特別図柄の表示結果を大当り図柄にする場合には、リーチ演出は常に実行される。特別図柄の表示結果を大当り図柄にしない場合には、遊技制御用マイクロコンピュータ560は、乱数を用いた抽選によって、リーチ演出を実行するか否か決定する。ただし、実際にリーチ演出の制御を実行するのは、演出制御用マイクロコンピュータ100である。
タイマ割込が発生すると、CPU56は、図51に示すステップS20〜S34のタイマ割込処理を実行する。タイマ割込処理において、まず、電源断信号が出力されたか否か(オン状態になったか否か)を検出する電源断検出処理を実行する(ステップS20)。電源断信号は、例えば電源基板に搭載されている電源監視回路が、遊技機に供給される電源の電圧の低下を検出した場合に出力する。そして、電源断検出処理において、CPU56は、電源断信号が出力されたことを検出したら、必要なデータをバックアップRAM領域に保存するための電力供給停止時処理を実行する。次いで、入力ドライバ回路58を介して、ゲートスイッチ32a、第1始動口スイッチ13a、第2始動口スイッチ14aおよびカウントスイッチ23の検出信号を入力し、それらの状態判定を行う(スイッチ処理:ステップS21)。
次に、CPU56は、第1始動入賞口13と第2始動入賞口14との入賞順異常を検出し入賞順異常を報知するための入賞順異常報知処理を実行する(ステップS21a)。
なお、「入賞順異常」とは、第1始動入賞口13および第2始動入賞口14に遊技球が入賞した順序(具体的には、第1始動口スイッチ13aおよび第2始動口スイッチ14aによって遊技球が検出された順序)が所定の順序と異なることである。この実施の形態では、既に説明したように、振分装置200に流入した遊技球は振分部材202によって第1始動入賞口13と第2始動入賞口14とに交互に入賞するように構成されている(ただし、確変状態(高ベース状態)には、振分装置200の状態にかかわらず第2始動入賞口14に入賞可能な場合もある)ので、第1始動入賞口13または第2始動入賞口14に遊技球が連続して入賞することはない(ただし、確変状態(高ベース状態)では第2始動入賞口14に連続して入賞する場合がある)。そのため、この実施の形態では、第1始動入賞口13または第2始動入賞口14のいずれかに所定数以上(本例では4以上)連続して入賞した場合に入賞順異常が検出され、後述するような入賞順異常を報知する制御が行われる。
次に、CPU56は、第1特別図柄表示器8a、第2特別図柄表示器8b、普通図柄表示器10、第1特別図柄保留記憶表示器18a、第2特別図柄保留記憶表示器18b、普通図柄保留記憶表示器41の表示制御を行う表示制御処理を実行する(ステップS22)。第1特別図柄表示器8a、第2特別図柄表示器8bおよび普通図柄表示器10については、ステップS32,S33で設定される出力バッファの内容に応じて各表示器に対して駆動信号を出力する制御を実行する。
また、遊技制御に用いられる普通図柄当り判定用乱数等の各判定用乱数を生成するための各カウンタのカウント値を更新する処理を行う(判定用乱数更新処理:ステップS23)。CPU56は、さらに、初期値用乱数および表示用乱数を生成するためのカウンタのカウント値を更新する処理を行う(初期値用乱数更新処理,表示用乱数更新処理:ステップS24,S25)。
さらに、CPU56は、特別図柄プロセス処理を行う(ステップS26)。特別図柄プロセス処理では、第1特別図柄表示器8a、第2特別図柄表示器8bおよび大入賞口を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理を実行する。CPU56は、特別図柄プロセスフラグの値を、遊技状態に応じて更新する。
次いで、普通図柄プロセス処理を行う(ステップS27)。普通図柄プロセス処理では、CPU56は、普通図柄表示器10の表示状態を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理を実行する。CPU56は、普通図柄プロセスフラグの値を、遊技状態に応じて更新する。
また、CPU56は、演出制御用マイクロコンピュータ100に演出制御コマンドを送出する処理を行う(演出制御コマンド制御処理:ステップS28)。
次いで、CPU56は、所定のメイン側エラー処理を実行する(ステップS28A)。このメイン側エラー処理では、パチンコ遊技機1が所定のエラー(磁石,電波,振動)を検知した場合に、エラー報知を行って、図74(b)に示すタイマ更新処理を開始する。このタイマ更新処理では、所定のエラー時間(本例では5分)が経過するとエラー報知を解除する。具体的には、カウンタ初期値に0,タイマ初期値に3000(すなわち5分=300秒を、カウンタの満了時間100msで除算した値)がセットされた状態でスタートして、まずカウンタを+1し(S1011)、該カウンタのカウント数が前記所定値である25に達したか否かを判定し(S1012)、達していなければ(NO)処理を終了し、達していれば(YES)カウンタを初期値に戻し(S1013)、タイマを−1して(S1014)、該タイマが0であるか否かを判定し(S1015)、タイマが0でなければ(NO)処理を終了し、タイマが0であれば(YES)エラー報知を解除して(S1016)、処理を終了する。これによれば、エラー時間のデータは2バイト分としてタイマにより更新し、それとは別に1バイト分のカウンタを用いて時間を更新するようにしたので、タイマのみを用いる場合に比べて計時できる時間を長くできると共に、該エラー時間のデータ量を増やさないようにすることができる。
ここで、遊技制御用マイクロコンピュータ560には、図示しない磁石センサ、電波センサ、振動センサがそれぞれ接続されており、磁石センサにより異常磁気が検出されたときに出力される検出信号、電波センサにより異常電波が検出されたときに出力される検出信号、振動センサにより異常振動が検出されたときに出力される検出信号が、それぞれ所定の端子に入力されるようになっている。例えば、これらの検出信号が入力されたことに基づいて、CPU56は、上述したように所定のエラー時間(例えば300秒)に応じた初期値(例えば3000)をタイマにセットするとともに演出制御用マイクロコンピュータ100に対してエラー開始コマンドを送信し(エラー報知の開始)、これを受信した演出制御用マイクロコンピュータ100が、音声出力基板70を介してスピーカ27から所定の警告音を出力することにより、エラーの発生を周囲に報知する。そして、CPU56は、4msタイマ割込処理の実行毎にカウンタを更新し(カウンタが所定値に達したときにはタイマも更新し)、タイマがタイムアウトすると(タイマが0となると)、演出制御用マイクロコンピュータ100に対してエラー終了コマンドを送信し(エラー報知の終了)、これを受信した演出制御用マイクロコンピュータ100が、所定の警告音の出力を停止する。
なお、遊技制御用マイクロコンピュータ560は、遊技制御用マイクロコンピュータ560に接続された表示器に所定の表示を行うことにより、エラー報知を行うようにしても良く、例えば、第1特別図柄保留記憶表示器18aおよび第2特別図柄保留記憶表示器18bを全て点滅させる制御を実行することによって、エラーの発生を報知するようにしても良い。
さらに、CPU56は、例えばホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する情報出力処理を行う(ステップS29)。また、CPU56は、情報出力処理において、タイマにセットされたエラー時間が残っているとき(タイマがタイムアウトしていないとき)に、エラー信号を出力するようにしても良い。これによれば、エラー信号が入力される外部装置(例えば各遊技機に対応して設けられるカードユニットや呼出ランプ装置等の遊技用装置、あるいは、遊技情報を集計するホール管理用コンピュータ等の管理装置)において、エラーの発生を報知することも可能となる。
また、CPU56は、第1始動口スイッチ13a、第2始動口スイッチ14aおよびカウントスイッチ23の検出信号にもとづく賞球個数の設定などを行う賞球処理を実行する(ステップS30)。具体的には、第1始動口スイッチ13a、第2始動口スイッチ14aおよびカウントスイッチ23のいずれかがオンしたことにもとづく入賞検出に応じて、払出制御基板37に搭載されている払出制御用マイクロコンピュータに賞球個数を示す払出制御コマンド(賞球個数信号)を出力する。払出制御用マイクロコンピュータは、賞球個数を示す払出制御コマンドに応じて球払出装置97を駆動する。
この実施の形態では、出力ポートの出力状態に対応したRAM領域(出力ポートバッファ)が設けられているのであるが、CPU56は、出力ポートの出力状態に対応したRAM領域におけるソレノイドのオン/オフに関する内容を出力ポートに出力する(ステップS31:出力処理)。
また、CPU56は、特別図柄プロセスフラグの値に応じて特別図柄の演出表示を行うための特別図柄表示制御データを特別図柄表示制御データ設定用の出力バッファに設定する特別図柄表示制御処理を行う(ステップS32)。
さらに、CPU56は、普通図柄プロセスフラグの値に応じて普通図柄の演出表示を行うための普通図柄表示制御データを普通図柄表示制御データ設定用の出力バッファに設定する普通図柄表示制御処理を行う(ステップS33)。CPU56は、例えば、普通図柄の変動に関する開始フラグがセットされると終了フラグがセットされるまで、普通図柄の変動速度が0.2秒ごとに表示状態(「○」および「×」)を切り替えるような速度であれば、0.2秒が経過する毎に、出力バッファに設定される表示制御データの値(例えば、「○」を示す1と「×」を示す0)を切り替える。また、CPU56は、出力バッファに設定された表示制御データに応じて、ステップS22において駆動信号を出力することによって、普通図柄表示器10における普通図柄の演出表示を実行する。
次にCPU56は、所定の羽根開放・閉鎖制御処理を実行する(ステップS33A)。この羽根開放・閉鎖制御処理では、前述の如く、羽根91を閉鎖状態から10分経つと開放状態とし、開放状態から5秒経つと閉鎖状態となるように制御する。具体的には、最初の4msタイマ割込処理が実行されると、図74(c)に示すタイマ更新処理が、カウンタ初期値に0,タイマ初期値に6000(すなわち開放間隔10分=600秒を、カウンタの満了時間100msで除算した値)がセットされた状態でスタートして、まずカウンタを+1し(S1021)、該カウンタのカウント数が前記所定値である25に達したか否かを判定し(S1022)、達していなければ(NO)処理を終了し、達していれば(YES)カウンタを初期値に戻し(S1023)、タイマを−1して(S1024)、該タイマが0であるか否かを判定し(S1025)、タイマが0でなければ(NO)処理を終了し、タイマが0であれば(YES)羽根91を開放する制御を行い(S1026)、タイマ初期値に50(すなわち開放時間5秒を、カウンタの満了時間100msで除算した値)をセットして(S1027)、処理を終了する。これによれば、開放間隔のデータは2バイト分としてタイマにより更新し、それとは別に1バイト分のカウンタを用いて時間を更新するようにしたので、タイマのみを用いる場合に比べて計時できる時間を長くできると共に、該開放間隔のデータ量を増やさないようにすることができる。
S1027でタイマ初期値50がセットされると、図74(d)に示すタイマ更新処理がスタートして、まずカウンタを+1し(S1031)、該カウンタのカウント数が前記所定値である25に達したか否かを判定し(S1032)、達していなければ(NO)処理を終了し、達していれば(YES)カウンタを初期値に戻し(S1033)、タイマを−1して(S1034)、該タイマが0であるか否かを判定し(S1035)、タイマが0でなければ(NO)処理を終了し、タイマが0であれば(YES)羽根91を閉鎖する制御を行い(S1036)、タイマ初期値に前記6000をセットして(S1037)、処理を終了する。このS1037でタイマ初期値6000がセットされると、図74(c)に示すタイマ更新処理がスタートして、以後図74(c)と(d)のタイマ更新処理を繰り返す。このタイマは、遊技領域に設けられる可動物(羽根91)を動作させるための動作時間(開放間隔及び開放時間)を計測するものである。
その後、CPU56は、S33Aの羽根開放・閉鎖制御処理を終了すると、割込許可状態に設定し(ステップS34)、処理を終了する。
以上の制御によって、この実施の形態では、遊技制御処理は4ms毎に起動されることになる。なお、遊技制御処理は、タイマ割込処理におけるステップS21〜S33(ステップS29を除く。)の処理に相当する。また、この実施の形態では、タイマ割込処理で遊技制御処理が実行されているが、タイマ割込処理では例えば割込が発生したことを示すフラグのセットのみがなされ、遊技制御処理はメイン処理において実行されるようにしてもよい。
第1特別図柄表示器8aまたは第2特別図柄表示器8bおよび演出表示装置9にはずれ図柄が停止表示される場合には、演出図柄の可変表示が開始されてから、演出図柄の可変表示状態がリーチ状態にならずに、リーチにならない所定の演出図柄の組み合わせが停止表示されることがある。このような演出図柄の可変表示態様を、可変表示結果がはずれ図柄になる場合における「非リーチ」(「通常はずれ」ともいう)の可変表示態様という。
第1特別図柄表示器8aまたは第2特別図柄表示器8bおよび演出表示装置9にはずれ図柄が停止表示される場合には、演出図柄の可変表示が開始されてから、演出図柄の可変表示状態がリーチ状態となった後にリーチ演出が実行され、最終的に大当り図柄とはならない所定の演出図柄の組み合わせが停止表示されることがある。このような演出図柄の可変表示結果を、可変表示結果が「はずれ」となる場合における「リーチ」(「リーチはずれ」ともいう)の可変表示態様という。
この実施の形態では、第1特別図柄表示器8aまたは第2特別図柄表示器8bに大当り図柄が停止表示される場合には、演出図柄の可変表示状態がリーチ状態になった後にリーチ演出が実行され、最終的に演出表示装置9における「左」、「中」、「右」の各図柄表示エリア9L、9C、9Rに、演出図柄が揃って停止表示される。
第1特別図柄表示器8aまたは第2特別図柄表示器8bに小当りである「5」が停止表示される場合には、演出表示装置9において、演出図柄の可変表示態様が「突然確変大当り」である場合と同様に演出図柄の可変表示が行われた後、所定の小当り図柄(突然確変大当り図柄と同じ図柄。例えば「135」)が停止表示されることがある。第1特別図柄表示器8aまたは第2特別図柄表示器8bに小当り図柄である「5」が停止表示されることに対応する演出表示装置9における表示演出を「小当り」の可変表示態様という。
ここで、小当りとは、大当りと比較して大入賞口の開放回数が少ない回数(この実施の形態では0.1秒間の開放を2回)まで許容される当りである。なお、小当り遊技が終了した場合、遊技状態は変化しない。すなわち、確変状態から通常状態に移行したり通常状態から確変状態に移行したりすることはない。また、突然確変大当りとは、大当り遊技状態において大入賞口の開放回数が少ない回数(この実施の形態では0.1秒間の開放を2回)まで許容されるが大入賞口の開放時間が極めて短い大当りであり、かつ、大当り遊技後の遊技状態を確変状態に移行させるような大当りである(すなわち、そのようにすることにより、遊技者に対して突然に確変状態となったかのように見せるものである)。つまり、この実施の形態では、突然確変大当りと小当りとは、大入賞口の開放パターンが同じである。そのように制御することによって、大入賞口の0.1秒間の開放が2回行われると、突然確変大当りであるか小当りであるかまでは認識できないので、遊技者に対して高確率状態(確変状態)を期待させることができ、遊技の興趣を向上させることができる。
図73は、あらかじめ用意された演出図柄の変動パターンを示す説明図である。図73に示すように、この実施の形態では、変動表示結果が「はずれ」であり演出図柄の変動表示態様が「非リーチ」である場合に対応した変動パターンとして、非リーチPA1−1〜非リーチPA1−4の変動パターンが用意されている。また、変動表示結果が「はずれ」であり演出図柄の変動表示態様が「リーチ」である場合に対応した変動パターンとして、ノーマルPA2−1〜ノーマルPA2−2、ノーマルPB2−1〜ノーマルPB2−2、スーパーPA3−1〜スーパーPA3−2およびスーパーPC3−1、スーパーPB3−1〜スーパーPB3−2の変動パターンが用意されている。なお、図73に示すように、リーチしない場合に使用され擬似連の演出を伴う非リーチPA1−4の変動パターンについては、再変動が1回行われる。リーチする場合に使用され擬似連の演出を伴う変動パターンのうち、ノーマルPB2−1を用いる場合には、再変動が1回行われる。また、リーチする場合に使用され擬似連の演出を伴う変動パターンのうち、ノーマルPB2−2を用いる場合には、再変動が2回行われる。さらに、リーチする場合に使用され擬似連の演出を伴う変動パターンのうち、スーパーPA3−1〜スーパーPA3−2およびスーパーPC3−1を用いる場合には、再変動が3回行われる。なお、再変動とは、演出図柄の変動表示が開始されてから表示結果が導出表示されるまでに一旦はずれとなる演出図柄を仮停止させた後に演出図柄の変動表示を再度実行することである。
また、図73に示すように、この実施の形態では、特別図柄の変動表示結果が大当り図柄または小当り図柄になる場合に対応した変動パターンとして、ノーマルPA2−3〜ノーマルPA2−4、ノーマルPB2−3〜ノーマルPB2−4、スーパーPA3−3〜スーパーPA3−4およびスーパーPC3−2、スーパーPB3−3〜スーパーPB3−4、特殊PG1−1〜特殊PG1−3、特殊PG2−1〜特殊PG2−2の変動パターンが用意されている。なお、図73において、特殊PG1−1〜特殊PG1−3、特殊PG2−1〜特殊PG2−2の変動パターンは、突然確変大当りまたは小当りとなる場合に使用される変動パターンである。また、図73に示すように、突然確変大当りまたは小当りでない場合に使用され擬似連の演出を伴う変動パターンのうち、ノーマルPB2−3を用いる場合には、再変動が1回行われる。また、リーチする場合に使用され擬似連の演出を伴う変動パターンのうち、ノーマルPB2−4を用いる場合には、再変動が2回行われる。さらに、リーチする場合に使用され擬似連の演出を伴う変動パターンのうち、スーパーPA3−3〜スーパーPA3−4およびスーパーPC3−2を用いる場合には、再変動が3回行われる。また、突然確変大当りまたは小当りの場合に使用され擬似連の演出を伴う特殊PG1−3の変動パターンについては、再変動が1回行われる。
なお、この実施の形態では、図73に示すように、リーチの種類に応じて変動時間が固定的に定められている場合(例えば、擬似連ありのスーパーリーチAの場合には変動時間が32.80秒で固定であり、擬似連なしのスーパーリーチAの場合には変動時間が22.80秒で固定である)を示しているが、例えば、同じ種類のスーパーリーチの場合であっても、合算保留記憶数に応じて、変動時間を異ならせるようにしてもよい。例えば、同じ種類のスーパーリーチを伴う場合であっても、合算保留記憶数が多くなるに従って、変動時間が短くなるようにしてもよい。また、例えば、同じ種類のスーパーリーチの場合であっても、第1特別図柄の変動表示を行う場合には、第1保留記憶数に応じて、変動時間を異ならせるようにしてもよく、第2特別図柄の変動表示を行う場合には、第2保留記憶数に応じて、変動時間を異ならせるようにしてもよい。この場合、第1保留記憶数や第2保留記憶数の値ごとに別々の判定テーブルを用意しておき(例えば、保留記憶数0〜2用の変動パターン種別判定テーブルと保留記憶数3,4用の変動パターン種別判定テーブルとを用意しておき)、第1保留記憶数または第2保留記憶数の値に応じて判定テーブルを選択して、変動時間を異ならせるようにしてもよい。
また、この実施の形態では、可変表示結果が「はずれ」であり演出図柄の可変表示態様が「リーチ」である場合に対応した変動パターンとして、スーパーPC3−1の変動パターンが用意されるとともに、可変表示結果が「大当り」である場合に対応した変動パターンとして、スーパーPC3−2の変動パターンが用意されている。これらはいずれもスーパーリーチCの演出を伴う変動パターンであり、特別図柄の変動時間が300秒である場合に対応した変動パターンである。
図52および図53は、ステップS20の電源断処理の一例を示すフローチャートである。電源断処理において、遊技制御用マイクロコンピュータ560は、まず、電源断信号が出力されているか否か(オン状態になっているか否か)確認する(ステップS450)。オン状態でなければ、RAM55に形成されているバックアップ監視タイマの値を0クリアする(ステップS451)。オン状態であれば、バックアップ監視タイマの値を1増やす(ステップS452)。そして、バックアップ監視タイマの値が判定値(例えば2)と一致すれば(ステップS453)、ステップS454以降の電力供給停止時処理すなわち電力の供給停止のための準備処理を実行する。つまり、遊技の進行を制御する状態から遊技状態を保存させるための電力供給停止時処理(電源断時制御処理)を実行する状態に移行する。なお、「RAMに形成されている」とは、RAM内の領域であることを意味する。
バックアップ監視タイマと判定値とを用いることによって、判定値に相当する時間だけ電源断信号のオン状態が継続したら、電力供給停止時処理が開始される。すなわち、ノイズ等で一瞬電源断信号のオン状態が発生しても、誤って電力供給停止時処理が開始されるようなことはない。なお、バックアップ監視タイマの値は、遊技機への電力供給が停止しても、所定期間はバックアップ電源によって保存される。従って、メイン処理におけるステップS8では、バックアップ監視タイマの値が判定値と同じ値になっていることによって、電力供給停止時処理の処理結果が保存されていることを確認できる。
電力供給停止時処理において、遊技制御用マイクロコンピュータ560は、パリティデータを作成する(ステップS454〜S463)。すなわち、まず、クリアデータ(00)をチェックサムデータエリアにセットし(ステップS454)、電力供給停止時でも内容が保存されるべきRAM領域の先頭アドレスに相当するチェックサム算出開始アドレスをポインタにセットする(ステップS455)。また、電力供給停止時でも内容が保存されるべきRAM領域の最終アドレスに相当するチェックサム算出回数をセットする(ステップS456)。
次いで、チェックサムデータエリアの内容とポインタが指すRAM領域の内容との排他的論理和を演算する(ステップS457)。演算結果をチェックサムデータエリアにストアするとともに(ステップS458)、ポインタの値を1増やし(ステップS459)、チェックサム算出回数の値を1減算する(ステップS460)。そして、ステップS457〜S460の処理を、チェックサム算出回数の値が0になるまで繰り返す(ステップS461)。
チェックサム算出回数の値が0になったら、遊技制御用マイクロコンピュータ560は、チェックサムデータエリアの内容の各ビットの値を反転する(ステップS462)。そして、反転後のデータをチェックサムデータエリアにストアする(ステップS463)。このデータが、電源投入時にチェックされるパリティデータになる。次いで、RAMアクセスレジスタにアクセス禁止値を設定する(ステップS471)。以後、内蔵RAM55のアクセスができなくなる。
さらに、遊技制御用マイクロコンピュータ560は、ROM54に格納されているポートクリア設定テーブルの先頭アドレスをポインタにセットする(ステップS472)。ポートクリア設定テーブルにおいて、先頭アドレスには処理数(クリアすべき出力ポートの数)が設定され、次いで、出力ポートのアドレスおよび出力値データ(クリアデータ:出力ポートの各ビットのオフ状態の値)が、処理数分の出力ポートについて順次設定されている。
遊技制御用マイクロコンピュータ560は、ポインタが指すアドレスのデータ(すなわち処理数)をロードする(ステップS473)。また、ポインタの値を1増やし(ステップS474)、ポインタが指すアドレスのデータ(すなわち出力ポートのアドレス)をロードする(ステップS475)。さらに、ポインタの値を1増やし(ステップS476)、ポインタが指すアドレスのデータ(すなわち出力値データ)をロードする(ステップS477)。そして、出力値データを出力ポートに出力する(ステップS478)。その後、処理数を1減らし(ステップS479)、処理数が0でなければステップS474に戻マ割込を停止し(ステップS481)、ループ処理に入る。なお、出力ポートをクリアする処理をチェックサムデータを作成する処理の前に実行してもよい。例えば、CPU56は、ステップS453でYと判定した後、直ちにステップS472〜S480の出力ポートクリアの処理を実行するようにしてもよい。
ループ処理では、電源断信号がオフ状態になったか否かを監視する(ステップS482)。そして、電源断信号がオン状態の間は(ステップS482のY)、ステップS482の処理を繰り返し実行して待機する。
これに対して、ステップS482にて電源断信号がオフ状態となったときには(ステップS482のN)、所定の電断復旧時における設定を行った後(ステップS487)、図50に示すメイン処理の先頭にリターンする。一例として、ステップS487の処理では、CPU56に内蔵されたスタックポインタに電源断復旧時ベクタテーブルの記憶アドレスを格納し、遊技制御用タイマ割込み処理から復帰(リターン)させる。ここで、電源断復旧時ベクタテーブルは、ROM54に記憶された制御コード(遊技制御プログラム)の先頭アドレスを指定するものであればよい。図51に示すタイマ割込処理のような割込処理から復帰(リターン)するときには、スタックポインタで指定されるアドレスの記憶データが復帰アドレスとして読み出される。こうして、ステップS487の処理を実行した後には、CPU56により、ROM54に記憶されている制御コードの先頭から、遊技制御の実行を開始(再開)させることができる。
以上の処理によって、電力供給が停止する場合には、ステップS454〜S481の電力供給停止時処理が実行され、電力供給停止時処理が実行されたことを示すデータ(判定値になっているバックアップ監視タイマのおよびチェックサム)がバックアップRAMへストアされ、RAMアクセスが禁止状態にされ、出力ポートがクリアされ、かつ、遊技制御処理を実行するためのタイマ割込が禁止状態に設定される。
なお、この実施の形態では、電源断処理においてチェックデータの生成や出力ポートクリアなどの処理を終了した後、ステップS482で繰り返し電源断信号の入力を確認する電源断待ちループに移行するが、このような電源断信号の入力を確認する構成とはしないようにしてもよい。この場合、例えば、ウオッチドッグタイマ(WTD)506bをユーザプログラムによって起動できるように設定した上で、電源断待ちループに入るときにウオッチドッグタイマ(WTD)506bを起動させるようにし、遊技機が完全に電源断状態とならず電源の電圧値が完全に落ちきらないときにはウオッチドッグタイマ(WTD)506bからのタイムアウト信号によるリセットが発生するようにしてもよい。
また、例えば、遊技機への電源投入時に電源断信号が入力されているか否かを確認し、入力されていれば無限ループに移行したり、その無限ループにおいて電源断信号の入力を確認し、その入力がなくなるまで無限ループを継続したりするように構成されている場合、上記と同様の態様で無限ループに入るときにウオッチドッグタイマ(WTD)506bを起動させ、同様の処理を行うように構成してもよい。
なお、ウオッチドッグタイマ(WTD)506bを起動させるように設定している場合には(ただし、上記のように電源断待ちループでのみウオッチドッグタイマ(WTD)506bを起動させるものを除く)、正常にCPU56が動作しているときにはタイムアウトしないように、ウオッチドッグタイマ(WTD)506bをクリアする信号を出力するようにプログラムされる。具体的には、内蔵レジスタエリアに設けられているWDTクリアレジスタ(図示せず)にクリアするための値を書き込むようにプログラムされる。
この実施の形態では、RAM55がバックアップ電源によって電源バックアップ(遊技機への電力供給が停止しても所定期間はRAM55の内容が保存されこと)されている。この例では、ステップS452〜S479の処理によって、バックアップ監視タイマの値とともに、電源断信号が出力されたときのRAM55の内容にもとづくチェックサムもRAM55のバックアップ領域に保存される。遊技機への電力供給が停止した後、所定期間内に電力供給が復旧したら、遊技制御手段は、上述したステップS41〜S44の処理によって、RAM55に保存されているデータ(電力供給が停止した直前の遊技制御手段による制御状態である遊技状態を示すデータ(例えば、プロセスフラグの状態、大当り中フラグの状態、確変フラグの状態、出力ポートの出力状態等)を含む)に従って、遊技状態を、電力供給が停止した直前の状態に戻すことができる。なお、電力供給停止の期間が所定期間を越えたらバックアップ監視タイマの値とチェックサムとが正規の値とは異なるはずであるから、その場合には、ステップS10〜S13の初期化処理が実行される。
以上のように、電力供給停止時処理(電力の供給停止のための準備処理)によって、遊技状態を電力供給が停止した直前の状態に戻すためのデータが確実に変動データ記憶手段(この例ではRAM55の一部の領域)に保存される。よって、停電等による電源断が生じても、所定期間内に電源が復旧すれば、遊技状態を電力供給が停止した直前の状態に戻すことができる。
また、電源断信号がオフ状態になった場合には、ステップS1に戻る。その場合、電力供給停止時処理が実行されたことを示すデータが設定されているので、ステップS41〜S44の復旧処理が実行される。よって、電力供給停止時処理を実行した後に払出制御基板37からの電源断信号がオフ状態になったときには、遊技の進行を制御する状態に戻る。従って、電源瞬断等が生じても、遊技制御処理が停止してしまうようなことはなく、自動的に、遊技制御処理が続行される。
なお、図48、図50〜図53に示すような態様で遊技機が動作することによって、この実施の形態では、所定の処理(本例では、図50に示すメイン処理のステップS16〜S19のループ処理と、図51のタイマ割込処理)の実行中に所定事象が発生(IAT回路506aからIAT信号を入力、ウオッチドッグタイマ(WDT)506bからタイムアウト信号を入力)したときにRAM55(バックアップRAM)の記憶内容を初期化する初期化処理を実行する。具体的には、図50に示すメイン処理のステップS16〜S19のループ処理や、図51のタイマ割込処理の実行中に、IAT回路506aからIAT信号や、ウオッチドッグタイマ(WDT)506bからタイムアウト信号を入力したときには、図52および図53に示す電源断処理が実行されることなく、システムリセットまたはユーザリセット(図48のステップS1004,S1014参照)が発生することになる。そして、システムリセットが発生した後にはセキュリティチェックを実行した後にステップS1007でユーザモードに移行されて図50に示すメイン処理の実行が再び開始され、ユーザリセットが発生した後にはステップS1015でユーザプログラムの先頭に戻り図50に示すメイン処理の実行が再び開始されるのであるが、バックアップ監視タイマ(または、バックアップフラグ)およびチェックデータのいずれもセットされていないことから、図50に示すメイン処理でステップS10に移行して初期化処理が実行されることになる。
なお、「所定の処理」とは、遊技機への電源投入時の初期化処理や復旧処理が実行された後、遊技可能となった状態で実行されている処理であり、上記に説明したように、具体的には、図50に示すメイン処理のステップS16〜S19のループ処理と、図51のタイマ割込処理とが該当する。ただし、電源電圧低下により電源断処理が実行されているときは所定の処理からは除かれる。
なお、図48、図50〜図53に示すような態様で遊技機が動作することによって、電力供給停止時処理(本例では、図52および図53に示す電源断処理)を実行した後に所定事象が発生(IAT回路506aからIAT信号を入力、ウオッチドッグタイマ(WDT)506bからタイムアウト信号を入力)したときに、RAM55(バックアップRAM)の記憶内容にもとづいて制御状態を電力供給停止時処理を開始したときの状態に復旧させる復旧処理を実行する。具体的には、電源断信号を入力したことにもとづいて図52および図53に示す電源断処理を実行して図53のループ処理を実行しているときに、ちょうどIAT回路506aからIAT信号や、ウオッチドッグタイマ(WDT)506bからタイムアウト信号を入力したときには(ただし、IAT回路506aからIAT信号した場合には、何らかの原因で指定エリア外のプログラムを実行している状態となってしまった場合であるので、より正確には、電源断処理のループ処理に一度移行した後にIAT回路506aからIAT信号した場合に相当する)、IAT信号やタイムアウト信号を入力したことにもとづいてシステムリセットまたはユーザリセット(図48のステップS1004,S1014参照)が発生することになる。そして、システムリセットが発生した後にはセキュリティチェックを実行した後にステップS1007でユーザモードに移行されて図50に示すメイン処理の実行が再び開始され、ユーザリセットが発生した後にはステップS1015でユーザプログラムの先頭に戻り図50に示すメイン処理の実行が再び開始されるのであるが、バックアップ監視タイマ(または、バックアップフラグ)およびチェックデータの両方がセットされていることから、図50に示すメイン処理でステップS7およびステップS8でいずれもYと判定されてステップS41〜S44の復旧処理が実行されることになる。
図54は、この実施の形態で用いられる各ソフトウェア乱数を示す説明図である。各ソフトウェア乱数は、以下のように使用される。なお、前述したように、この実施の形態では、大当りとするか否かを判定するための大当り判定用乱数(ランダムR)については、16ビット乱数回路508bが出力するハードウェア乱数が用いられる。
(1)ランダム1(MR1):大当りの種類(後述する通常大当り、確変大当り、突然確変大当り)を決定する(大当り種別判定用)
(2)ランダム2(MR2):変動パターンの種類(種別)を決定する(変動パターン種別判定用)
(3)ランダム3(MR3):変動パターン(変動時間)を決定する(変動パターン判定用)
(4)ランダム4(MR4):普通図柄にもとづく当りを発生させるか否か決定する(普通図柄当り判定用)
(5)ランダム5(MR5):ランダム4の初期値を決定する(ランダム4初期値決定用)
なお、この実施の形態では、大当り判定用乱数(ランダムR)についてのみ乱数回路から抽出したハードウェア乱数を用い、それ以外の乱数についてはソフトウェア乱数を用いる場合を示しているが、この実施の形態で示したものにかぎられない。例えば、大当り判定用乱数(ランダムR)に加えて図54に示すランダム1〜5の全てについて乱数回路から抽出したハードウェア乱数を用いるようにしてもよい。また、図54に示すランダム1〜5のうちの一部の乱数についてのみ乱数回路から抽出したハードウェア乱数を用い、それ以外についてはソフトウェア乱数を用いるように構成しても構わない。
なお、この実施の形態では、変動パターンは、まず、変動パターン種別判定用乱数(ランダム2)を用いて変動パターン種別を決定し、変動パターン判定用乱数(ランダム3)を用いて、決定した変動パターン種別に含まれるいずれかの変動パターンに決定する。そのように、この実施の形態では、2段階の抽選処理によって変動パターンが決定される。
なお、変動パターン種別とは、複数の変動パターンをその変動態様の特徴に従ってグループ化したものである。例えば、複数の変動パターンをリーチの種類でグループ化して、ノーマルリーチを伴う変動パターンを含む変動パターン種別と、スーパーリーチAを伴う変動パターンを含む変動パターン種別と、スーパーリーチBを伴う変動パターンを含む変動パターン種別と、スーパーリーチCを伴う変動パターンを含む変動パターン種別とに分けてもよい。また、例えば、複数の変動パターンを擬似連の再変動の回数でグループ化して、擬似連を伴わない変動パターンを含む変動パターン種別と、再変動1回の変動パターンを含む変動パターン種別と、再変動2回の変動パターンを含む変動パターン種別と、再変動3回の変動パターンを含む変動パターン種別とに分けてもよい。また、例えば、複数の変動パターンを擬似連や滑り演出などの特定演出の有無でグループ化してもよい。
図51に示された遊技制御処理におけるステップS23では、遊技制御用マイクロコンピュータ560は、(1)の大当り種別判定用乱数、および(4)の普通図柄当り判定用乱数を生成するためのカウンタのカウントアップ(1加算)を行う。すなわち、それらが判定用乱数であり、それら以外の乱数が表示用乱数(ランダム2、ランダム3)または初期値用乱数(ランダム5)である。なお、遊技効果を高めるために、上記の乱数以外の乱数も用いてもよい。例えば、大当り種別判定用乱数(ランダム1)の初期値を決定するための初期値決定用乱数を設けるようにしてもよい。また、この実施の形態では、大当り判定用乱数として、遊技制御用マイクロコンピュータ560に内蔵されたハードウェア(遊技制御用マイクロコンピュータ560の外部のハードウェアでもよい。)が生成する乱数を用いる。
図55(A)は、大当り判定テーブルを示す説明図である。大当り判定テーブルとは、ROM54に記憶されているデータの集まりであって、ランダムRと比較される大当り判定値が設定されているテーブルである。大当り判定テーブルには、通常状態(確変状態でない遊技状態)において用いられる通常時大当り判定テーブルと、確変状態において用いられる確変時大当り判定テーブルとがある。通常時大当り判定テーブルには、図55(A)の左欄に記載されている各数値が設定され、確変時大当り判定テーブルには、図55(A)の右欄に記載されている各数値が設定されている。図55(A)に記載されている数値が大当り判定値である。
図55(B),(C)は、小当り判定テーブルを示す説明図である。小当り判定テーブルとは、ROM54に記憶されているデータの集まりであって、ランダムRと比較される小当り判定値が設定されているテーブルである。小当り判定テーブルには、第1特別図柄の変動表示を行うときに用いられる小当り判定テーブル(第1特別図柄用)と、第2特別図柄の変動表示を行うときに用いられる小当り判定テーブル(第2特別図柄用)とがある。各数値が設定されている。また、図55(B),(C)に記載されている数値が小当り判定値である。
なお、第1特別図柄の変動表示を行う場合にのみ小当りと決定するようにし、第2特別図柄の変動表示を行う場合には小当りを設けないようにしてもよい。この場合、図55(C)に示す第2特別図柄用の小当り判定テーブルは設けなくてもよい。この実施の形態では、遊技状態が確変状態に移行されているときには主として第2特別図柄の変動表示が実行される。遊技状態が確変状態に移行されているときにも小当りが発生するようにし、確変となるか否かを煽る演出を行うように構成すると、現在の遊技状態が確変状態であるにもかかわらず却って遊技者に煩わしさを感じさせてしまう。そこで、第2特別図柄の変動表示中は小当りが発生しないように構成すれば、遊技状態が確変状態である場合には小当りが発生しにくくし必要以上に確変に対する煽り演出を行わないようにすることができ、遊技者に煩わしさを感じさせる事態を防止することができる。
CPU56は、所定の時期に、16ビット乱数回路508bのカウント値を抽出して抽出値を大当り判定用乱数(ランダムR)の値とするのであるが、大当り判定用乱数値が図55(A)に示すいずれかの大当り判定値に一致すると、特別図柄に関して大当り(後述する15R確変大当り、7R確変大当り、突然確変大当り)にすることに決定する。また、大当り判定用乱数値が図55(B),(C)に示すいずれかの小当り判定値に一致すると、特別図柄に関して小当りにすることに決定する。なお、図55(A)に示す「確率」は、大当りになる確率(割合)を示す。また、図55(B),(C)に示す「確率」は、小当りになる確率(割合)を示す。また、大当りにするか否か決定するということは、大当り遊技状態に移行させるか否か決定するということであるが、第1特別図柄表示器8aまたは第2特別図柄表示器8bにおける停止図柄を大当り図柄にするか否か決定するということでもある。また、小当りにするか否か決定するということは、小当り遊技状態に移行させるか否か決定するということであるが、第1特別図柄表示器8aまたは第2特別図柄表示器8bにおける停止図柄を小当り図柄にするか否か決定するということでもある。
なお、この実施の形態では、図55(B),(C)に示すように、小当り判定テーブル(第1特別図柄用)を用いる場合には300分の1の割合で小当りと決定されるのに対して、小当り判定テーブル(第2特別図柄)を用いる場合には3000分の1の割合で小当りと決定される場合を説明する。従って、この実施の形態では、第1始動入賞口13に始動入賞して第1特別図柄の変動表示が実行される場合には、第2始動入賞口14に始動入賞して第2特別図柄の変動表示が実行される場合と比較して、「小当り」と決定される割合が高い。
図55(D),(E)は、ROM54に記憶されている大当り種別判定テーブル131a,131bを示す説明図である。このうち、図55(D)は、遊技球が第1始動入賞口13に入賞したことにもとづく保留記憶を用いて(すなわち、第1特別図柄の変動表示が行われるとき)大当り種別を決定する場合の大当り種別判定テーブル(第1特別図柄用)131aである。また、図55(E)は、遊技球が第2始動入賞口14に入賞したことにもとづく保留記憶を用いて(すなわち、第2特別図柄の変動表示が行われるとき)大当り種別を決定する場合の大当り種別判定テーブル(第2特別図柄用)131bである。
大当り種別判定テーブル131a,131bは、可変表示結果を大当り図柄にする旨の判定がなされたときに、大当り種別判定用の乱数(ランダム1)にもとづいて、大当りの種別を「15R確変大当り」、「7R確変大当り」、「突然確変大当り」のうちのいずれかに決定するために参照されるテーブルである。なお、この実施の形態では、図55(D),(E)に示すように、大当り種別判定テーブル131aには「突然確変大当り」に対して5個の判定値が割り当てられている(40分の5の割合で突然確変大当りと決定される)のに対して、大当り種別判定テーブル131bには「突然確変大当り」に対して1個の判定値が割り当てられている(40分の1の割合で突然確変大当りと決定される)場合を説明する。従って、この実施の形態では、第1始動入賞口13に始動入賞して第1特別図柄の変動表示が実行される場合には、第2始動入賞口14に始動入賞して第2特別図柄の変動表示が実行される場合と比較して、「突然確変大当り」と決定される割合が高い。なお、第1特別図柄用の大当り種別判定テーブル131aにのみ「突然確変大当り」を振り分けるようにし、第2特別図柄用の大当り種別判定テーブル131bには「突然確変大当り」の振り分けを行わない(すなわち、第1特別図柄の変動表示を行う場合にのみ、「突然確変大当り」と決定される場合がある)ようにしてもよい。
また、図55(D),(E)に示すように、この実施の形態では、大当り種別判定テーブル131bの方が、大当り種別判定テーブル131aと比較して、「15R確変大当り」に対して多くの判定値が割り振られている。従って、この実施の形態では、第2始動入賞口14や第3始動入賞口17に始動入賞して第2特別図柄の変動表示が実行される場合には、第1始動入賞口13に始動入賞して第1特別図柄の変動表示が実行される場合と比較して、有利な「15R確変大当り」となる割合が高い。
なお、この実施の形態では、第2特別図柄の変動表示が実行される場合の方が第1特別図柄の変動表示が実行される場合と比較し有利となる場合を示したが、例えば、大当り種別判定テーブル131aと大当り種別判定テーブル131bとの割り振りを同じにして、第1特別図柄の変動表示を行う場合と第2特別図柄の変動表示を行う場合とで有利度が同じになるように構成してもよい。
この実施の形態では、図55(D),(E)に示すように、大当り種別として、「15R確変大当り」、「7R確変大当り」および「突然確変大当り」がある。なお、この実施の形態では、大当り遊技において実行されるラウンド数が15ラウンド、7ラウンドおよび2ラウンドの3種類である場合を示しているが、大当り遊技において実行されるラウンド数は、この実施の形態で示したものに限られない。例えば、10ラウンドの大当り遊技に制御する10R確変大当りや、5ラウンドの大当り遊技に制御する5R確変大当りが設けられていてもよい。また、この実施の形態では、大当り種別が「15R確変大当り」、「7R確変大当り」および「突然確変大当り」の3種類である場合を示しているが、3種類にかぎらず、例えば、4種類以上の大当り種別を設けるようにしてもよい。また、逆に、大当り種別が3種類よりも少なくてもよく、例えば、大当り種別として2種類のみ設けられていてもよい。また、この実施の形態では、大当り種別として、大当り遊技後に確変状態に移行される確変大当りのみが設けられているが、大当り遊技後に確変状態に移行されずに通常状態に移行される通常大当りを設けるようにしてもよい。
「15R確変大当り」とは、15ラウンドの大当り遊技状態に制御し、その大当り遊技状態の終了後に確変状態に移行させる大当りである(この実施の形態では、確変状態に移行されるとともに時短状態にも移行される。後述するステップS166参照)。そして、確変状態に移行した後、変動表示を所定回数(この実施の形態では70回)終了すると確変状態(および時短状態)が終了する(ステップS167,S141〜S144参照)。なお、変動表示を所定回数終了する前であっても、次の大当りが発生した場合にも、確変状態(および時短状態)を終了する(ステップS132参照)。
また、「7R確変大当り」とは、7ラウンドの大当り遊技状態に制御し、その大当り遊技状態の終了後に確変状態に移行させる大当りである(この実施の形態では、確変状態に移行されるとともに時短状態にも移行される。後述するステップS166参照)。そして、確変状態に移行した後、変動表示を所定回数(この実施の形態では70回)終了すると確変状態(および時短状態)が終了する(ステップS167,S141〜S144参照)。なお、変動表示を所定回数終了する前であっても、次の大当りが発生した場合にも、確変状態(および時短状態)を終了する(ステップS132参照)。
また、「突然確変大当り」とは、「15R確変大当り」や「7R確変大当り」と比較して大入賞口の開放回数が少ない回数(この実施の形態では0.1秒間の開放を2回)まで許容される大当りである。すなわち、「突然確変大当り」となった場合には、2ラウンドの大当り遊技状態に制御される。また、「15R確変大当り」や「7R確変大当り」では、1ラウンドあたりの大入賞口の開放時間が29秒と長いのに対して、「突然確変大当り」では1ラウンドあたりの大入賞口の開放時間が0.1秒と極めて短く、大当り遊技中に大入賞口に遊技球が入賞することは殆ど期待できない。そして、この実施の形態では、その突然確変大当り遊技状態の終了後に確変状態に移行される(この実施の形態では、確変状態に移行されるとともに時短状態にも移行される。後述するステップS166参照)。そして、確変状態に移行した後、変動表示を所定回数(この実施の形態では70回)終了すると確変状態(および時短状態)が終了する(ステップS167,S141〜S144参照)。なお、変動表示を所定回数終了する前であっても、次の大当りが発生した場合にも、確変状態(および時短状態)を終了する(ステップS132参照)。
なお、前述したように、この実施の形態では、「小当り」となった場合にも、大入賞口の開放が0.1秒間ずつ2回行われ、「突然確変大当り」による大当り遊技状態と同様の制御が行われる。そして、「小当り」となった場合には、大入賞口の2回の開放が終了した後、遊技状態は変化せず、「小当り」となる前の遊技状態が維持される。そのようにすることによって、「突然確変大当り」であるか「小当り」であるかを認識できないようにし、遊技の興趣を向上させている。なお、この実施の形態のように大当り種別が全て確変大当りであるように構成する場合、小当りを設けなくてもよい。また、この実施の形態のように大当り種別が全て確変大当りである場合に小当りを設けるように構成する場合には、確変状態(高確率状態)に移行されるのみで時短状態(高ベース状態)を伴わない突然確変大当りを設けるようにすること(大入賞口の開放パターンも突然確変大当りと小当りの場合とで同じにすること)が好ましい。
大当り種別判定テーブル131a,131bには、ランダム1の値と比較される数値であって、「15R確変大当り」、「7R確変大当り」、「突然確変大当り」のそれぞれに対応した判定値(大当り種別判定値)が設定されている。CPU56は、ランダム1の値が大当り種別判定値のいずれかに一致した場合に、大当りの種別を、一致した大当り種別判定値に対応する種別に決定する。
図56および図57は、主基板31に搭載される遊技制御用マイクロコンピュータ560(具体的には、CPU56)が実行する特別図柄プロセス処理(ステップS26)のプログラムの一例を示すフローチャートである。上述したように、特別図柄プロセス処理では第1特別図柄表示器8aまたは第2特別図柄表示器8bおよび大入賞口を制御するための処理が実行される。特別図柄プロセス処理において、CPU56は、第1始動入賞口13に遊技球が入賞したことを検出するための第1始動口スイッチ13aがオンしていたら、すなわち、第1始動入賞口13への始動入賞が発生していたら、第1始動口スイッチ通過処理を実行する(ステップS311,S312)。また、CPU56は、第2始動入賞口14に遊技球が入賞したことを検出するための第2始動口スイッチ14aがオンしていたら、すなわち第2始動入賞口14への始動入賞が発生していたら、第2始動口スイッチ通過処理を実行する(ステップS313,S314)。そして、ステップS300〜S310のうちのいずれかの処理を行う。第1始動入賞口スイッチ13aまたは第2始動口スイッチ14aがオンしていなければ、内部状態に応じて、ステップS300〜S310のうちのいずれかの処理を行う。
ステップS300〜S310の処理は、以下のような処理である。
特別図柄通常処理(ステップS300):特別図柄プロセスフラグの値が0であるときに実行される。遊技制御用マイクロコンピュータ560は、特別図柄の可変表示が開始できる状態になると、保留記憶数バッファに記憶される数値データの記憶数(合算保留記憶数)を確認する。保留記憶数バッファに記憶される数値データの記憶数は合算保留記憶数カウンタのカウント値により確認できる。また、合算保留記憶数カウンタのカウント値が0でなければ、大当り判定用乱数(ランダムR)を用いた抽選処理を実行することにより、第1特別図柄または第2特別図柄の可変表示の表示結果を大当り(または小当り)とするか否かを決定する。大当りとする場合には大当りフラグをセットする。また小当りとする場合には小当りフラグをセットする。そして、内部状態(特別図柄プロセスフラグ)をステップS301に応じた値(この例では1)に更新する。なお、大当りフラグは、大当り遊技が終了するときにリセットされる。また、小当りフラグは、小当り遊技が終了するときにリセットされる。
変動パターン設定処理(ステップS301):特別図柄プロセスフラグの値が1であるときに実行される。また、変動パターンを決定し、その変動パターンにおける変動時間(可変表示時間:可変表示を開始してから表示結果を導出表示(停止表示)するまでの時間)を特別図柄の可変表示の変動時間とすることに決定する。また、特別図柄の変動時間を計測する変動時間タイマをスタートさせる。そして、内部状態(特別図柄プロセスフラグ)をステップS302に対応した値(この例では2)に更新する。
表示結果指定コマンド送信処理(ステップS302):特別図柄プロセスフラグの値が2であるときに実行される。演出制御用マイクロコンピュータ100に、表示結果指定コマンドを送信する制御を行う。そして、内部状態(特別図柄プロセスフラグ)をステップS303に対応した値(この例では3)に更新する。
特別図柄変動中処理(ステップS303):特別図柄プロセスフラグの値が3であるときに実行される。変動パターン設定処理で選択された変動パターンの変動時間が経過(ステップS301でセットされる変動時間タイマがタイムアウトすなわち変動時間タイマの値が0になる)すると、演出制御用マイクロコンピュータ100に、図柄確定指定コマンドを送信する制御を行い、内部状態(特別図柄プロセスフラグ)をステップS304に対応した値(この例では4)に更新する。なお、演出制御用マイクロコンピュータ100は、遊技制御用マイクロコンピュータ560が送信する図柄確定指定コマンドを受信すると演出表示装置9において第4図柄が停止されるように制御する。
このように、変動パターン設定処理で選択された変動パターンに応じた変動時間の変動表示が実行されることになるが、この変動時間の計測において、変動時間タイマがセットされて、該変動時間タイマがタイムアウトしたときに表示結果が導出表示される。具体的には、変動パターン設定処理(S301)において、図73に示す特図変動時間(例えば非リーチPA1−1の変動パターンであれば、特図変動時間5.80秒をカウンタの満了時間100msで除算した58)がタイマにセットされており、特別図柄変動中処理(S303)が実行されるごとに図74(a)に示すタイマ更新処理が実行されて、まずカウンタを+1し(S1001)、該カウンタのカウント数が前記所定値である25に達したか否かを判定し(S1002)、達していなければ(NO)処理を終了し、達していれば(YES)カウンタを初期値に戻し(S1003)、タイマを−1して(S1004)、該タイマが0であるか否かを判定し(S1005)、タイマが0でなければ(NO)処理を終了し、タイマが0であれば(YES)特別図柄プロセスフラグの値をステップS304の特別図柄停止処理に対応した値(この例では4)に更新して(S1006)、処理を終了する。これによれば、変動パターンのデータは2バイト分としてタイマにより更新し、それとは別に1バイト分のカウンタを用いて時間を更新するようにしたので、タイマのみを用いる場合に比べて計時できる時間を長くできると共に、変動パターンのデータ量を増やさないようにすることができる。
特別図柄停止処理(ステップS304):特別図柄プロセスフラグの値が4であるときに実行される。大当りフラグがセットされている場合に、内部状態(特別図柄プロセスフラグ)をステップS305に対応した値(この例では5)に更新する。また、小当りフラグがセットされている場合には、内部状態(特別図柄プロセスフラグ)をステップS308に対応した値(この例では8)に更新する。大当りフラグおよび小当りフラグのいずれもセットされていない場合には、内部状態(特別図柄プロセスフラグ)をステップS300に対応した値(この例では0)に更新する。なお、この実施の形態では、特別図柄プロセスフラグの値が4となったことにもとづいて、後述するように、特別図柄表示制御処理において特別図柄の停止図柄を停止表示するための特別図柄表示制御データが特別図柄表示制御データ設定用の出力バッファに設定され、ステップS22の表示制御処理において出力バッファの設定内容に応じて実際に特別図柄の停止図柄が停止表示される。
大入賞口開放前処理(ステップS305):特別図柄プロセスフラグの値が5であるときに実行される。大入賞口開放前処理では、大入賞口を開放する制御を行う。具体的には、カウンタ(例えば、大入賞口に入った遊技球数をカウントするカウンタ)などを初期化するとともに、ソレノイド21を駆動して大入賞口を開放状態にする。また、タイマによって大入賞口開放中処理の実行時間を設定し、内部状態(特別図柄プロセスフラグ)をステップS306に対応した値(この例では6)に更新する。なお、大入賞口開放前処理は各ラウンド毎に実行されるが、第1ラウンドを開始する場合には、大入賞口開放前処理は大当り遊技を開始する処理でもある。
大入賞口開放中処理(ステップS306):特別図柄プロセスフラグの値が6であるときに実行される。大当り遊技状態中のラウンド表示の演出制御コマンドを演出制御用マイクロコンピュータ100に送信する制御や大入賞口の閉成条件の成立を確認する処理等を行う。大入賞口の閉成条件が成立し、かつ、まだ残りラウンドがある場合には、内部状態(特別図柄プロセスフラグ)をステップS305に対応した値(この例では5)に更新する。また、全てのラウンドを終えた場合には、内部状態(特別図柄プロセスフラグ)をステップS307に対応した値(この例では7)に更新する。
大当り終了処理(ステップS307):特別図柄プロセスフラグの値が7であるときに実行される。大当り遊技状態が終了したことを遊技者に報知する表示制御を演出制御用マイクロコンピュータ100に行わせるための制御を行う。また、遊技状態を示すフラグ(例えば、確変フラグや時短フラグ)をセットする処理を行う。そして、内部状態(特別図柄プロセスフラグ)をステップS300に対応した値(この例では0)に更新する。
小当り開放前処理(ステップS308):特別図柄プロセスフラグの値が8であるときに実行される。小当り開放前処理では、大入賞口を開放する制御を行う。具体的には、カウンタ(例えば、大入賞口に入った遊技球数をカウントするカウンタ)などを初期化するとともに、ソレノイド21を駆動して大入賞口を開放状態にする。また、タイマによって大入賞口開放中処理の実行時間を設定し、内部状態(特別図柄プロセスフラグ)をステップS309に対応した値(この例では9)に更新する。なお、小当り開放前処理は各ラウンド毎に実行されるが、第1ラウンドを開始する場合には、小当り開放前処理は小当り遊技を開始する処理でもある。
小当り開放中処理(ステップS309):特別図柄プロセスフラグの値が9であるときに実行される。大入賞口の閉成条件の成立を確認する処理等を行う。大入賞口の閉成条件が成立し、かつ、まだ残りラウンドがある場合には、内部状態(特別図柄プロセスフラグ)をステップS308に対応した値(この例では8)に更新する。また、全てのラウンドを終えた場合には、内部状態(特別図柄プロセスフラグ)をステップS310に対応した値(この例では10(10進数))に更新する。
小当り終了処理(ステップS310):特別図柄プロセスフラグの値が10であるときに実行される。小当り遊技状態が終了したことを遊技者に報知する表示制御を演出制御用マイクロコンピュータ100に行わせるための制御を行う。そして、内部状態(特別図柄プロセスフラグ)をステップS300に対応した値(この例では0)に更新する。
図58は、ステップS312,S314の始動口スイッチ通過処理を示すフローチャートである。このうち、図58(A)は、ステップS312の第1始動口スイッチ通過処理を示すフローチャートである。また、図58(B)は、ステップS314の第2始動口スイッチ通過処理を示すフローチャートである。
まず、図58(A)を参照して第1始動口スイッチ通過処理について説明する。第1始動口スイッチ13aがオン状態の場合に実行される第1始動口スイッチ通過処理において、CPU56は、第1保留記憶数が上限値に達しているか否か(具体的には、第1保留記憶数をカウントするための第1保留記憶数カウンタの値が4でるか否か)を確認する(ステップS201A)。
第1保留記憶数が上限値に達していなければ、CPU56は、第1保留記憶数カウンタの値を1増やす(ステップS202A)とともに、合算保留記憶数をカウントするための合算保留記憶数カウンタの値を1増やす(ステップS203A)。
次いで、CPU56は、ソフトウェア乱数(大当り種別判定用乱数(ランダム1)、変動パターン種別判定用乱数(ランダム2)および変動パターン判定用乱数(ランダム3))を生成するための各カウンタから値を抽出する(ステップS204A)。また、CPU56は、チャネル0の16ビット乱数回路508bが用いるRL0ハードラッチ乱数値レジスタ0(RL0HV0)から、大当り判定用乱数(ランダムR)としての数値データを抽出する(ステップS205A)。
なお、既に、図25で説明したように、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット2−0の設定内容によりいずれの端子からの信号(ラッチ信号)にもとづいて、RL0ハードラッチ乱数値レジスタ0(RL0HV0)に乱数値をラッチさせるかが設定されている。また、この実施の形態では、その設定された端子には、第1始動口スイッチ13aからの検出信号がラッチ信号として入力されているものとし、第1始動入賞口13への始動入賞が発生したタイミングでRL0ハードラッチ乱数値レジスタ0(RL0HV0)に乱数値をラッチできるように構成されている。
そして、CPU56は、抽出したそれらのソフトウェア乱数および大当り判定用乱数(ランダムR)を、第1保留記憶バッファ(図59参照)における保存領域に格納する処理を実行する(ステップS206A)。なお、変動パターン判定用乱数(ランダム3)を第1始動口スイッチ通過処理(始動入賞時)において抽出して保存領域にあらかじめ格納しておくのではなく、第1特別図柄の変動開始時に抽出するようにしてもよい。例えば、遊技制御用マイクロコンピュータ560は、後述する変動パターン設定処理において、変動パターン判定用乱数(ランダム3)を生成するための変動パターン判定用乱数カウンタから値を直接抽出するようにしてもよい。
図59は、保留記憶に対応する乱数等を保存する領域(保留記憶バッファ)の構成例を示す説明図である。図59に示すように、第1保留記憶バッファには、第1保留記憶数の上限値(この例では4)に対応した保存領域が確保されている。また、第2保留記憶バッファには、第2保留記憶数の上限値(この例では4)に対応した保存領域が確保されている。この実施の形態では、第1保留記憶バッファおよび第2保留記憶バッファには、ハードウェア乱数であるランダムR(大当り判定用乱数)や、ソフトウェア乱数である大当り種別判定用乱数(ランダム1)、変動パターン種別判定用乱数(ランダム2)および変動パターン判定用乱数(ランダム3)が記憶される。なお、第1保留記憶バッファおよび第2保留記憶バッファは、RAM55に形成されている。
そして、CPU56は、第1保留記憶数が1増加したことを指定する第1保留記憶数加算指定コマンドを演出制御用マイクロコンピュータ100に送信する制御を行う(ステップS207A)。
第1保留記憶数が上限値に達していれば(ステップS201AのY)、CPU56は、RL0ハードラッチ乱数値レジスタ0(RL0HV0)から数値データを抽出し(ステップS208A)、抽出した数値データ(乱数)を格納することなく、第1始動口スイッチ通過処理を終了する。すなわち、この実施の形態では、図25に示すプログラム管理エリアにおけるRL0ハードラッチ選択レジスタ0(RL0LS0)のビット3が”0”に設定され、RL0ハードラッチ乱数値レジスタ0(RL0HV0)から値を読み込まないと次の値をラッチできないように設定されているものとする。そのため、第1保留記憶数が上限値に達している場合であっても、CPU56は、RL0ハードラッチ乱数値レジスタ0(RL0HV0)から数値データを抽出する処理のみを行い(値の格納までは行わない)、RL0ハードラッチ乱数値レジスタ0(RL0HV0)が次の値をラッチできるようにしている。
なお、RL0ハードラッチ選択レジスタ0(RL0LS0)のビット3を”1”に設定し、RL0ハードラッチ乱数値レジスタ0(RL0HV0)から値を読み込まなくても次の値をラッチできるように設定してもよい。そのようにすれば、ステップS208Aの処理は不要となる。
次に、図58(B)を参照して第2始動口スイッチ通過処理について説明する。第2始動口スイッチ14aがオン状態の場合に実行される第2始動口スイッチ通過処理において、CPU56は、第2保留記憶数が上限値に達しているか否か(具体的には、第2保留記憶数をカウントするための第2保留記憶数カウンタの値が4でるか否か)を確認する(ステップS201B)。
第2保留記憶数が上限値に達していなければ、CPU56は、第2保留記憶数カウンタの値を1増やす(ステップS202B)とともに、合算保留記憶数をカウントするための合算保留記憶数カウンタの値を1増やす(ステップS203B)。
次いで、CPU56は、ソフトウェア乱数(大当り種別判定用乱数(ランダム1)、変動パターン種別判定用乱数(ランダム2)および変動パターン判定用乱数(ランダム3))を生成するための各カウンタから値を抽出する(ステップS204B)。また、CPU56は、チャネル1の16ビット乱数回路508bが用いるRL1ハードラッチ乱数値レジスタ0(RL1HV0)から、大当り判定用乱数(ランダムR)としての数値データを抽出する(ステップS205B)。
なお、既に、図27で説明したように、RL1ハードラッチ選択レジスタ(RL1LS)のビット2−0の設定内容によりいずれの端子からの信号(ラッチ信号)にもとづいて、RL1ハードラッチ乱数値レジスタ0(RL1HV0)に乱数値をラッチさせるかが設定されている。また、この実施の形態では、その設定された端子には、第2始動口スイッチ14aからの検出信号がラッチ信号として入力されているものとし、第2始動入賞口14への始動入賞が発生したタイミングでRL1ハードラッチ乱数値レジスタ0(RL1HV0)に乱数値をラッチできるように構成されている。
そして、CPU56は、抽出したそれらのソフトウェア乱数および大当り判定用乱数(ランダムR)を、第2保留記憶バッファ(図59参照)における保存領域に格納する処理を実行する(ステップS206B)。なお、変動パターン判定用乱数(ランダム3)を第2始動口スイッチ通過処理(始動入賞時)において抽出して保存領域にあらかじめ格納しておくのではなく、第2特別図柄の変動開始時に抽出するようにしてもよい。例えば、遊技制御用マイクロコンピュータ560は、後述する変動パターン設定処理において、変動パターン判定用乱数(ランダム3)を生成するための変動パターン判定用乱数カウンタから値を直接抽出するようにしてもよい。
そして、CPU56は、第2保留記憶数が1増加したことを指定する第2保留記憶数加算指定コマンドを演出制御用マイクロコンピュータ100に送信する制御を行う(ステップS207B)。
第2保留記憶数が上限値に達していれば(ステップS201BのY)、CPU56は、RL1ハードラッチ乱数値レジスタ0(RL1HV0)から数値データを抽出し(ステップS208B)、抽出した数値データ(乱数)を格納することなく、第2始動口スイッチ通過処理を終了する。すなわち、この実施の形態では、プログラム管理エリアにおけるRL1ハードラッチ選択レジスタ(RL1LS)のビット3が”0”に設定され(図27でn=1とした場合に相当する)、RL1ハードラッチ乱数値レジスタ0(RL1HV0)から値を読み込まないと次の値をラッチできないように設定されているものとする。そのため、第2保留記憶数が上限値に達している場合であっても、CPU56は、RL1ハードラッチ乱数値レジスタ0(RL1HV0)から数値データを抽出する処理のみを行い(値の格納までは行わない)、RL1ハードラッチ乱数値レジスタ0(RL1HV0)が次の値をラッチできるようにしている。
なお、RL1ハードラッチ選択レジスタ0(RL1LS)のビット3を”1”に設定し、RL1ハードラッチ乱数値レジスタ0(RL1HV0)から値を読み込まなくても次の値をラッチできるように設定してもよい。そのようにすれば、ステップS208Bの処理は不要となる。
また、この実施の形態では、ステップS205A,S205Bの処理が実行されることによって、第1特別図柄の変動表示を実行する場合と第2特別図柄の変動表示を実行する場合とで異なる乱数値レジスタから乱数値を抽出して格納するようにしている。そのようにすることにより、例えば、乱数更新のスタート値を異ならせたり、乱数列の変更の設定を異ならせたり、乱数最大値の設定を異ならせることによって、第1特別図柄の変動表示を実行する場合と第2特別図柄の変動表示を実行する場合とで乱数値が同期しにくくすることができ、所定の乱数更新タイミングを狙って不正に大当りを発生させるなどの行為をしにくくしている。
なお、この実施の形態では、16ビット乱数回路508bの異なるチャネル(本例では、チャネル0とチャネル1)から乱数値を抽出することにより、第1特別図柄の変動表示を実行する場合と第2特別図柄の変動表示を実行する場合とで乱数を抽出する乱数値レジスタを異ならせる場合を示したが、この実施の形態で示した態様にかぎられない。例えば、16ビット乱数回路508bの同じチャネルであっても、その同じチャネルで用いる異なるハードラッチ乱数値レジスタから(例えば、同じチャネル0のRL0ハードラッチ乱数値レジスタ0(RL0HV0)とRL0ハードラッチ乱数値レジスタ1(RL0HV1)とから)乱数値を抽出することにより、第1特別図柄の変動表示を実行する場合と第2特別図柄の変動表示を実行する場合とで乱数を抽出する乱数値レジスタを異ならせてもよい。
また、この実施の形態では、ハードラッチ乱数値レジスタから乱数値を抽出する場合を示したが、例えば、ソフトラッチ乱数値レジスタから乱数値を抽出するようにしてもよい。この場合であっても、16ビット乱数回路508bの異なるチャネルから乱数値を抽出することにより、または同じチャネルであっても異なるソフトラッチ乱数値レジスタから乱数値を抽出することにより、第1特別図柄の変動表示を実行する場合と第2特別図柄の変動表示を実行する場合とで乱数を抽出する乱数値レジスタを異ならせるようにすればよい。
また、この実施の形態では、16ビット乱数回路508bから乱数値を抽出する場合を示したが、例えば、8ビット乱数回路508aから乱数値を抽出するようにしてもよい。この場合であっても、8ビット乱数回路508aの異なるチャネルから乱数値を抽出することにより、または同じチャネルであっても異なるハードラッチ乱数値レジスタやソフトラッチ乱数値レジスタから乱数値を抽出することにより、第1特別図柄の変動表示を実行する場合と第2特別図柄の変動表示を実行する場合とで乱数を抽出する乱数値レジスタを異ならせるようにすればよい。
なお、この実施の形態では、既に説明したように、遊技制御用マイクロコンピュータ560は、遊技機への電源投入時にステップS1001,S1011を実行して乱数回路508a,508bに関する設定をハードウェア的に行い、その後に、ユーザプログラムの実行中に第1始動口スイッチ通過処理(ステップS312参照)や第2始動口スイッチ通過処理(ステップS314参照)においてステップS205A,S205Bの乱数抽出の処理を実行する。従って、この実施の形態では、乱数回路から数値データ(乱数値)を抽出するタイミングよりも前に、乱数回路の監視に関する設定が行われるように構成されている。
次に、特別図柄プロセス処理における特別図柄停止処理について説明する。図60は、特別図柄プロセス処理における特別図柄停止処理(ステップS304)を示すフローチャートである。特別図柄停止処理において、CPU56は、大当りフラグがセットされているか否かを確認する(ステップS131)。なお、大当りフラグは、特別図柄通常処理において大当りと判定されるとセットされる。大当りフラグがセットされている場合には、CPU56は、セットされていれば、確変状態であることを示す確変フラグ、および確変状態における特別図柄の変動可能回数を示す確変回数カウンタをリセットする(ステップS132)。また、CPU56は、演出制御用マイクロコンピュータ100に大当り開始指定コマンドを送信する制御を行う(ステップS134)。具体的には、大当りの種別が「15R確変大当り」または「7R確変大当り」である場合には、大当り開始指定コマンドを送信する。また、大当りの種別が突然確変大当りである場合には、小当り/突然確変大当り開始指定コマンドを送信する。なお、大当りの種別が「15R確変大当り」、「7R確変大当り」または「突然確変大当り」のいずれであるかは、RAM55に記憶されている大当り種別を示すデータ(大当り種別バッファに記憶されているデータ)にもとづいて判定される。
また、大当り表示時間タイマに大当り表示時間(大当りが発生したことを、例えば、演出表示装置9において報知する時間)に相当する値を設定する(ステップS135)。また、大入賞口開放回数カウンタに開放回数(例えば、「15R確変大当り」の場合には15回。「7R確変大当り」の場合には7回。「突然確変大当り」の場合には2回。)をセットする(ステップS136)。また、大当り遊技における1ラウンドあたりのラウンド時間もセットされる。具体的には、突然確変大当りの場合には、ラウンド時間として0.1秒がセットされ、15R確変大当りや7R確変大当りの場合には、ラウンド時間として29秒がセットされる。そして、特別図柄プロセスフラグの値を大入賞口開放前処理(ステップS305)に対応した値に更新する(ステップS137)。
また、ステップS131で大当りフラグがセットされていなければ、CPU56は、確変状態における特別図柄の変動可能回数を示す確変回数カウンタの値が0となっているか否かを確認する(ステップS141)。確変回数カウンタの値が0でなければ、CPU56は、確変回数カウンタの値を−1する(ステップS142)。そして、CPU56は、減算後の確変回数カウンタの値が0になった場合には(ステップS143)、確変フラグをリセットする(ステップS144)。
次いで、CPU56は、小当りフラグがセットされているか否かを確認する(ステップS145)。なお、小当りフラグは、特別図柄通常処理において小当りと判定されるとセットされる。小当りフラグがセットされていれば、CPU56は、演出制御用マイクロコンピュータ100に小当り/突然確変大当り開始指定コマンドを送信する(ステップS146)。また、小当り表示時間タイマに小当り表示時間(小当りが発生したことを、例えば、演出表示装置9において報知する時間)に相当する値を設定する(ステップS147)。また、大入賞口開放回数カウンタに開放回数(例えば2回)をセットする(ステップS148)。また、小当り遊技における大入賞口の1回あたりの開放時間もセットされる。具体的には、突然確変大当りのラウンド時間と同じ0.1秒が、小当り遊技における大入賞口の1回あたりの開放時間としてセットされる。そして、特別図柄プロセスフラグの値を小当り開始前処理(ステップS308)に対応した値に更新する(ステップS149)。
小当りフラグもセットされていなければ(ステップS145のN)、CPU56は、特別図柄プロセスフラグの値を特別図柄通常処理(ステップS300)に対応した値に更新する(ステップS150)。
次に、特別図柄プロセス処理における大当り終了処理について説明する。図61は、特別図柄プロセス処理における大当り終了処理(ステップS307)を示すフローチャートである。大当り終了処理において、CPU56は、大当り終了表示タイマが設定されているか否か確認し(ステップS160)、大当り終了表示タイマが設定されている場合には、ステップS164に移行する。大当り終了表示タイマが設定されていない場合には、大当りフラグをリセットし(ステップS161)、大当り終了指定コマンドを送信する制御を行う(ステップS162)。ここで、「15R確変大当り」または「7R確変大当り」であった場合には大当り終了指定コマンドを送信し、「突然確変大当り」であった場合には小当り/突然確変大当り終了指定コマンドを送信する。そして、大当り終了表示タイマに、演出表示装置9において大当り終了表示が行われている時間(大当り終了表示時間)に対応する表示時間に相当する値を設定し(ステップS163)、処理を終了する。
ステップS164では、大当り終了表示タイマの値を1減算する(ステップS164)。そして、CPU56は、大当り終了表示タイマの値が0になっているか否か、すなわち大当り終了表示時間が経過したか否か確認する(ステップS165)。経過していなければ処理を終了する。
大当り終了表示時間を経過していれば(ステップS165のY)、CPU56は、確変フラグをセットして確変状態に移行させる(ステップS166)。なお、この実施の形態では、確変フラグがセットされることによって、確変状態に制御されるとともに時短状態(高ベース状態)にも制御される。また、CPU56は、確変回数カウンタに所定回数(本例では、70回)をセットする(ステップS167)。
なお、時短状態であることを示す時短フラグもセットするようにし、確変状態の管理と時短状態の管理とを別々に行うように構成してもよい。また、この実施の形態では、大当り遊技を終了して確変状態および時短状態に移行した後、同じ回数(本例では、70回)の変動表示を終了すると確変状態および時短状態の両方を終了する場合を示したが、確変状態の終了回数と時短状態の終了回数とを異ならせてもよい。
そして、CPU56は、特別図柄プロセスフラグの値を特別図柄通常処理(ステップS300)に対応した値に更新する(ステップS170)。
次に、遊技制御用マイクロコンピュータ560(具体的には、CPU56)が実行する普通図柄プロセス処理(ステップS28)について説明する。図62は、普通図柄プロセス処理の一例を示すフローチャートである。普通図柄プロセス処理では、CPU56は、ゲート32を遊技球が通過してゲートスイッチ32aがオン状態となったことを検出すると(ステップS511)、ゲートスイッチ通過処理(ステップS512)を実行する。そして、CPU56は、普通図柄プロセスフラグの値に応じてステップS500〜S503に示された処理のうちのいずれかの処理を実行する。
ゲートスイッチ通過処理(ステップS512):CPU56は、ゲート通過記憶カウンタのカウント値(ゲート通過記憶数)が最大値(この例では「4」)に達しているか否か確認する。最大値に達していなければ、ゲート通過記憶カウンタのカウント値を+1する。なお、ゲート通過記憶カウンタの値に応じて普通図柄保留記憶表示器41のLEDが点灯される。そして、CPU56は、普通図柄当り判定用乱数(ランダム4)の値を抽出し、ゲート通過記憶数の値に対応した保存領域(普通図柄判定用バッファ)に格納する処理を行う。
普通図柄通常処理(ステップS500):CPU56は、普通図柄の変動を開始することができる状態(例えば普通図柄プロセスフラグの値がステップS500を示す値となっている場合、具体的には、普通図柄表示器10において普通図柄の変動表示がなされておらず、かつ、普通図柄表示器10に当り図柄が導出表示されたことにもとづく可変入賞球装置15の開閉動作中でもない場合)には、ゲート通過記憶数の値を確認する。具体的には、ゲート通過記憶数カウンタのカウント値を確認する。ゲート通過記憶数が0でなければ、当りとするか否か(普通図柄の停止図柄を当り図柄とするか否か)を決定する。そして、普通図柄プロセスタイマに普通図柄の変動時間をセットし、タイマをスタートさせる。そして、普通図柄プロセスフラグの値を普通図柄変動処理(ステップS501)を示す値(具体的には「1」)に更新する。
普通図柄変動処理(ステップS501):CPU56は、普通図柄プロセスタイマがタイムアウトしたか否か確認し、タイムアウトしていたら、普通図柄表示器10における普通図柄の変動を停止し、普通図柄プロセスタイマに普通図柄停止図柄表示時間をセットし、タイマをスタートさせる。そして、普通図柄プロセスフラグの値を普通図柄停止処理(ステップS502)を示す値(具体的には「2」)に更新する。
普通図柄停止処理(ステップS502):CPU56は、普通図柄プロセスタイマがタイムアウトしたか否かを確認し、タイムアウトしていたら、普通図柄の停止図柄が当り図柄であるかどうかを確認する。当り図柄でなければ(はずれ図柄であれば)、普通図柄プロセスフラグの値を普通図柄通常処理(ステップS500)を示す値(具体的には「0」)に更新する。一方、普通図柄の停止図柄が当り図柄であれば、普通図柄プロセスタイマに普通電動役物作動時間をセットし、タイマをスタートさせる。また、現在の遊技状態が確変状態であるか否かを確認し、確変状態(すなわち、高ベース状態)であれば、確変状態(高ベース状態)のときの普通電動役物(可変入賞球装置15)の開放パターンを選択し、確変状態でなければ(すなわち、低ベース状態であれば)、低ベース状態のときの普通電動役物(可変入賞球装置15)の開放パターンを選択し、選択した開放パターンを設定する。そして、普通図柄プロセスフラグの値を普通電動役物作動処理(ステップS503)を示す値(具体的には「3」)に更新する。
普通電動役物作動処理(ステップS503):CPU56は、普通図柄プロセスタイマがタイムアウトしていないことを条件に、設定された開放パターンで普通電動役物の開放を行う(可変入賞球装置15の開閉動作を実行する)普通電動役物開放パターン処理を実行する。なお、この実施の形態では、確変状態(すなわち、高ベース状態)では、低ベース状態である場合と比較して可変入賞球装置15の開放期間が長いものとする。そして、普通図柄プロセスタイマがタイムアウトすると、普通図柄プロセスフラグの値を普通図柄通常処理(ステップS500)を示す値(具体的には「0」)に更新する。
次に、主基板31に搭載される遊技制御用マイクロコンピュータ560(具体的には、CPU56)が実行する特別図柄表示制御処理(ステップS33)について説明する(フローチャート等は図示せず)。特別図柄表示制御処理では、CPU56は、特別図柄プロセスフラグの値が3であるか否かを確認する(ステップS3201)。特別図柄プロセスフラグの値が3であれば(すなわち、特別図柄変動中処理の実行中であれば)、CPU56は、特別図柄変動表示用の特別図柄表示制御データを特別図柄表示制御データ設定用の出力バッファに設定または更新する処理を行う(ステップS3202)。この場合、CPU56は、特別図柄ポインタが示す方の特別図柄(第1特別図柄または第2特別図柄)の変動表示を行うための特別図柄表示制御データを設定または更新する。例えば、変動速度が1コマ/0.2秒であれば、0.2秒が経過する毎に、出力バッファに設定される特別図柄表示制御データの値を+1する。そして、その後、表示制御処理(ステップS23参照)が実行され、特別図柄表示制御データ設定用の出力バッファの内容に応じて特別図柄表示器8a,8bに対して駆動信号が出力されることによって、特別図柄表示器8a,8bにおける特別図柄の変動表示が実行される。
特別図柄プロセスフラグの値が3でなければ、CPU56は、特別図柄プロセスフラグの値が4であるか否かを確認する(ステップS3203)。特別図柄プロセスフラグの値が4であれば(すなわち、特別図柄停止処理に移行した場合には)、CPU56は、特別図柄通常処理で設定された特別図柄の停止図柄を停止表示するための特別図柄表示制御データを特別図柄表示制御データ設定用の出力バッファに設定する処理を行う(ステップS3204)。この場合、CPU56は、特別図柄ポインタが示す方の特別図柄(第1特別図柄または第2特別図柄)の停止図柄を停止表示するための特別図柄表示制御データを設定する。そして、その後、表示制御処理(ステップS23参照)が実行され、特別図柄表示制御データ設定用の出力バッファの内容に応じて特別図柄表示器8a,8bに対して駆動信号が出力されることによって、特別図柄表示器8a,8bにおいて特別図柄の停止図柄が停止表示される。なお、ステップS3204の処理が実行され停止図柄表示用の特別図柄表示制御データが設定された後には、設定データの変更が行われないので、ステップS23の表示制御処理では最新の特別図柄表示制御データにもとづいて最新の停止図柄を次の変動表示が開始されるまで停止表示し続けることになる。また、ステップS3201において特別図柄プロセスフラグの値が2または3のいずれかであれば(すなわち、表示結果指定コマンド送信処理または特別図柄変動中処理のいずれかであれば)、特別図柄変動表示用の特別図柄表示制御データを更新するようにしてもよい。この場合、遊技制御用マイクロコンピュータ560側で認識する変動時間と演出制御用マイクロコンピュータ100側で認識する変動時間との間にズレが生じないようにするため、表示結果指定コマンド送信処理においても変動時間タイマを1減算するように構成すればよい。
なお、この実施の形態では、特別図柄プロセスフラグの値に応じて特別図柄表示制御データを出力バッファに設定する場合を示したが、特別図柄プロセス処理において、特別図柄の変動開始時に開始フラグをセットするとともに、特別図柄の変動終了時に終了フラグをセットするようにしてもよい。そして、特別図柄表示制御処理(ステップS33)において、CPU56は、開始フラグがセットされたことにもとづいて特別図柄表示制御データの値の更新を開始するようにし、終了フラグがセットされたことにもとづいて停止図柄を停止表示させるための特別図柄表示制御データをセットするようにしてもよい。
次に、遊技制御用マイクロコンピュータ560(具体的には、CPU56)が実行する入賞順異常報知処理(ステップS21a)について説明する。図63は、ステップS21aの入賞順異常報知処理を示すフローチャートである。入賞順異常報知処理において、遊技制御用マイクロコンピュータ560(具体的には、CPU56)は、第2始動入賞口14に対応する第2始動口監視用バッファを加算バッファにセットし(ステップS250)、第1始動入賞口13に対応する第1始動口監視用バッファをクリアバッファにセットする(ステップS251)。
第1始動口監視用バッファおよび第2始動口監視用バッファは、加算バッファおよびクリアバッファと同様に、RAM55に形成され、対応する始動口に入賞があると、原則的に(例外については後述する)格納している値に所定値(本例では1)が加算される。加算バッファは、セットされた始動口監視用バッファを所定値(本例では1)の加算対象とするために用いられる。また、クリアバッファは、セットされた始動口監視用バッファをクリア(本例では格納している値を0にする)対象とするために用いられる。なお、この実施の形態では、始動口監視用バッファを加算バッファやクリアバッファにセットするとの表現を用いるが、例えば、加算バッファまたはクリアバッファに、第1始動口監視用バッファまたは第2始動口監視用バッファを特定するためのポインタがセットされることによって実現される。
次いで、CPU56は、第1始動口スイッチがオン状態であるか否かを確認し(ステップS252)、第1始動口スイッチがオン状態である場合には、加算バッファとクリアバッファのセット内容を入れ替える(ステップS253)。すなわち、ステップS253では、CPU56は、第1始動口監視用バッファを加算バッファにセットし、第2始動口監視用バッファをクリアバッファにセットする。ステップS253では、例えば、値を交換する命令(例えば、EX命令)1つを実行させることで入れ替えを行うことが可能である。
この実施の形態では、CPU56は、ステップS250,S251で第2始動口監視用バッファを加算バッファに、第1始動口監視用バッファをクリアバッファにセットし(以下、仮セットともいう)、第1始動口スイッチがオン状態であれば(すなわち遊技球が入賞した始動口に対応した始動口監視用バッファが加算バッファにセットされていなければ(ステップS252のY))、ステップS253で加算バッファとクリアバッファのセット内容を入れ替える(遊技球が入賞した始動口に対応した始動口監視用バッファが加算バッファにセットされていれば、セット内容を入れ替えない)。このように、第1始動口監視用バッファおよび第2始動口監視用バッファを加算バッファとクリアバッファとに仮セットし、遊技球が入賞した始動口に対応した始動口監視用バッファが加算バッファにセットされていなければ、加算バッファとクリアバッファのセット内容を入れ替えることによって、遊技球が入賞した始動口(例えば、第1始動入賞口13)に対応した始動口監視用バッファを加算対象とし、他方の始動口(例えば、第2始動入賞口14)に対応した始動口監視用バッファをクリア対象としてセットすることができる。したがって、例えば、同じ始動口に連続して入賞が発生した場合には、対応する始動口監視用バッファが連続して加算対象としてセットされ、他方の始動口に対応する始動口監視用バッファが連続してクリア対象としてセットされる。また、前回入賞した始動口とは異なる始動口に入賞した場合には、前回加算対象としてセットされた始動口監視用バッファがクリア対象としてセットされ、前回クリア対象としてセットされた始動口監視用バッファが加算対象としてセットされる。なお、加算バッファとクリアバッファのセット内容を入れ替えるとは、最終的に(ステップS254を実行する前に)セット内容(例えば、ポインタ)が入れ替わっていればよく、処理の途中で一旦ポインタを示すデータを他の領域に保存してもよい。つまり、加算バッファのセット内容とクリアバッファのセット内容とを直接入れ替えるものに限らず、加算バッファのセット内容とクリアバッフのセット内容と(またはいずれか一方のみ)を他の領域に一旦格納した後に、入れ替えるものであってもよい。
なお、この実施の形態では、ステップS250,S251で第2始動口監視用バッファを加算バッファに、第1始動口監視用バッファをクリアバッファに仮セットしているが、これに限らず、逆に仮セットするようにしてもよい。この場合には、ステップS252において、第2始動口スイッチがオン状態であるか否かを確認し、オン状態であればステップS253に移行するようにすればよい。
ステップS253で加算バッファとクリアバッファのセット内容を入れ替えると、CPU56は、加算バッファを1加算し、加算バッファをロードする(ステップS254)。また、CPU56は、クリアデータ(本例では0)をセットし、クリアバッファにストアする(ステップS255)。すなわち、ステップS254において、加算バッファにセットされた始動口監視用バッファに格納された値に所定値(本例では1)を加算し、ステップS255において、クリアバッファにセットされた始動口監視用バッファに格納された値をクリア(本例では0に)する。このようにすることによって、同じ始動口に連続して入賞が発生した場合には、対応する始動口監視用バッファに格納された値が連続して1加算され、他方の始動口に対応する始動口監視用バッファに格納された値がクリアされる。また、前回入賞した始動口とは異なる始動口に入賞した場合には、前回加算対象として所定値(本例では1)が加算された始動口監視用バッファに格納された値がクリア(本例では0に)され、前回クリア対象としてクリアされた始動口監視用バッファに格納された値に所定値(本例では1)が加算される。以下、「加算バッファの値」という表現を用いることがあるが、具体的には、加算バッファにセットされた始動口監視用バッファに格納された値のことを示す。また、「加算バッファを1加算する」という表現を用いることがあるが、具体的には、加算バッファにセットされた始動口監視用バッファに格納された値に所定値(本例では1)加算することである。また、「加算バッファをクリアする」という表現を用いることがあるが、具体的には、加算バッファにセットされた始動口監視用バッファに格納された値をクリア(本例では0に)することである。
次いで、CPU56は、加算バッファの値が5以上であるか否かを判定する(ステップS259)。加算バッファの値が5以上となっていれば、CPU56は、加算バッファをクリアし(ステップS260)、ステップS261に移行する。加算バッファの値が5以上でなければ、そのまま処理を終了する。
ステップS261では、CPU56は、入賞順異常報知指定コマンドを演出制御用マイクロコンピュータ100に対して送信する制御を行う(ステップS261)。また、CPU56は、セキュリティ信号情報タイマに初期値3000(すなわち5分=300秒をカウンタの満了時間100msで除算した値)をセットする(ステップS262)。この実施の形態では、ステップS262でセキュリティ信号情報タイマに所定時間がセットされたことにもとづいて、情報出力処理(S30参照)が実行されることによって、セキュリティ信号が所定時間(本例では、300秒)外部出力される。すなわち、加算バッファの値が5以上である場合には(ステップS259のY)、第1始動入賞口13または第2始動入賞口14に連続して5以上の入賞が発生したことにより入賞順異常が発生したと判定して、入賞順異常報知を行うために入賞順異常報知指定コマンドを送信する制御を行うとともに、セキュリティ信号を所定期間(本例では、300秒)外部出力するための処理を行う。所定期間をセットされたセキュリティ信号情報タイマは、先述のタイマ更新処理(図74(b))で更新される。このタイマ更新処理はタイマ割込処理(図51)で実行してもよい(例えばS21とS21aの間)し、メイン側エラー処理(S28A)や情報出力処理(S29)のいずれかの処理内で実行するようにしてもよい。
また、ステップS252で第1始動口スイッチがオン状態ではない場合には、CPU56は、第2始動口スイッチがオン状態であるか否かを確認する(ステップS256)。第2始動口スイッチがオン状態でなければ(すなわち、いずれの始動口にも入賞していなければ)、そのまま処理を終了する。
一方、第2始動口スイッチ14aがオン状態であれば、CPU56は、確変フラグがセットされているか否かを確認する(ステップS257)。確変フラグがセットされていれば(すなわち、確変状態であるとともに時短状態(高ベース状態)であれば)、ステップS255に移行する。確変フラグがセットされていなければ、CPU56は、普通図柄プロセスフラグの値が3であるか否かを確認する(ステップS258)。この実施の形態では、普通図柄プロセスフラグの値が3であれば(すなわち普通図柄プロセス処理の普通電動役物作動処理が実行されている場合には)、ステップS255に移行する。
ステップS257で確変フラグがセットされていた場合、またはステップS258で普通図柄プロセスフラグの値が3である場合には、ステップS255で、CPU56は、クリアデータ(本例では0)をセットし、クリアバッファにセットする(ステップS255)。すなわち、確変フラグがセットされているということは、時短状態(高ベース状態)に制御され、可変入賞球装置15が開放状態となる頻度が高められているのであるから、振分装置200の状態にかかわらず第2始動入賞口14に連続して入賞しやすい。そのため、この場合には、ステップS254を実行して加算バッファを1加算することなく、ステップS255のみを実行することでクリアバッファをクリアして、入賞順異常と判定しないように制御している。また、普通図柄プロセスフラグの値が3であり、普通図柄プロセス処理の普通電動役物作動処理が実行されているということは、可変入賞球装置15が開放状態に制御されるのであるから第2始動入賞口14に連続して入賞しやすい。そのため、この場合にも、ステップS254を実行して加算バッファを1加算することなく、ステップS255のみを実行することでクリアバッファをクリアして、入賞順異常と判定しないように制御している。そして、ステップS259に移行する。
なお、図63に示す例に限らず、例えば、ステップS257,S258に相当する処理を入賞順異常報知処理の開始時に実行し、確変フラグがセットされていた場合または普通図柄プロセスフラグの値が3である場合には、そのまま処理を終了し、以降の処理を実行しないように構成してもよい。また、例えば、確変フラグがセットされていた場合または普通図柄プロセスフラグの値が3である場合(すなわちステップS257でY、またはステップS258でYとなった場合)、ステップS255(クリアバッファをクリアする処理)を実行しないようにしてもよい。つまり、確変フラグがセットされていた場合または普通図柄プロセスフラグの値が3である場合には、加算バッファを1加算する処理とクリアバッファをクリアする処理とのいずれも実行しないようにしてもよい。
また、この実施の形態では、確変状態(すなわち、高ベース状態)であるか否かの判定と可変入賞球装置15が開放中であるか否かの判定との両方を実行する場合を示しているが、いずれか一方のみを実行するようにしてもよい。具体的には、ステップS257の判定処理とステップS258の判定処理とのいずれか一方のみを実行するようにしてもよい。
また、第2始動口スイッチ14aがオン状態であることにもとづいて直ちにステップS257以降の処理を実行して第2始動口監視用バッファに格納された値に所定値(本例では1)を加算するのではなく、さらに第2保留記憶数が上限値(本例では4)に達していないことを条件に第2始動口監視用バッファに格納された値に所定値(本例では1)を加算するようにしてもよい(すなわち、有効始動入賞のみをカウントするようにしてもよい)。また、逆に、第2保留記憶数が上限値(本例では4)に達している場合のみ第2始動口監視用バッファに格納された値に所定値(本例では1)を加算するようにしてもよい(すなわち、無効始動入賞のみをカウントするようにしてもよい)。
また、この実施の形態では、第1始動入賞口13への入賞については確変状態(すなわち、高ベース状態)中であるかいなかや可変入賞球装置15が開放中であるか否かにかかわらずカウント(すなわち加算バッファに1加算すること)を継続し、確変状態(すなわち、高ベース状態)中や可変入賞球装置15の開放中の期間も通して第1始動入賞口13への遊技球の連続入賞を検出したことにもとづいて入賞順異常と判定する場合を示したが、確変状態(すなわち、高ベース状態)中や可変入賞球装置15の開放中の期間はカウントを中断するようにしてもよい。そして、確変状態(すなわち、高ベース状態)中や可変入賞球装置15の開放中の期間をまたがって第1始動入賞口13への遊技球の連続入賞を検出したときに入賞順異常と判定するようにしてもよい。具体的には、例えば、第1始動入賞口13に連続して2球入賞した後に確変状態(すなわち、高ベース状態)や可変入賞球装置15が開放状態となった場合に一旦カウントを中断し、その確変状態(すなわち、高ベース状態)や可変入賞球装置15の開放状態を終了した後にさらに第1始動入賞口13に連続して2球入賞した場合に(その確変状態(すなわち、高ベース状態)中や可変入賞球装置15の開放中に第2始動入賞口14への入賞もなく)、合計で5球連続して第1始動入賞口13に入賞したと判定して入賞順異常と判定するようにしてもよい。
また、この実施の形態では、第1始動入賞口13に連続して入賞した場合と第2始動入賞口14に連続して入賞した場合との両方について入賞順異常と判定する場合を示したが、第1始動入賞口13に連続して入賞した場合と第2始動入賞口14に連続して入賞した場合とのいずれか一方の場合についてのみ入賞順異常と判定するように構成してもよい。
また、この実施の形態では、第1始動入賞口13に連続して入賞して入賞順異常となった場合と第2始動入賞口14に連続して入賞して入賞順異常となった場合とで、入賞順異常報知指定コマンドとして共通のコマンドを送信する場合を示したが、第1始動入賞口13に連続して入賞して入賞順異常となった場合と第2始動入賞口14に連続して入賞して入賞順異常となった場合とを区別可能に入賞順異常報知指定コマンドを送信するようにしてもよい。具体的には、第1始動入賞口13に連続して入賞して入賞順異常となった場合には第1入賞順異常報知指定コマンドを送信するようにし、第2始動入賞口14に連続して入賞して入賞順異常となった場合には第2入賞順異常報知指定コマンドを送信するようにしてもよい。
また、この実施の形態では、加算バッファの値と比較する判定値が5である場合を示したが、この実施の形態で示した値にかぎらず、例えば、ステップS259において加算バッファの値が4以上であるかを判定するなど、判定値として他の値を用いてもよい。また、例えば、ステップS259において加算バッファの値が2以上であるか否かを判定するようにして、第1始動入賞口13または第2始動入賞口14に1球でも連続して入賞したら直ちに入賞順異常と判定するようにしてもよい。ただし、この実施の形態では、第1始動入賞口13または第2始動入賞口14に4球連続して入賞したことを条件に入賞順異常と判定することによって、判定基準に多少のマージンをもたせることにより誤判定を防止するようにしている。
また、この実施の形態では、加算バッファの値と判定値(本例では5)とを比較して入賞順異常が発生したか否かを判定しているが、これに限らず、例えば、加算バッファの値とクリアバッファの値とを比較し、その差が所定値(例えば、5)以上であれば入賞順異常と判定するようにしてもよい。
また、この実施の形態では、入賞順異常の判定を遊技制御用マイクロコンピュータ560側で実行する場合を示しているが、演出制御用マイクロコンピュータ100側で実行するようにしてもよい。この場合、例えば、遊技制御用マイクロコンピュータ560は、第1始動入賞口13に新たな始動入賞があったことを示すコマンドや第2始動入賞口14に新たな始動入賞があったことを示すコマンドを送信するようにし、演出制御用マイクロコンピュータ100は、それらのコマンドを受信したことにもとづいて、図63に示す入賞順異常報知処理と同様の処理を行って入賞順異常を判定するようにすればよい。
なお、入賞順異常報知処理は、始動口への入賞時の処理(具体的には特別図柄プロセス処理の第1始動口スイッチ通過処理および第2始動口スイッチ通過処理)において実行される(具体的には図63の入賞順異常報知処理に相当する処理が実行される)ようにしてもよい。
次に、演出制御手段の動作を説明する。図64は、演出制御基板80に搭載されている演出制御手段としての演出制御用マイクロコンピュータ100(具体的には、演出制御用CPU101)が実行するメイン処理を示すフローチャートである。演出制御用CPU101は、電源が投入されると、メイン処理の実行を開始する。メイン処理では、まず、RAM領域のクリアや各種初期値の設定、また演出制御の起動間隔(例えば、4ms)を決めるためのタイマの初期設定等を行うための初期化処理を行う(ステップS701)。その後、演出制御用CPU101は、タイマ割込フラグの監視(ステップS702)を行うループ処理に移行する。タイマ割込が発生すると、演出制御用CPU101は、タイマ割込処理においてタイマ割込フラグをセットする。メイン処理において、タイマ割込フラグがセットされていたら、演出制御用CPU101は、そのフラグをクリアし(ステップS703)、以下の演出制御処理を実行する。
演出制御処理において、演出制御用CPU101は、まず、受信した演出制御コマンドを解析し、受信した演出制御コマンドに応じたフラグをセットする処理等を行う(コマンド解析処理:ステップS704)。
次いで、演出制御用CPU101は、演出制御プロセス処理を行う(ステップS705)。演出制御プロセス処理では、制御状態に応じた各プロセスのうち、現在の制御状態(演出制御プロセスフラグ)に対応した処理を選択して演出表示装置9の表示制御を実行する。
次いで、演出制御用CPU101は、第4図柄プロセス処理を行う(ステップS706)。第4図柄プロセス処理では、制御状態に応じた各プロセスのうち、現在の制御状態(第4図柄プロセスフラグ)に対応した処理を選択して演出表示装置9の第4図柄表示領域9c,9dにおいて第4図柄の表示制御を実行する。
次いで、大当り図柄決定用乱数などの乱数を生成するためのカウンタのカウント値を更新する乱数更新処理を実行する(ステップS707)。その後、ステップS702に移行する。
図65は、主基板31の遊技制御用マイクロコンピュータ560から受信した演出制御コマンドを格納するためのコマンド受信バッファの一構成例を示す説明図である。この例では、2バイト構成の演出制御コマンドを6個格納可能なリングバッファ形式のコマンド受信バッファが用いられる。従って、コマンド受信バッファは、受信コマンドバッファ1〜12の12バイトの領域で構成される。そして、受信したコマンドをどの領域に格納するのかを示すコマンド受信個数カウンタが用いられる。コマンド受信個数カウンタは、0〜11の値をとる。なお、必ずしもリングバッファ形式でなくてもよい。
なお、遊技制御用マイクロコンピュータ560から送信された演出制御コマンドは、演出制御INT信号にもとづく割込処理で受信され、RAMに形成されているバッファ領域に保存されている。コマンド解析処理では、バッファ領域に保存されている演出制御コマンドがどのコマンドであるのか解析する。なお、演出制御INT信号にもとづく割込処理は、4msごとに実行されるタイマ割込処理に優先して実行される。
図66は、コマンド解析処理(ステップS704)の具体例を示すフローチャートである。主基板31から受信された演出制御コマンドは受信コマンドバッファに格納されるが、コマンド解析処理では、演出制御用CPU101は、コマンド受信バッファに格納されているコマンドの内容を確認する。
コマンド解析処理において、演出制御用CPU101は、まず、コマンド受信バッファに受信コマンドが格納されているか否か確認する(ステップS611)。格納されているか否かは、コマンド受信個数カウンタの値と読出ポインタとを比較することによって判定される。両者が一致している場合が、受信コマンドが格納されていない場合である。コマンド受信バッファに受信コマンドが格納されている場合には、演出制御用CPU101は、コマンド受信バッファから受信コマンドを読み出す(ステップS612)。なお、読み出したら読出ポインタの値を+2しておく(ステップS613)。+2するのは2バイト(1コマンド)ずつ読み出すからである。
受信した演出制御コマンドが変動パターンコマンドであれば(ステップS614)、演出制御用CPU101は、受信した変動パターンコマンドを、RAMに形成されている変動パターンコマンド格納領域に格納する(ステップS615)。そして、変動パターンコマンド受信フラグをセットする(ステップS616)。
受信した演出制御コマンドが表示結果指定コマンドであれば(ステップS617)、演出制御用CPU101は、受信した表示結果指定コマンド(表示結果1指定コマンド〜表示結果5指定コマンド)を、RAMに形成されている表示結果指定コマンド格納領域に格納する(ステップS618)。
受信した演出制御コマンドが図柄確定指定コマンドであれば(ステップS619)、演出制御用CPU101は、確定コマンド受信フラグをセットする(ステップS620)。
受信した演出制御コマンドが大当り開始指定コマンドであれば(ステップS621)、演出制御用CPU101は、大当り開始指定コマンド受信フラグをセットする(ステップS622)。
受信した演出制御コマンドが小当り/突然確変大当り開始指定コマンドであれば(ステップS623)、演出制御用CPU101は、小当り/突然確変大当り開始指定コマンド受信フラグをセットする(ステップS624)。
受信した演出制御コマンドが入賞順異常報知指定コマンドであれば(ステップS625)、演出制御用CPU101は、ランプドライバ基板35に対して制御信号(ランプ制御実行データ)を出力することによって、所定の異常報知パターンで枠LED28の点灯制御を行う(ステップS626)。また、演出制御用CPU101は、音声出力基板70に対して制御信号(音番号データ)を出力することによって、所定の異常報知音をスピーカ27から出力させる(ステップS627)。
なお、この実施の形態では、枠LED28を所定の異常報知パターンで点灯させるとともに所定の異常報知音をスピーカ27から出力させることによって入賞順異常報知を行う場合を示しているが、入賞順異常報知の態様は、この実施の形態で示したものにかぎられない。例えば、枠LED28の所定の異常報知パターンでの点灯と所定の異常報知音のスピーカ27からの出力とのいずれか一方のみを行うことにより入賞順異常報知を行ってもよい。また、例えば、演出表示装置9において「入賞順異常です」などの文字列を含む入賞順異常報知画面を表示することにより入賞順異常報知を行ってもよい。
受信した演出制御コマンドがその他のコマンドであれば、演出制御用CPU101は、受信した演出制御コマンドに応じたフラグをセットする(ステップS628)。そして、ステップS611に移行する。
図67は、図64に示されたメイン処理における演出制御プロセス処理(ステップS705)を示すフローチャートである。演出制御プロセス処理では、演出制御用CPU101は、演出制御プロセスフラグの値に応じてステップS800〜S807のうちのいずれかの処理を行う。各処理において、以下のような処理を実行する。なお、演出制御プロセス処理では、演出表示装置9の表示状態が制御され、演出図柄の可変表示が実現されるが、第1特別図柄の変動に同期した演出図柄の可変表示に関する制御も、第2特別図柄の変動に同期した演出図柄の可変表示に関する制御も、一つの演出制御プロセス処理において実行される。なお、第1特別図柄の変動に同期した演出図柄の可変表示と、第2特別図柄の変動に同期した演出図柄の可変表示とを、別の演出制御プロセス処理により実行するように構成してもよい。また、この場合、いずれの演出制御プロセス処理により演出図柄の変動表示が実行されているかによって、いずれの特別図柄の変動表示が実行されているかを判断するようにしてもよい。
変動パターンコマンド受信待ち処理(ステップS800):遊技制御用マイクロコンピュータ560から変動パターンコマンドを受信しているか否か確認する。具体的には、コマンド解析処理でセットされる変動パターンコマンド受信フラグがセットされているか否か確認する。変動パターンコマンドを受信していれば、演出制御プロセスフラグの値を演出図柄変動開始処理(ステップS801)に対応した値に変更する。
演出図柄変動開始処理(ステップS801):演出図柄の変動が開始されるように制御する。そして、演出制御プロセスフラグの値を演出図柄変動中処理(ステップS802)に対応した値に更新する。
演出図柄変動中処理(ステップS802):変動パターンを構成する各変動状態(変動速度)の切替タイミング等を制御するとともに、変動時間の終了を監視する。そして、変動時間が終了したら、演出制御プロセスフラグの値を演出図柄変動停止処理(ステップS803)に対応した値に更新する。
演出図柄変動停止処理(ステップS803):演出図柄の変動を停止し表示結果(停止図柄)を導出表示する制御を行う。そして、演出制御プロセスフラグの値を大当り表示処理(ステップS804)または変動パターンコマンド受信待ち処理(ステップS800)に対応した値に更新する。
大当り表示処理(ステップS804):変動時間の終了後、演出表示装置9に大当りの発生を報知するための画面を表示する制御を行う。そして、演出制御プロセスフラグの値をラウンド中処理(ステップS805)に対応した値に更新する。
ラウンド中処理(ステップS805):ラウンド中の表示制御を行う。そして、ラウンド終了条件が成立したら、最終ラウンドが終了していなければ、演出制御プロセスフラグの値をラウンド後処理(ステップS806)に対応した値に更新する。最終ラウンドが終了していれば、演出制御プロセスフラグの値を大当り終了処理(ステップS807)に対応した値に更新する。
ラウンド後処理(ステップS806):ラウンド間の表示制御を行う。そして、ラウンド開始条件が成立したら、演出制御プロセスフラグの値をラウンド中処理(ステップS805)に対応した値に更新する。
大当り終了演出処理(ステップS807):演出表示装置9において、大当り遊技状態が終了したことを遊技者に報知する表示制御を行う。そして、演出制御プロセスフラグの値を変動パターンコマンド受信待ち処理(ステップS800)に対応した値に更新する。
なお、この実施の形態では、始動入賞口への入賞が発生すると、対応する始動口監視バッファに格納された値に所定値が加算され、加算結果にもとづいて入賞順異常が発生したことを検出するように構成されているが、これに限らず、例えば、始動入賞口への入賞が発生すると、対応する始動口監視バッファに格納された値から所定値が減算され、減算結果にもとづいて入賞順異常が発生したことを検出するように構成してもよい。
図68は、入賞順異常報知処理の変形例を示すフローチャートである。図68に示す入賞順異常報知処理の変形例では、ステップS250,251に代えて、第2始動口監視バッファを減算バッファにセットし(ステップS250b)、第1始動口監視バッファを初期値設置バッファにセットする(ステップS251b)処理が実行される。減算バッファは、セットされた始動口監視用バッファを所定値(本例では1)の減算対象とするために用いられる。また、初期値設定バッファは、セットされた始動口監視用バッファを初期値設定(本例では初期値(5)をセットする)対象とするために用いられる。
また、図68に示す入賞順異常報知処理の変形例では、ステップS254,S255に代えて、減算バッファを1減算し、減算バッファをロードし(ステップS254b)、初期値データ(本例では5)をセットし、初期値設定バッファにストアする(ステップS255b)処理が実行される。すなわち、ステップS254bにおいて、減算バッファにセットされた始動口監視用バッファに格納された値から所定値(本例では1)を減算し、ステップS255bにおいて、初期値設定バッファにセットされた始動口監視用バッファに格納された値を初期値(本例では5)に設定する。このようにすることによって、同じ始動口に連続して入賞が発生した場合には、対応する始動口監視用バッファに格納された値が連続して1減算され、他方の始動口に対応する始動口監視用バッファに格納された値が初期値(本例では5)に設定される。また、前回入賞した始動口とは異なる始動口に入賞した場合には、前回減算対象として所定値(本例では1)が減算された始動口監視用バッファに格納された値が初期値(本例では5)に設定され、前回初期値設定対象として初期値(本例では5)が設置された始動口監視用バッファに格納された値から所定値(本例では1)が減算される。以下、「減算バッファの値」という表現を用いることがあるが、具体的には、減算バッファにセットされた始動口監視用バッファに格納された値のことを示す。また、「減算バッファを1減算する」という表現を用いることがあるが、具体的には、減算バッファにセットされた始動口監視用バッファに格納された値から所定値(本例では1)を減算することである。また、「減算バッファに初期値をセットする」という表現を用いることがあるが、具体的には、減算バッファにセットされた始動口監視用バッファに格納された値を初期値(本例では5)に設定することである。
また、図68に示す入賞順異常報知処理の変形例では、ステップS259,S260に代えて、減算バッファの値が0であるか否かを判定し(ステップS259b)、減算バッファの値が0となっていれば、減算バッファに初期値をセットする(ステップS260b)処理が実行される。なお、減算バッファの値と判定値(本例では0)とを比較して入賞順異常が発生したか否かを判定しているが、これに限らず、例えば、減算バッファの値と初期値設定バッファの値とを比較し、その差が所定値(例えば、5)以上であれば入賞順異常と判定するようにしてもよい。
以上のように処理を実行することによって、始動入賞口への入賞が発生すると、対応する始動口監視バッファに格納された値から所定値が減算され、減算結果にもとづいて入賞順異常が発生したことを検出するように構成することができる。また、図68に示すように構成する場合には、図69に示すメイン処理の変形例のように、S10aに代えて、減算バッファに初期値を設定する処理(ステップS10b)を実行する。このようにすることで、電源投入後に減算バッファの値が初期化されることで、誤って入賞順異常を検出してしまうことを防止することができる。
また、この実施の形態において、予告演出の対象となる変動表示が開始されるよりも前に実行される先読み予告演出を実行するように構成してもよい。先読み予告演出を実行するように構成する場合、例えば、図70に示すように、遊技制御用マイクロコンピュータ560は、第1始動入賞口13や第2始動入賞口14への始動入賞が発生したタイミングで第1始動口スイッチ通過処理(ステップS312参照)や第2始動口スイッチ通過処理(ステップS314参照)にて始動入賞時の判定を行い、その判定結果を示す入賞時判定結果コマンドを送信する制御を行う(図70のステップS2061A,S2061B)。この場合、例えば、入賞時判定結果指定コマンドとして、大当りとなるか否かや、小当りとなるか否か、大当りの種別の判定結果を示す図柄指定コマンド、および変動パターン種別判定用乱数の値がいずれの判定値の範囲となるかの判定結果(変動パターン種別の判定結果)を示す変動カテゴリコマンドを送信する。従って、この場合、新たな始動入賞が発生したタイミングで1タイマ割り込み内で始動入賞時コマンドとして図柄指定コマンド、変動カテゴリコマンド、および保留記憶数加算指定コマンド(第1保留記憶数加算指定コマンド、第2保留記憶数加算指定コマンド)が送信されることになる。
また、図71に示すように、コマンド解析処理において、入賞時判定結果指定コマンドを受信すると(ステップS629)、演出制御用マイクロコンピュータ100は、入賞時判定結果指定コマンドに応じた入賞時判定結果を入賞時判定結果記憶バッファに保存し(ステップS630)、入賞時判定結果記憶バッファに保存された入賞時判定結果にもとづいて先読み演出決定処理を行う(ステップS631)。その後、演出制御用マイクロコンピュータ100は、先読み演出決定処理の決定結果にしたがって、先読み演出を実行する(例えば、演出図柄変動中処理(ステップS802)において実行される)。先読み演出は、例えば、予告対象となる当該変動表示よりも前に開始される変動表示中に、演出表示装置9の背景表示を特殊背景に切り替えてを表示することや、カウントダウン表示、当該変動表示に対応する保留表示の表示態様を変化させることによって実現される。また、ステップS631では、演出制御用マイクロコンピュータ100は、例えば、図72に示すように、高ベース状態であるか否かと、合算保留記憶数とに応じて、先読み演出の演出態様を決定する。具体的には、図72に示すように、高ベース状態であるときには、当該変動表示よりも前に開始される1回から最高4回の変動表示に亘る先読み演出が実行され、高ベース状態でないときには、当該変動表示よりも前に開始される1回から最高8回の変動表示に亘る先読み演出が実行される。このようにすることで、高ベース状態ではないとき(すなわち通常状態であるとき)には、振分装置によって第1始動入賞口13と第2始動入賞口14とに交互に入賞するため、最大8回(第1保留記憶数と第2保留記憶数とを足した上限)で完結する連続演出(例えば、特殊背景に切り替える)を実行可能とし、高ベース状態であるときには、振分装置を介さずに可変入賞球装置15によって第2始動入賞口14のみに入賞しやすいため、最大4回(第2保留記憶数の上限)で完結する連続演出(例えば、カウントダウン表示)を実行可能とすることができる。したがって、遊技状態に応じた先読み演出を実行することができる。
また、先読み演出の演出態様は、当該変動表示の表示結果が大当りか否かに応じて、決定されるようにしてもよい。例えば、当該変動表示に対応する保留表示が8個目の保留表示である場合(すなわち、先に実行される変動表示が8回ある場合)、当該変動表示の表示結果が大当りであるか否かに応じて、始動入賞後に直ちに先読み演出を開始する(つまり、8回の変動表示に亘って実行される)か、始動入賞後に数回の変動表示が行われた後に先読み演出を開始する(例えば、4回の変動表示に亘って実行される)かを決定するようにしてもよい。このように、当該変動表示の表示結果が大当りであるか否かに応じて、先読み演出の演出態様(何回の変動表示に亘って実行されるか)を決定することによって、例えば、多くの変動表示に亘って先読み演出が実行されるほど大当りの期待度が高くなるようにすることができ、遊技興趣を高めることができる。
以上に説明したように、この実施の形態によれば、遊技球を振り分けるための振分装置200が遊技領域7に設けられている。振分装置200は、遊技領域7に進入した遊技球が当該振分装置200に流入可能な流入口201と、流入口から流入した遊技球が通過可能な複数の通路(本例では、左側通路203、右側通路204)と、流入口から流入した遊技球を複数の通路のうちのいずれかに振り分ける振分手段(本例では、振分部材202)とを含む。また、振分手段は、流入口201から遊技球が流入したことにもとづいて、複数の通路のうちの第1通路(本例では、左側通路203)に遊技球を振り分けやすい第1状態(本例では、図2(a),(d)に示すように振分部材202が右側に倒れた状態)と第2通路(本例では、右側通路204)に遊技球を振り分けやすい第2状態(本例では、図2(b),(c)に示すように振分部材202が左側に倒れた状態)とに所定の順序に従って切り替わる(本例では、遊技球の自重によって交互に切り替わる)。また、第1始動領域(本例では、第1始動入賞口13)は、第1通路に振り分けられた遊技球が通過しやすい態様で設けられている(本例では、図2に示すように、左側流出口205の下方に第1始動入賞口13が設けられている)とともに、第2始動領域(本例では、第2始動入賞口14)は、第2通路に振り分けられた遊技球が通過しやすい態様で設けられている(本例では、図2に示すように、右側流出口206の下方に第2始動入賞口14が設けられている)。また、遊技制御用マイクロコンピュータ560は、遊技媒体が第1始動領域または第2始動領域を通過したことにもとづいて遊技媒体が通過した始動領域に対応する記憶領域(本例では、第1始動口監視用バッファまたは第2始動口監視用バッファ)を加算対象として当該記憶領域に格納された値に所定値(本例では1)を加算し、加算結果が所定条件(例えば、加算対象とされた記憶領域に格納された値が5以上である、または第1始動口監視用バッファに格納された値と第2始動口監視用バッファに格納された値との差(加算バッファの値とクリアバッファの値との差)が所定値(例えば5)以上である)を満たしたことにもとづいて異常と判定する。そのため、振分装置200の異常判定を行うことができるので、振分装置200の異常により遊技を正常に行えなくなることを防止することができる。
また、この実施の形態によれば、所定事象が発生(本例では、IAT506aからのIAT信号の入力、ウオッチドッグタイマ(WDT)506bからのタイムアウト信号の入力)したことにもとづいて第1リセット(本例では、システムリセット)を発生させるか第2リセット(本例では、ユーザリセット)を発生させるかを設定可能である(図16に示すリセット設定(KRES)のビット7参照)。そして、第1リセットの発生後にはセキュリティチェックを実行する一方、第2リセットの発生後にはセキュリティチェックを実行しない。そのため、遊技機や遊技店の状況などに応じて所定事象が発生したときに行うリセットの種類を最適なものに設定できるので、遊技制御用マイクロコンピュータ560に関するセキュリティ性を向上させることができる。
なお、この実施の形態では、所定事象の発生として、IAT506aからのIAT信号を入力した場合と、ウオッチドッグタイマ(WDT)506bからのタイムアウト信号を入力した場合とを示しているが、この実施の形態で示したものにかぎらず、遊技制御用マイクロコンピュータ560をリセットすべき何らかのエラーなどの状況が発生したことにもとづいて、所定事象が発生したとしてリセットするものであってもよい。
また、この実施の形態によれば、所定事象の発生には、ウオッチドッグタイマ(WDT)506bのタイムアウトが含まれ、ウオッチドッグタイマ(WDT)506bを起動させるか否かを設定可能である(本例では、図14に示すリセット設定(KRES)のビット3−0に”0000”を設定する)。そして、ウオッチドッグタイマ(WDT)506bを起動させないと設定した場合であっても、所定事象が発生したことにもとづいて第1リセットを発生させるか第2リセットを発生させるかを設定可能である。具体的には、図14に示すリセット設定(KRES)において、ビット3−0に”0000”を設定していても、ビット7の設定を行うことによってリセットの種類を設定可能である。そのため、ウオッチドッグタイマ(WDT)506bの設定にかかわらず、所定事象が発生したことにもとづいて発生させるリセットの種類の設定を共通化することができる。
また、この実施の形態によれば、所定事象の発生には、指定された領域以外の領域に格納されたプログラムを実行する指定領域外実行(本例では、指定エリア外走行禁止(IAT)が含まれる。そして、遊技制御用マイクロコンピュータ560は、所定の処理として所定時間(本例では4ms)毎に発生するタイマ割込に応じて実行されるタイマ割込処理(図51に示すタイマ割込処理)の実行中に指定領域外実行が発生(本例では、IAT回路506aからIAT信号を入力)した場合に、RAM55(バックアップRAM)の記憶内容を初期化する(本例では、リセットの後、図50に示すステップS10が実行される)。そのため、意図しないプログラムが実行された場合のセキュリティ性を向上させることができる。
また、この実施の形態の変形例によれば、遊技制御用マイクロコンピュータ560は、遊技媒体が第1始動領域または第2始動領域を通過したことにもとづいて遊技媒体が通過した始動領域に対応する記憶領域(本例では、第1始動口監視用バッファまたは第2始動口監視用バッファ)を減算対象として当該記憶領域に格納された値から所定値(本例では1)を減算し、減算結果が所定条件(例えば、減算対象とされた記憶領域に格納された値が0である、または第1始動口監視用バッファに格納された値と第2始動口監視用バッファに格納された値との差(減算バッファの値と初期値設定バッファの値との差)が所定値(例えば5)以上である)を満たしたことにもとづいて異常と判定する。そのため、振分装置200の異常判定を行うことができるので、振分装置200の異常により遊技を正常に行えなくなることを防止することができる。
また、この実施の形態によれば、RAM55(バックアップRAM)の記憶内容を初期化する(本例では、リセットの後、図50に示すステップS10が実行される)とともに、ステップS10aにおいて加算バッファおよびクリアバッファがクリアされる(またはステップS10bにおいて減算バッファに初期値(本例では5)が設定される)。そのため、停電復旧時にも、振分装置200の異常判定を正しく行うことができるので、振分装置200の異常により遊技を正常に行えなくなることを防止することができる。
また、この実施の形態によれば、遊技制御用マイクロコンピュータ560は、第1始動領域に対応する記憶領域(本例では、第1始動口監視用バッファまたは第2始動口監視用バッファ)を加算対象とし、第2始動領域に対応する記憶領域(本例では、第1始動口監視用バッファまたは第2始動口監視用バッファ(第1始動領域に対応する記憶領域とは異なる))をクリア対象として仮設定し、遊技媒体が第2始動領域を通過したことにもとづいて、仮設定された加算対象とクリア対象とを入れ替え、加算対象とされた記憶領域に格納された値に所定値(本例では1)を加算し、クリア対象とされた記憶領域に格納された値をクリアする。そして、記憶領域に格納された値にもとづいて(例えば、加算対象とされた記憶領域に格納された値が5以上であるとき、または第1始動口監視用バッファに格納された値と第2始動口監視用バッファに格納された値との差(加算バッファの値とクリアバッファの値との差)が所定値(例えば5)以上であるとき)異常と判定する。そのため、振分装置200の異常判定を行うことができるので、振分装置200の異常により遊技を正常に行えなくなることを防止することができる。
また、この実施の形態の変形例によれば、また、遊技制御用マイクロコンピュータ560は、第1始動領域に対応する記憶領域(本例では、第1始動口監視用バッファまたは第2始動口監視用バッファ)を減算対象とし、第2始動領域に対応する記憶領域(本例では、第1始動口監視用バッファまたは第2始動口監視用バッファ(第1始動領域に対応する記憶領域とは異なる))を初期値設定対象として仮設定し、遊技媒体が第2始動領域を通過したことにもとづいて、仮設定された減算対象と初期値設定対象とを入れ替え、減算対象とされた記憶領域に格納された値から所定値(本例では1)を減算し、初期値設定対象とされた記憶領域に格納された値を初期値(本例では5)に設定する。そして、記憶領域に格納された値にもとづいて(例えば、減算対象とされた記憶領域に格納された値が0であるとき、または第1始動口監視用バッファに格納された値と第2始動口監視用バッファに格納された値との差(減算バッファの値と初期値設定バッファの値との差)が所定値(例えば5)以上であるとき)異常と判定する。そのため、振分装置200の異常判定を行うことができるので、振分装置200の異常により遊技を正常に行えなくなることを防止することができる。
なお、上記の実施の形態においては、変動時間およびリーチ演出の種類や擬似連の有無等の変動態様を示す変動パターンを演出制御用マイクロコンピュータ100に通知するために、変動を開始するときに1つの変動パターンコマンドを送信する例を示したが、2つ乃至それ以上のコマンドにより変動パターンを演出制御用マイクロコンピュータ100に通知するようにしてもよい。具体的には、2つのコマンドにより通知する場合、遊技制御用マイクロコンピュータ560は、1つ目のコマンドでは擬似連の有無、滑り演出の有無など、リーチとなる以前(リーチとならない場合には所謂第2停止の前)の変動時間や変動態様を示すコマンドを送信し、2つ目のコマンドではリーチの種類や再抽選演出の有無など、リーチとなった以降(リーチとならない場合には所謂第2停止の後)の変動時間や変動態様を示すコマンドを送信するようにしてもよい。この場合、演出制御用マイクロコンピュータ100は2つのコマンドの組合せから導かれる変動時間にもとづいて変動表示における演出制御を行うようにすればよい。なお、遊技制御用マイクロコンピュータ560の方では2つのコマンドのそれぞれにより変動時間を通知し、それぞれのタイミングで実行される具体的な変動態様については演出制御用マイクロコンピュータ100の方で選択を行うようにしてもよい。2つのコマンドを送る場合、同一のタイマ割込内で2つのコマンドを送信する様にしてもよく、1つ目のコマンドを送信した後、所定期間が経過してから(例えば次のタイマ割込において)2つ目のコマンドを送信するようにしてもよい。なお、それぞれのコマンドで示される変動態様はこの例に限定されるわけではなく、送信する順序についても適宜変更可能である。このように2つ乃至それ以上のコマンドにより変動パターンを通知するようにすることで、変動パターンコマンドとして記憶しておかなければならないデータ量を削減することができる。
また、上記の実施の形態では、演出装置を制御する回路が搭載された基板として、演出制御基板80、音声出力基板70およびランプドライバ基板35が設けられているが、演出装置を制御する回路を1つの基板に搭載してもよい。さらに、演出表示装置9等を制御する回路が搭載された第1の演出制御基板(表示制御基板)と、その他の演出装置(ランプ、LED、スピーカ27など)を制御する回路が搭載された第2の演出制御基板との2つの基板を設けるようにしてもよい。
また、上記の実施の形態では、遊技制御用マイクロコンピュータ560は、演出制御用マイクロコンピュータ100に対して直接コマンドを送信していたが、遊技制御用マイクロコンピュータ560が他の基板(例えば、図5に示す音声出力基板70やランプドライバ基板35など、または音声出力基板70に搭載されている回路による機能とランプドライバ基板35に搭載されている回路による機能とを備えた音/ランプ基板)に演出制御コマンドを送信し、他の基板を経由して演出制御基板80における演出制御用マイクロコンピュータ100に送信されるようにしてもよい。その場合、他の基板においてコマンドが単に通過するようにしてもよいし、音声出力基板70、ランプドライバ基板35、音/ランプ基板にマイクロコンピュータ等の制御手段を搭載し、制御手段がコマンドを受信したことに応じて音声制御やランプ制御に関わる制御を実行し、さらに、受信したコマンドを、そのまま、または例えば簡略化したコマンドに変更して、演出表示装置9を制御する演出制御用マイクロコンピュータ100に送信するようにしてもよい。その場合でも、演出制御用マイクロコンピュータ100は、上記の実施の形態における遊技制御用マイクロコンピュータ560から直接受信した演出制御コマンドに応じて表示制御を行うのと同様に、音声出力基板70、ランプドライバ基板35または音/ランプ基板から受信したコマンドに応じて表示制御を行うことができる。
また、上記の実施の形態では、遊技機としてパチンコ機を例にしたが、本発明を、メダルが投入されて所定の賭け数が設定され、遊技者による操作レバーの操作に応じて複数種類の図柄を回転させ、遊技者によるストップボタンの操作に応じて図柄を停止させたときに停止図柄の組合せが特定の図柄の組み合わせになると、所定数のメダルが遊技者に払い出されるスロット機に適用することも可能である。
また、上記の実施の形態では、遊技機として遊技媒体を使用するものを例にしたが本発明による遊技機は、所定数の景品としての遊技媒体を払い出す遊技機に限定されず、遊技球等の遊技媒体を封入し景品の付与条件が成立した場合に得点を付与する封入式の遊技機に適用することもできる。
なお、上記の実施の形態において、「割合が異なる」とは、A:B=70%:30%やA:B=40%:60%のような関係で割合が異なるものだけにかぎらず、A:B=100%:0%のような関係で割合が異なるもの(すなわち、一方が100%の割り振りで他方が0%の割り振りとなるようなもの)も含む概念である。
上記の実施形態では、図74(a)に示すように、変動時間のタイマ更新処理において、カウンタを加算更新しタイマを減算更新する例について説明したが、これに限らず、図74(a')に示すように、カウンタを減算更新しタイマを加算更新するようにしても良い。具体的には、カウンタの初期値は前記所定値の25,タイマの初期値は0であり、図57に示す変動パターン設定処理(S301)において、図73に示す特図変動時間(例えば非リーチPA1−1の変動パターンであれば、特図変動時間5.80秒をカウンタの満了時間100msで除算した58)が設定され、特別図柄の変動が開始されると、図74(a’)に示すタイマ更新処理がスタートして、まずカウンタを−1し(S1001’)、該カウンタのカウント数が0に達したか否かを判定し(S1002’)、達していなければ(NO)処理を終了し、達していれば(YES)カウンタを初期値25に戻し(S1003’)、タイマを+1して(S1004’)、該タイマがセット値であるか否かを判定し(S1005’)、タイマがセット値でなければ(NO)処理を終了し、タイマがセット値であれば(YES)特別図柄プロセスフラグの値をステップS304の特別図柄停止処理に対応した値(この例では4)に更新して(S1006)、処理を終了する。
なお、変動時間のタイマ更新処理は、カウンタを加算更新しタイマを減算更新するもの(パターン1)や、カウンタを減算更新しタイマを加算更新するもの(パターン2)以外に、カウンタを加算更新しタイマを加算更新するもの(パターン3)や、カウンタを減算更新しタイマを減算更新するもの(パターン4)であっても良い。同様に、図74(b)に示すエラー時間のタイマ更新処理,図74(c)に示す羽根開放間隔のタイマ更新処理,及び図74(d)に示す羽根開放時間のタイマ更新処理にも、パターン2〜4を適用可能である。
上記の実施形態では、図74に示すように、カウンタ及びタイマによりタイマ更新処理が行われる例について説明したが、カウンタを用いずにタイマのみによりタイマ更新処理が行われるものが含まれても良い。
例えば特図変動時間が、4ms毎に更新される2バイトのタイマで計時できる範囲である場合には、カウンタを用いなくても良い。具体的には、特図変動時間がタイマにセットされる前に、該特図変動時間が、4ms毎に更新される2バイトのタイマで計時できるか否か(すなわち4分22秒14以下であるか否か)を判定し、計時できない場合には、該特図変動時間を前記カウンタの満了時間100msで除算した値をセットして、図74(a)の処理をそのまま行う一方、計時できる場合には、特図変動時間を割込間隔4msで除算した値をセットして、図74(a)の処理でS1001〜S1003を実行せずにS1004〜S1006を実行する。これによれば、CPU56の処理にかかる負担を軽減することができる。
上記の実施形態では、タイマが2バイトで構成される例について説明したが、該タイマは1バイトで構成されても良い。具体的には、第1特別図柄表示器18aや第2特別図柄表示器18bにおいて特別図柄を変動表示するときの表示を更新する時間など、設定される時間データが2バイト内に収まるものしか無いときには、1バイトのタイマにしても良い。これに限らず、設定される時間データが2バイト内に収まるものしか無いときには、カウンタを用いないタイマ更新処理を実行するようにしても良い。これによれば、タイマの数を減らすことができ、CPU56の負担を軽減することができる。
なお、図74に示すタイマ更新処理を実行する前に、各種タイマ,各種カウンタをそれぞれポインタにセットしてからタイマ更新処理を実行することで、図74(a)のS1001〜S1005,図74(b)のS1011〜S1015,図74(c)のS1021〜S1025,図74(d)のS1031〜S1035を共通のモジュールにすることができる。具体的には、S1001,S1011,S1021,S1031を「ポインタ1が示すカウンタ(初期値は0)を+1」、S1002,S1012,S1022,S1032を「ポインタ1が示すカウンタが25に達したか否かを判定」、S1003,S1013,S1023,S1033を「ポインタ1が示すカウンタを初期値に戻す」、S10044,S1014,S1024,S1034を「ポインタ2が示すタイマを−1」、S1005,S1015,S1025,S1035を「ポインタ2が示すタイマが0であるか否かを判定」、とすれば共通のモジュールにすることができ、メイン容量の負担を減らすことができる。
上記の実施形態では、遊技制御用マイクロコンピュータ560が、図74(a)や図74(a')に示された方法により、特別図柄の変動時間を計測するための変動時間タイマをセットして、更新する例について説明したが、演出制御用マイクロコンピュータ100が、演出図柄の変動時間(特別図柄の変動表示に伴う演出実行時間)を計測するための変動時間タイマを、前述した遊技制御用マイクロコンピュータ560と同様の方法によりセットして、同様の方法により更新するようにしても良い。例えば、図67の演出図柄変動開始処理(S801)において、受信した変動パターンコマンドが指定する変動パターンの変動時間に応じた値を(例えば非リーチPA1−1の変動パターンであれば、特図変動時間5.80秒をカウンタの満了時間100msで除算した58)を変動時間タイマの初期値として設定し、S802の演出図柄変動中処理が実行される毎に、図74(a)に示すタイマ更新処理と同様の処理が実行されて、まずカウンタを+1し(S1001)、該カウンタのカウント数が前記所定値である25に達したか否かを判定し(S1002)、達していなければ(NO)処理を終了し、達していれば(YES)カウンタを初期値に戻し(S1003)、タイマを−1して(S1004)、該タイマが0であるか否かを判定し(S1005)、タイマが0でなければ(NO)処理を終了し、タイマが0であれば(YES)演出図柄プロセスフラグの値をステップS803の演出図柄変動停止処理に対応した値に更新して、処理を終了する。これによれば、変動パターンのデータは2バイト分としてタイマにより更新し、それとは別に1バイト分のカウンタを用いて時間を更新するようにしたので、演出制御用マイクロコンピュータ100側においても、タイマのみを用いる場合に比べて計時できる時間を長くできると共に、変動パターンのデータ量を増やさないようにすることができる。