以下、本発明の一実施形態に係る遊技機としてパチスロを例に挙げ、図面を参照しながら、その構成及び動作について説明する。なお、本実施形態では、ボーナス作動機能及びART機能を備えたパチスロについて説明する。
<機能フロー>
まず、図1を参照して、パチスロの機能フローについて説明する。本実施形態のパチスロでは、遊技を行うための遊技媒体としてメダルを用いる。なお、遊技媒体としては、メダル以外にも、例えば、コイン、遊技球、遊技用のポイントデータ又はトークン等を適用することもできる。
遊技者によりパチスロにメダルが投入され、スタートレバーが操作されると、予め定められた数値範囲(例えば、0~65535)の乱数から1つの値(以下、乱数値という)が抽出される。
内部抽籤手段は、抽出された乱数値に基づいて抽籤を行い、内部当籤役を決定する。この内部抽籤手段は、後述の主制御回路が備える各種処理手段(処理機能)の一つである。内部当籤役の決定により、後述の有効ライン(入賞判定ライン)に沿って表示を行うことを許可する図柄の組合せが決定される。なお、図柄の組合せの種別としては、メダルの払い出し、再遊技(リプレイ)の作動、ボーナスの作動等といった特典が遊技者に与えられる「入賞」に係るものと、それ以外のいわゆる「はずれ」に係るものとが設けられる。
また、スタートレバーが操作されると、複数のリールの回転が行われる。その後、遊技者により所定のリールに対応するストップボタンが押されると、リール停止制御手段は、内部当籤役とストップボタンが押されたタイミングとに基づいて、該当するリールの回転を停止する制御を行う。このリール停止制御手段は、後述の主制御回路が備える各種処理手段(処理機能)の一つである。
パチスロでは、基本的に、ストップボタンが押されたときから規定時間(190msec)内に、該当するリールの回転を停止する制御が行われる。本実施形態では、この規定時間内にリールの回転に伴って移動する図柄の数を「滑り駒数」という。そして、本実施形態では、規定期間が190msecである場合には、滑り駒数の最大数(最大滑り駒数)を図柄4個分に定める。
リール停止制御手段は、入賞に係る図柄の組合せ表示を許可する内部当籤役が決定されているときは、通常、190msec(図柄4駒分)の規定時間内に、その図柄の組合せが有効ラインに沿って極力表示されるようにリールの回転を停止させる。また、リール停止制御手段は、規定時間を利用して、内部当籤役によってその表示が許可されていない図柄の組合せが有効ラインに沿って表示されないようにリールの回転を停止させる。
このようにして、複数のリールの回転がすべて停止されると、入賞判定手段は、有効ラインに沿って表示された図柄の組合せが、入賞に係るものであるか否かの判定を行う。この入賞判定手段もまた、後述の主制御回路が備える各種処理手段(処理機能)の一つである。そして、表示された図柄の組合せが、入賞判定手段により入賞に係るものであると判定されると、メダルの払い出し等の特典が遊技者に与えられる。パチスロでは、以上のような一連の流れが1回の遊技(単位遊技)として行われる。
また、パチスロでは、前述した一連の遊技動作の流れの中で、表示装置などによる映像の表示、各種ランプによる光の出力、スピーカによる音の出力、或いは、これらの組合せを利用して様々な演出が行われる。
具体的には、スタートレバーが操作されると、上述した内部当籤役の決定に用いられた乱数値とは別に、演出用の乱数値が抽出される。演出用の乱数値が抽出されると、演出内容決定手段は、内部当籤役に対応づけられた複数種類の演出内容の中から今回実行する演出を抽籤により決定する。この演出内容決定手段は、後述の副制御回路が備える各種処理手段(処理機能)の一つである。
次いで、演出内容決定手段により演出内容が決定されると、演出実行手段は、リールの回転開始時、各リールの回転停止時、入賞の有無の判定時等の各契機に連動させて対応する演出を実行する。このように、パチスロでは、例えば、内部当籤役に対応づけられた演出内容を実行することによって、決定された内部当籤役(言い換えると、狙うべき図柄の組合せ)を知る機会又は予想する機会が遊技者に提供され、遊技者の興味の向上を図ることができる。
<パチスロの構造>
次に、図2~図4を参照して、本発明の一実施形態に係るパチスロの構造について説明する。
[外観構造]
図2は、パチスロ1の外部構造を示す斜視図である。
パチスロ1は、図2に示すように、外装体2(遊技機本体)を備える。外装体2は、リールや回路基板等を収容するキャビネット2aと、キャビネット2aの開口を開閉可能に取り付けられるフロントドア2bとを有する。
キャビネット2aの内部には、3つのリール3L,3C,3R(変動表示手段、表示列)が横一列に並べて設けられている。以下、各リール3L,3C,3R(メインリール)を、それぞれ左リール3L、中リール3C、右リール3Rともいう。各リール3L,3C,3Rは、円筒状に形成されたリール本体と、リール本体の周面に装着された透光性のシート材を有する。そして、シート材の表面には、複数(例えば20個)の図柄が周方向(リールの回転方向)に沿って所定の間隔をあけて描かれている。
フロントドア2bは、ドア本体9と、フロントパネル10と、腰部パネル12と、台座部13とを備える。ドア本体9は、ヒンジ(不図示)を用いてキャビネット2aに開閉可能に取り付けられる。ヒンジは、パチスロ1の前方側(遊技者側)から見て、ドア本体9の左側の側端部に設けられる。
フロントパネル10は、ドア本体9の上部に設けられている。このフロントパネル10は、開口10aを有する枠状部材で構成される。フロントパネル10の開口10aは、表示装置カバー30によって塞がれ、表示装置カバー30は、キャビネット2aの内部に配置された後述の表示装置11と対向して配置される。
表示装置カバー30は、黒色の半透明な合成樹脂により形成される。それゆえ、遊技者は、後述の表示装置11により表示された映像(画像)を、表示装置カバー30を介して視認することができる。また、本実施形態では、表示装置カバー30を黒色の半透明な合成樹脂で形成することにより、キャビネット2a内への外光の入り込みを抑制して、表示装置11により表示された映像(画像)を鮮明に視認できるようにしている。
フロントパネル10には、ランプ群21が設けられている。ランプ群21は、例えば、遊技者側から見て、フロントパネル10の上部に設けられたランプ21a、21bを含む。ランプ群21を構成する各ランプは、LED(Light Emitting Diode)等で構成され(後述の図5中のLED群85参照)、演出内容に対応するパターンで、光を点灯及び消灯する。
腰部パネル12は、ドア本体9の略中央部に設けられる。腰部パネル12は、任意の画像が描かれた装飾パネルと、この装飾パネルを背面側から照明するための光を出射する光源(後述のLED群85に含まれるLED)とを有する。
台座部13は、フロントパネル10と腰部パネル12との間に設けられる。台座部13には、図柄表示領域4と、遊技者による操作の対象となる各種装置(メダル投入口14、MAXベットボタン15a、1ベットボタン15b、スタートレバー16、3つのストップボタン17L,17C,17R、精算ボタン(不図示)等)とが設けられる。
図柄表示領域4は、正面から見て、3つのリール3L,3C,3Rに重畳する領域で、且つ、3つのリール3L,3C,3Rより遊技者側の位置に配置されており、3つのリール3L,3C,3Rを視認可能にするサイズを有する。この図柄表示領域4は、表示窓としての機能を果たすものであり、その背後に設けられた各リール3L,3C,3Rを視認することが可能な構成になっている。以下、図柄表示領域4を、リール表示窓4という。
リール表示窓4は、その背後に設けられた3つのリール3L,3C,3Rの回転が停止されたとき、各リールの周面に設けられた複数の図柄のうち、連続して配置された3つの図柄がその枠内に表示されるように構成されている。すなわち、3つのリール3L,3C,3Rの回転が停止されたとき、リール表示窓4の枠内には、リール毎に上段、中段及び下段の各領域にそれぞれ1個の図柄(合計で3個)が表示される(リール表示窓4の枠内には、3行×3列の態様で図柄が表示される)。そして、本実施形態では、リール表示窓4の枠内において、左リール3Lの中段領域、中リール3Cの中段領域、及び、右リール3Rの中段領域を結ぶ擬似的なライン(センターライン)を、入賞か否かの判定を行う有効ラインとして定義する。
リール表示窓4は、台座部13に設けられた枠部材31の開口により形成される。また、リール表示窓4を画成する枠部材31の下方には、略水平面の台座領域が設けられる。そして、遊技者側から見て、台座領域の右側にはメダル投入口14が設けられ、左側にはMAXベットボタン15a及び1ベットボタン15bが設けられる。
メダル投入口14は、遊技者によって外部からパチスロ1に投下されるメダルを受け入れるために設けられる。メダル投入口14から受け入れられたメダルは、予め設定された所定枚数(例えば3枚)を上限として1回の遊技に使用され、所定枚数を超えたメダルの枚数分は、パチスロ1の内部に預けることができる(いわゆるクレジット機能(遊技媒体貯留手段))。
MAXベットボタン15a及び1ベットボタン15bは、キャビネット2aの内部に預けられているメダルから1回の遊技に使用する枚数を決定するために設けられる。なお、MAXベットボタン15aの内部には、メダル投入が可能な時に点灯するベットボタンLED(不図示)が設けられている。また、精算ボタンは、パチスロ1の内部に預けられているメダルを外部に引き出す(排出する)ために設けられる。
なお、遊技者がMAXベットボタン15aを押下操作すると、単位遊技のベット枚数(3枚)のメダルが投入され、有効ラインが有効化される。一方、1ベットボタン15bが1回、押下操作される度に1枚のメダルが投入される。1ベットボタン15bが3回操作されると、単位遊技のベット枚数(3枚)のメダルが投入され、有効ラインが有効化される。以下では、MAXベットボタン15aの操作、1ベットボタン15bの操作及びメダル投入口14にメダルを投入する操作(遊技を行うためにメダルを投入する操作)をいずれも「投入操作」という。
スタートレバー16は、全てのリール(3L,3C,3R)の回転を開始するために設けられる。ストップボタン17L,17C,17Rは、それぞれ、左リール3L、中リール3C、右リール3Rに対応づけて設けられ、各ストップボタンは対応するリールの回転を停止するために設けられる。以下、ストップボタン17L,17C,17Rを、それぞれ左ストップボタン17L、中ストップボタン17C、右ストップボタン17Rともいう。
また、リール表示窓4の下方の略水平面の台座領域の略中央には、情報表示器6が設けられる。なお、情報表示器6は、透明の窓カバー(不図示)によって覆われている。
情報表示器6には、特典として遊技者に対して払い出されるメダルの枚数(以下、「払出枚数」という)の情報を遊技者に対してデジタル表示(報知)するための2桁の7セグメントLED(以下、「7セグLED」という)や、パチスロ1の内部に預けられているメダルの枚数(以下、「クレジット枚数」という)などの情報を遊技者に対してデジタル表示(報知)するための2桁の7セグLEDが設けられる。なお、本実施形態では、メダルの払出枚数表示用の2桁の7セグLEDは、エラー発生及びエラー種別の情報を遊技者に対してデジタル表示(報知)するための2桁の7セグLEDとしても用いられる。それゆえ、エラー発生時には、メダルの払出枚数表示用の2桁の7セグLEDの表示態様は、払出枚数の表示態様からエラー種別の情報の表示態様に切り替わる。
さらに、情報表示器6には、内部当籤役として決定された役に応じた図柄組合せを有効ラインに沿って表示するために必要な停止操作の情報を報知する指示モニタ(不図示)が設けられている。指示モニタ(指示表示器)は、例えば、2桁の7セグメントLEDにより構成される。そして、指示モニタでは、報知する停止操作の情報と一義的に対応する態様で、2桁の7セグLEDが点灯、点滅又は消灯することにより、遊技者に対して必要な停止操作の情報を報知する。
なお、ここでいう、報知する停止操作の情報と一義的に対応する態様とは、例えば、押し順「1st(第1停止操作を左リール3Lに対して行うこと)」を報知する場合には指示モニタに数値「1」を表示し、押し順「2nd(第1停止操作を中リール3Cに対して行うこと)」を報知する場合には指示モニタに数値「2」を表示し、押し順「3rd(第1停止操作を右リール3Rに対して行うこと)」を報知する場合には指示モニタに数値「3」を表示するなどの態様のことである。
情報表示器6は、後述の図5に示すように、ドア中継端子板68及び遊技動作表示基板81を介して主制御基板71に電気的に接続され、情報表示器6の表示動作は、主制御基板71内の後述の主制御回路90により制御される。また、上述した各種7セグLEDの制御方式は、ダイナミック点灯制御である。
なお、本実施形態のパチスロ1では、主制御基板71により制御される指示モニタに加えて、副制御基板72により制御される他の手段を用いて停止操作の情報を報知する構成を設ける。具体的には、後述のプロジェクタ213を含む投影ブロック201及び各種被投影部材を含む被投影ブロック202(図3参照)により構成される後述の表示装置11により停止操作の情報を報知する。また、表示装置11を液晶ディスプレイ等によって構成するようにしてもよい。
このような構成を適用した場合、指示モニタにおける報知の態様と、副制御基板72により制御されるその他の手段における報知の態様とは、互いに異なる態様であってもよい。すなわち、指示モニタでは、報知する停止操作の情報と一義的に対応する態様で報知すればよく、必ずしも、停止操作の情報を直接的に報知する必要はない(例えば、指示モニタにおいて数値「1」が表示されたとしても、遊技者によっては報知内容を特定できない可能性もあり、直接的な報知とは言えない)。一方、後述の表示装置11等のその他の手段によるサブ側(副制御基板側)での報知では、停止操作の情報を直接的に報知してもよい。例えば、押し順「1st」を報知する場合、指示モニタでは報知する押し順と一義的に対応する数値「1」を表示するが、その他の手段(例えば、表示装置11等)では、左リール3Lに対して第1停止操作を行わせるための指示情報を直接的に報知してもよい。
このような構成のパチスロ1では、副制御基板72の制御だけでなく、主制御基板71の制御によっても、内部当籤役に応じた必要な停止操作の情報を報知することができる。また、このような停止操作の情報の報知の有無は、遊技状態に応じて制御されるようにしてもよい。例えば、ナビが発生しない一般遊技状態(例えば非ART遊技状態等)では停止操作の情報を報知せずに、ナビが発生する報知遊技状態(例えばART遊技状態等)において停止操作の情報を報知するようにしてもよい。
また、遊技者側から見て、リール表示窓4の左方には、サブ表示装置18が設けられる。サブ表示装置18は、図2に示すように、ドア本体9の前面部のうち、台座部13の略水平面の台座領域から略垂直に立設するように設けられる。サブ表示装置18は、液晶ディスプレイや有機EL(Electro-Luminescence)ディスプレイで構成され、各種情報を表示する。
また、サブ表示装置18の表示面上には、タッチセンサ19が設けられている(後述の図5参照)。タッチセンサ19は、静電容量方式などの所定の動作原理に従い動作し、遊技者の操作を受け付けると、タッチ入力情報として当該操作に応じた信号を出力する。そして、本実施形態のパチスロ1は、タッチセンサ19を介して受け付けた遊技者の操作(タッチセンサ19から出力されるタッチ入力情報)に応じて、サブ表示装置18の表示を切り替え可能にする機能を有する。なお、サブ表示装置18は、タッチセンサ19から出力されるタッチ入力情報に基づいて後述の副制御基板72(後述の図5参照)により制御される。
ドア本体9の下部には、メダル払出口24、メダル受皿25、2つのスピーカ用孔20L,20R等が設けられる。メダル払出口24は、後述のメダル払出装置51の駆動により排出されるメダルを外部に導く。メダル受皿25は、メダル払出口24から排出されたメダルを貯める。また、2つのスピーカ用孔20L,20Rからは、演出内容に対応する効果音や楽曲等の音声が出力される。
また、図2では表示を省略したが、台座部3には、十字キーとエンターキーが配設される。十字キーは、上ボタン、下ボタン、左ボタン、右ボタンからなり、遊技者がこれらを操作することによって、例えば、音量調節の指示や、表示装置11に配当表などの画像を表示させる指示を行うことができる。エンターキーは、単一のエンターボタンを備え、遊技者がこのボタンを操作することによって、例えば、表示装置11に表示された映像(画像)や演出等に対して指示を行うことができる。また、十字キーを、音量調整の指示や配当表などの表示の指示を確定させる確定ボタンとして使用することができる。
その他、パチスロ1は、遊技者が演出等に対して所定の指示をすることができる、プッシュボタンやチャンスボタンを配置することもできる。
[内部構造]
次に、パチスロ1の内部構造を、図3及び図4を参照しながら説明する。図3は、キャビネット2aの内部構造を示す図であり、図4は、フロントドア2bの裏面側の内部構造を示す図である。
キャビネット2aは、図3に示すように、上面板27aと、底面板27bと、左右の側面板27c,27dと、背面板27eとを有する。そして、キャビネット2a内の上部には、表示装置11が配設される。
表示装置11は、後述のプロジェクタ213を含む投影ブロック201と、後述のプロジェクタ213から出射された映像光が投影される後述の複数種の被投影部材を含む被投影ブロック202とを有する。また、被投影ブロック202内には、遊技状態に応じて、被投影部材を切り換えるための機能(後述の被投影部材移動機構305)も設けられる。
表示装置11では、後述する仮想空間上での画像合成処理により生成された画像データ(後述のPJ対応画像データ)に対応する映像光が所定の被投影部材に投影され、映像表示演出等が行われる。具体的には、表示装置11では、投影対象となる被投影部材(オブジェクト)の形状や、後述のプロジェクタ213と被投影部材との位置関係(投影距離や角度など)に基づいて映像光を生成し、その映像光が、後述のプロジェクタ213から被投影部材の表面に投影される。このような演出機能を設けることにより、高度で且つ迫力のある演出を行うことができる。なお、表示装置11の具体的な構成及び動作については、後で図面を参照しながら詳述する。
キャビネット2a内の下部には、メダル払出装置51(以下、ホッパー装置という)と、メダル補助収納庫52と、電源装置53とが配設される。
ホッパー装置51は、キャビネット2aにおける底面板27bの中央部に取り付けられる。このホッパー装置51は、多量のメダルを収容可能で、それらを1枚ずつ排出可能な構造を有する。ホッパー装置51は、貯留されたメダルが例えば50枚を超えたとき、又は、精算ボタンが押下されてメダルの精算が実行されるときに、メダルを払い出す。そして、ホッパー装置51によって払い出されたメダルは、メダル払出口24(図2参照)から排出される。
メダル補助収納庫52は、ホッパー装置51から溢れ出たメダルを収納する。このメダル補助収納庫52は、キャビネット2a内部を正面から見て、ホッパー装置51の右側に配置される。また、メダル補助収納庫52は、キャビネット2aの底面板27bに対して着脱可能に取り付けられている。
電源装置53は、電源スイッチ53aと、電源基板53b(電源供給手段)とを有している(後述の図5参照)。この電源装置53は、キャビネット2a内部を正面から見て、ホッパー装置51の左側に配置されており、左側面板27cに取り付けられている。電源装置53は、サブ電源装置(不図示)から供給された交流電圧100Vの電力を各部で必要な直流電圧の電力に変換して、変換した電力を各部へ供給する。
また、キャビネット2a内の電源装置53の上方には、副制御基板72(後述の図5参照)を収容する副制御基板ケース57が配設される。副制御基板ケース57に収納された副制御基板72には、後述の副制御回路150(後述の図8参照)が搭載されている。この副制御回路150は、映像の表示等による演出の実行を制御する回路である。なお、副制御基板72は、本発明に係る制御部の一具体例を示すものである。副制御回路150の具体的な構成については後述する。
キャビネット2a内の副制御基板ケース57の上方には、副中継基板61が配設される。この副中継基板61は、副制御基板72と後述の主制御基板71とを接続する配線が実装された中継基板である。また、副中継基板61は、副制御基板72と副制御基板72の周辺に配設された基板や各種装置部(ユニット)などとを接続する配線が実装された中継基板である。
また、図3には示さないが、キャビネット2a内には、キャビネット側中継基板44(後述の図5参照)が配設される。このキャビネット側中継基板44は、主制御基板71(後述の図5参照)と、ホッパー装置51、メダル補助収納庫スイッチ75(後述の図5参照)及びメダル払出カウントスイッチ(不図示)のそれぞれとを接続する配線が実装された中継基板である。
フロントドア2bの裏面側の中央部には、図4に示すように、ミドルドア41が、配設され、リール表示窓4(図2参照)を裏側から開閉可能に取り付けられている。また、図4には示さないが、ミドルドア41のリール表示窓4側には、3つのリール3L,3C,3Rが取り付けられ、ミドルドア41のリール表示窓4側とは反対側には、主制御基板71(後述の図5参照)が収納された主制御基板ケース55が取り付けられている。なお、3つのリール3L,3C,3Rには、所定の減速比をもったギアを介してステッピングモータ(不図示)が接続されている。
主制御基板ケース55に収納された主制御基板71は、後述する主制御回路90(後述の図6参照)を有する。主制御回路90(主制御手段)は、内部当籤役の決定、各リール3L,3C,3Rの回転及び停止、入賞の有無の判定といった、パチスロ1における遊技の主な流れを制御する回路である。また、本実施形態では、例えば、報知遊技(ART等)の決定の有無の抽籤処理、ナビ情報の指示モニタへの表示処理、各種試験信号の送信処理などの制御も主制御回路90により行われる。なお、主制御回路90の具体的な構成は後述する。
フロントドア2bの裏面側において、ミドルドア41の下方には、スピーカ65L,65Rが配設される。スピーカ65L,65Rは、それぞれスピーカ用孔20L,20R(図2参照)と対向する位置に配置されている。
また、スピーカ65Lの上方には、セレクタ66と、ドア開閉監視スイッチ67とが配設される。セレクタ66は、メダルの材質や形状等が適正であるか否かを選別する装置であり、メダル投入口14に投入された適正なメダルをホッパー装置51へ案内する。セレクタ66内においてメダルが通過する経路上には、適正なメダルが通過したことを検出するメダルセンサ(遊技媒体検出手段:不図示)が設けられている。
ドア開閉監視スイッチ67は、フロントドア2bを裏面側から見て、セレクタ66の左斜め下に配置される。このドア開閉監視スイッチ67は、フロントドア2bの開閉を報知するためのセキュリティ信号をパチスロ1の外部に出力する。
また、図4には示さないが、フロントドア2bを裏面において、ミドルドア41により開閉された領域であり且つリール表示窓4の下方には、ドア中継端子板68が配設される(後述の図5参照)。このドア中継端子板68は、主制御基板ケース55内の主制御基板71と、各種のボタンやスイッチ、副中継基板61、セレクタ66、遊技動作表示基板81、試験機用第1インタフェースボード401及び試験機用第2インタフェースボード402のそれぞれとを接続する配線が実装された中継基板である。なお、各種のボタン及びスイッチとしては、例えば、MAXベットボタン15a、1ベットボタン15b、ドア開閉監視スイッチ67、後述のBETスイッチ77、スタートスイッチ79等が挙げられる。
<パチスロが備える制御系>
次に、パチスロ1が備える制御系について、図5を参照して説明する。図5は、パチスロ1の制御系の構成を示す回路ブロック図である。
パチスロ1は、ミドルドア41に設けられた主制御基板71と、フロントドア2bに設けられた副制御基板72とを有する。また、パチスロ1は、主制御基板71に接続された、リール中継端子板74、設定用鍵型スイッチ54(設定スイッチ)及びキャビネット側中継基板44を有する。さらに、パチスロ1は、キャビネット側中継基板44を介して主制御基板71に接続された外部集中端子板47、ホッパー装置51、メダル補助収納庫スイッチ75、リセットスイッチ76及び電源装置53を有する。なお、ホッパー装置51の構成については上述したので、ここでは、その説明を省略する。
リール中継端子板74は、各リール3L,3C,3Rのリール本体の内側に配設されている。リール中継端子板74は、各リール3L,3C,3Rのステッピングモータ(不図示)に電気的に接続されており、主制御基板71からステッピングモータに出力される信号を中継する。
設定用鍵型スイッチ54は、主制御基板ケース55に設けられる。設定用鍵型スイッチ54は、パチスロ1の設定(設定1~設定6)を変更するとき、もしくは、パチスロ1の設定を確認するときに使用される。
キャビネット側中継基板44は、主制御基板71と、外部集中端子板47、ホッパー装置51、メダル補助収納庫スイッチ75、リセットスイッチ76及び電源装置53のそれぞれとを接続する配線が実装された中継基板である。外部集中端子板47は、メダル投入信号、メダル払出信号及びセキュリティ信号などの信号をパチスロ1の外部へ出力するために設けられる。メダル補助収納庫スイッチ75は、メダル補助収納庫52に設けられ、メダル補助収納庫52がメダルで満杯になっているか否かを検出する。リセットスイッチ76は、例えば、パチスロ1の設定を変更する際に用いられる。
電源装置53は、電源基板53bと、電源基板53bに接続された電源スイッチ53aとを有する。電源スイッチ53aは、パチスロ1に必要な電源を供給するときに押下される。電源基板53bは、キャビネット側中継基板44を介して主制御基板71に接続されるとともに、副中継基板61を介して副制御基板72にも接続される。
また、パチスロ1は、ドア中継端子板68、並びに、該ドア中継端子板68を介して、主制御基板71に接続された、セレクタ66、ドア開閉監視スイッチ67、BETスイッチ77、精算スイッチ78、スタートスイッチ79、ストップスイッチ基板80、遊技動作表示基板81、副中継基板61、試験機用第1インタフェースボード401及び試験機用第2インタフェースボード402を有する。なお、セレクタ66、ドア開閉監視スイッチ67及び副中継基板61については、上述したので、ここでは、それらの説明を省略する。
BETスイッチ77(投入操作検出手段)は、MAXベットボタン15a又は1ベットボタン15bが遊技者により押下されたことを検出する。精算スイッチ78は、精算ボタン(不図示)が遊技者により押下されたことを検出する。スタートスイッチ79(開始操作検出手段)は、スタートレバー16が遊技者により操作されたこと(開始操作)を検出する。
ストップスイッチ基板80(停止操作検出手段)は、回転しているメインリールを停止させるための回路と、停止可能なメインリールをLEDなどにより表示するための回路とを備える。また、ストップスイッチ基板80には、ストップスイッチ(不図示)が設けられる。ストップスイッチは、各ストップボタン17L,17C,17Rが遊技者により押下されたこと(停止操作)を検出する。
遊技動作表示基板81は、情報表示器6(7セグ表示器)及びLED82に接続される。LED82には、例えば、今回の遊技に投入されたメダルの枚数(以下、「投入枚数」という)に対応して点灯する、メダル投入枚数表示用の3つのLED(以下、「第1LED」~「第3LED」という)や、遊技動作表示基板81から入力される信号に基づいて、メダル投入が可能であることを表示するマーク、遊技開始を表示するマーク、再遊技を行うマークなどを点灯させるLEDなどが含まれる。第1LED~第3LED(表示手段)では、メダルが1枚投入されると、第1LEDが点灯し、メダルが2枚投入されると、第1及び第2LEDが点灯し、メダルが3枚(遊技開始可能枚数)投入されると、第1LED~第3LEDが点灯する。なお、情報表示器6については、上述したので、ここでは、それらの説明を省略する。
試験機用第1インタフェースボード401及び試験機用第2インタフェースボード402はともに、パチスロ1の検定試験(試射試験)において、遊技に関する各種信号を試験機に出力する際に用いられる中継基板である(なお、販売用のリリース製品としてのパチスロ1にはこれらの中継基板は搭載されていないので、販売用の主制御基板71の主制御回路90には、試験機用第1インタフェースボード401及び試験機用第2インタフェースボード402に接続するために必要な各種電子部品もまた実装されていない)。例えば、遊技に係る主要な動作(例えば、内部抽籤、リール停止制御等)を制御するための試験信号は、試験機用第1インタフェースボード401を介して出力され、例えば、主制御基板71で決定された押し順ナビに係る試験信号などは、試験機用第2インタフェースボード402を介して出力される。
副制御基板72は、ドア中継端子板68及び副中継基板61を介して主制御基板71に接続される。また、パチスロ1は、副中継基板61を介して副制御基板72に接続された、スピーカ群84、LED群85、24hドア開閉監視ユニット63、タッチセンサ19及び被投影部材移動機構305(表示ユニット)を有する。またさらに、パチスロ1は、副中継基板61を介して副制御基板72に接続された、十字キーの上ボタン、下ボタン、左ボタン、右ボタンの操作(遊技者による押下)をそれぞれ検知するUPスイッチ220a、DOWNスイッチ220b、LEFTスイッチ220c、及びRIGHTスイッチ220dを有し、さらに、エンターキーのエンターボタンの操作(遊技者による押下)を検知するENTERスイッチ221を有する。なお、タッチセンサ19及び被投影部材移動機構305については、上述したので、ここでは、その説明を省略する。
スピーカ群84は、スピーカ65L,65Rや図示しない各種スピーカを含んで構成される。LED群85は、フロントパネル10に設けられたランプ群21や、腰部パネル12の装飾パネルを背面側から照明するための光を出射する光源などを含んで構成される。24hドア開閉監視ユニット63は、ミドルドア41の開閉の履歴情報を保存する。また、24hドア開閉監視ユニット63は、ミドルドア41が開放されたときに、表示装置11によりエラー表示を行うための信号を副制御基板72(副制御回路150)に出力する。
また、パチスロ1は、副制御基板72に接続された、ロムカートリッジ基板86及び表示装置中継基板87を有する。なお、ロムカートリッジ基板86及び表示装置中継基板87は、副制御基板72とともに副制御基板ケース57に収納されている。
ロムカートリッジ基板86は、サブCPU151により実行される各種制御プログラムと、演出用の画像(映像)、音声(スピーカ群84)、光(LED群85)及び通信のデータを管理するための基板である。なお、ロムカートリッジ基板86は、本発明に係る不揮発性記憶部(記憶部)の一具体例を示すものである。
表示装置中継基板87は、副制御基板72と、表示装置11に含まれるプロジェクタ213、及び、サブ表示装置18との間の接続配線を中継する基板である。なお、プロジェクタ213及びサブ表示装置18については、上述したので、ここでは、それらの説明を省略する。
また、パチスロ1は、副制御基板72に接続された、リサイクルデータインタフェース230を有する。このリサイクルデータインタフェース230は、例えば、JTAGといった規格でデータ通信を行うインタフェースであり、端末装置500と所定のケーブルによって接続されることにより、シリアル通信でFRAM152bに記憶されたリサイクルデータを端末装置500に送信する。
<主制御回路>
次に、図6を参照して、主制御基板71に実装される主制御回路90の構成について説明する。図6は、パチスロ1の主制御回路90の構成例を示すブロック図である。
主制御回路90は、マイクロプロセッサ91と、クロックパルス発生回路92と、電源管理回路93と、スイッチングレギュレータ94(電源供給手段)とを備える。
マイクロプロセッサ91は、遊技機用のセキュリティ機能付きマイクロプロセッサである。なお、本実施形態のマイクロプロセッサ91では、ソースプログラム上で規定可能な該マイクロプロセッサ91に特有の様々な命令コード(メインCPU101専用命令コード)が設けられている。本実施形態では、このメインCPU101専用命令コードを用いることにより、処理の効率化やプログラム容量の削減などを実現している。マイクロプロセッサ91の内部構成については、後述の図7を参照して詳述する。
クロックパルス発生回路92は、メインCPU作動用のクロックパルス信号を生成し、該生成したクロックパルス信号をマイクロプロセッサ91に出力する。マイクロプロセッサ91は、入力されたクロックパルス信号に基づいて、制御プログラムを実行する。
電源管理回路93は、電源基板53b(図5参照)から供給される直流12Vの電源電圧の変動を管理する。そして、電源管理回路93は、例えば、電源が投入された際(電源電圧が0Vから起動電圧値(10V)を上回った際)には、リセット信号をマイクロプロセッサ91の「XSRST」端子に出力し、電断が発生した際(電源電圧が12Vから停電電圧値(10.5V)を下回った際)には、電断検知信号をマイクロプロセッサ91の「XINT」端子に出力する。すなわち、電源管理回路93は、電源投入時に、マイクロプロセッサ91にリセット信号(起動信号)を出力する手段(起動手段)、及び、電断発生時に、マイクロプロセッサ91に電断検知信号(停電信号)を出力する手段(停電手段)も兼ねる。
スイッチングレギュレータ94は、DC/DC変換回路であり、マイクロプロセッサ91の直流駆動電圧(直流5Vの電源電圧)を生成し、該生成した直流駆動電圧をマイクロプロセッサ91の「VCC」端子に出力する。
<マイクロプロセッサ>
次に、図7を参照して、マイクロプロセッサ91の内部構成について説明する。図7は、マイクロプロセッサ91の内部構成を示すブロック図である。
マイクロプロセッサ91は、メインCPU101と、メインROM102(第1記憶手段)と、メインRAM103(第2記憶手段)と、外部バスインタフェース104と、クロック回路105と、リセットコントローラ106と、演算回路107と、乱数回路110と、パラレルポート111と、割込みコントローラ112と、タイマー回路113と、第1シリアル通信回路114と、第2シリアル通信回路115と、を有する。そして、マイクロプロセッサ91を構成するこれらの各部は信号バス116を介して互いに接続されている。
メインCPU101は、クロック回路105で生成されたクロックパルスに基づいて、各種制御プログラムを実行して、遊技動作全般に係る制御を行う。ここで、メインCPU101の制御動作の一例としてリール停止制御について説明する。
メインCPU101は、リールインデックスを検出してから各リール3L,3C,3L(メインリール)のステッピングモータに対してパルスを出力した回数をカウントする。これにより、メインCPU101は、各リールの回転角度(主に、リールが図柄何個分だけ回転したか)を管理する。なお、リールインデックスとは、リールが一回転したことを示す情報である。このリールインデックスは、例えば、発光部及び受光部を有する光センサと、各リールの所定の位置に設けられ、各メインリールの回転により発光部と受光部との間に介在される検知片とを備えたリール位置検出部(不図示)により検出される。
ここで、各リール3L,3C,3L(メインリール)の回転角度の管理について、具体的に説明する。ステッピングモータに対して出力されたパルスの数は、メインRAM103に設けられたパルスカウンタによって計数される。そして、図柄1個分の回転に必要な所定回数のパルスの出力がパルスカウンタで計数される毎に、メインRAM103に設けられた図柄カウンタが1ずつ加算される。図柄カウンタは、各リールに応じて設けられている。図柄カウンタの値は、リール位置検出部(不図示)によってリールインデックスが検出されるとクリアされる。
すなわち、本実施形態では、図柄カウンタを管理することにより、リールインデックスが検出されてから図柄何個分の回転が行われたのかを管理する。したがって、各リールの各図柄の位置は、リールインデックスが検出される位置を基準として検出される。
メインROM102には、メインCPU101により実行される各種制御プログラム、各種データテーブル、副制御回路150に対して各種制御指令(コマンド)を送信するためのデータ等が記憶される。メインRAM103には、制御プログラムの実行により決定された内部当籤役等の各種データを格納する格納領域が設けられる。
外部バスインタフェース104は、マイクロプロセッサ91の外部に設けられた各種構成部(例えば、各リール等)が接続された外部信号バス(不図示)と、マイクロプロセッサ91とを電気的に接続するためのインタフェース回路である。クロック回路105は、例えば分周器(不図示)等を含んで構成され、クロックパルス発生回路92から入力されたCPU作動用のクロックパルス信号を、その他の構成部(例えば、タイマー回路113)で使用される周波数のクロックパルス信号に変換する。なお、クロック回路105で生成されたクロックパルス信号は、リセットコントローラ106にも出力される。
リセットコントローラ106は、電源管理回路93から入力されたリセット信号に基づいて、IAT(Illegal Address Trap)やWDT(watchdog timer)のリセットを行う。演算回路107は、乗算回路及び除算回路を含んで構成される。例えば、ソースプログラム上において、乗算命令(「MUL」命令)を実行するときには、演算回路107がこの命令に基づく乗算処理を実行する。
乱数回路110は、予め定められた範囲の乱数(例えば、0~65535又は0~255)を発生させる。また、図示しないが、乱数回路110は、2バイトのハードラッチ乱数を得るための乱数レジスタ0と、2バイトのソフトラッチ乱数を得るための乱数レジスタ1~3と、1バイトのソフトラッチ乱数を得るための乱数レジスタ4~7とで構成されている。なお、メインCPU101は、乱数回路110で発生させた所定範囲の乱数の中から1つの値を、例えば内部抽籤用の乱数値として抽出する。パラレルポート111は、マイクロプロセッサ91と、マイクロプロセッサ91の外部に設けられた各種回路(例えば、電源管理回路93等)との間で入出力される信号のポート(メモリーマップI/O)である。また、パラレルポート111は、乱数回路110及び割込みコントローラ112にも接続される。
割込みコントローラ112は、パラレルポート111を介して電源管理回路93から入力される電断検知信号、又は、タイマー回路113から1.1172ms周期で入力されるタイムアウト信号に基づいて、メインCPU101による割込み処理の実行タイミングを制御する。電源管理回路93から電断検知信号が入力された場合、又は、タイマー回路113からタイムアウト信号が入力された場合には、割込みコントローラ112は、割込み処理開始指令を示す割込要求信号をメインCPU101に出力する。メインCPU101は、タイマー回路113からのタイムアウト信号に応じて割込みコントローラ112から入力される割込要求信号に基づいて、入力ポートチェック処理、リール制御処理、通信データ送信処理、7セグLED駆動処理、タイマー更新処理等の各種割込み処理を行う。
タイマー回路113(PTC)は、クロック回路105で生成されたクロックパルス信号(メインCPU作動用のクロックパルス信号を分周器(不図示)で分周された周波数のクロックパルス信号)で動作する(経過時間をカウントする)。そして、タイマー回路113は、1.1172msecの周期で割込みコントローラ112にタイムアウト信号(トリガー信号)を出力する。
第1シリアル通信回路114は、主制御基板71から副制御基板72にデータ(各種制御指令(コマンド))を送信する際のシリアル送信動作を制御する回路である。第2シリアル通信回路115は、主制御基板71から試験機用第2インタフェースボード402にデータを送信する際のシリアル送信動作を制御する回路である。
<副制御回路>
次に、図8を参照して、副制御基板72に実装される副制御回路150(副制御手段)の構成について説明する。図8は、パチスロ1の副制御回路150の構成例を示すブロック図である。
副制御回路150は、主制御回路90と電気的に接続されており、主制御回路90から送信されるコマンドに基づいて演出内容の決定や実行等の処理を行う。副制御回路150は、基本的に、サブCPU151、サブRAM152、GPU(Graphics Processing Unit)153、VRAM(Video RAM)154、ドライバ155を含んで構成される。なお、VRAM154(描画用RAM)には、後述のフレームバッファ及びスクリーンバッファが含まれる。なお、サブCPU151は、本発明に係る制御処理部の一具体例を示すものであり、GPU153は、本発明に係る画像処理部の一具体例を示すものであり、VRAM154は、揮発性記憶部の一具体例を示すものである。
サブCPU151は、ロムカートリッジ基板86に接続される。また、ドライバ155は、表示装置中継基板87に接続される。すなわち、ドライバ155は、表示装置中継基板87を介してプロジェクタ213及びサブ表示装置18に接続される。
サブCPU151は、主制御回路90から送信されたコマンドに応じて、ロムカートリッジ基板86に記憶されている制御プログラムに従い、映像、音、光の出力の制御を行う。ロムカートリッジ基板86は、基本的に、プログラム記憶領域とデータ記憶領域とによって構成される。
プログラム記憶領域には、サブCPU151が実行する制御プログラムが記憶される。例えば、制御プログラムには、主制御回路90との通信を制御するための主基板通信タスクや、演出用の乱数値を抽出し、演出内容(演出データ)の決定及び登録を行うための演出登録タスクを実行するための各種プログラムが含まれる。また、制御プログラムには、決定した演出内容に基づいて表示装置11による映像の表示を制御する描画制御タスク、LED群85等の光源による光の出力を制御するランプ制御タスク、スピーカ群84による音の出力を制御する音声制御タスク等を実行するための各種プログラムも含まれる。
データ記憶領域には、各種データテーブルを記憶する記憶領域、各演出内容を構成する演出データを記憶する記憶領域、映像の作成に関するアニメーションデータ(後述の画像データ及び仮想オブジェクトデータ等を含む)を記憶する記憶領域が含まれる。また、データ記憶領域には、BGMや効果音に関するサウンドデータを記憶する記憶領域、光の点消灯のパターンに関するランプデータを記憶する記憶領域等も含まれる。
サブRAM152は、本実施形態では、DRAM(Dynamic RAM)152aのような第1副記憶手段と、FRAM(登録商標:Ferroelectric RAM)152bのような第2副記憶手段とで構成される。第1副記憶手段は、各種データを記憶することが可能で、パチスロ1が無通電状態の場合に、記憶されたデータを保持することができない記憶手段である。一方、第2副記憶手段は、各種データを記憶することが可能で、パチスロ1が無通電状態の場合に、記憶されたデータを保持することができる記憶手段であり、上記のFRAMに限らず、SRAM(Static RAM)やEEPROM(登録商標:Electrically Erasable Programmable ROM)等を使用してもよい。
また、サブRAM152には、決定された演出内容や演出データを登録する格納領域や、主制御回路90から送信されるサブフラグ(内部当籤役)等の各種データを格納する格納領域が設けられる。
サブCPU151、GPU153(レンダリングプロセッサ)、VRAM154及びドライバ155は、演出内容により指定されたアニメーションデータにしたがって映像を作成し、作成した映像を表示装置11(プロジェクタ213)及び/又はサブ表示装置18で表示させる。なお、表示装置11(プロジェクタ213)及びサブ表示装置18は、副制御基板72により、それぞれ個別に制御される。
また、サブCPU151は、演出内容により指定されたサウンドデータにしたがってBGMなどの音をスピーカ群84により出力させる。また、サブCPU151は、演出内容により指定されたランプデータにしたがってLED群85の点灯及び消灯を制御する。
<リサイクルデータの取得・記録の概要>
次に、図9を参照して、本発明の一実施形態におけるリサイクルデータの取得及び記録の概要について説明する。図9は、本発明においてリサイクルデータを取得及び記録し、さらに、当該記録されたリサイクルデータを外部の端末装置500に出力する概要を示した図である。
遊技機の主制御基板71(メイン)は、遊技機の各部品の動作を、その部品に対応するスイッチやセンサからの信号等によって取得する。例えば、図9に示すように、主制御基板71は、左リール3L、中リール3C、右リール3R、スタートレバー16、左ストップボタン17L、中ストップボタン17C、右ストップボタン17R、ホッパー装置51、セレクタ66、設定用鍵型スイッチ54、ドア開閉監視スイッチ67、ベットボタン(MAXベットボタン15a、1ベットボタン15b)といった部品が、遊技者の操作や他の制御に基づいて動作したことを、関連するスイッチやセンサからの信号により把握する。
例えば、左リール3L、中リール3C、及び右リール3Rの動作(1回転)は、それぞれ対応するリールインデックスセンサー1~3によって検知され、主制御基板71により把握される。スタートレバー16の動作は、スタートスイッチ79によって検知され、主制御基板71により把握される。同様に、他の部品についても、その動作が、スイッチやセンサによって検知され、主制御基板71により把握される。
主制御基板71は、それぞれの部品に対応するビットを、動作が検出された場合にオン(「1」)にセットし、検出されなかった場合にオフ(「0」)にセットし、これらのデータを、無操作コマンドのパラメータとして所定のタイミングで副制御基板72に送信する。
主制御基板71から副制御基板72に対しては、こうした無操作コマンドのほか、様々なデータが送信されるが、副制御基板72から主制御基板71に対してデータが送信されることはない。
副制御基板72では、主制御基板71から、それぞれの部品についての動作状況を示すビットを受信し、そのビットがオフからオンに遷移した場合に(すなわち、動作していない状態から、動作した状態に変化した場合に)、その部品の動作回数に「1」を加算し、こうして累積加算された結果を、最終的にサブRAM152(FRAM152b)に記録する。
なお、ここで、副制御基板72に接続されている十字キーやエンターキー等の部品については、主制御基板71からの無操作コマンドから把握されるわけではなく、副制御基板72によって直接、その部品についての動作状況を示すビットを把握し、そのビットがオフからオンに遷移した場合に(すなわち、動作していない状態から、動作した状態に変化した場合に)、その部品の動作回数に「1」を加算する。
なお、ここでは、主制御基板71により取得される各部品の動作状況は、無操作コマンドにより副制御基板72に送信されているが、こうした部品に関する動作状況は、様々なルートやタイミングで主制御基板71から副制御基板72に送信されうる。また、特定の部品に直接関係のない事象に関する回数、時間、数量等についても、主制御基板71から副制御基板72に送信され記録される。例えば、総通電時間、払出枚数、投入枚数、ドア開閉回数、電源ON回数、設定変更回数、各エラー回数等の項目がリサイクルデータに含まれる。
ここで、払出枚数は、ホッパー装置51の使用頻度を評価するために用いることが可能で、払出コマンドを受信した時や、(無操作コマンドによって)ホッパー装置51のホッパーカウントスイッチからのデータを受信した時に集計したものである。また、投入枚数は、セレクタ66の使用頻度を評価するために用いることが可能で、投入コマンドを受信した時や、(無操作コマンドによって)セレクタ66のメダル通過チェックスイッチ1、2からのデータを受信した時に集計したものである。
このような集計処理によって、それぞれの回数に係る値が累積加算され、それらのデータが、FRAM152bにリサイクルデータとして記録される。ここで、端末装置500をパチスロ1に接続して、このリサイクルデータを読み出すことができ、読み出されたリサイクルデータは、端末装置500のディスプレイに表示したり、端末装置500で実行されるアプリケーション等で分析・管理したりすることができる。
また、リサイクルデータには、累積加算された回数の値ごとに、累積開始日時や最終更新日時を含むようにできる。また、リサイクルデータがどの遊技機に関するものであるかを示すための遊技機識別IDを含むようにすることもできる。
リサイクルデータを用いて、リサイクルデータで示された動作回数と部品の耐久回数とを比較し、当該部品の流用(再利用)可否を判断することができる。例えば、スタートレバー16の耐久回数が仕様上、100万回であり、回収した遊技機におけるスタートレバー16の動作回数(スタートレバー16の対応するスタートスイッチ79に関するリサイクルデータ)が、上記仕様の100万回に対して所定の割合以下であった場合に、そのスタートレバー16とスタートスイッチ79の組、あるいはどちらかを流用して新たな遊技機に組み込み、所定の割合より大きい場合に、スタートレバー16とスタートスイッチ79を新たな遊技機に組み込まないように判断する。
<主制御回路の動作説明>
[メインCPUの制御による割込み処理(1.1172msec)]
次に、図10を参照して、1.1172msec周期で、メインCPU101が行う割込み処理について説明する。なお、図10は、割込み処理の手順を示すフローチャートである。1.1172msec周期で繰り返し実行される割込み処理は、タイマー回路113(PTC)の初期化処理で設定されたタイマー回路113のタイムアウト信号の出力タイミングに基づいて発生する割込みコントローラ112からの割込要求信号がメインCPU101に入力された際に実行される処理である。
まず、メインCPU101は、レジスタの退避処理を行う(ステップS101)。次いで、メインCPU101は、入力ポートチェック処理を行う(ステップS102)。なお、入力ポートチェック処理の詳細については、後述の図11を参照しながら後で説明する。
次いで、メインCPU101は、リール制御処理を行う(ステップS103)。この処理では、メインCPU101は、全リールの回転開始が要求されたときに、左リール3L、中リール3C、及び右リール3Rの回転を開始し、その後、各リールが一定速度で回転するように、3つのステッピングモータを駆動制御する。また、滑り駒数が決定されたときは、メインCPU101は、該当するリールの図柄カウンタを滑り駒数分だけ更新する。そして、メインCPU101は、更新された図柄カウンタが停止予定位置に対応する値に一致する(停止予定位置の図柄が表示窓の有効ライン上の領域に到達する)のを待って、該当するリールの回転の減速及び停止が行われるように、対応するステッピングモータを駆動制御する。
次いで、メインCPU101は、通信データ送信処理を行う(ステップS104)。この処理では、主に、通信データ格納領域に格納された各種コマンドを主制御回路90の第1シリアル通信回路114を介して副制御回路200に送信する。なお、通信データ送信処理の詳細については、後述の図13を参照しながら後で説明する。
次いで、メインCPU101は、投入メダル通過チェック処理を行う(ステップS105)。この処理では、メインCPU101は、各メダルセンサの検出結果(メダルセンサ入力状態)に基づいて、投入メダルがセレクタ66を通過したか否かのチェック処理を行う。
次いで、メインCPU101は、7セグLED駆動処理を行う(ステップS106)。この処理では、メインCPU101は、情報表示器6に含まれる各種7セグLEDを駆動制御して、例えば、メダルの払出枚数やクレジット枚数、ストップボタンの押し順データなどを表示する。
次いで、メインCPU101は、タイマー更新処理を行う(ステップS107)。この処理では、メインCPU101は、セットされた各種タイマーのカウント(減算)処理を行う。
次いで、メインCPU101は、エラー検知処理を行う(ステップS108)。この処理では、メインCPU101は、ホッパー装置51に設けられたホッパーカウントスイッチ(不図示)の状態に基づいて、ホッパー装置51にホッパジャム(ホッパー装置51内でメダルが詰まった状態)エラーの発生を検知した場合には、HJ(ホッパジャム)エラーの発生を、情報表示器6の(払出枚数をデジタル表示するための)2桁の7セグLEDに表示させる。さらに、メインCPU101は、セレクタ66のメダル通過チェックスイッチ1、及びメダル通過チェックスイッチ2の状態に基づいて、メダル通過時間エラー(CE)、メダル詰まりエラー(CR)の発生を検知し、HJと同じく7セグLEDに表示させる。さらに、メインCPU101は、メダル補助収納庫52のメダル補助収納庫スイッチ75の状態に基づいて、補助庫満杯エラー(CO)の発生を検知し、HJと同じく7セグLEDに表示させる。また、発生中のエラーが解除された場合には、情報表示器6の7セグLEDに表示しているエラーの表示を消去する。
さらに、メインCPU101は、HJ、CE、CR、及びCOのいずれか、または複数のエラーが発生している場合、または、発生中のエラー(HJ、CE、CR、及びCO)が解除された場合には、副制御回路200に送信するエラーコマンドのデータを生成し、該コマンドデータを通信データ格納処理(図14参照)によりメインRAM103に設けられた通信データ格納領域に保存する。通信データ格納領域に保存されたエラーコマンドは、後述の図13に示す通信データ送信処理により、主制御回路90から副制御回路200に送信される。
次いで、メインCPU101は、ドア開閉チェック処理を行う(ステップS109)。ドア開閉チェック処理では、メインCPU101は、ドア開閉監視スイッチ67のオン(ドア閉)/オフ(ドア開)状態をチェックすることにより、フロントドア2b(図2参照)の開閉状態をチェックする。
次いで、メインCPU101は、試射試験信号制御処理を行う(ステップS110)。この処理では、第2インタフェースボート等を介して試験機に各種試験信号の出力する際の制御処理が行われる。また、この処理は、メインRAM103の規定外作業領域を用いて実行される。なお、本実施形態では、この処理は、試射試験時以外のとき(パチスロ1が遊技店に設置された後)にも行われるが、この時には、主制御基板71が第2インタフェースボート等を介して試験機に接続されていないので、各種試験信号は生成されても出力はされない。
次いで、メインCPU101は、レジスタの復帰処理を行う(ステップS111)。そして、ステップS111の処理後、メインCPU101は、割込み処理を終了する。
[入力ポートチェック処理]
次に、図11を参照して、割込み処理(図10参照)中のステップS102で行う入力ポートチェック処理について説明する。なお、図11は、入力ポートチェック処理の手順を示すフローチャートである。
この処理では、外部バスインタフェース104を介して接続されたスタートスイッチ79、ストップスイッチ等の各種スイッチや、左リール3L、中リール3C及び右リール3Rの各々に設けられたインデックスセンサ(不図示)等の各種センサから入力される信号等がチェックされる。本実施形態では、キャビネット側中継基板44、ドア中継端子板68、及びリール中継端子板74等を経由し、これらの各種スイッチや各種センサからの信号が、外部バスインタフェース104を介して入力ポート用IC(不図示)の入力ポートに伝えられる。
また、本実施形態のメインRAM103には、メインCPU101が、外部バスインタフェース104に接続された入力ポート用ICの3つの入力ポート(第1入力ポート、第2入力ポート、第3入力ポート)の状態を格納するために、それぞれ入力ポート格納領域が割り当てられている。ここで、入力ポート格納領域は、第1入力ポートの現在の状態を格納するための入力ポート格納領域1、第2入力ポートの現在の状態を格納するための入力ポート格納領域2、第3入力ポートの現在の状態を格納するための入力ポート格納領域3とで構成される。
そして、メインCPU101は、この処理において、入力ポート格納領域1、入力ポート格納領域2、入力ポート格納領域3のそれぞれについて、それぞれの入力ポート格納領域の0バイト目を1バイト目に格納し、対応する入力ポートの現在の状態を読み込み、その読み込んだ情報を入力ポート格納領域の0バイト目に保存する。
図11の入力ポートチェック処理において、まず、メインCPU101は、第1入力ポートの状態(内容)をBレジスタに読み込む(ステップS121)。次いで、入力ポート格納領域1の0バイト目のデータをAレジスタに読み込み(ステップS122)、入力ポート格納領域1の1バイト目のデータをCレジスタに読み込む(ステップS123)。
次に、Bレジスタに記憶されているデータを入力ポート格納領域1の0バイト目に格納し(ステップS124)、Aレジスタに記憶されているデータを入力ポート格納領域1の1バイト目に格納する(ステップS125)。
このとき、ここまでの処理により、Aレジスタには、1割込前(前回の割り込みタイミング)における第1入力ポートの状態が記憶され、Bレジスタには、現在の第1入力ポートの状態が記憶され、Cレジスタには、2割込前(前々回の割り込みタイミング)における第1入力ポートの状態が記憶されることになる。
ここで、Aレジスタ、Bレジスタ、Cレジスタからオンエッジ情報を生成し、生成されたオンエッジ情報を入力ポート格納領域1の2バイト目に格納する(ステップS126)。オンエッジ情報は、例えば、論理式[B and (A xor B)]により求められる。
なお、この論理式のA、B、Cは、それぞれAレジスタ、Bレジスタ、Cレジスタのデータを示しており、オンエッジ情報は、それぞれのレジスタの同じビット同士が演算され、結果的に8個のオンエッジ情報が得られる。このオンエッジ情報は、第1入力ポートの状態が、オフからオンに変化した場合(すなわち、前回の割り込みタイミングにおける第1入力ポートの状態(Aレジスタのビットデータ)が0で、現在の第1入力ポートの状態(Bレジスタのビットデータ)が1の場合)に、オン(1)になる。
次に、メインCPU101は、第2入力ポートの状態(内容)をBレジスタに読み込む(ステップS127)。次いで、入力ポート格納領域2の0バイト目のデータをAレジスタに読み込み(ステップS128)、入力ポート格納領域2の1バイト目のデータをCレジスタに読み込む(ステップS129)。
次に、Bレジスタに記憶されているデータを入力ポート格納領域2の0バイト目に格納し(ステップS130)、Aレジスタに記憶されているデータを入力ポート格納領域2の1バイト目に格納する(ステップS131)。
このとき、ここまでの処理により、Aレジスタには、1割込前(前回の割り込みタイミング)における第2入力ポートの状態が記憶され、Bレジスタには、現在の第2入力ポートの状態が記憶され、Cレジスタには、2割込前(前々回の割り込みタイミング)における第2入力ポートの状態が記憶されることになる。
ここで、Aレジスタ、Bレジスタ、Cレジスタからオンエッジ情報を生成し、生成されたオンエッジ情報を入力ポート格納領域2の2バイト目に格納する(ステップS132)。オンエッジ情報は、例えば、論理式[B and (A xor B)]により求められる。
なお、この論理式のA、B、Cは、上述したように、それぞれAレジスタ、Bレジスタ、Cレジスタのデータを示しており、オンエッジ情報は、それぞれのレジスタの同じビット同士が演算され、結果的に8個のオンエッジ情報が得られる。このオンエッジ情報は、第2入力ポートの状態が、オフからオンに変化した場合(すなわち、前回の割り込みタイミングにおける第2入力ポートの状態(Aレジスタのビットデータ)が0で、現在の第2入力ポートの状態(Bレジスタのビットデータ)が1の場合)に、オン(1)になる。
次に、メインCPU101は、第3入力ポートの状態(内容)をBレジスタに読み込む(ステップS133)。次いで、入力ポート格納領域3の0バイト目のデータをAレジスタに読み込み(ステップS134)、入力ポート格納領域3の1バイト目のデータをCレジスタに読み込む(ステップS135)。
次に、Bレジスタに記憶されているデータを入力ポート格納領域3の0バイト目に格納し(ステップS136)、Aレジスタに記憶されているデータを入力ポート格納領域3の1バイト目に格納する(ステップS137)。
このとき、ここまでの処理により、Aレジスタには、1割込前(前回の割り込みタイミング)における第3入力ポートの状態が記憶され、Bレジスタには、現在の第3入力ポートの状態が記憶され、Cレジスタには、2割込前(前々回の割り込みタイミング)における第3入力ポートの状態が記憶されることになる。
ここで、Aレジスタ、Bレジスタ、Cレジスタからオンエッジ情報を生成し、生成されたオンエッジ情報を入力ポート格納領域3の2バイト目に格納する(ステップS138)。オンエッジ情報は、例えば、論理式[B and (A xor B)]により求められる。
なお、この論理式のA、B、Cは、上述したように、それぞれAレジスタ、Bレジスタ、Cレジスタのデータを示しており、オンエッジ情報は、それぞれのレジスタの同じビット同士が演算され、結果的に8個のオンエッジ情報が得られる。このオンエッジ情報は、第3入力ポートの状態が、オフからオンに変化した場合(すなわち、前回の割り込みタイミングにおける第3入力ポートの状態(Aレジスタのビットデータ)が0で、現在の第3入力ポートの状態(Bレジスタのビットデータ)が1の場合)に、オン(1)になる。
[入力ポート格納領域]
図11に関して上述した入力ポート格納領域1~3の例が、図12に示されている。上述したように、外部バスインタフェース104に接続された入力ポート用ICの3つの入力ポート(第1入力ポート、第2入力ポート、第3入力ポート)の状態を格納するために、メインRAM103に、それぞれ入力ポート格納領域1~3が割り当てられている。
本実施形態では、第1入力ポートは、ストップスイッチ1、ストップスイッチ2、ストップスイッチ3、MAXBETスイッチ、1BETスイッチ、精算スイッチ78、スタートスイッチ79、及びドア開閉監視スイッチ67からの信号が伝達されるように、当該各スイッチと接続され、それに応じて、入力ポート格納領域1にそれぞれのスイッチの状態(内容)を表すビットが保持される。入力ポート格納領域1は、8ビット(1バイト)で構成されている。なお、図12では、入力ポート格納領域1の1バイト目(第1入力ポートの現在の状態)のみが示されており、2バイト目(第1入力ポートの1割込み周期前の状態)と3バイト目(第1入力ポートのオンエッジ情報)は表示を省略した。入力ポート格納領域1の2バイト目と3バイト目も、1バイト目と同様に、上記各スイッチに対応する各ビットで構成されている。
ストップスイッチ1、ストップスイッチ2、及びストップスイッチ3は、それぞれの対応するストップボタン(ストップボタン17L,17C,17R)が遊技者により押下されたこと(停止操作)を検出するスイッチであり、これらのスイッチは、ストップスイッチ基板80に設けられる。また、ストップスイッチ基板80からの信号は、ドア中継端子板68、外部バスインタフェース104等を介して第1入力ポートに入力される。
また、MAXBETスイッチは、MAXベットボタン15aが遊技者により押下されたことを検出するスイッチであり、1BETスイッチは、1ベットボタン15bが遊技者により押下されたことを検出するスイッチであり、これらのスイッチは、BETスイッチ77に設けられる。また、BETスイッチ77からの信号は、ドア中継端子板68、外部バスインタフェース104等を介して第1入力ポートに入力される。
精算スイッチ78は、精算ボタンが遊技者により押下されたことを検出するスイッチであり、スタートスイッチ79は、スタートレバー16が遊技者により操作されたこと(開始操作)を検出するスイッチであり、これらのスイッチからの信号は、ドア中継端子板68、外部バスインタフェース104等を介して第1入力ポートに入力される。
また、ドア開閉監視スイッチ67は、フロントドア2bの開閉を検知し、検知した信号は、ドア中継端子板68、外部バスインタフェース104等を介して第1入力ポートに入力される。
第2入力ポートは、メダル通過チェックスイッチ1、リセットスイッチ76、及びメダル通過チェックスイッチ2からの信号が伝達されるように、当該各スイッチと接続され、それに応じて、入力ポート格納領域2にそれぞれのスイッチの状態(内容)を表すビットが保持される。入力ポート格納領域2は、8ビット(1バイト)で構成されている。なお、図12では、入力ポート格納領域2の1バイト目(第2入力ポートの現在の状態)のみが示されており、2バイト目(第2入力ポートの1割込み周期前の状態)と3バイト目(第2入力ポートのオンエッジ情報)は表示を省略した。入力ポート格納領域2の2バイト目と3バイト目も、1バイト目と同様に、上記各スイッチに対応する各ビットで構成されている。また、図12の例では、入力ポート格納領域2の0、1、3、6、7ビット目は対応するスイッチがなく、未使用となっている。
メダル通過チェックスイッチ1、及びメダル通過チェックスイッチ2は、メインCPU101が、投入メダル通過チェック処理を行った場合に、セレクタ66のメダルセンサからの検出信号を検知し、検出された信号を、ドア中継端子板68、外部バスインタフェース104等を介して第2入力ポートに入力される。メダル通過チェックスイッチ1は、セレクタ66の内部をメダルが通過するメダル通路を形成するメダルレール802の上流側で、投入されたメダルを検出する上流側メダルセンサ(第1メダルセンサ)806の検出結果を検出し、メダル通過チェックスイッチ2は、メダルレール802の下流側で、投入されたメダルを検出する下流側メダルセンサ(第2メダルセンサ)806の検出結果を検出する。
リセットスイッチ76は、例えば、パチスロ1の設定を変更する際に用いられるスイッチであって、リセットスイッチ76が操作されたことを示す検出信号は、キャビネット側中継基板44、外部バスインタフェース104等を介して第2入力ポートに入力される。
第3入力ポートは、リールインデックスセンサー1、リールインデックスセンサー2、リールインデックスセンサー3、ホッパーカウントスイッチ、メダル補助収納庫スイッチ、及び設定用鍵型スイッチからの信号が伝達されるように、当該各スイッチと接続され、それに応じて、入力ポート格納領域3にそれぞれのスイッチの状態(内容)を表すビットが保持される。入力ポート格納領域3は、8ビット(1バイト)で構成されている。なお、図12では、入力ポート格納領域3の1バイト目(第3入力ポートの現在の状態)のみが示されており、2バイト目(第3入力ポートの1割込み周期前の状態)と3バイト目(第3入力ポートのオンエッジ情報)は表示を省略した。入力ポート格納領域3の2バイト目と3バイト目も、1バイト目と同様に、上記各スイッチに対応する各ビットで構成されている。また、図12の例では、入力ポート格納領域3の5、6ビット目は対応するスイッチがなく、未使用となっている。
リールインデックスセンサー1~3は、リールの回転状態を検出するセンサーであって、発光部及び受光部を有する光センサーである。この光センサーが、各リールの所定の位置に設けられたリールインデックス(検知片)を1回転につき1回検知することにより、メインCPU101は、各リールの回転状態を検知することができる。リールインデックスセンサー1は、リール3Lの回転状態を検知し、リールインデックスセンサー2は、リール3Cの回転状態を検知し、リールインデックスセンサー3は、リール3Rの回転状態を検知する。
リールインデックスセンサー1~3からの信号は、リール中継端子板74、外部バスインタフェース104等を介して第3入力ポートに入力される。
ホッパーカウントスイッチは、ホッパー装置51に設けられ、ホッパー装置51がメダルを払い出す場合に(貯留されたメダルが例えば50枚を超えたとき、又は、精算ボタンが押下されてメダルの精算が実行されるとき)、払い出されたメダルをカウントする。ホッパーカウントスイッチからの信号は、キャビネット側中継基板44、外部バスインタフェース104等を介して第3入力ポートに入力される。
メダル補助収納庫スイッチ75は、メダル補助収納庫52が、ホッパー装置51から溢れ出たメダルを収納し、収納されたメダルがメダル補助収納庫52で満杯になったことを検知するスイッチであり、例えば、メダル補助収納庫52の上部に設けられたセンサが、ホッパー装置51から溢れ出たメダルにより通電状態となった場合にオンになる。メダル補助収納庫スイッチ75からの信号は、キャビネット側中継基板44、外部バスインタフェース104等を介して第3入力ポートに入力される。
設定用鍵型スイッチ54は、主制御基板ケース55に設けられる。設定用鍵型スイッチ54は、例えば、パチスロ1の設定値(設定1~設定6)を変更するとき、もしくは、パチスロ1の設定を確認するときにオンになる。設定用鍵型スイッチ54からの信号は、外部バスインタフェース104等を介して第3入力ポートに入力される。
なお、設定値(設定1~設定6)は、後述の内部抽籤処理(後述の図16参照)が、内部抽籤役を決定する際に取得した乱数値に基づいて抽籤する際のメインROM102に設定値別に記憶された内部抽籤テーブル(不図示)を選択するために使用される設定値である。
[通信データ送信処理]
次に、図13を参照して、割込み処理(図10参照)中のステップS104で行う通信データ送信処理について説明する。なお、図13は、通信データ送信処理の手順を示すフローチャートである。
まず、メインCPU101は、WDT設定処理を行う(ステップS141)。この処理では、メインCPU101は、リセットコントローラ106内のWDTをリスタートさせる処理などを行う。
次に、メインCPU101は、通信データが送信完了しているか否かを判別する(ステップS142)。具体的には、メインCPU101は、第1シリアル通信回路114(SCU1)のコマンドステータスレジスタ(不図示)に格納されているデータを参照し、送信完了を示すデータが格納されていれば、通信データは送信完了していると判別し、送信完了を示すデータが格納されていなければ、通信データは送信完了していないと判別する。
ステップS142において、メインCPU101が、通信データは送信完了していないと判別したとき(ステップS142がNO判定の場合)、メインCPU101は、通信データ送信処理を終了し、処理を割込み処理(図10参照)中のステップS105の処理に移す。一方、ステップS142において、メインCPU101が、通信データは送信完了していると判別したとき(ステップS142がYES判定の場合)、メインCPU101は、通信データ取得処理を行う(ステップS143)。この処理では、メインCPU101は、メインRAM103の通信データ格納領域から通信データ(コマンドデータ)を取得する処理を行う。
次いで、メインCPU101は、取得した通信データの中に未送信データがあるか否かを判別する(ステップS144)。ステップS144において、メインCPU101が、取得した通信データの中に未送信データがあると判別したとき(ステップS144がYES判定の場合)、メインCPU101は、後述のステップS148の処理を行う。
一方、ステップS144において、メインCPU101が、取得した通信データの中に未送信データがないと判別したとき(ステップS144がNO判定の場合)、メインCPU101は、無操作コマンドデータを各レジスタにセットする(ステップS145)。
このように、無操作コマンドデータは、遊技者の遊技操作(例えば、遊技を進行させるための操作としての、投入操作、開始操作、及び停止操作など)に関連する情報を送信しない場合の中うめデータとして各パラメータが設定され、送信される。なお、無操作コマンドデータの各パラメータには、例えば、パチスロ1における、各スイッチのオン状態/オフ状態を示すパラメータや、各センサのオン状態/オフ状態を示すパラメータ(例えば、図12に示す入力ポート格納領域1~3に格納された現在の情報)が設定される。これにより、副制御回路200側でこれらのスイッチやセンサに係る部品の動作回数(使用頻度)などを把握することができる。
次いで、メインCPU101は、通信データ格納処理を行う(ステップS146)。すなわち、メインCPU101は、ステップS145で生成された無操作コマンドデータをメインRAM103の通信データ格納領域に格納する処理を行う。なお、通信データ格納処理の詳細については、後述の図14を参照しながら後で説明する。
次いで、メインCPU101は、通信データ取得処理を行う(ステップS147)。すなわち、メインCPU101は、ステップS146で通信データ格納領域に格納された無操作コマンドデータを取得し、メインRAM103の通信バッファに移す処理を行う。
このように、本実施形態では、主制御回路90から副制御回路200に送信する通信データがない場合であっても、割込み処理(図10参照)により最短約20msecの間隔で、少なくとも無操作コマンドが送信されるようになっている。したがって、主制御回路90から副制御回路200に送信する通信データがないことに起因して、外部から不正な通信データが送信されてしまうことを防止することが可能となる。
ステップS147の処理後、又はステップS144がYES判定の場合、メインCPU101は、1パケット分のバッファサイズを送信カウンタにセットする(ステップS148)。なお、本実施形態では、1パケット分の送信データは8バイトであることから、1パケット分のバッファサイズも同様に8バイトで構成されている。また、本実施形態では、通信データ格納領域に複数の通信データ(コマンドデータ)が格納されている場合には、格納された順序で(格納が古いものから先に)送信される(FIFO形式)。
次いで、メインCPU101は、メインRAM103の通信バッファから送信データを取得して送信データレジスタにセットする(ステップS149)。具体的には、メインCPU101は、第1シリアル通信回路114(SCU1)の送信データレジスタ(不図示)に送信データを1バイト単位でセットする。これにより、セットされた送信データは、第1シリアル通信回路114(SCU1)の送信シフトレジスタ(不図示)に転送され、1パケット分ずつ送信される。
次いで、メインCPU101は、通信バッファのアドレスを「1」更新(+1)する(ステップS150)。次いで、メインCPU101は、送信カウンタを「1」減算する(ステップS151)。次いで、メインCPU101は、送信カウンタは「0」であるか否かを判別する(ステップS152)。すなわち、メインCPU101は、1パケット分の送信データの送信が完了したか否かを判別する。ステップS152において、メインCPU101が、送信カウンタは「0」でないと判別したとき(ステップS152がNO判定の場合)、メインCPU101は、処理をステップS149の処理に戻し、ステップS149以降の処理を繰り返す。
一方、ステップS152において、メインCPU101が、送信カウンタは「0」であると判別したとき(ステップS152がYES判定の場合)、メインCPU101は、通信データポインタ更新処理を行う(ステップS153)。なお、通信データポインタ更新処理の詳細については、後述の図15を参照しながら後で説明する。
そして、ステップS153の処理後、メインCPU101は、通信データ送信処理を終了し、処理を割込み処理(図10参照)中のステップS105の処理に移す。
[通信データ格納処理]
次に、図14を参照して、通信データ格納処理について説明する。なお、図14は、通信データ格納処理の手順を示すフローチャートである。
まず、メインCPU101は、Aレジスタにセットされているデータを通信コマンド種別のデータとして、メインRAM103内の通信データ一時格納領域(不図示)に格納する(ステップS161)。次いで、メインCPU101は、Hレジスタ及びLレジスタにセットされているデータを、それぞれ通信コマンドのパラメータ1及び2として、メインRAM103内の通信データ一時格納領域に格納する(ステップS162)。例えば、Aレジスタにセットされているデータが無操作コマンドを示すデータの場合は、Hレジスタのデータは、図12に示した入力ポート格納領域1の現在の8ビットのデータであり、Lレジスタのデータは、図12に示した入力ポート格納領域2の現在の8ビットのデータである。
次いで、メインCPU101は、Dレジスタ及びEレジスタにセットされているデータを、それぞれ通信コマンドのパラメータ3及び4として、メインRAM103内の通信データ一時格納領域に格納する(ステップS163)。次いで、メインCPU101は、Bレジスタ及びCレジスタにセットされているデータを、それぞれ通信コマンドのパラメータ5及び遊技状態のデータとして、メインRAM103内の通信データ一時格納領域に格納する(ステップS164)。例えば、Aレジスタにセットされているデータが無操作コマンドを示すデータの場合は、Dレジスタのデータは、図12に示した入力ポート格納領域3の現在の8ビットのデータである。
次いで、メインCPU101は、Aレジスタ~Lレジスタにセットされているデータ値から通信コマンドのBCCデータ(サム値)を生成する(ステップS165)。次いで、メインCPU101は、生成したBCCデータをメインRAM103内の通信データ一時格納領域に格納する(ステップS166)。
ステップS166の処理後、メインCPU101は、メインRAM103内の通信データ格納領域に空きがあるか否かを判別する(ステップS167)。なお、本実施形態では、通信データ格納領域に最大9個のコマンドデータが格納可能である。
ステップS167において、メインCPU101が、通信データ格納領域に空きがないと判別したとき(ステップS167がNO判定の場合)、メインCPU101は、通信データ格納処理を終了する。
一方、ステップS167において、メインCPU101が、通信データ格納領域に空きがあると判別したとき(ステップS167がYES判定の場合)、メインCPU101は、上述したステップS161~ステップS166の処理により通信データ一時格納領域に格納された各データを通信データ(コマンドデータ)として、通信データポインタが示す位置の通信データ格納領域に格納(登録)する(ステップS168)。
次いで、メインCPU101は、通信データポインタ更新処理を行う(ステップS169)。この処理では、メインCPU101は、主に、通信データ格納領域内における通信データの格納アドレスを示す通信データポインタの更新処理を行う。なお、通信データポインタ更新処理の詳細については、後述の図15を参照しながら後で説明する。
そして、ステップS169の処理後、メインCPU101は、通信データ格納処理を終了する。
上述のように、本実施形態では、1パケット(8バイト)の通信データ(コマンドデータ)を作成する際に、各種パラメータをレジスタから転送して通信データ一時格納領域(通信バッファ)に格納する。このようなコマンドデータの作成手法では、コマンド生成時に各レジスタに格納されているデータがそのままコマンドデータの各種パラメータとして通信データ一時格納領域に格納される。それゆえ、未使用パラメータを含むコマンドデータを作成した時には、作成時毎に、未使用パラメータの値が不定値となる。これにより、通信データの解析を困難にしてゴト等の不正行為を抑止することができるとともに、不必要なゴト対策処理を加える必要がないため、ゴト対策処理の追加による、主制御回路90のプログラム容量の圧迫を抑制することができる。
[通信データポインタ更新処理]
次に、図15を参照して、通信データ格納処理中のステップS169で行う通信データポインタ更新処理について説明する。なお、図15は、通信データポインタ更新処理の手順を示すフローチャートである。
まず、メインCPU101は、現在、セットされている通信データポインタの値を取得する(ステップS181)。
次いで、メインCPU101は、通信データポインタの値を1パケット分(8バイト)加算更新する(ステップS182)。なお、この処理において、更新後の通信データポインタの値が、通信データ格納領域の上限サイズ以上となる場合には、メインCPU101は、更新後の通信データポインタの値を「0」にセットし、これにより、通信データ格納領域に格納されているコマンドデータを全て無効にする(破棄した状態と同様の状態にする)。
本実施形態では、1回の送信動作で送信されるデータ量(1パケット)は8バイトである。すなわち、本実施形態では、一つの送信動作で一つのコマンドデータを送信することができる。また、本実施形態では、通信データ格納領域に最大9個のコマンドデータを格納可能であるので、通信データ格納領域の上限サイズは、72バイト(=8バイト×9)となる。それゆえ、本実施形態では、通信データポインタの範囲を「0」~「71」とし、ステップS182の処理において、更新後(通信データポインタを+8更新した場合)の通信データポインタの値が「71(上限値)」を超えるような値となる場合には、更新後の通信データポインタの値を「0」にセットして(通信データの格納先のアドレスを先頭アドレスに戻して)、通信データ格納領域に格納されているコマンドデータを全て無効にする(破棄した状態と同様の状態にする)。なお、通信データポインタの値を「0」にセットすると、次にコマンドデータを通信データ格納領域に格納する場合には、通信データ格納領域の先頭アドレスから格納されるので、その前に格納されていたコマンドデータは新たなコマンドデータで上書きされることになる。それゆえ、本実施形態では、通信データポインタの値が「71(上限値)」を超えた場合に、通信データ格納領域を初期化(クリア)する必要はない。
そして、ステップS182の処理後、メインCPU101は、通信データポインタ更新処理を終了する。
[メインCPUの制御によるパチスロのメイン処理]
次に、図16を参照して、メインCPU101の制御により実行されるパチスロ1のメイン処理(主要動作処理)について説明する。なお、図16は、メイン処理の手順を示すフローチャート(以下、メインフローという)である。
まず、メインCPU101は、初期化処理を行う(ステップS201)。この処理では、メインCPU101は、メインRAM103のサムチェック処理を行う。次に、設定用鍵型スイッチの状態に応じて、設定変更処理を行う。具体的には、サムチェック処理は、電断が発生した際に、生成されたメインRAM103に記憶されたサム値と、メインRAM103のサム値が記憶された領域以外のメインRAM103の全ての領域を1バイト毎に加算した加算結果とを比較し(又は、サム値と加算結果を減算し)、加算結果とサム値が一致(減算の場合は、「0」)したか否かを判定し、判定結果は一致しない(減算の場合は、「0」以外)と判定した時、RAMエラー(88)の発生を情報表示器6の(払出枚数をデジタル表示するための)2桁の7セグLEDに表示させる。また、発生中のエラーが解除された場合には、情報表示器6の7セグLEDに表示しているエラーの表示を消去する。
さらに、メインCPU101は、RAMエラーの発生及び解除に基づいて、副制御回路200に送信するエラーコマンドのデータを生成し、該コマンドデータを通信データ格納処理(図14参照)によりメインRAM103に設けられた通信データ格納領域に保存する。通信データ格納領域に保存されたエラーコマンドは、後述の図13に示す通信データ送信処理により、主制御回路90から副制御回路200に送信される。
次に、設定用鍵型スイッチがオン状態の場合に、設定変更処理を実行し、この設定変更処理の開始時に副制御回路200に送信する初期化コマンド(設定変更開始)を生成し、メインRAM103の所定範囲の領域を初期化(「00」で上書き)する。設定変更処理の終了時に副制御回路200に送信する初期化コマンド(設定変更終了)を生成する。初期化コマンド(設定変更開始/設定変更終了)は、コマンドデータを通信データ格納処理(図14参照)によりメインRAM103に設けられた通信データ格納領域に保存し、通信データ格納領域に保存された初期化コマンドは、後述の図13に示す通信データ送信処理により、主制御回路90から副制御回路200に送信される。
初期化処理において、設定用鍵型スイッチがオフ状態の場合は、設定変更処理は実行されず、遊技復帰処理が行われ、電断等の位置(すなわち、図16に示すRAM初期化処理(一遊技終了時開始アドレス)~RTチェック処理までのいずれかの処理)からメインループ(図16に示すRAM初期化処理(一遊技終了時開始アドレス)~RTチェック処理までの処理のループ内のいずれかの位置)が再開される。
初期化処理の後、メインループの先頭(ステップS202)から、または、遊技復帰処理により指定された再開位置(ステップS202~S217のいずれか)から通常の遊技処理が実行される。
次いで、メインCPU101は、RAM初期化処理を行う(ステップS202)。この処理では、メインCPU101は、メインRAM103の遊技用RAM領域内の「一遊技終了時」のアドレスを、初期化開始の先頭アドレスとして設定し、該先頭アドレスから遊技用RAM領域の最終アドレスまでの情報を消去(クリア)する。なお、この範囲の格納領域は、例えば、内部当籤役格納領域や表示役格納領域などの1回の単位遊技(ゲーム)ごとにデータの消去が必要な格納領域である。
次いで、メインCPU101は、メダル受付・スタートチェック処理を行う(ステップS203)。この処理では、メインCPU101は、各メダルセンサやスタートスイッチ79などの入力チェック処理等を行う。
なお、メインCPU101は、メダルの投入が検知された場合には、メダル投入コマンド生成格納処理を行い、メインCPU101は、副制御回路200に送信するメダル投入コマンドのデータを生成し、該コマンドデータを通信データ格納処理(図14参照)によりメインRAM103に設けられた通信データ格納領域に保存し、保存されたメダル投入コマンドは、図13に示した通信データ送信処理により、主制御回路90から副制御回路200に送信される。
次いで、メインCPU101は、乱数取得処理を行う(ステップS204)。この処理では、メインCPU101は、内部当籤役抽籤用の乱数値(0~65535:ハードラッチ乱数となる乱数回路110の乱数レジスタ0の値)やART関連の各種抽籤で用いられる演出用乱数値(0~65535:ソフトラッチ乱数となる乱数回路110の乱数レジスタ1~3の各値、0~255:ソフトラッチ乱数となる乱数回路110の乱数レジスタ4~7の各値)などを抽出し、該抽出した各種乱数値をメインRAM103に設けられた乱数値格納領域(不図示)に格納する。
次いで、メインCPU101は、内部抽籤処理を行う(ステップS205)。この処理では、メインCPU101は、ステップS204で抽出した乱数値(ハードラッチ乱数)に基づいた抽籤により内部当籤役の決定処理を行う。
次いで、メインCPU101は、図柄設定処理を行う(ステップS206)。この処理では、メインCPU101は、例えば、当り要求フラグステータス(フラグステータス情報)から内部当籤役を生成する処理、当り要求フラグデータの展開処理、当り要求フラグデータを当り要求フラグ格納領域を格納する処理等を行う。
次いで、メインCPU101は、スタートコマンド生成格納処理を行う(ステップS207)。この処理では、メインCPU101は、副制御回路200に送信するスタートコマンドのデータを生成し、該コマンドデータを通信データ格納処理(図14参照)によりメインRAM103に設けられた通信データ格納領域に保存する。通信データ格納領域に保存されたスタートコマンドは、図13に示した通信データ送信処理により、主制御回路90から副制御回路200に送信される。なお、スタートコマンドは、内部当籤役等を特定するパラメータ(サブフラグ等)を含んで構成される。
次いで、メインCPU101は、状態別制御処理を行う(ステップS208)。この処理では、メインCPU101は、主に、遊技状態に応じた遊技開始時処理(スタート処理)を行う。
次いで、メインCPU101は、リール停止初期設定処理を行う(ステップS209)。この処理では、メインCPU101は、リール停止初期設定テーブル(不図示)を参照し、内部当籤役及び遊技状態に基づいて、引込優先順位テーブル選択テーブル番号、引込優先順位テーブル番号、停止テーブル番号を取得する処理や、ストップボタン未作動カウンタに「3」を格納する処理などを行う。
次いで、メインCPU101は、リール回転開始処理を行う(ステップS210)。この処理では、メインCPU101は、全リールの回転開始を要求する。そして、全リールの回転開始が要求されると、一定の周期(1.1172msec)で実行される割込み処理(図10参照)により、3つのステッピングモータ(不図示)の駆動が制御され、左リール3L、中リール3C、及び右リール3Rの回転が開始される。次いで、各リールは、その回転速度が定速度に達するまで加速制御され、その後、該定速度が維持されるように制御される。
次いで、メインCPU101は、リール回転開始コマンド生成格納処理を行う(ステップS211)。この処理では、メインCPU101は、副制御回路200に送信するリール回転開始コマンドのデータを生成し、該コマンドデータを通信データ格納処理(図14参照)によりメインRAM103に設けられた通信データ格納領域に保存する。通信データ格納領域に保存されたリール回転開始コマンドは、図13に示した通信データ送信処理により、主制御回路90から副制御回路200に送信される。なお、リール回転開始コマンドは、リールの回転開始動作開始されたことを示すパラメータを含んで構成される。
次いで、メインCPU101は、引込優先順位格納処理を行う(ステップS212)。この処理では、メインCPU101は、引込優先順位データを取得して、引込優先順位データ格納領域に格納する。
次いで、メインCPU101は、リール停止制御処理を行う(ステップS213)。この処理では、メインCPU101は、左ストップボタン17L、中ストップボタン17C、及び右ストップボタン17Rがそれぞれ押されたタイミングと内部当籤役とに基づいて該当するリールの回転の停止制御を行う。
次いで、メインCPU101は、入賞検索処理を行う(ステップS214)。この処理では、メインCPU101は、図柄コード格納領域(不図示)のデータを入賞作動フラグ格納領域(不図示)に格納する。また、この処理では、メインCPU101は、有効ラインに表示役が表示されたか否かを判定し、その判定結果に基づいて、メダルの払出枚数をセットする。
次いで、メインCPU101は、入賞チェック・メダル払出処理を行う(ステップS215)。この処理では、メインCPU101は、入賞作動コマンドの生成処理を行う。また、この処理では、メインCPU101は、ステップS214において決定された表示役の払出枚数に基づいて、ホッパー装置51の駆動やクレジット枚数の更新を行い、メダルの払い出し処理を行う。
なお、メインCPU101は、払出枚数に基づいて、払出コマンド生成格納処理を行い、メインCPU101は、副制御回路200に送信する払出コマンドのデータを生成し、該コマンドデータを通信データ格納処理(図14参照)によりメインRAM103に設けられた通信データ格納領域に保存し、保存された払出コマンドは、図13に示した通信データ送信処理により、主制御回路90から副制御回路200に送信される。
そして、メダルの払い出し処理では、メインCPU101がホッパー装置51にメダルの払出制御を実行し、ホッパーカウントスイッチがカウントされるか否かを監視し、ホッパーカウントスイッチがカウントされない場合には、ホッパエンプティエラーの発生を検知する。そして、ホッパエンプティエラーの発生を検知した場合、エラーを情報表示器6の(払出枚数をデジタル表示するための)2桁の7セグLEDに表示させる。また、発生中のエラーが解除された場合には、情報表示器6の7セグLEDに表示しているエラーの表示を消去する。
そして、メインCPU101は、ホッパエンプティエラーの発生又は解除に基づいて、副制御回路200に送信するエラーコマンドのデータを生成し、該コマンドデータを通信データ格納処理(図14参照)によりメインRAM103に設けられた通信データ格納領域に保存する。通信データ格納領域に保存されたエラーコマンドは、後述の図13に示す通信データ送信処理により、主制御回路90から副制御回路200に送信される。
次いで、メインCPU101は、BBチェック処理を行う(ステップS216)。この処理では、メインCPU101は、ボーナス状態の作動及び終了を制御する。
次いで、メインCPU101は、RTチェック処理を行う(ステップS217)。この処理では、メインCPU101は、有効ライン上に停止表示された図柄組合せに基づいてRT状態の移行制御を行う。そして、ステップS217の処理後(一遊技終了後)、メインCPU101は、処理をステップS202の処理に戻す。
<副制御回路の動作説明>
[電源投入処理]
次に、図17を参照して、サブCPU151が行う電源投入処理について説明する。なお、図17は、電源投入処理の手順を示すフローチャートである。
まず、サブCPU151は、初期化処理を実行する(ステップS221)。この処理では、サブCPU151は、各種デバイスの初期化や、データ・システム等のチェックや初期化を行う。なお、初期化処理の詳細については、後述の図18を参照しながら後で説明する。
次に、サブCPU151は、LED制御タスクを起動する(ステップS222)。LED制御タスクでは、副中継基板61を介してLED群85の各種ランプの点灯状態を制御する。
次に、サブCPU151は、サウンド制御タスクを起動する(ステップS223)。サウンド制御タスクでは、副中継基板61を介してスピーカ群84からの出音状態を制御する。
次に、サブCPU151は、メインタスクを起動する(ステップS224)。メインタスクでは、表示装置11等における描画処理や、リサイクルデータの処理を実行する。なお、メインタスクの詳細については、後述の図21を参照しながら後で説明する。
次に、サブCPU151は、主基板通信タスクを起動する(ステップS225)。主基板通信タスクでは、主制御基板71から送信されるコマンドに対する受信及び解析等が行われる。なお、主基板通信タスクの詳細については、後述の図22を参照しながら後で説明する。
次に、サブCPU151は、アニメタスクを起動する(ステップS226)。アニメタスクでは、表示装置11等に表示させるアニメーションの選択等を実行する。
次に、サブCPU151は、電断復帰処理を実行する(ステップS227)。電断復帰処理では、副制御基板72に電源が供給されていない状態から電源が供給される状態に復帰したときの処理を実行する。
[初期化処理]
次に、図18を参照して、サブCPU151が行う初期化処理について説明する。なお、図18は、初期化処理の手順を示すフローチャートである。
まず、サブCPU151は、初期化処理を実行する(ステップS241)。この処理では、サブCPU151は、LED群85の動作を制御するLEDドライバ、スピーカ群84に接続されて各スピーカから出力される音を制御するサウンドドライバ等の各種ドライバを初期化する。また、この処理では、副制御基板72(副制御回路150)のGPU153や、主基板通信用の通信IC(不図示)等の初期化、サブRAM152等のエラーチェック、タスクシステムの初期化等も行われる。タスクシステムの初期化では、LED制御タスク(4ms)、サウンド制御タスク(33ms)等、各タスクの処理周期待ち時間の設定が行われる。
次に、サブCPU151は、バックアップチェック処理を実行する(ステップS242)。ここでは、FRAM152bにバックアップされたデータのチェックを行う。例えば、遊技用の履歴データ、遊技データ、及び各種設定値(エコ(例えば、デモ画面への移行の有無)モードに関する設定値や、プロジェクタ213に関する設定値等)などのデータが正常かどうかの整合性チェックを行う。
次に、サブCPU151は、FRAM152bに記憶されている電断発生フラグがオンであるか否かを判別する(ステップS243)。ステップS243において、サブCPU151が、電断発生フラグがオンでないと判別したとき(ステップS243がNO判定の場合)、サブCPU151は、後述のステップS245の処理を行う。電断発生フラグがオンでない状態とは、サブCPU151が単独リブートで起動したことを意味している。したがって、この場合、サブCPU151は、電源オフ状態を経ていないため、通電状態のままであると判断するため、新たに通電開始日時をRTCから取得しないように、以下のステップS244をスキップする。
一方、ステップS243において、サブCPU151が、電断発生フラグがオンであると判別したとき(ステップS243がYES判定の場合)、サブCPU151は、ステップS244において、RTCから日時データを取得し、通電開始日時領域に保存する。
ステップS244の処理後、又はステップS243がNO判定の場合、サブCPU151は、サブRAM152のFRAM152bに記憶されているリサイクルデータを、サブRAM152のDRAM152aのリサイクルデータにコピーする(ステップS245)。
リサイクルデータは上記のように、サブRAM152に含まれるFRAM152bとDRAM152aにそれぞれ記憶される。ここで、FRAM152bに記憶されているリサイクルデータを一旦、DRAM152aにコピーして使用するのは、FRAMが、DRAMに比べて、データの読み書きに時間がかかり、かつデータ読み書きの耐久回数が少ないためである。
ここで、図19を参照して、サブCPU151で更新、管理されるリサイクルデータの構成について説明する。リサイクルデータの格納領域は、上述したように、サブRAM152のFRAM152bとDRAM152aにそれぞれ確保される。
リサイクルデータとして記憶される項目には、図19に示すように、総通電時間、払出枚数、投入枚数、第1リール回転回数、第2リール回転回数、第3リール回転回数、レバー押下回数、MAXBET押下回数、1BET押下回数、第1ストップボタン押下回数、第2ストップボタン押下回数、第3ストップボタン押下回数、ドア開閉回数、電源ON回数、設定変更回数、エラー回数第1ストップボタン押下回数、エラー回数(88)、(CE)、(CR)、(C0)、(HP)、(HJ)、上ボタン押下回数、下ボタン押下回数、左ボタン押下回数、右ボタン押下回数、エンターボタン押下回数を含むが、このようなリサイクルデータは一例に過ぎず、これらの項目を全て含む必要はないし、また、他の項目を含むように構成してもよい。
また、図19では、リサイクルデータの各項目と、これらの項目それぞれについての更新タイミングが示されている。
サブCPU151は、電断割込み処理において、総通電時間を算出し、この総通電時間をリサイクルデータとして記憶する(図22参照)。なお、ここで更新されるリサイクルデータ(総通電時間)は、FRAM152bに記憶されているリサイクルデータである。また、上記リサイクルデータの更新は、電断割込み処理の実行に基づいて行われるものであって、主制御基板71から送信されたコマンドデータに基づいて実行されるものではない。
また、サブCPU151は、主制御基板71からメダル投入コマンド、払出コマンド、初期化コマンド、エラーコマンドを受信した場合に、それらに応じて、払出枚数、投入枚数、設定変更回数、エラー回数(88)、(CE)、(CR)、(C0)、(HP)、(HJ)を更新し、リサイクルデータとして記憶する(図24~図28参照)。なお、ここで更新されるリサイクルデータ(払出枚数等)は、DRAM152aに記憶されているリサイクルデータである。また、上記リサイクルデータは、上述したように、主制御基板71から送信されたメダル投入コマンド等のコマンドデータに基づいて更新される。
さらに、サブCPU151は、初期化処理において、リサイクルデータの電源ON回数を更新する(図18参照)。なお、ここで更新されるリサイクルデータ(電源ON回数)は、DRAM152aに記憶されているリサイクルデータである。また、上記リサイクルデータの更新は、初期化処理の実行に基づいて行われるものであって、主制御基板71から送信されたコマンドデータに基づいて実行されるものではない。
またさらに、サブCPU151は、主制御基板71から無操作コマンドを受信した場合に、それらに応じて、第1リール回転回数、第2リール回転回数、第3リール回転回数、レバー押下回数、MAXBET押下回数、1BET押下回数、第1ストップボタン押下回数、第2ストップボタン押下回数、第3ストップボタン押下回数、ドア開閉回数を更新し、リサイクルデータとして記憶する(図24、図29、図30参照)。なお、ここで更新されるリサイクルデータ(払出枚数等)は、DRAM152aに記憶されているリサイクルデータである。また、上記リサイクルデータは、上述したように、主制御基板71から送信された無操作コマンドのコマンドデータに基づいて更新される。
サブCPU151は、副中継基板61に接続された十字キーの各キーの押下状態を検知するスイッチ(UPスイッチ220a、DOWNスイッチ220b、LEFTスイッチ220c、RIGHTスイッチ220d)と、エンターキーの押下状態を検知するスイッチ(ENTERスイッチ221)の状態を取得し、これらの状態と前回のスイッチの各状態と比較し、オンエッジ状態(オフ->オン)であれば、各スイッチに対応するリサイクルデータ(上ボタン押下回数、下ボタン押下回数、左ボタン押下回数、右ボタン押下回数、及びエンターボタン押下回数)に1加算する(図23参照)。ここで更新されるリサイクルデータは、DRAM152aに記憶されているリサイクルデータである。また、上記リサイクルデータの更新は、サブCPU151が、副中継基板61を経由して各スイッチのデータを取得することによって実行されるものであって、主制御基板71から送信されたコマンドデータに基づいて実行されるものではない。
なお、無操作コマンドについては、主制御基板71(メインCPU101)において、入力ポート格納領域1~3に記憶された各データについてオンエッジ情報(スイッチ等の状態がオフからオンに遷移したオンエッジ状態であることを示す情報)を作成しているが、当該オンエッジ情報は、副制御基板72(サブCPU151)には送信されておらず、サブCPU151では、主制御基板71から無操作コマンドを受信する入力ポートの情報からオンエッジ状態か否かを判断し、オンエッジ状態である場合に、当該入力ポートに係るリサイクルデータを更新し記憶する。
主制御基板71から副制御基板72に送信される無操作コマンドは必ず一定周期で送信されるコマンドではないため、主制御基板71からオンエッジ情報を送信すると、無操作コマンドを受信する副制御基板72において抜けが発生する可能性がある。また、主制御基板71から無操作コマンドで送信される入力ポートの情報は、主制御基板71においてチャタリング対策(2スキャン一致)されているので、副制御基板72においてチャタリング対策をする必要はないが、十字キーのスイッチやエンターキーのスイッチなど、(副中継基板61を介して)副制御基板72に接続されているスイッチ類は、チャタリング対策がされて読み込まれる。
副制御基板72に接続されたスイッチ等によって更新、管理がされるリサイクルデータとして、上記のように、十字キーに関する上ボタン押下回数、下ボタン押下回数、左ボタン押下回数、右ボタン押下回数と、エンターキーに関するエンターボタン押下回数を挙げたが、これに限られるものではない。
例えば、副中継基板61に接続された24hドア監視ユニットで検知されるドア開閉回数、サブCPU151やGPU153の温度異常回数などをリサイクルデータとして更新し記憶することができる。また、ここでのドア開閉回数は、無操作コマンドに基づいて把握される上記のドア開閉回数とともに、別個に管理される。
また、パチスロ1が可動役物を備える場合は、当該可動役物の動作回数やモータの駆動時間等をリサイクルデータとして更新し記憶することができる。また、パチスロ1がプロジェクタ搭載機であれば、フォーカスの変更回数、プロジェクタのLED(R、G、B)、及びDMDに関する温度異常の発生回数等をリサイクルデータとして更新し記憶することができる。また、パチスロ1がタッチパネルを備える場合は、タッチ操作の回数等をリサイクルデータとして更新し記憶することができる。
また、図19では、リサイクルデータのそれぞれについて、データ範囲が示されている。このデータ範囲は、対応する項目において想定される数に基づいて設定されているが、見積や実績に応じて、他のデータ範囲を採用することもできる。
図19の例では、ドア開閉回数等のデータ範囲は、0~16383に設定されており、このようなデータ範囲の値を格納するために、少なくとも14ビットが必要となる。また、総通電時間等のデータ範囲は、0~65535に設定されており、このようなデータ範囲の値を格納するために、少なくとも16ビットが必要となる。また、投入枚数等のデータ範囲は、0~67108863に設定されており、このようなデータ範囲の値を格納するために、少なくとも26ビットが必要となる。さらに、払出枚数等のデータ範囲は、0~268435455に設定されており、このようなデータ範囲の値を格納するために、少なくとも28ビットが必要となる。
本実施形態では、上記のようなリサイクルデータを格納するために、バイト単位で領域が割り当てられる。したがって、例えば、ドア開閉回数は、上記のように14ビットが必要なので、2バイトの格納領域が割り当てられる。同様に、総通電時間も2バイトの格納領域が割り当てられ、投入枚数や払出枚数は4バイトの格納領域がそれぞれ割り当てられる。もちろん、想定されるデータ範囲が8ビットの範囲内であれば、1バイトの格納領域が割り当てられ、32ビットを超えていれば5バイト以上の格納領域が割り当てられる。また、バイト単位で格納領域を割り当てずに、想定されるデータ範囲に応じてビット単位で格納領域を割り当てることもできる。
次に、再び、図18に戻ると、サブCPU151は、ステップS246において、電断発生フラグをオフにセットし、その後、無操作コマンド受信回数に「0」をセットする(ステップS247)。
次に、ステップS248において、リサイクルデータの電源オン回数を「1」加算する。ステップS248の処理後、初期化処理を終了する。
[メインタスク]
次に、図20を参照して、サブCPU151が行うメインタスクについて説明する。なお、図20は、図17に示した電源投入処理のステップS224において起動されるメインタスクを示すフローチャートである。
まず、サブCPU151は、VSYNC(Vertical Synchronization)割込初期化処理を実行し(ステップS261)、VSYNC割込待ちを実行する(ステップS262)。VSYNC割込初期化処理は、画像の同期信号を割込み信号として受付可能にする処理であり、VSYNC割込信号の発生は描画画像のフレームの切り替わりのタイミングで発生し、1フレームは33ms(約30FPS)となっていることから、メインタスクは、描画処理の処理時間を含め33ms単位で処理が繰り返されることとなる。
次に、サブCPU151は、描画処理を実行する(ステップS263)。次に、サブCPU151は、サブ・リサイクルデータ処理を実行する(ステップS264)。なお、サブ・リサイクルデータ処理の詳細については、後述の図23を参照しながら後で説明する。
次に、サブCPU151は、WDT156をリセットし(ステップS265)、メインタスクの処理をステップS262に戻す。
なお、本実施の形態においては、副制御基板72の副制御回路150にWDT156を配しているが、それに限らず、サブCPU151にWDT回路が内蔵されている場合であれば、内蔵のWDT回路をWDT156に代えて使用してもよい。
[主基板通信タスク]
次に、図21を参照して、サブCPU151が行う主基板通信タスクについて説明する。なお、図21は、図17に示した電源投入処理のステップS225において起動される主基板通信タスクを示すフローチャートである。
まず、サブCPU151は、サブRAM152に割り付けられた、通信メッセージキューの初期化を実行する(ステップS281)。
次に、サブCPU151は、通信メッセージキューから受信コマンドデータを取得する(ステップS282)。なお、受信コマンドデータは、メインCPU101の通信データ送信処理(図13参照)によってコマンドデータとして送信され、サブCPU151の受信割込み処理によって通信メッセージキューに登録される。
また、サブCPU151は、受信コマンドがあるか否かを判断する(ステップS283)。例えば、サブCPU151は、通信メッセージキューに受信コマンドデータが登録されているか否かに基づいて、受信コマンドがあるか否かを判断する。サブCPU151が、受信コマンドがあると判断した場合(ステップS283がYES判定の場合)、ステップS284に進む。ここで、受信コマンドがないと判断した場合には(ステップS283がNO判定の場合)、サブCPU151は、主基板通信タスクの処理をステップS282に戻す。
ステップS284において、サブCPU151は、受信コマンドのチェックを実行する(ステップS284)。例えば、サブCPU151は、受信コマンドの種別が有効なコマンド値の範囲(例えば、コマンドの種別が、01H~10H)内にあるか否かの判定、受信コマンドデータのデータ長(例えば、8バイト)の判定、及び、受信コマンドデータの最後のデータ(例えば、受信データ長8バイトの8バイト目)に付与されたBCCデータ(サム値)の判定(例えば、受信データ長8バイトの1バイト目から7バイト目までの演算値(加算、減算又は排他的論理和)とBCCデータとが一致しているかの照合)を行うことにより受信コマンドのチェックを実行する。
次に、サブCPU151は、有効なコマンドを受信したか否かを判断する(ステップS285)。ここで、有効なコマンドを受信しなかったと判断した場合には(ステップS285がNO判定の場合)、サブCPU151は、主基板通信タスクの処理をステップS282に戻す。
一方、有効なコマンドを受信したと判断した場合には(ステップS285がYES判定の場合)、サブCPU151は、受信したコマンドが正規のコマンドであると判断して、受信したコマンドから遊技情報を作成し、作成した遊技情報をサブRAM152に格納する(ステップS286)。次に、サブCPU151は、コマンド解析処理を実行し(ステップS287)、主基板通信タスクの処理をステップS282に戻す。なお、コマンド解析処理の詳細については、後述の図24を参照しながら後で説明する。
[電断割込み処理]
次に、図22を参照して、サブCPU151が行う電断割込み処理について説明する。なお、図22は、サブCPU151が行う電断割込み処理を示すフローチャートである。
電断割込み処理は、12V電源を監視している電源管理回路が、所定の電源電圧を下回った(例えば、10.5V)場合に、電断検知信号を出力する。電断検知信号は、サブCPU151のNMI端子(不図示)に接続されていて、電断検知信号がオンになると、サブCPU151にNMI割込みが発生して、電断割込み処理が実行される。
電断割込み処理では、最初に、サブCPU151が、RTCから日時データを取得し、取得したデータを、サブRAM152の、通電終了日時記憶領域に記憶する(ステップS301)。
次に、サブCPU151は、総通電時間と今回の通電時間とを合計して、最新の総通電時間を求める(ステップS302)。なお、今回の通電時間は、上記の通電終了日時記憶領域に記憶された日時から、通電開始日時記憶領域に記憶されている通電開始日時を減算することによって求められる。
また、本実施形態では、総通電時間は1時間単位で加算される。総通電時間の値が、例えば、「100」であれば、100時間となり、1日の稼働時間が12時間であれば、約8日間営業したことになる。また、本実施形態では、今回の通電時間を求める際に、分・秒の単位は切り捨てられているが、これらの分・秒の単位を加味して今回の通電時間や総通電時間を求めることができる。例えば、今回の通電時間において、100時間50分であると把握されていれば、50分の部分を切り上げて101時間とすることができる。
次に、サブCPU151は、求めた総通電時間を、FRAM152bの総通電時間記憶領域に保存する(ステップS303)。次に、サブCPU151は、電断発生フラグをオンにセットする(ステップS304)。
[サブ・リサイクルデータ処理]
次に、図23を参照して、サブCPU151が行うサブ・リサイクルデータ処理について説明する。なお、図23は、図20に示したメインタスクのステップS264において実行されるサブ・リサイクルデータ処理を示すフローチャートである。
まず、サブCPU151は、サブ入力ポート格納領域1に格納されているデータを、サブ入力ポート格納領域2に保存する(ステップS321)。次に、サブCPU151は、サブ入力ポート格納領域1に、副制御基板72に接続される入力ポートの状態を保存する(ステップS322)。これらの処理により、サブ入力ポート格納領域2には前回入力分のデータが記憶され、サブ入力ポート格納領域1には今回入力分のデータが記憶されることになる。
次に、サブCPU151は、入力ポートの状態に関し、十字キーのUPボタンの押下を検知するUPスイッチがオフからオンに遷移したか否かを判断する(ステップS323)。UPスイッチがオフからオンに遷移したと判断された場合(ステップS323がYES判定の場合)、サブCPU151は、リサイクルデータの上ボタン押下回数に「1」を加算し(ステップS324)、その後、ステップS325の処理に進む。UPスイッチがオフからオンに遷移していないと判断された場合(ステップS323がNO判定の場合)、サブCPU151は、ステップS325の処理に進む。
次に、サブCPU151は、入力ポートの状態に関し、十字キーのDOWNボタンの押下を検知するDOWNスイッチがオフからオンに遷移したか否かを判断する(ステップS325)。DOWNスイッチがオフからオンに遷移したと判断された場合(ステップS325がYES判定の場合)、サブCPU151は、リサイクルデータの下ボタン押下回数に「1」を加算し(ステップS326)、その後、ステップS327の処理に進む。DOWNスイッチがオフからオンに遷移していないと判断された場合(ステップS325がNO判定の場合)、サブCPU151は、ステップS327の処理に進む。
次に、サブCPU151は、入力ポートの状態に関し、十字キーのLEFTボタンの押下を検知するLEFTスイッチがオフからオンに遷移したか否かを判断する(ステップS327)。LEFTスイッチがオフからオンに遷移したと判断された場合(ステップS327がYES判定の場合)、サブCPU151は、リサイクルデータの左ボタン押下回数に「1」を加算し(ステップS328)、その後、ステップS329の処理に進む。LEFTスイッチがオフからオンに遷移していないと判断された場合(ステップS327がNO判定の場合)、サブCPU151は、ステップS329の処理に進む。
次に、サブCPU151は、入力ポートの状態に関し、十字キーのRIGHTボタンの押下を検知するRIGHTスイッチがオフからオンに遷移したか否かを判断する(ステップS329)。RIGHTスイッチがオフからオンに遷移したと判断された場合(ステップS329がYES判定の場合)、サブCPU151は、リサイクルデータの右ボタン押下回数に「1」を加算し(ステップS330)、その後、ステップS331の処理に進む。RIGHTスイッチがオフからオンに遷移していないと判断された場合(ステップS329がNO判定の場合)、サブCPU151は、ステップS331の処理に進む。
次に、サブCPU151は、入力ポートの状態に関し、エンターボタンの押下を検知するENTERスイッチがオフからオンに遷移したか否かを判断する(ステップS331)。ENTERスイッチがオフからオンに遷移したと判断された場合(ステップS331がYES判定の場合)、サブCPU151は、リサイクルデータのエンターボタン押下回数に「1」を加算し(ステップS332)、その後、サブ・リサイクルデータ処理を終了する。ENTERスイッチがオフからオンに遷移していないと判断された場合(ステップS331がNO判定の場合)、サブCPU151は、サブ・リサイクルデータ処理を終了する。
なお、本実施形態のサブ・リサイクルデータ処理では、十字キーとエンターボタンが操作された頻度をリサイクルデータとして記憶(カウントアップ)するように構成されているが、このような十字キーやエンターボタンの他に、演出の際に利用され、サブCPU151でその操作が検知される、プッシュボタンやチャンスボタンなどを遊技者が操作(押下)するたびに、対応するプッシュスイッチやチャンススイッチで操作を検知し、これらの部品に関するリサイクルデータを記憶するようにできる。また、演出において音声の出力に用いられるスピーカーに関しても、そのスピーカーに関する通電時間、音声出力状況、利用状況(実行演出、音量調整)等に応じて、当該スピーカーに関するリサイクルデータを記憶することができる。
また、本実施形態のサブ・リサイクルデータ処理は、図20のメインタスクから呼び出されているため、33ms周期で実行されることになる。そのため、サブ入力ポート格納領域2には、33ms前の入力ポートの状態が記憶されている。したがって、図23で示した各スイッチのオフからオンの変化は、サブ入力ポート格納領域2の(各スイッチに対応する)ビットが、オフ(「0」)で、サブ入力ポート格納領域1の(各スイッチに対応する)ビットが、オン(「1」)の状態であることを示している。
[コマンド解析処理]
次に、図24を参照して、サブCPU151が行うコマンド解析処理について説明する。なお、図24は、図21に示した主基板通信タスクのステップS287において実行されるコマンド解析処理を示すフローチャートである。
まず、サブCPU151は、初期化コマンドを受信したか否かを判断する(ステップS341)。ここで、初期化コマンドを受信したと判断した場合には(ステップS341がYES判定の場合)、サブCPU151は、初期化コマンド受信時処理を実行し(ステップS342)、その後、コマンド解析処理を終了する。なお、初期化コマンド受信時処理の詳細については、後述の図25を参照しながら後で説明する。
一方、初期化コマンドを受信しなかったと判断した場合には(ステップS341がNO判定の場合)、サブCPU151は、メダル投入コマンドを受信したか否かを判断する(ステップS343)。メダル投入コマンドは、主としてメダルがされた場合に主制御基板71から送信される。ここで、メダル投入コマンドを受信したと判断した場合には(ステップS343がYES判定の場合)、サブCPU151は、メダル投入コマンド受信時処理を実行し(ステップS344)、その後、コマンド解析処理を終了する。なお、メダル投入コマンド受信時処理の詳細については、後述の図26を参照しながら後で説明する。
一方、メダル投入コマンドを受信しなかったと判断した場合には(ステップS343がNO判定の場合)、サブCPU151は、払出コマンドを受信したか否かを判断する(ステップS345)。払出コマンドは、メダルの払い出しに応じて主制御基板71から送信される。ここで、払出コマンドを受信したと判断した場合には(ステップS345がYES判定の場合)、サブCPU151は、払出コマンド受信時処理を実行し(ステップS346)、その後、コマンド解析処理を終了する。なお、払出コマンド受信時処理の詳細については、後述の図27を参照しながら後で説明する。
一方、払出コマンドを受信しなかったと判断した場合には(ステップS345がNO判定の場合)、サブCPU151は、エラーコマンドを受信したか否かを判断する(ステップS347)。エラーコマンドは、エラーが発生した場合と、エラーが解除された場合に、主制御基板71から送信される。ここで、エラーコマンドを受信したと判断した場合には(ステップS347がYES判定の場合)、サブCPU151は、エラーコマンド受信時処理を実行し(ステップS348)、その後、コマンド解析処理を終了する。なお、エラーコマンド受信時処理の詳細については、後述の図28を参照しながら後で説明する。
一方、エラーコマンドを受信しなかったと判断した場合には(ステップS347がNO判定の場合)、サブCPU151は、無操作コマンドを受信したか否かを判断する(ステップS349)。ここで、無操作コマンドを受信したと判断した場合には(ステップS349がYES判定の場合)、サブCPU151は、無操作コマンド受信時処理を実行し(ステップS349)、その後、コマンド解析処理を終了する。なお、無操作コマンド受信時処理の詳細については、後述の図29を参照しながら後で説明する。
一方、無操作コマンドを受信しなかったと判断した場合には(ステップS349がNO判定の場合)、サブCPU151は、その他のコマンド受信時処理を実行し(ステップS351)、その後、コマンド解析処理を終了する。なお、ここでは、その他のコマンドについて詳細な説明を省略するが、例えば、スタートコマンド、リール回転開始コマンド、リール停止コマンド、入賞作動コマンド、演出コマンド等が含まれる。
[初期化コマンド受信時処理]
次に、図25を参照して、サブCPU151が行う初期化コマンド受信時処理について説明する。なお、図25は、図24に示したコマンド解析処理のステップS342において実行される初期化コマンド受信時処理を示すフローチャートである。
まず、サブCPU151は、受信した初期化コマンドが、設定変更終了時に係るものであるか否かを判断する(ステップS361)。メインCPU101は、図16に示すメイン処理の初期化処理(ステップS201)において、設定用鍵型スイッチがオン状態の場合に、設定変更処理を実行し、この設定変更処理の開始時に初期化コマンド(設定変更開始)を送信し、設定変更処理の終了時に初期化コマンド(設定変更終了)を送信するようになっている。
ここで、サブCPU151が設定変更終了時に係る初期化コマンドを受信していないと判断した場合には(ステップS361がNO判定の場合)、サブCPU151は、ステップS364の処理に進む。一方、サブCPU151が設定変更終了時に係る初期化コマンドを受信したと判断した場合には(ステップS361がYES判定の場合)、サブCPU151は、設定変更終了時の処理を行う(ステップS362)。例えば、DRAM152aの遊技データを初期化する。
次に、サブCPU151は、リサイクルデータの設定変更回数を1加算する(ステップS363)。また、本実施形態では、このような設定変更回数の管理とは別に、無操作コマンドのパラメータとして入力ポート格納領域3(図12参照)の設定用鍵型スイッチのデータを受信し、設定用鍵型スイッチのデータがオフからオンに遷移した回数を示す、設定用鍵型スイッチON回数を更新、管理する。サブCPU151は、ステップS363の処理の後、初期化コマンド受信時処理を終了する。
サブCPU151は、設定変更開始時の処理を行う(ステップS364)。その後、初期化コマンド受信時処理を終了する。
[メダル投入コマンド受信時処理]
次に、図26を参照して、サブCPU151が行うメダル投入コマンド受信時処理について説明する。なお、図26は、図24に示したコマンド解析処理のステップS344において実行されるメダル投入コマンド受信時処理を示すフローチャートである。
まず、サブCPU151は、メダル投入時の処理を実行する(ステップS381)。例えば、メダルの投入に応じた演出の切り替え(表示装置11に表示する映像や、スピーカ群84から出力される音声の変化)といった、演出関係の制御を行う。
次に、サブCPU151は、リサイクルデータの投入枚数を「1」加算する(ステップS382)。なお、本実施形態では、メダル投入コマンドを受信した場合に、投入枚数を「1」加算しているが、投入枚数を把握可能な場合は、その投入枚数を加算するようにしてもよい。また、無操作コマンドのパラメータとして入力ポート格納領域2(図12参照)のメダル通過チェックスイッチ2のデータを受信し、メダル通過チェックスイッチ2のデータがオフからオンに遷移した場合に、当該データに基づいてカウントアップを行い、投入枚数を管理するようにしてもよい。その後、メダル投入コマンド受信時処理を終了する。
[払出コマンド受信時処理]
次に、図27を参照して、サブCPU151が行う払出コマンド受信時処理について説明する。なお、図27は、図24に示したコマンド解析処理のステップS346において実行される払出コマンド受信時処理を示すフローチャートである。
まず、サブCPU151は、メダル払出時の処理を実行する(ステップS401)。例えば、メダルの払出に応じた演出の切り替え(表示装置11に表示する映像や、スピーカ群84から出力される音声の変化)といった、演出関係の制御を行う。
次に、サブCPU151は、リサイクルデータの払出枚数を「1」加算する(ステップS402)。なお、本実施形態では、払出コマンドを受信した場合に、払出枚数を「1」加算しているが、払出枚数を把握可能な場合は、その払出枚数を加算するようにしてもよい。なお、上述したように、払出コマンドは、メダルの払い出しに応じて主制御基板71から送信されるコマンドであり、クレジットに参入された分についても送信されるため、ここでは、実際に払い出された物理枚数を把握してカウントすることが望ましい。
また、無操作コマンドのパラメータとして入力ポート格納領域3(図12参照)のホッパカウントスイッチのデータを受信し、ホッパカウントスイッチのデータがオフからオンに遷移した場合に、当該データに基づいてカウントアップを行い、払出枚数を管理するようにしてもよい。サブCPU151は、その後、払出コマンド受信時処理を終了する。
[エラーコマンド受信時処理]
次に、図28を参照して、サブCPU151が行うエラーコマンド受信時処理について説明する。なお、図28は、図24に示したコマンド解析処理のステップS348において実行されるエラーコマンド受信時処理を示すフローチャートである。
まず、サブCPU151は、受信したエラーコマンドが、エラー発生時に係るものであるか否かを判断する(ステップS421)。
発生するエラーとしては、図19に示すように、RAMエラー、メダル通過時間エラー、メダル詰まりエラー、補助庫満杯エラー、ホッパエンプティエラー、ホッパジャムエラーといったエラーが考えられるが、これらに限られるものではない。
ここで、サブCPU151がエラー発生時に係るエラーコマンドを受信していないと判断した場合には(ステップS421がNO判定の場合)、サブCPU151は、エラー解除時に係るエラーコマンドであると判断し、ステップS424の処理に進む。一方、サブCPU151がエラー発生時に係るエラーコマンドを受信したと判断した場合には(ステップS421がYES判定の場合)、サブCPU151は、エラー発生時の処理を行う(ステップS422)。エラー発生時の処理は、例えば、表示装置11にエラー発生画面等を表示したり、エラー情報履歴を保存したりするよう制御する処理である。
次に、サブCPU151は、発生したエラーに対応した、リサイクルデータのエラー回数に「1」加算する(ステップS423)。サブCPU151は、その後、エラーコマンド受信時処理を終了する。
ステップS424において、サブCPU151は、エラー解除時の処理を行う。エラー解除時の処理は、例えば、表示装置11に表示しているエラー発生画面をクリアし、元の演出画面の表示を行うよう制御する処理である。その後、エラーコマンド受信時処理を終了する。
本実施形態では、基本的に、遊技機の各部品の動作回数を把握して、その部品がリサイクル可能であるか否かの判断を容易にするものであるが、このように、エラーの発生回数を取得して記録することにより、関連する部品の品質を評価することができ、当該評価によって、リサイクル可能であるか否かの判断をすることができる。すなわち、エラー発生回数が所定の頻度を超えるものとなった場合、そのエラーに関連する部品において、構造上の欠陥や利用条件の不具合等がある可能性が高く(不正な操作による場合も考えられる)、そのような部品については、動作回数を考慮するまでもなく、リサイクルに利用できないと評価される。
[無操作コマンド受信時処理]
次に、図29を参照して、サブCPU151が行う無操作コマンド受信時処理について説明する。なお、図29は、図24に示したコマンド解析処理のステップS350において実行される無操作コマンド受信時処理を示すフローチャートである。
まず、サブCPU151は、リサイクルデータ処理を実行する(ステップS441)。なお、リサイクルデータ処理の詳細については、後述の図30を参照しながら後で説明する。
次に、サブCPU151は、無操作コマンドの受信回数が3000回以上であるか否かを判断する(ステップS442)。ここで、サブCPU151が、無操作コマンドの受信回数が3000回以上でないと判断した場合には(ステップS442がNO判定の場合)、サブCPU151は、ステップS445の処理に進む。一方、サブCPU151が無操作コマンドの受信回数が3000回以上であると判断した場合には(ステップS442がYES判定の場合)、サブCPU151は、無操作コマンド受信回数に「0」をセットする(ステップS443)。
次に、サブCPU151は、DRAM152aのリサイクルデータをFRAM152bのリサイクルデータに保存する(ステップS444)。サブCPU151は、その後、無操作コマンド受信時処理を終了する。
ステップS445において、サブCPU151は、無操作コマンド受信回数に「1」を加算する。その後、無操作コマンド受信時処理を終了する。
無操作コマンド受信時処理では、無操作コマンドが、主制御基板71から約20msec周期で送信されることを前提として、1分に1回、DRAM152aに記憶されているリサイクルデータが、FRAM152bのリサイクルデータに保存するようになっている。そのために、無操作コマンドの受信回数が3000回(すなわち、20msec×3000=1分)となるたびにリサイクルデータの保存が実行される。
なお、本実施形態では、DRAM152aのリサイクルデータをFRAM152bに1分に1回の周期で保存しているが、これに限定されない。例えば、保存する周期は、30秒~10分の任意の間隔でもよく、また、後述のリサイクルデータ処理により、DRAM152aのリサイクルデータに変化があった場合に、FRAM152bに保存してもよい。
[リサイクルデータ処理]
次に、図30を参照して、サブCPU151が行うリサイクルデータ処理について説明する。なお、図30は、図29に示した無操作コマンド受信時処理のステップS441において実行されるリサイクルデータ処理を示すフローチャートである。
まず、サブCPU151は、メイン第1入力ポート格納領域1に記憶されているデータを、メイン第1入力ポート格納領域2にコピーする(ステップS461)。次に、サブCPU151は、受信パラメータ1のデータを、メイン第1入力ポート格納領域1に格納する(ステップS462)。これらの処理により、メイン第1入力ポート格納領域2には前回受信分のデータが記憶され、メイン第1入力ポート格納領域1には今回受信分のデータが記憶されることになる。
次に、サブCPU151は、メイン第1入力ポート格納領域2に記憶されたドア開閉監視スイッチとメイン第1入力ポート格納領域1に記憶されたドア開閉監視スイッチとを比較し、その値が、オフからオンに遷移したか否かを判断する(ステップS463)。ここで、ドア開閉監視スイッチがオフからオンに遷移していないと判断した場合には(ステップS463がNO判定の場合)、サブCPU151は、ステップS465の処理に進む。
一方、ドア開閉監視スイッチがオフからオンに遷移していると判断した場合には(ステップS463がYES判定の場合)、サブCPU151は、リサイクルデータのドア開閉回数に「1」加算する(ステップS464)。その後、サブCPU151は、ステップS465の処理に進む。
次に、ステップS465において、サブCPU151は、メイン第1入力ポート格納領域2に記憶されたスタートスイッチとメイン第1入力ポート格納領域1に記憶されたスタートスイッチとを比較し、その値が、オフからオンに遷移したか否かを判断する。ここで、スタートスイッチがオフからオンに遷移していないと判断した場合には(ステップS465がNO判定の場合)、サブCPU151は、ステップS467の処理に進む。
一方、スタートスイッチがオフからオンに遷移していると判断した場合には(ステップS465がYES判定の場合)、サブCPU151は、リサイクルデータのレバー押下回数に「1」加算する(ステップS466)。その後、サブCPU151は、ステップS467の処理に進む。
次に、ステップS467において、サブCPU151は、メイン第1入力ポート格納領域2に記憶されたストップスイッチ1~3とメイン第1入力ポート格納領域1に記憶されたストップスイッチ1~3とを比較し、いずれかのスイッチの値が、オフからオンに遷移したか否かを判断する。ここで、ストップスイッチ1~3がオフからオンに遷移していないと判断した場合には(ステップS467がNO判定の場合)、サブCPU151は、ステップS469の処理に進む。
一方、ストップスイッチ1~3のいずれかがオフからオンに遷移していると判断した場合には(ステップS467がYES判定の場合)、サブCPU151は、リサイクルデータのストップ押下回数(オフからオンに遷移したストップスイッチに対応するストップボタンのストップ押下回数)に「1」加算する(ステップS468)。その後、サブCPU151は、ステップS469の処理に進む。
次に、ステップS469において、サブCPU151は、メイン第1入力ポート格納領域2に記憶された1BETスイッチとメイン第1入力ポート格納領域1に記憶された1BETスイッチとを比較し、その値が、オフからオンに遷移したか否かを判断する。ここで、1BETスイッチがオフからオンに遷移していないと判断した場合には(ステップS469がNO判定の場合)、サブCPU151は、ステップS471の処理に進む。
一方、1BETスイッチがオフからオンに遷移していると判断した場合には(ステップS469がYES判定の場合)、サブCPU151は、リサイクルデータの1BET押下回数に「1」加算する(ステップS470)。その後、サブCPU151は、ステップS471の処理に進む。
次に、ステップS471において、サブCPU151は、メイン第1入力ポート格納領域2に記憶されたMAXBETスイッチとメイン第1入力ポート格納領域1に記憶されたMAXBETスイッチとを比較し、その値が、オフからオンに遷移したか否かを判断する。ここで、MAXBETスイッチがオフからオンに遷移していないと判断した場合には(ステップS471がNO判定の場合)、サブCPU151は、ステップS473の処理に進む。
一方、MAXBETスイッチがオフからオンに遷移していると判断した場合には(ステップS471がYES判定の場合)、サブCPU151は、リサイクルデータのMAXBET押下回数に「1」加算する(ステップS472)。その後、サブCPU151は、ステップS473の処理に進む。
次に、サブCPU151は、メイン第2入力ポート格納領域1に記憶されているデータを、メイン第2入力ポート格納領域2にコピーする(ステップS473)。次に、サブCPU151は、受信パラメータ2のデータを、メイン第2入力ポート格納領域1に格納する(ステップS474)。
その後、サブCPU151は、上述したステップS463~ステップS472に示すように、メイン第2入力ポート格納領域2に記憶されているデータとメイン第2入力ポート格納領域1に記憶されているデータとを比較し、その値がオフからオンに遷移している場合に、当該データが示すスイッチに対応するボタンの操作やセンサでの検出が行われたと判断し、リサイクルデータの対応するデータを更新する。
ここでは、具体的なリサイクルデータの更新に関する詳細な説明は省略するが、例えば、入力ポート格納領域2(図12参照)に記憶されているメダル通過チェックスイッチ1やメダル通過チェックスイッチ2のデータ等が、無操作コマンドによって受信された場合に、上述したステップS463~ステップS472に示すような処理が行われる。
また、メダル通過チェックスイッチ1やメダル通過チェックスイッチ2のデータを用いない場合、上述したステップS473、ステップS474の処理を省略することができる。
次に、サブCPU151は、メイン第3入力ポート格納領域1に記憶されているデータを、メイン第3入力ポート格納領域2にコピーする(ステップS475)。次に、サブCPU151は、受信パラメータ3のデータを、メイン第3入力ポート格納領域1に格納する(ステップS476)。
次に、サブCPU151は、メイン第3入力ポート格納領域2に記憶されたリールインデックスセンサ1~3とメイン第3入力ポート格納領域1に記憶されたリールインデックスセンサ1~3とを比較し、いずれかのセンサの値が、オフからオンに遷移したか否かを判断する(ステップS477)。ここで、リールインデックスセンサ1~3がオフからオンに遷移していないと判断した場合には(ステップS477がNO判定の場合)、サブCPU151は、リサイクルデータ処理を終了する。
一方、リールインデックスセンサ1~3のいずれかがオフからオンに遷移していると判断した場合には(ステップS477がYES判定の場合)、サブCPU151は、リサイクルデータのリール回転回数(オフからオンに遷移したリールインデックスセンサに対応するリールのリール回転回数)に「1」加算する(ステップS478)。その後、サブCPU151は、リサイクルデータ処理を終了する。
なお、ここまで、本発明の実施形態として、パチスロ1に関するリサイクルデータの取得方法や記録方法に関して説明してきたが、パチンコ機に関しても同様に、本発明の技術的思想を適用することができる。例えば、パチンコ機であれば、遊技球が通過する始動口や入賞口の動作回数、演出のための役物の動作回数、遊技球の発射装置の動作回数などを含むリサイクルデータを取得し、記録することができる。例えば、始動口や入賞口については、スイッチや遊技球通過センサで検知することにより、動作回数を把握できる。役物については、役物を作動させるモータに関するパルスデータ等から動作回数を把握できる。また、発射装置については、遊技球の発射等をセンサで検知することにより、動作回数を把握することができる。
なお、ここまで物理的にメダルを払い出すタイプの遊技機であるパチスロ1を前提として説明を行ったが、入賞に応じて獲得された遊技価値をデータのみで扱い、物理的にメダルの払い出しを行わない管理遊技機においても本発明を適用することができる。なお、管理遊技機とは、周辺機器と遊技価値に関するデータを、周辺機器との間で双方向通信可能な遊技機である。管理遊技機の所定の端子板に接続可能な周辺機器では、遊技機から送信されるデータに基づいてカード等の遊技情報管理媒体に、遊技価値に関するデータ(従来の遊技機でいうところの獲得、及び消費したメダルの枚数情報に相当するデータ)が記録され遊技者に価値の付与がなされる。
<端末装置の構成>
次に、図31を参照して、端末装置500の構成について説明する。なお、図31は、端末装置500の構成を示すブロック図である。ただし、図31に示す構成は、端末装置500の代表的な構成を例示したに過ぎない。端末装置500と同等の機能を、他の様々な構成のコンピュータで実現することができる。
端末装置500は、CPU(Central Processing Unit)501、ROM(Read Only Memory)502、RAM(Random Access Memory)503、ディスプレイコントローラ504、ディスプレイ505、入力機器インタフェース506、キーボード507、マウス508、外部記憶装置509、外部記録媒体インタフェース510、遊技機インタフェース511、及びこれらの構成要素を互いに接続するバス512を含んでいる。
CPU501は、端末装置500の各構成要素の動作を制御し、OSの制御下で、ユーザの操作に応じて、リサイクルデータをパチスロ1から読み取り、読み取ったリサイクルデータの記録や管理を行う。
ROM502には、端末装置500の起動時に実行されるプログラム等が格納される。RAM503には、CPU501で実行されるプログラムや、それらのプログラムが実行中に使用するデータ等が一時的に格納される。
ディスプレイコントローラ504は、CPU501が発行する描画命令を実際に処理するための専用コントローラである。ディスプレイコントローラ504で処理された描画データは、一旦グラフィックメモリに書き込まれ、その後、ディスプレイ505に出力される。ディスプレイ505は、例えば、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)で構成される表示装置である。
入力機器インタフェース506は、キーボード507やマウス508から入力された信号を受信して、その信号パターンに応じて所定の指令をCPU501に送信する。キーボード507やマウス508は、例えば、リサイクルデータをパチスロ1から読み取るための指示や、読み取ったリサイクルデータの記録や管理を行うための指示をする場合などに用いられる。
外部記憶装置509は、例えば、ハードディスクドライブ(HDD)のような記憶装置であり、この装置内には上述したプログラムのデータやリサイクルデータが記録される。プログラムのデータは、実行時に、必要に応じてそこからRAM503にロードされる。
外部記録媒体インタフェース510は、CD(Compact Disc)、DVD(Digital Versatile Disc)などの可搬型の外部記録媒体520の記録面にアクセスして、そこに記録されているデータを読み取ったり、フラッシュメモリ等の可搬型メモリ521に対してデータの入出力を行う。上述したプログラムのデータやリサイクルデータは、外部記録媒体520や可搬型メモリ521のような外部記録媒体に記録されうる。
遊技機インタフェース511は、パチスロ1のリサイクルデータインタフェース230と(例えば、シリアル通信のJTAG規格によって)接続され、そこで、パチスロ1との間のデータ通信を可能とする。遊技機インタフェース511とリサイクルデータインタフェース230とを介して端末装置500とパチスロ1の副制御基板72が接続された後、ユーザが端末装置500を操作して、パチスロ1の副制御基板72のFRAM152bに記憶されているリサイクルデータを受信し、外部記憶装置509等に記憶する。パチスロ1の副制御基板72は、端末装置500から、リサイクルデータ送信の指示を受信した場合に、DRAM152aからリサイクルデータを読み出し、端末装置500に送信する。また、リサイクルデータは、テキストデータやCSV形式のファイルを含む様々な形式のファイルであってもよい。