Hallazgos

Lo que el código esconde. Cada cosa lleva la dirección donde está y cómo se sabe: medido en openMSX (con los volcados de RAM o VRAM) o sale del código (leído, sin jugarlo).

Con King Kong 2 al lado, arranca King Kong 2 y le graba la partida

Al encender, p00:5DFF lee con RDSLT las otras ranuras buscando tres firmas (p00:5E78): seis bytes en 0x7FFA (el Game Master, RC-735), la cabecera 'CD' 07 45 FF en 0x4010 (King Kong 2, RC-745) y seis bytes en 0xBFFA (Q*bert, RC-746). Con King Kong 2, 0xC110 = 2 y INIT se va a p09:B880:

  1. lee de la otra ranura el INIT de King Kong 2 (su palabra 0x4002) y copia 256 bytes de allí a 0xF120;
  2. copia 170 bytes suyos (p09:B925) a 0xF220 y pone jp 0xF220 en el gancho de la interrupción;
  3. salta a 0xF120: arranca King Kong 2.

Cada cuadro, el gancho mira si King Kong 2 está jugando (su 0xC100 = 5) y las teclas: con F4, pone Hinotori en las páginas 1 y 2 (ENASLT) y llama a su código de grabar (p09:B9CF); con F5, al de cargar (p09:BA9C). Las dos usan las rutinas de cinta de la BIOS (TAPOON, TAPOUT, TAPION, TAPIN) y piden un nombre de fichero.

Medido en openMSX con Hinotori en la ranura A y King Kong 2 en la B: arranca King Kong 2 (el PC corre en 0xF1xx, 0xFD9F = jp 0xF220), y al pulsar F4 jugando 0xF106 = 1, 0xF107 = 1 y en su pantalla sale «SAVE MODE / INPUT FILE NAME».

Con Q*bert o el Game Master, un menú y la tecla STOP

Con cualquiera de los otros dos, 0xC110 = 1. Al pulsar ESPACIO en el título, p00:46B1 va al estado 9 en vez de empezar: un menú con START GAME, MODIFY STAGE NUMBER y MODIFY PLAYER NUMBER, donde se teclea la fase (0xC115) y las vidas (0xC117) con las teclas de números. Medido en openMSX con Q*bert en la ranura B: el menú, montado aquí desde la ROM, da 0 bytes distintos.

Y la interrupción, con 0xC110 distinto de 0, mira la tecla STOP (p00:4124): el juego se congela y el PSG se calla hasta la siguiente pulsación. Sale del código.

Las contraseñas de truco

Con F1 se pausa; con HOME sale la contraseña de la partida y con HOME otra vez se escribe una. p06:B85E la compara con las 17 cadenas de p06:B8A0; cada cadena va seguida del código que hace, al que salta con jp (hl) (p06:B89A), y cada una vale una vez por partida (0xC600 + n). Se acepta con «CORRECT». Las otras contraseñas son las de verdad: llevan el estado de la partida y una comprobación (p06:B7EE: el XOR de todos los caracteres tiene que dar 0).

contraseñalo que hace el códigomedido
GAOOOOOOOOOOHvidas + 10 (0xC160, en BCD)2 → 12
ILOVEHINOTORI0xC4E2 = 1: cada cuadro, invulnerable (p02:8600)sí
NANDANANDANANDA0xC4E0 = 1: al perder una vida se devuelve (p00:441A)sí
METALSLAVEla vida (0xC845) a 200, el máximodel código
HANEYOKAGAYAKE0xC4E3 = 1: lo que da 1 de vida da 10 (p03:AC8F)sí
FULLITEMDAYOON1 en todos los bytes de los objetos 1-15sí
KINOOOIHITODANE1 en todos los bytes de los objetos 16-33sí
SUPERBALL1 en los objetos 36-40sí
TURBOel objeto 1 a 3sí
HAYAMEel arma (0xC85C, el objeto 4) a 3sí
AUTOSHOTel arma a 3 y 0xC4E1 = 1: cada cuadro, el arma 4 (p02:8F56)sí
ULTRABOXel objeto 9 a 9sí
KOKOWADOKOel objeto 10 a 6sí
DOKODEMOMAPel objeto 11 a 6sí
HOIHOIHOINOHOIel objeto 14, el de saltar de fase, a 9sí
ENDDEMOGAMITAINA0xC4DA = 0x000C: al volver, el estado 12, el finalsí
aaaaaobjetos a 3 e invulnerable (0xC4D1)no se puede escribir

«aaaaa» está en minúsculas, y p06:B5AB pasa a mayúsculas todo lo que se teclea antes de guardarlo: nunca puede coincidir. «Medido» es que se ha tecleado en openMSX (tools/omsx_guion.tcl) y se ha visto el cambio en la RAM.

Las fases dan la vuelta, y solo se sale por un torii

Las columnas de una fase se unen por los lados: saliendo por la derecha de la 2 se entra en la 0, y por la izquierda de la 0 en la 2 (p01:6522, p01:653A). Por arriba, el mapa de cada columna acaba en 0xFF 0x0000: vuelve a la fila 0 (p00:580E). Se sale solo por el torii de la fase. Sale de las tablas y del código.

