AbandonSocios: El Portal de los Juegos Antiguos

Abandonsocios => Traducciones y Proyectos => Mensaje iniciado por: Darkoz Krull en Abril 05, 2023, 17:40:27 pm

Título: Fantasy General (Traducción) [En proceso]
Publicado por: Darkoz Krull en Abril 05, 2023, 17:40:27 pm
(https://cdn.mobygames.com/covers/26186-fantasy-general-dos-front-cover.jpg)           (https://www.bestoldgames.net/img/games/fantasy-general/fantasy-general-04-big.gif)
Información del juego:
Género: Estrategia por turnos/Wargame.
Fecha de salida: 1996
Desarrolladora: Strategic Simulations, Inc.

 Buenas, hace un tiempo que conseguí la forma de colocarle las voces en Español a la versión inglesa que es la que trae el contenido completo (Las Campañas extra que nunca salieron en español). Solo el EXE cambia entre las distintas versiones del juego por lo que habría que modificar dicho archivo y no sé cómo hacerlo, si alguien se anima o me dice como podría hacerlo se agradecería, no sé muy bien como usar HxD o cualquier otro programa para modificar el hexadecimal del .exe que es donde va el texto, la traducción está hecha realmente, solo faltaría colocarla en el .exe y hacerla cuadrar en cuanto a caracteres ya que todo en español ocupa más espacio, aunque puede acortarse sin tanto problema.

 Para quien no lo conozca, es un Wargame con mapas de movimiento en hexágonos, tiene una campaña en la que se puede elegir a 4 personajes que cambian bastante la jugabilidad, unidades y los posibles tesoros o Héroes que se pueden obtener explorando las zonas de interés en el mapa (lo que lo hace que no sea lineal como otros en el género), cuenta con unidades terrestres y aéreas, solo con ver el bestiario se darán cuenta de la cantidad de unidades que se pueden controlar, que los gráficos no los engañen el juego es una maravilla para los amantes de la estrategia.

 Adjunto mi carpeta del juego ya preparado con los dos EXE por si alguien quiere ver los archivos así podemos ver como traducir el EXE en inglés (O trasladar los textos de la campaña de la versión española, entonces solo habría que traducir la mini campaña).

(Incluyo todas las pistas de música y el audio en español e Inglés, se reproducen perfectamente durante el juego, las campañas extra nunca tuvieron voces en ninguna versión).

Descarga: https://www.mediafire.com/file/w5hk1habxlvvif4/Fantasy_General_%25281996%2529_%2528Strategic_Simulations%252C_Inc.%2529.rar/file
Título: Re: Fantasy General (Versión inglesa con mini campaña, voces en español) (Traducción) [En proceso]
Publicado por: Darkoz Krull en Abril 11, 2023, 18:29:18 pm
 Convertí a .bat los dos .EXE así sacaba los textos de la versión española y los reemplazaba en la inglesa, solo quedaría traducir las campañas que faltan entonces, pero me dió error, parecía un juego hecho en ASCI la pantalla cuando lo ejecuté (Y no sé usar editores hexadecimales). :(
 Si me pueden echar una manito lo agradezco.  :'(

(https://media.discordapp.net/attachments/1038584034403557456/1095383720460046458/Sin_titulo.jpg?width=1164&height=655)
Título: Re: Fantasy General (Traducción) [En proceso]
Publicado por: Ravenford en Julio 09, 2023, 07:48:04 am
Vale, lo primero, perdona que haya tardado tanto en responder, ando a tantas cosas...

Veamos, por el resultado y por lo que explicas diría que has tratado de traducir "a lo bruto" de una versión a otra, un enfoque directo que rara vez funciona. Así que vamos a hacer un repaso a una de las formas más básicas de traducción: Edición hexadecimal.

Para empezar requieres un editor hexadecimal. Yo te recomiendo HxD: https://mh-nexus.de/en/hxd (https://mh-nexus.de/en/hxd) Seguramente hay mejores, pero es sencillo y gratis.

Una vez instales HxD, ábrelo y a continuación arrastra uno de los "BARENA.EXE" dentro del programa. Debes saber exactamente con que .exe estas trabajando, así que te recomiendo copiar cada uno y renombrarlos ESPAÑOL.EXE y INGLES.EXE para identificarlo más fácilmente. Para esta demostración empezaremos por el español.

Al abrir el archivo veras algo así:
(https://i.ibb.co/M7f4dLw/exadecimal1.png)

Lo importante aquí es son las tres columnas que he marcado en la imagen.

La columna roja (1) es el offset o el "intervalo". La explicación sencilla y que te sirve a ti es simplemente "Es una dirección para localizar 16 valores hexadecimales específicos". Solo te interesa como referencia a la posición de los datos que buscas y es parcialmente inalterable.

La columna verde (2) son los 16 valores del offset, expresados cada uno de forma hexadecimal. Puedes modificarlos y con ellos modificaras el programa, pero debes saber MUY BIEN lo que haces así que, en tu caso, mejor no los toques. Son el aspecto menos importante para ti.

Finalmente, la columna azul (3) es el texto decodificado, lo que representan los 16 valores hexadecimales en lenguaje "normal". La mayoría parece un galimatías sin sentido, pero eso se debe a que es código maquina reinterpretado, que en este estado no tiene demasiado valor o sentido. Esta columna es modificable, lo que hará que modifiques los 16 valores hexadecimales. Esta ultima columna es la más importante, porque es donde trabajaremos para la traducción.

Tu objetivo ahora es descender poco a poco por la 3º columna texto y encontrar texto reconocible en castellano y que sea indudablemente texto del juego, no de comandos o comentarios del programa, que raramente esta en castellano. Otra opción es ir a la barra de herramientas, opción buscar > buscar y pedir que busque en todo el archivo una palabra especifica que sabes que existe en el juego, por ejemplo "armadura", y a partir de allí busca el punto inicial de los textos del juego. Te voy a facilitar la vida y decirte que los textos del juego empiezan en el offset 000F3630, así que dirígete allí y apunta en una libreta la dirección.

Vale, tienes los textos en castellano. Ahora toca repetir el proceso con el .exe en ingles.

Ábrelo y trata de localizar el texto del juego. Tu mejor baza es buscar la palabra "armor" para después buscar el inicio de los textos del juego.

Si lo has hecho, te habrás dado cuenta de una particularidad: Los textos de la versión inglesa empieza en el offset 000F3400, no en el 000F3630. Esta es la razón por la que intercambiar los .exe entre juegos no funciona, las localizaciones de memoria son diferentes para uno y para otro y, por lo tanto, crean errores fatales en el programa.

Bueno... Ahora pensaras que solo debes coger los textos en castellano, copiarlos y pegarlos en el .exe en ingles tal cual para tener el juego finalmente en castellano ¿No?. Desgraciadamente, eso muy posiblemente no funcionara. Puedes probarlo pero no creo que funcione por lo siguiente:

Por un lado, hemos podido comprobar que la localización de los textos es diferente y, muy seguramente, la longitud de todo el conjunto de textos también de una localización diferente, así que no sabes lo que te estas cargando por el camino.

Por el otro, miremos que organización tienen estos textos. Cojamos los tres primeros offsets de los textos de cada archivo y comparémonoslo.

  Español: Intentando mover una unidad ilegal..Armadura.Mor
  Ingles:   Trying to move illegal unit..Armor.Morale.Curren

Los puntos rojos no son literalmente puntos, son bytes 00 que marcan la separación de las diferentes cadenas de texto (Los puntos blancos si son puntos de texto, generalmente con el valor E2). Como ves, las dos líneas no tienen la misma distribución de cadenas de texto, así que cada una de ellas empieza y acaba en una dirección distinta. Si el sistema busca directamente direcciones para localizar los textos del juego, lo más seguro que si pegas en la versión inglesa los textos de la versión española tal cual solo crees más errores. (¡Pero ojo! puedes probarlo a ver que pasa...)

¿Entonces, si es así, no se puede traducir el programa? Si se puede traducir, pero te costara más trabajo...

Vas a tener de ir texto por texto de la versión inglesa cambiándolos al castellano, siempre respetando la disposición de los puntos 00 para mantener las localizaciones de memoria intactas, de manera que la maquina puede localizar los textos. Esto implica que vas a tener de ser original y creativo para afrontar ciertos problemas, por ejemplo:

     - ¿Qué harás cuando la cadena de texto inglesa sea más larga que su versión española? Lo más lógico es llenar de espacios los huecos sobrantes y crear la ilusión de que el texto ha acabado antes.
     - ¿Qué harás cuando la cadena de texto inglesa sea más corta que su versión española? ¿Por ejemplo, "armor" y "armadura"? Esto es mas peliagudo. ¿Quizás un diminutivo? lo dejo a tu inventiva.
     - ¿Qué harás con los símbolos especiales españoles, como la Ñ o los acentos? Deberás probar si existen en el juego y si no lo hacen, deberas decidir como sustituirlos si no poder crearlos tu mismo.

Como ves, será una tarea laboriosa y te recomiendo que hagas muchas copias y versiones para mantener un control ordenado.

Bueno, creo que esto te servirá para empezar. Espero que todo esto te sirva para llevar a cabo tu traducción y que me informes de tus progresos. ¡Nos vemos!
Título: Re: Fantasy General (Traducción) [En proceso]
Publicado por: Darkoz Krull en Julio 09, 2023, 16:14:53 pm
Información invaluable para mi, muchas gracias.  :huh: