Motor compatible · YU-RIS
YU-RIS (de raiL-soft) es un motor de scripting de Windows de larga trayectoria detrás de cientos de novelas visuales japonesas doujin y comerciales. Sus recursos viven en archivos de paquete .ypf, y el escenario está compilado en scripts YSTB (los archivos .ybn dentro de ysbin.ypf, en rutas internas como ysbin/yst00000.ybn). RuneTranslate lee los paquetes .ypf en TypeScript puro — sin GARbro ni herramientas externas — descomprimiendo las entradas y recuperando la clave de nombres de archivo de cada archivo, y luego analiza los scripts YSTB compilados: divide las cuatro secciones (instrucciones, descriptores de argumentos, valores de cadena, números de línea) y recupera la clave XOR de 4 bytes del script automáticamente a partir de la tabla de descriptores, así que los scripts cifrados se abren sin una búsqueda de clave. A partir de ahí extrae el diálogo japonés de la tabla de cadenas y lista cada línea en el editor, mientras deja excluidos por defecto los operandos de comandos del motor, los nombres de variables y las rutas de assets para que nunca traduzcas algo con lo que la lógica del script hace comparaciones. Al exportar reconstruye la tabla de cadenas — parcheando cada desplazamiento para que las traducciones más largas o más cortas quepan — reaplica la misma clave XOR, y escribe el .ybn traducido suelto en su ruta de archivo. Como el entorno de ejecución de YU-RIS lee un archivo suelto en disco con preferencia sobre la misma ruta empaquetada en un .ypf, el juego simplemente carga tu traducción — no hay reempaquetado. Este motor todavía se está verificando en juegos reales, así que prueba la versión exportada antes de redistribuir.
Las novelas visuales se apoyan en un reparto fijo y una terminología recurrente a lo largo de miles de líneas, y la traducción automática deletreará el nombre de una heroína de tres formas distintas en tres capítulos. Añade al glosario por adelantado tus personajes, nombres de lugares y términos recurrentes para que cada línea de diálogo los muestre de forma idéntica. Glosario 101 →
Apunta RuneTranslate al directorio del juego — la carpeta con el yu-ris.exe del juego y sus paquetes .ypf (normalmente en una subcarpeta pac/, con los scripts en ysbin.ypf). Si ya has desempaquetado el juego con GARbro, también se detecta una carpeta ysbin/ suelta con scripts .ybn. La detección del motor reconoce la disposición de YU-RIS automáticamente; tu carpeta original nunca se modifica.
RuneTranslate abre los paquetes .ypf en TypeScript puro, descomprime las entradas y analiza los scripts YSTB compilados que hay dentro. Recupera la clave XOR de 4 bytes de cada script automáticamente a partir de la tabla de descriptores de argumentos — sin búsqueda de clave — decodifica la tabla de cadenas en Shift-JIS, y lista cada línea japonesa en el editor agrupada por archivo de script. Los operandos de comandos del motor, los nombres de variables y las rutas de assets se muestran pero se excluyen por defecto para que la lógica de la historia quede intacta.
Estos juegos están cargados de diálogo y son sensibles al tono, así que un LLM (OpenAI GPT-4o / Anthropic Claude) o DeepL suelen leerse mejor; Google Translate gratuito o un modelo local (Ollama / LM Studio) cubren las cadenas de menú cortas y las opciones, y puedes apuntar el proveedor compatible con OpenAI a OpenRouter o NanoGPT. Una segunda pasada opcional de refinamiento con IA afina la redacción literal.
El texto de mensajes de YU-RIS entrelaza códigos de control con barra invertida (salto de línea, color, ruby) y etiquetas entre corchetes a través del diálogo. RuneTranslate congela cada uno de ellos como marcadores numéricos durante la traducción y los restaura a la salida, así que la línea traducida mantiene el mismo formato y ritmo que el original.
Al exportar, RuneTranslate copia el juego y reconstruye cada script YSTB traducido — parcheando los desplazamientos de la tabla de cadenas para que quepa una traducción de cualquier longitud y reaplicando la misma clave XOR — y luego lo escribe suelto en su ruta de archivo original (p. ej. ysbin/yst00000.ybn). El entorno de ejecución de YU-RIS prefiere un archivo suelto sobre la misma ruta empaquetada en un .ypf, así que el juego simplemente lee tu traducción sin reempaquetar. Ejecuta la copia exportada y se juega en tu idioma.