RuneTranslate übersetzt jetzt NScripter-/ONScripter-Visual-Novels
RuneTranslate übersetzt jetzt NScripter- und ONScripter-Visual-Novels ins Englische und in über 30 Sprachen — dekodiert die mit XOR-0x84 verschleierte nscript.dat, verarbeitet Shift-JIS-/CP932-Text und die Parser-Falle bei Zeilen, die mit lateinischen Buchstaben beginnen, und übersetzt das Japanisch, das in Titelbildschirme, Menüs und Schaltflächen eingebrannt ist. Auf den Spielordner zeigen, automatisch erkennen, übersetzen, eine spielfertige Kopie exportieren. Neu hinzugefügt — melde jedes Spiel, das nicht lädt.
RuneTranslate spricht jetzt einen der ältesten Dialekte japanischer Visual Novels: NScripter und seinen quelloffenen Zwilling ONScripter. Wenn du schon immer eine klassische Doujin-VN übersetzen wolltest — die Sorte, die als Ordner voller kryptischer .dat-Dateien und Shift-JIS-Skripte daherkommt —, dann ist das die Engine-Familie, die von Hand historisch am schwersten zu knacken war und die maschinelle Übersetzungswerkzeuge meist überspringen. RuneTranslate erkennt sie jetzt, liest den Skripttext und übersetzt sogar das Japanisch, das in den Titelbildschirm und die Menüschaltflächen gemalt ist.
Dies ist eine neu hinzugefügte Engine, also vorab: Wenn du RuneTranslate auf ein NScripter-/ONScripter-Spiel richtest und es nicht lädt oder nicht erkannt wird, sag uns bitte Bescheid. Mehr dazu am Ende.
Was NScripter und ONScripter eigentlich sind
NScripter ist eine Windows-Skript-Engine für Visual Novels, geschrieben von Naoki Takahashi und etwa von 1999 bis 2018 entwickelt (die letzte Point-Release, 3.10.102, trägt das Datum Februar 2018, auch wenn die nennenswerte Feature-Arbeit nach den frühen 2000ern drastisch nachließ). Sie war nie quelloffen, aber ihre Lizenz erlaubte lizenzgebührenfreie private und kommerzielle Nutzung, und das — kombiniert mit einem eingebauten Archiv-Packer und einer mächtigen, berüchtigt hardwarenahen Skriptsprache — machte sie in ihrer Blütezeit zu einer der meistgenutzten VN-Engines in Japan. Kommerzielle Studios wie Nekonekosoft setzten fast ausschließlich auf sie, und die Doujin-Szene liebte sie.
ONScripter ist ein eigenständiges, unabhängiges Projekt: eine quelloffene (GPL) Neuimplementierung der NScripter-Laufzeit, 2002 von einem Programmierer namens Ogapee begonnen. Sie baut auf SDL auf und soll drop-in-kompatibel mit NScripter-Spielen sein, läuft aber dort, wo NScripter es nie konnte — Linux, macOS, BSD, Android und mehr. Weil sie offen und veränderbar ist, machte die englischsprachige Lokalisierungs-Community sie zur De-facto-Engine für das Ausliefern übersetzter NScripter-Spiele, und eine Reihe von Forks fügte Unterstützung für westliche Sprachen hinzu: Chendos 1-Byte-Zeichen-Patch von 2004, Haeleths ONScripter-EN (ONS-EN) und Ponscripter* für proportionale Unicode-Schriften, Uncle Mions spätere Pflege und insanis wiederbelebter Branch für moderne Builds.
Kurz gesagt: NScripter ist die ursprüngliche geschlossene Windows-Engine, auf der die Spiele erstellt wurden; ONScripter (und ONS-EN / Ponscripter) ist die offene, plattformübergreifende Laufzeit, auf der Fan-Übersetzer ihre übersetzten Builds tatsächlich ausführen. RuneTranslate arbeitet mit den Skripten und Assets des Spiels und deckt so Titel aus beiden Lagern ab.
Warum diese Spiele so schwer zu übersetzen waren
Verglichen mit einer modernen Engine wie Ren'Py oder Kirikiri ist NScripter / ONScripter ein Minenfeld aus Eigenheiten seiner Engine-Ära. Vier davon haben es sowohl für Handübersetzer als auch für naive maschinelle Übersetzungswerkzeuge zur Wand gemacht:
- Shift-JIS-/CP932-Kodierung. Alte Skripte und Datendateien sind in Shift-JIS kodiert (Microsofts Variante, CP932), der alten japanischen Doppelbyte-Kodierung. Dekodierst du sie falsch, bekommst du Mojibake; kodierst du sie sorglos neu, beschädigen manche älteren Laufzeiten den Speicher und stürzen ab. Ein Übersetzer muss CP932 korrekt erkennen und sauber hin- und zurückwandeln — moderne native Skripte können UTF-8 sein, aber der Altbestand ist CP932.
- Die mit XOR-0x84 verschleierte `nscript.dat`. Das kompilierte Skript liegt meist in
nscript.dat(oderpscript.datbei Ponscripter), wo jedes Byte gegen das konstante Byte0x84mit XOR verknüpft ist. Es ist keine Verschlüsselung — die Dokumentation sagt ausdrücklich, dass sie keine Sicherheit bietet, sondern nur vor versehentlichen Spoilern schützt —, aber du kannst es auch nicht einfach in einem Texteditor öffnen. Du musst das XOR rückgängig machen, den Shift-JIS-Text darin bearbeiten und beim Zurückschreiben erneut mit XOR verknüpfen. (Spiele können alternativ Klartext-Skripte0.txt/.umitliefern oder Skripte in.nsa-/.sar-Archiven.) - In Bildmaterial eingebrannter Text. Titelbildschirme, Menüs und Schaltflächen sind häufig vorgerenderte Bitmaps — NScripter verlangt sogar, dass manche Grafiken BMP sind —, sodass das Japanisch darauf Pixel sind, keine Zeichenketten. Ein String-Extraktor kommt nicht heran.
- Der subtile Fall: Zeilen, die mit lateinischen Buchstaben beginnen, werden als Befehle neu geparst. NScripters Parser beginnt jede Zeile im Befehls-Modus. Historisch war das sicher, weil die Engine nur Zweibyte-Japanisch akzeptierte, sodass jede angezeigte Zeile eindeutig Text war. Sobald du einbyte-Englisch einführst, sieht eine Zeile, die mit einem lateinischen Buchstaben beginnt, genau wie ein Skriptbefehl aus, und die Engine versucht, ihn auszuführen — was das Spiel kaputtmacht. Die Lösung der Community ist ein reservierter Text-Marker (das Backtick `
`im alten ONScripter; Ponscripter wechselte später zu^`), der den Rest der Zeile in den Textmodus zwingt. Ein naives Suchen-und-Ersetzen von Japanisch durch Englisch erzeugt Zeilen, die die Engine fälschlich als Befehle liest.
Genau diese letzte Falle ist der Grund, warum frühe Fan-Projekte (Gin'iro, Mizuiro) auf Zweibyte-lateinische Zeichen zurückgriffen — das originale NScripter nahm Einbyte-Eingaben überhaupt nicht an — und warum ein generischer Übersetzer, der die Engine nicht versteht, das Skript einfach zerstört.
Was RuneTranslate jetzt tut
RuneTranslate behandelt NScripter / ONScripter als erstklassige Engine und bewältigt beide Hälften des Problems:
- Der Skripttext. Es liest das Skript des Spiels — eine lose Klartextdatei (
0.txtund Konsorten) oder eine mit XOR0x84verschleiertenscript.dat—, dekodiert die Shift-JIS-/CP932-Dialoge, listet jede übersetzbare Zeile im Editor auf und schreibt das Skript beim Export in der Form zurück, die die Engine erwartet, wobei es die XOR-0x84-Verschleierung erneut anwendet, wenn die originale.datsie verwendet hat. Es setzt außerdem automatisch den Einbyte-Text-Marker, damit dein übersetztes Englisch nicht als Befehl fehlgelesen wird. (Ein Skript, das nur in einem.nsa-/.sar-Archiv liegt, ohne lose Kopie im Spielstammverzeichnis, wird noch nicht gelesen — siehe die Einschränkungen unten.) - Der eingebrannte Bildtext. Das Japanisch auf Titelbildschirmen, Menüs und Schaltflächen — Pixel, keine Zeichenketten — wird von RuneTranslates Bildtext-Übersetzung übernommen: die Wörter einrahmen, erkennen, mit deinem eigenen Anbieter übersetzen und das Ergebnis wieder einbacken, sodass das Spiel stattdessen deine übersetzte Grafik lädt.
Japanisch → Englisch ist der Idealfall — darum drehte sich die gesamte Fan-Übersetzungsgeschichte dieser Engine, und bei alten Shift-JIS-Skripten ist eine nicht-lateinische Zielsprache dadurch begrenzt, was die Schriften der Engine darstellen können —, aber du kannst jede von über 30 Sprachen anpeilen.
Was du brauchst
- RuneTranslate für Windows — kostenlos, jede Engine und jeder Anbieter freigeschaltet.
- Einen NScripter- oder ONScripter-Spielordner. Das ist das Verzeichnis mit der
.exedes Spiels (oder einer ONScripter-Binärdatei) samt Skript und Assets — typischerweisenscript.dat, eine lose0.txtund ein oder mehrere.nsa-/.sar-Archive. - Eine Zielsprache — Englisch, Spanisch, Französisch, Deutsch, Portugiesisch, Russisch, Chinesisch, Italienisch, Türkisch, Vietnamesisch und über 20 weitere.
- Einen Übersetzungsanbieter. Das kostenlose Google Translate funktioniert sofort; DeepL hat eine kostenlose Stufe; OpenAI, Anthropic, ein lokales Modell (Ollama / LM Studio) und jede OpenAI-kompatible API laufen mit eigenem Schlüssel. Diese Spiele sind dialoglastig und tonsensibel, daher liest sich ein LLM (OpenAI / Anthropic) oder DeepL meist am besten.
Schritt 1: Den Spielordner öffnen
Starte RuneTranslate, klicke auf Neues Projekt und zeige auf das NScripter-/ONScripter-Spielverzeichnis. Die Engine-Erkennung läuft automatisch — wenn sie eine nscript.dat, ein loses 0.txt-Skript oder die .nsa-Archive der Engine sieht, erkennt sie das Projekt als NScripter / ONScripter. Dein ursprünglicher Spielordner wird nie verändert.
Schritt 2: Wie das Skript gelesen wird
RuneTranslate liest das Skript, das das Spiel lose in seinem Stammverzeichnis mitliefert, und dekodiert es für dich:
- Verschleierte `nscript.dat` — gegen
0x84per XOR entschleiert und als Shift-JIS gelesen, sodass du nie einen separatennsdec-Schritt ausführst. - Lose Klartext-Skripte (
0.txtund Konsorten) — direkt gelesen. - Archivierte Bilder — aus den
.nsa-/.sar-Archiven des Spiels für den Bildtext-Schritt unten gezogen. (Das Skript selbst wird aus den losen Stammdateien oben gelesen; ein Skript, das nur in einem Archiv verpackt ist, wird noch nicht gelesen.)
Dialoge und angezeigter Text werden im Editor aufgelistet, nach Datei gruppiert. Engine-Markup und Befehls-Token werden hinter numerischen Platzhaltern maskiert, bevor irgendetwas den Anbieter erreicht, und danach wiederhergestellt — und der Einbyte-Text-Marker wird dort gesetzt, wo er nötig ist, damit die Engine deine übersetzte englische Zeile nicht für einen Befehl hält.
Schritt 3: Übersetzen
Wähle einen Anbieter und starte. Bei einer Visual Novel ist ein LLM (OpenAI / Anthropic) am besten für Figurenstimme und Ton, DeepL ist schnell und sauber für Erzähltext, und das kostenlose Google Translate reicht für kurze Menütexte. Lege deine Besetzung und wiederkehrende Begriffe vorab in einem Glossar fest, damit Namen im ganzen Spiel identisch erscheinen — siehe Glossar 101. Wenn du fertig bist, liest ein optionaler Durchgang mit dem KI-Refiner jede Zeile im Kontext erneut und glättet die steife, wörtliche Ausdrucksweise, die maschinelle Übersetzung oft hinterlässt.
Schritt 4: Den Text in den Bildern übersetzen
Weil so viel NScripter-UI vorgerenderte Grafik ist, zählt dieser Schritt hier mehr als bei den meisten Engines. Öffne ein Titel- oder Menübild im Projekt, ziehe einen Rahmen um jedes Stück Japanisch, erkenne es, übersetze es mit demselben Anbieter, den du für Dialoge nutzt, und beim Export backt RuneTranslate die Übersetzung wieder ins Bild und schreibt es lose in die exportierte Kopie, sodass die Engine deine übersetzte Grafik über das archivierte Original lädt. (Dein ursprünglicher Spielordner bleibt unangetastet; SPB-komprimierte Grafik und ein paar exotische Bildvarianten werden noch gehärtet — melde alles, was seltsam aussieht.) Vollständige Anleitung: Bildtext-Übersetzung.
Schritt 5: Eine spielfertige Kopie exportieren
Klicke auf Exportieren. RuneTranslate schreibt eine übersetzte Kopie des Spiels — das Skript neu in Shift-JIS / CP932 kodiert und mit XOR 0x84 neu verschleiert, falls die originale .dat es genutzt hat, als loses Skript geschrieben, das die Engine über jede archivierte Kopie lädt, plus alle übersetzten Bilder, die lose daneben geschrieben werden. Starte das Spiel, und es läuft in deiner Zielsprache, egal ob du es auf der originalen NScripter-Laufzeit oder auf ONScripter / ONScripter-EN startest.
Bekannte Einschränkungen
- Die XOR-0x84-Verschleierung wird bewältigt, aber ein Spiel, das mit echter, eigener Verschlüsselung (statt der Standard-Verschleierung) geschützt ist, öffnet sich möglicherweise nicht.
- Ein Skript, das nur in einem
.nsa-/.sar-Archiv verpackt ist, ohne losenscript.dat/0.txtim Spielstammverzeichnis, wird noch nicht extrahiert — die meisten Spiele liefern das Skript lose, aber einige nicht. - Die Bildtext-Übersetzung erreicht das Japanisch, das in Menüs, Titel und Schaltflächen gemalt ist, aber SPB-komprimierte Grafik und stark stilisierte Logo-Grafik brauchen möglicherweise noch etwas manuelle Nacharbeit.
- Die genaue Engine kann je nach Release variieren — einige Titel, die häufig mit NScripter in Verbindung gebracht werden (zum Beispiel Teile der When They Cry-Reihe), wurden auf NScripter gebaut und werden häufig über ONScripter ausgeführt, aber bestimmte Steam-/Konsolen-Neuveröffentlichungen wurden mitunter neu entwickelt. Prüfe es immer an deiner konkreten Kopie.
Sie ist brandneu — sag uns, was kaputtgeht
Diese Engine ist eine frische Ergänzung, keine kampferprobte. NScripter / ONScripter hat Jahrzehnte an Varianten, Forks und studiospezifischen Eigenheiten, und wir haben nicht alle gesehen. Wenn du RuneTranslate also auf ein NScripter- oder ONScripter-Spiel richtest und es nicht erkannt wird, nicht lädt oder etwas exportiert, das die Laufzeit nicht öffnet, melde es bitte — der Name des Spiels und wie es verpackt ist (lose 0.txt, nscript.dat, .nsa-Archive) hilft uns genau dabei, es am schnellsten zu härten.
Lade RuneTranslate herunter, richte es auf die klassische VN, die du schon immer lesen wolltest, und probiere es aus. Für einen Blick auf eine modernere VN-Engine lies als Nächstes die Ren'Py-Anleitung.
Bereit, RuneTranslate auszuprobieren?
Der Free-Tarif schaltet jede Engine + jeden Übersetzungsanbieter frei. Supporter ($3/Mon.) schaltet volle Geschwindigkeit frei.
Für Windows herunterladen