9

我有时会看到修改过的NES游戏,我想尝试一下。使用什么工具来实现这一点?是否有一些神奇的源代码存储库位于我不知道的某个地方?我的问题是,修改任意 NES 游戏的第一步是什么?(如果第一步是“保持头脑清醒”,那么请给我第一步到第三步。)

谢谢

4

4 回答 4

8

你所说的被称为“ROM hacking”。

现在你要小心,因为有严重的法律问题(注意,我不是律师):首先,要破解游戏,你需要找到你试图破解的游戏的 ROM 映像。有些网站提供这些下载,但我不会链接到一个。你自己在这里。另一个问题是,被黑的游戏将被视为侵权衍生作品。然而,在实践中,游戏公司大多忽略了 ROM 黑客场景。

撇开法律问题不谈,这些是 ROM 黑客的基本要素:

  • 您要破解的游戏的 ROM 映像(请参阅上面的警告)。
  • 一个模拟器。从理论上讲,您可以将您的 hack 写入磁带并在 NES 上播放,但前提是您仍然拥有 NES,因此模拟器是次佳选择。请注意,模拟器是完全合法的(不是 ROM);对于 NES ROM hacking 和 homebrew 开发,我会推荐FCEUX。它有一个内置的内存查看器和一个出色的调试器。
  • 十六进制编辑器。我推荐HexEdit。截至目前,它是免费软件。抱歉,它仅适用于 Windows。
  • 一个平铺编辑器,用于编辑图形。我推荐YY-CHR。同样,它仅适用于 Windows。

Romhacking.net 也提供其他有用的工具。

于 2012-07-27T17:43:18.010 回答
3

您将需要 ROM 映像和反汇编程序,或者只是一个好的旧十六进制编辑器。除非您非常了解目标架构,否则这将是困难的。很多时候,在这些旧系统上,他们在角落里编码,以使东西适合少量可用的存储空间。这将导致一些非常奇怪的“副作用”代码,您可能会觉得很难理解。

我的建议是,使用现代硬件以现代语言从头开始创建游戏作为“封面版本”,您不必担心只有 4kb 内存!

于 2012-06-09T00:42:38.417 回答
3

这与修改任何其他已编译的程序相同;在高层次上,您需要:

  1. 将现有游戏的 ROM 映像从二进制反汇编成更高级别的语言(如汇编)
  2. 修改装配体
  3. 将更改后的汇编语言源重新组装到 Nintendo ROM 中

正如 Jeff Watkins 在他的回答中所说,您也可以直接使用十六进制编辑器修改 ROM,而无需先对其进行反汇编,但任务大致相同,只需您执行它而不是计算机即可。

关于提取数据块(精灵等)和理解实际程序流程有很多较低级别的问题。它绝对不会为您提供大量易于理解并带有注释的代码。

看看关于反汇编和修改 16 位游戏的另一个问题。

于 2012-06-09T00:43:40.270 回答
1

而且您必须非常了解硬件。有一些互联网资源可以提供很好的文档,比如这个 wiki

祝你好运!

于 2012-06-09T00:46:03.790 回答