Le Fix |
Le fix est composé de tiles de 8x8 pixels, provenant du
ROM S1 (ou des fichiers .FIX sur NeoGeo CD). Les consoles comportent un tileset fix intégré, utilisé
par le BIOS. Ci-contre, le fix isolé dans Metal Slug 2, le bleu clair vient de la couleur du backdrop (expliqué ici). |
La map ("Fixmap") est située en VRAM, entre $7000 et $74FF. Avec un word par tile. Le fix est mappé de haut en bas, et de gauche
à droite. On peut utiliser (Y+2+((X+1)*32))+$7000 pour obtenir l'adresse du tile qu'on veut modifier depuis ses coordonnées. Pour afficher du texte en ligne, les jeux utilisent frequemment une auto-incrémentation de 32-1en VRAM pour sauter à la lettre (colonne) suivante. |
Format des données dans la fixmap:
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Numéro de la palette pour ce tile (0 à 15) |
Numéro
du tile à utiliser
(0 à 4095) |
Exemple: écrire #$71B5 à l'adresse $7022 de la VRAM, affiche le tile numéro $1B5 utilisant la palette 7, dans le coin supérieur gauche de l'écran.
Attention, on peut être tenté d'effacer la fixmap avec le tile n°0 du tileset par défaut, or ce tile n'est pas transparent (couleur 1) ! Le tile n°$FF l'est.
Les ROMs S font au maximum 128ko car on ne peut pas addresser plus de 4096
tiles avec 12 bits pour le numéro du tile.
Au niveau du ROM, la taille d'un tile 8x8 est de 32 octets (8 * 8 pixels / 2
pixels par octet = 32). Avec 4096 tiles de 32 octets, on arrive à 128Ko.
Le compte est bon.
Format des tiles: 1 octet pour deux pixels. 4 LSB:gauche, 4 MSB:droite.
Ligne0: Colonne 4 et 5, Colonne 6 et 7, Colonne 0 et 1, Colonne 2 et 3
... Il faudrait un joli dessin pour expliquer, ça viendra.