注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

疾风之狼博客

 
 
 

日志

 
 

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一)  

2008-12-01 11:30:42|  分类: 原创修改资料 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

注意:转载请注明本人名字和文章出处!

菜鸟NES HACK简单教程(偶应N多人要求才做这个教程,有错误请指正)

NESHACK相关资料下载:http://bbs.emu618.com/forum/viewthread.php?tid=12675&extra=page%3D2

6052汇编大奥秘(详细介绍FC的汇编语言,推荐下载):http://bbs.emu618.com/forum/viewthread.php?tid=20393&extra=page%3D1

开始之前先说几句废话

第一,HACK之前先了解一下6502汇编指令,NES相关资料里有指令集说明文档,如果你看不懂英文的话就下载《6502汇编大奥秘》,里面有指令中文说明........^_^

个人建议:没必要把6502全部汇编指令硬背下来再跟踪调试,那样会很累,你可以一边调试一边查询指令说明.......

第二,还需要准备一些工具:NES调试跟踪工具(VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具)、十六进制之类编辑工具(Winhex或者UltraEdit32)

第三,了解修改步骤:

1、首先要确定你要修改什么。连要修改什么都不知道,那怎能谈上修改呢。

2、获取作弊码,换句话说就是要获得要修改数据的地址。推荐使用EC,这个软件自带作弊码和跟踪修改功能。

3、获得指令代码及其在Rom中的地址。一般通过VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具,再配合内存查看和十六进制之编辑工具确定指令以数据方式储存在Rom中的哪个地址。

4、修改相应指令或数据。一般来说要做尽量少的修改,而且不能让程序运行出错。

5、测试游戏运行情况,看游戏能不能按照你修改目的正常运行。

第四,偶以日版《赤影战士》和VirtualNes Debugger版来为例子教大家如何HACK:

偶需要修改的数据:暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷

1、获取作弊码,这个好容易得到,EC这个软件附带N多作弊码,省去自已手工查找作弊码了。^_^

[P1 生命值]

ON=6F0,10

[P1 暗器数量]

ON=662,FF

[P1 武器种类]

刀=6B2,0

ON=6B2,3

[P1 武器威力]

ON=680,FF

[P1 暗器种类]

标=671,0

雷=671,1

[P1 隐身]

OFF=0000,0

ON=601,4C

[P2 生命值]

ON=6F4,10

[P2 暗器数量]

ON=666,FF

[P2 武器种类]

刀=6B6,0

ON=6B6,3

[P2 武器威力]

ON=684,FF

[P2 暗器种类]

标=675,0

雷=675,1

[P2 隐身]

OFF=0000,0

ON=605,4C

[GameInfo]

Name=Shadow of the Ninja (FC/NES)

System=FC

Text=赤影战士(水上魂斗罗),双人、动作游戏,由大胖子提供!

2、通过调试跟踪获取指令代码及其在Rom中的地址,并用16进制编辑工具修改ROM其中数据

偶按照暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷顺序来教大家如何跟踪调试修改:

(1)暗器不减:

首先打开VirtualNes Debugger并加载赤影战士日版ROM,如图1:

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一) - 疾风之狼 - 疾风之狼的博客

接下来游戏进行到获到暗器飞镖20个,如图2:

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一) - 疾风之狼 - 疾风之狼的博客

接下来开始跟踪飞镖数量,先打开RAM,再打开DEBUG,先打开DEBUG的话,不然RAM就用不来:如图3、图4:

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一) - 疾风之狼 - 疾风之狼的博客

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一) - 疾风之狼 - 疾风之狼的博客

先点暂停,根据如下面作弊码提供的暗器数量地址,如暗器数量地址是662,就在注释内出现后面方框中输入[0662](注:可以用这东东当条件断点),再点右边确定让游戏继续运行,如图5:

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一) - 疾风之狼 - 疾风之狼的博客

[P1 暗器数量]
ON=662,FF

使用一次飞镖,程序会发生中断停在B840这一行,如图6:

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一) - 疾风之狼 - 疾风之狼的博客

B840 : DE 6206 DEC $0662,X;[0662]-- =0x13

查指令表得知B840这个地址DEC $0662,X指令作用是将0662+(X)=真正暗器地址的数值减1;既然这样,只要把这条DEC $0662,X指令改为LDA $0662,X就可以让暗器数量不减了。LDA $0662,X作用是把0662+(X)=真正暗器地址的数值读入寄存器A。(X)是寄存器X的数值。
举个例子:假设X寄存器数值是6,指令是“LDA $1234,X” 这条指令看上是将$1234地址数值读入寄存器A,但实际上$1234不是真正数值存放地址,1234必须加上寄存器X的数值才是真正数值存放的地址。1234+(X=6)=123A,LDA $1234,X指令应该是这样解释:将1234+(X=6)=123A地址读入寄存器A。
LDA xxxx,Y和LDA xxxx,X一样,不过寄存器X变成寄存器Y。

查指令机器码得知DE是DEC - Absolute,X,BD是LDA - Absolute,X,注意寻区方式要一样....把DE修改为BD就可以不减暗器数量了。

注意:别把BD修改成其他LDA指令,这样会死机的,因为指令寻区方式不一样。

另外,有一些其他游戏是这样的:改为LDA $XXXX,X 那么就会破坏了寄存器A原来的数据了,后面的程序如果要直接用寄存器A的数值的话,那么就会造成游戏出错,如果后面的程序在用寄存器A的数值之前对寄存器A赋于新值就没事了。


接下来在RAM中找到B840:DE 62 06,如图7:

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一) - 疾风之狼 - 疾风之狼的博客

用笔纸抄下红框中数据,以便在查找,接得在RAM中把DE修改BD,如图8:

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一) - 疾风之狼 - 疾风之狼的博客

关闭DEBUG和RAM,回到游戏中测试吓暗器数量是否不减,暗器不减了,说明指令修改成功。如图9:

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一) - 疾风之狼 - 疾风之狼的博客

关闭模拟器,接下来用十六进制修改工具(如UltraEdit32)修改ROM,还记得之前用纸笔抄下的数据么?

打开UltraEdit32,载入赤影战士ROM,编辑之前按一下Insert把插入方式设为覆盖方式,如图10:

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一) - 疾风之狼 - 疾风之狼的博客

点击UltraEdit32“搜索”>“查找”,在弹出查找框中查找内容(N)后面方框中输入你用纸笔抄下的数据,再点“查找下一个”就能找到这个数据,如图11:

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一) - 疾风之狼 - 疾风之狼的博客

如图12,

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一) - 疾风之狼 - 疾风之狼的博客

结果出来,UltraEdit32高亮度显示你就是要找的数据,把DE修改为BD,再点“文件”>“保存”保存你修改结果。如图13:

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一) - 疾风之狼 - 疾风之狼的博客

关闭UltraEdit32打开模拟器载入修改后的ROM测试暗器数量是否不减,不减的话说明修改成功了,如图14:

[原创]菜鸟NES HACK简单教程!图多杀猫!慎入!(一) - 疾风之狼 - 疾风之狼的博客

暗器雷数量不减修改方法和暗器飞镖数量不减修改方法一样。就不再说了,留给大家练习一下。

  评论这张
 
阅读(6917)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017