005849 sprite

Mr.五右衛門のやつ。この基板は 005849 以外にたいした IC が載ってないので、sprite と tile を両方担当している気がする。たぶん。

VRAM

CPU(Z80) から見える RAM は 0x100 word x8bit を2つ持つらしい。この2つのRAMうち1つをレジスタに登録しておいて、指定した RAM のほうを定期的に別のRAMへ取り込むようだ。

attribute RAM は 4word で構成され、先頭 0x30 個の attribute が有効になる。残りの 0x10 個の部分は普通のRAMとして利用可能。

offset.bit
                                • -
0.7:0 charcter ROM address 14:7 1.7 x position 8 1.6 charcter ROM address 15 1.5 y flip 1.4 x flip 1.3:0 palette ROM address 7:4 2.7:0 x position 7:0 3.7:0 y position

sprite の size は 16x16 で固定。内部 offset は 4bit. charcter ROM address は下記となる。

 A15:7  A6  A5  A4:2  A1:0
                                                    • -
ca15:7 oy3 ox3 oy2:0 ox2:1 ca:charcter ROM address oy:offset y ox:offset x

charcter data と ROM

data は 8bit で構成され、 offset0 で bit が選択される。0 なら bit7:4, 1 なら bit3:0 が有効になる。選択された data は palette RAM address 3:0 として使われる。
ROM は databus 8bit の 2つで構成され、ca15 が ROM の選択bitとなる。

palette ROM と color ROM

palette ROM は databus 4bit で構成され、 sprite 用と tile 用に別れて並行に動作する。palette ROM の data 0 の場合は透過となるが、それ以外は color ROM の address となる。

透過状況とレイヤ別のプライオリティを計算して、使用する color RAM の address を選択する。color ROM address の接続は下記となる。

A4  A3:0
              • -
st pd3:0 st:layer (0:sprite, 1:tile) pd:palette ROM data

color ROM data は D/A 変換してモニタに出力される。8bit で blue 2bit, green 3bit, red 3bit.

palette ROM と color ROM を分離するのは謎に感じる。