Galgame 汉化¶
约 1540 个字 19 行代码 预计阅读时间 8 分钟
解包¶
免责声明
解包实际上是侵权行为,本人仅仅出于学习目的写下该笔记
根据游戏引擎的不同,galgame厂商会将游戏打包成不同的特殊格式(常见的有.dat
,.arc
,.xp3
等)
KRKR2¶
解包用工具:
- Xp3Viewer (2016以前)
- krkrextract (2016以后)
以 krkrextract 为例
从 github 上下载 krkrextract 4.0 版本(https://github.com/xmoezzz/KrkrExtract/releases/tag/4.0.1.5)
将下载后的 exe
文件及 dll
文件复制到希望解包的 KRKR2 游戏根目录下,将游戏启动可执行文件拖到 KrkrExtract.exe
上,会弹出一个窗口,如果希望解包得到 CG 的话,一般选择 event.xp3
,拖动到该窗口上并选择 PNG
格式解包
KRKR 引擎的文本一般位于 scn.xp3
内,如果你没找到该资源文件,那它其实是被整合在 data.xp3
文件内了,里面可能是以 .ks
或 .scn
结尾的脚本文件
其它¶
https://blog.ztjal.info/acg/acg-data/some-galgame-unpack-tools-website
这是一个热衷于解包的大佬搞的网站,该页面包含相当多的解包用工具,供查阅使用
一些解包或是汉化常用的工具:
- Releases · morkt/GARbro (github.com)
- arcusmaximus/VNTranslationTools: Tools for translating visual novels (github.com)
- arcusmaximus/KirikiriTools: Tools for the Kirikiri visual novel engine (github.com)
- Releases · UlyssesWu/FreeMote (github.com)
汉化¶
仔细阅读说明,即可了解如何使用
- SakuraLLM/SakuraLLM: 适配轻小说/Galgame的日中翻译大模型 (github.com)
- GalTransl: 支持GPT-3.5/GPT-4/Newbing/Sakura等大语言模型的Galgame自动化翻译解决方案 Automated translation solution for visual novels supporting GPT-3.5/GPT-4/Newbing/Sakura (github.com)
あきゆめくくる¶
第一个果然还是拿 KRKR 引擎的来试试手
首先使用 GARbro 提取出 data.xp3
内的 scn 文件夹,里面都是命名为 00_prologue_01.txt.scn
的文件
此时可以先用 Freemote 来对 .scn
进行解封:
(在把 Freemote 目录添加进环境的条件下) 在该文件的根目录使用命令 PsbDecompile 00_prologue_01.txt.scn
,提取出俩个 json
文件,只需要看第一个即可(不带 .resx
的)
打开提取出的 json
文件并往下翻翻,可以找到 texts
部分,图中我已经把第一句话手动翻译了一下,用作查看汉化能否成功的尝试
修改完后,使用 PsBuild .\00_prologue_01.txt.json
封包,并将输出文件重命名为原来的 00_prologue_01.txt.scn
在游戏根目录新建文件夹 ProjectDir
,将改好的文件放入里面,使用 krkrextract
打开游戏本体,点击 Make Universal Patch
按钮,它会为我们生成一个名为 あきゆめくくる_Patch.exe
的程序,此时直接运行并查看文本第一句话是否修改成功:
看到成功后,即可尝试用 Sakura 大模型以及 Galtransl 来进行机翻汉化了
下载 VNTranslationTools 后,可以打开 Galtransl 中 usefultools 内的 GalTransl_DumpInjector
的 GUI 页面,进行批量提取和格式化文本:
提取后的 json
文件基本格式如下:
启动 Sakura 的本地部署,打开 Galtransl 并按照教程将正确结构的文件夹置入,即可开始翻译:
全部翻译完后可以简单看下翻译效果,再据此修改一下译后字典。
再次使用 GalTransl_DumpInjector
将译后的 json
文件转换回 scn
文件,直接全选用 GARBro 打包为 patch.xp3
,放在根目录下,基本的汉化工作就完成了。
不幸的是,由于日文字体问题,很多时候会遇到文本时粗时细的情况
因此寄希望于替换字体,经发现,使用 krkrextract 进行一次 Make Universal Patch 后,再打开就没有这个问题了,但是怎么制作补丁文件暂时还没有搞懂
不过这游戏也可以在上面菜单更换字体,也无所谓啦
Ambitious Mission FD2¶
用的是 krkrz 引擎,但是不能用 krkrextract 或者 garbro 很方便拆出 scn 文件,只能用 krkrdump 或者 krkrzextract ,通过过一遍游戏来获取文本
尝试修改第一句话再封包回去,创建 ProjectDir 文件夹并放入修改后 scn ,使用 krkrextract 制作 Universal Patch 。不过制作出来的 exe 并不能运行, krkrextract 大抵是不行的
在 arcusmaximus/KirikiriTools 这个仓库里看到一个很方便的动态链接库 version.dll
,只要创建一个名为 unencrypted
的文件夹同样可以达到免封包的效果,遂采用
但是制作汉化补丁最好还是要封包的,可以使用 Enigma Virtual Box ,选择 unencrypted
, version.dll
, ambitious mission after2.exe
进行封装,生成一个新 exe 文件
这时还不能直接运行,要复制一份原 exe 程序对应的 sig 文件并将其改名为你的新 exe 文件对应的 sig 文件,这时就可以运行了
D.C.4 Sweet Harmony¶
Garbro 提取的 scn 貌似有解密错误,但是可以用 krkrextract 解包
正常解包翻译封回 scn 文件后,使用 Garbro 封包并命名为 patch.xp3
,并把 krkrtools 提供的 version.dll
复制进根目录就可以看到汉化成功了
MinDeaD BlooD 输血箱¶
黑C的老游戏,文本的 .spt
文件就漏在外面,可以使用 VNTextTool
解包然后翻译即可
封包回去时记得按照仓库里写的使用 shiftjis 替换模式,用 hook 替换字符
転性魔王さまは勇者に勝てない!¶
SoftPal的工具 github 上有很多,但是这个 exe 改编码有点看不懂了。看别人补丁是用 dll hook的,有时间研究下。
去除区域认证¶
可以使用OD或者x64dbg改,不过x64dbg需要先使用LordPE去除redirect后再改(勾选重定向已分离)
OD(可能需要全英文路径,否则可能进不到断点就直接退出):使用OD打开 exe 后,F9运行程序至进入主模块,在CPU窗口中Ctrl+N(或右键->查找->当前模块中的名称),查找GetSystemDefaultLangID
,查找函数参考,双击跳转至函数调用处
然后直接返回0x411(将call调用改为mov eax, 411
)
更改完后在CPU窗口右键->复制到可执行文件->所有修改,之后保存文件即可
我还没遇到这种情况,因此先从别人那里copy下来,之后再改