viernes, 17 de agosto de 2012

Resurrección

Cuatro años han pasado desde la última entrada de este blog y desde que la traducción quedó en estado de letargo por problemas técnicos: los recursos del juego pisoteaban en memoria el script que había crecido mucho en español. Una auténtica pena que no parecía tener solución tras mucho mirarlo.

Que el script del juego se inflara tanto era consecuencia de que cada carácter ocupaba 2bytes, lo habitual en la codificación japonesa. Una de las posibles soluciones, teóricamente, era hacer que el juego comprendiera carácteres escritos usando un único byte, porque nuestro alfabeto tiene de sobra con un byte por carácter... Pero hacer eso no era nada fácil, posible seguro, pero casi imposible para mí y mis conocimientos. La traducción tendría que estar parada de forma indefinida hasta encontrar una solución o a alguien capaz de crearla.

Y así fue, la traducción quedó en un coma indefinido. Pero el tiempo sirve para aprender, y eso ha pasado; he aprendido bastantes cosas que antes no sabía. Algunas de mi amigo Wiz, otras de personas anónimas que comparten información por internet, y otras por mí mismo. Y ese conocimiento adquirido en estos cuatro últimos años, ¡me ha permitido solucionar el problema! He logrado hacer que el juego funcione con carácteres de 1byte, lo que evita el engorroso fallo que sucedía. Todo ha pasado a ser 1byte; los carácteres y los diferentes opcodes que actúan sobre el texto.

El primer paso para lograrlo lo hice en 2011, cuando empecé a intentar encontrar la rutina del juego que se encarga de tratar los textos. Poco a poco fui sacándola en el ejecutable del juego y descifré parte, aunque no toda.


Toquetearla no daba resultado porque otras partes del juego contaban con trabajar con dos bytes o resultados de operaciones hechas con esos dos bytes que se usaban por carácter. Además de que no tenía toda la función descifrada, así que siempre se me podía escapar algo crucial.

Tras varios intentos de encontrar solución al asunto llegué al siguiente pensamiento; si el juego quiere dos bytes le daremos dos bytes, pero se los daremos añadiendo uno en el proceso de la rutina del juego. Esto quiere decir que los carácteres en el fichero y en memoria estarán escritos usando 1byte y que cuando la consola los lea les añadirá un segundo byte para que el juego los entienda. Para hacer esto había que tocar a otro nivel las instrucciones del juego. No solo había que modificar código, sino que había que crear nuevo. Y como somos muy "machos" todo ello usando código máquina directamente.

En el último mes he terminado de encontrar/descifrar las partes de la rutina que necesitaba saber y he empezado a aprender SH2 según lo he ido necesitando. Por suerte por la red hay bastante material oficial sobre la familia "Hitachi SuperH" y el documento "Hitachi SuperH RISC Engine SH-1/SH-2/SH-DSP Programming Manual" me ha venido de perlas. Sin él me habría costado horrores el ir descifrando las instrucciones que he necesitado crear y posiblemente no lo hubiera logrado.

Para ir terminando este tochopost resumiré lo que he tenido que hacer. He tenido que modificar diferentes partes de varias subrutinas del juego y crear dos pequeñas rutinas que interceptan  la rutina principal del juego y así poder hacer lo que a mí me interesa. La verdad es que trabajar en código máquina directamente me ha dado algún que otro dolor de cabeza por pequeños errores tontos, pero al final todo ha ido como la seda. Y debo decir que haciendo todo esto he disfrutado como un niño :)

Como anécdota comentar que por falta de descubrir un trozo de función me encontré con la situación que todos los textos del juego se mostraban conforme iba pulsando A, jejeje. 

Gracias a esta modificación en el código del juego que permite usar carácteres de 1byte el script ha pasado a ocupar miseria y hay espacio de sobra. Aunque debo advertir que seguramente surja algún otro problema para completar la traducción (los libros y alguna otra cosa), pero por ahora todo lo que es la historia principal está cubierta. Y lo cierto es que ahora me veo algo más capacitado para solucionar lo que pueda surgir. 

La historia continua... ;)



lunes, 7 de abril de 2008

