以下では、本発明に係る遊技機の一実施形態を示すパチスロについて、図面を参照しながら説明する。
<機能フロー>
まず、図1を参照して、本発明の一実施形態に係るパチスロの機能フローについて説明する。本実施形態のパチスロでは、遊技を行うための遊技媒体としてメダルを用いる。なお、遊技媒体としては、メダル以外にも、例えば、コイン、遊技球、遊技用のポイントデータ又はトークン等を適用することもできる。
遊技者によりパチスロにメダルが投入され、スタートレバーが操作されると、予め定められた数値範囲(例えば、0〜65535)の乱数から1つの値(以下、乱数値)が抽出される。
内部抽籤手段は、抽出された乱数値に基づいて抽籤を行い、内部当籤役を決定する。内部当籤役の決定により、後述の有効ライン(入賞判定ライン)に沿って表示を行うことを許可する図柄の組合せが決定される。なお、図柄の組合せの種別としては、メダルの払い出し、再遊技の作動、ボーナスゲームの作動等といった特典が遊技者に与えられる「入賞」に係るものと、それ以外のいわゆる「ハズレ」に係るものとが設けられる。
また、スタートレバーが操作されると、複数のリールの回転が行われる。その後、遊技者により所定のリールに対応するストップボタンが押されると、リール停止制御手段は、内部当籤役とストップボタンが押されたタイミングとに基づいて、該当するリールの回転を停止する制御を行う。
パチスロでは、基本的に、ストップボタンが押されたときから規定時間(190msec)内に、該当するリールの回転を停止するように制御される。本明細書では、この規定時間内にリールの回転に伴って移動する図柄の数を「滑り駒数」と称し、規定期間が190msec(最大遅延時間)である場合には、その最大数(最大滑り駒数)を図柄4個分に定める。
リール停止制御手段は、入賞に係る図柄の組合せの表示を許可する内部当籤役が決定されているときには、通常、190msec(図柄4駒分)の規定時間内に、その図柄組合せが有効ラインに沿って極力表示されるようにリールの回転を停止させる。また、リール停止制御手段は、規定時間を利用して、内部当籤役によってその表示が許可されていない図柄の組合せが有効ラインに沿って表示されないようにリールの回転を停止させる。
上述のようにして、複数のリールの回転が全て停止されると、入賞判定手段は、有効ラインに沿って表示された図柄の組合せが、入賞に係るものであるか否かの判定を行う。そして、入賞判定手段により入賞に係る図柄の組合せであるとの判定が行われると、メダルの払い出し等の特典が遊技者に与えられる。パチスロでは、以上のような一連の流れの動作が1回の遊技(単位遊技)として行われる。
また、パチスロでは、上述した一連の動作の中で、例えば、液晶表示装置による映像の表示動作、各種ランプによる光の出力動作、スピーカによる音声の出力動作、或いは、これらの動作の組合せを利用して様々な演出が行われる。このような演出動作は次のようにして行われる。
まず、スタートレバーが操作されると、上述した内部当籤役の決定に用いられた乱数値とは別に、演出用の乱数値(以下、演出用乱数値という)が抽出される。演出用乱数値が抽出されると、演出内容決定手段は、内部当籤役に対応づけられた複数種の演出内容の中から今回実行する演出内容を抽籤により決定する。
そして、演出内容が決定されると、演出実行手段は、リールの回転開始時、各リールの回転停止時、入賞の有無の判定時等の各契機に連動して対応する演出を実行する。このように、パチスロでは、内部当籤役に対応づけられた演出内容を実行することによって、決定された内部当籤役(言い換えると、狙うべき図柄の組合せ)を知る機会又は予想する機会が遊技者に提供され、遊技者の興味の向上を図ることができる。
さらに、図1には示さないが、本実施形態のパチスロでは、演出実行手段は、演出効果をより高めるため、後述の副制御基板に接続されたスケーラ装置、タッチセンサ及びカメラ等のサブデバイスを備える。そして、副制御基板とこれらの各サブデバイスとの間におけるデータの通信動作の主従関係は、副制御基板を「主」とし、サブデバイスを「従」とする。すなわち、本実施形態では、これらの各サブデバイスの作動状況を副制御基板で管理する。
<パチスロの構造>
[全体構造]
次に、図2を参照して、本実施形態におけるパチスロの構造について説明する。なお、図2は、本実施形態のパチスロ1の外部構造を示す斜視図である。
パチスロ1は、図2に示すように、リールや回路基板等を収容したキャビネット1aと、キャビネット1aに対して開閉可能に取り付けられたフロントドア1bとを備える。なお、パチスロ1は、フロントドア1bを閉じた状態で、フロントドア1bをキャビネット1aに対してロック状態にする又はアンロック状態にするロック機構を備える。
このロック機構のロック/アンロックの切替えは、フロントドア1bに設けられたドアキー穴1cにドアキー2を挿入して、ドアキー2を回転操作することにより行われる。また、ドアキー2は、ロック機構の操作の他に、パチスロ1を電気的にリセットするリセット機能も有する。例えば、ドアキー2がドアキー穴1cに挿入された状態で、ドアキー2を右回転させることにより、フロントドア1bが開閉可能になり、ドアキー2を左回転させることにより、後述の主制御回路60(後述の図8参照)等が電気的にリセットされる。
キャビネット1aの内部には、3つのリール3L,3C,3R(変動表示手段)が設けられ、該3つのリール3L,3C,3Rは横方向(リールの回転方向と直交する方向)に一列に配置される。以下、リール3L,3C,3Rを、それぞれ左リール3L、中リール3C、右リール3Rともいう。また、各リール(表示列)は、円筒状のリール本体と、リール本体の周面(周回面)に装着された透光性のシート材とを有する。シート材の表面には、複数(例えば21個)の図柄がリール本体の周方向に沿って連続的に描かれる。なお、各リールに描かれる図柄の構成については、後述の図柄配置テーブル(後述の図31参照)を参照しながら、後で説明する。
フロントドア1bの正面中央には、液晶表示装置10が設けられる。液晶表示装置10は、貯留(クレジット)されているメダルの枚数を表示したり、入賞成立時にメダルの払出枚数を表示したりする。
また、液晶表示装置10の表示画面には、左リール3L、中リール3C、右リール3Rに描かれた図柄をそれぞれ透過表示する3つの図柄表示領域4L,4C,4R(以下、それぞれ左図柄表示領域4L、中図柄表示領域4C、右図柄表示領域4Rともいう)が生成される。すなわち、表示画面に設けられた各図柄表示領域は、リールに描かれた図柄の表示窓となる。なお、各図柄表示領域内における透過率は変更可能である。
そして、液晶表示装置10は、3つの図柄表示領域4L、4C、4Rを取り囲む所定の形状の枠画像と、後述する演出内容に応じた所定の画像を表示する。すなわち、本実施形態では、液晶表示装置10の表示画面全体を使って、映像の表示が行われ、演出が実行される。
なお、各図柄表示領域は、パチスロ1の正面側(遊技者側)から見て、対応するリールの配置領域と重畳する位置に設けられ、かつ、対応するリールより手前(遊技者側)に位置するように設けられる。それゆえ、図柄表示領域の背後に設けられた対応するリールに描かれた図柄が、図柄表示領域を介して目視することができる。
また、本実施形態では、各リールは、定速回転(例えば80回転/分)するように後述の主制御回路60(後述の図8参照)により制御され、各リール上に描かれた図柄が、対応する図柄表示領域内においてリールの回転に伴って変動する。なお、各リールは、所定の減速比を有するギアを介して対応する後述のステッピングモータ(後述の図8中のステッピングモータ49L,49C,49Rのいずれか)に接続される。そして、本実施形態では、各図柄表示領域は、その背後に設けられた対応するリールの回転が停止したとき、各リールに描かれた複数の図柄のうち、連続して配置された3つの図柄を表示できるように構成される。すなわち、各図柄表示領域の枠内には、リール毎に上段、中段及び下段の各領域が設けられ、各領域に1個の図柄を表示することができる。
ここで、図3に、液晶表示装置10の表示画面における各図柄表示領域の概略構成を示す。図3に示すように、液晶表示装置10の表示画面の左図柄表示領域4L、中図柄表示領域4C及び右図柄表示領域4Rの形成領域には、3×3の配列形態で図柄が表示される。そして、本実施形態では、3×3の配列形態で表示された図柄において、左リール3Lの左図柄表示領域4Lから右リール3Rの右図柄表示領域4Rに渡って設定された擬似的なラインを、入賞か否かの判定を行うライン(以下、有効ラインという)として定義する。
本実施形態では、5種類の有効ラインを設定する。具体的には、図3に示すように、左図柄表示領域4Lの上段領域A、中図柄表示領域4Cの中段領域E及び右図柄表示領域4Rの下段領域Iに渡って設定されたライン(クロスダウンライン)、左図柄表示領域4Lの下段領域G、中図柄表示領域4Cの下段領域H及び右図柄表示領域4Rの下段領域Iに渡って設定されたライン(ボトムライン)、左図柄表示領域4Lの下段領域G、中図柄表示領域4Cの中段領域E及び右図柄表示領域4Rの上段領域Cに渡って設定されたライン(クロスアップライン)、左図柄表示領域4Lの中段領域D、中図柄表示領域4Cの中段領域E及び右図柄表示領域4Rの中段領域Fに渡って設定されたライン(センターライン)、並びに、左図柄表示領域4Lの中段領域D、中図柄表示領域4Cの下段領域H及び右図柄表示領域4Rの上段領域Cに渡って設定されたライン(以下、RB中特殊ライン)を、有効ラインとして設定する。なお、有効ラインではないが、左図柄表示領域4Lの上段領域A、中図柄表示領域4Cの上段領域B及び右図柄表示領域4Rの上段領域Cに渡るラインを以下ではトップラインという。
本実施形態において、遊技状態がビッグボーナス状態(以下、BB遊技状態という)又はレギュラーボーナス状態(以下、RB遊技状態という)である場合には、メダルの投入枚数は2枚であり、RB中特殊ラインのみが有効ラインとして用いられる。一方、遊技状態が非ボーナス状態である場合には、センターライン、ボトムライン、クロスアップライン、クロスダウンラインの4本のラインが有効ラインとして用いられる。
なお、「レギュラーボーナス(RB)」は、いわゆる第1種特別役物と呼ばれるものであり、「ビッグボーナス(BB)」は、第1種特別役物に係る役物連続作動装置と呼ばれるものであり、「RB」を連続して作動させる。また、本実施形態では、BB遊技状態におけるメダルの投入枚数は2枚であり、RB遊技状態におけるメダルの投入枚数は3枚である。さらに、本実施形態では、BB遊技状態として、4種類の状態(後述のBB1遊技状態〜BB4遊技状態)を用意し、RB遊技状態として、2種類の状態(後述のRB1遊技状態及びRB2遊技状態)を用意する。また、本実施形態では、役物として「シングルボーナス(SB)」と呼ばれる普通役物も用意されている。
また、本実施形態のパチスロ1は、液晶表示装置10による演出効果を高めるため、液晶表示装置10に表示する画像を拡大するスケーラ機能を備える。なお、スケーラ機能の内容については、後で詳述する。
フロントドア1bの液晶表示装置10の上部には、上部パネル11が設けられ、該上部パネル11の裏面側(遊技者側とは反対側)には、上部パネル用LED(Light Emitting Diode)101(後述の図9参照)が設けられる。この上部パネル用LED101は、演出内容に応じて発光する。なお、上部パネル11を発光させる装置(ランプ)は、LEDに限定されず、他の発光装置を用いてもよい。
なお、図2には示さないが、本実施形態では、液晶表示装置10と上部パネル11との間に、後述する表示パネルユニット110、2つの装飾パネル121L,121R、2つの選択パネル151L,151R等が設けられる(後述の図4参照)。これらのパネル部材の構成については、後で詳述する。
フロントドア1bの液晶表示装置10の下部には、下部パネル12が設けられ、該下部パネル12の裏面側(遊技者側とは反対側)には、下部パネル用LED102(後述の図9参照)が設けられる。この下部パネル用LED102は、演出内容に応じて発光する。なお、下部パネル12を発光させる装置(ランプ)は、LEDに限定されず、他の発光装置を用いてもよい。
また、フロントドア1bの下部パネル12の下部には、遊技者により操作される各種操作ボタン等が取り付けられた操作ユニット部13(台座部)が設けられる。なお、操作ユニット部13は、図2に示すように外側(遊技者側)に突出した凸状の外形を有する。そして、凸型形状の操作ユニット部13の正面部及び上面部に各種操作ボタン及びレバー等が配置される。
操作ユニット部13の正面部の略中央には、3つのストップボタン20L,20C,20Rが横方向に一列に配置される。ストップボタン20L、20C及び20R、それぞれ、左リール3L、中リール3C及び右リール3Rに対応づけて設けられ、各ストップボタンは、対応するリールの回転を停止するために設けられる。以下、ストップボタン20L,20C,20Rを、それぞれ左ストップボタン20L、中ストップボタン20C、右ストップボタン20Rという。
操作ユニット部13の正面部のストップボタンの一方の側部(図2では遊技者側から見て左側)には、スタートレバー21が配置される。スタートレバー21は、全てのリールの回転を開始するために設けられる。
操作ユニット部13の上面部の一方(図2では遊技者側から見て左側)の側端部付近には、C(Credit)/P(Pay)ボタン22が設けられる。C/Pボタン22は、遊技者が遊技で獲得したメダルのクレジット/払い出しの切り替えを行うための操作ボタンである。なお、メダルのクレジットモードでは、メダルの払い出しに係る役(以下、「小役」という)が入賞した場合(小役に係る図柄の組合せが有効ライン上に停止表示された場合)、該入賞に対応する払出枚数分のメダルがクレジットされる。一方、メダルの払出モードでは、小役が入賞すると、該入賞に対応する払出枚数分のメダルが後述のメダル払出口15から払い出される。
また、C/Pボタン22の一方(図2では遊技者側から見て右側)の側部にはMAXベットボタン23が配置される。MAXベットボタン23は、パチスロ1の内部に預けられているメダルから1回の遊技に投入する枚数を決定するために設けられる。そして、遊技者によりMAXベットボタン23が押下されたときには、クレジットされているメダルのうち、その時点で投入可能な最大枚数のメダルが投入される。
操作ユニット部13の上面部の他方(図2では遊技者側から見て右側)の側端部付近には、選択ボタン24が設けられる。選択ボタン24は、例えば、液晶表示装置10に表示されたメニュー画面において所定のメニューを選択操作する際に用いられる。また、選択ボタン24の一方(図2では遊技者側から見て右側)の側部には、決定ボタン25が配置される。決定ボタン25は、例えば、液晶表示装置10に表示されたメニュー画面において、選択ボタン24の操作により選択された所定のメニューを決定する際の操作に用いられる。
また、本実施形態では、決定ボタン25の一方(図2では遊技者側から見て右側)の側部には、メダル投入口26が設けられる。メダル投入口26は、遊技者によって外部からパチスロ1に投入されるメダルを受け入れるために設けられる。メダル投入口26を介して受け入れられたメダルは、所定枚数(例えば3枚)を上限として1回の遊技に投入され、所定枚数を超えた分は、パチスロ1の内部に預けることができる(いわゆるクレジット機能)。なお、本実施形態では、上述したドアキー穴1cは、メダル投入口26の一方(図2では遊技者側から見て右側)の側部に設けられる。
さらに、フロントドア1bの操作ユニット部13の下部には、光透過性を有する腰部パネル14が設けられ、該腰部パネル14の裏面側(遊技者側とは反対側)には、腰部パネル用LED103(後述の図9参照)が設けられる。この腰部パネル用LED103は、演出内容に応じて発光する。なお、腰部パネル14を発光させる装置(ランプ)は、LEDに限定されず、他の発光装置を用いてもよい。
さらに、フロントドア1bの腰部パネル14の下部には、メダル払出口15、メダル受皿16、スピーカ17L,17R(音声出力部)等が設けられる。
メダル払出口15は、後述のメダル払出装置40(以下、ホッパー40という。後述の図8参照)の駆動により排出されるメダルを外部に導く。メダル受皿16は、メダル払出口15から排出されたメダルを貯める。また、2つのスピーカ17L,17Rは、間にメダル払出口15を挟むようにして配置され、演出内容に対応する効果音、楽曲等の演出音や、報知音などの音声を出力する。
[液晶表示装置及びその周辺の構成]
次に、図4を参照して、液晶表示装置10及びその周辺の構成について説明する。なお、図4は、フロントドア1bの液晶表示装置10及びその周辺の構成を示す正面図である。
本実施形態のパチスロ1では、図4に示すように、液晶表示装置10の表示画面内の一部の領域にタッチセンサモジュール82を設ける。具体的には、遊技者側から見て、液晶表示装置10の表示画面内の右下の角部付近の領域に、矩形状のタッチセンサモジュール82を設ける。なお、タッチセンサモジュール82は、例えば静電容量方式のタッチセンサモジュールであり、指先やスタイラス等の接触操作により位置入力を行う装置である。本実施形態では、例えば、タッチ、フリック、ピンチ等の操作及びその操作位置(XY座標)をタッチセンサモジュール82により検知する。
タッチセンサモジュール82の配置領域では、液晶表示装置10とタッチセンサモジュール82とにより、タッチパネルが構成される。そして、本実施形態では、このタッチパネルに表示された映像内の所定の位置に、遊技者が例えば指先で触れることにより、対応する所定操作を行うことができる。
なお、タッチセンサモジュール82の形成領域の寸法及び形状や配置位置などは、図4に示す例に限定されず、液晶表示装置10の表示画面内にタッチセンサモジュール82を配置可能であれば任意に設定することができる。例えば、遊技者側から見て、液晶表示装置10の表示画面内の上下左右の各辺部付近の所定位置にタッチセンサモジュール82を設けてもよいし、右下以外の角部付近にタッチセンサモジュール82を設けてもよい。さらに、液晶表示装置10の表示画面の略全面に渡ってタッチセンサモジュール82を設けてもよい。
また、本実施形態のパチスロ1では、図4に示すように、液晶表示装置10の表示画面と上部パネル11との間には、表示パネルユニット110、2つの装飾パネル121L,121R(以下、左装飾パネル121L、右装飾パネル121Rという)、カメラモジュール84、及び、2つの選択パネル151L,151R(以下、左選択パネル151L、右選択パネル151Rという)が設けられる。
具体的には、液晶表示装置10の上部に、表示パネルユニット110、左選択パネル151L及び右選択パネル151Rが設けられる。この際、表示パネルユニット110の一方(図4では遊技者側から見て左側)の側部に左選択パネル151Lが配置され、他方(図4では遊技者側から見て右側)の側部に右選択パネル151Rが配置される。
また、表示パネルユニット110の上部には、左装飾パネル121L、右装飾パネル121R、及び、カメラモジュール84が設けられる。この際、表示パネルユニット110の上部の一方(図4では遊技者側から見て左側)の側部に左装飾パネル121Lが配置され、他方(図4では遊技者側から見て右側)の側部に右装飾パネル121Rが配置される。
また、カメラモジュール84は、表示パネルユニット110の上部において、左装飾パネル121Lと右装飾パネル121Rとの間の中間位置に配置される。なお、カメラモジュール84は、CCD(Charge-Coupled Device)カメラで構成され、上部パネル11に取り付けられる。
(1)表示パネルユニットの構成
ここで、図5を参照して、表示パネルユニット110の構成について説明する。なお、図5は、フロントドア1bの表示パネルユニット110付近の概略断面図である。
表示パネルユニット110は、図5に示すように、光透過性が高く、導光性の優れた4枚の表示パネル110a,110b,110c,110dと、4つのLED111,112,113,114とを有する。4枚の表示パネル110a〜110dは、フロントドア1bの正面側から裏面側に向かう方向に沿って、互いに所定間隔離れた状態で配置される。この際、隣り合う表示パネル間において、表示パネルの光透過面が対向するように配置される。また、4つのLED111〜114は、それぞれ、4枚の表示パネル110a〜110dの上端面(上部側面)に取り付けられる。
4枚の表示パネル110a〜110dのそれぞれには、所定のキャラクターの図柄が描かれている。そして、所定のLEDを発光することにより、対応する表示パネルの図柄を遊技者が視認できる構成になっている。この際、各表示パネルに描かれた図柄は、対応するLEDの輝度が上昇するほど、遊技者にはっきり視認できる構成になっている。
ここで、図6A〜図6Dに、各表示パネルで描かれている図柄の一例を示す。なお、図6Aは、表示パネル110dに描かれている図柄であり、図6Bは、表示パネル110cに描かれている図柄であり、図6Cは、表示パネル110bに描かれている図柄であり、そして、図6Dは、表示パネル110aに描かれている図柄である。
本実施形態では、図6A〜図6Dに示すように、各表示パネルに描かれているキャラクターの図柄は同じである。しかしながら、表示パネルに描かれているキャラクターの図柄の大きさが表示パネル毎に異なり、表示パネルの位置が遊技者に近くなるとキャラクターの図柄が大きくなるように、図柄が表示パネルに描かれている。
図6A〜図6Dに示す図柄構成例において、例えば、遊技者から最も遠くに位置する表示パネル110dに設けられたLED114から、表示パネル110cに設けられたLED113、表示パネル110bに設けられたLED112、及び、表示パネル110aに設けられたLED111をこの順で輝度を上昇させた場合(LEDを発光させた場合)、すなわち、遊技者から最も遠くに位置する表示パネル110dから遊技者に最も近い位置に配置された表示パネル110aに向かって順次、表示パネルを発光させた場合、遊技者には、キャラクターが自分の方に迫ってくるように見える。一方、例えば、遊技者から最も近くに位置する表示パネル110aに設けられたLED1--11から、表示パネル110bに設けられたLED112、表示パネル110cに設けられたLED113、及び、表示パネル110dに設けられたLED114をこの順で輝度を上昇させた場合(LEDを発光させた場合)、遊技者には、キャラクターが自分から遠ざかるように見える。なお、このような4つのLED111〜114の輝度制御は、後述する副制御回路70のサブCPU71(後述の図9参照)により実行される。
なお、上述のようにLED111〜114の輝度を順番に変化させる場合には、図柄が重複して見え難くならないように、LED111〜114の輝度を適宜制御することが好ましい。例えば、所定のLEDの輝度を上昇させた場合には、その前に輝度を上昇させたLEDの輝度を下げることが好ましい。
また、図6A〜図6Dに示す例では、遊技者に最も近くに位置する表示パネル110aのキャラクター図柄を最も大きく描き、遊技者から最も遠い位置に配置された表示パネル110dのキャラクター図柄を最も小さく描く例を説明したが、本発明はこれに限定されない。遊技者に最も近くに位置する表示パネル110aのキャラクター図柄を最も小さく描き、遊技者から最も遠い位置に配置された表示パネル110dのキャラクター図柄を最も大きく描いてもよい。
さらに、本実施形態のパチスロ1では、表示パネルユニット110の裏面側に別途、液晶表示装置を設けて、又は、液晶表示装置10の表示画面を大型化して、遊技者が表示パネル110a〜110dを通して該液晶表示装置が表示する画像を見えるようにしてもよい。
(2)装飾パネルの構成
次に、図7A及び図7Bを参照して、左装飾パネル121L及びその裏面側に設けられた左赤外線センサ120Lの構成について説明する。なお、図7Aは、左装飾パネル121Lの正面透視図であり、図7Bは、左装飾パネル121Lの裏面側に設けられた左赤外線センサ120Lの動作の様子を示す図である。
左赤外線センサ120Lは、図7Aに示すように、左装飾パネル121Lの裏面側に設けられる。左赤外線センサ120Lは、いわゆる反射型赤外線センサで構成され、赤外線ビームの出力機能と、検出対象物から反射した赤外線ビームの受光機能とを備える。そして、左赤外線センサ120Lは、受光した赤外線ビームに基づいて、赤外線ビームの出力方向に検出対象物(例えば、遊技者の手等)が存在するか否か、又は、近付いたか否かを検知することができる。
本実施形態では、図7Bに示すように、左赤外線センサ120Lは、左選択パネル151Lに向かって赤外線ビーム(矢印AR)を出力し、左選択パネル151L付近に遊技者の手等が存在するか否かを検知する。この際、左選択パネル151L付近に遊技者の手等が存在する場合には、左赤外線センサ120Lにおいて、遊技者の手等から反射された赤外線ビームが検出される。
なお、ここでは図示して説明しないが、右装飾パネル121Rの裏面側にも右赤外線センサ120Rが配置される。この際、右装飾パネル121R及び右赤外線センサ120Rの配置は、左装飾パネル121L及び左赤外線センサ120Lの配置と左右対称となるように構成される。
また、右赤外線センサ120Rは、左赤外線センサ120Lと同様に反射型赤外線センサで構成され、右選択パネル151Rに向かって赤外線ビームを出力し、右選択パネル151R付近に遊技者の手等が存在するか否かを検知する。
なお、本実施形態では、左赤外線センサ120L及び右赤外線センサ120Rは、常時動作せず、所定の演出が実行された場合に動作する。
また、本実施形態では、各選択パネル付近に遊技者の手等の検出対象物が存在するか否かを判別するセンサとして、反射型赤外線センサを用いる例を説明したが、本発明はこれに限定されない。各選択パネル付近に遊技者の手等の検出対象物が存在するか否かを判別することが可能なセンサであれば、任意のセンサを用いることができる。さらに、本実施形態では、各選択パネルをタッチセンサで構成してもよい。
<パチスロが備える回路の構成>
次に、図8及び図9を参照して、本実施形態におけるパチスロ1が備える回路の構成について説明する。なお、図8は、パチスロ1が備える回路全体のブロック構成図であり、図9は、副制御回路の内部構成を示すブロック構成図である。
パチスロ1は、図8に示すように、主制御回路60(主制御手段)、副制御回路70(副制御手段)、及び、これらの回路と電気的に接続される周辺装置(アクチュエータ)を備える。
[主制御回路及びその周辺装置の構成]
主制御回路60は、内部当籤役の決定やリールの回転制御等の遊技に必須の動作を制御する回路である。主制御回路60は、主に、回路基板(主基板)上に搭載されたマイクロコンピュータ30により構成される。それ以外の構成要素として、主制御回路60は、図8に示すように、クロックパルス発生回路34、分周器35、乱数発生器36、サンプリング回路37、ランプ駆動回路45、表示部駆動回路48、ホッパー駆動回路41、及び、払出完了信号回路51を含む。
マイクロコンピュータ30は、メインCPU31、メインROM(Read Only Memory)32及びメインRAM(Random Access Memory)33により構成される。
メインCPU31(主制御部)には、図8に示すように、クロックパルス発生回路34、分周器35、乱数発生器36及びサンプリング回路37が接続される。クロックパルス発生回路34及び分周器35は、基準クロックパルスを発生する。なお、メインCPU31は、発生されたクロックパルスに基づいて、制御プログラムを実行する。また、乱数発生器36は、予め定められた範囲の乱数(例えば、0〜65535)を発生する。そして、サンプリング回路37は、発生された乱数の中から1つの値を抽出する。
メインROM32には、メインCPU31により実行される各種処理(後述の図71〜図80参照)の制御プログラム、各種データテーブル(後述の図31〜図44参照)、副制御回路70に対して各種制御指令(コマンド)を送信するためのデータ等が記憶される。
メインRAM33には、制御プログラムの実行により決定された内部当籤役等の各種データや制御に必要な各種フラグなどを格納する格納領域(後述の図45〜図50参照)が設けられる。
マイクロコンピュータ30の入力部には、各種回路及び各種周辺装置等に制御信号を出力する契機となる入力信号を発生する各種スイッチ、センサ及び各種回路が接続される。具体的には、ストップスイッチ20S、スタートスイッチ21S、C/Pスイッチ22S、MAXベットスイッチ23S、メダルセンサ26S、リール位置検出回路50及び払出完了信号回路51が、入出力ポートを介してマイクロコンピュータ30の入力部に接続される。そして、メインCPU31は、これらの各種スイッチ等からの入力信号を受けて、ステッピングモータ49L,49C,49R等の周辺装置の動作を制御する。
ストップスイッチ20Sは、左ストップボタン20L、中ストップボタン20C、右ストップボタン20Rのそれぞれが遊技者により押されたこと(停止操作)を検出する。そして、ストップスイッチ20Sは、停止操作されたリールの回転停止を指令する停止信号をマイクロコンピュータ30に出力する。スタートスイッチ21Sは、スタートレバー21が遊技者により操作されたこと(開始操作)を検出し、遊技の開始を指令する開始信号をマイクロコンピュータ30に出力する。
C/Pスイッチ22Sは、C/Pボタン22が遊技者により押されたこと(クレジットモード/払出モードの切り替え操作)を検出し、モードを切り替えるための信号をマイクロコンピュータ30に出力する。なお、クレジットモードが払出モードに切り替えられた場合には、パチスロ1にクレジットされているメダルの払い出しを指令する信号をマイクロコンピュータ30に出力する。
MAXベットスイッチ23Sは、MAXベットボタン23が遊技者により押されたことを検出し、クレジットされたメダルからメダルの投入を指令する信号をマイクロコンピュータ30に出力する。
また、メダルセンサ26Sは、メダル投入口26に投入されたメダルがセレクタ内を通過したことを検出し、メダルが投入されたことを示す信号をマイクロコンピュータ30に出力する。
リール位置検出回路50は、発光部と受光部とを有する光センサにより、リールが一回転したことを示すリールインデックスをリール毎に検出し、各リール上の図柄の位置を検出するための信号を発生する。
払出完了信号回路51は、ホッパー40に設けられたメダル検出部40Sが行うメダルの検出を管理し、ホッパー40から外部に排出されたメダルが所定の払出枚数に達したか否かをチェックする。そして、払出完了信号回路51は、メダル検出部40Sにより検出されたメダルの枚数(ホッパー40から払い出されたメダルの枚数)が指定された枚数に達した場合には、メダルの払い出しが完了したことを示すための信号を発生する。これにより、ホッパー駆動回路41に制御信号が出力され、ホッパー40の駆動が停止される。
また、マイクロコンピュータ30により動作が制御される周辺装置としては、3つのステッピングモータ49L,49C,49R、WINランプ6、BETランプ7、払出枚数表示部8、クレジット表示部9及びホッパー40がある。また、マイクロコンピュータ30の出力部には、これらの周辺装置の動作を制御するための各種駆動回路が接続される。具体的には、モータ駆動回路39、ランプ駆動回路45、表示部駆動回路48及びホッパー駆動回路41が、入出力ポートを介してマイクロコンピュータ30の出力部に接続される。
モータ駆動回路39は、左リール3L、中リール3C、右リール3Rに対応してそれぞれ設けられた3つのステッピングモータ49L,49C,49Rの駆動を制御する。これにより、各リールの回転動作や停止動作が行われる。
3つのステッピングモータ49L,49C,49Rのそれぞれは、その運動量がパルスの出力数に比例し、回転軸を指定された角度で停止させることが可能な構成を有する。また、各ステッピングモータの駆動力は、所定の減速比を有するギアを介して、対応するリールに伝達される。そして、各ステッピングモータに対して1回のパルスが出力されるごとに、対応するリールは一定の角度で回転する。
メインCPU31は、各リールのリールインデックスを検出してから対応するステッピングモータに対してパルスが出力された回数をカウントすることによって、各リールの回転角度(具体的には、リールが図柄何個分だけ回転したか)を管理する。
ここで、各リールの回転角度の管理を具体的に説明する。各ステッピングモータに対して出力されたパルスの数は、メインRAM33に設けられたパルスカウンタ(不図示)により計数される。そして、図柄1個分の回転に必要な所定回数(例えば16回)のパルスの出力がパルスカウンタで計数されるごとに、メインRAM33に設けられた図柄カウンタ(不図示)の値に、「1」が加算される。なお、図柄カウンタは、リール毎に設けられる。そして、図柄カウンタの値は、リール位置検出回路50によってリールインデックスが検出されるとクリアされる。
すなわち、本実施形態では、図柄カウンタの値を管理することにより、リールインデックス検出後の回転動作で変動した図柄の個数を管理する。それゆえ、各リールの各図柄の位置は、リールインデックスが検出される位置を基準として検出される。
また、本実施形態では、遊技中の滑り駒数の最大数を図柄4個分に定める。それゆえ、例えば左ストップボタン20Lが押されたときには、そのときに左リール3Lの有効ライン上に位置する図柄と、その4個先までの範囲に存在する図柄が、有効ライン上に停止可能な図柄となる。
なお、本実施形態では、後述するように、各リールの回転位置とリール外周面上に描かれた図柄とを対応づけるための図柄配置テーブルが設けられ、この図柄配置テーブルは、メインROM32に記憶される。図柄配置テーブルは、上述したリールインデックスが出力される位置を基準として、各リールの一定の回転ピッチ毎に順次付与される、「00」から「20」までのコードナンバーと、コードナンバー毎に対応して設けられた図柄の種類を識別する図柄コードとを対応付けたテーブルである。なお、図柄配置テーブルについては、後で図面を参照しながら詳細に説明する。
また、ランプ駆動回路45は、WINランプ6及びBETランプ7の動作を制御する。表示部駆動回路48は、払出枚数表示部8及びクレジット表示部9の動作を制御する。また、ホッパー駆動回路41は、ホッパー40の動作を制御する。これにより、ホッパー40に収容されたメダルの払い出しが行われる。
[メインCPUの動作概要]
次に、メインCPU31により制御される、遊技に係る主な動作(機能)の概略を説明する。なお、メインCPU31による制御の詳細な処理内容については、後で各種処理のフローチャートを参照しながら説明する。
まず、メインCPU31は、単位遊技(1ゲーム)が開始されると、その都度、メインRAM33に記憶された抽籤用の乱数値に基づき、後述の内部抽籤処理(後述の図73及び図74参照)で内部当籤役を決定する。この際、メインCPU31は、乱数値と後述する内部抽籤テーブル(後述の図37〜図39参照)とに基づいて内部当籤役を決定する。また、抽籤用の乱数値は、スタートスイッチ21Sから開始信号が出力された際に、乱数発生器36及びサンプリング回路37により抽出(生成)され、メインRAM33の乱数値記憶領域に記憶される。
なお、本実施形態では、メインCPU31の外部に設けられた乱数発生器36及びサンプリング回路37を用いて抽籤用の乱数値を生成する構成例を説明するが、本発明はこれに限定されず、メインCPU31の動作プロフラム上で、抽籤用の乱数値を生成する構成にしてもよい。この場合には、乱数発生器36及びサンプリング回路37を、乱数値生成動作のバックアップ装置として用いてもよいし、省略してもよい。
次いで、各リールの回転速度が定速に達した後、所定のリールに対する遊技者の停止操作により対応するストップスイッチから停止信号が出力されると、メインCPU31は出力された停止信号(停止操作の検出タイミング)及び決定された内部当籤役に基づいて、停止操作されたリールを停止制御する制御信号をモータ駆動回路39に出力する。そして、モータ駆動回路39は、この制御信号に基づいて対応するステッピングモータを駆動制御し、対応するリールの回転を停止させる。すなわち、メインCPU31は、内部当籤役と停止操作の検出タイミングとに基づいて、各リールの回転を停止させる。
この際、本実施形態では、メインCPU31は、停止操作が行われた際に有効ライン上に位置する図柄から最大滑り駒数分(4駒分)先に位置する図柄までの範囲内で、内部当籤役の成立に係る図柄が有効ライン上に停止するように、リールを停止制御する。具体的には、メインCPU31は、まず、所定のリールに対する遊技者の停止操作が行われた際に有効ライン上に位置する図柄から4駒分先の図柄までの図柄範囲内に内部当籤役の成立に係る図柄が存在するか否かを判別する。そして、その図柄の範囲内に内部当籤役の成立に係る図柄が存在する場合には、メインCPU31は、その内部当籤役の成立に係る図柄が有効ライン上に停止表示されるように対応するリールの滑り駒数を決定し、該リールを停止させる。
なお、上述したメインCPU31によるリールの停止制御において、停止操作が行われた際に有効ライン上に位置する図柄から4駒分先の図柄までの範囲内に内部当籤役の成立に係る図柄が複数存在する場合(複数の内部当籤役が重複当籤している場合)には、メインCPU31は、より優先順位の高い内部当籤役に係る図柄が有効ライン上に停止表示するように滑り駒数を決定して該リールを停止させる。本実施形態では、基本的には、優先順位の最も高い内部当籤役は、再遊技(リプレイ)に係る役(リプレイ役)であり、その次に優先順位の高い内部当籤役は、メダルの払い出しに係る役(以下、「小役」という)である。そして、ボーナス(「BB」、「RB」)に係る内部当籤役の優先順位は、小役の優先順位より低くなるよう設定されている。
次いで、メインCPU31は、全てのリールが停止されると、有効ライン上に停止表示された図柄の組合せに基づいて、それに対応する表示役(入賞役)の検索処理、すなわち、当籤役の成立/不成立の判定処理を行う。なお、表示役の検索処理は、メインROM32に記憶された後述の図柄組合せテーブル(後述の図32参照)に基づいて行われる。
そして、表示役の検索処理により内部当籤役が入賞していると判別された場合には、メインCPU31は、入賞役に対応する特典(例えばメダルを払い出し等)が遊技者に付与されるようにパチスロ1の動作を制御する。具体的には、例えば、表示役の検索処理により小役に係る図柄の組合せが有効ライン上に停止表示されたと判別した場合、メインCPU31は、ホッパー駆動回路41に制御信号を出力し、これにより、ホッパー40が駆動され、入賞した小役に対応する枚数のメダルの払い出しが行われる。なお、小役に係る図柄の組合せが有効ライン上に停止表示されたと判別された際にC/Pスイッチ22Sにより、メダルの払出モードがクレジットモードに切り替えられている場合には、入賞した小役に対応するメダルの払出枚数が、メインRAM33のクレジットカウンタに加算される。
また、メインCPU31は、上記各種処理中に得られる種々の情報(例えば、抽籤用の乱数値、遊技状態、内部当籤役、払出枚数、ボーナス持越状況、設定値等を特定する情報、各種カウンタ、及び、各種制御フラグ等)をメインRAM33の所定記憶領域に格納する(セットする)。また、メインCPU31は、これらの情報の一部を、各種コマンドに含ませて副制御回路70に送信する。副制御回路70は、主制御回路60から送信された各種コマンド(例えば、後述のスタートコマンド等)に基づいて、演出データの決定や実行等の各種処理を行う。なお、本実施形態では、副制御回路70が主制御回路60にコマンド、情報等を入力することはなく、主制御回路60から副制御回路70への一方向で通信が行われる。
[副制御回路の構成]
副制御回路70は、図8及び図9に示すように、主制御回路60に接続され、主に、主制御回路60から送信されるコマンド(所定のデータ)や各種スイッチからの入力信号に基づいて、映像、音、光等を用いた演出内容の決定や実行等の処理を行う。
副制御回路70は、図9に示すように、サブCPU71(副制御部)、サブROM72、DRAM(Dynamic RAM)73(以下、サブRAM73という)、SRAM(Static RAM)74(以下、バックアップRAM74という)、GPU(Graphics Processing Unit)75、VRAM(Video RAM)76、A/D(Analog to Digital)変換器77及びアンプ78を有する。なお、サブROM72、サブRAM73、バックアップRAM74、GPU75及びA/D変換器77はサブCPU71に接続され、VRAM76はGPU75に接続され、アンプ78はA/D変換器77に接続される。
また、副制御回路70は、サブCPU71内の設けられた計時専用回路のRTC(Real Time Clock)70a(以下、内蔵RTC70aという)と、サブCPU71に接続された外付けRTC70bとを有する。さらに、副制御回路70は、SRAM74及び外付けRTC70bに接続されたバッテリー70cを有する。なお、外付けRTC70bは、内蔵RTC70aのバックアップ用の計時回路である。内蔵RTC70a及び外付けRTC70bの動作は、後述の図113に示すRTC制御タスクにより管理される。
サブCPU71は、CPUで構成され、主に、主制御回路60から送信されたコマンドに応じて、サブROM72に記憶されている制御プログラムに従い、映像、音、光の出力制御(演出制御)を行う。また、サブCPU71は、演出制御機能だけでなく、例えば、各種エラー監視機能も有する。サブCPU71が備える各種エラー監視機能(手段)については、後で詳述する。
サブROM72は、基本的には、プログラム記憶領域及びデータ記憶領域を有する。
プログラム記憶領域には、サブCPU71が実行する各種制御プログラムが記憶される。なお、プログラム記憶領域に格納される制御プログラムには、例えば、主制御回路60との通信を制御するための主基板通信タスク、演出用乱数値を抽出して演出内容(演出データ)の決定及び登録を行うための演出登録タスク、決定した演出内容に基づいて液晶表示装置10による映像の表示を制御するための描画制御タスク、各種LEDによる光の出力を制御するためのランプ制御タスク、スピーカ17L,17Rによる音声の出力を制御するための音声制御タスク等のプログラムが含まれる。
データ記憶領域には、例えば、各種データテーブルを記憶する記憶領域、各種演出内容を構成する演出データを記憶する記憶領域、映像の作成に関するアニメーションデータを記憶する記憶領域、BGMや効果音に関するサウンドデータを記憶する記憶領域、光の点消灯のパターンに関するランプデータを記憶する記憶領域等の各種記憶領域が含まれる。なお、サブROM72内に設けられる各種記憶領域の構成については、後で詳述する。
サブRAM73は、決定された演出内容(演出データ)を登録する格納領域や、主制御回路60から送信される内部当籤役等の各種データを格納する格納領域などを有する。なお、サブRAM73内に設けられる各種記憶領域の構成については、後で詳述する。
バックアップRAM74は、サブRAM73内の所定のデータをバックアップする記憶装置である。例えば、バックアップRAM74には、電源投入時に、サブRAM73に複写されるデータがバックアップされる。なお、バックアップRAM74内に設けられる各種記憶領域の構成については、後で詳述する。
GPU75は、サブCPU71から受信する画像表示コマンド等に基づいて、液晶表示装置10に画像を表示させるための処理を行う。なお、GPU75が行う処理に必要なデータは起動時にVRAM76に展開される。そして、GPU75は、VRAM76に展開されたデータに基づいて画像データを生成し、該画像データを液晶表示装置10に供給する。
この結果、サブCPU71により決定された演出データに応じた画像が液晶表示装置10の表示画面に表示される。なお、上述のように、本実施形態のパチスロ1はスケーラ機能を備え、そのスケーラ機能を実現するために、後述のスケーラ制御基板80が設けられる。それゆえ、本実施形態では、このスケーラ機能により、液晶表示装置10の表示画面に表示された画像の元画像のサイズを選択することができる。
VRAM76は、書込画像データ領域及び表示画像データ領域の2つのフレームバッファ領域を有し、書込画像データ領域は、GPU75が生成した画像データを格納し、表示画像データ領域は、液晶表示装置10に表示させる画像データを格納する。なお、GPU75は、この2つのフレームバッファを交互に切り替える(すなわち、バンクを切り替える)ことにより、順次、画像データを液晶表示装置10に表示させる。
A/D変換器77は、サブCPU71が演出データに基づいて選択するデジタル形式の音声データを、アナログ形式の音声データに変換し、該変換されたアナログ形式の音声データをアンプ78に出力する。アンプ78は、A/D変換器77から入力されたアナログ形式の音声データを、パチスロ1に設けられた音量調整用ツマミ(不図示)により調節された音量に基づいて増幅させ、スピーカ17L、17Rに送信する。この結果、サブCPU71により決定された演出データに対応する音声が、スピーカ17L、17Rから出力される。
[副制御回路の周辺装置の構成]
副制御回路70は、図8及び図9に示すように、主制御回路60だけでなく、ドアキースイッチ2S、選択スイッチ24S、決定スイッチ25S、設定キースイッチ27S及びサブデバイス群100に接続される。本実施形態では、副制御回路70は、主制御回路60から送信される各種コマンドや、選択スイッチ24S、決定スイッチ25Sからの入力情報などに基づいて、演出データを決定する。そして、副制御回路70は、決定された演出データをサブデバイス群100内の各種サブデバイスに出力する。この結果、サブデバイスにより所定の演出が実行される。
(1)各種スイッチの構成
ドアキースイッチ2Sは、遊技者側から見て、ドアキー2が左回転方向(反時計回り方向)に回転操作されたことを検出し、その検出信号をサブCPU71に出力する。本実施形態では、ドアキー2が左回転方向に回転操作されることにより、パチスロ1のエラーがリセットされる。なお、ドアキー2を右回転(時計回り方向)させた場合には、上述のように、フロントドア1bが開閉可能になる。
設定キースイッチ27Sは、遊技の設定値を操作するために設定キー(不図示)が操作されたことを検出して、その検出信号をサブCPU71に出力する。
選択スイッチ24Sは、遊技者が選択ボタン24を押下したか否かを検出する。そして、選択スイッチ24Sは、遊技者の選択操作内容に対応する信号、例えば、メニュー画面等に表示された選択可能な複数の項目のうち何れの項目が選択状態にあるかを示す表示態様(例えば、アイコン)を移動させるための信号等をサブCPU71に出力する。
決定スイッチ25Sは、遊技者が決定ボタン25を押下したか否か検出する。そして、決定スイッチ25Sは、遊技者の決定操作内容に対応する信号、例えば、選択状態にある項目を遊技者が選択したことを示す信号等をサブCPU71に出力する。すなわち、遊技者は、メニュー画面等において、選択したい所定項目が選択状態になるまで選択ボタン24を押下し、その後、所定項目を決定ボタン25で押下することにより、所定項目を選択することができる。
(2)サブデバイス群の構成
次に、副制御回路70に接続され、副制御回路70により制御される各種サブデバイスを含むサブデバイス群100の構成内容について説明する。
本実施形態では、サブデバイス群100は、図9に示すように、2つのスピーカ17L,17R、上部パネル用LED101、下部パネル用LED102、腰部パネル用LED103、表示パネルユニット110内の4つのLED111〜114、左赤外線センサ120L及び右赤外線センサ120Rを含む。なお、これらのサブバイスの構成については上述の通りであるので、ここではこれらのサブデバイスの説明は省略する。
さらに、サブデバイス群100は、シリアル通信中継基板79、スケーラ制御基板80、液晶表示装置10、タッチセンサ中継基板81、タッチセンサモジュール82、カメラ中継基板83及びカメラモジュール84を含む。なお、サブデバイス群100の構成は、図9に示す例に限定されず、例えば、パチスロ1の機種等に応じて適宜変更することができる。例えば、図9に示すサブデバイス群100に含まれるサブデバイス以外のサブデバイスがさらに含まれていてもよいし、例えば、スケーラ機能、タッチセンサ機能及びカメラ機能のいずれかを設けない構成にしてもよい。
シリアル通信中継基板79(通信中継手段)は、サブCPU71に接続される。また、スケーラ制御基板80は、シリアル通信中継基板79及びGPU75に接続され、液晶表示装置10は、スケーラ制御基板80に接続される。すなわち、液晶表示装置10は、スケーラ制御基板80及びシリアル通信中継基板79を介してサブCPU71に接続される。なお、サブデバイス群100に、スケーラ制御基板80を設けない場合には、液晶表示装置10は、GPU75を経由してサブCPU71に接続される。
タッチセンサ中継基板81は、シリアル通信中継基板79に接続され、タッチセンサモジュール82(演出手段)は、タッチセンサ中継基板81に接続される。すなわち、タッチセンサモジュール82は、タッチセンサ中継基板81及びシリアル通信中継基板79を介してサブCPU71に接続される。
カメラ中継基板83は、シリアル通信中継基板79に接続され、カメラモジュール84(演出手段)は、カメラ中継基板83に接続される。すなわち、カメラモジュール84は、カメラ中継基板83及びシリアル通信中継基板79を介してサブCPU71に接続される。
図9に示すように、本実施形態では、スケーラ制御基板80、タッチセンサ中継基板81及びカメラ中継基板83は、シリアル通信中継基板79に対して並列的に接続される。それゆえ、本実施形態では、サブCPU71と、スケーラ制御基板80、タッチセンサ中継基板81及びカメラ中継基板83のそれぞれとの間では、シリアル通信中継基板79を介してデータの送受信が行われる。
さらに、本実施形態では、サブCPU71及び各サブデバイス間の通信動作の主従関係は、従来のそれとは逆の関係にする。すなわち、本実施形態では、サブCPU71及び各サブデバイス間の通信動作の主従関係において、サブCPU71を「主」とし、各サブデバイスを「従」とする。
具体的には、サブCPU71は、各制御(中継)基板に対して所定周期でポーリングを行う。この際、サブCPU71は、シリアル通信中継基板79を介してポーリング対象の制御(中継)基板に所定のデータ(ポーリングデータ、各種設定コマンドデータ等)を送信する。そして、ポーリング対象の制御(中継)基板がサブCPU71から所定のデータを受信すると、該ポーリング対象の制御(中継)基板は、特定のデータ(受信確認マンドデータ、リセット通知コマンドデータ、アンサコマンドデータ等)を、シリアル通信中継基板79を介してサブCPU71に返信する。なお、この際、ポーリング対象の制御(中継)基板により制御されるサブデバイスの設定や動作に関する返信データ(受信確認マンドデータ、リセット通知コマンドデータ等)が無い場合には、アンサコマンドデータが、制御(中継)基板からサブCPU71に返信される。
サブCPU71及び各サブデバイス間の通信動作の主従関係を上述のように設定することにより、各制御(中継)基板で制御されたサブデバイスの作動状況をサブCPU71で個別に管理することができる。なお、サブCPU71及び各制御(中継)基板間の各種通信動作については、後で図面を参照しながら詳述する。
[各種サブデバイスの制御(中継)基板の内部構成]
次に、図10を参照しながら、シリアル通信中継基板79、スケーラ制御基板80、タッチセンサ中継基板81及びカメラ中継基板83の内部構成、並びに、各制御(中継)基板及び副制御回路70間の接続構成について説明する。
また、図10では、構成ブロック間を繋ぐデータラインを、片側矢印で示すデータラインL1、両側矢印で示すデータラインL2及び矢印無しの線で示すデータラインL3の3種類に分けて記載する。各データラインの内容は、次の通りである。
片側矢印で示すデータラインL1は、データをシリアル通信で一方向に送信するデータラインであり、例えば、ポーリングコマンドデータ、各種設定コマンドデータ、アンサコマンドデータ、受信確認コマンドデータ等のデータが送信されるデータラインである。なお、各データラインL1が接続されている機器の間では、データラインL1により、送信側機器の送信端子(TxD端子)と受信側機器の受信端子(RxD端子)とが接続される。また、図10では、説明化を簡略するため、各データラインL1を1本の配線ラインで示すが、実際には、各データラインL1には、コントロールライン及びデータラインがそれぞれ別個に設けられている。
両側矢印で示すデータラインL2は、双方向にデータ通信可能なシリアルバスで構成されたデータラインであり、例えば画像データ等のデータが送信されるデータラインである。また、矢印無しの線で示すデータラインL3は、副制御回路70により各サブデバイス(制御LSI)等をハードリセットするためのデータラインである。以下では、データラインL3を、リセットラインL3と称す。
(1)シリアル通信中継基板の構成
シリアル通信中継基板79は、図10に示すように、シリアル通信制御LSI79aを備える。なお、シリアル通信制御LSI79aには、ROM及びRAMが内蔵されている。そして、その内蔵されたROMには、シリアル通信制御LSI79aが行う処理で用いるプログラム、テーブル等が記憶され、内蔵されたRAMは該処理時の作業用メモリとして機能する。
シリアル通信制御LSI79aは、データラインL1により副制御回路70内のサブCPU71に接続される。この際、シリアル通信中継基板79とサブCPU71とは、互いに、UART(Universal Asynchronous Receiver Transmitter)により接続され、両者間において、データのシリアル送受信通信が行われる。
(2)スケーラ制御基板の構成
スケーラ制御基板80は、図10に示すように、スケーラ制御LSI80a(演出中継手段)と、解像度変換LSI80b(演出手段)とを備える。なお、各LSIには、ROM及びRAMが内蔵されている。そして、各LSIに内蔵されたROMには、対応するLSIが行う処理で用いるプログラム、テーブル等が記憶され、内蔵されたRAMは該処理時の作業用メモリとして機能する。
スケーラ制御LSI80aは、データラインL1によりシリアル通信中継基板79に接続される。この際、シリアル通信中継基板79とスケーラ制御LSI80aとは、互いに、UARTにより接続され、両者間において、データのシリアル送受信通信が行われる。それゆえ、ポーリング時には、スケーラ制御LSI80aは、サブCPU71から送信された各種コマンドデータ(ポーリングコマンドデータを含む)を、シリアル通信中継基板79を介して受信する。そして、スケーラ制御LSI80aは、受信したコマンドデータに対して特定のコマンドデータ(アンサコマンドデータを含む)を、シリアル通信中継基板79を介してサブCPU71に返信する。
また、スケーラ制御LSI80aは、データラインL2により解像度変換LSI80bに接続され、スケーラ制御LSI80a及び解像度変換LSI80b間では、例えば各種コマンドデータ等が入出力される。
さらに、スケーラ制御LSI80aは、リセットラインL3により副制御回路70内のサブCPU71に接続される。なお、このリセットラインL3は、スケーラ制御LSI80aのリセットポートに接続される。そして、スケーラ制御基板80にリセット要因(例えば自己診断異常等)が発生した場合には、サブCPU71によりリセットラインL3を介してスケーラ制御LSI80aのリセットポートがオン状態に設定され、スケーラ制御LSI80a及び解像度変換LSI80bがリセットされる。
解像度変換LSI80b(スケーラ手段)は、データラインL2により副制御回路70内のGPU75に接続される。すなわち、解像度変換LSI80bは、GPU75を介してサブCPU71に接続される。そして、解像度変換LSI80b及びGPU75間では、例えば画像データ等が入出力される。さらに、解像度変換LSI80bは、データラインL2により液晶表示装置10に接続され、解像度変換LSI80b及び液晶表示装置10間では、例えば各種コマンドデータや画像データなどが入出力される。
(3)タッチセンサ中継基板の構成
タッチセンサ中継基板81は、図10に示すように、タッチセンサ制御LSI81a(演出中継手段)を備える。なお、タッチセンサ制御LSI81aには、ROM及びRAMが内蔵されている。そして、タッチセンサ制御LSI81aに内蔵されたROMには、タッチセンサ制御LSI81aが行う処理で用いるプログラム、テーブル等が記憶され、内蔵されたRAMは該処理時の作業用メモリとして機能する。
タッチセンサ制御LSI81aは、データラインL1によりシリアル通信中継基板79に接続される。この際、シリアル通信中継基板79とタッチセンサ制御LSI81aとは、互いに、UARTにより接続され、両者間において、データのシリアル送受信通信が行われる。それゆえ、ポーリング時には、タッチセンサ制御LSI81aは、サブCPU71から送信されたポーリングコマンドデータを、シリアル通信中継基板79を介して受信する。そして、タッチセンサ制御LSI81aは、受信したポーリングコマンドデータに対して特定のコマンドデータ(アンサコマンドデータを含む)を、シリアル通信中継基板79を介してサブCPU71に返信する。
また、タッチセンサ制御LSI81aは、データラインL2によりタッチセンサモジュール82に接続され、タッチセンサ制御LSI81a及びタッチセンサモジュール82間では、例えば各種コマンドデータや、タッチセンサモジュール82に対する遊技者のタッチ操作のデータなどが入出力される。
さらに、タッチセンサ制御LSI81aは、リセットラインL3により副制御回路70内のサブCPU71に接続される。なお、このリセットラインL3は、タッチセンサ制御LSI81aのリセットポートに接続される。そして、タッチセンサ中継基板81及び/又はタッチセンサモジュール82にリセット要因が発生した場合には、サブCPU71によりリセットラインL3を介してタッチセンサ制御LSI81aのリセットポートがオン状態に設定され、タッチセンサ制御LSI81a及びタッチセンサモジュール82がリセットされる。
(4)カメラ中継基板の構成
カメラ中継基板83は、図10に示すように、カメラ制御LSI83a(演出中継手段)を備える。なお、カメラ制御LSI83aには、ROM及びRAMが内蔵されている。そして、カメラ制御LSI83aに内蔵されたROMには、カメラ制御LSI83aが行う処理で用いるプログラム、テーブル等が記憶され、内蔵されたRAMは該処理時の作業用メモリとして機能する。
カメラ制御LSI83aは、データラインL1によりシリアル通信中継基板79に接続される。この際、シリアル通信中継基板79とカメラ制御LSI83aとは、互いに、UARTにより接続され、両者間において、データのシリアル送受信通信が行われる。それゆえ、ポーリング時には、カメラ制御LSI83aは、サブCPU71から送信された各種コマンドデータ(ポーリングデータを含む)を、シリアル通信中継基板79を介して受信する。そして、カメラ制御LSI83aは、受信したコマンドデータに対して特定のコマンドデータ(アンサコマンドデータを含む)を、シリアル通信中継基板79を介してサブCPU71に返信する。
また、カメラ制御LSI83aは、データラインL2によりカメラモジュール84に接続され、カメラ制御LSI83a及びカメラモジュール84間では、例えば各種コマンドデータや画像データなどが入出力される。
さらに、カメラ制御LSI83aは、リセットラインL3により副制御回路70内のサブCPU71に接続される。なお、この際、リセットラインL3は、カメラ制御LSI83aのリセットポートに接続される。そして、カメラ中継基板83及び/又はカメラモジュール84にリセット要因が発生した場合には、サブCPU71によりリセットラインL3を介してカメラ制御LSI83aのリセットポートがオン状態に設定され、カメラ制御LSI83a及びカメラモジュール84がリセットされる。
[サブCPUの演出制御の動作概要]
サブCPU71は、サブROM72に記憶されているプログラムに基づいて、主に、液晶表示装置10の表示制御、スピーカ17L,17Rの出力制御、各種LED(101〜103,111〜114)の発光制御等の演出制御を行う。さらに、サブCPU71は、サブROM72に記憶されているプログラムに基づいて、タッチセンサモジュール81及びカメラモジュール82を用いた演出動作の制御も行う。
具体的には、サブCPU71は、主制御回路60から各種コマンド等を受信し、コマンドに含まれる各種情報をサブRAM73に格納する。なお、主制御回路60の状態に関するあらゆる情報が、コマンドにより送信されるので、副制御回路70は、主制御回路60の状態を逐一判断することができる。サブCPU71は、サブRAM73に記憶された遊技状態情報、内部当籤役情報等を参照しながら、プログラムを実行することにより、液晶表示装置10、スピーカ17L,17R、各種LED101〜103,111〜114、タッチセンサモジュール81及びカメラモジュール82等のサブデバイスに行わせる演出の内容を決定する。
なお、演出データ等を決定する際には、サブCPU71は、サブROM72に記憶されている乱数取得プログラムを実行することにより、演出データ等を決定するための乱数値を取得する。ただし、主制御回路60と同様に乱数発生器及びサンプリング回路を副制御回路70内に設ける場合には、当該処理は不要である。
次いで、サブCPU71は、決定した演出データに基づいて、GPU75を介して液晶表示装置10を制御するとともに、スピーカ17L,17Rから出力させる音声と各種LED101〜103,111〜114の発光とを制御する。また、この際、必要に応じて、サブCPU71は、タッチセンサモジュール81及びカメラモジュール82による所定の演出動作も制御する。
なお、上部パネル用LED101、腰部パネル用LED103、下部パネル用LED102は、実際には、それぞれ、複数のLEDで構成されており、この各LEDはそれぞれ個別に設けられたポート(不図示)の入出力処理で制御される。すなわち、各ポートにそれぞれ接続されたLEDの発光を個別に制御することができる。
[サブROMの構成]
次に、図11を参照して、サブROM72(カートリッジROM)の内部構成について説明する。なお、図11は、サブROM72に設けられる各種データ領域の構成を示す図である。
サブROM72には、図11に示すように、オペレーティングシステム(以下、OSと記す)を記憶するOS領域72a、サブCPU71が実行するプログラムを記憶するサブ制御プログラム記憶領域72b、ゲームデータ初期化設定データ領域72c、係員操作初期設定データ領域72d、各種テーブル等を記憶する各種プログラムテーブル領域72e、プログラム管理データ領域72f、画像データ(静止画/動画)領域72g、サウンドデータ領域72h、及び、役物可動データ領域72iが設けられる。
なお、サブ制御プログラム記憶領域72bには、デバイスドライバ及び主制御回路60との通信を制御するための基板間通信処理、演出の内容を決定するための演出登録処理、登録されたLEDデータに基づいて各種LEDによる光の出力を制御するためのLED制御タスク、登録されたサウンドデータに基づいてスピーカ17L,17Rによる音の出力を制御するための音声制御タスク、登録されたアニメーションデータに基づいて液晶表示装置10による映像の表示制御を行うための描画制御タスク等を実行するためのプログラムが記憶される。
また、各種プログラムテーブル領域72eには、演出抽籤テーブル(不図示)、後述する副制御回路70のエラーコードテーブル(後述の図14参照)、後述するサブデバイスのエラーコードテーブル(後述の図15参照)、後述するサブデバイス通信チェックテーブル(後述の図21参照)等の各種テーブルが記憶される。
また、プログラム管理データ領域72fには、マジックコード、プログラムバージョン等の各種情報が記憶される。画像データ(静止画/動画)領域72gには、例えば、キャラクタオブジェクトデータと呼ばれるアニメーションデータ等が記憶される。サウンドデータ領域72hには、例えば、BGM(Back-Ground Music)や効果音などの音声データが記憶される。さらに、役物可動データ領域72iには、例えば、光の点灯パターン等のLED制御データが記憶される。
[サブRAMの構成]
次に、図12を参照して、サブRAM73(DRAM)の内部構成について説明する。なお、図12は、サブRAM73に設けられる各種データ領域の構成を示す図である。
サブRAM73には、図12に示すように、サブ制御ゲームデータ領域73a、サブ制御ゲームデータサム値領域73b、ワーク領域73c、係員操作設定データ領域73d、エラー情報履歴格納領域73e(エラー情報格納部)、通信ログ収集用リングバッファ領域73f及び通信エラー保存バッファ領域73gが設けられる。また、サブRAM73には、その他の作業領域73hも設けられる。
なお、サブ制御ゲームデータ領域73aには、遊技の進行に関するゲームデータを含む情報のうち、サブRAM73に記憶されるデータが記憶される。サブ制御ゲームデータサム値領域73bには、サブ制御ゲームデータ領域73aに記憶されたゲームデータのチェックサム用のサム値(4バイト)が記憶される。ワーク領域73cには、各種処理に必要な各種データが記憶される。係員操作設定データ領域73dには、液晶表示装置10の表示画面に表示されるメニュー画面での設定項目に対応する係員操作設定データが記憶される。
また、サブ制御ゲームデータ領域73a及びワーク領域73cは、サブCPU71が各プログラムを実行する際に、作業用一時記憶手段として使用される。さらに、サブ制御ゲームデータ領域73aは、例えば、主制御回路60から送信されたコマンド、演出データ情報、遊技状態情報、内部当籤役情報、表示役情報、各種カウンタの値、4バイト〜8バイトからなる任意のマジックコード、及び、各種フラグ等の情報が記憶される。
エラー情報履歴格納領域73eには、サブCPU71が備える各種エラー検出機能(後述の例えば、通信エラー検出手段71a、手順検出手段71b、データ破壊検出手段71c、サブデバイスエラー検出手段71h等)により検出された全てのエラー情報が記憶される。
具体的には、エラー情報履歴格納領域73eには、後述の通信エラー検出手段71aにより検出されたエラーがCOMエラーとして記憶され、後述の手順検出手段71bにより検出された--エラーが手順異常エラーとして記憶される。また、エラー情報履歴格納領域73eには、後述のデータ破壊検出手段71cにより検出されたエラーがデータ破壊エラーとして記憶され、後述のサブデバイスエラー検出手段71hにより検出されたエラーがスケーラエラーとして記憶される。なお、本実施形態では、エラー情報履歴格納領域73eにエラーコードが逐次記憶され、これにより、エラーの履歴情報が作成される。
ここで、図13〜図15を用いて、エラー情報履歴格納領域73eの構成、及び、エラー情報履歴格納領域73eに記憶される各種エラーコードの内容をより詳細に説明する。なお、図13は、エラー情報履歴格納領域73eの構成を示す図である。図14は、副制御回路70に関するエラーコードの内容を示す表であり、主制御回路60から副制御回路70に送信されるエラーコードの種別及びその内容を示す表である。そして、図15は、サブデバイス群100に含まれるサブデバイスに関するエラーコードの内容を示す表であり、サブデバイス群100から副制御回路70に送信されるエラーコードの種別及びその内容を示す表である。
エラー情報履歴格納領域73eには、図13に示すように、エラーコード(「ERROR CODE」)、エラー発生日時(「発生」)及びエラー解除日時(「解除」)を1組とするデータセット(以下、エラー情報履歴という)が記憶される。そして、エラー情報履歴格納領域73eは、このエラー情報履歴(データセット)を128個格納できる構成を有する。
なお、エラー情報履歴格納領域73eに格納されるエラーコードは、1バイトのデータである。そして、エラーコードが副制御回路70に関するものである場合には、図14に規定されている各種エラーコードの中から、所定のエラーコードが、エラー情報履歴格納領域73e内のエラーコードの領域に格納される。
例えば、通信エラーが発生した場合には、図14中の「COMエラー(COM ERR ALM)」に対応するエラーコードがエラー情報履歴格納領域73e内のエラーコードの領域に格納される。また、例えば、操作手順エラーが発生した場合には、図14中の「手順異常(BLS 123PE)」に対応する所定のエラーコードがエラー情報履歴格納領域73e内のエラーコードの領域に格納される。また、例えば、データ破壊エラーが発生した場合には、図14中の「サム異常(MEM ERR ALM)」に対応する所定のエラーコードがエラー情報履歴格納領域73e内のエラーコードの領域に格納される。さらに、例えば電断エラーが発生した場合には、図14中の「本体(POWER DOWN)」に対応する所定のエラーコードがエラー情報履歴格納領域73e内のエラーコードの領域に格納される。
また、エラーコードがサブデバイスに関するものである場合には、図15に規定されている各種エラーコードの中から、所定のエラーコードが、エラー情報履歴格納領域73e内のエラーコードの領域に格納される。
例えば、サブデバイスIDが存在しない場合には、図15中の「サブデバイスID異常(SD COM DVC)」に対応する所定のエラーコードがエラー情報履歴格納領域73e内のエラーコードの領域に格納される。また、例えば、サブデバイスがリセットされた場合には、図15中の「リセット発生(SD RST)」に対応する所定のエラーコードがエラー情報履歴格納領域73e内のエラーコードの領域に格納される。
また、例えば、スケーラ制御基板80に関して、データサイズが256バイトを超えている場合には、図15中のスケーラの「データサイズ異常(SCL COM SIZ)」に対応する所定のエラーコードがエラー情報履歴格納領域73e内のエラーコードの領域に格納される。また、例えば、サブCPU71及びスケーラ制御基板80間の通信が断絶した場合又は再開した場合には、それぞれ図15中のスケーラの「通信断絶(SCL DSC)」又は「通信再開(SCL RSM)」に対応するエラーコードがエラー情報履歴格納領域73e内のエラーコードの領域に格納される。さらに、例えば、スケーラ制御基板80に関して、輝度、輪郭又は補間設定が異常であるときには、それぞれ図15中の「輝度設定異常(SCL SET ERR1)」、「輪郭設定異常(SCL SET ERR2)」又は「補間設定異常(SCL SET ERR3)」に対応するエラーコードがエラー情報履歴格納領域73e内のエラーコードの領域に格納される。
また、例えば、タッチセンサ中継基板81に関して、データサイズが256バイトを超えている場合には、図15中のタッチセンサの「データサイズ異常(TS COM SIZ)」に対応する所定のエラーコードがエラー情報履歴格納領域73e内のエラーコードの領域に格納される。また、例えば、サブCPU71及びタッチセンサ中継基板81間の通信が断絶した場合又は再開した場合には、それぞれ図15中のタッチセンサの「通信断絶(TS DSC)」又は「通信再開(TS RSM)」に対応するエラーコードがエラー情報履歴格納領域73e内のエラーコードの領域に格納される。
さらに、例えば、カメラ中継基板83に関して、データサイズが256バイトを超えている場合には、図15中のカメラの「データサイズ異常(CCD COM SIZ)」に対応する所定のエラーコードがエラー情報履歴格納領域73e内のエラーコードの領域に格納される。また、例えば、サブCPU71及びカメラ中継基板83間の通信が断絶した場合又は再開した場合には、それぞれ図15中のカメラの「通信断絶(CCD DSC)」又は「通信再開(CCD RSM)」に対応するエラーコードがエラー情報履歴格納領域73e内のエラーコードの領域に格納される。
なお、エラー情報履歴格納領域73eに格納されるエラー発生日時及びエラー解除日時のそれぞれにおいて、「年」データは2バイトデータであり、「月」データは1バイトデータであり、「日」データは1バイトデータであり、「分」データは1バイトデータであり、そして、「秒」データは1バイトデータである。
次に、図16に、通信ログ収集用リングバッファ領域73fの構成を示す。通信ログ収集用リングバッファ領域73fには、図16に示すように、256セットのコマンド及びパラメータのデータ組と、各データ組みに対応する1つのバッファインデックス(「0」〜「255」)とからなるデータ群が適宜記憶され、それらのデータがリングバッファとして機能する。
また、図17に、通信エラー保存バッファ領域73gの構成を示す。通信エラー保存バッファ領域73gには、256セットのコマンド及びパラメータのデータ組と、各データ組みに対応する1つのバッファインデックス(「0」〜「255」)とからなるデータ群が、1024個記憶される。また、通信エラー保存バッファ領域73gには、1024個のデータ群のバッファインデックス(「1」〜「1024」)のうち、どのバッファインデックスが選択されているかを示すバッファ選択インデックスが1つ記憶される。
[バックアップRAMの構成]
次に、図18を参照して、バックアップRAM74の内部構成について説明する。なお、図18は、バックアップRAM74に設けられる各種データ領域の構成を示す図である。
バックアップRAM74には、図18に示すように、第1バックアップデータ領域74a、第1バックアップデータサム値領域74b、第1バックアップデータ領域74aのミラーリングである第2バックアップデータ領域74c、第2バックアップデータサム値領域74d、係員バックアップデータ領域74e、係員バックアップデータサム値領域74f及びエラー情報履歴格納領域74gが設けられる。
上述のように、本実施形態では、第1バックアップデータ領域74a及び第2バックアップデータ領域74cは、単体のバックアップRAM74に設けられる。なお、ここでいう「ミラーリング」とは、データを複製することを意味し、データを別のストレージに複製するという意味に限定されるものではない。また、第1バックアップデータ領域74a及び第2バックアップデータ領域74cには、それぞれ、4バイト〜8バイトからなる任意のマジックコードが設けられる。
[送受信データのデータフォーマット]
次に、図19及び図20を参照して、サブCPU71及びサブデバイス間の通信において、送受信される各種データのフォーマットと、送受信データの内容について説明する。
図19は、送受信コマンドデータフォーマットの一例を示す図である。なお、図19中の「STX」はスタートテキストを示し、「ADR」は送信元ID及び送信先IDを示す。また、図19中の「CMD」はコマンドを示し、「DATA1」〜「DATA256」はコマンドに対応した最大256バイトのデータ群を示し、「ETX」はエンドテキストを示し、「SUM」はエンドテキストまでのサム値を示す。
図20は、図19で規定されている送受信コマンドデータフォーマット中の「STX」〜「SUM」までの各データの内容を示すテーブルである。例えば、送受信コマンドデータ中の「ADR」において、送信元にタッチセンサ中継基板81のID「03h」が示され、送信先にサブCPU71(サブ基板)のID「02h」が示され、「CMD」には「83h」が示され、かつ、「DATA1」等においてタッチ操作による操作XY座標データが示されている場合には、タッチセンサ中継基板81からサブCPU71に、検出したタッチ操作により入力されたタッチセンサモジュール82上のXY座標値のデータが送信されたことを示す。
また、サブCPU71と各サブデバイス(制御(中継)基板)との間で行うポーリング動作において、サブCPU71から各制御(中継)基板に送信するポーリングコマンドデータ、及び、各制御(中継)基板からサブCPU71に返信されるアンサコマンドデータのフォーマットも図19に示すフォーマットと同様の構成を有する。なお、図20には図示しないが、本実施形態では、ポーリングコマンドデータ及びアンサコマンドデータに対してそれぞれ特定の「CMD」が付与されている。
[サブデバイス通信チェックテーブル]
次に、図21を参照して、各種プログラムテーブル領域72eに格納されているサブデバイス通信チェックテーブル(サブデバイス通信データ整合性チェックテーブル)について説明する。サブデバイス通信チェックテーブルは、例えば後述のサブデバイス受信データ判定処理(後述の図126参照)等の処理で使用される。
サブデバイス通信チェックテーブルは、サブCPU71が、例えばタッチセンサ中継基板81等のサブデバイスから受信したデータのコマンド種別及びコマンドパケットサイズが正しいか否かを判断するために用いられる。例えば、サブCPU71は、サブデバイス通信チェックテーブルに基づき、「判定4」の判定処理として、タッチセンサ中継基板81からの「CMD」が「84h」のフリック操作であるか否か、及び、そのコマンドのDATAサイズが5バイトである否かを判断する。そして、サブCPU71は、「判定4」の判定処理が終了すると「判定5」の判定処理を行う。
[サブCPUが備えるエラー監視機能]
次に、本実施形態のパチスロ1において、サブCPU71が備える各種エラー監理機能(手段)の内容について説明する。
サブCPU71は、図9に示すように、エラー監視手段として、通信エラー検出手段71aと、手順検出手段71bと、データ破壊検出手段71cと、エラー情報登録手段71dと、受信データログ保存手段71eと、エラー情報履歴表示手段71fと、二次元コード変換手段71gと、サブデバイスエラー検出手段71hとを備える。
通信エラー検出手段71aは、後述するCOMエラーチェック処理(後述の図109参照)を実行することにより、主制御回路60及び副制御回路70間の通信処理においてエラーが発生したことを検出する。
手順検出手段71bは、後述する主基板通信受信コマンドチェック処理(後述の図108参照)を実行することにより、通常の遊技の操作手順と異なる手順、すなわち、異常な操作手順で遊技が進行したことを検出する。
データ破壊検出手段71cは、後述する図104に示すサブCPU71の主基板通信タスク中の主基板受信データBCC(Block Check Character)チェック処理(サブ制御ゲームデータ保存領域のBCCチェック処理)を実行することにより、サブRAM73のサブ制御ゲームデータ領域73a(図12参照)のデータ破壊、特に、主制御回路60から受信したコマンド、演出データ情報、遊技状態情報、内部当籤役情報、表示役情報、各種カウンタ及び各種フラグ等のデータ破壊を検出する。
エラー情報登録手段71dは、エラーの各種検出手段によりエラー発生が検出された場合に、検出されたエラーに対応するエラーコードをサブRAM73のエラー情報履歴格納領域73eに逐次記憶する。これにより、エラー情報履歴が作成される。
具体的には、例えば、通信エラー検出手段71aにより通信エラーの発生が検出された場合には、エラー情報登録手段71dは、エラー情報履歴格納領域73eに、図14中の「COMエラー」に対応するエラーコード(「COM ERR ALM」のエラーコード)を記憶する。また、例えば、手順検出手段71bにより手順異常エラーの発生が検出された場合には、エラー情報登録手段71dは、エラー情報履歴格納領域73eに、「手順異常」に対応する所定のエラーコード(例えば、「BLS 123PE」のエラーコード)を記憶する。また、例えば、データ破壊検出手段71cによりサブ制御ゲームデータ領域73aのデータ破壊(サム異常エラー)が検出された場合には、エラー情報登録手段71dは、エラー情報履歴格納領域73eに、図14中の「サム異常」に対応するエラーコード(「MEM ERR ALM」のエラーコード)を記憶する。さらに、例えば、後述のサブデバイスエラー検出手段71hによりスケーラ制御基板80の輝度設定異常のエラーが検出された場合には、エラー情報登録手段71dは、エラー情報履歴格納領域73eに、図15中のスケーラの「輝度設定異常」に対応するエラーコード(「SCL SET ERR1」のエラーコード)を記憶する。
受信データログ保存手段71eは、後述する主基板通信受信データログ保存処理(後述の図105参照)を実行することにより、受信ログ(以下、通信ログともいう)に関する情報を収集する。さらに、受信データログ保存手段71eは、その処理の中で後述する主基板通信受信データログ一時領域保存処理(後述の図106参照)を実行することにより、サブRAM73の通信ログ収集用リングバッファ領域73fに通信ログを1つだけ一時的に保存する。また、受信データログ保存手段71eは、通信エラー検出手段71aにより通信エラーの発生が検出された場合には、後述する主基板通信エラー履歴データ保存処理(後述の図107参照)を実行することにより、サブRAM73の通信エラー保存バッファ領域73gに、通信エラーに関する通信ログ(以下、通信エラーログという)を1024個まで保存する。
エラー情報履歴表示手段71fは、ドアキー2に対して所定操作が行われた場合に、サブRAM73のエラー情報履歴格納領域73eに記憶された過去の各種エラー情報履歴を液晶表示装置10に表示する。なお、エラー情報履歴表示手段71fによるエラー情報履歴の表示動作については、後で詳述する。
二次元コード変換手段71gは、通信エラー検出手段71aにより通信エラーの発生が検出された場合に、サブRAM73の通信エラー保存バッファ領域73gに記憶された通信エラーに関する通信エラーログ、及び、送信先である外部のデータ管理サーバ(不図示)のドメインを送信情報として二次元コードに変換する。そして、二次元コード変換手段71gは、生成された二次元コードのデータをエラー情報履歴表示手段71fに出力する。そして、二次元コードは、後述するように、エラー情報履歴表示手段71fによりエラー情報履歴の確認画面に表示される(後述の図24参照)。
サブデバイスエラー検出手段71hは、サブCPU71及び各種サブデバイス(スケーラ制御基板80、タッチセンサ中継基板81、カメラ中継基板83等)間において通信エラーやその他のエラーが発生したか否かを検出する。
例えば、サブデバイスエラー検出手段71hが後述のサブデバイスコマンド受信処理(後述の図118参照)を実行することにより検出されたエラーは、エラー情報登録手段71dにより、エラー情報履歴格納領域73eに記憶される。この際、該検出されたエラーは、エラーの内容に応じて、例えば、図15中に示す「先頭がSTX以外、ETX未受信」のエラーコード(「SD COM STX」のエラーコード)として記憶される。また、例えば、サブデバイスエラー検出手段71hがタッチセンサ中継基板81等のサブデバイスにリセットの発生を検出した場合には、図15中に示す「リセット発生」のエラーコード(例えば「TS RST」のエラーコード等)が、エラー情報登録手段71dにより、エラー情報履歴格納領域73eに記憶される。なお、これらのエラーコードは、エラー情報履歴格納領域73eに記憶されるエラー情報履歴に含められる。
[エラー情報の各種表示動作]
ここで、サブCPU71によるエラー情報の各種表示動作について説明する。
(1)エラー情報の表示画面
本実施形態において、例えばゴト行為と呼ばれる不正行為等の何らかの原因によりサブRAM73のデータが破壊された場合には、副制御回路70の制御により、液晶表示装置10の表示画面において、RAMデータに異常が生じたため遊技を続行できない旨の報知が行われる。図22に、その報知例を示す。
例えば、主制御回路60から受信したコマンド、演出データ情報、遊技状態情報、内部当籤役情報、表示役情報、各種カウンタ、各種フラグ等のデータの一部又は全部が消去された場合には、図22に示すように、液晶表示装置10の表示画面に「RAMデータ異常遊技を続行できません。設定変更を行ってください。」の警告が表示され、エラーが発生したことが報知される。なお、本実施形態では、この警告文は、液晶表示装置10の表示画面内の図柄表示領域4L、4C、4Rを除いた部分に表示される。このような報知を行うことにより、ゴト行為の抑制効果が期待できる。
(2)メニュー画面の表示操作
本実施形態において、例えば、遊技店の係員(ホール管理者)によりドアキー2に対して所定操作(例えばフロントドア1bの開放操作に対応する操作)が行われた場合には、パチスロ1の各種設定に対して変更等の操作を行うためのメニュー画面が液晶表示装置10の表意画面に表示される。図23に、そのメニュー画面の一例を示す。
図23に示すメニュー画面の例では、例えばホール管理者がメニュー画面に列挙された各種メニュー(図23の例では、「時刻設定」、「ガイドオプション」、「設定変更・確認履歴」、「エラー情報履歴」、「監視履歴」、「警告表示設定」、「自動音量調整機能」)の中から、所定のメニューを選択及び決定することにより、選択したメニューの設定/変更/確認等を行うための画面が表示される。
(3)エラー情報履歴の確認画面
本実施形態では、図23に示すメニュー画面において、「エラー情報履歴」のメニューを選択及び決定することにより、エラー情報履歴の確認画面が表示される。図24に、本実施形態のパチスロ1で表示されるエラー情報履歴の確認画面の一構成例を示す。
図24に示すように、エラー情報履歴の確認画面には、過去に発生したエラー情報履歴が時系列で表示される。この際、最も新しいエラー情報履歴が確認画面の最上欄(エラー番号「1」の欄)に表示される。また、本実施形態では、各エラー情報履歴は、「エラー内容」、エラーの「発生日時」及びエラーの「解除日時」のデータセットとして表示される。なお、エラー情報履歴の確認画面中の「エラー内容」の欄には、図14及び図15で説明した各種エラーコードの中から発生したエラーに対応するエラーコードが表示される。
また、本実施形態では、エラー情報履歴の確認画面において、所定のエラー情報履歴が選択された場合には、確認画面内の所定位置に、選択したエラー情報履歴に対応する二次元コードが表示される。例えば、図24に示す例では、「COM ERR ALM」のエラー情報履歴が選択され、該エラー情報履歴に対応する二次元コード300がエラー情報履歴の一覧表の右側の空き領域に表示される。
なお、本実施形態では、サブCPU71により通信エラーの発生が検出された場合に限り、通信エラー情報を二次元コード300に変換する。それゆえ、必要以上に二次元コードを作成しないので、制御を簡素化することができる。なお、二次元コード300の構成については、後で詳述する。
また、図24に示すエラー情報履歴の確認画面の例において、エラー番号「10」の欄に記載のエラーコード「BLS 123PE」に関するエラー内容の意味についても簡単に説明する。「BLS 123PE」に対応する操作手順では、通常、メダル等の投入操作を表す「B」の手順の後、レバー操作によるリールの回転開始を表す「L」及び「S」の手順、第1リールの停止操作を表す「1」の手順、第2リールの停止操作を表す「2」の手順、第3リールの停止操作を表す「3」の手順、支払操作を表す「P」の手順がこの順で続いて遊技が終了する。
しかしながら、図24に示す例では、「エラー内容」の記載において、数字の「1」が丸印で囲まれている。これは、第1リールの停止操作の手順を取りこぼしたことを表す。なお、取りこぼした操作の手順を示す手法としては、丸印で囲む以外に、文字の色を変える、書体を変える、文字の線を太くするなどの手法を用いてもよい。
(4)二次元コードの構成
本実施形態において、エラー情報履歴の確認画面に表示される二次元コード300は、パチスロ1の外部に設けられた解析用の情報処理装置に送信される情報である。二次元コード300を解析用の情報処理装置を送信することにより、外部の情報処理装置でエラーの原因を解析して特定することが可能になり、その解析結果をパチスロ1のその後の改良等に利用することができる。なお、図示しないが、このエラー情報の送信処理では、二次元コード300のエラー情報は、例えば、一旦、係員の携帯端末等により読み取られ、該携帯端末等から外部の情報処理装置のデータ管理サーバに送信される。
ここで、図25を参照しながら、二次元コード300に含まれる送信情報について説明する。図25は、二次元コード300に含まれる送信情報のフォーマットを示す図である。
二次元コード300に含まれる送信情報は、図25に示すように、192バイトからなる情報で構成される。なお、送信情報は、本実施形態のパチスロ1だけでなく、他機種のパチスロ等で記録されたエラー情報も送信できるように汎用的な構成になっている。
送信情報の0バイト目〜28バイト目の領域には、データ管理サーバ(不図示)のドメインと、データ管理サーバに対するリクエストを示すデータとがセットされる。送信情報の29バイト目〜39バイト目の領域には、パチスロ1を識別するための筐体固有コードがセットされる。送信情報の40バイト目〜61バイト目の領域は、予備領域である。送信情報の62バイト目〜67バイト目の領域には、送信情報生成時の時刻がセットされる。送信情報の68バイト目〜71バイト目の領域には、パチスロ1の種別を示す機種コードがセットされる。
また、送信情報の72バイト目〜73バイト目の領域には、種別番号がセットされる。なお、ここでは、72バイト目及び73バイト目の両方の領域には情報「3FH」を設定する。送信情報の74バイト目〜75バイト目の領域には、エラーの種類を示す情報がセットされる。送信情報の76バイト目〜188バイト目の領域には、エラー情報がセットされる。そして、送信情報の189バイト目〜191バイト目の領域には、チェックサムがセットされる。
なお、送信情報の76バイト目〜188バイト目の領域に設定されるエラー情報は、1文字(6ビット)からなるコマンド種別を含む。そして、コマンド種別がパラメータを付随するものである場合には、その1文字のコマンド種別の後に2文字(12ビット)からなるパラメータが付加される。
図26に、送信情報に含まれるコマンド種別及びパラメータのテーブル例を示す。なお、図26に示すコマンド種別及びパラメータのテーブル例では、各受信コマンドにおける受信コマンドデータと、種別及びパラメータとの対応関係だけでなく、前回の受信コマンドにおける受信コマンドデータと、種別及びパラメータとの対応関係も示す。
また、送信情報に含まれる情報は、この例に限定されず、例えば、送信情報に遊技者の遊技記録に関する情報を含めてもよい。
上述のように、本実施形態では、サブCPU71は、通信エラーが発生した場合にのみ二次元コード300を作成する。ここで、図27A〜図27Cを参照して、COMエラー(通信エラー)が発生した場合における二次元コード300の情報の記録イメージを説明する。なお、図27A〜図27C中の数値はデータの文字数であり、「1」文字のデータはコマンド種別、「2」文字のデータは直前のコマンドに対するパラメータをそれぞれ示す。
まず、通信エラーが、例えば通常の遊技中に偶発的に発生した(図27Aの例では、「第1停止」と「第2停止」との間でCOMエラーが発生)場合を考える。この場合には、二次元コード300にエラー情報として記録されるデータは、図27Aに示すように、正常な処理の途中で通信エラー(COMエラー)が発生し、その直後から再び正常な処理が実行されたものとなる。
次に、通信エラーがゴト行為により発生したもので、パチスロ1に設定変更があった場合を考える。この場合には、二次元コード300にエラー情報として載せられるデータは、図27Bに示すように通信エラー(COMエラー)の発生直後に設定変更がなされたものとなる。さらに、通信エラーが発生してレバー操作による連続送信がなされた場合を考える。この場合には、二次元コード300にエラー情報として載せられるデータは、図27Cに示すように通信エラー(COMエラー)の発生直後からコマンド種別であるレバー操作とパラメータである成立役とが連続したものとなる。
(5)エラー情報履歴の表示動作
次に、サブCPU71の制御によるエラーの検出処理からエラー情報履歴の表示処理に至る一連の動作の概要を説明する。
本実施形態において、通信エラー検出手段71aにより通信エラーの発生が検出された場合には、エラー情報登録手段71dは、通信エラーに対応するエラーコードをサブRAM73のエラー情報履歴格納領域73eに記憶する。そして、受信データログ保存手段71eは、通信ログ収集用リングバッファ領域73fに通信ログを保存するとともに、通信エラー保存バッファ領域73gに通信エラーログを保存する。
また、通信エラー検出手段71a以外で、手順検出手段71b、データ破壊検出手段71c又はその他のエラー検出手段により通信エラー以外のエラーの発生が検出された場合には、エラー情報登録手段71dが、エラーに対応するエラーコードをサブRAM73のエラー情報履歴格納領域73eに記憶する。そして、受信データログ保存手段71eは、通信エラー保存バッファ領域73gに通信ログを保存せずに、通信ログ収集用リングバッファ領域73fに通信ログを保存する。
そして、係員等によりドアキー2に対して所定の操作が行われた場合には、エラー情報履歴表示手段71fは、エラー情報履歴格納領域73eに記憶されたエラー情報履歴を液晶表示装置10の表示画面に表示する。なお、本実施形態では、図24に示すようなエラー情報履歴の確認画面を液晶表示装置10に表示させる方法として、係員による通常操作及び簡易操作の2種類の操作法を採用している。
通常操作では、まず、係員がドアキー2を右回転させてフロントドア1bのロック機構を解放する。次いで、係員は、設定キーを操作して、設定キースイッチ27Sをオンし、液晶表示装置10の表示画面に、図23に示すメニュー画面を表示する。そして、係員は、操作キーを操作してメニュー内の「エラー情報履歴」の項目を選択する。通常操作では、このような操作手順により、図24に示すようなエラー情報履歴の確認画面が、液晶表示装置10の表示画面に表示される。
一方、簡易操作では、係員は、ドアキー2を左回転させてエラーのリセットを行い、その状態を一定時間(例えば5秒間以上)保持する。簡易操作では、このような操作手順により、図24に示すようなエラー情報履歴の確認画面が、液晶表示装置10の表示画面に表示される。
<サブCPUによるサブデバイスの作動状況の監視動作>
次に、サブCPU71による各サブデバイス及び各制御(中継)基板の作動状況の監視動作について説明する。上述のように、本実施形態のパチスロ1では、サブCPU71(「主」)は、各サブデバイス(「従」)の制御(中継)基板に対して所定周期でポーリングを行い、各サブデバイスの作動状況を個別に管理する。ここで、サブCPU71と、各サブデバイスの制御(中継)基板との間で行われる通信動作を、図面を参照しながら具体的に説明する。
なお、以下に説明する装置間の通信動作は、シリアル通信中継基板79を介して行うシリアル通信動作である。また、本実施形態では、起動時のポーリング順序は、スケーラ制御基板80、タッチセンサ中継基板81及びカメラ中継基板83の順とし、各制御(中継)基板におけるポーリングの周期は200msecとする。ただし、本発明はこれに限定されず、ポーリングの順序、及び、ポーリングの周期は任意に設定することができる。また、起動後、所定のサブデバイス(その制御基板又は中継基板)において、例えばエラー、処理負荷の増大等が発生した場合には、ポーリング順序が変更されることもある。
また、以下に説明する装置間の通信動作の説明では、サブデバイスの制御(中継)基板からサブCPU71に送信(返信)される各種データのうち、アンサコマンドデータ以外の送信データ、すなわち、サブデバイス(制御(中継)基板)の各種設定や各種動作(操作)などに関する所定の送信データを、「送信すべきデータ」という。
[サブCPU及びスケーラ制御基板間の通信動作]
まず、図28を参照して、サブCPU71及びスケーラ制御基板80間の各種通信動作(立上動作、正常時動作、通信断絶時動作及びリセット動作)について説明する。図28は、サブCPU71及びスケーラ制御基板80間における各種コマンドデータの送受信動作の時系列的な流れ(通信フロー)を示した図である。なお、図28に示す通信フローでは、説明を簡略化するため、サブCPU71及びスケーラ制御基板80間の立上動作、正常時動作、通信断絶時動作及びリセット動作をこの順で一つのフローにまとめて示すが、これは各通信動作が図28の通信フローに示す順で実行されることを意味するものでなく、各通信動作はそれぞれ別個に実行される。
(1)立上動作
最初に、スケーラ制御基板80を起動する(立ち上げる)際に行われる、サブCPU71及びスケーラ制御基板80間の通信動作(立上動作)について説明する。
スケーラ制御基板80の立ち上げ開始時に、サブCPU71からスケーラ制御基板80(スケーラ制御LSI80a)にポーリングコマンドデータが送信される(図28中の矢印C11)と、スケーラ制御基板80(スケーラ制御LSI80a)は、「起動パラメータ要求」のコマンドデータ(図20参照)をサブCPU71に返信する(C12)。
次いで、サブCPU71は、スケーラ制御基板80に「輝度設定」のコマンドデータ(図20参照)を送信する(C13)。なお、本実施形態では、サブCPU71からスケーラ制御基板80へのデータの送信動作は、送信するデータの種別に関係なく、ポーリングの周期(200msec)で行われる。それゆえ、C13のサブCPU71による「輝度設定」のコマンドデータの送信動作は、C11のポーリングコマンドデータの送信動作から200msec後に行われる。そして、スケーラ制御基板80は、「輝度設定」のコマンドデータを受信すると、「受信確認」のコマンドデータをサブCPU71に返信する(C14)。
次いで、サブCPU71は、スケーラ制御基板80に「輪郭設定」のコマンドデータ(図20参照)を送信する(C15)。そして、スケーラ制御基板80は、「輪郭設定」のコマンドデータを受信すると、「受信確認」のコマンドデータをサブCPU71に返信する(C16)。
次いで、サブCPU71は、スケーラ制御基板80に「補間設定」のコマンドデータ(図20参照)を送信する(C17)。そして、スケーラ制御基板80は、「補間設定」のコマンドデータを受信すると、「受信確認」のコマンドデータをサブCPU71に返信する(C18)。
次いで、サブCPU71は、スケーラ制御基板80に「設定完了」のコマンドデータ(図20参照)を送信する(C19)。そして、スケーラ制御基板80は、「設定完了」のコマンドデータを受信すると、「受信確認」のコマンドデータをサブCPU71に返信する(C20)。この通信動作により、スケーラ制御基板80の立ち上げ処理が終了する。
(2)正常時動作
次に、スケーラ制御基板80が正常動作中であり、かつ、スケーラ制御基板80(スケーラ制御LSI80a)からサブCPU71に送信すべきデータが無いときに行われる、サブCPU71及びスケーラ制御基板80間の通信動作(正常時動作)について説明する。
スケーラ制御基板80の正常動作中にサブCPU71からスケーラ制御基板80にポーリングコマンドデータが送信された際(C21)、スケーラ制御基板80(スケーラ制御LSI80a)からサブCPU71に送信すべきデータが無ければ、スケーラ制御基板80は、アンサコマンドデータをサブCPU71に返信する(C22)。その後、スケーラ制御基板80が正常動作中であり、かつ、スケーラ制御基板80からサブCPU71に送信すべきデータが無ければ、サブCPU71及びスケーラ制御基板80間において、このC21及びC22の通信動作が繰り返される。
(3)通信断絶時動作
次に、何らかの原因(不正行為も含む)により、スケーラ制御基板80(スケーラ制御LSI80a及び/又は解像度変換LSI80b)に異常が発生して、サブCPU71及びスケーラ制御基板80間の通信が途絶えたときに行われる、サブCPU71及びスケーラ制御基板80間の通信動作(通信断絶時動作)について説明する。
サブCPU71及びスケーラ制御基板80間に通信断絶が発生すると、サブCPU71からスケーラ制御基板80へのポーリングに対する、スケーラ制御基板80からサブCPU71へのアンサコマンドデータの返信動作が無くなる。それゆえ、通信断絶発生時には、サブCPU71及びスケーラ制御基板80間において、図28中の矢印C23及びC24に示すように、サブCPU71からスケーラ制御基板80へのポーリングコマンドデータの送信動作が200msecの周期で連続して発生する。
そして、サブCPU71及びスケーラ制御基板80間の通信が再開されると、サブCPU71からスケーラ制御基板80へのポーリングコマンドデータの送信動作(C25)に対して、スケーラ制御基板80は、アンサコマンドデータをサブCPU71に返信する(C26)。
本実施形態では、スケーラ制御基板80からサブCPU71へのアンサコマンドデータの返信動作が無い状態(C23〜C25までの期間)が5sec以上続いた場合、サブCPU71は、サブCPU71及びスケーラ制御基板80間に通信断絶のエラーが発生したと判断する。なお、スケーラ制御基板80からサブCPU71へのアンサコマンドデータの返信動作が無い状態の期間は、後述のサブデバイス通信断絶処理(後述の図131参照)で説明するように、サブRAM73に設けられたスケーラ通信断絶カウンタにより計測される。そして、サブCPU71及びスケーラ制御基板80間に通信断絶が発生したと判断された場合には、サブCPU71は、その通信断絶発生に関するエラーをエラー履歴に登録するとともに、スケーラ制御基板80をリセットする。
(4)リセット(再起動)動作
次に、スケーラ制御基板80をリセットして再起動する際に行われる、サブCPU71及びスケーラ制御基板80間の通信動作(リセット(再起動)動作)について説明する。
スケーラ制御基板80に何らかのリセット要因(例えば自己診断異常等)が発生している状態において、サブCPU71からスケーラ制御基板80にポーリングコマンドデータが送信されると(C27)、スケーラ制御基板80は、「リセット通知」のコマンドデータ(図20参照)をサブCPU71に返信する(C28)。この結果、サブCPU71によりスケーラ制御LSI80a及び解像度変換LSI80bがハードリセットされる。
その後、サブCPU71及びスケーラ制御基板80間では、上述したC11〜C20の通信動作と同じ通信動作(立上動作)が行われ、スケーラ制御基板80が再起動される。そして、スケーラ制御基板80の再起動が完了すると、サブCPU71からスケーラ制御基板80へのポーリングコマンドデータの送信動作(C29)に対して、スケーラ制御基板80は、アンサコマンドデータをサブCPU71に返信する(C30)。
本実施形態では、サブCPU71及びスケーラ制御基板80間において、上述のような各種通信動作を行うことにより、サブCPU71は、スケーラ制御基板80の作動状態を所定周期(200msec)で管理(監視)する。それゆえ、サブCPU71は、スケーラ制御基板80に何らかの異常が発生した場合には、その異常を確実に検出することができるとともに、スケーラ制御基板80をリセットする必要がある場合には、迅速に、スケーラ制御基板80をリセットすることができる。
[サブCPU及びタッチセンサ中継基板間の通信動作]
次に、図29を参照して、サブCPU71及びタッチセンサ中継基板81間の各種通信動作(各種操作時動作、正常時動作、通信断絶時動作及びリセット動作)について説明する。図29は、サブCPU71及びタッチセンサ中継基板81間における各種コマンドデータの送受信動作の時系列的な流れ(通信フロー)を示した図である。なお、図29に示す通信フローには、説明を簡略化するため、サブCPU71及びタッチセンサ中継基板81間の各種操作時動作、正常時動作、通信断絶時動作及びリセット動作をこの順で一つのフローにまとめて示すが、これは各通信動作が図29の通信フローに示す順で実行されることを意味するものでなく、各通信動作はそれぞれ別個に実行される。
(1)各種操作時動作
最初に、タッチセンサ中継基板81及びタッチセンサモジュール82の正常動作中に、遊技者により、タッチセンサモジュール82に対して何らかの操作(無操作も含む)が行われた際に行われる、サブCPU71及びタッチセンサ中継基板81間の通信動作(各種操作時動作)について説明する。
まず、タッチセンサ中継基板81(タッチセンサモジュール82)が正常動作中であり、かつ、タッチセンサモジュール82に対して遊技者による操作が行われていないとき(タッチセンサ中継基板81が送信すべきデータを持っていないとき)の通信動作について説明する。この場合には、サブCPU71からタッチセンサ中継基板81へのポーリングコマンドデータの送信動作(C41)に対して、タッチセンサ中継基板81(タッチセンサ制御LSI81a)は、アンサコマンドデータをサブCPU71に返信する(C42)。
しかしながら、タッチセンサモジュール82に対して遊技者によりタッチ操作が行われた場合(タッチセンサ中継基板81が「タッチ操作」に関する送信データを持っている場合)には、サブCPU71からタッチセンサ中継基板81へのポーリングコマンドデータの送信動作(C43)に対して、タッチセンサ中継基板81は、「タッチ操作」のコマンドデータ(図20参照)をサブCPU71に返信する(C44)。
また、タッチセンサモジュール82に対して遊技者によりフリック操作が行われた場合(タッチセンサ中継基板81が「フリック操作」に関する送信データを持っている場合)には、サブCPU71からタッチセンサ中継基板81へのポーリングコマンドデータの送信動作(C45)に対して、タッチセンサ中継基板81は、「フリック操作」のコマンドデータ(図20参照)をサブCPU71に返信する(C46)。
さらに、タッチセンサモジュール82に対して遊技者によりピッチ操作が行われた場合(タッチセンサ中継基板81が「ピッチ操作」に関する送信データを持っている場合)には、サブCPU71からタッチセンサ中継基板81へのポーリングコマンドデータの送信動作(C47)に対して、タッチセンサ中継基板81は、「ピッチ操作」のコマンドデータ(図20参照)をサブCPU71に返信する(C48)。なお、図29に示す通信フローでは、説明を簡略化するため、「タッチ操作」、「フリック操作」及び「ピンチ操作」の各通信動作をこの順で一つのフローにまとめて示すが、これは各通信動作が図29の通信フローに示す順で実行されることを意味するものでなく、各通信動作はそれぞれ別個に実行される。
(2)正常時動作
次に、タッチセンサ中継基板81及びタッチセンサモジュール82が正常動作中であり、かつ、タッチセンサ中継基板81(タッチセンサ制御LSI81a)からサブCPU71に送信すべきデータが無いときに行われる、サブCPU71及びタッチセンサ中継基板81間の通信動作(正常時動作)について説明する。
タッチセンサ中継基板81及びタッチセンサモジュール82の正常動作中にサブCPU71からタッチセンサ中継基板81にポーリングコマンドデータが送信された際(C49)、タッチセンサ中継基板81からサブCPU71に送信すべきデータが無ければ、タッチセンサ中継基板81は、アンサコマンドデータをサブCPU71に返信する(C50)。その後、タッチセンサ中継基板81及びタッチセンサモジュール82が正常動作中であり、かつ、タッチセンサ中継基板81からサブCPU71に送信すべきデータが無ければ、サブCPU71及びタッチセンサ中継基板81間において、このC49及びC50の通信動作が繰り返される。
(3)通信断絶時動作
次に、何らかの原因(不正行為も含む)により、タッチセンサ中継基板81及び/又はタッチセンサモジュール82に異常が発生して、サブCPU71及びタッチセンサ中継基板81間の通信が途絶えたときに行われる、サブCPU71及びタッチセンサ中継基板81間の通信動作(通信断絶時動作)について説明する。
サブCPU71及びタッチセンサ中継基板81間に通信断絶が発生すると、サブCPU71からタッチセンサ中継基板81へのポーリングに対する、タッチセンサ中継基板81からサブCPU71へのアンサコマンドデータの返信動作が無くなる。それゆえ、通信断絶発生時には、サブCPU71及びタッチセンサ中継基板81間において、図29中の矢印C51及びC52に示すように、サブCPU71からタッチセンサ中継基板81へのポーリングコマンドデータの送信動作が200msecの周期で連続して発生する。
そして、サブCPU71及びタッチセンサ中継基板81間の通信が再開されると、サブCPU71からタッチセンサ中継基板81へのポーリングコマンドデータの送信動作(C53)に対して、タッチセンサ中継基板81は、アンサコマンドデータをサブCPU71に返信する(C54)。
本実施形態では、タッチセンサ中継基板81からサブCPU71へのアンサコマンドデータの返信動作が無い状態(C51〜C53までの期間)が5sec以上続いた場合、サブCPU71は、サブCPU71及びタッチセンサ中継基板81間に通信断絶のエラーが発生したと判断する。なお、タッチセンサ中継基板81からサブCPU71へのアンサコマンドデータの返信動作が無い状態の期間は、後述のサブデバイス通信断絶処理(後述の図131参照)で説明するように、サブRAM73に設けられたタッチセンサ通信断絶カウンタにより計測される。そして、サブCPU71及びタッチセンサ中継基板81間に通信断絶が発生したと判断された場合には、サブCPU71は、その通信断絶発生に関するエラーをエラー履歴に登録するとともに、タッチセンサ中継基板81及びタッチセンサモジュール82をリセットする。
(4)リセット(再起動)動作
次に、タッチセンサ中継基板81をリセットして再起動する際に行われる、サブCPU71及びタッチセンサ中継基板81間の通信動作(リセット(再起動)動作)について説明する。
タッチセンサ中継基板81及び/又はタッチセンサモジュール82に何らかのリセット要因が発生している状態において、サブCPU71からタッチセンサ中継基板81にポーリングコマンドデータが送信されると(C55)、タッチセンサ中継基板81は、「リセット通知」のコマンドデータ(図20参照)をサブCPU71に返信する(C56)。この結果、サブCPU71によりタッチセンサ制御LSI81a及びタッチセンサモジュール82がハードリセットされ、タッチセンサ制御LSI81a及びタッチセンサモジュール82の再起動動作が実行される。
その後、サブCPU71は、タッチセンサ中継基板81に対して所定周期(200msec)でポーリングコマンドデータを送信するが、タッチセンサ中継基板81の再起動動作の期間中には、タッチセンサ中継基板81からサブCPU71にコマンドデータは返信されない。それゆえ、タッチセンサ中継基板81の再起動動作中には、サブCPU71及びタッチセンサ中継基板81間において、図29中の矢印C57及びC58に示すように、サブCPU71からタッチセンサ中継基板81へのポーリングコマンドデータの送信動作が200msecの周期で連続して発生する。そして、タッチセンサ中継基板81及びタッチセンサモジュール82の再起動が完了すると、サブCPU71からタッチセンサ中継基板81へのポーリングコマンドデータの送信動作(C59)に対して、タッチセンサ中継基板81は、アンサコマンドデータをサブCPU71に返信する(C60)。
本実施形態では、サブCPU71及びタッチセンサ中継基板81間において、上述のような各種通信動作を行うことにより、サブCPU71は、タッチセンサ中継基板81及びタッチセンサモジュール82の作動状態を所定周期(200msec)で管理(監視)する。それゆえ、サブCPU71は、タッチセンサ中継基板81及び/又はタッチセンサモジュール82に何らかの異常が発生した場合には、その異常を確実に検出することができるとともに、タッチセンサ中継基板81及びタッチセンサモジュール82をリセットする必要がある場合には、迅速に、タッチセンサ中継基板81及びタッチセンサモジュール82をリセットすることができる。
[サブCPU及びカメラ中継基板間の通信動作]
次に、図30を参照して、サブCPU71及びカメラ中継基板83間の各種通信動作(正常時動作、起動動作、読取モード設定動作、読取動作、停止動作、通信断絶時動作及びリセット動作)について説明する。図30は、サブCPU71及びカメラ中継基板83間における各種コマンドデータの送受信動作の時系列的な流れ(通信フロー)を示した図である。なお、図30に示す通信フローでは、説明を簡略化するため、サブCPU71及びカメラ中継基板83間の正常時動作、起動動作、読取モード設定動作、読取動作、停止動作、通信断絶時動作及びリセット動作をこの順で一つのフローにまとめて示すが、これは各通信動作が図30の通信フローに示す順で実行されることを意味するものでなく、各通信動作はそれぞれ別個に実行される。
(1)正常時動作
最初に、カメラ中継基板83及びカメラモジュール84が正常動作中であり、かつ、カメラ中継基板83(カメラ制御LSI83a)からサブCPU71に送信すべきデータが無いときに行われる、サブCPU71及びカメラ中継基板83間の通信動作(正常時動作)について説明する。
カメラ中継基板83及びカメラモジュール84の正常動作中にサブCPU71からカメラ中継基板83にポーリングコマンドデータが送信された際(C71)、カメラ中継基板83からサブCPU71に送信すべきデータが無ければ、カメラ中継基板83は、アンサコマンドデータをサブCPU71に返信する(C72)。その後、カメラ中継基板83及びカメラモジュール84が正常動作中であり、かつ、カメラ中継基板83からサブCPU71に送信すべきデータが無ければ、サブCPU71及びカメラ中継基板83間において、このC71及びC72の通信動作が繰り返される。
(2)起動動作
次に、カメラ中継基板83及びカメラモジュール84を起動する際に行われる、サブCPU71及びカメラ中継基板83間の通信動作(起動動作)について説明する。
まず、サブCPU71は、カメラ中継基板83(カメラ制御LSI83a)に「起動要求」のコマンドデータ(図20参照)を送信する(C73)。なお、本実施形態では、サブCPU71からカメラ中継基板83へのデータの送信動作は、送信するデータの種別に関係なく、ポーリングの周期(200msec)で行われる。次いで、カメラ中継基板83(カメラ制御LSI83a)は、「起動要求」のコマンドデータを受信すると、アンサコマンドデータをサブCPU71に返信する(C74)。これにより、カメラ中継基板83及びカメラモジュール84の起動動作が開始される。
そして、カメラ中継基板83及びカメラモジュール84の起動が完了すると、サブCPU71からカメラ中継基板83へのポーリングコマンドデータの送信動作(C75)に対して、カメラ中継基板83(カメラ制御LSI83a)は、アンサコマンドデータをサブCPU71に返信する(C76)。
(3)読取モード設定動作
次に、サブCPU71がカメラ中継基板83及びカメラモジュール84におけるデータの読取モードを設定する際に行われる、サブCPU71及びカメラ中継基板83間の通信動作(読取モード設定動作)について説明する。
まず、サブCPU71は、カメラ中継基板83(カメラ制御LSI83a)に「読取モード設定」のコマンドデータ(図20参照)を送信する(C77)。次いで、カメラ中継基板83(カメラ制御LSI83a)は、「読取モード設定」のコマンドデータを受信すると、読取モードを設定し、「読取モード設定完了」のコマンドデータ(図20参照)をサブCPU71に返信する(C78)。
(4)読取動作
次に、サブCPU71がカメラ中継基板83からデータを読み取る際に行われる、サブCPU71及びカメラ中継基板83間の通信動作(読取動作)について説明する。
まず、サブCPU71は、カメラ中継基板83(カメラ制御LSI83a)に「読取開始要求」のコマンドデータ(図20参照)を送信する(C79)。次いで、カメラ中継基板83(カメラ制御LSI83a)は、「読取開始要求」のコマンドデータを受信すると、アンサコマンドデータをサブCPU71に返信する(C80)。これにより、サブCPU71によるデータの読取動作が開始される。
その後、データの読取動作中には、サブCPU71からカメラ中継基板83へのポーリングコマンドデータの送信動作(C81)に対して、カメラ中継基板83(カメラ制御LSI83a)は、読取データをサブCPU71に送信する(C82)。
そして、データの読取動作が完了すると、サブCPU71からカメラ中継基板83へのポーリングコマンドデータの送信動作(C83)に対して、カメラ中継基板83(カメラ制御LSI83a)は、「読取完了」のコマンドデータ(図20参照)をサブCPU71に返信する(C84)。
(5)停止動作
次に、カメラ中継基板83及びカメラモジュール84の動作を停止する際に行われる、サブCPU71及びカメラ中継基板83間の通信動作(停止動作)について説明する。
まず、サブCPU71は、カメラ中継基板83(カメラ制御LSI83a)に「停止要求」のコマンドデータ(図20参照)を送信する(C85)。次いで、カメラ中継基板83(カメラ制御LSI83a)は、「停止要求」のコマンドデータを受信すると、アンサコマンドデータをサブCPU71に返信する(C86)。これにより、カメラ中継基板83及びカメラモジュール84の動作が停止される。
(6)通信断絶時動作
次に、何らかの原因(不正行為も含む)により、カメラ中継基板83及び/又はカメラモジュール84に異常が発生して、サブCPU71及びカメラ中継基板83間の通信が途絶えたときに行われる、サブCPU71及びカメラ中継基板83間の通信動作(通信断絶時動作)について説明する。
サブCPU71及びカメラ中継基板83間に通信断絶が発生すると、サブCPU71からカメラ中継基板83へのポーリングに対する、カメラ中継基板83からサブCPU71へのアンサコマンドデータの返信動作が無くなる。それゆえ、通信断絶発生時には、サブCPU71及びカメラ中継基板83間において、図30中の矢印C87及びC88に示すように、サブCPU71からカメラ中継基板83へのポーリングコマンドデータの送信動作が200msecの周期で連続して発生する。
そして、サブCPU71及びカメラ中継基板83間の通信が再開されると、サブCPU71からカメラ中継基板83へのポーリングコマンドデータの送信動作(C89)に対して、カメラ中継基板83は、アンサコマンドデータをサブCPU71に返信する(C90)。
本実施形態では、カメラ中継基板83からサブCPU71へのアンサコマンドデータの返信動作が無い状態(C87〜C89までの期間)が5sec以上続いた場合、サブCPU71は、サブCPU71及びカメラ中継基板83間に通信断絶のエラーが発生したと判断する。なお、カメラ中継基板83からサブCPU71へのアンサコマンドデータの返信動作が無い状態の期間は、後述のサブデバイス通信断絶処理(後述の図131参照)で説明するように、サブRAM73に設けられたカメラ通信断絶カウンタにより計測される。そして、サブCPU71及びカメラ中継基板83間に通信断絶が発生したと判断された場合には、サブCPU71は、その通信断絶発生に関するエラーをエラー履歴に登録するとともに、カメラ中継基板83及びカメラモジュール84をリセットする。
(7)リセット(再起動)動作
次に、カメラ中継基板83をリセットして再起動する際に行われる、サブCPU71及びカメラ中継基板83間の通信動作(リセット(再起動)動作)について説明する。
カメラ中継基板83及び/又はカメラモジュール84に何らかのリセット要因が発生している状態において、サブCPU71からカメラ中継基板83にポーリングコマンドデータが送信されると(C91)、カメラ中継基板83は、「リセット通知」のコマンドデータ(図20参照)をサブCPU71に返信する(C92)。この結果、サブCPU71によりカメラ制御LSI83a及びカメラモジュール84がハードリセットされ、カメラ制御LSI83a及びカメラモジュール84の再起動動作が実行される。
その後、サブCPU71は、カメラ中継基板83に対して所定周期(200msec)でポーリングコマンドデータを送信するが、カメラ中継基板83の再起動動作の期間中は、カメラ中継基板83からサブCPU71にコマンドデータは返信されない。それゆえ、カメラ中継基板83の再起動動作中は、サブCPU71及びカメラ中継基板83間において、図30中の矢印C93及びC94に示すように、サブCPU71からカメラ中継基板83へのポーリングコマンドデータの送信動作が200msecの周期で連続して発生する。そして、カメラ中継基板83及びカメラモジュール84の再起動が完了すると、サブCPU71からカメラ中継基板83へのポーリングコマンドデータの送信動作(C95)に対して、カメラ中継基板83は、アンサコマンドデータをサブCPU71に返信する(C96)。
本実施形態では、サブCPU71及びカメラ中継基板83間において、上述のような各種通信動作を行うことにより、サブCPU71は、カメラ中継基板83及びカメラモジュール84の作動状態を所定周期(200msec)で管理(監視)する。それゆえ、サブCPU71は、カメラ中継基板83及び/又はカメラモジュール84に何らかの異常が発生した場合には、その異常を確実に検出することができるとともに、カメラ中継基板83及びカメラモジュール84をリセットする必要がある場合には、迅速に、カメラ中継基板83をリセットすることができる。
<メインROMに記憶されているデータテーブルの構成>
次に、図31〜図44を参照して、メインROM32に記憶されている、各種遊技動作の制御に必要な各種データテーブルの構成について説明する。
[図柄配置テーブル]
まず、図31を参照して、図柄配置テーブルについて説明する。図柄配置テーブルは、左リール3L、中リール3C及び右リール3Rのそれぞれの回転方向における各図柄の位置と、各位置に配された図柄の種類を特定するデータ(以下、図柄コードという)との対応関係を規定する。
図柄配置テーブルでは、リールインデックスが検出されたときに、各図柄表示領域の枠内における中段領域に配置される図柄の位置を「0」と規定する。そして、各リールにおいて、図柄位置「0」を基準としてリールの回転方向(図31中の図柄位置「20」から図柄位置「0」に向かう方向)に進む順に、図柄カウンタに対応する値が、図柄位置「0」〜「20」として、各図柄に割り当てられる。
すなわち、図柄カウンタの値(「0」〜「20」)と、図柄配置テーブルとを参照することにより、各図柄表示領域の枠内における上段、中段及び下段の領域に表示されている図柄の種類を特定することができる。例えば、左リール3Lに対応する図柄カウンタの値が「7」であるとき、左図柄表示領域4Lの枠内における上段、中段及び下段の領域には、それぞれ、図柄位置「8」の「ドン1」、図柄位置「7」の「ベル1」及び図柄位置「6」の「リプレイ」に対応する図柄が表示されている。
[図柄組合せテーブル]
次に、図32を参照して、図柄組合せテーブルについて説明する。図柄組合せテーブルは、特典の種類に応じて予め定められた図柄の組合せと、表示役(格納領域)及び払出枚数との対応関係を規定する。
なお、図32には、後述する遊技状態(RT遊技状態)の移行契機となる図柄の組合せ(図32中の表示役の内容欄に記載の「上げ2目1」〜「上げ2目3」、「押し順ベル失敗1」〜「押し順ベル失敗4」、「SBこぼし目1」〜「SBこぼし目12」)も合わせて記載する。以下では、この遊技状態(RT遊技状態)の移行契機となる図柄の組合せを移行役ともいう。
本実施形態では、有効ラインに沿って、左リール3L、中リール3C及び右リール3Rにより表示される図柄の組合せが、図柄組合せテーブルに規定された図柄の組合せ(上記移行役は除く)と一致する場合に入賞と判定される。そして、入賞と判定されると、メダルの払い出し、再遊技の作動、ボーナスゲームの作動といった特典が遊技者に与えられる。なお、有効ラインに沿って表示された図柄の組合せが、図柄組合せテーブルに規定されている図柄の組合せのいずれとも一致しない場合には、いわゆる「ハズレ」となる。すなわち、本実施形態では、「ハズレ」に対応する図柄の組合せを図柄組合せテーブルに規定しないことにより、「ハズレ」の図柄の組合せを規定する。なお、本発明はこれに限定されず、図柄組合せテーブルに、「ハズレ」の項目を設けて、直接「ハズレ」を規定してもよい。また、図32に示す図柄組合せテーブル中の図柄「ANY」は、対応するリールに描かれた任意の図柄を表す。
図柄組合せテーブル中の表示役欄に記載の各種データは、有効ラインに沿って表示された図柄の組合せを識別するためのデータである。この表示役欄の「データ」は、1バイトのデータで表され、該データ中の各ビットに対して固有の図柄の組合せ(表示役の内容)が割り当てられる。
また、表示役欄の「格納領域」のデータは、対応する表示役の情報が格納される後述の表示役格納領域(後述の図46参照)を指定するためのデータである。なお、本実施形態では、7個の表示役格納領域(表示役格納領域1〜表示役格納領域7)を設ける。そして、本実施形態では、ビットパターン(1バイトのデータパターン)が同じであり、かつ、内容の異なる表示役は、「格納領域」の違いにより別の表示役として管理される。
図柄組合せテーブル中の払出枚数欄に記載の数値は、遊技者に対して払い出すメダルの枚数を表す。「払出枚数」のデータとして1以上の数値が付与されている図柄の組合せでは、その数値と同じ枚数のメダルの払い出しが行われる。本実施形態において、メダルの投入枚数が2枚である時に、表示役として、例えば、図32に示す図柄組合せテーブル中の「ベル」〜「BB中用役5」のいずれかが決定されたときには、10枚のメダルの払い出しが行われる。一方、メダルの投入枚数が3枚である時に、表示役として、例えば、図32に示す図柄組合せテーブル中の「ベル」〜「制御役3」のいずれかが決定されたときには、表示役の種別に応じて所定枚数(1、2、4及び6枚のいずれか)のメダルの払い出しが行われる。
また、本実施形態において、表示役として再遊技(リプレイ)に係る図柄の組合せ、例えば、図32の図柄組合せテーブルに示す「通常リプ」、「上げ1段階リプ1」〜「上げ2段階リプ2」及び「制御リプ1」〜「制御リプ3」に係る図柄の組合せのうちのいずれかが決定されたときには、再遊技の作動が行われる。さらに、表示役として「BB1」〜「BB4」のいずれかが決定されたときには、ビッグボーナスゲームの作動が行われ、表示役として「SB」が決定されたときには、シングルボーナスゲームの作動が行われる。
[ボーナス作動時テーブル]
次に、図33を参照して、ボーナス作動時テーブルについて説明する。ボーナス作動時テーブルは、ボーナスゲーム時に、メインRAM33に設けられた後述の遊技状態フラグ格納領域(後述の図48参照)、ボーナス終了枚数カウンタ、遊技可能回数カウンタ、及び、入賞可能回数カウンタに格納するデータを規定する。
遊技状態フラグは、作動中のボーナスゲームの種類を識別するためのデータである。本実施形態では、ボーナスゲームとして、4種類のビッグボーナス(「BB1」〜「BB4」)と、2種類のレギュラーボーナス(「RB1」,「RB2」)と、シングルボーナス(「SB」)とを設ける。そして、各ボーナスに対して個別の遊技状態フラグを付与する。なお、本実施形態はこれに限定されず、例えば、4種類のビッグボーナス(「BB1」〜「BB4」)に対して共通の遊技状態フラグを付与してもよい。
なお、「BB」作動時には、「RB」が連続作動するが、本実施形態では、「BB1」〜「BB3」作動時には、「RB1」が連続作動し、「BB4」作動時には「RB2」が連続作動する。
ボーナス作動時テーブルに規定されるボーナス終了枚数カウンタの数値は、ボーナスゲームの終了の契機となるメダルの払出枚数(規定枚数)を示すデータである。本実施形態では、「BB1」〜「BB3」の作動は、規定枚数「270」より多くの枚数のメダルの払い出しが行われた場合に終了し、「BB4」の作動は、規定枚数「60」より多くの枚数のメダルの払い出しが行われた場合に終了する。
具体的には、まず、ボーナス作動時テーブルで規定されている「ボーナス終了枚数カウンタ」の数値が、実際に、ボーナス終了枚数カウンタに格納される。次いで、BB作動後、メダルの払い出しが実施される度に、ボーナス終了枚数カウンタの値が減算される。そして、ボーナス終了枚数カウンタの値が「0」未満(負の値)になったことを条件に、「BB」の作動が終了する。
遊技可能回数カウンタは、RB作動時における、遊技可能な残りのゲームの回数、いわゆる遊技可能回数(本実施形態では12回)を管理するためのデータである。また、入賞可能回数カウンタは、RB作動時における、入賞に係る図柄の組合せを表示することが可能な残りのゲームの回数、いわゆる入賞可能回数(本実施形態では8回)を管理するためのデータである。
[遊技状態の遷移フロー]
次に、図34を参照して、本実施形態における遊技状態の遷移フローを説明する。主制御回路60において管理する主な遊技状態には、図34に示すように、「一般遊技状態」、「RT1遊技状態」(RT:リプレイタイム)、「RT2遊技状態」、「RT3遊技状態」、「RT4遊技状態」及び「BB遊技状態」(「BB1遊技状態」〜「BB4遊技状態」の総称)がある。なお、これらの遊技状態間では、リプレイの当籤確率及び/又は当籤するリプレイの種別が互いに異なる。また、図示しないが、主制御回路60において管理する遊技状態としては、1ゲームのみ他の遊技状態と併存する「SB遊技状態」や、「BB1遊技状態」〜「BB3遊技状態」において作動する「RB1遊技状態」、「BB4遊技状態」において作動する「RB2遊技状態」がある。
本実施形態では、「一般遊技状態」の遊技において、「SBこぼし目」(図32に示す図柄組合せテーブル中の「SBこぼし目1」〜「SBこぼし目12」のいずれか)に係る図柄組合せ(移行役)が有効ライン上に停止表示された場合、遊技状態は「一般遊技状態」から「RT1遊技状態」に遷移する。
「RT1遊技状態」の遊技において、「上げ1段階リプ1」に係る図柄組合せが有効ライン上に停止表示された場合には、遊技状態は「RT1遊技状態」から「RT2遊技状態」に遷移する。また、「RT1遊技状態」の遊技において、「押し順ベル失敗」(図32に示す図柄組合せテーブル中の「押し順ベル失敗1」〜「押し順ベル失敗4」のいずれか)に係る図柄組合せが有効ライン上に停止表示された場合には、遊技状態は「RT1遊技状態」から「一般遊技状態」に遷移する。
「RT2遊技状態」の遊技において、「上げ2段階リプ」(図32に示す図柄組合せテーブル中の「上げ2段階リプ1」又は「上げ2段階リプ2」)、又は、「上げ2目」(図32に示す図柄組合せテーブル中の「上げ2目1」〜「上げ2目3」のいずれか)に係る図柄組合せが有効ライン上に停止表示された場合には、遊技状態は「RT2遊技状態」から「RT3遊技状態」に遷移する。また、「RT2遊技状態」の遊技において、「SBこぼし目」に係る図柄組合せが有効ライン上に停止表示された場合、遊技状態は「RT2遊技状態」から「RT1遊技状態」に遷移する。さらに、「RT2遊技状態」の遊技において、「押し順ベル失敗」に係る図柄組合せが有効ライン上に停止表示された場合には、遊技状態は「RT2遊技状態」から「一般遊技状態」に遷移する。
「RT3遊技状態」の遊技において、「SBこぼし目」に係る図柄組合せが有効ライン上に停止表示された場合、遊技状態は「RT3遊技状態」から「RT1遊技状態」に遷移する。また、「RT3遊技状態」の遊技において、「押し順ベル失敗」に係る図柄組合せが有効ライン上に停止表示された場合には、遊技状態は「RT3遊技状態」から「一般遊技状態」に遷移する。
「一般遊技状態」及び「RT1遊技状態」〜「RT3遊技状態」のいずれかの遊技において、「BB」(「BB1」〜「BB4」のいずれか)に係る役が内部当籤役として決定された場合、遊技状態は、「一般遊技状態」及び「RT1遊技状態」〜「RT3遊技状態」のいずれかから「RT4遊技状態」に遷移する。また、「RT4遊技状態」の遊技において、「BB」(「BB1」〜「BB4」のいずれか)に係る図柄組合せが有効ライン上に停止表示された場合には、遊技状態は「RT4遊技状態」から「BB遊技状態」(「BB1遊技状態」〜「BB4遊技状態」のいずれか)に遷移する。さらに、「BB遊技状態」において、規定枚数(270枚又は60枚)のメダルが払い出されると(「BB」が終了すると)、遊技状態は「BB遊技状態」から「一般遊技状態」に遷移する。
[RT遷移テーブル]
ここで、図35に、図34で説明した遊技状態(RT遊技状態)の遷移形態をまとめたRT遷移テーブルを示す。RT遷移テーブルは、移行契機となる図柄の組合せ(移行役)と、遊技状態フラグの制御内容との対応関係を規定する。このRT遷移テーブルは、主制御回路60により実行される後述のRT制御処理(後述の図77参照)において、遊技状態フラグを更新する際に使用される。
具体的には、「押し順ベル失敗1」〜「押し順ベル失敗4」のいずれかに係る図柄組合せが有効ライン上に停止表示された場合、全ての遊技状態フラグがオフされる。これより、「一般遊技状態」が作動する。また、「SBこぼし目1」〜「SBこぼし目12」のいずれかに係る図柄組合せが有効ライン上に停止表示された場合には、RT1遊技状態フラグがオンされる。また、「上げ1段階リプ1」に係る図柄組合せが有効ライン上に停止表示された場合には、RT2遊技状態フラグがオンされる。また、「上げ2段階リプ1」、「上げ2段階リプ2」及び「上げ2目1」〜「上げ2目3」のいずれかに係る図柄組合せが有効ライン上に停止表示された場合には、RT3遊技状態フラグがオンされる。
なお、図35のRT遷移テーブルに規定する各移行役(表示役)は、後で詳述するように、所定の役が内部当籤役として決定された場合であり、かつ、予め定められた所定の停止操作順序に従ってリールの停止操作が行われた場合、所定の停止操作順序とは異なる停止操作順序でリールの停止操作が行われた場合、又は、適切なタイミングでリールの停止操作が行われなかった場合に、有効ライン上に停止表示される可能性がある表示役である。
[内部抽籤テーブル決定テーブル]
次に、図36を参照して、内部抽籤テーブル決定テーブルについて説明する。内部抽籤テーブル決定テーブルは、各遊技状態における、遊技状態フラグのオン/オフ情報と、後述の内部抽籤処理(後述の図73及び図74参照)において内部当籤役を決定するために用いる内部抽籤テーブルと、抽籤回数との対応関係を規定する。
例えば、SB遊技状態フラグ及びRT1遊技状態フラグにのみが「1(オン状態)」である場合、すなわち、「SB遊技状態」と「RT1遊技状態」とが併存して作動している場合には、内部抽籤テーブルとして「SB中RT1遊技状態用内部抽籤テーブル」が選択され、抽籤回数として「49」が選択される。また、例えば、全ての遊技状態フラグが「0(オフ状態)」である場合、すなわち、遊技状態が「一般遊技状態」である場合には、内部抽籤テーブルとして「一般遊技状態用内部抽籤テーブル」が選択され、抽籤回数として「49」が選択される。
[内部抽籤テーブル]
次に、図37〜図39を参照して、内部抽籤テーブルについて説明する。
内部抽籤テーブルは、後述する内部抽籤処理(後述の図73及び図74参照)において、内部抽籤を行う際、すなわち、内部当籤役を決定する際に参照されるテーブルである。内部抽籤テーブルは、各種当籤番号における、データポインタと、このデータポインタが決定されるときの抽籤値との対応関係を規定する。
データポインタは、内部抽籤テーブルを参照して行う抽籤の結果として取得されるデータであり、後述の内部当籤役決定テーブル(後述の図40及び図41参照)により規定される内部当籤役を指定するためのデータである。なお、データポインタには、小役・リプレイ用データポインタ及びボーナス用データポインタの2種類が設けられる。
図37は、遊技状態(RT遊技状態)が「一般遊技状態」及び「RT1遊技状態」〜「RT4遊技状態」のいずれかである場合に参照される内部抽籤テーブルである。なお、詳細に図示しないが、本実施形態では、遊技状態(RT遊技状態)が「SB中一般遊技状態」及び「SB中RT1遊技状態」〜「SB中RT4遊技状態」のいずれかである場合に参照する内部抽籤テーブルも設ける。これらの内部抽籤テーブルは、図37に示す遊技状態が「一般遊技状態」及び「RT1遊技状態」〜「RT4遊技状態」のいずれかである場合に参照される内部抽籤テーブルにおいて、当籤番号「1」の抽籤値のみを「1000」から「1001」に変更した内部抽籤テーブルである。
また、図38は、遊技状態が「BB1遊技状態」〜「BB3遊技状態」のいずれか(「RB1遊技状態」)である場合に参照される内部抽籤テーブルである。図39は、遊技状態が「BB4遊技状態」(「RB2遊技状態」)である場合に参照される内部抽籤テーブルである。
図37〜図39に示す内部抽籤テーブルにおいて、「当籤番号」欄の右欄には、データポインタに対応する内部当籤役の略称を示す。さらに、図38及び図39に示す各内部抽籤テーブルの右側には、データポインタに対応して、トップライン(上段)、センターライン(中段)及びボトムライン(下段)のいずれかのライン上に停止表示され得る図柄組合せの名称(停止形)を示-す。
なお、図38中の停止形の表に記載の例えば「ドンXXテンパイはずれ」とは、各リールの停止操作において、「XX」に対応するライン上(「上段」ならトップライン上)に「ドン図柄」(図31中の図柄「ドン1」又は「ドン2」)が停止表示可能なタイミングで停止操作が行われた場合、第1及び第2停止操操作では、対応するライン上に「ドン図柄」が停止表示されるが、第3停止操作では、対応するライン上に「ドン図柄」が停止表示されない停止形を意味する。
例えば、「RB1遊技状態」において、小役・リプレイ用データポインタとして「25」(当籤番号「2」)が決定されたときには、停止形は「ドン下段テンパイはずれ」になる。この停止形では、左リール3Lの下段領域及び中リール3Cの下段領域のそれぞれに「ドン図柄」が停止表示可能なタイミングで、左リール3L及び中リール3Cに対して停止操作が行われた場合、左リール3Lの下段領域及び中リール3Cの下段領域には、「ドン図柄」が停止表示されるが、右リール3Rの下段領域には、「ドン図柄」が停止表示可能なタイミングで右リール3Rに対して停止操作が行われた場合であっても、右リール3Rの下段領域には「ドン図柄」は停止表示されない。
一方、図38中の停止形の表に記載の「ドンXXテンパイあたり」とは、リールの停止操作において、「XX」に対応するライン上(「上段」ならトップライン上)に「ドン図柄」が停止表示可能なタイミングで停止操作が行われた場合に、対応するライン上の全ての図柄表示領域に、「ドン図柄」が停止表示される(「ドン図柄」−「ドン図柄」−「ドン図柄」の図柄組合せが停止表示される)停止形を意味する。
例えば、「RB1遊技状態」において、小役・リプレイ用データポインタとして「28」(当籤番号「5」)が決定されたときには、停止形は「ドン下段テンパイあたり」になる。この停止形では、左リール3Lの下段領域、中リール3Cの下段領域及び右リール3Rの下段領域のそれぞれに「ドン図柄」が停止表示可能なタイミングで、左リール3L、中リール3C及び右リール3Rに対して停止操作が行われた場合、ボトムライン上の全ての図柄表示領域に、「ドン図柄」が停止表示される(「ドン図柄」−「ドン図柄」−「ドン図柄」の図柄組合せが停止表示される)。
ここで、本実施形態における内部抽籤処理の内容を簡単説明する。内部抽籤処理では、まず、予め定められた数値の範囲(例えば、0〜65535)から抽出される乱数値を、各当籤番号に対応して規定された抽籤値で順次減算する。次いで、減算の結果が負になったか否か(いわゆる「桁かり」が生じたか否か)の判定(内部的な抽籤)を行う。そして、所定の当籤番号において減算の結果が負になった(「桁かり」が生じた)場合、その当籤番号に当籤したことになり、該当籤番号に割り当てられたデータポイントが取得される。
例えば、「一般遊技状態」において、抽出した乱数値が「1500」であり、図37に示す内部抽籤テーブルが参照された場合には、まず、メインCPU31は、「1500」から当籤番号「1」に対応する抽籤値「1000」を減算する。この場合、減算結果(1500−1000=500)は、正となる。
次いで、メインCPU31は、この減算後の値「500」から当籤番号「2」に対応する抽籤値「2100」を減算する。この場合、減算結果(500−2100=−1600)は、負となる。それゆえ、メインCPU31は、内部当籤役として当籤番号「2」、すなわち、小役・リプレイ用データポインタとして「13」を決定(取得)し、ボーナス用データポインタとして「0」を決定する。
上記内部抽籤処理の手法では、抽籤値として規定されている数値が大きい当籤番号ほど、割り当てられたデータ(つまり、データポインタ)が決定される確率が高い。なお、各当籤番号の当籤確率は、「各当籤番号に規定された抽籤値/抽出される可能性のある全ての乱数値の個数(乱数分母:65536)」によって表すことができる。
また、本実施形態では、後述するように、上述した内部抽籤処理以外に、抽籤値を用いた各種抽籤処理が行われる。しかしながら、これらの抽籤処理の手法は、上述した内部抽籤処理の手法と同様である。また、各種抽籤処理に対応してそれぞれ抽籤テーブルが設けられ、該抽籤テーブルには、抽籤により選択する可能性のある項目(例えば、当籤番号)に応じて適宜所定の抽籤値が規定される。上述のように、本実施形態では、内部抽籤処理以外の抽籤処理の手法は、上述した内部抽籤処理の手法と同様であるので、その説明を省略する。
[内部当籤役決定テーブル]
次に、図40及び図41を参照して、内部当籤役決定テーブルについて説明する。なお、本実施形態は、内部当籤役決定テーブルとして、ボーナス用内部当籤役決定テーブル(図40)及び小役・リプレイ用内部当籤役決定テーブル(図41)の2種類を用意する。
内部当籤役決定テーブルは、データポインタと、内部当籤役との対応関係を規定する。すなわち、データポインタが決定されると、内部当籤役決定テーブルにより内部当籤役のデータが一義的に取得される。なお、内部当籤役決定テーブルは、後述する内部抽籤処理(後述の図73及び図74参照)において、データポインタに基づいて内部当籤役を決定する際に参照される。
内部当籤役決定テーブル中の「内部当籤役」は、有効ラインに沿って表示を許可する、左リール3L、中リール3C及び右リール3Rの図柄の組合せを識別するためのデータである。「内部当籤役」は、図32に示した図柄組合せテーブル中の「表示役」と同様に、1バイトのデータで表され、該1バイトデータ中の各ビットに対して固有の図柄の組合せが割り当てられる。なお、データポインタが「0」のとき、「内部当籤役」の内容は「ハズレ」となるが、これは、図32に示した図柄組合せテーブルにより規定されている入賞に係る全ての表示役の図柄の組合せの表示が許可されないことを示す。
(1)ボーナス用内部当籤役決定テーブル
図40は、ボーナス用内部当籤役決定テーブルの構成を示す図である。ボーナス用内部当籤役決定テーブルは、ボーナス用データポインタの「1」〜「5」のそれぞれについて、ボーナスゲームの作動に係る内部当籤役を規定する。
なお、ボーナス用内部当籤役決定テーブル中の「○」印は、取得したボーナス用データポインタにおいて、当籤する内部当籤役を示す。例えば、ボーナス用データポインタとして「1」が取得された場合は、内部当籤役として「BB1」が当籤する。
また、例えば、ボーナス用データポインタとして「5」が決定された場合には、内部当籤役として「SB」が当籤する。なお、この場合、3つのリールに対して所定の停止順序で停止操作が行われたときには、有効ライン上に「SB」に係る図柄の組合せが停止表示されるが、所定の停止順序で停止操作が行われなかったときには、有効ライン上に、「SBこぼし目1」〜「SBこぼし目12」のいずれかに係る図柄の組合せが停止表示される。
(2)小役・リプレイ用内部当籤役決定テーブル
図41は、小役・リプレイ用内部当籤役決定テーブルの構成を示す図である。小役・リプレイ用内部当籤役決定テーブルは、小役・リプレイ用データポインタの「1」〜「31」のそれぞれについて、内部当籤する小役及びリプレイ役を規定する。すなわち、小役・リプレイ用内部当籤役決定テーブルは、小役・リプレイ用データポインタと、メダルの払い出しに係る内部当籤役又は再遊技の作動に係る内部当籤役との対応関係を規定する。また、小役・リプレイ用内部当籤役決定テーブル中の「○」印は、取得した小役・リプレイ用データポインタにおいて、当籤する内部当籤役を示す。
例えば、小役・リプレイ用データポインタとして「2」が決定された場合には、「通常リプ1」及び「上げ1段階リプ1」に係るリプレイ役が内部当籤役として重複当籤する。この場合には、左リール3L、右リール3R及び中リール3Cの順で停止操作が行われたときにのみ、「上げ1段階リプ1」に係る図柄の組合せが有効ライン上に停止表示される。一方、これ以外の順序で停止操作が行われたときには、「通常リプ1」に係る図柄の組合せが有効ライン上に停止表示される。
また、例えば、小役・リプレイ用データポインタとして「3」〜「6」のいずれかが決定された場合においても、小役・リプレイ用データポインタ「2」が取得されたときと同様に、「上げ1段階リプ1」及び「通常リプ1」が共通して重複当籤する(図41参照)。そして、この場合には、「上げ1段階リプ1」に係る図柄の組合せが有効ライン上に停止表示される停止操作の順序がデータポインタ毎に予め定められており、所定の順序で停止操作が行われたときには、「上げ1段階リプ1」に係る図柄の組合せが有効ライン上に停止表示されるが、それ以外の順序で停止操作が行われたときには、「通常リプ1」に係る図柄の組合せが有効ライン上に停止表示される。
具体的には、小役・リプレイ用データポインタ「3」が取得された場合には、左リール3L、右リール3R及び中リール3Cの順で停止操作が行われたときにのみ、「上げ1段階リプ1」に係る図柄の組合せが有効ライン上に停止表示される。
また、小役・リプレイ用データポインタ「4」が取得された場合には、中リール3C、左リール3L及び右リール3Rの順で停止操作が行われたときにのみ、「上げ1段階リプ1」に係る図柄の組合せが有効ライン上に停止表示される。
また、小役・リプレイ用データポインタ「5」が取得された場合には、中リール3C、右リール3R及び左リール3Lの順で停止操作が行われたときにのみ、「上げ1段階リプ1」に係る図柄の組合せが有効ライン上に停止表示される。
さらに、小役・リプレイ用データポインタ「6」が取得された場合には、右リール3Rに対して第1停止操作が行われたときにのみ、「上げ1段階リプ1」に係る図柄の組合せが有効ライン上に停止表示される。
また、例えば、小役・リプレイ用データポインタとして「7」が決定された場合には、「通常リプ1」、「上げ1段階リプ1」、「上げ2段階リプ1」、「上げ2段階リプ2」及び「制御リプ1」〜「制御リプ3」が重複当籤する(図41参照)。
この場合には、左リール3Lに対して第1停止操作が行われたときにのみ、「上げ2段階リプ1」、「上げ2段階リプ2」、「上げ2目1」、「上げ2目2」及び「上げ2目3」のいずれかに係る図柄の組合せが所定の有効ライン上に停止表示される。なお、本実施形態では、「上げ2目1」、「上げ2目2」又は「上げ2目3」が所定の有効ライン上に停止表示された場合には、同時に「通常リプ1」又は「上げ1段階リプ1」が他の有効ライン上に停止表示される。一方、これ以外の順序で停止操作が行われたときには、「通常リプ1」に係る図柄の組合せが有効ライン上に停止表示される。
また、例えば、小役・リプレイ用データポインタとして「8」〜「11」のいずれかが決定された場合においても、小役・リプレイ用データポインタ「7」が取得されたときと同様に、「通常リプ1」、「上げ1段階リプ1」、「上げ2段階リプ1」及び「上げ2段階リプ2」が共通して重複当籤する(図41参照)。そして、この場合には、「上げ2段階リプ1」、「上げ2段階リプ2」、「上げ2目1」、「上げ2目2」又は「上げ2目3」に係る図柄の組合せが有効ライン上に停止表示される停止操作の順序がデータポインタ毎に予め定められており、所定の順序で停止操作が行われたときには、これらのいずれかに係る図柄の組合せが有効ライン上に停止表示されるが、それ以外の順序で停止操作が行われたときには、「通常リプ1」に係る図柄の組合せが有効ライン上に停止表示される。
具体的には、小役・リプレイ用データポインタ「8」が取得された場合には、中リール3C、左リール3L及び右リール3Rの順で停止操作が行われたときにのみ、「上げ2段階リプ1」、「上げ2段階リプ2」、「上げ2目1」、「上げ2目2」及び「上げ2目3」のいずれかに係る図柄の組合せが有効ライン上に停止表示される。
また、小役・リプレイ用データポインタ「9」が取得された場合には、中リール3C、右リール3R及び左リール3Lの順で停止操作が行われたときにのみ、「上げ2段階リプ1」、「上げ2段階リプ2」、「上げ2目1」、「上げ2目2」及び「上げ2目3」のいずれかに係る図柄の組合せが有効ライン上に停止表示される。
また、小役・リプレイ用データポインタ「10」が取得された場合には、右リール3R、左リール3L及び中リール3Cの順で停止操作が行われたときにのみ、「上げ2段階リプ1」、「上げ2段階リプ2」、「上げ2目1」、「上げ2目2」及び「上げ2目3」のいずれかに係る図柄の組合せが有効ライン上に停止表示される。
さらに、小役・リプレイ用データポインタ「11」が取得された場合には、右リール3R、中リール3C及び左リール3Lの順で停止操作が行われたときにのみ、「上げ2段階リプ1」、「上げ2段階リプ2」、「上げ2目1」、「上げ2目2」及び「上げ2目3」のいずれかに係る図柄の組合せが有効ライン上に停止表示される。
また、例えば、小役・リプレイ用データポインタとして「12」が決定された場合には、「ベル」及び「制御役1」〜「制御役3」が重複当籤する(図41参照)。この場合には、停止操作順序にかかわらず、中リール3Cの中段領域に「ベル1」図柄(表示役「ベル」に係る図柄の組合せ)が停止表示される。なお、中リール3Cの中段領域に「ベル1」図柄が停止表示されるときには、センターライン、クロスアップライン、クロスダウンラインのいずれかに「ベル1」図柄(「ベル2」図柄)−「ベル1」図柄−「ベル1」図柄の図柄組合せが停止表示される。
小役・リプレイ用データポインタとして「13」が決定された場合には、「ベル」が当籤する(図41参照)。この場合には、左リール3L、中リール3C及び右リール3Rの順で停止操作が行われたときにのみ、中リール3Cの中段領域に「ベル1」図柄(「ベル」に係る図柄の組合せ)が停止表示される。
一方、これ以外の順序で停止操作が行われたときには、「押し順ベル失敗1」〜「押し順ベル失敗4」のいずれかに係る図柄の組合せが有効ライン上に停止表示される。また、「押し順ベル失敗1」〜「押し順ベル失敗4」のいずれかに係る図柄の組合せが有効ライン上に停止表示されるときには、ボトムライン上に、「ベル1」図柄(「ベル2」図柄)−「ベル1」図柄−「ベル1」図柄の図柄組合せが停止表示される。
また、例えば、小役・リプレイ用データポインタとして「14」〜「17」のいずれかが決定された場合においても、小役・リプレイ用データポインタ「13」が取得されたときと同様に、「ベル」が共通して重複当籤する(図41参照)。そして、この場合にも、中リール3Cの中段領域に「ベル1」図柄(表示役「ベル」に係る図柄組合せ)が有効ライン上に停止表示される停止操作の順序がデータポインタ毎に予め定められており、所定の順序で停止操作が行われたときには、中リール3Cの中段領域に「ベル1」図柄に停止表示されるが、それ以外の順序で停止操作が行われたときには、「押し順ベル失敗1」〜「押し順ベル失敗4」のいずれかに係る図柄の組合せが有効ライン上に停止表示される。
具体的には、小役・リプレイ用データポインタ「14」が取得された場合には、左リール3L、右リール3R及び中リール3Cの順で停止操作が行われたときにのみ、中リール3Cの中段領域に「ベル1」図柄が停止表示される。
また、小役・リプレイ用データポインタ「15」が取得された場合には、中リール3Cに対して第1停止操作が行われたときにのみ、中リール3Cの中段領域に「ベル1」図柄が停止表示される。
また、小役・リプレイ用データポインタ「16」が取得された場合には、右リール3R、左リール3L及び中リール3Cの順で停止操作が行われたときにのみ、中リール3Cの中段領域に「ベル1」図柄が停止表示される。
さらに、小役・リプレイ用データポインタ「17」が取得された場合には、右リール3R、左リール3L及び中リール3Cの順で停止操作が行われたときにのみ、中リール3Cの中段領域に「ベル1」図柄が停止表示される。
上述のように、本実施形態では、内部抽籤テーブル(図37参照)において、リールの停止操作順序(押し順)を示唆する略称の小役・リプレイ用ポインタ(「2」〜「11」、「13」〜「17」)が決定された場合には、その示唆する押し順がいわゆる正解の押し順であり、当該押し順通りに停止操作を行うことにより、遊技者にとって遊技状態が有利となるような図柄の組合せが有効ライン上に停止表示される。
例えば、小役・リプレイ用ポインタ「2」(略称「左中右ベル」)が取得された場合には、左リール3L、中リール3C及び右リール3Rの順で停止操作が行われたときにのみ、中リール3Cの中段領域に「ベル1」図柄が停止表示され、それ以外の押し順であった場合には中リール3Cの下段領域に「ベル1」図柄が停止表示される。そして、前者の停止操作では、4枚×3有効ライン=12枚のメダルの払出が付与され、後者の停止操作では、4枚×1有効ライン=4枚のメダルの払出が付与される。
[停止テーブル]
次に、図42を参照して、停止テーブルについて説明する。なお、図42に示す停止テーブルは、小役・リプレイ用データポインタ「15」取得時に、中リール3Cが第1停止操作されたときに参照される停止テーブルである。
停止テーブルには、ラインデータ及び図柄位置「0」〜「20」に対応する停止データが規定される。なお、停止テーブルで規定されている図柄位置は、停止操作が検出された際に、図柄表示領域の中段領域に位置する図柄位置であり、リールの回転の停止動作が開始される図柄位置である。
また、ここでは、図示しないが、本実施形態では、小役・リプレイ用データポインタ、及び、遊技者の停止操作順序に応じた複数の停止テーブルが用意されている。
例えば、ボーナス用データポインタとして「5」が決定された場合には、右リール3R、左リール3L及び中リール3Cの順で停止操作が行われたときにのみ、「SBこぼし目1」〜「SBこぼし目12」のいずれもが有効ライン上に停止表示されないような滑り駒数が規定された停止テーブルが選択される。一方、これ以外の順序で停止操作が行われた場合には、「SB」に係る図柄の組合せが停止表示されないタイミングで各リールに対して停止操作が行われたときに、「SBこぼし目1」〜「SBこぼし目12」の何れかに係る図柄の組合せが有効ライン上に停止表示されるような滑り駒数が規定された停止テーブルが選択される。
[引込優先順位テーブル]
次に、図43及び図44を参照して、引込優先順位テーブルについて説明する。図43に示す引込優先順位テーブルAは、通常時(BB中を含む)や、所定の停止順序で停止操作が行われたとき(いわゆる「押し順正解」時)に用いられる引込優先順位テーブルであり、図44に示す引込優先順位テーブルBは、所定の停止順序以外の順序で停止操作が行われたとき(いわゆる「押し順不正解」時)に用いられる引込優先順位テーブルである。
各引込優先順位テーブルは、複数の内部当籤役が重複当籤し、該複数の内部当籤役に係る図柄組合せを有効ライン上に停止表示する(引き込む)ことが可能である場合において、その複数の内部当籤役の中から優先して表示役として停止表示する内部当籤役の順位を規定する。そして、各引込優先順位テーブルは、停止テーブルに基づいて得られた滑り駒数の他に、より適切な滑り駒数が存在するか否かを検索するために使用される。
なお、本実施形態では、基本的には、優先順位は高い方からリプレイ役、小役及びボーナスの順となっている。ただし、小役の中では、払出枚数が多いほど優先順位は高くなる(JAC1(BB中7揃い)の場合にはこれを優先)。また、本実施形態では、リプレイ役が複数種用意され、上述した押し順の正解/不正解等の条件によって各リプレイ役の優先順位が異なるため、その条件毎に応じて引込優先順位テーブルA及び引込優先順位テーブルBの一方が用いられる。
上述のように、通常時(BB中を含む)やいわゆる「押し順正解」時には、図43に示す引込優先順位テーブルAが参照される。この場合には、各リプレイ役の優先順位は、高い方から、「上げ2段階リプ1」,「上げ2段階リプ2」>「上げ1段階リプ1」>「通常リプ1」>「制御リプ1」〜「制御リプ3」の順となる。
一方、いわゆる「押し順不正解」時には、図44に示す引込優先順位テーブルBが参照される。この場合には、各リプレイ役の優先順位は、高い方から、「通常リプ1」>「上げ2段階リプ1」,「上げ2段階リプ2」,「上げ1段階リプ1」>「制御リプ1」〜「制御リプ3」の順となる。
また、図示しないが、RT遊技状態の遷移に係る2以上の図柄組合せ(移行役)が同時に停止表示された場合には、何れの移行役を優先させるかも予め定められている。本実施形態では、各移行役の優先順位は、高い方から、「上げ2段階リプ1」,「上げ2段階リプ2」,「上げ2目1」〜「上げ2目3」>「上げ1段階リプ1」>「SBこぼし目1」〜「SBこぼし目12」>「押し順ベル失敗1」〜「押し順ベル失敗4」の順となっている。
<メインRAMに設けられている格納領域の構成>
次に、図45〜図50を参照して、メインRAM33に設けられる各種格納領域の構成について説明する。
[内部当籤役格納領域、表示役格納領域、持越役格納領域]
まず、図45〜図47を参照して、内部当籤役格納領域、表示役格納領域及び持越役格納領域の構成について説明する。なお、図45は、本実施形態における内部当籤役格納領域の構成例を示す図であり、図46は、本実施形態における表示役格納領域の構成例を示す図であり、そして、図47は、本実施形態における持越役格納領域の構成例を示す図である。
内部当籤役格納領域は、内部当籤役の情報を格納(記憶)するデータ領域であり、図45に示すように、内部当籤役格納領域1〜5で構成される。各内部当籤役格納領域は、1バイト(8ビット)のデータ領域で構成される。そして、各内部当籤役格納領域内のビット「0」〜「7」の領域に「0」又は「1」のデータを格納することにより、内部当籤した内部当籤役の情報が格納される。具体的には、所定の内部当籤役格納領域内の所定ビットにデータ「1」が格納されているとき、その所定ビットに対応する内部当籤役が当籤したことを示す。一方、内部当籤役格納領域の全ビットが「0」であるとき、内部当籤役の内容は「ハズレ」となる。
表示役格納領域は、表示役の情報を格納(記憶)するデータ領域であり、図46に示すように、表示役格納領域1〜7で構成される。なお、本実施形態では、表示役格納領域に、RT状態の遷移契機となる移行役の情報も格納される。各表示役格納領域は、1バイト(8ビット)のデータ領域で構成される。そして、各表示役格納領域内のビット「0」〜「7」の領域に「0」又は「1」のデータを格納することにより、有効ライン上に停止表示された図柄組合せに対応する表示役又は移行役の情報が格納される。具体的には、所定の表示役格納領域内の所定ビットにデータ「1」が格納されているとき、その所定のビットに対応する役に係る図柄の組合せが有効ライン上に表示されたことを示す。一方、表示役格納領域の全ビットが「0」であるとき、入賞に係る図柄組合せ、ボーナスゲームの作動に係る図柄組合せ、RT状態の遷移契機に係る図柄組合せなどが有効ライン上に表示されなかったことを示す。
持越役格納領域は、持ち越されているボーナス(持越役)の情報を格納(記憶)するデータ領域であり、図47に示すように、1バイト(8ビット)のデータ領域で構成される。そして、持越役格納領域内のビット「0」〜「3」の領域に「0」又は「1」のデータを格納することにより、持越役の情報が格納される。具体的には、持越役格納領域内の所定ビットにデータ「1」が格納されているとき、その所定のビットに対応する持越役が、現在持ち越されているボーナスであることを示す。なお、持越役格納領域に格納された持越役のデータは、該持越役に係る図柄組合せが有効ライン上に表示されるまでクリアされずに保持される。
[遊技状態フラグ格納領域]
次に、図48を参照して、遊技状態フラグ格納領域の構成について説明する。遊技状態フラグ格納領域は、各遊技状態フラグのオン/オフ情報を格納するデータ領域であり、図48に示すように、遊技状態フラグ格納領域1及び遊技状態フラグ格納領域2で構成される。
各遊技状態フラグ格納領域は、1バイト(8ビット)のデータ領域で構成される。本実施形態では、遊技状態フラグ格納領域1の各ビットに、ボーナスゲームの種別が割り当てられ、遊技状態フラグ格納領域2の各ビットにはRTの種別が割り当てられる。そして、遊技状態フラグ格納領域において、所定のビットに「1」が格納されているとき、その所定のビットに該当するボーナスゲーム又はRTの作動が行われていることを示す。また、遊技状態フラグ格納領域の各ビットのデータが全て「0」である場合には、遊技状態が一般遊技状態であることを示す。
[図柄格納領域]
次に、図49及び図50を参照しながら、図柄格納領域の構成について説明する。なお、本実施形態では、図柄格納領域として、「RB」非作動時(遊技状態がRB遊技状態以外の状態である場合)の図柄格納領域Aと、「RB」作動時の図柄格納領域Bとを設ける。
図49は、「RB」非作動時の図柄格納領域Aの構成例であり、かつ、各リールの停止操作時の図柄位置のデータ(停止操作時に各図柄表示領域の中段領域に位置する図柄の図柄位置データ)が「0」である場合の図柄格納領域Aの構成例を示す図である。一方、図50は、「RB」作動時の図柄格納領域Bの構成例であり、かつ、左リール3L、中リール3C及び右リール3Rの停止操作時の図柄位置のデータがそれぞれ「9」、「8」及び「9」である場合の図柄格納領域Bの構成例を示す図である。各図柄格納領域には、有効ライン上に停止表示された各リールの図柄位置が格納される。
「RB」非作動時には、有効ラインはセンターライン、ボトムライン、クロスダウンライン及びクロスアップラインとなるので、「RB」非作動時の図柄格納領域Aでは、有効ライン毎に図柄位置のデータが格納される。
例えば、図49に示す例では、各リールの停止操作時の図柄位置のデータが「0」であるので、センターラインを構成する各リールの図柄表示領域の中段領域には、「赤7」図柄(図柄位置「0」)に対応する図柄コードが格納される。また、この場合には、ボトムラインを構成する、左リール3Lの左図柄表示領域4Lの下段領域に、「リプレイ」図柄(図柄位置「20」)に対応する図柄コードが格納され、中リール3Cの中図柄表示領域4Cの下段領域に、「チェリー1」図柄(図柄位置「20」)に対応する図柄コードが格納され、右リール3Rの右図柄表示領域4Rの下段領域に、「ベル1」図柄(図柄位置「20」)に対応する図柄コードが格納される。また、この場合には、クロスダウンラインを構成する、左リール3Lの左図柄表示領域4Lの上段領域に、「波」図柄(図柄位置「1」)に対応する図柄コードが格納され、中リール3Cの中図柄表示領域4Cの中段領域に、「赤7」図柄(図柄位置「0」)に対応する図柄コードが格納され、右リール3Rの右図柄表示領域4Rの下段領域に、「ベル1」図柄(図柄位置「20」)に対応する図柄コードが格納される。そして、この場合には、クロスアップラインを構成する、左リール3Lの左図柄表示領域4Lの下段領域に、「リプレイ」図柄(図柄位置「20」)に対応する図柄コードが格納され、中リール3Cの中図柄表示領域4Cの中段領域に、「赤7」図柄(図柄位置「0」)に対応する図柄コードが格納され、右リール3Rの右図柄表示領域4Rの上段領域に、「チェリー1」図柄(図柄位置「1」)に対応する図柄コードが格納される。
一方、「RB」作動時には、有効ラインはRB中特殊ラインのみとなるので、「RB」作動時の図柄格納領域Bでは、RB中特殊ライン上に停止表示された図柄の図柄位置データが格納される。例えば、図50に示す例では、左リール3L、中リール3C及び右リール3Rの停止操作時の図柄位置のデータがそれぞれ「9」、「8」及び「9」であるので、RB中特殊ラインを構成する、左リール3Lの左図柄表示領域4Lの中段領域には、「ドン2」図柄(図柄位置「9」)に対応する図柄コードが格納され、中リール3Cの中図柄表示領域4Cの下段領域には、「チェリー2」図柄(図柄位置「7」)に対応する図柄コードが格納され、右リール3Rの右図柄表示領域4Rの上段領域には、「リプレイ」図柄(図柄位置「10」)に対応する図柄コードが格納される。
<サブROMに記憶されているデータテーブルの構成>
次に、サブROM72に記憶されている各種抽籤テーブルの構成について説明する。なお、以下に説明する各抽籤テーブルには(テーブルによっては条件毎に)抽籤値が規定されており、上述の内部抽籤テーブルを用いた抽籤処理と同様の手法により、所定の抽籤処理が行われる。また、以下に説明する各抽籤テーブルでは、抽籤値の合計が「65536」となるように抽籤値が規定されている。
[ナビモード移行抽籤テーブル]
まず、図51〜図53を参照して各種ナビモード移行抽籤テーブルの構成について説明する。ナビモード移行抽籤テーブルは、移行先のナビモードを抽籤により決定する際(後述の図83及び図84のスタートコマンド受信時処理参照)に用いられる抽籤テーブルである。本実施形態では、ナビモードとして「0」〜「4」の5種類のモードを用意する。また、本実施形態では、ナビモードテーブルとして、ナビモード移行抽籤テーブルA、ナビモード移行抽籤テーブルB及びナビモード移行抽籤テーブルCの3種類を用意する。
なお、本明細書でいう「ナビ」とは、遊技者が有利となるような情報を遊技者に報知する機能のことをいう。また、本明細書では、「ナビ」が行われる期間をAT(Assist Time)といい、ナビモードが「0」から「1」〜「4」の何れかに移行することをAT当籤(又はART当籤)という。
図51は、ナビモード移行抽籤テーブルAの一構成例を示す図である。ナビモード移行抽籤テーブルAでは、現在のナビモード及び小役・リプレイ用データポインタの値に応じて、移行先のナビモードの抽籤値が規定される。図52は、ナビモード移行抽籤テーブルBの一構成例を示す図である。ナビモード移行抽籤テーブルBでは、現在のナビモード及びボーナス用データポインタの値に応じて、移行先のナビモードの抽籤値が規定される。なお、図51及び図52に示す例では、移行先のナビモードとして現在のナビモードと同じナビモードが決定される場合(すなわち、ナビモードが移行しない場合)もある。
また、図53は、ナビモード移行抽籤テーブルCの一構成例を示す図である。ナビモード移行抽籤テーブルCは、ナビゲーム数が0になったときに参照されるナビモード移行抽籤テーブルである。この場合には、ナビモードがモード「0」に移行する場合と、現在のモードが維持される場合とに対してそれぞれ抽籤値が規定される。
[ナビ遊技状態移行待機数抽籤テーブル]
次に、図54を参照して、ナビ遊技状態移行待機数抽籤テーブルについて説明する。なお、図54は、本実施形態におけるナビ遊技状態移行待機数抽籤テーブルの一構成例を示す図である。
ナビ遊技状態移行待機数抽籤テーブルは、ナビ遊技状態移行待機数を決定する際(後述の図83及び図84のスタートコマンド受信時処理参照)に用いられる抽籤テーブルである。本実施形態では、3種の状態時においてそれぞれ、ナビ遊技状態移行待機数の抽籤値を規定する。具体的には、図54に示すように、非BB同時当籤時(図中の「A」状態)、BB同時当籤時(図中の「B」状態)及びナビゲーム数が0になったとき(図中の「C」)の各状態において、各種ナビ遊技状態移行待機数の抽籤値が規定される。そして、抽籤時には、対応する状態の欄に規定された抽籤値が参照される。
ここで、本実施形態のパチスロ1において用意されている各種ナビ遊技状態について簡単に説明する。本実施形態では、ナビ遊技状態として、ナビ遊技状態0〜ナビ遊技状態3の4種類のナビ遊技状態を用意する。ナビ遊技状態0はナビが行われない遊技状態であり、ナビ遊技状態1〜ナビ遊技状態3はナビが行われる遊技状態である。また、ナビ遊技状態1又はナビ遊技状態3では、サブRAM73に設けられたナビゲーム数カウンタの値が減算されず、ナビ遊技状態2では、ナビゲーム数カウンタの値が減算される。なお、ナビ遊技状態1〜3の残りゲーム数は、サブRAM73に設けられたナビゲーム数カウンタ及びナビセット数カウンタで管理され、ナビゲーム数カウンタの値が「1」から「0」になった場合であっても、ナビセット数カウンタの値が「1」以上であれば、再度、ナビゲーム数カウンタに「50」がセットされる。
そして、本実施形態では、ナビモードが「0」から「1」〜「4」のいずれかに移行した場合、ナビ遊技状態もナビ遊技状態0からナビ遊技状態1又はナビ遊技状態2に移行する。この際、ナビ遊技状態移行待機数抽籤テーブルを用いた抽籤処理により決定されたナビ遊技状態移行待機数のゲーム数(単位遊技数)経過した後、ナビ遊技状態が移行する。それゆえ、ナビ遊技状態の移行形態としては、所定ゲーム数(ナビ遊技状態移行待機数)経過後にナビ遊技状態が移行する形態もあるが、ナビモードの移行と同時にナビ遊技状態も移行する形態(当籤したナビ遊技状態移行待機数が0である場合)もある。
[ナビ遊技状態3移行待機数抽籤テーブル]
次に、図55を参照して、ナビ遊技状態3移行待機数抽籤テーブルについて説明する。なお、図55は、本実施形態におけるナビ遊技状態3移行待機数抽籤テーブルの一構成例を示す図である。
ナビ遊技状態3移行待機数抽籤テーブルは、ナビ遊技状態3移行待機数を決定する際(後述の図95のナビ遊技状態2中ナビ遊技状態3移行処理参照)に用いられる抽籤テーブルである。ナビ遊技状態3移行待機数テーブルでは、後述するナビゲーム数カウンタの値等に応じて抽籤値が規定される。具体的には、ナビゲーム数カウンタの値が「5」以下である場合、及び、ナビゲーム数カウンタの値が「6」以上である場合のそれぞれにおいて、抽籤値が別個に規定される。なお、ナビゲーム数カウンタの値が「6」以上である場合には、図55に示すように、小役・リプレイ用データポインタが「18」〜「21」のいずれかであり、かつ、ナビ遊技状態3加算ゲーム抽籤に当籤した際の抽籤値が、それ以外の場合の抽籤値と異なるようにナビ遊技状態3移行待機数テーブルが設定される。
[ナビ遊技状態3加算ゲーム数抽籤テーブル]
次に、図56〜図59を参照して、ナビ遊技状態3加算ゲーム数抽籤テーブルについて説明する。ナビ遊技状態3加算ゲーム数抽籤テーブルは、ナビ遊技状態3加算ゲーム数を決定する際(例えば後述の図89のナビ遊技状態3加算ゲーム数及び抽籤モード抽籤処理参照)に用いられる抽籤テーブルである。本実施形態では、ナビ遊技状態3加算ゲーム数抽籤テーブルとして、4種類の抽籤テーブル(ナビ遊技状態3加算ゲーム数抽籤テーブルA〜D)を用意する。
図56は、本実施形態におけるナビ遊技状態3加算ゲーム数抽籤テーブルAの一構成例を示す図であり、図57は、本実施形態におけるナビ遊技状態3加算ゲーム数抽籤テーブルBの一構成例を示す図である。また、図58は、本実施形態におけるナビ遊技状態3加算ゲーム数抽籤テーブルCの一構成例を示す図であり、図59は、本実施形態におけるナビ遊技状態3加算ゲーム数抽籤テーブルDの一構成例を示す図である。
なお、ナビ遊技状態3加算ゲーム数抽籤テーブルA〜Cには、図56〜図58に示すように、現在のナビモードと、小役・リプレイ用ポインタの値及び/又はボーナス用データポインタの値とに応じて、各種ナビ遊技状態3加算ゲーム数の抽籤値がそれぞれ規定されている。また、ナビ遊技状態3加算ゲーム数抽籤テーブルDには、図59に示すように、現在のナビモードに関係なく、各種ナビ遊技状態3加算ゲーム数とその抽籤値との対応関係が規定されており、各抽籤値は全ての現在のナビモードに対して共通して用いられる。
[ナビ遊技状態3加算抽籤モード抽籤テーブル]
次に、図60〜図63を参照して、ナビ遊技状態3加算抽籤モード抽籤テーブルについて説明する。ナビ遊技状態3加算抽籤モード抽籤テーブルは、ナビ遊技状態3加算抽籤モードを決定する際(例えば後述の図89のナビ遊技状態3加算ゲーム数及び抽籤モード抽籤処理参照)に用いられる抽籤テーブルである。本実施形態では、ナビ遊技状態3加算抽籤モード抽籤テーブルとして、4種類の抽籤テーブル(ナビ遊技状態3加算抽籤モード抽籤テーブルA〜D)を用意する。
図60は、本実施形態におけるナビ遊技状態3加算抽籤モード抽籤テーブルAの一構成例を示す図であり、図61は、本実施形態におけるナビ遊技状態3加算抽籤モード抽籤テーブルBの一構成例を示す図である。また、図62は、本実施形態におけるナビ遊技状態3加算抽籤モード抽籤テーブルCの一構成例を示す図であり、図63は、本実施形態におけるナビ遊技状態3加算抽籤モード抽籤テーブルDの一構成例を示す図である。
なお、ナビ遊技状態3加算抽籤モード抽籤テーブルA及びナビ遊技状態3加算抽籤モード抽籤テーブルDには、図60及び図63に示すように、現在のナビモードに応じて各種ナビ遊技状態3加算抽籤モードの抽籤値が規定されている。ナビ遊技状態3加算抽籤モード抽籤テーブルBには、図61に示すように、現在のナビモード及びボーナス用データポインタの値に応じて各種ナビ遊技状態3加算抽籤モードの抽籤値が規定されている。そして、ナビ遊技状態3加算抽籤モード抽籤テーブルCには、図62に示すように、現在のナビモード及び小役・リプレイ用データポインタの値に応じて各種ナビ遊技状態3加算抽籤モードの抽籤値が規定されている。
[ナビセット数抽籤テーブル]
次に、図64を参照して、ナビセット数抽籤テーブルについて説明する。図64は、本実施形態におけるナビセット数抽籤テーブルの一構成例を示す図である。
ナビセット数抽籤テーブルは、ナビセット数を決定する際(後述の図90のART初当たり時処理参照)に用いられる抽籤テーブルである。ナビセット数抽籤テーブルには、各種ナビセット数(「0」〜「3」)の抽籤値が規定される。なお、本実施形態では、図64に示すように、「BB3」が当籤し(内部当籤役として決定され)、かつ、演出用遊技停止(後述のロック演出)があった場合に用いられる各種ナビセット数の抽籤値と、それ以外の場合に用いられる各種ナビセット数の抽籤値との2種類の抽籤値がナビセット数抽籤テーブルに規定されている。
[ナビ遊技状態3ナビゲーム数加算抽籤テーブル]
次に、図65を参照して、ナビ遊技状態3ナビゲーム数加算抽籤テーブルについて説明する。図65は、本実施形態におけるナビ遊技状態3ナビゲーム数加算抽籤テーブルの一構成例を示す図である。
ナビ遊技状態3ナビゲーム数加算抽籤テーブルは、ナビ遊技状態3ナビゲーム数加算抽籤を行う際(後述の図97のナビゲーム数加算処理参照)に用いられる抽籤テーブルである。ナビ遊技状態3ナビゲーム数加算抽籤テーブルには、ナビ遊技状態3加算抽籤モード、小役・リプレイ用ポインタの値及び/又はボーナス用データポインタの値、並びに、遊技状態に応じて、ナビ遊技状態3ナビゲーム数加算抽籤の当籤/非当籤の抽籤値が規定されている。
[ナビゲーム数特殊加算抽籤テーブル]
次に、図66を参照して、ナビゲーム数特殊加算抽籤テーブルについて説明する。図66は、本実施形態におけるナビゲーム数特殊加算抽籤テーブルの一構成例を示す図である。
ナビゲーム数特殊加算抽籤テーブルは、ナビゲーム数特殊加算抽籤において加算するナビゲーム数を決定する際(後述の図97のナビゲーム数加算処理参照)に用いられる抽籤テーブルである。ナビゲーム数特殊加算抽籤テーブルには、ナビ遊技状態3継続カウンタの値、又は、内部当籤役に決定された「BB」の種別に応じて加算するナビゲーム数の抽籤値が規定されている。
[ビリーゲットチャレンジ発生抽籤テーブル]
次に、図67を参照して、ビリーゲットチャレンジ発生抽籤テーブルについて説明する。図67は、本実施形態におけるビリーゲットチャレンジ発生抽籤テーブルの一構成例を示す図である。
ビリーゲットチャレンジ発生抽籤テーブルは、ビリーゲットチャレンジ発生抽籤を行う際(後述の図86のBB4中抽籤処理参照)に用いられる抽籤テーブルである。ビリーゲットチャレンジ発生抽籤テーブルには、現在のナビモード、演出用遊技停止の有無、ビリーゲットチャレンジ成功フラグのオン/オフに応じて抽籤値が規定されている。
ここで、「ビリーゲットチャレンジ」と称するイベントについて説明する。「ビリーゲットチャレンジ」とは所定の条件が満たされた場合に遊技者により実施されるイベントである。具体的には、「ビリーゲットチャレンジ」は、液晶表示装置10の表示画面に、例えば、「左か右を選べ」と表示されるような「ビリーゲットチャレンジ演出」が実行された場合に、遊技者が、第3停止操作を行うまでの間に、左選択パネル151L又は右選択パネル151Rの付近に手をかざし(以下、選択操作という)、この選択操作が左赤外線センサ120L又は右赤外線センサ120Rに検出されることにより行われる。
この際、予め行われるビリーゲットチャレンジ正解抽籤により決定された正解(「左」、「右」、「両方」)と、遊技者が選択した「左」又は「右」が一致した場合(正解が「両方」の場合にはいずれも一致と判定する)、「ビリーゲットチャレンジ」が成功となり、ナビモードが上昇する。
また、本実施形態では、遊技者が上述した選択操作を行わなかった場合であっても、予め行われるビリーゲットチャレンジ選択無し時抽籤により当籤が決定された場合には、「ビリーゲットチャレンジ」が成功したと見なされる。なお、遊技者の選択(「左」又は「右」)と正解とが一致しない場合(遊技者が正解と異なる方に手をかざした場合)には、ビリーゲットチャレンジ選択無し時抽籤に当籤していても、「ビリーゲットチャレンジ」は失敗となる。
本実施形態では、「ビリーゲットチャレンジ」において、第3停止操作が行われるまでの間に遊技者の選択操作が行われたか否かを判定する例を説明したが、本発明はこれに限定されない。この選択期間の終了タイミングは任意に設定することができ、例えば、選択期間の終了タイミングを、第1停止操作が行われるまで、第2停止操作が行われるまで、又は、予め定められた所定の時間が経過するまで、に設定してもよい。また、選択期間の開始タイミングも任意に設定することができ、例えば、選択期間の開始タイミングを、開始操作が行われてから、第1停止操作が行われてから、等に設定してもよい。さらに、遊技者の選択操作が行われたか否かの判定を行う期間は、一単位遊技中の任意の期間としてもよいし、複数の単位遊技に渡る任意の期間(例えば、ある単位遊技の開始操作から、次の単位遊技の第3停止操作まで)としてもよい。
[ビリーゲットチャレンジ制御カウンタ抽籤テーブル]
次に、図68を参照して、ビリーゲットチャレンジ制御カウンタ抽籤テーブルについて説明する。図68は、本実施形態におけるビリーゲットチャレンジ制御カウンタ抽籤テーブルの一構成例を示す図である。
ビリーゲットチャレンジ制御カウンタ抽籤テーブルは、ビリーゲットチャレンジ制御カウンタ抽籤を行う際(後述の図98のビリーゲットチャレンジ抽籤処理参照)に用いられる抽籤テーブルである。ビリーゲットチャレンジ制御カウンタ抽籤テーブルには、演出用遊技停止の有無及び小役・リプレイ用ポインタの値、又は、ボーナス用データポインタの値に応じて抽籤値が規定されている。
[ビリーゲットチャレンジ正解抽籤テーブル]
次に、図69を参照して、ビリーゲットチャレンジ正解抽籤テーブルについて説明する。図69は、本実施形態におけるビリーゲットチャレンジ正解抽籤テーブルの一構成例を示す図である。
ビリーゲットチャレンジ正解抽籤テーブルは、「ビリーゲットチャレンジ」時における正解(「左」、「右」、「両方」)を決定する際(後述の図98のビリーゲットチャレンジ処理参照)に用いられる抽籤テーブルである。ビリーゲットチャレンジ正解抽籤テーブルには、「ビリーゲットチャレンジ」を発生させる際の状況に応じて抽籤値が規定されている。
具体的には、図69に示すように、遊技状態がRB遊技状態でない場合、又は、遊技状態がRB遊技状態でありかつ演出用遊技停止がない場合には、正解として「左」又は「右」が決定され、各正解が決定される確率はともに「32768/65536(=50%)」である。一方、遊技状態がRB遊技状態でありかつ演出用遊技停止がある場合には、正解として「左」、「右」及び「両方」(「左」でも「右」でも正解)のいずれかが決定される。この場合には、正解として「左」又は「右」が決定される確率はともに「31744/65536」であり、正解として「両方」が決定される確率は「2048/65536」である。
[ビリーゲットチャレンジ選択無し時抽籤テーブル]
次に、図70を参照して、ビリーゲットチャレンジ選択無し時抽籤テーブルについて説明する。図70は、本実施形態におけるビリーゲットチャレンジ選択無し時抽籤テーブルの一構成例を示す図である。
ビリーゲットチャレンジ選択無し時抽籤テーブルは、「ビリーゲットチャレンジ」において遊技者が「左」(左選択パネル151L)及び「右」(右選択パネル151R)のいずれも選択しなかったとき(ビリーゲットチャレンジ選択無し時)に、当籤とするか否かを決定する際(後述の図88のビリーゲットチャレンジ処理参照)に用いられる抽籤テーブルである。ビリーゲットチャレンジ選択無し時抽籤テーブルには、ビリーゲットチャレンジ正解抽籤テーブルに基づいて行われたビリーゲットチャレンジ正解抽籤の結果に応じて、抽籤値が規定されている。
本実施形態では、図70のビリーゲットチャレンジ選択無し時抽籤テーブルに示すように、ビリーゲットチャレンジ選択無し時(遊技者が選択操作を行わなかったとき)であっても、ビリーゲットチャレンジ正解抽籤の結果が「左」又は「右」であった場合には50%の確率で当籤する構成になっている。また、ビリーゲットチャレンジ正解抽籤の結果が「両方」であった場合には、100%の確率で当籤する構成になっている。
<主制御回路の動作説明>
次に、図71〜図80を参照して、主制御回路60のメインCPU31が、プログラムを用いて実行する各種制御処理の内容について説明する。なお、以下に説明するメインCPU31の各種処理において必要となる、各種テーブルはメインROM32に格納され、各種制御フラグ、各種制御カウンタ、各種格納領域等はメインRAM33に設けられる。
[リセット割込処理]
最初に、図71を参照して、メインCPU31が行うリセット割込処理について説明する。図71は、本実施形態において、メインCPU31により行うリセット割込処理の手順を示すフローチャートである。なお、メインCPU31は、電源が投入され、リセット端子に電圧が印加されることにより、リセット割込を発生させ、そのリセット割込の発生に基づいて、メインROM32に記憶されたプログラムを用いて以下に説明するリセット割込処理内を行う。
まず、メインCPU31は、メインRAM33の指定格納領域(不図示)のクリア処理を行う(S1)。具体的には、メインCPU31は、前回のゲームに使用されたメインRAM33の書き込み可能領域のデータの消去処理、メインRAM33の書き込み可能領域への今回のゲームに必要なパラメータの書き込み処理、今回のゲームにおけるゲームシーケンスプログラムへの開始アドレスの指定処理等を行う。
次いで、メインCPU31は、ボーナス作動監視処理を行う(S2)。なお、ボーナス作動監視処理の詳細については、後述の図72を参照しながら後で説明する。
次いで、メインCPU31は、メダル受付・スタートチェック処理を行う(S3)。メダル受付・スタートチェック処理では、メダルセンサ26S及びMAXベットスイッチ23S等のチェックによる投入枚数カウンタの更新や、スタートスイッチ21Sの入力チェック等が行われる。また、メインCPU31は、メダル受付・スタートチェック処理により有効ライン(入賞判定ライン)を有効化する。
次いで、メインCPU31は、乱数値を抽出し、該抽出した乱数値を乱数値記憶領域に格納する(S4)。具体的には、メインCPU31は、「0」〜「65535」の範囲から、乱数発生器36及びサンプリング回路37によってランダムに抽出された一つの値(乱数値)を取得し、該取得した乱数値を乱数値記憶領域に記憶する。
次に、メインCPU31は、内部抽籤処理を行う(S5)。具体的には、メインCPU31は、内部抽籤テーブル決定テーブル(図36参照)、内部抽籤テーブル(図37〜図39参照)及び内部当籤役決定テーブル(図40及び図41参照)を参照し、S4で抽出した乱数値に基づいて内部当籤役を決定する。なお、内部抽籤処理の詳細については、後述の図73及び図74を参照しながら後で説明する。
次いで、メインCPU31は、スタートコマンドデータを副制御回路70に送信する(S6)。スタートコマンドには、遊技状態情報、内部当籤役情報(小役・リプレイ用データポインタ、ボーナス用データポインタ及び内部当籤役格納領域に関する情報)、ボーナス持越状態であるか否かを示す持越状態情報、ロックフラグ等の各種情報が含まれる。
次いで、メインCPU31は、ロックフラグがオン状態であるか否かを判別する(S7)。S7において、メインCPU31が、ロックフラグがオン状態でないと判別したとき(S7がNo判定の場合)、メインCPU31は、後述のS9の処理を行う。一方、S7において、メインCPU31が、ロックフラグがオン状態であると判別したとき(S7がYes判定の場合)、メインCPU31は、ロックフラグをオフするとともに5秒間にわたるロック演出(演出用遊技停止)を実行する(S8)。なお、S8で行うロック演出では、リールの回転開始を遅らせる演出が行われる。
S8の処理後、又は、S7がNo判定の場合、メインCPU31は、全リールの回転開始を要求する(S9)。このS9の処理により、3つのリール3L,3C,3Rの回転開始処理及び加速制御処理が行われる。また、S9の処理では、メインCPU31は、副制御回路70に回胴回転開始コマンドを送信する。
次いで、メインCPU31は、リールの回転の定速待ち処理を行う(S10)。この処理では、メインCPU31は、各リールの回転速度が所定の回転速度に達するまで待機する。
次いで、メインCPU31は、リール停止制御処理を行う(S11)。この処理では、メインCPU31は、遊技者の停止操作によりストップスイッチ20Sから送信された停止信号等に基づいて、対応するリールの回転を停止させる。なお、リール停止制御処理の詳細については、後述の図75を参照しながら後で説明する。
次いで、メインCPU31は、表示役検索処理を行う(S12)。この処理では、メインCPU31は、全てのリールの回転が停止した際に有効ライン上に表示された図柄の組合せに基づいて、表示役及び払出枚数を決定する。なお、表示役検索処理の詳細については、後述の図76を参照しながら後で説明する。
次いで、メインCPU31は、RT制御処理を行う(S13)。この処理では、メインCPU31は、RT遊技状態を管理する。なお、RT制御処理の詳細については、後述の図77を参照しながら後で説明する。
次いで、メインCPU31は、表示コマンドデータを副制御回路70に送信する(S14)。表示コマンドには、表示役を示す表示役情報、払出枚数を示す払出枚数情報等の各種情報が含まれる。
次いで、メインCPU31は、メダル払出処理を行う(S15)。具体的には、メインCPU31は、払出モードであれば、払出枚数に関する情報に基づき、ホッパー駆動回路41によりホッパー40を駆動制御してメダルの払い出しを行い、クレジットモードであれば、払出枚数に関する基づいてクレジットカウンタ(不図示)の値を更新する。また、S15の処理において、メダルの払出等の処理が終了すると、メインCPU31は、払出終了コマンドを副制御回路70に送信する。
次いで、メインCPU31は、ボーナス作動中であるか否かを判別する(S16)。具体的には、メインCPU31は、遊技状態が、BB1遊技状態〜BB4遊技状態及びSB遊技状態のいずれかであるか否かを判別する。
S16において、メインCPU31が、ボーナス作動中でないと判別したとき(S16がNo判定の場合)、メインCPU31は、後述のS18の処理を行う。一方、S16において、メインCPU31が、ボーナス作動中であると判別したとき(S16がYes判定の場合)、メインCPU31は、ボーナス終了チェック処理を行う(S17)。この処理では、メインCPU31は、ボーナスゲームの終了契機を管理するための各種カウンタを参照して、ボーナスゲームの作動を終了するか否かをチェックする。なお、ボーナス終了チェック処理の詳細については、後述の図78を参照しながら後で説明する。
S17の処理後、又は、S16がNo判定の場合、メインCPU31は、ボーナス作動チェック処理を行う(S18)。この処理では、メインCPU31は、ボーナスゲームの作動を開始するか否か、及び、再遊技(リプレイ)を行うか否かをチェックする。なお、ボーナス作動チェック処理の詳細については、後述の図79を参照しながら後で説明する。そして、ボーナス作動チェック処理が終了すると、メインCPU31は、処理をS1に戻し、S1以降の処理を繰り返す。
本実施形態のパチスロ1では、メインCPU31は、上述したS1〜S18までの一連の処理を1ゲーム(1遊技)における処理として実行し、S18の処理が終了すると次回のゲームにおける処理を実行するため、処理をS1の処理に戻す。
[ボーナス作動監視処理]
次に、図72を参照して、リセット割込処理のフローチャート(図71参照)中のS2で行うボーナス作動監視処理について説明する。なお、図72は、本実施形態における、ボーナス作動監視処理の手順を示すフローチャートである。
まず、メインCPU31は、遊技状態がBB遊技状態(BB1遊技状態〜BB4遊技状態のいずれか)であるか否かを判別する(S21)。この処理では、メインCPU31は、遊技状態フラグ格納領域(図48参照)を参照して現在の遊技状態を把握する。
S21において、メインCPU31が、遊技状態がBB遊技状態でないと判別したとき(S21がNo判定の場合)、メインCPU31は、ボーナス作動監視処理を終了し、処理をリセット割込処理(図71参照)のS3に移す。一方、S21において、メインCPU31が、遊技状態がBB遊技状態であると判別したとき(S21がYes判定の場合)、メインCPU31は、遊技状態がRB遊技状態(RB1遊技状態又はRB2遊技状態)であるか否かを判別する(S22)。
S22において、メインCPU31が、遊技状態がRB遊技状態であると判別したとき(S22がYes判定の場合)、メインCPU31は、ボーナス作動監視処理を終了し、処理をリセット割込処理(図71参照)のS3に移す。一方、S22において、メインCPU31が、遊技状態がRB遊技状態でないと判別したとき(S22がNo判定の場合)、メインCPU31は、ボーナス作動時テーブル(図33参照)に基づいてBBの種別に対応したRB作動時処理を行う(S23)。
S23の処理において、遊技状態がBB1遊技状態〜BB3遊技状態のいずれかである場合には、メインCPU31は、「RB1」のボーナス遊技を作動させ、遊技状態がBB4遊技状態である場合には、メインCPU31は「RB2」のボーナス遊技を作動させる。そして、S23の処理後、メインCPU31は、ボーナス作動監視処理を終了し、処理をリセット割込処理(図71参照)のS3に移す。
[内部抽籤処理]
次に、図73及び図74を参照して、リセット割込処理のフローチャート(図71参照)中のS5で行う内部抽籤処理について説明する。なお、図73及び図74は、本実施形態における、内部抽籤処理の手順を示すフローチャートである。
まず、メインCPU31は、遊技状態に対応する内部抽籤テーブル及び抽籤回数を決定する(S31)。具体的には、メインCPU31は、遊技状態フラグ格納領域(図48参照)を参照して現在の遊技状態を把握し、内部抽籤テーブル決定テーブル(図36参照)に基づいて、現在の遊技状態に対応する内部抽籤テーブルの種別及び抽籤回数を決定する。
次いで、メインCPU31は、乱数値記憶領域に格納されている乱数値を取得し、該乱数値を当籤/非当籤の判定用乱数値としてセットする(S32)。そして、メインCPU31は、当籤番号の初期値として「1」をセットする(S33)。
次いで、メインCPU31は、内部抽籤テーブル(図37〜図39参照)を参照して、当籤番号に対応する抽籤値を取得する(S34)。そして、メインCPU31は、判定用乱数値から抽籤値を減算し、減算結果を判定用乱数値としてセットする(S35)。具体的には、メインCPU31は、判定用乱数値記憶領域(不図示)に記憶された判定用乱数値からS34の処理において取得した抽籤値を減算し、該減算結果(減算値)により判定用乱数値記憶領域に記憶された判定用乱数値を更新する。
次いで、メインCPU31は、S35の減算処理において桁かりが発生したか否か、すなわち、減算結果が負の値になったか否かを判別する(S36)。
S36において、メインCPU31が、桁かりが発生していない(演算結果が0以上)と判別したとき(S36がNo判定の場合)、メインCPU31は、抽籤回数の値を「1」減算し、当籤番号の値に「1」を加算する(S37)。次いで、メインCPU31は、抽籤回数が「0」であるか否かを判別する(S38)。
S38において、メインCPU31が、抽籤回数が「0」でないと判別したとき(S38がNo判定の場合)、メインCPU31は、処理をS34に戻し、S34以降の処理を繰り返す。なお、メインCPU31は、このS34〜S38の一連の処理を、抽籤回数が「0」になるまで、又は、桁かりが発生するまで繰り返す。
一方、S38において、メインCPU31が、抽籤回数が「0」であると判別したとき(S38がYes判定の場合)、メインCPU31は、小役・リプレイ用データポインタ及びボーナス用データポインタのそれぞれに「0」をセットする(S39)。そして、S39の処理後、メインCPU31は、後述のS41の処理を行う。
ここで、再度、S36の処理に戻って、S36において、メインCPU31が、桁かりが発生した(演算結果が0未満)と判別したとき(S36がYes判定の場合)、メインCPU31は、当籤番号に基づいて、小役・リプレイ用データポインタ及びボーナス用データポインタを取得する(S40)。
そして、S39又はS40の処理後、メインCPU31は、小役・リプレイ用内部当籤役決定テーブル(図41参照)を参照し、小役・リプレイ用データポインタに基づいて内部当籤役の情報を取得する(S41)。次いで、メインCPU31は、S41で取得した内部当籤役の情報に基づいて、内部当籤役格納領域(図45参照)を更新する(S42)。
次いで、メインCPU31は、持越役格納領域(図47参照)に格納されているデータが「00000000」であるか否かを判別する(S43)。
S43において、メインCPU31が、持越役格納領域に格納されているデータが「00000000」でないと判別したとき(S43がNo判定の場合)、メインCPU31は、後述のS50の処理を行う。一方、S43において、メインCPU31が、持越役格納領域に格納されているデータは「00000000」であると判別したとき(S43がYes判定の場合)、メインCPU31は、ボーナス用内部当籤役決定テーブル(図40参照)を参照し、ボーナス用データポインタに基づいて内部当籤役の情報を取得する(S44)。
次いで、S44の処理後、メインCPU31は、「SB」が内部当籤役であるか否かを判別する(S45)。
S45において、メインCPU31が、「SB」が内部当籤役であると判別したとき(S45がYes判定の場合)、メインCPU31は、「SB」の情報に基づいて内部当籤役格納領域(図45参照)を更新する(S46)。そして、S46の処理後、メインCPU31は、後述のS50の処理を行う。一方、S45において、メインCPU31が、「SB」が内部当籤役でないと判別したとき(S45がNo判定の場合)、メインCPU31は、「BB」が内部当籤役であるか否かを判別する(S47)。
S47において、メインCPU31が、「BB」が内部当籤役でないと判別したとき(S47がNo判定の場合)、メインCPU31は、後述のS50の処理を行う。一方、S47において、メインCPU31が、「BB」が内部当籤役であると判別したとき(S47がYes判定の場合)、メインCPU31は、「BB」の情報に基づいて持越役格納領域(図47参照)を更新する(S48)。そして、S48の処理後、メインCPU31は、RT4遊技状態フラグをオンする(S49)。
S46或いはS49の処理後、又は、S43或いはS47がNo判定の場合、メインCPU31は、持越役格納領域のデータと内部当籤役格納領域1のデータとの論理和演算を行い、その演算結果を内部当籤役格納領域1に格納する(S50)。次いで、メインCPU31は、遊技状態がRB2遊技状態であるか否かを判別する(S51)。
S51において、メインCPU31が、遊技状態がRB2遊技状態でないと判別したとき(S51がNo判定の場合)、メインCPU31は、内部抽籤処理を終了し、処理をリセット割込処理(図71参照)のS6に移す。一方、S51において、メインCPU31が、遊技状態がRB2遊技状態であると判別したとき(S51がYes判定の場合)、メインCPU31は、1/64の確率で当籤するロック抽籤を行う(S52)。そして、メインCPU31は、ロック抽籤に当籤したか否かを判別する(S53)。
S53において、メインCPU31が、ロック抽籤に当籤しなかったと判別したとき(S53がNo判定の場合)、メインCPU31は、内部抽籤処理を終了し、処理をリセット割込処理(図71参照)のS6に移す。一方、S53において、メインCPU31が、ロック抽籤に当籤したと判別したとき(S53がYes判定の場合)、メインCPU31は、ロックフラグをオンする(S54)。そして、S54の処理後、メインCPU31は、内部抽籤処理を終了し、処理をリセット割込処理(図71参照)のS6に移す。
上述のように、本実施形態では、メインCPU31は、S34〜S38の処理を繰り返し実行することにより、内部当籤役の抽籤を行う。具体的には、メインCPU31は、抽出した乱数値(又は更新された判定用乱数値)から内部抽籤テーブルの各当籤番号に規定された抽籤値を順次減算し、この減算処理により桁かりが発生した場合には、その際の当籤番号に対応する小役・リプレイ用データポインタ及びボーナス用データポインタを取得し、該取得された各データポインタと内部当籤役決定テーブルとに基づいて内部当籤役を決定する。
また、本実施形態では、遊技状態がRB2遊技状態である場合には、S52において1/64の確率で当籤するロック抽籤を行うが、通常遊技中(一般遊技状態、RT1遊技状態〜RT3遊技状態)においてロック抽籤を行う構成にしてもよい。また、ロック抽籤では、特定の小役(例えば、小役・リプレイ用データポインタが「18」〜「22」の小役)や、ボーナス(「BB1」〜「BB4」)が内部当籤した場合に当籤確率が高くなるように抽籤値(当籤確率)を設定してもよい。
[リール停止制御処理]
次に、図75を参照して、リセット割込処理のフローチャート(図71参照)中のS11で行うリール停止制御処理について説明する。なお、図75は、本実施形態における、リール停止制御処理の手順を示すフローチャートである。
まず、メインCPU31は、ストップボタン未作動カウンタに「3」をセットする(S61)。なお、ストップボタン未作動カウンタは、停止操作が検出されていないストップボタンの数を管理するためのカウンタである。次いで、メインCPU31は、内部当籤役(データポインタ)に対応する停止テーブル(図42参照)を取得する(S62)。
次いで、メインCPU31は、有効なストップボタンが押されたか否かを判別する(S63)。なお、有効なストップボタンとは停止操作が行われていないストップボタンのことである。
S63において、メインCPU31が、有効なストップボタンが押されていないと判別したとき(S63がNo判定の場合)、メインCPU31は、S63の処理を繰り返し、有効なストップボタンの押下操作が実行されるまで待機する。一方、S63において、メインCPU31が、有効なストップボタンが押されたと判別したとき(S63がYes判定の場合)、メインCPU31は、該当するストップボタンの操作を無効化する(S64)。
次いで、メインCPU31は、作動ストップボタン(停止順序)に対応する停止テーブルを再選択する(S65)。次いで、メインCPU31は、チェック回数として「5」をセットする(S66)。
次いで、メインCPU31は、引込優先順位テーブル(図43及び図44参照)を参照し、内部当籤役に基づいて、図柄カウンタの値に対応する図柄位置からチェック回数の範囲内において、最も優先順位の高い図柄位置を検索する(S67)。
次いで、メインCPU31は、停止テーブル、図柄カウンタの値に対応する図柄位置、及び、検索結果に基づいて滑り駒数を決定し、リールの停止予定位置をセットする(S68)。次いで、メインCPU31は、リール停止コマンドを副制御回路70に送信する(S69)。なお、リール停止コマンドには、停止したリールの種別情報、停止開始位置を示す停止開始位置情報、滑り駒数を示す滑り駒数情報等の情報が含まれる。
次いで、メインCPU31は、図柄配置テーブル(図31参照)を参照し、停止リール、停止予定位置及び遊技状態に基づいて図柄コードを取得し、該図柄コードの情報を図柄格納領域(図49及び図50参照)に格納する(S70)。次いで、メインCPU31は、操作が有効なストップボタンはあるか否かを判別する(S71)。
S71において、メインCPU31が、操作が有効なストップボタンがあると判別したとき(S71がYes判定の場合)、メインCPU31は、処理をS63に戻し、S63以降の処理を繰り返す。なお、このS63以降の処理は、メインCPU31が、操作が有効なストップボタンが無くなるまで繰り返される。そして、S71において、メインCPU31が、操作が有効なストップボタンがないと判別したとき(S71がNo判定の場合)、メインCPU31は、リール停止制御処理を終了し、処理をリセット割込処理(図71参照)のS12に移す。
[表示役検索処理]
次に、図76を参照して、リセット割込処理のフローチャート(図71参照)中のS12で行う表示役検索処理について説明する。なお、図76は、本実施形態における、表示役検索処理の手順を示すフローチャートである。
まず、メインCPU31は、表示役格納領域(図46参照)に格納されているデータをクリアする(S81)。
次いで、メインCPU31は、図柄格納領域(図49及び図50参照)の先頭アドレスを指定する(S82)。具体的には、メインCPU31は、遊技状態がRB遊技状態以外の遊技状態である場合には、センターラインに対応するアドレスを先頭アドレスとして指定し、遊技状態がRB遊技状態である場合にはRB中特殊ラインに対応するアドレスを先頭アドレスとして指定する。
次いで、メインCPU31は、図柄組合せテーブル(図32参照)の先頭アドレスを指定する(S83)。具体的には、メインCPU31は、図柄組合せテーブル中の「BB1」の欄に対応するアドレスを先頭アドレスとして指定する。
次いで、メインCPU31は、図柄組合せテーブルに規定されている図柄の組合せと、図柄格納領域に格納されているデータに対応する図柄の組合せとを比較する(S84)。そして、メインCPU31は、この比較処理の結果、両者が一致したか否かを判別する(S85)。
S85において、メインCPU31が、両者が一致しなかったと判別したとき(S85がNo判定の場合)、メインCPU31は、後述のS89の処理を行う。一方、S85において、メインCPU31が、両者が一致したと判別したとき(S85がYes判定の場合)、メインCPU31は、図柄組合せテーブル(図32参照)を参照して、格納領域種別及び表示役を示すデータを取得する(S86)。
S86の処理後、メインCPU31は、S86で取得した格納領域種別を示すデータに対応する表示役格納領域のデータと、S86で取得した表示役を示すデータとの論理和演算を行い、その演算結果を表示役格納領域に格納する(S87)。次いで、メインCPU31は、図柄組合せテーブルを参照して、払出枚数のデータを取得し、該取得した払出枚数の値を払出枚数カウンタに加算する(S88)。
S88の処理後、又は、S85がNo判定の場合、メインCPU31は、図柄組合せテーブル中に規定されている次の表示役に対応するアドレスを指定する(S89)。すなわち、この処理において、S84の比較処理で比較(検索)対象となる図柄組合せテーブル中の表示役のアドレスが更新される。次いで、メインCPU31は、S89の処理において指定された図柄組合せテーブル中のアドレスに格納されているデータが、「エンドコード」であるか否かを判別する(S90)。
S90において、メインCPU31が、S89の処理において指定されたアドレスに格納されているデータが、「エンドコード」でないと判別したとき(S90がNo判定の場合)、メインCPU31は、処理をS84に戻し、S84以降の処理を繰り返す。一方、S90において、メインCPU31が、S89の処理において指定されたアドレスに格納されているデータが、「エンドコード」であると判別したとき(S90がYes判定の場合)、メインCPU31は、全有効ラインについて検索したか否か、すなわち、全有効ラインに対してS84〜S90の処理が行われたか否かを判別する(S91)。
S91において、メインCPU31が、全有効ラインについて検索されていないと判別したとき(S91がNo判定の場合)、メインCPU31は、図柄格納領域に格納されている次の有効ラインに対応するアドレスを指定する(S92)。すなわち、この処理において、表示役の検索対象となる有効ラインのアドレスが更新される。次いで、メインCPU31は、処理をS83に戻し、S83以降の処理を繰り返す。なお、S83〜S92の処理は、全ての有効ラインに対して表示役の検索処理が終了するまで繰り返される。
そして、S91において、メインCPU31が、全有効ラインについて検索が行われたと判別したとき(S91がYes判定の場合)、メインCPU31は、表示役検索処理を終了し、処理をリセット割込処理(図71参照)のS13に移す。
[RT制御処理]
次に、図77を参照して、リセット割込処理のフローチャート(図71参照)中のS13で行うRT制御処理について説明する。なお、図77は、本実施形態における、RT制御処理の手順を示すフローチャートである。
まず、メインCPU31は、持越役格納領域(図47参照)を参照し、「BB」が持越中であるか否か(遊技状態がRT4遊技状態であるか否か)を判別する(S101)。
S101において、メインCPU31が、「BB」が持越中であると判別したとき(S101がYes判定の場合)、メインCPU31は、RT制御処理を終了し、処理をリセット割込処理(図71参照)のS14に移す。一方、S101において、メインCPU31が、「BB」が持越中でないと判別したとき(S101がNo判定の場合)、メインCPU31は、遊技状態フラグ格納領域(図48参照)を参照し、「BB」が作動中であるか否かを判別する(S102)。
S102において、メインCPU31が、「BB」が作動中であると判別したとき(S102がYes判定の場合)、メインCPU31は、RT制御処理を終了し、処理をリセット割込処理(図71参照)のS14に移す。一方、S102において、メインCPU31が、「BB」が作動中でないと判別したとき(S102がNo判定の場合)、メインCPU31は、RT遷移テーブル(図35参照)を参照し、有効ライン上に停止表示された図柄組合せに基づいて、遊技状態フラグを更新する(S103)。なお、この処理では、有効ライン上に停止表示された図柄組合せ(表示役)がRT状態の遷移契機となる移行役である場合に、遊技状態フラグが更新されるが、それ以外の図柄組合せでは、遊技状態フラグは更新されない。
そして、S103の処理後、メインCPU31は、RT制御処理を終了し、処理をリセット割込処理(図71参照)のS14に移す。
[ボーナス終了チェック処理]
次に、図78を参照して、リセット割込処理のフローチャート(図71参照)中のS17で行うボーナス終了チェック処理について説明する。なお、図78は、本実施形態における、ボーナス終了チェック処理の手順を示すフローチャートである。
まず、メインCPU31は、遊技状態フラグ格納領域(図48参照)を参照し、「BB」が作動中であるか否かを判別する(S111)。
S111において、メインCPU31が「BB」が作動中でないと判別したとき(S111がNo判定の場合)、メインCPU31は、SB遊技状態フラグをオフする(S112)。そして、S112の処理後、メインCPU31は、ボーナス終了チェック処理を終了し、処理をリセット割込処理(図71参照)のS18に移す。
一方、S111において、メインCPU31が「BB」が作動中であると判別したとき(S111がYes判定の場合)、メインCPU31は、ボーナス終了枚数カウンタの値が「0」であるか否かを判別する(S113)。
S113において、メインCPU31が、ボーナス終了枚数カウンタの値が「0」であると判別したとき(S113がYes判定の場合)、メインCPU31は、ボーナス終了時処理を行う(S114)。具体的には、メインCPU31は、オン状態である、BB遊技状態フラグ及びRB遊技状態フラグをオフする。次いで、メインCPU31は、ボーナス終了コマンドを副制御回路70に送信する(S115)。そして、S115の処理後、メインCPU31は、ボーナス終了チェック処理を終了し、処理をリセット割込処理(図71参照)のS18に移す。
一方、S113において、メインCPU31が、ボーナス終了枚数カウンタの値が「0」でないと判別したとき(S113がNo判定の場合)、メインCPU31は、遊技可能回数カウンタの値から「1」を減算する(S116)。次いで、メインCPU31は、表示役が小役であるか否かを判別する(S117)。
S117において、メインCPU31が、表示役が小役でないと判別したとき(S117がNo判定の場合)、メインCPU31は、後述のS119の処理を行う。一方、S117において、メインCPU31が、表示役が小役であると判別したとき(S117がYes判定の場合)、メインCPU31は、入賞可能回数カウンタの値から「1」を減算する(S118)。
S118の処理後、又は、S117がNo判定の場合、メインCPU31は、入賞可能回数カウンタの値又は遊技可能回数カウンタの値が「0」であるか否かを判別する(S119)。
S119において、メインCPU31が、入賞回数カウンタの値又は遊技可能回数カウンタの値が「0」でないと判別したとき(S119がNo判定の場合)、メインCPU31は、ボーナス終了チェック処理を終了し、処理をリセット割込処理(図71参照)のS18に移す。一方、S119において、メインCPU31が、入賞回数カウンタの値又は遊技可能回数カウンタの値が「0」であると判別したとき(S119がYes判定の場合)、メインCPU31は、RB終了時処理を行う(S120)。具体的には、メインCPU31は、オン状態である、RB遊技状態フラグをオフするなどの処理を行う。
そして、S120の処理後、メインCPU31は、ボーナス終了チェック処理を終了し、処理をリセット割込処理(図71参照)のS18に移す。
[ボーナス作動チェック処理]
次に、図79を参照して、リセット割込処理のフローチャート(図71参照)中のS18で行うボーナス作動チェック処理について説明する。なお、図79は、本実施形態における、ボーナス作動チェック処理の手順を示すフローチャートである。
まず、メインCPU31は、表示役格納領域(図46参照)を参照し、表示役が「BB」(「BB1」〜「BB4」のいずれか)であるか否かを判別する(S131)。
S131において、メインCPU31が、表示役が「BB」であると判別したとき(S131がYes判定の場合)、メインCPU31は、ボーナス作動時処理を行う(S132)。この処理では、メインCPU31は、ボーナス作動時テーブル(図33参照)を参照して、作動させる遊技状態(BB1遊技状態〜BB4遊技状態のいずれか)に対応する遊技状態フラグをオンするとともに、該テーブルに規定された作動させる遊技状態のボーナス終了枚数カウンタの値を、ボーナス終了枚数カウンタにセットする。次いで、メインCPU31は、RT4遊技状態フラグをオフするとともに、持越役格納領域のデータをクリアする(S133)。そして、S133の処理後、メインCPU31は、後述のS136の処理を行う。
一方、S131において、メインCPU31が、表示役が「BB」でないと判別したとき(S131がNo判定の場合)、メインCPU31は、表示役が「SB」であるか否かを判別する(S134)。
S134において、メインCPU31が、表示役が「SB」であると判別したとき(S134がYes判定の場合)、メインCPU31は、ボーナス作動時処理を行う(S135)。この処理では、メインCPU31は、ボーナス作動時テーブル(図33参照)を参照して、SB遊技状態フラグをオンする。
S133又はS135の処理後、メインCPU31は、ボーナス開始コマンドを副制御回路70に送信する(S136)。なお、ボーナス開始コマンドには、開始するボーナスの種別等を示す情報が含まれる。そして、S136の処理後、メインCPU31は、ボーナス作動チェック処理を終了し、処理をリセット割込処理(図71参照)のS1に移す。
一方、S134において、メインCPU31が、表示役が「SB」でないと判別したとき(S134がNo判定の場合)、メインCPU31は、表示役が「リプレイ」に係る役であるか否かを判別する(S137)。
S137において、メインCPU31が、表示役が「リプレイ」に係る役でないと判別したとき(S137がNo判定の場合)、メインCPU31は、ボーナス作動チェック処理を終了し、処理をリセット割込処理(図71参照)のS1に移す。一方、S137において、メインCPU31が、表示役が「リプレイ」に係る役であると判別したとき(S137がYes判定の場合)、メインCPU31は、投入枚数カウンタの値を自動投入枚数カウンタに複写する(S138)。自動投入枚数カウンタに値がセットされている場合には、次遊技のS3のメダル受付・スタートチェック処理において、その値に対応する枚数のメダルが自動投入される(遊技者のメダルは減らない)。
そして、S138の処理後、メインCPU31は、ボーナス作動チェック処理を終了し、処理をリセット割込処理(図71参照)のS1に移す。
[メインCPUの制御による割込処理(1.1173msec)]
次に、図80を参照して、メインCPU31の制御による割込処理について説明する。図80は、本実施形態における、メインCPU31の制御による割込処理の手順を示すフローチャートである。なお、このメインCPU31の制御による割込処理は、所定の周期(本実施形態では、1.1173msec)毎に行われる割込処理である。
まず、メインCPU31は、当該メインCPU31の制御による割込処理を呼び出す前に実行されているプログラムを中断し、その中断した位置を示すアドレス、各種レジスタの値をメインRAM33の所定の領域に退避させる(S141)。この処理は、メインCPU31の制御による割込処理が終了した場合に、退避されたプログラムの中断した位置を示すアドレス、各種レジスタの値を復帰させ、中断した時点からプログラムを継続して実行するために行われる。
次いで、メインCPU31は、入力ポートチェック処理を行う(S142)。具体的には、メインCPU31は、MAXベットスイッチ23S等の各種スイッチからの入力信号をチェックする。
次いで、メインCPU31は、リール制御処理を行う(S143)。具体的には、リセット割込処理(図71参照)においてリールの回転開始要求があった場合には、メインCPU31は、このS143の処理で、3つのリール3L、3C、3Rの回転を開始させ、一定速度で回転させるための制御を行う。また、リール停止制御処理(図75参照)において滑り駒数が決定され、リールの停止予定位置が定まっている場合には、メインCPU31は、このS143の処理で、該当するリールの図柄カウンタの値が停止予定位置を示す値と同一になったときに該リールを停止させるための制御を行う。例えば、メインCPU31は、停止予定位置を示す値が「4」である場合には、S143の処理において、図柄カウンタの値が「4」になったときに、該当するリールを停止させるための制御を行う。
次いで、メインCPU31は、ランプ駆動処理を行う(S144)。次いで、メインCPU31は、S141の処理においてメインRAM33の所定の領域に退避させた情報を参照してレジスタの復帰を行う(S145)。そして、S145の処理が終了すると、メインCPU31は、該割込処理を終了し、該割込処理の発生により中断したプログラムを継続して実行する。
<副制御回路による各種演出の動作説明>
次に、図81〜図102を参照して、副制御回路70のサブCPU71が、プログラムを用いて実行する各種演出に関する処理(タスク)の内容について説明する。なお、以下に説明するサブCPU71の各種処理において必要となる、各種テーブルはサブROM72に格納され、各種制御フラグ、各種制御カウンタ、各種格納領域等はサブRAM73等に設けられる。
[サブCPUにより行われる演出登録処理]
最初に、図81を参照して、サブCPU71により行われる演出登録処理について説明する。なお、図81は、本実施形態における、演出登録処理の手順を示すフローチャートである。
まず、サブCPU71は、演出登録処理に対して4msecの周期を設定する(S151)。次いで、サブCPU71は、メッセージキューからメッセージを取り出す(S152)。次いで、サブCPU71は、メッセージキューにメッセージはあったか否かを判別する(S153)。
S153において、サブCPU71が、メッセージキューにメッセージはなかったと判別したとき(S153がNo判定の場合)、サブCPU71は、後述のS157の処理を行う。一方、S153において、サブCPU71が、メッセージキューにメッセージがあったと判別したとき(S153がYes判定の場合)、サブCPU71は、メッセージから遊技情報を複写する(S154)。この処理では、例えば、パラメータによって特定される、内部当籤役、回転が停止したリールの種別、表示役、遊技状態フラグ等の各種データがサブRAM73に設けられた所定の格納領域に複写される。
次いで、サブCPU71は、演出内容決定処理を行う(S155)。この処理では、サブCPU71は、受信したコマンドの種別に応じて、演出内容の決定や演出データの登録等の処理を行う。なお、演出内容決定処理の詳細については、後述の図82を参照しながら後で説明する。
次いで、サブCPU71は、バックアップ作成処理を行う(S156)。具体的には、サブCPU71は、サブRAM73からSRAM74にバックアップデータを作成する。なお、バックアップ作成処理の詳細については、後述の図115を参照しながら後で説明する。
S156の処理後、又は、S153がNo判定の場合、サブCPU71は、アニメーションデータの登録を行う(S157)。具体的には、サブCPU71は、演出内容決定処理において登録された演出データに基づいて、アニメーションデータの登録を行う。この処理により、液晶表示装置10に画像が表示される。すなわち、サブCPU71は、演出内容決定処理において決定された演出データに基づいて、画像表示コマンドをGPU75に送信する。
なお、GPU75は、受信した画像表示コマンドに基づいて、VRAM76に展開されている画像データの中から適当な画像データを選択するとともに該画像データの表示位置や大きさを決定し、画像データをVRAM76に設けられた一方のフレームバッファ領域(書込画像データ領域又は表示画像データ領域)に格納する。また、GPU75は、所定の周期(1/30秒)毎に表示画像データ領域と書込画像データ領域とを入れ替えるバンク切替処理を行う。なお、バンク切替処理では、GPU75は、書込画像データ領域に格納されている画像データを液晶表示装置10に出力するとともに、表示画像データ領域を書込画像データ領域に入れ替え、次に表示すべき画像データの書き込みを行う。
次いで、サブCPU71は、サウンドデータの登録を行う(S158)。具体的には、サブCPU71は、演出内容決定処理において決定された演出データに基づいて、サウンドデータの登録を行う。この処理により、スピーカ17L,17Rから音声が出力される。
次いで、サブCPU71は、LEDデータの登録を行う(S159)。具体的には、サブCPU71は、演出内容決定処理において決定された演出データに基づいて、LEDデータの登録を行う。この処理により、サブデバイス群100に設けられた各種LED101〜103,111〜114がそれぞれ、演出内容に応じて適宜、点灯又は消灯される。
次いで、サブCPU71は、S151で設定された4msecの周期が終了するまで待機する(S160)。そして、S160の処理後、サブCPU71は、処理をS152に戻し、S152以降の処理を繰り返す。
[演出内容決定処理]
次に、図82を参照して、演出登録処理のフローチャート(図81参照)中のS155で行う演出内容決定処理について説明する。なお、図82は、本実施形態における、演出内容決定処理の手順を示すフローチャートである。
まず、サブCPU71は、スタートコマンドを受信したか否かを判別する(S171)。
S171において、サブCPU71がスタートコマンドを受信したと判別したとき(S171がYes判定の場合)、サブCPU71は、スタートコマンド受信時処理を行う(S172)。なお、スタートコマンド受信時処理の詳細については、後述の図83及び図84を参照しながら後で説明する。次いで、サブCPU71は、遊技スタート時の演出データを登録する(S173)。そして、S173の処理後、サブCPU71は、演出内容決定処理を終了し、処理を演出登録処理(図81参照)のS156に移す。
一方、S171において、サブCPU71がスタートコマンドを受信しなかったと判別したとき(S171がNo判定の場合)、サブCPU71は、リール停止コマンドを受信したか否かを判別する(S174)。
S174において、サブCPU71がリール停止コマンドを受信したと判別したとき(S174がYes判定の場合)、サブCPU71は、ビリーゲットチャレンジ判定処理を行う(S175)。なお、ビリーゲットチャレンジ判定処理の詳細については、後述の図99を参照しながら後で説明する。次いで、サブCPU71は、作動ストップボタンの種別等に応じて、リール停止時の演出データを登録する(S176)。そして、S176の処理後、サブCPU71は、演出内容決定処理を終了し、処理を演出登録処理(図81参照)のS156に移す。
一方、S174において、サブCPU71がリール停止コマンドを受信しなかったと判別したとき(S174がNo判定の場合)、サブCPU71は、表示コマンドを受信したか否かを判別する(S177)。
S177において、サブCPU71が表示コマンドを受信したと判別したとき(S177がYes判定の場合)、サブCPU71は、表示コマンド受信時処理を行う(S178)。なお、表示コマンド受信時処理の詳細については、後述の図101を参照しながら後で説明する。そして、S178の処理後、サブCPU71は、演出内容決定処理を終了し、処理を演出登録処理(図81参照)のS156に移す。
一方、S177において、サブCPU71が表示コマンドを受信しなかったと判別したとき(S177がNo判定の場合)、サブCPU71は、BETコマンドを受信したか否かを判別する(S179)。
S179において、サブCPU71がBETコマンドを受信したと判別したとき(S179がYes判定の場合)、サブCPU71は、投入枚数等に応じて、BET時の演出データを登録する(S180)。そして、S180の処理後、サブCPU71は、演出内容決定処理を終了し、処理を演出登録処理(図81参照)のS156に移す。
一方、S179において、サブCPU71がBETコマンドを受信しなかったと判別したとき(S179がNo判定の場合)、サブCPU71は、ボーナス開始コマンドを受信したか否かを判別する(S181)。
S181において、サブCPU71がボーナス開始コマンドを受信したと判別したとき(S181がYes判定の場合)、サブCPU71は、ボーナス開始時用演出データを登録する(S182)。そして、S182の処理後、サブCPU71は、演出内容決定処理を終了し、処理を演出登録処理(図81参照)のS156に移す。
一方、S181において、サブCPU71がボーナス開始コマンドを受信しなかったと判別したとき(S181がNo判定の場合)、サブCPU71は、ボーナス終了コマンドを受信したか否かを判別する(S183)。
S183において、サブCPU71がボーナス終了コマンドを受信しなかったと判別したとき(S183がNo判定の場合)、サブCPU71は、演出内容決定処理を終了し、処理を演出登録処理(図81参照)のS156に移す。
一方、S183において、サブCPU71がボーナス終了コマンドを受信したと判別したとき(S183がYes判定の場合)、サブCPU71は、ボーナス終了コマンド受信時処理を行う(S184)。なお、ボーナス終了コマンド受信時処理の詳細については、後述の図102を参照しながら後で説明する。次いで、サブCPU71は、ボーナス終了時用演出データを登録する(S185)。そして、S185の処理後、サブCPU71は、演出内容決定処理を終了し、処理を演出登録処理(図81参照)のS156に移す。
[スタートコマンド受信時処理]
次に、図83及び図84を参照して、演出内容決定処理のフローチャート(図82参照)中のS172で行うスタートコマンド受信時処理について説明する。なお、図83及び図84は、本実施形態における、スタートコマンド受信時処理の手順を示すフローチャートである。
まず、サブCPU71は、「BB」(「BB1」〜「BB4」のいずれか)が作動中であるか否かを判別する(S191)。
S191において、サブCPU71が、「BB」が作動中であると判別したとき(S191がYes判定の場合)、サブCPU71は、BB中処理を行う(S192)。なお、BB中処理の詳細については、後述の図85を参照しながら後で説明する。そして、S192の処理後、サブCPU71は、後述のS210の処理を行う。
一方、S191において、サブCPU71が、「BB」が作動中でないと判別したとき(S191がNo判定の場合)、サブCPU71は、BB持越中フラグがオン状態であるか否かを判定する(S193)。なお、BB持越中フラグは、「BB」(「BB1」〜「BB4」のいずれか)が内部当籤した単位遊技の次の単位遊技から、該内部当籤した「BB」が表示役として決定される単位遊技までの間(「BB」が持越状態にある期間)、オン状態となる。
S193において、サブCPU71が、BB持越中フラグがオン状態であると判別したとき(S193がYes判定の場合)、サブCPU71は、後述のS210の処理を行う。
一方、S193において、サブCPU71が、BB持越中フラグがオン状態でないと判別したとき(S193がNo判定の場合)、サブCPU71は、ナビ遊技状態3加算ゲーム数及び抽籤モード抽籤処理を行う(S194)。なお、ナビ遊技状態3加算ゲーム数及び抽籤モード抽籤処理の詳細については、後述の図89を参照しながら後で説明する。
そして、S194の処理後、サブCPU71は、ナビモード移行抽籤テーブルA(図51参照)を参照し、現在のナビモード、データポインタ等に基づいてナビモード移行抽籤を行う(S195)。次いで、サブCPU71は、現在の単位遊技が「BB」(「BB1」〜「BB4」)に当籤した単位遊技であるか否か(BB当籤遊技か否か)を判別する(S196)。
S196において、サブCPU71がBB当籤遊技でないと判別したとき(S196がNo判定の場合)、サブCPU71は、後述のS198の処理を行う。一方、S196において、サブCPU71がBB当籤遊技であると判別したとき(S196がYes判定の場合)、サブCPU71は、ナビモード移行抽籤テーブルB(図52参照)を参照して、現在のナビモード、ボーナス用データポインタ及び演出用遊技停止の有無に基づいてナビモード移行抽籤を行う(S197)。
S197の処理後、又は、S196がNo判定の場合、サブCPU71は、S195又はS197におけるナビモード移行抽籤の結果、ナビモードが「0」から「1」〜「4」のいずれかに移行したか否かを判定する(S198)。
S198において、サブCPU71が、ナビモードが「0」から「1」〜「4」のいずれかに移行したと判別したとき(S198がYes判定の場合)、サブCPU71は、ART初当たり時処理を行う(S199)。なお、ART初当たり時処理の詳細については、後述の図90を参照しながら後で説明する。次いで、サブCPU71は、現在の単位遊技が、BB当籤遊技であるか否かを判別する(S200)。
S200において、サブCPU71がBB当籤遊技であると判別したとき(S200がYes判定の場合)、サブCPU71は、後述のS210の処理を行う。一方、S200において、サブCPU71がBB当籤遊技でないと判別したとき(S200がNo判定の場合)、サブCPU71は、ナビ遊技状態移行待機数抽籤テーブル(図54参照)を参照し、ナビ遊技状態移行待機数の抽籤を行い、当籤したナビ遊技状態移行待機数を、ナビ遊技状態移行待機カウンタにセットする(S201)。そして、S201の処理後、サブCPU71は、後述のS210の処理を行う。
ここで、再度、S198の処理に戻って、S198において、サブCPU71が、ナビモードが「0」から「1」〜「4」のいずれかに移行していないと判別したとき(S198がNo判定の場合)、サブCPU71は、ナビ遊技状態移行待機カウンタの値が「1」以上であるか否かを判別する(S202)。
S202において、サブCPU71が、ナビ遊技状態移行待機カウンタの値が「1」以上であると判別したとき(S202がYes判定の場合)、サブCPU71は、待機状態中ナビ遊技状態移行処理を行う(S203)。なお、待機状態中ナビ遊技状態移行処理の詳細については、後述の図91を参照しながら後で説明する。そして、S203の処理後、サブCPU71は、後述のS210の処理を行う。
一方、S202において、サブCPU71が、ナビ遊技状態移行待機カウンタの値が「1」以上でないと判別したとき(S202がNo判定の場合)、サブCPU71は、ナビ遊技状態がナビ遊技状態1であるか否かを判別する(S204)。
S204において、サブCPU71が、ナビ遊技状態がナビ遊技状態1であると判別したとき(S204がYes判定の場合)、サブCPU71は、ナビ遊技状態1中ナビ遊技状態移行処理を行う(S205)。なお、ナビ遊技状態1中ナビ遊技状態移行処理の詳細については、後述の図92を参照しながら後で説明する。そして、S205の処理後、サブCPU71は、後述のS210の処理を行う。
一方、S204において、サブCPU71が、ナビ遊技状態がナビ遊技状態1でないと判別したとき(S204がNo判定の場合)、サブCPU71は、ナビ遊技状態がナビ遊技状態2であるか否かを判別する(S206)。
S206において、サブCPU71が、ナビ遊技状態がナビ遊技状態2であると判別したとき(S206がYes判定の場合)、サブCPU71は、ナビ遊技状態2中ナビ遊技状態移行処理を行う(S207)。なお、ナビ遊技状態2中ナビ遊技状態移行処理の詳細については、後述の図93及び図94を参照しながら後で説明する。そして、S207の処理後、サブCPU71は、後述のS210の処理を行う。
一方、S206において、サブCPU71が、ナビ遊技状態がナビ遊技状態2でないと判別したとき(S206がNo判定の場合)、サブCPU71は、ナビ遊技状態がナビ遊技状態3であるか否かを判別する(S208)。
S208において、サブCPU71が、ナビ遊技状態がナビ遊技状態3であると判別したとき(S208がYes判定の場合)、サブCPU71は、ナビ遊技状態3中ナビ遊技状態移行処理を行う(S209)。なお、ナビ遊技状態3中ナビ遊技状態移行処理の詳細については、後述の図96を参照しながら後で説明する。そして、S209の処理後、サブCPU71は、後述のS210の処理を行う。一方、S208において、サブCPU71が、ナビ遊技状態がナビ遊技状態3でないと判別したとき(S208がNo判定の場合)、サブCPU71は、後述のS210の処理を行う。
S192、S201、S203、S205、S207或いはS209の処理後、S193或いはS200がYes判定の場合、又は、S208がNo判定の場合、サブCPU71は、ビリーゲットチャレンジ抽籤処理を行う(S210)。なお、ビリーゲットチャレンジ抽籤処理の詳細については、後述の図98を参照しながら後で説明する。
次いで、サブCPU71は、ナビ遊技状態がナビ遊技状態1〜ナビ遊技状態3のいずれかであり、かつ、「押し順役」が内部当籤役であるか否かを判別する(S211)。
S211において、サブCPU71がS211の判定条件を満たさないと判別したとき(S211がNo判定の場合)、サブCPU71は、スタートコマンド受信時処理を終了し、処理を演出内容決定処理(図82参照)のS173に移す。一方、S211において、サブCPU71がS211の判定条件を満たすと判別したとき(S211がYes判定の場合)、サブCPU71は、ナビ用演出データ(遊技者が有利となる役を成立させるためのナビを行う演出データ)を登録する(S212)。そして、S212の処理後、サブCPU71は、スタートコマンド受信時処理を終了し、処理を演出内容決定処理(図82参照)のS173に移す。
[BB中処理]
次に、図85を参照して、スタートコマンド受信時処理のフローチャート(図83及び図84参照)中のS192で行うBB中処理について説明する。なお、図85は、本実施形態における、BB中処理の手順を示すフローチャートである。
まず、サブCPU71は、遊技状態がBB4遊技状態であるか否かを判別する(S221)。
S221において、サブCPU71が、遊技状態がBB4遊技状態であると判別したとき(S221がYes判定の場合)、サブCPU71は、BB4中抽籤処理を行う(S222)。なお、BB4中抽籤処理の詳細については、後述の図86を参照しながら後で説明する。そして、S222の処理後、サブCPU71は、BB中処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
一方、S221において、サブCPU71が、遊技状態がBB4遊技状態でないと判別したとき(S221がNo判定の場合)、サブCPU71は、データポインタに基づいてナビモードを変更するか否かを判定し、判定結果に応じてナビモードを更新する(S223)。具体的には、小役・リプレイ用ポインタが「28」〜「31」(停止形が「ドン中段揃い」、「ドン下段テンパイあたり」、「ドン上段テンパイあたり」、「ドン中段テンパイあたり」)である場合には、サブCPU71は、ナビモードを「1」上昇させ(但し、上限は「4」)、それ以外の場合には、サブCPU71は、ナビモードを変更しない。
また、S223の処理では、特定の条件が満足された場合にナビモードを複数段階上昇させるようにしてもよい。特定の条件としては、例えば、小役・リプレイ用ポインタとして「28」〜「31」の中から「31」が決定されること、小役・リプレイ用ポインタとして「28」〜「31」の何れかが決定されかつ特定の有効ライン上に「ドン揃い」の図柄の組合せが停止表示されること等が挙げられる。なお、図示しないが、サブCPU71は、「ドン図柄」が上段(トップライン)、中段(センターライン)又は下段(ボトムライン)に揃った場合には、ドン揃い演出データを登録する。
次いで、サブCPU71は、ナビ遊技状態3加算ゲーム数抽籤テーブルC(図58参照)を参照し、現在のナビモード及び小役・リプレイ用ポインタデータポインタに基づいて、ナビ遊技状態3加算ゲーム数を抽籤する(S224)。
次いで、サブCPU71は、S224の抽籤処理で5ゲーム以上のナビ遊技状態3加算ゲーム数が当籤したか否かを判別する(S225)。S225において、サブCPU71が、5ゲーム以上のナビ遊技状態3加算ゲーム数が当籤していない(当籤したゲーム数が0ゲームである)と判別したとき(S225がNo判定の場合)、サブCPU71は、BB中処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
一方、S225において、サブCPU71が、5ゲーム以上のナビ遊技状態3加算ゲーム数が当籤したと判別したとき(S225がYes判定の場合)、サブCPU71は、ナビ遊技状態3加算抽籤モード抽籤テーブルC(図62参照)を参照し、現在のナビモード及び小役・リプレイ用データポインタに基づいて、ナビ遊技状態3加算抽籤モードを抽籤する(S226)。
次いで、サブCPU71は、S224で当籤したナビ遊技状態3加算ゲーム数と、S226で決定されたナビ遊技状態3加算抽籤モードとを、互いに対応付けて、その組合せのデータをナビ遊技状態3情報格納領域(不図示)に格納する(S227)。
次いで、サブCPU71は、ナビ遊技状態3移行フラグをオンする(S228)。なお、ナビ遊技状態3移行フラグは、ナビ遊技状態3情報格納領域に情報が格納されているか否かを示すフラグ(格納されている場合はオン状態になる)である。そして、S228の処理後、サブCPU71は、BB中処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
なお、本実施形態では、ナビ遊技状態3情報格納領域に、ナビ遊技状態3加算ゲーム数とナビ遊技状態3加算抽籤モードとの組合せを最大32組分、格納することができる。また、ナビ遊技状態3情報格納領域に格納された情報は、FIFO(First In, First Out:先入れ先出し)処理される。
さらに、ナビ遊技状態3情報格納領域に格納されているナビ遊技状態3加算ゲーム数とナビ遊技状態3加算抽籤モードとの組合せの数(組数)は、液晶表示装置10に表示され、遊技者が把握できる構成になっている。なお、ナビ遊技状態3情報格納領域に格納されている組数を報知する処理は、ナビ遊技状態がナビ遊技状態2である場合にのみ行ってもよい。また、この報知処理では、ナビ遊技状態3情報格納領域に格納されている組数の値自体を(つまり5組なら「5」と)報知してもよいし、組数の一部を報知するようにしてもよい。
例えば、後述のドン揃い演出データが登録される場合、又は、BB4遊技状態中において後述のビリーゲットチャレンジ成功演出データが登録される場合には、ナビ遊技状態3情報格納領域に、ナビ遊技状態3加算ゲーム数とナビ遊技状態3加算抽籤モードとの組合せが必ず格納されるので、これらの場合には、演出データが登録された分の組数のみを液晶表示装置10に表示(報知)するようにしてもよい。すなわち、遊技者がナビ遊技状態2からナビ遊技状態3へ移行する権利の獲得を認識できる確定演出(例えば、ドン揃い演出、ビリーゲットチャレンジ成功演出)が行われた分の組数のみを報知するようにしてもよい。
また、ナビ遊技状態2からナビ遊技状態3へ移行する権利の数が1以上である場合には、少なくとも該権利の数が1以上であることを報知することが好ましい。例えば、上述した確定演出が行われた分の組数のみを報知する構成にした場合において、ナビ遊技状態3情報格納領域に格納されている組数が「5」であり、確定演出が1回も行われなかった場合には何も報知されないこととなるが、こういった場合には少なくともナビ遊技状態3情報格納領域に格納されている組数が「1」以上であることを報知することが好ましい。
[BB4中抽籤処理]
次に、図86を参照して、BB中処理のフローチャート(図85参照)中のS222で行うBB4中抽籤処理について説明する。なお、図86は、本実施形態における、BB4中抽籤処理の手順を示すフローチャートである。
まず、サブCPU71は、ビリーゲットチャレンジ発生抽籤テーブル(図67参照)を参照し、現在のナビモード、演出用遊技停止の有無(主制御回路60におけるロックフラグのオン/オフ)、及び、ビリーゲットチャレンジ成功フラグに基づいて、ビリーゲットチャレンジ発生抽籤を行う(S231)。そして、サブCPU71は、S231の抽籤処理に当籤したか否かを判別する(S232)。
S232において、サブCPU71は、S231の抽籤処理に当籤していないと判別したとき(S232がNo判定の場合)、サブCPU71は、BB4中抽籤処理を終了するとともにBB中処理も終了する。一方、S232において、サブCPU71は、S231の抽籤処理に当籤したと判別したとき(S232がYes判定の場合)、サブCPU71は、ビリーゲットチャレンジ処理を行う(S233)。なお、ビリーゲットチャレンジ処理の詳細については、後述の図88を参照しながら後で説明する。
次いで、サブCPU71は、演出用遊技停止があるか(ロックフラグがオン状態であるか)否かを判別する(S234)。S234において、サブCPU71は、演出用遊技停止がないと判別したとき(S234がNo判定の場合)、サブCPU71は、BB4中抽籤処理を終了するとともにBB中処理も終了する。
一方、S234において、サブCPU71は、演出用遊技停止があると判別したとき(S234がYes判定の場合)、サブCPU71は、表示パネルユニット演出データを登録する(S235)。そして、S235の処理後、サブCPU71は、BB4中抽籤処理を終了するとともにBB中処理も終了する。
ここで、上述したBB4中抽籤処理のS235において表示パネルユニット演出データが登録された場合に実行される表示パネルユニット演出の内容を、図87を参照しながら説明する。なお、図87は、表示パネル110a〜110d(それぞれ図87中の「奥から4枚目」〜「奥から1枚目」に対応)をそれぞれ点消滅させるLED111〜114の輝度の時間的変化を示す輝度の時系列変化パターンを示す。
S235で表示パネルユニット演出データが登録されると、サブCPU71は、図87に示す輝度の時系列変化パターンに従って、LED111〜114の輝度をそれぞれ変化させる。図87に示す輝度変化の時系列パターンでは、遊技者からは、初め、ゆっくりと奥からキャラクターが手前側に迫ってくるように見え、次いで、消灯期間を挟んで、一番手前の表示パネル110aが高速点滅する。本実施形態では、このような演出を行うことにより、遊技者の期待感を向上させることができる。
[ビリーゲットチャレンジ処理]
次に、図88を参照して、BB4中抽籤処理のフローチャート(図86参照)中のS233で行うビリーゲットチャレンジ処理について説明する。なお、図88は、本実施形態における、ビリーゲットチャレンジ処理の手順を示すフローチャートである。
まず、サブCPU71は、ビリーゲットチャレンジ正解抽籤テーブル(図69参照)を参照し、「ビリーゲットチャレンジ」の発生状況、遊技状態及び演出用遊技停止の有無に基づいて、ビリーゲットチャレンジ正解抽籤を行う(S241)。次いで、サブCPU71は、ビリーゲットチャレンジ選択無し時抽籤テーブル(図70参照)を参照し、S241で行ったビリーゲットチャレンジ正解抽籤の結果に基づいて、ビリーゲットチャレンジ選択無し時抽籤を行う(S242)。
次いで、サブCPU71は、上述したビリーゲットチャレンジ演出を登録する(S243)。この処理により、遊技者がスタートレバー21を押下した直後に、ビリーゲットチャレンジ演出が実行される。そして、S243の処理後、サブCPU71は、ビリーゲットチャレンジ処理を終了し、処理をBB4中抽籤処理(図86参照)のS234に移す。
[ナビ遊技状態3加算ゲーム数及び抽籤モード抽籤処理]
次に、図89を参照して、スタートコマンド受信時処理のフローチャート(図83及び図84参照)中のS194で行うナビ遊技状態3加算ゲーム数及び抽籤モード抽籤処理について説明する。なお、図89は、本実施形態における、ナビ遊技状態3加算ゲーム数及び抽籤モード抽籤処理の手順を示すフローチャートである。
まず、サブCPU71は、ナビ遊技状態3加算ゲーム数抽籤テーブルA(図56参照)を参照し、現在のナビモード、小役・リプレイ用ポインタ、ボーナス用データポインタ等に基づいてナビ遊技状態3加算ゲーム数を抽籤する(S251)。
次いで、サブCPU71は、S251の抽籤処理により、5ゲーム以上のナビ遊技状態3加算ゲーム数が当籤したか否かを判別する(S252)。S252において、サブCPU71が、5ゲーム以上のナビ遊技状態3加算ゲーム数が当籤しなかったと判別したとき(S252がNo判定の場合)、サブCPU71は、後述のS256の処理を行う。
一方、S252において、サブCPU71が、5ゲーム以上のナビ遊技状態3加算ゲーム数が当籤したと判別したとき(S252がYes判定の場合)、サブCPU71は、ナビ遊技状態3加算抽籤モード抽籤テーブルA(図60参照)を参照し、現在のナビモードに基づいてナビ遊技状態3加算抽籤モードを抽籤する(S253)。次いで、サブCPU71は、S251で当籤したナビ遊技状態3加算ゲーム数と、S253で決定されたナビ遊技状態3加算抽籤モードとを、互いに対応付けて、その組合せのデータをナビ遊技状態3情報格納領域に格納する(S254)。そして、サブCPU71は、ナビ遊技状態3移行フラグをオンする(S255)。
S255の処理後、又は、S252がNo判定の場合、サブCPU71は、現在の単位遊技が「BB」(「BB1」〜「BB4」)に当籤した単位遊技であるか否か(BB当籤遊技か否か)を判別する(S256)。S256において、サブCPU71が、BB当籤遊技でないと判別したとき(S256がNo判定の場合)、サブCPU71は、ナビ遊技状態3加算ゲーム数及び抽籤モード抽籤処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS195に移す。
一方、S256において、サブCPU71が、BB当籤遊技であると判別したとき(S256がYes判定の場合)、サブCPU71は、ナビ遊技状態3加算ゲーム数抽籤テーブルB(図57参照)を参照し、現在のナビモード、ボーナス用データポインタ及び演出用遊技停止の有無に基づいて、ナビ遊技状態3加算ゲーム数を抽籤する(S257)。
次いで、サブCPU71は、S257の抽籤処理により、5ゲーム以上のナビ遊技状態3加算ゲーム数が当籤したか否かを判別する(S258)。S258において、サブCPU71が、5ゲーム以上のナビ遊技状態3加算ゲーム数が当籤しなかったと判別したとき(S258がNo判定の場合)、サブCPU71は、ナビ遊技状態3加算ゲーム数及び抽籤モード抽籤処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS195に移す。
一方、S258において、サブCPU71が、5ゲーム以上のナビ遊技状態3加算ゲーム数が当籤したと判別したとき(S258がYes判定の場合)、サブCPU71は、ナビ遊技状態3加算抽籤モード抽籤テーブルB(図61参照)を参照し、現在のナビモード、ボーナス用データポインタ及び演出用遊技停止の有無に基づいて、ナビ遊技状態3加算抽籤モードを抽籤する(S259)。次いで、サブCPU71は、S257で当籤したナビ遊技状態3加算ゲーム数と、S259で決定されたナビ遊技状態3加算抽籤モードとを、互いに対応付けて、その組合せのデータをナビ遊技状態3情報格納領域に格納する(S260)。
次いで、サブCPU71は、ナビ遊技状態3移行フラグをオンする(S261)。そして、S261の処理後、サブCPU71は、ナビ遊技状態3加算ゲーム数及び抽籤モード抽籤処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS195に移す。
[ART初当たり時処理]
次に、図90を参照して、スタートコマンド受信時処理のフローチャート(図83及び図84参照)中のS199で行うART初当たり時処理について説明する。なお、図90は、本実施形態における、ART初当たり時処理の手順を示すフローチャートである。
まず、サブCPU71は、ナビセット数抽籤テーブル(図64参照)を参照し、ナビセット数を抽籤する(S271)。次いで、サブCPU71は、S271の抽籤処理で決定されたナビセット数を、ナビセット数カウンタにセットする(S272)。
次いで、サブCPU71は、ナビゲーム数カウンタの値に「50」をセットする(S273)。次いで、サブCPU71は、ナビセット数カウンタの値を「1」減算する(S274)。そして、S274の処理後、サブCPU71は、ART初当たり時処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS200に移す。
[待機状態中ナビ遊技状態移行処理]
次に、図91を参照して、スタートコマンド受信時処理のフローチャート(図83及び図84参照)中のS203で行う待機状態中ナビ遊技状態移行処理について説明する。なお、図91は、本実施形態における、待機状態中ナビ遊技状態移行処理の手順を示すフローチャートである。
まず、サブCPU71は、現在の単位遊技が、ナビ遊技状態移行待機カウンタの消化中において「BB」(「BB1」〜「BB4」)に当籤した単位遊技であるか否か(BB当籤遊技か否か)を判別する(S281)。
S281において、サブCPU71が、ナビ遊技状態移行待機カウンタ消化中のBB当籤遊技でないと判別したとき(S281がNo判定の場合)、サブCPU71は、ナビ遊技状態移行待機カウンタの値を「1」減算する(S282)。次いで、サブCPU71は、ナビ遊技状態移行待機カウンタの値が「0」になったか否かを判別する(S283)。
S283において、サブCPU71が、ナビ遊技状態移行待機カウンタの値が「0」でないと判別したとき(S283がNo判定の場合)、サブCPU71は、待機状態中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。一方、S283において、サブCPU71が、ナビ遊技状態移行待機カウンタの値が「0」になったと判別したとき(S283がYes判定の場合)、サブCPU71は、RT遊技状態がRT3遊技状態であるか否かを判別する(S284)。
S284において、サブCPU71が、RT遊技状態がRT3遊技状態でないと判別したとき(S284がNo判定の場合)、サブCPU71は、次の単位遊技からナビ遊技状態をナビ遊技状態1へ移行させるための処理を行う(S285)。この処理の詳細な説明は省略するが、この処理では、サブCPU71は、ナビ遊技状態1フラグをオン状態にし、そして、次の単位遊技の開始時にナビ遊技状態1フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態1へ移行させる。そして、S285の処理後、サブCPU71は、待機状態中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
一方、S284において、サブCPU71が、RT遊技状態がRT3遊技状態であると判別したとき(S284がYes判定の場合)、サブCPU71は、次の単位遊技からナビい遊技状態をナビ遊技状態2へ移行させるための処理を行う(S286)。この処理では、サブCPU71は、ナビ遊技状態2フラグをオン状態にし、そして、次の単位遊技の開始時にナビ遊技状態2フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態2へ移行させる。そして、S286の処理後、サブCPU71は、待機状態中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
ここで、再度、S281の処理に戻って、S281において、サブCPU71が、ナビ遊技状態移行待機カウンタ消化中のBB当籤遊技であると判別したとき(S281がYes判定の場合)、サブCPU71は、ナビ遊技状態移行待機カウンタをクリアする(S287)。次いで、サブCPU71は、BB終了後からナビ遊技状態をナビ遊技状態1へ移行させるための処理を行う(S288)。この処理では、サブCPU71は、ナビ遊技状態1フラグをオン状態にし、そして、BB終了後にナビ遊技状態1フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態1へ移行させる。そして、S288の処理後、サブCPU71は、待機状態中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
[ナビ遊技状態1中ナビ遊技状態移行処理]
次に、図92を参照して、スタートコマンド受信時処理のフローチャート(図83及び図84参照)中のS205で行うナビ遊技状態1中ナビ遊技状態移行処理について説明する。なお、図92は、本実施形態における、ナビ遊技状態1中ナビ遊技状態移行処理の手順を示すフローチャートである。
まず、サブCPU71は、現在の単位遊技が「BB」(「BB1」〜「BB4」)に当籤した単位遊技であるか否か(BB当籤遊技か否か)を判別する(S291)。
S291において、サブCPU71が、BB当籤遊技であると判別したとき(S291がYes判定の場合)、サブCPU71は、BB終了後からナビ遊技状態をナビ遊技状態1へ移行させるための処理を行う(S292)。この処理では、サブCPU71は、ナビ遊技状態1フラグをオンし、そして、BB終了後にナビ遊技状態1フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態1へ移行させる。そして、S292の処理後、サブCPU71は、ナビ遊技状態1中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
一方、S291において、サブCPU71が、BB当籤遊技でないと判別したとき(S291がNo判定の場合)、サブCPU71は、現在の単位遊技が他の遊技状態からRT3遊技状態に移行した単位遊技(RT3移行遊技)であるか否かを判別する(S293)。S293において、サブCPU71は、現在の単位遊技がRT3移行遊技であると判別したとき(S293がYes判定の場合)、サブCPU71は、後述のS295の処理を行う。
一方、S293において、サブCPU71は、現在の単位遊技がRT3移行遊技でないと判別したとき(S293がNo判定の場合)、サブCPU71は、遊技者がナビに従わず特定の条件を充足したか否かを判別する(S294)。なお、特定の条件は、次の(i)〜(v)の場合に充足される。
(i)一般遊技状態中のSB当籤時にRT遊技状態がRT1遊技状態へ移行しなかった場合
(ii)RT1遊技状態中の押し順リプ1当籤時にRT遊技状態がRT2遊技状態へ移行しなかった場合
(iii)RT1遊技状態中又はRT2遊技状態中の押し順ベル当籤時にRT遊技状態が一般遊技状態へ移行した場合
(iv)RT2遊技状態中のSB当籤時にRT遊技状態がRT1遊技状態へ移行した場合
(v)RT2遊技状態中の押し順リプ2当籤時にRT遊技状態がRT3遊技状態へ移行しなかった場合
S294において、サブCPU71が、遊技者がナビに従わず特定の条件を充足していないと判別したとき(S294がNo判定の場合)、サブCPU71は、ナビ遊技状態1中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。一方、S294において、サブCPU71が、遊技者がナビに従わず特定の条件を充足したと判別したとき(S294がYes判定の場合)、サブCPU71は、後述のS295の処理を行う。
S293又はS294がYes判定の場合、サブCPU71は、ナビ遊技状態3中断フラグがオン状態であるか否かを判別する(S295)。なお、ナビ遊技状態3中断フラグは、ナビ遊技状態3において「BB」に当籤したときにオン状態となり、そのBB終了後、ナビ遊技状態がナビ遊技状態1へ移行し、その後、再度ナビ遊技状態3に復帰した際に、クリアされる。
S295において、サブCPU71が、ナビ遊技状態3中断フラグがオン状態でないと判別したとき(S295がNo判定の場合)、サブCPU71は、次の単位遊技からナビ遊技状態をナビ遊技状態2へ移行させるための処理を行う(S296)。この処理では、サブCPU71は、ナビ遊技状態2フラグをオンし、そして、次の単位遊技の開始時にナビ遊技状態2フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態2へ移行させる。そして、S296の処理後、サブCPU71は、ナビ遊技状態1中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
一方、S295において、サブCPU71が、ナビ遊技状態3中断フラグがオン状態であると判別したとき(S295がYes判定の場合)、サブCPU71は、次の単位遊技からナビ遊技状態をナビ遊技状態3へ移行させるための処理を行う(S297)。この処理では、サブCPU71は、ナビ遊技状態3フラグをオンし、そして、次の単位遊技の開始時にナビ遊技状態3フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態3へ移行させる。そして、S297の処理後、サブCPU71は、ナビ遊技状態1中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
[ナビ遊技状態2中ナビ遊技状態移行処理]
次に、図93及び図94を参照して、スタートコマンド受信時処理のフローチャート(図83及び図84参照)中のS207で行うナビ遊技状態2中ナビ遊技状態移行処理について説明する。なお、図93及び図94は、本実施形態における、ナビ遊技状態2中ナビ遊技状態移行処理の手順を示すフローチャートである。
まず、サブCPU71は、現在の単位遊技が「BB」(「BB1」〜「BB4」)に当籤した単位遊技であるか否か(BB当籤遊技か否か)を判別する(S301)。
S301において、サブCPU71が、BB当籤遊技であると判別したとき(S301がYes判定の場合)、サブCPU71は、BB終了後からナビ遊技状態をナビ遊技状態1へ移行させるための処理を行う(S302)。この処理では、サブCPU71は、ナビ遊技状態1フラグをオンし、そして、BB終了後にナビ遊技状態1フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態1へ移行させる。そして、S302の処理後、サブCPU71は、ナビ遊技状態2中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
一方、S301において、サブCPU71が、BB当籤遊技でないと判別したとき(S301がNo判定の場合)、サブCPU71は、「BB」が持越中であるか否かを判別する(S303)。
S303において、サブCPU71が、「BB」が持越中であると判別したとき(S303がYes判定の場合)、サブCPU71は、ナビ遊技状態2中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。一方、S303において、サブCPU71が、「BB」が持越中でないと判別したとき(S303がNo判定の場合)、サブCPU71は、ナビ遊技状態3移行フラグがオン状態であるか否かを判別する(S304)。
S304において、サブCPU71が、ナビ遊技状態3移行フラグがオン状態であると判別したとき(S304がYes判定の場合)、サブCPU71は、後述のS306の処理を行う。一方、S304において、サブCPU71が、ナビ遊技状態3移行フラグがオン状態でないと判別したとき(S304がNo判定の場合)、サブCPU71は、ナビ遊技状態移行待機カウンタの値が「1」以上であるか否かを判別する(S305)。
S305において、サブCPU71が、ナビ遊技状態移行待機カウンタの値が「1」以上であると判別したとき(S305がYes判定の場合)、サブCPU71は、後述のS306の処理を行う。
S304又はS305がYes判定の場合、サブCPU71は、ナビ遊技状態2中ナビ遊技状態3移行処理を行う(S306)。なお、ナビ遊技状態2中ナビ遊技状態3移行処理の詳細については、後述の図95を参照しながら後で説明する。そして、S306の処理後、サブCPU71は、ナビ遊技状態2中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
一方、S305において、サブCPU71が、ナビ遊技状態移行待機カウンタの値が「1」以上でないと判別したとき(S305がNo判定の場合)、サブCPU71は、ナビゲーム数カウンタの値を「1」減算する(S307)。次いで、サブCPU71は、ナビゲーム数カウンタの値が「0」になったか否かを判別する(S308)。
S308において、サブCPU71が、ナビゲーム数カウンタの値が「0」になっていないと判別したとき(S308がNo判定の場合)、サブCPU71は、ナビ遊技状態2中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。一方、S308において、サブCPU71が、ナビゲーム数カウンタの値が「0」になったと判別したとき(S308がYes判定の場合)、サブCPU71は、ナビセット数カウンタの値が「0」であるか否かを判別する(S309)。
S309において、サブCPU71が、ナビセット数カウンタの値が「0」でないと判別したとき(S309がNo判定の場合)、サブCPU71は、ナビゲーム数カウンタの値に「50」をセットする(S310)。次いで、サブCPU71は、ナビセット数カウンタの値を「1」減算する(S311)。そして、S311の処理後、サブCPU71は、ナビ遊技状態2中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
一方、S309において、サブCPU71が、ナビセット数カウンタの値が「0」であると判別したとき(S309がYes判定の場合)、サブCPU71は、ナビモード移行抽籤テーブルC(図53参照)を参照し、ナビモード移行抽籤を行う(S312)。次いで、サブCPU71は、S312のナビモード移行抽籤の結果、移行先のナビモードが「0」に決定されたか否かを判別する(S313)。
S313において、サブCPU71が、移行先のナビモードが「0」に決定されたと判別したとき(S313がYes判定の場合)、サブCPU71は、後述のS318の処理を行う。
一方、S313において、サブCPU71が、移行先のナビモードが「0」に決定されなかったと判別したとき(S313がNo判定の場合)、サブCPU71は、上記図90で説明したART初当たり時処理を行う(S314)。次いで、サブCPU71は、ナビ遊技状態移行待機数抽籤テーブル(図54参照)を参照し、ナビ遊技状態移行待機数を抽籤する(S315)。次いで、サブCPU71は、S315で決定されたナビ遊技状態移行待機数をナビ遊技状態移行待機数カウンタにセットする(S316)。
そして、S316の処理後、サブCPU71は、ナビ遊技状態移行待機数カウンタの値が「0」であるか否かを判別する(S317)。S317において、サブCPU71が、ナビ遊技状態移行待機数カウンタの値が「0」でないと判別したとき(S317がNo判定の場合)、サブCPU71は、後述のS318の処理を行う。
S313がYes判定の場合、又は、S317がNo判定の場合、サブCPU71は、次の単位遊技からナビ遊技状態をナビ遊技状態0へ移行させるための処理を行う(S318)。この処理では、サブCPU71は、ナビ遊技状態0フラグをオンし、そして、次の単位遊技の開始時にナビ遊技状態0フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態0へ移行させる。そして、S318の処理後、サブCPU71は、ナビ遊技状態2中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
一方、S317において、サブCPU71が、ナビ遊技状態移行待機数カウンタの値が「0」であると判別したとき(S317がYes判定の場合)、サブCPU71は、次の単位遊技からナビ遊技状態をナビ遊技状態2へ移行させるための処理を行う(S319)。この処理では、サブCPU71は、ナビ遊技状態2フラグをオンし、そして、次の単位遊技の開始時にナビ遊技状態2フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態2へ移行させる。そして、S319の処理後、サブCPU71は、ナビ遊技状態2中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
[ナビ遊技状態2中ナビ遊技状態3移行処理]
次に、図95を参照して、ナビ遊技状態2中ナビ遊技状態移行処理のフローチャート(図93及び図94参照)中のS306で行うナビ遊技状態2中ナビ遊技状態3移行処理について説明する。なお、図95は、本実施形態における、ナビ遊技状態2中ナビ遊技状態3移行処理の手順を示すフローチャートである。
まず、サブCPU71は、ナビ遊技状態3移行待機数カウンタの値が「0」であるか否かを判別する(S321)。なお、ナビ遊技状態3移行待機数カウンタは、ナビ遊技状態がナビ遊技状態2からナビ遊技状態3へ移行するまでのゲーム数を示すカウンタである。
S321において、サブCPU71が、ナビ遊技状態3移行待機数カウンタの値が「0」でないと判別したとき(S321がNo判定の場合)、サブCPU71は、後述のS327の処理を行う。一方、S321において、サブCPU71が、ナビ遊技状態3移行待機数カウンタの値が「0」であると判別したとき(S321がYes判定の場合)、サブCPU71は、ナビ遊技状態がナビ遊技状態2に移行したとき、ナビ遊技状態3移行フラグがオン状態であったか否か判別する(S322)。
S322において、サブCPU71が、ナビ遊技状態3移行フラグがオン状態でなかったと判別したとき(S322がNo判定の場合)、サブCPU71は、ナビ遊技状態3移行待機数抽籤テーブル(図55参照)を参照し、ナビゲーム数カウンタの値等に基づいて、ナビ遊技状態3移行待機数を抽籤する(S323)。次いで、サブCPU71は、S323で決定されたナビ遊技状態3移行待機数をナビ遊技状態3移行待機数カウンタにセットする(S324)。そして、S324の処理後、サブCPU71は、後述のS327の処理を行う。
一方、S322において、サブCPU71が、ナビ遊技状態3移行フラグがオン状態であったと判別したとき(S322がYes判定の場合)、サブCPU71は、ナビ遊技状態がナビ遊技状態2へ移行する前はナビ遊技状態0又はナビ遊技状態1であったか否か判別する(S325)。
S325において、サブCPU71が、ナビ遊技状態がナビ遊技状態2へ移行する前はナビ遊技状態0又はナビ遊技状態1であったと判別したとき(S325がYes判定の場合)、サブCPU71は、後述のS329の処理を行う。一方、S325において、サブCPU71が、ナビ遊技状態がナビ遊技状態2へ移行する前はナビ遊技状態0又はナビ遊技状態1でなかったと判別したとき(S325がNo判定の場合)、サブCPU71は、ナビ遊技状態3移行待機数カウンタの値に「2」をセットする(S326)。
そして、S324或いはS326の処理後、又は、S321がNo判定の場合、サブCPU71は、ナビ遊技状態3移行待機数カウンタの値を「1」減算する(S327)。次いで、サブCPU71は、ナビ遊技状態3移行待機数カウンタの値が「0」であるか否かを判別する(S328)。
S328において、サブCPU71は、ナビ遊技状態3移行待機数カウンタの値が「0」でないと判別したとき(S328がNo判定の場合)、サブCPU71は、ナビ遊技状態2中ナビ遊技状態3移行処理を終了するとともに、ナビ遊技状態2中ナビ遊技状態移行処理も終了する。一方、S328において、サブCPU71は、ナビ遊技状態3移行待機数カウンタの値が「0」であると判別したとき(S328がYes判定の場合)、サブCPU71は、後述のS329の処理を行う。
S325又はS328がYes判定の場合、サブCPU71は、次の単位遊技からナビ遊技状態をナビ遊技状態3へ移行させるための処理を行う(S329)。この処理では、サブCPU71は、ナビ遊技状態3フラグをオンし、そして、次の単位遊技の開始時にナビ遊技状態3フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態3へ移行させる。そして、S329の処理後、サブCPU71は、ナビ遊技状態2中ナビ遊技状態3移行処理を終了するとともに、ナビ遊技状態2中ナビ遊技状態移行処理も終了する。
[ナビ遊技状態3中ナビ遊技状態移行処理]
次に、図96を参照して、スタートコマンド受信時処理のフローチャート(図83及び図84参照)中のS209で行うナビ遊技状態3中ナビ遊技状態移行処理について説明する。なお、図96は、本実施形態における、ナビ遊技状態3中ナビ遊技状態移行処理の手順を示すフローチャートである。
まず、サブCPU71は、ナビ遊技状態3中断フラグがオン状態である否かを判別する(S331)。
S331において、サブCPU71が、ナビ遊技状態3中断フラグがオン状態であると判別したとき(S331がYes判定の場合)、サブCPU71は、後述のS337の処理を行う。一方、S331において、サブCPU71が、ナビ遊技状態3中断フラグがオン状態でないと判別したとき(S331がNo判定の場合)、サブCPU71は、現在の遊技が他のナビ遊技状態からナビ遊技状態3に移行した遊技(ナビ遊技状態3移行遊技)であるか否か判別する(S332)。
S332において、サブCPU71が、ナビ遊技状態3移行遊技ではないと判別したとき(S332がNo判定の場合)、サブCPU71は、後述のS339の処理を行う。一方、S332において、サブCPU71が、ナビ遊技状態3移行遊技ではあると判別したとき(S332がYes判定の場合)、サブCPU71は、ナビ遊技状態3情報格納領域から情報を取得し、ナビ遊技状態3加算ゲーム数、ナビ遊技状態3加算抽籤モードをセットする(S333)。
S333の処理後、サブCPU71は、ナビ遊技状態3継続カウンタに「1」をセットする(S334)。なお、ナビ遊技状態3継続カウンタは、ナビ遊技状態3での継続ゲーム数を管理するカウンタである。次いで、サブCPU71は、S333の処理で、ナビ遊技状態3情報格納領域から情報を取得したことにより、ナビ遊技状態3情報格納領域に格納されている情報が無くなったか否か(ナビ遊技状態3情報格納領域が空になったか否か)を判別する(S335)。
S335において、サブCPU71が、ナビ遊技状態3情報格納領域が空でないと判別したとき(S335がNo判定の場合)、サブCPU71は、後述のS339の処理を行う。一方、S335において、サブCPU71が、ナビ遊技状態3情報格納領域が空になったと判別したとき(S335がYes判定の場合)、サブCPU71は、ナビ遊技状態3移行フラグをオフする(S336)。そして、S336の処理後、サブCPU71は、後述のS339の処理を行う。
ここで、再度、S331の処理に戻って、S331がYes判定の場合、サブCPU71は、後述するS341の処理で退避したナビ遊技状態3加算ゲーム数、ナビ遊技状態3加算抽籤モード及びナビ遊技状態継続カウンタを復帰させる(S337)。次いで、サブCPU71は、ナビ遊技状態3移行フラグをオフする(S338)。そして、S338の処理後、サブCPU71は、後述のS339の処理を行う。
S336或いはS338の処理後、又は、S332或いはS335がNo判定の場合、サブCPU71は、ナビゲーム数加算処理を行う(S339)。なお、ナビゲーム数加算処理の詳細については、後述の図97を参照しながら後で説明する。
次いで、サブCPU71は、現在の単位遊技が「BB」(「BB1」〜「BB4」)に当籤した単位遊技であるか否か(BB当籤遊技であるか否か)を判別する(S340)。
S340において、サブCPU71が、BB当籤遊技であると判別したとき(S340がYes判定の場合)、サブCPU71は、ナビ遊技状態3加算ゲーム数、ナビ遊技状態3加算抽籤モード及びナビ遊技状態継続カウンタを退避する(S341)。次いで、サブCPU71は、ナビ遊技状態3中断フラグをオンする(S342)。
S342の処理後、サブCPU71は、BB終了後からナビ遊技状態をナビ遊技状態1へ移行させるための処理を行う(S343)。この処理では、サブCPU71は、ナビ遊技状態1フラグをオンし、そして、BB終了後にナビ遊技状態1フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態1へ移行させる。そして、S343の処理後、サブCPU71は、ナビ遊技状態3中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
一方、S340において、サブCPU71が、BB当籤遊技でないと判別したとき(S340がNo判定の場合)、サブCPU71は、ナビ遊技状態3ナビゲーム数加算抽籤の結果が非当籤であるか否かを判別する(S344)。
S344において、サブCPU71が、ナビ遊技状態3ナビゲーム数加算抽籤の結果が当籤であると判別したとき(S344がNo判定の場合)、サブCPU71は、ナビ遊技状態3中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
一方、S344において、サブCPU71が、ナビ遊技状態3ナビゲーム数加算抽籤の結果が非当籤であると判別したとき(S344がYes判定の場合)、サブCPU71は、次の単位遊技からナビ遊技状態をナビ遊技状態2へ移行させるための処理を行う(S345)。この処理では、サブCPU71は、ナビ遊技状態2フラグをオンし、そして、次の単位遊技の開始時にナビ遊技状態2フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態2へ移行させる。そして、S345の処理後、サブCPU71は、ナビ遊技状態3中ナビ遊技状態移行処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS210に移す。
[ナビゲーム数加算処理]
次に、図97を参照して、ナビ遊技状態3中ナビ遊技状態移行処理のフローチャート(図96参照)中のS339で行うナビゲーム数加算処理について説明する。なお、図97は、本実施形態における、ナビゲーム数加算処理の手順を示すフローチャートである。
まず、サブCPU71は、ナビ遊技状態がナビ遊技状態3であるか否かを判別する(S351)。
S351において、サブCPU71が、ナビ遊技状態がナビ遊技状態3でないと判別したとき(S351がNo判定の場合)、サブCPU71は、ナビゲーム数加算処理を終了し、処理をナビ遊技状態3中ナビ遊技状態移行処理(図96参照)のS340に移す。一方、S351において、サブCPU71が、ナビ遊技状態がナビ遊技状態3であると判別したとき(S351がYes判定の場合)、サブCPU71は、現在の単位遊技が「BB」(「BB1」〜「BB4」)に当籤した単位遊技であるか否か(BB当籤遊技であるか否か)を判別する(S352)。
S352において、サブCPU71が、BB当籤遊技であると判別したとき(S352がYes判定の場合)、サブCPU71は、ナビゲーム数特殊加算抽籤テーブル(図66参照)を参照し、当籤した「BB」の種別に基づいて、ナビゲーム数特殊加算抽籤を行う(S353)。次いで、サブCPU71は、S353で決定されたナビゲーム数をナビゲーム数カウンタの値に加算する(S354)。そして、S354の処理後、サブCPU71は、ナビゲーム数加算処理を終了し、処理をナビ遊技状態3中ナビ遊技状態移行処理(図96参照)のS340に移す。
一方、S352において、サブCPU71が、BB当籤遊技でないと判別したとき(S352がNo判定の場合)、サブCPU71は、現在のゲームがナビ遊技状態3中のBB当籤からの復帰1ゲーム目のゲームであるか否かを判別する(S355)。
S355において、サブCPU71が、現在のゲームがナビ遊技状態3中のBB当籤からの復帰1ゲーム目のゲームであると判別したとき(S355がYes判定の場合)、サブCPU71は、後述のS360の処理を行う。一方、S355において、サブCPU71が、現在のゲームがナビ遊技状態3中のBB当籤からの復帰1ゲーム目のゲームでないと判別したとき(S355がNo判定の場合)、サブCPU71は、ナビ遊技状態3継続カウンタの値が「1」又は「2」であるか否かを判別する(S356)。
S356において、サブCPU71が、ナビ遊技状態3継続カウンタの値が「1」又は「2」であると判別したとき(S356がYes判定の場合)、サブCPU71は、後述のS360の処理を行う。一方、S356において、サブCPU71が、ナビ遊技状態3継続カウンタの値が「1」又は「2」でないと判別したとき(S356がNo判定の場合)、サブCPU71は、ナビ遊技状態3ナビゲーム数加算抽籤テーブル(図65参照)を参照し、ナビ遊技状態3加算抽籤モード、小役・リプレイ用ポインタデータポインタ、ボーナス用データポインタ等に基づいて、ナビ遊技状態3ナビゲーム数加算抽籤を行う(S357)。
S357の処理後、サブCPU71は、ナビ遊技状態3ナビゲーム数加算抽籤の結果が当籤であるか否かを判別する(S358)。
S358において、サブCPU71が、ナビ遊技状態3ナビゲーム数加算抽籤の結果が当籤であると判別したとき(S358がYes判定の場合)、サブCPU71は、後述のS360の処理を行う。一方、S358において、サブCPU71が、ナビ遊技状態3ナビゲーム数加算抽籤の結果が当籤でないと判別したとき(S358がNo判定の場合)、サブCPU71は、ナビ遊技状態3加算抽籤モード、ナビ遊技状態3加算ゲーム数及びナビ遊技状態3継続カウンタをクリアする(S359)。そして、S359の処理後、サブCPU71は、ナビゲーム数加算処理を終了し、処理をナビ遊技状態3中ナビ遊技状態移行処理(図96参照)のS340に移す。
S355、S356又はS358がYes判定の場合、サブCPU71は、ナビ遊技状態3加算ゲーム数をナビゲーム数カウンタの値に加算する(S360)。次いで、サブCPU71は、ナビ遊技状態3継続カウンタの値が特定の値であるか否かを判別する(S361)。具体的には、サブCPU71は、ナビ遊技状態3継続カウンタの値がナビゲーム数特殊加算抽籤テーブル(図66参照)に規定されている値(5、7、10、15、20、25、30、35、40、…)であるか否かを判別する。
S361において、サブCPU71が、ナビ遊技状態3継続カウンタの値が特定の値でないと判別したとき(S361がNo判定の場合)、サブCPU71は、後述のS364の処理を行う。一方、S361において、サブCPU71が、ナビ遊技状態3継続カウンタの値が特定の値であると判別したとき(S361がYes判定の場合)、サブCPU71は、ナビゲーム数特殊加算抽籤テーブル(図66参照)を参照し、ナビ遊技状態3継続カウンタの値に基づいて、ナビゲーム数特殊加算抽籤を行う(S362)。次いで、サブCPU71は、ナビゲーム数特殊加算抽籤で決定されたナビゲーム数をナビゲーム数カウンタの値に加算する(S363)。
S363の処理後、又は、S361がNo判定の場合、サブCPU71は、ナビ遊技状態3継続カウンタの値に「1」を加算する(S364)。そして、S364の処理後、サブCPU71は、ナビゲーム数加算処理を終了し、処理をナビ遊技状態3中ナビ遊技状態移行処理(図96参照)のS340に移す。
[ビリーゲットチャレンジ抽籤処理]
次に、図98を参照して、スタートコマンド受信時処理のフローチャート(図83及び図84参照)中のS210で行うビリーゲットチャレンジ抽籤処理について説明する。なお、図98は、本実施形態における、ビリーゲットチャレンジ抽籤処理の手順を示すフローチャートである。
まず、サブCPU71は、「BB」が作動中であるか否かを判別する(S371)。
S371において、サブCPU71が、「BB」が作動中であると判別したとき(S371がYes判定の場合)、サブCPU71は、ビリーゲットチャレンジ抽籤処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS211に移す。一方、S371において、サブCPU71が、「BB」が作動中でないと判別したとき(S371がNo判定の場合)、サブCPU71は、「BB」が持越中であるか否かを判別する(S372)。
S372において、サブCPU71が、「BB」が持越中であると判別したとき(S372がYes判定の場合)、サブCPU71は、ビリーゲットチャレンジ抽籤処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS211に移す。一方、S372において、サブCPU71が、「BB」が持越中でないと判別したとき(S372がNo判定の場合)、サブCPU71は、ナビモードが「0」であるか否かを判別する(S373)。
S373において、サブCPU71が、ナビモードが「0」でないと判別したとき(S373がNo判定の場合)、サブCPU71は、ビリーゲットチャレンジ抽籤処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS211に移す。一方、S373において、サブCPU71が、ナビモードが「0」であると判別したとき(S373がYes判定の場合)、サブCPU71は、ビリーゲットチャレンジ制御カウンタ抽籤テーブル(図68参照)を参照し、小役・リプレイ用ポインタ、ボーナス用データポインタ及び演出用遊技停止の有無に基づいて、ビリーゲットチャレンジ制御カウンタ抽籤を行う(S374)。
次いで、サブCPU71は、ビリーゲットチャレンジ制御カウンタ抽籤の結果が当籤であるか否かを判別する(S375)。
S375において、サブCPU71が、ビリーゲットチャレンジ制御カウンタ抽籤の結果が当籤でないと判別したとき(S375がNo判定の場合)、サブCPU71は、後述のS377の処理を行う。一方、S375において、サブCPU71が、ビリーゲットチャレンジ制御カウンタ抽籤の結果が当籤であると判別したとき(S375がYes判定の場合)、サブCPU71は、ビリーゲットチャレンジ制御カウンタの値に「1」を加算する(S376)。
そして、S376の処理後、又は、S375がNo判定の場合、サブCPU71は、ビリーゲットチャレンジ制御カウンタの値が「1」以上であるか否かを判別する(S377)。S377において、サブCPU71が、ビリーゲットチャレンジ制御カウンタの値が「1」以上でないと判別したとき(S377がNo判定の場合)、サブCPU71は、ビリーゲットチャレンジ抽籤処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS211に移す。
一方、S377において、サブCPU71が、ビリーゲットチャレンジ制御カウンタの値が「1」以上であると判別したとき(S377がYes判定の場合)、サブCPU71は、現在の単位遊技が特定液晶演出終了の次の単位遊技であるか否かを判別する(S378)。なお、ここでいう「特定液晶演出」とは、例えば、液晶表示装置10による複数の単位遊技に渡る連続演出や、ボーナスやARTを期待させる演出等のことである。
S378において、サブCPU71が、現在の単位遊技が特定液晶演出終了の次の単位遊技でないと判別したとき(S378がNo判定の場合)、サブCPU71は、ビリーゲットチャレンジ抽籤処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS211に移す。
一方、S378において、サブCPU71が、現在の単位遊技が特定液晶演出終了の次の単位遊技であると判別したとき(S378がYes判定の場合)、サブCPU71は、上記図88で説明したビリーゲットチャレンジ処理を行う(S379)。次いで、サブCPU71は、ビリーゲットチャレンジ制御カウンタの値を「1」減算する(S380)。そして、S380の処理後、サブCPU71は、ビリーゲットチャレンジ抽籤処理を終了し、処理をスタートコマンド受信時処理(図83及び図84参照)のS211に移す。
[ビリーゲットチャレンジ判定処理]
次に、図99を参照して、演出内容決定処理のフローチャート(図82参照)中のS175で行うビリーゲットチャレンジ判定処理について説明する。なお、図99は、本実施形態における、ビリーゲットチャレンジ判定処理の手順を示すフローチャートである。
まず、サブCPU71は、上記図88で説明したビリーチャレンジ処理中のS243において、ビリーゲットチャレンジ演出が登録されたか否かを判別する(S391)。
S391において、サブCPU71が、ビリーゲットチャレンジ演出が登録されていないと判別したとき(S391がNo判定の場合)、サブCPU71は、ビリーゲットチャレンジ判定処理を終了し、処理を演出内容決定処理(図82参照)のS176に移す。一方、S391において、サブCPU71が、ビリーゲットチャレンジ演出が登録されていると判別したとき(S391がYes判定の場合)、サブCPU71は、第3停止時であるか否かを判定する(S392)。
S392において、サブCPU71が、第3停止時でないと判別したとき(S392がNo判定の場合)、サブCPU71は、ビリーゲットチャレンジ判定処理を終了し、処理を演出内容決定処理(図82参照)のS176に移す。一方、S392において、サブCPU71が、第3停止時であると判別したとき(S392がYes判定の場合)、サブCPU71は、ビリーゲットチャレンジが成功したか否かを判別する(S393)。
このS393の処理では、まず、サブCPU71は、第3停止時までに赤外線センサ(120L,120R)に対して遊技者の選択操作が行われたか否かを判別する。そして、選択操作が行われている場合には、サブCPU71は、その選択操作の結果がビリーゲットチャレンジ正解抽籤(図88で説明したビリーチャレンジ処理中のS241)で決定された正解と一致したか否かを判定する。そして、両者が一致している場合には、サブCPU71は、ビリーゲットチャレンジ成功と判定し、両者が一致しない場合には、サブCPU71は、ビリーゲットチャレンジ失敗と判定する。
なお、第3停止時までに選択操作が行われなかった場合、サブCPU71は、ビリーゲットチャレンジ選択無し時抽籤(図88で説明したビリーチャレンジ処理中のS242)の結果が当籤であれば、ビリーゲットチャレンジ成功と判定し、非当籤であれば、ビリーゲットチャレンジ失敗と判定する。また、図示しないが、サブCPU71は、ビリーゲットチャレンジ成功の場合には、ビリーゲットチャレンジが成功したことを示すビリーゲットチャレンジ成功演出データを登録し、遊技者にその旨を報知する。
S393において、サブCPU71が、ビリーゲットチャレンジが失敗したと判別したとき(S393がNo判定の場合)、サブCPU71は、ビリーゲットチャレンジ判定処理を終了し、処理を演出内容決定処理(図82参照)のS176に移す。一方、S393において、サブCPU71が、ビリーゲットチャレンジが成功したと判別したとき(S393がYes判定の場合)、サブCPU71は、「BB4」が作動中であるか否かを判別する(S394)。
S394において、サブCPU71が、「BB4」が作動中でないと判別したとき(S394がNo判定の場合)、サブCPU71は、ナビモードを1段階アップさせる(S395)。次いで、サブCPU71は、ナビ遊技状態移行処理を行う(S396)。なお、ナビ遊技状態移行処理の詳細については、後述の図100を参照しながら後で説明する。次いで、サブCPU71は、上記図90で説明したART初当たり時処理を行う(S397)。そして、S397の処理後、サブCPU71は、ビリーゲットチャレンジ判定処理を終了し、処理を演出内容決定処理(図82参照)のS176に移す。
一方、S394において、サブCPU71が、「BB4」が作動中であると判別したとき(S394がYes判定の場合)、サブCPU71は、ビリーゲットチャレンジ成功フラグをオンする(S398)。次いで、サブCPU71は、ナビモードを1段階アップさせる(S399)。
次いで、サブCPU71は、ナビモードが「0」から「1」〜「4」へ移行したか否かを判別する(S400)。
S400において、サブCPU71が、ナビモードが「0」から「1」〜「4」へ移行していないと判別したとき(S400がNo判定の場合)、サブCPU71は、後述のS402の処理を行う。一方、S400において、サブCPU71は、ナビモードが「0」から「1」〜「4」へ移行したと判別したとき(S400がYes判定の場合)、サブCPU71は、上記図90で説明したART初当たり時処理を行う(S401)。
S401の処理後、又は、S400がNo判定の場合、サブCPU71は、ナビ遊技状態3加算ゲーム数抽籤テーブルD(図59参照)を参照し、ナビ遊技状態3加算ゲーム数を抽籤する(S402)。次いで、サブCPU71は、ナビ遊技状態3加算ゲーム数の抽籤結果が当籤である(ナビ遊技状態3加算ゲーム数として「0」以外の値が決定された)か否かを判別する(S403)。
S403において、サブCPU71は、ナビ遊技状態3加算ゲーム数の抽籤結果が当籤でないと判別したとき(S403がNo判定の場合)、サブCPU71は、ビリーゲットチャレンジ判定処理を終了し、処理を演出内容決定処理(図82参照)のS176に移す。一方、S403において、サブCPU71は、ナビ遊技状態3加算ゲーム数の抽籤結果が当籤であると判別したとき(S403がYes判定の場合)、サブCPU71は、ナビ遊技状態3加算抽籤モード抽籤テーブルD(図63参照)を参照し、現在のナビモードに基づいて、ナビ遊技状態3加算抽籤モード抽籤を行う(S404)。
次いで、サブCPU71は、S402の抽籤処理で当籤したナビ遊技状態3加算ゲーム数と、S404の抽籤処理で決定されたナビ遊技状態3加算抽籤モードとを、互いに対応付けて、その組合せのデータをナビ遊技状態3情報格納領域に格納する(S405)。次いで、サブCPU71は、ナビ遊技状態3移行フラグをオンする(S406)。そして、S406の処理後、サブCPU71は、ビリーゲットチャレンジ判定処理を終了し、処理を演出内容決定処理(図82参照)のS176に移す。
[ナビ遊技状態移行処理]
次に、図100を参照して、ビリーゲットチャレンジ判定処理のフローチャート(図99参照)中のS396で行うナビ遊技状態移行処理について説明する。なお、図100は、本実施形態における、ナビ遊技状態移行処理の手順を示すフローチャートである。
まず、サブCPU71は、RT3遊技状態中であるか否かを判別する(S411)。
S411において、サブCPU71が、RT3遊技状態中であると判別したとき(S411がYes判定の場合)、サブCPU71は、次の単位遊技からナビ遊技状態をナビ遊技状態2へ移行させるための処理を行う(S412)。この処理では、サブCPU71は、ナビ遊技状態2フラグをオンし、そして、次の単位遊技の開始時にナビ遊技状態2フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態2へ移行させる。そして、S412の処理後、サブCPU71は、ナビ遊技状態移行処理を終了し、処理をビリーゲットチャレンジ判定処理(図99参照)のS397に移す。
一方、S411において、サブCPU71が、RT3遊技状態中でないと判別したとき(S411がNo判定の場合)、サブCPU71は、次の単位遊技からナビ遊技状態をナビ遊技状態1へ移行させるための処理を行う(S413)。この処理では、サブCPU71は、ナビ遊技状態1フラグをオンし、そして、次の単位遊技の開始時にナビ遊技状態1フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態1へ移行させる。そして、S413の処理後、サブCPU71は、ナビ遊技状態移行処理を終了し、処理をビリーゲットチャレンジ判定処理(図99参照)のS397に移す。
[表示コマンド受信時処理]
次に、図101を参照して、演出内容決定処理のフローチャート(図82参照)中のS178で行う表示コマンド受信時処理について説明する。なお、図101は、本実施形態における、表示コマンド受信時処理の手順を示すフローチャートである。
まず、サブCPU71は、現在の単位遊技が「BB」(「BB1」〜「BB4」)に当籤した単位遊技であるか否か(BB当籤遊技であるか否か)を判別する(S421)。
S421において、サブCPU71が、BB当籤遊技であると判別したとき(S421がYes判定の場合)、サブCPU71は、表示役が「BB」(内部当籤した「BB」)であるか否かを判別する(S422)。
S422において、サブCPU71が、表示役が「BB」であると判別したとき(S422がYes判定の場合)、サブCPU71は、表示コマンド受信時処理を終了するとともに、演出内容決定処理も終了する。一方、S422において、サブCPU71が、表示役が「BB」でないと判別したとき(S422がNo判定の場合)、サブCPU71は、BB持越中フラグをオンする(S423)。そして、S423の処理後、サブCPU71は、表示コマンド受信時処理を終了するとともに、演出内容決定処理も終了する。
ここで、再度、S421の処理に戻って、サブCPU71が、BB当籤遊技でないと判別したとき(S421がNo判定の場合)、サブCPU71は、BB持越中フラグがオン状態であるか否かを判別する(S424)。
S424において、サブCPU71が、BB持越中フラグがオン状態でないと判別したとき(S424がNo判定の場合)、サブCPU71は、表示コマンド受信時処理を終了するとともに、演出内容決定処理も終了する。一方、S424において、サブCPU71が、BB持越中フラグがオン状態であると判別したとき(S424がYes判定の場合)、サブCPU71は、表示役が「BB」(持越中の「BB」)であるか否かを判別する(S425)。
S425において、サブCPU71が、表示役が「BB」でないと判別したとき(S425がNo判定の場合)、サブCPU71は、表示コマンド受信時処理を終了するとともに、演出内容決定処理も終了する。一方、S425において、サブCPU71が、表示役が「BB」であると判別したとき(S425がYes判定の場合)、サブCPU71は、BB持越中フラグをオフする(S426)。そして、S426の処理後、サブCPU71は、表示コマンド受信時処理を終了するとともに、演出内容決定処理も終了する。
[ボーナス終了コマンド受信時処理]
次に、図102を参照して、演出内容決定処理のフローチャート(図82参照)中のS184で行うボーナス終了コマンド受信時処理について説明する。なお、図102は、本実施形態における、ボーナス終了コマンド受信時処理の手順を示すフローチャートである。
まず、サブCPU71は、BB4遊技状態の終了時であるか否かを判別する(S431)。
S431において、サブCPU71が、BB4遊技状態の終了時でないと判別したとき(S431がNo判定の場合)、サブCPU71は、後述のS434の処理を行う。一方、S431において、サブCPU71が、BB4遊技状態の終了時であると判別したとき(S431がYes判定の場合)、サブCPU71は、ビリーゲットチャレンジ成功フラグがオン状態であるか否かを判別する(S432)。
S432において、サブCPU71が、ビリーゲットチャレンジ成功フラグがオン状態でないと判別したとき(S432がNo判定の場合)、サブCPU71は、後述のS434の処理を行う。一方、S432において、サブCPU71が、ビリーゲットチャレンジ成功フラグがオン状態であると判別したとき(S432がYes判定の場合)、サブCPU71は、ビリーゲットチャレンジ成功フラグをオフする(S433)。
S433の処理後、又は、S431或いはS432がNo判定の場合、サブCPU71は、BB遊技状態(BB1〜BB4のいずれか)の終了時であるか否かを判別する(S434)。
S434において、サブCPU71が、BB遊技状態の終了時でないと判別したとき(S434がNo判定の場合)、サブCPU71は、ボーナス終了コマンド受信時処理を終了し、処理を演出内容決定処理(図82参照)のS185に移す。一方、S434において、サブCPU71が、BB遊技状態の終了時であると判別したとき(S434がYes判定の場合)、サブCPU71は、ナビモードが「1」〜「4」のいずれかであるか否かを判別する(S435)。
S435において、サブCPU71が、ナビモードが「1」〜「4」のいずれでもないと判別したとき(S435がNo判定の場合)、サブCPU71は、後述のS439の処理を行う。一方、S435において、サブCPU71が、ナビモードが「1」〜「4」のいずれかであると判別したとき(S435がYes判定の場合)、サブCPU71は、BB当籤遊技における抽籤での移行であるか否かを判別する(S436)。
S436において、サブCPU71が、BB当籤遊技における抽籤での移行でないと判別したとき(S436がNo判定の場合)、サブCPU71は、後述のS440の処理を行う。一方、S436において、サブCPU71が、BB当籤遊技における抽籤での移行であると判別したとき(S436がYes判定の場合)、サブCPU71は、BB遊技状態中におけるナビモード移行抽籤に当籤したか否かを判別する(S437)。
S437において、サブCPU71が、BB遊技状態中におけるナビモード移行抽籤に当籤したと判別したとき(S437がYes判定の場合)、サブCPU71は、後述のS440の処理を行う。一方、S437において、サブCPU71が、BB遊技状態中におけるナビモード移行抽籤に当籤していないと判別したとき(S437がNo判定の場合)、サブCPU71は、ナビ遊技状態移行待機数抽籤テーブル(図54参照)を参照して、ナビ遊技状態移行待機数を抽籤し、当籤したナビ遊技状態移行待機数をナビ遊技状態移行待機カウンタにセットする(S438)。
S438の処理後、又は、S435がNo判定の場合、サブCPU71は、次の単位遊技からナビ遊技状態をナビ遊技状態0へ移行させるための処理を行う(S439)。この処理では、サブCPU71は、ナビ遊技状態0フラグをオンし、そして、次の単位遊技の開始時にナビ遊技状態0フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態0へ移行させる。そして、S439の処理後、サブCPU71は、ボーナス終了コマンド受信時処理を終了し、処理を演出内容決定処理(図82参照)のS185に移す。
また、S436がNo判定の場合、又は、S437がYes判定の場合、サブCPU71は、次の単位遊技からナビ遊技状態をナビ遊技状態1へ移行させるための処理を行う(S440)。この処理では、サブCPU71は、ナビ遊技状態1フラグをオンし、そして、次の単位遊技の開始時にナビ遊技状態1フラグがオン状態であれば、ナビ遊技状態をナビ遊技状態1へ移行させる。そして、S440の処理後、サブCPU71は、ボーナス終了コマンド受信時処理を終了し、処理を演出内容決定処理(図82参照)のS185に移す。
なお、本実施形態では、ナビモード移行抽籤を、BB遊技状態の終了時に行うようにしてもよい。この場合、終了するBB遊技状態中における遊技内容に応じて抽籤を行うようにしてもよい。例えば、BB1遊技状態〜BB3遊技状態中に一回もJAC1〜7(小役・リプレイ用ポインタ「25」〜「31」)が当籤しなかった場合には、高確率でナビモードが「1」上昇するように抽籤を行ってもよい。また、本実施形態では、BB遊技状態中にビリーゲットチャレンジを特定回数失敗した場合には、高確率でナビモードが「1」上昇するように抽籤を行ってもよい。
<副制御回路による各種管理処理の動作説明>
次に、図103〜図132を参照して、副制御回路70のサブCPU71が、プログラムを用いて実行する各種管理処理(タスク)の内容について説明する。なお、以下に説明するサブCPU71の各種管理処理において必要となる、各種テーブルはサブROM72に格納され、各種制御フラグ、各種制御カウンタ、各種格納領域等はサブRAM73等に設けられる。
[主基板通信受信割込処理]
最初に、図103を参照して、副制御回路70による主基板通信受信割込処理について説明する。図103は、本実施形態における、主基板通信受信割込処理の手順を示すフローチャートである。なお、以下に説明する主基板通信受信割込処理のプログラムは、主制御回路60から副制御回路70に送信データが送信された時に、サブCPU71が割込処理として実行する。
まず、サブCPU71は、メインCPU31との間に介在するI/Oポートの受信データレジスタから受信データを取得する(S451)。また、サブCPU71は、I/Oポートの受信ステータスレジスタから受信ステータスデータを取得する(S452)。
次いで、サブCPU71は、受信データと、その受信データに関する受信ステータスデータとを、各キューバッファに登録する(S453)。そして、S453の処理後、サブCPU71は、主基板通信受信割込処理を終了する。
サブCPU71は、上述した主基板通信受信割込処理を1回実行することにより、1バイトの受信データを処理する。なお、本実施形態では、1コマンドは8バイトのデータで構成される。それゆえ、サブCPU71は、上述した主基板通信受信割込処理を8回連続して処理することにより、シリアルデータ通信の実行による1コマンドの処理を完了する。
[主基板通信タスク]
次に、図104を参照して、サブCPU71による主基板通信タスク(処理)について説明する。なお、図104は、本実施形態における、主基板通信タスクの手順を示すフローチャートである。
サブCPU71は、OSのスケジューリングの機能に応答して、サブCPU71の主基板通信タスクのプログラムが2msecの周期で実行されるように、周期設定を行う(S461)。この設定処理により、主基板通信タスクは、処理時間を含めて2msecの周期で繰り返される。次いで、サブCPU71は、2msecの周期待ちを行う(S462)。なお、この処理が最初に行われる場合には、S462において、サブCPU71は、2msec待機する。一方、後述のS463以降の処理が繰り返されている場合には、S462において、サブCPU71は、2msec内の残り時間を待機する。
なお、主基板通信タスクの周期は2msecに限定されるものではなく、2msec〜4msecの間で任意に設定することができる。また、サブCPU71の主基板通信タスクのプログラムは所定時間ごとに実行されるものに限られず、例えば、周期設定処理及び周期待ち処理を行うことなく、すなわち、時間間隔に関係なく、所定の条件が満たされた場合に実行されるようにしてもよい。
次いで、サブCPU71は、上記図103で説明した主基板通信受信割込処理中のS453の処理において、受信データが登録されたキューから受信データを取得する(S463)。次いで、サブCPU71は、キューに受信データがあるか否かを判別する(S464)。
S464において、サブCPU71が、キューに受信データがないと判別したとき(S464がNo判定の場合)、サブCPU71は、処理をS462に戻し、S462以降の処理を繰り返す。一方、S464において、サブCPU71が、キューに受信データがあると判別したとき(S464がYes判定の場合)、サブCPU71は、受信データに物理層エラーが発生していないか否かを判別する(S465)。
S465において、サブCPU71が、受信データに物理層エラーが発生していると判別したとき(S465がNo判定の場合)、サブCPU71は、後述のS479の処理を行う。一方、S465において、サブCPU71が、受信データに物理層エラーが発生していないと判別したとき(S465がYes判定の場合)、サブCPU71は、受信コマンドの数値を取得し、該数値が受信コマンドの数値範囲内の値であるか否かをチェックする(S466)。なお、本実施形態では、受信コマンドの数値範囲は、図26に示すように、「01H」〜「10H」である。そして、サブCPU71は、受信コマンドの数値が適正範囲内であるか否かを判別する(S467)。
S467において、サブCPU71が、受信コマンドの数値が適正範囲内の値でないと判別したとき(S467がNo判定の場合)、サブCPU71は、後述のS479の処理を行う。一方、S467において、サブCPU71が、受信コマンドの数値が適正範囲内の値であると判別したとき(S467がYes判定の場合)、サブCPU71は、受信データに対してBCCチェック処理を行う(S468)。
S468の処理では、1コマンドが8バイトのデータで構成されるので、サブCPU71は、このBCCチェック処理において、各コマンドの第1バイト〜第7バイトのデータを順にXOR(排他的論理和)演算し、その演算結果を、予め正しい結果に対応して設定された第8バイトのデータと比較する。そして、サブCPU71は、BCCチェック処理の結果が正常であるか否かを判別する(S469)。
S469において、サブCPU71が、BCCチェック処理の結果が正常でないと判別したとき(S469がNo判定の場合)、サブCPU71は、後述のS479の処理を行う。一方、S469において、サブCPU71が、BCCチェック処理の結果が正常であると判別したとき(S469がYes判定の場合)、サブCPU71は、コマンドの種別を抽出する(S470)。次いで、サブCPU71は、抽出したコマンドが無操作コマンドであるか否かを判別する(S471)。
S471において、サブCPU71が、抽出したコマンドが無操作コマンドであると判別したとき(S471がYes判定の場合)、サブCPU71は、処理をS462に戻し、S462以降の処理を繰り返す。一方、S471において、サブCPU71が、抽出したコマンドが無操作コマンドでないと判別したとき(S471がNo判定の場合)、サブCPU71は、主基板通信受信データログ保存処理を行う(S472)。なお、主基板通信受信データログ保存処理の詳細については、後述の図105を参照しながら後で説明する。
そして、S472の処理後、サブCPU71は、主基板通信受信コマンドチェック処理を行う(S473)。なお、主基板通信受信コマンドチェック処理の詳細については、後述の図108を参照しながら後で説明する。
次いで、サブCPU71は、今回受信したコマンドが前回(直前の回)に受信したコマンドと異なっているか否かを判別する(S474)。
S474において、サブCPU71が、今回受信したコマンドが前回に受信したコマンドと異なっていない(同一である)と判別したとき(S474がNo判定の場合)、サブCPU71は、処理をS462に戻し、S462以降の処理を繰り返す。一方、S474において、サブCPU71が、今回受信したコマンドが前回に受信したコマンドと異なっていると判別したとき(S474がYes判定の場合)、サブCPU71は、今回受信したコマンドをメッセージキューに登録する(S475)。
次いで、サブCPU71は、サブ制御ゲームデータサム値領域73b(図12参照)に格納されたゲームデータに対してサムチェックを行う(S476)。そして、サブCPU71は、サムチェックの結果、ゲームデータは正常であるか否かを判別する(S477)。
S477において、サブCPU71が、ゲームデータは正常であると判別したとき(S477がYes判定の場合)、サブCPU71は、処理をS462に戻し、S462以降の処理を繰り返す。一方、S477において、サブCPU71が、ゲームデータは正常でないと判別したとき(S477がNo判定の場合)、サブCPU71(エラー情報登録手段71d)は、データ(RAM)破壊エラーの発生情報をエラー情報履歴格納領域73e(図12参照)に登録する(S478)。そして、S478の処理後、サブCPU71は、処理をS462に戻し、S462以降の処理を繰り返す。
また、S465、S467又はS469がNo判定の場合、サブCPU71は、通信エラーが発生したと判断し、COMエラーチェック処理を行う(S479)。なお、COMエラーチェック処理の詳細については、後述の図109を参照しながら後で説明する。そして、S479の処理後、サブCPU71は、処理をS462に戻し、S462以降の処理を繰り返す。
[主基板通信受信データログ保存処理]
次に、図105を参照して、主基板通信タスクのフローチャート(図104参照)中のS472で行う主基板通信受信データログ保存処理について説明する。図105は、本実施形態における、主基板通信受信データログ保存処理の手順を示すフローチャートである。なお、この主基板通信受信データログ保存処理は、主に、サブCPU71の受信データログ保存手段71e(図9参照)により実行される。
まず、サブCPU71は、主基板通信受信データログ一時領域保存処理を行う(S481)。主基板通信受信データログ一時領域保存処理では、図16に示す通信ログ収集用リングバッファ領域73fが用いられ、エラー発生の有無に関わらず、全ての通信ログが通信ログ収集用リングバッファ領域73fに保存される。なお、主基板通信受信データログ一時領域保存処理の詳細については、後述の図106を参照しながら後で説明する。
次いで、サブCPU71は、主基板通信エラー履歴データ保存処理を行う(S482)。主基板通信エラー履歴データ保存処理では、図17に示す通信エラー保存バッファ領域73gが用いられ、通信エラーが発生した場合に、関連する通信ログが通信エラー保存バッファ領域73gに保存される。なお、主基板通信エラー履歴データ保存処理の詳細については、後述の図107を参照しながら後で説明する。そして、S482の処理後、サブCPU71は、主基板通信受信データログ保存処理を終了し、処理を主基板通信タスク(図104参照)のS473に移す。
[主基板通信受信データログ一時領域保存処理]
次に、図106を参照して、主基板通信受信データログ保存処理のフローチャート(図105参照)中のS481で行う主基板通信受信データログ一時領域保存処理について説明する。図106は、本実施形態における、主基板通信受信データログ一時領域保存処理の手順を示すフローチャートである。
まず、サブCPU71は、通信ログ収集用リングバッファ領域73f(図16参照)の通信ログデータバッファインデックスを取得する(S491)。なお、ここでのバッファ数は、適宜設定される。
次いで、サブCPU71は、通信ログ収集用リングバッファ領域73fの通信ログデータバッファ保存位置を算出する(S492)。この処理では、サブCPU71は、バッファインデックスの値から、通信ログ収集用リングバッファ領域73fにおける保存位置を算出する。
次いで、サブCPU71は、通信ログ収集用リングバッファ領域73fに受信データを保存する(S493)。図16に示すように、本実施形態の通信ログ収集用リングバッファ領域73fでは、1つのバッファコマンドに対して、コマンドと該コマンドに対応するパラメータとが連続したデータのセットが、最大で256セット保存される。
次いで、サブCPU71は、通信ログデータバッファインデックスを更新する(S494)。この処理では、サブCPU71は、受信データを保存したバッファインデックスを「1」加算する。そして、サブCPU71は、バッファインデックスの値が上限値であるか否かを判別する(S495)。
S495において、サブCPU71が、バッファインデックスの値が上限値でないと判別したとき(S495がNo判定の場合)、サブCPU71は、主基板通信受信データログ一時領域保存処理を終了し、処理を主基板通信受信データログ保存処理(図105参照)のS482に移す。一方、S495において、サブCPU71が、バッファインデックスの値が上限値であると判別したとき(S495がYes判定の場合)、サブCPU71は、通信ログデータバッファインデックスを先頭の値に戻す(S496)。この処理により、本バッファをリングバッファとして機能させる。
そして、S496の処理後、サブCPU71は、主基板通信受信データログ一時領域保存処理を終了し、処理を主基板通信受信データログ保存処理(図105参照)のS482に移す。
[主基板通信エラー履歴データ保存処理]
次に、図107を参照して、主基板通信受信データログ保存処理のフローチャート(図105参照)中のS482で行う主基板通信エラー履歴データ保存処理について説明する。図107は、本実施形態における、主基板通信エラー履歴データ保存処理の手順を示すフローチャートである。
まず、サブCPU71は、通信エラー保存バッファ領域73g(図17参照)の保存バッファ選択インデックスを取得する(S501)。次いで、サブCPU71は、保存バッファ選択インデックスに基づいて通信エラー保存バッファを選択する(S502)。
次いで、サブCPU71は、通信エラー(COMエラー)が発生したか否かを判別する(S503)。
S503において、サブCPU71が、通信エラー(COMエラー)が発生したと判別したとき(S503がYes判定の場合)、サブCPU71(受信データログ保存手段71e)は、S502で選択された通信エラー保存バッファに、通信エラーに関連する通信ログを保存する(S504)。次いで、サブCPU71は、その選択されたバッファインデックスを更新する(S505)。そして、S505の処理後、サブCPU71は、主基板通信エラー履歴データ保存処理を終了するとともに、主基板通信受信データログ保存処理(図105参照)も終了する。
一方、S503において、サブCPU71が、通信エラー(COMエラー)が発生していないと判別したとき(S503がNo判定の場合)、サブCPU71は、選択されたバッファインデックスを取得する(S506)。次いで、サブCPU71は、受信データを収集中であるか否かを判別する(S507)。
S507において、サブCPU71が、受信データを収集中でないと判別したとき(S507がNo判定の場合)、サブCPU71は、主基板通信エラー履歴データ保存処理を終了するとともに、主基板通信受信データログ保存処理(図105参照)も終了する。一方、S507において、サブCPU71が、受信データを収集中であると判別したとき(S507がYes判定の場合)、サブCPU71は、バッファインデックスの値が上限値であるか否かを判別する(S508)。なお、本実施形態では、バッファインデックスの値は「0」〜「255」であり、上限値は「255」となる。
S508において、サブCPU71は、バッファインデックスの値が上限値でないと判別したとき(S508がNo判定の場合)、サブCPU71は、S502において選択された通信エラー保存バッファに受信データを保存する(S509)。次いで、サブCPU71は、その選択されたバッファインデックスを更新する(S510)。そして、S510の処理後、サブCPU71は、主基板通信エラー履歴データ保存処理を終了するとともに、主基板通信受信データログ保存処理(図105参照)も終了する。
一方、S508において、サブCPU71は、バッファインデックスの値が上限値であると判別したとき(S508がYes判定の場合)、サブCPU71は、保存バッファ選択インデックスを取得する(S511)。次いで、サブCPU71は、保存バッファ選択インデックスの値が上限値であるか否かを判別する(S512)。なお、本実施形態では、保存バッファ選択インデックスの上限値は「1024」である。
S512において、サブCPU71は、保存バッファ選択インデックスの値が上限値であると判別したとき(S512がYes判定の場合)、サブCPU71は、主基板通信エラー履歴データ保存処理を終了するとともに、主基板通信受信データログ保存処理(図105参照)も終了する。一方、S512において、サブCPU71は、保存バッファ選択インデックスの値が上限値でないと判別したとき(S512がNo判定の場合)、サブCPU71は、保存バッファ選択インデックスを更新する(S513)。この処理では、サブCPU71は、保存バッファ選択インデックスを「1」加算する。
そして、S513の処理後、サブCPU71は、主基板通信エラー履歴データ保存処理を終了するとともに、主基板通信受信データログ保存処理(図105参照)も終了する。
[主基板通信受信コマンドチェック処理]
次に、図108を参照して、主基板通信タスクのフローチャート(図104参照)中のS473で行う主基板通信受信コマンドチェック処理について説明する。図108は、本実施形態における、主基板通信受信コマンドチェック処理の手順を示すフローチャートである。
まず、サブCPU71は、受信データを取得する(S521)。次いで、サブCPU71は、受信コマンドチェックテーブルをセットする(S522)。次いで、サブCPU71は、前回(直前の回)の受信データを取得する(S523)。
そして、サブCPU71は、コマンドチェックカウンタをセットする(S524)。次いで、サブCPU71は、受信プロトコル確認データテーブル(不図示)から確認データを取得する(S525)。すなわち、この処理では、図26に示す受信コマンド及び前回受信コマンドのテーブルを取得する。
次いで、サブCPU71は、S525で取得した受信コマンド及び前回受信コマンドのテーブルをチェックして、受信コマンドが、操作手順が通常の遊技で行われる正常な手順である時のコマンドであるか否かを判別する(S526)。例えば、受信コマンドが、図26に示すテーブル中の「Data」欄の「03H」に規定されている種別「BET:遊技メダル投入」のコマンドである場合、前回の受信コマンドが、種別「デモ表示」、「BET」、「払出終了」、「ボーナス開始」又は「エラー」であれば、サブCPU71は、操作手順が正常な順序であると判断する。
S526において、サブCPU71が、受信コマンドが正常な順序のコマンドであると判別したとき(S526がYes判定の場合)、サブCPU71は、主基板通信受信コマンドチェック処理を終了し、処理を主基板通信タスク(図104参照)のS474に移す。
一方、S526において、サブCPU71が、受信コマンドが正常な順序のコマンドでないと判別したとき(S526がNo判定の場合)、サブCPU71は、受信コマンドチェックテーブルを更新する(S527)。具体的には、例えば、受信データが、図26に示すテーブル中の「Data」欄の「07H」に規定されている種別「表示」のコマンドである場合、前回の受信コマンドが、種別「リール停止」でなく、「入賞作動」である場合には、通常の遊技で行われる操作手順ではないと判断し、受信コマンドチェックテーブルを更新する。
S527の処理後、サブCPU71は、コマンドチェックカウンタを減算する(S528)。次いで、サブCPU71は、コマンドチェックが終了したか否かを判別する(S529)。この処理では、サブCPU71は、例えばコマンドチェックカウンタが「0」等のように閾値以下になったときにコマンドチェックが終了したと判断する。
S529において、サブCPU71が、コマンドチェックが終了していないと判別したとき(S529がNo判定の場合)、サブCPU71は、処理をS525に戻し、S525以降の処理を繰り返す。一方、S529において、サブCPU71が、コマンドチェックが終了したと判別したとき(S529がYes判定の場合)、サブCPU71(エラー情報登録手段71d)は、異常手順エラー(シーケンスエラー)の発生情報をエラー情報履歴格納領域73e(図12及び図13参照)に登録する(S530)。この際、サブCPU71は、シーケンスエラーに対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。
そして、S530の処理後、サブCPU71は、主基板通信受信コマンドチェック処理を終了し、処理を主基板通信タスク(図104参照)のS474に移す。
[COMエラーチェック処理]
次に、図109を参照して、主基板通信タスクのフローチャート(図104参照)中のS479で行うCOMエラーチェック処理について説明する。図109は、本実施形態における、COMエラーチェック処理の手順を示すフローチャートである。
まず、サブCPU71は、上記図105で説明した主基板通信受信データログ保存処理を実行する(S541)。この時点では、上記図107の主基板通信エラー履歴データ保存処理中のS503においてCOMエラーが発生したと判定されているので、サブCPU71(受信データログ保存手段71e)は、選択された通信エラー保存バッファに通信エラーに関連する通信ログを保存する(図107中のS504)。
次いで、サブCPU71は、COMエラータイマがカウント中であるか否かを判別する(S542)。
S542において、サブCPU71が、COMエラータイマがカウント中でないと判別したとき(S542がNo判定の場合)、サブCPU71は、COMエラータイマのカウントスタートをセットする(S546)。そして、S546の処理後、サブCPU71は、COMエラーチェック処理を終了し、処理を主基板通信タスク(図104参照)のS462に移す。
一方、S542において、サブCPU71が、COMエラータイマがカウント中であると判別したとき(S542がYes判定の場合)、サブCPU71は、COMエラータイマが30分以内であるか否かを判別する(S543)。
S543において、サブCPU71が、COMエラータイマが30分以内でないと判別したとき(S543がNo判定の場合)、サブCPU71は、COMエラータイマのカウントスタートをセットする(S546)。そして、S546の処理後、サブCPU71は、COMエラーチェック処理を終了し、処理を主基板通信タスク(図104参照)のS462に移す。
一方、S543において、サブCPU71が、COMエラータイマが30分以内であると判別したとき(S543がYes判定の場合)、サブCPU71(エラー情報登録手段71d)は、通信エラーのアラーム発生情報(「COM ERR ALM」発生)をエラー情報履歴格納領域73e(図13参照)に登録する(S544)。この際、サブCPU71は、通信エラーのアラーム発生に対応するエラーコードとともに、そのエラーの発生日時及び解除日時をエラー情報履歴格納領域73eに登録する。
次いで、サブCPU71は、COMエラータイマのカウントストップをセットする(S545)。そして、S545の処理後、サブCPU71は、COMエラーチェック処理を終了し、処理を主基板通信タスク(図104参照)のS462に移す。
[サブCPUの電源投入処理]
次に、図110を参照しながら、サブCPU71の電源投入処理について説明する。図110は、本実施形態における、サブCPU71の電源投入処理のフローチャートである。
サブCPU71の電源投入処理は、OS内の初期化処理であり、サブCPU71の電源が投入されると、まず、CPU及び内部デバイスの初期化や周辺ICの初期化を行うためにサブCPU初期設定処理が実行される(S551)。次いで、サブCPU71は、各種のタスク起動要求を行うために、マザータスク(後述の図112参照)の起動要求処理を実行する(S552)。
次いで、サブCPU71は、サブRAM管理処理(後述の図114参照)を実行する(S553)。そして、S553の処理後、サブCPU71は、電源投入処理を終了する。
[サブCPUの電断割込処理]
次に、図111を参照しながら、サブCPU71の電断割込処理について説明する。図111は、本実施形態における、サブCPU71の電断割込処理のフローチャートである。
電断(電源電圧の低下)が発生すると、まず、サブCPU71(エラー情報登録手段71d)は、電断の発生時刻(エラーコード「POWER DOWN」の発生日時)をエラー情報としてエラー情報履歴格納領域73eに登録する(S561)。より詳細には、サブCPU71(エラー情報登録手段71d)は、電断発生に対応するエラーコードと、電断の発生日時とを1つのエラー情報履歴(データセット)としてエラー情報履歴格納領域73eに登録する。次いで、サブCPU71は、バックアップ作成処理を行う(S562)。なお、バックアップ作成処理の詳細については、後述の図115を参照しながら後で説明する。
なお、主制御と異なり、サブCPU71の電断割込処理では、サブCPU71はサム値の計算を行わない。サブCPU71によるサム値の計算は、例えば、有効コマンド受信時、演出モード変更時等の度、行われる。
[マザータスク]
次に、図112を参照しながら、サブCPU71によるマザータスクについて説明する。図112は、本実施形態における、サブCPU71によるマザータスクのフローチャートである。なお、図112に示すマザータスクの要求処理は、パチスロ1の機能に必要なタスクの起動要求をOSに対して行う処理である。
まず、サブCPU71は、メインタスクの起動要求を行う(S571)。次いで、サブCPU71は、サブタスクの起動要求として、役物制御タスクの起動要求を行う(S572)。次いで、サブCPU71は、ランプ制御タスクの起動要求を行う(S573)。次いで、サブCPU71は、サウンド制御タスクの起動要求を行う(S574)。
次いで、サブCPU71は、主基板通信タスクの起動要求を行う(S575)。次いで、サブCPU71は、アニメタスクの起動要求を行う(S576)。次いで、サブCPU71は、サブデバイス間通信制御タスクの起動要求を行う(S577)。そして、サブCPU71は、RTC制御タスクの起動要求を行う(S578)。
上述したマザータスクの処理において、例えば、サブCPU71による主基板通信タスクの起動要求に応答してOSから主基板通信タスク要求が発生すると、上記図104で説明した手順に沿って主基板通信タスクが実行される。
[RTC制御タスク]
次に、図113を参照しながら、サブCPU71によるRTC制御タスクについて説明する。図113は、本実施形態における、RTC制御タスクのフローチャートである。
まず、サブCPU71は、OSの管理周期として100msecの周期設定を行う(S581)。次いで、サブCPU71は、外付けRTC70bから日時情報を読み込む(S582)。次いで、サブCPU71は、読み込んだ外付けRTC70bの日時情報を内蔵RTC70aの日時情報の初期値として設定する(S583)。
次いで、サブCPU71は、外付けRTC70bからステータス情報を読み込む(S584)。次いで、サブCPU71は、ステータス情報を正常に読み込むことができたか否かを判別する(S585)。
S585において、サブCPU71が、ステータス情報を正常に読み込むことができなかったと判別したとき(S585がNo判定の場合)、サブCPU71は、後述のS591の処理を行う。一方、S585において、サブCPU71が、ステータス情報を正常に読み込むことができたと判別したとき(S585がYes判定の場合)、サブCPU71は、電源に異常があるか否かを判別する(S586)。
S586において、サブCPU71が、電源に異常があると判別したとき(S586がYes判定の場合)、サブCPU71は、後述のS591の処理を行う。一方、S586において、サブCPU71が、電源に異常がないと判別したとき(S586がNo判定の場合)、サブCPU71は、発振異常があるか否かを判別する(S587)。
S587において、サブCPU71が、発振異常があると判別したとき(S587がYes判定の場合)、サブCPU71は、後述のS591の処理を行う。一方、S587において、サブCPU71が、発振異常がないと判別したとき(S587がNo判定の場合)、サブCPU71は、リセット信号を検出したか否かを判別する(S588)。
S588において、サブCPU71が、リセット信号を検出したと判別したとき(S588がYes判定の場合)、サブCPU71は、後述のS591の処理を行う。一方、S588において、サブCPU71が、リセット信号を検出しなかったと判別したとき(S588がNo判定の場合)、サブCPU71は、外付けRTC70bから日時情報を読み込む(S589)。
次いで、サブCPU71は、読み込んだ日時情報の範囲に異常があるか否かを判別する(S590)。この処理では、例えば、「年」、「月」、「日」又は「時間」の値が2桁を越えているような場合には、サブCPU71は、日時範囲に異常があると判断する。
S590において、サブCPU71が、読み込んだ日時情報の範囲に異常があると判別したとき(S590がYes判定の場合)、サブCPU71は、後述のS591の処理を行う。一方、S590において、サブCPU71が、読み込んだ日時情報の範囲に異常がないと判別したとき(S590がNo判定の場合)、サブCPU71は、後述のS593の処理を行う。
S585がNo判定の場合、又は、S586、S587、S588或いはS590がYes判定の場合、サブCPU71は、RTCエラーの種別に対応したエラーコードをエラー情報としてサブRAM73のエラー情報履歴格納領域73eに登録する(S591)。
具体的には、S585がNo判定の場合(外付けRTC70bからステータス情報を正常に読み込むことができない場合)、サブCPU71は、「RTC通信異常」に対応するエラーコード「RTC DSC」(図14参照)をエラー情報履歴格納領域73eに登録する。S586がYes判定の場合(外付けRTC70bに関して電源に異常がある場合)、サブCPU71は、「RTC電圧低下」に対応するエラーコード「RTC POWER」(図14参照)をエラー情報履歴格納領域73eに登録する。S587がYes判定の場合(外付けRTC70bに関して発振異常がある場合)、サブCPU71は、「RTC発振停止検出」に対応するエラーコード「RTC CLK」(図14参照)をエラー情報履歴格納領域73eに登録する。S588がYes判定の場合(リセット信号を検出した場合)、サブCPU71は、「RTCリセット検出」に対応するエラーコード「RTC RESET」(図14参照)をエラー情報履歴格納領域73eに登録する。また、S590がYes判定の場合(日時範囲に異常がある場合)、サブCPU71は、「RTCの時刻異常」に対応するエラーコード「RTC TIM」(図14参照)をエラー情報履歴格納領域73eに登録する。なお、S591の処理では、サブCPU71は、各エラー事象に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。
そして、S591の処理後、サブCPU71は、外付けRTC70bを初期化し、外付けRTC70bの日時情報に内蔵RTC70aの現在の日時情報を設定する(S592)。
S592の処理後、又は、S590がNo判定の場合、サブCPU71は、係員操作画面から外付けRTC70bの日時情報の設定に変更がされているか否かを判別する(S593)。
S593において、サブCPU71は、係員操作画面から外付けRTC70bの日時情報の設定に変更がされていないと判別したとき(S593がNo判定の場合)、サブCPU71は、後述のS595の処理を行う。一方、S593において、サブCPU71は、係員操作画面から外付けRTC70bの日時情報の設定に変更がされていると判別したとき(S593がYes判定の場合)、サブCPU71は、内蔵RTC70aの日時データを外付けRTC70bに設定する(S594)。
S594の処理後、又は、S593がNo判定の場合、サブCPU71は、100msecの周期待ちを行う(S595)。そして、S595の処理後、サブCPU71は、処理をS584に戻し、S584以降の処理を繰り返す。
[サブRAM管理処理]
次に、図114を参照しながら、サブCPU71によるサブRAM管理処理(バックアップRAM(SRAM)74の管理処理)について説明する。図114は、本実施形態における、サブRAM管理処理のフローチャートである。
まず、サブCPU71は、バックアップRAM74(図18参照)の第1バックアップデータ領域74aのサム値を計算して、4バイトの第1バックアップデータサム値を取得する(S601)。次いで、サブCPU71は、取得した第1バックアップデータサム値が正常であり、かつ、第1バックアップデータ領域74aのマジックコードとサブROM72(図11参照)のプログラム管理データ領域72fのマジックコードとが同一であるか否かを判別する(S602)。
S602において、サブCPU71がS602の判定条件を満たすと判別したとき(S602がYes判定の場合)、サブCPU71は、バックアップRAM74の第1バックアップデータ領域74aのデータをサブRAM73(図12参照)のサブ制御ゲームデータ領域73aに複写する(S603)。そして、S603の処理後、サブCPU71は、後述のS609の処理を行う。
一方、S602において、サブCPU71がS602の判定条件を満たさないと判別したとき(S602がNo判定の場合)、サブCPU71は、第1バックアップデータ領域74aのミラーリングである第2バックアップデータ領域74cのサム値を計算して、4バイトの第2バックアップデータサム値を取得する(S604)。次いで、サブCPU71は、取得した第2バックアップデータサム値が正常であり、かつ、第2バックアップデータ領域74cのマジックコードとサブROM72のプログラム管理データ領域72fのマジックコードとが同一であるか否かを判別する(S605)。
S605において、サブCPU71がS605の判定条件を満たすと判別したとき(S605がYes判定の場合)、サブCPU71は、バックアップRAM74の第2バックアップデータ領域74cのデータをサブRAM73のサブ制御ゲームデータ領域73aに複写する(S606)。そして、S606の処理後、サブCPU71は、後述のS608の処理を行う。
一方、S605において、サブCPU71がS605の判定条件を満たさないと判別したとき(S605がNo判定の場合)、サブCPU71は、サブROM72のゲームデータ初期化設定データ領域72cのデータをサブRAM73のサブ制御ゲームデータ領域73aに複写する(S607)。
そして、S606又はS607の処理後、サブCPU71は、「バックアップサム異常(ゲーム)」に対応するエラーコード「MEM ERR1」(図14参照)をエラー情報履歴格納領域73eに登録する(S608)。なお、この際、サブCPU71は、「バックアップサム異常(ゲーム)」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。また、この際、RAMデータ異常を報知する図22に示すような画面は表示されない。
次いで、S603又はS608の処理後、サブCPU71は、バックアップRAM74の係員バックアップデータ領域74eのサム値を計算して、4バイトの係員バックアップデータサム値を取得する(S609)。そして、サブCPU71は、係員バックアップデータサム値を係員バックアップデータサム値領域74fに保存する。
次いで、サブCPU71は、保存した係員バックアップデータ領域74eのサム値が正常であるか否かを判別する(S610)。
S610において、サブCPU71が、係員バックアップデータ領域74eのサム値が正常であると判別したとき(S610がYes判定の場合)、サブCPU71は、係員バックアップデータ領域74eのデータをサブRAM73(DRAM)の係員操作設定データ領域73dに複写する(S611)。そして、S611の処理後、サブCPU71は、後述のS614の処理を行う。
一方、S610において、サブCPU71が、係員バックアップデータ領域74eのサム値が正常でないと判別したとき(S610がNo判定の場合)、サブCPU71は、サブROM72の係員操作初期設定データ領域72dのデータをサブRAM73の係員操作設定データ領域73dに複写する(S612)。次いで、サブCPU71は、「バックアップサム異常(係員)」に対応するエラーコード「MEM ERR2」(図14参照)をエラー情報履歴格納領域73eに登録する(S613)。なお、この際、サブCPU71は、「バックアップサム異常(係員)」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。また、この際も、RAMデータ異常を報知する図22に示すような画面は表示されない。
そして、S611又はS613の処理後、サブCPU71は、バックアップ作成処理を行う(S614)。なお、バックアップ作成処理の詳細については、後述の図115を参照しながら後で説明する。
上述のように、本実施形態のサブRAM管理処理では、サブCPU71が、取得したサム値が正常であり、かつ、第2バックアップデータ領域74cのマジックコードとサブROM72のプログラム管理データ領域72fのマジックコードとが同一であるか否かを判別する。そして、サム値及びマジックコードの少なくとも一方の条件が満たされない場合には、サブCPU71は、サブROM72のゲームデータ初期化設定データ領域72cのデータをサブRAM73のサブ制御ゲームデータ領域73aに複写する。
また、本実施形態では、サブCPU71は、係員バックアップデータ領域74eのサム値が正常であるか否かを判断し、サム値が異常である場合には、サブROM72の係員操作初期設定データ領域72dのデータをサブRAM73の係員操作設定データ領域73dに複写する。
これらの処理により、本実施形態では、電源投入時に、サブRAM73のデータが破損しているか否かを確認することができ、また、破損したバックアップRAM(SRAM)74のデータを使用することなく、自動的に初期値を設定することができる。
[バックアップ作成処理]
次に、図115を参照しながら、図81に示す演出登録処理中のS156、図111に示す電断割込処理中のS562、及び、図114に示すサブRAM管理処理中のS614で行われるバックアップ作成処理について説明する。図115は、本実施形態における、バックアップ作成処理処理のフローチャートである。この処理により、データが破壊されていても、正しいデータをバックアップデータとして保存することができる。
まず、サブCPU71は、サブRAM73(DRAM)のサブ制御ゲームデータ領域73a(図12参照)のサム値を作成し、その作成したサム値をサブ制御ゲームデータサム値領域73bに保存する(S621)。次いで、サブCPU71は、サブ制御ゲームデータ領域73aのデータをバックアップRAM74(SRAM)の第1バックアップデータ領域74a(図18参照)に複写し、S621で保存されたサム値を第1バックアップデータサム値領域74bに保存する(S622)。
次いで、サブCPU71は、サブ制御ゲームデータ領域73aのデータを第1バックアップデータ領域74aのミラーリングである第2バックアップデータ領域74cに複写し、S621で保存されたサム値を第2バックアップデータサム値領域74dに保存する(S623)。
次いで、サブCPU71は、サブRAM73(DRAM)の係員操作設定データ領域73dのサム値を作成して、その作成したサム値を係員操作設定データ領域73d内の係員操作設定データサム値領域に保存する(S624)。
次いで、サブCPU71は、係員操作設定データ領域73dのデータをバックアップRAM74(SRAM)の係員バックアップデータ領域74eに複写し、S624で保存されたサム値を係員バックアップデータサム値領域74fに保存する(S625)。そして、S625の処理後、サブCPU71は、バックアップ作成処理を終了する。
[サブデバイス間通信制御タスク]
次に、図116を参照しながら、サブCPU71によるサブデバイス間通信制御タスクについて説明する。図116は、本実施形態における、サブデバイス間通信制御タスクのフローチャートである。
まず、サブCPU71は、4msecの周期設定を行う(S631)。次いで、サブCPU71は、サブデバイス用シリアルポートの初期設定を一括で行う(S632)。そして、サブCPU71は、4msecの周期待ちを行う(S633)。
次いで、サブCPU71は、サブデバイス状態監視処理を行う(S634)。なお、サブデバイス状態監視処理の詳細については、後述の図117を参照しながら後で説明する。
次いで、サブCPU71は、サブデバイスコマンド受信処理を行う(S635)。なお、サブデバイスコマンド受信処理の詳細については、後述の図118を参照しながら後で説明する。次いで、サブCPU71は、コマンドを受信したか否かを判別する(S636)。
S636において、サブCPU71がコマンドを受信したと判別したとき(S636がYes判定の場合)、サブCPU71は、サブデバイス通信復帰処理を行う(S637)。なお、サブデバイス通信復帰処理の詳細については、後述の図119を参照しながら後で説明する。次いで、サブCPU71は、サブデバイス通信の受信時処理を行う(S638)。なお、サブデバイス通信の受信時処理の詳細については、後述の図120を参照しながら後で説明する。
次いで、サブCPU71は、サブデバイスコマンド送信処理を行う(S639)。なお、サブデバイスコマンド送信処理の詳細については、後述の図127を参照しながら後で説明する。そして、S639の処理後、サブCPU71は、処理をS633に戻し、S633以降の処理を繰り返す。
ここで、再度、S636の処理に戻って、S636において、サブCPU71がコマンドを受信しなかったと判別したとき(S636がNo判定の場合)、サブCPU71は、サブデバイス通信断絶処理を行う(S640)。なお、サブデバイス通信断絶処理の詳細については、後述の図131を参照しながら後で説明する。そして、S640の処理後、サブCPU71は、処理をS633に戻し、S633以降の処理を繰り返す。
[サブデバイス状態監視処理]
次に、図117を参照して、サブデバイス間通信制御タスクのフローチャート(図116参照)中のS634で行うサブデバイス状態監視処理について説明する。なお、図117は、本実施形態における、サブデバイス状態監視処理の手順を示すフローチャートである。
まず、サブCPU71は、スケーラ通信断絶フラグがオン状態であるか否かを判別する(S651)。なお、スケーラ通信断絶フラグは、サブCPU71及びスケーラ制御基板80間の通信断絶の有無を示すフラグである。サブCPU71及びスケーラ制御基板80間に通信断絶が発生している場合には、スケーラ通信断絶フラグがオン状態となる。
S651において、サブCPU71が、スケーラ通信断絶フラグがオン状態であると判別したとき(S651がYes判定の場合)、サブCPU71は、後述のS654の処理を行う。一方、S651において、サブCPU71が、スケーラ通信断絶フラグがオン状態でないと判別したとき(S651がNo判定の場合)、サブCPU71は、スケーラ設定に異常が発生したか否かを判別する(S652)。この処理では、サブCPU71は、スケーラの輝度設定、輪郭設定及び補間設定のいずれかの設定項目に異常があるか否かを判別する。
S652において、サブCPU71が、スケーラ設定に異常が発生したと判別したとき(S652がYes判定の場合)、サブCPU71は、後述のS654の処理を行う。一方、S652において、サブCPU71が、スケーラ設定に異常が発生していないと判別したとき(S652がNo判定の場合)、サブCPU71は、スケーラ受信エラーカウンタの値が「10」より大きいか否かを判別する(S653)。
なお、スケーラ受信エラーカウンタは、サブCPU71が、スケーラ制御基板80から受信したデータの異常発生を検出した回数(エラー登録回数)を計数するカウンタである。また、本実施形態では、S653におけるスケーラ受信エラーカウンタの値の閾値を「10」とする例を説明したが、本発明はこれに限定されず、スケーラ受信エラーカウンタの値の閾値は任意に変更することができる。
S653において、サブCPU71が、スケーラ受信エラーカウンタの値が「10」より大きいと判別したとき(S653がYes判定の場合)、サブCPU71は、後述のS654の処理を行う。一方、S653において、サブCPU71が、スケーラ受信エラーカウンタの値が「10」以下であると判別したとき(S653がNo判定の場合)、サブCPU71は、後述のS655の処理を行う。
S651、S652又はS653がYes判定の場合、すなわち、スケーラ制御基板80に異常が発生している場合、サブCPU71は、スケーラ制御基板80にリセット信号を出力する(S654)。具体的には、サブCPU71は、リセットラインL3を介してスケーラ制御LSI80aのリセットポートをオン状態にセットする。これにより、スケーラ制御基板80(スケーラ制御LSI80a及び解像度変換LSI80b)がハードリセットされる。
S654の処理後、又は、S653がNo判定の場合、サブCPU71は、タッチセンサ通信断絶フラグがオン状態であるか否かを判別する(S655)。なお、タッチセンサ通信断絶フラグは、サブCPU71及びタッチセンサ中継基板81間の通信断絶の有無を示すフラグである。サブCPU71及びタッチセンサ中継基板81間に通信断絶が発生している場合には、タッチセンサ通信断絶フラグがオン状態となる。
S655において、サブCPU71が、タッチセンサ通信断絶フラグがオン状態であると判別したとき(S655がYes判定の場合)、サブCPU71は、後述のS657の処理を行う。一方、S655において、サブCPU71が、タッチセンサ通信断絶フラグがオン状態でないと判別したとき(S655がNo判定の場合)、サブCPU71は、タッチセンサ受信エラーカウンタの値が「10」より大きいか否かを判別する(S656)。
なお、タッチセンサ受信エラーカウンタは、サブCPU71が、タッチセンサ中継基板81から受信したデータの異常発生を検出した回数(エラー登録回数)を計数するカウンタである。また、本実施形態では、S656におけるタッチセンサ受信エラーカウンタの値の閾値を「10」とする例を説明したが、本発明はこれに限定されず、タッチセンサ受信エラーカウンタの値の閾値は任意に変更することができる。
S656において、サブCPU71が、タッチセンサ受信エラーカウンタの値が「10」より大きいと判別したとき(S656がYes判定の場合)、サブCPU71は、後述のS657の処理を行う。一方、S656において、サブCPU71が、タッチセンサ受信エラーカウンタの値が「10」以下であると判別したとき(S656がNo判定の場合)、サブCPU71は、後述のS658の処理を行う。
S655又はS656がYes判定の場合、すなわち、タッチセンサ中継基板81及び/又はタッチセンサモジュール82に異常が発生している場合、サブCPU71は、タッチセンサ中継基板81にリセット信号を出力する(S657)。具体的には、サブCPU71は、リセットラインL3を介してタッチセンサ制御LSI81aのリセットポートをオン状態にセットする。これにより、タッチセンサ中継基板81(タッチセンサ制御LSI81a)及びタッチセンサモジュール82がハードリセットされる。
S657の処理後、又は、S656がNo判定の場合、サブCPU71は、カメラ通信断絶フラグがオン状態であるか否かを判別する(S658)。なお、カメラ通信断絶フラグは、サブCPU71及びカメラ中継基板83間の通信断絶の有無を示すフラグである。サブCPU71及びカメラ中継基板83間に通信断絶が発生している場合には、カメラ通信断絶フラグがオン状態となる。
S658において、サブCPU71が、カメラ通信断絶フラグがオン状態であると判別したとき(S658がYes判定の場合)、サブCPU71は、後述のS660の処理を行う。一方、S658において、サブCPU71が、カメラ通信断絶フラグがオン状態でないと判別したとき(S658がNo判定の場合)、サブCPU71は、カメラ中継受信エラーカウンタの値が「10」より大きいか否かを判別する(S659)。
なお、カメラ中継受信エラーカウンタは、サブCPU71が、カメラ中継基板83から受信したデータの異常発生を検出した回数(エラー登録回数)を計数するカウンタである。また、本実施形態では、S659におけるカメラ中継受信エラーカウンタの値の閾値を「10」とする例を説明したが、本発明はこれに限定されず、カメラ中継受信エラーカウンタの値の閾値は任意に変更することができる。
S659において、サブCPU71が、カメラ中継受信エラーカウンタの値が「10」以下であると判別したとき(S659がNo判定の場合)、サブCPU71は、サブデバイス状態監視処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS635に移す。一方、S659において、サブCPU71が、カメラ中継受信エラーカウンタの値が「10」より大きいと判別したとき(S659がYes判定の場合)、サブCPU71は、後述のS660の処理を行う。
S658又はS659がYes判定の場合、すなわち、カメラ中継基板83及び/又はカメラモジュール84に異常が発生している場合、サブCPU71は、カメラ中継基板83にリセット信号を出力する(S660)。具体的には、サブCPU71は、リセットラインL3を介してカメラ制御LSI83aのリセットポートをオン状態にセットする。これにより、カメラ中継基板83(カメラ制御LSI83a)及びカメラモジュール84がハードリセットされる。そして、S660の処理後、サブCPU71は、サブデバイス状態監視処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS635に移す。
[サブデバイスコマンド受信処理]
次に、図118を参照して、サブデバイス間通信制御タスクのフローチャート(図116参照)中のS635で行うサブデバイスコマンド受信処理について説明する。なお、図118は、本実施形態における、サブデバイスコマンド受信処理の手順を示すフローチャートである。
まず、サブCPU71は、通信ログ収集用リングバッファ領域73f(図16参照)に受信バッファアドレスをセットし、STX受信フラグをオフする(S671)。次いで、サブCPU71は、通信ログ収集用リングバッファ領域73fから受信データを1バイト取得する試みを行う(S672)。そして、サブCPU71は、受信データがあるか否かを判別する(S673)。
S673において、サブCPU71が、受信データがないと判別したとき(S673がNo判定の場合)、サブCPU71は、後述のS685の処理を行う。一方、S673において、サブCPU71が、受信データがあると判別したとき(S673がYes判定の場合)、サブCPU71は、その受信データがSTXであり、かつ、STX受信フラグがオフであるか否かを判別する(S674)。
S674において、サブCPU71が、S674の判定条件を満たすと判別したとき(S674がYes判定の場合)、サブCPU71は、STX受信フラグをオンする(S675)。次いで、サブCPU71は、コマンド登録バッファをクリアする(S676)。次いで、サブCPU71は、受信バッファアドレスを更新して1バイト加算する(S677)。そして、S677の処理後、サブCPU71は、処理をS672に戻し、S672以降の処理を繰り返す。なお、この繰り返し処理は、データ数分繰り返される。
一方、S674において、サブCPU71が、S654の判定条件を満たさないと判別したとき(S674がNo判定の場合)、サブCPU71は、その受信データがETXであり、かつ、STX受信フラグがオン状態であるか否かを判別する(S678)。
S678において、サブCPU71が、S678の判定条件を満たすと判別したとき(S678がYes判定の場合)、サブCPU71は、受信データからサム値を作成するとともに、受信バッファに格納されている受信データのサム値を取得する(S679)。次いで、サブCPU71は、S679で作成したサム値と受信バッファに格納されていたサム値とを比較して、受信データのサム値が正常であるか否かを判別する(S680)。
S680において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データのサム値が正常であると判別したとき(S680がYes判定の場合)、サブCPU71は、サブデバイスコマンド受信処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS636に移す。一方、S680において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データのサム値が正常でないと判別したとき(S680がNo判定の場合)、サブCPU71は、「サブデバイスSUM異常」に対応するエラーコード「SD COM SUM」(図15参照)をエラー情報履歴格納領域73eに登録する(S681)。なお、この際、サブCPU71は、「サブデバイスSUM異常」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。
そして、S681の処理後、サブCPU71は、サブデバイスコマンド受信処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS636に移す。
ここで、再度、S678の処理に戻って、S678において、サブCPU71が、S678の判定条件を満たさないと判別したとき(S678がNo判定の場合)、サブCPU71は、受信データがETXであり、かつ、STX受信フラグがオフであるか否かを判別する(S682)。
S682において、サブCPU71が、S682の判定条件を満たすと判別したとき(S682がYes判定の場合)、サブCPU71は、後述のS685の処理を行う。一方、S682において、サブCPU71が、S682の判定条件を満たさないと判別したとき(S682がNo判定の場合)、サブCPU71は、受信データをコマンド登録バッファに保存する(S683)。次いで、サブCPU71は、受信バッファアドレスを更新して1バイト加算する(S684)。そして、S684の処理後、サブCPU71は、処理をS672に戻し、S672以降の処理を繰り返す。なお、この繰り返し処理は、データ数分繰り返される。
また、S673がNo判定の場合、又は、S682がYes判定の場合、サブCPU71は、これらの場合に対応するエラーコード「SD COM STX」(図15参照)をエラー情報履歴格納領域73eに登録する(S685)。なお、この際、サブCPU71は、各エラー事象に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。そして、S685の処理後、サブCPU71は、サブデバイスコマンド受信処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS636に移す。
[サブデバイス通信復帰処理]
次に、図119を参照して、サブデバイス間通信制御タスクのフローチャート(図116参照)中のS637で行うサブデバイス通信復帰処理について説明する。なお、図119は、本実施形態における、サブデバイス通信復帰処理の手順を示すフローチャートである。
まず、サブCPU71は、受信したコマンドの送信元IDがスケーラ制御基板80であるか否かを判別する(S691)。
S691において、サブCPU71が、受信したコマンドの送信元IDがスケーラ制御基板80であると判別したとき(S691がYes判定の場合)、サブCPU71は、スケーラ通信断絶フラグがオン状態であるか否かを判別する(S692)。
S692において、サブCPU71(サブデバイスエラー検出手段71h)が、スケーラ通信断絶フラグがオン状態でないと判別したとき(S692がNo判定の場合)、サブCPU71は、後述のS694の処理を行う。一方、S692において、サブCPU71(サブデバイスエラー検出手段71h)が、スケーラ通信断絶フラグがオン状態であると判別したとき(S692がYes判定の場合)、サブCPU71は、スケーラ制御基板80との「通信再開」に対応するエラーコード「SCL RSM」(図15参照)をエラー情報履歴格納領域73eに登録する(S693)。なお、この際、サブCPU71は、「通信再開」に対応するエラーコードとともに、その事象の発生日時をエラー情報履歴格納領域73eに登録する。
S693の処理後、又は、S692がNo判定の場合、サブCPU71は、スケーラ通信断絶フラグをオフするとともに、スケーラ通信断絶カウンタを「0」にクリアする(S694)。そして、S694の処理後、サブCPU71は、サブデバイス通信復帰処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS638に移す。
ここで、再度S691の処理に戻って、S691において、サブCPU71が、受信したコマンドの送信元IDがスケーラ制御基板80でないと判別したとき(S691がNo判定の場合)、サブCPU71は、受信したコマンドの送信元IDがタッチセンサ中継基板81であるか否かを判別する(S695)。
S695において、サブCPU71が、受信したコマンドの送信元IDがタッチセンサ中継基板81であると判別したとき(S695がYes判定の場合)、サブCPU71は、タッチセンサ通信断絶フラグがオン状態であるか否かを判別する(S696)。
S696において、サブCPU71(サブデバイスエラー検出手段71h)が、タッチセンサ通信断絶フラグがオン状態でないと判別したとき(S696がNo判定の場合)、サブCPU71は、後述のS698の処理を行う。一方、S696において、サブCPU71(サブデバイスエラー検出手段71h)が、タッチセンサ通信断絶フラグがオン状態であると判別したとき(S696がYes判定の場合)、サブCPU71は、タッチセンサ中継基板81との「通信再開」に対応するエラーコード「TS RSM」(図15参照)をエラー情報履歴格納領域73eに登録する(S697)。なお、この際、サブCPU71は、「通信再開」に対応するエラーコードとともに、その事象の発生日時をエラー情報履歴格納領域73eに登録する。
S697の処理後、又は、S696がNo判定の場合、サブCPU71は、タッチセンサ通信断絶フラグをオフするとともに、タッチセンサ通信断絶カウンタを「0」にクリアする(S698)。そして、S698の処理後、サブCPU71は、サブデバイス通信復帰処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS638に移す。
ここで、再度S695の処理に戻って、S695において、サブCPU71が、受信したコマンドの送信元IDがタッチセンサ中継基板81でないと判別したとき(S695がNo判定の場合)、サブCPU71は、受信したコマンドの送信元IDがカメラ中継基板83であるか否かを判別する(S699)。
S699において、サブCPU71が、受信したコマンドの送信元IDがカメラ中継基板83でないと判別したとき(S699がNo判定の場合)、サブCPU71は、サブデバイス通信復帰処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS638に移す。一方、S699において、サブCPU71が、受信したコマンドの送信元IDがカメラ中継基板83であると判別したとき(S699がYes判定の場合)、サブCPU71は、カメラ通信断絶フラグがオン状態であるか否かを判別する(S700)。
S700において、サブCPU71(サブデバイスエラー検出手段71h)が、カメラ通信断絶フラグがオン状態でないと判別したとき(S700がNo判定の場合)、サブCPU71は、後述のS702の処理を行う。一方、S700において、サブCPU71(サブデバイスエラー検出手段71h)が、カメラ通信断絶フラグがオン状態であると判別したとき(S700がYes判定の場合)、サブCPU71は、カメラ中継基板83との「通信再開」に対応するエラーコード「CCD RSM」(図15参照)をエラー情報履歴格納領域73eに登録する(S701)。なお、この際、サブCPU71は、「通信再開」に対応するエラーコードとともに、その事象の発生日時をエラー情報履歴格納領域73eに登録する。
S701の処理後、又は、S700がNo判定の場合、サブCPU71は、カメラ通信断絶フラグをオフするとともに、カメラ通信断絶カウンタを「0」にクリアする(S702)。そして、S702の処理後、サブCPU71は、サブデバイス通信復帰処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS638に移す。
[サブデバイス通信の受信時処理]
次に、図120を参照して、サブデバイス間通信制御タスクのフローチャート(図116参照)中のS638で行うサブデバイス通信の受信時処理について説明する。なお、図120は、本実施形態における、サブデバイス通信の受信時処理の手順を示すフローチャートである。
まず、サブCPU71は、コマンド登録バッファに保存されているコマンドの「ADR」からデバイスIDを取得する(S711)。次いで、サブCPU71は、デバイスIDの送信先がサブCPU71であるか否かを判別する(S712)。
S712において、サブCPU71(サブデバイスエラー検出手段71h)が、デバイスIDの送信先がサブCPU71でないと判別したとき(S712がNo判定の場合)、サブCPU71は、後述のS719の処理を行う。一方、S712において、サブCPU71(サブデバイスエラー検出手段71h)が、デバイスIDの送信先がサブCPU71であると判別したとき(S712がYes判定の場合)、サブCPU71は、デバイスIDの送信元がスケーラ制御基板80のスケーラ制御LSI80aであるか否かを判別する(S713)。
S713において、サブCPU71が、デバイスIDの送信元がスケーラ制御LSI80aであると判別したとき(S713がYes判定の場合)、サブCPU71は、スケーラ制御コマンド受信時処理を行う(S714)。なお、スケーラ制御コマンド受信時処理の詳細については、後述の図121を参照しながら後で説明する。そして、S714の処理後、サブCPU71は、サブデバイス通信の受信時処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS639に移す。
一方、S713において、サブCPU71が、デバイスIDの送信元がスケーラ制御LSI80aでないと判別したとき(S713がNo判定の場合)、サブCPU71は、デバイスIDの送信元がタッチセンサ中継基板81のタッチセンサ制御LSI81aであるか否かを判別する(S715)。
S715において、サブCPU71が、デバイスIDの送信元がタッチセンサ制御LSI81aであると判別したとき(S715がYes判定の場合)、サブCPU71は、タッチセンサ中継コマンド受信時処理を行う(S716)。なお、タッチセンサ中継コマンド受信時処理の詳細については、後述の図123を参照しながら後で説明する。そして、S716の処理後、サブCPU71は、サブデバイス通信の受信時処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS639に移す。
一方、S715において、サブCPU71が、デバイスIDの送信元がタッチセンサ制御LSI81aでないと判別したとき(S715がNo判定の場合)、サブCPU71は、デバイスIDの送信元がカメラ中継基板83のカメラ制御LSI83aであるか否かを判別する(S717)。
S717において、サブCPU71が、デバイスIDの送信元がカメラ制御LSI83aでないと判別したとき(S717がNo判定の場合)、サブCPU71は、後述のS719の処理を行う。
一方、S717において、サブCPU71が、デバイスIDの送信元がカメラ制御LSI83aであると判別したとき(S717がYes判定の場合)、サブCPU71は、カメラ中継コマンド受信時処理を行う(S718)。なお、カメラ中継コマンド受信時処理の詳細については、後述の図124を参照しながら後で説明する。そして、S718の処理後、サブCPU71は、サブデバイス通信の受信時処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS639に移す。
また、S712又はS717がNo判定の場合、サブCPU71は、「サブデバイスID異常」に対応するエラーコード「SD COM DVC」(図15参照)をエラー情報履歴格納領域73eに登録する(S719)。なお、この際、サブCPU71は、「サブデバイスID異常」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。そして、S719の処理後、サブCPU71は、サブデバイス通信の受信時処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS639に移す。
[スケーラ制御コマンド受信時処理]
次に、図121を参照して、サブデバイス通信の受信時処理のフローチャート(図120参照)中のS714で行うスケーラ制御コマンド受信時処理について説明する。なお、図121は、本実施形態における、スケーラ制御コマンド受信時処理の手順を示すフローチャートである。
まず、サブCPU71は、図21に示すサブデバイス通信チェックテーブル(サブデバイス通信データ整合性チェックテーブル)中のスケーラ(ID:「S」)に関する通信チェックデータ(No.1及び2のデータ)をサブROM72の各種プログラムテーブル領域72eから読み出して、サブRAM73(DRAM)のワーク領域73cにセットする(S721)。次いで、サブCPU71は、サブデバイス受信データ判定処理を実行する(S722)。この際、サブCPU71は、S721でセットした通信チェックデータのサブデバイス通信チェックテーブル内における位置アドレス(ID:「S」)を、サブデバイス受信データ判定処理を実行するための引数として用いる。なお、サブデバイス受信データ判定処理の詳細については、後述の図126を参照しながら後で説明する。
次いで、サブCPU71は、サブデバイス受信データ判定処理の結果、受信データが正常であるか否かを判別する(S723)。S723において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データが正常でない(受信データに不整合がある)と判別したとき(S723がNo判定の場合)、サブCPU71は、スケーラ制御基板80からリターン値として返信されたエラー情報に基づいてそれに対応するスケーラのエラーコード(図15参照)を登録する(S724)。なお、この際、サブCPU71は、スケーラのエラーコードとともに、エラーの発生日時をエラー情報履歴格納領域73eに登録する。
次いで、サブCPU71は、スケーラ受信エラーカウンタの値を更新(「1」を加算)する(S725)。そして、S725の処理後、サブCPU71は、スケーラ制御コマンド受信時処理を終了するとともに、サブデバイス通信の受信時処理も終了する。
一方、S723において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データが正常である(エラーコードなし)と判別したとき(S723がYes判定の場合)、サブCPU71は、スケーラ受信エラーカウンタをクリアする(S726)。次いで、サブCPU71は、受信データのCMDが「起動パラメータ要求」であるか否かを判別する(S727)。
S727において、サブCPU71が、受信データのCMDが「起動パラメータ要求」であると判別したとき(S727がYes判定の場合)、サブCPU71は、スケーラ設定フェーズを「1」にセットする(S728)。そして、S728の処理後、サブCPU71は、スケーラ制御コマンド受信時処理を終了するとともに、サブデバイス通信の受信時処理も終了する。
一方、S727において、サブCPU71が、受信データのCMDが「起動パラメータ要求」でないと判別したとき(S727がNo判定の場合)、サブCPU71は、受信データのCMDが「受信確認」であるか否かを判別する(S729)。
S729において、サブCPU71が、受信データのCMDが「受信確認」であると判別したとき(S729がYes判定の場合)、サブCPU71は、スケーラ制御設定確認処理を行う(S730)。なお、スケーラ制御設定確認処理の詳細については、後述の図122を参照しながら後で説明する。そして、S730の処理後、サブCPU71は、スケーラ制御コマンド受信時処理を終了するとともに、サブデバイス通信の受信時処理も終了する。
一方、S729において、サブCPU71が、受信データのCMDが「受信確認」でないと判別したとき(S729がNo判定の場合)、サブCPU71は、受信データのCMDが「リセット通知」であるか否かを判別する(S731)。S731において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データのCMDが「リセット通知」でないと判別したとき(S731がNo判定の場合)、サブCPU71は、スケーラ制御コマンド受信時処理を終了するとともに、サブデバイス通信の受信時処理も終了する。
一方、S731において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データのCMDが「リセット通知」であると判別したとき(S731がYes判定の場合)、サブCPU71は、スケーラの「リセット発生」に対応するエラーコード「SCL RST」(図15参照)をエラー情報履歴格納領域73eに登録する(S732)。なお、この際、サブCPU71は、スケーラの「リセット発生」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。そして、S732の処理後、サブCPU71は、スケーラ制御コマンド受信時処理を終了するとともに、サブデバイス通信の受信時処理も終了する。
[スケーラ制御設定確認処理]
次に、図122を参照して、スケーラ制御コマンド受信時処理のフローチャート(図121参照)中のS730で行うスケーラ制御設定確認処理について説明する。なお、図122は、本実施形態における、スケーラ制御設定確認処理の手順を示すフローチャートである。
まず、サブCPU71は、スケーラ設定フェーズが「1」であるか否かを判別する(S741)。
S741において、サブCPU71が、スケーラ設定フェーズが「1」であると判別したとき(S741がYes判定の場合)、サブCPU71は、サブデバイス送信バッファに輝度設定コマンドデータをセットし、また、スケーラ設定フェーズに「2」をセットする(S742)。次いで、サブCPU71は、スケーラの輝度設定値の設定結果が正常であるか否かを判別する(S743)。
S743において、サブCPU71(サブデバイスエラー検出手段71h)が、スケーラの輝度設定値の設定結果が正常であると判別したとき(S743がYes判定の場合)、サブCPU71は、スケーラ制御設定確認処理を終了するとともに、スケーラ制御コマンド受信時処理(図121参照)も終了する。一方、S743において、サブCPU71(サブデバイスエラー検出手段71h)が、スケーラの輝度設定値の設定結果が正常でないと判別したとき(S743がNo判定の場合)、サブCPU71は、スケーラの「輝度設定異常」に対応するエラーコード「SCL SET ERR1」(図15参照)をエラー情報履歴格納領域73eに登録する(S744)。なお、この際、サブCPU71は、スケーラの「輝度設定異常」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。そして、S744の処理後、サブCPU71は、スケーラ制御設定確認処理を終了するとともに、スケーラ制御コマンド受信時処理(図121参照)も終了する。
ここで、再度S741の処理の説明に戻って、S741において、サブCPU71が、スケーラ設定フェーズが「1」でないと判別したとき(S741がNo判定の場合)、サブCPU71は、スケーラ設定フェーズが「2」であるか否かを判別する(S745)。
S745において、サブCPU71が、スケーラ設定フェーズが「2」であると判別したとき(S745がYes判定の場合)、サブCPU71は、サブデバイス送信バッファに輪郭設定コマンドデータをセットし、また、スケーラ設定フェーズに「3」をセットする(S746)。次いで、サブCPU71は、スケーラの輪郭設定値の設定結果が正常であるか否かを判別する(S747)。
S747において、サブCPU71(サブデバイスエラー検出手段71h)が、スケーラの輪郭設定値の設定結果が正常であると判別したとき(S747がYes判定の場合)、サブCPU71は、スケーラ制御設定確認処理を終了するとともに、スケーラ制御コマンド受信時処理(図121参照)も終了する。一方、S747において、サブCPU71(サブデバイスエラー検出手段71h)が、スケーラの輪郭設定値の設定結果が正常でないと判別したとき(S747がNo判定の場合)、サブCPU71は、スケーラの「輪郭設定異常」に対応するエラーコード「SCL SET ERR2」(図15参照)をエラー情報履歴格納領域73eに登録する(S748)。なお、この際、サブCPU71は、スケーラの「輪郭設定異常」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。そして、S748の処理後、サブCPU71は、スケーラ制御設定確認処理を終了するとともに、スケーラ制御コマンド受信時処理(図121参照)も終了する。
ここで、再度S745の処理の説明に戻って、S745において、サブCPU71が、スケーラ設定フェーズが「2」でないと判別したとき(S745がNo判定の場合)、サブCPU71は、スケーラ設定フェーズが「3」であるか否かを判別する(S749)。
S749において、サブCPU71が、スケーラ設定フェーズが「3」であると判別したとき(S749がYes判定の場合)、サブCPU71は、サブデバイス送信バッファに補間設定コマンドデータをセットし、また、スケーラ設定フェーズに「4」をセットする(S750)。次いで、サブCPU71は、スケーラの補間設定値の設定結果が正常であるか否かを判別する(S751)。
S751において、サブCPU71(サブデバイスエラー検出手段71h)が、スケーラの補間設定値の設定結果が正常であると判別したとき(S751がYes判定の場合)、サブCPU71は、スケーラ制御設定確認処理を終了するとともに、スケーラ制御コマンド受信時処理(図121参照)も終了する。一方、S751において、サブCPU71(サブデバイスエラー検出手段71h)が、スケーラの補間設定値の設定結果が正常でないと判別したとき(S751がNo判定の場合)、サブCPU71は、スケーラの「補間設定異常」に対応するエラーコード「SCL SET ERR3」(図15参照)をエラー情報履歴格納領域73eに登録する(S752)。なお、この際、サブCPU71は、スケーラの「補間設定異常」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。そして、S752の処理後、サブCPU71は、スケーラ制御設定確認処理を終了するとともに、スケーラ制御コマンド受信時処理(図121参照)も終了する。
ここで、再度S749の処理の説明に戻って、S749において、サブCPU71が、スケーラ設定フェーズが「3」でないと判別したとき(S749がNo判定の場合)、サブCPU71は、スケーラ設定フェーズを「0」にクリアする(S753)。また、この際、サブCPU71は、サブデバイス送信バッファにスケーラ設定完了コマンドをセットする。そして、S753の処理後、サブCPU71は、スケーラ制御設定確認処理を終了するとともに、スケーラ制御コマンド受信時処理(図121参照)も終了する。
[タッチセンサ中継コマンド受信時処理]
次に、図123を参照して、サブデバイス通信の受信時処理のフローチャート(図120参照)中のS716で行うタッチセンサ中継コマンド受信時処理について説明する。なお、図123は、本実施形態における、タッチセンサ中継コマンド受信時処理の手順を示すフローチャートである。
まず、サブCPU71は、図21に示すサブデバイス通信チェックテーブル(サブデバイス通信データ整合性チェックテーブル)中のタッチセンサ(ID:「T」)に関する通信チェックデータ(No.3及び4のデータ)をサブROM72の各種プログラムテーブル領域72eから読み出して、サブRAM73(DRAM)のワーク領域73cにセットする(S761)。次いで、サブCPU71は、サブデバイス受信データ判定処理を実行する(S762)。この際、サブCPU71は、S761でセットした通信チェックデータのサブデバイス通信チェックテーブル内における位置アドレス(ID:「T」)を、サブデバイス受信データ判定処理を実行するための引数として用いる。なお、サブデバイス受信データ判定処理の詳細については、後述の図126を参照しながら後で説明する。
次いで、サブCPU71は、サブデバイス受信データ判定処理の結果、受信データが正常であるか否かを判別する(S763)。S763において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データが正常でない(受信データに不整合がある)と判別したとき(S763がNo判定の場合)、サブCPU71は、タッチセンサ中継基板81からリターン値として返信されたエラー情報に基づいてそれに対応するタッチセンサのエラーコード(図15参照)を登録する(S764)。なお、この際、サブCPU71は、タッチセンサのエラーコードとともに、エラーの発生日時をエラー情報履歴格納領域73eに登録する。
次いで、サブCPU71は、タッチセンサ受信エラーカウンタの値を更新(「1」を加算)する(S765)。そして、S765の処理後、サブCPU71は、タッチセンサ中継コマンド受信時処理を終了するとともに、サブデバイス通信の受信時処理も終了する。
一方、S763において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データが正常である(エラーコードなし)と判別したとき(S763がYes判定の場合)、サブCPU71は、タッチセンサ受信エラーカウンタをクリアする(S766)。次いで、サブCPU71は、受信データのCMDが「タッチ操作」であるか否かを判別する(S767)。
S767において、サブCPU71が、受信データのCMDが「タッチ操作」であると判別したとき(S767がYes判定の場合)、サブCPU71は、タッチ操作された位置を示すXY座標データをタッチ操作バッファに保存する(S768)。そして、S768の処理後、サブCPU71は、タッチセンサ中継コマンド受信時処理を終了するとともに、サブデバイス通信の受信時処理も終了する。
一方、S767において、サブCPU71が、受信データのCMDが「タッチ操作」でないと判別したとき(S767がNo判定の場合)、サブCPU71は、受信データのCMDが「フリック操作」であるか否かを判別する(S769)。
S769において、サブCPU71が、受信データのCMDが「フリック操作」であると判別したとき(S769がYes判定の場合)、サブCPU71は、フリック操作された位置を示すXY座標データをフリック操作バッファに保存する(S770)。そして、S770の処理後、サブCPU71は、タッチセンサ中継コマンド受信時処理を終了するとともに、サブデバイス通信の受信時処理も終了する。
一方、S769において、サブCPU71が、受信データのCMDが「フリック操作」でないと判別したとき(S769がNo判定の場合)、サブCPU71は、受信データのCMDが「ピンチ操作」であるか否かを判別する(S771)。
S771において、サブCPU71が、受信データのCMDが「ピンチ操作」であると判別したとき(S771がYes判定の場合)、サブCPU71は、ピンチ操作された位置を示すXY座標データをピンチ操作バッファに保存する(S772)。そして、S772の処理後、サブCPU71は、タッチセンサ中継コマンド受信時処理を終了するとともに、サブデバイス通信の受信時処理も終了する。
一方、S771において、サブCPU71が、受信データのCMDが「ピンチ操作」でないと判別したとき(S771がNo判定の場合)、サブCPU71は、受信データのCMDが「リセット通知」であるか否かを判別する(S773)。
S773において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データのCMDが「リセット通知」でないと判別したとき(S773がNo判定の場合)、サブCPU71は、タッチセンサ中継コマンド受信時処理を終了するとともに、サブデバイス通信の受信時処理も終了する。
一方、S773において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データのCMDが「リセット通知」であると判別したとき(S773がYes判定の場合)、サブCPU71は、タッチセンサの「リセット発生」に対応するエラーコード「TS RST」(図15参照)をエラー情報履歴格納領域73eに登録する(S774)。なお、この際、サブCPU71は、タッチセンサの「リセット発生」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。そして、S774の処理後、サブCPU71は、タッチセンサ中継コマンド受信時処理を終了するとともに、サブデバイス通信の受信時処理も終了する。
[カメラ中継コマンド受信時処理]
次に、図124を参照して、サブデバイス通信の受信時処理のフローチャート(図120参照)中のS718で行うカメラ中継コマンド受信時処理について説明する。なお、図124は、本実施形態における、カメラ中継コマンド受信時処理の手順を示すフローチャートである。
まず、サブCPU71は、図21に示すサブデバイス通信チェックテーブル(サブデバイス通信データ整合性チェックテーブル)中のカメラ(ID:「C」)に関する通信チェックデータ(No.5及び6のデータ)をサブROM72の各種プログラムテーブル領域72eから読み出して、サブRAM73(DRAM)のワーク領域73cにセットする(S781)。次いで、サブCPU71は、サブデバイス受信データ判定処理を実行する(S782)。この際、サブCPU71は、S781でセットした通信チェックデータのサブデバイス通信チェックテーブル内における位置アドレス(ID:「C」)を、サブデバイス受信データ判定処理を実行するための引数として用いる。なお、サブデバイス受信データ判定処理の詳細については、後述の図126を参照しながら後で説明する。
次いで、サブCPU71は、サブデバイス受信データ判定処理の結果、受信データが正常であるか否かを判別する(S783)。S783において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データが正常でない(受信データに不整合がある)と判別したとき(S783がNo判定の場合)、サブCPU71は、カメラ中継基板83からリターン値として返信されたエラー情報に基づいてそれに対応するカメラのエラーコード(図15参照)を登録する(S784)。なお、この際、サブCPU71は、カメラのエラーコードとともに、エラーの発生日時をエラー情報履歴格納領域73eに登録する。
次いで、サブCPU71は、カメラ中継受信エラーカウンタの値を更新(「1」を加算)する(S785)。そして、S785の処理後、サブCPU71は、カメラ中継コマンド受信時処理を終了するとともに、サブデバイス通信の受信時処理も終了する。
一方、S783において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データが正常である(エラーコードなし)と判別したとき(S783がYes判定の場合)、サブCPU71は、カメラ中継受信エラーカウンタをクリアする(S786)。次いで、サブCPU71は、受信データのCMDが「リセット通知」であるか否かを判別する(S787)。
S787において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データのCMDが「リセット通知」であると判別したとき(S787がYes判定の場合)、サブCPU71は、カメラの「リセット発生」に対応するエラーコード「CCD RST」(図15参照)をエラー情報履歴格納領域73eに登録する(S788)。なお、この際、サブCPU71は、カメラの「リセット発生」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。そして、S788の処理後、サブCPU71は、カメラ中継コマンド受信時処理を終了するとともに、サブデバイス通信の受信時処理も終了する。
一方、S787において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データのCMDが「リセット通知」でないと判別したとき(S787がNo判定の場合)、サブCPU71は、カメラ中継受信解析処理を行う(S789)。なお、カメラ中継受信解析処理の詳細については、後述の図125を参照しながら後で説明する。そして、S789の処理後、サブCPU71は、カメラ中継コマンド受信時処理を終了するとともに、サブデバイス通信の受信時処理も終了する。
[カメラ中継受信解析処理]
次に、図125を参照して、カメラ中継コマンド受信時処理のフローチャート(図124参照)中のS789で行うカメラ中継受信解析処理について説明する。なお、図125は、本実施形態における、カメラ中継受信解析処理の手順を示すフローチャートである。
まず、サブCPU71は、受信データのCMDが「起動完了」であるか否かを判別する(S791)。
S791において、サブCPU71が、受信データのCMDが「起動完了」であると判別したとき(S791がYes判定の場合)、サブCPU71は、カメラモジュール起動完了フラグに「1」をセットする(S792)。なお、カメラモジュール起動完了フラグは、カメラモジュール84の起動動作が完了したか否かを示すフラグである。そして、S792の処理後、サブCPU71は、カメラ中継受信解析処理を終了するとともに、カメラ中継コマンド受信時処理も終了する。
一方、S791において、サブCPU71が、受信データのCMDが「起動完了」でないと判別したとき(S791がNo判定の場合)、サブCPU71は、受信データのCMDが「読取モード設定完了」であるか否かを判別する(S793)。
S793において、サブCPU71が、受信データのCMDが「読取モード設定完了」であると判別したとき(S793がYes判定の場合)、サブCPU71は、カメラモジュール読取モード設定完了フラグに「1」をセットする(S794)。なお、カメラモジュール読取モード設定完了フラグは、カメラモジュール84の読取モードの設定動作が完了したか否かを示すフラグである。そして、S794の処理後、サブCPU71は、カメラ中継受信解析処理を終了するとともに、カメラ中継コマンド受信時処理も終了する。
一方、S793において、サブCPU71が、受信データのCMDが「読取モード設定完了」でないと判別したとき(S793がNo判定の場合)、サブCPU71は、受信データのCMDが「読取データ」であるか否かを判別する(S795)。
S795において、サブCPU71が、受信データのCMDが「読取データ」であると判別したとき(S795がYes判定の場合)、サブCPU71は、読取データを読取バッファに保存する(S796)。そして、S796の処理後、サブCPU71は、カメラ中継受信解析処理を終了するとともに、カメラ中継コマンド受信時処理も終了する。
一方、S795において、サブCPU71が、受信データのCMDが「読取データ」でないと判別したとき(S795がNo判定の場合)、サブCPU71は、受信データのCMDが「読取完了」であるか否かを判別する(S797)。
S797において、サブCPU71が、受信データのCMDが「読取完了」でないと判別したとき(S797がNo判定の場合)、サブCPU71は、カメラ中継受信解析処理を終了するとともに、カメラ中継コマンド受信時処理も終了する。
一方、S797において、サブCPU71が、受信データのCMDが「読取完了」であると判別したとき(S797がYes判定の場合)、サブCPU71は、読取完了フラグに「1」をセットする(S798)。なお、読取完了フラグは、カメラモジュール84からカメラ中継基板83を介してデータの読込動作が完了したか否かを示すフラグである。そして、S798の処理後、サブCPU71は、カメラ中継受信解析処理を終了するとともに、カメラ中継コマンド受信時処理も終了する。
[サブデバイス受信データ判定処理]
次に、図126を参照して、スケーラ制御コマンド受信時処理のフローチャート(図121参照)中のS722、タッチセンサ中継制御コマンド受信時処理のフローチャート(図123参照)中のS762、及び/又は、カメラ中継コマンド受信時処理のフローチャート(図124参照)中のS782で行うサブデバイス受信データ判定処理について説明する。図126は、本実施形態における、サブデバイス受信データ判定処理の手順を示すフローチャートである。
なお、各コマンド受信時処理においてサブデバイス受信データ判定処理を実行する際には、サブCPU71は、図21に示すサブデバイス通信チェックテーブル内の処理対象となるサブデバイスの位置アドレス(ID)を両処理のプログラム間の引数として用いる。例えば、タッチセンサ中継制御コマンド受信時処理においてサブデバイス受信データ判定処理を実行する際には、サブデバイス通信チェックテーブル中のNo.3及び4に対応する位置アドレス(ID:「T」)が、両処理のプログラム間の引数として用いられる。そして、サブCPU71は、その引数(位置アドレス)に基づいてサブデバイス通信チェックテーブルを参照し、受信データにおけるデータの種別及びサイズをチェックする。
まず、サブCPU71は、受信バッファのDATA部のサイズを取得する(S801)。次いで、サブCPU71は、取得したDATAサイズが256バイト以下であるか否かを判別する(S802)。
S802において、サブCPU71(サブデバイスエラー検出手段71h)が、DATAサイズが256バイト以下でないと判別したとき(S802がNo判定の場合)、サブCPU71は、「データサイズ異常(257以上)」に対応するエラーコードをエラー情報履歴格納領域73eに登録する(S803)。例えば、サブデバイス受信データ判定処理の対象がスケーラである場合には、S803において、エラーコード「SCL COM SIZ」(図15参照)がエラー情報履歴格納領域73eに登録される。なお、この際、サブCPU71は、「データサイズ異常(257以上)」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。
そして、S803の処理後、サブCPU71は、サブデバイス受信データ判定処理を終了し、処理を、スケーラ制御コマンド受信時処理(図121参照)のS723、タッチセンサ中継制御コマンド受信時処理(図123参照)のS763、又は、カメラ中継コマンド受信時処理(図124参照)のS783に移す。
一方、S802において、サブCPU71(サブデバイスエラー検出手段71h)が、DATAサイズが256バイト以下であると判別したとき(S802がYes判定の場合)、サブCPU71は、サブデバイス通信チェックテーブル(図21参照)に種別登録があるか否かを判別する(S804)。
S804において、サブCPU71が、サブデバイス通信チェックテーブルに種別登録がないと判別したとき(S804がNo判定の場合)、サブCPU71は、「コマンド種別異常」に対応するエラーコードをエラー情報履歴格納領域73eに登録する(S812)。例えば、サブデバイス受信データ判定処理の対象がスケーラである場合には、S812において、エラーコード「SCL COM TYP」(図15参照)がエラー情報履歴格納領域73eに登録される。なお、この際、サブCPU71は、「コマンド種別異常」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。そして、S812の処理後、サブCPU71は、サブデバイス受信データ判定処理を終了し、処理を、スケーラ制御コマンド受信時処理(図121参照)のS723、タッチセンサ中継制御コマンド受信時処理(図123参照)のS763、又は、カメラ中継コマンド受信時処理(図124参照)のS783に移す。
一方、S804において、サブCPU71が、サブデバイス通信チェックテーブルに種別登録があると判別したとき(S804がYes判定の場合)、サブCPU71は、サブデバイス通信チェックテーブル(図21参照)からCMD種別における判定条件を取得する(S805)。次いで、サブCPU71は、受信データのCMDの種別が判定条件と一致するか否かを判別する(S806)。
S806において、サブCPU71が、受信データのCMDの種別が判定条件と一致しないと判別したとき(S806がNo判定の場合)、サブCPU71は、チェックテーブルを更新する(S807)。この処理では、例えば、チェックテーブルを「判定1」のCMDから「判定2」のCMDに更新する。そして、S807の処理後、サブCPU71は、処理をS804に戻し、S804以降に処理を繰り返す。
一方、S806において、サブCPU71が、受信データのCMDの種別が判定条件と一致すると判別したとき(S806がYes判定の場合)、サブCPU71は、チェックテーブルを更新して、CMDに対応したDATA判定に移動する(S808)。この処理では、例えば、スケーラについて「判定3」の場合には、No.2の「判定3」の位置にチェックテーブルを更新する。次いで、サブCPU71は、チェックテーブルからDATAサイズに関する判定条件を取得する(S809)。
次いで、サブCPU71は、受信データのDATAサイズが判定条件と一致するか否かを判別する(S810)。
S810において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データのDATAサイズが判定条件と一致すると判別したとき(S810がYes判定の場合)、サブCPU71は、サブデバイス受信データ判定処理を終了し、処理を、スケーラ制御コマンド受信時処理(図121参照)のS723、タッチセンサ中継制御コマンド受信時処理(図123参照)のS763、又は、カメラ中継コマンド受信時処理(図124参照)のS783に移す。
一方、S810において、サブCPU71(サブデバイスエラー検出手段71h)が、受信データのDATAサイズが判定条件と一致しないと判別したとき(S810がNo判定の場合)、サブCPU71は、「パケットサイズ異常」に対応するエラーコードをエラー情報履歴格納領域73eに登録する(S811)。例えば、サブデバイス受信データ判定処理の対象がスケーラである場合には、S811において、エラーコード「SCL COM PKT」(図15参照)がエラー情報履歴格納領域73eに登録される。なお、この際、サブCPU71は、「パケットサイズ異常」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。
そして、S811の処理後、サブCPU71は、サブデバイス受信データ判定処理を終了し、処理を、スケーラ制御コマンド受信時処理(図121参照)のS723、タッチセンサ中継制御コマンド受信時処理(図123参照)のS763、又は、カメラ中継コマンド受信時処理(図124参照)のS783に移す。
[サブデバイスコマンド送信処理]
次に、図127を参照して、サブデバイス間通信制御タスクのフローチャート(図116参照)中のS639で行うサブデバイスコマンド送信処理について説明する。なお、図127は、本実施形態における、サブデバイスコマンド送信処理の手順を示すフローチャートである。
まず、サブCPU71は、スケーラ制御基板80へのデータの送信間隔をカウントするスケーラ制御送信間隔カウンタを更新(「1」を加算)する(S821)。次いで、サブCPU71は、スケーラ制御送信間隔カウンタの値に基づいて、スケーラ制御基板80へのデータの送信間隔が200msec以上であるか否かを判別する(S822)。なお、上述したように、本実施形態では、サブCPU71からスケーラ制御基板80へのデータの送信間隔は、データの種別に関係なく200msecである。
S822において、サブCPU71が、スケーラ制御基板80へのデータの送信間隔が200msec以上であると判別したとき(S822がYes判定の場合)、サブCPU71は、スケーラ制御送信処理を行う(S823)。この処理では、サブCPU71は、例えばポーリングコマンドデータ、各種設定コマンドデータ等のデータをスケーラ制御基板80に送信する。なお、スケーラ制御送信処理の詳細については、後述の図128を参照しながら後で説明する。次いで、サブCPU71は、スケーラ制御送信間隔カウンタの値を「0」にクリアする(S824)。そして、S824の処理後、サブCPU71は、サブデバイスコマンド送信処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS633に移す。
一方、S822において、サブCPU71が、スケーラ制御基板80へのデータの送信間隔が200msec以上でないと判別したとき(S822がNo判定の場合)、サブCPU71は、タッチセンサ中継基板81へのデータの送信間隔をカウントするタッチセンサ中継送信間隔カウンタを更新(「1」を加算)する(S825)。次いで、サブCPU71は、タッチセンサ中継送信間隔カウンタの値に基づいて、タッチセンサ中継基板81へのデータの送信間隔が200msec以上であるか否かを判別する(S826)。なお、上述したように、本実施形態では、サブCPU71からタッチセンサ中継基板81へのデータの送信間隔は、データの種別に関係なく200msecである。
S826において、サブCPU71が、タッチセンサ中継基板81へのデータの送信間隔が200msec以上であると判別したとき(S826がYes判定の場合)、サブCPU71は、タッチセンサ中継送信処理を行う(S827)。この処理では、サブCPU71は、タッチセンサ中継基板81にポーリングコマンドデータを送信する。なお、タッチセンサ中継送信処理の詳細については、後述の図129を参照しながら後で説明する。次いで、サブCPU71は、タッチセンサ中継送信間隔カウンタの値を「0」にクリアする(S828)。そして、S828の処理後、サブCPU71は、サブデバイスコマンド送信処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS633に移す。
一方、S826において、サブCPU71が、タッチセンサ中継基板81へのデータの送信間隔が200msec以上でないと判別したとき(S826がNo判定の場合)、サブCPU71は、カメラ中継基板83へのデータの送信間隔をカウントするカメラ中継送信間隔カウンタを更新(「1」を加算)する(S829)。次いで、サブCPU71は、カメラ中継送信間隔カウンタの値に基づいて、カメラ中継基板83へのデータの送信間隔が200msec以上であるか否かを判別する(S830)。なお、上述したように、本実施形態では、サブCPU71からカメラ中継基板83へのデータの送信間隔は、データの種別に関係なく200msecである。
S830において、サブCPU71が、カメラ中継基板83へのデータの送信間隔が200msec以上でないと判別したとき(S830がNo判定の場合)、サブCPU71は、サブデバイスコマンド送信処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS633に移す。
一方、S830において、サブCPU71が、カメラ中継基板83へのデータの送信間隔が200msec以上であると判別したとき(S830がYes判定の場合)、サブCPU71は、カメラ中継送信処理を行う(S831)。この処理では、サブCPU71は、例えばポーリングコマンドデータ、各種要求コマンドデータ等のデータをカメラ中継基板83に送信する。なお、カメラ中継送信処理の詳細については、後述の図130を参照しながら後で説明する。次いで、サブCPU71は、カメラ中継送信間隔カウンタの値を「0」にクリアする(S832)。そして、S832の処理後、サブCPU71は、サブデバイスコマンド送信処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS633に移す。
[スケーラ制御送信処理]
次に、図128を参照して、サブデバイスコマンド送信処理のフローチャート(図127参照)中のS823で行うスケーラ制御送信処理について説明する。なお、図128は、本実施形態における、スケーラ制御送信処理の手順を示すフローチャートである。
まず、サブCPU71は、スケーラ設定フェーズが「1」であるか否かを判別する(S841)。
S841において、サブCPU71が、スケーラ設定フェーズが「1」であると判別したとき(S841がYes判定の場合)、サブCPU71は、サブデバイス送信バッファに「輝度設定」コマンドデータ(図20参照)をセットする(S842)。そして、S842の処理後、サブCPU71は、後述のS850の処理を行う。
一方、S841において、サブCPU71が、スケーラ設定フェーズが「1」でないと判別したとき(S841がNo判定の場合)、サブCPU71は、スケーラ設定フェーズが「2」であるか否かを判別する(S843)。
S843において、サブCPU71が、スケーラ設定フェーズが「2」であると判別したとき(S843がYes判定の場合)、サブCPU71は、サブデバイス送信バッファに「輪郭設定」コマンドデータ(図20参照)をセットする(S844)。そして、S844の処理後、サブCPU71は、後述のS850の処理を行う。
一方、S843において、サブCPU71が、スケーラ設定フェーズが「2」でないと判別したとき(S843がNo判定の場合)、サブCPU71は、スケーラ設定フェーズが「3」であるか否かを判別する(S845)。
S845において、サブCPU71が、スケーラ設定フェーズが「3」であると判別したとき(S845がYes判定の場合)、サブCPU71は、サブデバイス送信バッファに「補間設定」コマンドデータ(図20参照)をセットする(S846)。そして、S846の処理後、サブCPU71は、後述のS850の処理を行う。
一方、S845において、サブCPU71が、スケーラ設定フェーズが「3」でないと判別したとき(S845がNo判定の場合)、サブCPU71は、スケーラ設定フェーズが「4」であるか否かを判別する(S847)。
S847において、サブCPU71が、スケーラ設定フェーズが「4」であると判別したとき(S847がYes判定の場合)、サブCPU71は、サブデバイス送信バッファに「設定完了」コマンドデータ(図20参照)をセットする(S848)。そして、S848の処理後、サブCPU71は、後述のS850の処理を行う。
一方、S847において、サブCPU71が、スケーラ設定フェーズが「4」でないと判別したとき(S847がNo判定の場合)、サブCPU71は、サブデバイス送信バッファにスケーラ制御基板80へのポーリングコマンドデータをセットする(S849)。なお、この処理でセットされるポーリングコマンドデータ内の「ADR」(図19参照)には送信先IDとしてスケーラに対応するID(「S」)が格納される。
S842、S844、S846、S848又はS849の処理後、サブCPU71は、サブデバイス送信処理を行う(S850)。この処理では、サブCPU71は、サブデバイス送信バッファにセットされたコマンドデータを、シリアル通信中継基板79を介してスケーラ制御基板80に送信する。そして、S850の処理後、サブCPU71は、スケーラ制御送信処理を終了し、処理をサブデバイスコマンド送信処理(図127参照)のS824に移す。
[タッチセンサ中継送信処理]
次に、図129を参照して、サブデバイスコマンド送信処理のフローチャート(図127参照)中のS827で行うタッチセンサ中継送信処理について説明する。なお、図129は、本実施形態における、タッチセンサ中継送信処理の手順を示すフローチャートである。
まず、サブCPU71は、サブデバイス送信バッファにタッチセンサ中継基板81へのポーリングコマンドデータをセットする(S861)。なお、この処理でセットされるポーリングコマンドデータ内の「ADR」(図19参照)には送信先IDとしてタッチセンサに対応するID(「T」)が格納される。
次いで、サブCPU71は、サブデバイス送信処理を行う(S862)。この処理では、サブCPU71は、サブデバイス送信バッファにセットされたポーリングコマンドデータを、シリアル通信中継基板79を介してタッチセンサ中継基板81に送信する。そして、S862の処理後、サブCPU71は、タッチセンサ中継送信処理を終了し、処理をサブデバイスコマンド送信処理(図127参照)のS828に移す。
[カメラ中継送信処理]
次に、図130を参照して、サブデバイスコマンド送信処理のフローチャート(図127参照)中のS831で行うカメラ中継送信処理について説明する。なお、図130は、本実施形態における、カメラ中継送信処理の手順を示すフローチャートである。
まず、サブCPU71は、カメラモジュール84の起動要求があるか否かを判別する(S871)。
S871において、サブCPU71が、カメラモジュール84の起動要求があると判別したとき(S871がYes判定の場合)、サブCPU71は、サブデバイス送信バッファに「起動要求」コマンドデータ(図20参照)をセットする(S872)。次いで、サブCPU71は、カメラモジュール84の起動要求をクリアする(S873)。そして、S873の処理後、サブCPU71は、後述のS884の処理を行う。
一方、S871において、サブCPU71が、カメラモジュール84の起動要求がないと判別したとき(S871がNo判定の場合)、サブCPU71は、カメラモジュール84のモード設定変更要求があるか否かを判別する(S874)。
S874において、サブCPU71が、カメラモジュール84のモード設定変更要求があると判別したとき(S874がYes判定の場合)、サブCPU71は、サブデバイス送信バッファに「読取モード設定」コマンドデータ(図20参照)をセットする(S875)。次いで、サブCPU71は、カメラモジュール84のモード設定変更要求をクリアする(S876)。そして、S876の処理後、サブCPU71は、後述のS884の処理を行う。
一方、S874において、サブCPU71が、カメラモジュール84のモード設定変更要求がないと判別したとき(S874がNo判定の場合)、サブCPU71は、カメラモジュール84の読取要求があるか否かを判別する(S877)。
S877において、サブCPU71が、カメラモジュール84の読取要求があると判別したとき(S877がYes判定の場合)、サブCPU71は、サブデバイス送信バッファに「読取開始要求」コマンドデータ(図20参照)をセットする(S878)。次いで、サブCPU71は、カメラモジュール84の読取要求をクリアする(S879)。そして、S879の処理後、サブCPU71は、後述のS884の処理を行う。
一方、S877において、サブCPU71が、カメラモジュール84の読取要求がないと判別したとき(S877がNo判定の場合)、サブCPU71は、カメラモジュール84の終了要求があるか否かを判別する(S880)。
S880において、サブCPU71が、カメラモジュール84の終了要求があると判別したとき(S880がYes判定の場合)、サブCPU71は、サブデバイス送信バッファに「停止要求」コマンドデータ(図20参照)をセットする(S881)。次いで、サブCPU71は、カメラモジュール84の終了要求をクリアする(S882)。そして、S882の処理後、サブCPU71は、後述のS884の処理を行う。
一方、S880において、サブCPU71が、カメラモジュール84の終了要求がないと判別したとき(S880がNo判定の場合)、サブCPU71は、サブデバイス送信バッファにカメラ中継基板83へのポーリングコマンドデータをセットする(S883)。なお、この処理でセットされるポーリングコマンドデータ内の「ADR」(図19参照)には送信先IDとしてカメラに対応するID(「C」)が格納される。
S873、S876、S879、S882又はS883の処理後、サブCPU71は、サブデバイス送信処理を行う(S884)。この処理では、サブCPU71は、サブデバイス送信バッファにセットされたコマンドデータを、シリアル通信中継基板79を介してカメラ中継基板83に送信する。そして、S884の処理後、サブCPU71は、カメラ中継送信処理を終了し、処理をサブデバイスコマンド送信処理(図127参照)のS832に移す。
[サブデバイス通信断絶処理]
次に、図131を参照して、サブデバイス間通信制御タスクのフローチャート(図116参照)中のS640で行うサブデバイス通信断絶処理について説明する。図131は、本実施形態における、サブデバイス通信断絶処理の手順を示すフローチャートである。なお、本実施形態では、以下に説明するサブデバイス通信断絶処理において、サブCPU71及び各サブデバイス間に通信断絶が発生したか否かを判別する処理を行う。すなわち、本実施形態では、サブCPU71は、サブCPU71及び各サブデバイス間の通信断絶を検知する手段(通信断絶検知手段)も含む。
まず、サブCPU71は、スケーラ通信断絶カウンタの値を更新(「1」加算)する(S891)。なお、本実施形態では、図116に示すサブデバイス間通信制御タスクが4msec周期で行われるので、スケーラ通信断絶カウンタの更新処理も4msec周期で行われる。
次いで、サブCPU71は、スケーラ通信断絶カウンタの値が、通信断絶と判断される期間に対応するカウント値以上の値であるか否かを判別する(S892)。具体的には、本実施形態では、スケーラに対して通信断絶と判断される期間を5secとするので、スケーラに対して通信断絶と判断される期間に対応するカウント値は「1250」(=5sec/4msec)となる。それゆえ、S892の処理では、サブCPU71は、スケーラ通信断絶カウンタの値が「1250」以上であるか否かを判別する。なお、本実施形態では、スケーラに対して通信断絶と判断される期間を5secとする例を説明したが、本発明はこれに限定されず、スケーラに対して通信断絶と判断される期間は任意に設定することができる。
S892において、サブCPU71が、スケーラ通信断絶カウンタの値が、通信断絶と判断される期間に対応するカウント値未満の値であると判別したとき(S892がNo判定の場合)、サブCPU71は、後述のS896の処理を行う。一方、S892において、サブCPU71が、スケーラ通信断絶カウンタの値が、通信断絶と判断される期間に対応するカウント値以上の値であると判別したとき(S892がYes判定の場合)、サブCPU71は、スケーラ通信断絶フラグがオン状態であるか否かを判別する(S893)。
S893において、サブCPU71が、スケーラ通信断絶フラグがオン状態であると判別したとき(S893がYes判定の場合)、サブCPU71は、後述のS896の処理を行う。
一方、S893において、サブCPU71が、スケーラ通信断絶フラグがオン状態でないと判別したとき(S893がNo判定の場合)、サブCPU71は、スケーラ通信断絶フラグをオンする(S894)。この処理により、スケーラ制御基板80(スケーラ制御LSI80a及び解像度変換LSI80b)がリセットされる。次いで、サブCPU71は、スケーラの「通信断絶」に対応するエラーコード「SCL DSC」(図15参照)をエラー情報履歴格納領域73eに登録する(S895)。なお、この際、サブCPU71は、「通信断絶」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。
S895の処理後、S892がNo判定の場合、又は、S893がYes判定の場合、サブCPU71は、タッチセンサ通信断絶カウンタの値を更新(「1」加算)する(S896)。なお、本実施形態では、図116に示すサブデバイス間通信制御タスクが4msec周期で行われるので、タッチセンサ通信断絶カウンタの更新処理も4msec周期で行われる。
次いで、サブCPU71は、タッチセンサ通信断絶カウンタの値が、通信断絶と判断される期間に対応するカウント値以上の値であるか否かを判別する(S897)。具体的には、本実施形態では、タッチセンサに対して通信断絶と判断される期間を5secとするので、タッチセンサに対して通信断絶と判断される期間に対応するカウント値は「1250」(=5sec/4msec)となる。それゆえ、S897の処理では、サブCPU71は、タッチセンサ通信断絶カウンタの値が「1250」以上であるか否かを判別する。なお、本実施形態では、タッチセンサに対して通信断絶と判断される期間を5secとする例を説明したが、本発明はこれに限定されず、タッチセンサに対して通信断絶と判断される期間は任意に設定することができる。
S897において、サブCPU71が、タッチセンサ通信断絶カウンタの値が、通信断絶と判断される期間に対応するカウント値未満の値であると判別したとき(S897がNo判定の場合)、サブCPU71は、後述のS901の処理を行う。一方、S897において、サブCPU71が、タッチセンサ通信断絶カウンタの値が、通信断絶と判断される期間に対応するカウント値以上の値であると判別したとき(S897がYes判定の場合)、サブCPU71は、タッチセンサ通信断絶フラグがオン状態であるか否かを判別する(S898)。
S898において、サブCPU71が、タッチセンサ通信断絶フラグがオン状態であると判別したとき(S898がYes判定の場合)、サブCPU71は、後述のS901の処理を行う。
一方、S898において、サブCPU71が、タッチセンサ通信断絶フラグがオン状態でないと判別したとき(S898がNo判定の場合)、サブCPU71は、タッチセンサ通信断絶フラグをオンする(S899)。この処理により、タッチセンサ中継基板81(タッチセンサ制御LSI81a)及びタッチセンサモジュール82がリセットされる。次いで、サブCPU71は、タッチセンサの「通信断絶」に対応するエラーコード「TS DSC」(図15参照)をエラー情報履歴格納領域73eに登録する(S900)。なお、この際、サブCPU71は、「通信断絶」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。
S900の処理後、S897がNo判定の場合、又は、S898がYes判定の場合、サブCPU71は、カメラ通信断絶カウンタの値を更新(「1」加算)する(S901)。なお、本実施形態では、図116に示すサブデバイス間通信制御タスクが4msec周期で行われるので、カメラ通信断絶カウンタの更新処理も4msec周期で行われる。
次いで、サブCPU71は、カメラ通信断絶カウンタの値が、通信断絶と判断される期間に対応するカウント値以上の値であるか否かを判別する(S902)。具体的には、本実施形態では、カメラに対して通信断絶と判断される期間を5secとするので、カメラに対して通信断絶と判断される期間に対応するカウント値は「1250」(=5sec/4msec)となる。それゆえ、S902の処理では、サブCPU71は、カメラ通信断絶カウンタの値が「1250」以上であるか否かを判別する。なお、本実施形態では、カメラに対して通信断絶と判断される期間を5secとする例を説明したが、本発明はこれに限定されず、カメラに対して通信断絶と判断される期間は任意に設定することができる。また、本実施形態では、上述のように、サブデバイスの種別に関係なく、通信断絶と判断される期間を5secとする例を説明したが、本発明はこれに限定されず、サブデバイス毎に通信断絶と判断される期間を変えてもよい。
S902において、サブCPU71が、カメラ通信断絶カウンタの値が、通信断絶と判断される期間に対応するカウント値未満の値であると判別したとき(S902がNo判定の場合)、サブCPU71は、サブデバイス通信断絶処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS633に移す。一方、S902において、サブCPU71が、カメラ通信断絶カウンタの値が、通信断絶と判断される期間に対応するカウント値以上の値であると判別したとき(S902がYes判定の場合)、サブCPU71は、カメラ通信断絶フラグがオン状態であるか否かを判別する(S903)。
S903において、サブCPU71が、カメラ通信断絶フラグがオン状態であると判別したとき(S903がYes判定の場合)、サブCPU71は、サブデバイス通信断絶処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS633に移す。
一方、S903において、サブCPU71が、カメラ通信断絶フラグがオン状態でないと判別したとき(S903がNo判定の場合)、サブCPU71は、カメラ通信断絶フラグをオンする(S904)。この処理により、カメラ中継基板83(カメラ制御LSI83a)及びカメラモジュール84がリセットされる。次いで、サブCPU71は、カメラの「通信断絶」に対応するエラーコード「CCD DSC」(図15参照)をエラー情報履歴格納領域73eに登録する(S905)。なお、この際、サブCPU71は、「通信断絶」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。そして、S905の処理後、サブCPU71は、サブデバイス通信断絶処理を終了し、処理をサブデバイス間通信制御タスク(図116参照)のS633に移す。
なお、図116に示すサブデバイス間通信制御タスクにおいて、上述したサブデバイス通信断絶処理が終了してもタスクは終了せず、上述のようにタスク処理の流れはS633に戻る。そして、その後は、上記図119で説明したサブデバイス通信復帰処理が実行され、通信が再開されると、「通信復帰」がエラー履歴として登録される。それゆえ、本実施形態では、サブCPU71と各サブデバイスとの間で通信断絶及びエラーが発生しても通信タスクを終了させずに通信を再開させることができる。また、「通信再開」をエラー履歴に登録するので、「通信断絶」及び「通信再開」の日時をエラー履歴により確認することができる。
[サブデバイスシリアル受信割込処理]
次に、図132を参照しながら、サブCPU71によるサブデバイスシリアル受信割込処理について説明する。図132は、本実施形態における、サブデバイスシリアル受信割込処理のフローチャートである。
まず、サブCPU71は、受信ステータスの読込む(S911)。次いで、サブCPU71は、物理層にエラーがあるか否かを判別する(S912)。
S912において、サブCPU71が、物理層にエラーがないと判別したとき(S912がNo判定の場合)、サブCPU71は、受信データを通信ログ収集用リングバッファ領域73fに保存する(S913)。なお、この受信データを保存するバッファのサイズは512バイトである。そして、S913の処理後、サブCPU71は、サブデバイスシリアル受信割込処理を終了する。
一方、S912において、サブCPU71が、物理層にエラーがあると判別したとき(S912がYes判定の場合)、サブCPU71は、「サブデバイス物理層異常」に対応するエラーコード「SD COM」(図15参照)をエラー情報履歴格納領域73eに登録する(S914)。なお、この際、サブCPU71は、「サブデバイス物理層異常」に対応するエラーコードとともに、そのエラーの発生日時をエラー情報履歴格納領域73eに登録する。また、サブデバイス物理層エラーは、COMエラー程重大なエラーではないので、COMエラーとは区別して登録される。そして、S914の処理後、サブCPU71は、サブデバイスシリアル受信割込処理を終了する。
<スケーラ制御LSIによる各種処理の説明>
次に、図133〜図137を参照して、スケーラ制御基板80のスケーラ制御LSI80aが、プログラムを用いて実行する各種処理(タスク)の内容について説明する。なお、以下に説明するスケーラ制御LSI80aの各種処理において必要となる、各種制御フラグ、各種制御カウンタ、各種バッファ等はスケーラ制御LSI80aに内蔵された作業用のRAM(不図示)に設けられる。
[スケーラ制御メインタスク]
図133を参照しながら、スケーラ制御メインタスクについて説明する。図133は、本実施形態における、スケーラ制御メインタスクのフローチャートである。
まず、スケーラ制御LSI80aは、初期設定処理を行う(S921)。この処理では、スケーラ制御LSI80aは、例えば、スケーラ制御基板80内のタイマー、シリアルポート等の設定、作業RAMの初期化、解像度変換LSI80bの初期設定を行う。
次いで、スケーラ制御LSI80aは、10msecの周期設定を行う(S922)。この処理後、10msecからS922の処理までにかかった処理時間を差し引いた残りの時間、スケーラ制御LSI80aは待機する。例えば、S922の処理までの処理時間が1.5msecであるすると、残りの8.5msecが待機時間となる。ただし、受信割込処理は待機中も動作する。
次いで、スケーラ制御LSI80aは、サブ制御受信処理を行う(S923)。なお、スケーラ制御LSI80aによるサブ制御受信処理の詳細については、後述の図134を参照しながら後で説明する。次いで、スケーラ制御LSI80aは、サブCPU71にデータを送信する必要があるか否かを判別する(S924)。
なお、S924の処理では、S923のサブ制御受信処理の結果(受信データの有無及び種別)に基づいて、サブCPU71に何らかのコマンドデータを送信する必要があるか否かを判別する。そして、サブCPU71からの受信データに対して、例えば受信確認コマンドデータやアンサコマンドデータなどのコマンドデータをサブCPU71に返信する必要がある場合には、S924の判定処理の結果は、Yes判定となる。
S924において、スケーラ制御LSI80aが、サブCPU71にデータを送信する必要がないと判別したとき(S924がNo判定の場合)、スケーラ制御LSI80aは、後述のS926の処理を行う。一方、S924において、スケーラ制御LSI80aが、サブCPU71にデータを送信する必要があると判別したとき(S924がYes判定の場合)、スケーラ制御LSI80aは、サブ制御送信処理を行う(S925)。なお、スケーラ制御LSI80aによるサブ制御送信処理の詳細については、後述の図136を参照しながら後で説明する。
S925の処理後、又は、S924がNo判定の場合、スケーラ制御LSI80aは、作動状態判定処理を行う(S926)。なお、スケーラ制御LSI80aによる作動状態判定処理の詳細については、後述の図137を参照しながら後で説明する。
次いで、スケーラ制御LSI80aは、10msecの周期期間のうち、残り時間を待機する(S927)。そして、S927の処理後、スケーラ制御LSI80aは、処理をS923に戻し、S923以降の処理を繰り返す。
[サブ制御受信処理]
次に、図134を参照して、スケーラ制御メインタスクのフローチャート(図133参照)中のS923で行うサブ制御受信処理について説明する。なお、図134は、本実施形態における、スケーラ制御LSI80aのサブ制御受信処理の手順を示すフローチャートである。
まず、スケーラ制御LSI80aは、受信データがあるか否かを判別する(S931)。
S931において、スケーラ制御LSI80aが、受信データがないと判別したとき(S931がNo判定の場合)、スケーラ制御LSI80aは、サブ制御受信処理を終了し、処理をスケーラ制御メインタスク(図133参照)のS924に移す。一方、S931において、スケーラ制御LSI80aが、受信データがあると判別したとき(S931がYes判定の場合)、スケーラ制御LSI80aは、受信データの送信先IDがスケーラ制御LSI80a(スケーラ制御基板80)であるか否かを判別する(S932)。
S932において、スケーラ制御LSI80aが、受信データの送信先IDがスケーラ制御LSI80aでないと判別したとき(S932がNo判定の場合)、スケーラ制御LSI80aは、サブ制御受信処理を終了し、処理をスケーラ制御メインタスク(図133参照)のS924に移す。
一方、S932において、スケーラ制御LSI80aが、受信データの送信先IDがスケーラ制御LSI80aであると判別したとき(S932がYes判定の場合)、スケーラ制御LSI80aは、CMD(コマンドデータ)が設定項目に関するデータであるか否かを判別する(S933)。なお、スケーラ制御基板80の設定項目に関するCMDとしては、図20のテーブルに示すように、バックライト輝度設定、輪郭強調設定、補間テーブル設定の3項目のCMDがある。
S933において、スケーラ制御LSI80aが、CMDが設定項目に関するデータであると判別したとき(S933がYes判定の場合)、スケーラ制御LSI80aは、解像度変換LSI設定処理を行う(S934)。なお、解像度変換LSI設定処理の詳細については、後述の図135を参照しながら後で説明する。そして、S934の処理後、スケーラ制御LSI80aは、サブ制御受信処理を終了し、処理をスケーラ制御メインタスク(図133参照)のS924に移す。
一方、S933において、スケーラ制御LSI80aが、CMDが設定項目に関するデータでないと判別したとき(S933がNo判定の場合)、スケーラ制御LSI80aは、サブ制御送信バッファに受信確認コマンドをセットする(S935)。そして、S935の処理後、スケーラ制御LSI80aは、サブ制御受信処理を終了し、処理をスケーラ制御メインタスク(図133参照)のS924に移す。
[解像度変換LSI設定処理]
次に、図135を参照して、サブ制御受信処理のフローチャート(図134参照)中のS934で行う解像度変換LSI設定処理について説明する。なお、図135は、本実施形態における、解像度変換LSI設定処理の手順を示すフローチャートである。
まず、スケーラ制御LSI80aは、受信バッファから設定項目を取得するとともに、受信バッファから設定データを取得する(S941)。なお、この処理で取得する設定項目は、バックライト輝度、輪郭強調、スケーラ補間テーブル設定の3項目のいずれかである。
次いで、スケーラ制御LSI80aは、取得した設定データを解像度変換LSI80bの設定項目にセットする(S942)。次いで、スケーラ制御LSI80aは、解像度変換LSI80bから設定内容を読み込む(S943)。
次いで、スケーラ制御LSI80aは、S943で読み込んだ設定内容の値(読込み値)が、S942で設定された値(設定値)と同じであるか否かを判別する(S944)。
S944において、スケーラ制御LSI80aが、読込み値が設定値と同じでないと判別したとき(S944がNo判定の場合)、スケーラ制御LSI80aは、解像度変換LSI設定異常フラグをオンする(S945)。そして、S945の処理後、スケーラ制御LSI80aは、解像度変換LSI設定処理を終了するとともに、サブ制御受信処理(図134参照)も終了する。
一方、S944において、スケーラ制御LSI80aが、読込み値が設定値と同じであると判別したとき(S944がYes判定の場合)、スケーラ制御LSI80aは、サブ制御送信バッファに、設定項目付きの受信確認コマンドをセットする(S946)。そして、S946の処理後、スケーラ制御LSI80aは、解像度変換LSI設定処理を終了するとともに、サブ制御受信処理(図134参照)も終了する。
上述した解像度変換LSI設定処理では、スケーラ制御LSI80aからサブCPU71にパラメータ要求を行い、それに対し、サブCPU71からスケーラ制御LSI80aに所定の設定項目のコマンドが送信された場合、スケーラ制御LSI80aからサブCPU71に、コマンドの受信確認が送信される。しかしながら、このスケーラ制御LSI80a及びサブCPU71間のコマンドの送受信処理では、次のような問題が生じ得る。
例えば、いま、スケーラ制御LSI80aからサブCPU71に第1のパラメータ要求が行われ、それに対し、サブCPU71からスケーラ制御LSI80aに輪郭強調設定のコマンドが送信された場合を考える。この場合、輪郭強調設定のコマンドが送信された後、スケーラ制御LSI80aからサブCPU71に輪郭強調設定のコマンドの受信確認が送信される前に、スケーラ制御LSI80aからサブCPU71に第2のパラメータ要求が行われ、それに対し、サブCPU71からスケーラ制御LSI80aに、例えばバックライト輝度設定のコマンドが送信されることがある。この際、スケーラ制御LSI80aからサブCPU71に、最初のコマンドの受信確認が送信されると、サブCPU71が、このコマンドの受信確認は、「バックライト輝度設定のコマンド」の受信確認であると誤認し、続いて、スケーラ制御LSI80aからサブCPU71に、「バックライト輝度設定のコマンド」に対する受信確認が送信されると、サブCPU71は上記の誤認に起因してこの受信確認を無視することが起こり得る。
これに対し、本実施形態の解像度変換LSI設定処理では、S946の処理において、サブ制御送信バッファに、設定項目付きの受信確認コマンドをセットする。すなわち、スケーラ制御LSI80aからサブCPU71に、単に受信確認を送信するのではなく、受信確認に設定項目を付加して送信する。それゆえ、本実施形態の処理手法では、サブCPU71が、スケーラ制御LSI80aから受信した受信確認コマンドがどの設定変更コマンドの受信確認コマンドであるかを正しく判断することができる。
[サブ制御送信処理]
次に、図136を参照して、スケーラ制御メインタスクのフローチャート(図133参照)中のS925で行うサブ制御送信処理について説明する。なお、図136は、本実施形態における、スケーラ制御LSI80aのサブ制御送信処理の手順を示すフローチャートである。
まず、スケーラ制御LSI80aは、サブCPU71からの受信データがあるか否かを判別する(S951)。
S951において、スケーラ制御LSI80aが、サブCPU71からの受信データがないと判別したとき(S951がNo判定の場合)、スケーラ制御LSI80aは、サブ制御送信処理を終了し、処理をスケーラ制御メインタスク(図133参照)のS926に移す。一方、S951において、スケーラ制御LSI80aが、サブCPU71からの受信データがあると判別したとき(S951がYes判定の場合)、スケーラ制御LSI80aは、サブ制御送信バッファに送信データがあるか否か(セットされているか否か)を判別する(S952)。
S952において、スケーラ制御LSI80aが、サブ制御送信バッファに送信データがあると判別したとき(S952がYes判定の場合)、スケーラ制御LSI80aは、後述のS957の処理を行う。一方、S952において、スケーラ制御LSI80aが、サブ制御送信バッファに送信データがないと判別したとき(S952がNo判定の場合)、スケーラ制御LSI80aは、起動済みフラグがオン状態であるか否かを判別する(S953)。なお、起動済みフラグは、リセット割込(電源投入又はカウンタリセット)時に行われる初期設定処理においてRAMをクリアすることによりオフされる。
S953において、スケーラ制御LSI80aが、起動済みフラグがオン状態でないと判別したとき(S953がNo判定の場合)、スケーラ制御LSI80aは、サブ制御送信バッファに、「起動パラメータ要求」コマンド(図20参照)をセットする(S954)。次いで、スケーラ制御LSI80aは、起動済みフラグをオンする(S955)。そして、S955の処理後、スケーラ制御LSI80aは、後述のS957の処理を行う。
一方、S953において、スケーラ制御LSI80aが、起動済みフラグがオン状態であると判別したとき(S953がYes判定の場合)、スケーラ制御LSI80aは、サブ制御送信バッファに、「アンサコマンド」をセットする(S956)。
S955或いはS956の処理後、又は、S952がYes判定の場合、スケーラ制御LSI80aは、サブCPU71に送信データを送信する(S957)。具体的には、スケーラ制御LSI80aは、サブ制御送信バッファにセットされたコマンドデータを、シリアル通信中継基板79を介してサブCPU71に送信する。そして、S957の処理後、スケーラ制御LSI80aは、サブ制御送信処理を終了し、処理をスケーラ制御メインタスク(図133参照)のS926に移す。
[作動状態判定処理]
次に、図137を参照して、スケーラ制御メインタスクのフローチャート(図133参照)中のS926で行う作動状態判定処理について説明する。図137は、本実施形態における、スケーラ制御LSI80aの作動状態判定処理の手順を示すフローチャートである。なお、本実施形態では、以下に説明する作動状態判定処理において、スケーラ制御LSI80aは、自己診断により異常発生の有無を検知する処理、及び、解像度変換LSI80bの設定状態を診断して異常発生の有無を検知する処理を行う。すなわち、本実施形態では、スケーラ制御LSI80aは、自己診断により異常発生の有無を検知する手段(第1異常検知手段)、及び、解像度変換LSI80bの状態を診断して異常発生の有無を検知する手段(第2異常検知手段)を含む。
まず、スケーラ制御LSI80aは、判定間隔カウンタを更新(「1」を加算)する(S961)。次いで、スケーラ制御LSI80aは、判定間隔が500msec以上であるか否かを判別する(S962)。
S962において、スケーラ制御LSI80aが、判定間隔が500msec以上でないと判別したとき(S962がNo判定の場合)、スケーラ制御LSI80aは、後述のS969の処理を行う。
一方、S962において、スケーラ制御LSI80aが、判定間隔が500msec以上であると判別したとき(S962がYes判定の場合)、スケーラ制御LSI80aは、判定間隔カウンタを「0」にクリアする(S963)。次いで、スケーラ制御LSI80aは、ROMの自己診断領域のデータをレジスタに読み込む(S964)。次いで、スケーラ制御LSI80aは、そのレジスタに読み込まれたデータをRAMの自己診断領域に書き込む(S965)。
S965の処理後、スケーラ制御LSI80aは、S964でレジスタに読み込まれたデータの値(読込み値)とROMの自己診断領域の値とが同じであるか否かを判別する(S966)。
S966において、スケーラ制御LSI80aが、S964でレジスタに読み込まれたデータの値(読込み値)とROMの自己診断領域の値とが同じでないと判別したとき(S966がNo判定の場合)、スケーラ制御LSI80aは、後述のS968の処理を行う。一方、S966において、スケーラ制御LSI80aが、S964でレジスタに読み込まれたデータの値(読込み値)とROMの自己診断領域の値とが同じであると判別したとき(S966がYes判定の場合)、スケーラ制御LSI80aは、S964でレジスタに読み込まれたデータの値(読込み値)とRAMの自己診断領域の値とが同じであるか否かを判別する(S967)。
S967において、スケーラ制御LSI80aが、S964でレジスタに読み込まれたデータの値(読込み値)とRAMの自己診断領域の値とが同じであると判別したとき(S967がYes判定の場合)、スケーラ制御LSI80aは、後述のS969の処理を行う。一方、S967において、スケーラ制御LSI80aが、S964でレジスタに読み込まれたデータの値(読込み値)とRAMの自己診断領域の値とが同じでないと判別したとき(S967がNo判定の場合)、スケーラ制御LSI80aは、後述のS968の処理を行う。
S966又はS967がNo判定の場合、スケーラ制御LSI80aは、サブ制御送信バッファに、リセット通知(1)コマンド(リセット要求データ)をセットする(S968)。そして、S968の処理後、スケーラ制御LSI80aは、後述のS971の処理を行う。
ここで、再度、S962及びS967の処理に戻って、S962がNo判定の場合、又は、S967がYes判定の場合、スケーラ制御LSI80aは、解像度変換LSI設定異常フラグがオン状態であるか否かを判別する(S969)。
S969において、スケーラ制御LSI80aが、解像度変換LSI設定異常フラグがオン状態であると判別したとき(S969がYes判定の場合)、スケーラ制御LSI80aは、サブ制御送信バッファに、リセット通知(2)コマンド(リセット要求データ)をセットする(S970)。そして、S970又はS968の処理後、スケーラ制御LSI80aは、サブ制御送信バッファにセットされた送信データ(「リセット通知」コマンドデータ)を、シリアル通信中継基板79を介してサブCPU71に送信する(S971)。この処理後、サブCPU71により、スケーラ制御LSI80a及び解像度変換LSI80bがリセットされる。
一方、S969において、スケーラ制御LSI80aが、解像度変換LSI設定異常フラグがオン状態でないと判別したとき(S969がNo判定の場合)、スケーラ制御LSI80aは、WDTのカウンタレジスタをクリアする(S972)。WDTは、クリアされた後、自動的にカウントを開始する。そして、S972の処理後、スケーラ制御LSI80aは、作動状態判定処理を終了し、処理をスケーラ制御メインタスク(図133参照)のS927に移す。
上述のように、本実施形態のスケーラ制御LSI80aの作動状態判定処理では、スケーラ制御LSI80aが、500msecの一定間隔でROM値とレジスタ値とを比較し、両者の値が相違する場合には、スケーラ制御LSI80a及び解像度変換LSI80bがリセットされる。これにより、エラーが生じた場合、スケーラ制御基板80は、リセットにより自己回復することができる。
なお、このリセットは、サブデバイスエラー検出手段71hによって検出され、「リセット発生」に対応するエラーコード「SCL RST」(図15参照)がエラー情報履歴格納領域73eに登録されるので、エラー発生の日時等を後に確認することができる。
<タッチセンサ制御LSIによる各種処理の説明>
次に、図138〜図141を参照して、タッチセンサ中継基板81のタッチセンサ制御LSI81aが、プログラムを用いて実行する各種処理(タスク)の内容について説明する。なお、以下に説明するタッチセンサ制御LSI81aの各種処理において必要となる、各種制御フラグ、各種制御カウンタ、各種バッファ等はタッチセンサ制御LSI81aに内蔵された作業用のRAM(不図示)に設けられる。
[タッチセンサ中継メインタスク]
図138を参照しながら、タッチセンサ中継メインタスクについて説明する。図138は、本実施形態における、タッチセンサ中継メインタスクのフローチャートである。
まず、タッチセンサ制御LSI81aは、初期設定処理を行う(S981)。この処理では、タッチセンサ制御LSI81aは、例えば、タッチセンサ中継基板81内のタイマー、シリアルポート等の設定、作業用のRAMの初期化、タッチセンサモジュール82の解像度などの初期設定を行う。
次いで、タッチセンサ制御LSI81aは、10msecの周期設定を行う(S982)。この処理後、10msecからS982の処理までにかかった処理時間を差し引いた残りの時間、タッチセンサ制御LSI81aは待機する。例えば、S982の処理までの処理時間が1.5msecであるすると、残りの8.5msecが待機時間となる。ただし、受信割込処理は待機中も動作する。
次いで、タッチセンサ制御LSI81aは、サブ制御受信処理を行う(S983)。なお、タッチセンサ制御LSI81aによるサブ制御受信処理の詳細については、後述の図139を参照しながら後で説明する。次いで、タッチセンサ制御LSI81aは、タッチセンサモジュール入力処理を行う(S984)。なお、タッチセンサモジュール入力処理の詳細については、後述の図140を参照しながら後で説明する。
次いで、タッチセンサ制御LSI81aは、作動状態判定処理を行う(S985)。なお、タッチセンサ制御LSI81aによる作動状態判定処理の詳細については、後述の図141を参照しながら後で説明する。
次いで、タッチセンサ制御LSI81aは、10msecの周期期間のうち、残り時間を待機する(S986)。そして、S986の処理後、タッチセンサ制御LSI81aは、処理をS983に戻し、S983以降の処理を繰り返す。
[サブ制御受信処理]
次に、図139を参照して、タッチセンサ中継メインタスクのフローチャート(図138参照)中のS983で行うサブ制御受信処理について説明する。なお、図139は、本実施形態における、タッチセンサ制御LSI81aのサブ制御受信処理の手順を示すフローチャートである。
まず、タッチセンサ制御LSI81aは、受信データがあるか否かを判別する(S991)。
S991において、タッチセンサ制御LSI81aが、受信データがないと判別したとき(S991がNo判定の場合)、タッチセンサ制御LSI81aは、サブ制御受信処理を終了し、処理をタッチセンサ中継メインタスク(図138参照)のS984に移す。一方、S991において、タッチセンサ制御LSI81aが、受信データがあると判別したとき(S991がYes判定の場合)、タッチセンサ制御LSI81aは、受信データの送信先IDがタッチセンサ制御LSI81a(タッチセンサ中継基板81)であるか否かを判別する(S992)。
S992において、タッチセンサ制御LSI81aが、受信データの送信先IDがタッチセンサ制御LSI81aでないと判別したとき(S992がNo判定の場合)、タッチセンサ制御LSI81aは、サブ制御受信処理を終了し、処理をタッチセンサ中継メインタスク(図138参照)のS984に移す。
一方、S992において、タッチセンサ制御LSI81aが、受信データの送信先IDがタッチセンサ制御LSI81aであると判別したとき(S992がYes判定の場合)、タッチセンサ制御LSI81aは、サブ制御送信バッファに送信データがあるか否か(セットされているか否か)を判別する(S993)。
S993において、タッチセンサ制御LSI81aが、サブ制御送信バッファに送信データがあると判別したとき(S993がYes判定の場合)、タッチセンサ制御LSI81aは、後述のS995の処理を行う。一方、S993において、タッチセンサ制御LSI81aが、サブ制御送信バッファに送信データがないと判別したとき(S993がNo判定の場合)、タッチセンサ制御LSI81aは、サブ制御送信バッファに、「アンサコマンド」をセットする(S994)。
S994の処理後、又は、S993がYes判定の場合、タッチセンサ制御LSI81aは、サブ制御送信バッファにセットされた送信データを、シリアル通信中継基板79を介してサブCPU71に送信する(S995)。そして、S995の処理後、タッチセンサ制御LSI81aは、サブ制御送信処理を終了し、処理をタッチセンサ中継メインタスク(図138参照)のS984に移す。
[タッチセンサモジュール入力処理]
次に、図140を参照して、タッチセンサ中継メインタスクのフローチャート(図138参照)中のS984で行うタッチセンサモジュール入力処理について説明する。なお、図140は、本実施形態における、タッチセンサモジュール入力処理の手順を示すフローチャートである。
まず、タッチセンサ制御LSI81aは、タッチセンサモジュール82からその操作情報を取得する(S1001)。
次いで、タッチセンサ制御LSI81aは、タッチセンサモジュール82への操作入力があるか否かを判別する(S1002)。S1002において、タッチセンサ制御LSI81aが、タッチセンサモジュール82への操作入力がないと判別したとき(S1002がNo判定の場合)、タッチセンサ制御LSI81aは、タッチセンサモジュール入力処理を終了し、処理をタッチセンサ中継メインタスク(図138参照)のS985に移す。
一方、S1002において、タッチセンサ制御LSI81aが、タッチセンサモジュール82への操作入力があると判別したとき(S1002がYes判定の場合)、タッチセンサ制御LSI81aは、タッチセンサモジュール82から、操作種別を示すデータ、及び、操作位置を示すXY座標データを取得する(S1003)。次いで、タッチセンサ制御LSI81aは、操作種別が「タッチ操作」であるか否かを判別する(S1004)。
S1004において、タッチセンサ制御LSI81aが、操作種別が「タッチ操作」であると判別したとき(S1004がYes判定の場合)、タッチセンサ制御LSI81aは、サブ制御送信バッファに、タッチ操作のコマンドデータ、及び、XY座標データをセットする(S1005)。そして、S1005の処理後、タッチセンサ制御LSI81aは、タッチセンサモジュール入力処理を終了し、処理をタッチセンサ中継メインタスク(図138参照)のS985に移す。
一方、S1004において、タッチセンサ制御LSI81aが、操作種別が「タッチ操作」でないと判別したとき(S1004がNo判定の場合)、タッチセンサ制御LSI81aは、操作種別が「フリック操作」であるか否かを判別する(S1006)。
S1006において、タッチセンサ制御LSI81aが、操作種別が「フリック操作」であると判別したとき(S1006がYes判定の場合)、タッチセンサ制御LSI81aは、サブ制御送信バッファに、フリック操作のコマンドデータ、及び、XY座標データをセットする(S1007)。そして、S1007の処理後、タッチセンサ制御LSI81aは、タッチセンサモジュール入力処理を終了し、処理をタッチセンサ中継メインタスク(図138参照)のS985に移す。
一方、S1006において、タッチセンサ制御LSI81aが、操作種別が「フリック操作」でないと判別したとき(S1006がNo判定の場合)、タッチセンサ制御LSI81aは、操作種別が「ピンチ操作」であるか否かを判別する(S1008)。
S1008において、タッチセンサ制御LSI81aが、操作種別が「ピンチ操作」であると判別したとき(S1008がYes判定の場合)、タッチセンサ制御LSI81aは、サブ制御送信バッファに、ピンチ操作のコマンドデータ、及び、XY座標データをセットする(S1009)。そして、S1009の処理後、タッチセンサ制御LSI81aは、タッチセンサモジュール入力処理を終了し、処理をタッチセンサ中継メインタスク(図138参照)のS985に移す。
一方、S1008において、タッチセンサ制御LSI81aが、操作種別が「ピンチ操作」でないと判別したとき(S1008がNo判定の場合)、タッチセンサ制御LSI81aは、タッチセンサ入力異常フラグをオンする(S1010)。すなわち、何らかの原因(不正行為を含む)により、設定されていない操作種別のデータが入力された場合には、タッチセンサ入力異常フラグがオンされ、この処理によりリセット要求が行われる。そして、S1010の処理後、タッチセンサ制御LSI81aは、タッチセンサモジュール入力処理を終了し、処理をタッチセンサ中継メインタスク(図138参照)のS985に移す。
[作動状態判定処理]
次に、図141を参照して、タッチセンサ中継メインタスクのフローチャート(図138参照)中のS985で行う作動状態判定処理について説明する。図141は、本実施形態における、タッチセンサ制御LSI81aの作動状態判定処理の手順を示すフローチャートである。なお、本実施形態では、以下に説明する作動状態判定処理において、タッチセンサ制御LSI81aは、自己診断により異常発生の有無を検知する処理、及び、タッチセンサモジュール82の設定状態を診断して異常発生の有無を検知する処理を行う。すなわち、本実施形態では、タッチセンサ制御LSI81aは、自己診断により異常発生の有無を検知する手段(第1異常検知手段)、及び、タッチセンサモジュール82の状態を診断して異常発生の有無を検知する手段(第2異常検知手段)を含む。
まず、タッチセンサ制御LSI81aは、判定間隔カウンタを更新(「1」を加算)する(S1021)。次いで、タッチセンサ制御LSI81aは、判定間隔が500msec以上であるか否かを判別する(S1022)。
S1022において、タッチセンサ制御LSI81aが、判定間隔が500msec以上でないと判別したとき(S1022がNo判定の場合)、タッチセンサ制御LSI81aは、後述のS1029の処理を行う。
一方、S1022において、タッチセンサ制御LSI81aが、判定間隔が500msec以上であると判別したとき(S1022がYes判定の場合)、タッチセンサ制御LSI81aは、判定間隔カウンタを「0」にクリアする(S1023)。次いで、タッチセンサ制御LSI81aは、ROMの自己診断領域のデータをレジスタに読み込む(S1024)。次いで、タッチセンサ制御LSI81aは、そのレジスタに読み込まれたデータをRAMの自己診断領域に書き込む(S1025)。
S1025の処理後、タッチセンサ制御LSI81aは、S1024でレジスタに読み込まれたデータの値(読込み値)とROMの自己診断領域の値とが同じであるか否かを判別する(S1026)。
S1026において、タッチセンサ制御LSI81aが、S1024でレジスタに読み込まれたデータの値(読込み値)とROMの自己診断領域の値とが同じでないと判別したとき(S1026がNo判定の場合)、タッチセンサ制御LSI81aは、後述のS1028の処理を行う。一方、S1026において、タッチセンサ制御LSI81aが、S1024でレジスタに読み込まれたデータの値(読込み値)とROMの自己診断領域の値とが同じであると判別したとき(S1026がYes判定の場合)、タッチセンサ制御LSI81aは、S1024でレジスタに読み込まれたデータの値(読込み値)とRAMの自己診断領域の値とが同じであるか否かを判別する(S1027)。
S1027において、タッチセンサ制御LSI81aが、S1024でレジスタに読み込まれたデータの値(読込み値)とRAMの自己診断領域の値とが同じであると判別したとき(S1027がYes判定の場合)、タッチセンサ制御LSI81aは、後述のS1029の処理を行う。一方、S1027において、タッチセンサ制御LSI81aが、S1024でレジスタに読み込まれたデータの値(読込み値)とRAMの自己診断領域の値とが同じでないと判別したとき(S1027がNo判定の場合)、タッチセンサ制御LSI81aは、後述のS1028の処理を行う。
S1026又はS1027がNo判定の場合、タッチセンサ制御LSI81aは、サブ制御送信バッファに、リセット通知(1)コマンド(リセット要求データ)をセットする(S1028)。そして、S1028の処理後、タッチセンサ制御LSI81aは、後述のS1033の処理を行う。
ここで、再度、S1022及びS1027の処理に戻って、S1022がNo判定の場合、又は、S1027がYes判定の場合、タッチセンサ制御LSI81aは、現在のタッチセンサモジュール82の設定情報(設定状態に関する情報)を取得する(S1029)。次いで、タッチセンサ制御LSI81aは、取得した設定情報が初期設定値と同じであるか否かを判別する(S1030)。
S1030において、タッチセンサ制御LSI81aが、取得した設定情報が初期設定値と同じでないと判別したとき(S1030がNo判定の場合)、タッチセンサ制御LSI81aは、後述のS1032の処理を行う。一方、S1030において、タッチセンサ制御LSI81aが、取得した設定情報が初期設定値と同じであると判別したとき(S1030がYes判定の場合)、タッチセンサ制御LSI81aは、タッチセンサ異常フラグがオン状態であるか否かを判別する(S1031)。
S1031において、タッチセンサ制御LSI81aが、タッチセンサ異常フラグがオン状態であると判別したとき(S1031がYes判定の場合)、又は、S1030がNo判定の場合、タッチセンサ制御LSI81aは、サブ制御送信バッファに、リセット通知(2)コマンド(リセット要求データ)をセットする(S1032)。
そして、S1032又はS1028の処理後、タッチセンサ制御LSI81aは、サブ制御送信バッファにセットされた送信データ(「リセット通知」コマンドデータ)を、シリアル通信中継基板79を介してサブCPU71に送信する(S1033)。この処理後、サブCPU71により、タッチセンサ制御LSI81a及びタッチセンサモジュール82がリセットされる。
一方、S1031において、タッチセンサ制御LSI81aが、タッチセンサ異常フラグがオン状態でないと判別したとき(S1031がNo判定の場合)、タッチセンサ制御LSI81aは、WDTのカウンタレジスタをクリアする(S1034)。WDTは、クリアされた後、自動的にカウントを開始する。そして、S1034の処理後、タッチセンサ制御LSI81aは、作動状態判定処理を終了し、処理をタッチセンサ中継メインタスク(図138参照)のS986に移す。
上述のように、本実施形態のタッチセンサ中継基板81の作動状態判定処理では、タッチセンサ制御LSI81aは、自己診断による異常検知処理、及び、タッチセンサモジュールの設定情報(設定状態)の異常検知処理を行い、異常が検知された場合には、タッチセンサ制御LSI81a及びタッチセンサモジュール82がリセットされる。これにより、エラーが生じた場合、タッチセンサ中継基板81は、リセットにより自己回復することができる。
なお、このリセットは、サブデバイスエラー検出手段71hによって検出され、タッチセンサの「リセット発生」に対応するエラーコード「TS RST」(図15参照)がエラー情報履歴格納領域73eに登録されるので、エラー発生の日時等を後に確認することができる。
<カメラ制御LSIによる各種処理の説明>
次に、図142〜図146を参照して、カメラ中継基板83のカメラ制御LSI83aが、プログラムを用いて実行する各種処理(タスク)の内容について説明する。なお、以下に説明するカメラ制御LSI83aの各種処理において必要となる、各種制御フラグ、各種制御カウンタ、各種バッファ等はカメラ制御LSI83aに内蔵された作業用のRAM(不図示)に設けられる。
[カメラ中継メインタスク]
図142を参照しながら、カメラ中継メインタスクについて説明する。図142は、本実施形態における、カメラ中継メインタスクのフローチャートである。
まず、カメラ制御LSI83aは、初期設定処理を行う(S1041)。この処理では、カメラ制御LSI83aは、例えば、カメラ中継基板83内のタイマー、シリアルポート等の設定、作業用のRAMの初期化、カメラモジュール84の解像度などの初期設定を行う。
次いで、カメラ制御LSI83aは、10msecの周期設定を行う(S1042)。この処理後、10msecからS1042の処理までにかかった処理時間を差し引いた残りの時間、カメラ制御LSI83aは待機する。例えば、S1042の処理までの処理時間が1.5msecであるすると、残りの8.5msecが待機時間となる。ただし、受信割込処理は待機中も動作する。
次いで、カメラ制御LSI83aは、サブ制御受信処理を行う(S1043)。なお、カメラ制御LSI83aによるサブ制御受信処理の詳細については、後述の図143を参照しながら後で説明する。次いで、カメラ制御LSI83aは、カメラモジュール入力処理を行う(S1044)。なお、カメラモジュール入力処理の詳細については、後述の図144を参照しながら後で説明する。
次いで、カメラ制御LSI83aは、サブ制御送信処理を行う(S1045)。なお、カメラ制御LSI83aによるサブ制御送信処理の詳細については、後述の図145を参照しながら後で説明する。
次いで、カメラ制御LSI83aは、作動状態判定処理を行う(S1046)。なお、カメラ制御LSI83aによる作動状態判定処理の詳細については、後述の図146を参照しながら後で説明する。
次いで、カメラ制御LSI83aは、10msecの周期期間のうち、残り時間を待機する(S1047)。そして、S1047の処理後、カメラ制御LSI83aは、処理をS1043に戻し、S1043以降の処理を繰り返す。
[サブ制御受信処理]
次に、図143を参照して、カメラ中継メインタスクのフローチャート(図142参照)中のS1043で行うサブ制御受信処理について説明する。なお、図143は、本実施形態における、カメラ制御LSI83aのサブ制御受信処理の手順を示すフローチャートである。
まず、カメラ制御LSI83aは、受信データがあるか否かを判別する(S1051)。
S1051において、カメラ制御LSI83aが、受信データがないと判別したとき(S1051がNo判定の場合)、カメラ制御LSI83aは、サブ制御受信処理を終了し、処理をカメラ中継メインタスク(図142参照)のS1044に移す。一方、S1051において、カメラ制御LSI83aが、受信データがあると判別したとき(S1051がYes判定の場合)、カメラ制御LSI83aは、受信データの送信先IDがカメラ制御LSI83a(カメラ中継基板83)であるか否かを判別する(S1052)。
S1052において、カメラ制御LSI83aが、受信データの送信先IDがカメラ制御LSI83aでないと判別したとき(S1052がNo判定の場合)、カメラ制御LSI83aは、サブ制御受信処理を終了し、処理をカメラ中継メインタスク(図142参照)のS1044に移す。一方、S1052において、カメラ制御LSI83aが、受信データの送信先IDがカメラ制御LSI83aであると判別したとき(S1052がYes判定の場合)、カメラ制御LSI83aは、受信CMD(コマンドデータ)がカメラモジュール84の「起動要求」コマンドデータ(図20参照)であるか否かを判別する(S1053)。
S1053において、カメラ制御LSI83aが、受信CMDが「起動要求」コマンドデータであると判別したとき(S1053がYes判定の場合)、カメラ制御LSI83aは、カメラモジュール84に起動をセットする(S1054)。これにより、カメラモジュール84が起動される。そして、S1054の処理後、カメラ制御LSI83aは、サブ制御受信処理を終了し、処理をカメラ中継メインタスク(図142参照)のS1044に移す。
一方、S1053において、カメラ制御LSI83aが、受信CMDが「起動要求」コマンドデータでないと判別したとき(S1053がNo判定の場合)、カメラ制御LSI83aは、受信CMDがカメラモジュール84の「読取モード設定」コマンドデータ(図20参照)であるか否かを判別する(S1055)。
S1055において、カメラ制御LSI83aが、受信CMDが「読取モード設定」コマンドデータであると判別したとき(S1055がYes判定の場合)、カメラ制御LSI83aは、カメラモジュール84に読取モードをセットする(S1056)。そして、S1056の処理後、カメラ制御LSI83aは、サブ制御受信処理を終了し、処理をカメラ中継メインタスク(図142参照)のS1044に移す。
一方、S1055において、カメラ制御LSI83aが、受信CMDが「読取モード設定」コマンドデータでないと判別したとき(S1055がNo判定の場合)、カメラ制御LSI83aは、受信CMDがカメラモジュール84の「停止要求」コマンドデータ(図20参照)であるか否かを判別する(S1057)。
S1057において、カメラ制御LSI83aが、受信CMDが「停止要求」コマンドデータであると判別したとき(S1057がYes判定の場合)、カメラ制御LSI83aは、カメラモジュール84に動作停止をセットする(S1058)。これにより、カメラモジュール84の動作が停止される。そして、S1058の処理後、カメラ制御LSI83aは、サブ制御受信処理を終了し、処理をカメラ中継メインタスク(図142参照)のS1044に移す。
一方、S1057において、カメラ制御LSI83aが、受信CMDが「停止要求」コマンドデータでないと判別したとき(S1057がNo判定の場合)、カメラ制御LSI83aは、受信CMDがカメラモジュール84の「読取開始要求」コマンドデータ(図20参照)であるか否かを判別する(S1059)。
S1059において、カメラ制御LSI83aが、受信CMDが「読取開始要求」コマンドデータでないと判別したとき(S1059がNo判定の場合)、カメラ制御LSI83aは、サブ制御受信処理を終了し、処理をカメラ中継メインタスク(図142参照)のS1044に移す。
一方、S1059において、カメラ制御LSI83aが、受信CMDが「読取開始要求」コマンドデータであると判別したとき(S1059がYes判定の場合)、カメラ制御LSI83aは、カメラモジュール84に読取開始をセットする(S1060)。次いで、カメラ制御LSI83aは、読取開始フラグをオンする(S1061)。これにより、カメラモジュール84によるデータの読取動作が開始される。そして、S1061の処理後、カメラ制御LSI83aは、サブ制御受信処理を終了し、処理をカメラ中継メインタスク(図142参照)のS1044に移す。
[カメラモジュール入力処理]
次に、図144を参照して、カメラ中継メインタスクのフローチャート(図142参照)中のS1044で行うカメラモジュール入力処理について説明する。なお、図144は、本実施形態における、カメラモジュール入力処理の手順を示すフローチャートである。
まず、カメラ制御LSI83aは、読取開始フラグがオン状態であるか否かを判別する(S1071)。
S1071において、カメラ制御LSI83aが、読取開始フラグがオン状態でないと判別したとき(S1071がNo判定の場合)、カメラ制御LSI83aは、カメラモジュール入力処理を終了し、処理をカメラ中継メインタスク(図142参照)のS1045に移す。一方、S1071において、カメラ制御LSI83aが、読取開始フラグがオン状態であると判別したとき(S1071がYes判定の場合)、カメラ制御LSI83aは、カメラモジュール84から状態情報を読み込む(S1072)。
次いで、カメラ制御LSI83aは、状態情報が「読取完了」の情報であるか否かを判別する(S1073)。
S1073において、カメラ制御LSI83aが、状態情報が「読取完了」の情報でないと判別したとき(S1073がNo判定の場合)、カメラ制御LSI83aは、カメラモジュール入力処理を終了し、処理をカメラ中継メインタスク(図142参照)のS1045に移す。一方、S1073において、カメラ制御LSI83aが、状態情報が「読取完了」の情報であると判別したとき(S1073がYes判定の場合)、カメラ制御LSI83aは、カメラモジュール84から読取データを読み込み、該読取データをサブ制御送信バッファにセットする(S1074)。なお、ここで読み込まれる読取データは、読取完了状態において、カメラモジュール84により読み取られ且つエンコードされたデータである。
次いで、カメラ制御LSI83aは、カメラモジュール84に読取終了をセットする(S1075)。次いで、カメラ制御LSI83aは、読取開始フラグをオフする(S1076)。そして、S1076の処理後、カメラ制御LSI83aは、カメラモジュール入力処理を終了し、処理をカメラ中継メインタスク(図142参照)のS1045に移す。
[サブ制御送信処理]
次に、図145を参照して、カメラ中継メインタスクのフローチャート(図142参照)中のS1045で行うサブ制御送信処理について説明する。なお、図145は、本実施形態における、カメラ制御LSI83aのサブ制御送信処理の手順を示すフローチャートである。
まず、カメラ制御LSI83aは、サブCPU71からの受信データがあるか否かを判別する(S1081)。
S1081において、カメラ制御LSI83aが、サブCPU71からの受信データがないと判別したとき(S1081がNo判定の場合)、カメラ制御LSI83aは、サブ制御送信処理を終了し、処理をカメラ中継メインタスク(図142参照)のS1046に移す。一方、S1081において、カメラ制御LSI83aが、サブCPU71からの受信データがあると判別したとき(S1081がYes判定の場合)、カメラ制御LSI83aは、サブ制御送信バッファに送信データがあるか否か(セットされているか否か)を判別する(S1082)。
S1082において、カメラ制御LSI83aが、サブ制御送信バッファに送信データがあると判別したとき(S1082がYes判定の場合)、カメラ制御LSI83aは、後述のS1084の処理を行う。一方、S1082において、カメラ制御LSI83aが、サブ制御送信バッファに送信データがないと判別したとき(S1082がNo判定の場合)、カメラ制御LSI83aは、サブ制御送信バッファに、「アンサコマンド」をセットする(S1083)。
S1083の処理後、又は、S1082がYes判定の場合、カメラ制御LSI83aは、サブ制御送信バッファにセットされた送信データを、シリアル通信中継基板79を介してサブCPU71に送信する(S1084)。そして、S1084の処理後、カメラ制御LSI83aは、サブ制御送信処理を終了し、処理をカメラ中継メインタスク(図142参照)のS1046に移す。
[作動状態判定処理]
次に、図146を参照して、カメラ中継メインタスクのフローチャート(図142参照)中のS1046で行う作動状態判定処理について説明する。図146は、本実施形態における、カメラ制御LSI83aの作動状態判定処理の手順を示すフローチャートである。なお、本実施形態では、以下に説明する作動状態判定処理において、カメラ制御LSI83aは、自己診断により異常発生の有無を検知する処理、及び、カメラモジュール84の設定状態を診断して異常発生の有無を検知する処理を行う。すなわち、本実施形態では、カメラ制御LSI83aは、自己診断により異常発生の有無を検知する手段(第1異常検知手段)、及び、カメラモジュール84の状態を診断して異常発生の有無を検知する手段(第2異常検知手段)を含む。
まず、カメラ制御LSI83aは、判定間隔カウンタを更新(「1」を加算)する(S1091)。次いで、カメラ制御LSI83aは、判定間隔が500msec以上であるか否かを判別する(S1092)。
S1092において、カメラ制御LSI83aが、判定間隔が500msec以上でないと判別したとき(S1092がNo判定の場合)、カメラ制御LSI83aは、後述のS1099の処理を行う。
一方、S1092において、カメラ制御LSI83aが、判定間隔が500msec以上であると判別したとき(S1092がYes判定の場合)、カメラ制御LSI83aは、判定間隔カウンタを「0」にクリアする(S1093)。次いで、カメラ制御LSI83aは、ROMの自己診断領域のデータをレジスタに読み込む(S1094)。次いで、カメラ制御LSI83aは、そのレジスタに読み込まれたデータをRAMの自己診断領域に書き込む(S1095)。
S1095の処理後、カメラ制御LSI83aは、S1094でレジスタに読み込まれたデータの値(読込み値)とROMの自己診断領域の値とが同じであるか否かを判別する(S1096)。
S1096において、カメラ制御LSI83aが、S1094でレジスタに読み込まれたデータの値(読込み値)とROMの自己診断領域の値とが同じでないと判別したとき(S1096がNo判定の場合)、カメラ制御LSI83aは、後述のS1098の処理を行う。一方、S1096において、カメラ制御LSI83aが、S1094でレジスタに読み込まれたデータの値(読込み値)とROMの自己診断領域の値とが同じであると判別したとき(S1096がYes判定の場合)、カメラ制御LSI83aは、S1094でレジスタに読み込まれたデータの値(読込み値)とRAMの自己診断領域の値とが同じであるか否かを判別する(S1097)。
S1097において、カメラ制御LSI83aが、S1094でレジスタに読み込まれたデータの値(読込み値)とRAMの自己診断領域の値とが同じであると判別したとき(S1097がYes判定の場合)、カメラ制御LSI83aは、後述のS1099の処理を行う。一方、S1097において、カメラ制御LSI83aが、S1094でレジスタに読み込まれたデータの値(読込み値)とRAMの自己診断領域の値とが同じでないと判別したとき(S1097がNo判定の場合)、カメラ制御LSI83aは、後述のS1098の処理を行う。
S1096又はS1097がNo判定の場合、カメラ制御LSI83aは、サブ制御送信バッファに、リセット通知(1)コマンド(リセット要求データ)をセットする(S1098)。そして、S1098の処理後、カメラ制御LSI83aは、後述のS1102の処理を行う。
ここで、再度、S1092及びS1097の処理に戻って、S1092がNo判定の場合、又は、S1097がYes判定の場合、カメラ制御LSI83aは、現在のカメラモジュール84の設定情報(設定状態に関する情報)を取得する(S1099)。次いで、カメラ制御LSI83aは、取得した設定情報が設定値と同じであるか否かを判別する(S1100)。
S1100において、カメラ制御LSI83aが、取得した設定情報が設定値と同じでないと判別したとき(S1100がNo判定の場合)、カメラ制御LSI83aは、サブ制御送信バッファに、リセット通知(2)コマンド(リセット要求データ)をセットする(S1101)。
そして、S1101又はS1098の処理後、カメラ制御LSI83aは、サブ制御送信バッファにセットされた送信データ(「リセット通知」コマンドデータ)を、シリアル通信中継基板79を介してサブCPU71に送信する(S1102)。この処理後、サブCPU71により、カメラ制御LSI83a及びカメラモジュール84がリセットされる。
一方、S1100において、カメラ制御LSI83aが、取得した設定情報が設定値と同じであると判別したとき(S1100がYes判定の場合)、カメラ制御LSI83aは、WDTのカウンタレジスタをクリアする(S1103)。WDTは、クリアされた後、自動的にカウントを開始する。そして、S1103の処理後、カメラ制御LSI83aは、作動状態判定処理を終了し、処理をカメラ中継メインタスク(図142参照)のS1047に移す。
上述のように、本実施形態のカメラ中継基板83の作動状態判定処理では、カメラ制御LSI83aは、自己診断による異常検知処理、及び、カメラモジュール84の設定情報(設定状態)の異常検知処理を行い、異常が検知された場合には、カメラ制御LSI83a及びカメラモジュール84がリセットされる。これにより、エラーが生じた場合、カメラ中継基板83は、リセットにより自己回復することができる。
なお、このリセットは、サブデバイスエラー検出手段71hによって検出され、カメラの「リセット発生」に対応するエラーコード「CCD RST」(図15参照)がエラー情報履歴格納領域73eに登録されるので、エラー発生の日時等を後に確認することができる。
<各種効果>
ここで、上述した本実施形態のパチスロ1で得られる各種効果について記載する。
上述のように、本実施形態のパチスロ1では、サブCPU71は、各サブデバイスの制御(中継)基板に対して所定周期でポーリングを行い、各サブデバイスの作動状況を個別に管理する。すなわち、本実施形態では、サブCPU71及び各サブデバイス間の通信動作の主従関係において、サブCPU71を「主」とし、各サブデバイスを「従」とする。
それゆえ、本実施形態では、従来のように、サブCPU71が「従」でありかつ各サブデバイスが「主」である通信形態において発生し得る各サブデバイスからのエラー通知のバッティングの問題を解消することができる。さらに、本実施形態では、サブCPU71は、サブデバイスに何らかの異常が発生した場合には、その異常を確実に検出することができるとともに、サブデバイスをリセットする必要がある場合には、迅速に、サブデバイスをリセットすることができる。
また、本実施形態のパチスロ1では、ドアキー2に対して特定の操作(簡易操作:ドアキー2を左回転方向へ回転させて、パチスロ1のエラーをリセットさせた状態を一定時間保持する)を行うことによりエラー情報履歴の確認画面を液晶表示装置10の表示画面に表示させることができる。すなわち、本実施形態では、遊技店の係員はパチスロ1の設定キーを操作することなくエラー情報の履歴を確認することが可能になる。それゆえ、本実施形態では、係員は営業時間中であってもエラー情報履歴の確認画面を表示させることができ、エラー発生の原因特定をより効率よく促進することができる。
さらに、本実施形態のパチスロ1では、係員はドアキー2に対する簡易操作により、エラー情報履歴を液晶表示装置10の表示画面に表示することができる。それゆえ、ドアキー2を保有している係員であれば容易にエラー情報履歴を表示することができる。さらに、通常はドアキー2を保有する係員は設定キーを保有する係員よりも多いので、本実施形態では、エラー情報履歴の確認操作の利便性を向上させることができる。
また、本実施形態のパチスロ1では、上述のように、サブCPU71は、通信エラーの発生が検出された場合に、通信異常が発生したことと、その発生時刻と、その解除時刻とをエラー情報としてサブRAM73に逐次記憶する。さらに、サブCPU71は、その記憶した通信エラーの情報からエラー情報履歴を作成し、ドアキー2の操作により情報開示要求があった場合に、エラー情報履歴を液晶表示装置10の表示画面に表示する(図24参照)。それゆえ、本実施形態では、通信エラー報知の不正な解除を確認できるとともに、通信エラー報知の発生時刻や解除時刻を後から確認することができる。
また、本実施形態では、サブCPU71は、手順検出手段71bにより通常の遊技では起こりえない操作手順、すなわち、異常な操作手順で遊技が進行したことが検出された場合には、そのような異常な操作手順が発生したことと、正常な操作手順のうちで取りこぼした手順とをエラー情報としてサブRAM73に逐次記憶する。さらに、サブCPU71は、その記憶した異常な操作手順のエラー情報からエラー情報履歴を作成し、ドアキー2の操作により情報開示要求があった場合に、エラー情報履歴を液晶表示装置10の表示画面に表示する(図24のエラー番号「10」参照)。
それゆえ、従来のように異常な操作手順が発生すると単にデモ画面に戻ってしまう場合に比べて、本実施形態では、異常な操作手順が発生したこと、取りこぼした手順、発生件数、連続発生の有無等を確認できるので、これらのエラー情報をゴト行為の発生の判断材料の一つにすることができる。
また、本実施形態のパチスロ1では、サブCPU71は、データ破壊検出手段71cによりサブRAM73のデータ破壊が検出された場合には、データ破壊が発生したことをエラー情報としてサブRAM73に逐次記憶する(図104中のS478参照)。さらに、サブCPU71は、ドアキー2の操作により情報開示要求があった場合に、エラー情報履歴格納領域73eからデータ破壊に関するエラー情報履歴を読み出して液晶表示装置10の表示画面に表示する。
それゆえ、本実施形態では、遊技中のサブRAM73のデータ破壊を検出できるので、データ破壊に対して直ちにエラー報知をすることができ、ゴトの発生を抑制することができる。この際のエラー報知としては、例えば、図22に示すように、致命的なエラーとして、液晶表示装置10の表示画面のほぼ全面に渡って、RAMデータに異常が生じたため遊技を続行できない旨を示す。これにより、ゴト行為によるRAM破壊行為を抑制することができる。
また、上述のように、本実施形態では、副制御回路70と各サブデバイスとの間で通信エラー(通信断絶等)が生じた場合や、各サブデバイスにエラー(異常)が発生した場合に、それらのエラー発生をサブCPU71で監視することができるとともに、エラーの発生日時及び内容をエラー情報履歴の確認画面で確認することができる。それゆえ、本実施形態のエラー監視技術は、パチスロ1の管理方法として有用である。
さらに、本実施形態では、サブCPU71により通信エラーの発生が検出された場合に限り、通信エラーに関する通信エラー情報を二次元コード300に変換する。それゆえ、必要以上に二次元コードを作成しないので、制御を簡素化することができる。また、本実施形態において、エラー情報履歴の確認画面に表示される二次元コード300は、パチスロ1の外部に設けられた解析用の情報処理装置に送信される。それゆえ、本実施形態では、外部の情報処理装置でエラーの原因を解析して特定することが可能になり、その解析結果をパチスロ1のその後の改良等に利用することができる。
<変形例>
上記実施形態では、遊技機としてパチスロを例に挙げて説明したが、本発明はこれに限定されず、「パチンコ」と呼ばれる遊技機やスロットマシンにも本発明は適用可能である。ここでは、パチンコの構成例を説明する。
[パチンコ遊技機の構成]
まず、図147〜図150を参照しながら、パチンコの一構成例について説明する。なお、図147は、パチンコの外観構成を示す斜視図である。図148は、パチンコの外観正面図である。図149は、パチンコの構成を示す分解斜視図である。また、図150は、パチンコの遊技盤の正面図である。
パチンコ210は、図147〜図149に示すように、ガラスドア211、木枠212、ベースドア213、遊技盤214、皿ユニット220、画像を表示する液晶表示装置232、遊技球を発射する発射装置330、払出ユニット700、基板ユニット750等で構成される。
ガラスドア211は、ベースドア213に対して開閉自在になるように取り付けられる。また、このガラスドア211の中央には、開口211aが形成され、その開口211aには、光透過性を有する保護ガラス219が取り付けられる。保護ガラス219は、ガラスドア211が閉鎖された状態において、その裏面が遊技盤214の前面と対向するように配置される。
皿ユニット220は、上皿221及び下皿222を一体化したユニット体であり、ベースドア213においてガラスドア211の下部に取り付けられる。また、下皿222は、上皿221の下方に配置される。上皿221及び下皿222には、遊技球の貸し出し、遊技球の払い出し(賞球)を行うための払出口221a、222aがそれぞれ形成される。そして、所定の払出条件が成立した場合には、遊技球が払出口221a、222aを介してそれぞれ上皿221及び下皿222に排出され、特に、上皿221には、後述の遊技領域215に発射させるための遊技球が貯留される。
発射装置330は、パチンコ210の正面側(遊技者側)から見て、ベースドア213の右下部の位置に取り付けられる。発射装置330は、遊技者によって操作可能な発射ハンドル226と、皿ユニット220の右下部のスペースに適合するパネル体227とを備える。発射ハンドル226は、パネル体227の正面側に設けられる。パネル体227の裏面側には遊技球を発射するための駆動装置が設けられる。
ベースドア213には、皿ユニット220及び発射装置330が取り付けられ、パネル体227は、皿ユニット220の右下部と一体化して設けられる。そして、遊技者によって発射ハンドル226が操作されることによりパチンコ遊技が進められる。
遊技盤214は、保護ガラス219の裏面に位置するように、かつ、ベースドア213の前面側に位置するように配置される。また、遊技盤214の裏面側には、スペーサー231、液晶表示装置232などが配置される。さらに、ベースドア213の裏面側には、払出ユニット700及び基板ユニット750が配置される。また、下皿222の下部には、スピーカ246が配置される。
遊技盤214は、その全部が光透過性を有する略板状の樹脂材料によって形成される。この光透過性を有する樹脂材料としては、例えば、アクリル樹脂、ポリカーボネート樹脂、メタクリル樹脂など各種樹脂材料が該当する。また、遊技盤214は、発射装置330により発射された遊技球が転動流下可能な遊技領域215を有し、遊技領域215は、遊技盤の前面側に設けられる。遊技領域215は、ガイドレール230(具体的には後述の図150に示す外レール230a)に囲まれた領域であり、遊技球が転動可能な領域である。また、遊技盤214の遊技領域215には、複数の遊技釘218が遊技盤214に打ちこまれて設けられる。なお、図150に示す遊技盤214の構成は、遊技球が転動可能な遊技領域を備える遊技盤の一構成例であり、これに限定されない。
液晶表示装置232は、遊技盤214の裏面側(背面側)に配置される。すなわち、液晶表示装置232は、光透過性を有する材料で形成された遊技盤214の背後に配置される。この液晶表示装置232は、遊技に関する画像の表示を可能とする表示領域232aを有する。この表示領域232aは、遊技盤214の裏面の全部又は一部と重なるように配置される。
言い換えると、液晶表示装置232の表示領域232aは、少なくとも、遊技盤214の遊技領域215の全部又は一部と重なるように遊技盤214の裏面側に配置される。具体的には、液晶表示装置232は、その表示領域232aが遊技領域215の全部又は一部、及び、遊技領域外域216の全部又は一部と重なるように遊技盤214の裏面側に配置される。なお、液晶表示装置232の表示領域232aには、演出用の識別図柄、演出画像、装飾用の装飾画像などの各種の画像が表示される。
スペーサー231は、遊技盤214の後方(背面側)と液晶表示装置232の前方(前面側)との間に配置され、遊技盤214上を転動した遊技球の流路となる空間を画成する。また、スペーサー231の下部には、LEDユニット253(図150参照)が設けられる。スペーサー231は、光透過性を有する材料で形成される。なお、ここで示すパチンコ210では、スペーサー231を、光透過性を有する材料で形成する例を説明するが、例えば、スペーサー231の一部が光透過性を有する材料で形成されていてもよい。また、スペーサー231が光透過性を有さない材料で形成されていてもよい。
発射ハンドル226は回転自在であり、発射ハンドル226の裏側には、駆動装置である発射ソレノイド(不図示)が設けられる。また、発射ハンドル226の周縁部には、タッチセンサ(不図示)が設けられる。さらに、発射ハンドル226の内部には、発射ハンドル226の回転量に応じて抵抗値を変化させて、発射ソレノイド(不図示)に供給する電力を変化させる発射ボリューム(不図示)が設けられる。
発射ハンドル226の周縁部に設けられたタッチセンサ(不図示)に遊技者が接触したときには、遊技者により発射ハンドル226が握持されたと検知される。発射ハンドル226が遊技者によって握持され、かつ、前面側(遊技者側)から見て時計回り方向へ回転操作されたときには、その回転角度に応じて発射ボリューム(不図示)の抵抗値が変化し、この時の抵抗値に対応する電力が発射ソレノイド(不図示)に供給される。その結果、上皿221に貯留された遊技球が遊技盤214の遊技領域215に順次発射され、遊技が進められる。なお、発射停止ボタン(不図示)が押下された場合には、発射ハンドル226を握持しかつ回転させた状態であっても遊技球の発射が停止される。
遊技盤214内の左下方の領域には、3つの一般入賞口256a,256b,256cが形成された装飾部材が配置されており、この装飾部材のLEDユニット253と対向する部位は透明になっている。それゆえ、図150に示すように、遊技盤214の左下方の領域から、LEDユニット253が視認可能となる。LEDユニット253には、特別図柄表示装置、普通図柄表示装置233、第1特別図柄保留表示LED234a,234b、第2特別図柄保留表示LED234c,234d、普通図柄保留表示LED250a,250b等(後述の図151参照)が設けられる。
特別図柄表示装置は、この例では、16個のLEDによって構成される。これら16個のLEDは、8個のLEDからなる2つのグループに分かれており、詳細は後述するが、一方のグループは、第1始動口225への始動入賞を契機として変動表示を行うものであり、他方のグループは、第2始動口244への始動入賞を契機として変動表示を行うものである。なお、説明の便宜上、以下では、一方のLEDのグループを第1特別図柄表示装置235a(後述の図151参照)、他方のLEDのグループを第2特別図柄表示装置235b(後述の図151参照)と称する。
第1特別図柄表示装置235a及び第2特別図柄表示装置235bのLEDは、所定の特別図柄の変動表示開始条件の成立により、グループ単位で点灯・消灯を繰り返す変動表示を行う。そして、8つのLEDの点灯・消灯によって形成される表示パターンが、特別図柄(識別図柄ともいう)として停止表示される。この停止表示された特別図柄が、特定の停止表示態様の場合には、通常遊技状態から遊技者に有利な状態である当り遊技状態(特別遊技状態)に遊技状態が移行する。この当り遊技状態となった場合には、後述するように、シャッタ240(図150参照)が開放状態となるように制御され、大入賞口239(図150参照)が遊技球を受け入れ可能な状態となる。
言い換えれば、大入賞口239が開放される遊技が当り遊技であり、ここで示すパチンコ210では、大当り遊技及び小当り遊技の2種類の当り遊技が用意されている。また、特別図柄が大当り遊技状態に移行する停止表示態様になることが大当り、特別図柄が小当り遊技状態に移行する停止表示態様になることが小当りである。
大当りと小当りとの違いについては後述するが、大当りの場合には、多くの出球を獲得できる可能性が高くなり、小当りの場合には、出球獲得があまり期待できない。一方、特別図柄として、ハズレ図柄が停止表示された場合は、遊技状態が維持される。以上のように、特別図柄が変動表示された後、停止表示され、その結果によって遊技状態が移行又は維持されるゲームを「特別図柄ゲーム」という。
特別図柄表示装置の下方には、普通図柄表示装置233が設けられる。普通図柄表示装置233は、2つの表示用ランプで構成され、これら表示用ランプが交互に点灯・消灯を繰り返すことによって、普通図柄が変動表示される。そして、普通図柄が変動表示された後、停止表示され、その結果によって普通電動役物248(図150参照)の開放・閉鎖状態が異なるゲームを「普通図柄ゲーム」という。
普通図柄表示装置233の下方には、普通図柄保留表示LED250a,250bが設けられる。普通図柄保留表示LED250a,250bは、点灯、消灯又は点滅によって保留されている普通図柄の変動表示の実行回数(いわゆる「保留個数」、「普通図柄に関する保留個数」)を表示する。
具体的には、普通図柄の変動表示の実行が1回分保留されている場合には、普通図柄保留表示LED250aが点灯し、普通図柄保留表示LED250bが消灯する。普通図柄の変動表示の実行が2回分保留されている場合には、普通図柄保留表示LED250aが点灯し、普通図柄保留表示LED250bが点灯する。普通図柄の変動表示の実行が3回分保留されている場合には、普通図柄保留表示LED250aが点滅し、普通図柄保留表示LED250bが点灯する。普通図柄の変動表示の実行が4回分保留されている場合には、普通図柄保留表示LED250aが点滅し、普通図柄保留表示LED250bが点滅する。
普通図柄保留表示LED250a,250bの下方には、第1特別図柄保留表示LED234a,234b、第2特別図柄保留表示LED234c,234dが設けられる。これら第1特別図柄保留表示LED234a,234b及び第2特別図柄保留表示LED234c,234dは、点灯、消灯又は点滅によって保留されている特別図柄の変動表示の実行回数(いわゆる「保留個数」、「特別図柄に関する保留個数」)を表示する。第1特別図柄保留表示LED234a,234b及び第2特別図柄保留表示LED234c,234dによる特別図柄に関する保留個数の表示態様は、普通図柄保留表示LED250a,250bによる、普通図柄の保留個数の表示態様と同一である。
普通図柄表示装置233の側方には、大当り、小当りを問わずに点灯する当り報知LED(不図示)などが設けられる。なお、ここで示すパチンコ210では、ラウンド数が一定であるのでラウンド数表示用のLEDは備えない。それゆえ、主制御回路260(後述の図151参照)によって制御される当り報知LEDの表示上では、大当り、小当りの報知上の差異はない。また、突確大当りと小当りとの間においても、後述するようにその当りが発生したときのシャッタ240の開閉パターンも同一のものから選択され、また、副制御回路400(後述の図151参照)によって制御される液晶表示装置232等による演出も同一である。このため、突確大当りと小当りとの間においても、遊技者は見た目上のそれらを区別することはできない。
また、遊技盤214の裏面側(背面側)に配置された液晶表示装置232の表示領域232aでは、第1特別図柄表示装置235a及び第2特別図柄表示装置235b(後述の図151参照)により表示される特別図柄と関連する演出画像が表示される。
例えば、第1特別図柄表示装置235a及び第2特別図柄表示装置235bで表示される特別図柄の変動表示中には、特定の場合を除いて、液晶表示装置232の表示領域232aにおいて、数字からなる識別図柄(演出用の識別情報でもある)、例えば、"1〜8"のような数字が変動表示される。また、例えば、第1特別図柄表示装置235a及び第2特別図柄表示装置235bにおいて変動表示されていた特別図柄が停止表示されるとともに、液晶表示装置232の表示領域232aにおいても演出用としての識別図柄が停止表示される。
また、第1特別図柄表示装置235a及び第2特別図柄表示装置235bにおいて、変動、停止された特別図柄が特定の停止表示態様である場合には、当りであることを遊技者に把握させるための演出画像が液晶表示装置232の表示領域232aに表示される。具体的には、第1特別図柄表示装置235a及び第2特別図柄表示装置235bのいずれか一方において特別図柄が、例えば、多くの出球が獲得可能な大当りに対応する特定の表示態様で停止表示された場合には、液晶表示装置232の表示領域232aにおいて表示される演出用の識別図柄の組合せが特定の表示態様(例えば、複数の図柄列のそれぞれに同一の図柄が全て揃った状態で停止表示される態様)となり、さらに、大当り用の演出画像が液晶表示装置232の表示領域232aに表示される。なお、多くの出球を得ることが難しい当り(小当り、15回突確大当り、16回突確大当り)の場合は、当りであることを遊技者に把握させる演出画像を、液晶表示装置232の表示領域232aに表示しなくてもよい。
図150に示すように、パチンコ210の遊技盤214上には、ガイドレール230(230a及び230b)、ステージ255、第1始動口225、第2始動口244、通過ゲート254、シャッタ240、大入賞口239、一般入賞口256a,256b,256c,256d、普通電動役物248等の遊技部材が設けられる。
遊技盤214の上部には、略逆L字形状のステージ255が設けられる。また、遊技領域215を囲むように、ガイドレール230が設けられる。
ガイドレール230は、遊技領域215を区画(画定)する外レール230aと、その外レール230aの内側に配置された内レール230bとで構成される。発射装置330により発射された遊技球は、遊技盤214上に設けられたガイドレール230に案内されて、遊技盤214の上部に移動し、その後、複数の遊技釘218、遊技盤214上に設けられたステージ255などとの衝突により、その進行方向を変えながら遊技盤214の下方に向かって流下する。具体的には、遊技球の流下系統としては、ステージ255の左側を流下する系統(いわゆる、左打ち)と、発射ハンドル226を右側に最大に回転させて、ステージ255の右側に遊技球を打ち込み、ステージ255の右側を流下する系統(いわゆる、右打ち)がある。
また、ステージ255の下方でかつ遊技盤214の中央の下方には、第1始動口225が設けられる。また、ステージ255の右側上部には通過ゲート254が設けられ、通過ゲート254の下方に第2始動口244が設けられる。第2始動口244には普通電動役物248が設けられる。普通電動役物248は、遊技盤214の板面に対して前後方向に、突出、引き込みを行う舌状部材248aを備える。ここで示すパチンコ210では、舌状部材248aが突出している時に舌状部材248aの上に乗った遊技球が第2始動口244に入賞し、舌状部材248aが引き込んでいる場合には遊技球が第2始動口244に入賞しないような構成になっている。
そして、普通図柄表示装置233(後述の図151参照)において普通図柄が所定の図柄で停止表示されたときには、普通電動役物248における舌状部材248aが、所定の時間、引込状態から突出状態となり、第2始動口244に遊技球が入りやすくなる。なお、普通電動役物248は、舌状部材248aの突出、引き込みを行うものに限らず、例えば、一対の羽根部材が開放、閉鎖するもの(いわゆる、電動チューリップ)であってもよい。
また、ステージ255の右側に遊技球を打ち込んだ場合には、ステージ255の右側から第1始動口225に遊技球が転動する経路に、遊技釘218が打ち込まれており、この遊技釘218によって、遊技球がステージ255の右側から第1始動口225に入賞することが不可能になっている。
普通図柄の変動表示中において通過ゲート254を遊技球が通過した場合には、普通図柄保留表示LED250a,250bによる表示態様を切り換えて、変動表示中の普通図柄が停止表示されるまで、当該通過ゲート254への遊技球の通過に基づく普通図柄の変動表示の実行(開始)が保留される。その後、変動表示していた普通図柄が停止表示された場合には、保留されていた普通図柄の変動表示が開始される。
なお、普通図柄表示装置233において普通図柄として特定の図柄が停止表示された場合には、普通図柄抽籤が当籤であることを遊技者に把握させる演出画像が液晶表示装置232の表示領域232aに表示されるようにしてもよい。
また、第1始動口225の直下には、大入賞口239を開閉するシャッタ240が配置される。シャッタ240の直下の遊技領域215の最下部位には、アウト口257が形成される。遊技領域215の左側下部には、3つの一般入賞口256a,256b,256cが設けられる。また、遊技領域215の右側下部には、一般入賞口256dが設けられる。
また、上述した第1始動口225内には入賞領域が設けられており、この入賞領域には第1始動入賞口スイッチ316(後述の図151参照)が設けられる。第2始動口244内には入賞領域が設けられており、この入賞領域には第2始動入賞口スイッチ317(後述の図151参照)が設けられる。遊技球等の遊技媒体が、第1始動入賞口スイッチ316によって検出された場合、第1特別図柄表示装置235aによる特別図柄の変動表示が開始される。
また、特別図柄の変動表示中に第1始動口225へ遊技球が入球した場合には、変動表示中の特別図柄が停止表示されるまで、第1始動口225への遊技球の入球に基づく特別図柄の変動表示の実行(開始)が保留される。その後、変動表示していた特別図柄が停止表示された場合には、保留されていた特別図柄の変動表示が開始される。なお、以降の説明において、第1始動口225への遊技球の入球に基づいて第1特別図柄表示装置235aに変動表示される特別図柄を第1特別図柄と称する。
また、遊技球等の遊技媒体が、第2始動入賞口スイッチ317によって検出された場合、第2特別図柄表示装置235bによる特別図柄の変動表示が開始される。また、特別図柄の変動表示中に第2始動口244へ遊技球が入球した場合には、変動表示中の特別図柄が停止表示されるまで、第2始動口244への遊技球の入球に基づく特別図柄の変動表示の実行(開始)が保留される。その後、変動表示していた特別図柄が停止表示された場合には、保留されていた特別図柄の変動表示が開始される。
なお、以降の説明において、第2始動口244への遊技球の入球に基づいて第2特別図柄表示装置235bに変動表示される特別図柄を第2特別図柄と称する。
ここで示すパチンコ210では、第1特別図柄表示装置235aと第2特別図柄表示装置235bとが同時に特別図柄を変動することはない。また、ここで示すパチンコ210では、第2始動口244への始動入賞を優先に特別図柄の変動表示が行われる。なお、図150に示す第1始動口225、第2始動口244は、遊技盤214の遊技領域に設けられた、遊技球が通過可能な始動領域の一例である。
なお、ここで示すパチンコ210では、特別図柄の変動表示の実行が保留される回数には上限が設定されており、第1始動口225、第2始動口244への入球による特別図柄の変動表示の保留数の上限は、それぞれ4回に設定されている。具体的には、第1特別図柄の特別図柄ゲームが4回保留されている場合には、変動中の第1特別図柄に対応する特別図柄ゲームの情報が、メインRAM270(後述の図151参照)の第1特別図柄始動記憶領域(0)に始動記憶情報として記憶され、保留されている4回の特別図柄ゲームの情報は、第1特別図柄始動記憶領域(1)〜第1特別図柄始動記憶領域(4)に始動記憶情報として記憶される。
第2特別図柄の特別図柄ゲームについても同様に、第2特別図柄の特別図柄ゲームが4回保留されている場合には、変動中の第2特別図柄に対応する特別図柄ゲームの情報が、メインRAM270(後述の図151参照)の第2特別図柄始動記憶領域(0)に始動記憶情報として記憶され、保留されている4回の特別図柄ゲームの情報は、第2特別図柄始動記憶領域(1)〜第2特別図柄始動記憶領域(4)に始動記憶情報として記憶される。したがって、この例では、特別図柄ゲームが最大8回の保留することができる。
また、ここで示すパチンコ210における、その他の所定の特別図柄の変動表示開始条件としては、特別図柄が停止表示されていることである。すなわち、所定の特別図柄の変動表示開始条件が成立する毎に特別図柄の変動表示が開始される。
第1特別図柄表示装置235a及び第2特別図柄表示装置235bにおいて特別図柄が特定の停止表示態様となり、遊技状態が大当り遊技状態に移行された場合は、シャッタ240が、遊技球を受け入れやすい開放状態となるように駆動される。その結果、大入賞口239は、遊技球を受け入れやすい開放状態(第1の状態)となる。
一方、シャッタ240の背面側(後方)に設けられた大入賞口239には、カウントスイッチ304(後述の図151参照)を有する領域(不図示)があり、その領域を遊技球が所定個数(例えば7個)通過するか、又は、所定時間(例えば、約0.1秒又は約30秒)が経過するまでシャッタ240が開放状態になるように駆動される。そして、開放状態において大入賞口239への所定数の遊技球の入賞又は所定時間の経過のいずれかの条件が成立すると、シャッタ240は、遊技球を受け入れ難い閉鎖状態になるように駆動される。その結果、大入賞口239は、遊技球を受け入れ難い閉鎖状態となる(第2の状態)。
なお、一定時間において、大入賞口239が遊技球を受け入れやすい状態となっている遊技をラウンドゲームという。したがって、シャッタ240は、ラウンドゲーム時に開放し、ラウンドゲーム間では閉鎖することになる。また、ラウンドゲームの回数は、「1」ラウンド、「2」ラウンド等のラウンド数として計数される。例えば、ラウンドゲームの1回目を第1ラウンド、2回目を第2ラウンドと呼称する場合がある。なお、ここで示すパチンコ210では、1ラウンドにおいて、複数回シャッタ240を開閉して、開放状態となる時間を一定時間とする場合がある。
次いで、開放状態(第1の状態)から閉鎖状態(第2の状態)に駆動されたシャッタ240は、再度開放状態に駆動される。つまり、ラウンドゲームが終了した場合には、次のラウンドゲームへ継続して進むことができる。なお、第1ラウンドのラウンドゲームから、次のラウンドゲームに継続して進むことができないラウンドゲーム(最終のラウンドゲーム)が終了するまでの遊技を特別遊技又は大当り遊技という。なお、ここで示すパチンコ210では、全ての大当りにおけるラウンドゲームの回数は15ラウンドである。
また、ここで示すパチンコ210では、第1特別図柄表示装置235a及び第2特別図柄表示装置235bにおいて特別図柄が特定の停止表示態様となり、遊技状態が小当り遊技状態に移行した場合には、大入賞口239が15回又は16回遊技球を受け入れやすい開放状態となるように、シャッタ240が駆動される。なお、小当り遊技は、大入賞口239を15回又は16回開放する遊技であり、大当りのようにラウンドゲームという概念はない。ただし、上述した大入賞口239及びシャッタ240の構成は、遊技盤214上に設けられ、遊技球が入球容易な開放状態と、遊技球が入球困難な閉鎖状態との間で変化可能な可変部材の一構成例である。
また、第1始動口225、第2始動口244、一般入賞口256a〜256d、大入賞口239に遊技球が入賞したときには、それぞれの入賞口の種類に応じて予め設定された数の遊技球が上皿221又は下皿222に払い出される。
また、ここで示すパチンコ210では、大当り遊技終了後に、遊技状態が、普通図柄抽籤の当籤確率が高確率状態となり、普通電動役物248によるサポートによって特別図柄ゲームの保留球が貯まりやすくなる時短状態に移行する場合がある。ここで示すパチンコ210では、時短状態においては、通過ゲート254に遊技球を通過させることが、普通図柄抽籤を実行させる条件となるため、右打ちをしながら遊技が進行される。
また、右打ち状態で大当りが発生した場合には、そのまま右打ちを継続することにより、大入賞口239へ入賞させることが可能である。また、普通電動役物248によるサポートが受けられない場合には、左打ちをしながら遊技が進行される。
また、図148に示すように、上皿221の前面側には、3つの演出ボタン280a,280b,280cが設けられ、目押しゲーム、カードめくり、すごろく等のようなミニゲーム中に、それらの演出ボタンを押下することにより、液晶表示装置232における演出表示内容を変えることができる。
なお、ここで示すパチンコ210では、上述のように、演出手段として、液晶表示装置232を用いる例を説明したがこれに限定されず、演出手段として、例えば、プラズマディスプレイ、リアプロジェクションディスプレイ、CRTディスプレイ、ランプ、スピーカ、可動役物等の演出手段を用いてもよい。
[パチンコの回路構成]
次に、図151を参照しながら、図147〜図150に示したパチンコ210の回路構成について説明する。なお、図151は、パチンコ210の回路構成を示すブロック図である。
パチンコ210は、主に、遊技の制御を行う主制御回路260と、遊技の進行に応じた演出の制御を行う副制御回路400とにより構成される。
主制御回路260は、メインCPU266、メインROM268(読み出し専用メモリ)、及び、メインRAM270(読み書き可能メモリ)を備える。
メインCPU266は、メインROM268、メインRAM270等に接続されており、メインROM268に記憶されたプログラムに従って、各種処理を実行する機能を有する。
メインROM268には、メインCPU266によりパチンコ210の動作を制御するための各種プログラム、メイン処理等をメインCPU266に実行させるための各種プログラム、及び、各種処理に必要な各種テーブル等が記憶される。
メインRAM270は、メインCPU266の一時記憶領域であり、各種処理に必要な各種フラグや変数の値を記憶する機能を有する。なお、図151に示すパチンコ210では、メインCPU266の一時記憶領域としてメインRAM270を用いる例を示すが、メインCPU266の一時記憶領域としては、読み書き可能な記憶媒体であれば任意のものを用いることができる。
また、主制御回路260は、初期リセット回路264、I/Oポート271及びコマンド出力ポート272を備える。初期リセット回路264は、電源投入時においてリセット信号を生成する回路であり、メインCPU266に接続される。I/Oポート271は、各種デバイスからの入力信号をメインCPU266に送信するポートであり、かつ、メインCPU266からの出力信号を各種デバイスに送信するポートである。コマンド出力ポート272は、メインCPU266から出力されたコマンドを副制御回路400に送信するポートである。
また、主制御回路260は、バックアップコンデンサ274を備える。バックアップコンデンサ274は、電断時に、例えば、メインRAM270に対して速やかに電源を供給するために設けられる。これにより、電断時にも、メインRAM270に記憶されている各種データを保持することができる。
また、主制御回路260には、各種装置が接続される。
図151に示すパチンコ210では、主制御回路260から出力された信号に応じる各種装置として、特別図柄ゲームにおける特別図柄の可変表示を行う第1特別図柄表示装置235a及び第2特別図柄表示装置235b、特別図柄ゲームにおける特別図柄の可変表示の保留個数を表示する第1特別図柄保留表示LED234a,234b及び第2特別図柄保留表示LED234c,234d、普通図柄ゲームにおける識別図柄としての普通図柄の可変表示を行う普通図柄表示装置233、普通図柄ゲームにおける普通図柄の可変表示の保留個数を表示する普通図柄保留表示LED250a,250b、普通電動役物248の舌状部材248aを突出状態又は引込状態とする始動口ソレノイド318、シャッタ240を駆動させ、大入賞口239を開放状態又は閉鎖状態とする大入賞口ソレノイド320等が、主制御回路260に接続される。
また、主制御回路260には、ホール係員を呼び出す機能や当り回数を表示する機能などを有する呼出装置(不図示)や、ホール全体のパチンコ遊技機を管理するホールコンピュータにデータ送信するために用いる外部端子板510が接続される。
さらに、主制御回路260には、例えば、大入賞口239における領域を遊技球が通過した場合に、所定の検知信号を主制御回路260に供給するカウントスイッチ304、各一般入賞口256a〜256dを遊技球が通過した場合に、所定の検知信号を主制御回路260に供給する一般入賞口スイッチ306,308,310,312、通過ゲート254を遊技球が通過した場合に、所定の検知信号を主制御回路260に供給する通過ゲートスイッチ314、第1始動口225を遊技球が入賞した場合に、所定の検知信号を主制御回路260に供給する第1始動入賞口スイッチ316、第2始動口244を遊技球が入賞した場合に、所定の検知信号を主制御回路260に供給する第2始動入賞口スイッチ317、電断時等におけるバックアップデータを遊技場の管理者の操作に応じてクリアするバックアップクリアスイッチ324等が接続される。
また、主制御回路260には、払出・発射制御回路326が接続される。この払出・発射制御回路326には、遊技球の払出を行う払出装置328、遊技球の発射を行う発射装置330、及び、カードユニット500が接続される。なお、カードユニット500は、遊技者の操作によって、カードユニット500に遊技球の貸し出しを要求する信号を出力する球貸し操作パネル355との間で送受信可能である。
払出・発射制御回路326は、主制御回路260から供給される賞球制御コマンド、カードユニット500から供給される貸し球制御信号を受け取り、払出装置328に対して所定の信号を送信することにより、払出装置328による遊技球の払出動作を制御する。また、払出・発射制御回路326は、発射ハンドル226が遊技者によって握持され、かつ、時計回り方向へ回動操作されたときには、その回動角度に応じて発射ソレノイドに電力を供給し、遊技球の発射動作の制御を行う。
さらに、コマンド出力ポート272には、副制御回路400が接続される。副制御回路400は、主制御回路260から供給される各種のコマンドに応じて、液晶表示装置232における表示制御、スピーカ246から発生させる音声に関する制御、装飾ランプ等を含むランプの制御等を行う。また、副制御回路400は、上記実施形態のパチスロ1において説明した副制御回路70の構成と同様の構成を有し、また、同様の各種処理を実行することができる。
なお、図147〜図151に示すパチンコ210では、主制御回路260から副制御回路400に対してコマンドを供給することができるが、副制御回路400から主制御回路260に対して信号を供給できない構成としたが、副制御回路400から主制御回路260に対して信号を送信できるような構成にしてもよい。
また、図147〜図151に示すパチンコ210では、副制御回路400に接続されるサブデバイスとして、スケーラ、タッチセンサ及びカメラを備えない構成のパチンコ210について説明したが、パチンコ210に対しても、上記実施形態のパチスロ1と同様に、サブデバイスとしてスケーラ、タッチセンサ及びカメラを設けることができる。そして、この場合には、上記実施形態と同様にして、副制御回路400(「主」)は、各サブデバイス(「従」)に対して所定周期でポーリングを行い、各サブデバイスの作動状況を個別に管理することができ、上記実施形態と同様の効果を得ることができる。