The music

Everything you hear here comes from running the cartridge's own sound engine (el_sonido_de_un_cuadro, p14:9497, and the request routine at p14:9400; the interrupt calls it at p00:4073 with banks 14 and 15) 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 MSX2 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

The routine at p14:9400 takes the number in A: 0x00 to 0x36 are one-channel effects and from 0x37 up there is more music; the game computes the number, so all the tracks are «in the table». There are four 32-byte channels from 0xC010 and 0xC0F0 holds the copy of the PSG mixer, which start-up leaves at 0xB8. Tracks that sound like another are published once; nearly silent ones are left out, and those that last over 75 seconds without starting again are cut at 75. Only tracks 0x37 and 0x6A have been checked against openMSX.

The tunes

Track 0x37 (0x37)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; is cut at 75 s (the piece goes on).

Track 0x38 (0x38)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; is cut at 75 s (the piece goes on).

Track 0x39 (0x39)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; is cut at 75 s (the piece goes on).

Track 0x3A (0x3A)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 35.6 s and starts again at second 5.7.

Track 0x3B (0x3B)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; is cut at 75 s (the piece goes on).

Track 0x3C (0x3C)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; is cut at 75 s (the piece goes on).

Track 0x3D (0x3D)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 49.5 s and starts again at second 23.4.

Track 0x3E (0x3E)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; is cut at 75 s (the piece goes on).

Track 0x3F (0x3F)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; is cut at 75 s (the piece goes on).

Track 0x40 (0x40)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 45.2 s and starts again at second 32.4.

Track 0x41 (0x41)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; is cut at 75 s (the piece goes on).

Track 0x42 (0x42)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; is cut at 75 s (the piece goes on).

Track 0x43 (0x43)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 17.5 s and starts again at second 7.1.

Track 0x44 (0x44)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; is cut at 75 s (the piece goes on).

Track 0x45 (0x45)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; is cut at 75 s (the piece goes on).

Track 0x46 (0x46)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 27.4 s and starts again at second 18.8.

Track 0x47 (0x47)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 27.4 s and starts again at second 18.8.

Track 0x48 (0x48)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 26.7 s and starts again at second 18.1.

Track 0x49 (0x49)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 9.1 s and starts again at second 0.6.

Track 0x4A (0x4A)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; is cut at 75 s (the piece goes on).

Track 0x4B (0x4B)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; is cut at 75 s (the piece goes on).

Track 0x53 (0x53)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 3.4 s.

Track 0x54 (0x54)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 3.4 s.

Track 0x55 (0x55)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 3.4 s.

Track 0x56 (0x56)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 3.4 s.

Track 0x57 (0x57)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 3.4 s.

Track 0x5F (0x5F)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 8.8 s.

Track 0x60 (0x60)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 8.8 s.

Track 0x61 (0x61)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 8.8 s.

Track 0x62 (0x62)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 8.8 s.

Track 0x63 (0x63)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 8.8 s.

Track 0x65 (0x65)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 49.1 s and starts again at second 14.9.

Track 0x66 (0x66)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 49.1 s and starts again at second 14.9.

Track 0x67 (0x67)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 49.1 s and starts again at second 14.9.

Track 0x68 (0x68)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 49.1 s and starts again at second 14.9.

Track 0x69 (0x69)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 36.9 s and starts again at second 2.8.

Track 0x6B (0x6B)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 5.2 s.

Track 0x6C (0x6C)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 5.2 s.

Track 0x6D (0x6D)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 5.2 s.

Track 0x6E (0x6E)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 5.2 s.

Track 0x6F (0x6F)

Asked for by ninguna llamada directa: sale de la tabla de pistas por un número calculado; lasts 5.2 s.