jueves, 2 de mayo de 2019

Cambio de fuente de los libros y test de reinserción

Una vez finiquitado el tema de la herramienta para extraer/Insertar los textos de los libros tocaba modificar la fuente de los mismos, que es independiente a la de los textos "ingame". La resolución no permite grandes virgerías, pero he probado un par y he terminado dejando una que parece que no queda mal.

Una vez añadidos todos los caracteres necesarios, aproveché para hacer un test de extracción, modificación e inserción.


Ahora tocará modificar el espació entre caracteres para que quede bien y el poco espacio disponible sea mejor aprovechado.

sábado, 20 de abril de 2019

Herramienta de extracción/inserción de libros finalizada

Como ya comenté en entradas anteriores, he estado trabajando en los ratos que tengo libres en una herramienta que permita extraer todo el texto de los dos libros que existen in-game (bestiario y diario).



La parte que faltaba era la de la recreación de los ficheros con el texto traducido, y hoy la he completado de forma satisfactoria. La prueba de "fuego" era que la herramienta extranjera todos los textos de ambos libros y luego reconvirtiera lo extraído en el formato del juego. El resultado debería dar ficheros exactos a los originales. ¡Y así ha sido!


Que el proceso se hiciera bien al 100% me ha dado una alegría porque con el poco margen de tiempo que tengo para trabajar en estas cosas, cualquier impedimento retrasa todo mucho. 


domingo, 10 de febrero de 2019

Extracción de los libros

La parte de extracción de los dos libros disponibles en el juego; bestiario e historia ya está finalizada. A la herramienta aún le quedarán algunos retoques e implementar la inserción, pero ya extrae todo el contenido de ambos libros para poder trabajar con ellos en la herramienta de traducción.


Como se puede ver en la captura de encima, las páginas de los libros son el resultado de varias opciones disponibles que se determinan, o son generadas, por acciones que ha hecho el jugador en el juego.

Por ejemplo, al personaje de la imagen le gusta coleccionar nombres y la página del bestiario cambiará según el nombre que le haya dado el jugador y si se consulta la página antes de encontrarlo por primera vez.

La extracción de los libros da como resultado lo siguiente:

 - Historia: 200 ficheros
 - Bestiario : 134 ficheros

Ahora toca refactorizar un poco y programar la inserción para hacer pruebas.

martes, 22 de enero de 2019

Herramientas para los libros

Durante estos días, aparte de traducir algo del bestiario, he estado trabajando en la creacion de una herramienta que extraiga el texto del libro de narración para poder traducirlo cómodamente.


Con esta utilidad también se podrán recrear los ficheros de los libros una vez traducidos. Lo cierto es que tengo que repasar apuntes de antaño para terminar de entender los libros al 100%, porque en el de la narración de la historia se usan "trozos vivos" que varían según las acciones que hemos hecho jugando. No es algo grabe, solo que necesita un poco más de atención.

Poco a poco esto avanza... No a la velocidad que me gustaría, pero se hace lo que se puede.

jueves, 10 de enero de 2019

Traducción del bestiario

En "Nanatsu kaze no shima monogatari" además del texto que compone el juego (que realmente no es mucho) existen un par de libros que deben ser traducidos.

Uno de ellos es el bestiario en el que hay una página con la descripción de cada una de las criaturas que habitan la isla.

Para no tener detenida la traducción tiempos tan dilatados he comenzado a traducir el bestiario en mis trayectos en tren hacia el trabajo.



viernes, 14 de agosto de 2015

Revisión de lo traducido




Que no haya entradas, y que en mi vida actual no tenga tiempo de casi nada, no quiere decir que no tenga presente que tengo este proyecto aún pendiente de finiquitar. Lo tengo muy presente y me molesta mucho no poder dedicarle el tiempo necesario de golpe para poderlo acabar ;(.

La verdad es que lo descrito en la entrada anterior, de hace ya tres años, es uno de los hitos más gratificantes que he logrado en este mundo de "toquetear" juegos, y pensar que de poco sirve si no acabo es todo lo contrario, de lo menos gratificante jeje. Pero bueno, cual caracol uno va haciendo camino, y en algún momento llegaré al final.

Hace unos meses decidí modificar los parámetros de estilo de la traducción por unos que creo que la dejan más natural y de paso hacer revisión de lo que tengo traducido. Con esto también me he puesto al día de la historia para poder continuar traduciendo lo que falta con el contexto bien fresco.

En este momento hay un 72% traducido y revisado una primera vez.


Realmente Nanatsu Kaze no Shima Monogatari no tiene mucho texto y podría haberlo traducido muy rápido, y supongo que si sumara el tiempo realmente empleado en traducir no sería mucho, por lo que me he marcado el objetivo de tener una versión jugable para revisar en Diciembre o antes. Creo que es bastante realista si el tiempo libre me lo permite.

Si todo va bien, intentaré que en Enero algunas personas de confianza puedan hacer de beta tester en hardware real mientras yo intento solucionar el siguiente escollo del camino que ya comentaré en otra entrada.

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... ;)