FCEUX是一款非常优秀的FC游戏模拟器,它自带调试器,研究游戏很方便!比起VirtuaNES,我更喜欢FCEUX!更难得的是,它至今仍在更新!
官网地址:https://fceux.com/
分享一个本人以前汉化的版本:
百度网盘:https://pan.baidu.com/s/1vtzltEBufH_a9yN7xfXixg?pwd=1234
提取码:1234
压缩包里除了正常的版本,还改了一个支持吞食天地2的版本:
要寻找初始物品,就需要先知道游戏中的物品代码,可以通过内存搜索,或者在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