NDS《幻想水浒传12宫》破解纪实

论坛原帖:http://bbs.tgbus.com/viewthread.php?tid=3230218

前言

  从2007年9月入组到2009年初,有一年多的时间了。
  我经历了从使用现成的汉化工具到自己写工具;从纯粹的在hex编辑器观察数据破解到现在的NDS ASM这么一段历程。也算是“资深破解”啦 =^_^=
  非常感谢一位好友,flyeyes。是他让我对汉化有了深入的了解,也使我的技术有了质的飞跃,使我能够亲手汉化我喜欢的游戏(名师出高徒嘛,呵呵)。同时也感谢everyphoto帮我修改帖子^^
  我从前辈那汲取了不少“营养”,也该给后辈们留下些“财富”。春节放假比较空闲,就写了《幻想水浒传12宫》破解纪实。(由于文本量很大,ACG没有做的打算。)
  文章将分字库查找篇文本查找篇文本解密篇(ASM篇)三个方面来详细解说该游戏的破解过程。
  我写的比较详细(可能会有些罗嗦——),就算是初次接触汉化的朋友,慢慢看也应该能懂。当然C or C++的一些基础知识,以及ARM指令还是得掌握的。不然看到后面,就和看天书一样啦。

字库查找篇
  用NDSTOOL拆ROM后,打开在data目录(data目录是放游戏资源文件的地方,要汉化的文件绝大部分都在这里),真不错,直接就看见了font文件夹

 


  (对于一般游戏,可在data目录下搜索 “*font*”,“*.NFTR”,“*fnt*”,“*LD*”,“*kan*”等关键字)
    进到font目录,看见两个字库

 


  (NFTR是Nintendo Font Resource的缩写。一种Nintendo制定的字库文件,格式已被完全破解。)
    根据经验大的那个应该就是剧情字库。具体验证过程很简单,只要把字库里面的假名擦掉,再打包回游戏运行,看看游戏对话里还能不能显示假名即可。若不能,则说明找对字库了。经验证,的确是剧情字库。
    我们用CT2的NFTR编辑器查看下gd_sysfont_jp.nftr的参数

 


  10×9 单色1BPP。不过汉字对10×10以下的字支持不太好,最好做个10×10的。

 


  我们再看到字库的0x1F处,在下图中用红框围住的地方,

 


  那里是00,表示文本为UTF-8编码(0x00,UTF-8;0x01,Unicode;0x02,Shift-JIS)。
  到现在,字库算是研究清楚啦(另外一个字库gd_debugfont_jp.nftr从名字来看,是开发游戏时调试用的,我们无需理会),下面该研究文本了。

Copyright 2008-2009 A.C.G All rights reserved
点击数: