以下、本発明の実施形態について詳細に説明する。図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の適所には、左右2つの図柄始動口15A,15Bと、単一の大入賞口16と、左右4つの普通入賞口17と、左右2つの通過口であるゲート18とが配設されている。これらの入賞口及びゲート15〜18は、それぞれ内部に検出スイッチを有しており、遊技球の通過を検出できるようになっている。
液晶ディスプレイDISPの下部には、7セグメントLEDやドットマトリクスなどで構成される特別図柄表示部SPa,SPbが設けられている。特別図柄表示部は、左右の図柄始動口15A,15Bに対応して2つ設けられており、各図柄始動口15A,15Bに遊技球が入賞することを条件に実行される大当り抽選の抽選結果を明示するための表示部である。各特別図柄表示部SPa,SPbは、対応する図柄始動口15A,15Bに遊技球が入賞すると、表示内容の変動動作を開始し、その後、大当り状態か否かの抽選結果を表示して停止するようになっている。図示のように、特別図柄表示部SPa,SPbが7セグメントLEDで構成されている場合、大当り状態であれば特別図柄(例えば「1」〜「9」)の何れかを表示し、ハズレ状態あれば「−」を表示する。
特別図柄表示部SPa,SPbの下部には、それぞれ4個のLEDランプで構成された2つの抽選保留数表示部14A,14Bが、図柄始動口15A,15Bに対応して設けられている。抽選保留数表示部14A,14Bは、特別図柄表示部SPa,SPbの変動動作中に、図柄始動口15A,15Bに更に遊技球が入賞したことを示しており、4個を限度に遊技球の入賞が記憶され、その後の大当り抽選処理が保留状態となる。
本実施形態の場合、液晶ディスプレイDISPは、特別図柄表示部として機能するのではなく、演出図柄を変動表示する演出図柄表示部として機能している。そして、特別図柄表示部SPa又は特別図柄表示部SPbと同期した演出動作を実行している。具体的には、大当り状態に係わる演出図柄(簡易的には、特別図柄と同じ「1」〜「9」)を変動表示すると共に、背景画像や各種のキャラクタなどをアニメーション的に表示している。
液晶ディスプレイDISPの右上部には、普通図柄表示部19が設けられている。普通図柄表示部19は普通図柄を表示するものであり、ゲート18を通過した遊技球が検出されると、表示される普通図柄が所定時間だけ変動し、遊技球のゲート18の通過時点において抽出された抽選用乱数値により決定される停止図柄を表示して停止するようになっている。なお、普通図柄の変動動作中に、遊技球がゲート18を通過した場合には、4個を上限として変動動作の開始が保留される。
大入賞口16は、例えば前方に開放可能な開閉板16aで開閉制御されるが、特別図柄表示部SPa,SPbと演出図柄表示部DISPの停止図柄が「7」及び「7・7・7」などの特別図柄のとき、「大当り」と称される特別遊技が開始され、開閉板160が開放されるようになっている。
大入賞口16の開閉板16aが開放された後、所定時間が経過し、又は所定数(例えば10個)の遊技球が入賞すると開閉板16aが閉じる。このような動作は、最大で例えば15回まで特別遊技が継続され、遊技者に有利な状態に制御される。なお、特別図柄表示部の変動後の停止図柄が特別図柄のうちの特定図柄であった場合には、特別遊技の終了後のゲームが高確率状態となるという特典が付与される。
図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によって電気的に接続されている。接続コネクタC1〜C4は、この実施形態では、遊技盤5の背面視左下に集中配置されている。そして、ガラス扉6を開放した状態で、前枠3の表側から、遊技盤5の左端を前枠3に係止して回転支点を確保し、確保した回転支点を中心に遊技盤5を回転させることで、前枠3の内側に遊技盤5を嵌合させる。なお、遊技盤5を嵌合させると、全ての接続コネクタC1〜C4が接続状態となり、それだけで枠側部材GM1と盤側部材GM2の接続が完了し、パチンコ機GMが動作可能な状態となる。
図3に示す通り、電源基板20は、接続コネクタC2を通して、主基板中継基板28に接続され、接続コネクタC3を通して、電源中継基板30に接続されている。そして、主基板中継基板28は、電源基板20から受けたシステムリセット信号SYS、RAMクリア信号DEL、電圧降下信号、バックアップ電源、DC12V、DC32Vを、そのまま主制御部21に出力している。同様に、電源中継基板30も、電源基板20から受けたシステムリセット信号SYSや、交流及び直流の電源電圧を、そのまま演出インターフェイス基板27に出力している。なお、演出インターフェイス基板27は、受けたシステムリセット信号SYSを、そのまま演出制御部22と液晶制御部23に出力している。
一方、払出制御基板24は、中継基板を介することなく、電源基板20に直結されており、主制御部21が受けると同様の、システムリセット信号SYS、RAMクリア信号DEL、電圧降下信号、バックアップ電源を、その他の電源電圧と共に直接的に受けている。
ここで、電源基板20が出力するシステムリセット信号SYSは、電源基板20に交流電源24Vが投入されたことを示す電源リセット信号であり、この電源リセット信号によって各制御部21〜24のワンチップマイコンその他のIC素子が電源リセットされるようになっている。
主制御部21及び払出制御部24が、電源基板20から受けるRAMクリア信号DELは、各制御部21,24のワンチップマイコンの内蔵RAMの全領域を初期設定するか否かを決定する信号であって、係員が操作する初期化スイッチSW(図4の右下部参照)のON/OFF状態に対応した値を有している。初期化スイッチSWをON操作すると、RAMクリア信号DELがLレベルとなり、初期化スイッチSWから手を離すと、RAMクリア信号DELがHレベルに戻る。
主制御部21及び払出制御部24が、電源基板20から受ける電圧降下信号は、交流電源24Vが降下し始めたことを示す信号であり、この電圧降下信号を受けることによって、各制御部21、24では、停電や営業終了に先立って、必要な終了処理を開始するようになっている。また、バックアップ電源は、営業終了や停電により交流電源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に内蔵された検出スイッチのスイッチ信号を受ける一方、電動チューリップなどのソレノイド類を駆動している。なお、スイッチ信号には、図柄始動口15A,15Bから主制御部21に伝送される二系統の入賞スイッチ信号SWa,SWbが含まれる(図5(a)参照)。
図4は、主制御部21の回路構成のうち、特に、乱数生成回路を示す回路図である。乱数生成回路は、図柄始動口15A,15Bへの遊技球の入賞時に実行される大当り抽選処理で使用される乱数値RNDに密接に関連しており、遊技盤中継基板29から受ける二系統の入賞スイッチ信号SWa,SWbに基づいて乱数値RNDを生成している。
図示の通り、乱数生成回路は、入力ポートIN及び出力ポートOUTを内蔵するワンチップマイコン21Aと、計数クロックΦを生成する発振回路40と、図柄始動口15A,15Bから二系統の入賞スイッチ信号SWa,SWbを受けるバッファBUFと、ワンチップマイコン21Aが出力する検査パルスTSa,TSbとバッファBUFが出力する入賞スイッチ信号SWa,SWbとを受けるORゲート群41と、ORゲート群41の出力信号SGa,SGbを一時保持する入賞ラッチ回路42と、計数クロックΦをカウントする2系列の計数回路43と、計数回路43の計数動作の異常を検出する異常検出回路44と、電源基板20から受けるRAMクリア信号DELを保持する信号ラッチ回路45と、を中心に構成されている。
ORゲート群41に供給される入賞スイッチ信号SWa,SWbは、ワンチップマイコン21Aの入力ポートINにも供給されており、CPUコアは、定期的なスイッチ入力処理によって、図柄始動口15A,15Bのスイッチ信号のON状態を重複して把握するようになっている。そして、入賞スイッチ信号SWa,SWbのON状態を把握したCPUコアは、計数回路43の16ビットデータを取得して、大当り抽選用の乱数値RNDとする。なお、16ビットデータは、CPUコアの処理能力に対応して8ビット毎に取得される。
発振回路40は、25MHz程度の高周波パルスを発振する水晶発振回路OSCと、トグル型に配線されたD型フリップフロップFF1とで構成されている。そして、水晶発振回路OSCの出力信号がD型フリップフロップFF1のクロック端子CLKに供給されることで、発振周波数が二分周されて、12.5MHz程度の周波数の計数クロックΦとなる。
入賞ラッチ回路42は、2つのD型フリップフロップFF2,FF3で構成されている。そして、各フリップフロップFF2,FF3のD入力端子には、ORゲート群を通過した出力信号SGa,SGbがそれぞれ供給されている。一方、各フリップフロップFF2,FF3のクロック端子CLKには、反転計数クロックΦ’が供給されている。そのため、反転計数クロックΦ’の信号エッジにおけるD入力端子の値(つまり、出力信号SGa,SGbのレベル値)が、反転計数クロックΦ’に同期して、各フリップフロップFF2,FF3に取得される。
計数回路43は、2系統の16ビットカウンタCTa,CTbと、カウンタCTa,CTbの出力を受ける各16ビット長の2つのラッチ(計数値保持回路)Ra,Rbと、前記ラッチRa,Rbの出力のうち、制御信号CTLで選択された8ビットデータを出力する出力レジスタRoと、を中心に構成されている。16ビットカウンタCTa,CTbは、共にリップルカウンタ形式の二進カウンタである。なお、16ビットカウンタCTaの桁上り信号CYaは、検知パルスPLとして出力される。
第一ラッチRaと第二ラッチRbには、フリップフロップFF2,FF3のQ出力信号であるラッチクロックRCKが供給されている。そして、ラッチクロックRCKのエッジに同期して、その時のカウンタCTa,CTbの計数値が、16ビット長のラッチRa,Rbに取得され、次のラッチクロックRCKを受けるまでその値が保持される。
出力レジスタRoは、ワンチップマイコン21Aが出力する制御信号CTLに基づいて動作している。制御信号CTLは、出力切替用の4ビットデータであり、第一ラッチRaの上位8ビット、第一ラッチRaの下位8ビット、第二ラッチRbの上位8ビット、第二ラッチRbの下位8ビットの何れかが選択されて、ワンチップマイコン21Aのデータバスに出力される。なお、出力レジスタRoの出力は、Hレベル、Lレベル、及びハイ・インピーダンスの3ステイトの何れかである。
異常検出回路44は、トグル型に配線されたD型フリップフロップFF4と、ウォッチドッグ回路46とで構成されている。D型フリップフロップFF4のクロック端子CLKには、計数回路43が出力する検知パルスPLが供給されている。そのため、D型フリップフロップFF4のQ出力端子からは、検知パルスPLを二分周した出力パルスが出力される。
この実施形態では、ウォッチドッグ回路46として、専用ICであるTA8030S(TOSHIBA)が使用されている。このウォッチドッグ回路46では、クリア端子WDに受けるクリアパルスが途絶えると、抵抗R1とコンデンサC1を構成要素とする発振回路が自走状態となり、出力端子RST1からパルス信号が出力される。但し、クリア端子WDに定期的なクリアパルスが供給されている状態では、出力端子RST1はHレベルを維持する。
図示の通り、ウォッチドッグ回路46のクリア端子WDには、二分周された検知パルスPLが、微分コンデンサC3を経由して供給されている。したがって、カウンタCTaが定期的に桁上がり信号CYaを出力している正常状態では、検知パルスPLがクリアパルスとして機能するので、ウォッチドッグIC46の出力端子RST1がHレベルを維持する。一方、カウンタCTaが計数動作を停止すると、クリアパルス(検知パルスPL)が途絶えるので、自走状態のウォッチドッグIC46の出力端子RST1からパルス信号(異常検出信号ABN)が出力される。
この異常検出信号ABNは、2つのNOTゲートG3,G4による波形整形回路を経由して、ワンチップマイコン21Aの入力ポートINに供給されている。したがって、ワンチップマイコン21Aでは、異常検出信号ABNのレベルを定期的に判定することで、乱数生成回路の異常を把握することができる。乱数生成回路のカウンタCTa,CTbの出力値は、大当り抽選処理の乱数値RNDとして使用されるので、設計通りに高速で更新されることが極めて重要であり、異常検出回路44の意義は大きい。
信号ラッチ回路45は、D入力端子がHレベルに固定されたD型フリップフロップFF5を中心に構成されている。そして、D型フリップフロップFF5のQバー出力は、ワンチップマイコン21Aの入力ポートINに供給されている。また、クロック端子CLKは、抵抗R4でプルアップされると共に、電源基板20からのRAMクリア信号DELを受けている。このフリップフロップFF5では、クロック端子CLKに供給されるRAMクリア信号DELの立ち上がりエッジに同期して、D入力端子のHレベルデータがQ出力端子に保持される。
RAMクリア信号DELは、係員が初期化スイッチSWを押圧操作するとLレベルとなり、手を離すとHレベルとなる。したがって、係員が初期化スイッチSWから手を離したタイミングに合わせて、入力ポートINにLレベルの信号が供給されることになり、ワンチップマイコン21Aは、入力ポートINをアクセスすることで、係員による初期化スイッチSWのON操作を把握できることになる。
D型フリップフロップFF5のクリア端子CLRは、ワンチップマイコン21Aの出力ポートOUTに接続されている。また、D型フリップフロップFF5のクリア端子CLRは、コンデンサC2及び抵抗R2を通してアースされ、抵抗R3を通して電源電圧を受けている。ここで、コンデンサC2と抵抗R2,R3とで電源リセット回路を構成しており、遊技機の電源投入によって、D型フリップフロップFF5は、自動的にリセット状態とされる。この結果、D型フリップフロップFF5のQバー出力はHレベルとなり、係員が初期化スイッチSWをON操作しない限り、このHレベルが維持される。
一方、係員が初期化スイッチSWをON操作すると、D型フリップフロップFF5のQバー出力が、HレベルからLレベルに変化して、この状態が維持される。そこで、必要時には、ワンチップマイコン21Aの出力ポートOUTからLレベルのパルス信号を出力することで、D型フリップフロップFF5を初期状態に復帰させるようにしている。
このように、本実施形態では、RAMクリア信号DELを一時保持するフリップフロップFF5を特に設けている。そのため、遊技機の電源投入後、仮に、ワンチップマイコン21Aが、RAMクリア信号DELをチェックするまでの経過時間が長くても、初期化スイッチSWのON操作を見逃すおそれがない。また、係員による初期化スイッチSWのON操作が不適切で、スイッチから手を離すのが早くても、確実にRAMクリア信号DELを取得することができる。
また、フリップフロップFF5に関連して、電源リセット回路を設けているのは、フリップフロップFF5を、素早く電源リセットするためである。したがって、係員が初期化スイッチSWから素早く手を離したような場合にも、フリップフロップFF5は、正しくRAMクリア信号DELを取得することができる。一方、その他のフリップフロップFF1〜FF4と計数回路43については、電源リセット信号(システムリセット信号)SYSに同期して一斉にリセット状態となる。
なお、フリップフロップFF5についても、電源基板20からの電源リセット信号SYSによってリセットしても良いが、この場合には、電源リセット信号SYSの立ち上がりタイミングより先に、RAMクリア信号DELがHレベルに復帰すると、ON操作を読み落としてしまう。
図5(a)は、バッファBUFと、ORゲート群41と、出力ポートOUTと、入力ポートINとの接続関係を詳細に図示したものである。出力ポートOUTは、検査パルスTSa,TSbを出力するが、ここでは、出力ポートOUTのbit0から検査パルスTSaを出力し、出力ポートOUTのbit1から検査パルスTSbを出力している。
バッファBUFは、2つの近接スイッチSW1,SW2からのセンサ出力を、TTL(Transistor transistor logic)レベルの信号SWa,SWbに変換するインターフェイス回路である。したがって、このICには、近接スイッチSW1,SW2用の+12Vと、入賞スイッチ信号SWa,SWb用の+5Vと、が供給されている。
近接スイッチは、高周波発振回路と検出コイルとを内蔵して構成され、遊技球が検出コイルを通過すると、そのときのインピーダンス変化に基づいてON信号を出力するよう構成されている(図5(b)参照)。そして、ON信号を受けたバッファBUFは、TTLレベルの入賞スイッチ信号SWa,SWbを出力する。
ORゲート群は、2つのORゲートG5,G6で構成されている。ORゲートG5には、入賞スイッチ信号SWaと検査パルスTSaとが供給され、論理ORされた出力信号SGaが出力される。一方、ORゲートG6には、入賞スイッチ信号SWbと、検査パルスTSbとが供給され、論理ORされた出力信号SGaが出力される。
続いて、遊技動作を統括的に制御する主制御部21のプログラムの概要を説明する。図6〜図8は、主制御部21の制御プログラムを示すフローチャートである。主制御部21の制御プログラムは、電源電圧の復旧や投入に基づいて起動されるシステムリセット処理(図6)と、所定時間毎(2mS)に起動されるマスク可能なタイマ割込み処理(図8(a))とで構成されている。なお、これらの処理を実現するワンチップマイコン21Aには、Z80CPU(Zilog社)相当品が内蔵されている。また、ワンチップマイコン21Aには、ウォッチドッグタイマも内蔵されており、これに対する定期的なクリア処理が途絶えるとCPUが強制的にリセットされるよう構成されている。
以下、図6を参照しつつ、システムリセット処理プログラム(メイン処理)について説明する。メイン処理が開始されるのは、停電状態からの復旧時のように初期化スイッチSWがOFF状態で電源がON状態になる場合と、遊技ホールの開店時のように、初期化スイッチSWがON操作されて電源がON状態になる場合とがある。なお、制御プログラムが暴走したことにより、ウォッチドッグタイマが起動してCPUが強制的にリセットされる場合もある。
何れの場合でも、Z80CPUは、最初に自らを割込み禁止状態に設定すると共に(ST1)、割込みモード2に設定する(ST2)。また、CPU内部のスタックポインタSPの値を、スタック領域の最終アドレスに初期設定すると共に(ST3)、ワンチップマイコンの各部を含めて内部レジスタの値を初期設定する(ST4)。
次に、図4に示す乱数生成回路が正常に動作しているか否かを検査する(ST5)。具体的には、図5(b)に示すタイムチャートの通りであり、繰り返し検査パルスTSa,TSbを出力して乱数生成回路が正常に動作しているかを判定する。
この動作を実現するプログラム処理は、図7に示す通りであり、先ず、当選回数をカウントする変数CNTと、検査回数をカウントする変数NUMと、異常時にセットされる異常フラグFGとを0に初期設定する(ST50)。なお、変数CNT,NUMは、16ビット長のカウンタとして機能する。
以上の処理設定が終われば、先ず、出力ポートOUTのbit0にHレベルの信号を出力する(ST51)。このことによって、検査パルスTSaが立ち上がり、その瞬間のカウンタCTaの値が第一ラッチRaに保持される。次に、計数回路43に出力切替信号CTLを出力して、出力レジスタROから第一ラッチRaの値を取得して記憶する(ST52)。なお、記憶された値は、カウンタCTaのカウント値であるので、続いて、出力ポートOUTのbit0からLレベルの信号を出力して、検査パルスTSaをLレベルに立ち下げる(ST53)。
そして、ステップST52の処理で記憶したカウンタCTaのカウント値が当選状態であるかを判定する(ST54)。この実施形態では、カウンタCTa,CTbの循環範囲が0〜65535であるので、当選状態となる数値範囲を、例えば10001〜10210とする。したがって、ステップST54では、取得したカウンタCTaのカウント値が、10001〜10210の当選範囲に含まれるか否かを判定することになる。そして、当選状態であれば、変数CNTをインクリメントし(ST55)、外れ状態であれば、ステップST55の処理をスキップする。
続いて、今度は、出力ポートOUTのbit1からHレベルの信号を出力して(ST56)、検査パルスTSbが立ち上げ、その瞬間のカウンタCTbの値を第二ラッチRbに保持させる。次に、計数回路43に出力切替信号CTLを出力して、出力レジスタROから第二ラッチRbの値であるカウンタCTbのカウント値を取得して記憶する(ST57)。また、出力ポートOUTのbit1からLレベルの信号を出力して、検査パルスTSbをLレベルに立ち下げる(ST58)。
そして、ステップST57の処理で記憶したカウンタCTbのカウント値が、10001〜10210の当選範囲に含まれるか否かを判定する(ST59)。そして、当選状態であれば、変数CNTをインクリメントし(ST60)、外れ状態であれば、ステップST60の処理をスキップする。
以上の処理の結果、2つのカウンタCTa,CTbについて、一回の検査処理が終わったので、変数NUMをインクリメントする(ST61)。そして、16ビット長の変数NUMがオーバーフローして0に戻ったか否かが判定され(ST62)、NUM≠0であれば、ステップST50〜ST61の処理を繰り返す。
このような処理を繰り返していると、やがて、NUM=0となるので、そのときには、当選回数を示す変数CNTの値が正常値であるか否かを判定する(ST63)。変数CNTは、65536×2回の検査動作の結果、カウンタCTa,CTbが当選範囲に含まれた回数を意味する。したがって、変数CNTの値から算出される当選率CNT/65536は、本来、当選率の設定値1/312に近い筈である。そこで、例えば50%の余裕をみて、変数CNTの値が(105〜315)×2の数値範囲内に含まれている場合には正常とみなし、この数値範囲を超える場合には異常と判定して異常フラグFGを1に設定する(ST64)。
以上のようにして、ステップST5の処理が完了する。そして、異常フラグFGの値が1であれば、遊技動作を開始することなく異常報知処理を実行する(図6のST7)。したがって、乱数生成回路が異常であるにも拘らず遊技動作が開始されるおそれはない。また、万一、乱数生成回路に関連する違法改造されていても、違法遊技を成功させることもできない。
続いて、入力ポートINからRAMクリア信号DELを取得する(ST8)。先に説明した通り、RAMクリア信号DELとは、ワンチップマイコン21Aの内蔵RAMの全領域を初期設定するか否かを決定する信号であって、係員が操作する初期化スイッチSWのON/OFF状態に対応した値を有している。そして、本実施形態では、信号ラッチ回路45を設けて、フリップフロップFF5にRAMクリア信号DELをラッチしているので、ステップST5の判定処理が如何に長引いても、RAMクリア信号DELを読み落とすことはない。
次に、出力ポートOUTから信号ラッチ回路45に対して、クリア信号を出力して、ラッチしたRAMクリア信号DELをHレベルに戻す(ST9)。但し、このステップST9の消去処理は必ずしも必須ではなく、省略しても良い。ここで、ステップST9の消去処理を省略した場合には、電源投入直後の初期化スイッチSWの操作に応答してラッチされたRAMクリア信号DELは、Lレベルを維持することになり、このことによる弊害が懸念されるところである。
しかし、ワンチップマイコン内部のウォッチドッグタイマ回路が機能して、遊技動作中に、図6のシステムリセット処理が再実行されるような場合でも、入力ポートINが受けるRAMクリア信号DELのレベルに拘らず、次のステップST11やST13の判定を経て、必ず、RAMクリア処理(ST14)が実行されるので、何の弊害も生じない。なお、停電などによる遊技動作の中断後は、フリップフロップFF5の電源リセット回路が機能して、入力ポートINが受けるRAMクリア信号DELは、自動的にHレベルとなる。
何れにしても、次に、ステップST8で取得したRAMクリア信号のレベルが判定される(ST10)。ここでは、RAMクリア信号がON状態(Lレベル)であったと仮定すると、ステップST10の判定に続いて、内蔵RAMの全領域がゼロクリアされる(ST14)。したがって、図8(b)のステップST37の処理でセットされたバックアップフラグBFLの値は、他のチェックサム値などと共にゼロとなる。
次に、RAM領域がゼロクリアされたことを報知するための電源投入コマンドが出力され(ST15)、タイマ割込み動作(図8(a))を起動する割込み信号INTを出力するCTC(Z80 counter timer circuit)を初期設定する(ST16)。そして、CPUを割込み禁止状態にセットした状態で(ST17)、各種のカウンタついて更新処理を実行し(ST18)、その後、CPUを割込み許可状態に戻してステップST17に戻る。なお、ステップST18で更新されるカウンタには、外れ図柄用カウンタが含まれているが、この外れ図柄用カウンタは、図8(a)の特別図柄処理(ST27)における大当り抽選処理の結果が外れ状態となった場合に、どのような態様の外れゲームを演出するかを決定するためのカウンタである。
さて、ステップST10の判定処理に戻って説明すると、ステップST9の処理を設けた場合、CPUがウォッチドッグタイマによって強制的にリセットされた場合や、停電状態からの復旧時には、RAMクリア信号はOFF状態(Hレベル)である。そして、このような場合には、ステップST10の判定に続いて、バックアップフラグBFLの内容が判定される(ST11)。バックアップフラグBFLとは、図8(b)の電源監視処理の動作が実行されたことを示すデータであり、この実施形態では、電源遮断時のステップST37の処理でバックアップフラグBFLが5AHとされ、電源復帰後のステップST33の処理でゼロクリアされる。
電源投入時や、停電状態からの復旧時である場合には、バックアップフラグBFLの内容が5AHの筈である。但し、何らかの理由でプログラムが暴走状態となり、ウォッチドッグタイマによるCPUリセット動作が生じたような場合には、バックアップフラグBFL=00Hである。したがって、BFL≠5AH(通常はBFL=00H)となる場合には、ステップST11からステップST14の処理に移行させて遊技機の動作を初期状態に戻す。
一方、バックアップフラグBFL=5AHであれば、チェックサム値を算出するためのチェックサム演算を実行する(ST12)。ここで、チェックサム演算とは、内蔵RAMのワーク領域を対象とする8ビット加算演算である。なお、チェックサム演算の対象領域に、ステップST5〜ST8の処理で使用されるワーク領域が含まれないのは当然である。そして、チェックサム値が算出されたら、この演算結果を、RAMのSUM番地の記憶値と比較をする(ST13)。
SUM番地には、電圧降下時に実行される電源監視処理(図8(b))において、同じチェックサム演算によるチェックサム値が記憶されている(ST38)。そして、記憶された演算結果は、内蔵RAMの他のデータと共に、バックアップ電源によって維持されている。したがって、本来は、ステップST13の判定によって両者が一致する筈である。
しかし、電源降下時にチェックサム演算(ST38)の実行できなかった場合や、実行できても、その後、メイン処理のチェックサム演算(ST12)の実行時までの間に、ワーク領域のデータが破損している場合もあり、このような場合にはステップST13の判定結果は不一致となる。判定結果の不一致によりデータ破損が検出された場合には、ステップST14の処理に移行させてRAMクリア処理を実行し、遊技機の動作を初期状態に戻す。一方、ステップST13の判定において、チェックサム演算(ST12)によるチェックサム値と、SUM番地の記憶値とが一致する場合には、ステップST16の処理に移行する。
続いて、上記したメイン処理を中断させて、2mS毎に開始されるタイマ割込み処理プログラム(図8(a))を説明する。タイマ割込みが生じると、CPUのレジスタを保存することなく、直ちに電源監視処理が実行される(ST20)。これは、タイマ割込み処理が起動されるタイミングが、ステップST19の直後に固定されているためである。
電源監視処理(ST20)では、電源基板20から供給されている電圧降下信号のレベルを判定するが、具体的な処理内容については後述する。電源監視処理(ST20)が終わると、普通図柄処理(ST26)における抽選動作で使用される当り用カウンタRGの値が更新される(ST21)。なお、特別図柄処理(ST27)における抽選動作で使用される大当り判定用の乱数値RNDについては、図4の乱数生成回路で生成されるので、ステップST21の処理で更新されることはない。
当り乱数更新処理(ST21)が終わると、各遊技動作の時間を管理しているタイマについて、タイマ減算処理が行なわれる(ST22)。ここで減算されるタイマは、主として、電動チューリップや大入賞口の開放時間やその他の遊技演出時間を管理するために使用される。
続いて、図柄始動口15A,15Bや大入賞口16の入賞検出スイッチを含む各種スイッチ類のON/OFF信号が入力され、ワーク領域にON/OFF信号が記憶される(ST23)。なお、図柄始動口15A,15Bから2つの経路を経て供給される入賞スイッチ信号SWa、SWbは、入力ポートINを経由して取得され、入賞スイッチ信号SWa,SWbの立ち上がりエッジが検出されるとワーク領域にON信号が記憶される。
スイッチ入力処理(ST23)が終われば、次に、エラー管理処理が行われる(ST24)。エラー管理処理は、遊技球の補給が停止したり、遊技球が詰まっていないかなど、機器内部に異常が生じていないかの判定を含んでいる。また、このエラー管理処理(ST24)では、異常検出信号ABNのレベルも判定され、もし計数回路43の動作に異常が認められたら報知処理を含むエラー処理が起動される。本実施形態では、大当り判定用の乱数値RNDが計数回路43で生成されるので、カウンタCTaの動作が停止したような場合には、遊技動作中であっても、直ちに適切な対応が採れるよう、2mS毎に、異常検出信号ABNのレベルを判定している(ST24)。
次に、払出制御部24から受けた賞球計数信号に基づく管理処理を実行した後(ST25)、普通図柄処理を行う(ST26)。普通図柄処理とは、電動チューリップなど、普通電動役物を作動させるか否かの判定を意味する。具体的には、ステップST33のスイッチ入力結果によって遊技球がゲートを通過していると判定された場合に、乱数更新処理(ST21)で更新された当り用カウンタRGを、当り当選値と対比して行われる。そして、対比結果が当選状態であれば当り中の動作モードに変更する。また、当り中となれば、電動チューリップなど、普通電動役物の作動に向けた処理を行う。
続いて、特別図柄処理を行う(ST27)。特別図柄処理とは、大入賞口16など特別電動役物を作動させるか否かの判定である。先ず、ステップST23のスイッチ入力処理によって遊技球が図柄始動口15A,15Bを通過しているか否かを判定される。そして、入賞状態であると判定された場合には、図4の計数回路43から、入賞状態に対応する入賞スイッチ信号(SWa又はSwb)に関する16ビット長データを取得する。具体的には、出力切替信号CTLを切り換えつつ、16ビットラッチ(Ra又はRb)の上位8ビットデータを取得し、続いて、16ビットラッチ(Ra又はRb)の下位8ビットデータを取得する。
そして、取得した16ビット長データに基づいて、大当り抽選処理を実行する。そして、抽選結果が当選状態であれば大当り中の動作モードに変更する。また、大当り中となれば、大入賞口など種特別電動役物の作動に向けた処理を行う。
このような特別図柄処理(ST27)の後、主制御部21で管理するLEDについて点灯動作を進行させると共に(ST28)、電動チューリップや大入賞口などの開閉動作を実現するソレノイド駆動処理を実行した後(ST29)、CPUを割込み許可状態EIに戻してタイマ割込みを終える(ST30)。その結果、割込み処理ルーチンからメイン処理の無限ループ処理(図6)に戻り、ステップST17の処理が実行される。
続いて、図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の出力も禁止している。
以上、本発明の実施形態を具体的に説明したが、具体的な記載内容は何ら本発明を限定するものではなく、各種の改変が可能である。例えば、過渡動作回路TRANを設けて、遊技動作開始後は、検査パルスTSa,TSbを出力不能に構成することもできる。すなわち、図4の回路構成では、出力ポートOUTが出力する検査パルスTSa,TSbに対応してカウンタCTa,CTbの出力値がラッチされ、ラッチされたカウンタ値が、大当り抽選処理の乱数値RNDとなるので、万が一にも、違法遊技に悪用されることがないよう、遊技動作開始後は、検査パルスTSa,TSbを出力不能に構成するのも好適である。
図9は、このような動作禁止機能を有する回路例であり、出力ポートOUTから出力される検査パルスTSa,TSbは、出力イネーブル(output enable)端子OEを有するバッファBUF’を経由してORゲート群41に供給されている。そして、抵抗R6及びコンデンサC3の直列回路と、抵抗R6を通してコンデンサC3を充電する電源電圧Vccと、コンデンサC3の両端電圧を受ける2つのNOTゲートG1,G2とで過渡動作回路TRANが構成されている。
ここで、時定数R6×C3は、十分大きく設定されているので(数10秒)、出力イネーブル端子OEは、電源投入後しばらくはLレベルであり、その後はHレベルとなる。したがって、バッファBUF’は、出力イネーブル端子OEがLレベルである電源投入直後の時間帯だけ動作可能となり、所定時間を経過すると、出力ポートOUTが出力に拘わらず、ハイ・インピーダンス状態になる。したがって、遊技動作中に、検査パルスTSa,TSbが悪用されるおそれはない。
図9の回路構成を採る場合には、例えば、ORゲート群41の出力信号SGa,SGbを入力ポートINに供給することもできる(破線部参照)。このような場合には、遊技者にとっと最も重要な入賞スイッチ信号SWa,SWbの信号入力経路の異常を電源投入時に検査することが可能となる。
また、図6に示すシステムリセット処理に代えて、図10に示す構成を採ることも好適である。図10のシステムリセット処理では、電源投入後の初期処理が完了した後に、乱数生成回路の異常チェック処理(ST5〜ST7)を実行している。このような構成の場合には、RAMクリア信号DELを早期にチェックできるので、RAMクリア信号DELの信号ラッチ回路45と、ステップST8〜ST9の処理を省略することができる。もっとも、初期化スイッチSWの操作方法の適否に拘らず、RAM信号DELを正しく取得するためには、信号ラッチ回路45は有効である。
また、図7に示す実施形態では、当選回数が正常な範囲に含まれるか否かに基づいて乱数生成回路の異常を判定したが、何ら、この構成に限定されない。図11は、検査動作で取得したカウンタCTa、CTbの度数分布に基づいて乱数生成回路の異常を判定する構成例を示している。この構成では、取得したカウンタCTa、CTbが、0〜15までの16区分の何れに属するかの度数分布に基づいて、乱数生成回路の異常を検出している。
具体的には、ステップST52やST57の処理で取得した16ビット長のカウンタCTa,CTbについて、その最上位4ビットの値をポインタ変数iに代入する(ST54’,ST59’)。なお、特に最上位4ビットに限定されるものではないが、最上位4ビットの何れかに異常がある場合が最も深刻である。
そして、次に、ポインタ変数iの値に応じて、該当するカウンタCNT0〜CNTFの値をインクリメントする(ST55’,ST60’)。その結果、0〜65535の範囲で発生するカウンタ値CTa,CTbが、16区分の何れかに分類されて集計されることになる。
ここで、例えば、計数回路43の出力レジスタROに異常があり、そのビット12(最上位4ビットの中ではLSB)が常に0となる異常時を想定する。このような場合には、偶数区分である区分0,2,4・・・Eについては大きな計数値が検出される反面、奇数区分である区分1,3,5・・・Fについては、計数値が検出されない。したがって、このような顕著に異常が現れる度数分布から、乱数生成回路の異常を確実に把握することができる。
なお、図11に示すように、当選状態となる数値範囲が、例えば、区分4と区分5に跨っているような場合には、区分4と区分5の計数値を平均すると正常レベルになるので、図7のアルゴリズムでは、乱数生成回路の異常を検出することができない。
ところで、図11のフローチャートでは、電源投入時、毎回、カウンタCTa,CTbの最上位4bitの数値を変数iに格納したが(ST54’,ST59’)、変数iへの格納値を、電源投入毎にランダムに変更するのが好ましい。図12は、このような実施形態を説明する図面であり、ここでは、ステップST12の処理で参照されるチェックサム値(SUM番地の記憶値)に基づいて、変数iの値を毎回変化させている。
すなわち、図12(b)に示す通り、ステップST54’やST59’の処理では、先ず、SUM番地の8bitデータをAccに取得する(ST80)。そして、Accの値を03Hでマスク処理することで、Accの下位2ビットを抽出し(ST81)、その後のAcc×4の計算結果を、シフト回数SHとしている(ST82)。
ステップST81のマスク処理によって、Accの値は、0,1,2,3の何れかの値となるので、シフト回数SHは0,4,8,12の何れかである。したがって、カウンタCTa(又はカウンタCTb)の16ビットデータを、シフト回数を特定する変数SHの値に応じて右シフトし、シフト結果後の下位4bitを抽出すれば、変数iの値を電源投入毎にランダムに変化させることができる。
なお、図10のような実施形態を採る場合には、SUM番地だけはRAMクリア処理(ST14)から除く必要がある。もっとも、必ずしもSUM番地の値に基づいてシフト回数を決定する必要はなく、例えば、Z80CPUの7bit長の内部レジスタであるRレジスタを使用しても良く、この場合には、Rレジスタのランダム性によって、変数iの値が毎回変化する。
また、図11のアルゴリズムでは、ラッチパルスをソフトウェア処理(ST51,53,56,58)によって生成しているが、図13の回路構成によってラッチパルスを生成しても良い。ここでは、計数クロックΦと制御信号CTLとを受けるANDゲートG5と、ANDゲートG5の出力を遅延させる遅延回路DLTと、遅延回路DLTの出力とフリップフロップFF2のQ出力を受けるORゲートG6と、遅延回路DLTの出力とフリップフロップFF3のQ出力を受けるORゲートG7とが設けられている。
そして、ORゲートG6とORゲートG7の出力は、それぞれラッチクロックRCKとして、第一ラッチRaと第二ラッチRbに供給されている。また、制御信号CTLは、異常チェック処理(ST5)の処理時に限りHレベルとされる。このような回路構成によれば、乱数生成回路の異常チェック処理(ST5)を必要最小限のプログラムで実現でき、ROMの使用領域を浪費しない利点と、処理時間を短縮できる利点がある。なお、図13の回路構成によれば、ORゲート群41が不要となり、入賞口スイッチ信号SWa,SWbは、直接、フリップフロップFF2,FF3のD入力端子に供給される。