Cómo traducir novelas visuales NScripter / ONScripter
RuneTranslate traduce novelas visuales NScripter y ONScripter al inglés y a 30+ idiomas — decodificando el nscript.dat ofuscado con XOR, gestionando Shift-JIS / CP932 y exportando una copia lista para ejecutar. Nuevo; reporta cualquier cosa que no cargue.
RuneTranslate lee una de las familias de motores más antiguas de las novelas visuales japonesas: NScripter y su gemelo de código abierto ONScripter. Estas VN doujin clásicas — las que se publican como una carpeta de crípticos archivos .dat y scripts Shift-JIS — han sido históricamente las más dolorosas de abrir a mano, y las que las herramientas de traducción automática suelen saltar. RuneTranslate detecta el motor, lee el texto del script e incluso puede traducir el japonés pintado en la pantalla de título y los botones de menú.
Este soporte de motor está recién añadido y aún no verificado en juegos reales, así que si apuntas RuneTranslate a un juego de NScripter / ONScripter y no lo detecta o no carga, por favor dínoslo — más sobre eso al final.
Qué son en realidad NScripter y ONScripter
NScripter es un motor de scripting de VN para Windows de código cerrado de Naoki Takahashi, ampliamente usado en Japón desde principios de los 2000. Su licencia libre de regalías para uso personal y comercial, su empaquetador de archivos integrado y su lenguaje de scripting famosamente de bajo nivel lo convirtieron en un pilar de la escena doujin; estudios como Nekonekosoft se apoyaron en él casi en exclusiva.
ONScripter es una reimplementación separada y de código abierto (GPL) del motor de ejecución de NScripter por un programador conocido como Ogapee. Construido sobre SDL y compatible directamente, se ejecuta donde NScripter no puede — Linux, macOS, Android y más — así que la comunidad de localización lo adoptó (y forks como ONScripter-EN y Ponscripter para fuentes Unicode proporcionales) como el motor de ejecución de facto para publicar compilaciones traducidas.
Versión corta: NScripter es el motor cerrado original de Windows en el que se crearon los juegos; ONScripter es el motor de ejecución abierto y multiplataforma en el que los traductores fans ejecutan sus compilaciones. RuneTranslate trabaja desde los scripts y recursos del juego, así que cubre títulos de cualquiera de los dos bandos.
Por qué estos juegos han sido tan difíciles de traducir
En comparación con un motor moderno como Ren’Py o Kirikiri, NScripter / ONScripter es un campo de minas de peculiaridades de su época. Cuatro en particular lo han convertido en un muro tanto para los traductores manuales como para las herramientas de MT ingenuas:
- Codificación Shift-JIS / CP932. Los scripts heredados son Shift-JIS (CP932). Decodifícalo mal y obtienes mojibake; recodifícalo con descuido y algunos motores de ejecución antiguos corrompen la memoria y se cierran. Los scripts nativos modernos pueden ser UTF-8, pero el catálogo antiguo es CP932.
- El `nscript.dat` ofuscado con XOR-`0x84`. El script compilado suele vivir en
nscript.dat(opscript.daten Ponscripter), con cada byte sometido a XOR contra la constante0x84. No es cifrado — solo una protección contra spoilers accidentales — pero aun así no puedes abrirlo en un editor de texto. Los juegos en texto plano publican el script como0.utf/0.utf.txt(UTF-8) o0.txt/00.txt(Shift-JIS) en su lugar. - Texto incrustado en el arte de imagen. Las pantallas de título, los menús y los botones son con frecuencia mapas de bits pre-renderizados, así que el japonés en ellos son píxeles, no cadenas — un extractor de cadenas no puede tocarlos.
- La sutil: las líneas que empiezan por latín se reinterpretan como comandos. El analizador de NScripter empieza cada línea en modo comando. Eso era seguro cuando el motor solo aceptaba japonés de dos bytes, pero una línea que empieza por una letra latina de un byte se parece exactamente a un comando y el motor intenta ejecutarla. La solución de la comunidad es un marcador de texto reservado (el acento grave `
`en el ONScripter heredado;^` en Ponscripter) que fuerza el modo texto — algo que un buscar-y-reemplazar ingenuo no añadirá.
Qué hace RuneTranslate ahora
RuneTranslate trata NScripter / ONScripter como un motor de primera clase y maneja ambas mitades del problema:
- El texto del script. Lee el script del juego — un archivo de texto plano suelto o un
nscript.datofuscado con XOR0x84— decodifica el diálogo Shift-JIS / CP932, lista cada línea traducible en el editor y, al exportar, reescribe el script en la forma que el motor espera, reaplicando el XOR cuando el original lo usaba. También inserta el marcador de texto de un byte automáticamente para que el inglés traducido no se interprete mal como un comando. (Un script que vive solo dentro de un archivo.nsa/.sar, sin copia suelta, todavía no se lee — ver limitaciones.) - El texto incrustado en imágenes. El japonés en las pantallas de título y menús lo maneja la traducción de texto en imágenes: encuadra las palabras, reconócelas, tradúcelas con tu propio proveedor y vuelve a hornear el resultado para que el juego cargue tu arte traducido.
Japonés → inglés es el punto óptimo — es de lo que va la historia de traducción de fans de este motor — pero puedes apuntar a 30+ idiomas. En scripts Shift-JIS heredados, un destino no latino está limitado por las fuentes que el motor puede renderizar.
Qué necesitas
- RuneTranslate para Windows — gratis, todos los motores y proveedores desbloqueados.
- Una carpeta de juego de NScripter u ONScripter — el directorio con el
.exedel juego (o un binario de ONScripter), su script (nscript.dat, o un0.txt/0.utfsuelto) y cualquier archivo.nsa/.sar. - Un idioma de destino — inglés, español, francés, alemán, chino y 30+ más.
- Un proveedor. Google Translate gratuito funciona sin más; DeepL tiene un nivel gratuito; OpenAI, Anthropic, un modelo local y cualquier API compatible con OpenAI requieren tu propia clave. Estos juegos tienen muchos diálogos, así que un LLM o DeepL leen mejor.
Paso 1: Abre la carpeta del juego
Inicia RuneTranslate, haz clic en Nuevo proyecto y apúntalo al directorio del juego. La detección se ejecuta automáticamente: un nscript.dat / pscript.dat, o un 0.utf / 0.utf.txt en texto plano, basta por sí solo. Un 0.txt Shift-JIS a secas o un archivo .nsa solitario únicamente se reconocen junto a una señal corroborante — un binario de ONScripter, una fuente del juego o un archivo acompañante — para evitar falsas coincidencias. Tu carpeta de juego original nunca se modifica.
Paso 2: Cómo se lee el script
RuneTranslate lee el script que el juego publica suelto en su raíz y lo decodifica por ti:
- `nscript.dat` ofuscado — sometido a XOR inverso contra
0x84y leído como Shift-JIS, así que te saltas un paso densdecaparte. - Scripts en texto plano —
0.utf/0.utf.txt(UTF-8) o0.txt/00.txt(Shift-JIS), leídos directamente. - Imágenes archivadas — extraídas de los archivos
.nsa/.sardel juego para el paso de texto en imágenes. (El script en sí se lee de los archivos sueltos de la raíz; un script empaquetado solo dentro de un archivo todavía no se lee.)
El diálogo y el texto mostrado se listan en el editor, agrupados por archivo. El marcado del motor y los tokens de comando se enmascaran tras marcadores de posición numéricos antes de llegar al proveedor, y luego se restauran a la salida — y el marcador de texto de un byte se aplica donde hace falta, para que el motor no confunda una línea traducida con un comando.
Paso 3: Traduce
Elige un proveedor y ejecuta. Un LLM (OpenAI / Anthropic) es lo mejor para la voz de los personajes, DeepL es rápido y limpio para la narración, y Google Translate gratuito va bien para cadenas cortas de menú. Pon en el glosario a tu reparto desde el principio para que los nombres se rendericen de forma idéntica — consulta Glosario 101. Cuando termines, un pase opcional con el refinador de IA vuelve a leer cada línea en contexto y pule la fraseología rígida y literal que la MT tiende a dejar.
Paso 4: Traduce el texto en las imágenes
Como tanta interfaz de NScripter es arte pre-renderizado, este paso importa más aquí que en la mayoría de los motores. Abre una imagen de título o menú, encuadra cada fragmento de japonés, reconócelo, tradúcelo con el mismo proveedor y, al exportar, RuneTranslate hornea la traducción de vuelta y la escribe suelta en la copia exportada, para que el motor cargue tu arte traducido sobre el original archivado. (Tu carpeta original permanece intacta; el arte comprimido con SPB y algunas variantes de imagen exóticas todavía se están robusteciendo.) Tutorial completo: traducción de texto en imágenes.
Paso 5: Exporta una copia lista para ejecutar
Haz clic en Exportar. RuneTranslate escribe una copia traducida del juego — el script recodificado a Shift-JIS / CP932 y reofuscado con XOR 0x84 si el original lo usaba, escrito como un script suelto que el motor carga sobre cualquier copia archivada, más las imágenes traducidas junto a él. Ejecútalo y se juega en tu idioma de destino, ya sea en el motor de ejecución original de NScripter o en ONScripter / ONScripter-EN.
Limitaciones conocidas
- La ofuscación XOR-
0x84está gestionada, pero un juego con cifrado personalizado genuino puede no abrirse. - Un script empaquetado solo dentro de un archivo
.nsa/.sar, sin unnscript.dat/0.txtsuelto en la raíz, todavía no se extrae — la mayoría de los juegos lo publican suelto, pero unos pocos no. - La traducción de texto en imágenes alcanza menús, títulos y botones pintados, pero el arte comprimido con SPB y los logos muy estilizados pueden necesitar un retoque manual.
- El motor exacto puede variar según el lanzamiento — algunos títulos asociados a NScripter fueron rediseñados para relanzamientos concretos en Steam / consola. Verifica en tu copia.
Es totalmente nuevo — cuéntanos qué se rompe
Este motor es una incorporación reciente, aún sin curtir en batalla. NScripter / ONScripter tiene décadas de variantes, forks y peculiaridades por estudio que no hemos visto todas. Así que si apuntas RuneTranslate a uno y no lo detecta, no carga, o exporta algo que el motor de ejecución no abre, por favor repórtalo — el nombre del juego y cómo está empaquetado (0.txt suelto, nscript.dat, archivos .nsa) nos ayuda a robustecerlo más rápido.
Descarga RuneTranslate, apúntalo a esa VN clásica que llevas queriendo leer, y pruébalo. Para un motor de VN más moderno, lee el tutorial de Ren’Py.
¿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
