欢迎来到 电玩999 电玩网

您当前的位置:电玩网>电玩资讯>新手教学>菜鸟FC HACK初级入门教程

热点资讯

更多

菜鸟FC HACK初级入门教程

2015-03-16  |  来源:互联网  |  小编:小粽子  |   人看过  

个人原创,如需转载,请标明作者和出处

bbs.emu999.net

小粽子

文章出处 http://bbs.emu999.net/thread-15549-1-1.html

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

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

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


今天我就来写一个最最最简单的基础HACK教程,相信你如果有耐心看完,一定能学会的。
编程方面的东西我懂的不是太多,我只用最通俗易懂的方式,让大家能学会。
如果有专业术语等的语言错误,也请大家纠正。



首先我们需要一些工具

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

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

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

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

首先,我们打开FCE,FCE也是FC模拟器的一种。当然我们用的是带DEBUG(调试)功能的FCE
使用VNES的DEBUG调试时,机器配置不好的就狂卡,偶的机子也卡。所以在某人要求之下。我换一种调试器给大家讲解。


我用魂斗罗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 这条指令牢记,EA是NOP指令,意思是不执行任何操作
也许有人问,为什么是把 D6 32 通通改为 EA EA呢,而不是单单把D6这个指令改为EA?32只是地址不是命令,干吗也要一起改?

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

当然除了EA指令,还有别的改法,我这里就只告诉大家这最简单的了。
改别的游戏,EA指令也是很实用的。大家自己可以去试试。



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


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

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


我试着去死了几次,命一直都没减。哈哈~HACK成功了~!
魂斗罗1P和2P生命使用同一指令的,所以你改好后,1P和2P都是无限命了。




怎么样,你学会了吗?

不如自己也试试吧,改改看魂斗罗2代
魂2的生命数地址经查EC得知是  53
用我说的方法试试看吧,祝你成功

注:此教程中,我使用魂斗罗1的生命数地址“32”来做断点。并不代表其他游戏都是用32做断点。
每个游戏数据都不同。前面我已经提到过,可以先到EC里找到想改的游戏的作弊码,这里面有相应的地址。如果EC里没有,也可以自己用EC的搜索功能或者用金山游侠来搜索。



以上均为最基础最简单HACK,如果想学习中级和高级HAKC,要靠自己钻研了~多看看6502汇编大奥秘吧,只有理解了指令的含义,才能学习更高级的HACK
今天先到这里,如果有什么建议和补充,可以跟帖回复

文章出处 http://bbs.emu999.net/thread-15549-1-1.html

分享吧~提高逼格:
分享代码网站注册去

文章评论


温馨提示:抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉边游戏伤身 合理安排时间 享受健康生活

游戏作品版权归原作者享有,如无意之中侵犯了您的版权,请您按照《版权保护投诉指引》来信告知,本网站将应您的要求删除。