Experimento: traduciendo el fichero binario del juego

Llevaba ya tiempo dándole vueltas en la cabeza, y al final no he podido resistirme. Utilizando un editor hexadecimal y una herramienta para sustituir cadenas en ficheros binarios, he estado un rato destripando el fichero ejecutable "Dwarf Fortress.exe" con el resultado que podéis ver en la imagen.

Por supuesto, no ha sido fácil.

El problema más grave es que no puedes utilizar una cadena más larga que la original como traducción, si es más corta no hay problema ya que puede rellenarse con espacios. ¿El motivo? Pues porque modificar un ejecutable debe hacerse con mucho cuidado, las direcciones del código están en forma de offsets (distancia en bytes desde el principio del fichero) y cualquier modificación en la longitud del ejecutable hace que las direcciones del código posterior a la modificación sean erróneas, lo que impide ejecutar el programa. También hay algunas cadenas que no encuentro, como podéis ver en la captura.

Esto se podría haber hecho de un modo mucho más sencillo si Tarn Adams hubiera utilizado un recurso externo para almacenar las cadenas de texto, pero no ha sido así, y aunque si le echáis un vistazo al ejecutable con el editor hexadecimal veréis que la mayoría de cadenas están agrupadas, hay otras mezcladas con código, por lo que la traducción completa del juego por este método sería larga y dolorosa.

Lo ideal sería convencer a Tarn Adams de que coloque todas las cadenas texto del programa en un recurso externo para que sean editables fácilmente, pero claro, para eso tiene que darse cuenta de que podría ganar mucho más dinero si su juego tuviera soporte para múltiples idiomas, aunque fuera la comunidad la que se encargara de traducirlo.

En resumen, si estáis interesados en ésto, dejad un comentario y seguimos hablando del tema.