Comment traduire les romans visuels YU-RIS en anglais
RuneTranslate traduit les romans visuels YU-RIS (raiL-soft) en anglais et plus de 30 langues — en lisant les paquets .ypf et les scripts YSTB compilés en pur TypeScript, en récupérant la clé XOR de chaque script, et en exportant les scripts traduits en fichiers libres. Au mieux.
RuneTranslate lit un autre moteur qui a longtemps été un mur pour les traducteurs amateurs : YU-RIS, le moteur de script Windows de raiL-soft derrière des centaines de romans visuels japonais doujin et commerciaux. Si vous avez déjà ouvert un dossier de jeu YU-RIS, trouvé un répertoire pac/ plein d'archives .ypf et un ysbin.ypf sans rien de lisible à l'intérieur, et abandonné — c'est ce moteur. RuneTranslate le détecte, ouvre ces paquets en pur TypeScript, lit les dialogues à partir des scripts compilés, et exporte une copie traduite que le jeu charge tout seul.
La partie honnête d'abord : la prise en charge de YU-RIS vient d'être construite et n'a pas encore été vérifiée sur de nombreux vrais jeux. Donc si vous pointez RuneTranslate vers un jeu YU-RIS et qu'il ne détecte pas, n'ouvre pas, ou exporte quelque chose que le jeu ne charge pas, dites-le-nous — plus de détails à la fin.
Ce qu'est réellement le moteur YU-RIS
YU-RIS (parfois écrit ゆーりす) est un moteur de script de romans visuels japonais de raiL-soft. Un jeu terminé est un .exe Windows plus un ensemble d'archives de paquet .ypf — généralement dans un dossier pac/ — contenant l'art, l'audio et les scripts. Le scénario est compilé dans un format binaire appelé YSTB, stocké sous forme de fichiers .ybn à l'intérieur de ysbin.ypf (à des chemins internes comme ysbin/yst00000.ybn). Cette combinaison « scénario compilé dans une archive empaquetée » est exactement ce qui a maintenu le vaste back-catalogue du moteur hors de portée des outils de traduction automatique ordinaires.
Pourquoi les jeux YU-RIS ont été si difficiles à traduire
Comparé à un moteur piloté par la source comme Ren'Py, YU-RIS cache son texte derrière plusieurs couches :
- Tout vit à l'intérieur des paquets `.ypf`. Les scripts ne sont pas libres — ils sont empaquetés dans le conteneur propre à YU-RIS avec des noms de fichiers obfusqués et des entrées compressées en zlib. Sans lecteur pour ce format, il n'y a rien à modifier.
- Le scénario est compilé, pas du texte. Un
.ybnest un conteneur binaireYSTBdivisé en quatre sections (flux d'instructions, table de descripteurs d'arguments, table de chaînes, numéros de ligne). Le japonais vit dans la table de chaînes, référencé par les descripteurs. - Les scripts sont chiffrés par XOR. Les quatre sections de chaque
YSTBsont brouillées avec une clé de 4 octets qui varie selon le jeu. Vous devez la récupérer avant que le moindre texte soit lisible. - Toutes les chaînes ne sont pas du dialogue. La table de chaînes contient aussi des noms de variables, des chemins d'actifs et des opérandes d'expressions que le script compare — traduisez-en un et le déroulé casse silencieusement.
L'effet net : même un lecteur courant doit déballer une archive propriétaire, analyser un binaire compilé, casser le XOR, puis distinguer le dialogue des chaînes internes du moteur — avant qu'une seule ligne soit traduite. C'est le travail que RuneTranslate fait pour vous.
Ce que fait RuneTranslate maintenant
RuneTranslate gère tout le pipeline en pur TypeScript — pas d'outils externes, pas de sidecar Python, rien à installer :
- Lit directement les paquets `.ypf`. Il ouvre les archives en interne, décompresse les entrées, et récupère les noms de fichiers obfusqués — pas de GARbro. Vous avez déjà déballé le jeu vous-même ? Un dossier
ysbin/libre de scripts.ybnest aussi détecté. - Analyse les scripts `YSTB` compilés et casse le chiffrement. Il récupère la clé XOR de 4 octets de chaque script automatiquement à partir de la table de descripteurs d'arguments, décode la table de chaînes Shift-JIS, et liste chaque ligne japonaise, regroupée par fichier de script.
- Distingue le dialogue de la machinerie. Noms de variables, chemins d'actifs et opérandes d'expressions sont remontés mais exclus par défaut sous forme de lignes rouges à activer, pour que vous ne traduisiez jamais une chaîne que la logique de l'histoire compare.
- Préserve les codes de contrôle en ligne. Les codes antislash (saut de ligne, couleur, ruby) et les balises entre crochets sont masqués derrière des espaces réservés numériques avant que le fournisseur ne les voie, puis restaurés exactement.
- Exporte sans réempaquetage. Il reconstruit chaque script traduit — en corrigeant les décalages de la table de chaînes pour qu'une traduction plus longue ou plus courte tienne, et en réappliquant la clé XOR — puis écrit le
.ybnen fichier libre à son chemin d'archive d'origine. YU-RIS préfère un fichier libre à la copie empaquetée, donc le jeu lit simplement votre traduction — la même surcharge en fichiers libres que nos flux Kirikiri et Artemis.
Le japonais → anglais est le point fort, mais vous pouvez cibler plus de 30 langues.
Ce qu'il vous faut
- RuneTranslate pour Windows — gratuit ; chaque moteur et fournisseur est débloqué (le palier gratuit est bridé sur la vitesse, pas sur les fonctionnalités).
- Un dossier de jeu YU-RIS — le répertoire avec le
yu-ris.exedu jeu et ses paquets.ypf(généralement danspac/, avec les scripts dansysbin.ypf). - Une langue cible — anglais, espagnol, français, allemand, chinois, et plus de 30 autres.
- Un fournisseur. Google Translate gratuit fonctionne d'emblée ; DeepL a un palier gratuit ; OpenAI, Anthropic, un modèle local et toute API compatible OpenAI fonctionnent avec votre propre clé. Les jeux YU-RIS sont riches en dialogues, donc un LLM ou DeepL offre la meilleure lecture.
Étape 1 : Ouvrir le dossier du jeu
Lancez RuneTranslate, cliquez sur Nouveau projet, et pointez-le vers le répertoire du jeu YU-RIS. La détection s'exécute automatiquement — lorsqu'elle voit un paquet .ypf (ou un dossier ysbin/ libre de scripts .ybn), elle reconnaît le projet comme YU-RIS. Votre dossier de jeu d'origine n'est jamais modifié.
Étape 2 : Comment les scripts sont lus
RuneTranslate ouvre les paquets .ypf, extrait les scripts YSTB compilés de ysbin.ypf, récupère la clé XOR de chaque script, et décode la table de chaînes Shift-JIS — en listant chaque ligne japonaise dans l'éditeur, regroupée par fichier. Les chaînes internes du moteur (noms de variables, chemins d'actifs, opérandes d'expressions) sont affichées mais exclues par défaut, et les codes de contrôle en ligne sont masqués derrière des espaces réservés numériques pour que le fournisseur ne les malmène jamais.
Étape 3 : Traduire
Choisissez un fournisseur et lancez. Un LLM (OpenAI / Anthropic) est idéal pour la voix des personnages et le ton, DeepL est rapide et net pour la narration, et Google Translate gratuit convient pour les courtes chaînes de menu et les choix. Constituez le glossaire de votre distribution en amont pour que les noms s'affichent à l'identique — voir Glossaire 101. Une fois terminé, une passe facultative avec l'affineur IA relit chaque ligne en contexte et resserre les tournures rigides et littérales que la traduction automatique a tendance à laisser.
Étape 4 : Exporter une copie prête à lancer
Cliquez sur Exporter. RuneTranslate écrit une copie traduite du jeu avec chaque .ybn reconstruit placé en fichier libre à son chemin d'archive d'origine, aux côtés des paquets .ypf intacts. Il n'y a pas de réempaquetage — YU-RIS charge les scripts libres de préférence aux originaux empaquetés, donc le jeu lit simplement vos traductions. Lancez-le, et il se joue dans votre langue cible.
Limitations connues
- Les chaînes YU-RIS sont en Shift-JIS (cp932). L'anglais et les autres cibles représentables en cp932 s'exportent proprement. Les cibles hors cp932 — cyrillique étendu, coréen, chinois traditionnel — nécessitent un bidouillage de police/encodage du jeu qui n'est pas encore automatisé.
- La surcharge en fichiers libres est le chemin de chargement attendu et fonctionne sur la plupart des jeux YU-RIS parce que le moteur préfère un script libre à la copie empaquetée. Sur le rare titre qui ne respecte pas cela, l'export peut nécessiter un ajustement — exactement le comportement en conditions réelles que nous confirmons encore.
- Texte incrusté dans les images — un écran-titre ou un bouton de menu dessiné en bitmap — ce sont des pixels, pas du texte de script. Pour cela, voir la traduction de texte dans les images.
- La variante exacte d'archive et de script peut différer d'une sortie à l'autre. Vérifiez toujours sur votre copie spécifique.
C'est tout nouveau — dites-nous ce qui casse
À répéter : la prise en charge de YU-RIS est un ajout récent et n'a pas encore été testée sur de nombreux vrais jeux. Le lecteur .ypf, l'analyseur YSTB et la récupération de clé sont construits et testés unitairement, mais le moteur a des années de variations propres à chaque studio que nous n'avons pas toutes vues. Donc si vous pointez RuneTranslate vers un jeu YU-RIS et qu'il ne détecte pas, n'ouvre pas les archives, n'extrait rien, ou exporte quelque chose que le jeu ne charge pas, signalez-le sur notre Discord — le nom du jeu et sa manière d'être empaqueté nous aident à le durcir le plus vite possible.
Téléchargez RuneTranslate, pointez-le vers ce roman visuel YU-RIS que vous vouliez lire, et essayez. Pour un autre moteur de roman visuel basé sur les archives, lisez ensuite le guide Artemis.
Prêt à essayer RuneTranslate ?
L'offre gratuite débloque tous les moteurs et tous les fournisseurs de traduction. Supporter (3 $/mois) débloque la vitesse maximale.
Télécharger pour Windows
