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. 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 0x419B. Ese bucle vacío es el programa principal: a partir de ahí todo —el sonido, los sprites, los mandos y un paso del juego— pasa dentro de la interrupción, un paso por fotograma, y 0xE005 es el candado que hace que un paso lento no corte la música.
0x7253 elige la posición del ? restando un azar de 0 a 15 al valor de la primera cifra de la ecuación. Con un 9 delante puede caer en cualquiera de las diez primeras posiciones; con un 1 delante, solo en el primer operando.
Medido en el emulador con 400 ecuaciones del nivel 1: cero excepciones, 238 con el ? en las dos primeras posiciones y solo 67 en el resultado.
Lo único que distingue un nivel de otro son de tres a cinco bytes en 0x712B: 0A 0E (+ =), 0B 0E (− =), 0D 0E (÷ =), 0C 0E (× =) y 0C 10 0A 11 0E (× ( + ) =). El generador decide el resto al ver el símbolo, en BCD: la división se construye desde el cociente y la multiplicación son sumas repetidas.
Y un azar de guiones alternativos está anulado con un xor a (0x6FBC): siempre el primero.
Se cogen saltando contra ellas (100 puntos) y con el botón se tiran hacia donde se mira, por una de las dos parábolas de 0x742F/0x7451. Una fruta que va por el aire mata lo que toque: al cangrejo, que enseña un 500, o al mono.
Solo el tercer cangrejo salta (0x616F), así que solo él coge frutas y las tira, y por eso la fruta que lleva un cangrejo sigue siempre al sprite de 0xE0C8: el código lo da por hecho.
INIT copia seis sprites a 0x1800 y luego los 22 a 0x18C0 sin volver a cargar HL: COPIA_A_VRAM lo conserva. El juego usa la segunda tanda —el mono es el patrón 0x18, el cangrejo el 0x30— y los seis primeros se pisan luego con el juego de sprites que toque: normal, con la fruta en la cabeza o con la tarjeta.
El profesor de arriba a la derecha es el mono del jugador en rojo oscuro, y el que trae la respuesta en globo al tercer fallo, el mismo mono trepando, espejado, en cyan.
Las tres entradas del 0xA1 en la tabla de pistas apuntan al mismo 0xFF: tres pistas mudas que callan los tres canales. Y los efectos son del mono: un actor que no sea el mono solo puede pedir el 9, el del cangrejo que se muere (0x78F7). Los pasos y saltos de los cangrejos no suenan.
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.