M72 sprite
この記事もそのうちこっそり消えるかもしれません。
attribute RAM
CPU から見える RAM は 0x200 word x 16 bit。4 word 毎に記載し、0x80 個の attribute を持つことが出来る。sprite renderer に描画処理用の RAM を別に持ち、転送開始レジスタ (main CPU port address 0x0004) を write すると CPU 書き込み用 RAM から描画処理用の RAM へ転送されて、画面が更新される。
offset.bit
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- size は 16 << size となり、16,32,64,128 の 4 通り。
- 原点からの offset は 0 から 127 の 7bit で構成される。(x,yで2つ)
- charcter ROM starting address から offset に応じて charcter ROM の address が更新される。051960 とは異なり、 charcter ROM address にも carry が影響する点にから starting とした。
レンダリング途中は offset x, offset y からアドレスを算出するが、下記のように bit 連接してから加算する。
20:11 10:8 7:5 4 3:0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
flip 時の offset 反転は size によって異なる。size 16 なら bit3:0, size 32 なら bit:4:0 となる。
charcter data と ROM
data は 8x4 bit で構成されて、 offset x 2:0 に応じて bit が選択される。offset 0 なら bit7, offset 7 なら bit0 と msb から左から右へ画素が選択される。
ROM は 8bit の ROM 4 つを1グループとし、4つとも address が共有され、32bit となる。
color RAM と charcter data
各レイヤの透過状況を調べ、描画するレイヤの color RAM address 7:4 と charcter data (4bit) を取得し、 color RAM の address とする。color RAM から得られた data を D/A 変換してモニタへ出力する。
color RAM は 8x3 bit で構成され、 5x3bit だけが使われる(?)。address は下記で構成される。
8 7:4 3:0
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-