En lançant test-gameboy avec fibonacci.gb et 2165183 comme arguments (comme indiqué dans les instructions de l'étape 7), le contenu du registre A est 0x87 lorsqu'on ne fait pas la demande (artificielle) d’interruption VBLANK tous les 17556 cycles dans gameboy_run_until(). Si la demande d'interruption est faite, le registre A contient la valeur désirée 0x59.
Cependant, sans la demande d'interruption, les tests de blargg ne se plaignent pas, ce qui est normal vu que c'est le contrôleur d'écran qui gère l'interruption. Mais l'executable test-gameboy qu'on lance avec fibonacci.gb et les tests de blargg est le même. Est-il possible que l'interruption n'est pas levée par le contrôleur d'écran en lançant avec fibonacci.gb ?
Une deuxième question: dans notre makefile on compile gameboy.c avec le flag -DBLARGG pour pouvoir lancer les tests de blargg. De plus, dans gameboy_run_until(), à l'intérieur d'un "#ifdef BLARGG" on écoute le bus avec blargg_bus_listener(), comme indiqué dans l'énoncé de l'étape 7. Lorsqu'on lance gbsimulator avec tetris (où l'édition de liens a été faite avec le gameboy.o compilé avec -DBLARGG), il y a une sortie sur la ligne de commande ("UUUUU...") produite par blargg_bus_listener() en tapant "START" au début. Sera cette sorties pénalisée ? Existe il moyen pour que le gameboy.o utilisé pour créer gbsimulator soit compilé sans -DBLARGG (mais que celui de test-gameboy soit compilé avec) ?
Merci,
Gil Tinde