The music

Everything you hear here comes from running the cartridge's own sound engine (suena_un_cuadro, 0x4CCC, and toca_sonido, 0x4C4C, which hands it the channels; 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

toca_sonido takes the number in A and saves all registers; toca_sonido_en_partida only sounds during a game. Here the numbers have no bit 7: low ones are effects and from 0x12 up there is music. Each voice takes thirty-two bytes from 0xE010 (there are four) and 0xE0F0 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; others, minutes long, are left out.

The tunes

The presentation (0x20)

Asked for by empieza_la_presentacion; lasts 6.9 s.

The menu (0x1D)

Asked for by menu_de_un_jugador y menu_del_duelo; lasts 12.6 s and starts again at second 6.3.

The bonus (0x1A)

Asked for by empieza_la_bonificacion; lasts 19.2 s and starts again at second 0.0.

Presentation step 6 (0x23)

Asked for by presentacion_paso_6; lasts 2.4 s.

Who wins (0x29)

Asked for by apunta_quien_gana; lasts 4.6 s.

The effect ends (0x2C)

Asked for by acaba_el_efecto; lasts 1.4 s.

The count ends (0x32)

Asked for by acaba_la_cuenta; lasts 2.4 s.

Game over (one player) (0x53)

Asked for by musica_de_game_over; lasts 4.5 s.

Game over (the duel) (0x50)

Asked for by musica_de_game_over, con dos jugadores; lasts 6.9 s.

Table track 0x12 (0x12)

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

Table track 0x13 (0x13)

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

Table track 0x1E (0x1E)

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

Table track 0x1F (0x1F)

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

Table track 0x21 (0x21)

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

Table track 0x22 (0x22)

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

Table track 0x24 (0x24)

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

Table track 0x25 (0x25)

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

Table track 0x26 (0x26)

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

Table track 0x27 (0x27)

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

Table track 0x28 (0x28)

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

Table track 0x2B (0x2B)

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

Table track 0x3F (0x3F)

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

Table track 0x42 (0x42)

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

Table track 0x45 (0x45)

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

Table track 0x48 (0x48)

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

Table track 0x4B (0x4B)

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

Table track 0x4E (0x4E)

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

Table track 0x4F (0x4F)

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

Table track 0x51 (0x51)

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

Table track 0x52 (0x52)

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