RuneTranslate now translates AliceSoft System games (Rance, Evenicle…)
RuneTranslate now translates AliceSoft's System 3.x and System 4 games — the Rance series, Evenicle, Daiakuji and the wider catalog — into English and 30+ languages. It reads the .ald / .afa archives in pure TypeScript, pulls the message text out of System39.ain (System 3.x) or the per-game .ain (System 4, including the zlib-compressed and MT19937-encrypted containers), and exports a translated copy by loose-file override. Brand-new and best-effort — translate a few lines and test the exported build before sharing.
RuneTranslate now reads one of the biggest and most-requested catalogs in Japanese PC gaming: AliceSoft's System engine— the family that powers the entire Rance series, Evenicle, Daiakuji, the Toushin Toshi games, and decades of releases. If you've ever opened a Rance game folder, seen a pile of .ald files and a System39.ain or Rance6.ainwith nothing readable inside, and had no idea where the dialogue even lived — that's this engine. RuneTranslate now detects it, opens the archives in pure TypeScript, finds the message text wherever it hides, and exports a translated copy the game loads on its own. It's the latest engineRuneTranslate supports — our 14th.
This is a brand-new engineand the honest part comes first: AliceSoft support is freshly built. The extraction and the byte-exact write-back are verified on real games — Rance 5D, Sengoku Rance, and Rance VI — but the final step of launching a fully translatedbuild and confirming it renders in-game is still being confirmed. So before anything else: if you point RuneTranslate at an AliceSoft game and it doesn't detect, doesn't open, or exports something the game won't load, please tell us. More on how, at the end.
What the AliceSoft “System” engine actually is
AliceSoft built their own engine in-house and used it for almost everything. It's really two engines under one brand:
- System 3.x— the classic titles. A small interpreter (
alice.exe/System39.exe) runs compiled scenario files, with aSystem39.ainindex and.aldarchives holding the data. - System 4 — the modern titles. A
System40.exeinterpreter runs a per-game.ainthat is a whole compiled program image, alongside.aldand newer.afaarchives.
Both store the player-facing text in places that don't open in Notepad, which is exactly why this enormous catalogue has stayed out of reach for ordinary machine-translation tools.
Why AliceSoft games have been so hard to translate
- The dialogue isn't where you'd look. On System 3.x, the compiled scenario files (
.SCO) don't contain the dialogue at all — they reference each message by number. The actual lines live in theMSGIsection ofSystem39.ain, and that section is bit-rotated so a plain text search finds nothing. - System 4 wraps everything. The
.ainis a full compiled program, and it ships in one of two containers: a zlib-compressed one (the “AI2” format) or a fully encryptedone (an MT19937 keystream over the whole file). You have to unwrap the container before there's anything to read. - The text sits inside a program, not a script. Once unwrapped, the message and string pools are buried among the bytecode, functions, globals, and type tables. Finding them means walking the entire program structure section by section.
- Not every string is dialogue. Mixed in with the lines are format strings, debug text, and identifiers the game logic depends on. Translate one of those by accident and something quietly breaks.
That's the work RuneTranslate now does for you — archive reader, de-obfuscator, container unwrapper, program walker, and a guard that tells dialogue apart from the engine's internal strings.
What RuneTranslate does now
RuneTranslate treats AliceSoft as a first-class engine and handles the whole pipeline in pure TypeScript — no GARbro, no external tools, no Python sidecar, nothing to install:
- Reads the
.ald/.afaarchives directly. It opens the Alice Linked Data and Alice File Archive containers in-house and lists what's inside. - System 3.x: finds the hidden messages. It de-obfuscates the
MSGIsection ofSystem39.ainand lists every line in the editor. - System 4: unwraps both containers. Whether the
.ainis the zlib-compressed AI2 format or the encrypted one, RuneTranslate unwraps it, walks the program image, and pulls out the message pool (the dialogue) plus the string pool. - Knows dialogue from machinery. Format specifiers, debug strings, and identifiers are surfaced but excluded by default— shown as red opt-in rows — so you never accidentally translate something the program depends on.
- Writes back without breaking the references.The game's bytecode points at each line by index, not by position, so a translation can be any length and everything still lines up. On export it rewrites the message data — in place for System 3.x, re-packing the original container for System 4 — and the result is byte-for-byte identical when you haven't changed anything.
Japanese → English is the sweet spot, but you can target any of 30+ languages— Spanish, French, German, Portuguese, Russian, Chinese, Italian, Turkish, Vietnamese, and more.
What you need
- RuneTranslate for Windows— free; every engine and provider is unlocked (the free tier is throttled on speed, not features).
- An AliceSoft game folder — the directory with the interpreter (
alice.exe/System39.exefor System 3.x, orSystem40.exefor System 4), aSystem39.ainor per-game.ain, and the.ald/.afaarchives. - A target language — English, Spanish, French, German, Portuguese, Russian, Chinese, Italian, Turkish, Vietnamese, and 20+ more.
- One translation provider. Free Google Translate works out of the box; DeepL has a free tier; OpenAI, Anthropic, a local model, and any OpenAI-compatible API are bring-your-own-key. Rance and friends are dialogue-heavy, so an LLM (OpenAI / Anthropic) or DeepL usually reads best.
Step 1: Open the game folder
Launch RuneTranslate, click New project, and point it at the AliceSoft game directory. Engine detection runs automatically — it spots the System39/40 interpreter alongside the .ald / .afa archives, recognises the project as AliceSoft, and tells you which System version it is. Your original game folder is never modified.
Step 2: How the text gets read
For a System 3.x game, RuneTranslate de-obfuscates the MSGI message section of System39.ain and lists every line. For a System 4 game, it unwraps the .aincontainer — zlib-compressed or encrypted — walks the program image, and pulls out the message and string pools. In both cases the engine's internal strings (format specifiers, debug text, identifiers) are shown but excluded by default, so you only translate what the player sees.
Step 3: Translate
Pick a provider and run. For these games, an LLM (OpenAI / Anthropic)is best for character voice and the series' famously over-the-top tone, DeepL is fast and clean for narration, and free Google Translateis fine for short menu strings and item names. Glossary your cast and recurring terms up front so names render identically across the whole game — see Glossary 101. When you're done, an optional pass with the AI refiner re-reads each line in context and tightens up the stiff, literal phrasing machine translation tends to leave behind.
Step 4: Export a ready-to-run copy
Click Export. RuneTranslate writes a translated copy of the game with the rebuilt .ain dropped loose next to it. There's no archive repack — the interpreter loads the translated .ain, so the game just reads your translations. Run it, and it plays in your target language.
Known limitations
- AliceSoft text is Shift-JIS (cp932).English and other cp932-representable targets export cleanly — and RuneTranslate font-normalizes each line so smart punctuation and accented Latin survive. Targets with characters outside cp932 (extended Cyrillic, Korean, Traditional Chinese) need a game-font/encoding hack that isn't automated yet.
- The in-game load of a full translation is still being confirmed. Extraction and a byte-exact, unchanged round-trip are verified on Rance 5D, Sengoku Rance, and Rance VI; launching a fully translated build end-to-end is the part we're still validating, so test your exported copy first.
- System 4 is verified on
.ainversions 4 and 5. The newer v8+ program formats used by some recent titles are supported best-effort and not yet game-verified. Encrypted.afav3 archive indexes are likewise decoded best-effort. - Text baked into image art— a title screen or CG drawn as a bitmap — is pixels, not script text. For that, see image-text translation.
It's brand new — tell us what breaks
Worth repeating plainly: AliceSoft support is a fresh addition. The archive readers, the System 3.x and System 4 text extraction, and the byte-exact write-back are built and unit-tested, and verified on real Rance games — but AliceSoft's catalogue spans decades and many format revisions we haven't all seen. So if you point RuneTranslate at an AliceSoft game and it doesn't detect, doesn't open the archives, extracts nothing, or exports something the game won't load, please report it on our Discord — the game's name and which System version it is, is exactly what helps us harden it fastest.
Download RuneTranslate, point it at that Rance game you've been waiting to read, and try it. For a look at how we handle another archive-based engine, read the YU-RIS walkthrough next.
Ready to try RuneTranslate?
Free tier unlocks every engine + every translation provider. Supporter ($3/mo) unlocks full speed.
Download for Windows