 |
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.
|