Traducción de juegos en tiempo real (JRPGs, Visual Novels, etc).

Rusxaker

#29 Al intentar agregar un "hook" da error "MH_ERROR_NOT_EXECUTABLE".

1 mes después
M

Hola, he hecho algunas pruebas con textractor en el Kiseki. En CS4 cuando extraigo el "H-code" sólo funciona para las burbujas de diálogo verdes y no en el texto de la parte inferior de la pantalla fijado con el estilo de escritura en blanco. Además, por lo demás, cuando un personaje habla, si tiene varias burbujas de discurso seguidas, el software traducirá todas sus burbujas de discurso al mismo tiempo antes de que yo pueda leerlas una por una. Es un poco lo mismo para las Trails in the Sky, excepto que para los NPC se desplaza burbuja por burbuja en términos de traducción, a diferencia de los personajes que tienen un retrato. Para kuro y Hajimari es perfecto , Parece que las versiones japonesas son más eficaces.

En cuanto a su "H-code" para CS4, es perfecto, lo tiene todo. Me preguntaba, ¿has hecho algo especial en la búsqueda de "Hooks"? También veo que el código H comienza con "HV" cuando normalmente está fuera de orden, ¿cómo es eso?

Gracias de antemano.

1 respuesta
Demray

#32 Creo que el H-Code de CS4 lo encontre usando Cheat Engine, te enseño como lo hago pero no siempre funciona.

1 - Avanzas en el juego hasta encontrar un dialogo que se pueda repetir, por ejemplo, un dialogo de un NPC que siempre diga lo mismo.

2 - Abres Cheat engine y en File -> Open process, buscas el .exe del juego y le das a open.

3 - Una vez unido el juego con Cheat Engine, en Value Type pones "String" y escribes la frase exactamente como sale en el juego y le das al botón "First Scan"

4 - Te aparecerá una lista con todas las direcciones de memoria que contienen ese texto. Si no encuentra nada, prueba a marcar las casillas UTF-16 o Codepage y busca de nuevo.

