使用FCEUX调试器寻找并修改游戏初始物品

前言

FCEUX是一款非常优秀的FC游戏模拟器,它自带调试器,研究游戏很方便!比起VirtuaNES,我更喜欢FCEUX!更难得的是,它至今仍在更新!

官网地址:https://fceux.com/

分享一个本人以前汉化的版本:

百度网盘:https://pan.baidu.com/s/1vtzltEBufH_a9yN7xfXixg?pwd=1234

提取码:1234
压缩包里除了正常的版本,还改了一个支持吞食天地2的版本:

本文以勇者斗恶龙3为例

要寻找初始物品,就需要先知道游戏中的物品代码,可以通过内存搜索,或者在EmuCheat的金手指文件中寻找,具体操作此处略过。

正常进入游戏,可以看到主角初始的道具是:铜剑、旅人服:

这两个物品的代码分别是02、30(通过内存搜索或者EmuCheat金手指文件找到)。

而这两个道具默认就是已装备的状态,道具装备以后物品代码会变为:物品代码+80(16进制),那么这两个道具此时的代码应为:82、B0

知道物品代码之后,找到它们在内存中的地址。

打开FCEUX的内存搜索,将下方的:数据 类型/显示 选择为16进制,然后在指定值那里填入82,按下搜索,这个时候我们将得到图中的内容:

此时不要关闭内存搜索窗口,我们在游戏中将铜剑取消装备,再看内存搜索:

上图中076C这个地址变换了一次,值正是物品原始的代码02,其它地址的值都不符合,证明076C这个地址就是铜剑这个物品在内存中的地址。 

打开调试器,添加一个写入断点,然后重置游戏。

在第二次断点的地方,看到了这样的代码:

01FEF3:B1 3C     LDA ($3C),Y @ $621A = #$82
01FEF5:A4 04     LDY $0004 = #$00
> 01FEF7:91 3E     STA ($3E),Y @ $076C = #$00

如图:

第一句代码LDA ($3C),Y @ $621A = #$82 表示82这个值是从内存地址$621A读入寄存器。

将076C这个地址的断点取消,重新添加621A这个地址的写断点,然后重置游戏,并删除、重新制作冒险书。

在第三次断点的地址,代码如下:

01F731:A9 82     LDA #$82
> 01F733:8D 1A 62  STA $621A = #$A0

代码LDA  #$82 表示将82这个值送入寄存器A中,执行位置在ROM文件中的:01F731(16进制) 。

主角的初始物品代码就这样找到了!

使用16进制编辑器(如UltraEdit、Winhex)打开ROM文件,定位到地址0x1F731处,将A9后面的82修改为想要的物品代码即可:

需要注意的是,要使修改生效,必须重新制作冒险书。。

skyyx2002

2018.02.28

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

skyyx2002

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值