JP4762666B2 - 遊技機 - Google Patents

遊技機 Download PDF

Info

Publication number
JP4762666B2
JP4762666B2 JP2005303542A JP2005303542A JP4762666B2 JP 4762666 B2 JP4762666 B2 JP 4762666B2 JP 2005303542 A JP2005303542 A JP 2005303542A JP 2005303542 A JP2005303542 A JP 2005303542A JP 4762666 B2 JP4762666 B2 JP 4762666B2
Authority
JP
Japan
Prior art keywords
random number
value
circuit
state
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005303542A
Other languages
English (en)
Other versions
JP2007111130A5 (ja
JP2007111130A (ja
Inventor
詔八 鵜川
英法 竹澤
慎悟 高林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sankyo Co Ltd
Original Assignee
Sankyo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sankyo Co Ltd filed Critical Sankyo Co Ltd
Priority to JP2005303542A priority Critical patent/JP4762666B2/ja
Publication of JP2007111130A publication Critical patent/JP2007111130A/ja
Publication of JP2007111130A5 publication Critical patent/JP2007111130A5/ja
Application granted granted Critical
Publication of JP4762666B2 publication Critical patent/JP4762666B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、各々を識別可能な複数種類の識別情報を可変表示可能な可変表示手段を備え、あらかじめ定められている可変表示の実行条件が成立した後、可変表示の開始条件の成立にもとづいて識別情報の可変表示を開始し、識別情報の可変表示の表示結果が特定の表示結果となったときに遊技者にとって有利な特定遊技状態に移行させる遊技機に関する。
遊技機として、遊技球などの遊技媒体を発射装置によって遊技領域に発射し、遊技領域に設けられている入賞口などの入賞領域に遊技媒体が入賞すると、所定個の賞球が遊技者に払い出されるものがある。さらに、表示状態が変化可能な可変表示部が設けられ、可変表示部の表示結果があらかじめ定められた特定表示態様となった場合に所定の遊技価値を遊技者に与えるように構成されたものがある。
なお、遊技価値とは、遊技機の遊技領域に設けられた可変入賞球装置の状態が打球が入賞しやすい遊技者にとって有利な状態になることや、遊技者にとって有利な状態になるための権利を発生させたりすることや、賞球払出の条件が成立しやすくなる状態になることである。
遊技機では、識別情報の可変表示を実行する際に、可変表示手段を用いて予告演出などの遊技演出を行う。この場合、例えば、遊技制御を行う遊技制御手段(例えば、遊技制御用マイクロコンピュータ)は、可変表示手段に表示させる演出内容(予告演出)を決定し、決定した演出内容を含むコマンド(例えば、変動パターンコマンド)を、演出制御を行う演出制御手段(例えば、演出制御用マイクロコンピュータ)に送信する。そして、演出制御手段は、受信したコマンドに示される演出内容に従って、可変表示手段を用いて予告演出などの遊技演出を行う。
また、遊技機では、所定の移行条件が成立したときに、遊技状態を遊技者にとって有利な特定遊技状態に移行させる。例えば、パチンコ遊技機では、特別図柄を表示する可変表示部の表示結果があらかじめ定められた特定表示態様の組合せ(大当り図柄)になることを、通常、「大当り」という。大当りが発生すると、例えば、大入賞口が所定回数開放して打球が入賞しやすい大当り遊技状態に移行する。また、可変表示部の表示結果が大当り図柄のうちの特別の大当り図柄となるなどの特別の条件が成立すると、以後、大当りが発生する確率が高くなる高確率状態(確変状態ともいう。)に移行するように構成することもある。
また、大当りが発生する確率を、低確率状態、中確率状態および高確率状態の3段階の確率状態を用いて制御するように構成された遊技機がある(例えば、特許文献1参照)。また、特許文献1に記載された遊技機では、中確率状態が継続する回数(何回大当りとなるまで状態が継続するかを示す継続回数(例えば、2回))が高確率状態が継続する回数(例えば、1回)より多くなるように制御する。そのように構成することによって、特許文献1に記載された遊技機では、短期間に特定遊技状態(例えば、大当り)が集中的に発生することを低減している。
また、大当り状態の終了後に高確率状態に移行し、高確率状態において可変表示を所定回数実行すると、低確率状態に移行するとともに、遊技領域に設けられた可変入賞装置の開放時間を長くするように構成された遊技機がある(例えば、特許文献2参照)。特許文献2に記載された遊技機では、大当り状態の終了後に識別情報(特別図柄)の変動時間を短縮させることなく、遊技状態を高確率状態に移行する。そして、高確率状態において可変表示を所定回数実行すると、高確率状態を終了するとともに、識別情報の変動時間を短縮させる時短状態に移行することによって、可変入賞装置の開放時間を長くするように制御する。
特開2002−253797号公報(段落0072−0079、図10−11) 特開2005−118469号公報(段落0049−0052)
遊技機において、予告演出などの演出内容を遊技制御手段が決定するようにすると、遊技制御手段以外の制御手段(演出制御手段)が実行すべき処理内容であるにも関わらず、遊技制御手段が演出内容を決定することになってしまう。そのため、遊技制御手段である遊技制御用マイクロコンピュータの処理負担が大きい。
また、特許文献1に記載された遊技機では、低確率状態、中確率状態および高確率状態の3段階の確率状態に遊技状態を制御することができる。しかし、各確率状態の違いは大当りが発生する確率を異ならせただけの違いであるため、大当りが発生するまでの遊技中に現在の遊技状態が有利な状態であるのか否かを遊技者が認識することはできない。そのため、現在の遊技状態が有利な状態であるか否かを遊技者に認識させることができず、遊技に対する遊技者の興趣を減退させてしまう虞がある。
また、特許文献2に記載された遊技機では、現在の遊技状態にかかわらず、大当り状態の終了後にそのまま高確率状態に移行する。また、高確率状態において可変表示を所定回数実行すると、そのまま可変入賞装置の開放時間を長くする状態(時短状態)に移行する。そのため、確変状態に移行するタイミングや、可変入賞装置の開放時間を長くする状態に移行するタイミングを、遊技者に容易に特定されてしまう。従って、遊技中にいずれの遊技状態に移行するかについて遊技者に関心をもたせることができず、遊技に対する遊技者の興趣を減退させてしまう虞がある。
そこで、本発明は、識別情報の可変表示の表示結果が特定の表示結果となったときに遊技者にとって有利な特定遊技状態に移行させる遊技機において、遊技制御用マイクロコンピュータの処理負担を軽減することができ、現在の遊技状態が有利な状態であるか否かを遊技者に認識させることができるとともに、遊技中にいずれの遊技状態に移行するかについて遊技者に関心をもたせることができるようにすることを目的とする。
本発明による遊技機は、各々を識別可能な複数種類の識別情報(例えば、飾り図柄)を可変表示可能な可変表示手段(例えば、可変表示装置9)を備え、あらかじめ定められている可変表示の実行条件(例えば、始動入賞口14への遊技球の入賞)が成立した後、可変表示の開始条件(例えば、特別図柄の最終停止および大当たり遊技の終了)の成立にもとづいて識別情報の可変表示を開始し、識別情報の可変表示の表示結果が特定の表示結果(例えば、大当たり図柄)となったときに遊技者にとって有利な特定遊技状態に移行する遊技機であって、遊技の進行を制御する遊技制御処理を実行する遊技制御用マイクロコンピュータ(例えば、遊技制御用マイクロコンピュータ560)が搭載された遊技制御基板(例えば、主基板31)と、遊技演出に用いる電気部品である音出力装置(例えば、スピーカ27)又は発光体(例えば、各ランプ25,28a,28b,28c)の少なくとも一方を制御する電気部品制御マイクロコンピュータ(例えば、音/ランプ制御用マイクロコンピュータ100b)が搭載された電気部品制御基板(例えば、音/ランプ制御基板80b)と、可変表示手段における識別情報の可変表示を制御し、遊技演出として可変表示手段に所定の演出表示を行う制御を実行する表示制御マイクロコンピュータ(例えば、図柄制御用マイクロコンピュータ100a)が搭載された表示制御基板(例えば、図柄制御基板80a)とを備え、遊技制御用マイクロコンピュータは、可変表示の開始条件が成立したときに、可変表示手段の識別情報の可変表示の表示結果を決定する表示結果決定手段(例えば、遊技制御用マイクロコンピュータ560のCPU56におけるステップS3314を実行する部分)と、可変表示手段における識別情報の可変表示の変動パターンを特定可能な変動パターンコマンド(例えば、図53に示すコマンド8000(H)〜8008(H))を、電気部品制御マイクロコンピュータに送信する遊技制御側コマンド送信手段(例えば、遊技制御用マイクロコンピュータ560のCPU56における、ステップS392でコマンドに応じたアドレスをセットしたことにもとづいて、ステップS29で演出制御コマンドを送信する部分)と、表示結果決定手段によって識別情報の可変表示の表示結果を特定の表示結果とすると決定されたときに、遊技状態を特定遊技状態とは異なる遊技者にとって有利な状態である特定有利状態(例えば、確変状態、高ベース状態)に移行させるための条件である特定移行条件(例えば、確変状態への移行条件、高開放条件)が成立するか否かを判定する特定移行条件判定手段(例えば、遊技制御用マイクロコンピュータ560のCPU56におけるステップS3324を実行する部分)と、特定移行条件判定手段によって特定移行条件が成立すると判定されたことにもとづいて、特定遊技状態が終了した後に遊技状態を特定有利状態に移行制御する遊技状態移行制御手段(例えば、遊技制御用マイクロコンピュータ560のCPU56におけるステップS3503,S3509,S3511を実行する部分)とを含み、電気部品制御マイクロコンピュータは、遊技制御用マイクロコンピュータから受信した変動パターンコマンドにもとづいて、遊技演出の内容を決定する演出内容決定手段(例えば、音/ランプ制御用マイクロコンピュータ100bにおけるステップS1853〜S1855を実行する部分)と、演出内容決定手段が決定した遊技演出の内容を特定可能なコマンド(例えば、演出内容指定コマンド)を、表示制御マイクロコンピュータに送信する電気部品制御側コマンド送信手段(例えば、音/ランプ制御用マイクロコンピュータ100bにおけるステップS1856を実行する部分)とを含み、表示制御マイクロコンピュータは、電気部品制御マイクロコンピュータから受信したコマンドに示される遊技演出の内容にもとづいて、可変表示手段に所定の演出表示を行うことによって遊技演出を制御し(例えば、図柄制御用マイクロコンピュータ100aにおける、ステップS1856で送信された演出内容指定コマンドにもとづいて、ステップS775と同様の処理に従って可変表示装置9を用いて演出を行う部分)、遊技状態移行制御手段は、特定移行条件判定手段によって、特定移行条件として、特定有利状態のうち、特定移行条件の成立する以前に比べて識別情報の可変表示の表示結果を特定の表示結果とする確率を向上させた状態である高確率状態(例えば、確変状態)に移行させる高確率移行条件(例えば、確変状態への移行条件)が成立したと判定されたことにもとづいて、特定有利状態として遊技状態を高確率状態に移行制御する高確率状態移行制御手段(例えば、遊技制御用マイクロコンピュータ560のCPU56におけるステップS3503,S3511を実行する部分)と、特定移行条件判定手段によって、特定移行条件として、特定有利状態のうち、特定移行条件の成立する以前に比べて可変表示の実行条件が成立し易い状態である高成立状態(例えば、高ベース状態)に移行させる高成立条件(例えば、高開放条件)が成立したと判定されたことにもとづいて、特定有利状態として遊技状態を高成立状態に移行制御する高成立状態移行制御手段(例えば、遊技制御用マイクロコンピュータ560のCPU56におけるステップS3503,S3509を実行する部分)とを含み、遊技状態移行制御手段により、いずれの遊技状態に移行制御されているかを判定する遊技状態判定手段(例えば、遊技制御用マイクロコンピュータ560のCPU56におけるステップS3316,S3317,S3320を実行する部分)を更に備え、特定移行条件判定手段は、遊技状態判定手段により、遊技状態が高確率状態および高成立状態の両方に移行制御されていると判定されたとき(例えば、遊技制御用マイクロコンピュータ560のCPU56が、ステップS3316でYと判定するとともに、ステップS3317でYと判定したとき)と、遊技状態が高確率状態のみに移行制御されていると判定されたとき(例えば、遊技制御用マイクロコンピュータ560のCPU56が、ステップS3316でYと判定し、ステップS3317でNと判定したとき)とで、高確率状態および高成立状態の両方に移行させるか、高確率状態のみに移行させるかが異なる割合で設定されたテーブルを用いた抽選処理を行うことにより、高確率移行条件および高成立条件の両方又は高確率移行条件のみが成立するかを判定する(例えば、遊技制御用マイクロコンピュータ560のCPU56が、ステップS3318で設定した確変/高ベース時状態判定テーブル、またはステップS3319で設定した確変/低ベース時状態判定テーブルを用いて、ステップS3324の状態判定処理を実行する部分)ことを特徴とする。
請求項1記載の発明では、電気部品制御手段が変動パターンコマンドにもとづいて演出内容を独自に決定し、電気部品制御手段によって決定された演出内容に従って可変表示制御手段が遊技演出を実行するように構成されているので、遊技制御用マイクロコンピュータが演出内容を決定しなくて済む。そのため、遊技制御用マイクロコンピュータの処理負担を軽減することができる。また、高確率移行条件の成立にもとづいて遊技状態を高確率状態に移行する制御を行うことに加えて、高成立条件の成立にもとづいて遊技状態を高成立状態に移行する制御を行うように構成されているので、現在の遊技状態が有利な状態であるか否かを遊技者に認識させることができる。また、高確率状態だけに移行する場合や、高確率状態に移行するとともに高成立状態に移行する場合など、遊技状態の種類が複数あり、現在の遊技状態がいずれの状態であるかによって、異なる選択割合で遊技状態を移行させる状態を決定するように構成されているので、遊技中にいずれの遊技状態に移行するかについて遊技者に関心をもたせることができ、遊技に対する遊技者の興趣を維持することができる。
実施の形態1.
以下、本発明の一実施形態を図面を参照して説明する。
まず、遊技機の一例であるパチンコ遊技機の全体の構成について説明する。図1はパチンコ遊技機を正面からみた正面図、図2は遊技盤の前面を示す正面図である。なお、以下の実施の形態では、パチンコ遊技機を例に説明を行うが、本発明による遊技機はパチンコ遊技機に限られず、スロット機などの他の遊技機に適用することもできる。
パチンコ遊技機1は、縦長の方形状に形成された外枠(図示せず)と、外枠の内側に開閉可能に取り付けられた遊技枠とで構成される。また、パチンコ遊技機1は、遊技枠に開閉可能に設けられている額縁状に形成されたガラス扉枠2を有する。遊技枠は、外枠に対して開閉自在に設置される前面枠(図示せず)と、機構部品等が取り付けられる機構板と、それらに取り付けられる種々の部品(後述する遊技盤を除く。)とを含む構造体である。
図1に示すように、パチンコ遊技機1は、額縁状に形成されたガラス扉枠2を有する。ガラス扉枠2の下部表面には打球供給皿(上皿)3がある。打球供給皿3の下部には、打球供給皿3に収容しきれない遊技球を貯留する余剰球受皿4と遊技球を発射する打球操作ハンドル(操作ノブ)5が設けられている。ガラス扉枠2の背面には、遊技盤6が着脱可能に取り付けられている。なお、遊技盤6は、それを構成する板状体と、その板状体に取り付けられた種々の部品とを含む構造体である。また、遊技盤6の前面には遊技領域7が形成されている。
遊技領域7の中央付近には、それぞれが演出用の飾り図柄を可変表示する複数の可変表示部を含む可変表示装置(飾り図柄表示装置)9が設けられている。可変表示装置9には、例えば「左」、「中」、「右」の3つの可変表示部(図柄表示エリア)がある。可変表示装置9は、特別図柄表示器8による特別図柄の可変表示期間中に、装飾用(演出用)の図柄としての飾り図柄の可変表示を行う。飾り図柄の可変表示を行う可変表示装置9は、演出制御基板に搭載されている演出制御用マイクロコンピュータによって制御される。
可変表示装置9の下部には、始動入賞口14に入った有効入賞球数すなわち保留記憶(始動記憶または始動入賞記憶ともいう。)数を表示する4つの特別図柄保留記憶表示器18が設けられている。特別図柄保留記憶表示器18は、保留記憶数を入賞順に4個まで表示する。特別図柄保留記憶表示器18は、始動入賞口14に始動入賞があるごとに、点灯状態のLEDの数を1増やす。そして、特別図柄保留記憶表示器18は、特別図柄表示器8で可変表示が開始されるごとに、点灯状態のLEDの数を1減らす(すなわち1つのLEDを消灯する)。具体的には、特別図柄保留記憶表示器18は、特別図柄表示器8で可変表示が開始されるごとに、点灯状態をシフトする。なお、この例では、始動入賞口14への入賞による始動記憶数に上限数(4個まで)が設けられているが、上限数を4個以上にしてもよい。
可変表示装置9の上部には、識別情報としての特別図柄を可変表示する特別図柄表示器(特別図柄表示装置)8が設けられている。この実施の形態では、特別図柄表示器8は、例えば0〜9の数字を可変表示可能な簡易で小型の表示器(例えば7セグメントLED)で実現されている。特別図柄表示器8は、遊技者に特定の停止図柄を把握しづらくさせるために、0〜99など、より多種類の数字を可変表示するように構成されていてもよい。また、可変表示装置9は、特別図柄表示器8による特別図柄の可変表示期間中に、装飾用(演出用)の図柄としての飾り図柄の可変表示を行う。
さらに、可変表示装置9の左側には、遊技演出に用いられる可動部材としてのハンマ151が設けられている。ハンマ151は、可動部152を支点として右方向に倒れ、可変表示装置9に表示される飾り図柄のうち最も左側の飾り図柄を叩くような演出を行うことができる。
また、パチンコ遊技機1は、遊技の進行中に遊技者が操作可能な操作スイッチ81を備えている。例えば、操作スイッチ81が操作(押下)されると、可動部材としてのハンマ151が動作する。
可変表示装置9の下方には、始動入賞口14を形成する可変入賞球装置15が設けられている。始動入賞口14に入った入賞球は、遊技盤6の背面に導かれ、始動口スイッチ14aによって検出される。可変入賞球装置15は、ソレノイド16によって開状態にされる。
可変入賞球装置15の下部には、特定遊技状態(大当り状態)においてソレノイド21によって開状態に制御される開閉板を用いた特別可変入賞球装置20が設けられている。特別可変入賞球装置20は大入賞口を開閉する手段である。特別可変入賞球装置20に入賞し遊技盤6の背面に導かれた入賞球のうち一方(V入賞領域:特別領域)に入った入賞球はV入賞スイッチ22で検出された後カウントスイッチ23で検出され、他方の領域に入った遊技球は、そのままカウントスイッチ23で検出される。遊技盤6の背面には、大入賞口内の経路を切り換えるためのソレノイド21Aも設けられている。
遊技球がゲート32を通過しゲートスイッチ32aで検出されると、普通図柄表示器10の表示の可変表示が開始される。この実施の形態では、左右のランプ(点灯時に図柄が視認可能になる)が交互に点灯することによって可変表示が行われ、例えば、可変表示の終了時に左側のランプが点灯すれば当たりになる。そして、普通図柄表示器10における停止図柄が所定の図柄(当り図柄)である場合に、可変入賞球装置15が所定回数、所定時間だけ開状態になる。普通図柄表示器10の近傍には、ゲート32を通過した入賞球数を表示する4つのLEDによる表示部を有する普通図柄始動記憶表示器41が設けられている。ゲート32への遊技球の通過があるごとに、普通図柄始動記憶表示器41は点灯するLEDを1増やす。そして、普通図柄表示器10の可変表示が開始されるごとに、点灯するLEDを1減らす。
遊技盤6には、複数の入賞口29,30,33,39が設けられ、遊技球の入賞口29,30,33,39への入賞は、それぞれ入賞口スイッチ29a,30a,33a,39aによって検出される。各入賞口29,30,33,39は、遊技媒体を受け入れて入賞を許容する領域として遊技盤6に設けられる入賞領域を構成している。なお、始動入賞口14や大入賞口も、遊技媒体を受け入れて入賞を許容する入賞領域を構成する。遊技領域7の左右周辺には、遊技中に点滅表示される装飾ランプ25が設けられ、下部には、入賞しなかった遊技球を吸収するアウト口26がある。また、遊技領域7の外側の左右上部には、効果音を発する2つのスピーカ27が設けられている。遊技領域7の外周には、天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cが設けられている。さらに、遊技領域7における各構造物(大入賞口等)の周囲には装飾LEDが設置されている。天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cおよび装飾用LEDは、遊技機に設けられている装飾発光体の一例である。
そして、この例では、左枠ランプ28bの近傍に、賞球払出中に点灯する賞球ランプ51が設けられ、天枠ランプ28aの近傍に、補給球が切れたときに点灯する球切れランプ52が設けられている。さらに、プリペイドカードが挿入されることによって球貸しを可能にするプリペイドカードユニット(以下、「カードユニット」という。)50が、パチンコ遊技機1に隣接して設置されている。
カードユニット50には、例えば、使用可能状態であるか否かを示す使用可表示ランプ、カードユニットがいずれの側のパチンコ遊技機1に対応しているのかを示す連結台方向表示器、カードユニット内にカードが投入されていることを示すカード投入表示ランプ、記録媒体としてのカードが挿入されるカード挿入口、およびカード挿入口の裏面に設けられているカードリーダライタの機構を点検する場合にカードユニットを解放するためのカードユニット錠が設けられている。
遊技者の操作により打球発射装置から発射された遊技球は、打球レールを通って遊技領域7に入り、その後、遊技領域7を下りてくる。遊技球が始動入賞口14に入り始動口スイッチ14aで検出されると、図柄の可変表示を開始できる状態であれば、特別図柄表示器8において特別図柄が可変表示(変動)を始める。図柄の可変表示を開始できる状態でなければ、保留記憶数を1増やす。
特別図柄表示器8における特別図柄の可変表示は、一定時間が経過したときに停止する。停止時の特別図柄(停止図柄)が大当り図柄(特定表示結果)であると、大当り遊技状態に移行する。すなわち、特別可変入賞球装置20が、一定時間経過するまで、または、所定個数(例えば10個)の遊技球が入賞するまで開放する。そして、特別可変入賞球装置20の開放中に遊技球がV入賞領域に入賞しV入賞スイッチ22で検出されると、継続権が発生し特別可変入賞球装置20の開放が再度行われる。継続権の発生は、所定回数(例えば15ラウンド)許容される。また、V入賞領域を設けずに、特別可変入賞球装置20の開放を常に決定されたラウンド数の最後のラウンドまで(例えば、15ラウンドまで)許容するようにしてもよい。
停止時の特別図柄表示器8における特別図柄が確率変動を伴う大当り図柄(確変図柄)である場合には、次に大当りになる確率が高くなる。すなわち、確変状態という遊技者にとってさらに有利な状態になる。
遊技球がゲート32を通過すると、普通図柄表示器10において普通図柄が可変表示される状態になる。また、普通図柄表示器10における停止図柄が所定の図柄(当り図柄)である場合に、可変入賞球装置15が所定時間だけ開状態になる。
この実施の形態では、所定の高開放条件が成立すると、遊技球が始動入賞しやすくなる(すなわち、特別図柄表示装置8や可変表示装置9における可変表示の実行条件が成立しやすくなる)ように制御された遊技状態である高ベース状態に移行する。この実施の形態では、後述する状態決定用乱数および状態判定テーブルにもとづいて高ベース状態に移行すると判定されると、所定の高開放条件が成立し、高ベース状態に移行される。なお、例えば、高ベース状態に移行するか否かを決定するための高ベース決定用乱数が所定の判定値と一致したと判定された場合に、所定の高開放条件が成立し、高ベース状態に移行されるようにしてもよい。また、例えば、特別図柄の停止図柄が所定の高ベース図柄であると判定された場合に、所定の高開放条件が成立し、高ベース状態に移行されるようにしてもよい。そして、高ベース状態である場合には、高ベース状態でない場合と比較して、可変入賞球装置15が開状態となる頻度が高められたり、可変入賞球装置15が開状態となる時間が延長されたりして、始動入賞しやすくなる。
なお、「ベース」とは、遊技領域に発射される遊技球数Xと、各入賞口14,29,30,33,39に入賞して払い出される遊技球数Yとの比率を意味する用語である。具体的には、ベースは、例えば[(単位時間あたりの遊技球数Y/単位時間あたりの遊技球数X)・100]の式によって算出される。従って、ベースが100を超える値である特別遊技状態に制御されているときには、遊技の進行に伴って遊技者の持ち球が増加していくことになり、ベースが100未満の値である特別遊技状態に制御されているときには、遊技の進行に伴って遊技者の持ち球が減少していくことになる。
具体的には、ベース=100のときは、単位時間あたりに遊技領域に発射される遊技球数Xと各入賞口14,29,30,33,39に入賞して払い出される遊技球数Yとが同じ数となるように各種の設定が行われていることを意味し、ベース=50のときは、単位時間あたりにX個の遊技球が遊技領域に発射されると、各入賞口14,29,30,33,39への入賞によって(X/2)個の遊技球が払い出されるように各種の設定が行われていることを意味し、ベース=200のときは、単位時間あたりにX個の遊技球が遊技領域に発射されると、各入賞口14,29,30,33,39への入賞によって2X個の遊技球が払い出されるように各種の設定が行われていることを意味する。
なお、所定の高開放条件が成立した場合、可変入賞球装置15が開状態となる時間を延長する(開放延長状態ともいう)のでなく、普通図柄表示器10における停止図柄が当り図柄になる確率が高められる普通図柄確変状態に移行することによって、高ベース状態に移行してもよい。普通図柄表示器10における停止図柄が所定の図柄(当り図柄)となると、可変入賞球装置15が所定回数、所定時間だけ開状態になる。この場合、普通図柄確変状態に移行制御することによって、普通図柄表示器10における停止図柄が当り図柄になる確率が高められ、可変入賞球装置15が開状態となる頻度が高まる。従って、普通図柄確変状態に移行すれば、可変入賞球装置15の開放時間と開放回数が高められ、始動入賞しやすい状態(高ベース状態)となる。すなわち、可変入賞球装置15の開放時間と開放回数は、普通図柄の停止図柄が当り図柄であったり、特別図柄の停止図柄が確変図柄である場合等に高められ、遊技者にとって不利な状態から有利な状態(始動入賞しやすい状態)に変化する。なお、開放回数が高められることは、閉状態から開状態になることも含む概念である。
また、所定の高開放条件が成立した場合、普通図柄表示器10における普通図柄の変動時間(可変表示期間)が短縮される普通図柄時短状態に移行することによって、高ベース状態に移行してもよい。普通図柄時短状態では、普通図柄の変動時間が短縮されるので、普通図柄の変動が開始される頻度が高くなり、結果として普通図柄が当りとなる頻度が高くなる。従って、普通図柄が当たりとなる頻度が高くなることによって、可変入賞球装置15が開状態となる頻度が高くなり、始動入賞しやすい状態(高ベース状態)となる。
また、所定の高開放条件が成立した場合、特別図柄や飾り図柄の変動時間(可変表示期間)が短縮される特別図柄時短状態に移行することによって、高ベース状態に移行してもよい。特別図柄時短状態では、特別図柄や飾り図柄の変動時間が短縮されるので、特別図柄や飾り図柄の変動が開始される頻度が高くなり(換言すれば、保留記憶の消化が速くなる。)、結果として、始動入賞しやすくなり(高ベース状態に移行し)大当り遊技が行われる可能性が高まる。
さらに、所定の高開放条件が成立した場合、上記に示した全ての状態(開放延長状態、普通図柄確変状態、普通図柄時短状態および特別図柄時短状態)に移行させることによって、始動入賞しやすくなる(高ベース状態に移行する)ようにしてもよい。また、上記に示した各状態(開放延長状態、普通図柄確変状態、普通図柄時短状態および特別図柄時短状態)のうちのいずれか複数の状態に移行させることによって、始動入賞しやすくなる(高ベース状態に移行する)ようにしてもよい。
次に、パチンコ遊技機1の裏面の構造について図3を参照して説明する。図3は、遊技機を裏面から見た背面図である。
図3に示すように、遊技機裏面側では、可変表示装置9を制御する演出制御用マイクロコンピュータが搭載された演出制御基板80を含む可変表示制御ユニット49、遊技制御用マイクロコンピュータ等が搭載された遊技制御基板(主基板)31が設置されている。また、球払出制御を行う払出制御用マイクロコンピュータ等が搭載された払出制御基板37が設置されている。なお、演出制御マイクロコンピュータは、遊技盤6に設けられている可変表示装置9を制御するとともに、各種装飾LED、装飾ランプ25、枠側に設けられている天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cを点灯制御し、スピーカ27からの音発生を制御する。
さらに、DC30V、DC21V、DC12VおよびDC5Vを作成する電源回路が搭載された電源基板910やタッチセンサ基板91が設けられている。電源基板910は、大部分が主基板31と重なっているが、主基板31に重なることなく外部から視認可能に露出した露出部分がある。この露出部分には、遊技機1における主基板31および各制御基板(演出制御基板80および払出制御基板37)や遊技機に設けられている各電気部品(電力が供給されることによって動作する部品)への電力供給を実行あるいは遮断するための電力供給許可手段としての電源スイッチが設けられている。さらに、露出部分における電源スイッチの内側(基板内部側)には、交換可能なヒューズが設けられている。
なお、各制御基板には、制御用マイクロコンピュータを含む制御手段が搭載されている。制御手段は、遊技制御手段等からのコマンドとしての指令信号(制御信号)に従って遊技機に設けられている電気部品(遊技用装置:球払出装置97、可変表示装置9、ランプやLEDなどの発光体、スピーカ27等)を制御する。以下、主基板31を制御基板に含めて説明を行うことがある。その場合には、制御基板に搭載される制御手段は、遊技制御手段と、遊技制御手段等からの指令信号に従って遊技機に設けられている電気部品を制御する手段とのそれぞれを指す。また、主基板31以外のマイクロコンピュータが搭載された基板をサブ基板ということがある。
遊技機裏面において、上方には、各種情報を遊技機外部に出力するための各端子を備えたターミナル基板160が設置されている。ターミナル基板160には、少なくとも、球切れ検出スイッチ167の出力を導入して外部出力するための球切れ用端子、賞球情報(賞球個数信号)を外部出力するための賞球用端子および球貸し情報(球貸し個数信号)を外部出力するための球貸し用端子が設けられている。また、中央付近には、主基板31からの各種情報を遊技機外部に出力するための各端子を備えた情報端子基板(情報出力基板)36が設置されている。
貯留タンク38に貯留された遊技球は誘導レール39を通り、カーブ樋を経て払出ケース40Aで覆われた球払出装置に至る。球払出装置の上部には、遊技媒体切れ検出手段としての球切れスイッチ187が設けられている。球切れスイッチ187が球切れを検出すると、球払出装置の払出動作が停止する。球切れスイッチ187は遊技球通路内の遊技球の有無を検出するスイッチであるが、貯留タンク38内の補給球の不足を検出する球切れ検出スイッチ167も誘導レール39における上流部分(貯留タンク38に近接する部分)に設けられている。球切れ検出スイッチ167が遊技球の不足を検知すると、遊技機設置島に設けられている補給機構から遊技機に対して遊技球の補給が行われる。
入賞にもとづく景品としての遊技球や球貸し要求にもとづく遊技球が多数払い出されて打球供給皿3が満杯になると、遊技球は、余剰球通路を経て余剰球受皿4に導かれる。さらに遊技球が払い出されると、感知レバー(図示せず)が貯留状態検出手段としての満タンスイッチ(図示せず)を押圧して、貯留状態検出手段としての満タンスイッチがオンする。その状態では、球払出装置内の払出モータの回転が停止して球払出装置の動作が停止するとともに打球発射装置の駆動も停止する。
図4は、主基板31における回路構成の一例を示すブロック図である。なお、図4には、遊技機に搭載されている払出制御基板37、インタフェース基板66、中継基板77および演出制御基板80も示されている。主基板31には、プログラムに従ってパチンコ遊技機1を制御する基本回路(遊技制御手段に相当)53と、ゲートスイッチ32a、始動口スイッチ14a、V入賞スイッチ22、カウントスイッチ23、入賞口スイッチ29a,30a,33a,39a、および全入賞計数スイッチ34からの信号を基本回路53に与える入力ドライバ回路58と、可変入賞球装置15を開閉するソレノイド16、特別可変入賞球装置20を開閉するソレノイド21および大入賞口内の経路を切り換えるためのソレノイド21Aを基本回路53からの指令に従って駆動する出力回路59とが搭載されている。
なお、ゲートスイッチ32a、始動口スイッチ14a、V入賞スイッチ22、カウントスイッチ23、入賞口スイッチ29a,30a,33a,39a、全入賞計数スイッチ34等のスイッチは、センサと称されているものでもよい。すなわち、遊技球を検出できる遊技媒体検出手段(この例では遊技球検出手段)であれば、その名称を問わない。入賞検出を行う始動口スイッチ14a、カウントスイッチ23、および入賞口スイッチ29a,30a,33a,39aの各スイッチは、入賞領域への遊技球の入賞を検出する入賞検出手段でもある。なお、ゲート32のような通過ゲートであっても、賞球の払い出しが行われるものであれば、通過ゲートへ遊技球が進入することが入賞になり、通過ゲートに設けられているスイッチ(例えばゲートスイッチ32a)が入賞検出手段になる。さらに、この実施の形態では、V入賞領域に入賞した遊技球が、V入賞スイッチ22で検出されるとともにカウントスイッチ23でも検出される。よって、大入賞口に入賞した遊技球数は、カウントスイッチ23による検出数に相当する。しかし、V入賞領域に入賞した遊技球はV入賞スイッチ22のみで検出されるようにし、大入賞口に入賞した遊技球数は、V入賞スイッチ22による検出数とカウントスイッチ23による検出数との和になるようにしてもよい。さらに、V入賞領域を設けず、最終ラウンド以外のラウンドでは、常に継続権が発生するようにしてもよい。
基本回路53は、ゲーム制御(遊技進行制御)用のプログラム等を記憶するROM54、ワークメモリとして使用される記憶手段(変動データを記憶する変動データ記憶手段)としてのRAM55、およびプログラムに従って制御動作を行うCPU56を有する遊技制御用マイクロコンピュータ560を含む。なお、この実施の形態では、CPU56とは、基本回路53のうち、プログラムに従って動作する中央処理装置(ROM54やRAM55などの記憶手段、I/Oポート部57などを除いた部分)を指し、後述するメイン処理や割込処理(タイマ割込処理や、シリアル通信回路505からの割り込み要求による割込処理)を実行する。また、遊技制御用マイクロコンピュータ560とは、基本回路53のうち、CPU56に加えて、ROM54やRAM55などの記憶手段、乱数回路503、シリアル通信回路505、I/Oポート部57などを含む部分を指し、各基板(払出制御基板37や演出制御基板80)が搭載するマイクロコンピュータと各種データの送受信を行う。
なお、本実施の形態では、「マイクロコンピュータが送受信する」等の表現を用いるが、具体的には、例えば、データ送信を行う場合、CPUがシリアル通信回路の送信データレジスタにデータをセットし、シリアル通信回路が送信データレジスタにセットされたデータを送信する。また、CPUがI/Oポート部を介してデータを送信する。また、例えば、データ受信を行う場合、受信データがシリアル通信回路の受信データレジスタに書き込まれ、CPUが受信データレジスタから受信データを読み込む。また、CPUがI/Oポート部を介してデータを受信する。
なお、本実施の形態では、遊技制御用マイクロコンピュータ560が、払出制御基板37が搭載する払出制御用マイクロコンピュータ370とシリアル通信を行う場合を説明する。
この実施の形態では、ROM54、ワークメモリとしての記憶手段であるRAM55およびI/Oポート部57は遊技制御用マイクロコンピュータ560に内蔵されている。すなわち、遊技制御用マイクロコンピュータ560は、1チップマイクロコンピュータである。1チップマイクロコンピュータは、少なくともRAM55が内蔵されていればよく、ROM54は外付けであっても内蔵されていてもよい。
なお、遊技制御用マイクロコンピュータ560においてCPU56がROM54に格納されているプログラムに従って制御を実行するので、以下、遊技制御用マイクロコンピュータ560が実行する(または、処理を行う)ということは、具体的には、CPU56がプログラムに従って制御を実行することである。このことは、主基板31以外の他の基板に搭載されているマイクロコンピュータについても同様である。また、遊技制御手段は、遊技制御用マイクロコンピュータ560を含む基本回路53で実現されている。
また、RAM55は、その一部または全部が電源基板910において作成されるバックアップ電源によってバックアップされている不揮発性記憶手段としてのバックアップRAMである。すなわち、遊技機に対する電力供給が停止しても、所定期間(バックアップ電源としてのコンデンサが放電してバックアップ電源が電力供給不能になるまで)は、RAM55の一部または全部の内容は保存される。特に、少なくとも、遊技状態すなわち遊技制御手段の制御状態に応じたデータ(特別図柄プロセスフラグ等)と未払出賞球数を示すデータは、バックアップRAMに保存される。遊技制御手段の制御状態に応じたデータとは、停電等が生じた後に復旧した場合に、そのデータにもとづいて、制御状態を停電等の発生前に復旧させるために必要なデータである。また、制御状態に応じたデータと未払出賞球数を示すデータとを遊技の進行状態を示すデータと定義する。なお、この実施の形態では、RAM55の全部が、電源バックアップされているとする。
遊技制御用マイクロコンピュータ560のリセット端子には、電源基板910からのリセット信号が入力される。また、払出制御用マイクロコンピュータのリセット端子にも、電源基板910からのリセット信号が入力される。なお、リセット信号がハイレベルになると遊技制御用マイクロコンピュータ560および払出制御用マイクロコンピュータは動作可能状態になり、リセット信号がローレベルになると遊技制御用マイクロコンピュータ560および払出制御用マイクロコンピュータは動作停止状態になる。従って、リセット信号がハイレベルである期間は、遊技制御用マイクロコンピュータ560および払出制御用マイクロコンピュータの動作を許容する許容信号が出力されていることになり、リセット信号がローレベルである期間は、遊技制御用マイクロコンピュータ560および払出制御用マイクロコンピュータの動作を停止させる動作停止信号が出力されていることになる。なお、リセット回路をそれぞれの制御基板(主基板31を含む)に搭載してもよいし、複数の制御基板のうちの一つまたは複数にリセット回路を搭載し、そこからリセット信号を他の制御基板に供給するようにしてもよい。
さらに、基本回路53の入力ポートには、払出制御基板37を経由して、電源基板910からの電源電圧が所定値以下に低下したことを示す電源断信号が入力される。また、基本回路53の入力ポートには、RAMの内容をクリアすることを指示するためのクリアスイッチが操作されたことを示すクリア信号が入力される。
クリア信号は、主基板31において分岐され、払出制御基板37にも供給される。なお、遊技制御用マイクロコンピュータ560が入力ポートを介して入力したクリア信号の状態を、出力ポートを介して払出制御基板37に出力してもよい。
この実施の形態では、演出制御基板80に搭載されている演出制御手段(演出制御用マイクロコンピュータで構成される。)が、中継基板77を介して遊技制御用マイクロコンピュータ560からの演出制御コマンドを受信し、飾り図柄を可変表示する可変表示装置9の表示制御や、スピーカ(音出力装置)27の音出力制御、各ランプ25,28a,28b,28cの表示制御等を行う。また、この実施の形態では、「演出制御」とは、可変表示装置9の表示制御や、スピーカ27の音出力制御、各ランプ25,28a,28b,28cの表示制御を行うことによって、遊技演出などの演出を行うことをいう。また、この実施の形態では、演出制御手段は、可変表示装置9の表示制御、スピーカ27の音出力制御、および各ランプ25,28a,28b,28cの表示制御を行う演出制御用マイクロコンピュータ100によって実現される。
図5は、中継基板77および演出制御基板80の回路構成例を示すブロック図である。なお、この実施の形態では、1つの制御基板(演出制御基板80)を用いて、可変表示装置9の表示制御や、音出力装置27の音出力制御、各ランプ25,28a,28b,28cの表示制御を行う場合を説明するが、複数の制御基板を用いて行ってもよい。例えば、演出制御に関して演出制御基板80に加えて、各ランプを制御するランプドライバ基板や、音出力装置を制御する音出力基板を設けてもよい。なお、この場合、演出制御手段は、演出制御用マイクロコンピュータ100に加えて、ランプドライバ基板および音出力基板に搭載される制御用マイクロコンピュータや制御回路によって実現される。
演出制御基板80は、演出制御用CPU101およびRAMを含む演出制御用マイクロコンピュータ100を搭載している。なお、RAMは外付けであってもよい。演出制御基板80において、演出制御用マイクロコンピュータ100は、内蔵または外付けのROM(図示せず)に格納されたプログラムに従って動作し、中継基板77を介して入力される主基板31からのストローブ信号(演出制御INT信号)に応じて、入力ドライバ102および入力ポート103を介して演出制御コマンドを受信する。また、演出制御用マイクロコンピュータ100は、演出制御コマンドにもとづいて、VDP(ビデオディスプレイプロセッサ)109に、LCDを用いた可変表示装置9の表示制御を行わせる。
演出制御コマンドおよび演出制御INT信号は、演出制御基板80において、まず、入力ドライバ102に入力する。入力ドライバ102は、中継基板77から入力された信号を演出制御基板80の内部に向かう方向にしか通過させない(演出制御基板80の内部から中継基板77への方向には信号を通過させない)信号方向規制手段としての単方向性回路でもある。
中継基板77には、主基板31から入力された信号を演出制御基板80に向かう方向にしか通過させない(演出制御基板80から中継基板77への方向には信号を通過させない)信号方向規制手段としての単方向性回路が搭載されている。単方向性回路として、例えばダイオードやトランジスタが使用される。図5には、ダイオードが例示されている。また、単方向性回路は、各信号毎に設けられる。
さらに、演出制御用マイクロコンピュータ100は、ランプドライバ352に対してランプを駆動する信号を出力する。ランプドライバ352は、ランプを駆動する信号を増幅して天枠ランプ28a、左枠ランプ28b、右枠ランプ28c、ボタンランプ130などの枠側に設けられている各ランプに供給する。また、枠側に設けられている装飾ランプ25に供給する。
また、演出制御用マイクロコンピュータ100は、音声合成用IC173に対して音番号データを出力する。音声合成用IC173は、音番号データに応じた音声や効果音を発生し増幅回路175に出力する。増幅回路175は、音声合成用IC173の出力レベルを、ボリューム176で設定されている音量に応じたレベルに増幅した音声信号をスピーカ27に出力する。音声データROM174には、音番号データに応じた制御データが格納されている。音番号データに応じた制御データは、所定期間(例えば飾り図柄の変動期間)における効果音または音声の出力態様を時系列的に示すデータの集まりである。
なお、ランプを駆動する信号および音番号データは、演出制御用マイクロコンピュータ100とランプドライバ352および音声合成IC173との間で、双方向通信(信号受信側から送信側に応答信号を送信するような通信)によって伝達される。
演出制御用マイクロコンピュータ100は、受信した演出制御コマンドに従ってキャラクタROM(図示せず)から必要なデータを読み出す。キャラクタROMは、可変表示装置9に表示される画像の中でも使用頻度の高いキャラクタ画像データ、具体的には、人物、文字、図形または記号等(飾り図柄を含む)をあらかじめ格納しておくためのものである。演出制御用マイクロコンピュータ100は、キャラクタROMから読み出したデータをVDP109に出力する。VDP109は、演出制御用マイクロコンピュータ100から入力されたデータにもとづいて可変表示装置9の表示制御を実行する。
この実施の形態では、可変表示装置9の表示制御を行うVDP109が演出制御基板80に搭載されている。VDP109は、演出制御用マイクロコンピュータ100とは独立したアドレス空間を有し、そこにVRAMをマッピングする。VRAMは、VDPによって生成された画像データを展開するためのバッファメモリである。そして、VDP109は、VRAM内の画像データを可変表示装置9に出力する。
図6は、主基板31における回路構成および主基板31から演出制御基板80に送信される演出制御コマンドの信号線を示すブロック図である。図6に示すように、この実施の形態では、主基板31が搭載する遊技制御用マイクロコンピュータ560は、演出制御信号送信用の8本の信号線CD0〜CD7を用いて、演出制御コマンドを演出制御基板80に送信する。また、主基板31と演出制御基板80との間には、ストローブ信号を送受するための演出制御INT信号の信号線も配線されている。
主基板31には、図6に示すように、始動口スイッチ14aからの配線が接続されている。また、主基板31には、大入賞口である特別可変入賞球装置20や、その他の入賞口への遊技球の入賞等を検出するための各種スイッチ29a,30a,33a,39aからの配線も接続されている。さらに、主基板31には、可変入賞球装置15を開閉するソレノイド16、特別可変入賞球装置20を開閉するソレノイド21および大入賞口内の経路を切り換えるためのソレノイド21Aへの配線が接続されている。
主基板31は、遊技制御用マイクロコンピュータ560、入力ドライバ回路58および出力回路59を搭載する。遊技制御用マイクロコンピュータ560は、クロック回路501、システムリセット手段として機能するリセットコントローラ502、乱数回路503a,503b、ゲーム制御用のプログラム等を記憶するROM54、ワークメモリとして使用されるRAM55、プログラムに従って動作するCPU56、CPU56に割込要求信号(タイマ割込による割込要求信号)を送出するCTC504、払出制御基板37や演出制御基板80が備えるマイクロコンピュータと非同期シリアル通信を行うシリアル通信回路505およびI/Oポート部57を内蔵する。
なお、この実施の形態では、シリアル通信回路505を内蔵するマイクロコンピュータを搭載した基板(例えば、主基板31)とは異なる基板(例えば、払出制御基板37や演出制御基板80)のマイクロコンピュータとの通信にシリアル通信回路505を用いる場合を説明するが、シリアル通信回路505は、シリアル通信回路505を内蔵するマイクロコンピュータを搭載した基板が備える別のマイクロコンピュータとシリアル通信を行ってもよい。例えば、同じ構成の2つのマイクロコンピュータが同じ基板に搭載されている場合に、各マイクロコンピュータが内蔵するシリアル通信回路が相互にシリアル通信を行ってもよい。
クロック回路501は、システムクロック信号を2(=128)分周して生成した所定の周期の基準クロック信号CLKを、各乱数回路503a,503bに出力する。リセットコントローラ502は、ローレベルの信号が一定期間入力されたとき、CPU56および各乱数回路503a,503bに所定の初期化信号を出力して、遊技制御用マイクロコンピュータ560をシステムリセットする。
また、この実施の形態では、図6に示すように、遊技制御用マイクロコンピュータ560は、発生可能な乱数の値の範囲が異なる2つの乱数回路503a,503bを搭載する。乱数回路503aは、12ビットの疑似乱数を発生する乱数回路(以下、12ビット乱数回路ともいう)である。12ビット乱数回路503aは、12ビットで発生できる範囲(すなわち、0から4095までの範囲)の値の乱数を発生する機能を備える。また、乱数回路503bは、16ビットの疑似乱数を発生する乱数回路(以下、16ビット乱数回路ともいう)である。16ビット乱数回路503bは、16ビットで発生できる範囲(すなわち、0から65535までの範囲)の値の乱数を発生する機能を備える。なお、この実施の形態では、遊技制御用マイクロコンピュータ560が2つの乱数回路を内蔵する場合を説明するが、遊技制御用マイクロコンピュータ560は、3以上の乱数回路を内蔵してもよい。また、この実施の形態では、12ビット乱数回路503aおよび16ビット乱数回路503bを包括的に表現する場合、または、12ビット乱数回路503aと16ビット乱数回路503bとのうちいずれかを指す場合に、乱数回路503という。
次に、乱数回路503の構成について説明する。図7は、乱数回路503の構成例を示すブロック図である。なお、この実施の形態において、12ビット乱数回路503aと16ビット乱数回路503bとの基本的な構成は同じである。図7に示すように、乱数回路503は、カウンタ521、比較器522、カウント値順列変更回路523、クロック信号出力回路524、カウント値更新信号出力回路525、乱数値読取信号出力回路526、乱数更新方式選択信号出力回路527、セレクタ528、乱数回路起動信号出力回路530、乱数値記憶回路531、反転回路532、ラッチ信号生成回路533およびタイマ回路534とを含む。
この実施の形態では、乱数回路503は、複数種類の識別情報の可変表示の表示結果を特定の表示結果とするか否か(例えば、特別図柄表示装置8の表示図柄の組み合わせを大当り図柄の組み合わせとするか否か)を判定するための大当り判定用の乱数を発生する。そして、遊技制御用マイクロコンピュータ560のCPU56は、乱数回路503が発生した乱数にもとづいて特定の表示結果とすると判定すると、遊技状態を遊技者にとって有利な特定遊技状態(例えば、大当り遊技状態)に移行させる。
カウンタ521は、セレクタ528によって選択された所定の信号を入力し、セレクタ528から入力する信号に応答してカウント値Cを出力する。この場合、カウンタ521は、所定の初期値を入力し、カウント値Cを一定の規則に従って初期値から所定の最終値まで循環的に更新して出力する。また、カウンタ521は、カウント値Cを最終値まで更新すると、カウント値Cを最終値まで更新した旨を示す通知信号をCPU56に出力する。この実施の形態では、カウンタ521から通知信号が出力されると、CPU56によって初期値が更新される。
この実施の形態において、カウンタ521は、セレクタ528から信号を入力するごとに(セレクタ528からの信号における立ち上がりエッヂが入力されるごとに)、カウント値Cを「0」から「4095」まで1ずつカウントアップする。また、カウンタ521は、カウント値Cを「4095」までカウントアップすると、カウント値Cを最終値まで更新した旨を示す通知信号をCPU56に出力する。すると、CPU56は、カウンタ521から通知信号を入力し、初期値を更新する。そして、カウンタ521は、CPU56によって更新された初期値から「4095」まで、再びカウント値Cをカウントアップする。また、「4095」までカウントアップすると、カウンタ521は、再び「0」からカウントを開始する。そして、カウンタ521は、更新後の初期値の1つ前の値(最終値)までカウントアップすると、通知信号をCPU56に出力する。なお、この実施の形態では、比較器522は、後述するように、全てのカウント値を入力すると通知信号をカウンタ521に出力する。この場合、カウンタ521は、比較器522から通知信号を入力すると、カウント値をリセットして「0」にする。
なお、比較器522は、入力したカウント値が乱数最大値設定レジスタ535に設定されている乱数最大値より大きいか否かを判断し、カウント値が乱数最大値より大きい(乱数最大値を超えた)と判断すると、通知信号をカウンタ521に出力してもよい。この場合、例えば、比較器522は、カウント値が乱数最大値を超えたと判断すると、クロック信号出力回路524が次に乱数発生用クロック信号SI1を出力する前に、通知信号をカウンタ521に出力する。例えば、乱数最大値設定レジスタ535に乱数最大値「256」が設定されている場合を考える。この場合、カウンタ521が「0」から「256」までカウントアップし、さらにカウント値「257」を出力すると、比較器522は、入力したカウント値「257」が乱数最大値「256」を超えたと判断し、カウンタ521に通知信号を出力する。比較器522から通知信号を入力すると、カウンタ521は、クロック信号出力回路524からの乱数発生用クロック信号SI1の入力を待つことなく、カウント値を「258」に更新し出力する。以上の処理を繰り返し実行することによって、比較器522は、カウント値「257」から「4095」まで入力している間、カウント値が乱数最大値を超えていると判断して、繰り返しカウンタ521に通知信号を出力する。そして、カウンタ521は、比較器522から通知信号を入力している間、クロック信号出力回路524からの乱数発生用クロック信号SI1の入力を待つことなく、カウント値を繰り返し更新し出力する。そのようにすることによって、クロック信号出力回路524が次に乱数発生用クロック信号SI1を出力するまでの間に、「257」から「4095」までカウント値を高速にカウントアップさせるように制御し、「257」から「4095」までの乱数値を読み飛ばす(乱数値記憶回路531に記憶させない)ように制御する。
カウント値順列変更回路523は、カウント値順列変更レジスタ(RSC)536、更新規則選択レジスタ(RRC)542および更新規則メモリ543を含む。カウント値順列変更レジスタ536は、カウンタ521がカウントアップするカウント値Cの更新順である順列(初期値から最終値までの並び順)を変更させるためのカウント値順列変更データ「01h」を格納する。カウント値順列変更回路523は、カウント値順列変更レジスタ536に数値順列変更データ「01h」が格納されているとき、カウンタ521がカウントアップして更新するカウント値Cの順列を、カウント値順列変更データ「01h」が格納されていないときとは異なる順列に変更する。この場合、カウント値順列変更回路523は、数値順列変更データ「01h」が格納されているとき、カウント値の順列の変更に用いる更新規則を切り換える。また、カウント値の順列の変更に用いる更新規則を切り換えた後に、カウンタ521がカウント値の更新を開始すると、カウント値順列変更レジスタ536のカウント値順列変更データは、CPU56によって、「01h」から初期値である「0(=00h)」に戻される(クリアされる)。
なお、CPU56によってカウント値順列変更データをクリアするのでなく、乱数回路503側でカウント値順列変更データをクリアするようにしてもよい。例えば、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」が書き込まれたことにもとづいて、更新規則選択レジスタ(RRC)542にレジスタ値が設定されると、カウント値順列変更回路523は、カウント値順列変更レジスタ536のレジスタ値をクリアするようにしてもよい。
図8は、更新規則選択レジスタ542の例を示す説明図である。更新規則選択レジスタ542は、カウンタ521が出力するカウント値の並び順の並べ替え(順列の変更)に用いる更新規則を設定するレジスタである。この実施の形態では、更新規則選択レジスタ542にレジスタ値が設定されることによって、カウンタ521が出力するカウント値の順列の変更に用いる更新規則が設定される。図8に示すように、更新規則選択レジスタ542は、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、更新規則選択レジスタ542は、ビット0〜ビット3が書込および読出ともに可能な状態に構成されている。また、更新規則選択レジスタ542は、ビット4〜ビット7が書込および読出ともに不可能な状態に構成されている。したがって、更新規則選択レジスタ542のビット4〜ビット7に値を書き込む制御を行っても無効とされ、ビット4〜ビット7から読み出す値は全て「0(=0000b)」である。
更新規則選択レジスタ542の値(レジスタ値)は、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」が書き込まれたことに応じて、レジスタ値が「0(=00h)」から「15(=0Fh)」まで循環的に更新される。すなわち、カウント値順列変更レジスタ536にカウント値順列データ「01h」が書き込まれるごとに、更新規則選択レジスタ542のレジスタ値は、「0」から「1」ずつ加算され、「15」になると再び「0」に戻る。
図9は、更新規則メモリ543の例を示す説明図である。図9に示すように、更新規則メモリ543は、更新規則選択レジスタ542の値(レジスタ値)と、カウント値の更新規則とを対応付けて格納している。図9に示す例では、例えば、更新規則選択レジスタ542にレジスタ値1が設定されている場合、更新規則Bを用いて、カウンタ521が出力するカウント値の順列が変更されることが分かる。なお、図9において、更新規則Aは、カウンタ521がカウント値Cを更新する規則と同一の更新規則であり、レジスタ値「0」に対応づけて更新規則メモリ543に格納される。また、更新規則メモリ543には、カウンタ521がカウント値Cを更新する更新規則とは異なる更新規則B〜Pが、レジスタ値「1」〜「15」に対応づけて格納される。
カウント値順列変更回路523は、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」が書き込まれている場合、まず、カウンタ521からカウント値の最終値「4095」が最初に入力されるまで、現在設定されている更新規則に従って、そのままカウント値を出力する。そして、カウント値順列変更回路523は、カウンタ521からカウント値の最終値「4095」を入力すると、カウント値の更新規則を変更する。なお、CPU56によって初期値が変更されている場合には、カウント値順列変更回路523は、カウンタ521から変更後の最終値(初期値の1つ前の値)まで入力すると、カウント値の更新規則を変更することになる。
カウント値順列変更回路523は、更新規則選択レジスタ542のレジスタ値に対応する更新規則を更新規則メモリ543から選択し、カウント値の順列の変更に用いる更新規則として設定する。また、カウント値順列変更回路523は、カウンタ521によって再び初期値「0」から順にカウント値の更新が開始されると、設定した更新規則に従って、カウント値の初期値から最終値までの順列を変更する。なお、CPU56によって初期値が変更されている場合には、カウント値順列変更回路523は、カウンタ521によって変更後の初期値から順にカウント値の更新が開始されると、設定した更新規則に従って、カウント値の初期値から最終値までの順列を変更することになる。そして、カウント値順列変更回路523は、変更した順列に従ってカウント値を出力する。
なお、この実施の形態では、後述する乱数最大値設定レジスタ535に乱数最大値が設定されていることによって、発生させる乱数の最大値が制限されている場合、カウント値順列変更回路523は、カウント値Cを乱数最大値以下に制限して順列を変更して出力する。例えば、乱数最大値設定レジスタ535に乱数最大値「256」が設定されているものとし、カウント値順列変更回路523が、更新規則Aから更新規則Bに変更して、カウント値の順列を変更するものとする。この場合、カウント値順列変更回路523は、比較器522の乱数最大値設定レジスタ535に設定されている乱数最大値「256」にもとづいて、更新規則Bに従って、カウント値の順列を「256→255→・・・→0」に変更して出力する。
以上のように、カウント値順列変更回路523は、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」が書き込まれている場合、更新規則を切り替えて用いることによって、カウント値Cの順列を変更して出力する。そのため、乱数回路503が生成する乱数のランダム性を向上させることができる。
図10は、カウント値順列変更回路523が、カウンタ521が出力するカウント値の順列を変更する場合の例を示す説明図である。図10に示すように、CPU56は、所定のタイミングで、カウント値順列変更データ「01h」をカウント値順列変更レジスタ536に書き込む。すると、更新規則選択レジスタ542のレジスタ値が1加算される。例えば、更新規則選択レジスタ542のレジスタ値が「0」から「1」に更新される。レジスタ値が更新されると、カウント値順列変更回路523は、カウンタ521から最初にカウント値の最終値「4095」が入力されるまで、更新前のレジスタ値「0」に対応する「更新規則A」に従ってカウント値を更新して出力する。このとき、カウント値順列変更回路523は、更新規則Aに従って、「0→1→・・・→4095」の順列でカウント値を出力する。
カウンタ521からカウント値の最終値「4095」が入力されると、カウント値順列変更回路523は、更新規則メモリ543から、更新後のレジスタ値「1」に対応する「更新規則B」を選択して設定する。カウント値順列変更回路523は、カウンタ521から再び初期値「0」以降のカウント値の入力を開始すると、選択設定した「更新規則B」に従って、カウント値の順列を変更して出力する。本例では、カウント値順列変更回路523は、順列を「0→1→・・・→4095」から「4095→4094→・・・→0」に変更して、カウント値を出力する。
その後、カウント値順列変更レジスタ536は、後述するように、カウント値順列変更回路523が切り替え後の更新規則に従ってカウント値の更新動作を開始したことに応じてリセットされる。そして、次にカウント値順列変更データ「01h」がカウント値順列変更レジスタ536に書き込まれるまで、カウント値順列変更回路523は、「4095→4094→・・・→0」のままの順列で、カウント値を出力し続ける。
CPU56によってカウント値順列変更データ「01h」がカウント値順列変更レジスタ536に再度書き込まれると、カウント値順列変更レジスタ536のレジスタ値が「1」から「2」に更新される。そして、カウンタ521からカウント値の最終値「4095」を入力すると、カウント値順列変更回路523は、更新規則メモリ543から、レジスタ値「2」に対応する「更新規則C」を選択して設定する。カウント値順列変更回路523は、カウンタ521から再び初期値「0」以降のカウント値の入力を開始すると、選択設定した「更新規則C」に従って、カウント値の順列を更新して出力する。本例では、カウント値順列変更回路523は、順列を「4095→4094→・・・→0」から「1→3→…→4095→0→・・・→4094」に変更して、カウント値を出力する。
以上のように、カウント値順列変更レジスタ536をリセットした後、カウント値順列データ「01h」をカウント値順列変更レジスタ536に再度書き込むことによって、カウント値の順列をさらに変更することができる。
図11は、カウント値順列変更レジスタ536の例を示す説明図である。カウント値順列変更レジスタ536は、カウンタ521がカウントアップするカウント値の順列を変更させるためのカウント値順列変更データ「01h」を設定するレジスタである。図11に示すように、カウント値順列変更レジスタ536は、読出可能な8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、カウント値順列変更レジスタ536は、ビット0だけが書込および読出ともに可能な状態に構成されている。すなわち、カウント値順列変更レジスタ536は、ビット1〜ビット7が書込および読出ともに不可能な状態に構成されている。したがって、カウント値順列変更レジスタ536のビット1〜ビット7に値を書き込む制御を行っても無効とされ、ビット1〜ビット7から読み出す値は全て「0(=0000000b)」である。
なお、カウント値順列変更レジスタ536の値は、カウント値順列変更回路523が切り替え後の更新規則に従ってカウント値の更新動作を開始したことに応じて、CPU56によってリセットされる。この場合、CPU56は、カウント値順列変更レジスタ536に書き込まれている値を、カウント値順列変更データ「01h」から初期値である「0(=00h)」に戻す。
比較器522は、ランダムRの最大値(乱数最大値)を指定するための乱数最大値設定データを格納する乱数最大値設定レジスタ(RMX)535を備える。比較器522は、乱数最大値設定レジスタ535に格納されている乱数最大値設定データに示される乱数最大値に従って、カウンタ521が更新するカウント値の更新範囲を制限する。この実施の形態では、比較器522は、カウンタ521から入力するカウント値と乱数最大値設定レジスタ535に格納されている乱数最大値設定データ(例えば「00FFh」)に示される乱数最大値(例えば「256」)とを比較する。そして、比較器522は、入力したカウント値が乱数最大値以下であると判断すると、入力したカウント値を乱数値記憶回路531に出力する。
この実施の形態では、比較器522は、具体的には、以下のような制御を行う。比較器522は、カウント値の初期値更新の際に、CPU56からカウント値の初期値をもらい、初期値から乱数最大値までのカウント値の個数を求める。例えば、カウント値の初期値が「157」であり乱数最大値が「256」である場合、比較器522は、初期値から乱数最大値までのカウント値の個数を「100個」と求める。また、比較器522は、カウント値順列変更回路523からカウント値を入力するに従って、初期値からカウント値をいくつ入力したかをカウントアップする。初期値からカウント値を入力した回数が「100回」に達すると、比較器522は、初期値「157」から最大値「256」までの全てのカウント値を入力したと判断する。そして、比較器522は、全てのカウント値を入力した旨の通知信号をカウンタ521に出力する。カウント値の個数で判断することによって、カウント値順列変更回路523によってカウント値の順列が変更されている場合であっても、比較器522は、カウント値の更新範囲を乱数最大値以下に制限し、全てのカウント値を入力した際にカウンタ521に通知信号を出力することができる。
カウント値の更新範囲を比較器522が制限する動作について説明する。なお、本例では、カウント値順列変更回路523が更新規則Aを選択し、乱数最大値設定レジスタ535に乱数最大値「256」が設定されている場合を説明する。
カウンタ521が「0」から「256」までカウント値を更新している間、カウント値順列変更回路523は、乱数最大値設定レジスタ535に設定されている乱数最大値「256」にもとづいて、更新規則Aに従って、「0」から「256」までのカウント値をそのまま比較器522に出力する。この場合、カウント値順列変更回路523は、比較器522から乱数最大値「256」の値をもらい、カウンタ521から入力するカウント値が乱数最大値より大きいか否かを判断し、更新規則が変更されているとき(例えば、更新規則B)であっても、乱数最大値設定レジスタ535に設定されている乱数最大値「256」にもとづいて、「257」から「4095」までのカウント値を比較器522に出力しない。カウンタ521は、例えば、初期値が「0」と設定されているときに、最終値「256」までカウント値を更新すると、通知信号をCPU56に出力する。通知信号を出力すると、CPU56によって、カウンタ521のカウント値の初期値が変更される。本例では、CPU56によって、初期値が「50」に変更されるものとする。
なお、カウント値が乱数最大値「256」より大きいか否かをカウント値順列変更回路523が判断するのでなく、比較器522が判定するようにしてもよい。この場合、例えば、比較器522は、カウント値が乱数最大値設定レジスタ535に設定されている乱数最大値より大きいか否かを判断し、カウント値が乱数最大値より大きいと判断すると、通知信号をカウンタ521に出力する。そして、比較器522は、カウント値が乱数最大値を超えたと判断すると、クロック信号出力回路524が次に乱数発生用クロック信号SI1を出力する前に、通知信号をカウンタ521に出力する。そのようにすることによって、比較器522は、クロック信号出力回路524が次に乱数発生用クロック信号SI1を出力するまでの間に、「257」から「4095」までカウント値を高速にカウントアップさせるようにカウンタ521を制御する。そのようにすることによって、カウント値順列変更回路523からの値が「257」未満のときだけカウント値を乱数値記憶回路531に出力するようにし、カウント値順列変更回路523からの値が「257」以上のときにはカウント値を高速で更新させるようにすることができる。
更新規則Aにもとづいて、カウント値順列変更回路523から、「0」から「255」までカウント値を入力している間、比較器522は、入力するカウント値が乱数最大値「256」以下であるので、入力したカウント値をそのまま乱数値記憶回路531に出力する。次に、カウント値順列変更回路523から入力するカウント値が「256」に達すると、比較器522は、入力したカウント値を乱数値記憶回路531に出力するとともに、初期値から最大値までの全てのカウント値を入力した旨の通知信号をカウンタ521に出力する。具体的には、比較器522は、カウント値の初期値変更の際に、CPU56からカウント値の初期値(本例では、「0」)をもらい、初期値「0」から乱数最大値(本例では、「256」)までのカウント値の個数(本例では、「257個」)を求める。そして、カウント値順列変更回路523から入力したカウント値の個数が257個に達すると、全てのカウント値を入力した旨の通知信号をカウンタ521に出力する。なお、本例では、CPU56によって初期値が「50」に変更されるので、カウンタ521は、比較器522から通知信号を入力しても、カウント値をリセットするとなく、変更後の初期値「50」からカウント値の更新を行う。
カウンタ521が変更後の初期値「50」から「256」までカウント値を更新している間、カウント値順列変更回路523は、乱数最大値設定レジスタ535に設定されている乱数最大値「256」にもとづいて、更新規則Aに従って、「50」から「256」までのカウント値をそのまま比較器522に出力する。また、カウント値順列変更回路523は、乱数最大値設定レジスタ535に設定されている乱数最大値「256」にもとづいて、「257」から「4095」までのカウント値を比較器522に出力せず、カウンタ521の更新するカウント値が1周したとき(257回更新したとき)に、カウント値順列変更レジスタ536にカウント値順列変更データが書き込まれた場合には、カウント値順列変更回路523は、カウント値の順列を変更して出力する。例えば、更新規則が更新規則Bに変更された場合、カウント値順列変更回路523は、カウント値の順列を「256→255→・・・→50」に変更して出力する。
カウント値順列変更回路523から、「256」から「50」までカウント値を入力している間、比較器522は、入力したカウント値をそのまま乱数値記憶回路531に出力する。次に、カウント値順列変更回路523から入力するカウント値が「50」に達すると、比較器522は、入力したカウント値を乱数値記憶回路531に出力するとともに、初期値から最大値までの全てのカウント値を入力した旨の通知信号をカウンタ521に出力する。具体的には、比較器522は、カウント値の初期値変更の際に、CPU56からカウント値の初期値(本例では、「50」)をもらい、初期値「50」から乱数最大値(本例では、「256」)までのカウント値の個数(本例では、「207個」)を求める。そして、カウント値順列変更回路523から入力したカウント値の個数が207個に達すると、全てのカウント値を入力した旨の通知信号をカウンタ521に出力する。
なお、カウント値順列変更回路523がカウント値の順列を変更した場合であっても、比較器522は、カウント値の個数が207個に達すると、通知信号をカウンタ521に出力する。そのようにすることによって、カウント値の順列が変更された場合であっても、初期値「50」から最大値「256」までの全てのカウント値を入力したことにもとづいて、通知信号をカウンタ521に出力できる。
比較器522から通知信号を入力すると、カウンタ521は、カウント値の初期値をリセットし「0」に戻す。そして、カウンタ521は、「0」からカウント値の更新を行う。カウンタ521の値が「0」から再び更新がされると、カウンタ521からのカウント値にもとづいて、カウント値順列変更回路523は「49」〜「0」までのカウント値を比較器522に出力し、比較器522はカウント値順列変更回路523からのカウント値の入力にもとづいて乱数値記憶回路531にカウント値を出力する。そして、カウンタ521は、最終値(本例では、「49」)までカウント値を更新すると、通知信号をCPU56に出力する。通知信号を出力すると、CPU56によって、カウンタ521のカウント値の初期値が再び変更される。
以上のような動作を繰り返すことにより、比較器522は、カウンタ521に、「0」から乱数最大値「256」まで連続的にカウント値をカウントアップさせ、「0」から「256」までの値を乱数値記憶回路531にランダムR(乱数値)として記憶させる。すなわち、比較器522は、カウント値の更新範囲を乱数最大値「256」以下に制限して、カウンタ521にカウント値を更新させる。
図12は、乱数最大値設定レジスタ535の例を示す説明図である。図12(a)は、12ビット乱数回路503aが搭載する乱数最大値設定レジスタ535の例を示す。また、図12(b)は、16ビット乱数回路503bが搭載する乱数最大値設定レジスタ535の例を示す。まず、12ビット乱数回路503aが搭載する乱数最大値設定レジスタ535について説明する。図12(a)に示すように、12ビット乱数回路503aにおいて、乱数最大値設定レジスタ535は、16ビットレジスタであり、初期値が「4095(=0FFFh)」に設定されている。乱数最大値設定レジスタ535は、ビット0〜ビット11が書込および読出ともに可能な状態に構成されている。また、乱数最大値設定レジスタ535は、ビット12〜ビット15が書込および読出ともに不可能な状態に構成されている。したがって、12ビット乱数回路503aにおいて、乱数最大値設定レジスタ535のビット12〜ビット15に値を書き込む制御を行っても無効とされ、ビット12〜ビット15から読み出す値は全て「0(=0000b)」である。
また、乱数最大値設定レジスタ535に設定される乱数最大値は、所定の下限値が定められている。この実施の形態では、乱数最大値設定レジスタ535に下限値「256」より小さい値を指定する乱数最大値設定データ「0000h」〜「00FEh」が書き込まれた場合、CPU56は、乱数最大値設定レジスタ535に、初期値「4095」を指定する乱数最大値設定データ「0FFFh」を設定しなおす。すなわち、乱数最大値設定レジスタ535に設定可能な乱数最大値は「256」から「4095」までであり、CPU56は、下限値「256」より小さい値が設定されていると判断すると、乱数最大値を所定値「4095」に設定しなおす。なお、CPU56は、リセットコントローラ502によって遊技制御用マイクロコンピュータ560がシステムリセットされるまで、乱数最大値設定データが書き込まれた乱数最大値設定レジスタ535を書込不可能に制御する。なお、CPU56により書込不可能に制御するのでなく、乱数最大値設定レジスタ535は、データが書き込まれた後にリセット信号を入力するまで書込不可能となるように形成されていてもよい。
次に、16ビット乱数回路503bが搭載する乱数最大値設定レジスタ535について説明する。図12(b)に示すように、16ビット乱数回路503bにおいて、乱数最大値設定レジスタ535は、16ビットレジスタであり、初期値が「65535(=FFFFh)」に設定されている。また、16ビット乱数回路503bにおいて、乱数最大値設定レジスタ535は、ビット0〜ビット15の全てのビットが書込および読出ともに可能な状態に構成されている。
また、乱数最大値設定レジスタ535に下限値「512」より小さい値を指定する乱数最大値設定データ「0000h」〜「00FEh」が書き込まれた場合、CPU56は、乱数最大値設定レジスタ535に、初期値「65535」を指定する乱数最大値設定データ「FFFFh」を設定しなおす。すなわち、乱数最大値設定レジスタ535に設定可能な乱数最大値は「512」から「65535」までであり、CPU56は、下限値「512」より小さい値が設定されていると判断すると、乱数最大値を所定値「65535」に設定しなおす。なお、CPU56は、リセットコントローラ502によって遊技制御用マイクロコンピュータ560がシステムリセットされるまで、乱数最大値設定データが書き込まれた乱数最大値設定レジスタ535を書込不可能に制御する。この場合、CPU56により書込不可能に制御するのでなく、乱数最大値設定レジスタ535は、データが書き込まれた後にリセット信号を入力するまで書込不可能となるように形成されていてもよい。
クロック信号出力回路524は、セレクタ528および反転回路532に出力するクロック信号の周期(すなわち、カウント値の更新周期)を指定するための周期設定データを格納する周期設定レジスタ(RPS)537を備える。クロック信号出力回路524は、周期設定レジスタ537に格納されている周期設定データに基づいて、遊技制御用マイクロコンピュータ560が搭載するクロック回路501から入力する基準クロック信号CLKを分周して、乱数回路503内部で乱数値の生成に用いるクロック信号(乱数発生用クロック信号SI1)を生成する。そのようにすることによって、クロック信号出力回路524は、クロック信号を所定回数入力したことを条件に、カウント値Cを更新させるための乱数発生用クロック信号SI1をカウンタ521に出力するように動作する。なお、周期設定データとは、クロック回路501から入力した基準クロック信号CLKを何分周させるかを設定するためのデータである。また、クロック出力回路524は、生成した乱数発生用クロック信号SI1をセレクタ528および反転回路532に出力する。例えば、周期設定レジスタ537に周期設定データ「0Fh(=16)」が書き込まれている場合、クロック信号出力回路524は、クロック回路501から入力する基準クロック信号CLKを16分周して乱数発生用クロック信号SI1を生成する。この場合、クロック信号出力回路524が生成する乱数発生用クロック信号SI1の周期は、「システムクロック信号の周期×128×16」となる。
図13は、周期設定レジスタ537の例を示す説明図である。図13に示すように、周期設定レジスタ537は、8ビットレジスタであり、初期値が「256(=FFh)」に設定されている。また、周期設定レジスタ537は、書込および読出ともに可能な状態に構成されている。
また、周期設定レジスタ537に設定される周期設定データの値は、所定の下限値が定められている。この実施の形態では、周期設定レジスタ537に下限値「システムクロック信号の周期×128×7」より小さい値を指定する周期設定データ「00h〜06h」が書き込まれた場合、CPU56は、周期設定レジスタ537に下限値「システムクロック信号の周期×128×7」を指定する周期設定データ「07h」を設定しなおす。すなわち、周期設定レジスタ537に設定可能な周期は「システムクロック信号の周期×128×7」から「システムクロック信号の周期×128×256」までであり、CPU56は、下限値より小さい値が設定されていると判断すると、周期設定データを設定しなおす。なお、CPU56は、リセットコントローラ502によって遊技制御用マイクロコンピュータ560がシステムリセットされるまで、周期設定データが書き込まれた周期設定レジスタ537を書込不可能に制御する。なお、CPU56により書込不可能に制御するのでなく、周期設定レジスタ537は、データが書き込まれた後にリセット信号を入力するまで書込不可能となるように形成されていてもよい。
なお、周期設定レジスタ537に下限値としての周期設定データを設定することなく、設定された周期設定データに基づいて、例えばクロック信号出力回路524が基準クロック信号CLKをそのままカウンタ521および反転回路532に出力するようにしてもよい。この場合、CPU56は、周期設定レジスタ537に設定される周期設定データの値を下限値と比較して設定しなおす処理を行う必要がなくなる。また、カウンタ521は、クロック信号出力回路524から基準クロック信号CLKを入力する毎にカウント値Cを更新することになる。
カウント値更新信号出力回路525は、カウント値更新データ「01h」を格納するカウント値更新レジスタ(RGN)538を備える。カウント値更新データとは、カウント値の更新を要求するためのデータである。カウント値更新信号出力回路525は、カウント値更新レジスタ538にカウント値更新データ「01h」が書き込まれたことに応じて、カウント値更新信号SI3をセレクタ528に出力する。
図14は、カウント値更新レジスタ538の例を示す説明図である。図14に示すように、カウント値更新レジスタ538は、読出不能な8ビットレジスタであり、ビット0のみが書込可能な状態に構成されている。したがって、カウント値更新レジスタ538のビット1〜ビット7に値を書き込む制御を行っても無効とされる。
乱数値読取信号出力回路526は、乱数値取込データ「01h」を格納する乱数値取込レジスタ(RLT)539を備える。乱数値取込データとは、乱数値記憶回路531へのカウント値の取込を要求するためのデータである。乱数値読取信号出力回路526は、乱数値取込レジスタ539に乱数値取込データ「01h」が書き込まれたことに応じて、乱数値の読み取りを要求するための乱数値読取信号をラッチ信号生成回路533に出力する。
図15は、乱数値取込レジスタ539の例を示す説明図である。図15に示すように、乱数値取込レジスタ539は、読出不能な8ビットレジスタである。また、乱数値取込レジスタ539は、ビット0だけが書込可能な状態に構成されている。すなわち、乱数値取込レジスタ539のビット1〜ビット7に値を書き込む制御を行っても無効とされる。
乱数更新方式選択信号出力回路527は、乱数更新方式選択データを格納する乱数更新方式選択レジスタ(RTS)540を備える。乱数更新方式選択データとは、ランダムRの値を更新する方式である各乱数更新方式のうち、いずれかの乱数更新方式を指定するためのデータである。乱数更新方式選択信号出力回路527は、乱数更新方式選択レジスタ540に乱数更新方式選択データが書き込まれたことに応じて、書き込まれた乱数更新方式選択データにより指定される乱数更新方式に対応する乱数更新方式選択信号を、セレクタ528およびラッチ信号生成回路533に出力する。
図16(A)は、乱数更新方式選択レジスタ540の例を示す説明図である。図16(A)に示すように、乱数更新方式選択レジスタ540は、8ビットレジスタであり、初期値が「00h」に設定されている。また、乱数更新方式選択レジスタ540は、ビット0〜ビット1が書込および読出ともに可能な状態に構成されている。また、乱数更新方式選択レジスタ540は、ビット2〜ビット7が書込および読出ともに不可能な状態に構成されている。したがって、乱数更新方式選択レジスタ540のビット2〜ビット7に値を書き込む制御を行っても無効とされ、ビット2〜ビット7から読み出す値は全て「0(=000000b)」である。
図16(B)は、乱数更新方式選択レジスタ540に書き込まれる乱数更新方式選択データの一例の説明図である。図16(B)に示すように、乱数更新方式選択データは、2ビットのデータから構成される。乱数更新方式選択データ「01b」は、第1の乱数更新方式を指定するために用いられる。また、乱数更新方式選択データ「10b」は、第2の乱数更新方式を指定するために用いられる。なお、この実施の形態では、第1の乱数更新方式とは、カウント値更新信号出力回路525からカウント値更新信号SI3が出力されたことをトリガとして、カウント値を更新する方式である。また、第2の乱数更新方式とは、クロック信号出力回路524から乱数発生用クロック信号SI1が出力されたことをトリガとして、カウント値を更新する方式である。また、乱数更新方式選択データ「01b」または「10b」が乱数更新方式選択レジスタ540に書き込まれた場合、乱数回路503は起動可能な状態となる。一方、乱数更新方式選択データ「00b」または「11b」が乱数更新方式選択レジスタ540に書き込まれた場合、乱数回路503は起動不能な状態となる。
セレクタ528は、カウント値更新信号出力回路525から出力されるカウント値更新信号SI3、またはクロック信号出力回路524から出力される乱数発生用クロック信号SI1のいずれかを選択してカウンタ521に出力する。セレクタ528は、乱数更新方式選択信号出力回路527から第1の乱数更新方式に対応する乱数更新方式選択信号(第1の乱数更新方式選択信号ともいう)が入力されると、カウント値更新信号出力回路525から出力されるカウント値更新信号SI3を選択してカウンタ521に出力する。一方、セレクタ528は、乱数更新方式選択信号出力回路527から第2の乱数更新方式に対応する乱数更新方式選択信号(第2の乱数更新方式選択信号ともいう)が入力されると、クロック信号出力回路524から出力される乱数発生用クロック信号SI1を選択してカウンタ521に出力する。なお、セレクタ528は、乱数更新方式選択信号出力回路527から第1の更新方式選択信号が入力されると、カウント値更新信号出力回路525から出力されるカウント値更新信号SI3に応じて、クロック信号出力回路524から出力される乱数発生用クロック信号SI1に同期した数値データの更新を指示する数値更新指示信号を、カウンタ521に出力してもよい。
乱数回路起動信号出力回路530は、乱数回路起動データ「80h」を格納する乱数回路起動レジスタ(RST)541を備える。乱数回路起動データとは、乱数回路503の起動を要求するためのデータである。乱数回路起動信号出力回路530は、乱数回路起動レジスタ541に乱数回路起動データ「80h」が書き込まれると、所定の乱数回路起動信号をカウンタ521およびクロック信号出力回路537に出力し、カウンタ521およびクロック信号出力回路524をオンにさせる。そして、カウンタ521によるカウント値の更新動作とクロック信号出力回路524による内部クロック信号の出力動作とを開始させることによって、乱数回路503を起動させる。
図17は、乱数回路起動レジスタ541の例を示す説明図である。図17に示すように、乱数回路起動レジスタ541は、8ビットレジスタであり、初期値が「00h」に設定されている。乱数回路起動レジスタ541は、ビット7だけが書込および読出ともに可能な状態に構成されている。また、乱数回路起動レジスタ541は、ビット0〜ビット6が書込および読出ともに不可能な状態に構成されている。すなわち、乱数回路起動レジスタ541のビット0〜ビット6に値を書き込む制御を行っても無効とされ、ビット0〜ビット6から読み出す値は全て「0(=000000b)」である。
乱数値記憶回路531は、例えば16ビットレジスタであり、遊技制御処理における大当り判定において用いられる乱数であるランダムRの値を格納する。乱数値記憶回路531は、ラッチ信号生成回路533からラッチ信号SLを入力したことに応じて、カウンタ521から比較器522を介して出力されるカウント値CをランダムRの値として格納する。そして、乱数値記憶回路531は、ラッチ信号生成回路533からラッチ信号SLを入力するごとに、カウンタ521が更新するカウント値Cを読み込んでランダムRの値を記憶する。
図18は、乱数値記憶回路531の一構成例を示す回路図である。乱数値記憶回路531は、図18に示すように、2個のAND回路201,203と、2個のNOT回路202,204と、16個のフリップフロップ回路2101〜2116と、16個のOR回路2201〜2216とを含む。
図18に示すように、AND回路201の入力端子は、ラッチ信号生成回路533の出力端子とNOT回路204の出力端子とに接続され、出力端子は、NOT回路202の入力端子とフリップフロップ回路2101〜2116のクロック端子Clk1〜Clk16とに接続されている。NOT回路202の入力端子は、AND回路201の出力端子に接続され、出力端子は、AND回路203の一方の入力端子に接続されている。
AND回路203の入力端子は、NOT回路202の出力端子と遊技制御用マイクロコンピュータ560が搭載するCPU56とに接続され、出力端子は、NOT回路204の入力端子に接続されている。NOT回路204の入力端子は、AND回路203の出力端子に接続され、出力端子は、AND回路201の一方の入力端子とOR回路2201〜2216の一方の入力端子とに接続されている。
フリップフロップ回路2101〜2116の入力端子D1〜D16は、比較器522の出力端子に接続されている。フリップフロップ回路2101〜2116のクロック端子Clk1〜Clk16は、AND回路201の出力端子に接続され、出力端子Q1〜Q16は、OR回路2201〜2216の他方の入力端子に接続されている。
OR回路2201〜2216の入力端子は、NOT回路204の出力端子とフリップフロップ回路2101〜2116の出力端子とに接続され、出力端子は、遊技制御用マイクロコンピュータ560が搭載するCPU56に接続されている。
乱数値記憶回路531の動作について説明する。図19は、乱数値記憶回路531に各信号が入力されるタイミング、および乱数値記憶回路531が各信号を出力するタイミングを示すタイミングチャートである。図19に示すように、遊技制御用マイクロコンピュータ560が搭載するCPU56から出力制御信号SC(本例では、ハイレベル信号)が入力されていない場合(すなわち、AND回路203の一方の入力端子への入力がローレベルの場合)、ラッチ信号生成回路533からラッチ信号SLが入力されると(図19に示す例では、タイミングT1,T2,T7のとき)、AND回路201の2つの入力端子への入力はともにハイレベルとなる。そのため、AND回路201の出力端子から出力される信号SRはハイレベルとなる。そして、AND回路201から出力された信号SRは、フリップフロップ回路2101〜2116のクロック端子Clk1〜Clk16に入力される。
フリップフロップ回路2101〜2116は、クロック端子Clk1〜Clk16から入力される信号SRの立ち上がりエッヂに応答して、比較器522から入力端子D1〜D16を介して入力されるカウント値CのビットデータC1〜C16を乱数値のビットデータR1〜R16としてラッチして記憶する。また、フリップフロップ回路2101〜2116は、記憶するランダムRのビットデータR1〜R16を出力端子Q1〜Q16から出力する。
出力制御信号SCが入力されていない場合(図19に示す例では、タイミングT3までの期間およびタイミングT6以降の期間)、AND回路203の一方の入力端子への入力がローレベルとなるので、AND回路203の出力端子から出力される信号SGはローレベルとなる。AND回路203が出力する信号SGは、NOT回路204において反転され、ハイレベルの信号とされる。そして、OR回路2201〜2216の一方の入力端子に、NOT回路204からハイレベルの信号が入力される。
以上のように、OR回路2201〜2216の一方の入力端子への入力がハイレベルとなるので、他方の入力端子に入力される信号がハイレベルであるかローレベルであるかに関わらず、OR回路2201〜2216はハイレベルの信号を出力する。すなわち、入力されるランダムRのビットデータR1〜R16の値が「0」であるか「1」であるかに関わらず、OR回路2201〜2216から出力される信号SO1〜SO16は、全てハイレベル(「1」)となる。そのようにすることによって、乱数値記憶回路531から出力される値は、常に「65535(=1111111111111111b)」となり、乱数値記憶回路531からランダムRを読み出すことができない状態となる。すなわち、乱数値記憶回路531から乱数を読み出そうとしても、乱数値記憶回路531から常に同じ値「65535」しか読み出せない状態となり、出力制御信号SCが入力されていない場合、乱数値記憶回路531は、読出不能(ディセイブル)状態となる。なお、16ビット乱数回路503bを用いる場合、乱数値としての値「65535」が用いられる可能性がある。この場合、遊技制御用マイクロコンピュータ560は、値「65535」を読み込んだとしても、その値が乱数であるのか読出不能状態であるのかを判断することができない。そのため、図38に示す各大当り判定用の判定テーブルにおいて、あらかじめランダムRが「65535」である場合には「ハズレ」と判定するように設定しておけばよい。
ラッチ信号生成回路533からラッチ信号SLが入力されていないときに、CPU56から出力制御信号SCが入力されると(図19に示す例では、タイミングT4からタイミングT6までの期間)、AND回路203の2つの入力端子への入力がともにハイレベルとなるので、AND回路203の出力端子から出力される信号SGはハイレベルとなる。AND回路203が出力する信号SGは、NOT回路204において反転され、ローレベルの信号とされる。そして、OR回路2201〜2216の一方の入力端子に、NOT回路204からローレベルの信号が入力される。
以上のように、OR回路2201〜2216の一方の入力端子への入力がローレベルとなるので、他方の入力端子に入力される信号がハイレベルの場合、OR回路2201〜2216の出力端子からハイレベルの信号が出力される。また、OR回路2201〜2216の他方の入力端子に入力される信号がローレベルの場合、OR回路2201〜2216からローレベルの信号が出力される。すなわち、OR回路2201〜2216の他方の入力端子に入力されるランダムRのビットデータR1〜R16の値は、OR回路2201〜2216の出力端子からそのまま(すなわち、ビットデータR1〜R16の値が「1」のときは「1」が、「0」のときは「0」)出力される。そのようにすることによって、乱数値記憶回路531からのランダムRの読出が可能となる。すなわち、出力制御信号SCが入力されている場合、乱数値記憶回路531は、読出可能(イネイブル)状態となる。
ただし、CPU56から出力制御信号SCが入力される前に、ラッチ信号生成回路533からラッチ信号SLが入力されている場合、AND回路203の一方の入力端子への入力がローレベルとなるので、ラッチ信号SLが入力されている状態のままで、出力制御信号SCが入力されても(図19に示す例では、タイミングT3からタイミングT4の期間)、AND回路203の出力端子から出力される信号SGはローレベルのままとなる。AND回路203が出力する信号SGは、NOT回路204において反転され、ハイレベルの信号とされる。そして、OR回路2201〜2216の一方の入力端子に、NOT回路204からハイレベルの信号が入力される。
以上のように、OR回路2201〜2216の一方の入力端子への入力がハイレベルとなるので、他方の入力端子に入力される信号がハイレベルであるかローレベルであるかに関わらず、OR回路2201〜2216から出力される信号SO1〜SO16は全てハイレベルとなる。そして、出力制御信号SCが入力されているにも関わらず、乱数値記憶回路531からランダムRを読み出すことができない状態のままとなる。すなわち、ラッチ信号SLが入力されている場合、乱数値記憶回路531は、出力制御信号SCを受信不可能な状態となる。なお、16ビット乱数回路503bを用いる場合、乱数値としての値「65535」が用いられる可能性がある。この場合、遊技制御用マイクロコンピュータ560は、値「65535」を読み込んだとしても、その値が乱数であるのか読出不能状態であるのかを判断することができない。そのため、図38に示す各大当り判定用の判定テーブルにおいて、あらかじめランダムRが「65535」である場合には「ハズレ」と判定するように設定しておけばよい。
また、ラッチ信号生成回路533からラッチ信号SLが入力される前に、CPU56から出力制御信号SCが入力されている場合、AND回路201の一方の入力端子への入力がローレベルとなるので、出力制御信号SCが入力されているままの状態で、ラッチ信号SLが入力されても(図19に示す例では、タイミングT5)、AND回路201の出力端子から出力される信号SRはローレベルのままとなる。そのため、フリップフロップ回路2101〜2116のクロック端子Clk1〜Clk16に入力される信号SRは、ローレベルからハイレベルに立ち上がらず、フリップフロップ回路2101〜2116に格納されているランダムRのビットデータR1〜R16は、ラッチ信号SLが入力されているにも関わらず、記憶される乱数は更新されない。すなわち、出力制御信号SCが入力されている場合、乱数値記憶回路531は、ラッチ信号SLを受信不可能な状態となる。
反転回路532は、クロック信号出力回路524から入力する乱数発生用クロック信号SI1における信号レベルを反転させることによって、クロック信号の極性を反転させた反転クロック信号SI2を生成する。また、反転回路532は、生成した反転クロック信号SI2をラッチ信号生成回路533に出力する。
なお、乱数回路503は、反転回路532に代えて遅延回路を含んでもよい。この場合、遅延回路は、クロック信号出力回路524から入力する乱数発生用クロック信号SI1を遅延させることによって、クロック信号を遅延させた遅延クロック信号を生成する。また、遅延回路は、生成した遅延クロック信号をラッチ信号生成回路533に出力する。従って、ラッチ信号生成回路533は、乱数発生用クロック信号SI1を遅延させた遅延クロック信号に同期して、乱数値記憶回路531にラッチ信号を出力することになる。
ラッチ信号生成回路533は、セレクタおよびフリップフロップ回路等を用いて構成される。ラッチ信号生成回路533は、乱数値読取信号出力回路526からの乱数値読取信号と反転回路532からの反転クロック信号SI2とを入力し、乱数値記憶回路531に乱数値を記憶させるためのラッチ信号SLを出力する。また、ラッチ信号生成回路533は、乱数更新方式選択信号出力回路527からの乱数更新方式選択信号によって指定された乱数値更新方式に応じて、ラッチ信号SLを出力する。この場合、ラッチ信号生成回路533は、乱数更新方式選択信号出力回路527から第1の乱数更新方式選択信号が入力された場合、反転回路532から出力される反転クロック信号SI2を選択し、ラッチ信号SLとして乱数値記憶回路531に出力する。一方、ラッチ信号生成回路533は、乱数更新方式選択信号出力回路527から第2の乱数更新方式選択信号が入力された場合、乱数値読取信号出力回路526から出力される乱数値読取信号を、反転回路532から出力される反転クロック信号SI2の立ち上がりエッヂに同期させて、ラッチ信号SLとして乱数値記憶回路531に出力する。
タイマ回路534は、始動口14への遊技球の入賞を検出した旨の入賞検出信号SSを始動口スイッチ14aから入力する。また、タイマ回路534は、始動口スイッチ14aから入賞検出信号SSが継続して入力されている時間を計測する。そして、タイマ回路534は、計測時間が所定期間(例えば、3ms)になると、乱数値読取信号出力回路526の乱数値取込レジスタ539に乱数値取込データ「01h」を書き込む。例えば、タイマ回路534は、ハイレベルの信号が入力されたことに応じて起動するアップカウンタまたはダウンカウンタによって構成される。タイマ回路534は、始動口スイッチ14aからの入力がハイレベルとなっている間(すなわち、入賞検出信号SSが継続して入力されている間)、クロック回路501から順次入力する基準クロック信号CLKをアップカウントまたはダウンカウントする。そして、タイマ回路534は、アップカウントまたはダウンカウントするカウント値が3msに対応する値になると、始動口スイッチ14aから入賞検出信号SSが入力されたと判断して、乱数値取込データ「01h」を乱数値取込レジスタ539に書き込む。
次に、シリアル通信回路505の構成について説明する。シリアル通信回路505は、全二重方式、非同期方式および標準NRZ(ノンリターンゼロ)符号化を用いたデータフォーマットで、各制御基板(例えば、払出制御基板37や演出制御基板80)のマイクロコンピュータとシリアル通信を行う。シリアル通信回路505は、各制御基板のマイクロコンピュータに各種データ(例えば、賞球個数コマンドや演出制御コマンド)を送信する送信部と、各制御基板のマイクロコンピュータからの各種データ(例えば、賞球ACKコマンド)を受信する受信部とを含む。
図20は、シリアル通信回路505の送信部の構成例を示すブロック図である。また、図21は、シリアル通信回路505の受信部の構成例を示すブロック図である。シリアル通信回路505は、ボーレートレジスタ702、ボーレート生成回路703、2つのステータスレジスタ705,706、3つの制御レジスタ707,708,709、送信データレジスタ710、受信データレジスタ711、送信用シフトレジスタ712、受信用シフトレジスタ713、割り込み制御回路714、送信フォーマット/パリティ生成回路715および受信フォーマット/パリティチェック回路716を含む。また、図20に示すように、シリアル通信回路505の送信部は、これらの構成要素のうち、ボーレートレジスタ702、ボーレート生成回路703、ステータスレジスタA705、制御レジスタ707,708,709、送信データレジスタ710、送信用シフトレジスタ712、割り込み制御回路714および送信フォーマット/パリティ生成回路715によって構成される。また、図21に示すように、シリアル通信回路505の受信部は、これらの構成要素のうち、ボーレートレジスタ702、ボーレート生成回路703、ステータスレジスタ705,706、制御レジスタ707,708,709、受信データレジスタ711、受信用シフトレジスタ713、割り込み制御回路714および受信フォーマット/パリティチェック回路716によって構成される。
なお、シリアル通信回路505において、送信部と受信部とは、実際には、共通の回路を用いて構成される。そして、シリアル通信回路505は、上記に示したように、シリアル通信回路505の各構成要素を使い分けて用いることによって、送信回路又は受信回路として機能する。
まず、シリアル通信回路505が各制御基板が搭載するマイクロコンピュータと送受信するデータのデータフォーマットを説明する。図22は、シリアル通信505が各制御基板が搭載するマイクロコンピュータと送受信するデータのデータフォーマットの例を示す説明図である。図22に示すように、シリアル通信回路505が送受信するデータのデータフォーマットは、スタートビット、データおよびストップビットを1フレームとして構成される。また、シリアル通信回路505が送受信するデータのデータ長は、後述するシリアル通信回路設定処理において初期設定を行えば、8ビットまたは9ビットのいずれかに設定できる。図22(a)は、データ長を8ビットに設定した場合のデータフォーマットの例である。また、図22(b)は、データ長を9ビットに設定した場合のデータフォーマットの例である。
図22に示すように、シリアル通信回路505が送受信するデータのデータフォーマットは、ハイレベル(論理「1」)のアイドルラインのあとに、1フレームの始まりであることを示すスタートビット(論理「0」)を含む。また、データフォーマットは、スタートビットのあとに、8ビットまたは9ビットの送受信データを含む。そして、データフォーマットは、送受信データのあとに、1フレームの終わりであることを示すストップビット(論理「1」)を含む。
シリアル通信回路505は、図22に示すデータフォーマットに従って、送受信データの最下位ビット(ビット0)から先にデータを送受信する。また、後述するシリアル通信回路設定処理において初期設定を行えば、送受信データにパリティビットを付加するように設定することもできる。パリティビットを付加するように設定した場合、送受信データの最上位ビットがパリティビット(奇数パリティまたは偶数パリティ)として用いられる。例えば、データ長を8ビットに設定した場合、送受信データのビット7がパリティビットとして用いられる。また、例えば、データ長を9ビットに設定した場合、送受信データのビット8がパリティビットとして用いられる。
ボーレート生成回路703は、クロック回路501が出力するクロック信号およびボーレートレジスタ702に設定されている設定値(ボーレート設定値ともいう)にもとづいて、シリアル通信回路505が用いるボーレートを生成する。この場合、ボーレート生成回路703は、クロック信号およびボーレート設定値にもとづいて、所定の計算式を用いてボーレートを求める。例えば、ボーレート生成回路703は、式(1)を用いて、シリアル通信回路505が用いるボーレートを求める。
ボーレート=クロック周波数/(ボーレート設定値×16) 式(1)
図23は、ボーレートレジスタ702の例を示す説明図である。ボーレートレジスタ702は、ボーレート生成回路703が生成するボーレートの値を指定するための所定の設定値を設定するレジスタである。例えば、ボーレートレジスタ702が式(1)を用いてボーレートを求めるものとし、クロック周波数が3MHzであるとする。この場合、所望の目標ボーレートが1200bpsであるとすると、ボーレートレジスタ702に設定値「156」を設定する。すると、ボーレート生成回路703は、クロック周波数「3MHz」およびボーレート設定値「156」にもとづいて、式(1)を用いて、ボーレート「1201.92bps」を生成する。ボーレートレジスタ702は、16ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、ボーレートレジスタ702は、ビット0〜ビット12が書込および読出ともに可能な状態に構成されている。また、ボーレートレジスタ702は、ビット13〜ビット15が書込および読出ともに不可能な状態に構成されている。したがって、ボーレートレジスタ702のビット13〜ビット15に値を書き込む制御を行っても無効とされ、ビット13〜ビット15から読み出す値は全て「0(=000b)」である。
図24(A)は、制御レジスタA707の例を示す説明図である。制御レジスタA707は、シリアル通信回路505の通信フォーマットを設定するレジスタである。この実施の形態では、制御レジスタA707の各ビットの値が設定されることによって、シリアル通信回路505の通信フォーマットが設定される。制御レジスタA707には、送受信データのデータ形式や各種通信方式等の通信フォーマットを設定するための通信フォーマット設定データが設定される。図24(A)に示すように、制御レジスタA707は、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、制御レジスタA707は、ビット0〜ビット4が書込および読出ともに可能な状態に構成されている。また、制御レジスタA707は、ビット5〜ビット7が書込および読出ともに不可能な状態に構成されている。したがって、制御レジスタA707のビット5〜ビット7に値を書き込む制御を行っても無効とされ、ビット5〜ビット7から読み出す値は全て「0(=000b)」である。
図24(B)は、制御レジスタA707に設定される通信フォーマット設定データの一例の説明図である。図24(B)に示すように、制御レジスタA707のビット4(ビット名「M」)には、送受信するデータのデータ長を設定するための設定データが設定される。図24(B)に示すように、ビット4を「0」に設定することによって、送受信データのデータ長が8ビットに設定される。また、ビット4を「1」に設定することによって、送受信データのデータ長が9ビットに設定される。
制御レジスタA707のビット3(ビット名「WAKE」)には、スタンバイ状態の受信回路(シリアル通信回路505の受信部)をウエイクアップする(オンライン状態にさせる)ウエイクアップ方式を設定するための設定データが設定される。図24(B)に示すように、ビット3を「0」に設定することによって、アイドルラインを認識したときにウエイクアップするアイドルラインウエイクアップ方式が設定される。また、ビット3を「1」に設定することによって、所定のアドレスマークを認識することによってウエイクアップするアドレスマークウエイクアップ方式が設定される。
制御レジスタA707のビット2(ビット名「ILT」)には、受信データのアイドルラインの検出方式を選択するための設定データが設定される。図24(B)に示すように、ビット2を「0」に設定することによって、受信データに含まれるスタートビットの後からアイドルラインを検出する検出方式が設定される。また、ビット2を「1」に設定することによって、受信データに含まれるストップビットの後からアイドルラインを検出する検出方式が設定される。
制御レジスタA707のビット1(ビット名「PE」)には、パリティ機能を使用するか否かを設定するための設定データが設定される。図24(B)に示すように、ビット1を「0」に設定することによって、パリティ機能を使用しないように設定される。また、ビット1を「1」に設定することによって、パリティ機能を使用するように設定される。
制御レジスタA707のビット0(ビット名「PT」)には、パリティ機能を使用すると設定した場合のパリティの種類を設定するための設定データが設定される。図24(B)に示すように、ビット0を「0」に設定することによって、パリティの種類として偶数パリティが設定される。また、ビット0を「1」に設定することによって、パリティの種類として奇数パリティが設定される。
図25(A)は、制御レジスタB708の例を示す説明図である。制御レジスタB708は、シリアル通信回路505の割り込み要求を許可するか否かを設定するレジスタである。この実施の形態では、制御レジスタB708の各ビットの値が設定されることによって、シリアル通信回路505からの割り込み要求を許可するか禁止するかが設定される。制御レジスタB708には、各種割り込み要求を許可するか否かを示す割り込み要求設定データが主として設定される。なお、制御レジスタB708には、割り込み要求設定データ以外に、シリアル通信回路505の各種設定を行うための設定データも設定される。図25(A)に示すように、制御レジスタB708は、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、制御レジスタB708は、ビット0〜ビット7が書込および読出ともに可能な状態に構成されている。
図25(B)は、制御レジスタB708に設定される割り込み要求設定データの一例を示す説明図である。図25(B)に示すように、制御レジスタB708のビット7(ビット名「TIE」)には、データの送信時に行う割り込み要求である送信割り込み要求を許可するか否かを示す設定データが設定される。図25(B)に示すように、ビット7を「0」に設定することによって、送信割り込み要求を禁止するように設定される。また、ビット7を「1」に設定することによって、送信割り込み要求を許可するように設定される。
制御レジスタB708のビット6(ビット名「TCIE」)には、データの送信完了時に行う割り込み要求である送信完了割り込み要求を許可するか否かを示す設定データが設定される。図25(B)に示すように、ビット6を「0」に設定することによって、送信完了割り込み要求を禁止するように設定される。また、ビット6を「1」に設定することによって、送信完了割り込み要求を許可するように設定される。
制御レジスタB708のビット5(ビット名「RIE」)には、データの受信時に行う割り込み要求である受信割り込み要求を許可するか否かを示す設定データが設定される。図25(B)に示すように、ビット5を「0」に設定することによって、受信割り込み要求を禁止するように設定される。また、ビット5を「1」に設定することによって、受信割り込み要求を許可するように設定される。
制御レジスタB708のビット4(ビット名「ILIE」)には、受信データのアイドルラインを検出したときに行う割り込み要求であるアイドルライン割り込み要求を許可するか否かを示す設定データが設定される。図25(B)に示すように、ビット4を「0」に設定することによって、アイドルライン割り込み要求を禁止するように設定される。また、ビット4を「1」に設定することによって、アイドルライン割り込み要求を許可するように設定される。
制御レジスタB708のビット3(ビット名「TE」)には、送信回路(シリアル通信回路505の送信部)を使用するか否かを示す設定データが設定される。図25(B)に示すように、ビット3を「0」に設定することによって、送信回路を使用しないように設定される。また、ビット3を「1」に設定することによって、送信回路を使用するように設定される。
制御レジスタB708のビット2(ビット名「RE」)には、受信回路を使用するか否かを示す設定データが設定される。図25(B)に示すように、ビット2を「0」に設定することによって、受信回路を使用しないように設定される。また、ビット2を「1」に設定することによって、受信回路を使用するように設定される。
制御レジスタB708のビット1(ビット名「RWU」)には、受信回路のウエイクアップ機能を使用するか否かを示す設定データが設定される。図25(B)に示すように、ビット1を「0」に設定することによって、ウエイクアップ機能を使用しないように設定される。また、ビット1を「1」に設定することによって、ウエイクアップ機能を使用するように設定される。
制御レジスタB708のビット0(ビット名「SBK」)には、所定のブレークコード送信機能を使用するか否かを示す設定データが設定される。図25(B)に示すように、ビット1を「0」に設定することによって、ブレークコード送信機能を使用しないように設定される。また、ビット1を「1」に設定することによって、ブレークコード送信機能を使用するように設定される。ビット1を「1」に設定すると、シリアル通信回路505は、ブレークコード(例えば、「0」を連続して含む信号)を制御基板(払出制御基板37や演出制御基板80)が搭載するマイクロコンピュータに送信する。
図26(A)は、ステータスレジスタA705の例を示す説明図である。ステータスレジスタA705は、シリアル通信回路505の各種ステータスを確認するためのレジスタである。この実施の形態では、ステータスレジスタA705の各ビットの値を確認することによって、CPU56は、シリアル通信回路505の各種ステータスを確認することができる。図26(A)に示すように、ステータスレジスタA705は、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、ステータスレジスタA705は、ビット0〜ビット7が読出のみ可能な状態に構成されている。したがって、ステータスレジスタA705のビット0〜ビット7に値を書き込む制御を行っても無効とされる。
本実施の形態では、後述するように、送信データレジスタ710に送信データが入っていない状態(送信データエンプティ)となったり、送信用シフトレジスタ712が格納する送信データの送信を完了すると、割り込み制御回路714によって、ステータスレジスタA705の対応するビットがセットされる。そして、CPU56は、ステータスレジスタA705にセットされた各ビットの値を読み出す。
図26(B)は、ステータスレジスタA705に格納されるステータス確認データの一例を示す図である。図26(B)に示すように、ステータスレジスタA705のビット7(ビット名「TDRE」)には、送信データレジスタ710に送信データが入っていない状態であること(送信データエンプティ)を示す送信データエンプティフラグが格納される。図26(B)に示すように、ビット7に「0」が格納されている場合、送信データレジスタ710から送信用シフトレジスタ712に送信データが未だに転送されておらず、送信データレジスタ710に送信データが格納されたままの状態であることを示す。また、ビット7に「1」が格納されている場合、送信データレジスタ710から送信用シフトレジスタ712に送信データが転送されており、送信データレジスタ710に送信データが入っていない状態(送信データエンプティ)であることを示す。
ステータスレジスタA705のビット6(ビット名「TC」)には、シリアル通信回路505からの送信データの送信を完了した旨を示す送信完了フラグが格納される。図26(B)に示すように、ビット6に「0」が格納されている場合、送信用シフトレジスタ712が格納する送信データの送信中の状態であり、シリアル通信回路505からの送信データの送信が完了していない状態であることを示す。また、ビット6に「1」が格納されている場合、送信用シフトレジスタ712が格納する送信データの転送を完了した状態であり、シリアル通信回路505からの送信データの送信が完了した状態であることを示す。
なお、送信データの送信を完了した状態となり、遊技制御用マイクロコンピュータ560は、送信先のマイクロコンピュータからの受信確認信号の待ち状態となる。この実施の形態では、後述する送信時割込の設定が行われると、シリアル通信回路505は、送信データの送信完了を検出すると、ステータスレジスタA705のビット6を「1」にするとともに、受信確認信号の待ち状態になったものとしてCPU56に割り込み要求(送信時割り込み要求という)を行う。
ステータスレジスタA705のビット5(ビット名「RDRF」)には、受信データレジスタ711に受信データが格納された状態であること(受信データフル)を示す受信データフルフラグが格納される。図26(B)に示すように、ビット5に「0」が格納されている場合、受信データレジスタ711に受信データが入っていない状態であることを示す。また、ビット5に「1」が格納されている場合、受信用シフトレジスタ713の値が受信データレジスタ711に転送され、受信データレジスタ711に受信データが格納されている状態であること(受信データフル)を示す。
なお、受信データレジスタ711に受信データが格納された状態となると、CPU56は、受信データを受信データレジスタ711から読み込んで受信処理を行える状態となる。この実施の形態では、シリアル通信回路505は、受信データフルを検出すると、ステータスレジスタA705のビット5を「1」にするとともに、受信処理が可能になったものとしてCPU56に割り込み要求(受信時割り込み要求という)を行う。
ステータスレジスタA705のビット4(ビット名「IDLE」)には、受信回路がアイドルラインを検出したことを示すアイドルライン検出フラグが格納される。図26(B)に示すように、ビット4に「0」が格納されている場合、シリアル通信回路505の受信部がアイドルラインを検出していない状態であることを示す。また、ビット4に「1」が格納されている場合、シリアル通信回路505の受信部がアイドルラインを検出した状態であることを示す。
ステータスレジスタA705のビット3(ビット名「OR」)には、CPU56が受信データレジスタ711が格納する受信データを読み込む前に、受信用シフトレジスタ713が次のデータを受信してしまったこと(オーバーラン)を示すオーバーランフラグが格納される。図26(B)に示すように、ビット3に「0」が格納されている場合、受信回路がオーバーランを検出していない状態であることを示す。また、ビット3に「1」が格納されている場合、受信回路がオーバーランを検出した状態であることを示す。
なお、オーバーランが発生すると、受信データレジスタ711内の受信データが読み込まれる前に受信用シフトレジスタ713に次の受信データが格納されてしまうので、受信データが上書きされてしまいCPU56が受信データを正しく読み込めなくなってしまう。そのため、各制御基板が搭載するマイクロコンピュータと正しく通信を行えなくなり、CPU56が誤動作をする原因となる。この実施の形態では、シリアル通信回路505は、オーバーランを検出すると、ステータスレジスタA705のビット3を「1」にするとともに、通信時にエラーが発生したものとしてCPU56に割り込み要求を行う。
ステータスレジスタA705のビット2(ビット名「NF」)には、受信データにノイズを検出したことを示すノイズエラーフラグが格納される。図26(B)に示すように、ビット2に「0」が格納されている場合、受信回路が受信データにノイズを検出していない状態であることを示す。また、ビット2に「1」が格納されている場合、受信回路が受信データにノイズを検出した状態であることを示す。
例えば、シリアル通信回路505は、受信データの各ビットを検出する際に、ボーレート生成回路703が生成したボーレートを用いて、所定ビット長の「1」または「0」を検出する。この場合、検出した「1」または「0」の長さが所定ビット長に満たない場合、シリアル通信回路505は、受信データにノイズが発生したものとしてノイズエラーを検出する。ノイズエラーが発生すると、ノイズによって正しい受信データを受信できない可能性が高く、CPU56が誤動作をする原因となる。この実施の形態では、シリアル通信回路505は、ノイズエラーを検出すると、ステータスレジスタA705のビット2を「1」にするとともに、通信時にエラーが発生したものとしてCPU56に割り込み要求を行う。
ステータスレジスタA705のビット1(ビット名「FE」)には、受信データのストップビットの位置が「0」(本来、ストップビットは「1」)であることを検出したこと(フレーミングエラー)を示すフレーミングエラーフラグが格納される。図26(B)に示すように、ビット1に「0」が格納されている場合、受信回路が受信データにフレーミングエラーを検出していない状態であることを示す。また、ビット1に「1」が格納されている場合、受信回路がフレーミングエラーを検出した状態であることを示す。
フレーミングエラーが発生すると、受信データのストップビットを正しく受信できなかった状態であるので、正しい受信データを受信できない可能性が高く、CPU56が誤動作をする原因となる。この実施の形態では、シリアル通信回路505は、フレーミングエラーを検出すると、ステータスレジスタA705のビット1を「1」にするとともに、通信時にエラーが発生したものとしてCPU56に割り込み要求を行う。
ステータスレジスタA705のビット0(ビット名「PF」)には、受信データから求めたパリティの値と、受信データに含まれるパリティの値とが一致しなかったこと(パリティエラー)を示すパリティエラーフラグが格納される。図26(B)に示すように、ビット0に「0」が格納されている場合、受信回路が受信データにパリティエラーを検出していない状態であることを示す。また、ビット0に「1」が格納されている場合、受信回路がパリティエラーを検出した状態であることを示す。
パリティエラーが発生すると、受信データの各データビットまたはパリティビットを正しく受信できなかった状態であるので、正しい受信データを受信できない可能性が高く、CPU56が誤動作をする原因となる。この実施の形態では、シリアル通信回路505は、パリティエラーを検出すると、ステータスレジスタA705のビット0を「1」にするとともに、通信時にエラーが発生したものとしてCPU56に割り込み要求を行う。
図27(A)は、ステータスレジスタB706の例を示す説明図である。ステータスレジスタB706は、シリアル通信回路505の受信状態(受信ステータス)を確認するためのレジスタである。この実施の形態では、ステータスレジスタB706のビットの値を確認することによって、CPU56は、シリアル通信回路505の受信ステータスを確認することができる。図27(B)に示すように、ステータスレジスタB706は、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、ステータスレジスタB706は、ビット0が読出のみ可能な状態に構成されている。したがって、ステータスレジスタA705のビット0に値を書き込む制御を行っても無効とされる。また、ステータスレジスタB706は、ビット1〜ビット7が書込および読出ともに不可能な状態に構成されている。したがって、ステータスレジスタA705のビット1〜ビット7に値を書き込む制御を行っても無効とされ、ビット1〜ビット7から読み出す値は全て「0(=0000b)」である。
図27(B)は、ステータスレジスタB706に格納されるステータス確認データの一例を示す図である。図27(B)に示すように、ステータスレジスタB706のビット0(ビット名「RAF」)には、受信回路が受信データを受信中であること(受信アクティブ)を示す受信アクティブフラグが格納される。図27(B)に示すように、ビット0に「0」が格納されている場合、受信回路が受信データを受信中でないことを示す。また、ビット0に「1」が格納されている場合、受信回路が受信データを受信中であることを示す。なお、シリアル通信回路505は、スタートビットを検出すると、受信データの受信が開始されたものとして、ステータスレジスタB706のビット0を「1」にする。
図28(A)は、制御レジスタC709の例を示す説明図である。制御レジスタC709は、シリアル通信回路505の通信エラー時の割り込み要求を許可するか否かを設定するレジスタである。この実施の形態では、制御レジスタC709の各ビットの値が設定されることによって、シリアル通信回路505からの通信時の割り込み要求を許可するか禁止するかが設定される。制御レジスタC709には、通信エラー時の各種割り込み要求を許可するか否かを示すエラー割り込み要求設定データが主として設定される。なお、制御レジスタC709には、エラー割り込み要求設定データ以外に、データ長を9ビットに設定した場合の9ビット目のデータが格納される。シリアル通信回路505の各種設も設定される。図28(A)に示すように、制御レジスタC709は、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、制御レジスタC709は、ビット0〜ビット3およびビット6,7が書込および読出ともに可能な状態に構成されている。また、制御レジスタC709は、ビット4,5が書込および読出ともに不可能な状態に構成されている。したがって、制御レジスタC709のビット4,5に値を書き込む制御を行っても無効とされ、ビット4,5から読み出す値は全て「0(=0000b)」である。
図28(B)は、制御レジスタC709に設定されるエラー割り込み要求設定データの一例を示す説明図である。図28(B)に示すように、制御レジスタC709のビット7(ビット名「R8」)には、データ長を9ビットに設定した場合の受信データの9ビット目のデータが格納される。また、制御レジスタC709のビット6(ビット名「T8」)には、データ長を9ビットに設定した場合の送信データの9ビット目のデータが格納される。
制御レジスタC709のビット3(ビット名「ORIE」)には、オーバーランを検出した場合に行う割り込み要求であるオーバーランフラグ割り込み要求を許可するか否かを示す設定データが設定される。図28(B)に示すように、ビット3を「0」に設定することによって、オーバーランフラグ割り込み要求を禁止するように設定される。また、ビット3を「1」に設定することによって、オーバーランフラグ割り込み要求を許可するように設定される。
制御レジスタC709のビット2(ビット名「NEIE」)には、ノイズエラーを検出した場合に行う割り込み要求であるノイズエラーフラグ割り込み要求を許可するか否かを示す設定データが設定される。図28(B)に示すように、ビット2を「0」に設定することによって、ノイズエラーフラグ割り込み要求を禁止するように設定される。また、ビット2を「1」に設定することによって、ノイズエラーフラグ割り込み要求を許可するように設定される。
制御レジスタC709のビット1(ビット名「FEIE」)には、フレーミングエラーを検出した場合に行う割り込み要求であるフレーミングエラーフラグ割り込み要求を許可するか否かを示す設定データが設定される。図28(B)に示すように、ビット1を「0」に設定することによって、フレーミングエラーフラグ割り込み要求を禁止するように設定される。また、ビット1を「1」に設定することによって、フレーミングエラーフラグ割り込み要求を許可するように設定される。
制御レジスタC709のビット0(ビット名「PEIE」)には、パリティエラーを検出した場合に行う割り込み要求であるパリティエラーフラグ割り込み要求を許可するか否かを示す設定データが設定される。図28(B)に示すように、ビット0を「0」に設定することによって、パリティエラーフラグ割り込み要求を禁止するように設定される。また、ビット0を「1」に設定することによって、パリティエラーフラグ割り込み要求を許可するように設定される。
図29は、シリアル通信回路505が備えるデータレジスタの例を示す説明図である。データレジスタ701は、シリアル通信回路505が送受信するデータを格納するレジスタである。図29に示すように、データレジスタは、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、データレジスタ701は、ビット0〜ビット7が書込および読出ともに可能な状態に構成されている。
この実施の形態では、シリアル通信回路505が送信データを送信する場合、データレジスタは、送信データレジスタ710として用いられる。なお、データ長を9ビットに設定した場合、データレジスタおよび制御レジスタC709のビット6が送信データレジスタ710として用いられる。この場合、データレジスタのビット0〜ビット7が送信データレジスタ710のビット0〜ビット7として用いられ、制御レジスタC709のビット6が送信データレジスタ710のビット8として用いられる。
また、シリアル通信回路505が受信データを受信する場合、データレジスタは、受信データレジスタ711として用いられる。なお、データ長を9ビットに設定した場合、データレジスタおよび制御レジスタC709のビット7が受信データレジスタ711として用いられる。この場合、データレジスタのビット0〜ビット7が受信データレジスタ711のビット0〜ビット7として用いられ、制御レジスタC709のビット7が受信データレジスタ711のビット8として用いられる。
割り込み制御回路714は、CPU56に各種割り込み要求を行う。この実施の形態では、割り込み制御回路714は、制御レジスタB708のビット6(TCIE)が「1」に設定されている場合、送信データレジスタ710に送信データの送信を完了した状態となると、CPU56に割り込み信号を出力するとともに、ステータスレジスタA705のビット6(TC)に「1」を設定することによって割り込み要求を行う。なお、ステータスレジスタA705のビットの設定値により割込要因を識別可能とするのでなく、割り込み制御回路714は、割込要因毎に異なる割り込み信号をCPU56に出力するようにしてもよい。
また、割り込み制御回路714は、制御レジスタB708のビット5(RIE)が「1」に設定されている場合、受信データレジスタ711に受信データが格納されている状態になると(受信データフルを検出すると)、CPU56に割り込み信号を出力するとともに、ステータスレジスタA705のビット5(RDRF)に「1」を設定することによって割り込み要求を行う。
また、割り込み制御回路714は、制御レジスタC709のビット0〜3のいずれかが「1」に設定されている場合、各種通信エラーが発生すると、CPU56に割り込み信号を出力するとともに、通信エラーの種類に応じて、ステータスレジスタA705のビット0〜ビット3に「1」を設定することによって割り込み要求を行う。例えば、制御レジスタC709のビット3(ORIE)が「1」に設定されている場合、オーバーランを検出して割り込み要求を行うときに、ステータスレジスタA705のビット3(OR)に「1」を設定する。また、例えば、制御レジスタC709のビット2(NEIE)が「1」に設定されている場合、ノイズエラーを検出して割り込み要求を行うときに、ステータスレジスタA705のビット2(NF)に「1」を設定する。また、例えば、制御レジスタC709のビット1(FEIE)が「1」に設定されている場合、フレーミングエラーを検出して割り込み要求を行うときに、ステータスレジスタA705のビット1(FE)に「1」を設定する。また、例えば、制御レジスタC709のビット0(PEIE)が「1」に設定されている場合、パリティエラーを検出して割り込み要求を行うときに、ステータスレジスタA705のビット0(PF)に「1」を設定する。なお、複数の通信エラーを検出した場合、割り込み制御回路714は、複数の通信エラーにもとづいて割り込み要求を行うとともに、ステータスレジスタA705の該当するビットをそれぞれ「1」に設定する。
送信フォーマット/パリティ生成回路715は、送信データのデータフォーマットを生成する。この実施の形態では、送信フォーマット/パリティ生成回路715は、送信データレジスタ710に格納される送信データにスタートビットおよびストップビットを付加してデータフォーマットを生成し、送信用シフトレジスタ712に転送する。また、制御レジスタA707のビット1(PE)に「1」が設定され、パリティ機能を使用する旨が設定されている場合、送信フォーマット/パリティ生成回路715は、送信データにパリティビットを付加してデータフォーマットを生成する。
受信フォーマット/パリティチェック回路716は、受信データのデータフォーマットを検出する。この実施の形態では、受信フォーマット/パリティチェック回路716は、受信用シフトレジスタ713に格納される受信データからスタートビットおよびストップビットを検出し、受信データに含まれるデータ部分を検出して受信データレジスタ711に転送する。また、制御レジスタA707のビット1(PE)に「1」が設定され、パリティ機能を使用する旨が設定されている場合、受信フォーマット/パリティチェック回路716は、受信データのパリティを求め、受信データに含まれるパリティと一致するか否かを検出する。また、求めた値が受信データに含まれるパリティと一致しない場合、受信フォーマット/パリティチェック回路716は、パリティエラーを検出する。なお、後述するシリアル通信回路設定処理において通信エラー時割り込み要求を許可する旨が設定されてる場合、割り込み制御回路714は、パリティエラーを検出すると、通信エラーの発生を割込原因としてCPU56に割り込み要求を行う。
図30は、遊技制御用マイクロコンピュータ560における記憶領域のアドレスマップの一例を示す説明図である。図30に示すように、遊技制御用マイクロコンピュータ560の記憶領域のうち、0000h番地〜1FFFh番地の領域は、ROM54に割り当てられている。また、7E00h番地〜7FFFh番地の領域は、RAM55に割り当てられている。さらに、FD00h番地〜FE00h番地の領域は、乱数最大値設定レジスタ535等の内蔵レジスタに割り当てられている。
また、図30に示すように、ROM54に割り当てられている0000h番地〜1FFFh番地の領域は、ユーザプログラムエリアとユーザプログラム管理エリアとを含む。0000h番地〜1F7Fh番地の領域のユーザプログラムエリアには、ユーザ(例えば、遊技機の製作者)により予め作成されたプログラム(ユーザプログラム)550が記憶される。また、1F80h番地〜1FFFh番地の領域のユーザプログラム管理エリアには、CPU56がユーザプログラム550を実行するために必要となるデータ(ユーザプログラム実行データ)が記憶される。また、RAM55に割り当てられている7E00h番地〜7FFFh番地の領域のうち、7E00h番地〜7EFFh番地の領域は未使用領域であり、7F00h番地〜7FFFh番地の領域はワークエリアとして用いられる。
図31は、ユーザプログラム管理エリアにおけるアドレスマップの一例を示す説明図である。図31に示すように、1F97h番地の領域には、乱数回路503のカウンタ521に入力される初期値を変更するための方式である初期値変更方式のうち、ユーザによって選択された初期値変更方式を指定するための初期値変更方式設定データが記憶される。また、1F98h番地および1F99h番地の領域には、RAM55に割り当てられた7F00h番地〜7FFFh番地のうち、ユーザによって予め指定されたRAM55における番地(指定RAM番地)を特定するためのRAM番地データが記憶される。この場合、指定RAM番地を示す値のうち、指定RAM番地の下位の値が1F98h番地に記憶され、指定RAM番地の上位の値が1F99h番地に記憶される。
図32は、初期値変更方式設定データの一例を示す説明図である。図32に示すように、初期値変更データは、8ビットのデータから構成される。初期値変更データ「00h」は、初期値変更方式として、初期値を変更しないことを指定するデータである。この実施の形態では、初期値変更データ「00h」が設定されている場合、乱数回路503のカウンタ521は、予め定められた初期値「0」から所定の最終値までカウント値を更新することになる。また、初期値変更データ「01h」は、初期値変更方式として、カウンタ521に入力する初期値を、遊技制御用マイクロコンピュータ560を識別するためのIDナンバにもとづく値に変更することを指定するデータである。この実施の形態では、初期値変更データ「01h」が設定されている場合、カウンタ521が更新するカウンタ値の初期値が「0」からIDナンバにもとづく値に変更され、カウンタ521は、変更後の初期値から所定の最終値までカウント値を更新することになる。
ユーザプログラムエリアに記憶されるユーザプログラム550について説明する。図33は、ユーザプログラム550の構成例を示す説明図である。図33に示すように、この実施の形態では、ユーザプログラム550は、複数種類のプログラムモジュールから構成される乱数回路設定プログラム551と、表示結果決定プログラム552と、カウント値順列変更プログラム554と、乱数値更新プログラム555と、シリアル通信回路設定プログラム556と、割込優先順位設定プログラム557とを含む。
乱数回路設定プログラム551は、乱数回路503にランダムRの値を更新させるための初期設定を行う乱数回路設定処理を実行させるためのプログラムである。すなわち、CPU56は、乱数回路設定プログラム551に従って処理を実行することにより、乱数回路初期設定手段として機能する。
図34は、乱数回路設定プログラム551の構成例を示す説明図である。図34に示すように、乱数回路設定プログラム551は、複数種類のプログラムモジュールとして、乱数最大値設定モジュール551aと、乱数更新方式選択モジュール551bと、周期設定モジュール551cと、乱数回路起動モジュール551dと、初期値変更モジュール551eと、乱数回路選択モジュール551fとを含む。
乱数最大値設定モジュール551aは、ユーザ(例えば、遊技機の製作者)によって予め設定されたランダムRの最大値を乱数回路503に設定させるためのプログラムモジュールである。CPU56は、乱数最大値設定モジュール551aに従って処理を実行することによって、ユーザによって予め設定されたランダムRの最大値を指定する乱数最大値設定データを、乱数最大値設定レジスタ535に書き込む。そのようにすることによって、CPU56は、ユーザによって予め設定されたランダムRの最大値を乱数回路503に設定する。例えば、ユーザによってランダムRの最大値として予め「255」が設定された場合、CPU56は、乱数最大値設定レジスタ535に乱数最大値設定データ「00FFh」を書き込んで、ランダムRの最大値「255」を乱数回路503に設定する。
乱数更新方式選択モジュール551bは、ユーザによって選択された乱数更新方式(第1の乱数更新方式または第2の乱数更新方式)を乱数回路503に設定させるためのプログラムモジュールである。CPU56は、乱数更新方式選択モジュール551bに従って処理を実行することによって、ユーザによって選択された乱数更新方式を指定する乱数更新方式選択データ「01b」または「10b」を乱数更新方式選択レジスタ540に書き込む。そのようにすることによって、CPU56は、ユーザによって選択された乱数更新方式を乱数回路503に設定する。よって、遊技制御用マイクロコンピュータ560は、第1の乱数更新方式又は第2の乱数更新方式のうちのいずれかを、乱数回路503が乱数更新に用いる乱数更新方式として選択する機能を備える。
周期設定モジュール551cは、ユーザによって予め設定された内部クロック信号の周期(すなわち、クロック信号出力回路524がセレクタ528および反転回路532にクロック信号を出力する周期)を乱数回路503に設定させるためのプログラムモジュールである。CPU56は、周期設定モジュール551cに従って処理を実行することによって、ユーザによって予め設定された内部クロック信号の周期を指定するための周期設定データを周期設定レジスタ537に書き込む。そのようにすることによって、CPU56は、ユーザによって予め設定された内部クロック信号の周期を乱数回路503に設定する。例えば、ユーザによって内部クロック信号の周期が予め「システムクロック信号の周期×128×16」と設定された場合、CPU56は、周期設定レジスタ537に周期設定データ「0Fh」を書き込んで、内部クロック信号の周期「システムクロック信号の周期×128×16」を乱数回路503に設定する。
乱数回路起動モジュール551dは、乱数回路503を起動させるためのプログラムモジュールである。CPU56は、乱数回路起動モジュール551dに従って処理を実行することによって、乱数回路起動データ「80h」を乱数回路起動レジスタ541に書き込むことにより、乱数回路503を起動させる。
初期値変更モジュール551eは、カウンタ521が更新するカウント値の初期値を変更させるためのプログラムモジュールである。CPU56は、初期値変更モジュール551eに従って処理を実行することによって、初期値変更手段として機能する。CPU56は、初期値変更モジュール551eを実行して、ユーザによって選択された初期値変更方式によって、カウンタ521が更新するカウント値の初期値を変更させる。そのようにすることによって、CPU56は、初期値変更方式を選択する機能を備える。
この実施の形態では、ユーザプログラム管理エリアの1F97h番地の領域に初期値変更方式設定データ「01h」が記憶されている場合、CPU56は、カウント値の初期値を、遊技制御用マイクロコンピュータ560毎に付与された固有のIDナンバにもとづいて算出された値に変更させる。
例えば、遊技制御用マイクロコンピュータ560は、ROM54の所定の記憶領域に、遊技制御用マイクロコンピュータ560のIDナンバと、IDナンバにもとづいて所定の演算を行って求めた演算値とを予め対応付けて記憶している。この場合、例えば、遊技制御用マイクロコンピュータ560のIDナンバが「100」であるとすると、IDナンバ「100」に所定値「50」を加算して求めた演算値「150」を、予めIDナンバに対応付けて記憶している。また、例えば、IDナンバ「100」に所定値「50」を減算して求めた演算値「50」を、予めIDナンバに対応付けて記憶している。また、例えば、予めIDナンバに対応づけて所定値だけを記憶していてもよい。そして、遊技制御用マイクロコンピュータ560のCPU56は、予め記憶される所定値(例えば、「50」)にIDナンバ(例えば、「100」を加算して求めた値「150」を、カウント値の初期値としてもよい。また、CPU56は、予め記憶される所定値(例えば、「50」)をIDナンバ(例えば、「100」)から減算して求めた値「50」を、カウント値の初期値としてもよい。なお、遊技制御用マイクロコンピュータ560は、データ書き込みが禁止されている記憶領域であれば、遊技制御用マイクロコンピュータ560のIDナンバを、ROM54の所定の記憶領域に記憶していてもよく、RAM55の所定の記憶領域に記憶していてもよい。
そして、初期値変更方式設定データ「01h」が記憶されている場合、CPU56は、予め記憶するIDナンバにもとづく演算値にカウント値の初期値を変更させる。そのようにすれば、乱数回路503が発生する乱数のランダム性をより向上させることができ、遊技制御用マイクロコンピュータ560のIDナンバを見ただけでは乱数の初期値を認識しにくくすることができる。そのため、無線信号を用いた取り込み信号を遊技機に対して発生させるなどの行為によって、大当り状態への移行条件を不正に成立させられてしまうことをより確実に防止することができ、セキュリティ性を向上させることができる。
また、例えば、初期値変更方式設定データ「01h」が記憶されている場合、CPU56は、遊技制御用マイクロコンピュータ560のIDナンバと所定値とを演算して(例えば、IDナンバに所定値を加算して)求めた演算値にカウント値の初期値を変更させる。この場合、例えば、CPU56は、乱数を用いてランダムに変化させた値をIDナンバと演算することによって、演算に用いる値をランダムに更新し初期値を求めてもよい。そのようにすれば、乱数回路503が発生する乱数のランダム性をより向上させることができる。
乱数回路選択モジュール551fは、遊技制御用マイクロコンピュータ560が内蔵する各乱数回路503の中から、遊技制御処理を含むタイマ割込処理の実行時に用いる乱数回路を設定するためのプログラムモジュールである。CPU56は、乱数回路選択モジュール551fに従って処理を実行することによって、遊技制御用マイクロコンピュータ560が内蔵する2つの乱数回路(12ビット乱数回路503aおよび16ビット乱数回路503b)のうち、いずれの乱数回路をタイマ割込処理の実行時に用いるかを設定する。例えば、CPU56は、ROM54の所定の記憶領域に記憶された所定の設定値(ユーザによって予め設定された値)に従って、タイマ割込処理の実行時に用いる乱数回路として、12ビット乱数回路503aまたは16ビット乱数回路503bを設定する。
なお、タイマ割込処理の実行時に用いる乱数回路として、12ビット乱数回路503aおよび16ビット乱数回路503bの両方を設定してもよい。この場合、CPU56は、例えば、12ビット乱数回路503aが発生した乱数にもとづいて変動パターンを決定し、16ビット乱数回路503bが発生した乱数にもとづいて大当り判定を行うようにしてもよい。この実施の形態では、乱数値記憶回路531は、12ビット乱数回路503aと16ビット乱数回路503bとにそれぞれ存在する(すなわち、12ビット用の乱数を記憶する乱数値記憶回路と、16ビット用の乱数を記憶する乱数値記憶回路とが、別個に存在する)。また、12ビット乱数回路503aおよび16ビット乱数回路503bの両方を設定した場合、CPU56は、12ビット乱数回路503aから読み出した乱数と、16ビット乱数回路503bから読み出した乱数とを、RAM55に設けられた別々のバッファ領域にそれぞれ格納する。そのため、12ビット乱数回路503aから乱数を読み出すタイミングと、16ビット乱数回路503bから乱数を読み出すタイミングとが同じであっても、2つの異なる乱数を抽出し別々のバッファ領域に格納することができる。
乱数値更新プログラム555は、乱数更新方式として第1の乱数更新方式が選択されているときに、乱数値記憶回路531に格納されているランダムRの値を更新させるためのプログラムである。CPU56は、乱数値更新プログラム555に従って処理を実行することによって、乱数値更新手段として機能する。CPU56は、第1の乱数更新方式が選択されているときに、乱数値更新プログラム555を実行して、カウント値更新データ「01h」をカウント値更新レジスタ538に書き込むことにより、カウンタ521にカウント値を更新させ、乱数値記憶回路531に格納さているランダムRの値を更新させる。なお、乱数更新方式として第2の乱数更新方式が選択されている場合には、クロック信号出力回路537が出力する乱数発生用クロック信号によって、カウンタ521にカウント値を更新させ、乱数値記憶回路531に格納さているランダムRの値を更新させることになる。
表示結果決定プログラム552は、特別図柄表示装置8における表示結果を大当り図柄とするか否かを決定するためのプログラムである。CPU56は、表示結果決定プログラム552に従って処理を実行することによって、表示結果決定手段として機能する。
この実施の形態では、CPU56は、遊技球が可変入賞球装置15に入賞して特別図柄の可変表示を実行するための条件(実行条件)が成立したことに応じて、表示結果決定プログラム552に従って処理を実行する。そして、CPU56は、乱数値記憶回路531から更新後のランダムRの値を読み出して、特別図柄表示装置8における表示結果を大当り図柄とするか否かを決定する。
図35は、第1の乱数更新方式が選択されている場合に、CPU56がランダムRの値を更新させたりランダムRの値を読出したりする動作を示す説明図である。図35に示すように、第1の乱数更新方式が選択されている場合、CPU56は、カウント値更新データ「01h」をカウント値更新レジスタ538に書き込むことによって、乱数値記憶回路531が記憶するランダムRの値(例えば「2」)を更新させる。そして、CPU56は、遊技球が可変入賞球装置15に入賞して特別図柄の可変表示を実行するための条件(実行条件)が成立したことに応じて、乱数値記憶回路531からランダムRの値(例えば「2」)を読み出す。
なお、乱数値記憶回路531が記憶するランダムRの値をさらに更新させる場合、前回更新時にランダムRの値を更新したときから、クロック回路501が出力するシステムクロック信号の周期以上の間隔を経過したときに、カウント値更新レジスタ538にカウント値更新データ「01h」を書き込まなければならない。なぜなら、更新後のランダムRの値を乱数値記憶回路531から読み出す時間を確保する必要があるからである。
図36は、第2の乱数更新方式が選択されている場合に、CPU56がランダムRの値を読出したりする動作を示す説明図である。図36に示すように、第2の乱数更新方式が選択されている場合、タイマ回路534は、乱数値取込データ「01h」を乱数値取込レジスタ539に書き込むことによって、カウンタ521が出力するカウント値(例えば「2」)を乱数値記憶回路531に取り込ませて、乱数値記憶回路531が記憶するランダムRの値を更新させる。そして、CPU56は、乱数値記憶回路531から更新後のランダムRの値(例えば「2」)を読み出す。
具体的には、第2の乱数更新方式が選択されている場合、カウンタ521は、乱数発生用クロック信号SI1を入力したことをトリガとしてカウント値Cを更新する。その後、乱数値取込データ「01h」が乱数値取込レジスタ539に書き込まれると、ラッチ信号生成回路533はラッチ信号SLを乱数値記憶回路531に出力する。そして、乱数値記憶回路531は、ラッチ信号SLを入力したことをトリガとしてカウンタ521が出力するカウント値を読み込んで記憶する。そして、CPU56は、乱数値記憶回路531が記憶するランダムRの値を読み出す。
なお、タイマ回路534が乱数値取込データ「01h」を乱数値取込レジスタ539に書き込まなければ、カウンタ521がカウント値を更新しても、乱数値記憶回路531は、カウンタ521が更新する乱数値を記憶しない。例えば、タイマ回路534が乱数値取込データ「01h」を乱数値取込レジスタ539に書き込み、カウンタ521が出力するカウント値「3」を乱数値記憶回路531に取り込ませて、乱数値記憶回路531が記憶するランダムRの値「3」を更新させたとする。この場合、タイマ回路534が乱数値取込データ「01h」を再び乱数値取込レジスタ539に書き込まなければ、カウンタ521が出力するカウント値が「3」から「4」や「5」に更新されても、乱数値記憶回路531が記憶する乱数値は更新されず、乱数値記憶回路531から読み出される乱数値は「3」のままである。
カウント値順列変更プログラム554は、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」を書き込んで、乱数値記憶回路531が記憶するカウント値の順列を変更させるカウント値順列変更処理を実行するためのプログラムである。CPU56は、カウント値順列変更プログラム554に従って処理を実行することによって、数値データ順列変更手段として機能する。CPU56は、カウント値順列変更プログラム554を実行して、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」を書き込むことによって、カウント値順列変更回路523が出力し乱数値記憶回路531に入力されるカウント値の順列を変更させる。
シリアル通信回路設定プログラム556は、シリアル通信回路505に各制御基板に搭載されたマイクロコンピュータ(本例では、払出制御用マイクロコンピュータ)とシリアル通信させるための初期設定を行うシリアル通信回路設定処理を実行させるためのプログラムである。すなわち、CPU56は、シリアル通信回路設定プログラム556に従って処理を実行することにより、シリアル通信回路設定手段として機能する。
割込優先順位設定プログラム557は、シリアル通信回路505の割り込み要求に応じて実行する割込処理の優先順位を初期設定するためのプログラムである。すなわち、CPU56は、割込優先順位設定プログラム556に従って処理を実行することにより、優先順位初期設定手段として機能する。
また、遊技制御用マイクロコンピュータ560は、図37に示すように、特図保留メモリ570と、大当り判定用テーブルメモリ571と、フラグメモリ572と、始動入賞口スイッチタイマメモリ573とを備える。
特図保留メモリ570は、遊技球が可変入賞球装置15に入賞して特別図柄の可変表示の実行条件は成立したが、未だ可変表示の開始条件が成立していない(例えば、特別図柄表示装置8がまだ可変表示を実行中である)可変表示の実行条件の成立回数を含む保留データを記憶するためのメモリ(保存領域)である。特図保留メモリ570は、4つのエントリを備え、各エントリには、遊技球が可変入賞球装置15に入賞した順に、保留番号と、入賞に応じて乱数値記憶回路531から読み出したランダムRの値とが対応付けて格納される。また、特別図柄表示装置8における特別図柄の可変表示が1回終了したり、大当り遊技状態が終了したりするごとに、特図保留メモリ570の最上位の情報にもとづいた可変表示の開始条件が成立し、特図保留メモリ570最上位の情報にもとづいた可変表示が実行される。この場合、特別図柄の可変表示の開始条件が成立すると、特図保留メモリ570の第2位以下に登録されている情報が1位ずつ繰り上がる。また、特別図柄の可変表示中に遊技球が可変入賞球装置15に新たに入賞した場合には、その新たな入賞にもとづいて乱数値記憶回路531から読み出されたランダムRの値が、特図保留メモリ570の空エントリに登録される。
大当り判定用テーブルメモリ571は、CPU56が特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定するために用いる複数の大当り判定テーブルを記憶する。具体的には、大当り判定用テーブルメモリ571は、図38(A)に示すように、確変状態以外の遊技状態(通常状態という)において用いられる通常時大当り判定テーブル571aを記憶する。また、大当り判定用テーブルメモリ571は、図38(B)に示すように、確変状態において用いられる確変時大当り判定テーブル571bを格納する。なお、図38に示す判定テーブルを用いて大当り判定を行う場合、乱数最大値設定レジスタ535に設定された乱数最大値によって大当りと判定する確率が大きく変化することになる。この場合、例えば、設定される乱数最大値が小さすぎると、通常時大当り判定テーブル571aを用いた場合と、確変時大当り判定テーブル571bを用いた場合とで、大当りと判定する確率の差が小さくなってしまい、遊技者の遊技に対する興味を減退させてしまうことになる。そのため、乱数回路503および乱数最大値に対応づけて、複数の判定テーブル(複数の通常時大当り判定用テーブル571aおよび複数の確変時大当り判定用テーブル571b)を大当り判定用テーブルメモリ571に記憶してもよい。そして、CPU56は、大当り判定用テーブルメモリ571が記憶する判定テーブルのうち、使用する乱数回路503および乱数最大値に対応する判定テーブル571a,571bを用いて、表示結果決定プログラム552に従って、特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定するようにしてもよい。そのようにすることによって、使用する乱数回路503の種類や乱数最大値が異なっても、大当りと判定する確率がある程度同じになるように制御することができる。
なお、この実施の形態では、16ビット乱数回路503bを用いることにする。すなわち、ステップS151の処理で16ビット乱数回路503bを用いることに決定されたとする。よって、ランダムRとして、16ビットで発生できる範囲(0から65535までの範囲)の値をとりうる。
フラグメモリ572には、遊技の進行を制御する遊技制御処理において用いられる各種のフラグが設定される。例えば、フラグメモリ572には、遊技状態が確変状態であることを示す確変フラグや、大当り状態であることを示す大当りフラグが設定される。
始動口スイッチタイマメモリ573は、始動口スイッチ14aから入力される入賞検出信号SSに応じて加算またはクリアされるタイマ値を記憶する。
次に遊技機の動作について説明する。図39および図40は、遊技機に対して電力供給が開始され遊技制御用マイクロコンピュータ560へのリセット信号がハイレベルになったことに応じて遊技制御用マイクロコンピュータ560のCPU56が実行するメイン処理を示すフローチャートである。リセット信号が入力されるリセット端子の入力レベルがハイレベルになると、遊技制御用マイクロコンピュータ560のCPU56は、プログラムの内容が正当か否かを確認するための処理であるセキュリティチェック処理を実行した後、ステップS1以降のメイン処理を開始する。メイン処理において、CPU56は、まず、必要な初期設定を行う。
初期設定処理において、CPU56は、まず、割込禁止に設定する(ステップS1)。次に、マスク可能割込の割込モードを設定し(ステップS2)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS3)。なお、ステップS2では、遊技制御用マイクロコンピュータ560の特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビット0)から合成されるアドレスが、割込番地を示すモードに設定する。また、マスク可能な割込が発生すると、CPU56は、自動的に割込禁止状態に設定するとともに、プログラムカウンタの内容をスタックにセーブする。
次いで、内蔵デバイスレジスタの設定(初期化)を行う(ステップS4)。ステップS4の処理によって、内蔵デバイス(内蔵周辺回路)であるCTC(カウンタ/タイマ)およびPIO(パラレル入出力ポート)の設定(初期化)がなされる。
この実施の形態で用いられる遊技制御用マイクロコンピュータ560は、I/Oポート(PIO)およびタイマ/カウンタ回路(CTC)504も内蔵している。
次に、入力ポート1のビット0の状態によって電源断信号がオフ状態になっているか否か確認する(ステップS5)。遊技機に対する電力供給が開始されたときに、+5V電源などの各種電源の出力電圧は徐々に規定値に達するのであるが、ステップS5の処理によって、すなわち、電源断信号が出力されていない(ハイレベルになっている)ことを確認することによりCPU56は電源電圧が安定したことを確認することができる。
電源断信号がオン状態である場合には、CPU56は、所定期間(例えば、0.1秒)の遅延時間の後に(ステップS80)、再度、電源断信号がオフ状態になっているか否か確認する。電源断信号がオフ状態になっている場合には、RAM55をアクセス可能状態に設定し(ステップS6)、クリア信号のチェック処理に移行する。
なお、電源断信号がオフ状態である場合に、遊技の進行を制御する遊技装置制御処理(遊技制御処理)の開始タイミングをソフトウェアで遅らせるためのソフトウェア遅延処理を実行するようにしてもよい。そのようなソフトウェア遅延処理によって、ソフトウェア遅延処理を実行しない場合に比べて、遊技制御処理の開始タイミングを遅延させることができる。遅延処理を実行したときには、他の制御基板(例えば、払出制御基板37)に対して、遊技制御基板(主基板31)が送信するコマンドを他の制御基板のマイクロコンピュータが受信できないという状況が発生することを防止できる。
次いで、CPU56は、クリアスイッチがオンされているか否か確認する(ステップS7)。なお、CPU56は、入力ポート0を介して1回だけクリア信号の状態を確認するようにしてもよいが、複数回クリア信号の状態を確認するようにしてもよい。例えば、クリア信号の状態がオフ状態であることを確認したら、所定時間(例えば、0.1秒)の遅延時間をおいた後、クリア信号の状態を再確認する。そのときにクリア信号の状態がオン状態であることを確認したら、クリア信号がオン状態になっていると判定する。また、このときにクリア信号の状態がオフ状態であることを確認したら、所定時間の遅延時間をおいた後、再度、クリア信号の状態を再確認するようにしてもよい。ここで、再確認の回数は、1回または2回に限られず、3回以上であってもよい。また、2回チェックして、チェック結果が一致していなかったときにもう一度確認するようにしてもよい。
ステップS7でクリアスイッチがオンでない場合には、遊技機への電力供給が停止したときにバックアップRAM領域のデータ保護処理(例えばパリティデータの付加等の電力供給停止時処理)が行われたか否か確認する(ステップS8)。この実施の形態では、電力供給の停止が生じた場合には、バックアップRAM領域のデータを保護するための処理が行われている。そのような電力供給停止時処理が行われていたことを確認した場合には、CPU56は、電力供給停止時処理が行われた、すなわち電力供給停止時の制御状態が保存されていると判定する。電力供給停止時処理が行われていないことを確認した場合には、CPU56は初期化処理を実行する。
電力供給停止時処理が行われていたか否かは、電力供給停止時処理においてバックアップRAM領域に保存されるバックアップ監視タイマの値が、電力供給停止時処理を実行したことに応じた値(例えば2)になっているか否かによって確認される。なお、そのような確認の仕方は一例であって、例えば、電力供給停止時処理においてバックアップフラグ領域に電力供給停止時処理を実行したことを示すフラグをセットし、ステップS8において、そのフラグがセットされていることを確認したら電力供給停止時処理が行われたと判定してもよい。
電力供給停止時の制御状態が保存されていると判定したら、CPU56は、バックアップRAM領域のデータチェック(この例ではパリティチェック)を行う(ステップS9)。この実施の形態では、クリアデータ(00)をチェックサムデータエリアにセットし、チェックサム算出開始アドレスをポインタにセットする。また、チェックサムの対象になるデータ数に対応するチェックサム算出回数をセットする。そして、チェックサムデータエリアの内容とポインタが指すRAM領域の内容との排他的論理和を演算する。演算結果をチェックサムデータエリアにストアするとともに、ポインタの値を1増やし、チェックサム算出回数の値を1減算する。以上の処理が、チェックサム算出回数の値が0になるまで繰り返される。チェックサム算出回数の値が0になったら、CPU56は、チェックサムデータエリアの内容の各ビットの値を反転し、反転後のデータをチェックサムにする。
電力供給停止時処理において、上記の処理と同様の処理によってチェックサムが算出され、チェックサムはバックアップRAM領域に保存されている。ステップS9では、算出したチェックサムと保存されているチェックサムとを比較する。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップRAM領域のデータは保存されているはずであるから、チェック結果(比較結果)は正常(一致)になる。チェック結果が正常でないということは、バックアップRAM領域のデータが、電力供給停止時のデータとは異なっている可能性があることを意味する。そのような場合には、内部状態を電力供給停止時の状態に戻すことができないので、電力供給の停止からの復旧時でない電源投入時に実行される初期化処理(ステップS10〜S14の処理)を実行する。
チェック結果が正常であれば、CPU56は、遊技制御手段の内部状態と演出制御手段等の電気部品制御手段の制御状態を電力供給停止時の状態に戻すための遊技状態復旧処理を行う。具体的には、ROM54に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し(ステップS91)、バックアップ時設定テーブルの内容を順次作業領域(RAM55内の領域)に設定する(ステップS92)。作業領域はバックアップ電源によって電源バックアップされている。バックアップ時設定テーブルには、作業領域のうち初期化してもよい領域についての初期化データが設定されている。ステップS91およびS92の処理によって、作業領域のうち初期化してはならない部分については、保存されていた内容がそのまま残る。初期化してはならない部分とは、例えば、電力供給停止前の遊技状態を示すデータ(特別図柄プロセスフラグなど)、出力ポートの出力状態が保存されている領域(出力ポートバッファ)、未払出賞球数を示すデータが設定されている部分などである。
また、CPU56は、ROM54に格納されているバックアップ時コマンド送信テーブルの先頭アドレスをポインタに設定し(ステップS93)、ステップS15に移行する。
初期化処理では、CPU56は、まず、RAMクリア処理を行う(ステップS10)。なお、RAM55の全領域を初期化せず、所定のデータをそのままにしてもよい。また、ROM54に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し(ステップS11)、初期化時設定テーブルの内容を順次業領域に設定する(ステップS12)。
ステップS11およびS12の処理によって、例えば、普通図柄判定用乱数カウンタ、普通図柄判定用バッファ、特別図柄バッファ、総賞球数格納バッファ、特別図柄プロセスフラグ、賞球中フラグ、球切れフラグなど制御状態に応じて選択的に処理を行うためのフラグに初期値が設定される。また、出力ポートバッファにおける接続確認信号を出力する出力ポートに対応するビットがセット(接続確認信号のオン状態に対応)される。
また、CPU56は、ROM54に格納されている初期化時コマンド送信テーブルの先頭アドレスをポインタに設定し(ステップS13)、その内容に従ってサブ基板を初期化するための初期化コマンドをサブ基板に送信する処理を実行する(ステップS14)。初期化コマンドとして、可変表示装置9に表示される初期図柄を示すコマンドや払出制御基板37への初期化コマンド等を使用することができる。
また、CPU56は、各乱数回路503a,503bを初期設定する乱数回路設定処理を実行する(ステップS15)。この場合、CPU56は、乱数回路設定プログラム551に従って処理を実行することによって、各乱数回路503a,503bにランダムRの値を更新させるための設定を行う。
また、CPU56は、シリアル通信回路505を初期設定するシリアル通信回路設定処理を実行する(ステップS15a)。この場合、CPU56は、シリアル通信回路設定プログラム556に従って処理を実行することによって、シリアル通信回路505に払出制御用マイクロコンピュータとシリアル通信させるための設定を行う。
シリアル通信回路505を初期設定すると、CPU56は、シリアル通信回路505の割り込み要求に応じて実行する割込処理の優先順位を初期設定する(ステップS15b)。この場合、CPU56は、割込優先順位設定プログラム557に従って処理を実行することによって、割込処理の優先順位を初期設定する。
例えば、CPU56は、各割込処理のデフォルトの優先順位を含む所定の割込処理優先順位テーブルに従って、各割込処理の優先順位を初期設定する。図41は、割込処理優先順位テーブルの例を示す説明図である。この実施の形態では、CPU56は、図41に示す割込処理優先順位テーブルに従って、シリアル通信回路505において通信エラーが発生したことを割込原因とする割込処理を優先して実行するように初期設定する。この場合、例えば、CPU56は、通信エラーが発生したことを割込原因とする割込処理を優先して実行する旨を示す通信エラー時割込優先実行フラグをセットする。
なお、この実施の形態では、タイマ割込とシリアル通信回路505からの割り込み要求とが同時に発生した場合、CPU56は、タイマ割込による割込処理を優先して行う。
また、ユーザによって各割込処理のデフォルトの優先順位を変更することもできる。例えば、遊技制御用マイクロコンピュータ560は、ユーザ(例えば、遊技機の製作者)によって設定された割込処理を指定する指定情報を、あらかじめROM54の所定の記憶領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された指定情報に従って、割込処理の優先順位を設定する。
そして、CPU56は、所定時間(例えば2ms)ごとに定期的にタイマ割込がかかるように遊技制御用マイクロコンピュータ560に内蔵されているCTCのレジスタの設定を行なうタイマ割込設定処理を実行する(ステップS16)。すなわち、初期値として例えば2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。この実施の形態では、2msごとに定期的にタイマ割込がかかるとする。
タイマ割込の設定が完了すると、CPU56は、表示用乱数更新処理(ステップS18)および初期値用乱数更新処理(ステップS18a)を繰り返し実行する。CPU56は、表示用乱数更新処理および初期値用乱数更新処理が実行されるときには割込禁止状態にして(ステップS17)、表示用乱数更新処理および初期値用乱数更新処理の実行が終了すると割込許可状態にする(ステップS19)。
ステップS19で割込許可状態に設定されると、次にステップS17の処理が実行されて割込禁止状態とされるまで、タイマ割込またはシリアル通信回路505からの割り込み要求を許可する状態となる。そして、割込許可状態に設定されている間に、タイマ割込が発生すると、遊技制御用マイクロコンピュータ560のCPU56は、後述するタイマ割込処理を実行する。また、割込許可状態に設定されている間に、シリアル通信回路505から割り込み要求が発生すると、遊技制御用マイクロコンピュータ560のCPU56は、後述する各割込処理(通信エラー割込処理や、受信時割込処理、送信完了割込処理)を実行する。また、本実施の形態では、ステップS17からステップS19までのループ処理の前にステップS15bを実行することによって、タイマ割込または割り込み要求を許可する状態に設定される前に、割込処理の優先順位を設定または変更する処理が行われる。
なお、表示用乱数とは、特別図柄表示器8の表示を決定するための乱数である。この実施の形態では、表示用乱数として、特別図柄の変動パターンを決定するための変動パターン決定用乱数や、大当りを発生させない場合にリーチとするか否かを決定するためのリーチ判定用乱数が用いられる。また、表示用乱数更新処理とは、表示用乱数を発生するためのカウンタのカウント値を更新する処理である。
また、初期値用乱数更新処理とは、初期値用乱数を発生するためのカウンタのカウント値を更新する処理である。初期値用乱数とは、大当りの種類を決定するための判定用乱数(例えば、大当りを発生させる特別図柄を決定するための大当り図柄決定用乱数や、遊技状態をいずれの状態(確変状態や高ベース状態)に移行させるかを決定するための状態決定用乱数、普通図柄にもとづく当りを発生させるか否かを決定するための普通図柄当たり判定用乱数)を発生するためのカウンタ(判定用乱数発生カウンタ)等のカウント値の初期値を決定するための乱数である。後述する遊技制御処理(遊技制御用マイクロコンピュータが、遊技機に設けられている可変表示装置9、可変入賞球装置15、球払出装置97等の遊技用の装置を、自身で制御する処理、または他のマイクロコンピュータに制御させるために指令信号を送信する処理、遊技装置制御処理ともいう)において、判定用乱数発生カウンタのカウント値が1周すると、そのカウンタに初期値が設定される。
なお、表示用乱数更新処理および初期値用乱数更新処理が実行されるときに割込禁止状態にされるのは、表示用乱数更新処理および初期値用乱数更新処理が後述するタイマ割込処理でも実行される(すなわち、タイマ割込処理のステップS24,S25でも同じ処理が実行される)ことから、タイマ割込処理における処理と競合してしまうのを避けるためである。すなわち、ステップS18,S18aの処理中にタイマ割込が発生してタイマ割込処理中で表示用乱数や初期値用乱数を発生するためのカウンタのカウント値を更新してしまったのでは、カウント値の連続性が損なわれる場合がある。しかし、ステップS18,S18aの処理中では割込禁止状態にしておけば、そのような不都合が生ずることはない。
以上のように、遊技店員等は、クリアスイッチ921をオン状態してクリア信号が出力される状態にしながら遊技機に対する電力供給を開始する(例えば電源スイッチ914をオンする)ことによって、容易に初期化処理を実行させることができる。すなわち、RAMクリア等を行うことができる。
次に、メイン処理における乱数回路設定処理(ステップS15)を説明する。図42は、乱数回路設定処理を示すフローチャートである。乱数回路設定処理において、CPU56は、まず、乱数回路設定プログラム551に含まれる乱数回路選択モジュール551fに従って処理を実行し、遊技制御用マイクロコンピュータ560が内蔵する各乱数回路503a,503bの中から、遊技制御処理を含むタイマ割込処理の実行時に用いる乱数回路を設定する(ステップS151)。例えば、遊技制御用マイクロコンピュータ560は、ユーザ(例えば、遊技機の製作者)によって設定されたタイマ割込処理の実行時に用いる乱数回路503を指定する指定情報を、あらかじめROM54の所定の記憶領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された指定情報に従って、12ビット乱数回路503aまたは16ビット乱数回路503bのいずれかを選択し、選択した乱数回路をタイマ割込処理の実行時に用いる乱数回路として設定する。なお、タイマ割込処理の実行時に用いる乱数回路として、12ビット乱数回路503aおよび16ビット乱数回路503bの両方を設定してもよい。
上記のように、ステップS151において、更新可能な数値データの所定の範囲が異なる複数の乱数回路(12ビット乱数回路503aと16ビット乱数回路503b)について、それぞれ使用可能とするか否かを設定するので、タイマ割込処理の実行中に不要な乱数を処理することを防止することができ、遊技制御用マイクロコンピュータ560の制御負担を軽減することができる。例えば、遊技制御用マイクロコンピュータ560が、2つの乱数回路503a,503bのうちの一方が発生する乱数のみを用いて遊技制御処理を行う場合、遊技制御処理に用いない方の乱数回路から乱数を読み出す処理等を行わないようにでき、遊技制御用マイクロコンピュータ560の制御負担を軽減できる。
CPU56は、ステップS151で使用する乱数回路503を設定すると、例えば、乱数回路起動レジスタ541にデータを書き込まない等により、カウンタ521やクロック信号出力回路524の動作を停止させることで、使用しないように設定した方の乱数回路のカウンタ521がカウント値Cを更新しないようにする。また、例えば、使用しないように設定した方の乱数回路のカウンタ521はカウント値Cを更新するが、CPU56は出力制御信号SCを出力しないようにし、乱数値記憶回路531から乱数を読み出せないように制御してもよい。また、例えば、CPU56は、タイマ回路534に使用しないように設定した方の乱数回路の乱数値取込レジスタ539に乱数値取込データ「01h」を書き込ませないようにし、ラッチ信号生成回路533がラッチ信号SLを乱数値記憶回路531に出力しないように制御してもよい。
上記のように、使用する乱数回路503を設定するようにすることによって、使用する乱数回路503だけを設定することによって、生成する乱数の値の範囲を適切に設定することができる。また、タイマ割込処理の実行中に不要な乱数を処理することを防止することができ、遊技制御用マイクロコンピュータ560の制御負担を軽減することができる。例えば、大当りとする判定値として離れた値(例えば、「1」と「100」を含む判定テーブルを用いて大当り判定を行う場合、所定の大当り確率(例えば、100分の1)で大当りと判定するようにすると、16ビット乱数回路503bによる乱数を用いるよりも、12ビット乱数回路503aによる乱数を用いた方が、処理すべき判定値の種類の数が少なくて済み、遊技制御用マイクロコンピュータ560の制御負担が軽減される。
また、CPU56は、乱数回路設定プログラム551に含まれる乱数最大値設定モジュール551aに従って処理を実行し、ユーザによって予め設定された乱数最大値を指定する乱数最大値設定データを、乱数最大値設定レジスタ535に書き込む(ステップS152)。そのようにすることによって、ユーザによって予め設定されたランダムRの乱数最大値を乱数回路503に設定する。なお、タイマ割込実行時に用いる乱数回路として12ビット乱数回路503aを設定した場合、CPU56は、乱数最大値(「0」〜「4095」のうちのいずれかの値)を指定する乱数最大値設定データを、12ビット乱数回路503aの乱数最大値設定レジスタ535に書き込む。また、タイマ割込実行時に用いる乱数回路として16ビット乱数回路503bを設定した場合、CPU56は、乱数最大値(「0」〜「65535」のうちのいずれかの値)を指定する乱数最大値設定データを、16ビット乱数回路503bの乱数最大値設定レジスタ535に書き込む。
なお、この実施の形態では、乱数最大値として「0」〜「255」が設定された場合には、後述する乱数最大値再設定処理において乱数最大値を所定値に設定しなおすことになる。また、乱数最大値として「256」以上の値を書き込む制御を行った場合であっても、データ化けなどの原因によって「0」〜「255」の値が乱数最大値設定レジスタ535に設定されてしまった場合には、後述する乱数最大値再設定処理において乱数最大値を所定値に設定しなおす。
上記のように、ステップS152において、生成する乱数の最大値をあらかじめ乱数最大値設定レジスタ535に設定するので、タイマ割込処理の実行中に用いる乱数の範囲より大きい値の乱数を生成してしまうことを防止でき、乱数回路503および遊技制御用マイクロコンピュータ560の処理負担を軽減することができる。
また、CPU56は、ステップS152で乱数最大値設定レジスタ535に設定した乱数最大値が所定の下限値以下でないかを確認し、乱数最大値が下限値以下である場合には、乱数最大値設定レジスタ535に設定されている乱数最大値の再設定を行う乱数最大値再設定処理を実行する(ステップS153)。
また、CPU56は、乱数回路設定プログラム551に含まれる初期値変更モジュール551eに従って処理を実行し、乱数回路503のカウンタ521が更新するカウント値の初期値を変更させる初期値変更処理を実行する(ステップS154)。
また、CPU56は、乱数回路設定プログラム551に含まれる乱数更新方式選択モジュール551bに従って処理を実行し、乱数更新方式選択データを乱数更新方式選択レジスタ540に書き込む(ステップS155)。そのようにすることによって、乱数回路503の乱数更新方式を設定する。なお、この実施の形態では、CPU56は、乱数更新方式選択データ「10h」を乱数更新方式選択レジスタ540に書き込むものとする。すなわち、この実施の形態では、乱数回路503の乱数更新方式として第2の乱数更新方式が設定される。
また、CPU56は、乱数回路設定プログラム551に含まれる周期設定モジュール551cに従って処理を実行し、ユーザによって予め設定された乱数発生用クロック信号SI1の周期を指定する周期設定データ(基準クロック信号を何分周させるかを設定するためのデータ)を、周期設定レジスタ537に書き込む(ステップS156)。そのようにすることによって、ユーザによって予め設定された乱数発生用クロック信号SI1の周期を乱数回路503に設定する。
また、CPU56は、乱数回路503のカウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521に入力する初期値を更新するか否かを設定する(ステップS157)。例えば、遊技制御用マイクロコンピュータ560は、カウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521に入力する初期値を更新するか否かを示す設定値を、予めユーザによって設定されROM54の所定領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された所定の設定値に従って、カウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521に入力する初期値を更新するか否かを設定する。この実施の形態では、CPU56は、ステップS157において、カウンタ521に入力する初期値を更新すると判定すると、所定の最終値までカウント値が更新されたとき(カウンタ521から通知信号を入力したとき)に初期値を更新する旨を示す初期値更新フラグをセットする。この実施の形態では、ステップS157において、所定の設定値に従って初期値更新フラグをセットする場合を説明する。そして、CPU56は、後述する乱数回路初期値更新処理において、初期値更新フラグがセットされていることにもとづいて、カウンタ521が出力するカウント値の初期値を更新する。
なお、CPU56によってカウント値の初期値を変更するのでなく、最終値までカウント値を更新したことにもとづいて、乱数回路503側でカウント値の初期値を所定値に変更するようにしてもよい。例えば、乱数回路503は、初期値を更新する旨を示す初期値更新データを格納する初期値更新データレジスタ、及び初期値の変更を行う初期値変更回路を備え、CPU56は、ステップS157において、初期値更新データを初期値更新データレジスタに設定する。この場合、カウンタ521は、最終値までカウント値を更新すると、通知信号を初期値変更回路に出力する。すると、初期値変更回路は、初期値更新データレジスタに初期値更新データが設定されているか否かを確認する。そして、初期値変更回路は、初期値更新データが設定されていることを確認すると、カウント値の初期値を所定値に変更する。なお、初期値変更回路は、後述するカウント値順列変更処理において、順列を変更したカウント値の初期値を変更してもよい。
また、CPU56は、乱数回路503のカウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521が更新するカウント値の順列を変更するか否かを設定する(ステップS158)。例えば、遊技制御用マイクロコンピュータ560は、カウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521が出力するカウント値の順列を変更するか否かを示す設定値を、予めユーザによって設定されROM54の所定領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された所定の設定値に従って、カウンタ521によって所定の最終値までカウント値が更新されたときに、カウンタ521が出力するカウント値の順列を変更するか否かを設定する。この実施の形態では、CPU56は、ステップS158において、カウンタ521が出力するカウント値の順列を変更すると判定すると、所定の最終値までカウント値が更新されたときにカウント値の順列を変更する旨を示すカウント値順列変更フラグをセットする。この実施の形態では、ステップS158において、所定の設定値に従ってカウント値順列変更フラグをセットする場合を説明する。そして、CPU56は、後述するカウント値順列変更処理において、カウント値順列変更フラグがセットされていることにもとづいて、カウンタ521が出力するカウント値の順列を変更する。
なお、CPU56の制御によってカウント値の順列を変更するのでなく、最終値までカウント値を更新したことにもとづいて、乱数回路503側でカウント値の順列変更するようにしてもよい。例えば、乱数回路503は、カウント値の順列を変更する旨を示す順列変更データを格納する順列変更データレジスタを備え、CPU56は、ステップS158において、順列変更データを順列変更データレジスタに設定する。この場合、カウンタ521が最終値までカウント値を更新すると、通知信号をカウント値順列変更回路523に出力し、通知信号を入力したカウント値順列変更回路523は、順列変更データレジスタに順列変更データが設定されているか否かを確認する。そして、カウント値順列変更回路523は、順列変更データが設定されていることを確認すると、カウント値の順列を変更する。
そして、CPU56は、乱数回路設定プログラム551に含まれる乱数回路起動モジュール551dに従って処理を実行し、乱数回路起動データ「80h」を乱数回路起動レジスタ541に書き込む(ステップS159)。そのようにすることによって、CPU56は、乱数回路503を起動させる。
次に、乱数回路設定処理における乱数最大値再設定処理(ステップS153)を説明する。図43は、乱数最大値再設定処理を示すフローチャートである。乱数最大値再設定処理において、CPU56は、乱数最大値設定レジスタ535に設定されている乱数最大値を読み込む(ステップS153a)。なお、タイマ割込処理の実行時に用いる乱数回路として12ビット乱数回路503aを設定した場合、CPU56は、12ビット乱数回路503aの乱数最大値設定レジスタ535に設定されている乱数最大値を読み込む。また、タイマ割込処理の実行時に用いる乱数回路として16ビット乱数回路503bを設定した場合、CPU56は、16ビット乱数回路503bの乱数最大値設定レジスタ535に設定されている乱数最大値を読み込む。
CPU56は、読み込んだ乱数最大値が所定の下限値以下であるか否かを判定する(ステップS153b)。12ビット乱数回路503aを設定した場合、12ビット乱数回路503aにおいて設定可能な乱数最大値が「256」から「4095」までであるので、CPU56は、12ビット乱数回路503aの乱数最大値設定レジスタ535から読み込んだ乱数最大値が下限値「256」以下であるか否かを判定する。また、16ビット乱数回路503bを設定した場合、16ビット乱数回路503bにおいて設定可能な乱数最大値が「512」から「65535」までであるので、CPU56は、16ビット乱数回路503bの乱数最大値設定レジスタ535から読み込んだ乱数最大値が下限値「512」以下であるか否かを判定する。
読み込んだ乱数最大値が下限値以下である場合、CPU56は、乱数最大値設定レジスタ535に設定される乱数最大値を所定値に設定しなおす(ステップS153c)。12ビット乱数回路503aを設定した場合、12ビット乱数回路503aの乱数最大値設定レジスタ535から読み込んだ乱数最大値が下限値「256」以下であると判定すると、CPU56は、乱数最大値設定レジスタ535に設定される乱数最大値を所定値「4095」に設定しなおす。また、16ビット乱数回路503bを設定した場合、16ビット乱数回路503bの乱数最大値設定レジスタ535から読み込んだ乱数最大値が下限値「512」以下であると判定すると、CPU56は、乱数最大値設定レジスタ535に設定される乱数最大値を所定値「65535」に設定しなおす。
以上のように、乱数最大値設定レジスタ535に設定した乱数最大値が所定の下限値以下となっている場合には、乱数最大値を所定値に設定しなおす。そのため、遊技制御用マイクロコンピュータ560の誤動作や、無線信号を用いた取り込み信号を遊技機に対して発生させるなどの行為によって、過度に小さい値が乱数の最大値として設定されてしまうことを防止することができる。従って、最小値から最大値までの値の範囲が過度に小さい乱数を生成する事態が発生することを防止することができる。
次に、乱数回路設定処理における初期値変更処理(ステップS154)を説明する。図44は、初期値変更処理を示すフローチャートである。初期値変更処理において、CPU56は、まず、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されている初期値変更方式設定データを読み出し、ユーザによって選択された初期値変更方式を特定する。この場合、CPU56は、読み出した初期値変更方式設定データの値が「01h」であるか否かを判定することによって(ステップS154a)、ユーザによって選択された初期値変更方式を特定する。
初期値変更方式設定データの値が「01h」である場合、CPU56は、乱数回路503のカウンタ521に入力する初期値を、遊技制御用マイクロコンピュータ560固有のIDナンバにもとづいて設定された値に変更する(ステップS154b)。例えば、遊技制御用マイクロコンピュータ560は、ROM54の所定の記憶領域に、遊技制御用マイクロコンピュータ560のIDナンバと、IDナンバにもとづいて所定の演算を行って求めた演算値とを予め対応付けて記憶している。そして、ステップS154bにおいて、CPU56は、予め記憶するIDナンバにもとづく演算値にカウント値の初期値を変更させる。また、例えば、ステップS154bにおいて、CPU56は、遊技制御用マイクロコンピュータ560のIDナンバと所定値とを演算して(例えば、IDナンバ(例えば、「100」)に所定値(例えば、「100」)を加算して)求めた演算値(例えば、「200」)にカウント値の初期値を設定する。また、カウンタ521に入力する初期値を変更すると、CPU56は、カウント値の初期値を変更した旨を示す初期値変更フラグをセットする(ステップS154c)。
なお、CPU56は、ステップS154bにおいてカウンタ521に入力する初期値を変更する際、乱数回路503の比較器522の乱数最大値設定レジスタ535の値を確認し、IDナンバにもとづいて設定された値が乱数最大値以上であるか否かを判断する。そして、IDナンバにもとづいて設定された値が乱数最大値以上であると判断すると、CPU56は、カウンタ521に入力する初期値を変更しない(例えば、初期値を「0」に設定しなおす)。そのようにすることによって、カウント値の初期値が乱数最大値以上の値に設定されてしまう事態を防止することができる。
ステップS154aにおいて、初期値変更方式設定データの値が「01h」でない場合(すなわち、ユーザプログラム実行データエリアの1F97h番地の領域に記憶されている初期値変更方式設定データの値が「00h」である場合)、CPU56は、カウント値の初期値の変更を行わず、そのまま初期値変更処理を終了し、ステップS155に移行する。
乱数回路設定処理が実行されることによって、遊技制御処理を含むタイマ割込処理の実行時に乱数回路503に各種信号が入力され、乱数回路503内で各種信号が生成される。図45は、乱数回路503に各信号が入力されるタイミング、および乱数回路503内で各信号が生成されるタイミングを示すタイミングチャートである。
図45に示すように、クロック回路501は、所定周期ごと(図45に示すタイミングT11,T21,・・・)に、出力端子の信号レベルをローレベルからハイレベルに立ち上げることによって、乱数回路503に基準クロック信号CLK(図45(A)参照)を入力する。
クロック信号出力回路524は、クロック回路501から供給された基準クロック信号CLKを分周し、乱数発生用クロック信号SI1(図45(B)参照)を生成する。例えば、クロック信号出力回路524は、タイミングT11,T12,・・・で出力端子の信号レベルをローレベルからハイレベルに立ち上げ、タイミングT21,T22,・・・で信号レベルをハイレベルからローレベルに立ち下げることによって、乱数発生用クロック信号SI1を出力する。
なお、図45に示す例では、説明を分かりやすくするために、クロック信号出力回路524が基準クロック信号CLKを2分周して乱数発生用クロック信号SI1を生成する場合を示している。しかし、実際の乱数回路では、周期設定レジスタ537に設定可能な周期は「システムクロック信号の周期×128×7」から「システムクロック信号の周期×128×256」まである。従って、実際の乱数回路では、クロック信号出力回路524は、「システムクロック信号の周期×128×7」から「システムクロック信号の周期×128×256」までの範囲で周期設定レジスタ537に設定される周期設定データ「07h」〜「FFh」に対応した分周比で、基準クロック信号CLKを分周し乱数発生用クロック信号SI1を生成する。クロック信号出力回路524によって生成された乱数発生用クロック信号SI1は、セレクタ528と反転回路532とに出力される。
この実施の形態では、乱数回路設定処理において、第2の乱数更新方式が設定されるので、乱数更新方式選択信号出力回路527から第2の乱数更新方式選択信号がセレクタ528に入力される。セレクタ528は、乱数更新方式選択信号出力回路527から第2の乱数更新方式選択信号が入力されると、クロック信号出力回路524から入力した乱数発生用クロック信号SI1を選択してカウンタ521に出力する。カウンタ521は、セレクタ528から供給される乱数発生用クロック信号SI1の立ち上がりエッヂが入力されるごとに、カウント値Cを更新してカウント値順列変更回路523に出力する。
反転回路532は、クロック信号出力回路524から入力した乱数発生用クロック信号SI1の信号レベルを反転させることによって、反転クロック信号SI2(図45(C)参照)を生成する。例えば、反転回路532は、タイミングT11,T12,・・・で出力端子の信号レベルをハイレベルからローレベルに立ち下げ、タイミングT21,T22,・・・で信号レベルをローレベルからハイレベルに立ち上げることによって、反転クロック信号SI2を出力する。また、反転回路532によって生成された反転クロック信号SI2は、ラッチ信号生成回路533に出力される。
ラッチ信号生成回路533には、入賞検出信号SS(図45(D)参照)がタイマ回路534に入力されてから所定時間(例えば3ミリ秒)が経過すると、乱数値読取信号出力回路526から乱数値読取信号が入力される。例えば、乱数値読取信号出力回路526の出力端子の信号レベルがローレベルからハイレベルに立ち上がることによって、ラッチ信号生成回路533に乱数値読取信号が入力される。ラッチ信号生成回路533は、乱数更新方式選択信号出力回路527から第2の乱数更新方式選択信号が入力されたことに応じて、乱数値読取信号出力回路526から入力する乱数値読取信号を反転回路532から供給される反転クロック信号SI2の立ち上がりエッヂに同期させて、ラッチ信号SL(図45(E)参照)を出力する。
以上のように、乱数回路503は、タイミングT11,T12,T13・・・においてカウント値Cを更新し、タイミングT11,T12,T13とは異なるタイミングT22においてラッチ信号SLを出力させ、乱数値記憶回路531に乱数値を記憶する。
次に、メイン処理におけるシリアル通信回路設定処理(ステップS15a)を説明する。図46は、シリアル通信回路設定処理を示すフローチャートである。シリアル通信回路設定処理において、CPU56は、まず、シリアル通信回路設定プログラム556に従って処理を実行し、シリアル通信回路505のボーレートを設定する(ステップS1511)。この場合、CPU56は、シリアル通信回路505のボーレートレジスタ702に、設定するボーレートに対応する設定値を書き込む。例えば、遊技制御用マイクロコンピュータ560は、ユーザ(例えば、遊技機の製作者)によって設定された設定値を指定する指定情報を、あらかじめROM54の所定の記憶領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された指定情報に従って、設定値をボーレートレジスタ702に書き込む。例えば、CPU56によってボーレート設定値「156」が設定された場合、ボーレート生成回路703によって、式(1)およびクロック周波数「3MHz」を用いてボーレート「1201.92bps」が生成される。
また、CPU56は、シリアル通信回路505が送受信するデータのデータフォーマットを設定する(ステップS1512)。この場合、CPU56は、制御レジスタA707の各ビットの値を設定することによって、送受信データのデータ長(8ビットまたは9ビット)、パリティ機能の使用の有無を設定する。例えば、遊技制御用マイクロコンピュータ560は、ユーザ(例えば、遊技機の製作者)によって設定された制御レジスタA707の各ビットの値を指定する指定情報を、あらかじめROM54の所定の記憶領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された指定情報に従って、制御レジスタA707の各ビットの値を設定する。
また、CPU56は、シリアル通信回路505が発生する各割込要求を許可するか否かを設定する(ステップS1513)。この場合、CPU56は、制御レジスタB708のビット5,6,7の値を設定することによって、送信時割り込み要求(データの送信時に行う割り込み要求である送信割り込み要求や、送信完了時に行う送信完了割り込み要求)および受信時割り込み要求を許可するか否かを設定する。なお、CPU56は、送信時割り込み要求と受信時割り込み要求との両方を許可するように設定することも可能であり、送信時割り込み要求と受信時割り込み要求とのいずれか一方のみを許可するように設定することも可能である。また、CPU56は、制御レジスタC709のビット0〜3の値を設定することによって、各通信エラー時割り込み要求を許可するか否かを設定する。例えば、遊技制御用マイクロコンピュータ560は、ユーザ(例えば、遊技機の製作者)によって設定された制御レジスタB708および制御レジスタC709の各ビットの値を指定する指定情報を、あらかじめROM54の所定の記憶領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された指定情報に従って、制御レジスタB708および制御レジスタC709の各ビットの値を設定する。
次に、遊技制御処理について説明する。図47は、タイマ割込処理を示すフローチャートである。メイン処理の実行中に、具体的には、ステップS17〜S19のループ処理の実行中における割込許可になっている期間において、タイマ割込が発生すると、遊技制御用マイクロコンピュータ560のCPU56は、タイマ割込の発生に応じて起動されるタイマ割込処理において遊技制御処理を実行する。タイマ割込処理において、CPU56は、まず、電源断信号が出力されたか否か(オン状態になったか否か)を検出する電源断処理(電源断検出処理)を実行する(ステップS20)。次いで、スイッチ回路58を介して、ゲートスイッチ32a、始動口スイッチ14a、カウントスイッチ23および入賞口スイッチ29a,30a,33a,39a等のスイッチの検出信号を入力し、それらの状態判定を行う(スイッチ処理:ステップS21)。具体的には、各スイッチの検出信号を入力する入力ポートの状態がオン状態であれば、各スイッチに対応して設けられているスイッチタイマの値を+1する。
次に、CPU56は、乱数回路設定処理において所定の最終値までカウント値が更新されたときに初期値を更新する旨の設定がされてるか(ステップS157参照)を確認し、乱数回路503のカウンタ521に入力する初期値を更新する処理を行う(乱数回路初期値更新処理:ステップS22)。
次に、遊技制御に用いられる各判定用乱数を生成するための各カウンタのカウント値を更新する処理を行う(ステップS23)。また、CPU56は、初期値用乱数を生成するためのカウンタのカウント値を更新する処理を行う(初期値用乱数更新処理:ステップS24)。さらに、CPU56は、表示用乱数を生成するためのカウンタのカウント値を更新する処理を行う(表示用乱数更新処理:ステップS25)。
図48は、各乱数を示す説明図である。各乱数は、以下のように使用される。
(1)ランダム1:特別図柄のはずれ図柄決定用
(2)ランダム2:大当りを発生させる特別図柄を決定する(大当り図柄決定用)。
(3)ランダム3:特別図柄の変動パターンを決定する(変動パターン決定用)
(4)ランダム4:大当りを発生させない場合にリーチとするか否かを決定する(リーチ判定用)
(5)ランダム5:普通図柄にもとづく当りを発生させるか否か決定する(普通図柄当り判定用)
(6)ランダム6:ランダム2の初期値を決定する(ランダム2初期値決定用)
(7)ランダム7:ランダム5の初期値を決定する(ランダム5初期値決定用)
(8)ランダム8:遊技状態をいずれの状態に移行するかを決定する(状態決定用)。すなわち、ランダム8が、0〜19の範囲の値をとり、確変状態や高ベース状態とするか否かを決めるための乱数として用いられる。遊技制御手段は、ランダム8および後述する状態判定テーブルにもとづいて、確変状態に移行するか、高ベース状態に移行するか、または確変状態および高ベース状態の両方の状態に移行するかを決定する。なお、確変とするか否かを決定する確変決定用乱数と、高ベースとするか否かを決定する高ベース決定用乱数とを別々に用意してもよい。この場合、確変決定用乱数を用いて確変とするか否かを決定するとともに、確変とするか否かの判定とは別に、高ベース決定用乱数を用いて高ベースとするか否かを決定してもよい。
(9)ランダム9:確変を終了するか否かを決定する(確変終了判定用)。すなわち、ランダム9が、0〜49の範囲の値をとり、確変状態を終了させるか否か決めるための乱数として用いられる。遊技制御手段は、確変状態において、例えば、ランダム9があらかじめ決められている1つの値と一致した場合には、確変状態を終了させる。従って、確変状態は、1/50の確率で終了(確変パンク)する。なお、ランダム9を用いた抽選による確変終了判定を行うのでなく、確変回数決定用乱数を用いて決定した確変継続回数による確変終了判定を行うようにしてもよい。
(10)ランダム10:高ベース継続回数(高ベース状態における特別図柄の変動回数)を決定する(高ベース回数決定用)。なお、この実施の形態では、高ベース継続回数は、ランダム10の値に応じて、100回、200回、500回または1000回に決定されるとする。なお、ランダム10を用いて決定した高ベース継続回数による高ベース終了判定を行うのでなく、高ベース終了判定用乱数を用いた抽選による高ベース終了判定を行うようにしてもよい。また、例えば、状態決定用乱数および状態判定テーブルにもとづいて、高ベース状態および確変状態の両方に移行すると決定すると、確変状態が終了するまで、高ベース状態を継続させるようにしてもよい。また、例えば、状態決定用乱数および状態判定テーブルにもとづいて、高ベース状態に移行すると決定すると、最初に大当りが発生するまで、高ベース状態を継続させるようにしてもよい。
(11)ランダム11:ランダム8の初期値を決定する(ランダム8初期値決定用)
(12)ランダム12:ランダム9の初期値を決定する(ランダム9初期値決定用)
(13)ランダム13−1〜13−3(ランダム13):飾り図柄の左中右のはずれ図柄決定用(飾り図柄左中右)
(14)ランダム14:大当りを発生させる飾り図柄の組合せを決定する(大当り図柄決定用)
この実施の形態では、確変状態への移行条件(ランダム8および状態判定テーブルにもとづいて確変状態に移行すると判定されること)が成立すると、大当り遊技の終了後に遊技状態が確変状態に移行される。確変状態では、特別図柄や飾り図柄の変動の結果(最終停止図柄、単に停止図柄ともいう。)が大当り図柄となる確率が、確変状態でない状態(低確率状態)に比べて高められる。このことを、以下、「確変状態では高確率で当り/はずれが判定される」と表現することがある。この実施の形態では、確変状態では大当り図柄となる確率が10倍に高められているとする。また、この実施の形態では、後述するように、遊技状態が確変状態に制御されている場合、遊技状態が確変状態であることを示す確変フラグがセットされる。
また、この実施の形態では、高ベース状態への移行条件(ランダム8および状態判定テーブルにもとづいて高ベース状態に移行すると判定されること)が成立すると、大当り遊技の終了後に遊技状態が高ベース状態に移行される。高ベース状態では、高ベース状態でない場合と比較して、普通図柄表示器10における停止図柄が当り図柄となり可変入賞球装置15が開状態となる場合に、可変入賞球装置15が開状態となる時間が延長(開放延長状態)され、始動入賞しやすくなる。また、この実施の形態では、後述するように、遊技状態が高ベース状態に制御されている場合、遊技状態が高ベース状態であることを示す高ベースフラグがセットされる。
なお、高ベース状態において、普通図柄表示器10における停止図柄が当り図柄になる確率が高められる普通図柄確変状態に移行したり、普通図柄表示器10における普通図柄の変動時間が短縮される普通図柄時短状態に移行することによって、始動入賞しやすくなるようにしてもよい。また、高ベース状態において、特別図柄や飾り図柄の変動時間が短縮される特別図柄時短状態に移行することによって、始動入賞しやすくなるようにしてもよい。そのようにすれば、特別図柄や飾り図柄の変動時間が短縮されるので、特別図柄や飾り図柄の変動が開始される頻度が高くなり、結果として、始動入賞しやすくなる。さらに、高ベース状態において、上記に示した全ての状態(開放延長状態、普通図柄確変状態、普通図柄時短状態および特別図柄時短状態)に移行させることによって、始動入賞しやすくなるようにしてもよい。また、上記に示した各状態(開放延長状態、普通図柄確変状態、普通図柄時短状態および特別図柄時短状態)のうちのいずれか複数の状態に移行させることによって、始動入賞しやすくなるようにしてもよい。
さらに、この実施の形態では、確変状態への移行条件と高ベース状態への移行条件との双方が成立した場合、大当り遊技の終了後に、確変状態に移行されるとともに、高ベース状態に制御される。そして、高ベース状態の終了条件が成立する前に確変状態の終了条件が成立する(ランダム9が所定値と一致し確変パンクとなる)と、確変状態を終了し、遊技状態が高ベース状態(高ベース状態のみの状態)に移行される。また、確変状態の終了条件が成立する前に高ベース状態の終了条件が成立する(高ベース状態における特別図柄の変動回数が、ランダム10によって決定された高ベース継続回数に達する)と、高ベース状態を終了し、遊技状態が確変状態(確変状態のみの状態)に移行される。また、この実施の形態では、後述するように、遊技状態が確変状態に制御されるとともに高ベース状態に制御されている場合、確変フラグおよび高ベースフラグがセットされる。
なお、この実施の形態では、遊技状態が確変状態に制御されるとともに高ベース状態に制御されている状態であることを、確変/高ベース状態ともいいう。また、遊技状態が確変状態のみに制御されている(高ベース状態に制御されていない)状態であることを、確変/低ベース状態ともいう。また、遊技状態が高べーず状態のみに制御されている(確変状態に制御されていない)状態であることを、通常/高ベース状態ともいう。さらに、遊技状態が確変状態にも高ベース状態にも制御されていない状態であることを、通常/低ベース状態ともいう。
なお、この実施の形態では、状態決定用乱数(ランダム8)および状態判定テーブルにもとづいて確変状態や高ベース状態への移行条件が成立したか否かを判定する場合を説明するが、確変状態や高ベース状態への移行条件は、上記に示したものに限られない。例えば、停止時における特別図柄や飾り図柄の組み合わせが所定の大当り図柄(確変図柄や高ベース図柄)である場合に、確変状態や高ベース状態への移行条件が成立するようにしてもよい。
図47に示された遊技制御処理におけるステップS23では、CPU56は、(2)の大当り図柄決定用乱数、(5)の普通図柄当り判定用乱数、(8)の状態決定用乱数、(9)の確変終了決定用乱数、および(10)の高ベース回数決定用乱数を生成するためのカウンタのカウントアップ(1加算)を行う。すなわち、それらが判定用乱数であり、それら以外の乱数が表示用乱数または初期値用乱数である。また、遊技効果を高めるために、上記(1)〜(14)の乱数以外の普通図柄に関する乱数等も用いられていてもよい。
判定用乱数更新処理、初期値更新処理および表示用乱数更新処理を行うと、CPU56は、乱数回路503のカウンタ521が出力するカウント値の順列をカウント値順列変更回路523に変更させるカウント値順列変更処理を行う(ステップS26)。この実施の形態では、乱数回路設定処理のステップS158でカウント値順列変更フラグがセットされているか否かによって、カウント値順列変更処理を実行するか否かが決定されている。そして、CPU56は、カウント値順列変更フラグがセットされていることにもとづいて、カウント値順列変更処理を実行する。
さらに、CPU56は、特別図柄プロセス処理を行う(ステップS27)。特別図柄プロセス処理では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。また、普通図柄プロセス処理を行う(ステップS28)。普通図柄プロセス処理では、普通図柄表示器10の表示状態を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。
次いで、CPU56は、特別図柄の変動に同期する飾り図柄に関する演出制御コマンドをRAM55の所定の領域に設定して演出制御コマンドを送出する処理を行う(飾り図柄コマンド制御処理:ステップS29)。なお、飾り図柄の変動が特別図柄の変動に同期するとは、変動時間(可変表示期間)が同じであることを意味する。
さらに、CPU56は、例えばホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する情報出力処理を行う(ステップS30)。
また、CPU56は、入賞口スイッチ29a,30a,33a,39a等の検出信号にもとづく賞球個数の設定などを行う賞球処理を実行する(ステップS31)。具体的には、入賞口スイッチ29a,30a,33a,39a等がオンしたことにもとづく入賞検出に応じて、払出制御基板37に賞球個数を示す賞球個数コマンド等の払出指令コマンドを出力する。払出制御基板37に搭載されている払出制御用マイクロコンピュータ370は、賞球個数を示す賞球個数コマンドの受信に応じて球払出装置97を駆動する。
そして、CPU56は、保留記憶数の増減をチェックする記憶処理を実行する(ステップS32)。また、遊技機の制御状態を遊技機外部で確認できるようにするための試験信号を出力する処理である試験端子処理を実行する(ステップS33)。また、この実施の形態では、出力ポートの出力状態に対応したRAM領域(出力ポートバッファ)が設けられているのであるが、CPU56は、出力ポート2のRAM領域におけるソレノイドに関する内容を出力ポートに出力する(ステップS34:出力処理)。その後、CPU56は、割込許可状態に設定し(ステップS35)、処理を終了する。
この実施の形態では、遊技制御処理は定期的(例えば2msごと)に起動されることになる。なお、この実施の形態では、タイマ割込処理で遊技制御処理が実行されているが、タイマ割込処理では例えば割込が発生したことを示すフラグのセットのみがなされ、遊技制御処理はフラグがセットされたことにもとづいてメイン処理において実行されるようにしてもよい。
また、例えば、タイマ割込処理では遊技制御処理のうちスイッチ処理(ステップS21参照)、初期値用乱数更新処理(ステップS24参照)、飾り図柄コマンド制御処理(ステップS29参照)、及び後述する割込回数カウント処理(ステップS3201a,S3202参照)のみを実行するようにし、遊技制御処理のうちの他の処理をメイン処理において実行するようにしてもよい。この場合、遊技制御用マイクロコンピュータ560のCPU56は、メイン処理におけるステップS17からステップS19までのループ処理において、遊技制御処理のうち、ステップS22からステップS28(割込回数カウント処理を除く)、及びステップS31からステップS35(ステップS33を除く)の処理を実行する。また、遊技制御用マイクロコンピュータ560のCPU56は、タイマ割込処理において、割込回数(入賞検出信号を検出したあとにタイマ割込処理を実行した回数)をカウントした(ステップS3201a参照)あとに、タイマ割込処理の実行回数が所定回数(例えば、3回)に達したことを検出すると(ステップS3202参照)、乱数回路503から乱数値を読み出す条件が成立した(可変表示の実行条件が成立した)と判断し、乱数値の読み出し条件が成立した旨を示す乱数読出フラグをセットする。また、遊技制御用マイクロコンピュータ560のCPU56は、メイン処理において、特別図柄プロセス処理(ステップS27参照)における始動口スイッチ通過処理(ステップS312参照)の実行の際に、乱数読出フラグがセットされているか否かを判断し、乱数読出フラグがセットされていると判断すると、乱数回路503の乱数値記憶回路531に出力制御信号SCを出力し(ステップS3203参照)、乱数値記憶回路531から乱数値として記憶されているランダムRの値を読み出す(ステップS3204参照)。そして、CPU56は、メイン処理において、特別図柄プロセス処理(ステップS27参照)における特別図柄通常処理(ステップS300参照)の実行の際に、読み出した乱数値にもとづいて大当りとするか否かを決定することになる。なお、この実施の形態において、ステップS21〜S35の処理(ステップS30およびS33を除く)が、遊技の進行を制御する遊技制御処理に相当する。
次に、タイマ割込処理における乱数回路初期値更新処理(ステップS22)について説明する。図49は、乱数回路初期値更新処理を示すフローチャートである。乱数回路初期値更新処理において、CPU56は、乱数回路503のカウンタ521が出力するカウント値Cを最終値まで更新した旨を示す通知信号の状態を確認する(ステップS220)。通知信号がオン状態になっていることを検出した場合には、CPU56は、初期値更新フラグがセットされているか否かを確認する(ステップS221)。すなわち、CPU56は、乱数回路設定処理において、所定の最終値までカウント値が更新されたときに初期値を更新する旨の設定がなされたか否か(ステップS157参照)を確認する。
初期値更新フラグがセットされている場合、CPU56は、乱数回路503のカウンタ521が所定の最終値までカウント値を更新したときに、カウンタ521に入力する初期値を更新すると判断する。また、初期値更新フラグがセットされている場合、CPU56は、初期値変更フラグがセットされているか否かを確認する(ステップS222)。すなわち、CPU56は、カウント値の初期値が現在変更されているか否か(すなわち、遊技制御用マイクロコンピュータ560のIDナンバにもとづく値に変更されているか否か)を判断する。
初期値変更フラグがセットされている(すなわち、遊技制御用マイクロコンピュータ560のIDナンバにもとづく値に初期値が現在変更されている)場合、CPU56は、カウンタ521に入力する初期値を、遊技制御用マイクロコンピュータ560のIDナンバにもとづく値から元の値(例えば、「1」)にもどす(ステップS223)。そして、CPU56は、初期値変更フラグをリセットし(ステップS224)、初期値更新処理を終了する。
初期値変更フラグがセットされていない(すなわち、初期値が現在変更されていない)場合、CPU56は、カウンタ521に入力する初期値を、遊技制御用マイクロコンピュータ560のIDナンバにもとづく値に変更する(ステップS225)。この場合、例えば、遊技制御用マイクロコンピュータ560のIDナンバが「100」であるとすると、カウンタ521に入力する初期値を、IDナンバ「100」に所定値「100」を加算して求めた演算値「200」に変更する。また、例えば、カウンタ521に入力する初期値を、IDナンバ「100」に所定値「50」を減算して求めた演算値「50」に変更する。そして、CPU56は、初期値変更フラグをセットし(ステップS226)、初期値更新処理を終了する。
なお、12ビット乱数回路503aおよび16ビット乱数回路503bの両方を設定した場合、ステップS225において、CPU56は、一方の乱数回路(例えば、12ビット乱数回路503a)から読み込んだ乱数を所定値としてIDナンバに加算して、カウンタ521に入力する初期値を求めてもよい。そして、CPU56は、他の一方(例えば、16ビット乱数回路503b)から読み込んだ乱数を、大当り判定用の乱数として用いてもよい。
なお、CPU56は、ステップS225においてカウンタ521に入力する初期値を更新する際、乱数回路503の比較器522の乱数最大値設定レジスタ535の値を確認し、IDナンバにもとづいて設定された値が乱数最大値以上であるか否かを判断する。そして、IDナンバにもとづいて設定された値が乱数最大値以上であると判断すると、CPU56は、カウンタ521に入力する初期値を所定値のまま更新しない(例えば、所定値「0」のまま更新しない)。そのようにすることによって、カウント値の初期値が乱数最大値以上の値に設定されてしまう事態を防止することができる。
なお、ステップS220において通知信号がオフ状態であると判断した場合、およびステップS221において初期値更新フラグがセットされていないと判断した場合、CPU56は、カウンタ521に入力する初期値を更新することなく、そのまま乱数回路初期値更新処理を終了し、ステップS23に移行する。
次に、タイマ割込処理におけるカウント値順列変更処理(ステップS26)について説明する。図50は、カウント値順列変更処理を示すフローチャートである。CPU56は、カウント値順列変更プログラム554に従って処理を実行することによって、カウント値順列変更処理を行う。カウント値順列変更処理において、CPU56は、乱数回路503のカウンタ521が出力するカウント値Cを最終値まで更新した旨を示す通知信号の状態を確認する(ステップS241)。通知信号がオン状態になっていることを検出した場合には、CPU56は、カウント値順列変更フラグがセットされているか否かを確認する(ステップS242)。すなわち、CPU56は、乱数回路設定処理において、所定の最終値までカウント値が更新されたときにカウンタ521が更新するカウント値の順列を変更する旨の設定がなされたか否か(ステップS158参照)を確認する。
カウント値順列変更フラグがセットされている場合、CPU56は、乱数回路503のカウンタ521が所定の最終値までカウント値を更新したときに、カウンタ521が更新するカウント値の順列を変更すると判断する。そして、CPU56は、カウント値順列変更レジスタ536にカウント値順列変更データ「01h」を書き込む(ステップS243)。すなわち、CPU56は、カウント値順列変更データ「01h」を書き込むことによって、乱数値記憶回路531に入力されるカウント値Cの順列をカウント値順列変更回路523に変更させる。
以上のように、カウント値順列変更処理において、乱数を所定の最終値まで更新したときに、カウンタ521が更新するカウント値の順列を変更するので、乱数回路503が生成する乱数のランダム性をより向上させることができる。
次に、メイン処理における特別図柄プロセス処理(ステップS27)を説明する。図51は、遊技制御用マイクロコンピュータ560のCPU56が実行する特別図柄プロセス処理のプログラムの一例を示すフローチャートである。遊技制御用マイクロコンピュータ560のCPU56は、特別図柄プロセス処理を行う際に、変動短縮タイマ減算処理(ステップS310)を行い、遊技盤6に設けられている始動入賞口14に遊技球が入賞したことを検出するための始動口スイッチ14aがオンしていたら、すなわち遊技球が始動入賞口14に入賞する始動入賞が発生していたら(ステップS311)、始動口スイッチ通過処理(ステップS312)を行った後に、内部状態に応じて、ステップS300〜S308のうちのいずれかの処理を行う。変動短縮タイマは、特別図柄の変動時間が短縮される場合に、変動時間を設定するためのタイマである。
特別図柄通常処理(ステップS300):特別図柄の可変表示を開始できる状態(例えば、特別図柄表示器8において図柄の変動がなされておらず、特別図柄表示器8における前回の図柄変動が終了してから所定期間が経過しており、かつ、大当り遊技中でもない状態)になるのを待つ。特別図柄の可変表示が開始できる状態になると、特別図柄についての始動入賞記憶数を確認する。始動入賞記憶数が0でなければ、特図保留メモリ570に記憶されている乱数回路503が発生したランダムRにもとづいて、特別図柄の可変表示の結果を大当りとするか否か決定する。そして、内部状態(特別図柄プロセスフラグ)をステップS301に移行するように更新する。
特別図柄停止図柄設定処理(ステップS301):特別図柄の可変表示後の停止図柄を決定する。また、飾り図柄の可変表示後の停止図柄を決定する。そして、内部状態(特別図柄プロセスフラグ)をステップS302に移行するように更新する。
変動時間設定処理(ステップS302):変動パターンを決定し、その変動パターンにおける変動時間(可変表示時間:可変表示を開始してから表示結果が導出表示(停止表示)するまでの時間)を特別図柄の可変表示の変動時間とすることに決定する。ただし、可変表示装置9における表示態様をリーチ態様とした後に飾り図柄の停止図柄を大当り図柄としない場合には、変動パターンに示される時間と、飾り図柄の停止図柄のずれ数とにもとづいて、特別図柄の可変表示の変動時間を決定する。また、決定した特別図柄の変動時間を計測する変動時間タイマをスタートさせる。そして、内部状態(特別図柄プロセスフラグ)をステップS303に移行するように更新する。
特別図柄変動処理(ステップS303):所定時間(ステップS302の変動時間タイマで示された時間)が経過すると、内部状態(特別図柄プロセスフラグ)をステップS304に移行するように更新する。
特別図柄停止処理(ステップS304):特別図柄表示器8における特別図柄を停止させる。そして、特別図柄の停止図柄が大当り図柄である場合には、内部状態(特別図柄プロセスフラグ)をステップS305に移行するように更新する。そうでない場合には、内部状態をステップS300に移行するように更新する。なお、この実施の形態では、演出制御基板80は、主基板31からの変動パターンコマンドおよび表示結果指定コマンドにもとづいて変動時間タイマに変動時間を設定するとともに、その変動時間タイマを更新していくことで飾り図柄の変動時間を独自に監視し、その変動時間が経過したと判定したときに飾り図柄を停止する処理を行う。
大入賞口開放前処理(ステップS305):大入賞口を開放する制御を開始する。具体的には、カウンタ(例えば大入賞口に入った遊技球数をカウントするカウンタ)やフラグ(入賞口への入賞を検出する際に用いられるフラグ)を初期化するとともに、ソレノイド21を駆動して大入賞口を開放する。また、プロセスタイマによって大入賞口開放中処理の実行時間を設定し、大当り中フラグをセットする。そして、内部状態(特別図柄プロセスフラグ)をステップS306に移行するように更新する。
大入賞口開放中処理(ステップS306):大入賞口ラウンド表示の演出制御コマンドを演出制御基板80に送出する制御や大入賞口の閉成条件(例えば、大入賞口に所定個数(例えば10個)の遊技球が入賞したこと)の成立を確認する処理等を行う。大入賞口の閉成条件が成立したら、内部状態をステップS307に移行するように更新する。
特定領域有効時間処理(ステップS307):V入賞スイッチ22の通過の有無を監視して、大当り遊技状態継続条件の成立を確認する処理を行う。大当り遊技状態継続の条件が成立し、かつ、まだ残りラウンドがある場合には、内部状態をステップS305に移行するように更新する。また、所定の有効時間内に大当り遊技状態継続条件が成立しなかった場合、または、全てのラウンドを終えた場合には、内部状態をステップS308に移行するように更新する。なお、V入賞領域を設けない場合には、全てのラウンドが終わるまで、内部状態がステップS308に移行するように更新されないことになる。
大当り終了処理(ステップS308):大当り遊技状態が終了したことを遊技者に報知する表示制御を演出制御手段に行わせるための制御を行う。そして、内部状態をステップS300に移行するように更新する。
図52は、この実施の形態で用いられる変動パターンの一例を示す説明図である。図52において、「EXT」とは、2バイト構成の演出制御コマンドにおける2バイト目のEXTデータを示す。また、「時間」は特別図柄の変動時間(識別情報の可変表示期間)を示す。
EXTデータが「00H」〜「02H」の変動パターンは、通常遊技状態のときの特別図柄表示器8や可変表示装置9における通常変動の変動パターンである。図52に示すように、この実施の形態では、それぞれ変動時間やパターンが異なる3種類の通常変動の変動パターンを用いる。EXTデータが「03H」〜「08H」の変動パターンは、それぞれ、リーチを伴う変動パターンであって、遊技状態が通常遊技状態、確変状態および高ベース状態のいずれのときにも選択され得る。なお、EXTデータが「03H」〜「05H」の変動パターンは、特別図柄や飾り図柄の停止図柄を大当り図柄とする場合に用いられる。また、図52に示すように、この実施の形態では、それぞれ変動時間やパターンが異なる3種類のリーチ時(はずれとなる場合)の変動パターンを用いる。また、EXTデータが「06H」〜「08H」の変動パターンは、特別図柄や飾り図柄の停止図柄を大当り図柄としない場合に用いられる。また、図52に示すように、この実施の形態では、それぞれ変動時間やパターンが異なる3種類のリーチ時(大当りとなる場合)の変動パターンを用いる。
また、この実施の形態では、演出制御基板80が搭載する演出制御用マイクロコンピュータ100は、主基板31から受信した変動パターンコマンドおよび表示結果指定コマンドにもとづいて、飾り図柄の変動時間を独自に監視し、その変動時間が経過したと判定したときに飾り図柄を停止する処理を行う。この場合、可変表示装置9における表示態様をリーチ態様とした後に飾り図柄の停止図柄を大当り図柄としない場合、同じ変動パターンコマンド(EXTデータが「03H」である演出制御コマンド)を受信した場合であっても、飾り図柄の停止図柄のずれ数によって変動時間が異なることになる。例えば、飾り図柄の停止図柄が「757」である場合、停止図柄が「767」である場合と比較して、停止図柄のずれ数が1つ多い分だけ変動時間が長くなる。
この実施の形態では、後述するように、演出制御手段は、可変表示装置9における表示態様をリーチ態様とした後に飾り図柄の停止図柄を大当り図柄としない場合に、停止図柄のずれ数を求める。また、演出制御手段は、EXTデータが「03H」の変動パターンに示される時間に、表示結果指定コマンドから求めた停止図柄のずれ数に相当する時間を加算(または減算)した時間を、可変表示装置9における変動時間(可変表示期間)として求める。そして、演出制御手段は、求めた変動時間に従って可変表示装置9の飾り図柄を変動させる。従って、可変表示装置9における表示態様をリーチ態様とした後に飾り図柄の停止図柄を大当り図柄としない場合、EXTデータが「03H」の変動パターンに示される時間は、可変表示装置9における飾り図柄の変動時間を特定するための基本時間を表すことになる。
図53は、演出制御基板80に送出される演出制御コマンドの内容の一例を示す説明図である。図53に示す例において、コマンド8000(H)〜8008(H)は、特別図柄の可変表示に対応して可変表示装置9において可変表示される飾り図柄の変動パターンを指定する演出制御コマンド(変動パターンコマンド)である。コマンド8000(H)〜8002(H)は、通常変動の変動パターンを指定する変動パターンコマンドである。また、コマンド8003(H)〜8005(H)は、可変表示装置9における表示態様をリーチ態様とした後に飾り図柄の停止図柄を大当り図柄としない場合の変動パターン(変動の基本時間)を指定する変動パターンコマンドである。また、コマンド8006(H)〜8008(H)は、可変表示装置9における表示態様をリーチ態様とした後に飾り図柄の停止図柄を大当り図柄とする場合の変動パターンを指定する変動パターンコマンドである。
コマンド91XX(H)〜93XX(H)は、飾り図柄の停止図柄を指定する演出制御コマンド(表示結果指定コマンド)である。コマンド91XX(H)は、可変表示装置9の「左中右」の3つの図柄表示エリアの左の飾り図柄の停止図柄を指定する表示結果指定コマンドである。また、コマンド92XX(H)は、中の飾り図柄の停止図柄を指定する表示結果指定コマンドである。また、コマンド93XX(H)は、右の飾り図柄の停止図柄を指定する表示結果指定コマンドである。「XX」には図柄番号が設定される。
この実施の形態では、飾り図柄の停止図柄は、特別図柄の停止図柄とともに、特別図柄プロセス処理(ステップS27)における特別図柄停止図柄設定処理(ステップS301)において決定され、そのように決定された停止図柄に応じた飾り図柄指定の演出制御コマンド(91XX(H)〜93XX(H))が遊技制御用マイクロコンピュータ560から演出制御用マイクロコンピュータ100に送信される。なお、演出制御用マイクロコンピュータ100は、飾り図柄指定の演出制御コマンド(91XX(H)〜93XX(H))を受信したことに応じて、飾り図柄の停止図柄(「はずれ」「非確変大当り」「確変大当り」)を可変表示装置9に表示する。また、後述するように、可変表示装置9における表示態様をリーチ態様とした後に飾り図柄の停止図柄を大当り図柄としない場合、演出制御用マイクロコンピュータ100は、演出制御コマンド(91XX(H)〜93XX(H))にもとづいて飾り図柄の停止図柄のずれ数を特定する。そして、演出制御用マイクロコンピュータは、求めた飾り図柄のずれ数に対応する時間と、変動パターンコマンド(8001(H))に示される基本時間とにもとづいて、可変表示装置9における飾り図柄の変動時間を求める。
また、変表示装置9における表示態様をリーチ態様とした後に飾り図柄の停止図柄を大当り図柄としないときには、遊技制御用マイクロコンピュータ560は、左中右全ての飾り図柄の停止図柄を指定する表示結果指定コマンドをそれぞれ送信するのでなく、「XX」に図柄のずれ数を示す番号を設定したコマンド(図柄ずれ数指定コマンドともいう)を送信してもよい。このようなコマンドを受信した場合でも、演出制御用マイクロコンピュータ100は、飾り図柄のずれ数に対応する時間を特定することができ、可変表示装置9における飾り図柄の変動時間を特定することができる。
コマンドB500(H)〜B503(H)は、可変表示装置9における大当りの終了を指定する演出制御コマンド(大当り終了指定コマンド)である。コマンドB500(H)〜B502(H)は、大当り遊技の終了後に遊技状態を確変状態および高ベース状態のうちの少なくともいずれかに移行する場合における大当りの終了を指定する演出制御コマンド(特定大当り終了表示コマンド)である。なお、コマンドB500(H)は、大当り遊技の終了後に遊技状態を確変状態に移行するとともに高ベース状態に移行することを指定する。また、コマンドB501(H)は、大当り遊技の終了後に遊技状態を確変状態に移行する場合における大当りの終了を指定する演出制御コマンド(特定大当り終了表示コマンド)である。また、コマンドB502(H)は、大当り遊技の終了後に遊技状態を高ベース状態に移行する場合における大当りの終了を指定する演出制御コマンド(特定大当り終了表示コマンド)である。また、コマンドB503(H)は、大当り遊技の終了後に遊技状態を確変状態および高ベース状態のいずれにも移行しない場合における大当りの終了を指定する演出制御コマンド(非特定大当り終了表示コマンド)である。
コマンドB600(H)は、可変表示装置9における確変状態や高ベース状態の報知の終了を指定する演出制御コマンド(通常表示指定コマンド)である。
演出制御基板80に搭載されている演出制御用マイクロコンピュータ100は、主基板31に搭載されている遊技制御用マイクロコンピュータ560から上述した演出制御コマンドを受信すると、図53に示された内容に応じて可変表示装置9の表示状態を変更する。また、受信した演出制御コマンドに応じたランプ制御や音出力制御を実行する。なお、図53に示された演出制御コマンド以外の演出制御コマンドも主基板31から演出制御基板80に送信される。例えば、遊技状態に応じた可変表示装置9の画面の背景色等を変化させる演出制御コマンドや、客待ちデモンストレーションを指定する演出制御コマンド等も主基板31から演出制御基板80に送信される。
次に、遊技状態を確変状態や高ベース状態に移行させるか否かを判定するために用いる状態判定テーブルを説明する。図54〜図57は、遊技状態を確変状態や高ベース状態に移行させるか否かを判定するための状態判定テーブルの例を示す説明図である。図54は、現在の遊技状態(大当りとすると判定したときの遊技状態)が通常状態(非確変状態)であり且つ低ベース状態である場合に用いる状態判定テーブル(通常/低ベース時状態判定テーブルともいう)である。また、図55は、現在の遊技状態が確変状態であり且つ低ベース状態である場合に用いる状態判定テーブル(確変/低ベース時状態判定テーブルともいう)である。また、図56は、現在の遊技状態が通常状態であり且つ高ベース状態である場合に用いる状態判定テーブル(通常/高ベース時状態判定テーブルともいう)である。また、図57は、現在の遊技状態が確変状態であり且つ高ベース状態である場合に用いる状態判定テーブル(確変/高ベース時状態判定テーブルともいう)である。
遊技状態が通常/低ベース状態である場合には、図54に示すように、ランダム8の値が0,2,4,6,8,10,12,14,16または18である場合、大当り遊技終了後に、遊技状態(遊技機の制御状態)が確変状態(確変/低ベース状態)に移行する。また、ランダム8の値が7または17である場合、大当り遊技終了後に、遊技状態が高ベース状態(通常/高ベース状態)に移行する。さらに、ランダム8の値が9または19である場合、大当り遊技終了後に、遊技状態が確変状態に移行するとともに高ベース状態(確変/高ベース状態)に移行する。すなわち、遊技状態が通常/低ベース状態である場合、50パーセントの割合で確変/低ベース状態に移行され、10パーセントの割合で通常/高ベース状態に移行され、10パーセントの割合で確変/高ベース状態に移行される。
また、遊技状態が確変/低ベース状態である場合には、図55に示すように、ランダム8の値が0,2,6,8,10,12,16または18である場合、大当り遊技終了後に、遊技状態が確変状態(確変/低ベース状態)に移行する。また、ランダム8の値が3,5,7,13,15または17である場合、大当り遊技終了後に、遊技状態が高ベース状態(通常/高ベース状態)に移行する。さらに、ランダム8の値が4,9,14または19である場合、大当り遊技終了後に、遊技状態が確変状態に移行するとともに高ベース状態(確変/高ベース状態)に移行する。すなわち、遊技状態が確変/低ベース状態である場合、40パーセントの割合で確変/低ベース状態に移行され、30パーセントの割合で通常/高ベース状態に移行され、20パーセントの割合で確変/高ベース状態に移行される。
また、遊技状態が通常/高ベース状態である場合には、図56に示すように、ランダム8の値が0,2,4,6,8,10,12,14,16または18である場合、大当り遊技終了後に、遊技状態が確変状態(確変/低ベース状態)に移行する。また、ランダム8の値が7または17である場合、大当り遊技終了後に、遊技状態が高ベース状態(通常/高ベース状態)に移行する。さらに、ランダム8の値が9または19である場合、大当り遊技終了後に、遊技状態が確変状態に移行するとともに高ベース状態(確変/高ベース状態)に移行する。すなわち、遊技状態が通常/高ベース状態である場合、50パーセントの割合で確変/低ベース状態に移行され、10パーセントの割合で通常/高ベース状態に移行され、10パーセントの割合で確変/高ベース状態に移行される。
さらに、遊技状態が確変/高ベース状態である場合には、図57に示すように、ランダム8の値が2または12である場合、大当り遊技終了後に、遊技状態が確変状態(確変/低ベース状態)に移行する。また、ランダム8の値が4,6,8,10,14,16または18である場合、大当り遊技終了後に、遊技状態が高ベース状態(通常/高ベース状態)に移行する。さらに、ランダム8の値が1,3,5,7,9,11,13,15,17または19である場合、大当り遊技終了後に、遊技状態が確変状態に移行するとともに高ベース状態(確変/高ベース状態)に移行する。すなわち、遊技状態が通常/高ベース状態である場合、10パーセントの割合で確変/低ベース状態に移行され、35パーセントの割合で通常/高ベース状態に移行され、50パーセントの割合で確変/高ベース状態に移行される。
図58は、始動口スイッチ通過処理(ステップS312)を示すフローチャートである。始動口スイッチ通過処理において、遊技制御用マイクロコンピュータ560のCPU56は、始動入賞カウンタが示す始動入賞記憶数(または特図保留メモリ570が記憶している始動入賞記憶数)が最大値である4に達しているかどうか確認する(ステップS3201)。始動入賞記憶数が4に達していなければ、CPU56は、タイマ割込処理を実行した回数を示す割込回数カウンタの値を1加算する(ステップS3201a)。すなわち、CPU56は、タイマ割込処理を実行した回数をカウントする処理を実行する。この実施の形態では、CPU56は、ステップS3201aを実行することによって、タイマ割込処理を実行するごとに、タイマ割込処理を実行した回数を示す割込回数カウンタをカウントアップする。割込回数カウンタの値を1加算すると、CPU56は、割込実行回数カウンタに示されるタイマ割込処理の実行回数が所定回数(例えば、3回)に達しているか否かを確認する(ステップS3202)。そして、CPU56は、遊技球が始動入賞口14に入賞したあと、割込実行回数カウンタが所定回数に達しているか否かを確認する。なお、遊技球が始動入賞口14に入賞したことを検出すると(すなわち、ステップS3202でYESと判定すると)、CPU56は、割込実行回数カウンタをリセットする。
ステップS3202において所定回数としてあらかじめ設定される値は、以下のように定められる。前述のように、乱数回路503のタイマ回路534は、始動口スイッチ14aから入賞検出信号SSが継続して入力されている時間を計測し、計測時間が所定期間になったことを検出すると、乱数値取り込みデータ「01h」を書き込む。この実施の形態では、タイマ回路534が計測する所定期間(例えば、3ms)が、所定回数のタイマ割込処理が実行される期間(例えば、2msごとのタイマ割込処理を3回実行する場合は6ms)よりも短くなるように、ステップS3202において用いる所定回数(例えば、3回)が設定される。そのように設定することによって、乱数を読み出してから、乱数値記憶回路531に記憶される乱数の値が更新される前に再び乱数を読み出してしまうことを防止することができ、前回乱数値記憶回路531から読み出した乱数と同じ値の乱数を再び読み出してしまうことを防止することができる。なお、タイマ回路534が入賞検出信号SSの入力時間を計測するのでなく、CPU56が入賞検出信号SSの入力時間を計測し、乱数値取り込みデータ「01h」を乱数値取込レジスタ539に書き込むようにしてもよい。
タイマ割込処理の実行回数が所定回数に達している場合、CPU56は、特定した乱数回路503の乱数値記憶回路531に出力制御信号SCを出力し、乱数値記憶回路531を読出可能(イネイブル)状態に制御する(ステップS3203)。
CPU56は、乱数回路503の乱数値記憶回路531から、乱数値として記憶されているランダムRの値を読み出す(ステップS3204)。また、CPU56は、読み出したランダムRの値を、始動入賞記憶数の値に対応した保存領域(特別図柄判定用バッファ(特図保留メモリ570))に格納する(ステップS3205)。また、CPU56は、ランダムRの値をバッファ領域に格納すると、乱数値記憶回路531への出力制御信号SCの出力を停止し、乱数値記憶回路531を読出不能(ディセイブル)状態に制御する(ステップS3206)。また、CPU56は、割込実行回数カウンタをリセットする(ステップS3207)。そして、CPU56は、所定のバッファ領域に格納したランダムRの値を特図保留メモリ570の空エントリの先頭にセットし(ステップS3208)、始動入賞カウンタのカウント数を1加算することで始動入賞記憶数を1増やす(ステップS3209)。
また、CPU56は、判定用乱数や表示用乱数などの各乱数(ソフトウェア乱数)の値を抽出し、それらを始動入賞記憶数の値に対応した保存領域(特別図柄判定用バッファ)に格納する(ステップS3210)。なお、乱数を抽出するとは、乱数を生成させるためのカウンタからカウント値を読み出して、読み出したカウント値を乱数値とすることである。ステップS3210では、図48に示された乱数のうち、ランダム1〜ランダム4,ランダム8〜ランダム14が抽出される。
そして、CPU56は、変動時間を短縮するか否かの判定を行うための変動時間短縮判定時間を変動短縮タイマにセットする(ステップS3211)。なお、上述したように、ここでセットされた変動短縮タイマはステップS310にて減算される。
ステップS3201において始動入賞記憶するが最大値である4に達している場合、およびステップS3202においてタイマ割込処理の実行回数が所定回数に達してない場合、そのまま始動口スイッチ通過処理を終了する。
以上のように、始動口スイッチ通過処理において、乱数値記憶回路531からランダムRを読み出すにあたって、タイマ割込処理が所定回数実行されたこと(すなわち、タイマ割込処理が所定回数実行される間継続して入賞検出信号SSが入力されたこと)を条件に、乱数値記憶回路531から乱数を読み出す。そのため、乱数を読み出してから、乱数値記憶回路531に記憶される乱数の値が更新される前に再び乱数を読み出してしまうことを防止することができる。また、前回乱数値記憶回路531から読み出した乱数と同じ値の乱数を再び読み出してしまうことを防止することができる。
次に、特別図柄プロセス処理における特別図柄通常処理(ステップS300)について説明する。図59、図60および図61は、特別図柄通常処理を示すフローチャートである。特別図柄通常処理において、遊技制御用マイクロコンピュータ560のCPU56は、特別図柄の変動を開始することができる状態(例えば特別図柄プロセスフラグの値がステップS300を示す値となっている場合)には(ステップS3301)、始動入賞記憶数(保留記憶数)の値を確認する(ステップS3302)。具体的には、始動入賞記憶カウンタのカウント値を確認する。なお、特別図柄プロセスフラグの値がステップS300を示す値となっている場合とは、可変表示装置9において図柄の変動がなされていず、かつ、大当り遊技中でもない場合である。また、ステップS3301で変動開始不可能である場合や、ステップS3302で保留記憶数が0である場合には、CPU56は、そのまま特別図柄通常処理を終了する。
保留記憶数が0でなければ、保留記憶数=1に対応する保存領域に格納されている各乱数値(ランダムRや各判定用乱数、表示用乱数)を読み出してRAM55の乱数バッファ領域に格納するとともに(ステップS3303)、保留記憶数の値を1減らし(始動入賞記憶カウンタの値を1減らし)、かつ、各保存領域の内容をシフトする(ステップS3304)。すなわち、保留記憶数=n(n=2,3,4)に対応する保存領域に格納されている各乱数値を、保留記憶数=n−1に対応する保存領域に格納する。よって、各保留記憶数に対応するそれぞれの保存領域に格納されている各乱数値が抽出された順番は、常に、保留記憶数=1,2,3,4の順番と一致するようになっている。すなわち、この例では、CPU56は、可変表示の開始条件が成立する毎に、各保存領域の内容をシフトする処理を実行する。
また、CPU56は、確変終了とするか否かの判定を行う(ステップS3305〜S3307)。具体的には、確変フラグがセットされている場合には(ステップS3305)、CPU56は、確変終了判定用乱数(ランダム9)を保存領域から読み出して(ステップS3306)、読み出したランダム9の値が、確変終了値と一致するか否か判定し(ステップS3307)、一致する場合には、確変フラグをリセットして確変状態を終了させる(ステップS3308)。従って、ランダム9の値にもとづいて確変状態が終了したときに、ステップS3314の大当り判定において低確率状態にもとづく抽選が実行される。なお、ステップS3305で確変フラグがセットされていない場合には、CPU56は、そのままステップS3309に移行する。
なお、この実施の形態では、遊技状態が確変/低ベース状態に制御されている場合には、確変フラグのみがセットされているので、ステップS3308において、CPU56は、確変フラグのリセットを行い確変状態を終了させて、遊技状態を通常/低ベース状態に移行させることになる。また、遊技状態が確変/高ベース状態に制御されている場合には、確変フラグと高ベースフラグの双方がセットされているので、ステップS3308において、CPU56は、確変フラグのみのリセットを行い、遊技状態を通常/高ベース状態に移行させることになる。
ステップS3305で確変フラグがセットされていなかった場合、またはステップS3308で確変フラグをリセットした場合、CPU56は、高ベースフラグがセットされているか否かを確認する(ステップS3309)。すなわち、CPU56は、遊技状態が高ベース状態であるか否かを確認する。高ベースフラグがセットされていない場合には、CPU56は、通常表示指定の演出制御コマンド(通常表示指定コマンド)を演出制御手段(演出制御基板80)に送信する処理を実行し(ステップS3310)、ステップS3311に移行する。なお、具体的には、ステップS3310において、CPU56は、通常表示指定コマンドに応じたコマンド送信テーブル(あらかじめROM54にコマンド毎に設定されている)のアドレスをポインタにセットする。そして、演出制御コマンド(通常表示指定コマンド)に応じたコマンド送信テーブルのアドレスをポインタにセットされたことにもとづいて、飾り図柄コマンド制御処理(ステップS29)において通常表示指定コマンドが送信される。演出制御用CPU101は、通常表示指定コマンドを受信すると、音、表示、発光体などを用いた演出を停止し、確変状態や高ベース状態である旨の報知を終了する。
高ベースフラグがセットされている場合には、遊技状態が高ベース状態に制御されている状態であるので、CPU56は、通常表示指定コマンドを送信する処理を実行することなく、そのままステップS3311に移行する。なお、ステップS3307で確変状態を終了しないと判定した場合にも、CPU56は、通常表示指定コマンドを送信する処理を実行することなく、そのままステップS3311に移行する。
また、CPU56は、確変フラグがセットされているか否かを確認する(ステップS3311)。すなわち、CPU56は、遊技状態が確変状態に制御されているか否かを確認する。この場合、ステップS3307で確変状態を終了しないと判定した場合、遊技状態が確変状態に制御されていることになる。また、ステップS3305で確変フラグがセットされていなかった場合や、ステップS3307で確変状態を終了すると判定した場合、遊技状態が確変状態以外の通常状態に制御されていることになる。
確変フラグがセットされていない場合、CPU56は、遊技状態が確変状態以外の通常状態であると判断し、特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定するために用いるテーブルとして、通常時大当り判定テーブル571a(図38(A)参照)を設定する(ステップS3312)。また、確変フラグがセットされている場合、CPU56は、遊技状態が確変状態であると判断し、特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定するために用いるテーブルとして、確変時大当り判定テーブル571b(図38(B)参照)を設定する(ステップS3313)。
CPU56は、乱数バッファ領域に格納したランダムRの値にもとづいて、特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定する(ステップS3314)。この場合、CPU56は、ステップS3312で設定した通常時大当り判定テーブル571aまたはステップS3313で設定した確変時大当り判定テーブル571bを用いて、大当りとするか否かを判定する。また、特別図柄表示装置8の表示結果を大当り図柄とすると決定すると、CPU56は、大当り状態であることを示す大当りフラグをオン状態にする(ステップS3315)。
また、CPU56は、大当りとすることに決定すると、確変とするか否かおよび高ベースとするか否かを判定する状態判定処理を行う(ステップS3316〜S3330)。状態判定処理において、CPU56は、まず、確変フラグがセットされているか否かを確認する(ステップS3316)。また、確変フラグがセットされている場合、CPU56は、高ベースフラグがセットされているか否かを確認する(ステップS3317)。高ベースフラグがセットされている場合、CPU56は、現在の遊技状態が確変/高ベース状態であると判定し、状態判定処理に用いる状態判定テーブルとして、図57に示す確変/高ベース時状態判定テーブルを設定する(ステップS3318)。高ベースフラグがセットされていない場合、CPU56は、現在の遊技状態が確変/低ベース状態であると判定し、状態判定処理に用いる状態判定テーブルとして、図55に示す確変/低ベース時状態判定テーブルを設定する(ステップS3319)。
ステップS3316で確変フラグがセットされていない場合、CPU56は、高ベースフラグがセットされているか否かを確認する(ステップS3320)。高ベースフラグがセットされている場合、CPU56は、現在の遊技状態が通常/高ベース状態であると判定し、状態判定処理に用いる状態判定テーブルとして、図56に示す通常/高ベース時状態判定テーブルを設定する(ステップS3321)。高ベースフラグがセットされていない場合、CPU56は、現在の遊技状態が通常/低ベース状態であると判定し、状態判定処理に用いる状態判定テーブルとして、図54に示す通常/低ベース時状態判定テーブルを設定する(ステップS3322)。
CPU56は、乱数格納バッファから状態決定用乱数を読み出し(ステップS3323)、状態判定モジュールを実行する(ステップS3324)。この場合、CPU56は、ステップS3318,S3319,S3321またはS3322で設定した状態判定テーブルにもとづいて、遊技状態をいずれの状態に移行するかを決定する。具体的には、CPU56は、設定した状態判定テーブルから、読み出した状態決定用乱数(ランダム8)の値に対応する状態を特定することによって、遊技状態を通常/低ベース状態、確変/低ベース状態、通常/高ベース状態または確変/高ベース状態のいずれの状態に移行するかを決定する。なお、状態判定モジュールは、状態決定用乱数にもとづいて、遊技状態をいずれの状態に移行するかを決定するプログラムである。
確変/高ベースとすることに決定した場合には(ステップS3325)、CPU56は、確変決定フラグおよび高ベース決定フラグをセットする(ステップS3326)。なお、確変決定フラグは、確変状態への移行条件を成立させることを決定したことを示すフラグである。また、高ベース決定フラグは、高ベース状態への移行条件を成立させることを決定したことを示すフラグである。
また、確変(確変/低ベース)とすることに決定した場合には(ステップS3327)、CPU56は、確変決定フラグをセットする(ステップS3328)。さらに、また、高ベース(通常/高ベース)とすることに決定した場合には(ステップS3329)、CPU56は、高ベース決定フラグをセットする(ステップS3330)。なお、確変および高ベースのいずれともしないこと(通常/低ベース)に決定した場合には、CPU56は、確変決定フラグおよび高ベース決定フラグのいずれもセットすることなく、そのままステップS3331に移行する。
そして、CPU56は、特別図柄プロセスフラグの値を特別図柄停止図柄設定処理に対応した値に更新する(ステップS3331)。
以上のように、CPU56は、ステップS3324の状態判定処理において、状態決定用乱数(ランダム8)および状態判定テーブルにもとづいて、遊技状態を確変状態に移行するか否かの決定を行うことに加えて、高ベース状態に移行するか否かの決定を行う。そのため、所定の高確率条件の成立にもとづいて遊技状態を確変状態に移行する制御を行うことに加えて、高開放条件の成立にもとづいて遊技状態を高ベース状態に移行する制御を行うことができる。よって、可変入賞装置15が開放される割合の変化を遊技者に実感させることによって、現在の遊技状態が有利な状態であるか否かを遊技者に認識させることができる。
また、CPU56は、確変状態だけに移行する場合(確変・低ベース状態)や、確変状態に移行するとともに高ベース状態に移行する場合(確変/高ベース状態)など、遊技状態を複数種類の状態に移行するように制御する。現在の遊技状態がいずれの状態であるかによって、異なる選択割合で遊技状態を移行させる状態を決定するように構成されているので、遊技状態がいずれの状態に移行するかを遊技者に特定されにくくすることができる。従って、遊技中にいずれの遊技状態に移行するかについて遊技者に関心をもたせることができ、遊技に対する遊技者の興趣を維持することができる。
図62は、特別図柄プロセス処理における特別図柄停止図柄設定処理(ステップS301)の例を示すフローチャートである。特別図柄停止図柄設定処理において、遊技制御用マイクロコンピュータ560のCPU56は、まず、大当りフラグがセットされているか否かを確認する(ステップS361)。大当りフラグがセットされていれば、CPU56は、特別図柄判定用バッファに格納されているランダム2(特別図柄用の大当り図柄決定用乱数)にもとづいて、特別図柄の停止図柄(大当り図柄)を決定する(ステップS362)。また、特別図柄の停止図柄を決定するとともに、CPU56は、特別図柄判定用バッファに格納されているランダム14(飾り図柄用の大当り図柄決定用乱数)にもとづいて、飾り図柄の停止図柄(大当り図柄)を決定する(ステップS363)。
ステップS361で大当りフラグがセットされていなければ、CPU56は、特別図柄判定用バッファに格納されているランダム1(特別図柄用のはずれ図柄決定用乱数)にもとづいて、特別図柄の停止図柄(はずれ図柄)を決定する(ステップS364)。また、CPU56は、特別図柄判定用バッファに格納されているリーチ判定用乱数(ランダム4)にもとづいて、リーチとするか否かを決定する(ステップS365)。
リーチとする(すなわち、リーチ態様とした後に飾り図柄の停止図柄を大当り図柄としない)と決定すると(ステップS366)、CPU56は、特別図柄判定用バッファに格納されているランダム13(飾り図柄用のはずれ図柄決定用乱数)にもとづいて、飾り図柄の停止図柄(はずれ図柄)を決定する(ステップS367)。
この実施の形態では、可変表示装置9における可変表示においてリーチ演出を行う場合、左右の2つの飾り図柄が同じ図柄となる態様で演出を行う。そして、リーチ態様とした後に飾り図柄の停止図柄を大当り図柄としない場合、中の飾り図柄のみが左右の2つの飾り図柄と異なる図柄となるように可変表示装置9に表示する。この実施の形態では、ステップS367において、CPU56は、はずれ図柄決定用乱数のうちランダム13−1(左の飾り図柄用のはずれ図柄決定用乱数)にもとづいて、左右の2つの飾り図柄を決定する(すなわち、左右の飾り図柄が同じ図柄になるように決定する)。なお、CPU56は、ランダム13−3(右の飾り図柄用のはずれ図柄決定用乱数)にもとづいて、左右の2つの飾り図柄を決定してもよい。そして、CPU56は、ランダム13−2(中の飾り図柄用のはずれ図柄決定用乱数)にもとづいて、中の飾り図柄を決定する。
なお、決定した中の飾り図柄が、先に決定した左右の飾り図柄と偶然同じ図柄であった場合、飾り図柄の停止図柄が大当り図柄と同じ図柄の組合せになってしまう。そのため、CPU56は、決定した中の飾り図柄が、先に決定した左右の飾り図柄と同じ図柄であるか否かを確認し、同じ図柄である場合、ランダム13−2にもとづいて特定した図柄から1つずらした図柄を、中の飾り図柄として決定してもよい。
ステップS366でリーチとしない場合、CPU56は、特別図柄判定用バッファに格納されているランダム13−1〜13−3(飾り図柄用のはずれ図柄決定用乱数)にもとづいて、飾り図柄の停止図柄(はずれ図柄)を決定する(ステップS368)。この場合、CPU56は、はずれ図柄決定用乱数のうちランダム13−1(左の飾り図柄用のはずれ図柄決定用乱数)にもとづいて、左の飾り図柄を決定する。また、CPU56は、ランダム13−2(中の飾り図柄用のはずれ図柄決定用乱数)にもとづいて、中の飾り図柄を決定する。また、CPU56は、ランダム13−3(右の飾り図柄用のはずれ図柄決定用乱数)にもとづいて、右の飾り図柄を決定する。
なお、決定した左右の飾り図柄が偶然同じ図柄であった場合、飾り図柄の停止図柄がリーチ時と同じ図柄の組合せになってしまう。そのため、CPU56は、決定した左右の飾り図柄が同じ図柄であるか否かを確認し、同じ図柄である場合、ランダム13−3(またはランダム13−1)にもとづいて特定した図柄から1つずらした図柄を、右(または左)の飾り図柄として決定してもよい。
そして、CPU56は、特別図柄プロセスフラグの値を変動時間設定処理に対応した値に更新する(ステップS369)。
図63は、特別図柄プロセス処理における変動時間設定処理(ステップS302)の例を示すフローチャートである。変動時間設定処理において、遊技制御用マイクロコンピュータ560のCPU56は、特別図柄停止図柄設定処理で決定した飾り図柄の停止図柄がリーチ態様とした後に大当たりとしない場合の図柄の組合せ(例えば、「左中右」の3つの図柄のうちの「中」の図柄だけ異なる図柄の組合せ。リーチ/はずれ図柄ともいう)である場合(ステップS391a)、決定した飾り図柄の停止図柄にもとづいて、はずれ図柄のずれ数を特定する(ステップS391b)。例えば、決定した飾り図柄の停止図柄が「767」である場合、CPU56は、ずれ数「1」と特定する。また、例えば、特定した飾り図柄の停止図柄が「757」である場合、CPU56は、ずれ数「2」と特定する。
CPU56は、変動パターン決定用乱数の値にもとづいて、特別図柄の変動パターンを決定する。この場合、CPU56は、変動パターン決定用乱数の値と、ステップS391bで特定したはずれ図柄のずれ数とにもとづいて、特別図柄の変動時間を特定する(ステップS391c)。この実施の形態では、CPU56は、決定した停止図柄がリーチ/はずれ図柄である場合、特別図柄の基本時間が10秒であると特定する(図52参照)。また、CPU56は、特定したずれ数に対応する時間(飾り図柄が変動する際に、図柄がずれている分だけ基本時間に対して余分に変動にかかる時間)を特定する。例えば、CPU56は、特定したずれ数が「1」である場合、対応する時間を1秒と特定する。また、例えば、CPU56は、特定したずれ数が「2」である場合、対応する時間を2秒と特定する。そして、CPU56は、特定した基本時間にずれ数に対応する時間を加算(または減算)した時間を、特別図柄の変動時間として特定する。例えば、CPU56は、特定したずれ数が「1」である場合、特別図柄の変動時間を11秒と特定する。また、例えば、CPU56は、特定したずれ数が「2」である場合、特別図柄の変動時間を12秒と特定する。
ステップS391aで飾り図柄の停止図柄がリーチ/はずれ図柄でない(例えば、リーチ態様とした後に大当たりとする場合の図柄の組合せや、リーチ態様とならない図柄の組合せ)場合、CPU56は、変動パターン決定用乱数の値にもとづいて、特別図柄の変動時間を決定し変動パターンを決定する(S391d)。
変動パターンを決定すると、CPU56は、決定した変動パターン指定のコマンド送信テーブルのアドレスをポインタにセットする(ステップS392)。なお、この実施の形態では、ステップS392で送信テーブルのアドレスがセットされたことにもとづいて、タイマ割込処理における飾り図柄コマンド制御処理(ステップS29参照)が実行されることによって、演出制御コマンド(変動パターンコマンド)が演出制御基板80に送信される。
この実施の形態では、演出制御手段に送信されうる各演出制御コマンドはROM54のコマンド送信テーブルに格納されている。また、飾り図柄コマンド制御処理では、CPU56は、ポインタが示すROM54のアドレスに格納されている演出制御コマンドデータを、演出制御コマンドデータを出力するための出力ポートに設定するとともに、コマンドを送信することを示す演出制御INT信号を出力する。
次いで、CPU56は、特別図柄停止図柄設定処理においてランダム13−1〜13−3を用いて決定した飾り図柄の表示結果を示す表示結果指定のコマンド送信テーブルのアドレスをポインタにセットする(ステップS393)。なお、この実施の形態では、ステップS393で送信テーブルのアドレスがセットされたことにもとづいて、タイマ割込処理における飾り図柄コマンド制御処理(ステップS29参照)が実行されることによって、演出制御コマンド(表示結果指定コマンド)が演出制御基板80に送信される。この場合、左の飾り図柄の停止図柄を指定する表示結果指定コマンドとしてコマンド91XX(H)が送信され、中の飾り図柄の停止図柄を指定する表示結果指定コマンドとしてコマンド92XX(H)が送信され、右の飾り図柄の停止図柄を指定する表示結果指定コマンドとしてコマンド93XX(H)が送信される(図53参照)。
また、ステップS391にて特別図柄の変動時間を決定すると、CPU56は、決定した変動時間を示す変動時間データを特別図柄プロセスタイマに設定して変動時間の計測を開始するとともに(ステップS394)、計測実行フラグをセットし、特別図柄表示器8での特別図柄の変動表示を開始する(ステップS395)。そして、CPU56は、特別図柄プロセスフラグの値を特別図柄変動処理に対応した値に更新する(ステップS396)。
次に、特別図柄プロセス処理における特別図柄停止処理(ステップS304)について説明する。図64は、特別図柄停止処理を示すフローチャートである。特別図柄停止処理において、CPU56は、大当りであることを示す大当りフラグがセットされているか否か確認する(ステップS3402)。大当りフラグがセットされていれば、CPU56は、確変フラグおよび高ベースフラグをリセットする(ステップS3404,S3405)。また、高ベース回数カウンタをクリアし(ステップS3406)、ステップS3417に移行する。なお、高ベース回数カウンタは、あと何回の特別図柄の変動がなされたら高ベース状態が終了するのかを示す回数が設定されているカウンタである。
ステップS3402において大当りフラグがセットされていなければ、CPU56は、高ベース状態であることを示す高ベースフラグがセットされているか否か確認する(ステップS3411)。セットされていれば、CPU56は、高ベース回数カウンタの値を−1する(ステップS3412)。ただし、既に0になっている場合には減算しない。なお、ステップS3411で高ベースフラグがセットされていなかった場合には、そのままステップS3417に移行する。
高ベース回数カウンタの値を−1し高ベース回数カウンタの値が0になった場合には(ステップS3413)、CPU56は、高ベースフラグをリセットして高ベース状態を終了させる(ステップS3414)。また、CPU56は、演出制御基板80に対して、通常状態に戻ったことを通知するために、通常表示指定の演出制御コマンドを送信する処理を行う(ステップS3416)。なお、具体的には、ステップS3316において、CPU56は、通常表示指定コマンドに応じたコマンド送信テーブルのアドレスをポインタにセットする。そして、演出制御コマンド(通常表示指定コマンド)に応じたコマンド送信テーブルのアドレスをポインタにセットされたことにもとづいて、飾り図柄コマンド制御処理(ステップS29)において通常表示指定コマンドが送信される。なお、ステップS3415で確変フラグがセットされていなかった場合には、そのままステップS3417に移行する。
ステップS3417では、大当りとすることに決定された場合には、内部状態(特別図柄プロセスフラグ)をステップS305に移行するように更新する。そうでない場合には、内部状態をステップS300に移行するように更新する。
次に、特別図柄プロセス処理における大当り終了処理(ステップS308)について説明する。図65は、大当り遊技が終了したときに実行される大当り終了処理を示すフローチャートである。大当り終了処理において、CPU56は、高ベース決定フラグがセットされているか否かを確認する(ステップS3501)。高ベース決定フラグがセットされている場合には、CPU56は、さらに、確変決定フラグがセットされているか否かを確認する(ステップS3502)。確変決定フラグがセットされていた場合には、確変フラグと高ベースフラグとをセットする(ステップS3503)。
また、CPU56は、高ベース回数決定用乱数(ランダム10)にもとづいて高ベース継続回数を決定し(ステップS3504)、決定した高ベース継続回数を高ベース回数カウンタにセットする(ステップS3505)。この実施の形態では、CPU56は、高ベース継続回数を100回、200回、500回または1000回に決定し、決定した高ベース継続回数を高ベース回数カウンタにセットする。なお、高ベース回数決定用乱数を用いて高ベース継続回数を決定するのでなく、高ベース回数カウンタに所定値をセットようにしてもよい。例えば、時短回数カウンタに所定値として100が設定されるようにしてもよい。
ステップS3502で確変決定フラグがセットされていない場合には、CPU56は、高ベースフラグをセットし(ステップS3509)、ステップS3504に移行する。
また、CPU56は、演出制御手段に、大当り遊技状態の終了と、特定の遊技状態(確変状態や高ベース状態)への移行とを通知するために、特定大当り終了表示指定の演出制御コマンド(特定大当り終了表示コマンド)を送信する処理を行う(ステップS3506)。この場合、CPU56は、確変フラグおよび高ベースフラグの両方をセットした場合(すなわち、確変状態および高ベース状態に移行する場合)、図53に示す演出制御コマンドB500(H)を送信する処理を行う。また、CPU56は、高ベースフラグのみをセットした場合(すなわち、高ベース状態のみに移行する場合)、図53に示す演出制御コマンドB502(H)を送信する処理を行う。なお、具体的には、ステップS3506において、CPU56は、特定大当り終了表示コマンドに応じたコマンド送信テーブルのアドレスをポインタにセットする。そして、演出制御コマンド(特定大当り終了表示コマンド)に応じたコマンド送信テーブルのアドレスをポインタにセットされたことにもとづいて、飾り図柄コマンド制御処理(ステップS29)において特定大当り終了表示コマンドが送信される。演出制御用CPU101は、特定大当り終了表示コマンドを受信すると、音、表示、発光体などを用いた演出を行い、確変状態や高ベース状態である旨の報知を行う。
特定大当り終了表示コマンドを送信すると、CPU56は、高ベース決定フラグおよび確変決定フラグをリセットする(ステップS3507)。そして、CPU56は、特別図柄プロセスフラグの値を、特別図柄通常処理(ステップS300)に応じた値にする(ステップS3508)。
ステップS3501で高ベース決定フラグがセットされていない場合には、CPU56は、確変決定フラグがセットされているか否かを確認する(ステップS3510)。確変決定フラグがセットされていた場合には、CPU56は、確変フラグをセットし(ステップS3511)、ステップS3506に移行する。そして、CPU56は、ステップS3506において、演出制御手段に、大当り遊技状態の終了と、特定の遊技状態(確変状態)への移行とを通知するために、特定大当り終了表示指定の演出制御コマンド(特定大当り終了表示コマンド)を送信する処理を行う(ステップS3506)。この場合、CPU56は、図53に示す演出制御コマンドB501(H)を送信する処理を行う。なお、具体的には、ステップS3512において、CPU56は、特定大当り終了表示コマンドに応じたコマンド送信テーブルのアドレスをポインタにセットする。そして、演出制御コマンド(特定大当り終了表示コマンド)に応じたコマンド送信テーブルのアドレスをポインタにセットされたことにもとづいて、飾り図柄コマンド制御処理(ステップS29)において特定大当り終了表示コマンドが送信される。演出制御用CPU101は、特定大当り終了表示コマンドを受信すると、音、表示、発光体などを用いた演出を行い、確変状態である旨の報知を行う。
なお、この実施の形態では、演出制御用CPU101は、特定の遊技状態であることを報知する際に、高ベース状態で或る場合と低ベース状態である場合とで、異なる背景画像を可変表示装置9に表示させ、異なる演出態様で各電気部品の制御を行う。例えば、演出制御用CPU101は、特定大当り終了表示コマンドとして、図53に示すコマンドB500(H)を受信したことにもとづいて遊技状態が高ベース状態であると判断し、高ベース状態に応じた報知を行う。また、例えば、演出制御用CPU101は、特定大当り終了表示コマンドとして、図53に示すコマンドB501(H)を受信したことにもとづいて遊技状態が低ベース状態であると判断し、低ベース状態に応じた報知を行う。
ステップS3510において確変決定フラグがセットされていなかった場合(すなわち、確変状態および高ベース状態のいずれでもない場合)、CPU56は、大当り遊技状態の終了を通知するために、非特定大当り終了表示指定の演出制御コマンド(非特定大当り終了表示コマンド)を送信する処理を行い(ステップS3513)、ステップS3507に移行する。この場合、CPU56は、図53に示す演出制御コマンドB503(H)を送信する処理を行う。なお、具体的には、ステップS3513において、CPU56は、非特定大当り終了表示コマンドに応じたコマンド送信テーブルのアドレスをポインタにセットする。そして、演出制御コマンド(非特定大当り終了表示コマンド)に応じたコマンド送信テーブルのアドレスをポインタにセットされたことにもとづいて、飾り図柄コマンド制御処理(ステップS29)において非特定大当り終了表示コマンドが送信される。演出制御用CPU101は、非特定大当り終了表示コマンドを受信すると、音、表示、発光体などを用いた演出を行い、大当り遊技状態の終了を報知する。この場合、演出制御用CPU101は、ステップS3506およびステップS3512とは異なる演出態様で大当り遊技状態の終了を報知する。
図66は、遊技状態が変化する様子の一例を示す説明図である。図66には、確変状態への移行条件と高ベース状態への移行条件とが同時に成立し、大当たり遊技状態が終了したときに確変状態に制御されるとともに高ベース状態に制御された場合の例が示されている。また、図66に示す例では、高ベース継続回数(本例では、100回)の特別図柄の変動が終了する前に、ランダム9にもとづく確変パンクが発生し、確変/高ベース状態を終了し通常/高ベース状態に移行している。また、本例では、高ベース回数カウンタの初期値は100であるが、確変/高ベース状態に制御されたときから歩進されるので、通常/高ベース状態に移行した後、確変/高ベース状態継続中に変動した特別図柄の変動回数を高ベース回数カウンタの初期値100から減算した残り回数分の特別図柄の変動が終了すると、高ベース回数カウンタの値が0になって高ベースフラグはリセット(高ベース状態を終了)される。
また、図67は、遊技状態が変化する様子の他の例を示す説明図である。図67には、確変状態への移行条件と高ベース状態への移行条件とが同時に成立し、大当り遊技状態が終了したときに確変状態に制御されるとともに高ベース状態に制御され、高ベース継続回数(本例では、100回)の特別図柄の変動が終了しても確変状態が終了しない、すなわちランダム9にもとづく確変パンクが生じなかった例が示されている。本例では、高ベース回数カウンタの初期値は100であるが、確変/高ベース状態に制御されたときから歩進されるので、100回の変動が終了するとその値が0になり、高ベースフラグがリセットされる。そして、高ベースフラグがリセットされ高ベース状態が終了した後も確変状態が継続する。
次に、主基板31と払出制御基板37との間で送受信される払出制御信号および払出制御コマンドについて説明する。図68は、遊技制御手段から払出制御手段に対して出力される制御信号の内容の一例を示す説明図である。この実施の形態では、払出制御等に関する各種の制御を行うために、主基板31と払出制御基板37との間で制御信号として接続確認信号が送受信される。図68に示すように、接続確認信号は、主基板31の立ち上がり時(遊技制御手段が遊技制御処理を開始したとき)に出力され、払出制御基板37に対して主基板31が立ち上がったことを通知するための信号(主基板31の接続確認信号)である。また、接続確認信号は、賞球払出が可能な状態であることを示す。
払出制御用マイクロコンピュータ370は、遊技制御用マイクロコンピュータ560と同様に、シリアル通信回路375を内蔵する。また、遊技制御用マイクロコンピュータ560が内蔵するシリアル通信回路505と、払出制御用マイクロコンピュータ370が内蔵するシリアル通信回路375との間で、各種払出制御コマンドが送受信される。なお、払出制御用マイクロコンピュータ370が内蔵するシリアル通信回路375の構成及び機能は、遊技制御用マイクロコンピュータ560が内蔵するシリアル通信回路505の構成及び機能と同様である。
図69は、遊技制御手段と払出制御手段との間で送受信される制御コマンドの内容の一例を示す説明図である。この実施の形態では、払出制御等に関する各種の制御を行うために、主基板31と払出制御基板37とのマイクロコンピュータの間で各種制御コマンドが送受信される。
賞球個数コマンドは、払出要求を行う遊技球の個数(0〜15個)を指定するために出力されるコマンドである。この実施の形態では、始動口スイッチ14aで遊技球が検出されると4個の賞球払出を行い、入賞口スイッチ33a,39a,29a,30aのいずれかで遊技球が検出されると7個の賞球払出を行い、カウントスイッチ23で遊技球が検出されると15個の賞球払出を行う。よって、始動口スイッチ14aで遊技球が検出された場合、賞球数4個を通知するための賞球個数コマンド「04」が送信され、入賞口スイッチ33a,39a,29a,30aのいずれかで遊技球が検出された場合、賞球数7個を通知するための賞球個数コマンド「07」が送信され、カウントスイッチ23で遊技球が検出された場合、賞球数15個を通知するための賞球個数コマンド「0F」が送信される。なお、賞球個数コマンドを2バイトで構成してもよい。この場合、例えば、CPU56は、まず賞球個数コマンドの下位1バイトのデータを送信データレジスタ710に書き込む。そして、送信用シフトレジスタ712から賞球個数コマンドの下位1バイトのデータの送信が完了すると、シリアル通信回路505からの送信時割り込み要求に応じて、CPU56は、賞球個数コマンドの上位1バイトのデータを送信データレジスタ710に書き込み、送信用シフトレジスタ712から賞球個数コマンドの上位1バイトのデータが送信される。
賞球ACKコマンド「D2」は、払出制御手段が賞球個数コマンドを受信したことを遊技制御手段に通知するためのコマンドである。賞球ACKコマンドは、賞球個数コマンドを受信したことを示す受信確認信号に相当する。
図70は、図68に示す制御信号および図69に示す制御コマンドの送受信に用いられる信号線等を示すブロック図である。なお、図70には、電源断信号も示されている。図70に示すように、接続確認信号は、遊技制御用マイクロコンピュータ560によって出力回路67を介して出力され、入力回路373Aを介して払出制御用マイクロコンピュータ370に入力される。また、電源断信号は、出力回路373Bを介して出力され、入力回路68を介して遊技制御用マイクロコンピュータ560に入力される。また、賞球個数コマンドは、遊技制御用マイクロコンピュータ560が内蔵するシリアル回路505から出力され、払出制御用マイクロコンピュータ370が内蔵するシリアル回路375に入力される。また、賞球ACKコマンドは、払出制御用マイクロコンピュータ370が内蔵するシリアル回路375から出力され、遊技制御用マイクロコンピュータ560が内蔵するシリアル回路505に入力される。
接続確認信号および電源断信号は、それぞれ1ビットのデータであり、1本の信号線によって送信される。また、主基板31と払出制御基板37との間で、遊技制御用マイクロコンピュータ560への電源断信号の信号線と、払出制御に関わる制御信号(接続確認信号)の信号線とをまとめて配線することができる。よって、遊技機において、遊技制御用マイクロコンピュータ560への電源断信号に関する配線スペースを節減することができる。
なお、この実施の形態では、遊技制御用マイクロコンピュータ560が賞球個数コマンドを払出制御用マイクロコンピュータ370にシリアル送信し、払出制御用マイクロコンピュータ370が賞球ACKコマンドを遊技制御用マイクロコンピュータ560にシリアル送信する双方向通信を行う場合を説明するが、遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370とは一方向のシリアル通信を行ってもよい。例えば、遊技制御用マイクロコンピュータ560が賞球個数コマンドを払出制御用マイクロコンピュータ370に送信する一方向のシリアル通信を行い、払出制御用マイクロコンピュータ370は賞球ACKコマンドを送信しないようにしてもよい。
図71は、払出制御信号および払出制御コマンドの出力の仕方の一例を示すタイミング図である。図71に示すように、入賞検出スイッチが遊技球の入賞を検出すると、遊技制御手段(遊技制御用マイクロコンピュータ560)は、入賞に応じて払い出される賞球数に応じた賞球個数コマンドを払出制御手段(払出制御用マイクロコンピュータ370)に送信する。なお、具体的には、遊技制御用マイクロコンピュータ560は、遊技球が遊技機に設けられている入賞領域に入賞したことを入賞検出スイッチの検出信号によって検知すると、あらかじめ決められた賞球数をバックアップRAMに形成されている総賞球数格納バッファの内容に加算する。そして、総賞球数格納バッファの内容が0でない値になったら、入賞に応じて払い出される賞球数に応じた賞球個数コマンドを払出制御用マイクロコンピュータ370に送信する。
また、この実施の形態では、始動口スイッチ14aで遊技球が検出されると4個の賞球払出を行い、入賞口スイッチ33a,39a,29a,30aのいずれかで遊技球が検出されると7個の賞球払出を行い、カウントスイッチ23で遊技球が検出されると15個の賞球払出を行う。具体的には、遊技制御用マイクロコンピュータ560は、払い出される賞球数に応じて、賞球数が4個の場合には賞球数が4個であることを示す賞球個数コマンド「04」を送信し、賞球数が7個の場合には賞球数が7個であることを示す賞球個数コマンド「07」を送信し、賞球数が15個の場合には賞球数が15個であることを示す賞球個数コマンド「0F」を送信する。
賞球個数コマンドの送信を完了すると、遊技制御用マイクロコンピュータ560のシリアル通信回路505は、図71に示すように、遊技制御用マイクロコンピュータ560のCPU56に対して送信時割り込み要求を行う。送信時割込要求によって、CPU56は、賞球個数コマンドの送信を完了した状態となったことを認識し、払出制御用マイクロコンピュータからの受信確認信号の待ち状態となる。
払出制御用マイクロコンピュータ370は、賞球個数コマンドの受信を確認すると、受信した賞球個数コマンドに示される賞球数を、払出制御用マイクロコンピュータ370の受信バッファに格納する。また、払出制御用マイクロコンピュータ370は、RAMの所定領域に設けられた賞球未払出個数カウンタに賞球数を加算する。そして、払出制御用マイクロコンピュータ370は、賞球ACKコマンド「D2」を、遊技制御用マイクロコンピュータ560に送信する。なお、払出制御用マイクロコンピュータ370は、払出制御用マイクロコンピュータ370が内蔵するシリアル通信回路375からの受信時割り込み要求にもとづく割込処理において賞球数を受信カウンタに格納するようにしてもよい。この場合、払出制御用マイクロコンピュータ370が内蔵するシリアル通信回路375は、賞球個数コマンドを受信すると、払出制御用マイクロコンピュータ370のCPUに受信時割り込み要求を行う。そして、払出制御用マイクロコンピュータ370のCPUは、シリアル通信回路375からの割り込み要求に応じて割込処理を実行することによって、賞球数を受信バッファに格納する。
賞球ACKコマンドを受信し、受信データレジスタ711に賞球ACKコマンドが格納された状態となると、遊技制御用マイクロコンピュータ560のシリアル通信回路505は、図71に示すように、遊技制御用マイクロコンピュータ560のCPU56に対して受信時割り込み要求を行う。受信時割込要求による割込処理を実行することによって、CPU56は、シリアル通信回路505がデータを受信したことを認識し、後述する賞球ACK待ち処理において受信データレジスタ711から賞球ACKコマンドを読み込む。
図72は、ステップS31の賞球処理の一例を示すフローチャートである。賞球処理において、遊技制御用マイクロコンピュータ560は、賞球個数加算処理(ステップS1201)と賞球制御処理(ステップS1202)とを実行する。そして、RAM55に形成されるポート0バッファの内容をポート0に出力する(ステップS1203)。なお、ポート0バッファの内容は、賞球制御処理において更新される。
遊技制御用マイクロコンピュータ560のCPU56は、メイン処理におけるステップS17からステップS19までのループ処理において、割り込み許可状態である間にシリアル通信回路505からの割り込み要求があると、シリアル通信回路505が割り込み要求を行った割り込み原因に応じた割り込み処理を実行する。図73は、シリアル通信回路505が割り込み要求に対して行う割り込み処理の一例を示す流れ図である。図73(a)は、シリアル通信回路505が通信エラーを割り込み原因として割り込み要求を行った場合に、CPU56が実行する通信エラー割込処理である。図73(b)は、シリアル通信回路505が受信データを受信したことを割り込み原因として割り込み要求を行った場合に、CPU56が実行する受信時割込処理である。図73(c)は、シリアル通信回路505が送信データの送信を完了したことを割り込み原因として割り込み要求を行った場合に、CPU56が実行する送信完了割込処理である。
CPU56は、いずれの割込処理を優先して実行する旨が初期設定されているか否かを判断する。例えば、CPU56は、いずれの割込処理を優先して実行する旨のフラグがセットされているか否かを判断する。この実施の形態では、CPU56は、通信エラー時割込優先実行フラグがセットされていることにもとづいて、シリアル通信回路505で通信エラーが発生したことを割込原因とする割込処理を優先して実行する。
シリアル通信回路505から割り込み要求があると、CPU56は、シリアル通信回路505のステータスレジスタA705の各ビットを確認し、割り込み原因を特定する。この場合、CPU56は、いずれの割込処理を優先して実行する旨が初期設定されているか否かを判断する。例えば、CPU56は、いずれの割込処理を優先して実行する旨のフラグがセットされているか否かを判断する。この実施の形態では、CPU56は、通信エラー時割込優先実行フラグがセットされていることにもとづいて、シリアル通信回路505で通信エラーが発生したことを割込原因とする割込処理を優先して実行する。
CPU56は、通信エラー時割込優先実行フラグがセットされていることにもとづいて、ステータスレジスタA705のビット0〜ビット3を優先的に確認し、割り込み原因を特定する。すなわち、CPU56は、シリアル通信回路505で通信エラー(オーバーラン、ノイズエラー、フレーミングエラーまたはパリティエラー)が発生したことを割り込み原因として割り込み要求したか否かを、他の割り込み原因(受信データの受信または送信データの送信完了)に優先して判断する。ステータスレジスタA705のビット0〜ビット3のうちいずれか1つまたは複数のビットが「1」であると判断すると、CPU56は、割り込み原因がシリアル通信回路505で通信エラーが発生したことであると特定する。
割り込み原因がシリアル通信回路505で通信エラーが発生したことであると特定すると、CPU56は、図73(a)に示す通信エラー割込処理を他の割込処理(図73(b)および図73(c)に示す割込処理)に優先して実行する。この場合、CPU56は、シリアル通信回路505で通信エラーが発生していることを示す通信エラーフラグをセットする(ステップS41)。
なお、通信エラーを検出すると、CPU56は、演出制御手段に、シリアル通信回路505で通信エラーが発生したことを通知するために、通信エラー発生表示指定の演出制御コマンド(通信エラー表示コマンド)を送信する処理を行う。演出制御用CPUは、通信エラー表示コマンドを受信すると、音、表示、発光体などを用いた演出を行い、通信エラーが発生している旨の報知を行う。
割り込み原因がシリアル通信回路505で通信エラーが発生したことでなかった場合、CPU56は、ステータスレジスタAのビット5を確認する。すなわち、CPU56は、シリアル通信回路505が受信データを受信したことが割込原因であるか否かを判断する。ステータスレジスタAのビット5が「1」であると判断すると、CPU56は、割り込み原因がシリアル通信回路505が受信データを受信したことであると特定する。
割り込み原因がシリアル通信回路505が受信データを受信したことであると特定すると、CPU56は、図73(b)に示す受信時割込処理を実行する。この場合、CPU56は、シリアル通信回路505が受信データを受信していることを示す受信時割込フラグをセットする(ステップS42)。
なお、ステップS42において、CPU56は、受信時割込フラグをセットするとともに、シリアル通信回路505の受信データレジスタ711からデータを読み込んでもよい。この場合、例えば、CPU56は、読み込んだ受信データが賞球ACKコマンドであるか否かを判断する。また、賞球ACKコマンドであると判断すると、CPU56は、賞球ACKコマンドを受信したことを示す賞球ACK受信フラグをセットする。
また、割り込み原因がシリアル通信回路505で通信エラーが発生したことでなかった場合、CPU56は、ステータスレジスタAのビット6を確認する。すなわち、CPU56は、シリアル通信回路505が送信データの送信を完了したことが割込原因であるか否かを判断する。ステータスレジスタAのビット6が「1」であると判断すると、CPU56は、割り込み原因がシリアル通信回路505が送信データの送信を完了したことであると特定する。
割り込み原因がシリアル通信回路505が送信データの送信を完了したことであると特定すると、CPU56は、図73(c)に示す送信完了割込処理を実行する。この場合、CPU56は、シリアル通信回路505が送信データの送信を完了していることを示す送信時割込フラグをセットする(ステップS43)。
上記に示す処理を実行することによって、遊技制御用マイクロコンピュータ560のCPU56は、シリアル通信回路505からの割り込み要求があった場合に、割込原因を特定し、特定した割込原因に応じたフラグ(通信エラーフラグ、受信時割込フラグ又は送信時割込フラグ)をセットする。特定した割込原因に応じてフラグがセットされることによって、CPU56によって、シリアル通信回路505で通信エラーが発生した旨や、データを受信した旨、又はデータ送信を完了した旨が認識される。
なお、払出制御用マイクロコンピュータ370が搭載するCPUも、シリアル通信回路375からの割り込み要求があった場合に、図73に示す処理と同様の処理に従って、割り込み原因を特定し、特定した割込原因に応じたフラグをセットする。
例えば、遊技制御用マイクロコンピュータ560から払出制御用マイクロコンピュータ370に、一方向通信で賞球個数コマンドを送信する場合を考える。この場合、遊技制御用マイクロコンピュータ560が払出制御用マイクロコンピュータ370に、例えば2ms毎にタイマ割込が発生する構成となっていて、賞球個数コマンドを送信した後、次の割込処理を行って2ms後に再び賞球個数コマンドを送信したとする。また、払出制御用マイクロコンピュータ370は、例えば4ms毎にタイマ割込が発生する構成となっていて、4ms毎に賞球個数コマンドを受信できるものであるとする。すると、遊技制御用マイクロコンピュータ560が最初に送信した賞球個数コマンドを読み込んでいないのに、払出制御用マイクロコンピュータ370が次の賞球個数コマンドを受信してしまう事態が発生してしまうが、払出制御用マイクロコンピュータ370のCPUがシリアル通信回路375からの受信時割り込み要求に応じて賞球個数コマンドを受信するように設定すれば、遊技制御用マイクロコンピュータ560からの賞球個数コマンドを確実に受信することができる。
賞球個数加算処理では、図74に示す賞球個数テーブルが使用される。賞球個数テーブルは、ROM54に設定されている。賞球個数テーブルの先頭アドレスには処理数(この例では「6」)が設定され、その後に、スイッチオンバッファ(2バイトのスイッチオンバッファのうちの入力ポート0に対応する方)の下位アドレス、入賞により賞球を払い出すことになる入賞口の各スイッチについてのスイッチ入力ビット判定値、賞球数が、入賞口の各スイッチのそれぞれに対応して順次設定されている。なお、スイッチ入力ビット判定値は、入力ポート0における各スイッチの検出信号が入力されるビットに対応した値である。また、スイッチオンバッファの上位アドレスは固定的な値(例えば7F(H))である。また、賞球個数テーブルにおいて、6つのスイッチオンバッファの下位アドレスのそれぞれには、同じデータが設定されている。なお、この実施の形態では、ROM54およびRAM55のアドレスは16ビットで指定される。
図75は、賞球個数加算処理を示すフローチャートである。賞球個数加算処理において、CPU56は、賞球個数テーブルの先頭アドレスをポインタにセットする(ステップS1211)。そして、ポインタが指すアドレスのデータ(この場合には処理数)をロードする(ステップS1212)。次に、スイッチオンバッファの上位アドレス(8ビット)を2バイトのチェックポインタの上位1バイトにセットする(ステップS1213)。
そして、ポインタの値を1増やし(ステップS1214)、ポインタが指す賞球個数テーブルのデータ(この場合にはスイッチオンバッファの下位アドレス)をチェックポインタの下位1バイトにセットした後(ステップS1215)、ポインタの値を1増やす(ステップS1216)。次いで、チェックポインタが指すアドレスのデータ、すなわちスイッチオンバッファの内容をレジスタにロードし(ステップS1217)、ロードした内容と、ポインタが指す賞球個数テーブルのデータ(この場合にはスイッチ入力ビット判定値)との論理積をとる(ステップS1218)。この結果、スイッチオンバッファの内容がロードされたレジスタには、検査対象としているスイッチの検出信号に対応したビット以外の7ビットが0になる。そして、ポインタの値を1増やす(ステップS1219)。
ステップS1218における演算結果が0でなれば、すなわち、検査対象のスイッチの検出信号がオン状態であれば、ポインタが指す賞球個数テーブルのデータ(この場合には賞球個数)を賞球加算値に設定し(ステップS1220,S1221)、賞球加算値を、RAM55に形成されている16ビットの総賞球数格納バッファの内容に加算する(ステップS1222)。加算の結果、桁上げが発生した場合には、総賞球数格納バッファの内容を65535(=FFFF(H))に設定する(ステップS1223,1224)。
ステップS1225では処理数を1減らし、処理数が0であれば処理を終了し、処理数が0でなければステップS1214に戻る(ステップS1226)。また、ステップS1220において、ステップS1218における演算結果が0であること、すなわち、検査対象のスイッチの検出信号がオフ状態であることを確認したら、ステップS1225に移行する。
図76は、ステップS1202の賞球制御処理を示すフローチャートである。賞球制御処理では、CPU56は、ステップS1230の賞球異常検出処理を実行した後、賞球プロセスコードの値に応じて、ステップS1231〜S1235のいずれかの処理を実行する。
図77は、賞球プロセスコードの値が0の場合に実行される賞球送信待ち処理(ステップS1231)を示すフローチャートである。CPU56は、賞球送信待ち処理において、通信エラーフラグがセットされているか否か確認する(ステップS1241)。すなわち、CPU56は、まず、シリアル通信回路505で通信エラーが発生しているか否かを確認する。通信エラーフラグがセットされている場合、CPU56は、そのまま処理を終了する。すなわち、シリアル通信回路505で通信エラーが発生している状態であるので、CPU56は、払出制御基板37が搭載する払出制御用マイクロコンピュータ370との通信を禁止するように制御する。
通信エラーフラグがセットされていなければ、CPU56は、総賞球数格納バッファの内容を確認する(ステップS1242)。その値が0であれば処理を終了し、0でなければ、賞球プロセスコードの値を1にした後(ステップS1243)、処理を終了する。
図78は、賞球プロセスコードの値が1の場合に実行される賞球個数コマンド送信処理(ステップS1232)を示すフローチャートである。CPU56は、賞球送信処理において、通信エラーフラグがセットされているか否か確認する(ステップS1251)。すなわち、CPU56は、まず、シリアル通信回路505で通信エラーが発生しているか否かを確認する。通信エラーフラグがセットされている場合、CPU56は、払出制御基板37が搭載する払出制御用マイクロコンピュータ370との通信を禁止し、そのまま処理を終了する。すなわち、シリアル通信回路505で通信エラーが発生している状態であるので、CPU56は、払出制御用マイクロコンピュータ370との通信を禁止するように制御する。この場合、CPU56は、例えば、シリアル通信回路505の送信部の機能を停止させることによって、払出制御基板37が搭載する払出制御用マイクロコンピュータ370へのデータ送信を禁止するように制御する。例えば、CPU56は、シリアル通信回路505の制御レジスタB708のビット3を「0」に設定し、送信回路を使用しないように設定することによって、払出制御用マイクロコンピュータ370へのデータ送信を禁止する。なお、例えば、CPU56は、図73(a)に示す通信エラー割込処理において、制御レジスタB708のビット3を「0」に設定し、払出制御用マイクロコンピュータ370へのデータ送信を禁止してもよい。
通信エラーフラグがセットされていなければ、CPU56は、総賞球数格納バッファの内容が賞球コマンド最大値(この例では「15」)よりも小さいか否か確認する(ステップS1252)。総賞球数格納バッファの内容が賞球コマンド最大値以上であれば、賞球コマンド最大値を賞球個数バッファに設定する(ステップS1253)。また、総賞球数格納バッファの内容が賞球コマンド最大値よりも小さい場合には、総賞球数格納バッファの内容を賞球個数バッファに設定する(ステップS1254)。
その後、CPU56は、賞球個数バッファの内容を賞球個数コマンドとしてシリアル通信回路505の送信データレジスタ710に書き込み(ステップS1255)、賞球プロセスコードの値を2にした後(ステップS1256)、処理を終了する。この実施の形態では、賞球コマンド最大値は「15」である。従って、最大で「15」の払出数を指定する賞球個数コマンドが送信データレジスタ710に書き込まれる。その後、送信データレジスタ710に書き込まれた賞球個数コマンドは、送信用シフトレジスタ712に転送され、送信用シフトレジスタ712から払出制御用マイクロコンピュータに送信される。
図79は、賞球プロセスコードの値が2の場合に実行される賞球送信完了待ち処理(ステップS1233)を示すフローチャートである。CPU56は、賞球送信完了待ち処理において、通信エラーフラグがセットされているか否か確認する(ステップS1261)。すなわち、CPU56は、まず、シリアル通信回路505で通信エラーが発生しているか否かを確認する。通信エラーフラグがセットされている場合、CPU56は、そのまま処理を終了する。すなわち、シリアル通信回路505で通信エラーが発生している状態であるので、CPU56は、払出制御基板37が搭載する払出制御用マイクロコンピュータ370との通信を禁止するように制御する。
通信エラーフラグがセットされていなければ、CPU56は、送信時割込フラグがセットされているか否かを確認する(ステップS1262)。送信時割込フラグがセットされていれば、CPU56は、ステップS1263の処理に移行する。また、送信時割込フラグがセットされていなければ、CPU56は、そのまま処理を終了する。すなわち、CPU56は、賞球個数コマンド送信処理において送信データレジスタ710に書き込んだ賞球個数コマンドの送信をシリアル通信回路505が既に完了したか否かを判断し、賞球個数コマンドの送信を完了したことを確認すると、ステップS1263以降の処理を実行する。
送信時割込フラグがセットされていれば、CPU56は、送信時割込フラグをリセットする(ステップS1263)。そして、CPU56は、総賞球数格納バッファの内容から、賞球個数バッファの内容(払出制御手段に指令した賞球払出個数)を減算する(ステップS1264)。なお、遊技制御用マイクロコンピュータ560は、ステップS1255において賞球個数コマンドを送信データレジスタ710に書き込む前に、総賞球数格納バッファの内容から賞球払出個数を減算してもよい。
また、CPU56は、賞球タイマにACK受信完了判定時間値をセットする(ステップS1266)。そして、賞球プロセスコードの値を3にして(ステップS1267)、処理を終了する。なお、ACK受信完了判定時間値は、払出制御手段から賞球ACKコマンドを受信したか否かを監視するための時間値である。
図80は、賞球プロセスコードの値が3の場合に実行される賞球ACK待ち処理(ステップS1234)を示すフローチャートである。CPU56は、賞球ACK待ち処理において、通信エラーフラグがセットされているか否か確認する(ステップS1271)。すなわち、CPU56は、まず、シリアル通信回路505で通信エラーが発生しているか否かを確認する。通信エラーフラグがセットされている場合、CPU56は、払出制御基板37が搭載する払出制御用マイクロコンピュータ370との通信を禁止し、そのまま処理を終了する。すなわち、シリアル通信回路505で通信エラーが発生している状態であるので、CPU56は、払出制御用マイクロコンピュータ370との通信を禁止するように制御する。この場合、CPU56は、例えば、シリアル通信回路505の受信部の機能を停止させることによって、払出制御基板37からのデータ受信を禁止するように制御する。例えば、CPU56は、シリアル通信回路505の制御レジスタB708のビット2を「0」に設定し、受信回路を使用しないように設定することによって、払出制御基板37が搭載する払出制御用マイクロコンピュータ370からのデータ受信を禁止する。なお、例えば、CPU56は、図73(a)に示す通信エラー割込処理において、制御レジスタB708のビット2を「0」に設定し、払出制御用マイクロコンピュータ370からのデータ受信を禁止してもよい。
通信エラーフラグがセットされていなければ、CPU56は、受信時割込フラグがセットされているか否かを確認する(ステップS1272)。すなわち、CPU56は、シリアル通信回路505が受信データを受信し、受信データレジスタ711にデータが格納されている状態になっているか否かを確認する。受信時割込フラグがセットされていれば、CPU56は、ステップS1273の処理に移行する。また、受信時割込フラグがセットされていなければ、CPU56は、ステップS1275の処理に移行する。
受信時割込フラグがセットされていれば、CPU56は、シリアル通信回路505の受信データレジスタ711からデータを読み込む(ステップS1273)。また、CPU56は、読み込んだデータが賞球ACKコマンドであるか否か(コマンド「D2」であるか否か)を判断する(ステップS1274)。
なお、図73(b)に示す受信時割込処理において、受信時割込フラグをセットするとともに既に受信データを受信データレジスタ711から読み込んでいる場合、ステップS1273,S1274において、CPU56は、賞球ACK受信フラグがセットされているか否かを判断してもよい。そして、賞球ACK受信フラグがセットされている場合、CPU56は、賞球ACKコマンドを受信したと判断するようにしてもよい。
ステップS1272で受信時割込フラグがセットされていなかった場合、またはステップS1274で読み込んだデータが賞球ACKコマンドでなかった場合、CPU56は、まだ払出制御用マイクロコンピュータ370から賞球ACKコマンドを受信していない状態であると判断する。この場合、CPU56は、賞球タイマの値を1減らし(ステップS1275)、その値が0でなければ処理を終了する(ステップS1276)。賞球タイマの値が0になったら、払出制御用マイクロコンピュータ370が賞球ACKコマンドを送信しなかったと判断して、再送信フラグをセットし(ステップS1277)、賞球プロセスコードの値を4にして(ステップS1278)、処理を終了する。なお、賞球プロセスコードの値が4になると、賞球再送信処理(ステップS1235)が実行される状態になる。また、再送信フラグがセットされると、賞球異常検出処理(ステップS1230)において、払出異常報知開始コマンドが演出制御基板80に対して送信される。
ステップS1274において、受信データレジスタ711から読み込んだデータが賞球ACKコマンドであることを確認すると、CPU56は、受信時割込フラグをリセットして(ステップS1279)、賞球プロセスコードの値を0にする(ステップS1280)。また、通信が正常に完了したので、再送信フラグがセットされている場合には、再送信フラグをリセットする(ステップS1281,S1282)。
以上の処理によって、遊技制御手段は、払出条件の成立にもとづいて払い出される賞球としての遊技球の総数を特定可能に総賞球数格納バッファに記憶する。また、遊技制御手段は、総賞球数格納バッファに記憶されている賞球数にもとづいて払出制御手段に対して所定数の賞球の払出数を指定する払出指令コマンド(賞球個数コマンド)を送信する。ここで、所定数は、総賞球数格納バッファに記憶されている賞球数が15個以上であれば15であり、15個未満であれば、総賞球数格納バッファに記憶されている賞球数である。そして、賞球払出を指定する賞球個数コマンドを送信したときに、総賞球数格納バッファに記憶されている賞球数から賞球個数コマンドで指定した払出数を減算する減算処理を行う。なお、払出制御用マイクロコンピュータ370は、賞球個数コマンドを受信すると直ちに賞球ACKコマンドを送信するので、球払出装置97からの賞球払出に関わりなく賞球個数コマンドに関する通信を完了でき、遊技制御用マイクロコンピュータ560は、賞球個数コマンドで指定した払出数の賞球払出が完了する前に、連続的に次の賞球個数コマンドを送信することができる。
なお、この実施の形態では、払出条件の成立にもとづいて払い出される景品遊技媒体の総数を特定可能に記憶するために、総数そのものを記憶する総賞球数格納バッファを用いる場合を例示したが、各入賞領域への入賞数を記憶したり、賞球数が同じである入賞領域毎の入賞数(例えば4個の賞球数に対応した入賞口14、7個の賞球数に対応した入賞口33,39,29,30、15個の賞球数に対応した大入賞口への入賞数であって、未だ賞球払出が終了していない入賞数)を記憶するバッファなどを用いてもよい。その場合には、入賞領域毎の賞球数に応じた数が設定された賞球個数コマンドが遊技制御用マイクロコンピュータ560から払出制御用マイクロコンピュータ370に送信される。さらには、賞球個数を示す賞球個数コマンドを送信するのではなく、入賞があったことまたは入賞数を示す払出指令コマンドを遊技制御用マイクロコンピュータ560から払出制御用マイクロコンピュータ370に送信するようにしてもよい。
図81は、賞球プロセスコードの値が4の場合に実行される賞球再送信処理(ステップS1235)を示すフローチャートである。CPU56は、賞球再送信処理において、通信エラーフラグがセットされているか否か確認する(ステップS1291)。すなわち、CPU56は、まず、シリアル通信回路505で通信エラーが発生しているか否かを確認する。通信エラーフラグがセットされている場合、CPU56は、払出制御基板37が搭載する払出制御用マイクロコンピュータ370との通信を禁止し、そのまま処理を終了する。すなわち、シリアル通信回路505で通信エラーが発生している状態であるので、CPU56は、払出制御用マイクロコンピュータ370との通信を禁止するように制御する。この場合、CPU56は、例えば、シリアル通信回路505の送信部の機能を停止させることによって、払出制御用マイクロコンピュータ370へのデータ送信を禁止するように制御する。例えば、CPU56は、シリアル通信回路505の制御レジスタB708のビット3を「0」に設定し、送信回路を使用しないように設定することによって、払出制御用マイクロコンピュータ370へのデータ送信を禁止する。
通信エラーフラグがセットされていなければ、CPU56は、賞球個数バッファの内容を賞球個数コマンドとしてシリアル通信回路505の送信データレジスタ710に再度書き込む(ステップS1292)。また、CPU56は、賞球タイマにACK受信完了判定時間値を再びセットする(ステップS1293)。そして、賞球プロセスコードの値を3にして(ステップS1294)、処理を終了する。
賞球プロセスコードの値が3に設定されることから、再度、賞球ACK待ち処理が実行される。再度実行される賞球ACK待ち処理において、再び賞球ACKコマンドを受信したことを検出できなかった場合には、具体的には、ステップS1276において賞球タイマがタイムアウトした場合には、再び賞球再送処理が実行されることになる。このように、遊技制御用マイクロコンピュータ560は、払出数データを受信したことを示す受信確認信号としての賞球ACKコマンドが受信できない場合には、賞球ACKコマンドが受信できるまで、賞球個数コマンドの再送を繰り返す。
図82は、ステップS230の賞球異常検出処理を示すフローチャートである。賞球異常検出処理において、CPU56は、再送信フラグがリセット状態からセット状態になったことを検出すると、払出異常報知開始コマンドを演出制御コマンドとして演出制御基板80に対して(具体的には演出制御用マイクロコンピュータ100に対して)送信する制御を行う(ステップS1301,S1302)。なお、CPU56は、賞球再送信処理を実行してから払出異常報知開始コマンドを送信するのでなく、払出異常報知開始コマンドを演出制御基板80に送信してから賞球再送信処理を実行するようにしてもよい。
なお、演出制御用マイクロコンピュータ100に演出制御コマンドを送信する際に、CPU56は、演出制御コマンドの種類に応じたコマンド送信テーブル(あらかじめROM54にコマンド毎に設定されている)のアドレスをポインタにセットする。そして、演出制御コマンドに応じたコマンド送信テーブルのアドレスをポインタにセットして、飾り図柄コマンド制御処理(ステップS29)において演出制御コマンドを送信する。
また、CPU56は、再送信フラグがセット状態からリセット状態になったことを検出する(従って、セット状態が継続している場合には最初にリセット状態になったときにのみ検出される。)と、払出異常報知終了コマンドを演出制御基板80に対して(具体的には演出制御用マイクロコンピュータ100に対して)送信する制御を行う(ステップS1303,S1304)。
なお、この実施の形態では、CPU56は、再送信フラグがリセットされると、ステップS1304で払出異常報知終了コマンドを送信するが、送信しないように構成してもよい。その場合には、遊技制御用マイクロコンピュータ560の負担が軽減される。また、その場合には、演出制御用マイクロコンピュータ100が、例えば所定時間後に、独自に払出異常報知を終了するように構成される。
次に、払出制御用マイクロコンピュータ370が各種コマンドを送受信する動作を説明する。図70に示すように、払出制御用マイクロコンピュータ370は、遊技制御用マイクロコンピュータ560と各種コマンドをシリアル通信するシリアル通信回路375を内蔵している。払出制御用マイクロコンピュータ370は、シリアル通信回路375を用いて、遊技制御用マイクロコンピュータ560から図69に示す賞球個数コマンドを受信する。また、賞球個数コマンドを受信すると、払出制御用マイクロコンピュータ370は、シリアル通信回路375を用いて、図69に示す賞球ACKコマンド「D2」を受信確認信号として送信する。
また、払出制御用マイクロコンピュータ370のCPUは、遊技制御用マイクロコンピュータ560のCPU56と同様に、割り込み許可状態である間にシリアル通信回路375からの割り込み要求があると、シリアル通信回路375が割り込み要求を行った割り込み原因に応じた割り込み処理を実行する。この実施の形態では、払出制御用マイクロコンピュータ370のCPUは、割り込み原因がシリアル通信回路375が受信データを受信したことであると特定すると、図73(b)と同様の処理に従って受信時割込処理を実行する。この場合、払出制御用マイクロコンピュータ370のCPUは、シリアル通信回路375が受信データを受信していることを示す受信時割込フラグをセットする。
図83は、払出制御用マイクロコンピュータ370のCPUが、主基板31の遊技制御手段(遊技制御用マイクロコンピュータ560)と通信を行う主制御通信処理を示すフローチャートである。主制御通信処理において、払出制御用マイクロコンピュータ370のCPUは、接続確認信号がオン状態であるか否かを確認する(ステップS541)。なお、接続確認信号がオン状態であるということは、電力供給がなされ遊技制御手段において遊技の進行を制御可能な状態であることを意味し、接続確認信号がオフ状態であるということは、電力供給停止時処理が開始され遊技制御手段において遊技の進行が不能な状態であることを意味する(接続確認信号は、電力供給停止時処理における出力ポートクリア処理でオフ状態にされる。)。
払出制御用マイクロコンピュータ370のCPUは、受信時割込フラグがセットされているか否かを確認する(ステップS542)。すなわち、払出制御用マイクロコンピュータ370のCPUは、シリアル通信回路375が受信データを受信し、シリアル通信回路375の受信データレジスタにデータが格納されている状態になっているか否かを確認する。
受信時割込フラグがセットされていれば、払出制御用マイクロコンピュータ370のCPUは、シリアル通信回路375の受信データレジスタからデータを読み込む(ステップS543)。また、払出制御用マイクロコンピュータ370のCPUは、読み込んだデータが賞球個数コマンドであるか否か(コマンド「04」、「07」または「0F」のいずれかであるか否か)を判断する(ステップS544)。
シリアル通信回路375の受信データレジスタから読み込んだデータが賞球個数コマンドであることを確認すると、払出制御用マイクロコンピュータ370のCPUは、受信時割込フラグをリセットして(ステップS545)、賞球個数コマンドが示す賞球数を賞球未払出個数カウンタに加算する(ステップS546)。そして、払出制御用マイクロコンピュータ370のCPUは、賞球ACKコマンドをシリアル通信回路505の送信データレジスタ710に書き込み(ステップS547)、処理を終了する。その後、送信データレジスタに書き込まれた賞球ACKコマンドは、シリアル通信回路375の送信用シフトレジスタに転送され、シリアル通信回路375の送信用シフトレジスタから遊技制御用マイクロコンピュータ560に送信される。
次に、主基板31から演出制御基板80に対する制御コマンドの送出方式について説明する。図84に示すように、この実施の形態では、演出制御コマンド(具体的には、演出制御コマンドを構成する演出制御信号)は2バイト構成であり、1バイト目はMODE(コマンドの分類)を表し、2バイト目はEXT(コマンドの種類)を表す。MODEデータの先頭ビット(ビット7)は必ず「1」に設定され、EXTデータの先頭ビット(ビット7)は必ず「0」に設定される。なお、そのようなコマンド形態は一例であって他のコマンド形態を用いてもよい。例えば、1バイトや3バイト以上で構成される制御コマンドを用いてもよい。なお、この実施の形態では、図84に示す送出方式に従って、図53に示す各演出制御コマンドが送信される。
図85に示すように、演出制御コマンドの8ビットの演出制御信号は、演出制御INT信号に同期して出力される。演出制御基板80に搭載されている演出制御用マイクロコンピュータ100は、演出制御INT信号が立ち上がったことを検知して、割込処理によって1バイトのデータの取り込み処理を開始する。従って、演出制御手段から見ると、演出制御INT信号は、演出制御信号の取り込みの契機となる取込信号に相当する。
演出制御コマンドは、演出制御用マイクロコンピュータ100が認識可能に1回だけ送出される。認識可能とは、この例では、演出制御INT信号のレベルが変化することであり、認識可能に1回だけ送出されるとは、例えば演出制御信号の1バイト目および2バイト目のそれぞれに応じて演出制御INT信号が1回だけパルス状(矩形波状)に出力されることである。なお、演出制御INT信号は図85に示された極性と逆極性であってもよい。
次に、演出制御用マイクロコンピュータ100の動作を説明する。図86は、演出制御用マイクロコンピュータ100が実行するメイン処理を示すフローチャートである。遊技機に対する電力供給が開始され、リセット信号がハイレベルになると、演出制御用マイクロコンピュータ100は、メイン処理を開始する。メイン処理では、演出制御用マイクロコンピュータ100は、まず、RAM領域のクリアや各種初期値の設定、また演出制御の起動間隔を決めるためのタイマの初期設定等を行うための初期化処理を行う(ステップS771)。その後、演出制御用マイクロコンピュータ100は、タイマ割込フラグの監視(ステップS772)の確認を行うループ処理に移行する。タイマ割込が発生すると、演出制御用マイクロコンピュータ100は、タイマ割込処理においてタイマ割込フラグをセットする。メイン処理において、タイマ割込フラグがセットされていたら、演出制御用マイクロコンピュータ100は、そのフラグをクリアし(ステップS773)、以下の演出制御処理を実行する。
タイマ割込は例えば2ms毎にかかる。すなわち、演出制御処理は、例えば2ms毎に起動される。また、この実施の形態では、タイマ割込処理ではフラグセットのみがなされ、具体的な演出制御処理はメイン処理において実行されるが、タイマ割込処理で演出制御処理を実行してもよい。
演出制御処理において、演出制御用マイクロコンピュータ100は、まず、受信した演出制御コマンドを解析する(コマンド解析処理:ステップS774)。次いで、演出制御用マイクロコンピュータ100は、演出制御プロセス処理を行う(ステップS775)。演出制御プロセス処理では、制御状態に応じた各プロセスのうち、現在の制御状態(演出制御プロセスフラグ)に対応したプロセスを選択して可変表示装置9の表示制御を実行する。また、操作スイッチ81からの操作信号やセンサ154,155からの検出信号を入力ポート106を介して入力するデータ入力処理を実行する(ステップS777)。そして、乱数カウンタを更新する処理を実行する(ステップS778)。また、遊技制御用マイクロコンピュータ560からのエラー報知等に関わる演出制御コマンドにもとづく報知処理を行う(ステップS779)。その後、ステップS772のタイマ割込フラグの確認を行う処理に戻る。
主基板31からの演出制御用のINT信号は演出制御用マイクロコンピュータ100の割込端子に入力されている。例えば、主基板31からのINT信号がオン状態になると、演出制御用マイクロコンピュータ100において割込がかかる。そして、演出制御用マイクロコンピュータ100は、割込処理において演出制御コマンドの受信処理を実行する。演出制御コマンドの受信処理において、演出制御用マイクロコンピュータ100は、受信した演出制御コマンドデータをコマンド受信バッファに格納する。
ここで、変動パターン毎に設定されているプロセスデータについて説明する。プロセスデータは、プロセスタイマ設定値と演出制御実行データの組み合わせが複数集まったデータで構成されている。演出制御実行データは、表示制御実行データとランプ制御実行データとを含む。表示制御実行データは、図柄の変動期間中における可変表示装置9の表示状態を示すデータが設定されている。また、ランプ制御実行データは、図柄の変動期間中におけるランプの表示状態を示すデータが設定されている。そして、図柄の変動期間中において、表示状態を切り替えるタイミング(例えば可変表示装置9において新たなキャラクタが登場するタイミング、ランプを点灯状態から消灯状態に切り替えるタイミング)が到来すると、演出制御手段は、プロセスデータにおける次の演出制御実行データに従って、可変表示装置9およびランプの表示状態を制御する。プロセスタイマ設定値には、切替のタイミングに応じた時間が設定されている。
プロセスデータは、演出制御基板80におけるROMに格納されている。また、プロセスデータは、図柄の変動パターンのそれぞれに応じて用意されている。なお、このように、演出制御手段が、ROMに記憶されているプログラムおよびプロセスデータにもとづいて演出手段を制御し、複数の演出手段(この実施の形態では可変表示装置9およびランプ)の制御に関わるプログラムが、演出制御基板80に搭載されているROMに格納されている。そして、それらのプログラムを格納するROMを1つのROMとして構成することができる。
図87は、演出制御処理で用いる各乱数を示す説明図である。各乱数は、以下のように使用される。
(1)ランダム1:演出モードを変更するか否かを決定する(演出変更決定用)。この実施の形態では、後述するように、現在の遊技状態の種類に応じて、異なる演出モードで遊技演出を行う。具体的には、遊技状態が高ベース状態か否かに従って、異なる演出モードで遊技演出を行う。また、大当りの際に遊技状態が変化すると、例えば、主基板31から受信した特定大当り終了表示コマンドにもとづいて、遊技演出を行う際の演出モードを変更する。この場合に、ランダム1を用いた判定により演出モードを変更すると決定されると、現在の遊技状態に関わらず、演出モードが変更され、変更後の演出モードで遊技演出が行われる。なお、演出制御手段は、例えば、ランダム1があらかじめ決められている1つの値と一致した場合には、演出モードを変更すると決定する。
(2)ランダム2:演出モードを変更する場合に、いずれの演出モードに変更するかを決定する(変更後演出決定用)
図88は、コマンド解析処理(ステップS774)の具体例を示すフローチャートである。主基板31から受信された演出制御コマンドは受信コマンドバッファに格納されるが、コマンド解析処理では、演出制御用マイクロコンピュータ100は、コマンド受信バッファに格納されているコマンドの内容を確認する。
コマンド解析処理において、演出制御用マイクロコンピュータ100は、まず、コマンド受信バッファに受信コマンドが格納されているか否か確認する(ステップS7611)。格納されているか否かは、コマンド受信個数カウンタの値と読出ポインタとを比較することによって判定される。両者が一致している場合が、受信コマンドが格納されていない場合である。コマンド受信バッファに受信コマンドが格納されている場合には、演出制御用マイクロコンピュータ100は、コマンド受信バッファから受信コマンドを読み出す(ステップS7612)。なお、読み出したら読出ポインタの値を+1しておく(ステップS7613)。
受信した演出制御コマンドが変動パターン指定の演出制御コマンドであれば(ステップS7614)、演出制御用マイクロコンピュータ100は、そのコマンドのEXTデータを変動パターンデータ格納領域に格納する(ステップS7615)。この場合、演出制御用マイクロコンピュータ100は、変動パターンコマンドを受信したことを示す変動パターンコマンド受信フラグをセットする。
ステップS7611にて受信していることが確認された演出制御コマンドが表示結果指定の演出制御コマンドであれば(ステップS7616)、演出制御用マイクロコンピュータ100は、そのコマンドのEXTデータを表示結果(特別図柄の表示結果)として表示結果格納領域に格納する(ステップS7617)。この実施の形態では、演出制御用マイクロコンピュータ100は、左中右の3つの飾り図柄を指定する表示結果指定コマンドをそれぞれ受信する。ステップS7616において、演出制御用マイクロコンピュータ100は、左中右の全ての飾り図柄を指定する表示結果指定コマンドを受信すると、表示結果指定コマンドを受信したことを示す表示結果指定コマンド受信フラグをセットする。
ステップS7611にて受信していることが確認された演出制御コマンドが特定大当り終了表示コマンドであれば(ステップS7616a)、演出制御用マイクロコンピュータ100は、受信した特定大当り終了表示コマンドにもとづいて、現在の遊技状態を判定する(ステップS7616b)。この場合、演出制御用マイクロコンピュータ100は、受信したコマンドがB500(H)である場合、遊技状態が確変状態および高ベース状態であると判定する。また、受信したコマンドがB501(H)である場合、遊技状態が確変状態であると判定する。また、受信したコマンドがB502(H)である場合、遊技状態が高ベース状態であると判定する。
また、演出制御用マイクロコンピュータ100は、判定した遊技状態に応じて演出を変更する(ステップS7616c)。この実施の形態では、演出制御用マイクロコンピュータ100は、遊技状態が高ベース状態である場合と低ベース状態である場合とで、可変表示装置9に表示する背景色を変化させることによって、現在の遊技状態を報知する。例えば、演出制御用コンピュータ100は、ステップS7616bで遊技状態が高ベース状態であると判定すると、高ベース状態に応じた表示制御用実行データをROMから選択し、選択した表示制御用実行データにもとづいて、可変表示装置)に表示する背景色を変化(例えば、緑色から青色に変化)させることによって、高ベース状態に移行したことを報知する。
演出制御用マイクロコンピュータ100は、ステップS7612で読み出した受信コマンドがその他の演出制御コマンド(例えば、通常表示指定コマンドや非特定大当り終了表示コマンド)である場合には、受信コマンドに対応するコマンド受信フラグをセットし、必要であれば受信コマンドを保存する(ステップS7618)。
図89は、図86に示されたメイン処理における演出制御プロセス処理(ステップS775)を示すフローチャートである。演出制御プロセス処理では、演出制御用マイクロコンピュータ100は、演出制御プロセスフラグの値に応じてステップS1800〜S1806のうちのいずれかの処理を実行する。各処理において、以下のような処理が実行される。
飾り図柄通常処理(ステップS1800):変動パターンコマンドおよび表示結果指定コマンドを受信しているか否かを確認する。変動パターンコマンドおよび表示結果指定コマンドを受信していれば、演出制御用マイクロコンピュータ100は、演出制御プロセスフラグの値を飾り図柄変動開始処理に対応した値に変更する。
飾り図柄変動開始処理(ステップS1802):変動パターンコマンドに応じて複数定められている飾り図柄の変動パターンから、実際に使用する飾り図柄の停止図柄の組み合わせを特定する。また、可変表示装置9における飾り図柄の変動時間を特定する。この場合、飾り図柄の停止図柄をリーチ/はずれ図柄とした場合には、表示結果指定コマンドから図柄のずれ数を特定し、特定した図柄のずれ数と、変動パターンコマンドに示される基本時間とにもとづいて、可変表示装置9における飾り図柄の変動時間を特定する。また、特定した変動時間に応じた変動パターンを、実際に使用する変動パターンとして特定する。また。可変表示装置9における飾り図柄(左中右の図柄)の変動を開始させる。その後、演出制御プロセスフラグの値をステップS1803に応じた値に更新する。
図柄変動中処理(ステップS1803):変動パターンを構成する各変動状態(変動速度等)の切替タイミングを制御するとともに、変動時間の終了を監視する。その後、演出制御プロセスフラグの値をステップS1804に応じた値に更新する。
飾り図柄停止処理(ステップS1804):変動時間が経過したら、中図柄の変動を停止し停止図柄(確定図柄)を表示する制御を行う。その後、大当りとする場合には、演出制御プロセスフラグの値をステップS1805に応じた値に更新する。そうでない場合には、演出制御プロセスフラグの値をステップS1800に応じた値に更新する。
大当り表示処理(ステップS1805):変動時間の終了後、確変大当り表示または通常大当り表示の制御を行う。その後、演出制御プロセスフラグの値をステップS1806に応じた値に更新する。
大当たり遊技中処理(ステップS1806):大当たり遊技中の制御を行う。例えば、大入賞口開放前表示や大入賞口開放時表示の演出制御コマンドを受信したら、ラウンド数の表示制御等を行う。また、大当り遊技を終了すると、大当り遊技を終了した旨を示す所定のエンディング表示を行う。その後、演出制御プロセスフラグの値をステップS1800に応じた値に更新する。
なお、この実施の形態では、大当り遊技を終了すると、演出制御用マイクロコンピュータ100は、遊技状態が確変状態である場合と非確変状態である場合とで、異なる表示態様で可変表示装置9を用いてエンディング表示を行う。例えば、演出制御用マイクロコンピュータ100は、確変状態である場合と非確変状態である場合とで、異なる背景やキャラクタを用いたエンディング表示を行う。なお、演出制御用マイクロコンピュータ100は、所定の表示変更決定用乱数にもとづいて、大当り遊技を終了したときに表示するエンディング表示を変更するか否かを決定するようにしてもよい。この場合、例えば、遊技状態が確変状態である場合にエンディング表示を変更すると決定した場合、演出制御用マイクロコンピュータ100は、大当り遊技を終了すると、非確変状態で本来用いるエンディング表示を行う。また、例えば、遊技状態が非確変状態である場合にエンディング表示を変更すると決定した場合、演出制御用マイクロコンピュータ100は、大当り遊技を終了すると、確変状態で本来用いるエンディング表示を行う。そのようにすれば、大当り遊技を終了したときに、遊技状態が確変状態であるか否かを遊技者に認識されにくくすることができ、遊技への興趣を高めることができる。
さらに、演出制御用マイクロコンピュータ100は、遊技状態が確変状態であるか否かに加えて高ベース状態であるか否かによって、異なる表示態様で可変表示装置9を用いてエンディング表示を行ってもよい。例えば、演出制御用マイクロコンピュータ100は、確変状態且つ高ベース状態と、確変状態且つ低ベース状態と、非確変状態且つ高ベース状態と、非確変状態且つ低ベース状態とで、異なる背景やキャラクタを用いたエンディング表示を行ってもよい。また、演出制御用マイクロコンピュータ100は、所定の表示変更決定用乱数にもとづいて、大当り遊技を終了したときに表示するエンディング表示を変更するか否かを決定するようにしてもよい。この場合、例えば、遊技状態が高ベース状態且つ確変状態である場合にエンディング表示を変更すると決定した場合、演出制御用マイクロコンピュータ100は、大当り遊技を終了すると、高ベース状態且つ非確変状態で本来用いるエンディング表示を行う。また、例えば、遊技状態が高ベース状態且つ非確変状態である場合にエンディング表示を変更すると決定した場合、演出制御用マイクロコンピュータ100は、大当り遊技を終了すると、高ベース状態且つ確変状態で本来用いるエンディング表示を行う。
また、演出制御用マイクロコンピュータ100は、遊技状態が確変状態であるか否かに関わらず、同じ表示態様で可変表示装置9を用いてエンディング表示を行ってもよい。そして、演出制御用マイクロコンピュータ100は、エンディング表示終了後に、確変状態と非確変状態とで、可変表示装置9に表示する背景を異ならせるようにしてもよい。この場合、演出制御用マイクロコンピュータ100は、所定の背景変更決定用乱数にもとづいて、エンディング表示終了後の可変表示装置9の背景を変更するか否かを決定するようにしてもよい。この場合、例えば、遊技状態が確変状態である場合に背景を変更すると決定した場合、演出制御用マイクロコンピュータ100は、エンディング表示を終了すると、非確変状態で本来用いる背景に変更する。また、例えば、遊技状態が非確変状態である場合に背景を変更すると決定した場合、演出制御用マイクロコンピュータ100は、エンディング表示を終了すると、確変状態で本来用いる背景に変更する。また、演出制御用マイクロコンピュータ100は、確変状態と非確変状態とで、異なる表示態様で可変表示装置9を用いてエンディング表示を行い、エンディング表示終了後に、遊技状態が確変状態であるか否かに関わらず、可変表示装置9に同じ背景を表示させてもよい。
図90は、図89に示された演出制御プロセス処理における飾り図柄通常処理(ステップS1800)を示すフローチャートである。飾り図柄通常処理において、演出制御用マイクロコンピュータ100は、変動パターンコマンド受信フラグがセットされているか否か確認する(ステップS1812)。変動パターンコマンド受信フラグは、ステップS7614にてYと判定されたとき、すなわち、変動パターンコマンドを受信したときにセットされる。
変動パターンコマンド受信フラグがセットされていれば、演出制御用マイクロコンピュータ100は、変動パターンコマンド受信フラグをリセットし、表示結果指定コマンド受信フラグがセットされているか否か確認する(ステップS1813)。表示結果指定コマンド受信フラグは、ステップS7616にて、左中右の全ての飾り図柄を指定する表示結果指定コマンドを受信したと判定されたときにセットされる。
表示結果指定コマンド受信フラグがセットされていれば、演出制御用マイクロコンピュータ100は、表示結果指定コマンド受信フラグをリセットし、演出制御プロセスフラグの値を飾り図柄変動パターン決定処理に対応した値に変更する(ステップS1814)。
図91は、図89に示された演出制御プロセス処理における飾り図柄変動開始処理(ステップS1802)を示すフローチャートである。飾り図柄変動開始処理において、演出制御用マイクロコンピュータ100は、受信した表示結果指定コマンドにもとづいて表示結果を特定する(ステップS1861)。この実施の形態では、演出制御用マイクロコンピュータ100は、表示結果指定コマンド(図53に示すコマンド91XX(H)〜93XX(H))にもとづいて、飾り図柄の停止図柄を特定する。
特定した飾り図柄の停止図柄がリーチ態様とした後に大当たりとしない場合の図柄の組合せ(例えば、「左中右」の3つの図柄のうちの「中」の図柄だけ異なる図柄の組合せ。リーチ/はずれ図柄ともいう)である場合(ステップS1862)、演出制御用マイクロコンピュータ100は、特定した飾り図柄の停止図柄にもとづいて、はずれ図柄のずれ数を特定する(ステップS1863)。例えば、特定した飾り図柄の停止図柄が「767」である場合、演出制御用マイクロコンピュータ100は、ずれ数「1」と特定する。また、例えば、特定した飾り図柄の停止図柄が「757」である場合、演出制御用マイクロコンピュータ100は、ずれ数「2」と特定する。
演出制御用マイクロコンピュータ100は、受信した変動パターンコマンドにもとづいて、飾り図柄の変動パターンを決定する。この場合、演出制御用マイクロコンピュータ100は、受信した変動パターンコマンドと、ステップS1863で特定したはずれ図柄のずれ数とにもとづいて、飾り図柄の変動時間を特定する(ステップS1864)。この実施の形態では、演出制御用マイクロコンピュータ100は、リーチ/はずれ図柄の変動パターンコマンド(図52に示すEXTデータ「03H」である変動パターンコマンド)にもとづいて、飾り図柄の基本時間が10秒であると特定する(図52参照)。また、演出制御用マイクロコンピュータ100は、特定したずれ数に対応する時間(飾り図柄が変動する際に、図柄がずれている分だけ基本時間に対して余分に変動にかかる時間)を特定する。例えば、演出制御用マイクロコンピュータ100は、特定したずれ数が「1」である場合、対応する時間を1秒と特定する。また、例えば、演出制御用マイクロコンピュータ100は、特定したずれ数が「2」である場合、対応する時間を2秒と特定する。そして、演出制御用マイクロコンピュータ100は、特定した基本時間にずれ数に対応する時間を加算(または減算)した時間を、飾り図柄の変動時間として特定する。例えば、演出制御用マイクロコンピュータ100は、特定したずれ数が「1」である場合、飾り図柄の変動時間を11秒と特定する。また、例えば、演出制御用マイクロコンピュータ100は、特定したずれ数が「2」である場合、飾り図柄の変動時間を12秒と特定する。
ステップS1862で飾り図柄の停止図柄がリーチ/はずれ図柄でない(例えば、リーチ態様とした後に大当たりとする場合の図柄の組合せや、リーチ態様とならない図柄の組合せ)場合、演出制御用マイクロコンピュータ100は、受信した変動パターンコマンドにもとづいて、飾り図柄の変動パターンを決定する。この場合、演出制御用マイクロコンピュータ100は、受信した変動パターンコマンドにもとづいて、飾り図柄の変動時間を特定する(ステップS1865)。この実施の形態では、例えば、演出制御用マイクロコンピュータ100は、通常変動の変動パターンコマンド(図52に示すEXTデータ「00H」である変動パターンコマンド)にもとづいて、飾り図柄の変動時間を8.1秒であると特定する(図52参照)。また、例えば、演出制御用マイクロコンピュータ100は、リーチを伴う大当りの変動パターンコマンド(図52に示すEXTデータ「02H」である変動パターンコマンド)にもとづいて、飾り図柄の変動時間を10秒であると特定する(図52参照)。
また、演出制御用マイクロコンピュータ100は、飾り図柄の変動パターンの少なくとも一部を独自に決定する。例えば、あらかじめ用意された複数種類の飾り図柄の変動パターンのうち、ステップS1864またはステップS1865で特定される変動時間、および遊技制御用マイクロコンピュータ560から受信した特定大当り終了表示コマンドや非特定大当り終了表示コマンドに示される遊技状態(確変状態や高ベース状態)に合致する複数種類の飾り図柄の変動パターンの中から、実行する変動パターンを選択する。つまり、演出制御用マイクロコンピュータ100は、例えば、遊技状態の種類(例えば、高ベース状態であるか否か)に応じて、飾り図柄の演出内容(例えば、どの背景やどのキャラクタを用いて演出するかなど)、予告演出の実行の有無や演出内容など、飾り図柄の変動態様(演出モード)の少なくとも一部を独自に決定する。
なお、演出制御用マイクロコンピュータ100は、遊技状態(確変状態や高ベース状態)を示す情報が付加された変動パターンコマンドを遊技制御用マイクロコンピュータ560から受信し、変動パターンコマンドに示される遊技状態に合致する変動パターンを選択するようにしてもよい。この場合、例えば、遊技制御用マイクロコンピュータ560は、遊技状態に応じて異なる変動パターンコマンド(例えば、1バイト目のMODEデータの値が異なるコマンド)を、演出制御用マイクロコンピュータ100に送信する。そして、演出制御用マイクロコンピュータ100は、受信した変動パターンコマンドにもとづいて遊技状態が変化したか否かを判断して、演出内容を決定したり変更したりしてもよい。
また、演出制御用マイクロコンピュータ100は、特定した遊技状態に応じた表示制御実行データをROMから選択し、選択した表示制御実行データにもとづいて遊技演出を行う。また、この実施の形態では、大当りの際に遊技状態が高ベース状態または低ベース状態に変化した場合に、主基板31から受信した特定大当り終了表示コマンドにもとづいて、演出モードを変更することになる。
なお、演出モードを変更するタイミングは大当りの際に限らず、演出制御用マイクロコンピュータ100は、大当り以外のタイミングで、遊技状態が変化したことを認識して演出モードを変更してもよい。例えば、遊技状態が突然確変(確変状態が発生する大当りで、大当り遊技状態が短期間(例えば、大入賞口の開放回数が2回)だけ継続し、大入賞口が短時間だけ開放する場合の遊技状態)に制御されたことを契機として高ベース状態または低ベース状態に移行するようにし、演出制御用マイクロコンピュータ100が、遊技状態の変化(高ベース状態または低ベース状態)を認識して、演出モードを変更するようにしてもよい。また、例えば、小当り(特別可変入賞装置20の開放が1回だけ(すなわち、継続権が1ラウンドだけ許容される))当りが発生したことを契機として、演出制御用マイクロコンピュータ100が、演出モードを変更するようにしてもよい。例えば、突然確変に制御されたり小当りが発生すると、遊技制御用マイクロコンピュータ560は、突然確変や小当りであることを指定する演出制御コマンドを、演出制御用マイクロコンピュータ100に送信する。この場合、遊技制御用マイクロコンピュータ560は、例えば、現在の遊技状態が高ベース状態であるか低ベース状態であるかを示す情報を付加した演出制御コマンドを、演出制御用マイクロコンピュータ100に送信する。そして、演出制御用マイクロコンピュータ100は、受信した演出制御コマンドにもとづいて、突然確変や小当りであることを特定するとともに、遊技状態の変化を認識して演出モードを変更する。
また、例えば、演出制御用マイクロコンピュータ100は、遊技状態の変化に関わらず、特別図柄や飾り図柄の停止図柄が大当りやリーチとなる可能性を予告する所定の図柄の組合せ(いわゆるチャンス目)となったことを契機として、演出モードを変更するようにしてもよい。また、例えば、演出制御用マイクロコンピュータ100は、遊技状態の変化に関わらず、飾り図柄の停止図柄がリーチ/はずれ図柄となったことを契機として、演出モードを変更するようにしてもよい。例えば、演出制御用マイクロコンピュータ100は、遊技制御用マイクロコンピュータ560から受信する表示結果指定コマンドにもとづいて、飾り図柄の停止図柄がチャンス目の図柄の組合せやリーチ/はずれ図柄であるか否かを確認する。そして、演出制御用マイクロコンピュータ100は、停止図柄がチャンス目の図柄の組合せやリーチ/はずれ図柄であると特定すると、現在の遊技状態(高ベース状態または低ベース状態)に関わらず、演出モードを変更する。さらに、普通図柄が当り図柄となったことを契機として高ベース状態または低ベース状態に移行するようにし、演出制御用マイクロコンピュータ100が、遊技状態の変化(高ベース状態または低ベース状態)を認識して、演出モードを変更するようにしてもよい。
また、演出制御用マイクロコンピュータ100は、演出変更決定用乱数(ランダム1)にもとづいて、演出モードを変更するか否かを決定する(ステップS1866)。例えば、演出制御用マイクロコンピュータ100は、ランダム1が所定値と一致すると、現在の遊技状態(高ベース状態であるか低ベース状態であるか)に関わらず、演出モードを変更すると決定する。
演出モードを変更しないと決定した場合(ステップS1867)、演出制御用マイクロコンピュータ100は、現在の遊技状態に応じて演出モードを設定する(ステップS1867a)。この場合、例えば、演出制御用マイクロコンピュータ100は、受信した特定大当り終了表示コマンドにもとづいて現在の遊技状態(高ベース状態や低ベース常態)を特定し、可変表示装置9を用いて演出を行う。例えば、演出制御用マイクロコンピュータ100は、特定した遊技状態に応じた表示制御用実行データをROMから選択し、選択した表示制御用実行データにもとづいて、可変表示装置9に表示する背景色を変化させることによって、現在の遊技状態を報知する。なお、演出制御用マイクロコンピュータ100は、受信した表示結果指定コマンドや変動パターンコマンドにもとづいて、遊技状態を特定し、可変表示装置9を用いて演出を行ってもよい。
また、演出モードを変更すると決定すると(ステップS1867)、演出制御用マイクロコンピュータ100は、変更後演出決定用乱数(ランダム2)にもとづいて、いずれの演出モードに変更するかを決定する(ステップS1868)。この場合、例えば、演出制御用マイクロコンピュータ100は、遊技演出に用いる飾り図柄の変動パターンを、ランダム2の値に対応する変動パターンに変更することによって、演出モードを変更する。そして、演出制御用マイクロコンピュータ100は、現在の遊技状態に関わらず、例えば、変更後の演出モードに応じた表示制御用実行データをROMから選択し、選択した表示制御用実行データにもとづいて、可変表示装置9に表示する背景色を変更する。
なお、演出制御用マイクロコンピュータ100は、演出変更決定用乱数にもとづく抽選によって演出を変更するか否かを決定するのでなく、例えば、小当りが発生したことや、停止図柄がいわゆるチャンス目またはリーチ/はずれ図柄となったことを認識して、演出を変更すると決定してもよい。この場合、例えば、小当りが発生すると、遊技制御用マイクロコンピュータ560は、小当りであることを指定する演出制御コマンドを、演出制御用マイクロコンピュータ100に送信する。そして、演出制御用マイクロコンピュータ100は、受信した演出制御コマンドにもとづいて小当りが発生したと判定し、演出を変更する(例えば、可変表示装置9に表示する背景色を変更する)。また、演出制御用マイクロコンピュータ100は、飾り図柄の停止図柄がいわゆるチャンス目またはリーチ/はずれ図柄であると特定すると、演出を変更する(例えば、可変表示装置9に表示する背景色を変更する)。
また、飾り図柄の変動期間に応じた変動時間タイマをスタートさせる(ステップS1869)。また、演出制御用マイクロコンピュータ100は、演出制御基板80のROMに格納されているプロセスデータにおける最初の演出制御実行データを読み込む(ステップS1870)。そして、演出制御用マイクロコンピュータ100は、可変表示装置9において左中右の飾り図柄の変動が開始されるようにGCLに対して指示を与え、飾り図柄の可変表示を開始する。すなわち、プロセスデータにおいて、最初に設定されているプロセスタイマをスタートさせるとともに(ステップS1871)、最初に設定されている表示制御実行データにもとづいてLCD制御を行う(ステップS1872)。また、プロセスデータ中の最初に設定されているランプ制御実行データにもとづいてランプ制御を行う(ステップS1873)。その後、演出制御プロセスフラグの値を図柄変動中処理に応じた値に更新する(ステップS1874)。
図92は、演出制御プロセス処理における飾り図柄変動中処理(ステップS1803)を示すフローチャートである。飾り図柄変動中処理において、演出制御用マイクロコンピュータ100は、プロセスタイマがタイムアウトしたか否か確認する(ステップS1841)。タイムアウトしたら、プロセスデータにおける演出制御実行データの切り替えを行う(ステップS1842)。すなわち、プロセスデータにおいて、次に設定されているプロセスタイマをスタートさせるとともに(ステップS1843)、次に設定されている表示制御実行データにもとづいてLCD制御を行う(ステップS1844)。また、プロセスデータ中の次に設定されているランプ制御実行データにもとづいてランプ制御および音出力制御を行う(ステップS1845)。
この実施の形態では、ステップS1844,S1845において、演出制御用マイクロコンピュータ100は、飾り図柄変動開始処理で選択された変動パターンに対応する表示制御実行データおよびランプ制御実行データにもとづいて、演出制御を行う。すなわち、演出制御用マイクロコンピュータ100は、現在の遊技状態(高ベース状態または低ベース状態)に対応する演出モードを選択し、遊技状態の種類毎に異なる演出態様(例えば、背景が異なったり、予告演出が異なったり、キャラクタを用いた演出が異なる)で遊技演出を行う。また、演出制御用マイクロコンピュータ100は、スピーカ27や各ランプ25,28a,28b,28cによって、音や発光体などを用いて遊技演出を行う。なお、ステップS1866〜S1868の処理で演出モードが変更されている場合には、演出制御用マイクロコンピュータ100は、現在の遊技状態に関わらず、変更後の演出モードに対応する演出態様で遊技演出を行う。なお、演出制御用マイクロコンピュータ100は、例えば、遊技制御用マイクロコンピュータ560から受信した特定大当り終了表示コマンドや変動パターンコマンドにもとづいて高ベース状態であることを特定すると、現在の遊技状態が高ベース状態であることを示す高ベース状態フラグをセットする。そして、演出制御用マイクロコンピュータ100は、高ベース状態フラグがセットされているか否かを確認することによって、現在の遊技状態(高ベース状態であるか否か)を判断する。
そして、演出制御用マイクロコンピュータ100は、変動時間タイマがタイムアウトしていたら(ステップS1846)、演出制御プロセスフラグの値を飾り図柄停止待ち処理に対応した値にする(ステップS1847)。
以上に説明したように、この実施の形態では、飾り図柄の表示態様をリーチ態様としたあとに大当りとしないと決定された場合に、演出制御用マイクロコンピュータ100は、表示結果指定コマンドにもとづいて飾り図柄のずれ数を特定する。そして、演出制御用マイクロコンピュータ100は、特定したずれ数と変動パターンコマンドに示される基本時間とにもとづいて、飾り図柄の変動時間を特定する。そのため、遊技制御用マイクロコンピュータ560が変動パターンコマンドの送信後に停止準備コマンドや確定コマンドを送信しなくても、演出制御用マイクロコンピュータ100が飾り図柄の可変表示を実行することができる。そのため、可変表示を実行するためのコマンド数を低減することができる。
また、この実施の形態では、遊技制御用マイクロコンピュータ560のCPU56は、状態決定用乱数(ランダム8)および状態判定テーブルにもとづいて、遊技状態を確変状態に移行するか否かの決定を行うことに加えて、高ベース状態に移行するか否かの決定を行う。そのため、所定の高確率条件の成立にもとづいて遊技状態を確変状態に移行する制御を行うことに加えて、高開放条件の成立にもとづいて遊技状態を高ベース状態に移行する制御を行うことができる。よって、可変入賞装置15が開放される割合の変化を遊技者に実感させることによって、現在の遊技状態が有利な状態であるか否かを遊技者に認識させることができる。
また、この実施の形態では、CPU56は、確変状態だけに移行する場合(確変・低ベース状態)や、確変状態に移行するとともに高ベース状態に移行する場合(確変/高ベース状態)など、遊技状態を複数種類の状態に移行するように制御する。現在の遊技状態がいずれの状態であるかによって、異なる選択割合で遊技状態を移行させる状態を決定するように構成されているので、遊技中にいずれの遊技状態に移行するかについて遊技者に関心をもたせることができ、遊技に対する遊技者の興趣を維持することができる。
また、この実施の形態では、遊技状態が確変状態に移行されているとともに高ベース状態に移行されている場合(確変/高ベース状態の場合)に、高い割合で確変状態および高ベース状態への両方の移行条件が成立すると判定する。例えば、図57に示す確変/高ベース時状態判定テーブルを用いて状態判定を行う場合、遊技制御用マイクロコンピュータ560のCPU56は、50パーセントの割合で再び確変/高ベース状態に移行すると判定する。そのため、、遊技者にとって最も有利な状態である確変/高ベース状態に移行している状態を高い割合で継続する(ループする)ことができる。そのため、確変/高ベース状態以外の状態(通常/低ベース状態や確変/低ベース状態、通常/高ベース状態)から、確変/高ベース状態に移行することについて、遊技者の関心をより高めることができる。
また、この実施の形態では、演出データ(表示制御実行データおよびランプ制御実行データ)にもとづいて、複数の演出モードのうち遊技状態(確変状態や高ベース状態)に対応する演出モードで遊技演出を行う。また、演出変更決定用乱数(ランダム1)を用いた抽選により演出モードを変更すると決定すると、遊技演出に用いる演出データを変更する。そして、現在の遊技状態に関わらず、変更後の演出モードで遊技演出を行う。そのため、同じ遊技状態が継続している場合であっても、演出モードを変化させて遊技演出を行うことができる。従って、同じ遊技状態が継続している場合であっても演出モードを変化させることによって、あたかも遊技状態が移行されたかのような印象を遊技者に与えることができ、遊技に対する遊技者の興趣を高めることができる。
また、この実施の形態では、遊技機への電源投入が開始されてからタイマ割込設定を行うまでに乱数回路503の初期設定(乱数回路設定処理)を行うとともに、乱数回路設定処理において、遊技制御用マイクロコンピュータ560固有のIDナンバにもとづく値を乱数の初期値として設定する。そのため、乱数回路503が生成する乱数のランダム性を向上させることができる。また、乱数のランダム性を向上させることができるので、乱数生成のタイミングを遊技者や遊技店に認識されにくくすることができ、無線信号を用いた取り込み信号を遊技機に対して発生させることによって、大当り状態などの特定遊技状態への移行条件を不正に成立させられてしまうことを防止することができる。
また、この実施の形態では、シリアル通信回路505が割り込み要求を行った場合に、通信エラーを割込原因とする場合の割込処理を優先的に実行し、通信を禁止状態に制御する。そのため、通信エラーが発生した状態で遊技機に搭載されている払出制御基板37の払出制御用マイクロコンピュータ370と通信を行うことを防止できる。よって、通信エラーによる誤動作を防止することができる。
例えば、シリアル通信回路505においてオーバーランが発生すると、受信データレジスタ711内の受信データが読み込まれる前に受信用シフトレジスタ713に次の受信データが格納されてしまうので、受信データレジスタ711の内容が上書きされてしまいCPU56が受信データを正しく読み込めなくなってしまう。そのため、各制御基板が搭載するマイクロコンピュータと正しく通信を行えなくなり、遊技制御用マイクロコンピュータ560が誤動作をする原因となる。この実施の形態では、オーバーランが発生すると、シリアル通信回路505が通信エラー時割込要求を行い、CPU56が通信を禁止状態に制御する。そのため、オーバーランの発生によって遊技制御用マイクロコンピュータ560が誤動作することを防止することができる。
また、例えば、シリアル通信回路505においてノイズエラーが発生すると、ノイズによって正しい受信データを受信できない可能性が高く、CPU56が誤動作をする原因となる。この実施の形態では、ノイズエラーが発生すると、シリアル通信回路505が通信エラー時割込要求を行い、CPU56が通信を禁止状態に制御する。そのため、ノイズエラーの発生によってCPU56が誤動作することを防止することができる。
また、例えば、シリアル通信回路505においてフレーミングエラーが発生すると、受信データのストップビットを正しく受信できなかった状態であるので、正しい受信データを受信できない可能性が高く、CPU56が誤動作をする原因となる。この実施の形態では、フレーミングエラーが発生すると、シリアル通信回路505が通信エラー時割込要求を行い、CPU56が通信を禁止状態に制御する。そのため、フレーミングエラーの発生によってCPU56が誤動作することを防止することができる。
また、例えば、シリアル通信回路505においてパリティエラーが発生すると、受信データの各データビットまたはパリティビットを正しく受信できなかった状態であるので、正しい受信データを受信できない可能性が高く、CPU56が誤動作をする原因となる。この実施の形態では、パリティエラーが発生すると、シリアル通信回路505が通信エラー時割込要求を行い、CPU56が通信を禁止状態に制御する。そのため、パリティエラーの発生によってCPU56が誤動作することを防止することができる。
また、この実施の形態では、シリアル通信回路505において通信エラーが発生すると、払出制御基板37が搭載する払出制御用マイクロコンピュータ370への賞球個数コマンドの送信と、払出制御用マイクロコンピュータ370からの賞球ACKコマンドの受信とを禁止するように制御する。例えば、通信エラーの発生時に賞球個数コマンドを払出制御基板37が搭載する払出制御用マイクロコンピュータ370に送信してしまうと、誤った賞球個数コマンドが送信されてしまう可能性がある。そのため、誤った賞球個数コマンドに示される賞球数にもとづいて誤った数の遊技球が払い出されてしまう可能性があり、遊技結果に影響を及ぼす虞がある。この実施の形態では、通信エラーが発生すると、払出制御基板37が搭載する払出制御用マイクロコンピュータ370への賞球個数コマンドの送信を禁止するように制御するので、誤った賞球コマンドにもとづいて誤った数の遊技球の払出が行われ、遊技結果に影響を及ぼしてしまうことを防止することができる。
なお、シリアル通信回路505において通信エラーが発生すると、各制御基板が搭載するマイクロコンピュータからのデータの受信のみを防止するようにしてもよい。例えば、遊技制御手段と演出制御手段との間でシリアル通信を行う場合を考える。この場合、遊技制御用マイクロコンピュータ560と演出制御用マイクロコンピュータとの間で行われる通信は、遊技制御用マイクロコンピュータ560から演出制御用マイクロコンピュータへの演出制御コマンドの送信だけであり、演出制御用マイクロコンピュータから遊技制御用マイクロコンピュータ560へのコマンドの送信はない。すなわち、遊技制御用マイクロコンピュータ560と演出制御用マイクロコンピュータとの間では、一方向だけの通信が行われる。また、遊技制御用マイクロコンピュータ560から演出制御基板80に誤った演出制御コマンドが送信されたとしても、可変表示装置9に誤った演出用の表示が行われるだけであり、誤った払出処理を実行してしまう場合と比較して、遊技結果に与える影響が小さい。
また、この実施の形態では、乱数回路503の反転回路532が極性を反転させた反転クロック信号SI2(または、遅延回路が遅延させた遅延クロック信号)を生成し、反転クロック信号SI2に同期して乱数の記憶を指示するためのラッチ信号を出力する。そのため、乱数を更新するタイミングと乱数値記憶回路531に乱数を記憶させるタイミングとをずらすことができ、生成した乱数を安定して確実に記憶させることができる。
なお、本実施の形態では、「シリアル通信回路505がCPU56に割り込み要求を行う」という表現を用いたが、具体的には、データの送受信や通信エラーの発生などの割込要因が発生したときに、シリアル通信回路505の割り込み制御回路714がステータスレジスタA705の対応するビット(割込要因に対応するビット)に設定値をセットするとともに、CPU56に割り込み信号(内部IRQ)を出力することによって、シリアル通信回路505による割り込み要求が行われる。例えば、通信エラーが発生したときに、シリアル通信回路505の割り込み制御回路714がステータスレジスタA705の対応するビット(通信エラーに対応するビット0〜3)に設定値をセットするとともに、CPU56に割り込み信号を出力することによって、シリアル通信回路505による通信エラー時の割り込み要求が行われる。
実施の形態2.
第1の実施の形態では、演出制御基板80を用いて全ての演出手段(可変表示装置9、音出力装置(スピーカ)27および各ランプ25,28a,28b,28c)を制御する場合を説明したが、別々の制御基板を用いて各演出手段を制御してもよい。以下、音出力装置27および各ランプ25,28a,28b,28cを制御する音/ランプ制御基板と、可変表示装置9を制御する図柄制御基板とを備えた第2の実施の形態を説明する。
なお、本実施の形態において、第1の実施の形態と同様の構成および処理をなす部分についてはその詳細な説明を省略し、主として第1の実施の形態と異なる部分について説明する。
また、本実施の形態において、遊技制御用マイクロコンピュータ560は、第1の実施の形態と同様に、シリアル通信回路505を内蔵し、払出制御基板37が搭載する払出制御用マイクロコンピュータ370と各種制御コマンド(賞球個数コマンドおよび賞球ACKコマンド)をシリアル通信する。
図93は、第2の実施の形態における中継基板77、音/ランプ制御基板80bおよび図柄制御基板80aの回路構成例を示すブロック図である。この実施の形態では、音/ランプ制御基板80bは、音出力装置27の音出力制御、各ランプ25,28a,28b,28cの表示制御を行う。また、図柄制御基板80aは、可変表示装置9の表示制御を行う。また、この実施の形態では、「演出制御」とは、可変表示装置9の表示制御や、スピーカ27の音出力制御、各ランプ25,28a,28b,28cの表示制御を行うことによって、遊技演出などの演出を行うことをいう。また、この実施の形態では、演出制御手段は、可変表示装置9の表示制御を行う図柄制御用マイクロコンピュータ100aと、スピーカ27の音出力制御、および各ランプ25,28a,28b,28cの表示制御を行う音/ランプ制御用マイクロコンピュータ100bとによって実現される。
音/ランプ制御基板80bは、音/ランプ制御用CPU101bおよびRAMを含む音/ランプ制御用マイクロコンピュータ100bを搭載している。なお、RAMは外付けであってもよい。音/ランプ制御基板80bにおいて、音/ランプ制御用マイクロコンピュータ100bは、内蔵または外付けのROM(図示せず)に格納されたプログラムに従って動作し、中継基板77を介して入力される主基板31からのストローブ信号(演出制御INT信号)に応じて、入力ドライバ102および入力ポート103を介して演出制御コマンドを受信する。
演出制御コマンドおよび演出制御INT信号は、音/ランプ制御基板80bにおいて、まず、入力ドライバ102に入力する。入力ドライバ102は、中継基板77から入力された信号を音/ランプ制御基板80bの内部に向かう方向にしか通過させない(音/ランプ制御基板80bの内部から中継基板77への方向には信号を通過させない)信号方向規制手段としての単方向性回路でもある。
中継基板77には、主基板31から入力された信号を音/ランプ制御基板80bに向かう方向にしか通過させない(音/ランプ制御基板80bから中継基板77への方向には信号を通過させない)信号方向規制手段としての単方向性回路が搭載されている。単方向性回路として、例えばダイオードやトランジスタが使用される。図93には、ダイオードが例示されている。また、単方向性回路は、各信号毎に設けられる。
さらに、音/ランプ制御用マイクロコンピュータ100bは、ランプドライバ352に対してランプを駆動する信号を出力する。ランプドライバ352は、ランプを駆動する信号を増幅して天枠ランプ28a、左枠ランプ28b、右枠ランプ28c、ボタンランプ130などの枠側に設けられている各ランプに供給する。また、枠側に設けられている装飾ランプ25に供給する。
また、音/ランプ制御用マイクロコンピュータ100bは、音声合成用IC173に対して音番号データを出力する。音声合成用IC173は、音番号データに応じた音声や効果音を発生し増幅回路175に出力する。増幅回路175は、音声合成用IC173の出力レベルを、ボリューム176で設定されている音量に応じたレベルに増幅した音声信号をスピーカ27に出力する。音声データROM174には、音番号データに応じた制御データが格納されている。音番号データに応じた制御データは、所定期間(例えば飾り図柄の変動期間)における効果音または音声の出力態様を時系列的に示すデータの集まりである。
なお、ランプを駆動する信号および音番号データは、音/ランプ制御用マイクロコンピュータ100bとランプドライバ352および音声合成IC173との間で、双方向通信(信号受信側から送信側に応答信号を送信するような通信)によって伝達される。
また、音/ランプ制御用マイクロコンピュータ100bは、演出制御コマンド(例えば、変動パターンコマンド)にもとづいて、可変表示装置9を用いて行う演出内容を決定する。例えば、音/ランプ制御用マイクロコンピュータ100bは、可変表示装置9を用いて予告演出を行うか否かを決定する。また、例えば、音/ランプ制御用マイクロコンピュータ100bは、可変表示装置9を用いて予告演出の種類を決定する。
なお、「予告演出」とは、大当りとなるまたはその可能性があることを事前(可変表示装置9において飾り図柄の停止図柄が導出表示される前に)に遊技者に報知するための演出をいう。例えば、変動中に異なった態様(速度や回転方向等)の変動を行ったりキャラクタ等を登場させたりすることにより大当りになる可能性があることを遊技者に報知する。
また、音/ランプ制御用マイクロコンピュータ100bは、主基板31からの演出制御コマンド(変動パターンコマンドや表示結果指定コマンド)を、入出力ポート104を介して図柄制御基板80aに送信する。また、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容(予告演出を行うか否かや、予告演出の種類)を示す演出内容指定コマンドを生成する。また、音/ランプ制御用マイクロコンピュータ100bは、生成した演出内容指定コマンドを、入出力ポート104を介して図柄制御基板80aに送信する。
なお、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容(予告演出を行うか否かや、予告演出の種類)を、演出制御コマンド(変動パターンコマンドや表示結果指定コマンド)に付加してもよい。そして、音/ランプ制御用マイクロコンピュータ100bは、演出内容を付加した演出制御コマンドを、入出力ポート104を介して図柄制御基板80aに送信してもよい。例えば、この実施の形態では、図53に示すように、各変動パターンコマンド(8000(H)〜8002(H))のEXTデータ中の最初の4ビットは全て「0」である。音/ランプ制御用マイクロコンピュータ100bは、演出内容を変動パターンコマンドに付加する場合、例えば、決定した演出内容を特定可能な値をEXTデータの最初の4ビットの部分に付加して、図柄制御基板80aに送信してもよい。
図柄制御基板80aは、図柄制御用CPU101aおよびRAMを含む図柄制御用マイクロコンピュータ100aを搭載している。なお、RAMは外付けであってもよい。図柄制御基板80aにおいて、図柄制御用マイクロコンピュータ100aは、内蔵または外付けのROM(図示せず)に格納されたプログラムに従って動作する。また、図柄制御用マイクロコンピュータ100aは、音/ランプ制御用基板80bから受信した演出制御コマンドにもとづいて、VDP(ビデオディスプレイプロセッサ)109に、LCDを用いた可変表示装置9の表示制御を行わせる。
図柄制御用マイクロコンピュータ100aは、受信した演出制御コマンドに従ってキャラクタROM(図示せず)から必要なデータを読み出す。キャラクタROMは、可変表示装置9に表示される画像の中でも使用頻度の高いキャラクタ画像データ、具体的には、人物、文字、図形または記号等(飾り図柄を含む)をあらかじめ格納しておくためのものである。図柄制御用マイクロコンピュータ100aは、キャラクタROMから読み出したデータをVDP109に出力する。VDP109は、図柄制御用マイクロコンピュータ100aから入力されたデータにもとづいて可変表示装置9の表示制御を実行する。
この実施の形態では、可変表示装置9の表示制御を行うVDP109が図柄制御基板80aに搭載されている。VDP109は、図柄制御用マイクロコンピュータ100aとは独立したアドレス空間を有し、そこにVRAMをマッピングする。VRAMは、VDPによって生成された画像データを展開するためのバッファメモリである。そして、VDP109は、VRAM内の画像データを可変表示装置9に出力する。
次に、音/ランプ制御用マイクロコンピュータ100bの動作を説明する。図94は、第2の実施の形態における音/ランプ制御用マイクロコンピュータ100bが実行するメイン処理を示すフローチャートである。遊技機に対する電力供給が開始され、リセット信号がハイレベルになると、音/ランプ制御用マイクロコンピュータ100bは、メイン処理を開始する。メイン処理では、音/ランプ制御用マイクロコンピュータ100bは、まず、RAM領域のクリアや各種初期値の設定、また演出制御の起動間隔を決めるためのタイマの初期設定等を行うための初期化処理を行う(ステップS781)。その後、音/ランプ制御用マイクロコンピュータ100bは、タイマ割込フラグの監視(ステップS782)の確認を行うループ処理に移行する。タイマ割込が発生すると、音/ランプ制御用マイクロコンピュータ100bは、タイマ割込処理においてタイマ割込フラグをセットする。メイン処理において、タイマ割込フラグがセットされていたら、音/ランプ制御用マイクロコンピュータ100bは、そのフラグをクリアし(ステップS783)、以下の音/ランプ制御処理を実行する。
タイマ割込は例えば2ms毎にかかる。すなわち、音/ランプ制御処理は、例えば2ms毎に起動される。また、この実施の形態では、タイマ割込処理ではフラグセットのみがなされ、具体的な音/ランプ制御処理はメイン処理において実行されるが、タイマ割込処理で音/ランプ制御処理を実行してもよい。
音/ランプ制御処理において、音/ランプ制御用マイクロコンピュータ100bは、まず、受信した演出制御コマンドを解析する(コマンド解析処理:ステップS784)。なお、この場合、音/ランプ制御用マイクロコンピュータ100bは、第1の実施の形態で示したコマンド解析処理(図88に示す演出制御用マイクロコンピュータ100が実行するコマンド解析処理)と同様の処理に従って、演出制御コマンドを解析する。
次いで、音/ランプ制御用マイクロコンピュータ100bは、演出内容決定処理を行う(ステップS785)。演出内容決定処理では、音/ランプ制御用マイクロコンピュータ100bは、演出制御コマンド(変動パターンコマンドや表示結果指定コマンド)にもとづいて、可変表示装置9を用いて行う演出内容(予告演出を行うか否かや、予告演出の種類)を決定する。また、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容を示す演出内容指定コマンドを生成する。
次いで、音/ランプ制御用マイクロコンピュータ100bは、音出力処理を行う(ステップS786)。この場合、音/ランプ制御用マイクロコンピュータ100bは、音声合成用IC173に対して音番号データ(例えば、変動パターンコマンドに示される変動パターンに対応する音番号データ)を出力する。そして、音声合成用IC173は、音番号データに応じた音声や効果音を発生し増幅回路175に出力する。
次いで、音/ランプ制御用マイクロコンピュータ100bは、ランプ表示処理を行う(ステップS787)。この場合、音/ランプ制御用マイクロコンピュータ100bは、プロセスデータ中に設定されているランプ制御実行データにもとづいてランプ制御を行う。
また、音/ランプ制御用マイクロコンピュータ100bは、操作スイッチ81からの操作信号やセンサ154,155からの検出信号を入力ポート106を介して入力するデータ入力処理を実行する(ステップS788)。そして、乱数カウンタを更新する処理を実行する(ステップS789)。また、音/ランプ制御用マイクロコンピュータ100bは、主基板31から受信した演出制御コマンドや、ステップS785の演出内容決定処理で生成した演出内容指定コマンドを、図柄制御基板80aに送出する処理を行う(コマンド制御処理:ステップS790)。その後、ステップS782のタイマ割込フラグの確認を行う処理に戻る。
主基板31からの演出制御用のINT信号は音/ランプ制御用マイクロコンピュータ100bの割込端子に入力されている。例えば、主基板31からのINT信号がオン状態になると、音/ランプ制御用マイクロコンピュータ100bにおいて割込がかかる。そして、音/ランプ制御用マイクロコンピュータ100bは、割込処理において演出制御コマンドの受信処理を実行する。演出制御コマンドの受信処理において、音/ランプ制御用マイクロコンピュータ100bは、受信した演出制御コマンドデータをコマンド受信バッファに格納する。
なお、この実施の形態では、音/ランプ制御基板80bにおけるROMに格納されるプロセスデータ(以下、音/ランプ制御側プロセスデータともいう)は、プロセスタイマ設定値と、ランプ制御実行データのみを含む演出制御実行データの組合せが複数集まったデータで構成されている。また、図柄制御基板80aにおけるROMに格納されるプロセスデータ(以下、図柄制御側プロセスデータともいう)は、プロセスタイマ設定値と、表示制御実行データのみを含む演出制御実行データの組合せが複数集まったデータで構成されている。
図95は、第2の実施の形態における音/ランプ制御処理で用いる各乱数を示す説明図である。各乱数は、以下のように使用される。
(1)ランダム1:演出モードを変更するか否かを決定する(演出変更決定用)。この実施の形態では、後述するように、現在の遊技状態の種類に応じて、異なる演出モードで遊技演出を行う。具体的には、遊技状態が高ベース状態か否かに従って、異なる演出モードで遊技演出を行う。また、大当りの際に遊技状態が変化すると、例えば、主基板31から受信した特定大当り終了表示コマンドにもとづいて、遊技演出を行う際の演出モードを変更する。この場合に、ランダム1を用いた判定により演出モードを変更すると決定されると、現在の遊技状態に関わらず、演出モードが変更され、変更後の演出モードで遊技演出が行われる。なお、音/ランプ制御用マイクロコンピュータ100bは、例えば、ランダム1があらかじめ決められている1つの値と一致した場合には、演出モードを変更すると決定する。
(2)ランダム2:演出モードを変更する場合に、いずれの演出モードに変更するかを決定する(変更後演出決定用)
(3)ランダム3:予告演出を実行するか否かを決定する(予告演出実行決定用)。この実施の形態では、可変表示装置9においてリーチ態様の飾り図柄の可変表示を行う際に、音/ランプ制御用マイクロコンピュータ100bは、例えば、ランダム3があらかじめ決められている1つの値と一致した場合には、予告演出を行うと決定する。なお、音/ランプ制御用マイクロコンピュータ100bは、リーチ態様の可変表示を行うか否かに関わらず、ランダム3を用いて予告演出を行うか否かを決定してもよい。
(4)ランダム4:予告演出を行う場合に、可変表示装置9を用いて行う予告演出の種類を決定する(予告演出種類決定用)
図96は、図94に示された演出内容決定処理(ステップS785)を示すフローチャートである。演出内容決定処理において、音/ランプ制御用マイクロコンピュータ100bは、変動パターンコマンド受信フラグがセットされているか否か確認する(ステップS1851)。
変動パターンコマンド受信フラグがセットされていれば、音/ランプ制御用マイクロコンピュータ100bは、変動パターンコマンド受信フラグをリセットし、受信した変動パターンコマンドにもとづいて飾り図柄の変動パターンを特定する。また、音/ランプ制御用マイクロコンピュータ100bは、特定した変動パターンにもとづいて、可変表示装置9を用いて実行すべき可変表示がリーチを伴う変動であるか否かを判定する(ステップS1852)。例えば、音/ランプ制御用マイクロコンピュータ100bは、受信した変動パターンコマンドに示される変動パターンがリーチを伴うパターンである場合(例えば、図52に示すEXTデータ「03H」〜「08H」である変動パターンである場合)、音/ランプ制御用マイクロコンピュータ100bは、リーチを伴う変動であると判定する。なお、ステップS1851で変動パターンコマンド受信フラグがセットされていなかった場合には、音/ランプ制御用マイクロコンピュータ100bは、そのまま処理を終了する。
リーチを伴う変動であると判定した場合、音/ランプ制御用マイクロコンピュータ100bは、予告演出実行決定用乱数(ランダム3)にもとづいて、予告演出を行うか否かを決定する(ステップS1853)。例えば、音/ランプ制御用マイクロコンピュータ100bは、ランダム3が所定値と一致すると、可変表示装置9を用いた予告演出を行うと決定する。なお、ステップS1852でリーチを伴う変動でなかった場合には、音/ランプ制御用マイクロコンピュータ100bは、そのまま処理を終了する。
ステップS1854で予告演出を行わないと決定した場合、音/ランプ制御用マイクロコンピュータ100bは、変動パターンコマンドを受信しているとともに表示結果指定コマンドを受信している場合には、変動パターンコマンドおよび表示結果指定コマンドを図柄制御用マイクロコンピュータ100aに転送し、図柄制御用マイクロコンピュータ100aは、可変表示装置9を用いた飾り図柄の可変表示および遊技演出を実行することになる。この場合、音/ランプ制御用マイクロコンピュータ100bは、ステップS1854で予告演出を行わないと決定すると、予告演出を行わない旨を指定する通知コマンドを生成し、図柄制御用マイクロコンピュータ100aに送信する(ステップS1857)。
予告演出を行うと決定すると(ステップS1854)、音/ランプ制御用マイクロコンピュータ100bは、予告演出種類決定用乱数(ランダム4)にもとづいて、可変表示装置9を用いて行わせる予告演出の種類を決定する(ステップS1855)。例えば、音/ランプ制御用マイクロコンピュータ100bは、ランダム4にもとづいて、予告演出において、飾り図柄をどの程度の速度で変動させるかや、飾り図柄をいずれの回転方向に変動させるか、可変表示装置9にいずれのキャラクタを登場させるかを決定する。なお、ステップS1854で予告演出を実行しないと決定した場合には、音/ランプ制御用マイクロコンピュータ100bは、そのまま処理を終了する。
なお、この実施の形態では、変動パターンコマンドにもとづいてリーチであるか否かを特定して演出内容を決定する場合を説明するが、音/ランプ制御用マイクロコンピュータ100bは、遊技制御用マイクロコンピュータ560から受信した表示結果指定コマンドにもとづいてリーチであるか否かを特定し、演出内容を決定してもよい。また、音/ランプ制御用マイクロコンピュータ100bは、変動パターンコマンドおよび表示結果指定コマンドの両方にもとづいてリーチであるか否かを特定し、演出内容を決定してもよい。また、音/ランプ制御用マイクロコンピュータ100bは、表示結果指定コマンドにもとづいて非確変大当りまたは確変大当りであることを特定して、演出内容を決定してもよい。また、音/ランプ制御用マイクロコンピュータ100bは、図柄ずれ数指定コマンドを遊技制御用マイクロコンピュータ560から受信し、受信した図柄ずれ数指定コマンドにもとづいて、停止図柄がリーチを伴うはずれ図柄であるか否かを特定して、演出内容を決定してもよい。この場合、例えば、遊技制御用マイクロコンピュータ560は、特別図柄停止図柄設定処理(ステップS301参照)で飾り図柄の停止図柄を決定する際に、停止図柄をリーチ/はずれ図柄に決定した場合には、飾り図柄の停止図柄のずれ数を求める。また、遊技制御用マイクロコンピュータ560は、求めたずれ数を特定可能な値を含む図柄ずれ数指定コマンドを生成し、演出制御用マイクロコンピュータ100に送信する。そして、演出制御用マイクロコンピュータ100は、図柄ずれ数コマンドを受信したことにもとづいて停止図柄がリーチ/はずれ図柄であると特定し、演出内容を決定する。
さらに、音/ランプ制御用マイクロコンピュータ100bは、上記に示した全てのコマンド(変動パターンコマンド、表示結果指定コマンド、および図柄ずれ数指定コマンド)にもとづいて、演出内容を決定してもよい。また、音/ランプ制御用マイクロコンピュータ100bは、上記に示した各コマンド(変動パターンコマンド、表示結果指定コマンド、および図柄ずれ数指定コマンド)のうちのいずれか2つにもとづいて、演出内容を決定してもよい。
また、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容(予告演出を行うか否かや、予告演出の種類)を示す演出内容指定コマンドを生成する。そして、音/ランプ制御用マイクロコンピュータ100bは、生成した演出内容指定コマンドを、図柄制御基板80aに対して送信する処理を行う(ステップS1856)。なお、音/ランプ制御用マイクロコンピュータ100bは、演出内容指定コマンドとともに、遊技制御用マイクロコンピュータ560から受信した表示結果指定コマンドおよび変動パターンコマンドを図柄制御基板80aに転送(送信)する。そして、図柄制御基板80aの図柄制御用マイクロコンピュータ100aは、音/ランプ制御用マイクロコンピュータ100bから受信した演出内容指定コマンド、表示結果指定コマンドおよび変動パターンコマンドにもとづいて、ステップ775(演出制御プロセス処理)と同様の処理に従って、飾り図柄の可変変動および遊技演出を行う。この場合、図柄制御用マイクロコンピュータ100aは、受信した演出内容指定コマンドにもとづいて、VDP109に、可変表示装置9を用いた予告演出を行わせる。
なお、ステップS1856において、音/ランプ制御用マイクロコンピュータ100bは、演出内容指定コマンドを生成するのでなく、決定した演出内容を、変動パターンコマンドや表示結果指定コマンドに付加してもよい。例えば、音/ランプ制御用マイクロコンピュータ100bは、コマンドのヘッダ部分に演出内容を示す値を付加することによって、演出内容を変動パターンコマンドや表示結果指定コマンドに付加する。この場合、音/ランプ制御用マイクロコンピュータ100bは、変動パターンコマンドのみのヘッダ部分に演出内容を示す値を付加してもよく、表示結果指定コマンドのみのヘッダ部分に演出内容を示す値を付加してもよい。さらに、音/ランプ制御用マイクロコンピュータ100bは、変動パターンコマンドおよび表示結果指定コマンドの両方のヘッダ部分に演出内容を示す値を付加してもよい。そして、音/ランプ制御用マイクロコンピュータ100bは、演出内容を付加した変動パターンコマンドや表示結果指定コマンドを、図柄制御基板80aに対して送信する処理を行ってもよい。なお、予告演出を行わない場合には、音/ランプ制御用マイクロコンピュータ100bは、遊技制御用マイクロコンピュータ560から受信した変動パターンコマンドおよび表示結果指定コマンドを、そのまま図柄制御用マイクロコンピュータ100aに転送することになる。
また、この実施の形態では、ステップS1856で送信テーブルのアドレスがセットされたことにもとづいて、音/ランプ制御メイン処理におけるコマンド制御処理(ステップS790参照)が実行されることによって、演出内容指定コマンドが図柄制御基板80aに送信される。
また、この実施の形態では、ランプ制御実行データを含む音/ランプ制御側プロセスデータが、音/ランプ制御基板80bにおけるROMに格納されている。また、表示制御実行データを含む図柄制御側プロセスデータが、図柄制御基板80aにおけるROMに格納されている。この実施の形態では、ステップS1856において、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容に応じて生成した演出内容指定コマンドを図柄制御用マイクロコンピュータ100aに送信する。この場合、音/ランプ制御用マイクロコンピュータ100bは、変動パターンや変動時間を含む演出内容指定コマンドを図柄制御用マイクロコンピュータ100aに送信する。そして、図柄制御用マイクロコンピュータ100aは、受信した演出内容指定コマンドにもとづいてROMから表示制御実行データを読み出し、読み出した表示制御実行データにもとづいて可変表示装置9を用いて演出を行う。
また、ステップS1856で決定した演出内容を変動パターンコマンドや表示結果指定コマンドに付加する場合、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容(例えば、背景色や登場するキャラクタ)を付加した変動パターンコマンドや表示結果指定コマンドを、図柄制御用マイクロコンピュータ100aに送信してもよい。そして、図柄制御用マイクロコンピュータ100aは、受信した変動パターンコマンドや表示結果指定コマンドにもとづいてROMから表示制御実行データを読み出し、読み出した表示制御実行データにもとづいて可変表示装置9を用いて演出を行ってもよい。
また、表示制御実行データおよびランプ制御実行データの両方を含むプロセスデータが、音/ランプ制御基板80bにおけるROMに格納されていてもよい。この場合、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容に応じた表示制御実行データをROMから抽出し、生成した演出内容指定コマンドとともに、図柄制御用マイクロコンピュータ100aに送信してもよい。そして、図柄制御用マイクロコンピュータ100aは、受信した表示制御実行データにもとづいて、可変表示装置9を用いて演出を行ってもよい。
また、表示制御実行データおよびランプ制御実行データの両方を含むプロセスデータが、音/ランプ制御基板80bにおけるROMに格納する場合に、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容に応じた表示制御実行データをROMから抽出し、決定した演出内容を付加した変動パターンコマンドや表示結果指定コマンドとともに、図柄制御用マイクロコンピュータ100aに送信してもよい。そして、図柄制御用マイクロコンピュータ100aは、受信した表示制御実行データにもとづいて、可変表示装置9を用いて演出を行ってもよい。
なお、音/ランプ制御用マイクロコンピュータ100bは、ステップS1866,S1867と同様の処理に従って、演出変更決定用乱数にもとづいて、現在の遊技状態(高ベース状態であるか低ベース状態であるか)に関わらず、演出モードを変更するか否かを決定するようにしてもよい。また、音/ランプ制御用マイクロコンピュータ100bは、演出モードを変更すると決定すると、ステップS1868と同様の処理に従って、変更後演出決定用乱数にもとづいて、いずれの演出モードに変更するかを決定する。そして、音/ランプ制御用マイクロコンピュータ100bは、変更後の演出モードに対応する演出内容を含む演出内容指定コマンドを、図柄制御用マイクロコンピュータ100aに送信するようにしてもよい。
以上に説明したように、この実施の形態では、音/ランプ制御用マイクロコンピュータ100bが、変動パターンコマンドにもとづいて、演出内容(予告演出を行うか否かや、予告演出の種類)を独自に決定する。また、音/ランプ制御用マイクロコンピュータ100bによって決定された演出内容に従って、図柄制御用マイクロコンピュータ100aが可変表示装置9を用いて遊技演出を実行する。そのため、遊技制御用マイクロコンピュータ560が演出内容を決定しなくて済む。従って、遊技制御用マイクロコンピュータ560の処理負担を軽減することができる。
なお、この実施の形態では、詳細には言及していないが、音・ランプ制御用マイクロコンピュータ100bは、演出内容に加えて飾り図柄の変動時間の特定も行う。この場合、音/ランプ制御用マイクロコンピュータ100bは、例えば、第1の実施の形態で示したステップS1861〜S1864と同様の処理に従って、表示結果指定コマンドにもとづいて、飾り図柄のずれ数(はずれ図柄)を特定する。また、音/ランプ制御用マイクロコンピュータ100bは、変動パターンコマンドに示される基本時間と、特定した飾り図柄のずれ数とにもとづいて、飾り図柄の変動時間を特定する。そして、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容(予告演出を行うか否かや、予告演出の種類)に加えて、飾り図柄の変動時間を示す演出内容指定コマンドを生成し、図柄制御基板80aに送信する。なお、音/ランプ制御用マイクロコンピュータ100bは、飾り図柄の変動時間を示す飾り図柄変動時間指定コマンドを生成して、図柄制御基板80aに送信するようにしてもよい。また、図柄制御基板80aの図柄制御用マイクロコンピュータ100aは、演出内容指定コマンドを受信すると、受信した演出内容指定コマンドにもとづいて、VDP109に、可変表示装置9における飾り図柄の可変表示を実行させ、予告演出を行わせる。
また、この実施の形態では、主基板31からの演出制御コマンドを、まず音/ランプ制御基板80bで受信し、さらに音/ランプ制御基板80bから図柄制御基板80aに演出制御コマンドや演出内容指定コマンドが送出される場合を説明したが、主基板31からの演出制御コマンドを、まず図柄制御基板80aで受信するようにしてもよい。
図97は、中継基板77、音/ランプ制御基板80bおよび図柄制御基板80aの他の回路構成例を示すブロック図である。図97に示す回路構成を用いる場合、例えば、図柄制御基板80aが搭載する図柄制御用マイクロコンピュータ100aは、ステップS1851〜S1856と同様の処理に従って、変動パターンコマンドにもとづいて、演出内容(予告演出を行うか否かや、予告演出の種類)を決定する。そして、図柄制御用マイクロコンピュータ100aは、決定した演出内容に従って、VDP109に、可変表示装置9を用いた予告演出を行わせる。また、図柄制御用マイクロコンピュータ100aは、決定した演出内容を示す演出内容指定コマンドを生成して、音/ランプ制御基板80bに送信するようにしてもよい。そして、音/ランプ制御基板80bが搭載する音/ランプ制御用マイクロコンピュータ100bは、受信した演出内容指定コマンドに示される演出内容に従って、各ランプ25,28a,28b,28cの表示制御を行ったり、音出力装置27の音出力制御を行ってもよい。
また、この実施の形態では、各演出手段を別々の制御基板を用いて制御する場合として、音/ランプ制御基板80bと図柄制御基板80aとを用いる場合を説明したが、他の制御基板の組合せを用いて各演出手段を制御してもよい。例えば、音出力装置27を制御する音制御基板と、各ランプを制御するランプ制御基板と、可変表示装置9を制御する図柄制御基板とを用いて、各演出手段を制御してもよい。この場合、例えば、主基板31からの演出制御コマンドを、まず音制御基板で受信し、音制御基板が搭載する音制御用マイクロコンピュータが、受信した変動パターンコマンドにもとづいて演出内容(予告演出を行うか否かや、予告演出の種類)を決定してもよい。また、音制御用マイクロコンピュータが、表示結果指定コマンドにもとづいて飾り図柄のずれ数を特定し、変動パターンコマンドに示される基本時間と、飾り図柄のずれ数とにもとづいて、飾り図柄の変動時間を特定してもよい。そして、音制御用マイクロコンピュータは、決定した演出内容や変動時間を含むコマンドを生成し(または演出制御コマンドに付加し)、ランプ制御基板や図柄制御基板に送信してもよい。なお、主基板31からの演出制御コマンドを、まずランプ制御基板や図柄制御基板で受信し、ランプ制御基板や図柄制御基板が搭載するマイクロコンピュータが、演出内容を決定したり変動時間を特定してもよい。
実施の形態3.
上記に示した各実施の形態では、CPU56が通信エラー時の割込処理を他の割込処理に優先して実行する場合を説明したが、通信エラー時の割込処理以外の割込処理(例えば、受信時の割込処理)を優先して実行するようにしてもよい。以下、受信時の割込処理を優先して実行する第3の実施の形態を説明する。
なお、本実施の形態において、第1の実施の形態と同様の構成および処理をなす部分についてはその詳細な説明を省略し、主として第1の実施の形態と異なる部分について説明する。
この実施の形態では、CPU56は、図39および図40と同様の処理に従ってメイン処理を実行する。メイン処理において、ステップS1からステップS15aまでの処理(ステップS80の処理、ステップS91からステップS93までの処理を含む)は、第1の実施の形態で示したそれらの処理と同様である。また、ステップS16からステップS19までの処理は、第1の実施の形態で示したそれらの処理と同様である。
ステップS15aのシリアル通信回路設定処理を実行し、シリアル通信回路505を初期設定すると、CPU56は、シリアル通信回路505の割り込み要求に応じて実行する割込処理の優先順位を初期設定する(ステップS15b)。この実施の形態では、あらかじめ指定情報においてシリアル通信回路505が受信データを受信したことを割込原因とする割込処理が指定されている。そして、CPU56は、指定情報にもとづいて、受信データを受信したことを割込原因とする割込処理を優先して実行するように初期設定する。すなわち、この実施の形態では、図41に示す割込処理優先順位テーブルにおいて、シリアル通信回路505において通信エラーが発生したことを割込原因とする割込処理を優先して実行するようにデフォルトで設定されているが、CPU56は、ユーザによって設定された指定情報にもとづいて、受信データを受信したことを割込原因とする割込処理を優先して実行するように割込処理の優先順位を変更する。この場合、例えば、CPU56は、受信データを受信したことを割込原因とする割込処理を優先して実行する旨を示す受信時割込優先実行フラグをセットする。
遊技制御用マイクロコンピュータ560のCPU56は、メイン処理におけるステップS17からステップS19までのループ処理において、割り込み許可状態である間にシリアル通信回路505からの割り込み要求があると、図73に示す処理に従って、シリアル通信回路505が割り込み要求を行った割り込み原因に応じた割り込み処理を実行する。
CPU56は、いずれの割込処理を優先して実行する旨が初期設定されているか否かを判断する。例えば、CPU56は、いずれの割込処理を優先して実行する旨のフラグがセットされているか否かを判断する。この実施の形態では、CPU56は、受信時割込優先実行フラグがセットされていることにもとづいて、受信データを受信したことを割込原因とする割込処理を優先して実行する。
シリアル通信回路505から割り込み要求があると、CPU56は、シリアル通信回路505のステータスレジスタA705の各ビットを確認し、割り込み原因を特定する。この実施の形態では、CPU56は、ステータスレジスタA705のビット5を優先的に確認し、割り込み原因を特定する。すなわち、CPU56は、シリアル通信回路505が受信データを受信したことを割り込み原因として割り込み要求したか否かを、他の割り込み原因(通信エラーの発生または送信データの送信完了)に優先して判断する。ステータスレジスタAのビット5が「1」であると判断すると、CPU56は、割り込み原因がシリアル通信回路505が受信データを受信したことであると特定する。
割り込み原因がシリアル通信回路505が受信データを受信したことであると特定すると、CPU56は、図73(b)に示す受信時割込処理を優先して実行する。この場合、CPU56は、シリアル通信回路505が受信データを受信していることを示す受信時割込フラグをセットする(ステップS42)。
以上に説明したように、この実施の形態では、遊技制御用マイクロコンピュータ560は、メイン処理において、割込許可状態に設定する前に、割込処理の優先順位を初期設定する。そのため、複数種類の割込原因に対応する割込処理のうち、優先して実行させるべき割込処理を確実に実行することができる。また、優先して実行させる割込処理を初期設定できるので、遊技制御用マイクロコンピュータ560に実行させるプログラムの自由度を向上させることができる。
例えば、賞球処理における受信処理(例えば、ステップS1234の賞球ACK待ち処理)において、ステータスレジスタA705の各ビットを確認し、シリアル通信回路505で通信エラーが発生しているか否かを判断するようなプログラムを組んでいる場合、通信エラーの発生を割込原因とする割込処理を実行しなくても、通信エラーの発生時にコマンドを受信しないように制御できる。従って、受信処理において通信エラーの発生を確認するようなプログラムを組んでいる場合には、データを受信したことを割込原因とする割込処理を優先して実行することによって、遊技制御用マイクロコンピュータ560のCPU56に実行させるプログラムの自由度を向上させることができる。
なお、本実施の形態では、「シリアル通信回路505がCPU56に受信時割り込み要求を行う」という表現を用いたが、具体的には、割込要因(本例では、データ受信)が発生したときに、シリアル通信回路505の割り込み制御回路714がステータスレジスタA705の対応するビット(データ受信に対応するビット5)に設定値をセットするとともに、CPU56に割り込み信号を出力することによって、シリアル通信回路505による受信時割り込み要求が行われる。
実施の形態4.
上記に示した各実施の形態では、CPU56が、シリアル通信回路505からの割り込み要求に対応する割込処理のうちいずれの割込処理に優先して実行するかを設定または変更する場合を説明したが、さらにタイマ割込とシリアル通信回路505からの割り込み要求とが同時に発生した場合に、いずれの割込処理を優先して実行するかを設定または変更できるようにしてもよい。以下、タイマ割込とシリアル通信回路505からの割り込み要求とのいずれを優先して割込処理を実行するかを設定または変更する第4の実施の形態を説明する。
なお、本実施の形態において、第1の実施の形態と同様の構成および処理をなす部分についてはその詳細な説明を省略し、主として第1の実施の形態と異なる部分について説明する。
まず、第4の実施の形態におけるメイン処理について説明する。図98は、第4の実施の形態におけるメイン処理を示すフローチャートである。なお、メイン処理のうち、ステップS1からステップS6まで(ステップS80を含む)の処理は、第1の実施の形態で示した処理と同様である(図39参照)。また、図98に示すメイン処理において、ステップS7からステップS15aまでの処理(ステップS91からステップS93までの処理を含む)は、第1の実施の形態で示したそれらの処理と同様である。
ステップS15aのシリアル通信回路設定処理を実行し、シリアル通信回路505を初期設定すると、CPU56は、タイマ割込の発生時に実行するタイマ割込処理、およびシリアル通信回路505の割り込み要求に応じて実行する割込処理の優先順位を初期設定する(ステップS15c)。
例えば、CPU56は、各割込処理のデフォルトの優先順位を含む所定の割込処理優先順位テーブルに従って、各割込処理の優先順位を初期設定する。図99は、第4の実施の形態における割込処理優先順位テーブルの例を示す説明図である。この実施の形態では、CPU56は、図99に示す割込処理優先順位テーブルに従って、シリアル通信回路505において通信エラーが発生したことを割込原因とする割込処理を優先して実行するように初期設定する。すなわち、CPU56は、シリアル通信回路505からの割り込み要求による割込処理(本例では、通信エラー割込処理)を、タイマ割込処理に優先して実行するようにデフォルトで設定する。この場合、例えば、CPU56は、通信エラーが発生したことを割込原因とする割込処理を優先して実行する旨を示す通信エラー時割込優先実行フラグをセットする。
また、この実施の形態では、ステップS15cにおいて、図99に示す割込処理優先順位テーブルに従って割込処理の優先順位の初期設定が行われることによって、タイマ割込とシリアル通信回路505からの割り込み要求とが同時に発生した場合、シリアル通信回路505からの割り込み要求に対する割込処理を優先して行うことになる。
また、ユーザによって各割込処理のデフォルトの優先順位を変更することもできる。例えば、遊技制御用マイクロコンピュータ560は、ユーザ(例えば、遊技機の製作者)によって設定された割込処理を指定する指定情報を、あらかじめROM54の所定の記憶領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された指定情報に従って、割込処理の優先順位を設定する。
例えば、あらかじめ記憶された指定情報においてタイマ割込処理が指定されている場合を説明する。この場合、CPU56は、指定情報にもとづいて、タイマ割込処理を、シリアル通信回路505からの割り込み要求に対する各割込処理(通信エラー時割込処理、受信時割込処理および送信完了割込処理)に優先して実行するように初期設定する。すなわち、図99に示す割込処理優先順位テーブルにおいて、シリアル通信回路505において通信エラーが発生したことを割込原因とする割込処理を優先して実行するようにデフォルトで設定されているが、CPU56は、ユーザによって設定された指定情報にもとづいて、タイマ割込処理を優先して実行するように割込処理の優先順位を変更する。この場合、例えば、CPU56は、タイマ割込処理を優先して実行する旨を示すタイマ割込優先実行フラグをセットする。
また、ステップS16からステップS19までの処理は、第1の実施の形態で示したそれらの処理と同様である。ステップS19で割込許可状態に設定されると、次にステップS17の処理が実行されて割込禁止状態とされるまで、タイマ割込またはシリアル通信回路505からの割り込み要求を許可する状態となる。そして、割込許可状態に設定されている間に、タイマ割込が発生すると、遊技制御用マイクロコンピュータ560は、後述するタイマ割込処理を実行する。また、割込許可状態に設定されている間に、シリアル通信回路505から割り込み要求が発生すると、遊技制御用マイクロコンピュータ560のCPU56は、後述する各割込処理(通信エラー割込処理や、受信時割込処理、送信完了割込処理)を実行する。また、本実施の形態では、ステップS17からステップS19までのループ処理の前にステップS15cを実行することによって、タイマ割込または割り込み要求を許可する状態に設定される前に、タイマ割込処理およびシリアル通信回路505からの割り込み要求による割込処理の優先順位を設定または変更する処理が行われる。
遊技制御用マイクロコンピュータ560のCPU56は、メイン処理におけるステップS17からステップS19までのループ処理において、割り込み許可状態である間にシリアル通信回路505からの割り込み要求があると、図73に示す処理に従って、シリアル通信回路505が割り込み要求を行った割り込み原因に応じた割り込み処理を実行する。また、CPU56は、メイン処理におけるステップS17からステップS19までのループ処理において、タイマ割込が発生すると、図47に示す処理に従ってタイマ割込処理を実行する。
この実施の形態では、タイマ割込とシリアル通信回路505からの割り込み要求が同時に発生した場合、CPU56は、いずれの割込処理を優先して実行する旨が初期設定されているか否かを判断する。例えば、CPU56は、いずれの割込処理を優先して実行する旨のフラグがセットされているか否かを判断する。例えば、CPU56は、タイマ割込優先実行フラグがセットされていることにもとづいて、タイマ割込処理を優先して実行する。
以上に説明したように、この実施の形態では、CPU56は、メイン処理において、割込許可状態に設定する前に、タイマ割込処理、およびシリアル通信回路505からの割り込み要求に対応する各割込処理の優先順位を初期設定する。そのため、タイマ割込処理や複数種類の割込原因に対応する割込処理のうち、優先して実行させるべき割込処理を確実に実行することができる。また、優先して実行させる割込処理を初期設定できるので、遊技制御用マイクロコンピュータ560のCPU56に実行させるプログラムの自由度を向上させることができる。
なお、上述した実施の形態では、以下の(1)〜(6)に示すような遊技機の特徴的構成も示されている。
(1)遊技制御用マイクロコンピュータは、数値更新手段が更新可能な数値データの所定の範囲が異なる乱数回路(例えば、12ビット乱数回路503aと16ビット乱数回路503b)を複数内蔵し、乱数回路初期設定手段は、初期設定において、遊技制御用マイクロコンピュータが内蔵する複数の乱数回路の中から使用可能な乱数回路を設定し(例えば、遊技制御用マイクロコンピュータ560がステップS151を実行する)、乱数回路初期設定手段により使用可能と設定された乱数回路以外の乱数回路の機能を停止させる乱数停止手段(例えば、遊技制御用マイクロコンピュータ560が、ステップS151で使用する乱数回路503を設定すると、使用しないように設定した方の乱数回路のカウンタ521がカウント値Cを更新しないように制御する部分)を備えるように構成されていてもよい。そのような構成によれば、更新可能な数値データの所定の範囲が異なる複数の乱数回路について、それぞれ使用可能とするか否かを設定するように構成されているので、使用する乱数回路だけを設定することによって、生成する乱数の値の範囲を適切に設定することができ、無駄に乱数を更新しないで済む。
(2)乱数回路初期設定手段は、初期設定において、数値データが更新される所定の範囲の最大値としての値が設定される数値最大値レジスタ(例えば、乱数最大値設定レジスタ535)に、数値更新手段により更新可能な数値データの範囲内において所定の最大値(例えば、乱数最大値)を設定する最大値設定手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS152を実行する部分)と、最大値設定手段により設定された所定の最大値が、所定の下限値(例えば、12ビット乱数回路503aを設定した場合における「256」)以下であるか否かを判定する設定値判定手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS153bを実行する部分)と、設定値判定手段によって数値最大値レジスタに設定された所定の最大値が所定の下限値以下であると判定されたときに、数値最大値レジスタに、数値更新手段により更新可能な数値データの範囲内の所定値(例えば、12ビット乱数回路503aを設定した場合における「4095」)を設定しなおす最大値再設定手段(例えば、遊技制御用マイクロコンピュータ560におけるステップS153cを実行する部分)とを含むように構成されていてもよい。そのような構成によれば、数値データが更新される所定の範囲の最大値としての値をあらかじめ設定するように構成されているので、タイマ割込処理の実行中に用いる乱数の範囲より大きい値の乱数を生成してしまうことを防止でき、乱数回路および遊技制御用マイクロコンピュータの処理負担を軽減することができる。また、設定された所定の最大値が所定の下限値以下である場合には、所定の最大値を設定しなおすように構成されているので、遊技制御用マイクロコンピュータの誤動作や、無線信号を用いた取り込み信号を遊技機に対して発生させるなどの行為によって、過度に小さい値が乱数の最大値として設定されてしまうことを防止することができる。
(3)遊技機は、所定周期のクロック信号を生成し、乱数回路に出力するクロック信号生成手段(例えば、クロック回路501)を備え、数値更新手段は、クロック信号を所定回数入力したことを条件に、数値データを更新し(例えば、クロック信号出力回路524が基準クロック信号CLKを16分周した乱数発生用クロック信号SIを入力すると、カウンタ521がカウント値Cを更新する部分)、乱数回路初期設定手段は、数値更新手段が数値データを更新する条件であるクロック信号の入力回数を設定する(例えば、遊技制御用マイクロコンピュータ560がステップS156を実行する)ように構成されていてもよい。そのような構成によれば、数値更新手段が数値データを更新する条件であるクロック信号の入力回数をあらかじめ設定するように構成されているので、乱数回路が生成する乱数のランダム性をより向上させることができる。
(4)遊技制御用マイクロコンピュータは、乱数回路初期設定手段によって設定される数値データの所定の初期値を、マイコン識別情報を用いて演算する数値演算手段(例えば、遊技用マイクロコンピュータにおけるステップS154bの処理を実行する際に、遊技制御用マイクロコンピュータ560のIDナンバと所定値とを演算して(例えば、IDナンバに所定値を加算して)演算値を求める部分)を含み、乱数回路初期設定手段は、数値演算手段による演算によって算出された値にもとづいて初期値を設定する(例えば、遊技用マイクロコンピュータがステップS154bの処理を実行する際に、求めた演算値をカウント値の初期値として設定する)ように構成されていてもよい。そのような構成によれば、マイコン識別情報を用いた演算によって算出された値にもとづいて初期値を設定するように構成されているので、乱数回路が生成する乱数のランダム性をより向上させることができる。そのため、マイコン識別情報を見ただけでは乱数の初期値を認識しにくくすることができ、セキュリティ性を向上させることができる。
(5)遊技機は、遊技領域における入賞領域に遊技媒体が入賞(例えば、特別可変入賞球装置20への遊技球の入賞)したことを検出して入賞検出信号(例えば、カウントスイッチ23の検出信号)を出力する入賞検出手段(例えば、カウントスイッチ23)を備え、乱数回路は、入賞検出手段からの入賞検出信号が入力されたことにもとづいて、数値更新手段が更新する数値データを乱数記憶手段に記憶させるためのラッチ信号を出力するラッチ信号出力手段(例えば、ラッチ信号生成回路533)を含み、ラッチ信号出力手段は、入賞検出手段から入賞検出信号が所定期間継続して入力されたことを条件(例えば、タイマ回路534が所定期間(例えば、3ms)を計測したときに、乱数値読取信号出力回路526から出力される乱数値読取信号を入力したこと)に、ラッチ信号を出力する(例えば、ラッチ信号生成回路533が、乱数値読取信号出力回路526から出力される乱数値読取信号を、反転回路532から出力される反転クロック信号SI2の立ち上がりエッヂに同期させて、ラッチ信号SLとして乱数値記憶回路531に出力する部分)ように構成されていてもよい。そのような構成によれば、ラッチ信号が出力されたことにもとづいて乱数記憶手段が乱数を記憶するにあたって、所定期間に亘って継続して入賞検出信号が入力されたことを条件にラッチ信号を出力するように構成されているので、ノイズの発生を入力検出信号の入力と誤認識してラッチ信号を出力し、生成した乱数を記憶してしまうことを防止できる。また、無線信号を用いた取り込み信号を遊技機に対して発生させるなどの行為によってラッチ信号が出力され、不正なラッチ信号によって生成された乱数を記憶させられてしまう可能性を低減することができる。
(6)乱数読出手段は、タイマ割込処理実行手段によってタイマ割込処理が所定回数実行される間継続して、入賞検出手段から入賞検出信号が入力されたことを条件(例えば、遊技制御用マイクロコンピュータ560によるステップS322の処理の実行の際に、割込回数カウンタに示されるタイマ割込処理の実行回数が所定回数(例えば、3回)に達していること)に、乱数記憶手段が記憶する乱数値を読み出し(例えば、CPU56が、乱数回路503の乱数値記憶回路531から、乱数値として記憶されているランダムRの値を読み出し)、所定期間(例えば、3ms)は所定回数のタイマ割込処理が実行される期間(例えば、6ms)よりも短いように構成されていてもよい。そのような構成によれば、乱数記憶手段から乱数を読み出すにあたって、タイマ割込処理が所定回数実行される間継続して入賞検出信号が入力されたことを条件に乱数記憶手段から乱数を読み出すように構成されているので、乱数を読み出してから、乱数記憶手段に記憶される乱数の値が更新される前に再び乱数を読み出してしまうことを防止することができる。そのため、前回乱数記憶手段から読み出した乱数と同じ値の乱数を再び読み出してしまうことを防止することができる。
本発明は、パチンコ遊技機およびスロット機などの遊技機に適用可能であり、特に、変動パターンコマンドや表示結果指定コマンドにもとづいて、可変表示装置における飾り図柄の可変表示や遊技演出を行う遊技機に好適に適用できる。
パチンコ遊技機を正面からみた正面図である。 ガラス扉枠を取り外した状態での遊技盤の前面を示す正面図である。 遊技機を裏面から見た背面図である。 遊技制御基板(主基板)の構成例を示すブロック図である。 中継基板および演出制御基板の回路構成例を示すブロック図である。 主基板における回路構成および主基板から演出制御基板に送信される演出制御コマンドの信号線を示すブロック図である。 乱数回路の構成例を示すブロック図である。 更新規則選択レジスタの例を示す説明図である。 更新規則メモリの例を示す説明図である。 カウント値順列変更回路が、カウンタが出力するカウント値の順列を変更する場合の例を示す説明図である。 カウント値順列変更レジスタの例を示す説明図である。 乱数最大値設定レジスタの例を示す説明図である。 周期設定レジスタの例を示す説明図である。 カウント値更新レジスタの例を示す説明図である。 乱数値取込レジスタの例を示す説明図である。 乱数更新方式選択レジスタ、および乱数更新方式選択レジスタに書き込まれる乱数更新方式選択データの一例の説明図である。 乱数回路起動レジスタの例を示す説明図である。 乱数値記憶回路の一構成例を示す回路図である。 乱数値記憶回路に各信号が入力されるタイミング、および乱数値記憶回路が各信号を出力するタイミングを示すタイミングチャートである。 シリアル通信回路の送信部の構成例を示すブロック図である。 シリアル通信回路の受信部の構成例を示すブロック図である。 シリアル通信が各制御基板が搭載するマイクロコンピュータと送受信するデータのデータフォーマットの例を示す説明図である。 ボーレートレジスタの例を示す説明図である。 制御レジスタAおよび通信フォーマット設定データの例を示す説明図である。 制御レジスタBおよび割り込み要求設定データの例を示す説明図である。 ステータスレジスタAおよびステータス確認データの例を示す図である。 ステータスレジスタBおよびステータス確認データの例を示す図である。 制御レジスタCおよびエラー割り込み要求設定データの例を示す説明図である。 シリアル通信回路が備えるデータレジスタの例を示す説明図である。 遊技制御用マイクロコンピュータにおける記憶領域のアドレスマップの一例を示す説明図である。 ユーザプログラム管理エリアにおけるアドレスマップの一例を示す説明図である。 初期値変更方式設定データの一例を示す説明図である。 ユーザプログラムの構成例を示す説明図である。 乱数回路設定プログラムの構成例を示す説明図である。 第1の乱数更新方式が選択されている場合に、ランダムRの値を更新させたりランダムRの値を読出したりする動作を示す説明図である。 第2の乱数更新方式が選択されている場合に、ランダムRの値の更新させたりランダムRの値を読出したりする動作を示す説明図である。 遊技制御用マイクロコンピュータが備える各メモリを示す説明図である。 大当り判定用テーブルメモリの例を示す説明図である。 遊技制御用マイクロコンピュータが実行するメイン処理を示すフローチャートである。 遊技制御用マイクロコンピュータが実行するメイン処理を示すフローチャートである。 割込処理優先順位テーブルの例を示す説明図である。 乱数回路設定処理を示すフローチャートである。 乱数最大値再設定処理を示すフローチャートである。 初期値変更処理を示すフローチャートである。 乱数回路に各信号が入力されるタイミング、および乱数回路内で各信号が生成されるタイミングを示すタイミングチャートである。 シリアル通信回路設定処理を示すフローチャートである。 タイマ割込処理を示すフローチャートである。 各乱数を示す説明図である。 乱数回路初期値更新処理を示すフローチャートである。 カウント値順列変更処理を示すフローチャートである。 特別図柄プロセス処理の一例を示すフローチャートである。 変動パターンの一例を示す説明図である。 演出制御コマンドの内容の一例を示す説明図である。 状態判定テーブルの例を示す説明図である。 状態判定テーブルの例を示す説明図である。 状態判定テーブルの例を示す説明図である。 状態判定テーブルの例を示す説明図である。 始動口スイッチ通過処理を示すフローチャートである。 特別図柄通常処理を示すフローチャートである。 特別図柄通常処理を示すフローチャートである。 特別図柄通常処理を示すフローチャートである。 特別図柄停止図柄設定処理を示すフローチャートである。 変動時間設定処理を示すフローチャートである。 特別図柄停止処理の一例を示すフローチャートである。 大当り終了処理の一例を示すフローチャートである。 遊技状態が変化する様子の一例を示す説明図である。 遊技状態が変化する様子の他の例を示す説明図である。 遊技制御手段から払出制御手段に対して出力される制御信号の内容の一例を示す説明図である。 遊技制御手段と払出制御手段との間で送受信される制御コマンドの内容の一例を示す説明図である。 制御信号および制御コマンドの送受信に用いられる信号線等を示すブロック図である。 払出制御信号および払出制御コマンドの出力の仕方の一例を示すタイミング図である。 賞球処理の一例を示すフローチャートである。 シリアル通信回路が割り込み要求に対して行う割り込み処理の一例を示す流れ図である。 賞球個数テーブルの例を示す説明図である。 賞球個数加算処理を示すフローチャートである。 賞球制御処理を示すフローチャートである。 賞球送信待ち処理を示すフローチャートである。 賞球個数コマンド送信処理を示すフローチャートである。 賞球送信完了待ち処理を示すフローチャートである。 賞球ACK待ち処理を示すフローチャートである。 賞球再送信処理を示すフローチャートである。 賞球異常検出処理を示すフローチャートである。 主制御通信処理を示すフローチャートである。 演出制御コマンドの構成を示す説明図である。 演出制御コマンドの送出の仕方を示す説明図である。 演出制御用マイクロコンピュータが実行するメイン処理を示すフローチャートである。 演出制御処理で用いる各乱数を示す説明図である。 コマンド解析処理の具体例を示すフローチャートである。 演出制御プロセス処理を示すフローチャートである。 演出制御プロセス処理における飾り図柄通常処理を示すフローチャートである。 演出制御プロセス処理における飾り図柄変動開始処理を示すフローチャートである。 演出制御プロセス処理における飾り図柄変動中処理を示すフローチャートである。 第2の実施の形態における中継基板、音/ランプ制御基板および図柄制御基板の回路構成例を示すブロック図である。 第2の実施の形態における音/ランプ制御用マイクロコンピュータが実行するメイン処理を示すフローチャートである。 第2の実施の形態における音/ランプ制御処理で用いる各乱数を示す説明図である。 演出内容決定処理を示すフローチャートである。 中継基板、音/ランプ制御基板および図柄制御基板の他の回路構成例を示すブロック図である。 第4の実施の形態におけるメイン処理を示すフローチャートである。 第4の実施の形態における割込処理優先順位テーブルの例を示す説明図である。
符号の説明
1 パチンコ遊技機
9 可変表示装置
14 始動入賞口
15 可変入賞球装置
31 遊技制御基板(主基板)
37 払出制御基板
56 CPU
80 演出制御基板
80a 図柄制御基板
80b 音/ランプ制御基板
100 演出制御用マイクロコンピュータ
100a 図柄制御用マイクロコンピュータ
100b 音/ランプ制御用マイクロコンピュータ
101 演出制御用CPU
101a 図柄制御用CPU
101b 音/ランプ制御用CPU
503a 12ビット乱数回路
503b 16ビット乱数回路
505 シリアル通信回路
560 遊技制御用マイクロコンピュータ

Claims (1)

  1. 各々を識別可能な複数種類の識別情報を可変表示可能な可変表示手段を備え、あらかじめ定められている可変表示の実行条件が成立した後、可変表示の開始条件の成立にもとづいて識別情報の可変表示を開始し、前記識別情報の可変表示の表示結果が特定の表示結果となったときに遊技者にとって有利な特定遊技状態に移行する遊技機であって、
    遊技の進行を制御する遊技制御処理を実行する遊技制御用マイクロコンピュータが搭載された遊技制御基板と、
    遊技演出に用いる電気部品である音出力装置又は発光体の少なくとも一方を制御する電気部品制御マイクロコンピュータが搭載された電気部品制御基板と、
    前記可変表示手段における前記識別情報の可変表示を制御し、遊技演出として前記可変表示手段に所定の演出表示を行う制御を実行する表示制御マイクロコンピュータが搭載された表示制御基板とを備え、
    前記遊技制御用マイクロコンピュータは、
    前記可変表示の開始条件が成立したときに、前記可変表示手段の前記識別情報の可変表示の表示結果を決定する表示結果決定手段と、
    前記可変表示手段における前記識別情報の可変表示の変動パターンを特定可能な変動パターンコマンドを、前記電気部品制御マイクロコンピュータに送信する遊技制御側コマンド送信手段と、
    前記表示結果決定手段によって前記識別情報の可変表示の表示結果を前記特定の表示結果とすると決定されたときに、遊技状態を前記特定遊技状態とは異なる遊技者にとって有利な状態である特定有利状態に移行させるための条件である特定移行条件が成立するか否かを判定する特定移行条件判定手段と、
    前記特定移行条件判定手段によって前記特定移行条件が成立すると判定されたことにもとづいて、前記特定遊技状態が終了した後に遊技状態を前記特定有利状態に移行制御する遊技状態移行制御手段とを含み、
    前記電気部品制御マイクロコンピュータは、
    前記遊技制御用マイクロコンピュータから受信した変動パターンコマンドにもとづいて、遊技演出の内容を決定する演出内容決定手段と、
    前記演出内容決定手段が決定した遊技演出の内容を特定可能なコマンドを、前記表示制御マイクロコンピュータに送信する電気部品制御側コマンド送信手段とを含み、
    前記表示制御マイクロコンピュータは、前記電気部品制御マイクロコンピュータから受信したコマンドに示される遊技演出の内容にもとづいて、前記可変表示手段に前記所定の演出表示を行うことによって遊技演出を制御し、
    前記遊技状態移行制御手段は、
    前記特定移行条件判定手段によって、前記特定移行条件として、前記特定有利状態のうち、前記特定移行条件の成立する以前に比べて前記識別情報の可変表示の表示結果を前記特定の表示結果とする確率を向上させた状態である高確率状態に移行させる高確率移行条件が成立したと判定されたことにもとづいて、前記特定有利状態として遊技状態を前記高確率状態に移行制御する高確率状態移行制御手段と、
    前記特定移行条件判定手段によって、前記特定移行条件として、前記特定有利状態のうち、前記特定移行条件の成立する以前に比べて前記可変表示の実行条件が成立し易い状態である高成立状態に移行させる高成立条件が成立したと判定されたことにもとづいて、前記特定有利状態として遊技状態を前記高成立状態に移行制御する高成立状態移行制御手段とを含み、
    前記遊技状態移行制御手段により、いずれの遊技状態に移行制御されているかを判定する遊技状態判定手段を更に備え、
    前記特定移行条件判定手段は、
    前記遊技状態判定手段により、遊技状態が前記高確率状態および前記高成立状態の両方に移行制御されていると判定されたときと、遊技状態が前記高確率状態のみに移行制御されていると判定されたときとで、前記高確率状態および前記高成立状態の両方に移行させるか、前記高確率状態のみに移行させるかが異なる割合で設定されたテーブルを用いた抽選処理を行うことにより、前記高確率移行条件および前記高成立条件の両方又は前記高確率移行条件のみが成立するかを判定する
    ことを特徴とする遊技機。
JP2005303542A 2005-10-18 2005-10-18 遊技機 Expired - Fee Related JP4762666B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005303542A JP4762666B2 (ja) 2005-10-18 2005-10-18 遊技機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005303542A JP4762666B2 (ja) 2005-10-18 2005-10-18 遊技機

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010062716A Division JP4975843B2 (ja) 2010-03-18 2010-03-18 遊技機

Publications (3)

Publication Number Publication Date
JP2007111130A JP2007111130A (ja) 2007-05-10
JP2007111130A5 JP2007111130A5 (ja) 2010-04-30
JP4762666B2 true JP4762666B2 (ja) 2011-08-31

Family

ID=38093866

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005303542A Expired - Fee Related JP4762666B2 (ja) 2005-10-18 2005-10-18 遊技機

Country Status (1)

Country Link
JP (1) JP4762666B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5432498B2 (ja) * 2008-10-28 2014-03-05 株式会社三共 遊技機
JP5581549B2 (ja) * 2010-08-05 2014-09-03 株式会社ソフイア 遊技機
JP5844521B2 (ja) * 2010-12-28 2016-01-20 株式会社ソフイア 遊技機
JP2012139372A (ja) * 2010-12-28 2012-07-26 Sophia Co Ltd 遊技機
JP5162694B2 (ja) * 2011-08-22 2013-03-13 株式会社ソフイア 遊技機
JP5991760B2 (ja) * 2013-09-30 2016-09-14 サミー株式会社 ぱちんこ遊技機

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004033632A (ja) * 2002-07-05 2004-02-05 Sankyo Kk 遊技機
JP2004209219A (ja) * 2002-12-17 2004-07-29 Heiwa Corp パチンコ機
JP4526238B2 (ja) * 2003-04-21 2010-08-18 株式会社三共 遊技機
JP4570335B2 (ja) * 2003-04-25 2010-10-27 株式会社三共 遊技機
JP4454957B2 (ja) * 2003-04-30 2010-04-21 株式会社三共 遊技機
JP2005073917A (ja) * 2003-08-29 2005-03-24 Kpe Inc 弾球遊技機
JP2006149632A (ja) * 2004-11-29 2006-06-15 Aruze Corp 遊技機およびシミュレーションプログラム

Also Published As

Publication number Publication date
JP2007111130A (ja) 2007-05-10

Similar Documents

Publication Publication Date Title
JP4762664B2 (ja) 遊技機
JP4611213B2 (ja) 遊技機
JP4762666B2 (ja) 遊技機
JP2006296958A (ja) 遊技機
JP2007202770A (ja) 遊技機
JP4874656B2 (ja) 遊技機
JP4394081B2 (ja) 遊技機
JP4374414B2 (ja) 弾球遊技機
JP4777009B2 (ja) 遊技機
JP4975843B2 (ja) 遊技機
JP4975874B2 (ja) 遊技機
JP4562441B2 (ja) 遊技機
JP4772442B2 (ja) 遊技機
JP4762645B2 (ja) 遊技機
JP4343181B2 (ja) 遊技機
JP4879533B2 (ja) 遊技機
JP4874655B2 (ja) 遊技機
JP4762646B2 (ja) 遊技機
JP4772443B2 (ja) 遊技機
JP4879534B2 (ja) 遊技機
JP4884745B2 (ja) 遊技機
JP4772444B2 (ja) 遊技機
JP4777010B2 (ja) 遊技機
JP4656878B2 (ja) 遊技機
JP4547200B2 (ja) 遊技機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070723

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101130

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110531

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110608

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4762666

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees