FC(NES)修改教程

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FC(NES游戏修改基础教程

14 号拐角

一、序言

在童年时期,很多人或许对于FC的回忆有许许多多,我也不例外,不过说实在话,我在家能玩到的FC游戏非常的少,回忆起来也只有几个,坦克大战,魂斗罗,赤色要塞,沙罗曼蛇……当然最经典的还是小时候玩的热血格斗……之后就由于种种原因再也没有接触了,直到PC的出现,我又重温了那些经典。

但是每每看到网上各种HACK版本,总是希望自己也能做点什么修改,所以各种找教程,各种翻资料……可能对于FC这种已经淘汰的游戏没有很多人关心一样,教程的东西也像烟雾弹一般,可以忽略一样 .....................

但是对于已经进入迷途的我,似乎有种由衷的爱好般……

我教过一些人,但是总觉得自己的方法或许不得当,教不会,今天写出这些东西,希望能遇到一些有天赋的人,如果能遇到给予我批评指出的人或许会更好。

我不能保证我100%全对,有误的地方希望大家能更正吧。

好吧,或许大家都不喜欢看废话,于是我们开始吧……

二、基础修改

修改,当然要准备工具,这里我推荐一个非常强大的FC模拟器一一FCEUX 系列,现在最新版本是2.1.6 吧(在我打这篇文章的时候),它提供了非常齐全完善的调试器和16进制编辑器。当然,如果要修改FC贴图的话可以用很多FC 贴图修改器进行修改,网上应该有很多,这里我找不到好的东西,大伙可以自己找找吧,我主要是讲解游戏内容的修改,而不是贴图修改。

好吧,我们开始修改我修改到恶心的游戏——魂斗罗。对于这一段,感谢小粽子以前的教诲。魂斗罗很经典,可能到今天都没有人能够一命通关,对于这些头疼的玩家,我们就给他几个选项。1、无限命;2、无限金身;3、瞬秒敌人(不推荐修改,有点偏高端)。

友情提示,以下16进制编辑器中,在查看菜单有NES内存、PPU内存、ROM 文件,所以在进行修改之前,请注意自己所在那一页,以免修改错误导致没有相应的效果出现。

只有NES内存和PPU内存才能右键,但是在NES内存下无法进行修改,一改变之后数值会立即转变成为没有修改的状态,注意好自己所在页。

1、无限命:

我们在网上都能知道,魂斗罗的1P 的生命值的地址是0032(如果不知道的话 就自己网上查吧,如果金手指不会用/查,那就自己学吧==)。我所点的地址就 是0032(可以看看标题栏,上面有写),很多人都知道,游戏中的很多地方都是 由大家所称的金手指,我所认识是NES 内存所控制的,所以,对这些内存进行相 应的操作,就能达到相应的效果……,比如金手指锁定某个地址,网上有 0032-01-14就会锁定一定生命数不变,然后就能达到无限命的目的,这个就是 简单的对0032这个地址做相应的操作(锁定),达到相应的效果(命不改变)。

我只能说:呵呵,又废话了多了。想想,我们死了一条命,就是对 0032这 个生命值地址进行“改写”,因为是“改写”,右键0032(NES 内存)这个地址之后, 我们“给地址0x0032添加写入断点”,添加之后会弹出调试器,不理它,切回游 戏画面。

当然,生命值要进行“改写”,我们就英勇的去撞子弹吧,少年!

我们查一查6502大全里面会知道(不知道你可以查这篇文章的附录)

D6命令是DEC 存储器单元内容减1,寻址方式是零页寻址(1) X 变址(2)。

当然我们非常好理解,存储器单元内容减 1,喜闻乐见,发来贺电,就是减 一条命罢了。于是我们就是不让它执行这条命令行,自然就不会减命了。

用鼠标右键直接点击那个红框框的地方, 进入16进制编辑器(ROM 文件),被 选中的就是D6,于是我们修改成EA EA

EA 在6502汇编中是NOP 就是无操作的意思,也就是执行这行代码的时候

--FA 讲制编辑衆-编聲RA1倩转 血UMU 范 文件① 編蛊⑥ 查着① 书蹩辺)W Qf )

no co PO (10 to (12

10

CO

C9 Cl

00 00 02 00 C2 00 C6 00 05 00 00 00 05

D 0 Dri

5 3 O

4 F on

2 0 0 1 Boon

2 5 o n o Q o n

7 o- o n

3 o o n

2 Q o n o Q on

04D

CD 7 o F clop

1 o o

o Qw 7 n

称结/擀味地址(E )

给地址0x0032脈加读取斷点追) 箔地址0^0032恭加写入斷点粗) 给地址0x0032丽办臥行断点但) 馬力叫務除书赛CA )

OOOAO6O3OO

0006000000

00 00 02 00 01 00 00 DO 0 0 0A 06 06 7C DO 0? 0C 0? 02 07 07 F0 30 00 00 IE F0

0 0

00 00 00 00 00 3C 10

02

10

Ofc 00 00

1 E D 0 D 6 o -y o o o nu o o nu o

OOOOOA6O 00000200

OOO2O1A51OO1OO OOOOO29OOOOOS OOOFOO71OO2OO

000F009000000

|(图 2-1)

(图 2-2)

"ICEU1 2. 1. 6-

図件⑧游找四I

翻身之后,游戏会暂停,然后调试器的第一行会显示

什么都不做,就是要傻楞两行

强调一下,输入命令要打完整,要使输入标示跳入下一个代码中才行,比如 代码原本是95,要改成85,不能只打一个8,要打完整个代码85,要不然模拟 器不承认你的修改。

之后我们切回调试器,这个时候调试器就变成了这样:

(图 2-4)

好了,再怎么死也死不完了

2、无限金身

金身,所向披靡的一种标志,一种必须的存在,一种 GOD MODE 向往……

(这个作者在写小说么……扔砖头了哦! !!)不好意思,又废话了。百度一下我 就知道金身的地址是00B0,这个要想想,金身为什么会打不死(因为他是金身啊, 废

话),是游戏的一种判定,读取金身这个地址内容,是金身,就不死,否则翻 身。这个思路很重要,因为要涉及断点的判定方法是读还是写。

好了,找到思路之后,我们添加 00B0的断点(NES 内存)

[n

|07:DA03:EA

07:DA04 :El 07:DAOS:&0

HOP HOP

RTE (图 2-3)

修改好之后双击右边的断点中的 0032,使0032之后的

EC-W--变成-C-W--

让模拟器取消对0032断点的监视(要不然会一死因为已经监视了

0032的“改写” 会再次暂停的,要恢复再双击即可),然后点运行即可

EG-VT —

相关文档
最新文档