logo

Cette page a au moins 11 ans !
This page is at least 11 years old !

Ces pages ne sont plus mises à jour !

Mais restent ici quand même. Attention: tout est vieux, et parfois faux. Tout se passe maintenant sur la wiki NeoGeo Development Wiki

Préface et documents
Architecture
Spécifications résumées
Architecture, Memory Map
BIOS
Structure des ROMs
Structure des CDs
Registres RAM
Vidéo
Système vidéo
Les palettes
Le fix
Les sprites
Audio
Système audio
Communication Z80
YM2610: ADPCM et SSG
Les pistes CDDA
Developpement
L'ASM 68K
Outils
Devkit ASM
Erreurs courantes
Portage MVS / NGCD
Electronique
Electronique
Cartouche flash MVS
Problèmes de lecteur CD
Productions
Astrosmash
Unleashed
Knackiballs
Bootloader et cable NGCD

Test MVS #01

Le Fix

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.

footer
symbol symbol symbol symbol symbol