Antes que nada, buenas a todos ya que soy nuevo por aquí y perdón si el post no queda muy bien, hace bastante que no posteo en un foro.
He estado trasteando un tiempo con un programa que extrae el texto de los juegos, los copia al portapapeles y mediante otro programa se traducen y puedes ver la traducción en un overlay.
El programa para extraer el texto se llama Textractor, se usa más que nada para visual novels pero yo lo he estado usando en varios JRPGs (Trails of cold steel II, Trails of cold steel III, Monark, por ejemplo) y aunque no es perfecto, funciona bastante bien.
Para traducir los textos copiados al portapapeles por Textractor, uso VNTranslator que tiene bastantes traductores disponibles (Google, DeepL, Bing, Papago) y además tiene un overlay bastante personalizable en el que puedes editar el tamaño del texto, el color del fondo, transparencia... bastante completo.
Unos ejemplos para que veáis como funciona:
Trails into Reverie / Hajimari no kiseki (Versión asiatica con parche en inglés)
Este del Ys IX aún tiene algunos fallos, no captura el texto que sale cuando vas corriendo, aún estoy en ello
Monark
Por si queréis echarle un vistazo pero aviso que no es fácil de usar
Textractor: https://github.com/Artikash/Textractor
VNTranslator: https://vntranslator.carrd.co/
Un pequeño Tutorial de como usar Textractor:
spoiler
Esta es la interfaz que aparece al abrir el programa, con varias opciones.
- Attach to game: sirve para adjuntar el juego del que queramos extraer el texto, al hacer click se abre una nueva ventana en la que hay que seleccionar el .exe del juego. Una vez se carga el juego en Textractor, el programa empezará a buscar algunos hooks genéricos y si hay suerte no habrá que hacer mucho más (esto suele funciona con Visual Novels, con JRPGs solo me ha funcionado con Trails from Zero con el parche en inglés de Geofront). Si no aparece el .exe del juego, prueba a ejecutar Textractor como administrador.
- Launch game: lo mismo que attach pero para ejecutar el juego directamente desde Textractor en vez de abrirlo aparte y despues adjuntarlo.
- Detach from game: para desconectar el juego de Textractor.
- Forget game: para borrar todo lo que Textractor tenga guardado del juego (H-Codes, filtros, extensiones, etc).
- Add Hook: aquí es donde se introduce el H-Code en caso de tenerlo y de que Textractor no encuentre uno solo.
- Remove Hook: para eliminar hooks que tengas activos.
- Save hook: sirve para guardar el hook que tengas activo y no tengas que estar introduciéndolo cada vez que lo inicias. También guarda el "hilo" que tengas seleccionado en el desplegable de la pestaña superior, la próxima vez que se inicie el juego (hay que esperar a que el juego imprima texto) irá directamente a ese "hilo".
- Search for hooks: Con esta opción podemos buscar hooks en caso de que el programa no lo consiga solo, con la opcion "Start hook search" comenzará una busqueda por fuerza bruta en la que te pedirá que pases dialogos en el juego durante 30 segundos (es posible que veas glitches gráficos e incluso que se cuelgue el juego), una vez acabe saldrá una ventana con los resultados, busca el que tenga el texto mas limpio y haz doble click en el H-Code para añadirlo. Con "Search for specific text" puedes hacer que Textractor intente buscar un hook introduciendo el texto que tienes en pantalla en el juego en ese momento.
- Settings: opciones del programa, yo solo he usado "Filter repetition" porque en algunos juegos el texto no para de extraerse al final de la frase y se repite hasta el infinito. Marcando "Auto Attach (saved only)" hacemos que el programa se adjunte solo al juego una vez tengamos el hook guardado.
- Extensions: Extensiones del programa para corregir errores en el texto o añadir funciones, click derecho > add extension y añadir el .dll que se quiera, el orden importa. Con "copy to clipboard.xdll" el texto se copiará al portapapeles para luego ser traducido con VNTranslator en modo clipboard.
En este desplegable saldrán los hilos resultantes del hook.
H-Codes para varios juegos:
- Trails of Cold Steel III
spoiler- H-Code: HSN932#-24:918@14030AC30
- Settings: Marcar "filter repetition"
- Extensions: Regex Filter, Regex replacer, Copy to clipboard
- Regex Filter: #..
- Regex replacer:
|PROCESS| Ruta del .exe del juego aquí |REGEX||BECOMES| |MODIFIER||END|
|PROCESS| Ruta del .exe del juego aquí |REGEX||BECOMES| |MODIFIER||END|
|PROCESS| Ruta del .exe del juego aquí |REGEX||BECOMES| |MODIFIER||END|
|PROCESS| Ruta del .exe del juego aquí |REGEX||BECOMES| |MODIFIER||END|
|PROCESS| Ruta del .exe del juego aquí |REGEX||BECOMES| |MODIFIER||END|
- Notas: Una vez introducido el H-Code, esperar a que el juego imprima texto y en el desplegable de arriba buscar un hilo parecido a esto 14030AC30:0:36CBE050: (cambia según el procesador, pero uno de todos los que salen funciona)
- Trails of Cold Steel IV
spoiler- H-Code: HV-44:-4@1402EAC09
- Settings: Marcar casilla "Filter repetition"
- Extensions: Regex Filter, Regex replacer, Copy to clipboard
- Regex Filter: #..||
- Regex Replacer (editar savedregexreplacements.txt en carpeta de textractor):
|PROCESS|Ruta del .exe del juego aquí|REGEX||BECOMES| |MODIFIER||END|
- Notas: Una vez introducido el H-Code, esperar a que el juego imprima texto y en el desplegable de arriba buscar un hilo parecido a esto 600:202 o 1402e0c10:202
- Monark v1.0
spoiler- H-Code: HQN-14:-24@34c468:monark.exe
- Extensions: Regex Filter, Regex Replacer, Copy to Clipboard
- Regex Filter: SkipAuto|.*\-|???|
- Regex Replacer ( editar savedregexreplacements.txt en carpeta de textractor):
|PROCESS|Ruta del .exe del juego aquí|REGEX||BECOMES| |MODIFIER||END|
|PROCESS|Ruta del .exe del juego aquí|REGEX|--|BECOMES|...|MODIFIER||END|
- Notas: Textractor se saltará las frases del juego que contengan "-", debido a este regex filter ".*\-" (elimina todos los caracteres antes de -), pero es peor quitarlo ya que da algunos fallos con los nombres de los personajes.
- Ys IX Monstrum Nox ( v1.0.4 GoG)
spoiler- H-Code: HVN932#-44:-2C@140413C98
- Hilo: 140413C98:0:14E708:
- Settings: Marcar "filter repetition"
- Extensions: Copy to clipboard
- Notas: En las opciones del juego (options, pestaña game), poner la velocidad del texto en instant.
- Ys IX Monstrum Nox (v1.1.3 GoG)
spoiler- H-Code: HV-1C:-C@1406328B4
- Hilo: 14EC28
- Settings: Filter repetition
- Notas: No captura el salto de linea por lo que algunas palabras salen pegadas pero el traductor suele corregirlo automáticamente.
- Hajimari no Kiseki / Trails into Reverie (versión asiática con parche en inglés)
spoiler- H-Codes:
HS65001#-64@1404B7FE0 ( Texto principal)
HS932#-6C@140409170 (Tutoriales y narración)
RV@142c62cf8 (Texto que sale mientras andas)
- Extensions: Regex Filter, Thread Linker, Copy to clipboard
- Regex Filter:| ..........|999c||#..|
- Notas: Con el primer H-code es suficiente para entender la historia, pero si quieres todos los detalles hay que meter los 3 y juntarlos con la extensión Thread Linker.
Tokyo Xanadu eX+ (versión 1.08 GoG)
spoiler- H-Code: HS932#-4@5777E0
- Extensions: Regex Filter, Copy to clipboard
- Regex Filter: #\d{1}\w{1}
- Notas: Este Hook no captura los "active voice"
Ys VI: Ark of Naphistim (Steam, puede funcionar en GoG también)
spoiler- H-Code: HS65001#-1C@4D7F96
- Extensions: Regex Filter, Replacer, Copu to clipboard
- Regex Filter: <.*>
- Replacer:
|ORIG|\x1|BECOMES| Adol |END|
|ORIG|\n|BECOMES| |END|
Ys Seven (Steam, puede funcionar en GoG también)
spoiler- H-Code: HS932#-1C@1D8130
- Extensions: Regex Filter, Copy to clipboard
- Regex Filter: #\d{1,5}\w{1}
Ys Memories of Celceta (v 1.0.15 Steam y GoG)
spoiler- H-Code: HV-10@51F214
- Extensions: Regex Filter, Copy to clipboard
- Regex Filter: #\d{1,5}\w{1}
Si hay alguien que entienda como funciona el memory viewer de Cheat Engine (o la memoria en general), que sepa algo de reverse engineering y estos temas igual pueden ayudar a crear los Hooks para mas juegos, yo lo he hecho a base de prueba y error, lo he estado trasteando para que mi pareja, que no sabe inglés, se pase los Trails of Cold Steel, pero no tengo mucha idea del tema.