TUTORIAL: MODIFICAR FUENTE DE JUEGOS GBA (PARTE I)

OP

Tailo

Advanced Newbie
Mensajes
96
Calificaciones
62 5
Puntos
7
#1
MODIFICAR FUENTE PARA AGREGAR CARACTERES EN JUEGOS DE GBA (PARTE 1)




Para este tutorial usaré:
  • VisaualBoy Advanced
  • CrystalTile2
  • HxD
  • Rom: Yu-Gi-Oh! Gx – Duel Academy
*No pondré links de descarga porque todo lo podréis encontrar en infinidad de sitios y veo innecesario resubirlos a algún servidor o redirigiros a “x” página. Si os gusta el Romhacking seguramente tengáis ya estos programas y si no, descargáoslo de la página que soláis frecuentar.

Uno de los motivos principales por el cual alguien decide realizar un “hackrom” de un juego es por querer traducirlo a su idioma natal.

Normalmente se parte de un juego cuyo idioma es el inglés, idioma en el que está el Rom que usaré para los ejemplos. Podría ser cualquier otro, como el japonés, pero aunque el proceso sea similar, requiere de más trabajo simplemente por ser ese idioma ya que se complica la búsqueda de texto, traducción, longitud de palabras, etc.

Al tratarse de un idioma distinto, puede darse el caso de que la fuente no contenga los caracteres necesarios para que podamos traducirlo de una forma correcta ortográficamente hablando. Escribir correcto cuidando la ortografía, eligiendo las palabras o expresiones correctas y usar los signos de puntuación cuando se debe, es de agradecer y le da una calidad extra al resultado final.

Pero ¿qué es la fuente? Desconozco si tiene otros nombres, yo la llamo así, y no es más que el alfabeto junto con los signos de puntuación.

Como muchos sabrán, el inglés carece de vocales tildadas, diéresis y los signos de apertura de interrogación y exclamación. Las vocales tildadas no forman parte como tal del alfabeto, pero el juego las cargas gráficamente y necesita saber cómo dibujarlas en pantalla, por lo que debe contener los datos.

Aunque el juego no se haya traducido al español, puede darse el caso de que la fuente contenga los caracteres que necesitamos, tal vez porque en un principio pretendían lanzarlo en otros idiomas y al final no lo hicieron, o porque simplemente usaron ese recurso de otro juego anterior y lo dejaron tal cual, como es el caso del DBZ: Buu’s Fury.

Pero en el Rom que voy a usar, no es así. Así que toca trabajar.

Desconozco si hay más formas de las que yo voy a explicar para que un Rom almacene la(s) fuente(s). Lo pongo también en plural porque generalmente usan más de una fuente distinta. Esto es porque una la usan para los textos de los diálogos, otra la pueden usar para los textos de los menús, que suelen tener una tipografía distinta, etc.

A los que explicaré, los llamaremos “Método 1” y “Método 2”. (Me he exprimido el coco, eh?) El segundo método lo explicaré en una segunda parte del tutorial para que no se haga muy extenso.

Método 1:

Este método de almacenar las fuentes es el que usa el juego que nos ocupa.

Suele distinguirse del Método 2, en que la tipografía que usa son puntitos (píxeles) que se unen y van formando el caracter. Pero, ¿cómo podemos verlos si en un editor hexadecimal solo hay números? Aquí es donde entra en juego “Crystaltile2”. Cabe decir, que no es estrictamente necesario porque desde un editor hexadecimal, si conoces y sabes cómo programar los caracteres con código, los puedes buscar y modificar igualmente. Pero este método no lo explicaré ya que puede resultar muy lioso y tedioso, además, para eso tenemos CT2, con el que solo tendremos que redibujar los caracteres.

Abramos CT2 y carguemos el Rom. Acto seguido id a “View” y clicáis en “Tile Viewer”. Un atajo es pulsar sobre el icono de una cuadrícula con una montaña y el sol dibujado. Una vez hecho esto, en el panel izquierdo se muestra unos ajustes que debemos configurar de la siguiente manera:

Ajustes genéricos (Para cualquier Rom que use este sistema de almacenamiento de fuente):

Width : 16

Height: 16

Tile form: NDS 1bpp

Ajustes específicos (Estos ajustes pueden variar según el juego. Son ajustes de orientación, por lo que dependerá de cómo programaron los caracteres para poder visualizarlos correctamente):

Offset: 1435D80. Este es el offset donde comienzan los caracteres de los textos de los diálogos. Si os desplazáis hacia arriba o abajo, podéis comprobar que hay más fuentes. La forma de comprobar a qué textos pertenecen es tan simple como escoger una letra, preferiblemente una vocal y que sea muy usada, “a” o “e” y borrarla o modificarla. Tras guardar los cambios, abrid el juego con el emulador y comprobad en qué textos se ha producido el cambio. Puede ser algo tedioso, pero no me sé otro método. No obstante, por el tamaño de las letras y su forma, os podéis hacer una idea de cuáles son los textos para los que son usadas.

La forma de saber en qué Ofsset se encuentran, si no sabéis programarlas mediante código y poder buscarlas en un editor hex, cosa que suele ser lo normal ya que primero hay que saber como están configuradas, es una técnica muy fácil y rudimentaria. Hacer “scroll” por el documento xD. Lo siento, es así, yo al menos no conozco un remedio mágico para encontrar la fuente de otra forma. De todas formas, tras realizar los ajustes genéricos y mover la barra de desplazamiento poco a poco hacia abajo, no vayáis muy deprisa, no tardaréis en identificar dónde se encuentran los caracteres, ya que notaréis como empezaréis a ver letras dispersadas y recortadas. Para poder verlas bien debéis seguir modificando los ajustes hasta poder verlas correctamente. No creo que os lleve más de cinco minutos.

