以下、実施例に基づいて本発明を詳細に説明する。図1は、本実施例のパチンコ機GMを示す斜視図である。このパチンコ機GMは、島構造体に着脱可能に装着される矩形枠状の木製外枠1と、外枠1に固着されたヒンジ2を介して開閉可能に枢着される前枠3とで構成されている。この前枠3には、遊技盤5が、裏側からではなく、表側から着脱自在に装着され、その前側には、ガラス扉6と前面板7とが夫々開閉自在に枢着されている。
ガラス扉6の外周には、LEDランプなどによる電飾ランプが、略C字状に配置されている。一方、ガラス扉6の下側には、スピーカが配置されている。
前面板7には、発射用の遊技球を貯留する上皿8が装着され、前枠3の下部には、上皿8から溢れ出し又は抜き取った遊技球を貯留する下皿9と、発射ハンドル10とが設けられている。発射ハンドル10は発射モータと連動しており、発射ハンドル10の回動角度に応じて動作する打撃槌によって遊技球が発射される。
上皿8の外周面には、チャンスボタン11が設けられている。このチャンスボタン11は、遊技者の左手で操作できる位置に設けられており、遊技者は、発射ハンドル10から右手を離すことなくチャンスボタン11を操作できる。このチャンスボタン11は、通常時には機能していないが、ゲーム状態がボタンチャンス状態となると内蔵ランプが点灯されて操作可能となる。なお、ボタンチャンス状態は、必要に応じて設けられるゲーム状態である。
上皿8の右部には、カード式球貸し機に対する球貸し操作用の操作パネル12が設けられ、カード残額を3桁の数字で表示する度数表示部と、所定金額分の遊技球の球貸しを指示する球貸しスイッチと、ゲーム終了時にカードの返却を指令する返却スイッチとが設けられている。
図2に示すように、遊技盤5の表面には、金属製の外レールと内レールとからなるガイドレール13が環状に設けられ、その略中央には、背面側に延びる中央開口HOが設けられている。そして、中央開口HOの奥底には、液晶カラーディスプレイで構成された表示装置DISPが配置されている。
また、表示装置DISPの前面に形成される空間には、演出可動体AMUが昇降自在に配置されている。演出可動体AMUは、昇降機構ALVに保持されて昇降される固定部材FIXと、固定部材FIXに支持されて回転する回転部材ROTとで構成されている。なお、通常時には、演出可動体AMUは、昇降機構ALVに吊り上げられた原点領域で待機している。
遊技領域5aの適所には、図柄始動口15、大入賞口16、普通入賞口17、ゲート18が配設されている。これらの入賞口15〜18は、それぞれ内部に検出スイッチを有しており、遊技球の通過を検出できるようになっている。
表示装置DISPは、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に表示する装置である。この表示装置DISPは、中央部に特別図柄表示部Da〜Dcと右上部に普通図柄表示部19を有している。そして、特別図柄表示部Da〜Dcでは、大当り状態の招来を期待させるリーチ演出が実行されたり、特別図柄表示部Da〜Dc及びその周りでは、当否結果を不確定に報知する予告演出などが実行される。
普通図柄表示部19は普通図柄を表示するものであり、ゲート18を通過した遊技球が検出されると、普通図柄が所定時間だけ変動し、遊技球のゲート18の通過時点において抽出された抽選用乱数値により決定される停止図柄を表示して停止するようになっている。
図柄始動口15は、左右一対の開閉爪を備えた電動式チューリップで開閉されるように構成され、普通図柄表示部19の変動後の停止図柄が当り図柄を表示した場合には、開閉爪が所定時間だけ、若しくは、所定個数の遊技球を検出するまで開放されるようになっている。
図柄始動口15に遊技球が入賞すると、特別図柄表示部Da〜Dcの表示図柄が所定時間だけ変動し、図柄始動口15への遊技球の入賞タイミングに応じた抽選結果に基づいて決定される停止図柄で停止する。なお、特別図柄表示部Da〜Dc及びその周りでは、一連の図柄演出の間に、予告演出が実行される場合がある。また、予告演出の一種として、演出可動体AMUが中央開口HOの位置に降下してくることがある。そして、降下した演出可動体AMUは、時計方向又は反時計方向に回転した後、元の位置に上昇する。
大入賞口16は、例えば前方に開放可能な開閉板16aで開閉制御されるが、特別図柄表示部Da〜Dcの図柄変動後の停止図柄が「777」などの大当り図柄のとき、「大当りゲーム」と称する特別遊技が開始され、開閉板16aが開放されるようになっている。
大入賞口16の開閉板16aが開放された後、所定時間が経過し、又は所定数(例えば10個)の遊技球が入賞すると開閉板16aが閉じる。このような動作は、最大で例えば15回まで特別遊技が継続され、遊技者に有利な状態に制御される。なお、特別図柄表示部Da〜Dcの変動後の停止図柄が特別図柄のうちの特定図柄であった場合には、特別遊技の終了後のゲームが高確率状態(確変状態)となるという特典が付与される。
図3は、上記した各動作を実現するパチンコ機GMの全体回路構成を示すブロック図である。図中の一点破線は、主に、直流電圧ラインを示している。
図示の通り、このパチンコ機GMは、AC24Vを受けて各種の直流電圧や、電源異常信号ABN1、ABN2やシステムリセット信号(電源リセット信号)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に接続されている。電源基板20には、交流電源の投入と遮断とを監視する電源監視部MNTが設けられている。電源監視部MNTは、交流電源が投入されたことを検知すると、所定時間だけシステムリセット信号SYSをLレベルに維持した後に、これをHレベルに遷移させる。
また、電源監視部MNTは、交流電源の遮断を検知すると、電源異常信号ABN1,ABN2を、直ちにLレベルに遷移させる。なお、電源異常信号ABN1,ABN2は、電源投入後に速やかにHレベルとなる。
ところで、本実施例のシステムリセット信号は、交流電源に基づく直流電源によって生成されている。そのため、交流電源の投入(通常は電源スイッチのON)を検知してHレベルに増加した後は、直流電源電圧が異常レベルまで低下しない限り、Hレベルを維持する。したがって、直流電源電圧が維持された状態で、交流電源が瞬停状態となっても、システムリセット信号SYSがCPUをリセットすることはない。なお、電源異常信号ABN1,ABN2は、交流電源の瞬停状態でも出力される。
主基板中継基板28は、電源基板20から出力される電源異常信号ABN1、バックアップ電源BAK、及びDC5V,DC12V,DC32Vを、そのまま主制御部21に出力している。一方、電源中継基板30は、電源基板20から受けたシステムリセット信号SYSや、交流及び直流の電源電圧を、そのまま演出インタフェイス基板27に出力している。なお、演出インタフェイス基板27は、受けたシステムリセット信号SYSを、そのまま演出制御部22と画像制御部23に出力している。
一方、払出制御基板24は、中継基板を介することなく、電源基板20に直結されており、主制御部21が受けると同様の電源異常信号ABN2や、バックアップ電源BAKを、その他の電源電圧と共に直接的に受けている。
電源基板20が出力するシステムリセット信号SYSは、電源基板20に交流電源24Vが投入されたことを示す電源リセット信号であり、この電源リセット信号によって演出制御部22と画像制御部23のワンチップマイコンは、その他のIC素子と共に電源リセットされるようになっている。
但し、このシステムリセット信号SYSは、主制御部21と払出制御部24には、供給されておらず、各々の回路基板21,24のリセット回路RSTにおいて電源リセット信号(CPUリセット信号)が生成されている。そのため、例えば、接続コネクタC2がガタついたり、或いは、配線ケーブルにノイズが重畳しても、主制御部21や払出制御部24のCPUが異常リセットされるおそれはない。なお、演出制御部22と画像制御部23は、主制御部21からの制御コマンドに基づいて、従属的に演出動作を実行することから、回路構成の複雑化を回避するために、電源基板20から出力されるシステムリセット信号SYSを利用している。
ところで、主制御部21や払出制御部24に設けられたリセット回路RSTは、各々ウォッチドッグタイマを内蔵しており、各制御部21,24のCPUから、定時的なクリアパルスを受けない限り、各CPUは強制的にリセットされる。
また、この実施例では、RAMクリア信号CLRは、主制御部21で生成されて主制御部21と払出制御部24のワンチップマイコンに伝送されている。ここで、RAMクリア信号CLRは、各制御部21,24のワンチップマイコンの内蔵RAMの全領域を初期設定するか否かを決定する信号であって、係員が操作する初期化スイッチSWのON/OFF状態に対応した値を有している。
主制御部21及び払出制御部24は、電源基板20から電源異常信号ABN1,ABN2を受けることによって、停電や営業終了に先立って、必要な終了処理を開始するようになっている。また、バックアップ電源BAKは、営業終了や停電により交流電源24Vが遮断された後も、主制御部21と払出制御部24のワンチップマイコンの内蔵RAMのデータを保持するDC5Vの直流電源である。したがって、主制御部21と払出制御部24は、電源遮断前の遊技動作を電源投入後に再開できることになる(電源バックアップ機能)。このパチンコ機では少なくとも数日は、各ワンチップマイコンのRAMの記憶内容が保持されるよう設計されている。
図3に示す通り、主制御部21は、主基板中継基板28を経由して、払出制御部24に制御コマンドCMD”を送信する一方、払出制御部24からは、遊技球の払出動作を示す賞球計数信号や、払出動作の異常に係わるステイタス信号CONや、動作開始信号BGNを受信している。ステイタス信号CONには、例えば、補給切れ信号、払出不足エラー信号、下皿満杯信号が含まれる。動作開始信号BGNは、電源投入後、払出制御部24の初期動作が完了したことを主制御部21に通知する信号である。
また、主制御部21は、遊技盤中継基板29を経由して、遊技盤5の各遊技部品に接続されている。そして、遊技盤上の各入賞口16〜18に内蔵された検出スイッチのスイッチ信号を受ける一方、電動チューリップなどのソレノイド類を駆動している。ソレノイド類や検出スイッチは、主制御部21から給電された電源電圧VB(12V)で動作するよう構成されている。そして、図柄始動口15への入賞状態などを示す各スイッチ信号は、電源電圧VB(12V)と電源電圧Vcc(5V)とで動作するインタフェイスICで、TTLレベルのスイッチ信号に変換された上で、主制御部21に伝送される。
図4に示すように、演出制御部22は、音声演出・ランプ演出・演出可動体による予告演出・データ転送などの処理を実行するワンチップマイコン40と、ワンチップマイコン40の制御プログラムなどを記憶するEPROM41と、ワンチップマイコン40からの指示に基づいて音声信号を再生して出力する音声再生出力回路42と、再生される音声信号の元データである圧縮音声データを記憶する音声用メモリ43と、ウォッチドッグタイマWDTとを備えて構成されている。
ワンチップマイコン40には、パラレル入出力ポートPIOが内蔵されている。そして、パラレルポートPIOからは、制御コマンドCMD’及びストローブ信号STB’と共に、演出可動体AMUを機能させる駆動データΦ1〜Φ4も出力されている。演出可動体AMUは、昇降機構ALVを構成する昇降モータMOによって昇降され、固定部材FIXに配置された回転モータMTによって回転駆動される。なお、昇降モータMOや回転モータMTは、ステッピングモータで構成されており、各々、ドライバ回路45A,45Bを経由して駆動される。また、回転モータMTや昇降モータMOに関連して、原点スイッチORGが設けられており、そのスイッチ信号(原点検出信号)SNは、パラレルポートPIOに入力されている。
ウォッチドッグタイマWDTは、ワンチップマイコン40から定期的に供給されるクリアパルスでリセットされるが、プログラムの暴走などによって、このクリアパルスが途絶えると、リセット信号RESETを出力するようになっている。その結果、ワンチップマイコン40は、初期状態に強制的にリセットされ、プログラムの暴走状態などが解消される。
図4に示す通り、演出制御基板22のワンチップマイコン40には、主制御基板21から出力された制御コマンドCMDとストローブ信号(割込み信号)STBとが、演出インタフェイス基板27のバッファ48を経由して供給されている。割込み信号STBは、ワンチップマイコンの割込み端子INTに供給されている。そして、ストローブ信号STBによって起動される受信割込み処理によって、演出制御部22は、制御コマンドCMDを取得することになる。
演出制御部22が取得する制御コマンドCMDには、(1) 異常報知その他の報知用制御コマンドなどの他に、(2) 図柄始動口への入賞に起因する各種演出動作の概要を特定する制御コマンド(変動パターンコマンド)が含まれている。ここで、変動パターンコマンドで特定される演出動作の概要には、演出開始から演出終了までの演出総時間と、大当り抽選における当否結果とが含まれている。なお、これらに加えて、リーチ演出や予告演出の有無などを含めて変動パターンコマンドで特定しても良いが、この場合でも、演出内容の具体的な内容は特定されていない。
そのため、演出制御部22では、変動パターンコマンドCMDを取得すると、これに続いて演出抽選を行い、取得した変動パターンコマンドで特定される演出概要を更に具体化している。
例えば、リーチ演出や予告演出について、その具体的な内容が決定される。そして、決定された具体的な遊技内容にしたがい、LED群などの点滅によるランプ演出や、スピーカによる音声演出の準備動作を行うと共に、画像制御部23に対して、ランプやスピーカによる演出動作に同期した図柄演出に関する制御コマンドCMD’を出力する。また、演出可動体AMUを使用する予告動作時には、昇降モータMOを回転させた後、回転モータMTを回転させる。
なお、昇降モータMOを回転させるタイミングでは、回転モータMTへの駆動制御も開始され、回転モータMTは、自由回転可能な非駆動状態から、静止姿勢を維持する駆動状態に変化する。したがって、仮に、演出可動体AMUを迅速に昇降させても、停止時に、演出可動体AMUの水平姿勢が崩れるおそれはない。
このような演出動作に同期した図柄演出を実現するため、演出制御部22は、画像制御部23に対するストローブ信号(割込み信号)STB’と共に、制御コマンドCMD’を演出インタフェイス基板27に向けて出力する。なお、演出制御部22は、表示装置に関連する報知用制御コマンドや、その他の制御コマンドを受信した場合は、その制御コマンドを、そのまま割込み信号STB’と共に演出インタフェイス基板27に向けて出力する。
上記した演出制御基板22の構成に対応して、演出インタフェイス基板27は、8ビット長の制御コマンドCMD’と1ビット長の割込み信号STB’を受けるよう構成されている。そして、これらのデータCMD’,STB’は、バッファ回路46を経由して、そのまま画像制御基板23に出力される。また、演出インタフェイス基板27は、演出制御部22から出力されるランプ駆動用の信号を受け、これを、ランプ接続基板34を経由してLEDランプ群に供給する。その結果、主制御部21が出力した制御コマンドCMDに対応するランプ演出が実現される。
また、画像制御部23は、演出インタフェイス基板27を経由して制御コマンドを受信して画像制御動作を実行するワンチップマイコンと、ワンチップマイコンの指示に基づき表示装置DISPを駆動するVDPと、グラフィックROMと、制御用ROMと、ワンチップマイコンを強制リセットさせるウォッチドッグタイマWDTとを有して構成されている。
なお、システムリセット信号SYSは、演出インタフェイス基板27を経由して、演出制御部22と画像制御部23のワンチップマイコンの内蔵CPUのリセット端子RESETに供給されており、交流電源の投入時には、各CPUが電源リセットされる。
続いて、演出可動体AMUを回転させる回転モータMTについて説明する。図5に示す通り、実施例の演出可動体AMUは、演出制御基板22に搭載されたドライバ回路45Bと回転モータMTとによって駆動されている。更に説明すると、図示の演出可動体AMUは、定常状態では一方向に回転する回転モータMTと、ギアG1,G2を経由して回転駆動される回転部材ROTと、を有して構成されている(図5(a)参照)。
図5(b)に示す通り、回転モータMTは、例えば、二相励磁されるステッピングモータで構成され、ドライバ回路45Bは、ダーリントン接続されたトランジスタTrとダンパーダイオードDpとを有して構成されている。なお、この実施例では、回転モータMTにギア結合された回転部材ROTが、360/245°ピッチで回転しており、回転モータMTが245ステップの駆動パルスΦ1〜Φ4を受けると、回転部材ROTが一回転する。
駆動パルスΦ1〜Φ4は、例えば、4ビット長の駆動データ0101,1001,1010,0110を、ドライバ回路45Bに出力することで生成され、出力する駆動データを変化させることで回転モータMTが1ステップ角ごとに歩進する。なお、駆動データが変化しない場合には回転モータMTが拘束状態で停止する。一方、非駆動データ(0000)をドライバ回路45Bに出力すると、回転モータMTは自由回転可能な非拘束状態となる。
演出可動体AMUには、回転部材ROTが、原点位置に達したことを検出する原点スイッチORGが配置されている。そのため、演出可動体AMUに対して、回転モータMTの回転トルクが不足気味となっても、演出可動体AMUを正確に一回転させることができる。すなわち、回転モータMTの回転トルクが不十分であると、245ステップの駆動パルスΦ1〜Φ4では、演出可動体AMUを正確に一回転させることができない可能性があるが、原点スイッチORGを設けることで、回転角度360°を駆動パルスのステップ数で制御する必要がなくなる。例えば、ギア結合で回転速度を増速させる場合には、回転トルクが減少するので、原点スイッチORGを設けた意義は大きい。
原点スイッチORGは、具体的には、発光部と受光部とを有するフォトインタラプタPHと、発光部から放射された検査光を遮断する遮光片SHとで構成されている。なお、発光部はフォトダイオードで構成され、受光部はフォトトランジスタで構成されている(図5(c)参照)。そのため、原点検出信号SNは、フォトトランジスタの出力として、通常時はLレベル(OFFレベル)であるが、遮光片SHによる遮光状態ではHレベル(ONレベル)となる。
原点検出信号SNは、回転部材ROTの回転速度Vと、フォトインタラプタPHや遮光片SHの周方向幅とに対応して、所定の時間(N1+N2)だけHレベルとなる(図5(d)参照)。そこで、この実施例では、遮光片SHが、フォトインタラプタPHの検査光を遮蔽状態に維持する領域をもって原点領域と定義する。そして、定速度Vで順方向に回転する遮光片SHが、フォトインタラプタPHの検査光を遮蔽し始めてから順方向基準時間N1だけ経過した位置を原点位置と定義する。逆に、定速度で逆方向に回転する遮光片SHが、フォトインタラプタPHの検査光を遮蔽し始めてから逆方向基準時間N2だけ経過した位置も原点位置となる。
したがって、遮光片SHが原点領域に存在する総時間は、定速度Vで回転する演出可動体AMUではN1+N2となる。また、図5(d)に示す通り、演出可動体AMUが定速度Vで回転する場合には、原点を経過してから再び原点に達するまでの周回時間はMとなる。なお、周回時間Mは、ステップ角θ(=360°/245)と、駆動パルスΦ1〜Φ4が更新される時間間隔τ(回転部材ROTがステップ角θだけ歩進する時間)とに対応して、245*τとなる。また、順方向基準時間N1と逆方向基準時間N2の間に歩進する回転角度は、各々、N1/τ*θと、N2/τ*θとなる。
以上の通り、図5では、演出可動体AMUが回転する場合を例示したが、必ずしも、このような実施態様に限定されず、例えば、昇降モータMOのように、ラック及びピニオンによって演出可動体AMUを往復運動させるのも好適である。この場合には、ピニオンを回転させると、ピニオンに歯合したラックが移動して、可動部材MVが演出可動体AMUと共に移動する。
図6は、可動部材MVと昇降モータMOとの関係を説明する図面である。可動部材MVの左端には、遮光片SHが配置され、可動部材MVの運動経路の両端には、それ以上の移動を阻止するストッパ機構(メカロック)が配置されている。また、左側のメカロックに近接して、フォトインタラプタPHが配置され、ここに遮光片SHが進入すると検査光が遮光されるよう構成されている。
以上の構成から明らかなように、可動部材MVの可動範囲は、可動部材MVの左端が左側メカロックに当接される位置から、可動部材MVの右端が右側メカロックに当接される位置までである。なお、便宜上、以下の説明では、図6の左側を原点側とし、図6の右側を終点側(或いは、MAX側)とする。そして、終点側への移動を順方向とし、原点側への移動を逆方向とする。
この実施例でも、遮光片SHが、フォトインタラプタPHの検査光を遮蔽状態に維持する領域を原点領域とし、定速度Vで逆方向に移動する遮光片SHが、フォトインタラプタPHの検査光を遮蔽し始めてから基準時間Nだけ経過した位置を原点位置と定義する。
図6(c)には、可動部材MVの左端の可動範囲(最大移動距離L)を破線の矢印で示しており、原点検出信号SNは、可動部材MVの左端の位置に対応して、図6(b)のように変化する。図6(a)に示す通り、可動部材MVが定速度Vで移動する場合には、可動部材MVの左端が、原点側メカロックを離れてから、可動部材MVの右端が終点側メカロックに当接されるまでの移動時間はMとなる。
なお、昇降モータMOが、単位時間τを要して1ステップ角だけ回転すると、ラックが、単位距離UNだけ移動すると仮定すると、図6(c)に示す最大移動距離Lに対応して、移動時間Mは、M=τ*L/UNとなる(L=UN*M/τ)。また、この基準時間Nの間に、昇降モータMOに供給される駆動パルスΦ1〜Φ4のステップ数はN/τであり、可動部材MVの移動距離はUN*N/τである。
図7〜図18は、図3に示す遊技機GMの各部の動作内容を説明するフローチャートである。図7〜図8は、主制御部21の動作、図9〜図17は、演出制御部22の動作、図18〜19は、画像制御部23の動作を示している。なお、以下の説明では、殆ど昇降モータMOには言及しないが、回転モータMTについての説明は、原則として、そのまま昇降モータMOにも妥当する。
先ず、主制御部21について概略的に説明すると、主制御部21は、CPUリセットによって開始されるメイン処理(図7)と、所定時間毎に起動されて制御動作を中心的に実行するタイマ割込み処理(不図示)とを含んで構成されている。なお、これらの処理を実現するワンチップマイコンには、Z80CPU(Zilog社)相当品が内蔵されている。
図7に示すメイン処理(CPUリセット処理)が開始されるのは、停電状態からの復旧時のように初期化スイッチSWがOFF状態で電源がON状態になる場合と、遊技ホールの開店時のように、初期化スイッチSWがON操作されて電源がON状態になる場合とがある。また、リセット回路RSTに内蔵されたウォッチドッグタイマが起動したり、或いは、リセット端子にノイズが重畳することで、CPUが強制的にリセットされる場合も図7のメイン処理が開始される。
なお、図7の破線は、演出制御部22と画像制御部23の動作内容を略記しており、演出制御部22では、CPUリセットに対応して、回転モータMTの原点検出処理(図11のSS5)が実行され、画像制御部23では、CPUリセットに対応して、表示装置DISPに初期画面が表示される。
主制御部21では、CPUリセットに対応して、CPUが割込み禁止状態に設定され、CPUのスタックポインタが初期値に設定される(ST1)。また、ワンチップマイコン各部が初期設定される(ST1)。これらの処理において内蔵RAMのワークエリアが使用されることはなく、例えば、ROMに記憶されている制御パラメータがCPUのレジスタに読み出されて適所に書き込まれるだけである。なお、このようなワークエリアを使用しない動作は、ステップST6の処理まで継続される。
次に、入力ポートからRAMクリア信号CLRが取得され、そのレベルがCPUのレジスタに記憶される(ST2)。RAMクリア信号CLRは、電源投入時の係員による初期化スイッチSWのON/OFF操作状態を示している。そのため、RAMクリア信号CLRの取得タイミングが遅れると、係員がスイッチから手を離すことで、ON操作を見逃すことになるが、本実施例では、電源リセット後に速やかにRAMクリア信号CLRを取得するので、そのような事態は生じない。
ステップST2の処理が終われば、次に、リセット回路RSTのウォッチドッグタイマにクリアパルスを出力しつつ、所定の待機時間を消費する(ST3,ST4)。この時間消費処理によって、主制御部21からの制御コマンドを受信すべき制御部22,23の準備動作が確実に完了する。
続いて、電源基板20から出力されている電源異常信号ABN1を取得し、これが正常レベルに変化するまで、同一の処理を繰返す(ST5〜ST6)。これは、電源遮断時に、図8のST40の処理を終えた後でも、電源電圧Vccが降下し切らない場合もあることを考慮したものである。すなわち、図8の電断処理を終えて、無限ループ処理を繰返しているタイミングで、ウォッチドッグタイマ機能が発揮されてCPUがリセットされても、その後の処理は、ステップST7以降に進むことはない。
このような待機処理(ST5〜ST6)を設けないと、ステップST7以降に進行した定常処理によってRAMのデータ(チェックサム演算の基礎データや、ST33でセットされるバックアップフラグBFL)が書き換えられ、しかも、そのデータが電源遮断後も保存される。このような場合、翌日の判定において、バックアップフラグBFL=0となるか、或いは、前日にバックアップされたチェックサム値(ST36)と、翌日の電源投入後に算出するチェックサム値に不一致となるので、せっかくのバックアップ処理(ST36)が無駄になる。
また、ステップST5〜ST6の処理は、電源スイッチを素早くOFF→ON操作する場合も含め、交流電源が一瞬だけ遮断される瞬停状態でも有効に機能する。すなわち、瞬停状態であっても、電源異常信号ABN1,ABN2は主制御部21と払出制御部24に供給されるので、主制御部21では、図8の電源監視処理が開始される。そして、電源異常信号ABN1のパルス幅によっては、ステップST25〜ST31の処理を終えてバックアップ処理に移行する可能性もある。しかし、仮に、このような事態が生じても、その後、ウォッチドッグタイマ機能によってCPUがリセットされるので、その時には、ステップST5〜ST6の処理を通過することで、それまでの遊技動作を再開される。
このような場合も含め、ステップST6の処理で、電源異常信号ABN1が正常レベル(H)であると判定されれば、内蔵RAMの書換え動作が許可される(ST7)。先に説明した通り、ステップST1〜ST6の処理では、内蔵RAMのワークエリアが使用されることはない。
次に、CPUは、演出制御部22に対して、初期動作コマンドを送信する(ST8)。この初期動作コマンドは、演出可動体AMUによる可動演出を正常に実行するための制御コマンドであるが、ステップST3〜ST4の時間消費処理を経ているので、このタイミングでは、演出制御部22の受信準備は確実に完了している。
破線で示すように、初期動作コマンドを受けた演出制御部22では、回転モータMTの初期動作処理が実行される。また、演出制御部22から転送される初期コマンドを受けた画像制御部23では、表示装置DISPに、例えば「PLEASE WAIT」と表示する。
ステップST8の処理に続いて、ウォッチドッグタイマにクリアパルスを送信した上で、払出制御部24から受けている電源投入信号のレベルを判定する(ST9,ST10)。本実施例では、主制御部21と払出制御部24とが、独立して電源リセット動作を実行するため、ステップST3〜ST4の待機時間を越えて、払出制御部24の立上り動作が遅れる可能性もある。
しかし、そのような場合でも、ステップST10の判定処理を経ることで、払出制御部24の立上り動作遅れを吸収することができる。また、万一、何らかのトラブルによって払出制御部24が正常に機能していない異常時には、ステップST9〜ST10の処理を繰り返すだけで遊技動作を開始しないので、例えば、賞球が得られないなどの異常事態が発生せず、遊技者に不信感を与えるおそれはない。
一方、ステップST10の判定によって、払出制御部24が正常に動作していることが確認されたら、ステップST2の処理で先行取得したRAMクリア信号のレベルを判定する(ST11)。ここで、RAMクリア信号がON状態であったと仮定すると、内蔵RAMの全領域をゼロクリアする(ST18)。したがって、図8のステップST33の処理でセットされたバックアップフラグBFLの値は、他のチェックサム値などと共にゼロとなる。
次に、RAM領域がゼロクリアされたことを報知するためのRAMクリアコマンドを、演出制御部22に出力し(ST18)、報知タイマを初期設定する(ST20)。報知タイマは、RAM領域がゼロクリアされたことをホールコンピュータに通知する通知時間(例えば30秒)を管理するものである。この十分な通知時間によって、例えば、不正行為によってCPUが異常リセットされた異常事態が生じても、その事態をホールコンピュータが確実に把握することができる。なお、不正遊技者は、意図的に、RAMクリア処理(ST18)を実行させることで、大当り状態を招来させるか否かの抽選処理で使用される乱数値を初期値に戻そうとすることがある。
ステップST11の判定処理に戻って説明を続けると、CPUがウォッチドッグタイマによって強制的にリセットされた場合や、停電状態からの復旧時には、RAMクリア信号はOFF状態である。そして、このような場合には、ステップST11の判定に続いて、バックアップフラグBFLの内容が判定される(ST12)。バックアップフラグBFLとは、図8の電断処理の動作が実行されたことを示すデータであり、この実施例では、電源遮断時のステップST33の処理でバックアップフラグBFLがONレベル(5AH)とされ、電源復帰後のステップST28の処理でゼロクリアされる。
電源投入時や、停電状態からの復旧時である場合には、バックアップフラグBFLの内容が5AHの筈である。但し、何らかの理由でプログラムが暴走状態となり、ウォッチドッグタイマによるCPUリセット動作が生じたような場合には、バックアップフラグBFL=00Hである。したがって、BFL≠5AH(通常はBFL=00H)となる場合には、ステップST12からステップST18の処理に移行させて遊技機の動作を初期状態に戻す。
一方、バックアップフラグBFL=5AHであれば、チェックサム値を算出するためのチェックサム演算を実行する(ST13)。ここで、チェックサム演算とは、内蔵RAMのワーク領域を対象とする8ビット加算演算である。そして、チェックサム値が算出されたら、この演算結果を、RAMのSUM番地の記憶値と比較する(ST14)。
SUM番地には、電源降下時に実行される電断処理(図8)において、同じチェックサム演算によるチェックサム値が記憶されている(ST36)。そして、記憶された演算結果は、内蔵RAMの他のデータと共に、バックアップ電源によって維持されている。したがって、本来は、ステップST14の判定によって両者が一致する筈である。
しかし、電源降下時にチェックサム演算(ST36)が実行できなかった場合や、実行できても、その後、メイン処理のチェックサム演算(ST13)の実行時までの間に、ワーク領域のデータが破損している場合もあり、このような場合にはステップST14の判定結果は不一致となる。判定結果の不一致によりデータ破損が検出された場合には、ステップST18の処理に移行させてRAMクリア処理を実行し、遊技機の動作を初期状態に戻す。一方、ステップST14の判定において、チェックサム演算(ST13)によるチェックサム値と、SUM番地の記憶値とが一致する場合には、ステップST15の処理に移行する。
そして、バックアップ復帰コマンド、記憶数表示コマンド、及び遊技状態表示コマンドを、この順番に演出制御部22に送信する(ST15〜ST16)。また、電源遮断時の遊技機が非遊技状態であった場合には、これに対応して、デモコマンドを演出制御部に送信する(ST17)。これらの制御コマンドを受信したことによって、サブ制御部側では、バックアップ復帰した主制御部21で再開される遊技状態に対応した動作を開始することができる。
なお、記憶数表示コマンドは、特別図柄や普通図柄に関する演出動作の開始保留数を意味し、図柄始動口17やゲート18に、連続的に通過した遊技球の個数を示している。また、遊技状態表示コマンドは、再開される遊技状態を示すもので、例えば、バックアップ復帰される遊技状態が、確変状態か否かなどが特定される。
このようにしてバックアップ復帰又はRAMクリアに関する一連の処理(ST15〜ST17,ST18〜ST20)が終わると、タイマ割込み動作(不図示)を起動する割込み信号を出力するCTC(Counter Timer Circuit )を初期設定する(ST21)。そして、CPUを割込み禁止状態にセットした状態で(ST25)、各種のカウンタついて更新処理を実行し(ST23)、その後、CPUを割込み許可状態に戻してステップST22に戻る。
ところで、破線で示すように、バックアップ復帰コマンドを受けた演出制御部22では、ランプを消灯させると共に、音声出力を無音状態とする。また、演出制御部22から転送されるバックアップ復帰コマンドを受けた画像制御部23では、表示装置DISPに、例えば「停電から復帰しました。遊技を再開して下さい。」と表示する。
一方、RAMクリアコマンドを受けた演出制御部22では、ランプを全点灯状態にすると共に、所定時間(30秒間)、RAMクリア音を発生させる。後述するように、本実施例では、他のエラーが生じていても、RAMクリア音の出力が必ず所定時間だけ継続されるので防犯機能が高い。なお、演出制御部22から転送されるRAMクリアコマンドを受けた画像制御部23では、表示装置DISPに、所定の態様(例えば7・3・1)で、特別図柄を表示する。
以上、CPUリセット処理(メイン処理)について説明したが、タイマ割込み処理は、上記したメイン処理を中断させて、2mS毎に定時的に実行される。タイマ割込み処理では、毎回、ウォッチドッグタイマのクリア処理と、図8に示す電断処理とを含んだ制御処理が実行される。
電断処理では、先ず、電源基板20から供給される電源異常信号ABN1を、入力ポートを通して繰り返し取得する(ST25)。そして、電源異常信号ABN1のレベルが2回連続して一致することを条件に(ST26)、そのレベルを判定する(ST37)。ここで、電源異常信号ABN1が異常レベルでない場合には、異常回数カウンタとバックアップフラグBFLをゼロクリアして処理を終える(ST28、ST29)。
一方、電源異常信号ABN1が異常レベルである場合には、異常回数カウンタをインクリメント(+1)して(ST30)、計数結果が上限値MAXを超えていないかを判定する(ST31)。これは、入力ポートからの取得データが、ノイズなどの影響でビット化けしている可能性があることを考慮したものであり、取得データが連続して異常レベルを維持して上限値MAX(例えば、MAX=2)に達した場合には、交流電源が現に遮断されたと判定する。
このように、本実施例では、電源遮断時にも、直ぐにはバックアップ処理を開始せず、動作開始のタイミングが、MAX×2mSだけ遅れる。しかし、(1) 電源降下信号は、直流電源電圧の降下ではなく、交流直流電圧の降下を検出すること、(2) 直流電源電圧は、大容量のコンデンサによって交流電源の遮断後もしばらくは維持されること、(3) 電源監視処理が高速度(2mS毎)で繰り返されること、(4) バックアップ処理が極めてシンプルであり、迅速に終わることから、実質的には何の弊害もない。
ところで、ステップST31の判定の結果、異常回数カウンタの計数値が上限値MAXに一致した場合には、異常回数カウンタをゼロクリアした後(ST32)、バックアップフラグBFLをONレベル(=5AH)に設定する(ST33)。次に、主制御部21がバックアップ動作を実行することを示すために、演出制御部22に対して、電断コマンドを送信する(ST34〜ST35)。
電断コマンドは、各16ビット長の電断Aコマンドと電断Bコマンドとで構成されており、この順番で、8ビット毎に連続的に送信される。このような構成を採るのは、ノイズなどの影響で、電断状況が演出制御部22に誤報されることを防止するためである。
電断コマンドの送信が終われば、次に、メイン処理のステップST13の処理と同じ演算を、同じ作業領域(ワークエリア)に対して実行し、その演算結果を記憶する(ST36)。
そして、その後は、RAMアクセス禁止状態に設定すると共に(ST37)、全ての出力ポートの出力データをクリアする(ST38)。以上のバックアップ処理が終われば、CTCに対する設定処理によって割込み信号INTの生成を禁止すると共に、CPUを割込み禁止に設定して、無限ループ処理を繰り返しつつ直流電源電圧が降下するのを待つ(ST39〜ST40)。なお、電断処理は、タイマ割込み処理中に実行されるので、CPUは、もともと割込み禁止状態である場合もあるが、電源電圧の降下による誤動作を排除する趣旨から、本実施例では、再度、CPUを割込み禁止設定すると共に、CTCからの割込み信号INTの出力も禁止している。
ところで、図8の電断処理は、交流電源の遮断後、タイマ割込み周期である2mS以内に迅速に開始され、速やかに終了される。一方、電源電圧Vccが所定レベルまで降下するのは、電源回路などに配置された平滑コンデンサの影響でかなり遅れる。
そして、電源電圧Vccが所定レベルまで降下しない限り、主制御部21のウォッチドッグタイマは機能し続ける。そのため、電断処理が開始され、全ての処理が終わった後、無限ループ処理中に、ウォッチドッグタイマによってCPUが異常リセットされる可能性もある。
しかし、前記した通り、本実施例では、ステップST5〜ST6の待機処理を設けているので、バックアップ処理が無駄になることはない。なお、電源監視処理の全処理時間は、クリアパルスの出力周期(2mS)より短く設定されており、電源監視処理を終えるまでにウォッチドッグタイマが起動することはない。
ところで、主制御部21のウォッチドッグタイマが、最後にクリアパルスを受けてから、CPUにリセット信号を出力するまでの経過時間τ1は、演出制御部22や画像制御部23のウォッチドッグタイマが、最後にクリアパルスを受けてから、CPUにリセット信号を出力するまでの経過時間τ2、τ3より小さく設定されている。具体的には、各制御部の定時処理の実行間隔(2mS,10mS)に対応して、τ1≒5*τ2、τ1≒5*τ3に設定されている。
そのため、主制御部21のウォッチドッグタイマは、サブ制御部22,23のウォッチドッグタイマより格段に早く起動するが、本実施例では、後述する特有の構成(定時処理に戻る構成)を採ることで、主制御部21から送信された制御コマンドが、サブ制御部22,23で読み落されることがない(この点は、具体的に後述する)。
続いて、主制御部21から受ける制御コマンドに基づいて演出動作を実行する演出制御部22の動作について説明する。図9に示す通り、演出制御部22は、CPUがリセットされて開始されるメイン処理(a)と、ストローブ信号STBによって起動される受信割込み処理(b)と、10mS毎に起動される第1タイマ割込み処理(c)と、2mS毎に起動される第2タイマ割込み処理(d)と、を含んで構成されている。
図9(d)に示す通り、第2タイマ割込み処理では、電飾ランプを駆動するランプ演出処理(ST67)と、必要に応じて演出可動体AMUを駆動する演出モータ処理(ST68)とが2mS毎に実行される。なお、図9(e)には、CPUリセット処理(メイン処理)で実行されるエラー処理の要部が図示されている。
図9(a)に示す通り、メイン処理(CPUリセット処理)では、ワンチップマイコン40内部の初期設定を実行した後(ST46)、バックアップ判定処理を実行する(ST47)。バックアップ判定処理とは、バックアップ処理(ST63)において保存されたデータの正当性を判定する処理である。バックアップ処理(ST63)において保存されるデータは、特に限定されないが、例えば、(1) RAM領域の所定データに対するチェックサム演算のサム値、(2) RAM領域に離散的に保存された特定データ、(3) RAM領域の所定データを別の領域に保存したバックアップデータなどを例示することができる。
また、バックアップ判定処理では、動作状態を示す重要な動作フラグに不合理性がないかも判定される。動作フラグに不合理性とは、例えば、変動演出中であることを示す動作フラグと、大当り動作中であることを示す動作フラグとが共にセット状態となっているような場合である。この遊技機では、変動演出を終えてから、大当り動作に移行するので、2つの動作フラグが共にセット状態であるはずがなく、もし、このような事態が検出されれば、他の保存データに正当性が認められても、正常ではないと判定する。
このような場合も含め、ステップST48の判定において、正当性が確認できない場合には、RAMの全領域を初期化することで、演出制御部22をコールドスタートさせてステップST52の処理に移行させる(ST51)。
ところで、主制御部21や払出制御部24と異なり、演出制御部22にはバックアップ電源が設けられていないので、バックアップ判定処理(ST47)において、正当データが検出できる可能性がないとも思われる。しかし、CPUがリセットされるのは、電源投入に対応する電源リセット時だけでなく、ノイズやウォッチドッグタイマによってCPUリセット信号がアクティブレベルとなる異常リセット時もある。
そこで、本実施例では、CPUの異常リセット時に、可能な限り、それまでの遊技動作を継続して、演出制御部22の動作をホットスタートさせるべく、バックアップ判定処理(ST47〜ST48)を設けている。
但し、バックアップ判定処理(ST47)では全てのデータを判定する訳ではないので、CPUが繰り返し異常リセットされる場合には、演出制御部22の動作を初期状態に戻すべきである。そこで、異常リセット回数をカウントするべく異常カウンタをインクリメント(+1)処理し(ST49)、異常カウンタの値が所定値(例えば2)を超えた場合には、コールドスタートさせるべくステップST51のRAMクリア処理に移行させている(ST50)。
以上の通り、CPUが異常リセットされた場合でも、バックアップ判定(ST47)で正当判定され、且つ、異常リセット回数が所定値以下であれば、演出制御部22がホットスタートされて、それまでの遊技動作が継続される。
続いて、演出制御部22が、ホットスタートしたか、コールドスタートしたかに拘わらず、回転モータMTのモータ動作フラグFGの値を1に設定する(ST52)。また、回転モータMTの異常状態を示す異常フラグERを正常レベルの0に初期設定すると共に、動作モードMDを0に初期設定する。後述するように、モータ動作フラグFGが1に設定されると、その後の演出モータ処理(ST68)において、演出可動体AMUが原点位置に復帰するべく駆動される。
なお、原点位置への復帰処理は、コールドスタート時に限らず、ホットスタート時においても実行され、演出可動体AMUの演出位置には戻らない。しかし、(1) 比較的稀にしか演出可動体AMUの演出動作が実行されないこと、(2) CPUが異常リセットされることが極めて稀であることから、ホットスタート時に原点復帰動作を実行することに特段の問題は生じない。
むしろ、バックアップ判定処理(ST47)は、完璧ではないところ、CPUの異常リセット時に、誤ってホットスタートさせたために演出可動体AMUが回収できない事態が発生すると、不自然な位置に停止した演出可動体AMUが遊技者に不快感を与えてしまうおそれがある。この点を言い換えると、本実施例の構成を採れば、簡易なバックアップ判定処理(ST47)に対応して、バックアップ処理(ST63)についても簡易化することができ、極めて稀にしか発生しないCPU異常リセット時のために、10mS毎に過重な処理を繰り返す無駄を排除できる。
また、遊技機の開発段階における動作実験では、CPUのリセット時に、必ず、原点検出処理が実行される構成が非常に有効であり、この点についは更に後述する。もっとも、破線に示すように、コールドスタート時に限り、ステップST52の処理を実行することが、特に禁止されるものではない。
ステップST52の処理が終われば、音声再生出力回路(音声再生IC)42について、必要な初期設定を実行する(ST53)。その後、ワンチップマイコン40のCPUを割込み許可状態に設定した後(ST54)、乱数値を更新しつつ(ST55)10mS間隔のタイマ割込みを待機する(ST56)。なお、更新される乱数値は、演出動作をランダム化するために演出抽選処理において使用される。
図9(c)に示す通り、10mS間隔でタイマ割込みが生じる毎に、割込みフラグがセットされるので(ST66)、メイン処理のステップST56の処理では、割込みフラグがONになるのを繰り返しチェックする。そして、割込みフラグがONとなると、これをOFFにリセットした後に、タイマ更新処理を実行する(ST57)。タイマ更新処理で更新されるタイマには、後述する異常報知タイマや、クリア報知タイマが含まれており、各タイマは、ゼロになるまでデクリメント(−1)処理によって更新される。
続いて、受信割込み処理(図9(b))で受信された制御コマンド(受信コマンド)について、コマンド解析処理が実行される(ST58)。なお、受信コマンドには、変動パターンコマンドの他に、初期動作コマンド、RAMクリアコマンド、バックアップ復帰コマンド、電断Aコマンド、電断Bコマンドなどが含まれている。
図10は、コマンド解析処理の要部を示すフローチャートである。先ず、新規に受信した制御コマンドが、電断Bコマンドであるか否かを判定する(ST80)。先に説明した通り、主制御部21は、電断Aコマンドと電断Bコマンドをこの順番で連続的に送信するので、演出制御部22が、電断Bコマンドを受けた場合には、先行して電断Aコマンドを受けている筈である。
しかし、ノイズによる制御コマンドの誤送などの可能性もあるので、次に、既に電断Aコマンドを受信済みであるか否かを判定する(ST81)。そして、もし、電断コマンドAを受信していない場合には、電断Aコマンドを読み落したか、電断Bコマンドが誤送された等の通信異常であると考えられるので、電断Bコマンドを廃棄して、メイン処理に戻る(ST87)。
このように本実施例では、2つの電断コマンドを正常に受信しない限り、電断処理を進行させず、演出制御部22での遊技制御が継続されるので、ノイズなどの影響で遊技動作が不合理に中断される異常が回避される。なお、正常に送信された電断コマンドを読み落す可能性もあるが、せいぜい、実行中の遊技制御が電断時に突然消滅するだけであって、特段の問題は生じない。
ところで、ステップST81の処理において、電断Aコマンドを受信済みであると判定される場合には、画像制御部23に、電断Aコマンドと電断Bコマンドを、この順番で送信する(ST82〜ST83)。
次に、全てのランプを消灯状態とすると共に、回転モータMTや昇降モータMOの動作を停止する(ST84)。このとき、演出可動体AMUが原点領域外に位置する場合には、これを原点領域に復帰させる。そのため、電源遮断後に、演出可動体AMUの露出状態が継続されるとがなく見栄えが良い。また、電源復帰後に実行される原点検出処理を素早く終えることができる。
また、本実施例では、ランプやモータについて最初に停止制御を実行するので、電源電圧の降下速度を抑制して、以降の処理を確実に完結させることができる。
続いて、チャンスボタン11の操作を無効化すると共に、音声演出を停止して無音状態にして、電源電圧降下時に遊技機が異常動作しないよう図っている(ST85)。次に、ステップST51の処理と同様に、RAMクリア処理を実行した上で(ST86)、サブルーチン処理(ST58)を終える。その結果、その後は、演出動作を中止した状態で、ステップST54〜ST63の定時処理を実行しつつ直流電源が遮断されるのを待つ。
主制御部21が電断コマンドを送信したにも拘らず、演出制御部22の直流電源が遮断されないことは、通常では、考えられない。しかし、(1) 交流電源が遮断されると直ちに電源異常信号ABN1が出力されること、(2) 比較的大容量のコンデンサによって直流電源の電圧値が維持され、しかも、電力消費量が大きい処理が直ちに停止状態となることから(ST84)、例えば、交流電源が瞬停状態であったような場合には、演出制御部22の直流電源が正常に維持されることもある。
そして、このような場合、本実施例の演出制御部22では、コールドスタート状態でステップST54〜ST63の定時処理が実行されているので(画像制御部23も同様の構成を採る)、主制御部21が送信する初期動作コマンドを読み落すおそれが無い。
このことを説明するため、本実施例の構成とは異なり、例えば、ステップST86の処理の後に、主制御部21における図8と同様の無限ループ処理に移行させる場合を想定する。このような構成を、演出制御部22にも採用した場合、もし、演出制御部22の直流電源が維持されても、ウォッチドッグタイマWDTが起動して、CPUがリセットされるので、特段の問題が生じないとも考えられる。
しかし、ウォッチドッグタイマが、最後にクリアパルスを受けてから、CPUにリセット信号を出力するまでの経過時間τ1〜τ3は、各制御部21〜23における定時処理の実行間隔(2mS,10mS)に対応させるのが好ましく、例えば、τ1≒5*τ2、τ1≒5*τ3に設定される。そのため、主制御部21が電断コマンドを送信したものの、主制御部21及びサブ制御部22,23の直流電源が維持されたような場合には、主制御部21だけが素早くCPUリセットされるために、主制御部21が送信する初期動作コマンドを、演出制御部22が受信できない場合がある。
しかし、本実施例では、演出制御部22及び画像制御部23では、電断コマンドの受信後、無限ループ処理を実行することなく、定時処理(ST54〜ST63、SE7〜SE14)に戻るので、初期動作コマンドを読み落すおそれがない。
なお、交流電源が瞬停状態で、演出制御部22や画像制御部23の直流電源が正常に維持される事態は、遊技機の開発段階における動作実験で、少なからず生じるので、上記の構成は有効である。
この点を具体的に説明すると、この種の遊技機は一般にライフサイクルが短いので(数ヶ月)、次々と新機種を開発する必要があり、演出内容の動作確認などを急ぐ必要がある。そのため、交流電源を遮断しても、直流電源が数秒間は維持される点が大きな弊害となることがある。すなわち、一般の遊技機では、遊技機の演出動作を初期状態に戻すべく、交流電源用の電源スイッチのOFF→ON操作をしても、その操作間隔を相当長く確保しない限り、演出可動体AMUが原点位置に戻らず、表示装置DISPの表示画面が残るなどの事態が生じ、この点が動作確認実験などの大きな障害となる。
しかし、本実施例では、主制御部21の電断時には、サブ制御部22,23のRAMがクリアされて制御動作が初期状態に戻り(図10ST86、図18のSE23)、しかも、演出可動体AMUが原点領域に戻るので(ST84)、交流電源の電源スイッチを迅速にOFF→ON操作しても、下流側の制御部22,23を確実に初期状態に戻すことができ、演出動作の動作実験を迅速に繰り返すことができる。
以上、図10のコマンド解析処理のうち、電断処理(ST81〜ST86)について説明したが、新規に受信した制御コマンドが初期動作コマンドであった場合には、その初期動作コマンドを、下流側の画像制御部23に転送する(ST89)。次に、回転モータMTを初期動作させるために、モータ動作フラグFGを2に設定するなど、所定の初期動作に向けたフラグ設定処理を実行する(ST90)。
ところで、このタイミングでは、ステップST52のフラグ設定処理(FG=1)に起因して開始される原点検出処理が完了していない可能性もある。しかし、そのような場合であっても、モータ動作フラグFGが2に設定されることで(ST90)、実行中の回転モータMTの原点検出処理が中断されて初期動作処理が開始される。但し、移行された初期動作処理において、原点検出処理と同様の処理が実行されるので何の問題も生じない。なお、モータ動作フラグFGが2に設定された状態で、異常フラグER=1であって回転モータMTが異常状態であった場合には、FG=2の状態で、異常報知動作が開始される(異常報知動作については後述する)。
一方、新規に受信した制御コマンドがRAMクリアコマンドであった場合には、そのRAMクリアコマンドを、画像制御部23に転送する(ST92)。次に、クリア報知タイマを所定値(例えば30秒)に初期設定するなど、RAMクリア処理を実行するためのフラグ設定処理を実行する(ST93)。RAMクリア処理は、図7の破線で示す通りであり、ステップST67の処理によって電飾ランプが全て点灯され、ステップST62の音声演出処理によって、警報音としてRAMクリア音が出力される。
また、新規に受信した制御コマンドがバックアップ復帰コマンドであった場合には、そのバックアップ復帰コマンドを、画像制御部23に転送する(ST95)。その後、演出制御部22では、電源投入時の動作状態(ランプ消灯、無音)が継続される。
一方、遊技客が遊技動作を開始した後は、変動パターンコマンドを受信することもある。その場合には、演出抽選によって特定された演出コマンドを画像制御部23に送信する(ST97)。また、演出コマンドによって特定される演出動作を開始するべく必要なフラグ設定処理を実行する(ST98)。
そして、開始される演出動作に演出可動体AMUが含まれている場合には、モータ動作フラグFG=0、且つ、リトライフラグRT=0であって、回転モータMTが異常状態(モータエラー)でないことを条件に(ER=0)、回転モータMTのモータ動作フラグFGを3に設定する(ST98)。その結果、その後の演出モータ処理(ST68)では、演出可動体AMUを回転させるモータ演出が実行される。なお、モータエラーとは、リトライ処理(図11のSS4)を経ても回転モータMTが回転しない異常、或いは、モータ演出処理(図11のSS7)において、回転モータMTが正常に機能しない異常を意味し、何れの場合にも異常フラグER=1とされる。
また、本実施例では、変動パターンコマンドの受信時に、モータ動作フラグFG=1であって原点検出動作中である場合や、リトライフラグRT=1であってリトライ動作中である場合には、モータ演出動作をスキップする。したがって、画像制御部23における図柄演出と、演出制御部22におけるモータ演出とが同期しない不備が未然防止される。
ところで、図10には記載していないが、タイマ更新処理(ST57)とコマンド解析処理(ST58)とが協働することで、ステップST52の処理でモータ動作フラグFGが1に設定された後も、必要に応じて、回転モータMTのモータ動作フラグFGが1に設定される。具体的に説明すると、FG=1から初期状態(FG=0)に戻されたモータ動作フラグFGは、変動パターンコマンドに基づいて実行される変動演出の開始時や、変動演出終了後の大当りゲームの開始時や、遊技客が遊技を終了してから所定時間後に実行される客待ちデモ開始時には、改めてFG=1に設定される。
また、このモータ動作フラグFGの設定処理に合わせて、異常フラグERが、正常状態を示す0に初期設定される。これは、「変動演出の開始時」、「大当りゲームの開始時」、又は「客待ちデモ開始時」において、改めて、原点検出処理(SS5)を実行することで、回転モータMTの異常解消を図るためである。
すなわち、異常フラグER=1の状態では、回転モータMTの駆動が禁止されるものの(図11のSS1)、回転モータMTは非駆動状態となる(図11のSS9)。このことによって、回転モータMTは、拘束状態から自由回転状態(非拘束状態)に移行するので、遊技球の払出に伴う振動などによって、異常状態が自然復旧する可能性もある。そこで、再度の原点検出処理(SS5)によって、回転モータMTの原点位置への復帰を図っている。なお、再度の原点検出処理(SS5)でも、異常が認められる場合には、リトライ処理に移行し、それでも異常が解消しない場合には、異常フラグER=1とする。
何れにしても、図10に示すコマンド解析処理(ST58)が終われば、次にエラー処理が実行される(ST59)。図9(e)は、回転モータMTのモータエラーに関するエラー処理を示している。先に説明した通り、モータエラーとは、異常フラグER=1の状態であって、リトライ処理(SS4)を経ても回転モータMTが回転しないか、モータ演出処理(SS7)において、回転モータMTが正常に機能しなかった異常を意味する。
本実施例では、回転モータMTの駆動処理は、モータ動作フラグFGに基づき、原点検出処理(FG=1)、初期動作処理(FG=2)、モータ演出処理(FG=3)に大別されるが(図11参照)、この何れの処理においても回転モータMTの異常が発生する可能性がある。
しかし、本実施例では、モータの異常事態が検出されても、原則として、異常フラグERが1に設定されるだけであって、主制御部21から初期設定コマンド(図7のST8参照)を受信しない限り、その異常状態を報知しないよう構成されている。なお、主制御部21は、CPUリセット時に限り、初期設定コマンドを送信するので、異常状態の報知は、主制御部のCPUリセット時に限られる。
このような構成を採るのは、(1) 演出可動体AMUは、予告動作として稀にしか動作せず、遊技球の払出モータなどに比較すると、その重要度が低いこと、(2) したがって、直ちに異常報知して係員を急行させなければならないほどの緊急性がないこと、(3) 無闇に異常報知すると遊技中の遊技者を白けさせ不信感を与えること、(4) 回転モータMTが回転不能であっても、その後、遊技球の払出などに伴う振動に基づいて、自然復旧することもあること、などの理由に基づく。
このように、本実施例では、回転モータMTの異常報知は、主制御部21のCPUがリセット(典型的には電源リセット)された時に限られるので、電源投入時に検出されたモータエラーの異常報知が、その後に実行される他の報知動作によって消滅することがない。例えば、電源投入時に検出されたモータエラーを直ちに音声報知すると、その後に受けたRAMクリアコマンドによる音声報知によって、モータエラーの音声報知が消滅して、係員が回転モータMTの異常を見落とすおそれがある。
一方、RAMクリア処理(ST18)が不正遊技者に悪用される可能性があることは、図7に関して説明した通りであり、したがって、RAMクリアの音声報知を消滅させて、モータエラーを音声報知することは、セキュリティ上、非常に不適切であって採用できない。
以上のような異常報知動作を実現するため、エラー処理(ST59)では、図9(e)に示す通り、最初に、異常フラグERの値を判定する(ST69)。そして、異常フラグがER=1であれば、その時のモータ動作フラグFGの値が2であるか否かを判定する(ST70)。そして、モータ動作フラグFG≠2であれば、モータエラーの発生(ER=1)に拘らず、他のエラー処理にスキップさせる。
このような動作手順を採るのは、主制御部21から初期設定コマンドを受信した後でないと、回転モータMTのモータエラーを異常報知しないためである。なお、モータ動作フラグFGは、主制御部21から初期設定コマンドを受信すると、自動的にFG=2とされ(図10のST90)、異常フラグER=0であることを条件に(SS40)、図14〜図15に示す初期動作処理の実行が開始される。
したがって、ステップST70の処理で、モータ動作フラグFG=2と判定される場合とは、図14〜図15の初期動作処理においてモータエラーが発生したか、或いは、それ以前の電源投入後に実行される原点検出処理(図13)において、既に、モータエラーが発生していたかの何れかである。
そして、何れの場合であっても、モータ動作フラグFG=2であれば、ステップST70の処理に続いて、モータエラーに関する報知開始コマンドを画像制御部23に送信済みであるか否かが判定される(ST71)。そして、未だ送信していない場合には、異常報知時間(例えば60秒)を管理する異常報知タイマを初期設定し(ST76)、報知開始コマンドを画像制御部23に送信する(ST77)。なお、報知開始コマンドを受けた画像制御部23では、表示装置DISPに表示中の画像に重ねて、例えば「役物エラー」と表示する。
このようにして異常報知動作が開始された後は、次回以降のエラー処理(ST59)では、ステップST71の判定に続いて、クリア報知タイマの値が判定される(ST72)。クリア報知タイマは、RAMクリアコマンドを受けた後に実行されるクリア報知時間(=30秒)を管理するものであり、図10のST93の処理で初期設定されている。
そして、クリア報知時間が満了するまでは、演出制御部22におけるモータエラーの異常報知処理(音声報知)を開始しない。それは、不正遊技なども考慮して、RAMクリアの音声報知を優先して、確実に、異常報知時間(30秒)だけ、RAMクリア報知を継続させるためである。そして、クリア報知時間が満了すれば、異常報知タイマが満了するまで、モータエラーに関する音声報知を実行し(ST74)、異常報知タイマが満了すれば、モータエラーの音声報知を終了して、モータ動作フラグFGを初期状態の0に戻す(ST75)。但し、異常フラグERは1のままである。
このように、モータエラーの音声報知が終了することは、モータエラーが解消されたことを意味しない。しかし、モータエラーの音声報知は、遊技ホールの開店前に実行されるので、遊技機に急行した係員がモータ異常を解消させた上で、遊技機の電源スイッチをOFF→ON操作をすれば足りると解される。
一方、モータエラー状態を放置したとしても、異常フラグER=1であるので、回転モータMTは自由回転状態に維持され、しかも「変動演出の開始時」、「変動演出の終了時」、「大当りゲームの開始時」、又は「客待ちデモ開始時」において、改めて、原点検出処理(SS5)が実行されるので、回転モータMTの異常が自然解消される可能性もある。なお、最悪でも、演出可動体AMUによる予告動作が実行されないだけであって、特段の弊害はない。
以上のようなエラー処理(ST59)が終われば、次に、必要に応じて、チャンスボタン11についての入力処理が実行される(ST60)。また、ランプ演出(ST67)や演出モータ処理(ST68)や音声演出(ST62)についての演出シナリオを作成又は更新する(ST61)。次に、作成または更新された演出シナリオに基づいた音声演出が実行される(ST62)。なお、音声演出には、異常報知タイマに基づくモータエラーの音声報知動作や、クリア報知タイマに基づくRAMクリアの音声報知動作も含まれている。但し、図9(e)のステップST72〜ST73に示す通り、RAMクリアの音声報知が優先されるため、2つの音声報知動作が重複する場合には、モータエラーの異常報知音が出力されない。しかし、異常報知タイマの初期値は、クリア報知タイマの初期値より十分大きく設定されているので(実施例では2倍)、事実上、何の問題も生じない。
異常報知処理も含む音声演出(ST62)が終われば、バックアップ処理(ST63)を実行した後にステップST54の処理に移行する。なお、バックアップ処理としては、例えば、チェックサム演算だけでなく、特定データを離散的に保存する処理や、ワーク領域の全データのバックアップ保存する処理などが例示される。
また、バックアップ処理に続いてウォッチドッグタイマWDTのクリア処理も実行される。このように、演出制御部22では、ウォッチドッグタイマWDTが10mS間隔でクリアされるので、ウォッチドッグタイマWDTが最後にクリアパルスを受けてから、CPUにリセット信号を出力するまでの経過時間τ2は、10mSより十分に長い。
続いて、2mS毎に実行される演出モータ処理(図9(d)のST68)について、図11〜図17に基づいて説明する。
図11に示す通り、演出モータ処理では、最初に異常フラグERの値が判定され(SS1)、もし異常フラグER=1であれば、非駆動データをドライバ回路45Bに出力して処理を終える(SS9)。非駆動データは、この実施例では、4ビット長の0000であり、回転モータMTは、自由回転可能な非拘束状態で停止状態を維持する。
一方、異常フラグER=0であれば、リトライフラグRTの値を判定する(SS2)。リトライフラグRTは、原点検出処理(SS5)や初期動作処理(SS6)などにおいて、例えば、回転モータMTの空回転によって、演出可動体AMUが原点領域に戻れない異常時にRT=1とされる。そして、リトライフラグRT=1の状態で実行されるリトライ処理(SS4)でも異常が改善されない場合には、異常フラグERを1にセットして異常終了する。一方、異常が改善されて正常終了する場合には、リトライフラグRT=0となる。
そのため、ステップSS2の処理において、リトライフラグRT=0と判定される場合には、次に、モータ動作フラグFGの値が判定される(SS3)。先に説明した通り、モータ動作フラグFGは、原点検出処理が実行されるFG=1、初期動作処理が実行されるFG=2、モータ演出処理が実行されるFG=3に大別される。
ここで、原点検出処理(SS5)は、(1) 演出制御部のCPUリセット時、(2) 変動演出開始時、(3) 変動演出終了時、(4) 大当り遊技開始時、(5) 客待ちデモ演出開始時などに実行される。そして、原点検出処理(SS5)の実行に先立って、モータ動作フラグFG=1、異常フラグER=0に初期設定される(例えば、図9のST52)。
そして、原点検出処理(SS5)では、詳細を図12に示す通り、演出可動体AMUが、もともと原点領域に位置していたか、或いは、原点領域の外側から原点位置まで移動すると正常終了して、モータ動作フラグFG=0とする。一方、原点検出処理(SS5)において正常な動作が継続できない異常時には、リトライフラグRT=1に設定して異常終了する。なお、その後の演出モータ処理では、リトライ処理(SS4)が実行される。
一方、図10のステップST90の処理によって、モータ動作フラグFG=2に設定される初期動作処理(SS6)では、その開始タイミングで異常フラグがER=0であることを条件に実行が開始される(図14のSS40参照)。この初期動作処理では、演出可動体AMUが原点位置まで移動すると正常終了して、モータ動作フラグFG=0となる。逆に、正常な動作が継続できない場合には、モータ動作フラグFG=2を維持した状態で、リトライフラグRT=1として、リトライ処理(SS4)に移行する。
なお、モータ動作フラグFG=2に設定されたタイミングで、異常フラグER=1である場合には、図9のステップST71〜ST77に示す通り、モータエラーの異常報知処理が開始される。
図10のステップST98の処理に関して説明した通り、モータ演出処理(SS7)は、リトライフラグRT=0、モータ動作フラグFG=0、及び、異常フラグER=0であることを条件に開始され、演出可動体AMUの可動演出が実行される。そして可動演出が正常に終了するとモータ動作フラグFG=0とされる。
一方、可動演出が正常に継続できない場合には、異常フラグER=1として処理を終える。そして、異常フラグER=1となったことによって、その後のモータ演出は、異常が復旧されない限り禁止される。
しかし、前記の通り、(1) 演出制御部のCPUリセット時だけでなく、(2) 変動演出開始時や、(3) 変動演出終了時や、(4) 大当り遊技開始時や、(5) 客待ちデモ演出開始時には原点検出処理が実行され、原点検出処理において、正常動作が継続できない場合にはリトライ処理に移行するので、回転モータの異常が自動復旧される可能性は低くない。
以上、演出モータ処理の概要を説明したので、その具体的な処理内容を以下に説明する。なお、プログラムで使用する変数を整理すると、図11の下欄に示す通りである。すなわち、計数カウンタCNTは回転モータMTの回転角度を規定し、方向フラグDRは、回転モータMTの順逆の回転方向を規定し、動作モードフラグMDは、制御動作の進行を管理する。
図9(d)及び図11から明らかな通り、異常フラグER=0、且つ、リトライフラグRT=0の状態では、ステップSS3以下の処理が、2mS毎に繰り返し実行される。なお、原点検出処理(SS5)、初期動作処理(SS6)、モータ演出処理(SS7)は、モータ動作フラグFG(=1〜3)の値に対応して開始されるが、開始タイミングでは、何れの場合にも、動作モードMD=0となっている。
先ず、図12に基づいて、原点検出処理(SS5)について説明する。最初に、フォトインタラプタPHからの検出信号SNが取得され記憶される(SS10)。次に、動作モードMDを判定し(SS11)、初期状態のままでMD=0であれば、検出信号SNのレベルが判定される(SS12)。
図5に関して説明した通り、検出信号SNは、回転部材ROTが原点領域に位置しているか否かを示している。したがって、検出信号SN=Hであって、回転部材ROTが原点領域に位置している場合には、モータ動作フラグFGを初期状態のFG=0に戻して処理を正常終了させる(SS13)。この場合、回転部材ROTは、正確な原点位置には位置しない可能性もあるが、演出可動体AMUは、少なくとも、遊技者の目に触れない位置に収容されている。
一方、検出信号SN=Lであって、回転部材ROTが原点領域外に位置している場合には、計数カウンタCNTの値を、十分な余裕をもって、周回時間Mの2倍に対応する値に初期設定する(SS14)。先に説明した通り、周回時間Mは、回転部材ROTが定速度Vで回転する場合において、原点を経過してから再び原点に達するまでの経過時間であり、本実施例では、タイマ割込み時間間隔τに対応して245*τとなっている。したがって、計数カウンタCNTは、回転部材ROTが2回転する時間に対応する490に初期設定される。
また、方向フラグDRを0に設定して逆方向(図5では半時計方向)に回転させることを規定し、動作モードMDを1とする(SS14)。以上の処理は、次回以降のタイマ割込みによって、回転部材ROTを原点領域に戻すための処理である。なお、計数カウンタCNTの初期値は、必ずしも490である必要はなく、1周分(=245)より適宜に大きい値であれば足りる。
動作モードMD=1となったことにより、次回以降のタイマ割込みでは、ステップSS11→SS15→SS16の経路を経て、検出信号SNがHレベルとなったか否かが判定される(SS16)。そして、未だ、回転部材ROTが原点領域に戻っておらず、検出信号SN=Lであれば、所定時間毎に、駆動データをDR方向に1ステップ進め、これに対応して計数カウンタCNTをデクリメントする(SS18)。なお、更新された駆動データは、図11のステップSS8の処理で回転モータMTに供給されることで、回転部材ROTが回転駆動される。
ところで、本実施例の駆動データは、4ビット長の0101,1001,1010,0110であり、その更新タイミングは、回転部材ROTの回転速度Vに基づいて決定される。仮に、2回のタイマ割込み処理(=4mS)毎に駆動データを更新するのであれば、本実施例の構成では、4mS*245=0.98秒間で、回転部材ROTが一回転することになる。
このようにして、ステップSS18の処理を繰り返して回転部材ROTを歩進させていると、やがて、回転部材ROTが原点領域に戻り、検出信号SN=Hとなる筈である。そこで、その場合には、計数カウンタCNTを、逆方向基準時間N2に対応する値(N2/τ)に、新たに初期設定する(SS19)。先に説明した通り、逆方向基準時間N2は、定速度Vで回転する回転部材ROTが、原点領域に戻ってから原点位置に達するまでの経過時間である。
また、方向フラグDRを0に維持して、動作モードMDを2とする(SS19)。以上の処理は、次回以降のタイマ割込みによって、原点領域に突入した回転部材ROTを、正確に原点位置に戻すための処理である。
一方、検出信号SN=Lである場合には、ステップSS17〜SS18の処理を更に繰り返すことになる。そして、検出信号SN=Lが維持されて、ステップSS14で初期設定された計数カウンタCNTが0に達した場合には、リトライフラグRT=1に設定すると共に、動作モードMD=0として処理を終える(SS20)。
これは、回転モータMTについて2回転分の駆動動作を実行したにも拘らず、回転部材ROTが原点領域に戻れない異常が検出されたことになる。そこで、次回のタイマ割込みでは、モータ動作フラグFG=1を維持した状態で、リトライ処理(SS4)が実行される(図11参照)。
一方、ステップSS19の処理が実行された後のタイマ割込みでは、ステップSS11→SS15→SS21の経路を経て、計数カウンタCNTの値が判定される(SS21)。そして、計数カウンタCNT≠0であれば、所定時間毎に駆動データをDR方向に進め、これに対応して、計数カウンタCNTをデクリメントする(SS22)。
そして、計数カウンタCNT=0となったタイミングで、動作モードMD=0とすると共に、モータ動作フラグFG=0として、原点検出処理を正常終了させる(SS23)。なお、この実施例の構成では、回転部材ROTが正確に原点位置に達したか否かの判断はできないが、回転部材ROTが原点領域に収容されれば、それで足りると解される。
続いて、図13に基づいてリトライ処理について説明する。リトライ処理(SS4)は、原点検出処理(SS5)、初期動作処理(SS6)又はモータ処理(SS7)において、リトライフラグRT=1に設定されることに起因して開始される。そして、その開始時には動作モードMD=0に設定されている。
そこで、リトライ処理(SS4)では、図13に示す通り、最初に動作モードMDが判定され(SS24)、動作モードMD=0であれば、計数カウンタCNTが適宜な値XXに初期設定され、方向フラグDR=1にされた上で、動作モードがMD=1とされる(SS25)。方向フラグDR=1は、回転方向が順方向であることを意味し、通常は、原点領域から離れる方向を意味する。
動作モードMD=1とされたことにより、次回のタイマ割込みでは、ステップSS24→SS26→SS27の経路を経て、計数カウンタCNTの値が判定される(SS27)。そして、計数カウンタCNT≠0であれば、所定時間毎に駆動データを1ステップ進めて、これに対応して計数カウンタCNTをデクリメントする(SS28)。
このような処理を繰り返していると、やがて、計数カウンタCNT=0となるので、その場合には、計数カウンタCNTの値を、周回時間Mの2倍に対応する値に、新たに初期設定する(SS29)。また、方向フラグDR=0、動作モードMD=2とする(SS29)。したがって、次回のタイマ割込み処理では、回転部材ROTが原点領域に向けて逆方向に回転することになる。これは、順方向に所定回数(=XX)だけ駆動した後に(SS25〜SS28)、それまでと逆方向に駆動して往復運動をさせることで、回転モータMTの異常を解消させるためである。
動作モードMD=2とされたことにより、次回のタイマ割込みでは、ステップSS24→SS26→SS30→SS31の経路を経て、検出信号SNが取得され(SS31)、そのレベルが判定される(SS32)。そして、検出信号SN=Hであって、回転部材ROTが原点領域に突入した場合には、原点位置まで更に移動させるべく、計数カウンタCNTに、逆方向基準時間N2に対応する値(N2/τ)に、新たに初期設定する(SS35)。また、方向フラグDRを0に維持して、動作モードMDを2とする(SS35)。
一方、検出信号SN=Hでない場合には、計数カウンタCNTの値を判定し(SS33)、計数カウンタCNT≠0であれば、所定時間毎に駆動データをDR方向に1ステップ進め、これに対応して計数カウンタCNTをデクリメントする(SS34)。
そして、このような歩進動作を繰り返しても検出信号SN=Lが維持される場合には、もはや修復不能と判断して、リトライフラグRT=1の状態のまま、異常フラグER=1に設定して処理を終える(SS36)。
その結果、これ以降は、異常フラグがER=0となるまで、回転モータMTは非駆動状態となり、回転部材ROTは停止状態を維持する。なお、変動演出開始時などに実行される原点検出処理(SS5)では、その開始時に、異常フラグER=0、モータ動作フラグFG=1とされるので、リトライ処理(SS4)が再実行される。
そして、リトライ処理に成功すると、リトライフラグRT=0となった後に(SS39)、原点検出処理(SS5)が再実行される。なお、リトライ処理に成功していることから、直ちに、原点検出処理を正常終了する(図12のSS10〜SS13参照)。
一方、再度のリトライ処理にも失敗した場合には、再度、異常フラグER=1となり(SS36)、再度の原点検出処理まで回転モータMTは非駆動状態となる(図11のSS9参照)。この実施例では、異常フラグER=1の状態では、回転モータMTが非駆動状態とされ、しかも、変動演出開始時や、客待ちデモ演出開始時に、繰り返しリトライ処理が実行されるので回転モータMTの異常が自動的に復旧される可能性が低くない。なお、リトライ処理に失敗しても、異常報知動作を実行しないので遊技者に不信感を与えることもない。
以上、ステップSS36の処理に関連する事項を詳細に説明したが、ステップSS35の処理が実行された後は、ステップSS24→SS26→SS30→SS37の経路を経て、計数カウンタCNTの値が判定され(SS37)、計数カウンタCNT≠0であれば、所定時間毎に駆動データをDR方向に1ステップ進め、これに対応して計数カウンタCNTをデクリメントする(SS38)。
そして、計数カウンタCNT=0となれば、リトライフラグRT=0、動作モードMD=0として、リトライ処理を正常終了させる(SS39)。
続いて、図14〜図15に示す初期動作処理(SS6)について説明する。初期動作処理は、主制御部21から初期動作コマンドを受けて開始されるが(図10のST90)、この状態で異常フラグER=1であれば、直ちに処理を終える(SS40)。このような事態は、原点検出処理において、モータエラーが生じた場合に発生するが、その後は、図9(e)のステップST71以下の処理によって、所定時間継続する異常報知動作が実行される。
一方、異常フラグER=0であれば、検出信号SNの取得(SS41)、動作モードMDの判定(SS42)、検出信号SNのレベル判定(SS43)の処理を実行する。そして、検出信号SN=Hであれば、回転部材ROTが原点領域に位置することになるので、計数カウンタCNTを回転部材ROTの2回転分の値(=2*M/τ)に初期設定し、方向フラグDR=1、動作モードMD=3に初期設定して処理を終える。
一方、動作モードMD≠0または検出信号SN=Hの場合には、ステップSS42以下の処理を実行する。ステップSS42〜SS53の処理は、原点検出処理におけるステップSS11〜SS22(SS13を除く)の処理と実質的に同じである。したがって、原点領域外に位置する回転部材ROTを逆回転させて、原点領域に突入させ、その後も、逆方向基準時間N2だけ逆回転させて、回転部材ROTを原点位置に復帰させることになる。
図15は、図14の処理を終えた後の処理内容を示している。先ず動作モードMDが判定され、動作モードMD=3であれば、検出信号SNが判定される(SS56〜SS57)。動作モードMD=3となるのは、初期動作処理(SS6)の開始時から回転部材ROTが、既に原点領域に位置した場合(SS43→SS54)と、原点検出処理(SS5)と同様の処理を経て、回転部材ROTが原点位置に復帰した場合(SS52→SS54)の何れかである。
そして、何れの場合も、ステップSS54の処理によって順方向の回転動作が規定されている(DR=1)。そこで、動作モードMD=3ある場合には、検出信号SNを判定して、原点領域に位置した回転部材ROTが、原点領域外に脱出したか否かを確認する(SS57)。そして、原点領域外に脱出した場合(検出信号SN=L)であれば、更に、順回転を継続するべく、計数カウンタCNTを回転部材ROTの2回転分の値(=2*M/τ)に初期設定し、方向フラグDR=1、動作モードMD=4に初期設定する(SS60)。
一方、未だ、回転部材ROTが、原点領域内に位置する場合(検出信号SN=H)には、計数カウンタCNT≠0である限り、計数カウンタをデクリメントしつつ、回転部材ROTの順回転を継続させる(SS59)。
そして、この動作を幾ら続けても、検出信号SN=Lとならない場合には、計数カウンタCNT=0となったタイミングで、モータ動作フラグFG=2のままで、異常フラグER=1として処理を終える(SS61)。この状態は、原点領域に位置する回転部材ROTを如何に駆動しても、原点領域から脱出できない異常を意味する。なお、この異常時には、改めて、リトライ処理に移行させることはない。但し、回転部材ROTが原点領域に位置することから、通常の場合、演出可動体AMUは、遊技者から隠蔽されるので特に問題は生じない。
何れにしても、異常フラグER=1となったことにより、その後は、回転モータMTが非駆動状態で停止する。そして、モータ動作フラグFG=2が維持されることから、図9(e)のステップST71以降の異常報知動作が開始される。
一方、ステップSS60の処理が実行された後は、ステップSS41→SS45→SS51→SS56の→SS62→SS63の経路を経て、検出信号SNが判定される(SS63)。そして、検出信号SN=Hである場合は、回転部材ROTが原点領域外から原点領域に再突入したことを意味する。
そこで、計数カウンタCNTを、順方向基準時間N1に対応する値(N1/τ)に、新たに初期設定する(SS66)。また、方向フラグDRを1に維持して、動作モードMDを5とする(SS66)。
一方、検出信号SN=Hでない場合には、計数カウンタCNTの値を判定し(SS64)、計数カウンタCNT≠0であれば、所定時間毎に駆動データをDR方向に1ステップ進め、これに対応して計数カウンタCNTをデクリメントする(SS65)。
そして、このような歩進動作を繰り返しても検出信号SN=Lが維持される場合には、モータ動作フラグFG=2の状態のまま、異常フラグER=1に設定して処理を終える(SS67)。
この状態は、原点領域外に脱出した回転部材ROTを如何に駆動しても、原点領域に再突入できない異常を意味する。この異常時においても、リトライ処理に移行させることはない。しかし、(1) 初期動作処理(SS6)は、主制御部のCPUリセット時(殆ど遊技ホールの開店時)に限り実行されること、(2) モータ動作フラグFG=2、且つ、異常フラグER=1の条件から、異常報知動作が開始されることから(図9(e)参照)、事実上の弊害はない。すなわち、異常報知動作に対応して遊技ホールの係員が適切な措置を採ると考えられる。
ところで、ステップSS66の処理が実行された後は、ステップSS41→SS45→SS51→SS56→SS62→SS68の経路を経て、計数カウンタCNTの値が判定される(SS68)。そして、計数カウンタCNT≠0であれば、それまでの順方向回転が継続され(SS69)、計数カウンタCNT=0となったタイミングで、動作モードMD=0、モータ動作フラグFG=0に戻して処理を終える(SS70)。この状態では、回転部材ROTが原点位置に位置することになる。
以上、図12〜図15では、回転部材ROTを正逆回転させる回転モータMTについて説明した。しかし、可動部材MVを往復運動させる昇降モータMOなどの場合であっても基本的動作は同じである。すなわち、図12〜図14の動作については、回転モータMTにおける順方向基準時間N1と逆方向基準時間N2を全て基準時間Nに読み替える程度である。
しかし、初期動作処理については、その後半部分の動作に特徴があるので、以下、図16に基づいてラック&ピニオン機構を駆動する昇降モータMOに関して説明する。
初期動作処理(SS6)では、可動部材MVを原点領域に収容するべく、昇降モータMOが、図14と同様に制御される。そして、この収容動作が成功した後は、図16の動作に移行して、動作モードMD=3の状態で検出信号SN=Lとなるのを待つ(SP56〜SP59)。この処理は、原点領域に収容された可動部材MVが順方向に移動して、可動部材MVの左端が、原点領域から原点領域外に脱出したか否かの判定を意味する。
そして、脱出に成功した場合には、計数カウンタCNTを、時間(M−N)に対応する値(M−N)/τに初期設定する(SP60)。なお、Mは、可動部材MVの左端が、原点側メカロックを離れてから、可動部材MVの右端が終点側メカロックに当接されるまでの可動範囲Lを移動するに要する移動時間であり、Nは、原点領域に突入して可動部材MVの左端が、原点位置に達するまでに要する基準時間である。
また、ステップSP60では、方向フラグDR=1として、動作モードMD=4とする。図6に示す通り、移動時間(M−N)は、原点領域を脱出した可動部材MVの右端が、終点側のMAX位置に達するまでの経過時間を意味する。したがって、動作モードMD=4に移行した状態では、計数カウンタCNTの値を判定しつつ、可動部材MVの右端がMAX位置に達するのを待つ(SP63〜SP64)。
そして、可動部材MVの右端がMAX位置に達した場合には、計数カウンタCNTを2*Mの時間に対応する値に初期設定すると共に、方向フラグDR=0、動作モードMD=5とする(SP65)。これは、MAX位置に達した可動部材MVを原点方向に戻すための初期動作である。
その後は、可動部材MVの左端が原点領域に再突入するのを待ち、もし、再突入したら、計数カウンタCNTを基準時間Nに対応する値に初期設定すると共に、方向フラグDR=0を維持して、動作モードMD=6とする(SP71)。これは、原点領域に再突入した可動部材MVの左端を原点位置に戻すための初期動作である。そして、その後は、計数カウンタCNT=0となったタイミングで初期動作を終える(SP75)。
一方、検出信号SN=Lの状態で、計数カウンタCNT=0となった場合には、異常フラグER=1として処理を終える。この状態は、可動部材MVを原点領域に回収できなかった異常であるが、その後に開始される異常報知処理に呼応して係員による修復が期待される。
ところで、図16に示すステップSP56〜ST59の処理を繰り返しても、可動部材MVの左端が、原点領域から原点領域外に脱出できない場合もある。具体的には、検出信号SN=Hの状態が継続して、計数カウンタCNT=0となる可能性もある。そこで、このような異常時には、計数カウンタCNTを2*Mに対応する値に初期設定すると共に、方向フラグDR=0、動作モードMD=7とする(SP61)。
これは、原点領域から脱出できない可動部材MVを可能な限り、原点側に移動させて、遊技者から演出可動体を確実に隠すための初期動作である。そして、その後は、計数カウンタ=0となるまで、逆方向に可動部材MVを駆動して、異常フラグER=1に設定して処理を終える(SP78)。この場合にも、その後に開始される異常報知処理に基づく、係員による異常修復作業が期待できる。
以上、演出制御部22について詳細に説明したので、次に、画像制御部23の動作について説明する。画像制御部23は、CPUがリセットされて開始されるメイン処理(図17)と、ストローブ信号STBによって起動される受信割込み処理(不図示)と、10mS毎に起動されるタイマ割込み処理(不図示)と、を含んで構成されている。
図17に示す通り、画像制御部23のメイン処理は、図9に示す演出制御部22のメイン処理に類似している。すなわち、ステップSE1〜SE6の処理は、演出制御部22におけるステップST46〜ST51の処理と実質的に同じである。また、ステップSE7〜SE14の処理が10mS間隔で繰り返し実行される点でも同じである。また、画像制御部23のウォッチドッグタイマWDTにも、10mS間隔でクリアパルスが供給される。
但し、画像制御部23は、演出制御部22が送信又は転送した制御コマンドを受信して画像制御動作を実行するので、図9のステップST52に対応する処理は存在しない。そのため、ホットスタート又はコールドスタートした後は、CPUを割込み許可にセットして(SE7)、乱数値を更新しつつ10mSの時間が経過するのを待つ(SE6)。そして、10mS毎に、タイマ更新(SE10)、コマンド解析(SE11)、エラー処理(SE12)、演出シナリオ更新(SE13)、バックアップ処理(SE14)の各処理を実行する。
図18は、コマンド解析処理(SE11)の要部を示すフローチャートである。受信割込み処理において電断コマンドを受信した場合(SE20)には、既に電源Aコマンドを受信しているかを判定する(SE21)。これは、図10のステップST82〜ST83の送信処理に対応したものであり、正常時には、先行して電断Aコマンドを受信している筈である。ところが、電断コマンドAを受信していない場合には、通信異常などであると判定して処理を終える(SE24)。この処理は、図10のコマンド解析処理の場合と同じである。
一方、電断Aコマンドを既に受けている場合には、主制御部21が電断処理を実行したと判断して、その後の直流電源の遮断に備えて、液晶画面を黒画面化する(SE22)。次に、RAMクリア処理を実行して(SE23)、ステップSE7〜SE14の定時処理に戻る。
その後、電源電圧が遮断されると予想されるが、交流電源の瞬停などによって、直流電源が維持された場合にも、ウォッチドッグタイマを起動させるまでもなく、RAMクリア状態で定時処理を実行している。そのため、表示装置に過去の画面が再表示されることはなく、遊技機開発時などにおいて、電源スイッチを素早くOFF→ON操作しても、動作実験に支障を与えない。また、CPUリセットされた主制御部21から送信され、演出制御部22から転送される初期コマンドを読み落すこともない。また、主制御部21において、ウォッチドッグタイマ起動までの待機時間τ1を最適に設定できる点でも、電断時にサブ制御部では無限ループ処理を実行しない構成は有効である。
ところで、受信割込み処理においてモータエラーについての報知開始コマンドを受けた場合には、画像制御部23においても、報知タイマを60秒に初期設定する。これは、演出制御部22がモータエラーについての報知終了コマンドを送信しないことに対応する処理である。
そして、報知開始コマンドの受信に対応して、「役物エラー」などの報知画面を表示させるための初期設定がされ(SE27)、その後、報知画面を維持しつつタイマ更新処理(SE10)を繰り返し、報知タイマが0になれば、報知画面が自動消滅させる。なお、報知画面は文字表示であり、それまでの画面に重ね書きされるので、他の表示画面が消滅することはない。
本実施例では、演出制御部22が報知開始コマンドを送信するのは、主制御部21のCPUリセット時に限られるので、実際には、RAMクリア状態か、バックアップ復帰状態かを示す画面に、報知画面が重複表示されることになる。
なお、演出制御部22から初期動作コマンドを受信した場合には、「PLEASE WAIT」と画面表示するための初期設定がされ(SE29)、RAMクリアコマンドやバックアップ復帰コマンドを受けた場合には、「7」「3」「1」の演出図柄や、「停電から復帰しました。遊技を開始してください。」との報知画面を表示するための初期設定がされる(SE31,SE33)。また、演出コマンドを受けた場合には、対応する画像演出を開始するための初期設定を行う(SE35)。
図19は、遊技機の電源投入時について、上記した主制御部21、演出制御部22、及び画像制御部23の動作を図示したものである。電源投入時(T0)には、主制御部21のリセット回路RSTが出力するリセット信号に基づいてCPUがリセットされて、図7の動作が開始される。
また、電源基板20から供給されるシステムリセット信号SYS(図3、図4)に基づいて、演出制御部22と画像制御部23のCPUが、各々、リセットされて、図9(a)と図17に示す動作が開始される。その結果、画像制御部23では、ステップSE1→SE2→SE3→SE6の経路を経てRAMクリア処理が実行された後、表示装置DISPには、「POWER ON」と表示される。
一方、主制御部21は、タイミングT1で、初期動作コマンドを送信し(図7のST8)、初期動作コマンドを受けた演出制御部22は、これを画像制御部に転送すると共に、演出可動体AMUを駆動する初期動作を開始する(図10のST88〜ST90)。また、初期動作コマンドを受けた画像制御部23では、表示装置DISPには、「PLEASE WAIT」と表示する。
その後、主制御部21では、タイミングT2で、RAMクリアコマンド(ST19)か、バックアップ復帰コマンド(ST15)を送信する。そして、制御コマンドを受信した演出制御部22は、これを画像制御部に転送すると共に、制御コマンドに応じた動作を開始する。例えば、RAMクリアコマンドを受けた場合には、30秒に初期設定されたクリア制御タイマに基づいて、30秒間、RAMクリア音を出力すると共に、電飾ランプを全点灯状態に維持する。なお、回転モータMTの初期動作が継続されている場合には、その動作に影響を与えない。
また、画像制御部23は、演出制御部22から転送された制御コマンドに基づいて動作を開始する。具体的には、前記した適宜な画面表示を開始する。
ところで、演出可動体AMUの動作にトラブル(モータエラー)が生じた場合には、図20に示す動作が実行される。例えば、図20(a)は、原点検出処理の動作中に初期動作コマンドを受けた場合を示している。このような場合には、モータ動作フラグFG=1からFG=2に書き換えられるので(図10のST90)、実行中の原点検出処理(SS5)を放棄して、初期動作処理(SS6)が開始される(タイミングT1)。
その後、演出制御部22が、RAMクリアコマンドを受けた場合には(タイミングT2)、演出制御部22は、初期動作処理(SS6)に並行して、RAMクリア報知音を30秒間継続して出力する。なお、このRAMクリア報知時間中、全ての電飾ランプが点灯状態となる。
ここで、初期動作処理(SS6)が正常に進行せず、リトライ処理(SS4)に移行し、タイミングT3でモータエラー状態となったと仮定する。すると、演出制御部22は、モータエラーの報知時間(例えば60秒)を確保して(ST76)、画像制御部23に報知開始コマンドを送信する(図9のST77)。そして、モータエラーの報知動作を開始するが、RAMクリア報知が優先されるので(ST72)、30秒間のRAMクリア報知が終わった後に、モータエラーの報知音が出力される。
一方、報知開始コマンドを受信した画像制御部23では、そのときの表示画面に重ねて「役物エラー」と文字表示する。したがって、報知ランプ、報知音、及び報知画面を使用したRAMクリア報知が、その後に生じたモータエラーによって消滅することはない。
次に、図20(b)は、原点検出処理(SS5)の動作中に、モータエラーが発生した場合を示している。このような場合には、異常フラグER=1の状態で、原点検出処理が終わる(図13のSS36)。そして、演出制御部22が初期動作コマンドを受けると(タイミングT1)、モータ動作フラグFG=2となってモータエラーの報知音の発生と共に、報知時間の管理が開始される(ST76)。また、画像制御部に対して、報知開始コマンドが送信される(ST77)。
その後、演出制御部22が、タイミングT2でRAMクリアコマンドを受けると、これを画像制御部23に転送すると共に、電飾ランプの点灯と共に、RAMクリア音の出力を開始する。RAMクリア音は、モータエラーの報知音に代えて出力されるが、本実施例では、モータエラーの報知時間がRAMクリア音の報知時間より十分長く設定されているので、モータエラーの報知音が出力されない事態は生じない。
なお、RAMクリアコマンドの転送を受けた画像制御部23では、「役物エラー」などの文字表示に重ねて適宜な画面を表示することは前述した通りである。そして、画像制御部23及び演出制御部22では、各々の異常報知タイマを更新しつつ、報知動作を継続し、報知時間満了時にモータエラーの報知動作を終了させる。
このように、本実施例では、異常報知時間が、個々の制御部22,23において管理されるので、上流側からの停止コマンドに基づいて、報知動作を終了させる場合のようなトラブルが生じない。例えば、モータエラーの報知動作中に、演出制御部22が異常リセットされてコールドスタートしても「役物エラー」などの文字表示が消滅せずに表示され続けることはあり得ない。
この点は、演出制御部が出力するRAMクリア音などについても同様である。例えば、電源投入後、主制御部21がRAMクリアコマンドを送信した直後に、交流電源が遮断されて直ぐ復旧したような場合でもトラブルが生じない。このような場合、演出制御部や画像制御部の直流電源は正常に維持されることもあるが、RAMクリア音や電飾ランプは、クリア報知タイマの満了時に自動的に消滅する。したがって、RAMクリア動作が維持されてモータエラーの報知音を出力できないトラブルも生じない。
なお、上記した交流電源の瞬停は、交流電源が不安定である場合だけでなく、遊技機の開発段階において、動作確認実験のために、素早く電源スイッチをOFF→ON操作した場合に生じる。
ところで、本実施例のシステムリセット信号SYSは、電源基板20において、直流電源によって生成されている。そのため、交流電源の瞬停が生じても、電源基板において、直流電源が維持されている限り、交流電源の復旧時にシステムリセット信号SYSが発生しない。したがって、演出制御部22や画像制御部23のCPUは、交流電源の瞬停では、電源リセットされないので、本実施例の種々の構成は特に有効である。
続いて、電源基板20の回路構成について説明する。図21は、電源基板20の電源回路を示す回路図である。この電源回路は、演出インタフェイス基板27に供給される直流電圧を生成する第二電源部SDと、主制御部21と払出制御部24に供給される直流電圧を生成する第一電源部FRと、電源投入と電源遮断とを監視する電源監視部MNTと、過大な交流電圧を受けるとグランドラインを遮断する電源遮断部CUTと、を有して構成されている。なお、払出制御部24に供給される他の直流電圧(DC32V)や、演出インタフェイス基板27に供給される他の直流電圧(DC32V,DC15V)については、図示を省略している。
<第二電源部SD>
第二電源部SDは、ダイオードD1〜D4による全波整流回路と、平滑コンデンサC1と、直流電圧VB(12V)を生成するDC−DCコンバータと、直流電圧Vcc(5V)を生成するDC−DCコンバータと、平滑コンデンサC2,C3とを有して構成されている。2つのDC−DCコンバータは、何れもチョッパ型であり、平滑コンデンサC1を共通的に受けて動作している。第二電源部SDで生成された直流電圧は、演出インタフェイス基板27に伝送された後、適宜に降圧されて、演出インタフェイス基板27と、演出制御基板22と、画像制御基板23とで使用される。
<第一電源部FR>
第一電源部FRは、ダイオードD1,D2,D5,D6による全波整流回路と、平滑コンデンサC4と、直流電圧VB(12V)を生成するDC−DCコンバータと、直流電圧Vcc(5V)を生成するDC−DCコンバータと、平滑コンデンサC5,C6と、ダイオードD7及びコンデンサCbとで構成された蓄電部BKとを有して構成されている。この2つのDC−DCコンバータも、チョッパ型であり、平滑コンデンサC4を共通的に受けて動作している。また、蓄電部BKで生成された直流電圧は、主制御部21と払出制御部24のワンチップマイコンの内蔵RAMのデータを保持するバックアップ電源BAKとなる。
第一電源部FRで生成された直流電圧VBと直流電圧Vccは、主制御部21と払出制御部24だけに供給されており、演出インタフェイス基板27に伝送される直流電圧とは配線上で区別されている。そのため、主制御部21や払出制御部24が、他のサブ制御部22,23と電源ラインを経由して接続されることがなく、高周波ノイズなどの伝送が阻止される。
なお、主制御部21や払出制御部24での総電流は、最大でも、電源電圧VBラインで600mAを超えることがなく、また、電源電圧Vccラインでも300mAを超えることがないので、各電源電圧VB,Vccの給電ラインの電圧降下は、全く問題にならない。
<電源遮断部CUT>
電源遮断部CUTは、交流電圧AC24Vから所定レベルの直流電圧を生成する整流部51と、交流電源ラインLN1,LN2の過電圧時にON動作する交流監視部52と、交流監視部52のON動作に対応してOFF動作するスイッチ回路53と、を有して構成されている。
整流部51は、交流電源ラインLN2から交流電圧を受けるダイオードD12と、電流制限抵抗R1と、コンデンサC8及びツェナーダイオードZD2の並列回路と、が直列に接続されて構成されている。そして、正常時には、コンデンサC8の両端電圧は、ツェナーダイオードZD2の降伏電圧に一定化されている。
スイッチ回路53は、大電流容量のMOSトランジスタQ2と、コンデンサC8に並列接続されたバイアス抵抗R5と、を有して構成されている。ここで、トランジスタQ2は、コンデンサC8の両端電圧が所定レベルである限り、ON状態であって、遊技機の全回路のグランドラインとフレームグランドFGとを接続状態にしている。
交流監視部52は、交流電源ラインLN1,LN2に接続された2つのダイオードD8,D9と、ダイオードD8,D9の接続点に接続されたツェナーダイオードZD1と、バイアス抵抗R2,R3及びコンデンサC7の並列回路と、バイアス抵抗R3の両端電圧が上昇するとON動作するトランジスタQ1と、トランジスタQ1の電流制限抵抗R4とを有して構成されている。
ツェナーダイオードZD1は、通常は、OFF状態であるが、交流電源ラインLN1,LN2に過大な交流電圧(例えばAC100V)が加わると、降伏状態となる。この降伏状態では、バイアス抵抗R3の両端電圧が上昇してトランジスタQ1がON動作することでコンデンサC8の両端電圧が降下する。
すると、それまでON状態であったトランジスタQ2がOFF遷移することで、回路グランドとフレームグランドFGとが非接続となって、全ての遊技機の全ての電源電圧が遮断状態となる。電源遮断部CUTの動作内容は、以上の通りであり、交流電源ラインLN1,LN2の両端電圧が限界値を超えると、全ての遊技機の全ての電源電圧を一気に遮断する機能を果たしている。
<電源監視部MNT>
次に、電源監視部MNTについて説明する。電源監視部MNTは、交流電源ラインLN1,LN2の電圧レベルを監視する給電監視部54と、電源電圧Vccを受けて比較基準電圧Voを出力する比較電圧部55と、給電監視部54と比較電圧部55の出力電圧を対比して電源異常を検出する異常検出部56と、システムリセット信号SYSを生成する電源リセット部57と、を有して構成されている。
[給電監視部54]
給電監視部54は、交流電源ラインLN1,LN2に接続された2つのダイオードD10,D11と、ダイオードD10,D11の接続点に接続された抵抗R6及びツェナーダイオードZD3の直列回路と、ツェナーダイオードZD3に並列接続されたダイオードD13及び平滑コンデンサC9の直列回路と、平滑コンデンサC9に並列接続された抵抗R7,R8の直列回路と、抵抗R8を短絡させるコンパレータA3と、を有して構成されている。
この実施例では、ツェナーダイオードZD3の降伏電圧が5.1V程度であり、ツェナーダイオードZD3は、電流制限抵抗R6を通して、交流電圧AC24Vを受けている。そのため、交流入力電源の給電状態であれば、平滑コンデンサC9の両端電圧は、4.5V程度の一定値となる。また、2つの抵抗R7,R8は、その抵抗値がR8>>R7に設定されているので、抵抗R8の両端電圧Vsは、正常レベルの交流電圧AC24Vに対応して約4.5Vとなる。但し、コンパレータA3の出力がLレベルであると、これに対応して、抵抗R8の両端電圧Vsは、ほぼ0Vとなる。なお、抵抗R7は、Lレベル出力時のコンパレータA3に対する電流制限抵抗として機能する。
コンパレータA3は、他のコンパレータA1〜A4と共に、QUADコンパレータ(NJM2901)で構成されている。このQUADコンパレータには、4つのコンパレータA1〜A4が内蔵されているが、何れのコンパレータA1〜A4も、オープンコレクタタイプとなっている(図23(i)参照)。
そして、コンパレータA3のマイナス端子には、比較電圧部55の出力電圧Voが供給され、プラス端子には、定常状態では2.8V程度の比較電圧V1が供給されている。この比較電圧V1は、第一電源部FRが生成した二種類の電源電圧Vcc,VBを抵抗で分圧して生成されている。
後述するように、電源投入時には、比較電圧部55の出力電圧Voは、レベル上昇中の電源電圧Vccに対応したレベルとなる(Vo=Vcc−Vf−Δ)。なお、VfとΔは、ダイオードD14,D15と、抵抗R9における電圧降下である。
一方、比較電圧V1は、電源電圧Vcc,VBを分圧して生成されるので、電源投入直後は、比較電圧部55の出力電圧Voより低い。そのため、電源投入直後の過渡状態では、コンパレータA3の出力がLレベルとなって抵抗R8を短絡させ、その結果、給電監視部54の出力電圧Vsがほぼ0Vとなる。
一方、電源電圧Vcc,VBが所定レベルに達した定常状態では、比較電圧V1が、2.8V程度となる一方、比較電圧部55の出力電圧Voは2.5V程度に一定化される。つまり、コンパレータA3は、[プラス入力への入力電圧]>[マイナス端子への入力電圧]の大小関係となるが、コンパレータA3の出力部がオープンコレクタであり(図23(i)参照)、図21に示す通り、その出力端子がプルアップされていないので、コンパレータA3の出力部は開放状態となって他の回路に影響を与えない。
以上説明した給電監視部54の動作を整理すると以下の通りである。
(1)交流電圧AC24Vが投入された電源投入直後は、抵抗R8がコンパレータA3の出力部によって短絡されるので、抵抗R8の両端電圧Vsがほぼ0Vとなる。
(2)その後、電源電圧Vccが正常レベル近くまで増加すると、コンパレータA3の出力部が開放状態となるので、抵抗R8の両端電圧Vsは、ツェナーダイオードZD3の両端電圧に対応してほぼ4.5Vとなる。
(3)交流電圧AC24Vが遮断状態となると、抵抗R8の両端電圧Vsは、素早く0Vまで降下する。しかし、交流電圧AC24Vが遮断されても、しばらくは、電源電圧Vcc,VBが所定レベルを維持するので、コンパレータA3の出力部は、そのまま開放状態を維持する。
[比較電圧部55]
比較電圧部55は、第一電源部FRと第二電源部SDとで別々に生成された2つの電源電圧Vcc,Vccを各アノード端子に受けるダイオードD14,D15と、ダイオードD14,D15の各カソード端子に接続される電流制限抵抗R9と、電圧生成部GNと、が直列に接続されて構成されている。この実施例では、電圧生成部GNとして、シャントレギュレータ(HA17431:RENESAS)を使用している。
このシャントレギュレータは、アノード端子Aとカソード端子Kと比較端子REFとを有するが、アノード端子Aとカソード端子Kとを接続した図示の状態では、ツェナーダイオードと同等に機能して、降伏動作時には、アノード・カソード端子間に一定の基準電圧Vo(2.5V)を出力する(図23(h)参照)。一方、非降伏動作時には、内部回路がOFF動作して、アノード・カソード端子間が開放状態となる。
したがって、電源投入時、電源電圧Vccが所定レベルに達するまでは、比較電圧部55(電圧生成部GN)の出力電圧Voは、レベル上昇中の電源電圧Vccに対応して、Vo=Vcc−Vf−Δとなる。一方、電源電圧Vccが所定レベルに達すると、比較電圧部55の出力電圧Voは、一定の比較基準電圧(2.5V)となる。
[異常検出部56]
異常検出部56は、主制御部21への電源異常信号ABN1を生成するコンパレータA1と、払出制御部24への電源異常信号ABN2を生成するコンパレータA2と、各コンパレータA1,A2のプルアップ抵抗R10,R11と、各コンパレータA1,A2の入力端子間に接続されたコンデンサCsとを有して構成されている。各コンパレータA1,A2のマイナス端子には、比較電圧部55の出力電圧Voが供給され、プラス端子には、抵抗R8の両端電圧Vsが供給されている。なお、コンパレータA1,A2は、先に説明したQUADコンパレータ(NJM2901)に内蔵されている。
図示を省略しているが、コンパレータA1,A2から出力される電源異常信号ABN1、ABN2は、主制御部21と払出制御部24の入力ポートに供給されている。そして、各入力ポートの入力端子とグランド間には、適宜なコンデンサを接続されており、各入力ポートが、適宜な抵抗を経由して電源異常信号を受けることで耐ノイズ性を確保している。また、適宜なソフトウェア処理(図8のST30〜ST31)によって、スパイクノイズの影響を排除している。
給電監視部54が前記した(1)〜(3)の通りに動作するので、これに対応して異常検出部56は、以下の通りに動作する。
(1)交流電圧AC24Vが投入された電源投入直後は、抵抗R8の両端電圧Vsがほぼ0Vであり、一方、比較電圧部55の出力電圧Voは、レベル上昇中の電源電圧Vccに対応して、Vcc−Vf−Δとなる。そのため、コンパレータA1,A2が出力する電源異常信号ABN1,ABN2は、レベル変動することなく、Lレベルを安定的に維持する。図23(c)のタイミングT0〜T1は、この電源投入時の安定したLレベル状態を示している。
(2)その後、レベル上昇中の電源電圧Vccが所定レベルを超えた後は、比較電圧部55の出力電圧Voは、2.5Vを維持する。また、電源電圧Vccが正常レベル近くまで増加すると、コンパレータA3の出力部が開放状態となるので、抵抗R8の両端電圧Vsは、ツェナーダイオードZD3の両端電圧に対応してほぼ4.5Vとなる。
そのため、コンパレータA1,A2が出力する電源異常信号ABN1,ABN2がHレベルに遷移して、その後は、正常状態を示すHレベルを定常的に維持する。図23(c)のタイミングT1以降は、正常レベルの電源異常信号ABN1,ABN2を示している。
(3)その後、何らかの理由で交流電圧AC24Vが遮断状態となると、抵抗R8の両端電圧Vsは、素早く0Vまで降下する。しかし、電源電圧Vcc,VBは、しばらく所定レベルを維持するので、コンパレータA3や比較電圧部55は、それまでの動作を維持する。
したがって、図23(a)のタイミングT7において、交流電圧AC24Vが遮断状態になると、コンパレータA1,A2が出力する電源異常信号ABN1,ABN2は、直ちに、HレベルからLレベルに遷移して異常事態の発生を示す。なお、主制御部21と払出制御部24では、この電源異常信号ABN1,ABN2を定時的にチェックしており、電源異常信号ABN1,ABN2がLレベルに遷移したことを確認すると、直ちにバックアップ処理を開始するようになっている。
[電源リセット部57]
次に、コンパレータA4で構成された電源リセット部57について説明する。図示の通り、コンパレータA4の出力端子には、プルアップ抵抗R12が接続され、出力端子とプラス端子との間には、抵抗RfとコンデンサCfの直列回路が接続されている。また、コンパレータA4のマイナス端子には、比較電圧部55の出力電圧Voが供給され、プラス端子には、定常状態では2.95V程度の比較電圧V2が供給されている。この比較電圧V2は、第二電源部SDが生成した二種類の電源電圧Vcc,VBを抵抗で分圧して生成されている。
電源リセット部57は、上記の通りに構成されているので、以下の通りに動作する。
(1)交流電圧AC24Vが投入された電源投入直後は、比較電圧部55の出力電圧Voは、レベル上昇中の電源電圧Vccに対応して、Vcc−Vf−Δとなる。一方、比較電圧V2は、第二電源部SDの電源電圧Vcc,VBを分圧して生成されるので、レベル上昇中の出力電圧Voより低い。そのため、このような過渡状態では、コンパレータA4から出力されるシステムリセット信号SYSがLレベルとなる(図23(a)参照)。
(2)その後、レベル上昇中の電源電圧Vccが所定レベルに達した後は、比較電圧部55の出力電圧Voは、2.5Vを維持する。また、電源電圧Vcc,VBが正常レベル近くまで増加すると、比較電圧V2が定常値2.95Vに近づく。そのため、コンパレータA4から出力されるシステムリセット信号SYSは、適宜なタイミングで、LレベルからHレベルに遷移する。
このようにして生成されたシステムリセット信号SYSは、演出インタフェイス基板27を経由して、演出制御部22と画像制御部23に伝送されるが、各制御部22,制御部23に設けられた遅延回路を経由してCPUやその他のICを電源リセットしている。なお、抵抗RfとコンデンサCfの直列回路も、遷移動作を遅延させる機能を発揮する。
図22(a)は、主制御部21と払出制御部24に配置されたリセット回路RSTを示す回路図である。この実施例では、電源電圧監視用IC1(MB3771富士通マイクロエレクトロニクス)と、ウォッチドッグタイマ機能付き電源電圧監視用IC2(MB3773富士通マイクロエレクトロニクス)とを活用してリセット回路RSTを構成している。
図22(b)の等価回路を示す通り、電源電圧監視用IC1は、2つのコンパレータCompA,CompBを内蔵して構成されている。そして、2つのコンパレータCompA,CompBのプラス端子は、内蔵回路によって1.24V程度に設定される。
また、実施例の回路構成では、Vsa端子がコンデンサC11を経由してグランドに接続されているので、コンパレータCompAのマイナス端子の電位は、内蔵された抵抗で分圧されて1.4V程度となる。一方、Vsb端子には、外付けの分圧抵抗R20、R21によって電源電圧VBが分圧して供給されているので、Vsb端子の電位は、VB*R21/(R20+R21)である。なお、抵抗R21には、電圧安定用のコンデンサC12が並列接続されている。また、Ct端子には遅延コンデンサC10が接続されている。
電源電圧監視用IC1は、図22(b)の内部回路を有しているので、電源投入後、電源電圧Vccが所定レベルまで上昇すると(図23(d)のタイミングT2参照)、内蔵された定電流源によって、遅延コンデンサC10の充電が開始される。そして、遅延コンデンサC10が所定レベルまで充電されるまでの間は(図23(e)のT3参照)、リセット端子から出力される基礎リセット信号RS1がLレベルに維持される。なお、このリセットホールド時間Tpo[S]は、外付けコンデンサC10の容量に対応してTpo[S]=105*C10[F]となっている。
このようにして、タイミングT3でHレベルとなった基礎リセット信号RS1は、電源電圧Vcc,VBが降下しない限り、そのレベルを維持する。しかし、Vsb端子の電位は、VB*R21/(R20+R21)であって、このVsb端子において電源電圧VBのレベルを監視している。同様に、Vsa端子の電位は、内蔵抵抗40kΩ、100kΩに対応して、Vcc*40/(40+1001)であって、このVsa端子において電源電圧Vccのレベルを監視している。
そのため、交流入力AC24Vの遮断や、電源部FR,SDの故障などによって、電源電圧Vcc,VBの双方又は一方の電圧レベルが降下すると(図23(d)のタイミングT8参照)、内蔵コンパレータCompA,CompBのいずれかの出力端子がHレベルに遷移する。すると、内蔵されたフリップフロップがセットされて、リセット端子から出力される基礎リセット信号RS1が、直ちにLレベルに降下する(図23(e)のタイミングT8参照)。
ところで、本実施例では、Vsa端子とグランド間には、コンデンサC11が接続され、Vsb端子とグランド間には、コンデンサC12が接続されている。図22(b)の等価回路から明らかな通り、これらのコンデンサC11,C12は、内部回路の動作を遅延させる機能を果しており、電源電圧Vcc,VBが短時間だけ、例えば4V以下に低下して回復する瞬停状態や瞬断状態では、基礎リセット信号RS1が出力されることはない。
本実施例では、Cll=C12=1000pF程度に設定されており、これに対応して、直流電圧(5V,12V)のレベル降下が、40μS以内に回復する瞬断状態や瞬停状態では、電源電圧監視用IC1が反応しないよう構成されている。したがって、電源基板20から供給される電源電圧Vcc,VBの給電ラインの何れかに、パルス幅40μS以内のスパイクノイズが重畳しても、基礎リセット信号RS1が異常に出力されることはない。
上記の通りに動作する電源電圧監視用IC1に対応して、基礎リセット信号RS1は、2つのNOTゲートG1,G2を経由して、I/Oリセット信号として主制御部21や払出制御部24に搭載されたデータ入出力用ICのリセット端子に供給される。好ましくは、ラッチ機能を有するデータ入出力用ICに基礎リセット信号(I/Oリセット信号)RS1が供給される。そのため、電源投入時にランダムにラッチされたデータ入出力用IC(例えば、SN74273、SN74LV8155など)のデータが、基礎リセット信号RS1によって確実にクリアされる。
またNOTゲートG1を経由した基礎リセット信号RS1バーは、ウォッチドッグタイマ機能付き電源電圧監視用IC2に供給されている。図示の通り、電源電圧監視用IC2は、CPUリセット信号RS2を出力するが、電源電圧監視用IC2のCt端子には、遅延コンデンサC15が接続され、CK端子には、ワンチップマイコンからクリアパルスが供給されるよう構成されている。
また、電源電圧監視用IC2のVs端子は、コンデンサC14を経由してグランドに接続され、コンデンサC14には、トランジスタQ3のコレクタ端子とエミッタ端子とが並列接続されている。そして、トランジスタQ3のベース端子には、バイアス抵抗R23,R24によって分圧された基礎リセット信号RS1バーが供給されている。
コンテンサC14は、内部回路の動作を遅延させる遅延素子である。電源電圧監視用IC1の場合と同様、コンデンサC14の静電容量を適宜に設定することで、電源電圧Vccの瞬断状態や瞬停状態では、電源電圧監視用IC2が反応しないよう構成することができる。
電源電圧監視用IC2は、図22(c)の内部回路を有しており、Vs端子が開放状態であれば、Vs端子の電位は、内蔵抵抗によって1.4V程度に設定されている。また、このVs端子は、内蔵されたコンパレータCompSのマイナス端子に接続され、コンパレータCompSのプラス端子には、内蔵回路によって1.24V程度の電圧が供給されている。
以下、電源電圧監視用IC2の動作を説明すると、電源投入後、タイミングT3(図23(f)参照)に至るまでの期間は、基礎リセット信号RS1バーがHレベルであるので、トランジスタQ3がON状態である。そのため、電源電圧監視用IC2のVs端子の電位が0Vであって、コンパレータCompSの出力がHレベルとなる。
ところが、タイミングT3において、基礎リセット信号RS1バーがLレベルに遷移してトランジスタQ3がOFF状態となると、コンパレータCompSの出力がLレベルに遷移することで、内蔵されたフリップフロップがリセット状態となり、遅延コンデンサC15への充電動作が開始される。そして、遅延コンデンサC15が所定レベルまで充電された後(図23(g)のタイミングT4参照)、CPUリセット信号RS2がLレベルからHレベルに遷移する。
CPUリセット信号RS2がLレベルの間は、ワンチップマイコンのリセット端子がLレベルに維持されるので、CPUコアその他は確実にリセット状態となる。なお、リセットホールド時間Tpr[mS]は、外付けコンデンサC15の容量に対応して、Tpr[mS]=1000*C15[μF]となっている。
この電源電圧監視用IC2では、CPUリセット信号RS2がHレベルに遷移して、ワンチップマイコンが動作開始するタイミングに合わせ、電源電圧監視用IC2に内蔵されたウォッチドッグタイマ回路が動作を開始するよう構成されている。
そのため、その後は、ウォッチドッグタイマ機能が発揮される。具体的に確認すると、ワンチップマイコンの動作開始に合わせて、電源電圧監視用IC2では、遅延コンデンサC15の放電動作が開始され、ワンチップマイコンがクリアパルスを供給する毎に、遅延コンデンサC15の放電動作が充電動作に切り替わる。
しかし、プログラム暴走などのトラブルが発生すると(図23(g)のタイミングT5参照)、遅延コンデンサC15の放電動作が継続されることになり、Ct端子の電位が0.4V程度まで降下すると、CPUリセット信号RS2が強制的にLレベルに遷移される。その後、CPUリセット信号RS2は、Lレベルに維持されるが、所定の維持時間Twrの経過後、CPUリセット信号RS2がHレベルに復帰すると、CPUは、電源投入状態と同様の初期処理プログラムの実行を開始する。なお、継続時間Twr[mS]は、遅延コンデンサC15の容量に対応して、Twr[mS]=20*C15[μF]となっている。
次に、電源遮断時における電源電圧監視用IC2の動作を説明する。電源電圧Vccが所定レベル(4.2V)まで降下すると、CPUリセット信号RS2がLレベルに遷移する(図23(g)のタイミングT8)。そして、その後は、ウォッチドッグタイマ回路の動作が禁止される。
ところで、本実施例では、ワンチップマイコンに内蔵されたウォッチドッグタイマ回路を活用せず、あえて、外付けの専用IC2を使用している。それは、CPUが暴走するような異常時には、ワンチップマイコンの内蔵回路にも、何らかの異常が発生している可能性を否定できないため、万全の安全対策を採ったことによる。
また、本実施例では、電源電圧監視用IC1と電源電圧監視用IC2とを重複して配置し、電源電圧監視用IC2から出力される電源リセット信号(CPUリセット信号)RS2を、ワンチップマイコンだけに供給し、電源電圧監視用IC1から出力される電源リセット信号(基礎リセット信号)RS1を、ワンチップマイコン以外のデータ入出力用ICだけに供給している。また、電源電圧監視用IC2のウォッチドッグタイマ機能によって生成されたCPUリセット信号RS2は、ワンチップマイコンだけに供給されているが、このような構成を採る理由は以下の通りである。
先ず、本実施例の弾球遊技機は、電源バックアップ機能を有しているので、電源投入時に、電源遮断前(前日や停電前)の遊技を再開することもある。そのため、電源投入時には、特に、ラッチ機能を有するデータ入出力用ICを確実にリセット状態にする必要がある。但し、リセットホールド時間は、短くて足りるので、電源電圧監視用IC1を利用して電源リセット信号(基礎リセット信号)RS1を生成している。
一方、ワンチップマイコンについては、電源電圧Vcc,VBが安定した後、十分なリセットホールド時間が必要である。また、前記した理由から、ウォッチドッグタイマ回路を外付けするのが好ましく、このウォッチドッグタイマによるCPUリセット信号RS2についても、所望のリセットホールド時間が必要となる。そこで、本実施例では、電源電圧監視用IC1と電源電圧監視用IC2とを直列的に接続して、最適なリセットホールド時間(=Tpo+Tpr)を有する電源リセット信号(CPUリセット信号)RS2を生成すると共に、電源電圧監視用IC2を利用して、異常発生時のCPUリセット信号RS2を生成している。リセットホールド時間は、CPUリセット後の初期処理時間なども考慮して、主制御部20と払出制御部24とで各々最適値に設定される。したがって、例えば、払出制御部24の初期処理動作中に、制御コマンドが送信されることはない。もっとも、初期処理時間において、主制御部20の方が、払出制御部より明らかに長い場合には、リセットホールド時間を同一に設定したので足りる。
なお、プログラム暴走などによる異常発生時には、基礎リセット信号RS1が発生されることはないので、データ入出力用ICはリセットされない。しかし、電源投入時とは異なり、異常リセット時に、データ入出力用ICにランダムなデータがラッチされることはなく、また、異常リセット時には、RAMクリア処理が実行され、遊技動作が再開されることはないので、データ入出力用ICをリセットしないことに何の問題も生じない。
一方、電源電庄(VB,Vcc)の瞬断状態が短時間とはいうものの、コンデンサCll,C12で吸収できない程度に継続した場合には、電源電圧監視用1Clから、基礎リセット信号RSlが出力される。そして、この基礎リセット信号RS1は、トランジスタQ3を短時間だけON動作させる。しかし、トランジスタQ3のON抵抗を適宜な値に設定すると共に、トランジスタQ3に並列接続されるコンデンサC14を適度な静電容量に設定することで、CPUリセット信号RS2の出力を回避することもできる。
このような場合、データ入出力用ICだけがリセットされることになるが、このリセット動作は、特に、図柄始動口などのスイッチ信号を生成するために使用される電源電圧VB(12V)が、瞬停状態に陥った場合に、データ入出力用ICだけがクリアされる点で効果的である。
以上、本発明の実施例について具体的に説明したが、具体的な記載内容は特に本発明を限定するものではない。
すなわち、上記の実施例では、演出制御部22や画像制御部23は、電断コマンドの受信時に、RAMクリア処理(ST86,SE23)を実行したが、必ずしも、このような構成に限定されない。例えば、RAMクリア処理の実行に代えて、例えば、(1) 制御プログラムの先頭アドレスにジャンプするとか(図9の(1)参照)、或いは、(2) ステップST51(図9の(2)参照)や、ステップSE6(図17)の処理にジャンプさせても良い。
もっとも、後者の場合には、スタック領域への戻り番地の記憶データを残らないよう、ジャンプ命令に先行して、スタックポインタSPの値を変更しておく必要がある。なお、前者の場合には、ステップST46や、ステップSE1の初期設定処理においてスタックポインタSPが初期設定されるので、スタックポインタの値の変更処理は不要である。
また、図10のステップST84では原点復帰処理を実行したが、これに代えて、定時処理(ST54〜ST63)に戻った段階で原点検出処理(SS5)を実行するべく、ステップST86の処理の後に、モータ動作フラグFGをFG=1に設定してサブルーチン処理を終えても良い。
また、実施例では、演出制御部22において演出可動体AMUを回転駆動したが、この構成に代えて、演出インタフェイス基板や主制御基板において回転駆動してもよいのは勿論である。なお、可動演出を実行する遊技機は、弾球遊技機に限定されないのは勿論であり、スロットマシン(回胴式遊技機)などにも本発明は好適に適用可能である。