1 起因
组里有翻译大佬想要汉化名字叫宝石学院的GAL
本身只是想帮着找找有没有大佬写好的解封包工具,没想到后来会熬三个大夜来研究,整理一下这几天的结果。
2 文本汉化
首先,用GARBRO在含有文本的arc文件上右键——提取
得到剧本文件
下载两个PY脚本(因此要有python环境,没有可以参照这个安装)
先通过记事本之类的更改BGIScriptRepacker.py
中的这两个GBK
为UTF-8
将两个py文件放在剧本文件的同目录下(方便写路径)
在文件夹空白处右键(或者ctrl+右键)在终端中打开
输入以下代码对ja_01文件解包成txt(或者将ja_01拖动到该py文件上面)
python BGIScriptDumper.py ja_01
对得到的txt文件汉化后(不要修改txt文件的编码)
在刚刚的终端输入(ja_01是源文件,ja_01.txt是修改好的文本,1是要生成的文件名)
python BGIScriptRepacker.py ja_01 ja_01.txt 1
如果顺利,命令台的输出应该是这样的
将最后生成的文件1
改成源文件的名字ja_01
放在和启动游戏的exe相同目录
这样,游戏程序就可以读取到汉化后的文本了。
3 修改字符编码
因为我们修改了文本为UTF-8编码,因此也需要修改游戏程序的编码读取方式,不然就会变成乱码
需要用到Ollydbg这个软件
下载这个文件,解压到固定目录,先运行路径修复的exe,再运行主程序
运行好之后,将需要修改编码的文件拖拽到窗口内
本来接下来应该是去断MultiByteToWideChar
函数找3A4
改成utf-8
编码对应的FDE9
的,类似大佬给的图这样
但是我一直不知道怎么断到正确的函数,因此索性直接ctrl+f,找push 0x3A4
这个命令,一共6个结果,逐一修改成push 0xFDE9
,然后按F9调试,如果还是乱码,就点下图的按钮重新去改别的,最终找到了两个需要修改的位置
修改好之后,右键,复制到可执行文件,所有修改
全部复制
在新出现的窗口右键,保存文件
取一个和源文件不一样的名字保存即可
4 标题
标题所在的文件位于system.arc
文件的ipl._bp
,同样先用GARBRO
提取出来
使用一个16进制编辑器打开(比如winhex)去找标题文本,逐一修改16进制编码(不能超出,可以补0,另外这里应该有些奇怪的逻辑,不是成片的文字片段直接改,建议ctrl+alt+h逐段文字修改)
5 UI图标
系统图标位于sysgrp.arc
文件下,用GARBRO对内部的文件右键,选择文件类型,图像
可以看到能正常地读取
再对刚刚的文件右键,提取,另存为BMP,提取
用PS打开,修改好之后直接保存为BMP文件到exe的相同目录下,去掉BMP的后缀即可被正常读取
6 封包
多出来这么多修改好的文件,最终的汉化如何发布呢?
答案是把多出来的文件和exe一起封成新的exe
使用大佬推荐的molebox,打开exe程序
点这个图标添加好要打包在一起的文件(包括exe)
点设置图标设置这两项
再点击这个图标即可
7 资源
EEGUI工具,可以直接编辑文本文件,但是GBK编码
8 参考资料
Dir-A大佬关于编码范围的文本教程(基本他的作品都可以看看,我是在他的交流群里找到了知道怎么改编码的大佬帮忙的)