以下、本発明の一実施形態を図面を参照して説明する。
まず、遊技機の一例であるパチンコ遊技機の全体の構成について説明する。図1はパチンコ遊技機を正面からみた正面図、図2は遊技盤の前面を示す正面図である。なお、以下の実施の形態では、パチンコ遊技機を例に説明を行うが、本発明による遊技機はパチンコ遊技機に限られず、本発明をスロット機などの他の遊技機に適用することもできる。
パチンコ遊技機1は、縦長の方形状に形成された外枠(図示せず)と、外枠の内側に開閉可能に取り付けられた遊技枠とで構成される。また、パチンコ遊技機1は、遊技枠に開閉可能に設けられている額縁状に形成されたガラス扉枠2を有する。遊技枠は、外枠に対して開閉自在に設置される前面枠(図示せず)と、機構部品等が取り付けられる機構板と、それらに取り付けられる種々の部品(後述する遊技盤を除く。)とを含む構造体である。
図1に示すように、パチンコ遊技機1は、額縁状に形成されたガラス扉枠2を有する。ガラス扉枠2の下部表面には打球供給皿(上皿)3がある。打球供給皿3の下部には、打球供給皿3に収容しきれない遊技球を貯留する余剰球受皿4と遊技球を発射する打球操作ハンドル(操作ノブ)5が設けられている。ガラス扉枠2の背面には、遊技盤6が着脱可能に取り付けられている。なお、遊技盤6は、それを構成する板状体と、その板状体に取り付けられた種々の部品とを含む構造体である。また、遊技盤6の前面には遊技領域7が形成されている。
遊技領域7の中央付近には、それぞれが演出用の飾り図柄を可変表示する複数の可変表示部を含む演出表示装置9が設けられている。演出表示装置9には、例えば「左」、「中」、「右」の3つの可変表示部(図柄表示エリア)がある。演出表示装置9は、特別図柄表示器8による特別図柄の可変表示期間中に、装飾用(演出用)の図柄としての飾り図柄の可変表示を行う。飾り図柄の可変表示を行う演出表示装置9は、演出制御基板に搭載されている演出制御用マイクロコンピュータによって制御される。
演出表示装置9の下部には、始動入賞口14に入った有効入賞球数すなわち保留記憶(始動記憶または始動入賞記憶ともいう。)数を表示する4つの特別図柄保留記憶表示器18が設けられている。特別図柄保留記憶表示器18は、保留記憶数を入賞順に4個まで表示する。特別図柄保留記憶表示器18は、始動入賞口14に始動入賞があるごとに、点灯状態のLEDの数を1増やす。そして、特別図柄保留記憶表示器18は、特別図柄表示器8で可変表示が開始されるごとに、点灯状態のLEDの数を1減らす(すなわち1つのLEDを消灯する)。具体的には、特別図柄保留記憶表示器18は、特別図柄表示器8で可変表示が開始されるごとに、点灯状態をシフトする。なお、この例では、始動入賞口14への入賞による始動記憶数に上限数(4個まで)が設けられているが、上限数を4個以上にしてもよい。
演出表示装置9の上部には、識別情報としての特別図柄を可変表示する特別図柄表示器(特別図柄表示装置)8が設けられている。この実施の形態では、特別図柄表示器8は、例えば0〜9の数字を可変表示可能な簡易で小型の表示器(例えば7セグメントLED)で実現されている。特別図柄表示器8は、遊技者に特定の停止図柄を把握しづらくさせるために、0〜99など、より多種類の数字を可変表示するように構成されていてもよい。また、演出表示装置9は、特別図柄表示器8による特別図柄の可変表示期間中に、装飾用(演出用)の図柄としての飾り図柄の可変表示を行う。
演出表示装置9の下方には、始動入賞口14を形成する可変入賞球装置15が設けられている。可変入賞球装置15は、遊技球が入賞し易い状態(開状態)と、遊技球が入賞し難い状態(閉状態)とのうちのいずれかの状態になる。始動入賞口14に入った入賞球は、遊技盤6の背面に導かれ、始動口スイッチ14aによって検出される。可変入賞球装置15は、ソレノイド16によって開状態にされる。なお、可変入賞球装置15の真上に第1始動入賞口を設け、可変入賞球装置15を第2始動入賞口としてもよい。
可変入賞球装置15の下方には、特定遊技状態(大当り状態)においてソレノイド21によって開状態に制御される開閉板を用いた特別可変入賞球装置20が設けられている。特別可変入賞球装置20は大入賞口を開閉する手段である。大入賞口に入賞した遊技球はカウントスイッチ23で検出される。
遊技球がゲート32を通過しゲートスイッチ32aで検出されると、普通図柄表示器10の表示の可変表示が開始される。この実施の形態では、左右のランプ(点灯時に図柄が視認可能になる)が交互に点灯することによって可変表示が行われ、例えば、可変表示の終了時に左側のランプが点灯すれば当たりになる。そして、普通図柄表示器10における停止図柄が所定の図柄(当り図柄)である場合に、可変入賞球装置15が所定回数、所定時間だけ開状態になる。普通図柄表示器10の近傍には、ゲート32を通過した入賞球数を表示する4つのLEDによる表示部を有する普通図柄始動記憶表示器41が設けられている。ゲート32への遊技球の通過があるごとに、普通図柄始動記憶表示器41は点灯するLEDを1増やす。そして、普通図柄表示器10の可変表示が開始されるごとに、点灯するLEDを1減らす。
遊技盤6には、複数の入賞口29,30が設けられ、遊技球の入賞口29,30への入賞は、それぞれ入賞口スイッチ29a,30aによって検出される。各入賞口29,30は、遊技媒体を受け入れて入賞を許容する領域として遊技盤6に設けられる入賞領域を構成している。なお、始動入賞口14や大入賞口も、遊技媒体を受け入れて入賞を許容する入賞領域を構成する。遊技領域7の左右周辺には、遊技中に点滅表示される装飾ランプ25が設けられ、下部には、入賞しなかった遊技球を吸収するアウト口26がある。また、遊技領域7の外側の左右上部には、効果音を発する2つのスピーカ27が設けられている。遊技領域7の外周には、天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cが設けられている。さらに、遊技領域7における各構造物(大入賞口等)の周囲には装飾LEDが設置されている。天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cおよび装飾用LEDは、遊技機に設けられている装飾発光体の一例である。
そして、この例では、左枠ランプ28bの近傍に、賞球払出中に点灯する賞球ランプ51が設けられ、天枠ランプ28aの近傍に、補給球が切れたときに点灯する球切れランプ52が設けられている。さらに、プリペイドカードが挿入されることによって球貸しを可能にするプリペイドカードユニット(以下、「カードユニット」という。)50が、パチンコ遊技機1に隣接して設置されている。
カードユニット50には、例えば、使用可能状態であるか否かを示す使用可表示ランプ、カードユニットがいずれの側のパチンコ遊技機1に対応しているのかを示す連結台方向表示器、カードユニット内にカードが投入されていることを示すカード投入表示ランプ、記録媒体としてのカードが挿入されるカード挿入口、およびカード挿入口の裏面に設けられているカードリーダライタの機構を点検する場合にカードユニットを解放するためのカードユニット錠が設けられている。
遊技者の操作により打球発射装置から発射された遊技球は、打球レールを通って遊技領域7に入り、その後、遊技領域7を下りてくる。遊技球が始動入賞口14に入り始動口スイッチ14aで検出されると、図柄の可変表示を開始できる状態であれば、特別図柄表示器8において特別図柄が可変表示(変動)を始める。図柄の可変表示を開始できる状態でなければ、保留記憶数を1増やす。
特別図柄表示器8における特別図柄の可変表示は、一定時間が経過したときに停止する。停止時の特別図柄(停止図柄)が大当り図柄(特定表示結果)であると、大当り遊技状態に移行する。すなわち、特別可変入賞球装置20が、一定時間経過するまで、または、所定個数(例えば10個)の遊技球が入賞するまで開放する。開放回数は、15回である。
停止時の特別図柄表示器8における特別図柄が確率変動を伴う大当り図柄(確変図柄)である場合には、次に大当りになる確率が高くなる。すなわち、確変状態という遊技者にとってさらに有利な状態になる。
遊技球がゲート32を通過すると、普通図柄表示器10において普通図柄が可変表示される状態になる。また、普通図柄表示器10における停止図柄が所定の図柄(当り図柄)である場合に、可変入賞球装置15が所定時間だけ開状態になる。
次に、パチンコ遊技機1の裏面の構造について図3を参照して説明する。図3は、遊技機を裏面から見た背面図である。図3に示すように、パチンコ遊技機1裏面側では、演出表示装置9を制御する演出制御用マイクロコンピュータ100が搭載された演出制御基板80を含む変動表示制御ユニット、遊技制御用マイクロコンピュータ等が搭載された遊技制御基板(主基板)31、音声出力基板70、ランプドライバ基板35、および球払出制御を行なう払出制御用マイクロコンピュータ等が搭載された払出制御基板37等の各種基板が設置されている。なお、主基板31は基板収納ケース200に収納されている。
さらに、パチンコ遊技機1裏面側には、DC30V、DC21V、DC12VおよびDC5V等の各種電源電圧を作成する電源回路が搭載された電源基板910やタッチセンサ基板91が設けられている。電源基板910には、パチンコ遊技機1における遊技制御基板31および各電気部品制御基板(演出制御基板80および払出制御基板37)やパチンコ遊技機1に設けられている各電気部品(電力が供給されることによって動作する部品)への電力供給を許容したり遮断したりするための電源スイッチ、遊技制御基板31の遊技制御用マイクロコンピュータ560のRAM55をクリアするためのクリアスイッチが設けられている。
なお、この実施の形態では、主基板31は遊技盤側に設けられ、払出制御基板37は遊技枠側に設けられている。このような構成であっても、後述するように、主基板31と払出制御基板37との間の通信をシリアル通信で行うことによって、遊技盤を交換する際の配線の取り回しを容易にしている。
なお、各制御基板には、制御用マイクロコンピュータを含む制御手段が搭載されている。制御手段は、遊技制御手段等からのコマンドとしての指令信号(制御信号)に従って遊技機に設けられている電気部品(遊技用装置:球払出装置97、演出表示装置9、ランプやLEDなどの発光体、スピーカ27等)を制御する。以下、主基板31を制御基板に含めて説明を行うことがある。その場合には、制御基板に搭載される制御手段は、遊技制御手段と、遊技制御手段等からの指令信号に従って遊技機に設けられている電気部品を制御する手段とのそれぞれを指す。
また、主基板31以外のマイクロコンピュータが搭載された基板をサブ基板ということがある。なお、球払出装置97は、遊技球を誘導する通路とステッピングモータ等により駆動されるスプロケット等によって誘導された遊技球を上皿や下皿に払い出すための装置であって、払い出された賞球や貸し球をカウントする払出個数カウントスイッチ等もユニットの一部として構成されている。なお、この実施の形態では、払出検出手段は、払出個数カウントスイッチ301によって実現され、球払出装置97から実際に賞球や貸し球が払い出されたことを検出する。払出個数カウントスイッチ301は、賞球や貸し球の払い出しを1球検出するごとに検出信号を出力する。
パチンコ遊技機1裏面において、上方には、各種情報をパチンコ遊技機1の外部に出力するための各端子を備えたターミナル基板160が設置されている。ターミナル基板160には、例えば、遊技枠が開放状態であることを示すドア開放信号を外部出力するためのドア開放信号用端子などが設けられている。
貯留タンク38に貯留された遊技球は誘導レール(図示せず)を通り、カーブ樋を経て払出ケース40Aで覆われた球払出装置97に至る。球払出装置97の上方には、遊技媒体切れ検出手段としての球切れスイッチ187が設けられている。球切れスイッチ187が球切れを検出すると、球払出装置97の払出動作が停止する。球切れスイッチ187は遊技球通路内の遊技球の有無を検出するスイッチであるが、貯留タンク38内の補給球の不足を検出する球切れ検出スイッチ167も誘導レールにおける上流部分(貯留タンク38に近接する部分)に設けられている。球切れ検出スイッチ167が遊技球の不足を検知すると、遊技機設置島に設けられている補給機構からパチンコ遊技機1に対して遊技球の補給が行なわれる。
入賞にもとづく景品としての遊技球や球貸し要求にもとづく遊技球が多数払出されて打球供給皿3が満杯になると、遊技球は、余剰球誘導通路を経て余剰球受皿4に導かれる。さらに遊技球が払出されると、感知レバー(図示せず)が貯留状態検出手段としての満タンスイッチを押圧して、貯留状態検出手段としての満タンスイッチがオンする。その状態では、球払出装置内の払出モータの回転が停止して球払出装置の動作が停止するとともに打球発射装置の駆動も停止する。
図4は、主基板(遊技制御基板)31における回路構成の一例を示すブロック図である。なお、図4には、払出制御基板37および演出制御基板80等も示されている。主基板31には、プログラムに従ってパチンコ遊技機1を制御する遊技制御用マイクロコンピュータ(遊技制御手段に相当)560が搭載されている。遊技制御用マイクロコンピュータ560は、ゲーム制御(遊技進行制御)用のプログラム等を記憶するROM54、ワークメモリとして使用される記憶手段としてのRAM55、プログラムに従って制御動作を行うCPU56およびI/Oポート部57を含む。この実施の形態では、ROM54およびRAM55は遊技制御用マイクロコンピュータ560に内蔵されている。すなわち、遊技制御用マイクロコンピュータ560は、1チップマイクロコンピュータである。1チップマイクロコンピュータには、少なくともRAM55が内蔵されていればよく、ROM54は外付けであっても内蔵されていてもよい。また、I/Oポート部57は、外付けであってもよい。
なお、遊技制御用マイクロコンピュータ560においてCPU56がROM54に格納されているプログラムに従って制御を実行するので、以下、遊技制御用マイクロコンピュータ560(またはCPU56)が実行する(または、処理を行う)ということは、具体的には、CPU56がプログラムに従って制御を実行することである。このことは、主基板31以外の他の基板に搭載されているマイクロコンピュータについても同様である。
また、遊技制御用マイクロコンピュータ560には、乱数回路503が内蔵されている。乱数回路503は、特別図柄の可変表示の表示結果により大当りとするか否か判定するための判定用の乱数を発生するために用いられるハードウェア回路である。乱数回路503は、初期値(例えば、0)と上限値(例えば、65535)とが設定された数値範囲内で、数値データを、設定された更新規則に従って更新し、ランダムなタイミングで発生する始動入賞時が数値データの読出(抽出)時であることにもとづいて、読み出される数値データが乱数値となる乱数発生機能を有する。
乱数回路503は、数値データの更新範囲の選択設定機能(初期値の選択設定機能、および、上限値の選択設定機能)、数値データの更新規則の選択設定機能、および数値データの更新規則の選択切換え機能等の各種の機能を有する。このような機能によって、生成する乱数のランダム性を向上させることができる。
また、遊技制御用マイクロコンピュータ560は、乱数回路503が更新する数値データの初期値を設定する機能を有している。例えば、ROM54等の所定の記憶領域に記憶された遊技制御用マイクロコンピュータ560のIDナンバ(遊技制御用マイクロコンピュータ560の各製品ごとに異なる数値で付与されたIDナンバ)を用いて所定の演算を行なって得られた数値データを、乱数回路503が更新する数値データの初期値として設定する。そのような処理を行うことによって、乱数回路503が発生する乱数のランダム性をより向上させることができる。
遊技制御用マイクロコンピュータ560は、始動口スイッチ14aへの始動入賞が生じたときに乱数回路503から数値データをランダムRとして読み出し、特別図柄および飾り図柄の変動開始時にランダムRにもとづいて特定の表示結果としての大当り表示結果にするか否か、すなわち、大当りとするか否かを決定する。そして、大当りとすると決定したときに、遊技状態を遊技者にとって有利な特定遊技状態としての大当り遊技状態に移行させる。
また、遊技制御用マイクロコンピュータ560には、払出制御基板37(の払出制御用マイクロコンピュータ370)とシリアル通信で信号を入出力(送受信)するためのシリアル通信回路505が内蔵されている。なお、払出制御用マイクロコンピュータ370にも、遊技制御用マイクロコンピュータ560とシリアル通信で信号を入出力するためのシリアル通信回路が内蔵されている(図5参照)。
また、RAM55は、その一部または全部が電源基板において作成されるバックアップ電源によってバックアップされている不揮発性記憶手段としてのバックアップRAMである。すなわち、遊技機に対する電力供給が停止しても、所定期間(バックアップ電源としてのコンデンサが放電してバックアップ電源が電力供給不能になるまで)は、RAM55の一部または全部の内容は保存される。特に、少なくとも、遊技状態すなわち遊技制御手段の制御状態に応じたデータ(特別図柄プロセスフラグや保留記憶数カウンタの値など)と未払出賞球数を示すデータは、バックアップRAMに保存される。遊技制御手段の制御状態に応じたデータとは、停電等が生じた後に復旧した場合に、そのデータにもとづいて、制御状態を停電等の発生前に復旧させるために必要なデータである。また、制御状態に応じたデータと未払出賞球数を示すデータとを遊技の進行状態を示すデータと定義する。なお、この実施の形態では、RAM55の全部が、電源バックアップされているとする。
遊技制御用マイクロコンピュータ560のリセット端子には、電源基板からのリセット信号が入力される。リセット信号がハイレベルになると遊技制御用マイクロコンピュータ560等は動作可能状態になる。また、遊技制御用マイクロコンピュータ560の入力ポートには、電源基板からの電源電圧が所定値以下に低下したことを示す電源断信号が入力される。また、遊技制御用マイクロコンピュータ560の入力ポートには、RAMの内容をクリアすることを指示するためのクリアスイッチが操作されたことを示すクリア信号(図示せず)が入力される。
また、ゲートスイッチ32a、始動口スイッチ14a、カウントスイッチ23、および各入賞口スイッチ29a,30aからの検出信号を基本回路53に与える入力ドライバ回路58も主基板31に搭載され、可変入賞球装置15を開閉するソレノイド16、および特別可変入賞球装置を開閉するソレノイド21をCPU56からの指令に従って駆動する出力回路59も主基板31に搭載され、大当り遊技状態の発生を示す大当り情報等の情報出力信号をホールコンピュータ等の外部装置に対して出力する情報出力回路(図示せず)も主基板31に搭載されている。
この実施の形態では、演出制御基板80に搭載されている演出制御手段(演出制御用マイクロコンピュータで構成される。)が、中継基板77を介して遊技制御用マイクロコンピュータ560からの演出制御コマンドを受信する。そして、演出制御手段が、演出制御コマンドを受信し、飾り図柄を可変表示する演出表示装置9の表示制御を行う。
図5は、払出制御基板37および球払出装置97などの払出に関連する構成要素を示すブロック図である。図5に示すように、払出制御基板37には、払出制御用CPU371を含む払出制御用マイクロコンピュータ370が搭載されている。この実施の形態では、払出制御用マイクロコンピュータ370は、1チップマイクロコンピュータであり、少なくともRAMが内蔵されている。払出制御用マイクロコンピュータ370、RAM(図示せず)、払出制御用プログラムを格納したROM(図示せず)およびI/Oポート等は、払出制御手段を構成する。すなわち、払出制御手段は、払出制御用CPU371、RAMおよびROMを有する払出制御用マイクロコンピュータ370と、I/Oポートとで実現される。また、I/Oポートは、払出制御用マイクロコンピュータ370に内蔵されていてもよい。
球切れスイッチ187、満タンスイッチ48および払出個数カウントスイッチ301からの検出信号は、中継基板72を介して払出制御基板37のI/Oポート372fに入力される。なお、この実施の形態では、払出個数カウントスイッチ301からの検出信号は、払出制御用マイクロコンピュータ370に入力されたあと、I/Oポート372aおよび出力回路373Bを介して主基板31に出力される。
また、払出モータ位置センサ295からの検出信号は、中継基板72を介して払出制御基板37のI/Oポート372eに入力される。払出モータ位置センサ295は、払出モータ289の回転位置を検出するための発光素子(LED)と受光素子とによるセンサであり、遊技球が詰まったこと、すなわちいわゆる球噛みを検出するために用いられる。払出制御基板37に搭載されている払出制御用マイクロコンピュータ370は、球切れスイッチ187からの検出信号が球切れ状態を示していたり、満タンスイッチ48からの検出信号が満タン状態を示していると、球払出処理を停止する。
さらに、満タンスイッチ48からの検出信号が満タン状態を示していると、払出制御用マイクロコンピュータ370は、打球発射装置からの球発射を停止させるために、発射基板90に対してローレベルの満タン信号を出力する。発射基板90のAND回路91が出力する発射モータ94への発射モータ信号は、発射基板90から発射モータ94に伝えられる。払出制御用マイクロコンピュータ370からの満タン信号は、発射基板90に搭載されたAND回路91の入力側の一方に入力され、駆動信号生成回路92からの駆動信号(発射モータ94を駆動するための信号であって、電源基板からの電源を供給する役割を果たす信号である。)は、AND回路91の入力側の他方に入力される。そして、AND回路91の発射モータ信号が発射モータ94に入力される。すなわち、払出制御用マイクロコンピュータ370が満タン信号を出力している間は、発射モータ94への発射モータ信号の出力が停止される。
払出制御用マイクロコンピュータ370には、遊技制御用マイクロコンピュータ560とシリアル通信で信号を入出力(送受信)するためのシリアル通信回路380が内蔵されている。
払出制御用マイクロコンピュータ370は、出力ポート372bを介して、賞球払出数を示す賞球情報信号および貸し球数を示す球貸し個数信号をターミナル基板(枠用外部端子基板と盤用外部端子基板とを含む)160に出力する。なお、出力ポート372bの外側に、ドライバ回路が設置されているが、図5では記載省略されている。
また、払出制御用マイクロコンピュータ370は、出力ポート372cを介して、7セグメントLEDによるエラー表示用LED374にエラー信号を出力する。さらに、出力ポート372bを介して、点灯/消灯を指示するための信号を賞球LED51および球切れLED52に出力する。なお、払出制御基板37の入力ポート372fには、エラー状態を解除するためのエラー解除スイッチ375からの検出信号が入力される。エラー解除スイッチ375は、ソフトウェアリセットによってエラー状態を解除するために用いられる。
さらに、払出制御用マイクロコンピュータ370からの払出モータ289への駆動信号は、出力ポート372aおよび中継基板72を介して球払出装置97の払出機構部分における払出モータ289に伝えられる。なお、出力ポート372aの外側に、ドライバ回路(モータ駆動回路)が設置されているが、図5では記載省略されている。
遊技機に隣接して設置されているカードユニット50には、カードユニット制御用マイクロコンピュータが搭載されている。また、カードユニット50には、使用可表示ランプ、連結台方向表示器、カード投入表示ランプおよびカード挿入口が設けられている。インタフェース基板(中継基板)66には、打球供給皿3の近傍に設けられている度数表示LED60、球貸し可LED61、球貸しスイッチ62および返却スイッチ63が接続される。
インタフェース基板66からカードユニット50には、遊技者の操作に応じて、球貸しスイッチ62が操作されたことを示す球貸しスイッチ信号および返却スイッチ63が操作されたことを示す返却スイッチ信号が与えられる。また、カードユニット50からインタフェース基板66には、プリペイドカードの残高を示すカード残高表示信号および球貸し可表示信号が与えられる。カードユニット50と払出制御基板37の間では、接続信号(VL信号)、ユニット操作信号(BRDY信号)、球貸し要求信号(BRQ信号)、球貸し完了信号(EXS信号)およびパチンコ機動作信号(PRDY信号)が入力ポート372fおよび出力ポート372dを介して送受信される。カードユニット50と払出制御基板37の間には、インタフェース基板66が介在している。よって、接続信号(VL信号)等の信号は、図5に示すように、インタフェース基板66を介してカードユニット50と払出制御基板37の間で送受信される。
パチンコ遊技機1の電源が投入されると、払出制御基板37に搭載されている払出制御用マイクロコンピュータ370は、カードユニット50にPRDY信号を出力する。また、カードユニット制御用マイクロコンピュータは、電源が投入されると、VL信号を出力する。払出制御用マイクロコンピュータ370は、VL信号の入力状態によってカードユニット50の接続状態/未接続状態を判定する。カードユニット50においてカードが受け付けられ、球貸しスイッチが操作され球貸しスイッチ信号が入力されると、カードユニット制御用マイクロコンピュータは、払出制御基板37にBRDY信号を出力する。この時点から所定の遅延時間が経過すると、カードユニット制御用マイクロコンピュータは、払出制御基板37にBRQ信号を出力する。
そして、払出制御用マイクロコンピュータ370は、カードユニット50に対するEXS信号を立ち上げ、カードユニット50からのBRQ信号の立ち下がりを検出すると、払出モータ289を駆動し、所定個の貸し球を遊技者に払い出す。そして、払出が完了したら、払出制御用マイクロコンピュータ370は、カードユニット50に対するEXS信号を立ち下げる。その後、カードユニット50からのBRDY信号がオン状態でないことを条件に、遊技制御手段から払出指令信号を受けると賞球払出制御を実行する。
また、この実施の形態では、カードユニット50が遊技機とは別体として遊技機に隣接して設置されている場合を例にするが、カードユニット50は遊技機と一体化されていてもよい。
図6は、中継基板77および演出制御基板80の回路構成例を示すブロック図である。図6は、中継基板77、演出制御基板80、ランプドライバ基板35および音声出力基板70の回路構成例を示すブロック図である。なお、図6に示す例では、ランプドライバ基板35および音声出力基板70には、マイクロコンピュータは搭載されていないが、マイクロコンピュータを搭載してもよい。また、ランプドライバ基板35および音声出力基板70を設けずに、演出制御に関して演出制御基板80のみを設けてもよい。
演出制御基板80は、演出制御用CPU101a、および演出制御プロセスフラグ等の演出に関する情報を記憶するRAMを含む演出制御用マイクロコンピュータ100を搭載している。なお、RAMは外付けであってもよい。この実施の形態では、演出制御用マイクロコンピュータ100におけるRAMは電源バックアップされていない。演出制御基板80において、演出制御用CPU101aは、内蔵または外付けのROM(図示せず)に格納されたプログラムに従って動作する。また、演出制御用マイクロコンピュータ100は、遊技制御用マイクロコンピュータ560とシリアル通信で信号を入出力(送受信)するシリアル通信回路101bを内蔵している。また、演出制御用CPU101aは、演出制御コマンドにもとづいて、VDP(ビデオディスプレイプロセッサ)109に演出表示装置9の表示制御を行わせる。
この実施の形態では、演出制御用マイクロコンピュータ100と共動して演出表示装置9の表示制御を行うVDP109が演出制御基板80に搭載されている。VDP109は、演出制御用マイクロコンピュータ100とは独立したアドレス空間を有し、そこにVRAMをマッピングする。VRAMは、画像データを展開するためのバッファメモリである。そして、VDP109は、VRAM内の画像データをフレームメモリを介して演出表示装置9に出力する。
演出制御用CPU101aは、受信した演出制御コマンドに従ってCGROM(図示せず)から必要なデータを読み出すための指令をVDP109に出力する。CGROMは、演出表示装置9に表示されるキャラクタ画像データや動画像データ、具体的には、人物、文字、図形や記号等(飾り図柄を含む)、および背景画像のデータをあらかじめ格納しておくためのROMである。VDP109は、演出制御用CPU101aの指令に応じて、CGROMから画像データを読み出す。そして、VDP109は、読み出した画像データにもとづいて表示制御を実行する。
さらに、演出制御用CPU101aは、出力ポート105を介してランプドライバ基板35に対してLEDを駆動する信号を出力する。また、演出制御用CPU101aは、出力ポート104を介して音声出力基板70に対して音番号データを出力する。
ランプドライバ基板35において、LEDやランプを駆動する信号は、入力ドライバ351を介してランプドライバ352に入力される。ランプドライバ352は、ランプを駆動する信号にもとづいて天枠ランプ28a、左枠ランプ28b、右枠ランプ28cなどの枠側に設けられている発光体に電流を供給する。また、遊技盤側に設けられている装飾ランプ25に電流を供給する。
音声出力基板70において、音番号データは、入力ドライバ702を介して音声合成用IC703に入力される。音声合成用IC703は、音番号データに応じた音声や効果音を発生し増幅回路705に出力する。増幅回路705は、音声合成用IC703の出力レベルを、ボリューム706で設定されている音量に応じたレベルに増幅した音声信号をスピーカ27に出力する。音声データROM704には、音番号データに応じた制御データが格納されている。音番号データに応じた制御データは、所定期間(例えば飾り図柄の変動期間)における効果音または音声の出力態様を時系列的に示すデータの集まりである。
図7は、シリアル通信回路505に内蔵されているデータレジスタの例を示す説明図である。データレジスタは、シリアル通信回路505が送受信するデータを格納するレジスタである。図7に示すように、データレジスタは、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、データレジスタは、ビット0〜ビット7が書込および読出ともに可能な状態に構成されている。
この実施の形態では、シリアル通信回路505が送信データを送信する場合、データレジスタは、送信データレジスタとして用いられる。また、シリアル通信回路505が受信データを受信する場合、データレジスタは、受信データレジスタとして用いられる。
シリアル通信回路505に内蔵されている割り込み制御回路は、CPU56に各種割り込み要求を行う。例えば、割り込み制御回路は、送信データレジスタに送信データの送信を完了した状態になると、CPU56に割り込み信号を出力するとともに、シリアル通信回路505に内蔵されているステータスレジスタのビット6(TC)に「1」を設定することによって割り込み要求を行う。なお、ステータスレジスタのビットの設定値により割込要因を識別可能とするのでなく、割り込み制御回路は、割込要因毎に異なる割り込み信号をCPU56に出力するようにしてもよい。
また、割り込み制御回路は、受信データレジスタに受信データが格納されている状態になると(受信データフルを検出すると)、CPU56に割り込み信号を出力するとともに、ステータスレジスタのビット5(RDRF)に「1」を設定することによって割り込み要求を行う。
また、割り込み制御回路は、各種通信エラーが発生すると、CPU56に割り込み信号を出力するとともに、通信エラーの種類に応じて、ステータスレジスタのビット0〜ビット3に「1」を設定することによって割り込み要求を行う。
図8は、大当り判定用テーブルメモリの一例を示す説明図である。大当り判定用テーブルメモリは、CPU56が特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定するために用いる複数の大当り判定テーブルを記憶する。具体的には、大当り判定用テーブルメモリは、図8(A)に示すように、確変状態以外の遊技状態(通常状態という)において用いられる通常時大当り判定テーブルを記憶する。また、大当り判定用テーブルメモリは、図8(B)に示すように、確変状態において用いられる確変時大当り判定テーブルを格納する。
図9および図10は、遊技制御手段における出力ポートの割り当ての例を示す説明図である。図9に示すように、出力ポート0は払出制御基板37に送信される払出制御信号(この実施の形態では、接続信号)の出力ポートである。また、出力ポート1は大入賞口を開閉する可変入賞球装置20を開閉するためのソレノイド(大入賞口扉ソレノイド)21および可変入賞球装置15を開閉するためのソレノイド(普通電動役物ソレノイド)16の出力ポートである。
そして、出力ポート2から、情報出力回路64を介して情報端子板34やターミナル基板160に至る各種情報出力用信号すなわち制御に関わる情報の出力データが出力される。
図11は、遊技制御手段における入力ポートのビット割り当ての例を示す説明図である。図11に示すように、入力ポート0のビット0〜4には、それぞれ、カウントスイッチ23、ゲートスイッチ32a、入賞口スイッチ29a,30a、始動口スイッチ14aの検出信号が入力される。入力ポート0のビット7には、払出制御基板70からの賞球情報が入力される。また、入力ポート1のビット0,1には、それぞれ、電源基板910からの電源断信号およびクリアスイッチ921の検出信号が入力される。
次に遊技機の動作について説明する。図12および図13は、遊技機に対して電力供給が開始され遊技制御用マイクロコンピュータ560へのリセット信号がハイレベルになったことに応じて遊技制御用マイクロコンピュータ560のCPU56が実行するメイン処理を示すフローチャートである。リセット信号が入力されるリセット端子の入力レベルがハイレベルになると、遊技制御用マイクロコンピュータ560のCPU56は、プログラムの内容が正当か否かを確認するための処理であるセキュリティチェック処理を実行した後、ステップS1以降のメイン処理を開始する。メイン処理において、CPU56は、まず、必要な初期設定を行う。
初期設定処理において、CPU56は、まず、割込禁止に設定する(ステップS1)。次に、マスク可能割込の割込モードを設定し(ステップS2)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS3)。なお、ステップS2では、遊技制御用マイクロコンピュータ560の特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビット0)から合成されるアドレスが、割込番地を示すモードに設定する。また、マスク可能な割込が発生すると、CPU56は、自動的に割込禁止状態に設定するとともに、プログラムカウンタの内容をスタックにセーブする。
次いで、CPU56は、払出制御用マイクロコンピュータ370に対して、接続信号の出力を開始する(ステップS4)。なお、CPU56は、ステップS4の処理で接続信号の出力を開始した後、遊技機の電源供給が停止したり、何らかの通信エラーが生じて出力不能とならない限り、払出制御用マイクロコンピュータ370に対して接続信号を継続して出力する。
次いで、内蔵デバイスレジスタの設定(初期化)を行う(ステップS5)。ステップS4の処理によって、内蔵デバイス(内蔵周辺回路)であるCTC(カウンタ/タイマ)およびPIO(パラレル入出力ポート)の設定(初期化)がなされる。この実施の形態で用いられる遊技制御用マイクロコンピュータ560は、I/Oポート(PIO)およびタイマ/カウンタ回路(CTC)も内蔵している。また、CPU56は、RAM55をアクセス可能状態に設定する(ステップS6)。
次いで、CPU56は、クリアスイッチがオンされているか否か確認する(ステップS7)。クリアスイッチがオンでない場合には、遊技機への電力供給が停止したときにバックアップRAM領域のデータ保護処理(例えばパリティデータの付加等の電力供給停止時処理)が行われたか否か確認する(ステップS8)。この実施の形態では、CPU56は、電力供給の停止が生じた場合に、バックアップRAM領域のデータを保護するための電力供給停止時処理を行う。電力供給停止時処理においてバックアップフラグ領域に電力供給停止時処理を実行したことを示すフラグをセットする。そして、ステップS8の処理で、CPU56は、そのフラグがセットされていることを確認したら電力供給停止時処理が行われたと判定する。
電力供給停止時の制御状態が保存されていると判定したら、CPU56は、バックアップRAM領域のデータチェック(この例では、チェックサムの算出)を行う(ステップS9)。
電力供給停止時処理でも、チェックサムが算出され、チェックサムはバックアップRAM領域に保存されている。ステップS9では、CPU56は、算出したチェックサムと保存されているチェックサムとを比較する。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップRAM領域のデータは保存されているはずであるから、チェック結果(比較結果)は正常(一致)になる。チェック結果が正常でない場合には、初期化処理(ステップS10〜S14の処理)を実行する。
チェック結果が正常であれば、CPU56は、遊技制御手段の内部状態と演出制御手段等の電気部品制御手段の制御状態を電力供給停止時の状態に戻すための遊技状態復旧処理を行う。具体的には、ROM54に格納されているバックアップ時設定テーブルの先頭アドレスをポインタに設定し(ステップS91)、バックアップ時設定テーブルの内容を順次作業領域(RAM55内の領域)に設定する(ステップS92)。作業領域はバックアップ電源によって電源バックアップされている。バックアップ時設定テーブルには、作業領域のうち初期化してもよい領域についての初期化データが設定されている。ステップS91およびS92の処理によって、作業領域のうち初期化してはならない部分については、保存されていた内容がそのまま残る。初期化してはならない部分とは、例えば、電力供給停止前の遊技状態を示すデータ(特別図柄プロセスフラグなど)、出力ポートの出力状態が保存されている領域(出力ポートバッファ)、未払出賞球数を示すデータが設定されている部分などである。
また、CPU56は、ROM54に格納されているバックアップ時コマンド送信テーブルの先頭アドレスをポインタに設定し(ステップS93)、ステップS15に移行する。ステップS93でポインタの設定が行われた後、ステップS15aのシリアル通信回路設定処理が行われてからバックアップコマンドが送信される。
初期化処理では、CPU56は、まず、RAMクリア処理を行う(ステップS10)。なお、RAM55の全領域を初期化せず、所定のデータをそのままにしてもよい。また、ROM54に格納されている初期化時設定テーブルの先頭アドレスをポインタに設定し(ステップS11)、初期化時設定テーブルの内容を順次業領域に設定する(ステップS12)。
ステップS11およびS12の処理によって、例えば、普通図柄判定用乱数カウンタ、普通図柄判定用バッファ、特別図柄バッファ、特別図柄プロセスフラグ、賞球中フラグ、球切れフラグなど制御状態に応じて選択的に処理を行うためのフラグに初期値が設定される。また、出力ポートバッファにおける接続確認信号を出力する出力ポートに対応するビットがセット(接続確認信号のオン状態に対応)される。なお、出力ポートバッファにおける接続確認信号を出力する出力ポートに対応するビットがセットされると、ステップS31の出力処理によって接続確認信号を出力する出力ポート0に対応するビットが出力される。
また、CPU56は、ROM54に格納されている初期化時コマンド送信テーブルの先頭アドレスをポインタに設定し(ステップS13)、その内容に従ってサブ基板を初期化するための初期化コマンドをサブ基板に送信する処理を実行する(ステップS14)。初期化コマンドとして、演出表示装置9に表示される初期図柄を示すコマンドや払出制御基板37への初期化コマンド等を使用することができる。なお、ステップS13でポインタの設定が行われた後、ステップS15aのシリアル通信回路設定処理が行われてから初期化コマンドが送信されることになる。
また、CPU56は、各乱数回路503を初期設定する乱数回路設定処理を実行する(ステップS15)。すなわち、各乱数回路503にランダムRの値を更新させるための設定を行う。
また、CPU56は、シリアル通信回路505を初期設定するシリアル通信回路設定処理を実行する(ステップS15a)。この場合、CPU56は、シリアル通信回路設定プログラムに従ってROM54の所定領域に格納されているデータをシリアル通信回路505に設定することによって、シリアル通信回路505に払出制御用マイクロコンピュータとシリアル通信させるための設定を行う。
次に、図14は、シリアル通信回路設定処理を示すフローチャートである。シリアル通信回路設定処理において、CPU56は、まず、シリアル通信回路505のボーレートを設定する(ステップS1511)。また、CPU56は、シリアル通信回路505が送受信するデータのデータフォーマットを設定する(ステップS1512)。例えば、送受信データのデータ長(8ビットまたは9ビット)やパリティ機能の使用の有無を設定する。
また、CPU56は、シリアル通信回路505が発生する各割込要求を許可するか否かを設定する(ステップS1513)。例えば、CPU56は、送信時割り込み要求(データの送信時に行う割り込み要求である送信割り込み要求や、送信完了時に行う送信完了割り込み要求)および受信時割り込み要求を許可するか否かを設定する。
シリアル通信回路505を初期設定すると、CPU56は、シリアル通信回路505の割り込み要求に応じて実行する割込処理の優先順位を初期設定する(ステップS15b)。例えば、CPU56は、通信エラーが発生したことを割込原因とする割込処理の優先順位を高く設定する。
なお、この実施の形態では、タイマ割込とシリアル通信回路505からの割り込み要求とが同時に発生した場合、CPU56は、タイマ割込による割込処理を優先して行う。
そして、CPU56は、所定時間(例えば4ms)ごとに定期的にタイマ割込がかかるように遊技制御用マイクロコンピュータ560に内蔵されているCTCのレジスタの設定を行なうタイマ割込設定処理を実行する(ステップS16)。すなわち、初期値として例えば4msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。この実施の形態では、4msごとに定期的にタイマ割込がかかるとする。
タイマ割込の設定が完了すると、CPU56は、まず、割込禁止状態にして(ステップS17)、初期値用乱数更新処理(ステップS18a)と表示用乱数更新処理(ステップS18b)を実行して、再び割込許可状態にする(ステップS19)。すなわち、CPU56は、初期値用乱数更新処理および表示用乱数更新処理が実行されるときには割込禁止状態にして、初期値用乱数更新処理および表示用乱数更新処理の実行が終了すると割込許可状態にする。
なお、初期値用乱数更新処理とは、初期値用乱数を発生するためのカウンタのカウント値を更新する処理である。初期値用乱数とは、大当りの種類を決定するための判定用乱数(例えば、大当りを発生させる特別図柄を決定するための大当り図柄決定用乱数や、遊技状態を確変状態に移行させるかを決定するための確変決定用乱数、普通図柄にもとづく当りを発生させるか否かを決定するための普通図柄当たり判定用乱数)を発生するためのカウンタ(判定用乱数発生カウンタ)等のカウント値の初期値を決定するための乱数である。後述する遊技制御処理(遊技制御用マイクロコンピュータが、遊技機に設けられている演出表示装置9、可変入賞球装置15、球払出装置97等の遊技用の装置を、自身で制御する処理、または他のマイクロコンピュータに制御させるために指令信号を送信する処理、遊技装置制御処理ともいう)において、判定用乱数発生カウンタのカウント値が1周すると、そのカウンタに初期値が設定される。
また、表示用乱数として、特別図柄の変動パターンを決定するための変動パターン決定用乱数や、大当りを発生させない場合にリーチとするか否かを決定するためのリーチ判定用乱数がある。表示用乱数更新処理とは、表示用乱数を発生するためのカウンタのカウント値を更新する処理である。
ステップS19で割込許可状態に設定されると、次にステップS17の処理が実行されて割込禁止状態にされるまで、タイマ割込またはシリアル通信回路505からの割り込み要求を許可する状態になる。そして、割込許可状態に設定されている間に、タイマ割込が発生すると、遊技制御用マイクロコンピュータ560のCPU56は、後述するタイマ割込処理を実行する。また、割込許可状態に設定されている間に、シリアル通信回路505から割り込み要求が発生すると、遊技制御用マイクロコンピュータ560のCPU56は、各割込処理(通信エラー割込処理や、受信時割込処理、送信完了割込処理)を実行する。
なお、ステップS15およびステップS15aの処理をステップS1の処理の前に実行してもよく、また、ステップS1の処理が実行される前に自動的に初期設定がなされるような遊技制御用マイクロコンピュータ560を用いてもよい。
次に、タイマ割込処理について説明する。図15は、タイマ割込処理を示すフローチャートである。メイン処理の実行中に、具体的には、ステップS17〜S19のループ処理の実行中における割込許可になっている期間において、タイマ割込が発生すると、遊技制御用マイクロコンピュータ560のCPU56は、タイマ割込の発生に応じて起動されるタイマ割込処理を実行する。タイマ割込処理において、CPU56は、まず、電源断信号が出力されたか否か(オン状態になったか否か)を検出する電源断処理(電源断検出処理)を実行する(ステップS21)。そして、CPU56は、入力ドライバ回路58を介して、ゲートスイッチ32a、始動口スイッチ14a、カウントスイッチ23、および入賞口スイッチ29a,30aの検出信号を入力し、各スイッチの入力を検出する(スイッチ処理:ステップS22)。具体的には、各スイッチの検出信号を入力する入力ポートの状態がオン状態であれば、各スイッチに対応して設けられているスイッチタイマの値を+1する。
次に、CPU56は、表示用乱数を生成するためのカウンタのカウント値を更新する処理を行う(表示用乱数更新処理:ステップS23)。また、CPU56は、初期値用乱数を発生するためのカウンタのカウント値を更新する処理を行う(初期値用乱数更新処理:ステップS24)。
次いで、CPU56は、特別図柄の変動に同期する飾り図柄に関する演出制御コマンド等を演出制御用マイクロコンピュータ100に送信する処理を行う(コマンド制御処理:ステップS25)。なお、飾り図柄の変動が特別図柄の変動に同期するとは、変動時間(可変表示期間)が同じであることを意味する。
また、CPU56は、CPU56は、シリアル通信回路505を介して、払出制御用マイクロコンピュータ370と信号を送受信(入出力)する処理を実行するとともに、入賞が発生した場合には入賞口スイッチ29a,30a等の検出信号にもとづく賞球個数の設定などを行う賞球処理を実行する(ステップS26)。なお、この実施の形態では、入賞口スイッチ29a,30a等がオンしたことにもとづく入賞検出に応じて、賞球個数コマンドの下位4ビットを異ならせることにより賞球個数を示すデータを賞球個数コマンドに設定し、当該設定した賞球個数コマンドをシリアル通信回路505を介して払出制御用マイクロコンピュータ370に出力する。払出制御基板37に搭載されている払出制御用マイクロコンピュータ370は、賞球個数を示すデータが設定された賞球個数コマンドの受信に応じて球払出装置97を駆動する。
また、CPU56は、特別図柄プロセス処理を行う(ステップS27)。特別図柄プロセス処理では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。また、普通図柄プロセス処理を行う(ステップS28)。普通図柄プロセス処理では、普通図柄表示器10の表示状態を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。
また、CPU56は、例えばホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する情報出力処理を行う(ステップS29)。
また、CPU56は、遊技機の制御状態を遊技機外部で確認できるようにするための試験信号を出力する処理である試験端子処理を実行する(ステップS30)。また、この実施の形態では、出力ポートの出力状態に対応したRAM領域(出力ポートバッファ)が設けられているのであるが、CPU56は、出力ポート0のRAM領域における接続確認信号に関する内容および出力ポート2のRAM領域におけるソレノイドに関する内容を出力ポートに出力する(ステップS31:出力処理)。
その後、割込許可状態に設定し(ステップS32)、処理を終了する。
以上の制御によって、この実施の形態では、遊技制御処理は4ms毎に起動されることになる。なお、遊技制御処理は、タイマ割込処理におけるステップS22〜S31(ステップS29,S30を除く。)の処理に相当する。また、この実施の形態では、タイマ割込処理で遊技制御処理が実行されているが、タイマ割込処理では例えば割込が発生したことを示すフラグのセットのみがなされ、遊技制御処理はメイン処理において実行されるようにしてもよい。
次に、特別図柄および大入賞口の制御を説明する。図16は、遊技制御用マイクロコンピュータ560のCPU56が実行する特別図柄プロセス処理(ステップS27)のプログラムの一例を示すフローチャートである。遊技制御用マイクロコンピュータ560のCPU56は、遊技盤6に設けられている始動入賞口14に遊技球が入賞したことを検出するための始動口スイッチ14aがオンしていたら、すなわち遊技球が始動入賞口14に入賞し、入賞検出信号SSが始動口スイッチ14aから入力されていたら(ステップS311)、乱数の抽出および記憶等を行う始動口スイッチ通過処理(ステップS312)を行った後に、内部状態(具体的には、特別図柄プロセスフラグの値)に応じて、ステップS300〜S306のうちのいずれかの処理を行う。
特別図柄通常処理(ステップS300):特別図柄の可変表示を開始できる状態(例えば、特別図柄表示器8において図柄の変動がなされておらず、特別図柄表示器8における前回の図柄変動が終了してから所定期間が経過しており、かつ、大当り遊技中でもない状態)になるのを待つ。特別図柄の可変表示が開始できる状態になると、特別図柄についての始動入賞記憶数を確認する。始動入賞記憶数が0でなければ、特図保留メモリに記憶されている乱数回路503が発生したランダムRにもとづいて、特別図柄の可変表示の結果を大当りとするか否か決定する。また、大当りとすると決定した場合には、さらに、確変大当りとするか否かなど大当り種別を決定し、決定した表示結果を特定可能な表示結果指定コマンドを演出制御用マイクロコンピュータ100に送信する制御を行う。そして、内部状態(特別図柄プロセスフラグ)をステップS301に移行するように更新する。
変動時間設定処理(ステップS301):変動パターンを決定し、その変動パターンにおける変動時間(可変表示時間:可変表示を開始してから表示結果が導出表示(停止表示)するまでの時間)を特別図柄の可変表示の変動時間とすることに決定する。また、決定した変動パターンを指定する変動パターンコマンドを演出制御用マイクロコンピュータ100に送信する制御を行うとともに、決定した特別図柄の変動時間を計測する変動時間タイマをスタートさせる。そして、内部状態(特別図柄プロセスフラグ)をステップS302に移行するように更新する。
特別図柄変動処理(ステップS302):所定時間(ステップS301の変動時間タイマで示された時間)が経過すると、内部状態(特別図柄プロセスフラグ)をステップS303に移行するように更新する。
特別図柄停止処理(ステップS303):演出制御基板80に対して、飾り図柄の停止を指示するための図柄確定指定コマンドを送信する。また、特別図柄表示器8における特別図柄を停止させる。そして、特別図柄の停止図柄が大当り図柄である場合には、内部状態(特別図柄プロセスフラグ)をステップS304に移行するように更新する。そうでない場合には、内部状態をステップS300に移行するように更新する。なお、図柄確定指定コマンドを送信しなくてもよい。その場合には、演出制御用マイクロコンピュータ100は、主基板31から受信した変動パターンコマンドにもとづく変動時間が経過したときに飾り図柄を停止する処理を行う。
大入賞口開放前処理(ステップS304):大入賞口を開放する制御を開始する。具体的には、カウンタ(例えば大入賞口に入った遊技球数をカウントするカウンタ)やフラグ(入賞口への入賞を検出する際に用いられるフラグ)を初期化するとともに、ソレノイド21を駆動して大入賞口を開放する。また、プロセスタイマによって大入賞口開放中処理の実行時間を設定し、大当り中フラグをセットする。そして、内部状態(特別図柄プロセスフラグ)をステップS305に移行するように更新する。
大入賞口開放中処理(ステップS305):大入賞口ラウンド表示の演出制御コマンドを演出制御基板80に送出する制御や大入賞口の閉成条件(例えば、大入賞口に所定個数(例えば10個)の遊技球が入賞したこと)の成立を確認する処理等を行う。大入賞口の閉成条件が成立したら、まだ残りラウンドがある場合には、内部状態(特別図柄プロセスフラグ)をステップS304に移行するように更新する。また、全てのラウンドを終えた場合には、内部状態(特別図柄プロセスフラグ)をステップS306に移行するように更新する。
大当り終了処理(ステップS306):大当り遊技状態が終了したことを遊技者に報知する表示制御を演出制御手段に行わせるための制御を行う。そして、内部状態(特別図柄プロセスフラグ)をステップS300に移行するように更新する。
次に、主基板31と払出制御基板37との間で送受信される払出制御信号および払出制御コマンドについて説明する。図17は、遊技制御手段から払出制御手段に対して出力される制御信号の内容の一例を示す説明図である。この実施の形態では、払出制御等に関する各種の制御を行うために、主基板31と払出制御基板37との間で制御信号として接続信号および賞球情報が送受信される。
図17に示すように、接続信号は、主基板31の立ち上がり時(遊技制御手段が遊技制御処理を開始したとき)に出力され、払出制御基板37に対して主基板31が立ち上がったことを通知するための信号(主基板31の接続信号)である。また、接続信号は、賞球払出が可能な状態であることを示す。なお、接続信号は、遊技制御用マイクロコンピュータ560のI/Oポート57および出力回路67Aを介して出力され、払出制御用マイクロコンピュータ370の入力回路373AおよびI/Oポート372eを介して払出制御用マイクロコンピュータ370に入力される。接続信号は、1ビットのデータであり、1本の信号線によって送信される。なお、接続信号は、電源投入時に実行されるステップS4の処理によって出力ポート0の接続信号に対応するビットに初期値が設定されることによって出力可能な状態となる(具体的にはステップS31の処理によって出力されるが、ステップS4のタイミングで出力されるようにしてもよい)。
払出制御用マイクロコンピュータ370は、遊技制御用マイクロコンピュータ560と同様に、シリアル通信回路380を内蔵する。また、遊技制御用マイクロコンピュータ560が内蔵するシリアル通信回路505と、払出制御用マイクロコンピュータ370が内蔵するシリアル通信回路380との間で、各種払出制御コマンドが送受信される。なお、払出制御用マイクロコンピュータ370が内蔵するシリアル通信回路380の構成および機能は、遊技制御用マイクロコンピュータ560が内蔵するシリアル通信回路505の構成および機能と同様である。
また、賞球情報は、払出制御基板37側において賞球の払出を10個検出するごとに、主基板31に対して、10個の賞球払出を検出したことを通知するための情報である。なお、賞球情報は、払出制御用マイクロコンピュータ370のI/Oポート372aおよび出力回路373Bを介して出力され、遊技制御用マイクロコンピュータ560の入力回路67BおよびI/Oポート57を介して遊技制御用マイクロコンピュータ560に入力される。賞球情報は、1ビットのデータであり、1本の信号線によって送信される。
図18は、遊技制御手段と払出制御手段との間で送受信される制御コマンドの内容の一例を示す説明図である。この実施の形態では、払出制御等に関する各種の制御を行うために、主基板31と払出制御基板37とのマイクロコンピュータの間で各種払出制御コマンドが送受信される。
上述したように、払出制御コマンドは、8ビットのデータ(2進8桁のデータ)によって構成され、設定された8ビットのデータの内容によって所定の内容を示す制御コマンドとして出力される。
接続確認コマンドは、遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370との間の接続状態が正常であるか否かを確認するために一定間隔(1秒(1s))毎に遊技制御用マイクロコンピュータ560から送信される制御コマンドである。接続確認コマンドのデータの内容は「A0(H)」すなわち「10100000」である。
接続OKコマンドは、遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370との間の接続状態が正常であることを通知するための制御コマンドであって、払出制御用マイクロコンピュータ370が接続確認コマンドの受信に応じて応答信号として送信する制御コマンドである。接続OKコマンドのデータの内容は「8x(H)」すなわち「1000xxxx」である。ここで、接続OKコマンドの2バイト目の「xxxx」については、図19に示すように、賞球エラー(入賞にもとづく賞球払出動作や球貸し要求にもとづく球貸払出動作が正常に行えない状態になった異常状態)が発生した場合には、1ビット目(ビット0)の「x」に「1」が設定される。また、満タンエラーが発生した場合には、2ビット目(ビット1)の「x」に「1」が設定される。また、球切れエラーが発生した場合には、3ビット目(ビット2)の「x」に「1」が設定される。また、賞球や貸し球の払出数の個数異常の累積値が所定値(例えば、2000個)に達した場合の払出個数異常エラーが発生した場合には、4ビット目(ビット3)の「x」に「1」が設定される。
このように、遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370との間の接続確認を行っている最中に、払出制御用マイクロコンピュータ370における所定のエラーの発生を遊技制御用マイクロコンピュータ560に通知することができる。なお、図19に示す例では、接続OKコマンドに、制御状態として払い出しに関するエラー(賞球エラーや、満タンエラー、球切れエラー、払出個数異常エラー)を示す値を設定する場合を示したが、エラー以外の制御状態を接続OKコマンドに設定するようにしてもよい。例えば、払出制御用マイクロコンピュータ370は、賞球払出動作中である旨や貸し球払出動作中である旨を示す値を制御状態として接続OKコマンドにセットして、遊技制御用マイクロコンピュータ560に送信するようにしてもよい。
賞球個数コマンドは、払出要求を行う遊技球の個数(0〜15個)を通知するための制御コマンドであって、遊技制御用マイクロコンピュータ560が入賞の発生にもとづいて送信する制御コマンドである。賞球個数コマンドのデータの内容は「5x(H)」すなわち「0101xxxx」とされている。この実施の形態では、始動口スイッチ14aで遊技球が検出されると3個の賞球払出を行い、入賞口スイッチ29a,30aのいずれかで遊技球が検出されると10個の賞球払出を行い、カウントスイッチ23で遊技球が検出されると15個の賞球払出を行う。よって、始動口スイッチ14aで遊技球が検出された場合、賞球数3個を通知するための賞球個数コマンド「01010011」が送信され、入賞口スイッチ29a,30aのいずれかで遊技球が検出された場合、賞球数10個を通知するための賞球個数コマンド「01011010」が送信され、カウントスイッチ23で遊技球が検出された場合、賞球数15個を通知するための賞球個数コマンド「01011111」が送信される。
賞球個数受付コマンドは、賞球個数コマンドで指定された賞球個数を受け付けたことを通知するための制御コマンドであって、払出制御用マイクロコンピュータ370が賞球個数コマンドの受信に応じて応答信号として送信する制御コマンドである。賞球個数受付コマンドのデータの内容は「70(H)」すなわち、「01110000」である。
賞球終了コマンドは、賞球動作(賞球払出動作)が終了したことを示す制御コマンドであって、払出制御用マイクロコンピュータ370が賞球動作の終了にもとづいて送信する制御コマンドである。賞球終了コマンドのデータの内容は「50(H)」すなわち「01010000」である。
賞球準備中コマンドは、賞球動作に時間がかかっている場合や、貸し球動作中であったり所定のエラーが発生したりして賞球動作が終了していないことを通知する制御コマンドである。賞球準備中コマンドのデータの内容は「4x(H)」すなわち「0100xxxx」である。ここで、賞球準備中コマンドの2バイト目の「xxxx」については、図19に示すように、賞球エラーが発生した場合には、1ビット目(ビット0)の「x」に「1」が設定される。また、満タンエラーが発生した場合には、2ビット目(ビット1)の「x」に「1」が設定される。また、球切れエラーが発生した場合には、3ビット目(ビット2)の「x」に「1」が設定される。また、賞球や貸し球の払出数の個数異常の累積値が所定値(例えば、2000個)に達した場合の払出個数異常エラーが発生した場合には、4ビット目(ビット3)の「x」に「1」が設定される。このようにして、払出制御用マイクロコンピュータ370から、賞球動作に時間がかかっている場合や、貸し球動作中であったり賞球動作の実行中に所定のエラーが発生したりして賞球動作が終了していないことを遊技制御用マイクロコンピュータ560に通知することができるとともに、エラーの内容も遊技制御用マイクロコンピュータ560に通知することができる。
なお、この実施の形態では、接続確認信号は払出制御コマンドのうちの接続確認コマンドによって実現され、応答信号は接続OKコマンドによって実現され、払出数信号は賞球個数コマンドによって実現され、受付信号は賞球個数受付コマンドによって実現され、払出終了信号は賞球終了コマンドによって実現され、払出中信号は賞球準備中コマンドによって実現される。
図20は、不正行為の一例を説明するための説明図である。図20(A)には、遊技球を検出可能な検出手段の一例である近接スイッチが示されている。なお、図20(A)には、近接スイッチがカウントスイッチ23として用いられている例が示されている。カウントスイッチ23の一方の端子には、電源基板910から+12V電源電圧が供給されている。カウントスイッチ23の他方の端子の電圧レベルである検出信号は、主基板31に入力される。主基板31において、検出信号は、入力ドライバ回路から遊技制御用マイクロコンピュータの入力ポートに入力される。また、カウントスイッチ23の出力側には、一端が接地されている抵抗RとコンデンサCが接続されている。
近接スイッチであるカウントスイッチ23に設けられている穴を金属の遊技球が通過するとコイルLに逆起電力が生じ、コイルLの等価的な抵抗値が極めて大きくなる。従って、カウントスイッチ23の出力は、0Vに近いローレベルになる。すなわち、検出信号は、ローレベルである。カウントスイッチ23に設けられている穴を金属の遊技球が通過していない場合には、カウントスイッチ23の出力は、+12VがコイルLと抵抗Rの抵抗値で分圧された値であり、ハイレベルであるとみなされるしきい値レベルを越える。すなわち、検出信号は、ハイレベルである。なお、検出信号のレベルは、入力ドライバ回路58で論理反転される。
遊技制御用マイクロコンピュータは、入力ドライバ回路58からの検出信号がハイレベルである場合に、遊技球がスイッチを通過したと判定することができる。
なお、この実施の形態では、カウントスイッチ23の他、入賞口スイッチ29a,30aおよび始動口スイッチ14aとして、近接スイッチが用いられている。
図20(B)は、不正行為の具体例を示す説明図である。図20(B)に示す例では、カウントスイッチ23に設けられている穴を金属製の球体で塞ぎ(一例として、通常の遊技球よりも径が大きい球体を用いる。)、その状態で、電波発信機50から球体に向けて電波を発射する。
カウントスイッチ23に設けられている穴が金属製の球体で塞がれると、カウントスイッチ23は検出信号を出力する。具体的には、図20(C)の上段に示すように、カウントスイッチ23は検出信号をローレベルにする。
その状態で、球体に向けて、カウントスイッチ23の検出信号をオンオフさせるような電波が発射されると、図20(C)の下段に示すように、遊技制御用マイクロコンピュータ560に入力される検出信号は、オンとオフとを繰り返す。すると、遊技制御用マイクロコンピュータ560は、検出信号が多数回オンしたと見なし、多数回の遊技球の入賞があったと誤判断して、結局、多数の景品として遊技球が払い出されてしまう。
この実施の形態では、後述するように、検出信号が図20(C)の下段に示すような状態になった場合に、不正行為がなされている可能性があると判定され、所定の報知が行われる。なお、後述するように、遊技制御用マイクロコンピュータ560は、4ms毎にスイッチの検出信号を確認し、検出信号のレベルがLレベル(ローレベル)であって直前(4ms前に)に確認した検出信号のレベルがHレベル(ハイレベル)である場合にスイッチがオンした(遊技球を検出した)と判定するが、電波発信機50が図20(C)の下段に示すような検出信号の周期と同周期の電波を出力しているとすると、その周期の電波を発生するためのクロック周波数と遊技制御用マイクロコンピュータ560の駆動周波数とが一致または整数倍の関係にない限り、遊技制御用マイクロコンピュータ560が、図20(C)の下段に示すような状態の検出信号にもとづいてスイッチがオンしたと判定する機会が生ずる。電波発信機50のクロック周波数と遊技制御用マイクロコンピュータ560の駆動周波数とがたまたま一致していたり整数倍の関係にあったりするときでも、図20(C)の下段に示すような検出信号の周期(信号の立ち下がりから次の立ち下がりまでの時間)が、4msまたは4msの整数分の1でない限り、図20(C)の下段に示すような状態の検出信号にもとづいてスイッチがオンしたと判定する機会が生ずる。
図21は、遊技制御用マイクロコンピュータ560が送信する演出制御コマンドの内容の一例を示す説明図である。図21に示す例において、コマンド80XX(H)は、特別図柄の可変表示に対応して演出表示装置9において可変表示される飾り図柄の変動パターンを指定する演出制御コマンド(変動パターンコマンド)である(それぞれ変動パターンXXに対応)。なお、「(H)」は16進数であることを示す。また、変動パターンを指定する演出制御コマンドは、変動開始を指定するためのコマンドでもある。従って、演出制御用マイクロコンピュータ100は、コマンド80XX(H)を受信すると、演出表示装置9において飾り図柄の可変表示を開始するように制御する。
コマンド8CXX(H)は、大当りとするか否か、および大当り種別を示す演出制御コマンドである。演出制御用マイクロコンピュータ100は、コマンド8CXX(H)の受信に応じて飾り図柄の表示結果を決定するので、コマンド8CXX(H)を表示結果指定コマンドという。
コマンド8F00(H)は、飾り図柄の可変表示(変動)を終了して表示結果(停止図柄)を導出表示することを示す演出制御コマンド(図柄確定指定コマンド)である。
コマンドA001(H)は、ファンファーレ画面を表示すること、すなわち大当り遊技の開始を指定する演出制御コマンド(大当り開始指定コマンドまたはファンファーレ指定コマンドともいう。)である。
コマンドA1XX(H)は、XXで示す回数目(ラウンド)の大入賞口開放中の表示を示す演出制御コマンド(大入賞口開放中指定コマンド)である。A2XX(H)は、XXで示す回数目(ラウンド)の大入賞口閉鎖を示す演出制御コマンド(大入賞口開放後指定コマンド)である。
コマンドA301(H)は、大当り終了画面を表示すること、すなわち大当り遊技の終了を指定する演出制御コマンド(大当り終了指定コマンド)である。
なお、この実施の形態では、演出制御を行うために図21に示された演出制御コマンド以外の演出制御コマンドも使用されるが、図21には、主要な演出制御コマンドが示されている。
また、コマンD000(H)は、所定の通過領域を通過する遊技球を検出するための入力ポート0(図11参照)の入力状態を示す入力ポート状態指定コマンドである。後述するように、スイッチからの検出信号の状態が変化した場合に、2バイト目に入力ポート0の入力データが設定された入力ポート状態指定コマンドが送信される。
次に、タイマ割込処理におけるスイッチ処理(ステップS22)を説明する。この実施の形態では、入賞検出またはゲート通過に関わる各スイッチの検出信号のオン状態が所定時間継続すると、確かにスイッチがオンしたと判定されスイッチオンに対応した処理が開始される。図22は、スイッチ処理で使用されるRAM55に形成される各1バイト(8ビット)のバッファを示す説明図である。前回ポートバッファは、前回(例えば4ms前)のスイッチオン/オフの判定結果が格納されるバッファである。ポートバッファは、今回入力したポート0の内容が格納されるバッファである。スイッチオンバッファは、スイッチのオンが検出された場合に対応ビットが1に設定され、スイッチのオフが検出された場合に対応ビットが0に設定されるバッファである。
図23は、遊技制御処理におけるステップS22のスイッチ処理の処理例を示すフローチャートである。スイッチ処理において、CPU56は、まず、入力ポート0(図11参照)に入力されているデータを入力し(ステップS101)、入力したデータをポートバッファにセットする(ステップS102)。
次いで、RAM55に形成されるウェイトカウンタの初期値をセットし(ステップS103)、ウェイトカウンタの値が0になるまで、ウェイトカウンタの値を1ずつ減算する(ステップS104,S105)。
ウェイトカウンタの値が0になると、再度、入力ポート0のデータを入力し(ステップS106)、入力したデータとポートバッファにセットされているデータとの間で、ビット毎に論理積をとる(ステップS107)。そして、論理積の演算結果を、ポートバッファにセットする(ステップS108)。ステップS103〜S108の処理によって、ほぼ[ウェイトカウンタの初期値×(ステップS104,S105の処理時間)]の時間間隔を置いて入力ポート0から入力した2回の入力データのうち、2回とも「1」になっているビットのみが、ポートバッファにおいて「1」になる。つまり、所定期間としての[ウェイトカウンタの初期値×(ステップS104,S105の処理時間)]だけスイッチの検出信号のオン状態が継続すると、ポートバッファにおける対応するビットが「1」になる。
さらに、CPU56は、前回ポートバッファにセットされているデータとポートバッファにセットされているデータとの間で、ビット毎に排他的論理和をとる(ステップS109)。排他的論理和の演算結果において、前回(例えば4ms前)のスイッチオン/オフの判定結果と、今回オンと判定されたスイッチオン/オフの判定結果とが異なっているスイッチに対応したビットが「1」になる。
いずれかのスイッチに対応したビットが「1」になった場合(スイッチからの検出信号の状態が変化した場合)には(ステップS110)、CPU56は、演出制御用マイクロコンピュータ100に入力ポート状態指定コマンドを送信する制御を行う(ステップS111)。
なお、ステップS111では、CPU56は、始動口スイッチ14a、カウントスイッチ23、および入賞口スイッチ29a,30aからの検出信号に対応するビットが「1」になった場合に入力ポート状態指定コマンドを送信し、ゲートスイッチ32aからの検出信号に対応するビットが「1」になった場合には、入力ポート状態指定コマンドを送信しないようにしてもよい。ゲートスイッチ32aからの検出信号に対応するビットが「1」になった場合に入力ポート状態指定コマンドを送信しないように構成する場合には、ステップS110とステップS111の処理との間に、排他的論理和の演算結果と「1D(H)」(図11に示す入力ポート0のビット1をマスクするデータ)との論理積が0になったときにはステップS111の処理を実行しないステップを挿入すればよい。この実施の形態では、演出制御用マイクロコンピュータ100は、異常判定処理(図51、図54、図56参照)において入力ポート0の始動口スイッチ14a、カウントスイッチ23、および入賞口スイッチ29a,30aからの検出信号に対応するビットしか判定しないので、ゲートスイッチ32aからの検出信号に対応するビットのデータが「1」,「0」のいずれであっても異常判定処理には影響を与えない。また、この実施の形態のようにゲートスイッチ32aからの検出信号に対応するビットが「1」になった場合にも入力ポート状態指定コマンドを送信する場合に、異常判定処理においてゲートスイッチ32aからの検出信号に対応するビットも判定対象にしてゲート32に対する遊技球の異常通過も検出するようにし、異常通過を検出した場合に異常報知を行うようにしてもよい。
また、CPU56は、ステップS111の処理で、入力ポート0の入力データに対応するポートバッファのデータを2バイト目に設定した入力ポート状態指定コマンドを送信する制御を行う。すなわち、CPU56は、入力ポート0の入力データを一括してコマンドとして出力する。
また、演出制御用マイクロコンピュータ100に演出制御コマンドを送信する際に、CPU56は、演出制御コマンドの種類に応じたコマンド送信テーブル(あらかじめROM54にコマンド毎に設定されている)のアドレスをポインタにセットする。そして、コマンド制御処理(ステップS25)において演出制御コマンドが送信される。なお、入力ポート0の入力データのように固定的でないデータを送信する場合には、例えば、ROM54におけるコマンド送信テーブルの1バイト目にMODEデータ(図21参照)が設定され、2バイト目にRAM55の所定領域のアドレスが設定される。そして、CPU56は、RAM55の所定領域に入力ポート0の入力データをセットした後、入力ポート状態指定コマンドに対応するコマンド送信テーブルのアドレスをポインタにセットする。コマンド送信テーブルにRAM領域のアドレスが記憶されていて、該当するアドレスのデータを2バイト目にセットしてもよい。
CPU56は、さらに、排他的論理和の演算結果と、ポートバッファにセットされているデータとの間で、ビット毎に論理積をとる(ステップS112)。この結果、前回のスイッチオン/オフの判定結果と今回オンと判定されたスイッチオン/オフの判定結果とが異なっているスイッチに対応したビット(排他的論理和演算結果による)のうち、今回オンと判定されたスイッチに対応したビット(論理積演算による)のみが「1」として残る。
そして、CPU56は、ステップS112における論理積の演算結果をスイッチオンバッファにセットし(ステップS113)、ステップS108における演算結果がセットされているポートバッファの内容を前回ポートバッファにセットする(ステップS114)。
以上の処理によって、所定期間継続してオン状態であったスイッチのうち、前回(例えば、4ms前)のスイッチオン/オフの判定結果がオフであったスイッチ、すなわち、オフ状態からオン状態に変化したスイッチに対応したビットが、スイッチオンバッファにおいて「1」になっている。
次に、ステップS26の賞球処理を説明する。図24は、ステップS32の賞球処理の一例を示すフローチャートである。賞球処理において、遊技制御用マイクロコンピュータ560(具体的には、CPU56)は、賞球コマンド出力カウンタ加算処理(ステップS501)、賞球制御処理(ステップS502)および賞球カウンタ減算処理(ステップS503)を実行する。
賞球コマンド出力カウンタ加算処理では、図25に示す賞球個数テーブルが使用される。賞球個数テーブルは、ROM54に設定されている。賞球個数テーブルの先頭アドレスには処理数(この例では「4」)が設定され、その後に、スイッチオンバッファの下位アドレスと、賞球コマンド出力カウンタの下位アドレスと、賞球数を指定する賞球指定データとが、順次設定されている。賞球コマンド出力カウンタとは、入賞口への入賞数をカウントするカウンタである。また、賞球コマンド出力カウンタは、賞球数(0〜15個)毎に設定されるが、この実施の形態では、遊技制御用マイクロコンピュータ560は、賞球数「15」に対応する賞球コマンド出力カウンタ1と、賞球数「10」に対応する賞球コマンド出力カウンタ2,3(2つの普通入賞口29,30に対応)と、賞球数「3」に対応する賞球コマンド出力カウンタ4とが使用される。
なお、賞球指定データ(15個)は、入力ポート0(図11参照)の状態が反映されているスイッチオンバッファのビット0(カウントスイッチ23aに対応するビット)のみが「1」になっているデータである。賞球指定データ(10個)の一方は、スイッチオンバッファのビット2(入賞口スイッチ29aに対応するビット)のみが「1」になっているデータである。賞球指定データ(10個)の他方は、スイッチオンバッファのビット3(入賞口スイッチ30aに対応するビット)のみが「1」になっているデータである。賞球指定データ(3個)は、スイッチオンバッファのビット4(始動口スイッチ14aに対応するビット)のみが「1」になっているデータである。
また、各賞球コマンド出力カウンタは、後述するように、賞球コマンド出力カウンタ加算処理でカウントアップされる。CPU56は、賞球個数テーブルに設定されている賞球コマンド出力カウンタ1が0でなければ、賞球個数(15個)を示すデータを賞球個数コマンドの下位4ビットに設定し、当該設定された賞球個数コマンドを払出制御用マイクロコンピュータ370に送信する。また、CPU56は、賞球個数テーブルに設定されている賞球コマンド出力カウンタ1の値が0であり、賞球コマンド出力カウンタ2または賞球コマンド出力カウンタ3の値が0でなければ、賞球個数(10個)を示すデータを賞球個数コマンドの下位4ビットに設定し、当該設定された賞球個数コマンドを払出制御用マイクロコンピュータ370に送信する。また、CPU56は、賞球個数テーブルに設定されている賞球コマンド出力カウンタ1および賞球コマンド出力カウンタ2,3の値が0であり、賞球コマンド出力カウンタ4の値が0でなければ、賞球個数(3個)を示すデータを賞球個数コマンドの下位4ビットに設定し、当該設定された賞球個数コマンドを払出制御用マイクロコンピュータ370に送信する。
図26は、ステップS501の賞球コマンド出力カウンタ加算処理を示すフローチャートである。賞球コマンド出力カウンタ加算処理において、遊技制御用マイクロコンピュータ560(具体的には、CPU56)は、賞球個数テーブルの先頭アドレスをポインタにセットする(ステップS5101)。そして、ポインタが指すアドレスのデータ(この場合には、処理数)をロードする(ステップS5102)。
次いで、CPU56は、ポインタの値を1増やし(ステップS5103)、ポインタが指すスイッチオンバッファの下位アドレスをポインタバッファの下位バイトにロードし(ステップS5104)、ポインタバッファの指すスイッチオンバッファをレジスタにロードする(ステップS5105)。次いで、CPU56は、ポインタの値を1増やし(ステップS5106)、ポインタが指す賞球コマンド出力カウンタの下位アドレスをポインタバッファの下位バイトにロードする(ステップS5107)。次いで、CPU56は、ポインタの値を1増やし(ステップS5108)、レジスタにロードしたスイッチオンバッファの内容と、ポインタが指す賞球指定データとの論理積をとる(ステップS5109)。
ステップS5109における演算結果が0であれば(ステップS5110のY)、すなわち、検査対象のスイッチの検出信号がオン状態でなければ、処理数を1減らし(ステップS5114)、処理数が0であれば処理を終了し、処理数が0でなければステップS5103に戻る(ステップS5115)。
ステップS5109における演算結果が0でなければ(ステップS5110のN)、すなわち、検査対象のスイッチの検出信号がオン状態であれば、CPU56は、ポインタが指す賞球コマンド出力カウンタの値を1加算する(ステップS111)。ただし、CPU56は、加算の結果、賞球コマンド出力カウンタの値に桁上げが発生した場合には、賞球コマンド出力カウンタの値を1減算し元に戻す(ステップS5112,S5113)。そしてステップS5113の処理に移行する。
図27は、ステップS502の賞球制御処理を示すフローチャートである。賞球制御処理では、遊技制御用マイクロコンピュータ560(具体的には、CPU56)は、賞球プロセスコードの値に応じて、ステップS521〜S525のいずれかの処理を実行する。
図28は、賞球プロセスコードの値が0の場合に実行される賞球送信処理1(ステップS521)を示すフローチャートである。CPU56は、賞球送信処理1において、接続確認コマンドを払出制御用マイクロコンピュータに送信する制御を行う(ステップS5211)。具体的には、CPU56は、シリアル通信回路505の送信データレジスタに接続確認コマンドを出力する処理を行う。そして、CPU56は、賞球プロセスコードに賞球接続確認処理を示す値「1」をセットし(ステップS5212)、賞球プロセスタイマに接続確認時間2(例えば10秒)をセットする(ステップS5213)。
なお、ステップS5213でセットされた接続確認時間2にもとづいて、接続確認コマンドを送信した後、10秒を経過しても接続OKコマンドを受信できなかった場合には、以後、接続確認コマンドを送信する間隔を10秒に広げるように制御される。具体的には、ステップS5213でセットされた賞球プロセスタイマは、後述するステップS5229の処理で計測され、接続OKコマンドを受信することなく10秒が経過してタイムアウトしステップS5227でYと判定されると、賞球送信処理1に戻り次の接続確認コマンドが送信される(ステップS5228,S5211参照)。
なお、賞球プロセスタイマには、遊技制御用マイクロコンピュータ560で実行されるタイマ割込処理における割込周期も考慮した値(例えば、割込周期の整数倍)がセットされる。このことは、遊技制御用マイクロコンピュータ560や、払出制御用マイクロコンピュータ370、演出制御用マイクロコンピュータ100で用いられる他のタイマ(例えば、主制御通信制御タイマや、払出制御タイマ、再払出待ちタイマ、賞球情報出力タイマ、賞球信号出力タイマ)についても同様である。
図29は、賞球プロセスコードの値が1の場合に実行される賞球接続確認処理(ステップS522)を示すフローチャートである。CPU56は、賞球接続確認処理において、まず、シリアル通信回路505の受信データレジスタにデータがあるか否かを確認する(ステップS5221)。例えば、CPU56は、シリアル通信回路505のステータスレジスタのビット5(RDRF)の値を確認する。受信データレジスタにデータがなければ(すなわち、コマンドを受信していなければ)、ステップS5227に移行する。
受信データレジスタにデータがあれば(すなわち、コマンドを受信していれば)、CPU56は、シリアル通信回路505のエラーが発生しているか否かを確認する(ステップS5222)。例えば、CPU56は、シリアル通信回路505のステータスレジスタのビット0〜4のいずれかのエラービットの値がセットされているか否かを確認する。エラーが発生していれば、CPU56は、シリアル通信回路505の受信データレジスタからデータを読み出し(ステップS5222A)、ステップS5227に移行する。なお、ステップS5222Aでデータが読み出されることによって、シリアル通信回路505の受信データレジスタの内容がクリアされるとともに、ステータスレジスタのビット5がクリアされる。ただし、ステップS5222Aで読み出された受信データは、そのまま破棄される。すなわち、この実施の形態において、ステップS5222Aで読み出された受信データは、CPU56によってシリアル通信回路505の受信データレジスタから読みされてCPU56のレジスタに書き込まれるだけで、RAM55に書き込まれることはなく、その後の何らかの処理に用いられることはない。なお、このことは、この実施の形態において、受信データレジスタから受信データを読み出すことによってデータを破棄する他の処理についても同様である。
なお、ステップS5222Aで受信データを読み出した後、CPU56は、次のコマンドを受信するまでステップS5221でNと判定し、コマンドを受信することなくステップS5213でセットした10秒が経過するとステップS5227で賞球プロセスタイマがタイムアウトする。そして、賞球送信処理1に移行し(ステップS5228参照)、再び接続確認コマンドが送信されることになる(ステップS5211参照)。
シリアル通信回路505のエラーも発生していなければ、CPU56は、シリアル通信回路505の受信データレジスタからコマンドを読み出し、受信したコマンドが接続OKコマンドであるか否かを確認する(ステップS5223)。接続OKコマンドでなければ、ステップS5227に移行する。
接続OKコマンドを受信していれば、CPU56は、接続OKコマンドの下位4ビットに設定されているエラー情報(図19参照)を枠状態表示バッファに格納する(ステップS5224)。
次いで、CPU56は、賞球プロセスコードに賞球送信処理2を示す値「2」をセットし(ステップS5225)、賞球プロセスタイマに接続確認時間1(例えば1秒)をセットする(ステップS5226)。なお、ステップS5226でセットされた接続確認時間1にもとづいて、接続OKコマンドの受信後に1秒経過するごとに次の接続確認コマンドを繰り返し送信する制御が行われる。具体的には、ステップS5226でセットされた賞球プロセスタイマは、後述するステップS52315の処理で計測され、賞球個数コマンドを送信することなく1秒が経過してタイムアウトしステップS52313でYと判定されると、賞球送信処理1に戻り次の接続確認コマンドが送信される(ステップS52314,S5211参照)。
よって、払出制御用マイクロコンピュータ370による払出制御の実行の終了後、新たな接続確認信号を出力するまでの間にインターバル期間が設けられることになり、払出制御用マイクロコンピュータ370において、払出制御の実行の終了時における処理が集中して新たな接続確認信号の取りこぼし等が発生することを防止することができる。
ステップS5227では、CPU56は、賞球プロセスタイマがタイムアウトしたか否かを確認する。賞球プロセスタイマがタイムアウトしていれば(すなわち、接続確認コマンドを送信した後、10秒を経過しても接続OKコマンドを受信できなかった場合)、CPU56は、賞球プロセスコードに賞球送信処理1を示す値「0」をセットし(ステップS5228)、処理を終了する。賞球プロセスタイマがタイムアウトしていなければ、CPU56は、賞球プロセスタイマの値を1減算する(ステップS5229)。
図30は、賞球プロセスコードの値が2の場合に実行される賞球送信処理2(ステップS523)を示すフローチャートである。CPU56は、賞球送信処理2において、賞球コマンド出力カウンタ1〜4の中にカウント値が0でないものがあるか否かを確認する(ステップS52301)。カウント値が0でないものがなければ、ステップS52313に移行する。
賞球コマンド出力カウンタ1〜4の中にカウント値が0でないものがある場合には(すなわち、カウント値が1以上のものがある場合には)、CPU56は、枠状態表示バッファの内容をロードし、枠状態表示バッファの内容が0であるか否かを確認する(ステップS52302)。枠状態表示バッファの内容が0でなければ、そのまま処理を終了する。そのように制御することによって、エラー情報が設定された接続OKコマンドを受信し、払出制御用マイクロコンピュータ370側で払出停止状態に制御されている場合には、ステップS52303以降の処理に移行しないようし、賞球個数コマンドの送信を保留するように制御する。
枠状態表示バッファの内容が0であれば(すなわち、払出に関するエラーが発生していなければ)、払出制御用CPU371は、そのカウント値が0でない賞球コマンド出力カウンタに対応する賞球個数を個数バッファにセットする(ステップS52303)。具体的には、ステップS52301において、CPU56は、まず、賞球コマンド出力カウンタ1のカウント値が0であるか否かを確認する。そして、賞球コマンド出力カウンタ1のカウント値が1以上であった場合には、ステップS52303において、CPU56は、個数バッファに賞球個数15個をセットする。また、ステップS52301において、CPU56は、賞球コマンド出力カウンタ1のカウント値が0であった場合には、賞球コマンド出力カウンタ2,3のカウント値が0であるか否かを確認する。そして、賞球コマンド出力カウンタ2,3のカウント値が1以上であった場合には、ステップS52303において、CPU56は、個数バッファに賞球個数10個をセットする。さらに、ステップS52301において、CPU56は、賞球コマンド出力カウンタ2,3のカウント値も0であった場合には、賞球コマンド出力カウンタ4のカウント値が0であるか否かを確認する。そして、賞球コマンド出力カウンタ4のカウント値が1以上であった場合には、ステップS52303において、CPU56は、個数バッファに賞球個数3個をセットする。
また、CPU56は、そのカウント値が0でない賞球コマンド出力カウンタに対応する賞球個数を賞球個数コマンドにセットする(ステップS52304)とともに、賞球個数をセットした賞球個数コマンドを払出制御用マイクロコンピュータ370に送信する制御を行う(ステップS52305)。具体的には、CPU56は、シリアル通信回路505の送信データレジスタに、賞球個数をセットした賞球個数コマンドを出力する処理を行う。
なお、ステップS52301,S52305の処理が実行されることによって、この実施の形態では、接続確認コマンドの送信タイミングにかかわりなく、賞球コマンド出力カウンタの中にカウント値が0でないものがあれば(すなわち、賞球個数記憶があり、所定の払出条件が成立していれば)、賞球個数コマンドが払出制御用マイクロコンピュータ370に送信される。
そして、CPU56は、賞球プロセスコードに賞球受領確認処理を示す値「3」をセットし(ステップS52306)、賞球プロセスタイマに接続確認時間2(例えば10秒)をセットする(ステップS52307)。なお、ステップS52307でセットされた接続確認時間2にもとづいて、賞球個数コマンドを送信した後、10秒以内に賞球個数受付コマンドや賞球準備中コマンドを受信したか否かが確認される。具体的には、ステップS52307でセットされた賞球プロセスタイマは、後述するステップS52411の処理で計測され、賞球個数受付コマンドや賞球準備中コマンドを受信することなく10秒が経過してタイムアウトしステップS52409でYと判定されると、賞球送信処理1に戻り次の接続確認コマンドが送信される(ステップS52410,S5211参照)。
なお、ステップS52306の処理が実行されることによってステップS52305で賞球個数コマンドが送信されると、接続確認コマンドの送信処理を含む賞球送信処理1に戻ることなく、賞球受領確認処理に移行される。従って、この実施の形態では、賞球個数コマンドを送信するまでは所定時間(例えば1秒)ごとに繰り返し接続確認コマンドを送信する処理が実行されているのであるが、賞球個数コマンドを送信したことにもとづいて接続確認コマンドを送信する制御が停止される(より具体的には、賞球個数コマンドを送信した後、後述する賞球個数受付コマンドを受信したことにより賞球終了確認処理に移行する(ステップS52403〜S52405参照)ことによって、または賞球準備中コマンドを受信したことにより賞球受領確認処理を繰り返す(ステップS52406〜S52408参照)ことによって、賞球送信処理1に戻ることなく、接続確認コマンドを送信する制御が停止される。この場合、払出制御用マイクロコンピュータ370側から何も払出制御コマンドが返信されないという異常状態が発生しない限り、賞球個数コマンドを送信した後、賞球払出動作を終了して賞球終了コマンドを受信するまで、遊技制御用マイクロコンピュータ560から接続確認コマンドが送信されることはない。
次いで、CPU56は、ステップS52303でセットした個数バッファの値を賞球個数カウンタに加算し(ステップS52308)、加算後のカウント値が所定の賞球不足判定値(例えば501)以上であるか否かを確認する(ステップS52309)。この実施の形態において、賞球個数カウンタは、遊技制御用マイクロコンピュータ560側で未払い出しの賞球数を把握するために用いられるカウンタであり、賞球個数コマンドを送信する際に賞球個数コマンドで指定される賞球個数が加算され、賞球払出を10球検出するごとに払出制御用マイクロコンピュータ370から出力される賞球情報にもとづいて10ずつ減算される。また、前述したように、賞球個数カウンタには、メイン処理の初期設定処理において初期値として「250」がセットされている。そして、賞球個数カウンタのカウント値が所定の賞球不足判定値(例えば501)以上に達する場合には、未払い出しの賞球数が異常に多すぎるのであるから、賞球不足の事態が生じていると判定することができる。また、賞球個数カウンタのカウント値が所定の賞球過剰判定値(例えば0)未満となった場合には、本来払い出されるべき数を越えて異常に多くの遊技球が払い出されているのであるから、賞球過剰の事態が生じていると判定することができる。
遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370との間の通信を妨害することによる不正行為(例えば、払出制御用マイクロコンピュータ370から送信されるデータが遊技制御用マイクロコンピュータ560に受信されないようにすることによって、遊技制御用マイクロコンピュータ560を賞球個数受付コマンド受信待ちタイムアウトの状態にして賞球個数コマンドを再送させる。)を効果的に防止することができる。
なお、この実施の形態では、賞球個数コマンドを送信(ステップS52305参照)した直後に、賞球個数カウンタの加算処理(ステップS52308参照)する場合を示しているが、賞球個数コマンドが送信されるタイミングで加算するものであれば、例えば、まず賞球個数カウンタの加算処理を実行してから、その直後に賞球個数コマンドを送信するようにしてもよい。
また、賞球不足と判定される場合には、払出制御用マイクロコンピュータ370側に何らかの障害が生じて払出動作を正常に行えない場合の他、賞球情報を出力する信号線が断線している場合も考えられる。また、逆に、賞球過剰と判定される場合には、払出制御用マイクロコンピュータ370側に何らかの障害が生じて払出動作が必要以上に行われている場合の他、賞球個数コマンドを送信するコマンド線に何らかの不正が施されて不正に賞球個数コマンドが払出制御用マイクロコンピュータ370に入力されている場合も考えられる。
賞球個数カウンタのカウント値が所定の賞球不足判定値(例えば501)以上であった場合には、CPU56は、賞球不足や賞球過剰が発生していることを示す賞球エラーフラグが既にセットされているか否かを確認する(ステップS52310)。既に賞球エラーフラグがセットされていれば、そのまま処理を終了する。賞球エラーフラグがセットされていなければ、CPU56は、賞球エラーフラグをセットする(ステップS52311)とともに、賞球不足エラーコマンドを演出制御用マイクロコンピュータ100に送信する制御を行う(ステップS52312)。具体的には、CPU56は、賞球不足エラーコマンド送信テーブルのアドレスをポインタにセットする処理を行う。そして、ステップS52312で賞球不足エラーコマンド送信テーブルのアドレスがポインタにセットされたことにもとづいて、その後、ステップS24のコマンド制御処理において、演出制御基板80との送受信用チャネルのシリアル通信回路505の送信データレジスタに賞球不足エラーコマンドが出力され、賞球不足エラーコマンドが演出制御用マイクロコンピュータ100に送信される。なお、賞球エラーフラグは、一度セットされると、遊技機への電力供給が停止された後、遊技機へ電源が再投入されるまで、クリアされずに維持される。また、この実施の形態では、遊技制御用マイクロコンピュータ560と演出制御用マイクロコンピュータ100との間の通信に関しては、遊技制御用マイクロコンピュータ560から演出制御用マイクロコンピュータ100に対してコマンドが送信されるのみで、その逆はない。そのため、遊技制御用マイクロコンピュータ560には、演出制御用マイクロコンピュータ100との通信に関しては、送信専用のシリアル通信回路が搭載されていてもよい。
なお、この実施の形態では、賞球不足エラーコマンドや、賞球過剰エラーコマンドを受信したことにもとづいて、演出制御用マイクロコンピュータ100によって賞球不足や賞球過剰のエラー報知が行われるのであるが、賞球不足や賞球過剰のエラー報知は、報知開始から所定期間を経過したときに復旧するようにしてもよい。また、例えば、賞球個数カウンタの値が所定の賞球不足判定値(例えば501)や所定の賞球過剰判定値(例えば0)の範囲内に復帰したときに、賞球不足や賞球過剰のエラー報知から復旧するようにしてもよい。
なお、この実施の形態では、ステップS52308において、賞球個数コマンドを送信したタイミングで賞球個数カウンタに賞球個数を加算する場合を示したが、賞球個数カウンタのカウントアップの仕方は、この実施の形態で示したものにかぎらず、例えば、逆に賞球個数を減算するようにしてもよい。この場合、例えば、後述するステップS5311の処理において、賞球情報を入力したことにもとづいて賞球個数カウンタの値に逆に10加算するようにすればよい。そして、ステップS52309の処理では賞球個数カウンタの値が0未満であれば賞球不足エラーと判定するようにし、後述するステップS5312の処理では賞球個数カウンタの値が501以上であれば賞球過剰エラーと判定するようにすればよい。
ステップS52313では、CPU56は、賞球プロセスタイマがタイムアウトしたか否かを確認する。賞球プロセスタイマがタイムアウトしていれば(すなわち、接続OKコマンドを受信した後、1秒を経過するまでに、賞球個数の記憶もなく、新たな入賞も発生しなかった場合)、CPU56は、賞球プロセスコードに賞球送信処理1を示す値「0」をセットし(ステップS52314)、処理を終了する。賞球プロセスタイマがタイムアウトしていなければ、CPU56は、賞球プロセスタイマの値を1減算する(ステップS52315)。
図31は、賞球プロセスコードの値が3の場合に実行される賞球受領確認処理(ステップS524)を示すフローチャートである。CPU56は、賞球受領確認処理において、まず、シリアル通信回路505の受信データレジスタにデータがあるか否かを確認する(ステップS52401)。具体的には、CPU56は、シリアル通信回路505のステータスレジスタのビット5の値を確認するようにすればよい。受信データレジスタにデータがなければ(すなわち、コマンドを受信していなければ)、ステップS52409に移行する。
受信データレジスタにデータがあれば(すなわち、コマンドを受信していれば)、CPU56は、シリアル通信回路505のエラーが発生しているか否かを確認する(ステップS52402)。具体的には、CPU56は、シリアル通信回路505のステータスレジスタのビット0〜4のいずれかのエラービットの値がセットされているか否かを確認するようにすればよい。エラーが発生していれば、CPU56は、シリアル通信回路505の受信データレジスタからデータを読み出し(ステップS52402A)、ステップS52409に移行する。なお、ステップS52402Aでデータが読み出されることによって、シリアル通信回路505の受信データレジスタの内容がクリアされるとともに、ステータスレジスタのビット5がクリアされる。ただし、ステップS52402Aで読み出された受信データは、そのまま破棄される。すなわち、この実施の形態において、ステップS52402Aで読み出された受信データは、CPU56によってシリアル通信回路505の受信データレジスタから読みされてCPU56のレジスタに書き込まれるだけで、RAM55に書き込まれることはなく、その後の何らかの処理に用いられることはない。
なお、ステップS52402Aで受信データを読み出した後、CPU56は、次のコマンドを受信するまでステップS52401でNと判定し、コマンドを受信することなくステップS52307でセットした10秒が経過するとステップS52409で賞球プロセスタイマがタイムアウトする。そして、賞球送信処理1に移行し(ステップS52410参照)、再び接続確認コマンドが送信されることになる(ステップS5211参照)。
シリアル通信回路505のエラーも発生していなければ、CPU56は、シリアル通信回路505の受信データレジスタからコマンドを読み出し、受信したコマンドが賞球個数受付コマンドであるか否かを確認する(ステップS52403)。賞球個数受付コマンドを受信していれば、CPU56は、送信した賞球個数コマンドで設定した賞球個数に対応する賞球コマンド出力カウンタの値を1減算する(ステップS52404)。また、CPU56は、賞球プロセスコードに賞球終了確認処理を示す値「4」をセットし(ステップS52405)、ステップS52408に移行する。
受信したコマンドが賞球個数受付コマンドでなければ、CPU56は、受信したコマンドが賞球準備中コマンドであるか否かを確認する(ステップS52406)。賞球準備中コマンドでもなければ、ステップS52409に移行する。
賞球準備中コマンドを受信していれば、CPU56は、賞球準備中コマンドの下位4ビットに設定されているエラー情報(図25参照)を枠状態表示バッファに格納する(ステップS52407)。そして、CPU56は、賞球プロセスタイマに接続確認時間2(例えば10秒)をセットする(ステップS52408)。なお、ステップS52408でセットされた接続確認時間2にもとづいて、賞球準備中コマンドを受信した後、10秒を経過しても賞球個数受付コマンドも次の賞球準備中コマンドも受信できなかった場合には、接続確認コマンドを送信する制御に戻る。具体的には、ステップS52408でセットされた賞球プロセスタイマは、後述するステップS52409,S52411の処理で計測され、賞球個数受付コマンドや次の賞球準備中コマンドを受信することなく10秒が経過してタイムアウトしステップS52409でYと判定されると、賞球送信処理1に戻り次の接続確認コマンドが送信される(ステップS52410,S5211参照)。
ステップS52409では、CPU56は、賞球プロセスタイマがタイムアウトしたか否かを確認する。賞球プロセスタイマがタイムアウトしていれば(すなわち、賞球個数コマンドを送信した後、10秒を経過しても賞球個数受付コマンドや賞球準備中コマンドを受信できなかった場合)、CPU56は、賞球プロセスコードに賞球送信処理1を示す値「0」をセットし(ステップS52410)、処理を終了する。賞球プロセスタイマがタイムアウトしていなければ、CPU56は、賞球プロセスタイマの値を1減算する(ステップS52411)。
図32は、賞球プロセスコードの値が4の場合に実行される賞球終了確認処理(ステップS525)を示すフローチャートである。CPU56は、賞球終了確認処理において、まず、シリアル通信回路505の受信データレジスタにデータがあるか否かを確認する(ステップS52501)。具体的には、CPU56は、シリアル通信回路505のステータスレジスタのビット5の値を確認するようにすればよい。受信データレジスタにデータがなければ(すなわち、コマンドを受信していなければ)、ステップS52509に移行する。
受信データレジスタにデータがあれば(すなわち、コマンドを受信していれば)、CPU56は、シリアル通信回路505のエラーが発生しているか否かを確認する(ステップS52502)。具体的には、CPU56は、シリアル通信回路505のステータスレジスタのビット0〜4のいずれかのエラービットの値がセットされているか否かを確認するようにすればよい。エラーが発生していれば、CPU56は、シリアル通信回路505の受信データレジスタからデータを読み出し(ステップS52502A)、ステップS52509に移行する。なお、ステップS52502Aでデータが読み出されることによって、シリアル通信回路505の受信データレジスタの内容がクリアされるとともに、ステータスレジスタのビット5がクリアされる。ただし、ステップS52502Aで読み出された受信データは、そのまま破棄される。すなわち、この実施の形態において、ステップS52502Aで読み出された受信データは、CPU56によってシリアル通信回路505の受信データレジスタから読みされてCPU56のレジスタに書き込まれるだけで、RAM55に書き込まれることはなく、その後の何らかの処理に用いられることはない。
なお、ステップS52502Aで受信データを読み出した後、CPU56は、次のコマンドを受信するまでステップS52501でNと判定し、コマンドを受信することなくステップS52408でセットした10秒が経過するとステップS52509で賞球プロセスタイマがタイムアウトする。そして、賞球送信処理1に移行し(ステップS52510参照)、再び接続確認コマンドが送信されることになる(ステップS5211参照)。
遊技制御用マイクロコンピュータ560は、通信エラーが生ずると受信データを破棄するが、10秒経過毎の接続確認コマンドの送信を通信エラーの有無に関わらず実行するので、払出制御用マイクロコンピュータ370との間の通信に異常が発生した場合に誤ったデータにもとづいて処理を実行してしまうことを防止しつつ、通信が必要以上に停滞してしまうことによる不都合を防止することができる。また、制御を複雑にすることなく遊技制御用マイクロコンピュータ560は、払出制御用マイクロコンピュータ370側の制御状態を認識することができる。
シリアル通信回路505のエラーも発生していなければ、CPU56は、シリアル通信回路505の受信データレジスタからコマンドを読み出し、受信したコマンドが賞球終了コマンドであるか否かを確認する(ステップS52503)。賞球終了コマンドを受信していれば、CPU56は、賞球プロセスコードに賞球送信処理2を示す値「2」をセットし(ステップS52504)、賞球プロセスタイマに接続確認時間1(例えば1秒)をセットする(ステップS52505)。なお、ステップS52505でセットされた接続確認時間1にもとづいて、賞球終了コマンドを受信した後、1秒を経過しても始動入賞が発生しなかった場合には、接続確認コマンドを送信する制御に戻る。具体的には、ステップS52505でセットされた賞球プロセスタイマは、ステップS52313,S52315の処理で計測され、新たな始動入賞が発生せず賞球個数コマンドを送信することなく1秒が経過してタイムアウトしステップS52313でYと判定されると、賞球送信処理1に戻り次の接続確認コマンドが送信される(ステップS52314,S5211参照)。
なお、ステップS52504の処理が実行されることによって、賞球終了コマンドを受信した場合にはまず賞球送信処理2に移行されるので、賞球個数の記憶が溜まっている場合には直ちに次の賞球個数コマンドが送信されるように制御される。一方で、賞球送信処理2に移行された後、賞球個数の記憶もなく、ステップS52505でセットされた接続確認時間1(例えば1秒)が経過するまでの間に新たな入賞も発生しなかった場合には、さらに賞球送信処理1に移行され、接続確認コマンドを繰り返し送信する処理が再開される。
受信したコマンドが賞球終了コマンドでなければ、CPU56は、受信したコマンドが賞球準備中コマンドであるか否かを確認する(ステップS52506)。賞球準備中コマンドでもなければ、ステップS52509に移行する。
賞球準備中コマンドを受信していれば、CPU56は、賞球準備中コマンドの下位4ビットに設定されているエラー情報(図19参照)を枠状態表示バッファに格納する(ステップS52507)。そして、CPU56は、賞球プロセスタイマに接続確認時間2(例えば10秒)をセットする(ステップS52508)。なお、ステップS52508でセットされた接続確認時間2にもとづいて、賞球準備中コマンドを受信した後、10秒を経過しても賞球終了コマンドも次の賞球準備中コマンドも受信できなかった場合には、接続確認コマンドを送信する制御に戻る。具体的には、ステップS52508でセットされた賞球プロセスタイマは、後述するステップS52511の処理で計測され、賞球終了コマンドや次の賞球準備中コマンドを受信することなく10秒が経過してタイムアウトしステップS52509でYと判定されると、賞球送信処理1に戻り次の接続確認コマンドが送信される(ステップS52510,S5211参照)。
ステップS52509では、CPU56は、賞球プロセスタイマがタイムアウトしたか否かを確認する。賞球プロセスタイマがタイムアウトしていれば(すなわち、賞球個数受付コマンドや賞球準備中コマンドを受信した後、10秒を経過しても賞球終了コマンドや賞球準備中コマンドを受信できなかった場合)、CPU56は、賞球プロセスコードに賞球送信処理1を示す値「0」をセットし(ステップS52510)、処理を終了する。賞球プロセスタイマがタイムアウトしていなければ、CPU56は、賞球プロセスタイマの値を1減算する(ステップS52511)。
図33は、ステップS503の賞球カウンタ減算処理を示すフローチャートである。CPU56は、賞球カウンタ減算処理において、まず、賞球情報入力無効タイマがタイムアウトしたか否かを確認する(ステップS5301)。なお、賞球情報入力無効タイマは、賞球情報の入力を確認した後、次の賞球情報の入力を確認するまでの間にインターバル期間を設けるために計測されるタイマである。タイムアウトしていなければ、CPU56は、賞球情報入力無効タイマの値を1減算して(ステップS5302)、処理を終了する。
賞球情報入力無効タイマがタイムアウトしていれば、CPU56は、入力ポート0の内容を入力し(ステップS5303)、賞球情報のビットがオン状態であるか否かを確認する(ステップS5304)。賞球情報のビットがオン状態であれば、ステップS5305に移行する。
ステップS5305では、CPU56は、処理数として所定の賞球情報確認回数(例えば8)をセットする(ステップS5305)。そして、CPU56は、賞球情報を入力しているか否かを確認し、賞球情報の入力を確認できれば賞球情報オンカウンタの値を1加算する処理を、処理数(この実施の形態では8)を終了するまで繰り返し実行する(ステップS5306〜S5308)。
次いで、CPU56は、賞球情報オンカウンタの値が6以上であるか否かを確認する(ステップS5309)。賞球情報オンカウンタの値が6以上であれば、CPU56は、賞球情報入力無効タイマに所定時間(例えば0.8秒)をセットする(ステップS5310)とともに、賞球個数カウンタの値を10減算する(ステップS5311)。
以上のように、この実施の形態では、賞球情報の入力を8回の確認処理中6回以上確認したことを条件として賞球情報を入力したと判定し、10個の賞球払出が行われたものとして賞球個数カウンタの値を10減算する。そのような処理によって、この実施の形態では、誤って賞球情報を入力したと判定する可能性を低減し、遊技制御用マイクロコンピュータ560側で未払出の賞球数を適切に把握できなくなる事態を防止する。
次いで、CPU56は、減算後のカウント値が所定の賞球過剰判定値(例えば0)未満であるか否かを確認する(ステップS5312)。賞球個数カウンタのカウント値が所定の賞球過剰判定値(例えば0)未満であった場合には、CPU56は、賞球エラーフラグが既にセットされているか否かを確認する(ステップS5313)。既に賞球エラーフラグがセットされていれば、そのまま処理を終了する。賞球エラーフラグがセットされていなければ、CPU56は、賞球エラーフラグをセットする(ステップS5314)とともに、賞球過剰エラーコマンドを演出制御用マイクロコンピュータ100に送信する制御を行う(ステップS5315)。具体的には、CPU56は、賞球過剰エラーコマンド送信テーブルのアドレスをポインタにセットする処理を行う。そして、ステップS5315で賞球過剰エラーコマンド送信テーブルのアドレスがポインタにセットされたことにもとづいて、その後、ステップS25のコマンド制御処理において、演出制御基板80との送受信用チャネルのシリアル通信回路505の送信データレジスタに賞球過剰エラーコマンドが出力され、賞球過剰エラーコマンドが演出制御用マイクロコンピュータ100に送信される。
次に、払出制御手段(払出制御用マイクロコンピュータ370)の動作を説明する。図34は、払出制御手段における出力ポートの割り当ての例を示す説明図である。図34に示すように、出力ポート0は、ステッピングモータによる払出モータ289に供給される各相の信号と、カードユニット50へのEXS信号およびPRDY信号を出力するための出力ポートである。出力ポート1は、遊技機がエラー状態(この実施の形態では、球切れエラー状態または満タンエラー状態)であることを示す遊技機エラー状態信号や、賞球払出を検出したことを示す賞球信号を出力するための出力ポートである。出力ポート2は、7セグメントLEDによるエラー表示LED374の各セグメント出力の出力ポートである。
また、出力ポート2から、賞球払出を10球検出したことを示す賞球情報も出力される。賞球情報は、主基板31に対して出力される。
図35は、払出制御手段における入力ポートのビット割り当ての例を示す説明図である。図35に示すように、入力ポート0のビット0〜2には、それぞれ、カードユニット50からのVL信号、BRDY信号、およびBRQ信号が入力される。また、入力ポート0のビット4には、主基板31からの接続信号が入力される。また、入力ポート0のビット5〜7には、それぞれ、満タンスイッチ48の検出信号、球切れスイッチ187の検出信号、および払出モータ位置センサ295の検出信号が入力される。また、入力ポート1のビット0,1には、それぞれ、エラー解除スイッチ375からの操作信号、および払出個数カウントスイッチ301の検出信号が入力される。
次に、払出制御手段の動作について説明する。図36は、払出制御手段が実行するメイン処理を示すフローチャートである。メイン処理では、払出制御用マイクロコンピュータ370の払出制御用CPU371は、まず、必要な初期設定を行う。すなわち、払出制御用CPU371は、まず、割込禁止に設定する(ステップS701)。次に、割込モードを割込モード2に設定し(ステップS702)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS703)。
次いで、払出制御用CPU371は、内蔵デバイスレジスタの設定を行う(ステップS704)。ステップS704の内蔵デバイスレジスタの設定の処理では、払出制御用CPU371は、CTCの設定を行う。また、この実施の形態では、内蔵CTCのうちの一つのチャネルがタイマモードで使用される。そのため、払出制御用CPU371は、使用するチャネルをタイマモードに設定するためのレジスタ設定、割込発生を許可するためのレジスタ設定および割込ベクタを設定するためのレジスタ設定を行う。そして、そのチャネルによる割込がタイマ割込として用いられる。タイマ割込を例えば1ms毎に発生させたい場合は、初期値として1msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。
また、ステップS704において、払出制御用CPU371は、シリアル通信回路380の割り込み要求に応じて実行する割込処理の優先順位を初期設定する。この場合、この場合、払出制御用CPU371は、遊技制御用マイクロコンピュータ560のCPU56が行う優先順位の初期設定処理(ステップS15b参照)と同様の処理に従って、割込処理の優先順位を初期設定する。
また、ステップS704において、払出制御用CPU371は、シリアル通信回路380の設定を行う。この場合、払出制御用CPU371は、受信回路のボーレートの設定、受信モード(8ビットまたは9ビットのデータフォーマットのいずれにするか)の設定、パリティ設定(パリティの有無や、偶数パリティまたは奇数パリティの設定)を行う。また、受信回路の各制御レジスタを初期化するとともに、各ステータスレジスタを初期化する。また、払出制御用CPU371は、送信回路のボーレートの設定、送信モード(8ビットまたは9ビットのデータフォーマットのいずれにするか)の設定、パリティ設定(パリティの有無や、偶数パリティまたは奇数パリティの設定)を行う。また、送信回路の各制御レジスタを初期化する。
なお、タイマモードに設定されたチャネル(この実施の形態ではチャネル3)に設定される割込ベクタは、タイマ割込処理の先頭アドレスに相当するものである。具体的は、Iレジスタに設定された値と割込ベクタとでタイマ割込処理の先頭アドレスが特定される。タイマ割込処理では、払出手段を制御する払出制御処理(少なくとも主基板からの賞球払出に関する指令信号に応じて球払出装置97を駆動する処理を含み、球貸し要求に応じて球払出装置97を駆動する処理が含まれていてもよい。)が実行される。
また、この実施の形態では、払出制御用マイクロコンピュータ370でも割込モード2が設定される。従って、内蔵CTCのカウントアップにもとづく割込処理を使用することができる。また、CTCが送出した割込ベクタに応じた割込処理開始アドレスを設定することができる。CTCのチャネル3(CH3)のカウントアップにもとづく割込は、CPUの内部クロック(システムクロック)をカウントダウンしてレジスタ値が「0」になったら発生する割込であり、タイマ割込として用いられる。
次いで、払出制御用CPU371は、RAMをアクセス可能状態に設定し(ステップS705)、RAMクリア処理を行う(ステップS706)。また、RAM領域のフラグやカウンタなどに初期値を設定する(ステップS707)。なお、ステップS707の処理には、未払出個数カウンタ初期値を未払出個数カウンタにセットする処理が含まれる。また、ステップS707の処理では、払出制御用CPU371は、払出個数異常エラーや満タンエラー、球切れエラーの検出状態を示すエラーフラグをクリアする処理も行う。なお、この実施の形態では、払出個数異常エラーと判定されてエラーフラグの払出個数異常エラー指定ビットがセットされた場合には、電源リセットがされるまで払出個数異常エラー指定ビットがクリアされず払出個数異常エラーから復旧しないのであるが、具体的には、電源投入時にステップS707の処理が実行されることによって、エラーフラグの払出個数異常エラー指定ビットがクリアされ、払出個数異常エラーから復旧する。
また、払出制御用CPU371は、シリアル通信回路380を初期設定するシリアル通信回路設定処理を実行する(ステップS708)。この場合、払出制御用CPU371は、遊技制御用マイクロコンピュータ560のCPU56が行うシリアル通信回路設定処理(ステップS15a参照)と同様の処理に従って、シリアル通信回路380に遊技制御用マイクロコンピュータ560とシリアル通信させるための設定を行う。また、前述したように、シリアル通信回路380の初期設定の一部は、ステップS704の内蔵デバイスレジスタの設定処理において実行される。なお、シリアル通信回路380の全ての設定処理をステップS708のシリアル通信回路設定処理で行うようにしてもよい。
そして、初期設定処理のステップS701において割込禁止とされているので、初期化処理を終える前に割込が許可される(ステップS709)。その後、タイマ割込の発生を監視するループ処理に入る。
上記のように、この実施の形態では、払出制御用マイクロコンピュータ370の内蔵CTCが繰り返しタイマ割込を発生するように設定される。そして、タイマ割込が発生すると、払出制御用マイクロコンピュータ370の払出制御用CPU371は、タイマ割込処理を実行する。
図37は、払出制御手段が実行するタイマ割込処理の例を示すフローチャートである。タイマ割込処理で、払出制御用マイクロコンピュータ370の払出制御用CPU371は、以下の処理を実行する。まず、払出制御用CPU371は、スイッチチェック処理を行う(ステップS761)。スイッチチェック処理では、払出制御用CPU371は、入力ポート1の入力にもとづいて、払出個数カウントスイッチ301およびエラー解除スイッチ375のオン/オフ状態を確認する処理を行う。次いで、払出制御用CPU371は、入力判定処理を行う(ステップS762)。入力判定処理は、入力ポート0のビット0〜7(図35参照)の状態を検出して検出結果をRAMの所定の1バイト(センサ入力状態フラグと呼ぶ。)に反映する処理である。なお、払出制御用CPU371は、入力ポート0のビット0〜7の状態にもとづいて制御を行う場合には、直接入力ポートの状態をチェックするのではなく、センサ入力状態フラグの状態をチェックする。
次いで、払出制御用CPU371は、カードユニット50と通信を行うプリペイドカードユニット制御処理を実行する(ステップS763)。次いで、払出制御用CPU371は、主基板31の遊技制御手段と通信を行う主制御通信処理を実行する(ステップS764)。次いで、払出制御用CPU371は、カードユニット50からの球貸し要求に応じて貸し球を払い出す制御を行い、また、主基板31からの賞球個数コマンドが示す個数の賞球を払い出す制御を行う払出制御処理を実行する(ステップS765)。
次に、払出制御用CPU371は、払出モータ制御処理を実行する(ステップS766)。払出モータ制御処理では、払出モータ289を駆動すべきときには、払出モータφ1〜φ4のパターンを出力ポート0に出力するための処理を行う。
次いで、払出制御用CPU371は、各種のエラーを検出するエラー処理を実行する(ステップS767)。次いで、払出制御用CPU371は、カードユニット50のエラー制御を行うプリペイドカードユニットエラー制御処理を実行する(ステップS768)。次いで、払出制御用CPU371は、主基板31に対して賞球情報を出力したり、賞球払出を検出したことを示す賞球信号や遊技機エラー状態信号を外部出力するための情報出力処理を実行する(ステップS769)。また、エラー処理の結果に応じてエラー表示LED374に所定の表示を行う表示制御処理を実行する(ステップS770)。
この実施の形態では、エラー処理において各種エラー(例えば、払出個数異常エラーや、満タンエラー、球切れエラー、プリペイドカードユニット未接続エラー)が検出されると、検出されたエラーに対応するエラービットがセットされる。そして、ステップS770の表示制御処理において、エラービットがセットされていることにづいて、払出制御用CPU371は、エラー表示LED374に所定の表示を行う。
また、この実施の形態では、出力ポートの出力状態に対応したRAM領域(出力ポート0バッファ、出力ポート1バッファ)が設けられているのであるが、払出制御用CPU371は、出力ポート0バッファおよび出力ポート1バッファの内容を出力ポートに出力する(ステップS771:出力処理)。出力ポート0バッファおよび出力ポート1バッファは、プリペイドカード制御処理(ステップS763)、主制御通信処理(ステップS764)、払出モータ制御処理(ステップS766)、情報出力処理(ステップS769)および表示制御処理(ステップS770)で更新される。
図38は、ステップS764の主制御通信処理を示すフローチャートである。主制御通信処理では、払出制御用マイクロコンピュータ370(具体的には、払出制御用CPU371)は、主制御コマンド受信処理(ステップS740)を実行する。そして、払出制御用CPU371は、主制御通信制御コードの値に応じて、ステップS741〜S744のいずれかの処理を実行する。
図39は、主制御通信処理におけるステップS740の主制御コマンド受信処理を示すフローチャートである。払出制御用CPU371は、主制御コマンド受信処理において、まず、接続信号を入力しているか否かを確認する(ステップS74001)。接続信号を入力していなければ、払出制御用CPU101aは、シリアル通信回路380の送信回路および受信回路の初期化を行う(ステップS74002)。このように、接続信号を受信できない場合にシリアル通信回路380の送信回路および受信回路を初期化することによって、主基板31との接続状態が異常な状態下であるにもかかわらずコマンドを送信データレジスタや受信データレジスタに格納してしまう事態を防止することができる。次いで、払出制御用CPU371は、主制御通信制御コードの値をロードし(ステップS74003)、主制御通信制御コードの値が主制御接続確認処理を示す値「0」となっているか否かを確認する(ステップS74004)。
この実施の形態では、主制御通信処理において、遊技機への電源供給が開始されてから遊技制御用マイクロコンピュータ560からの接続信号の入力が開始され、最初の接続確認コマンドの受信を確認できるまでステップS741の主制御接続確認処理が実行される。そして、接続確認コマンドの受信を確認できると、ステップS742以降の処理に移行し、各種払出制御コマンドの送受信の処理が実行される。また、以降、遊技制御用マイクロコンピュータ560との間の通信状態が正常に維持されていれば、ステップS742〜S744のいずれかの処理が実行され、ステップS741の主制御接続確認処理は原則として遊技機への電源投入時にのみ実行されることになる。ステップS74004において、主制御通信制御コードの値が主制御接続確認処理以外の値を示しているということは、ステップS742以降の処理に移行した後に、何らかの通信エラーが生じて接続信号を入力不能となった場合である。そのため、払出制御用CPU371は、ステップS74004で主制御通信制御コードの値が主制御接続確認処理以外の値を示している場合には、エラーフラグの主制御通信エラー指定ビット(遊技制御用マイクロコンピュータ560との間の通信状態に異常が生じたことを示すビット)をセットする(ステップS74005)。なお、エラーフラグは、各種賞球エラーがセットされるフラグであり、払出制御用マイクロコンピュータ370が備えるRAMに形成されている。そして、払出制御用CPU371は、主制御通信制御コードに主制御接続確認処理を示す値「0」をセットする(ステップS74006)。なお、ステップS74004で主制御通信制御コードの値が主制御接続確認処理を示す値「0」となっていれば、そのままステップS74006に移行する。
なお、ステップS741の主制御確認処理は、遊技機への電源投入時以降であっても例外的に実行される場合がある。具体的には、上記したように、ステップS74001で接続信号を入力していないと判定した後、ステップS74004で主制御接続確認処理の実行中でなければ、遊技機への電源投入後に接続信号が切断されてしまった可能性があると判断して主制御接続確認処理に戻り(ステップS74006参照)、再び遊技制御用マイクロコンピュータ560との接続状態を確認する(具体的には、接続確認コマンドを受信できることを確認。ステップS7412参照。)。また、後述する主制御通信通常処理において、接続OKコマンドを送信してから所定期間(この実施の形態では1050ms)を経過しても、遊技制御用マイクロコンピュータ560から接続確認コマンドも賞球個数コマンドも受信していない場合には、何らかの通信異常が生じたものとして主制御接続確認処理に戻り(ステップS74202,S74203参照)、再び遊技制御用マイクロコンピュータ560との接続状態を確認する(具体的には、接続確認コマンドを受信できることを確認。ステップS7412参照。)。
接続信号を入力していれば、払出制御用CPU371は、シリアル通信回路380のステータスレジスタに受信エラーフラグがセットされているか否かを確認する(ステップS74007)。例えば、払出制御用CPU371は、シリアル通信回路380のステータスレジスタにパリティエラーや、フレーミングエラー、ノイズエラー、オーバーランエラー、ブレークコード検出を示すフラグがセットされていれば、シリアル通信回路380の受信エラー状態であると判定する。
受信エラーフラグがセットされていれば、払出制御用CPU371は、シリアル通信回路380の受信回路を初期化する(ステップS74008)。このように、受信エラー状態である場合にシリアル通信回路380の受信回路を初期化することによって、受信データを破棄し、何らかの受信異常が生じているにもかかわらず受信コマンドを受信データレジスタに格納してしまう事態を防止することができる。なお、払出制御用CPU371は、遊技制御用マイクロコンピュータ560と同様に、シリアル通信回路380の受信データレジスタからデータを読み込むことによって受信データレジスタの内容をクリアし、受信データを破棄するようにしてもよい。そして、払出制御用CPU371は、エラーフラグの主制御通信エラー指定ビットをセットする(ステップS74009)。
なお、払出制御用マイクロコンピュータ370のシリアル通信回路380についても、シリアル通信回路380の受信データレジスタからデータを読み込むことによって受信データレジスタの内容をクリアするように構成する場合、受信データが読み出されたときにステータスレジスタのビット5(RDRF)が自動的にクリアされるように構成されていない場合には、払出制御用マイクロコンピュータ370は、受信データレジスタから受信データを読み出すごとに、ステータスレジスタのビット5をクリアする処理を行う必要がある。また、受信データレジスタについても自動的にクリアされるように構成されていない場合には、払出制御用マイクロコンピュータ370は、受信データレジスタから受信データを読み出すごとに、受信データレジスタの内容をクリアする必要がある。
また、例えば、受信データレジスタから受信データを読み出したことにもとづいて、シリアル通信回路380がハードウェア的に、受信データレジスタ内容やステータスレジスタのビット5をクリアするようにしてもよい。この場合、例えば、シリアル通信回路380の割り込み制御回路が、受信データレジスタから受信データが読み出されたことを検出したことにもとづいて、受信データレジスタの内容やステータスレジスタのビット5をクリアするようにしてもよい。
なお、この実施の形態では、既に述べたように、遊技制御用マイクロコンピュータ560は、接続OKコマンドを受信できない場合でも10秒の間隔で接続確認コマンドを送信する制御を行う。また、賞球個数コマンドの送信に対して賞球個数受付コマンドまたは賞球準備中コマンドのいずれも受信できなかった場合であっても、その後、接続確認コマンドの送信に対して接続OKコマンドを受信できれば再び賞球個数コマンドを再送する制御を行う。従って、シリアル通信回路380のエラー状態が解除されば再び接続確認コマンドを受信可能となり、取りこぼした賞球個数コマンドも再送されるのであるから、ステップS74008で受信データを破棄してしまっても、遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370との間の通信が滞ったり、賞球不足が生じたりすることはなく、支障は生じない。
受信エラーフラグもセットされていなければ、払出制御用CPU371は、受信バッファの内容をロードし(ステップS74010)、接続確認コマンドを受信しているか否かを確認する(ステップS74011)。具体的には、払出制御用CPU371は、ロードした受信バッファの内容が「A0(H)」であるか否か(図18参照)を確認する。接続確認コマンドを受信していれば、払出制御用CPU371は、ステップS74014に移行する。
接続確認コマンドを受信していなければ、払出制御用CPU371は、賞球個数コマンドを受信しているか否かを確認する。この実施の形態では、図18に示すように、接続個数コマンドの内容は、少なくとも「51(H)」以上、「60(H)」未満の値となる筈である。従って、払出制御用CPU371は、まず、ロードした受信バッファの内容が賞球個数コマンド最小値「51(H)」以上であるか否かを確認する(ステップS74012)。次いで、賞球個数コマンド最小判定値「51(H)」以上であれば、払出制御用CPU371は、ロードした受信バッファの内容が賞球個数コマンド最大判定値「60(H)」未満であるか否かを確認する(ステップS74013)。賞球個数コマンド最大判定値「60(H)」未満であれば、払出制御用CPU371は、賞球個数コマンドを受信していると判定し、ステップS74014に移行する。
そして、ステップS74014では、払出制御用CPU371は、受信バッファの内容(接続確認コマンド、賞球個数コマンド)を主制御通信受信バッファに格納する。なお、主制御通信受信バッファは、1バイトで構成され、1度に1つの受信コマンドのみを格納することができる。このように構成しても、この実施の形態では、払出制御用マイクロコンピュータ370におけるタイマ割込の周期(例えば、1ms)は、遊技制御用マイクロコンピュータ560におけるタイマ割込の周期(4ms)より短いので、1回のタイマ割込内で複数の払出制御コマンドが受信される事態が生じることはなく、不都合は生じない。また、万一、遊技機への電源投入後、誤処理などにより、最初の接続確認コマンドを受信する前に賞球個数コマンドを受信してしまった場合であっても、その後、接続確認コマンドを受信すれば主制御通信受信バッファに上書きで格納されるので、後述する主制御接続確認処理(ステップS741)で接続確認コマンドを全く確認できず主制御通信通常処理に移行できなくなる事態が生じることを防止することができる。
図40は、主制御通信制御コードの値が0の場合に実行される主制御接続確認処理(ステップS741)を示すフローチャートである。主制御接続確認処理において、払出制御用CPU371は、主制御通信受信バッファの内容をロードし(ステップS7411)、接続確認コマンドを受信しているか否かを確認する(ステップS7412)。接続確認コマンドを受信していれば、払出制御用CPU371は、接続OKコマンドをセットし(ステップS7413)、主制御送信コマンド変換処理を実行する(ステップS7414)。なお、ステップS7414の主制御送信コマンド変換処理では、接続OKコマンドの下位4ビットに制御状態(払出個数異常エラーや、球切れエラー、満タンエラー、賞球エラーなどのエラー状態)をセットする処理が行われる。そして、払出制御用CPU371は、変換後の接続OKコマンドを遊技制御用マイクロコンピュータ560に送信する制御を行う(ステップS7415)。具体的には、払出制御用CPU371は、シリアル通信回路380の送信レジスタに接続OKコマンドを出力する処理を行う。なお、この実施の形態では、レジスタに出力するなどの表現を用いる場合があるが、より具体的には、レジスタにコマンドやデータを書き込む処理を行うことである。例えば、ステップS7415では、払出制御用CPU371は、シリアル通信回路380の送信レジスタに接続コマンドを書き込む処理を行う。このことは、この実施の形態にける他の同様な記載についても同様に当てはまる。
接続OKコマンドにエラー状態を表す情報を含めることによって、遊技制御用マイクロコンピュータ560は、払出制御用マイクロコンピュータ370が認識した不正行為によって発生しうる払出エラーを認識することが可能になる。遊技制御用マイクロコンピュータ560が、払出エラーを認識したときに、それに対する処理を実行するように構成することによって、不正行為に対する対策を強化することができる。
なお、払出制御用CPU371は、ステップS7415で接続OKコマンドを送信すると、主制御通信受信バッファをクリアする。そのようにすることによって、その後の処理で受信コマンドを誤って認識して誤った処理を実行してしまう事態を防止することができる。
次いで、払出制御用CPU371は、主制御通信制御コードに主制御通信通常処理を示す値「1」をセットする(ステップS7416)。そして、払出制御用CPU371は、主制御通信制御タイマに所定値(この実施の形態では1050ms)をセットする(ステップS7417)。
図41および図42は、主制御通信制御コードの値が1の場合に実行される主制御通信通常処理(ステップS742)を示すフローチャートである。主制御通信通常処理において、払出制御用CPU371は、主制御通信制御タイマの値を1減算し(ステップS74201)、主制御通信制御タイマがタイムアウトしたか否かを確認する(ステップS74202)。
この実施の形態では、前述したように、払出制御用マイクロコンピュータ370から接続OKコマンドを受信して1秒経過するごとに、遊技制御用マイクロコンピュータ560から次の接続確認コマンドが送信される。従って、ステップS74202において主制御通信制御タイマがタイムアウトしたということは、接続OKコマンドの送信後1秒を遙かに越えて1050ms(ステップS7417,S74209参照)を経過しても次の接続確認コマンドを受信できなかった場合である。そのため、払出制御用CPU371は、主制御通信制御コードに主制御接続確認処理を示す値「0」をセットして(ステップS74203)、主制御接続確認処理に戻り通信状態の回復を待つように制御する。
なお、払出制御用CPU371は、ステップS74202で主制御通信制御タイマがタイムアウトしていれば、主制御通信受信バッファをクリアする。そのようにすることによって、その後の処理で受信コマンドを誤って認識して誤った処理を実行してしまう事態を防止することができる。
主制御通信制御タイマがタイムアウトしていなければ、払出制御用CPU371は、主制御通信受信バッファに受信コマンドが格納されているか否かを確認する(ステップS74204)。主制御通信受信バッファに受信コマンドが格納されていれば、払出制御用CPU371は、受信したコマンドが接続確認コマンドであるか否かを確認する(ステップS74205)。接続確認コマンドを受信していれば、払出制御用CPU371は、接続OKコマンドをセットし(ステップS74206)、主制御送信コマンド変換処理を実行する(ステップS74207)。なお、ステップS74207の主制御送信コマンド変換処理では、接続OKコマンドの下位4ビットに制御状態(払出個数異常エラーや、球切れエラー、満タンエラー、賞球エラーなどのエラー状態)をセットする処理が行われる。そして、払出制御用CPU371は、変換後の接続OKコマンドを遊技制御用マイクロコンピュータ560に送信する制御を行う(ステップS74208)。具体的には、払出制御用CPU371は、シリアル通信回路380の送信レジスタに接続OKコマンドを出力する処理を行う。
なお、払出制御用CPU371は、ステップS74208で接続OKコマンドを送信すると、主制御通信受信バッファをクリアする。そのようにすることによって、その後の処理で受信コマンドを誤って認識して誤った処理を実行してしまう事態を防止することができる。
そして、払出制御用CPU371は、主制御通信制御タイマに所定値(この実施の形態では1050ms)をセットする(ステップS74209)。
ステップS74205で受信したコマンドが接続確認コマンドでなければ、賞球個数コマンドを受信していることになる。この場合、払出制御用CPU371は、エラーフラグの値が0であるか否かを確認する(ステップS74210)。エラーフラグの値が0でなければ(すなわち、エラー状態であり、いずれかのエラービットがセットされていれば)、ステップS74219に移行する。エラーフラグの値が0であれば(すなわち、エラー状態となっておらず、いずれのエラービットもセットされていなければ)、払出制御用CPU371は、BRDY信号を入力しているか否かを確認する(ステップS74211)。BRDY信号を入力していれば、ステップS74219に移行する。
BRDY信号も入力していなければ、払出制御用CPU371は、払出制御状態を示す払出制御状態フラグをロードし(ステップS74212)、賞球払出動作中または球貸し払出動作中であるか否かを確認する(ステップS74213)。具体的には、払出制御用CPU371は、払出制御状態フラグに賞球払出動作中指定ビット(賞球払出動作中であることを示すビット)または球貸し払出動作中指定ビット(球貸し払出動作中であることを示すビット)がセットされているか否かを確認する。賞球払出動作中または球貸し払出動作中であれば、ステップS74219に移行する。なお、この実施の形態では、賞球払出動作を終了して賞球終了コマンドを受信してから次の賞球個数コマンドが送信されるので、通信エラーなどの異常が発生していないかぎり、ステップS74213において賞球払出動作中であると判定されることはない。
賞球払出動作中でも球貸し払出動作中でもなければ、受信した賞球個数コマンドにもとづく賞球払出動作を直ちに開始できる場合である。この場合、払出制御用CPU371は、主制御通信受信バッファの下位4ビット(すなわち、賞球個数コマンドにセットされた賞球個数)を未払出個数カウンタにセットする(ステップS74214)。なお、未払出個数カウンタは、賞球や貸し球の未払出数をカウントするためのカウンタである。
次いで、払出制御用CPU371は、賞球個数受付コマンドを遊技制御用マイクロコンピュータ560に送信する制御を行う(ステップS74215)。具体的には、払出制御用CPU371は、シリアル通信回路380の送信レジスタに賞球個数受付コマンドを出力する処理を行う。
なお、払出制御用CPU371は、ステップS74215で賞球個数受付コマンドを送信すると、主制御通信受信バッファをクリアする。そのようにすることによって、その後の処理で受信コマンドを誤って認識して誤った処理を実行してしまう事態を防止することができる。
次いで、払出制御用CPU371は、主制御通信制御コードに主制御通信終了処理を示す値「3」をセットする(ステップS74216)。そして、払出制御用CPU371は、主制御通信制御タイマに所定値(例えば、1秒)をセットする(ステップS74218)。なお、ステップS74218でセットされた値にもとづいて、賞球個数受付コマンドを送信した後、1秒経過後に賞球払出動作を完了していなければ賞球準備中コマンドが送信されることになる。
ステップS74219では、払出制御用CPU371は、主制御通信受信バッファの下位4ビット(すなわち、賞球個数コマンドのセットされた賞球個数)を主制御通信賞球個数バッファに格納する。すなわち、この場合、何らかのエラー状態が発生していたり、賞球払出動作中や球貸し払出動作中、球貸し準備中の場合であるので、受信した賞球個数コマンドにもとづく賞球払出動作を直ちに開始することはできない。そのため、払出制御用CPU371は、賞球個数受付コマンドの返信を保留するとともに、賞球個数コマンドにセットされた賞球個数を主制御通信賞球個数バッファに一旦退避する。
次いで、払出制御用CPU371は、賞球準備中コマンドをセットし(ステップS74220)、主制御送信コマンド変換処理を実行する(ステップS74221)。なお、ステップS74221の主制御送信コマンド変換処理では、賞球準備中コマンドの下位4ビットに制御状態(払出個数異常エラーや、球切れエラー、満タンエラー、賞球エラーなどのエラー状態)をセットする処理が行われる。そして、払出制御用CPU371は、変換後の賞球準備中コマンドを遊技制御用マイクロコンピュータ560に送信する制御を行う(ステップS74222)。具体的には、払出制御用CPU371は、シリアル通信回路380の送信レジスタに賞球準備中コマンドを出力する処理を行う。
なお、払出制御用CPU371は、ステップS74222で賞球準備中コマンドを送信すると、主制御通信受信バッファをクリアする。そのようにすることによって、その後の処理で受信コマンドを誤って認識して誤った処理を実行してしまう事態を防止することができる。
次いで、払出制御用CPU371は、主制御通信制御コードに主制御通信中処理を示す値「2」をセットする(ステップS74223)。そして、払出制御用CPU371は、主制御通信制御タイマに所定値(この実施の形態では1秒)をセットする(ステップS74224)。なお、ステップS74224でセットされた値にもとづいて、賞球準備中コマンドを送信した後、1秒経過後にまだ賞球払出動作を開始できる状態になっていなければ次の賞球準備中コマンドが送信されることになる。
図43および図44は、主制御通信制御コードの値が2の場合に実行される主制御通信中処理(ステップS743)を示すフローチャートである。主制御通信中処理において、払出制御用CPU371は、まず、主制御通信受信バッファに受信コマンドが格納されているか否かを確認する(ステップS74301)。主制御通信受信バッファに受信コマンドが格納されていれば、払出制御用CPU371は、受信したコマンドが接続確認コマンドであるか否かを確認する(ステップS74302)。接続確認コマンドでなければ、ステップS74306に移行する。接続確認コマンドを受信していれば、払出制御用CPU371は、接続OKコマンドをセットし(ステップS74303)、主制御送信コマンド変換処理を実行する(ステップS74304)。なお、ステップS74304の主制御送信コマンド変換処理では、接続OKコマンドの下位4ビットに制御状態(払出個数異常エラーや、球切れエラー、満タンエラー、賞球エラーなどのエラー状態)をセットする処理が行われる。そして、払出制御用CPU371は、変換後の接続OKコマンドを遊技制御用マイクロコンピュータ560に送信する制御を行う(ステップS74305)。具体的には、払出制御用CPU371は、シリアル通信回路380の送信レジスタに接続OKコマンドを出力する処理を行う。そして、ステップS74306に移行する。
ステップS74306では、払出制御用CPU371は、エラーフラグに主制御通信エラー指定ビットをセットする。すなわち、主制御通信中処理は、賞球個数コマンドを受信した後、受信した賞球個数コマンドにもとづく賞球払出動作を開始可能な状態となるまでに実行される処理であり、賞球個数受付コマンドの返信が保留されて、遊技制御用マイクロコンピュータ560は賞球個数受付コマンドの受信待ち状態となっているのであるから、この間に遊技制御用マイクロコンピュータ560から新たに払出制御コマンドを受信することはない筈である。それにもかかわらず、新たなコマンドを受信したということは通信状態に何らかの異常が生じたと判断することができるのであるから、払出制御用CPU371は、主制御通信エラー指定ビットをセットする処理を行う。
なお、払出制御用CPU371は、ステップS74306で主制御通信エラー指定ビットをセットすると、主制御通信受信バッファをクリアする。そのようにすることによって、その後の処理で受信コマンドを誤って認識して誤った処理を実行してしまう事態を防止することができる。
次いで、払出制御用CPU371は、主制御通信制御コードに主制御通信通常処理を示す値「1」をセットする(ステップS74307)。そして、払出制御用CPU371は、主制御通信制御タイマに所定値(この実施の形態では1050ms)をセットする(ステップS74308)。
主制御通信受信バッファに受信コマンドがなければ、払出制御用CPU371は、主制御通信制御タイマの値を1減算し(ステップS74309)、主制御通信制御タイマがタイムアウトしたか否かを確認する(ステップS74310)。
主制御通信制御タイマがタイムアウトしていれば(ステップS74310のY)、賞球準備中コマンドを前回送信してから1秒以上経過したことを意味する。この場合、払出制御用CPU371は、次の賞球準備中コマンドを送信するために、賞球準備中コマンドをセットし(ステップS74311)、主制御送信コマンド変換処理を実行する(ステップS74312)。なお、ステップS74312の主制御送信コマンド変換処理では、賞球準備中コマンドの下位4ビットに制御状態(払出個数異常エラーや、球切れエラー、満タンエラー、賞球エラーなどのエラー状態)をセットする処理が行われる。そして、払出制御用CPU371は、変換後の賞球準備中コマンドを遊技制御用マイクロコンピュータ560に送信する制御を行う(ステップS74313)。具体的には、払出制御用CPU371は、シリアル通信回路380の送信レジスタに賞球準備中コマンドを出力する処理を行う。
そして、払出制御用CPU371は、主制御通信制御タイマに所定値(この実施の形態では1秒)をセットする(ステップS74314)。なお、ステップS74314でセットされた値にもとづいて、賞球準備中コマンドを送信した後、さらに1秒経過後にまだ賞球払出動作を開始できる状態になっていなければ次の賞球準備中コマンドが送信されることになる。
主制御通信制御タイマがタイムアウトしていなければ、払出制御用CPU371は、エラーフラグの値が0であるか否かを確認する(ステップS74315)。エラーフラグの値が0でなければ(すなわち、エラー状態であり、いずれかのエラービットがセットされていれば)、まだ賞球払出動作を開始できないので、そのまま処理を終了する。エラーフラグの値が0であれば(すなわち、エラー状態となっておらず、いずれのエラービットもセットされていなければ)、払出制御用CPU371は、BRDY信号を入力しているか否かを確認する(ステップS74316)。BRDY信号を入力していれば、まだ賞球払出動作を開始できないので、そのまま処理を終了する。
BRDY信号も入力していなければ、払出制御用CPU371は、払出制御状態を示す払出制御状態フラグをロードし(ステップS74317)、賞球払出動作中または球貸し払出動作中であるか否かを確認する(ステップS74318)。具体的には、払出制御用CPU371は、払出制御状態フラグに賞球払出動作中指定ビット(賞球払出動作中であることを示すビット)または球貸し払出動作中指定ビット(球貸し払出動作中であることを示すビット)がセットされているか否かを確認する。賞球払出動作中または球貸し払出動作中であれば、まだ賞球払出動作を開始できないので、そのまま処理を終了する。なお、この実施の形態では、賞球払出動作を終了して賞球終了コマンドを受信してから次の賞球個数コマンドが送信されるので、通信エラーなどの異常が発生していないかぎり、ステップS74318において賞球払出動作中であると判定されることはない。
賞球払出動作中でも球貸し払出動作中でもなければ、受信した賞球個数コマンドにもとづく賞球払出動作を開始可能な状態となったことを意味する。この場合、払出制御用CPU371は、主制御通信賞球個数バッファの下位4ビット(すなわち、一時退避した賞球個数)を未払出個数カウンタにセットする(ステップS74319)。
なお、この実施の形態では、既に述べたように、賞球個数コマンドを受信したときに直ちに賞球払出動作を開始できない場合に、賞球個数コマンドで特定される賞球個数を直ちに未払出個数カウンタにセットするのではなく、主制御通信賞球個数バッファに一旦退避するのであるが、このように制御するのは、例えば、貸し球払出動作中に未払出個数カウンタに賞球個数が上乗せされて賞球個数を正確に管理できなくなる事態を防止するなど、払出制御に関する処理に不都合が生じないようにするためである。
次いで、払出制御用CPU371は、賞球個数受付コマンドを遊技制御用マイクロコンピュータ560に送信する制御を行う(ステップS74320)。具体的には、払出制御用CPU371は、シリアル通信回路380の送信レジスタに賞球個数受付コマンドを出力する処理を行う。
次いで、払出制御用CPU371は、主制御通信制御コードに主制御通信終了処理を示す値「3」をセットする(ステップS74321)。そして、払出制御用CPU371は、主制御通信制御タイマに所定値(この実施の形態では1秒)をセットする(ステップS74322)。なお、ステップS74322でセットされた値にもとづいて、賞球個数受付コマンドを送信した後、1秒経過後に賞球払出動作を完了していなければ賞球準備中コマンドが送信されることになる。
図45は、主制御通信制御コードの値が3の場合に実行される主制御通信終了処理(ステップS744)を示すフローチャートである。主制御通信終了処理において、払出制御用CPU371は、まず、主制御通信受信バッファに受信コマンドが格納されているか否かを確認する(ステップS74401)。主制御通信受信バッファに受信コマンドが格納されていれば、払出制御用CPU371は、受信したコマンドが接続確認コマンドであるか否かを確認する(ステップS74402)。接続確認コマンドでなければ、ステップS74406に移行する。接続確認コマンドを受信していれば、払出制御用CPU371は、接続OKコマンドをセットし(ステップS74403)、主制御送信コマンド変換処理を実行する(ステップS74404)。なお、ステップS74404の主制御送信コマンド変換処理では、接続OKコマンドの下位4ビットに制御状態(払出個数異常エラーや、球切れエラー、満タンエラー、賞球エラーなどのエラー状態)をセットする処理が行われる。そして、払出制御用CPU371は、変換後の接続OKコマンドを遊技制御用マイクロコンピュータ560に送信する制御を行う(ステップS74405)。具体的には、払出制御用CPU371は、シリアル通信回路380の送信レジスタに接続OKコマンドを出力する処理を行う。そして、ステップS74406に移行する。
ステップS74406では、払出制御用CPU371は、エラーフラグに主制御通信エラー指定ビットをセットする。すなわち、主制御通信終了処理は、賞球個数コマンドを受信して賞球払出動作を開始した後、受信した賞球個数コマンドにもとづく賞球払出動作を終了するまで実行する処理であり、技制御用マイクロコンピュータ560は賞球終了コマンドの受信待ち状態となっているのであるから、この間に遊技制御用マイクロコンピュータ560から新たに払出制御コマンドを受信することはない筈である。それにもかかわらず、新たなコマンドを受信したということは通信状態に何らかの異常が生じたと判断することができるのであるから、払出制御用CPU371は、主制御通信エラー指定ビットをセットする処理を行う。
なお、払出制御用CPU371は、ステップS74406で主制御通信エラー指定ビットをセットすると、主制御通信受信バッファをクリアする。そのようにすることによって、その後の処理で受信コマンドを誤って認識して誤った処理を実行してしまう事態を防止することができる。
次いで、払出制御用CPU371は、主制御通信制御コードに主制御通信通常処理を示す値「1」をセットする(ステップS74407)。そして、払出制御用CPU371は、主制御通信制御タイマに所定値(この実施の形態では1050ms)をセットする(ステップS74408)。
主制御通信受信バッファに受信コマンドがなければ、払出制御用CPU371は、主制御通信制御タイマの値を1減算し(ステップS74409)、主制御通信制御タイマがタイムアウトしたか否かを確認する(ステップS74410)。
主制御通信制御タイマがタイムアウトしていれば(ステップS74410のY)、賞球個数受付コマンドや賞球準備中コマンドを前回送信してから1秒以上経過したことを意味する。この場合、払出制御用CPU371は、次の賞球準備中コマンドを送信するために、賞球準備中コマンドをセットし(ステップS74411)、主制御送信コマンド変換処理を実行する(ステップS74412)。なお、ステップS74412の主制御送信コマンド変換処理では、賞球準備中コマンドの下位4ビットに制御状態(払出個数異常エラーや、球切れエラー、満タンエラー、賞球エラーなどのエラー状態)をセットする処理が行われる。そして、払出制御用CPU371は、変換後の賞球準備中コマンドを遊技制御用マイクロコンピュータ560に送信する制御を行う(ステップS74413)。具体的には、払出制御用CPU371は、シリアル通信回路380の送信レジスタに賞球準備中コマンドを出力する処理を行う。
そして、払出制御用CPU371は、主制御通信制御タイマに所定値(この実施の形態では1秒)をセットする(ステップS74414)。なお、ステップS74414でセットされた値にもとづいて、賞球準備中コマンドを送信した後、さらに1秒経過後にまだ賞球払出動作が終了していなければ次の賞球準備中コマンドが送信されることになる。
主制御通信制御タイマがタイムアウトしていなければ、払出制御用CPU371は、払出制御状態フラグをロードし(ステップS74415)、賞球払出動作中であるか否かを確認する(ステップS74416)。具体的には、払出制御用CPU371は、払出制御状態フラグに賞球払出動作中指定ビットがセットされているか否かを確認する。賞球払出動作中であれば、受信した賞球個数コマンドにもとづく賞球払出動作をまだ終了していないことを意味するので、払出制御用CPU371は、そのまま処理を終了する。賞球払出動作中でなければ、受信した賞球個数コマンドにもとづく賞球払出動作を終了したことを意味する。そのため、払出制御用CPU371は、賞球終了コマンドを遊技制御用マイクロコンピュータ560に送信する制御を行う(ステップS74417)。具体的には、払出制御用CPU371は、シリアル通信回路380の送信レジスタに賞球終了コマンドを出力する処理を行う。
なお、払出制御用CPU371は、ステップS74417で賞球終了コマンドを送信すると、主制御通信受信バッファをクリアする。そのようにすることによって、その後の処理で受信コマンドを誤って認識して誤った処理を実行してしまう事態を防止することができる。
次いで、払出制御用CPU371は、主制御通信制御コードに主制御通信通常処理を示す値「1」をセットする(ステップS74418)。そして、払出制御用CPU371は、主制御通信制御タイマに所定値(この実施の形態では1050ms)をセットする(ステップS74419)。
次に、演出制御手段の動作を説明する。図46は、演出制御基板80に搭載されている演出制御手段としての演出制御用マイクロコンピュータ100(具体的には、演出制御用CPU101a)が実行するメイン処理を示すフローチャートである。演出制御用CPU101aは、電源が投入されると、メイン処理の実行を開始する。メイン処理では、まず、RAM領域のクリアや各種初期値の設定、また演出制御の起動間隔(例えば、2ms)を決めるためのタイマの初期設定等を行うための初期化処理を行う(ステップS781)。
その後、演出制御用CPU101aは、所定の乱数を生成するためのカウンタのカウンタ値を更新する乱数更新処理を実行する(ステップS782)。そして、タイマ割込フラグの監視(ステップS783)を行う。タイマ割込フラグがセットされていない場合には、ステップS782に移行する。なお、タイマ割込が発生すると、演出制御用CPU101aは、タイマ割込処理においてタイマ割込フラグをセットする。タイマ割込フラグがセットされていたら、演出制御用CPU101aは、そのフラグをクリアし(ステップS784)、ステップS785〜S786の演出制御処理、および入賞口スイッチの検出信号の状態の異常を検出するための異常判定処理(ステップS787)を実行する。
演出制御処理において、演出制御用CPU101aは、まず、受信した演出制御コマンドを解析し、受信した演出制御コマンドに応じたフラグをセットする処理等を行う(コマンド解析処理:ステップS785)。
次いで、演出制御用CPU101aは、演出制御プロセス処理を行う(ステップS786)。演出制御プロセス処理では、制御状態に応じた各プロセスのうち、現在の制御状態(演出制御プロセスフラグ)に対応した処理を選択して演出表示装置9の表示制御を実行する。
図47は、コマンド解析処理(ステップS785)の具体例を示すフローチャートである。主基板31から受信された演出制御コマンドは受信コマンドバッファに格納されるが、コマンド解析処理では、演出制御用CPU101aは、コマンド受信バッファに格納されているコマンドの内容を確認する。
コマンド解析処理において、演出制御用CPU101aは、まず、コマンド受信バッファに受信コマンドが格納されているか否か確認する(ステップS611)。格納されているか否かは、コマンド受信個数カウンタの値と読出ポインタとを比較することによって判定される。両者が一致している場合が、受信コマンドが格納されていない場合である。コマンド受信バッファに受信コマンドが格納されている場合には、演出制御用CPU101aは、コマンド受信バッファから受信コマンドを読み出す(ステップS612)。なお、読み出したら読出ポインタの値を+2しておく(ステップS613)。+2するのは2バイト(1コマンド)ずつ読み出すからである。
受信した演出制御コマンドが入力ポート状態指定コマンド(図21参照)であれば(ステップS614)、演出制御用CPU101aは、受信した変動パターンコマンドを、RAMに形成されている入力ポート状態指定コマンド格納領域に格納する(ステップS615)。そして、入力ポート状態指定コマンド受信フラグをセットする(ステップS616)。
受信した演出制御コマンドがその他のコマンドであれば、演出制御用CPU101aは、受信した演出制御コマンドに応じたフラグをセットする(ステップS621)。そして、ステップS611に移行する。
なお、入力ポート状態指定コマンド以外のコマンドとして、図21に示されたような飾り図柄の変動に関するコマンド等がある。
図48は、図46に示されたメイン処理における演出制御プロセス処理(ステップS786)を示すフローチャートである。演出制御プロセス処理では、演出制御用CPU101aは、演出制御プロセスフラグの値に応じてステップS800〜S806のうちのいずれかの処理を行う。各処理において、以下のような処理を実行する。なお、演出制御プロセス処理では、演出表示装置9の表示状態が制御され、飾り図柄の可変表示が実現される。
変動パターンコマンド受信待ち処理(ステップS800):遊技制御用マイクロコンピュータ560から変動パターンコマンドを受信しているか否か確認する。具体的には、コマンド解析処理でセットされる変動パターンコマンド受信フラグ(変動パターンコマンドを受信したことを示すフラグ)がセットされているか否か確認する。変動パターンコマンドを受信していれば、演出制御プロセスフラグの値を飾り図柄変動開始処理(ステップS801)に対応した値に変更する。
飾り図柄変動開始処理(ステップS801):飾り図柄の変動が開始されるように制御する。そして、演出制御プロセスフラグの値を飾り図柄変動中処理(ステップS802)に対応した値に更新する。
飾り図柄変動中処理(ステップS802):変動パターンを構成する各変動状態(変動速度)の切替タイミング等を制御するとともに、変動時間の終了を監視する。そして、変動時間が終了したら、演出制御プロセスフラグの値を飾り図柄変動停止処理(ステップS803)に対応した値に更新する。
飾り図柄変動停止処理(ステップS803):飾り図柄の変動を停止し表示結果(停止図柄)を導出表示する制御を行う。そして、演出制御プロセスフラグの値を大当り表示処理(ステップS804)または変動パターンコマンド受信待ち処理(ステップS800)に対応した値に更新する。
大当り表示処理(ステップS804):大当りである場合には、変動時間の終了後、演出表示装置9に大当りの発生を報知するための画面を表示する制御を行う。そして、演出制御プロセスフラグの値を大当り遊技中処理(ステップS805)に対応した値に更新する。
大当り遊技中処理(ステップS805):大当り遊技中の制御を行う。例えば、大入賞口開放中指定コマンドや大入賞口開放後指定コマンドを受信したら、演出表示装置9におけるラウンド数の表示制御等を行う。そして、演出制御プロセスフラグの値を大当り終了演出処理(ステップS806)に対応した値に更新する。
大当り終了演出処理(ステップS806):演出表示装置9において、大当り遊技状態が終了したことを遊技者に報知する表示制御を行う。そして、演出制御プロセスフラグの値を変動パターンコマンド受信待ち処理(ステップS800)に対応した値に更新する。
次に、演出制御用マイクロコンピュータ100が実行する入賞異常の処理を説明する。図49は、入賞異常の検出方法の一例を示す説明図である。図49に示す例では、入賞口スイッチ(始動口スイッチ14a、カウントスイッチ23、および各入賞口スイッチ29a,30a)のそれぞれについて、検出信号のオン状態が1秒を越えて継続したら入賞異常が生じたと判定する。なお、1秒の時間は一例であり、異常検出のための時間は1秒に限られない。また、入賞異常とは、入賞口スイッチの検出信号の状態の異常である。
図50は、演出制御用マイクロコンピュータ100が入賞異常の検出に関して使用するタイマの一例を示す説明図である。図50に示すように、入賞異常の検出に関して使用するタイマとして、始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマ、カウントスイッチ23に対応するタイマがある。なお、各タイマはRAMに形成されている。
図51は、ステップS787の異常判定処理を示すフローチャートである。異常判定処理において、演出制御用CPU101aは、始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマおよびカウントスイッチ23に対応するタイマのうちのいずれかのタイマの値が0以外の値(動作中であることに相当)であるか否か確認する(ステップS711)。動作中のタイマがあれば、そのタイマの値を+1する(ステップS712)。なお、入賞異常の検出方法の他の例(図52〜図54参照)のようにタイマ動作中フラグを用い、タイマが動作中であるか否かをタイマ動作中フラグによって確認するようにしてもよい。
また、演出制御用CPU101aは、いずれかのタイマの値が500(1秒に相当)を越えたか否か確認する(ステップS713)。500を越えたタイマがあれば、演出表示装置9に、「入賞異常が生じた旨」の表示を行う(ステップS714)。また、音声出力基板70に、異常報知音に相当する音番号データを出力する(ステップS715)。
ステップS714,S715の処理によって、演出表示装置9において異常報知の表示がなされるとともに、スピーカ27が異常報知音が出力される。なお、ステップS714,S715の処理において、いずれのスイッチに入賞異常が生じたのかを区別可能な表示および音出力を行ってもよい。
また、演出制御用CPU101aは、入力ポート状態指定コマンドを受信したことを示す入力ポート状態指定コマンド受信フラグがセットされているか否か確認する(ステップS716)。入力ポート状態指定コマンド受信フラグがセットされていない場合には処理終了する。入力ポート状態指定コマンド受信フラグがセットされている場合には、入力ポート状態指定コマンド受信フラグをリセットし(ステップS717)、入力ポート状態指定コマンド格納領域に格納されている入力ポート状態指定コマンドのデータである入力ポート0(遊技制御手段における入力ポート0)の状態を示すデータにおいて、ビット0,2,3,4のいずれか1つ以上が「1」に変化したか否か確認する(ステップS718)。
ステップS718では、演出制御用CPU101aは、ステップS721の処理でRAMに格納される前回値と、入力ポート状態指定コマンドのデータとを比較する。
「1」になったビットがあれば、そのビットに対応するタイマ(始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマ、またはカウントスイッチ23に対応するタイマ)に「1」をセットする(ステップS720)。
また、入力ポート0の状態を示すデータにおいて「1」になったビットがない場合には、「0」になったビットに対応するタイマの値を0に初期化する(ステップS719)。なお、遊技制御用マイクロコンピュータ560は、入力ポート0のいずれかのビットが変化した場合に、入力ポート状態指定コマンドを送信するので、「1」に変化したビットがないということは、「0」に変化したビットが存在することを意味する。
遊技制御用マイクロコンピュータ560は、入力ポート0のいずれかのビット(図11に示す入力ポート0のビット0,2,3,4のいずれか)の値が変化した場合(スイッチの検出信号の状態が変化した場合に相当)に、入力ポート0の各ビットの状態を設定した入力ポート状態指定コマンドを出力するので、ステップS718,S719の処理によって、オン状態に変化したスイッチに対応するタイマが動作中になる。そして、動作中になったタイマに対応するビットの値が「0」にならない限りタイマの値は歩進するので(ステップS711,S712の処理により)、タイマの値が500を越えたということは、スイッチの検出信号の状態が1秒を越えて継続したオン状態であったことを意味する。
演出制御用CPU101aが、ステップS713,S714,S715の処理を実行することによって、図49に示されたような異常判定を行うことができる。
図52は、入賞異常の検出方法の他の例を示す説明図である。図52に示す例では、入賞口スイッチ(始動口スイッチ14a、カウントスイッチ23、および各入賞口スイッチ29a,30a)のそれぞれについて、所定時間内(図52に示す例では、0.5秒)に検出信号の状態が所定回以上(図52に示す例では、10回を越えた)オンになった(具体的には、オフからオンに変化した)場合に、入賞異常が生じたと判定する。なお、0.5秒は一例であり、異常検出のための所定時間は0.5秒に限られない。また、10回を越えたことも一例である。
図53は、演出制御用マイクロコンピュータ100が入賞異常の検出に関して使用するタイマ、フラグおよびカウンタの一例を示す説明図である。図53に示すように、入賞異常の検出に関して使用するタイマとして、始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマ、カウントスイッチ23に対応するタイマがある。また、入賞異常の検出に関して使用するフラグとして、始動口スイッチ14aに対応するタイマ動作中フラグ、入賞口スイッチ30aに対応するタイマ動作中フラグ、入賞口スイッチ29aに対応するタイマ動作中フラグ、カウントスイッチ23に対応するタイマ動作中フラグがある。また、入賞異常の検出に関して使用するカウンタとして、始動口スイッチ14aに対応するカウンタ、入賞口スイッチ30aに対応するカウンタ、入賞口スイッチ29aに対応するカウンタ、カウントスイッチ23に対応するカウンタがある。なお、各カウンタはRAMに形成されている。
図54は、図52に例示されたような異常検出を行う場合のステップS787の異常判定処理を示すフローチャートである。異常判定処理において、演出制御用CPU101aは、始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマおよびカウントスイッチ23に対応するタイマのうちのいずれかのタイマの値が動作中(タイマ動作中フラグがオン状態)であるか否か確認する(ステップS711)。動作中のタイマがあれば、そのタイマの値を+1する(ステップS712)。
また、演出制御用CPU101aは、入力ポート状態指定コマンドを受信したことを示す入力ポート状態指定コマンド受信フラグがセットされているか否か確認する(ステップS716)。入力ポート状態指定コマンド受信フラグがセットされていない場合にはステップS735に移行する。入力ポート状態指定コマンド受信フラグがセットされている場合には、入力ポート状態指定コマンド受信フラグをリセットし(ステップS717)、入力ポート状態指定コマンド格納領域に格納されている入力ポート状態指定コマンドのデータである入力ポート0(遊技制御手段における入力ポート0)の状態を示すデータにおいて、ビット0,2,3,4のいずれか1つ以上が「1」に変化したか否か確認する(ステップS731)。
ステップS731では、演出制御用CPU101aは、ステップS739の処理でRAMに格納される前回値と、入力ポート状態指定コマンドのデータとを比較する。
「1」に変化したビットがあれば、そのビットに対応するカウンタ(始動口スイッチ14aに対応するカウンタ、入賞口スイッチ30aに対応するカウンタ、入賞口スイッチ29aに対応するカウンタ、またはカウントスイッチ23に対応するカウンタ)の値を+1する(ステップS732)。また、「1」に変化したビットに対応するタイマが動作中でなければ(ステップS733)、そのビットに対応するタイマ動作中フラグをセットする(オン状態にする)(ステップS734)。
また、演出制御用CPU101aは、いずれかのタイマ(始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマ、またはカウントスイッチ23に対応するタイマ)の値が250(0.5秒に相当)を越えたか否か確認する(ステップS735)。250を越えたタイマがなければ、ステップS739に移行する。250を越えたタイマがあれば、そのタイマに対応するカウンタの値を確認する(ステップS736)。カウンタの値が10を越えていれば、演出表示装置9に、「入賞異常が生じた旨」の表示を行う(ステップS740)。また、音声出力基板70に、異常報知音に相当する音番号データを出力する(ステップS741)。
演出制御用CPU101aは、値が10以下のカウンタがあれば、そのカウンタの値を0にクリアする(ステップS737)。また、対応するタイマ動作中フラグをリセットする(オフ状態にする)とともに、対応するタイマの値を0に初期化する(ステップS738)。
そして、入力ポート状態指定コマン格納領域のデータを、前回値としてRAMに格納する(ステップS739)。
遊技制御用マイクロコンピュータ560は、入力ポート0のいずれかのビット(図11に示す入力ポート0のビット0,2,3,4のいずれか)の値が変化した場合(スイッチの検出信号の状態が変化した場合に相当)に、入力ポート0の各ビットの状態を設定した入力ポート状態指定コマンドを出力するが、ステップS731の処理で「1」に変化したビットがあったということは、入力ポートの当該ビットの状態が「0」から「1」に変化した(スイッチの検出信号がオフ状態からオン状態に変化したことに相当)ことを意味する。よって、ステップS732の処理は、スイッチの検出信号がオフ状態からオン状態に変化した回数を計数する処理になる。
また、ステップS735,S736の処理で0.5秒が経過した場合にカウンタの値をチェックすることは、0.5秒間のスイッチの検出信号がオン状態に変化した回数を確認することに相当する。すなわち、図52に示されたような異常判定が実行されることになる。
図20(B)に例示されたような不正行為が行われると、スイッチの検出信号の状態は図20(C)の下段に例示されたような状態になる可能性があるが、図54に示された処理によって、図20(C)の下段に示されたような信号状態が生ずると、異常が検出される(図52参照)。すなわち、図54に示された処理は、図20に例示されたような不正行為を検知できる処理である。
図55は、入賞異常の検出方法のさらに他の例を示す説明図である。図55に示す例では、正常に遊技球が入賞口スイッチを通過する場合には、入賞口スイッチ(始動口スイッチ14a、カウントスイッチ23、および各入賞口スイッチ29a,30a)の検出信号が、少なくとも50ミリ秒(50ms)間、オン状態を継続するような近接スイッチが用いられている場合を想定する。
図55に示すように、遊技球がスイッチの通過時に、本来、例えば50ms以上オン状態が継続するはずであるのに対して、検出信号がオン状態になっている時間(例えば、50ms)の中途で強制的にオフ状態にされた場合には、実際には、1個の遊技球がスイッチによって検出されているにもかかわらず、複数回スイッチがオンしたと判定されてしまう。そこで、演出制御用マイクロコンピュータ100は、入力ポート状態指定コマンドにもとづいて、各々のスイッチの検出信号がオン状態に変化したらオフ状態になるまでの時間を計測し、計測した時間が例えば50msよりも短い場合に、異常が生じた(例えば、不正行為を受けた。)と判定することが好ましい。なお、50msは一例であり、使用するスイッチの特性等に応じて変わりうる。
また、連続して遊技球がスイッチを通過する場合でもスイッチが1個目の遊技球の通過完了を検出(検出信号がオフになったときに相当)してから2個目の遊技球の検出開始を検出する(検出信号がオンになったときに相当)までの間に少なくとも所定時間(例えば、30ms)がある。そこで、検出信号のオフ期間(オン状態からオフ状態に変化した時点から、再びオン状態になるまでの期間)が所定期間(すなわち、この例における30ms)よりも短い場合には、異常が生じた(例えば、不正行為を受けた。)と判定する。この例では、オフ期間が30ms以下である場合に、異常が生じたと判定する。なお、30msは一例であり、異常検出のための所定期間は30m秒に限られない。
また、この例では、図53に示された例と同様に、入賞異常の検出に関して、始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマ、カウントスイッチ23に対応するタイマを使用する。また、入賞異常の検出に関して使用するフラグとして、始動口スイッチ14aに対応するタイマ動作中フラグ、入賞口スイッチ30aに対応するタイマ動作中フラグ、入賞口スイッチ29aに対応するタイマ動作中フラグ、カウントスイッチ23に対応するタイマ動作中フラグを使用する。ただし、カウンタは使用されない。
図56は、図55に例示されたような異常検出(検出信号のオフ期間が所定期間(例えば、30ms)以下である場合に異常が生じたと判定)を行う場合のステップS787の異常判定処理を示すフローチャートである。異常判定処理において、演出制御用CPU101aは、始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマおよびカウントスイッチ23に対応するタイマのうちのいずれかのタイマの値が動作中(タイマ動作中フラグがオン状態)であるか否か確認する(ステップS711)。動作中のタイマがあれば、そのタイマの値を+1する(ステップS712)。
また、演出制御用CPU101aは、入力ポート状態指定コマンドを受信したことを示す入力ポート状態指定コマンド受信フラグがセットされているか否か確認する(ステップS716)。入力ポート状態指定コマンド受信フラグがセットされていない場合には処理を終了する。入力ポート状態指定コマンド受信フラグがセットされている場合には、入力ポート状態指定コマンド受信フラグをリセットし(ステップS717)、入力ポート状態指定コマンド格納領域に格納されている入力ポート状態指定コマンドのデータである入力ポート0(遊技制御手段における入力ポート0)の状態を示すデータにおいて、ビット0,2,3,4のいずれか1つ以上が「0」に変化したか否か確認する(ステップS751)。
ステップS751の処理では、演出制御用CPU101aは、ステップS756の処理でRAMに格納される前回値と、入力ポート状態指定コマンドのデータとを比較する。
「0」に変化したビットがあれば、そのビットに対応するタイマ動作中フラグをセットする(オン状態にする)(ステップS752)。
また、演出制御用CPU101aは、入力ポート状態指定コマンド格納領域に格納されている入力ポート状態指定コマンドのデータである入力ポート0の状態を示すデータにおいて、ビット0,2,3,4のいずれか1つ以上が「1」に変化したか否か確認する(ステップS753)。「1」に変化したビットがなければ、ステップS756に移行する。
ステップS753の処理では、演出制御用CPU101aは、ステップS756の処理でRAMに格納される前回値と、入力ポート状態指定コマンドのデータとを比較する。
「1」に変化したビットがある場合には、そのビットに対応するタイマの値を確認する(ステップS754)。ステップS754では、演出制御用CPU101aは、タイマの値が15以下(30ms以下に相当)であるか否か確認する。タイマの値が15を越えている場合には、そのビットに対応するタイマ動作中フラグをリセットする(オフ状態にする)とともに、対応するタイマの値を0に初期化する(ステップS755)。また、入力ポート状態指定コマン格納領域のデータを、前回値としてRAMに格納する(ステップS756)。
タイマの値が15以下である場合には、演出制御用CPU101aは、演出表示装置9に、「入賞異常が生じた旨」の表示を行う(ステップS757)。また、音声出力基板70に、異常報知音に相当する音番号データを出力する(ステップS758)。
遊技制御用マイクロコンピュータ560は、入力ポート0のいずれかのビット(図11に示す入力ポート0のビット0,2,3,4のいずれか)の値が変化した場合(スイッチの検出信号の状態が変化した場合に相当)に、入力ポート0の各ビットの状態を設定した入力ポート状態指定コマンドを出力するが、ステップS751の処理で「0」に変化したビットがあったということは、入力ポートの当該ビットの状態が「1」から「0」に変化した(スイッチの検出信号がオン状態からオフ状態に変化したことに相当)ことを意味する。よって、ステップS752の処理は、スイッチの検出信号がオン状態からオフ状態に変化した場合に、タイマを起動する処理に相当する。
また、ステップS753の処理で「1」に変化したビットがあったということは、入力ポートの当該ビットの状態が「0」から「1」に変化した(スイッチの検出信号がオフ状態からオン状態に変化したことに相当)ことを意味する。よって、ステップS753の処理は、スイッチの検出信号がオフ状態からオン状態に変化したか否か判定する処理になる。そして、ステップS754の処理でタイマの値をチェックすることは、検出信号がオフ状態で合った期間が30ms以下であったか否か判定することに相当する。すなわち、図55に示されたような異常判定が実行されることになる。
図20(B)に例示されたような不正行為が行われると、スイッチの検出信号の状態は図20(C)の下段に例示されたような状態になる可能性があるが、図55に示された処理によって、図20(C)の下段に示されたような信号状態が生じ場合に検出信号がオフ状態である期間が所定期間(この例では、30ms)以下であれば、異常として検出される(図55参照)。すなわち、図56に示された処理は、図20に例示されたような不正行為を検知可能な処理である。
なお、演出制御用CPU101aは、ステップS787の異常判定処理において、図51に示された処理と、図54に示された処理と、図56に示された処理とのいずれかを実行してもよいが、各処理のうちの2つ以上を実行するようにしてもよい。
また、この実施の形態では、演出制御用CPU101aは、入賞異常が生じたと判定したときに、演出表示装置9に「入賞異常が生じた旨」の表示を行うとともに音声出力基板70に異常報知音を出力させるための音番号データを出力したが、さらに、遊技機に設けられている発光体(LED等)によって異常報知を行ってもよい。なお、演出表示装置9の表示、異常報知音の出力、発光体による報知のいずれか1つまたは2つを使用してもよい。
また、異常報知の終了時期は任意であるが、例えば、演出制御用CPU101aが入賞異常と判定しなくなるまで、入賞異常が生じたと判定したときからあらかじめ決められている所定時間が経過するまで、または電力供給が停止するまで、異常報知を継続することが考えられる。
また、この実施の形態では、演出制御用CPU101aは、タイマの値を加算し、タイマの値が所定値(図51に示された例では500,図54に示された例では250)になった場合に、入賞異常が生じたと判定するか(図51におけるステップS713,S714参照)、またはカウンタの値が所定値以上であることを条件に入賞異常が生じたと判定したり(図54におけるステップS735,S736,S740参照)、タイマの値が所定値以下(図56に示された例では15以下)であった場合に、入賞異常が生じたと判定するようにしたが(図56におけるステップS754,S757参照)、タイマの値を減算するようにしてもよい。
例えば、演出制御用CPU101aは、図51におけるステップS720の処理でタイマに500をセットしてステップS712の処理でタイマの値を1減算したり、図54におけるステップS738の処理でタイマに250を初期設定しステップS712の処理でタイマの値を1減算したり、図56におけるステップS755の処理でタイマに15を初期設定しステップS712の処理でタイマの値を1減算したりする。その場合には、演出制御用CPU101aは、図51におけるステップS713の処理、および図54におけるステップS734の処理で、タイマの値が0になったか否か確認する。また、図56におけるステップS752の処理で、タイマの値が0または負値であるか否か確認する。
また、この実施の形態では、遊技制御用マイクロコンピュータ560は、いずれかの入賞口スイッチからの検出信号の状態が変化したときにのみ入力ポート状態指定コマンドを送信したが、検出信号の状態が変化する/しないに関わらず、遊技制御処理の開始周期(この実施の形態では、4ms)毎に、入力ポート状態指定コマンドを送信するようにしてもよい。
遊技制御処理の開始周期毎に入力ポート状態指定コマンドを送信する場合には、遊技制御用マイクロコンピュータ560は、スイッチ処理(図23参照)において、ステップS109の演算結果に関わらず、入力ポート状態指定コマンドを送信する制御を行う。
また、演出制御用CPU101aは、図51に示すステップS718の処理で入力ポート0の状態を示すデータにおいて「1」に変化したビットがないことを確認した場合には、RAMに格納される前回値と入力ポート状態指定コマンドのデータとを比較することによって、入力ポート0の状態を示すデータにおいて「0」に変化したビットがあるか否か確認し、「0」に変化したビットがあることを確認した場合にステップS719の処理を実行する。入力ポート0の状態を示すデータにおいて「0」に変化したビットがあるか否か確認するのは、図51に示された処理では、遊技制御用マイクロコンピュータ560が入力ポート0のいずれかのビットが変化した場合に、入力ポート状態指定コマンドを送信することが前提であったのに対して、検出信号の状態が変化する/しないに関わらず遊技制御処理の開始周期毎に入力ポート状態指定コマンドを送信する場合には入力ポート0の状態を示すデータにおいて「1」に変化したビットも「0」に変化したビットも存在しないことがあるからである。
なお、検出信号の状態が変化する/しないに関わらず遊技制御処理の開始周期毎に入力ポート状態指定コマンドを送信する場合でも、図54に示された処理および図56に示された処理については、演出制御用CPU101aは、同様の処理を実行すればよい。
次に、第2の実施の形態を説明する。第1の実施の形態では、演出制御手段が入賞口スイッチの異常検出処理を行ったが、第2の実施の形態では、払出制御手段が入賞口スイッチの異常検出処理を行う。
図57は、第2の実施の形態における遊技制御手段と払出制御手段との間で送受信される制御コマンドの内容の一例を示す説明図である。図57に示すように、第2の実施の形態では、第1の実施の形態における制御コマンド(図18参照)に対して、続く8ビットのデータが入力ポート状態指定のデータであることを示す入力ポート状態指定コマンド(「30(H)」)が追加されている。
第2の実施の形態では、遊技制御用マイクロコンピュータ560は、図23に示すステップS111の処理において、演出制御コマンドを送信する制御に代えて、入力ポート状態指定コマンドと入力ポート0の状態を示すデータ(入力ポート状態指定のデータ)をシリアル通信回路505を介して払出制御用マイクロコンピュータ370に送信する制御を行う。すなわち、シリアル通信回路505のデータレジスタに入力ポート状態指定コマンドを設定し、ステータスレジスタのビット6(TC)が「1」になると(「入力ポート状態指定コマンド」の送信完了を意味する。)、入力ポート状態指定のデータをシリアル通信回路505のデータレジスタに設定する。
なお、入力ポート状態指定コマンド(「30(H)」)に続く8ビットのデータで入力ポート状態指定のデータを送信するのではなく、入力ポート状態指定のデータを、入力ポート状態指定コマンドの下位4ビットに設定するようにしてもよい。その場合には、遊技制御用マイクロコンピュータ560が、例えば入力ポート0(図11参照)のビット4,3,2,0の値を入力ポート状態指定コマンドのビット3,2,1,0に設定するか、または、始動口スイッチ14a、入賞口スイッチ30a,29a、カウントスイッチ23の検出信号の入力ポート0への割り当てを変更する(例えば、入力ポート0のビット3,2,1,0に変更する。)。
また、入力ポート状態指定コマンド(「30(H)」)を使用せず、既存のコマンドを利用して入力ポート0の状態を示すデータを送信するようにしてもよい。例えば、接続確認コマンド(図57参照)の下位4ビットに設定する。
図58は、第2の実施の形態における払出制御用マイクロコンピュータ370の払出制御用CPUが実行するタイマ割込処理を示すフローチャートである。図37に示す第1の実施の形態におけるタイマ割込処理に対して、第2の実施の形態では、ステップS772の異常判定処理が追加されている。
なお、第2の実施の形態では、演出制御用マイクロコンピュータ100は、図46に示されたステップS787の処理を実行しないが、ステップS787の処理を実行してもよい。
第2の実施の形態では、払出制御用マイクロコンピュータ370は、例えば、図39に示す主制御コマンド受信処理で、シリアル通信回路380において入力ポート状態指定コマンドが受信されたことを確認した後、続いてシリアル通信回路380において受信されたデータを、RAMにおける入力ポート状態指定コマンド格納領域に格納する処理も実行する。
図59は、図49に示されたような異常判定を実行する場合のステップS772の異常判定処理の一例を示すフローチャートである。払出制御用マイクロコンピュータ370は、図50に示すように、入賞異常の検出に関して使用するタイマとして、始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマ、カウントスイッチ23に対応するタイマを使用する。なお、各タイマはRAMに形成されている。
払出制御用CPU371は、始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマおよびカウントスイッチ23に対応するタイマのうちのいずれかのタイマの値が0以外の値(動作中であることに相当)であるか否か確認する(ステップS911)。動作中のタイマがあれば、そのタイマの値を+1する(ステップS912)。なお、入賞異常の検出方法の他の例(図60,図61参照)のようにタイマ動作中フラグを用い、タイマが動作中であるか否かをタイマ動作中フラグによって確認するようにしてもよい。
また、払出制御用CPU371は、いずれかのタイマの値が1000(1秒に相当)を越えたか否か確認する(ステップS913)。1000を越えたタイマがあれば、ターミナル基板160(図5参照)に入賞異常を示す信号を出力する(ステップS914)。その信号は、遊技機外部のホールコンピュータ等に出力される。
なお、ステップS914の処理において、いずれのスイッチに入賞異常が生じたのかを区別可能な信号を出力するようにしてもよい。
また、払出制御用CPU371は、入力ポート状態指定コマンドを受信したことを示す入力ポート状態指定コマンド受信フラグがセットされているか否か確認する(ステップS916)。入力ポート状態指定コマンド受信フラグがセットされていない場合には処理終了する。入力ポート状態指定コマンド受信フラグがセットされている場合には、入力ポート状態指定コマンド受信フラグをリセットし(ステップS917)、入力ポート状態指定コマンド格納領域に格納されている入力ポート状態指定コマンドのデータである入力ポート0(遊技制御手段における入力ポート0)の状態を示すデータにおいて、ビット0,2,3,4のいずれか1つ以上が「1」に変化したか否か確認する(ステップS918)。
ステップS918では、払出制御用CPU371は、ステップS921の処理でRAMに格納される前回値と、入力ポート状態指定コマンドのデータとを比較する。
「1」になったビットがあれば、そのビットに対応するタイマ(始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマ、またはカウントスイッチ23に対応するタイマ)に「1」をセットする(ステップS920)。
また、入力ポート0の状態を示すデータにおいて「1」になったビットがない場合には、「0」になったビットに対応するタイマの値を0に初期化する(ステップS919)。なお、遊技制御用マイクロコンピュータ560は、入力ポート0のいずれかのビットが変化した場合に、入力ポート状態指定コマンドを送信するので、「1」に変化したビットがないということは、「0」に変化したビットが存在することを意味する。
遊技制御用マイクロコンピュータ560は、入力ポート0のいずれかのビット(図11に示す入力ポート0のビット0,2,3,4のいずれか)の値が変化した場合(スイッチの検出信号の状態が変化した場合に相当)に、入力ポート0の各ビットの状態を設定した入力ポート状態指定コマンドを出力するので、ステップS918,S919の処理によって、オン状態に変化したスイッチに対応するタイマが動作中になる。そして、動作中になったタイマに対応するビットの値が「0」にならない限りタイマの値は歩進するので(ステップS911,S912の処理により)、タイマの値が1000を越えたということは、スイッチの検出信号の状態が1秒を越えて継続したオン状態であったことを意味する。
払出制御用CPU371が、ステップS913,S914,S915の処理を実行することによって、図49に示されたような異常判定を行うことができる。
なお、図59に示すステップS911〜S921の処理(ステップS914を除く。)は、図51に示されたステップS711〜S721の処理(ステップS714,S715を除く。)と同じである。ただし、演出制御手段では2ms毎にタイマ割込がかかるのに対して、払出制御手段では1ms毎にタイマ割込がかかるので、ステップS913における判定のための値は、ステップS713における判定のための値とは異なる。
図60は、ステップS772の異常判定処理の他の例を示すフローチャートである。この例では、払出制御用マイクロコンピュータ370は、図52に示されたような異常判定を実行する。
また、払出制御用マイクロコンピュータ370は、図53に示すように、入賞異常の検出に関して使用するタイマとして、始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマ、カウントスイッチ23に対応するタイマを使用する。また、入賞異常の検出に関して使用するフラグとして、始動口スイッチ14aに対応するタイマ動作中フラグ、入賞口スイッチ30aに対応するタイマ動作中フラグ、入賞口スイッチ29aに対応するタイマ動作中フラグ、カウントスイッチ23に対応するタイマ動作中フラグを使用する。また、入賞異常の検出に関して使用するカウンタとして、始動口スイッチ14aに対応するカウンタ、入賞口スイッチ30aに対応するカウンタ、入賞口スイッチ29aに対応するカウンタ、カウントスイッチ23に対応するカウンタを使用する。なお、各カウンタはRAMに形成されている。
異常判定処理において、払出制御用CPU371は、始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマおよびカウントスイッチ23に対応するタイマのうちのいずれかのタイマの値が動作中(タイマ動作中フラグがオン状態)であるか否か確認する(ステップS911)。動作中のタイマがあれば、そのタイマの値を+1する(ステップS912)。
また、払出制御用CPU371は、入力ポート状態指定コマンドを受信したことを示す入力ポート状態指定コマンド受信フラグがセットされているか否か確認する(ステップS916)。入力ポート状態指定コマンド受信フラグがセットされていない場合にはステップS935に移行する。入力ポート状態指定コマンド受信フラグがセットされている場合には、入力ポート状態指定コマンド受信フラグをリセットし(ステップS917)、入力ポート状態指定コマンド格納領域に格納されている入力ポート状態指定コマンドのデータである入力ポート0(遊技制御手段における入力ポート0)の状態を示すデータにおいて、ビット0,2,3,4のいずれか1つ以上が「1」に変化したか否か確認する(ステップS931)。
ステップS931では、払出制御用CPU371は、ステップS939の処理でRAMに格納される前回値と、入力ポート状態指定コマンドのデータとを比較する。
「1」に変化したビットがあれば、そのビットに対応するカウンタ(始動口スイッチ14aに対応するカウンタ、入賞口スイッチ30aに対応するカウンタ、入賞口スイッチ29aに対応するカウンタ、またはカウントスイッチ23に対応するカウンタ)の値を+1する(ステップS932)。また、「1」に変化したビットに対応するタイマが動作中でなければ(ステップS933)、そのビットに対応するタイマ動作中フラグをセットする(オン状態にする)(ステップS934)。
また、払出制御用CPU371は、いずれかのタイマ(始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマ、またはカウントスイッチ23に対応するタイマ)の値が500(0.5秒に相当)を越えたか否か確認する(ステップS935)。500を越えたタイマがなければ、ステップS939に移行する。500を越えたタイマがあれば、そのタイマに対応するカウンタの値を確認する(ステップS936)。カウンタの値が10を越えていれば、ターミナル基板160(図5参照)に入賞異常を示す信号を出力する(ステップS940)。その信号は、遊技機外部のホールコンピュータ等に出力される。
払出制御用CPU371は、値が10以下のカウンタがあれば、そのカウンタの値を0にクリアする(ステップS937)。また、対応するタイマ動作中フラグをリセットする(オフ状態にする)とともに、対応するタイマの値を0に初期化する(ステップS938)。
そして、入力ポート状態指定コマン格納領域のデータを、前回値としてRAMに格納する(ステップS939)。
遊技制御用マイクロコンピュータ560は、入力ポート0のいずれかのビット(図11に示す入力ポート0のビット0,2,3,4のいずれか)の値が変化した場合(スイッチの検出信号の状態が変化した場合に相当)に、入力ポート0の各ビットの状態を設定した入力ポート状態指定コマンドを出力するが、ステップS931の処理で「1」に変化したビットがあったということは、入力ポートの当該ビットの状態が「0」から「1」に変化した(スイッチの検出信号がオフ状態からオン状態に変化したことに相当)ことを意味する。よって、ステップS932の処理は、スイッチの検出信号がオフ状態からオン状態に変化した回数を計数する処理になる。
また、ステップS935,S936の処理で0.5秒が経過した場合にカウンタの値をチェックすることは、0.5秒間のスイッチの検出信号がオン状態に変化した回数を確認することに相当する。すなわち、図52に示されたような異常判定が実行されることになる。
図20(B)に例示されたような不正行為が行われると、スイッチの検出信号の状態は図20(C)の下段に例示されたような状態になる可能性があるが、図60に示された処理によって、図20(C)の下段に示されたような信号状態が生ずると、異常が検出される(図52参照)。すなわち、図60に示された処理は、図20に例示されたような不正行為を検知できる処理である。
なお、図60に示すステップS911〜S939の処理は、図54に示されたステップS711〜S739の処理と同じである。ただし、演出制御手段では2ms毎にタイマ割込がかかるのに対して、払出制御手段では1ms毎にタイマ割込がかかるので、ステップS935における判定のための値は、ステップS735における判定のための値とは異なる。
図61は、ステップS772の異常判定処理のさらに他の例を示すフローチャートである。この例では、払出制御用マイクロコンピュータ370は、図55に示されたような異常判定(検出信号のオフ期間が所定期間(例えば、30ms)以下である場合に異常が生じたと判定)を実行する。
また、払出制御用マイクロコンピュータ370は、図53に示された例と同様に、入賞異常の検出に関して、始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマ、カウントスイッチ23に対応するタイマを使用する。また、入賞異常の検出に関して使用するフラグとして、始動口スイッチ14aに対応するタイマ動作中フラグ、入賞口スイッチ30aに対応するタイマ動作中フラグ、入賞口スイッチ29aに対応するタイマ動作中フラグ、カウントスイッチ23に対応するタイマ動作中フラグを使用する。ただし、カウンタは使用されない。
異常判定処理において、払出制御用CPU371は、始動口スイッチ14aに対応するタイマ、入賞口スイッチ30aに対応するタイマ、入賞口スイッチ29aに対応するタイマおよびカウントスイッチ23に対応するタイマのうちのいずれかのタイマの値が動作中(タイマ動作中フラグがオン状態)であるか否か確認する(ステップS911)。動作中のタイマがあれば、そのタイマの値を+1する(ステップS912)。
また、払出制御用CPU371は、入力ポート状態指定コマンドを受信したことを示す入力ポート状態指定コマンド受信フラグがセットされているか否か確認する(ステップS916)。入力ポート状態指定コマンド受信フラグがセットされていない場合には処理を終了する。入力ポート状態指定コマンド受信フラグがセットされている場合には、入力ポート状態指定コマンド受信フラグをリセットし(ステップS917)、入力ポート状態指定コマンド格納領域に格納されている入力ポート状態指定コマンドのデータである入力ポート0(遊技制御手段における入力ポート0)の状態を示すデータにおいて、ビット0,2,3,4のいずれか1つ以上が「0」に変化したか否か確認する(ステップS951)。
ステップS951の処理では、払出制御用CPU371は、ステップS956の処理でRAMに格納される前回値と、入力ポート状態指定コマンドのデータとを比較する。
「0」に変化したビットがあれば、そのビットに対応するタイマ動作中フラグをセットする(オン状態にする)(ステップS952)。
また、払出制御用CPU371は、入力ポート状態指定コマンド格納領域に格納されている入力ポート状態指定コマンドのデータである入力ポート0の状態を示すデータにおいて、ビット0,2,3,4のいずれか1つ以上が「1」に変化したか否か確認する(ステップS953)。「1」に変化したビットがなければ、ステップS956に移行する。
ステップS953の処理では、払出制御用CPU371は、ステップS956の処理でRAMに格納される前回値と、入力ポート状態指定コマンドのデータとを比較する。
「1」に変化したビットがある場合には、そのビットに対応するタイマの値を確認する(ステップS954)。ステップS954では、払出制御用CPU371は、タイマの値が30以下(30ms以下に相当)であるか否か確認する。タイマの値が15を越えている場合には、そのビットに対応するタイマ動作中フラグをリセットする(オフ状態にする)とともに、対応するタイマの値を0に初期化する(ステップS955)。また、入力ポート状態指定コマン格納領域のデータを、前回値としてRAMに格納する(ステップS956)。
タイマの値が30以下である場合には、払出制御用CPU371は、ターミナル基板160(図5参照)に入賞異常を示す信号を出力する(ステップS960)。その信号は、遊技機外部のホールコンピュータ等に出力される。
遊技制御用マイクロコンピュータ560は、入力ポート0のいずれかのビット(図11に示す入力ポート0のビット0,2,3,4のいずれか)の値が変化した場合(スイッチの検出信号の状態が変化した場合に相当)に、入力ポート0の各ビットの状態を設定した入力ポート状態指定コマンドを出力するが、ステップS951の処理で「0」に変化したビットがあったということは、入力ポートの当該ビットの状態が「1」から「0」に変化した(スイッチの検出信号がオン状態からオフ状態に変化したことに相当)ことを意味する。よって、ステップS952の処理は、スイッチの検出信号がオン状態からオフ状態に変化した場合に、タイマを起動する処理に相当する。
また、ステップS953の処理で「1」に変化したビットがあったということは、入力ポートの当該ビットの状態が「0」から「1」に変化した(スイッチの検出信号がオフ状態からオン状態に変化したことに相当)ことを意味する。よって、ステップS953の処理は、スイッチの検出信号がオフ状態からオン状態に変化したか否か判定する処理になる。そして、ステップS954の処理でタイマの値をチェックすることは、検出信号がオフ状態で合った期間が30ms以下であったか否か判定することに相当する。すなわち、図55に示されたような異常判定が実行されることになる。
図20(B)に例示されたような不正行為が行われると、スイッチの検出信号の状態は図20(C)の下段に例示されたような状態になる可能性があるが、図55に示された処理によって、図20(C)の下段に示されたような信号状態が生じ場合に検出信号がオフ状態である期間が所定期間(この例では、30ms)以下であれば、異常として検出される(図55参照)。すなわち、図61に示された処理は、図20に例示されたような不正行為を検知可能な処理である。
なお、図61に示すステップS911〜S956の処理は、図56に示されたステップS711〜S756の処理と同じである。ただし、演出制御手段では2ms毎にタイマ割込がかかるのに対して、払出制御手段では1ms毎にタイマ割込がかかるので、ステップS954における判定のための値は、ステップS754における判定のための値とは異なる。
また、払出制御用CPU370は、ステップS772の異常判定処理において、図59に示された処理と、図60に示された処理と、図61に示された処理とのいずれかを実行してもよいが、各処理のうちの2つ以上を実行するようにしてもよい。
また、この実施の形態では、払出制御用CPU371は、タイマの値を加算し、タイマの値が所定値(図59に示された例では1000,図60に示された例では500)になった場合に、入賞異常が生じたと判定するか(図59におけるステップS913,S914参照)、またはカウンタの値が所定値以上であることを条件に入賞異常が生じたと判定したり(図60におけるステップS935,S936,S940参照)、タイマの値が所定値以下(図61に示された例では30以下)であった場合に、入賞異常が生じたと判定するようにしたが(図61におけるステップS954,S957参照)、タイマの値を減算するようにしてもよい。
例えば、払出制御用CPU371は、図59におけるステップS920の処理でタイマに1000をセットしてステップS912の処理でタイマの値を1減算したり、図60におけるステップS938の処理でタイマに500を初期設定しステップS912の処理でタイマの値を1減算したり、図61におけるステップS955の処理でタイマに30を初期設定しステップS912の処理でタイマの値を1減算したりする。その場合には、払出制御用CPU371は、図59におけるステップS913の処理、および図60におけるステップS934の処理で、タイマの値が0になったか否か確認する。また、図61におけるステップS952の処理で、タイマの値が0または負値であるか否か確認する。
また、この実施の形態では、遊技制御用マイクロコンピュータ560は、いずれかの入賞口スイッチからの検出信号の状態が変化したときにのみ入力ポート状態指定コマンドを送信したが、検出信号の状態が変化する/しないに関わらず、遊技制御処理の開始周期(この実施の形態では、4ms)毎に、入力ポート状態指定コマンドを送信するようにしてもよい。
遊技制御処理の開始周期毎に入力ポート状態指定コマンドを送信する場合には、遊技制御用マイクロコンピュータ560は、スイッチ処理(図23参照)において、ステップS109の演算結果に関わらず、入力ポート状態指定コマンドを送信する制御を行う。
また、払出制御用CPU371は、図59に示すステップS918の処理で入力ポート0の状態を示すデータにおいて「1」に変化したビットがないことを確認した場合には、RAMに格納される前回値と入力ポート状態指定コマンドのデータとを比較することによって、入力ポート0の状態を示すデータにおいて「0」に変化したビットがあるか否か確認し、「0」に変化したビットがあることを確認した場合にステップS919の処理を実行する。入力ポート0の状態を示すデータにおいて「0」に変化したビットがあるか否か確認するのは、図59に示された処理では、遊技制御用マイクロコンピュータ560が入力ポート0のいずれかのビットが変化した場合に、入力ポート状態指定コマンドを送信することが前提であったのに対して、検出信号の状態が変化する/しないに関わらず遊技制御処理の開始周期毎に入力ポート状態指定コマンドを送信する場合には入力ポート0の状態を示すデータにおいて「1」に変化したビットも「0」に変化したビットも存在しないことがあるからである。
なお、検出信号の状態が変化する/しないに関わらず遊技制御処理の開始周期毎に入力ポート状態指定コマンドを送信する場合でも、図60に示された処理および図61に示された処理については、払出制御用CPU371は、同様の処理を実行すればよい。
また、図59〜図61に示す処理では、払出制御用CPU370は、入賞異常が生じたと判定した場合に、ターミナル基板160に入賞異常を示す信号を出力したが、入賞異常を示す信号を主基板31に送信するようにしてもよい。
入賞異常を示す信号を主基板31に送信する場合には、一例として、図18および図19に示された接続OKコマンドと賞球準備中コマンドにおいて、ビット4に、入賞異常を示す信号を割り当てる。すなわち、ビット4が「1」である場合に、入賞異常が生じたことが示される。なお、接続OKコマンドにのみ入賞異常を示す信号を割り当ててもよい。
また、払出制御用CPU370は、入賞異常が生じたと判定した場合に(ステップS913,S940,S960で「Y」の場合)、ターミナル基板160に入賞異常を示す信号を出力することに代えて、RAMの所定領域に、入賞異常が生じたことが示すデータをセットする。
そして、払出制御用CPU370は、図40,図41,図42,図43,図45に示されたステップS7414、ステップS74207、ステップS74221、ステップS74304、ステップS74312、ステップS74404、ステップS74412の主制御送信コマンド変換処理において、RAMの所定領域に入賞異常が生じたことが示すデータをセットされている場合には、接続OKコマンドのビット4を「1」にする処理も行う。
遊技制御用マイクロコンピュータ560におけるCPU56は、図29に示されたステップS5223の処理で接続OKコマンドが受信されたことが確認された場合に、ステップS5224の処理で、接続OKコマンドのビット4を確認し、ビット4が「1」である場合に、ターミナル基板160に入賞異常を示す信号を出力する処理も行う。また、図31に示されたステップS52406の処理および図32に示されたステップS52506の処理で賞球準備中コマンドが受信されたことが確認された場合に、ステップS52407およびステップS52507の処理で、賞球準備中コマンドのビット4を確認し、ビット4が「1」である場合に、ターミナル基板160に入賞異常を示す信号を出力する処理も行う。
また、ターミナル基板160に入賞異常を示す信号を出力したり入賞異常を示す信号を主基板31に送信したときに、払出制御用マイクロコンピュータ370は、賞球払出処理(賞球払出処理に加えて球貸し処理についても)を実行しない状態に移行したり、エラー表示用LED374にエラー信号を出力して所定のエラーコードを表示したりしてもよい。また、払出処理を実行しない状態への移行とエラーコードの表示とをともに実行してもよい。また、払出制御用マイクロコンピュータ370が払出処理を実行しない状態への移行とエラーコードの表示とのうちの少なくとも一方を実行するとともに、または、それらを実行せずとも、遊技制御用マイクロコンピュータ560が、上述したように接続OKコマンドや賞球準備中コマンドによって払出制御用マイクロコンピュータ370から入賞異常を示す信号を受信したときに、演出制御用マイクロコンピュータ100に入賞異常を示すコマンドを送信してもよい。演出制御用マイクロコンピュータ100は、入賞異常を示すコマンドを受信した場合に、例えば、演出表示装置9において異常報知を行う。
以上のように、第2の実施の形態では、払出制御用マイクロコンピュータ370によって入賞異常が生じたか否かが判定され、入賞異常が生じたと判定されたときに、払出制御用マイクロコンピュータ370から直接、または遊技制御用マイクロコンピュータ560を介して、入賞異常を示す信号が遊技機外部に出力される。よって、遊技機の外部(例えば、ホールコンピュータ)において、入賞異常が生じたことが確認される。
なお、第2の実施の形態では、払出制御用マイクロコンピュータ370から入賞異常を示す信号が直接遊技機外部に出力されない場合には、遊技制御用マイクロコンピュータ560を介して入賞異常を示す信号が遊技機外部に出力されるが、主基板31を経由するが遊技制御用マイクロコンピュータ560を介さないようにして、入賞異常を示す信号が遊技機外部に出力するようにしてもよい。その場合には、払出制御用マイクロコンピュータ370は、1本の信号線で入賞異常を示す信号を主基板31に対して出力する。そして、その信号線により入力を、主基板31の内部において、ターミナル基板160に至るコネクタへの配線に接続する。
以上に説明したように、第1の実施の形態および第2の実施の形態では、遊技制御手段が出力したコマンドにもとづいて、遊技機に設けられている電気部品(演出表示装置9や球払出装置97)を制御する電気部品制御手段(演出制御手段や払出制御手段)が、遊技制御手段からのコマンドにもとづいて、入賞を検出するスイッチからの検出信号の入力が継続している期間(図49参照)または検出信号の入力頻度が所定の閾値を越えた(図52参照)場合に異常が生じたと判定するので、遊技制御手段の処理負担を増大させることなく、入賞を検出するスイッチに対する不正行為を確実に検知することができる。
また、遊技制御手段は、検出信号の入力状態が変化したときにのみ検出信号の入力状態を示すコマンドを出力するので、コマンドの出力周期によって遊技制御手段の制御周期を把握することにもとづく不正行為も防止することができる。すなわち、例えば、遊技制御手段の制御周期毎に常にコマンドを出力するように構成した場合には、遊技制御手段と電気部品制御手段との間のコマンドを監視することによって遊技制御手段の制御周期を把握可能になるが、検出信号の入力状態が変化したときにのみ検出信号の入力状態を示すコマンドを出力するように構成することによって、コマンドにもとづく遊技制御手段の制御周期の把握が困難になる。
上記の各実施の形態では、始動口スイッチ14a、カウントスイッチ23、および各入賞口スイッチ29a,30aとして近接スイッチが用いられたが、フォトセンサを用いてもよい。図62(A)は、始動口スイッチ14a、カウントスイッチ23、および各入賞口スイッチ29a,30aとして使用可能な反射型のフォトセンサを示す説明図である。図62(A)に示すフォトセンサは、発光する発光ダイオード(LED)341と、受光して電流を出力するフォトトランジスタ342とで構成されている。発光ダイオード341およびフォトトランジスタ342の近傍を遊技球が通過すると、遊技球が反射した発光ダイオード341からの光をフォトトランジスタ342が受光して出力側に電流を流す。出力側は主基板31に接続され、主基板31において、フォトセンサの検出信号は、入力ドライバ回路から遊技制御用マイクロコンピュータの入力ポートに入力される。フォトセンサの出力側(具体的には、フォトトランジスタ342の出力側)に電流が流れると、入力ドライバ回路は、ハイレベルの検出信号を遊技制御用マイクロコンピュータに出力する。
図62(B)は、始動口スイッチ14a、カウントスイッチ23、および各入賞口スイッチ29a,30aとして使用可能な透過型のフォトセンサを示す説明図である。図62(B)に示すフォトセンサは、発光素子(LED341)と受光素子(フォトトランジスタ342)とを入賞球経路を挟むように対向させて設置し、遊技球が発光素子からの光を遮ることによって受光素子が光を検出しなくなることによって、発光素子と受光素子との間を通過した遊技球を検出する透過型のフォトセンサを用いてもよい。透過型のフォトセンサを用いる場合に、図62(B)における下段に示すように、発光素子の光軸(図62(B)において黒丸で例示されている。)が、遊技球経路(入賞球経路)を通過する遊技球の中央部からずれるように、発光素子および受光素子を設置することが好ましい。光軸が遊技球の中央部に相当するように設置する場合に比べて、連続して通過する2つの遊技球の間隔が相対的に広い部分(図62(B)における「空隙」の部分)において遊技球を検知することができ、2つの遊技球を別個に検出しやすいからである。同様の理由で、図62(A)に例示した反射型のフォトセンサを用いる場合にも、発光素子からの光の反射点が遊技球の中央部からずれるように、発光素子および受光素子を設置することが好ましい。
また、近接スイッチとフォトセンサを併用してもよい。図63は、近接スイッチとフォトセンサの併用例を示す説明図である。なお、図63には、カウントスイッチ23に適用された例が示されている。図63(A)に示す例では、カウントスイッチ23は、近接スイッチ23aとフォトセンサ23bとを含む。カウントスイッチ23において、遊技球が先に近接スイッチ23aを通過し、その後、フォトセンサ23bを通過するように、近接スイッチ23aおよびフォトセンサ23bが配置されている。
図63(A)に示すように、スイッチにおいて上部(遊技球の流路の上流側)に電磁式の近接スイッチが設けられ、下部(遊技球の流路の下流側)に光学式のフォトセンサが設けられているので、遊技球を検出するスイッチが電波による不正行為を受けた場合に不正行為を確実に検知することができる。また、図63(B)に示すように、上部にフォトセンサを設け、下部に近接スイッチを設けてもよい。そのように構成した場合には、遊技球を検出するスイッチが光による不正行為を受けた場合に、不正行為を確実に検知することができる。
また、スイッチは、近接スイッチ23aとフォトセンサ23bとが1つのパッケージに収納されたスイッチモジュール(センサユニット)として形成されていることが好ましい。
図64は、遊技制御手段における入力ポートのビット割り当ての他の例を示す説明図である。図64に示す例では、入力ポート0のビット0〜4には、それぞれ、カウントスイッチa、ゲートスイッチb、左落とし入賞口スイッチa、右落とし入賞口スイッチa、始動口スイッチa(「a」は、近接スイッチを意味する。)の検出信号が入力される。なお、入力ポート1については、図11に示されたビット割り当てと同じである。
入力ポート0’のビット0,4には、それぞれ、カウントスイッチb、始動口スイッチb(「b」は、フォトセンサを意味する。)の検出信号が入力される。
つまり、カウントスイッチ23および始動口スイッチ14aは、図63に示すような2つのスイッチで構成されている。遊技制御用マイクロコンピュータ560は、2つのスイッチのいずれか一方のスイッチの検出信号がオン状態になったが他方のスイッチの検出信号がオン状態にならない場合に不正行為が生じたと判定することによって、カウントスイッチ23および始動口スイッチ14aについては不正行為を確実に検知することができる。なお、同時に同じ遊技球を検出するように2つのスイッチを設けることは難しいので、遊技制御用マイクロコンピュータ560は、当然、一方のスイッチの検出信号がオン状態になってから所定時間以内(設置位置の関係によるが、例えば、0.5秒)において他方のスイッチの検出信号がオン状態にならない場合に不正行為が生じたと判定する。また、1個の遊技球毎に不正行為が生じたか否か判定するのではなく、一方のスイッチの検出信号がオン状態になった回数の計数値(累積値)と他方のスイッチの検出信号がオン状態になった回数の計数値(累積値)との差があらかじめ決められている値(例えば、10)を越えた場合に不正行為が生じたと判定したり、一方のスイッチの検出信号にもとづいてカウンタの値を+1し、他方のスイッチの検出信号にもとづいて当該カウンタの値を−1し、カウンタの値があらかじめ決められている値(例えば、−5〜+5)を越えた場合に不正行為が生じたと判定したりしてもよい。
また、カウントスイッチ23のみを、図63に示すような2つのスイッチで構成してもよい。
第1の実施の形態および第2の実施の形態では、1つのスイッチからの検出信号を対照して入賞異常が生じたか否か判定するので、近接スイッチとフォトセンサを併用しないスイッチ(例えば、入賞口スイッチ29a,30a)についても、不正行為を確実に検知することができる。つまり、入賞に対する賞球個数が多い大入賞口への入賞を検出するカウントスイッチ23や特別図柄の変動に関する始動領域に設けられる始動口スイッチ14aとして近接スイッチとフォトセンサを併用するスイッチを用いて不正行為を確実に検知できるようにするが、入賞口スイッチ29a,30aについてはコスト増を抑えるために近接スイッチとフォトセンサを併用しないスイッチにしても、第1の実施の形態および第2の実施の形態のように構成することによって、不正行為を確実に検知することができる。