18 puertas, y un camino que no es recto

La tabla de p09:A269 tiene 18 puertas de seis bytes. Las 0-5 son los torii de las fases y llevan a su sala; las 6-13, las de las salas, llevan a la fase siguiente, salvo que la sala 3 tiene otra que vuelve a la fase 1, la sala 5 otra que vuelve a la fase 2, y la de la sala 6 lleva a la fase 4. Las 14-17 llevan al área 0x18, que no existe: ninguna lista de cosas las usa. El recorrido entero está en El juego. Sale de las tablas.

El salto de fase

F5 abre un mapa de las seis fases (p02:8555). Si se lleva el objeto 14 (0xC884), los cursores eligen una (0xC887) y ESPACIO salta allí, gastando uno (p02:859F); se llega por la columna 1 (p01:65CF). Sale del código.

Otra versión de cinco jefes, que no se usa

De p07:7457 a p08:82B3 hay 18 tiras seguidas en el RLE de los sprites (p00:4A8D), y justo detrás, hasta 0x85B3, 768 bytes de sprites sin comprimir. No los carga nadie: el RLE solo lo abren las listas de cada área (p00:4AD5) y el cargador de las 41 cosas (p00:56C7), y ninguna entrada los nombra; la sonda de lecturas de openMSX tampoco los lee.

Leídos como los sprites que sí se usan (dos patrones seguidos son las dos capas de un sprite de 16 × 16, y los sprites de una figura van por columnas), son siete figuras, y cinco son jefes del juego dibujados de otra manera: las mismas criaturas que las cosas que cargan las salas (p07:6000, áreas 18 a 23), sin un solo sprite en común, ni cambiando las capas ni comparando solo el contorno.

tirasfigurael jefe que carga el juego
0-2, leídas seguidasuna bestia jorobada, 32 × 32, tres fotogramascosa 25
3-7 y 12el monstruo de un ojo, 32 × 32, seis posturas (una hundiéndose)cosa 26, cuatro posturas
8-9la cara, 32 × 32, dos fotogramascosa 27
13-15, leídas seguidasel demonio, 32 × 48, dos fotogramascosa 28
p08:82B3, sin comprimirel guerrero de varios brazos, 32 × 48, dos fotogramascosa 29
10-11algo que sale del suelo con dos garras, 32 × 32ninguno
16-17un guerrero pequeño con cinta en la cabeza, 16 × 32, dos fotogramasninguno

La versión que no se usa de cada jefe, y la que carga el juego

En cada fila, la versión que no se usa y, tras un hueco, la que carga el juego. En dos tonos, como los bichos: el color lo pone el código de cada bicho. Medido en la ROM (tools/figuras.py huerfanas).

Y medido en openMSX: entrando en cada sala (la puerta escrita en 0xC486 y el bit 7 de 0xC485, lo mismo que hace p01:607C al cruzar un torii), la VRAM lleva entero el juego de sprites de su jefe —sala 1, cosa 25; sala 2, la 26; sala 3, la 27; sala 5, la 28; sala 6, la 29— y ni un solo sprite de estas figuras. La sala de la fase 4 no tiene jefe: solo carga la cosa 35 y la llama (tools/figuras.py coteja_salas).

El fénix de la última sala pide cinco joyas

En la sala de la fase 6, a los pocos segundos de entrar, el juego pasa al estado 18 (0xC100 = 0x12) y sale el fénix en una ventana con este mensaje, transcrito de la pantalla:

ガおうよ、怒鬼とたたかうためには、こころのたまが いつつひつようです。 さあ、おゆきなさい。

«Gaou, para luchar contra Doki (怒鬼, el demonio furioso) hacen falta cinco kokoro no tama (joyas del corazón). Ahora, ve.» Medido en openMSX, entrando sin ninguna.

Corregido el 30 de septiembre de 2026: la primera versión de este hallazgo decía que eran figuras que no usa nadie. Los datos no se usan, pero cinco son jefes que sí salen, con otro dibujo.

La cabecera para otros cartuchos

En 0x4010: 'C', 'D' y una lista de direcciones de la RAM de este juego. Ningún código de Hinotori la lee. King Kong 2 lleva otra igual en el mismo sitio, y es lo que Hinotori busca en él para saber que está.

Los créditos del final, y un truco con nombre de diseñador

El final sube los créditos línea a línea por abajo de la pantalla (p06:AF12, con la lista de punteros de p06:AB23). Transcritos de la ROM, tal cual:

PROGRAMMERULTRAMAN ADACHI · ADDE EDA · YOSHIMOTO OHTA · DARENANDA SUZUKI · 27INCH NAGAE
DESIGNERSHU IWAMOTO · KI MIZUTANI · HAAAA MAKITANI · METALSLAVE NAOKI
SOUNDMOAI SASAKI · SG FURUKAWA
SPECIAL THANKS TOPAKEMI KAMIO · ROOM 1013 · AND YOU
PRESENTED BY KONAMI · © KONAMI 1987

METALSLAVE, el apodo de uno de los diseñadores, es también una de las contraseñas de truco: la que llena la vida. Medido en la ROM.