如何修改旧学校的NES游戏?

时间:2012-06-09 00:39:17

标签: nintendo

我有时会看到修改过的NES游戏,我想尝试一下。用什么工具来实现这个目标?是否有一些神奇的源代码存储库坐落在我不知道的某个地方?我的问题是,修改任意NES游戏的第一步是什么? (如果第一步是“让你的头直奔”,那么请给我第一步到第三步。)

谢谢

4 个答案:

答案 0 :(得分:9)

你所谈论的内容被称为“ROM黑客攻击”。

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

除了法律问题,这些是ROM黑客攻击的基本要素:

  • 您想要攻击的游戏的ROM图像(请参阅上面的警告)。
  • 模拟器。从理论上讲,你可以将你的黑客写入盒式磁带并在NES上播放,但这假设你仍然有一个NES,所以仿真器是下一个最好的东西。请注意,仿真器是完全合法的(它不是ROM);对于NES ROM黑客攻击和自制程序开发,我建议FCEUX。它有一个内置的内存查看器和一个出色的调试器。
  • 十六进制编辑器。我推荐HexEdit。截至目前,它是免费软件。对不起,这只适用于Windows。
  • 图块编辑器,用于编辑图形。我推荐YY-CHR。同样,它只是Windows。

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

答案 1 :(得分:3)

与修改任何其他编译程序相同;在高层次你需要:

  1. 将现有游戏的ROM图像从二进制文件拆分为更高级别的语言(例如程序集)
  2. 修改程序集
  3. 将更改的汇编语言源重新组合为Nintendo ROM
  4. 正如杰夫沃特金斯在他的回答中所说的那样,你也可以直接使用十六进制编辑器修改ROM​​,而不必先拆解它,但任务大致相同,只需要你做它而不是计算机。

    关于提取数据块(精灵等)以及理解实际程序流程,存在许多较低级别的问题。它肯定不会给你一大堆易于遵循并有评论的代码。

    看看this other question有关拆解和修改16位游戏的信息。

答案 2 :(得分:2)

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

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

答案 3 :(得分:1)

你必须非常了解硬件。互联网资源提供了很好的文档,如this wiki

祝你好运!