以下、実施例に基づいて本発明を詳細に説明する。図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が設けられており、遊技者は、発射ハンドル10から右手を離すことなく、必要に応じて、操作ボタン11を操作することができる。この操作ボタン11は、通常時は、メイン表示装置DS1について、2D表示と3D表示をトグル的に切り替える用途に使用される。すなわち、遊技者が3D表示に疲れたような場合、操作ボタン11を押圧すると、メイン表示装置DS1の画像が自動的に2D表示に変更され、もう一度、操作ボタン11を押圧すると3D表示に戻るよう構成されている。
なお、この操作ボタン11は、遊技者を遊技に参加させるためのチャンスボタンを兼ねており、ゲーム状態がボタンチャンス状態となって、内蔵ランプが点灯された後は、遊技者が参加する遊技用途に使用される。
上皿8の右部には、カード式球貸し機に対する球貸し操作用の操作パネル12が設けられ、カード残額を3桁の数字で表示する度数表示部と、所定金額分の遊技球の球貸しを指示する球貸しスイッチと、ゲーム終了時にカードの返却を指令する返却スイッチとが設けられている。
図2に示すように、遊技盤5の表面には、金属製の外レールと内レールとからなるガイドレール13が環状に設けられ、その略中央には、中央開口HOが設けられている。そして、中央開口HOの可能には、不図示の可動演出体が隠蔽状態で収納されており、可動予告演出時には、その可動演出体が上昇して露出状態となることで、所定の信頼度の予告演出を実現している。ここで、予告演出とは、遊技者に有利な大当り状態が招来することを不確定に報知する演出であり、予告演出の信頼度とは、大当り状態が招来する確率を意味している。
中央開口HOには、19インチ程度の大型の液晶カラーディスプレイ(LCD)で構成されたメイン表示装置DS1が配置され、その表面側にはレンチキュラーレンズが配置されている。したがって、遊技者は、3D表示による迫力ある画像演出を楽しむことができる。
また、メイン表示装置DS1の右側には、5インチ程度の小型の液晶カラーディスプレイで構成されたサブ表示装置DS2が配置され、2D表示による予告演出などが実行される。
特に限定されるものではないが、メイン表示装置DS1は、ピクセル配列P(i,j)が、P(1,1)〜P(1024,1280)の表示画面を有し、この横1280×縦1024ピクセルの表示画面を90°右回転させることで、表示画面を縦長に配置している。なお、図示の状態では、役物や装飾フレームに隠れている部分があるので、メイン表示装置DS1の表示画面が横長に見えるが、実際には、縦1280×横1024ピクセルP(i,j)の縦長形状であって、描画走査線は、図示の上下方向に走査される。
そして、メイン表示装置DS1の前面にレンチキュラーレンズが配置されていることに対応して、配置状態の縦方向(走査方向)を右側から評価した奇数列(1列,3列,5列・・・)が、右眼用の画像(以下右眼画像と称す)であり、偶数列(2列,4列,6列・・・)が左眼用の画像(以下左眼画像と称す)となる。また、各ピクセルP(i,j)は、RBG三色が、各々8bitで輝度制御されることで、RGB三色とも256諧調を実現している。
このように構成されたメイン表示装置DS1は、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に3D表示する装置である。この表示装置DS1は、中央部に特別図柄表示部Da〜Dcと右上部に普通図柄表示部19とを有している。そして、特別図柄表示部Da〜Dcでは、大当り状態の招来を期待させるリーチ演出が実行されることがあり、特別図柄表示部Da〜Dc及びその周りでは、適宜な動画などによる予告演出が実行される。
サブ表示装置DS2は、通常時には、左右に往復移動する背景画(簡易動画)が、他のスプライト画像の背面側に表示され、必要時には、可動して画像予告演出を実行するよう構成されている。すなわち、実施例のサブ表示装置DS2は、単なる表示装置ではなく、予告演出を実行する可動演出体としても機能している。
ここで、サブ表示装置DS2が可動する予告演出は、その信頼度が、出現個数などに応じて適宜に高く設定されており、遊技者は、大きな期待感をもってサブ表示装置DS2に注目することになる。なお、サブ表示装置DS2の表示画面は、横800×縦600ピクセルを有して構成され、各ピクセルP(i,j)は、RBG三色が各々8bitで輝度制御されることで、RGB三色とも256諧調を実現している。
遊技盤5の構成に戻って説明を続けると、遊技球が落下移動する遊技領域には、第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’に基づいて2つの表示装置DS1,DS2を駆動する画像制御基板23と、主制御基板21から受けた制御コマンドCMD”に基づいて払出モータMを制御して遊技球を払い出す払出制御基板24と、遊技者の操作に応答して遊技球を発射させる発射制御基板25と、を中心に構成されている。
図示の通り、主制御基板21が出力する制御コマンドCMDは、演出制御基板22に伝送される。また、主制御基板21が出力する制御コマンドCMD”は、主基板中継基板32を経由して、払出制御基板24に伝送される。
制御コマンドCMD,CMD’,CMD”は、何れも16ビット長であるが、主制御基板21や払出制御基板24が関係する制御コマンドは、8ビット長毎に2回に分けてパラレル送信されている。一方、演出制御基板22から画像制御基板23に伝送される制御コマンドCMD’は、16ビット長をまとめてパラレル伝送されている。そのため、可動予告演出を含む予告演出を、多様化して多数の制御コマンドを連続的に送受信するような場合でも、迅速にその処理を終えることができ、他の制御動作に支障を与えない。
図示の通り、本実施例では、画像制御基板23及び演出制御基板22からアクセス可能な液晶インタフェイス基板28が設けられている。そして、液晶インタフェイス基板28は、現在時刻を計時可能な時計回路(リアルタイムクロック)RTCと、遊技実績情報を記憶するメモリ素子(Static Random Access Memory )SRAMが搭載されている。
また、画像制御基板23は、液晶インタフェイス基板28を経由して、メイン表示装置DS1とサブ表示装置DS2を駆動している。ここで、液晶インタフェイス基板28と、画像制御基板23とは、配線ケーブルを経由することなく、雄型コネクタと雌型コネクタとを直結されている。同様に、演出制御基板23と液晶インタフェイス基板28についても、配線ケーブルを経由することなく、雄型コネクタと雌型コネクタとを直結されている。そのため、各電子回路の回路構成を複雑高度化しても基板全体の収納空間を最小化できると共に、接続ラインを最短化することで耐ノイズ性を高めることができる。
これら主制御基板21、演出制御基板22、画像制御基板23、及び払出制御基板24には、ワンチップマイコンなどのコンピュータ回路がそれぞれ搭載されている。そこで、これらの制御基板21〜24と液晶インタフェイス基板28に搭載された回路、及びその回路によって実現される動作を機能的に総称して、本明細書では、主制御部21、演出制御部22、画像制御部23、及び払出制御部24と言うことがある。なお、主制御部21に対して、演出制御部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が、表示装置DS1,DS2やその他の回路基板と共に固定されている。そして、枠側部材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や、交流及び直流の電源電圧を、そのまま演出制御部22に出力している。そして、演出制御部22は、受けたシステムリセット信号SYSを、そのまま画像制御部23に出力している。
一方、払出制御基板24は、中継基板を介することなく、電源基板20に直結されており、主制御部21が受けると同様の電源異常信号ABN2や、バックアップ電源BAKを、その他の電源電圧と共に直接的に受けている。
電源基板20が出力するシステムリセット信号SYSは、電源基板20に交流電源24Vが投入されたことを示す電源リセット信号であり、この電源リセット信号によって演出制御部22のワンチップマイコン40と画像制御部23の内蔵CPU回路は、その他の回路素子やVDPを含む内部回路と共に電源リセットされるようになっている。
但し、このシステムリセット信号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と画像制御基板23と液晶インタフェイス基板28とはコネクタ連結によって一体化されており、演出制御部22は、電源中継基板33を経由して、電源基板20から各レベルの直流電圧(5V,12V,32V)と、システムリセット信号SYSを受けている(図3及び図4(a)参照)。
また、演出制御部22は、主制御部21から制御コマンドCMDとストローブ信号STBとを受けている。そして、演出制御部22は、ランプ駆動基板36及びランプ駆動基板29やモータランプ駆動基板30に搭載されたドライバICに、ランプ駆動信号SDATAを、クロック信号CKに同期してシリアル伝送することで、多数のLEDランプや電飾ランプで構成されたランプ群を駆動して、制御コマンドCMDに基づくランプ演出を実現している。
本実施例の場合、ランプ演出は、三系統のランプ群CH0〜CH2によって実行されており、ランプ駆動基板36は、枠中継基板34,35を経由して、CH0のランプ駆動信号SDATA0を、クロック信号CK0に同期して受けている(クロック同期式シリアル通信)。なお、シリアル信号として伝送される一連のランプ駆動信号SDATA0は、動作制御信号ENABLE0がアクティブレベルに変化したタイミングで、ドライバICからランプ群CH0に出力されることで一斉に点灯状態が更新される。
以上の点は、ランプ駆動基板29についても同様であり、ランプ駆動基板29のドライバICは、ランプ群CH1のランプ駆動信号SDATA1を、クロック信号CK1に同期して受け、動作制御信号ENABLE1がアクティブレベルに変化したタイミングで、ランプ群CH1の点灯状態を一斉に更新している。
一方、モータランプ駆動基板30に搭載されたドライバICは、クロック同期式で伝送されるランプ駆動信号を受けてランプ群CH2を駆動すると共に、クロック同期式で伝送されるモータ駆動信号を受けて、複数のステッピングモータで構成された演出モータ群M1〜Mnを駆動している。なお、ランプ駆動信号とモータ駆動信号は、一連のシリアル信号SDATA2であって、クロック信号CK1に同期してシリアル伝送され、これを受けたドライバICは、動作制御信号ENABLE2がアクティブレベルに変化するタイミングで、ランプ群CH2やモータ群M1〜Mnの駆動状態を更新する。
また、演出制御部22は、画像制御部23に対して、制御コマンドCMD’及びストローブ信号STB’と、電源基板20から受けたシステムリセット信号SYSと、2種類の直流電圧(12V,5V)とを出力している。そして、画像制御部23では、制御コマンドCMD’に基づいて表示装置DS1,DS2を駆動して各種の画像演出を実行している。
図3及び図4(a)に示す通り、画像制御部23は、汎用ワンチップマイコンと同等の内部構成を有する内蔵CPU回路(画像演出制御装置)51と、VDP(Video Display Processor )52と、を内蔵した複合チップ50を中心に構成されている。また、内蔵CPUの制御プログラムを記憶する制御メモリ(PROM)53と、大量のデータを高速にアクセス可能なDRAM(Dynamic Random Access Memory)54と、画像制御に必要な大量のCGデータを記憶するCGROM55とが搭載されている。
そして、CGROM55から読み出したCGデータに基づいてVDP52が生成した画像データは、第1と第2のLVDS信号(LVDS_1, LVDS_2)と、RGBパラレル信号RGB_P として、液晶インタフェイス基板28に伝送される。
第1と第2のLVDS信号LVDS_1,LVDS_2は、メイン表示装置DS1用の画像データであって、図2(b)に関して説明した通り、1280×1024ピクセルで構成された一フレームを特定している。そして、本実施例では、この1280×1024個のピクセルデータを確実に伝送するべく、ドットクロック108MHzの画像データを、VDPの内部回路(出力選択部79)において二系統のLVDS信号(LVDS_a,LVDS_b)に分割して、各々、1/60秒に640×1024ピクセル(=655,360)の画像データを、デュアルリンク接続でメイン表示装置DS1に伝送している。
そのため、二系統のLVDS信号(LVDS_a,LVDS_b)のドットクロックは、各々、54MHz程度に抑制されることになる。そして、メイン表示装置DS1には、LVDS受信部RVが内蔵されており(図4参照)、二系統のLVDS信号(LVDS_a,LVDS_b)から抽出された各640×1024ピクセル分の画像データを纏めることで、一フレーム1280×1024ピクセル分のRGB画像データを再生している。
ところで、本実施例の場合、1280×1024ピクセルは、左眼用の1280×512ピクセルと、右眼用の1280×512ピクセルに区分され、縦方向1280個のピクセル列が、左眼用ピクセル列と右眼用ピクセル列として図2の左右方向に隣接している。一方、デュアルリンク接続では、走査方向(図2の縦方向)に評価して奇数ピクセルが、例えば、LVDS信号LVDS_aで伝送され、その上下に隣接する偶数ピクセルが、LVDS信号LVDS_bで伝送されるので、各LVDS信号(LVDS_a,LVDS_b)は、左眼用と右眼用の画像データが混在した状態となる。
次に、RGBパラレル信号RGB_P は、各8ビットで全24ビット長のRGB信号と、同期信号とを含んだパラレル信号である。図2(b)に関して説明した通り、表示装置DS2は、800×600ピクセルであり、そのドットクロックは54MHz程度となる。
続いて、図4(a)に基づいて、演出制御部22の構成を更に詳細に説明する。図4(a)に示す通り、演出制御部22は、音声演出・ランプ演出・演出可動体による予告演出・データ転送などの処理を実行するワンチップマイコン40(演出制御CPU40)と、演出制御CPU40の制御プログラムや各種の演出データENを記憶する制御メモリ(flash memory)41と、内蔵レジスタRG0〜RGnに設定される演出制御CPU40の指示に基づいて音声信号を再生して出力する音声プロセッサ42と、再生される音声信号の元データである圧縮音声データなどを記憶する音声メモリ43と、音声プロセッサ42から出力される音声信号を受けるデジタルアンプ46と、を備えて構成されている。
本実施例の場合、制御メモリ41に記憶されている演出データENには、ランプ演出や音声演出の演出進行を管理するシナリオデータと、LEDの点滅態様を決定するランプ駆動データと、モータの回転態様を決定するモータ駆動データと、が含まれている。なお、ランプ駆動データやモータ駆動データは、1ビットずつ時間順次に出力されることで、ランプ駆動シリアル信号やモータ駆動シリアル信号となる。
ワンチップマイコン40には、複数のシリアル入出力ポートSIOと、複数のパラレル入出力ポートPIOとが内蔵されている。ここで、シリアル入出力ポートSIOには、CHiのランプ駆動信号又はモータ駆動信号SDATAiをクロック信号CKiに同期して出力するシリアル出力ポートSoiと、モータ群M1〜Mnの原点センサ信号(シリアル信号)をクロック信号CK3に同期して受けるシリアルポートSiとが含まれている。なお、i=0〜2であって、三系統のランプ群CH0〜CH2や、CH2のランプ群と共に駆動されるモータ群M1〜Mnに対応している。
一方、パラレル入出力ポートPIOは、出力ポートPo,Po’と入力ポートPiに区分され、入力ポートPiには、主制御部21からの制御コマンドCMD及びストローブ信号STBが入力される。一方、出力ポートPo’からは動作制御信号ENABLE0〜ENABLE2が出力され、出力ポートPoからは、制御コマンドCMD’及びストローブ信号STB’が出力されるよう構成されている。詳細には、主制御基板21から出力された制御コマンドCMD及びストローブ信号(割込み信号)STBが、バッファ44において、ワンチップマイコン40の電源電圧3.3Vに対応する論理レベルに降圧された後、入力ポートPiに8ビット単位で二回に分けて供給される。また、割込み信号STBは、演出制御CPU40の割込み端子に供給され、受信割込み処理によって、演出制御部22は、制御コマンドCMDを取得するよう構成されている。
演出制御部22が取得する制御コマンドCMDには、(1)異常報知その他の報知用制御コマンドなどの他に、(2)図柄始動口への入賞に起因する各種演出動作の概要特定する制御コマンド(変動パターンコマンド)や、図柄種別を指定する制御コマンド(図柄指定コマンド)が含まれている。変動パターンコマンドで特定される演出動作の概要には、演出開始から演出終了までの演出総時間と、大当たり抽選における当否結果とが含まれている。
また、図柄指定コマンドには、大当たり抽選の結果に応じて、大当たりの場合には、大当たり種別に関する情報(15R確変、2R確変、15R通常、2R通常など)を特定する情報が含まれ、ハズレの場合には、ハズレを特定する情報が含まれている。変動パターンコマンドで特定される演出動作の概要には、演出開始から演出終了までの演出総時間と、大当り抽選における当否結果とが含まれている。なお、これらに加えて、リーチ演出や予告演出の有無などを含めて変動パターンコマンドで特定しても良いが、この場合でも、演出内容の具体的な内容は特定されていない。
そのため、演出制御部22では、変動パターンコマンドを取得すると、これに続いて演出抽選を行い、取得した変動パターンコマンドで特定される演出概要を更に具体化している。例えば、リーチ演出や予告演出について、その具体的な内容が決定される。そして、決定された具体的な遊技内容にしたがい、LED群などの点滅によるランプ演出や、スピーカによる音声演出の準備動作を行うと共に、画像制御部23に対して、ランプやスピーカによる演出動作に同期した画像演出に関する制御コマンドCMD’を出力する。
このような演出動作に同期した画像演出を実現するため、演出制御部22は、出力ポートPoを通して、画像制御部23に対するストローブ信号(割込み信号)STB’と共に、16ビット長の制御コマンドCMD’を出力している。なお、演出制御部22は、図柄指定コマンドや、異常報知用制御コマンドや、その他の制御コマンドを受信した場合は、その8ビット単位の制御コマンドを、16ビット長に纏めた状態で、割込み信号STB’と共に画像制御部23に向けて出力している。
先に説明した通り、本実施例の音声プロセッサ42は、演出制御CPU40から内蔵レジスタ(音声制御レジスタ)RG0〜RGnに受ける指示(音声コマンドSNDによる設定値)に基づいて、音声メモリ43をアクセスして、必要な音声信号を再生して出力している。図示の通り、音声プロセッサ42と、音声メモリ43とは、26ビット長の音声アドレスバスと、16ビット長の音声データバスで接続されている。そのため、音声メモリ43には、1Gビット(=226*16)のデータが記憶可能となる。
本実施例の場合、音声メモリ43に記憶された圧縮音声データは、13ビット長のフレーズ番号(000H〜1FFFH)で特定されるフレーズ(phrase)圧縮データであり、一連の背景音楽の一曲分(BGM)や、ひと纏まりの演出音(予告音)などが、最高8192種類(=213)、各々、フレーズ番号に対応して記憶されている。そして、このフレーズ番号は、演出制御CPU40から音声プロセッサ42の音声制御レジスタRG0〜RGnに伝送される音声コマンドSNDの設定値によって特定される。
音声コマンドSNDは、複数(2又は3)バイト長であって、音声プロセッサ42に内蔵された多数の音声制御レジスタRG0〜RGnの何れかRGiに、所定の設定値を伝送するWrite 用途で使用される。但し、本実施例の音声コマンドSNDは、フレーズ番号などの設定値を書込むWrite 用途だけでなく、所定の音声制御レジスタRGiからステイタス情報(エラー情報)STSを読み出すRead用途でも使用される。なお、アクセス対象となる所定の音声制御レジスタRGiは、1バイト長のレジスタアドレスで特定される。
音声制御レジスタRGiへの設定値の設定(Write )は、必ずしも、音声制御レジスタ毎に個別的に実行する必要はなく、音声メモリ43に格納されているSACデータを指定して、一群の音声制御レジスタRGi〜RGjに対する一連の設定動作を完了させることもできる。
SACデータとは、音声制御レジスタRGiのレジスタアドレス(1バイト)と、その音声制御レジスタRGiへの設定値(複数バイト)とを対応させた最大512個(最大1024バイト)の集合体を意味する。本実施例では、このようなSACデータが、必要組だけ、予め音声メモリ43に記憶されており、一組のSACデータは、単一のID情報である13ビット程度のSAC番号で特定されるようになっている。
したがって、本実施例の場合、Write 用途の音声コマンドSNDは、SAC番号を指定して一組のSACデータを特定するか、或いは、設定値とレジスタアドレスとを個別的に特定することになる。
図4(b)に接続関係の要部を記載している通り、演出制御CPU40と音声プロセッサ42は、1バイトデータを送受信可能なパラレル信号線(データバス)CD0〜CD7と、動作管理データを送信可能な2ビット長の動作管理データ線(アドレスバス)A0〜A1と、読み書き(read/write)動作を制御可能な2ビット長の制御信号線WR,RDと、音声プロセッサ42を選択するチップセレクト信号線CSとで接続されている。
パラレル信号線CD0〜CD7は、演出制御CPU40のデータバスで実現され、また、動作管理データ線A0〜A1は、演出制御CPU40のアドレスバスで実現されており、各々、演出制御CPU40に接続されている。そして、演出制御CPU40が、プログラム処理によって、例えば、IOREAD動作やIOWRITE動作を実行すると、制御信号WR,RDやチップセレクト信号CSが適宜に変化して、パラレル信号線CD0〜CD7で特定される音声制御レジスタRGiとの読み書き(R/W)動作が実現される。
具体的には、図4(b’)のタイムチャートに示す通りであり、音声制御レジスタRGiのレジスタアドレスと、音声制御レジスタRGiへの書込みデータは、各々、パラレル信号線CD0〜CD7を通してパラレル伝送される。そして、パラレル伝送された1バイトが、レジスタアドレスであるか、それとも、書込みデータ(ライトデータ)であるかは、動作管理データA0〜A1によって特定される。
したがって、図4(b)に示す通り、動作管理データ(アドレスデータA0〜A1)を、[00]→[01]と推移させる一方で、データバスの1バイトデータを、[音声制御レジスタRGiのレジスタアドレス]→[音声制御レジスタRGiへの書込みデータ]と推移させることで、所定の音声コマンドSNDが送信される。なお、SAC番号(13ビット)を送信する場合のように、書込みデータが複数バイト長の場合には、[01]の動作管理データA0〜A1を、[00]→[01]→[01]→[01]と繰り返しつつ、複数バイトの書込みデータを送信する。
このようにして送信された音声コマンドは、通信異常がない限り、その後、実効化される。但し、複数バイト長のデータが互いに整合しないなど、通信異常が認められる場合には、その音声コマンドSNDが実効化させることはない。そして、音声制御レジスタRGnのエラーフラグがセットされるが、このエラーフラグ(ステイタス情報STS)は、アドレスバスの動作管理データA0〜A1を、[01]から[10]に推移させることで、演出制御CPU40がRead動作によって受信することができる。
このように、この実施例では、動作管理データA0〜A1を、[00]→[01]→・・・[01]→[10]と推移させる最終サイクルにおいて、複数ビット長のエラー情報(異常時はFFH)を取得することができる。そして、正当にパラレル送信できなかった音声コマンドSNDを再送することで、音声演出を適切に進行させることができる。したがって、本実施例の構成によれば、音声演出が突然、途絶えるような不自然さを確実に解消されることができる。
なお、図4(b)の構成では、演出制御CPU40は、エラー情報を含んだステイタス情報STSを、音声プロセッサ42からパラレル受信しているが、何ら、この構成に限定されるものではない。すなわち、音声プロセッサ42が通信エラーを認識すると、演出制御CPU40に割込み信号を出力する構成を採るのも好適であり、この場合には、演出制御CPU40の割込み処理プログラムにおいて、通信エラーが生じた音声コマンドを再送すればよい。このような構成を採れば、殆どの場合に無駄な処理となる、エラーフラグ(ステイタス情報STS)の取得処理、すなわち、動作管理データA0〜A1を[10]に遷移させる処理を省略することができる。
図3及び図4(a)に示す通り、本実施例では、デジタルアンプ46の出力によって、遊技機上部の左右スピーカと、遊技機下部のスピーカとを駆動している。そのため、音声プロセッサ42は、3チャネルの音声信号を生成する必要があり、これをパラレル伝送すると、音声プロセッサ42とデジタルアンプ46との配線が複雑化する。
そこで、本実施例では、音質の劣化を防止すると共に、配線の複雑化を回避するため、音声プロセッサ42とデジタルアンプ46との間は、4本の信号線で接続されており、具体的には、転送クロック信号SCLKと、チャネル制御信号LRCLKと、2ビット長のシリアル信号SD1,SD2との合計4ビットの信号線に抑制されている。
ここで、SD1は、遊技機上部に配置された左右スピーカのステレオ信号R,Lを特定するPCMデータについてのシリアル信号であり、SD2は、遊技機下部に配置された重低音スピーカのモノラル信号を特定するPCMデータについてのシリアル信号である。そして、音声プロセッサ42は、チャネル制御信号LRCLKをLレベルに維持した状態で、左チャネルの音声信号Lを伝送し、チャネル制御信号LRCLKをHレベルに維持した状態で、右チャネルの音声信号Rを伝送する。重低音スピーカは、本実施例では1個であるので、モノラル音声信号が伝送されているが、ステレオ音声信号として伝送できるのは勿論である。
何れにしても本実施例では、4種類の音声信号を4本のケーブルで伝送可能であるので、最小のケーブル本数によってノイズによる音声劣化のない信号伝達が可能となる。すなわち、シリアル伝送であるのでパラレル伝送より圧倒的にケーブル本数が少ない。
このようなシリアル信号SD1,SD2は、クロック信号SCLKの立上りエッジに同期して、デジタルアンプ46に取得される。そして、デジタルアンプ46内部で、所定ビット長毎にパラレル変換され、DA変換後にD級増幅されて各スピーカに供給されている。
図4(a)に関して説明を続けると、演出制御基板22には、ワンチップマイコン40のシリアル入出力ポートSIOのシリアル出力ポートSoiから出力されるシリアルデータSDATAiとクロック信号CKiを転送するバッファ回路47〜49が設けられている(i=0〜2)。
出力バッファ47は、シリアル出力ポートSo0が出力するランプ駆動信号SDATA0とクロック信号CK0を、ランプ駆動基板36のシフトレジスタ回路(ドライバIC)に転送している。また、出力バッファ48は、シリアル出力ポートSo1が出力するランプ駆動信号SDATA1とクロック信号CK1を、ランプ駆動基板29のドライバICに転送している。なお、各ランプ駆動基板29,36に搭載されたドライバICが、CH0とCH1のランプ群を点灯駆動することは先に説明した通りである。
一方、バッファ回路49は、入出力バッファとして機能しており、シリアル出力ポートSo2が出力するシリアル信号SDATA2を、クロック信号CK2と共にモータランプ駆動基板30に転送している。また、一群の演出モータM1〜Mnの原点位置を示す原点センサ信号(シリアル信号)を、クロック信号CK3に同期してワンチップマイコン40のシリアル入力ポートSiに転送している。
本実施例の場合、バッファ回路49が転送するシリアル信号SDATA2は、ランプ群CH2を点灯させるためのランプ駆動信号(シリアル信号)と、演出モータM1〜Mnを回転させるためのモータ駆動信号(シリアル信号)とが連続するよう構成されている。そして、モータランプ駆動基板30では、これら一連のシリアル信号を16ビット長毎に分断すると共に、各16ビット長をパラレル信号に変換して、ランプ演出と可動予告演出を実行している。具体的には、制御コマンドCMDに対応して抽選決定された演出動作として、一連のランプ演出を実行すると共に、モータ駆動信号を受信した場合には、演出モータM1〜Mnを回転させて適宜な可動予告演出を実行している。
次に、図4(a)の左側に示す通り、本実施例では、演出制御CPU40のデータバスとアドレスバスは、液晶インタフェイス基板28にも及んでいる。説明の便宜上、図4(a)の左側に、この関係を図示しているが、時計回路RTCは、演出制御CPU40のアドレスバスの下位4ビットと、データバスの下位4ビットとでCPUに接続されており、任意にアクセス可能に構成されている。また、遊技実績情報を記憶するメモリ素子SRAMは、演出制御CPU40のアドレスバスの16ビットと、データバスの下位16ビットとで、演出制御CPU40のランダムアクセスを可能にしている。
時計回路RTCは、現在年月日や現在時刻を計時する時計IC(リアルタイムクロック)であり、メモリ素子SRAMと共に、演出制御基板22から受ける電源電圧で充電される二次電池BTで永続的に動作している。すなわち、遊技機に電源が投入されている状態で、二次電池BT(図5)が充電される一方、遊技機の電源が遮断された後は、充電状態の二次電池BTに基づいて、時計回路RTCの計時動作が継続され、演出データも永続的に記憶保持される(バックアップ動作)。
図5に示す通り、実施例の時計回路RTCは、4ビットのデータバスと、4ビットのデータバスと、Read/Write動作用のコントロールバスRD+WRとを通して、演出制御CPU40に接続されている。そして、演出制御CPU40は、遊技動作に関する重要な遊技情報や異常情報を、時計回路RTCから取得した年月日情報及び曜日情報や時刻情報を付加して、メモリ素子SRAMに記憶するようにしている。
この時計回路RTCは、CS1とCS0バーの2種類のチップセレクト端子を有しており、各端子への入力電圧が正常レベルであることを条件に、演出制御CPU40からのアクセスを許可するようになっている。ここで、CS0バー端子は、アドレスデコーダの出力を受ける通常のチップセレクト端子である。一方、CS1端子は、電源異常検出部ERの出力(電圧降下信号)Voを受けており、CS1端子が異常レベルの出力Voを受けた場合には、時計回路RTCの異常検出フラグFosが自動的にセットされるようになっている。
本実施例の場合、この異常検出フラグFosは、他の異常検出フラグTEMPと共に、電源投入時に演出制御CPU40によって判定され、仮に、異常検出フラグFosがセット状態であれば、その時の年月日及び時刻が報知されるようになっている。そのため、もし、時計機能の異常が認められた場合には、これに素早く対処することができる。
なお、電源遮断時に二次電池BTの電圧が降下しても、二次電池BTの電圧レベルは、電源復帰によって素早く回復してCS1端子が正常レベルに戻るので、演出制御CPU40からのアクセスが許可されることになる。したがって、異常検出フラグFosの判定処理を設ける本実施例の構成を採らない場合には、時計回路RTCの異常を永続的に検出できないおそれがある。
また、実施例の時計回路RTCは、一週間に一回、例えば、毎金曜日の21時50分に、割込み信号IRQを出力するよう構成されおり、割込み信号IRQを受けた演出制御CPU40では、それまでにメモリ素子SRAMに蓄積した遊技情報や異常情報について、適宜に集計するようにしている。
集計する遊技情報は、大当り状態に関する履歴情報をまとめたものであり、例えば、(1)大当り状態となるまでに要した図柄始動口への入賞回数、(2)大当り状態の図柄や、確変か否かの大当り状態の集計値や統計値、(3)大当り状態に至った予告演出やリーチ演出の種類、(4)連チャン回数、(5)連チャンによる払出球数の時間的な増加推移、などが含まれる。そして、これらの集計情報や統計情報は、遊技者の求めに応じて適宜に報知される。遊技者の指示は、例えば、デモ演出中の操作ボタン11の押圧で特定され、報知内容は表示装置DS1に表示される。
一方、集計する異常情報には、例えば、(1)ドア開放回数、(2)違法行為を検出する検知センサの検出種別や検出回数や検出時刻、(3)閉塞状態の図柄始動口15や大入賞口16を針金などで無理に開放しようとする行為の検出回数や検出頻度や検出時刻などが含まれる。そして、これらの集計情報は、係員による特別な操作に対応して、表示装置DS1に表示される。
図5(a)に示す通り、実施例の時計回路RTCは、Bank0〜Bank2の3つの内部レジスタテーブルを内蔵して構成されている。但し、Bank2のレジスタテーブルは、時刻設定や年月日設定に関するものであるので、図5(b)と図5(c)に、Bank0とBank1のレジスタテーブルだけ記載している。何れにしても、各レジスタテーブルは、4バイト×16個のレジスタで構成されおり、内部回路が計時した現在年月日と現在時刻は、Bank0のレジスタテーブル(図5(b))に書込まれるよう構成されている。
図5(b)に示すように、Bank0のレジスタテーブルにおいて、1番レジスタのビット3は、異常検出フラグFosであり、14番レジスタのビット2は、内蔵温度センサが異常温度を検出したことを示す温度異常フラグTEMPである。そして、本実施例では、演出制御部22のCPUリセット時に、異常検出フラグFosの値を判定することで、異常な計時動作の継続を防止している。また、時計回路RTCを演出制御CPU40に近接配置すると共に、適宜な時間間隔で、温度異常フラグTEMPの値を繰り返し判定することで、演出制御CPU40の温度異常を素早く検出している。
また、Bank0のレジスタテーブルにおいて、15番レジスタのビット0は、レジスタテーブルが更新中であることを示すBusyフラグである。そして、本実施例では、Busyフラグが非Busy状態(更新完了)であることを条件に、Bank0のレジスタテーブルから、現在年月日と現在時刻を取得している。そのため、本実施例では、更新動作中の中途半端、又は不合理な時計情報を取得するおそれがなく、メモリ素子SRAMに記憶される時計情報の正当性が担保される。例えば、1時59分59秒から2時0分0秒に更新中の時計情報を取得すると、1時0分0秒の時計情報を取得してしまうおそれがある。
また、Bank1のレジスタテーブルは、割込み信号IRQの発生時刻を設定可能に構成されている。そこで、本実施例では、Bank1の1番レジスタのビット0に1をセットすることで割込み発生を指示し(Interrupt Enable)、Bank1の0番レジスタ〜8番レジスタに、金曜の曜日指定と、21時30分00秒の時刻情報を設定している。
続いて、画像制御部23について図6〜図8を参照しつつ詳細に説明する。先ず、図6(a)は、画像制御部23を構成する複合チップ50について、関連する回路素子も含めて図示した回路ブロック図である。図示の通り、実施例の複合チップ50には、内蔵CPU回路51とVDP回路52とが内蔵されている。そして、内蔵CPU回路51とVDP回路52とは、互いの送受信データを中継するCPUIF回路56を通して接続されると共に、VDP回路52から内蔵CPU回路51に対して、Vブランク割込み信号(VBLANK)が供給されるようになっている。
Vブランク割り込み信号は、メイン表示装置DS1の垂直同期信号に対応するもので、メイン表示装置DS1の一フレーム分の画像データの出力が完了したタイミングを1/60秒毎に規定している。この実施例では、3つの表示回路74A/74B/74Cのうち、表示回路74Bは機能せず、表示回路74Cは、表示回路74Aに同期して動作するよう構成されているので、垂直同期信号(Vブランク割り込み信号)は、表示回路74Aの出力動作が終わったことを意味することになる。
Vブランク割り込みに基づくシーケンス動作については後述するが、CPUIF回路56には、図6に示す通り、制御プログラムや、必要な制御データを不揮発的に記憶する制御メモリ(PROGRAM_ROM )53と、2Mバイト程度の記憶容量を有するワークメモリ(RAM)57とが接続され、各々、内蔵CPU回路51からアクセス可能に構成されている。
内蔵CPU回路51は、汎用のワンチップマイコンと同等の性能を有する回路であり、制御メモリ53の制御プログラムに基づき画像演出を統括的に制御する画像制御CPU63と、プログラムが暴走状態になるとCPUを強制リセットするウォッチドッグタイマ(WDT)58と、16kバイト程度の記憶容量を有してCPUの作業領域として使用されるRAM59と、CPUを経由しないでデータ転送を実現するDMAC(Direct Memory Access Controller )60と、複数の入力ポートSi及び出力ポートSoを有するシリアル入出力ポート(SIO)61と、複数の入力ポートPi及び出力ポートPoを有するパラレル入出力ポート(PIO)62と、を有して構成されている。
なお、便宜上、本明細書では、入出力ポートとの表現を使用するが、画像制御部23において、入出力ポートには、独立して動作する入力ポートと出力ポートとが含まれている。この点は、以下に説明する入出力回路64pや入出力回路64sについても同様である。
パラレル入出力ポート62は、入出力回路64pを通して外部機器(演出制御基板22)に接続されており、画像制御CPU63は、入力回路64p及びパラレル入力ポートPiを経由して、演出制御部22が出力する制御コマンドCMD’と割込み信号STB’を受信するようになっている。一方、この実施例では、シリアル入出力ポート61と、DMAC60については、これらを使用していない。
次に、VDP回路52について説明すると、VDP回路52には、画像演出を構成する静止画や動画の構成要素となる圧縮データを記憶するCGROM55と、4Gbit程度の記憶容量を有する外付けDRAM(Dynamic Random Access Memory)54と、メイン表示装置DS1と、サブ表示装置DS2とが接続されている。
本実施例の場合、DRAM54は、画像制御CPU63から直接アクセスできるよう構成されているので、画像制御CPU63は、表示装置DS1,DS2の各一フレームを特定するディスプレイリストDLを、直接、DRAM54に書込んでいる。なお、図8のタイミングT1’の右向き矢印は、画像制御CPU63によるディスプレイリストDLの書込み動作の完了タイミングを示している。
CGROM55は、62Gbit程度の記憶容量のNAND型フラッシュメモリで構成されたフラッシュSSD(solid state drive )で構成されており、シリアル伝送によって必要な圧縮データを取得するよう構成されている。そのため、パラレル伝送において不可避的に生じるスキュー(ビットデータ毎の伝送速度の差)の問題が解消され、極限的な高速伝送動作が可能となる。
なお、NAND型のフラッシュメモリは、ハードディスクより機械的に安定であり、且つ高速アクセスが可能である一方で、シーケンシャルアクセスメモリであるため、DRAMやSRAM(Static Random Access Memory )に比較するとアクセス速度に劣り、アクセス速度は、内蔵VRAM71>外付けDRAM54>CGROM55の順番に遅くなる。但し、本実施例では、一群の圧縮データ(CGデータ)を、描画動作に先行して外付けDRAM54に読み出しておくプリロード動作を実行するので、描画動作時におけるCGデータの円滑なランダムアクセスを実現することができる。
図6(a)に示す通り、VDP回路52は、詳細には、VDPの動作を規定する各種の動作パラメータが設定されるレジスタ群70と、48Mバイト程度のVRAM(Video RAM )71と、チップ内部の各部間のデータ送受信及びチップ外部とのデータ送受信を制御するデータ転送回路72と、プリロード動作を実行するプリローダ73と、外付けDRAM54のフレームバッファFBに生成された画像データを読み出して、適宜な画像処理を並列的に実行する複数系統の表示回路74と、CGROM55から読み出した圧縮データをデコードするグラフィックスデコーダ75と、デコード後の静止画データや動画データを適宜に組み合わせて各表示装置DS1,DS2の一フレーム分の画像データを生成する描画回路76と、描画回路76の動作の一部として、適宜な座標変換によって立体画像を生成するジオメトリエンジン77と、シリアルデータ送受信可能なSMC部78と、表示回路74の出力を適宜に選択出力する出力選択部79と、出力選択部79が出力する画像データをLVDS信号に変換する2系統のLVDS部80a,80bと、出力選択部79が出力する画像データをデジタルRGB信号のままパラレル出力するデジタルRGB部80cと、CPUIF回路56とのデータ送受信を中継するCPUIF部81と、CGROM55からのデータ受信を中継するCGバスIF部82と、外付けDRAM54とのデータ送受信を中継するDRAMIF部83と、VRAM71とのデータ送受信を中継するVRAMIF部84と、を有して構成されている。
そして、3D表示を実現するため、左眼用の一フレーム画像を生成する左眼バッファLBUFや、右眼用の一フレーム画像を生成する右眼バッファRBUFを使用するので、本実施例では、便宜上、フレームバッファFBも含め、必要な作業領域を、全て、外付けDRAM54に確保している。但し、アクセス速度は、外付けDRAM54よりVRAM71の方が速いので、図8に示す静止画デコード領域や動画デコード領域も含め、左眼バッファLBUF、右眼バッファRBUF、及び、フレームバッファFBについては、VRAM71に確保する方がプログラム処理速度の点で有利である。したがって、処理速度とメモリ容量との関係で、外付けDRAM54と、VRAM71とを適宜に使い分けるのが好ましい。
次に、図6(b)には、CPUIF部81、CGバスIF部82、及び、DRAMIF部83と、レジスタ群70、CGROM55、及びDRAM54との関係が図示され、特に、レジスタ群70については、その一部が具体的に記載されている。図示の通り、CGROM55とCGバスIF部82は、シリアル回線で接続されており、アドレス情報Txの送信に対応して、CGROM55がシーケンシャルアクセスされ、一群のCGデータ(圧縮データ)Rxが、順次読み出されるようになっている。
図6(a)に示すデータ転送回路72は、VDP回路内部のリソース(記憶媒体)と外部記憶媒体を、転送元ポート又は転送先ポートとして、これらの間でデータ転送動作を実行する回路である。転送元ポートには、CPUバス、CGバス、外部DRAMバスに接続された記憶媒体(リソース)が含まれる。同様に、転送先ポートには、CPUバス、CGバス、外部DRAMバスに接続された記憶媒体が含まれる。また、データ転送回路72は、一群の描画コマンドによって一フレーム分の表示画像を特定するディスプレイリストDLを、描画回路76や、プリローダ73に送信する動作も担当している。
一方、プリローダ73は、データ転送回路72によって送信されたディスプレイリストDLを解釈して、その中で参照しているCGROM55上のCGデータを、予め指定されているDRAM54のプリロード領域TEMPに転送する回路である。また、このとき、プリローダ73は、CGデータの参照先を、転送後のアドレスに書換えた修正ディスプレイリストDL’を出力する。図8のタイミングT1”の下向き矢印は、その動作を示しており、書換えた修正ディスプレイリストDL’は、データ転送回路72によって描画回路76に送信され、描画動作が実効化される。
本実施例では、プリローダレジスタ(図6(b)参照)への設定値に基づき、外付けDRAM54に、十分な記憶領域のプリロード領域TEMPを設定している。また、プリロード領域への転送履歴が、最大512個まで記憶可能に構成されている。そのため、512区画されたプリロード領域TEMPの記憶領域を使い切らない限り、プリロードされた圧縮データは、その後の処理において再利用することができる(キャッシング機能)。
そのため、プリロード処理を使用する本実施例では、必要な圧縮データが、プリロード領域TEMPに存在しない場合に限り、CGROM55をアクセスすることになる。なお、プリロード領域TEMPに十分な記憶領域が確保されているので、複数フレーム分のCGデータを一気にプリロードしても何も問題が生じない。
描画回路76は、プリローダ73によって書き換えられた修正ディスプレイリストDL’の描画コマンドを順番に解析して、グラフィックスデコーダ75や、ジオメトリエンジン77などと協働して、外付けDRAM54に確保されたフレームバッファFBに、表示装置DS1,DS2の一フレーム分の画像を完成させる回路である。
すなわち、描画回路76は、修正ディスプレイリストDL’の描画コマンドを解析するDisplaylist Analyzer(以下、DLアナライザという)と、頂点の座標変換や照明演算を実行するGeometry Pipeline と、トライアングル描画時のソース(source)アドレスとデスティネーション(destination )アドレスを生成するTriangle Rasterizer と、テクスチャをサンプリングし、バイリニアフィルタリングを実行するTexture Sampler と、画素間演算用のフレームバッファとZバッファを取得するFramebuffer Sampler と、αブレンドなどの処理を施して、フレームバッファFBに書き込む画素データを生成するピクセルジェネレータ(Pixel Generator )などを含んで構成されている。
ここで、ディスプレイリストDL/DL’は、描画する順番に記載された一群の描画コマンドで構成されており、メイン表示装置DS1とサブ表示装置DS2について、一フレームのどの位置に、どのような画像(描画素材)を描画するかを規定するコマンドも含まれ、描画すべき画像のCGROMなどの記憶位置(ソースアドレス)も特定されている。
そして、描画回路76のDLアナライザは、このようなディスプレイリストDL/DL’を解釈して、他のGeometry Pipeline 、Triangle Rasterizer 、Texture Sampler 、Framebuffer Sampler 、ピクセルジェネレータと協働して、外付けDRAM54に確保されたフレームバッファFBa,FBcに、表示装置DS1,DS2の各一フレーム分の画像データを完成させている。
後述するように、3D又は2D表示されるメイン表示装置DS1の一フレームは、左眼バッファLBUFや右眼バッファRBUFに、静止画や動画を構成する各種の描画素材を配置した後、これら各バッファLBUF,RBUFの画像データを、フレームバッファFBaで複合させることで完成される。一方、2D表示されるサブ表示装置の一フレームは、フレームバッファFBcに、簡易動画を含んだ各種の描画素材を配置することで完成される。
各表示装置DS1,DS2のフレームバッファFBa,FBcは、何れも、描画処理領域と表示処理領域に機能的に区分されたダブルバッファであり、2つの領域(描画処理領域0と表示処理領域1)を、交互に用途を切り換えて使用している。すなわち、描画回路76が、2つの領域の何れか一方の領域に、画像データが書込んでいるとき、表示回路74は、他方の領域の画像データを読み出して出力している。
本実施例の場合、メイン表示装置DS1は、1280×1024ピクセルを有し、サブ表示装置DS2は、800×600ピクセルを有して構成され、各ピクセルP(i,j)は、RBG三色が各々8bitで表現されることで、256諧調を実現している。そこで、サブ表示装置DS2用のフレームバッファFBcは、描画処理領域と表示処理領域とも、サブ表示装置DS2の表示画面に対応して、800×600ピクセルの画像データを格納できるよう構成されている。
一方、メイン表示装置DS1用のフレームバッファFBaや、その補助バッファたる左眼バッファLBUF及び右眼バッファRBUFは、メイン表示装置DS1の表示画面(1280×1024ピクセル)と同一ではなく、それより小さい1024×1024ピクセルの画像データを格納できるよう構成されている(図7、図11(5)参照)。これは、本実施例では、フレームバッファFBaに生成された画像データを、表示回路74Aにおいて拡大して、1280×1024ピクセルの画像データにするためである。
これらフレームバッファFBa,FBcや補助バッファLBUF,RBUFについて更に説明すると、全てのピクセルP(i,j)は、フレームバッファFBa,FBcや補助バッファLBUF,RBUFにおいて、RGB各色を特定する合計3バイトと、α値を特定するαチャンネルの1バイトとで、合計4バイトで特定されている。
ここで、α値とは、各ピクセル位置に設定された透過度情報であって、上書きする新規画像(source)と、上書きされる元画像(destination )との透明度を規定するαブレンド処理を特定する値である。本実施例の場合、α値は、1バイト構成であるので、α値の上限値が255となる。
また、本実施例では、表示装置DS1,DS2の一フレームは、最大状態では、3種類又はそれ以上の画像(動画と静止画)で構成されている。すなわち、表示装置DS1,DS2では、最大状態では、一又は複数の動画が再生される一方で、これに重ねて、時間的に変化する静止画が、背景画と共に表示されるよう構成されている。
静止画の基本形状は、スプライト画像として予めCGROM55に記憶されており、この基本形状を、適宜に拡大/縮小/回転/変形させると共に、配置位置を変更させることで、時間的な変化を実現している。なお、背景画は、完成状態でCGROM55に記憶されている。
一方、動画は、本実施例の場合には、一般動画と簡易動画とに区分されている。本実施例の簡易動画は、表示画面の縦横ピクセル数より、横方向又は縦方向に十分に長い一枚の長尺フレームで構成されており、この長尺フレームの使用領域、つまり、表示装置に表示される使用範囲を、時間的に変化させることで、滑らかなムービー動作を実現している。
この意味において、簡易動画は、実際には、長尺フレームの静止画に他ならないが、本実施例では、左右方向に円滑に往復移動する背景画像として、簡易動画を活用している。なお、本実施例では、メイン表示装置DS1で3D表示を実現するので、簡易動画は、便宜上、サブ表示装置DS2だけで再生され、メイン表示装置DS1で簡易動画が再生されることはない。
以上の簡易動画を除いた一般動画は、時間的に滑らかに変化するいわゆるムービーであって、複数枚のフレームが、MPEG符号化方式などの動画圧縮手法で圧縮されてCGROM55に記憶されている。より詳細に説明すると、本実施例の一般動画は、IフレームとPフレームとで構成されたIPストリーム動画を意味する。
ここで、IPストリーム動画を構成するPフレームは、過去フレームから予測したデータとの差分をエンコードするPピクチャ(Predictive Picture)で構成されたフレームを意味し、圧縮率が高いものの、順次再生が必須となる。一方、Iフレームは、他のフレームに依存することなく、単独でエンコード可能なIピクチャ(Intra Picture )で構成されたフレームを意味する。なお、このように構成された一般動画は、メイン表示装置DS1だけでなく、必要に応じて、サブ表示装置DS2でも再生される。
上記した静止画と動画に対応して、グラフィックスデコーダ75は、静止画デコーダと動画デコーダに区分され、所定の圧縮アルゴリズムでエンコード(圧縮)された静止画と動画を、各々に対応する伸張アルゴリズムでデコード(伸張)している。例えば、静止画は、1枚の静止画を構成する画像データ毎に所定のアルゴリズムで圧縮され、IPストリーム動画のPフレームは、一連の動画を実現する複数枚の静止画データが、フレーム間のデータ差分値などに基づいて圧縮されている。簡易動画は、長尺フレームの静止画で構成されているので、静止画デコーダでデコードされる。
ところで、メイン表示装置DS1で再生される静止画や一般動画は、1280×1024ピクセルの表示画面に表示されるにも拘らず、CGROM55において、各々、原則として、横1024×縦820ピクセルを超えないよう抑制されている。これは、メイン表示装置DS1には、左眼用画像と右眼用画像が必要であることに対応して、可能な限り、CGデータのデータ量を抑制するためであり、単純計算では、CGデータのデータ量は64%(820/1280)に抑制される。なお、例外的に1024×820ピクセルを超える画像は、後述するクリッピング処理の対象となる。
上記の通り、縦横に縮小化されてCGROM55に圧縮記憶されているメイン表示装置DS1用のCGデータ(1024×820ピクセル分)は、グラフィックスデコーダ75によるデコード処理の後、描画回路76のピクセルジェネレータでY(縦)方向に拡大されて、1024×1024ピクセルの画像データとなる(図11(2)、図11(4)参照)。そして、その後、表示回路74Aにおいて、X(横)方向に拡大されることで、メイン表示装置DS1の1280×1024ピクセル分の画像データとなる。
一方、サブ表示装置DS2で再生される静止画や一般動画のCGデータは、原則として、800×600ピクセルを超えないよう構成され、VDP回路52の内部回路で拡大されることなく使用される。但し、簡易動画については、先に説明した通り、800×600ピクセルを大きく超える一枚の長尺フレームとしてCGROM55に圧縮記憶されている。そして、これら800×600ピクセルを超える画像は、後述するクリッピング処理の対象となる。
このように、CGROM55には、表示装置DS1,DS2のピクセル数に一致しない各種寸法のCGデータ(描画素材)が、動画又は静止画として格納されており、これらを適宜に組み合わせて、各表示装置の一フレームを完成させる必要がある。特に、メイン表示装置DS1では3D表示が必要となるので、左眼画像と右眼画像の複合処理も必要となる。また、サブ表示装置DS2では、簡易動画を適切に再生する必要もある。
そこで、本実施例では、外付けDRAM54に、フレームバッファFBa,FBcとは別に、描画処理用の作業領域を適宜に確保している。具体的には、図8に示す通りであり、左眼画像を生成する作業領域である左眼バッファLBUFと、右眼画像を生成する作業領域である右眼バッファRBUFとが、各々、外付けDRAM54に確保されている。
左眼バッファLBUFと、右眼バッファRBUFは、1024×1024ピクセル分の画像データを格納できるフレームバッファFBaと同一の記憶容量を有しており、メイン表示装置DS1用の描画素材を配置すべき描画領域となっている。そして、これらの描画領域(LBUF,RBUF)の周りには、各描画領域を包含する十分に大きい仮想描画空間VITが、各々、仮想的に配置されている。また、フレームバッファFBa,FBcは、表示装置DS1,DS2用の描画素材を配置すべき描画領域であり、これらの描画領域(FBa,FBc)の周りにも、仮想描画空間VITが仮想的に配置されている。
仮想描画空間VITは、各種の描画素材(各種寸法のCGデータ)を、任意位置に任意姿勢で貼付けて、表示装置DS1,DS2の一フレームを完成させるための描画演算用の仮想空間である。そして、描画コマンドによって仮想描画空間VITに貼付けた描画素材のうち、描画領域からはみ出した部分は、クリッピング処理で自動的に排除されるようになっている。
例えば、図14は、サブ表示装置DS2用の描画領域(フレームバッファFBc)と、仮想描画空間VITとの包含関係を図示したものである。図示の通り、横±Xと縦±Yで特定される矩形状の仮想描画空間VITの中央に、横±H(800ピクセル分)と、縦±V(600ピクセル分)で特定される矩形状のフレームバッファFBcが、描画領域として存在している。
そして、ディスプレイコマンドDLには、仮想描画空間VITの任意の座標(i,j)に、任意の描画素材を貼付ける描画コマンドを列記するようになっている。また、例えば、図14に示すように、描画素材が矩形状の場合には、仮想描画空間VITの座標(i,j)において、左上端点と右下端点を指定すれば良いよう構成されている。先に説明した通り、仮想描画空間VITに貼付けられた画像(描画素材)のうち、真の描画領域たる800×600ピクセル分の画像データだけがフレームバッファFBcに配置される。
そこで、本実施例では、このクリッピング動作を有効活用して、サブ表示装置DS2で再生される簡易動画を、描画領域FBcより十分に幅広の長尺フレームで構成し、仮想描画空間VITにおける貼付け位置を適宜に移動させることで簡易的な動画再生(背景画像の往復移動)を実現している。すなわち、多数フレームで構成される動画に代えて、一枚の長尺フレームを適宜に区分再生することでCGROMのメモリ容量の抑制を図っており、この場合については、図13に関して更に後述する。
また、本実施例では、仮想描画空間に矩形状の描画素材を貼付ける場合に、描画素材の縦横寸法と、貼付け領域の縦横寸法を、必ずしも一致させる必要はない。そして、描画素材と、貼付け領域の縦横寸法が一致しない描画コマンドを指定した場合には、貼付け領域の縦横寸法が優先されるようになっている。
例えば、描画コマンドで指定される貼付け領域が、描画素材より広い場合には、描画回路76のピクセルジェネレータによって描画素材が自動的に拡大され、逆に、指定される貼付け領域が狭い場合は、ピクセルジェネレータによって、描画素材が自動的に縮小されるようになっている。
そこで、本実施例では、貼付け領域より小さい左眼画像や右眼画像を、仮想描画空間の貼付け領域(LBUF,RBUF)に配置する場合に、自動拡大動作を活用している。具体的には、先に説明した通りであり、1024×820ピクセル分のメイン表示装置用の画像データを、ピクセルジェネレータによる自動拡大動作に基づいて、1024×1024ピクセル分の画像データに拡大している。
また、本実施例では、矩形状の描画素材を、左90°回転させて仮想描画空間に貼付けることもできるよう構成されている。例えば、横W×縦Dの描画素材を貼付ける場合に、描画コマンドで貼付け領域の左上端点を(a1,b1)と指定し、右下端点を(a1+W,b1+D)に設定すれば、同一姿勢で貼付けられるが、左上端点を(a1,b1)、右下端点を(a1+D,b1+W)に設定すれば、左90°回転した状態で仮想描画空間に貼付けられる。
以上、描画回路76や、ディスプレイリストDLの描画コマンドについて詳細に説明したので、次に、表示回路74について説明する。表示回路74は、フレームバッファFBの画像データを読み出して、最終的な画像処理を施した上で出力する回路である。図7に示す通り、表示回路74での画像処理には、スケーラが機能してフレーム画像を拡大/縮小するスケーリング処理と、微妙なカラー補正処理と、画像全体の量子化誤差が最小化するディザリング処理と、が含まれている。
本実施例では、上記の動作を並列的に実行する複数の表示回路74A/74Cが設けられており、各表示回路74A/74Cは、各々に対応するフレームバッファFBa/FBcの画像データを読み出して、上記の最終画像処理を実行している。
先に説明した通り、表示回路74Aにおけるスケーリング処理を経ることで、フレームバッファFBaに生成された1024×1024ピクセル分の画像データが、1280×1024ピクセル分の画像データとなる。なお、図8のタイミングT1+2δの矢印は、表示回路74A/74Cの読出し動作を示している。
そして、表示回路74A/74Cでの画像処理を経たでデジタルRGBデータ(1ピクセルで合計24ビット)が、水平同期信号や垂直同期信号と共に、出力選択回路79に向けて出力される。なお、図6や図7に示す通り、VDP回路52には、並列的に動作する三系統の表示回路74A/75B/74Cが設けられているが、本実施例では、表示回路74Bを使用していない。
出力選択部79は、表示回路74Aの出力信号を、LVDS部80aとLVDS部80bに伝送し、表示回路74Cの出力信号を、デジタルRGB部80cに出力している。そして、LVDS部80aとLVDS部80bは、画像データ(合計24ビットのデジタルRGBデータ)をLVDS信号に変換して、クロック信号を伝送する一対を加えた全五対の差動信号LVDS_1,LVDS_2 を、デュアルリンク接続でメイン表示装置DS1に伝送している。同様に、デジタルRGB部80cは、同期信号などを付加したRGBパラレル信号RGB_P を、サブ表示装置DS2に伝送している。
次に、SMC部78(Serial Management Controller)は、LEDコントローラとMotorコントローラとを内蔵した複合コントローラである。そして、外部基板に搭載したLED/Motorドライバ(シフトレジスタを内蔵するドライバIC)に対して、クロック信号に同期してLED駆動信号やモータ駆動信号を出力する一方、適宜なタイミングで、ラッチパルスを出力可能に構成されている。
上記したVDP回路52の内部回路及びその動作に関し、内部回路が実行すべき動作内容は、画像制御CPU63が、レジスタ群70に設定する動作パラメータ(設定値)で規定され、VDP回路52の実行状態は、レジスタ群70の動作ステイタス値をREADすることで特定できるようになっている。
レジスタ群70は、画像制御CPU63のメモリマップ上、1Mバイト程度のメモリ空間(0〜FFFFFH)にマッピングされた多数のレジスタを意味し、画像制御CPU63は、CPUIF部81を経由して動作パラメータのWRITE(設定)動作と、動作ステイタス値のREAD動作を実行するようになっている(図6(b)参照)。
レジスタ群70には、割り込み動作などシステム動作に関する初期設定値が書込まれる「システム制御レジスタ」と、画像制御CPU63とVDP回路52の内部回路との間のデータ転送回路72によるデータ転送処理に関する設定値などが書込まれる「データ転送レジスタ」と、グラフィックスデコーダ75のエラー発生などを含む実行状況を特定可能な「GDECレジスタ」と、描画コマンドや描画回路76に関する設定値が書込まれる「描画レジスタ」と、プリローダ73の動作に関する設定値が書込まれる「プリローダレジスタ」と、三区分された表示回路74A/B/Cの各動作に関する設定値が書込まれる「表示レジスタ」と、LEDコントローラ(SMC部78)に関する設定値が書込まれる「LED制御レジスタ」と、Motorコントローラ(SMC部78)に関する設定値が書込まれる「モータ制御レジスタ」とが含まれており、これらの制御レジスタは、各々複数バイト長で構成されている。
より詳細には、「プリローダレジスタ」には、(1) プリロード領域TEMPをDRAM54に設定するか、VRAM71に設定するかの設定、(2) プリロード領域TEMPの先頭アドレス、(3) プリロード領域TEMPを、何フレーム分使用するかの設定、(4) 一フレーム当たりのデータサイズなどが設定される。
また、「データ転送レジスタ」には、データ転送元やデータ転送先が設定され、「表示レジスタ」には、表示回路74A/Cに対応して、フレームバッファFBa/FBcの開始位置及びバッファサイズや、各フレームバッファFBa/FBcにおいて、時間的に切り換わる描画処理領域と表示処理領域の切換指示(bank flip )や、スケーラの縦横拡大率などが設定される。また、「描画レジスタ」「プリローダレジスタ」「データ転送レジスタ」には、描画動作、プリロード動作、データ転送動作について、各動作の実行開始が指示される。
何れにしても、画像制御CPU63が、レジスタ群70の何れかに適宜な設定値を書込むことで、VDP回路52の内部動作が実現される。したがって、画像制御CPU63は、適宜な時間間隔で更新されるディスプレイリストDL/DL’と、上記したレジスタ群70を構成するレジスタへの設定値に基づいて、ディスプレイリストDL/DL’に基づく画像演出を実現することになる。なお、この実施例では、ランプ演出やモータ演出は、演出制御基板22の演出制御CPU40が担当するので、SMC部78を使用することはなく、LED制御レジスタやモータ制御レジスタに設定値が書込まれることもない。
図8に記載の通り、プリローダ73を有効活用する本実施例では、外付けDRAM54には、プリローダ73が先読みしたCGROM55の圧縮データを一時記憶するプリロード領域TEMPや、プリローダ73が書き換えた修正ディスプレイリストDL’の格納領域(ディスプレイリストバッファDLB)が確保されている。また、DRAM54には、グラフィックスデコーダ75が、プリロード領域TEMPの圧縮データをデコードしたデコード結果の格納領域として、静止画デコード領域と動画デコード領域とが確保されている。
先に説明した通り、外付けDRAM54には、表示装置DS1,DS2のフレームバッファFBa,FBcや、左眼バッファLBUF及び右眼バッファRBUFも配置されている。先に説明した通り、左眼バッファLBUFと、右眼バッファRBUFは、各々、メイン表示装置DS1のフレームバッファFBaと同一容量(1024×1024ピクセル分)であって、デコード後のCGデータ(最大1024×820ピクセル分)を、Y方向に1024/820倍に拡大して記憶している(図11(2)、図11(4)参照)。
以上を踏まえて、図6(b)や図8に関して確認的に説明する。プリローダ73は、グラフィックスデコーダ75のデコード処理に先行して、CGROM55からCGデータを読み出し、読み出したCGデータを、CGバスIF部82→DRAMIF部83を経由して、DRAM54のプリロード領域TEMPに格納する。図6(b)の矢印や、図8のタイミングT1”の左向き矢印は、この先読み(プリロード)動作を示している。
そして、プリロード領域TEMPに読み出されたCGデータは、その後、グラフィックスデコーダ75によってデコードされ、メイン表示装置DS1の一フレーム分の画像データについては、左眼バッファLBUFや右眼バッファRBUFを経由して、フレームバッファFBaに完成される。
図8のタイミングT1+δの矢印は、グラフィックスデコーダ75のデコード処理を示し、タイミングT1+δ’やT1+δ”の矢印は、フレームバッファFBaに一フレーム分の画像データが生成されるまでの動作を示している。なお、サブ表示装置DS2の一フレーム分の画像データについては、左眼バッファLBUFや右眼バッファRBUFを経由することなく、直接、フレームバッファFBcに完成される。
続いて、図9〜図12に基づいて、画像制御CPU63とVDP回路52の内部動作を説明する。先ず、図9は、画像制御CPU63の動作を説明するフローチャートである。CPUリセット後、画像制御CPU63は、VDP回路52のレジスタ群70を含んだ内部回路を適宜に初期設定する(ST1)。
この初期設定(ST1)には、表示回路74Aのスケーリング処理について、表示レジスタの設定処理が含まれており、フレームバッファFBaに生成された1024×1024ピクセル分の画像データが、1280×1024ピクセル分の画像データに拡大されるよう初期設定される。
また、この初期設定(ST1)には、左眼用画像と右眼用画像とを重ねるためのαブレンド処理のためのα値を、フレームバッファFBaのαチャンネルに固定値として書込む処理も含まれる。
具体的には、図12(1)に示す通りであり、フレームバッファFBaの一行目であるFB(0,0)〜FB(0,1023)のαチャンネルに、α値として0を書込み、フレームバッファFBaの二行目であるFB(1,0)〜FB(1,1023)のαチャンネルに、α値として255を書込む。以下同様であって、図12(1)に示す奇数行目のαチャンネルには、α値0を書込み、偶数行目のαチャンネルには、α値255を書込む。
このα値は、左眼用画像と右眼用画像とを重ねるためのαブレンド処理で使用され、具体的には、Cr=Cd*(1−α/255)+Cs*α/255の演算が実行される。この演算式において、Cdは、上書きされる元画像(Destination )のRGB情報、Csは、上書きする新規画像(Source)のRGB情報、Crは、αブレンド処理後のRGB情報である。なお、255は、1バイト構成(n=8)のα値の上限値であり、データ構成に対応して変化する(2n−1)。
先に説明した通り、α値は、図12(1)に示す奇数行では0、偶数行では255であるので、結局、奇数ピクセル行に対応するフレームバッファFBaでは、Cr=Cdの関係より、元画像(Destination )がそのまま残り、一方、偶数ピクセル行に対応するフレームバッファFBaは、Cr=Csの関係より、元画像(Destination )が消滅して、上書きされる新規画像(Source)だけが記憶されることになる。この演算動作は、右眼画像と、左眼画像を生成するために使用されるが、その詳細については、図11〜図12に関して後述する。
ところで、左眼用画像と右眼用画像とを重ねるためのαブレンド処理を除いた、通常のαブレンド処理は、左眼バッファLBUFや右眼バッファRBUFやフレームバッファFBcにおいて実行され、その演算式は、例えば、Cr=Cd*(1−As/255)+Cs*As/255となる。ここで、Asは、上書きする新規画像(Source)側のα値であって、図12(1)に示すフレームバッファFBaの固定値(α=0/255)が使用されることはない。
α値の設定を含む初期化処理(ST1)が終われば、次に、画像制御CPU63は、外付けDRAM54に確保されたディスプレイリストバッファDLBを初期化した上で(ST2)、ディスプレイリストDLの作成を開始する。先ず、そして、ディスプレイリストDLの先頭に、作業領域を全クリアするための描画コマンドとして、塗りつぶし命令を書込む(ST3)。本実施例の場合、この塗りつぶし命令でクリアされる作業領域は、フレームバッファFBa,FBcと、左眼バッファLBUFと、右眼バッファRBUFとである。
そのため、ディスプレイリストDLを解釈して実行する描画回路76では、その先頭に記載されている塗りつぶし命令に基づいて、上記の作業領域を全クリアすることになる。そのため、例えば、表示画面が縮小化されるような画像演出においても、それ以前の画像データが、その後の表示画面に表示されるおそれがない。
続いて、画像制御CPU63は、メイン表示装置DS1のディスプレイリストDLの作成に関して、操作スイッチ11の押圧回数に基づいて、そのタイミングが、2D表示モードか3D表示モードかが判定される(ST4)。
そして、そのタイミングが3D表示モードであれば、画像演出シナリオに基づいて、左眼用画像と右眼用画像を構成する一又は複数の描画素材を、左眼バッファLBUFと右眼バッファRBUFの仮想描画空間VITに貼付けるためのコマンド列CMD1,CMD2をディスプレイリストDLに列記する(ST5)。
ここで、ディスプレイリストDLの作成時で参照される画像演出シナリオは、演出制御CPU40から受けた制御コマンドCMD’で特定される画像演出を具体化したものである。すなわち、画像演出シナリオには、一定時間継続される一連の動画や、描画位置や配置姿勢や拡大縮小率が適宜に規定される静止画(背景画像や予告画像を含む)について、(1) 一連の動画演出の開始時刻や終了時刻、(2) どの静止画を、どの時刻に、どの位置に、どのように描くか、などが規定されている。
そして、コマンド列CMD1,CMD2には、デコード領域の左眼画像データや右眼画像データを、各々、Y方向に1024/820倍に拡大して、左眼バッファLBUFと右眼バッファRBUFに配置する描画コマンドが含まれている。また、コマンド列CMD1,CMD2に、αブレンド処理が含まれる場合は、source側のα値(As)を使用して、例えば、Cr=Cd*(1−As/255)+Cs*As/255の演算がされる点も、先に説明した通りである。
何れにしても、これらのコマンド列CMD1,CMD2が、VDP回路において、逐次解釈されて実行されると、CGROM55の一又は複数の必要なCGデータが先読みされ、各々、デコードされた後に適宜に組み合わせることで、左眼バッファLBUFと右眼バッファRBUFに、メイン表示装置DS1の一フレーム分の左眼画像と右眼画像が構築されることになる。
図11(1)と、図11(3)は、デコード領域に展開された左眼画像D_oL及び右眼画像D_oRを模式的に示しており、何れも、本実施例では、CGROM55に記憶されているCGデータに対応して、原則として、1024×820ピクセル分、又はそれ以下の画像データとなっている。そして、これらの画像データ(D_oL,D_oR)が、Y方向に1024/820倍に拡大されて、左眼バッファLBUFと右眼バッファRBUFに配置されて、図11(2)と図11(4)に示す左眼画像Da_L及び右眼画像Da_Rとなる。
左眼バッファLBUFと右眼バッファRBUFに、左眼画像Da_Lと右眼画像Da_Rを完成させるためのコマンド列CMD1,CMD2の列記が終われば、次に、右眼バッファRBUFの全体を、左90°回転させてフレームバッファFBaに転送させるための描画コマンドCMD3を、ディスプレイリストDLに付加する(ST6)。
図11(5)は、描画コマンドCMD3の実行により、左90°回転させて転送させた、フレームバッファFBaの右眼画像Da_Rを示している。この実施例では、右眼バッファRBUFとフレームバッファFBaは、各々、1024×1024ピクセル分の記憶容量を有しているので、図11に示す式(1)の座標変換式に基づいて、右眼バッファRBUFにおけるピクセル位置Ps(i’,j’)の画像情報が、フレームバッファFBaのピクセル位置Pd(x’,y’)の画像情報となる。なお、座標変換式は、回転中心を原点(0,0)とする左90°回転式であるので、Ps(i’,j’)とPd(x’,y’)の座標位置も、原点(0,0)に対応して座標変換されている。
もっとも、実際の描画コマンドとしては、右眼バッファRBUFの全体画像をsourceとし、フレームバッファFBaをdestination とする転送コマンドにおいて、destination 先の左上端点と右下端点を、左90°回転用に設定するだけで足り、そのような描画コマンドの実行によって、上記した座標変換が自動的に実現される。
ステップST6の処理が終われば、画像制御CPU63は、図11(2)に示す左眼バッファLBUFの左眼画像Da_Lを、左90°回転させた状態で、図11(5)に示すフレームバッファFBaの右眼画像Da_Rとの間で、図12の(式2)に示すαブレンド処理を実行して、フレームバッファFBaに上書きする描画コマンドCMD4を、ディスプレイリストDLに付加する(ST7)。
図12の(式2)に示す通り、このαブレンド処理では、Cr=Cd*(1−α/255)+Cs*α/255の演算が実行されるが、Cdは、図11(5)や図12(1)に示すフレームバッファFBaの右眼画像Da_R(左90°回転状態)についてのピクセルRGBデータである。また、Csは、フレームバッファFBaに上書きされる左眼バッファLBUFの左眼画像Da_L(図11(2)参照)についてのピクセルRGBデータである。
なお、図12(1)では、初期状態で設定されたα値も示されている。また、図12(2)は、図11(2)に示す左眼バッファLBUFの左眼画像Da_Lを左90°回転させた状態を示す参考図である。
そして、図12(1)に示す右眼画像Da_Rと、図12(2)に示す左眼画像Da_Lとの間で、上記したCr=Cd*(1−α/255)+Cs*α/255の演算が実行されることで、α値=0の奇数ピクセル行では、Cr=Cdの関係より元の右眼画像Da_Rがそのまま残り、α値=255の偶数ピクセル行では、Cr=Csの関係より新規の左眼画像Da_Lだけが記憶されることになる。
図12(3)は、この演算結果について模式的に図示したものであり、左眼画像Da_Lを網掛けで示している。このようにして完成されたフレームバッファFBaの複合画像(1024×1024ピクセル分)は、その後、表示回路74Aのスケーラで、X方向に1280/1024倍に拡大されることで、図12(4)に示す複合画像となる。先に説明した通り、スケーラの拡大倍率は、初期処理において(ST1)、表示レジスタに設定されている。
以上、3D表示モードの動作時における、ディスプレイリストDLの構築手順を説明したが、2D表示モードの動作時には、ステップST12に示す通り、画像制御CPU63は、画像演出シナリオを解析して左眼画像Da_Lを左眼バッファLBUFに構築するためのコマンド列CMD1をディスプレイリストDLに列記する。
先に説明した通り、コマンド列CMD1には、デコード領域の左眼画像D_oLを、Y方向に1024/820倍に拡大して、左眼バッファLBUFに配置する描画コマンドも含まれている。
次に、左眼バッファLBUFの左眼画像Da_Lを、左90°回転させてフレームバッファFBaに転送する描画コマンドCMD5をディスプレイリストDLに付加する(ST13)。これらの処理から明らかな通り、2D表示モードでは、右眼画像Da_Rが使用されることなく、左眼画像Da_Lだけで表示画面が構築されることになる。
以上の通り、2D表示モードか3D表示モードかに応じて、メイン表示装置DS1について、適切なディスプレイリストDLを生成した後、画像制御CPU63は、サブ表示装置DS2についてのディスプレイリストDLを生成する(ST8)。サブ表示装置DS2のディスプレイリストDLについては、図13に示す通りであり、その詳細は後述する。
そして、ディスプレイリストDLの終結を特定する描画コマンド(EODL)を付加した後(ST9)、今回作成したディスプレイリストDLに関してプリローダ73の先読み動作を開始させる(ST10)。図8のタイミングT1’は、ディスプレイリストバッファDLBに、ディスプレイリストDLが完成したステップST9の処理後のタイミングを示している。
プリローダ73の先読み動作の開始指示は、具体的には、ディスプレイリストバッファDLBなどを特定する「プリローダレジスタ」に対する設定値に基づいて実現される。図10(a)に示す通り、プリローダ73は、今回、画像制御CPU63が作成したディスプレイリストDLに関して、必要なCGデータを外付けDRAM54に読み出し(SS10)、参照アドレスを書き換えた修正ディスプレイリストDL’を、ディスプレイリストバッファDLBの該当領域に格納する(SS11)。図8のタイミングT1”は、これらの動作を示している。
次に、図9に戻って、画像制御CPU63の動作説明を続けると、ステップST10の処理に続いて、画像制御CPU63は、1/60秒毎に生じるメイン表示装置DS1のVブランク割り込みの発生を待つ(ST11)。特に限定されるものではないが、この実施例では、1/30秒(=δ)毎に、ディスプレイリストDLを更新するので、Vブランク割り込みを二回受けるとステップST12の処理に移行することになる。
具体的には、画像制御CPU63は、新規の描画動作や表示動作を開始するべく描画回路76や表示回路74に動作開始を指示する(ST12)。なお、これらの動作は、描画レジスタや表示レジスタに所定の設定値を設定することで実現される。そして、その後は、次の表示画面を特定するディスプレイリストDLについてステップST2〜ST10の処理を実行することになる。
このように、本実施例の画像制御CPU63は、所定時間(δ)毎にディスプレイリストDLを更新するが、プリローダ73、描画回路76、及び、表示回路74についても、画像制御CPU63からの動作指示に基づいて、所定時間(δ)毎に、図10(a)〜図10(c)のように間欠的に動作する。
図10(d)は、各部の動作手順を説明するタイムチャートであり、画像制御CPU63は、所定時間(δ)毎に、ディスプレイリストDL1,DL2,DL3・・・を作成し、プリローダ73は、ディスプレイリストDLを適宜に書き換えて修正ディスプレイリストDL’を生成することを示している。
そして、修正ディスプレイリストDL’は、一周期後のタイミング(+δ)で、描画回路76に解釈実行され、フレームバッファFBa,FBcに、必要な画像データが生成され、生成されたフレームバッファFBa,FBcの画像データは、更に一周期後のタイミング(+δ)で、表示回路74によって出力される。
例えば、タイミングT1からT1’までの処理で、外付けDRAM54に生成されたディスプレイリストDL1は、タイミングT1”から開始されるプリローダ73の動作によって実効化され、必要なCGデータが、CGROM55から外付けDRAM54に読み出されると共に、修正ディスプレイリストDL1’が、外付けDRAM54生成される。
そして、その後のタイミングT1+δから開始される描画回路76の処理によって、修正ディスプレイリストDL1’が解釈されて、フレームバッファFBa,FBcに、必要な画像データが生成される。描画回路の動作は、図10(b)に示す通りであり、修正ディスプレイリストDL1’に記載されている描画コマンドを順番に解析して(SS20)、描画コマンドが指定する静止画や動画について、グラフィックスデコーダ75やジオメトリエンジン77を機能させる。描画回路76は、書換え後の修正ディスプレイリストDL1’を処理するので、静止画や動画に関するCGデータの参照先は、外付けDRAM54である。
そして、グラフィックスデコーダ75によってデコードされた静止画データや動画データは、各々、外付けDRAM54に確保されている静止画デコード領域や動画デコード領域に伸張展開される(SS22〜SS23)。
次に、デコード後の静止画データや動画データが、描画コマンドによって規定される描画態様で、外付けDRAM54のフレームバッファFBの所定位置に書込まれることで描画処理が実行される(SS24)。なお、描画態様には、フレームバッファFBにおける描画位置が含まれるが、スプライト画像などの場合には、更に、描画姿勢や拡大縮小率などが規定される場合があり、ジオメトリエンジン77が機能する。
描画回路76がフレームバッファFBの描画処理領域に生成した画像データ(DL1で特定される画像データ)は、タイミングT1+2δから開始される動作周期において、描画処理領域と表示処理領域が切り替わり(bank flip )、表示回路74によって出力される。この動作は、図10(c)に示す通りである。
続いて、図13に基づいて、サブ表示装置DS2のディスプレイリストDLの作成手順を説明する。サブ表示装置DS2における画像演出は、図15(b)に示す背景画像を、左右方向に移動させつつ、その上に、適宜な描画素材を貼付けることで実現されている。
図15(b)に示す通り、実施例の背景画像は、横(=W)が1600ピクセル、縦(=2D)が600ピクセルの長尺フレームで構成されている。そして、この長尺フレームを、フレームバッファFBcの仮想描画空間VITに貼付ける場合に、その貼付け位置を適宜に移動さることで、円滑に移動する簡易動画の動作を実現している。
先に説明した通り、仮想描画空間VITに貼付けられた長尺フレームのうち、実際にフレームバッファFBcに登録されるのは、仮想描画空間VITの中央に定義される描画領域2H×2Vに位置する800×600ピクセル分の画像データだけである。
以上を踏まえて説明を続けると、サブ表示装置用DS2のディスプレイリストDLの作成においては、最初に、長尺フレームの貼付け位置を特定する必要がある(ST21)。そこで、本実施例では、仮想描画空間VIT上の座標位置を特定する変数として、水平変数HORと増分変数βを使用し、長尺フレームの貼付け位置の上端点を(HOR,−D)とし、右下端点を(HOR+W,D)としている。そして、この貼付け位置に、長尺フレームを貼付ける描画コマンドをディスプレイリストDLに記載する(ST21)。
なお、水平変数HORは、動作開始時に、HOR=−W+Hに初期設定され、増分変数βは、例えば、β=+5に初期設定されている。ここで、β=+5は、長尺フレームの貼付け位置を、1/30秒毎に、右方向に5ピクセル移動させることを意味する。1/30秒は、ディスプレイリストDLの更新周期を意味する。
ステップST21の処理が終われば、HOR←HOR+βの演算によって、水平変数HORの値を更新し(ST22)、更新後の水平変数HORの値が、限界位置を超えるか否かを判定する(ST23)。水平変数HORの限界位置は、図15(a)に示す左限界位置と、図15(c)に示す右限界位置であり、具体的には、左限界位置を左に超えるか、右限界位置を右に超えるかが判定される(ST23)。
そして、何れかの限界位置を超える場合には、β←−1*βの演算によって、増分変数βの符号を逆転させる。例えば、増分変数βが、+5から−5に書き換えられた場合には、その後は、長尺フレームの貼付け位置が、1/30秒毎に、左方向に5ピクセル移動することを意味する。
次に、増分変数βの正負符号に基づき、限界位置を超えた水平変数HORの値を、左端開始位置(−W+H)に書き換えるか、或いは、右端開始位置(−H)に書き換える(ST26,ST27)。以上の処理によって、その後のディスプレイリストに記載される描画コマンド(ST21)に基づき、長尺フレームの貼付け位置が適宜に移動することになる。
以上の処理によって、背景画の左右方向の移動動作が特定されるので、次に、背景画に重ねて表示すべき他の描画素材を特定する描画コマンド列をディスプレイリストに列記する(ST28)。したがって、最初に仮想描画空間VITに貼付けた長尺フレームの一部が消滅すると共に、後で配置される描画素材ほど優先されることになる。
そのため、フレームバッファFBcに上書きれる描画素材に関して、必要に応じて、αブレンド処理が実行される。αブレンド処理は、フレームバッファFBcの画像をCdとし、上書き素材の画像をCsとして、例えば、Cr=Cd*(1−As/255)+Cs*As/255の演算で実現される。なお、Asは、source側である上書き素材のα値である。
具体的には、図15(a)の位置から右方向の移動を開始して、図15(c)の状態に至り、その後、左方向に移動して図15(a)の状態に至る背景画(簡易動画)の往復運動が繰り返される。例えば、β=±5の場合には、800/5=160であるので、160/30=5.3秒程度を要して往路移動が完了し、続いて、5.3秒程度を要して復路移動が完了する周期10.6秒程度の往復運動が実現される。
例えば、一般動画の場合には、各フレームを30fps(frame per second)程度の速度で更新する必要があるので、10.6秒間の動画を実現するには、30×10.6枚のフレームデータが必要になるところ、本実施例では、1600×600ピクセル分の長尺フレーム一枚で足り、CGROMの容量抑制に効果的に貢献する。因みに、30×10.6枚の動画フレームデータは、MPEGなどの動画圧縮処理を経ない状態では、30×10.6×800×600ピクセル分の画像データとなり、本実施例のデータ量抑制効果(=15×10.6倍)の高さが確認される。
また、プリロード領域TEMPにおけるCGデータのキャッシング機能を活用することで、CGROM55を繰り返しアクセスする必要もなくなる。
ところで、これまで説明した実施例では、サブ表示装置を1個としたが、2個又はそれ以上のサブ表示装置を配置するのも好適である。そして、同形のサブ表示装置DS2,DS3を、上下又は左右に隣接配置するような場合には、同じ長尺フレームについて、その貼付け位置を、各仮想描画空間において適宜にずらすことで、上下又は左右に連続する画像を表示することもできる。
図13(b)は、サブ表示装置DS2のフレームバッファFBbと、サブ表示装置DS3のフレームバッファFBcに各々対応する2つの描画領域と、長尺フレームとの相対位置関係を図示したものである。この場合には、長尺フレームの仮想描画空間への貼付け位置を、描画領域の横幅分だけずらすことで、2つの表示装置DS2,DS3に、左右に連続する画像を表示することができる。そして、描画領域の横幅分の相対関係を維持しつつ、各仮想描画空間への貼付け位置を時間的に変化させれば、左右に移動する簡易動画を実現することができる。
また、図13(c)は、同形のサブ表示装置DS2,DS3を、上下に隣接配置した場合を例示しており、長尺フレームの仮想描画空間への貼付け位置を、描画領域の縦幅分だけずらすことで、2つの表示装置DS2,DS3に、上下に連続する画像を表示することができる。なお、一フレームを完成させる上で、長尺フレームの貼付け回数は一回に限定されず、一の表示装置の仮想描画空間に、単一の長尺フレームを複数回、隣接して貼付けても良い。
図13(c)の右側は、このような貼付け状態を示しており、単一の長尺フレームを左右方向に隣接させ、且つ、貼付け位置を上下方向にずらせて貼付けることで、例えば、サブ表示装置DS2において、特別図柄3個の変動動作が実現される。なお、この実施態様では、長尺フレームの下部位置には、これに続くべき、長尺フレームの上部位置の図柄が記載されている。そして、表示装置DS2に、長尺フレームの最下部を表示した後、最上部を表示するよう、貼付け位置を仮想描画空間の上方に切換えることで、スロットマシンの回転リールが回転する場合のような、自然な回転動作を表示することができる。
また、4個のサブ表示装置を左右上下に隣接配置すると共に、長尺フレームの仮想描画空間への貼付け位置を適宜にずらすことで、4倍の大きさの表示画面に、4倍の画像を表示して適宜に移動させることもできる。この移動動作は、往復動作に限定されず、規則的又は不規則な回転動作も含まれる。また、長尺フレームに代えて、描画領域より縦横に大きい大型フレームを使用するのも好適である。
以上、実施例について詳細に説明したが、具体的な記載内容は特に本発明を限定するものではない。例えば、上記した実施例では、フレームバッファFBaの補助バッファとして、左眼バッファLBUFと、右眼バッファRBUFを用意して、左眼画像を左眼バッファLBUFに構築し、右眼画像を右眼バッファRBUFに構築したが、何ら限定されない。
例えば、フレームバッファFBaに、直接、右眼画像を構築する構成を採れば、右眼バッファRBUFが不要となり、逆に、フレームバッファFBaに、直接、左眼画像を構築すれば、左眼バッファLBUFが不要となる。この場合、フレームバッファFBaの右眼画像に、左眼バッファLRBUFの左眼画像を複合させるαブレンド処理か、或いは、フレームバッファFBaの左眼画像に、右眼バッファRBUFの右眼画像を複合させるαブレンド処理が必要となる。
このαブレンド処理において、Cr=Cd*(1−α/255)+Cs*α/255の演算式を採る場合には、フレームバッファFBaに構築した画像Cd(Destination )に対して、左眼画像又は右眼画像のいずれを、新規画像Cs(Source)とするかに応じて、図9に示す初期処理(ST1)では、フレームバッファFBaのαチャンネルに、最適値(0/255)を設定することになる。
なお、この構成では、右眼画像又は左眼画像を構築する過程で、フレームバッファFBaにおいて、αブレンド処理が必要となる場合がある。しかし、このαブレンド処理は、source側のα値(As)を使用するので、フレームバッファFBaのαチャンネルが上書き破損されることはない。すなわち、右眼画像又は左眼画像を構築するためのαブレンド処理では、例えば、Cr=Cd*(1−As/255)+Cs*As/255の演算式が使用される。
また、上記した実施例のメイン表示装置DS1は、横長の表示画面で構成されており、この表示画面を右90°回転させて縦長に配置したが、何ら限定されるものではない。すなわち、縦長の表示画面を有するメイン表示装置の場合には、左90°回転用の描画コマンドは不要であり、左眼バッファLBUFの左眼画像Da_Lと、右眼バッファRBUFからフレームバッファFBaに転送された右眼画像Da_Rについて、αブレンド処理をすれば足りることになる。
また、上記した実施例では、CGROM55の画像データのデータ量を抑制するため、メイン表示装置で表示する画像が、原則として、1024×820ピクセルを超えないよう抑制されているが、この点も何ら限定されない。例えば、メイン表示装置DS1で表示する画像を、表示画面のピクセル数(縦1280×横1024)に対応して、縦1280×横1024ピクセル、又はこれ以下にすれば、描画コマンドによる描画演算処理が単純化される。
図15は、そのように簡素化した場合の関係を図示したものである。すなわち、図15(1)は、縦1280×横1024ピクセル分のフレームバッファFBaに、直立状態の右眼画像Da_Rを配置した状態を示している。但し、このような直立配置の構成を採る場合には、初期処理(図9のST1)において、フレームバッファFBaの縦方向の奇数列(1列、3列、・・・)のαチャンネルに、α値=255が記憶され、フレームバッファFBaの縦方向の偶数列(2列、4列、・・・)のαチャンネルに、α値=0が記憶されている必要がある。
そして、図15(2)は、縦1280×横1024ピクセル分の左眼バッファLBUFに、左眼画像Da_Lを配置した状態を示し、図15(3)は、αブレンド処理後のフレームバッファFBaの画像を示している。この場合のαブレンド処理も、Cr=Cd*(1−α/255)+Cs*α/255の演算によって実現される。
このような構成においても、左眼バッファLBUF、又は右眼バッファRBUFを省略できるのは勿論である。また、長尺フレーム又は大型フレームを使用して、メイン表示装置DS1において簡易動画を再生することも何ら禁止されない。この場合、メイン表示装置DS1は、3D表示モードであるか2D表示モードであるかを問わない。
また、上記の実施例では、遊技者が操作ボタン11を押圧することで、2D表示と3D表示を切り替える構成としたが、この構成に代え、又は、この構成に加えて、係員のボタン操作(不図示の設定ボタンの操作)に応じて、表示モードを切り替える構成としても良い。以上、ここまで、専ら、弾球遊技機に関して説明したが、本発明は、弾球遊技機に限らず、回胴遊技機など、画像演出を伴う他の遊技機においても好適に活用できることは勿論である。
また、上記の実施例では、左眼画像と右眼画像を構成する画像データを、各々、CGROM55に確保しておく構成を説明したが、この構成に代えて、左眼画像と右眼画像を複合させた複合画像(図16(3)参照)の画像データを、予めCGROM55に確保しておくのも好適である。
このような実施例では、3D表示モード時には、図9のステップST5〜ST7の処理が不要となり、画像制御CPU63は、CGROM55から読み出した3D表示用の複合画像を、そのまま表示装置DSiに表示することを指示するディスプレイリストを生成して、これをVDP回路52に転送することで足りる。
一方、2D表示モード時には、画像制御CPU63は、3D表示用の複合画像から、左眼画像又は右画像を切り出すためのディスプレイリストを生成して、これをVDP回路52に転送することになる。ここで、左眼画像又は右画像を切り出す抽出処理には、例えば、αブレンド処理が活用される。
図17(a)は、メイン表示装置DS1に関する3D表示用の複合画像から、例えば、左眼画像だけを切り出す抽出処理を例示したフローチャートであり、2D表示モード時には、図示例の動作を実現するディスプレイリストが生成される。
図17(a)に例示した抽出処理では、メイン表示装置DS1について、3D画像データをフレームバッファFBaに完成させると、同じ3D画像データを作業領域WKにコピーする(ST20)。
次に、フレームバッファFBaの奇数列のαチャンネルにα値0を書込み、偶数行目のαチャンネルにα値255を書込む(ST21)。ここで、フレームバッファFBaの奇数列とは、表示装置DS1の奇数列のピクセルを特定する記憶領域である。図17(b)の左側は、ステップST21の処理後のメモリの状態を図示したものであり、次に説明するαブレンド処理では、フレームバッファFBaの画像がDestination 画像となり、作業領域WKの画像がSource画像となる。
そして、続くステップST22の処理では、作業領域WKのSource画像Csを、図示の右方向に1列ずらせた状態で、フレームバッファFBaのDestination 画像Cdと間で、(式1)のαブレンド処理を実行する。なお、1列ずらす処理は、作業領域WKのSource画像Csを、フレームバッファFBaに貼付ける描画コマンドにおいて、貼付け領域(Destination 領域)の左上端点と右下端点を1ピクセル分ずらすことで実現される。
Cr=Cd*(1−α/255)+Cs*α/255・・・(式1)
式1の演算の結果、α値=0の奇数列目は、フレームバッファFBaの画像Cdが残り、α値=255の偶数列目は、作業領域WKの画像Csが残ることで、全体として、複合画像から左眼画像だけが抽出されることになる。
なお、左眼画像を抽出するか右眼画像を抽出するかは任意であり、左眼画像に代えて右眼画像を抽出しても良く、その場合には、α値を変更するか、αブレンド処理を変更すれば良い。また、CGROM55の画像データ量を抑制する目的や、表示画面の縦横形状に対応させる目的で、図11〜図12で説明した回転処理や拡大処理を適宜に付加しても良い。但し、左眼画像ピクセルと右眼画像ピクセルとが左右に隣接する図12(b)のような複合画像については、縦方向の拡大のみが許容され、横方向の拡大は禁止される。