试了一波3DS游戏汉化

服务器快到期了,估计这博客快要关了……有机会还会再开的。

首先感谢来自土豪舍友的3DS。

最近打通了《极限脱出:善人死亡》这个游戏。这是《极限脱出》系列的第二部,第一部《极限脱出:9小时9人9扇门》是NDS游戏(有汉化),第三部《极限脱出:零时困境》也将在本月底推出(3DS/PSV/PC Steam平台)。这个系列是解谜游戏,剧情和谜题都挺不错,值得一玩。

玩完美版之后,自然地想到是否能够汉化一下这个游戏,于是趁最近事情不太多的几天研究了一下。但是研究过程中发现ACG汉化组似乎偷偷开了暗坑(因为前作也是ACG组的作品),于是虽然写好了几个工具但没有继续做下去。【UPDATE: ACG汉化组的善人死亡汉化版已于2016.6.30发布。】

1.解包

首先当然是要把.3ds格式或者.cia格式的游戏中的资源文件提取出来。这个过程可以参考:

SarvSarv的3ds游戏汉化教程系列: http://www.k73.com/3ds/120261.html

cia游戏解包方法(使用ctrtool):http://bbs.duowan.com/thread-41629732-1-1.html

由于我手头是cia格式,首先使用3dstool将cia转为cci,然后使用ctrtool从中提取出romfs分区(文件夹)以及其中的所有资源。

 

2.特定文件格式

讲道理的话,有些善意的公司是用3ds标准的bcfnt格式的位图字库,网上已经有不少工具可以处理这种格式;这些善意的公司还可能用XML来存游戏中的文本,这汉化起来更是方便。然而做过超高校级的疯狂游戏《弹丸论破》系列以及超烧脑的《极限脱出》系列的chunsoft公司的设计并没有这么简单,它的字库格式未知(可能是自定义的格式),而且文本存在编译后的lua中(而且此lua文件无法反编译,估计是自定义改版的lua)。因此要汉化此游戏就至少需要攻破这两种格式……(其他格式貌似是采用的通用格式,如图片存在.packs文件中,可以通过现有工具解压和打包)

研究字库格式真是个艰辛的过程,特别是对于没有掌机/游戏设计经验的人更是如此(我倒不是0经验,但也是几乎没有吧)。字库格式改天再总结一下。lua格式相对比较简单(因为文本所在的文件都是专用于存放字符串的,几乎没有其他指令)。

 

3.调试与打包

打包依然可以参考上面的教程,无非是用到makerom(从泄露的3ds开发SDK中可取得)、3dstoolctrtool这几个工具。不过这是最基础的,我目前还不知道是怎么做到修改exefs的(比如在主菜单选中这个游戏之后上屏显示的游戏的名字和展示的logo图/模型)。此外也已经有一些批处理或者工具能减轻各种输命令行的痛苦。

不过为了调试方便,最好还是使用BootNTR自制系统的layeredFS插件。此插件能够在游戏运行时重定向文件的读取位置。比如通常游戏读取时是在它本体内部去读取A文件夹下的B文件,而此插件启用后,若发现SD卡中的A文件夹下面有B文件,则会变成从SD卡中读取,这样就测试汉化就很方便了。

首先参照layeredFS的说明生成一个对应的插件文件夹和一个游戏对应文件夹复制到SD卡根目录,把BootNTR的固件也复制到SD卡根目录,在虚拟系统中安装BootNTR的cia。将修改过的字库文件和文本所在文件按照romfs中的布局放到SD卡中的游戏对应文件夹中。

启动3ds进入虚拟系统,然后运行BootNTR进入自制系统。再运行游戏,在加载界面屏幕会闪过绿色,表示插件已经启动。如果随后黑屏死机,则表示你修改的文件有问题……(我在此死过好多次,因为字库文件格式分析上的失误)

如果成功就应该能看到效果了。

汉化完成并测试无误后,就可以放心地正式打包出cia或3ds文件了。

 

上效果图:

4.其他

ACG组的砂糖姐姐直言:这个游戏的技术难度算很低的。 因此我还是要多向dnasdw巨巨和砂糖巨巨多学习一个。(记得她曾提到一地点“鼓楼”,感觉有可能离我还不远,不知今后能否有机会现场膜拜一下)

评论 (2) -

  • U酱好厉害
    • 主要还是3DS玩起来感觉不错,也是出于对这个游戏的喜爱,才想试一试。虽然这游戏我啃完了英文版感觉还不算难。
      这个游戏的第三部月底要在Steam和3DS上发布了,到时候肯定要第一时间玩一波英文版——汉化的话总是心有余而力不足,毕竟也算是文字游戏,一个人的速度肯定干不过汉化组啦。
      总之至少可以推荐一下此系列的第一部《极限脱出:9小时9人9扇门》(NDS平台),NDS模拟器电脑、手机都有,玩这个游戏不成问题。而且NDS上还有不少好游戏……

添加评论

Loading