我有时会看到修改过的NES游戏,我想尝试一下。使用什么工具来实现这一点?是否有一些神奇的源代码存储库位于我不知道的某个地方?我的问题是,修改任意 NES 游戏的第一步是什么?(如果第一步是“保持头脑清醒”,那么请给我第一步到第三步。)
谢谢
我有时会看到修改过的NES游戏,我想尝试一下。使用什么工具来实现这一点?是否有一些神奇的源代码存储库位于我不知道的某个地方?我的问题是,修改任意 NES 游戏的第一步是什么?(如果第一步是“保持头脑清醒”,那么请给我第一步到第三步。)
谢谢
你所说的被称为“ROM hacking”。
现在你要小心,因为有严重的法律问题(注意,我不是律师):首先,要破解游戏,你需要找到你试图破解的游戏的 ROM 映像。有些网站提供这些下载,但我不会链接到一个。你自己在这里。另一个问题是,被黑的游戏将被视为侵权衍生作品。然而,在实践中,游戏公司大多忽略了 ROM 黑客场景。
撇开法律问题不谈,这些是 ROM 黑客的基本要素:
Romhacking.net 也提供其他有用的工具。
您将需要 ROM 映像和反汇编程序,或者只是一个好的旧十六进制编辑器。除非您非常了解目标架构,否则这将是困难的。很多时候,在这些旧系统上,他们在角落里编码,以使东西适合少量可用的存储空间。这将导致一些非常奇怪的“副作用”代码,您可能会觉得很难理解。
我的建议是,使用现代硬件以现代语言从头开始创建游戏作为“封面版本”,您不必担心只有 4kb 内存!
这与修改任何其他已编译的程序相同;在高层次上,您需要:
正如 Jeff Watkins 在他的回答中所说,您也可以直接使用十六进制编辑器修改 ROM,而无需先对其进行反汇编,但任务大致相同,只需您执行它而不是计算机即可。
关于提取数据块(精灵等)和理解实际程序流程有很多较低级别的问题。它绝对不会为您提供大量易于理解并带有注释的代码。
看看关于反汇编和修改 16 位游戏的另一个问题。
而且您必须非常了解硬件。有一些互联网资源可以提供很好的文档,比如这个 wiki
祝你好运!