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

Erreurs courantes

Une boucle DBRA dans une autre boucle DBRA, boucle beaucoup trop:

Si le nombre d'itérations de la boucle interieure est fixée en indirect depuis un byte ou un word, il faut nettoyer le registre utilisé pour le décompte avant (clr.l). Le dernier DBRA a fait 0-1 et ça a wrapé.

Tout plante et redémarre:

  • Ecriture dans un Word ou Longword pas aligné.
  • RTS quand il faut pas.
  • Mauvais saut vers un label (attention aux copier/coller).
  • Watchdog pas réinitialisé assez souvent.

 

Sprites invisibles:

  • Position X ou Y hors champ. Mettre la position à 0 pour vérifier.
  • Taille à 0. La mettre au moins à 1.
  • Mauvais ROMs C. Ca arrive parfois... On se perd vite avec tous ces fichiers.
  • Aucun tile mappé, ou que des tiles transparents. Mapper au moins le premier et vérifier qu'il est pas vide.
  • Coefs de rétrécissement à 0. Les mettre à fond ($0FFF).
  • Fix rempli avec des tiles non-transparents, ils recouvrent tous les sprites. Vider le fix avec un tile transparent.
  • Sprites désactivés suite à une écriture dans un registre zarb (NeoGeo CD ?).

 

Fix invisible:

  • Aucun tile non-transparent mappé.
  • Tiles mappés hors-champ (dans les bordures).
  • Fix désactivé.

 

Couleurs merdiques, explosion de téléviseur:

  • Mauvaise couleur de référence, toujours mettre la couleur 0 de la palette 0 ($400000) à $8000 (noir absolu).
  • Palettes chargées en byte au lieu d'en word.
  • Tile attribué à la mauvaise palette, ou une palette pas chargée.

 

Tiles en vrac avec des attributs en vrac également, qui trainent dans des sprites:

Clear sprites fait des miracles. Ils sont pas vidés au démarrage !

 

Sprite qui fait n'importe quoi ou qui ne suit pas ses coordonnées:

  • Ne jamais utiliser le foutu sprite 0, c'est un bon à rien !
  • Vider toute la partie de sa map qui ne sert pas avec un tile transparent (ne pas ésperer que sa map soit vide dès le départ). Le tile #0 est pas forcément transparent aussi.
  • Sprite piloté, vérifier ses attributs.
  • VRAM mise à jour pendant que le GPU dessine les sprites. Il faut rester dans le VBlank pour faire ça proprement.

 

Une première écriture en VRAM fonctionne, mais pas les suivantes:

  • VRAM_MOD pas à la bonne valeur. Toujours vérifier VRAM_MOD avant de faire des écritures successives en VRAM.
  • Trop d'écritures successives, lacher quelques NOP ou un MOVE dans le vide entre les écritures.

 

L'interruption HBlank ne se déclenche pas:

  • L'interruption fonctionne, mais l'émulateur ne fait pas le rendu ligne par ligne. Utiliser MAME ou GnGeo !
  • Le vecteur pointe vers un RTS. Vérifier qu'il pointe bien vers la bonne routine (différent sur la NeoGeo CD).
  • Registre $3C0006 mal configuré, vérifier sa valeur.
  • Interruption ignorée par le 68K. Mettre le masque d'interruptions à zéro (SR = $2000). Prier.
footer
symbol symbol symbol symbol symbol