以下、本発明をパチンコ機に適用した一実施形態について、各対応図面を参照しながら説明する。
(1.パチンコ機の概要構成例)
図1は、本発明の遊技機の一実施形態であるパチンコ機1の構成例を示す正面図である。このパチンコ機1は、ホール等の遊技場の島設備に複数台が横方向に並べて設置されており、いわゆるCR(Card Reader)機の場合、カードユニット12が設置されている。以下、まずパチンコ機1の概要構成例について説明する。
このパチンコ機1は、基枠が、ヒンジ機構を介して木製の外枠に開閉可能に装着されている。その基枠には、前面枠(ガラス枠5)がヒンジ機構を介して、その基枠に対して開閉可能に装着されている。本実施形態では、これら基枠や前面枠等の枠体を総称して「本体枠17」と呼称する。このうち基枠には、遊技盤2が着脱可能に嵌め込まれている。
またガラス枠5には、多数の枠ランプ(枠装飾ランプ31など)が縦方向に沿って複数配置されるほか、遊技の進行に伴い効果音や音声などの音響出力を行うための上部スピーカ29aや、遊技者が適宜プッシュ操作できる演出ボタン10等が設置されている。またガラス枠5の下部には、遊技球を収容する上皿4が設けられているとともに、基枠の下部には下皿6が設けられている。またその他にも、ガラス枠5の下部に位置する基枠の右下隅には発射ハンドル8が設けられている。この発射ハンドル8は、上皿4に収容された遊技球を順次発射させるために遊技者が操作する操作部である。また上皿4の左側位置の内側には、下部スピーカ29bが配置されている。
遊技盤2は、その前面にほぼ円形の遊技領域が形成されており、その中央部には演出装置14が設けられている。その遊技領域には、多数の誘導釘(図示されていない)が所定のゲージ配列で打設されているほか、図示しない風車や各種入賞口(始動入賞口15b、大入賞口15c、一般入賞口等)、ゲート口13、パネル装飾ランプ(参照符号なし)等が盤面構成要素として配設されている。これらの各種入賞口には、遊技球の入球を検出するための入賞検出器(図1において図示せず)が設けられている。また、ゲート口13には、遊技球の通過を検出するためのゲート通過検出器(図1において図示せず)が設けられている。
また、演出装置14の下縁部には球ステージ14aが形成されており、この球ステージ14a上に遊技球が誘導されると、この遊技球は、一時的に転動しながら動きに変化が与えられる。さらにこの遊技球は、この球ステージ14aに形成された球誘導路14bの入口に落下すると、この球誘導路14bに誘導されてその直下に設けられた始動入賞口15bに入球し、図示しない入賞検出器によって入賞が検出される。
また遊技盤2の右下縁部には、複数の発光ダイオード(LED:Light Emitting Diode)を用いた特別図柄表示装置41が設けられている。この特別図柄表示装置41は、始動入賞があると、その後(例えば始動入賞を契機に)点灯或いは消灯状態を繰り返すとともに、所定時間(後述する「変動時間」に相当)経過後、メイン制御基板において実行した内部的な抽選(大当り抽選及び判定)の結果に応じた点灯状態或いは消灯状態となる。また、この遊技盤2の右下縁部には、発光ダイオードを用いた普通図柄表示装置42が設けられている。この普通図柄表示装置42も、ゲート口13の通過を契機に変動期間にわたり点灯状態を変化させる構成となっている。ここで、この普通図柄表示装置42の点灯状態が所定の点灯状態となると、例えば電動チューリップ型の始動入賞装置(入賞検出手段)を所定時間入賞しやすい開状態にする。さらに、普通図柄表示装置42の近傍には、状態表示ランプ46が設けられている。
また、上記演出装置14内には、装飾図柄表示装置16が配置されている。この装飾図柄表示装置16は、上記大当り抽選及び判定の結果を装飾的に表した装飾図柄を表示する表示装置である。この装飾図柄表示装置16は、始動入賞口15bへの入賞があると、その後に表示内容が変化し、上記特別図柄表示装置41の点灯状態或いは消灯状態に応じて、装飾図柄の変動を表す画像等を表示する。この装飾図柄は、一定時間(変動時間)に渡って変動した後に停止し、上記大当り抽選及び判定の結果当選している場合には、予め定められた停止図柄態様(例えば同種の装飾図柄が3つ揃った表示態様)となり、パチンコ機1において特別な遊技状態(以下「特別遊技状態」と呼称する)に移行する。
この特別遊技状態では、例えばラウンド動作を15ラウンドにわたり繰り返す。各ラウンド動作では、例えば大入賞口ソレノイド18が1回作動することで、大入賞口15cが遊技球を受け入れ可能な状態となる。また装飾図柄表示装置16においては、そのラウンド動作として表示内容が大当り中のラウンド表示に切り替わり、ラウンド演出表示(入賞個数のカウント表示や継続ラウンド回数など)を行う。また、15ラウンドのラウンド動作を実行する特別遊技状態が終了した後に特典遊技(いわゆる「確変」や「時短」など)に移行すると、それぞれ特典遊技中である旨の情報(「確変中」や「時短中」)などが表示される場合もある。
また、遊技盤2における演出装置14の下縁部左右には、特別図柄保留ランプ43が設けられている。この特別図柄保留ランプ43は、始動記憶する条件が揃っていた場合に始動入賞を保留して、その保留状況を表示する構成となっている。具体的には、各特別図柄保留ランプ43には、例えば「1」、「2」、「3」、「4」という数字を模した半透過領域が設けられており、これら半透過領域が各々左から右へ「1」〜「4」を表すとともに順番に配列している。これら4つの半透過領域は、「1」〜「4」の発光(点灯)態様に応じて特別図柄の始動記憶数(1〜4)を表している。
さらに遊技盤2の下縁部には普通図柄保留ランプ44が設けられている。この普通図柄保留ランプ44は、普通図柄表示装置42による点灯状態が変化中にゲート口13の通過を保留して、その保留状況を表示する。この普通図柄保留ランプ44の近傍には、大当り種類表示ランプ45が設けられている。大当り種類表示ランプ45は、大当りとなった場合に少なくとも1つが点灯し、それによって大当りの種類を表示する。また遊技盤2の背面においては、その上部にメイン制御基板及びサブ制御基板などが設けられており、装飾図柄表示装置16の背面には表示制御基板(後述する装飾図柄制御基板)が配置されている。また本体枠17には、図示しない払出制御基板及び発射制御基板が設けられている。
(2.パチンコ機の電気的な構成例)
図2は、パチンコ機1の電気的な構成例を示すブロック図である。
まずメイン制御基板3(遊技制御部)は、サブ制御基板35(演出制御部)及び払出制御基板25などの基板に接続されている。サブ制御基板35は、表示動作を制御する装飾図柄制御基板30に接続されており、払出制御基板25は、発射制御基板47や賞球払出装置21に接続されている。
装飾図柄制御基板30は、上記装飾図柄表示装置16に接続されている。なお本実施形態では、サブ制御基板35(演出制御基板)と装飾図柄制御基板30(表示制御基板)とが別体となっているが、これに限られず、サブ制御基板35と装飾図柄制御基板30とが一体となっており、サブ制御基板35(演出制御部)が装飾図柄制御基板30の機能を備えている形態であっても良い。このような形態を採用した場合においては、サブ制御基板35が直接、装飾図柄表示装置16に接続された構成となっている。
サブ制御基板35は、装飾図柄制御基板30に対して、遊技動作中には遊技の進行に応じた演出表示動作を制御するための演出表示コマンドなどを送信する。装飾図柄制御基板30は、その演出表示コマンドなどを受信し、この演出表示コマンドに基づいて遊技の進行に応じた映像を装飾図柄表示装置16に表示させる。この演出表示コマンドは、サブ制御基板35によって指定された演出表示パターン番号を含んでおり、この演出表示パターン番号は、装飾図柄制御基板30が実行制御すべき演出表示パターンに対応した番号を表している。また、このサブ制御基板35は、ランプ中継基板32及びランプ中継基板34を介して、各々パネル装飾ランプ36及び枠装飾ランプ31を点灯制御する。
メイン制御基板3は、CPU3a(以下「メインCPU」と呼称する)、RAM3b、ROM3c、入出力インタフェース等(全ては図示されていない)の電子部品類を備えている。このメイン制御基板3には、入賞を検出する入賞検出器15a(入賞検出手段)が接続されている。この入賞検出器15aは、遊技領域内にて各種の入賞口(始動入賞口15b、大入賞口15c、一般入賞口等)への入球があったこと(以下、始動入賞口15bへの入球を「始動入賞」と呼称する)を検出し、その検出信号をメイン制御基板3に出力する。ゲート通過検出器(ゲートスイッチ)13aは、ゲート口13を遊技球が通過したことを検出し、その検出信号としてのゲート通過信号をメイン制御基板3に出力する。
メイン制御基板3による遊技動作の制御は、例えばメインCPU3aが制御プログラム(以下「メイン制御プログラム」と呼称する)を実行することで行われる。メイン制御プログラムは、ソフトウェア上の乱数を生成しており、始動入賞を契機として乱数値(大当り判定用乱数値)を取得する(本実施形態では「大当り抽選」と呼称している)。そしてメイン制御プログラムは、後述する大当り判定タイミングにおいて、取得した乱数値が大当り乱数値に一致しているか否かを判断し(本実施形態では「判定」と呼称している)、両乱数値が一致していると判定した場合には「大当り」とする一方、一致していないと判定した場合には「はずれ」とする。ここで、大当り判定タイミングとは、始動入賞後、この始動入賞に基づく特別図柄の変動表示を開始する時をいう。
またメイン制御プログラムは、このように始動入賞があると、その後、特別図柄表示装置41による特別図柄の変動表示を開始し、所定の変動時間が経過すると、上記大当り抽選結果に応じて、特別図柄表示装置41に停止図柄を表示させる。なお、上記「大当り」としては、いわゆる「確変大当り」及びいわゆる「時短大当り」を含んでいる。
メイン制御プログラムは、大当り抽選及び判定の結果が大当りである場合、変動表示を開始させ、この変動表示の停止後に、特別遊技状態へと移行させる。この特別遊技状態では、メイン制御プログラムが、例えば大入賞口ソレノイド18を既定回数にわたり作動させることで(ラウンド動作)、例えば15ラウンドにわたり大入賞口15cが遊技球を受け入れ易い状態となることを繰り返す。このとき遊技者は、大入賞口15cの開放中に遊技球(遊技媒体)を入賞させてより多くの賞球を獲得することができる。上記以外にもメイン制御基板3による遊技動作の制御は各種があるが、いずれも公知であるため、ここでは詳細な説明を省略する。
メイン制御プログラムは、上記大当り抽選及び判定をした後に、サブ制御基板35に対して抽選結果及び演出コマンドを出力する。なお、この演出コマンドは、演出動作を実行すべき時間(前述の「変動時間」に相当)に関する情報を含んでいる。
サブ制御基板35は、メイン制御基板3から受け取った抽選結果及び演出コマンドに応じて演出動作を制御する。このサブ制御基板35は、CPU35a(以下「サブCPU」と呼称する)、RAM35b、ROM35c、入力インタフェース(コマンド受信バッファなど)などの電子部品類を備えている。このサブ制御基板35においては、CPU35aが制御プログラム(以下「サブ制御プログラム」と呼称する)を実行することによって演出動作を制御している。
サブ制御プログラムは、メイン制御基板3からのコマンドなど(抽選結果、演出コマンド、遊技状態コマンドなど)を受け取ると、受け取ったコマンドなどを解析する。
サブ制御プログラムは、コマンドなどの解析結果から得た抽選結果及び変動時間に応じて、いかなる演出パターンで演出動作を制御すべきかに関して抽選(以下「演出抽選」と呼称する)を実行する。具体的には、サブ制御プログラムは演出制御スケジューラを管理しており、この演出制御スケジューラは、この抽選結果ごとに(「大当り」であるか「はずれ」であるかに応じて各々)、実行すべき演出パターンを複数管理している。さらにこの演出制御スケジューラは、同一の抽選結果であっても変動時間の長さが異なる複数の演出パターンを備えている。また、同一の抽選結果であり、かつ変動時間が同じであっても演出内容の異なる複数の演出パターンが存在する。このようにしてサブ制御プログラムは、この演出制御スケジューラを参照しつつ、これら抽選結果及び変動時間に対応した演出パターンを選定すべく演出抽選を実行しているのである。
このような演出抽選を実行した後、サブ制御プログラムは、変動時間にわたり演出パターンに従って、スピーカ29a、29bから音を出力させたり、ランプ中継基板32を介してパネル装飾ランプ36を所定の色で点灯させたり消灯させたり、ランプ中継基板34を介して枠装飾ランプ31を所定の色で点灯させたり消灯させる。
また併せてサブ制御プログラムは、選定した演出パターンに対応して、装飾図柄表示装置16による変動表示に関する演出表示パターンも選定している。この演出表示パターンの選定後、このサブ制御プログラムは、サブ制御基板35から装飾図柄制御基板30に対して、この演出表示パターン及び停止図柄に関する情報を含めた演出表示コマンドを出力するよう制御する。
この装飾図柄制御基板30は、サブ制御基板35が出力した演出表示コマンドを受け取ると、その後、新たな演出表示動作に移行する。具体的には、装飾図柄制御基板30は、まず、サブ制御基板35から受け取った演出表示コマンドを解析し、演出表示パターン及び装飾停止図柄に関する情報を取得する。そして装飾図柄制御基板30は、演出表示パターンに従って変動時間にわたり装飾図柄表示装置16に装飾図柄を変動表示させた後、その装飾図柄を装飾停止図柄とすべく表示制御する。
払出制御基板25は、CPU25a(以下「払出CPU」と呼称する)、RAM25b、ROM25c、入出力インタフェースなどを有しており、メイン制御基板3との間で双方向通信可能に接続されている。すなわち、メイン制御基板3と払出制御基板25との間はシリアル信号の上下線Su、Sdと、これらに並行して設けられたACK信号の送信線Au、Adとで接続されている。
例えばメイン制御基板3が、賞球の払出を指示する賞球コマンドを下り線Sdを通じてシリアル形式で送信すると、これを受け取った払出制御基板25が送信線Auを通じてメイン制御基板3に対してACK信号を送信する。また払出制御基板25が、払出制御基板25の状態を示す状態コマンド(例えば払出処理中)を上り線Suを通じてメイン制御基板3に対して送信すると、これを受け取ったメイン制御基板3が、送信線Adを通じて払出制御基板25に対してACK信号を送信する。
また賞球払出装置21は、払出制御基板25の制御によって遊技球の払出動作を実行する。すなわち払出制御基板25は、メイン制御基板3から賞球コマンドを受け取ると、賞球払出装置21の払出モータ20を作動させ、この賞球コマンドにより指示された個数分の払出動作を行わせる。払出球検出器22は、実際に払い出された賞球数を1個ずつ検出し、払出制御基板25にフィードバックする。一方、モータ駆動センサ24は、払出モータ20の回転状態(回転角)を検出して同じく払出制御基板25にフィードバックする。
その他、発射制御基板47には、発射モータ49の他に発射ハンドル8からの信号線が接続されている。この発射ハンドル8にはタッチ検出部48が内蔵されており、このタッチ検出部48は、人体(遊技者)の接触を検出して、そのタッチ検出信号を発射制御基板47に出力する。また発射ハンドル8は、図示しない発射スイッチを内蔵しており、発射ハンドル8の操作によりオン信号を発射制御基板47に出力する。この発射制御基板47は、上記台間サンドとしてのカードユニット12によって出力されるカードユニット接続信号が払出制御基板25を介して入力されると、遊技球の発射動作を制御する機能を有している。この発射制御基板47は、これらカードユニット接続信号、タッチ検出信号及びオン信号を受け取った状態ではじめて発射モータ49の駆動を許可し、これにより遊技球の発射動作を行わせることができる。
払出制御基板25の払出CPU25aは、いわゆる球ガミ、球切れ、満タンや、メイン制御基板3と払出制御基板25との接続異常などの障害を検出すると、その障害の種類に応じたエラー情報を払出制御基板25に表示する。具体的には、払出制御基板25には7セグメントLED4aが設けられており、この7セグメントLED4aには、例えばそれら各種の障害の種類ごとにエラー番号が数字で表示されるものとなっている。
また、払出制御基板25にはエラー解除手段としての操作スイッチ4bが設けられており、この操作スイッチ4bは外部から操作可能な位置に配置されている。この操作スイッチ4bは、それら各種の障害が発生したとき、各障害への対処方法を音声ガイダンスする際の契機として用いられるとともに、7セグメントLED4aに表示されるエラー情報(数字表示)をクリアする際に操作される操作手段である。
(3.装飾図柄制御基板)
次に、装飾図柄制御基板30について図3を参照して説明する。図3は、装飾図柄制御基板30の電気的な構成を簡素化して図示した一例を示すブロック図である。
装飾図柄制御基板30(演出制御部、表示制御部)は、ソースROM340、第1メインRAM321、第2メインRAM322、グラフィックプロセッサユニット(以下「GPU」という)300及びスケーラ337を備えている。
装飾図柄制御基板30は、サブ制御基板35からの演出表示コマンドなどに基づいて演出表示動作を制御する機能を有する。また、この装飾図柄制御基板30は前述した装飾図柄表示装置16に接続されており、この演出表示コマンドなどに基づいて表示させるべき映像に対応した映像信号を装飾図柄表示装置16に出力する。
ここで本実施形態では、映像が複数のシーン(ストーリー)の組み合わせによって構成されており、各シーンは多数のフレームの組み合わせによって構成されている。これら各シーンは予め決められた順序で連続的に表示されるものである。各シーンは、多数のフレームが次々と表示されることにより視覚的に構成されるものである。各フレームは、ポリゴンなどのコンピュータグラフィックによって構成されている。本実施形態において映像は、例えば1秒間に60枚のフレームを表示することによって構成されている。また映像としては、例えば停電状態から復旧中である旨の映像、図柄の変動表示に関する映像、変動している図柄が所定の停止図柄態様(例えば同種の図柄が3つ揃った表示態様)になるかもしれないことを暗示するいわゆるリーチ演出に関する映像を含んでいる。
ところで、この装飾図柄制御基板30においては、例えばμITRONのようないわゆる組み込み型のリアルタイムオペレーティングシステムが動作している。このオペレーティングシステムでは、いわゆるファイルシステム機能によってデータやプログラムがファイル形式で取り扱われており、表示動作を制御する表示制御プログラムが動作している。このファイルシステム機能は、メモリ空間に記憶しているデータ本体に付したヘッダによっていわゆるファイル形式で、そのデータ本体を管理する機能である。
この表示制御プログラムは、GPU300の補助を受けつつ描画するソフトウェアを総称したものである。この表示制御プログラムとしては、アプリケーションソフトウェア(後述するユーザシステムモジュール及びユーザモジュール)を含んでおり、広義には表示に関するライブラリソフトウェア(以下「ライブラリ」と呼称する)及びドライバソフトウェア(以下「ドライバ」と呼称する)を含んでいてもよい。これらソフトウェアの構成については後述する。
(3−1.ハードウェアの構成例)
以下、この装飾図柄制御基板30に搭載されている各構成について具体的に説明する。
(3−1−1.ソースROM)
ソースROM340は5個のフラッシュROMによって構成されており、各フラッシュROMは1Gビットの記憶容量を有する。ソースROM340は、16ビットのバス線(ランダムアクセス105ns、ページモードアクセス30ns)によってGPU300に接続されている。ソースROM340のメモリ空間については後述する。
(3−1−2.メインRAM)
メインRAM321、322は、各々2個ずつ、合計4個のSDRAM(Synchronous Dynamic Random Access Memory)によって構成されている。各SDRAMは256Mビットの記憶容量を有し、32ビットのバス幅のバス線によってGPU300に接続されている。これら32ビット幅の両バス線の同期クロックは133MHzである。
メインRAM321、322は、プログラムやデータを揮発的に記憶可能となっており、オペレーティングシステム干渉領域及びオペレーティングシステム非干渉領域を有する。
このうちオペレーティングシステム干渉領域は、オペレーティングシステム(のファイルシステム機能)がデータの格納先などをいわゆるファイル形式で管理する記憶領域である。具体的には、オペレーティングシステム干渉領域は、オペレーティングシステム(のファイルシステム機能)の制御によって、例えば各データに付された識別子としてのファイル名を指定すれば、各データを格納したり読み出すことが可能な記憶領域である。
オペレーティングシステム干渉領域は、オペレーティングシステムの支援によって、ファイルシステム機能でテクスチャデータなどを取り扱った場合、この1つのデータを1つのファイルとしていわゆるファイル形式で管理している。このオペレーティングシステム干渉領域は、各テクスチャデータなどに付された識別子(例えばファイル名)を指定すれば、例えばアドレスを意識することなく、各テクスチャデータなどを格納したり読み出すことが容易に可能な記憶領域である。つまり、オペレーティングシステム干渉領域は、データなどの格納や読み出しにあたり、オペレーティングシステムによる制御などの干渉を受ける記憶領域を総称したものであり、オペレーティングシステムが使用する記憶領域となっている。
一方、オペレーティングシステム非干渉領域は、メインRAM321、322のメモリ空間において、オペレーティングシステム(のファイルシステム機能)が関与できない記憶領域であり、例えばアドレス及びデータサイズを直接指定しなければ、直接テクスチャデータなどを格納したり読み出すことが不可能な記憶領域である。具体的には、メインRAM321、322のオペレーティングシステム非干渉領域は、指定された絶対アドレス(転送先アドレス)からデータサイズ(転送データサイズ)にわたりプログラムやデータを格納可能となっている。これらメインRAM321、322のメモリ空間については後述する。
(3−1−3.GPUの構成例)
GPU300は、バスコントローラ306、バス307、外部インタフェース333、DMA(Direct Memory Access)コントローラ384、CPUインタフェース383及び図柄CPU311を含んでいる。またこのGPU300は、ブートROM301、タイマ302、シリアルインタフェース303、I/Oポート304及び周辺インタフェース305を含んでいる。さらに、このGPU300は、バスインタフェース308、バス309、メモリコントローラ315及びVDP(Video Display Processor)330を含んでいる。バス307とバス309とは、バスインタフェース308を経由して接続されている。このGPU300においては、図柄CPU311の動作クロックは266MHzであるが、その他の各ブロック(VDP330など)の動作クロックは133MHzである。
ソースROM340は、外部インタフェース333を介してバス307に接続されており、この外部インタフェース333に対して、16ビットのバス線によって接続されている。このソースROM340は、外部インタフェース333に設定された転送元アドレス及び転送データサイズに従って、この外部インタフェース333によってソースROM340の転送元アドレスから転送データサイズ分にわたり各データが読み出される。
メインRAM321、322は、各々メモリコントローラ315を介してバス309に接続されている。そして、バス309は2系統のバスを備えており、メインRAM321、322はそれぞれ異なる系統のバスに接続されている。従ってメインRAM321、322は、各々メモリコントローラ315の制御によって独立して読み出しや書き込みが可能な構成となっている。これらメインRAM321、322は、各々メモリコントローラ315に設定された転送先アドレス及び転送データサイズに従って、メモリコントローラ315によって転送先アドレスから転送データサイズにわたりデータなどが読み出される。
(3−1−3−1.図柄CPU以外の構成例)
バス307には、外部インタフェース333、DMAコントローラ384、CPUインタフェース383及び周辺インタフェース305が接続されており、これらにおけるデータ転送はバスコントローラ306によって制御されている。
DMAコントローラ384は、指定された転送元アドレス及び転送データサイズに従ってソースROM340からデータなどを読み出し、指定された転送先アドレス及び転送データサイズに従ってメインRAM321、322に読み出したデータを転送するDMA転送を実行する。
周辺インタフェース305には、ブートROM301、タイマ302、シリアルインタフェース303及びI/Oポート304が接続されている。ブートROM301は、ブートプログラムを不揮発的に記憶するメモリである。このブートプログラムは、例えば外部インタフェース333などのハードウェアの初期化処理を実行したり、プログラムローダのロード処理を実行するプログラムである。
タイマ302は、ハードウェアによる計時機能を発揮する。シリアルインタフェース303は、サブ制御基板35からの演出表示コマンドなどをシリアル通信により受信する。このシリアルインタフェース303により受信された演出表示コマンドは、メインRAM321、322のいずれかに設けられたコマンド受信バッファに記憶される。I/Oポート304は外部との信号のやりとりを行うためのポートである。
(3−1−3−2.図柄CPUの構成例)
また、上記バス307には、CPUインタフェース383を介して、表示制御プロセッサとしての図柄CPU311が接続されている。この図柄CPU311は、VDP330とともにGPU300に内蔵されている。
図柄CPU311は、CPUインタフェース383を介して、各ブロックに対して指示を与える。この図柄CPU311は、例えば電源投入時に周辺インタフェース305を介してブートROM301のブートプログラムを起動させると、このブートプログラムが、ソースROM340からプログラムローダをメインRAM321、322にロードする。
そして、メインRAM321、322にロードされたプログラムローダは、表示スケジューラデータ(スケジューラデータ)、オペレーティングシステム、デバイスドライバソフトウェア、ライブラリソフトウェア及びアプリケーションソフトウェアを、各々、メインRAM321、322の予め定められた各領域にロード(転送)する。
またその他にも図柄CPU311は、DMAコントローラ384に対して転送元アドレス、転送先アドレス及び転送データサイズを指定すると、このDMAコントローラ384が、ソースROM340の転送元アドレスから転送データサイズにわたり格納されているデータを、メインRAM321、322のオペレーティングシステム非干渉領域における転送先アドレスから転送データサイズにわたり、そのデータを転送する。
(3−1−4.VDPの構成例)
VDP330は、装飾図柄表示装置16に映像を表示させる機能を有する。このVDP330は、例えばモデリングにより構成した3次元オブジェクトに、模様などのテクスチャをマッピングして構成したポリゴンによるフレームを連続的に表示し、これらフレーム群によって視覚的に映像を構成する機能を有する。この3次元オブジェクトは、モデルデータを用いて表示すべき形状に相当する3次元のモデルを表している。なお、本実施形態では、取り扱うデータ(素材画像データ)として主にテクスチャデータを例示しているが、必要に応じて適宜モデルデータなども挙げつつ説明する。
VDP330は、ジオメトリエンジン(GEC)331、レンダリングコントローラ(RDC)332及びビデオ出力コントローラ(VOC)336を含んでいる。また、レンダリングコントローラ332は、ソートアクセラレータ(SA)334及びレンダリングコントローラ(RC)335を含んでいる。
(3−1−4−1.ジオメトリエンジン)
ジオメトリエンジン331は、図柄CPU311が設定値を書き込み可能なレジスタ(図示せず)を内蔵している。図柄CPU311は、表示スケジューラデータに基づいて描画コマンド群をそのレジスタに書き込むようになっている。するとジオメトリエンジン331は、各レジスタの設定値の書き込みに従って動作する。図柄CPU311が書き込む内容(設定値)としては、描画を制御するコマンド(以下「描画コマンド」と呼称する)の集まりとしての描画コマンド群を例示することができる。以下の説明においては、この描画コマンド群を「GE入力ストリーム(GISデータ)」と呼称する。
ジオメトリエンジン331は、メインRAM321、322に格納されたGE入力ストリーム(GISデータ)及びGEリンクテーブル(GLT)を読み込みながらいわゆるジオメトリ処理を実行する。そして、ジオメトリエンジン331は、そのジオメトリ処理の結果としてのソートアクセラレータ334用のディスプレイリスト(以下「SAリスト」と呼称する)をメインRAM321、322に格納する。なお本実施形態では、GE入力ストリーム(GISデータ)及びGEリンクテーブル(GLT)を「GEリスト」とも呼称する。
このうちGEリンクテーブル(GLT)は、ジオメトリエンジン331がメインRAM321、322からGE入力ストリーム(GISデータ)を読み込むにあたり指定する先頭アドレス及びデータサイズを、GE入力ストリームごとに複数まとめたテーブルデータである。このGE入力ストリーム(GISデータ)は、演算処理を実行するためのパラメータなどを複数まとめたデータである。
ジオメトリエンジン331は、3次元コンピュータグラフィックスにおいて、空間に置かれた立体モデルの座標をスクリーン座標に変換するための計算を実行するジオメトリ処理を実行する専用のハードウェアである。具体的には、ジオメトリエンジン331は、まず、物体を構成するポリゴンの座標データであるモデリング座標系を、視点を原点にした視点座標系に変換する。そしてジオメトリエンジン331は、遠近法などの効果や前面の物体に隠れる部分などを計算して投影変換を実行し、最後に、表示される画面に合わせたスクリーン座標系に変換する。ジオメトリエンジン331は、以上のような処理を終了すると、割込み信号を送信する。この図柄CPU311は、この割り込み信号を受け取ると終了割り込み処理に入り、この終了割り込み処理においてレンダリングコントローラ332のレジスタに設定値を書き込む。
(3−1−4−2.レンダリングコントローラ)
レンダリングコントローラ332は、図柄CPU311がレジスタに書き込むと、その書き込まれた設定値に従って動作する。レンダリングコントローラ332は、3次元物体を2次元上に表現する場合その物体に陰影付けをして3次元に見えるようにするいわゆるレンダリング処理を実行する専用ハードウェアである。
このレンダリングコントローラ332は、描画コマンドレジスタ(図示せず)、ソートアクセラレータ334及びレンダリングコントローラ335を有する。これらソートアクセラレータ334及びレンダリングコントローラ335は、各々描画コマンドレジスタに図柄CPU311から描画コマンドなどの書き込みがあると、その書き込まれた描画コマンドなどに従って動作する。
図柄CPU311が描画コマンドレジスタに書き込む内容としては、メインRAM321、322から読み出した前述のSAリスト(例えば頂点演算コマンド及び描画コマンドを含む)及びレンダリングコントローラ335用のディスプレイリスト(以下「RCリスト」と呼称する)を例示することができる。このうちソートアクセラレータ334は、描画コマンドレジスタに書き込まれたSAリストに従ってRCリストを生成し、メインRAM321、322に格納する。
レンダリングコントローラ335は、描画コマンドレジスタに書き込まれた描画コマンド、SAリスト及びRCリストに従ってテクスチャデータを読み込み、ポリゴンなどの描画に用いるピクセルデータを生成する。このピクセルデータは1つのフレームの描画に用いる描画データである。レンダリングコントローラ335は、生成したピクセルデータをメインRAM321、322のフレームバッファエリアに転送する。レンダリングコントローラ335は、以上のような処理を終了すると、図柄CPU311に対して割込み信号を送信する。この図柄CPU311は、この割り込み信号を受け取ると終了割り込み処理に入り、この終了割り込み処理においてビデオ出力コントローラ336のレジスタに設定値を書き込む。
(3−1−4−3.ビデオ出力コントローラ)
ビデオ出力コントローラ336は、図柄CPU311がレジスタ(図示せず)に書き込むと、その書き込まれた内容(設定値)に従って動作する。ビデオ出力コントローラ336は、装飾図柄表示装置16への同期信号(Vブランク信号など)を生成するとともに、この同期信号に同期させつつ、メインRAM321、322のフレームバッファエリアに生成されたピクセルデータを映像信号に変換してスケーラ337に対して出力する。このスケーラ337は、ビデオ出力コントローラ336が出力した映像信号に基づく映像の表示範囲を変更し、変更後の表示範囲に基づく映像信号を装飾図柄表示装置16に出力している。
(3−2.ソースROMのメモリ空間)
次に、上述したソースROM340のメモリ空間に関して説明する。
(3−2−1.データの種類)
ソースROM340は、ポリゴンのような映像の骨組みを表す形状の表示に用いるモデルデータ(素材画像データ)、その骨組みの形状に貼り付けるテクスチャの表示に用いるテクスチャデータ(素材画像データ)、パレットデータ(素材画像データ)及び表示スケジューラデータ(スケジューラデータ)の他にも、上記アプリケーションソフトウェア(表示制御プログラム)、ライブラリソフトウェア(表示制御プログラム)、ドライバソフトウェア(表示制御プログラム)、オペレーティングシステム及びロードプログラムを不揮発的に記憶している。このうち本実施形態においては、モデルデータ、テクスチャデータ及びパレットデータなど映像の表示に用いるデータを各々「リソース」と呼称するとともに、これらを互いに識別する識別子として「リソース番号(データ識別子)」を付して管理しているものとする。また本実施形態では、例えば5319個のテクスチャデータ(及びモデルデータなど)を使用するとともに、例えば300個のパレットデータを使用するものと例示する。
このうちテクスチャデータは、データ本体及び原始ヘッダ情報を含む原始テクスチャデータのうちのデータ本体を示している。つまりテクスチャデータは、原始テクスチャデータから原始ヘッダ情報を削除したデータ本体を表している。この原始ヘッダ情報は、データ本体を管理するための情報を含んでいる。なお、モデルデータなども、同様にデータ本体及び原始ヘッダ情報を含む原始モデルデータのうちのデータ本体を示している。
また、上記表示スケジューラデータは、アプリケーションソフトウェアなどが映像の表示を制御するために参照するデータであり、例えば表示すべき映像を構成するシーンの組み合わせや各シーンの表示順序等の表示すべき映像の構成に関する情報、表示すべき映像を構成する各シーンの描画に必要なモデルデータ及びテクスチャデータ等の素材画像データを特定するための情報を含んでいる。この表示スケジューラデータは、さらに各フレームを構成するレイヤー(ウィンドウ)に配置すべきポリゴンの座標及び、例えば4枚のレイヤー同士を重ね合わせる場合の優先順位などの情報を含んでいる。この表示スケジューラデータは、アプリケーションソフトウェアによって各シーンの表示にあたり参照されるデータである。
(3−2−2.メモリマップ)
図4は、ソースROM340のメモリ空間の構成例を示すメモリマップである。
ソースROM340は、上記で説明したオペレーティングシステム(OS)400を格納する領域、アプリケーションソフトウェア、ライブラリソフトウェア及びデバイスドライバソフトウェア等の表示制御プログラム402を格納する領域、OSの定数データ401を格納する領域、表示制御プログラムの定数データ403を格納する領域を有する。定数データとは、OS400や表示制御プログラム402が動作する際に使用される固定値のデータである。
また、ソースROM340は、映像の表示に必要なテクスチャデータ群TDGと、これらテクスチャデータ群TDGに関するヘッダ管理情報HTJと、表示スケジューラデータHSDを格納する領域を有する。このテクスチャデータ群TDGには、複数のテクスチャデータTDが含まれている。
さらに、ソースROM340は、OSのサム値420、OSの定数データのサム値421、表示制御プログラムのサム値422、表示制御プログラムの定数データのサム値423を格納する領域を有する。
OSのサム値420は、ソースROM340に格納されているOS400のサム値を演算した値である。また、OSの定数データのサム値421は、ソースROM340に格納されているOSの定数データ401のサム値を演算した値である。また、表示制御プログラムのサム値422は、ソースROM340に格納されている表示制御プログラム402のサム値を演算した値である。さらに、表示制御プログラムの定数データのサム値423は、ソースROM340に格納されている表示制御プログラムの定数データ403のサム値を演算した値である。
なお、図4では、表示制御プログラム402を1つのプログラムとして説明しているが、上述したように表示制御プログラム402は、アプリケーションソフトウェア、ライブラリソフトウェア及びデバイスドライバソフトウェア等から構成されている。そして、表示制御プログラムのサム値422は、この3つのソフトウェアからなる表示制御プログラムをひとまとめにして演算することにより得られるサム値となっている。
次に、図4中のヘッダ管理情報HTJとテクスチャデータ群TDGの具体的な構成を図5に示す。なお、図5中の星、丸、三角等の図形は、説明を簡単にするためにテクスチャデータTDを模式的に示したものである。
図4におけるテクスチャデータTDは、例えばいわゆるビットマップデータのように原始ヘッダ情報GHJがデータ本体に付されてなる原始素材画像データのうち、データ本体のみを抽出した素材画像データの一種である。この原始ヘッダ情報GHJは、このデータ本体を個々に区別するために付された識別子としてのリソース番号、このデータ本体のデータサイズ、データ種別フラグ、幅、高さ及びパレットに関する情報を含んでいる。なお、このリソース番号は、各テクスチャデータTDなどや、各ピクセルに用いるパレットに関する情報としてのパレットデータに、各々付された識別番号である。このパレットデータは、例えばフレームの各ピクセルについての色などに関する情報を含んでいる。またデータ種別フラグは、データ本体がテクスチャデータ、モデルデータ、或いはパレットデータなどのいずれかであるのかに関するデータの種類を表している。また幅及び高さは、各々このテクスチャを表示した場合における表示上の幅及び高さを表している。
一方、ヘッダ管理情報HTJは、この原始ヘッダ情報のうち所望の一部の情報のみを抽出した情報を表している。具体的には、このヘッダ管理情報HTJは、所定のツールソフトウェアによって、予め、例えば原始テクスチャデータの原始ヘッダ情報から生成されたデータである。その中身としてのヘッダ管理情報HTJは、上記ヘッダ情報からリソース番号、各テクスチャデータTDのデータサイズ及び、各ピクセルに用いるパレットに関する情報を抽出して含めた情報に、グループID(群識別子)を付加したものである。
このグループIDは、複数群のテクスチャデータ群TDGに含まれる各テクスチャデータ群TDGを各々識別するためのデータ群の識別子である。本実施形態では、図6に示すように、例えば19個のテクスチャデータ群TDGが準備されている。これに応じて、グループIDとして、例えば後述する常駐エリア(常駐領域)に展開すべき常駐テクスチャデータ群TDGには「0」が割り当てられており、非常駐エリア(非常駐領域)に展開すべき非常駐テクスチャデータ群TDGには「1」〜「18」のいずれかが割り当てられている。なお、ヘッダ管理情報HTJは、常駐させるか或いは非常駐とするかを問わず、すべてのテクスチャデータ及びパレットデータなどについて各々用意されている。
図6では、各テクスチャデータ群TDGに含まれる各テクスチャデータTDの数を例示している。本実施形態では、メインRAM321、322のメモリ容量を大きくしたくない要求があるため、これら全てのテクスチャデータTDなどをグループ単位で分割してテクスチャデータ群TDGとしてソースROM340からメインRAM321、322に分割転送している。また本実施形態では、グループID=「0」に対応する常駐テクスチャデータ群TDGには、例えば1449個のテクスチャデータTDが含まれている。
一方、本実施形態ではグループID=「1」〜「18」に対応する非常駐テクスチャデータ群TDGには、各々、例えば219個、252個、93個、51個、217個、171個、153個、366個、435個、390個、236個、156個、201個、351個、313個、63個、489個及び14個のテクスチャデータTDが含まれている。
次に、標準的なフォーマットであるビットマップデータを原始素材画像データとして用いてヘッダ管理情報HJTを生成する場合の具体例について説明する。
先ず、標準的なビットマップデータの構成を図7を参照して説明する。ビットマップデータ60は、図7に示されるように、ヘッダ情報61と、パレット情報62と、画像データ63とから構成されている。ただし、パレット情報62は、データ形式によっては存在しない場合もある。
そして、ヘッダ情報61は、ファイルヘッダ(BITMAPFILE HEADER)64と、情報ヘッダ(BITMAPINFO HEADER)65とから構成されている。
さらに、ファイルヘッダ64は、ファイルタイプ(BfType)66(2バイト)と、ファイルサイズ(BfSize)67(4バイト)と、空き領域(BfReserved1,BfReserved2)68、69(それぞれ2バイト)と、オフセット情報(BfOffBits)70(4バイト)とから構成されている。つまり、ファイルヘッダ64は、14バイトのデータにより構成されている。
また、情報ヘッダ65は、情報ヘッダのサイズ(biSize)71(4バイト)、画像の幅(biWidth)72(4バイト)、画像の高さ(biHeight)73(4バイト)、カラープレーン数(biPlanes)74(2バイト)、各画素のビット数(biBitCount)75(2バイト)、圧縮タイプ(biCopmression)76(4バイト)、イメージサイズ(biSizeImage)77(4バイト)、水平解像度(biXPixPerMeter)78(4バイト)、垂直解像度(biYPixPerMeter)79(4バイト)、カラーインデックス個数(biClrUsed)80(4バイト)、重要なカラーインデックス個数(biClrImportant)81(4バイト)の情報により構成されている。つまり、情報ヘッダ65は、40バイトのデータにより構成されている。
ファイルタイプ66には、ビットマップデータであることを示す識別子が格納される。また、ファイルサイズ67には、ビットマップデータの全バイト数が格納される。オフセット情報70には、ファイルの先頭から画像情報までのオフセット値の情報が格納される。
情報ヘッダのサイズ71には、情報ヘッダ65のデータ量が格納される。画像の幅69、画像の高さ70は、画像データ63によって現される画像の幅および高さを示す情報である。また、カラープレーン数74は、画像の奥行き枚数を示していて、通常は奥行きの無い画像であるため1となる。各画素のビット数75は、ピクセルあたりのビット数を示している。イメージサイズ77は、イメージデータのバイト数を示している。水平解像度78は、画像の幅1mあたりのピクセル数を示す情報であり、垂直解像度79は、画像の高さ1mあたりのピクセル数を示す情報である。カラーインデックス個数80は、実際に使用されているパレットの数を示す情報である。さらに、重要なカラーインデックス個数81は、実際に使用されているパレットのうち重要なパレットの個数を示す情報である。
図7に示したビットマップデータ60においては、ヘッダ情報61と、パレット情報62とが原始ヘッダ情報GHJに相当する。上述したようにファイルヘッダ64は14バイトであり、情報ヘッダ65は40バイトであるため、ヘッダ情報61のデータ量は54バイトとなっている。
この図7に示したようなビットマップデータ60に基づいて生成したヘッダ管理情報HTJの一例を図8に示す。
このヘッダ管理情報HTJでは、1つのテクスチャデータ分のヘッダ管理情報が、データタイプ82(1バイト)、グループID83(1バイト)、格納フォーマット84(2バイト)、格納場所85(4バイト)、データサイズ86(4バイト)、参照パレット87(4バイト)、画像の幅88(2バイト)、画像の高さ89(2バイト)、画面上での表示位置(X座標)90(2バイト)、画面上での表示位置(Y座標)91(2バイト)、表示位置オフセット(横方向)92(2バイト)、表示位置オフセット(高さ方向)93(2バイト)、パディングデータ94(4バイト)の情報により構成されている。つまり、1つのテクスチャデータ分のヘッダ管理情報HTJは、32バイトのデータにより構成されている。
データタイプ82は、テクスチャデータ、パレットデータ等のデータの種類を示す情報を格納している。グループID83は、上述したように、テクスチャデータ群TDGを各々識別するための識別子である。格納フォーマット84は、当該データが圧縮されたデータなのか非圧縮のデータなのかを示している。格納場所85は、テクスチャデータ群TDGの中において当該データが格納されている場所、つまりテクスチャデータ群TDGの先頭からのオフセット値を格納している。データサイズ86は、テクスチャデータTDのデータサイズを示している。また、参照パレット87は、参照するパレットデータのリソース番号を示している。また、画像の幅88、画像の高さ89は、それぞれ、画像データの幅と高さをドット数により示している。
さらに、画面上での表示位置(X座標)90、画面上での表示位置(Y座標)91は、それぞれ、画面左上を原点とした場合における、テクスチャデータを画面に表示すべき位置の画面上のX座標、Y座標を現している。表示位置オフセット(横方向)92、表示位置オフセット(高さ方向)93は、画面上での表示位置(X座標)90、画面上での表示位置(Y座標)91により指定された画面上の位置にテクスチャデータを表示する際に、横方向、高さ方向にどれだけ位置をオフセットさせるかを指定するための情報である。パディングデータ94は、ヘッダ管理情報HTJの1つのテクスチャデータ分のデータ量を32バイトにして管理し易くするためのダミーデータである。
図7に示した標準のビットマップデータのヘッダ情報61の一部の情報を抽出して予め定められた順序で並び替えることにより、図8に示すようなヘッダ管理情報HTJが構成される。ここで、予め定められた順序として、アプリケーションソフトウェア114の処理手順に合わせた順序、つまりアプリケーションソフトウェア114による処理が効率化されるような順序を用いる。
具体的には、図7に示した標準のビットマップデータ60中における、イメージサイズ77、画像の幅72、画像の高さ73を抽出して、図8に示すヘッダ管理情報HTJ中のデータサイズ86、画像の幅88、画像の高さ89が構成される。また、図7に示した標準のビットマップデータ60中におけるパレット情報62に基づいて、図7に示すヘッダ管理情報HTJ中の参照パレット87が構成される。つまり、図7に示した標準のビットマップデータ60から、イメージサイズ77、画像の幅72、画像の高さ73、パレット情報62を少なくとも抽出すれば、図7に示すヘッダ管理情報HTJを構成することが可能である。
標準のビットマップデータのヘッダ情報61は54バイトであるため、ヘッダ情報61とパレット情報62を加えたデータ容量は54バイト以上のデータ量となる。しかし、図8に示したようなヘッダ管理情報HTJでは、1つのテクスチャデータあたりのヘッダ管理情報のデータ量は32バイト以下となっている。
つまり、標準のビットマップデータのヘッダ情報61、パレット情報62から必要となる一部の情報のみを抽出して予め定められた特定の順序で並び替えてヘッダ管理情報HTJを構成することにより、標準のビットマップデータのヘッダ情報61、パレット情報62をそのままヘッダ管理情報HTJとして使用した場合と比較して、ヘッダ管理情報HTJのデータ量を削減することができることがわかる。図8に示した一例では、ヘッダ管理情報HTJ中における1つのテクスチャデータあたりのデータ量を32バイト以下に抑えられている。
(3−3.メインRAMのメモリマップ)
図9は、メインRAM321、322のメモリ空間の構成例を示すメモリマップである。
メインRAM321、322は、そのメモリ空間として、各々オペレーティングシステムエリアOSE、リストエリアLSTE、第1非常駐エリア(非常駐領域)HJE1(HJE)、フレームバッファエリアFBE、常駐エリア(常駐領域)JE及び第2非常駐エリア(非常駐領域)HJE2(HJE)を含んでいる。なお本実施形態では、第1非常駐エリアHJE1と第2非常駐エリアHJE2とを特に区別する必要がない場合には、これらを総称して「非常駐エリアHJE」と呼称するものとする。
このうちオペレーティングシステムエリアOSEは、ブート時にオペレーティングシステムがロードされる領域である。リストエリアLSTEは、GPU300が使用する前述した各リスト(リストデータ)を格納する領域である。フレームバッファエリアFBEは、GPU300がテクスチャデータTDなどに基づいて、フレームの描画のために生成したピクセルデータを格納する領域である。
このフレームバッファエリアFBEは、例えば2つの領域に分かれており、GPU300によって一方のフレームバッファエリアFBEにピクセルデータが生成されている間に、GPU300によって他方のフレームバッファエリアFBEから、生成済みのピクセルデータが描画のために出力されるようになっている。
また常駐エリアJEは、複数群のテクスチャデータ群TDGのうち使用頻度の高いテクスチャデータ群TDG(以下「常駐テクスチャデータ群TDG」と呼称する)を恒常的に記憶可能な記憶領域である。一方、非常駐エリアHJEは、複数群のテクスチャデータ群TDGのうち常駐テクスチャデータ群TDG以外の他のテクスチャデータ群TDG(以下「非常駐テクスチャデータ群TDG」と呼称する)を一時的に記憶可能な記憶領域である。この非常駐エリアHJEは、例えば第1非常駐エリアHJE1がRAM321のメモリ空間に形成されており、第2非常駐エリアHJE2がRAM322のメモリ空間に形成されている。
(4.ソフトウェアの構成例)
装飾図柄制御基板30に関するハードウェアの構成例については以上のようであり、次に装飾図柄制御基板30において動作するソフトウェアの構成例について説明する。
図10は、装飾図柄制御基板30上において動作するソフトウェアを階層的に表した図である。
(4−1.オペレーティングシステム)
装飾図柄制御基板30においてはオペレーティングシステム111が動作しており、このオペレーティングシステム111上においては各種のソフトウェアが動作している。具体的には、オペレーティングシステム111上においては、主としてデバイスドライバソフトウェア112(デバイスドライバ)、ライブラリソフトウェア113(ライブラリ)及びアプリケーションソフトウェア114(アプリケーション)が動作しており、上位側ソフトウェアとしてのアプリケーション114が映像の表示にあたり、下位側ソフトウェアとしてのライブラリ113を利用してデバイスドライバ112を制御している。
このうちデバイスドライバ112は、GPU300に接続されているデバイスを制御するためのドライバソフトウェアであり、例えば周辺機器ドライバ112a、外部メモリドライバ112b及びGDC(Graphic Display Controller)ドライバ112cが用意されている。また、ライブラリ113としては、ムービライブラリ113a及びグラフィックライブラリ113bが用意されている。さらに、アプリケーション114としては、ユーザシステムモジュール114a及びユーザモジュール114bが用意されている。
ここで、装飾図柄制御基板30においてオペレーティングシステム111を動作させているのは、次のような理由によるものである。まず近年、コンピュータグラフィック(以下「CG」と呼称する)の作成ソフトウェアがコンピュータのオペレーティングシステムに提供されており、CG技術者が、コンピュータのオペレーティングシステム上で動作するCG作成ソフトウェアを用いてCGアニメーションを作成しやすい環境が整っている。一般的にオペレーティングシステム上で動作するソフトウェアは、ハードウェアに依存する専用ソフトウェアに比べて開発が容易であり、近年、このようなオペレーティングシステム上で動作するCGライブラリソフトウェア(以下「ライブラリ」と呼称する)などが多数提供されている。
本実施形態では、装飾図柄制御基板30にオペレーティングシステム111を搭載しておき、アプリケーション114は、CG技術者が豊富に提供されているライブラリを利用して作成した多数のCGアニメーションを利用して、映像を表示する形態を採用している。
(4−2.デバイスドライバ)
上述したように、デバイスドライバ112は、例えば、周辺機器ドライバ112a、外部メモリドライバ112b及びGDCドライバ112cが用意されている。
周辺機器ドライバ112aは、周辺インタフェース305に接続されたタイマ302、シリアルインタフェース303及びI/Oポート304などの周辺機器を制御するためのドライバソフトウェアである。外部メモリドライバ112bは、外部インタフェース333に接続されたソースROM340からのテクスチャデータTDなどの読み出しを制御するためのドライバソフトウェアである。
GDCドライバ112cは、GPU300によるグラフィックス機能を利用するために用意されたドライバソフトウェアである。具体的には、GDCドライバ112cは、上位側ソフトウェアであるアプリケーション114のうち、主としてユーザモジュール114bやグラフィックライブラリ113bによって利用されるドライバソフトウェアである。このGDCドライバ112cは、上記ジオメトリエンジン331、レンダリングコントローラ332及びビデオ出力コントローラ336の各処理を、各々、ジオメトリタスク、レンダリングタスク及びビデオ出力タスクにて実行している。
(4−3.ライブラリ)
上述したように、ライブラリ113としては、ムービライブラリ113a及びグラフィックライブラリ113bが用意されている。
ムービライブラリ113aは、動画像データを用いて動画像を再生するためのライブラリソフトウェアである。一方、グラフィックライブラリ113bは、ユーザモジュール114bが映像の表示にあたり利用するライブラリソフトウェアであり、ユーザモジュール114bの指定に応じて描画処理を実行する。
このグラフィックライブラリ113bは、GPU300のVDP330に含まれるジオメトリエンジン331、レンダリングコントローラ335及びビデオ出力コントローラ336の補助を受けつつ、グラフィック機能を発揮させるためのライブラリソフトウェアである。このグラフィックライブラリ113bは、モデルデータを用いて表示すべき形状の骨格に相当する3次元オブジェクトをモデリングするとともに、テクスチャデータを用いてこのオブジェクトにテクスチャ(模様など)をマッピングして、いわゆる3次元グラフィックスによってフレームを作成することで映像を表示する機能を有する。
(4−4.アプリケーション)
上述したように、アプリケーション114としては、ユーザシステムモジュール114a及びユーザモジュール114bが用意されている。これらユーザシステムモジュール114a及びユーザモジュール114bは、Vブランク信号を受け取ると、定常処理を実行している。なおこのVブランク信号は、ビデオ出力コントローラ336が出力する信号である。
(4−4−1.ユーザシステムモジュール)
このうちユーザシステムモジュール114aは、パチンコ機の種類が違うものであっても共通の処理を実行するものであり、その定常処理において、例えばコマンド受信処理、スケーラ制御処理及びウォッチドッグタイマ(WDT)のクリア処理などを含む周辺機器の制御処理、図柄などの整合性判定処理、ノイズ対策処理、状態遷移処理及びテストコマンド処理を実行する。
(4−4−2.ユーザモジュール)
一方、ユーザモジュール114bは、パチンコ機の種類に応じて異なる処理を実行するものであり、その定常処理において、例えば停電状態からの復旧時の表示に関する制御処理、図柄の変動表示に関する制御処理、アニメーションの表示に関する制御処理、動画像の表示に関する制御処理を実行する。
このユーザモジュール114bの詳細な機能については後述する。なお、これらユーザシステムモジュール114a及びユーザモジュール114bが実行する各処理は、一例として便宜上振り分けたものであり、必要に応じて適宜様々に振り分けることができる。
(5.装飾図柄制御基板などの動作例)
装飾図柄制御基板30を搭載するパチンコ機1は以上のような構成であり、次にユーザシステムモジュール114a及びユーザモジュール114bなどの動作により演出表示処理が実行される様子について説明する。以下、本実施形態では、リセット処理、常駐エリアへの転送処理、リセット時ハンドラ生成処理、蓄積されていた演出表示コマンドの解析・実行処理、遊技制御処理、非常駐テクスチャデータ群TDGの転送タイミング、非常駐エリアへの転送処理、非常駐テクスチャデータ群TDGの上書き処理、通常時ハンドラ生成処理、不要なハンドラの消去処理、上書きリフレッシュ処理、制御データと非制御データの区分け、OS、表示制御プログラム等の整合性チェック処理及び表示処理の順に説明する。まず最初に、リセット処理について説明する。
(5−1.リセット処理)
このリセットスタート処理(リセット処理)では、例えば電源投入後或いは、稼働中に瞬間的な停電状態が生じた後、復旧した際に実行される処理である。
図11は、装飾図柄制御基板30におけるリセット処理の基本的な処理手順の一例を示すフローチャートである。このリセット処理は、装飾図柄制御基板30がリセットされた或いは新規に電源投入された場合、或いは稼働中に瞬間的な停電状態が生じた場合に、順次実行される処理例を表している。
(5−1−1.ハードウェアに関する初期化処理)
このハードウェアに関する初期化処理では、ハードウェアの最小限度の初期化を実行するものとし、まず、図柄CPU311について初期化処理が実行される(ステップS10)。この図柄CPU311についての初期化処理では、図柄CPU311の割込み処理に関する設定がされる。
次に、このハードウェアに関する初期化処理では、外部インタフェース333(例えばPCIバス)について初期化処理が実行され(ステップS20)、さらにメモリコントローラ315について初期化処理が実行される(ステップS30)。以上のようにハードウェアの初期化処理がなされる。
(5−1−2.OSなどのブート処理)
次にブート処理が実行される。このブート処理では、以上のようにバスやポートなど最低限度の初期化を行った後、ブートROM301のブートプログラムを実行する。このブートプログラムは、ソースROM340のスタートアッププログラムをメインRAM321、322上にロードし実行する。
このメインRAM321、322上のスタートアッププログラムに含まれるプログラムローダは、ソースROM340からオペレーティングシステム111を、メインRAM321、322に転送する(ステップS40)。さらにプログラムローダは、ソースROM340からユーザシステムモジュール114a及びユーザモジュール114bなどを各々読み出すとともに、メインRAM321、322のオペレーティングシステム干渉領域に転送する(ステップS40)。
このプログラムローダが、これらプログラムを各々転送した後、オペレーティングシステム111のプログラムコードが順次実行され、オペレーティングシステム111が起動する(ステップS50)。なお本実施形態では、リセット後、オペレーティングシステム111に関しては全て最初からロードさせ、初期状態から起動させる。つまり、オペレーティングシステム111は、毎回、全て最初からロードされ、初期状態から動作することとなる。
その後、オペレーティングシステム111がユーザシステムモジュール114a及びユーザモジュール114bを起動する(ステップS60)。本実施形態では、これら実行した各プログラムに各々タスクが対応しており、例えばユーザシステムモジュール114a及びユーザモジュール114bに対応してメインタスクが割り当てられている。なお、このメインタスクは、内部的に、これらユーザシステムモジュール114a及びユーザモジュール114bに応じて各々タスクを分けて管理されている。
そして、ユーザシステムモジュール114a及びユーザモジュール114bが起動された後、シリアルインタフェース303、VDP330等の初期化(ステップS70)、ホット・コールド判定処理(ステップS80)、常駐エリアへの転送処理(ステップS90)、リセット時ハンドラ生成処理(S100)等の処理が行われる。なお、このステップS70〜S100の各処理については、その詳細を後述する。
(5−1−3.ユーザシステムモジュール114aによる初期設定処理)
図11のステップS70に示されたように、装飾図柄制御基板30において、ユーザシステムモジュール114aは、オペレーティングシステム111により起動された後、GPU300における各種初期設定処理を実行する。具体的には、ユーザシステムモジュール114aは、サブ制御基板35からの演出表示コマンドなどをシリアル通信により受信するための通信用ポートとして機能するシリアルインタフェース303の初期化や、VDP330の初期化処理等を行う。つまり、ユーザシステムモジュール114aは、リセット処理が実行された際に、ソースROM340からメインRAM321、322にテクスチャデータ群等のデータを転送する前の早期にシリアルインタフェース303の初期化を行う(早期通信用ポート初期化手段)。このシリアルインタフェース303は、初期化されることによりサブ制御基板35からの演出表示コマンド等の受信が可能となり、これ以降シリアルインタフェース303は、サブ制御基板35からの演出表示コマンドなどを受信すると、受信した演出表示コマンド等の演出動作に関する指示コマンドをコマンド受信バッファに蓄積する(蓄積手段)。なお、シリアルインタフェース303の初期化処理には、蓄積手段の立ち上げも含まれる。
なお、メイン制御基板3は、ユーザシステムモジュール114aによる表示制御基板35に設けたシリアルインタフェース303の初期化が完了するまで、演出動作に関する指示コマンドである演出コマンドのサブ制御基板35への送信を待機する(コマンド送信待機手段)。
また、本実施形態では、サブ制御基板35からの演出表示コマンドをシリアルインタフェース303を用いたシリアル通信により受信する場合を用いて説明しているが、I/Oポート304を用いてパラレル通信によりサブ制御基板35からの演出表示コマンドを受信するようにしてもよい。この場合にも、I/Oポート304を入力ポートに設定するか出力ポートに設定するかを選択するような初期化が必要となる。
(5−1−4.ホット・コールド判定処理)
図11のステップS80に示されたように、このユーザシステムモジュール114aは、上記で説明したような各種初期設定を実行した後、次のようなホット・コールド判定処理を実行する。
図12は、ホット・コールド判定処理の手順の一例を示すフローチャートである。このホット・コールド判定処理では、ユーザモジュール114bが停電状態から復旧したときに(復電時に)、後述するコールドスタートするべきであるか、或いは、後述するホットスタートすべきであるかを判定している。
まず、このようなホット・コールド判定処理を実行するのは、復電時に、メインRAM321、322のバックアップ対象のメモリ空間(以下「バックアップ対象領域」と呼称する)のバックアップデータが信頼できる状態であった場合には、そのバックアップ対象領域を含むメインRAM321、322のメモリ空間全体に記憶されているデータを信頼できる(例えばデータの欠落など不具合がない)ものと推定し、そのメモリ空間のデータを継続的に利用することで、復電時に、例えば常駐エリアにおいて信頼できるメモリ空間にあるテクスチャデータTDなどをそのまま利用することができるためである(以下「ホットスタート」と呼称する)。このようにすると、ホットスタートの場合、ホットスタート以外でスタートした場合(後述するコールドスタート)よりも復電後の映像の表示を早くすることができる。
以下、ホット・コールド判定処理について具体的に説明する。本実施形態では、ユーザモジュール114bが、ソースROM340からメインRAM321、322に転送したデータのうち、バックアップ対象領域におけるデータを「バックアップデータ」と呼称している。ユーザモジュール114bは、メインRAM321、322のバックアップ対象領域のデータに関してサム値を演算する機能を有する。なお本実施形態では、メインRAM321、322のバックアップ対象領域は、常駐エリアJEの一部を構成しているものとする。
本実施形態では、ユーザモジュール114bが、例えば転送前にバックアップ対象領域のデータについて演算されたサム値を保持している。本実施形態では、このように保持しているサム値を「既定のサム値」と呼称する。
このホット・コールド判定処理では、まずメインRAM321、322のバックアップ対象領域に現存しているデータに関してサム値を演算し、サム判定を実行する(ステップS81)。ここで本実施形態では、対象とすべきデータに関してサム値を演算することを「サム判定」と呼称する。次にユーザモジュール114bは、メインRAM321、322のバックアップ対象領域に現存するデータから演算したサム値と、既定のサム値とを比較し、両サム値が一致しているか否かを判断して両サム値の整合性を確認する(ステップS82)。このようにユーザモジュール114bは、復電時に、メインRAM321、322の特定領域(上記バックアップ対象領域に相当)に残存しているバックアップデータが正常であるか否かを確認している(確認手段)。
そのようなサム判定の結果、これら両サム値が一致しておりメインRAM321、322のバックアップ対象領域のデータが信頼できる場合、ユーザモジュール114bは、起動モードを「ホットスタート」に設定し(ステップS83)、動作を開始する(本実施形態では「ホットスタート」と呼称している)。併せてユーザモジュール114bは、メインRAM321、322のメモリ空間のうち、バックアップ対象領域を0クリアする(ステップS84)。なお「0クリア」とは、対象とする記憶領域に「0」を埋め尽くすことで初期化することをいう。一方、そのサム判定の結果、これら両サム値が一致せずバックアップ対象領域のデータが信頼できない場合、ユーザモジュール114bは、メインRAM321、322の記憶領域のうち、バックアップ対象領域のみならずその他全ての記憶領域(バックアップ非対象領域)についても0クリアして初期化する(ステップS85)。つまりユーザモジュール114bは、メインRAM321、322のバックアップ対象領域に残存しているバックアップデータが正常ではない場合、ソースROM340において対応する転送元のデータをメインRAM321、322のオペレーティングシステム非干渉領域に転送させている(転送指示手段)。
そしてユーザモジュール114bは、起動モードを「コールドスタート」に設定し(ステップS86)、例えば常駐エリアJEに転送すべきデータに関して全て最初から再転送を開始する。本実施形態では、復電時に、ユーザモジュール114bがこのように全て最初からデータを転送して動作を開始することを「コールドスタート」と呼称している。
(5−2.常駐エリアへの転送処理)
次に、図11のステップS90に示された常駐エリアへの転送処理を図13、図14を参照して説明する。図13は、常駐エリアJEへの転送処理などの一例を示すフローチャートを表しており、図14は、メインRAM321、322に転送されたヘッダ管理情報HTJ及びテクスチャデータ群TDGの展開例を示す図である。図13に示す常駐エリアJEへの転送処理は、ユーザモジュール114bが常駐テクスチャデータ群TDGをソースROM340からメインRAM321、322の常駐エリアJEに転送する処理である。
先ず、ユーザモジュール114b(ヘッダ管理情報転送手段)は、初期化時に、ヘッダ管理情報HTJをソースROM340からメインRAM321、322に転送しておく(ステップS101)。
そして、ユーザモジュール114bは、上記のホット・コールド判定処理において、起動モードがコールドスタートに設定されたか否かを判定する(ステップS102)。ステップS102において起動モードがコールドスタートに設定されたと判定された場合、ユーザモジュール114bは、常駐テクスチャデータ群TDG等のデータをソースROM340からメインRAM321、322に転送する処理を行う(ステップS103)。
なお、上述したように常駐テクスチャデータ群TDGはグループIDとして「0」が設定されているため、ユーザモジュール114bは、複数群のテクスチャデータ群TDGのうち、例えばグループID(群識別子)として指定された「0」に対応するテクスチャデータ群TDGを一括して、ソースROM340からメインRAM321、322に転送する(一括転送手段)。
具体的には、ユーザモジュール114bは、グループID=「0」に対応するテクスチャデータ群TDG(「常駐テクスチャデータ群TDG」と呼称する)について、ソースROM340における格納位置を示す転送元アドレスを指定するとともに、この常駐テクスチャデータ群TDGの転送データサイズを指定する。さらにユーザモジュール114bは、この常駐テクスチャデータ群TDGについて、メインRAM321、322の常駐エリアJEにおける格納位置(転送先アドレス)を指定する。このように転送元アドレスなどを指定すると、ユーザモジュール114bは、コールドスタート時に、ソースROM340からメインRAM321、322のオペレーティングシステム非干渉領域のうち常駐エリアJEに、グループID=「0」に対応する常駐テクスチャデータ群TDGを転送する。
最後に、ユーザモジュール114bは、表示スケジューラデータHSDをソースROM340からメインRAM321、322に転送する(スケジューラデータ転送手段)。また、ユーザモジュール114bは、表示スケジューラデータHSD以外の他の常駐データについての転送処理も行う(ステップS104)。
つまり、ユーザモジュール114bは、上記のホット・コールド判定処理において起動モードが「コールドスタート」または「ホットスタート」のいずれに設定された場合でも、常に、表示スケジューラデータHSDをソースROM340からメインRAM321、322に転送する。つまり、ユーザモジュール114bは、停電状態から復旧する毎に、ソースROM340から表示スケジューラデータHSDを読み出してRAM321、322に転送する。
なお、ステップS102において起動モードがホットスタートに設定されたと判定された場合、ユーザモジュール114bは、テクスチャデータ群TDGに関しては常駐エリアへの転送処理を行わずに、ステップS104の表示スケジューラデータHSD等の転送処理を行う。つまり、ユーザモジュール114bは、常駐テクスチャデータ群TDG等に関しては、上記のホット・コールド判定処理において起動モードが「コールドスタート」に設定された場合には、ソースROM340からメインRAM321、322に転送を行うが、「ホットスタート」に設定された場合にはソースROM340からメインRAM321、322への転送を行わない。
なお、起動モードがホットスタートに設定された場合に、常駐データのうちどのデータの転送処理を行い、どのデータの転送処理を行わないかという区分けについては後述する。
このようにヘッダ管理情報HTJ及び常駐テクスチャデータ群TDG(図示のテクスチャデータ群TDG)が展開された状態を図示すると、図4に示すソースROM340における格納状態が図14に示すようにそのまま展開された状態となっている。つまり、メインRAM321、322においては、上記したソースROM340におけるヘッダ管理情報HTJ、テクスチャデータ群TDG及び表示スケジューラデータHSDがそのまま転送され、格納されている。この状態においては、ユーザモジュール114bは、このテクスチャデータ群TDGを操作(ハンドリング)する手段が存在しないため、このテクスチャデータ群TDGに含まれる個々のテクスチャデータTDを各々区別して操作することができない。このため本実施形態では、次に示すようにハンドラを生成する。
(5−3.リセット時ハンドラ生成処理)
次に、図11のステップS100に示されたようなリセット時ハンドラ生成処理を図15を参照して説明する。図15は、リセット時ハンドラ生成処理の手順の一例を示すフローチャートである。
ユーザモジュール114bは、メインRAM321、322に転送されたテクスチャデータ群TDGのうち、常駐エリアJEに転送した常駐テクスチャデータ群TDGに対応して、例えばグラフィックライブラリ113bに、ヘッダ管理情報HTJに基づいて、次のようにテクスチャハンドラTHを生成させる。
具体的には、ユーザモジュール114bは、メインRAM321、322の常駐エリアJEに転送された常駐テクスチャデータ群TDGについて、図16に示すようにヘッダ管理情報HTJのヘッダ抽出情報から、この常駐テクスチャデータ群TDGに含まれる各テクスチャデータTDを各々識別可能とするテクスチャハンドラTHを生成する。なお、このヘッダ管理情報HTJは、例えば32バイトのデータであり、全てのテクスチャデータ群TDGなどに含まれる約5619個のテクスチャデータTDなどに対応して各々設けられている。
グラフィックライブラリ113bは、まず、処理対象とすべきリソース番号を「0」と設定する(ステップS151)。次にグラフィックライブラリ113bは、このリソース番号(この場合「0」)に対応するヘッダ管理情報HTJの内容を参照し(ステップS152)、このヘッダ管理情報HTJに含まれるグループIDが「0」であるか否かを判断する(ステップS153)。
グラフィックライブラリ113bは、グループIDが「0」であることを検索キーとして、ヘッダ管理情報HTJから、常駐テクスチャデータ群TDGに含まれる各テクスチャデータTDのオフセット値を取得し、この常駐テクスチャデータ群TDGの先頭アドレスにオフセット値(オフセットアドレス)を加算することで、常駐テクスチャデータ群TDGに含まれる各テクスチャデータTDの格納位置を取得する(ステップS154)。このグラフィックライブラリ113bは、この格納位置に基づいて、メインRAM321、322の常駐エリアJEに転送された常駐テクスチャデータ群TDGについて、図16に示すようにヘッダ管理情報HTJのヘッダ抽出情報から、この常駐テクスチャデータ群TDGに含まれる各テクスチャデータTDを各々識別可能とするテクスチャハンドラTHを生成する(ステップS155)。
グラフィックライブラリ113bは、処理対象とするリソース番号をインクリメントし(ステップS156)、処理対象とすべきリソース番号(例えば0〜5618)が5618を超えたか否かを判断する(ステップS157)。この「5618」という数値は、本実施形態においてテクスチャデータTD及び図示しないパレットデータ(以下、テクスチャデータTDを主として例示する)の合計数を5619個と例示したためである。ここで、処理対象とすべきリソース番号が5618を超えている場合にはハンドラ生成処理を終了し、処理対象とすべきリソース番号が5618を超えていない場合には上記ステップS152に戻る。
一方、上記ステップS153においてグループIDが「0」でない場合には(例えば「1」〜「18」の場合)、上記ステップS156に進む。このようにしてグラフィックライブラリ113bは、メインRAM321、322の常駐エリアJE上に、ヘッダ管理情報HTJから、常駐テクスチャデータ群TDG(グループID=「0」)に含まれる全てのテクスチャデータTDを各々識別可能なテクスチャハンドラTHを生成する。以上のように常駐テクスチャデータ群TDGの転送処理が終了する。
(5−4.蓄積されていた演出表示コマンドの解析・実行処理)
上述したような方法により、常駐テクスチャデータ群TDG、表示スケジューラデータHSD、ヘッダ管理情報HTJ等のデータのソースROM340からメインRAM321、322への転送が完了すると、装飾図柄制御基板30では、装飾図柄表示装置16に対する映像表示が可能となる。そこで、ユーザモジュール114bは、常駐テクスチャデータ群TDG等の転送完了後、コマンド受信バッファに蓄積されている演出表示コマンドを取得して解析し、その解析結果に基づいて装飾図柄表示装置16に対する映像表示処理を実行する。なお、ユーザモジュール114bがコマンド受信バッファから演出表示コマンドを取得して、映像表示処理を実行する具体的な処理内容については後述する。
このような処理が行われることにより、ソースROM340からメインRAM321、322へのデータ転送中に、サブ制御基板35から装飾図柄表示基板30に対して演出表示コマンドが送信された場合でも、この演出表示コマンドはコマンド受信バッファに蓄積され、データ転送の完了後に実行されることになる。
上記のような方法により演出表示コマンドがコマンド受信バッファに蓄積されてから実行される様子を、図17のタイミングチャートを参照して説明する。
図17のタイミングチャートにより示されるように、メイン制御基板3のCPU3a、サブ制御基板35のCPU35aは、リセットが解除されて初期化処理を実行した後、所定の時間だけ待機してから演出コマンドや演出表示コマンド等の送信を行う定常処理を開始する。これは、演出動作に関するコマンドである演出コマンドや演出表示コマンドを受信する下位の基板が、コマンドを送信する上位の基板よりも先にリセット処理が終了している必要があるためである。つまり、装飾図柄制御基板30、サブ制御基板35、メイン制御基板3の順序でリセット処理が終了して、上位の基板からのコマンドを受信可能な状態となる必要がある。そのため、サブ制御基板35では、装飾図柄制御基板30におけるリセット時間を考慮した待機時間が設定され、メイン制御基板3では、サブ制御基板35および装飾図柄制御基板30におけるリセット時間を考慮した待機時間が設定されている。
そして、装飾図柄制御基板30では、常駐テクスチャデータ等の転送処理が行われる前のリセット処理中にシリアルインタフェース303の初期化処理が行われる。なお、シリアルインタフェース303の初期化処理は、リセット処理中において可能なかぎり早いタイミングで行われることが望ましいが、このリセット処理中にはOSなどのブート処理のようにシステム上変更不可能な処理も含まれるため、ユーザシステムモジュール114aによるリセット処理の中においてできるだけ早いタイミングで実施されるようにする。
そして、装飾図柄制御基板30では、シリアルインタフェース303の初期化を含む装飾図柄制御基板30のリセット処理が行われた時刻T1以降では、サブ制御基板35からの演出表示コマンドを受信することが可能となる。
そして、サブ制御基板35、メイン制御基板3では、それぞれ、時刻T2、T3に待機時間が終了して定常処理が開始されると、演出コマンドや演出表示コマンドを下位の基板に対して送信することができるようになる。
そして、装飾図柄制御基板30では、時刻T1以降に常駐テクスチャデータ群TDG、表示スケジューラデータHSD、ヘッダ管理情報HTJのソースROM340からメインRAM321、322への転送処理が実行されるが、この間にサブ制御基板30から受信した演出表示コマンドはコマンド受信バッファに蓄積される。そして、時刻T4において常駐テクスチャデータ群TDG等の転送処理が終了して映像処理が可能になると、定常処理が行われるようになる。すると、装飾図柄制御基板30では、コマンド受信バッファに蓄積されている演出表示コマンドを解析して装飾図柄表示装置13に対する映像表示処理が実行される。そして、蓄積された演出表示コマンドの解析・実行処理が行われた後、装飾図柄制御基板30では、定常処理が実行される。
ここまでの説明においては、常駐テクスチャデータ群TDGの転送処理について説明してきたが、非常駐テクスチャデータ群TDGは、遊技の進行に応じて随時転送処理が実行される。そこで、下記においては、まず遊技制御処理の概要について説明した後に、非常駐テクスチャデータ群TDGについての転送処理について説明する。
(5−5.遊技制御処理)
ここでメイン制御基板3においては、遊技の進行を制御するメイン制御プログラムが動作しており、このメイン制御プログラムが始動入賞を契機として大当り判定用乱数値を取得している(大当り抽選)。メイン制御プログラムは、始動入賞があると、大当り判定タイミングにおいて、取得した大当り判定用乱数値と予め定められた当り値とを比較して、大当り判定を実行する。これとともにメイン制御プログラムは、そのような始動入賞があった場合、その後、別途抽選により決定した変動時間にわたり、特別図柄表示装置41による点滅状態(特別図柄の変動表示状態)を継続した後、大当り抽選及び判定の結果に応じて特別図柄表示装置41を点灯状態或いは消灯状態(停止図柄の表示状態)とする。
このような大当り抽選及び判定を実行すると、メイン制御基板3は、特別図柄表示装置41の制御と並行して、大当り抽選及び判定の結果(抽選結果及び演出コマンド)をサブ制御基板35に対して出力する。この演出コマンドは、この抽選結果に応じて演出動作が制御されるべき変動時間に関する情報を含んでいる。これら抽選結果及び演出コマンドを受け取ったサブ制御基板35においては演出抽選を実行し、その演出抽選の結果に応じた演出パターンを選定する。この演出パターンは、音や光などを出力するためのパターンである。さらにサブ制御基板35においては、この演出パターンに対応した演出表示パターンを選定する。
この演出表示パターンは、変動時間にわたり、複数用意した演出表示動作のうちどの演出表示動作を実行すべきかに関するパターンを表しており、その演出表示動作として表示する各シーンに対応した情報を含んでいる。各シーンを表示するにあたり必要なテクスチャデータTDなどを含むテクスチャデータ群TDGは、この演出表示パターンに対応する表示スケジューラデータHSDを参照することで定まる。本実施形態では、各シーンを表示するために、ソースROM340からメインRAM321、322に転送(ロード)すべきテクスチャデータ群TDGの組み合わせを「データロードパターン」と呼称している。
表示スケジューラHSDでは、例えば、図18に示すように、演出表示パターンが指定されればデータロードパターンを特定することができるように、演出表示パターン番号とデータロードパターンとの対応関係が設定されている。図18に示された例では、演出表示パターン番号が「97」の場合には、データロードパターンとしてパターン「10」を選択すれば良いことがわかる。そして、データロードパターンがわかれば、一連の演出表示に必要となる非常駐テクスチャデータ群TDGのグループIDを特定することが可能となる。次に、このデータロードパターンの構成について説明する。
(5−5−1.データロードパターン)
図19(A)〜図19(P)は、各々データロードパターンの一例を示す図である。
このデータロードパターンは、表示スケジューラデータHSDに従って表示すべきシーンに応じて、どの非常駐テクスチャデータ群TDGをメインRAM321、322の非常駐エリアHJEに転送(ロード)すべきであるかを表すパターンである。なお、本実施形態では、一例として図19(A)〜図19(P)に示すように、パターン「0」からパターン「15」の16種類のデータロードパターンが用意されている。
本実施形態では、データロードパターンとして、「{」マークで開始されるとともに「}」マークで終了するスペースに、非常駐エリアHJEに転送されうる18個の非常駐テクスチャデータ群TDGのうち、転送対象とすべき非常駐テクスチャデータ群TDGのグループIDを左から「,」マークで区切りつつ配列している。なお、図示の各データロードパターンにおける最後のグループIDとして「0」が配列しているが、これは、常駐エリアJEに展開すべき常駐テクスチャデータ群TDGを表しているのではなく、転送すべき非常駐テクスチャデータ群TDGがこれ以上存在せず各データロードパターンの終了を表している。つまり、データロードパターン中のグループID「0」は、データロードパターンの終了を識別するためのデータ完了識別手段として機能する。
例えば図19(A)に示すパターン「0」のデータロードパターンにおいては、まず、例えばグループIDが「3」に対応する非常駐テクスチャデータ群TDGを転送し、次に、グループIDが「4」に対応する非常駐テクスチャデータ群TDGを転送することとなる。また、例えば図19(B)に示すデータロードパターンにおいては、まず、例えばグループIDが「1」に対応する非常駐テクスチャデータ群TDGを転送し、次に、グループIDが「5」に対応する非常駐テクスチャデータ群TDGを転送し、次に、グループIDが「8」に対応する非常駐テクスチャデータ群TDGを転送することとなる。
(5−6.非常駐テクスチャデータ群TDGの転送タイミング)
サブ制御基板35における演出抽選により選択された演出表示パターンによっては、常駐テクスチャデータ群TDGに含まれるテクスチャデータTDのみによって演出表示を行うことが可能である。しかし、サブ制御基板35における演出抽選により選択された演出表示パターンによっては、一連の演出表示を行うためには、常駐テクスチャデータ群TDGに含まれるテクスチャデータTDに含まれるテクスチャデータTDだけでなく、非常駐テクスチャデータ群TDGに含まれるテクスチャデータTDが必要となる。
このように非常駐テクスチャデータ群TDGに含まれるテクスチャデータTDが演出表示に必要な場合、ユーザモジュール114bは、演出表示コマンドにより指定された演出表示パターン番号と表示スケジューラデータHSDとに基づいて、一連の演出表示に必要となる非常駐テクスチャデータ群TDGのデータロードパターンを特定し、特定されたデータロードパターンに基づいて非常駐テクスチャデータ群TDGのメインRAM321、322への展開を行う。そして、グラフィックライブラリ113bは、ユーザモジュール114bが非常駐テクスチャデータ群TDGをメインRAM321、322に展開している間に、サブ制御基板35からの演出表示コマンドに対応した表示スケジューラデータHSDに基づいて、まずはメインRAM321、322の常駐エリアJEに展開済みの常駐テクスチャデータ群TDGを用いた演出表示を行う。そして、グラフィックライブラリ113bは、引き続いてメインRAM321、322の非常駐エリアHJEに展開された非常駐テクスチャデータ群TDGを用いて演出表示を行うことにより、一連の演出表示を実行する。
テクスチャデータ群TDGに含まれる各テクスチャデータTDはリソース番号(データ識別子)により管理されているため、表示スケジューラデータHSD内では、映像表示の各シーンにおいて使用されるテクスチャデータTDはリソース番号により特定される。一連の演出表示が開始されると、先ず、常駐テクスチャデータ群TDGに含まれるテクスチャデータTDのみが使用された映像表示が行われるよう表示スケジューラデータHSDが設定されている。そして、常駐テクスチャデータ群TDGに含まれるテクスチャデータTDのみが使用された映像表示の後に、常駐テクスチャデータ群TDGに含まれるテクスチャデータTDおよび非常駐テクスチャデータ群TDGに含まれるテクスチャデータTDの両方を使用した映像表示が行われるよう表示スケジューラデータHSDが設定されている。
このようにして行われる非常駐テクスチャデータ群TDGの転送タイミングを図20を参照して説明する。この図20では、図19(G)に示されたパターン「6」のデータロードパターンに基づいて非常駐テクスチャデータ群TDGの転送が行われる場合を用いて説明する。この図20では、時刻T1において変動表示が開始されたものとして説明を行なう。
先ず、時刻T1において変動表示が開始されると、メインRAM321、322に既に展開されている常駐テクスチャデータ群TDGに含まれているテクスチャデータTDによる映像表示が実行される。ここで、常駐テクスチャデータ群TDGは既にメインRAM321、322に展開されているため、変動表示を遊技状態に応じて即座に開始することが可能である。
そして、この常駐テクスチャデータ群TDGによる映像表示が行われている間に、ユーザモジュール114bは、表示スケジューラデータHSDに指定されたデータロードパターンに基づいて、非常駐テクスチャデータ群TDGのソースROM340からメインRAM321、322への転送を行う。ここでは、データロードパターンが、「2」、「3」、「4」、「7」、「17」となっているものとして説明する。このような場合、ユーザモジュール114bは、先ず、グループIDが「2」に対応する非常駐テクスチャデータ群TDGをソースROM340からメインRAM321、322の非常駐エリアHJEに転送する。そして、ユーザモジュール114bは、グループIDが「3」、「4」、「7」、「17」に対応する非常駐テクスチャデータ群TDGをソースROM340からメインRAM321、322の非常駐エリアHJEに順次転送する。
そして、常駐テクスチャデータ群TDGによる映像表示が終了する時刻T2以降においては、非常駐テクスチャデータ群TDGによる映像表示が続けて行われる。
図20に示した例では、非常駐テクスチャデータ群TDGに含まれるテクスチャデータTDを使用した映像表示が開示される時刻T2までには、一連の演出表示に必要となる全ての非常駐テクスチャデータ群TDGのソースROM340からメインRAM321、322への展開が終了している。そのため、時刻T2経過後においては、常駐テクスチャデータ群TDGに含まれるテクスチャデータTDおよび非常駐テクスチャデータ群TDGに含まれるテクスチャデータTDの両方が使用可能となる。そのため、グラフィックライブラリ113bは、時刻T2経過後においては、テクスチャデータTDが常駐テクスチャデータ群TDGに含まれるのか非常駐テクスチャデータ群TDGに含まれるのかを考慮する必要なく、一連の演出表示に必要なテクスチャデータTDを使用することが可能である。
なお、図20に示した例では、非常駐テクスチャデータ群TDGに含まれるテクスチャデータTDを使用した映像表示が開始される時刻T2までに、一連の演出表示に必要となる非常駐テクスチャデータ群TDGのソースROM340からメインRAM321、322への展開が終了している。しかし、メインRAM321、322に展開すべき非常駐テクスチャデータ群TDGのデータ量が多くなったりした場合、時刻T2までに一連の演出表示に必要となる全ての非常駐テクスチャデータ群TDGの展開が終了しない場合も発生し得る。このように、一連の演出表示に必要となる非常駐テクスチャデータ群TDGのソースROM340からメインRAM321、322への展開が、非常駐テクスチャデータ群TDGに含まれるテクスチャデータTDを使用した映像表示が開始される時刻T2までに終了しない場合の例を図21に示す。
図21に示した例では、常駐テクスチャデータ群TDGによる映像表示が終了する時刻T2までに、一連の演出表示に必要となる全ての非常駐テクスチャデータ群TDGのソースROM340からメインRAM321、322への転送が完了していない。しかし、非常駐テクスチャデータ群TDGの転送が行われる順序を、一連の演出表示に使用される順序とするようにすれば、一連の演出表示を最後まで途切れさせることなく継続することが可能である。具体的には、時刻T2までに全ての非常駐テクスチャデータ群TDGの展開が終了していない場合でも、各非常駐テクスチャデータ群TDGが実際に使用されるタイミングまでに、その非常駐テクスチャデータ群TDGの転送が完了していれば、映像表示が途中で途切れてしまう等の問題は発生しない。
図21に示した例では、グループIDが「17」に対応する非常駐テクスチャデータ群TDGの転送が終了する時刻T3が、非常駐テクスチャデータ群TDGに含まれるテクスチャデータTDを使用した映像表示が開始される時刻T2よりも後になっている。しかし、上述したデータロードパターンにおけるグループIDの配列{2、3、4、7、17、0}は、一連の演出表示に使用される順序となっている。つまり、変動表示において使用されるタイミングが早いテクスチャデータ群のグループIDほど、各配列中での順序が前になるように配列されている。そのため、時刻T3までにグループIDが「17」に対応する非常駐テクスチャデータ群TDGに含まれるテクスチャデータTDを使用した映像表示が行わなければ、一連の演出表示を途中で停止させてしまうような事態は発生しない。
(5−7.非常駐エリアへの転送処理)
(5−7−1.演出コマンドの受信)
サブ制御基板35は、遊技の進行に応じてメイン制御基板3から受け取った演出コマンドなどに基づいて演出動作を制御している。具体的には、このサブ制御基板35において動作しているサブ制御プログラムが割込み処理(に含まれるコマンド送信処理)にて、装飾図柄制御基板30に対して演出表示コマンドなどを送信している。
(5−7−2.通常時転送処理)
図22は、通常時転送処理の手順の一例を示すフローチャートであり、遊技の進行に応じて、非常駐テクスチャデータ群TDGがソースROM340からメインRAM321、322の非常駐エリアHJEに転送される処理を表している。
まず、装飾図柄制御基板30で実行される定常処理に含まれるコマンド受信処理では、サブ制御基板35からの演出表示コマンドなどを受信してコマンド受信バッファに格納する。そしてユーザシステムモジュール114aは、コマンド受信バッファを定期的にポーリングすることによって、そのコマンド受信バッファにコマンドとして演出表示コマンドが存在しているか否かを判断する。この演出表示コマンドには上記演出表示パターンを含んでいる。
ユーザモジュール114bは、コマンド受信バッファから演出表示コマンドなどを取得し、この演出表示コマンドなどに含まれる演出表示パターン番号に該当する表示スケジューラデータHSDより演出表示パターン(リーチ演出パターンの種類など)を特定する。さらにユーザモジュール114bは、表示スケジューラデータHSDを参照し(ステップS201)、演出表示パターンを構成する各シーン、各シーンの表示順序及び、各シーンの表示に必要なテクスチャデータTDなどを特定する。なお、この表示スケジューラデータHSDは、演出表示パターンを構成する各シーン及びこれらシーンの表示順序、及び、各シーンの表示に必要なテクスチャデータTDなどに関する表示情報を含んでいる。ユーザモジュール114bは、この表示スケジューラデータHSDに従って、この演出表示パターンを構成する各シーンの表示に必要なテクスチャデータ群TDGなどのグループIDを指定する。なお、実際にはテクスチャデータTD以外にも転送すべきデータがあるが、本実施形態ではテクスチャデータTDを例示している。
次にユーザモジュール114bは、この指定したグループID(「指定グループID」とも呼称する)が「0(常駐)」でない場合には、このグループIDに対応する非常駐テクスチャデータ群TDGについていわゆるファイルオープン関数を実行する(ステップS202)。その後、このユーザモジュール114bは、例えば転送元アドレス及び転送データサイズを指定して、複数群のテクスチャデータ群TDGのうち指定したグループID(群識別子)に対応するテクスチャデータ群TDGを、ソースROM340からメインRAM321、322のオペレーティングシステム非干渉領域のうち非常駐エリアHJEに転送する(ステップS203)。このときユーザモジュール114bは、この非常駐エリアHJEにおいて、この非常駐テクスチャデータ群TDGを展開した転送先アドレス(先頭アドレスに相当)を把握している。なお、具体的な転送方法については後述する。
このように展開が終了すると、ユーザモジュール114bは、非常駐テクスチャデータ群TDGのソースROM340からの読み出しを不可能とするいわゆるファイルクローズ関数(例えば「fclose」)を実行する(ステップS204)。
次に、上記のステップS203における非常駐のテクスチャデータ群TDGをソースROM340からメインRAM321、322に転送する際の具体的な方法について詳細に説明する。図23は、非常駐のテクスチャデータ群TDGのソースROM340からメインRAM321、322への具体的な転送方法を示すフローチャートである。
ユーザモジュール114bは、テクスチャデータ群TDGを一括してソースROM340からメインRAM321、322に転送するのではなく、一定量のデータ毎に複数のブロックに分割し、分割したされた各ブロック毎にソースROM340からメインRAM321、322に順次転送する。ここでは、非常駐テクスチャデータ群TDGを32kBずつに分割して転送する場合を用いて説明するが、DMAコントローラ384がDMA転送をし易いデータ量であれば、どのようなデータ量毎に非常駐テクスチャデータ群TDGを分割するようにしてもよい。
そして、ユーザモジュール114bは、複数のブロックに分割された非常駐テクスチャデータ群TDGの転送処理の進捗状況を記憶するための転送終了カウンタを備えていて、非常駐のテクスチャデータ群TDGの1つのブロック分のデータ転送が終了する毎に、この転送終了カウンタをカウントアップする。
先ず、ユーザモジュール114bは、ソースROM340からメインRAM321、322に転送しようとする非常駐のテクスチャデータ群TDGを分割する分割数Dを算出する(ステップS211)。
例えば、非常駐のテクスチャデータ群TDGを32kB毎に分割する場合、32kBずつ転送すると何回でデータ全体の転送を完了することができるかという回数を算出する。例えば、図24に示すように、データ量が150kBの非常駐テクスチャデータ群TDGを分割する場合、第1〜第5の5つのブロックに分割するため、分割数Dは5となる。
次に、ユーザモジュール114bは、転送終了カウンタCTのカウント値Nを0にする(ステップS212)。そして、ユーザモジュール114bは、第N+1番目のブロックのデータ転送を行う(ステップS213)。ここでは、N=0であるため、ユーザモジュール114bは、第1ブロックのデータ転送を行う。
そして、ユーザモジュール114bは、転送終了カウンタCTのカウント値Nを1つカウントアップし(ステップS214)、カウント値Nが分割数D以上であるか否かを判定する(ステップS215)。ここでは、カウント値Nは1であり分割数Dである5よりも小さいため、ユーザモジュール114bは、ステップS213、S214の処理を繰り返す。
上記のような処理が行われることにより、非常駐テクスチャデータ群TDGのデータが第1ブロックから第5ブロックまで順次転送されていく。そして、ステップS215において転送終了カウンタCTのカウント値Nと分割数Dとが一致すると、ユーザモジュール114bは、非常駐テクスチャデータ群TDGの転送処理を終了する。
上記のような処理が行われることにより転送終了カウンタCTのカウント値Nがカウントアップされていく様子を図25に示す。
図25(a)では、非常駐テクスチャデータ群TDGの第1ブロックのデータ転送が終了しているため、転送終了カウンタCTのカウント値Nは1となっている。また、図25(b)では、非常駐テクスチャデータ群TDGの第1および第2ブロックのデータ転送が終了しているため、転送終了カウンタCTのカウント値Nは2となっている。さらに、図25(c)では、非常駐テクスチャデータ群TDGの全てのブロックのデータ転送が終了しているため、転送終了カウンタCTのカウント値Nは5となっている。
(5−7−3.リセット時の非常駐テクスチャデータ群転送処理)
次に、上記の(5−7−2.通常時転送処理)において説明した方法によって非常駐のテクスチャデータ群TDGをソースROM340からメインRAM321、322に転送中に、電源の停電状態が発生してリセット処理が発生したり、ウォッチドッグタイマによるリセット処理が発生した場合のユーザモジュール114bの動作を図26のフローチャートを参照して説明する。
リセット処理が発生した場合、ユーザモジュール114bは、起動モードがホットスタートであるかコールドスタートであるかを判定する(ステップS231)。ステップS231において起動モードがコールドスタートであると判定された場合、メインRAM321、322に格納されている全てのデータはクリアされるため、ユーザモジュール114bは処理を終了する。
ステップS231において起動モードがホットスタートに設定されていると判定された場合、ユーザモジュール114bは、転送終了カウンタCTのカウント値Nを読み出す(ステップS232)。そして、ユーザモジュール114bは、読み出したカウント値Nが分割数D以上であるか否かを判定する(ステップS233)。ステップS233において読み出したカウント値Nが分割数D以上の場合には、非常駐テクスチャデータ群TDGの転送は完了していると考えられるため、ユーザモジュール114bは処理を終了する。
ステップS233において、読み出したカウント値Nが分割数Dよりも小さい場合、非常駐テクスチャデータ群TDGの転送は完了していないと考えられるため、ユーザモジュール114bは、読み出したカウント値Nに1を加えた値であるN+1番目のブロックのデータ転送を行う(ステップS234)。そして、ユーザモジュール114bは、カウント値Nを1つカウントアップし(ステップS235)、再度ステップS233の判定を行う。
上記のような処理が行われることにより、リセット処理からの復帰後には、リセット処理が発生する前に既に転送が終了していたブロックの次のブロックから最終ブロックまでのデータ転送が行われる。つまり、非常駐テクスチャデータ群TDGの転送中にリセット処理が発生して、起動モードがホットスタートに設定された場合、既にメインRAM321、322に転送済みの非常駐テクスチャデータ群TDGのデータは有効なものとして扱われ、まだ転送が終了していないブロックのデータ転送処理のみが再開されることになる。
なお、本実施形態では、非常駐テクスチャデータ群TDGを転送する場合について説明しているが、常駐テクスチャデータ群TDGを転送する場合についても同様の処理を行うことが可能である。つまり、常駐テクスチャデータ群TDGをソースROM340からメインRAM321、322に転送する際に、この常駐テクスチャデータ群TDGを複数のブロックに分割して転送し、転送処理の進捗状況を転送終了カウンタCTにより記憶するようにしてもよい。
また、本実施形態では、ユーザモジュール114bは、非常駐テクスチャデータ群TDGの1つのブロック分のデータ転送が終了する毎に転送終了カウンタCTをカウントアップして転送処理の進捗状況を記憶するようにしていたが、転送終了カウンタCTをカウントダウンすることにより転送処理の進捗状況を記憶するようにしてもよい。
(5−8.非常駐テクスチャデータ群TDGの上書き処理)
次に、非常駐テクスチャデータ群TDGの上書き処理について説明する。
非常駐テクスチャデータ群TDGをソースROM340からメインRAM321、322に転送しようとする場合、転送しようとする非常駐テクスチャデータ群TDGのデータ量が、メインRAM321、322の非常駐エリアHJEが格納できるデータ量よりも少ない場合、ユーザモジュール114bは、その非常駐テクスチャデータ群TDGを単純にソースROM340からメインRAM321、322に転送すればよい。
しかし、転送しようとする非常駐テクスチャデータ群TDGのデータ量が、メインRAM321、322の非常駐エリアHJEが格納できるデータ量よりも多い場合、そのまま非常駐テクスチャデータ群TDGをメインRAM321、322の非常駐エリアHJEに転送することはできない。
そのため、本実施形態の遊技機1では、ユーザモジュール114bは、ソースROM340からメインRAM321、322の非常駐エリアHJEに非常駐テクスチャデータ群TDGを転送しようする場合、転送しようとする非常駐テクスチャデータ群TDGを、メインRAM321、322の非常駐エリアHJEに既に展開されている使用済みの非常駐テクスチャデータ群TDGの上に上書きするようにする。
ここで、ユーザモジュール114bは、メインRAM321、322の非常駐エリアHJEに格納されている各非常駐テクスチャデータ群TDGが、それぞれ使用済みであるか否かの情報を非常駐テクスチャデータ群TDG毎に格納する格納手段を有し、この格納手段により格納されている情報を参照することにより、非常駐エリアHJEに格納されている非常駐テクスチャデータ群TDGのうち、どの非常駐テクスチャデータ群TDGが既に使用済みであり、どの非常駐テクスチャデータ群TDGがこれからの映像処理に使用されるものであるかを判定する。
なお、遊技状態が変化して非常駐テクスチャデータ群TDGの転送が新しく開始された場合には、既にメインRAM321、322の非常駐エリアに展開済みの全ての非常駐テクスチャデータ群TDGは不要である。そのため、1つの非常駐テクスチャデータ群TDGの転送の度に上記の判断をする必要はなく、遊技状態が変化して新しく非常駐テクスチャデータ群TDGの転送が開始された場合には、非常駐エリアHJEのデータ量よりも少ないデータ量の非常駐テクスチャデータ群TDGについては、そのまま転送処理を行えばよい。
そして、転送を行った非常駐テクスチャデータ群TDGのデータ量の累積値が、非常駐エリアHJEのデータ量よりも大きくなる前に、一旦非常駐テクスチャデータ群TDGの転送処理を中断し、これ以降の非常駐テクスチャデータ群TDGの転送について上記のような判定を行い上書き処理を行うようにすればよい。
そのため、図19に示したようなデータロードパターンのうち、合計のデータ量がメインRAM321、322の格納可能なデータ量を超えるデータロードパターンについては、途中で転送処理を休止するようなデータロードパターンを使用する。表示スケジューラデータHSDに含まれるデータロードパターンは、映像の表示に必要となる非常駐テクスチャデータ群TDGをグループIDにより特定するためのパターンであるため、このようなデータロードパターンを用いて非常駐エリアHJEのデータ容量が不足してしまう前に、データ転送を一旦休止するようにする。
例えば、図19(G)に示した{2、3、4、7、17、0}というデータロードパターンにおいて、グループID「2」、「3」、「4」、「7」に対応する非常駐テクスチャデータ群TDGのデータ量の合計が、非常駐エリアHJEに格納可能なデータ量を超えるものとした場合、一例として、下記のようなデータロードパターンを用いるようにする。
{2、3、4、P、7、17、0}
このデータロードパターンの途中には、転送すべき非常駐テクスチャデータ群TDGのグループIDと、データ完了識別手段であるグループID「0」以外に、データの転送を途中で一旦休止(ポーズ)することを示すコード(データ転送休止識別手段)である「P」というコードが設けられている。この「P」というコードはグループIDではなく、このコードよりも前の順位のグループID「2」、「3」、「4」に対応する非常駐テクスチャデータ群TDGの転送を行った後に、データ転送を一旦休止することを示している。ユーザモジュール114bは、この「P」の前のグループIDに対応した非常駐テクスチャデータ群TDGついて中断することなく順次転送処理を行い、この「P」の後の非常駐テクスチャデータ群TDGについては、非常駐エリアに転送済みの非常駐テクスチャデータ群TDGの上に上書きするように転送処理を行う。
つまり、上記のようなデータロードパターンの場合、ユーザモジュール114bは、先ずグループIDが「2」、「3」、「4」の非常駐テクスチャデータ群TDGをソースROM340からメインRAM321、322の非常駐エリアHJEに順次転送した後に一旦転送処理を中断する。そして、ユーザモジュール114bは、格納手段に格納されている情報を参照することにより使用済みの非常駐テクスチャデータ群TDGを把握し、メインRAM321、322の非常駐エリアHJEに空きができるのを待ってから、グループIDが「7」、「17」に対応する非常駐テクスチャデータ群TDGの転送処理を行う。
このようにして実行される非常駐テクスチャデータ群TDGの転送処理を図27のタイミングチャートに示す。
この図27に示されたタイミングチャートでは、時刻T1において変動表示が開始され、メインRAM321、322に既に展開されている常駐テクスチャデータ群TDGによる映像表示が実行される。そして、この常駐テクスチャデータ群TDGによる映像表示が行われている間に、ユーザモジュール114bは、表示スケジューラデータHSDに指定されたデータロードパターンに基づいて、非常駐テクスチャデータ群TDGのソースROM340からメインRAM321、322への転送を行う。ここでは、データロードパターンが、「2」、「3」、「4」、「P」、「7」、「17」、「0」となっているため、ユーザモジュール114bは、先ず、グループIDが「2」、「3」、「4」に対応する非常駐テクスチャデータ群TDGをソースROM340からメインRAM321、322の非常駐エリアHJEに転送して一旦転送処理を中断する。
そして、時刻T2において常駐テクスチャデータ群TDGによる映像処理が終了すると、非常駐テクスチャデータ群TDGによる映像表示が開始される。そして、グループIDが「2」の非常駐テクスチャデータ群TDGによる映像処理が行われ、時刻T3において、その処理が終了すると、グループIDが「2」の非常駐テクスチャデータ群TDGは使用済みであるある旨の情報が格納手段に格納される。そのため、ユーザモジュール114bは、グループIDが「7」に対応する非常駐テクスチャデータ群TDGのソースROM340からメインRAM321、322への転送処理を実行する。
そして、同様に、グループIDが「3」の非常駐テクスチャデータ群TDGによる映像処理が行われ、時刻T4において、その処理が終了すると、グループIDが「3」の非常駐テクスチャデータ群TDGは使用済みであるある旨の情報が格納手段に格納される。そのため、ユーザモジュール114bは、グループIDが「17」に対応する非常駐テクスチャデータ群TDGのソースROM340からメインRAM321、322への転送処理を実行する。
このような処理が行われることにより非常駐エリアHJEに格納されている非常駐テクスチャデータ群TDGが変化する様子を図28を参照して説明する。
先ず、図27の時刻T2においては、図28(a)に示すように、グループID「2」、「3」、「4」に対応する非常駐テクスチャデータ群TDGが非常駐エリアHJEに格納されている。そして、時刻T3においてグループIDが「7」に対応する非常駐テクスチャデータ群TDGの転送処理が実行されると、図28(b)に示すように、グループIDが「7」の非常駐テクスチャデータ群TDGがグループIDが「2」の非常駐テクスチャデータ群TDGの上に上書きされる。そして、時刻T4においてグループIDが「17」に対応する非常駐テクスチャデータ群TDGの転送処理が実行されると、図28(c)に示すように、グループIDが「17」の非常駐テクスチャデータ群TDGがグループIDが「2」、「3」の非常駐テクスチャデータ群TDGの上に上書きされる。
なお、表示スケジューラデータHSDを参照することにより得られた転送対象の非常駐テクスチャデータ群TDGの合計のデータ量が、メインRAM321、322の非常駐エリアHEのデータ量よりも少ない場合には、ユーザモジュール114bは、この転送対象の非常駐テクスチャデータ群TDGを途中中断することなくソースROM340からメインRAM321、322の非常駐エリアHJEに転送する。この場合には、図19に示したようなデータロードパターンの途中に「P」というコードを設ける必要はない。
(5−9.通常時ハンドラ生成処理)
図29は、通常時ハンドラ生成処理の手順の一例を示すフローチャートである。この通常時ハンドラ生成処理は、メインRAM321、322に転送されたテクスチャデータ群TDGのうち、非常駐エリアHJEに転送した非常駐テクスチャデータ群TDGに含まれる各テクスチャデータTDを読み出すためのテクスチャハンドラTHを生成する処理を表している。なお、図29に示す通常時ハンドラ生成処理は、例えば1つのテクスチャハンドラTHを生成する処理を表しており、実際は、テクスチャデータTDの必要個数分にわたり、繰り返し実行されるようになっている。
ユーザモジュール114bは、例えばグラフィックライブラリ113bに、メインRAM321、322に転送済みの非常駐テクスチャデータ群TDGに含まれる各テクスチャデータTDに関して、ヘッダ管理情報HTJに基づいて、個々に次のようにテクスチャハンドラTH(データ読出情報)を生成させる(データ読出情報生成手段)。
まず、このグラフィックライブラリ113bは、その非常駐テクスチャデータ群TDGをメインRAM321、322に転送した際における、その非常駐テクスチャデータ群TDGの展開先である格納位置の先頭アドレスを保持している。なお、このヘッダ管理情報HTJは、例えば32バイトのデータであり、全てのテクスチャデータ群TDGなどに含まれる約5619個のテクスチャデータTDなどに対応して各々設けられている。これら各テクスチャデータTDなどには各々リソース番号が付与されている。
グラフィックライブラリ113bは、まず、テクスチャハンドラTHを生成するタイミングであるか否かを判断する(ステップS251)。ここで本実施形態においては、テクスチャハンドラTHを生成するタイミングとして、このテクスチャハンドラTHに対応するテクスチャデータTDなどをVDP330が使用する直前を採用している。そしてテクスチャハンドラTHを生成するタイミングでない場合は、この通常時ハンドラ生成処理を終了する一方、テクスチャハンドラTHを生成するタイミングである場合は、必要なテクスチャデータTDに対応するリソース番号を指定する(ステップS252)。
グラフィックライブラリ113bは、このリソース番号に対応するヘッダ管理情報HTJの内容を参照し(ステップS253)、このヘッダ管理情報HTJに含まれるヘッダ抽出情報の一部であるオフセット情報を取得する。このオフセット情報は、各テクスチャデータTDなど(リソース)ごとに、このテクスチャデータTDなどを含む非常駐テクスチャデータ群TDGの格納位置の先頭アドレスからのオフセット値を含んでいる。このグラフィックライブラリ113bは、このオフセット情報から、指定したリソース番号に対応するオフセット値を取得する(ステップS254)。
このグラフィックライブラリ113bは、各テクスチャデータTDを識別するリソース番号ごとに、これら先頭アドレス(上記転送先アドレス)、オフセット値を含めて、図16に示したようなテクスチャハンドラTHを生成する(ステップS255)。つまりテクスチャハンドラTHは、非常駐テクスチャデータ群TDGの先頭アドレス、リソース番号に対応するテクスチャデータTDなどのオフセットを含んでいる。なお、このテクスチャハンドラTHは、これら先頭アドレス及びオフセットを含んでいる代わりに、適宜、この先頭アドレスにこのオフセット値を加えて演算した結果としての絶対アドレスを含むようにしても良い。さらにグラフィックライブラリ113bは、必要に応じて、所望の次のテクスチャデータTDを使用する直前に、このリソース(次のテクスチャデータTD)に関してテクスチャハンドラTHを生成する。
(5−10.不要なハンドラの消去処理)
ここでメインRAM321、322に展開された非常駐テクスチャデータ群TDGは、使用された後は不要となる。しかし、次の処理において非常駐テクスチャデータ群TDGをソースROM340からメインRAM321、322に展開する際には、メインRAM321、322の非常駐エリアHJE上に新たなデータを上書きすればよいため、積極的に消去する必要はない。
しかし、非常駐テクスチャデータ群TDGに含まれる各テクスチャデータTDを読み出すために生成されたテクスチャハンドラTHについては、積極的に消去しないとテクスチャハンドラTHを格納するためのエリアが溢れてしまい新たなテクスチャハンドラTHを生成することができなくなってしまう。
また、新たなテクスチャハンドラTHを生成する際には、テクスチャハンドラTHを格納するために設定された領域のうち使用されていない領域を探す処理が必要となる。そのため、不必要なテクスチャハンドラTHが大量に存在していると、新たなテクスチャハンドラTHを生成する際の処理に不必要な時間がかかってしまいテクスチャハンドラTH生成の処理を効率的に実行することができなくなる。
しかし、テクスチャハンドラTHには、常駐テクスチャデータ群TDGに含まれる各テクスチャデータTDを読み出すためのテクスチャハンドラTHと、非常駐テクスチャデータ群TDGに含まれる各テクスチャデータTDを読み出すためのテクスチャハンドラTHとが存在する。そのため、非常駐テクスチャデータ群TDGに含まれる各テクスチャデータTDを読み出すためのテクスチャハンドラTHのみを選択して消去する必要がある。
そのため、グラフィックライブラリ113bは、図30に示すように、非常駐テクスチャデータ群TDGに含まれる各テクスチャデータTDを読み出すためのテクスチャハンドラTHを生成した場合、その生成したテクスチャハンドラTHを識別するための情報であるリソース番号をハンドラ生成履歴情報HRJとして記憶しておく。この図30において、常駐テクスチャデータ群TDGに含まれる各テクスチャデータTDを読み出すために生成されたテクスチャハンドラTHは常駐TDのハンドラとして表現し、非常駐テクスチャデータ群TDGに含まれる各テクスチャデータTDを読み出すために生成されたテクスチャハンドラTHは非常駐TDのハンドラとして表現する。
そして、グラフィックライブラリ113bは、非常駐テクスチャデータ群TDGが不要となった場合、図31に示すように、記憶されているハンドラ生成履歴情報HRJに基づいて、非常駐テクスチャデータ群TDGに含まれる各テクスチャデータTDを読み出すために生成されたテクスチャハンドラTHの消去処理を実行する。
具体的には、グラフィックライブラリ113bは、非常駐テクスチャデータ群TDGが不要となった場合、ハンドラ生成履歴情報HRJに格納されているリソース番号を順次参照して、このリソース番号に対応した非常駐のテクスチャハンドラTHを消去していく。例えば、ハンドラ生成履歴情報HRJから読み出したリソース番号が「2042」であった場合、グラフィックライブラリ113bは、このリソース番号が「2042」である非常駐テクスチャデータTDのテクスチャハンドラTH(2042)を消去する。
このような処理が行われることにより、図31に示されるように、使用された後の非常駐テクスチャデータ群TDGに含まれる各テスクチャデータを読み出すために生成されたテクスチャハンドラTHのみが削除され、常駐テクスチャデータ群TDGに含まれる各テスクチャデータを読み出すためのテクスチャハンドラTHが残ることとなる。
(5−11.上書きリフレッシュ処理)
なお、ユーザモジュール114bは、メインRAM321、322の常駐エリアJEに展開された常駐テクスチャデータ群TDGに対して通常処理の合間に部分的に順次再展開することにより同一データによる上書きリフレッシュを行う(上書き手段)。
例えば、メインRAM321、322の常駐エリアJEに展開された常駐テクスチャデータ群TDGのデータ容量が50MBだとした場合、ユーザモジュール114bは、通常処理の合間に32ms程度の間隔で2kBずつに分割してソースROM340からメインRAM321、322の常駐エリアJEに常駐テクスチャデータ群TDGを転送して再展開する。このような方法で再展開処理が行われることにより、約14分程度で、メインRAM321、322の常駐エリアJEに展開されている全ての常駐テクスチャデータ群TDGに対して上書きリフレッシュが実施されることになる。そして、この上書きリフレッシュ処理は、遊技機が通常動作を行っている間は、繰り返し実施される。
そして、上記のような方法により通常処理の合間に常駐テクスチャデータ群TDGを一定データサイズ(一定ブロック単位)毎に少しずつ分割転送することで、その他の処理に大きな影響を及ぼすことなく大容量の常駐テクスチャデータ群TDGの上書きリフレッシュが実現される。
(5−12.制御データと非制御データの区分け)
上記で説明したように、本実施形態の遊技機では、プログラムローダ、オペレーティングシステム、デバイスドライバソフトウェア、ライブラリソフトウェア及びアプリケーションソフトウェア等の表示制御プログラムや、表示スケジューラデータHSD、モデルデータ、ヘッダ管理情報HTJ、テクスチャデータTD、パレットデータ等の各種データがソースROM340からメインRAM321、322に展開されてから使用されている。
また、瞬間的な停電状態からの復旧を素早くするために、ホット・コールド判定処理を行って、起動モードが「ホットスタート」と判定された場合には、メインRAM321、322に展開された各種データは破壊されていないものと推定している。
しかし、起動モードが「ホットスタート」と判定された場合でも、メインRAM321、322内の全てのデータが破壊されていないことが確認されたわけではなく、バックアップ領域という特定領域内のデータが破壊されていないことのみしか確認されていない。つまり、「ホットスタート」に設定された場合でも、バックアップ領域以外の他の領域に格納されているデータについては、ビット落ち等の不具合が発生している可能性を完全に否定することはできない。
そのため、ホットスタート処理の際に、メインRAM321、322内に展開されているデータのうち、破壊されていないことが確認されたデータ以外のデータをそのまま使用した場合、表示される映像に何らかの異常が発生する可能性がある。
RAM321、322に格納されている各種データや制御プログラムのうち、制御プログラムにこのようなビット落ちが発生した場合には、制御プログラムの暴走等致命的な異常状態になる可能性がある。また、RAM321、322に格納されている各種データについても、ヘッダ管理情報HTJやモデルデータに不具合が発生した場合には、表示制御プログラムが無限ループに陥る等の暴走状態となる可能性がある。しかし、テクスチャデータやパレットデータの一部が破壊されたとしても、表示される映像の一部に異常が発生するのみで表示制御プログラムの動作自体が暴走状態になる等の致命的な異常状態となる可能性は無い。
そのため、ユーザモジュール114bは、メインRAM321、322に格納されている各種データのうち、破壊された場合に表示制御プログラムが暴走状態となる可能性のない非制御データについては、「コールドスタート」に設定された場合にのみソースROM340からメインRAM321、322に転送するようにし、「ホットスタート」に設定された場合にはソースROM340からメインRAM321、322に転送しないようにする。
なお、ユーザモジュール114bは、破壊された場合に表示制御プログラムが暴走状態となる可能性がある制御データについては、「ホットスタート」に設定された場合、および「コールドスタート」に設定された場合のいずれの場合においても、ソースROM340からメインRAM321、322に転送する。
さらに、ユーザモジュール114bは、制御プログラムについては、当然ながら、「ホットスタート」に設定された場合、および「コールドスタート」に設定された場合のいずれの場合においても、ソースROM340からメインRAM321、322に転送する。
次に、制御データと非制御データの具体的な区分け例を図32に示す。
ヘッダ管理情報HTJ、モデルデータや表示スケジューラデータHSDについては、破壊された状態によっては、表示制御プログラムが無限ループに陥る可能性があるため制御プログラムに区分けされる。しかし、テクスチャデータTDやパレットデータの一部が壊れたとしても、表示される映像を表現するモデルの一部の面に貼り付けられたデータに異常が発生したり、色彩が異常となったりする可能性があるものの、表示制御プログラム自体が致命的な異常状態となる可能性は無い。そのため、テクスチャデータTDやパレットデータという素材画像データは非制御データに区分けされる。
なお、テクスチャハンドラTHについては、ソースROM340からメインRAM321、322に直接転送されるデータではなく、メインRAM321、322に転送されたヘッダ管理情報HTJに基づいて生成されるデータであるため、制御データにも非制御データにも分類されていない。
(5−13.OS、表示制御プログラム等の整合性チェック処理)
先ず、メインRAM321、322に展開されたOSの整合性チェック処理について、図33のフローチャートを参照して説明する。なお、図33は、OSの整合性チェック処理を説明するための簡易的なフローチャートであり、実際の処理とは異なるものである。
先ず、ユーザシステムモジュール114aは、メインRAM321、322のいずれかの領域に格納したOSのサム値をクリアする(ステップS261)。そして、ユーザシステムモジュール114aは、定常処理の合間において、メインRAM321、322に展開されたOSの一定領域分のデータを順次読み出してサム値を算出する(ステップS262)。そして、ユーザシステムモジュール114aは、ステップS262において算出された一定領域分のデータのサム値を、メインRAM321、322に格納されているOSのサム値に加算する(算出手段)(ステップS263)。このステップS262、S263の処理は、定常処理が行われている間、OSの全ての領域のサム値の算出が終了するまで繰り返される(ステップS264)。このようにして、メインRAM321、322に展開されたOSのデータは、定常処理の合間において、一定量毎に順次読み出されてサム値が演算される。そして、演算されたサム値が累積されることにより、メインRAM321、322に展開されたOSの全体のサム値が算出される。
メインRAM321、322に格納されているOSの全ての領域のサム値の算出が行われた場合(ステップS264)、ユーザシステムモジュール114aは、ソースROM340に格納されているOSのサム値を読み出す(ステップS265)。そして、ユーザシステムモジュール114aは、ソースROM340に格納されているOSのサム値と、定常処理の合間に算出されたOSのサム値とを比較し(ステップS266)、一致しない場合、リセット処理を実行する(ステップS267)(リセット実行手段)。
なお、ステップS266において、ソースROM340に格納されているOSのサム値と、定常処理の合間に算出されたOSのサム値とが一致した場合には、ユーザシステムモジュール114aは、再度メインRAM321、322に格納されているOSのサム値をクリアして(ステップS261)、メインRAM321、322に展開されているOSのサム値を再び算出する(ステップS262〜S264)。
上述したような方法により、メインRAM321、322に展開されたOSの整合性チェックが行われる。そして、同様な方法により、メインRAM321、322に展開された、OSの定数データ、表示制御プログラム(アプリケーションソフトウェア、ライブラリソフトウェア、ドライバソフトウェア)、表示制御プログラムの定数データの整合性チェックが順次行われていく。そして、定常処理が行われている間、OS、OSの定数データ、表示制御プログラム、表示制御プログラムの定数データの整合性チェックは繰り返し実行される。なお、定数データとは、図4で説明したように、OS400や表示制御プログラム402が動作する際に使用される固定値のデータである。
例えば、OSと表示制御プログラム等のデータ量の合計が1.7Mバイトの場合、定常処理の合間に1フレーム(約32ms程度)毎に400バイトずつサム値の算出を行うことにより、OSと表示制御プログラム等が格納された全ての領域のサム値を算出するのに約2.3分程度かかる。
つまり、本実施形態の遊技機では、メインRAM321、322に展開されたOS、OSの定数データ、表示制御プログラムまたは表示制御プログラムの定数データのいずれかにデータ異常が発生した場合、遅くとも2.3分以内にはリセット処理が実行され、OS、OSの定数データ、表示制御プログラムおよび表示制御プログラムの定数データが再度ソースROM340からメインRAM321、322に転送され、発生したデータ異常は修復される。
なお、本実施形態では、メインRAM321、322に展開されたOS、表示制御プログラム等のデータが何らかの理由により破壊された場合について説明したが、本発明は、ソースROM340に格納されているOS、OSの定数データ、表示制御プログラムまたは表示制御プログラムの定数データのいずれかが破壊された場合にも同様に適用することが可能である。この場合には、ユーザシステムモジュール114aは、ソースROM340に格納されているOS、OSの定数データ、表示制御プログラムおよび表示制御プログラムの定数データのサム値を定常処理の合間に演算する。そして、ユーザシステムモジュール114aは、ソースROM340に予め格納されているOS等のサム値と、定常処理の合間に算出されたOS等のサム値とを比較して、一致しない場合、エラー表示を行って遊技機の動作を停止する等の異常処理を実行する。このような処理が行われることにより、ソースROM340に格納されたOS等のデータが破壊された場合には、遊技機の動作を自動的に停止させ異常な状態のまま遊技が行われるのを防ぐことが可能となる。
(5−14.非常駐データの圧縮)
次に、ソースROM340において、常駐テクスチャデータ群TDGと非常駐テクスチャデータ群TDGが格納されている様子を図34に示す。
図34に示されるように、テクスチャデータ群TDGのうちメインRAM321、322に常駐させる常駐テクスチャデータ群TDGについては圧縮(符号化)せずにソースROM340に格納するようにし、メインRAM321、322に常駐させない非常駐テクスチャデータ群TDGについては圧縮(符号化)してソースROM340に格納するようにする。常駐テクスチャデータ群TDGは、グループIDとして「0」が設定されたテクスチャデータ群TDGであり、非常駐テクスチャデータ群TDGは、グループIDとして「1」〜「18」のいずれかが設定されたテクスチャデータ群TDGである。なお、非常駐テクスチャデータ群TDGを圧縮する際の圧縮方法としては、ランレングス符号化方法などの可逆圧縮方法が用いられる。
そして、ユーザモジュール114bは、ソースROM340に圧縮されて格納されている非常駐テクスチャデータ群TDGを伸張(復号)するための伸張手段を有し、圧縮されたテクスチャデータ群TDGをソースROM340からメインRAM321、322に展開する際に、伸張手段を用いて圧縮されたテクスチャデータTDを伸張してからメインRAM321、322の非常駐エリアHJEに格納する。なお、伸張手段は、ソフトウェアにより実現してもよいしハードウェアにより実現するようにしてもよい。
このように常駐テクスチャデータ群TDGを構成する各テクスチャデータTDを圧縮せずにソースROM340に格納しているのは、下記の理由による。
常駐テクスチャデータ群TDGについては、上記の(5−11.上書きリフレッシュ処理)において説明したように、メインRAM321、322に展開された後も2kBずつに分割して上書きリフレッシュ処理が行われる。そして、この上書きリフレッシュ処理は、遊技機1が通常動作を行っている間は、継続して繰り返し実施される。そのため、常駐テクスチャデータ群TDGについても、非常駐テクスチャデータ群TDGと同様に圧縮してソースROM340に格納するようにしたのでは、上書きリフレッシュ処理を行う度に毎回、読み出した常駐テクスチャデータTDを伸張する処理を行う必要がある。この結果、上書きリフレッシュ処理の処理時間が長くなってしまう。ここで、上書きリフレッシュ処理は、1フレーム分の描画処理を行う通常処理の余り時間を利用して実施されている。そのため、常駐テクスチャデータ群TDGをソースROM340に圧縮して格納した場合、上書きリフレッシュ処理のための処理時間が長くなり、本来行うべき1フレーム分の描画処理時間に余裕が取れなくなるおそれが生じ、1フレーム中における多彩な映像演出の制約となる。
これに対して非常駐テクスチャデータ群TDGが圧縮されていたとしても、圧縮された非常駐テクスチャデータ群TDGを構成するテクスチャデータTDを伸張する処理は、メインRAM321、322に展開する際に行うだけでよい。
そのため、本実施形態の遊技機1では、常駐テクスチャデータ群TDGについては圧縮せずにソースROM340に格納し、非常駐テクスチャデータ群TDGのみを圧縮してソースROM340に格納するようにしている。
なお、本実施形態の遊技機1では、ソースROM340に格納される全ての非常駐テクスチャデータ群TDGを圧縮するものとして説明しているが、本発明はこのような場合に限定されるものではなく、ソースROM340に格納され非常駐テクスチャデータ群TDGのうちの少なくとも一部を圧縮する場合でも同様の効果が得られるものである。
例えば、非常駐テクスチャデータ群TDGの中でもメインRAM321、322に展開されてから映像表示に使用されるまでの時間が短いものについては、圧縮されてソースROM340に格納されていたのでは、伸張処理が必要になることにより映像表示処理に不具合が生じる場合も考えられる。このような場合には、時間的に余裕の無い非常駐テクスチャデータ群TDGについては圧縮せずにソースROM340に格納するようにし、時間的に余裕の有る非常駐テクスチャデータ群TDGについては圧縮してソースROM340に格納するようにすればよい。
(6.表示処理)
図35は、表示処理の手順の一例を示すフローチャートである。なおユーザモジュール114bは、定常処理に含まれる図柄制御処理の一部に表示処理として、次のようなハンドラに基づくデータ読み出し処理及び描画処理を実行している。
この表示処理では、ユーザモジュール114bが、表示スケジューラデータHSDに従ってグラフィックライブラリ113bを制御し、メインRAM321、322のオペレーティングシステム非干渉領域に生成されたテクスチャハンドラTHに基づいて転送済みのテクスチャデータ群TDGなどに含まれる各テクスチャデータTDなどを各々識別して読み出すとともに、読み出した各テクスチャデータTDなどを使用してGDCドライバ112cによってGPU300のVDP330を制御する(映像表示制御手段、表示開始指示手段)。
(6−1.ハンドラに基づくデータ読み出し処理)
まず、ユーザモジュール114bは、表示スケジューラデータHSDを参照し、表示すべきシーンに応じて、グラフィックライブラリ113bに対してリソース番号を指定する。このグラフィックライブラリ113bは、指定されたリソース番号に基づいて、テクスチャハンドラTHを参照する(ステップS301)。
次にグラフィックライブラリ113bは、このテクスチャハンドラTHに基づいて、例えばメインRAM321、322(の非常駐エリアHJEや常駐エリアJE)から、非常駐テクスチャデータ群TDGなどの先頭アドレスからのオフセット値に基づいてVDP330に指示し、VDP330は、この指示に従ってリソース番号に対応するテクスチャデータTDを読み出す(ステップS302)。なお、テクスチャハンドラTHが絶対アドレスを含んでいる場合、グラフィックライブラリ113bは、テクスチャハンドラTHの絶対アドレスによって、メインRAM321、322から、非常駐テクスチャデータ群TDGなどのうちリソース番号に対応するテクスチャデータTDなどを読み出すようVDP330に指示を行う。
(6−2.描画処理)
グラフィックライブラリ113bは、メインRAM321、322から必要なテクスチャデータTDなどを読み出すと、GDCドライバ112cに対して指示することにより、メインRAM321、322のパレットデータなどを用いて、GPU300などのハードウェアの補助を受けつつメインRAM321、322のフレームバッファエリアにピクセルデータを生成する(ステップS303)。このピクセルデータは、モデルデータに基づくオブジェクトの表面に、テクスチャデータに基づくテクスチャをマッピングして構成したポリゴン表示用の描画データである。
次にグラフィックライブラリ113bは、メインRAM321、322のフレームバッファエリアから次々とピクセルデータを読み出して、このピクセルデータを用いてGPU300のビデオ出力コントローラ336に描画させる(ステップS304)。つまりユーザモジュール114bは、グラフィックライブラリ113bにGPU300を制御させ、ポリゴンなどを用いた映像の表示にあたりモデルデータに基づくオブジェクトに、同時に読み出したテクスチャデータTDに基づくテクスチャをマッピングしてポリゴンを構成し、このポリゴンを用いたフレームを次々と表示することで映像を表示するのである。さらに、グラフィックライブラリ113bは、2つのフレームバッファエリアのうち一方のフレームバッファエリアにフレームデータ(ピクセルデータの集合体)を作成している間に、もう一方のフレームバッファエリアから作成済みのフレームデータが映像の表示ために読み出されるようになっている。これら2つのフレームバッファエリアにおいては、フレームデータの読み出し及び作成が交互に繰り返し実行されている。
ここで、グラフィックライブラリ113bは、例えば4枚のレイヤーをピクセル(画素)ごとに重ねて1つのフレームを構成するとともに、構成した各フレームを次々と連続表示することで、このシーンを視覚的に構成している。このようにしてグラフィックライブラリ113bは、ユーザモジュール114bの指示に従って、各シーンの連続表示により構成される映像を表示させることができる。
(7.本実施形態による有用性についての言及)
本実施形態の遊技機1では、映像の表示に必要となる非常駐テクスチャデータ群TDGをグループIDにより特定するためのデータロードパターン中に、データ転送休止識別手段であるコード「P」が設けられている。ユーザモジュール114bは、データロードパターン中のグループIDに対応する非常駐テクスチャデータ群TDGをソースROM340からメインRAM321、322に転送していく際に、このコード「P」を認識するとデータ転送を一旦休止する。
また、ユーザモジュール114bは、メインRAM321、322の非常駐エリアHJEに展開した非常駐テクスチャデータ群TDGが既に映像処理に使用された後で不要であるのか、これからまだ映像処理に使用されるのかという情報を格納手段に格納して管理している。
そして、ユーザモジュール114bは、この格納手段を参照して、非常駐エリアHJEに既に展開されている非常駐テクスチャデータ群TDGのうち使用済みとなったものが発生したことを確認すると、データロードパターン中のコード「P」の後ろの順位のグループIDに対応する非常駐テクスチャデータ群TDGを、その使用済みの非常駐テクスチャデータ群TDGの上に上書きする。
そのため、本実施形態の遊技機1によれば、非常駐エリアHJEに格納することができるデータ量を超えるデータ量を有する非常駐テクスチャデータ群TDGを用いた映像表示を行うことができるようになり、非常駐エリアHJEのデータ量の制限を受けることなく多彩な映像表示を行うことが可能となる。
一般的に、どの常駐テクスチャデータを常駐テクスチャデータ群TDGとしてメインRAM321、322の常駐エリアJEに展開するかを決定した後、残りの格納領域を非常駐エリアHJEとして設定することとなる。そのため、直ぐに映像処理を開始することが可能な常駐エリアJEに格納する常駐テクスチャデータ群TDGのデータ量が多くなった場合、非常駐エリアHJEに格納可能なデータ量が少なくなってしまうことが考えられる。しかし、本実施形態のように非常駐エリアHJEの格納領域に格納することができるデータ量以上の非常駐テクスデータ群TDGを使用することが可能となれば、非常駐エリアHJEの格納領域の制限を受けることなく多彩な映像表示を行うことが可能となる。
(8.変形例1)
また、遊技機は、遊技媒体を用いた遊技動作を制御する遊技制御部と、
前記遊技制御部の制御によって前記遊技動作に伴う演出動作を制御する演出制御部と、
前記演出制御部の制御によって表示動作を実行する表示装置とを備える遊技機において、
前記演出制御部は、
映像に必要な素材画像の表示に用いる素材画像データを不揮発的に記憶するとともに、表示すべき映像の構成に関する情報及び表示すべき映像を構成する各シーンの描画に必要な素材画像データを特定するための情報を含むスケジューラデータを不揮発的に記憶する不揮発性映像メモリと、
前記素材画像データ及び前記スケジューラデータを揮発的に記憶可能な揮発性映像メモリと、
オペレーティングシステムを動作させるとともに映像の表示を制御する表示制御プログラムを実行して、前記スケジューラデータに基づく前記表示制御プログラムの指示に従って、前記不揮発性映像メモリから読み出した素材画像データを前記揮発性映像メモリに展開する表示制御プロセッサと、
前記スケジューラデータに基づく前記表示制御プログラムの指示に従って、表示すべき映像に応じて前記揮発性映像メモリから素材画像データを読み出すとともに、この素材画像データに基づく素材画像により構成した映像を前記表示装置に表示させる映像表示プロセッサと、
を含み、
前記不揮発性映像メモリは、
映像の表示に必要な原始素材画像データから原始ヘッダ情報を削除した前記素材画像データの集合からなる複数群の素材画像データ群と、
複数群の前記素材画像データ群に含まれる全ての素材画像データの原始ヘッダ情報に関するヘッダ管理情報と、
を記憶し、
前記ヘッダ管理情報は、
削除された前記原始ヘッダ情報の一部からなるヘッダ抽出情報と、
複数の前記素材画像データ群における各前記素材画像データ群を区別するための群識別子と、
を含み、
前記表示制御プロセッサは、
前記不揮発性映像メモリから前記スケジューラデータを読み出して前記揮発性映像メモリに転送するスケジューラデータ転送手段と、
前記不揮発性映像メモリから読み出した前記ヘッダ管理情報を前記揮発性映像メモリに転送するヘッダ管理情報転送手段と、
複数群の前記素材画像データ群のうち指定された群識別子に対応する前記素材画像データ群を一括して、前記不揮発性映像メモリから読み出して前記揮発性映像メモリに転送する一括転送手段と、
前記ヘッダ抽出情報から、前記転送済みの素材画像データ群に含まれる各素材画像データを各々識別するためのデータ読出情報を生成するデータ読出情報生成手段と、
を含み、
前記映像表示プロセッサは、前記揮発性映像メモリから前記素材画像データ群に含まれる各素材画像データを読み出す時には、前記データ読出情報を使用し、
前記表示制御プロセッサは、
使用頻度が高い素材画像データについては常駐素材画像データとして前記揮発性映像メモリの常駐エリアに展開し、前記常駐素材画像データ以外の他の素材画像データについては使用される際に非常駐素材画像データとして前記揮発性映像メモリの非常駐エリアに展開し、
前記スケジューラデータには、複数のデータロードパターンが含まれ、
前記データロードパターンは、映像の表示に必要となる非常駐素材画像データを特定するための群識別子が使用される順番に並べられて構成され、
前記表示制御プロセッサは、前記データロードパターンを参照することにより、前記不揮発性映像メモリから前記揮発性映像メモリに転送する必要がある非常駐素材画像データを前記群識別子により特定し、
前記データロードパターンを構成する複数の群識別子間には、データの転送を中途で一旦休止することを示すデータ転送休止識別手段が設けられていることを特徴とする。
(9.変形例2)
上記実施形態では、CGを用いて演出表示を行う場合について説明しているが、CGを用いることなく復電時に大量のデータをソースROM340からメインRAM321、322に展開して演出表示を行う遊技機に対しても同様に適用することができる。
(10.変形例3)
上記で説明した実施形態では、表示スケジューラデータHSDをソースROM340からメインRAM321、322に転送し、メインRAM321、322に転送された表示スケジューラデータHSDを読み出して映像表示を行っていたが、ソースROM340に格納されている表示スケジューラデータHSDを直接読み出して映像表示を行うようにしてもよい。
(11.その他の実施形態についての言及)
上記実施形態では、遊技球の始動入賞口への入賞を契機として実行された内部的な抽選結果に応じて遊技状態が移行するパチンコ機に対して本発明を適用した場合について説明したが、本発明はこのような実施形態に限定されるものでない。本発明は、遊技球の始動口への入賞に伴って開閉動作を行う左右一対の可動片を有するパチンコ機(いわゆる「羽根物」と呼ばれるパチンコ機)等の他のパチンコ機に対しても同様に適用することが可能である。
また、本発明は、演出動作を表示するための表示装置を有する遊技機であれば、遊技媒体としてメダルやコインを用いる回胴式遊技機(スロットマシン)等の遊技機に対しても同様に適用することが可能である。なお、本発明が適用可能な回胴式遊技機の態様としては、遊技媒体は特にメダルやコインに限らず、パチンコ機用の遊技球やトークン等を用いる態様であってもよい。
また、上記実施形態では、液晶素子を用いて表示動作を実行する表示手段(装飾図柄表示装置など)を例示しているがこれに限られず、EL(エレクトロルミネッセンス:Electro Luminescence)素子を用いた表示手段或いはプラズマを用いた表示手段に適用しても良い。また上記実施形態におけるソフトウェアの構成は、例えば各ライブラリ113bなどの機能をユーザモジュール114bに含めるなど、適宜変更することができる。
なお、上記実施形態においては、装飾図柄制御基板30が表示に係る演出動作を制御しているが、これに限られず、例えばサブ制御基板35が、表示に係る演出動作以外の他の演出動作のみならず、この装飾図柄制御基板30の機能を備えている形態であってもよい。