Bus_write à l'adresse 0xFFF

Bus_write à l'adresse 0xFFF

by Amaury Virgile Marc Pierre -
Number of replies: 7

Bonjour,

Tout d'abord, tous les tests unitaires et de blargg fonctionnent pour notre implémentation, de même que tous les jeux proposés dans l'énoncé de la semaine 13 (Flappy Boy, 2048 et Snake). Cependant, lorsque nous essayons de lancer une ROM de Tetris, nous avons une tentative d'écriture à l'adresse 0xFFFF, ce qui stoppe notre simulation. Nous ne voyons  vraiment pas d'où vient ce problème, et nous ne savons pas si il vient de notre implémentation ou de la ROM en elle-même qui n'est peut-être pas compatible avec notre émulateur.

Auriez-vous des conseils afin de savoir d'où vient cette erreur ?

Merci d'avance pour votre réponse.

In reply to Amaury Virgile Marc Pierre

Re: Bus_write à l'adresse 0xFFF

by Jean-Cédric Chappelier -

heu.. je ne comprends pas : l'écriture à 0xFFFF est tout à fait possible (activation d'interruption), les tests de blargg en font d'ailleurs plein... (bien avant le graphisme)

In reply to Jean-Cédric Chappelier

Re: Bus_write à l'adresse 0xFFFF

by Amaury Virgile Marc Pierre -

Je me suis mal exprimé : il s'agit d'un bus_write16 à l'adresse 0xFFFF, ce qui n'est normalement pas valide (?).

Désolé de l'incompréhension.

In reply to Amaury Virgile Marc Pierre

Bus_write à l'adresse 0xFFF

by Sebastian Velez De Villa -
Bonjour, nous avons un problème similaire: lors du jeu tetris, nous avons un bus_write à l’adresse REG_IE (0xFFFF) qui écrit 47 (0b101111), ce qui nous donne donc un interrupt invalide; le jeu plante après ça. Devons-nous donc vérifier si l’adresse d’écriture est REG_IE et faire un masque sur les 5 lsb pour éviter un interrupt invalide?
In reply to Sebastian Velez De Villa

Re: Bus_write à l'adresse 0xFFF

by Aman Bansal -

Nous avons exactement le même problème et ca se produit seulement avec Tetris.

In reply to Amaury Virgile Marc Pierre

Re: Bus_write à l'adresse 0xFFFF

by Jean-Cédric Chappelier -

Alors.. :

  1. il existe plusieurs ROMs de Tetris dont certaines ne fonctionnent pas 100% avec notre implémentation car elles font des écritures en ROM (pour tester : détecter le write sur le bus a des adresses < 0x8000)
    [ et nous avons supprimé du projet la notion de writable (ou non) de la mémoire ]

  2. mais de mon coté je n'ai jamais vu de write16 en 0xFFFF ; ceci dit je ne passe pas vie à jouer à Tetris... ...même sur Game Boy ;-)