作为回答关于《宝可梦红》中一个故障的技术运作的问题的一部分,我一直在寻找一种使用标准调试器来调试Game Boy ROM的方法。虽然我找到的许多模拟器都有一些调试支持,但迄今为止我找到的没有什么帮助。
背景是,我尝试使用Visual Boy Advance内置功能进行调试,但它们对我要做的事情并不特别有用。VBA缺乏设置断点的能力,而且由于它按帧而不是指令向前步进,因此我无法看到代码在我实际需要时如何执行。虽然VBA说它支持GDB调试,但我完全无法让它工作。我按照说明交叉编译了ARM的GDB,但无法使GDB连接到模拟器(它会识别出有一个程序可以连接,但报告协议已被违反)。我在Windows和Ubuntu Linux上重复了这个过程,结果类似。我的一个朋友和我尝试使用Insight / GDB,但遇到了完全相同的问题。
我还尝试使用NO$GBA调试器,但它拒绝加载我的《宝可梦红色》ROM(然后侮辱我说,无论我尝试做什么都无法解决它,因为文件完全错误)。
背景是,我尝试使用Visual Boy Advance内置功能进行调试,但它们对我要做的事情并不特别有用。VBA缺乏设置断点的能力,而且由于它按帧而不是指令向前步进,因此我无法看到代码在我实际需要时如何执行。虽然VBA说它支持GDB调试,但我完全无法让它工作。我按照说明交叉编译了ARM的GDB,但无法使GDB连接到模拟器(它会识别出有一个程序可以连接,但报告协议已被违反)。我在Windows和Ubuntu Linux上重复了这个过程,结果类似。我的一个朋友和我尝试使用Insight / GDB,但遇到了完全相同的问题。
我还尝试使用NO$GBA调试器,但它拒绝加载我的《宝可梦红色》ROM(然后侮辱我说,无论我尝试做什么都无法解决它,因为文件完全错误)。
此外,我尝试下载这个版本的Visual Boy Advance,声称其中有一个调试器,但由于某些原因,我无法启用调试器。 按照其说明按F11键完全没有任何效果。
我相信我已经尽了我的努力尝试让调试器正常工作,令我惊讶的是,没有一个调试器起作用。 有没有人知道使用标准调试技术调试Game Boy游戏的简单直接的方法? 我主要感兴趣的是能够放置内存写入断点(以查看哪个例程会破坏某些内存部位)。 如果有第一手经验的人可以提供有关如何做到这一点的详细信息,我将不胜感激,因为关于此主题的在线资源似乎非常有限。