RuneTranslate ahora traduce novelas visuales del motor Artemis
RuneTranslate ahora traduce novelas visuales del Artemis Engine —el motor basado en Lua de iMel/Mikage detrás de ~730 lanzamientos en VNDB— al inglés y a más de 30 idiomas. Lee los archivos .pfs del motor en TypeScript puro, incluido el cifrado XOR con clave SHA-1 de PF8, extrae diálogos, nombres de personajes y opciones de los scripts .ast (tablas Lua) y .txt, conserva los comandos inline de ruby/placa de nombre/color, y exporta los scripts traducidos sueltos para que el juego los cargue sin reempaquetar. Recién añadido y aún sin verificar en muchos juegos reales: informa de cualquier juego que no abra.
RuneTranslate ya lee un motor que, hasta ahora, había sido casi intocable para los traductores fan: el Artemis Engine, el framework de novelas visuales basado en Lua que hay detrás de cientos de lanzamientos japoneses. Si alguna vez abriste la carpeta de un juego Artemis, encontraste un montón de archivos .pfs y nada legible, y te rendiste —ese es el motor. RuneTranslate ahora lo detecta, abre esos archivos en TypeScript puro (con cifrado incluido), lee los diálogos, los nombres de los personajes y las opciones de sus scripts, y exporta una copia traducida que el juego carga por su cuenta. Es el motor más reciente compatible con RuneTranslate.
Este es un motor completamente nuevo, y lo honesto va primero: la compatibilidad con Artemis se acaba de crear y aún no se ha verificado en muchos juegos reales. Así que, antes de nada —si apuntas RuneTranslate a un juego Artemis y no lo detecta, no lo abre, o exporta algo que el juego no carga, por favor cuéntanoslo. Más sobre cómo hacerlo, al final.
Qué es realmente el Artemis Engine
Artemis es un motor comercial japonés de novelas visuales desarrollado por iMel Inc. (el estudio también conocido por Mikage). Donde motores más antiguos como Kirikiri o NScripter exponen un lenguaje de scripting propio y específico del dominio, Artemis se construye en torno a Lua —sus scripts de escenario son esencialmente tablas de datos Lua—, lo que lo hace flexible para los desarrolladores pero, en la práctica, un muro para cualquiera que intente traducir un juego terminado desde fuera. Alrededor de 730 lanzamientos en VNDB están construidos sobre él, así que está lejos de ser una curiosidad de nicho; es todo un catálogo histórico que las herramientas de traducción automática han ignorado históricamente.
En disco, un juego Artemis es un .exe de Windows más uno o más archivos de recursos .pfs que contienen los scripts, el arte y el audio. Los scripts que hay dentro son en su mayoría archivos .ast (scripts de escenario en tablas Lua) y archivos .txt (un formato más simple orientado a líneas). RuneTranslate trabaja directamente desde esos archivos y scripts, así que cubre el juego tanto si el estudio distribuyó los escenarios como .ast o como .txt.
Por qué los juegos Artemis han sido tan difíciles de traducir
Comparado con un motor basado en código fuente como Ren'Py, Artemis esconde su texto tras varias capas. Algunas concretas lo han mantenido fuera del alcance tanto de los traductores manuales como de las herramientas ingenuas:
- Todo vive dentro de archivos `.pfs`. Los scripts no están sueltos en disco —están empaquetados en el propio formato contenedor
.pfsde Artemis (verás las variantesPF8,PF6y la antiguaPF2). Sin un lector para ese formato, para empezar no hay nada que editar. - Los archivos más nuevos están cifrados. El formato
PF8actual no solo empaqueta los archivos, sino que cifra su contenido: cada entrada se somete a un XOR contra una clave derivada de un hashSHA-1del propio índice del archivo. No puedes simplemente extraer los bytes —tienes que reproducir la derivación de clave del motor para recuperar un script legible. - Los scripts son datos Lua, no texto plano. Un escenario
.astes una tabla Lua —los diálogos, los nombres de los hablantes y las opciones son campos anidados dentro de tablas estructuradas, mezclados con comandos del motor. Hay dos disposiciones de tabla en circulación (una v1 más antigua y una v2 más nueva), y un traductor tiene que entender ambas para extraer las líneas realmente habladas sin destrozar la estructura que las rodea. - Los comandos inline del motor están entretejidos en el diálogo. Las anotaciones ruby/furigana, las placas de nombre, los cambios de color y las esperas de clic se escriben inline con el texto. Un buscar-y-reemplazar que no los reconozca traducirá también los tokens de comando, y el juego se rompe.
El efecto neto: incluso un traductor que lee japonés con fluidez tiene que desempaquetar primero un contenedor cifrado propietario, luego analizar a mano tablas Lua, y después esquivar con cuidado el marcado inline —antes de que se traduzca una sola línea. Ese es el trabajo que RuneTranslate ahora hace por ti.
Qué hace ahora RuneTranslate
RuneTranslate trata a Artemis 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 archivos `.pfs` directamente. Abre los formatos de archivo
PF8,PF6y el antiguoPF2de forma nativa, incluido el cifrado XOR con clave `SHA-1` de PF8 —reproduciendo la derivación de clave del motor para que el contenido del script salga legible. - Extrae diálogos, nombres y opciones. Analiza los scripts de escenario
.astlegibles (tablas Lua) —tanto la disposición v1 antigua como la v2 nueva—, los scripts.txt(orientados a líneas), Y los escenarios binarios compilados `ASB` que muchos juegos distribuyen en realidad (detectados por firma, incluso cuando se les cambia el nombre a una extensión personalizada como.iet), y lista en el editor todas las líneas traducibles: el diálogo hablado, los nombres de los personajes en las placas de nombre y las opciones ramificadas. - Conserva los comandos del motor. El marcado inline —ruby/furigana, placas de nombre, color, esperas de clic— y los saltos de línea se enmascaran tras marcadores numéricos antes de que nada llegue al proveedor de traducción, y luego se restauran exactamente a la salida. El texto se traduce; las instrucciones del motor no.
- Exporta sin reempaquetar. Artemis prefiere un script suelto en disco antes que el mismo archivo empaquetado dentro de un
.pfs, así que al exportar RuneTranslate escribe los scripts.ast/.txttraducidos sueltos, en sus rutas de archivo originales, junto al juego. No hay reempaquetado —el juego simplemente lee tus traducciones en lugar de los originales empaquetados. (Es el mismo enfoque de sobrescritura con archivos sueltos que nuestro flujo de parche de Kirikiri.)
Japonés → inglés es el punto óptimo, pero puedes apuntar 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).
- Una carpeta de juego Artemis. Es el directorio que contiene el
.exedel juego y sus archivos.pfs(los scripts y los recursos están empaquetados dentro de estos). - Un idioma de destino —inglés, español, francés, alemán, portugués, ruso, chino, italiano, turco, vietnamita y más de 20 idiomas más.
- Un proveedor de traducción. Google Translate gratuito funciona sin más; DeepL tiene un nivel gratuito; OpenAI, Anthropic, un modelo local (Ollama / LM Studio) y cualquier API compatible con OpenAI funcionan con tu propia clave. Los juegos Artemis tienen mucho diálogo y son sensibles al tono, así que un LLM (OpenAI / Anthropic) o DeepL suele leerse mejor.
Paso 1: Abre la carpeta del juego
Inicia RuneTranslate, haz clic en Nuevo proyecto y apúntalo al directorio del juego Artemis. La detección del motor se ejecuta automáticamente —cuando ve los archivos .pfs del motor, reconoce el proyecto como Artemis. Tu carpeta de juego original nunca se modifica.
Paso 2: Cómo se leen los scripts
RuneTranslate abre los archivos .pfs y extrae los scripts por ti, descifrando y analizando sobre la marcha:
- Archivos `PF8` cifrados —descifrados de forma nativa usando el esquema XOR con clave
SHA-1, así que nunca ejecutas un desempaquetador aparte. - Archivos `PF6` sin cifrar / `PF2` antiguos —leídos directamente.
- Scripts `.ast` y `.txt` —analizados en busca de diálogos, nombres y opciones, y listados en el editor, agrupados por archivo.
Los comandos inline del motor y los saltos de línea se enmascaran tras marcadores numéricos antes de que nada llegue al proveedor, y luego se restauran a la salida —así que las anotaciones ruby, las placas de nombre y las etiquetas de color sobreviven al viaje de ida y vuelta intactas.
Paso 3: Traduce
Elige un proveedor y ejecuta. 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 Google Translate gratuito sirve bien para cadenas cortas de menú y opciones. Crea un glosario de tu reparto y de los términos recurrentes de antemano para que los nombres aparezcan idénticos en todo el juego —consulta Glosario 101. Cuando termines, una pasada opcional con el refinador de IA vuelve a leer cada línea en su contexto y pule el fraseo rígido y literal que la traducción automática tiende a dejar atrás.
Paso 4: Exporta una copia lista para jugar
Haz clic en Exportar. RuneTranslate escribe una copia traducida del juego con los scripts .ast / .txt traducidos colocados sueltos en sus rutas originales, junto a los archivos .pfs intactos. No hay reempaquetado —Artemis carga los scripts sueltos con preferencia sobre los originales empaquetados, así que el juego simplemente lee tus traducciones. Ejecútalo y se jugará en tu idioma de destino.
Limitaciones conocidas
- Los escenarios `.asb` compilados se leen —muchos juegos Artemis distribuyen el escenario como AST binario compilado (la forma que empieza con el marcador
ASB) en lugar del.ast/.txtlegible, y varios cambian la extensión (un juego que probamos usa.iet). RuneTranslate lo detecta por firma, no por extensión, y lo traduce en el sitio. Cuando un juego almacena los nombres de los hablantes en gráficos o como nombres de comando en lugar de como texto dentro del script, esos nombres provienen del flujo de texto en imágenes, no del script —si un nombre se queda en japonés, esa suele ser la razón. - La sobrescritura con archivos sueltos es la ruta de carga esperada, y en la mayoría de los juegos Artemis funciona porque el motor prefiere un script suelto antes que la copia empaquetada. En el título excepcional que no respeta eso, la exportación puede necesitar ajustes —este es exactamente el tipo de comportamiento en juegos reales que aún 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, así que el extractor de scripts no puede alcanzarlo. Para eso, consulta traducción de texto en imágenes.
- La variante exacta de archivo y de script puede diferir entre lanzamientos. Verifica siempre en tu copia concreta.
Es completamente nuevo —cuéntanos qué falla
Vale la pena repetirlo con claridad: la compatibilidad con Artemis es una incorporación reciente y aún no se ha probado en muchos juegos reales. El lector de .pfs, el cifrado y los analizadores de .ast / .txt están construidos y probados con tests unitarios, pero el motor tiene años de variación por estudio que no hemos visto toda. Así que si apuntas RuneTranslate a un juego Artemis y no lo detecta, no abre los archivos, no extrae nada, o exporta algo que el juego no carga, por favor infórmalo en nuestro Discord —el nombre del juego y cómo está empaquetado (qué variante de .pfs, .ast frente a .txt frente a .asb) es exactamente lo que nos ayuda a reforzarlo más rápido.
Descarga RuneTranslate, apúntalo a esa novela visual Artemis que llevas tiempo queriendo leer, y pruébalo. Para ver cómo gestionamos otro motor de novelas visuales basado en archivos, lee a continuación el tutorial de Kirikiri.
¿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