Aquí no hay ni una captura de pantalla. Todas las imágenes están dibujadas repitiendo lo que hace el cartucho: se reconstruye la memoria de vídeo con sus mismas copias y luego se repiten las llamadas que pintan cada cosa. Son las piezas que dibujan las rutinas, no pantallas de partida. Lo demás —el listado y las cifras— sale del binario y se reproduce con make.
INIT escribe jp 0x4038 en el gancho H.KEYI y se queda en un jr $ de dos bytes, en 0x40A7. Ese bucle vacío es el programa principal: a partir de ahí todo —el sonido, los mandos y un paso del juego— pasa dentro de la interrupción, un paso por fotograma.
Y como el juego es la interrupción, hace falta un candado: 0xE005. Si un paso tarda más de un fotograma, la interrupción siguiente toca la música y se va sin ejecutar nada más, así que la partida se ralentiza pero la música no se corta.
callPara saltar a una dirección calculada, 0x40A9 hace pop hl y usa la dirección de retorno: la tabla de palabras está pegada detrás del propio call. Nunca vuelve. Hay cinco tablas así, del estado del juego a lo que está haciendo el jugador.
El motor que dibuja el decorado, 0x5F65, hace lo mismo con parámetros: los seis bytes que siguen a su call son dos punteros y una dirección de vídeo, y el push hl devuelve el control justo detrás de ellos. Se le llama diecinueve veces, y cuatro de ellas para escribir colores en vez de tiles.
No hay mapa. La pantalla es un contador, 0xE054, que sube o baja de uno en uno —y al pasar de 255 cae al 56—, y lo que hay dentro sale de dos tablas de treinta y dos bytes: una dice los obstáculos fijos y la otra los que se mueven, indexadas por el contador módulo 32.
Encima, la fase retoca la pareja: la 1 se queda sin arañas ni abeja, la 3 sin abeja, y toda pantalla cuyo número acabe en 0, 4 u 8 sale vacía. Las acabadas en 0 son las metas, y llevan el rótulo CHILD PARK.
No hay daño por caída en ninguna parte. Hay un byte, 0xE13A, que se escribe al pulsar el botón de saltar: la altura desde la que saltaste, más dieciséis. Desde el suelo, eso es el suelo.
Pero si saltas desde una tabla de surtidor de en medio, se guarda la altura de la tabla sin sumarle nada, y a partir de ahí aterrizar dieciséis o diecisiete puntos por debajo mata, estés donde estés en la pantalla. El mismo aterrizaje es inofensivo o mortal según dónde empezara el salto.
No hay una velocidad vertical en el cartucho. Un salto es una lista de incrementos entre un 0xFE y un 0xFF, que se recorre en un sentido restando —subiendo, cada vez menos— y en el otro sumando. El 0xFF le da la vuelta y el 0xFE lo termina.
El salto normal son dieciséis bytes: 4 4 3 3 3 3 2 2 2 2 1 1 1 1 0 0. Treinta y dos puntos de altura, dieciséis fotogramas para arriba y dieciséis para abajo, y la caída es la subida leída al revés porque son los mismos bytes.
En 0x447E, con el código de tile siendo el ASCII de la letra: ALL STAGE CLEAR, PROGRAM A.H Y.I, SOUND Y.O, CG R.S C.K. Ni un nombre completo: iniciales.
Se pintan en un solo sitio, 0x445B, cuando la fase da la vuelta de 99 a 00. Aparte de eso, en el cartucho no hay más firma que el KONAMI 1984 del título y del pie del marcador.
Cada una de estas imágenes es una rutina del cartucho repetida fuera de él: los tiles se cargan como los carga la ROM y luego se llama a lo que los pinta, con sus mismos punteros y sus mismas direcciones de vídeo. Debajo de cada pie está la dirección de la rutina que la dibuja.