以下、実施例に基づいて本発明を詳細に説明する。図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には、ワンチップマイコン(MC)を備えるコンピュータ回路がそれぞれ搭載されている。そこで、これらの制御基板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’は、音声演出・ランプ演出・演出可動体による予告演出・データ転送などの処理を実行するワンチップマイコン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に示す通り、ワンチップマイコン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状態の制御データを保持したままであり、通常は、ワンチップマイコン40から、制御データの転送を受ける必要がない。しかし、この本実施例の制御駆動部は、アドレス番号ADRiを特定して制御データDiを受けるので、繰り返しシリアル信号が転送されても、アドレス番号で指定されない駆動制御部54には何の影響も与えない。
したがって、本発明の構成によれば、動的なランプ演出を継続的に繰り返すランプ制御用の駆動制御部55・・55と、稀にしか予告動作を開始しない可動予告演出用の駆動制御部54とを同一構成とすることができる。しかも、ワンチップマイコン40は、モータ駆動信号をランプ駆動信号に付加するか否かを判定する以外は、モータ駆動信号とランプ駆動信号とを同列に扱うことができるので、ワンチップマイコン40の制御負担を軽減することができる。
また、ランプ制御用の駆動制御部55・・55の全部又は一部を、同一アドレス値に設定することで、多数のランプに関する点灯データ(制御データ)の転送処理を纏めることができ、演出制御部22の制御負担が軽減される。例えば、遊技機の右側と左側のランプ群を、常に、同一態様で発光させる場合には、右側のランプ群を駆動する駆動制御部55Rと、左側のランプ群を駆動する駆動制御部55Lとを、同一アドレス値に設定するだけで、点灯データの転送処理を一回で終えることができる。
図7は、画像制御部23’(画像インタフェイス基板28と画像制御基板23)について、その周りの基板も含めて詳細に図示した回路ブロック図である。また、図8は、演出制御基板22と画像制御基板23について、特に、メモリ(ROM/RAM)と、マイクロプロセッサ(ワンチップマイコン)との接続関係を図示したブロック図である。先に説明した通り、画像制御部23’は、演出制御部22’から制御コマンドCMD’とストローブ信号STB’とシステムリセット信号SYSとを受けて動作している。また、演出制御部を経由して2種類の直流電圧5V,12Vを受けている。
図7に示す通り、画像制御部23’は、演出インタフェイス基板27を経由して制御コマンドを受信して画像制御動作を実行するワンチップマイコン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には、作業領域として活用されるVRAM77も内蔵されている。
CGROM63の画像圧縮データは、詳細には、動画圧縮データと静止画圧縮データに区分される。ここで、静止画とは、いわゆるスプライト画像であって、背景画や特別図柄やキャラクタなどを実現する単一の画像である。そして、表示装置DSの所定位置に、所定の姿勢で1フレーム毎に描画される。一方、動画とは、連続的に変化する複数枚(複数フレーム分)の静止画の集合を意味し、表示装置DSに、複数枚の静止画が連続して描画されることで、円滑な移動動作が再現される。
これらの圧縮データは、VDP62の内部回路でデコードされ、デコード後の画像データは、適宜な変換処理を経た上で、SDRAM64または内蔵VRAM77に確保されたフレームバッファに格納され、これが表示装置DSに出力されるようになっている。なお、これらの描画動作については図12に基づいて更に後述する。
VDP62には、SDRAM用のインタフェイス回路(SDRAM _I/F)と、CGROM用のインタフェイス回路(ROM _I/F)と、ワンチップマイコン用のインタフェイス回路(CPU _I/F)とが内蔵されている(図12参照)。そして、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に示すウォッチドッグタイマ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を設けることで、多数の直流電圧を最適なタイミングで各素子に供給している。図11は、電源シーケンサ65の一例としてLM3881(national semiconductor)の内部構成(a)と、電源シーケンサ65を使用した場合にも実行される動作タイムチャート(b)を図示したものである。
図11(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レベルとなることを条件に電圧変換動作を開始する。
そのため、図11(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は、円滑に初期設定動作を開始することができる。
図12(a)は、VDP62の内部構成を示すブロック図であり、VDP62と、CGROM63、DDR2タイプのSDRAM64、及びワンチップマイコン60(以下、ホストCPU60と言う)との接続関係も含めて図示している。また、図12(b)は、VDP62の動作を示す機能ブロック図であり、図12(c)は、VDP62の動作手順を示す図面である。
図12(b)に示す通り、VDP62からホストCPU60に、VBlank割込み信号が伝送されており、通常1/60秒毎に生じるVBlank割込み信号に基づいて、ホストCPU60は、表示装置DSの1フレーム分の表示動作が終わったことが把握できるよう構成されている。
図12(a)や図12(b)に示す通り、VDP62は、ホストCPU60によってコマンドリストが書込まれるコマンドメモリ70と、ホストCPU60からアクセスされるシステム制御レジスタ71と、コマンドリストを解析するコマンドパーサ(構文解析器)72と、静止画圧縮データをデコードする静止画デコーダ73と、動画圧縮データをデコードする動画デコーダ74と、デコーダでデコード(伸張)された画像について、拡大・縮小・回転・移動などのアフィン変換や投影変換などを実行するジオメトリエンジン80と、表示装置DSに出力可能な画像データを生成するレンダリングエンジン81と、LCD(Liquid Crystal Display)の各種の信号を生成するディスプレイコントローラ82,83と、信号出力部(LVDS送信部75及びDRGB送信部76)と、を有して構成されている。
システム制御レジスタ71は、VDP62に対する指示データなどをホストCPU60が書込む入力レジスタ群と、VDP62の動作状態などを示す情報をホストCPU60が読み出す出力レジスタ群と、に大別される。そして、ホストCPU60は、適宜な入力レジスタに、必要な設定値を書き込むことで、VDP62を適宜に動作させ、必要な出力レジスタの値を参照することで、VDP62の動作状態を把握している。
VDP62の描画動作は、ホストCPU60がコマンドメモリ70に書き込んだコマンドリストを、コマンドパーサ72が解析することで毎フレーム実行される。この描画動作のため、本実施例では、静止画圧縮データをデコードして一時保存するスプライトバッファSPBが、内蔵RAM77に確保され、動画圧縮データをデコード(伸張)して一次保存するムービーバッファMVBが、SDRAM64に確保されている。すなわち、静止画デコーダ73は、コマンドパーサ72によるコマンドリストの解析結果に基づいて、所定の静止画圧縮データをデコードして、デコード結果をスプライトバッファSPB(内蔵RAM77)に格納する。また、動画デコーダ74は、コマンドパーサ72によるコマンドリストの解析結果に基づいて、所定の動画圧縮データをデコードして、デコード結果をムービーバッファMVB(SDRAM64)に格納する。
このようにして伸張された静止画や、動画一フレーム分の静止画は、スプライトバッファSPBやムービーバッファMVBにおいて、コマンドリストで指示された内容に基づき、ジオメトリエンジン80が、拡大・縮小・回転・移動などのアフィン変換や、投影変換などの処理を施す。そして、その後、レンダリングエンジン81が機能して、スプライトバッファSPBやムービーバッファMVBのデータが、SDRAM64か又は内蔵RAM77に確保されたフレームバッファFLBに纏められる。
本実施例ではフレームバッファFLBを内蔵RAM77に確保するが、DDR2タイプのSDRAM64を使用しているので、フレームバッファFLBをSDRAM64に確保しても処理速度上の問題が生じない。
何れのメモリ64,77に確保された場合でも、フレームバッファFLBは、ダブルバッファ構造を有しており、一方が表示用バンクとして機能し、他方が描画用バンクとして機能し、その機能を毎フレーム毎に切り替えて動作している。なお、表示用バンクの画像データが表示装置DSに出力され、描画用バンクには、レンダリングエンジン81によって画像データが書き込まれる。
次に、以上の説明を、図12(b)〜図12(c)に基づいて整理しておく。ホストCPU60は、例えば、VBlank割込み(t1)に起因して、コマンドメモリ70にコマンドリストを書き込む(t2)。次に、ホストCPU60は、コマンドリストの開始アドレスやその他の制御情報をシステム制御レジスタ71に設定することでVDP62の描画動作を開始させる(t3)。
すると、この描画開始の指示に対応して静止画デコーダ73や動画デコーダ74が動作し、コマンドメモリ70のコマンドリストに基づいて、CGROM63の圧縮データが読み出され、デコード結果が、スプライトバッファSPBや、ムービーバッファMVBに展開される(t4,t4’)。
次に、コマンドリストに基づいて、スプライトバッファSPBやムービーバッファMVBのデータに対して、ジオメトリエンジン80が座標演算を実行し、その演算結果に基づいて、レンダリングエンジン81が描画動作を実行する。そして、描画結果は、フレームバッファFLBの描画バンクに書き込まれる(t5)。
次に、フレームバッファFLBの描画バンクと表示バンクを切り換えると(t6)、その後、ディスプレイコントローラ82が機能して、フレームバッファFLB(表示バンク)の画像データに基づいて、出力信号が生成され表示装置DSに出力される(t7)。なお、本実施例では、LVDS _I/F部75を経由してLCDたる表示装置DSが駆動されている。
以上、VDPの動作手順を説明したので、続いて、図13に基づいてコマンドリストについて説明する。コマンドリストは、VDP62(コマンドパーサ72)に対する指令を列記したコマンド列であるが、その記載内容や記載順序が、静止画の描画を指示する場合と、動画の描画を指示する動作とでやや相違する。
静止画の描画をVDPに指示するコマンドリストの場合には、図13(a)に示す通り、先ず、フレームバッファFLBやスプライトバッファSPBのメモリ領域を具体的に設定する(S1)。なお、先に説明した通り、この実施例では、スプライトバッファSPBと、フレームバッファFLBが内蔵VRAM77に設定され、バッファサイズは、スクリーンサイズ(例えば、640×320)に対応して設定される。
次に、静止画のデコードを指示する(S2)。デコード指示は、具体的には、どの静止画圧縮データをデコードするかの指示であり、対象スプライトを記憶するCGROM63の先頭アドレスやデータサイズなどを指示して実行される。なお、本実施例では、スプライトバッファSPBのメモリ領域を適宜に設定できるので、例えば、高頻度で使用する静止画を、予め、特別なスプライトバッファ領域にデコードしておくこともできる。
このようにして、所定の静止画(スプライト)についてのデコード指示がされた後、デコードされた伸張データを、表示装置DSのどの座標位置に、どのような態様(回転角度や縮小拡大など)で描画するかを描画指示する(S3)。そして、バンクフリップなどの終了処理用コマンドを記入すれば(S4)、特定のスプライトについてのコマンドリストが完了する。なお、バンクフリップとは、描画バンクと表示バンクを切り替えることを意味する(図12(c)t6参照)。
ところで、描画すべきスプライトが複数個存在する場合には、複数個のスプライトについて、デコード指示(S2)と描画指示(S3)とが繰り返し実行される。なお、このような場合、描画位置が重複する場合があるが、最初に描画された画像の優先度が最低となり、最後に描画された画像が最高優先度となる。また、先に説明した通り、上書きされない特別なスプライトバッファ領域にデコードされた伸張データは、デコード済み静止画の描画指示に基づいて、繰り返し使用することもできる。
動画の描画をVDPに指示するコマンドリストの場合には、図13(b)の初期コマンドリストと、図13(c)の定常コマンドリストの構成となる。
図13(b)に示す通り、動画の場合も、最初に、フレームバッファFLBやムービーバッファMVBのメモリ領域を具体的に設定する(S11)。先に説明した通り、この実施例では、ムービーバッファMVBがSDRAM74に設定され、フレームバッファFLBは、内蔵VRAM77に設定される。なお、フレームバッファFLBのバッファサイズは、スクリーンサイズ(例えば、640×320)に対応して静止画の場合と同一に設定される。
次に、動画のデコードを指示する(S12)。デコード指示は、具体的には、どの動画圧縮データをデコードするかの指示であり、該当する動画を記憶するCGROM63の先頭アドレスを、その動画を特定するムービーIDや、その動画の総フレーム数などと共に指示する。そして、終了処理用コマンドを記入して初期コマンドリストを終える(S13)。
この初期コマンドリストが実行されると、一連の静止画の構成された動画圧縮データがデコードされて、伸張データがムービーバッファMVBに展開される。そこで、描画すべきフレーム番号についてのデコードが完了した後、ホストCPU60は、図13(c)の定常コマンドリストを、コマンドメモリ70に発行する。
定常コマンドリスト(図13(c))は、動画を構成する一連の静止画についての描画指示で構成されており、具体的には、ムービーIDで特定される動画について、どのフレーム番号の伸張データを、表示装置DSのどの座標位置に描画するかを描画指示する(S14)。そして、終了処理用コマンドを記入すれば(S14)、特定の動画についての定常コマンドリストが完了する。
その後、ホストCPU60は、同一のムービーIDについて、フレーム番号を更新した定常コマンドリストを繰り返しコマンドメモリ70に発行すればよく、動画の再生は、初回分のコマンドリスト(初期コマンドリスト)と、その後、フレーム数分の複数回のコマンドリスト(定常コマンドリスト)とで実現される。
図14は、上記した動作をして画像データを生成するVDP62と、表示装置DSとの接続関係について、LVDS送信部75をより詳細に図示したものである。図示の通り、本実施例の表示装置DSは、VDP62のLVDS送信部(LVDS _I/F)75に対応するLVDS受信部(LVDS _I/F)81を内蔵して構成されている。
図14(a)に示す通り、LVDS _I/F部(LVDS送信部)75は、RGBデータ24ビットを含んだパラレルデータを、LVDS(low voltage differential signaling)信号に変換する部分である。LVDSとは、RGBデータなどを低ノイズ、低電力で高速伝送するための低電圧差動伝送方式を意味し、本実施例では、一対の信号伝送ライン(1本のツイストペア線)に数mAの程度の低レベルの信号電流を送信側から供給する一方、この信号電流を受信側に設けた100Ω程度の終端抵抗で受ける構成を採っている。したがって、電圧振幅は、数100mV程度の低レベルであるが、論理レベル(H/L)に対応して電流方向を代えることで確実な信号伝送を実現している。
そして、この実施例では、図14(a)に示す通り、全24ビット長のRGB信号(各8ビット長)と、水平/垂直同期信号とを含んだ合計28ビット長のパラレルデータ(TA0〜TA6,TB0〜TB6,TC0〜TC6,TD0〜TD6)を、LVDS送信部75において、4対の差動信号に変換している。そして、これに、一対の転送クロックの差動信号を加えて、5本のツイストペア線で表示装置DSに伝送している。
なお、図7や図14(a)では、これら4対の差動信号を、表示装置DSの立場から評価して、(RXIN0+,RXIN0−)、(RXIN1+,RXIN1−)、(RXIN2+,RXIN2−)、(RXIN3+,RXIN3+)、(RXCLK+,RXCLK−)と記載している。
図14(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となる。図14(b)に示すシリアルデータ列から明らか通り、パラレルデータRA0〜RA6は、具体的には、R0〜R5と、G0の7ビットであり、その他のパラレルデータも、図14(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)を流した状態で、デューティ比を適宜に変化させることで、バックライトの輝度を所望レベルに変更することができる。
以上、画像制御部23’のハードウェア構成を中心に説明したので、続いて、画像制御部23’で実行される画像制御動作について具体的に説明する。
実施例の遊技機では、演出コマンドCMD”を受信した画像制御部23’によって実行される一連の画像演出は、画像演出用の演出コマンドCMD1”〜CMDn”に対応して設けられた演出進行テーブルPr _TBL1〜Pr _TBLnによって管理されている。
ここで、演出進行テーブルPr _TBLは、一連の画像演出を、時間軸上で適宜に区分した区分演出ENi(EN1〜ENn)について、各々の開始時間Tiを規定している。演出進行テーブルPr _TBLは、例えば、図15(a)に示す通りであり、各区分演出ENiについて、一連の演出動作の開始時からの開始タイミングTiと、具体的な演出内容を規定する演出テーブルDi _xyを特定するインデックス情報INXxyと、を記憶して構成されている。なお、一連の演出動作の開始時からの経過時間は、演出タイマTMRで計測される。
図15(b)及び図15(c)は、特定の演出コマンドCMD”を受信すると実行される画像演出を例示したものであり、図15(a)に示す演出進行テーブルPr _TBLに基づいて実現される。
図15(b)に示す一連の画像演出は、3つの図柄の変動開始から、左右の図柄がリーチ状態で停止するまでの区分演出EN1(T0〜T4の開始変動演出)と、これに続く区分演出EN2(T4〜T5のノーマルリーチ演出)と、昇格状態で継続される区分演出EN3(T5〜T6のスーパリーチ演出)と、当選状態を示す区分演出EN4(T6〜T7の最終演出)と、3つの図柄が浮遊する区分演出EN5(T7以降の揺れ変動演出)と、に区分されている。なお、実施例では、区分演出1〜5の演出時間が、互いに重複しないよう構成されているが、特に、限定されるものではない。
図15(c)に示す通り、所定の演出コマンドCMD”を受けた画像制御部23では、タイミングT0から、例えば、左図柄「7」→中図柄「8」→右図柄「4」の順番で、各図柄の回転を開始させ、その後、タイミングT1から3つの図柄を高速回転させた後、タイミングT1+βで予告演出を実行する。そして、タイミングT2で左図柄「2」で停止させ、その後、タイミングT3で右図柄「2」を停止させている。
その後、一連の画像演出として、タイミングT4からノーマルリーチ演出を開始し、タイミングT5から、期待感の高まるスーパリーチ演出に昇格させている。そして、タイミングT6から当選状態を示す最終演出を開始し、その後、タイミングT7から当選状態の停止図柄「3」「3」「3」で揺れ変動演出を実行している。なお、揺れ変動演出は、停止コマンドCMD”を受けることで終了する。
図16(a)は、上記した区分演出ENiを実現するための演出テーブルDi _xyのデータ構造を例示したものである。図示の通り、演出テーブルDi _xyは、自らが規定する区分演出ENiを総合的に特定するテーブルヘッダ情報HDtと、区分演出ENiを実現する単数又は複数の単位演出(UT1〜UTn)について、個々の単位演出UTi毎に、その演出内容を特定するフレーム実データ1〜nとで構成されている。すなわち、この実施例では、区分演出ENiを特定する演出テーブルDi _xyは、Di _xy=HDt+n個のフレーム実データの関係となっている。
図16(a)に示す通り、テーブルヘッダ情報HDtには、その演出テーブルDi _TBLのインデックス情報INXiの他に、その区分演出ENiを実現する総フレーム数TLFや、トータルデータサイズTLDなどが含まれている。ここで、フレーム数TLFとは、表示装置に時間順次に描画される表示画面の個数であり、1/60秒毎に画像を表示する本実施例では、例えば、5分間の区分演出ENを実現する総フレーム数は、5×60×60個となる。したがって、総フレーム数TLFは、当該区分演出ENの演出継続時間を意味することになる。
フレーム実データ1〜nは、当該区分演出ENxを実現する単位演出UTi毎に、その演出内容を特定するデータであり、図16(b)に示す通り、演出ヘッダ情報HDeと、任意個数のシーン情報SNkとで構成されている。すなわち、この実施例では、単位演出UTiを特定するフレーム実データは、HDe+SN1+SN2+・・・SNkの関係となっている。
ここで、演出ヘッダ情報HDeには、その単位演出UTiの開始時間と、単位演出UTiのために使用されるフレームサイズと、単位演出UTiを実現するシーン数(k,l,m)とが含まれており、シーン情報の個数(k,l,m)は、演出ヘッダ情報HDeで特定される(図16(b)参照)。
図16(c)に示す通り、各シーン情報SN1〜SNkは、各々、シーンヘッダ情報HDsと、継続時間及びスプライト情報の組合せで構成されるシーンデータDATAと、で構成されている。なお、シーンデータDATAは、可変長データであり、ENDデータによってデータ範囲が特定される。
そして、シーンヘッダ情報HDsには、(1)シーン情報SNkを構成する画像の統括情報と、(2)画像の縦横サイズを示すサイズ情報と、(3)画像のCGROM63の記憶位置を示すメモリ位置情報やデータサイズなどが含まれている(図16(c)参照)。
そして、画像の統括情報には、当該シーン情報SNkを構成する画像が、一纏まりの動画か、単数又は複数の静止画(スプライト)かの情報や、描画する描画チャンネルCHiや、当該シーン情報を実行した後、演出動作を終えるか、最初から再実行するかのLOOP情報などを特定している。
単位演出UTiが動画で実現される場合、シーンヘッダ情報HDsのデータサイズには、その動画を実現するフレーム数が含まれている。すなわち、動画は、一連複数枚の静止画が連続することで実現されるところ、動画に関するシーンヘッダ情報HDsには、当該動画を実現する静止画の連続枚数(フレーム数)が含まれている。
描画チャンネルCHiは、重複して描画された複数の画像の優先順位を規定するものである。この実施例では、最小チャンネル番号CH0の画像に関するコマンドリストを最初に書き、これに続いて、次チャンネルCH1の画像に関するコマンドリストを書き、その後も同様に、最大チャンネル番号CHmに向けてコマンドリストを書くよう構成されている。そして、VDPは、コマンドリストの順番に、フレームバッファFLBに画像データを重複して記載するので、重ね書きされた画像において、最後に書かれた最大チャンネルCHmの画像が最優先されることになる。
図16(d)と図17(a)には、区分演出EN1(T0〜T4の開始変動演出)の構成を整理して図示している。図17(a)に示す通り、区分演出EN1は、8個の単位演出UT1〜UT8で構成されており、具体的には、区分演出EN1=単位演出UT1(フレーム実データ1)+単位演出UT2(フレーム実データ2)+・・・+単位演出UT8(フレーム実データ8)の関係が成立している。
ここで、単位演出UT1〜UT4、及び、単位演出UT6〜8は、各々、単一のシーン情報SN1・・・SN1で構成されており、単位演出UT1のシーン情報SN1は、背景画像を意味している。一方、他の6個のシーン情報SN1・・・SN1は、全て動画による演出動作を特定して、各々、始動回転A1、始動回転A2、始動回転A3、停止動作A5、停止動作A6、予告演出B1を特定している。
これに対して、単位演出UT5は、3つのシーン情報SN1〜SN3で構成されており、各シーン情報SN1〜SN3は、動画による演出動作を特定して、各々、左図柄と中図柄と右図柄の高速回転(A41,A42,A43)を特定している。
区分演出EN2〜区分演出EN5についても同様であり、各々、図16(e)〜図16(h)及び、図17(b)〜図17(e)に示す通りである。
例えば、区分演出EN2(ノーマルリーチ演出)や、区分演出EN3(スーパリーチ演出)は、各々、1個の単位演出(UT1)で構成されている。そして、区分演出EN2(ノーマルリーチ演出)=単位演出UT1であって、リーチ演出C1を特定するシーン情報SN1と、リーチ図柄(図柄2)を特定するシーン情報SN2とで構成されている(UT1=SN1+SN2)。同様に、区分演出EN3(スーパリーチ演出)=単位演出UT1であって、スーパリーチ演出D1を特定するシーン情報SN1と、昇格したリーチ図柄(図柄3)を特定するシーン情報SN2とで構成されている(UT1=SN1+SN2)。
区分演出EN5(最終演出)や、区分演出EN6(揺れ変動演出)も、各々、1個の単位演出UT1で構成されるものの、区分演出EN5(最終演出)の単位演出UT1は、3つのシーン情報SN1〜SN3で構成されている、そして、シーン情報SN1〜SN3は、各々、動画による変則変動演出(E1〜E3)を特定している。
一方、区分演出EN5(最終演出)のシーン情報SN1〜SN3は、各々、静止画によるゆれ変動(F1〜F3)を特定している。
以上の構成から明らかなように、本実施例では、各区分演出ENiは、開始時刻が各々規定された(つまり、必ずしも共通しない)、単一又は複数の単位演出UT1〜UTnで構成されている。そして、区分演出の開始タイミングは、演出タイマTMRで管理される。
一方、各単位演出UTiは、開始時刻が規定された(つまり、開始時刻が共通する)、単一又は複数のシーン情報SN1〜SNkで構成されている。そして、シーン情報の開始タイミングも、演出タイマTMRで管理されている。なお、シーン情報を構成する個々のスプライトの表示継続時間は、描画チャンネルCH0〜CHm毎に設けられた、継続タイマTM0〜TMmで管理される。
図18は、画像制御部23のワンチップマイコン(ホストCPU)60のメイン処理の動作内容を示すフローチャートである。ホストCPU60がリセットされると、ワンチップマイコンの各部や、VDPの各種レジスタ71を含んで、適宜な初期設定処理(ST81)が実行された後、一連のメイン処理(ST82〜89)が無限ループ状に繰り返される。
メイン処理では、先ず、VDPからVBlank割込みが生じるのを待つ(ST82)。ここで、Vblank割込みは、VDP62が表示装置DSに1フレーム分の描画を終えたタイミングで発生し、例えば、1/60秒毎に発生する。
先に説明した通り、実施例のVDP62は、ダブルバッファ方式を採っており、表示バンクと描画バンクに、各々、表示装置DSの1フレーム分の画像データを記憶するよう構成されている。そして、2つのフレームバッファFLBの機能を交互に切り替えており、表示バンクの画像データを表示装置DSに出力する一方、描画バンクに次回の画像データを描画している。
そこで、Vblank割込みがあれば(ST82)、新規の受信コマンドがあるか否かを判定し(ST83)、新規に制御コマンドを受信している場合には、これに対応する処理を実行する(ST84)。例えば、演出コマンドCMD”を受けている場合には、その演出コマンドに対応する演出進行テーブルPr _TBLを特定する。
また、ステップST84の処理では、画像演出動作を開始するべく、演出中フラグFLGをセットし、画像演出の進行を管理する演出タイマTMRを起動させる。なお、演出タイマTMRは、ステップST89の処理でインクリメントされて、計時動作を実行する。
なお、図15(a)に関して説明した通り、演出進行テーブルPr _TBLには、一連の画像演出動作を実現する単数又は複数の演出テーブルDi _xyと、各演出テーブルDi _xyで規定される画像演出の演出開始タイミングとが、特定されるよう構成されており、演出テーブルDi _xyは、テーブルインデックスデータINXiで示される。
次に、演出中フラグFLGの値を判定し(ST85)、これがセット状態であれば、演出タイマTMRの値と、演出進行テーブルPr _TBLに規定されている演出開始タイミングとを対比し、演出開始タイミングに達している場合には、テーブルインデックスINXiで特定される演出テーブルDi _xyを、演出テーブルバッファBUF1に格納する(ST86)。
なお、この実施例では、演出テーブルバッファBUF1に、新規の演出テーブルDi _xyが格納されたことで、それまで格納されていた古い演出テーブルDi _xy’は事実上消滅する。すなわち、新規の演出テーブルDi _xyの最終位置には、ENDデータが存在するので、それ以降のデータは消滅したのと同じである。但し、必ずしも、このような構成に限定されるものではなく、演出テーブルバッファBUF1の先頭アドレスから格納すべき演出テーブルと、演出テーブルバッファBUF1の空き領域に、追加して格納すべき演出テーブルと、を区別するよう構成すれば、例えば、予告動作(B1)用の単位演出UT8を、開始変動演出用の演出テーブルDi _10から分離することができる。
以上の点はさておき、図19(a)は、この実施例について、演出タイマTMR=T0のタイミングで取得される演出テーブルDi _10を示している。先に説明した通り、演出テーブルDi _10は、区分演出EN1である開始変動動作を特定しており、開始変動動作EN1は、8個の単位演出UT1〜UT8によって構成されている(図16(a)参照)。そのため、演出テーブルバッファBUF1には、演出テーブルDi _10の記憶内容(図16(a)参照)に基づき、各単位演出UT1〜UT8の演出開始タイミングを含んだ情報が、各々、格納されることになる(図17(a)参照)。
以上のようなステップST86の処理が終われば、次に、演出テーブルバッファBUF1のデータを参照し、演出タイマTMRの値に基づいて、演出開始タイミングに達している単位演出UTxの有無を判定し、該当する単位演出UTxが存在する場合には、その実フレームデータを、シーン情報バッファBUF2に展開する(ST87)。
シーン情報バッファBUF2は、VDP62に出力すべきコマンドリストを生成するために参照される記憶領域であり、最小チャンネルCH0から最大チェンネルCHmまで、描画チャンネル毎に区分されている(図19(b))。
先に説明した通り、本実施例では、演出ヘッダ情報HDeとして、当該単位演出UTxの開始タイミングが規定され、シーンヘッダ情報HDsとして、当該単位演出を実現する動画や静止画の描画チャンネルCHが特定されている。したがって、ステップST87の処理では、開始タイミングに達している単位演出UTxについて、その単位演出UTxを実現する単数又は複数のシーン情報SN1〜SNiを、各々に規定されている描画チャンネルCHに対応するシーン情報バッファBUF2に格納することになる。
図19(b)に示す通り、タイミングT0では、描画チャンネルCH0に「背景画像A0に関するシーン情報」が格納され、描画チャンネルCH1に「左図柄の始動回転A1に関するシーン情報」が格納される。その後、タイミングT0+αで、描画チャンネルCH3に「中図柄の始動回転A3に関するシーン情報」が格納され、タイミングT0+2αで、描画チャンネルCH2に「右図柄の始動回転A3に関するシーン情報」が格納される。
なお、このときの左図柄、中図柄、右図柄は、前回の変動動作の終了時の停止図柄であり、ホストCPU60は、各図柄を記憶しているので、停止図柄を特定した始動回転についての動画を特定することができる。そして、その後、タイミングT1+βでは、描画チャンネルCH4に「予告演出B1に関するシーン情報」が格納される。
本実施例では、描画チャンネルCH0〜CHmは、コマンドリストを生成する順番を示しており、VDP62は、コマンドリストの順番に描画動作を実行するので、実施例の開始変動では、背景画像→左図柄→右図柄→中図柄→予告画像の順番で優先度が上がることになる。
その後の動作も同じであり、タイミングT1で、描画チャンネルCH1〜CH3に「高速回転A41〜A43に関するシーン情報」が格納され、タイミングT2とタイミングT3で、描画チャンネルCH1とCH3に「停止動作A5と停止動作A6に関するシーン情報」が格納される。以下同様に、描画チャンネルCH1〜CH4の内容が更新されるが、最後に、タイミングT7で、描画チャンネルCH1〜CH3に「揺れ変動F1〜F3に関するシーン情報」が格納される。
なお、この実施例では、多くの演出が動画で実現されているが、一つの動画を構成する複数フレームの静止画について、どの静止画を描画するかは、演出カウンタCTで管理され、このような演出カウンタCTiが描画チャンネルCHi毎に設けられている。
一方、描画チャンネルCH5の「停止図柄C2〜D2の描画」や、描画チャンネルCH1〜CH3の「揺れ変動F1〜F3の演出」は、静止画で実現されているが、静止画(スプライト)による演出動作は、描画チャンネルCH0〜CHm毎に設けられた継続タイマTM0〜TMmと、演出カウンタCT0〜CTmとによって管理されている。すなわち、図17に示す通り、シーンデータDATAは、継続時間とスプライト情報とで構成されており、継続タイマTMiで計測された所定のスプライト情報についての継続時間が終わると、演出カウンタCTiを更新して、次のスプライト情報による演出に移動し、その後、最後のスプライト情報の継続時間が終われば、演出を終えるか、最初の演出動作に戻る(LOOP)。
なお、演出を終えたシーン情報SNiは、継続タイマTMjや演出カウンタCTjの値に基づいて削除されるが、必ずしも必須ではなく、シーン情報バッファBUF2に新たなシーン情報SNjが格納されれば、古いシーン情報SNiは自動的に消去されることになる。
以上のような内容のステップST87の処理が終われば、次に、そのときのシーン情報バッファBUF2の内容に基づいて、コマンドリストが生成される(ST88)。
図13に関して説明したとおり、コマンドリストは、静止画について、どのスプライトの圧縮データをデコードして(S2)、その伸張データをどの座標位置に描画するか(S2)、或いは、どの動画の、どのフレーム番号の伸張データを、どの座標位置に描画するか(S14)の指示である。
そして、シーン情報バッファBUF2には、コマンドリストを生成するための情報が全て格納されているので、ホストCPU60は、シーン情報バッファBUF2を、最低位の描画チャンネルCH0から最高位の描画チャンネルCHmに向けて参照し、静止画の場合には、そのときの演出カウンタCTiと継続タイマTMiの値に基づいて、必要なコマンドリストを生成する。一方、動画の場合には、そのときの演出カウンタCTiの値が、動画のフレーム番号を意味するので、そのときの演出カウンタCTiの値に基づいて、必要なコマンドリストを生成する。
このようにして生成されたコマンドリストは、VDP62のコマンドメモリ70に書き込まれる。前記の通り、コマンドメモリ70の先頭には、描画チャンネルCH0のコマンドリストが登録され、以下、描画チャンネルCH1→描画チャンネルCH2→・・・の順番で、各々のコマンドリストが登録されるので、描画チャンネルCH0のコマンドリストの優先後が最低レベルとなる。
その後、ホストCPU60は、コマンドリストの開始アドレスやその他の制御情報をシステム制御レジスタ71に設定することでVDP62の描画動作を開始させる(ST88)。
以上の処理によってVDP62は、デコード処理を開始するので、ホストCPU60としては、演出タイマTMRや継続タイマTMなどを更新し、その他の必要な処理を実行した上で、VBlank割込みを待つことになる(ST89)。
以上の通り、本実施例では、ホストCPU60とVDP62とが協働して画像演出動作を実現しているので、複雑高度な画像演出を円滑に実行することができる。また、特殊なメモリ構成を有するので、高画質の画像を円滑に変化させることができ、万一、メモリに不備が生じても、そのメモリを特定することができ、メモリ素子単位で交換することも可能となる。