本発明の実施例について以下の順序で説明する。本実施例では、パチンコ機としての構成例を示すが、遊技機は、回胴式遊技機としてもよい。
A.遊技機の構成:
B.制御用ハードウェア構成:
C.OSD機能の概要:
D.表示制御処理:
E.キャラクタ表示制御処理:
F.OSD制御処理:
G.始動記憶の変形例:
H.OSD制御処理の変形例(1):
I.OSD制御処理の変形例(2):
J.OSD制御処理の変形例(3):
A.遊技機の構成:
図1は実施例としてのパチンコ機1の正面図である。パチンコ機1は、中央に遊技領域6を備えた遊技盤4が取り付けられている。遊技者は、ハンドル8を操作して遊技領域6内に遊技球を打ち込み、入賞口に入賞させる遊技を行うことができる。入賞口の一つである始動入賞口9に遊技球が入賞すると、パチンコ機1は抽選を行い、その結果に応じて「大当り」か否かが決まる。大当り発生時には、大入賞口10が所定期間開放するなどの大当り遊技が行われる。
上述の抽選の結果は、4つのランプで構成された特別図柄表示装置41に表示される。遊技領域6の中央には、LCD16が備えられており、遊技中に種々の演出画面(装飾図柄と呼ぶこともある)が表示される。始動入賞口9への入賞時、大当りの発生時などにも、それぞれ遊技の状態に応じた演出画面が表示される。装飾図柄は、遊技の状況に応じて種々変化する。抽選結果を表示する過程で、大当りが発生する可能性が高いリーチ状態になると、スピード感あふれる画面が表示され、遊技者をハラハラドキドキさせることによって興趣を高めるようになっている。また、リーチ以前の状態や、遊技が行われていない時のデモ画面では、種々のスプライトを組み合わせて画面自体にも楽しめる要素を多分に含んだ画面が表示される。
B.制御用ハードウェア構成:
図2はパチンコ機1の制御用ハードウェア構成を示すブロック図である。パチンコ機1は、メイン制御基板3、払出制御基板25、サブ制御基板35、装飾図柄制御基板30などの各制御基板の分散処理によって制御される。メイン制御基板3、払出制御基板25、サブ制御基板35は、それぞれ内部にCPU、RAM、ROMなどを備えたマイクロコンピュータとして構成されており、ROMに記録されたプログラムに従って種々の制御処理を実現する。
実施例のパチンコ機1では、種々の不正を防止するため、メイン制御基板3への外部からの入力が制限されている。メイン制御基板3とサブ制御基板35とは単方向のパラレル電気信号で接続されており、メイン制御基板3と払出制御基板25とは、制御処理の必要上、双方向シリアル電気信号で接続されている。払出制御基板25、サブ制御基板35は、それぞれメイン制御基板3からのコマンドに応じて動作する。装飾図柄制御基板30は、サブ制御基板35からのコマンドに応じて動作する。パチンコ機1には、メイン制御基板3が直接に制御する機構もある。図中には、メイン制御基板3が制御する装置の一例として、大入賞口10を駆動するための大入賞口ソレノイド18、および特別図柄表示装置41を例示した。メイン制御基板3は、この他にも、普通図柄表示装置、特別図柄保留ランプ、普通図柄保留ランプ、大当り種類表示ランプ、状態表示ランプなどの表示を制御することができる。また、メイン制御基板3には、遊技中の動作を制御するため、種々のセンサからの検出信号が入力される。図中には一例として入賞検出器15aからの入力を例示した。入賞検出器15aとは、始動入賞口9への入賞を検出するためのセンサである。メイン制御基板3は、入賞検出器15aからの信号に応じて、先に説明した抽選を行い、大当り遊技を実行することができる。メイン制御基板3には、他にも種々の入力がなされているが、ここでは説明を省略する。
遊技時におけるその他の制御は、払出制御基板25、サブ制御基板35を介して行われる。払出制御基板25は、遊技中の遊技球の発射および払い出しを次の手順で制御する。遊技球の発射は、直接的には発射制御基板47によって制御される。即ち、遊技者が、発射ハンドル8を操作すると、発射制御基板47は操作に応じて発射モータ49を制御し、遊技球を発射する。遊技球の発射は、タッチ検出部48によって、発射ハンドル8に遊技者が触れていることが検出されている状況下でのみ行われる。払出制御基板25は、発射制御基板47に対して、発射可否の制御信号を送出することで、間接的に球の発射を制御する。
遊技中に入賞した旨のコマンドをメイン制御基板3から受信すると、払出制御基板25は、賞球払出装置21内の払出モータ20を制御し、払出球検出器22によって球数をカウントしながら規定数の球を払い出す。払出モータ20の動作は、モータ駆動センサ24によって監視されており、球ガミ、球切れなどの異常が検出された場合、払出制御基板25は、表示部4aにエラーコードを表示する。エラー表示された時には、係員が異常を除去した後、操作スイッチ4bを操作することで復旧させることができる。
サブ制御基板35は、遊技中における音声、表示、ランプ点灯などの演出を制御する。これらの演出は、通常時、入賞時、大当たり時、エラー時、不正行為その他の異常が生じた時の警報など、遊技中のステータスに応じて変化する。メイン制御基板3から、各ステータスに応じた演出用のコマンドが送信されると、サブ制御基板35は、各コマンドに対応したプログラムを起動して、メイン制御基板3から指示された演出を実現する。
本実施例では、図示する通り、サブ制御基板35はスピーカ29を直接制御する。LCD16は、装飾図柄制御基板30を介して制御する。装飾図柄制御基板30の回路構成は後述する。サブ制御基板35の制御対象となるランプには、遊技盤面に設けられたパネル装飾ランプ12と、枠に設けられた枠装飾ランプ31がある。サブ制御基板35は、ランプ中継基板32、34を介して、パネル装飾ランプ12および枠装飾ランプ31と接続されており、各ランプを個別に点滅させることができる。
図3は装飾図柄制御基板30の回路構成を示す説明図である。装飾図柄制御基板30は、サブ制御基板35から受けた表示コマンドに応じて、LCD16に画面を表示するための駆動データを出力する。駆動データは、LCD16にマトリックス状に備えられたR,G,Bの各画素の表示階調値を示すデータである。駆動データは、主走査として、LCD16の左から右に順次、画素ごとに出力される。一ラスタ分の出力が完了すると、副走査として直下のラスタに移行し、同様に左から右に向けて順次、画素ごとに駆動データが出力される。
装飾図柄制御基板30には、表示コマンドに応じた駆動データを生成する機能を実現するために図示する種々の回路が用意されている。装飾図柄制御基板30には、まず、駆動データの生成を制御するためのマイクロコンピュータとしてCPU381、RAM382、ROM383が備えられている。ROM383には、駆動データを生成するための表示プログラム、表示コマンドに対し表示すべき画面、表示の時間、表示の順序を規定するスケジューラ、各画面の構成を規定する画面データ、およびOSDデータが記憶されている。OSDデータとは、遊技中に画面データに従って表示される画面(以下、「演出表示」と呼ぶ)に重ね合わせて表示される画面(以下、「OSD表示」と呼ぶ)を表すデータである。
画面データの内容については後述するが、この段階では、LCD16の画素に対応したデータとはなっていない。CPU381は、ROM383を参照して、表示コマンドに応じた画面データを抽出し、VDP(Video Display Processor)385に出力する。これに対し、本実施例では、OSDデータは、LCD16の画素に対応したデータである。
キャラROM386は、スプライトデータ、即ち画面に表示されるスプライトをビットマップで表したデータを格納している。VDP385は、CPU381から受け取った画面データに基づいて、表示すべきスプライトデータをキャラROM386から抽出し、表示データ、即ち表示すべき画像をビットマップ展開したデータを生成して、スケーラ390に出力する。以下、ビットマップ展開するための記憶領域を「キャンバス」と呼ぶ。
VDP385には、CPU381からの画面データを受け取り保持しておくためのレジスタとして、スプライトレジスタ385sおよびVDPレジスタ385vを備えている。スプライトレジスタ385sは、画面データのうち、スプライトの配置や重ね合わせの順序などを示す描画コマンドを受け取るためのレジスタであり、ダブルバッファとして構成されている。つまり、第1バッファ、第2バッファという二つの等しい容量のバッファが備えられている。従って、VDP385は、CPU381から出力された描画コマンドが第1バッファに書き込まれている間、第2バッファに保持されている描画コマンドを読み出して表示データの生成処理を実行することができる。VDPレジスタ385vは、表示データを生成する際の条件設定を指定するコマンド(以下、「条件設定コマンド」と呼ぶ)を記憶するためのレジスタである。条件設定コマンドには、例えば、描画コマンドが複数のレイヤから構成されている場合に、各レイヤの重ね合わせ順序、表示/非表示の設定などが含まれる。条件設定コマンドは比較的低容量であり、書き込みの所要時間が短いことから、VDPレジスタ385vはダブルバッファとはなっていない。
スケーラ390は、VDP385からの表示データをフレームメモリ397に格納する。また、フレームメモリ397から表示データを読み出し、LCD16に出力する。図示する通り、本実施例では、フレームメモリ397の内部は397[0]、397[1]および397[11]以降という複数のフィールドに分かれている。2つのフィールド397[0]、397[1]はそれぞれLCD16の表示領域分の画素データを記憶可能なメモリである。
フィールド397[11]以降には、フィールドごとにOSDデータが格納される。本実施例では、複数種類のOSDデータを格納できることになる。OSDデータのサイズは、スケーラ390で扱い得る範囲で任意に設定可能である。本実施例では、後述する通り、LCD16の表示領域よりも小さいサイズのOSDデータ、大きいサイズのOSDデータが混在している。
先に説明した通り、OSDデータはROM383に格納されている。CPU381が、起動時にこのOSDデータをROM383から読み出し、シリアルI/Fを介してスケーラ390に転送し、フレームメモリ397に格納する。従って、遊技時には、必要なOSDデータは、予めフレームメモリ397の各フィールドに格納されている。
CPU381とスケーラ390を接続するシリアルI/Fは、この他、OSDデータを特定するためのOSD制御信号の出力、にも利用される。CPU381は、フレームメモリ397の各フィールドに表示データを誤り無く格納するため、VDP385に描画コマンドを出力する際に、フィールド信号を生成し、シリアルI/Fを介してスケーラ390に出力する。スケーラ390は、この信号に応じて内部的に制御信号IFLDを生成し、VDP385からの表示データを格納すべきフィールドを特定する。
スケーラ390は、LCD16に16msecのフレームレートで同期信号および駆動データを出力し、LCD16の画像を更新する。同期信号は、スケーラ390自身が生成する。CPU381からOSDデータの使用が指示されている場合には、スケーラ390は、指定されたOSDデータを表示データに重ね合わせた状態の駆動データを生成し、LCD16に出力する。以下、この機能をOSD機能と称する。ただし、本実施例のスケーラ390は、一度に利用できるOSDデータは一つに限られる。もっとも、複数のOSDデータを重ね合わせ可能なスケーラ390を用いることも可能である。
スケーラ390は、この他、表示データを拡大、縮小して、LCD16に出力する機能も有している。また、複数フィールドの表示データを合成してLCD16に出力することもできる。例えば、LCD16の上半分/下半分に分割し、2回に分けて表示データを生成して複数フィールドに格納し、スケーラ390でこれらを合成してLCD16に出力する態様を取ることもできる。これらの拡大、縮小機能や、合成機能を利用することにより、VDP385に過度の負荷をかけるまでなく、高解像度のLCD16用の表示データを生成することが可能となる。
C.OSD機能の概要:
図4はOSD機能の概要を示す説明図である。図4(a)には表示エリアVAとOSDコード面OSDの位置関係を示した。表示エリアVAとは、LCD16で画像を表示可能な領域である。表示エリアVAは、横方向にVAx画素、縦方向にVAy画素のサイズを有しているとする。また、表示エリアVA上の位置は、図示するように左上を原点として設定された左右方向にx軸、上下方向にy軸による座標とされる。
OSDコード面OSDとは、OSDデータによって表される画像が表示される領域である。OSDコード面OSDは、横方向にOSDx画素、縦方向にOSDy画素のサイズを有している。図中では、OSDコード面は表示エリアVAよりも小さい例を示しているが、表示エリアVAよりも大きいサイズであってもよい。
OSDコード面OSDの位置は、OSDコード面の左上の点の座標で示される。図中の例では、表示エリアVAの原点からx方向にOFSTx、y方向にOFSTyだけ移動した点にOSDコード面が配置されている。CPU381は、スケーラ390にOSDデータの使用を指示する場合には、フレームメモリ397に格納されたOSDデータのいずれかを特定するためのデータの他、OSDコード面の位置を規定する表示位置(OFSTx、OFSTy)を出力する。
図4(b)にOSDデータを用いた場合のLCD16の表示画面例を示した。図の例では、最背面に示した表示エリアVAの画像に、OSDコード面OSDの画像が重ね合わせられ、最前面に示した画像がLCD16に表示される。この例のOSDデータでは、OSDコード面OSDのうち、下方の領域OSDLにのみ画像が表示され、上方の領域OSDUは透明状態である。OSDコード面OSDは、このように透明部分を含む形で定義することができる。OSDデータの容量を抑制するため、下方の領域OSDLのみをOSDデータとして定義しておくことも可能である。
図5はOSDデータ例(1)を示す説明図である。ここでは、OSDコード面に始動記憶を表示させる例を示した。始動記憶とは、パチンコ機の始動入賞口に入賞した未抽選の遊技球数を表示装置に示したものである。始動入賞口が2つある場合には、それぞれの入賞口について0〜4個の始動記憶が表示されるため、全部で25通りの表示が行われることになる。本実施例では、左側の始動記憶はハートの数で表し、右側の始動記憶はスペードの数で表すものとした。
本実施例のOSDデータは、これら25通りの始動記憶を表示するためのデータを予め記憶している。図中のフィールド397[11]は、始動記憶が左右ともに0個の状態を表している。フィールド397[12]は、左側の始動記憶が1個、右側の始動記憶が0個の状態を表している。フィールド397[21]は、左側の始動記憶が0個、右側の始動記憶が1個の状態を表している。以下、順にそれぞれ左側、右側の始動記憶の数に応じて図中のマトリックスの各マスの表示が対応する。フィールド397[55]は、左側、右側ともに始動記憶が4個の状態を表している。CPU381は、遊技中の始動記憶の数に応じて、フィールド397[11]〜397[55]のいずれかを選択して、OSDデータの表示を指示することにより、始動記憶の表示を適切に行わせることができる。
図6はOSDデータ例(2)を示す説明図である。この例では、エラー表示を表す例を示した。図6(a)にはOSD機能によるエラー表示の様子を模式的に示している。本実施例では、図示するようにエラー表示用のOSDコード面OSDは、表示エリアVAよりも左右方向に長いサイズとなっている。従って、重ね合わせて表示すると、OSDコード面の一部のみが表示されることになる。CPU381は、エラー表示を行う場合には、OSDコード面の表示位置を、図6(a)の矢印で示すように、順次、左側に移動させていく。この結果、エラー表示は、文字列が左側に流れるテロップのように表示される。こうすることで、表示エリアVAに収まりきらない文字列を表示することが可能になるとともに、動きのある表示を行うことで遊技者の注意を喚起することも可能となる。
図6(b)にはエラー表示用のOSDデータ例を示した。「球詰り」、「停電予告」が生じた時のメッセージとして、フィールド397[61]、397[62]には、それぞれ図示する通りのメッセージが格納されている。CPU381は、これらの異常が生じた時に、フィールド397[61]または397[62]を指定してOSD表示を指示することにより、異常に対応したエラー表示を実現することができる。
OSDデータには、エラーメッセージに限らず、種々のメッセージを格納可能である。図の例では、異物関知に関する警告(フィールド397[63])、遊技が行われていない状態で遊技機の特徴をアピールするためのデモ用メッセージ(フィールド397[64])、遊技機の機能を遊技者に知らせるためのヘルプ(フィールド397[65])などを例示した。図の例では、左右方向に流れるテロップとして用いるために、左右に長いOSDデータ例を示したが、上下方向に長いOSDデータを用意し、上下方向に流れるテロップとして表示させてもよい。
図7はOSDデータ例(3)を示す説明図である。この例では、表示エリアVAの演出表示に装飾を施すOSDデータを用いる。図の例では、星印をちりばめた装飾を表すOSDデータをフィールド397[71]に、演出表示の周囲を取り囲む写真枠状の装飾を表すOSDデータをフィールド397[72]に、演出表示の前面全体をグリッドで覆った状態の装飾を表すOSDデータをフィールド397[73]に格納した例を示した。これらのOSDデータの余白部分は、演出表示が透視可能に構成されている。
これらの装飾を使い分けることにより、演出表示は同一であっても、LCD16に表示される画面の内容、印象を大きく変えることができる。従って、遊技中に遊技の状況に応じてOSDデータを使い分けることによって、より多彩な表示を行い、遊技機の興趣を高めることが可能となる。
D.表示制御処理:
図8は表示制御処理のフローチャートである。CPU381がVDP385に対して描画コマンド等を出力し、表示データを生成させるとともに、スケーラ390に対してOSD制御信号を出力しOSD表示を行わせるために実行する処理である。この処理は、16msec周期の割込処理として実行される。
この処理を開始すると、CPU381は、処理を実行するための準備として、多重割込みを許可し(ステップS1)、ノイズキャンセル・判定処理を行う(ステップS2)。そして、割込端子の端子レベルを確認し(ステップS3)、端子レベルが異常の場合には、ノイズ等の影響による異常なトリガに基づいて表示制御処理が開始されたものと判断し、そのまま処理を終了する。
端子レベルが正常の場合には、サブ制御基板35からのコマンドを入力し(ステップS4)、キャラクタ表示制御処理(ステップS100)を行う。キャラクタ表示制御処理とは、サブ制御基板からのコマンドに応じた画面データ(図3参照)を用いて、スプライトを配置した演出表示を実行するための処理である。キャラクタ表示制御処理の内容については後で詳述する。
キャラクタ表示制御処理(ステップS100)が終了すると、OSD制御を行うか否か、即ちOSD機能による表示内容の変更を行うべきか否かを判断する(ステップS195)。先に図5〜7で示した通り、本実施例では、始動記憶の表示、エラー表示、装飾表示にOSD機能を利用する。従って、サブ制御基板35からのコマンドによって、これらの状況に変化が生じたことが検知された時、つまり始動記憶の数に変化が生じた時、エラーが生じた時には、OSD制御処理(ステップS200)を実行し、OSD表示の内容を更新する。以下、キャラクタ表示制御処理(ステップS100)、OSD制御処理(ステップS200)のそれぞれの処理について順に内容を詳述する。
E.キャラクタ表示制御処理:
図9はキャラクタ表示処理における表示データの生成例を示す説明図である。図の右下に示す画像をLCD16に表示する手順を示した。図の左側には、VDP385内での処理概要を示し、図の右側にはフレームメモリ397に格納されるデータ内容を示した。図の左側に示すように、VDP385内では、描画データをビットマップ展開するためのキャンバスCV01が用意されている。回路上では、キャンバスCV01内の全画素に対応するメモリ領域が用意されることになる。以下、説明の便宜上、キャンバスCV01の左上を原点として左から右に向かう主走査方向をx方向、上から下に向かう副走査方向をy方向と呼ぶこともある。
本実施例では、キャンバスCV01に対応する物理的なメモリが用意されている場合を例にとって説明するが、キャンバスCV01は仮想的なものでもよい。例えば、キャンバスCV01上への描画をラスタ単位で行う場合には、1ラスタ分の描画データをビットマップ展開するためのラインメモリ、およびキャンバスCV01のどのラスタを展開しているのかを管理するためのレジスタを用意しておけば足りる。VDP385が描画可能なキャンバスCV01のサイズは、このレジスタの上限値で決定されることになる。本実施例は、このレジスタの上限値が512に制限されている場合に相当すると言うこともできる。
キャンバスCV01内には、VGA画像相当の表示エリアVAが定義される。VDP385は、キャンバスCV01上に画像をビットマップ展開した後、表示エリアVA内の画像を切り出し、表示データとしてスケーラ390に出力する。本実施例において、キャンバスCV01を表示エリアVAよりも大きいサイズとしたのは、以下に示す通り、スプライトが表示エリアVAから一部はみ出す状態で配置された場合でも比較的簡易な処理でビットマップ展開可能とするためである。
仮に、表示エリアVAとキャンバスCV01が同じサイズの場合を考える。この場合には、スプライトが表示エリアVAからはみ出して配置される場合の処理方法としては、本実施例で示す方法の他、キャラROMから取得したスプライトデータのうち、表示エリアVA内に存在する部分のみを切り出してビットマップ展開することになる。しかし、この方法では、描画時に各スプライトから表示エリアVA内にある部分のみを抽出する処理が必要となる分、処理負荷が非常に高くなる。これに対し、実施例のようにキャンバスCV01を表示エリアVAよりも大きくしておけば、スプライトが表示エリアVAからはみ出す場合でも、上述の切り出しを行うまでなく、ビットマップ展開できるため、処理の簡素化を図ることができるのである。
CPU381から上画像の描画データを受け取り、VDP385が画像を描画すると、キャンバスCV02の状態が得られる。VDP385は、キャンバスCV02から、表示エリアVA内の画像を切り出し、スケーラ390を介して(図示を省略)、表示データとして出力する。この表示データは、フレームメモリ397の演出表示用のフィールド397[0](またはフィールド397[1])に格納される。この結果、フレームメモリ397内には、状態FM01で示す内容の表示データが格納されることになる。この表示データを出力することにより、LCD16には右下に示した画像が表示される。
図10はキャラクタ表示モードにおけるVDP385への画面データ出力の様子を示すタイミングチャートである。図9で説明した手順でVGA画像の表示データがフレームメモリに格納され、LCD16に出力される様子を示した。VDP385のスプライトレジスタ385sには、32msec周期で繰り返し描画コマンドが書き込まれる。図中では、LCD16に表示されるフレームに対応して「VGA1」、「VGA2」のように示した。
図3で説明した通り、スプライトレジスタ385sはダブルバッファとなっている。第1バッファへの「VGA1」の描画コマンドの書き込みが完了すると、この描画コマンドは、DMA信号に同期して、第2バッファにDMA転送され、VDP385によるビットマップ展開が開始される。この結果、図中に示すように、「VGA1」の書き込みが完了し、DMA信号が出力された後で、VDP出力として「VGA1出力」が得られる。VGA2以降の描画コマンドおよび表示データの出力も同様のタイミングで繰り返される。また、VDP出力と併せてVDP385からは同期信号VSYNCが出力される。
CPU381からVDP385には、描画コマンドの他、描画条件を指定する条件設定コマンドも出力される。このコマンドはVDPレジスタに格納される。また、CPU381は、VDP385に描画コマンドを出力する際に、フィールド信号を出力する。フィールド信号は、図示する通り、32msecごとにON/OFFが切り替わる信号である。スケーラ390は、フィールド信号に連動する形でデータ読み書きをする対象となるフィールドを指定する1ビットの制御信号IFLDを内部的に生成する。制御信号IFLDのON/OFFは、それぞれフレームメモリ397のフィールド397[0]、[1]に対応する。
例えば、VDP385から「VGA1出力」がなされている時点では、制御信号IFLDはOFFであるから、書き込みメモリはフィールド397[0]となる。「VGA2出力」がなされている時点では、制御信号IFLDはONであるから、書き込みメモリはフィールド397[1]となる。読み出しメモリは、制御信号IFLDを反転させた信号で指定すればよい。「VGA1出力」がなされている時点では、制御信号IFLDはOFFとなっているから、その反転信号はONである。従って、フィールド397[1]が読み出しメモリとなる。VGA1出力が完了すると、制御信号IFLDがONとなるから、読み出しメモリはフィールド397[0]に切り替わる。
以上で示した手順により、VDP385はCPU381から描画コマンドを受け取り、表示データを生成してフレームメモリ397に書き込む。フレームメモリ397の書き込みメモリは、32msec周期で切り替わる。スケーラ390は、また、フレームメモリ397から、格納済みの表示データを読み出し、LCD16に駆動データとして出力する。図示する通り、LCD16への出力は、同一の読み出しメモリから2回ずつ繰り返して行われる。つまり、LCD16には16msec周期で同じ駆動データが出力され、同じ画面が表示される。画面内容は、32msec周期で切り替わることになる。表示データの出力等を16msec周期で実行し、LCD16の画面内容を16msecで更新してもよい。
図11はキャラクタ表示制御処理のフローチャートである。表示制御処理(図8)のステップS100に相当する処理であり、CPU381がVDP385に対して描画コマンド等を出力して演出表示用の表示データを生成させるための処理である。この処理は、32msec周期の割込処理として実行される。16msecの割込処理として構成してもよい。
この処理を開始すると、CPU381は、VDP385を初期化する(ステップS102)。この処理には、VDP385が表示データの生成に使用する種々のレジスタ等の値の初期化が含まれるが、CPU381からの描画コマンド等を保持しておくべきスプライトレジスタおよびVDPレジスタの初期化は含まれない。スプライトレジスタ等の初期化は、別途実行することになる。
次に、CPU381はVDP385のスプライトレジスタを初期化する(ステップS104)。また、VDPレジスタに条件設定コマンドを設定する(ステップS106)。これは、表示データ生成時に使用される種々の設定をVDPレジスタに書き込む処理である。これらの初期化およびVDPレジスタ設定が完了すると、CPU381は、次にサブ制御基板35から受信した表示コマンドの内容を解析し(ステップS108)、LCD16に表示すべき画面データを特定する。そして、この画面データに基づいてVGA画像の描画コマンドをVDP385に出力する(ステップS110)。
CPU381は、描画コマンド出力の後、スプライトの最適化を行う(ステップS112)。これは、次の手順で、VDP385に定義された表示エリア(図9のVA参照)から全体が外れるようなスプライトについては、描画コマンドから省略する処理である。先に説明した描画コマンド出力時には、CPU381は、スプライトが表示エリアに含まれるか否かを判定することなく、画面データで特定された全てのスプライトを描画対象としてVDP385のスプライトレジスタに書き込む。各スプライトについては、描画位置の指定の他、表示/非表示を切り換えるためのフラグが設けられており、この段階では、このフラグは全て「表示」に設定されている。CPU381は、スプライトの最適化では、それぞれのスプライトレジスタについて、書き込んだスプライトレジスタのサイズ、位置に基づいて、表示エリアから全体が外れるか否かを判定する。全体が外れるスプライトに対しては、CPU381は、上述のフラグを切り換え「非表示」に設定する。
スプライト最適化は、上述の通り、全体が表示エリアから外れるスプライトをキャンバス上に描画するという無駄な処理を回避するための処理である。描画コマンドを出力する際に、一つ一つのスプライトについて表示エリアから外れるか否かの判定を行う方法を採ることも可能ではあるが、本実施例では、描画コマンドの出力と、スプライト最適化に分けることにより、同種の処理を集約することができ、処理効率を向上させている。もっとも、スプライト最適化は、VDP385の処理効率を向上させるための処理であるため、省略することも可能である。CPU381は、以上の処理が完了すると、フィールド信号(図10参照)を切り換える(ステップS114)。
次に、CPU381は、OSD表示の要否を判断する(ステップS116)。本実施例では、先に図7で示したように、演出表示に連動させて、装飾表示を使い分ける。本実施例では、サブ制御基板からのコマンド、または演出表示の内容を規定する画面データに、装飾表示の内容を示すコマンドを含めるものとした。CPU381は、このコマンドに基づき、装飾表示を行うべきと判断した時は(ステップS116)、OSD制御処理(ステップS118)を実行する。装飾表示を行わない時には、OSD制御処理をスキップして、キャラクタ表示制御処理を終了する。
F.OSD制御処理:
図12はOSD制御処理のフローチャートである。表示制御処理(図8)のステップS200、およびキャラクタ表示制御処理(図11)のステップS118に相当する処理である。この処理では、CPU381は、スケーラ390に対してOSD表示を行う旨の指示、OSD表示で用いるべきOSDデータおよびその表示位置を指示する。図5〜7で説明した通り、本実施例では、始動記憶、エラー表示、装飾表示の3種類をOSD表示で行う。「エラー表示」とは、ここでは図6で示した警告、デモ、ヘルプなど、何らかのメッセージの表示を行う場合を代表する用語として用いる。表示制御処理(図8)のステップS200では始動記憶またはエラー表示のいずれかが指定され、キャラクタ表示制御処理(図11)のステップS118では装飾処理が指定された状態で、OSD制御処理が実行されることになる。
OSD制御処理では、CPU381は、遊技の状態が「大当り」の場合には、スケーラ390にOSDの非表示を設定し(ステップS203)、OSD制御処理を終了する。非表示の設定は、シリアルI/F(図3参照)を介してCPU381からスケーラ390に設定用の制御信号を送信することによって行う。本実施例では、大当りの時には、LCD16には、演出表示のみを行うものとしたからである。大当り時にも始動記憶、エラー表示、装飾表示などを用いる場合には、ステップS202、S203の処理は省略してもよい。OSDは、大当り時以外の遊技状況で非表示としてもよい。このように表示/非表示を切り換えることにより、OSD表示が遊技者に与える印象を強くすることができる。
大当りでない場合において(ステップS202)、エラー発生か否かを判断する(ステップS204)。「エラー発生」とは、ここでは警告、デモ、ヘルプなども含むいずれかのメッセージ表示を行うべき場合を代表する用語として用いる。CPU381はエラー発生時には、遊技機で生じているエラーの内容に応じて、図6に示したいずれかの表示内容を選択し、表示すべきOSDデータのフィールド397[61]、[62]等を特定する。本実施例では、この指示は、フレームメモリ397内でOSDデータを格納しているアドレスで特定するものとした。
また、CPU381はOSDデータの表示位置も特定する。あるエラー表示を開始する時点では、図6(a)の上図に示すように、メッセージの左端が表示エリアVAの左端に一致するように表示位置を設定すればよい。CPU381は、テロップ状の表示を実現するため、エラー表示が開始された後、同一のエラー表示を行うべき状態が継続する限り、OSD制御処理が実行される度に一定量ずつ表示位置を左にシフトしていく。
エラー発生でない場合において(ステップS204)、始動記憶を更新すべき場合には(ステップS206)、CPU381は、始動記憶の個数に基づき、図5に示したいずれのOSDデータを表示すべきかを選択し、その格納アドレスを特定するとともに、その表示位置を特定する(ステップS207)。本実施例では、始動記憶の場合には、常に一定の表示位置とした。
始動記憶が更新不要の時(ステップS206)、CPU381は、装飾表示を行うべきものと判断し、キャラクタ表示で指定された装飾を選択し(図7参照)、その格納アドレスを特定するとともに、その表示位置を特定する(ステップS209)。
以上で説明した通り、大当りでない場合には、それぞれ遊技の状況に応じて、CPU381は、OSDデータの格納アドレスおよび表示位置を特定する(ステップS205,S207、S208)。CPU381は、スケーラ390にこれらの情報をOSD制御信号として送信することによりOSD表示設定を行い(ステップS209)、OSD制御処理を終了する。スケーラ390は、このOSD制御信号を受信して、指定されたOSDデータをフレームメモリ397から読み出し、図5〜7に示したように、演出表示の画面に重ね合わせることでOSD表示を実現する。
以上で説明した実施例の遊技機によれば、OSD機能を用いて始動記憶、エラー表示、装飾表示を行わせることができ、VDP385を、始動記憶等を表示させるための処理負荷から開放することができる。従って、VDP385の処理能力を存分に、スプライトを用いた演出表示、即ちキャラクタ表示に割り当てることが可能となり、処理能力を有効活用して興趣に富んだ演出表示を実現することが可能となる。
上述の実施例では、更に、図5に示すように、始動記憶として取りうる全ての表示パターンを予めOSDデータとして記憶しているため、OSD表示時には、この中のいずれかを選択するだけで非常に簡便な処理で始動記憶を表示させることができる利点がある。
また、エラー表示では、表示エリアよりも大きいサイズのメッセージを用い、表示位置を変更しながら表示させることにより、テロップ状の表示を容易に実現することができる。実施例では、表示エリアよりも大きいサイズのエラー表示を用いる場合を例示したが、表示エリアよりも小さいサイズのエラー表示を用いる場合でも、同様にしてテロップ状の表示を実現することは可能である。
更に、実施例では、キャラクタ表示と連動して装飾表示を使い分けることができる。従って、キャラクタ表示と装飾表示の組み合わせによって、多彩な演出表示を実現することができる。
G.始動記憶の変形例:
実施例では、スケーラ390は単一のOSDデータのみを表示させることが可能な場合を例示した。これに対し、スケーラ390に複数のOSDデータを重ね合わせて表示するレイヤ機能を備えるようにしてもよい。以下では、スケーラ390が、OSD表示用のレイヤ機能を備える場合において、始動記憶を表示させるための処理を変形例として示す。
図13は始動記憶をOSD表示させる場合の変形例を示す説明図である。実施例と同様、表示エリアVAの前面に始動記憶を表すOSDを重ねて表示する状態を示した。ただし、変形例では、最下位レイヤのOSDデータとして始動記憶フレームを表すデータを用意し、フィールド397A[11]に格納する。
変形例では、更に、この始動記憶フレームの左側に重ねて表示されるべき上位レイヤとして、左側の始動記憶をハートで表したOSDデータを用意し、フィールド397A[21]〜[24]に格納する。また、右側に重ねて表示されるべき上位レイヤとして、右側の始動記憶をスペードで表したOSDデータを用意し、フィールド397A[31]〜[34]に格納する。変形例では、始動記憶フレームのOSDデータ397A[11]と、左側のOSDデータ397A[21]〜[24]、および右側のOSDデータ397A[31]〜[34]の組み合わせにより、図5に示した全種類の始動記憶を表示させることが可能である。
図14は変形例におけるOSD制御処理のフローチャートである。実施例(図12)のステップS206〜S209までの処理を抜粋して示した。始動記憶の更新が不要な場合(ステップS206)の処理(ステップS208)は実施例と同様である。
始動記憶の更新を行う場合には(ステップS206)、CPU381は、まず下位レイヤとして表示すべき始動記憶フレームの格納アドレス397A[11]および表示位置を特定する(ステップS207A)。そして、左側の始動記憶の個数に基づき、左側用のOSDデータの格納アドレス397A[21]〜[24]およびその表示位置を特定する。表示位置は、始動記憶フレームにおいて左側用のハートマークを表示すべき位置に合わせる。左側の始動記憶が0個の場合には、ステップS207Bの処理を省略すればよい。
次に、CPU381は、右側の始動記憶の個数に基づき、右側用のOSDデータの格納アドレス397A[31]〜[34]およびその表示位置を特定する。表示位置は、始動記憶フレームにおいて右側用のスペードマークを表示すべき位置に合わせる。右側の始動記憶が0個の場合には、ステップS207Cの処理を省略すればよい。
CPU381が以上の通り、OSDデータの格納アドレスおよび表示位置を特定して、スケーラ390に出力することにより、OSD機能によって始動記憶を表示させることができる。この変形例では、始動記憶フレームと、左側用/右側用の始動記憶の上下関係を指定しておらず、また指定しなくても支障なく表示可能であるが、ステップS207A〜207Cの処理において、OSDデータの格納アドレス、表示位置と併せて上下関係を特定するようにしてもよい。
変形例の処理によれば、予め記憶しておくOSDデータの容量を抑制しつつ、多彩なOSD表示を実現することができる利点がある。この変形例では、左側/右側のそれぞれについて、始動記憶が1個〜4個までの各表示内容をOSDデータとして個別に用意する例を示した。これに対し、左側用に1個の「ハートマーク」を表すOSDデータを用意し、右側用に1個の「スペードマーク」を表すOSDデータを用意して、始動記憶の数に応じて表示位置を変えながらそれぞれのマークを繰り返し表示することで、図5中の全種類を表示するようにしてもよい。
H.OSD制御処理の変形例(1):
実施例では、スケーラ390が、演出表示に対して、一つのOSDデータしか重ねて表示できない場合を例示した。遊技中には、例えば、始動記憶を表示している最中にエラーが生じた場合など、2つのOSDデータを同時に表示させることが望ましい状況が生じ得る。変形例(1)では、複数のOSDデータを同時に扱えないスケーラ390を用いながら、上述のような場合に、複数のOSDデータの表示を実現するための制御処理について例示する。
図15はOSD制御処理の変形例(1)のフローチャートである。実施例において図15に代わる処理である。この処理では、エラー表示については、単独でOSD表示させる他、始動記憶または装飾表示と併せて表示させることも可能である。
エラー表示を他のOSDデータと併せて表示するモードを、ここでは「デュアルモード」と称する。デュアルモードでは、2つのOSDデータを交互に表示させることによって、残像効果により、遊技者に双方の表示内容を視認させる方法を採る。デュアルモードのON/OFFは、専用のフラグのON/OFFによって切り換える。この処理例では、デュアルモードの設定によってOSD制御処理における処理内容が切り替わるだけで、デュアルモードの設定指示をスケーラ390等に出力する必要はない。
変形例のOSD制御処理では、CPU381は、実施例と同様、大当りか否かを判定し(ステップS302)、大当りの場合には、OSD非表示設定を行い、デュアルモードをOFFとする(ステップS303)。
大当りでない場合において(ステップS302)、エラー発生していない場合には(ステップS304)、CPU381はデュアルモードをONとする(ステップS310)。デュアルモードをONとするのは、エラー発生でない場合、即ち始動記憶または装飾表示をOSD表示させる場合には、併せてエラー表示をさせる可能性があるからである。
デュアルモードをONとした後、始動記憶の更新が必要であれば(ステップS311)、CPU381は、始動記憶の個数に基づきOSD格納アドレスおよび表示位置を特定する(ステップS312)。始動記憶の更新が不要であれば(ステップS311)、キャラクタ表示の内容に基づき装飾表示用のOSD格納アドレスおよび表示位置を特定する(ステップS313)。ステップS312、S313の処理は、実施例(図12)のステップS207,S208と同じ処理である。
一方、大当りでない場合において(ステップS302)、エラーが発生している場合には(ステップS304)、CPU381はエラー表示をすべきと判断する。この状態には、デュアルモードでエラー表示をすべき場合と、そうでない場合とがある。
デュアルモードで表示すべき場合には、OSD表示させる内容を、エラー表示と、始動記憶または装飾表示との間で交互に切り換える。この切換は、交互フラグと呼ばれるフラグによって制御される。CPU381は、デュアルモードで表示すべき場合には(ステップS305)、交互フラグを1だけ増加することで更新する(ステップS306)。交互フラグは1ビットのフラグであるため、もとの値が0であればステップS306の処理によって値1となり、もとの値が1であればステップS306の処理によって値0となる。
CPU381は、交互フラグが値1である場合には(ステップS307)、始動記憶の更新要否に応じて(ステップS311)、交互でのOSD表示のうち、始動記憶表示または装飾表示を行わせるべきタイミングにあると判断し、そのOSD格納アドレス、表示位置を特定する(ステップS311)。
交互フラグが値0である場合には(ステップS307)、CPU381は、交互でのOSD表示のうち、エラー表示を行わせるべきタイミングにあると判断し、CPU381はエラー内容に基づきOSD格納アドレスおよび表示位置を特定する(ステップS308)。デュアルモードにない場合(ステップS305)には、常に交互フラグは値0であり(ステップS307)、エラー内容の表示が行われることになる(ステップS308)。CPU381は、以上の処理によって特定されたOSD格納アドレスおよび表示位置をスケーラ390に出力してOSD表示設定し(ステップS314)、OSD制御処理を終了する。
変形例(1)のOSD制御処理によれば、デュアルモードにおいて始動記憶または装飾表示と、エラー表示とを、OSD制御処理を行う度に交互に切り換えてOSD表示させることができる。こうすることにより、残像効果によって、遊技者に双方のOSD表示を見せることが可能となる。ただし、通常の表示時よりも各OSD表示の表示デューティは低減するため、OSD表示の輝度は単一のOSDデータのみを表示する時に比べて低下する。
図15の例では、始動記憶または装飾表示と、エラー表示との表示デューティを1対1とする場合を例示した。つまり、OSD制御処理が実行される度に、エラー表示と始動記憶等の表示とを切り換える例を示した。これに対し、両者の表示デューティを2対1、3対1などに変化させてもよい。こうすることによって、表示デューティに応じて、それぞれのOSD表示の輝度を調整することが可能である。
I.OSD制御処理の変形例(2):
次に、変形例(1)と同様、複数のOSDデータを同時に扱えないスケーラ390を用いながら、上述のような場合に、複数のOSDデータの表示を実現するための制御処理について例示する。この変形例では、複数のOSDデータを表示させる必要が生じた場合には、これらを合成したOSDデータを生成する方法を採る。
図16は変形例(2)におけるOSD表示の様子を示す説明図である。図16(a)は、始動記憶を表示した状態を示している。図16(b)は、エラー表示の例である。この2つのOSD表示を同時に行う場合には、図16(c)に示すOSD表示がなされることになる。変形例では、上述の2つのOSD表示を同時に行う必要が生じた場合には、図16(c)に相当するOSDデータを新たに生成し、フレームメモリ397に格納して、OSD表示に使用する。
図16(c)の右側には、CPU381が、新たに生成されたOSDデータを管理するための管理テーブルTosdのデータ構造を示した。図示する通り、この管理テーブルTosdでは、新たなOSDデータの格納アドレス、始動記憶の内容、エラーコードが対応づけて記憶されている。図の例では、左側が1個、右側が0個という始動記憶に、エラーコードE1というエラー表示を合わせたOSD表示はフィールド397[81]というアドレスに格納されていることを示している。ここでは、始動記憶とエラー表示を合成したOSDデータの例を示したが、装飾表示とエラー表示を合成したOSDデータを生成することもできる。この場合には、管理テーブルTosdに、OSD格納アドレス、装飾表示の内容、およびエラーコードを対応づけて記憶させればよい。
図17はOSD制御処理の変形例(2)のフローチャートである。実施例において図15に代わる処理である。この処理では、エラー表示は、単独でOSD表示させる他、始動記憶または装飾表示と併せて表示させる「デュアルモード」での表示も可能である。この変形例では、2つのOSDデータを合成したOSDデータを新たに生成することによって、デュアルモードでの表示を実現する。デュアルモードのON/OFFは、専用のフラグのON/OFFによって切り換える。この処理例では、デュアルモードの設定によってOSD制御処理における処理内容が切り替わるだけで、デュアルモードの設定指示をスケーラ390等に出力する必要はない。
変形例のOSD制御処理では、CPU381は、実施例と同様、大当りか否かを判定し(ステップS402)、大当りの場合には、OSD非表示設定を行い、デュアルモードをOFFとする。また、合成したOSDデータを管理するための管理テーブルTosdを初期化する(ステップS403)。
大当りでない場合において(ステップS402)、エラー発生していない場合には(ステップS404)、CPU381はデュアルモードをONとする(ステップS421)。デュアルモードをONとするのは、エラー発生でない場合、即ち始動記憶または装飾表示をOSD表示させる場合には、併せてエラー表示をさせる可能性があるからである。
デュアルモードをONとした後、始動記憶の更新が必要であれば(ステップS422)、CPU381は、始動記憶の個数に基づきOSD格納アドレスおよび表示位置を特定する(ステップS423)。始動記憶の更新が不要であれば(ステップS422)、キャラクタ表示の内容に基づき装飾表示用のOSD格納アドレスおよび表示位置を特定する(ステップS424)。ステップS423、S424の処理は、実施例(図12)のステップS207,S208と同じ処理である。
一方、大当りでない場合において(ステップS402)、エラーが発生している場合には(ステップS404)、CPU381はエラー表示をすべきと判断する。この状態には、デュアルモードでエラー表示をすべき場合と、そうでない場合とがある。
デュアルモードがOFFの場合には(ステップS405)、CPU381は、単独でエラー表示を行わせるべきタイミングにあると判断し、エラー内容に基づきOSD格納アドレスおよび表示位置を特定する(ステップS406)。デュアルモードがONの場合には(ステップS405)、CPU381は、始動記憶の個数またはエラー内容に基づき管理テーブルTosdを参照する(ステップS407)。
表示すべき始動記憶または装飾表示、およびエラー表示の内容に合致するOSDデータが管理テーブルTosdに登録されていない場合、CPU381は新たなOSDデータを生成する必要があると判断する(ステップS408)。そして、合成OSDデータを生成し、フレームメモリ397に格納するとともに、その格納アドレス等を管理テーブルTosdに登録・更新する(ステップS409)。CPU381は、表示すべきOSDデータとして、新たに登録された合成OSDデータの格納アドレスおよび表示位置を特定する(ステップS410)。
表示すべき始動記憶または装飾表示、およびエラー表示の内容に合致するOSDデータが管理テーブルTosdに登録されている場合には(ステップS408)、新たな合成OSDデータの格納をスキップして、合成OSDデータの格納アドレスおよび表示位置を特定する(ステップS410)。
CPU381は、以上の処理で特定されたOSD格納アドレスおよび表示位置をスケーラ390に出力して、OSD表示設定を行い(ステップS430)、OSD制御処理を終了する。
変形例(2)のOSD制御処理によれば、デュアルモードにおいて始動記憶または装飾表示と、エラー表示とを合成したOSDデータを生成してOSD表示させることができる。こうすることにより、表示輝度の低下を招くことなく安定した画像で遊技者に双方のOSD表示を見せることが可能となる。
図16の例では、合成OSDデータの内容を管理テーブルTosdで管理することによって、既に生成した合成OSDデータの有効活用を図ることができる。従って、合成OSDデータの生成にかかる負荷を軽減することが可能である。また、OSD非表示設定がなされた時(ステップS403)には、管理テーブルTosdも初期化するため、従前の合成OSDデータは以後、使用不能となる。このように所定のタイミングで管理テーブルTosdを初期化することにより、フレームメモリ397内に無用な合成データが多量に蓄積され、フレームメモリ397の容量不足を招くという弊害を回避することができる。
J.OSD制御処理の変形例(3):
上述の実施例および変形例では、OSDデータを予めフレームメモリ397に格納しておく例を示した。フレームメモリ397には、事前に必ずしも全てのOSDデータを用意しておく必要はなく、必要に応じてOSDデータを生成するようにしてもよい。フレームメモリ397の容量が小さい場合には、この方法が有用である。以下では、変形例として、必要に応じてOSDデータを生成する場合の処理例を示す。
図18はOSDデータを生成する様子を示す説明図である。演出表示において動画を表示するための一連の表示データFr1〜Fr6が生成される状態を示した。先に図3で説明した通り、VDP385は、表示データFr1〜Fr6を生成し、交互にフレームメモリ397のフィールド397[0]、397[1]に格納する。一連の動画については、生成すべき表示データの順序、全体の表示データ数、表示時間がスケジューラで管理されている。
図18(b)は、上述の一連の表示データFr1〜Fr6を生成している最中にOSDデータの生成が必要になった場合の処理例を示している。この変形例では、新たなOSDデータをVDP385に生成させる。つまり、この例では、ROM383(図3参照)に画面データと同様の形式でOSDデータを格納しておき、CPU381は、OSDデータを生成すべきタイミングになった時点で、ROM383から必要なOSDデータを読み出し、描画コマンドとしてVDP385に出力するのである。この際、CPU381は、スケーラ390にもOSDデータとしての格納先を指示する制御信号を出力する。こうすることでOSDデータをVDP385によって生成するとともに、生成されたデータを、演出表示用のフィールド397[0]、[1]ではなく、OSDデータ用のフィールドに格納させることができる。
VDP385は、OSDデータを生成する間は、表示データを生成することはできない。図の例は、表示データFr3を生成する時点でOSDデータの生成が必要となった状態を示している。VDP385は、表示データFr3に代えて、OSDデータを生成し、フィールド397[11]に格納する。図18(b)の例では、その間もスケジューラ上は、生成すべき表示データの管理を進行させる。従って、OSDデータの生成が完了した後は、VDP385は表示データFr4の生成に移行することになり、表示データFr3の生成は欠落する。LCD16の演出表示は、表示データFr2を2回繰り返し表示した後、表示データFr4の画面に移行するため、厳密にはギクシャクした動きとなる。ただし、1フレームの欠落による影響は、遊技者がよほど注視していないと気づかない程度の微少なものである。図18(b)の態様では、途中でフレームの欠落が生じるものの、表示データFr1〜Fr6全体の表示時間はOSDデータの生成有無に関わらず一定であるという利点がある。
図18(c)も、一連の表示データFr1〜Fr6を生成している最中にOSDデータの生成が必要になった場合の処理例を示している。この例では、VDP385が新たなOSDデータを生成し、フィールド397[11]に格納する間、スケジューラの進行を停止する。従って、OSDデータの生成が完了した後は、本来生成されるべき表示データFr3から表示データの生成が再開される。この態様では、フレームの欠落は生じないものの、全体の表示時間が本来の時間Tscを超えてしまう。他の動画への移行タイミングとの関係で、全体の表示時間をTscに抑える必要がある場合には、最後の表示データFr6を削除する。
図19はOSD制御処理の変形例(3)のフローチャートである。実施例において図15に代わる処理である。変形例のOSD制御処理では、CPU381は、実施例と同様、大当りか否かを判定し(ステップS502)、大当りの場合には、OSD非表示設定を行う(ステップS503)。
大当りでない場合において(ステップS502)、エラー発生している場合には(ステップS504)、CPU381はエラー表示をすべきと判断し、エラー内容に基づきOSDデータの描画コマンドをVDP385に出力する(ステップS505)。併せて、CPU381はOSDデータとしての格納をスケーラ390に指示する。VDP385が描画コマンドに基づいて生成したOSDデータは、スケーラ390によってOSDデータ用の領域に格納される。
エラー発生していない場合において(ステップS504)、始動記憶の更新が必要な場合には(ステップS506)、CPU381は、始動記憶の個数に基づきOSDデータの描画コマンドをVDP385に出力する(ステップS507)。併せて、CPU381はOSDデータとしての格納をスケーラ390に指示する。VDP385が描画コマンドに基づいて生成したOSDデータは、スケーラ390によってOSDデータ用の領域に格納される。
始動記憶の更新が不要な場合には(ステップS508)、CPU381はキャラクタ表示の内容に基づき、装飾表示用のOSDデータを生成するための描画コマンドをVDP385に出力する(ステップS508)。併せて、CPU381はOSDデータとしての格納をスケーラ390に指示する。VDP385が描画コマンドに基づいて生成したOSDデータは、スケーラ390によってOSDデータ用の領域に格納される。
CPU381は、以上の処理でOSDデータの生成・格納が完了すると、このOSDデータの格納アドレスおよび表示位置を特定して、スケーラ390に出力することにより、OSD表示設定を行って(ステップS509)、OSD制御処理を終了する。
上述のOSD制御処理では、図18(b)、(c)に示したいずれの態様でスケジューラ管理を行うことも可能である。図18(b)の態様を取る場合には、OSDデータの生成有無に関わらずスケジューラの管理を通常通りに行えば良い。図18(c)の態様では、OSDデータ生成時にスケジューラの進行を停止する必要がある。従って、図18(c)の態様を取る場合には、ステップS505、S507、S508の実行時に、CPU381がスケジューラの進行を停止する処理を施すようにすればよい。
変形例(3)のOSD制御処理によれば、必要に応じてOSDデータを生成して、OSD表示を行うことができる。従って、OSD表示に要求されるフレームメモリ397の容量を抑制することができる利点がある。
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。上述の各実施例および変形例は、適宜、組み合わせて用いることも可能である。実施例および変形例では、LCD16を表示装置として用いる場合を例示したが、本発明は他の種類の表示装置を用いる場合にも適用可能である。