以下、本発明の好ましい実施例について、添付図面を参照して説明する。本実施例では、遊技機の一例として弾球遊技機の一種であるパチンコ機、特に、第1種パチンコ遊技機を用いて説明する。なお、本発明を第3種パチンコ遊技機や他の遊技機に用いることは、当然に可能である。
図1は、本実施例のパチンコ機Pの遊技盤の正面図である。遊技盤1の周囲には、球が入賞することにより5個から15個の球が払い出される複数の入賞口2が設けられている。また、遊技盤1の中央には、複数種類の識別情報としての図柄などを表示する液晶ディスプレイ(以下単に「LCD」と略す)3が設けられている。このLCD3の表示画面は横方向に3分割されており、3分割された各表示領域において、それぞれ上から下へ縦方向にスクロールしながら図柄の変動表示が行われる。
LCD3の上方には、表面に「○」と「×」との普通図柄が表示された2つのLED6a,6bで構成された普通図柄表示装置6が配設されている。この普通図柄表示装置6では、遊技領域に打ち込まれた球がLCD3の両側に配設されたゲート7を通過した場合に、「○」と「×」とのLED6a,6bを交互に点灯させる変動表示が行われる。かかる変動表示が「○」のLED6aで終了した場合には、当たりとなって普通電動役物4が所定時間(例えば0.5秒)開放される。
また、LCD3の下方には、図柄作動口(第1種始動口、普通電動役物)4が設けられており、球がこの図柄作動口4へ入賞することにより、前記したLCD3の変動表示が開始される。図柄作動口4の下方には、特定入賞口(大入賞口)5が設けられている。この特定入賞口5は、LCD3の変動後の表示結果が予め定められた図柄の組み合わせの1つと一致する場合に、大当たりとなって、球が入賞しやすいように所定時間(例えば、30秒経過するまで、或いは、球が10個入賞するまで)開放される入賞口である。
この特定入賞口5内には、Vゾーン5aが設けられており、特定入賞口5の開放中に、球がVゾーン5a内を通過すると、継続権が成立して、特定入賞口5の閉鎖後、再度、その特定入賞口5が所定時間(又は、特定入賞口5に球が所定個数入賞するまで)開放される。この特定入賞口5の開閉動作は、最高で16回(16ラウンド)繰り返し可能にされており、開閉動作の行われ得る状態が、いわゆる所定の遊技価値が付与された状態(特別遊技状態)である。
なお、第3種パチンコ遊技機において所定の遊技価値が付与された状態(特別遊技状態)とは、LCD3の変動後の表示結果が予め定められた図柄の組み合わせの1つと一致する場合に、特定入賞口が所定時間開放されることをいう。この特定入賞口の開放中に、球がその特定入賞口内へ入賞すると、特定入賞口とは別に設けられた大入賞口が所定時間、所定回数開放される。
図2は、パチンコ機Pの電気的構成を示したブロック図であり、特に、パチンコ機Pの遊技内容の制御を行う主制御基板Cと、賞球や貸球の払出制御を行う払出制御基板Hとの電気的構成を示したブロック図である。
パチンコ機Pの主制御基板Cには、演算装置である1チップマイコンとしてのMPU11が搭載されている。このMPU11には、MPU11により実行される各種の制御プログラムや固定値データを記憶したROM12と、そのROM12内に記憶される制御プログラムの実行に当たって各種のデータ等を一時的に記憶するためのメモリであるRAM13と、割込回路やタイマ回路、データ送受信回路などの各種回路が内蔵されている。図3から図6に示すフローチャートのプログラムは、制御プログラムの一部としてROM12内に記憶されている。
主制御基板CのRAM13は、バックアップエリア13aと、停電カウンタ13bとを備えている。また、RAM13には、パチンコ機Pの電源のオフ後においても、電源基板50からバックアップ電圧が供給されており、データを保持(バックアップ)できるように構成されている。
バックアップエリア13aは、停電等の発生により電源が切断された場合、電源の再入時に、パチンコ機Pの状態を電源切断前の状態に復帰させるため、電源切断時(停電発生時を含む。以下、同様)のスタックポインタや、各レジスタ、I/O等の値を記憶しておくためのエリアである。このバックアップエリア13aへの書き込みは、NMI割込処理(図3参照)によって電源切断時に実行され、逆にバックアップエリア13aに書き込まれた各値の復帰は、電源入時(停電解消による電源入を含む。以下、同様)の初期化処理(図5参照)において実行される。なお、MPU11のNMI(Non Maskable
Interrupt)端子(ノンマスカブル割込端子)には、停電等の発生による電源断時に、後述する停電監視回路50bから出力される停電信号51が入力されるように構成されており、停電の発生により、図3の停電時処理(NMI割込処理)が即座に実行される。
停電カウンタ13bは、停電等の発生によって電源断時に行われるNMI割込処理(図3参照)の実行回数を計数するためのカウンタである。この停電カウンタ13bの値は、後述する停電監視回路50bから出力される停電信号51がMPU11のNMI端子に入力されてNMI割込処理が行われる毎に「1」ずつ加算される。一方、電源入時の初期化処理においてバックアップが有効でない場合に停電カウンタ13bの値は「0」クリアされる(図5、S50参照)。かかる停電カウンタ13bの値は、主制御基板Cから払出制御基板Hへコマンドによって伝達され、各制御基板C,Hに異常や不正行為等が発生したか否かを判断するための情報として使用される。
かかるROM12およびRAM13を内蔵したMPU11は入出力ポート15と接続されており、入出力ポート15は、賞球払出用モータ21によって賞球や貸球の払出制御を行う払出制御基板Hと複数本の信号線16を介して双方向通信を可能に接続されるほか、複数の普通入賞スイッチ17と、第1種始動口スイッチ18と、Vカウントスイッチ19と、10カウントスイッチ20と、他の入出力装置26と、電源基板50に設けられた停電監視回路50b及びクリアスイッチ50cと、それぞれ接続されている。
普通入賞スイッチ17は、遊技盤1に設けられた複数の入賞口2へ入賞した球をそれぞれ検出するためのスイッチであり、各入賞口2の入口近傍に設けられている。第1種始動口スイッチ18は、図柄作動口(第1種始動口)4を通過した球を検出するためのスイッチであり、図柄作動口4の近傍に設けられている。普通入賞スイッチ17のいずれか又は第1種始動口スイッチ18によって球が検出されると、主制御基板Cから払出制御基板Hへ賞球の払出に関するコマンドが送信され、払出制御基板Hによって5個の賞球が払い出される。
Vカウントスイッチ19は、特定入賞口5内のVゾーン5aへ入賞した球を検出するためのスイッチであり、また、10カウントスイッチ20は、特定入賞口5内のVゾーン5a以外へ入賞した球を検出するためのスイッチである。Vカウントスイッチ19又は10カウントスイッチ20により球が検出されると、主制御基板Cから払出制御基板Hへ賞球の払出に関するコマンドが送信され、払出制御基板Hによって15個の賞球が払い出される。
払出制御基板Hは賞球や貸球の払出制御を行うものであり、演算装置であるMPU31が搭載されている。このMPU31には、MPU31により実行される制御プログラムや固定値データ等を記憶したROM32と、ワークメモリ等として使用されるRAM33とを備えている。図3及び図7から図10に示すフローチャートのプログラムは、制御プログラムの一部としてROM32内に記憶されている。
払出制御基板HのRAM33は、バックアップエリア33aと、停電カウンタ33bと、タイマカウンタ33cとを備えている。また、RAM33には、パチンコ機Pの電源のオフ後においても、電源基板50からバックアップ電圧が供給されており、データを保持(バックアップ)できるように構成されている。
バックアップエリア33aは、前述した主制御基板Cのバックアップエリア13aと同様に、停電等の発生により電源が切断された場合、電源の再入時に、パチンコ機Pの状態を電源切断前の状態に復帰させるため、電源切断時のスタックポインタや、各レジスタ、I/O等の値を記憶しておくためのエリアである。このバックアップエリア33aへの書き込みは、NMI割込処理(図3参照)によって電源切断時に実行され、逆にバックアップエリア33aに書き込まれた各値の復帰は、電源入時(停電解消による電源入を含む。以下、同様)の初期化処理(図8参照)において実行される。なお、MPU31のNMI(Non Maskable
Interrupt)端子(ノンマスカブル割込端子)には、停電等の発生による電源断時に、後述する停電監視回路50bから出力される停電信号51が入力されるように構成されており、停電の発生により、図3の停電時処理(NMI割込処理)が即座に実行される。
停電カウンタ33bは、前述した主制御基板Cの停電カウンタ13bと同様に、停電等の発生によって電源断時に行われるNMI割込処理(図3参照)の実行回数を計数するためのカウンタである。この停電カウンタ33bの値は、後述する停電監視回路50bから出力される停電信号51がMPU31のNMI端子に入力されてNMI割込処理が行われる毎に「1」ずつ加算される。一方、電源入時の初期化処理においてバックアップが有効でない場合に停電カウンタ33bの値は「0」クリアされる(図8、S90参照)。かかる停電カウンタ33bの値は、主制御基板Cから送信(出力)される停電カウンタ13bの値と比較され、各制御基板C,Hに異常や不正行為等が発生したか否かが判断される。
ここで、主制御基板C及び払出制御基板Hの両停電カウンタ13b,33bの値は、停電が発生する毎に、双方共に「1」ずつ加算されるので、正常に制御が行われる間は同期して更新されるはずである。しかし、ノイズ等により一方の制御基板へ停電信号51が入力されたり、停電信号51の信号線が断線していずれか一方の制御基板へ停電信号51が入力されなかったりすると、一方の制御基板だけNMI割込処理が行われ、両停電カウンタ13b,33bの値に差が生じる。また、制御の誤作動を生じさせる目的で、停電信号51を主制御基板Cまたは払出制御基板Hのうちいずれか一方に入力する不正行為が行われた場合にも、片方の制御基板だけNMI割込処理が行われて両停電カウンタ13b,33bの値に差が生じる。
本実施例の払出制御基板Hは、電源入時の初期化処理の実行時、及び、遊技に関する通常時処理(図7、S66からS71の処理)において主制御基板Cに停電カウンタ13bの値の送信を要求する停電回数要求コマンドを送信した後に、主制御基板Cから停電カウンタ13bの値に関するコマンドを受信する。その受信した停電カウンタ13bの値は、払出制御基板Hの停電カウンタ33bの値と比較され、それらの値の差に基づいて主制御基板Cまたは払出制御基板Hが正常な状態であるか否かが判断される。また、払出制御手段Hは、両停電カウンタ13b,33bの値の差に応じた制御を行うものであり、異常や不正行為に対応した処置を施すことができる。
なお、停電回数要求コマンドは、払出制御基板Hにおいて通常時処理(図7、S66からS71の処理)が開始されてから所定時間(本実施例では1.9秒)経過したとき、又は、主制御基板Cから停電カウンタ13bの値に関するコマンドを払出制御基板Hが受信してから1.9秒経過したときに、払出制御基板Hから主制御基板Cへ送信される(図7、S68参照)。この停電回数要求コマンドを送信してからの時間が払出制御基板Hによって計時され、その送信をしてから0.1秒以内に停電カウンタ13bの値に関するコマンドを受信しなければ、払出制御基板Hは、異常の発生と判断して異常に対応した処理(図7、S72からS74の処理)を実行し、制御の進行を停止する。
タイマカウンタ33cは、払出制御基板Hから主制御基板Cに停電カウンタ13bの値を要求する停電回数要求コマンドの送信時期を決定するためのカウンタである。このタイマカウンタ33cの値は、電源投入後、遊技に関する処理の準備が完了したとき、及び、主制御基板Cから停電カウンタ13bの値に関するコマンドを受信したときに「0」クリアされる。また、タイマカウンタ33cの値は、払出制御基板Hのメイン処理(図7参照)で2ms毎に繰り返して行われる遊技に関する処理(図7、S66からS71の処理)が1回行われる毎に「1」ずつ加算される。
このタイマカウンタ33cの値が「950」となったときには、払出制御基板Hにおいて遊技に関する処理が開始されたとき、又は停電カウンタ13bの値に関するコマンドを受信したときから1.9秒(2msに950を乗じた時間)経過しているので、払出制御基板Hは停電回数要求コマンドを主制御基板Cに送信する(図7、S68参照)。また、タイマカウンタ33cの値が「1000」となったときには、停電回数要求コマンドを送信してから0.1秒経過したにも関わらず、主制御基板Cから停電カウンタ13bの値に関するコマンドを受信していないので、払出制御基板Hは、異常の発生と判断して異常に対応した処理(図7、S72からS74の処理)を実行し、制御の進行を停止する。
これらROM32およびRAM33を内蔵したMPU31は入出力ポート35と接続されており、その入出力ポート35は、前述した主制御基板Cと複数の信号線16を介して接続されるほか、賞球払出用モータ21と、賞球カウントスイッチ22と、エラーランプ23と、エラーブザー24と、エラー解除スイッチ25と、他の入出力装置26と、電源基板50に設けられた停電監視回路50b及びクリアスイッチ50cと、それぞれ接続されている。
賞球カウントスイッチ22は、賞球払出用モータ21によって払い出された賞球を検出するためのスイッチであり、賞球払出用モータ21と共に賞球払出ユニットに搭載されている。賞球払出用モータ21は賞球を払い出すためのモータであり、賞球払出用モータ21の駆動は、払出制御基板Hによって制御される。
エラーランプ23は、遊技を行う遊技者や遊技場の管理者にパチンコ機Pの制御に異常が生じたことを告知するものであり、遊技盤1の上側(図示せず)に設けられている。払出制御基板Hは、主制御基板C及び払出制御基板Hの停電カウンタ13b,33bの値の差を電源入時の初期化処理で確認し、それらの値が同一でないことが確認された場合には払出制御基板Hの制御によってエラーランプ23が点灯される。また、通常時の処理において両停電カウンタ13b,33bの値の差が「3」以上であることが払出制御基板Hに確認された場合にも、払出制御基板Hの制御によってエラーランプ23は点灯される。このように両停電カウンタ13b,33bの値に所定値以上の差が生じた場合にエラーランプ23が点灯されるので、パチンコ機Pに異常が生じたことを遊技者及び遊技場の管理者に認識させることができる。
エラーブザー24は、エラーランプ23と同様、遊技者や遊技場の管理者にパチンコ機Pの制御に異常が生じたことを告知するものであり、遊技盤1の上側(図示せず)に設けられている。払出制御基板Hは、主制御基板C及び払出制御基板Hの停電カウンタ13b,33bの値の差を電源入時の初期化処理で確認し、それらの値が同一でないことが確認された場合には払出制御基板Hの制御によってエラーブザー24から音が出力される。また、通常時の処理において両停電カウンタ13b,33bの値の差が「6」以上であることが確認された場合にも、払出制御基板Hの制御によってエラーブザー24から音が出力される。つまり、通常時の処理においては両停電カウンタ13b,33bの値の差が「6」以上となった場合にのみ、エラーランプ23が点灯されると共にエラーブザー24から音が出力されるので、エラーランプ23が点灯されただけの状態よりもパチンコ機Pに異常が多数回発生したことを遊技者及び遊技場の管理者に解りやすく認識させることができる。
なお、異常の発生回数を必ずしも複数の機器を用いて告知する必要は無く、エラーランプ23の点灯状態を両停電カウンタ13b,33bの値の差に応じて点滅から点灯に変更するなど点灯状態を変化させて告知しても良く、又は、エラーブザー24の音量をその値の差に応じて変更する、即ち、両停電カウンタ13b,33bの値の差が大きくなるに従ってエラーブザー24の音量を大きくして告知しても良い。また、エラーランプ23及びエラーブザー24は、払出制御基板Hから主制御基板Cに異常の発生をコマンドで報せて主制御基板Cに制御させるものであっても良い。しかし、主制御基板Cが不正な基板に交換された場合、異常が発生したことを報せるコマンドを主制御基板Cが受信してもエラーランプ23及びエラーブザー24を作動させないように制御することができてしまう。これに対し、異常の発生を検出する払出制御基板Hにエラーランプ23及びエラーブザー24を直接接続することで、不正を検出しても外部へ異常の発生が告知されない制御が行われることを防止して、異常の発生を外部へ確実に告知させることができる。
エラー解除スイッチ25は、一時停止した制御を再開させるためのスイッチであり、押しボタンタイプのスイッチで構成されている。各制御基板C,Hの制御の進行が一時停止した状態においてエラー解除スイッチ25が押下してオンされると、停止していた各制御基板C,Hの制御は再開される。
ここで、本実施例のパチンコ機Pは、電源入時に払出制御基板Hで実行される初期化処理(図8参照)において、主制御基板Cから送信された停電カウンタ13bの値が、払出制御基板Hの停電カウンタ33bの値と同一でないことが確認されると、払出制御基板Hは、主制御基板Cへ制御の一時停止を指示する制御一時停止コマンドを送信すると共に(図9、S93参照)、エラー解除スイッチ25がオンされるまで制御の進行を停止する(図9、S95参照)。主制御基板Cは、払出制御基板Hから送信される制御一時停止コマンドを受信すると、払出制御基板Hと同様にエラー解除スイッチ25がオンされるまで制御の進行を停止する(図6、S54参照)。このように電源入時に両停電カウンタ13b,33bの値が同一でないことが払出制御基板Hに確認されると、各制御基板C,Hが制御を停止するので、パチンコ機Pが異常な状態のままで遊技の制御が継続して行われて遊技場或いは遊技者が不利益を被ることを防止することができる。また、各制御基板C,Hの制御の進行が一時停止した状態においてエラー解除スイッチ25を押下してオンすることにより各制御基板C,Hの制御を再開させることができるので、軽度の異常であることが特定できた場合等には必要に応じて制御を再開させることができる。
電源基板50は、パチンコ機Pの各部に電力を供給するための電源部50aと、停電監視回路50bと、クリアスイッチ50cとを備えている。停電監視回路50bは、停電等の発生による電源断時に、主制御基板CのMPU11のNMI端子へ停電信号51を出力するための回路である。この停電監視回路50bは、電源部50aから出力される最も大きい電圧である直流安定24ボルトの電圧を監視し、この電圧が22ボルト未満になった場合に停電(電源断)の発生と判断して、停電信号51を主制御基板C及び払出制御基板Hへ出力するように構成されている。この停電信号51の出力によって、主制御基板C及び払出制御基板Hは、停電の発生を認識し、停電時処理(図3のNMI割込処理)を実行する。なお、電源部50aは、直流安定24ボルトの電圧が22ボルト未満になった後においても、かかる停電時処理の実行に充分な時間の間、制御系の駆動電圧である5ボルトの出力を正常値に維持するように構成されているので、主制御基板C及び払出制御基板Hは、停電時処理を正常に実行することができるのである。
クリアスイッチ50cは、主制御基板CのRAM13および払出制御基板HのRAM33にバックアップされるデータをクリアするためのスイッチであり、押しボタンタイプのスイッチで構成されている。このクリアスイッチ50cが押下された状態でパチンコ機Pの電源が投入されると(停電解消による電源入を含む)、主制御基板Cおよび払出制御基板Hによって、それぞれのRAM13,33のデータがクリアされる。
次に、上記のように構成されたパチンコ機Pで実行される各処理を、図3から図8の各フローチャートを参照して説明する。図3は、停電の発生等によるパチンコ機Pの電源断時に、主制御基板C及び払出制御基板Hでそれぞれ別々に実行されるNMI割込処理のフローチャートである。このNMI割込処理により、停電の発生等による電源断時の主制御基板C及び払出制御基板Hの状態がバックアップエリア13a,33aに記憶される。なお、NMI割込処理は、主制御基板CのROM12と、払出制御基板HのROM32とにそれぞれ別々に搭載されてその内容が異なる処理であるが、フローチャートの表記上は同様に表すことができるので、図3にまとめて図示している。
停電の発生等によりパチンコ機Pの電源が断されると、停電監視回路50bから停電信号51が主制御基板C及び払出制御基板HのMPU11,31のNMI(Non Maskable
Interrupt)端子へ出力される。すると、MPU11,31は、実行中の制御を中断して、図3のNMI割込処理を開始する。停電信号51が出力された後所定時間は、各制御基板C,Hの処理が実行可能なように電源基板50の電源部50aから電力供給がなされており、この所定時間内にNMI割込処理が実行される。なお、ノイズ等により主制御基板C及び払出制御基板Hのうちいずれか一方の制御基板のNMI端子に停電信号51が入力された場合には、一方の制御基板のみでNMI割込処理が行われる。
NMI割込処理では、まず、停電カウンタ13b,33bの値に「1」を加算する(S1)。次に、各レジスタおよびI/O等の値をスタックエリアへ書き込み(S2)、スタックポインタの値をバックアップエリア13a,33aへ書き込んで退避する(S3)。更に、停電発生情報をバックアップエリア13a,33aへ書き込んで(S4)、停電の発生等による電源断時の状態を記憶する。その後、主制御基板C及び払出制御基板Hに対してそれぞれ定められたその他停電処理を実行した後(S5)、電源が完全に断して処理が実行できなくなるまで、処理をループする。
このように、主制御基板C及び払出制御基板HでNMI割込処理が行われると、停電カウンタ13b,33bの値は「1」加算される。このため、正常に制御が行われていれば、停電が発生する毎に各制御基板C,Hの停電カウンタ13b,33bの値が同期して更新される。また、異常が発生していずれか一方の制御基板のみでNMI割込処理が行われると、停電カウンタ13b,33bの値のうちいずれか一方のみに「1」が加算されるので、両停電カウンタ13b,33bの値は同期しないでずれを生じる。
図4は、パチンコ機Pの主制御基板Cにおいて実行されるメイン処理のフローチャートである。パチンコ機Pの主な制御は、このメイン処理によって実行される。メイン処理では、まず、割込を禁止した後(S11)、図5に示す初期化処理を実行する(S12)。ここで、図5のフローチャートを参照して、初期化処理について説明する。
図5は、パチンコ機Pの電源入時に主制御基板Cのメイン処理の中で実行される初期化処理(S12)のフローチャートである。この処理では、バックアップが有効であれば、バックアップエリア13aに記憶された各データを元の状態に戻し、遊技の制御を電源が断される前の状態から続行する。一方、バックアップが有効でなかったり、或いは、バックアップが有効であっても電源入時にクリアスイッチ50cが押下された場合には、RAMクリア及び初期化処理を実行する。なお、この初期化処理(S12)は、サブルーチンの形式で記載されているが、スタックポインタの設定前に実行される処理なので、実際には、サブルーチンコールされずに、S11の処理後に順に実行される。
まず、スタックポインタを設定し(S41)、バックアップが有効であるか否かを確認する(S42)。この確認は、RAM13の所定のエリアに書き込まれたキーワードが正しく記憶されているか否かにより判断する。キーワードが正しく記憶されていればバックアップは有効であり、逆に、キーワードが正しくなければバックアップデータは破壊されているので、そのバックアップは有効ではない。バックアップが有効であれば(S42:Yes)、クリアスイッチ50cがオンされているか否かを確認する(S43)。クリアスイッチ50cがオンされていなければ(S43:No)、処理をS46へ移行して、払出制御基板Hへ停電カウンタ13bの値に応じたコマンドを送信すると共に、主制御基板Cの各状態を電源断前の状態に復帰させる。
一方、S43の処理において、クリアスイッチ50cがオンされていれば(S43:Yes)、RAMクリア及び初期化処理を実行して(S44)、RAM13及びI/O等の各値を初期化する。また、S42の処理においてバックアップが有効でなければ(S42:No)、停電カウンタ13bの値を「0」クリアして(S50)、S44の処理を実行する。ここで、S44の初期化処理が実行されても停電カウンタ13bの値はクリアされずに保持されて、バックアップが有効でない場合にのみS50の処理で「0」クリアされる。このため、初期化処理が行われても、主制御基板Cは、停電カウンタ13bの値を継続して更新させることができる。
S44の処理の後は、払出制御基板Hへ停電カウンタ13bの値に応じたコマンドを送信し(S45)、この初期化処理を終了する。S45の処理の終了後は、図4のS13の処理が実行される。
一方、S46からの処理では、まず、払出制御基板Hへ停電カウンタ13bの値に応じたコマンドを送信する(S46)。次に、バックアップエリア13aからスタックポインタの値を読み出して、これをスタックポインタへ書き込み、電源断前(停電前)の状態、即ちNMI割込発生前の状態に戻す(S47)。また、バックアップエリア13aへ退避した各レジスタやI/O等のデータをそのバックアップエリア13aから読み出して、これら各データを元のレジスタやI/O等へ書き込む(S48)。更に、割込状態を停電発生時に実行される図3の処理で記憶しておいた電源断前(停電前)の状態、即ちNMI割込発生前の状態に戻し(S49)、NMI割込リターンを実行して処理を電源断前に実行していたところへ戻して、制御を電源断前の状態から続行する。
図4のフローチャートに戻って主制御基板Cのメイン処理について説明する。S13の処理ではタイマ割込の設定を行って(S13)割込が発生可能な状態にした上で、各割込を許可状態とする(S14)。割込の許可後は、特別図柄変動処理(S25)や、表示データ作成処理(S27)、ランプ・情報処理(S28)などにより、前回の処理で更新された出力データを一度に各ポートへ出力するポート出力処理を実行する(S15)。
更に、大当たりを決定するための乱数カウンタの値などを「+1」更新する乱数更新処理(S16)を実行し、記憶タイマ減算処理を実行する(S17)。記憶タイマ減算処理は、大当たり判定の保留球が所定数以上あり、且つ、LCD3において図柄の変動表示中である場合に、図柄の変動表示の時間短縮を行うものである。
スイッチ監視処理(S18)は、INT割込で読み込まれた各スイッチの状態に応じて、遊技領域へ打ち込まれた球の入賞口2や特定入賞口5、図柄作動口4への入賞、ゲート7への通過、更には賞球の払い出し等に関する処理を行うものである。図柄カウンタ更新処理(S20)では、LCD3で行われる変動表示の結果、停止表示される図柄を決定するためのカウンタの更新処理が行われる。また、図柄チェック処理(S21)では、図柄カウンタ更新処理(S20)で更新されたカウンタの値に基づいて、特別図柄変動処理(S25)で使用される大当たり図柄や、ハズレ図柄、更にはリーチ図柄などが決定される。
次いで、普通図柄変動処理(S23)によって、「○」と「×」との2つのLED6a,6bで構成された普通図柄表示装置6の変動表示を行うと共に、その変動表示の結果、「○」のLED6aで変動表示が終了した場合には当たりとなって普通電動役物(図柄作動口)4を所定時間(例えば0.5秒)開放する当たり処理を実行する。その後、状態フラグをチェックし(S24)、LCD3において図柄の変動開始または変動表示中であれば(S24:図柄変動中)、特別図柄変動処理(S25)によって、球が図柄作動口4に入賞するタイミングで読み取った乱数カウンタの値に基づいて、大当たりか否かの判定が行われると共に、LCD3において特別図柄の変動処理を実行する。一方、状態フラグをチェックした結果、大当たり中であれば(S24:大当り中)、特定入賞口5を開放するなどの大当たり処理(S26)を実行する。更に、状態フラグをチェックした結果、図柄の変動中でも大当たり中でもなければ(S24:その他)、S25及びS26の処理をスキップして、S27の表示データ作成処理へ移行する。
表示データ作成処理(S27)では、図柄の変動表示以外にLCD3に表示されるデモデータや、普通図柄表示装置6の2つのLED6a,6bの表示データなどが作成され、ランプ・情報処理(S28)では、保留球のランプデータをはじめ、各種のランプデータが作成される。効果音処理(S29)では、遊技の状況に応じた効果音データが作成される。なお、これらの表示データ及び効果音データは、前記したポート出力処理(S15)やタイマ割込処理によって払出制御基板Hやその他の制御基板へ出力(送信)される。
効果音処理(S29)の終了後は、次のS15の処理の実行タイミングが到来するまでの残余時間の間、大当たりを決定するための乱数カウンタの初期値を更新する乱数初期値更新処理(S30)を繰り返し実行する。S15〜S29の各処理は定期的に実行する必要があるので、S31の処理において前回のS15の処理の実行からの経過時間をチェックする(S31)。チェックの結果、前回のS15の処理の実行から所定時間(例えば2ms)経過していれば(S31:Yes)、処理をS15へ移行する。一方、所定時間経過していなければ(S31:No)、処理をS30へ移行して、乱数初期値更新処理(S30)の実行を繰り返す。ここで、S15〜S29の各処理の実行時間は、遊技の状態に応じて変化するので、次のS15の処理の実行タイミングが到来するまでの残余時間は、一定の時間ではない。よって、かかる残余時間を使用して乱数初期値更新処理(S30)を繰り返し実行することにより、乱数カウンタの初期値をランダムに更新することができる。
図6は、主制御基板Cの割込処理で実行されるコマンド受信処理のフローチャートである。主制御基板Cに接続される各制御基板から送信されるコマンドを主制御基板Cが受信すると、その度に割込が発生し、このコマンド受信処理が実行される。なお、このコマンド受信処理を実行する割込は、割込の禁止設定ができないノンマスカブル割込ではなく、割込の禁止設定が可能な割込である。
コマンド受信処理では、まず、受信したコマンドが払出制御基板Hから送信される停電回数要求コマンドであるか否かを判断する(S51)。そのコマンドが停電回数要求コマンドであれば(S51:Yes)、払出制御基板Hへ停電カウンタ13bの値に応じたコマンドを送信して(S52)、このコマンド受信処理を終了する。一方、受信したコマンドが停電回数要求コマンドでなければ(S51:No)、受信したコマンドが払出制御基板Hから送信される制御一時停止コマンドであるか否かを判断する(S53)。
受信したコマンドが制御一時停止コマンドであれば(S53:Yes)、エラー解除スイッチ25がオンされているか否かを確認し(S54)、エラー解除スイッチ25がオンされていなければ(S54:No)、オンされるまで処理の進行を停止する。エラー解除スイッチ25がオンされると(S56:Yes)、このコマンド受信処理を終了する。一方、受信したコマンドが制御一時停止コマンドでもなければ(S53:No)、受信したコマンドが払出制御基板Hから送信される制御停止コマンドであるか否かを判断する(S55)。
受信したコマンドが制御停止コマンドであれば(S55:Yes)、LCD3に異常が発生したことを示唆する情報を表示させる等のエラー処理を行い(S56)、その後の処理をループさせて停止状態とする。一方、受信したコマンドが制御停止コマンドでもなければ(S55:No)、受信したコマンドに応じた処理を実行して(S57)、このコマンド受信処理を終了する。
図7は、パチンコ機Pの払出制御基板Hにおいて実行されるメイン処理のフローチャートである。払出制御基板Hの主な制御は、このメイン処理によって実行される。払出制御基板Hのメイン処理では、まず、割込を禁止した後(S61)、図8に示す初期化処理を実行する(S62)。ここで、図8のフローチャートを参照して、払出制御基板Hの初期化処理について説明する。
図8は、パチンコ機Pの電源入時に払出制御基板Hのメイン処理の中で実行される初期化処理(S62)のフローチャートである。この処理では、バックアップが有効であれば、バックアップエリア33aに記憶された各データを元の状態に戻し、電源が断される前の状態から制御を続行する。一方、バックアップが有効でなかったり、或いは、バックアップが有効であっても電源入時にクリアスイッチ50cが押下された場合には、RAMクリア及び初期化処理を実行する。なお、この初期化処理(S62)は、サブルーチンの形式で記載されているが、スタックポインタの設定前に実行される処理なので、実際には、サブルーチンコールされずに、S11の処理後に順に実行される。
まず、スタックポインタを設定し(S81)、バックアップが有効であるか否かを確認する(S82)。この確認は、RAM33の所定のエリアに書き込まれたキーワードが正しく記憶されているか否かにより判断する。キーワードが正しく記憶されていればバックアップは有効であり、逆に、キーワードが正しくなければバックアップデータは破壊されているので、そのバックアップは有効ではない。バックアップが有効であれば(S82:Yes)、クリアスイッチ50cがオンされているか否かを確認する(S83)。クリアスイッチ50cがオンされていなければ(S83:No)、処理をS86へ移行し、主制御基板C及び払出制御基板Hの停電カウンタ13b,33bの値を確認する停電回数確認処理を実行すると共に、払出制御基板Hの各状態を電源断前の状態に復帰させる。
一方、S83の処理において、クリアスイッチ50cがオンされていれば(S83:Yes)、RAMクリア及び初期化処理を実行して(S84)、RAM33及びI/O等の各値を初期化する。また、S82の処理においてバックアップが有効でなければ(S82:No)、停電カウンタ33bの値が無効となっているので、停電カウンタ33bの値を「0」クリアして(S90)、処理をS84へ移行する。
ここで、主制御基板C及び払出制御基板Hの停電カウンタ13b,33bの値は、各制御基板C,Hで初期化処理が実行されてもクリアされずに保持され、バックアップが有効でない場合にのみ「0」クリアされる。つまり、停電カウンタ13b,33bの値が有効である場合には、停電カウンタ13b,33bの値を積極的に保持し、無効となった場合に限って「0」クリアさせるものである。よって、主制御基板C及び払出制御基板の停電カウンタ13b,33bの値をより長期にわたり、且つ、クリアスイッチ50cの操作の影響を受けることなく同期させることができ、同期の崩れに基づいた異常の検出をより確実に行うことができる。
S84の処理の後は、主制御基板C及び払出制御基板Hの停電カウンタ13b,33bの値を確認する停電回数確認処理を行って(S85、図8参照)、この初期化処理を終了する。S85の処理の終了後は、図7のS63の処理が実行される。
一方、S86からの処理では、まず、停電回数確認処理を行って(S86)、主制御基板C及び払出制御基板Hの停電カウンタ13b,33bの値を確認する。このS86の停電回数確認処理は、S85の処理とその内容が同一の処理である。次に、バックアップエリア33aからスタックポインタの値を読み出して、これをスタックポインタへ書き込み、電源断前(停電前)の状態、即ちNMI割込発生前の状態に戻す(S87)。また、バックアップエリア33aへ退避した各レジスタやI/O等のデータをそのバックアップエリア33aから読み出して、これら各データを元のレジスタやI/O等へ書き込む(S88)。更に、割込状態を停電発生時に実行される図3の処理で記憶しておいた電源断前(停電前)の状態、即ちNMI割込発生前の状態に戻し(S89)、NMI割込リターンを実行して処理を電源断前に実行していたところへ戻して、制御を電源断前の状態から続行する。
図7のフローチャートに戻って払出制御基板Hのメイン処理について説明する。S63の処理ではタイマ割込の設定を行って(S63)、割込が発生可能な状態にした上で、各割込を許可状態とする(S64)。割込の許可後は、タイマカウンタ33cの値を「0」クリアして(S65)、処理をS66へ移行する。
S66からの処理では、まず、タイマカウンタ33cの値に「1」を加算し(S66)、タイマカウンタ33cの値が「950」であるか否か、即ち、タイマカウンタ33cの値が「0」の状態から1.9秒が経過したか否かを確認する(S67)。ここで、S66からS71迄の処理(通常時の処理)は、2ms毎に繰り返し行われる処理であり、タイマカウンタ33cの値は、S66の処理によって2ms毎に「1」ずつ増加する。よって、タイマカウンタ33cの値が「0」の状態から「950」になる迄には、2msに「950」を乗じた1.9秒が経過する。
タイマカウンタ33cの値が「950」であれば(S67:Yes)、主制御基板Cに停電カウンタ13bの値の送信を要求するタイミングであるので、主制御基板Cへ停電回数要求コマンドを送信し(S68)、処理をS69へ移行する。タイマカウンタ33cの値が「950」でない場合には(S67:No)、停電回数要求コマンドを送信するタイミングで無いので、S68の処理をスキップして、処理をS69へ移行する。
S69の処理では、タイマカウンタ33cの値が「1000」以上であるか否かを確認する(S69)。タイマカウンタ33cの値が「1000」以上でなければ(S69:No)、各処理を実行する(S70)。払出制御基板Hによる遊技に関する処理は、割込処理を除いて、この各処理(S70)の中で実行される。S70の処理の後には、前回のS66の処理の実行からの経過時間を確認する(S71)。確認の結果、前回のS66の処理の開始から所定時間(本実施例においては2ms)経過していなければ(S71:No)、処理の移行を待機して再度経過時間を確認する。前回のS66の処理の開始から2ms経過すると(S71:Yes)、処理をS66へ移行する。
一方、S69の処理においてタイマカウンタ33cの値が「1000」以上であれば(S69:Yes)、主制御基板Cへ停電回数要求コマンドを送信した後にタイマカウンタ33cの値が「50」増加して、2msに「50」を乗じた0.1秒が経過したこととなる。主制御基板Cによる制御が正常に行われる場合には、主制御基板Cは、停電回数要求コマンドを受信した時点でコマンド受信処理を行って、停電カウンタ13bの値に応じたコマンドを送信するはずである(図6参照)。主制御基板Cに停電回数要求コマンドを送信してから0.1秒経過しても停電カウンタ13bの値が主制御基板Cから送信されない場合には、パチンコ機Pに何らかの異常が生じている。この場合には、主制御基板Cへ制御停止コマンドを送信して(S72)、異常の発生を主制御基板Cに報せる。次に、エラーランプ23を点灯させると共にエラーブザー24から音を出力させ(S73)、更に払出中の賞球を停止するなどの異常時の処置を施すエラー処理を行って(S74)、その後に処理をループさせて停止状態とする。
図9は、払出制御基板Hの初期化処理(S62)の中で実行される停電回数確認処理のフローチャートである(図8、S85及びS86参照)。この停電回数確認処理では、主制御基板Cから送信される停電カウンタ13bの値と、払出制御基板Hの停電カウンタ33bの値とに基づいて異常の発生を検出し、その検出結果に応じた処置を行うものである。
この停電回数確認処理では、まず、主制御基板Cから停電カウンタ13bの値に関するコマンドを受信したか否かを確認する(S91)。そのコマンドを受信していなければ(S91:No)、制御の進行を停止して停電カウンタ13bの値に関するコマンドを受信するまで待機する。主制御基板Cから停電カウンタ13bの値に関するコマンドを受信すると(S91:Yes)、受信した停電カウンタ13bの値が、払出制御基板Hの停電カウンタ33bの値と同一であるか否かを確認し(S92)、両停電カウンタ13b,33bの値が同一であれば(S92:Yes)、異常が発生していなく両制御基板C,Hが正常な状態であるので、この停電回数確認処理を終了する。なお、両停電カウンタ13b,33bの値が同一である場合に限って、両制御基板C,Hが正常な状態であると判断させる必要はなく、偶発的に両停電カウンタ13b,33bの値に差が生じる場合には、所定値(例えば2)を設定し、その所定値以下であれば正常な状態であると判断させても良い。
一方、両停電カウンタ13b,33bの値が同一でなければ(S92:No)、初期化処理の実行前に両停電カウンタ13b,33bの値に差が生じているので、いずれか一方の制御基板でのみ停電時の処理(図3のNMI割込処理)が行われたか、或いは、一方の制御基板が交換される等の異常が発生している。このため、まず、主制御基板Cへ制御の一時停止を指示する制御一時停止コマンドを送信し(S93)、エラーランプ23を点灯させると共にエラーブザー24から音を出力させ(S94)、両停電カウンタ13b,33bの値が同一で無く異常が発生していることを外部に告知する。
次に、エラー解除スイッチ25がオンされたか否かを確認する(S95)。確認の結果、エラー解除スイッチ25がオンされていなければ(S95:No)、オンされるまで処理の進行を停止する。エラー解除スイッチ95がオンされると(S95:Yes)、処理をS96へ移行して、エラーランプ23を消灯させると共にエラーブザー24の音を停止させる(S96)。更に、主制御基板Cの停電カウンタ13bの値を払出制御基板Hの停電カウンタ33bに書き込み(S97)、両停電カウンタ13b,33bの値を一致させ、この停電回数確認処理を終了する。
ここで、近年、不正の利益を得るための不正行為として、大当たりの発生に直接影響する主制御基板を不正な基板に交換して不当に大当たりを発生させる不正行為が報告されている。この場合には、工場から出荷されたパチンコ機が遊技場に設置される迄の搬送途中で不正な基板に交換されたり、又は、遊技場に設置された後の休業時間中等に不正な基板へ交換されたりする。
これに対し、本実施例のパチンコ機Pは、払出制御基板Hの停電回数確認処理において主制御基板Cから送信される停電カウンタ13bの値と、払出制御基板Hの停電カウンタ33bの値とが同一であるか否かを確認し、同一でなければ処理を一旦停止させる。パチンコ機Pは、工場出荷前には複数回の電源のオンオフが行われ、又、遊技場に設置された後にも日々電源のオンオフが繰り返されるので、両停電カウンタ13b,33bの値は工場から出荷された後には同期して所定値までカウントアップされる。一方、主制御基板Cが不正な基板に交換されると、両停電カウンタ13b,33bの値が同一でなくなるので、停電回数確認処理によって払出制御基板Hの制御の進行が停止される。よって、遊技の制御が行われる前に行われる初期化処理の途中で制御の進行が停止されるので、遊技が開始されて遊技場が不当な不利益を被ることを防止することができる。
また、払出制御基板Hは、両停電カウンタ13b,33bの値が同一でないことを確認して一旦制御の進行を停止しても、エラー解除スイッチ25がオンされると制御を再開する。停電カウンタ13b,33bの値が同一でなくなる場合としては、不正行為のみならず、例えば、停電信号の端子が抜けた場合等、即座に解消可能な異常の場合もある。この場合にも継続して制御が停止されてしまうと、パチンコ機Pを稼働させることができずに遊技場に不利益を被らせてしまう。本実施例の払出制御基板Hは、エラー解除スイッチ25をオンすることで制御を再開するものであるので、一旦制御を停止させた段階で異常の原因が特定できた場合等には、速やかに制御を再開させることができる。更に、払出制御基板Hは、両停電カウンタ13b,33bの値が同一でないことを確認した場合に制御一時停止コマンドを主制御基板Cへ送信する。よって、その払出制御基板Hから送信されるコマンドに基づいて不正等による異常が発生したことを主制御基板Cに認識させ、そのコマンドに応じた制御を行わせることができるので、異常の発生によって生じる不具合を防止することができる。
図10は、払出制御基板Hの割込処理で実行されるコマンド受信処理のフローチャートである。主制御基板Cから送信されるコマンドを払出制御基板Hが受信すると、その度に割込が発生し、このコマンド受信処理が実行される。なお、このコマンド受信処理を実行する割込は、割込の禁止設定ができないノンマスカブル割込ではなく、割込の禁止設定が可能な割込である。
コマンド受信処理では、まず、受信したコマンドが主制御基板Cから送信される停電カウンタ13bの値に関するコマンドであるか否かを確認する(S101)。停電カウンタ13bの値に関するコマンドの受信でなければ(S101:No)他のコマンドを受信しているので、他のコマンドに対する処理を行って(S108)、このコマンド受信処理を終了する。
S101の確認の結果、停電カウンタ13bの値に関するコマンドを受信していれば(S101:Yes)、タイマカウンタ33cの値を「0」クリアし(S102)、受信した主制御基板Cの停電カウンタ13bの値と、払出制御基板Hの停電カウンタ33bの値との差を確認する(S103)。両停電カウンタ13b,33bの値の差が「2」以下であれば(S103:Yes)、同期すべき両制御基板C,Hの停電カウンタ13b,33bの値が同期してはいないものの、ノイズ等により稀に発生する異常であるものとして、S84からS87の異常の発生に対する処理をスキップして、このコマンド受信処理を終了する。なお、異常の発生を判断する際の基準とする両停電カウンタ13b,33bの値の差は、必ずしも「2」とする必要はなく、例えば、「1」の差が生じれば異常の発生と判断しても良く、逆に、更に大きな「3」以上の値を基準として異常の発生を判断しても良い。
両停電カウンタ13b,33bの値の差が「2」以下でなく、「3」以上であれば(S103:No)、エラーランプ23を点灯させて(S104)異常な状態が繰り返して発生していることを外部に告知し、それらの値の差が「5」以下であるか否かを確認する(S105)。両停電カウンタ13b,33bの値の差が「5」以下であれば(S105:Yes)、エラーランプ23を点灯させたままでこのコマンド受信処理を終了する。
両停電カウンタ13b,33bの値の差が「5」以下でなく「6」以上であれば(S105:No)、エラーブザー24から音を出力させ(S106)、両停電カウンタ13b,33bの値の差が「10」以下であるか否かを確認する(S107)。それらの値の差が「10」以下であれば(S107:Yes)、このコマンド受信処理を終了する。一方、S107の確認の結果、両停電カウンタ13b,33bの値の差が「10」以下でなく「11」以上であれば(S107:No)、異常が頻発しているので、主制御基板Cへ制御の停止を指示する制御停止コマンドを送信すると共に(S109)、払出中の賞球を停止するなどの異常時の処置を施すエラー処理を行い(S110)、その後に処理をループさせて停止状態とする。
ここで、前述した不正な基板への交換による不正以外の不正行為として、主制御基板に異常な信号を発生する不正な基板をぶら下げて(不正な「ぶら下げ基板」を取り付けて)不当に大当たりを発生させるものも報告されている。具体的には、主制御基板に対して初期化処理を終えた後に乱数カウンタの値が所定の大当たり値を示すタイミングで第1種始動口スイッチが球を検出した際の信号と同一のものを不正に生成し、これを主制御基板へ出力して、不当に大当たりを発生させるものである。この不正行為が行われる場合には、一旦主制御基板に初期化処理を実行させる必要があるので、不正な信号を主制御基板のみへ出力して初期化処理が行われる。この不正は、主制御基板のみに対して行われるので、パチンコ機を一見しただけでは不正が行われていることを判断し難く、遊技場が多量の不利益を被ることがある。
これに対し、本実施例の払出制御基板Hは、主制御基板Cから略2秒毎に送信される停電カウンタ13b,33bの値の差を繰り返して確認し、その確認結果に応じて外部に異常を告知したり、異常の程度によっては処理を停止させるので、遊技中に繰り返して主制御基板Cに不正な信号(停電信号)が入力された場合には、停電カウンタ13b,33bの値の差に基づいて異常を確実かつ迅速に検出し、遊技者や遊技場の管理者には、エラーランプ23及びエラーブザー24の状態から異常の発生及びその程度を認識させることができる。よって、不正行為が行われやすい主制御基板Cに対する不正を払出制御基板Hで的確に検出させることができ、信頼性の高い制御を行わせることができる。
また、異常が頻発している場合、及び、主制御基板Cから停電カウンタ13bの値に関するコマンドが送信されない場合に処理を停止するので、遊技中に主制御基板Cが不正な基板に交換される不正行為が行われたり、不正な信号が主制御基板Cへ入力されたりした場合にも、停電カウンタ13b,33bの値に基づいてその異常を検出し、遊技場が継続して不利益を被ることを防止することができる。更に、異常の程度が低い場合、即ち、パチンコ機Pにおいては両停電カウンタ13b,33bの値の差が「5」以下であれば、エラーランプ23のみを点灯させるので、遊技者の遊技に支障を来すこと無く異常の発生を外部へ告知することができる。
次に、図11から図14を参照して、第2実施例について説明する。前記した第1実施例では、主制御基板C及び払出制御基板Hが正常な制御が行われる場合に同期して更新される停電カウンタ13b,33bを設け、電源入時の初期化処理で払出制御基板Hにおいて両停電カウンタ13b,33bの値を比較して異常の発生を検出していた。
これに対し、第2実施例では、大当たりを発生させるか否かを決定する主制御基板Cの乱数カウンタ(図示せず)の値を停電時の処理で払出制御基板Hへ送信し、主制御基板Cと払出制御基板Hとでそれぞれ停電発生時の乱数カウンタの値をバックアップする。両制御基板C,Hにバックアップされた乱数カウンタの値を電源入時の初期化処理で比較して異常の発生を検出するものである。以下、第2実施例の説明にあたり、前記した第1実施例と同一の部分には同一の符号を付してその説明を省略する。
図11は、第2実施例におけるパチンコ機Pの主制御基板Cにおいて実行されるNMI割込処理のフローチャートである。この処理では、図3に示す第1実施例のNMI割込処理に対して、S91の処理が追加されている。
このNMI割込処理では、停電信号51が主制御基板CのMPU61のNMI端子に入力されると、S1からS5の処理を実行した後に、払出制御基板Hへ乱数カウンタの値に応じたコマンドを送信する(S91)。乱数カウンタの値は、主制御基板Cのメイン処理の中で行われる乱数更新処理(図4、S16参照)によって2ms毎に「1」ずつ更新されており、停電信号51が入力された僅かなタイミングの違いで種々の値を取り得るものである。S91の処理をした後は、電源が完全に断して処理が実行できなくなるまで、処理をループする。
図12は、第2実施例におけるパチンコ機Pの払出制御基板Hにおいて実行されるNMI割込処理のフローチャートである。この処理では、図3に示す第1実施例のNMI割込処理に対してS101及びS102の処理が追加されている。
このNMI割込処理では、停電信号51が払出制御基板HのMPU71のNMI端子に入力されると、S1からS5の処理を実行した後に、主制御基板Cから乱数カウンタの値に関するコマンドを受信したか否かを確認する(S101)。そのコマンドを受信していなければ(S101:No)、コマンドを受信するまで処理の進行を待機する。主制御基板Cから乱数カウンタの値に関するコマンドを受信すると(S101:Yes)、主制御基板Cの乱数カウンタの値をバックアップエリア33aに書き込み(S102)、電源が完全に断して処理が実行できなくなるまで、処理をループする。
図13は、第2実施例におけるパチンコ機Pの主制御基板Cにおいて実行される電源入時の初期化処理のフローチャートである。この処理では、図5に示す第1実施例の初期化処理に対して、S111の処理が変更されている。
この初期化処理では、バックアップが有効であり(S42:Yes)、且つ、クリアスイッチ50cがオンされていなければ(S43:No)、バックアップエリア13aに記憶された停電カウンタ13b及び乱数カウンタの値に応じたコマンドを払出制御基板Hへ送信する(S111)。S111の処理で払出制御基板Hへ送信される乱数カウンタの値は、間近に実行された図11のNMI割込処理において払出制御基板Hへ送信された乱数カウンタの値と同一のはずである。しかし、NMI割込処理が行われた後に主制御基板Cが不正な基板に交換された場合には、NMI割込処理において払出制御基板Hへ送信された乱数カウンタの値とは異なる値が送信される。
図14は、第2実施例におけるパチンコ機Pの払出制御基板Hにおいて電源入時の初期化処理の中で実行される停電回数確認処理のフローチャートである。この処理では、図9に示す第1実施例の停電回数確認処理に対して、S121及びS122の処理が変更されている。
この停電回数確認処理では、主制御基板Cから停電カウンタ13bに関するコマンドを受信し(S91:Yes)、且つ、受信した主制御基板Cの停電カウンタ13bの値が払出制御基板Hの停電カウンタ33bの値と同一である場合(S92:Yes)、そのコマンドに乱数カウンタの値が付加されているか否かを確認する(S121)。乱数カウンタの値が付加されていれば(S121:Yes)、その乱数カウンタの値は、払出制御基板Hのバックアップエリア33aに記憶された乱数カウンタの値と同一であるか否かを確認する(S122)。乱数カウンタの値が同一でなければ(S122:No)、間近に実行された図12のNMI割込処理において受信した乱数カウンタの値と、実行中の停電回数確認処理の中で受信した乱数カウンタの値が異なるので、不正な基板が取り付けられている可能性がある。よって、処理をS93へ移行し、異常の発生に対応した処理を実行する。
一方、S121の処理において主制御基板Cから受信したコマンドに乱数カウンタの値が付加されていない場合には(S121:No)、主制御基板Cのバックアップが有効で無かったか、又は、クリアスイッチ50cがオンされて乱数カウンタの値がクリアされているので、正常な状態であると判断して、この停電回数確認処理を終了する。主制御基板Cから受信したコマンドに付加された乱数カウンタの値が払出制御基板Hのバックアップエリア33aに記憶された乱数カウンタの値と同一である場合にも(S122:Yes)、正常な状態であると判断して、この停電回数確認処理を終了する。
このように、第2実施例の払出制御基板Hは、停電発生時の乱数カウンタの値をバックアップエリア33aに記憶し、そのバックアップエリア33aに記憶された乱数カウンタの値と、電源入時に主制御基板Cから送信される乱数カウンタの値とを比較し、それら乱数カウンタの値が異なる場合には制御を停止する。よって、乱数カウンタの値を比較することで主制御基板Cが交換されたことを払出制御基板Hに確実に検出させることができ、電源断中に行われる不正によって生じる不具合を防止することができる。なお、停電発生時に払出制御基板Hに送信してバックアップする情報は、必ずしも乱数カウンタの値である必要はなく、主制御基板Cと払出制御基板Hとを関連づけられる情報であれば良い。その情報としては、例えば、停電カウンタ13bの値や、停電発生時に実行中の処理を示唆する情報等が例示される。
以上、実施例に基づき本発明を説明したが、本発明は上記実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の変形改良が可能であることは容易に推察できるものである。
例えば、第1実施例では、停電発生時に行われるNMI割込処理の実行回数を主制御基板C及び払出制御基板Hの停電カウンタ13b,33bで計数すると共に、主制御基板Cがその停電カウンタ13bの値を払出制御基板Hへ出力し、払出制御基板Hは、両停電カウンタ13b,33bの値に基づいた制御を行うものであった。しかしながら、必ずしも払出制御基板Hによって停電カウンタ13b,33bの値に基づいた制御を行わせる必要は無く、払出制御基板Hがその停電カウンタ33bの値を主制御基板Cへ出力し、主制御基板Cが両停電カウンタ13b,33bの値に基づいた制御を行うものであっても良い。払出制御基板Hに対する不正行為を主制御基板Cで的確に検出させることができ、球が不正に大量に払い出される等の不正行為による被害を阻止することができる。
また、第1実施例では、一方の制御基板(主制御基板C)から他方の制御基板(払出制御基板H)へのみ停電カウンタ13bの値を出力して停電カウンタ13b,33bの値に基づいて制御が同期して行われているか否かを確認させた。しかしながら、必ずしも1の制御基板でのみ制御の同期を確認させる必要は無く、両制御基板C,Hが共に他方の制御基板へ同期して更新される情報(例えば停電カウンタの値や電源入時からの経過時間等)を別々に出力し、その情報を受信した制御基板が受信した情報に基づいた制御を行うものであっても良い。不正行為に対する信頼性を更に高めた制御を両制御基板C,Hに行わせることができる。
また、第1実施例では、主制御基板C及び払出制御基板Hで同期して実行されるNMI割込処理の実行回数を各制御基板C,Hに設けられた停電カウンタ13b,33bで計数し、両停電カウンタ13b,33bの値に基づいて異常の発生を検出した。しかしながら、必ずしも両制御基板C,Hで処理の実行回数を共に計数して異常の発生を検出する必要は無く、同期して実行されるべき処理が開始された場合にその処理が行われたことを示すコマンドを送信し、他方の制御基板の制御状態に基づいて異常の発生であるか否かを判断させても良い。両制御基板C,Hの制御状態を比較することで、正常な制御状態であるか、又は異常が発生したかを的確に判断させることができ、速やかに異常に対応した処理を行わせることができる。なお、両制御基板C,Hで同期して実行されるべき処理としては、電源入時に行われる図5及び図8に示す初期化処理、初期化処理の中で実行される図5のS44及び図8のS84に示すRAMクリア及び初期化処理、又は、停電発生時に実行される図3のNMI割込処理等が例示される。
また、上記各実施例では、払出制御基板Hが異常の発生を検出した場合には、エラーランプ23及びエラーブザー24によって異常の発生を外部に告知した。しかし、この告知は、必ずしもこれら機器によって行う必要は無く、変動表示が行われるLCD3や遊技に関連した効果音を出力するスピーカーその他の遊技に関する情報を外部へ出力する機器によって異常の発生を告知するものであっても良いし、又は、遊技場を管理するホールコンピュータ等の外部機器へ異常の発生を示唆する信号を出力する出力回路を設けて、遊技場で異常が発生したことを集中して管理するようにしても良い。
本発明を上記実施例とは異なるタイプのパチンコ機等に実施しても良い。例えば、一度大当たりすると、それを含めて複数回(例えば2回、3回)大当たり状態が発生するまで、大当たり期待値が高められるようなパチンコ機(通称、2回権利物、3回権利物と称される)として実施しても良い。また、大当たり図柄が表示された後に、所定の領域に球を入賞させることを必要条件として特別遊技状態となるパチンコ機として実施しても良い。更に、パチンコ機以外にも、アレパチ、雀球、いわゆるパチンコ機とスロットマシンとが融合した遊技機などの各種遊技機として実施するようにしても良い。
なお、スロットマシンは、例えばコインを投入して図柄有効ラインを決定させた状態で操作レバーを操作することにより図柄が変動され、ストップボタンを操作することにより図柄が停止されて確定される周知のものである。従って、スロットマシンの基本概念としては、「複数の図柄からなる図柄列を変動表示した後に図柄を確定表示する可変表示手段を備え、始動用操作手段(例えば操作レバー)の操作に起因して図柄の変動が開始され、停止用操作手段(例えばストップボタン)の操作に起因して、或いは、所定時間経過することにより、図柄の変動が停止され、その停止時の確定図柄が特定図柄であることを必要条件として、遊技者に有利な特別遊技状態を発生させる特別遊技状態発生手段とを備えたスロットマシン」となり、この場合、遊技媒体はコイン、メダル等が代表例として挙げられる。
なお、パチンコ機とスロットマシンとが融合した遊技機の具体例としては、複数の図柄からなる図柄列を変動表示した後に図柄を確定表示する可変表示手段を備えており、球打出用のハンドルを備えていないものが挙げられる。この場合、所定の操作(ボタン操作)に基づく所定量の球の投入の後、例えば操作レバーの操作に起因して図柄の変動が開始され、例えばストップボタンの操作に起因して、或いは、所定時間経過することにより、図柄の変動が停止され、その停止時の確定図柄がいわゆる大当たり図柄であることを必要条件として遊技者に有利な大当たり状態が発生させられ、遊技者には、下部の受皿に多量の球が払い出されるものである。