Antarctic Adventure (1984)

Un cartucho de 16 KB de 1984, desmontado byte a byte. Dentro hay un pingüino que cruza la Antártida entre diez bases de investigación, una partida de demostración que va grabada como un pianola, y una base a la que no se llega nunca.

Konami · 1984 · Cartucho de 16 KB · MSX1 · RC-701 · Volcado europeo

El juego en cifras

100%del binario explicado
116rutinas identificadas
10fases del recorrido
5.947bytes de código
10.437bytes de datos
0bytes sin identificar

Lo que apareció al desmontarlo

La partida de demostración va grabada

Lo que se ve cuando el juego se deja solo no lo juega ninguna inteligencia: son 64 bytes en 0x584A que llevan exactamente los mismos bits que devuelve el joystick, y el lector de mandos coge uno cada 32 fotogramas. Entre byte y byte se repite la dirección anterior.

Y encaja hasta en la duración: la demo dura 1852 pasos, o sea 58 de esos 64 bytes, y la tira acaba justo donde empieza la primera instrucción de la rutina siguiente.

Lo primero que hace es escribir sobre sí mismo

Entre la inicialización de la máquina y el arranque del juego hay un ldir que copia tres bytes —C3 00 00, es decir jp 0000h— encima del despachador que gobierna todo el juego.

En un cartucho eso no hace nada, porque esa mitad del mapa de memoria es ROM y la escritura se pierde por el camino. Pero si el cartucho estuviera copiado en RAM, el despachador quedaría convertido en un salto a cero y la máquina se reiniciaría en el primer fotograma, porque el bucle de juego lo llama enseguida. Que lo hace está comprobado leyendo los bytes; para qué lo hace, cada cual.

Hay una base de investigación a la que nunca se llega

El cartucho lleva ocho nombres de base y el recorrido tiene diez paradas. Siete nombres se reparten esas diez —tres de ellas son la misma— y el octavo, NEW ZEALAND, no lo pide nadie.

No es una impresión: no está entre las diez entradas de la tabla, ninguna instrucción lo apunta, y ninguna de las veinte direcciones de esa cadena aparece como palabra en los 16 KB del cartucho. Las otras siete sí aparecen apuntadas.

Todo el dibujo va comprimido, y la mitad va espejada

Ni un gráfico está en crudo. Hay un descompresor de 61 bytes con cuatro puertas de entrada distintas, y el formato es de los que se leen de un vistazo: un byte dice si lo que viene se repite tantas veces o si son tantos bytes tal cual.

Lo bonito es la cuarta puerta: invierte los bits de cada byte según entra, que en una pantalla de mapa de bits es un espejo horizontal. Así el borde derecho de la pista no ocupa un solo byte más que el izquierdo: es el mismo, leído al revés.

La mitad de leer la memoria de vídeo viene sin estrenar

Las rutinas que hablan con el chip gráfico van por parejas: una para escribir y su gemela exacta para leer. Las dos de escribir se usan a todas horas. Las dos de leer no las llama nadie, y se puede afirmar sin miedo porque la dirección de una de ellas no aparece ni una sola vez en los 16 KB, y la única aparición de la otra es la llamada que le hace su propia gemela muerta.

Este juego no lee la pantalla nunca. Solo escribe.

Las tablas se delatan solas

Saber dónde acaba una tabla suele ser lo más incómodo de un desensamblado, porque el tamaño no está escrito en ninguna parte. Aquí casi todas lo dicen: la última palabra de la tabla acaba exactamente en el byte donde empieza su primer destino, así que solo hay un tamaño posible y no hay nada que suponer.

Y hay un segundo truco de la casa, este para ahorrar instrucciones: tres tablas se apuntan un byte antes de donde empiezan, porque su índice nunca vale cero y así se evita un dec a. El byte cero de una de ellas es el último de un jp; el de otra, un ret suelto.

Los gráficos

Nada de esto es una captura de pantalla. Está dibujado desde los propios datos del cartucho, descomprimiéndolos igual que hace el juego y con las bases de memoria que él mismo escribe en los registros del chip gráfico. Y por eso vale como comprobación además de como ilustración: si el reparto estuviera mal, lo que saldría es ruido y no unos pingüinos.

Las diez posturas del pingüino, cuatro sprites de 16x16 cada una. Va entero en negro: lo blanco de la barriga no está dibujado, es el hielo que se ve por los huecos del propio dibujo
Las diez posturas del pingüino, cuatro sprites de 16x16 cada una. Va entero en negro: lo blanco de la barriga no está dibujado, es el hielo que se ve por los huecos del propio dibujo
Los 64 sprites, cada uno del color que le da su entrada de atributo: el pingüino en negro, la foca en negro y rojo, el pez en rojo, la sombra en azul, las nubes y el fondo de la bandera en blanco, y en amarillo el pico del pingüino de la base. No queda ni uno sin dueño
Los 64 sprites, cada uno del color que le da su entrada de atributo: el pingüino en negro, la foca en negro y rojo, el pez en rojo, la sombra en azul, las nubes y el fondo de la bandera en blanco, y en amarillo el pico del pingüino de la base. No queda ni uno sin dueño
El primero de los tres bancos de casillas: la tipografía, el logotipo de KONAMI y el rótulo de la presentación
El primero de los tres bancos de casillas: la tipografía, el logotipo de KONAMI y el rótulo de la presentación
Los dieciséis decorados que embaldosan los bordes de la pista
Los dieciséis decorados que embaldosan los bordes de la pista
Las banderas de las bases, descomprimidas: siete dibujos para diez paradas
Las banderas de las bases, descomprimidas: siete dibujos para diez paradas
La foca saliendo del agujero: los ocho pasos superpuestos, y las tres salidas que hay —por el centro, hacia la derecha y hacia la izquierda—. El dibujo es el mismo en las tres; lo que cambia es por dónde sale
La foca saliendo del agujero: los ocho pasos superpuestos, y las tres salidas que hay —por el centro, hacia la derecha y hacia la izquierda—. El dibujo es el mismo en las tres; lo que cambia es por dónde sale
Un agujero en el hielo, montado por trozos según se acerca
Un agujero en el hielo, montado por trozos según se acerca