В эмуляторе ZSNES бочки в Donkey Kong Country 2 вращаются бесконечно из-за отсутствия эмуляции поведения open bus.
В коде игры используется инструкция and $2000, которая вместо ожидаемой константы 0x2000 читает незаполненный адрес и возвращает значение шины 0x2020.
На реальном SNES чтение с невалидного адреса возвращает два байта 0x20, что обеспечивает корректную работу механики.
Опечатка в коде (использование абсолютной адресации вместо immediate) приводит к багу в эмуляторе ZSNES.
Исправление бага заключается в замене байта 0x2D на 0x29 в ROM, меняющей and $2000 на and #$2000.
Get notified when new stories are published for "🇷🇺 Hacker News Русский"