Moteur pris en charge · YU-RIS
YU-RIS (par raiL-soft) est un moteur de script Windows de longue date derrière des centaines de visual novels japonais doujin et commerciaux. Ses ressources vivent dans des archives package .ypf, et le scénario est compilé en scripts YSTB (les fichiers .ybn à l'intérieur de ysbin.ypf, à des chemins internes comme ysbin/yst00000.ybn). RuneTranslate lit les packages .ypf en pur TypeScript — sans GARbro ni outils externes — décompressant les entrées et récupérant la clé de nom de fichier de chaque archive, puis analyse les scripts YSTB compilés : il découpe les quatre sections (instructions, descripteurs d'arguments, valeurs de chaîne, numéros de ligne) et récupère automatiquement la clé XOR à 4 octets du script depuis la table des descripteurs, si bien que les scripts chiffrés s'ouvrent sans chasse à la clé. De là, il extrait les dialogues japonais de la table des chaînes et liste chaque ligne dans l'éditeur, tout en laissant les opérandes de commande du moteur, les noms de variables et les chemins d'assets exclus par défaut pour que vous ne traduisiez jamais quelque chose que la logique du script compare. À l'export, il reconstruit la table des chaînes — corrigeant chaque offset pour que les traductions plus longues ou plus courtes tiennent — réapplique la même clé XOR et écrit le .ybn traduit en vrac à son chemin d'archive. Comme le runtime YU-RIS lit un fichier en vrac sur le disque de préférence au même chemin empaqueté dans un .ypf, le jeu charge simplement votre traduction — il n'y a aucun ré-empaquetage. Ce moteur est encore en cours de vérification sur de vrais jeux, testez donc le build exporté avant toute redistribution.
Les visual novels reposent sur une distribution fixe et une terminologie récurrente à travers des milliers de lignes, et la traduction automatique écrira le nom d'une héroïne de trois façons différentes sur trois chapitres. Mettez au glossaire vos personnages, noms de lieux et termes récurrents dès le départ pour que chaque ligne de dialogue les rende à l'identique. Le glossaire : les bases →
Pointez RuneTranslate vers le répertoire du jeu — le dossier avec le yu-ris.exe du jeu et ses packages .ypf (généralement dans un sous-dossier pac/, avec les scripts dans ysbin.ypf). Si vous avez déjà dépaqueté le jeu avec GARbro, un dossier ysbin/ en vrac de scripts .ybn est aussi détecté. La détection du moteur reconnaît automatiquement la structure YU-RIS ; votre dossier d'origine n'est jamais modifié.
RuneTranslate ouvre les packages .ypf en pur TypeScript, décompresse les entrées et analyse les scripts YSTB compilés à l'intérieur. Il récupère automatiquement la clé XOR à 4 octets de chaque script depuis la table des descripteurs d'arguments — sans chasse à la clé — décode la table de chaînes Shift-JIS et liste chaque ligne japonaise dans l'éditeur, regroupée par fichier de script. Les opérandes de commande du moteur, les noms de variables et les chemins d'assets sont mis en avant mais exclus par défaut pour que la logique de l'histoire reste intacte.
Ces jeux sont riches en dialogues et sensibles au ton, donc un LLM (OpenAI GPT-4o / Anthropic Claude) ou DeepL rend généralement le mieux ; Google Translate gratuit ou un modèle local (Ollama / LM Studio) couvre les courtes chaînes de menus et les choix, et vous pouvez pointer le fournisseur compatible OpenAI vers OpenRouter ou NanoGPT. Une seconde passe de raffinage IA optionnelle resserre les formulations littérales.
Le texte de message YU-RIS tisse des codes de contrôle avec antislash (saut de ligne, couleur, ruby) et des balises entre crochets à travers le dialogue. RuneTranslate gèle chacun d'eux comme des placeholders numériques pendant la traduction et les restaure à la sortie, si bien que la ligne traduite conserve le même formatage et le même rythme que l'original.
À l'export, RuneTranslate copie le jeu et reconstruit chaque script YSTB traduit — corrigeant les offsets de la table des chaînes pour qu'une traduction de n'importe quelle longueur tienne et réappliquant la même clé XOR — puis l'écrit en vrac à son chemin d'archive d'origine (ex. ysbin/yst00000.ybn). Le runtime YU-RIS préfère un fichier en vrac au même chemin empaqueté dans un .ypf, donc le jeu lit simplement votre traduction sans ré-empaquetage. Lancez la copie exportée et elle se joue dans votre langue.