拿到一个新ROM,个人习惯看看此ROM的文本是不是用标准的Shift-JIS编码,如果是的话那就可以省去做码表的功夫了。那如何判断一个ROM 是否用Shift-JIS编码的呢?
首先,用模拟器或者NDS运行游戏,记录下游戏开头的第一句话。如降魔灵符传的第一句话是“今は昔”,然后在Shift-JIS-A.tbl里面查找此三个字的编码,结果为:8DA1 82CD 90CC。
然后用CrystalTile(以后简称为CT)打开降魔灵符传,按CTRL+H切换到十六进制编辑器视图,再选择菜单的码表/导入码表,打开 Shift-JIS-A.tbl,再次选择码表/启用码表。
按CTRL+F弹出查找窗口,输入“今は昔”的SJIS编码:8DA1 82CD 90CC。按下“查找下一个”,很快就能找到了,如图一所示,为了验证一下,我们来修改下测试吧。将“は昔”的编码修改为“今”的编码,如图二,保存。运行游戏,效果出来了,游戏的第一句话被我们改为“今今今。”了。由此说明了此处的文本正是游戏所用的文本,也说明了此游戏的文本用的编码就是SHIFT- JIS编码。

图一:搜索到“今は昔”的文本

图二:修改为“今今今”

图三:修改测试成功
到这里先别急着导出文本,游戏字库我们还没找呢!找游戏字库一般的方法就是用CT打开ROM,然后一页一页往下翻,仔细查找。不过这方法效率低,而且很废眼睛,不到万不得已一般不用。个人一般习惯先用NDSTOOL解压ROM,然后在解压出来的文件里面查找。
把降魔灵符传的ROM放在NDSTOOL目录下,运行_dump.bat,会弹出一个DOS窗口,稍等片刻等它自动关闭后就解压完成了。
进入data目录,下面还有几个子目录,根据目录的名称可以猜测:
data:游戏数据目录
font:字库目录
gra:图形目录
scenario:游戏场景
sound:声音
一般font目录下的文件就是该游戏的字库,如果没有该目录的话各位可以搜索文件名中含有font的文件,一般来说这个文件也就是字库。
进去font目录,发现有四个文件,文件名为Font**.NFTR,其中的**是代表字体的宽度,单位为像素。本游戏的字体宽度是12像素的(可在游戏里面截图,然后在画图里面放大数下宽度为几个像素),所以推测Font12.NFTR文件就是此游戏的字库文件。
下面再来验证一下。用CT打开Font12.NFTR,选择菜单的视图/Tile视图,然后在右边的属性那里设置宽度为11,高度为12,颜色格式为单色1BPP,然后再使用CTRL+左右键进行微调后就可以看清字库了。大家可以把日文假名都抹掉然后在游戏里面看看还会不会显示日文假名。选中日文假名的第一个假名“ぁ”,选择菜单的视图/Tile编辑器,按CTRL+D调出Tile编辑器窗口,一直点击修改Tile抹掉全部假名,最后保存。

图四:本游戏的字库

图五:利用CT修改字库
最后运行_pack.bat就可以把之前解压出来的文件打包成ROM了,生成的文件名为pack.nds,运行测试一下此ROM,如图六,发现日文假名都不显示了,从而验证了Font12.NFTR这个文件就是该游戏所用的字库。
首先,用模拟器或者NDS运行游戏,记录下游戏开头的第一句话。如降魔灵符传的第一句话是“今は昔”,然后在Shift-JIS-A.tbl里面查找此三个字的编码,结果为:8DA1 82CD 90CC。
然后用CrystalTile(以后简称为CT)打开降魔灵符传,按CTRL+H切换到十六进制编辑器视图,再选择菜单的码表/导入码表,打开 Shift-JIS-A.tbl,再次选择码表/启用码表。
按CTRL+F弹出查找窗口,输入“今は昔”的SJIS编码:8DA1 82CD 90CC。按下“查找下一个”,很快就能找到了,如图一所示,为了验证一下,我们来修改下测试吧。将“は昔”的编码修改为“今”的编码,如图二,保存。运行游戏,效果出来了,游戏的第一句话被我们改为“今今今。”了。由此说明了此处的文本正是游戏所用的文本,也说明了此游戏的文本用的编码就是SHIFT- JIS编码。

图一:搜索到“今は昔”的文本

图二:修改为“今今今”

图三:修改测试成功
到这里先别急着导出文本,游戏字库我们还没找呢!找游戏字库一般的方法就是用CT打开ROM,然后一页一页往下翻,仔细查找。不过这方法效率低,而且很废眼睛,不到万不得已一般不用。个人一般习惯先用NDSTOOL解压ROM,然后在解压出来的文件里面查找。
把降魔灵符传的ROM放在NDSTOOL目录下,运行_dump.bat,会弹出一个DOS窗口,稍等片刻等它自动关闭后就解压完成了。
进入data目录,下面还有几个子目录,根据目录的名称可以猜测:
data:游戏数据目录
font:字库目录
gra:图形目录
scenario:游戏场景
sound:声音
一般font目录下的文件就是该游戏的字库,如果没有该目录的话各位可以搜索文件名中含有font的文件,一般来说这个文件也就是字库。
进去font目录,发现有四个文件,文件名为Font**.NFTR,其中的**是代表字体的宽度,单位为像素。本游戏的字体宽度是12像素的(可在游戏里面截图,然后在画图里面放大数下宽度为几个像素),所以推测Font12.NFTR文件就是此游戏的字库文件。
下面再来验证一下。用CT打开Font12.NFTR,选择菜单的视图/Tile视图,然后在右边的属性那里设置宽度为11,高度为12,颜色格式为单色1BPP,然后再使用CTRL+左右键进行微调后就可以看清字库了。大家可以把日文假名都抹掉然后在游戏里面看看还会不会显示日文假名。选中日文假名的第一个假名“ぁ”,选择菜单的视图/Tile编辑器,按CTRL+D调出Tile编辑器窗口,一直点击修改Tile抹掉全部假名,最后保存。

图四:本游戏的字库

图五:利用CT修改字库
最后运行_pack.bat就可以把之前解压出来的文件打包成ROM了,生成的文件名为pack.nds,运行测试一下此ROM,如图六,发现日文假名都不显示了,从而验证了Font12.NFTR这个文件就是该游戏所用的字库。