以下、実施例に係るパチンコ機に基づいて本発明の実施形態を詳細に説明する。図1は、本実施例のパチンコ機1を示す正面図である。図示のパチンコ機1は、島構造体に着脱可能に装着される矩形枠状の木製外枠2と、外枠2に固着されたヒンジ3を介して開閉可能に枢着される前枠4とで構成されている。この前枠4には、遊技盤5が裏側から着脱自在に装着され、その前側には、ガラス扉6と前面板7とが夫々開閉自在に枢着されている。
前面板7には発射用の遊技球を貯留する上皿8が装着され、前枠4の下部には、上皿8から溢れ出し又は抜き取った遊技球を貯留する下皿9と、発射ハンドル10とが設けられている。発射ハンドル10は発射モータM2と連動しており、発射ハンドル10の回動角度に応じて動作する打撃槌によって遊技球が発射される。
上皿8のほぼ中央には、ランプを内蔵する楕円形のプッシュボタン11が設けられている。プッシュボタン11は、遊技者の左手で操作できる位置に設けられており、遊技者は、発射ハンドル10から右手を離すことなくプッシュボタン11を操作できる。このプッシュボタン11は、通常時には機能していないが、ゲーム状態が例えば「ボタンチャンス状態」となると内蔵ランプが点灯されて操作可能となる。
上皿8の右部には、カード式球貸し機に対する球貸し操作用の操作パネル12が設けられ、カード残額を3桁の数字で表示する残額表示部12aと、所定金額分の遊技球の球貸しを指示する球貸しスイッチ12bと、ゲーム終了時にカードの返却を指令する返却スイッチ12cとが設けられている。
図2に示すように、遊技盤5には、金属製の外レールと内レールとからなるガイドレール13が環状に設けられ、その内側の遊技領域5aの略中央には、大型の液晶カラーディスプレイ14が配置されている。
液晶ディスプレイ14は、三つの部分(19,20,21)に区分されており、各部分はそれぞれ、「当り」状態か否かを示す普通図柄表示部19と、「大当り」状態か否かを示す特別図柄表示部20と、大当り状態に係わる特別図柄と関連する演出図柄を変動表示する演出図柄表示部21として機能する。また、演出図柄表示部21では、背景画像や各種のキャラクタなども併せてアニメーション的に表示する。
この遊技機の遊技状態には、「当り」状態と、更に格段に高価値の「大当り」状態があるが、普通図柄表示部19では、液晶ディスプレイ14に表示された演出図柄が点滅動作をして、一定時間後に当り状態か否かの抽選結果を表示する。一方、特別図柄表示部20や演出図柄表示部21では、特別図柄などが適宜な演出動作によって変動した後、大当り抽選処理の当否結果を確定的に表示する。
この実施例では大当り状態は、確変大当りと、ノーマル大当りとに区分されているが、演出図柄表示部21は、確変大当りか、ノーマル大当りか、ハズレかを、停止状態の演出図柄の配列によって報知するのに対して、特別図柄表示部20では、これを所定の停止模様や文字などによって報知している。具体的には、演出図柄表示部21は、確変大当りか、ノーマル大当りか、ハズレかに応じて、それぞれ「7・7・7」、「6・6・6」、「2・5・2」などの演出図柄を停止表示するのに合わせて、特別図柄表示部20では、「◎確変大当り!!」、「○ノーマル大当り!!」、「−残念!!」の文字を表示する。なお、確変大当りとは、ノーマル大当りの場合と同様の特別遊技状態が終了した後、大当りの当選確率が増加した遊技(確変状態の遊技)が開始される大当り状態を意味する。
なお、普通図柄表示部19では、ゲート18を通過した遊技球が検出されると、表示内容が所定時間だけ変動し、その後、遊技球のゲート18の通過時点において抽選された抽選用乱数値に基づいて決定される当否状態を表示するようになっている。この実施例では、具体的には、2つのハート模様がピンク色に着色されて停止すると当り状態となり、何れか一方のハート模様が崩れた形(ハート模様が破壊された形)で停止するとハズレ状態となる。
遊技盤5の遊技領域5aの適所には、図柄始動口15、大入賞口16、4つの普通入賞口17、左右の通過口であるゲート18が配設されている。これらの入賞口15〜17及びゲート18は、それぞれ内部に検出スイッチを有しており、遊技球の通過を検出できるようになっている。
本実施例では、図柄始動口15は、一対の開閉爪を備えた電動式チューリップで拡大縮小され、普通図柄表示部19の変動後の停止状態で当り表示をした場合には、開閉爪が所定時間だけ拡大されるようになっている。そして、この図柄始動口15に遊技球が入賞すると、演出図柄表示部21と特別図柄表示部20の表示図柄が所定時間だけ変動し、図柄始動口15への遊技球の入賞タイミングに応じた抽選結果に基づいて決定される停止図柄で停止する。
大入賞口16は、前方に開放可能な開閉板16aで開閉されるが、演出図柄表示部21の変動停止後の図柄が「6・6・6」「7・7・7」などの整列した演出図柄のとき(特別図柄表示部20では、○又は◎などを関連する文字と共に表示)、「大当り」と称される特別遊技状態が開始され、開閉板16aが開放されるようになっている。また、大入賞口16の内部に特定領域16bがあり、この特定領域16bを入賞球が通過すると、遊技者に有利な特別遊技が継続される。
大入賞口16の開閉板16aが開放された後、所定時間が経過し、又は所定数(例えば10個)の遊技球が入賞すると開閉板16aが閉じる。このとき、遊技球が特定領域16bを通過していない場合には特別遊技が終了するが、特定領域16bを通過していれば、本実施例では、最大16回まで特別遊技が継続され、遊技者に有利な状態に制御される。
図3は、実施例に係るパチンコ機1の全体構成を示すブロック図である。図示の通り、このパチンコ機1は、遊技動作を統括的に制御する主制御基板30と、液晶ディスプレイ14などの動作を制御する演出制御基板31と、大型スピーカを駆動すると共にランプ群を点滅動作させる音声・ランプ制御基板32と、払出モータM1を制御して遊技球を払出す払出制御基板33と、発射モータM2を駆動して遊技球を発射させる発射制御基板34と、AC24Vを受けて装置各部に直流電圧を供給する電源基板35とを中心に構成されている。
主制御基板30、演出制御基板31、音声・ランプ制御基板32、及び、払出制御基板33は、ワンチップマイコンを備えるコンピュータ回路が搭載されている。この実施例では、演出制御基板31、音声・ランプ制御基板32、及び、払出制御基板33がサブ制御基板に該当し、各サブ制御基板31〜33では、主制御基板30から直接的に、又は他の基板を介して間接的に受信した制御コマンドCMD,CMD’に基づいて動作している。なお、以下の説明では、各制御基板30〜33に搭載された回路及びその回路によって実現される動作を機能的に総称して、それぞれ主制御部30、演出制御部31、音声ランプ制御部32、及び払出制御部33と称することがある。
本実施例の場合、演出制御部31は、主制御基板30から同一の制御コマンドCMD(a)及びCMD(b)を個別に受けている。これらの制御コマンドCMDには、普通図柄表示部19の表示動作に関するものや、特別図柄表示部20や演出図柄表示部21の表示動作に関するものが含まれている。これらの制御コマンドCMDは、それぞれ「当り」抽選及び「大当り」抽選の抽選結果を示すコマンドであり、具体的には、抽選結果とそれを確定的に報知するまでの演出動作の総時間とを特定する「変動パターンコマンド」と、演出動作の終了タイミングを指示する「変動停止コマンド」とで構成されている。なお、「変動パターンコマンド」は、それが「当り」抽選結果を示すか、「大当り」抽選結果を示すかに応じて二分されると共に、それぞれについて、演出総時間や大当りの種類(ノーマル/確変)などに応じて多数の種類が用意されている。
また、「変動パターンコマンド」を受けた演出制御部31では、「変動パターンコマンド」で規定される演出総時間などに拘束された状態で演出抽選を行い、演出制御部31における図柄演出と、ランプ群によるランプ演出と、スピーカによる音声演出との連動による演出内容を決定する。そして、決定された演出内容を示す制御コマンドCMD’を音声・ランプ制御部32に伝送する。このように、本実施例では、演出動作の具体的な内容は、専ら演出制御部31で決定されるので、主制御部30の制御負担が軽く、しかも、主制御部30から受信した制御コマンドCMDがビット化けしても、送信する制御コマンドCMD’がビット化けしない限り、音声演出やランプ演出と同期した図柄演出が確実に実現される。なお、制御コマンドCMD’のビット化けは、回路基板を近接させるなどの工夫によって防止できる。
以上を踏まえて、各制御部30〜33の回路構成を確認的に説明する。主制御部30には、図柄始動口15や大入賞口16を開閉するソレノイド類をON/OFF駆動する駆動回路36と、図柄始動口15などに内蔵された検出スイッチ及び払出制御基板33の出力ポート45からの信号LIVEを受ける入力ポート37と、サブ制御基板に制御コマンドCMD(a),CMD(b),CMDを出力する出力ポート38a,38b,39とが設けられている。図示の通り、出力ポート38aと出力ポート38bは、演出制御部31に接続されて同一の制御コマンドCMD(a)、CMD(b)を出力する。また、出力ポート39は、払出制御部33に接続されて制御コマンドCMDを出力する。なお、これら出力ポート38a,38b,39は、一旦制御コマンドを出力すると、次の新たな制御コマンドを出力するまで、その出力レベルを維持する。
主制御部30の上記の構成に対応して、演出制御部31には、主制御部30から制御コマンドCMDを受ける入力ポート40a,40bと、液晶ディスプレイ14を駆動するLCD駆動回路41と、音声・ランプ制御部32に制御コマンドCMD’を出力する出力ポート42とが設けられている。先に説明したように、演出制御部31では、主制御部30から「変動パターンコマンド」を受けると、受信した「変動パターンコマンド」に基づく演出抽選によって演出内容を決定した後、これを特定する制御コマンドCMD’を出力ポート42から音声・ランプ制御部32の入力ポート43に向けて出力している。
そして、制御コマンドCMD’の伝送後に演出制御部31が液晶ディスプレイ14を駆動して演出動作を開始するのは勿論である。なお、主制御部30から伝送される制御コマンドCMD(a)と制御コマンドCMD(b)の伝送経路は、空間的に分離した経路を採っており、それぞれ演出制御部31の2つの入力ポート40a,40bへの最短経路となっている。
払出制御部33には、主制御部30から制御コマンドCMDを受ける入力ポート44と、自らの動作開始状態を主制御部30に通知するための出力ポート45とが設けられている。そして、電源投入後、払出制御部33の初期動作が完了すると、主制御部30に対してLレベルの動作開始信号LIVEを出力し、主制御部30ではこの動作開始信号LIVEを確認した後に、遊技制御動作を開始する。なお、出力ポート45はプルアップされており、払出制御部33は、所定時間経過後に動作開始信号LIVEがHレベルに戻される。
図4は、演出制御部31の回路構成をより細かく示すブロック図である。演出制御部31は、主制御部30から別の経路を経て制御コマンドCMD(a),CMD(b)を受けるワンチップマイコン50と、ワンチップマイコン50が実行する制御プログラムを記憶している制御ROM51と、液晶ディスプレイ14に描画されるスプライトに関する情報を、ワンチップマイコン50から受けて描画信号を生成するグラフィックコントローラ(具体的にはVDP:Video Display Processor)52と、液晶ディスプレイ14に描画可能な各スプライトのパターンデータなどを記憶するCGROM53とで構成されている。
ここで、スプライトとは、液晶ディスプレイ14上で他の画像とは独立して、任意に移動可能な一単位のグラフィックデータの総称であり、この実施例では、演出表示部21に描画される「1」〜「9」などの装飾文字や、特別図柄表示部20や普通図柄表示部19に描画される「◎」、「○」、「−」、「ハート模様」などの記号や、その他の演出キャラクタを特定するものとなっている。また、背景画像についてもスプライトで構成されている。
図示の通り、ワンチップマイコン50は、主制御部30から制御コマンドCMD(a),CMD(b)を入力ポート40a,40bに受けると共に、制御コマンドCMD(a),CMD(b)に同期して主制御部30から供給されるストローブ信号STB(a),STB(b)を割込み端子IRQ1,IRQ2に受けている。そして、各ストローブ信号STBがアクティブになると、制御ROM51に格納されている割込み処理プログラムが起動して、ワンチップマイコン50は、制御コマンドCMD(a)又は制御コマンドCMD(b)を取得するようになっている。
また、ワンチップマイコン50の割込み端子IRQ0は、グラフィックコントローラ52から出力される割込み信号INTを受けている。この実施例の場合には、グラフィックコントローラ52が、フレームバッファに対する描画データ(グラフィックイメージデータ)の書き込み処理を終える毎に、割込み信号INTを出力するよう設定されており、割込み信号INTの周期は、液晶ディスプレイ14の1フレーム分の表示に要する1/60秒となっている。
フレームバッファは、液晶ディスプレイ14に表示される1フレーム分の描画データを記憶可能なメモリ領域であり、上記1フレーム分の描画データをそれぞれ記憶する第一バンクと第二バンクに区分されている。この第一バンクと第二バンクは書き込み用と読み出し用とに循環的に機能しており、例えば、第一バンクに描画データを書き込むタイミングでは、第二バンクに格納されている描画データが読み出されて液晶ディスプレイ14に出力される(図6参照)。
一方、次のタイミングでは、第二バンクに描画データが書き込まれる一方、第一バンクに格納された描画データが読み出されて出力される。なお、この実施例では、出力された描画データは、アナログ変換されて、R,G,Bの画像信号として液晶ディスプレイ14に向けて出力されている。
割込み信号INTに対応して起動されるワンチップマイコン50の割込み処理プログラムでは、各スプライトの描画位置などを規定するべく、指示データテーブルTBLに対して必要な動作パラメータを書き込み、次に描画すべき各スプライトの位置や変形形状を指定するようにしている。
この指示データテーブルTBLは、ワンチップマイコン50の外部バスに接続可能な周辺デバイス(メモリ)として機能しており、ワンチップマイコン50のメモリマップに位置づけて直接的にアクセス可能である(ダイレクトマッピング)。また、グラフィックコントローラ52の内蔵レジスタを介して間接的にアドレッシングすることもできるが(インダイレクトマッピング)、何れにしてもグラフィックコントローラ52は、書き込み処理に関与することがなく、要するに、グラフィックコントローラ52はワンチップマイコン50に対する入力処理を実行しない。
このように、グラフィックコントローラ52は、指示データテーブルTBLの動作パラメータを参照するだけであり、CGROM53から特定のスプライトのパターンデータを読み出し、動作パラメータで指定された位置に、動作パラメータで指定された変形形状で、各スプライトを描画するべく動作している。
図5は、上記したグラフィックコントローラ52を更に詳細に示したブロック図である。図示の通り、このグラフィックコントローラ52は、ワンチップマイコン50からのデータを受けるCPUインタフェイス部54と、CGROM53からスプライトのパターンデータを受けるパターンメモリインタフェイス部55と、指示データテーブルTBLとして使用されるSRAM(static RAM)56aと、フレームバッファとして使用されるSDRAM(Synchronous Dynamic RAM)56bと、描画データを生成するスプライト面生成部57と、CGROM53から圧縮データを受けた場合に機能する圧縮データ伸張部58と、圧縮データ伸張部58のワークエリアとして機能するSDRAM(Synchronous Dynamic RAM)59と、描画データをDA変換するDAC60と、液晶ディスプレイ14の同期信号などを出力するコントローラ部CTLとで構成されている。
先に説明したように、フレームバッファは、第一バンクと第二バンクに区分されて描画データを記憶するメモリ領域であるが、指示データテーブルTBLと、フレームバッファ56bの関係は図6に示す通りである。また、図6に示す通り、第一バンクと第二バンクは、液晶ディスプレイ14が1フレーム分の表示処理を完了する1/60秒(=τ)毎に、液晶ディスプレイ14の垂直同期信号のタイミングで、その機能が書き込み用と読み出し用に循環的に切り換る。
ところで、CGROM53には、各スプライトの画像データが格納されているが、図8は、16×16ドット(画素)によって構成されたスプライトを例示したものである。16×16に区分されている各画素には色情報が規定されており、図示の例では、00Hの色番号のドットと、02Hの色番号のドットと、01Hの色番号のドットとを適宜に組合せて特定図柄「7」を実現している。
本実施例では、例えば、図7のように、特定図柄のn個のスプライト(#1〜#n)が構成されており、これらが背景画像を実現しているスプライト(#m)に重ねられて、液晶ディスプレイ14に表示されることになる。なお、背景画像スプライトの画素数は、液晶ディスプレイ14の解像度に応じて適宜に設定されるが、液晶ディスプレイ14の解像度を超える画素数を設定すれば、背景画像を上下左右に自然に移動させることが可能となる。
図7は、SRAM56aに設けられた指示データテーブルTBLと、指示データテーブルTBLのデータに基づいて描かれるスプライトの関係を図示したものである。指示データテーブルTBLには、各スプライト(#1〜#m)毎に16バイト程度の動作パラメータの書き込み領域が設けられており、書き込まれた動作パラメータによって各スプライトの表示位置や拡大縮小率などが特定されるようになっている。
スプライトの表示位置は、例えば、スプライトの左上端ドットの座標位置(DOx,DOy)によって規定され、スプライトサイズが16×16ドットである場合には、当該スプライトは、スプライト面生成部57の動作によって、スプライト面の左上端(DOx,DOy)から右下端(DOx+15,DOy+15)で囲まれる矩形範囲内の描画データが生成されることになる。
以上の説明から明らかなように、ワンチップマイコン50が指示データテーブルTBLの書き込み動作を行い、スプライト#nの表示位置を(DOx,DOy)から(DOx+A,DOy+B)に変更すれば、液晶ディスプレイ14上では、当該スプライト#nがX方向に+A、Y方向に+Bだけ移動することになる。
もっとも、液晶ディスプレイ14の解像度に応じて、実際に表示されるのは水平表示ドット数HDW×垂直表示ライン数VDWの矩形範囲内に限られるが、上記したスプライトの左上端ドットの座標指定によって、各スプライトを液晶ディスプレイ14上で自由に移動させることが可能となる。以上の通り、ワンチップマイコン50は、1/60秒毎の割込み信号INT(描画割込み)に応じて指示データテーブルTBLの内容を書換えることで、リーチ演出などを含む各種の図柄演出を行っている。
ところで、図3に示す主制御部30は、図9に示すタイマ割込み処理を所定時間(例えば2mS)毎に実行することによって、パチンコ機1の動作全体を総括的に制御している。以下、図9に基づいて説明すると、タイマ割込みが生じると、各レジスタの内容がスタック領域に退避された後(ST20)、最初に乱数作成処理が実行される(ST21)。乱数作成処理とは、普通図柄処理ST29や特別図柄処理ST34における抽選動作で使用される当り用カウンタRGや大当たり用カウンタCTの更新処理を含んでいる。
当り用カウンタRGや大当り用カウンタCTは、ステップST21において、それぞれ所定数値範囲内でインクリメント(+1)処理によって更新され、更新後のカウンタの値は、それぞれ、当り判定用乱数値や大当り判定用乱数値として当否抽選動作で活用される。
具体的には、当り用カウンタRGの値は、遊技球がゲート18を通過した場合に、普通図柄処理(ST29)における抽選動作で使用され、大当り用カウンタCTの値は、遊技球が図柄始動口15を通過した場合に、特別図柄処理(ST34)における抽選動作に使用される。なお、従来装置では、乱数作成処理において、演出図柄表示部21における停止図柄を決定するための、大当り図柄用乱数作成処理を行っていたが、本実施例では、かかる処理は存在しない。
すなわち、本実施例では、特別図柄処理(ST34)において、大当り状態の当否抽選のみを行い、その当否結果を、大当り用の「変動パターンコマンド」として演出制御部31に伝送し、演出図柄表示部21や特別図柄表示部20におけるリーチ演出時や演出図柄の停止図柄の選択については演出制御部31に委ねている。
乱数作成処理(ST21)が終わると、各遊技動作の時間を管理しているタイマについてタイマ減算処理が行なわれた後(ST22)、図柄始動口15やゲート18の検出スイッチ、及び大入賞口16の検出スイッチを含む各種スイッチ類の信号が入力され記憶される(ST23)。なお、ステップST22の処理で減算される各タイマは、電動チューリップや大入賞口16の開放時間やその他の遊技演出時間を管理するためのものである。
スイッチ入力処理(ST23)が終わると、次に、この段階で生成されている制御コマンドを、対応するサブ制御部31、33に伝送した後(ST24)、エラー管理処理が行われる(ST25)。なお、エラー管理処理は、遊技球の補給が停止したり、遊技球が詰まっていないかなど、機器内部に異常が生じていないかの判定である。次に、払出制御部33向けの制御コマンドを作成した後(ST26)、生成された制御コマンドを対応するサブ制御部に伝送する(ST27)。
次に、現在が「当り中」の動作状態でないことを条件に、普通図柄処理を行う(ST29)。普通図柄処理とは、電動チューリップなど、普通電動役物を作動させるか否かの判定を意味する。具体的には、ステップST23のスイッチ入力結果によって遊技球がゲートを通過していると判定された場合に、乱数生成処理(ST21)で更新された当り用カウンタRGの値を取得し、このとき取得された乱数値が、変動開始時に当り当選値と対比される。そして、対比結果が当選状態であれば「当り中」の動作状態に変更する。また、「当り中」となれば、電動式チューリップなど、普通電動役物の作動に向けた処理を行う(ST31)。
続いて、必要な制御コマンドを演出制御部31に伝送する(ST32)。この制御コマンドは、普通図柄処理における当り抽選処理の当否結果に対応したものであり、最初に出力されるのは、普通図柄についての「変動パターンコマンド」であり、所定時間後に「変動停止コマンド」が出力される。なお、これらの制御コマンドは、ストローブ信号STB(a)に同期して先ず出力ポート38aから出力され、その後、ストローブ信号STB(b)に同期して出力ポート38bから出力される。
次に、現在が「大当り中」の動作状態でないことを条件に、特別図柄処理を行う(ST34)。特別図柄処理(ST34)とは、大入賞口16など第1種特別電動役物を作動させるか否かの判定である。具体的には、ステップST23のスイッチ入力結果によって遊技球が図柄始動口15に入賞したと判定された場合に、乱数生成処理(ST21)で更新された大当り用カウンタCTの値を取得し、このとき取得された乱数値が大当り当選値と対比され、対比結果が当選状態であれば「大当り中」の動作状態に変更される。
以上のような特別図柄処理(ST34)が終わったら、現在が、「大当り中」の動作状態であることを条件に、大入賞口16を用いた第1種特別電動役物の作動に向けた処理が行われる(ST36)。続いて、コマンド伝送処理(ST37)が行われ、直近に特別図柄処理(ST34)が行われた場合には、その際の当否結果に応じて、特別図柄の「変動パターンコマンド」が演出制御部31に伝送される。普通図柄の場合と同様、特別図柄用の「変動パターンコマンド」も、ストローブ信号STB(a)に同期して先ず出力ポート38aから出力され、その後、ストローブ信号STB(b)に同期して出力ポート38bから出力される。
また、「変動パターンコマンド」で規定される所定時間後に「変動停止コマンド」が出力される。「変動停止コマンド」も、ストローブ信号STB(a)に同期して先ず出力ポート38aから出力され、その後、ストローブ信号STB(b)に同期して出力ポート38bから出力される。なお、「変動パターンコマンド」によって変動動作の終了時は特定されるが、「変動停止コマンド」を受けることによって、確定的に演出動作を停止する。
但し、本実施例では、演出制御部31からの制御コマンドCMD’によって音声演出とランプ演出が実行されるので、主制御部30から演出制御部31に伝送する「変動停止コマンド」は、これを省略することができる。すなわち、演出制御部31は、「変動停止コマンド」を受けなくても、演出終了のタイミングを「変動パターンコマンド」により把握できるので、演出制御部31は、自らの判断で音声・ランプ制御部32に対して「変動停止コマンド」を伝送することができ、これによって図柄演出とランプ演出と音声演出を同期して終了させることができる。
何れにしても、ステップST37の処理が終わると、ステップST20の処理で退避しておいたレジスタを復帰させてタイマ割込み処理を終える(ST38)。その結果、メインルーチンの処理に戻ることになるが、所定時間経過すると、再度ステップST20の処理が開始されるので、ステップST20〜38の処理は、所定時間毎に繰り返されることになる。
続いて、図10〜図12に基づいて、主制御部30が制御コマンドCMDを伝送した後に生じる演出制御部31の動作を説明する。図10は、制御コマンドCMD(a)に同期して、ワンチップマイコン50にストローブ信号STB(a)が供給されて発生する割込み処理プログラムを示している。この実施例では、入力ポート40aから取得する制御コマンドCMD(a)が、三回連続して一致すれば、これを制御コマンドとして採用するが、入力処理を10回繰り返しても入力値が連続して一致しなければ、通信異常と判断してフラグ値FLG(a)をNGに設定するようにしている。
以下、この動作を具体的に説明すると、図10に示すように、先ず、変数N,M、フラグ値FLG(a)、及び一時格納領域BUFF(a)をゼロクリアした後(ST1)、フラグ値FLG(b)の値がOK状態か否かを判定する(ST2)。フラグ値FLG(b)は、図11の割込み処理において、正常に制御コマンドCMD(b)が取得されると、OK状態に設定されるようになっている(図11のステップST51)。
図10と図11の割込み処理プログラムでは、本来同一の筈の制御コマンドCMD(a),CMD(b)を重複して取得しているのであるから、制御コマンドCMD(b)が正常に取得できたことを(フラグ値FLG(b)=OKの状態から)確認できれば、制御コマンドCMD(a)を改めて取得する必要はなく、そのため、フラグ値FLG(b)=OK状態であれば、図10の割込み処理を終えている(ST2)。
一方、フラグ値FLG(b)≠OK状態であれば、入力ポート40aから制御コマンドCMD(a)を入力して(ST3)、変数Nと変数Mをインクリメント(+1)する(ST4)。そして、入力した制御コマンドCMD(a)の値が、BUFF(a)の格納値と一致するか否かが判定され(ST5)、一致しなければBUFF(a)領域に、制御コマンドCMD(a)を格納すると共に変数Nをゼロクリアし(ST6)、変数Mが10を越えない限りステップST2の処理に移行する。
最初の段階では、BUFF(a)にはゼロが格納されているので、ステップST2の処理に戻ることになる。その後もステップST2〜ST7の処理を繰り返すが、入力した制御コマンドCMD(a)の値が、BUFF(a)の格納値に一致しない状態が続けば、M=10となった段階でフラグ値FLG(a)をNG状態に設定して処理を終える(ST8)。これは、何回入力処理を繰り返しても同一の制御コマンドが取得できないので、通信異常が回復されないと判断して、フラグ値FLG(a)をNG状態にするのである。
一方、ステップST5の判定で、制御コマンドCMD(a)の入力値と、BUFF(a)の格納値が一致すれば、変数Mが10に達しないことを条件に(ST9)、変数Nが3に一致するか否かを判定する(ST10)。そして、変数N≠3であれば、ステップST2の処理に戻る。
このような処理(ST2〜ST5,ST9,ST10)を繰り返すと、やがて、変数Nが3になるので、フラグ値FLG(a)をOK状態に設定して割込み処理を終える(ST11)。変数Nが3に達したということは、連続して三回同じ制御コマンドCMD(a)を取得したことを意味するので、この制御コマンドCMD(a)を、正常な制御コマンドとして採用するのである。この場合、正常な制御コマンドCMD(a)は、BUFF(a)領域に格納されている。
なお、ステップST9の判定で変数M=10となれば、ステップST8に移行してフラグ値FLG(a)をNG状態にする。その他、ステップST2〜ST10の割込み処理の途中で、FLG(b)がOK状態に変化すれば、その段階で割込み処理を終える(ST2)のは勿論である。
以上、ストローブ信号STB(a)による割込み処理について説明したが、ストローブ信号STB(b)による割込み処理も図10の処理と同一であり、図11に示す通りである。すなわち、連続して三回同じ制御コマンドCMD(b)を取得した場合には、フラグ値FLG(b)をOK状態に設定して割込み処理を終える(ST51)。この場合も、正常な制御コマンドCMD(b)は、BUFF(b)領域に格納されている。
一方、入力処理を10回繰り返しても、連続して三回同じ制御コマンドCMD(b)を取得できない場合には、変数Lが10に達するので、フラグ値FLG(b)をNG状態にして割込み処理を終える(ST48)。なお、割込み処理の途中でFLG(a)がOK状態に変化すれば、その段階で割込み処理を終える点も図10の場合と同じである(ST42)。
図12は、演出制御部31のメイン処理の一部を示すフローチャートである。図10、図11に関して説明した通り、制御コマンドの受信割込み処理は、フラグ値FLG(a),FLG(b)をOK状態/NG状態の何れかの値に設定して終わるので、演出制御部31のメイン処理では、先ず、フラグ値FLG(a)とFLG(b)の何れかがゼロ以外の値(NGかOKの状態)になるのを待つ(ST60)。FLG(a)≠0か又はFLG(b)≠0であることは、図10か図11かのいずれかの割込み処理が終了したことを意味する。
そこで、次に、FLG(a)がOK状態か否かを判定し(ST61)、もしOK状態なら、BUFF(a)領域の内容を読み出し、その値に基づいた動作を開始する。一方、FLG(a)≠OK状態なら、FLG(b)がOK状態か否かを判定し(ST62)、もしOK状態ならBUFF(b)領域の内容を読み出し、その値に基づいた動作を開始する。
なお、FLG(a)もFLG(b)もNG状態であれば、通信異常時の専用動作を開始する。専用動作の内容は適宜に設定されるが、「変動パターンコマンド」を受信したと思われる場合には、ハズレ状態で終わるか、或いは当否不明の状態で終了する演出動作を行う。
以上の通り、本実施例では、正常時には、演出制御部31が受けた2つの制御コマンドの何れか一方を採用し、これに基づいて演出制御部31及び音声・ランプ制御部32が統一的な動作をするので、液晶ディスプレイ14における図柄演出とランプ演出及び音声演出とに不整合は生じない。また、演出制御部31が通信異常の専用動作を選択した場合でも、演出図柄表示部21と特別図柄表示部20の演出内容は必ず整合するので遊技者に不信感を与えることはない。なお、報知動作が、ハズレ状態か当否不明の状態で終了したにも拘わらず、その後に大当り状態に突入する可能性もあるが、遊技者に何の不利もないので遊技ホールとトラブルが生じることはない。
図10〜図13の動作内容は、上記の通りであるが、このような実施態様の場合には、伝送線の断線など致命的な通信異常が生じてもこれを検出できない欠点がある。すなわち、断線した伝送線から得られる制御コマンドは、連続して三回、同一値を示すので、例えば、制御コマンドCMD(a)を正常に受信できないにも拘わらず、FLG(a)=OKとなってしまう。そこで、かかる欠点を考慮すると、入力ポート40aと入力ポート40bから、制御コマンドCMD(a),CMD(b)を必ず取得する実施態様の方が優れている。
図13と図14は、かかる動作態様を説明するフローチャートであり、図10と図11のステップST1とST41の処理からFLG(a),FLG(b)のリセット処理を省略すると共に、ステップST2とST42の処理を排除している。そのため、各受信割込み処理が完了すると、FLG(a)やFLG(b)がゼロであることはあり得ず、また、FLG(a)やFLG(b)がOKであれば、BUFF(a)とBUFF(b)には必ず取得した制御コマンドが必ず格納されている。
図13と図14のかかる動作に対応して、演出制御部31のメイン処理では、図15に示すように、FLG(a)とFLG(b)が共にゼロ以外となるのを待ち(ST70)、次にFLG(a)かFLG(b)がNG状態の場合には、各フラグFLG(a),FLG(b)をゼロクリアした後(ST78)、通信異常時の専用動作を開始する。また、FLG(a)=FLG(b)=OKである場合にも、BUFF(a)とBUFF(b)の内容が一致するか否かを判定している(ST73)。
ステップST73の判定で、BUFF(a)とBUFF(b)の内容が一致する場合には、各フラグFLG(a),FLG(b)をゼロクリアした後(ST74)制御コマンドCMD(a)(=CMD(b))に基づいた動作をするが、不一致の場合には、エラー回数をカウントする変数ERRをインクリメントする(ST75)。そして、エラー回数ERRが所定値MAXを越えない場合には、通信異常時の専用動作を開始するが、エラー回数ERRが所定値MAXを越えると、断線などの致命的な通信異常であると判断して、その旨を報知している(ST77)。
以上、本発明の一実施例について説明したが、具体的な記載内容は特に本発明を限定するものではない。例えば、本実施例の場合には、通信異常を演出制御部31で把握できるよう、三回連続して同一の制御コマンドを受信したか否かを判定しているが、その連続回数は適宜に変更可能である。また、通信異常の検出手法として、連続して同一の制御コマンドを受信したか否かで判定するのではなく、本来受信するはずのないデータを受信したか否かで判定するのでも良い。例えば、制御コマンドを16ビット構成とし、このような制御コマンドを8ビットずつ分けて伝送するようにして、制御コマンドの第1バイトと第2バイトに、それぞれ特徴的なビットパターンを設けておけば、そのビットパターンを判定することで通信異常を検出することができる。
また、上記した実施例では全ての制御コマンドについて主制御部30から演出制御部31に重複して伝送し、図10及び図11の処理を起動しているが、重複して伝送する制御コマンドを「変動パターンコマンド」に限定しても良い。この場合には、「変動パターンコマンド」以外の制御コマンドを受信しても、図11の割込み処理が生じないが、例えば、フラグ値FLG(b)を予めゼロに設定しておけば、図10の割込み処理で取得した情報(OK/NG)に基づく動作に移行させることが可能となる。