Yo hurgué hará como un año, me dio dolores de cabeza, lo aparqué y he vuelto. Ya sé que es tipo gramola pero claro, hay códigos en medio del texto que ahora debo descubrir de qué van. En fin, como hoy me siento generoso en las explicaciones (dudo que mucha gente tenga las ganas de ponerse a aprender, aquí no hay métodos universales, aunque en la GBA y la NDS las compresiones dejaron de ser un problema en la mayoría de casos gracias a CUE).
Voy a contar cosas que sé hasta el momento, por si alguien realmente quiere darse una oportunidad a sí mismo:
1.- El texto no aparece tal cual en el juego, de hecho es ilegible. Ni tablas ni búsquedas relativas ni leches, no se ve un carajo excepto los menús y mal. Eso siempre te hace sospechar que hay compresiones por medio, y si hablamos de GBA pues es casi seguro que es una LZ típica.
2.- ¿Dónde puñetas buscar? Pues hay muchos programas que de por sí incluyen un buscador de la compresión típica. Cuando se comprime textos, no es descabellado pensar que hay algún tipo de tabla asociada a ellos. No es normal general, pero siguiendo el principio de la navaja de Ockham (y tiro porque me toca) pues no está de más probar a ver si suena la flauta.
3.- Agitando todo lo anterior, descubro (oh, sorpresa) que hay muchos trozos comprimidos seguidos en una zona del juego. Descomprimo unos cuantos y descubro que tienen cabecera similar y gráficos no son, y como soy tan ingenuo, puse codificación japonesa y se veía texto.
4.- Busco en las inmediaciones de estos ficheros a ver si encuentro una tabla y está justo delante, compruebo y efectivamente, marcan el inicio de la cabecera de cada uno. Yo para estudiarlo lo saqué de la ROM en un archivo, te pongo una captura:
Enlace
5.- Estudio la tabla para ver qué estructura sigue y como se ve cada 4 hexadecimal a partir de donde señalo te da el primer fichero y su extensión en líneas en la segunda (invertidos). Sabido esto, se programa uno un extractor como buenamente pueda, porque aunque parecido cada juego puede hacer variantes. Nadie te lo va a hacer, aprende tú a hacerlo. Yo aprendí a programar lo esencial: aprendes a cargar un archivo, a crear otro, a leer en el primero, copiar en el segundo,
hacer cosas con lo que lees del primero, hacer búcles...
6.- Una vez hecho el extractor y ver que anda, hay que hacer un empacador, que es justo la operación contraria. El resultado debe ser, si no tocas nada, exactamente el archivo de partida. Por comodidad puedes primero generar la tabla en un archivo, ver si coincide con la original (HxD es un editor que uso para estas labores pues en Análisis -> Comparar archivos, permite comparar archivos aunque sean de distinta longitud). Una vez que la tabla sale perfecta, pues pasas a generar el resto del fichero que contiene los extraídos previamente (que se llaman por comodidad 0000.bin, 0001.bin, 0002.bin...) y comparas el original con este y si coincide vas por buen camino.
7.- Una vez que ya se tiene extractor/empacador pasamos a modificar algún fichero. En este caso si sólo queremos ver que nuestro programa anda bien y dado que hay versión japonesa, si sustituyes un archivo por el homólogo japonés, como la estructura es la misma debería funcionar el juego (la codificación es japonesa en la USA, ¿acaso sorprende esto?). Efectivamente funcionó.
8.- Ahora queremos poner algo en español pero al modificar un fichero el juego casca irremediablemente... Y esto se debe a que en cada fichero hay ciertos hexadecimales entre los textos que cambian de la japonesa a la usa. En eso ando.
Por supuesto, esta narración supone resumir intentonas y roturas de juego múltiples. No temas que yo esté con el Summon Night Swordcraft Story 1, tienes el 2, tampoco quiere decir que aún lo tenga hecho para traducir, me queda solventar lo anterior y luego buscar un método para traducir con comodidad. La cuestión es, ¿te vas a tomar la molestia de pelearlo?