作为我一直在做的工作的一部分来回答关于神奇宝贝红色故障的技术工作的问题,我一直在寻找一种方法来使用标准调试器来调试Game Boy ROM.虽然我发现的许多仿真器都有一些调试支持,但到目前为止我发现的任何东西都没有用.
作为背景,截至目前我已尝试使用Visual Boy Advance内置功能进行调试,但它们对我正在尝试的内容并不是特别有用.VBA缺乏设置断点的能力,并且因为它在帧的级别而不是指令上向前迈进,所以当我真正需要它时,我无法看到代码是如何执行的.虽然VBA说它支持GDB调试,但我完全无法让它工作.我尝试按照说明交叉编译GDB for ARM,但无法让GDB连接到仿真器(它会认识到有一个程序要连接,但报告说该协议已被违反).我在使用Cygwin的Windows和Ubuntu Linux上都取得了类似的成功.我和朋友试图使用Insight/GDB,但遇到了完全相同的问题.
我也尝试使用NO $ GBA调试器,但它拒绝为PokémonRed加载我的ROM(然后侮辱我说我不能尝试做的任何事情都会修复它,因为文件只是完全错误).
此外,我尝试下载此版本的Visual Boy Advance声称其中有一个调试器,但由于某种原因我无法启用它来启用调试器.按照说明按F11无效.
我相信我已经完成了我的尽职调查,试图让调试器工作,我很惊讶他们中没有一个工作过.有没有人知道使用标准调试技术调试Game Boy游戏的简单,直接的方法?我最感兴趣的是能够在内存中写入断点(看看什么例程破坏了内存的某些部分).如果有第一手经验的人可以提供有关如何执行此操作的详细信息,我将非常感激,因为有关该主题的在线资源似乎非常有限.