En el emulador

Las imágenes de esta web no son capturas, pero el emulador sí se usa: para comprobarlas. La diferencia importa. Una captura demuestra que el juego funciona; volcar la VRAM y compararla contra lo que dibuja tools/graficos.py demuestra que se ha entendido el formato.

Cómo se toman los volcados

Dos guiones de Tcl para openMSX, sin un solo punto de ruptura: los volcados van por reloj emulado, así que son repetibles.

tools/omsx_vram.tcl    seis volcados del arranque, hasta los 12 s
tools/omsx_juego.tcl   ocho volcados ya con el juego en marcha, de 14 a 45 s

Cada uno guarda los 16.384 bytes de la VRAM, los ocho registros del VDP y una captura de pantalla.

Lo que sale de comparar

python3 tools/graficos.py holeinone.rom 0x8000 comprueba work/omsx

En la pantalla de título, de los 13.664 bytes de las cuatro tablas coinciden 13.655. Los nueve que bailan son los dígitos del marcador de las filas 1, 2, 3, 6 y 7 -el TOP y los golpes-, que el juego escribe en marcha y no salen de ninguna tabla del cartucho.

De la partida salen seis volcados en los que las 480 celdas del campo son idénticas a las que dibuja el intérprete de guiones, hoyo por hoyo: 2.880 celdas seguidas sin una diferencia. Y con el juego corriendo, las tablas de patrones y de color siguen siendo exactamente las del título, los 12.288 bytes.

Los registros del VDP

02 E2 06 FF 03 36 07 01

El sexto es el que aclaró una cosa: R6 = 0x07 pone los patrones de sprite en 0x3800, así que los 608 bytes que 0xBE0D descomprime ahí son los diecinueve sprites de 16x16 del juego.