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

11) Test #01, à défaut de trouver un nom artisique...

 

Cette "démo" tourne correctement sur la vraie machine.

Voici les problèmes que j'ai rencontrés, qui n'apparaissaient pas sur émulateur:

  • Mauvaises couleurs, dégradé étrange sur le haut de l'écran: première couleur de la première palette pas à $8000. Elle doit toujours être à $0000 (bien) ou $8000 (mieux).
  • Sprite n°0 qui fait 32 tiles de haut, et rempli de tiles auto-animés alors qu'il ne devait faire 1 tile de haut, sans auto-animation: ne jamais utiliser le sprite 0, il fait que de la merde. Les mêmes attributs passés au Sprite n°1 a résolu le problème.
  • Redémarrages intempestifs: le watchdog n'était pas remis à zéro assez souvent, si la routine VBlank ne le fait pas ou n'est pas activée, il faut le faire dans les boucles longues. Le timeout est très sérré (beaucoup moins qu'une seconde).
  • Impossible de vider le fix complètement: l'interruption VBlank était activée et accédait à la VRAM en même temps que la routine qui nettoyait le fix, ça décalait l'adresse.
  • La musique qui ne démarre pas: Il faut attendre un peu entre des écritures successives vers le Z80 (commandes audio).

Problèmes de noob:

  • Oublié de mettre un "#" pour faire de l'adressage direct, ce qui faisait de l'adressage indirect (le compilateur ne vous le dira pas, bien sûr, il peut pas savoir ce que vous voulez faire).
  • Réclamer des données dans une table de sinus, et avoir des mauvaises valeurs en retour: la table était déclarée comme des octets, alors que la routine la lisait avec un move.w (16 bits). dc.w au lieu de dc.b et c'était bon. Aussi, le pointeur d'adresse doit être incrementé de 2, pas de 1.
  • Sprites invisibles (passé un moment là dessus...): la fixmap est initialisée à $00 partout par le BIOS (écran recouvert avec le tile n°0 du rom S), si ce tile est rempli avec autre chose que la couleur 0, il est opaque et recouvre tout l'écran. Il faut remapper tout le fix avec un tile vide.

Voici la source pour JAS, et le rom P1, à remplacer dans le romset de Super Sidekicks.

footer
symbol symbol symbol symbol symbol