051960 のスプライト情報
まずかったらこの項目はそのうち消えます。
VRAM - sprite attribute VRAM
CPU から見える RAM は基板に載ってる databus width 8bit の SRAM で、68000 から使う場合は 16bit のように見えるが、LDS,UDS で A0 を生成して切り換えているので、おそらく byte access 専用。(movep ではなく move.b が使えるのが便利なのかもしれない)
8 byte 単位で 128 個のspriteを管理できると思われる。
CPU から見える RAM は Vblank のタイミングかなにかで、定期的に 051960 に取り込まれて、ASIC 内部RAMか別の RAM へ転送されるものと思われる。このときに sort のようないらないbitは捨てて、 y position みたいなものはレンダリング途中に更新すると思われる。
offset.bit|assingment
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- priority はスプライトの優先度
- size はスプライトのサイズ (0:16x16, 1:32x16, 2:16x32, 3:32x32, 4:64x32, 5:32x64, 6:64x64, 7:128x128)
- charcter ROM は後で詳しく記載する
- 配線依存は基本的に設計毎にことなる部分で、color RAM address だったり、charcter ROM bank だったり、shadow bit だったりばらばら。 offset 3 はよくばらばらにされるが、他のbitも配線を変更する場合があるらしい
(bank は sprite ではなく tile のほうでしたので削除しました)
size と charcter ROM address
size によって charcter ROM address に alignment みたいなものが発生するが、空いた bit は一見不規則に charcter ROM address が振られる。size によって変更される bit と sprite 内の offset は下記になる。
sz A10 A9 A8 A7 A6 A5 A4 A3 A2:0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
bit 11以降は size による変更はない。