NES修改教程

发布时间:2018-06-29 20:47:00

任天堂红白机(FC/NES)游戏修改教程

任天堂红白机(FC/NES修改

很多新手看到 FC HACK,都会有兴趣吧,我也一样,看到了有HACK ROM,也会想要是自己会做HACK多好。摸索了一阵,偶也学会了一点点简单HACK

当然HACK这东西,是需要很大耐心的,更要自己多尝试!

与其在一边大喊:“HACK好难啊,HACK好复杂啊,教程看了头晕啊,还不如自己多动动手。

今天我就来写一个最最最简单的基础HACK教程,相信你如果有耐心看完,一定能学会的。

编程方面的东西我懂的不是太多,我只用最通俗易懂的方式,让大家能学会。

如果有专业术语等的语言错误,也请大家纠正。

首先我们需要一些工具

[带有DEBUG调试功能的FC模拟器] fcdebug 或者 FCEU-0.98.13-pre-Debug(貌似这两个一样的,只是版本问题)

[6502FC汇编语言)] 6502汇编大奥秘(用于查看指令,便于修改,本次教程几乎用不到,有兴趣研究指令和代码的可以多看看。但是这还是必备工具哦))

最后用于修改ROM内部的工具UltraEdit32,这是必须品哦

----------------------------------------------------------------------

首先,我们打开FCEFCE也是FC模拟器的一种。当然我们用的是带DEBUG(调试)功能的FCE

使用VNESDEBUG调试时,机器配置不好的就狂卡,偶的机子也卡。所以在某人要求之下。我换一种调试器给大家讲解。



我用魂斗罗1来做一个命不减的HACK教程教大家

我们先去EC里找该游戏作弊码,EC里的作弊码是这样的



[P1 生命数]

ON=0032,200



这样我们就知道魂1的生命的地址是32,就可以使用它来当断点FCE的调试器和VNES不一样,不需要用“[0032]”这样的标准格式,直接把“32”输入当断点就可以了,具体怎么弄?别急,慢慢往下看~







首先我们打开FCE,使用“OPEN”打开游戏ROM,就象你玩游戏那样~~







游戏运行后,先开始游戏,这时候先暂停游戏。







我们点“NES”→“Debugger...”







出来一个大窗口,请看右下角,看到这个框吗。

先在我这个位置输入“32”,这样“32”就做为一个中断处,也就是这个地址有所变化时,程序中止,这样我们就能找到该指令了。

之后在Write上打个勾,为什么这么做呢?因为我们要做命不减嘛,打个比方,你死了一条命,命数就减了1

这就表明程序对命数做了一个写操作”(Write的意思就是),这样说应该能明白吧。

我们这样一设置,在你的游戏人物死了一次后,也就是说被写入了一次操作后,程序会自己中断。之后就好办事了







按一下“Add”,之后左边就出现这样的字符,不必管它。

这时我们可以切换窗口,继续进行游戏了。







进入游戏,让你的人去死一次...







这时候程序就会停止,游戏中断了。出来了这么个窗口。一下子看了眼晕吧。

别心急哦,慢慢来。

先看看最上面一行。







1行这样显示

看到了吗? “32”哦,说明我们指令找对了。32就是我们之前输入的生命数的地址嘛



想知道D6这条命令的意思,可以去看看6502汇编大全,就知道了~

关于该指令的详细说明和意思,不知道也可以。因为我们这是简单HACK,不懂也不要紧

我们只需要知道,人死了后,就会执行这条指令,也就是让游戏里的命减了一条,对吧?

修改原理也很简单,只要让这条指令不执行就好了嘛!



现在进入正轨~~



最前面的“d939”就是这条指令在RAM中的具体位置了,我们要去RAM中找到这个位置。



点一下“Memory...”







出来的窗口就是RAM窗口了,根据“d939”这位置,我们找到了~



看第一行,就是这里了,我选中的就是我们最初找到的指令 D6 32







我们把这一整行通通选中,然后复制一下。这样好方便我们寻找到这个“D6 32”







打开UltraEdit32这个软件,用这个软件来打开你的游戏ROM









就象这样,游戏ROM打开了。







之后我们用CTRL+F,搜索一下,把刚才复制的那一串数字粘贴进去,然后查找一下~









找到了,被我用深蓝色选中的这行



看到了吗,D6 32 我们准备动手来改这条指令

改之前,还是老规矩,先按一下键盘上的INSERT,把插入方式改为覆盖

如图



接下来我们就把 D6 32 改为 EA EA(记得要大写哦)



请大家把 EA 这条指令牢记,EANOP指令,意思是不执行任何操作。



也许有人问,为什么是把 D6 32 通通改为 EA EA呢,而不是单单把D6这个指令改为EA32只是地址不是命令,干吗也要一起改?

呵呵~因为嘛,D6 32 是一条完整指令嘛,换句话说就是一句完整的话,要改他,当然也要完整得改拉~~

当然除了EA指令,还有别的改法,我这里就只告诉大家这最简单的了。



改别的游戏,EA指令也是很实用的。大家自己可以去试试。



注意:修改的时候,往往会碰到一个问题,那就是不能修改。那是因为你的游戏ROM的属性可能是只读。如果碰到不能修改,请对游戏ROM(比如魂斗罗1)点右键→“属性,把只读的勾去掉,这样就能修改了。







最后一步,修改好后,点文件”→“另存为,保存你修改好的游戏ROM,名字随便,比如魂斗罗命不减XXXXX”



之后就是测试ROM了,我习惯性得打开我常用的模拟器VNES来运行游戏,当然你用FCE直接重新打开游戏ROM也可以。只是我喜欢用VNES来玩游戏。









我试着去死了几次,命一直都没减。哈哈~HACK成功了~



魂斗罗1P2P生命使用同一指令的,所以你改好后,1P2P都是无限命了。

怎么样,你学会了吗?

不如自己也试试吧,改改看魂斗罗2

2的生命数地址经查EC得知是 53

用我说的方法试试看吧,祝你成功



注:此教程中,我使用魂斗罗1的生命数地址“32”来做断点。并不代表其他游戏都是用32做断点。

每个游戏数据都不同。前面我已经提到过,可以先到EC里找到想改的游戏的作弊码,这里面有相应的地址。如果EC里没有,也可以自己用EC的搜索功能或者用金山游侠来搜索。



以上均为最基础最简单HACK,如果想学习中级和高级HACK,要靠自己钻研了~多看看6502汇编大奥秘吧,只有理解了指令的含义,才能学习更高级的HACK

本文内容转载自模拟999

--Writted by 小粽子

基拉照做了下..的确HACK出了无限命的魂1(^ω^)

像我成绩差..搞了半天  想学的朋友就不要半途而废,认真仔细的研究``

作弊码可以用EC找到(附上),UltraEdit32这个东西有点大,去百度搜下就有得下了``这里不传了

下面发上收集到的工具若干..

带有DEBUG调试功能的FC模拟器FCEU-0.98.13-pre-Debug.zip(大小319k)

FC6502汇编指令查找器.rar(大小132k)

EC.part1.rar(大小1458k)

EC.part2.rar(大小1458k)

EC.part3.rar(大小1458k)

EC.part4.rar(大小1458k)

EC.part5.rar(大小309k)

NES修改教程

相关推荐