Unknown Instruction

Unknown Instruction

by Richard Jean Ismer -
Number of replies: 6

Bonjour,

Quand nous lançons la simulation de la gameboy avec le screen et le test 01-special de Blargg, nous avons des Unknown Instructions du type CHG_U3_R8. Pourtant tous nos tests de Blargg passaient quand nous levions nous même les interruption VBLANK. Ces erreurs n'apparaissent pas toujours c'est a dire que parfois elle n'apparaissent pas, parfois elle causent d'autres erreurs et parfois le programme continue normalement malgré le fait que seulement le r de Nintendo s'affiche. Nous ne savons plus trop quoi faire...

Richard

Attachment gameboy r.png
In reply to Richard Jean Ismer

Re: Unknown Instruction

by Jean-Cédric Chappelier -

même réponse qu'ici : https://moodlearchive.epfl.ch/2019-2020/mod/forum/discuss.php?d=37738#p78028
(en utilisant ASAN ou valgrind).

Pourquoi tant de groupes semblent réticents à utiliser les outils présentés :

Vous gagneriez TELLEMENT de temps à savoir utiliser ces outils...
(votre erreur sort instantanément en utilisant ASAN ; en tout cas l'endroit précis où elle se produit.)
In reply to Jean-Cédric Chappelier

Re: Unknown Instruction

by Capucine Mien Verone Berger-Sigrist -

Bonjour, 

Alors on a utilisé ASAN et Valgrind et ça a résolu pas mal de problèmes de memory leaks! Mais il semble qu'il y a toujours un décalage qui se produit, les interruptions VBLANK ne se lèvent pas au début du programme; j'imagine puisque l'on-state du lcd est off pendant environ 67 milles cycles... Si je ne me trompe pas, l'écran devrait être "on" dès son initialisation, non? Et si c'est la cas, qu'est ce qui pourrait causer l'écran de ne pas s'allumer (on a cette fois ci bien init/plug tous les composants, le cpu, la cartridge, la bootrom et le timer)? 

Merci d'avance,

Capucine

In reply to Capucine Mien Verone Berger-Sigrist

Re: Unknown Instruction

by Jean-Cédric Chappelier -

l'écran s'allume à ce moment là (bootrom) :

66886: lcd on : 0
66887: lcd on : 128

et le premier VBLANK au cycle 83302, je crois.

In reply to Jean-Cédric Chappelier

Re: Unknown Instruction

by Capucine Mien Verone Berger-Sigrist -

Bonjour!

On a toujours le même soucis... En utilisant valgrind, on a trouvé deux types d'erreurs, le lcdc_cycle essaye de faire un invalid write of size 1 dans gameboy_run_until et cpu_do_cycle fait un invalid read of size 1 dans le bus pour chercher l'opcode (d'ou les unknown instructions...). Sauf que tous les tests unitaires, de blargg et fibonacci ainsi que l'image de Mario passent, nous ne comprenons donc pas ce qui peut causer ces problèmes......  :'(