RuneTranslate übersetzt jetzt YU-RIS-Visual-Novels
RuneTranslate übersetzt jetzt Visual Novels der YU-RIS-Engine (raiL-soft) ins Englische und in über 30 Sprachen. Es liest die .ypf-Pakete in reinem TypeScript und die kompilierten YSTB-Skripte in ysbin.ypf, ermittelt automatisch den XOR-Schlüssel jedes Skripts, extrahiert die japanischen Dialoge und exportiert die übersetzten Skripte lose, sodass das Spiel sie ohne Neuverpacken lädt. Neu hinzugefügt und noch nicht an vielen echten Spielen verifiziert — melde jedes Spiel, das sich nicht öffnen lässt.
RuneTranslate liest jetzt eine weitere Engine, die für Fan-Übersetzer lange eine Mauer war: YU-RIS, die Windows-Scripting-Engine von raiL-soft hinter Hunderten von Doujin- und kommerziellen japanischen Visual Novels. Wenn du je einen YU-RIS-Spielordner geöffnet, ein pac/-Verzeichnis voller .ypf-Archive und eine ysbin.ypf ohne irgendetwas Lesbares darin gefunden und aufgegeben hast — das ist diese Engine. RuneTranslate erkennt sie jetzt, öffnet diese Pakete in reinem TypeScript, liest die Dialoge aus den kompilierten Skripten und exportiert eine übersetzte Kopie, die das Spiel von selbst lädt. Es ist die neueste Engine, die RuneTranslate unterstützt.
Das ist eine brandneue Engine, und der ehrliche Teil kommt zuerst: Die YU-RIS-Unterstützung ist frisch gebaut und wurde noch nicht an vielen echten Spielen verifiziert. Also vor allem anderen — wenn du RuneTranslate auf ein YU-RIS-Spiel ansetzt und es wird nicht erkannt, öffnet sich nicht oder exportiert etwas, das das Spiel nicht lädt, sag uns bitte Bescheid. Mehr dazu, wie, am Ende.
Was die YU-RIS-Engine eigentlich ist
YU-RIS (manchmal ゆーりす geschrieben) ist eine japanische Scripting-Engine für Visual Novels von raiL-soft. Ein fertiges YU-RIS-Spiel besteht aus einer Windows-.exe plus einer Reihe von .ypf-Paketarchiven — meist in einem pac/-Ordner —, die Grafik, Audio und Skripte enthalten. Das Szenario selbst ist kompiliert: Das lesbare Skript, das ein Entwickler schreibt, wird in ein Binärformat namens YSTB übersetzt, gespeichert als die .ybn-Dateien in ysbin.ypf (unter internen Pfaden wie ysbin/yst00000.ybn). Genau diese Kombination aus „kompiliertem Szenario in einem gepackten Archiv“ hat den großen Backkatalog der Engine für gewöhnliche Maschinenübersetzungs-Tools unerreichbar gehalten.
Warum YU-RIS-Spiele so schwer zu übersetzen waren
Verglichen mit einer quellcodebasierten Engine wie Ren'Py versteckt YU-RIS seinen Text hinter mehreren Schichten:
- Alles steckt in `.ypf`-Paketen. Die Skripte liegen nicht lose auf der Festplatte — sie sind in YU-RIS' eigenen
.ypf-Container gepackt, mit verschleierten Dateinamen und zlib-komprimierten Einträgen. Ohne einen Reader für dieses Format gibt es überhaupt nichts zu bearbeiten. - Das Szenario ist kompiliert, kein Text. Eine
.ybnist kein Skript, das du im Notepad öffnen kannst — es ist ein binärerYSTB-Container, aufgeteilt in vier Abschnitte (einen Instruktionsstrom, eine Argument-Deskriptortabelle, eine String-Tabelle und Zeilennummern). Das eigentliche Japanisch steckt in der String-Tabelle, referenziert durch die Deskriptoren. - Die Skripte sind XOR-verschlüsselt. Die vier Datenabschnitte jedes
YSTB-Skripts sind mit einem 4-Byte-Schlüssel verwürfelt. Du musst diesen Schlüssel wiederherstellen, bevor irgendein Text lesbar wird — und der Schlüssel variiert von Spiel zu Spiel. - Nicht jeder String ist Dialog. Die String-Tabelle enthält außerdem Variablennamen, Asset-Pfade und Ausdrucksoperanden, mit denen die Skriptlogik vergleicht. Übersetzt du einen davon aus Versehen, bricht der Spielablauf klammheimlich.
Unterm Strich: Selbst ein flüssiger Leser muss zuerst ein proprietäres Archiv entpacken, dann eine kompilierte Binärdatei parsen, dann das XOR knacken, dann die Dialoge von den internen Strings der Engine unterscheiden — bevor auch nur eine einzige Zeile übersetzt wird. Genau diese Arbeit nimmt RuneTranslate dir jetzt ab.
Was RuneTranslate jetzt kann
RuneTranslate behandelt YU-RIS als vollwertige Engine und bewältigt die gesamte Pipeline in reinem TypeScript — keine externen Tools, kein Python-Sidecar, nichts zu installieren:
- Liest `.ypf`-Pakete direkt. Es öffnet die Archive selbst, dekomprimiert die Einträge und stellt die verschleierten Dateinamen wieder her — kein GARbro und kein separater Entpacker. Das Spiel schon selbst extrahiert? Ein loser
ysbin/-Ordner mit.ybn-Skripten wird ebenfalls erkannt. - Parst die kompilierten `YSTB`-Skripte und knackt die Verschlüsselung. Es stellt den 4-Byte-XOR-Schlüssel jedes Skripts automatisch aus der Argument-Deskriptortabelle wieder her, dekodiert die Shift-JIS-String-Tabelle und listet jede japanische Zeile im Editor auf, gruppiert nach Skriptdatei.
- Unterscheidet Dialog von Maschinerie. Variablennamen, Asset-Pfade und Ausdrucksoperanden werden angezeigt, aber standardmäßig ausgeschlossen — als rote Opt-in-Zeilen dargestellt —, damit du nie versehentlich einen String übersetzt, mit dem die Story-Logik vergleicht.
- Bewahrt die Inline-Steuercodes. Backslash-Codes (Zeilenumbruch, Farbe, Ruby) und Klammer-Tags, die durch den Nachrichtentext gewoben sind, werden hinter numerischen Platzhaltern maskiert, bevor irgendetwas den Anbieter erreicht, und danach exakt wiederhergestellt.
- Exportiert ohne Neuverpacken. Beim Export baut es jedes übersetzte Skript neu auf — passt die String-Tabellen-Offsets an, damit eine längere oder kürzere Übersetzung hineinpasst, und wendet denselben XOR-Schlüssel erneut an — und schreibt dann die
.ybnlose an ihren ursprünglichen Archivpfad. Die YU-RIS-Laufzeit bevorzugt eine lose Datei gegenüber demselben Pfad in einer.ypf, also liest das Spiel einfach deine Übersetzung. Es gibt kein Neuverpacken. (Es ist derselbe Lose-Datei-Override-Ansatz wie bei unserem Kirikiri-Patch-Ablauf und unserer Artemis-Unterstützung.)
Japanisch → Englisch ist der ideale Fall, aber du kannst jede von über 30 Sprachen anvisieren — Spanisch, Französisch, Deutsch, Portugiesisch, Russisch, Chinesisch, Italienisch, Türkisch, Vietnamesisch und mehr.
Was du brauchst
- RuneTranslate für Windows — kostenlos; jede Engine und jeder Anbieter ist freigeschaltet (die kostenlose Stufe wird bei der Geschwindigkeit gedrosselt, nicht bei den Funktionen).
- Einen YU-RIS-Spielordner. Das ist das Verzeichnis mit der
yu-ris.exedes Spiels und seinen.ypf-Paketen (typischerweise in einempac/-Unterordner, mit den Skripten inysbin.ypf). - 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. YU-RIS-Spiele sind dialoglastig, daher liest sich ein LLM (OpenAI / Anthropic) oder DeepL meist am besten.
Schritt 1: Den Spielordner öffnen
Starte RuneTranslate, klicke auf Neues Projekt und richte es auf das YU-RIS-Spielverzeichnis. Die Engine-Erkennung läuft automatisch — sobald sie ein .ypf-Paket (oder einen losen ysbin/-Ordner mit .ybn-Skripten) sieht, erkennt sie das Projekt als YU-RIS. Dein originaler Spielordner wird nie verändert.
Schritt 2: Wie die Skripte gelesen werden
RuneTranslate öffnet die .ypf-Pakete, zieht die kompilierten YSTB-Skripte aus ysbin.ypf, stellt den XOR-Schlüssel jedes Skripts wieder her und dekodiert die Shift-JIS-String-Tabelle — und listet jede japanische Zeile im Editor auf, gruppiert nach Datei. Die internen Strings der Engine (Variablennamen, Asset-Pfade, Ausdrucksoperanden) werden angezeigt, aber standardmäßig ausgeschlossen, und die Inline-Steuercodes werden hinter numerischen Platzhaltern maskiert, damit der Anbieter sie nie verstümmelt.
Schritt 3: Übersetzen
Wähle einen Anbieter und starte. Für eine Visual Novel ist ein LLM (OpenAI / Anthropic) am besten für Charakterstimme und Tonfall, DeepL ist schnell und sauber für Erzähltext, und das kostenlose Google Translate reicht für kurze Menü-Strings und Auswahlmöglichkeiten. Lege für deine Besetzung und wiederkehrende Begriffe vorab ein Glossar an, damit Namen im gesamten Spiel identisch erscheinen — siehe Glossar 101. Wenn du fertig bist, liest ein optionaler Durchlauf mit dem KI-Refiner jede Zeile im Kontext erneut und glättet die steife, wörtliche Ausdrucksweise, die Maschinenübersetzung gern hinterlässt.
Schritt 4: Eine startbereite Kopie exportieren
Klicke auf Exportieren. RuneTranslate schreibt eine übersetzte Kopie des Spiels, wobei jede neu aufgebaute .ybn lose an ihrem ursprünglichen Archivpfad platziert wird, neben den unberührten .ypf-Paketen. Es gibt kein Neuverpacken — YU-RIS lädt die losen Skripte bevorzugt gegenüber den gepackten Originalen, also liest das Spiel einfach deine Übersetzungen. Starte es, und es läuft in deiner Zielsprache.
Bekannte Einschränkungen
- YU-RIS-Strings sind Shift-JIS (cp932). Englisch und andere in cp932 darstellbare Zielsprachen exportieren sauber. Zielsprachen mit Zeichen außerhalb von cp932 — erweitertes Kyrillisch, Koreanisch, traditionelles Chinesisch — brauchen einen Spielfont-/Encoding-Hack, der noch nicht automatisiert ist.
- Der Lose-Datei-Override ist der erwartete Ladepfad, und bei den meisten YU-RIS-Spielen funktioniert er, weil die Engine ein loses Skript gegenüber der gepackten Kopie bevorzugt. Beim seltenen Titel, der das nicht respektiert, muss der Export womöglich angepasst werden — genau die Art von Verhalten in echten Spielen, das wir noch bestätigen.
- In Bildgrafik eingebrannter Text — ein Titelbildschirm oder Menü-Button, der als Bitmap gezeichnet ist — besteht aus Pixeln, nicht aus Skripttext. Dafür siehe Bildtext-Übersetzung.
- Die genaue Archiv- und Skriptvariante kann sich zwischen Releases unterscheiden. Verifiziere immer an deiner spezifischen Kopie.
Sie ist brandneu — sag uns, was kaputtgeht
Klar und deutlich wiederholt: Die YU-RIS-Unterstützung ist eine frische Ergänzung und wurde noch nicht an vielen echten Spielen getestet. Der .ypf-Reader, der YSTB-Parser und die Schlüsselwiederherstellung sind gebaut und unit-getestet, aber die Engine hat Jahre studiospezifischer Variation, die wir nicht alle gesehen haben. Wenn du also RuneTranslate auf ein YU-RIS-Spiel ansetzt und es wird nicht erkannt, öffnet die Archive nicht, extrahiert nichts oder exportiert etwas, das das Spiel nicht lädt, melde es bitte auf unserem Discord — der Name des Spiels und wie es verpackt ist, hilft uns genau am meisten, es schnell abzuhärten.
RuneTranslate herunterladen, richte es auf die YU-RIS-VN, die du schon immer lesen wolltest, und probier es aus. Für einen Blick darauf, wie wir eine andere archivbasierte VN-Engine handhaben, lies als Nächstes die Artemis-Anleitung.
Bereit, RuneTranslate auszuprobieren?
Der Free-Tarif schaltet jede Engine + jeden Übersetzungsanbieter frei. Supporter ($3/Mon.) schaltet volle Geschwindigkeit frei.
Für Windows herunterladen