Manuel Pazos Profile picture
Sep 12, 2021 15 tweets 5 min read Read on X
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. Image
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. Image
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? Image
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. Image
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. Image
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) Image
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.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Manuel Pazos

Manuel Pazos Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(