Traducción de los tí­tulos de capí­tulo

Ya hace dos meses que no poní­a nada por estos lares. Si es que el tiempo pasa muy rápido... y Útimamente la traducción ha estado bastante parada. La razón ha sido que he estado creando una web y me habí­a centrado en ella para hacerla "funcionar" cuanto antes. La web es sobre fondos de escritorio de anime (Wallpapers de naruto, Rozen maiden y otras series).

Volviendo al tema de la traducción, he empezado a traducir las imágenes de los tí­tulos de los diferentes capí­tulos que forman el juego.

Traducción


También he avanzado algo en la traducción del script del juego. Cada vez falta menos... eso es bueno, supongo ^_~

Aprovecho para agradecer los ánimos que me estáis dando todos los que de vez en cuando os pasáis por aquí­.

Saludos,

domingo, 10 de febrero de 2008

Cambio de fuente

He decidido utilizar una fuente más robusta que la que estaba usando por ahora. Dará mayor facilidad para leer y queda bastante mejor.

Aquí una captura de prueba:

Nueva fuente


Como la imágen es una captura desde el emulador no refleja como se verá realmente en una TV.

lunes, 3 de diciembre de 2007

Modificación de imágenes.

Ya tengo una aplicación que me permite extraer de forma fácil y sencilla las imágenes del juego que necesitan traducción. La ha programado soywiz, y entre los dos hemos ido dándole forma y comprobando que hiciera lo que debe hacer. Lo bueno es que no sólo me servirá a mi para el "nanatsu", si no a otras personas y para otros proyectos.

La cuestión es que funciona bien y es un buen avance en todo el tema de romhacking de la traducción del "Nanatsu". Os pongo una captura de un test de modificación de los tí­tulos japoneses de los capítulos del juego.

Test de modificación de título de capítulo

martes, 27 de noviembre de 2007

Diez Años...

Hoy (27/11/2007) mi querido "Nanatsu Kaze no Shima Monogatari" cumple diez añitos. ¡Si es que al tiempo no hay quien lo detenga!




Quién me iba a decir a mi hace 10 años, cuando probé el juego por primera vez, que terminaría enfrascado en su traducción...

miércoles, 24 de octubre de 2007

Poco a poco, pero con buena letra

Hace ya un par de meses que no escribía aquí­. La verdad es que el blog no necesita actualizaciones continuas, sólo cuando haya algo interesante que contar.

El mes de septiembre lo pasé en Japón, así que no toqué para nada el proyecto. Ahora ya de regreso, estoy liado con la traducción del script principal y la cosa va para largo, aunque tampoco es muy extenso que se diga. No puedo hacer una estimación de cuando finalizaré de traducirlo, pero lo que sí­ puedo decir es que se va progresando solventando todas las dificultades ^_^.

Ayer, Wiz me ayudó creando una pequeña utilidad con la que la inserción del texto traducido y la generación de los punteros del texto es "coser y cantar". Así­ que hay una parte del trabajo final, una vez ya está traducido el script, por la que ya no hay que preocuparse... de momento.

jueves, 19 de julio de 2007

Más modificaciones conseguidas

Hace cuatro días os comentaba que había logrado dar con la instrucción del juego que se encargaba del tamaño de los espacios entre palabras. Estaba muy contento con ello, pero hoy lo estoy más. He localizado otras tres instrucciones que me permiten darle un toque más cuidado al texto del juego.

La primera y más importante es la instrucción que se encarga de la separación entre letras. Aunque no queda mal con la separación que viene por defecto, una separación de letras más reducida en las palabras deja al texto con un aspecto bastante más cuidado.

Aquí tenéis unas capturas para que podáis comparar:

Separación original




Nueva separación de letras







Las otras dos instrucciones localizadas son las que se encargan de indicar la posición en "X" e "Y" del texto. En las imágenes anteriores ya están modificadas también, aunque no con su valor final. Cambiarlas me permitirá que el texto se coloque automáticamente en la posición que yo quiera de la pantalla, haciendo más fácil su justificación de forma automática.

¿No os parece que está quedando bastante mejor el texto con estos cambios?