F-1 Spirit

Un MegaROM de 128 KB de 1987, el primero de la serie con mapper y chip de sonido SCC. Sus 21 circuitos son listas de piezas que se pueden reescribir, y hay un editor para hacerlo.

Konami · 1987 · Cartucho RC-752, 128 KB · MSX1 · Konami SCC · Volcado 3b9afd12…

Aquí no hay ni una captura de pantalla. Los circuitos están dibujados repitiendo la cadena que sigue el cartucho para pintarlos, y los minimapas integrando sus caminos. Lo demás —el listado y las cifras— sale del binario y se reproduce con make.

El juego en cifras

99,6 %del binario explicado
977rutinas identificadas
21circuitos
31.591bytes de código
98.977bytes de datos
504bytes sin identificar

Lo que aparece al desmontarlo

La profundidad de la pista son tres dibujos distintos

En SCREEN 2 la tabla de patrones son tres bancos, uno por cada tercio de la pantalla. F-1 Spirit carga dibujos distintos bajo el mismo indice en el tercio de arriba y en el de abajo, y de ahi sale la sensacion de profundidad de la carretera. Los bits 7, 6 y 5 de los flags del cargador dicen a que tercio va cada tile.

Un circuito son cuatro niveles de indireccion

Cada carrera tiene una secuencia de pares (pieza, flags). Una pieza son 24 bytes: 3 filas de 8 metatiles. Un metatile son 16 bytes: 4 filas de 4 tiles. Una fila de pieza ocupa la pantalla de ancho. Los flags no mueven la pista: rotan la fila de metatiles modulo 8, y esa rotacion, acumulada de una pieza a la siguiente, es lo que la hace serpentear.

Un paso del minimapa son dos piezas de pista

El minimapa no se calcula: son 21 caminos de bytes, dos nibbles con signo cada uno, que mueven el marcador. Su forma no sale de la secuencia, pero su longitud si: en las 21 carreras se cumple pasos = piezas / 2 + 1.

Tres partidas grabadas

Hay tres bloques con el mismo formato -pares (mascara de mandos, cuadros que dura)- que suman 43,6 s, 84 s y 12,5 s. Las mascaras son combinaciones de los bits de direccion y los dos botones: son partidas grabadas, lo que el juego se juega solo.

Lo que dibuja

Ninguna de estas imágenes es una captura: se dibujan desde la ROM con tools/imagenes_web.py.

La pantalla del título, montada con los pasos de MONTA_PRESENTACION (0x5CB5): los tiles 16 a 58 desde p15 0xB777, la lista de tiles de 0x6D34 -que mezcla registros de seis bytes con ordenes 0x17 que tiran de la tabla de 85 recursos- y el dibujo de p08 0x8280, descomprimido con el RLE de buffer de p01 0x637A, que además de copiar y repetir sabe escribir series de tiles crecientes y decrecientes. Los colores son los que deja el desvanecido de 0x5E4A al acabar: en un MSX1 no hay paleta que tocar, así que el dibujo aparece pintando los colores tile a tile.
La pantalla del título, montada con los pasos de MONTA_PRESENTACION (0x5CB5): los tiles 16 a 58 desde p15 0xB777, la lista de tiles de 0x6D34 -que mezcla registros de seis bytes con ordenes 0x17 que tiran de la tabla de 85 recursos- y el dibujo de p08 0x8280, descomprimido con el RLE de buffer de p01 0x637A, que además de copiar y repetir sabe escribir series de tiles crecientes y decrecientes. Los colores son los que deja el desvanecido de 0x5E4A al acabar: en un MSX1 no hay paleta que tocar, así que el dibujo aparece pintando los colores tile a tile.
El principio del circuito de RALLY, pintado siguiendo la cadena del cartucho: la secuencia de piezas, sus metatiles y los tiles de los tres bancos.
El principio del circuito de RALLY, pintado siguiendo la cadena del cartucho: la secuencia de piezas, sus metatiles y los tiles de los tres bancos.
Y el de la quinta carrera del mundial. Cada franja de 32 x 12 tiles es una pieza de la secuencia.
Y el de la quinta carrera del mundial. Cada franja de 32 x 12 tiles es una pieza de la secuencia.
Los 21 trazados del minimapa, integrados desde sus caminos de nibbles con signo. Los 21 cierran: la suma de los desplazamientos es cero en los dos ejes.
Los 21 trazados del minimapa, integrados desde sus caminos de nibbles con signo. Los 21 cierran: la suma de los desplazamientos es cero en los dos ejes.