En el emulador

Todo lo que se dibuja en esta web está cotejado contra openMSX con una máquina MSX1 japonesa (C-BIOS_MSX1_JP). Las sondas son guiones Tcl que llevan el cartucho adonde hace falta, tocando la RAM o pulsando teclas de verdad, y vuelcan la VRAM (los primeros 16 KB) y la RAM. Se lanza un emulador cada vez.

Las sondas

sondaqué hacelanzador
omsx_titulo.tclel arranque, el logotipo y el título, un volcado cada 0,25 slanza_titulo.sh
omsx_vuelca.tclla demo, en cada cambio de salalanza_vuelca.sh
omsx_mundos.tcllleva la demo a las salas pedidas y vuelca cada unalanza_mundos.sh
omsx_partida.tclempieza una partida, va a una sala y la vuelca; con el jefe, pone 0xE020 como al acertar su nombrelanza_partida.sh
omsx_bordes.tclen partida, saca al personaje por los bordes sin tocar las vecinas—
omsx_poses.tcllo que p01:73E4 escribe del jugador, con Popolon y con Afroditalanza_poses.sh
omsx_zeus.tclZEUS en la pausa de F2, GAME OVER y F5—
omsx_lecturas.tclquién lee cada byte del cartucholanza_lecturas.sh
omsx_vigila.tclquién escribe en un tramo de memorialanza_vigila.sh
omsx_puerto99.tclqué direcciones de VRAM se fijan en una salalanza_puerto99.sh

Para llevar al personaje a una sala, omsx_mundos.tcl pone el mapa en 0xE041, la sala en las cuatro vecinas cargadas (0xE648-0xE64B) y al personaje en el borde derecho (0xE507 = 0xF9): el propio juego sale por la derecha y carga la sala. Hay que borrar 0xE690 y 0xE740; si no, la marca de la sala especial se arrastra y las salas siguientes no se montan.

Los cotejos

Los volcados no viajan en el repositorio; lo que viaja es su huella, en tests/, y los tests comparan con ella lo que se dibuja desde la ROM:

testqué compararesultado
test_titulo.pyel logotipo y el título: los 16 KB de VRAM0 bytes distintos
test_mapas.pycada sala: la tabla de nombres y los caracteres que usa321 salas, 0 distintas
test_sprites.pylos dibujos de sprite de cada sala y las poses del jugador321 salas y 136 combinaciones, 0 distintas
test_vecinas.pyel orden de las vecinas, saliendo por los bordes6 salidas, 0 distintas
test_jefes.pyqué mosaicos toma cada jefe y los 18 vistos enteros0 distintos
test_objetos.pyla tienda 12 y sus caracteres0 distintos

Trucos para verlo