BLOOD ROYAL 机翻笔记
Cherry Soft搞的第5作,这作的引擎与Promise那作相同,但是还是费了很多工夫。拆包靠garbro,没有加密,封包结构简单但是很怪(文件信息在封包末尾而不是开头),简单分析就能搞出封包代码。
二进制脚本是代码文本混合的形式,我试图进行了“反编译”,但是我并没有什么逆向能力,所以“反编译”完全靠猜。由于我只需要更改文本,所以我并不关心所有指令的具体含义,甚至不需要做到完全正确的分辨指令。我关心的只有地址跳转的指令和文本的指令。文本很好找,地址跳转……只能靠直觉了,地址都是小端字节序的uint 32。首先,去除掉所有没有文本的脚本,以减少工作量。然后找到一些明显的指令,剩下的不管,运行程序等报错,再到报错的地方分析,完善指令表……这样来回数十次就能得到一组opcode表了。由于是拼凑的,肯定有错误,但是只要保证地址跳转和文本不出错就行。
文本中有特殊代码,\N为换行,ME为主角名字,这两个在预处理时替换。剩下的一些表示变量的代码可以保留,AI有能力进行处理。
日文处理采用了字体替换,用自研的汉字替换和字体处理组件 Hanzireplacer.py
处理文本,用自研的 FONTCHANGER.dll
hook了createfont相关函数导入字体。这个主程序没有加保护,直接用setdll.exe修改主程序就能加载FONTCHANGE.dll了。翻译后,简单更改一下跳转的地址,再进行编译,最后封包就行了。封包名字改成了CHSNR.dat,然后去exe里搜BRSNR.dar,改成CHSNR.dat,这样安装补丁就不用覆盖原文件了。