In the emulator

Everything drawn on this site is checked against openMSX on a Japanese MSX1 machine (C-BIOS_MSX1_JP). The probes are Tcl scripts that take the cartridge wherever needed, by poking RAM or pressing real keys, and dump the VRAM (the first 16 KB) and the RAM. One emulator at a time.

The probes

probewhat it doeslauncher
omsx_titulo.tclthe start-up, the logo and the title, one dump every 0.25 slanza_titulo.sh
omsx_vuelca.tclthe demo, on every room changelanza_vuelca.sh
omsx_mundos.tcltakes the demo to the requested rooms and dumps each onelanza_mundos.sh
omsx_partida.tclstarts a game, goes to a room and dumps it; with the boss, sets 0xE020 as when its name is guessedlanza_partida.sh
omsx_bordes.tclin game, takes the character out through the edges without touching the neighbours—
omsx_poses.tclwhat p01:73E4 writes for the player, with Popolon and with Aphroditelanza_poses.sh
omsx_zeus.tclZEUS in the F2 pause, GAME OVER and F5—
omsx_lecturas.tclwho reads each byte of the cartridgelanza_lecturas.sh
omsx_vigila.tclwho writes to a stretch of memorylanza_vigila.sh
omsx_puerto99.tclwhich VRAM addresses are set in a roomlanza_puerto99.sh

To take the character to a room, omsx_mundos.tcl puts the map in 0xE041, the room in the four loaded neighbours (0xE648-0xE64B) and the character on the right edge (0xE507 = 0xF9): the game itself leaves through the right and loads the room. 0xE690 and 0xE740 must be cleared; otherwise the special room flag carries over and the next rooms are not built.

The checks

The dumps are not in the repository; their fingerprints are, in tests/, and the tests compare them with what is drawn from the ROM:

testwhat it comparesresult
test_titulo.pythe logo and the title: all 16 KB of VRAM0 bytes different
test_mapas.pyeach room: the name table and the characters it uses321 rooms, 0 different
test_sprites.pyeach room's sprite patterns and the player's poses321 rooms and 136 combinations, 0 different
test_vecinas.pythe order of the neighbours, leaving through the edges6 exits, 0 different
test_jefes.pywhich mosaics each boss takes and the 18 seen whole0 different
test_objetos.pyshop 12 and its characters0 different

Tips for watching it