以下、実施例に基づいて本発明を詳細に説明する。図1は、本実施例のパチンコ機GMを示す斜視図である。このパチンコ機GMは、島構造体に着脱可能に装着される矩形枠状の木製外枠1と、外枠1に固着されたヒンジ2を介して開閉可能に枢着される前枠3とで構成されている。この前枠3には、遊技盤5が、裏側からではなく、表側から着脱自在に装着され、その前側には、ガラス扉6と前面板7とが夫々開閉自在に枢着されている。
ガラス扉6の外周には、LEDランプなどによる電飾ランプが、略C字状に配置されている。一方、ガラス扉6の上部左右位置と下側には、全3個のスピーカが配置されている。上部に配置された2個のスピーカは、各々、左右チャネルR,Lの音声を出力し、下側のスピーカは重低音を出力するよう構成されている。
前面板7には、発射用の遊技球を貯留する上皿8が装着され、前枠3の下部には、上皿8から溢れ出し又は抜き取った遊技球を貯留する下皿9と、発射ハンドル10とが設けられている。発射ハンドル10は発射モータと連動しており、発射ハンドル10の回動角度に応じて動作する打撃槌によって遊技球が発射される。
上皿8の外周面には、チャンスボタン11が設けられている。このチャンスボタン11は、遊技者の左手で操作できる位置に設けられており、遊技者は、発射ハンドル10から右手を離すことなくチャンスボタン11を操作できる。このチャンスボタン11は、通常時には機能していないが、ゲーム状態がボタンチャンス状態となると内蔵ランプが点灯されて操作可能となる。なお、ボタンチャンス状態は、必要に応じて設けられるゲーム状態である。
上皿8の右部には、カード式球貸し機に対する球貸し操作用の操作パネル12が設けられ、カード残額を3桁の数字で表示する度数表示部と、所定金額分の遊技球の球貸しを指示する球貸しスイッチと、ゲーム終了時にカードの返却を指令する返却スイッチとが設けられている。
図2に示すように、遊技盤5の表面には、金属製の外レールと内レールとからなるガイドレール13が環状に設けられ、その略中央には、中央開口HOが設けられている。そして、中央開口HOの下方には、不図示の可動演出体が隠蔽状態で収納されており、可動予告演出時には、その可動演出体が上昇して露出状態となることで、所定の信頼度の予告演出を実現している。ここで、予告演出とは、遊技者に有利な大当り状態が招来することを不確定に報知する演出であり、予告演出の信頼度とは、大当り状態が招来する確率を意味している。
中央開口HOには、大型の液晶カラーディスプレイ(LCD)で構成された表示装置DSが配置されている。表示装置DSは、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に表示する装置である。この表示装置DSは、中央部に特別図柄表示部Da〜Dcと右上部に普通図柄表示部19とを有している。そして、特別図柄表示部Da〜Dcでは、大当り状態の招来を期待させるリーチ演出が実行されることがあり、特別図柄表示部Da〜Dc及びその周りでは、適宜な予告演出などが実行される。
遊技球が落下移動する遊技領域には、第1図柄始動口15a、第2図柄始動口15b、第1大入賞口16a、第2大入賞口16b、普通入賞口17、及び、ゲート18が配設されている。これらの入賞口15〜18は、それぞれ内部に検出スイッチを有しており、遊技球の通過を検出できるようになっている。
第1図柄始動口15aの上部には、導入口INから進入した遊技球がシーソー状又はルーレット状に移動した後に、第1図柄始動口15に入賞可能に構成された演出ステージ14が配置されている。そして、第1図柄始動口15に遊技球が入賞すると、特別図柄表示部Da〜Dcの変動動作が開始されるよう構成されている。
第2図柄始動口15bは、左右一対の開閉爪を備えた電動式チューリップで開閉されるように構成され、普通図柄表示部19の変動後の停止図柄が当り図柄を表示した場合には、所定時間だけ、若しくは、所定個数の遊技球を検出するまで、開閉爪が開放されるようになっている。
なお、普通図柄表示部19は、普通図柄を表示するものであり、ゲート18を通過した遊技球が検出されると、普通図柄が所定時間だけ変動し、遊技球のゲート18の通過時点において抽出された抽選用乱数値により決定される停止図柄を表示して停止する。
第1大入賞口16aは、前後方向に進退するスライド盤を有して構成され、第2大入賞口16bは、下端が軸支されて前方に開放する開閉板を有して構成されている。第1大入賞口16aや第2大入賞口16bの動作は、特に限定されないが、この実施例では、第1大入賞口16aは、第1図柄始動口15aに対応し、第2大入賞口16bは、第1図柄始動口15bに対応するよう構成されている。
すなわち、第1図柄始動口15aに遊技球が入賞すると、特別図柄表示部Da〜Dcの変動動作が開始され、その後、所定の大当り図柄が特別図柄表示部Da〜Dcに整列すると、第1大当りたる特別遊技が開始され、第1大入賞口16aのスライド盤が、前方に開放されて遊技球の入賞が容易化される。
一方、第2図柄始動口15bへの遊技球の入賞によって開始された変動動作の結果、所定の大当り図柄が特別図柄表示部Da〜Dcに整列すると、第2大当りたる特別遊技が開始され、第2大入賞口16bの開閉板が開放されて遊技球の入賞が容易化される。特別遊技(大当り状態)の遊技価値は、整列する大当り図柄などに対応して種々相違するが、何れの遊技価値が付与されるかは、遊技球の入賞タイミングに応じた抽選結果に基づいて予め決定される。
典型的な大当り状態では、大入賞口16の開閉板が開放された後、所定時間が経過し、又は所定数(例えば10個)の遊技球が入賞すると開閉板が閉じる。このような動作は、最大で例えば15回まで継続され、遊技者に有利な状態に制御される。なお、特別図柄表示部Da〜Dcの変動後の停止図柄が特別図柄のうちの特定図柄であった場合には、特別遊技の終了後のゲームが高確率状態(確変状態)となるという特典が付与される。
図3は、上記した各動作を実現するパチンコ機GMの全体回路構成を示すブロック図であり、図4はその一部を詳細に図示したものである。図3に示す通り、このパチンコ機GMは、AC24Vを受けて各種の直流電圧や、電源異常信号ABN1、ABN2やシステムリセット信号(電源リセット信号)SYSなどを出力する電源基板20と、遊技制御動作を中心統括的に担う主制御基板21と、主制御基板21から受けた制御コマンドCMDに基づいてランプ演出及び音声演出を実行する演出制御基板22と、演出制御基板22から受けた制御コマンドCMD’に基づいて表示装置DSを駆動する画像制御基板23と、主制御基板21から受けた制御コマンドCMD”に基づいて払出モータMを制御して遊技球を払い出す払出制御基板24と、遊技者の操作に応答して遊技球を発射させる発射制御基板25と、を中心に構成されている。
但し、この実施例では、主制御基板21が出力する制御コマンドCMDは、コマンド中継基板26と演出インタフェイス基板27を経由して、演出制御基板22に伝送される。また、演出制御基板22が出力する制御コマンドCMD’は、演出インタフェイス基板27と画像インタフェイス基板28を経由して、画像制御基板23に伝送され、主制御基板21が出力する制御コマンドCMD”は、主基板中継基板32を経由して、払出制御基板24に伝送される。制御コマンドCMD,CMD’,CMD”は、何れも16ビット長であるが、主制御基板21や払出制御基板24が関係する制御コマンドは、8ビット長毎に2回に分けてパラレル送信されている。一方、演出制御基板22から画像制御基板23に伝送される制御コマンドCMD’は、16ビット長をまとめてパラレル伝送されている。そのため、可動予告演出を含む予告演出を、多様化して多数の制御コマンドを連続的に送受信するような場合でも、迅速にその処理を終えることができ、他の制御動作に支障を与えない。
ところで、本実施例では、演出インタフェイス基板27と演出制御基板22とは、配線ケーブルを経由することなく、雄型コネクタと雌型コネクタとを直結されて二枚の回路基板が積層されている。同様に、画像インタフェイス基板28と画像制御基板23についても、配線ケーブルを経由することなく、雄型コネクタと雌型コネクタとを直結されて二枚の回路基板が積層されている。そのため、各電子回路の回路構成を複雑高度化しても基板全体の収納空間を最小化できると共に、接続ラインを最短化することで耐ノイズ性を高めることができる。
これら主制御基板21、演出制御基板22、画像制御基板23、及び払出制御基板24には、ワンチップマイコンを備えるコンピュータ回路がそれぞれ搭載されている。そこで、これらの制御基板21〜24とインタフェイス基板27〜28に搭載された回路、及びその回路によって実現される動作を機能的に総称して、本明細書では、主制御部21、演出制御部22’、画像制御部23’、及び払出制御部24と言うことがある。すなわち、この実施例では、演出制御基板22と演出インタフェイス基板27とで演出制御部22’を構成し、画像制御基板23と画像インタフェイス基板28とで画像制御部23’を構成している。なお、演出制御部22’、画像制御部23’、及び払出制御部24の全部又は一部がサブ制御部である。
また、このパチンコ機GMは、図3の破線で囲む枠側部材GM1と、遊技盤5の背面に固定された盤側部材GM2とに大別されている。枠側部材GM1には、ガラス扉6や前面板7が枢着された前枠3と、その外側の木製外枠1とが含まれており、機種の変更に拘わらず、長期間にわたって遊技ホールに固定的に設置される。一方、盤側部材GM2は、機種変更に対応して交換され、新たな盤側部材GM2が、元の盤側部材の代わりに枠側部材GM1に取り付けられる。なお、枠側部材1を除く全てが、盤側部材GM2である。
図3の破線枠に示す通り、枠側部材GM1には、電源基板20と、払出制御基板24と、発射制御基板25と、枠中継基板35とが含まれており、これらの回路基板が、前枠3の適所に各々固定されている。一方、遊技盤5の背面には、主制御基板21、演出制御基板22、画像制御基板23が、表示装置DSやその他の回路基板と共に固定されている。そして、枠側部材GM1と盤側部材GM2とは、一箇所に集中配置された接続コネクタC1〜C4によって電気的に接続されている。
電源基板20は、接続コネクタC2を通して、主基板中継基板32に接続され、接続コネクタC3を通して、電源中継基板33に接続されている。電源基板20には、交流電源の投入と遮断とを監視する電源監視部MNTが設けられている。電源監視部MNTは、交流電源が投入されたことを検知すると、所定時間だけシステムリセット信号SYSをLレベルに維持した後に、これをHレベルに遷移させる。
また、電源監視部MNTは、交流電源の遮断を検知すると、電源異常信号ABN1,ABN2を、直ちにLレベルに遷移させる。電源異常信号ABN1,ABN2は、電源投入後に速やかにHレベルとなる。
ところで、本実施例のシステムリセット信号は、交流電源に基づく直流電源によって生成されている。そのため、交流電源の投入(通常は電源スイッチのON)を検知してHレベルに増加した後は、直流電源電圧が異常レベルまで低下しない限り、Hレベルを維持する。したがって、直流電源電圧が維持された状態で、交流電源が瞬停状態となっても、システムリセット信号SYSがCPUをリセットすることはない。なお、電源異常信号ABN1,ABN2は、交流電源の瞬停状態でも出力される。
主基板中継基板32は、電源基板20から出力される電源異常信号ABN1、バックアップ電源BAK、及びDC5V,DC12V,DC32Vを、そのまま主制御部21に出力している。一方、電源中継基板33は、電源基板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は、主基板中継基板32を経由して、払出制御部24に制御コマンドCMD”を送信する一方、払出制御部24からは、遊技球の払出動作を示す賞球計数信号や、払出動作の異常に係わるステイタス信号CONや、動作開始信号BGNを受信している。ステイタス信号CONには、例えば、補給切れ信号、払出不足エラー信号、下皿満杯信号が含まれる。動作開始信号BGNは、電源投入後、払出制御部24の初期動作が完了したことを主制御部21に通知する信号である。
また、主制御部21は、遊技盤中継基板31を経由して、遊技盤5の各遊技部品に接続されている。そして、遊技盤上の各入賞口16〜18に内蔵された検出スイッチのスイッチ信号を受ける一方、電動式チューリップなどのソレノイド類を駆動している。ソレノイド類や検出スイッチは、主制御部21から配電された電源電圧VB(12V)で動作するよう構成されている。また、図柄始動口15への入賞状態などを示す各スイッチ信号は、電源電圧VB(12V)と電源電圧Vcc(5V)とで動作するインタフェイスICで、TTLレベル又はCMOSレベルのスイッチ信号に変換された上で、主制御部21に伝送される。
先に説明した通り、演出制御基板22と演出インタフェイス基板27とはコネクタ連結によって一体化されており、演出制御部22’は、電源中継基板33を経由して、電源基板20から各レベルの直流電圧(5V,12V,32V)と、システムリセット信号SYSを受けている(図3及び図4参照)。
また、演出制御部22’は、コマンド中継基板26を経由して、主制御部21から制御コマンドCMDとストローブ信号STBとを受けている(図3及び図4参照)。但し、製品の開発段階などで実行される動作試験においては、検査装置から演出制御部22’に対して各種のテスト用の制御コマンドがストローブ信号と共に供給される。
演出制御部22’は、ランプ駆動基板29にランプ駆動信号を出力することで多数のLEDランプや電飾ランプで構成されたランプ群を駆動している。また、モータ/ランプ駆動基板30に、ランプ駆動信号及びモータ駆動信号を出力することで、ランプ群を駆動すると共に、複数のステッピングモータで構成された演出モータ群M1〜Mnを駆動している。なお、ランプ駆動信号とモータ駆動信号は、何れもシリアル信号であり、演出内容を豊富化するべくランプ個数や演出モータ個数を如何に増やしても、配線ケーブルが増加することがなく、機器構成が簡素化される。
ランプ群は、ほぼ定常的にランプ演出を実現する一方、演出モータ群は、突然動作を開始して、可動演出体による可動予告演出を実現している。
また、演出制御部22’は、画像制御部23’に対して、制御コマンドCMD’及びストローブ信号STB’と、電源基板20から受けたシステムリセット信号SYSと、2種類の直流電圧(12V,5V)とを出力している(図3及び図4参照)。
そして、画像制御部23’では、制御コマンドCMD’に基づいて表示装置DSを駆動して各種の画像演出を実行している。図4に示す通り、表示装置DSは、LEDバックライトによって発光しており、画像インタフェイス基板28から5対のLVDS(低電圧差動伝送Low voltage differential signaling)信号と、バックライト電源電圧(12V)とを受けて駆動されている。表示装置DSのバックライト光は、PWM制御による輝度が制御可能に構成されている。
続いて、図4に基づいて、上記した演出制御部22’と画像制御部23’の構成を更に詳細に説明する。図4に示す通り、演出インタフェイス基板27は、電源中継基板33を経由して、電源基板20から3種類の直流電圧(5V,12V,32V)を受けている。ここで、直流電圧5Vは、デジタル論理回路の電源電圧として、演出インタフェイス基板27、ランプ駆動基板29、モータ/ランプ駆動基板30、画像インタフェイス基板28、及び画像制御基板23に配電されて各デジタル回路を動作させている。
但し、演出制御基板22には、直流電圧5Vが配電されておらず、12VからDC/DCコンバータで降圧された直流電圧3.3Vと、3.3VからDC/DCコンバータで更に降圧された直流電圧1.8Vだけが、演出インタフェイス基板27から演出制御基板22に配電されている。
このように、本実施例の演出制御基板22は、全ての回路が、電源電圧3.3V又はそれ以下の電源電圧で駆動されているので、電源電圧を5Vで動作する場合と比較して大幅に低電力化することができ、仮に、演出制御基板22の直上に演出インタフェイス基板27を配置して積層しても放熱上の問題が生じない。
また、演出インタフェイス基板27が、電源基板20から受けた直流電圧12Vは、そのままデジタルアンプ46の電源電圧として使用されると共に、モータ/ランプ駆動基板30とランプ駆動基板29に配電されて各ランプ群の電源電圧となる。一方、電源基板20から受けた直流電圧32Vは、演出インタフェイス基板のDC/DCコンバータにおいて直流電圧13Vに降圧されて、モータ/ランプ駆動基板30に配電されている。
図4に示すように、演出制御部22’は、音声演出・ランプ演出・演出可動体による予告演出・データ転送などの処理を実行するワンチップマイコン(MC)40と、ワンチップマイコン40の制御プログラムPGMeや各種の演出データENを記憶するフラッシュメモリ(flash memory)41と、ワンチップマイコン40からの指示に基づいて音声信号を再生して出力する音声合成回路42と、再生される音声信号の元データである圧縮音声データを記憶する音声用メモリ43とを備えて構成されている。
なお、音声合成回路42と、音声用メモリ43とは、26ビット長の音声アドレスバスと、16ビット長の音声データバスで接続されている。そのため、音声用メモリ43には、1Gビットの圧縮音声データが記憶可能となる。そして、音声アドレスバス(26ビット)で指定される圧縮音声データ(16ビット)が、音声データバスに出力され、音声合成回路42において伸張されて音声データが再生される。
ところで、本実施例の場合、フラッシュメモリ41に記憶されている演出データENには、ランプ演出や音声演出の演出進行を管理するシナリオデータと、LEDの点滅態様を決定するランプ駆動データと、モータの回転態様を決定するモータ駆動データと、が含まれている。なお、ランプ駆動データやモータ駆動データは、1ビットずつ時間順次に出力されることで、ランプ駆動シリアル信号やモータ駆動シリアル信号となる。
図4や図8に示す通り、ワンチップマイコン(MC)40と、フラッシュメモリ41とは、23ビット長のCPUアドレスバスと、16ビット長のCPUデータバスとで接続されている。実施例のフラッシュメモリ41は、8M(=223)×16ビットのメモリ容量を有するが、フラッシュメモリ41に記憶されている制御プログラムには、演出データENを含んだ制御プログラムPGMeの全体について、チェックサム演算を実行するプログラムが内蔵されている。このチェックサム演算は、フラッシュメモリ41のデータを1バイト単位で加算し、その加算結果を2バイト長で保存する処理をしている。したがって、チェックサム値は、2バイト長となる。
ところで、ワンチップマイコン40、フラッシュメモリ41、及び音声用メモリ43は、電源電圧3.3Vで動作しており、また、音声合成回路42は、電源電圧3.3V及び電源電圧1.8Vで動作しており大幅な省電力化が実現されている。ここで、1.8Vは、音声合成回路のコンピュータ・コア部の電源電圧であり、3.3Vは、I/O部の電源電圧である。
ワンチップマイコン40には、複数のパラレル入出力ポートPIOが内蔵されている。そして、第1入力ポートPO1には、主制御部21からの制御コマンドCMD及びストローブ信号STBが入力され、第2入力ポートPO2からは、制御コマンドCMD’及びストローブ信号STB’が出力されるよう構成されている。
具体的には、第1入力ポートPO1には、主制御基板21から出力された制御コマンドCMDとストローブ信号(割込み信号)STBとが、演出インタフェイス基板27のバッファ44において、電源電圧3.3Vに対応する論理レベルに変換されて8ビット単位で二回に分けて供給される。そして、割込み信号STBは、ワンチップマイコンの割込み端子に供給され、受信割込み処理によって、演出制御部22’は、制御コマンドCMDを取得するよう構成されている。
演出制御部22’が取得する制御コマンドCMDには、(1)異常報知その他の報知用制御コマンドなどの他に、(2)図柄始動口への入賞に起因する各種演出動作の概要特定する制御コマンド(変動パターンコマンド)や、図柄種別を指定する制御コマンド(図柄指定コマンド)が含まれている。ここで、変動パターンコマンドで特定される演出動作の概要には、演出開始から演出終了までの演出総時間と、大当たり抽選における当否結果とが含まれている。
また、図柄指定コマンドには、大当たり抽選の結果に応じて、大当たりの場合には、大当たり種別に関する情報(15R確変、2R確変、15R通常、2R通常など)を特定する情報が含まれ、ハズレの場合には、ハズレを特定する情報が含まれている。変動パターンコマンドで特定される演出動作の概要には、演出開始から演出終了までの演出総時間と、大当り抽選における当否結果とが含まれている。なお、これらに加えて、リーチ演出や予告演出の有無などを含めて変動パターンコマンドで特定しても良いが、この場合でも、演出内容の具体的な内容は特定されていない。
そのため、演出制御部22’では、変動パターンコマンドを取得すると、これに続いて演出抽選を行い、取得した変動パターンコマンドで特定される演出概要を更に具体化している。例えば、リーチ演出や予告演出について、その具体的な内容が決定される。そして、決定された具体的な遊技内容にしたがい、LED群などの点滅によるランプ演出や、スピーカによる音声演出の準備動作を行うと共に、画像制御部23’に対して、ランプやスピーカによる演出動作に同期した画像演出に関する制御コマンドCMD’を出力する。
このような演出動作に同期した画像演出を実現するため、演出制御部22’は、第2入力ポートPO2を通して、画像制御部23’に対するストローブ信号(割込み信号)STB’と共に、16ビット長の制御コマンドCMD’を演出インタフェイス基板27に向けて出力している。なお、演出制御部22’は、図柄指定コマンドや、表示装置DSに関連する報知用制御コマンドや、その他の制御コマンドを受信した場合は、その8ビット単位の制御コマンドを、16ビット長に纏めた状態で、割込み信号STB’と共に演出インタフェイス基板27に向けて出力している。
上記した演出制御基板22の構成に対応して、演出インタフェイス基板27には出力バッファ45が設けられており、16ビット長の制御コマンドCMD’と1ビット長の割込み信号STB’を画像インタフェイス基板28に出力している。そして、これらのデータCMD’,STB’は、画像インタフェイス基板28を経由して、画像制御基板23に伝送される。
また、演出インタフェイス基板27には、音声合成回路42から出力される音声信号を受けるデジタルアンプ46が配置されている。先に説明した通り、音声合成回路42は、3.3Vと1.8Vの電源電圧で動作しており、また、デジタルアンプ46は、電源電圧12VでD級増幅動作しており、消費電力を抑制しつつ大音量の音声演出を可能にしている。
そして、デジタルアンプ46の出力によって、遊技機上部の左右スピーカと、遊技機下部のスピーカとを駆動している。そのため、音声合成回路42は、3チャネルの音声信号を生成する必要があり、これをパラレル伝送すると、音声合成回路42とデジタルアンプ46との配線が複雑化する。
そこで、本実施例では、音質の劣化を防止すると共に、配線の複雑化を回避するため、音声合成回路42とデジタルアンプ46との間は、4本の信号線で接続されており、具体的には、転送クロック信号SCLKと、チャネル制御信号LRCLKと、2ビット長のシリアル信号SDATA1,SDATA2との合計4ビットの信号線に抑制されている。なお、何れの信号も、その振幅レベルは3.3Vである。
ここで、SDATA1は、遊技機上部に配置された左右スピーカのステレオ信号R,Lを特定するPCMデータについてのシリアル信号であり、SDATA2は、遊技機下部に配置された重低音スピーカのモノラル信号を特定するPCMデータについてのシリアル信号である。そして、音声合成回路42は、チャネル制御信号LRCLKをLレベルに維持した状態で、左チャネルの音声信号Lを伝送し、チャネル制御信号LRCLKをHレベルに維持した状態で、右チャネルの音声信号Rを伝送する。重低音スピーカは、本実施例では1個であるので、モノラル音声信号が伝送されているが、ステレオ音声信号として伝送できるのは勿論である。
何れにしても本実施例では、4種類の音声信号を4本のケーブルで伝送可能であるので、最小のケーブル本数によってノイズによる音声劣化のない信号伝達が可能となる。すなわち、シリアル伝送であるのでパラレル伝送より圧倒的にケーブル本数が少ない。アナログ伝送を採る場合には、ケーブル本数は同数であるが、3.3V振幅のアナログ信号に、少なからずノイズが重畳して、音質が大幅に劣化する。一方、振幅レベルを上げると、電源配線が複雑化する上に消費電力が増加する。
このようなシリアル信号SDATA1,SDATA2は、クロック信号SCLKの立上りエッジに同期して、デジタルアンプ46に取得される。そして、デジタルアンプ46内部で、所定ビット長毎にパラレル変換され、DA変換後にD級増幅されて各スピーカに供給されている。
デジタルアンプ46の内部構成は適宜であるが、図5は、デジタルアンプとしてYDA171(YAMAHA)を使用した場合の内部構成図を示している。このような内部構成に限定されないが、何れにしても、本実施例では、音声合成回路42とデジタルアンプ46とをシリアル回線で接続するので、PCMデータ(音声データ)のビット長を如何に増やして高音質化を実現しても配線ケーブルその他を変更する必要がなく、回路構成の簡素化を維持することができる。
また、演出インタフェイス基板27には、ワンチップマイコン40から出力されるシリアルデータを出力するバッファ回路47,48が設けられている。ここで、出力バッファ47は、ワンチップマイコン40から伝送されたランプ駆動信号(シリアル信号)を、ランプ駆動基板29に配置されたシフトレジスタ回路に転送している。そして、ランプ駆動基板29のシフトレジスタ回路(不図示)では、ランプ駆動信号をパラレル信号に変換してLEDランプ群を駆動している。
もう一方のバッファ回路48は、入出力バッファとして機能しており、ワンチップマイコン40から伝送されたシリアル信号をモータ/ランプ駆動基板30に、そのまま転送する一方、一群の演出モータM1〜Mnの原点位置を示す原点センサ信号(シリアル信号)をワンチップマイコン40に転送している。
本実施例の場合、ワンチップマイコン40からバッファ回路48に伝送されたシリアル信号は、ランプ群を点灯させるためのランプ駆動信号(シリアル信号)と、演出モータを回転させるためのモータ駆動信号(シリアル信号)とが連続するよう構成されている。そして、モータ/ランプ駆動基板30では、これら一連のシリアル信号を16ビット長毎に分断すると共に、各16ビット長をパラレル信号に変換して、ランプ演出と可動予告演出を実行している。具体的には、制御コマンドCMDに対応して抽選決定された演出動作として、一連のランプ演出を実行すると共に、モータ駆動信号を受信した場合には、演出モータM1〜Mnを回転させて適宜な可動予告演出を実行している。
図6(a)は、モータ/ランプ駆動基板30の回路構成を、具体的に示すブロック図である。図示の通り、モータ/ランプ駆動基板30は、演出モータM1〜Mnの原点センサ信号をシリアル変換するPS変換部50と、PS変換部50への制御信号をワンチップマイコン40から受ける入力バッファ51と、直流電圧13Vを12Vに降圧する降圧部52と、ランプ駆動信号やモータ駆動信号をワンチップマイコン40から受ける入力バッファ53と、ランプ群や演出モータ群を駆動制御する駆動制御部54,55と、各演出モータの駆動電流を受けるシンクドライバ56とを有して構成されている。PS変換部50、入力バッファ51,53、駆動制御部54、及び、シンクドライバ56は、直流電圧5Vを電源電圧として動作している。
原点センサ信号は、演出モータM1〜Mnが原点に位置するか否かを検出する原点センサの出力であり、各原点センサは、直流電圧12V又は5Vを電源電圧としている。これら各1ビットで全nビットの原点センサ信号は、ワンチップマイコン40が出力する保持信号LOADに同期して、PS変換部51に取得され、PS変換部51は、ワンチップマイコン40から受ける転送クロックCKに同期して、原点センサ信号をシリアル信号に変換してワンチップマイコン40に伝送している。
このように、本実施例では、各演出モータM1〜Mnが原点に位置しているか否かを、ワンチップマイコン40が適宜に把握できるよう構成されている。なお、各原点センサの電源電圧として、電磁ノイズが重畳する可能性のある電源ライン(13V)とは別系統の直流電圧(12V,5V)を使用することで誤判定の可能性を大幅に低減させている。
次に、降圧部52は、その入力側13Vが各ランプの駆動電源として使用され、出力側12Vが演出モータM1〜Mnの駆動電源として使用され、電源ラインが互いに分離されている。また、先に説明した通り、入力バッファ53や、駆動制御部54,55は、直流電圧13Vとは全く別系統に生成された直流電圧5Vを電源電圧としている。
そのため、大型の演出モータ群M1〜Mnが突発的に動作を開始しても、各ランプのランプ駆動信号に電源ノイズなどの影響が及ぶ可能性が極めて低い。同様に、各ランプを高輝度で激しく点滅させても、各演出モータM1〜Mnのモータ駆動信号に電源ノイズなどの影響が及ぶ可能性の極めて低い。
ところで、演出モータ用の駆動制御部54と、ランプ用の駆動制御部55は、何れも同一構成であり、ワンチップマイコン40から、動作制御信号ENと、シリアル信号DATAと、転送クロック信号CKとを共通に受けて動作している。なお、シリアル信号DATAには、ランプ駆動信号とモータ駆動信号とが含まれている。
この駆動制御部54,55は、例えば、5ビット長のアドレス端子(A0−A4)を有して、適宜にアドレスが付番可能に構成されている。この実施例では、5ビット長のアドレス端子(A0−A4)は、ハードウェア構成として、予めHレベル又はLレベルに固定的に付番されている。
また駆動制御部54,55は、内部の多数の制御レジスタR1〜Rmを有して構成され、各制御レジスタR1〜Rmに制御データDi(8ビット長)を設定する(書込む)ことで、16ビット長の出力端子の各出力が適宜に制御されるようになっている。
制御レジスタR1〜Rmのレジスタ番号は8ビット長である。また、5ビット長のアドレス端子(A0−A4)は、この実施例では、予め、H/Lレベルに設定されており、各素子54,55のアドレスADRiは固定値となる。
各制御レジスタR1〜Rmに制御データDiを設定することで実現される動作内容としては、各出力端子のON/OFF状態だけでなく、ON/OFF状態に至るまでのフェード動作(fade in/out) の有無、ON状態の出力端子のPWM制御におけるduty比(0〜99.6%)などが可能である。そのため、輝度制御時やfade in/out 演出時に、ワンチップマイコン40は、ランプ駆動信号(シリアルデータ)を、わざわざPWM制御用に変更する必要がなく、単に、該当レジスタRiの制御データを設定変更するだけでよいので、制御負担が大幅に軽減される。
もっとも、ランプ駆動信号をPWM制御することで、固定的なフェード動作とは異なるfade in/out 演出時を実施できるのは勿論であり、要するに、本実施例によれば、多様なランプ演出が可能となる。このような多様なランプ演出を実行すると、駆動制御部55の出力信号に、かなりの高周波ノイズが重畳することが懸念されるが、その影響が演出モータM1〜Mnに及びにくいことは前記した通りである。
ところで、図6(b)は、ワンチップマイコン40と、複数の駆動制御部54,55・・・55との間の通信プロトコルを示すタイムチャートである。図示の通り、ワンチップマイコン40は、先ず、動作制御信号ENをON状態(Hレベル)に設定した状態で、(1)制御データDiを書込むべき駆動制御部54〜55のアドレス番号ADRi(8ビット長)、(2)その駆動制御部における制御データDiを書込むべき制御レジスタR1〜Rmの番号(8ビット長)、(3)その制御レジスタRiに書込むべき制御データDi(8ビット長の設定値)を、転送クロック信号CKに同期させてシリアル信号として出力する。
なお、一連の制御レジスタR1〜Rmについて、その先頭レジスタ番号Riを指定すれば、その後に連続する制御データ(設定値)D1,D2,R3・・・は、Ri,Ri+1,Ri+2・・・の制御データであると駆動制御部54,55に認識されて自動的に取得される。したがって、必ずしも、全ての制御レジスタRiに設定値を設定する必要は無く、例えば、一連M個の制御レジスタRi〜Ri+M−1への書込み処理であれば、制御データM個と、アドレスデータ2個とで、合計8×(M+2)ビット長の出力処理で足りる。
そして、全てのデータの出力を終えると、ワンチップマイコン40は、動作制御信号ENをON状態からOFF状態に戻せばよく、この動作に対応して、アドレス番号ADRiで特定された駆動制御部では、一連の制御レジスタRi・・・Ri+M−1に取得した制御データD1・・・に対応する動作を開始する。
演出モータM1〜Mnは、可動予告演出を実行するので、通常は隠蔽状態で原点位置に待機している。したがって、駆動制御部54は、OFF状態の制御データを保持したままであり、通常は、ワンチップマイコン(MC)40から、制御データの転送を受ける必要がない。しかし、この本実施例の制御駆動部は、アドレス番号ADRiを特定して制御データDiを受けるので、繰り返しシリアル信号が転送されても、アドレス番号で指定されない駆動制御部54には何の影響も与えない。
したがって、本発明の構成によれば、動的なランプ演出を継続的に繰り返すランプ制御用の駆動制御部55・・55と、稀にしか予告動作を開始しない可動予告演出用の駆動制御部54とを同一構成とすることができる。しかも、ワンチップマイコン40は、モータ駆動信号をランプ駆動信号に付加するか否かを判定する以外は、モータ駆動信号とランプ駆動信号とを同列に扱うことができるので、ワンチップマイコン40の制御負担を軽減することができる。
また、ランプ制御用の駆動制御部55・・55の全部又は一部を、同一アドレス値に設定することで、多数のランプに関する点灯データ(制御データ)の転送処理を纏めることができ、演出制御部22の制御負担が軽減される。例えば、遊技機の右側と左側のランプ群を、常に、同一態様で発光させる場合には、右側のランプ群を駆動する駆動制御部55Rと、左側のランプ群を駆動する駆動制御部55Lとを、同一アドレス値に設定するだけで、点灯データの転送処理を一回で終えることができる。
図7は、画像制御部23’(画像インタフェイス基板28と画像制御基板23)について、その周りの基板も含めて詳細に図示した回路ブロック図である。また、図8は、演出制御基板22と画像制御基板23について、特に、メモリ(ROM/RAM)と、マイクロプロセッサ(ワンチップマイコン)MCとの接続関係を図示したブロック図である。先に説明した通り、画像制御部23’は、演出制御部22’から制御コマンドCMD’とストローブ信号STB’とシステムリセット信号SYSとを受けて動作している。また、演出制御部を経由して2種類の直流電圧5V,12Vを受けている。
図7に示す通り、画像制御部23’は、演出インタフェイス基板27を経由して制御コマンドを受信して画像制御動作を実行するワンチップマイコン(MC)60と、ワンチップマイコン60の制御プログラムなどを記憶するフラッシュメモリ61と、ワンチップマイコン60の指示に基づき表示装置DSを駆動するVDP(Video Display Processor) 62と、画像演出用の画像圧縮データを記憶するグラフィックROM(CGROM)63と、VDP62の作業領域(Video RAM) として機能するSDRAM(Synchronous Dynamic Random Access Memory)64と、ワンチップマイコン60を強制リセットさせるウォッチドッグタイマWDTなどを有して構成されている。
VDP62には、SDRAM用のインタフェイス回路(SDRAM_I/F) と、CGROM用のインタフェイス回路(ROM_I/F) と、ワンチップマイコン用のインタフェイス回路(CPU_I/F) とが内蔵されている(図11参照)。そして、VDP62とSDRAM64とは、SDRAM用のインタフェイス回路(SDRAM_I/F) を経由して、3ビット+13ビット長のSDRAM用第一アドレスバスと、32ビット長のSDRAM用第一データバスと、3ビット+13ビット長のSDRAM用第二アドレスバスと、32ビット長のSDRAM用第二データバスと、で接続されている。
ここで、第一と第二の各16ビット長のアドレス情報のうち、その3ビットは、バンク切替信号であり、残り13ビットは、時間分割されて認識されるROWデータ(13ビット)とCOLUMNデータ(10ビット)である。このことに対応して、各メモリ(SDRAM)は、8個のバンクに区分されているが、VDP62からSDRAM64に供給される3ビットが、バンク切替信号として機能する。
また、ROWデータ(13ビット)とCOLUMNデータ(10ビット)とを組み合わせることで、選択アドレスが8192*1024=8Mとなり、これが8バンク存在するので、メモリ1個で合計64M×16ビット=1Gビット長となる。
本実施例の場合、SDRAM64は、動画圧縮データなどを伸張する作業領域として機能するが、メモリ容量1GビットのDDR2(double data rate 2)タイプのSDRAMを、合計4個使用することで、合計4Gビットである十分量のメモリ容量としている。
各メモリのデータ入出力端子は、16ビット長であるが、一対のSDRAM64について、一方のメモリのデータ入出力端子を、SDRAM用データバスの上位16ビットに接続し、他方のメモリのデータ入出力端子を、SDRAM用データバスの下位16ビットに接続することで、32ビット単位での高速のデータアクセスを可能にしている。なお、このことは、第一データバス及び第二データバスに関して成立するので、第一と第二のデータバスを総合すると64ビット単位のデータアクセスが可能となる。また、本実施例では、特に、DDR2タイプのSDRAMを使用するので、高画質の動画データであっても支障なく円滑に再生することができ、高度な画像演出が可能となる。
続いて、CGROM63について説明する。CGROM63は、高画質の静止画や、高速で変化する演出動画などを生成するための画像データを、必要に応じて、圧縮状態で記憶するメモリである。そのため、SDRAM64のように任意のアドレスが、ランダムにアクセルされる可能性が少なく、連続アドレスを順番にアクセスするシーケンシャルアクセスが多いと考えられる。
そこで、本実施例では、この動作内容に着目して、CGROM用のインタフェイス回路(ROM_I/F) に用意されているROM用アドレスバスを使用することなく、全て、ROM用データバスによってデータリード動作を実現する構成を採っている。本実施例の構成によれば、基板上の配線を抑制して部品スペースを確保できるだけでなく、製造コストを抑制することができる。
図9(a)は、本実施例の構成に好適なメモリ(8GビットROM)の内部構成を図示したものである。図示の通り、このメモリは、32ビット長のデータ入出力端子IO0〜IO31と、チップイネーブル(Chip Enable) 端子CEと、リードクロック(Read Clock)端子REと、動作状態出力端子R/Bと、リセット端子RESと、を有して構成されている。なお、素子一個の記憶容量は、256M×32ビット=8Gビット長である。
図7〜図8に示す通り、本実施例のCGROM63は、上記した8Gビット長のメモリ(CG1〜CG4)を4個配置して構成され、VDP62とCGROM63とは、CGROM用のインタフェイス回路(ROM_I/F) を経由して、64ビット長のROM用データバスで接続されている。先に説明した通り、この実施例では、ROM用アドレスバスは使用しない。
4個のCGROMのうち、メモリCG1とメモリCG3には、64ビットのROM用データバスの下位32ビットが接続され、メモリCG2とメモリCG4には、64ビットのROM用データバスの上位32ビットが接続されている。そして、メモリCG1とメモリCG2には、共通するチップイネーブル信号CE0とリードクロック信号RE0が供給されている(図8参照)。
そのため、メモリCG1とメモリCG2は、同一タイミングでメモリリード(Memory Read) 動作が実行されることになり、各メモリCG1,CG2から出力される各32ビットのデータが、ROM用データバスで連結されることで、64ビット単位のメモリリード動作が実現される。同様に、メモリCG3とメモリCG4にも、共通するチップイネーブル信号CE1と、リードクロック信号RE1が供給されることで、64ビット単位のメモリリード動作が実現される。
図10(a)は、メモリCG1とメモリCG2の内部構成を図示したものであり、便宜上、0X0000_0000番地以降の状態を示している。なお、0Xは、16進数表記を意味しており、例えば、本メモリの使用可能な最終アドレス0X0FAF_FFFFは、10進数の263,192,575に該当する。
本実施例のVDP62は、CGROM63のデータを1バイト単位で管理しており、1バイト単位でアドレスが付番されている。また、メモリCG1とメモリCG2には、同一のチップイネーブル信号CE0とリードクロック信号RE0が、共通して供給されると共に、メモリCG1とメモリCG2には、常に、同一のアドレス情報が供給されるよう構成されている。
そのため、メモリCG1の32ビットと、メモリCG2の32ビットとを連続させてアドレス付番することができ、図10(a)に示す0、1、2、3、4、5、6、7・・・4095は、各々、1バイト単位で付番される0番地、1番地、2番地、・・・4095番地を意味している。
図9(b)は、各メモリ(CG1,CG2)の動作内容を示すタイムチャートであり、VDP62が、メモリCG1及びメモリCG2から画像データを64ビット単位で読み出すメモリリード(Memory Read) 動作を図示している。
VDP62は、先ず、チップイネーブル信号CE0をLレベルにアサート(assert)した後、リードクロック信号RE0を出力すると共に、ROM用データバスの下位32ビットと上位32ビットに、各々、適宜な同一のアドレス情報AD0〜AD2を出力する。ここで、アドレス情報AD0〜AD2は、一連のシーケンシャルアクセスの基点アドレス(開始アドレス)を特定する21ビットデータである。このメモリCG1〜CG4では、基点アドレスの下位9ビット(bit8〜bit0)が全て0である必要があるので、基点アドレスは、0X200飛びの値となる(図10(a)参照)。
図9(b)に示す通り、アドレス情報AD0〜AD2は、開始用KEYデータS(=0XBFBF_BFBF)に続いて、三回に分けて、AD0→AD1→AD2の順番に出力される。出力された各アドレス情報AD0〜AD2は、リードクロック信号RE0の立上りエッジに同期してメモリCG1,CG2に取得される。
この実施例では、ROM用データバスの上位32ビットがメモリCG2に接続され、ROM用データバスの下位32ビットがメモリCG1に接続されているが(図7参照)、以下の説明において、同一のアドレス情報AD0〜AD2が、ROM用データバスの上位32ビットと下位32ビットに重複して出力される。したがって、例えば、基点アドレス0X0000_0000がアクセスされた場合には、図10(a)に示すメモリCG1の0〜3番地と、メモリCG2の4〜7番地がまとめてアクセスされることになる。
何れにしても、アドレス情報AD0は、32ビット長のアドレスのうち、Bit24〜Bit28の5ビットであり、同じ5ビットデータが、Bit8〜Bit12と、Bit16〜Bit20にも重複して出力される。そのため、データ伝送時に、例え、ビット化けが生じても、メモリ内部では、多数決論理などによって正しいビットデータを取得することができる。
一方、アドレス情報AD1は、32ビット長のアドレスのうち、Bit16〜Bit23の8ビットであり、同じ8ビットデータが、Bit8〜Bit15と、Bit24〜Bit31にも重複して出力される。また、アドレス情報AD2は、32ビット長のアドレスのうち、Bit8〜Bit15の8ビットであり、同じ5ビットデータが、Bit16〜Bit23と、Bit24〜Bit31にも重複して出力される。
このようにして、三回に分けてアドレス情報AD0〜AD2を出力した後、VDP62が、終了用KEYデータE(=0X0000_0000)を出力することで、アドレス情報AD0〜AD2の送信が完了する。その後、同一のアドレス情報を受けたメモリCG1,CG2においてデコード動作が完了すると、メモリCG1,CG2の動作状態出力端子R/BがLレベルのアサートされた後、メモリCG1,CG2のデータが、各々、32ビット単位で、ROM用データバスに出力される。なお、図9(b)において、HiZは、3状態出力におけるハイ・インピーダンス状態を意味し、−は、そのタイミングにおけるデータバスの値が、VDP62やメモリCG1,CG2に何の影響も与えないことを意味している。
VDP62が出力するリードクロックRE0の立下りエッジは、各メモリCG1,CG2に対するデータ出力指示となるので、VDP62は、リードクロックRE0の立下りエッジから所定タイミング経過後のROM用データバスのデータを取得することで、メモリリード動作を実行する。このようなメモリリード動作は、リードクロックRE0が継続される限り、連続して実行可能であり、本実施例の構成によれば、連続アドレスをアドレス順にアクセスするシーケンシャルアクセスを迅速に実行することができる。
そして、必要なシーケンシャルアクセスが終われば、VDP62は、チップイネーブル信号CE0をHレベルに戻せば良く、その結果、その後のROMデータバスは、HiZ状態となる。
なお、開始用KEYデータS(=0XBFBF_BFBF)に続けて、新規のアドレス情報(AD0〜AD2)を出力すれば、別のアドレスのメモリリードを開始できるが、その基点アドレスは、0X0000_0000に対して、0X200の整数倍の飛び飛びの値となる。図10(a)に示す通り、基点アドレスと次の基点アドレスとの間隔は、0X200=512であるので、512個のリードクロック(read clock)RE0が出力されることに対応して512*64ビットのデータが取得される。
このように、本実施例の構成によれば、開始用KEYデータS→アドレス情報AD0→アドレス情報AD1→アドレス情報AD2→開始用KEYデータEのデータ伝送によって、メモリCG1とメモリCG2に、新規の同一の基点アドレスを指定した後は、リードクロック一個で、64ビット(CG1の32ビット+CG2の32ビット)のデータ(8番地分のデータ)をまとめて読み出すことができ、その後もリードクロックが出力される毎に、64ビットのデータが取得できるので、迅速なメモリリード動作が実現される。なお、この関係は、メモリCG3とメモリCG4についても同様である。
ところで、このように構成されるCGROMには、図9(c)に示すデータ構造で、静止画や動画に関する多種類のスプライトを実現するCGデータが記憶されている。スプライトとは、例えば、キャラクタ図柄や背景画像など、一まとまりの画像を意味するが、このようなスプライトを実現するCGデータは、パターンアトリビュートとパターンデータとに区分されている。
ここで、パターンデータとは、スプライトの絵柄を決定するビットマップであり、例えば、画素数N×Mのスプライトについて、各画素を、例えば、24ビット階調のRGB三原色(RGB色空間)で表現する場合には、N×M×3×24ビット長となる。
一方、パターンアトリビュートとは、パターンデータ固有の属性値を示す可変長データであり、4バイト長の必須アトリビュート領域と、可変長の拡張アトリビュート領域とで構成されている(図9(c)参照)。そして、必須アトリビュート領域には、スプライトの垂直方向及び水平方向のサイズを特定する3バイトデータの他に、パターンデータの情報(一画素のビット数や、色空間の種別など)や、アルファデータの格納フォーマットを指定する数ビットや、拡張アトリビュート領域にチェックサム値を記憶しているか否か、或いは、パターンデータ領域にアルファテーブルやパレットテーブルが存在するか否か、などを特定する数ビットが含まれている。
本実施例では、必須アトリビュート領域に所定ビットデータを記憶することで、拡張アトリビュート領域に、チェックサム値を記憶する構成を採っており、これに対応して、拡張アトリビュート領域の1バイト領域には、当該スプライトデータの8ビット総和値に加算すると、加算結果がゼロになるチェックサム値が記憶されている。
そして、スプライトデータ(CGデータ)を読み込む際には、VDP62は、付随してチェックサム演算を実行しており、全データ読み込み時の総和値に、チェックサム値を加算した加算結果がゼロにならない場合には、ROMエラー割り込みを発生させている。そして、このROMエラー割り込みに対応してワンチップマイコン60では、所定のエラー処理を実行するが、この点については後述する。
図7に戻って説明を続けると、画像制御部23’のワンチップマイコン60とVDP62は、21ビット長のCPUアドレスバスと、32ビット長のCPUデータバスとで接続されている。ワンチップマイコン60から評価すると、VDP62は、ワンチップマイコン60から任意にアクセス可能なI/Oデバイスに他ならず、VDP62に内蔵された多数のレジスタR1〜RnがREAD/WRITEの対象となる。すなわち、CPUアドレスバスのアドレス情報で特定される所定のレジスタRiに、CPUデータバスに出力した情報を書き込むことで、VDP62に所定の動作の実行を指示することができ、また、所定のレジスタRjの情報を読み取ることで、VDP62の動作状態や動作結果を把握可能となっている。
VDPに内蔵されたレジスタRiには、例えば、チェックサム演算を実行する場合における(1)演算開始アドレスを規定するレジスタRx、(2)演算終了アドレスを規定するレジスタRy、(3)演算内容を規定するレジスタRz、及び、(4)2つの結果保存レジスタRsL,RsHが含まれている。そこで、本実施例では、これらのレジスタRx,Ry,Rz,RsL,RsHを活用することで、VDP62に、CGROM63の任意領域のチェックサム演算を実行させ、その演算結果をワンチップマイコン60がレジスタRsL,RsHから取得するようにしている。
このチェックサム演算は、ワンチップマイコン60が、上流側のワンチップマイコン40から検査用の制御コマンドを受けると開始され、レジスタRxに規定する演算開始アドレスから、レジスタRyに規定する演算終了アドレスまでのデータについてレジスタRzで規定された加算演算を実行する。
具体的には、CGROM63の1バイト単位の番地データについて、4バイト毎、つまりメモリ素子毎に、8ビット単位の加算演算を実行して、その演算結果を2つのレジスタRsL,RsHに、各々、16ビット長で保存している。図10(b)や図10(c)の矢印は、このチェックサム演算の手順を示すものであって、所定のメモリ素子CGiについて、その実行開始アドレスから1バイト毎に、4バイト分の8ビット加算演算が完了すると、同じメモリ素子CGiの連続アドレスについて、8ビット加算演算が継続され、演算終了アドレスまでの加算演算が終わると、16ビット長の演算結果が、レジスタRsLとレジスタRsHに保存される。
なお、図示例では、メモリCG1及びCG2について、まとめてチェックサム演算を実行し、レジスタRsLにメモリCG1の加算結果を保存し、レジスタRsHにメモリCG2の加算結果を保存している。この点は、メモリCG3及びCG4についても同様であり、メモリCG3及びCG4について、まとめてチェックサム演算を実行して、レジスタRsLにメモリCG3の加算結果を保存し、レジスタRsHにメモリCG4の加算結果を保存している。
本実施例では、CGROM63に対する一回のアクセスで、64ビット長のデータが取得できるにも拘らず、あえて、4バイト毎に、8ビット長の加算演算を実行し、その結果を2バイト長で保存するので、ビット化けしたデータをメモリ素子CGi毎に検出することができる。すなわち、本実施例と相違して、64ビット長のデータを連続して加算したのでは、ビット化けを検出できても、ビット化けの生じているメモリ素子を特定することができない。
以上、SDRAM64やCGROM63について説明したので、次に、画像制御部23’のフラッシュメモリ61について説明する。ワンチップマイコン60とフラッシュメモリ61は、23ビット長のCPUアドレスバスと、16ビット長のCPUデータバスとで接続されている。フラッシュメモリ61は、8M(=223)×16ビットのメモリ容量を有するが、制御プログラムには、定数データを含んだ制御プログラムの全体について、VDP62が実行すると同じチェックサム演算を実行するプログラムが内蔵されている。すなわち、フラッシュメモリ61全体についても、1バイト単位の加算演算を実行して、その演算結果を16ビット長で保存している。
図7に戻って説明を続けると、図7に示すウォッチドッグタイマWDTの出力は、システムリセット信号SYSと共にOR回路に供給されており、OR回路への入力信号の何れかがアクティブレベルになると、ワンチップマイコン60とVDP62とが同期してリセットされるようになっている。したがって、ワンチップマイコン60のプログラム暴走などに起因して制御動作が初期化されると、これに対応して、VDP62の動作を初期化されることになり、矛盾した不自然な画像演出が実行されることがない。
また、本実施例では、消費電力を可能な限り抑制するべく、各素子の電源電圧を最小化しており、各素子の電源電圧は、(1)ワンチップマイコン60が3.3Vと1.25V、(2)フラッシュメモリ61が1.25V、(3)VDP62が3.3Vと1.8Vと1.1V、(4)CGROM63が3.3V、(5)SDRAM64が1.8Vとなっている。
このように本実施例では、省電力化のために多数の直流電圧が必要となり、しかも、複数の電源電圧を有する回路素子については、その供給タイミングを最適化する必要がある。一方、演出制御部22’と画像制御部23’との間の配線ケーブル数を抑制する趣旨から2種類の直流電圧しか配電されていない。
そこで、制御端子を有する複数のDC/DCコンバータを配置すると共に、電源シーケンサ65を設けることで、多数の直流電圧を最適なタイミングで各素子に供給している。図12は、電源シーケンサ65の一例としてLM3881(national semiconductor)の内部構成(a)と、電源シーケンサ65を使用した場合にも実行される動作タイムチャート(b)を図示したものである。
図12(a)の電源シーケンサ65の場合には、INV端子がLレベルであると、Hレベルの動作開始指令ENを受けて動作を開始し、TADJ端子に接続されるキャパシタンスで規定されるクロック信号Clockの9周期後に第一制御信号PCNT1が立上り、クロック信号の8周期後に第二制御信号PCNT2が立上り、クロック信号の更に8周期後に第三制御信号PCNT3が立上がる。
一方、動作開始指令ENがLレベルに遷移すると、クロック信号の9周期後に第三制御信号PCNT3が立下り、クロック信号の8周期後に第二制御信号PCNT2が立下り、クロック信号の更に8周期後に第三制御信号PCNT3が立下がる。
本実施例では、図7に示す通り、動作開始指令ENは、演出制御部22’(演出インタフェイス基板27)から供給される2種類の直流電圧のAND論理出力となっている。そして、第一制御信号PCNT1は、1.1V生成用のDC/DCコンバータV1の動作イネーブル端子ENに供給され、第二制御信号PCNT2は、3.3V生成用のDC/DCコンバータV2の動作イネーブル端子ENに供給されている。
また、第三制御信号PCNT3は、3.3VとのAND論理出力に変換されて、1.8V生成用のDC/DCコンバータV3の動作イネーブル端子ENに供給されている。上記した各DC/DCコンバータは、動作イネーブル端子ENがHレベルとなることを条件に電圧変換動作を開始する。
そのため、図12(b)に示す通り、演出制御部22’から配電される5Vに基づいてDC/DCコンバータV1が最初に機能して、直流電圧1.1Vが生成される。この直流電圧1.1Vは、VDP62に内蔵されたデジタル回路及び内蔵VRAM用の電源電圧であり、他の内蔵回路より先に動作を開始することで、電源投入後のVDP62の正常な動作開始シーケンスが担保される。
上記の動作の後に、第二制御信号PCNT2がHレベルになるので、演出制御部22’から配電される12Vを受けるDC/DCコンバータV2が機能して直流電圧3.3Vが生成される。直流電圧3.3Vは、1.25V用のDC/DCコンバータV4に供給されているが、このコンバータV4には、動作イネーブル端子が存在しないので、直ちに、動作を開始して、直流電圧1.25Vが生成される。
これら第二制御信号PCNT2に制御されて生成される2種類の直流電圧3.3V,1.25Vは、ワンチップマイコン60、フラッシュメモリ61、及びCGROM63に、ほぼ同タイミングで供給されるので、前記の各回路素子は、電源投入後に遅滞なく動作開始の準備が完了することになる。なお、このタイミングでは、システムリセット信号SYSがLレベルであり、このレベルがしばらく維持された後に、Hレベルに変化するよう電源基板の電源回路が動作しているので、ワンチップマイコン60は、正しく電源リセットされることになる。
最後に第三制御信号PCNT3がHレベルに変化すると、第三制御信号PCNT3と3.3VのAND論理出力が、DC/DCコンバータV3に供給されて直流電圧1.8Vが生成される。この直流電圧1.8Vは、VDP62と、SDRAM64と、SDRAM用の電源回路68とに、ほぼ同タイミングで供給されるので、SDRAM64と、VDP62内部のSDRAMインタフェイス回路が同期して動作可能状態となる。したがって、システムリセット信号SYSがHレベルに変化すると、VDP62は、円滑に初期設定動作を開始することができる。
図11は、VDP62の内部構成と、SDRAM64、CGROM63、及びワンチップマイコンとの接続関係を示すブロック図である。VDP62は、ワンチップマイコン60からの指示に基づき、CGROM63からCGデータを読み出して、表示装置DSで実行される一連の変動演出用の画像データ群を生成して出力する。変動演出用の画像データ群は、ディスプレイコントローラ78によって最終生成されてLVDS_I/F部75に出力されるよう構成されている。
ここで、変動演出用の画像データ群と予告演出用の画像データ群は、何れも、連続的に変化する動画データと、連続的には移動しない静止画データとを組合せて構成している。また、変動演出用の画像データ群を構成するRGB画素は、各々8ビット長(256階調)であって、表示装置DSでの高画質の画像演出を実現している。
図示の通り、ワンチップマイコン60とVDP62は、CPU_I/F部を経由して接続されており、コマンドメモリ70には、一連の画像演出を特定する多数のコマンドリストが予め格納されている。コマンドリストは、変動演出用と予告演出用に区別されると共に、各々、多種類のリストが用意して演出バリエーションの豊富化を図っている。
そして、ワンチップマイコン60は、必要時にシステム制御レジスタ71をアクセスして、実行を開始すべき一連の画像演出を特定する所定のコマンドリストの開始アドレスを設定する。すると、コマンドパーサ(構文解析器)72は、システム制御レジスタ71で指定されるコマンドリストを解析して、解析結果に対応する内部コードを、動画デコーダ73や静止画デコーダ74などの内部モジュールに渡す。すると、各内部モジュールが動作を開始して、CGROM63のCGデータに基づいて、VRAM(Video RAM) エリアに必要な画像データを確保すると共に、フレーム画像データを、所定時間毎にLVDS_IF部(LVDS送信部)75に出力する。LVDS_IF部75は、フレーム画像データをLVDS信号に変換して出力する部分である。
ところで、本実施例では、VDP62による一連の描画動作を高速且つ円滑化するため、CGROM63には、高速に変化する一連の動画を特定する動画圧縮データと、静止画像を特定する静止圧縮データと、が区別して記憶している。そして、CGROM63から、ROM_I/F部やCGメモリコントローラを経由して読み出された静止圧縮データは、静止画デコーダ74において伸張されて内蔵VRAM77に一時記憶されるようになっている。一方、CGROM63から読み出された動画圧縮データは、動画デコーダ73において伸張されてSDRAM64に一時記憶されるよう構成されている。
すなわち、本実施例では、外付けのSDRAM64をVRAMとして使用するので、内蔵RAMを使用する場合のようにメモリ容量に制限がなく、したがって、例えば、変動演出と予告演出の2系統について、一連の動画圧縮データを連続的にデコードして、SDRAMに先行して確保することもでき、画像処理を高速に実現することができる。また、本実施例のRAM64は、特に、DDR2SDRAM(Double-Data-Rate2 SDRAM) で構成されており、SDRAMより高速のデータ転送を実現しており、共通しない2系統の画像データを高速に生成することができる。
このようにしてVRAMエリア64,77に確保された画像データは、ディスプレイコントローラ78に読み出されて、ガンマ補正などの後にLVDS/IF部75から出力される。
図13は、上記した内部構成のVDP62と、表示装置DSとの接続関係について、図7や図11の該当部分(LVDS送信部75)をより詳細に図示したものである。図示の通り、本実施例の表示装置DSは、VDP62のLVDS送信部(LVDS_I/F)75に対応するLVDS受信部(LVDS_I/F)81を内蔵して構成されている。
図13(a)に示す通り、LVDS_I/F部(LVDS送信部)75は、RGBデータ24ビットを含んだパラレルデータを、LVDS(low voltage differential signaling)信号に変換する部分である。LVDSとは、RGBデータなどを低ノイズ、低電力で高速伝送するための低電圧差動伝送方式を意味し、本実施例では、一対の信号伝送ライン(1本のツイストペア線)に数mAの程度の低レベルの信号電流を送信側から供給する一方、この信号電流を受信側に設けた100Ω程度の終端抵抗で受ける構成を採っている。したがって、電圧振幅は、数100mV程度の低レベルであるが、論理レベル(H/L)に対応して電流方向を代えることで確実な信号伝送を実現している。
そして、この実施例では、図13(a)に示す通り、全24ビット長のRGB信号(各8ビット長)と、水平/垂直同期信号とを含んだ合計28ビット長のパラレルデータ(TA0〜TA6,TB0〜TB6,TC0〜TC6,TD0〜TD6)を、LVDS送信部75において、4対の差動信号に変換している。そして、これに、一対の転送クロックの差動信号を加えて、5本のツイストペア線で表示装置DSに伝送している。
なお、図7や図13(a)では、これら4対の差動信号を、表示装置DSの立場から評価して、(RXIN0+,RXIN0−)、(RXIN1+,RXIN1−)、(RXIN2+,RXIN2−)、(RXIN3+,RXIN3+)、(RXCLK+,RXCLK−)と記載している。
図13(b)に示すように、転送クロックRXCLKの一周期の間に、ツイストペア線(RXIN0+,RXIN0−)では、G0→R5→R4→R3→R2→R1→R0をシリアル転送し、ツイストペア線(RXIN1+,RXIN1−)では、B1→B0→G5→G4→G3→G2→G1をシリアル転送し、ツイストペア線(RXIN2+,RXIN2−)では、DE→(VS)→(HS)→B5→B4→B3→B2をシリアル転送し、ツイストペア線(RXIN3+,RXIN3−)では、NA→B7→B6→G7→G6→R7→R6をシリアル転送している。
ここで、R0〜R7は、赤色画素の輝度を示す8ビット長データ、G0〜G7は、緑色画素の輝度を示す8ビット長データ、B0〜B7は、青色画素の輝度を示す8ビット長データである。また、(VS)や(HS)は、垂直同期タイミング、水平同期タイミングであることを示し、DEは、DATA ENABLE を意味している。なお、NAは未使用である。
上記した4対の差動信号を受ける表示装置DSには、VDP62のLVDS送信部75に対応するLVDS受信部81が設けられている。そして、一連のシリアルデータがパラレル変換されて、4組のパラレルデータRA0〜RA6,RB0〜RB6,RC0〜RC6,RD0〜RD6となる。図13(b)に示すシリアルデータ列から明らか通り、パラレルデータRA0〜RA6は、具体的には、R0〜R5と、G0の7ビットであり、その他のパラレルデータも、図13(b)に示すシリアルデータに対応したものである。
そして、表示装置DSは、これらから抽出されるRGB階調データに基づいて画面表示を実現する。このように本実施例では、画素データが、RGB各8ビット(256階調)であってフルカラーの画像演出を実現することができる。
しかも、VDP62と表示装置DSとの信号伝送にLVDS信号を使用するので、電圧振幅が低レベルで足り(数100mV)、その分だけデジタル信号の立上り時間や立下り時間が短いので、高速通信を実現することができ、高速度に推移する画像演出を滑らかに実現することができる。しかも、コモンモードノイズの影響を受けないので、不自然な画素が生じることもない。
また、ケーブル本数が少ないので、省スペース化や低コスト化が実現され、低レベルの電圧によって信号伝送ができるので省電力化を図ることができる。そのため、これらの利点を活用して、より多くの可動演出体を配置して遊技演出を豊富化することができる。
なお、ツイストペア線(RXIN3+,RXIN3−)では、NA→B7→B6→G7→G6→R7→R6をシリアル転送する構成を採っているので、ツイストペア線(RXIN3+,RXIN3−)を使用しないか、或いは、ツイストペア線(RXIN3+,RXIN3−)でNULLデータをシリアル転送することで、RGB各々6ビットの64階調に抑制することも容易である。
ところで、図7に示す通り、表示装置DSには、上記したLVDS信号とは別に、画像インタフェイス基板28から、2種類の直流電圧(12V,3.3V)とPWM制御信号VBRとが伝送されている。
ここで、直流電圧3.3Vは、LVDS受信部81を含む表示装置DSの電子回路の電源電圧であり、低い電源電圧によって低電力化を図っている。一方、直流電圧12Vは、LEDランプで構成された液晶バックライト部BLの電源電圧である。本実施例では、複数個が直列接続されたLEDランプによってバックライト部BLを構成し、冷陰極管を使用しないので、回路構成の簡素化と低電力化と高性能化を実現することができる。
逆に、冷陰極管を使用するには、直流32V程度の高電圧を、周波数30kHz〜45kHz程度で1000V程度の交流電圧に変換するインバータ回路が必要であり、設置スペースが大きく、消費電力が高い上に(数W程度)、ノイズ源となっていたが、本実施例では、これらの問題が全て解消される。
すなわち、本実施例のバックライト部BLは、12Vの直流駆動であるのでノイズ源とならず、また、インバータ回路も不要であり、消費電力も半分以下に低減される。
また、本実施例の表示装置DSには、12Vの直流電圧を受けて複数のLEDランプに40〜65mA程度の駆動電流を供給する駆動回路が内蔵されている。この駆動回路は、PWM制御信号VBRによって、LEDランプの調光を制御可能に構成されており、例えば、遊技客が着席していない遊技機については、バックライトを消灯させることもでき、この意味でも省電力化が実現される。
なお、実施例のPWM制御信号VBRは、3.3Vレベルの電圧振幅を有し、デューティ比を0〜100%の範囲で任意に設定できるよう構成されている。そして、通電状態のLEDに、規定電流(40〜65mA)を流した状態で、デューティ比を適宜に変化させることで、バックライトの輝度を所望レベルに変更することができる。
以上、本実施例の遊技機のハードウェア構成について説明したので、続いて、演出制御部22や画像制御部23’のワンチップマイコンMCによって実現される制御動作について説明する。
図14は、主制御部21から受ける制御コマンドCMDに基づいて演出動作を実行する演出制御部22の動作を説明するフローチャートである。なお、開発段階や、不具合検査時などに、検査装置EXから検査用の制御コマンドCMD(テストコマンドTST)を受ける場合もある(図3、図8参照)。
図示の通り、演出制御部22は、CPUがリセットされて開始されるメイン処理(a)と、ストローブ信号STBによって起動される受信割込み処理(b)と、10mS毎に起動される第1タイマ割込み処理(c)と、2mS毎に起動される第2タイマ割込み処理(d)と、を含んで構成されている。
図14(c)に示す通り、第1タイマ割込み処理では、割込みフラグをON状態にセットして処理を終える(ST32)。また、図14(d)に示す通り、第2タイマ割込み処理では、電飾ランプを駆動するランプ演出処理(ST33)と、必要に応じて演出可動体を駆動する演出モータ処理(ST34)とが2mS毎に実行される。
図14(a)に示す通り、メイン処理(CPUリセット処理)では、ワンチップマイコン40内部の初期設定を実行した後(ST10)、バックアップ判定処理を実行する(ST11)。バックアップ判定処理とは、バックアップ処理(ST28)において保存されたデータの正当性を判定する処理である。バックアップ処理(ST28)において保存されるデータは、特に限定されないが、例えば、(1)RAM領域の所定データに対するチェックサム演算のサム値、(2)RAM領域に離散的に保存された特定データ、(3)RAM領域の所定データを別の領域に保存したバックアップデータなどを例示することができる。
このようなバックアップデータについての判定において、正当性が確認できない場合には、RAMの全領域を初期化することで、演出制御部22をコールドスタートさせるべくステップST13の処理に移行させる(ST12)。
ところで、主制御部21や払出制御部24と異なり、演出制御部22にはバックアップ電源が設けられていないので、バックアップ判定処理(ST11)において、正当データが検出できる可能性がないとも思われる。しかし、CPUがリセットされるのは、電源投入に対応する電源リセット時だけでなく、ノイズやウォッチドッグタイマによってCPUリセット信号がアクティブレベルとなる異常リセット時もある。
そこで、本実施例では、CPUの異常リセット時に、可能な限り、それまでの遊技動作を継続して、演出制御部22の動作をホットスタートさせるべく、バックアップ判定処理(ST11〜ST12)を設けている。
但し、バックアップ判定処理(ST28)では全てのデータを判定する訳ではないので、CPUが繰り返し異常リセットされる場合には、演出制御部22の動作を初期状態に戻すべきである。そこで、異常リセット回数をカウントするべく異常カウンタをインクリメント(+1)処理し(ST14)、異常カウンタの値が所定値(例えば2)を超えた場合には、コールドスタートさせるべくステップST13のRAMクリア処理に移行させている(ST15)。
以上の通り、CPUが異常リセットされた場合でも、バックアップ判定(ST11)で正当判定され、且つ、異常リセット回数が所定値以下であれば、演出制御部22がホットスタートされて、それまでの遊技動作が継続される。
次に、演出制御部22が、ホットスタートしたか、コールドスタートしたかに拘わらず、適宜に移動して予告演出などを実行する役物について、その動作位置を初期設定する(ST16)。そして、音声再生出力回路(音声再生IC)42について、必要な初期設定を実行する(ST17)。その後、ワンチップマイコン40のCPUを割込み許可状態に設定した後(ST18)、乱数値を更新しつつ(ST19)10mS間隔のタイマ割込みを待機する(ST20)。なお、更新される乱数値は、演出動作をランダム化するために演出抽選処理において使用される。
図14(c)に示す通り、10mS間隔でタイマ割込みが生じる毎に、割込みフラグがセットされるので(ST32)、メイン処理のステップST20の処理では、割込みフラグがONになるのを繰り返しチェックする。そして、割込みフラグがONとなると、これをOFFにリセットした後に、タイマ更新処理を実行する(ST21)。
続いて、受信割込み処理(図14(b))で受信された制御コマンド(受信コマンド)について、コマンド解析処理が実行される(ST22)。なお、受信コマンドには、変動パターンコマンドや、図柄変動動作の停止タイミングを規定する停止コマンドなどが含まれている。
そして、新規に受信した制御コマンドが、変動パターンコマンドである場合には、演出抽選を実行して、抽選結果によって特定される演出コマンドを画像制御部23’に送信する共に、演出コマンドによって特定される演出動作を開始するべく必要なフラグ設定処理を実行する。また、停止コマンドを受信した場合には、これを画像制御部23に転送する共に、演出停止のための必要なフラグ設定処理を実行する。
また、各制御基板22,23に搭載された不揮発性メモリの記憶内容が正常か否かを検査するためのテストコマンドTSTを、検査装置EXから受信する場合もあるが、その時の動作については、図15に基づいて後述する。
そして、コマンド解析処理(ST22)が終われば、次にエラー処理(ST23)や、チャンスボタン11についての入力処理(ST24)を、必要に応じて実行する。また、ランプ演出(ST33)や演出モータ処理(ST34)や音声演出(ST26)についての演出シナリオを作成又は更新する(ST25)。次に、作成または更新された演出シナリオに基づいた音声演出が実行される(ST26)。
続いて、ウォッチドッグタイマWDTのクリア処理(ST27)とバックアップ処理(ST28)を実行した後にステップST18の処理に移行する。なお、バックアップ処理としては、例えば、チェックサム演算だけでなく、特定データを離散的に保存する処理や、ワーク領域の全データのバックアップ保存する処理などが例示される。
図15は、コマンド解析処理(ST22)のうち、特に、テストコマンドTSTを受信した場合の動作を説明するフローチャートである。この実施例では、テストコマンドTSTが受け付け可能なタイミングは、CPUリセット後、通常の制御コマンドCMDを受信する前に限定されており、通常の制御コマンドCMDを受信すると、その後に受信したテストコマンドTSTを無視するよう構成されている。
このような動作を実現するため、動作モードフラグFLGが用意されており、CPUリセット時にFLG=0に設定されることで、テストコマンドTSTが受け付け可能な初期状態となり、その後、通常の制御コマンドCMDを受信すると、動作モードフラグFLG=2となって、その後のテストコマンドTSTの受け付けが禁止される。なお、動作モードフラグFLG=1は、演出制御部22で算出した2バイト長のチェックサム値について、その1バイト目を画像制御部23’に伝送し終えたこと、したがって、続いて、2バイト目を伝送すべきことを意味している。
以上を踏まえて、図15の処理を説明すると、最初に、動作モードフラグFLGが1か否かが判定される(ST40)。なお、この処理は、新規の制御コマンドを受信しているか否かに拘らず実行される。そして、動作モードフラグFLG=1であって、チェックサム値の上位1バイトが画像制御部23’に伝送された後である場合には、ステップST54に移行して、チェックサム値の下位1バイトを伝送する。
一方、動作モードフラグFLG≠1の場合には、通常コマンドCMDかテストコマンドTSTかに拘らず、新規の制御コマンドを受信したか否かが判定され(ST41)、未処理の制御コマンドが存在する場合には、次に、これがテストコマンドTSTか否かが判定される(ST42)。
この実施例では、テストコマンドには各種のものが用意されており、例えば、(1)LEDを全点灯させる、(2)LEDを全消灯させる、(3)LEDを所定の点灯パターンで点灯させる、(4)所定の演出モータに所定の動作を実行させる、(5)演出制御部22のROMをチェックする、(6)画像制御部23’のROMをチェックする、などの動作を指示するコマンドが含まれている。
また、演出制御部22のROMチェックを指示するテストコマンドには、演出制御部22のフラッシュメモリ41の制御プログラムPGMe及び演出データENと、画像制御部23’のフラッシュメモリ61の制御プログラムPGMgと、CGROM63(CG1〜CG4)について、各チェックサム値を、各々、表示装置DSに表示することを指示するテストコマンドTSTaが含まれている。
また、テストコマンドTSTaに代えて、制御プログラムPGMeのチェックサム値を表示装置DSに表示することを指示するテストコマンドTSTbや、演出データENのチェックサム値を表示装置DSに表示することを指示するテストコマンドTSTcを、検査装置EXから受けることもある。
そこで、ステップST42の判定によって、通常の制御コマンドCMDを受けたと判定される場合には、動作モードフラグFLGをFLG=2にした上で(ST58)、制御コマンドCMDに対応する処理を実行する。
そして、ステップST58の処理で、動作モードフラグFLG=2となったことにより、その後は、テストコマンドTSTの受信が無視される。具体的には、テストコマンドの処理に先行して、動作モードフラグFLGの値が判定され(ST43)、もしFLG=2であれば、そのままサブルーチン処理を終える。
一方、FLG≠2の場合には、続いて、所定のテストコマンドTSTaを受けたか否かが判定され(ST44)、テストコマンドTSTaを受信している場合には、受信コマンドTSTaを画像制御部23’に転送した上で(ST45)、動作モードフラグFLGをFLG=1にして(ST46)、ステップST49の処理に移行する。
転送されるテストコマンドTSTaは、画像制御部23’にとっては、画像制御部23’のROMチェックを指示するコマンドである。そして、このテストコマンドTSTaを受けた画像制御部23’では、画像制御部23’で算出された全チェックサム値(五種類)に加えて、その後、演出制御部22から伝送されるチェックサム値(二種類)を表示装置DSに表示することになる。
一方、演出制御部22では、ステップST44の処理で、テストコマンドTSTaを受けていないと判定される場合には、次に、テストコマンドTSTbを受けたか否かが判定される(ST47)。そして、テストコマンドTSTbを受信している場合には、テストコマンドTSTbを画像制御部23’に転送する(ST48)。
テストコマンドTSTbは、制御プログラムPGMeのチェックサム値に関する指示であるので、これを受けた画像制御部23’では、その後、演出制御部22から伝送される制御プログラムPGMeのチェックサム値を表示装置DSに表示することになる。
一方、演出制御部22では、ステップST48の処理に続いて、制御プログラムPGMeのチェックサム演算を実行して、チェックサム値を算出する(ST49)。先に説明した通り、チェックサム演算は、1バイトの加算演算であって、加算結果(チェックサム値)は2バイト長である。
そこで、演出制御部22では、チェックサム値の上位1バイトと下位1バイトを、時間順次に画像制御部23’に送信する(ST50〜ST51)。具体的には、先ず、4桁16進数で、DC**を画像制御部23’に伝送し、その後、DD**を画像制御部23’に伝送する。ここで、**は、チェックサム値の上位1バイト又は下位1バイトである。
ところで、ステップST47の処理で、テストコマンドTSTbを受けていないと判定される場合には、テストコマンドTSTcを受けたか否かが判定される(ST52)。そして、テストコマンドTSTcを受信している場合には、テストコマンドTSTcを画像制御部23’に転送する(ST53)。
テストコマンドTSTcは、演出データENのチェックサム値に関する指示であるので、これを受けた画像制御部23’では、その後、演出制御部22から伝送される演出データENのチェックサム値を表示装置DSに表示することになる。
一方、演出制御部22では、ステップST53の処理に続いて、演出データENのチェックサム演算を実行して、2バイト長のチェックサム値を算出する(ST54)。そして、チェックサム値の上位1バイトと下位1バイトを、時間順次に画像制御部23’に送信する(ST55〜ST56)。
具体的には、先ず、4桁16進数で、DE**を画像制御部23’に伝送し、その後、DF**を画像制御部23’に伝送する。なお、ここでも、**は、チェックサム値の上位1バイト又は下位1バイトを意味する。そして、動作モードフラグFLGをFLG=0にして、サブルーチン処理を終える(ST57)。
一方、上記したテストコマンド以外を受信している場合には、ステップST52の判定の後に、その指示に対応する処理を実行する。処理内容は、適宜に決定されるが例えば、ランプ演出に関して、LEDの各種動作テストや、可動役物演出に関して、モータやソレノイドの各種動作テストや、音声演出に関して音声動作テストなどを例示することができる。なお、テストコマンドの個数や、各テストコマンドを受けた場合の動作内容は適宜に決定され、例えば、図19に示す動作が考えられる。
以上、演出制御部22について詳細に説明したので、次に、画像制御部23’の動作について説明する。画像制御部23’は、CPUがリセットされて開始されるメイン処理(図16(a)と、ストローブ信号STB’によって起動される受信割込み処理(不図示)と、ROMエラー割込み(図16(c))と、Vブランク割込みと、を含んで構成されている。
図16(a)に示す通り、CPUがリセットされて開始されるメイン処理では、先ず、初期化処理が実行される(ST61)。なお、CPUリセットには、電源リセットだけでなく、ノイズやウォッチドッグタイマWDTによって、CPUリセット信号がアクティブレベルとなる異常リセットも含まれる。
初期化処理の具体的内容は、図16(b)に示す通りであり、先ず、CPUリセットが、電源投入によるものか否かが判定される(ST70)。次に、異常カウンタの値が判定され(ST71)、もし異常カウンタの値が3以上であれば、ステップST72〜ST77に示すコールドスタート処理が実行される。
具体的には、先ず、ワンチップマイコン60の各部が初期化され(ST72)、内蔵RAMのCPU用ワークエリアがゼロクリアされる(ST73)。CPUのワークエリアには、一連の画像演出(図柄変動動作)を管理するフラグ値やカウンタ値が確保されているので、これらがゼロクリアされることで、画像演出は完全に初期化される。
次に、VDP62の動作を規定するフラグ値やカウンタ値が格納されているVDP用ワークエリアについても、全てがゼロクリアされ、VDP62の内部レジスタや、VRAM(Video RAM) や、その他についても初期化される(ST74〜ST77)。その結果、表示装置DSは、電源投入時と全く同じ初期状態の表示内容となる。
一方、ステップST71の判定において、異常カウンタの値が3未満であれば、上記したコールドスタート処理に代えて、ステップST78〜ST82に示すホットスタート処理が実行される。
ホットスタート処理では、先ず、異常カウンタがインクリメント(+1)され(ST78)、ワンチップマイコン50の各部が初期化される(ST79)。但し、CPUのワークエリアは、ゼロクリアされることなく、CPUリセット前のデータがそのまま維持される。
VDP62についても同様であり、VDP用ワークエリアをゼロクリアすることなく、内部レジスタなどが初期化される(ST80)。但し、VRAMは初期化されるので(ST81)、表示装置DISPについては、CPUリセット前の画面が、とりあえず一瞬だけ消滅する。もっとも、ホットスタートによって、それまでの画像演出が、適当なタイミングまで遡って再実行されるので(ST82)、特に問題は生じない。
以上のような初期化処理(ST61)が終われば、ウォッチドッグタイマをクリアした上で(ST62)、画像演出の進行を管理する各種のタイマを更新し(ST63)、演出制御部22から伝送された制御コマンドCMD’について、コマンド解析処理を実行する(ST64)。演出制御部22から伝送される制御コマンドCMD’(演出コマンドを含む)やテストコマンドTSTa〜TSTcは、不図示の受信割込み処理によって取得され受信バッファに格納されている。
そこで、新規に受信した制御コマンドCMD’の種別を解析した上で(ST64)、その制御コマンド種別に対応するコマンド別処理が実行される(ST65)。コマンド別処理(ST65)には、停止コマンド受信時に実行される変動停止処理や、変動パターンコマンド(演出コマンド)に対応する演出コマンド受信時に実行される変動開始処理や、予告コマンド受信時に実行される予告処理や、大当り状態の演出を開始するための大当り開始処理などが含まれている。
また、演出制御部22からテストコマンドを受けた場合には、図17の処理が実行される。以下、図17に基づいて説明する。何らかの制御コマンドを新規に受信したか否かが判定された後(ST90)、テストコマンドTSTaを受信したか否かが判定される(ST91)。
そして、テストコマンドTSTaの転送を受けている場合には、VDP62の所定レジスタに、演算開始アドレスと演算終了アドレスと演算方法とを書き込むことで、VDP62に対して、CGROM63(CG1〜CG4)のチェックサム演算を指示し、該当レジスタに算出されたチェックサム値を表示装置DSに表示する(ST92)。
図10に関して説明した通り、所定の設定レジスタに、ワンチップマイコン60からの指示が書き込まれると、VDP62は、CGROM63の記憶データについて8ビット単位の加算演算を実行して、その加算結果を2バイト長で所定のレジスタRsL,RsHに保存する。なお、詳細には、先ずメモリCG1とCG2について、16ビット×2個の加算結果を得て、表示装置DSに表示し、次に、メモリCG3とCG4について、16ビット×2個の加算結果を得て、表示装置DSに表示する。
次に、画像制御部23’のフラッシュメモリ61(制御ROM)について、ワンチップマイコン60自身で、上記と同様の加算演算を実行して、その加算結果を表示装置DSに表示する(ST93)。その結果、図17の下欄に例示する通り、表示画面の下五行には、フラッシュメモリ(PG)61と、CG1と、CG2と、CG3と、CG4のチェックサム値が、各々、16進数4桁で表示される。そのため開発時や、メンテナンス時において、不備のあるROMを確実に特定することができる。
また、ステップST91のNO判定に続いて、テストコマンドTSTbの転送を受けているか否かが判定され(ST94)、テストコマンドTSTbを受けている場合には、演出制御部22のフラッシュメモリ41について、そのプログラム部分(EN−ROM)のチェックサム値を表示するべく、表示装置DSの画面を準備する(ST95)。なお、表示すべきチェックサム値(2バイト長)は、その後、DC**やDD**の形式で、演出制御部22から1バイト毎に送信されてくる。
そして、コマンドDC**や、コマンドDD**を演出制御部22から受けた場合には、表示画面DSにチェックサム値を1バイト毎に順番に表示する(ST98〜ST99)。なお、コマンドDC**や、コマンドDD**は、テストコマンドTSTaの後でも送信されるので、同様の処理を実行する。図17の最上欄には、EN−ROM 0X−−−−として、16進数4桁(1バイト)のチェックサム値(−−−−)が表示されている。
一方、ステップST94がNO判定とされる場合には、テストコマンドTSTcの転送を受けているか否かが判定され(ST96)、テストコマンドTSTcを受けている場合には、演出制御部22のフラッシュメモリ41について、その演出データ部分(ED−ROM)のチェックサム値を表示するべく、表示装置DSの画面を準備する(ST97)。なお、表示すべきチェックサム値(2バイト長)は、その後、DE**やDF**の形式で、演出制御部22から送信されてくる。
そして、コマンドDE**や、コマンドDF**を演出制御部22から受けた場合には、表示画面DSにチェックサム値を1バイト毎に順番に表示する(ST100〜ST101)。なお、コマンドDE**や、コマンドDF**は、テストコマンドTSTaの後でも送信されるので、同様の処理を実行する。図17の最上欄の下には、ED−ROM 0X−−−−として、16進数4桁(1バイト)のチェックサム値(−−−−)が表示されている。
以上の通り、本実施例では、3つのテストコマンドTSTa〜TSTcを備えて構成されているので、必要に応じて、(1)演出制御部22のフラッシュメモリ41のプログラム(EN)チェック、(2)演出制御部22のフラッシュメモリ41の演出データ(ED)チェック、(3)演出制御部22のフラッシュメモリ41のプログラム及びデータと、画像制御部23’のプログラム(PG)及びCGROM(CG1〜CG4)のチェックを、実行することができる。
演出動作の不具合には、(a)演出制御部22のフラッシュメモリ41を原因とするランプ演出異常や音声演出異常、(b)画像制御部23’の制御プログラムを原因とする画像演出異常、(c)CGデータに問題があると思われる画像演出異常など、多種多様であるが、本実施例の構成によれば、テストコマンドTSTa〜TSTcを使い分けることで、不具合の原因を迅速に特定することができる。なお、テストコマンドの種別が、TSTa〜TSTcに限定されないのは勿論であり、図19に示すようにROM素子毎に、記憶内容の異常を個別にチェックする構成を採っても良い。
以上、テストコマンドを受けた場合について説明したが、通常の制御コマンドCMDを受けた場合には、前記した、変動開始処理や、予告処理や、変動停止処理や、大当り開始処理についての画像演出を開始する。
続いて、図16に戻って、コマンド別処理を終えた後の動作を説明する。コマンド別処理(ST65)が終われば、画像演出(図柄変動動作)についての演出シナリオを作成又は更新して(ST66)、Vブランク割込みを待つ(ST67)。Vブランク割込みとは、表示装置DSの垂直同期信号に同期して、VDP62からワンチップマイコン60に供給される割込みを意味する。
そして、Vブランク割込みがあれば、ステップST66の処理で更新された演出シナリオに基づいて、VDP62のレジスタに必要な動作パラメータを書込むことで、画像演出を進行させて(ST68)、ステップST62の処理に戻る。なお、画像演出進行処理(ST68)では、一区切りの演出開始時にエラーカウンタをゼロクリアする。
最後に、図16(c)に基づいてROMエラー割込みについて説明する。先に説明した通り、このROMエラー割込みは、VDP62が、CGROM63からスプライトデータを読み終えたタイミングでチェックサムエラーが生じた時に起動される。
ROMエラー割込みが起動されると、該当するエラーカウンタERiを+1した後、更新後のエラーカウンタERiの値が判定される(SS10〜SS11)。ここで、エラーカウンタERiは、データ異常が認められたスプライトiを特定した14ビットと、エラーカウンタERiとして機能する最下位2ビットとを含んで構成されている。
したがって、特定のスプライトiについて、始めてROMエラー割込みが生じた場合には、そのスプライトについてのエラーカウンタERiが、ステップSS10の処理で生成されて、ワークエリアに格納されることになる。なお、画像制御部23’は、画像演出の進行を統括的に制御しているので、ROMエラーが生じたタイミングのスプライトを特定することができる。
そして、更新後のエラーカウンタERiの下位2ビットが許容値(=1)を超えていない場合には、割込み処理で使用されたスタック領域を開放した後に、制御プログラムの先頭番地にジャンプさせる(SS12)。その結果、その後は、図16(b)に示すホットスタート処理(ST78〜ST82)が実行され、適当なタイミングに遡って画像演出が再実行される。
このような処理を実行するのは、CGROMの読み取りエラーは生じたものの、CGROMそのものが破壊されているのではなく、ノイズなどに起因するビット化けの可能性もあるからである。したがって、各スプライトについて、初回のROMエラー割込みは、許容されることになる。
一方、ステップSS11の判定において、更新後のエラーカウンタERiの下位2ビットが2となって許容値(=1)を超えている場合には、CGROM63そのものが破壊されていると判断して、表示装置DSにエラー報知画面を表示して画像演出を完全に停止する。これは、CGROM63そのものが破壊されていると考えられる以上、遊技機を継続して動作させると異常な画面によって遊技者に不快感を与えるおそれがあるからである。
なお、ここでは、異常スプライトを特定してエラーカウンタERiを更新したが、必ずしも限定されず、単純に、CGROMの読み取りエラーの回数をカウントするのも好適である。この場合には、異常割込みの回数が異常値に達すれば、表示装置DSにエラー報知画面を表示して画像演出を完全に停止すれば良い。これは、何れかのスプライトに異常ビットが存在する旨を報知すれば、その後のメンテナンスが可能となるからである。
そして、このような状態の遊技機は、例えば、メーカ修理の対象となるが、その場合には、検査装置EXを使用することで、異常のあるCGROM(CG1〜CG4)を具体的に特定することができ、迅速に故障修理を終えることができる。
ところで、上記の実施例では、同一構成で、同一グレードのメモリ素子を4個使用してCGROM63を構成したが(CG1〜CG4)、必ずしも限定されない。すなわち、CGROM63の特定ビットが破壊される場合でも、その破壊が致命的な場合と、そうでない場合があるので、この点を踏まえた回路構成を採るのも好ましい。
具体的には、CGデータのうち、パターンアトリビュート(ヘッダ部)の破壊は致命的であるが、パターンデータ(本体部)は、それほどでもなく、特に、パターンデータが圧縮されていない場合には、1ビットの破壊は事実上問題にならない可能性が高い。そこで、ヘッダ部と本体部とをメモリ素子上で分離して、ヘッダ部を信頼性の高いメモリ素子に記憶し、本体部を通常のメモリ素子に記憶させるのが好適である。
図18は、このような構成を示すブロック図であり、この実施例では、VDP62とCGROM63(CG1〜CG4)とは、23ビット長のROM用アドレスバスと、32ビット長のROM用データバスとで接続されている。また、CE0〜CE3は、各メモリ素子CG1〜CG4を選択するためのチップイネーブル信号である。そのため、CG1〜CG4を独立的にアクセスすることができる。
また、ROM用アドレスバスを使用するので、ランダムアクセスを実行しても何ら支障が生じない。そこで、この実施例では、全てのスプライト情報について、そのヘッダ部をメモリCG1に配置する一方、全てのスプライトの本体部データを、その他のCG2〜CG4の適所に配置している。そして、ヘッダ部には、前記したアトリビュート情報と、チェックサムデータに加えて、当該スプライトの本体部データの先頭アドレス情報が記憶されている。先に説明した通り、メモリCG1は高価ではあるが信頼性が高いので、これらのヘッダ情報が破壊される可能性が低く、不自然な画像演出が出現される可能性が大幅に軽減される。
なお、この実施例では、CGROM63に記憶されている全スプライトのヘッダ情報は、最初にメモリCG1がアクセスされた後、SDRAM64の常駐領域に記憶させるのも好適である。このような構成を採ると、表示すべきスプライトが変更される毎に、メモリCG1をアクセスする無駄がなく、必要なCGデータを迅速に取得することができる。
但し、この構成の場合には、常駐領域に記憶されたヘッダ情報は、適宜なタイミング(少なくとも、ROMエラーが発生したタイミング)では、メモリCG1から読み直すよう構成される。そのため、SDRAM64のヘッダ情報が、万一、ビット化けすることがあっても問題は生じない。また、SDRAM64にヘッダ情報を常駐させる構成を採ると、メモリCG1に対するランダムアクセスの回数を大幅に抑制できるので、VDP62と、メモリCG1〜CG4とを、ROM用アドレスバスを使用することなく接続することができる。すなわち、ROM用アドレスバスを使用する図18の回路構成に代えて、ROM用アドレスバスを使用しない図8の回路構成を採ることができる。
以上説明した本発明の実施例によれば、製品開発時や故障修理時などの任意のタイミングで、メモリ(ROM)のデータをチェックできるので、音声データや画像データなどを記憶するメモリが正常に動作しているか否かの動作試験を簡素化することができる。また、故障修理時において、問題のある電子部品を迅速に特定することができる。
なお、実施例で説明した具体的な記載内容は、特に本発明を限定するものではなく適宜に変更可能である。また、本発明の適用は、必ずしも、弾球遊技機に限定されないのは勿論である。