Modificando DBGT: Transformation - Backgrounds y Mugshots

 Imágenes a modificar:





objetivos

  • Traducir el título del juego y dar color a Baby y Gral. Reed
  • Traducir "The End" agregando al Tileset el caracter "¿"
  • Ponerle peluca a Goku
  • Liposucción de orejas a Piccolo
  • Arreglar esos horribles tiles verdes junto al trono de Don Kee
  • Restar contraste a Imegga
Contexto:
La dificultad de realizar estas modificaciones no consiste en redibujar. Es cortesía de las paletas de colores. Tal vez no sepáis por qué, pero para eso escribo este blog, para que sirva un poco de consuelo para mí y de información/aprendizaje para vosotros. 

Como sabréis, y si no lo sabéis lo sabréis ahora,  GBA puede trabajar con paletas desde 16 hasta 256 colores, siendo estas últimas más utilizadas para backgrounds, aunque también para sprites OBJ (objetos). El meollo del asunto está en que estas imágenes necesitan de un mapeado para ser dibujadas en pantalla, que no es otra cosa que un mapa donde se indica dónde va cada Tile, si se repite en algún otro sitio, si se verá invertido vertical u horizontalmente, y además, qué paleta usa cada uno de esos tiles. Esto último es lo que hace más tedioso estas modificaciones.

Pero para que lo entendáis bien, hay que rizar un poco más el rizo. Hay paletas de 256 colores divididas en 16 paletas de 16 colores (15 si no tenemos en cuenta el color "transparente"). Para verlo de una forma más clara, el que sería el color número 18 en una paleta de 256 sin dividir, sería de nuevo el 3 en la segunda paleta de color de 16 en nuestra paleta de 256 dividida. De ahí a que a una imagen que use este tipo de paletas haya que indiciarle qué paleta de las 16 que conforman la de 256 usa cada Tile, como es el caso de nuestro querido juego el "Transformation".😁(sonrisa irónica).

¿Y por qué narices hacen esto? Pues la respuesta es para ganar espacio en la ROM. Una imagen que usa una paleta de 256 colores ocupa el doble de espacio que una que use una paleta de 16. Los que hayáis toqueteado un poco el Tile Molester para intentar buscar sprites y modificarlos en cualquier ROM os sonará configurar el códec a 4bpp (4 bits por píxel), o lo que es lo mismo, un sprite dibujado con 16 colores. Por tanto, un sprite que use una paleta de 256 colores necesitará de 8 bits para identificar el color en cada píxel. Y esta es la razón por la que prácticamente todos los juegos usen sprites 4bbp.

Esto está muy para ganar bytes, pero tiene su coste, y es que las paletas deben tener los colores estratégicamente distribuidos para no crear "errores" de coloreado. Lo veréis con el siguiente ejemplo:


He puesto cuadrados rojos en los Tiles que cambian el tono de color del objeto al que dan color. Esta imagen realmente no está tan mal, de hecho, en algunos debes fijarte mucho o ampliar bastante para notarlo, pero me he encontrado casos en otros juegos bastante cantosos.

Al estar cada tile limitado a 16 colores, se debe tener en cuenta que haya colores similares o incluso iguales a  los de otras paletas para cuando se de el caso de que un tile que necesite de ciertos colores y otro contiguo a él que necesite de otros y además compartan algún elemento de la imagen, pueda este ser coloreado de forma lo más correcta posible.

En la mayoría de casos se pueden mejorar estos cambios de tonos, pero hay que tener claro qué colores se van a cambiar y si se van a sustituir las paletas que usan determinados tiles por otras, etc.

Cuando se trata solo de arreglar colores puede resultar algo más fácil, pero cuando vas añadir elementos o incluso restarlos como en el caso que nos compete (pelo de Goku y oreja de Piccolo) se tiene que tener en cuenta los colores y paletas que les asignarán a esos Tiles, reescribir todo el Tileset y mapeado.

En cuanto a este último ejemplo, se ha tenido que ampliar el Tileset del mismo, pues si se quería traducir  a "¿FIN?", debía añadirse los Tiles del caracter "¿" ya que no servía simplemente girar "?" puesto que los colores grises del caracter quedarían arriba y no abajo.

Por último, para corregir la paleta del planeta Imegga, simplemente he reducido un 50% el contraste de sus azules. Esto normalmente no conlleva mucho trabajo, pero para mi sorpresa, las paletas de los mapas en este juego estaban almacenados de una forma que no había visto hasta ahora.

Resultados: