决定动手:看不惯那些半吊子
我是真受不了那些半吊子的汉化。这游戏叫《反叛的使徒》,挺老的一个R-Game了,PC上早就有熟肉,但你去找安卓端,全网找了一圈,连个机翻凑合的版本都没有。有些平台倒是挂着,点进去一看,不是骗钱就是挂羊头卖狗肉,根本没法玩。
我就寻思,闲着也是闲着,我最近手头正好有个项目收尾了,有几天清闲,干脆自己动手,丰衣足食。我这个人就这样,要么不干,要干就得弄个能完美运行的出来。我立马就跑去抓了那个最新的日版APK安装包,打算给它彻彻底底地“换血”。
搞定文件:硬撬加密资源包
我知道这活不好干,因为大部分上安卓的黄油,资源都会被重新打包甚至加密。我拿到APK后,第一步自然是解压,想直接用WinRAR给它“扒皮”,结果发现文本和图片资源全都在一个巨大的`.xp3`文件里头,而且看样子是加了密的,一般的工具根本打不开。
我折腾了好几天,各种通用的解包工具轮着试了一遍,全都报错。当时真想直接放弃,因为这比预想的要复杂得多。后来我突然想起,这游戏好像是用那个叫“吉里吉里”(KiriKiri)的引擎做的。我赶紧跑到几个技术论坛翻找,终于挖出来一个专门针对这种引擎资源包的提取脚本。
- 我配置好了那个脚本运行的环境。
- 然后把那个加密的资源包扔了进去。
- 命令行敲了一通参数,噼里啪跑了一堆代码。
等我再去看文件夹,那些文字文件(`.ks`格式)、图片素材,总算是被我给“撬开”了。虽然打开后是日文的乱码,但文件结构是出来了,这第一道大坎总算过去了。
翻译和排版:和换行符死磕
文件是出来了,但这翻译才是要命的活。这游戏文字量巨大,我一个人肯定吃不消。我赶紧在几个群里喊了喊,找了两个平时也爱玩游戏的哥们帮忙,分头把导出来的文本表格填满。我们白天各自上班,晚上就对着屏幕抠字,连周末都没休息。
翻译本身倒还好说,最大的麻烦是排版。日文通常比较简洁,而中文占地方。游戏的对话框是固定宽度的,如果中文太长,就得自己手动加换行符,不然文字就会溢出屏幕,或者直接导致游戏崩溃。我得一边对照原文翻译,一边调整文本的换行符和空格,多一个字符都可能导致显示出问题。
那个过程,简直比我当年跑客户还痛苦。我们花了整整两周的时间,才把主线和主要的支线文本全部搞定,总算是松了一口气。
打包与踩坑:黑屏和闪退的折磨
文本搞定了,就到了最关键的重打包环节。我得把我们翻译好的文件塞回到那个APK的资源结构里。我用的那个打包工具,一弄就是半天,因为需要重新签名,还得确保安卓系统能认出来。
第一次打包安装到我的测试手机上,兴冲冲地点进去——黑屏!我心想完了,白干了。我查了一晚上的日志,发现是配置文件里的编码格式不对,UTF-8的BOM头给我整蒙了,手机直接不认。
第二次,我修正了编码问题。能进游戏了,但是玩到第二个场景,一读档就闪退。我折腾到凌晨三点,才发现是其中一个CG文件名(我为了方便管理给改了名字)我漏改了一个小写字母,系统找不到资源,直接崩了。简直气得我想砸手机。
就这么反反复复,我测试了六七个版本。我把安装包发给几个信任的朋友,让他们使劲给我找茬,他们一顿操作猛如虎,把所有闪退点都给找出来了。我再根据他们的反馈,一个一个修复,直到没有任何问题。
最终成果:救活一个“死”游戏
等我把所有BUG都修已经是第三周周末了。现在这个《反叛的使徒》的汉化版,跑在我的安卓平板上,那叫一个丝滑,没有任何乱码和闪退。虽然累得够呛,但是看到自己亲手把一个在安卓端近乎“死”的游戏给救活了,心里那个舒坦,比我发年终奖还痛快。
这实践记录,就是给跟我一样喜欢折腾的兄弟们一个参考,别怕麻烦,动手就完事了。只要有耐心,没有什么资源是撬不开的。