Angle: +90º

Flip horizontal: Active

Hay más ajustes, pero como he dicho, estos son los que hay que configurar para ver correctamente los caracteres en este rom.

Cuando hayáis terminado de ajustar, os debería de quedar así:



Sí, se que están tumbadas, y esto lo podéis arreglar poniendo el Angle en 0º, pero habrá algunos caracteres que no se verán completos, aunque desplazándote por el documento con los cursores, lo puedes arreglar, pero se distorsionarán otros. Ya como a cada uno le resulte más cómo trabajar. Estos caracteres vienen así porque es una forma de encriptación de my bajo nivel.

Bien, ahora llega el momento de decidir qué caracteres de los que hay pueden ser sustituidos por los que nos hacen falta.

Si nos fijamos, hay símbolos que nunca usamos en la escritura o muy rara vez se usan e incluso pueden ser sustituidos por otros. Los caracteres que modifiquéis serán a vuestro criterio y si más adelante veis que deberíais haber modificado otro, siempre lo podréis volver a su estado original y modificar otro repitiendo todo este proceso.

Para dibujar el carácter, tan solo debéis hacer doble clic en el tile (cuadraditos en los que está dividida la pantalla) en el que se encuentre el carácter que queréis modificar y en pantalla sólo os quedará ese tile. Con el botón derecho del ratón pintáis y con el izquierdo borráis. Algunos caracteres están divididos entre dos tiles, así que lo tendréis que dibujar por partes. Para volver a la pantalla donde aparecen todos los caracteres, pulsad sobre el icono de la cuadrícula con la montañita dibujada que comenté al principio.

Intentad seguir el mismo estilo de tipografía y que las vocales tildadas sean idénticas a las que no lo están. También debéis tener en cuenta que hay un tamaño máximo para cada letra. Creo recordar que para esta fuente eran 5 x10 píxeles. Por lo que, a la hora de introducir las vocales mayúsculas tildadas, algunas se os quedarán más chicas de lo normal. No os preocupéis porque es totalmente normal. Hay juegos traducidos oficialmente al español a los que les ocurre lo mismo. Lo que se suele hacer es diferenciarlas de las minúsculas por tener otro diseño. En nuestro caso, la “I” y la “O”, se quedarían exactamente iguales, pero no nos preocupa porque no creo que usemos palabras que empiecen por esas vocales tildadas.

Cuando terminéis, depende de qué caracteres hayáis cambiado, os debería quedar algo así:


Los caracteres que yo he cambiado son los siguientes:

& x ¿ | x ¡ ~ x ñ ^ x á ` x í ' x é = x ó _ x ú @ x Á + x Ú * x É

Es importante que anotéis estos cambios porque a la hora de escribir el texto, debéis de escribir el carácter que hayáis cambiado para que aparezca el que habéis puesto en su lugar.

Ejemplo: Para que aparezca “Esperábamos”, debéis escribir “Esper^bamos”.

Hay caracteres que no he añadido como la “Ñ” y la diéreis porque no creo que se llegue usar. Si se diera el caso, tan solo hay que añadirlas.

Una vez terminado el trabajo, guardáis y abrís el rom modificado con un editor Hex. En mi caso “HxD”. Tenemos la suerte de que este juego trae texto legible, por lo que buscaremos alguna frase que sepamos que aparecerá pronto. En este caso, un texto del diálogo del director de la academia al empezar la partida. Así que, vamos a Search, Find, en “Datatype” seleccionad Text-string y en “Search for” escribid “Welcome, elite duelists! Os llevará al Offset: 1409c2c.

El siguiente paso para comprobar que lo hemos hecho bien es SUSTITUIR y no BORRAR ese texto y poner en su lugar los caracteres que hemos modificado.

Tras guardar los cambios, iniciad el juego con vuestro emulador y cuando lleguéis al diálogo en cuestión, debería salir, según el orden que lo hayáis escrito, algo así:


Si el resultado no es correcto, revisad lo que hayáis hecho y repetid el proceso.



Hasta aquí esta primera parte del tutorial.



¡Saludos!
 
Última edición:
Mensajes
1.069
Calificaciones
298 9 1
Puntos
75
Ubicación
San Diego,CA
#2
@Tailo gracias por el tutorial >3
 
Mensajes
54
Calificaciones
11 1
Puntos
2
#3
Yeeaa thanks for the very interesting and useful tutorial at the same time for those beginners like me. The tutorial helped me a lot and I still want to translate Good tutorial very useful and interesting thanks again brother
 
OP

Tailo

Advanced Newbie
Mensajes
96
Calificaciones
62 5
Puntos
7
#4
Yeeaa thanks for the very interesting and useful tutorial at the same time for those beginners like me. The tutorial helped me a lot and I still want to translate Good tutorial very useful and interesting thanks again brother
No hay de qué, pero tengo una duda. Te he visto en otros temas, ¿Por qué respondes en inglés si hablas español?
 
Mensajes
54
Calificaciones
11 1
Puntos
2
#5
No hay de qué, pero tengo una duda. Te he visto en otros temas, ¿Por qué respondes en inglés si hablas español?
what happens is that I'm practicing my writing since I speak English But I do not know how to write it, so I take the opportunity to learn
 
OP

Tailo

Advanced Newbie
Mensajes
96
Calificaciones
62 5
Puntos
7
#6
what happens is that I'm practicing my writing since I speak English But I do not know how to write it, so I take the opportunity to learn
Ok. Era solo curiosidad.
 
Arriba Pie