dimanche 15 février 2009

Les TILES en VRAM, mode PLANAR

Pour rappel :
  • Un background sur PC Engine est composé de tiles.
  • Une tile fait 8*8 pixels et est associée à une palette de 16 couleurs.
  • 16 palettes sont disponibles donc ça nous ferait 256 couleurs si la couleur couleur 0 (transparente) n'était pas sur chaque palette, ce qui nous fait quand même 240 couleurs.
  • Chaque pixel dans une tile est codé sur 4bits (donc 16 possibilités) qui correspond a une couleur de sa palette.
  • Une tile et sa palette sont associées par la BAT (Background Attribut Table).
  • Les donnés en VRAM sont en WORD (16bits) et non en BYTE (8bits) le processeur graphique étant 16 bits !

Mais comment sont ordonnées les tiles en VRAM ?

Vram offset
  • 0 [ Bytes 1 & 2 ] Line 1
  • 2 [ Bytes 1 & 2 ] Line 2
  • 4 [ Bytes 1 & 2 ] Line 3
  • 6 [ Bytes 1 & 2 ] Line 4
  • 8 [ Bytes 1 & 2 ] Line 5
  • 10 [ Bytes 1 & 2 ] Line 6
  • 12 [ Bytes 1 & 2 ] Line 7
  • 14 [ Bytes 1 & 2 ] Line 8
  • 16 [ Bytes 3 & 4 ] Line 1
  • etc ...
Dans le mode PLANAR, les 4bits qui forment l'index de couleur sont stockés dans 4 différents bytes.

Pour la ligne 1, le byte 1 sera composé du premier bit de chaque pixel et le byte 2 sera quand à lui composé du deuxiéme byte de chaque pixel, qui composent au final le WORD (16bits). On fera de même pour toutes les lignes et on terminera enfin avec les bits 3 et 4 des 8 lignes, 16 bytes plus tard ;)

Enfin il en est de même pour les sprites (16*16 pixels) sauf que ceux ci ne seront pas entrelacés, on aura donc les 4 bytes de chaque ligne, placés consécutivements en VRAM.

0 commentaires: