Pitfall! (1984)

Un cartucho de 16 KB de 1984, desmontado byte a byte. Dentro no hay ni un mapa guardado: las 255 pantallas de la selva las va inventando un registro de ocho bits, y los 32 tesoros son exactamente las 32 escenas de un tipo.

Activision · 1984 · Cartucho de 16 KB · MSX1 · página 2 · Volcado 4d899d62…

La ruta óptima es un cálculo, no una partida grabada. Las 189 pantallas del guion salen de recorrer el mundo que genera el cartucho con sus propias reglas, contadas en PANTALLAS CRUZADAS: el reloj, saltar y esquivar no entran, y la escalera se cuenta gratis. Todo lo demás —el listado, las cifras y el mapa— sale del binario y se reproduce con make.

El juego en cifras

100 %del binario explicado
255escenas del mundo
32tesoros escondidos
9.467bytes de código
6.917bytes de datos
0bytes sin identificar

Lo que apareció al desmontarlo

El mundo no está guardado: se genera

No hay un mapa en el cartucho. Las 255 pantallas salen de un solo byte, 0xE222, que es un registro de desplazamiento realimentado: la semilla es 0xC4 y la realimentación, los bits 7, 5, 4 y 3. Al salir por la derecha lo avanza 0xB68F y al salir por la izquierda lo retrocede 0xB69F, que es su inversa exacta.

De esos ocho bits salen las tres decisiones de cada pantalla: dos bits eligen el decorado, tres el tipo de escena y tres la variante. El anillo es máximo —255 estados, el 0x00 se queda fuera y es el que usa la pantalla del título— y la simulación coincide con el emulador en las 255.

Los 32 tesoros son exactamente las 32 escenas de un tipo

El tipo 5 es el único que despacha por la tabla 0xAEA4, que lleva cuatro rutinas repetidas de dos en dos. Como las ocho variantes se reparten a cuatro escenas cada una, sale un tesoro de cada clase ocho veces: 8+8+8+8 = 32, y ni uno más.

Cada rutina escribe en 0xE188 lo que vale el suyo —2, 3, 4 o 5, o sea miles de puntos—, así que el mundo entero guarda 8·(2000+3000+4000+5000) = 112000 puntos. Con los 2000 con los que arranca el marcador, 114000: el techo del juego.

Al tesoro ya cogido se le come la dirección de retorno

Lo recogido se recuerda en 32 bits, 0xE21D-0xE220: un byte por clase de tesoro y un bit por tesoro. Antes de pintar uno, 0xAAFF rota su bit hasta el acarreo.

Y si estaba a uno no salta ni pone una bandera: hace pop hl y ret. Se traga la dirección de retorno del que le llamó, y la rutina que pintaba el tesoro no llega a ejecutarse.

El subterráneo recorre el mundo al triple

El cambio de pantalla lo hace 0x9CBE: cuando la X del jugador llega al borde derecho lo reposiciona al otro lado y avanza el registro de pantalla. Pero avanza uno o tres pasos según el bit 0 de 0xE2EB, que es el que dice si se va por arriba o por el túnel. La rutina de la izquierda es simétrica.

La ruta que se lleva los 32 tesoros baja siempre que puede: 189 pantallas con el túnel contra 238 sin bajar, un 21 % menos. Solo se baja por una escalera, y las escaleras están medidas sobre las 255 capturas: las 63 escenas de tipos 0 y 1.

La liana se pinta con cuentas, no está guardada como dibujo

La liana se pinta en cada cuadro, y la pinta el código: lo que no lleva el cartucho es un dibujo de ella. En cada paso, 0xA471 traza una recta de dieciséis puntos sobre un mapa de bits en 0xE18A y la manda a la memoria de vídeo como patrón de sprite. La inclinación sale de la tabla de 0xA61A, indexada por la fase del balanceo, que va y viene entre 1 y 0x20.

En este cartucho no hay ni una palabra escrita

Ni una cadena, ni un alfabeto, ni un mensaje escondido. La fuente que carga el juego son diez dígitos, los dos puntos y el blanco: con eso se escriben el marcador y el reloj, y no da para una letra.

Todo lo que parece texto —el rótulo de la presentación y el Copyright 1982, 1984 del pie— son dibujos partidos en casillas, una por posición. Por eso buscar cadenas en la ROM no devuelve nada legible, y por eso esa línea del pie, con sus dos fechas, es lo único que el cartucho firma.

Los ocho tipos de escena

Capturas del emulador, pero no de jugar: se le dicta el valor del registro de pantalla y se le pide una foto de cada escena. Aquí hay una de cada tipo, elegida cruzando el valor del registro con la tabla que sale del cartucho: si esa lectura estuviera mal, debajo de cada pie se vería otra cosa.

Tipo 0 · 0xA9AA — hoyos en el suelo, con escalera al subterráneo. El bit 7 del registro de pantalla parte el tipo en dos: un hoyo o tres
Tipo 0 · 0xA9AA — hoyos en el suelo, con escalera al subterráneo. El bit 7 del registro de pantalla parte el tipo en dos: un hoyo o tres
Tipo 1 · 0xA9AA — la otra mitad de los hoyos, y la otra mitad de las escaleras: entre los tipos 0 y 1 están las 63 bajadas que hay
Tipo 1 · 0xA9AA — la otra mitad de los hoyos, y la otra mitad de las escaleras: entre los tipos 0 y 1 están las 63 bajadas que hay
Tipo 2 · 0xAC7C — charca de brea, con liana. El mismo dibujo que el tipo 3 con otro color: escribe 1B 1B 1B en la tabla de colores
Tipo 2 · 0xAC7C — charca de brea, con liana. El mismo dibujo que el tipo 3 con otro color: escribe 1B 1B 1B en la tabla de colores
Tipo 3 · 0xAC6B — charca de agua, que es el parche de color deshecho: 7B 7B 7B donde el tipo 2 ponía 1B 1B 1B, y liana también
Tipo 3 · 0xAC6B — charca de agua, que es el parche de color deshecho: 7B 7B 7B donde el tipo 2 ponía 1B 1B 1B, y liana también
Tipo 4 · 0xAD75 — laguna con tres cocodrilos: tres bloques de cuatro bytes en el código, tres cocodrilos en la pantalla. La mitad de estas escenas llevan liana, y no la decide el tipo sino la variante
Tipo 4 · 0xAD75 — laguna con tres cocodrilos: tres bloques de cuatro bytes en el código, tres cocodrilos en la pantalla. La mitad de estas escenas llevan liana, y no la decide el tipo sino la variante
Tipo 5 · 0xADF6 — la escena del tesoro, la única que puntúa. Son 32 en el anillo, ocho de cada valor
Tipo 5 · 0xADF6 — la escena del tesoro, la única que puntúa. Son 32 en el anillo, ocho de cada valor
Tipo 6 · 0xAE04 — brea con liana, y la liana se traza punto a punto en cada paso
Tipo 6 · 0xAE04 — brea con liana, y la liana se traza punto a punto en cada paso
Tipo 7 · 0xADE8 — agua SIN liana: es el único de la familia de la charca que no llama a monta_la_liana, ni de frente ni por tabla
Tipo 7 · 0xADE8 — agua SIN liana: es el único de la familia de la charca que no llama a monta_la_liana, ni de frente ni por tabla