Aqui no hay ninguna captura. Todas las imagenes estan dibujadas desde los bytes de la ROM: el decorado con las maquinas del cartucho escritas en Python, y los personajes con el cuadro de partida escrito desde sus tablas, cotejado contra openMSX a cero bytes. El listado y las cifras se reproducen con make, y el reensamblado devuelve la ROM byte a byte.
INIT (0x407B) engancha H.KEYI con un jp 0x402C, pone a cero el kilobyte de RAM y se queda para siempre en el jr $ de 0x40A9. Todo lo demas pasa en el gancho, una vez por cuadro: el sonido, los mandos y la escena. El cerrojo de 0xE005 cuenta las interrupciones solapadas y atiende la que entro mientras tanto sin volver a la pila.
Los personajes y los obstaculos no los pone el montaje: los pone el juego cuadro a cuadro. tools/pista.py reescribe ese cuadro desde las tablas del cartucho -moviles 0x549B, poses 0x5116, arranques 0x6161- y contra 43 volcados de openMSX da 0 bytes distintos.
(0xE052) dice que atraccion es, de 0 a 4, y el cartucho reparte por el cuatro tablas pegadas detras de sus call: el montaje (0x5FEF), el arranque (0x60B6), el cuadro (0x4C93) y la tabla de moviles (0x549B). Tres de ellas estaban rotuladas corridas uno en el listado; lo destapo la RAM medida al arrancar cada numero.
0x458F lee por DE y escribe por HL, al reves de lo que parece. Por eso 0x7477 copia 0x2AC0 sobre 0x2BB0, solapado, y el decorado del caballo se repite solo.
El ld hl,(0xE002) trae las banderas en L y el contador de cuadros en H. El bit 5,h no mira el numero de jugadores: alterna la mascara entre pintar y borrar cada 32 cuadros.
El VDP no pinta el quinto sprite que cruza una linea. En el trapecio son seis los que cruzan las lineas 48 a 52, y se come dos. Con ese tope el dibujo casa con la foto del emulador en 49.152 puntos de 49.152.
Debajo de cada imagen esta de donde sale y que se esta viendo.