※以下の内容は基本的にアーケードエミュレータMAMEのソースコードを元にしています。
全般
- ドットクロック周波数は 6.144MHz。
- 水晶振動子のクロックを 3分周して得ている。
- 4ドットサイクル=1MPUサイクルに相当。
- 水平解像度は表示領域288ドット、非表示領域(水平ブランク)96ドット。計384ドット。
- 垂直解像度は表示領域224ドット、非表示領域(垂直ブランク)40ドット。計264ドット。
- 1フレームは 16.5ミリ秒(0.0165秒)。
- (384 * 264) / 6144000 = 0.0165。
- 1フレームは 25344MPUサイクルに相当(たぶん)。
- リフレッシュレートは 約60.6061Hz。
- 1 / 0.0165 = 60.6060606060……。
BG部
- 二つの固定BG部と一つのスクロールBG部からなる。
- BG用基本色は256色から16色を指定(ROMにより固定)。
- BG用カラーパレットが4色×64組分ある(ROMにより固定)。
- 1キャラ辺りの同時発色数は4色。
- BG用パターンデータは 8x8 サイズで256枚分(ROMにより固定)。
- なぜかカラーパレット番号との対応がビット反転している。
- つまりパターンデータ上で $0 となっている箇所はパレット#3、$1 となっている箇所はパレット#2の色で描画される。
- BG(背景)といいつつ、キャラ毎に前景表示(スプライトより優先表示)する機能もあるらしい。
- TODでは未使用。
固定BG部
- 画面の左右端に 2 x 28キャラ(16 x 224ドット)の固定BG部が各一つずつ存在する。
- ※縦置きモニタのため、プレイヤー視点では画面の最上部と最下部に位置する。
※本wikiではプレイヤー視点に合わせて「上部固定BG部」「下部固定BG部」と表記する。
- 上部固定BG部は得点を、下部固定BG部は残りギル人数、所持品、残り時間を表示するのに利用している。
- 表示領域は 2 x 28キャラ分だが、VRAMには 2 x 32 キャラ分の領域が確保されている。
- 両端の各2 x 2キャラ分が非表示領域となっている。
- 固定BG部はハードウェアスクロール機能の影響を受けない。
- 下部固定BG部の中央(非表示領域を含め右から +14、+15キャラ目)のみ、参照するVRAMのアドレスが異なる。
- 本来非表示領域である +0、+1 のキャラ番号/カラーパレット番号を参照する。
- 海賊版対策か、あるいはハードウェア実装上の事情だろうか。
スクロールBG部
- 二つの固定BG部にはさまれる形で、32 x 28キャラ分(256 x 224ドット)のスクロールBG部が存在する。
- VRAMには 32 x 60 キャラ分の領域が確保されている。
- 垂直方向に1ドット単位でスクロール表示できる(オフセット値は8ビット)。
※縦置きモニタのため、プレイヤー視点では水平方向にスクロールする。
ドットパターン
BGドットパターンを参照。
スプライト(オブジェクト)
- ※当時のナムコでは「オブジェクト」と呼称されていたらしい。
- スプライト機能を開発したアタリ社が当初から「オブジェクト」と呼んでおり、アタリ社と縁の深いナムコでも「オブジェクト」の呼称が一般的になったと思われる。
- とはいえ現在「オブジェクト」と呼ぶのは混乱を招きやすいので、本wikiでは「スプライト」の呼称で統一。
- ラインバッファ方式。
- 最大表示数 64枚。16x16、16x32、32x16サイズのスプライトを使用可能。
- スプライトサイズは他に 32x32なども使用可能と思われるが、TODでは未使用。
- スプライト用基本色は256色から16色を指定(ROMにより固定)。
- 基本色#15は透明色固定。ほかの色をROMで指定しても透明色になる(たぶん)。
- スプライト用カラーパレットは16色×64組(ROMにより固定)。
- スプライト1枚辺りの同時発色数は16色。
- スプライト用パターンデータは 16x16 サイズで 128枚分(ROMにより固定)。
- 上下、左右それぞれ反転表示可能。
- VRAMでのアドレスが後ろのものほど優先表示される(画面の手前側に描画される)。
ドットパターン
スプライトドットパターンを参照。
基本色
基本色を参照。
カラーパレット
- 基本色をグループ化したもの。
- BG用は4色1組、スプライト用は16色1組で、どちらも64組分。
- BG/スプライト共に、色を指定するときはパレット番号を指定する。
- 1色だけ変える、という事はできない。パレットまるごと変更する。
- 同じパレットに同じ基本色を複数含める事ができる。
- 例えばスプライト用カラーパレットには、全て透明色のみで構成されたパレットがある。
- パレットデータは ROM上に置かれる。動的な変更は出来ない。
備考
- パレット切り替えを利用してドットパターンの節約が図られている。
- たとえばギル(着替えパターン含む)、ミラーナイト、ハイパーナイトは同じドットパターンのパレット切り替えで表現している。
- ファイア・エレメントの鎮火表現もパレット切り替えのみ。
- BGでは4色使える事を利用して2色ドットパターンを二枚分合成する、などの手法も用いられている。
- スプライトを消すときは、全透明色パレット(パレット番号0番)を指定する。
- TODのハードウェアにはスプライトを非表示にする、という機能がないため。
CLR <パレットのアドレス>で消せるのでシンプルで読みやすい。
使用している基本色とパレットの一覧
全画面回転機能
- 画面全体を180度回転表示する。
- テーブル筐体において二人プレイをする際に利用。
- 要は上下左右の一括反転表示機能。
- スプライトはドットパターンのみ回転表示される。
- 表示位置は変わらないため、ソフトウェア側で座標の補正を行っている。
基本色#15は未使用。
大昔のうっかり系解析ミスを正しいと記憶していた疑惑が出てきたので、再検証が終わるまで一旦消し。
本当に間違ってれば削除。