ZSNES n’émule pas le comportement open bus de la SNES, entraînant une rotation infinie des tonneaux dans Donkey Kong Country 2.
Sur SNES, lire une adresse non mappée renvoie la dernière valeur présente sur le bus de données, générant un open bus valant 0x2020.
Le CPU 65816 effectue les lectures 16 bits via deux lectures 8 bits, crucial pour la logique de rotation des tonneaux.
Le jeu contient une faute : il utilise l’instruction and $2000 (adressage absolu) au lieu de and #$2000 (adressage immédiat), rendant la condition toujours vraie sous ZSNES.
Le correctif consiste à remplacer l’octet 0x2D (AND absolu) par 0x29 (AND immédiat) dans la ROM, corrigeant la rotation.
Ce bug n’affecte que ZSNES, abandonné depuis 2007 ; les autres émulateurs et le matériel réel fonctionnent correctement.
Get notified when new stories are published for "🇫🇷 Hacker News Français"