以下、図面を参照しつつ、本発明の一実施形態を詳細に説明する。
図1は、本実施例におけるパチンコ遊技機の正面図であり、主要部材の配置レイアウトを示す。本実施例におけるパチンコ遊技機としては、プリペイドカードによって球貸しを行うカードリーダ(CR:Card Reader)式のパチンコ遊技機であるが、例えば、一般電役機やパチコンと呼ばれる確率設定機能付き弾球遊技機等であっても構わない。さらには、プリペイドカードによって球貸しを行うCR式パチンコ遊技機だけではなく、現金によって球貸しを行うパチンコ遊技機にも適用可能である。
パチンコ遊技機(遊技機)1は、大別して、遊技盤面を構成する遊技盤(ゲージ盤)2と、遊技盤2を支持固定する遊技機用枠(台枠)3と、から構成されている。
遊技盤2には、ガイドレールによって囲まれた、ほぼ円形状の遊技領域が形成されている。遊技領域のほぼ中央位置には、可変表示装置4が設けられている。可変表示装置4の側部には、通過ゲート5が設けられている。可変表示装置4の下側には、普通可変入賞球装置(始動入賞口)6が配置されている。普通可変入賞球装置6の下側には、特別可変入賞球装置(大入賞口)7が配置されている。また、可変入賞球装置4の上部には、可動部材90が設けられ、その側部には、特別図柄表示器80が設けられていると共に、その上部には、普通図柄表示器40が設けられている。
特別図柄表示器80は、例えば7セグメントのLED等から構成され、例えば、普通可変入賞球装置6に遊技球が入賞することが実行条件となる特図ゲームにおいて、数字、文字、図柄等から構成される特別図柄の可変表示を開始し、一定時間が経過すると、特別図柄の可変表示結果となる確定図柄を停止表示(導出表示)する。
可変表示装置4は、複数の可変表示部により識別情報としての図柄を可変表示するLCD(Liquid Crystal Display)モジュール等を備えて構成され、例えば、特別図柄表示器80における特別図柄の可変表示が開始されるときに、数字、文字、図柄等から構成される3つの表示図柄(飾り図柄)の可変表示を開始し、特別図柄表示器80における特別図柄の可変表示結果として確定図柄が停止表示されるときに、左、右、中の順で表示図柄を確定する。可変表示装置4には、普通可変入賞球装置6に入った有効入賞球数すなわち始動記憶数を表示する4つの始動記憶表示エリアが設けられていてもよい。
可動部材90は、怪獣の顔を模した形状をなし、下あご部分が遊技盤2裏面に設けられるソレノイド83(図5)によって上下方向に可動することで、怪獣がものを噛むような動作を行うようになっている。この可動部材90は、遊技者に対して視認可能に設けられており、可変表示装置4の表示態様(例えば、飾り図柄や演出画像の変動)に対応して可動する。可動部材90には、上下方向に可動する下あご部分の位置を検出するため可動部材位置センサ26(図5)が設けられている。
通過ゲート5は、通過した打球を球出口を経て普通可変表示装置6の方に導くものである。通過ゲート5と球出口との間の通路には、通過ゲート5を通過した打球を検出するゲートスイッチ21(図5)が設けられている。
普通図柄表示器40は、発光ダイオード(LED)等を備えて構成され、通過ゲート5のいずれかを遊技球が通過することを始動条件とする普通図ゲームにおいて、点灯、点滅、発光色などが制御される。この普通図ゲームにおいて所定の当りパターンで表示が行われると、普通図ゲームにおける表示結果が「当り」となり、普通可変入賞球装置6を構成する電動チューリップの可動翼片を所定時間が経過するまで傾動制御する。
普通可変入賞球装置6は、ソレノイド81(図5)によって垂直(通常開放)位置と傾動(拡大開放)位置との間で可動制御される一対の可動翼片を有するチューリップ型役物(普通電動役物)として構成される。普通可変表示装置6に入った入賞球は、遊技盤2の背面に導かれ、始動口スイッチ22(図5)によって検出される。
特別可変入賞球装置7は、ソレノイド82(図5)によって入賞領域を開成・閉成制御する開閉板を備える。この開閉板は、通常時には閉成し、普通可変入賞球装置6への遊技球の入賞に基づいて、特別図柄表示器80による特図ゲームが行われた結果、特定遊技状態となった場合に、ソレノイド82によって入賞領域を所定期間(例えば、29秒)あるいは所定個数(例えば、10個)の入賞球が発生するまで開成(開成サイクル)する状態となるように設定され、その開成している間に遊技盤2の表面を落下する遊技球を受け止める。そして、この開成サイクルを最高16回繰り返すことができるようになっている。
開閉板から遊技盤2の背面に導かれた入賞球のうち一方(Vゾーン)に入った入賞球は、V入賞スイッチ23(図5)によって検出される。また、開閉板からの入賞球は、カウントスイッチ24(図5)によって検出される。入賞球の検出に応答し、後述する主基板11と払出制御基板15(図2,図5)とにより、所定数の賞球の払出が行われる。
遊技盤2の遊技領域には、複数の入賞口20a〜20dが設けられている。遊技球のそれぞれの入賞口20a〜20dへの入賞は、対応して設けられている入賞口スイッチ25a〜25d(図5)によって検出される。また、遊技盤2の遊技領域には、上記した構成以外にも、装飾ランプを内蔵した風車やアウト口等が設けられている。
また、遊技領域の外側の左右上部には、効果音を発する2つのスピーカ8L,8Rが設けられている。遊技領域の外周には、点灯又は点滅する遊技効果ランプ9が設けられている。
遊技領域の下部表面には、打球供給皿(上皿)31が設けられている。打球供給皿31の下部には、遊技者が遊技球を発射させるために操作する打球操作ハンドル(操作ノブ)30と、打球供給皿31に収容しきれない遊技球を貯留する余剰球受皿32と、遊技者等が操作可能な操作ボタン33と、が設けられている。
さらに、図1には、パチンコ遊技機1に隣接して設置され、プリペイドカードが挿入されることによって球貸しを可能にするプリペイドカードユニット(以下、カードユニットという)70も示されている。カードユニット70には、使用可能状態であるか否かを示す使用可表示ランプ、カードユニット70がいずれの側のパチンコ遊技機1に対応しているのかを示す連結台方向表示器、カードユニット70内にカードが投入されていることを示すカード投入表示ランプ、記録媒体としてのカードが挿入されるカード挿入口、およびカード挿入口の裏面に設けられているカードリーダライタの機構を点検する場合にカードユニット70を開放するためのカードユニット錠などが設けられている。
図2は、パチンコ遊技機1の背面図である。パチンコ遊技機1の背面上方には、補給球としての遊技球を貯留する貯留タンク41と、貯留タンク41に貯留された遊技球を払出ケース42へ誘導する誘導レール43と、が設けられている。誘導レール43の下流は、カーブ樋を介して2列の球通路44a,44bに連通されている。球通路44a,44bの上流側には、球切れスイッチ74が設置されている。球通路44a,44bの下部には、払出装置50(図3)を覆う払出ケース42が固定されている。
球切れスイッチ74は、球通路44a,44b内の遊技球の有無を検出するスイッチであって、球切れスイッチ74が遊技球を検出しなくなると払出装置50における払出モータ51(図4)の回転を停止して遊技球の払出が不動化される。また、球切れスイッチ74は、球通路44a,44bに27〜28個の遊技球が存在することを検出できるような位置に係止片によって係止されている。即ち、球切れスイッチ74は、球貸の一単位の最大払出量(この実施の形態では100円:25個)以上が確保されていることが確認できるような位置に設置されている。
また、パチンコ遊技機1の背面下方にて打球供給皿31と余剰球受皿32の間を連通する余剰球通路の側壁には、満タンスイッチ73が設けられている。満タンスイッチ73は、余剰球受皿32の満タンを検出するものである。
賞球又は球貸要求に基づく遊技球が多数払い出されて、打球供給皿31が満杯になり、遊技球が連絡口に到達した後、さらに遊技球が払い出されると、遊技球は、余剰球通路を経て余剰球受皿32へと導かれる。さらに遊技球が払い出されると、感知レバーが満タンスイッチ73を押圧してオンする。この状態では、払出装置50内の払出モータ51の回転が停止して払出装置50の払出動作が停止すると共に発射装置60の駆動も停止する。
図3は、払出ケース42で覆われた払出装置50を示す正面図(図3(A))及び断面図(図3(B))である。図4は、払出装置50の構成例を示す分解斜視図である。この例では、払出ケース42としての3つのケース45a,45b及び45cの内部に払出装置50が形成されている。ケース45a及び45bの上部には、それぞれ球通路44a,44bと連通する穴46a,46bが設けられており、遊技球は、この穴46a,46bから払出装置50へと流入する。
払出装置50は、賞球又は球貸し要求に基づく遊技球を払い出すものであり、駆動源となる払出用ステッピングモータ(払出モータ)51を備えている。払出モータ51は、払出制御基板15から送られる駆動信号により、その回転動作が制御される。
また、払出装置50には、払出モータ51の回転軸に嵌合しているギア52と、ギア52と噛み合うギア53と、ギア53の中心軸に嵌合して球載置部を有するカム54と、カム54の下方の球通路55と、が設けられている。穴46a,46bから流入した遊技球は、カム54の球載置部が1/3回転する毎に1個ずつ交互に、球通路55を経て落下する。
払出装置50には、発光素子(LED)と受光素子とから構成される払出モータ位置センサ71が設けられている。払出モータ位置センサ71は、払出モータ51の回転位置を検出するためのセンサであり、払出モータ51が1/3回転する毎にオンし、所定の検出信号を払出制御基板15に送信する。これにより、払出制御基板15の側では、払出モータ51の回転動作量をカウントすることができる。
払出装置50の下方には、例えば近接スイッチによる払出カウントスイッチ72が設けられている。払出カウントスイッチ72は、払出装置50から1個の遊技球が落下する毎にオンして、所定の検出信号を払出制御基板15に送信する。これにより、払出制御基板15の側では、払出装置50から実際に払い出された遊技球の数をカウントすることができる。
発射装置60は、駆動源となる発射用ステッピングモータ(発射モータ)61(図5)を備え、発射モータ61の回転により発射バネを弾性変形させ、発射バネの付勢力を打撃ハンマに伝達して遊技球を打撃することにより、遊技球を遊技領域に向けて発射する。発射バネの弾性力は、操作ノブ30の操作量に従って調整される。すなわち、遊技球は、操作ノブ30の操作量に応じた速度で発射される。また、発射モータ61は、払出制御基板15から送られる発射制御信号により、回転動作が制御される。
また、パチンコ遊技機1の背面には、電源基板10,主基板11,演出制御基板12,音声制御基板13,ランプ制御基板14,払出制御基板15,情報端子基板16,発射制御基板17及び中継基板18といった主要基板がそれぞれ適所に配設されている。
図5は、主基板11と払出制御基板15とを中心としたシステム構成例を示すブロック図である。なお、図5には、電源基板10,演出制御基板12,音声制御基板13,ランプ制御基板14,発射制御基板17,及び中継基板18も示されている。
電源基板10は、パチンコ遊技機1内の各回路に所定の電源電圧を供給するものである。
主基板11は、遊技制御用マイクロコンピュータ110,スイッチ回路115やソレノイド回路116等を搭載して構成される。また、主基板11には、演出制御基板12及び払出制御基板15への配線やゲートスイッチ21,始動口スイッチ22,V入賞スイッチ23,カウントスイッチ24,及び入賞口スイッチ25a〜25dからの配線が接続されている。さらに、主基板11には、普通可変入賞球装置6における可動翼片の可動制御や特別可変入賞球装置7における開成・閉成制御を行うためのソレノイド81,82への配線も接続されている。
遊技制御用マイクロコンピュータ110は、例えば1チップマイクロコンピュータであり、ゲーム制御用のプログラム等を記憶するROM(Read Only Memory)111,ワークメモリとして使用されるRAM(Random Access Memory)112,プログラムに従って制御動作を行うCPU(Central Processing Unit)113及びI/O(Input/Output)ポート114を含んでいる。この遊技制御用マイクロコンピュータ110は、特図ゲームにおいて用いる乱数の生成機能や、演出制御基板12及び払出制御基板15に対し、それぞれ指令情報の一例となる制御コマンドを出力して送信する機能、払出制御基板15から送出された制御コマンドを受信する機能、普通図柄表示器40の点灯/消灯制御を行う機能等を有するものである。
主基板11から払出制御基板15へ送信される制御コマンドは払出制御コマンドであり、演出制御基板12へ送信される制御コマンドは演出制御コマンドである。また、主基板11に対しては、払出制御基板15から払出情報コマンドが制御コマンドとして送出される。この実施の形態において、払出制御コマンドは、払出制御信号CD0〜CD7の8本の信号線で主基板11から払出制御基板15へ送信され、主基板11と払出制御基板15との間には、ストローブ信号を送信するための払出制御INT信号の信号線も配線されている。また、演出制御コマンドは、演出制御信号CD0〜CD7の8本の信号線で主基板11から演出制御基板12へ送信され、主基板11と演出制御基板12との間には、ストローブ信号を送信するための演出制御INT信号の信号線も配線されている。さらに、払出情報コマンドは、払出情報コマンドデータ0〜7の8本の信号線で主基板11から払出制御基板15へ送信され、払出制御基板15と主基板11との間には、ストローブ信号を送信するための払出情報INT信号の信号線も配線されている。
図6は、この実施の形態で用いられる払出制御コマンド、払出情報コマンド、及び演出制御コマンドの内容の一例を示す説明図である。図6(A)に示すように、各制御コマンドは2バイト構成であり、1バイト目はMODE(コマンドの分類)を表し、2バイト目はEXT(コマンドの種類)を表す。MODEデータの先頭ビットは必ず「1」とされ、EXTデータの先頭ビットは「0」とされる。
図6(B)に示すコマンドFFXX(h)は、賞球の個数を指定する払出制御コマンドであり、このEXTデータは、賞球の個数を示している。図6(C)に示すコマンドF700(h)は、エラー状態になったことを主基板11に通知する払出情報コマンドであり、コマンドF800(h)は、エラー状態が解除されたことを主基板11に通知する払出情報コマンドである。また、図6(D)に示すコマンドE500(h)は、球払出に関するエラー演出の実行を指令する演出制御コマンドであり、コマンドE600(h)は、球払出に関するエラー演出の消去(停止)を指令する演出制御コマンドである。
図7は、遊技制御用マイクロコンピュータ110の構成例の詳細を示すブロック図である。遊技制御用マイクロコンピュータ110は、図7に示すように、受信コマンドバッファメモリ120と、スイッチタイマメモリ121と、スイッチオン判定値テーブルメモリ122と、フラグメモリ123と、コマンド送信テーブルメモリ124と、を備えている。
受信コマンドバッファメモリ120は、払出制御基板15から受信した払出情報コマンドを格納するための受信コマンドバッファが複数設けられている。図8に示す例では、12個の受信コマンドバッファが設けられており、受信したコマンドを格納する受信コマンドバッファは、コマンド受信個数カウンタで指定される。コマンド受信個数カウンタは、0〜11の範囲の値をとる。各受信コマンドバッファは、例えば1バイトで構成され、複数の受信コマンドバッファをリングバッファとして使用することにより、2バイト構成の払出情報コマンドを6個格納することができる。
スイッチタイマメモリ121は、各種スイッチから入力される検出信号がオン状態にあるか或いはオフ状態にあるかに応じて、加算又はクリアされるスイッチタイマを複数記憶するものである。この実施の形態においては、図9に示すように、各種スイッチに対応したアドレスにスイッチタイマが、それぞれ設けられている。
図7に示すスイッチオン判定値テーブルメモリ122は、各種スイッチがオンしているか否かを判定するためのスイッチオン判定値を複数記憶するものである。具体的には、各種スイッチから入力される検出信号がオン状態にあると連続して判定される回数がスイッチオン判定値として記憶されている。この実施の形態においては、入賞口スイッチ25a〜25d,始動口スイッチ22,カウントスイッチ24,V入賞スイッチ23,及びゲートスイッチ21のスイッチオン判定値として「2」が設定されている。
図7に示すフラグメモリ123は、パチンコ遊技機1における遊技の進行を制御するために用いられる複数種類のフラグを設定するためのものである。例えば、フラグメモリ123には、特別図柄プロセスフラグ、普通図柄プロセスフラグ、スイッチオンフラグ、エラーフラグ、エラー解除フラグ、及びタイマ割込フラグ等が設けられている。
特別図柄プロセスフラグは、特別図柄プロセス処理(図20のステップS15)において、どの処理を選択・実行すべきかを指示する。普通図柄プロセスフラグは、普通図柄表示器40の表示状態を所定の順序で制御するために、普通図柄プロセス処理(図20のステップS16)において、どの処理を選択・実行すべきかを指示する。
スイッチオンフラグは、スイッチタイマメモリ121に記憶されているタイマ値等に応じて、各々セットあるいはクリアされる複数ビットからなるフラグである。エラーフラグは、エラー指定コマンドを受信したときにオン状態にセットされるフラグであり、エラー解除フラグは、エラー解除指定フラグを受信したときにオン状態にセットされるフラグである。タイマ割込フラグは、所定時間が経過してタイマ割込みが発生するごとにオン状態にセットされる。
コマンド送信テーブルメモリ124には、主基板11からサブ側の各制御基板(演出制御基板12及び払出制御基板15)に出力する各制御コマンドについて、複数のコマンド送信テーブルが設けられている。図10(A)は、コマンド送信テーブルメモリ124の構成例を示す図である。1つのコマンド送信テーブルは3バイトで構成され、1バイト目には、INTデータが設定されている。また、2バイト目のコマンドデータ1には、MODEデータが設定されており、3バイト目のコマンドデータ2には、EXTデータが設定されている。
なお、EXTデータそのものがコマンドデータ2の領域に設定されてもよいが、コマンドデータ2には、EXTデータが格納されているテーブルのアドレスを指定するためのデータが設定されるようにしてもよい。例えば、コマンドデータ2のビット7(ワークエリア参照ビット)が0であれば、コマンドデータ2にEXTデータそのものが設定されていることを示す。そのようなEXTデータはビット7が0であるデータである。この実施の形態では、ワークエリア参照ビットが1であれば、EXTデータとして、送信バッファの内容を使用することを示す。なお、ワークエリア参照ビットが1であれば、他の7ビットが、EXTデータが格納されているテーブルのアドレスを指定するためのオフセットであることを示すように構成することもできる。
図10(B)は、INTデータの構成例を示す図である。INTデータのビット0は、払出制御基板15に払出制御コマンドを送出すべきか否かを示すものである。ビット0が「1」であるならば、払出制御コマンドを送出すべきことを示す。従って、CPU113は、例えば賞球処理(図20のステップS20)において、INTデータに「01(h)」を設定する。また、INTデータのビット1は、演出制御基板12に演出制御コマンドを送出すべきか否かを示すものである。ビット1が「1」であるならば、演出制御コマンドを送出すべきことを示す。従って、CPU113は、例えばコマンド制御処理(図20のステップS17)において、INTデータに「02(h)」を設定する。
また、コマンド送信テーブルメモリ124には、図10(C)に示すように、払出制御コマンドに対して、リングバッファ及び送信バッファが設けられている。賞球処理において、賞球払出条件が成立すると、成立した条件に応じた賞球個数が順次リングバッファに設定される。また、賞球個数に関する払出制御コマンドを送出する際に、リングバッファから1個のデータが送信バッファに転送される。
なお、図10(C)に示す例において、リングバッファは、12個のバッファから構成されており、12個分の払出制御コマンドに相当するデータを格納することができる。リングバッファには、入賞口の数に対応したバッファ数が設けられているため、同時に入賞が発生した場合であっても、それぞれの入賞に基づく払出制御コマンドのデータを格納することができる。
図11及び図12は、I/Oポート114のビット割当を示す説明図である。図11に示すように、入力ポート0のビット0〜7には、それぞれ、入賞口スイッチ25a〜25d,始動口スイッチ22,カウントスイッチ24,V入賞スイッチ23及びゲートスイッチ21の検出信号が入力される。入力ポート1のビット0には、払出制御基板15から送出される払出情報コマンドのINT信号が入力され、入力ポート2には、払出情報コマンドの8ビットデータが入力される。
図12に示すように、出力ポート0からは、払出制御コマンド及び演出制御コマンドのINT信号が、それぞれ払出制御基板15及び演出制御基板12に対して出力される。出力ポート1からは、払出制御コマンドの8ビットデータが払出制御基板15に対して出力され、出力ポート2からは、演出制御コマンドの8ビットデータが演出制御基板12に対して出力される。
なお、その他の出力ポートからは、例えば、各種情報出力用信号が情報端子基板16に対して出力され、また、普通可変入賞球装置6及び特別可変入賞球装置7を開閉するための駆動信号がソレノイド81,82に対してそれぞれ出力される。
図5に示すスイッチ回路115は、ゲートスイッチ21,始動口スイッチ22,V入賞スイッチ23,カウントスイッチ24,入賞口スイッチ25a〜25d,満タンスイッチ73及び球切れスイッチ74からの検出信号を取り込んで、遊技制御用マイクロコンピュータ110に伝達するものである。ソレノイド回路116は、遊技制御用マイクロコンピュータ110からの指令に従って各ソレノイド81、82を駆動する。ソレノイド81は、リンク機構を介して普通可変入賞球装置6の可動翼片に連結されている。ソレノイド82は、リンク機構を介して特別可変入賞球装置7の開閉板に連結されている。
図5に示す演出制御基板12は、中継基板18を介して主基板11から出力される演出制御コマンドに基づいて、演出制御を行うためのものである。具体的には、演出制御基板12は、主基板11から中継基板18を介して送信される演出制御コマンドに基づいて、可変表示ゲームに用いられる画像を可変表示装置4上に表示させる。また、演出制御基板12には、音声制御基板13や、ランプ制御基板14からの配線などが接続されている。演出制御基板12は、演出制御コマンドに基づいて、音声制御基板13や、ランプ制御基板14へ制御信号を伝送することで、スピーカ8L,8Rによる音声出力動作や、遊技効果ランプ9の点灯/消灯動作などを制御する。
さらに、演出制御基板12には、可動部材位置センサ26,及び演出スイッチ27からの配線が接続されている。ここで、演出スイッチ20は、操作ボタン33が遊技者によって操作されたときにオン状態となる検出信号を出力するものである。また、演出制御基板12には、可動部材90の動作制御を行うためのソレノイド83への配線も接続されている。
図13は、演出制御基板12のハードウェア構成例を示すブロック図である。演出制御基板12は、CPU200と、ROM201と、RAM202と、VDP(Video Display Processor)203と、CGROM(Character Generator ROM)204と、VRAM(Video RAM)205と、音声データ出力回路206と、ランプデータ出力回路207と、スイッチ回路208と、ソレノイド回路209と、を備えている。
CPU200は、主基板11から中継基板18を介して送信された演出制御コマンドを受信すると、RAM202の所定領域をワークエリアとして用いながら、ROM201から演出制御を行うための制御データを読み出す。こうして読み出した制御データに基づいて、CPU200は、VDP203に描画指令を送るなどして可変表示装置4の表示制御を行ったり、音声データ出力回路206から音声制御基板13に音声データを出力させるなどして音声出力制御を行ったり、ランプデータ出力回路207からランプ制御基板14にランプデータを出力させるなどしてランプ点灯制御を行ったり、ソレノイド回路208からソレノイド83に駆動信号を出力させるなどして可動部材90の動作制御を行ったりする。
VDP203は、例えば可変表示装置4による画像表示を行うための表示制御機能及び高速描画機能を有し、CPU200からの描画指令に従った画像処理を実行する。また、CPU200とは独立した二次元のアドレス空間を持ち、そこにVRAM205をマッピングしている。例えばVDP203は、CGROM204から読み出した画像データをVRAM205の所定領域に展開する。そして、可変表示装置4に対してR(赤)、G(緑)、B(青)信号及び同期信号などからなる映像信号を出力する。一例として、R、G、B信号はそれぞれ8ビットで表され、可変表示装置4はVDP203からの指示に従ってR、G、Bのそれぞれを256階調、これらを合成して約1670万色の多色表示を行うことができる。なお、R、G、B信号のビット数は8ビット以外のビット数であってもよく、また、R、G、B信号の各ビット数が互いに異なる数であってもよい。
CGROM204は、可変表示装置4にて画像表示を行うために使用される各種の画像データを記憶しておくためのものである。例えば、CGROM204には、可変表示装置4にて表示される画像の中でも使用頻度の高いキャラクタ画像データ、具体的には、人物、動物、または、文字、図形もしくは記号等が予め記憶されていている。この実施の形態において、CGROM204には、払出装置50の動作に関連して発生したエラー(払出エラー)を報知するための文字列からなる画像データなどが格納されている。VRAM205は、VDP203による画像データの展開が行われるフレームバッファメモリである。
また、演出制御基板12は、図14に示すように、受信コマンドバッファメモリ210と、フラグメモリ211と、を備えている。
受信コマンドバッファメモリ210は、図8に示す受信コマンドバッファメモリ120と同一の構成を有するものである。具体的には、受信コマンドバッファメモリ210には、主基板11から受信した演出制御コマンドを格納するための受信コマンドバッファが、図8に示す受信コマンドバッファメモリ120と同様、12個設けられており、この12個の受信コマンドバッファをリングバッファとして使用することにより、2バイト構成の演出制御コマンドを6個格納することができるようになっている。
図14に示すフラグメモリ211は、主基板11から受信した演出制御コマンドなどに応じて、各々セットあるいはクリアされる複数種類のフラグを設定するためのものである。フラグメモリ211には、例えば、演出制御プロセスフラグや、エラー演出開始フラグ、エラー演出終了フラグなどが設けられている。
演出制御プロセスフラグは、後述する演出制御プロセス処理(図35)において、どの処理を選択・実行すべきかを指示する。エラー演出開始フラグは、主基板11から送信されたエラー演出指定コマンドを受信したときにオン状態にセットされる。エラー演出終了フラグは、主基板11から送信されたエラー演出停止指定コマンドを受信したときにオン状態にセットされる。
図13に示す音声データ出力回路206は、CPU200からの制御指令を受けて音声制御基板13に音声データを出力する。音声制御基板13に搭載された音声出力回路は、例えば音声データ出力回路206から受けた音声データにデジタル/アナログ変換を施すなどして音声信号を生成し、スピーカ8L、8Rに供給することによって音声を出力させる。
なお、音声制御基板13に、音声出力回路の代えて、音声を合成して音声データを生成するIC(Integrated Circuit)を搭載すると共に、音声データ出力回路206に、演出制御基板12から出力される音声データにデジタル/アナログ変換を施すなどして音声信号を生成し、スピーカ8L、8Rに供給することによって音声を出力させるスピーカドライバ回路からの配線を接続するようにしてもよい。この場合、CPU200は、主基板11からの演出制御コマンドに基づき、音声制御基板13に制御指令を送出することにより、音声データを生成させる。音声制御基板13は、生成した音声データを演出制御基板12に戻し、演出制御基板12のCPU200は、戻された音声データを音声データ出力回路206に送出してスピーカ8L,8Rから音声を出力させるようにすればよい。
ランプデータ出力回路207は、CPU200からの制御指令を受けてランプ制御基板14にランプデータを出力する。ランプ制御基板14に搭載されたランプドライバは、例えばランプデータ出力回路207から受けたランプデータに応じたランプ駆動信号を生成し、遊技効果ランプ9に供給することによってランプの点灯/消灯切換を行う。
スイッチ回路208は、可動部材位置センサ26,及び演出スイッチ27からの検出信号を取り込んで、CPU200に伝達するためのものある。ソレノイド回路209は、CPU200からの指令に従ってソレノイド83を駆動する。ソレノイド83は、リンク機構を介して可動部材90の下あご部分に連結されている。
図5に示す払出制御基板15は、賞球や球貸要求に基づく遊技球等の払出制御を行うものである。払出制御基板15は、主基板11及び発射制御基板17と配線接続されている。また、払出制御基板15には、払出モータ位置センサ71、払出カウントスイッチ72、満タンスイッチ73、及び球切れスイッチ74からの検出信号が入力される。さらに、払出制御基板15には、払出モータ51及び発射モータ61への配線が接続されている。
払出制御基板15には、払出制御用マイクロコンピュータ150やスイッチ回路155等が搭載されている。払出制御用マイクロコンピュータ150は、例えば1チップマイクロコンピュータであり、払出制御用のプログラム等を記憶するROM151、ワークメモリとして使用されるRAM152、プログラムに従って払出制御動作を行うCPU153及びI/Oポート154を含んでいる。この払出制御用マイクロコンピュータ150は、主基板11に対し、指令情報の一例となる制御コマンドを出力して送信する機能、主基板11から送出された制御コマンドを受信する機能等を有するものである。
図15は、払出制御用マイクロコンピュータ150の構成例の詳細を示すブロック図である。払出制御用マイクロコンピュータ150は、図15に示すように、受信コマンドバッファメモリ160と、スイッチオンカウンタメモリ161と、払出動作量カウンタ162と、加算後賞球総数カウンタ163と、加算前賞球総数カウンタ164と、貸球総数カウンタ165と、フラグメモリ166と、コマンド送信テーブルメモリ167と、を備えている。
受信コマンドバッファメモリ160は、図8に示す受信コマンドバッファメモリ120と同一の構成を有するものである。具体的には、受信コマンドバッファメモリ160には、主基板11から受信した払出制御コマンドを格納するための受信コマンドバッファが、図8に示す受信コマンドバッファメモリ120と同様、12個設けられており、この12個の受信コマンドバッファをリングバッファとして使用することにより、2バイト構成の払出制御コマンドを6個格納することができるようになっている。
図15に示すスイッチオンカウンタメモリ161は、払出モータ位置センサ71、払出カウントスイッチ72、満タンスイッチ73、及び球切れスイッチ74から入力される検出信号がオン状態にあるか或いはオフ状態にあるかに応じて、各々加算又はクリアされる払出モータ位置センサオンカウンタ、払出カウントスイッチオンカウンタ、満タンスイッチオンカウンタ、及び球切れスイッチオンカウンタを記憶するものである。この払出モータ位置センサオンカウンタの値及び払出カウントスイッチオンカウンタの値が「2」になると、払出モータ位置センサ71、及び払出カウントスイッチ72がオンしていると判定される。また、満タンスイッチオンカウンタの値が「50」になると、満タンスイッチ73がオンしていると判定され、球切れカウントオンスイッチが「250」になると球切れスイッチ74がオンしていると判定される。
払出動作量カウンタ162は、球貸制御処理(図35のステップS67)や賞球制御処理(図35のステップS68)において設定された遊技球の個数を、払出モータ51が1/3回転する毎に、1ずつ減算して行くダウンカウンタである。カードユニット70から球貸要求の信号を受信すると、この払出動作量カウンタ162には、球貸制御処理において1単位(例えば25個)の貸球の個数が設定される。また、賞球制御処理においては、払出動作量カウンタ162には、加算後賞球総数カウンタ163に記憶されている賞球の個数が設定される。
そして、この払出動作量カウンタ162の値は、払出モータ51が1/3回転したことを払出モータ位置センサ71が検出する毎に、即ち、払出モータ51が1個の遊技球を払い出すための回転動作(払出動作)を実行する毎に、1ずつ減算されて行く。このようにして、払出動作量カウンタ162は、払出モータ51の払出動作量を計数することができる。
加算後賞球総数カウンタ163は、主基板11から受信した払出制御コマンドにより指定される賞球の個数が加算された後の賞球の総数を記憶するためのものである。賞球の個数を指定する払出制御コマンドを受信すると、この加算後賞球総数カウンタ163の値には、受信後直ちに払出制御コマンドにより指定される賞球の個数が加算される。そして、加算後賞球総数カウンタ163の値は、払出カウントスイッチ72が払出装置50から払い出された賞球を検出する毎に、1ずつ減算されて行く。このようにして、加算後賞球総数カウンタ163は、払出装置50から実際に払い出された賞球の個数をカウントして行くことができる。
加算前賞球総数カウンタ164は、主基板11から受信した払出制御コマンドにより指定される賞球の個数が加算される前の賞球の総数を記憶するためのものである。加算後賞球総数カウンタ163とは異なり、賞球の個数を指定する払出制御コマンドを受信しても、加算前賞球総数カウンタ164の値は、受信後直ちには更新されず、後述する賞球制御処理(図35のステップS68)において払出動作量カウンタ162の値が更新された後でないと更新されない。
具体的には、賞球制御処理(図35のステップS68)において、加算前賞球総数カウンタ164の値と加算後賞球総数カウンタ163の値とが比較されることで、より詳細には加算後賞球総数カウンタ163の値から加算前賞球総数カウンタ164の値が減算されることで、主基板11から受信した払出制御コマンドにより指定された賞球の個数が特定され、この特定された賞球の個数が払出動作量カウンタ162の値に加算され更新された後に、加算前賞球総数カウンタ164に加算後賞球総数カウンタ163の値が上書される。
そして、加算前賞球総数カウンタ164の値も、加算後賞球総数カウンタ163と同様に、払出カウントスイッチ72が払出装置50から払い出された賞球を検出する毎に、1ずつ減算されて行く。
貸球総数カウンタ165は、払出装置50から払い出される貸球の総数を記憶するためのものである。カードユニット70から球貸要求の信号を受信する毎に、この貸球総数カウンタ165の値には、1単位の貸球の個数が加算される。そして、貸球総数カウンタ165の値は、払出カウントスイッチ72が払出装置50から払い出された貸球を検出する毎に、1ずつ減算されて行く。このようにして、貸球総数カウンタ165は、払出装置50から実際に払い出された貸球の個数をカウントして行くことができる。
フラグメモリ166は、払出装置50の払出動作を制御するために用いられる複数種類のフラグを設定するためのものである。例えば、フラグメモリ166には、満タンフラグ、球切れフラグ、払出停止中フラグ、賞球払出中フラグ、球貸中フラグ、エラーフラグ及びタイマ割込フラグ等が設けられている。
満タンフラグは、満タンスイッチ73がオンとなったときにオン状態にセットされ、満タンスイッチ73がオフとなったときにクリアされオフされるフラグである。球切れフラグは、球切れスイッチ74がオンとなったときにオン状態にセットされ、球切れスイッチ74がオフとなったときにクリアされオフされるフラグである。
払出停止中フラグは、払出停止状態にあるときにオン状態にセットされ、払出可能状態になるとオフされるフラグである。賞球払出中フラグは、払出装置50による賞球の払出動作が実行されているときにオン状態にセットされ、賞球の払出動作を終了するとオフされるフラグである。貸球払出中フラグは、払出装置50による貸球の払出動作が実行されているときにオン状態にセットされ、貸球の払出動作を終了するとオフされるフラグである。
エラーフラグは、払出停止中フラグがオンとなったときにオン状態にセットされ、払出停止中フラグがオフとなったときにクリアされオフされるフラグである。タイマ割込フラグは、所定時間が経過してタイマ割込みが発生するごとにオン状態にセットされる。
コマンド送信テーブルメモリ167は、図10に示すコマンド送信テーブルメモリ124と同一の構成を有している。具体的には、コマンド送信テーブルメモリ167には、払出制御基板15から主基板11に出力する払出情報コマンドについてのコマンド送信テーブルが設けられている。このコマンド送信テーブルは図10に示すコマンド送信テーブルメモリ124と同様に3バイトで構成されており、1バイト目には、INTデータが、2バイト目のコマンドデータ1、MODEデータが、3バイト目のコマンドデータ2には、EXTデータが、それぞれ設定されている。
図16及び図17は、I/Oポート154のビット割当を示す説明図である。図16に示すように、入力ポート0のビット0〜3には、それぞれ払出モータ位置センサ71、払出カウントスイッチ72、満タンスイッチ73、及び球切れスイッチ74からの検出信号が入力される。また、入力ポート0のビット4には、主基板11から送出される払出制御コマンドのINT信号が入力され、入力ポート2には、払出制御コマンドの8ビットデータが入力される。
図17に示すように、出力ポート0のビット0からは、発射装置60を駆動するための発射制御信号が発射モータ61に対して出力され、出力ポート0のビット1からは、払出情報コマンドのINT信号が主基板11に対して出力される。また、出力ポート1からは、払出情報コマンドの8ビットデータが主基板11に対して出力される。
図5に示すスイッチ回路155は、払出モータ位置センサ71、払出カウントスイッチ72、満タンスイッチ73、及び球切れスイッチ74からの検出信号を取り込んで、払出制御用マイクロコンピュータ150に伝達するものである。
情報端子基板16は、各種遊技関連情報を外部に出力するためのものである。例えば、情報端子基板16には、少なくとも、貯留タンク41に設けられた球切検出スイッチの出力を導入して外部出力するための球切用端子、賞球情報(賞球個数信号)を外部出力するための賞球用端子及び球貸情報(球貸個数信号)を外部出力するための球貸用端子が設けられている。
発射制御基板17は、操作ノブ30の操作量に応じて、発射装置60による発射動作を制御するためのものである。発射制御基板17には、操作ノブ30からの配線が接続されると共に発射モータ61への配線が接続されている。発射制御基板17は、操作ノブ30の操作量に従って発射モータ61の駆動力を調整することにより、この操作量に応じた速度で打球を発射する。
中継基板18は、主基板11から演出制御基板12に対して出力される演出制御信号を中継するためのものである。図18(A)は、中継基板18の構成例を、主基板11及び演出制御基板12とともに示すブロック図である。主基板11には、中継基板18対応のコネクタ91Aが設けられ、コネクタ91Aと遊技制御用マイクロコンピュータ100との間には、出力バッファ回路92が接続されている。出力バッファ回路92は、主基板11から中継基板18を介して演出制御基板12へ向かう方向にのみ信号を通過させることができ、中継基板18から主基板11への信号の入力を阻止する。従って、演出制御基板12や中継基板18の側から主基板11側に信号が伝わる余地はない。
中継基板18には、主基板11から演出制御基板12に出力される制御信号を伝送するための配線毎に、図18(B)に示すような回路構成を有する伝送方向規制回路18−1〜18−nが設けられている。各伝送方向規制回路18−1〜18−nは、主基板11対応のコネクタ91Bにアノードが接続されるとともに演出制御基板12対応のコネクタ93Aにカソードが接続されたダイオードD1と、一端がダイオードD1のカソードに接続されるとともに他端がグランド(GND)接続された抵抗R1とから構成されている。この構成により、各伝送方向規制回路18−1〜18−nは、演出制御基板12から中継基板18への信号の入力を阻止して、主基板11から演出制御基板12へ向かう方向にのみ信号を通過させることができる。従って、演出制御基板12の側から主基板11側に信号が伝わる余地はない。
なお、主基板への不正な信号の入力を防ぐために、主基板とサブ基板との間に主基板からサブ基板への信号の出力のみを規制する一方向データ転送手段を設けたものは既に提案されている(例えば、特開平8−224339号公報などを参照)。しかしながら、主基板と一方向データ転送手段との間には主基板への信号入力を規制するものがないため、一方向データ転送手段に改変を加えることで主基板に不正な信号を入力させることが可能であった。この実施の形態では、中継基板18において制御信号を伝送するための配線毎に伝送方向規制回路18−1〜18−nを設けるとともに、主基板11にて遊技制御用マイクロコンピュータ100とコネクタ91Aの間に出力バッファ回路92を設けることで、外部から主基板11への不正な信号の入力を、より確実に防止することができる。
具体的には、可動部材位置センサ26や、演出スイッチ27からスイッチ回路208を介して演出制御基板12へ入力される検出信号が、ノイズ信号として主基板11に伝送されるのを確実に防止することができる。また、演出制御基板12と、音声制御基板13や、ランプ制御基板14との間で行われる双方向通信によって発生するノイズ信号が主基板11に伝送されるのも防止することができる。さらには、悪質な遊技者が可動部材位置センサ26や、演出スイッチ27、音声制御基板13、ランプ制御基板14などを改変するなどして、演出制御基板12を介して主基板11に不正な信号を入力されるといった、不正行為を確実に防止することができる。
次に、本実施例におけるパチンコ遊技機1の動作(作用)を説明する。図19は、主基板11に搭載された遊技制御用マイクロコンピュータ110が実行する遊技制御メイン処理を示すフローチャートである。主基板11では、電源基板10からの電源電圧が供給されると、遊技制御用マイクロコンピュータ110が起動し、CPU113は、まず、図19のフローチャートに示す遊技制御メイン処理を実行する。遊技制御メイン処理を開始すると、CPU113は、割込禁止に設定した後(ステップS1)、必要な初期設定を行う(ステップS2)。この初期設定では、例えば、RAM112がクリアされる。また、遊技制御用マイクロコンピュータ110に内蔵されたCTC(カウンタ/タイマ回路)のレジスタ設定を行うことにより、定期的(例えば、2ミリ秒ごと)にタイマ割込を発生させる。初期設定が終了すると、割込を許可した後(ステップS3)、ループ処理に入る。
こうした遊技制御メイン処理の実行により、2ミリ秒ごとに繰り返しタイマ割込が発生するように設定され、タイマ割込が発生すると、CPU113は、図20のフローチャートに示す遊技制御割込処理を実行する。
遊技制御割込処理において、CPU113は、図20に示すように、まず、スイッチ回路115を介して、ゲートスイッチ21,始動口スイッチ22,V入賞スイッチ23,カウントスイッチ24,入賞口スイッチ25a〜25dの検出信号を入力し、それらの状態を判定するスイッチ処理を行う(ステップS11)。
続いて、CPU113は、所定のエラー処理を実行することにより、パチンコ遊技機1の異常診断を行い、その診断結果に応じて必要ならば警告を発生可能とする(ステップS12)。この後、CPU113は、遊技制御に用いられる大当り判定用の乱数等の各判定用乱数を更新する判定用乱数更新処理(ステップS13)と、表示用乱数を更新する表示用乱数更新処理(ステップS14)と、を順次実行する。
次に、CPU113は、特別図柄プロセス処理を実行する(ステップS15)。特別図柄プロセス処理では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するために、特別図柄プロセスフラグに従って該当する処理が選択されて実行される。特別図柄プロセス処理に続いて、CPU113は、普通図柄プロセス処理を実行する(ステップS16)。普通図柄プロセス処理では、普通図柄表示器40を所定の順序で制御するために、普通図柄プロセスフラグに従って該当する処理が選択されて実行される。
さらに、CPU113は、所定のコマンド制御処理を実行することにより、主基板11から演出制御基板12等のサブ側の制御基板に対して制御コマンドを送出し、遊技状態に合わせた演出動作等の動作制御を指示する(ステップS17)。また、CPU113は、例えばホール管理用コンピュータに供給される大当り情報、始動情報及び確率変動情報などのデータを出力する情報出力処理を行う(ステップS18)。続いて、CPU113は、所定のソレノイド出力処理を実行することにより、所定の条件が成立したときに普通可変入賞球装置6における可動翼片の可動制御や特別可変入賞球装置7における開閉板の開閉駆動を行う(ステップS19)。
この後、CPU113は、所定の賞球処理を実行することにより、入賞口スイッチ25a〜25d,カウントスイッチ24及び始動口スイッチ22から入力された検出信号に基づく賞球数の設定などを行い、払出制御基板15に対して払出制御コマンドを出力可能とする(ステップS20)。具体的には、入賞口スイッチ25a〜25d,カウントスイッチ24及び始動口スイッチ22がオンしたことにもとづく入賞検出に応じて、払出制御基板15に賞球の個数を示す払出制御コマンド(賞球個数指定コマンド)を出力する。払出制御基板15のCPU153は、賞球個数指定コマンドに応じて払出装置50を駆動する。さらに、CPU113は、コマンド解析処理を実行して、解析結果に応じた処理を実行する(ステップS21)。
図21は、図20のステップS11にて実行されるスイッチ処理の詳細を示すフローチャートである。スイッチ処理において、CPU113は、図21に示すように、まず、入力ポート0に入力されているデータを受信する(ステップS101)。次に、CPU113は、処理数として「8」を設定し(ステップS102)、入賞口スイッチ25aのスイッチタイマのアドレス「0」をポインタにセットする(ステップS103)。この後、CPU113は、スイッチチェック処理サブルーチンをコールしてスイッチチェック処理を実行する(ステップS104)。
図22は、図21のステップS104のスイッチチェック処理の詳細を示すフローチャートである。このスイッチチェック処理において、CPU113は、図22に示すように、まず、入力ポート0から入力されているデータを比較値として設定する(ステップS201)。また、クリアデータ(00)をセットする(ステップS202)。そして、CPU113は、スイッチタイマメモリ121からポインタが示すスイッチタイマの値をロードすると共に(ステップS203)、比較値を右(上位ビットから下位ビットへの方向)へシフトする(ステップS204)。これにより、入力データは、キャリーフラグによって押し出される。
そして、CPU113は、キャリーフラグをチェックして、その値が「0」であるか「1」であるかを判別する(ステップS205)。キャリーフラグの値が「0」の場合(ステップS205;Yes)、CPU113は、検出信号がオフ状態であると判別し、スイッチタイマにクリアデータをセットしてその値を0に戻す(ステップS206)。
一方、キャリーフラグの値が「1」の場合(ステップS205;No)、CPU113は、検出信号がオン状態であると判別し、スイッチタイマの値を1加算する(ステップS207)。CPU113は、加算後の値が「0」であるか否かを判別し(ステップS208)、加算後の値が「0」でないと判別した場合には(ステップS208;No)、加算値をスイッチタイマに戻す(ステップS209)。
一方、加算後の値が0であると判別した場合には(ステップS208;Yes)、加算値をスイッチタイマに戻さない。即ち、スイッチタイマの値が最大値(255)に達している場合には、これ以上値を加算しない。
その後、CPU113は、ポインタ(スイッチタイマのアドレス)を1加算するとともに(ステップS210)、処理数を1減算し(ステップS211)、処理数が「0」になったか否かを判別する(ステップS212)。処理数が「0」になっていないと判別した場合(ステップS212;No)、CPU113は、ステップS202の処理に戻り、再度ステップS202〜S212の処理を実行する。
一方、処理数が「0」になったと判別した場合(ステップS212;Yes)、CPU113は、このスイッチチェック処理を終了する。
図21のステップS104のスイッチチェック処理において、処理数が「0」になるまで、図22のステップS202〜S212の処理を繰り返し実行することにより、CPU113は、入賞口スイッチ25a〜25d,始動口スイッチ22,カウントスイッチ24,V入賞スイッチ23及びゲートスイッチ21について、その検出信号がオン状態にあるか否かにあるかを順次判別することができる。そして、検出信号がオン状態にあると判別されたスイッチでは、対応するスイッチタイマ値が1加算される。
なお、この実施の形態では、遊技制御割込処理が2ミリ秒毎に起動されるので、スイッチ処理も2ミリ秒に1回の割合で実行される。従って、スイッチタイマの値は、2ミリ秒毎に1ずつ加算されて行く。
図23、及び図24は、図20のステップS20にて実行される賞球処理の詳細を示すフローチャートである。この賞球処理において、CPU113は、図23に示すように、まず、スイッチオン判別値テーブルのオフセットとして「0」を設定する共に(ステップS111)、スイッチタイマのアドレスのオフセットとして「0」を設定する(ステップS112)。スイッチオン判別値テーブルのオフセット「0」は、スイッチオン判別値テーブルのデータ「2」を使用することを意味する。また、スイッチタイマのアドレスのオフセット「0」は入賞口スイッチ25aに対応したスイッチタイマが指定されることを意味する。また、繰返数として「4」をセットする(ステップS113)。
そして、CPU113は、スイッチチェックオン処理サブルーチンをコールしてスイッチオンチェック処理を実行する(ステップS114)。ステップS114のスイッチオンチェック処理においては、入賞口スイッチ25aに対応するスイッチタイマの値がスイッチオン判別値「2」に一致していれば、フラグメモリ123に設けられたスイッチオンフラグがオンにセットされる。
CPU113は、このスイッチオンフラグをチェックして、入賞口スイッチ25aがオンしているか否かを判別する(ステップS115)。入賞口スイッチ25aがオンしていると判別した場合(ステップS115;Yes)、CPU113は、払い出すべき賞球個数として「10」をリングバッファに設定する(ステップS116)。なお、CPU113は、リングバッファにデータを書き込む毎に、書込ポインタをインクリメントして行く。そして、リングバッファの最後の領域までデータを書き込んだ場合、CPU113は、書込ポインタをリングバッファの最初の領域を指すように更新する。
一方、入賞口スイッチ25aがオンしていないと判別した場合(ステップS115;No)、CPU113は、ステップS116の処理をスキップする。
続いて、CPU113は、繰返数を1減算し(ステップS117)、繰返数が「0」になったか否かを判別する(ステップS118)。繰返数が「0」になっていないと判別した場合(ステップS118;No)、CPU113は、スイッチタイマのアドレスのオフセットを1加算し(ステップS119)、ステップS114の処理に戻る。
一方、繰返数が「0」になったと判別した場合(ステップS118;Yes)、CPU113は、ステップS120の処理へと進む。
このように、CPU113は、処理数が「0」になるまで、ステップS114〜S119の処理を繰り返し実行することにより、入賞口スイッチ25a〜25dがオンしているか否かを順次判別することができる。そして、入賞口スイッチ25a〜25dがオンしていると判別される場合、リングバッファには、払い出すべき賞球個数として「10」が設定されて行く。
次に、CPU113は、スイッチオン判別値テーブルのオフセットとして「0」を設定し(ステップS120)、スイッチタイマのアドレスのオフセットとして「5」を設定する(ステップS121)。スイッチオン判別値テーブルのオフセット「0」は、スイッチオン判別値テーブルのデータ「2」を使用することを意味する。また、スイッチタイマのアドレスのオフセット「5」は、始動口スイッチ22に対応したスイッチタイマが指定されることを意味する。
そして、CPU113は、スイッチオンチェック処理サブルーチンをコールしてスイッチオンチェック処理を実行する(ステップS122)。ステップS122のスイッチオンチェック処理においては、始動口スイッチ22に対応するスイッチタイマの値がスイッチオン判別値「2」に一致していれば、フラグメモリ123に設けられたスイッチオンフラグがオンにセットされる。
CPU113は、このスイッチオンフラグをチェックして、始動口スイッチ22がオンしているか否かを判別する(ステップS123)。始動口スイッチ22がオンしていると判別した場合(ステップS123;Yes)、CPU113は、払い出すべき賞球個数として「6」をリングバッファに設定する(ステップS124)。
一方、始動口スイッチ22がオンしていないと判別した場合(ステップS123;No)、CPU113は、ステップS124の処理をスキップする。
続いて、CPU113は、スイッチオン判別値テーブルのオフセットとして「0」を設定し(ステップS125)、スイッチタイマのアドレスのオフセットとして「6」を設定する(ステップS126)。スイッチオン判別値テーブルのオフセット「0」は、スイッチオン判別値テーブルのデータ「2」を使用することを意味する。また、スイッチタイマのアドレスのオフセット「6」は、カウントスイッチ24に対応したスイッチタイマが指定されることを意味する。
そして、CPU113は、スイッチオンチェック処理サブルーチンをコールしてスイッチオンチェック処理を実行する(ステップS127)。ステップS127のスイッチオンチェック処理においては、カウントスイッチ24に対応するスイッチタイマの値がスイッチオン判別値「2」に一致していれば、フラグメモリ123に設けられたスイッチオンフラグがオンにセットされる。
CPU113は、このスイッチオンフラグをチェックして、カウントスイッチ24がオンしているか否かを判別する(ステップS128)。カウントスイッチ24がオンしていると判別した場合(ステップS128;Yes)、CPU113は、払い出すべき賞球個数として「15」をリングバッファに設定する(ステップS129)。
一方、カウントスイッチ24がオンしていないと判別した場合(ステップS128;No)、CPU113は、ステップS129の処理をスキップする。
そして、CPU113は、リングバッファにデータが存在するか否かを判別する(図24のステップS130)。リングバッファにデータが存在する場合には(ステップS130;Yes)、読出ポインタが指すリングバッファの内容を送信バッファにセットすると共に(ステップS131)、読出ポインタの値をリングバッファの次の領域を指すように更新し(ステップS132)、賞球個数に関するコマンド送信テーブルをセットする(ステップS133)。
そして、CPU113は、コマンドセット処理サブルーチンをコールしてコマンドセット処理を実行する(ステップS134)。ステップS134のコマンドセット処理においては、賞球個数に関する払出制御コマンドが格納されているコマンド送信テーブルの先頭アドレスがコマンド送信テーブルのアドレスとして設定される。これにより、主基板11からは、賞球個数に関する払出制御コマンドが払出制御基板15に対して送出される。
図25は、図23のステップS114,S122,及びS127にて実行されるスイッチオンチェック処理の詳細を示すフローチャートである。スイッチオンチェック処理において、CPU113は、図25に示すように、まず、スイッチオン判定値テーブルの先頭アドレスをセットする(ステップS221)。そして、CPU113は、このアドレスにオフセットを加算し(ステップS222)、加算後のアドレスからスイッチオン判定値をロードする(ステップS223)。
続いて、CPU113は、スイッチタイマの先頭アドレスを設定し(ステップS224)、そのアドレスにオフセットを加算し(ステップS225)、加算後のアドレスからスイッチタイマの値をロードする(ステップS226)。スイッチタイマメモリ121には、各スイッチタイマが後述する入力ポートの各ビットと同順に並んで記憶されているので、ステップS226の処理において、CPU113は、各スイッチに対応したスイッチタイマの値をロードすることができる。
そして、CPU113は、ロードしたスイッチタイマの値とスイッチオン判定値とを比較し(ステップS227)、スイッチタイマの値がスイッチオン判定値と一致した場合には(ステップS227;Yes)、フラグメモリ123に設けられたスイッチオンフラグをオンにセットする(ステップS228)。一方、スイッチタイマの値がスイッチオン判定値と一致していない場合には(ステップS227;No)、ステップS228の処理をスキップして、そのままスイッチオンチェック処理を終了する。
図26は、図23のステップS134にて実行されるコマンドセット処理の詳細を示すフローチャートである。コマンドセット処理において、CPU113は、図26に示すように、まず、コマンド送信テーブルのアドレスをスタック等に退避した後、ポインタが指すコマンド送信テーブルのINTデータを引数1にロードする(ステップS231)。この引数1は、後述するコマンド送信処理に対する入力情報となるものである。
次に、CPU113は、コマンド送信テーブルを指すアドレスを1加算する(ステップS232)。これにより、コマンド送信テーブルが指すアドレスは、コマンドデータ1(MODEデータ)のアドレスと一致する。続いて、CPU113は、コマンドデータ1(MODEデータ)を読み出して引数2に設定する(ステップS233)。この引数2も、後述するコマンド送信処理に対する入力情報となるものである。
そして、CPU113は、コマンド送信処理サブルーチンをコールしてコマンド送信処理を実行する(ステップS234)。
図27は、図26のステップS234,及びS239のコマンド送信処理の詳細を示すフローチャートである。コマンド送信処理において、CPU113は、図27に示すように、まず、引数1に設定されているINTデータを比較値として決められているワークエリアに設定すると共に(ステップS301)、送信回数「2」を処理数として決められているワークエリアに設定する(ステップS302)。次に、CPU113は、出力ポート1のアドレスをI/Oアドレスにセットする(ステップS303)。
続いて、CPU113は、比較値を1ビット右にシフトするシフト処理を実行する(ステップS304)。そして、CPU113は、キャリーフラグをチェックして、その値が「0」であるか「1」であるかを判別する(ステップS305)。この場合にキャリーフラグの値が「1」であるということは、INTデータにおける最も右側のビットが「1」であることを意味する。この実施の形態において、払出制御コマンドの送出が指示されている場合には、1回目のシフト処理にてキャリーフラグの値が「1」になる。
キャリーフラグの値が「1」であると判別された場合には(ステップS305;No)、引数2に設定されているデータをI/Oアドレスとして設定されているアドレスに出力する(ステップS306)。
なお、1回目のシフト処理では、出力ポート1のアドレスがI/Oアドレスに設定されるため、出力ポート1には、払出制御コマンドのMODEデータが出力される。
一方、キャリーフラグの値が「0」であると判別された場合には(ステップS305;Yes)、ステップS306の処理をスキップする。
続いて、CPU113は、I/Oアドレスを1加算すると共に(ステップS307)、処理数を1減算する(ステップS308)。これにより、I/Oアドレスには、出力ポート2のアドレスが設定される。そして、CPU113は、処理数が「0」であるか否かを判別し(ステップS309)、処理数が「0」でないと判別した場合には(ステップS309;No)、ステップS304の処理に戻り、再度シフト処理を実行する。
CPU113は、2回目のシフト処理にてINTデータにおけるビット1の値を押し出し、さらに、ステップS305の処理にてキャリーフラグの値が「0」であるか「1」であるかを判別することにより、演出制御コマンドの送出が指示されているか否かを判別する。
その後、ステップS309の処理にて処理数が「0」であると判別した場合には(ステップS309;Yes)、シフト処理開始前のINTデータが格納されている引数1の内容を読み出し(ステップS310)、読み出したデータを出力ポート0に出力する(ステップS311)。これにより、出力ポート0に出力されるINT信号は、ハイレベルになる。
続いて、CPU113は、ウェイトカウンタに所定値を設定し(ステップS312)、ウェイトカウンタの値が0になるまで、その値を1ずつ減算して行く(ステップS313)。そして、ウェイトカウンタの値が0になると(ステップS314;Yes)、クリアデータ(00)を設定し(ステップS315)、設定したクリアデータを出力ポート0に出力する(ステップS316)。これにより、出力ポート0に出力されるINT信号は、ローレベルになる。
その後、CPU113は、ウェイトカウンタに所定値を再度設定し(ステップS317)、ウェイトカウンタの値が0になるまで、その値を1ずつ減算して行く(ステップS318)。そして、ウェイトカウンタの値が0になると(ステップS319;Yes)、CPU113は、コマンド送信処理を終了する。
ステップS234のコマンド送信処理により、出力ポート0からは、払出制御コマンドのMODEデータが払出制御基板15に対して送出される。
その後、CPU113は、コマンド送信テーブルが指すアドレスを1加算する(図26のステップS235)。これにより、コマンド送信テーブルが指すアドレスは、コマンドデータ2(EXTデータ)のアドレスと一致する。続いて、CPU113は、コマンドデータ2(EXTデータ)を読み出して引数1に設定する(ステップS236)。
そして、CPU113は、コマンドデータ2のビット7(ワークエリア参照ビット)の値が「0」であるか「1」であるかを判別する(ステップS237)。ビット7の値が「1」であると判別した場合には(ステップS237;No)、送信バッファの内容を引数2にロードする(ステップS238)。
一方、ビット7の値が「0」であると判別した場合には(ステップS237;Yes)、ステップS238の処理をスキップする。これにより、引数2には、EXTデータが設定される。
そして、CPU113は、コマンド送信処理サブルーチンをコールしてコマンド送信処理を実行する(ステップS239)。ステップS239のコマンド送信処理により、出力ポート0からは、払出制御コマンドのEXTデータが払出制御基板15に対して送出される。
CPU113では、2ミリ秒ごとに発生するタイマ割込みとは別に払出制御基板15からの払出情報コマンドを受信するための割込みが発生する。この割込みは、払出制御基板15からの払出情報INT信号がオン状態となることにより発生する割込みである。払出情報INT信号がオン状態となることによる割込みが発生すると、CPU113は、図28に示すコマンド受信割込処理を実行する。
このコマンド受信割込処理において、CPU113は、図28に示すように、まず、各レジスタの値をスタックに退避した後(ステップS31)、I/Oポート114のうちで払出情報コマンドデータ0〜7の入力に割り当てられている入力ポート2から、払出情報コマンドに対応するデータを読み込む(ステップS32)。そして、2バイト構成の払出情報コマンドのうちの1バイト目であるか否かを判別する(ステップS33)。ここで、払出情報コマンドの1バイト目(MODE)と2バイト目(EXT)とは、受信側で直ちに区別可能に構成されている。すなわち、先頭ビットによって、MODEとしてのデータを受信したのかEXTとしてのデータを受信したのかを、受信側において直ちに検出できる。受信したコマンドの先頭ビットが「1」である場合には、2バイト構成である払出情報コマンドのうちの有効な1バイト目(MODEデータ)を受信したと判別される。
ステップS33の処理にて1バイト目のMODEデータであると判別したときには(ステップS33;Yes)、受信コマンドバッファメモリ120にて、コマンド受信個数カウンタにより指定される受信コマンドバッファに、受信したコマンドを格納し(ステップS34)、その後、ステップS41の処理へと進む。一方、払出制御コマンドの1バイト目でなければ(ステップS33;No)、1バイト目のMODEデータを既に受信したか否かを判別する(ステップS35)。1バイト目のMODEデータを既に受信したか否かは、受信コマンドバッファに格納されているコマンドデータを確認することにより、判別することができる。
1バイト目を既に受信している場合には(ステップS35;Yes)、今回受信した1バイトのうちの先頭ビットが「0」であるか否かを判別し、先頭ビットが「0」であれば、有効な2バイト目を受信したとして、コマンド受信個数カウンタにより指定される次の受信コマンドバッファに、受信したコマンドを格納する(ステップS36)。なお、ステップS35の処理にて払出情報コマンドの1バイト目を受信していないと判別した場合や(ステップS35;No)、2バイト目として受信したデータのうちの先頭ビットが「0」でない場合には、ステップS41の処理へと進む。
ステップS36の処理にて2バイト目のコマンドデータを格納すると、コマンド受信個数カウンタの値を2加算し(ステップS37)、その値が12以上であるか否かを判別する(ステップS38)。12以上であれば(ステップS38;Yes)、コマンド受信個数カウンタをクリアして、その値を0に戻す(ステップS39)。一方、12未満のときには(ステップS38;No)、ステップS39の処理をスキップする。そして、CPU113は、退避したレジスタを復帰した後(ステップS40)、割込許可に設定する(ステップS41)。
このコマンド受信割込処理により、払出制御基板15から送られた払出情報コマンドが受信コマンドバッファメモリ120に設けられた受信コマンドバッファに格納される。
こうして受信コマンドバッファに格納された払出情報コマンドは、その後タイマ割込みが発生したときに、図20のステップS21のコマンド解析処理において、解析される。
図29は、図20のステップS21のコマンド解析処理の詳細を示すフローチャートである。このコマンド解析処理において、CPU113は、図29に示すように、まず、受信コマンドバッファメモリ120に設けられたコマンド受信テーブルに、払出制御基板15から受信した払出情報コマンドが格納されているか否かを確認する(ステップS141)。
コマンド受信テーブルに受信コマンドが格納されている場合(ステップS141;Yes)、CPU113は、コマンド受信テーブルから受信コマンドを読み出し(ステップS142)、この読み出した受信コマンドがエラー状態になったことを主基板11に通知する払出情報コマンド(エラー指定コマンド)であるか否かを判別する(ステップS143)。なお、読み出したら読出ポインタの値を1加算しておく。
ステップS142の処理にて読み出した受信コマンドがエラー指定コマンドであると判別した場合(ステップS143;Yes)、CPU113は、フラグメモリ123に設けられたエラーフラグをオン状態にセットし(ステップS144)、ステップS141の処理へとリターンする。
一方、ステップS142の処理にて読み出した受信コマンドがエラー指定コマンドでないと判別した場合(ステップS143;No)、続いて、この読み出した受信コマンドがエラー状態が解除されたことを主基板11に通知する払出情報コマンド(エラー解除指定コマンド)であるか否かを判別する(ステップS145)。なお、読み出したら読出ポインタの値を1加算しておく。
ステップS142の処理にて読み出した受信コマンドがエラー解除指定コマンドであると判別した場合(ステップS145;Yes)、CPU113は、フラグメモリ123に設けられたエラー解除フラグをオン状態にセットし(ステップS146)、ステップS141の処理へとリターンする。
また、ステップS142の処理にて読み出した受信コマンドがその他の払出情報コマンドである場合には(ステップS145;No)、受信コマンドに対応するコマンド受信フラグをセットし(ステップS147)、ステップS141の処理へとリターンする。
一方、ステップS141の処理にてコマンド受信テーブルに受信コマンドが格納されていないと判別した場合には(ステップS141;No)、そのままコマンド解析処理を終了する。
図30は、図20のステップS12にて実行されるエラー処理の詳細を示すフローチャートである。このエラー処理において、CPU113は、図30に示すように、まず、フラグメモリ123に設けられたエラーフラグをオンになっているか否かを判別する(ステップS151)。エラーフラグがオンになっていると判別された場合には(ステップS151;Yes)、エラーフラグをクリアした後(ステップS152)、演出制御コマンド用のコマンド送信バッファにエラー演出の実行を指令する演出制御コマンド(エラー演出指定コマンド)をセットする(ステップS153)。
そして、CPU113は、コマンド送信処理サブルーチンをコールしてコマンドセット処理を実行する(ステップS154)。ステップS154のコマンドセット処理においては、エラー演出指定コマンドが演出制御基板12に対して送出される。
一方、ステップS151の処理にてエラーフラグがオフになっていると判別された場合には(ステップS151;No)、続いてフラグメモリ123に設けられたエラー解除フラグをオンになっているか否かを判別する(ステップS155)。エラー解除フラグがオンになっていると判別された場合には(ステップS155;Yes)、エラー解除フラグをクリアした後(ステップS156)、演出制御コマンド用のコマンド送信バッファにエラー演出の消去を指令する演出制御コマンド(エラー演出消去指定コマンド)をセットする(ステップS157)。
そして、CPU113は、コマンド送信処理サブルーチンをコールしてコマンドセット処理を実行する(ステップS158)。ステップS158のコマンドセット処理においては、エラー演出消去指定コマンドが演出制御基板12に対して送出される。
一方、ステップS155の処理にてエラー解除フラグがオフになっていると判別された場合には(ステップS155;No)、そのままエラー処理を終了する。
次に、演出制御基板12における動作を説明する。図31は、演出制御基板12に搭載された演出制御用のCPU200が実行する演出制御メイン処理を示すフローチャートである。演出制御メイン処理を開始すると、まず、所定の初期化処理を実行することにより、RAM202のクリアや各種初期値の設定、また演出制御の起動間隔を決めるための33ミリ秒タイマの初期設定等を行う(ステップS51)。
その後、CPU200は、所定のタイマ割込フラグを監視し、タイマ割込フラグがセットされるまでループ処理を実行する(ステップS52;No)。この実施の形態では、CPU200にて33ミリ秒ごとにタイマ割込みが発生し、このタイマ割込みが発生すると、所定のタイマ割込処理を実行することにより、タイマ割込フラグがセットされる。
CPU200では、33ミリ秒ごとに発生するタイマ割込みとは別に、主基板11からの演出制御コマンドを受信するための割込みが発生する。この割込みは、主基板11からの演出制御INT信号がオン状態となることにより発生する割込みである。演出制御INT信号がオン状態となることによる割込みが発生すると、CPU200は、図28に示すコマンド受信割込処理と同様のコマンド受信割込処理を実行する。
このコマンド受信割込処理において、CPU200は、演出制御コマンドデータの入力に割り当てられている入力ポートから、データを読み込む。そして、2バイト構成である演出制御コマンドのMODEデータ、EXTデータを順次に受信し、受信したコマンドを、受信コマンドバッファメモリ210にて所定のコマンド受信個数カウンタにより指定される受信コマンドバッファに格納する。
こうして受信コマンドバッファに主基板11から送信された演出制御コマンドが格納される一方で、図31に示すステップS52の処理にてタイマ割込みの発生が確認されると(ステップS52;Yes)、CPU200は、フラグメモリ211に設けられたタイマ割込フラグをクリアしてオフ状態とした後に、コマンド解析処理を実行することにより、受信した演出制御コマンドを解析する(ステップS53)。
コマンド解析処理が終了すると、CPU200は、所定のエラー演出処理を実行することにより、必要に応じて、可変表示装置4や、スピーカ8L,8R、遊技効果ランプ9などによりエラーが発生した旨が遊技者に対して報知される(ステップS54)。続いて、CPU200は、所定のランダムカウンタがカウントするランダムの値を更新するためのカウンタ更新処理を実行した後(ステップS55)、演出制御プロセス処理を実行する(ステップS56)。
この演出制御プロセス処理では、演出状態に応じて可変表示装置4における表示動作や、スピーカ8L,8Rによる音声出力動作、遊技効果ランプ9の点灯/消灯動作、さらには可動部材90の可動動作などを所定の順序で制御するために、フラグメモリ211に設けられた演出制御プロセスフラグの値に従って該当する処理が選択されて実行される。この後、CPU200は、ステップS52の処理へとリターンする。
図32は、図31のステップS53のコマンド解析処理を示すフローチャートである。このコマンド解析処理において、CPU200は、図32に示すように、まず、受信コマンドバッファメモリ210に設けられたコマンド受信テーブルに、主基板11から受信した演出制御コマンドが格納されているか否かを確認する(ステップS401)。
コマンド受信テーブルに受信コマンドが格納されている場合(ステップS401;Yes)、CPU200は、コマンド受信テーブルから受信コマンドを読み出し(ステップS402)、この読み出した受信コマンドがエラー演出の実行を指令する演出制御コマンド(エラー演出指定コマンド)であるか否かを判別する(ステップS403)。なお、読み出したら読出ポインタの値を1加算しておく。
ステップS402の処理にて読み出した受信コマンドがエラー演出指定コマンドであると判別した場合(ステップS403;Yes)、CPU200は、フラグメモリ211に設けられたエラー演出開始フラグをオン状態にセットし(ステップS404)、ステップS401の処理へとリターンする。
一方、ステップS402の処理にて読み出した受信コマンドがエラー演出指定コマンドでないと判別した場合(ステップS403;No)、続いて、この読み出した受信コマンドがエラー演出の消去を指令する演出制御コマンド(エラー演出消去指定コマンド)であるか否かを判別する(ステップS405)。なお、読み出したら読出ポインタの値を1加算しておく。
ステップS402の処理にて読み出した受信コマンドがエラー演出消去指定コマンドであると判別した場合(ステップS405;Yes)、CPU200は、フラグメモリ211に設けられたエラー演出終了フラグをオン状態にセットし(ステップS406)、ステップS401の処理へとリターンする。
また、ステップS402の処理にて読み出した受信コマンドがその他の演出制御コマンドである場合には(ステップS405;No)、受信コマンドに対応するコマンド受信フラグをセットし(ステップS407)、ステップS401の処理へとリターンする。
一方、ステップS401の処理にてコマンド受信テーブルに受信コマンドが格納されていないと判別した場合には(ステップS401;No)、そのままコマンド解析処理を終了する。
図33は、図31のステップS54にて実行されるエラー演出処理の詳細を示すフローチャートである。このエラー演出処理において、CPU200は、図33に示すように、まず、フラグメモリ210に設けられたエラー演出開始フラグをオンになっているか否かを判別する(ステップS411)。
ステップS411の処理にてエラー演出開始フラグがオンになっていると判別された場合には(ステップS411;Yes)、エラー演出開始フラグをクリアした後(ステップS412)、CGROM204から、払出装置50の動作に関連して発生したエラー(払出エラー)を報知するための文字列からなる画像データを読み出し、この読み出した画像データに従った描画命令をGCL205に対して送出するなどして、可変表示装置4にて、図34に示すような払出エラーが発生した旨を報知する演出表示を開始するための設定を行う(ステップS413)。
なお、払出エラーの発生を報知する際、可変表示装置4による表示動作のみならず、所定のエラーランプを点灯させたり、スピーカ8L、8Rから警告音を発生させたりするといった動作を加えてもよく、また、エラーランプの点灯や、警告音の発生のみによって、払出エラーが発生した旨を報知する態様であってもかまわない。
一方、ステップS411の処理にてエラー演出開始フラグがオフになっていると判別された場合には(ステップS411;No)、続いてフラグメモリ210に設けられたエラー演出終了フラグをオンになっているか否かを判別する(ステップS414)。エラー演出終了フラグがオンになっていると判別された場合には(ステップS414;Yes)、エラー演出終了フラグをクリアした後(ステップS415)、可変表示装置4にて実行されている払出エラーの発生を報知する演出表示を終了するための設定を行う(ステップS416)。これにより、図34に示す払出エラーが発生した旨の報知する演出表示が、可変表示装置4上から消去される。
一方、ステップS414の処理にてエラー演出終了フラグがオフになっていると判別された場合には(ステップS414;No)、そのままエラー演出処理を終了する。
次に、払出制御基板15における動作を説明する。図35は、払出制御基板15に搭載された払出制御用のCPU153が実行する払出制御メイン処理を示すフローチャートである。払出制御メイン処理を開始すると、CPU153は、まず、図35に示すように、所定の初期化処理を実行することにより、RAM152のクリアや各種初期値の設定、また払出制御の起動間隔を決めるための2ミリ秒タイマの初期設定等を行う(ステップS61)。
その後、CPU153は、フラグメモリ166に設けられたタイマ割込フラグを監視し、タイマ割込フラグがセットされるまでループ処理を実行する(ステップS62;No)。この実施の形態では、CPU153にて2ミリ秒ごとにタイマ割込みが発生し、このタイマ割込みが発生すると、所定のタイマ割込処理を実行することにより、フラグメモリ166に設けられたタイマ割込フラグがセットされる。
CPU153では、2ミリ秒ごとに発生するタイマ割込みとは別に主基板11からの払出制御コマンドを受信するための割込みが発生する。この割込みは、主基板11からの払出制御INT信号がオン状態となることにより発生する割込みである。払出制御INT信号がオン状態となることによる割込みが発生すると、CPU153は、図28に示すコマンド受信割込処理と同様のコマンド受信割込処理を実行する。
このコマンド受信割込処理において、CPU153は、払出制御コマンドデータの入力に割り当てられている入力ポート1から、データを読み込む。そして、2バイト構成である払出制御コマンドのMODEデータ、EXTデータを順次に受信し、受信したコマンドを、受信コマンドバッファメモリ160にて所定のコマンド受信個数カウンタにより指定される受信コマンドバッファに格納する。
こうして受信コマンドバッファに主基板11から送信された払出制御コマンドが格納される一方で、図35のステップS62の処理にてタイマ割込みの発生が確認されると(ステップS62;Yes)、CPU153は、フラグメモリ166に設けられたタイマ割込フラグをクリアしてオフ状態とした後に、払出制御割込処理を開始する。この払出制御割込処理において、CPU153は、まず、所定のスイッチ処理を実行することにより、払出制御基板15に入力される各種スイッチ(払出モータ位置センサ71,及び払出カウントスイッチ72等)からの検出信号を取り込み、取り込んだ検出信号の状態を判別する(ステップS63)。
次に、CPU153は、所定の払出停止状態設定処理を実行することにより、主基板11から払出停止指示コマンドを受信したときに払出装置50を払出停止状態とし、払出開始指示コマンドを受信したときに払出停止状態を解除するための設定を行う(ステップS64)。さらに、CPU153は、コマンド解析処理を実行して、解析結果に応じた処理を実行する(ステップS65)。また、所定のプリペイドカードユニット制御処理を実行する(ステップS66)。
この後、CPU153は、球貸要求に応じて貸球を払い出す球貸制御処理を行う(ステップS67)。さらに、賞球総数カウンタに格納された個数の賞球を払い出す賞球制御処理を実行する(ステップS68)。そして、払出装置50の払出モータ51に対して駆動信号を出力し、払出モータ51を回転させる払出モータ制御処理を実行する(ステップS69)。
続いて、CPU153は、所定のエラー処理を実行することにより、遊技球の払い出しに関する異常診断を行い、その診断結果に応じて必要ならば所定のエラー表示用LED等により警告を発生可能とする(ステップS70)。そして、所定の出力処理を実行することにより、遊技機外部に球貸個数信号を出力する(ステップS71)。
図36は、図35のステップS63にて実行されるスイッチ処理の詳細を示すフローチャートである。このスイッチ処理において、CPU153は、図36に示すように、まず、払出モータ位置センサ71からの検出信号がオン状態にあるか否かを判別する(ステップS501)。オン状態にあると判別した場合には(ステップS501;Yes)、スイッチオンカウンタメモリ161に設けられている払出モータ位置センサオンカウンタの値を1加算する(ステップS502)。
続いて、CPU153は、払出モータ位置センサオンカウンタの値をチェックし、その値が「2」であるか否かを判別する(ステップS503)。払出モータ位置センサカウンタの値が「2」であると判別した場合(ステップS503;Yes)、CPU153は、払出モータ51による1個の遊技球の払出動作が完了したものと判別して、払出動作量カウンタ162の値を1減算して(ステップS504)、ステップS506の処理へと進む。
一方、ステップS503の処理にて払出モータ位置センサオンカウンタの値が「2」でないと判別した場合には(ステップS503;No)、ステップS504の処理をスキップして、ステップS506の処理へと進む。
また、ステップS501の処理にて払出モータ位置センサ71からの検出信号がオフ状態にあると判別した場合には(ステップS501;No)、払出モータ位置センサオンカウンタの値をクリアして(ステップS505)、ステップS506の処理へと進む。
次に、CPU153は、払出カウントスイッチ72からの検出信号がオン状態にあるか否かを判別する(ステップS506)。オン状態にあると判別した場合には(ステップS506;Yes)、スイッチオンカウンタメモリ161に設けられている払出カウントスイッチオンカウンタの値を1加算する(ステップS507)。
続いて、CPU153は、払出カウントスイッチオンカウンタの値をチェックし、その値が「2」であるか否かを判別する(ステップS508)。払出カウントスイッチオンカウンタの値が「2」である場合(ステップS508;Yes)、CPU153は、払出装置50から1個の遊技球が払い出されたものと判別すると共に、この遊技球が賞球として払い出されたものであるか遊技者に貸し出すために払い出されたものであるかを、フラグメモリ166に設けられている賞球払出中フラグ及び球貸中フラグをチェックすることにより、判別する(ステップS509)。
ステップS509の処理にて払出装置50から遊技球が賞球として払い出されたものと判別した場合(ステップS509;Yes)、CPU153は、加算後賞球総数カウンタ163の値を1減算すると共に(ステップS510)、加算前賞球総数カウンタ164の値を1減算して(ステップS511)、スイッチ処理を終了する。
一方、ステップS509の処理にて払出装置50から遊技球が遊技者に貸し出すために払い出されたものと判別した場合(ステップS509;No)、CPU153は、貸球総数カウンタ165の値を1減算して(ステップS512)、スイッチ処理を終了する。
また、ステップS508の処理にて払出カウントスイッチオンカウンタの値が「2」でないと判別した場合は(ステップS508;No)、そのままスイッチ処理を終了する。
さらに、ステップS506の処理にて払出カウントスイッチ72からの検出信号がオフ状態にあると判別した場合には(ステップS506;No)、払出カウントスイッチオンカウンタの値をクリアして(ステップS513)、スイッチ処理を終了する。
図37は、図35のステップS64の払出停止状態設定処理の詳細を示すフローチャートである。この払出停止状態設定処理において、CPU153は、図37に示すように、まず、満タンスイッチ73からの検出信号がオン状態にあるか否かを判別する(ステップS521)。オン状態にあると判別した場合には(ステップS521;Yes)、スイッチオンカウンタメモリ161に設けられている満タンスイッチオンカウンタの値を1加算する(ステップS522)。
続いて、CPU153は、満タンスイッチオンカウンタの値をチェックし、その値が「50」であるか否かを判別する(ステップS523)。満タンスイッチカウンタの値が「50」であると判別した場合(ステップS523;Yes)、CPU153は、満タン状態になったものと判断して、フラグメモリ166に設けられている満タンフラグをオンにセットして(ステップS524)、ステップS526の処理へと進む。
一方、ステップS523の処理にて満タンスイッチオンカウンタの値が「50」でないと判別した場合には(ステップS523;No)、ステップS524の処理をスキップして、ステップS526の処理へと進む。
また、ステップS521の処理にて満タンスイッチ73からの検出信号がオフ状態にあると判別した場合には(ステップS521;No)、満タンスイッチオンカウンタの値をクリアして(ステップS525)、ステップS526の処理へと進む。
次に、CPU153は、球切れスイッチ74からの検出信号がオン状態にあるか否かを判別する(ステップS526)。オン状態にあると判別した場合には(ステップS526;Yes)、スイッチオンカウンタメモリ161に設けられている球切れスイッチ74の値を1加算する(ステップS527)。
続いて、CPU153は、球切れスイッチオンカウンタの値をチェックし、その値が「250」であるか否かを判別する(ステップS528)。球切れスイッチカウンタの値が「250」であると判別した場合(ステップS528;Yes)、CPU153は、球切れ状態になったものと判断して、フラグメモリ166に設けられている球切れフラグをオンにセットして(ステップS529)、ステップS531の処理へと進む。
一方、ステップS528の処理にて球切れスイッチオンカウンタの値が「250」でないと判別した場合には(ステップS528;No)、ステップS529の処理をスキップして、ステップS531の処理へと進む。
また、ステップS526の処理にて球切れスイッチ74からの検出信号がオフ状態にあると判別した場合には(ステップS526;No)、球切れスイッチオンカウンタの値をクリアして(ステップS530)、ステップS531の処理へと進む。
続いて、CPU153は、フラグメモリ166に設けられた払出停止中フラグをチェックして、払出停止状態であるか否かを判別する(ステップS531)。払出停止状態でないと判別された場合には(ステップS531;No)、さらにフラグメモリ166に設けられた満タンフラグ又は球切れフラグがオン状態になったか否かを判別する(ステップS532)。
ステップS532の処理にて満タンフラグ及び球切れフラグのうち、少なくともいずれか一方がオン状態になったと判別された場合には(ステップS532;Yes)、払出エラーが発生したものと判断して払出停止状態に設定すべく、フラグメモリ166に設けられた払出停止中フラグをセットしてオンすると共に(ステップS533)、発生制御基板17に対する発射制御信号の出力を停止することにより、発射装置60による発射動作を停止させる(ステップS534)。一方、ステップS532の処理にて満タンフラグ及び球切れフラグのいずれもがオフ状態のままである判別された場合には(ステップS532;No)、そのまま払出停止状態設定処理を終了する。
また、ステップS531の処理にて払出停止中であると判別された場合には(ステップS531;Yes)、さらにフラグメモリ166に設けられた満タンフラグ及び球切れフラグが共にオフ状態になったか否かを判別する(ステップS535)。
ステップS535の処理にて満タンフラグ及び球切れフラグが共にオフ状態となったと判別された場合には(ステップS535;Yes)、払出エラーが解消したものと判断して払出停止状態を解除すべく、フラグメモリ166に設けられた払出停止中フラグをリセットしてオフすると共に(ステップS536)、発生制御基板17に対する発射制御信号の出力を開始することにより、発射装置60による発射動作を開始させる(ステップS537)。一方、ステップS535の処理にて、満タンフラグ及び球切れフラグのうち、少なくともいずれか一方がオン状態のままである判別された場合には(ステップS535;No)、そのまま払出停止状態設定処理を終了する。
図38は、図35のステップS70にて実行されるエラー処理の詳細を示すフローチャートである。このエラー処理において、CPU153は、図38に示すように、まず、フラグメモリ166に設けられているエラーフラグがオンとなっているか否かを判別する(ステップS541)。エラーフラグがオフであると判別された場合には(ステップS541;No)、エラーが発生していないものと判断して、続いてフラグメモリ166に設けられた払出停止中フラグがオンになっているか否かを判別する(ステップS542)。払出停止中フラグがオンとなっていると判別した場合には(ステップS542;Yes)、満タンエラーや球切れエラーなどの払出に関するエラーが発生したものと判断して、エラーフラグをセットした後(ステップS543)、演出制御コマンド用のコマンド送信バッファにエラー状態になったことを主基板11に通知する払出情報コマンド(エラー指定コマンド)をセットする(ステップS544)。
そして、CPU153は、コマンドセット処理サブルーチンをコールしてコマンドセット処理を実行する(ステップS545)。ステップS545のコマンドセット処理においては、エラー指定コマンドが主基板11に対して送出される。一方、ステップS542の処理にて払出停止中フラグがオフとなっていると判別した場合には(ステップS542;No)、そのままエラー処理を終了する。
ステップS541の処理にてエラーフラグがオンであると判別された場合には(ステップS541;Yes)、エラーが発生しているものと判断して、続いてフラグメモリ166に設けられた払出停止中フラグがオフになっているか否かを判別する(ステップS546)。払出停止中フラグがオフとなっていると判別した場合には(ステップS546;Yes)、払出に関するエラーが解消したものと判断して、エラーフラグをクリアした後(ステップS547)、演出制御コマンド用のコマンド送信バッファにエラー状態が解除されたことを主基板11に通知する払出情報コマンド(エラー解除指定コマンド)をセットする(ステップS548)。
そして、CPU153は、コマンドセット処理サブルーチンをコールしてコマンドセット処理を実行する(ステップS549)。ステップS549のコマンドセット処理においては、エラー解除指定コマンドが主基板11に対して送出される。一方、ステップS546の処理にて払出停止中フラグがオンとなっていると判別した場合には(ステップS546;No)、そのままエラー処理を終了する。
図39は、図35のステップS65のコマンド解析処理の詳細を示すフローチャートである。このコマンド解析処理において、CPU153は、図39に示すように、まず、受信コマンドバッファメモリ160に設けられたコマンド受信テーブルに、主基板11から受信した払出制御コマンドが格納されているか否かを確認する(ステップS551)。
コマンド受信テーブルに受信コマンドが格納されている場合(ステップS551;Yes)、CPU153は、コマンド受信テーブルから受信コマンドを読み出し(ステップS552)、読み出した受信コマンドが賞球の個数を指定する払出制御コマンド(賞球個数指定コマンド)であるか否かを判別する(ステップS553)。なお、読み出したら読出ポインタの値を1加算しておく。
ステップS551の処理にて読み出した受信コマンドが賞球個数指定コマンドであると判別された場合には(ステップS553;Yes)、加算後賞球総数カウンタ163の内容に、賞球個数指定コマンドにより指示された賞球の個数を加算する(ステップS554)。その後、CPU153は、ステップS551の処理へとリターンする。
また、ステップS551の処理にて読み出した受信コマンドがその他の演出制御コマンドである場合には(ステップS553;No)、受信コマンドに対応するコマンド受信フラグをセットし(ステップS555)、ステップS551の処理へとリターンする。一方、ステップS551の処理にてコマンド受信テーブルに受信コマンドが格納されていないと判別した場合には(ステップS551;No)、そのままコマンド解析処理を終了する。
図40及び図41は、図35のステップS67にて実行される球貸制御処理の詳細を示すフローチャートである。なお、この球貸制御処理において、払出装置50から連続的に払い出される貸球の個数の最大値は、貸球の一単位と同数(例えば25個)であるが、この値は任意であり、他の数であってもよい。球貸制御処理が開始すると、CPU153は、図40に示すように、まず、フラグメモリ166に設けられている払出停止中フラグをチェックして、球貸停止中であるか否かを判別する(ステップS561)。球貸停止中であると判別した場合には(ステップS561;Yes)、そのまま球貸制御処理を終了する。
一方、球貸停止中でないと判別した場合には(ステップS561;No)、フラグメモリ166に設けられている球貸中フラグをチェックして、貸球の払出が行われているか否かを判別する(ステップS562)。貸球の払出が行われていると判別した場合には(ステップS562;Yes)、ステップS569の処理へと進む。
一方、貸球の払出が行われていないと判別した場合には(ステップS562;No)、続いて、フラグメモリ166に設けられている賞球払出中フラグをチェックして、賞球の払出が行われているか否かを判別する(ステップS563)。賞球の払出が行われていると判別した場合には(ステップS563;Yes)、そのまま球貸制御処理を終了する。
そして、ステップS562及びS533の処理にて貸球の払出も賞球の払出も行われていないと判別した場合(ステップS562;No,ステップS563;No)、CPU153は、カードユニット70から球貸要求があったか否かを判別する(ステップS564)。球貸要求があったと判別した場合には(ステップS564;Yes)、フラグメモリ166に設けられている球貸中フラグをオンすると共に(ステップS565)、貸球総数カウンタ165及び払出動作量カウンタ162に「25」を設定する(ステップS566)。
そして、CPU153は、EXS信号をオンすると共に(ステップS567)、カードユニット70が受付を認識したことを示すBRQ信号をオフ状態にした後、払出モータ51を駆動する(ステップS568)。これにより、球貸制御処理は、球貸動作前の処理から球貸中の処理へと移行する。
球貸中の処理において、CPU153は、まず、払出球通過待ち時間中であるか否かを判別する(図41のステップS569)。この払出球通過待ち時間とは、最後の払出球が払出モータ51によって払い出されてから払出カウントスイッチ72を通過するまでの時間である。ステップS569の処理にて払出球通過待ち時間中でないと判別した場合(ステップS569;No)、CPU153は、貸球の払出を行う(ステップS570)。
そして、CPU153は、払出動作量カウンタ162の値が「0」になったか否かを判別する(ステップS571)。払出動作量カウンタ162の値が「0」になった場合(ステップS571;Yes)、CPU153は、25個の貸球を払い出すために必要な動作が完了したものと判別して、払出モータ51の払出動作を停止すると共に(ステップS572)、払出球通過待ち時間の設定を行い(ステップS573)、球貸制御処理を終了する。
一方、払出動作量カウンタ162の値が「0」になっていない場合(ステップS571;No)、CPU153は、そのまま球貸制御処理を終了する。
ステップS569の処理にて払出球通過待ち時間中であると判別した場合(ステップS569;Yes)、CPU153は、この払出球通過待ち時間が終了したか否かを判別する(ステップS574)。払出球通過待ち時間が終了していないと判別した場合には(ステップS574;No)、そのまま球貸制御処理を終了する。
一方、払出球通過待ち時間が終了したと判別した場合(ステップS574;Yes)、貸球総数カウンタ165の値が「0」になっているか否かを判別する(ステップS575)。貸球総数カウンタ165の値が「0」になっていない場合(ステップS575;No)、未払出の貸球があると判別して、貸球総数カウンタ165の値を払出動作量カウンタ162にセットし(ステップS576)、払出モータ51を再駆動する(ステップS577)。その後、CPU153は、ステップS569の処理へと戻る。
一方、貸球総数カウンタ165の値が「0」になっている場合(ステップS575;Yes)、一単位の貸球が全て払い出されたものと判別して、カードユニット70に対して次の球貸要求の受付が可能になったことを示すEXS信号をオフにすると共に(ステップS578)、球貸中フラグをオフし(ステップS579)、貸球制御処理を終了する。
図42、図43及び図44は、図35のステップS68にて実行される賞球制御処理の詳細を示すフローチャートである。なお、この賞球制御処理において、賞球制御処理が開始すると、CPU153は、図42に示すように、まず、フラグメモリ166に設けられている払出停止中フラグをチェックして、賞球停止中であるか否かを判別する(ステップS581)。賞球停止中であると判別した場合には(ステップS581;Yes)、そのまま賞球制御処理を終了する。
一方、賞球停止中でないと判別した場合には(ステップS581;No)、フラグメモリ166に設けられている球貸中フラグをチェックして、貸球の払出が行われているか否かを判別する(ステップS582)。貸球の払出が行われていると判別した場合には(ステップS582;Yes)、そのまま賞球制御処理を終了する。
一方、貸球の払出が行われていないと判別した場合には(ステップS582;No)、続いて、フラグメモリ166に設けられている賞球払出中フラグをチェックして、賞球の払出が行われているか否かを判別する(ステップS583)。賞球の払出が行われていると判別した場合には(ステップS583;Yes)、ステップS588の処理へと進む。
そして、ステップS582及びS583の処理にて貸球の払出も賞球の払出も行われていないと判別した場合(ステップS582;No,ステップS583;No)、CPU153は、加算後賞球総数カウンタ163の値が「0」でないか否かを判別する(ステップS584)。加算後賞球総数カウンタ163に格納されている賞球数が「0」である場合には(ステップS584;Yes)、そのまま賞球制御処理を終了する。
一方、加算後賞球総数カウンタ163の値が「0」でない場合(ステップS584;No)、CPU153は、賞球払出中フラグをオンすると共に(ステップS585)、払出動作量カウンタ162及び加算前賞球総数カウンタ164に加算後賞球総数カウンタ163の値を設定する(ステップS586)。そして、CPU153は、払出モータ51を駆動する(ステップS587)。これにより、賞球制御処理は、賞球動作前の処理から賞球動作中の処理へと移行する。
賞球動作中の処理において、CPU153は、まず、払出球通過待ち時間中であるか否かを判別する(図43のステップS588)。ステップS588の処理にて払出球通過待ち時間中でないと判別した場合(ステップS588;No)、CPU153は、賞球の払出を行う(ステップS589)。
そして、CPU153は、加算後賞球総数カウンタ163の値と加算前賞球総数カウンタ164の値とを比較することにより、加算後賞球総数カウンタ163の値が増加したか否かを判別する(ステップS590)。加算後賞球総数カウンタ163の値が増加したと判別した場合には(ステップS590;No)、賞球払出中に賞球個数指定コマンドを受信したものと判断して、この受信した賞球個数指定コマンドより指定された賞球の個数を、加算後賞球総数カウンタ163の値と加算前賞球総数カウンタ164の値とから特定する(ステップS591)。具体的には、加算後賞球総数カウンタ163の値から加算前賞球総数カウンタ164の値を減算することにより、この賞球の個数を特定する。
そして、ステップS591の処理にて特定された賞球の個数を払出動作量カウンタ162の内容に加算すると共に(ステップS592)、加算前賞球総数カウンタ164に加算後賞球総数カウンタ163の値を上書きして(ステップS593)、賞球制御処理を終了する。
一方、ステップS590の処理にて加算後賞球総数カウンタ163の値が増加していないと判別した場合には(ステップS590;Yes)、賞球払出中に賞球個数指定コマンドを受信していないものと判断して、払出動作量カウンタ162の値が「0」になったか否かを判別する(ステップS594)。払出動作量カウンタ162の値が「0」になった場合(ステップS594;Yes)、CPU153は、賞球を全て払い出すために必要な動作が完了したものと判別して、払出モータ51の払出動作を停止すると共に(ステップS595)、払出球通過待ち時間の設定を行い(ステップS596)、賞球制御処理を終了する。
一方、払出動作量カウンタ162の値が「0」になっていない場合(ステップS594;No)、CPU153は、そのまま賞球制御処理を終了する。
また、ステップS588の処理にて払出球通過待ち時間中であると判別した場合(ステップS588;Yes)、CPU153は、この払出球通過待ち時間が終了したか否かを判別する(図44のステップS597)。払出球通過待ち時間が終了していないと判別した場合には(ステップS597;No)、そのまま賞球制御処理を終了する。
一方、払出球通過待ち時間が終了したと判別した場合(ステップS597;Yes)、加算後賞球総数カウンタ163の値が「0」になっているか否かを判別する(ステップS598)。加算後賞球総数カウンタ163の値が「0」になっていない場合(ステップS598;No)、未払出の賞球があると判別して、加算後賞球総数カウンタ163の値を払出動作量カウンタ162にセットする(ステップS599)。
続いて、CPU153は、加算後賞球総数カウンタ163の値と加算前賞球総数カウンタ164の値とを比較することにより、加算後賞球総数カウンタ163の値が増加したか否かを判別する(ステップS600)。加算後賞球総数カウンタ163の値が増加したと判別した場合には(ステップS600;No)、払出球通過待ち時間中に賞球個数指定コマンドを受信したものと判断して、加算前賞球総数カウンタ164に加算後賞球総数カウンタの値を上書きする(ステップS601)。一方、加算後賞球総数カウンタ163の値が増加していないと判別した場合には(ステップS600;Yes)、払出球通過待ち時間中に賞球個数指定コマンドを受信していないものと判断して、ステップS601の処理をスキップする。その後、CPU153は、払出モータ51を再駆動して(ステップS602)、ステップS588の処理へとリターンする。
そして、ステップS598の処理にて加算後賞球総数カウンタ163の値が「0」になったと判別された場合には(ステップS598;Yes)、賞球が全て払い出されたものと判別して、賞球払出中フラグをオフして(ステップS603)、賞球制御処理を終了する。
以上説明したように、この実施の形態によれば、主基板11から出力される賞球個数指定コマンドを受信した場合、払出制御基板15のCPU153は、図39に示すコマンド解析処理にて、加算後賞球総数カウンタ163の内容に、賞球個数指定コマンドにより指示された賞球の個数を加算する(ステップS554)。一方、加算前賞球総数カウンタ164の内容には、賞球個数指定コマンドにより指示された賞球の個数が加算されない。この結果、加算前賞球総数カウンタ164には、賞球個数指定コマンドを受信する前の賞球の総数が記憶され、加算後賞球総数カウンタ163には、賞球個数指定コマンドを受信した後の賞球の総数が記憶されていることになる。
また、図42〜図44の賞球制御処理において、CPU153は、払出モータ51による賞球の払出動作中、タイマ割込みが発生する毎に、加算後賞球総数カウンタ163の値と加算前賞球総数カウンタ164の値とをチェックして、加算後賞球総数カウンタ163の値が増加したか否かを判定し続ける(ステップS590)。そして、加算後賞球総数カウンタ163の値が増加したとき(ステップS590;No)、CPU153は、主基板11から出力された賞球個数指定コマンドを新たに受信したものと判断し、この賞球個数指定コマンドを受信したことにより増加した賞球の個数を、加算後賞球総数カウンタ163と加算前賞球総数カウンタ164とを用いて特定する(ステップS591)。
そして、CPU153は、この特定した賞球の個数に応じて、払出動作量カウンタ162の値を更新する(ステップS592)。このようにすることで、CPU153は、賞球個数指定コマンドを受信する毎に、払出モータ51よる賞球の払出動作中であっても、その動作を停止することなく、払出動作量カウンタ162の値を適宜更新して行くことができるため、迅速な賞球の払出の実現が可能となる。
また、CPU153は、払出動作量カウンタ162の値が「0」になったときに(ステップS594;Yes)、賞球を全て払い出すために必要な動作が完了したものと判断して、払出モータ51による賞球の払出動作を停止させると共に(ステップS595)、加算後賞球総数カウンタ163の値も「0」になっているか否かを判定する(ステップS598)。このとき、加算後賞球総数カウンタ163の値が「0」であれば (ステップS598;Yes)、払出装置50から賞球が過不足なく払い出されたものと判断して、一連の払出動作を終了する。
他方、加算後賞球総数カウンタ163の値が「0」でなければ(ステップS598;No)、未払出の賞球があるものと判断して、この未払出の賞球の個数を示す加算後賞球総数カウンタ163の値を払出動作量カウンタ162にセットして(ステップS599)、払出モータ51を再駆動する(ステップS602)。この後、加算後賞球総数カウンタ163の値が「0」になったとき(ステップS598;Yes)、賞球が過不足なく払い出されたものと判断して、一連の払出動作を終了する。
このように、CPU153は、加算後賞球総数カウンタ163の値、即ち払出装置50から実際に払い出され、払出カウントスイッチ72によって検出された賞球の個数ではなく、払出動作量カウンタ162の値、即ち払出モータ位置センサ71によって検出された払出モータ51の払出動作量に基づいて、払出モータ51による賞球の払出動作を停止させるか否かを決定するため、払出装置50から賞球が過剰に払い出されることを防止することができる。他方、未払出の賞球がある場合には、一旦停止させた払出モータ51を再駆動して払出装置50から未払出の賞球を払い出させることで、払出装置50から払い出される賞球が不足することも防止することができる。
このようにして、CPU153は、払出装置50から払い出される賞球の個数を正確に管理することができ、この結果、払出装置50から賞球を過不足なく払い出されることが可能となる。
また、上述したように、CPU153は、ステップS591の処理において、賞球個数指定コマンドを受信する前の賞球の総数が記憶されている加算前賞球総数カウンタ164と、賞球個数指定コマンドを受信した後の賞球の総数が記憶されている加算後賞球総数カウンタ163と、を用いることで、主基板11から出力された賞球個数指定コマンドを受信したことにより増加した賞球の個数を正確に特定することができる。
さらに、CPU153は、ステップS591の処理にて賞球の個数を特定した後、加算前賞球総数カウンタ164に、加算後賞球総数カウンタ163の値を上書きするので(ステップS593)、RAM154の使用領域を最小限にすることができる。
また、CPU153は、払出カウントスイッチ72からの検出信号がオン状態になったとき(ステップS508;Yes)、払出装置50から1個の遊技球が払い出されたものと判断すると共に、この遊技球が賞球として払い出されたものであるか遊技者に貸し出すために払い出されたものであるかを、賞球払出中フラグ及び球貸中フラグをチェックするなどして判定する(ステップS509)。そして、遊技球が賞球として払い出されたものである場合には(ステップS509;Yes)、加算後賞球総数カウンタ163及び加算前賞球総数カウンタ164の値を1ずつ減算し(ステップS510及びS511)、遊技者に貸し出すために払い出されたものと判別した場合には(ステップS509;No)、貸球総数カウンタ165の値を1減算する(ステップS512)。
このようにすれば、CPU153は、払出カウントスイッチ72を賞球の検出と貸球の検出とに共通して用いることができるため、パチンコ遊技機1のハードウェア構成を簡素化が可能となる。
さらに、CPU153は、満タンスイッチ73又は球切れスイッチ74がオンとなった場合(ステップS532;Yes)、図37に示す払出停止状態設定処理において、払出モータ51に対する発射制御信号の供給を停止して、遊技球の払出動作を停止させると共に(ステップS534)、図38に示すエラー処理において、主基板11に対し、エラー指定コマンドを出力する(ステップS544及びS545)。主基板11のCPU113は、払出制御基板15から出力されたエラー指定コマンドを受信したことに基づき、図30に示すエラー処理において、演出制御基板12に対して中継基板18を介し、エラー演出指定コマンドを送信する(ステップS153及びS154)。
そして、演出制御基板12のCPU200は、主基板11から出力されたエラー演出指定コマンドを受信したことに基づき、図33に示すエラー処理において、CGROM204から、払出装置50の動作に関連して発生したエラー(払出エラー)を報知するための文字列からなる画像データを読み出し、この読み出した画像データに従った描画命令をGCL205に対して送出するなどして、可変表示装置4にて払出エラーが発生した旨を報知する演出表示を開始するための設定を行う(ステップS414)。これにより、CPU200は、可変表示装置4を用いて遊技者に分かり易い形態で払出エラーの報知や遊技球の払出動作が停止していることの報知を行うことができる。
また、図5に示す中継基板18には、図18に示すように、制御信号を伝送するための配線毎に伝送方向規制回路18−1〜18−nが設けられていると共に、主基板11にて遊技制御用マイクロコンピュータ100とコネクタ91Aの間に出力バッファ回路92が設けられているので、外部から主基板11への不正な信号の入力を確実に防止することができる。
具体的には、可動部材位置センサ26や、演出スイッチ27からスイッチ回路208を介して演出制御基板12へ入力される検出信号が、ノイズ信号として主基板11に伝送されるのを確実に防止することができる。また、演出制御基板12と、音声制御基板13や、ランプ制御基板14との間で行われる双方向通信によって発生するノイズ信号が主基板11に伝送されるのも防止することができる。さらには、悪質な遊技者が可動部材位置センサ26や、演出スイッチ27、音声制御基板13、ランプ制御基板14などを改変するなどして、演出制御基板12を介して主基板11に不正な信号を入力されるといった、不正行為を確実に防止することができる。
なお、この発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、この発明に適用可能な上記の実施の形態の変形態様について説明する。
上記実施の形態において、払出装置50から連続して払い出される遊技球の個数には、上限が設けられていなかった。しかしながら、本発明は、これに限定されず、払出装置50から連続して払い出される遊技球の個数に、所定の上限値を設けてもよい。
この場合、上記実施の形態における構成物に加え、払出制御基板15の払出制御用マイクロコンピュータ150に、払出装置50から連続的に払い出される遊技球の個数を記憶する払出予定数カウンタを設け、その上限値として、1単位の貸球の個数(例えば25個)に相当する値である「25」を予め設定する。
図45,図46及び図47は、この場合における賞球制御処理を示すフローチャートである。この賞球制御処理が開始すると、CPU153は、図45に示すように、まず、フラグメモリ166に設けられている払出停止中フラグをチェックして、賞球停止中であるか否かを判別する(ステップS1581)。賞球停止中であると判別した場合には(ステップS1581;Yes)、そのまま賞球制御処理を終了する。
一方、賞球停止中でないと判別した場合には(ステップS1581;No)、フラグメモリ166に設けられている球貸中フラグをチェックして、貸球の払出が行われているか否かを判別する(ステップS1582)。貸球の払出が行われていると判別した場合には(ステップS1582;Yes)、そのまま賞球制御処理を終了する。
一方、貸球の払出が行われていないと判別した場合には(ステップS1582;No)、続いて、フラグメモリ166に設けられている賞球払出中フラグをチェックして、賞球の払出が行われているか否かを判別する(ステップS1583)。賞球の払出が行われていると判別した場合には(ステップS1583;Yes)、ステップS1591の処理へと進む。
そして、ステップS1582及びS1583の処理にて貸球の払出も賞球の払出も行われていないと判別した場合(ステップS1582;No,ステップS1583;No)、CPU153は、加算後賞球総数カウンタ163の値が「0」でないか否かを判別する(ステップS1584)。加算後賞球総数カウンタ163に格納されている賞球数が「0」である場合には(ステップS1584;Yes)、そのまま賞球制御処理を終了する。
一方、加算後賞球総数カウンタ163の値が「0」でない場合(ステップS1584;No)、CPU153は、賞球払出中フラグをオンし(ステップS1585)、加算後賞球総数カウンタ163の値が「25」以上であるか否かを判別する(ステップS1586)。
加算後賞球総数カウンタ163の値が「25」未満であると判別した場合(ステップS1586;No)、CPU153は、払出動作量カウンタ162、加算前賞球総数カウンタ164、及び払出予定数カウンタに、加算後賞球総数カウンタ163の値を設定する(ステップS1587)。一方、加算後賞球総数カウンタ163の値が「25」以上であると判別した場合(ステップS1586;Yes)、CPU153は、、払出動作量カウンタ162、及び払出予定数カウンタに、「25」を設定すると共に(ステップS1588)、加算前賞球総数カウンタ164に加算後賞球総数カウンタ163の値を設定する(ステップS1589)。ステップS1587、又はS1588及びS1589の処理の後、CPU153は、払出モータ51を駆動する(ステップS1590)。これにより、賞球制御処理は、賞球動作前の処理から賞球動作中の処理へと移行する。
賞球動作中の処理において、CPU153は、まず、払出球通過待ち時間中であるか否かを判別する(図46のステップS1591)。ステップS1591の処理にて払出球通過待ち時間中でないと判別した場合(ステップS1591;No)、CPU153は、賞球の払出を行う(ステップS1592)。
そして、CPU153は、払出予定数カウンタの値が「25」に達しているか否かを判別する(ステップS1593)。払出予定数カウンタの値が「25」に達していないと判別した場合(ステップS1593;No)、続いて、CPU153は、加算後賞球総数カウンタ163の値と加算前賞球総数カウンタ164の値とを比較することにより、加算後賞球総数カウンタ163の値が増加したか否かを判別する(ステップS1594)。加算後賞球総数カウンタ163の値が増加したと判別した場合には(ステップS1594;No)、賞球払出中に賞球個数指定コマンドを受信したものと判断して、この受信した賞球個数指定コマンドより指定された賞球の個数を、加算後賞球総数カウンタ163の値と加算前賞球総数カウンタ164の値とから特定する(ステップS1595)。
そして、ステップS1595の処理にて特定された賞球の個数と払出予定数カウンタの値とを加算し(ステップS1596)、この加算値が「25」以上であるか否かを判別する(ステップS1597)。ステップS1597の処理にて加算値が「25」未満であると判別された場合には(ステップS1597;No)、払出動作量カウンタ162及び払出予定数カウンタの内容に、ステップS1595の処理にて特定された賞球の個数を加算する(ステップS1598)。
一方、ステップS1597の処理にて加算値が「25」以上であると判別された場合には(ステップS1597;Yes)、払出動作量カウンタ162及び払出予定数カウンタに、「25」を設定する(ステップS1599)。その後、CPU153は、加算前賞球個数カウンタ164に、加算後賞球個数カウンタの値を上書きする(ステップS1600)。
また、ステップS1593の処理にて払出予定数カウンタの値が「25」に達していると判別された場合や(ステップS1593;Yes)、ステップS1594の処理にて加算後賞球総数カウンタ163の値が増加していないと判別された場合には(ステップS1594;Yes)、払出動作量カウンタ162の値が「0」になったか否かを判別する(ステップS1601)。払出動作量カウンタ162の値が「0」になった場合(ステップS1601;Yes)、CPU153は、賞球を全て払い出すために必要な動作が完了したものと判別して、払出モータ51の払出動作を停止すると共に(ステップS1602)、払出球通過待ち時間の設定を行い(ステップS1603)、賞球制御処理を終了する。
一方、払出動作量カウンタ162の値が「0」になっていないと判別された場合(ステップS1601;No)、CPU153は、そのまま賞球制御処理を終了する。
また、ステップS1591の処理にて払出球通過待ち時間中であると判別した場合(ステップS1591;Yes)、CPU153は、この払出球通過待ち時間が終了したか否かを判別する(図47のステップS1604)。払出球通過待ち時間が終了していないと判別した場合には(ステップS1604;No)、そのまま賞球制御処理を終了する。
一方、払出球通過待ち時間が終了したと判別した場合(ステップS1604;Yes)、加算後賞球総数カウンタ163の値が「0」になっているか否かを判別する(ステップS1605)。加算後賞球総数カウンタ163の値が「0」になっていない場合(ステップS1605;No)、未払出の賞球があると判別して、加算後賞球総数カウンタ163の値が「25」以上であるか否かを判別する(ステップS1606)。
加算後賞球総数カウンタ163の値が「25」未満であると判別した場合(ステップS1606;No)、CPU153は、払出動作量カウンタ162及び払出予定数カウンタに、加算後賞球総数カウンタ163の値を設定する(ステップS1607)。一方、加算後賞球総数カウンタ163の値が「25」以上であると判別した場合(ステップS1606;Yes)、CPU153は、、払出動作量カウンタ162及び払出予定数カウンタに、「25」を設定する(ステップS1608)。
ステップS1607又はS1608の処理の後、CPU153は、加算後賞球総数カウンタ163の値と加算前賞球総数カウンタ164の値とを比較することにより、加算後賞球総数カウンタ163の値が増加したか否かを判別する(ステップS1609)。
加算後賞球総数カウンタ163の値が増加したと判別した場合には(ステップS1609;No)、払出球通過待ち時間中に賞球個数指定コマンドを受信したものと判断して、加算前賞球個数カウンタ164に、加算後賞球個数カウンタの値を上書きする(ステップS1610)。一方、加算後賞球総数カウンタ増加していないと判別した場合には(ステップS1609;Yes)、払出球通過待ち時間中に賞球個数指定コマンドを受信していないものと判断して、ステップS1610の処理をスキップする。その後、CPU153は、払出モータ51を再駆動して(ステップS1611)、図46のステップS1591の処理へとリターンする。
そして、ステップS1605の処理にて加算後賞球総数カウンタ163の値が「0」になったと判別された場合には(ステップS1605;Yes)、賞球が全て払い出されたものと判別して、払出予定数カウンタをクリアすると共に(ステップS1612)、賞球払出中フラグをオフして(ステップS1613)、賞球制御処理を終了する。
このようにすれば、CPU153は、上記実施の形態の効果を維持しつつ、上限値を「25」として賞球の払出を行うことができる。
上記実施の形態において、可動部材90は、中図柄を表示する中央の可変表示部の真上の部分に配置されるものであり、然も下あご部分を下方に可動してもその下あご部分で可変表示装置4の表示領域を覆い隠さない位置に配置されていた。しかしながら、本発明はこれに限定されるものではなく、可変表示装置4の表示領域を覆い隠す位置に可動部材を設けるようにしてもよい。この場合には、可変表示装置4の表示内容と可動部材の動作とが相互に関係する演出が遊技者に対してより分り易くなる。例えば、可変表示装置4の表示領域を区画する可動部材を設けて、演出内容に応じて可変表示装置4の表示領域の大きさを変化させる等の演出が考えられる。
また、可動部材90は、打球の流路に影響のない位置に設けられているが、打球の流路を変化させるような位置に可動部材を設けるようにしてもよい。例えば、可動部材90が動作することにより、普通可変入賞球装置6の方向に遊技球を誘導するようにしてもよい。こうすることで、可動部材が動作することにより、演出内容を多彩にできると共に遊技者に対して、普通可変入賞球装置6に遊技球が入賞し易くなるなどの特別な利益が付与できる。
さらに、上記実施の形態において、遊技機は、可変表示の実行条件(例えば普通可変入賞球装置6への入賞)が成立した後に可変表示の開始条件(例えば可変表示装置4における前回の可変表示及び大当り遊技状態の終了)が成立したことに基づいて、各々が識別可能な複数種類の識別情報(例えば飾り図柄)を可変表示する可変表示装置(例えば可変表示装置4)を備え、可変表示の表示結果が予め定められた特定表示結果となったときに、遊技者にとって有利な特定遊技状態(例えば大当り遊技状態)に制御するパチンコ遊技機であった。
しかしながら、本発明は、これに限定されず、遊技機は、遊技領域に設けられた始動領域にて遊技媒体を検出する始動検出手段(例えば始動玉検出器)の検出により、遊技者にとって不利な第2の状態から遊技者にとって有利な第1の状態となる始動動作(例えば開放動作)を行う可変入賞装置(例えば可変入賞球装置)を有し、可変入賞装置に設けられた特定領域にて遊技媒体を検出する特定検出手段(例えば特定玉検出器)の検出により、始動動作よりも遊技者にとってさらに有利な特定の態様で可変入賞装置を第1の状態に制御する特定遊技状態(例えば大当り遊技状態)を発生させるパチンコ遊技機であってもよい。
また、本発明の遊技機は、特別領域(例えば特別装置作動領域)に設けられた特別検出手段(例えば特定球検出スイッチや特別領域スイッチ)で遊技球が検出されたことを条件に権利発生状態となり、権利発生状態となっている期間中に、始動領域(例えば作動入賞口や始動入賞装置における始動口)に設けられた始動検出手段(例えば作動球検出スイッチや始動口スイッチ)により遊技球が検出されたことに基づいて、特別可変入賞装置(例えば大入賞口)を遊技者にとって不利な状態(例えば閉鎖状態)から遊技者にとって有利な状態(例えば開放状態)に変化させる制御を行うことが可能なパチンコ遊技機であってもよい。
さらに、本発明の遊技機は、1ゲームに対して賭け数を設定することによりゲームを開始させることが可能となり、可変表示装置(例えば可変表示装置)の表示結果が導出表示されることにより1ゲームが終了し、該可変表示装置の表示結果に応じて所定の入賞が発生可能であるスロットマシンであってもよい。
また、図1〜図4の装置構成、図5,図13及び図18に示すブロック構成、図6に示すコマンド構成、図7〜図10,図14,及び図15に示すメモリ構成、図11,図12,図16,及び図17に示すポート割当、図18〜図33,及び図35〜図47に示すフローチャート構成、及び図34に示す表示例等は、発明の趣旨を逸脱しない範囲で任意に変更及び修正が可能である。