5 - Le das doble click a cualquiera de ellas para añadirla a la parte de abajo (hay que ir probando, no hay forma de saber cual es la buena aún, aunque las direcciones en color verde suelen dar mejor resultado.

6 - Una vez tengas una o varias de las direcciones en la parte de abajo, haces click derecho en cualquiera de ellas y le das a "find out what access this address", eso te abrirá una ventana como esta:

7 - Ahora vuelves al juego y haces que el NPC repita de nuevo el dialogo que has buscado en Cheat Engine (es mejor poner el juego en modo ventana para no tener que estar minimizando) y te aparecerá en esa ventana todo lo que accede a ese texto, Si no aparece nada, repite lo mismo con la siguiente dirección hasta que aparezca algo asi:

8 - Si te fijas en mi H-Code, en esa imagen ya puedes ver la dirección del Hook que uso en CS4, 1402EAC09. Pero todavía no hemos terminado, ahora hay que encontrar la parte que va después del "HV" y antes del "@".
9 - Haces click en una de las direcciones y le das al boton "show disasselbler", te aparecerá otra ventana como esta:

10 - Ahora, sin moverte de la dirección que te sale marcada en azul, click derecho en esa dirección y set breakpoint. Verás que a la derecha te aparecen los "Registers", esto en el H-Code corresponde al -4, -1C, -44, etc.

11 - Ahora vuelves al juego y haces que el NPC repita de nuevo el mismo texto. Si el juego se queda pausado cuando aparece el cuadro de dialogo es que vas bien. Vuelve a Cheat Engine, en la parte de "registers" y vas haciendo uno por uno click derecho -> Show in hexview hasta que encuentres el texto.

12 - En este caso, el texto se encuentra en el RDI, que corresponde al valor -44 en el H-Code. (para quitar la pausa del juego, dale al botón "toggle breakpoint" y despues a "Run"

13 - Ahora para hacer el H-Code, solo hay que mirar las instrucciones que te aparecen en Textractor al introducir un H-code manualmente, en "Add hook".

14 - Empezamos con la "H", que todos los Hooks la llevan, excepto los Read Codes que empiezan por R.

15 - En la siguiente letra tenemos varias opciones A, B, W, H, S, Q, V y M, hay que usar la misma opción que hemos usado para buscar el texto en cheat engine, había casillas de Codepage (S), UTF-16 (Q) y si no has marcado ninguna es UTF-8 (V).

16 - Uniendo todo, quedaría HV-44@1402EAC09. Con este "H-Code" hay un problema y es que textractor, además de extraer el texto, extrae mas cosas, o a veces pasa eso de que extrae varios cuadros de dialogo seguidos, para arreglarlo, se puede añadir una condición al Hook. En este caso yo me di cuenta que al cambiar de cuadro de dialogo, en cheat engine, el registro RAX cambiaba (esto se puede ver cuando haces el paso 10 y 11, y encuentras el texto en el Memory viewer de Cheat Engine, en este caso en el RDI, en vez de pulsar "show in hexview", pulsas "follow in hexview when stepping", y haces que avance el texto desde Cheat engine pulsando F9 hasta que llegue al final del texto de esa caja de dialogo).

17 - Eso nos dejaría con HV-44:-C@1402EAC09 (:-C sería la condición y "-C" equivale al registro RAX) pero tampoco funciona el Hook así. Tuve que poner :-4 que equivale al registro EAX, que está dentro del RAX. Este EAX es el que controla el cambio de caja de dialogo (lo encontré probando con todos los "registers", fue suerte y mucho tiempo).

18 - Así que el H-Code al final se queda HV-44:-4@1402EAC09.

Te dejo la lista con los valores correspondientes a todos los "registers" en el H-Code:

Aplicaciones x64:
RAX= -C
RBX= -14
RCX= -1C
RDX= -24
RBP= -34
RSI= -3C
RDI= -44
RSP= -2C
R8= -4C
R9= -54
R10= -5C
R11= -64
R12= -6C
R13= -74
R14= -7C
R15= -84
Aplicaciones x32:
EAX= -4
ECX= -8
EDX= -C
EBX= -10
ESP= -14
EBP= -18
ESI= -1C
EDI= -20

Normalmente es suficiente con hacer hasta el paso 12 y luego formar el H-code, pero el de CS4 es más complicado. Lo siento si no se entiende muy bien pero es un proceso bastante complicado y ni siquiera yo estoy 100% seguro de como funciona, no soy experto en esto. Seguro que hay una forma más fácil y más eficaz de buscar los Hooks con Cheat Engine, pero es la única que conozco.

Respecto a la otra pregunta de por que uso HV en vez de HS, HV es exactamente lo mismo que HS65001# (y también por que lo encontré en UTF-8 en Cheat Engine, como explico antes), si te fijas al añadir mi Hook en Textractor en la lista de Hilos aparece como HS65001#.

Aquí tienes otro tutorial que probablemente lo explique mejor que yo, pero yo no he conseguido entenderlo:
https://wiki.anime-sharing.com/hgames/index.php?title=AGTH/Tutorial

3 1 respuesta
M

#33 Muchas gracias por su respuesta, teniendo en cuenta su tamaño combinado con los detalles debe haber tardado un rato. Lo intentaré en Sora no Kiseki SC(aunque el final de los pasos parece un poco complicado). Es una pena que textractor no sea más eficiente. Bueno, para el Kiseki tengo todos los Hooks pero es una pena que para los antiguos se traduzcan todas las burbujas a la vez entre cada personaje a retratar, a veces (es raro) no se extraen una o varias palabras o una burbuja entera, ese es el verdadero fallo. He probado otros jrpg's como Digimon Cyber Sleuth y funciona muy bien. Hay un problema real con el Kiseki (también posible para YS obviamente, pero los últimos están traducidos en mi idioma. Por cierto, soy francés, así que mi español no es muy bueno, me disculpo).

3 meses después
M

Hice algunas pruebas con Cheat Engine, efectivamente para CS4 se puede encontrar el buen "H-code", pero no funciona para Sora SC. Es el mismo sistema en el que todas las burbujas de un personaje retratado estarán enlazadas hasta que termine, a menudo es incluso peor que el "H-code" a través de textractor. Para los dos primeros "Cold Steel" me di cuenta de que el "h-code" correcto se encontró por el "hablar con Vivi" por ejemplo (cualquier carácter) y no por la propia frase. Luego tienes que usar textractor con los filtros y extensiones y ya tienes las frases por frases (sin basura).

Lamentablemente no hay ningún sistema de "Talk" en el "Sky" (y supongo que para el arco Crossbell también), así que no puedo encontrar nada bueno. ¿Has conseguido encontrar un buen código H en el "Sky" y en el "Zero"? Si es así, ¿cuál es el elemento que le permite encontrar? He probado los cofres para ver, y tampoco da nada

1 respuesta
Sk3in

#35 Ya... Yo llevo tiempo intentando sacar un H-Code en condiciones para sky 2 y nada, en el primero de Crossbell tampoco funciona por que usa el mismo motor, he probado también en la nueva versión de "Trails from Zero" que salió hace poco y nada.

Así que de momento estoy igual que tu :(.

1 respuesta
M

#36 Es molesto, sobre todo porque los juegos menos populares como Caligula Effect consigo un buen H-code. Es una anomalía cómo se extraen las frases en los 5 primeros juegos de Kiseki(y de nuevo los CS básicos tienen el mismo problema si se toma el H-Code a través de las frases). Sin embargo, sería menos problemático si a veces algunas frases/palabras se tradujeran con esta configuración. Textractor reconoce las frases, incluso puedes seleccionarlas para verlas traducidas en el traductor Vn, pero si no haces esto no aparecen. Necesitamos una nueva versión de textractor para corregir este problema.

1
2 meses después
Geroh

Yo encontré una curiosidad en su código fuente con un pinmatin

1
Sk3in

Cuéntanos más.

11 meses después
M

Hola, ¿alguien ha encontrado un Hook (referente a la historia, para lo que no es una burbuja) para la versión occidental de trails into reverie? Para las burbujas he encontrado uno y funciona muy bien, pero para el resto de la historia (cuando está en el marco fijo) no funciona, los hooks que he encontrado tienen bugs, así que es imposible usarlos. Es una pena porque para la versión asiática sólo había un Hook que hacía que tanto las burbujas de diálogo verdes como el resto de la historia funcionaran óptimamente (si hay un Hook que haga que funcionen las dos cosas a la vez me encantaría tenerlo). Encontrar una frase con cheat engine no funciona.

Gracias de antemano.

Usuarios habituales

Tags