Как часть работы, которую я выполнял, чтобы ответить на этот вопрос о технической работе сбоя в Pokémon Red , я искал способ использовать стандартный отладчик для отладки Game Boy ROM. Хотя многие из эмуляторов, которые я нашел, имеют некоторую поддержку для отладки, ничто из того, что я нашел до сих пор, не помогло.
В качестве фона на данный момент я пытался использовать встроенные функции Visual Boy Advance для отладки, но они не особенно полезны для того, что я пытаюсь сделать. VBA не имеет возможности устанавливать точки останова, и поскольку он шагает вперед на уровне фреймов, а не инструкций, я не могу увидеть, как выполняется код, когда он мне действительно нужен. Хотя VBA говорит, что поддерживает отладку GDB, я не смог заставить ее работать. Я попытался кросс-компилировать GDB для ARM согласно инструкциям, но не смог заставить GDB подключиться к эмулятору (он распознал бы, что была программа для подключения, но сообщил, что протокол был нарушен). Я повторил это с одинаковым успехом как в Windows с Cygwin, так и в Ubuntu Linux. Мы с другом пытались использовать Insight / GDB, но столкнулись с точно такими же проблемами.
Я также пытался использовать отладчик NO $ GBA, но он отказался загружать мой ПЗУ для Pokémon Red (а затем оскорбил меня, сказав, что я ничего не могу сделать, это исправить, так как файл просто выровнен неправильно).
Кроме того, я попытался загрузить эту версию Visual Boy Advance, в которой утверждается, что в ней установлен отладчик, но по какой-то причине я не могу включить ее для включения отладчика. Нажатие F11 согласно его инструкциям не имеет никакого эффекта.
Я полагаю, что я проявил должную осмотрительность, пытаясь заставить работать отладчик, и я удивлен, что ни один из них не сработал. Кто-нибудь знает простой и понятный способ отладки игр Game Boy с использованием стандартных методов отладки? Меня больше всего интересует возможность поставить в память точки прерывания записи (чтобы посмотреть, какая подпрограмма забивает определенные части памяти). Я был бы очень признателен, если бы кто-то из первых рук сделал это, предоставив подробные сведения о том, как это сделать, поскольку он-лайн ресурсы по этому вопросу кажутся довольно ограниченными.