黃爸爸狗園

本園只有sanitizer,沒有狗籠

0%

GBA圖形處理邏輯模擬 - Object tile memory

cover

相較於BG tile的排列是依靠map data描述,obj tile並不存在map data,我們會直接透過character name來存取obj tile,但obj tile memory實際上有兩種不同的排列方式,本文將會分別說明這兩種方式的細節

1 Dimensional

  • 1 Dimensional,又稱線性排列,指的就是8*8的tile data是依照記憶體位置一直往後排列,如下圖所述:
1d_layout
  • 此排列方法雖然擁有比較高的空間效率,但並不便於美術人員設計obj

2 Dimensional

  • 2 Dimensional,我稱呼它為平面排列,在這個模式下8*8的tile會依照真實obj所要求的樣子排列,如下圖所述:
2d_layout
  • 也就是說整個obj tile memory被分割成了0x20個tile per line
  • 要注意的一點是,雖然tile是2d排列,但是tile data卻還是一樣是線性的,也就是說每個tile中的第一行與第二行之間的記憶體位置差是byte per tile line(0x4 or 0x8),而非byte per tile line * 0x20