支持的引擎 · YU-RIS
YU-RIS(由 raiL-soft 开发)是一款历史悠久的 Windows 脚本引擎,背后有数百部同人和商业日语视觉小说。它的资源存放在 .ypf 包归档里,剧情则编译成 YSTB 脚本(ysbin.ypf 内的 .ybn 文件,内部路径如 ysbin/yst00000.ybn)。RuneTranslate 用纯 TypeScript 读取 .ypf 包 — 无需 GARbro 或外部工具 — 解压条目并恢复每个归档的文件名密钥,然后解析编译后的 YSTB 脚本:它拆分四个区段(指令、参数描述符、字符串值、行号),并从描述符表自动恢复脚本的 4 字节 XOR 密钥,因此加密脚本无需苦寻密钥即可打开。随后它从字符串表提取日语对话,并在编辑器中列出每一行,同时默认排除引擎的命令操作数、变量名和资源路径,因此你绝不会翻译到脚本逻辑用来比较的内容。导出时它会重建字符串表 — 修补每一个偏移,使更长或更短的翻译都能放下 — 重新应用相同的 XOR 密钥,并把翻译后的 .ybn 以松散形式写在其归档路径。由于 YU-RIS 运行时会优先读取磁盘上的松散文件而非 .ypf 内相同路径的文件,游戏便直接加载你的翻译 — 无需重打包。该引擎仍在真实游戏上验证中,因此请在再分发前测试导出的版本。
视觉小说在数千行文本中依赖固定的角色阵容和反复出现的术语,而机器翻译会在三个章节里把女主角的名字拼成三种不同的写法。预先把你的角色、地名和反复出现的术语加进术语表,这样每一行对话都会以相同方式呈现它们。 术语表入门 →
将 RuneTranslate 指向游戏目录 — 含游戏 yu-ris.exe 及其 .ypf 包(通常在 pac/ 子文件夹里,脚本在 ysbin.ypf 中)的文件夹。如果你已经用 GARbro 解包了游戏,一个松散的、含 .ybn 脚本的 ysbin/ 文件夹也会被检测到。引擎检测会自动识别 YU-RIS 布局;你的原始文件夹绝不会被修改。
RuneTranslate 用纯 TypeScript 打开 .ypf 包,解压条目,并解析其中编译后的 YSTB 脚本。它会从参数描述符表自动恢复每个脚本的 4 字节 XOR 密钥 — 无需苦寻密钥 — 解码 Shift-JIS 字符串表,并在编辑器中按脚本文件分组列出每一条日语行。引擎命令操作数、变量名和资源路径会被呈现出来但默认排除,因此剧情逻辑保持完整。
这些游戏对话密集且对语气敏感,因此 LLM(OpenAI GPT-4o / Anthropic Claude)或 DeepL 通常读起来最好;免费的 Google Translate 或本地模型(Ollama / LM Studio)可覆盖短菜单字符串和选项,你还可以把 OpenAI 兼容服务商指向 OpenRouter 或 NanoGPT。可选的 AI 精修二次处理能收紧生硬的措辞。
YU-RIS 的消息文本会把反斜杠控制码(换行、颜色、ruby)和方括号标签穿插在对话中。RuneTranslate 在翻译过程中会把它们每一个冻结为数字占位符,并在输出时还原,因此翻译后的行保持与原文相同的格式和节奏。
导出时,RuneTranslate 会复制游戏并重建每个翻译后的 YSTB 脚本 — 修补字符串表偏移,使任意长度的翻译都能放下,并重新应用相同的 XOR 密钥 — 然后把它以松散形式写在其原始归档路径(如 ysbin/yst00000.ybn)。YU-RIS 运行时会优先读取松散文件而非 .ypf 内相同路径的文件,因此游戏只会读取你的翻译,无需重打包。运行导出的副本,它就会以你的语言运行。