Kabosu - Creando cosas
Publicado: 2025-03-25
Etiquetas: Game Boy, Proyectos
Hace más de un año hablé sobre un programa que había escrito para convertir las ROMs de Game Boy en imágenes PNG para así ver sus gráficos. No había utilizado demasiado el programa desde entonces pero hace unas semanas recibí el dispositivo que necesitaba paga continuar con mi plan: un GBxCart RW.
Este cacharro que se puede ver en la foto anterior se conecta por USB al ordenador y tiene una ranura para introducir juegos de Game Boy o Game Boy Advance. Permite copiar las ROMs de los cartuchos, leer y escribir las partidas guardadas entre otras cosas. Yo lo he usado para copiarme las ROMs de algunos juegos que tengo. Mi intención es, poco a poco, hacer copias de todos.
Una de las cosas que más me fascina del píxel art son las fuentes. Cómo una misma letra se puede representar de tantas formas distintas en 8x8 caracteres y dos colores. Este interés me vino tras adquirir y leer el libro Arcade Game Typography: The Art Of Pixel Type de Toshi Omagari. Es un libro precioso que recopila fuentes de un montón de juegos arcade.
Dicho esto, una de las primeras cosas que hice con las ROMs que tenía fue extraer las fuentes que tenían almacenadas. Por experiencia sé que muchos juegos de la primera hornada de Game Boy usan la misma fuente que yo suelo llamar "Tetris" porque hace años la extraje de ahí pero con el paso de los años se empezó a ver más variedad de fuentes y me gustaría tenerlas a mano para admirarlas. Por supuesto me voy a limitar a extraer fuentes de juegos que poseo físicamente. Esto no debería ser un problema porque en el trastero tengo cientos de cartuchos de Game Boy.
Esta es la fuente "Tetris" que uso en todos mis juegos de estética Game Boy desde hace años. La saqué de las ROMs de Tetris y Super Mario Land y con el tiempo he ido añadiendo yo mismo letras acentuadas, el euro y cosas así.
Nota: tengo entendido que no es correcto decir "fuente" para hablar de tipos de letras en los ordenadores porque fuente es otra cosa pero es un término muy común y creo que todo el mundo me entiende. Las personas que sepan más de diseño gráfico a lo mejor se ríen de mi incultura pero me van a entender igual.
Mi programa convierte la ROM en gráficos de 4 colores usando el formato de Game Boy. En el archivo PNG resultante podía identificar las letras y los números que formaban la fuente del juego pero, en algunos casos, los caracteres se veían un poco mal. Estaban como empequeñecidos y tenía pixels de otros colores. La razón era que, el equipo de desarrollo había codificado los símbolos utilizando en binario, 0 para el fondo y 1 para el carácter, en vez de usar 2 bits por pixel para tener 4 colores. Tiene sentido porque si las fuentes tienen solo dos colores para qué ocupar el doble de espacio, ¿no? El único problema que creo que tiene usar el binario es que, para mostrar la fuente en pantalla, hay que convertirla al formato de 2 bits.
El otro día actualicé mi programa para que, al leer una ROM, generase dos imágenes: una convirtiendo los datos en un PNG con dos colores y otra con 4 como hasta ahora. Gracias a eso ya pude encontrar fácilmente las fuentes de 6 juegos con los que estoy haciendo pruebas.
En la imagen anterior se puede ver a simple vista dónde están las letras y números. Mi proceso de "extracción" es manual: en un editor gráfico copio los trozos de la imagen que tienen letras a una nueva imagen. Me gustaría en un futuro automatizarlo de alguna manera pero de momento no se me ha ocurrido cómo hacerlo.
De momento he trabajado con 6 ROMs que había extraído con el GBxCart. 2 de ellas tienen textos en japonés porque quería ver cómo se veían las fuentes con hiragana y katakana. Me parece aún más increíble que en 8x8 se puedan escribir los caracteres japoneses, algunos de los cuales son bastante más complicados que nuestras letras latinas.
Una cosa que me suelo encontrar cuando analizo las ROMs de juegos de Game Boy es que a veces hay letras que no están en el cartucho. Por ejemplo, la siguiente imagen contiene todos los caracteres que pude encontrar en el Motocross Maniacs. Incluyeron la cantidad mínima de letras para los pocos mensajes que aparecen en el juego.
Incluso en juegos con más texto si alguna letra no se usaba pues no la metían. Esta es la fuente de Burai Fighter Deluxe. Están todas las letras excepto la Z. Eso sí, el símbolo de copyright no falta en ningún juego.
El juego de Rogger Rabbit sí que tiene mucho texto. Además venía en una ROM más grande que los anteriores por lo que incluyeron todo el abecedario y un montón de símbolos. Es más: debían ir muy bien de espacio porque hay bastante símbolos repetidos. Incluso los mismos caracteres con diferentes colores que creo que sería innecesario porque simplemente podían haber cambiado la paleta en tiempo de ejecución.
Para terminar, una fuente en en japonés. En este caso del Puzzle Boy. Incluye todo el silabario hiragana pero de katakana solo trae unos pocos caracteres que deben ser los que realmente se usan en el juego. Si necesitan escribir algún símbolo con dakuten (゛), lo que hacían era poner un tile arriba con ese símbolo. Así que no tenían que almacenar caracteres como か y su variante が.