スプライト アトリビュート テーブル(VRAM)
スプライト アトリビュート テーブル(VRAM)
各スプライトの座標・使用パターン・使用パレット等を定義したデータテーブルを
スプライトアトリビュートテーブルと呼んでいます。
スプライトアトリビュートテーブルはVRAM上の任意の場所とサイズで配置可能です。
スプライト1匹に必要なデータは下記の様に8bytesです。
bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 Y9 Y8 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 0 0 0 0 H1 H0 V1 V0 0 L6 L5 L4 L3 L2 L1 L0 P C1 C0 VF HF N10N9 N8 N7 N6 N5 N4 N3 N2 N1 N0 0 0 0 0 0 0 X9 X8 X7 X6 X5 X4 X3 X2 X1 X0 Yx Y座標 Lx 0〜79 = 次に描画されるスプライトの番号 Hx 0〜3 = 横サイズ(セル単位) Vx 0〜3 = 縦サイズ(セル単位) P 1 = 優先順位フラグ有効, 0 = 無効 Cx 0〜3 = パレット番号 VF 1 = 垂直方向反転表示有効, 0 = 無効 HF 1 = 水平方向反転表示有効, 0 = 無効 Nx パターン番号 Xx X座標
Lx はリンク(Link)と呼んでいます。
これはVDPがスプライトをソートし、描画順序を決める為に使われます。
VDPはスプライト0番からソートを開始します。
もし下記の様にリンクが張られていたなら、
スプライト0番→3番→4番→2番の順序になります。
Sprite LinkTo 0 3 1 ←何処にもリンクされていないので描画されない 2 0 ←0番にリンクするとここで終了 3 4 4 2
描画の際はリンクを開始するスプライト0番が最も最背面に、
最後にリンクされたスプライトが最前面になります。
座標はX = 128, Y = 128 がディスプレイ表示範囲内の左上原点となります。