以下、本発明の実施例について詳細に説明する。図1は、本実施例のパチンコ機GMを示す斜視図である。このパチンコ機GMは、島構造体に着脱可能に装着される矩形枠状の木製外枠1と、外枠1に固着されたヒンジ2を介して開閉可能に枢着される前枠3とで構成されている。この前枠3には、遊技盤5が、裏側からではなく表側から着脱自在に装着され、その前側には、ガラス扉6と前面板7とが夫々開閉自在に枢着されている。
ガラス扉6の外周には、LEDランプなどによる電飾ランプが、略C字状に配置されている。前面板7には発射用の遊技球を貯留する上皿8が装着され、前枠3の下部には、上皿8から溢れ出し又は抜き取った遊技球を貯留する下皿9と、発射ハンドル10とが設けられている。発射ハンドル10は発射モータと連動しており、発射ハンドル10の回動角度に応じて動作する打撃槌によって遊技球が発射される。
上皿8の外周面には、チャンスボタン11が設けられている。このチャンスボタン11は、遊技者の左手で操作できる位置に設けられており、遊技者は、発射ハンドル10から右手を離すことなくチャンスボタン11を操作できる。このチャンスボタン11は、通常時には機能していないが、ゲーム状態がボタンチャンス状態となると内蔵ランプが点灯されて操作可能となる。なお、ボタンチャンス状態は、必要に応じて設けられるゲーム状態である。
上皿8の右部には、カード式球貸し機に対する球貸し操作用の操作パネル12が設けられ、カード残額を3桁の数字で表示する度数表示部と、所定金額分の遊技球の球貸しを指示する球貸しスイッチと、ゲーム終了時にカードの返却を指令する返却スイッチとが設けられている。
図2に示すように、遊技盤5には、金属製の外レールと内レールとからなるガイドレール13が環状に設けられ、その内側の遊技領域5aの略中央には、液晶カラーディスプレイDISPが配置されている。また、遊技領域5aの適所には、図柄始動口15、大入賞口16、複数個の普通入賞口17(大入賞口16の左右に4つ)、通過口であるゲート18が配設されている。これらの入賞口15〜18は、それぞれ内部に検出スイッチを有しており、遊技球の通過を検出できるようになっている。
液晶ディスプレイDISPは、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に表示する装置である。この液晶ディスプレイDISPは、中央部に特別図柄表示部Da〜Dcと右上部に普通図柄表示部19を有している。そして、特別図柄表示部Da〜Dcでは、大当り状態の招来を期待させるリーチ演出が実行されたり、特別図柄表示部Da〜Dc及びその周りでは、当否結果を不確定に報知する予告演出などが実行される。
普通図柄表示部19は普通図柄を表示するものであり、ゲート18を通過した遊技球が検出されると、普通図柄が所定時間だけ変動し、遊技球のゲート18の通過時点において抽出された抽選用乱数値により決定される停止図柄を表示して停止するようになっている。
図柄始動口15は、左右1対の開閉爪15aを備えた電動式チューリップで開閉されるよう例えば構成され、普通図柄表示部19の変動後の停止図柄が当り図柄を表示した場合には、開閉爪15aが所定時間だけ、若しくは、所定個数の遊技球を検出するまで開放されるようになっている。
図柄始動口15に遊技球が入賞すると、特別図柄表示部Da〜Dcの表示図柄が所定時間だけ変動し、図柄始動口15への遊技球の入賞タイミングに応じた抽選結果に基づいて決定される停止図柄で停止する。なお、特別図柄表示部Da〜Dc及びその周りでは、一連の図柄演出の間に、予告演出が実行される場合がある。
大入賞口16は、例えば前方に開放可能な開閉板16aで開閉制御されるが、特別図柄表示部Da〜Dcの図柄変動後の停止図柄が「777」などの大当り図柄のとき、「大当りゲーム」と称する特別遊技が開始され、開閉板16aが開放されるようになっている。
大入賞口16の開閉板16aが開放された後、所定時間が経過し、又は所定数(例えば10個)の遊技球が入賞すると開閉板16aが閉じる。このような動作は、最大で例えば15回まで特別遊技が継続され、遊技者に有利な状態に制御される。なお、特別図柄表示部Da〜Dcの変動後の停止図柄が特別図柄のうちの特定図柄であった場合には、特別遊技の終了後のゲームが高確率状態となるという特典が付与される。
図3は、上記した各動作を実現するパチンコ機GMの全体回路構成を示すブロック図である。図中の一点破線は、主に、直流電圧ラインを示している。
図示の通り、このパチンコ機GMは、AC24Vを受けて各種の直流電圧やシステムリセット信号(電源リセット信号)SYSなどを出力する電源基板20と、遊技制御動作を中心統括的に担う主制御基板21と、主制御基板21から受けた制御コマンドCMDに基づいてランプ演出及び音声演出を実行する演出制御基板22と、演出制御基板22から受けた制御コマンドCMD’に基づいて液晶ディスプレイDISPを駆動する液晶制御基板23と、主制御基板21から受けた制御コマンドCMD”に基づいて払出モータMを制御して遊技球を払い出す払出制御基板24と、遊技者の操作に応答して遊技球を発射させる発射制御基板25と、を中心に構成されている。
但し、この実施例では、主制御基板21が出力する制御コマンドCMDは、コマンド中継基板26と演出インターフェイス基板27を経由して、演出制御基板22に伝送される。また、演出制御基板22が出力する制御コマンドCMD’は、演出インターフェイス基板27を経由して、液晶制御基板23に伝送され、主制御基板21が出力する制御コマンドCMD”は、主基板中継基板28を経由して、払出制御基板24に伝送される。
これら主制御基板21、演出制御基板22、液晶制御基板23、及び払出制御基板24には、ワンチップマイコンを備えるコンピュータ回路がそれぞれ搭載されている。そこで、これらの制御基板21〜24に搭載された回路、及びその回路によって実現される動作を機能的に総称して、本明細書では、主制御部21、演出制御部22、液晶制御部23、及び払出制御部24と言うことがある。なお、演出制御部22、液晶制御部23、及び払出制御部24の全部又は一部がサブ制御部である。
ところで、このパチンコ機GMは、図3の破線で囲む枠側部材GM1と、遊技盤5の背面に固定された盤側部材GM2とに大別されている。枠側部材GM1には、ガラス扉6や前面板7が枢着された前枠3と、その外側の木製外枠1とが含まれており、機種の変更に拘わらず、長期間にわたって遊技ホールに固定的に設置される。一方、盤側部材GM2は、機種変更に対応して交換され、新た盤側部材GM2が、元の盤側部材の代わりに枠側部材GM1に取り付けられる。なお、枠側部材1を除く全てが、盤側部材GM2である。
図3の破線枠に示す通り、枠側部材GM1には、電源基板20と、払出制御基板24と、発射制御基板25と、枠中継基板32とが含まれており、これらの回路基板が、前枠3の適所に各々固定されている。一方、遊技盤5の背面には、主制御基板21、演出制御基板22、液晶制御基板23が、液晶ディスプレイDISPやその他の回路基板と共に固定されている。そして、枠側部材GM1と盤側部材GM2とは、一箇所に集中配置された接続コネクタC1〜C4によって電気的に接続されている。
電源基板20は、接続コネクタC2を通して、主基板中継基板28に接続され、接続コネクタC3を通して、電源中継基板30に接続されている。そして、主基板中継基板28は、電源基板20から受けたシステムリセット信号SYS、RAMクリア信号DEL、電圧降下信号、バックアップ電源BAK、DC12V、DC32Vを、そのまま主制御部21に出力している。同様に、電源中継基板30も、電源基板20から受けたシステムリセット信号SYSや、交流及び直流の電源電圧を、そのまま演出インターフェイス基板27に出力している。なお、演出インターフェイス基板27は、受けたシステムリセット信号SYSを、そのまま演出制御部22と液晶制御部23に出力している。
一方、払出制御基板24は、中継基板を介することなく、電源基板20に直結されており、主制御部21が受けると同様の、システムリセット信号SYS、RAMクリア信号DEL、電圧降下信号、バックアップ電源BAKを、その他の電源電圧と共に直接的に受けている。
ここで、電源基板20が出力するシステムリセット信号SYSは、電源基板20に交流電源24Vが投入されたことを示す電源リセット信号であり、この電源リセット信号によって各制御部21〜24のワンチップマイコンその他のIC素子が電源リセットされるようになっている。
主制御部21及び払出制御部24が、電源基板20から受けるRAMクリア信号DELは、各制御部21,24のワンチップマイコンの内蔵RAMの全領域を初期設定するか否かを決定する信号であって、係員が操作する初期化スイッチSWのON/OFF状態に対応した値を有している。
主制御部21及び払出制御部24が、電源基板20から受ける電圧降下信号は、交流電源24Vが降下し始めたことを示す信号であり、この電圧降下信号を受けることによって、各制御部21、24では、停電や営業終了に先立って、必要な終了処理を開始するようになっている。また、バックアップ電源BAKは、営業終了や停電により交流電源24Vが遮断された後も、主制御部21と払出制御部24のワンチップマイコンの内蔵RAMのデータを保持するDC5Vの直流電源である。したがって、主制御部21と払出制御部25は、電源遮断前の遊技動作を電源投入後に再開できることになる(電源バックアップ機能)。このパチンコ機では少なくとも数日は、各ワンチップマイコンのRAMの記憶内容が保持されるよう設計されている。
一方、演出制御部22と液晶制御部23には、上記した電源バックアップ機能が設けられていない。しかし、先に説明した通り、演出制御部22と液晶制御部23には、電源中継基板30と演出インターフェイス基板27を経由して、システムリセット信号SYSが共通して供給されており、他の制御部21,24と、ほぼ同期したタイミングで電源リセット動作が実現される。
図示の通り、主制御部21は、主基板中継基板28を経由して、払出制御部25に制御コマンドCMD”を送信する一方、払出制御部25からは、遊技球の払出動作を示す賞球計数信号や、払出動作の異常に係わるステイタス信号CONを受信している。ステイタス信号CONには、例えば、補給切れ信号、払出不足エラー信号、下皿満杯信号が含まれる。
また、主制御部21は、遊技盤中継基板29を経由して、遊技盤5の各遊技部品に接続されている。そして、遊技盤上の各入賞口16〜18に内蔵された検出スイッチのスイッチ信号を受ける一方、電動チューリップなどのソレノイド類を駆動している。なお、スイッチ信号には、図柄始動口15から主制御部21に伝送される入賞スイッチ信号SGが含まれる。
図4は、主制御部21のワンチップマイコン21Aの内部構成の一部を図示したものである。ここでは、遊技盤中継基板29を経由して、図柄始動口15の検出スイッチSWから入賞スイッチ信号SGを受ける部分を中心に示している。
図示の通り、ワンチップマイコン21Aは、Z80CPU(Zilog社)相当のCPUと、Z80CTC(counter timer circuit)相当のカウンタタイマ回路CTCと、ROM及びRAMのメモリ回路と、ウォッチドッグタイマWDTと、乱数生成回路GNRと、入力ポートINPとを中心的に内蔵している。
図柄始動口15からの入賞スイッチ信号SGは、遊技盤中継基板29に配置されたバッファ回路BUFを経由して、ワンチップマイコン21Aの乱数生成回路GNRと、入力ポートINPに重複して供給されている。なお、ここでは、入賞スイッチ信号SGが、ワンチップマイコン21Aの外部配線を通して、入力ポートINPに供給されているが、防犯上の観点からは、ワンチップマイコン21Aの内部配線を通して、入力ポートINPに供給されるのが好ましい。
何れにしても、入力ポートINPには、図柄始動口15に限らず、大入賞口16やゲート18の検出スイッチからのスイッチ信号も、合わせて供給されている。なお、説明の都合上、この実施例では、入力ポートINPには、エラー検出スイッチを含んだ合計8ビットのスイッチ信号が供給されていることにする。
図示の通り、バッファ回路BUFは、オープンコレクタ型の出力部を有し、入力側が12Vにプルアップされ、出力側が5Vにプルアップされている。そして、遊技球が図柄始動口15を通過して入賞状態となると、バッファ回路BUFは、正論理のON信号として、入賞スイッチ信号SGを出力する。つまり、本実施例では、バッファ回路BUFの出力トランジスタTrは、通常はON状態であって、遊技球の入賞時にOFF状態となるよう構成されている。
そのため、例えば、違法遊技者が、コネクタCNを外して、入賞スイッチ信号SGの信号ラインに電源電圧5Vを供給してもON状態の入賞スイッチ信号SGを生成することはできない。逆に、バッファ回路BUFの出力トランジスタが、通常はOFF状態であって、遊技球の入賞時にON状態となる場合には、コネクタCNを外して、入賞スイッチ信号SGの信号ラインをグランドに接続するだけで、ON状態の入賞スイッチ信号SGを生成することができセキュリティ上問題が生じるおそれがある。
乱数生成回路GNRは、入賞スイッチ信号SGがON状態になったことを検出して検出内容を保持するラッチレジスタと、計数クロックΦを受けて高速度で更新されるカウンタと、入賞スイッチ信号がON状態となった瞬間のカウンタ値を保持する乱数値レジスタとを有している。
図5は、この乱数生成回路GNRを具体的に示す回路図である。図示の通り、乱数生成回路GNRは、周波数fのクロックパルスをクロック端子CKに受ける第1フリップフロップ41と、第1フリップフロップのQバー出力をクロック端子CKに受ける第2フリップフロップ42と、第1フリップフロップのQ出力を受けて計数動作を実行する2つのカウンタ43,44と、第1と第2のカウンタ43,44の出力を各々受ける第1と第2のラッチ回路45,46と、2つのラッチ回路45,46とCPUデータバスとの間に配置される第1と第2のバッファ回路47,48と、入賞スイッチ信号SGのON状態を入賞検出信号DETとして記憶する入賞記憶回路HITと、を中心に構成されている。クロックパルスは、ワンチップマイコン21Aの外部から供給されるか、或いは、ワンチップマイコン21Aに内蔵されたカウンタタイマ回路CTCから供給される。
入賞記憶回路HITは、第3フリップフロップ60と、第1と第2のANDゲート61,62と、NOTゲート63と、第3バッファ回路64とを中心に構成されている。
本実施例では、入賞記憶回路HITの第3フリップフロップ60と第3バッファ回路64とで、入賞スイッチ信号SGのON状態(入賞検出信号DET)を記憶するラッチレジスタを実現している。また、第1と第2のラッチ回路45,46及び第1と第2のバッファ回路47,47が、全体として乱数値レジスタを構成している。
第1〜第3のフリップフロップ41,42,60は、全てD型フリップフロップで構成されており、クロック端子CKに供給される信号が立上ると、そのときのD入力端子のデータが記憶されてQ出力端子に出力される。また、クリア端子CLRに、Lレベルの信号が供給されると、Q出力が強制的にLレベルとなる一方、Qバー出力がHレベルとなる。
第1と第2のフリップフロップ41,42のクリア端子CLRには、電源基板20から出力される電源リセット信号SYSが直接供給されているので、電源投入時に、Q出力端子は自動的にLレベルとなる。
第1フリップフロップ41は、そのQバー出力が、自らのD入力端子に帰還されている。そのため、第1フリップフロップ41は、周波数fのクロックパルスに対する二分周回路として機能して、そのQ出力端子から、デューティ比50%で周波数f/2のクロックパルスが出力される。本実施例において、このクロックパルスは、第1カウンタ43に供給される計数クロックΦとなる。なお、第1フリップフロップ41のQバー出力端子からは、論理反転された計数クロックΦバーが出力される。
第2フリップフロップ42は、D入力端子に入賞スイッチ信号SGを受けている。また、クロック端子CKには、論理反転された計数クロックΦバーを受けている。そのため、計数クロックΦバーが立上ったタイミングで、入賞スイッチ信号SGが記憶されて、Q出力端子に出力される。この出力信号(ラッチ信号)LTは、入賞記憶回路HITに供給される。
2つのカウンタ43,44は、Q0〜Q7の8ビット出力端子を有するバイナリカウンタである。そして、第1カウンタ43は、第1フリップフロップ41が出力する計数クロックΦをクロック端子CKに受け、第2カウンタ44は、第1カウンタのQ7出力を、クロック端子CKに受けてカウント動作を実行している。したがって、2つのカウンタ43,44からは、計数クロックΦの立上りエッジに同期して更新される0000H〜FFFFHの何れかの数値が出力される。ここで、Hは16進数を意味する。
また、カウンタ43,44のクリア端子CLRには、電源基板20から出力される電源リセット信号SYSが直接供給されているので、電源投入時には、カウンタ43,44の出力が自動的に0000Hにリセットされる。
第1と第2のラッチ回路45,46は、例えば、74825などと同等に構成され、8個のD型フリップフロップを内蔵して構成されている。そして、ラッチ回路45,46のクロック端子CKに供給される信号が立上ると、その時にカウンタ43,44から供給されている各8ビットデータを、乱数値RNDとして記憶して出力する。図示の通り、クロック端子CKには、第1ANDゲート61の出力が供給されている。
第1と第2のバッファ回路47,48は、74244などと同等の汎用のバスバッファであり、CPUからLレベルのチップセレクト信号CS1,CS2をOE(output enable)端子に受けると、ラッチ回路45,46から受けている各8ビットデータ(乱数値RND)を出力する。図示の通り、チップセレクト信号CS2は、バッファ回路48のOE端子と共に、第2ANDゲート62の入力端子にも供給されている。なお、バッファ回路47,48は、3状態バッファであり、OE端子がHレベルであると出力端子はHiZ状態となる。
入賞記憶回路HITを構成する第1のANDゲート61の入力端子には、第2フリップフロップ42のQ出力と、第3フリップフロップ60のQバー出力が供給されている。第2フリップフロップ42のQ出力は、ラッチ信号LTであり、第3フリップフロップ60のQバー出力は、制御信号CTLである。なお、ラッチ信号LTと制御信号CTLは、Hレベルにプルアップされている。
第1ANDゲート61の出力は、第1と第2のラッチ回路45,46のクロック端子CKに供給されると共に、NOTゲート63を経由して、第3フリップフロップ60のクロック端子CKに供給されている。ラッチ回路45,46及び第3フリップフロップ60は、自らのクロック端子CKに受ける信号が立上ると、各々の入力端子に供給されているデータを内部に記憶するラッチ動作をする。そのため、第1ANDゲート61の出力信号の立上りタイミングで、ラッチ回路45,46がラッチ動作を実行する一方、第1ANDゲート61の出力信号の立下がりタイミングで、第3フリップフロップ60がラッチ動作を実行する。但し、第3フリップフロップ60のクロック端子CKにはNOTゲート63を経由した反転ラッチ信号LTバーが供給されているので、ラッチ回路45,46のラッチ動作にやや遅れて、第3フリップフロップ60がラッチ動作する。
第3フリップフロップ60のD入力端子には、Hレベルの電圧Vccが固定的に供給されている。また、第3フリップフロップ60のQ出力は、バッファ回路64に供給されている。なお、第3フリップフロップ60のQ出力は、入賞検出信号DETを意味する。
バッファ回路64は、74244などのバスバッファと同等の回路構成であり、CPUからLレベルのチップセレクト信号CS3を、OE端子に受けると、第3フリップフロップ60から受けている1ビットデータ(入賞検出信号DET)を出力する。なお、バッファ回路64も3状態バッファである。
第2ANDゲート62の入力端子には、チップセレクト信号CS2と電源リセット信号SYSとが供給されている。そして、第2ANDゲート62の出力は、第3フリップフロップ60のクリア端子CLRに供給されている。そのため、チップセレクト信号CS2と電源リセット信号SYSの何れか、又は双方がLレベルとなると、第3フリップフロップ60のQ出力はLレベルとなり、Qバー出力はHレベルとなる。
もっとも、電源リセット信号SYSは、遊技機が正常に動作を開始した後は定常的にHレベルであり、チップセレクト信号CS2は、バッファ回路48のデータがCPUに取得されるデータリードタイミング以外はHレベルである。したがって、第3フリップフロップ60のQバー出力(制御信号CTL)は、電源投入時に、第3フリップフロップ60がクリアされてHレベルとなった後もHレベルを維持する。
このような初期状態で、入賞スイッチ信号SGがON状態となると、ラッチ信号LTが立下るタイミングで、第3フリップフロップ60のQバー出力がLレベルに変わり、バッファ回路48のデータリードタイミングまで、その状態を維持する。一方、バッファ回路48のデータリードタイミングで、第3フリップフロップ60のQバー出力(制御信号CTL)がHレベルに戻った後は、Hレベルを維持する。
図6は、上記した乱数生成回路GNRの各部の波形を示すタイムチャートである。図6(a)(b)に示す通り、計数クロックΦの立上りに同期して、カウンタ43,44の計数値が連続的に更新される。なお、第1カウンタ43が、乱数値RNDの下位8ビットを生成し、第2カウンタ44が、乱数値RNDの上位8ビットを生成する。
このようなカウンタ値の更新動作中、遊技球が図柄始動口15を通過すると、入賞スイッチ信号SGが、Hレベルに立上った後にLレベルに立下がる(ON状態)。なお、入賞スイッチ信号SGは、バッファ回路BUF(図4参照)を経由して主制御部21に供給される。
入賞スイッチ信号SGは、第2フリップフロップ42のD入力端子に供給されているので、計数クロックΦバーが立上ったタイミングで、入賞スイッチ信号SGが第2フリップフロップ42に記憶されて、そのQ出力端子に出力される。そして、この出力信号は、ラッチ信号LTとして、入賞記憶回路HITに供給される(図6(c)〜(e)参照)。
本実施例では、入賞スイッチ信号SGをそのままラッチ信号として使用するのではなく、入賞スイッチ信号SGを、計数クロックΦバーで整形してラッチ信号LTとしている。そのため、入賞スイッチ信号SGの立上り時や、立下り時にリンギングが生じても、そのような振動成分は、計数クロックΦバーによって自動的に吸収される。
第2フリップフロップ42から出力されたラッチ信号LTは、第1ANDゲート61の入力端子を経由して、2つのラッチ回路45,46のクロック端子CKに供給されている。したがって、第1ANDゲート61に供給されている制御信号CTLがHレベルであれば、ラッチ信号の立上りタイミングで、カウンタ43,44の出力データが、乱数値RNDとしてラッチ回路45,46に取得される。図6(h)に示すように、通常のタイミングでは、制御信号CTLがHレベルであるので、入賞スイッチ信号SGに対応して、乱数値RNDがラッチ回路45,46に取得されることになる。
但し、本実施例では、入賞スイッチ信号SGが生じる任意のタイミングで、ラッチ回路45,46を動作させるのではなく、計数クロックΦバーの立上りタイミングでラッチ回路45.46を動作させている。計数クロックΦバーは、デューティ比が50%であり、その立上りタイミングは、計数クロックΦの立下りタイミングに一致する。そして、カウンタ43,44は、計数クロックΦの立上りタイミングで更新されるので、結局、本実施例の構成によれば、カウンタ43,44の更新タイミングから正確に1/2周期遅れて、カウンタ43,44の安定した出力データがラッチされるという利点がある。
これに対して、ランダムなタイミングでラッチ回路を動作させたり、或いは、カウンタの更新タイミングとラッチ動作のタイミングとが十分に離れていないと、更新途中の不合理なカウンタ値を取得してしまう可能性がある。
ところで、ラッチ信号LTは、NOTゲート63において論理反転されて、第3フリップフロップ60のクロック端子CKに供給されている(図6(f)参照)。そのため、ラッチ信号LTの立下りタイミングで、第3フリップフロップ60のQ出力がHレベルとなる。このHレベルは、入賞スイッチ信号SGがON状態となったことを示す入賞検出信号DETに他ならず、バッファ回路64を経由してCPUに把握可能となる。
入賞検出信号DETがHレベルになると、第3フリップフロップ60のQバー出力がLレベルとなる。第3フリップフロップ60のQバー出力は、制御信号CTLとして、第1ANDゲート61に供給されているが、制御信号CTLがLレベルとなったことにより、その後、ラッチ信号LTが、改めてHレベルに立上っても、ラッチ回路45,46がラッチ動作をすることはない。したがって、例えば、入賞スイッチ信号SGの立下り時にリンギングが生じても、本回路では、その影響を受けることがない。
後述するように、CPUは、2mS毎にバッファ64のデータを取得して、入賞検出信号がHレベルか否かを判定している。そして、入賞検出信号がHレベルになれば、CPUは、バッファ47とバッファ48を、この順番でアクセスして、ラッチ回路45,46にラッチされている乱数値(16ビット長)を8ビット毎に取得する。すなわち、チップセレクト信号CS1,CS2は、このデータリードタイミングだけ、この順番にLレベルとなる。
チップセレクト信号CS2がLレベルとなると、第2ANDゲート62の出力がLレベルに変化するので、第3フリップフロップ60のQバー出力が、LレベルからHレベルに変化して、制御信号CTLがHレベルに戻る。したがって、それ以降は、入賞スイッチ信号SGに対応してラッチ信号LTが生成されて、新たなカウンタ値(乱数値)がラッチ回路45,46にラッチされる。
以上の通り、実施例の乱数生成回路GNRでは、一旦、カウンタ43,44のカウンタ値(乱数値RND)がラッチ回路45,46のラッチされた後は、CPUが、バッファ47,48を経由して乱数値RNDを取得しない限り、例え、入賞スイッチ信号SGが変化しても入賞検出信号DETが生成されることはない。したがって、入賞スイッチ信号SGや、ラッチ信号LTにリンギングが生じても、入賞検出信号DETが二重に生成されるおそれがない。
このように、本実施例では、ラッチ回路45,46に乱数値RNDがラッチされてから、その乱数値RNDがCPUに取得されるまでは、入賞禁止区間となる。したがって、遊技球が連続して入賞した場合に、問題が生じる可能性もある。しかし、CPUは、2mS毎に入賞検出信号DETをチェックし、もし、入賞検出信号DETがON状態であれば、直ちに、バッファ47,48を経由して乱数値RNDを取得しているので、実際には、弊害が生じるおそれはない。すなわち、2mS程度の時間間隔で、遊技球が連続して入賞することは、遊技球の移動速度を考慮すれば生じ得ない。
また、乱数値RNDが取得されると、入賞検出信号DETが自動的にOFFレベルに戻るので、次回のチェック処理において誤判定が生じることもない。
続いて、遊技動作を統括的に制御する主制御部21のプログラムの概要を説明する。図7〜図9は、主制御部21の制御プログラムを示すフローチャートである。主制御部21の制御プログラムは、電源電圧の復旧や投入に基づいて起動されるシステムリセット処理(図7)と、所定時間毎(2mS)に起動されるマスク可能なタイマ割込み処理(図8(a))とで構成されている。
以下、図7を参照しつつ、システムリセット処理プログラム(メイン処理)について説明する。メイン処理が開始されるのは、停電状態からの復旧時のように初期化スイッチSWがOFF状態で電源がON状態になる場合と、遊技ホールの開店時のように、初期化スイッチSWがON操作されて電源がON状態になる場合とがある。なお、制御プログラムが暴走したことにより、ウォッチドッグタイマWDTが起動してCPUが強制的にリセットされる場合もある。
何れの場合でも、Z80CPUは、最初に自らを割込み禁止状態に設定すると共に(ST1)、割込みモード2に設定する(ST2)。また、CPU内部のスタックポインタSPの値を、スタック領域の最終アドレスに初期設定すると共に(ST3)、ワンチップマイコンの各部を含めて内部レジスタの値を初期設定する(ST4)。
続いて、入力ポートからRAMクリア信号DELを取得する(ST5)。RAMクリア信号DELとは、ワンチップマイコン21Aの内蔵RAMの全領域を初期設定するか否かを決定する信号であって、係員が操作する初期化スイッチSWのON/OFF状態に対応した値を有している。
次にRAMクリア信号のレベルが判定されるが(ST6)、RAMクリア信号がON状態であったと仮定すると、内蔵RAMの全領域がゼロクリアされる(ST10)。したがって、図8(b)のステップST37の処理でセットされたバックアップフラグBFLの値は、他のチェックサム値などと共にゼロとなる。
次に、RAM領域がゼロクリアされたことを報知するための電源投入コマンドが出力され(ST11)、タイマ割込み動作(図8(a))を起動する割込み信号INTを出力するCTCを初期設定する(ST12)。そして、CPUを割込み禁止状態にセットした状態で(ST13)、各種のカウンタついて更新処理を実行し(ST14)、その後、CPUを割込み許可状態に戻してステップST13に戻る。なお、ステップST14で更新されるカウンタには、外れ図柄用カウンタが含まれているが、この外れ図柄用カウンタは、図8(a)の特別図柄処理(ST27)における大当り抽選処理の結果が外れ状態となった場合に、どのような態様の外れゲームを演出するかを決定するためのカウンタである。
さて、ステップST6の判定処理に戻って説明すると、CPUがウォッチドッグタイマWDTによって強制的にリセットされた場合や、停電状態からの復旧時には、RAMクリア信号はOFF状態である。そして、このような場合には、ステップST6の判定に続いて、バックアップフラグBFLの内容が判定される(ST7)。バックアップフラグBFLとは、図8(b)の電源監視処理の動作が実行されたことを示すデータであり、この実施例では、電源遮断時のステップST37の処理でバックアップフラグBFLが5AHとされ、電源復帰後のステップST33の処理でゼロクリアされる。
電源投入時や、停電状態からの復旧時である場合には、バックアップフラグBFLの内容が5AHの筈である。但し、何らかの理由でプログラムが暴走状態となり、ウォッチドッグタイマによるCPUリセット動作が生じたような場合には、バックアップフラグBFL=00Hである。したがって、BFL≠5AH(通常はBFL=00H)となる場合には、ステップST7からステップST10の処理に移行させて遊技機の動作を初期状態に戻す。
一方、バックアップフラグBFL=5AHであれば、チェックサム値を算出するためのチェックサム演算を実行する(ST8)。ここで、チェックサム演算とは、内蔵RAMのワーク領域を対象とする8ビット加算演算である。そして、チェックサム値が算出されたら、この演算結果を、RAMのSUM番地の記憶値と比較をする(ST9)。
SUM番地には、電圧降下時に実行される電源監視処理(図8(b))において、同じチェックサム演算によるチェックサム値が記憶されている(ST38)。そして、記憶された演算結果は、内蔵RAMの他のデータと共に、バックアップ電源によって維持されている。したがって、本来は、ステップST9の判定によって両者が一致する筈である。
しかし、電源降下時にチェックサム演算(ST38)の実行できなかった場合や、実行できても、その後、メイン処理のチェックサム演算(ST8)の実行時までの間に、ワーク領域のデータが破損している場合もあり、このような場合にはステップST9の判定結果は不一致となる。判定結果の不一致によりデータ破損が検出された場合には、ステップST10の処理に移行させてRAMクリア処理を実行し、遊技機の動作を初期状態に戻す。一方、ステップST9の判定において、チェックサム演算(ST8)によるチェックサム値と、SUM番地の記憶値とが一致する場合には、ステップST12の処理に移行する。
続いて、上記したメイン処理を中断させて、2mS毎に開始されるタイマ割込み処理プログラム(図8(a))を説明する。タイマ割込みが生じると、CPUのレジスタを保存することなく、直ちに電源監視処理が実行される(ST20)。これは、タイマ割込み処理が起動されるタイミングが、ステップST15の直後に固定されているためである。
電源監視処理(ST20)では、電源基板20から供給されている電圧降下信号のレベルを判定するが、具体的な処理内容については後述する。電源監視処理(ST20)が終わると、普通図柄処理(ST26)における抽選動作で使用される当り用カウンタRGの値が更新される(ST21)。なお、特別図柄処理(ST27)における抽選動作で使用される大当り判定用の乱数値RNDについては、図5の乱数生成回路GNRで生成されるので、ステップST21の処理で更新されることはない。
当り乱数更新処理(ST21)が終わると、各遊技動作の時間を管理しているタイマについて、タイマ減算処理が行なわれる(ST22)。ここで減算されるタイマは、主として、電動チューリップや大入賞口の開放時間やその他の遊技演出時間を管理するために使用される。
続いて、図柄始動口15や大入賞口16の入賞検出スイッチを含む各種スイッチ類のON/OFF信号が入力され、ワーク領域にON/OFF信号レベルや、その立上り状態が記憶される(ST23)。図9(a)は、スイッチ入力処理(ST23)を詳細に示すフローチャートである。
先ず、ワンチップマイコン21Aの入力ポートINP(図4)から、連続して二度8ビットデータが入力される(ST50〜ST51)。そして、同一のデータが連続して取得されるまで、この処理(ST50〜ST51)を繰り返す(ST52)。したがって、入賞スイッチ信号SGを含む各種のスイッチ信号に、リンギングが生じていても、その振動が収まった段階で入力データが正しく取得されることになる。
このようにして、同一のデータが連続して取得された場合には、その入力データをCPUのBレジスタに保存する(ST53)。先に説明した通り、この実施例では、この8ビットデータは全て有意なデータであるので、マスク処理などは不要である。
次に、1つ前の割込み処理時における、スイッチ信号(8ビット)のON/OFF状態を記憶するLVL番地のデータをCPUのAレジスタに取得してビット反転させる(ST54)。そして、今回取得したスイッチ信号とAND演算を実行してCPUのAレジスタに格納する(ST55)。その結果、前回の取得データ(LVL番地)と、今回の取得データ(Bレジスタ)とが比較されることになり、Aレジスタの8ビットデータのうち、「0」から「1」に変化したビットだけが「1」となる。「1」となったビットは、そのビットに該当するスイッチ信号が立上ったことを示している。
そこで、CPUのBレジスタの値を、LVL番地に新規に格納すると共に、Aレジスタの値をEDG番地に格納する(ST56)。したがって、以降は、EDG番地を参照するだけで、今回の割込み処理時に、LレベルからHレベルに立上ったスイッチ信号を把握することができる。
以上のようなスイッチ入力処理(ST23)が終わると、次に、エラー管理処理が行われる(ST24)。エラー管理処理は、遊技球の補給が停止したり、遊技球が詰まっていないかなど、機器内部に異常が生じていないかの判定を含んでいる。
次に、払出制御部24から受けた賞球計数信号に基づく管理処理を実行した後(ST25)、普通図柄処理を行う(ST26)。普通図柄処理とは、電動チューリップなど、普通電動役物を作動させるか否かの判定を意味する。具体的には、ステップST23のスイッチ入力結果によって遊技球がゲートを通過していると判定された場合に、乱数更新処理(ST21)で更新された当り用カウンタRGを、当り当選値と対比して行われる。そして、対比結果が当選状態であれば当り中の動作モードに変更する。また、当り中となれば、電動チューリップなど、普通電動役物の作動に向けた処理を行う。
続いて、特別図柄処理を行う(ST27)。特別図柄処理とは、大入賞口16など特別電動役物を作動させるか否かの判定であり、その要部は、図9(b)に示す通りである。先ず、最初に、乱数生成回路GNRの第3フリップフロップ60が、Hレベルの入賞検出信号DET(ラッチフラグ)を保持しているか否かが判定される。具体的には、第3バッファ回路64から8ビットデータを取得して(ST60)、ラッチフラグに対応するビットを判定する(ST61)。そして、入賞検出状態であると判定された場合には、乱数生成回路GNRのバッファ47,48から、16ビット長の乱数値RNDを8ビット毎に取得してTEMP番地とTEMP+1番地に記憶する(ST62)。なお、乱数値RNDの上位8ビットを取得した段階で、入賞検出信号DETはLレベルに戻り、制御信号CTLはHレベルに戻る(図6参照)。
次に、EDG番地のデータを判定して、入賞スイッチ信号SGに対応するビットが「1」となっているか否かを判定する(ST63)。先に説明した通り、スイッチ入力処理において、入力ポートINPのデータを取得して(ST50〜ST51)、入賞スイッチ信号SGが立上ったか否かは、EDG番地に記憶されている(ST56)。したがって、EDG番地の記憶内容によって、入賞スイッチ信号SGが立上っていないと判定される場合には、大当り抽選処理(ST66)をスキップする。
一方、EDG番地の記憶内容によって、入賞スイッチ信号SGが立上ったと判定される場合には、TEMP番地以下の16ビットデータを、LOT番地とLOT+1番地にコピーする(ST64)。そして、TEMP番地とTEMP+1番地に、大当り抽選にとっての無効データを格納する。ここで、無効データとは、これを乱数値として大当り抽選に供しても、大当り抽選処理がスキップされるデータである。なお、簡易的には、無効データは、それを乱数値として大当り抽選に供しても、大当り状態とはならないハズレデータであっても良い。
次に、LOT番地以降に格納されている16ビットデータを乱数値RNDに使用して大当り抽選処理を実行する(ST66)。そして、図示省略しているが、抽選結果が当選状態であれば大当り中の動作モードに変更する。また、大当り中となれば、大入賞口など種特別電動役物の作動に向けた処理を行う。
このような特別図柄処理(ST27)の後、主制御部21で管理するLEDについて点灯動作を進行させると共に(ST28)、電動チューリップや大入賞口などの開閉動作を実現するソレノイド駆動処理を実行した後(ST29)、CPUを割込み許可状態EIに戻してタイマ割込みを終える(ST30)。その結果、割込み処理ルーチンからメイン処理の無限ループ処理(図7)に戻り、ステップST17の処理が実行される。
以上の通り、本実施例では、入賞スイッチ信号SGを二重にチェックしており、ノイズなどの影響で、万一、入賞検出信号DETがビット化けしても、不合理な大当り状態が発生することがない。また、二度繰り返すデータ入力処理(ST50〜ST51)によっても、リンギングなどの悪影響を排除できない場合でも、不合理な大当り状態が発生することはない。以下、これらの点について図9(d)に基づいて確認する。
通常の場合には、図9(d)のNo.1又はNo.4のように、ステップST60の処理で取得された入賞検出信号DETのH/Lレベル(ON/OFF状態)と、ステップST56の処理で格納されたEDG番地の内容とが正しく整合する。したがって、このような正常時には、例えば、入賞検出信号DET(ラッチフラグ)のON時には、乱数値RNDがTEMP番地以下に取得され(ST62)、その乱数値RNDがLOT番地以下にコピーされた後(ST64)、LOT番地以下にコピーされた乱数値RNDに基づいて大当り抽選処理が実行される(ST66)。
また、正常時には、入賞検出信号DET(ラッチフラグ)のOFF時には、ステップST62の処理がスキップされた後、ステップST63の判定によって大当り抽選処理がスキップされる。
次に、図9(d)のNo.2の異常時を検討する。この場合には、入賞検出信号DETがOFF状態であると判定されるので、ステップST62の処理がスキップされる。したがって、TEMP番地以下のデータは、無効データのままであり、有意なデータは格納されない。
その後、ステップST63の判定では、該当ビットがON状態であるので、ステップST64〜ST66の処理が実行されてしまう。しかし、TEMP番地以下には、無効データが格納されているので、LOT番地以下にコピーされた無効データが大当り抽選処理(ST66)に供されることになり、乱数値RNDの無効性によって大当り抽選処理がスキップされる。したがって、図9(d)のNo.2の異常時にも何の弊害も何も生じない。
続いて、図9(d)のNo.3の異常時を検討する。この場合には、入賞検出信号DETがON状態であると誤判定されるので、乱数値RNDがTEMP番地に格納されてしまう(ST62)。しかし、ステップST63の判定では、入賞スイッチ信号SGが立上っていないと判定されるので、大当り抽選処理(ST66)が実行されることはなく、何の弊害も生じない。なお、その後、正常にNo.4の状態が発生すれば、その段階でTEMP番地以下のデータが更新され、そのデータに基づいて大当り抽選処理(ST66)が実行される。
ところで、スイッチ入力処理(ST23)の実行タイミングと、特別図柄処理(ST27)の実行タイミングとに時間的ズレがあるため、スイッチ入力処理時(ST23)には入賞スイッチ信号SGがOFF状態であるのに、特別図柄処理時(ST27)には、入賞スイッチ信号SGがON状態となる場合もあり得る。しかし、本実施例では、先に実行を終えているスイッチ処理(ST23)の判定結果を、ラッチフラグ(入賞検出信号DET)の判定の後で判定するので(ST61,ST63参照)、何ら弊害が生じない。
すなわち、この場合には、最初のタイマ割込み時、スイッチ入力処理(ST23)の後で判定するラッチフラグ(入賞検出信号DET)がON状態になっているので、ST61→ST62の経路を経て、乱数値RNDがTEMP番地に格納される。しかし、スイッチ入力処理時には、入賞スイッチ信号が未だOFF状態であったので、ステップST63の処理を経てタイマ割込み処理が終わってしまう。なお、このタイマ割込み時において、乱数値RNDがTEMP番地以下に取得されたタイミングで(ST62)、ラッチフラグ(入賞検出信号DET)はOFF状態に戻っている(図6(g)参照)。
したがって、次回のタイマ割込み時には、ST60→ST61→ST63の経路を経て、ステップST62の処理はスキップされる。そして、その後、前回のタイマ割込み時にTEMP番地以下に格納された乱数値RNDが、LOT番地以下にコピーされ、その乱数値RNDに基づいて大当り抽選処理が実行される(ST66)。そのため、スイッチ入力処理(ST23)の実行タイミングと、特別図柄処理(ST27)の実行タイミングとに時間的ズレは、何ら弊害を生じない。
続いて、図8(b)に示す電源監視処理(ST20)について念のため説明する。電源監視処理(ST20)では、先ず、電源基板20から供給される電圧降下信号を、入力ポート(不図示)を通して取得し(ST31)、それが異常レベルでないか判定する(ST32)。そして、異常レベルでない場合には、異常回数カウンタとバックアップフラグBFLをゼロクリアして処理を終える(ST33)。
一方、電圧降下信号が異常レベルである場合には、異常回数カウンタをインクリメント(+1)して(ST34)、計数結果が上限値MAXを超えていないかを判定する(ST35)。これは、入力ポートからの取得データが、ノイズなどの影響でビット化けしている可能性があることを考慮したものであり、所定回数(例えば、上限値MAX=2)連続して異常レベルを維持する場合には、交流電源が現に遮断されたと判定する。
このように、本実施例では、電源遮断時にも、直ぐには以降のバックアップ処理を開始せず、動作開始のタイミングが、MAX×2mSだけ遅れる。しかし、(1)電源降下信号は、直流電源電圧の降下ではなく、交流直流電圧の降下を検出すること、(2)直流電源電圧は、大容量のコンデンサによって交流電源の遮断後もしばらくは維持されること、(3)電源監視処理が高速度(2mS毎)で繰り返されること、(4)バックアップ処理が極めてシンプルであり、迅速に終わることから、実質的には何の弊害もない。
ところで、ステップST35の判定の結果、異常回数カウンタの計数値が上限値MAXに一致した場合には、異常回数カウンタをゼロクリアした後(ST36)、バックアップフラグBFLに5AHを設定する(ST37)。次に、メインルーチンのステップST7の場合と、全く同じ演算を、全く同じ作業領域(ワークエリア)に対して実行し、その演算結果を記憶する(ST38)。なお、実行される演算は、典型的には8ビット加算演算である。
そして、その後はワンチップマイコン21AをRAMアクセス禁止状態に設定すると共に(ST39)、全ての出力ポートの出力データをクリアする(ST40)。その結果、同種の電源監視処理を主制御部21より遅れて開始する払出制御部24に対して、不合理なデータが送信させることが防止される。以上のバックアップ処理が終われば、CTCに対する設定処理によって割込み信号INTの生成を禁止すると共に、無限ループ処理を繰り返しつつ直流電源電圧が降下するのを待つ(ST41)。なお、このタイミングでは、CPUは、もともと割込み禁止状態であるが(ST30参照)、電源電圧の降下による誤動作の可能性を、可能な限り排除する趣旨から、本実施例では、CTCからの割込み信号INTの出力も禁止している。
以上、本発明の実施例を具体的に説明したが、具体的な記載内容は何ら本発明を限定するものではなく、各種の改変が可能である。例えば、実施例の説明では、ラッチフラグの値をタイマ割込み処理でチェックする構成を採ったが(フラグセンス方式)、入賞検出信号DETを直接CPUの割込み端子に供給する構成を採っても良い。
また、セキュリティレベルを上がるためには、遊技盤中継基板29と主制御基板21との間に、2つの伝送経路を設け、同一の入賞スイッチ信号を別の経路で伝送するのが好ましい。
図10は、この構成を図示したものであり、乱数生成回路GNRに供給される入賞スイッチ信号SGと、入力ポートINPに供給される入賞スイッチ信号SGとを別のコネクタCN1,CN2を通して、遊技盤中継基板29から受けている。そのため、例えば、コネクタCN1を外して、遊技盤中継基板29とコネクタCN1の間に違法基板を取り付けても、違法な大当り抽選処理を実行させることはできない。
図示例の場合には、違法な入賞スイッチ信号SGを生成するには、本来の信号ラインを切断した上で、例えば、遠隔操作によってスイッチ回路S1をON/OFF動作させる必要があるが、そのようなことをしても、入力ポートINPに供給される入賞スイッチ信号SGをON状態にすることはできない。なお、切断箇所の上流側にスイッチ回路S2を設け、これをスイッチ回路S1に同期してON/OFF動作させても、バッファ回路BUFのトランジスタがON状態であるので違法行為が成功することはない。この点、バッファ回路BUFのトランジスタが定常的にOFF状態である構成を採ると、違法行為を有効に排除できない(図10(b)参照)。