実施の形態1.
以下、本発明の一実施形態を図面を参照して説明する。
まず、遊技機の一例であるパチンコ遊技機の全体の構成について説明する。図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は大入賞口を開閉する手段である。特別可変入賞球装置20に入賞し遊技盤6の背面に導かれた入賞球のうち一方(V入賞領域:特別領域)に入った入賞球はV入賞スイッチ22で検出された後カウントスイッチ23で検出され、他方の領域に入った遊技球は、そのままカウントスイッチ23で検出される。遊技盤6の背面には、大入賞口内の経路を切り換えるためのソレノイド21Aも設けられている。なお、この実施の形態では、特別可変入賞球装置20内のV入賞領域に遊技球が入り、V入賞スイッチ22で遊技球が検出されたことを大当りのラウンド継続の条件としているが、特別可変入賞球装置20内にV入賞領域を設けずに、予め設定された回数のラウンドを自動的に継続させるようにしてもよい。
遊技球がゲート32を通過しゲートスイッチ32aで検出されると、普通図柄表示器10の表示の可変表示が開始される。この実施の形態では、左右のランプ(点灯時に図柄が視認可能になる)が交互に点灯することによって可変表示が行われ、例えば、可変表示の終了時に左側のランプが点灯すれば当たりになる。そして、普通図柄表示器10における停止図柄が所定の図柄(当り図柄)である場合に、可変入賞球装置15が所定回数、所定時間だけ開状態になる。普通図柄表示器10の近傍には、ゲート32を通過した入賞球数を表示する4つのLEDによる表示部を有する普通図柄始動記憶表示器41が設けられている。ゲート32への遊技球の通過があるごとに、普通図柄始動記憶表示器41は点灯するLEDを1増やす。そして、普通図柄表示器10の可変表示が開始されるごとに、点灯するLEDを1減らす。
遊技盤6には、複数の入賞口29,30,33,39が設けられ、遊技球の入賞口29,30,33,39への入賞は、それぞれ入賞口スイッチ29a,30a,33a,39aによって検出される。各入賞口29,30,33,39は、遊技媒体を受け入れて入賞を許容する領域として遊技盤6に設けられる入賞領域を構成している。なお、始動入賞口14や大入賞口も、遊技媒体を受け入れて入賞を許容する入賞領域を構成する。なお、各入賞口29,30,33,39に入賞した遊技球を入賞スイッチで検出する構成に代えて、遊技球が所定領域(例えばゲート)を通過したことを検出スイッチで検出する構成としてもよい。遊技領域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個)の遊技球が入賞するまで開放する。そして、特別可変入賞球装置20の開放中に遊技球がV入賞領域に入賞しV入賞スイッチ22で検出されると、継続権が発生し特別可変入賞球装置20の開放が再度行われる。継続権の発生は、所定回数(例えば15ラウンド)許容される。また、V入賞領域を設けずに、特別可変入賞球装置20の開放を常に決定されたラウンド数の最後のラウンドまで(例えば、15ラウンドまで)許容するようにしてもよい。
停止時の特別図柄表示器8における特別図柄が確率変動を伴う大当り図柄(確変図柄)である場合には、次に大当りになる確率が高くなる。すなわち、確変状態という遊技者にとってさらに有利な状態になる。
遊技球がゲート32を通過すると、普通図柄表示器10において普通図柄が可変表示される状態になる。また、普通図柄表示器10における停止図柄が所定の図柄(当り図柄)である場合に、可変入賞球装置15が所定時間だけ開状態になる。
次に、パチンコ遊技機1の裏面の構造について図3を参照して説明する。図3は、遊技機を裏面から見た背面図である。
図3に示すように、遊技機裏面側では、可変表示装置9を制御する図柄制御用マイクロコンピュータが搭載された図柄制御基板80aを含む可変表示制御ユニット49、遊技制御用マイクロコンピュータ等が搭載された遊技制御基板(主基板)31が設置されている。また、球払出制御を行う払出制御用マイクロコンピュータ等が搭載された払出制御基板37が設置されている。なお、可変表示制御ユニットは、図柄制御基板80aとともに、各種装飾LED、装飾ランプ25、枠側に設けられている天枠ランプ28a、左枠ランプ28bおよび右枠ランプ28cを点灯制御し、スピーカ27からの音発生を制御する音/ランプ制御用マイクロコンピュータが搭載された音/ランプ制御基板を含む。
さらに、DC30V、DC21V、DC12VおよびDC5Vを作成する電源回路が搭載された電源基板910やタッチセンサ基板91が設けられている。電源基板910は、大部分が主基板31と重なっているが、主基板31に重なることなく外部から視認可能に露出した露出部分がある。この露出部分には、遊技機1における主基板31および各制御基板(音/ランプ制御基板、図柄制御基板80aおよび払出制御基板37)や遊技機に設けられている各電気部品(電力が供給されることによって動作する部品)への電力供給を実行あるいは遮断するための電力供給許可手段としての電源スイッチが設けられている。さらに、露出部分における電源スイッチの内側(基板内部側)には、交換可能なヒューズが設けられている。なお、この実施の形態では、主基板31は枠側に設けられているが、盤側に設けられていてもよい。その場合、後述するような主基板31と払出制御基板37との間の通信をシリアル通信で行うことにより、盤を交換する際の配線の取り回しが容易になる。
なお、各制御基板には、制御用マイクロコンピュータを含む制御手段が搭載されている。制御手段は、遊技制御手段等からのコマンドとしての指令信号(制御信号)に従って遊技機に設けられている電気部品(遊技用装置:球払出装置97、可変表示装置9、ランプやLEDなどの発光体、スピーカ27等)を制御する。以下、主基板31を制御基板に含めて説明を行うことがある。その場合には、制御基板に搭載される制御手段は、遊技制御手段と、遊技制御手段等からの指令信号に従って遊技機に設けられている電気部品を制御する手段とのそれぞれを指す。また、主基板31以外のマイクロコンピュータが搭載された基板をサブ基板ということがある。なお、球払出装置97は、遊技球を誘導する通路とステッピングモータ等により駆動されるスプロケット等によって誘導された遊技球を上皿や下皿に払い出すための装置であって、払い出された賞球をカウントする払出個数カウントスイッチ等もユニットの一部として構成されている。
遊技機裏面において、上方には、各種情報を遊技機外部に出力するための各端子を備えたターミナル基板160が設置されている。ターミナル基板160には、少なくとも、球切れ検出スイッチ167の出力を導入して外部出力するための球切れ用端子、賞球情報(賞球個数信号)を外部出力するための賞球用端子および球貸し情報(球貸し個数信号)を外部出力するための球貸し用端子が設けられている。また、中央付近には、主基板31からの各種情報を遊技機外部に出力するための各端子を備えた情報端子基板(情報出力基板)36が設置されている。
貯留タンク38に貯留された遊技球は誘導レール39を通り、カーブ樋を経て払出ケース40Aで覆われた球払出装置に至る。球払出装置の上部には、遊技媒体切れ検出手段としての球切れスイッチ187が設けられている。球切れスイッチ187が球切れを検出すると、球払出装置の払出動作が停止する。球切れスイッチ187は遊技球通路内の遊技球の有無を検出するスイッチであるが、貯留タンク38内の補給球の不足を検出する球切れ検出スイッチ167も誘導レール39における上流部分(貯留タンク38に近接する部分)に設けられている。球切れ検出スイッチ167が遊技球の不足を検知すると、遊技機設置島に設けられている補給機構から遊技機に対して遊技球の補給が行われる。
入賞にもとづく景品としての遊技球や球貸し要求にもとづく遊技球が多数払い出されて打球供給皿3が満杯になると、遊技球は、余剰球通路を経て余剰球受皿4に導かれる。さらに遊技球が払い出されると、感知レバー(図示せず)が貯留状態検出手段としての満タンスイッチ(図示せず)を押圧して、貯留状態検出手段としての満タンスイッチがオンする。その状態では、球払出装置内の払出モータの回転が停止して球払出装置の動作が停止するとともに打球発射装置の駆動も停止する。
図4は、主基板(遊技制御基板)31における回路構成の一例を示すブロック図である。なお、図4には、払出制御基板37、音/ランプ制御基板80bおよび図柄制御基板80a等も示されている。主基板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)や音/ランプ制御基板80b(の音/ランプ制御用マイクロコンピュータ)とシリアル通信で信号を入出力(送受信)するためのシリアル通信回路505が内蔵されている。なお、払出制御用マイクロコンピュータ370や音/ランプ制御用マイクロコンピュータにも、遊技制御用マイクロコンピュータ560とシリアル通信で信号を入出力するためのシリアル通信回路が内蔵されている(払出制御用マイクロコンピュータ370に内蔵されたシリアル通信回路については、図5参照)。ただし、この実施の形態では、遊技制御用マイクロコンピュータ560から音/ランプ制御用マイクロコンピュータに対してのみ信号が出力され、音/ランプ制御用マイクロコンピュータから遊技制御用マイクロコンピュータ560に対しては信号が出力されないため、音/ランプ制御用マイクロコンピュータは、信号を入力するシリアル通信回路を内蔵している。なお、遊技制御用マイクロコンピュータ560と音/ランプ制御用マイクロコンピュータとの間の通信については、シリアル通信で行う構成に限られるわけではなく、パラレル通信で行うように構成してもよい。
また、RAM55は、その一部または全部が電源基板において作成されるバックアップ電源によってバックアップされている不揮発性記憶手段としてのバックアップRAMである。すなわち、遊技機に対する電力供給が停止しても、所定期間(バックアップ電源としてのコンデンサが放電してバックアップ電源が電力供給不能になるまで)は、RAM55の一部または全部の内容は保存される。特に、少なくとも、遊技状態すなわち遊技制御手段の制御状態に応じたデータ(特別図柄プロセスフラグや保留記憶数カウンタの値など)と未払出賞球数を示すデータは、バックアップRAMに保存される。遊技制御手段の制御状態に応じたデータとは、停電等が生じた後に復旧した場合に、そのデータにもとづいて、制御状態を停電等の発生前に復旧させるために必要なデータである。また、制御状態に応じたデータと未払出賞球数を示すデータとを遊技の進行状態を示すデータと定義する。なお、この実施の形態では、RAM55の全部が、電源バックアップされているとする。
遊技制御用マイクロコンピュータ560のリセット端子には、電源基板からのリセット信号が入力される。電源基板には、遊技制御用マイクロコンピュータ560等に供給されるリセット信号を生成するリセット回路が搭載されている。なお、リセット信号がハイレベルになると遊技制御用マイクロコンピュータ560等は動作可能状態になり、リセット信号がローレベルになると遊技制御用マイクロコンピュータ560等は動作停止状態になる。従って、リセット信号がハイレベルである期間は、遊技制御用マイクロコンピュータ560等の動作を許容する許容信号が出力されていることになり、リセット信号がローレベルである期間は、遊技制御用マイクロコンピュータ560等の動作を停止させる動作停止信号が出力されていることになる。なお、リセット回路をそれぞれの電気部品制御基板(電気部品を制御するためのマイクロコンピュータが搭載されている基板)に搭載してもよい。
さらに、遊技制御用マイクロコンピュータ560の入力ポートには、電源基板からの電源電圧が所定値以下に低下したことを示す電源断信号が入力される。すなわち、電源基板には、遊技機において使用される所定電圧(例えば、DC30VやDC5Vなど)の電圧値を監視して、電圧値があらかじめ定められた所定値にまで低下すると(電源電圧の低下を検出すると)、その旨を示す電源断信号を出力する電源監視回路が搭載されている。また、遊技制御用マイクロコンピュータ560の入力ポートには、RAMの内容をクリアすることを指示するためのクリアスイッチが操作されたことを示すクリア信号(図示せず)が入力される。
また、ゲートスイッチ32a、始動口スイッチ14a、カウントスイッチ23、V入賞スイッチ22および各入賞口スイッチ29a,30a,33a,39aからの検出信号を基本回路53に与える入力ドライバ回路58も主基板31に搭載され、可変入賞球装置15を開閉するソレノイド16、特別可変入賞球装置を開閉するソレノイド21、および大入賞口内の経路を切り換えるためのソレノイド21Aを基本回路53からの指令に従って駆動する出力回路59も主基板31に搭載され、電源投入時に遊技制御用マイクロコンピュータ560をリセットするためのシステムリセット回路(図示せず)や、大当り遊技状態の発生を示す大当り情報等の情報出力信号をホールコンピュータ等の外部装置に対して出力する情報出力回路(図示せず)も主基板31に搭載されている。
この実施の形態では、音/ランプ制御基板80bに搭載されている音/ランプ制御手段(音/ランプ制御用マイクロコンピュータで構成される。)が、中継基板77を介して遊技制御用マイクロコンピュータ560からの演出制御コマンドを受信し、図柄制御用基板80aに転送する。そして、図柄制御基板80aに搭載されている図柄制御手段(図柄制御用マイクロコンピュータで構成される。)が、音/ランプ制御手段から演出制御コマンドを受信し、飾り図柄を可変表示する可変表示装置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が内蔵されている。この実施の形態では、遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370とは、シリアル通信回路505,380を介して、遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370との間の接続確認を行うために、一定の間隔(例えば1秒)で信号(賞球要求信号、受信ACK信号)をやり取り(送受信)している。すなわち、遊技制御用マイクロコンピュータ560は、シリアル通信回路505を介して、一定の間隔で接続確認を行うための信号(この実施の形態における賞球要求信号)を送信し、払出制御用マイクロコンピュータ370は、遊技制御用マイクロコンピュータ560からの賞球要求信号を受信した場合、その旨を通知する信号(受信ACK信号)を遊技制御用マイクロコンピュータ560に送信する。この実施の形態では、賞球要求信号や受信ACK信号に特定のデータを乗せることにより、賞球要求信号や受信ACK信号を送受信するタイミングにおいて、遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370との間で特定のデータをやり取りするように構成している。例えば、入賞が発生した場合には、遊技制御用マイクロコンピュータ560は、払い出すべき賞球個数を示すデータを、賞球要求信号の所定ビットを異ならせることにより設定し、当該設定がなされた賞球要求信号を払出制御用マイクロコンピュータ370に送信する。そして、払出制御用マイクロコンピュータ370は、賞球払出動作が終了すると、賞球終了を示すデータを、受信ACK信号の所定ビットを異ならせることにより設定し、当該設定がなされた受信ACK信号を遊技制御用マイクロコンピュータ560に送信する。また、所定のエラー(球貸し、満タン、球切れなどのエラー)が発生した場合には、エラーの内容を示すデータを、受信ACK信号の所定ビットを異ならせることにより設定し、当該設定がなされた受信ACK信号を遊技制御用マイクロコンピュータ560に送信する。なお、遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370におけるシリアル通信による具体的な信号のやり取りについては、図29〜図34において詳述する。
払出制御用マイクロコンピュータ370は、出力ポート372bを介して、賞球払出数を示す賞球情報信号および貸し球数を示す球貸し個数信号をターミナル基板(枠用外部端子基板と盤用外部端子基板とを含む)160に出力する。なお、出力ポート372bの外側に、ドライバ回路が設置されているが、図5では記載省略されている。
また、払出制御用マイクロコンピュータ370は、出力ポート372cを介して、7セグメントLEDによるエラー表示用LED374にエラー信号を出力する。さらに、出力ポート372bを介して、点灯/消灯を指示するための信号を賞球LED51および球切れLED52に出力する。なお、払出制御基板37の入力ポート372fには、エラー状態を解除するためのエラー解除スイッチ375からの検出信号が入力される。エラー解除スイッチ375は、ソフトウェアリセットによってエラー状態を解除するために用いられる。
さらに、払出制御用マイクロコンピュータ370からの払出モータ289への駆動信号は、出力ポート372aおよび中継基板72を介して球払出装置97の払出機構部分における払出モータ289に伝えられる。なお、出力ポート372aの外側に、ドライバ回路(モータ駆動回路)が設置されているが、図6では記載省略されている。
遊技機に隣接して設置されているカードユニット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で用いられる電源電圧AC24Vは払出制御基板37から供給される。すなわち、カードユニット50に対する電源基板910からの電力供給は、払出制御基板37およびインタフェース基板66を介して行われる。この例では、インタフェース基板66内に配されているカードユニット50に対するAC24Vの電源供給ラインに、カードユニット50を保護するためのヒューズが設けられ、カードユニット50に所定電圧以上の電圧が供給されることが防止される。
また、この実施の形態では、カードユニット50が遊技機とは別体として遊技機に隣接して設置されている場合を例にするが、カードユニット50は遊技機と一体化されていてもよい。また、コイン投入に応じてその金額に応じた遊技球が貸し出されるような場合でも本発明を適用できる。
図6は、中継基板77、音/ランプ制御基板80bおよび図柄制御基板80aの回路構成例を示すブロック図である。この実施の形態では、音/ランプ制御基板80bは、音出力装置27の音出力制御、各ランプ25,28a,28b,28cの表示制御を行う。また、図柄制御基板80aは、可変表示装置9の表示制御を行う。また、この実施の形態では、「演出制御」とは、可変表示装置9の表示制御や、スピーカ27の音出力制御、各ランプ25,28a,28b,28cの表示制御を行うことによって、遊技演出などの演出を行うことをいう。また、演出制御手段は、可変表示装置9の表示制御を行う図柄制御用マイクロコンピュータ100aと、スピーカ27の音出力制御、および各ランプ25,28a,28b,28cの表示制御を行う音/ランプ制御用マイクロコンピュータ100bとによって実現される。なお、この実施の形態では、音/ランプ制御用マイクロコンピュータ100bと図柄制御用マイクロコンピュータ100aの両方またはいずれか一方を指して、演出制御手段ということがある。また、音/ランプ制御基板80bおよび図柄制御基板80aを設けずに、演出制御に関して演出制御基板のみを設けてもよい。また、演出制御基板に一つのマイクロコンピュータを搭載し、当該マイクロコンピュータで演出に関する制御を行うようにしてもよい。
音/ランプ制御基板80bは、音/ランプ制御用CPU101bおよびRAMを含む音/ランプ制御用マイクロコンピュータ100bを搭載している。なお、RAMは外付けであってもよい。音/ランプ制御基板80bにおいて、音/ランプ制御用CPU101bは、内蔵または外付けのROM(図示せず)に格納されたプログラムに従って動作する。また、音/ランプ制御用マイクロコンピュータ100bは、遊技制御用マイクロコンピュータ560とシリアル通信で信号を入出力(送受信)するシリアル通信回路101cを内蔵している。
中継基板77には、主基板31(の遊技制御用マイクロコンピュータ560のシリアル通信回路505)から入力された信号を音/ランプ制御基板80bに向かう方向にしか通過させない(音/ランプ制御基板80bから中継基板77への方向には信号を通過させない)信号方向規制手段としての単方向性回路74が搭載されている。単方向性回路として、例えばダイオードやトランジスタが使用される。図6には、ダイオードが例示されている。
さらに、音/ランプ制御用CPU101bは、ランプドライバ352に対してランプを駆動する信号を出力する。ランプドライバ352は、ランプを駆動する信号を増幅して天枠ランプ28a、左枠ランプ28b、右枠ランプ28cなどの枠側に設けられている各ランプに供給する。また、枠側に設けられている装飾ランプ25に供給する。
また、音/ランプ制御用CPU101bは、音声合成用IC173に対して音番号データを出力する。音声合成用IC173は、音番号データに応じた音声や効果音を発生し増幅回路175に出力する。増幅回路175は、音声合成用IC173の出力レベルを、ボリューム176で設定されている音量に応じたレベルに増幅した音声信号をスピーカ27に出力する。音声データROM174には、音番号データに応じた制御データが格納されている。音番号データに応じた制御データは、所定期間(例えば飾り図柄の変動期間)における効果音または音声の出力態様を時系列的に示すデータの集まりである。
なお、ランプを駆動する信号および音番号データは、音/ランプ制御用CPU101bとランプドライバ352および音声合成IC173との間で、双方向通信(信号受信側から送信側に応答信号を送信するような通信)によって伝達される。
また、音/ランプ制御用マイクロコンピュータ100bは、演出制御コマンド(例えば、変動パターンコマンド)にもとづいて、可変表示装置9を用いて行う演出内容を決定する。例えば、音/ランプ制御用マイクロコンピュータ100bは、可変表示装置9を用いて予告演出を行うか否かを決定する。また、例えば、音/ランプ制御用マイクロコンピュータ100bは、可変表示装置9を用いて行う予告演出の種類を決定する。
なお、「予告演出」とは、大当りとなるまたはその可能性があることを事前(可変表示装置9において飾り図柄の停止図柄が導出表示される前に)に遊技者に報知するための演出をいう。例えば、変動中に異なった態様(速度や回転方向等)の変動を行ったりキャラクタ等を登場させたりすることにより大当りになる可能性があることを遊技者に報知する。
また、音/ランプ制御用マイクロコンピュータ100bは、主基板31からの演出制御コマンド(例えば、表示結果指定コマンド)を、入出力ポート104を介して図柄制御基板80aに転送(送信)する。また、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容(予告演出を行うか否かや、予告演出の種類)を示す演出内容指定コマンドを生成する。また、音/ランプ制御用マイクロコンピュータ100bは、生成した演出内容指定コマンドを、入出力ポート104を介して図柄制御基板80aに送信する。
なお、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容(予告演出を行うか否かや、予告演出の種類)を、演出制御コマンド(変動パターンコマンドや表示結果指定コマンド)に付加してもよい。そして、音/ランプ制御用マイクロコンピュータ100bは、演出内容を付加した演出制御コマンドを、入出力ポート104を介して図柄制御基板80aに送信してもよい。
図柄制御基板80aは、図柄制御用CPU101aおよびRAMを含む図柄制御用マイクロコンピュータ100aを搭載している。なお、RAMは外付けであってもよい。図柄制御基板80aにおいて、図柄制御用CPU101aは、内蔵または外付けのROM(図示せず)に格納されたプログラムに従って動作する。また、図柄制御用CPU101aは、音/ランプ制御用基板80bから受信した演出制御コマンドにもとづいて、VDP(ビデオディスプレイプロセッサ)109に、LCDを用いた可変表示装置9の表示制御を行わせる。
図柄制御用CPU101aは、受信した演出制御コマンドに従ってキャラクタROM(図示せず)から必要なデータを読み出す。キャラクタROMは、可変表示装置9に表示される画像の画像データ、具体的には、人物、文字、図形または記号等(飾り図柄を含む)をあらかじめ格納しておくためのものである。図柄制御用CPU101aは、キャラクタROMから読み出したデータをVDP109に出力する。VDP109は、図柄制御用CPU101aから入力されたデータにもとづいて表示制御を実行する。
この実施の形態では、可変表示装置9の表示制御を行うVDP109が図柄制御基板80aに搭載されている。VDP109は、図柄制御用マイクロコンピュータ100aとは独立したアドレス空間を有し、そこにVRAMをマッピングする。VRAMは、VDPによって生成された画像データを展開するためのバッファメモリである。そして、VDP109は、VRAM内の画像データを可変表示装置9に出力する。なお、可変表示装置の数に対応した数のVDPを図柄制御基板80aに搭載するようにしてもよい。
図7は、主基板31における回路構成および主基板31から音/ランプ制御基板80bに送信される演出制御コマンドの信号線を示すブロック図である。図7に示すように、この実施の形態では、主基板31が搭載する遊技制御用マイクロコンピュータ560は、演出制御信号送信用の1本の信号線を用いて、演出制御コマンド(演出制御信号)を音/ランプ制御基板80bに送信する。
主基板31には、図7に示すように、始動口スイッチ14aからの配線が接続されている。また、主基板31には、大入賞口である特別可変入賞球装置20や、その他の入賞口への遊技球の入賞等を検出するための各種スイッチ29a,30a,33a,39aからの配線も接続されている。さらに、主基板31には、可変入賞球装置15を開閉するソレノイド16、特別可変入賞球装置20を開閉するソレノイド21および大入賞口内の経路を切り換えるためのソレノイド21Aへの配線が接続されている。
主基板31は、遊技制御用マイクロコンピュータ560、入力ドライバ回路58および出力回路59を搭載する。遊技制御用マイクロコンピュータ560は、クロック回路501、システムリセット手段として機能するリセットコントローラ502、乱数回路503a,503b、ゲーム制御用のプログラム等を記憶するROM54、ワークメモリとして使用されるRAM55、プログラムに従って動作するCPU56、CPU56に割込要求信号(タイマ割込による割込要求信号)を送出するCTC504、払出制御基板37や音/ランプ制御基板80bが備えるマイクロコンピュータと非同期シリアル通信を行うシリアル通信回路505およびI/Oポート部57を内蔵する。
なお、この実施の形態では、シリアル通信回路505を内蔵するマイクロコンピュータを搭載した基板(例えば、主基板31)とは異なる基板(例えば、払出制御基板37や音/ランプ制御基板80b)のマイクロコンピュータとの通信にシリアル通信回路505を用いる場合を説明するが、シリアル通信回路505は、シリアル通信回路505を内蔵するマイクロコンピュータを搭載した基板が備える別のマイクロコンピュータとシリアル通信を行ってもよい。例えば、同じ構成の2つのマイクロコンピュータが同じ基板に搭載されている場合に、各マイクロコンピュータが内蔵するシリアル通信回路が相互にシリアル通信を行ってもよい。
クロック回路501は、システムクロック信号を27(=128)分周して生成した所定の周期の基準クロック信号CLKを、各乱数回路503a,503bに出力する。リセットコントローラ502は、ローレベルの信号が一定期間入力されたとき、CPU56および各乱数回路503a,503bに所定の初期化信号を出力して、遊技制御用マイクロコンピュータ560をシステムリセットする。
また、この実施の形態では、図7に示すように、遊技制御用マイクロコンピュータ560は、発生可能な乱数の値の範囲が異なる2つの乱数回路503a,503bを搭載する。乱数回路503aは、12ビットの疑似乱数を発生する乱数回路(以下、12ビット乱数回路ともいう)である。12ビット乱数回路503aは、12ビットで発生できる範囲(すなわち、0から4095までの範囲)の値の乱数を発生する機能を備える。また、乱数回路503bは、16ビットの疑似乱数を発生する乱数回路(以下、16ビット乱数回路ともいう)である。16ビット乱数回路503bは、16ビットで発生できる範囲(すなわち、0から65535までの範囲)の値の乱数を発生する機能を備える。なお、この実施の形態では、遊技制御用マイクロコンピュータ560が2つの乱数回路を内蔵する場合を説明するが、遊技制御用マイクロコンピュータ560は、3以上の乱数回路を内蔵してもよい。また、この実施の形態では、12ビット乱数回路503aおよび16ビット乱数回路503bを包括的に表現する場合、または、12ビット乱数回路503aと16ビット乱数回路503bとのうちいずれかを指す場合に、乱数回路503という。
次に、シリアル通信回路505の構成について説明する。シリアル通信回路505は、全二重方式、非同期方式および標準NRZ(ノンリターンゼロ)符号化を用いたデータフォーマットで、各制御基板(例えば、払出制御基板37や音/ランプ制御基板80b)のマイクロコンピュータとシリアル通信を行う。シリアル通信回路505は、各制御基板のマイクロコンピュータに各種データ(例えば、賞球個数コマンドや演出制御コマンド)を送信する送信部と、各制御基板のマイクロコンピュータからの各種データ(例えば、賞球ACKコマンド)を受信する受信部とを含む。
図8は、シリアル通信回路505の送信部の構成例を示すブロック図である。また、図9は、シリアル通信回路505の受信部の構成例を示すブロック図である。シリアル通信回路505は、ボーレートレジスタ702、ボーレート生成回路703、2つのステータスレジスタ705,706、3つの制御レジスタ707,708,709、送信データレジスタ710、受信データレジスタ711、送信用シフトレジスタ712、受信用シフトレジスタ713、割り込み制御回路714、送信フォーマット/パリティ生成回路715および受信フォーマット/パリティチェック回路716を含む。また、図8に示すように、シリアル通信回路505の送信部は、これらの構成要素のうち、ボーレートレジスタ702、ボーレート生成回路703、ステータスレジスタA705、制御レジスタ707,708,709、送信データレジスタ710、送信用シフトレジスタ712、割り込み制御回路714および送信フォーマット/パリティ生成回路715によって構成される。また、図9に示すように、シリアル通信回路505の受信部は、これらの構成要素のうち、ボーレートレジスタ702、ボーレート生成回路703、ステータスレジスタ705,706、制御レジスタ707,708,709、受信データレジスタ711、受信用シフトレジスタ713、割り込み制御回路714および受信フォーマット/パリティチェック回路716によって構成される。
なお、シリアル通信回路505において、送信部と受信部とは、実際には、共通の回路を用いて構成される。そして、シリアル通信回路505は、上記に示したように、シリアル通信回路505の各構成要素を使い分けて用いることによって、送信回路又は受信回路として機能する。
まず、シリアル通信回路505が各制御基板が搭載するマイクロコンピュータと送受信するデータのデータフォーマットを説明する。図10は、シリアル通信505が各制御基板が搭載するマイクロコンピュータと送受信するデータのデータフォーマットの例を示す説明図である。図10に示すように、シリアル通信回路505が送受信するデータのデータフォーマットは、スタートビット、データおよびストップビットを1フレームとして構成される。また、シリアル通信回路505が送受信するデータのデータ長は、後述するシリアル通信回路設定処理において初期設定を行えば、8ビットまたは9ビットのいずれかに設定できる。図10(a)は、データ長を8ビットに設定した場合のデータフォーマットの例である。また、図10(b)は、データ長を9ビットに設定した場合のデータフォーマットの例である。
図10に示すように、シリアル通信回路505が送受信するデータのデータフォーマットは、ハイレベル(論理「1」)のアイドルラインのあとに、1フレームの始まりであることを示すスタートビット(論理「0」)を含む。また、データフォーマットは、スタートビットのあとに、8ビットまたは9ビットの送受信データを含む。そして、データフォーマットは、送受信データのあとに、1フレームの終わりであることを示すストップビット(論理「1」)を含む。
シリアル通信回路505は、図10に示すデータフォーマットに従って、送受信データの最下位ビット(ビット0)から先にデータを送受信する。また、後述するシリアル通信回路設定処理において初期設定を行えば、送受信データにパリティビットを付加するように設定することもできる。パリティビットを付加するように設定した場合、送受信データの最上位ビットがパリティビット(奇数パリティまたは偶数パリティ)として用いられる。例えば、データ長を8ビットに設定した場合、送受信データのビット7がパリティビットとして用いられる。また、例えば、データ長を9ビットに設定した場合、送受信データのビット8がパリティビットとして用いられる。
ボーレート生成回路703は、クロック回路501が出力するクロック信号およびボーレートレジスタ702に設定されている設定値(ボーレート設定値ともいう)にもとづいて、シリアル通信回路505が用いるボーレートを生成する。この場合、ボーレート生成回路703は、クロック信号およびボーレート設定値にもとづいて、所定の計算式を用いてボーレートを求める。例えば、ボーレート生成回路703は、式(1)を用いて、シリアル通信回路505が用いるボーレートを求める。
ボーレート=クロック周波数/(ボーレート設定値×16) 式(1)
図11は、ボーレートレジスタ702の例を示す説明図である。ボーレートレジスタ702は、ボーレート生成回路703が生成するボーレートの値を指定するための所定の設定値を設定するレジスタである。例えば、ボーレートレジスタ702が式(1)を用いてボーレートを求めるものとし、クロック周波数が3MHzであるとする。この場合、所望の目標ボーレートが1200bpsであるとすると、ボーレートレジスタ702に設定値「156」を設定する。すると、ボーレート生成回路703は、クロック周波数「3MHz」およびボーレート設定値「156」にもとづいて、式(1)を用いて、ボーレート「1201.92bps」を生成する。ボーレートレジスタ702は、16ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、ボーレートレジスタ702は、ビット0〜ビット12が書込および読出ともに可能な状態に構成されている。また、ボーレートレジスタ702は、ビット13〜ビット15が書込および読出ともに不可能な状態に構成されている。したがって、ボーレートレジスタ702のビット13〜ビット15に値を書き込む制御を行っても無効とされ、ビット13〜ビット15から読み出す値は全て「0(=000b)」である。
図12(A)は、制御レジスタA707の例を示す説明図である。制御レジスタA707は、シリアル通信回路505の通信フォーマットを設定するレジスタである。この実施の形態では、制御レジスタA707の各ビットの値が設定されることによって、シリアル通信回路505の通信フォーマットが設定される。制御レジスタA707には、送受信データのデータ形式や各種通信方式等の通信フォーマットを設定するための通信フォーマット設定データが設定される。図12(A)に示すように、制御レジスタA707は、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、制御レジスタA707は、ビット0〜ビット4が書込および読出ともに可能な状態に構成されている。また、制御レジスタA707は、ビット5〜ビット7が書込および読出ともに不可能な状態に構成されている。したがって、制御レジスタA707のビット5〜ビット7に値を書き込む制御を行っても無効とされ、ビット5〜ビット7から読み出す値は全て「0(=000b)」である。
図12(B)は、制御レジスタA707に設定される通信フォーマット設定データの一例の説明図である。図12(B)に示すように、制御レジスタA707のビット4(ビット名「M」)には、送受信するデータのデータ長を設定するための設定データが設定される。図12(B)に示すように、ビット4を「0」に設定することによって、送受信データのデータ長が8ビットに設定される。また、ビット4を「1」に設定することによって、送受信データのデータ長が9ビットに設定される。
制御レジスタA707のビット3(ビット名「WAKE」)には、スタンバイ状態の受信回路(シリアル通信回路505の受信部)をウエイクアップする(オンライン状態にさせる)ウエイクアップ方式を設定するための設定データが設定される。図12(B)に示すように、ビット3を「0」に設定することによって、アイドルラインを認識したときにウエイクアップするアイドルラインウエイクアップ方式が設定される。また、ビット3を「1」に設定することによって、所定のアドレスマークを認識することによってウエイクアップするアドレスマークウエイクアップ方式が設定される。
制御レジスタA707のビット2(ビット名「ILT」)には、受信データのアイドルラインの検出方式を選択するための設定データが設定される。図12(B)に示すように、ビット2を「0」に設定することによって、受信データに含まれるスタートビットの後からアイドルラインを検出する検出方式が設定される。また、ビット2を「1」に設定することによって、受信データに含まれるストップビットの後からアイドルラインを検出する検出方式が設定される。
制御レジスタA707のビット1(ビット名「PE」)には、パリティ機能を使用するか否かを設定するための設定データが設定される。図12(B)に示すように、ビット1を「0」に設定することによって、パリティ機能を使用しないように設定される。また、ビット1を「1」に設定することによって、パリティ機能を使用するように設定される。
制御レジスタA707のビット0(ビット名「PT」)には、パリティ機能を使用すると設定した場合のパリティの種類を設定するための設定データが設定される。図12(B)に示すように、ビット0を「0」に設定することによって、パリティの種類として偶数パリティが設定される。また、ビット0を「1」に設定することによって、パリティの種類として奇数パリティが設定される。
図13(A)は、制御レジスタB708の例を示す説明図である。制御レジスタB708は、シリアル通信回路505の割り込み要求を許可するか否かを設定するレジスタである。この実施の形態では、制御レジスタB708の各ビットの値が設定されることによって、シリアル通信回路505からの割り込み要求を許可するか禁止するかが設定される。制御レジスタB708には、各種割り込み要求を許可するか否かを示す割り込み要求設定データが主として設定される。なお、制御レジスタB708には、割り込み要求設定データ以外に、シリアル通信回路505の各種設定を行うための設定データも設定される。図13(A)に示すように、制御レジスタB708は、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、制御レジスタB708は、ビット0〜ビット7が書込および読出ともに可能な状態に構成されている。
図13(B)は、制御レジスタB708に設定される割り込み要求設定データの一例を示す説明図である。図13(B)に示すように、制御レジスタB708のビット7(ビット名「TIE」)には、データの送信時に行う割り込み要求である送信割り込み要求を許可するか否かを示す設定データが設定される。図13(B)に示すように、ビット7を「0」に設定することによって、送信割り込み要求を禁止するように設定される。また、ビット7を「1」に設定することによって、送信割り込み要求を許可するように設定される。
制御レジスタB708のビット6(ビット名「TCIE」)には、データの送信完了時に行う割り込み要求である送信完了割り込み要求を許可するか否かを示す設定データが設定される。図13(B)に示すように、ビット6を「0」に設定することによって、送信完了割り込み要求を禁止するように設定される。また、ビット6を「1」に設定することによって、送信完了割り込み要求を許可するように設定される。
制御レジスタB708のビット5(ビット名「RIE」)には、データの受信時に行う割り込み要求である受信割り込み要求を許可するか否かを示す設定データが設定される。図13(B)に示すように、ビット5を「0」に設定することによって、受信割り込み要求を禁止するように設定される。また、ビット5を「1」に設定することによって、受信割り込み要求を許可するように設定される。
制御レジスタB708のビット4(ビット名「ILIE」)には、受信データのアイドルラインを検出したときに行う割り込み要求であるアイドルライン割り込み要求を許可するか否かを示す設定データが設定される。図13(B)に示すように、ビット4を「0」に設定することによって、アイドルライン割り込み要求を禁止するように設定される。また、ビット4を「1」に設定することによって、アイドルライン割り込み要求を許可するように設定される。
制御レジスタB708のビット3(ビット名「TE」)には、送信回路(シリアル通信回路505の送信部)を使用するか否かを示す設定データが設定される。図13(B)に示すように、ビット3を「0」に設定することによって、送信回路を使用しないように設定される。また、ビット3を「1」に設定することによって、送信回路を使用するように設定される。なお、この実施の形態では、ビット3を「1」に設定することによって、送信回路を使用する設定が行われる。このような設定は、メイン処理の初期設定(例えばステップS15a)において行われる。
制御レジスタB708のビット2(ビット名「RE」)には、受信回路を使用するか否かを示す設定データが設定される。図13(B)に示すように、ビット2を「0」に設定することによって、受信回路を使用しないように設定される。また、ビット2を「1」に設定することによって、受信回路を使用するように設定される。なお、この実施の形態では、ビット2を「1」に設定することによって、受信回路を使用する設定が行われる。このような設定は、メイン処理の初期設定(例えばステップS15a)において行われる。
制御レジスタB708のビット1(ビット名「RWU」)には、受信回路のウエイクアップ機能を使用するか否かを示す設定データが設定される。図13(B)に示すように、ビット1を「0」に設定することによって、ウエイクアップ機能を使用しないように設定される。また、ビット1を「1」に設定することによって、ウエイクアップ機能を使用するように設定される。
制御レジスタB708のビット0(ビット名「SBK」)には、所定のブレークコード送信機能を使用するか否かを示す設定データが設定される。図13(B)に示すように、ビット1を「0」に設定することによって、ブレークコード送信機能を使用しないように設定される。また、ビット1を「1」に設定することによって、ブレークコード送信機能を使用するように設定される。ビット1を「1」に設定すると、シリアル通信回路505は、ブレークコード(例えば、「0」を連続して含む信号)を制御基板(払出制御基板37や音/ランプ制御基板80b)が搭載するマイクロコンピュータに送信する。
図14(A)は、ステータスレジスタA705の例を示す説明図である。ステータスレジスタA705は、シリアル通信回路505の各種ステータスを確認するためのレジスタである。この実施の形態では、ステータスレジスタA705の各ビットの値を確認することによって、CPU56は、シリアル通信回路505の各種ステータスを確認することができる。図14(A)に示すように、ステータスレジスタA705は、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、ステータスレジスタA705は、ビット0〜ビット7が読出のみ可能な状態に構成されている。したがって、ステータスレジスタA705のビット0〜ビット7に値を書き込む制御を行っても無効とされる。
本実施の形態では、後述するように、送信データレジスタ710に送信データが入っていない状態(送信データエンプティ)となったり、送信用シフトレジスタ712が格納する送信データの送信を完了すると、割り込み制御回路714によって、ステータスレジスタA705の対応するビットがセットされる。そして、CPU56は、ステータスレジスタA705にセットされた各ビットの値を読み出す。
図14(B)は、ステータスレジスタA705に格納されるステータス確認データの一例を示す図である。図14(B)に示すように、ステータスレジスタA705のビット7(ビット名「TDRE」)には、送信データレジスタ710に送信データが入っていない状態であること(送信データエンプティ)を示す送信データエンプティフラグが格納される。図14(B)に示すように、ビット7に「0」が格納されている場合、送信データレジスタ710から送信用シフトレジスタ712に送信データが未だに転送されておらず、送信データレジスタ710に送信データが格納されたままの状態であることを示す。また、ビット7に「0」が格納されている状態では、送信データレジスタにデータが書き込まれない。例えば、ステップS508、S511ではビット7に「0」が格納されていないことを条件に送信データを設定する。また、ビット7に「1」が格納されている場合、送信データレジスタ710から送信用シフトレジスタ712に送信データが転送されており、送信データレジスタ710に送信データが入っていない状態(送信データエンプティ)であることを示す。
ステータスレジスタA705のビット6(ビット名「TC」)には、シリアル通信回路505からの送信データの送信を完了した旨を示す送信完了フラグが格納される。図14(B)に示すように、ビット6に「0」が格納されている場合、送信用シフトレジスタ712が格納する送信データの送信中の状態であり、シリアル通信回路505からの送信データの送信が完了していない状態であることを示す。また、ビット6に「1」が格納されている場合、送信用シフトレジスタ712が格納する送信データの転送を完了した状態であり、シリアル通信回路505からの送信データの送信が完了した状態であることを示す。コマンド格納領域がリングバッファ形式の場合には、ビット6に「1」が格納された状態となれば、コマンドの読出ポインタを更新する。
なお、送信データの送信を完了した状態となり、遊技制御用マイクロコンピュータ560は、送信先のマイクロコンピュータからの受信確認信号の待ち状態となる。この実施の形態では、後述する送信時割込の設定が行われると、シリアル通信回路505は、送信データの送信完了を検出すると、ステータスレジスタA705のビット6を「1」にするとともに、受信確認信号の待ち状態になったものとしてCPU56に割り込み要求(送信時割り込み要求という)を行う。
ステータスレジスタA705のビット5(ビット名「RDRF」)には、受信データレジスタ711に受信データが格納された状態であること(受信データフル)を示す受信データフルフラグが格納される。図14(B)に示すように、ビット5に「0」が格納されている場合、受信データレジスタ711に受信データが入っていない状態であることを示す。また、ビット5に「1」が格納されている場合、受信用シフトレジスタ713の値が受信データレジスタ711に転送され、受信データレジスタ711に受信データが格納されている状態であること(受信データフル)を示す。払出制御用マイクロコンピュータ370からのコマンドを受信したかどうかは、ビット5に「1」が格納された状態となっているかどうかによって確認される。例えば、ステップS501ではビット7に「0」が格納されていないことを条件に受信ACK信号を受信していると判定する。
なお、受信データレジスタ711に受信データが格納された状態となると、CPU56は、受信データを受信データレジスタ711から読み込んで受信処理を行える状態となる。この実施の形態では、受信時割込の設定が行われると、シリアル通信回路505は、受信データフルを検出すると、ステータスレジスタA705のビット5を「1」にするとともに、受信処理が可能になったものとしてCPU56に割り込み要求(受信時割り込み要求という)を行う。
ステータスレジスタA705のビット4(ビット名「IDLE」)には、受信回路がアイドルラインを検出したことを示すアイドルライン検出フラグが格納される。図14(B)に示すように、ビット4に「0」が格納されている場合、シリアル通信回路505の受信部がアイドルラインを検出していない状態であることを示す。また、ビット4に「1」が格納されている場合、シリアル通信回路505の受信部がアイドルラインを検出した状態であることを示す。
ステータスレジスタA705のビット3(ビット名「OR」)には、CPU56が受信データレジスタ711が格納する受信データを読み込む前に、受信用シフトレジスタ713が次のデータを受信してしまったこと(オーバーラン)を示すオーバーランフラグが格納される。図14(B)に示すように、ビット3に「0」が格納されている場合、受信回路がオーバーランを検出していない状態であることを示す。また、ビット3に「1」が格納されている場合、受信回路がオーバーランを検出した状態であることを示す。
なお、オーバーランが発生すると、受信データレジスタ711内の受信データが読み込まれる前に受信用シフトレジスタ713に次の受信データが格納されてしまうので、受信データが上書きされてしまいCPU56が受信データを正しく読み込めなくなってしまう。そのため、各制御基板が搭載するマイクロコンピュータと正しく通信を行えなくなり、CPU56が誤動作をする原因となる。この実施の形態では、シリアル通信回路505は、オーバーランを検出すると、ステータスレジスタA705のビット3を「1」にするとともに、通信時にエラーが発生したものとしてCPU56に割り込み要求を行う。
ステータスレジスタA705のビット2(ビット名「NF」)には、受信データにノイズを検出したことを示すノイズエラーフラグが格納される。図14(B)に示すように、ビット2に「0」が格納されている場合、受信回路が受信データにノイズを検出していない状態であることを示す。また、ビット2に「1」が格納されている場合、受信回路が受信データにノイズを検出した状態であることを示す。
例えば、シリアル通信回路505は、受信データの各ビットを検出する際に、ボーレート生成回路703が生成したボーレートを用いて、所定ビット長の「1」または「0」を検出する。この場合、検出した「1」または「0」の長さが所定ビット長に満たない場合、シリアル通信回路505は、受信データにノイズが発生したものとしてノイズエラーを検出する。ノイズエラーが発生すると、ノイズによって正しい受信データを受信できない可能性が高く、CPU56が誤動作をする原因となる。この実施の形態では、シリアル通信回路505は、ノイズエラーを検出すると、ステータスレジスタA705のビット2を「1」にするとともに、通信時にエラーが発生したものとしてCPU56に割り込み要求を行う。
ステータスレジスタA705のビット1(ビット名「FE」)には、受信データのストップビットの位置が「0」(本来、ストップビットは「1」)であることを検出したこと(フレーミングエラー)を示すフレーミングエラーフラグが格納される。図14(B)に示すように、ビット1に「0」が格納されている場合、受信回路が受信データにフレーミングエラーを検出していない状態であることを示す。また、ビット1に「1」が格納されている場合、受信回路がフレーミングエラーを検出した状態であることを示す。
フレーミングエラーが発生すると、受信データのストップビットを正しく受信できなかった状態であるので、正しい受信データを受信できない可能性が高く、CPU56が誤動作をする原因となる。この実施の形態では、シリアル通信回路505は、フレーミングエラーを検出すると、ステータスレジスタA705のビット1を「1」にするとともに、通信時にエラーが発生したものとしてCPU56に割り込み要求を行う。
ステータスレジスタA705のビット0(ビット名「PF」)には、受信データから求めたパリティの値と、受信データに含まれるパリティの値とが一致しなかったこと(パリティエラー)を示すパリティエラーフラグが格納される。図14(B)に示すように、ビット0に「0」が格納されている場合、受信回路が受信データにパリティエラーを検出していない状態であることを示す。また、ビット0に「1」が格納されている場合、受信回路がパリティエラーを検出した状態であることを示す。
パリティエラーが発生すると、受信データの各データビットまたはパリティビットを正しく受信できなかった状態であるので、正しい受信データを受信できない可能性が高く、CPU56が誤動作をする原因となる。この実施の形態では、シリアル通信回路505は、パリティエラーを検出すると、ステータスレジスタA705のビット0を「1」にするとともに、通信時にエラーが発生したものとしてCPU56に割り込み要求を行う。
図15(A)は、ステータスレジスタB706の例を示す説明図である。ステータスレジスタB706は、シリアル通信回路505の受信状態(受信ステータス)を確認するためのレジスタである。この実施の形態では、ステータスレジスタB706のビットの値を確認することによって、CPU56は、シリアル通信回路505の受信ステータスを確認することができる。図15(B)に示すように、ステータスレジスタB706は、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、ステータスレジスタB706は、ビット0が読出のみ可能な状態に構成されている。したがって、ステータスレジスタA705のビット0に値を書き込む制御を行っても無効とされる。また、ステータスレジスタB706は、ビット1〜ビット7が書込および読出ともに不可能な状態に構成されている。したがって、ステータスレジスタA705のビット1〜ビット7に値を書き込む制御を行っても無効とされ、ビット1〜ビット7から読み出す値は全て「0(=0000b)」である。
図15(B)は、ステータスレジスタB706に格納されるステータス確認データの一例を示す図である。図15(B)に示すように、ステータスレジスタB706のビット0(ビット名「RAF」)には、受信回路が受信データを受信中であること(受信アクティブ)を示す受信アクティブフラグが格納される。図15(B)に示すように、ビット0に「0」が格納されている場合、受信回路が受信データを受信中でないことを示す。また、ビット0に「1」が格納されている場合、受信回路が受信データを受信中であることを示す。また、ビット0に「1」が格納されている場合にも、コマンドデータの書き込みを行わない、もしくはコマンドデータを書き込めなくなっている。なお、シリアル通信回路505は、スタートビットを検出すると、受信データの受信が開始されたものとして、ステータスレジスタB706のビット0を「1」にする。
図16(A)は、制御レジスタC709の例を示す説明図である。制御レジスタC709は、シリアル通信回路505の通信エラー時の割り込み要求を許可するか否かを設定するレジスタである。この実施の形態では、制御レジスタC709の各ビットの値が設定されることによって、シリアル通信回路505からの通信時の割り込み要求を許可するか禁止するかが設定される。制御レジスタC709には、通信エラー時の各種割り込み要求を許可するか否かを示すエラー割り込み要求設定データが主として設定される。なお、制御レジスタC709には、エラー割り込み要求設定データ以外に、データ長を9ビットに設定した場合の9ビット目のデータが格納される。シリアル通信回路505の各種設も設定される。図16(A)に示すように、制御レジスタC709は、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、制御レジスタC709は、ビット0〜ビット3およびビット6,7が書込および読出ともに可能な状態に構成されている。また、制御レジスタC709は、ビット4,5が書込および読出ともに不可能な状態に構成されている。したがって、制御レジスタC709のビット4,5に値を書き込む制御を行っても無効とされ、ビット4,5から読み出す値は全て「0(=0000b)」である。
図16(B)は、制御レジスタC709に設定されるエラー割り込み要求設定データの一例を示す説明図である。図16(B)に示すように、制御レジスタC709のビット7(ビット名「R8」)には、データ長を9ビットに設定した場合の受信データの9ビット目のデータが格納される。また、制御レジスタC709のビット6(ビット名「T8」)には、データ長を9ビットに設定した場合の送信データの9ビット目のデータが格納される。
制御レジスタC709のビット3(ビット名「ORIE」)には、オーバーランを検出した場合に行う割り込み要求であるオーバーランフラグ割り込み要求を許可するか否かを示す設定データが設定される。図16(B)に示すように、ビット3を「0」に設定することによって、オーバーランフラグ割り込み要求を禁止するように設定される。また、ビット3を「1」に設定することによって、オーバーランフラグ割り込み要求を許可するように設定される。
制御レジスタC709のビット2(ビット名「NEIE」)には、ノイズエラーを検出した場合に行う割り込み要求であるノイズエラーフラグ割り込み要求を許可するか否かを示す設定データが設定される。図16(B)に示すように、ビット2を「0」に設定することによって、ノイズエラーフラグ割り込み要求を禁止するように設定される。また、ビット2を「1」に設定することによって、ノイズエラーフラグ割り込み要求を許可するように設定される。
制御レジスタC709のビット1(ビット名「FEIE」)には、フレーミングエラーを検出した場合に行う割り込み要求であるフレーミングエラーフラグ割り込み要求を許可するか否かを示す設定データが設定される。図16(B)に示すように、ビット1を「0」に設定することによって、フレーミングエラーフラグ割り込み要求を禁止するように設定される。また、ビット1を「1」に設定することによって、フレーミングエラーフラグ割り込み要求を許可するように設定される。
制御レジスタC709のビット0(ビット名「PEIE」)には、パリティエラーを検出した場合に行う割り込み要求であるパリティエラーフラグ割り込み要求を許可するか否かを示す設定データが設定される。図16(B)に示すように、ビット0を「0」に設定することによって、パリティエラーフラグ割り込み要求を禁止するように設定される。また、ビット0を「1」に設定することによって、パリティエラーフラグ割り込み要求を許可するように設定される。
図17は、シリアル通信回路505が備えるデータレジスタの例を示す説明図である。データレジスタ701は、シリアル通信回路505が送受信するデータを格納するレジスタである。図17に示すように、データレジスタは、8ビットレジスタであり、初期値が「0(=00h)」に設定されている。また、データレジスタ701は、ビット0〜ビット7が書込および読出ともに可能な状態に構成されている。
この実施の形態では、シリアル通信回路505が送信データを送信する場合、データレジスタは、送信データレジスタ710として用いられる。なお、データ長を9ビットに設定した場合、データレジスタおよび制御レジスタC709のビット6が送信データレジスタ710として用いられる。この場合、データレジスタのビット0〜ビット7が送信データレジスタ710のビット0〜ビット7として用いられ、制御レジスタC709のビット6が送信データレジスタ710のビット8として用いられる。
また、シリアル通信回路505が受信データを受信する場合、データレジスタは、受信データレジスタ711として用いられる。なお、データ長を9ビットに設定した場合、データレジスタおよび制御レジスタC709のビット7が受信データレジスタ711として用いられる。この場合、データレジスタのビット0〜ビット7が受信データレジスタ711のビット0〜ビット7として用いられ、制御レジスタC709のビット7が受信データレジスタ711のビット8として用いられる。
割り込み制御回路714は、CPU56に各種割り込み要求を行う。この実施の形態では、割り込み制御回路714は、制御レジスタB708のビット6(TCIE)が「1」に設定されている場合、送信データレジスタ710に送信データの送信を完了した状態となると、CPU56に割り込み信号を出力するとともに、ステータスレジスタA705のビット6(TC)に「1」を設定することによって割り込み要求を行う。なお、ステータスレジスタA705のビットの設定値により割込要因を識別可能とするのでなく、割り込み制御回路714は、割込要因毎に異なる割り込み信号をCPU56に出力するようにしてもよい。
また、割り込み制御回路714は、制御レジスタB708のビット5(RIE)が「1」に設定されている場合、受信データレジスタ711に受信データが格納されている状態になると(受信データフルを検出すると)、CPU56に割り込み信号を出力するとともに、ステータスレジスタA705のビット5(RDRF)に「1」を設定することによって割り込み要求を行う。
また、割り込み制御回路714は、制御レジスタC709のビット0〜3のいずれかが「1」に設定されている場合、各種通信エラーが発生すると、CPU56に割り込み信号を出力するとともに、通信エラーの種類に応じて、ステータスレジスタA705のビット0〜ビット3に「1」を設定することによって割り込み要求を行う。例えば、制御レジスタC709のビット3(ORIE)が「1」に設定されている場合、オーバーランを検出して割り込み要求を行うときに、ステータスレジスタA705のビット3(OR)に「1」を設定する。また、例えば、制御レジスタC709のビット2(NEIE)が「1」に設定されている場合、ノイズエラーを検出して割り込み要求を行うときに、ステータスレジスタA705のビット2(NF)に「1」を設定する。また、例えば、制御レジスタC709のビット1(FEIE)が「1」に設定されている場合、フレーミングエラーを検出して割り込み要求を行うときに、ステータスレジスタA705のビット1(FE)に「1」を設定する。また、例えば、制御レジスタC709のビット0(PEIE)が「1」に設定されている場合、パリティエラーを検出して割り込み要求を行うときに、ステータスレジスタA705のビット0(PF)に「1」を設定する。なお、複数の通信エラーを検出した場合、割り込み制御回路714は、複数の通信エラーにもとづいて割り込み要求を行うとともに、ステータスレジスタA705の該当するビットをそれぞれ「1」に設定する。
送信フォーマット/パリティ生成回路715は、送信データのデータフォーマットを生成する。この実施の形態では、送信フォーマット/パリティ生成回路715は、送信データレジスタ710に格納される送信データにスタートビットおよびストップビットを付加してデータフォーマットを生成し、送信用シフトレジスタ712に転送する。また、制御レジスタA707のビット1(PE)に「1」が設定され、パリティ機能を使用する旨が設定されている場合、送信フォーマット/パリティ生成回路715は、送信データにパリティビットを付加してデータフォーマットを生成する。
受信フォーマット/パリティチェック回路716は、受信データのデータフォーマットを検出する。この実施の形態では、受信フォーマット/パリティチェック回路716は、受信用シフトレジスタ713に格納される受信データからスタートビットおよびストップビットを検出し、受信データに含まれるデータ部分を検出して受信データレジスタ711に転送する。また、制御レジスタA707のビット1(PE)に「1」が設定され、パリティ機能を使用する旨が設定されている場合、受信フォーマット/パリティチェック回路716は、受信データのパリティを求め、受信データに含まれるパリティと一致するか否かを検出する。また、求めた値が受信データに含まれるパリティと一致しない場合、受信フォーマット/パリティチェック回路716は、パリティエラーを検出する。なお、後述するシリアル通信回路設定処理において通信エラー時割り込み要求を許可する旨が設定されてる場合、割り込み制御回路714は、パリティエラーを検出すると、通信エラーの発生を割込原因としてCPU56に割り込み要求を行う。
大当り判定用テーブルメモリ571は、CPU56が特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定するために用いる複数の大当り判定テーブルを記憶する。具体的には、大当り判定用テーブルメモリ571は、図18(A)に示すように、確変状態以外の遊技状態(通常状態という)において用いられる通常時大当り判定テーブル571aを記憶する。また、大当り判定用テーブルメモリ571は、図18(B)に示すように、確変状態において用いられる確変時大当り判定テーブル571bを格納する。なお、図18に示す判定テーブルを用いて大当り判定を行う場合、乱数最大値設定レジスタ535に設定された乱数最大値によって大当りと判定する確率が大きく変化することになる。この場合、例えば、設定される乱数最大値が小さすぎると、通常時大当り判定テーブル571aを用いた場合と、確変時大当り判定テーブル571bを用いた場合とで、大当りと判定する確率の差が小さくなってしまい、遊技者の遊技に対する興味を減退させてしまうことになる。そのため、乱数回路503および乱数最大値に対応づけて、複数の判定テーブル(複数の通常時大当り判定用テーブル571aおよび複数の確変時大当り判定用テーブル571b)を大当り判定用テーブルメモリ571に記憶してもよい。そして、CPU56は、大当り判定用テーブルメモリ571が記憶する判定テーブルのうち、使用する乱数回路503および乱数最大値に対応する判定テーブル571a,571bを用いて、表示結果決定プログラム552に従って、特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定するようにしてもよい。そのようにすることによって、使用する乱数回路503の種類や乱数最大値が異なっても、大当りと判定する確率がある程度同じになるように制御することができる。
図19および図20は、遊技制御手段における出力ポートの割り当ての例を示す説明図である。図19に示すように、出力ポート0は払出制御基板37に送信される払出制御信号(本例では、接続確認信号)の出力ポートである。また、出力ポート1は音/ランプ制御基板80bに送信される演出制御信号(演出制御コマンド)の出力ポートである。なお、図19および図20に示された「論理」(例えば1がオン状態)と逆の論理(例えば0がオン状態)を用いてもよいが、特に、接続確認信号については、主基板31と払出制御基板37との間の信号線において断線が生じた場合やケーブル外れの場合(ケーブル未接続を含む)等に、払出制御用マイクロコンピュータ370では必ずオフ状態と検知されるように「論理」が定められる。具体的には、一般に、断線やケーブル外れが生ずると信号の受信側ではハイレベルが検知されるので、主基板31と払出制御基板37との間の信号線でのハイレベルが、遊技制御手段における出力ポートにおいてオフ状態になるように「論理」が定められる。従って、必要であれば、主基板31において出力ポートの外側に、信号を論理反転させる出力バッファ回路が設置される。
大入賞口を開閉する可変入賞球装置20を開閉するためのソレノイド(大入賞口扉ソレノイド)21、大入賞口内の経路を切り換えるためのソレノイド(大入賞口内誘導板ソレノイド)21Aおよび可変入賞球装置15を開閉するためのソレノイド(普通電動役物ソレノイド)16に対する駆動信号は、出力ポート2から出力される。
そして、出力ポート3から、情報出力回路64を介して情報端子板34やターミナル基板160に至る各種情報出力用信号すなわち制御に関わる情報の出力データが出力される。
図21は、遊技制御手段における入力ポートのビット割り当ての例を示す説明図である。図21に示すように、入力ポート0のビット1〜7には、それぞれ、カウントスイッチ23、ゲートスイッチ32a、入賞口スイッチ33a,39a,29a,30a、始動口スイッチ14aの検出信号が入力される。また、入力ポート1のビット0,1には、それぞれ、電源基板910からの電源断信号およびクリアスイッチ921の検出信号が入力される。また、入力ポート1のビット2には、払出制御用マイクロコンピュータ370を経由して、払出個数カウントスイッチ301の検出信号が入力される。なお、払出個数カウントスイッチ301の検出信号を入力させる代わりに払い出された賞球が10個に達したときに払出制御用マイクロコンピュータ370から出力される信号を入力するようにしてもよい。また、払出個数カウントスイッチ301からの信号を遊技制御手段に入力させないようにしてもよい。
次に遊技機の動作について説明する。図22および図23は、遊技機に対して電力供給が開始され遊技制御用マイクロコンピュータ560へのリセット信号がハイレベルになったことに応じて遊技制御用マイクロコンピュータ560のCPU56が実行するメイン処理を示すフローチャートである。リセット信号が入力されるリセット端子の入力レベルがハイレベルになると、遊技制御用マイクロコンピュータ560のCPU56は、プログラムの内容が正当か否かを確認するための処理であるセキュリティチェック処理を実行した後、ステップS1以降のメイン処理を開始する。メイン処理において、CPU56は、まず、必要な初期設定を行う。
初期設定処理において、CPU56は、まず、割込禁止に設定する(ステップS1)。次に、マスク可能割込の割込モードを設定し(ステップS2)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS3)。なお、ステップS2では、遊技制御用マイクロコンピュータ560の特定レジスタ(Iレジスタ)の値(1バイト)と内蔵デバイスが出力する割込ベクタ(1バイト:最下位ビット0)から合成されるアドレスが、割込番地を示すモードに設定する。また、マスク可能な割込が発生すると、CPU56は、自動的に割込禁止状態に設定するとともに、プログラムカウンタの内容をスタックにセーブする。
次いで、内蔵デバイスレジスタの設定(初期化)を行う(ステップS4)。ステップS4の処理によって、内蔵デバイス(内蔵周辺回路)であるCTC(カウンタ/タイマ)およびPIO(パラレル入出力ポート)の設定(初期化)がなされる。
この実施の形態で用いられる遊技制御用マイクロコンピュータ560は、I/Oポート(PIO)およびタイマ/カウンタ回路(CTC)504も内蔵している。
次に、入力ポート1のビット0の状態によって電源断信号がオフ状態になっているか否か確認する(ステップS5)。遊技機に対する電力供給が開始されたときに、+5V電源などの各種電源の出力電圧は徐々に規定値に達するのであるが、ステップS5の処理によって、すなわち、電源断信号が出力されていない(ハイレベルになっている)ことを確認することによりCPU56は電源電圧が安定したことを確認することができる。
電源断信号がオン状態である場合には、CPU56は、所定期間(例えば、0.1秒)の遅延時間の後に(ステップS80)、再度、電源断信号がオフ状態になっているか否か確認する。電源断信号がオフ状態になっている場合には、RAM55をアクセス可能状態に設定し(ステップS6)、クリア信号のチェック処理に移行する。
なお、遊技の進行を制御する遊技装置制御処理(遊技制御処理)の開始タイミングをソフトウェアで遅らせるためのソフトウェア遅延処理を実行するようにしてもよい。そのようなソフトウェア遅延処理によって、ソフトウェア遅延処理を実行しない場合に比べて、遊技制御処理の開始タイミングを遅延させることができる。遅延処理を実行したときには、他の制御基板(例えば、払出制御基板37)に対して、遊技制御基板(主基板31)が送信するコマンドを他の制御基板のマイクロコンピュータが受信できないという状況が発生することを防止できる。
次いで、CPU56は、クリアスイッチがオンされているか否か確認する(ステップS7)。なお、CPU56は、入力ポート0を介して1回だけクリア信号の状態を確認するようにしてもよいが、複数回クリア信号の状態を確認するようにしてもよい。例えば、クリア信号の状態がオフ状態であることを確認したら、所定時間(例えば、0.1秒)の遅延時間をおいた後、クリア信号の状態を再確認する。そのときにクリア信号の状態がオン状態であることを確認したら、クリア信号がオン状態になっていると判定する。また、このときにクリア信号の状態がオフ状態であることを確認したら、所定時間の遅延時間をおいた後、再度、クリア信号の状態を再確認するようにしてもよい。ここで、再確認の回数は、1回または2回に限られず、3回以上であってもよい。また、2回チェックして、チェック結果が一致していなかったときにもう一度確認するようにしてもよい。
ステップS7でクリアスイッチがオンでない場合には、遊技機への電力供給が停止したときにバックアップRAM領域のデータ保護処理(例えばパリティデータの付加等の電力供給停止時処理)が行われたか否か確認する(ステップS8)。この実施の形態では、電力供給の停止が生じた場合には、バックアップRAM領域のデータを保護するための処理が行われている。そのような電力供給停止時処理が行われていたことを確認した場合には、CPU56は、電力供給停止時処理が行われた、すなわち電力供給停止時の制御状態が保存されていると判定する。電力供給停止時処理が行われていないことを確認した場合には、CPU56は初期化処理を実行する。
電力供給停止時処理が行われていたか否かは、電力供給停止時処理においてバックアップRAM領域に保存されるバックアップ監視タイマの値が、電力供給停止時処理を実行したことに応じた値(例えば2)になっているか否かによって確認される。なお、そのような確認の仕方は一例であって、例えば、電力供給停止時処理においてバックアップフラグ領域に電力供給停止時処理を実行したことを示すフラグをセットし、ステップS8において、そのフラグがセットされていることを確認したら電力供給停止時処理が行われたと判定してもよい。
電力供給停止時の制御状態が保存されていると判定したら、CPU56は、バックアップRAM領域のデータチェック(この例ではパリティチェック)を行う(ステップS9)。この実施の形態では、クリアデータ(00)をチェックサムデータエリアにセットし、チェックサム算出開始アドレスをポインタにセットする。また、チェックサムの対象になるデータ数に対応するチェックサム算出回数をセットする。そして、チェックサムデータエリアの内容とポインタが指すRAM領域の内容との排他的論理和を演算する。演算結果をチェックサムデータエリアにストアするとともに、ポインタの値を1増やし、チェックサム算出回数の値を1減算する。以上の処理が、チェックサム算出回数の値が0になるまで繰り返される。チェックサム算出回数の値が0になったら、CPU56は、チェックサムデータエリアの内容の各ビットの値を反転し、反転後のデータをチェックサムにする。
電力供給停止時処理において、上記の処理と同様の処理によってチェックサムが算出され、チェックサムはバックアップRAM領域に保存されている。ステップS9では、算出したチェックサムと保存されているチェックサムとを比較する。不測の停電等の電力供給停止が生じた後に復旧した場合には、バックアップRAM領域のデータは保存されているはずであるから、チェック結果(比較結果)は正常(一致)になる。チェック結果が正常でないということは、バックアップ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は、各乱数回路503a,503bを初期設定する乱数回路設定処理を実行する(ステップS15)。この場合、CPU56は、乱数回路設定プログラム551に従って処理を実行することによって、各乱数回路503a,503bにランダムRの値を更新させるための設定を行う。
また、CPU56は、シリアル通信回路505を初期設定するシリアル通信回路設定処理を実行する(ステップS15a)。この場合、CPU56は、シリアル通信回路設定プログラムに従ってROM54の所定領域に格納されているデータをシリアル通信回路505に設定することによって、シリアル通信回路505に払出制御用マイクロコンピュータとシリアル通信させるための設定を行う。
シリアル通信回路505を初期設定すると、CPU56は、シリアル通信回路505の割り込み要求に応じて実行する割込処理の優先順位を初期設定する(ステップS15b)。この場合、CPU56は、割込優先順位設定プログラム557に従って処理を実行することによって、割込処理の優先順位を初期設定する。
例えば、CPU56は、各割込処理のデフォルトの優先順位を含む所定の割込処理優先順位テーブルに従って、各割込処理の優先順位を初期設定する。この実施の形態では、CPU56は、割込処理優先順位テーブルに従って、シリアル通信回路505において通信エラーが発生したことを割込原因とする割込処理を優先して実行するように初期設定する。この場合、例えば、CPU56は、通信エラーが発生したことを割込原因とする割込処理を優先して実行する旨を示す通信エラー時割込優先実行フラグをセットする。
なお、この実施の形態では、タイマ割込とシリアル通信回路505からの割り込み要求とが同時に発生した場合、CPU56は、タイマ割込による割込処理を優先して行う。
また、ユーザによって各割込処理のデフォルトの優先順位を変更することもできる。例えば、遊技制御用マイクロコンピュータ560は、ユーザ(例えば、遊技機の製作者)によって設定された割込処理を指定する指定情報を、あらかじめROM54の所定の記憶領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された指定情報に従って、割込処理の優先順位を設定する。
そして、CPU56は、所定時間(例えば2ms)ごとに定期的にタイマ割込がかかるように遊技制御用マイクロコンピュータ560に内蔵されているCTCのレジスタの設定を行なうタイマ割込設定処理を実行する(ステップS16)。すなわち、初期値として例えば2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。この実施の形態では、2msごとに定期的にタイマ割込がかかるとする。
タイマ割込の設定が完了すると、CPU56は、まず、割込禁止状態にして(ステップS17)、初期値用乱数更新処理(ステップS18a)と表示用乱数更新処理(ステップS18b)を実行して、再び割込許可状態にする(ステップS19)。すなわち、CPU56は、初期値用乱数更新処理および表示用乱数更新処理が実行されるときには割込禁止状態にして、初期値用乱数更新処理および表示用乱数更新処理の実行が終了すると割込許可状態にする。
なお、初期値用乱数更新処理とは、初期値用乱数を発生するためのカウンタのカウント値を更新する処理である。初期値用乱数とは、大当りの種類を決定するための判定用乱数(例えば、大当りを発生させる特別図柄を決定するための大当り図柄決定用乱数や、遊技状態を確変状態に移行させるかを決定するための確変決定用乱数、普通図柄にもとづく当りを発生させるか否かを決定するための普通図柄当たり判定用乱数)を発生するためのカウンタ(判定用乱数発生カウンタ)等のカウント値の初期値を決定するための乱数である。後述する遊技制御処理(遊技制御用マイクロコンピュータが、遊技機に設けられている可変表示装置9、可変入賞球装置15、球払出装置97等の遊技用の装置を、自身で制御する処理、または他のマイクロコンピュータに制御させるために指令信号を送信する処理、遊技装置制御処理ともいう)において、判定用乱数発生カウンタのカウント値が1周すると、そのカウンタに初期値が設定される。
また、表示用乱数とは、特別図柄表示器8の表示を決定するための乱数である。この実施の形態では、表示用乱数として、特別図柄の変動パターンを決定するための変動パターン決定用乱数や、大当りを発生させない場合にリーチとするか否かを決定するためのリーチ判定用乱数が用いられる。また、表示用乱数更新処理とは、表示用乱数を発生するためのカウンタのカウント値を更新する処理である。
また、表示用乱数更新処理が実行されるときに割込禁止状態にされるのは、表示用乱数更新処理および初期値用乱数更新処理が後述するタイマ割込処理でも実行される(すなわち、タイマ割込処理のステップS24A,S24Bでも同じ処理が実行される)ことから、タイマ割込処理における処理と競合してしまうのを避けるためである。すなわち、ステップS18a,S18bの処理中にタイマ割込が発生してタイマ割込処理中で初期値用乱数や表示用乱数を発生するためのカウンタのカウント値を更新してしまったのでは、カウント値の連続性が損なわれる場合がある。しかし、ステップS18a,S18bの処理中では割込禁止状態にしておけば、そのような不都合が生ずることはない。
ステップS19で割込許可状態に設定されると、次にステップS17の処理が実行されて割込禁止状態とされるまで、タイマ割込またはシリアル通信回路505からの割り込み要求を許可する状態となる。そして、割込許可状態に設定されている間に、タイマ割込が発生すると、遊技制御用マイクロコンピュータ560のCPU56は、後述するタイマ割込処理を実行する。また、割込許可状態に設定されている間に、シリアル通信回路505から割り込み要求が発生すると、遊技制御用マイクロコンピュータ560のCPU56は、後述する各割込処理(通信エラー割込処理や、受信時割込処理、送信完了割込処理)を実行する。また、本実施の形態では、ステップS17からステップS19までのループ処理の前にステップS15bを実行することによって、タイマ割込または割り込み要求を許可する状態に設定される前に、割込処理の優先順位を設定または変更する処理が行われる。
次に、タイマ割込処理について説明する。図24は、タイマ割込処理を示すフローチャートである。メイン処理の実行中に、具体的には、ステップS17〜S19のループ処理の実行中における割込許可になっている期間において、タイマ割込が発生すると、遊技制御用マイクロコンピュータ560のCPU56は、タイマ割込の発生に応じて起動されるタイマ割込処理を実行する。タイマ割込処理において、CPU56は、まず、電源断信号が出力されたか否か(オン状態になったか否か)を検出する電源断処理(電源断検出処理)を実行する(ステップS18a)。そして、CPU56は、スイッチ回路58を介して、ゲートスイッチ32a、始動口スイッチ14a、カウントスイッチ23および入賞口スイッチ29a,30a,33a,39a等のスイッチの検出信号を入力し、各スイッチの入力を検出する(スイッチ処理:ステップS20)。具体的には、各スイッチの検出信号を入力する入力ポートの状態がオン状態であれば、各スイッチに対応して設けられているスイッチタイマの値を+1する。また、CPU56は、ステップS20の検出結果にもとづいて、各スイッチの入力状態を判定する入力判定処理を実行する(ステップS21)。
次に、CPU56は、シリアル通信回路で受信した受信ACK信号が所定のエラーの発生を示す信号であるとき(受信した受信ACK信号で所定のエラーの発生が特定されるとき)に、受信ACK信号で特定される所定のエラーのデータを演出制御用マイクロコンピュータ100に送信する入力データ確認処理を実行する(ステップS22)。
また、CPU56は、ステップS21の検出結果にもとづいて、各スイッチの入力状態を判定する入力判定処理を実行する(ステップS23)。
次に、CPU56は、表示用乱数を生成するためのカウンタのカウント値を更新する処理を行う(表示用乱数更新処理:ステップS24A)。また、CPU56は、初期値用乱数を発生するためのカウンタのカウント値を更新する処理を行う(初期値用乱数更新処理:ステップS24B)。
次いで、CPU56は、特別図柄の変動に同期する飾り図柄に関する演出制御コマンドをRAM55の所定の領域に設定して演出制御コマンドを送出する処理を行う(コマンド制御処理:ステップS25)。なお、飾り図柄の変動が特別図柄の変動に同期するとは、変動時間(可変表示期間)が同じであることを意味する。
また、CPU56は、シリアル通信回路505を介して、払出制御用マイクロコンピュータ370と信号を送受信(入出力)する処理を実行するとともに、入賞が発生した場合には入賞口スイッチ29a,30a,33a,39a等の検出信号にもとづく賞球個数の設定などを行う賞球処理を実行する(ステップS26)。なお、この実施の形態では、入賞口スイッチ29a,30a,33a,39a等がオンしたことにもとづく入賞検出に応じて、賞球要求信号の所定のビットを異ならせることにより賞球個数を示すデータを賞球要求信号に設定し、当該設定した賞球要求信号をシリアル通信回路505を介して払出制御用マイクロコンピュータ370に出力する。払出制御基板37に搭載されている払出制御用マイクロコンピュータ370は、賞球個数を示すデータが設定された賞球要求信号の受信に応じて球払出装置97を駆動する。
なお、この実施の形態では、入力判定処理(ステップS23)において、入賞口スイッチ29a,30a,33a,39a等がオンしたことにもとづく入賞検出に応じて、入賞数がカウントされる。そして、メイン処理の賞球処理において、カウントされた入賞数にもとづいて、賞球個数を示すデータが設定された賞球要求信号が払出制御基板37に送信される。
また、CPU56は、特別図柄プロセス処理を行う(ステップS27)。特別図柄プロセス処理では、遊技状態に応じてパチンコ遊技機1を所定の順序で制御するための特別図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、特別図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。また、普通図柄プロセス処理を行う(ステップS28)。普通図柄プロセス処理では、普通図柄表示器10の表示状態を所定の順序で制御するための普通図柄プロセスフラグに従って該当する処理が選び出されて実行される。そして、普通図柄プロセスフラグの値は、遊技状態に応じて各処理中に更新される。
また、CPU56は、例えばホール管理用コンピュータに供給される大当り情報、始動情報、確率変動情報などのデータを出力する情報出力処理を行う(ステップS29)。
また、遊技機の制御状態を遊技機外部で確認できるようにするための試験信号を出力する処理である試験端子処理を実行する(ステップS30)。また、この実施の形態では、出力ポートの出力状態に対応したRAM領域(出力ポートバッファ)が設けられているのであるが、CPU56は、出力ポート0のRAM領域における接続確認信号に関する内容および出力ポート2のRAM領域におけるソレノイドに関する内容を出力ポートに出力する(ステップS31:出力処理)。
次に、メイン処理におけるシリアル通信回路設定処理(ステップS15a)を説明する。図25は、シリアル通信回路設定処理を示すフローチャートである。シリアル通信回路設定処理において、CPU56は、まず、シリアル通信回路設定プログラム556に従って処理を実行し、シリアル通信回路505のボーレートを設定する(ステップS1511)。この場合、CPU56は、シリアル通信回路505のボーレートレジスタ702に、設定するボーレートに対応する設定値を書き込む。例えば、遊技制御用マイクロコンピュータ560は、ユーザ(例えば、遊技機の製作者)によって設定された設定値を指定する指定情報を、あらかじめROM54の所定の記憶領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された指定情報に従って、設定値をボーレートレジスタ702に書き込む。例えば、CPU56によってボーレート設定値「156」が設定された場合、ボーレート生成回路703によって、式(1)およびクロック周波数「3MHz」を用いてボーレート「1201.92bps」が生成される。
また、CPU56は、シリアル通信回路505が送受信するデータのデータフォーマットを設定する(ステップS1512)。この場合、CPU56は、制御レジスタA707の各ビットの値を設定することによって、送受信データのデータ長(8ビットまたは9ビット)、パリティ機能の使用の有無を設定する。例えば、遊技制御用マイクロコンピュータ560は、ユーザ(例えば、遊技機の製作者)によって設定された制御レジスタA707の各ビットの値を指定する指定情報を、あらかじめROM54の所定の記憶領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された指定情報に従って、制御レジスタA707の各ビットの値を設定する。
また、CPU56は、シリアル通信回路505が発生する各割込要求を許可するか否かを設定する(ステップS1513)。この場合、CPU56は、制御レジスタB708のビット5,6,7の値を設定することによって、送信時割り込み要求(データの送信時に行う割り込み要求である送信割り込み要求や、送信完了時に行う送信完了割り込み要求)および受信時割り込み要求を許可するか否かを設定する。なお、CPU56は、送信時割り込み要求と受信時割り込み要求との両方を許可するように設定することも可能であり、送信時割り込み要求と受信時割り込み要求とのいずれか一方のみを許可するように設定することも可能である。また、CPU56は、制御レジスタC709のビット0〜3の値を設定することによって、各通信エラー時割り込み要求を許可するか否かを設定する。例えば、遊技制御用マイクロコンピュータ560は、ユーザ(例えば、遊技機の製作者)によって設定された制御レジスタB708および制御レジスタC709の各ビットの値を指定する指定情報を、あらかじめROM54の所定の記憶領域に記憶している。そして、CPU56は、ROM54の所定の記憶領域に記憶された指定情報に従って、制御レジスタB708および制御レジスタC709の各ビットの値を設定する。
次に、メイン処理における賞球処理(ステップS26)を説明する。まず、主基板31と払出制御基板37との間で送受信される払出制御信号(接続確認信号)および賞球要求信号(払出制御コマンド)について説明する。
図26は、遊技制御手段から払出制御手段に対して出力される制御信号の内容の一例を示す説明図である。この実施の形態では、払出制御等に関する各種の制御を行うために、主基板31と払出制御基板37との間で制御信号として接続確認信号が送受信される。図26に示すように、接続確認信号は、主基板31の立ち上がり時(遊技制御手段が遊技制御処理を開始したとき)に出力され、払出制御基板37に対して主基板31が立ち上がったことを通知するための信号(主基板31の接続確認信号)である。また、接続確認信号は、賞球払出が可能な状態であることを示す。なお、接続確認信号は、遊技制御用マイクロコンピュータ560のI/Oポート57および出力回路67を介して出力され、払出制御用マイクロコンピュータ370の入力回路373AおよびI/Oポート372eを介して払出制御用マイクロコンピュータ370に入力される。接続確認信号は、それぞれ1ビットのデータであり、1本の信号線によって送信される。なお、接続確認信号は、電源投入時に実行されるステップS92,S12の処理によって出力ポート0の接続確認信号に対応するビットに初期値が設定されることによって出力可能な状態となる(具体的にはステップS31の処理によって出力されるが、ステップS92、S12のタイミングで出力されるようにしてもよい)。
払出制御用マイクロコンピュータ370は、遊技制御用マイクロコンピュータ560と同様に、シリアル通信回路380を内蔵する。また、遊技制御用マイクロコンピュータ560が内蔵するシリアル通信回路505と、払出制御用マイクロコンピュータ370が内蔵するシリアル通信回路380との間で、各種払出制御コマンドが送受信される。なお、払出制御用マイクロコンピュータ370が内蔵するシリアル通信回路380の構成及び機能は、遊技制御用マイクロコンピュータ560が内蔵するシリアル通信回路505の構成及び機能と同様である。
図27は、遊技制御手段と払出制御手段との間で送受信される制御コマンドの内容の一例を示す説明図である。この実施の形態では、払出制御等に関する各種の制御を行うために、主基板31と払出制御基板37とのマイクロコンピュータの間で各種制御コマンド(賞球要求信号)が送受信される。
上述したように、賞球要求信号および受信ACK信号は、8ビットのデータ(2進8桁のデータ)によって構成され、設定された8ビットのデータの内容によって所定の内容を示す制御コマンドとして出力される。
接続確認コマンドは、遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370との間の接続状態が正常であるか否かを確認するために一定間隔(1s)毎に遊技制御用マイクロコンピュータ560から送信される制御コマンドである。接続確認コマンドのデータの内容は「A0(H)」すなわち「1010000」とされている。
接続OKコマンドは、遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370との間の接続状態が正常であることを通知するための制御コマンドであって、払出制御用マイクロコンピュータ370が接続確認コマンドの受信に応じて応答信号として送信する制御コマンドである。接続OKコマンドのデータの内容は「8x(H)」すなわち「10000xxx」とされている。ここで、賞球エラー(入賞にもとづく賞球払出動作や球貸し要求にもとづく球貸払出動作が正常に行えない状態になった異常状態:具体的には、図57に示す払出スイッチ異常検知エラー1、払出スイッチ異常検知エラー2、払出ケースエラー、プリペイドカードユニット未接続エラー、プリペイドカードユニット通信エラー)が発生した場合には、1ビット目の「x」に「1」が設定される。また、満タンエラーが発生した場合には、2ビット目の「x」に「1」が設定される。また、球切れエラーが発生した場合には、3ビット目の「x」に「1」が設定される。また、ドア開放エラーが発生した場合には、4ビット目の「x」に「1」が設定される。このようにして、遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370との間の接続確認を行っている最中に、払出制御用マイクロコンピュータ370における所定のエラーの発生を遊技制御用マイクロコンピュータ560に通知することができる。
賞球個数コマンドは、払出要求を行う遊技球の個数(0〜15個)を通知するための制御コマンドであって、遊技制御用マイクロコンピュータ560が入賞の発生にもとづいて送信する制御コマンドである。賞球個数コマンドのデータの内容は「5x(H)」すなわち「0101xxxx」とされている。この実施の形態では、始動口スイッチ14aで遊技球が検出されると3個の賞球払出を行い、入賞口スイッチ33a,39a,29a,30aのいずれかで遊技球が検出されると10個の賞球払出を行い、カウントスイッチ23で遊技球が検出されると15個の賞球払出を行う。よって、始動口スイッチ14aで遊技球が検出された場合、賞球数3個を通知するための賞球個数コマンド「01010011」が送信され、入賞口スイッチ33a,39a,29a,30aのいずれかで遊技球が検出された場合、賞球数10個を通知するための賞球個数コマンド「01011010」が送信され、カウントスイッチ23で遊技球が検出された場合、賞球数15個を通知するための賞球個数コマンド「01011111」が送信される。なお、接続確認コマンド及び賞球個数コマンドは賞球要求信号として、何れかが送信されるように構成されている。なお、賞球個数コマンドは、賞球の払出条件(入賞等の発生)が成立したことにもとづいて、接続確認コマンドが送信されるタイミングで、接続確認コマンドに代えて送信されるものである。この実施の形態では、上述したように、上位4ビットに賞球個数に対応したデータを設定しているが、上位4ビットを共通にして下位4ビットに賞球個数に対応したデータを設定するようにしてもよい。
賞球終了コマンドは、賞球動作(賞球払出動作)が終了したことを示す制御コマンドであって、払出制御用マイクロコンピュータ370が賞球動作の終了にもとづいて送信する制御コマンドである。賞球終了コマンドのデータの内容は「50(H)」すなわち「01010000」とされている。なお、賞球終了コマンドは、賞球動作が終了したことにもとづいて、接続OKコマンドが送信されるタイミングで、接続OKコマンドに代えて送信されるものである。この実施の形態では、賞球終了コマンドにエラー情報を示すデータを設定するように構成してない。これは、賞球終了コマンドは賞球動作が終了したときに1回だけ送信されるので、そのタイミングでエラー情報を送らなくても次の接続OKコマンドにエラー情報を示すデータを設定して送るようにすることが可能であるからである。なお、賞球終了コマンドの下位4ビットにエラー情報を示すデータを設定するようにしてもよい。
賞球準備中コマンドは、所定のエラーが発生し賞球動作が終了していないことを通知する制御コマンドであって、払出制御用マイクロコンピュータ370が賞球動作の実行中に所定のエラーが発生したことにもとづいて送信する制御コマンドである。接続OKコマンドのデータの内容は「8x(H)」すなわち「10000xxx」とされている。ここで、賞球エラーが発生した場合には、1ビット目の「x」に「1」が設定される。また、満タンエラーが発生した場合には、2ビット目の「x」に「1」が設定される。また、球切れエラーが発生した場合には、3ビット目の「x」に「1」が設定される。また、ドア開放エラーが発生した場合には、4ビット目の「x」に「1」が設定される。このようにして、払出制御用マイクロコンピュータ370から遊技制御用マイクロコンピュータ560に賞球動作の実行中に所定のエラーが発生し賞球動作が終了していないことを遊技制御用マイクロコンピュータ560に通知することができるとともに、エラーの内容も遊技制御用マイクロコンピュータ560に通知することができる。賞球準備中コマンドは、接続OKコマンドと同様に、下位4ビットの内容をエラー状態に応じて異ならせる(所定ビットを異ならせる)ことによって所定のエラーが発生したことを通知している。また、接続OKコマンド、賞球準備中コマンド、賞球終了コマンドは、受信ACK信号として、何れかのコマンドが送信されるように構成されている。なお、賞球準備中コマンドは、エラーが発生して賞球動作が実行できない状態のみならず、賞球動作の実行中の状態においても出力されるコマンド(信号)である。
なお、賞球準備中コマンドは、エラーが発生して賞球動作が行えない状態になったことにもとづいて、接続OKコマンドが送信されるタイミングで、接続OKコマンドに代えて送信されるものである。
図28は、図26に示す制御信号および図27に示す制御コマンドの送受信に用いられる信号線等を示すブロック図である。図28に示すように、接続確認信号は、遊技制御用マイクロコンピュータ560によって出力回路67を介して出力され、入力回路373Aを介して払出制御用マイクロコンピュータ370に入力される。また、制御コマンドのうちの接続確認コマンドおよび賞球個数コマンドは、遊技制御用マイクロコンピュータ560が内蔵するシリアル回路505から出力され、払出制御用マイクロコンピュータ370が内蔵するシリアル回路380に入力される。制御コマンドのうちの接続OKコマンド、賞球終了コマンドおよび賞球準備中コマンドは、払出制御用マイクロコンピュータ370が内蔵するシリアル回路380から出力され、遊技制御用マイクロコンピュータ560が内蔵するシリアル回路505に入力される。なお、図28では、シリアル通信を行うための信号線として2本の信号線(賞球要求信号を送信するための信号線と受信ACK信号を送信するための信号線)を示しているが、実際は1本の信号線で賞球要求信号と受信ACK信号を送受信する。
次に、通常動作時における遊技制御用マイクロコンピュータと払出制御用マイクロコンピュータとの信号(賞球要求信号、受信ACK信号;制御コマンド)の送受信について説明する。賞球要求信号は、接続確認コマンドと賞球個数コマンドからなり、受信ACK信号は、接続OKコマンドと賞球終了コマンドと賞球準備中コマンドからなる。
図29は、通常動作時における遊技制御用マイクロコンピュータと払出制御用マイクロコンピュータとの信号の送受信を示すシーケンス図である。図29に示すように、遊技制御用マイクロコンピュータ560は、シリアル通信回路505を介して、払出制御用マイクロコンピュータ370との間の信号線の接続が切れていないかどうかを確認するために、賞球要求信号としての接続確認コマンドを払出制御用マイクロコンピュータ370に送信する。払出制御用マイクロコンピュータ370は、賞球要求信号としての接続確認コマンドをシリアル通信回路380を介して受信すると、受信ACK信号としての接続OKコマンドを遊技制御用マイクロコンピュータ560に送信する。遊技制御用マイクロコンピュータ560は、受信ACK信号としての接続OKコマンドを受信すると、受信した時点から1s(1秒)経過後に賞球要求信号としての接続確認コマンドを送信する。遊技制御用マイクロコンピュータ560および払出制御用マイクロコンピュータ370は、接続状態が正常である限り、上記のような接続確認の通信処理を繰り返し実行する。
図30は、賞球動作時における遊技制御用マイクロコンピュータと払出制御用マイクロコンピュータとの信号の送受信を示すシーケンス図である。図30に示すように、入賞が発生して賞球払出動作を実行するときに、遊技制御用マイクロコンピュータ560は、シリアル通信回路505を介して、賞球個数を示すデータが設定された賞球要求信号としての賞球個数コマンドを払出制御用マイクロコンピュータ370に送信する。払出制御用マイクロコンピュータ370は、賞球要求信号としての賞球個数コマンドを受信すると、賞球個数コマンドで指定された個数の賞球の払出動作を実行し、賞球払出動作が終了したときに賞球払出動作の終了を示す受信ACK信号としての賞球終了コマンドをシリアル通信回路380を介して遊技制御用マイクロコンピュータ560に送信する。
一方、払出制御用マイクロコンピュータ370は、賞球要求信号としての賞球個数コマンドを受信したことにもとづいて、賞球個数コマンドで指定された個数の賞球の払出動作を実行しているときに、所定のエラーが発生し、賞球払出動作ができない状態(異常状態、エラー状態)になった場合は、エラーが発生し賞球払出動作が終了していないことを通知する受信ACK信号としての賞球準備中コマンドを遊技制御用マイクロコンピュータ560に送信する。この場合、払出制御用マイクロコンピュータ370は、発生したエラーが解除されない限り、一定間隔で(1s毎に)受信ACK信号としての賞球準備中コマンドを遊技制御用マイクロコンピュータ560に送信する。なお、賞球準備中コマンドは、エラーが発生して賞球動作が実行できない状態のみならず、賞球動作の実行中の状態においても出力されるコマンド(信号)である。
図31は、通常動作時における遊技制御用マイクロコンピュータと払出制御用マイクロコンピュータとの信号の送受信を示すタイミング図である。図31に示すように、遊技制御用マイクロコンピュータ560は、賞球要求信号としての接続確認コマンドを払出制御用マイクロコンピュータ370に送信すると、払出制御用マイクロコンピュータ370から送信される受信ACKコマンドとしての接続OKコマンドを受信する。遊技制御用マイクロコンピュータ560は、受信ACK信号としての接続OKコマンドを受信すると、受信した時点から1s(1秒)経過後に賞球要求信号としての接続確認コマンドを再び送信する。遊技制御用マイクロコンピュータ560および払出制御用マイクロコンピュータ370は、接続状態が正常である限り、上記のような接続確認の通信処理を繰り返し実行する。
接続確認の通信処理を実行していないとき(受信ACK信号としての接続OKコマンドを受信してから賞球要求信号としての接続確認コマンドを送信するまでの間)に入賞があった場合は、遊技制御用マイクロコンピュータ560は、賞球個数を示すデータを賞球要求信号に設定し、当該設定した賞球要求信号としての賞球個数コマンドを払出制御用マイクロコンピュータ370に送信する。払出制御用マイクロコンピュータ370は、賞球要求信号としての賞球個数コマンドを受信すると、賞球個数コマンドで指定された個数の賞球の払い出しを行い、賞球の払い出し(賞球払出動作)が終了すると、受信ACK信号としての賞球終了コマンドを遊技制御用マイクロコンピュータ560に送信する。遊技制御用マイクロコンピュータ560は、受信ACK信号としての賞球終了コマンドを受信すると、受信した時点から1s(1秒)経過後に賞球要求信号としての接続確認コマンドを送信する。
接続確認の通信処理の実行中(賞球要求信号としての接続確認コマンドを送信してから受信ACK信号としての接続OKコマンドを受信するまでの間)に入賞があった場合は、遊技制御用マイクロコンピュータ560は、賞球個数を示すデータを賞球要求信号に設定し、当該設定した賞球要求信号としての賞球個数コマンドを、払出制御用マイクロコンピュータ370からの受信ACK信号としての接続OKコマンドを受信した後に払出制御用マイクロコンピュータ370に送信する。払出制御用マイクロコンピュータ370は、賞球要求信号としての賞球個数コマンドを受信すると、賞球個数コマンドで指定された個数の賞球の払い出しを行い、賞球の払い出し(賞球払出動作)が終了すると、受信ACK信号としての賞球終了コマンドを遊技制御用マイクロコンピュータ560に送信する。なお、賞球の払い出し(賞球払出動作)の実行中は、受信ACK信号としての賞球準備中コマンドが遊技制御用マイクロコンピュータ560に送信される。
図32は、賞球中にエラーが発生した場合における遊技制御用マイクロコンピュータと払出制御用マイクロコンピュータとの信号の送受信を示すタイミング図である。図32に示すように、遊技制御用マイクロコンピュータ560は、賞球要求信号としての接続確認コマンドを払出制御用マイクロコンピュータ370に送信すると、払出制御用マイクロコンピュータ370から送信される受信ACKコマンドとしての接続OKコマンドを受信する。接続確認の通信処理を実行していないときに入賞があった場合は、遊技制御用マイクロコンピュータ560は、賞球個数を示すデータを賞球要求信号に設定し、当該設定した賞球要求信号としての賞球個数コマンドを払出制御用マイクロコンピュータ370に送信する。払出制御用マイクロコンピュータ370は、賞球要求信号としての賞球個数コマンドを受信すると、賞球個数コマンドで指定された個数の賞球の払い出しを行う。賞球個数コマンドで指定された個数の賞球の払出動作を実行しているときに、所定のエラー(球貸し、満タン、球切れのエラー)が発生し、賞球払出動作ができない状態(異常状態、エラー状態)になった場合は、払出制御用マイクロコンピュータ370は、エラーが発生し賞球払出動作が終了していないことを通知する受信ACK信号としての賞球準備中コマンドを遊技制御用マイクロコンピュータ560に送信する。この場合、払出制御用マイクロコンピュータ370は、発生したエラーが解除されない限り、一定間隔で(1s毎に)受信ACK信号としての賞球準備中コマンドを遊技制御用マイクロコンピュータ560に送信する。所定のエラー状態が解除(解消)されて賞球払出動作が終了すると、払出制御用マイクロコンピュータ370は、受信ACK信号としての賞球終了コマンドを遊技制御用マイクロコンピュータ560に送信する。なお、受信ACK信号としての賞球準備中コマンドは、遊技制御用マイクロコンピュータ560から1s毎に送信される賞球要求信号を受信したことに対応して送信されるため、1s毎に送信されることになる。また、遊技制御用マイクロコンピュータ560が受信ACK信号としての賞球準備中コマンドが受信している間は、接続確認コマンドとしての賞球要求信号を送信しないように構成されていてもよい。この場合、払出制御用マイクロコンピュータ370は賞球払出動作が終了したことに基づいて賞球終了コマンドを出力するようにし、遊技制御用マイクロコンピュータ560は当該賞球終了コマンドを受信したことに基づいて、所定周期(1S)毎に賞球要求信号を出力する状態に復帰するように復帰するように構成すればよい。
図33は、接続確認中の通信エラー時における遊技制御用マイクロコンピュータと払出制御用マイクロコンピュータとの信号の送受信を示すタイミング図である。図33に示すように、遊技制御用マイクロコンピュータ560は、賞球要求信号としての接続確認コマンドを払出制御用マイクロコンピュータ370に送信したが、払出制御用マイクロコンピュータ370からの受信ACKコマンドとしての接続OKコマンドを受信していない場合、つまり、接続状態の異常(通信エラー)が発生した場合は、賞球要求信号としての接続確認コマンドを送信した時点から10s(10秒)経過後に再度、賞球要求信号としての接続確認コマンドを送信する。通信エラーが発生しているときに入賞が発生した場合は、遊技制御用マイクロコンピュータ560は、払出制御用マイクロコンピュータ370から受信ACK信号としての接続OKコマンドを受信するまでは、賞球要求信号としての賞球個数コマンドを送信せずに、一定間隔(10s)毎に賞球要求信号としての接続確認コマンドを送信し続ける。通信エラーが解除(解消)され、払出制御用マイクロコンピュータ370から受信ACK信号としての接続OKコマンドが送信されると、遊技制御用マイクロコンピュータ560は、賞球要求信号としての賞球個数コマンドを送信する。
図34は、賞球個数通知中の通信エラー時における遊技制御用マイクロコンピュータと払出制御用マイクロコンピュータとの信号の送受信を示すタイミング図である。図34に示すように、遊技制御用マイクロコンピュータ560は、入賞が発生したことにもとづいて、賞球要求信号としての賞球個数コマンドを送信したが、払出制御用マイクロコンピュータ370からの受信ACK信号としての賞球終了コマンドを受信していない場合、つまり、接続状態の異常(通信エラー)が発生した場合は、賞球要求信号としての賞球個数コマンドを再送信(リトライ)することなく、賞球要求信号としての賞球個数コマンドを送信した時点から10s(10秒)経過後に、賞球要求信号としての接続確認コマンドを払出制御用マイクロコンピュータ370に送信する。なお、図34には示していないが、通信エラーが解除(解消)され、払出制御用マイクロコンピュータ370から受信ACK信号としての賞球終了コマンドが送信されると、遊技制御用マイクロコンピュータ560は、通常(正常時)の動作に戻る。この実施の形態では、1度、賞球個数コマンドを送信した後に通信エラーが発生した場合は、再度、賞球個数コマンドを送信しない(リトライしない)ように構成されているが、そのような構成に限られず、賞球個数コマンドのデータは残しておくが、あえて当該賞球個数コマンドのデータを送信しないように構成して賞球個数コマンドの送信を禁止する構成であってもよい。
次に、賞球処理(ステップS26)について説明する。図36および図37は、賞球処理を示すフローチャートである。賞球処理において、CPU56は、受信ACK信号(接続OKコマンド、賞球終了コマンド、賞球準備中コマンド)を受信したかどうかを確認し(ステップS501)、受信ACK信号を受信していない場合は(ステップS501のN)、1秒を計測する1s計測タイマがタイムアウトしたかどうかを確認する(ステップS502)。1s計測タイマがタイムアウトしていなければ(ステップS502のN)、CPU56は、1s計測タイマの値を−1し(ステップS512)、10秒を計測する10s計測タイマがタイムアウトしたかどうかを確認する(ステップS513)。10s計測タイマがタイムアウトしていなければ(ステップS513のN)、10s計測タイマの値を−1する(ステップS514)。一方、10s計測タイマがタイムアウトしたときは(ステップS513のY)、通信エラーが発生した場合であり、CPU56は、払出制御用マイクロコンピュータ370に対して接続確認コマンドを送信する処理を実行する(ステップS511)。このような処理によって、通信エラーが発生したときは、10秒ごとに接続確認コマンドが送信されることになる。その後、CPU56は、送信済フラグをセットして(ステップS510)、処理を終了する。
この実施の形態において、「コマンドの送信」は、シリアル通信回路の送信データレジスタにコマンドのデータを書き込むことが該当する。すなわち、このようにシリアル通信回路の送信データレジスタにコマンドのデータが書き込まれることよりシリアル通信によってコマンドが送信される。このことは、遊技制御用マイクロコンピュータ560および払出制御用マイクロコンピュータ370のいずれのコマンド送信においても同じである。
ステップS502において、1s計測タイマがタイムアウトしたときは(ステップS502のY)、CPU56は、賞球個数コマンドまたは接続確認コマンドの送信済みであることを示す送信済フラグがセットされているかどうかを確認する(ステップS503)。送信済フラグがセットされていれば(ステップS503のY)、上記のステップS513の処理に続いてS514またはS511の処理を実行する。送信済フラグがセットされていなければ(ステップS503のN)、CPU56は、払出制御用マイクロコンピュータ370から前回受信した受信ACK信号(接続OKコマンド、賞球準備中コマンド)にエラー情報が含まれていたがどうかを確認する(ステップS504)。受信ACK信号にエラー情報が含まれていたかどうかは、後述する入力データ確認処理(図43)におけるステップS586でエラー情報フラグがセットされたかどうかによって確認する。受信ACK信号にエラー情報が含まれていた場合は(ステップS504のY)、賞球要求信号としての接続確認コマンドを払出制御用マイクロコンピュータ370に送信する処理を実行する(ステップS511)。受信ACK信号にエラー情報が含まれていなかった場合には(ステップS504のN)、CPU56は、賞球払出動作の実行中(正常な状態であれば賞球個数コマンドを送信したことに基づいて賞球動作の実行中となる)であることを示す賞球中フラグがセットされているかどうかを確認する(ステップS505)。
賞球中フラグがセットされていれば(ステップS505のY)、CPU56は、接続確認コマンドを送信する処理を実行する(ステップS511)。賞球中フラグがセットされていなければ(ステップS505のN)、CPU56は、未払出賞球個数があるかどうかを確認する(ステップS506)。未払出賞球個数があるかどうかは、賞球コマンド出力カウンタの値が0であるかどうか(0であれば未払出賞球個数がなく、0でなければ未払出賞球個数がある)を確認することが可能である。未払出賞球個数がなければ(ステップS506のN)、接続確認コマンドを送信する処理を実行する(ステップS511)。未払出賞球個数があれば(ステップS506のY)、CPU56は、総賞球数格納バッファから賞球個数コマンドで指定した賞球数を減算し(ステップS507)、未払出賞球個数に応じた賞球個数を示す賞球個数コマンドを送信する処理を実行する(ステップS508)。
賞球個数コマンドを送信する際に、図35に示す賞球個数テーブルが使用される。賞球個数テーブルは、ROM54に設定されている。賞球個数テーブルの先頭アドレスには処理数(この例では「3」)が設定され、その後に、賞球コマンド出力カウンタと、賞球数を指定する賞球指定データとが、順次設定されている。賞球コマンド出力カウンタとは、入賞口への入賞数をカウントするカウンタであり、例えば、ROM54に設定される。また、遊技制御用マイクロコンピュータ560は、賞球数(0〜15個)毎に、対応する賞球コマンド出力カウンタを備える。この実施の形態では、遊技制御用マイクロコンピュータ560は、賞球数「3」に対応する賞球コマンド出力カウンタ1と、賞球数「10」に対応する賞球コマンド出力カウンタ2と、賞球数「15」に対応する賞球コマンド出力カウンタ3とを備える。なお、各賞球コマンド出力カウンタは、後述するように、タイマ割込処理の入力判定処理でカウントアップされる。CPU56は、賞球個数テーブルに設定されている賞球コマンド出力カウンタ3が0でなければ、賞球数(15個)を指定する賞球指定データにもとづいて賞球個数(15個)を示すデータを賞球要求信号に設定し、当該設定された賞球要求信号を賞球個数コマンドとして払出制御用マイクロコンピュータ370に送信する。また、CPU56は、賞球個数テーブルに設定されている賞球コマンド出力カウンタ3の値が0であり、賞球コマンド出力カウンタ2の値が0でなければ、賞球数(10個)を指定する賞球指定データにもとづいて賞球個数(10個)を示すデータを賞球要求信号に設定し、当該設定された賞球要求信号を賞球個数コマンドとして払出制御用マイクロコンピュータ370に送信する。また、CPU56は、賞球個数テーブルに設定されている賞球コマンド出力カウンタ3および賞球コマンド出力カウンタの値が0であり、賞球コマンド出力カウンタ1の値が0でなければ、賞球数(3個)を指定する賞球指定データにもとづいて賞球個数(3個)を示すデータを賞球要求信号に設定し、当該設定された賞球要求信号を賞球個数コマンドとして払出制御用マイクロコンピュータ370に送信する。
次に、CPU56は、賞球中フラグをセットし(ステップS509)、送信済フラグをセットして(ステップS510)、処理を終了する。なお、ステップS524の処理を行う前に、賞球準備中コマンドの受信を確認し、賞球準備中コマンドを受信した場合に賞球中フラグをセットするようにしてもよい。また、コマンドの送信を行う前に賞球数を減算する減算処理を行うようにしてもよい。また、ステップS510の処理の前または後にステップS521(1s計測タイマのセット)やステップS522(10s計測タイマのセット)の処理を行うようにしてもよい。
ステップS501において、受信ACK信号を受信しているときは(ステップS501のY)、CPU56は、1s計測タイマをセットし(ステップS521)、10s計測タイマをセットし(ステップS522)、送信済フラグをリセットする(ステップS523)。そして、CPU56は、賞球終了コマンドを受信したかどうか、すなわち、受信ACK信号が賞球終了コマンドであるかどうかを確認する(ステップS524)。賞球終了コマンドであれば、賞球中フラグをリセットして(ステップS525)、処理を終了する。なお、この実施の形態では、払出制御用マイクロコンピュータ370側がエラー状態に設定された場合であっても、一度送信した賞球個数コマンドを再度送信することは行わない。
上記のように、この実施の形態では、賞球要求信号としての賞球個数コマンドを送信するときに、賞球コマンド出力カウンタの値を1減算する減算処理を実行する。このとき、払出制御用マイクロコンピュータ370は、賞球個数コマンドで指定された個数の賞球払出をまだ行っていない。賞球払出が完了したときに総賞球数格納バッファの減算処理を行うように構成すると、賞球払出中に不正に遊技機の電力供給を停止させた後に電力供給を復旧させるような不正行為によって、不正に多数の賞球払出が行われてしまう。例えば、賞球個数コマンドで15個の賞球払出が指令された場合に、10個の賞球払出がなされた時点で、不正に遊技機の電力供給を停止させた後に電力供給を復旧させると、賞球コマンド出力カウンタの内容はなんら減算されていないので、実際には10個の賞球払出はなされているにも関わらず、その10個の賞球払出はなされていないものとして、賞球制御を続行してしまう。しかし、この実施の形態では、賞球個数コマンドを送信したときに、賞球コマンド出力カウンタの減算処理が実行されるので、上記の不正行為を防止することができる。
また、CPU56は、受信ACK信号としての賞球終了コマンドを受信したときに、賞球コマンド出力カウンタの減算処理を行うように構成すると、CPU56が賞球終了コマンドの受信を認識できない場合は、何度も賞球個数コマンドを送信してしまい、過度の賞球払出が行われてしまうおそれがあるが、この実施の形態では、賞球個数コマンドを送信したときに、賞球コマンド出力カウンタの減算処理が実行されるので、上記の不都合が生じることを防止することができる。
次に、メイン処理における特別図柄プロセス処理(ステップS27)を説明する。図38は、遊技制御用マイクロコンピュータ560のCPU56が実行する特別図柄プロセス処理のプログラムの一例を示すフローチャートである。遊技制御用マイクロコンピュータ560のCPU56は、、遊技盤6に設けられている始動入賞口14に遊技球が入賞したことを検出するための始動口スイッチ14aがオンしていたら、すなわち遊技球が始動入賞口14に入賞し、入賞検出信号SSが始動口スイッチ14aから入力されていたら(ステップS311)、始動口スイッチ通過処理(ステップS312)を行った後に、内部状態に応じて、ステップS300〜S308のうちのいずれかの処理を行う。
特別図柄通常処理(ステップS300):特別図柄の可変表示を開始できる状態(例えば、特別図柄表示器8において図柄の変動がなされておらず、特別図柄表示器8における前回の図柄変動が終了してから所定期間が経過しており、かつ、大当り遊技中でもない状態)になるのを待つ。特別図柄の可変表示が開始できる状態になると、特別図柄についての始動入賞記憶数を確認する。始動入賞記憶数が0でなければ、特図保留メモリ570に記憶されている乱数回路503が発生したランダムRにもとづいて、特別図柄の可変表示の結果を大当りとするか否か決定する。そして、内部状態(特別図柄プロセスフラグ)をステップS301に移行するように更新する。
特別図柄停止図柄設定処理(ステップS301):特別図柄の可変表示後の停止図柄を決定する。そして、内部状態(特別図柄プロセスフラグ)をステップS302に移行するように更新する。
変動時間設定処理(ステップS302):変動パターンを決定し、その変動パターンにおける変動時間(可変表示時間:可変表示を開始してから表示結果が導出表示(停止表示)するまでの時間)を特別図柄の可変表示の変動時間とすることに決定する。また、決定した特別図柄の変動時間を計測する変動時間タイマをスタートさせる。そして、内部状態(特別図柄プロセスフラグ)をステップS303に移行するように更新する。
特別図柄変動処理(ステップS303):所定時間(ステップS302の変動時間タイマで示された時間)が経過すると、内部状態(特別図柄プロセスフラグ)をステップS304に移行するように更新する。
特別図柄停止処理(ステップS304):音/ランプ制御基板80bに対して、飾り図柄の停止を指示するための飾り図柄停止コマンドを送信する。また、特別図柄表示器8における特別図柄を停止させる。そして、特別図柄の停止図柄が大当り図柄である場合には、内部状態(特別図柄プロセスフラグ)をステップS305に移行するように更新する。そうでない場合には、内部状態をステップS300に移行するように更新する。なお、飾り図柄停止コマンドを送信しない構成としてもよい。この場合、図柄制御基板80aは、音/ランプ制御基板80bを経由して主基板31から受信した変動パターンコマンドにもとづいて変動時間タイマに変動時間を設定するとともに、その変動時間タイマを更新していくことで飾り図柄の変動時間を独自に監視し、その変動時間が経過したと判定したときに飾り図柄を停止する処理を行うようにすればよい。
大入賞口開放前処理(ステップS305):大入賞口を開放する制御を開始する。具体的には、カウンタ(例えば大入賞口に入った遊技球数をカウントするカウンタ)やフラグ(入賞口への入賞を検出する際に用いられるフラグ)を初期化するとともに、ソレノイド21を駆動して大入賞口を開放する。また、プロセスタイマによって大入賞口開放中処理の実行時間を設定し、大当り中フラグをセットする。そして、内部状態(特別図柄プロセスフラグ)をステップS306に移行するように更新する。
大入賞口開放中処理(ステップS306):大入賞口ラウンド表示の演出制御コマンドを音/ランプ制御基板80bに送出する制御や大入賞口の閉成条件(例えば、大入賞口に所定個数(例えば10個)の遊技球が入賞したこと)の成立を確認する処理等を行う。大入賞口の閉成条件が成立したら、内部状態をステップS307に移行するように更新する。
特定領域有効時間処理(ステップS307):大当り遊技状態継続条件の成立を確認する処理を行う。大当り遊技状態継続の条件が成立し、かつ、まだ残りラウンドがある場合には、内部状態をステップS305に移行するように更新する。また、全てのラウンドを終えた場合には、内部状態をステップS308に移行するように更新する。なお、V入賞領域を設けた場合、V入賞スイッチの有無を監視して、大当り遊技状態継続条件の成立を確認する処理を行う。
大当り終了処理(ステップS308):大当り遊技状態が終了したことを遊技者に報知する表示制御を演出制御手段に行わせるための制御を行う。そして、内部状態をステップS300に移行するように更新する。
図39は、始動口スイッチ通過処理(ステップS312)を示すフローチャートである。始動口スイッチ通過処理において、遊技制御用マイクロコンピュータ560のCPU56は、始動入賞カウンタが示す始動入賞記憶数(または特図保留メモリ570が記憶している始動入賞記憶数)が最大値である4に達しているかどうか確認する(ステップS321)。始動入賞記憶数が4に達していなければ、CPU56は、タイマ割込処理の実行回数が所定回数(例えば2回)に達しているか否かを確認する(ステップS322)。タイマ割込処理の実行回数が所定回数に達しているか否かは、スイッチ処理(ステップS21)で2回のタイマ割込にわたって始動口スイッチ14aがオンと判定されたときにセットされるフラグ(始動口スイッチオンフラグ)がセットされているかどうかによって判断する。
タイマ割込処理の実行回数が所定回数に達している場合、CPU56は、特定した乱数回路503の乱数値記憶回路531に出力制御信号SCを出力し、乱数値記憶回路531を読出可能(イネイブル)状態に制御する(ステップS323)。
CPU56は、乱数回路503の乱数値記憶回路531から、乱数値として記憶されているランダムRの値を読み出す(ステップS324)。また、CPU56は、読み出したランダムRの値を、始動入賞記憶数の値に対応した保存領域(特別図柄判定用バッファ(特図保留メモリ570))に格納する(ステップS325)。また、CPU56は、ランダムRの値をバッファ領域に格納すると、乱数値記憶回路531への出力制御信号SCの出力を停止し、乱数値記憶回路531を読出不能(ディセイブル)状態に制御する(ステップS326)。そして、CPU56は、所定のバッファ領域に格納したランダムRの値を特図保留メモリ570の空エントリの先頭にセットし(ステップS327)、始動入賞カウンタのカウント数を1加算することで始動入賞記憶数を1増やす(ステップS328)。
ステップS321において始動入賞記憶するが最大値である4に達している場合、およびステップS322においてタイマ割込処理の実行回数が所定回数に達してない場合、そのまま始動口スイッチ通過処理を終了する。
以上のように、始動口スイッチ通過処理において、乱数値記憶回路531からランダムRを読み出すにあたって、タイマ割込処理が所定回数実行されたこと(すなわち、タイマ割込処理が所定回数実行される間継続して入賞検出信号SSが入力されたこと)を条件に、乱数値記憶回路531から乱数を読み出す。そのため、乱数を読み出してから、乱数値記憶回路531に記憶される乱数の値が更新される前に再び乱数を読み出してしまうことを防止することができる。また、前回乱数値記憶回路531から読み出した乱数と同じ値の乱数を再び読み出してしまうことを防止することができる。
次に、特別図柄プロセス処理における特別図柄通常処理(ステップS300)について説明する。図40は、特別図柄通常処理を示すフローチャートである。特別図柄通常処理において、遊技制御用マイクロコンピュータ560のCPU56は、特別図柄の変動を開始することができる状態のとき(例えば特別図柄プロセスフラグの値がステップS300を示す値となっている場合)には(ステップS380)、特図保留メモリ570から保留番号「1」に対応して格納されているランダムRの値を読み出す(ステップS381)。この場合、CPU56は、始動入賞カウンタのカウント数を1減算することで保留記憶数を1減らし、且つ、特図保留メモリ570の第2〜第4エントリ(保留番号「2」〜「4」)に格納されたランダムRの値を1エントリずつ上位にシフトする(ステップS382)。
また、CPU56は、確変フラグがセットされているか否かを確認する(ステップS383)。すなわち、CPU56は、遊技状態が確変状態に制御されているか否かを確認する。確変フラグがセットされていない場合、CPU56は、遊技状態が確変状態以外の通常状態であると判断し、特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定するために用いるテーブルとして、通常時大当り判定テーブル571a(図18(A)参照)を設定する(ステップS384)。また、確変フラグがセットされている場合、CPU56は、遊技状態が確変状態であると判断し、特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定するために用いるテーブルとして、確変時大当り判定テーブル571b(図18(B)参照)を設定する(ステップS385)。
CPU56は、始動口スイッチ通過処理において所定のバッファ領域に格納したランダムRの値にもとづいて、特別図柄表示装置8の表示結果を大当り図柄とするか否かを判定する(ステップS386)。この場合、CPU56は、ステップS384で設定した通常時大当り判定テーブル571aまたはステップS385で設定した確変時大当り判定テーブル571bを用いて、大当りとするか否かを判定する。
特別図柄表示装置8の表示結果を大当り図柄とすると決定すると、CPU56は、大当り状態であることを示す大当りフラグをオン状態にする(ステップS387)。また、特別図柄表示装置8の表示結果を大当り図柄としないと決定すると、CPU56は、大当りフラグをオフ状態にする(ステップS388)。そして、CPU56は、特別図柄プロセスフラグの値を特別図柄停止図柄設定処理に対応した値に更新する(ステップS389)。
次に、タイマ割込処理におけるスイッチ処理(ステップS20)を説明する。この実施の形態では、入賞検出またはゲート通過に関わる各スイッチの検出信号のオン状態が所定時間継続すると、確かにスイッチがオンしたと判定されスイッチオンに対応した処理が開始される。図41は、スイッチ処理で使用されるRAM55に形成される各2バイトのバッファを示す説明図である。前回ポートバッファは、前回(例えば2ms前)のスイッチオン/オフの判定結果が格納されるバッファである。ポートバッファは、今回入力したポート0の内容が格納されるバッファである。スイッチオンバッファは、スイッチのオンが検出された場合に対応ビットが1に設定され、スイッチのオフが検出された場合に対応ビットが0に設定されるバッファである。
図42は、遊技制御処理におけるステップS20のスイッチ処理の処理例を示すフローチャートである。スイッチ処理において、遊技制御用マイクロコンピュータ560は、まず、入力ポート0(図21参照)に入力されているデータを入力し(ステップ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」になる。
さらに、遊技制御用マイクロコンピュータ560は、前回ポートバッファにセットされているデータとポートバッファにセットされているデータとの間で、ビット毎に排他的論理和をとる(ステップS109)。排他的論理和の演算結果において、前回(例えば2ms前)のスイッチオン/オフの判定結果と、今回オンと判定されたスイッチオン/オフの判定結果とが異なっているスイッチに対応したビットが「1」になる。遊技制御用マイクロコンピュータ560は、さらに、排他的論理和の演算結果と、ポートバッファにセットされているデータとの間で、ビット毎に論理積をとる(ステップS110)。この結果、前回のスイッチオン/オフの判定結果と今回オンと判定されたスイッチオン/オフの判定結果とが異なっているスイッチに対応したビット(排他的論理和演算結果による)のうち、今回オンと判定されたスイッチに対応したビット(論理積演算による)のみが「1」として残る。
そして、遊技制御用マイクロコンピュータ560は、ステップS110における論理積の演算結果をスイッチオンバッファにセットし(ステップS111)、ステップS108における演算結果がセットされているポートバッファの内容を前回ポートバッファにセットする(ステップS112)。
以上の処理によって、所定期間継続してオン状態であったスイッチのうち、前回(例えば2ms前)のスイッチオン/オフの判定結果がオフであったスイッチ、すなわち、オフ状態からオン状態に変化したスイッチに対応したビットが、スイッチオンバッファにおいて「1」になっている。
図43は、入力データ確認処理を示すフローチャートである。入力データ確認処理において、CPU56は、シリアル通信回路505のデータ(入力データ)を読み込み(ステップS581)、入力データと、RAMに形成されている入力データバッファの内容との間でビット毎に排他的論理和をとる(ステップS582)。入力データとRAMに形成されている入力データバッファの内容との間で、論理(「1」または「0」の意味)が異なっているビットがあれば、8ビットの排他的論理和の演算結果は00(H)にはならない。
そして、CPU56は、排他的論理和の演算結果が00(H)であるか否か判定する(ステップS583)。演算結果が00(H)であれば処理を終了する。演算結果が00(H)でなければ、入力データを入力データバッファに保存し(ステップS584)、入力データ(受信ACK信号のデータ)にエラー情報が含まれているかどうかを確認する(ステップS585)。なお、ステップS585の処理は、入力データの下位4ビットがゼロであるか否かを判定(ゼロフラグで判定するなど)する処理である。入力データにエラー情報が含まれている場合は、受信ACK信号にエラー情報が含まれている(設定されている)ことを示すエラー情報フラグをセットし(ステップS586)、入力データをコマンドバッファに設定する(ステップS587)。そして、演出制御コマンド送信要求フラグをセットする(ステップS588)。一方、受信ACK信号にエラー情報が含まれていない場合にはエラー情報フラグをリセットする(ステップS589)。CPU56は、ステップS29の演出制御コマンド制御処理で、演出制御コマンド送信要求フラグがセットされていることを確認したら、コマンドバッファの内容を演出制御コマンドとして送信する。なお、演出制御コマンド制御処理で演出制御コマンドを送信するのではなく、演出制御コマンド送信要求フラグをセットすることに代えて、直ちに演出制御コマンドを送信するようにしてもよい。
以上のような制御によって、シリアル通信回路505の入力データが変化したことを条件に、入力データが演出制御用マイクロコンピュータ100に伝達される。その際に、遊技制御用マイクロコンピュータ560は、入力データを、そのまま演出制御コマンドとして送信する。よって、シリアル通信回路505に入力される信号が示す情報が多数あっても、遊技制御手段の制御負担は軽い。ただし、シリアル通信回路505の入力データを一旦取り込んで、取り込んだデータを、毎回、入力データバッファに保存するようにしてもよい。
また、入力データが変化したことを条件に入力データに関する演出制御コマンドが主基板31から出力されるので、例えば、所定の制御期間(2ms間隔の期間)に常に1回演出制御コマンドを送信するように構成されている場合に比べて、演出制御コマンドの送信周期が把握されづらくなる。つまり、所定の制御期間の周期が把握されづらくなる。所定の制御期間では、大当りに関わる乱数を生成するためのカウンタの値が1づつ更新されるので、所定の制御期間の周期が把握されやすいとカウンタの値が所定値になるタイミングが把握されやすくなる。所定のタイミングとは、大当り判定用乱数をソフトウェアで作成したり、大当り図柄決定用乱数にもとづいて確変大当りとするか否か決定するように構成されている場合における大当り判定用乱数の値が大当り判定値と一致するタイミングや大当り図柄決定用乱数の値が確変図柄に対応する値と一致するタイミングなどである。カウンタの値が所定値になるタイミングが把握されやすくなるということは、不正行為を受けやすくなるということであるが、この実施の形態では、不正行為を受けにくくすることができる。
次に、タイマ割込処理における入力判定処理(ステップS21)を説明する。入力判定処理では、図44に示す賞球コマンド出力カウンタ処理テーブルが使用される。賞球コマンド出力カウンタ処理テーブルは、ROM54に設定されている。賞球コマンド出力カウンタ処理テーブルの先頭アドレスには処理数(この例では「6」)が設定され、その後に、スイッチオンバッファ(2バイトのスイッチオンバッファのうちの入力ポート0に対応する方)の下位アドレス、入賞により賞球を払い出すことになる入賞口の各スイッチについてのスイッチ入力ビット判定値、賞球コマンド出力カウンタが、入賞口の各スイッチのそれぞれに対応して順次設定されている。なお、スイッチ入力ビット判定値は、入力ポート0における各スイッチの検出信号が入力されるビットに対応した値である。また、スイッチオンバッファの上位アドレスは固定的な値(例えば7F(H))である。また、賞球コマンド出力カウンタ処理テーブルにおいて、6つのスイッチオンバッファの下位アドレスのそれぞれには、同じデータが設定されている。なお、この実施の形態では、ROM54およびRAM55のアドレスは16ビットで指定される。
図45は、入力判定処理を示すフローチャートである。入力判定処理において、CPU56は、賞球コマンド出力カウンタ処理テーブルの先頭アドレスをポインタにセットする(ステップS2111)。そして、ポインタが指すアドレスのデータ(この場合には処理数)をロードする(ステップS2112)。次に、スイッチオンバッファの上位アドレス(8ビット)を2バイトのチェックポインタの上位1バイトにセットする(ステップS2113)。
そして、ポインタの値を1増やし(ステップS2114)、ポインタが指す賞球コマンド出力カウンタ処理テーブルのデータ(この場合にはスイッチオンバッファの下位アドレス)をチェックポインタの下位1バイトにセットした後(ステップS2115)、ポインタの値を1増やす(ステップS2116)。次いで、チェックポインタが指すアドレスのデータ、すなわちスイッチオンバッファの内容をレジスタにロードし(ステップS2117)、ロードした内容と、ポインタが指す賞球コマンド出力カウンタ処理テーブルのデータ(この場合にはスイッチ入力ビット判定値)との論理積をとる(ステップS2118)。この結果、スイッチオンバッファの内容がロードされたレジスタには、検査対象としているスイッチの検出信号に対応したビット以外の7ビットが0になる。そして、ポインタの値を1増やす(ステップS2119)。
ステップS2118における演算結果が0でなれば、すなわち、検査対象のスイッチの検出信号がオン状態であれば(ステップS2120)、ポインタが指す賞球コマンド出力カウンタ(賞球コマンド出力カウンタ処理テーブルのデータ)のカウント値をロードする(ステップS2121)。また、CPU56は、ロードしたカウント値に1を加算する(ステップS2122)。
次いで、CPU56は、加算結果が256であるか否かを確認する(ステップS2123)。加算結果が256でなければ(すなわち、255以下であれば)、CPU56は、ポインタが指す賞球コマンド出力カウンタに加算結果をストアする(ステップS2124)。加算結果が256であれば、CPU56は、ポインタが指す賞球コマンド出力カウンタに加算結果をストアすることなく、ステップS2125に移行する。
この実施の形態では、各賞球コマンド出力カウンタのカウント値の最大値が255に設定されている。そのため、ステップS2123,S2124の処理では、カウント値が255に達するまでは、入賞口への遊技球の入賞を検出する毎に、賞球コマンド出力カウンタのカウント値が1ずつ加算される。そして、カウント値が255に達すると、入賞口への遊技球の入賞を検出しても、賞球コマンド出力カウンタのカウント値は更新されない。
また、この実施の形態では、CPU56は、賞球コマンド出力カウンタのカウント値をカウントアップすることによって、払い出すべき賞球数を特定可能なデータを記憶手段に記憶させる。なお、CPU56は、例えば、払い出すべき賞球数を所定のバッファに直接記憶させるようにしてもよい。また、CPU56は、賞球数そのものを記憶させるのではなく、例えば、払い出すべき賞球数を示すデータを所定のバッファに記憶させるようにしてもよい。この場合、CPU56は、例えば、賞球数3に対してデータ「01」を記憶させ、賞球数10に対してデータ「02」を記憶させる等の制御を行ってもよい。
ステップS2125では処理数を1減らし、処理数が0でなければステップS2114に戻る(ステップS2126)。処理数が0であれば、処理を終了する。
次に、払出制御手段(払出制御用マイクロコンピュータ370)の動作を説明する。図46は、払出制御手段における出力ポートの割り当ての例を示す説明図である。図46に示すように、出力ポート0は、ステッピングモータによる払出モータ289に供給される各相の信号と、払出個数カウントスイッチ301の検出信号とを出力するための出力ポートである。すなわち、払出個数カウントスイッチ301の検出信号は、払出制御用マイクロコンピュータ370を経由して出力ポート0から主基板31に出力される。また、出力ポート1は、7セグメントLEDによるエラー表示LED374の各セグメント出力の出力ポートである。
なお、払出制御基板37には、図46には示されていないが、カードユニット50へのEXS信号およびPRDY信号を出力するための出力ポート3も設けられている。
図47は、払出制御手段における入力ポートのビット割り当ての例を示す説明図である。図47に示すように、ビット4には、主基板31からの接続確認信号が入力される。また、ビット6,7には、それぞれ、球切れスイッチ187の検出信号、および払出モータ位置センサ295の検出信号が入力される。また、入力ポート1のビット1〜3には、それぞれ、払出個数カウントスイッチ301の検出信号、エラー解除スイッチ375からの操作信号、満タンスイッチ48の検出信号が入力される。入力ポート1のビット4〜6には、それぞれ、カードユニット50からのVL信号、BRDY信号、BRQ信号が入力される。
次に、払出制御手段の動作について説明する。図48は、払出制御手段が実行するメイン処理を示すフローチャートである。メイン処理では、払出制御用マイクロコンピュータ370の払出制御用CPU371は、まず、必要な初期設定を行う。すなわち、払出制御用CPU371は、まず、割込禁止に設定する(ステップS701)。次に、割込モードを割込モード2に設定し(ステップS702)、スタックポインタにスタックポインタ指定アドレスを設定する(ステップS703)。また、払出制御用CPU371は、内蔵デバイスレジスタの設定を行い(ステップS704)、CTCおよびPIOの設定を行う(ステップS705)を行った後に、RAMをアクセス可能状態に設定する(ステップS706)。また、賞球未払出個数カウンタ初期値として0000(H)をセットする(ステップS707)。
この実施の形態では、内蔵CTCのうちの一つのチャネルがタイマモードで使用される。従って、ステップS704の内蔵デバイスレジスタの設定処理およびステップS705の処理において、使用するチャネルをタイマモードに設定するためのレジスタ設定、割込発生を許可するためのレジスタ設定および割込ベクタを設定するためのレジスタ設定が行われる。そして、そのチャネルによる割込がタイマ割込として用いられる。タイマ割込を例えば2ms毎に発生させたい場合は、初期値として2msに相当する値が所定のレジスタ(時間定数レジスタ)に設定される。
なお、タイマモードに設定されたチャネル(この実施の形態ではチャネル3)に設定される割込ベクタは、タイマ割込処理の先頭アドレスに相当するものである。具体的は、Iレジスタに設定された値と割込ベクタとでタイマ割込処理の先頭アドレスが特定される。タイマ割込処理では、払出手段を制御する払出制御処理(少なくとも主基板からの賞球払出に関する指令信号に応じて球払出装置97を駆動する処理を含み、球貸し要求に応じて球払出装置97を駆動する処理が含まれていてもよい。)が実行される。
この実施の形態では、払出制御用マイクロコンピュータ370でも割込モード2が設定される。従って、内蔵CTCのカウントアップにもとづく割込処理を使用することができる。また、CTCが送出した割込ベクタに応じた割込処理開始アドレスを設定することができる。CTCのチャネル3(CH3)のカウントアップにもとづく割込は、CPUの内部クロック(システムクロック)をカウントダウンしてレジスタ値が「0」になったら発生する割込であり、タイマ割込として用いられる。
次に、払出制御用CPU371は、まず、RAMクリア処理を行う(ステップS712)。また、RAM領域のフラグやカウンタなどに初期値を設定する(ステップS713)。ステップS713の処理には、賞球未払出個数カウンタ初期値を賞球未払出個数カウンタにセットする処理が含まれる。
また、払出制御用CPU371は、シリアル通信回路380を初期設定するシリアル通信回路設定処理を実行する(ステップS713a)。この場合、払出制御用CPU371は、遊技制御用マイクロコンピュータ560のCPU56が行うシリアル通信回路設定処理(ステップS15a参照)と同様の処理に従って、シリアル通信回路380に遊技制御用マイクロコンピュータ560とシリアル通信させるための設定を行う。
シリアル通信回路380を初期設定すると、払出制御用CPU371は、シリアル通信回路380の割り込み要求に応じて実行する割込処理の優先順位を初期設定する(ステップS713b)。この場合、この場合、払出制御用CPU371は、遊技制御用マイクロコンピュータ560のCPU56が行う優先順位の初期設定処理(ステップS15b参照)と同様の処理に従って、割込処理の優先順位を初期設定する。
そして、定期的にタイマ割込がかかるように払出制御用マイクロコンピュータ370に設けられているCTCのレジスタの設定を行う(ステップS714)。すなわち、初期値としてタイマ割込発生間隔に相当する値が所定のレジスタ(時間定数レジスタ)に設定される。そして、初期設定処理のステップS701において割込禁止とされているので、初期化処理を終える前に割込が許可される(ステップS715)。その後、タイマ割込の発生を監視するループ処理に入る。
上記のように、この実施の形態では、払出制御用マイクロコンピュータ370の内蔵CTCが繰り返しタイマ割込を発生するように設定される。そして、タイマ割込が発生すると、払出制御用マイクロコンピュータ370の払出制御用CPU371は、タイマ割込処理を実行する。
図49は、払出制御手段が実行するタイマ割込処理の例を示すフローチャートである。タイマ割込処理にて、払出制御用マイクロコンピュータ370の払出制御用CPU371は、払出制御処理として以下の処理を実行する。まず、払出制御用CPU371は、入力判定処理を行う(ステップS751)。入力判定処理は、入力ポート0のビット4〜6および入力ポート1のビット3〜6(図47参照)の状態を検出して検出結果をRAMの所定の1バイト(入力状態フラグと呼ぶ。)に反映する処理である。なお、払出制御処理において、入力ポート0のビット4〜6および入力ポート1のビット3〜6の状態にもとづいて制御を行う場合には、直接入力ポートの状態をチェックするのではなく、入力状態フラグの状態をチェックする。
次に、払出制御用CPU371は、払出モータ制御処理を実行する(ステップS753)。払出モータ制御処理では、払出モータ289を駆動すべきときには、払出モータφ1〜φ4のパターンを出力ポート0に出力するための処理を行う。
また、払出制御用CPU371は、カードユニット50と通信を行うプリペイドカードユニット制御処理を実行する(ステップS754)。さらに、カードユニット50からの球貸し要求に応じて貸し球を払い出す制御を行い、また、主基板からの賞球個数コマンドが示す個数の賞球を払い出す制御を行う賞球球貸し制御処理を実行する(ステップS756)。
そして、払出制御用CPU371は、各種のエラーを検出するエラー処理を実行する(ステップS757)。また、遊技機外部に出力される賞球情報や球貸し情報を出力するための情報出力処理を実行する(ステップS758)。また、エラー処理の結果に応じてエラー表示LED374に所定の表示を行うとともに、賞球LED51および球切れLED52を点灯するための表示制御処理を実行する(ステップS759)。
本実施の形態では、後述するエラー処理において各種エラー(例えば、満タンエラーや球切れエラー、プリペイドカードユニット未接続エラー)が検出されると、検出されたエラーに対応するエラービットがセットされる。そして、ステップS759の表示制御処理において、エラービットがセットされていることにづいて、払出制御用CPU371は、エラー表示LED374に所定の表示を行う。また、払出制御用CPU371は、表示制御処理において、賞球払出を行っている状態であるときに、賞球LED51を点灯するための制御を行う。また、賞球払出を終了したら、賞球LED51を消灯するための制御を行う。
また、この実施の形態では、出力ポートの出力状態に対応したRAM領域(出力ポート0バッファ、出力ポート1バッファ、出力ポート2バッファ)が設けられているのであるが、払出制御用CPU371は、出力ポート0バッファ、出力ポート1バッファおよび出力ポート2バッファの内容を出力ポートに出力する(ステップS760:出力処理)。出力ポート0バッファ、出力ポート1バッファおよび出力ポート2バッファは、払出モータ制御処理(ステップS753)、プリペイドカード制御処理(ステップS754)、主制御通信処理(ステップS755)、情報出力処理(ステップS758)および表示制御処理(ステップS759)で更新される。
次に、ステップS755の主制御通信処理において、払出制御用マイクロコンピュータ370の払出制御用CPU371が各種コマンドを送受信する動作を説明する。図28に示すように、払出制御用マイクロコンピュータ370は、遊技制御用マイクロコンピュータ560と各種コマンドをシリアル通信するシリアル通信回路380を内蔵している。払出制御用マイクロコンピュータ370は、シリアル通信回路380を用いて、遊技制御用マイクロコンピュータ560から図27に示す賞球個数コマンドを受信する。また、賞球個数コマンドを受信すると、払出制御用マイクロコンピュータ370は、シリアル通信回路380を用いて、図27に示す賞球ACKコマンド「D2」を受信確認信号として送信する。
また、払出制御用CPU371は、遊技制御用マイクロコンピュータ560のCPU56と同様に、割り込み許可状態である間にシリアル通信回路380からの割り込み要求があると、シリアル通信回路380が割り込み要求を行った割り込み原因に応じた割り込み処理を実行する。この実施の形態では、払出制御用CPU371は、割り込み原因がシリアル通信回路380が受信データを受信したことであると特定すると、受信時割込処理を実行する。この場合、払出制御用CPU371は、シリアル通信回路380が受信データを受信していることを示す受信時割込フラグをセットする。なお、払出制御用CPU371は、受信時割込処理において、受信時割込フラグをセットするのでなく、シリアル通信回路380の受信データレジスタからデータを読み込んでもよい。この場合、例えば、払出制御用CPU371は、受信時割込処理において、読み込んだ受信データが賞球個数コマンドであるか否かを判断する。また、受信データが賞球個数コマンドである場合、払出制御用CPU371は、賞球個数コマンドが示す賞球数を賞球未払出個数カウンタに加算してもよい。そのようにすれば、後述する主制御通信処理において、受信時割込フラグがセットされていることにもとづいて受信データが賞球個数コマンドであるか否かを判定し(後述するステップS542〜S545参照)、賞球数を賞球未払出個数カウンタに加算する処理(後述するステップS546参照)を実る必要がなくなる。
図50は、払出制御用マイクロコンピュータ370の払出制御用CPU371が、主基板31の遊技制御手段(遊技制御用マイクロコンピュータ560)と通信を行う主制御通信処理を示すフローチャートである。なお、主制御通信処理は、遊技制御用マイクロコンピュータ560からのコマンド(賞球要求信号としての接続確認コマンドや賞球個数コマンド)を受信したことにもとづくコマンド受信割込処理(シリアル通信回路380の受信データレジスタにデータが格納されたときに発生する内部割込である受信割込にもとづく割込処理)内の処理として実行される。ただし、主制御通信処理をタイマ割込処理内の処理として実行するように構成してもよい。
主制御通信処理において、払出制御用CPU371は、接続確認信号がオン状態であるか否かを確認する(ステップS541)。なお、接続確認信号がオン状態であるということは、電力供給がなされ遊技制御手段において遊技の進行を制御可能な状態であることを意味し、接続確認信号がオフ状態であるということは、電力供給停止時処理が開始され遊技制御手段において遊技の進行が不能な状態であることを意味する(接続確認信号は、電力供給停止時処理における出力ポートクリア処理でオフ状態にされる。)。
払出制御用CPU371は、シリアル通信回路380が受信したデータを格納する受信データレジスタからデータを読み込む(ステップS542)。そして、払出制御用CPU371は、賞球要求信号としての接続確認コマンドを受信したかどうかを確認し(ステップS543)、接続確認コマンドを受信したとき(受信データレジスタから読み込んだデータが接続確認コマンドであるとき)は(ステップS543のY)、接続OKコマンドの上位4ビットのデータをRAM55の所定のデータ格納領域にセットする(ステップS547)。また、賞球エラー、満タンエラー、球切れエラーまたはドア開放エラーが発生したとき、つまり、図58および図59のエラー処理で賞球エラーフラグ、満タンエラーフラグ、球切れエラーフラグまたはドア開放エラーフラグがセットされたときは(ステップS548のY)、接続OKコマンドのデータにエラー情報を付加する。具体的には、エラー状態を示す情報(エラー情報)を接続OKコマンドの下位4ビットに設定する(ステップS549)。なお、賞球エラー、満タンエラー、球切れエラーまたはドア開放エラーが発生していないときは(ステップS548のN)、接続OKコマンドの下位4ビットに「0000」が設定される。そして、ステップS547で所定のデータ格納領域にセットされた接続OKコマンドの上位4ビットのデータと、接続OKコマンドの下位4ビットのデータ(エラー情報を示すデータまたは「0000」のデータ)を送信データレジスタに書き込むことにより、接続OKコマンドを遊技制御用マイクロコンピュータ560に送信する(ステップS552)。
接続確認コマンドを受信していないときは(ステップS543のN)、払出制御用CPU371は、賞球払出動作が終了したかどうかを確認する(ステップS544)。なお、賞球払出動作が終了したかどうかは、一連の払出処理が終了したときにセットするフラグ(払出終了フラグ)を確認することにより判断することが可能である。賞球払出動作が終了していれば(ステップS544のY)、払出制御用CPU371は、賞球終了コマンドのデータを送信データレジスタに書き込む(ステップS550)。なお、ステップS550の処理を実行する前(または後)に払出終了フラグをリセットする。払出終了フラグは払出処理の結果、未払出数が0になったとき(ステップS654のY)にセットされる。
賞球払出動作が終了していなければ(ステップS544のN)、払出制御用CPUは、賞球払出動作中であるかどうかを確認し(ステップS545)、賞球払出動作中であれば(ステップS545のY)、賞球準備中コマンドの上位4ビットのデータをRAM55の所定のデータ格納領域にセットする(ステップS551)。また、賞球エラー、満タンエラー、球切れエラーまたはドア開放エラーが発生したとき、つまり、賞球エラーフラグ、満タンエラーフラグ、球切れエラーフラグまたはドア開放エラーフラグがセットされたときは(ステップS548のY)、賞球準備中コマンドのデータにエラー情報を付加する。具体的には、エラー状態を示す情報(エラー情報)を賞球準備中コマンドの下位4ビットに設定する(ステップS549)。なお、賞球エラー、満タンエラー、球切れエラーまたはドア開放エラーが発生していないときは(ステップS548のN)、接続OKコマンドの下位4ビットに「0000」が設定される。そして、ステップS551で所定のデータ格納領域にセットされた賞球準備中コマンドの上位4ビットのデータと、賞球準備中コマンドの下位4ビットのデータ(エラー情報を示すデータまたは「0000」のデータ)を送信データレジスタに書き込むことにより、賞球準備中コマンドを遊技制御用マイクロコンピュータ560に送信する(ステップS552)。
賞球払出動作中でなければ(ステップS545のN)、払出制御用CPU371は、賞球個数コマンドが示す個数を賞球未払出個数カウンタに加算する(ステップS546)。そして、接続OKコマンドの上位4ビットのデータをRAM55の所定のデータ格納領域にセットする(ステップS547)。また、賞球エラー、満タンエラー、球切れエラーまたはドア開放エラーが発生したとき、つまり、賞球エラーフラグ、満タンエラーフラグ、球切れエラーフラグまたはドア開放エラーフラグがセットされたときは(ステップS548のY)、接続OKコマンドのデータにエラー情報を付加する。具体的には、エラー状態を示す情報(エラー情報)を接続OKコマンドの下位4ビットに設定する(ステップS549)。なお、賞球エラー、満タンエラー、球切れエラーまたはドア開放エラーが発生していないときは(ステップS548のN)、接続OKコマンドの下位4ビットに「0000」が設定される。そして、ステップS547で所定のデータ格納領域にセットされた接続OKコマンドの上位4ビットのデータと、接続OKコマンドの下位4ビットのデータ(エラー情報を示すデータまたは「0000」のデータ)を送信データレジスタに書き込むことにより、接続OKコマンドを遊技制御用マイクロコンピュータ560に送信する(ステップS552)。
なお、接続OKコマンドまたは賞球準備中コマンドにエラー情報を設定する場合、図58および図59に示すエラー処理においてエラービットをセットするときに、遊技制御用マイクロコンピュータ560側に通知するエラー情報に対応するビットに対して1バイトの領域のうちの4ビットを固めてセットする。これによって、その4ビットをそのまま遊技制御用マイクロコンピュータ560側に送信するコマンドの下位4ビットにセットすることが可能となる。
図51は、ステップS756の賞球球貸し制御処理を示すフローチャートである。賞球球貸し制御処理において、払出制御用CPU371は、払出個数カウントスイッチ301の検出信号がオン状態になったことを確認したら(ステップS601)、球貸し中であれば球貸し未払出個数カウンタの値を1減らし(ステップS602,S604)、球貸し中でなければ賞球未払出個数カウンタの値を1減らす(ステップS602,S603)。また、賞球未払出個数カウンタの値を1減算すると、払出個数カウントスイッチ301の検出信号を主基板31に転送(出力)する(ステップS603a)。
次に、RAMに形成されている払出制御状態フラグの払出球検知ビットをセットする(ステップS605)。払出球検知ビットは、払出通過待ち処理において、1回の賞球払出処理(最大15個)または1回の球貸し処理において(25個の払出)、払出モータ289を駆動したにもかかわらず遊技球が1個も払出個数カウントスイッチ301を通過しなかったことを検知するために用いられる。その後、払出制御コードの値に応じてステップS610〜S612のいずれかの処理を実行する。
賞球球貸し制御処理において、払出個数カウントスイッチ301の検出信号の確認や未払出個数カウンタの減算処理を行うときには、エラービットのチェックは実行されない。従って、遊技球の払い出しに関わるエラー状態であっても、払出個数カウントスイッチ301によって遊技球の払い出しが検出される毎に、払い出された遊技球が貸し球であれば球貸し未払出個数カウンタの値を1減算し、賞球であれば賞球未払出個数カウンタの値を1減算する処理を実行する。よって、払い出しに関わるエラーが発生しても、未払出の遊技球数を正確に管理することができる。すなわち、払出制御用マイクロコンピュータ370の払出制御用CPU371がエラーの発生を検出する前に球払出装置97から払い出された遊技球は、払い出された時点からやや遅れて払出個数カウントスイッチ301によって検出されるのであるが、払出制御用CPU371は、球払出装置97から遊技球が払い出された後、その遊技球が払出個数カウントスイッチ301によって検出される前にエラーの発生を検出したような場合に、エラーの発生を検出する前に球払出装置97から払い出された遊技球を、賞球未払出個数カウンタまたは球貸し未払出個数カウンタに反映できる。
図52は、払出制御コードが0の場合に実行される払出開始待ち処理(ステップS610)を示すフローチャートである。払出開始待ち処理において、払出制御用CPU371は、BRDY信号がオン状態でなければ(ステップS621)、ステップS631以降の賞球払出のための処理を実行する。ただし、エラービットがセットされていたら、ステップS631以降の処理を実行しない(ステップS622)。エラーフラグにおけるエラービットには、主基板未接続エラーのビット、賞球エラー(払出スイッチ異常検知エラー1、払出スイッチ異常検知エラー2、払出ケースエラー、プリペイドカードユニット未接続エラー、プリペイドカードユニット通信エラー)のビット、満タンエラーのビット、球切れエラーのビット、ドア開放エラーのビットが含まれている。また、主基板未接続エラーは主基板31からの接続確認信号がオフ状態であるときにセットされる。従って、払出制御用CPU371は、遊技機に対して電力供給が開始された後、接続確認信号がオン状態になったことを条件に、実質的な制御を開始する。接続確認信号がオン状態であるということは、電力供給がなされ遊技制御手段において遊技の進行を制御可能な状態であるので、遊技の進行に応じた賞球の払出制御が実行可能であることを意味する。一方、接続確認信号がオフ状態であるということは、電力供給が停止され遊技制御手段において遊技の進行が不能な状態であるので、遊技の進行に応じた賞球の払出制御が実行不可能であることを意味する。よって、払出制御用CPU371は、主基板未接続エラーのビットがセットされているときには、賞球の払出制御を停止する。一方、この例では、エラービットの確認を行うことなく貸し球の払出制御を実行する構成とされており、主基板未接続エラーのビットがセットされていても、球貸し制御は継続して行う。
BRDY信号がオン状態であって、さらに、球貸し要求信号であるBRQ信号がオン状態になっていたら(ステップS623)、払出制御用CPU371は、VL信号がオン状態であるか否かを確認する(ステップS623a)。VL信号がオン状態であれば、払出制御用CPU371は、球貸し動作中フラグをセットする(ステップS624)。そして、球貸し未払出個数カウンタに「25」をセットし(ステップS625)、払出モータ回転回数バッファに「25」をセットする(ステップS626)。なお、ステップS623aでVL信号がオン状態でなければ、払出制御用CPU371は、ステップS624以降の処理を行わず、ステップS622に進む。
払出モータ回転回数バッファは、払出モータ制御処理(ステップS753)において参照される。すなわち、払出モータ制御処理では、払出モータ回転回数バッファにセットされた値に対応した回転数分だけ払出モータ289を回転させる制御が実行される。
その後、払出制御用マイクロコンピュータ370は、払出モータ制御処理で実行される処理を選択するための払出モータ制御コードに、払出モータ起動準備処理(ステップS522)に応じた値(具体的は「1」)をセットし(ステップS627)、払出制御コードの値を1にして(ステップS628)、処理を終了する。
ステップS631では、払出制御用CPU371は、賞球未払出個数カウンタの値が0であるか否かを確認する(ステップS631)。0であれば処理を終了する。賞球未払出個数カウンタの値が0でない場合には、15以上であるか否か確認する(ステップS632)。15未満であれば、払出モータ回転回数バッファに賞球未払出個数カウンタの値をセットし(ステップS633)、15以上であれば、払出モータ回転回数バッファに「15」をセットする。そして、賞球動作中フラグをセットし(ステップS635)、ステップS627に移行する。
図53は、払出制御コードが1の場合に実行される払出モータ停止待ち処理(ステップS611)を示すフローチャートである。払出モータ停止待ち処理において、払出制御用CPU371は、払出動作が終了したか否か確認する(ステップS641)。払出制御用CPU371は、例えば、払出モータ制御処理における払出モータブレーキ処理(ステップS525)が終了するときにその旨のフラグ(具体的には回転数バッファが0となって払出モータの駆動制御が終了したときにセットされるフラグ)をセットし、ステップS641においてそのフラグを確認することによって払出動作が終了したか否かを確認することができる。
払出動作が終了した場合には、払出制御用CPU371は、払出制御監視タイマに払出通過監視時間をセットする(ステップS642)。払出通過監視時間は、最後の払出球が払出モータ289によって払い出されてから払出個数カウントスイッチ301を通過するまでの時間に、余裕を持たせた時間である。そして、払出制御コードの値を2にして(ステップS643)、処理を終了する。
図54〜図56は、払出制御コードの値が2の場合に実行される払出通過待ち処理(ステップS612)を示すフローチャートである。払出通過待ち処理では、賞球払出が行われているときには、賞球未払出個数カウンタの値が0になっていれば正常に払出が完了したと判定される。賞球未払出個数カウンタの値が0になっていない場合には、エラー状態でなければ、1個の遊技球の再払出動作を、2回を上限として試みる。再払出動作において払出個数カウントスイッチ301によって遊技球が実際に払い出されたことが検出されたら正常に払出が完了したと判定される。なお、この実施の形態では、1回の賞球払出動作で払い出される遊技球数は最大15個であり、また、賞球払出中に賞球個数コマンドを受信したら賞球未払出個数カウンタの値が増加するので、正常に払出が完了した場合でも、賞球未払出個数カウンタの値が0になっていないことがある。
また、球貸し払出が行われているときには、球貸し未払出個数カウンタの値が0になっていれば正常に払出が完了したと判定される。球貸し未払出個数カウンタの値が0になっていない場合には、エラー状態でなければ、1個の遊技球または球貸し残数(球貸し未払出個数カウンタの値に相当)の再払出動作を試みる。なお、この実施の形態では、1回の球貸し払出動作で払い出される遊技球数は25個(固定値)であり、25個の遊技球が払い出されるように払出モータ289を回転させたのであるから、球貸し未払出個数カウンタの値が0になっていない場合には、正常に払出が完了していないことになる。
払出通過待ち処理において、払出制御用CPU371は、まず、払出制御タイマの値を確認し、その値が0になっていればステップS653に移行する(ステップS650)。払出制御タイマの値が0でなければ、払出制御タイマの値を−1する(ステップS651)。そして、払出制御タイマの値が0になっていなければ(ステップS652)、すなわち払出制御タイマがタイムアウトしていなければ処理を終了する。なお、ステップS650の処理は、後述する遊技球払出のリトライ動作が開始されたときのことを考慮した処理である。後述するステップS807の処理が実行された場合には、ステップS650からS653に移行するルートを経てリトライ動作が開始される。
払出制御タイマがタイムアウトしていれば(ステップS652)、球貸し払出処理(球貸し動作)を実行していたか否か確認する(ステップS653)。球貸し動作を実行していたか否かは、RAMに形成されている払出制御状態フラグにおける球貸し動作中ビットがセットされているか否か(ステップS623,S624参照)によって確認される。球貸し動作を実行していない場合、すなわち、賞球払出処理(賞球動作)を実行していた場合には、払出制御用CPU371は、賞球未払出個数カウンタの値を確認する(ステップS654)。賞球未払出個数カウンタの値が0になっている場合には、正常に賞球払出処理が完了したとして、払出制御状態フラグにおける払出球検知ビット、再払出動作中1ビット、再払出動作中2ビット、賞球動作中フラグおよび球貸し動作中ビットをリセットし(ステップS655)、払出制御コードを0にして(ステップS656)、処理を終了する、なお、払出球検知ビットは、払出個数カウントスイッチ301がオンしたときにセットされるビットであり、払出動作中に払出個数カウントスイッチ301が少なくとも1個の遊技球を検出したことを示すビットである。また、再払出動作中1ビットおよび再払出動作中2ビットは、2回の再払出動作からなる再払出処理を実行する際に用いられる制御ビットである。
払出制御用CPU371は、賞球未払出個数カウンタの値が0になっていない場合には、エラーフラグ(具体的には、払出スイッチ異常エラー1ビット、払出スイッチ異常エラー2ビットおよび払出ケースエラービットのうちのいずれか1ビットまたは複数ビット)がセットされていないことを条件として(ステップS659)、また、払出球検知ビットがセットされていないことを条件として(ステップS661)、再払出動作を実行する。なお、エラーフラグがセットされている場合には、再払出動作を実行しない。
上述したように、この実施の形態では、正常に払出が完了した場合でも、賞球未払出個数カウンタの値が0になっていないことがある。そこで、払出球検知ビットがセットされていれば、すなわち払出個数カウントスイッチ301が賞球払出処理中に少なくとも1個の遊技球の払出を検出していたら、正常に賞球払出処理が完了したとして、ステップS655に移行する。なお、例えば、1回の賞球払出処理で15個の遊技球を払い出すべきところ、実際には14個の遊技球しか払い出されなかった場合(払出個数カウントスイッチ301が14個の遊技球しか検出しなかった場合)にも、払出球検知ビットがセットされるので正常に賞球払出処理が完了したとみなされるが、その場合には、賞球未払出個数カウンタの値は14しか減算されていないはずであり、不足分は次回の賞球払出処理で払い出されるので、遊技者に不利益を与えることはない。なお、賞球未払出個数カウンタの値が0になったとき(ステップS654のY)にのみセットされるフラグにもとづいて、主制御通信処理(図36および図37)の賞球払出動作の終了の判定(ステップS544参照)や賞球払出動作中の判定(ステップS545参照)を行うようにしてもよい。この場合、未払出の賞球が完全に払い出されるまで(再払出処理が実行される場合も含む)、賞球準備中コマンドが遊技制御用マイクロコンピュータ560に出力されることになる。このような構成によれば、少しでも異常が生じる可能性がある状態で遊技制御用マイクロコンピュータ560側から賞球個数コマンドが送信されることがないので、遊技者の不利益(例えば、賞球払出動作中に賞球個数コマンドが送信され未払出賞球個数カウンタに賞球個数コマンドで指定された値が設定されたが、電源断が発生して未払出賞球個数カウンタの値がクリアされてしまい、本来払い出されるべき賞球が払い出されないという不利益)を防止することができる。
再払出処理を実行するために、払出制御用CPU371は、まず、再払出動作中2ビットがセットされているか否か確認する(ステップS662)。セットされていなければ、再払出動作中1ビットがセットされているか否か確認する(ステップS663)。再払出動作中1ビットもセットされていなければ、初回の再払出動作を実行するために、再払出動作個数として1をセットし(ステップS664)、再払出動作中1ビットをセットし(ステップS665)、払出モータ回転回数バッファに再払出動作個数または球貸し未払出数個数カウンタの値をセットする(ステップS666)。また、払出制御用CPU371は、払出モータ制御処理で実行される処理を選択するための払出モータ制御コードに、払出モータ起動準備処理(ステップS522)に応じた値(具体的は「1」)をセットする。払出モータ回転回数バッファは、払出モータ制御処理(ステップS753)において参照される。すなわち、払出モータ制御処理では、払出モータ回転回数バッファにセットされた値に対応した回転数分だけ払出モータ289を回転させる制御が実行される。なお、ステップS666において、球貸し未払出数個数カウンタの値も取り扱われるのは、球貸し払出処理における再払出処理でもステップS666が用いられるからである。すなわち、払出制御用CPU371は、ステップS666において、賞球払出処理における再払出処理では再払出動作個数をセットし、球貸し払出処理における再払出処理では球貸し未払出数個数カウンタの値をセットする。その後、払出制御コードを1にして(ステップS667)、処理を終了する。なお、エラーが2回発生したことによりエラー状態に設定する場合においても、所定期間(例えば120秒)経過後に自動的にエラー状態を解除して再度リトライ動作(再払出処理)を再開させるように構成してもよい。
ステップS663において、再払出動作中1ビットがセットされていることを確認したら、払出制御用CPU371は、2回目の再払出を実行するために、再払出動作個数として1をセットし(ステップS668)、再払出動作中1ビットをリセットし(ステップS669)、再払出動作中2ビットをセットする(ステップS670)。そして、ステップS666に移行する。
ステップS662において、再払出動作中2ビットがセットされていることを確認したら、払出制御用CPU371は、2回の再払出処理を実行しても遊技球が払い出されなかった(払出個数カウントスイッチ301が遊技球を検出しなかった)として、エラーフラグにおける払出ケースエラービットをセットする(ステップS672)。その際に、再払出動作中2ビットをリセットしておく(ステップS671)。そして、処理を終了する。
以上のように、再払出処理(補正払出処理)において2回の再払出動作を行っても遊技球が1個も払い出されない場合には、遊技球の払出動作不良として、払出個数カウントスイッチ未通過エラービット(払出ケースエラービット)がセットされる。
従って、この実施の形態では、払出制御用マイクロコンピュータ370における景品遊技媒体払出制御手段は、払出検出手段としての払出個数カウントスイッチ301からの検出信号にもとづいて、景品遊技媒体の払い出しが行われなかったことを検出したときに、あらかじめ決められた所定回(この例では2回)を限度として、払出手段に1個の景品遊技媒体の払い出しを行わせるように制御を行う。なお、この実施の形態では、景品遊技媒体を払い出すためのリトライ動作を2回行っても景品遊技媒体の払い出しが行われなかった場合には、払出ケースエラービットをセットしてエラー発生中状態になるが(ステップS672)、景品遊技媒体の払い出しが行われなかったことを初めて検知したときに払出ケースエラービットをセットしてもよい。なお、「リトライ動作(あるいは「リトライ」、「リトライ動作処理」)」とは、所定数の遊技球の払い出しを行うための通常の払出処理を実行したのにもかかわらず、実際の払い出し数が少ない場合に実行させる動作であって、通常の払出処理とは別に、未払出の遊技球を払い出すために払出処理を再度実行させるための動作を意味する。
賞球球貸し制御処理において、払出動作(1回の賞球払出または1回の球貸し)を行うか否か判定するためにエラービットがチェックされるのは、図50に示された払出開始待ち処理においてのみである。図51に示された払出モータ停止待ち処理および図52等に示された払出通過待ち処理では、エラービットはチェックされない。なお、払出通過待ち処理におけるステップS659等でもエラービットがチェックされているが、そのチェックは再払出動作を行うか否かを判断するためであって、払出動作(1回の賞球払出または1回の球貸し)を開始するか否か判定するためではない。従って、ステップS626、S633またはステップS634の処理が行われて遊技球の払出処理が開始された後では、エラーが発生しても払出処理は中断されない。すなわち、エラーが発生すると、遊技球の払出処理は、切りのよい時点(1回の賞球払出または1回の球貸しが終了した時点)まで継続される。なお、ステップS621でチェックされるエラーフラグにおけるエラービットの中には、主基板31からの接続確認信号がオフ状態になったことを示すエラービットが含まれている。よって、接続確認信号がオフ状態になったときにも、遊技球の払出処理は、切りのよい時点で停止される。なお、遊技球の払出処理を切りのよい時点まで継続するのでなく、ステップS626、S633またはステップS634の処理が行われて遊技球の払出処理が開始された後であっても、エラーが発生すると直ちに遊技球の払出処理を停止するようにしてもよい。
ステップS653で球貸し払出処理(球貸し動作)を実行していたことを確認すると、払出制御用CPU371は、球貸し未払出個数カウンタの値が0になっているか否か確認する(ステップS657)。0になっていれば、正常に球貸し払出処理が完了したとしてステップS655に移行する。
ステップS657で、球貸し未払出個数カウンタの値が0になっていなければ、エラーフラグ(具体的には、払出スイッチ異常エラー1ビット、払出スイッチ異常エラー2ビットおよび払出ケースエラービットのうちのいずれか1ビットまたは複数ビット)がセットされていないことを条件として(ステップS675)、再払出処理を実行する。なお、エラーフラグがセットされている場合には、再払出処理を実行しない。
再払出処理を実行するために、払出制御用CPU371は、まず、再払出動作中2ビットがセットされているか否か確認する(ステップS676)。セットされていなければ、再払出動作中1ビットがセットされているか否か確認する(ステップS677)。再払出動作中1ビットもセットされていなければ、初回の再払出動作を実行するために、再払出動作個数として1をセットし(ステップS678)、再払出動作中1ビットをセットし(ステップS679)、さらに払出球検知ビットをリセットした後(ステップS680)、ステップS666に移行する。
ステップS677において、再払出動作中1ビットがセットされていることを確認したら、払出制御用CPU371は、再払出動作を再度実行するための処理を行う。具体的には、再払出動作中1ビットをリセットする(ステップS681)。そして、払出球検知ビットがセットされていたら、すなわち、最初の再払出動作で遊技球が払い出されていたら、ステップS683に移行する。払出球検知ビットがセットされていなかったら、2回目の再払出動作を実行するためにステップS684に移行する。
ステップS683では払出球検知ビットをリセットし、その後、ステップS666に移行する。従って、この場合には、再払出動作中1ビットがセットされたままになっているので、再度、初回(最初)の再払出動作が行われる。ステップS684では、再払出動作個数として1をセットし(ステップS684)、再払出動作中2ビットをセットし(ステップS685)、ステップS666に移行する。
ステップS676において、再払出動作中2ビットがセットされていることを確認したら、払出制御用CPU371は、再払出動作中2ビットをリセットし(ステップS686)、払出球検知ビットがセットされていたら、すなわち、再払出動作で遊技球が払い出されていたらステップS683に移行して残りの未払出を分を解消することを試みる。払出球検知ビットがセットされていなかったら、2回の再払出処理を実行しても遊技球が払い出されなかった(払出個数カウントスイッチ301が遊技球を検出しなかった)として、エラーフラグにおける払出ケースエラービットをセットする(ステップS688)。そして、処理を終了する。
以上のように、球貸し処理に係る再払出処理(補正払出処理)において連続して2回の再払出動作を行っても遊技球が1個も払い出されない場合には、遊技球の払出動作不良として、払出個数カウントスイッチ未通過エラービット(払出ケースエラービット)がセットされる。
次に、エラー処理について説明する。図57は、エラーの種類とエラー表示用LED374の表示との関係等を示す説明図である。図57に示すように、主基板31からの接続確認信号がオフ状態になった場合には、払出制御用マイクロコンピュータ370の払出制御用CPU371は、主基板未接続エラーとして、エラー表示用LED374に「1」を表示する制御を行う。従って、接続確認信号の入力状態の確認中に接続確認信号がオフ状態となると、エラー表示用LED374に「1」が表示されることになる。
払出個数カウントスイッチ301の断線または払出個数カウントスイッチ301の部分において球詰まりが発生した場合には、払出スイッチ異常検知エラー1として、エラー表示用LED374に「2」を表示する制御を行う。なお、払出個数カウントスイッチ301の断線または払出個数カウントスイッチ301の部分において球詰まりが発生したことは、払出個数カウントスイッチ301の検出信号がオフ状態にならなかったことによって判定される。
遊技球の払出動作中でないにも関わらず払出個数カウントスイッチ301の検出信号がオン状態になった場合には、払出スイッチ異常検知エラー2として、エラー表示用LED374に「3」を表示する制御を行う。払出モータ289の回転異常または遊技球が払い出されたにも関わらず払出個数カウントスイッチ301の検出信号がオン状態にならない場合には、払出ケースエラーとして、エラー表示用LED374に「4」を表示する制御を行う。払出個数カウントスイッチ301の検出信号がオン状態にならないことの具体的な検出方法は既に説明したとおりである。
また、下皿満タン状態すなわち満タンスイッチ48がオン状態になった場合には、満タンエラーとして、エラー表示用LED374に「5」を表示する制御を行う。補給球の不足状態すなわち球切れスイッチ187がオン状態になった場合には、球切れエラーとして、エラー表示用LED374に「6」を表示する制御を行う。
また、カードユニット50からのVL信号がオフ状態になった場合には、プリペイドカードユニット未接続エラーとして、エラー表示用LED374に「7」を表示する制御を行う。不正なタイミングでカードユニット50と通信がなされた場合には、プリペイドカードユニット通信エラーとして、エラー表示用LED374に「8」を表示する制御を行う。なお、プリペイドカードユニット通信エラーは、プリペイドカードユニット制御処理(ステップS754)において検出される。
以上のエラーのうち、払出スイッチ異常検知エラー2、払出ケースエラー、賞球過多異常エラーまたは賞球過少異常エラーが発生した後、エラー解除スイッチ375が操作されエラー解除スイッチ375から操作信号が出力されたら(オン状態になったら)、払出制御手段は、エラーが発生する前の状態に復帰する。
なお、払出制御用CPU371は、既に述べたように、具体的には、タイマ割込処理の表示制御処理(ステップS759参照)において、図57に示す関係に従ってエラー表示LED374にエラー表示を行う。例えば、払出制御用CPU371は、後述するエラー処理においてプリペイドカードユニット未接続エラービットをセットしたことにもとづいて(ステップS826参照)、表示制御処理において、プリペイドカードユニット未接続エラーが発生している旨を示すエラー表示「7」をエラー表示用LED374に表示する制御を行う。また、例えば、エラー処理において満タンエラービットをセットしたことにもとづいて(ステップS809参照)、表示制御処理において、満タンエラーが発生している旨を示すエラー表示「5」をエラー表示用LED374に表示する制御を行う。
図58および図59は、ステップS757のエラー処理を示すフローチャートである。エラー処理において、払出制御用CPU371は、エラーフラグをチェックし、そのうちのセットされているビットが、払出スイッチ異常検知エラー2および払出ケースエラーのみ(2つのうちのいずれかのビットのみ、またはそれら2ビットのみ)であるか否か確認する(ステップS801)。セットされているビットがそれらのみである場合には、エラー解除スイッチ375から操作信号がオン状態になったか否か確認する(ステップS802)。操作信号がオン状態になったら、エラー復帰時間をエラー復帰前タイマにセットする(ステップS803)。エラー復帰時間は、エラー解除スイッチ375が操作されてから、実際にエラー状態から通常状態に復帰するまでの時間である。
エラー解除スイッチ375から操作信号がオン状態でない場合には、エラー復帰前タイマの値を確認する(ステップS804)。エラー復帰前タイマの値が0であれば、すなわち、エラー復帰前タイマがセットされていなければ、ステップS808に移行する。エラー復帰前タイマがセットされていれば、エラー復帰前タイマの値を−1し(ステップS805)、エラー復帰前タイマの値が0になったら(ステップS806)、エラーフラグのうちの、払出スイッチ異常検知エラー2および払出ケースエラーのビットをリセットし(ステップS807)、ステップS808に移行する。
なお、ステップS807の処理が実行されるときに、払出スイッチ異常検知エラー2および払出ケースエラーのビットのうちには、セット状態ではないエラービットがある場合もあるが、セット状態にないエラービットをリセットしても何ら問題はない。以上のように、この実施の形態では、払出スイッチ異常検知エラー2または払出ケースエラーのビットをセットする原因になったエラー(図57参照)が発生した場合には、エラー解除スイッチ375が押下されることによってエラー解除される。
ステップS807の処理が実行されて払出ケースエラービットがリセットされた場合には、払出制御コードが「2」(図54〜図56に示す払出通過待ち処理の実行に対応)であって、賞球未払出個数カウンタの値または球貸し未払出個数カウンタの値が0でないときには、遊技球払出のリトライ動作が開始される。つまり、次にステップS756の賞球球貸し制御処理が実行されるときにステップS612の払出通過待ち処理が実行されると、再び、再払出処理が行われる。例えば、賞球払出処理が行われていた場合には、賞球未払出個数カウンタの値が0でないときには、ステップS654からステップS659に移行し、ステップS659においてエラービットがリセット状態であることが確認されるので、ステップS662以降の再払出処理を開始するための処理が再度実行され、再払出処理が実行される。なお、エラー解除スイッチ375が押下されることによってリセットされた払出ケースエラービットに関して、そのビットがセットされたときには(ステップS672が実行されたとき)、払出制御タイマは既にタイムアップしている。従って、ステップS807の処理が実行されて払出ケースエラービットがリセットされた場合には、次に払出通過待ち処理が実行されるときには、ステップS650の判断において払出制御タイマ=0と判定される。また、払出ケースエラービットがセットされたときには払出球検知ビットは0である(ステップS661の判断で払出球検知ビットは0でないとステップS672が実行されないので)。従って、ステップS659においてエラービットがリセット状態であることが確認されると、必ずステップS662が実行される。つまり、必ず、再払出処理が実行される。
以上のように、払出制御手段は、球払出装置97が遊技球の払い出しを行ったにもかかわらず払出個数カウントスイッチ301が1個も遊技球を検出しなかったときには遊技球を払い出すためのリトライ動作をあらかじめ決められた所定回(例えば2回)を限度として球払出装置97に実行させる補正払出制御を行った後、払出個数カウントスイッチ301が1個も遊技球を検出しなかったことが検出されたときには(図55のステップS661以降を参照)、払い出しに関わる制御状態をエラー状態に移行させ、エラー状態においてエラー解除スイッチ375からエラー解除信号が出力されたことを条件に再度補正払出制御を行わせる補正払出制御再起動処理を実行する。
さらに、エラー状態における再払出処理の実行中(具体的には払出ケースエラーをセットする前の再払出処理中およびエラー解除スイッチ375押下後の再払出処理中)でも、図51に示すステップS601〜S604の処理は実行されている。すなわち、払い出しに関わるエラーが生じているときでも、遊技球が払出個数カウントスイッチ301を通過すれば、賞球未払出個数カウンタや球貸し未払出個数カウンタの値が減算される。従って、エラー状態から復帰したときの賞球未払出個数カウンタや球貸し未払出個数カウンタの値は、実際に払い出された遊技球数を反映した値になっている。すなわち、払い出しに関わるエラーが発生しても、実際に払い出した遊技球数を正確に管理することができる。
また、図54〜図56に示された払出通過待ち処理において、再払出処理が実行された結果、遊技球が払い出されたことが確認されたときでも、払出ケースエラーのビットはリセットされない。払出ケースエラーのビットがリセットされるのは、あくまでも、エラー解除スイッチ375が操作されたとき(具体的は、操作後エラー復帰時間が経過したとき)である(ステップS802,S807)。すなわち、遊技球が払出個数カウントスイッチ301を通過したこと等にもとづいて自動的に払出ケースエラー(払出不足エラー)の状態が解除されるということはなく、人為的な操作を経ないと払出ケースエラーは解除されない。従って、遊技店員等は、確実に払出不足が発生したことを認識することができる。
エラー解除スイッチ375が操作されたことによってハードウェア的にリセット(払出制御用CPU371に対するリセット)がかかるように構成されている場合には、エラー解除スイッチ375が操作されたことによって例えば賞球未払出個数カウンタの値もクリアされてしまう。しかし、この実施の形態では、払出制御手段が、エラー解除スイッチ375が操作されたことによって再払出動作を再び行うように構成されているので、確実に払出処理が実行され、遊技者に不利益を与えないようにすることができる。
ステップS808では、払出制御用CPU371は、満タンスイッチ48の検出信号を確認する。満タンスイッチ48の検出信号が出力されていれば(オン状態であれば)、エラーフラグのうちの満タンエラービットをセットする(ステップS809)。満タンスイッチ48の検出信号がオフ状態であれば、満タンエラービットをリセットする(ステップS810)。
また、払出制御用CPU371は、球切れスイッチ187の検出信号を確認する(ステップS811)。球切れスイッチ187の検出信号が出力されていれば(オン状態であれば)、エラーフラグのうちの球切れエラービットをセットする(ステップS812)。球切れスイッチ187の検出信号がオフ状態であれば、球切れエラービットをリセットする(ステップS813)。なお、球切れエラービットをセットされているときには、ステップS759の表示制御処理において、出力ポート1バッファにおける球切れLED52に対応したビットを点灯状態に対応した値にする。
さらに、払出制御用CPU371は、主基板31からの接続確認信号の状態を確認し(ステップS815)、接続確認信号が出力されていなければ(オフ状態であれば)、主基板未接続エラービットをセットする(ステップS816)。また、接続確認信号が出力されていれば(オン状態であれば)、主基板未接続エラービットをリセットする(ステップS817)。
また、払出制御用CPU371は、各スイッチの検出信号の状態が設定される各スイッチタイマのうち払出個数カウントスイッチ301に対応したスイッチタイマの値を確認し、その値がスイッチオン最大時間(例えば「240」)を越えていたら(ステップS818)、エラーフラグのうち払出スイッチ異常検知エラー1のビットをセットする(ステップS819)。また、払出個数カウントスイッチ301に対応したスイッチタイマの値がスイッチオン最大時間以下であれば、払出スイッチ異常検知エラー1のビットをリセットする(ステップS820)。なお、各スイッチタイマの値は、ステップS751の入力判定処理において、各スイッチの検出信号を入力する入力ポートの状態がスイッチオン状態であれば+1され、オフ状態であれば0クリアされる。従って、払出個数カウントスイッチ301に対応したスイッチタイマの値がスイッチオン最大時間を越えていたということは、スイッチオン最大時間を越えて払出個数カウントスイッチ301がオン状態になっていることを意味し、払出個数カウントスイッチ301の断線または払出個数カウントスイッチ301の部分で遊技球が詰まっていると判断される。
また、払出制御用CPU371は、払出個数カウントスイッチ301に対応したスイッチタイマの値がスイッチオン判定値(例えば「2」)になった場合に(ステップS821)、球貸し動作中フラグおよび賞球動作中フラグがともにリセット状態であれば、払出動作中でないのに払出個数カウントスイッチ301を遊技球が通過したとして、エラーフラグのうち払出スイッチ異常検知エラー2のビットをセットする(ステップS822,S823)。また、球貸し動作中フラグまたは賞球動作中フラグがセットされていれば、払出スイッチ異常検知エラー2のビットをリセットする(ステップS824)。
また、払出制御用CPU371は、カードユニット50からのVL信号の入力状態を確認し(ステップS825)、VL信号が入力されていなければ(オフ状態であれば)、エラーフラグのうちプリペイドカードユニット未接続エラービットをセットする(ステップS826)。また、VL信号が入力されていれば(オン状態であれば)、プリペイドカードユニット未接続エラービットをリセットする(ステップS827)。
なお、ステップS759の表示制御処理では、エラーフラグ中のエラービットに応じた表示(数値表示)による報知をエラー表示用LED374によって行う。従って、通信エラーをエラー表示用LED374によって報知することができる。また、通信エラーは、払出制御手段の側で検出されるので、遊技制御手段の負担を増すことなく通信エラーを検出できる。
また、この実施の形態では、主基板未接続エラーは接続確認信号がオン状態になると自動的に解消されるが(ステップS815,S817参照)、さらにエラー解除スイッチ375が操作されたという条件を加えて、エラー状態が解消されるようにしてもよい。
また、この実施の形態では、通信エラーが、カードユニット50との間の通信エラー(プリペイドカードユニット未接続エラーおよびプリペイドカードユニット通信エラー)やその他のエラーと区別可能に報知される(図57参照)。従って、遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370との間の通信エラーが容易に特定される。
次に、音/ランプ制御手段(音/ランプ制御用マイクロコンピュータ100b)の動作を説明する。図60は、音/ランプ制御基板80bに搭載されている音/ランプ制御用マイクロコンピュータ100b(具体的には、音/ランプ制御用CPU101b)が実行するメイン処理を示すフローチャートである。遊技機に対する電力供給が開始され、リセット信号がハイレベルになると、音/ランプ制御用マイクロコンピュータ100bは、メイン処理を開始する。メイン処理では、音/ランプ制御用マイクロコンピュータ100bは、まず、RAM領域のクリアや各種初期値の設定、また演出制御の起動間隔を決めるためのタイマの初期設定等を行うための初期化処理を行う(ステップS781)。その後、音/ランプ制御用マイクロコンピュータ100bは、タイマ割込フラグの監視(ステップS782)の確認を行うループ処理に移行する。タイマ割込が発生すると、音/ランプ制御用マイクロコンピュータ100bは、タイマ割込処理においてタイマ割込フラグをセットする。メイン処理において、タイマ割込フラグがセットされていたら、音/ランプ制御用マイクロコンピュータ100bは、そのフラグをクリアし(ステップS783)、以下の音/ランプ制御処理を実行する。
タイマ割込は例えば2ms毎にかかる。すなわち、音/ランプ制御処理は、例えば2ms毎に起動される。また、この実施の形態では、タイマ割込処理ではフラグセットのみがなされ、具体的な音/ランプ制御処理はメイン処理において実行されるが、タイマ割込処理で音/ランプ制御処理を実行してもよい。
音/ランプ制御処理において、音/ランプ制御用マイクロコンピュータ100bは、まず、受信した演出制御コマンドを解析する(コマンド解析処理:ステップS784)。なお、エラー特定コマンドを受信したときは、当該コマンドの下位4ビットの内容にもとづいて、エラーの内容(賞球エラー、満タンエラー、球切れエラー、ドア開放エラー)を特定する。そして、特定したエラーの内容に応じたエラービット(エラーフラグ)をセットする。エラービットがセットされると、報知制御プロセス処理において参照されて、エラーの内容に応じたエラー報知が実行される。エラー報知は、音、ランプ、表示のいずれか一つまたは複数の組み合わせ、もしくは全部で実行すればよく、エラーの中に可変表示装置9のみで報知を実行するものがある場合には、当該エラーのときだけ図柄制御基板にエラー特定コマンドを送信するようにしてもよい。
次いで、音/ランプ制御用マイクロコンピュータ100bは、演出内容決定処理を行う(ステップS785)。演出内容決定処理では、音/ランプ制御用マイクロコンピュータ100bは、演出制御コマンド(変動パターンコマンドや表示結果指定コマンド)にもとづいて、可変表示装置9を用いて行う演出内容(予告演出を行うか否かや、予告演出の種類)を決定する。また、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容を示す演出内容指定コマンドを生成する。
次いで、音/ランプ制御用マイクロコンピュータ100bは、音出力処理を行う(ステップS786)。この場合、音/ランプ制御用マイクロコンピュータ100bは、音声合成用IC173に対して音番号データ(例えば、変動パターンコマンドに示される変動パターンに対応する音番号データ)を出力する。そして、音声合成用IC173は、音番号データに応じた音声や効果音を発生し増幅回路175に出力する。
次いで、音/ランプ制御用マイクロコンピュータ100bは、ランプ表示処理を行う(ステップS787)。この場合、音/ランプ制御用マイクロコンピュータ100bは、プロセスデータ中に設定されているランプ制御実行データにもとづいてランプ制御を行う。
また、音/ランプ制御用マイクロコンピュータ100bは、乱数カウンタを更新する処理を実行する(ステップS788)。また、音/ランプ制御用マイクロコンピュータ100bは、主基板31から受信した演出制御コマンドや、ステップS785の演出内容決定処理で生成した演出内容指定コマンドを、図柄制御基板80aに送出する処理を行う(コマンド制御処理:ステップS789)。また、音/ランプ制御用マイクロコンピュータ100bは、エラー特定コマンドを受信したことにもとづいて、所定のエラーが発生している旨を報知するための報知制御プロセス処理を実行する(ステップS790)。その後、ステップS782のタイマ割込フラグの確認を行う処理に戻る。なお、エラーの報知は、エラーの内容ごとに異なる音声を出力したり、エラーの内容を可変表示装置9の画面に表示したりする(例えば、「満タンエラーが生じました!」という文字を表示する)ことによって、エラーの内容を遊技者に知らせるものである。
図61は、音/ランプ制御処理で用いる各乱数を示す説明図である。各乱数は、以下のように使用される。
(1)ランダム1:予告演出を実行するか否かを決定する(予告演出実行決定用)。この実施の形態では、可変表示装置9においてリーチ態様の飾り図柄の可変表示を行う際に、音/ランプ制御用マイクロコンピュータ100bは、例えば、ランダム1があらかじめ決められている1つの値と一致した場合には、予告演出を行うと決定する。なお、音/ランプ制御用マイクロコンピュータ100bは、リーチ態様の可変表示を行うか否かに関わらず、ランダム1を用いて予告演出を行うか否かを決定してもよい。
(2)ランダム2:予告演出を行う場合に、可変表示装置9を用いて行う予告演出の種類を決定する(予告演出種類決定用)
図62は、図60に示された演出内容決定処理(ステップS785)を示すフローチャートである。演出内容決定処理において、音/ランプ制御用マイクロコンピュータ100bは、変動パターンコマンド受信フラグがセットされているか否か確認する(ステップS1851)。なお、変動パターンコマンド受信フラグは、コマンド制御処理(ステップS789参照)において、遊技制御用マイクロコンピュータ560から変動パターンコマンドを受信したことが確認されたことにもとづいて設定されるフラグである。
変動パターンコマンド受信フラグがセットされていれば、音/ランプ制御用マイクロコンピュータ100bは、変動パターンコマンド受信フラグをリセットし、受信した変動パターンコマンドにもとづいて飾り図柄の変動パターンを特定する。また、音/ランプ制御用マイクロコンピュータ100bは、特定した変動パターンにもとづいて、可変表示装置9を用いて実行すべき可変表示がリーチを伴う変動であるか否かを判定する(ステップS1852)。例えば、音/ランプ制御用マイクロコンピュータ100bは、受信した変動パターンコマンドに示される変動パターンがリーチを伴うパターンである場合、音/ランプ制御用マイクロコンピュータ100bは、リーチを伴う変動であると判定する。なお、ステップS1851で変動パターンコマンド受信フラグがセットされていなかった場合には、音/ランプ制御用マイクロコンピュータ100bは、そのまま処理を終了する。
リーチを伴う変動であると判定した場合、音/ランプ制御用マイクロコンピュータ100bは、予告演出実行決定用乱数(ランダム1)にもとづいて、予告演出を行うか否かを決定する(ステップS1853)。例えば、音/ランプ制御用マイクロコンピュータ100bは、ランダム1が所定値と一致すると、可変表示装置9を用いた予告演出を行うと決定する。なお、ステップS1852でリーチを伴う変動でなかった場合には、音/ランプ制御用マイクロコンピュータ100bは、ステップS1857に移行する。
ステップS1854で予告演出を行わないと決定した場合、音/ランプ制御用マイクロコンピュータ100bは、変動パターンコマンドを受信しているとともに表示結果指定コマンドを受信している場合には、変動パターンコマンドおよび表示結果指定コマンドを図柄制御用マイクロコンピュータ100aに送信または転送し、図柄制御用マイクロコンピュータ100aは、可変表示装置9を用いた飾り図柄の可変表示および遊技演出を実行することになる。この場合、音/ランプ制御用マイクロコンピュータ100bは、ステップS1854で予告演出を行わないと決定すると、予告演出を行わない旨を指定する通知コマンドを生成し、図柄制御用マイクロコンピュータ100aに送信する(ステップS1857)。
予告演出を行うと決定すると(ステップS1854)、音/ランプ制御用マイクロコンピュータ100bは、予告演出種類決定用乱数(ランダム2)にもとづいて、可変表示装置9を用いて行わせる予告演出の種類を決定する(ステップS1855)。例えば、音/ランプ制御用マイクロコンピュータ100bは、ランダム2にもとづいて、予告演出において、飾り図柄をどの程度の速度で変動させるかや、飾り図柄をいずれの回転方向に変動させるか、可変表示装置9にいずれのキャラクタを登場させるかを決定する。
なお、この実施の形態では、変動パターンコマンドにもとづいて演出内容を決定する場合を説明するが、音/ランプ制御用マイクロコンピュータ100bは、遊技制御用マイクロコンピュータ560から受信した表示結果指定コマンドにもとづいて、非確変大当りまたは確変大当りであることを特定して、演出内容を決定してもよい。また、音/ランプ制御用マイクロコンピュータ100bは、図柄ずれ数指定コマンドを遊技制御用マイクロコンピュータ560から受信し、受信した図柄ずれ数指定コマンドにもとづいて、停止図柄がリーチを伴うはずれ図柄であるか否かを特定して、演出内容を決定してもよい。この場合、例えば、遊技制御用マイクロコンピュータ560は、特別図柄停止図柄設定処理(ステップS301参照)で飾り図柄の停止図柄を決定する際に、停止図柄をリーチ/はずれ図柄に決定した場合には、飾り図柄の停止図柄のずれ数を求める。また、遊技制御用マイクロコンピュータ560は、求めたずれ数を特定可能な値を含む図柄ずれ数指定コマンドを生成し、音/ランプ制御用マイクロコンピュータ100bに送信する。そして、音/ランプ制御用マイクロコンピュータ100bは、図柄ずれ数コマンドを受信したことにもとづいて停止図柄がリーチ/はずれ図柄であると特定し、演出内容を決定する。
さらに、音/ランプ制御用マイクロコンピュータ100bは、上記に示した全てのコマンド(変動パターンコマンド、表示結果指定コマンド、および図柄ずれ数指定コマンド)にもとづいて、演出内容を決定してもよい。また、音/ランプ制御用マイクロコンピュータ100bは、上記に示した各コマンド(変動パターンコマンド、表示結果指定コマンド、および図柄ずれ数指定コマンド)のうちのいずれか2つにもとづいて、演出内容を決定してもよい。
また、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容(予告演出を行うか否かや、予告演出の種類)を示す演出内容指定コマンドを生成する。そして、音/ランプ制御用マイクロコンピュータ100bは、生成した演出内容指定コマンドを、図柄制御基板80aに対して送信する処理を行う(ステップS1856)。なお、音/ランプ制御用マイクロコンピュータ100bは、演出内容指定コマンドとともに、表示結果指定コマンドおよび変動パターンコマンドを図柄制御基板80aに転送または送信する。そして、図柄制御基板80aの図柄制御用マイクロコンピュータ100aは、音/ランプ制御用マイクロコンピュータ100bから受信した演出内容指定コマンド、表示結果指定コマンドおよび変動パターンコマンドにもとづいて、後述する図柄制御プロセス処理(ステップS1705参照)において、飾り図柄の可変変動および遊技演出を行う。この場合、図柄制御用マイクロコンピュータ100aは、受信した演出内容指定コマンドにもとづいて、VDP109に、可変表示装置9を用いた予告演出を行わせる。
なお、ステップS1856において、音/ランプ制御用マイクロコンピュータ100bは、演出内容指定コマンドを生成するのでなく、決定した演出内容を、変動パターンコマンドや表示結果指定コマンドに付加してもよい。例えば、音/ランプ制御用マイクロコンピュータ100bは、コマンドのヘッダ部分に演出内容を示す値を付加することによって、演出内容を変動パターンコマンドや表示結果指定コマンドに付加する。この場合、音/ランプ制御用マイクロコンピュータ100bは、変動パターンコマンドのみのヘッダ部分に演出内容を示す値を付加してもよく、表示結果指定コマンドのみのヘッダ部分に演出内容を示す値を付加してもよい。さらに、音/ランプ制御用マイクロコンピュータ100bは、変動パターンコマンドおよび表示結果指定コマンドの両方のヘッダ部分に演出内容を示す値を付加してもよい。そして、音/ランプ制御用マイクロコンピュータ100bは、演出内容を付加した変動パターンコマンドや表示結果指定コマンドを、図柄制御基板80aに対して送信する処理を行ってもよい。なお、予告演出を行わない場合には、音/ランプ制御用マイクロコンピュータ100bは、遊技制御用マイクロコンピュータ560から受信した表示結果指定コマンドを、そのまま図柄制御用マイクロコンピュータ100aに転送することになる。
また、この実施の形態では、ステップS1856で送信テーブルのアドレスがセットされたことにもとづいて、音/ランプ制御メイン処理におけるコマンド制御処理(ステップS789参照)が実行されることによって、演出内容指定コマンドが図柄制御基板80aに送信される。
また、この実施の形態では、ランプ制御実行データを含む音/ランプ制御側プロセスデータが、音/ランプ制御基板80bにおけるROMに格納されている。また、表示制御実行データを含む図柄制御側プロセスデータが、図柄制御基板80aにおけるROMに格納されている。この実施の形態では、ステップS1856において、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容に応じて生成した演出内容指定コマンドを図柄制御用マイクロコンピュータ100aに送信する。そして、図柄制御用マイクロコンピュータ100aは、受信した演出内容指定コマンドにもとづいてROMから表示制御実行データを読み出し、読み出した表示制御実行データにもとづいて可変表示装置9を用いて演出を行う。
また、ステップS1856で決定した演出内容を変動パターンコマンドや表示結果指定コマンドに付加する場合、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容(例えば、背景色や登場するキャラクタ)を付加した変動パターンコマンドや表示結果指定コマンドを、図柄制御用マイクロコンピュータ100aに送信してもよい。そして、図柄制御用マイクロコンピュータ100aは、受信した変動パターンコマンドや表示結果指定コマンドにもとづいてROMから表示制御実行データを読み出し、読み出した表示制御実行データにもとづいて可変表示装置9を用いて演出を行ってもよい。
また、表示制御実行データおよびランプ制御実行データの両方を含むプロセスデータが、音/ランプ制御基板80bにおけるROMに格納されていてもよい。この場合、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容に応じた表示制御実行データをROMから抽出し、生成した演出内容指定コマンドとともに、図柄制御用マイクロコンピュータ100aに送信してもよい。そして、図柄制御用マイクロコンピュータ100aは、受信した表示制御実行データにもとづいて、可変表示装置9を用いて演出を行ってもよい。
また、表示制御実行データおよびランプ制御実行データの両方を含むプロセスデータが、音/ランプ制御基板80bにおけるROMに格納する場合に、音/ランプ制御用マイクロコンピュータ100bは、決定した演出内容に応じた表示制御実行データをROMから抽出し、決定した演出内容を付加した変動パターンコマンドや表示結果指定コマンドとともに、図柄制御用マイクロコンピュータ100aに送信してもよい。そして、図柄制御用マイクロコンピュータ100aは、受信した表示制御実行データにもとづいて、可変表示装置9を用いて演出を行ってもよい。
図63は、報知制御プロセス処理を示すフローチャートである。報知制御プロセス処理では、演出制御用CPU101は、報知制御プロセスフラグの値に応じてステップS1900,S1901のうちのいずれかの処理を行う。各処理において、以下のような処理を実行する。
報知開始処理(ステップS1900)は、コマンド解析処理でセットされる各エラーフラグ(満タンエラー報知フラグ、賞球エラー報知フラグ、球切れエラー報知フラグ)にもとづいて、エラー等の報知を開始する処理である。報知を開始すると、報知制御プロセスフラグの値を報知中処理(ステップS1901)に対応した値に変更する。
報知中処理(ステップS1901)は、各エラーフラグ(満タンエラー報知フラグ、賞球エラー報知フラグ、球切れエラー報知フラグ)にもとづいて、報知を継続する処理である。なお、エラーが解除され、エラーフラグ(エラービット)がリセットされると報知を終了する。が報知を終了すると、報知制御プロセスフラグの値を報知開始処理(ステップS1901)に対応した値に変更する。
次に、図柄制御手段(図柄制御用マイクロコンピュータ100a)の動作を説明する。図64は、図柄制御基板80aに搭載されている図柄制御用マイクロコンピュータ100a(具体的には、図柄制御用CPU101a)が実行するメイン処理を示すフローチャートである。図柄制御用マイクロコンピュータ100aは、電源が投入されると、メイン処理の実行を開始する。メイン処理では、まず、RAM領域のクリアや各種初期値の設定、また図柄制御の起動間隔を決めるためのタイマの初期設定等を行うための初期化処理を行う(ステップS1701)。その後、図柄制御用マイクロコンピュータ100aは、タイマ割込フラグの監視(ステップS1702)を行うループ処理に移行する。タイマ割込が発生すると、図柄制御用マイクロコンピュータ100aは、タイマ割込処理においてタイマ割込フラグをセットする。メイン処理において、タイマ割込フラグがセットされていたら、図柄制御用マイクロコンピュータ100aは、そのフラグをクリアし(ステップS1703)、以下の図柄制御処理を実行する。
図柄制御処理において、図柄制御用マイクロコンピュータ100aは、まず、音/ランプ制御基板80bから受信した演出制御コマンドを解析する(コマンド解析処理:ステップS1704)。次いで、図柄制御用マイクロコンピュータ100aは、図柄制御プロセス処理を行う(ステップS1705)。図柄制御プロセス処理では、制御状態に応じた各プロセスのうち、現在の制御状態(図柄制御プロセスフラグ)に対応した処理を選択して可変表示装置9の表示制御を実行する。さらに、各種乱数を生成するためのカウンタのカウンタ値を更新する乱数更新処理を実行する(ステップS1706)。
また、図柄制御用マイクロコンピュータ100aは、所定のエラー(賞球エラー、満タンエラー、球切れエラー、ドア開放エラー)が発生している旨を報知する報知制御プロセス処理を実行する(ステップS1707)。この場合、図柄制御用マイクロコンピュータ100aは、図62に示す音/ランプ制御用マイクロコンピュータ100bが実行する報知制御プロセス処理と同様の処理の従って、所定のエラーが発生している旨を報知する。ただし、図柄制御用マイクロコンピュータ100aは、可変表示装置9を用いて、所定のエラーが発生している旨を報知する。例えば、図柄制御用マイクロコンピュータ100aは、所定のエラーが発生している旨を可変表示装置9に表示させる。その後、ステップS1702に移行する。
図65は、図64に示されたメイン処理における図柄制御プロセス処理(ステップS1705)を示すフローチャートである。図柄制御プロセス処理では、図柄制御用CPU101aは、図柄制御プロセスフラグの値に応じてステップS1800〜S1807のうちのいずれかの処理を行う。各処理において、以下のような処理を実行する。
変動パターンコマンド受信待ち処理(ステップS1800):コマンド受信割込処理によって、音/ランプ制御基板80bから変動パターン指定の演出制御コマンド(変動パターンコマンド)を受信したか否か確認する。具体的には、変動パターンコマンドが受信されたことを示すフラグ(変動パターン受信フラグ)がセットされたか否か確認する。変動パターン受信フラグは、図柄制御用CPU101aが実行するコマンド解析処理で、変動パターンコマンドが受信されたことが確認された場合にセットされる。変動パターンコマンドを受信した場合には、飾り図柄の変動態様(変動期間中の飾り図柄の変動速度や、背景,キャラクタの種類、キャラクタの表示開始時期など)を、それぞれの変動パターンに応じてあらかじめ決められている複数種類のうちから選択する。なお、それぞれの変動パターンについて、あらかじめ1種類の変動態様が決められている場合には、受信した変動パターンに応じた変動態様を使用することに決定する。そして、図柄制御プロセスフラグの値を予告選択処理(ステップS1801)に対応した値に更新する。
予告選択処理(ステップS1801):例えばキャラクタ画像を用いた予告演出(特別図柄の停止図柄が大当り図柄となること、またはリーチが発生することを事前に報知するための演出)を行うか否かと、行う場合の予告演出の種類を特定する。この実施の形態では、音/ランプ制御基板80bから受信した演出内容指定コマンドにもとづいて、可変表示装置9を用いて行う予告演出が特定される。そして、図柄制御プロセスフラグの値を全図柄変動開始処理(ステップS1802)に対応した値に更新する。
全図柄変動開始処理(ステップS1802):左中右の飾り図柄の変動が開始されるように制御する。そして、図柄制御プロセスフラグの値を図柄変動中処理(ステップS1803)に対応した値に更新する。
図柄変動中処理(ステップS1803):変動パターンに応じて決められている変動時間の終了を監視する。また、左右図柄の停止制御を行う。変動時間が終了したら、大当りとすることに決定されている場合には、図柄制御プロセスフラグの値を大当たり図柄停止処理(ステップS1804)に対応した値に更新する。大当りとしないことに決定されている場合には、図柄制御プロセスフラグの値をはずれ図柄停止処理(ステップS1805)に対応した値に更新する。なお、図柄変動中処理では、変動パターンを構成する各変動状態(変動速度)の切替タイミングの制御も行う。
大当り図柄停止処理(ステップS1804):飾り図柄の変動を最終停止し停止図柄(確定図柄)を表示する制御を行う。そして、図柄制御プロセスフラグの値を大当り表示処理(ステップS1806)に対応した値に更新する。なお、この処理において、図柄制御用CPU101aは、可変表示装置9に飾り図柄の大当り図柄を停止表示させるが、遊技制御用マイクロコンピュータ560の制御と同様に、図柄制御プロセスフラグの値が大当り図柄停止処理である時間を所定時間継続させることが好ましい。
はずれ図柄停止処理(ステップS1805):飾り図柄の変動を最終停止し停止図柄(確定図柄)を表示する制御を行う。そして、図柄制御プロセスフラグの値を変動パターンコマンド受信待ち処理(ステップS1800)に対応した値に更新する。なお、この処理において、図柄制御用CPU101aは、可変表示装置9に飾り図柄のはずれ図柄を停止表示させる。
大当り表示処理(ステップS1806):大当り表示の制御を行う。そして、図柄制御プロセスフラグの値を大当たり遊技中処理(ステップS1807)に対応した値に更新する。
大当り遊技中処理(ステップS1807):大当たり遊技中の制御を行う。例えば、大入賞口開放前表示や大入賞口開放時表示の演出制御コマンドを受信したら、ラウンド数の表示制御等を行う。大当り遊技が終了したら、図柄制御プロセスフラグの値を変動パターンコマンド受信待ち処理(ステップS1800)に対応した値に更新する。
以上のように、この実施の形態では、遊技制御用マイクロコンピュータ560は、所定周期(1s)毎に賞球要求信号を接続確認コマンドとして払出制御用マイクロコンピュータに送信し、払出制御用マイクロコンピュータ370は、賞球要求信号を入力したことにもとづいて受信ACK信号を接続OKコマンドとして遊技制御用マイクロコンピュータ560に送信する。また、遊技制御用マイクロコンピュータは、所定の払出条件が成立したこと(入賞口に遊技球が入賞したこと)にもとづいて、賞球要求信号を出力するときに、払い出すべき賞球個数を特定可能なデータを、賞球要求信号の所定ビットを異ならせることにより設定し、当該設定がなされた賞球要求信号を賞球個数コマンドとして払出制御用マイクロコンピュータ370に送信し、払出制御用マイクロコンピュータ370は、賞球要求信号としての賞球個数コマンドにもとづいて、当該賞球要求信号により特定される個数の遊技球を払い出す賞球払出動作を実行する。また、払出制御用マイクロコンピュータ370は、所定のエラー(賞球エラー、満タンエラー、球切れエラー)が発生したときに、遊技制御用マイクロコンピュータ560が当該所定のエラーを認識可能なデータを、受信ACK信号の所定ビットを異ならせることにより設定し、当該設定がなされた受信ACK信号を接続OKコマンドとして遊技制御用マイクロコンピュータ560に送信する。そのような構成によれば、払出制御用マイクロコンピュータ370が賞球要求信号の受信にもとづいて定期的に送信する受信ACK信号に所定のエラー情報を乗せることによりエラー信号を送信することができるため、エラー信号の送信タイミングを考慮することなくエラー信号の取りこぼし等の発生を防止することができ、遊技制御用マイクロコンピュータ560と払出制御用マイクロコンピュータ370との間の通信を確実に行うことができる。なお、この実施の形態では、賞球要求信号としての接続確認コマンドを送信する周期(間隔)を1秒としていたが、0.5秒等としてもよい。
遊技制御用マイクロコンピュータ560は、賞球要求信号としての賞球個数コマンドを送信するときに、当該賞球要求信号により特定される賞球個数をRAM55に形成された賞球コマンド出力カウンタから減算し、払出制御用マイクロコンピュータ370により送信されたエラー情報を含む受信ACK信号を受信した場合であっても、賞球要求信号としての賞球個数コマンドを再度出力することを禁止するように構成とされているので、不正に賞球を払い出させるような不正行為を確実に防止することができる。すなわち、賞球払出動作が終了した後に、賞球個数の減算処理を行うと、賞球個数コマンドを送信して賞球払出動作が実行されているとき(例えば払い出すべき賞球個数が15個の場合において10個の賞球が払い出されたとき)に不正に電源断を生じさせるような不正行為によって、復旧後に賞球コマンド出力カウンタに格納されている未払出の賞球個数のデータにもとづいて賞球個数コマンドが再度送信され、不正に多くの賞球の払出が行われてしまうおそれがあるが、賞球個数コマンドを送信するときに減算処理を実行すれば、そのような不正に多くの賞球が払い出されてしまうような行為を防止することができる。
遊技制御用マイクロコンピュータ560は、払出制御用マイクロコンピュータ370との通信の接続状態を示す接続確認信号を出力ポート57を介して払出制御用マイクロコンピュータ370に送信するように構成されているので、払出制御用マイクロコンピュータ370側でどのタイミングにおいても通信の接続状態を確認することができるため、通信の接続状態が異常状態であるときに賞球の払い出しが行われることを確実に防止することができる。
遊技制御用マイクロコンピュータ560は、賞球要求信号としての接続確認コマンドを出力した後、所定期間内に受信ACK信号としての接続OKコマンドを受信するか否かを判定し、所定期間内に受信ACK信号を受信しなかったと判定されたときに、通信エラーが発生したとして、所定周期(1s)よりも長い特定周期(10s)毎に賞球要求信号としての接続確認コマンドを払出制御用マイクロコンピュータ370に送信するように構成されているので、通信エラーを早期に認識することができるとともに、正常な通信状態でないときに頻繁に要求信号を送信することが回避され、遊技制御用マイクロコンピュータ560の処理負担を軽減することができる。
遊技制御用マイクロコンピュータ560および払出制御用マイクロコンピュータ370は、他のマイクロコンピュータとシリアル通信を行うシリアル通信回路505,380を内蔵し、払出制御用マイクロコンピュータ370は、賞球要求信号を受信したことにもとづいて、当該賞球要求信号を受信するための受信割込処理を実行し、当該受信割込処理内で賞球ACK信号を送信するように構成されているので、払出制御用マイクロコンピュータ370の処理の遅れに起因して受信ACK信号の送信が遅れてしまい、遊技制御用マイクロコンピュータ560が通信エラーと判定してしまうことを防止することができる。
所定の演出装置(スピーカ27、ランプ)を制御する音/ランプ制御用マイクロコンピュータ100bを備え、遊技制御用マイクロコンピュータ560は、エラー情報を含む受信ACK信号としての接続OKコマンドを受信したときに、受信した当該受信ACK信号をそのまま音/ランプ制御用マイクロコンピュータ100bに送信し、音/ランプ制御用マイクロコンピュータ100bは、受信ACK信号としての接続OKコマンドを受信したことにもとづいて、演出装置を制御して所定のエラーが発生したことを報知するように構成されているので、遊技制御用マイクロコンピュータ560の処理負担を増加させることなく所定のエラーが発生したことを報知することができる。
なお、この実施の形態では、払出個数カウントスイッチ301からの払出検出信号を、払出制御基板37を経由して主基板31に入力するように構成されているので、払出検出信号を出力するための配線を、払出個数カウントスイッチ301から主基板31および払出制御基板37の両方に設ける必要がなくなる。そのため、払出個数カウントスイッチ301から払出検出信号を出力するための配線を削減することができる。
なお、払出個数カウントスイッチ301からの払出検出信号を主基板31に直接入力するようにしてもよい。この場合、払出個数カウントスイッチ301から払出検出信号を出力するための配線を、主基板31および払出制御基板37の両方に設けることになる。そして、遊技制御用マイクロコンピュータ560は、払出個数カウントスイッチ301から直接入力した払出検出信号にもとづいて、入力判定処理において、総賞球数格納バッファが格納する総賞球数の減算処理を行う。
また、この実施の形態では、主基板31からの演出制御コマンドを、まず音/ランプ制御基板80bで受信し、さらに音/ランプ制御基板80bから図柄制御基板80aに変動パターンコマンドや演出内容指定コマンドが送出される場合を説明したが、主基板31からの演出制御コマンドを、まず図柄制御基板80aで受信するようにしてもよい。
図66は、中継基板77、音/ランプ制御基板80bおよび図柄制御基板80aの他の回路構成例を示すブロック図である。図66に示す回路構成を用いる場合、例えば、図柄制御用マイクロコンピュータ100aは、ステップS1851〜S1856と同様の処理に従って、変動パターンコマンドにもとづいて、演出内容(予告演出を行うか否かや、予告演出の種類)を決定する。そして、図柄制御用マイクロコンピュータ100aは、決定した演出内容に従って、VDP109に、可変表示装置9を用いた予告演出を行わせる。また、図柄制御用マイクロコンピュータ100aは、決定した演出内容を示す演出内容指定コマンドを生成して、音/ランプ制御基板80bに送信するようにしてもよい。そして、音/ランプ制御基板80bが搭載する音/ランプ制御用マイクロコンピュータ100bは、受信した演出内容指定コマンドに示される演出内容に従って、各ランプ25,28a,28b,28cの表示制御を行ったり、音出力装置27の音出力制御を行ってもよい。
また、この実施の形態では、各演出手段を別々の制御基板を用いて制御する場合として、音/ランプ制御基板80bと図柄制御基板80aとを用いる場合を説明したが、他の制御基板の組合せを用いて各演出手段を制御してもよい。例えば、音出力装置27を制御する音制御基板と、各ランプを制御するランプ制御基板と、可変表示装置9を制御する図柄制御基板とを用いて、各演出手段を制御してもよい。この場合、例えば、主基板31からの演出制御コマンドを、まず音制御基板で受信し、音制御基板が搭載する音制御用マイクロコンピュータが、受信した変動パターンコマンドにもとづいて演出内容(予告演出を行うか否かや、予告演出の種類)を決定してもよい。なお、主基板31からの演出制御コマンドを、まずランプ制御基板や図柄制御基板で受信し、ランプ制御基板や図柄制御基板が搭載するマイクロコンピュータが、演出内容を決定したり変動時間を特定してもよい。さらに、例えば、音出力装置27および可変表示装置9を制御する音/図柄制御基板と、各ランプを制御するランプ制御基板とを用いて、各演出手段を制御してもよい。また、例えば、各ランプおよび可変表示装置9を制御するランプ/図柄制御基板と、音出力装置27を制御する音制御基板とを用いて、各演出手段を制御してもよい。また、一つの演出制御基板だけ設け、当該演出制御基板に搭載された演出制御用マイクロコンピュータが可変表示装置9の表示制御、スピーカ27からの音声出力、ランプの点灯制御を実行するように構成してもよい。
また、上記の実施の形態では、遊技制御用マイクロコンピュータ560と音/ランプ制御用マイクロコンピュータ100bのいずれにもシリアル通信回路505,101cを搭載し、両マイクロコンピュータ間でシリアル通信を行うように構成していたが、このような構成に限られず、遊技制御用マイクロコンピュータ560(主基板31)と音/ランプ制御用マイクロコンピュータ100b(音/ランプ制御基板80bとの間を複数本の信号線(8本の信号線)で接続し、入出力ポートを介してパラレル通信を行うように構成していてもよい。
なお、上記の実施の形態では、遊技制御用マイクロコンピュータ560が、通常時は受信ACK信号の受信後1秒経過後に賞球要求信号を送信し、通信エラーが発生しているときは、受信ACK信号の受信後10秒経過後に賞球要求信号を送信するように構成し、1秒や10秒の期間をタイマ(ソフトウェアで構成されたカウンタ)で計測するように構成していたが、内部クロックによってハードウェアとして更新されるカウンタが所定値になったとき(1秒や10秒)発生する内部割込で賞球要求信号を送信するようにしてもよい。その場合、受信ACK信号の受信によってカウンタをクリアするようにするか、所定値となって内部割込を発生させたらカウンタがクリアされるものであればよい。また、上記の実施の形態では、遊技制御用マイクロコンピュータ560は、賞球準備中コマンドを受信したときも、定期的に賞球要求信号を送信するように構成していたが、そのような場合には賞球要求信号を送信しないように構成してもよい。
なお、シリアル通信回路の設定は、図25に示す処理で行われるが、シリアル通回路がマイクロコンピュータ560,370の内部機能として、例えばROMの所定領域(書き換え不能な領域)に記憶された設定情報にもとづいてレジスタに設定値を設定するような構成であってもよい。