准备工具
准备好CT2,要汉化的美版心金ROM,nds解包工具
修改arm9
(有些rom是解压了arm9的可以跳过这一步)
首先用ct2打开rom,找到工具->nds文件目录信息,找到开头的arm9.bin,右键选择解压
打开解压后的arm9文件
修改以下地址的数据
08026014: 11 61 08026050: c0 46 080262c0: 68 21 40 5c 70 47
解包nds rom
这里我用了DP的字库文件,因为DP的字库还是和gen3绿宝石火红的字库顺序一样,比心金汉化版多了很多字。
字库文件位置:a/0/1/6
替换方法:
这里推荐使用ndstool这个工具 并且用命令行来解压和打包nds rom
将工具和rom放在同一文件夹下,打开电脑的命令行并且cd到这个位置
解包命令:
./ndstool -x ROMNAME.nds -9 base/arm9.bin -7 base/arm7.bin -y9 base/overarm9.bin -y7 base/overarm7.bin -d base/root -y base/overlay -t base/banner.bin -h base/header.bin
注意把中间的ROMNAME.nds替换成你的rom名字
等解包完毕后解包的数据会放在base的文件夹下
下载中文字库文件,将他替换到base/a/0/1/6
获取文本
由于心金汉化都是基于jp上汉化的,而老外的dspre虽然支持中文,但是他识别的是日文版本。所以美版汉化无法使用它们的工具去修改文本,同时新的字库码表不符合dspre的中文码表,这里只能使用别的办法去获取文本
幸运的是心金反编译项目里有msgenc这个工具可以根据码表去提取/转换文本和数据,所以这里使用这个工具来获取文本
https://github.com/pret/pokeheartgold
下载项目,定位到tools/msgenc,使用命令行键入make来生成可执行文件,这里需要你的电脑有支持编译c/c++的环境
同理定位到tools/knarc, 用make生成可执行文件
将生成的可执行文件复制到之前rom的路径下
将a/0/2/7复制出来,命名为text
使用knarc解包这个narc文件
新建一个makefile文件 用于批量处理
C_SRCS := $(foreach dname,msgdata,$(wildcard $(dname)/*.bin)) C_OBJS = $(C_SRCS:%.bin=%.txt) %.bin:; %.txt: %.bin @$(MSGENC) -c charmap.txt -d $< $@ dumptext: $(C_OBJS)
输入make dumptext 将所有的bin转换成txt文件
然后替换文本文件:
文本文件:a/0/2/7
请问我用winhex打开解压好的arm9.bin文件,里面地址最多也就到“01122032”
文章里的 这个地址( 08026014: 11 61)根本就木有哇。
如果可以的话,能提供下汉化好的美版心金吗,因为很多改版工具只支持美版
@ xiaofudie233 把08去掉,26014