The music

Everything you hear here comes from running the cartridge's own sound engine (suena_el_cuadro, 0xB641, and pide_pieza, 0xB590, which hands it the voices; the interrupt calls it) on an emulated Z80, frame by frame at 60 per second, just as the game calls it. What the engine writes to the PSG is turned into sound with an AY-3-8910 (tools/musica.py). Each MP3 is the whole piece up to where it starts again, plus 8 seconds of the repeat fading out; those that do not repeat end where the engine ends.

Checked against openMSX

The PSG writes have been compared frame by frame with those of openMSX (C-BIOS MSX1 japonés). In every frame the PSG ends up the same:

The timbre is not checked: it is a textbook AY-3-8910, not a recording of the emulator. The probes are tools/omsx_psg.tcl and tools/coteja_psg.py.

How a piece is asked for

pide_pieza takes the number in A. Low numbers are effects and from 0x91 up there is music. Each voice takes fourteen bytes from 0xE010 and 0xE048 holds the copy of the PSG mixer, which start-up leaves at 0xB8. The tracks marked «in the table» are in the track table but no routine asks for them with an ld a; 0x9A, 0x9C and 0x9D, minutes long, are left out.

The tunes

The tune at 0x41B0 (0x9B)

Asked for by L_41B0; lasts 49.9 s and starts again at second 11.8.

The open door (0xA1)

Asked for by puerta_abierta; lasts 3.5 s.

The level tune (0x91)

Asked for by pieza_del_nivel; lasts 2.5 s and starts again at second 1.4.

The title and the stage cleared (0xA4)

Asked for by titulo_borra y escena_ronda_pasada; lasts 8.6 s and starts again at second 0.0.

The tune at 0x4367 (0xA7)

Asked for by L_4367; lasts 4.0 s.

The tune at 0x82AB (0x98)

Asked for by L_82AB; lasts 1.1 s.

Time is running out (0xAA)

Asked for by se_acaba_el_tiempo; lasts 0.9 s and starts again at second 0.8.

Table track 0x92 (0x92)

Asked for by ninguna llamada directa: está en la tabla de pistas; lasts 25.6 s and starts again at second 4.3.

Table track 0x96 (0x96)

Asked for by ninguna llamada directa: está en la tabla de pistas; lasts 38.1 s and starts again at second 0.0.

Table track 0x97 (0x97)

Asked for by ninguna llamada directa: está en la tabla de pistas; lasts 39.1 s and starts again at second 1.0.

Table track 0x99 (0x99)

Asked for by ninguna llamada directa: está en la tabla de pistas; lasts 16.8 s and starts again at second 16.0.

Table track 0xA2 (0xA2)

Asked for by ninguna llamada directa: está en la tabla de pistas; lasts 11.6 s and starts again at second 3.0.

Table track 0xA3 (0xA3)

Asked for by ninguna llamada directa: está en la tabla de pistas; lasts 11.6 s and starts again at second 3.0.

Table track 0xA5 (0xA5)

Asked for by ninguna llamada directa: está en la tabla de pistas; lasts 12.4 s and starts again at second 3.9.

Table track 0xA6 (0xA6)

Asked for by ninguna llamada directa: está en la tabla de pistas; lasts 12.6 s and starts again at second 4.0.

Table track 0xA8 (0xA8)

Asked for by ninguna llamada directa: está en la tabla de pistas; lasts 4.0 s.

Table track 0xA9 (0xA9)

Asked for by ninguna llamada directa: está en la tabla de pistas; lasts 3.9 s.