RuneTranslate ya traduce novelas visuales YU-RIS
RuneTranslate ahora traduce novelas visuales del motor YU-RIS (raiL-soft) al inglés y a más de 30 idiomas. Lee los paquetes .ypf en TypeScript puro y los scripts YSTB compilados dentro de ysbin.ypf, recupera automáticamente la clave XOR de cada script, extrae los diálogos en japonés y exporta los scripts traducidos sueltos para que el juego los cargue sin necesidad de reempaquetar. Recién añadido y aún sin verificar en muchos juegos reales: informa de cualquier juego que no se abra.
RuneTranslate ya lee otro motor que durante mucho tiempo ha sido un muro para los traductores aficionados: YU-RIS, el motor de scripting para Windows de raiL-soft que hay detrás de cientos de novelas visuales japonesas, tanto doujin como comerciales. Si alguna vez abriste la carpeta de un juego YU-RIS, encontraste un directorio pac/ lleno de archivos .ypf y un ysbin.ypf sin nada legible dentro, y te rendiste, ese es el motor. RuneTranslate ahora lo detecta, abre esos paquetes en TypeScript puro, lee los diálogos de los scripts compilados y exporta una copia traducida que el juego carga por sí solo. Es el motor más reciente que RuneTranslate admite.
Se trata de un motor completamente nuevo y lo honesto va primero: la compatibilidad con YU-RIS acaba de crearse y aún no se ha verificado en muchos juegos reales. Así que, antes que nada: si apuntas RuneTranslate a un juego YU-RIS y no lo detecta, no lo abre o exporta algo que el juego no carga, cuéntanoslo. Más sobre cómo hacerlo, al final.
Qué es realmente el motor YU-RIS
YU-RIS (a veces escrito ゆーりす) es un motor japonés de scripting para novelas visuales creado por raiL-soft. Un juego YU-RIS terminado es un .exe de Windows más un conjunto de archivos de paquete .ypf —normalmente en una carpeta pac/— que contienen el arte, el audio y los scripts. El guion en sí está compilado: el script legible que escribe un desarrollador se convierte en un formato binario llamado YSTB, almacenado como archivos .ybn dentro de ysbin.ypf (en rutas internas como ysbin/yst00000.ybn). Esa combinación de «guion compilado dentro de un archivo empaquetado» es justamente lo que ha mantenido el enorme catálogo del motor fuera del alcance de las herramientas de traducción automática habituales.
Por qué los juegos YU-RIS han sido tan difíciles de traducir
Comparado con un motor basado en el código fuente como Ren'Py, YU-RIS oculta su texto tras varias capas:
- Todo vive dentro de los paquetes `.ypf`. Los scripts no están sueltos en el disco: están empaquetados en el contenedor
.ypfpropio de YU-RIS, con nombres de archivo ofuscados y entradas comprimidas con zlib. Sin un lector para ese formato, para empezar no hay nada que editar. - El guion está compilado, no es texto. Un
.ybnno es un script que puedas abrir en el Bloc de notas: es un contenedor binarioYSTBdividido en cuatro secciones (un flujo de instrucciones, una tabla de descriptores de argumentos, una tabla de cadenas y números de línea). El japonés real vive en la tabla de cadenas, referenciado por los descriptores. - Los scripts están cifrados con XOR. Las cuatro secciones de datos de cada script
YSTBestán codificadas con una clave de 4 bytes. Tienes que recuperar esa clave antes de que ningún texto sea legible, y la clave varía según el juego. - No todas las cadenas son diálogo. La tabla de cadenas también contiene nombres de variables, rutas de recursos y operandos de expresiones con los que la lógica del script hace comparaciones. Traduce uno de esos por accidente y el flujo del juego se rompe en silencio.
El efecto neto: incluso alguien que lea japonés con fluidez primero tiene que desempaquetar un archivo propietario, luego analizar un binario compilado, luego romper el XOR y después distinguir los diálogos de las cadenas internas del motor, todo antes de traducir una sola línea. Ese es el trabajo que RuneTranslate ahora hace por ti.
Qué hace ahora RuneTranslate
RuneTranslate trata YU-RIS como un motor de primera clase y gestiona toda la cadena en TypeScript puro: sin herramientas externas, sin sidecar de Python, nada que instalar:
- Lee los paquetes `.ypf` directamente. Abre los archivos internamente, descomprime las entradas y recupera los nombres de archivo ofuscados, sin GARbro ni un desempaquetador aparte. ¿Ya extrajiste el juego tú mismo? También se detecta una carpeta
ysbin/suelta con scripts.ybn. - Analiza los scripts `YSTB` compilados y rompe el cifrado. Recupera la clave XOR de 4 bytes de cada script automáticamente a partir de la tabla de descriptores de argumentos, decodifica la tabla de cadenas Shift-JIS y lista todas las líneas en japonés en el editor, agrupadas por archivo de script.
- Distingue el diálogo de la maquinaria. Los nombres de variables, las rutas de recursos y los operandos de expresiones se muestran pero quedan excluidos de forma predeterminada —aparecen como filas rojas de inclusión opcional— para que nunca traduzcas por accidente una cadena con la que la lógica de la historia hace comparaciones.
- Conserva los códigos de control en línea. Los códigos con barra invertida (salto de línea, color, ruby) y las etiquetas entre corchetes entretejidas en el texto del mensaje se enmascaran tras marcadores numéricos antes de que nada llegue al proveedor, y se restauran exactamente a la salida.
- Exporta sin reempaquetar. Al exportar reconstruye cada script traducido —ajustando los desplazamientos de la tabla de cadenas para que quepa una traducción más larga o más corta, y volviendo a aplicar la misma clave XOR— y luego escribe el
.ybnsuelto en su ruta de archivo original. El runtime de YU-RIS prefiere un archivo suelto antes que la misma ruta empaquetada en un.ypf, así que el juego simplemente lee tu traducción. No hay reempaquetado. (Es el mismo enfoque de sobrescritura con archivos sueltos que nuestro flujo de parches de Kirikiri y nuestra compatibilidad con Artemis.)
El japonés → inglés es el punto óptimo, pero puedes traducir a cualquiera de más de 30 idiomas: español, francés, alemán, portugués, ruso, chino, italiano, turco, vietnamita y más.
Qué necesitas
- RuneTranslate para Windows: gratis; todos los motores y proveedores están desbloqueados (el nivel gratuito está limitado en velocidad, no en funciones).
- La carpeta de un juego YU-RIS. Es el directorio que contiene el
yu-ris.exedel juego y sus paquetes.ypf(normalmente en una subcarpetapac/, con los scripts enysbin.ypf). - Un idioma de destino: inglés, español, francés, alemán, portugués, ruso, chino, italiano, turco, vietnamita y más de 20 más.
- Un proveedor de traducción. El Google Translate gratuito funciona de inmediato; DeepL tiene un nivel gratuito; OpenAI, Anthropic, un modelo local (Ollama / LM Studio) y cualquier API compatible con OpenAI requieren tu propia clave. Los juegos YU-RIS tienen mucho diálogo, así que un LLM (OpenAI / Anthropic) o DeepL suele dar el mejor resultado.
Paso 1: Abre la carpeta del juego
Abre RuneTranslate, haz clic en Nuevo proyecto y apúntalo al directorio del juego YU-RIS. La detección del motor se ejecuta automáticamente: cuando ve un paquete .ypf (o una carpeta ysbin/ suelta con scripts .ybn), reconoce el proyecto como YU-RIS. Tu carpeta de juego original nunca se modifica.
Paso 2: Cómo se leen los scripts
RuneTranslate abre los paquetes .ypf, extrae los scripts YSTB compilados de ysbin.ypf, recupera la clave XOR de cada script y decodifica la tabla de cadenas Shift-JIS, listando todas las líneas en japonés en el editor, agrupadas por archivo. Las cadenas internas del motor (nombres de variables, rutas de recursos, operandos de expresiones) se muestran pero quedan excluidas de forma predeterminada, y los códigos de control en línea se enmascaran tras marcadores numéricos para que el proveedor nunca los estropee.
Paso 3: Traduce
Elige un proveedor y ejecútalo. Para una novela visual, un LLM (OpenAI / Anthropic) es lo mejor para la voz y el tono de los personajes, DeepL es rápido y limpio para la narración, y el Google Translate gratuito va bien para cadenas cortas de menús y opciones. Crea un glosario con tu reparto y los términos recurrentes de antemano para que los nombres se rendericen de forma idéntica en todo el juego; consulta Glosario 101. Cuando termines, una pasada opcional con el refinador de IA vuelve a leer cada línea en contexto y pule la redacción rígida y literal que la traducción automática suele dejar.
Paso 4: Exporta una copia lista para jugar
Haz clic en Exportar. RuneTranslate escribe una copia traducida del juego con cada .ybn reconstruido colocado suelto en su ruta de archivo original, junto a los paquetes .ypf intactos. No hay reempaquetado: YU-RIS carga los scripts sueltos con preferencia sobre los originales empaquetados, así que el juego simplemente lee tus traducciones. Ejecútalo y se juega en tu idioma de destino.
Limitaciones conocidas
- Las cadenas de YU-RIS son Shift-JIS (cp932). El inglés y otros idiomas de destino representables en cp932 se exportan sin problemas. Los idiomas con caracteres fuera de cp932 —cirílico extendido, coreano, chino tradicional— necesitan un hack de fuente/codificación del juego que todavía no está automatizado.
- La sobrescritura con archivos sueltos es la ruta de carga esperada, y en la mayoría de los juegos YU-RIS funciona porque el motor prefiere un script suelto antes que la copia empaquetada. En el raro título que no respeta eso, la exportación puede necesitar ajustes: exactamente el tipo de comportamiento en juegos reales que todavía estamos confirmando.
- El texto incrustado en el arte de imagen —una pantalla de título o un botón de menú dibujado como mapa de bits— son píxeles, no texto de script. Para eso, consulta traducción de texto en imágenes.
- La variante exacta del archivo y del script puede diferir entre versiones. Verifica siempre en tu copia concreta.
Es completamente nuevo: cuéntanos qué falla
Vale la pena repetirlo con claridad: la compatibilidad con YU-RIS es una incorporación reciente y aún no se ha probado en muchos juegos reales. El lector de .ypf, el analizador de YSTB y la recuperación de claves están construidos y probados con pruebas unitarias, pero el motor acumula años de variaciones por estudio que no hemos visto todas. Así que si apuntas RuneTranslate a un juego YU-RIS y no lo detecta, no abre los archivos, no extrae nada o exporta algo que el juego no carga, infórmanoslo en nuestro Discord: el nombre del juego y cómo está empaquetado es justo lo que nos ayuda a reforzarlo más rápido.
Descarga RuneTranslate, apúntalo a esa novela visual YU-RIS que has querido leer y pruébalo. Para ver cómo manejamos otro motor de novelas visuales basado en archivos, lee a continuación el tutorial de Artemis.
¿Listo para probar RuneTranslate?
El plan gratuito desbloquea todos los motores y todos los proveedores de traducción. Supporter ($3/mo) desbloquea la velocidad completa.
Descargar para Windows