Manuel Pazos Profile picture
Retro game developer & archeologist. Mutants from the deep, @AbadiaExtensum, Metal Gear disassembly, Alien 8/Knight Lore MSX2, MFR SCC+ SD https://t.co/FrfTd7JvgH

Sep 12, 2021, 15 tweets

No deja de sorprenderme que 35 años después, los juegos de Konami sigan escondiendo secretos.
Algunos juegos incluyen al final de la ROM un bloque de bytes con el RC7xx del juego y su título en katakana.
Os explico cómo lo he descubierto y qué he encontrado.
🧵 #MSX #KONAMI

Hace ya tiempo me di cuenta que algunos juegos tenían un extraño bloque de bytes al final, que no era usado o accedido en ninguna parte del código. Supuse que sería algún tipo de firma que usaba Konami para identificar a sus juegos, y no le di más vueltas.

Esta semana, volqué todos los cartuchos del Yie Ar Kung Fu que tengo buscando la última versión del juego. Uno de los cartuchos tenía esa versión y curiosamente era la única con esos extraños bytes al final.
El último byte (#AA) coincidía, pero el resto era distinto.

Comparando los juegos que tenían esos bytes al final, me di cuenta que el Yie Ar Kung Fu 1 y el 2 eran muy parecidos.
El Yie Ar Kung Fu 2 tenía un par de bytes más #32 #00 ("2 ") Hmmm... ¿Tiene algo que ver con el título?

Las piezas empezaban a encajar.
El anteúltimo byte es el código RC7xx en formato BCD.
El anterior la longitud del nombre.
Pero, ¿cómo está codificado?
El "2" es código ASCII. Pero el resto no puede ser ASCII porque no cabe. "YIE AR KUNG FU" son 14 bytes y solo quedan 10.

Mirando la balda de juegos veo el lomo del Yie Ar Kung Fu. Una de las versiones tiene el nombre escrito en katakana. Tiene 10 caracteres. ¡Bingo! Coincide con el número de bytes que faltaban.

Con un simple programa en BASIC saqué todos los caracteres y el orden en el que están. ¡Aplicando un desplazamiento el título (casi) coincide! Los símbolos "・" y "ー" usan valores especiales.

Para facilitar la conversión me hice una pequeña herramienta en Java que muestra los títulos.

Esta es la lista que he generado hasta ahora (el Comic Bakery es un caso especial porque no tiene el nombre en katakana)

Aparentemente esta información la empezaron a añadir a partir del Konami's Baseball. Los juegos anteriores que también la tienen son reediciones publicadas posteriormente.
El The Maze of Galious fue el último juego en incluirla.

Tanto el Goemon como el Galious usaron codificaciones propias y distintas del resto de juegos.

El tipo de codificación/desplazamiento quizá dependía del ordenador que usaron para escribir ese texto. (¿Un HP 64000?)

Para los que quieran investigar, os dejo la siguiente información:
Estructura de los datos finales:
-00: #AA (Token)
-01: Número RC7xx en formato BCD
-02: Número de bytes usados para el nombre
-03: Nombre en katakana (escrito al revés)

Desplazamientos usados en los títulos:
- Comic Backery: sin codificación #41 -> "A"
- Mayoría de juegos: #80 -> "ア"
- Goemon: #30 -> "ア"
- The Maze of Galious: #BA -> "ア"

En los MegaROM los datos se encuentran en el offset #7FFF

Hipótesis final: quizá decidieron incluir esta información al empezar a desarrollar el Game Master. Esto les permitiría identificar los juegos y mostrar su título incluso en juegos publicados posteriormente. Pero el título en katakana solo tendría sentido para el mercado japonés.

Durante el desarrollo del Game Master empezaron a añadir una cabecera a todas sus ROMs para incluir el RC7xx del juego, esta vez sin el título. Este nuevo sistema lo mantendrían hasta su último juego de MSX.

Tal y como me ha comentado @araubiMSX, el Game Master inicialmente era una herramienta interna de Konami que usaba para probar y depurar los juegos. Entonces tiene sentido que los títulos estuvieran en katakana, ya que solo los iban a ver ellos. En la versión "pública" no se ven.

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling