以下、本発明に係る遊技機の一実施形態を、パチンコ遊技機を例にして、図1〜図16を参照して具体的に説明する。なお、以下の説明において、上下左右の方向を示す場合には、図示正面から見た場合の上下左右をいうものとする。
まず、図1及び図2を参照して本実施形態に係るパチンコ遊技機の外観構成を説明する。
図1に示すように、パチンコ遊技機1は、木製の外枠2の前面に矩形状の前面枠3を開閉可能に取り付け、その前面枠3の裏面に取り付けられている遊技盤収納フレーム(図示せず)内に遊技盤4が装着された構成からなる。遊技盤4は、図2に示す遊技領域40を前面に臨ませた状態で装着され、図1に示すようにこの遊技領域40の前側に透明ガラスを支持したガラス扉枠5が設けられている。なお、上記遊技領域40は、遊技盤4の面上に配設された球誘導レール6(図2参照)で囲まれた領域からなるものである。
一方、パチンコ遊技機1は、図1に示すように、ガラス扉枠5の下側に前面操作パネル7が配設され、その前面操作パネル7には上受け皿ユニット8が設けられ、この上受け皿ユニット8には、排出された遊技球を貯留する上受け皿9が一体形成されている。また、この前面操作パネル7には、球貸しボタン11及びプリペイドカード排出ボタン12(カード返却ボタン12)が設けられている。上受け皿9の上皿表面部分には、内蔵ランプ(図示せず)点灯時に遊技者が押下することにより演出効果を変化させることができる押しボタン式の演出ボタン装置13が設けられている。また、この上受け皿9には、当該上受け皿9に貯留された遊技球を下方に抜くための球抜きボタン14が設けられている。
一方、図1に示すように、前面操作パネル7の右端部側には、発射ユニットを動作させるための発射ハンドル15が設けられ、前面枠3の上部両側面側並びに発射ハンドル15の左隣接位置には、BGM(Background music)あるいは効果音を発するスピーカ16が設けられている。なお、上記前面枠3の周枠には、光の装飾により演出効果を現出するLEDランプ等の装飾ランプが配設されている。
他方、上記遊技盤4の遊技領域40には、図2に示すように、略中央部にLCD(Liquid Crystal Display)等からなる液晶表示装置41が配設されている。この液晶表示装置41は、表示エリアを左、中、右の3つのエリアに分割し、独立して数字やキャラクタ、文字(キャラクタの会話や歌詞テロップ等)あるいは図柄(装飾図柄)の変動表示が可能なものである。
一方、液晶表示装置41の真下には、特別図柄始動口42が配設され、その内部には入賞球を検出する特別図柄始動口スイッチ42a(図3参照)が設けられている。そして、この特別図柄始動口42の右側には、大入賞口43が配設され、その内部には入賞球を検出する大入賞口スイッチ43a(図3参照)が設けられている。
一方、上記液晶表示装置41の右上部にはゲートからなる普通図柄始動口44が配設され、その内部には、遊技球の通過を検出する普通図柄始動口スイッチ44a(図3参照)が設けられている。また、上記大入賞口43の右側には、一般入賞口45が配設され、さらに、特別図柄始動口42の左側には、複数の一般入賞口45(図示では、3つ)が夫々配設されている。この一般入賞口45の内部には、遊技球の通過を検出する一般入賞口スイッチ45a(図3参照)が設けられている。
他方、上記遊技盤4の遊技領域40の右下周縁部には、7セグメントを3桁に並べて構成される特別図柄表示装置46と、2個のLEDからなる普通図柄表示装置47が設けられている。そしてさらに、上記遊技盤4の遊技領域40には、図示はしないが複数の遊技釘が配設され、遊技球の落下方向変換部材としての風車48が配設されている。
次に、上記のような外観構成からなるパチンコ遊技機内に設けられる遊技の進行状況に応じて電子制御を行う制御装置を、図3〜図10を用いて説明する。この制御装置は、図3に示すように、遊技動作全般の制御を司る主制御基板60と、その主制御基板60からの演出制御コマンドDI_CMDに基づいて遊技球を払出す払出制御基板70と、画像と光と音についての制御を行うサブ制御基板80とで主に構成されている。なお、サブ制御基板80は、図3に示すように、演出制御基板90と、装飾ランプ基板100と、液晶制御基板120とで構成されている。
<主制御基板>
主制御基板60は、図4に示すように、主制御CPU600と、一連の遊技制御手順を記述した遊技プログラム等を格納した主制御ROM601と、作業領域やバッファメモリ等として機能する主制御RAM602とで主に構成された主制御ワンチップマイコンMMCを搭載している。この主制御ワンチップマイコンMMCには、さらに、クロック生成回路603が内蔵されており、このクロック生成回路603は、図示しない外部クロックを分周して、当該主制御ワンチップマイコンMMCの内部にて使用するクロックを生成する。
また、主制御ワンチップマイコンMMCには、リセットコントローラ604が内蔵されており、このリセットコントローラ604は、後述する電源基板130(図3参照)にて生成されるシステムリセット信号、後述するWDT(ウォッチドッグタイマ)606にて生成されるウォッチドッグタイマリセット信号等のリセット信号を制御する。
さらに、主制御ワンチップマイコンMMCには、割込みコントローラ605が内蔵されており、この割込みコントローラ605は、後述するCTC(Counter Timer Circuit)607にて生成されるタイマ割込み信号を制御する。
またさらに、主制御ワンチップマイコンMMCには、WDT(ウォッチドッグタイマ)606が内蔵されており、このWDT606は、ノイズ等によるプログラムの異常を検出し、ウォッチドッグタイマリセット信号を生成するものである。なお、このウォッチドッグタイマリセット信号は、上記リセットコントローラ604に入力され、主制御ワンチップマイコンMMCの内部をリセットする。
そして、主制御ワンチップマイコンMMCには、CTC(Counter Timer Circuit)607が内蔵されており、このCTC607は、所定時間が設定されると、所定時間毎にタイマ割込み信号を生成するものである。なお、このタイマ割込み信号は、上記割込みコントローラ605に出力される。
一方、主制御ワンチップマイコンMMCには、乱数回路608が内蔵されており、この乱数回路608は、特別図柄の乱数抽選に用いられるハードウェア乱数を生成する。
また、主制御ワンチップマイコンMMCには、シリアル通信回路609が内蔵されており、シリアル通信が可能となっている。このシリアル通信回路609には、図6(a)に示す、受信プリスケーラレジスタRXPREが内蔵されており、この受信プリスケーラレジスタRXPREは、図6(a)に示すように、16ビットからなり、最下位ビット(0ビット目)から12ビット目までは、受信ボーレートが設定可能な受信ボーレート設定レジスタRPRで構成され、13ビット目は、未使用で、14ビット目は、パリティの有無が設定可能なパリティ有無設定レジスタRPENで構成され、最上位ビット(15ビット)目は、奇数パリティか偶数パリティかを設定できるパリティ奇偶設定レジスタREVENで構成されている。
この受信ボーレート設定レジスタRPRは、初期値が0000hで読み書きでき、0000h〜1FFFhまで設定可能なレジスタで、受信ボーレートを設定できる。受信ボーレート(bps)は、内部クロック(クロック生成回路603にて生成されたクロック)周波数/(受信ボーレート設定レジスタRPR×32)で計算される。具体的には、例えば、内部クロック(クロック生成回路603にて生成されたクロック)周波数が20MHzで、受信ボーレート設定レジスタRPRに0209h(=521)が設定されたとすると、受信ボーレート(bps)は、20(MHz)/(521×32)で計算され、1,199.62(bps)となる。なお、受信ボーレート設定レジスタRPRに0000hが設定された場合は、受信ボーレート設定レジスタRPRに0001hが設定されたものとして計算される。
一方、パリティ有無設定レジスタRPENは、初期値が0で読み書きでき、0が設定されると、パリティ無しに設定され、1が設定されるとパリティ有りに設定される。また、パリティ奇偶設定レジスタREVENは、初期値が0で読み書きでき、0が設定されると偶数パリティに設定され、1が設定されると奇数パリティに設定される。
他方、シリアル通信回路609には、さらに、図6(b)に示す、受信バッファレジスタRXBUFが内蔵されており、この受信バッファレジスタRXBUFは、初期値が00hで読み出しのみ可能で、00h〜FFhまでのデータを格納することができる。
かくして、シリアル通信回路609は、送信されてくるデータの送信速度と同一となるように受信ボーレート設定レジスタRPRにデータが設定され、パリティ有無設定レジスタRPENに0が設定されると、図10(a)に示すデータを受信することができる。すなわち、シリアル通信回路609は、「L」レベルのスタートビット長,8ビット長のデータ,「H」レベルのストップビット長を1フレーム(タイミングT1区間参照)とした通信フォーマットからなるデータを受信することができる。そして、この8ビット長のデータが受信バッファレジスタRXBUFに格納されることとなる。
一方、シリアル通信回路609は、送信されてくるデータの送信速度と同一となるように受信ボーレート設定レジスタRPRにデータが設定され、パリティ有無設定レジスタRPENに1が設定されると、図10(b)に示すデータを受信することができる。すなわち、シリアル通信回路609は、「L」レベルのスタートビット長,8ビット長のデータ,パリティビット,「H」レベルのストップビット長を1フレーム(タイミングT2区間参照)とした通信フォーマットからなるデータを受信することができる。そして、この8ビット長のデータが受信バッファレジスタRXBUFに格納されることとなる。なお、送信側のパリティビットが偶数パリティに設定されていれば、パリティ奇偶設定レジスタREVENには0が設定され、奇数パリティに設定されていれば、パリティ奇偶設定レジスタREVENには1が設定されることとなる。
ところで、シリアル通信回路609には、さらに、図7(a)に示す、送信プリスケーラレジスタTXPREが内蔵されており、この送信プリスケーラレジスタTXPREは、図7(a)に示すように、16ビットからなり、最下位ビット(0ビット目)から12ビット目までは、送信ボーレートが設定可能な送信ボーレート設定レジスタTPRで構成され、13ビット目は、未使用で、14ビット目は、パリティの有無が設定可能なパリティ有無設定レジスタTPENで構成され、最上位ビット(15ビット)目は、奇数パリティか偶数パリティかを設定できるパリティ奇偶設定レジスタTEVENで構成されている。
この送信ボーレート設定レジスタTPRは、初期値が0000hで読み書きでき、0000h〜1FFFhまで設定可能なレジスタで、送信ボーレートを設定できる。送信ボーレート(bps)は、内部クロック(クロック生成回路603にて生成されたクロック)周波数/(送信ボーレート設定レジスタTPR×32)で計算され、受信ボーレート(bps)と同様に計算される。
一方、パリティ有無設定レジスタTPENは、初期値が0で読み書きでき、0が設定されると、パリティ無しに設定され、1が設定されるとパリティ有りに設定される。また、パリティ奇偶設定レジスタTEVENは、初期値が0で読み書きでき、0が設定されると偶数パリティに設定され、1が設定されると奇数パリティに設定される。
さらに、シリアル通信回路609には、図7(b)に示す、送信バッファレジスタTXBUFが内蔵されており、この送信バッファレジスタTXBUFは、初期値が00hで書込みのみ可能で、00h〜FFhまでのデータを格納することができる。
かくして、シリアル通信回路609は、送信ボーレート設定レジスタTPRに所定データが設定され、パリティ有無設定レジスタTPENに0が設定されると、図10(a)に示すデータを送信することができる。すなわち、シリアル通信回路609は、「L」レベルのスタートビット長,8ビット長のデータ,「H」レベルのストップビット長を1フレーム(タイミングT1区間参照)とした通信フォーマットからなるデータを送信することができる。なお、この8ビット長のデータは、送信バッファレジスタTXBUFに格納されたデータである。
一方、パリティ有無設定レジスタTPENに1が設定されると、シリアル通信回路609は、図10(b)に示すデータを送信することができる。すなわち、シリアル通信回路609は、「L」レベルのスタートビット長,8ビット長のデータ,パリティビット,「H」レベルのストップビット長を1フレーム(タイミングT2区間参照)とした通信フォーマットからなるデータを送信することができる。なお、この8ビット長のデータは、送信バッファレジスタTXBUFに格納されたデータで、パリティビットは、パリティ奇偶設定レジスタREVENに0が設定されていれば、偶数パリティで、パリティ奇偶設定レジスタREVENに1が設定されていれば、奇数パリティである。
かくして、上記のように構成される主制御基板60には、図3に示すように、払出モータMを制御して遊技球を払出す払出制御基板70が接続されている。そしてさらには、特別図柄始動口42への入賞を検出する特別図柄始動口スイッチ42aと、普通図柄始動口44の通過を検出する普通図柄始動口スイッチ44aと、大入賞口43への入賞を検出する大入賞口スイッチ43aと、一般入賞口45への入賞を検出する一般入賞口スイッチ45aとが接続されている。また、主制御基板60には、特別図柄表示装置46と、普通図柄表示装置47とが接続されている。
このように構成される主制御基板60は、特別図柄始動口スイッチ42a又は普通図柄始動口スイッチ44aからの信号を受信すると、上記乱数回路608(図4参照)にて生成されるハードウェア乱数、又は、ソフトウェア乱数を用いて遊技者に有利な特別遊技状態を発生させるか(いわゆる「当たり」)、あるいは、遊技者に有利な特別遊技状態を発生させないか(いわゆる「ハズレ」)の抽選を行い、その抽選結果である当否情報に応じて特別図柄の変動パターンや停止図柄あるいは普通図柄の表示内容を決定し、その決定した情報を特別図柄表示装置46又は普通図柄表示装置47に送信する。これにより、特別図柄表示装置46又は普通図柄表示装置47に抽選結果が表示されることとなる。そしてさらに、主制御基板60は、その決定した情報を含む演出制御コマンドDI_CMDを生成し、シリアル通信回路609(図4参照)を用いて演出制御基板90に送信する。
また、主制御基板60は、後述する電源基板130(図3参照)からの電源投入信号を受けたことを契機として、払出制御基板70にシリアル通信回路609(図4参照)を用いて、復帰コマンドRE_CMDを送信する。払出制御基板70は、この復帰コマンドRE_CMDを受信すると、主制御基板60に送信許可信号TP_SIGを送信する。これを受けて、主制御基板60は、大入賞口スイッチ43a、一般入賞口スイッチ45aからの信号を受信した際、遊技者に幾らの遊技球を払い出すかを決定し、その決定した情報を含む払出制御コマンドPAY_CMDを生成する。そして、シリアル通信回路609(図4参照)を用いて当該払出制御コマンドPAY_CMDを払出制御基板70に送信する。その一方、払出制御基板70は、復帰コマンドRE_CMDを受信しなかった場合、主制御基板60に送信不許可信号NTP_SIGを送信する。これを受けて、主制御基板60は、大入賞口スイッチ43a、一般入賞口スイッチ45aからの信号を受信したとしても、払出制御コマンドPAY_CMDを生成せず、エラーが発生したことを示す演出制御コマンドDI_CMDを生成し、シリアル通信回路609(図4参照)を用いて演出制御基板90に送信する。
しかして、主制御基板60は、当該主制御基板60から送信される復帰コマンドRE_CMDを払出制御基板70が受信したか否かを示す送信許可信号TP_SIG又は送信不許可信号NTP_SIGを払出制御基板70から送信され、その送信許可信号TP_SIGを受信するまで払出制御コマンドPAY_CMDを生成しないようにしている。このようにすれば、主制御基板60と払出制御基板70との通信が正常に行われているか否かを確認することができ、もって、遊技者への不利益を未然に防止することができる。なお、この具体的な処理内容については後述することとする。
<払出制御基板>
一方、払出制御基板70は、上記主制御基板60からの払出制御コマンドPAY_CMDを受信した場合、その受信した払出制御コマンドPAY_CMDに基づいて払出モータ信号を生成する。そして、その生成した払出モータ信号にて、払出モータMを制御し、遊技者に遊技球を払出す。そしてさらに、払出制御基板70は、遊技球の払出動作を示す賞球計数信号や払出動作の異常に係るステイタス信号を送信し、遊技者の操作に応答して遊技球を発射させる発射制御基板71の動作を開始又は停止させる発射制御信号を送信する処理を行う。
ここで、この払出制御基板70について図5を用いてより詳しく説明する。
払出制御基板70は、図5に示すように、払出制御CPU700と、一連の払出制御手順を記述した払出プログラム等を格納した払出制御ROM701と、作業領域やバッファメモリ等として機能する払出制御RAM702とで主に構成された払出制御ワンチップマイコンPMCを搭載している。この払出制御ワンチップマイコンPMCには、さらに、外部バスインターフェース703が内蔵されており、この外部バスインターフェース703は、アドレスバスやデータバスさらには各制御信号の方向制御を行う。
また、払出制御ワンチップマイコンPMCには、クロック回路704が内蔵されており、このクロック回路704は、図示しない外部クロックを分周して、当該払出制御ワンチップマイコンPMCの内部にて使用されるクロックを生成する。
さらに、払出制御ワンチップマイコンPMCには、リセットコントローラ705が内蔵されており、その内部にはWDT(ウォッチドッグタイマ)705aが内蔵されている。このWDT705aは、ノイズ等によるプログラムの異常を検出し、ウォッチドッグタイマリセット信号を生成するものである。そして、リセットコントローラ705は、後述する電源基板130(図3参照)にて生成されるシステムリセット信号、WDT(ウォッチドッグタイマ)705aにて生成されるウォッチドッグタイマリセット信号等のリセット信号を制御するものである。
一方、払出制御ワンチップマイコンPMCには、CTC(Counter Timer Circuit)706が内蔵されており、このCTC706は、所定時間が設定されると、所定時間毎にタイマ割込み信号を生成するものである。なお、このタイマ割込み信号は、後述する割込みコントローラ707に出力される。
また、払出制御ワンチップマイコンPMCには、割込みコントローラ707が内蔵されており、上記CTC706にて生成されるタイマ割込み信号並びに後述するシリアル通信回路708からの割込み信号を制御するものである。
一方、払出制御ワンチップマイコンPMCには、シリアル通信回路708が内蔵されており、シリアル通信が可能となっている。このシリアル通信回路708は、図8(a)に示すシリアル通信ボーレート設定レジスタSCBRが内蔵されており、このシリアル通信ボーレート設定レジスタSCBRは、初期値が000hで読み書きでき、000h〜FFFhまで設定可能なレジスタである。ボーレート(bps)は、内部クロック(クロック回路704にて生成されたクロック)周波数/(シリアル通信ボーレート設定レジスタSCBR×16)にて計算される。具体的には、例えば、内部クロック(クロック回路704にて生成されたクロック)周波数が15MHzで、シリアル通信ボーレート設定レジスタSCBRに0BCh(=188)が設定されたとすると、ボーレート(bps)は、15(MHz)/(188×16)=4986.7(bps)となる。なお、上記主制御基板60にて説明したボーレート設定は、受信ボーレートと送信ボーレートとを別々に設定できる例を示したが、このボーレートは、送受信共に共通である。なおまた、シリアル通信ボーレート設定レジスタSCBRに000hが設定された場合は、シリアル通信ボーレート設定レジスタSCBRに001hが設定されたものとして計算される。
さらに、シリアル通信回路708には、図8(b)に示すシリアル通信設定レジスタSCFMが内蔵されている。このシリアル通信設定レジスタSCFMは、図8(b)に示すように、8ビットからなり、最下位ビット(0ビット目)が、パリティの種類を設定できるパリティ種類設定レジスタPTPで構成され、1ビット目が、パリティの機能を使用するかしないかの設定ができるパリティ機能設定レジスタPENで構成され、2ビット目が、データ長を設定できるデータ長設定レジスタFMTで構成され、3ビット目が、動作モーを設定できる動作モード設定レジスタMODで構成され、4ビット目、5ビット目が未使用で、6ビット目が、受信機能の使用の有無を設定できる受信機能設定レジスタRENで構成され、最上位ビット(7ビット)目が、送信機能の使用の有無を設定できる送信機能設定レジスタTENで構成されている。
このパリティ種類設定レジスタPTPは、初期値が0で読み書きでき、0が設定されると偶数パリティに設定され、1が設定されると奇数パリティに設定される。また、パリティ機能設定レジスタPENは、初期値が1で読み書きでき、0が設定されるとパリティ未使用に設定され、1が設定されるとパリティ使用に設定される。
一方、データ長設定レジスタFMTは、初期値が1で読み書きでき、0が設定されると、「L」レベルのスタートビット長,8ビット長のデータ,「H」レベルのストップビット長を1フレーム(図10(a),(b)参照)とした通信フォーマットとなり、1が設定されると、「L」レベルのスタートビット長,8ビット長のデータ,2パルス分の「H」レベルのストップビット長を1フレーム(図10(c)のタイミングT3区間参照)とした通信フォーマットなる。なお、上記パリティ機能設定レジスタPENに0が設定されるとパリティ未使用に設定されるため、図10(a),(c)に示すように、通信フォーマットにパリティが付加されないが、上記パリティ機能設定レジスタPENに1が設定されるとパリティ使用に設定されるため、図10(b)に示すように、通信フォーマットにパリティが付加されることとなる。この際、パリティ種類設定レジスタPTPに0が設定される偶数パリティとなり、1が設定されると奇数パリティとなる。
また、動作モード設定レジスタMODは、初期値が0で読み書きでき、0が設定されると、ノーマルモードとなり、1が設定されるとFIFOモードとなる。すなわち、シリアル通信回路708に内蔵されている受信用レジスタ708a(図5参照)及び送信用レジスタ708b(図5参照)をFIFOとして使用するかしないかの設定ができるものである。それゆえ、動作モード設定レジスタMODに0が設定されると、受信用レジスタ708a及び送信用レジスタ708bがFIFOとして使用されず、1が設定されると、受信用レジスタ708a及び送信用レジスタ708bがFIFOとして使用されることとなる。
一方、受信機能設定レジスタRENは、初期値が0で読み書きでき、0が設定されると、受信機能を使用禁止に設定し、1が設定されると受信機能を使用可能に設定する。なお、受信機能設定レジスタRENに0が設定された瞬間に、受信機能が使用禁止に設定される。
また、送信機能設定レジスタTENは、初期値が0で読み書きでき、0が設定されると、送信機能を使用禁止に設定し、1が設定されると送信機能を使用可能に設定する。なお、送信機能設定レジスタTENに0が設定された際、送信途中のデータがある場合は、送信完了後に送信禁止となる。
他方、シリアル通信回路708には、図9(a)に示すシリアル通信設定ステータスレジスタSCSTが内蔵されている。このシリアル通信設定ステータスレジスタSCSTは、図9(a)に示すように、読み出しのみ可能で、8ビットからなり、最下位ビット(0ビット目)が、パリティエラーの検出有無を示すパリティエラーフラグレジスタPEで構成され、1ビット目が、フレーミングエラーの検出有無を示すフレーミングエラーフラグレジスタFEで構成され、2ビット目が、ブレークコードの検出有無を示すブレークコード検出フラグレジスタBRKで構成され、3ビット目が、オーバーランの検出有無を示すオーバーラン検出フラグレジスタOREで構成され、4ビット目が、ノイズの検出有無を示すノイズ検出フラグレジスタNFで構成され、5ビット目が、上記受信用レジスタ708a(図5参照)にデータが格納されているか否かを示す受信データフラグレジスタRDRFで構成され、6ビット目が、上記送信用レジスタ708b(図5参照)に格納されているデータをシリアル送信する際に使用されるシリアル通信回路708に内蔵されている送信用シフトレジスタ708d(図5参照)に当該データが転送されたか否かを示す送信データエンプティフラグレジスタTDBEで構成され、最上位ビット(7ット目)が、データを送信中か否かを示す送信完了フラグレジスタTCで構成されている。
このパリティエラーフラグレジスタPEは、シリアル通信回路708にてデータを受信した際、そのデータに付加されているパリティデータ(図10(b)参照)が例えば偶数パリティであれば、当該シリアル通信回路708が8ビット長データの「1」をカウントし、偶数、すなわち、パリティビットが0であれば、パリティエラーでないため、当該パリティエラーフラグレジスタPEに「0」が設定されることとなる。また、奇数パリティであれば、当該シリアル通信回路708が8ビット長データの「1」をカウントし、奇数、すなわち、パリティビットが1であれば、パリティエラーでないため、当該パリティエラーフラグレジスタPEに「0」が設定されることとなる。一方、偶数パリティに設定されており、当該シリアル通信回路708が8ビット長データの「1」をカウントした際、パリティビットが1であれば、パリティエラーであるため当該パリティエラーフラグレジスタPEに「1」が設定されることとなる。また、奇数パリティに設定されており、当該シリアル通信回路708が8ビット長データの「1」をカウントした際、パリティビットが0であれば、パリティエラーであるため当該パリティエラーフラグレジスタPEに「1」が設定されることとなる。なお、パリティエラーフラグレジスタPEに「1」が設定された際、エラーが発生したとして、シリアル通信回路708は、割込みコントローラ707(図5参照)に割込み要求信号を出力する。
一方、フレーミングエラーフラグレジスタFEは、シリアル通信回路708にてデータを受信した際、そのデータのストップビットが「L」であれば、フレーミングエラーが発生したとして当該シリアル通信回路708にて「1」が設定され、ストップビットが「H」であれば、フレーミングエラーが発生していないとして「0」が設定されることとなる。なお、フレーミングエラーフラグレジスタFEに「1」が設定された際、エラーが発生したとして、シリアル通信回路708は、割込みコントローラ707(図5参照)に割込み要求信号を出力する。
また、ブレークコード検出フラグレジスタBRKは、シリアル通信回路708にてデータを受信した際、そのデータが1フレーム(図10(a)のタイミングT1区間、(b)のタイミングT2区間、(c)のタイミングT3区間参照)以上「0」であれば、ブレークコードを検出したとして当該シリアル通信回路708にて「1」が設定され、1フレーム以上「0」でなければ、ブレークコード未検出として「0」が設定される。なお、ブレークコード検出フラグレジスタBRKに「1」が設定された際、エラーが発生したとして、シリアル通信回路708は、割込みコントローラ707(図5参照)に割込み要求信号を出力する。
一方、オーバーラン検出フラグレジスタOREは、シリアル通信回路708にてデータを受信した際、前回受信したデータ処理が終わっていなかった場合、オーバーランが発生したとして当該シリアル通信回路708にて「1」が設定され、そうでなければ、「0」が設定される。なお、オーバーラン検出フラグレジスタOREに「1」が設定された際、エラーが発生したとして、シリアル通信回路708は、割込みコントローラ707(図5参照)に割込み要求信号を出力する。
また、ノイズ検出フラグレジスタNFは、シリアル通信回路708にてデータを受信した際、ノイズを検出すると、当該シリアル通信回路708にて「1」が設定され、ノイズが検出されなければ、「0」が設定される。
一方、受信データフラグレジスタRDRFは、シリアル通信回路708にてデータを受信した際使用されるシリアル通信回路708に内蔵されている受信用シフトレジスタ708c(図5参照)から上記受信用レジスタ708aにデータが転送された際、「1」が設定され、それ以外の場合に、「0」が設定される。なお、受信データフラグレジスタRDRFに「1」が設定された際、シリアル通信回路708は、割込みコントローラ707(図5参照)に割込み要求信号を出力する。
また、送信データエンプティフラグレジスタTDBEは、送信用レジスタ708b(図5参照)に格納されているデータをシリアル送信する際に使用されるシリアル通信回路708に内蔵されている送信用シフトレジスタ708d(図5参照)に当該データが転送された際、「1」が設定され、それ以外の場合に、「0」が設定される。なお、送信データエンプティフラグレジスタTDBEに「1」が設定された際、シリアル通信回路708は、割込みコントローラ707(図5参照)に割込み要求信号を送信する。
一方、送信完了フラグレジスタTCはシリアル通信回路708よりデータが送信中の場合は、「0」が設定され、データ送信が完了すると「1」が設定される。
他方、シリアル通信回路708には、さらに、図9(b)に示すシリアル通信データレジスタSCDTが内蔵されている。このシリアル通信データレジスタSCDTは、初期値が00hで読み書き可能で、00h〜FFhまでのデータを格納することができる。このシリアル通信データレジスタSCDTは、読み出された時、受信データとして機能し、書き込まれた時、送信データとして機能する。
<演出制御基板>
演出制御基板90は、図3に示すように、上記主制御基板60からの演出制御コマンドDI_CMDを受けて各種演出を実行制御する演出制御CPU900と、演出制御手順を記述した制御プログラム等が格納されている演出制御ROM901と、作業領域やバッファメモリ等として機能する演出制御RAM902とで構成されている。そしてさらに、演出制御基板90は、所望のBGMや効果音を生成する音LSI903と、BGMや効果音等の音データ等が予め格納されている音ROM904とが搭載されている。
このように構成される演出制御基板90には、ランプ演出効果を現出するLEDランプ等の装飾ランプが搭載されている装飾ランプ基板100が接続され、さらに、内蔵されているランプ(図示せず)点灯時に遊技者が押下することにより演出効果を変化させることができる押しボタン式の演出ボタン装置13が接続され、BGMや効果音等を発するスピーカ16が接続されている。またさらに、演出制御基板90には、液晶表示装置41を制御する液晶制御基板120が接続されている。
かくして、このように構成される演出制御基板90は、主制御基板60より送信される大当たり抽選結果(大当たりかハズレの別)に基づく特別図柄変動パターン、現在の遊技状態、作動保留球数、抽選結果に基づき停止させる装飾図柄等に必要となる基本情報を含んだ演出制御コマンドDI_CMDを演出制御CPU900にて受信する。そして、演出制御CPU900は、受信した演出制御コマンドDI_CMDに対応した演出パターンを、演出制御ROM901内に予め格納しておいた多数の演出パターンの中から抽選により決定し、その決定した演出パターンを実行指示する制御信号を演出制御RAM902内に一時的に格納する。
演出制御CPU900は、演出制御RAM902に格納しておいた演出パターンを実行指示する制御信号のうち、音に関する制御信号を音LSI903に送信する。これを受けて音LSI903は、当該制御信号に対応する音データを音ROM904より読み出し、スピーカ16に出力する。これにより、スピーカ16より上記決定された演出パターンに対応したBGMや効果音が発せられることとなる。
また演出制御CPU900は、演出制御RAM902に格納しておいた演出パターンを実行指示する制御信号のうち、光に関する制御信号を装飾ランプ基板100に送信する。これにより、装飾ランプ基板100が、ランプ演出効果を現出するLEDランプ等の装飾ランプを点灯又は消灯する制御を行うため、上記決定された演出パターンに対応したランプ演出が実行されることとなる。
そして演出制御CPU900は、演出制御RAM902に格納しておいた演出パターンを実行指示する制御信号のうち、画像に関する液晶制御コマンドLC_CMDを液晶制御基板120に送信する。これにより、液晶制御基板120が、当該液晶制御コマンドLC_CMDに基づく画像を表示させるように液晶表示装置41を制御することにより、上記決定された演出パターンに対応した画像が液晶表示装置41に表示されることとなる。なお、液晶制御基板120には演出内容に沿った画像を表示するための種々の画像データが記憶されており、さらに、演出出力全般の制御を担うVDP(Video Display Processor)が搭載されている。
<電源基板>
ところで、上記説明した各基板への電源供給は、電源基板130(図3参照)より供給されており、この電源基板130は、図3に示すように、電圧生成部1300と、電圧監視部1301と、システムリセット生成部1302とを含んで構成されている。この電圧生成部1300は、遊技店に設置された図示しない変圧トランスから供給される外部電源である交流電圧AC24Vを受けて複数種類の直流電圧を生成するものである。そして、この生成された直流電圧が各基板へ供給されることとなる。なお、主制御基板60及び払出制御基板70には、後述するバックアップ処理を行うにあたり、バックアップ電源が供給されている。
一方、電圧監視部1301は、上記交流電圧AC24Vの電圧を監視するもので、この電圧が遮断されたり、停電が発生したりして電圧異常を検出した場合に電圧異常信号ALARMを主制御基板60及び払出制御基板70に出力するものである。なお、この電圧異常信号ALARMは、電圧異常時には「L」レベルの信号を出力し、正常時には「H」レベルの信号を出力する。
また、システムリセット生成部1302は、電源投入時のシステムリセット信号を生成するもので、その生成したシステムリセット信号を、主制御基板60,払出制御基板70及びサブ制御基板80に出力するものである。なお、図示では、電源供給ルート、システムリセット信号の出力ルートは、省略している。
ここで、本発明の特徴とするところは、主制御基板60と払出制御基板70との通信に関する部分であるため、この通信に関する部分を図11〜図16を参照して具体的に説明する。
<主制御基板処理>
まず、主制御基板60の主制御ROM601内に格納されているプログラムの概要を図11及び図12を参照して説明する。
<主制御基板:メイン処理>
まず、パチンコ遊技機1に電源が投入されると、電源基板130(電圧生成部1300)(図3参照)から各制御基板に電源が投入された旨の電源投入信号が送られる。これを受けて、主制御CPU600(図3参照)は、図11に示す主制御メイン処理を行う。主制御CPU600は、まず、最初に自らを割込み禁止状態に設定すると共に(ステップS1)、当該主制御CPU600内のレジスタ値等の初期設定を行う(ステップS2)。この際、主制御CPU600は、受信ボーレート設定レジスタRPR(図6(a)参照)にデータを設定し、受信ボーレート(bps)を設定すると共に、パリティ有無設定レジスタRPEN(図6(a)参照)にデータを設定し、パリティ有りか無しかの設定を行い、パリティ有りに設定した場合は、パリティ奇偶設定レジスタREVEN(図6(a)参照)にデータを設定し、偶数パリティか奇数パリティかの設定を行う。また、送信ボーレート設定レジスタTPR(図7(a)参照)にデータを設定し、送信ボーレート(bps)を設定すると共に、パリティ有無設定レジスタTPEN(図7(a)参照)にデータを設定し、パリティ有りか無しかの設定を行い、パリティ有りに設定した場合は、パリティ奇偶設定レジスタTEVEN(図7(a)参照)にデータを設定し、偶数パリティか奇数パリティかの設定を行う。
続いて、主制御CPU600は、サブ制御基板80の起動待ち時間をセットし(ステップS3)、セットした起動待ち時間を1減算し(ステップS4)、そのセットした起動待ち時間が0になるまでステップS4の処理を繰り返す(ステップS5:≠0)。
セットした起動待ち時間が0になると(ステップS5:=0)、主制御CPU600は、電源基板130(電圧監視部1301)(図3参照)より送信されてくる電圧異常信号ALARMを2回取得する(ステップS6)。そして、その2回取得した電圧異常信号ALARMのレベルが一致するか否かを確認し(ステップS7)、一致していなければ(ステップS7:NO)、ステップS6の処理に戻り、一致していれば(ステップS7:YES)、その電圧異常信号ALARMを図示しない内部レジスタ内に格納し、その電圧異常信号ALARMのレベルを確認する(ステップS8)。電圧異常信号ALARMのレベルが「L」レベルであれば(ステップS8:YES)、ステップS6の処理に戻り、電圧異常信号ALARMのレベルが「H」レベルであれば(ステップS8:NO)、ステップS9の処理に進む。すなわち、主制御CPU600は、電圧異常信号ALARMが正常レベル(すなわち「H」レベル)に変化するまで同一の処理を繰り返す(ステップS6〜S8)。
次いで、主制御CPU600は、主制御RAM602(図4参照)へのデータ書込みを許可する(ステップS9)。このように、電圧異常信号ALARMの正常レベル(正常値)を検出するまで主制御RAM602へのデータ書き込みを禁止することにより、電源基板130(図3参照)に供給される外部電源(交流電圧AC24V)が安定して供給される前に、不安定な信号が主制御RAM602にアクセスし、主制御RAM602に記憶されているデータを書き換えてしまうという事態を防止することができる。
次いで、主制御CPU600は、演出制御基板90に液晶表示装置41に待機画面を表示させるような演出制御コマンドDI_CMDを送信する(ステップS10)。
次いで、主制御CPU600は、払出制御基板70(図3参照)から送信されてくる電源投入信号を確認し(ステップS11)、その電源投入信号がONであれば(ステップS11:YES)、ステップS12の処理に進み、電源投入信号がOFFであれば(ステップS11:NO)、電源投入信号がONになるまでステップS11の処理を繰り返す。すなわち、払出制御基板70が起動するまで待機する。
次いで、主制御CPU600は、主制御バックアップフラグMBFLの内容を判定する(ステップS12)。なお、この主制御バックアップフラグMBFLとは、図12に示す電圧監視処理の動作が実行されたか否かを示すデータである。
この主制御バックアップフラグMBFLがOFF状態(ステップS12:OFF)であれば、後述する図12に示す電圧監視処理の動作が実行されていないこととなり、主制御CPU600は、主制御RAM602内の全領域を全てクリアする処理を行う。そしてさらに、主制御CPU600は、復帰コマンドRE_CMDを、シリアル通信回路609を用いて払出制御基板70にシリアル送信する(ステップS16)。
一方、主制御バックアップフラグMBFLがON状態(ステップS12:ON)であれば、後述する図12に示す電圧監視処理の動作が実行されていることとなるため、主制御CPU600は、チェックサム値を算出するためのチェックサム演算を行う(ステップS13)。なお、チェックサム演算とは、主制御RAM602の作業領域を対象とする8ビット加算演算である。
そして、主制御CPU600は、上記チェックサム値が算出されたら、この演算結果を主制御RAM602内のSUM番地の記憶値と比較する処理を行う(ステップS14)。なお、記憶された演算結果は、主制御RAM602内に記憶されている他のデータと共に、電源基板130(電圧生成部1300)にて生成されるバックアップ電源によって維持されている。
このSUM番地の記憶値と上記ステップS13の処理にて算出されたチェックサム値が不一致(ステップS14:NO)であれば、主制御CPU600は、主制御RAM602内の全領域を全てクリアする処理を行う。そしてさらに、主制御CPU600は、復帰コマンドRE_CMDを、シリアル通信回路609を用いて払出制御基板70にシリアル送信する(ステップS16)。
一方、チェックサム値が一致(ステップS14:YES)していれば、主制御CPU600は、主制御RAM602内に記憶されているデータに基づいて電源遮断時の遊技動作に復帰させる処理を行う。そしてさらに、主制御CPU600は、復帰コマンドRE_CMDを、シリアル通信回路609を用いて払出制御基板70にシリアル送信する(ステップS15)。
次いで、主制御CPU600は、ステップS15又はステップS16の処理後、4ms毎に定期的にタイマ割込みがかかるようにCTC607(図4参照)に所定時間を設定する(ステップS17)。
次いで、主制御CPU600は、自身への割込みを禁止状態にセットした状態(ステップS18)で、各種の乱数カウンタの更新処理を行う(ステップS19)。この各種乱数更新処理には、普通図柄の当否抽選に使用する普通図柄当り判定用乱数の初期値変更に使用する普通図柄当り判定用初期値乱数の更新や、特別図柄変動パターンコマンドを決定するための抽選に使用する変動パターン用乱数値の更新等が含まれる。
そしてその後、主制御CPU600は、割込み許可状態に戻して(ステップS20)、ステップS18に戻る処理を行い。ステップS18〜ステップS20の処理を繰り返す。
<主制御基板:タイマ割込み処理>
続いて、図12を参照して、上述したメイン処理を中断させて、4ms毎に開始されるタイマ割込みプログラムについて説明する。このタイマ割込みが生じると、主制御CPU600内のレジスタ群の内容を主制御RAM602のスタック領域に退避させる退避処理を実行し(ステップS50)、その後電圧監視処理を実行する(ステップS51)。この電圧監視処理は、電源基板130(電圧監視部1301)から出力される電圧異常信号ALARMのレベルを判定し、電圧異常信号ALARMが「L」レベル(異常レベル)であれば、主制御RAM602(図4参照)内に記憶されているデータのバックアップ処理、すなわち、当該データのチェックサム値を算出し、その算出したチェックサム値をバックアップデータとして主制御RAM602に保存する処理を行う。なお、バックアップ処理が実行された場合は、主制御バックアップフラグMBFLがONにセットされ、バックアップ処理が実行されなかった場合は、主制御バックアップフラグMBFLがOFFにセットされる。
次いで、主制御CPU600は、上記電圧監視処理(ステップS51)が終了すると、各遊技動作の時間を管理しているタイマのタイマ減算処理を行う(ステップS52)。ここで減算されたタイマは、大入賞口43(図2参照)の開放時間、普通図柄の変動時間、特別図柄の変動時間等の遊技演出時間、不正情報タイマ等を管理するために使用されるものである。
続いて、主制御CPU600には、特別図柄始動口スイッチ42a(図3参照)と、普通図柄始動口スイッチ44a(図3参照)と、一般入賞口スイッチ45a(図3参照)と、大入賞口スイッチ43a(図3参照)を含む各種スイッチ類のON/OFF信号が入力され、主制御RAM602の作業領域にON/OFF信号レベルや、その立ち上がり状態が記憶される(ステップS53)。なお、このスイッチ入力処理は、不正入賞があった場合に、立ち上がり状態を無効(入賞無効)にする処理も行い、賞球を払出すために上記大入賞口スイッチ43a,一般入賞口スイッチ45aに何個の遊技球が入賞したのかのカウントも行っている。
その後、主制御CPU600は、エラー管理処理を行う(ステップS54)。このエラー管理処理にて、後述するステップS55にて払出制御基板70より送信不許可信号NTP_SIGを受信していた場合、ONにセットされる払出エラーフラグPERR_FLGを確認し、ONにセットされていれば、エラー表示する演出制御コマンドDI_CMDを生成し、演出制御基板90に送信する。これにより、エラー内容が液晶表示装置41(図2参照)等に表示されることとなる。
次いで、主制御CPU600は、賞球管理処理を実行する(ステップS55)。この賞球管理処理は、払出制御基板70(図3参照)に払出し動作を行わせるための払出制御コマンドPAY_CMDを、シリアル通信回路609を用いてシリアル送信するものである。しかしながら、主制御CPU600は、払出制御基板70から送信されてくる送信許可信号TP_SIGを受信するまで、払出制御コマンドPAY_CMDを生成しない。そして、送信不許可信号NTP_SIGを受信した場合は、払出エラーフラグPERR_FLGをONにセットする。なお、この払出エラーフラグPERR_FLGがステップS54にて使用される。
次いで、主制御CPU600は、各変動表示ゲームに係る乱数を更新する乱数管理処理を実行する(ステップS56)。この乱数管理処理は、当否抽選に使用する普通図柄当り判定用乱数を更新する処理や、特別図柄の種類を決める特別図柄用乱数を更新する処理等を実行するものである。
次いで、主制御CPU600は、普通図柄処理を実行する(ステップS57)。この普通図柄処理は、普通図柄の当否抽選を実行し、その抽選結果に基づいて普通図柄の変動パターンや普通図柄の停止表示状態を決定したりするものである。
次いで、主制御CPU600は、特別図柄処理を実行する(ステップS58)。この特別図柄処理では、特別図柄の当否抽選を実行し、その抽選の結果に基づいて特別図柄の変動パターンや特別図柄の停止表示態様(停止特別図柄)を決定する。
次いで、主制御CPU600は、LED管理処理を実行する(ステップS59)。このLED管理処理は、処理の進行状態に応じて、特別図柄表示装置46や普通図柄表示装置47への出力データを生成したり、当該データに基づく制御信号を出力したりする処理である。
次いで、主制御CPU600は、遊技状態に応じて、大入賞口43(図2参照)等の開閉動作を実現するソレノイドの駆動処理を実行する(ステップS60)。
次いで、主制御CPU600は、割込み許可状態に戻し(ステップS61)、主制御RAM602のスタック領域に退避させておいたレジスタの内容を復帰させタイマ割込みを終える(ステップS62)。これにより、割込み処理ルーチンからメイン処理(図11参照)に戻ることとなる。
<払出制御基板処理>
次に、払出制御基板70の払出制御ROM701内に格納されているプログラムの概要を図13〜図15を参照して説明する。
<払出制御基板:メイン処理>
パチンコ遊技機1に電源が投入されると、電源基板130(電圧生成部1300)(図3参照)から各制御基板に電源が投入された旨の電源投入信号が送られる。これを受けて、払出制御CPU700(図5参照)は、図13に示す払出制御メイン処理を行う。払出制御CPU700は、まず、最初に自らを割込み禁止状態に設定すると共に(ステップS100)、当該払出制御CPU700内のレジスタ値等の初期設定を行う(ステップS101)。
次いで、払出制御CPU700は、電源基板130(電圧監視部1301)(図3参照)より送信されてくる電圧異常信号ALARMを2回取得する(ステップS102)。そして、その2回取得した電圧異常信号ALARMのレベルが一致するか否かを確認し(ステップS103)、一致していなければ(ステップS103:NO)、ステップS102の処理に戻り、一致していれば(ステップS103:YES)、その電圧異常信号ALARMを図示しない内部レジスタ内に格納し、その電圧異常信号ALARMのレベルを確認する(ステップS104)。電圧異常信号ALARMのレベルが「L」レベルであれば(ステップS104:YES)、ステップS102の処理に戻り、電圧異常信号ALARMのレベルが「H」レベルであれば(ステップS104:NO)、ステップS105の処理に進む。すなわち、払出制御CPU700は、電圧異常信号ALARMが正常レベル(すなわち「H」レベル)に変化するまで同一の処理を繰り返す(ステップS102〜S104)。
次いで、払出制御CPU700は、払出制御RAM702(図5参照)へのデータ書込みを許可する(ステップS105)。
次いで、払出制御CPU700は、払出制御バックアップフラグPBFLの内容を判定する(ステップS106)。なお、この払出制御バックアップフラグPBFLとは、図14に示す電圧監視処理の動作が実行されたか否かを示すデータである。
この払出制御バックアップフラグPBFLがOFF状態(ステップS106:OFF)であれば、後述する図14に示す電圧監視処理の動作が実行されていないこととなり、払出制御CPU700は、払出制御RAM702内の全領域を全てクリアする処理を行う。そしてさらに、払出制御CPU700は、初期動作が完了したことを示す払出初期動作フラグPAIO_FLGをONにセットする(ステップS110)。
一方、払出制御バックアップフラグPBFLがON状態(ステップS106:ON)であれば、後述する図14に示す電圧監視処理の動作が実行されていることとなるため、払出制御CPU700は、チェックサム値を算出するためのチェックサム演算を行う(ステップS107)。なお、チェックサム演算とは、払出制御RAM702の作業領域を対象とする8ビット加算演算である。
そして、払出制御CPU700は、上記チェックサム値が算出されたら、この演算結果を払出制御RAM702内のSUM番地の記憶値と比較する処理を行う(ステップS108)。なお、記憶された演算結果は、払出制御RAM702内に記憶されている他のデータと共に、電源基板130(電圧生成部1300)にて生成されるバックアップ電源によって維持されている。
このSUM番地の記憶値と上記ステップS107の処理にて算出されたチェックサム値が不一致(ステップS108:NO)であれば、払出制御CPU700は、払出制御RAM702内の全領域を全てクリアする処理を行う。そしてさらに、払出制御CPU700は、初期動作が完了したことを示す払出初期動作フラグPAIO_FLGをONにセットする(ステップS110)。
一方、チェックサム値が一致(ステップS108:YES)していれば、払出制御CPU700は、払出制御RAM702内に記憶されているデータに基づいて電源遮断時の遊技動作(未払い賞球の払出動作等)に復帰させる処理を行う。そしてさらに、払出制御CPU700は、払出制御バックアップフラグPBFLをOFFにセットし、払出初期動作フラグPAIO_FLGをONにセットする(ステップS109)。
次いで、払出制御CPU700は、ステップS109又はステップS110の処理後、1.4ms毎に定期的にタイマ割込みがかかるようにCTC706(図5参照)に所定時間を設定する(ステップS111)。なお、タイマ割込みを1.4msに設定する理由についは後述することとする。
次いで、払出制御CPU700は、シリアル通信設定を行う(ステップS112)。すなわち、払出制御CPU700は、まず、シリアル通信ボーレート設定レジスタSCBRに所定値を設定し、ボーレート(bps)の設定を行う。具体的には、シリアル通信ボーレート設定レジスタSCBRに0BCh(=188)を設定すると、内部クロック(クロック回路704にて生成されたクロック)周波数が15MHzであれば、ボーレート(bps)は、15(MHz)/(188×16)=4986.7(bps)となる。なお、この際、主制御基板60側のボーレート(bps)も同じ4986.7(bps)に設定されている。
そしてさらに、払出制御CPU700は、パリティ機能設定レジスタPENに0を設定してパリティ未使用に設定し、データ長設定レジスタFMT(図8(b)参照)に0を設定して「L」レベルのスタートビット長,8ビット長のデータ,「H」レベルのストップビット長を1フレームとした通信フォーマットに設定し、動作モード設定レジスタMOD(図8(b)参照)に0を設定してノーマルモードに設定し、受信機能設定レジスタREN(図8(b)参照)に1を設定して、受信機能を使用可能に設定し、送信機能設定レジスタTEN(図8(b)参照)に1を設定して、送信機能を使用可能に設定する。
上記のような処理を終えた後、払出制御CPU700は、割込み許可状態に戻し(ステップS113)、無限ループ処理を繰り返す。
<払出制御基板:タイマ割込み処理>
続いて、図14を参照して、上述したメイン処理を中断させて、1.4ms毎に開始されるタイマ割込みプログラムについて説明する。このタイマ割込みが生じると、払出制御CPU700内のレジスタ群の内容を払出制御RAM702(図5参照)のスタック領域に退避させる退避処理を実行する(ステップS150)。
次いで、払出制御CPU700は、電圧監視処理を実行する(ステップS151)。この電圧監視処理は、電源基板130(電圧監視部1301)から出力される電圧異常信号ALARMのレベルを判定し、電圧異常信号ALARMが「L」レベル(異常レベル)であれば、払出制御RAM702内に記憶されているデータのバックアップ処理、すなわち、当該データのチェックサム値を算出し、その算出したチェックサム値をバックアップデータとして払出制御RAM702に保存する処理を行う。なお、バックアップ処理が実行された場合は、払出制御バックアップフラグPBFLがONにセットされる。
次いで、払出制御CPU700は、データ入力処理を行う(ステップS152)。このデータ入力処理は、主として、払出モータM(図3参照)の回転によって、遊技球が実際に払出されたか否かを確認する。
次いで、払出制御CPU700は、シリアルデータ入力処理を行う(ステップS153)。このシリアルデータ入力処理について、図15を参照して具体的に説明する。
<払出制御基板:シリアルデータ入力処理>
払出制御CPU700は、払出制御RAM702(図5参照)内に格納されているシリアル受信フラグSR_FLGを取得し(ステップS200)、シリアル受信フラグSR_FLGの設定内容を確認する(ステップS201)。
シリアル受信フラグSR_FLGにA5Hが設定されていた場合(ステップS201:YES)、払出制御CPU700は、何らかの異常が発生したと判断し、シリアルデータ入力処理を終える。
一方、シリアル受信フラグSR_FLGにA5Hが設定されていなければ(ステップS201:NO)、払出制御CPU700は、受信データフラグレジスタRDRF(図9(a)参照)を読み込み、「0」であれば、受信データがないと判断し(ステップS202:無)、シリアルデータ入力処理を終える。
一方、受信データフラグレジスタRDRF(図9(a)参照)を読み出し、「1」であれば、受信データがあると判断し(ステップS202:有)、ステップ203へ進む。
次いで、払出制御CPU700は、パリティエラーフラグレジスタPE(図9(a)参照)、フレーミングエラーフラグレジスタFE(図9(a)参照)、ブレークコード検出フラグレジスタBRK(図9(a)参照)、オーバーラン検出フラグレジスタORE(図9(a)参照)を読み出す(ステップS203)。そして、すべて「0」であれば、シリアル通信回路708(図5参照)とシリアル通信回路609(図4参照)との間で通信エラーが生じていないと判断し(ステップS203:NO)、シリアル通信データレジスタSCDT(図9(b)参照)に格納されているデータを読み出し、その値を取得する(ステップS204)。
一方、いずれかが「0」でなければ、シリアル通信回路708(図5参照)とシリアル通信回路609(図4参照)との間で通信エラーが生じていると判断し(ステップS203:YES)、シリアル受信エラーカウンタSE_CNTをインクリメント(+1)する(ステップS205)。そして、このシリアル受信エラーカウンタSE_CNTの値が2以上であれば(ステップS206:YES)、シリアル受信フラグSR_FLGにA5Hを設定し(ステップS207)、シリアルデータ入力処理を終える。また、シリアル受信エラーカウンタSE_CNTの値が2以上でなければ(ステップS206:NO)、シリアルデータ入力処理を終える。
他方、上記ステップS204にて、シリアル通信データレジスタSCDT(図9(b)参照)に格納されているデータを読み出しその値を取得した後、シリアル受信フラグSR_FLGを確認する(ステップS208)。シリアル受信フラグSR_FLGに5AHが設定されていなければ(ステップS208:NO)、復帰コマンドRE_CMDを受信したか否かを確認する(ステップS209)。具体的には、上記ステップS204にて取得した値を確認し、A5Hでなければ、復帰コマンドRE_CMDを受信していないと判断し(ステップS209:NO)、シリアル受信フラグSR_FLGにA5Hを設定し(ステップS207)、シリアルデータ入力処理を終える。
一方、A5Hであれば、復帰コマンドRE_CMDを受信したと判断し(ステップS209:YES)、シリアル受信フラグSR_FLGに5AHを設定し(ステップS210)、シリアルデータ入力処理を終える。
一方、シリアル受信フラグSR_FLGに5AHが設定されていれば(ステップS208:YES)、シリアル通信回路708(図5参照)とシリアル通信回路609(図4参照)との間で正常な通信が行われていると判断し、ステップS204にて取得した値を払出制御RAM702内に格納されているコマンド格納バッファレジスタへ書き込むためのコマンドライトポインタを取得する(ステップS211)。
次いで、払出制御CPU700は、コマンド格納バッファレジスタのアドレス番地と上記コマンドライトポインタを元に、上記ステップS204にて取得した値を書き込むためのアドレス番地を特定し、その番地に、当該取得した値を書き込む(ステップS212)。
次いで、払出制御CPU700は、コマンドライトポインタを更新し(ステップS213)、シリアルデータ入力処理を終える。
<払出制御基板:タイマ割込み処理>
かくして、上記ステップS153の処理を終えた後、払出制御CPU700は、各種タイマの減算処理を行う(ステップS154)。
次いで、払出制御CPU700は、主制御基板60よりシリアル通信回路609(図4参照)を用いて送信されてくる払出制御コマンドPAY_CMDの解析処理を実行する(ステップS155)。具体的には、上記ステップS212にてコマンド格納バッファレジスタに格納された値を取得し、賞球数指定コマンドか否かを確認する。賞球数指定コマンドであった場合には、そのコマンドによって特定される賞球数を払出制御RAM702に格納されている全賞球数カウンタAAC_CNTに加算する。
次いで、払出制御CPU700は、図示しない球貸し機とのカード通信処理を行い(ステップS156)、図示しない球貸し機で清算される球貸し処理を行う(ステップS157)。
次いで、払出制御CPU700は、払出制御RAM702に格納されている全賞球数カウンタAAC_CNTを読み出し、そのカウンタ値に基づいて払出処理を行う賞球処理を行う(ステップS158)。すなわち、この賞球処理においては、復帰コマンドRE_CMDを受信するか否かに係らず、全賞球数カウンタAAC_CNTのカウント値に基づいて払出処理が行われるため、電源投入を契機として、電源遮断時に払出されていなかった未払い賞球の払出が行われることとなる。これにより、遊技者への不利益を低減させることができる。なお、実際の遊技球の払出は、後述するデータ出力処理(ステップS162)にて払出モータM(図3参照)を動作させた場合に生じる。
ところで、この賞球処理は、上述したように、主制御基板60よりシリアル通信回路609(図4参照)を用いて送信されてくる払出制御コマンドPAY_CMDに基づいて実行されるものであるが、シリアル通信速度と定期的に発生するタイマ割込みとの関係においては、賞球処理が確実に実行されない場合がある。
すなわち、一般的に、シリアル通信は、パラレル通信と比較して時間がかかるため、ノイズ耐性が低いという問題がある。そこで、ボーレート(bps)を低くし、ノイズ耐性を向上させるという手法が一般的に採用されている。
しかしながら、ボーレート(bps)を低く設定しすぎ、シリアル通信速度が主制御基板60のタイマ割込み処理の周期(4ms)を超えてしまうと、当該主制御基板60のタイマ割込み処理毎に、払出制御コマンドPAY_CMDを送信する事態になった場合、シリアル通信回路609(図4参照)内の送信用バッファ(図示せず)がオーバーフローしてしまう。これにより、通信エラーとなり、もって、遊技者へ不利益を与えてしまう恐れがあるという問題がある。
そしてさらに、上記シリアル通信回路609(図4参照)内の送信用バッファ(図示せず)内にデータが多数蓄積された状態で電源が遮断されてしまうと、主制御CPU600の動作が停止し、もって、当該蓄積されたデータが全て消去されてしまう。これにより、払出制御基板70側でそのデータを受信することができず、遊技者へ不利益を与えてしまう恐れがあるという問題がある。
そこで、本実施形態においては、上記問題を解決すべく、1フレームのデータ送信時間が主制御基板60のタイマ割込み周期を超えないように設定している。すなわち、ボーレート(bps)の設定を4986.7(bps)と設定することで、「L」レベルのスタートビット長,8ビット長のデータ,「H」レベルのストップビット長を1フレームとした通信フォーマット(図10(a)参照)のデータ送信時間が2msとなるようにしている。そしてさらに、払出制御基板70側でも、受信処理においてオーバーランエラーが発生しないようにするため、払出制御基板70のタイマ割込み処理がデータ送信時間(2ms)よりも早く発生するように、タイマ割込み処理の周期を1.4msに設定している。
このようにすれば、図16に示すように、主制御基板60のタイマ割込み(4ms)処理において賞球が発生し(タイミングt10参照)、払出制御コマンドPAY_CMDが送信されてくると、そのデータ送信時間に2msの時間を要するため、払出制御基板70のシリアル通信回路708はタイミングt11にて当該払出制御コマンドPAY_CMDのデータ受信を完了する。そのため、この時点で、主制御基板60から払出制御基板70へ送信するデータ(払出制御コマンドPAY_CMD)は、次の主制御基板60のタイマ割込み処理が発生(タイミングt13参照)する前に送信処理が完了しているため、主制御基板60側のシリアル通信回路609によって通信エラーとなる事態を防止することができる。
そしてさらに、そのタイミングt11の1.4ms後に、払出制御基板70のタイマ割込みが発生し(タイミングt12参照)、払出制御コマンドPAY_CMDに基づいて賞球払出動作が実行されることとなる(図14参照)。そのため、次の主制御基板60のタイマ割込み処理(タイミングt13参照)にて賞球が発生したとしても、既に払出制御基板70のタイマ割込み処理が実行されているため、払出制御基板70側のシリアル通信回路708がオーバーランエラーとなることがなく、もって、払出制御基板70側のシリアル通信回路708によって通信エラーとなる事態を防止することができる。
よって、本実施形態によれば、遊技者へ不利益を与えてしまう事態を低減させることができる。
かくして、上記賞球処理(ステップS158)を終えた後、払出制御CPU700は、遊技球の払出動作を示す賞球計数のエラーや払出動作のエラーが発生しているか否かを示す払出エラー処理(ステップS159)を実行し、払出モータM(図3参照)の動作内容を決定するモータ処理(ステップS160)を実行する。
次いで、払出制御CPU700は、外部端子信号処理を行う(ステップS161)。具体的には、払出制御CPU700は、払出初期動作フラグPAIO_FLGがONにセットされていれば(図13に示すステップS109又はステップS110参照)、主制御基板60にシリアル通信回路708(図5参照)を用いて電源投入信号を送信する。そして、払出制御CPU700は、払出初期動作フラグPAIO_FLGをOFFにセットする。なお、この電源投入信号が主制御基板60のメイン処理(図11に示すステップS11)にて使用される。
また、払出制御CPU700は、シリアル受信フラグSR_FLG(図15参照)にA5Hが設定されていれば、主制御基板60にシリアル通信回路708(図5参照)を用いて送信不許可信号NTP_SIGを送信し、シリアル受信フラグSR_FLG(図15参照)に5AHが設定されていれば、送信許可信号TP_SIGを送信する。
さらに、払出制御CPU700は、上記払出エラー処理(ステップS159)にてエラーを検出した場合は、そのエラー内容を主制御基板60にシリアル通信回路708(図5参照)を用いて送信する。
次いで、払出制御CPU700は、上記モータ処理(ステップS160)にて決定された払出モータMの動作内容に基づいて払出モータMを動作させ、遊技球を払出す(ステップS162)。
次いで、払出制御CPU700は、払出制御RAM702のスタック領域に退避させておいたレジスタの内容を復帰させタイマ割込みを終える(ステップS163)。これにより、割込み処理ルーチンからメイン処理(図13参照)に戻ることとなる。
しかして、本実施形態によれば、遊技者へ不利益を与えてしまう事態を低減させることができる。
また、本実施形態によれば、主制御基板60から送信される復帰コマンドRE_CMDを払出制御基板70が受信したか否かを示す送信許可信号TP_SIG又は送信不許可信号NTP_SIGを払出制御基板70から主制御基板60に送信することで、主制御基板60は、送信許可信号TP_SIGを受信するまで払出制御コマンドPAY_CMDを生成しないようにしている。それゆえ、主制御基板60と払出制御基板70との通信が正常に行われているか否かを確認することができ、もって、遊技者への不利益を未然に防止することができる。
さらに、主制御基板60と払出制御基板70との通信は、シリアル通信回路609(図4参照)とシリアル通信回路708(図5参照)を用いて行っている。それゆえ、パラレル送信のように配線とポートの数を多数用意せずとも良いため、簡易な構成で実装することができる。
なお、本実施形態においては、送信許可信号TP_SIG又は送信不許可信号NTP_SIGを払出制御基板70から主制御基板60に送信する際、シリアル通信回路708(図5参照)を用いた例を示したが、これを用いず、払出制御基板70及び主制御基板60共に別ポートを設けて送信するようにしても良い。このようにすれば、シリアル通信回路708に何らかの異常が発生したとしても、送信不許可信号NTP_SIGを確実に主制御基板60に送信することができ、もって、エラー報知を確実に行うことができる。
また、本実施形態においては、払出制御基板70にて払出モータMを制御して、遊技者に遊技球を払出す例を示したが、これに限らず、払出制御基板70にて賞球数のデータを管理し、賞球数を記憶したカード等により遊技者に賞球数を払出す、所謂、封入式遊技機であっても良い。なお、この場合であっても、シリアル通信回路708に何らかの異常が発生したとしても、送信不許可信号NTP_SIGを確実に主制御基板60に送信することができ、もって、エラー報知を確実に行うことができる。