logo

 

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

Structure des ROMs

Dans les classiques romsets zippés qui fonctionnent avec les émulateurs, on retrouve les différents ROMs nommés depuis ceux de la cartouche d'origine.

Les premiers chiffres correspondent au numéro du jeu (Le "NGH Number"), la lettre indique le type de données:

Les P contiennent le programme pour le 68K (souvent qu'un seul).
Les C contiennent les données graphiques pour les sprites.
Le S1 contient les données graphiques pour le fix (qu'un seul de 128ko).
Les V contiennent les samples et les tables pour les musiques.
Le M1 contient le programme pour le Z80 (qu'un seul de 128ko).

Par exemple, Metal Slug 2 MVS possède 4 C de 8Mo, 2 V de 4Mo, un P de 1Mo, l'autre de 2Mo (forcément bankswitché), un S, et un M.

Les ROMs P sont des binaires 68K classiques, mais byteswappés (octets inversés par paires).
Ils commencent bien sûr par la vector table, pour rappel:

$00: Valeur de SP, conseillée à $0010F300 (fin de la RAM utilisable)
$04: Valeur initiale de PC (presque toujours $00C00402, entry point dans le BIOS)
$08: Bus error (2),Address error (3),Illegal Instruction (4),Divide by 0 (5)
$18: CHK Instruction (6),TRAPV Instruction (7),Privilege Violation (8),Trace (9)
$28: Emu(1010),Emu(1111),Reserved,Reserved
$38: Reserved,Reserved,Reserved,Reserved
$48: Reserved,Reserved,Reserved,Reserved
$58: Reserved,Reserved
$60: Spurious Interrupt(24)
$64: Level 1 (VBlank)
$68: Level 2 (IRQ2), Level 3...
$80: TRAPs

$0100: Chaine "NEO-GEO",$00
$0108: Numéro de série 16 bits (attribué par SNK)
$010A: ?
$010E: "Pointer to debugging switch" ?
$0112: ?
$0114: $01 = Pas de logo au démarrage
$0115: Numéro du premier sprite pour le logo NeoGeo (utilisé par le BIOS pour afficher le bootscreen)
$0116: Pointeur vers la configuration japonaise
$011A: Pointeur vers la configuration américaine
$011E: Pointeur vers la configuration européenne

$0122: Entry point du programme (un JMP sera le bienvenu)

Suivent tout un tas de "Security Codes" pas très clairs.. Certains jeux protégés ont peut être des empreintes inscrites ici

$0200 (souvent): Config du BIOS (nom du jeu, paramètres configurables comme le nombre de vies... Format encore indeterminé).

Fichier source de base à télécharger.

footer
symbol symbol symbol symbol symbol