|
 |
Le fix est composé de tiles de 8x8 pixels, provenant du
ROM S1 (ou des fichiers .FIX sur NeoGeo CD).
Ces tiles ne peuvent être attribués qu'aux 16 premières
palettes. (256 couleurs dont 16 transparentes, soit 240 couleurs possibles
sur tout le fix).
Les consoles comportent un tileset fix intégré, utilisé
par le BIOS.
Le jeu peut choisir d'utiliser celui de la cartouche, ou celui du BIOS
(voir registres).
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.
La map mesure 40*32 tiles, soit 1280 ($500) words. L'affichage
ne faisant que 40*28, seul le rectangle gris est vraiment affiché
à l'écran.
Il y a donc une marge de 2 tiles en haut en bas, qui sont invisibles.
Il faut noter que la plupart des jeux n'utilisent pas les deux colonnes
à gauche et à droite, réduisant l'affichage à
38*28 tiles (en rouge).
L'adresse de la map pour le premier tile effectivement utilisable (marqué
en vert) est alors: $7000+32+2 = $7022.
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.
 |
Voici le contenu du fix intégré à
la NeoGeo MVS (cliquer pour le voir en grand).
Il n'est pas garanti être exactement le même sur toutes les
machines, mais les alphabets devraient au moins être communs à
toutes les versions.
L'alphabet 8x8 commence au tile 0. Il correspond à
l'ordre ASCII mais certains caractères sont remplacés (comme
l'arobase).
Il arrive aussi que certains fix de jeux contiennent des lettres inversées,
pour des raisons inconnues.
Deux alphabets gras 8x16 identiques à $100-$200
et $300-$400 (Tiles du haut et tiles du bas séparés de $100).
Un alphabet fin 8x16 à $900-$A00.
Logo "Winners don't use drugs" à $B00.
Joypad utilisable pour les "How to play" à
$700.
Pour rappel, écrire dans $3A000A selectionne le
fix de la machine (celui-ci), et écrire dans $3A001A sélectionne
le fix de la cartouche.
|
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.
|