以下、実施例に基づいて本発明を詳細に説明する。図1は、本実施例のパチンコ機GMを示す斜視図である。このパチンコ機GMは、島構造体に着脱可能に装着される矩形枠状の木製外枠1と、外枠1に固着されたヒンジ2を介して開閉可能に枢着される内枠3とで構成されている。この内枠3には、遊技盤5が、裏側からではなく、表側から着脱自在に装着され、その前側には、ガラス扉6と前面板7とが夫々開閉自在に枢着されている。なお、本明細書では、ガラス扉6と前面板7を総称して前扉部材と称する。そして、前扉部材(ガラス扉6や前面板7)が枢着された状態の内枠3を遊技枠と称することがある。
ガラス扉6の外周には、LEDランプなどによる電飾ランプが、略C字状に配置されている。一方、ガラス扉6の上部左右位置と下側には、全3個のスピーカが配置されている。上部に配置された2個のスピーカは、各々、左右チャンネルR,Lの音声を出力し、下側のスピーカは低音を出力するよう構成されている。
前面板7には、発射用の遊技球を貯留する上皿8が装着され、内枠3の下部には、上皿8から溢れ出し又は抜き取った遊技球を貯留する下皿9と、発射ハンドル10とが設けられている。発射ハンドル10は発射モータと連動しており、発射ハンドル10の回動角度に応じて動作する打撃槌によって遊技球が発射される。
上皿8の外周面には、チャンスボタン11が設けられている。このチャンスボタン11は、遊技者の左手で操作できる位置に設けられており、遊技者は、発射ハンドル10から右手を離すことなくチャンスボタン11を操作できる。このチャンスボタン11は、通常時には機能していないが、ゲーム状態がボタンチャンス状態となると内蔵ランプが点灯されて操作可能となる。なお、ボタンチャンス状態は、必要に応じて設けられるゲーム状態である。
また、チャンスボタン11の下方には、ロータリースイッチ型の音量スイッチVLSWが配置されており、遊技者が音量スイッチVLSWを操作することで、無音レベル(=0)から最高レベル(=7)まで、スピーカ音量を8段階に調整できるようになっている。なお、スピーカの音量は、係員だけが操作可能な設定スイッチ(不図示)によって初期設定されており、遊技者が音量スイッチVLSWを操作しない限り、初期設定音量が維持される。また、異常事態が発生したことを報知する異常報知音は、係員による初期設定音量や、遊技者の設定音量に拘らず最高音量で放音される。
上皿8の右部には、カード式球貸し機に対する球貸し操作用の操作パネル12が設けられ、カード残額を3桁の数字で表示する度数表示部と、所定金額分の遊技球の球貸しを指示する球貸しスイッチと、ゲーム終了時にカードの返却を指令する返却スイッチとが設けられている。
図2に示すように、遊技盤5の表面には、金属製の外レールと内レールとからなるガイドレール13が環状に設けられ、その略中央には、中央開口HOが設けられている。そして、中央開口HOの下方には、不図示の可動演出体が隠蔽状態で収納されており、可動予告演出時には、その可動演出体が上昇して露出状態となることで、所定の信頼度の予告演出を実現している。ここで、予告演出とは、遊技者に有利な大当り状態が招来することを不確定に報知する演出であり、予告演出の信頼度とは、大当り状態が招来する確率を意味している。
中央開口HOには、大型(例えば、横1280×縦1024ピクセル)の液晶カラーディスプレイ(LCD)で構成されたメイン表示装置DS1が配置され、メイン表示装置DS1の右側には、小型(例えば、横480×縦800ピクセル)の液晶カラーディスプレイで構成された可動式のサブ表示装置DS2が配置されている。メイン表示装置DS1は、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に表示する装置である。この表示装置DS1は、中央部に特別図柄表示部Da~Dcと右上部に普通図柄表示部19とを有している。そして、特別図柄表示部Da~Dcでは、大当り状態の招来を期待させるリーチ演出が実行されることがあり、特別図柄表示部Da~Dc及びその周りでは、適宜な予告演出などが実行される。
サブ表示装置DS2は、通常時には、その表示画面が遊技者に見やすい角度に傾斜した静止状態で画像情報を表示している。但し、所定の予告演出時には、遊技者に見やすい角度に傾斜角度を変えながら、図示の左側に移動する共に、所定の予告画像を表示するようになっている。
すなわち、実施例のサブ表示装置DS2は、単なる表示装置ではなく、予告演出を実行する可動演出体としても機能している。ここで、サブ表示装置DS2による予告演出は、その信頼度が高く設定されており、遊技者は、大きな期待感をもってサブ表示装置DS2の移動動作に注目することになる。
ところで、遊技球が落下移動する遊技領域には、第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(a)は、上記した各動作を実現するパチンコ機GMの全体回路構成を示すブロック図である。また、図3(b)は、払出制御基板25に配置された電源モニタ部MNTの回路構成を示す回路図である。
図3(a)に示す通り、このパチンコ機GMは、AC24Vを受けて各種の直流電圧(35V,12V,5V)をAC24Vと共に出力する電源基板20と、遊技制御動作を中心統括的に担う主制御基板21と、音声演出用の回路素子SNDを搭載した演出インタフェイス基板22と、主制御基板21から受けた制御コマンドCMDに基づいてランプ演出、音声演出、及び画像演出を統一的に実行する演出制御基板23と、演出制御基板23と表示装置DS1,DS2の間に位置する液晶インタフェイス基板24と、主制御基板21から受けた制御コマンドCMD’に基づいて払出モータMを制御して遊技球を払い出す払出制御基板25と、遊技者の操作に応答して遊技球を発射させる発射制御基板26と、を中心に構成されている。
なお、演出インタフェイス基板22と、演出制御基板23と、液晶インタフェイス基板24とは、配線ケーブルを経由することなく、雄型コネクタと雌型コネクタとを直結されている。そのため、各電子回路の回路構成を複雑高度化しても基板全体の収納空間を最小化できると共に、接続ラインを最短化することで耐ノイズ性を高めることができる。
図示の通り、主制御基板21が出力する制御コマンドCMD’は、払出制御基板25に伝送される。一方、主制御基板21が出力する制御コマンドCMDは、演出インタフェイス基板22を経由して演出制御基板23に伝送される。ここで、制御コマンドCMD,CMD’は、何れも16bit長であるが、8bit長毎に2回に分けてパラレル送信される。
主制御基板21と払出制御基板25には、ワンチップマイコンを含むコンピュータ回路が搭載されている。また、演出制御基板23には、VDP回路(Video Display Processor )52や内蔵CPU回路51などのコンピュータ回路が内蔵された複合チップ50が搭載されている。そこで、これらの制御基板21、25、23と、演出インタフェイス基板22や液晶インタフェイス基板24に搭載された回路、及びその回路によって実現される動作を機能的に総称して、本明細書では、主制御部21、演出制御部23、及び払出制御部25と言うことがある。なお、主制御部21に対して、演出制御部23と、払出制御部25がサブ制御部となる。
また、このパチンコ機GMは、図3(a)の破線で囲む枠側部材GM1と、遊技盤5の背面に固定された盤側部材GM2とに大別されている。枠側部材GM1には、ガラス扉6や前面板7が枢着された内枠3と、その外側の木製外枠1とが含まれており、機種の変更に拘わらず、長期間にわたって遊技ホールに固定的に設置される。一方、盤側部材GM2は、機種変更に対応して交換され、新たな盤側部材GM2が、元の盤側部材の代わりに枠側部材GM1に取り付けられる。なお、枠側部材1を除く全てが、盤側部材GM2である。
図3(a)の破線枠に示す通り、枠側部材GM1には、電源基板20と、バックアップ電源基板33と、払出制御基板25と、発射制御基板26と、枠中継基板36と、モータ/ランプ駆動基板37と、が含まれており、これらの回路基板が、内枠3の適所に各々固定されている。一方、遊技盤5の背面には、主制御基板21、演出制御基板23が、表示装置DS1,DS2やその他の回路基板と共に固定されている。そして、枠側部材GM1と盤側部材GM2とは、一箇所に集中配置された集中接続コネクタC1~C3によって電気的に接続されている。
電源基板20は、遊技ホールから配電される交流電圧AC24Vに基づいて、三種類の直流電圧(35V,12V,5V)を生成し、各直流電圧を、集中接続コネクタC2を経由して、演出インタフェイス基板22に配電している。また、三種類の直流電圧(35V,12V,5V)は、交流電圧AC24Vと共に、払出制御基板25に配電される。そして、払出制御基板25に配電された直流電圧(35V,12V,5V)は、バックアップ電源BAKと共に、集中接続コネクタC1を経由して、主制御基板21に配電されるよう構成されている。
直流35Vは、遊技球の発射動作に関し、球送りソレノイドや発射ソレノイドの駆動電源、及び、電動式チューリップ(可変入賞装置)や大入賞口16を開閉駆動する電磁ソレノイドの駆動電源として使用される。また、直流12Vは、各制御基板から制御されるLEDランプやモータの駆動電源、及びデジタルアンプの電源電圧として使用され、一方、直流5Vは、払出制御基板25や主制御基板21のワンチップマイコンの電源電圧、及び、各制御基板に搭載された論理素子の電源電圧として使用される。また、直流5Vは、演出インタフェイス基板22のDC/DCコンバータでレベル降下された後、レベル降下された各種レベルの電圧が、各種コンピュータ回路(複合チップ50や音声プロセッサ27など)の電源電圧として使用される。
バックアップ電源BAKは、電源遮断後、主制御部21と払出制御部25のワンチップマイコンの内蔵RAMのデータを保持するためのDC5Vの直流電源であり、例えば、電気二重層コンデンサで実現される。この実施例では、専用のバックアップ電源基板33が設けられており、バックアップ電源基板33に配置された電気二重層コンデンサは、払出制御基板25から受ける直流電圧5Vによって遊技動作中に充電されるよう構成されている。
一方、電源遮断後は、バックアップ電源BAKが、主制御部21と払出制御部25のワンチップマイコンの内蔵RAMのデータを保持するので、主制御部21と払出制御部25は、電源遮断前の遊技動作を電源投入後に再開できることになる。なお、バックアップ電源基板33には、少なくとも数日は、各ワンチップマイコンの内蔵RAMの記憶内容を保持可能な電気二重層コンデンサが配置されている。
ところで、本実施例では、従来の機器構成とは異なり、交流電圧AC24Vの異常低下を示す電源異常信号ABNは、電源基板20ではなく、払出制御基板25の電源モニタ部MNTにおいて生成されるよう構成されている(図3及び図4参照)。電源モニタ部MNTは、図3(b)に示す通り、電源基板20から受けるAC24を整流する全波整流回路と、全波整流回路の出力を受けて通電発光するフォトダイオードDと、電源基板20から受ける直流電圧5Vを電源とし、フォトダイオードDの発光に基づいてON動作するフォトトランジスTRと、フォトトランジスTRのON動作に基づいてHレベルの検出信号ABN(電源異常信号)を出力する出力部と、を有して構成されている。なお、フォトダイオードDと、フォトトランジスTRとで、フォトカプラPHを構成している。
上記の構成において、電源投入後、フォトカプラPHが速やかにON状態になることで、電源異常信号ABNが正常レベル(H)となる。しかし、その後、交流電源が何らかの理由(正常には電源遮断)で異常降下すると、図7に示す監視信号Wm5,Wm5が出力されるタイミング以前に、フォトカプラPHがOFF状態に変化することで、電源異常信号ABNが異常レベル(L)に変化する。この電源異常信号ABNは、払出制御基板25のワンチップマイコンに伝送されると共に、集中接続コネクタC1を経由して、主制御基板21のワンチップマイコンにも伝送されるよう構成されている。したがって、異常レベルの電源異常信号ABNを受けた各ワンチップマイコンは、必要な情報を、各々の内蔵RAMに記憶するバックアップ処理を実行することになる(図7の右上部参照)。先に説明した通り、内蔵RAMの情報は、バックアップ電源BAKによって維持されるので、電源遮断前の遊技動作が電源投入後に再開可能となる。
図4(a)は、電源基板20の回路構成を、やや詳細に示すブロック図である。図示の通り、電源基板20には、AC24Vを受けるフィルタ回路Fiと、通電遮断回路CUTの制御に基づきAC100Vの通電を遮断するリレー回路RLと、同期整流式の全波整流回路RECTと、昇圧式の力率改善回路(力率改善部品PFCなど)と、電圧監視回路WTCHと、4種類の降下型のDC/DCコンバータなどが搭載されている。4種類のDC/DCコンバータは、何れも力率改善回路が出力するDC35Vを電圧降下させるが、出力する電圧レベル(5V/12V)に応じて、5VコンバータCV5m,CV5sと、12VコンバータCV12m,CV12sと、に区分される。
また、これらのコンバータは、整流方式に基づいて、非同期整流式コンバータCV12m,CV5mと、同期整流式コンバータCV12s,CV5sと、に区分される。DC/DCコンバータの具体的な回路構成については、図8~図10に基づいて後述するが、本明細書において、同期整流式とは、制御信号によって適宜にON/OFF制御されるトランジスタ(典型的にはMOS型FET)によって通電動作が実行される形式を言い、一方、非同期整流式とは、ON/OFF制御されることのない整流ダイオードによって通電動作が実行される形式を言う。
図3(a)に示す通り、電源基板20から、払出制御基板25及び演出インタフェイス基板22に各種の電圧が配電されるが、図4(a)には、第1コネクタMainと交流コネクタACとを経由して、電源基板20と払出制御基板25が接続されること、及び、第2コネクタSubを経由して、電源基板20と演出インタフェイス基板22とが接続されることが示されている。また、第3コネクタAuxを経由して、ガラス扉6や前面板7などの前扉部材に配置された演出モータやLEDランプに対して、直接DC12Vが供給されることが示されている。
この構成に対応して、第1コネクタMainと第2コネクタSubを経由して、正常な通電が実現されていることを示す青色LEDと赤色LEDが、通電報知ランプとして、電源基板20の表面側の縁部に各3個配置されている(図4(b)参照)。具体的には、電源基板20を奥側に配置し、これに重ねて払出制御基板25を配置するが、払出制御基板25を取り外さなくても、青色LEDと赤色LEDの点灯状態が確認できるよう、電源基板20の表面側の縁部に通電報知ランプが配置されている。なお、これらのLEDは、好適には砲弾型で構成されている。
通電報知ランプについて確認すると、まず、第1コネクタMainに対応して、ヒューズFu3の下流側と、2つの非同期整流式コンバータCV12m,CV5mの各下流側とに、合計3個の赤色LEDが配置されている。これらは、35Vと12Vと5Vが各々、払出制御基板25に配電されていることを、赤色点灯で示すものであり、何れかのLEDの消灯は、配電停止状態を示す。
一方、第2コネクタSubに対応して、ヒューズFu2の下流側と、2つの同期整流式コンバータCV12s,CV5sの各下流側とに、合計3個の青色LEDが配置されている。これらは、35Vと12Vと5Vが各々配電されていることを、青色点灯で示すものであり、何れかの消灯は、配電停止状態を示す。
図4(b)に示す通り、配電する電圧レベル(5/12/35V)に応じて、一対の赤色LEDと青色LEDが、互いに隣接して電源基板20の縁部に配置されており、係員が内枠3を開放して遊技機の裏側を見るだけで、6個の通電報知ランプの点灯の有無と、点灯色が直ちに認識できるようになっている。したがって、6個の通電報知ランプのうち消灯状態のLEDの位置から、配電されていない電圧の電圧レベルと、配電が停止されている回路基板が、払出制御基板25か演出インタフェイス基板22かが容易に認識できることになる。
ところで、先に説明した通り、本実施例では、第3コネクタAuxを経由して、前扉部材たるガラス扉6や前面板7などに配置された演出モータのモータドライバや、LEDランプのLEDドライバに対して、直接DC12Vが供給される。通常の機器構成では、前扉部材に配置された演出モータやLEDランプに対して、演出制御基板23や、演出インタフェイス基板22からDC12Vが配電されるが、この実施例では、演出モータやLEDランプに対して、直接、DC12Vが供給されるので、配電経路がシンプル化されるだけでなく、配電経路での電力損失が大幅に軽減され、無駄な電力消費が抑制される。
以下、図4(a)に示す電源基板20の内部構成について、図5~図10に基づいて説明する。先ず、図5は、通電遮断回路CUTを示す回路図である。図示の通り、通電遮断回路CUTは、交流24Vを受けるブリッジ整流回路BRGと、降伏電圧48V程度のツェナーダイオードZD1と、降伏電圧16V程度のツェナーダイオードZD2と、降伏電圧27V程度のツェナーダイオードZD3と、ツェナーダイオードZD1が非降伏状態である正常時には、OFF動作を継続するトランジスタTR1(NPN型バイポーラ)と、正常時にはON動作を継続するトランジスタQ0(n型MOSFET)と、半波整流ダイオードDrecと、半波整流ダイオードDrecを通過する電流で充電される平滑コンデンサCrecと、リレー接点CN1,CN2をON動作させるリレーコイルRL1,RL2などを有して構成されている。
なお、リレーコイルRL1,RL2や、リレー接点CN1,CN2など、矩形枠で囲まれている部分が、一体化されたリレー部品RLであり、電源基板20の表面側に配置されている。また、以下で説明する電解コンデンサCrecと、フィルムコンデンサCbrも、電源基板20の表面側から挿入配置されるが、それ以外の部品は、全て面実装部品で構成されて、電源基板20の裏面側に面実装されている。
交流24Vの波高値は、約34V程度であることから、正常時には、ツェナーダイオードZD1が降伏することはなく、ブリッジ整流回路BRGが全波整流回路として機能することはない。一方、ツェナーダイオードZD2の降伏電圧は16V程度であることから、ツェナーダイオードZD2は、交流24Vに基づいて降伏状態となり(導通電流I2)、また、トランジスタQ0は、ツェナーダイオードZD2の両端電圧16Vに基づいてON動作状態となる。
そのため、平滑コンデンサCrecは、電流I3に基づき、AC24Vの波高値に近いレベルまで充電されることになり、ツェナーダイオードZD3を降伏させる。したがって、リレーコイルRL1,RL2には、電流制限抵抗Rに制限された状態で、ツェナーダイオードZD3の降伏電圧27Vに対応する電流が定常的に流れることになり、リレー接点CN1,CN2は、定常的にON状態を維持する。そして、リレー接点CN1,CN2がON状態を維持することから、フィルタ回路Fiを経由した交流24Vは、定常的に、全波整流回路RECTや玉貸機RNTに供給されることになる。なお、交流24Vは、交流コネクタACと払出制御基板25とを経由して玉貸機RNTに配電される。
正常時に半波整流ダイオードDrecに流れる電流Inormalは、リレーコイルRL1,RL2の全電流I1(=IL1+IL2)と、ツェナーダイオードZD3への電流I2と、平滑コンデンサCrecへの電流I3の総和である(Inormal=I1+I2+I3)。また、平滑コンデンサCrecは、700μF程度の大容量円柱形状の電解コンデンサで構成され、電源基板20の表面側に立設されている。
ところで、例えば、係員の思い違いなどに基づき、交流24Vに代えて交流100Vが遊技機に配電される場合も有り得る。しかし、そのような場合には、ツェナーダイオードZD1が降伏して、フィルムコンデンサCbrが充電され、OFF状態のトランジスタTR1がON状態に遷移するため、トランジスタQ0がOFF状態に遷移する。そのため、図示の電流I3の径路が遮断されて、リレーコイルRL1,RL2の通電電流が途絶えるので、リレー接点CN1,CN2が、直ちにOFF状態に遷移して、交流100Vの伝送が阻止される。ここで、リレー接点が2つ設けられているので、何れのラインが、フレームグランド(不図示)に接続されたグランドラインであっても、確実に交流100Vの通電を停止させることができる。なお、リレー接点CN1,CN2がOFF遷移するまでの動作は一瞬で終わるので、最上流位置のヒューズFu1が溶断することはない。
以上の通り、本実施例では、万一、係員が設置ミスをしても、電源スイッチの投入に拘らず、遊技機が起動しないことで、係員は操作ミスを認識することができる。また、遊技機の破損が未然防止されるだけでなく、最上流位置のヒューズFu1や、その他のヒューズFu1~FU6が溶断することもないので、ヒューズ付け替えなどの手間も不要となる。なお、交流24Vは、払出制御基板25を経由して、球貸機RNTに伝送されるよう構成されているが(図4(a)右側参照)、交流100Vが球貸機RNTを破損するおそれも無い。
次に、図6(a)に基づいて単一回路部品で構成された同期整流式の全波整流回路(全波整流チップ)RECTについて説明する。図示の通り、例えば、ハイブリッドICである全波整流チップRECTは、4個のN型MOSトランジスタQ1~Q4と、各MOSトランジスタのゲート端子Gに、適宜な制御電圧TGa,TGbを供給することで、同期整流動作を実現する駆動制御回路CTLとが内蔵されている。本明細書において、ハイブリッドICとは、モノリシックICに対比される用語であり、一般に、一枚の絶縁基板上に、個別部品を貼り付け、それらを金属配線で結んで一体化して構成されるが、特に限定されない。なお、以下の説明において、複合回路部品として説明するものを除いて、モノリシックICと位置付けられる。
この全波整流チップRECTは、2本の交流入力端子(AC+,AC-)と、2本の脈流出力端子(V+,V-)を有する一方、電源電圧端子が設けられておらず、駆動制御回路CTLは、交流電圧(AC+,AC-)や脈流出力(V+,V-)に基づいて、N型MOSトランジスタQ1~Q4のゲート端子Gとソース端子Sの間に供給すべき、適宜な駆動電圧Vgを生成している。
4個のMOSトランジスタQ1~Q4には、各々、ボディダイオード(寄生ダイオードD1~D4)が付随しているので、全てのMOSトランジスタがOFF状態であれば、4個のボディダイオードD1~D4が、全体として、非同期整流式の全波整流回路(ブリッジ整流回路)を構成することになる。また、この全波整流チップRECTには、先に説明した駆動制御回路CTLが内蔵されており、駆動制御回路CTLは、AC+端子とV+端子間の端子間電圧Vaと、AC+端子とV-端子間の端子間電圧Vbとを常時監視している。
そして、Va>0となると、ボディダイオードD1が導通を開始する以前に、駆動制御回路CTLが、MOSトランジスタQ1とMOSトランジスタQ3の駆動電圧Vgを適宜なHレベルに増加させることで、2つのトランジスタQ1,Q3をON動作させる。そのため、ボディダイオードD1,D3をバイパスして、AC+端子→トランジスタQ1→下流側負荷→トランジスタQ3→AC-端子の経路で電流が流れることになる。この場合、各トランジスタQ1,D3のドレイン端子Dとソース端子Sの間の電圧降下は、ボディダイオードD1,D3が導通した場合の電圧降下(順方向電圧0.6~1.0V)より格段に低いので、無駄な消費電力が大幅に軽減される。
更に、本実施例では、N型MOSトランジスタを使用するので、P型MOSトランジスタを使用する場合より、オン抵抗が低減され、この意味でも電源効率が向上される。因みに、全波整流チップRECTは、AC24V入力、脈流平均電流10A出力の動作状態でも、電源効率が96%以上(99%程度)であるので、放熱板の装着も不要である。このように本実施例では、N型MOSトランジスタを4個使用するが、電源効率が多少低下してよい場合には、N型MOSトランジスタ2個と、整流ダイオード2個でブリッジ整流回路を構成しても良い。
何れにしても、Va>0となった後、Va<0となると、駆動制御回路CTLは、トランジスタQ1,Q2がOFF動作するよう制御し、更にその後、Vb>0となると、ボディダイオードD2が導通を開始する以前に、MOSトランジスタQ2とMOSトランジスタQ4の駆動電圧Vgを適宜なHレベルに増加させる。この場合も、ボディダイオードD2,D4をバイパスして、AC-端子→トランジスタQ2→下流側負荷→トランジスタQ4→AC+端子の経路で電流が流れるので、無駄な消費電力が大幅に軽減される。
図4(a)に示す通り、全波整流チップRECTの下流側には、2~3μF程度の高周波バイパスコンデンサC1と、40μH程度のチョークコイルL1が配置されており、高周波バイパスコンデンサC1は、高周波ノイズを吸収して、波高値34V程度の脈流電圧で充電される。なお、高周波バイパスコンデンサC1は、角板状であって、電源基板20の表面側に立設されている。
ところで、全波整流チップRECTの内部消費電力は、上記の構成に基づいて、大幅に軽減されているものの、各接続端子には、定常的に大電流が流れる。そこで、この実施例では、全波整流チップRECTを、直接、電源基板20に半田付けするのではなく、全波整流チップRECTの端子に各々複数本の回路接続バーを接続した複合第1回路部品としている。
すなわち、全波整流チップRECTの2本の交流入力端子(AC+,AC-)と、2本の脈流出力端子(V+,V-)について、各端子に各々複数本の回路接続バーを接続して、その全体を適宜にモールドして薄板状の複合第1回路部品を完成させている。このように、全波整流チップRECTへの入出力電流は、何れも複数本の回路接続バーを経由するので、他の回路部品への伝送路における伝送損失を効果的に低減することができる。なお、回路接続バーは、直接、全波整流チップRECTに電気接続しても良いし、別の基板BR(好適には絶縁基板)に全波整流チップRECTを配置した上で電気接続しても良い。
いずれにしても、複合第1回路部品の外観は、その本体が30×60×10mm程度の薄板状であり、図6(b)に示す通り、合計17本の回路接続バーが一列に整列して、部品本体から略直交した状態で突出している。ここで、17本の回路接続バーは、交流入力端子AC+に電気接続された第1グループ4本と、交流入力端子AC-に電気接続された第2グループ4本と、脈流出力端子V+に電気接続された第3グループ4本と、脈流出力端子V-に電気接続された第4グループ5本と、に区分される。
各グループの回路接続バーは、何れも、丸棒状または平板状であり、その直径Φや板幅WDは、正面視で、1mm前後(Φ=WD=0.6~1.5mm程度)である。また、各グループの回路接続バーは、何れも、2mm以上(好適には2~3mm程度)の均一ピッチPiで整列しており、各グループの回路接続バーは、均一ピッチPiを維持した状態で、電源基板20に略直交状態で電源基板20の表面側から挿入され、その表裏面で、各グループに対応する回路パターンランドに半田付けされている。
回路パターンランドは、回路基板上に銅箔などで形成された導体面であり、本実施例では、パターン幅1mmの導体面に1Aの電流を流しても、消費電力が全く問題にならない材料を選択し、所定の膜厚を形成している。そして、各グループの回路パターンランドは、各グループに属する回路接続バーの最大離間距離を下回らない十分な平面幅に形成されている。
具体的には、第1グループ~第3グループの回路パターンランドは、各4本の回路接続バーに対応して、各々、4×Piを超える平面幅に形成され、第4グループの回路パターンランドは、5本の回路接続バーに対応して、各々、5×Piを超える平面幅に形成されている。特に限定されないが、本実施例の回路パターンランドは、各々、回路接続バーとの接続箇所を最低幅(4×Pi,5×Pi)とし、それ以外は、ほぼ最低幅以上のパターン幅に形成されている。
したがって、第1グループ~第3グループの回路パターンランドは、仮に、Pi=2.5mmの場合には、各々、4×Pi(10mm)以上であり、10A以上の定常電流が許容されることになる。かかる構成に対応して、本実施例の全波整流チップRECTは、その出力電流が最大10A程度で機能している。
上記の構成を有する全波整流チップRECT(複合第1回路部品)で全波整流された脈流電圧V1は、昇圧式の力率改善回路に供給される。力率改善回路は、力率改善部品PFCと関連する回路部品とで構成されるが、図6(c)は、樹脂モールドされた力率改善部品PFCと、力率改善動作に関連する回路部品を図示したものである。図示の通り、力率改善部品PFCは、第1入力端子Vinと、第2入力端子Vin2と、負電圧入力端子V-と、電圧出力端子Voutと、グランド端子GNDと、電源電圧供給端子Vccとを有して構成されている。
図6(d)は、複合第2回路部品たる力率改善部品PFCの外観を図示している。図示の複合第2回路部品は、その本体が30×60×10mm程度の薄板状であり、図6(e)に示す電磁シールドボックスSHに収容されることで、一体化回路部品として完成される。電磁ボックスSHは、複合第2回路部品に対応して、31mm×65mm×12mm程度の角型の導体ボックスで形成されている。そして、門型に形成された解放面BKと、面一の閉塞面FTと、解放面BKと閉塞面FTとを接続する板幅12mm程度の上面及び側面とで、底面の無い略直方形状に形成されて電源基板20に固定されている。
力率改善部品PFCの内部構成は、図6(c)に示す通りであるが、ハイブリッドIC(PFC)として、単一素子化しても良いし、基板(絶縁基板)BRに必要な回路部品を配置して完成させても良い。何れにしても、この複合第2回路部品PFCも、図6(d)に示す通り、合計16本の回路接続バーが一列に整列して、部品本体から略直交した状態で突出している。16本の回路接続バーには、第1入力端子Vinグループ4本と、負電圧入力端子V-グループ4本と、電圧出力端子Voutグループ3本と、グランド端子GNDグループ3本とが含まれている。
複合第2回路部品においても、各グループの回路接続バーは、何れも、丸棒状または平板状であり、その直径Φや板幅WDは、正面視で、1mm前後(Φ=WD=0.6~1.5mm程度)である。また、各グループの回路接続バーは、何れも、2mm以上(好適には2~3mm程度)の均一ピッチPiで整列しており、各グループの回路接続バーは、均一ピッチPiを維持した状態で、電源基板20に略直交状態で電源基板20の表面側から挿入され、その表裏面で、各グループに対応する回路パターンランドに半田付けされている。
複合第2回路部品においても、回路パターンランドは、各グループに属する回路接続バーの最大離間距離を下回らない十分な平面幅に形成されており、また、パターン幅1mmの導体面に1Aの電流を流しても、電力損失が全く問題にならない材料を選択し、所定の膜厚を形成している。回路パターンランドは、例えば、電圧出力端子Voutやグランド端子GNDについて、各3本の回路接続バーに対応して、各々、3×Piを超える平面幅に形成されている。また、回路パターンランドは、回路接続バーとの接続箇所を最低幅(3×Pi)とし、それ以外は、ほぼ最低幅以上のパターン幅に形成されている。
したがって、電圧出力端子Voutやグランド端子GNDについての回路パターンランドは、例えば、Pi=2.5mmの場合には、3×Pi(7.5mm)以上であり、7.5A以上の定常電流が許容されることになる。かかる構成に対応して、本実施例の力率改善部品PFCは、その出力電流が最大7A程度で機能している。
以上を踏まえて、力率改善部品PFCについて、関連する回路構成も含め更に説明する。図6(c)に示す通り、全波整流回路RECTの脈流出力端子V+,V-の両端電圧である脈流出力V1は、平滑コンデンサC1とサーミスタTHに供給されている。但し、サーミスタTHには、電源投入時に限り開放状態となるスイッチ回路SWが並列接続されており、通常時は、スイッチ回路SWがON状態であるので、サーミスタTHが機能することはない。
そして、平滑コンデンサC1の両端電圧(脈流出力)V1は、直接、第2入力端子Vin2に供給される共に、チョークコイルL1を経由して、第1入力端子Vinに供給されている。また、全波整流回路RECTの脈流出力端子V-は、ON状態のスイッチ回路SWを経由して、力率改善部品PFCの負電圧入力端子V-に接続されている。ここで、力率改善部品PFCを収容する電磁シールドボックスSHは、その閉塞面FTが、チョークコイルL1に対面するように配置されており、チョークコイルL1からの高周波磁界に対応する渦電流が流れることで、力率改善部品PFCを、高周波磁界から確実に電磁シールドしている。
また、力率改善部品PFCの出力端子Voutとグランド端子GNDとの間には、大容量の平滑コンデンサC2が接続されている。特に限定されないが、本実施例では、10,000μF程度の円柱形状の電解コンデンサC2を、電源基板20の表面側に3個立設することで、30,000μFの静電容量を実現している。そして、この平滑コンデンサC2の両端電圧V2が、平均値がDC35V程度になるよう力率改善回路が機能している。なお、電源電圧供給端子Vccには、通電制御回路を機能させる直流電圧12Vが供給されている。
また、第2入力端子Vin2と、出力端子Voutの間には、一体化されたバイパスダイオードDb,Db(3端子の複合ダイオード素子)が接続されている。バイパスダイオードDb,Dbは、チョークコイルL1をバイパスして、電源投入時の突入電流を平滑コンデンサC2の吸収させることで、電源投入時のチョークコイルL1のリアクトル飽和を回避し、力率改善回路を構成する回路部品の破壊を防止している。
ここで、瞬間的に大電流を流せること、順方向電圧降下が低いこと、などの条件から、バイパスダイオードDb,Dbには、好適には、ショットキーバリアダイオードが選択される。実施例のショットキーバリアダイオードDb,Dbは、順方向電流10A時の順方向電圧降下が0.79V程度である(瞬時電力消費は7.9W)。なお、実施例の力率改善回路は昇圧型であって、正常動作時は、V1<V2であるので、逆方向電流が少ないことが望ましく、本実施例では、逆方向電圧100Vにおいて、逆方向電流が30μA以下の素子を選択している。
ただし、正常動作を継続するには、当然に、接合温度を上限値未満に維持する必要がある。したがって、如何なる動作条件でも素子破壊を防止するべく、実施例の複合ダイオード素子Db,Dbは、放熱板を保持した状態で、電源基板20の表面側に立設されている。
上記の各部品が接続されている力率改善部品PFCは、高速度で相補的にON/OFF動作するN型のMOSトランジスタQ5,Q6と、力率改善動作が停止される動作時にON動作するP型のMOSトランジスタQ7と、MOSトランジスタQ5,Q6,Q7のON/OFF動作を制御して力率改善を実現する通電制御回路とを有して構成されている。
通電制御回路は、出力電圧V2(平均値35V程度)を所定レベルの基準電圧Vrと比較して、出力電圧V2が、基準電圧Vr以下を維持している間は、電圧波形と電流波形のピークの位置が一致し、かつ、電圧波形に相似する電流波形を形成するよう、MOSトランジスタQ5,Q6を連続的にON/OFF制御する。なお、この正常動作時には、スイッチ回路S1がON状態、スイッチ回路S2,S3がOFF状態に制御される。そのため、P型MOSトランジスタQ7のゲート端子Gは、ソース端子Sが同一電位となり、また、この動作状態では、入力電圧V1<出力電圧V2であるので、P型MOSトランジスタQ7のゲート端子Gが、ドレイン端子Dがより高低電位となってOFF状態を維持する。
ところで、遊技ホールでは、一の電源システムから多数の遊技機に対して交流電圧(24V)を配電しているので、周囲の遊技機の動作状態に応じて、交流電圧の電圧レベルが一時的に増加する場合があり得る。かかる場合に、力率改善回路の出力電圧V2より高い電圧V1が力率改善回路に印加されると(V1>V2)、正常な力率改善動作を継続することができない。そこで、本実施例の通電制御回路は、出力電圧V2が、所定の基準電圧Vrより高くなると、MOSトランジスタQ5,Q6を共にOFF制御して、力率改善動作を停止している。また、スイッチ回路S1をOFF状態にする一方で、スイッチ回路S2,S3をON状態に制御している。
そのため、MOSトランジスタQ7のゲート端子Gが、ドレイン端子Dより低電位となって、P型MOSトランジスタQ7がON動作し、チョークコイルL1をバイパスして、MOSトランジスタQ7を経由して、負荷側への配電が継続される。なお、この無制御状態での配電時には、チョークコイルL1がバイパスされるだけでなく、トランジスタQ7のボディダイオードや、トランジスタQ6のボディダイオードに電流が流れることがなく、且つ、複合ダイオード素子Db,Dbに電流が流れることもないので、無駄な電力消費が確実に抑制される。なお、その後、出力電圧V2が、所定の基準電圧Vr以下に戻れば、力率改善動作が再開される。
以上説明した通り、本実施例では、先ず、力率改善動作によって無効電力をゼロにすることで、無駄な電力消費を解消している。また、実施例の力率改善部品PFCでは、本来、ダイオードを使用すべき箇所に、MOSトランジスタQ6を配置して、MOSトランジスタQ5と相補的にスイッチング動作をさせるので(同期整流化)、無駄な消費電力を低減している。
さらに、本実施例では、入力電圧V1>出力電圧V2となる動作時には、無制御での配電動作を継続し、この場合に、MOSトランジスタQ7がON動作するので、トランジスタQ6のボディダイオードなどにおける余分な電力消費を極限的に低減することができる。
ところで、先に説明した通り、本実施例の力率改善回路は、その出力電流が最大7A程度で機能している。そのため、チョークコイルL1での消費電力も無視できないレベルになりえる。そこで、本実施例では、チョークコイルL1をトロイダルコア型とし(図6(f)参照)、必要回数Nだけトロイダルコアに巻線を巻き付けることで、所定のインダクタンス値(実施例では40μH)を確保している。
この種のチョークコイルのインダクタンス値は、コアの透磁率μ、コア断面積S,コアの平均円周長L、巻数Nに対応して、L=μSN2/Lとなり、巻線径(直径)Φは、インダクタンス値に何ら影響しない。一方、巻線の抵抗値は、断面積(巻線径Φの二乗)に反比例して、巻線が細いほど、抵抗値が増加する。そこで、本実施例では、直径1mm以上の巻線をトロイダルコアに巻き付けることで、必要なインダクタンス値を確保している。
一般に、抵抗値を下げるためには、巻線径Φは太いほど好ましいが、大型化や高コスト化を避ける意味では、1.0~1.5mmの巻線径が好適である。ちなみに、本実施例では、巻線径Φ=1.2mmとすることで、インダクタンス値40μHのチョークコイルL1の内部抵抗を、15mΩに抑制している。したがって、7Aの通電時の電圧降下は、0.1V程度に抑制され、無駄な消費電力は、0.7W程度に抑制される。
続いて、図7に基づいて、力率改善回路の力率改善出力V2(脈流の平均値が35V程度)を監視する電圧監視回路WTCHについて説明する。電圧監視回路WTCHは、力率改善出力V2を1/10程度に分圧して監視電圧Vsを生成する分圧抵抗R1,R2と、監視電圧Vsを非反転流力端子(+)に受ける第1と第2のコンパレータCM1,CM2と、力率改善出力V2が第1レベルまで降下するとON動作するトランジスタTRmと、力率改善出力V2が第2レベルまで降下するとON動作するトランジスタTRsと、トランジスタTRmのON動作に対応してON動作してLレベルの監視信号Wm5,Ws5を出力するトランジスタTR2,TR3と、トランジスタTRsのON動作に対応してON動作してLレベルの監視信号Wm12,Ws12を出力するトランジスタTR4,TR5と、を有して構成されている。
図4(a)に示す通り、監視信号Wm12,Ws12は、DC12Vを生成するDC/DCコンバータCV12m,CV12sのソフトスタート端子SSに供給され、監視信号Wm5,Ws5は、DC5Vを生成するDC/DCコンバータCV5m,CV5sのソフトスタート端子SSに供給されている。ここで、各DC/DCコンバータCV12m,CV12s,CV5m,CV5sは、各々のソフトスタート端子SSの電圧が、0V(Lレベル)から所定値(Hレベル)に達するまでは、DC変換動作を開始しないよう構成されている(ソフトスタート動作)。そして、DC変換動作を開始した後、もし、監視信号Wm12,Ws12,Wm5,Ws5が、HレベルからLレベル降下すると、DC変換動作を停止するよう構成されている。
図7に戻って説明を続けると、第1コンパレータCM1は、シャントレギュレータ(TL431AIPK)などで生成された第1基準電圧Vr1を、反転入力端子(-)に受け、また、第2コンパレータCM2は、第1基準電圧Vr1を分圧した第2基準電圧Vr2を、反転入力端子(-)に受けるよう構成されている。特に限定されないが、本実施例では、第1基準電圧Vr1は、2.5Vであり、第2基準電圧Vr2は、分圧抵抗R3,R4の分圧比に基づいて1.97Vに設定されている。先に説明した通り、監視電圧Vsは、V2/10程度であるので、第1基準電圧Vr1は、力率改善出力V2に対して、V2/14程度となり、第2基準電圧Vr2は、V2/17.7程度となる。
第1基準電圧Vr1と第2基準電圧Vr2が上記のレベルであることから、力率改善出力V2が正常レベル(35V程度)であれば、何れのコンパレータCM1,CM2も、非反転入力端子(+)の電圧(=V2/10)が、反転入力端子(-)の電圧(=V2/14,V2/17.7)より高レベルとなり、各コンパレータCM1,CM2からHレベルの信号が出力される。そのため、PNPトランジスタTRm,TRsは、何れもOFF状態を維持し、これに対応してNPNトランジスタTR2~TR5は、全てOFF状態を維持する。
このように、力率改善出力V2が正常レベル(35V程度)であれば、全てのトランジスタTR2~TR5がOFF状態であるので、DC/DCコンバータCV12m,CV12s,CV5m,CV5sが動作を停止することはなく、DC変換動作を継続する。
一方、何等かの原因で力率改善回路に異常が発生して、力率改善出力V2が25Vレベル(第1レベル)を下回ると、監視電圧Vs(=V2/10)は、2.5Vを下回るので、コンパレータCM1の出力がHレベルからLレベルとなり、トランジスタTRmがON状態に遷移する。そのため、トランジスタTR2,TR3が共にON状態に遷移して、監視信号Wm5,Ws5が、Lレベルとなり、DC/DCコンバータCV5m,CV5sが動作を停止する。DC/DCコンバータCV5m,CV5sが動作を停止すると、払出制御基板25や演出インタフェイス基板22に対するDC5Vの配電が停止される。
但し、監視電圧Vs(=V2/10)が2.5Vを下回る以前に、電源モニタ部MNT(図3(b))のフォトカプラPHがOFF動作して、電源異常信号ABNは、既に異常レベル(L)に変化している。したがって、DC/DCコンバータCV5m,CV5sが動作を停止するDC5Vの配電停止時には、払出制御基板25や主制御基板21において、バックアップ処理は完了している。なお、各制御基板21,25に配置された電解コンデンサによって、所定時間はDC5Vの電圧レベルが維持されるので、DC5Vの配電停止時に、仮に、バックアップ処理が完了していなくても、問題なくバックアップ処理を終了させることができる。
先に説明した通り、直流5Vは、払出制御基板25や主制御基板21のワンチップマイコンの電源電圧、及び、各制御基板に搭載された論理素子の電源電圧として使用されている。また、直流5Vは、演出インタフェイス基板22のDC/DCコンバータでレベル降下された後、レベル降下された各種レベルの電圧が、各種コンピュータ回路の電源電圧として使用されている。
したがって、直流5Vの配電が停止されると、各制御基板に搭載された論理素子が動作を停止して、制御信号の出力動作などの制御動作が停止される。また、払出制御基板25や主制御基板21に搭載されたリセット回路RST1,RST2が機能してリセット信号がLレベルに変化することで、バックアップ処理を終えた払出制御基板25や主制御基板21のワンチップマイコンが制御動作を停止する。この点は、遊技制御動作を実行していたコンピュータ回路(複合チップ50や音声プロセッサ27など)についても同様であり、直ちに、遊技制御動作を停止する。
上記の通り、本実施例では、力率改善出力V2が25Vレベルを下回ると、最初にDC/DCコンバータCV5m,CV5sが動作を停止するので、上記した停止動作が迅速に実行され、不安定な電源電圧レベルにおいて、遊技制御動作が継続されるおそれが回避される。なお、このような動作は、通常は、電源遮断時に実行されるが、本実施例では、交流電圧24Vが正常レベルであって、力率改善回路だけが異常状態である場合にも、上記の動作が実行される利点がある。
以上、力率改善出力V2が25Vを下回ったタイミングについて説明したが、電源遮断時や、力率改善回路の異常時には、その後も力率改善出力V2のレベル降下が続き、やがて、19.7V(第2レベル)を下回るタイミングに至る。すると、監視電圧Vs(=V2/17.7)は、1.97Vを下回るので、コンパレータCM2の出力がHレベルからLレベルとなり、トランジスタTRsがON状態に遷移する。そのため、トランジスタTR4,TR5が共にON状態に遷移して、監視信号Wm12,Ws12が、Lレベルとなり、DC/DCコンバータCV12m,CV12sが動作を停止する。
先に説明した通り、直流12Vは、各制御基板から制御されるLEDランプやモータの駆動電源、及びデジタルアンプの電源電圧として使用されるが、DC/DCコンバータCV12m,CV12sが動作を停止すると、直流12Vの配電が停止される。しかし、このタイミングでは、LEDランプ、演出モータ、及びデジタルアンプの制御動作は、既に停止状態であり、また、論理素子から制御信号が伝送されることもないので、不自然なランプ演出やモータ演出が生じることがなく、スピーカから異音が発生することもない。
以上の通り、本実施例では、演出モータなどの制御対象への配電停止に先行して、ワンチップマイコンなどの制御元が制御動作を停止するので、円滑な電源遮断動作を実現できる。また、力率改善回路だけが異常動作した場合にも、同様の円滑な動作終了動作が実現される。
次に、図8(a)は、力率改善回路の脈流出力V2(平均値35V)を受けて直流電圧5Vを生成する同期整流型のDC/DCコンバータCV5sの内部構成を示す回路図である。特に限定されないが、本実施例のDC/DCコンバータCV5sは、コンバータIC素子(モノリシックIC)CHPと、関連する回路部品を、電源基板20上で接続して構成されている。なお、チョークコイルL5と平滑コンデンサC6を、電源基板20の表面側に配置する一方、それ以外の回路部品は、放熱板を設けないコンバータIC素子CHPも含め、全て電源基板20の裏面側に配置している。
このコンバータIC素子CHPは、システムクロック信号CLKを発振する発振部OSCと、のこぎり波(ランプ波)を発生するランプ発生部RaGENと、電源投入時に適宜なソフトスタート動作を実現するスタート制御部SSと、比較基準電圧(0.7V)とフィードバック電圧VFBとの差電圧を出力する誤差増幅部EAPと、誤差増幅部EAPの出力に基づいてPWM波を出力するPWMコンパレータPWMCと、力率改善出力V2を受けて基準電圧10Vを生成する定電圧部RGと、力率改善出力V2を受けて各種の比較電圧を生成する比較電圧生成部RFGと、上側の外付けMOSトランジスタQHを駆動するHドライバHDRVと、下側の外付けMOSトランジスタQLを駆動するLドライバLDRVと、ドライバHDRV,LDRVの動作を制御するドライバ制御部DrCTLとを有して構成されている。
ここで外付けMOSトランジスタQH,QLは、下側のMOSトランジスタQLだけでなく、上側のMOSトランジスタQHもN型MOSFETで構成されており、無駄な電力消費が軽減されている。すなわち、一般に、N型MOSトランジスタは、P型MOSトランジスタより安価であって、且つ、オン抵抗が低いので、本実施例の構成によれば、電源効率を向上させることができる。
また、このコンバータIC素子CHPは、上記したソフトスタート機能だけでなく、過電流保護機能、短絡保護機能、過熱遮断保護機能、及び、低電圧誤動作防止機能(UVLO:Under Voltage Lock Out)を有し、且つ、ランプ波の傾斜や、システムクロックの周波数Fswが、設定可能に構成されている。
具体的には、SS端子に適宜な静電容量のコンデンサCsを接続することで、コンデンサCsが所定レベルまで充電されるまで、コンバータの動作開始を待機して、突入電流を抑制すると共に、オーバーシュートを回避している。また、このSS端子には、異常時には、Lレベルとなる監視信号Ws5が、電圧監視回路WTCHから供給されており、力率改善出力V2の異常降下時には、DC変換動作が停止するよう構成されている。
また、ILIM端子に接続する抵抗の抵抗値に基づいて、上限電流を設定し、KFF端子とBP5端子との間に接続する抵抗の抵抗値に基づいてランプ波の傾斜が設定できるようになっている。本実施例では、システムクロック信号CLKの周波数Fswは、RT端子に接続する抵抗の抵抗値によって、設定できるようになっており、本実施例では、Fsw=200kHz程度のシステムクロックCLKとしている。
このようなコンバータIC素子CHPの内部構成に対応して、VIN端子には、力率改善出力V2が供給され、BP10端子には適宜なコンデンサが接続されることで、BP10端子を正確なDC10Vに維持している。また、BOOST端子とWS端子との間にブートストラップコンデンサCbtが接続されることで、BOOST端子とWS端子との間は、内部ダイオードDinの順方向電圧Vfに対応して、10-Vf≒9V程度に維持される。このブートストラップコンデンサCbtは、上側のN型MOSトランジスタQHをON動作させるためのチャージポンプ型昇圧回路の構成要素である。
また、コンバータIC素子CHPのHDRV端子は、適宜な抵抗を経由して、上側のMOSトランジスタQHのゲート端子に接続され、LDRV端子は、適宜な抵抗を経由して、下側のMOSトランジスタQLのゲート端子に接続されている。そして、SW端子は、上側のMOSトランジスタQHのソース端子に接続され。PGND端子は、下側のMOSトランジスタQLのソース端子に接続されている。また、上側のMOSトランジスタQHのドレイン端子には、力率改善出力V2が供給され、下側のMOSトランジスタQLのドレイン端子は、上側のMOSトランジスタQHのソース端子に接続されている。
このような構成に対応して、下側のMOSトランジスタQLのドレイン端子、及び上側のMOSトランジスタQHのソース端子は、共にSW端子に接続された状態で、チョークコイルL5の一方端子に接続されている。また、チョークコイルL5の他方端子は、コンデンサC6を経由してグランド電位のPGND端子に接続されている。
そして、コンデンサC6の両端電圧は、分圧抵抗RV1,RV2で適宜に分圧された状態で、帰還電圧VFBとして、コンバータIC素子CHPのVFB端子に供給されている。そして、帰還電圧VFBが基準電圧0.7Vに一致するようなデューティ比で、MOSトランジスタQH、QLがON/OFF動作することで、所定レベルのDC電圧が生成される。この実施例では、5×Rv2/(RV1+RV2)=0.7となるよう分圧抵抗の抵抗比が設定されているので、出力電圧がDC5Vとなる。
図8(a)では、MOSトランジスタQHがON、MOSトランジスタQLがOFFの動作状態における、チョークコイルL5の充電電流を実線矢印で示し、MOSトランジスタQHがOFF、MOSトランジスタQLがONの動作状態における、チョークコイルL5の放電電流を破線矢印で示している。また、図8(c)には、チョークコイルL5の充電電流と放電電流と平均電流Ioを記載している。なお、下側のMOSトランジスタQLのドレイン端子とソース端子の間には、RCスナバ回路が接続されているので、ON/OFF動作遷移時のリンギングが好適に吸収される。
先に説明したチョークコイルL5のインダクタンス値は、その値が大きいほどリップル電流は小さくなるが、一方、寸法が大型化する。一方、インダクタンスが小さいとリップル電流が増えるので、コンデンサC6として、大きな静電容量が必要となり、コンデンサC6を大型化せざるを得なくなる。そこで、本実施例では、上記の諸条件と、クロック周波数Fswなどに基づいて、チョークコイルL5のインダクタンス値を30μH、電解コンデンサC6の静電容量を、700μFに決定している。なお、電解コンデンサC6は、円柱形状であり、電源基板20の表面側に立設されている。
ところで、チョークコイルL5に必要なインダクタンス値は、コアの透磁率μ、コアの断面積S、コイル巻数Nなどに基づいて一意に決定される。具体的には、トロイダルコアを使用する場合には、トロイダルコアの平均直径Lと、トロイダルコアの断面積Sと、巻数Nとに対応して、インダクタンス値が、N2μS/Lとなり、一方、円柱コアを使用する場合には、漏れ磁束を無視した単位長当たりのインダクタン値は、円筒コアの断面積Sと単位長当たりのコイル巻数Nとに対応してμSN2となる(図10(a)参照)。すなわち、インダクタンス値は、何れの場合も、コアの構成(μやS)と、コアに巻回されるコイル巻線の巻数Nに基づいて一意に決定される。
したがって、必要なインダクタンス値は、トロイダルコアを使用しても(図6(f)及び図8(b)参照)、円柱コアを使用しても(図10(a)参照)、任意な値を得ることができることになる。しかし、チョークコイルL5には、定常的に大きな直流電流Ioが流れるので、同じ巻数Nであっても、巻線の直径に基づいて、電力損失が大きく相違する。そこで、本実施例では、それほど大電流を必要としない場合には、円柱コアに直径Φ<0.5mmの巻線を巻回することで(小型構成1)、チョークコイルの小型化や製造コストの抑制を図る一方(図10(a)参照)、大電流を必要とする場合には、トロイダルコアに直径Φ≧0.5mmの巻線を使用することで(大型構成2)、電力損失の軽減を図っている(図6(f)及び図8(b)参照)。
なお、小型構成1を採る場合は、各チョークコイルの直流抵抗が30mΩ以上(好適には120mΩ以下)となり、大型構成2を採る場合は、各チョークコイルの直流抵抗が30mΩ未満となる。
以上の設計思想に基づき、本実施例では、第1コネクタMainを経由して、払出制御基板25に向けて配電される直流電圧(12V,5V)を生成するDC/DCコンバータCV12m,CV5mには、製造コストの抑制を最優先して、非同期整流方式を採用すると共に、図10(a)に示す小型構成(1)のチョークコイルを使用している。一方、第2コネクタSubを経由して、演出インタフェイス基板22に配電される直流電圧(12V,5V)を生成するDC/DCコンバータCV12s,CV5sについては、同期整流方式を採用すると共に、消費電力の軽減を最優先して図8(b)や図9(b)に示す大型構成(2)のチョークコイルを使用している。なお、何れの構成を採る場合でも、チョークコイルは、電源基板20の表面側に立設される。これらの点は、力率改善回路に使用されるチョークコイルL1(図6(f))についても同様であり、大型構成(2)のチョークコイルであって、電源基板20の表面側に立設されている。
具体的な説明を続けると、図8(b)に示すチョークコイルL5は、大型構成(2)に基づき、トロイダルコアに線径0.90mmの巻線を巻回して構成されている。この場合の巻線抵抗は、インダクタンス値を30μHにおいて、20mΩ程度であり、消費電力を効果的に抑制することができる。また、同期整流方式を採用して、MOSトランジスタQLを使用するので、この箇所に整流ダイオードを使用する場合に比べて、消費電力を大幅に抑制することができる。
本実施例において、DC/DCコンバータCV5sの出力は、演出インタフェイス基板22や演出制御基板23に搭載された論理素子の電源電圧となるだけでなく、音声プロセッサ27や、複合チップ50の電源電圧(3.3V/1.5V/1.05V)の基礎電圧ともなるので、チョークコイルL5の平均電流Ioは、4.3A程度となる。なお、演出制御を豊富化するには、最大5A程度の平均電流を許容する設計が必要となるので、MOSトランジスタQLを使用することや、チョークコイルL5の巻線抵抗を抑制することの意義はきわめて大きい。
因みに、巻線径を仮に1/2倍にすれば巻線抵抗は4倍となるので、チョークコイルL5における無駄な消費電力が、Io=5Aの場合、本実施例では0.5W(ワット)のものが、更に1.5W(=5*5*20/1000*3)も増加することになる。また、MOSトランジスタQLに代えて、整流ダイオードを使用すると、順方向電圧降下Vf(≒1V)と、PWM波の平均デューティ比(τ≒5/35)に対応して、無駄な消費電力が、1×4.3×(1-τ)≒1×4.3×0.86=3.7W程度に至ることになる。
次に、図9(a)は、演出インタフェイス基板22に配電される直流電圧12Vを生成する同期整流型のDC/DCコンバータCV12sの内部構成を示す回路図である。基本構成や動作内容は、図8(a)に示すDC/DCコンバータCV5sと同一であるが、迫力ある各種の遊技動作を実行するためには、相当に大きな駆動電流が必要となり、この点を考慮した特別な構成が必要となる。
先ず確認するに、DC/DCコンバータCV12sが生成したDC12Vは、図4に示す第2コネクタSubを経由して、盤側部材を構成する多数のLEDランプや演出モータを駆動するだけでなく、デジタルアンプの電源電圧ともなる。また、第3コネクタAuxを経由して、ガラス扉6や前面板7などの前扉部材に配置されたLEDランプや演出モータも駆動するので、全体として、13A程度の駆動電流が必要となる。
そこで、本実施例では、MOSトランジスタQH,QLなどに流れる電流が大きいことを考慮して、必要な回路部品を、直接、電源基板20に半田付けするのではなく、別の基板(回路基板又はは絶縁基板)に必要な回路部品を取り付けた上で、その全体を樹脂モールドして12V用のDC/DCコンバータを完成させている。すなわち、DC/DCコンバータCV12sは、図8(a)に示すコンバータIC素子CHPを、関連する外付け部品と共に一体化した複合第3回路部品CV12sとして構成されている。
このように、本実施例では、コンバータIC素子CHPと、これに関連する外付け部品を、別の基板に配置して全体をモールドするので、回路部品間は、必ずしも配線パターンで接続する必要がなくなる。そして、この複合第3回路部品CV12sでは、最適な太さの配線ケーブルで部品間を最短接続しており、配線抵抗を低減することで、無駄な電力消費を効果的に抑制している。なお、この複合第3回路部品CV12sについても、複合第1回路部品RECTや、複合第2回路部品PFCと同様の外観であり、例えば、40mm×30mm×8mm程度の薄板状に形成されている。
また、MOSトランジスタQH,QLなどの放熱効果と共に、電磁遮蔽を実現するため、複合第3回路部品CV12sは、図9(d)に示す導電性の電磁シールドボックスSHに収容された一体化回路部品として、放熱板の使用を不要にしている。図9(d)に示す電磁シールドボックスSHは、図6(c)に関して説明した構成と同一構成であり、31mm×65mm×12mm程度の角型の導体ボックスで形成されている。なお、電磁遮蔽を万全にするため、電磁シールドボックスSHの閉塞面FTは、チョークコイルL3に対面して立設されている。また、静電遮蔽効果を合わせて実現するため、電磁シールドボックスSHは、電源基板20のグランドラインに接続されている。
複合第3回路部品(DC/DCコンバータCV12s)は、図9(c)に示す通り、合計13本の回路接続バーが一列に整列して、部品本体から略直交した状態で突出している。13本の回路接続バーには、入力端子INグループ3本と、出力端子OUTグループ4本と、グランド端子GNDグループ3本とが含まれている。なお、FB端子は、分圧抵抗RV1を経由して、コンバータIC素子CHPのVREF端子に接続され、Rref端子と、ON/OFF端子は、各々、コンバータIC素子CHPのVFB端子と、SS端子に一対一の関係で接続されている。
複合第3回路部品においても、各グループの回路接続バーは、何れも、丸棒状または平板状であり、その直径Φや板幅WDは、正面視で、1mm前後(Φ=WD=0.6~1.5mm程度)である。また、各グループの回路接続バーは、何れも、2mm以上(好適には2~3mm程度)の均一ピッチPiで整列しており、各グループの回路接続バーは、均一ピッチPiを維持した状態で、電源基板20に略直交状態で電源基板20の表面側から挿入され、その表裏面で、各グループに対応する回路パターンランドに半田付けされている。
複合第3回路部品においても、回路パターンランドは、各グループに属する回路接続バーの最大離間距離を下回らない十分な平面幅に形成されており、また、パターン幅1mmの導体面に1Aの電流を流しても、損失電力が全く問題にならない材料を選択し、所定の膜厚を形成している。例えば、出力端子OUTグループに対応する回路パターンランドは、4本の回路接続バーに対応して、4×Piを超える平面幅に形成されている。また、この回路パターンランドは、回路接続バーとの接続箇所を最低幅(4×Pi)とし、それ以外は、ほぼ最低幅以上のパターン幅に形成されている。
したがって、出力端子OUTグループに対応する回路パターンランドは、例えば、Pi=2.5mmの場合には、4×Pi(10mm)以上であり、10A以上の定常電流が十分に許容されることになる。本実施例のDC/DCコンバータCVs12は、その出力電流が、例えば、最大13A程度であり、この場合にはやや不足気味に感じるが、この最高電流が流れる時間は、演出上せいぜい10数秒であるので、実質上何ら問題にならない。
回路動作は、図8〈a)に示すDC/DCコンバータCV5sの場合と実質的に同じであり、PWM波のデューティ比が適宜に変化することで、出力電圧は12VとなるようDC/DCコンバータCV12sが機能している。なお、出力電圧を12Vに維持するべく分圧抵抗RV1,RV2が規定されており、図9(a)に示す回路では、12×Rv2/(RV1+RV2)=0.7となるよう分圧抵抗RV1,RV2の抵抗比が設定されている。また、コンバータIC素子CHPの内部クロック周波数Fswなどに基づいて、チョークコイルL3のインダクタンス値を70μH、電解コンデンサC4の静電容量を1400μFにしている。なお、静電容量を1400μFは、円柱形状の電解コンデンサ700μFを、電源基板20の表面側に2個立設して実現されている。
ところで、DC/DCコンバータ(複合第3回路部品)CV12sの出力は、第2コネクタSubや第3コネクタAuxを経由して、多数の高輝度LEDを駆動電源となり、また、複数の大型演出モータの駆動電圧となる。そして、全ての演出モータの一斉に稼働すると、消費電流が例えば、14A以上まで増加するが、これでは、消費電力が過大に過ぎ、遊技ホールの配電システムの能力を超え兼ねない。
そこで、本実施例では、各演出モータの演出タイミングなどを適宜に割り振ることで、最大時でも限界電流Imax(例えば13A)を超えないよう可動演出やランプ演出の演出内容を設計している。また、第2コネクタSubからの供給電流IS2の最大値Im2と、第3コネクタAuxからの供給電流IA3の最大値Im3を、各々、例えばIm2=8A及びIm3=6Aと規定すると共に、如何なる動作時にも、第2コネクタSubと第3コネクタAuxのDC12V端子から供給される総電流IS2+IA3が、限界電流Imaxを超えないよう、演出内容を設計している。すなわち、IS2<Im2(=例えば8A)、及びIA3<Im3(=例えば6A)であって、且つ、IS2+IA3<Imax(=例えば13A)となるよう、可動演出やランプ演出の演出内容を規定している。
以上の通りに電流配分を抑制した場合でも、DC/DCコンバータCV12sは、最大で、13Aを出力する必要があるので、チョークコイルL3での無駄な電力消費が問題になる。そこで、図9(b)に示すように、トロイダルコアに、直径1.0mm程度の太径の巻線を必要回数巻回して、インダクタンス値70μH程度を実現している(大型構成(2))。太径の巻線を使用することで、その抵抗値を25mΩ程度に抑制することができ、限界電流Imax(=13A)の流通時での損失電力を4W程度に抑制している。なお、実施例のDC/DCコンバータCV12sは、同期整流方式を採っているが、仮に、非同期整流方式を採った場合には、PWM波の平均デューティ比(τ≒12/35)に対応して、限界電流Imaxの配電時の無駄な消費電力が、Vf=1.0Vとして、1×13×(1-τ)≒1×13×0.66=8.5Wに至ることになる。
続いて、図10に基づいて、非同期整流型のDC/DCコンバータについて説明する。図10(b)は、力率改善出力V2=35Vを降下させてDC12Vを出力するDC/DCコンバータCV12mであり、図10(c)は、DC5Vを出力するDC/DCコンバータCV5mの回路構成を示している。図4に示す通り、DC/DCコンバータCV12mと、DC/DCコンバータCV5mの出力(12V/5V)は、第1コネクタMianを経由して、先ず、払出制御部25に配電され、さらに、払出制御部25から主制御基板21に配電される。
そして、DC5Vは、各制御基板25,21の論理素子や、ワンチップマイコンの電源電圧として使用されるが、DC5Vラインの総和電流は0.5A程度で足りる。一方、DC12Vは、払出モータや、可変入賞装置を開閉させるソレノイドなどの駆動電圧として使用されるが、それほどの個数を駆動しないので、1A程度で足りる。
そこで、本実施例では、上記の点を考慮し、製造コストの抑制や、回路基板の小型化などを実現するべく、非同期整流式のDC/DCコンバータを採用している。また、図10(b)と図10(c)に示す通り、何れのDC/DCコンバータCV12m,CV5mも、図10(d)に示すコンバータIC素子SRG(降圧型スイッチングレギュレータ)を使用して構成されている。なお、コンバータIC素子SRGは、モノリシックICに分類される。
なお、DC12Vを出力するDC/DCコンバータCV12mの分圧抵抗RA1,RA2の分圧比と、DC5Vを出力するDC/DCコンバータCV12mの分圧抵抗RB1,RB2の分圧比は、各々の出力電圧レベル(12V/5V)に応じて適宜に規定されている。具体的には12×RA2/(RA1+RA2)と、5×RB2/(RB1+RB2)は、何れも、コンバータIC素子SRGの比較基準電圧ReVに一致するよう設定されている。
図10(d)に示す通り、コンバータIC素子SRGは、IN端子に受ける電圧に基づいて各部の電圧を生成する電源部PRegと、SS端子に受ける制御信号に基づいてソフトスタート動作や非常停止動作を実現する起動制御部Soft & ON/OFF と、過電流保護部Overcurrent Protectionと、加熱保護部Thermal Protectionと、300KHz程度のパルス波を発振する発振部OSCと、電源投入を検出するリセット部Rsetと、ADJ端子に受ける検出電圧を、比較電圧ReVと対比して誤差電圧を出力する誤差増幅部ErAmpと、発振器OSCの出力と誤差電圧に基づいてPWM波を出力するPWMコンパレータCOMPと、各部から受ける制御信号に基づいて出力トランジスタTRswをON/OFF制御する駆動制御部Latch & Driverと、を有して構成されている。
何れのDC/DCコンバータCV12m,CV5mも非同期整流型であり、SW端子とGND端子の間には、チョークコイルL2/L4と平滑コンデンサC3/C5が直列接続される共に、整流ダイオードDcvが接続されている。図10(b)の実線で示す通り、出力トランジスタTRswのON動作時には、チョークコイルL2→平滑コンデンサC3→グランドの経路で、コイル充電電流が流れる。また、図10(b)に破線で示す通り、出力トランジスタTRswのOFF動作時には、チョークコイルL2→平滑コンデンサC3→整流ダイオードDcvの経路で、コイル放電電流が流れる。
このように、コイル放電電流は、順方向電圧Vfが0.7~1.0V程度の整流ダイオードに流れるので、コイル平均電流Io、PWM波の平均デューティ比τに対応して、消費電力は、Io×Vf×(1-τ)となる。しかし、DC/DCコンバータCV12mの出力電流が2A、DC/DCコンバータCV5mの出力電流を1Aがであった場合、Vf=1Vとして、消費電力は、各々、2×1×(1-12/35)=1.3Wと、1×1×(1-5/35)=0.86Wであり、それ程ではなく、非同期整流方式を採ることに、特に何の問題もない。
但し、出力トランジスタTRswに流れる電流(2A/1A)に基づく発熱によって、出力トランジスタTRswの熱暴走のおそれがある。また、過電流保護部Overcurrent Protectionが機能して、DC変換動作が非常停止されるおそれもある。そこで、本実施例では、各コンバータIC素子SRGに、各々、必要な放熱板が取り付けることで、上記の問題を未然防止している。また、DC/DCコンバータCV12m,CV5mを構成するコンバータIC素子は、各々、放熱板を保持した状態で、電源基板20の表面側に立設されている。
先に説明した通り、実施例の場合、DC5Vラインの総和電流は0.5A程度、DC12Vラインの総和電流は1A程度である。しかし、異なる機種では、遊技盤面に配置される可変入賞口や遊技球案内装置の数が異なる場合があり、それら数の増加に対応できるよう、また、必要に応じて派手なランプ演出を実現できるよう、DC/DCコンバータCV12mは、その電流上限値として2A程度が必要であり、また、DC/DCコンバータCV5mは、その電流上限値として1A程度が必要となると考えられる。
しかし、この程度の電流上限値であれば、チョークコイルL2/L4での電力損失は、以下に説明するように問題にならないので、円柱状の中心コアに、やや細径の巻線を必要回数巻回することで、必要なインダクタンス値を実現している(図10(a)の小型構成(1))。なお、小型構成(1)では、漏れ磁束を最小化するべく、中心コアを円筒状の外周コアで囲んでいる。このような構成を採る場合、漏れ磁束を無視すると、中心コアの断面積S、コアの透磁率μ、単位長当たりの巻数Nに対応して、単位長当たりのインダクタンス値は、N2μSとなる。
本実施例の小型構成(1)を具体的に説明すると、DC12Vを生成するDC/DCコンバータCV12mに使用するチョークコイルL2は、直径0.3mm程度の巻線を使用してインダクタンス値45μHを実現したが、巻線抵抗は90mΩ程度であった。本実施例では、DC12Vラインの電流上限値を2Aとしているので、チョークコイルL2での電力損失は0.36W程度であり、特に問題がない。なお、平滑コンデンサC3は、具体的には、円柱形状の電解コンデンサ700μFであり、電源基板20の表面側に立設される。
一方、DC5Vを生成するDC/DCコンバータCV5mに使用するチョークコイルL4は、直径0.4mm程度の巻線を使用してインダクタンス値20μHを実現したが、巻線抵抗は、40mΩ程度であった。本実施例では、DC5Vラインの電流上限値を1Aとしているので、チョークコイルL4での電力損失は0.04W程度であり、何ら問題にならない。なお、平滑コンデンサC5は、具体的には、円柱形状の電解コンデンサ700μFであり、電源基板20の表面側に立設される。
以上、電源基板20の回路構成について詳細に説明したが、本実施例では、スルーホールを有する一層基板で構成された電源基板20の表面側に、挿入部品を挿入配置する一方、電源基板20に裏面側に、面実装部品を配置して面実装している。ここで、面実装品には、ツェナーダイオードと整流ダイオードが含まれており、本実施例では、全てのツェナーダイオードと整流ダイオード(複合第1回路部品RECTを除く)は、電源基板20の裏面側に面実装されている。
図11は、電源基板20の裏面側を図示したものであり、面実装部品を中心に構成された各部回路が示されている。先ず、サーミスタTHと、サーミスタをバイパスするスイッチ回路SWとで構成されたサーミスタ回路が、電源基板20の裏面に配置される。また、電圧監視回路WTCHは、実装部品だけで構成されており、全ての部品が、電源基板の裏面に面実装されている。
次に、通電遮断回路CUTは、フィルムコンデンサCbrと、電流制限抵抗Rと、電解コンデンサCrecを除いて面実装品で構成されて、電源基板20の裏面に配置されている。一方、フィルムコンデンサCbrと、電流制限抵抗Rと、電解コンデンサCrecは、通電遮断回路CUTを構成する面実装品の配置位置に近接する電源基板20の表面側に挿入実装されている。
同様に、同期整流型のDC/DCコンバータCV12sは、電源基板20の表面側に挿入実装されるチョークコイルL5と電解コンデンサC6を除いて、面実装部品で構成されて、全ての面実装部品が、電源基板20の裏面に面実装されている。また、非同期整流型のDC/DCコンバータCV12m及びCV12mについても、電源基板20の表面側に挿入実装されるチョークコイルL2/L4と電解コンデンサC3/C5を除いて、面実装部品で構成されて、全ての面実装部品は、電源基板20の裏面に面実装されている。
ところで、この電源基板20の表面側及び裏面側には、そこに流れる電流値に対応したパターン幅のパターンランドが縦横に形成されている。先に説明した通り、本実施例では、パターン幅1mmの導体面に1Aの電流を流しても、損失電力が全く問題にならないよう構成されている。しかし、無駄な消費電力を軽減するには、さらに、第1コネクタMain、第2コネクタSub、第3コネクタAuxにおける接触抵抗や給電路における電力損失についても、その軽減を図る必要がある。
そこで、本実施例では、何れにコネクタ端子も、コネクタ端子、及び、そのコネクタ端子に接続される配線ケーブルは、そこに3A程度の電流を流しても損失電力が問題にならない抵抗値としている。また、3Aを超える程度の大電流を給電する場合には、複数のコネクタ端子で分担して給電することとし、特定のコネクタ端子については、共通するパターンランドに並列接続している。
以下、各コネクタについて説明するが、第1と第2のコネクタMain,Subのコネクタ端子は、図12(a)に示す二列構成であり、第3コネクタAuxのコネクタ端子は一列構成である。但し、何れの場合も、コネクタ端子の配列ピッチPiは、図示の左右方向に2.0mm程度に設定されている。
以下、便宜上、コネクタ端子の一連番号を付して説明すると、第1コネクタMainと、第2コネクタSubについては、奇数番目と偶数番目のコネクタ端子は、隣接番号のコネクタ端子と2.0mm程度離間した状態で、各々、同一の配列ピッチPiで一列に整列した状態で、電源基板20の表側から挿入実装されている。また、第3コネクタAuxの6本のコネクタ端子も、配列ピッチPiで一列に整列した状態で、電源基板20の表面側から挿入実装されている。
まず、第1コネクタMainについて説明すると、先に説明した通り、第1コネクタMainを経由して、払出制御基板25に対して、DC5V/DC12V/DC35Vが配電される。そして、本実施例では、DC/DCコンバータCV5m,CV12mの構成と、LEDランプやソレノイドの個数などに基づいて、DC5Vラインには最高2A程度、DC12Vラインには最高1A程度、の電流が流れることがある。なお、DC35Vラインは、発射ソレノイドと球送りソレノイドで使用されるので最高1A程度が流れる。
そこで、上記の電流量を考慮して、十分な余裕をもって配電するべく、各レベルの電圧を、隣接する偶数端子から選択された各2本のコネクタ端子と、これらに対応する2本の配線ケーブルで配電している。なお、各レベルの電圧は、各1本のコネクタ端子でも足りるが、隣接する一対のコネクタ端子を選択することで(端子間の全体幅3mm程度)、対応する回路パターンランドのパターン幅と対応させることができる。また、そもそも、使用本数が多いほど、伝送損失が減少するので、コネクタ端子や配線ケーブルの使用本数は多ければ多いほど好適である。
そこで、かかる観点から、各電圧レベル(5/12/35)の配電ラインの総本数以上のコネクタ端子を、グランドラインとして使用している。具体的には、図12(b)に示す通りであり、2×3=6本以上となる8本のコネクタ端子(グランド端子)を、電源基板20のグランドライン(回路パターランド)に接続している。
次に、第2コネクタSubについて説明すると、第2コネクタSubを経由するDC5V/DC12V/DC35Vが配電ラインには、本実施例では、各々、5A/13A/4Aの最大電流が予定されている。そこで、十分な余裕をもって配電するべく、各レベルの電圧を、隣接する偶数端子又は奇数端子から選択された複数本のコネクタ端子と、これらに対応する複数本の配線ケーブルで配電している。なお、DC35Vは、演出インタフェイス基板22を経由して配電され、可動物を往復移動させる電磁ソレノイドの駆動電源となる。
具体的には、DC5Vの配電ラインは、3番、5番、7番の3本のコネクタ端子と、これらの対応する配線ケーブルで構成されており、DC12Vの配電ラインは、8番、10番、12番、14番の4本のコネクタ端子と、これらの対応する配線ケーブルで構成されている。なお、DC5Vの配電ラインを構成する3本のコネクタ端子は、全て奇数番であって互い隣接している(他のコネクタ端子が介在しない状態)。そして、3本のコネクタ端子の全体幅は5mm程度であり、対応する一の回路パターランドに接続されている。
DC12Vの配電ラインを構成する4本のコネクタ端子についても同様であり、全て偶数番であって互い隣接している(他のコネクタ端子が介在しない)。そして、4本のコネクタ端子の全体幅は7mm程度であり、対応する一の回路パターランドに接続されている。なお、DC35Vラインを構成する2本のコネクタ端子は、何れも奇数番目として隣接しており(他のコネクタ端子が介在しない)、対応する一の回路パターランドに接続されている。
以上の構成に対応して、各電圧レベル(5/12/35)の配電ラインの総本数以上のコネクタ端子を、グランドラインとして使用している。具体的には、図12(c)に示す通りであり、3+5+2=10本以上となる同一10本のコネクタ端子(グランド端子)を、電源基板20のグランドラインに接続している。
一方、第3コネクタAuxは、2列配置でないので、1~3番までの3本をDC12Vの配電ラインとし、4~6番の3本をグランドラインとしている。以上の通り、本実施例では、十分な余裕をもって配電するべく、第1コネクタMainを経由するDC5VとDC12Vの配電ラインは、各々、2本以上のコネクタ端子を使用して実現され、第2コネクタSubを経由するDC5VとDC12Vの配電ラインは、各々、3本以上のコネクタ端子を使用して実現されている。また、グランド端子の本数は、配電ラインを構成するコネクタ端子の総数以上(同数を含む)であり、これを言い換えると、グランド端子の本数は、各コネクタのコネクタ端子総数の半数以上である。
以上、電源基板20について詳細に説明したので、図3(a)に戻って、本遊技機GMの他の構成について説明する。図3(a)に示す通り、演出インタフェイス基板22には、音声プロセッサ27などの音声回路SNDが搭載され、演出制御基板23には、VDP回路52や内蔵CPU回路51などのコンピュータ回路が内蔵された複合チップ50が搭載されている。以下、内蔵CPU回路をCPU回路と略称することがある。
演出インタフェイス基板22には、電源投入時に、電源電圧の上昇を検知して各種のリセット信号RT3,RT4を生成するリセット回路RST3,RST4が搭載されている。先ず、リセット回路RST3は、電源基板20から配電された直流電圧12Vと5Vに基づいて、リセット信号RT3を生成している。そして、リセット信号RT3は、音声メモリ28だけを電源リセットして、そのまま演出制御基板23に伝送される。
演出制御基板23に伝送されたリセット信号RT3は、図13(a)に示す通り、ANDゲートG1において、WDT(Watch Dog Timer )回路58の出力とAND演算され、システムリセット信号SYSとして、CPU回路51やVDP回路52を電源リセットしている(図13(a)及び図13(d)参照)。
リセット回路RST3が生成するリセット信号RT3は、電源投入後、電源リセット信号として所定時間Lレベルを維持した後、Hレベルに上昇する。しかし、その後、直流電圧12V又は直流電圧5Vの何れか一以上が降下した場合(通常は電源遮断時)には、リセット信号RT3のレベル降下に対応して、システムリセット信号SYSもLレベルに降下するので、演出制御基板23のCPU回路51とVDP回路52は動作停止状態となる。
このシステムリセット信号SYSは、WDT回路58の出力(正常時にはHレベル)に基づいても変化するので、リセット信号RT3=Hの状態で、プログラム暴走時などに起因して、WDT回路58の出力がLレベルに降下することに対応して、システムリセット信号SYSもLレベルに変化して、CPU回路51やVDP回路52を異常リセットする(図13(d)参照)。
一方、リセット回路RST4は、電源基板20から配電された5Vを降下して生成された3.3Vに基づいて、リセット信号RT4を生成している。このリセット信号RT4は、電源投入時の電源リセット信号として、音声プロセッサ27を電源リセットしている。
図示の通り、リセット回路RST4には、演出制御基板23から返送されたシステムリセット信号SYSも供給されているので、CPU回路51やVDP回路52の異常リセット時には、これらの回路の異常リセットに同期して、音声プロセッサ27も異常リセットされる。この結果、音声演出は、画像演出やランプ演出と共に初期状態に戻ることになり、不自然な音声演出が継続するおそれがない。
次に、枠側部材GM1たる払出制御基板25と、盤側部材GM2たる主制御部21には、各々、リセット回路RST1,RST2が搭載されており、電源投入時に電源リセット信号が生成され、各コンピュータ回路が電源リセットされるよう構成されている。
このように、本実施例では、主制御部21と、払出制御部25と、演出インタフェイス基板22に、各々、リセット回路RST1~RST4を配置しており、システムリセット信号SYSが回路基板間で伝送されることがない。すなわち、システムリセット信号SYSを伝送する配線ケーブルが存在しないので、配線ケーブルに重畳するノイズによって、コンピュータ回路が異常リセットされるおそれが解消される。
但し、主制御部21や払出制御部25に設けられたリセット回路RST1,RST2は、各々ウォッチドッグタイマを内蔵しており、各制御部21,25のCPUから、定時的なクリアパルスを受けない場合には、各CPUは強制的にリセットされる。
また、主制御部21には、係員が操作可能な初期化スイッチSWが配置されており、電源投入時、初期化スイッチSWがON操作されたか否かを示すRAMクリア信号CLRが出力されるよう構成されている。このRAMクリア信号CLRは、主制御部21と払出制御部25のワンチップマイコンに伝送され、各制御部21,25のワンチップマイコンの内蔵RAMの全領域を初期設定するか否かを決定している。
また、先に説明した通り、主制御部21及び払出制御部25のワンチップマイコンは、払出制御部25に配置された電源モニタMNTから電源異常信号ABNを受けることによって、停電や営業終了に先立って、必要な終了処理を開始するようになっている。
図3(a)に示す通り、主制御部21は、払出制御部25から、遊技球の払出動作を示す賞球計数信号や、払出動作の異常に係わるステイタス信号CONや、動作開始信号BGNを受信している。ステイタス信号CONには、例えば、補給切れ信号、払出不足エラー信号、下皿満杯信号が含まれる。動作開始信号BGNは、電源投入後、払出制御部25の初期動作が完了したことを主制御部21に通知する信号である。
また、主制御部21は、遊技盤上の各入賞口16~18に内蔵された検出スイッチのスイッチ信号を受ける一方、電動式チューリップなどのソレノイド類を駆動している。ソレノイド類や検出スイッチは、主制御部21から配電された電源電圧VB(12V)で動作するよう構成されている。また、図柄始動口15への入賞状態などを示す各スイッチ信号は、電源電圧VB(12V)と電源電圧Vcc(5V)とで動作するインタフェイスICで、TTLレベル又はCMOSレベルのスイッチ信号に変換された上で、主制御部21に伝送される。
先に説明した通り、演出インタフェイス基板22は、集中接続コネクタC2を経由して、電源基板20から各レベルの直流電圧(5V,12V,35V)を受けている(図3(a)及び図13(a)参照)。直流電圧12Vは、デジタルアンプ29の電源電圧であると共に、LEDランプなどの駆動電圧として使用される。また、直流電圧35Vは、遊技枠の適所に配電されて可動物を往復移動させるソレノイドの駆動電圧として使用される。
一方、直流電圧5Vは、演出インタフェイス基板22各所の回路素子の電源電圧として供給されると共に、2つのDC/DCコンバータDC1,DC2に供給されて3.3Vと1.0Vが生成される(図13(a)参照)。生成された直流電圧3.3Vと1.0Vは、各々、I/O(入出力)用と、チップコア用の電源電圧として音声プロセッサ27に供給される。また、直流電圧3.3Vは、リセット回路RST4が生成する電源リセット信号RT4の基礎電圧となる。
演出インタフェイス基板22に配電された直流電圧5Vは、DC/DCコンバータDC1で生成された3.3Vと共に、演出制御基板23に配電される。そして、演出制御基板23に配電された直流電圧3.3Vは、電源電圧として、複合チップ50や、PROM53及びCGROM55に供給される。
図13(a)に示す通り、演出制御基板23には、2つのDC/DCコンバータDC3,DC4が配置されており、各々に供給される直流電圧5Vに基づいて、1.5Vと1.05Vを生成している。ここで、直流電圧1.05Vは、複合チップ50のチップコア用の電源電圧であり、直流電圧1.5Vは、DRAM54とのI/O(入出力)用の電源電圧である。したがって、直流電圧1.5Vは、電源電圧として、DRAM54にも供給される。
図3(a)に示す通り、演出インタフェイス基板22は、主制御部21から制御コマンドCMDとストローブ信号STBとを受けて、演出制御基板23に転送している。より詳細には、図13(a)に示す通りであり、制御コマンドCMDとストローブ信号STBは、入力バッファ40を経由して、演出制御基板23の複合チップ50(CPU回路51)に転送される。ここで、ストローブ信号STBは、受信割込み信号IRQ_CMD であり、演出制御CPU63は、受信割込み信号IRQ_CMD を受けて起動される割込み処理プログラム(割込みハンドラ)に基づいて、制御コマンドCMDを取得している。
図13(a)に示す通り、演出インタフェイス基板22の入力バッファ44は、枠中継基板36からチャンスボタン11や音量スイッチVLSWのスイッチ信号を受け、各スイッチ信号を演出制御基板23のCPU回路51に伝送している。具体的には、音量スイッチVLSWの接点位置(0~7)を示すエンコーダ出力の3bit長と、チャンスボタン11のON/OFF状態を示す1bit長をCPU回路51に伝送している。
また、演出インタフェイス基板22には、ランプ駆動基板30やモータ/ランプ駆動基板31が接続されると共に、枠中継基板36を経由して、モータ/ランプ駆動基板37にも接続されている。図示の通り、ランプ駆動基板30に対応して、出力バッファ42が配置され、モータ/ランプ駆動基板31に対応して、入力バッファ43aと出力バッファ43bが配置されている。なお、図4(a)では、便宜上、入力バッファ43aと出力バッファ43bを総称して、入出力バッファ43と記載している。入力バッファ43aは、可動演出体たる役物の現在位置(演出モータM1~Mnの回転位置)を把握する原点センサの出力SN0~SNnを受けて、演出制御基板23のCPU回路51に伝送している。
ランプ駆動基板30、モータ/ランプ駆動基板31、及び、モータ/ランプ駆動基板37には、同種のドライバICが搭載されており、演出インタフェイス基板22は、演出制御基板23から受けるシリアル信号を、各ドライバICに転送している。シリアル信号は、具体的には、ランプ(モータ)駆動信号SDATAとクロック信号CKであり、駆動信号SDATAがクロック同期方式で各ドライバICに伝送され、多数のLEDランプや電飾ランプによるランプ演出や、演出モータM1~Mnによる役物演出が実行される。
本実施例の場合、ランプ演出は、三系統のランプ群CH0~CH2によって実行されており、モータ/ランプ駆動基板37は、枠中継基板36を経由して、CH0のランプ駆動信号SDATA0を、クロック信号CK0に同期して受けている。なお、シリアル信号として伝送される一連のランプ駆動信号SDATA0は、動作制御信号ENABLE0がアクティブレベルに変化したタイミングで、ドライバICからランプ群CH0に出力されることで一斉に点灯状態が更新される。
以上の点は、ランプ駆動基板30についても同様であり、ランプ駆動基板30のドライバICは、ランプ群CH1のランプ駆動信号SDATA1を、クロック信号CK1に同期して受け、動作制御信号ENABLE1がアクティブレベルに変化したタイミングで、ランプ群CH1の点灯状態を一斉に更新している。
一方、モータ/ランプ駆動基板31に搭載されたドライバICは、クロック同期式で伝送されるランプ駆動信号を受けてランプ群CH2を駆動すると共に、クロック同期式で伝送されるモータ駆動信号を受けて、複数のステッピングモータで構成された演出モータ群M1~Mnを駆動している。なお、ランプ駆動信号とモータ駆動信号は、一連のシリアル信号SDATA2であって、クロック信号CK1に同期してシリアル伝送され、これを受けたドライバICは、動作制御信号ENABLE2がアクティブレベルに変化するタイミングで、ランプ群CH2やモータ群M1~Mnの駆動状態を更新する。
続いて、音声回路SNDについて説明する。図13(a)に示す通り、演出インタフェイス基板22には、演出制御基板23のCPU回路51(演出制御CPU63)から受ける指示に基づいて音声信号を再生する音声プロセッサ(音声合成回路)27と、再生される音声信号の元データである圧縮音声データなどを記憶する音声メモリ28と、音声プロセッサ27から出力される音声信号を受けるデジタルアンプ29と、が搭載されている。
音声プロセッサ27は、内部回路の異常動作時に、内部回路の設定値を自動的にデフォルト値(初期値)にリセットするWDT回路と、音声制御レジスタSRGとを内蔵して構成されている。そして、音声プロセッサ27は、演出制御CPU63から音声制御レジスタSRGに受ける動作パラメータ(音声コマンドによる設定値)に基づいて、音声メモリ28をアクセスして、必要な音声信号を再生して出力している。
図13(a)に示す通り、音声プロセッサ27と、音声メモリ28とは、26bit長の音声アドレスバスと、16bit長の音声データバスで接続されている。そのため、音声メモリ28には、1Gbit(=226*16)のデータが記憶可能となる。
音声制御レジスタSRGは、レジスタバンク1~レジスタバンク6に区分され、各々、00H~FFHのレジスタ番号で特定される。したがって、所定の設定動作は、レジスタバンクを特定した上で、演出制御CPU63が、所定のレジスタ番号(1バイト長)の音声制御レジスタSRGに、1バイト長の動作パラメータを書込むことで実現される。
本実施例の場合、音声制御レジスタSRGのレジスタ番号(00H~FFH)は、演出制御CPU63のアドレス空間CS3に対応しており、例えば、レジスタ番号XXHの音声制御レジスタSRGに、動作パラメータYYHを設定する場合には、演出制御CPU63は、アドレス空間CS3のゼロ番地にXXHを書込み、次に、1番地にYYHを書込むことになる。すなわち、演出制御CPU63は、そのデータバスにXXHとYYHを、この順番に書き出すことになる。なお、本明細書において、添え字Hや、0X/0xの接頭記号は、数値が16進数表示であることを示している。
また、本明細書において、アドレス空間CS0~CS7とは、揮発性の有無を含むメモリ種別や、データバス幅(8/16/32ビット)を、各々、規定可能なCPU回路51にとって外部メモリを意味する(内蔵メモリを除く)。このアドレス空間CS0~CS7は、異なるチップセレクト信号CS0~CS7で選択され、READ/WRITE アクセス時に機能するREAD/WRITE 制御信号がメモリ種別に対応して最適化できるよう設定可能に構成されている。なお、この設定動作は、バスステートコントローラ66に対して実行される。
図13(e)は、演出制御CPU63による音声レジスタSRGへの設定動作を図示したものであり、2bit長のアドレスバスA1-A0と、1バイト長のデータバスD7-D0の内容が示されている。なお、本実施例では、チップセレクト信号CS3は、アドレス空間CS3をアクセスする場合に、自動的にアクティブになるよう、電源投入時に設定されるが、この点は図15や図21に関して後述する。
何れにしても、本実施例の場合、音声メモリ28に記憶された圧縮音声データは、13bit長のフレーズ番号NUM(000H~1FFFH)で特定されるフレーズ(phrase)圧縮データであり、一連の背景音楽の一曲分(BGM)や、ひと纏まりの演出音(予告音)などが、最高8192種類(=213)、各々、フレーズ番号NUMに対応して記憶されている。そして、このフレーズ番号NUMは、演出制御CPU63から音声プロセッサ27の音声制御レジスタSRGに伝送される音声コマンドの設定値(動作パラメータ)によって特定される。
前記の通り、上記の構成を有する音声メモリ28は、リセット信号RT3で電源リセットされ、音声プロセッサ27は、リセット信号RT4で電源リセットされる。図13(c)に示す通り、リセット信号RT4は、電源投入後、所定のアサート期間ASRT(Lレベル区間)を経て、Hレベルに立ち上がるが、本実施例では、その後、音声プロセッサ27の内部回路が自動的に機能して、初期化シーケンス処理が実行されるよう構成されている。なお、この初期化シーケンス処理は、所定の手順で実行される内部動作であり、初期化シーケンス処理の動作中は、演出制御CPU63が音声レジスタSRGをアクセスすることはできない。
そして、内部動作たる初期化シーケンス処理が完了すると、CPU回路51に対する割込み信号IRQ_SND がLレベルに変化し、CPU回路51(演出制御CPU63)は、割込み信号IRQ_SND に基づき割込み処理プログラムを実行する。そして、所定の命令に基づいて割込み信号IRQ_SND がHレベルに戻されるが、その詳細については、図23(c)を参照して更に後述する。
図13(a)に示す通り、演出制御部23のCPU回路51のデータバスとアドレスバスは、液晶インタフェイス基板24に搭載された時計回路(real time clock )38と演出データメモリ39にも及んでいる。時計回路38は、CPU回路51のアドレスバスの下位4bitと、データバスの下位4bitに接続されており、チップセレクト信号CS4で時計回路38が選択された状態では、CPU回路51が、(4bit長アドレス値を有する)内部レジスタを任意にアクセスできるよう構成されている。
また、演出データメモリ39は、高速アクセス可能なメモリ素子SRAM(Static Random Access Memory )であって、CPU回路51のアドレスバスの16bitと、データバスの下位16bitに接続されており、チップセレクト信号CS4でチップ選択された状態では、SRAM(演出データメモリ)39に記憶されている遊技実績情報その他が、CPU回路51から適宜にR/Wアクセスされるようになっている。なお、チップセレクト信号CS4で選択されるアドレス空間CS4において、0番地から15番地までは時計回路38に付番されているので、SRAM39では使用しない。
時計回路38と演出データメモリ39は、不図示の二次電池で駆動されており、この二次電池は、遊技動作中、電源基板20からの給電電圧によって適宜に充電される。そのため、電源遮断後も、時計回路38の計時動作が継続され、また、演出データメモリ39に記憶された遊技実績情報が、永続的に記憶保持されることになる(不揮発性を付与)。なお、時計回路(RTC)38は、CPU回路51に対して、割込み信号IRQ_RTC を出力可能に構成されている(RTC割込み)。このRTC割込みには、日、曜日、時、分、秒が特定可能なアラーム割込みと、所定時間経過後に起動されるタイマ割込みが存在するが、本実施例では、毎日の営業終了時に、日々の遊技実績情報を更新するアラーム割込みを活用している。
図13(a)の右側に示す通り、演出制御基板23には、CPU回路51やVDP回路52を内蔵する複合チップ50と、CPU回路51の制御プログラムを記憶する制御メモリ(PROM)53と、大量のデータを高速にアクセス可能なDRAM(Dynamic Random Access Memory)54と、演出制御に必要な大量のCGデータを記憶するCGROM55と、が搭載されている。
図16に関して後述するように、制御メモリ(PROM)53は、本実施例では、チップセレクト信号CS0で選択されるアドレス空間CS0に位置付けされている。また、DDR(Double-Data-Rate 3)で構成されるDRAM(Dynamic Random Access Memory)54は、チップセレクト信号CS5で選択されるアドレス空間CS5に位置付けされている。
図14(a)は、演出制御部23を構成する複合チップ50について、関連する回路素子も含めて図示した回路ブロック図である。図示の通り、実施例の複合チップ50には、所定時間毎にディスプレイリストDLを発行するCPU回路51と、発行されたディスプレイリストDLに基づいて画像データを生成して表示装置DS1,DS2を駆動するVDP回路52とが内蔵されている。そして、CPU回路51とVDP回路52とは、互いの送受信データを中継するCPUIF回路56を通して接続されている。
なお、VDP回路52には、音声プロセッサ27と同等の機能を発揮する音声回路SNDが内蔵されているが、これから説明する実施例では、音声回路SNDを活用していない。但し、VDP回路52に内蔵された音声回路SNDを活用すれば、音声メモリ28や音声プロセッサ27の配置が不要となる。
先ず、CPU回路51は、発振器OSC1の発振出力(例えば100/3MHz)をHCLKI 端子に受けて、これを周波数逓倍(例えば8逓倍)して、266.7MHz程度のCPU動作クロックとしている。ここで、発振器OSC1は、スペクトラムス拡散波を出力するよう構成されることで、電波障害/電磁妨害を防止するEMI(Electromagnetic Interference)対策を図っている。
一方、VDP回路52は、発振器OSC2の発振出力(例えば40MHz)をPLLREF端子に受け、PLL(Phase Locked Loop )回路で、適宜に周波数逓倍した上で、VDP回路52のシステムクロック、表示装置用の表示クロック(ドットクロックなど)、及び、外付けDRAM54のDDRクロックとして使用している。すなわち、発振器OSC2の出力は、VDP回路52全体のリファレンスクロックとして機能している。なお、PLL回路の周波数逓倍比は、所定の設定端子への設定値で規定される。
そこで、このリファレンスクロックの重要性を考慮して、本実施例では、発振器OSC2をVDP回路52と同じ電源電圧3.3Vで動作させると共に、出力イネーブル端子OEがHレベル(=3.3V)であることを条件に、リファレンスクロックを発振出力するよう構成されている。そして、万一、電源電圧3.3Vが所定レベル以下に低下した場合には、その後、正常な演出動作は望めないので、マスク不能の割込み(NMI)が生じるよう構成されている。
また、複合チップ50には、HBTSL 端子が設けられ、HBTSL 端子の論理レベルに基づいて、電源投入(CPUリセット)後に実行されるブートプログラム(初期設定プログラム)が、CGROM55に記憶されているか(HBTSL =H)、それ以外のメモリに記憶されているか(HBTSL =L)を特定している。図示の通り、この実施例では、HBTSL =Lレベルに設定されており、演出制御CPU63のアドレス空間CS0のゼロ番地が、CGROM以外に割り当てられ、具体的には、アドレス空間CS0は、制御メモリ53に割り当てられている。
一方、HBTSL 端子=Hレベルに設定されている場合(破線参照)は、演出制御CPU63のアドレス空間CS0のゼロ番地が、CGROM55に割り当てられる。この場合は、CGROM55のメモリ種別と、バス幅(64/32/16bit)とが、2bit長のHBTBWD端子と、4bit長のHBTRMSL 端子への入力値に基づいて各々特定されようになっている。
続いて、CPU回路51とVDP回路52について、互いの送受信データを中継するCPUIF回路56について説明する。図14(a)に示す通り、CPUIF回路56には、制御プログラムや必要な制御データを不揮発的に記憶する制御メモリ(PROM)53と、2Mバイト程度の記憶容量を有するワークメモリ(RAM)57とが接続され、各々、CPU回路51からアクセス可能に構成されている。先に説明した通り、制御メモリ(PROM)53は、チップセレクト信号CS0で選択されるアドレス空間CS0に位置付けられ、ワークメモリ(RAM)57は、チップセレクト信号CS6で選択されるアドレス空間CS6に位置付けられている。
このワークメモリ(RAM)57には、表示装置DS1,DS2の各一フレームを特定する一連の指示コマンドが記載されたディスプレイリストDLを、一次的に記憶するDLバッファBUFが確保されている。本実施例の場合、一連の指示コマンドには、CGROM55から画像素材(テクスチャ)を読み出してデコード(展開)するためのTXLOADコマンドなどのテクスチャロード系コマンドと、デコード(展開)先のVRAM領域(インデックス空間)を予め特定するなどの機能を有するSETINDEXコマンドなどのテクスチャ設定系コマンドと、デコード(展開)後の画像素材を仮想描画空間の所定位置に配置するためのSPRITEコマンドなどのプリミティブ描画系コマンドと、描画系コマンドによって仮想描画空間に描画された画像のうち、実際に表示装置に描画する描画領域を特定するためのSETDAVR コマンドやSETDAVF コマンドなどの環境設定コマンドと、インデックス空間を管理するインデックステーブルIDXTBLに関するインデックステーブル制御系コマンド(WRIDXTBL)が含まれる。
なお、図18(c)には、仮想描画空間(水平X方向±8192:垂直Y方向±8192)と、仮想描画空間の中で任意に設定可能な描画領域と、表示装置DS1,DS2に出力する画像データを一次保存するフレームバッファFBa,FBbにおける実描画領域と、の関係が図示されている。
次に、CPU回路51は、汎用のワンチップマイコンと同等の性能を有する回路であり、制御メモリ53の制御プログラムに基づき画像演出を統括的に制御する演出制御CPU63と、プログラムが暴走状態になるとCPUを強制リセットするウォッチドッグタイマ(WDT)と、16kバイト程度の記憶容量を有してCPUの作業領域として使用される内蔵RAM59と、CPU63を経由しないでデータ転送を実現するDMAC(Direct Memory Access Controller )60と、複数の入力ポートSi及び出力ポートSoを有するシリアル入出力ポート(SIO)61と、複数の入力ポートPi及び出力ポートPoを有するパラレル入出力ポート(PIO)62と、前記各部の動作を制御するべく設定値が設定される動作制御レジスタREGなどを有して構成されている。但し、外付けのWDT回路58を設けた本実施例では、CPU回路51に内蔵されたウォッチドッグタイマ(WDT)を活用していない。
なお、本明細書では、便宜上、入出力ポートとの表現を使用するが、演出制御部23において、入出力ポートには、独立して動作する入力ポートと出力ポートとが含まれている。この点は、以下に説明する入出力回路64pや入出力回路64sについても同様である。
パラレル入出力ポート62は、入出力回路64pを通して外部機器(演出インタフェイス基板22)に接続されており、演出制御CPU63は、入力回路64pを経由して、音量スイッチVLSWのエンコーダ出力3bitと、チャンスボタン11のスイッチ信号と、制御コマンドCMDと、割込み信号STBと、を受信するようになっている。エンコーダ出力3bitと、スイッチ信号1bitは、入出力回路64pを経由して、パラレル入出力ポート(PIO)62に供給されている。
同様に、受信した制御コマンドCMDは、入出力回路64pを経由して、パラレル入出力ポート(PIO)62に供給されている。また、ストローブ信号STBは、入出力回路64pを経由して、演出制御CPU63の割込み端子に供給されることで、受信割込み処理を起動させている。したがって、受信割込み処理に基づいて、制御コマンドCMDを把握した演出制御CPU63は、演出抽選などを経て、この制御コマンドCMDに対応する音声演出、ランプ演出、モータ演出、及び画像演出を統一的に制御することになる。
特に限定されないが、本実施例では、ランプ演出とモータ演出のために、VDP回路52のSMC部(Serial Management Controller)78を使用している。SMC部78は、LEDコントローラとMotorコントローラと、を内蔵した複合コントローラであり、クロック同期方式でシリアル信号を出力できるよう構成されている。また、Motorコントローラは、所定の制御レジスタ70への設定値に基づき、任意のタイミングでラッチパルスを出力可能に構成され、また、クロック同期方式でシリアル信号を入力可能に構成されている。
そこで、本実施例では、クロック信号に同期してモータ駆動信号やLED駆動信号を、SMC部78から出力させる一方、適宜なタイミングで、ラッチパルスを、動作制御信号ENABLEとして出力するようにしている。また、演出モータ群M1~Mnからの原点センサ信号SN0~SNnをクロック同期方式でシリアル入力するよう構成されている。
図13(a)に関して説明した通り、クロック信号CK0~CK2、駆動信号SDATA0~SDATA2、及び、動作制御信号ENABLE0~ENABLE2は、出力バッファ41~43を経由して、所定の駆動基板30,31,37に伝送される。また、原点センサ信号SN0~SNnは、モータ/ランプ駆動基板31から入出力バッファ43を経由して、SMC部78にシリアル入力される。
但し、本実施例において、SMC部78を使用することは必須ではない。すなわち、CPU回路51には、汎用のシリアル入出力ポートSIO61が内蔵されているので、これらを使用して、ランプ演出とモータ演出を実行することもできる。
具体的には、図14(a)の破線に示す通りであり、破線で示す構成では、シリアル入出力ポートSIO61に内部接続されている入出力回路64sを経由して、クロック信号CK0~CK2、駆動信号SDATA0~SDATA2が出力され、入出力回路64pを経由して動作制御信号ENABLE0~ENABLE2が出力される。なお、便宜上、入出力ポートや入出力回路と表現するが、実際に機能するのは、出力ポートや出力回路である。
ここで、シリアル出力ポートSOは、16段のFIFOレジスタを内蔵して構成されている。そして、DMAC回路60は、演出制御CPU63から動作開始指示(図26(b)ST18参照)を受けて起動し、ランプ/モータ駆動テーブル(図26(b)参照)から、必要な駆動テータを順番に読み出し、シリアル出力ポートSOのFIFOレジスタにDMA転送するよう構成されている。FIFOレジスタに蓄積された駆動データは、クロック同期方式でシリアル出力ポートSOからシリアル出力される。なお、DMAC回路には、複数(例えば7)のDMAチャネルが存在するが、優先度に劣る第3のDMAチャネルでランプ駆動データをDMA転送し、最優先度の第1のDMAチャネルでモータ駆動データをDMA転送するよう構成されている。
CPU回路51に内蔵された動作制御レジスタREGは、レジス番号(アドレス値)が0xFF400000以降に付番された8bit、16bit、又は32bit長のレジスタであり、演出制御CPU63から適宜にWRITE/READアクセス可能に構成されている(図16参照)。そのためノイズなどの影響で、動作制御レジスタREGに、不合理な値に設定される可能性がある。
但し、例えば、意図的に無限ループ処理を実行させて外付けのWDT回路58を起動させることで、複合チップ50を異常リセットすることができる。この場合、動作制御レジスタREGの値が、電源投入後と同じデフォルト値(初期値)に戻され、且つ、VDP回路52についても、VDPレジスタRGijの値が、デフォルト値(初期値)に戻されることで異常状態が解消される。
図13(b)は、このリセット動作に関連する回路構成であって、本実施例に特徴的なリセット機構を説明する図面である。なお、本明細書において、RGijと表記するVDPレジスタは、CPU回路51に内蔵された動作制御レジスタREGではなく、VDP回路52の内部動作を制御する制御レジスタ群70(図16参照)の何れかを意味する。また、図13(b)に示すシステム制御回路520とは、VDPレジスタRGij(図16の制御レジスタ群70の何れか)への設定値に基づいて機能するVDP回路52の内部制御回路を意味する(図14(a)参照)。なお、VDPレジスタRGijは、演出制御CPU63のアドレスマップにおいて、チップセレクト信号CS7で選択されるアドレス空間CS7に位置付けられる。
以上を踏まえてリセット機構について説明すると、図13(b)に示す通り、複合チップ50は、論理反転されたシステムリセット信号SYSバーを受ける3個のORゲートG2~G4を経由して、内部回路がリセット可能に構成されている。但し、本実施例では、破線で示すように、内蔵WDTを有効化しないので、ORゲートG2の入端子と出力端子は、直結状態となる。
何れにしても、CPU回路51とVDP回路52の間に、パターンチェック回路CHKが設けられ、パターンチェック回路CHKは、パラレル入出力ポート(PIO)62から、所定のキーワード列(リセット用の暗号列)を受けることを条件に、リセット信号RSTを出力するよう構成されている。
そして、複合チップ50の内部回路は、(1)CPU回路51と、(2)VDP回路52の表示回路74と、(3)VDP回路52における表示回路以外とに三分されて、各々、ORゲートG2~G4から第1リセット経路~第3リセット経路のリセット信号を受けるよう構成されている。
先ず、入出力端子が直結状態のORゲートG2は、第1リセット経路に関連しており、システムリセット信号SYSバーに基づき、CPU回路51の全体をシステムリセットされるように構成されている。また、ORゲートG3は、第2リセット経路に関連しており、システムリセット信号SYSバーと、パターンチェック回路CHKからのリセット信号RSTとを受けて、OR論理に基づき、VDP回路52全体をリセット可能に構成されている。
この第2リセット経路は、電源投入時の電源リセット動作だけでなく、所定の異常を検出した演出制御CPU63が、VDP回路52の全体を異常リセットして初期状態に戻す用途で使用される。具体的には、VDP回路52の内部動作を示す所定のステイタスレジスタRGijに基づき、重大な異常が発生していると判断される場合には、パターンチェック回路CHKからリセット信号RSTを発生させることで、VDP回路52の全体を異常リセットしている。なお、表示回路74は、ORゲートG4を経由して、第2リセット経路→第3リセット経路で異常リセットされる。
一方、VDP回路52に内蔵された内部回路は、第4リセット経路で、必要時に個々的にリセットすることも可能に構成されている。個々的にリセット可能な内部回路には、図14(a)に示すインデックステーブルIDXTBL、データ転送回路72、プリローダ73、表示回路74、描画回路76、SMC回路78、及び、音声回路SNDや、図19に示すICM回路が含まれている。
個別的なリセット動作を実現する手法は、図13(b)の下部に記載の通りであり、例えば、表示回路74は、所定のVDPレジスタRGij(システムコマンドレジスタ)に、第1リセット値を書き込むことで、第4リセット経路4A→第3リセット経路を経てリセットされる。
また、VDP回路52の各内部回路(72,73,74,76,SND,・・・)は、(1)第1のVDPレジスタRGij(リセットRQレジスタ)に、対象回路を特定する設定値を書き込んだ後、(2)所定のVDPレジスタRGij(システムコマンドレジスタ)に、第2リセット値を書き込むことで、個々的にリセットされる(第4リセット経路4B)。なお、この実施例では使用しないが、音声回路SNDは、第4リセット経路4Bによるリセットだけでなく、所定のVDPレジスタ(回路設定コマンドレジスタ)に、リセット値を書き込むことでもリセット可能である(第4リセット経路4C)。
本実施例は、上記の構成を有するので、電源投入時やプログラム暴走時に、VDP回路52全体が自動的に初期状態に戻るだけでなく、必要に応じて、各部を初期状態に戻して異常事態の回復を図ることができる。例えば、一定期間、内蔵VRAM71に対してREAD/WRITE アクセスがない描画回路76のフリーズ時には、第4リセット経路4Bを経由して描画回路76が個別的に初期化される(図26(d)のST16a参照)。プリローダ73やデータ転送回路72についても、ほぼ同様であり、所定の異常時には、第4リセット経路4Bを経由してプリローダ73が初期化され(図25のST27参照)、第4リセット経路4Bを経由してデータ転送回路72が初期化される(図20や図25のST27参照)。
また、表示回路74については、1/60秒毎の表示タイミングに、表示データの生成が間に合わないアンダーラン(Underrun)異常が続くような場合に、第4リセット経路4A又は第4リセット経路4Bを経由して、表示回路74が個別的に初期化される(図26のST10c参照)。
以上、本実施例に特徴的なリセット機構について説明したが、何れかのリセット経路1~4が機能して、複合チップ50の内部回路がリセットされると、その内部回路に対応するVDPレジスタRGijの設定値は、電源投入後と同じデフォルト値に戻る。
続いて、CPU回路51の内部構成に戻って、特徴的な回路構成の説明を続ける。図15は、CPU回路51の内部構成をやや詳細に示すブロック図である。CPU回路51は、先に説明した内蔵RAM59、DMAC回路60、SIO61、PIO62、WDT以外にも、多くの特徴的な回路を含んで構成されている。
先ず第1に、CPU回路51は、命令用のCPUフェッチバスと、データ用のCPUメモリアクセスバスとを別々に有してハーバード・アーキテクチャを実現している。そのため、CPUコア(演出制御CPU)63が命令をメモリから読むフェッチ動作と、メモリアクセス動作とが競合せず、フェッチ動作を連続させることで高速処理を実現している。
また、CPUコア63は、複数個(例えば15個)のレジスタバンクRB0~RB14を有して構成されており、その使用の有無を選択できるよう構成されている。そして、レジスタバンクRBiの使用を許可した動作状態では、割込み処理の開始時に、CPUの内蔵レジスタ(例えば19個)のレジスタ値(各32bit長)が、空き状態のレジスタバンクRBiに自動的に退避される。
また、割込み処理の終了時に所定の復帰命令を実行すると、例えば19個の退避データが、対応する内蔵レジスタに自動的に復帰される。したがって、通常の構成のように、割込み処理の開始時にPUSH命令を19回実行し、割込み処理の終了時にPOP命令を19回実行する手間が不要となり、高速処理が実現される。
また、実施例のCPU回路51は、命令キャッシュメモリ67と、オペランドキャッシュメモリ89と、キャッシュコントローラ69とを設けることで、ハーバードキャッシュ動作を実現しており、同一アドレスをアクセスする場合に、キャッシュ済みのデータを活用することでプログラム処理の更なる高速化を図っている。なお、バスブリッジ65と、周辺バス(1) 用のコントローラ、周辺バス(2) 用のコントローラ、及び、周辺バス(3) 用のコントローラとが設けられることで、内部バスと、周辺バス(1) 、周辺バス(2) 、及び周辺バス(3) とを適宜に接続している。
次に、図15の回路構成において、バスステートコントローラ66は、動作制御レジスタREGへの適宜な設定値に基づいて動作して、CPU回路51に接続された各種メモリデバイスとのメモリREAD動作やメモリWRITE 動作を最適化する部分である。メモリREAD動作やメモリWRITE 動作は、例えば、図27に例示した動作タイミングで実行されるが、アドレスバス(28Bit )から出力されるアドレスデータと、READデータバス(32Bit )に読み出されるREADデータと、WRITE データバス(32Bit )に書き出されるWRITE データと、チップセレクト信号CS0~CS7などの制御信号との動作タイミングが、動作制御レジスタREGへの設定値に基づいて、各メモリデバイスの特性に対応して適宜に規定される。
READデータバスとWRITE データバスが別々に設けられているので、上記したハーバード・アーキテクチャによる高速動作が実現される。なお、本明細書では、アドレスバス(28Bit )、READデータバス(32Bit )、及び、WRITE データバス(32Bit )について、図15に示す内部バスや、周辺バス(1) ~周辺バス(3) などと区別する意味で、外部バスと総称することがある。
図16は、チップセレクト信号CS0~CS7によって選択されるアドレス空間CS0~CS7を図示したものであり、バスステートコントローラ66を経由してアクセスされる演出制御CPU63にとってのアドレスマップを図示したものである。先ず、各アドレス空間CS0~CS7は、何れも、最大64Mバイトに(=0x4000000H=67108864)に規定されている。
先に説明した通り、アドレス空間CS0~CS7とは、揮発性の有無を含むメモリ種別や、データバス幅(8/16/32ビット)を、各々、規定可能なCPU回路51にとって外部メモリを意味する。そして、本実施例では、図15(b)や図16に示す通り、制御メモリ(PROM)53がアドレス空間CS0、音声プロセッサ27の音声制御レジスタSRGがアドレス空間CS3、時計回路38の内部レジスタやSRAM39がアドレス空間CS4、外付けDRAM(DDR)54がアドレス空間CS5、ワークメモリ57がアドレス空間CS6、VDPレジスタRGijがアドレス空間CS7に位置付けられている。なお、アドレス空間CS1,CS2についての説明は省略する。
ところで、図16から確認される通り、アドレス空間CS0~CS7は、アドレス値0x00000000~0x1FFFFFFF(キャッシュ有効空間)だけでなく、アドレス値0x20000000~0x3FFFFFFF(キャッシュ無効空間)にも確保されている。これは、アドレスビットA29=1のときには、CPU回路51の内部動作に基づいて、キャッシュ無効とする一方、アドレスビットA29=0のときにキャッシュ有効とすることで、キャッシュ機能の活用を任意選択できるようにしたものである。
そのため、本実施例では、全32bitのアドレス情報(ビットA31~A0)のうち、ビットA29の値が1又は0の何れであっても、残り31bit(ビットA31~A30とビットA28~A0)の値が同じであれば、同一のメモリの同一番地を指示することになる。例えば、0x18000000番地をREADアクセスしても、0x38000000番地をREADアクセスしても,ワークメモリ57のゼロ番地から同一データが読み出されることになる。なお、0x18000000番地をREADアクセスした場合には、読み出したデータがキャッシュに保存されるが、図15(b)は、キャッシュ有効/無効のアクセス動作を図示している。
もっとも、所定の動作制御レジスタREGへの設定値に基づいて、命令キャッシュ及び/又はオペランドキャッシュについて、キャッシュ動作を無効化することもできる。但し、本実施例では、電源投入後、命令キャッシュ及びオペランドキャッシュについて、キャッシュ動作を有効化した上で、必要に応じて、キャッシュ無効空間をアクセスすることで、キャッシュ動作を無効化している。
図16のメモリマップについて説明を続けると、0x40000000番地以降は、バスステートコントローラ66が機能しない内部メモリ空間であって、0xF0000000番地~0xFF3FFFFF番地は、キャッシュのアドレスアレイ空間に割り当てられている。また、0xFF400000番地~0xFFF7FFFF番地と、0xFFFC0000番地~0xFFFFFFFF番地は、内蔵周辺モジュールに割り当てられ、具体的には、CPU回路の動作制御レジスタREGに割り当てられている。なお、内蔵RAM59のアドレス範囲は、0xFFF80000~0xFFFBFFFFである。
CPU回路51の内部構成について説明を続けると、コンペアマッチタイマCMTと、マルチファンクションタイマユニットMTUは、CPU回路51に供給される外部信号をカウントしたり、或いは、内部クロックを逓倍又は分周した計数クロックをカウントして、カウント結果が所定値に達すると、割込み信号などを発生する回路である。特に限定されないが、本実施例では、マルチファンクションタイマユニットMTUを活用して、1mS割込み信号と、20μS割込み信号を発生させている。
次に、割込みコントローラINTCは、VDP回路52やDMAC回路60やマルチファンクションタイマユニットMTUなどからの内部割込みと、IRQ_CMD 、IRQ_SND 、IRQ_RCT などの外部割込みを受けて、予め規定されている優先順位に基づいて、割込み処理(割込みハンドラ)を起動させる回路である。ここで、IRQ_CMD は、制御コマンドCMDを受信すべきコマンド受信割込み信号、IRQ_SND は、音声プロセッサ27が初期化シーケンスを終えたことを示す終了割込み信号、IRQ_RCT は、アラーム割込み信号である。
そして、本実施例では、割込み優先度は、コマンド受信割込みIRQ_CMD が最高レベルであり、以下、20μS割込み→1mS割込み→VDP回路からの割込み(IRQ0,IRQ1,IRQ2,IRQ3)→DMAC割込み→IRQ_SND →IRQ_RCT の順になっている(図23(d)参照)。なお、これらは何れも、マスク可能な割込みであり、マスク不能な割込みNMIは、先に説明した通り、発振器OSC2からリファレンスクロックが出力されていない場合に演出制御CPU63に出力される。
そして、何れの割込み処理でも、CPUの複数の内蔵レジスタのレジスタ値(各32bit長)は、空き状態の何れかのレジスタバンクRBiに、自動的に退避される。そして、割込み処理の最後に所定の復帰命令を実行すると、退避データが、対応する内蔵レジスタに自動的に復帰される。
続いて、DMAC回路60について説明する。実施例のDMAC回路60は、所定の動作制御レジスタREGへの設定値に基づいて、転送元(Source)から転送先(Destination )に対して、所定のDMA転送モードで、所定のデータ転送単位毎に、所定回数、データ転送を繰り返す回路である。なお、同一の内部構成を有する複数チャネルのDMAC0~DMACnが用意されており、並列的に動作可能となっている。但し、優先度が決まっており(チャネル0>・・・>チャネルn)、チャネル調停動作モードの並列動作時には、所定タイミングでのチャネル調停によって優先度の高いDMACiの動作が優先される。
DMAC回路60の活用としては、例えば、シリアル出力ポートSOが機能する実施例(図16(a)破線部参照)では、CPU回路51の動作制御レジスタREGには、ランプ/モータ駆動テーブルの先頭アドレス(転送元アドレスの先頭値)と、シリアル出力ポートSOの入力レジスタのアドレス(転送先アドレスの固定値)と、データ転送単位(8bit)と、転送回数と、が指定される。そして、所定の動作制御レジスタREGに動作開始指示を受けたDMAC回路60は、転送元アドレスを更新しつつ、所定の転送先アドレスに駆動データをDMA転送する。そして、全てのDMA転送が終われば、DMAC割込み(動作終了割込み)が生じるよう構成されている。
この点は、ディスプレイリストDLをDMAC回路60が発行する実施例(図21、図25(c))の場合もほぼ同様である。すなわち、演出制御CPU63は、CPU回路51の所定の動作制御レジスタREGに、転送元(DLバッファBUF)の先頭アドレスと、転送先(転送ポートTR_PORT )のアドレスと、DMA転送モードと、データ転送単位と、転送回数、その他の条件を設定することになる。なお、これらの点は、図21に関して更に後述する。
ところで、一般に、DMA転送モードには、DMA転送の単位動作(R動作/W動作)の途中でバス制御権を開放するなど、DMA動作がメモリバスを占有しないサイクルスチール転送モードと、複数のR動作やW動作を連続させるなど、指定された転送回数が完了するまでバス制御権を解放しないバースト転送(パイプライン転送)モードと、他のデバイスから受けるDMA転送要求(デマンド)がアクティブの間はDMA動作を継続するデマンド転送モードなどが考えられる。しかし、本実施例のDMAC回路60は、DMA転送時のリードアクセス起動(R動作)とライトアクセス起動(W動作)の間に、少なくとも1サイクルのメモリ開放期間を設けたサイクルスチール転送モードで機能することで、演出制御CPU63の動作に支障が出ないようにしている。
図17は、サイクルスチール転送動作(a1)と、パイプライン転送(a2)とを説明する図面である。図17(a1)に示す通り、サイクルスチール転送モードで機能するDMAC回路60は、1データ転送のリードアクセス起動(R)とライトアクセス起動(W)の間に、少なくとも1サイクル空けて動作しており、この空いたサイクルでは、演出制御CPU63のバス使用が可能となる。図17(a1)と図17(a2)の対比関係から明らかなように、パイプライン転送では、一サイクル(一オペランド転送)が終わるまでは、バスがCPUに開放されないのに対して、サイクルスチール転送モードでは、リードアクセス毎に、バスがCPUに開放されるので、CPUの動作が大きく遅れることがない。
そして、例えば、ディスプレイリストDLのVDP回路52への発行時に、DMAC回路60を使用する実施態様では、一サイクルのデータ転送単位(1オペランド)を、32×2bitに設定し、ディスプレイリストDLが格納されている内蔵RAM59のソースアドレスを適宜に増加しつつ(1オペランド転送毎に+8)、固定アドレスで特定されるデータ転送回路72の転送ポートレジスタTR_PORT (図19参照)に対して、DMA転送動作を実行している。
後述するように、実施例では、ディスプレイリストDLに、必要個数のNOP (no operation)コマンドを付加することで、全体のデータサイズを、固定値(例えば、4×64=256バイト、又はその整数倍)に調整しており、32bit×2回の一オペランド転送を32回(又はその整数倍)繰り返すことで、ディスプレイリストDLの発行を完了させている。なお、描画回路76がNOP コマンドを実行しても、事実上、何の変化も生じない。
また、DMA転送条件に関して動作モードを分類すると、一般に、単一オペランド転送(図17(b1)参照)と、連続オペランド転送(図17(b2)参照)と、ノンストップ転送(図17(b3)参照)とが考えられる。
ここで、単一オペランド転送とは、図17(b1)に示すように、DMA転送要求が与えられるたびに、1オペランドの転送を繰り返し、転送バイト数をカウントするバイトカウントがゼロになった時点で、DMA割込み要求が生じる動作モードを意味する。次に、連続オペランド転送とは、図17(b2)に示すように、1回のDMA要求で、バイトカウントがゼロになるまでDMA転送を繰り返す動作モードを意味する。
これら、連続オペランド転送(b2)や単一オペランド転送(b1)では、1オペランド転送が終了するごとにチャネル調停が行われ、優先順位の高いチャネルのDMA要求がないことを条件に、現在のチャネルの転送が継続される(チャネル調停動作モード)。そこで、本実施例では、ディスプレイリストDLのVDP回路への発行や、ランプ駆動データやモータ駆動データのDMA転送は、単一オペランド転送方式を採っている。そして、並列動作時には、例えば、モータデータ>ディスプレイリストDL>ランプデータの優先度のチャネル調停となるよう、最適チャネルのDMACiを使用している。
一方、ノンストップ転送とは、チャネル調停が実行されない動作モードであって、図17(b3)に記載の通り、1回のDMA要求で、バイトカウントがゼロになるまで連続的にDMA転送が繰り返される。本実施例では、電源投入時のメモリセクション初期化処理(図21のSP8)では、ノンストップ転送でプログラムやデータをDMA転送している。
以上、CPU回路51について説明したので、次に、VDP回路52について説明すると、VDP回路52には、画像演出を構成する静止画や動画の構成要素となる圧縮データを記憶するCGROM55と、4Gbit程度の記憶容量を有する外付けDRAM(Dynamic Random Access Memory)54と、メイン表示装置DS1と、サブ表示装置DS2とが接続されている。なお、DRAM54は、好適にはDDR3(Double-Data-Rate3 SDRAM )で構成される。
特に限定するものではないが、この実施例では、CGROM55は、62Gbit程度の記憶容量のNAND型フラッシュメモリで構成されたフラッシュSSD(solid state drive )で構成されており、シリアル伝送によって必要な圧縮データを取得するよう構成されている。そのため、パラレル伝送において不可避的に生じるスキュー(ビットデータ毎の伝送速度の差)の問題が解消され、極限的な高速伝送動作が可能となる。特に限定されないが、本実施例では、SerialATAに準拠したHSS(High Speed Serial )方式で、CGROM55を高速アクセスしている。
なお、SerialATAに準拠したHSS方式を採るか否かに拘らず、NAND型のフラッシュメモリは、ハードディスクより機械的に安定であり、且つ高速アクセスが可能である一方で、シーケンシャルアクセスメモリであるため、DRAMやSRAM(Static Random Access Memory )に比較すると、ランダムアクセス性に問題がある。そこで、本実施例では、一群の圧縮データ(CGデータ)を、描画動作に先行してDRAM54に読み出しておくプリロード動作を実行することで、描画動作時におけるCGデータの円滑なランダムアクセスを実現している。ちなみに、アクセス速度は、内蔵VRAM>外付けDRAM>CGROMの順番に遅くなる。
VDP回路52は、詳細には、VDP(Video Display Processor )の動作を規定する各種の動作パラメータが演出制御CPU63によって設定可能な制御レジスタ群70と、表示装置DS1,DS2に表示すべき画像データの生成時に使用される48Mバイト程度の内蔵VRAM(video RAM )71と、チップ内部の各部間のデータ送受信及びチップ外部とのデータ送受信を実行するデータ転送回路72と、内蔵VRAM71に関して、SourceやDestination のアドレス情報を特定可能なインデックステーブルIDXTBLと、描画動作に先行してCGROM55をREADアクセスするプリロード動作が実行可能なプリローダ73と、CGROM55から読み出した圧縮データをデコード(復号伸長/展開)するグラフィックスデコーダ(GDEC)75と、デコード(展開)後の静止画データや動画データを適宜に組み合わせて表示装置DS1,DS2の各一フレーム分の画像データを生成する描画回路76と、描画回路76の動作の一部として、適宜な座標変換によって立体画像を生成するジオメトリエンジン77と、描画回路76が生成したフレームバッファFBa,FBbの画像データを読み出して、適宜な画像処理を並列的に実行可能な3系統(A/B/C)の表示回路74A~74Cと、3系統(A/B/C)の表示回路74の出力を適宜に選択出力する出力選択部79と、出力選択部79が出力する画像データをLVDS信号に変換するLVDS部80と、シリアルデータ送受信可能なSMC部78と、CPUIF回路56とのデータ送受信を中継するCPUIF部81と、CGROM55からのデータ受信を中継するCGバスIF部82と、外付けDRAM54とのデータ送受信を中継するDRAMIF部83と、内蔵VRAM71とのデータ送受信を中継するVRAMIF部84と、を有して構成されている。なお、音声回路SNDも内蔵されている。
図14(b)には、CPUIF部81、CGバスIF部82、DRAMIF部83、及び、VRAMIF部84と、制御レジスタ群70、CGROM55、DRAM54、及び内蔵VRAM71との関係が図示されている。図示の通り、CGROM55から取得したCGデータは、例えば、プリロードデータとして、データ転送回路72及びDRAMIF部83を経由して、外付けDRAM54のプリロード領域に転送される。
但し、上記したプリロード動作は、何ら必須動作ではなく、また、データ転送先も、外付けDRAM54に限定されず、内蔵VRAM71であっても良い。したがって、例えば、プリロード動作を実行しない実施例では、CGデータは、データ転送回路72及びVRAMIF部84を経由して、内蔵VRAM71に転送される(図14(b))。
ところで、本実施例では、内蔵VRAM71には、CGROM55から読み出した圧縮データの展開領域、表示装置のW×H個の表示ピクセルの各ARGB情報(32bit=8×4)を特定する画像データを格納するフレームバッファ領域、及び、各表示ピクセルの深度情報を記憶するZバッファ領域などが必要となる。なお、ARGB情報において、Aは、8bitのαプレーンデータ、RGBは三原色の8bitデータを意味する。
ここで、内蔵VRAM71の上記した各領域は、演出制御CPU63がディスプレイリストDLに記載した各種の指示コマンド(前記したテクスチャやSPRITEなど)に基づいて間接的にアクセスされるが、そのREAD/WRITEアクセスにおいて、一々、内蔵VRAM71のDestination アドレスや、Sourceアドレスを特定するのでは煩雑である。そこで、本実施例では、CPUリセット後の初期処理において、描画動作で必要となる一次元または二次元の論理アドレス空間(以下、インデックス空間という)を確保して、各インデックス空間にインデックス番号を付与することで、インデックス番号に基づくアクセスを可能にしている。
具体的には、CPUリセット後、内蔵VRAM71を3種類のメモリ領域に大別すると共に、各メモリ領域に、必要数のインデックス空間を確保している。そして、インデックス空間とインデックス番号とを紐付けて記憶するインデックステーブルIDXTBL(図18(a)参照)を構築することで、その後のインデックス番号に基づく動作を実現している。
このインデックス空間は、(1) 初期処理後に追加することや、逆に、(2) 開放することも必要となる。そこで、これら追加/開放の演出制御CPU63の動作時に、追加/開放の処理が可能なタイミングか否か、また、追加/開放などの処理が実際に完了したか否か、などを判定可能なフラグ領域FGをインデックステーブルIDXTBLに設けている。なお、内蔵VRAM71は、以下に説明する2つのAAC領域(a1,a2) と、ページ領域(b) と、任意領域(c) の三種類のメモリ領域に大別され、この三種類のメモリ領域(a1,a2)(b)(c) に対応して、インデックステーブルIDXTBLが3区分されている(図18(a))。図示の通り、この実施例では、AAC領域(a) として、第一AAC領域(a1)と第二AAC領域(a2)が確保されているが、特に限定されるものではなく、何れか一方だけでも良い。なお、以下の説明では、第一と第二のAAC領域(a1,a2) を総称する場合には、AAC領域(a) と称する場合がある。
本実施例の場合、内蔵VRAM71は、(a) インデックス空間とそのインデックス番号が内部処理によって自動付与され、且つメモリキャッシュ機能を有するAAC領域と、(b) 例えば4096bit×128ラインの二次元空間を単位空間として、その整数倍の範囲でインデックス空間が確保可能なページ領域と、(c) 先頭アドレス(空間先頭アドレス)STxと水平サイズHxが任意に設定できる任意領域と、に区分可能に構成されている(図18(b)参照)。但し、VDP回路52の内部動作を円滑化するため、任意領域(c) において任意設定されるインデックス空間の空間先頭アドレスSTxは、その下位11bitが0であって、所定ビット(2048bit=256バイト)単位とする必要がある。
そして、CPUリセット後、各々に必要なアドレス空間の最大値と、領域先頭アドレス(下位11bit=0)を規定して、AAC領域(a1)と、第二AAC領域(a2)と、ページ領域(b) とが確保され、その残りのメモリ領域が任意領域(c) となる。VDP回路52の内部動作を円滑化するため、AAC領域のアドレス空間の最大値は、2048bit単位で規定され、ページ領域のアドレス空間の最大値は、上記した4096bit×128ラインの単位空間の整数倍とされる。
次に、このように確保された各領域(a1,a2)(b)(c) に必要個数のインデックス空間が設定される。なお、任意領域(c) を使用する場合、VDP回路52の内部動作を円滑化するため、二次元データを扱うインデックス空間の水平サイズHxは、256bitの倍数として、任意に設定可能である一方、その垂直サイズは固定値(例えば、2048ライン)となっている。
何れにしても、第一と第二のAAC領域(a1,a2) は、VDP回路52によって、インデックス空間とインデックス番号が自動的に付与されるので、例えば、テクスチャ設定系コマンドのSETINDEXコマンドによって、デコード先をAAC領域(a) に指定すれば、CGROM55からCGデータを読み出すTXLOAD(テクスチャロード)コマンドでは、CGROM55のSourceアドレスと、展開(デコード)後の水平・垂直サイズなどを指定するだけで足りることになる。そこで、本実施例では、予告演出時などに一時的に出現するキャラクタなどの静止画(テクスチャ)や、Iストリーム動画については、そのデコード先をAAC領域(a) にしている。
このAAC領域(a) は、いずれも、メモリキャッシュ機能が付与されているので、例えば、CGROM55の同一のテクスチャを複数回、AAC領域(a) に読み出すような場合には、二度目以降は、AAC領域(a) にキャッシュされているデコードデータが活用可能となり、余分なREADアクセスとデコード処理が抑制可能となる。もっとも、AAC領域(a) を使い切った場合には、古いデータが自動的に破壊されるので、本実施例では、AAC領域(a) を使用する場合、原則として第一AAC領域(a1)を使用することとし、繰り返し使用する特定のテクスチャだけを第二AAC領域(a2)に取得するようにしている。
繰り返し使用するテクスチャとして、例えば、所定の予告演出時に繰り返し出現するキャラクタや、背景画面を静止画で構築する場合の背景画などを例示することができる。このような場合、テクスチャ設定系コマンドのSETINDEXコマンドによって、デコード先を第二AAC領域(a2)に設定し、TXLOADコマンドによって、キャラクタや背景画などのテクスチャを第二AAC領域(a2)にデコードした後は、第二AAC領域(a2)を使用しないことで、デコード結果を保護する。
そして、その後、SETINDEXコマンドによって、デコード先を第二AAC領域(a2)に指定した上で、取得済みのテクスチャを再取得する同一のTXLOADコマンドを実行させると、取得済みのテクスチャがキャッシュヒットするので、CGROM55へのREADアクセスと、デコード処理に要する時間を削除することができる。後述するように、このようなキャッシュヒット機能は、プリロード領域に先読みされたプリロードデータでも発揮されるが、プリロード領域でキャッシュヒットするプリロードデータは、デコード前の圧縮データであるのに対して、AAC領域でキャッシュヒットするのはデコード後の展開データである点に意義がある。
ところで、テクスチャ(texture )とは、一般に、物の表面の質感・手触りなどを指す概念であるが、本明細書では、静止画を構成するスプライト画像データや、動画一フレームを構成する画像データや、三角形や四角形などの描画プリミティブ(primitive )に貼り付ける画像データだけでなく、デコード後の画像データも含む概念として使用している。そして、内蔵VRAM71の内部で、画像データをコピーする(以下、便宜上、移動と称する)場合には、テクスチャ設定系コマンドのSETINDEXコマンドによって、移動元の画像データをテクスチャとして設定した上で、SPRITEコマンドを実行することになる。
なお、SPRITEコマンドの実行により、移動元のSource画像データが、形式上は、図18(c)に示す仮想描画空間に描画されるが、表示装置に実際に描画される仮想描画空間内の描画領域と、フレームバッファとなるインデックス空間との対応関係を、予め環境設定コマンド(SETDAVR ,SETDAVF )や、テクスチャ設定系コマンド(SETINDEX)によって設定しておけば、例えば、SPRITEコマンドによる仮想描画空間への描画により、所定のインデックス空間(フレームバッファ)には、移動元のSource画像データが描画されることになる(図18(c)参照)。
何れにしても、本実施例では、内蔵VRAM71が、AAC領域(a1,a2) とページ領域(b) と任意領域(c) に大別され、各々に、適当数のインデックス空間を確保することができ、各インデックス空間は、各領域(a)(b)(c) ごとに独立のインデックス番号によって特定される。インデックス番号は、例えば、1バイト長であり、(内部回路によって自動付与されるAAC領域(a) を除いた)ページ領域(b) と任意領域(c) については、0~255の範囲で演出制御CPU63が、インデックス番号を自由に付与することができる。
そこで、本実施例では、図18(a)に示す通り、表示装置DS1用として、任意領域(c) に、一対のフレームバッファFBaを確保して、ダブルバッファ構造の双方に、インデックス番号255,254を付与している。すなわち、メイン表示装置DS1用のフレームバッファFBaとして、トグル的に切り換えて使用されるインデックス空間255と、インデックス空間254を確保している。特に限定されないが、このインデックス空間255,254は、表示装置DS1の横方向ピクセル数に対応して、水平サイズ1280としている。なお、各ピクセルは、ARGB情報32bitで特定されるので、水平サイズ1280は、32×1280=40960bit(256bitの倍数)を意味する。
また、表示装置DS2用として、任意領域(c) に、別の一対のフレームバッファFBbを確保して、ダブルバッファ構造の双方にインデックス番号252,251を付与している。すなわち、サブ表示装置DS2用のフレームバッファFBbとして、インデックス空間252と、インデックス空間251を確保している。このインデックス空間252,251は、表示装置DS2の横方向ピクセル数に対応して、水平サイズ480としている。この場合も、各ピクセルは、ARGB情報32bitで特定されるので、水平サイズ480は、32×480=15360bit(256bitの倍数)を意味する。
なお、フレームバッファFBa,FBbを任意領域(c) に確保するのは、任意領域(c) には、32バイト(=256bit=8ピクセル分)の倍数として、任意の水平サイズに設定することができ、上記のように、表示装置DS1,DS2の水平ピクセル数に一致させれば、確保領域に無駄が生じないからである。一方、ページ領域(b) には、128ピクセル×128ラインの単位空間の整数倍の水平/垂直サイズしか設定できない。
但し、任意領域(c)に確保される二次元のインデックス空間は、その垂直サイズが固定値(例えば、2048ライン)となっている。そのため、フレームバッファFBaにおいて、水平サイズ1280×垂直サイズ1024の領域だけが、メイン表示装置DS1にとって有効データ領域となる。この点は、サブ表示装置DS2についても同様であり、フレームバッファFBbにおいて、水平サイズ480×垂着サイズ800の領域だけが、サブ表示装置DS2にとって有効データ領域となる(図18(c),図26(e)参照)。
上記の点は更に後述するが、何れにしても、フレームバッファFBa,FBbは、描画回路76にとっての描画領域として、各ダブルバッファ(255/254 ,252/251 )が交互に使用され、また、表示回路74A,74Bにとっての表示領域として、各ダブルバッファ(255/254 ,252/251 )が交互に使用される。なお、本実施例では、表示ピクセルの深度情報を記憶するZバッファを使用しないので欠番(253)が生じるが、Zバッファを使用する場合には、任意領域(c) におけるインデックス番号253,250のインデックス空間253,250が、表示装置DS1と表示装置DS2のためのZバッファとなる。
また、本実施例では、フレームバッファFBa,FBbが確保された任意領域(c) に、追加のインデックス空間(メモリ領域)を確保する場合には、0から始まるインデック番号を付与するようにしている。何ら限定されないが、本実施例では、キャラクタやその他の静止画で構成された演出画像を、必要に応じて、適宜な回転姿勢で表示画面の一部に出現させる予告演出用の作業領域として、任意領域(c) に、インデックス空間(0)を確保している。
但し、作業領域の使用は必須ではなく、また、任意領域(c) に代えて、ページ領域(b) に作業領域としてのインデックス空間を確保しても良い。ページ領域(b) を使用すれば、水平サイズ128(=4096bit)×垂直サイズ128の正方形状の単位空間の倍数寸法のインデックス空間を確保できるので、小型の演出画像を扱うには好適である。
ところで、本実施例では、背景画も含め動画で構成されており、画像演出は、ほぼ動画のみで実現されている。特に、変動演出時には、多数(通常10個以上)の動画が同時に描画されている。これらの動画は、何れも、一連の動画フレームとして、圧縮状態でCGROM55に格納されているが、Iフレームのみで構成されたIストリーム動画と、IフレームとPフレームとで構成されたIPストリーム動画とに区分される。ここで、Iフレーム(Intra coded frame )とは、他画面とは独立して、入力画像をそのまま圧縮するフレームを意味する。一方、Pフレーム(Predictive coded frame)とは、前方向予測符号化を行うフレームを意味し、時間的に過去に位置するIフレームまたはPフレームが必要となる。
そこで、本実施例では、IPストリーム動画については、旧データの破壊が懸念されるAAC領域(a) ではなく、ページ領域(b) に展開している。すなわち、水平サイズ128×垂直サイズ128の倍数寸法のインデックス空間を確保可能なページ領域(b) に、多数のインデックス空間(IDX0~IDXN)を確保して、一連の動画フレームは、各動画MViに対応する、常に同一のインデックス空間IDXiを使用してデコードするようにしている。すなわち、動画MV1はインデックス空間IDX1に展開され、動画MV2はインデックス空間IDX2に展開され、以下同様に、動画MViはインデックス空間IDXiに展開されるよう構成されている。
動画MViについて、更に具体的に説明すると、SETINDEXコマンドによって、「IPストリーム動画MViのデコード先は、ページ領域(b) におけるインデックス番号iのインデックス空間(i)である」と予め指定した上で、IPストリーム動画MViの動画一フレームを取得するTXLOADコマンドを実行させている。
すると、TXLOADコマンドが特定するCGROM55上の動画一フレーム(一連の動画フレームの何れか)が、先ず、AAC領域(a) に取得され、その後、自動的に起動するGDEC(グラフィックスデコーダ)75によって、ページ領域(b) のインデックス空間(i)に、取得した動画一フレームがデコードされて展開されることになる。
一方、本実施例では、Iストリーム動画については、静止画と同一扱いとしており、SETINDEXコマンドによって、「Iストリーム動画MVjのデコード先は、第一AAC領域(a1)である」と指定して、TXLOADコマンドを実行させる。その結果、動画フレームは第一AAC領域(a1)に取得され、その後、自動的に起動するGDEC75が、第一ACC領域(a1)にデコードデータを展開している。先に説明した通り、AAC領域(a) のインデックス空間は、自動的に生成されるので、インデックス番号を指定する必要はない。なお、インデックス空間に必要となる展開ボリューム、つまり、デコードされたテクスチャ(動画フレーム)の水平サイズと垂直サイズは、展開先がAAC領域(a) か、ページ領域(b) かに拘らず、TXLOADコマンドによって特定される。
ところで、IPストリーム動画MViやIストリーム動画MVjは、一般にN枚の動画フレーム(IフレームやPフレーム)で構成されている。そのため、TXLOADコマンドでは、例えば、k枚目(1≦k≦N)の動画フレームが記憶されているCGROM55のSourceアドレスと、展開後の水平・垂直サイズなどを指定することになる。何ら限定されないが、静止画を殆ど使用しない実施例では、内蔵VRAM71のアドレス空間48Mバイトの大部分(30Mバイト程度)をページ領域(b) に割り当てている。そして、静止画を殆ど使用しない実施例では、AAC領域として、第一AAC領域(a1)だけを確保し、第二AAC領域(a2)を確保せず、また、前記したAAC領域のキャッシュヒット機能も活用しない。
なお、圧縮動画データのデコード処理を高速化するため、専用のGDEC(グラフィックスデコーダ)回路を設けることも考えられる。そして、専用のGDEC回路をVDP回路52に内蔵させれば、N枚の圧縮動画フレームで構成された圧縮動画データのデコード処理において、動画圧縮データの先頭アドレスをGDEC回路に指示すれば足りるので、N枚の圧縮動画フレームについて、1枚ごとに先頭アドレスを指定する必要がなくなる。
しかし、このような専用のGDEC回路を、圧縮アルゴリズム毎に複数個内蔵させるのでは、VDP回路52の内部構成が更に複雑化する。そこで、本実施例では、ソフトウェアGDECとし、IPストリーム動画、Iストリーム動画、静止画、その他α値などのデータについて、各圧縮アルゴリズムに対応するソフトウェア処理によってデコード処理を実現している。なお、ハードウェア処理とソフトウェア処理の処理時間差は、あまり問題にならず、処理時間が問題になるのは、もっぱら、CGROM55からのアクセス(READ)タイムである。
続いて、図14(a)に戻って説明を続けると、データ転送回路72は、VDP回路内部のリソース(記憶媒体)と外部記憶媒体を、転送元ポート又は転送先ポートとして、これらの間でDMA(Direct Memory Access)的にデータ転送動作を実行する回路である。図19は、このデータ転送回路72の内部構成を、関連する回路構成と共に記載したブロック図である。
図19に示す通り、データ転送回路72は、ルータ機能を有する統合接続バスICMを経由して、CGROM55、DRAM54、及び、内蔵VRAM71とデータを送受信するよう構成されている。なお、CGROM55とDRAM54は、CGバスIF部82や、DMAMIF部83を経由してアクセスされる。
一方、CPU回路51は、データ転送回路72に内蔵された転送ポートレジスタTR_PORT を経由して、描画回路76やプリローダ73にディスプレイリストDLを発行している。なお、CPU回路51とデータ転送回路72は、双方向に接続されているが、ディスプレイリストDLの発行時には、転送ポートレジスタTR_PORT は、ディスプレイリストDLを構成する一単位のデータを受け入れるデータ書き込みポートとして機能する。なお、転送ポートレジスタTR_PORT の書込み単位(一単位データ長)は、CPUバス制御部72dのFIFO構造に対応して32bitとなる。
図示の通り、演出制御CPU63は、CPUIF部81を経由して、転送ポートレジスタTR_PORT をWRITE アクセスできる一方、DMAC回路60を活用する場合には、DMAC回路60が、転送ポートレジスタTR_PORT を直接的にWRITE アクセスすることになる。そして、転送ポートレジスタTR_PORT に書込まれた一連の指示コマンド(つまり、ディスプレイリストDLを構成する指示コマンド列)は、32bit単位で、FIFO構造(32bit×130段)のFIFOバッファを内蔵したCPUバス制御部72dに、自動蓄積されるよう構成されている。
また、このデータ転送回路72は、3チャンネルChA~ChCの伝送経路で、データの送受信動作を実行しており、FIFO構造(64bit×N段)のFIFOバッファを有するChA制御回路72a(N=130段)と、ChB制御回路72b(N=1026段)と、ChC制御回路72c(N=130段)と、を有している。
そして、CPUバス制御部72dに蓄積された指示コマンド列(ディスプレイリストDL)は、演出制御CPU63によるデータ転送レジスタRGij(各種制御レジスタ70の一種)への設定値に基づき、描画回路76か、又はプリローダ73に転送される。矢印で示す通り、ディスプレイリストDLは、CPUバス制御部72dから、ChB制御回路72bのFIFOバッファを経由して描画回路76に転送され、ChC制御回路72cのFIFOバッファを経由してプリローダ73に転送されるよう構成されている。
なお、本実施例では、ChB制御回路72bと、ChC制御回路72bは、ディスプレイリストDLの転送動作に特化されており、CPUバス制御部72dのFIFOバッファに蓄積されたデータは、ChB制御回路72bか、ChC制御回路72cのFIFOバッファを経由して、各々、ディスプレイリストDLの一部として、描画回路76かプリローダ73のディスプレイリストアナライザ(Display List Analyzer )に転送される。
そして、描画回路76は、転送されたディスプレイリストDLに基づいた描画動作を開始する。一方、プリローダ73は、転送されたディスプレイリストDLに基づき、必要なプリロード動作を実行する。プリロード動作によってCGROM55のCGデータが、DRAM54に確保されたプリロード領域に先読みされ、TXLOADコマンドなどに関して、テクスチャのSourceアドレスを変更したディスプレイリストDL(以下、書換えリストDL’という)が、DRAM54に確保されたDLバッファ領域BUF’に保存される。
一方、CGROM55、DRAM54、及び、内蔵VRAM71などの記憶媒体の間のデータ転送には、ChA制御回路72aと、接続バスアクセス調停回路72eとが機能する。また、インデックステーブルIDXTBLのアドレス情報が必要になる内蔵VRAM71のアクセス時には、IDXTBLアクセス調停回路72fが機能する。具体的に確認すると、ChA制御回路72aは、例えば、(a)CGROM55の圧縮データを内蔵VRAM71に転送する場合や、(b)CGROM55の圧縮データをプリロード(先読み)して外付けDRAM54に転送する場合や、(c)プリロード領域の先読みデータを、内蔵VRAM71に転送する場合に機能する。
ここで、ChA制御回路72aは、ChB制御回路72bやChC制御回路72cと並行して動作可能に構成されており、上記した(a)~(c)の動作は、ディスプレイリストDLの発行動作(図26のST8,図23のPT11)や、書換えリストDL’の転送動作(図23のPT10)と並行して実行可能となる。また、ChB制御回路72bとChC制御回路72cも、同時実行可能であり、例えば、ChB制御回路72bが機能する図23のステップPT10の処理と、ChC制御回路72cが機能するステップPT11の処理は並行して実行可能である。但し、転送ポートレジスタTR_PORT は単一であるので、何れか一方(72b/72c)が転送ポートレジスタTR_PORT を使用しているタイミングでは、他方(72c/72b)は、転送ポートレジスタTR_PORT をアクセスすることはできない。
なお、ChA制御回路72aの動作時に、接続バスアクセス調停回路72eは、統合接続バスICMを経由する各記憶素子(CGROM55、DRAM54)とのデータ伝送を調停(Arbitration )している。一方、IDXTBLアクセス調停回路72fは、インデックステーブルIDXTBLに基づいてChA制御回路72aを制御することで、内蔵VRAM71とのデータ交信を調停している。なお、プリローダ73が機能する実施例の場合、DRAM54のDLバッファ領域BUF’に保存された書換えリストDL’は、接続バスアクセス調停回路72eと、ChB制御回路72bを経由して描画回路76に転送されることになる(図24(b)参照)。
上記の通り、本実施例のデータ転送回路72は、各種の記憶リソース(Resource)から任意に選択されたデータ転送元と、各種の記憶リソース(Resource)から任意に選択されたデータ転送先との間で、高速のデータ転送を実現している。図19から確認される通り、データ転送回路72が機能する記憶リソースには、内蔵VRAM71だけでなく、CPUIF部56、CGバスIF部82、DRAMIF部83を経由する外部デバイスも含まれる。
そして、CGROM55から1回に取得すべきデータ量(メモリシーケンシャルREAD)のように、ChA制御回路72aが機能する外部デバイスとのデータ転送量は、ChB制御回路72bやChC制御回路72cが機能するディスプレイリストDLの場合と比較して膨大であり、互いに、データ転送量が大きく相違する。
ここで、これら各種のデータ転送について、単位データ量や総転送データ量を、細かく設定可能に構成することも考えらえるが、これでは、VDP内部の制御動作が煩雑化し、円滑な転送動作が阻害される。そこで、本実施例では、データ転送の最低データ量Dminを一意に規定すると共に、総転送データ量を、最低データ量DTminの整数倍となるよう制限することで、高速で円滑なデータ転送動作を実現している。特に限定されないが、実施例のデータ転送回路72では、最低データ量Dmin(単位データ量)を、256バイトとし、総転送データ量を、この整数倍に制限することにしている。
したがって、32bit毎にCPUバス制御部72dのFIFOバッファに蓄積されたディスプレイリストDLの指示コマンド列は、その総量が最低データ量Dminに達したタイミングで、ChB制御回路72bやChC制御回路72bに転送され、各々のFIFOバッファに蓄積されることになる。
ディスプレイリストDLは、一連の指示コマンドで構成されているが、本実施例では、転送ポートレジスタTR_PORT の書込み単位(32bit)に対応して、ディスプレイリストDLは、コマンド長が、32bitの整数N倍(N>0)の指示コマンドのみで構成されている。したがって、データ転送回路72を経由して、ディスプレイリストDLの指示コマンドを受ける描画回路76やプリローダ73は、素早く円滑にコマンド解析処理(DL analyze)を開始することができる。なお、32bitの整数N倍のコマンド長は、その全てが有意ビットとは限らず、無意ビット(Don't care bit)も含んで、32bitの整数N倍という意味である。
次に、プリローダ73について説明する。先に概略説明した通り、プリローダ73は、データ転送回路72(ChC制御回路72b)から転送されたディスプレイリストDLを解釈して、TXLOADコマンドが参照しているCGROM55上のCGデータを、予め、DRAM54のプリロード領域に転送する回路である。また、プリローダ73は、このTXLOADコマンドに関し、CGデータの参照先を、転送後のアドレスに書換えた書換えリストDL’を、DRAM54のDLバッファBUF’に記憶する。なお、DLバッファBUF’や、プリロード領域は、CPUリセット後の初期処理時(図26のST3)に、予め確保されている。
そして、書換えリストDL’は、描画回路76の描画動作の開始時に、データ転送回路72の接続バスアクセス調停回路72eや、ChB制御回路72bを経由して、描画回路76のディスプレイリストアナライザ(DL Analyzer )に転送される。そして、描画回路76は、書換えリストDL’に基づいて、描画動作を実行する。したがって、TXLOADコマンドなどに基づき、本来は、CGROM55から取得すべきCGデータが、プリロード領域に先読みされているプリロードデータとして、DRAM54のプリロード領域から取得される。この場合、プリロードデータは、上書き消去されない限り、繰り返し使用可能であり、プリロード領域にキャッシュヒットしたプリロードデータは、繰り返し再利用される。
本実施例では、十分な記憶容量を有する外付けDRAM54にプリロード領域を設定しているので、上記のキャッシュヒット機能が有効に機能する。また、外付けDRAM54の記憶容量が大きいので、例えば、複数フレーム分のCGデータを一気にプリロードする多重プリロードも可能である。すなわち、プリローダ73の動作期間に関し、CGデータの先読み動作を含んだ一連のプリロード動作の動作期間を、VDP回路52の間欠動作時の動作周期δの整数倍の範囲内で、適宜に設定することで多重プリロードが実現される。
但し、以下の説明では、便宜上、多重プリロードのない実施例について説明するので、実施例のプリローダ73は、一動作周期(δ)の間に、一フレーム分のプリロード動作を完了することにする。なお、図26に関し後述するように、本実施例では、VDP回路52の間欠動作時の動作周期δは、表示装置DS1の垂直同期信号の2倍周期である1/30秒である。
次に、描画回路76は、データ転送回路72を経由して転送されたディスプレイリストDLや書換えリストDL’の指示コマンド列を順番に解析して、グラフィックスデコーダ75やジオメトリエンジン77などと協働して、VRAM71に形成されたフレームバッファに、各表示装置DS1,DS2の一フレーム分の画像を描画する回路である。
上記の通り、プリローダ73を機能させる実施例では、書換えリストDL’のCGデータの参照先は、CGROM55ではなく、DRAM54に設定されたプリロード領域である。そのため、描画回路76による描画の実行中に生じるCGデータへのシーケンシャルアクセスを迅速に実行することができ、動きの激しい高解像度の動画についても問題なく描画することができる。すなわち、本実施例によれば、CGROM55として、安価なSATAモジュールを活用しつつ、複雑高度な画像演出を実行することができる。
ところで、プリローダ73を機能させるか否かに拘らず、ディスプレイリストDLや書換えリストDL’の転送時に、仮にデータ化けが発生しても、描画回路76は、これを検出することはできない。また、ノイズなどの影響で、描画回路76がフリーズして、内蔵VRAM71のREAD/WRITE アクセスが異常停止することも有り得る。そこで、本実施例では、描画回路76が不合理な指示コマンド(analyze 不能のビット並び)を検出した場合や、一定期間、内蔵VRAM71に対してREAD/WRITE アクセスがない場合には、描画異常割込みを発生させるよう構成されている(描画異常割込みが許可状態)。なお、この点は、図26(d)に関して後述する。
次に、図18に関して説明した通り、VRAM71の任意領域(c) に確保されたフレームバッファFBは、描画領域と読出領域に区分されたダブルバッファであり、2つの領域を、交互に用途を切り替えて使用する。また、本実施例では、2つの表示装置DS1,DS2が接続されているので、図18に示す通り、2区画のフレームバッファFBa/FBbが確保されている。したがって、描画回路76は、表示装置DS1用のフレームバッファFBaの描画領域(書込み領域)に、一フレーム分の画像データを描画すると共に、表示装置DS2用のフレームバッファFBaの描画領域(書込み領域)に、一フレーム分の画像データを描画することになる。なお、描画領域に、画像データが書込まれているとき、表示回路74は、他方の読出領域(表示領域)の画像データを読み出して、各表示装置DS1,DS2に出力する。
表示回路74は、フレームバッファFBa,FBbの画像データを読み出して、最終的な画像処理を施した上で出力する回路である(図20)参照)。最終的な画像処理には、例えば、画像を拡大/縮小するスケーラのスケーリング処理、微妙なカラー補正処理、画像全体の量子化誤差が最小化するディザリング処理が含まれている。そして、これらの画像処理を経たデジタルRGB信号(合計24bit)が、水平同期信号や垂直同期信号と共に出力される。図20に示す通り、本実施例では、上記の動作を並列的に実行する3系統の表示回路A/B/Cが設けられており、各表示回路74A~74Cは、各々に対応するフレームバッファFBa/FBb/FBcの画像データを読み出して、上記の最終画像処理を実行する。但し、本実施例では、表示装置は2個であるので、フレームバッファFBcは確保されておらず、表示回路74Cが機能することもない。
この動作に関連して、この実施例の出力選択部79は、表示回路74Aの出力信号を、LVDS部80aに伝送し、表示回路74Bの出力信号を、LVDS部80bに伝送している(図20)。そして、LVDS部80aは、画像データ(合計24bitのデジタルRGB信号)をLVDS信号に変換して、クロック信号を伝送する一対を加えて、全五対の差動信号としてメイン表示装置DS1に出力している。なお、メイン表示装置DS1には、LVDS信号の変換受信部RVが内蔵されており、LVDS信号からRGB信号を復元して、表示回路74Aの出力に対応する画像を表示している。
この点は、LVDS部80bも同様であり、各8bitのデジタルRGB信号の合計24bitについて、クロック信号を伝送する一対を加えて、全五対の差動信号として変換受信部RVに出力し、サブ表示装置DS2が変換受信部RVから受ける合計24bitのRGB信号による画像表示を実現している。そのため、サブ表示装置DS2と、メイン表示装置DS1は、28*28*28の解像度を有することになる。
なお、必ずしもLVDS信号とする必要は無く、例えば伝送距離が短い場合には、デジタルRGB信号を、デジタルRGB部80cを経由して、そのまま表示装置に伝送するか、或いは、伝送距離が長い場合には、デジタルRGB信号を、変換送信部TR’において、V-By-one(登録商標)信号に変換して変換受信部RV’に伝送した後、変換受信部RV’においてデジタルRGB信号に戻すのも好適である。なお、図20の破線は、この動作態様を示しているが、出力選択部79の動作を適宜に設定することで、表示回路74A~74Cの何れの出力信号であっても上記の動作が可能となる。
ところで、本実施例の場合、各表示回路74A~74Bには、表示タイミングに対して、表示データの生成が間に合わなかったUnderrun異常をカウントするアンダーランカウンタURCNTa~URCNTcが設けられている(図20参照)。そして、このアンダーランカウンタURCNTa~URCNTcのカウンタ値は、アンダーラン異常が発生するとVBLANK毎に自動的に加算されるよう構成されている。
次に、SMC部78(Serial Management Controller)は、LEDコントローラとMotorコントローラとを内蔵した複合コントローラである。そして、外部基板に搭載したLED/Motorドライバ(シフトレジスタを内蔵するドライバIC)に対して、クロック信号に同期してLED駆動信号やモータ駆動信号を出力する一方、適宜なタイミングで、ラッチパルスを出力可能に構成されている。
上記したVDP回路52の内部回路及びその動作に関し、内部回路が実行すべき動作内容は、演出制御CPU63が、制御レジスタ群70に設定する動作パラメータ(設定値)で規定され、VDP回路52の実行状態は、制御レジスタ群70の動作ステイタス値をREADすることで特定できるようになっている。制御レジスタ群70は、演出制御CPU63のメモリマップ上、1Mバイト程度のアドレス空間(0~FFFFFH)にマッピングされた多数のVDPレジスタRGijを意味し、演出制御CPU63は、CPUIF部81を経由して動作パラメータのWRITE (設定)動作と、動作ステイタス値のREAD動作を実行するようになっている(図14(b)参照)。
制御レジスタ群70(VDPレジスタRGij)には、割り込み動作などシステム動作に関する初期設定値が書込まれる「システム制御レジスタ」と、内蔵VRAMにAAC領域(a) やページ領域(b) を確定する共に、インデックステーブルIDXTBLを構築又は変更などに関する「インデックステーブルレジスタ」と、演出制御CPU63とVDP回路52の内部回路との間のデータ転送回路72によるデータ転送処理に関する設定値などが書込まれる「データ転送レジスタ」と、グラフィックスデコーダ75の実行状況を特定する「GDECレジスタ」と、指示コマンドや描画回路76に関する設定値が書込まれる「描画レジスタ」と、プリローダ73の動作に関する設定値が書込まれる「プリローダレジスタ」と、表示回路74の動作に関する設定値が書込まれる「表示レジスタ」と、LEDコントローラ(SMC部78)に関する設定値が書込まれる「LED制御レジスタ」と、Motorコントローラ(SMC部78)に関する設定値が書込まれる「モータ制御レジスタ」と、音声回路SNDに関する設定値が書込まれる「音声制御レジスタSRG」と、が含まれている。但し、本実施例では、音声回路SNDを活用していない。
何れにしても、以下の説明では、制御レジスタ群70に含まれる一又は複数のレジスタRGijを、上記した個別名称で呼ぶ場合と、VDPレジスタRGijと総称することがあるが、何れにしても、演出制御CPU63は、所定のVDPレジスタRGijに、適宜な設定値を書込むことで、VDP回路52の内部動作を制御している。具体的には、演出制御CPU63は、適宜な時間間隔で更新するディスプレイリストDLと、所定のVDPレジスタRGijへの設定値に基づいて、所定の画像演出を実現している。なお、この実施例では、ランプ演出やモータ演出も含め、演出制御CPU63が担当するので、VDPレジスタRGijには、LED制御レジスタやモータ制御レジスタも含まれる。
続いて、上記したCPU回路51とVDP回路52とを内蔵した複合チップ50によって実現される、画像演出、音声演出、モータ演出、及び、ランプ演出の統一的な演出制御動作について説明する。
本実施例の場合、複合チップ50の動作は、電源投入や異常リセットによるパワーオンリセット動作(図21(a)参照)によって開始され、初期設定プログラム(ブートプログラム)Pinitによる初期設定処理(SP1~SP9)を経て、演出制御プログラムMain及び割込み処理プログラム(ベクタハンドラ)Voptによるメイン制御処理(SP10)に移行するよう構成されている。メイン制御処理については、図23(a)に、その導入部の処理内容が記載されており、本体部の処理内容が図26(a)に記載されている。なお、図23のステップSP27の処理は、図26(a)のステップST1~ST3の処理を含んでいる。
以上を踏まえて、パワーオンリセット動作について図21(a)に基づいて説明する。電源投入時など、システムリセット信号SYSが所定の期間(アサート期間)Lレベルを維持すると、全ての動作制御レジスタREGや、全てのVDPレジスタRGijは、所定のデフォルト値に自動設定される。そして、その後、システムリセット信号SYSがHレベル(ネゲートレベル)に変化すると、本実施例では、最初に、アドレス空間CS0の先頭番地からの32bitデータが、演出制御CPU63のプログラムカウンタPCに設定され、これに続く32bitデータが、スタックポインタSPに設定されるよう構成されている。なお、図16や図22(c)では、プログラムカウンタPCやスタックポインタSPの初期値を記憶するメモリの先頭領域をベクタテーブルVECTと称している。
図21(b)に示す通り、このベクタテーブルVECTには、優先度と割込み要因などを特定するベクタ番号と、アドレス情報とが対応して記憶されている。ベクタ番号は、その番号が小さいほど優先度が高いが、例えば、ベクタ番号11は、マスク不能割込み(NMI)であって、アドレス情報として、NMI割込み時に実行される割込み処理プログラムの先頭アドレスが記憶されている。また、ベクタ番号64は、VDPからの内部割込み(VDP_IRQ0)であって、アドレス情報として、VDP_IRQ0割込み時に実行される割込み処理プログラムの先頭アドレスが記憶されている。
割込み優先度は、図23(d)に示す通りであるので、ベクタ番号64より小さいベクタ番号の欄には、制御コマンド受信割込みIRQ_CMD と、20μSタイマ割込みと、1mSタイマ割込みについて、割込み処理プログラムの先頭アドレスが各々記憶されていることになる。一方、ベクタ番号64より大きいベクタ番号の欄には、VDP_IRQ1より優先度が低い割込み処理プログラム(IRQ_SND ,IRQ_RTC など)の先頭アドレスが各々記憶されている。
また、ベクタテーブルVECTにおいて、ベクタ番号0とベクタ番号1は、パワーオンリセット時にCPUのプログラムカウンタと、スタックポインタに自動設定されるべき、設定値が規定されている。図21(b)に示す通り、この実施例では、パワーオンリセット時(リセットアサート期間)の内部動作として、4バイトデータ「****」が、プログラムカウンタPCに設定され、4バイトデータ「++++」がスタックポインタSPに設定される。なお、「****」は、アドレス空間CS0に不揮発的に記憶されている初期設定プログラムPinit(図21のSP1~SP9)の先頭アドレス値であり、「++++」は、内蔵RAM59に確保された、LIFO(Last-In First-Out )方式で機能するスタック領域の先端又は終端のアドレス値である。
なお、本実施例では、レジスタバンクRBiを有効活用するので、割込み処理時に、スタック領域が消費されることなく、それほどのメモリ容量は必要とされない。すなわち、本実施例では、スタック領域は、専ら、関数処理や、サブルーチン処理において活用される。
以上の動作の結果、その後、演出制御CPU63は、アドレス値「****」以降に記載された初期設定プログラムPinitを実行することになる。但し、アドレス空間CS0のメモリREAD動作は、バスステートコントローラ66(図15)の動作を規定する動作制御レジスタREGのデフォルト値(初期値)に基づいて実行される。この動作制御レジスタREGの初期値は、リセットアサート期間(システムリセット信号SYSがLレベルを維持する図4(d)に示す期間)に自動的に設定される値であり、アドレス空間CS0を、如何なるメモリデバイスで構成しても、問題なくREADアクセスできるよう、最遅READアクセス動作(デフォルトアクセス動作)に設定されている。
そこで、このデフォルトアクセス動作を、最適なアクセス動作に変更するべく、最初に、アドレス空間CS0に対するバスステートコントローラ66(図15)の動作を規定する所定の動作制御レジスタREGに最適値を設定する(SP1)。すなわち、初期設定プログラムPinit(SP1~SP9)、演出制御プログラムMainB(SP10)、定数データなどを格納したPROM53をアクセスする場合のメモリREAD動作を、メモリデバイスに合わせて最適化するべく、バス幅やページアクセスの有無を設定すると共に、チップセレク信号CS0や、READ制御信号や、WRITE 制御信号その他の動作タイミングを最適設定する(図27参照)。
以上の設定の結果、ステップSP2以降の処理は、アドレス空間CS0に記憶されているプログラムを、最適にメモリREADして実行されることになる。そこで、次に、演出制御CPU63が、VDPレジスタRGijをアクセスする場合のREAD/WRITE アクセス動作を最適化するべく、VDPレジスタRGijに対するバスステートコントローラ66(図15)の動作を規定する所定の動作制御レジスタREGに最適値を設定する(SP2)。
先に説明した通り、本実施例では、VDPレジスタRGijは、演出制御CPU63のアドレス空間CS7に位置付けられているので、チップセレク信号CS7や、その他の制御信号の動作タイミングを最適設定するべく所定の動作制御レジスタREGに所定値を書込むことになる。
続いて、特定のVDPレジスタRGijのレジスタ値を読み出して、その値が所定値(デバイスコード)か否かを判定する(SP3)。これは、VDP回路52のシステムクロックが安定化したことの確認判定である。すなわち、VDP回路52は、PLLREF端子に供給される発振器OSC2の発振出力に基づいて動作するが、このVDP回路52が、CPU回路51からの指令(つまり、VDPレジスタRGijへの設定など)を正常に受け付け可能か否かの判定である。
そして、デバイスコードの読出し処理(SP3)によって、システムクロックが安定化したことが確認できれば、その後は、VDP回路52の正常動作を期待できるので、所定のVDPレジスタRGijに対する設定処理を実行する(SP4~SP6)。具体的には、先ず、演出制御CPU63からVDPレジスタRGijをアクセスする場合のエンディアン設定(ビッグ/リトル)や、データバス幅を設定する(SP4)。
なお、本実施例では、設定値の最上位ビット(Most significant Bit)を、VDPレジスタRGijの最上位ビットに格納するビックエンディアンに設定し、データ32バス幅を32bitに設定するが、これらの設定値が、仮に、デフォルト値と同じであれば、これらの設定処理を省略することもできる(以下の処理も同様)。
次に、VDP回路からCPU回路への内部割込み(VDP_IRQ0,VDP_IRQ1,VDP_IRQ2,VDP_IRQ3)について、割込み有意レベル(H/L)を設定し、PLLREF端子(図14(a)参照)へのクロック信号(リファレンスクロック)に基づいてDDR(DRAM54)を機能させる旨を設定する(SP4)。なお、PLLREF端子に、発振器OSC2のリファレンスクロックが供給されることは図14(a)に関して説明した通りである。
続いて、図16に示すメモリマップを実現するべく、アドレス空間CS1~CS6を定義する(SP5)。先に説明した通り、アドレス空間CS3は、音声プロセッサ27の内部レジスタに付与され、アドレス空間CS4は、RTC38の内部レジスタやSRAM39のアドレス空間に付与され、アドレス空間CS5は、外付けDRAM(DDR)54に付与され、アドレス空間CS6は、内蔵CPUのワークメモリ57に付与される。
なお、VDPレジスタRGijが、アドレス空間CS7に割り当てられることは固定的に規定されているので、アドレス空間CS7の定義処理は不要である。また、アドレス空間CS0は、CPU回路51のメモリマップ0x000000000番地以降であることは予め固定的に規定されており、この規定を前提として、アドレス空間CS0が、CGROM55に確保されているか、その他のメモリデバイスに付与されるかは、HBTSL 端子のH/Lレベルで規定される。
先に説明した通り、本実施例では、HBTSL 端子=Lとなっており、CGROM55以外にアドレス空間CS0が定義されていることが示されている。そして、CGROM55以外である制御メモリ53の具体的なバス幅や、最適なアクセス動作については、ステップSP1において設定済みであるので、アドレス空間CS0についても、ステップSP5の処理は不要である。
続いて、ステップSP5の処理で定義されたアドレス空間CS1~CS6について、各アドレス空間CSiをアクセスする場合のバス幅やページアクセスの有無について、所定の動作制御レジスタREGに所定値を書込む(SP6)。また、チップセレク信号CSiその他を最適設定するべく、所定の動作制御レジスタREGに所定値を書込む(SP6)。これらの処理は、ステップSP1やSP2の処理と同様の内容であり、バスステートコントローラ66(図15)の動作を規定する動作制御レジスタへの書込み処理によって、チップセレク信号CSi、READ制御信号、WRITE 制御信号、その他の動作タイミングが最適に設定される。
続いて、WDT回路58にクリア信号を出力することで、異常リセットを回避する(SP7)。これは、電源投入後、WDT回路58が自動的に動作を開始することを考慮したものであり、この後も、繰り返し同様の処理が実行される。なお、ステップSP9の処理は、サブルーチンSP7として制御メモリ53に格納されているが、ステップSP9の終了時までは、制御メモリ53のサブルーチンSP7が呼び出され、ステップSP9の終了後は、外付けDRAM54に転送された別のサブルーチンSP7’が呼び出されて実行される。
続いて、アドレス空間CS0に格納されているプログラムやデータのうち、図21(b)や図22(c)に示すベクタハンドラVopt(割込み処理プログラム)、エラー復帰処理プログラムPiram、演出制御プログラムMainB、初期値有り変数D、及び、定数データCを、外付けDRAM54や、内蔵RAM59に転送する(SP8)。なお、初期値有り変数Dとは、所定の変数領域に記憶されている初期値データを意味する。このメモリセクションの初期化処理(SP8)は、演出制御処理の高速化を図るため、プログラムやデータを転送する処理であり、アクセス速度に劣るROMへのアクセスを回避するための処理である。
そして、次に、レジスタバンクRBiを使用する旨の設定をする(SP9)。そのため、その後は、割込み処理時に、レジスタバンクRB0~RB14が機能することになり、割込み処理が迅速化されると共に、スタック領域の消費が緩和される。
以上の処理は、アドレス空間CS0である制御メモリ53に格納されている「初期設定プログラムPinit」の実行によって実現される(図22(c)参照)。そして、この初期設定プログラムPinitの実行が終われば、続いて、演出制御プログラムMainによるメイン制御処理を実行する(SP10)。ここで、メイン制御処理の実行とは、ステップSP8の転送処理によって、制御メモリ53から外付けDRAM54に転送された「演出制御プログラムMain」の実行を意味する(図21(b)参照)。
メイン制御処理(演出制御プログラムMain)の具体的な内容については、図23(a)や、図26(a)に基づいて説明するが、それに先行して、メモリセクションの初期化処理(SP8)について説明する。図22(a)に示す通り、メモリセクションの初期化処理(SP8)では、最初に複数チャネルのDMACを動作停止状態に初期設定する。なお、この処理は、念のための形式的な処理に過ぎない。
以上の処理が終われば、所定チャネルのDMACiを起動させて、制御メモリ53の記憶されているベクタハンドラVopt(割込み処理プログラム)を、内蔵RAM59に、ノンストップ転送方式(図17(b3)参照)でDMA転送する。本実施例では、割込み処理プログラムVoptを内蔵RAM59に転送するので、外付けDRAM54の異常時においても、適切な異常対応処理が可能となる。
その後の処理も同じであり、所定チャネルのDMACiを使用して、ノンストップ転送方式で実行され、エラー復帰処理プログラムPiramを内蔵RAM59にDMA転送する(SP62)。本実施例では、エラー復帰処理プログラムPiramを内蔵RAM59に転送するので、エラー復帰処理において、周辺回路を確実にリセット状態にすることができる。例えば、エラー復帰処理プログラムPiramを、内蔵RAM59以外の例えば外付けDRAM54に転送すると、エラー復帰処理時に、外付けDRAM54をリセット処理できないことになる。
次に、演出制御プログラムMainを、外付けDRAM54にDMA転送し(SP63)、定数データCを、外付けDRAM54にDMA転送する(SP64)。定数データには、演出抽選に使用する抽選データや、図26(b)に示す各種の駆動データテーブルにおける、ランプ駆動データやモータ駆動データが含まれる。また、初期値の有る変数Dを、外付けDRAM54にDMA転送するが(SP65)、これら何れも、所定チャネルのDMACiを使用したノンストップ転送方式で実行される。
最後に、外付けDRAMの変数領域Bの先頭にクリアデータを書込む(SP66)。この先頭アドレスを、仮にADbとすると、その後のDMA転送処理では、転送元アドレスをADbとし、転送先アドレスをADb+1と初期設定した後、各アドレス値ADb,ADb+1をインクリメント処理しつつ、このクリアデータを拡散させることで、変数領域Bのクリア処理を実行することになる(SP67)。
以上説明したステップSP61~SP66、及びステップSP67の処理は、何れも、類似の動作であり図22(b)に示す通りである。すなわち、先ず、所定チャネルのDMACiに関し、DMA転送条件として、(1)サイクルスチール転送モード、(2)ノンストップ転送方式を採り、(3)Sourceと Destinationのアドレス値をincrement 更新すると、設定する(SP68)。
次に、転送元Sourceアドレスと、転送先Destination アドレスの初期値を設定し(SP69)、転送サイズを設定し、割込み禁止などに設定した上で(SP70)、DMA転送の動作を開始させる(SP71)。なお、ステップSP68~SP71の設定は、何れも所定の動作制御レジスタREGへの設定動作によって実現される。
このメモリセクションの初期化処理では、DMA転送終了の割込みを禁止設定しているので(SP70)、DMA転送の動作を開始させた後は、所定の動作制御レジスタREGのステイタスフラグを、繰り返しREADアクセスして、DMA転送の終了を待つ(SP72)。但し、動作終了までの処理時間を考慮して、WDT回路58に対して、クリア信号を繰り返し出力する(SP73)。そして、DMA転送の終了時には、所定の動作制御レジスタREGへの設定動作に基づいてDMACiを停止設定する。
続いて、メイン制御処理の動作内容について図23~図26に基づいて説明する。先に説明した通り、メイン制御処理については、図23(a)に、その導入部(SP20~SP27)の処理内容が記載されており、本体部(ST4~ST14)の処理内容が図26(a)に記載されている。なお、図23のステップSP27の処理は、図26(a)のステップST1~ST3の処理を含んでいる。
図23(a)に示す通り、メイン制御処理(導入部)では、最初に、CGROM55について、そのバス幅やROMデバイスの種別を特定する(SP20)。具体的には、図24(a)に示す通りであり、CGROM55とのインタフェイスを司るCGバスの動作状態を特定する所定のVDPレジスタRGij(例えばCGバスStatusレジスタ)をREADアクセスして(SP80)、CGバスについて動作設定が可能か否かを判定する(SP81)。
ここで、CGバスStatusレジスタの値が1であれば、CGバスの内部回路がリセット動作中であることを意味し、VDPレジスタRGijへの設定値を受け付けることができないことを意味する。そこで、CGバスStatusレジスタの値が1から0に変化していることを確認した上で(SP81)、CGROMを構成するメモリデバイスに対応して規定可能なデバイス区間(SPA0~SPAn)毎に(1)各デバイス区間SPAiの有効/無効、(2)ROMデバイスの種別、(3)データバス幅などの動作パラメータを、所定のVDPレジスタRGijに設定する(SP82)。
図23(a)に示す通り、この実施例では、CGROM55を複数領域(デバイス区間)に区分できるようになっており、例えば、デバイス区間(SPA0~SPAn)毎に、メモリデバイスや、データバス幅を選択可能に構成されている。メモリデバイスとしては、例えば、(1)本実施例で採用するSATAモジュール(AHSI/F)、(2)パラレルI/F(Interface )形式を採るメモリ素子、(3)シーケンシャルI/F形式を採るメモリ素子などに大別されるが、大別されたメモリデバイスごとに、メモリデバイスを具体的に選択可能であり、且つ、データバス幅などを任意に規定できるようになっている。
次に、デバイス区間(SPA0~SPAn)毎に選択されたメモリデバイスとのメモリREAD動作を最適化するべく、所定の動作パラメータを、所定のVDPレジスタRGijに設定する(SP83)。動作パラメータには、チップセレクト信号と、その他の制御信号(READ制御信号など)との動作タイミングを規定する設定値が含まれている。また、シーケンシャルI/F形式を採るメモリ素子が選択された場合には、図24(b)も示す動作を実現するべく、アドレスラッチの出力タイミングや、読出しクロック数なども特定される。
したがって、種類の異なるメモリデバイスを組合せてCGROM55を構成することもできる。但し、本実施例では、SATAモジュールだけを使用してCGROM55を構成し、デバイス区間(SPA0)だけを有効化し、他のデバイス区間(SPA1~SPAn)を無効化している。
何れにしても、ステップSP82~SP83の設定処理が終われば、その設定処理の実効化を図るべく、所定のVDPレジスタRGijに所定値を書込む(SP84)。これは、CGバスの内部回路がステップSP82~SP83の設定処理に対応して動作できるまでに所定の時間を要することを考慮したものであり、内部回路の動作中は、前記したCGバスStatusレジスタ(SP80参照)の値が0となる。
したがって、その後は、CGバスStatusレジスタを繰り返しREADアクセスして(SP85)、Statusレジスタの値が1から0に戻ることを確認して処理を終える(SP86)。なお、所定回数の判定に拘らず、Statusレジスタの値が1から0に戻らない場合に、ステップSP66の処理を終えても良い。但し、その場合CGROMが正常にアクセスできない状態で遊技処理が始まるので、その後、何れかのタイミングでWDT回路58が起動して複合チップ50が異常リセット状態になる。そして、この場合は、再度、パワーオンリセット動作が実行されることになる。
一方、図23のステップSP20の処理が、正常に実行された後は、割込みコントローラINTCや、DMAC回路60や、マルチファンクションタイマユニットMTUなど、CPU回路51の内蔵回路をソフトウェア処理によって個々的に初期化する(SP21)。
次に、マルチファンクションタイマユニットMTUについて、所定のタイマ計測動作を開始させた後(SP22)、内部割込み及び内部割込みについて、所定の動作制御レジスタREGに許可設定値を書込んで割込み許可状態に設定する(SP23)。
その結果、その後は、図23(d)に示す各種の割込みが生じ得ることになる。通常、このタイミングでは、音声プロセッサ27は、その初期化シーケンスを終えているので、図4(c)に示す通り、終了割込み信号IRQ_SND はLレベルに降下している筈である。そのため、図23(c)に示す割込み処理が起動され、演出制御CPU63は、エラーフラグERRを1に初期設定すると共に、アドレス空間CS3をREADアクセスして(SP30)、音声プロセッサ27の所定の音声レジスタSRGの値を取得して、初期化シーケンスが正常に終了しているか否かを判定する(SP31)。
そして、万一、初期化シーケンスが正常に終了していない場合には、演出制御CPU63は、音声プロセッサ27の所定の音声レジスタSRGにリセットコマンドを書込むと共に(SP32)、1に初期設定されているエラーフラグERRを2にセットする(SP33)。このエラーフラグERRは、音声プロセッサ初期化処理(SP26)を実行するか否かを規定しており、エラーフラグERR=1がステップSP26の実行条件となっている。
一方、音声プロセッサ27は、リセットコマンドを受けたことに対応して、終了割込み信号IRQ_SND =Hレベルの状態で、再度、初期化シーケンスを開始し、初期化シーケンスが終われば、終了割込み信号IRQ_SND はLレベルに降下させる。この結果、図23(c)の処理が再実行されることになる。
以上、初期化シーケンスが正常に終了していない例外的な場合について説明したが、通常は、ステップSP31に続いて、ステップSP32の処理が実行され、演出制御CPU63は、所定の音声レジスタSRGに、所定値を書込むことで終了割込み信号IRQ_SND を、LレベルからHレベルに復帰させる(SP34)。
そして、最後に、所定の音声レジスタSRGに所定値を書込むことで、全ての音声レジスタSRGへのREAD/WRITE アクセスを許可する(SP35)。この処理の結果、その後の音声プロセッサ初期化処理(SP26)では、必要な設定処理を実行できることになる。
以上、ステップSP23の割込み許可設定に対応するMaskable Interruptの一例について説明したが、発振器OSC2の発振停止に基づくマスク不能割込み(Non Maskable Interrupt)は、任意のタイミングで起動可能である。先に説明した通り、内蔵CPU(演出制御CPU63)以外の回路の動作クロックは、発振器OSC2の出力クロックをPLL(Phase Locked Loop )で周波数逓倍して生成されており、発振器OSC2の発振が停止されれば、その後のVDP回路52の正常動作は不可能である。
一方、演出制御CPU63の動作クロックは、発振器OSC1の出力クロックをPLLで逓倍して生成されており、プログラム処理は継続可能である。しかも、割込み処理プログラムは、内蔵RAM59に格納されている。そこで、演出制御CPU63は、異常事態の発生を音声やランプによって異常報知すると共に(SP28)、WDT回路58にクリア信号を出力し続ける(SP29)。異常報知は、例えば「異常事態が発生しました。至急、係員に連絡して下さい」との音声報知となる。なお、WDT回路58にクリア信号を出力し続けるのは、異常リセット動作を回避するためである。すなわち、発振器OSC1が動作を停止する重大な異常時には、仮に、異常リセット処理を繰り返しても、機器の正常復帰が望めないと考えられるからである。
以上、図23(b)と、図23(c)について説明したので、図23(a)に戻って説明を続ける。ステップSP24では、外付けDRAMのプログラム領域を保護するため、必要領域を書込み禁止に設定する。次に、電源遮断時に電池で駆動されている時計回路38について、電源遮断時の正常動作を確認すると共に、念のためアラーム割込みについて再設定する(SP25)。
そして、エラーフラグERR=1であることを条件に、音声プロセッサ27の内蔵レジスタ(音声レジスタSRG)に、必要な設定値を書込んで初期化処理を実行する(SP26)。なお、エラーフラグERR=0の場合は、所定時間、エラーフラグERR=1となるまで待機するが、限界時間を超える場合には、WDT回路58を起動させるべく無限ループ処理に移行する。
次に、VDPレジスタRGijに、必要な設定値を書込むことで、VDP回路52の初期化処理を実行する(SP27)。なお、ステップSP27の処理には、図26のST1~ST3の処理が含まれている。
以上、音声プロセッサから終了割込み信号IRQ_SND を受ける実施例について説明したが、図23(c)の割込み処理を省略するのも好適である。図25は、変形実施例を示しており、終了割込み信号IRQ_SND に代えて、マルチファンクションタイマユニットMTUが生成する1msタイマ割込信号を活用している。
図25は、1msタイマ割込処理の一部を図示したものであり、初期状態がゼロである動作管理フラグFLGの値(0/1/2/3)に基づいて、4段階の動作を実現している。なお、音声プロセッサ27のIRQ_SND 出力端子は、開放状態とし、CPU回路51のIRQ_SND 入力端子は、Hレベルに固定されている。
1mSタイマ割込み処理において、先ず、ステップSP42の処理で、動作管理フラグFLG=0と判定される場合には、音声プロセッサ27の初期化シーケンスが正常終了していることを確認する(SP43)。そして、正常終了している場合には、所定の音声レジスタSRGに所定値を書込むことで割込み信号(IRQ_SND )をクリアさせ(SP46)、動作管理フラグFLGを1にする(SP47)。なお、ステップSP43とSP46の処理は、図23(c)のステップSP31とSP34の処理と同じである。
一方、初期化シーケンスが正常終了していない場合には、所定の音声レジスタSRGにリセットコマンドを書込むことで、音声プロセッサ27に初期化シーケンスを起動させ(SP44)、動作管理フラグFLGをゼロに戻す(SP45)。なお、ステップSP44の処理は、図23(c)のステップSP32の処理に対応している。
通常は、ステップSP47の処理を経て動作管理フラグFLG=1となるので、次の1msタイマ割込みでは、所定の音声レジスタに所定値を書込むことで全ての音声レジスタへのアクセスを許可し(SP48)、動作管理フラグFLG=2に設定する(SP49)。ステップSP48の処理は、図23(c)のステップSP35の処理に対応している。
次に、動作管理フラグFLG=2の1msタイマ割込みでは、図23(a)のステップSP26の場合と同様に、音声プロセッサ27の内蔵レジスタ(音声レジスタSRG)に、必要な設定値を書込んで初期化処理を実行し(SP50)、動作管理フラグFLG=3に設定する。
動作管理フラグFLG=3は、通常の音声制御状態を意味し、必要な音声レジスタSRGに、必要な動作パラメータを設定することで、音声制御を進行させる(SP52)。
以上、音声プロセッサ27の初期化シーケンスの正常終了を、割込み信号(IRQ_SND )に起因する割込み処理で確認する方法(図23(c)のSP31)と、1mSタイマ割込み処理で確認する方法(図25のSP43)について説明したが、これらの方法に、何ら限定されるものではない。例えば、図23のステップSP26の処理の一部として、音声プロセッサ27の初期化シーケンスが正常に終了したか否かを判定するのも好適である。
以上、メイン制御処理の導入部(図23のSP20~SP27)について説明したので、以下、図26に基づいて、メイン制御処理の本体部の動作を説明する。図26に示す通り、演出制御CPU63の動作は、メイン制御処理(a)と、1mS毎に起動するタイマ割込み処理(b)と、制御コマンドCMDを受けて起動する受信割込み処理(不図示)と、表示装置DS1のVブランク(垂直帰線期間)の開始タイミングに生じるVBLANK信号を受けて起動するVBLANK割込み処理(c)と、動作フリーズ時や不合理な指示コマンド検出時に生じる描画異常割込み処理(d)と、を含んで構成されている。なお、20μS割込み処理については説明を省略する。
受信割込み処理では、主制御部21から受けた制御コマンドCMDを、メイン制御処理(ST13)において参照できるよう、所定の受信バッファに記憶して処理を終える。また、VBLANK割込み処理(図26(b))では、VBLANK割込み毎に、割込みカウンタVCNTをインクリメントし(ST15)、メイン制御処理の開始タイミングでは、割込みカウンタVCNTの値に基づいて、1/30秒の動作開始タイミングを把握した上で、割込みカウンタVCNTをゼロクリアしている(ST4)。
一方、タイマ割込み処理には、図26(b)に示す通り、ランプ演出やモータ演出の進行処理(ST18)と、原点センサ信号SN0~SNn信号や、チャンスボタン信号などを取得するセンサ信号取得処理(ST19)とが含まれている。ランプ演出やモータ演出は、全ての演出動作を一元管理する演出シナリオに基づいて制御されており、演出カウンタENが管理する演出開始時に達すれば、演出シナリオ更新処理(ST11)において、モータ駆動テーブルやランプ駆動テーブルが特定されるようになっている。
そして、その後は、特定されたモータ駆動テーブルに基づいてモータ演出が進行し、特定されたモータ駆動テーブルに基づいてランプ演出が進行することになる。先に説明した通り、ステップST18の動作時に、DMAC回路(第1と第2のDMAチャンネル)60が機能する実施例もある。なお、モータ演出は、1mS毎に進行するが、ランプ演出は、1mSより長い適宜なタイミングで進行する。
一方、図26(d)に示す通り、描画異常割込み処理では、描画回路76の動作状態を示すステイタスレジスタRGijをREADアクセスして、割込み原因を特定する。具体的には、(1) 異常な指示コマンドの検出(ビット化け)による描画異常割込みか、(2) 描画回路76の動作異常(フリーズ)による描画異常割込みかを特定する(ST16a)。そして、異常な指示コマンドの検出に基づく描画異常割込みである場合には、所定のシステム制御レジスタRGijに、所定値を書き込むことで、描画回路76を初期化する(ST16b)。この動作は、図13(b)に示すリセット経路4Bの個別リセット動作に他ならない。
次に、個別リセット動作の正常終了を、所定のステイタスレジスタRGijで確認した後、描画回路76の動作を規定する一群の動作パラメータを所定の描画レジスタRGijに再設定して処理を終える(ST16c)。そして、戻り先アドレスを記憶するスタック領域を調整した後(割込み処理後の戻り先アドレスを消去する開放処理)、ステップST13の処理に移行させる(ST16c)。
一方、描画回路76の動作異常に基づく描画異常割込みの場合には、無限ループ処理に移行させることで(ST16d)、WDT回路58を起動させ、複合チップ50全体をリセットする。なお、CPU回路51をリセットしたくない場合には、所定のキーワード列をパターンチェック回路CHKに出力して、リセット信号RSTによってVDP回路52だけをリセットしても良い(図13(b)参照)。この場合には、VDP回路52のリセット動作の正常終了を確認した後、ステップST4やST13の処理に移行させる。なお、可能な限り制御コマンドCMDの読み落しを回避するためには、他の場合も含め、ステップST4より、ステップST13に移行される方が良い。
複合チップ50全体をリセットすると、それまでの演出が消滅して、演出制御が完全に初期状態(電源投入状態)に戻るが、VDP回路52だけをリセットする場合には、VDP回路52のリセット動作が完了するまで、所定の待機時間は生じるものの、一連の演出制御を継続させることができる。なお、演出制御CPU63は、画像演出、ランプ演出、及び、音声演出を統一的に制御しているので、各演出に不自然なズレが生じることもない。
続いて、プリローダを機能しない実施例について、メイン制御処理(a)について説明する。図26(a)に示す通り、メイン制御処理は、CPUリセット後に実行される導入初期処理(ST1~ST3)と、その後、1/30秒毎に繰り返し実行される定常処理(ST4~ST14)とに区分される。なお、初期処理(ST1~ST3)は、メイン制御処理の導入部の一部であり、定常処理がメイン制御処理の本体部を意味する。
そして、定常処理は、割込みカウンタVCNTが、VCNT≧2となったタイミングで開始されるので(ST4)、定常処理の動作周期δは、1/30秒となる。この動作周期δは、演出制御CPU63の制御に基づいて間欠動作するVDP回路52について、その実質的な動作周期δに他ならない。なお、判定条件を、VCNT≧2とするのは、定常処理(ST4~ST14)が異常に長引いて、VCNT=2のタイミングを見逃す可能性を考慮したものであるが、VCNT=3となる事態が発生しないよう設計されている。
以上を踏まえてメイン制御処理(図26(a))の説明を続けると、本実施例では、初期処理において、記憶容量48Mバイトの内蔵VRAM71を、適切な記憶容量を有するACC領域(a) と、ページ領域(b) と、任意領域(c) と、に適宜に切り分ける(ST1)。具体的には、ACC領域(a1,a2) と、ページ領域(b) について、各々の領域先頭アドレスと必要な総データサイズを、所定のインデックステーブルレジスタRGijに設定する(ST1)。すると、確保されたACC領域(a1,a2) と、ページ領域(b) には含まれない残余領域が任意領域(c) となる。
ここで、第一と第二のACC領域(a1,a2) と、ページ領域(b) の領域先頭アドレスは、各々の下位11bitが0でなくてはならないが、2048bit単位で任意に選択可能である(1番地=1バイトとして、256番地ごとの選択)。また、総データサイズも、単位サイズの整数倍の範囲で任意に選択される。特に限定されないが、ACC領域(a) の単位サイズは、2048bit、ページ領域(b) の単位サイズは、512kbitである。
このように本実施例では、ACC領域(a1,a2) と、ページ領域(b) の領域設定に一定の条件を設けるが、それは、メモリ容量が限られている内蔵VRAM71について、可能な限り無駄領域を排除する一方で、VDP回路52の内部動作の円滑化を図るためである。すなわち、内蔵VRAM71の記憶容量を無闇に増加させると、製造コストの高騰やチップ面積の大型化が懸念される一方、無駄領域を完全に排除するような自由な領域設定を認めると、内部処理が煩雑化して、VRAMアクセスの処理時間を短縮化できないためである。なお、以下に説明するインデックス空間の確保に、一定の制約を設けるのも同じ理由による。
以上を踏まえて説明を続けると、ステップST1の処理に続いて、ページ領域(b) と、任意領域(c) について、必要なインデックス空間IDXiを確保する(ST2)。具体的には、所定のインデックステーブルレジスタRGijに、必要な情報を設定することで、各領域(b)(c)のインデックス空間IDXiを確保する。
例えば、ページ領域(b) にインデックス空間IDXiを設ける場合には、任意のインデックス番号iに対応して、任意の水平サイズHxと、任意の垂直サイズWxの倍数情報(単位空間に対する縦横の倍数情報)が、所定のインデックステーブルレジスタRGijに設定される(ST2)。
先に説明した通り、ページ領域(b) のインデックス空間IDXiは、水平サイズ128×垂直サイズ128ラインを単位空間としており、また、1ピクセルは32bitの情報で特定されるので、水平サイズHxと垂直サイズWxの設定に基づいて、データサイズ(bit長)=32×128×Hx×128×Wxのインデックス空間IDXiが確保されたことになる。なお、ページ領域(b) のインデックス空間IDXiの先頭アドレス(空間先頭アドレス)は、内部的に自動付与される。
また、任意領域(c) にインデックス空間IDXiを設ける場合には、任意のインデックス番号iに対応して、任意の先頭アドレス(空間先頭アドレス)STxと、任意の水平サイズHxの倍数情報が、所定のインデックステーブルレジスタRGijに設定される(ST2)。ここで、任意とは、所定条件を前提とするもので、水平サイズHxは256bit単位で任意決定され、先頭アドレスSTxの下位11bitは0であって、2048bit単位で任意決定される。先に説明した通り、任意領域の垂直サイズは、2048ラインに固定化されるので、水平サイズHxの設定に基づいて、先頭アドレスSTx以降には、データサイズ(bit長)=2048×Hxのインデックス空間が確保されたことになる。
具体的には、メイン表示装置DS1のフレームバッファFBaとして、水平サイズ1280×垂直ライン2048の一対のインデックス空間が、各々インデックス番号を特定して、一又は複数の所定のインデックステーブルレジスタRGijに設定され、サブ表示装置DS2のフレームバッファFBbとして、水平サイズ480×垂直ライン2048の一対のインデックス空間が、各々インデックス番号を特定して、一又は複数の所定のインデックステーブルレジスタRGijに設定される。なお、もし、表示装置の水平ピクセル数が、256bit/32bitの整数倍に一致しない場合には、各インデックス空間の水平サイズを、その表示装置の水平ピクセル数より大きく、且つ、256/32=8の整数倍となる値に設定して、無駄なメモリ領域の発生を最小限に抑制する。
以上のように、ページ領域(b) と、任意領域(c) について、必要なサイズ情報やアドレス情報を所定のインデックステーブルレジスタRGijに各々設定することで、必要個数のインデックス空間IDXiが生成される(ST2)。そして、この設定処理(ST2)に対応して、各インデックス空間IDXiのアドレス情報やサイズ情報を特定するインデックステーブルIDXTBLが自動的に構築される。図18(a)に示す通り、インデックステーブルIDXTBLには、各インデックス空間IDXiの先頭アドレスが、その他の必要情報と共に記憶されており、VDP回路52内部でのデータ転送時や、外部記憶リソース(Resource)からのデータ取得時に参照される(図19参照)。なお、AAC領域(a) のインデックス空間IDXiは、必要時に自動生成され、自動消滅するので、ステップST2の設定処理は不要である。
図18(a)(b)に示す通り、任意領域(c) には、各一対のフレームバッファFBaとFBbが確保され、各々、インデックス番号が付与されている。Zバッファを使用しない実施例では、フレームバッファFBaとして、インデックス番号255,254が付与された、一対のインデックス空間255,254が確保される。また、フレームバッファFBbとして、インデックス番号252,251が付与された、一対のインデックス空間252,251が確保される。なお、本実施例では、任意領域(c) に、インデックス番号0の作業領域(インデックス空間0)も確保されている。
また、本実施例では、ページ領域(a) に、IPストリーム動画のデコード領域となる必要個数のインデックス空間IDXiを確保し、インデックス番号iを付与することにしている。但し、初期的には、背景動画(IPストリーム動画)のためのインデックス空間IDX0だけを確保している。そして、画像演出(変動演出や予告演出)における必要性に応じて、インデックステーブルレジスタRGijへの設定処理や、ディスプレイリストDLの指示コマンドに基づいて、ページ領域(a) のインデックス空間IDXjを増やし、その後、不要になれば、そのインデックス空間IDXjを開放するようにしている。すなわち、図18(a)は、定常動作時のインデックステーブルIDXTBLを示している。
なお、ACC領域(a) のインデックス空間は、ディスプレイリストDLに記載されている指示コマンドに基づいて、必要時に自動的に生成され、インデックステーブルIDXTBLには、自動生成されたインデックス空間IDXjの先頭アドレスや、その他の必要情報が自動設定される。本実施例では、このAAC領域(a) を、静止画その他のテクスチャのデコード領域として使用している。
インデックス空間を確保する上記の動作は、もっぱら、制御レジスタ群70に含まれるインデックステーブルレジスタRGijへの設定動作によって実現されるが、ステップST1~ST2の処理に続いて、他のVDPレジスタRGijに、必要な設定動作を実行することで、VDP回路52の定常動作(間欠動作)を可能にしている。
例えば、表示回路74の動作を規定する所定の表示レジスタRGijに、所定の動作パラメータ(ライン数と画素数)を書込むことで、各表示装置DS1,SD2について表示ライン数と水平画素数を設定している(SS30)。その結果、各フレームバッファFBa,FBbにおいて、表示回路74がREADアクセスすべき有効データ領域(図26(e)の破線部)の縦横寸法が、特定されることになる。
次に、所定の表示レジスタRGijに、所定の動作パラメータ(アドレス値)を書込んで、各フレームバッファFBa,FBbについて、垂直表示開始位置と水平表示開始位置を特定する(SS31)。その結果、ステップSS30の処理で縦横寸法が特定された有効データ領域が、フレームバッファFBa,FBb上に確定されることになる。ここで、垂直表示開始位置と水平表示開始位置は、各インデックス空間における相対アドレス値であって、図26(e)に示す実施例では、表示開始位置は(0,0)となっている。
続いて、メイン表示装置DS1を駆動する表示回路74Aに関する表示レジスタRGij(DSPAINDEX )と、サブ表示装置DS2を駆動する表示回路74Bに関する表示レジスタRGij(DSPBINDEX )に、各々、「表示領域(0)」と「表示領域(1)」を設定して、各表示領域を定義している(SS32)。
ここで、「表示領域」とは、表示回路74A,74Bが、表示装置DS1,DS2を駆動するために、画像データを読み出すべきインデックス空間(フレームバッファFBa,FBb)を意味し、各々ダブルバッファ構造であるフレームバッファFBa,FBbにおけるダブルバッファの何れか一方を意味する。もっとも、表示回路74A,74Bが、実際に画像データを読み出すのは、表示領域(0)又は表示領域(1)における、ステップSS30~SS31で特定された「有効データ領域」に限定される。
何ら限定されないが、本実施例では、フレームバッファFBaについて、VRAM任意領域(c) におけるインデックス番号254のインデックス空間254を「表示領域(0)」と定義し、VRAM任意領域(c) におけるインデックス番号255のインデックス空間255を、「表示領域(1)」と定義している(SS32)。
また、フレームバッファFBbについて、VRAM任意領域(c) におけるインデックス番号251のインデックス空間251を「表示領域(0))とし、VRAM任意領域(c) におけるインデックス番号252のインデックス空間252を「表示領域(1)」としている(SS32)。なお、「表示領域」を初期処理(SS3)において定義することは、特に限定されず、動作周期δ毎に、表示回路74が画像データをREADアクセスすべきインデックス空間(表示領域)をトグル的に切換えても良い。
本実施例では、以上の初期処理(SS30~SS32)が終われば、次に、所定のシステム制御レジスタRGijへの設定値が、その後、ノイズなどの影響で変更されないよう、第1種の禁止設定レジスタRGijに、所定の禁止値を設定している(第1の禁止設定SS33)。
ここで、今後の書込みが禁止される設定値には、(1) 表示装置DS1,DS2の表示クロックに関する設定値、(2) LVDSのサンプリングクロックに関する設定値、(3) 出力選択回路79の選択動作に関する設定値、(4) 複数の表示回路DS1,DS2の同期関係(表示回路74Bが表示回路74Aの動作周期に従属すること)などが含まれている。なお、第1の禁止設定を解除するソフトウェア処理は存在するが、本実施例では使用していない。但し、必要に応じて使用するのも好適である。
次に、第2種の禁止設定レジスタRGijに、所定の禁止値を設定することで、初期設定系のVDPレジスタRGijについて書込み禁止設定をしている(第2の禁止設定SS34)。ここで、禁止設定されるレジスタには、ステップSS30~SS32に係るVDPレジスタRGijが含まれている。
一方、第3種の禁止設定レジスタRGijに、所定の禁止値を設定することで、ステップST1~ST3の設定処理に関するVDPレジスタを含んだ、多数のVDPレジスタへの禁止設定も可能である(第3の禁止設定)。但し、本実施例では原則として使用しない。何れにしても、第2の禁止設定や、第3の禁止設定は、所定の解除レジスタRGijに、解除値を書込むことで任意に解除可能であり、定常動作中に設定値を変更することも可能となる。
なお、以上説明したステップST1~ST3の初期設定処理は、VDPレジスタRGijのレジスタアドレス値と、そのレジスタRGijへの設定値とを対応させた初期値設定テーブルSETTABLE(図31参照)に基づいて実行される。以上、初期設定処理について説明したので、次に、定常処理(ST4~ST14)を説明する前に、演出制御CPU63によって制御されるVDP回路52の定常動作(間欠動作)について図26(a)及び図26(b)に基づいて概略的に説明しておく。
VDP回路52の間欠動作は、図26や図26に示す通りであり、プリローダ73を使用しない実施例では、図26(a)に示すように、演出制御CPU63が完成させたディスプレイリストDLiは、その動作周期(T1)で、描画回路76に発行され、描画回路76はディスプレイリストDLiに基づく描画動作によって、フレームバッファFBa,FBbに、画像データを完成させる。そして、フレームバッファFBa,FBbに完成された画像データは、次の動作周期T1+δに、表示回路74が表示装置DS1,DS2に出力することで、その後の、表示装置DS1,DS2の描画動作に基づき、遊技者が感知する表示画面となる。
一方、プリローダ73を使用する実施例では、図26(a)に示すように、演出制御CPU63が完成させたディスプレイリストDLiは、その動作周期(T1)で、プリローダ73に発行され、プリローダ73は、ディスプレイリストDLiを解釈して、必要な先読み動作を実行すると共に、ディスプレイリストDLiの一部を書き換えて、書換えリストDL’を完成させる。なお、先読みされたCGデータと書換えリストDL’は、DRAM54の適所に格納される。
次に、描画回路76は、その次の動作周期(T1+δ)で、DRAM54から書換えリストDL’を取得し、書換えリストDL’に基づく描画動作によって、フレームバッファFBa,FBbに、画像データを完成させる。そして、フレームバッファFBa,FBbに完成された画像データは、更にその次の動作周期(T1+2δ)で、表示回路74が表示装置DS1,DS2に出力することで、その後の表示装置DS1,DS2の描画動作に基づき、遊技者が感知する表示画面となる。
以上、VDP回路52の間欠動作について概略的に説明したが、上記した間欠動作を実現するため、演出制御CPU63は、初期処理(ST1~ST3)の後、割込みカウンタVCNTの値を繰り返し参照して、動作開始タイミングに達するのを待ち、動作開始タイミング(一つ飛びのVブランク開始タイミング)に達すれば、割込みカウンタVCNTをゼロクリアする(ST4)。
その後、定常動作を開始するが、本実施例では、最初に、定常動作を開始すべき動作開始条件を満たしているか否かを判定する(ST5)。なお、この判定タイミングは、表示装置DS1の垂直帰線期間(VBLANK)の開始タイミングである。なお、表示装置DS2の表示タイミングは、表示装置DS1の表示タイミングに従属するよう、初期設定(ST3)時に設定されている。
垂直帰線期間(VBLANK)の開始タイミングで判定される動作開始条件は、プリローダ73を活用するか否かで異なるので、先ず、プリローダ73を活用しない実施例(図26)について説明する。この場合は、本来、図26(a)のタイムチャートに示す通りにVDPの内部動作が進行するよう、回路構成やプログラムが設計されている。すなわち、動作周期(T1)で完成されたディスプレイリストDL1に基づき、描画回路76は、その動作周期中(T1~T1+δ)に、描画動作を終える筈である。しかし、例えば、図26(a)の動作周期(T1+2δ)で完成されたディスプレイリストDL3のように、その動作周期中(T1+2δ~T1+3δ)に、描画動作を終わらない場合も無いとは言えない。また、表示回路74に関して、表示タイミングに対して、表示データの生成が間に合わないUnderrun異常が生じている可能性も無くはない。
ステップST5の判定処理は、かかる事態を考慮したのであり、演出制御CPU63は、描画回路76の動作状態を示すステイタスレジスタRGij(制御レジスタ群70の一種)をアクセスして、ステップST5のタイミングで、描画回路76が、必要な動作を終えているか否かと、Underrun異常の有無を判定する。なお、Underrun異常の有無は、アンダーランカウンタURCNTa~URCNTcに基づいて判定される。また、プリローダ73を活用しない実施例では、例えば、図26(a)のタイミングT1+δでは、描画回路76に関する描画レジスタのステイタス情報をREADアクセスして、ディスプレイリストDL1に基づく描画動作が終わっていることを確認する。
そして、動作開始条件を満たさない場合(異常/不適合)には、異常回数をカウントする異常フラグERをインクリメントして、ステップST6~ST8処理をスキップする。異常フラグERは、その他の重大異常フラグABNと共に、ステップST9やST10の処理で判定され、重大異常フラグABNがリセット状態である前提において、連続異常回数が多くない場合(ER≦2)には、正常時と同様に、演出コマンド解析処理を実行する(ST13)。
Underrun異常時の場合も、同様に、ステップST6~ST8処理をスキップする。そして、所定のシステム制御レジスタRGijに、所定のクリア値を書込むことで、表示クロック(周波数)と表示回路74を初期化する(ST10c)。そして、この初期化処理の正常終了を確認した後、表示クロックの周波数や、表示回路74の動作を規定する一群のシステム制御レジスタRGijの値を、規定値に再設定した上で(ST10c)、演出コマンド解析処理を実行する(ST13)。
演出コマンド解析処理(ST13)では、主制御基板21から制御コマンドCMDを受けているか否かを判定し、制御コマンドCMDを受けた場合には、その制御コマンドCMDを解析して必要な処理を実行する(ST13)。ここで、必要な処理には、変動演出の開始を指示する制御コマンドCMDに基づく新規の変動演出の開始準備処理や、エラー発生を示す制御コマンドCMDに基づくエラー報知の開始処理が含まれる。続いて、WDT回路にクリアパルスを出力して(ST14)、ステップST4の処理に戻る。
以上、軽微なUnderrun異常時や、動作開始条件が不適合の場合であって、異常フラグERがER≦2である場合について説明したが、このような場合には、その動作周期では、表示回路74が読み出す表示領域をトグル切換える処理(ST6)や、ディスプレイリストの作成処理(ST7)がスキップされ、且つ、演出シナリオが進行しないことになる(ST8~ST12参照)。これは、不完全な状態のフレームバッファFBa,FBbの画像データを出力させないためである。そのため、画像演出が進行せず、元の画面(DL2に基づく画面)が再表示されるフレーム落ちが生じる。
ここで、フレーム落ちを回避するため、動作開始条件が成立するまで待機する構成も考えられる。しかし、演出制御CPU63が実行すべき制御処理(ST6~ST12)は数多く、各々の処理時間を確保する必要があるので、本実施例では、動作開始条件を満たさない場合にフレーム落ちを生じさせている。
但し、フレーム落ちが生じたとしても、割込み処理(図26(b))によって進行するランプ演出やモータ演出と比較して、1/30~2/30秒程度、画像演出の進行が遅れるだけであり、これに遊技者が気付くことはない。しかも、フレーム落ち時には、演出カウンタENの更新処理を含んだ演出シナリオ処理(ST11)や、音声進行処理(ST12)も合わせてスキップされるので、その後に開始されるリーチ演出や予告演出や役物演出において、画像演出、音声演出、ランプ演出、及びモータ演出などの開始タイミングがずれるおそれはない。
すなわち、演出シナリオでは、画像演出、音声演出、ランプ演出、モータ演出の開始タイミングと、その後に実行すべき演出内容を一元的に管理しており、正常時に限り更新される演出カウンタENによって、開始タイミングを制御しているので、各種の演出の同期が外れることはない。例えば、爆発音と、爆発画像と、役物移動と、ランプフラッシュ動作を複合した演出動作がある場合、フレーム落ちが生じた後であっても、上記した各演出動作は正しく同期して開始される。
以上、比較的軽微な異常時について説明したが、重大異常フラグABNがセット状態である場合や、連続異常回数が多い場合(ER>2)や、繰り返しUnderrun異常が生じる場合には、ステップST10の判定の後、無限ループ状態としている(ST10b)。その結果、WDT回路58の計時動作が進行して、演出制御CPU63を含んだ複合チップ50は、異常リセットされ、その後、初期処理(ST1~ST3)が再実行されることで、異常事態発生の根本原因の解消が期待される。
なお、このリセット動作は、WDT回路58が起動して実行されるので、CPU回路51も含め複合チップ50全体がリセット状態となる(図13(b))。そこで、CPU回路51のリセットを回避するべく、演出制御CPU63が、所定のキーワード列(例えば1バイトデータ3個)をパターンチェック回路CHKに出力して、リセット信号RSTをVDP回路52に出力するのも好適である。この場合も、VDP回路52のリセット動作の正常終了を確認した後(ST101)、ステップST4やST13の処理に移行させることになる。
何れにしても、この異常時には、音声回路SNDも合わせ異常リセットされるので、画像演出、音声演出、ランプ演出、モータ演出は、全て初期状態に戻ることになる。但し、これらのリセット動作は、主制御部21や払出制御部25には、何の影響も与えなので、大当り状態の消滅や、賞球の消滅のような事態が発生するおそれはない。
以上、異常事態について説明したが、実際には、軽微な場合も含め上記した異常が発生することは殆どなく、ステップST5の処理の後、所定の表示レジスタRGij(DSPACTL /DSPBCTL)への設定に基づき、表示回路74Aと表示回路74Bが読み出すべき画像データを記憶するフレームバッファFBa,FBbの「表示領域」をトグル的に切り換える(ST6)。先に説明した通り、「表示領域(0)」と「表示領域(1)」は、予め初期処理において定義されているので(ST3)、ステップST6の処理では、フレームバッファFBa,FBbについて、今回の「表示領域」が、表示領域(0)/表示領域(1)の何れであるかを特定する。
このステップST6が実行されることで、表示回路74Aは、インデックス空間254(表示領域(0))と、インデックス空間255(表示領域(1))から、動作周期δ毎に、交互に画像データを読み出して表示装置DS1を駆動することになる。同様に、表示回路74Bは、インデックス空間251(表示領域(0))と、インデックス空間252(表示領域(1))から、動作周期δ毎に、交互に画像データを読み出してサブ表示装置DS2を駆動することになる。なお、表示回路74が実際にREADアクセスするのは、表示領域(0)/表示領域(1)における有効データ領域に限定されるのは先に説明した通りである。
何れにしても、本実施例では、動作周期毎に「表示領域」が切り替わるので、表示回路74A,74Bは、直前の動作周期で描画回路76が完成させた画像データについて、表示装置DS1,DS2への出力処理を開始することになる。但し、ステップST5の処理は、メイン表示装置DS1の垂直帰線期間(Vブランク)の開始時から開始されるので、実際には、垂直帰線期間が完了してから画像データの出力処理が開始されることになる。図26(a)において、表示回路の欄に示す矢印は、この出力処理の動作周期を示している。
以上のような意義を有するステップST6の処理が終われば、演出制御CPU63は、続いて、次の動作周期で、表示回路74が表示装置に出力するべき画像データを特定したディスプレイリストDLを完成させる(ST7)。特に限定されないが、この実施例では、RAM59のリストバッファ領域(DLバッファBUF)を確保し、そこにディスプレイリストDLを完成させている(図19参照)。
ディスプレイリストDLは、一連の指示コマンドを、適宜な順番で列記して構成され、EODL(End Of DL )コマンドを記載して終わるよう構成されている。そして、本実施例では、データ転送回路72、描画回路76、プリローダ73の円滑な動作を実現するべく、EODLコマンドを含む全ての指示コマンドを、コマンド長が32bitの整数N倍(N>0)の指示コマンドだけに限定している。なお、32bitの整数N倍で構成された指示コマンドに、無意ビット(Don't care bit)も含んで良いことは先に説明した通りである。
このように、実施例のディスプレイリストDLは、コマンド長が32bitの整数N倍(N>0)の指示コマンドだけで構成されているので、ディスプレイリストDL全体のデータボリューム値(データ総量)は、必ず、コマンド長の最小単位(32bit=4バイト)の整数倍となる。更に、本実施例では、データ転送回路72の最低データ量Dminを考慮して、ディスプレイリストDLのデータボリューム値を、最低データ量Dminの整数倍(1以上)であって、且つ、指示コマンドの最小単位(4バイト)の整数倍となるよう調整している。例えば、Dmin=256バイトであれば、ディスプレイリストDLのデータボリューム値は、256バイト、512バイト・・・の何れかの値に調整される。
ここで、演出内容の複雑さに応じて、適宜に、256バイトか、又は512バイトに調整するのも好適であるが、本実施例では、表示装置が二個であり、サブ表示装置DS2はそれほど複雑な画像演出を実行させないことを考慮して、ディスプレイリストDLのデータボリューム値を、常に、256バイトに調整している。
もっとも、この手法は、何ら限定されず、表示装置が三個以上になる場合や、サブ表示装置DS2も含め複雑な画像演出を実行する遊技機の場合には、512バイト又は、768バイトに調整される。また、通常の演出時は、ディスプレイリストDLのデータボリューム値を256バイトに調整し、特別な演出を実行する場合に限り、ディスプレイリストDLのデータボリューム値を、512バイト又は、768バイトに調整するのも好適である。
但し、本実施例の場合には、ディスプレイリストDLのデータボリューム値は、各動作周期δにおいて、予め規定された所定バイト長(256バイト)に調整される。調整手法としては、32bit長のEODLコマンドの後に、不足領域を補填する32bit長のNOP (No Operation)コマンドを埋める簡易手法(A)か、或いは、不足領域を32bit長のNOP コマンドで埋めた後、最後に32bit長のEODLコマンドを記載する標準手法(B)が考えられる。なお、ディスプレイリストDLのデータボリューム値(データ総量)を全く調整することなくEODLコマンドで終結させ、データ転送回路72の動作時に、ダミーデータを付加的に転送して、最低データ量Dminの整数倍の転送量を確保する無調整手法(C)も考えられる。
ここで、標準手法(B)を採る場合には、最初、コマンドカウンタCNTを規定値(256バイトに対応する64-1)に初期設定し、DLバッファ領域BUFに、有意な指示コマンドを書き込むごとに、コマンドカウンタCNTを適宜に減算し、一連の有意な指示コマンドの書き込みが終われば、コマンドカウンタCNTがゼロになるまで、NOP コマンドを記載し、最後にEODLコマンドを記載する手法が考えられる。本実施例の場合、指示コマンドは、そのコマンド長が32bitの整数N倍(N>0)のものに限定されているので、上記の処理は容易であり、コマンドカウンタCNTの減算処理は、整数Nに対応した減算処理となる。
一方、簡易手法(A)を採る場合には、ディスプレイリストDLの作成時、最初に、リストバッファ領域(DLバッファBUF)の全てをNOP コマンドで埋めれば足りるので、一見、標準手法(B)より優れているように思われる。また、簡易性の観点では、無調整手法(C)も優れているように思われる。しかし、本実施例では、基本的に標準手法(B)を採っており、ディスプレイリストDLの先頭からEODLコマンドまでの実データ量、つまり、EODLコマンドまでのデータ量が、常に、データ転送回路72の最低データ量Dminの整数倍となるよう調整している。
これは、プリローダ73を活用する実施例を考慮したものであり、もし、簡易手法(A)や無調整手法(C)を採用すると、EODLコマンドまでのディスプレイリストDLの実データ量が、ランダムな値となり、プリローダ73が書き換えた書換えリストDL’のDRAM54への転送時や、DRAM54から描画回路76への書換えリストDL’の転送時に支障が生じるからである。なお、書換えリストDL’のDRAM54への転送時には、データ転送回路72のChA制御回路72aが機能し、書換えリストDL’の描画回路76への転送時には、ChB制御回路72bが機能するが(図24参照)、何れの場合もEODLコマンドまでの書換えリストDL’しか転送しないことになる。
以上、ディスプレイリストDLのデータボリューム値を調整する標準手法(B)の利点を説明したが、プリローダ73を使用しない実施例では、発行されたディスプレイリストDLは、描画回路76によって処理されるだけであるので、簡易手法(A)や無調整手法(C)の使用が何ら禁止されない。
但し、以下の説明では、プリローダ73の使用の有無に拘らず、原則として標準手法(B)を採ることを前提に、図28に基づいて、ディスプレイリストDLの詳細について説明する。
特に限定されないが、本実施例では、ディスプレイリストDLに、先ず、メイン表示装置DS1に関する指示コマンド列(L11~L16)を記載し、その後、サブ表示装置DS2に関する指示コマンド列(L17~L20)を記載するようにしている。また、標準手法(B)を採用して、ディスプレイリストDLのデータボリューム値を固定長(256バイト)に調整している。なお、図28は、事実上、演出制御CPU63が、RAM59のリストバッファ領域に、指示コマンドを書き込む手順や、ディスプレイリストDLに基づく描画回路76の動作を示したものともなっている。
図28に示す通り、ディスプレイリストDLの先頭では、環境設定系の指示コマンド(SETDAVR )を記載して、表示装置DS1のフレームバッファFBaについて、インデックス空間IDX上の左上基点アドレス(X,Y)を規定する(L11)。図18(a)に関して説明した通り、本実施例では、表示装置DS1用として、任意領域(c) に、一対のフレームバッファFBaが確保されている。そして、通常は、表示回路74にとっての有効データ領域に対応して、基点アドレス(X,Y)=(0,0)とすることで、フレームバッファFBaの先頭位置から描画回路76に活用される。
図18(c)では、その下方左側の実描画領域にL11と付しているが、これは、指示コマンドL11によって、フレームバッファFBa上の実描画領域が、フレームバッファFBaの基点アドレス(0,0)位置から始まると特定されたことを意味している。ただし、実描画領域の縦横寸法や、その実描画領域を具体的に特定するインデックス番号は、未だ未確定であり、後述する指示コマンド(SETINDEX)L13によって確定する。なお、指示コマンドL11ではZバッファの使用の有無も指定される。
次に、環境設定系の指示コマンド(SETDAVF )によって、仮想描画空間上に、左上基点座標(Xs,Ys)と、右下対角点座標(Xe,Ye)を設定して、W×H寸法の描画領域を定義する(L12)。ここで、仮想描画空間とは、描画用の指示コマンド(SPRITEコマンドなど)によって描画可能な、X方向±8192、Y方向±8192の仮想的な二次元空間である(図18(c)参照)。
この指示コマンドL12(SETDAVF )によって、仮想描画空間は、描画内容が実際に表示装置DS1に反映される描画領域と、その他の非描画領域に区分される。また、指示コマンドL12(SETDAVF )は、指示コマンドL11で開始位置(基点アドレス)が規定された実描画領域と、仮想描画空間上の描画領域とを対応付けることになる。
この点を言い換えると、指示コマンドL12によって、(インデックス空間は未定の)フレームバッファFBaには、仮想描画空間上の描画領域に対応する、基点アドレスから始まるW×Hの実描画領域が定義されることになる。したがって、指示コマンドL12で指定する描画領域は、フレームバッファFBaの水平サイズと同一か、それ以下とする必要がある。通常、描画領域や実描画領域は、表示回路74にとっての有効データ領域(図26(e))と同寸法となるよう定義される。
そして、描画回路76が指示コマンドL11,L12を実行した後は、仮想描画空間に描画された描画内容のうち、描画領域に含まれるものだけが、フレームバッファFBaの実描画領域に反映されることになる。したがって、描画領域からはみ出した部分や、図18(c)において作業領域と記載された部分の描画内容は、そのままでは、フレームバッファに反映されることはない。なお、仮想描画空間に作業領域を確保する場合には、仮想描画空間の非描画領域が使用される。
次に、今回の動作周期において、描画回路76が、これから完成させるディスプレイリストDLに基づいて描画する描画内容を何処に描画すべきかを規定する(L13)。具体的には、ダブルバッファ構成の表示装置DS1のフレームバッファFBaについて、今回のディスプレイリストDLに基づく描画内容の「書込み領域」となるインデックス空間IDXが特定される(L13)。具体的には、テクスチャ設定系のコマンドであるSETINDEXコマンドによって、(1) フレームバッファFBaは、任意領域に確保されていること、及び、(2) 「書込み領域」となるインデックス空間IDXNの任意領域上のインデックス番号Nが特定される。
この指示コマンドL13によって、例えば、N=255と特定された場合には、仮想描画空間上に定義された描画領域に対応する実描画領域は、具体的には、ダブルバッファ構造のフレームバッファFBaにおけるインデックス空間IDX255であると定義されたことになる。
本実施例の場合、フレームバッファFBaのインデックス番号は、255又は254であり(図18(a))、トグル的に切り換えた何れかが指定される(L13)。なお、このインデックス番号は、メイン制御処理のステップST6で指定された表示領域(0)/(1)ではない方のインデック番号である。例えば、ステップST6の処理において、表示回路74に対して、表示領域(0)が指定されている場合には、表示領域(1)が、描画回路76にとっての「書込み領域」となる。
以上の通り、指示コマンドL11と指示コマンドL12とで、実描画領域(W×Hの論理空間)と描画領域(W×Hの仮想空間)との対応関係が、一般的に定義された後、インデックス空間IDXを具体的に特定する指示コマンドL13(SETINDEX)によって、W×Hの仮想空間が、特定のインデックス空間IDXにおけるW×Hの論理空間であると対応付けられたことになる。
この点を言い換えると、今後、一連の指示コマンドに基づいて、W×Hの仮想空間に仮想的に描画される内容は、仮想空間と内蔵VRAM71の実アドレスとの対応関係を規定するVDP内部の変換テーブルに基づいて、内蔵VRAM71(フレームバッファ)の画像データとなる。 続いて、「書込み領域」として、特定されたインデックス空間IDXを、例えば、黒色で塗りつぶすフレームバッファ・クリア処理を実行する指示コマンドが記載される(L14,L15)。これは、二動作期間前にフレームバッファFBaに書き込まれた画像データの消去処理に他ならない。
具体的には、環境設定コマンドの一種であるSETFCOLOR コマンドによって、例えば黒色を選択し、プリミティブ描画系コマンドであるRECTANGLE コマンドによって矩形領域を塗り潰すべく規定する。なお、RECTANGLE コマンドでは、仮想描画空間に設定された描画領域(フレームバッファFBaに対応する仮想空間)について、その左上端点と、右下端点のXY座標が指定される(図18(c)参照)。
以上の処理によって、描画準備処理が完了するので、次に、静止画や動画一フレームなど、適宜なテクスチャを、仮想描画空間に描画するための指示コマンドを列記する。典型的には、先ず、テクスチャの展開先となるインデックス空間IDXを、テクスチャ設定系のSETINDEXコマンドで特定した上で、テクスチャロード系の指示コマンドであるTXLOADコマンドを記載して、CGROM55から読み出す所定のテクスチャを、所定のインデックス空間IDXに展開するようディスプレイリストDLに記載する。
先に説明した通り、本実施例では、背景動画が、IPストリーム動画で構成されている。そこで、例えば、背景動画について、これを展開すべきインデックス空間IDXを、テクスチャ設定系のSETINDEXコマンドで、ページ領域(b) のインデックス空間IDX0と特定した上で、テクスチャロード系のTXLOADコマンドを記載する。なお、TXLOADコマンドでは、今回LOADすべき動画フレームについて、CGROM55の先頭アドレス(テクスチャのSourceアドレス)と、展開後のデータサイズ(水平×垂直)を特定する必要がある。
VDP回路52において、上記のTXLOADコマンドが実行されると、背景動画の一動画フレーム(テクスチャ)は、先ず、AAC領域(a) に取得され、その後、自動的に起動するGDEC75によって、ページ領域(b) のインデックス空間IDX0に展開される。次に、この一動画フレームを仮想描画空間に描画することになる。この場合に、SETINDEXコマンド(テクスチャ設定系)によって、「ページ領域(b) のインデックス空間IDX0が、その後の処理対象のテクスチャである」と設定しても良いが、TXLOADコマンドに連続して処理する場合には、このSETINDEXコマンドの記載を省略することができる。
何れにしても、「ページ領域(b) のインデックス空間IDX0が、その後の処理対象のテクスチャである」と特定されている状態で、次に、αブレンド処理のためのパラメータを設定するなど、適宜な描画間演算系の指示コマンドを記載する。なお、αブレンド処理とは、既に描画領域(フレームバッファFBa)に記載されている画像と、これから上書きする画像との透明化/半透明化処理に関するものある。したがって、背景動画の動画フレームのように、第一枚目の描画動作では、描画間演算系の指示コマンドの使用は不要である。
続いて、プリミティブ描画系の指示コマンドであるSPRITEコマンドによって、「ページ領域(b) のインデックス空間IDX0のテクスチャ(背景動画の一動画フレーム)」を、仮想描画空間の適所(矩形のDestination 領域)に描画するべくSPRITEコマンドを記載する。なお、SPRITEコマンドには、仮想描画空間のDestination 領域について、その左上端点と、右下端点を特定する必要がある。
このDestination 領域は、予め、指示コマンドL11,L12によって、実描画領域(FBa)に対応付けられた描画領域(仮想描画空間上に定義された仮想空間)の全体又はその一部である。但し、背景動画は、通常、表示画面全体に描画するので、このような場合のDestination 領域は、描画領域の全体又はそれ以上となる。なお、Destination 領域が、描画領域の全体より大きい場合とは、例えば、背景動画がズームアップされる場合である。
以上の処理によって、背景動画の動画フレームの描画が終わったので、続いて、テクスチャロード系、テクスチャ設定系、描画間演算系、プリミティブ描画系コマンドなどの指示コマンドを適宜な順番で列記して、背景動画に重ねて、各種のテクスチャを描画するべくディスプレイリストDLを構成することになる。先に説明したように、変動演出時では、多数の動画が必要となるので、その場合には、内蔵VRAM71のページ領域(b) について、インデックス空間IDXを増加するべく、インデックステーブル制御系の指示コマンド(NEWPIX)を記載することになる。
例えば、二つ目のIPストリーム動画に関し、NEWPIXコマンドによって、ページ領域(b) に、追加のインデックス空間IDX1を確保した後、このインデックス空間IDX1を特定して(SETINDEX)、二つ目の動画の一フレームの展開を指示し(TXLOAD)、展開したテクスチャを描画領域の適所に配置する(SPRITE)。通常、この場合のDestination 領域は、描画領域の一部となる。
以下、同様であり、NEWPIXコマンドによって、次々、インデックス空間IDXkを確保した後、適宜なαブレンド処理を実行しつつ、複数のIPストリームを描画領域に描画すれば、描画領域への描画内容は、実描画領域であるフレームバッファFBaに画像データとして順次蓄積されることになる。複数N個のIPストリーム動画が描画されている演出時には、ページ領域(b) において、複数N個のインデックス空間が機能している。
そして、一連の変動演出が終了したような場合には、ページ領域(b) に確保した多数のインデックス空間IDX1~IDXkのうち、不要と思われるインデックス空間IDXを開放するべく、DELPIXコマンドによって不要なインデックス空間IDXを削除すれば良い。
なお、静止画やIストリーム動画を描画する場合には、SETINDEXコマンドによって、これらのテクスチャのデコード先が、AAC領域(a) であると指定した上で、TXLOADコマンドを実行させれば、AAC領域(a) に取得されたテクスチャは、その後、自動的に起動するGDEC75によってACC領域(a) に展開される。そして、展開されたテクスチャは、SPRITEコマンドによって、描画領域の適所に描画すれば良い。なお、キャッシュヒット機能を活用するか否かに応じて、第一AAC領域(a1)か、第二AAC領域(a2)が使用される。
ここまでの説明では、各テクスチャは、直接的に、メイン表示装置用DS1の描画領域に描画されるが、必ずしも、このような動作に限定されない。例えば、既に表示装置DS1用に確保されている描画領域に重複しない状態で、適宜な描画領域を設け(図18(c))、この描画領域を内蔵VRAM71の作業領域に対応付ければ、中間的な描画領域を構築して、適宜な演出画像を完成させることができる。ここで、表示装置DS1用の描画領域と重複しない状態とするのは、重複領域については、後の対応付け設定が優先され、その領域への描画内容がフレームバッファFBaに反映されないからである。
図18(c)に示す通り、本実施例の作業領域は、任意領域(c) におけるインデックス空間IDX0である。そして、この作業領域を使用する演出タイミングでは、先行して、演出画像用の描画領域(図18(c)参照)を、作業領域(インデックス空間IDX0の実描画領域)に対応付けるための指示コマンド列(SETDAVR ,SETDAVF ,SETINDEX)を記載しておく。図18(c)に示す通り、演出画像用の描画領域は、メイン表示装置DS1用の描画領域に含まれない領域に確保される。
そして、その後は、フレームバッファFBaに関する指示コマンド列L16と同様の指示コマンドを列記して、インデックス空間IDX0に、適宜な演出画像を完成させれば良い。本実施例の場合、演出画像は、静止画で構成されるので、デコードデータは第一AAC領域(a1)に展開されるよう指示コマンド(SETINDEX)が記載され、次に、インデックス空間IDX0の描画領域の適所をDestination とするプリミティブ描画系の指示コマンド(SPRITE)が使用されることになる。なお、このような動作は、演出内容に応じて、一回又は複数回繰り返される。
そして、演出画像を完成させたインデックス空間IDX0をテクスチャと位置付けた後(SETINDEX)、SPRITEコマンドによって、メイン表示装置用DS1の描画領域の適所に、インデックス空間IDX0の演出画像(テクスチャ)を描画すれば良い。このような場合、インデックス空間IDX0の演出画像を、三角形の描画プリミティブ(primitive )に分解し、適宜な角度に回転させた上で、描画領域に描画することが考えられる。なお、テクスチャの回転角度は、例えば、予告演出の信頼度などに対応付けられる。
以上、メイン表示装置DS1の一フレームを完成させるための指示コマンド列(L11~L16)について説明したが、サブ表示装置DS2の一フレームを完成させるための指示コマンド列(L17~L12)についても、同様である。すなわち、フレームバッファFBbの開始XY座標を特定し(L17)を定義し(通常はX=0,Y=0)、図18(c)に示す仮想描画空間上に、サブ表示装置DS2のための描画領域を定義する(L18)。
ところで、本実施例では、メイン表示装置DS1用の画像データの生成を終えた後、サブ表示装置DS2用の生成処理に移行するので、サブ表示装置DS2用の描画領域が、メイン表示装置DS1用の描画領域と重複しても何の問題もなく、描画領域を自由に設定することができる。そのため、ディスプレイリストDLの生成プログラムの開発時、例えば、SPRITEコマンドで、新規に設定された描画領域に適宜なテクスチャを貼り付けるような場合、SPRITEコマンドの動作パラメータ(Destination 領域)の設定その他を、ある程度、定型化することができる。
このような任意の描画領域の定義が終われば(L18)、次に、ダブルバッファ構成の表示装置DS2のフレームバッファFBbについて、今回のディスプレイリストDLに基づく描画内容の「書込み領域」となるインデックス空間IDXを特定する(L19)。このインデックス空間IDXのインデックス番号は、フレームバッファFBbに関し、メイン制御処理のステップST6で指定された表示領域(0)/(1)に対応しない方のインデック番号である。
そして、その後、サブ表示装置DS2についての指示コマンド列L20~L22が、メイン表示装置DS1に関する指示コマンド列L14~L16と同様に列記される。また、インデックス空間IDX0に完成させた演出画像を使用することもできる。
以上、ディスプレイリストDLを構成するL11~L22の指示コマンドは、本実施例では、全て、コマンド長が32ビットの整数倍のものに限定されている。そして、先に説明した通り、本実施例のディスプレイリストDLのデータボリューム値(データ総量)を、固定長(256バイト)に調整しており、ダミーコマンドたる必要数のNOP コマンド(L23)を付加した上で、EODLコマンド(L24)で終結させている。すなわち、図28の実施例では、前記した標準手法(B)を採っている。
但し、標準手法(B)を採る場合でも、全ての動作周期において、ディスプレイリストDLのデータ総量を256バイトと固定化することは必ずしも必須ではない。すなわち、別の実施例では、NOP コマンドを除くディスプレイリストDLのデータ総量が、256バイトを超える場合(例えば、特別な演出期間)には、ディスプレイリストDLのデータ総量は、NOP コマンドを付加することで、512バイト又はそれ以上のN×256バイトに調整される。なお、標準手法(B)を採る場合、N×256バイトの最後はEODLコマンドで終端されることは先に説明した通りである。
以上、本発明の実施例について詳細に説明したが、各構成は、弾球遊技機に限らず、例えば、回胴遊技機にも好適に適用可能である。なお、力率改善回路については、省略することも可能である。また、遊技球は、必ずしも、遊技者に払い出される必要はなく、賞球数が電子カードの記憶されるいわゆる管理遊技機にも本発明が適用可能であることは勿論である。