Todo lo que suena aquí sale de ejecutar el motor de sonido del cartucho (el_sonido_de_un_cuadro, p14:9497, y la rutina de petición de p14:9400; lo llama la interrupción en p00:4073 con los bancos 14 y 15) en un Z80 emulado, cuadro a cuadro y a 60 por segundo, igual que lo llama el juego. Lo que el motor escribe en el PSG pasa a sonido con un AY-3-8910 (tools/musica.py). Cada MP3 es la pieza entera hasta donde vuelve a empezar, más 8 segundos de la vuelta apagándose; las que no se repiten acaban donde acaba el motor.
Las escrituras al PSG se han comparado cuadro a cuadro con las de openMSX (C-BIOS MSX2 japonés). En todos los cuadros el PSG queda igual:
El timbre no está cotejado: es el de un AY-3-8910 de manual, no una grabación del emulador. Las sondas están en tools/omsx_psg.tcl y tools/coteja_psg.py.
La rutina de p14:9400 recibe el número en A: del 0x00 al 0x36 son efectos de un canal y del 0x37 en adelante hay música de más; el juego calcula el número, así que todas las pistas son «de la tabla». Hay cuatro canales de 32 bytes desde 0xC010 y 0xC0F0 guarda la copia del mezclador del PSG, que el arranque deja en 0xB8. Las pistas que suenan igual que otra se publican una sola vez; se omiten las casi mudas, y las que duran más de 75 segundos sin volver a empezar se cortan a los 75. Solo se han cotejado con openMSX las pistas 0x37 y 0x6A.
Pista 0x37 (0x37)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0x38 (0x38)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0x39 (0x39)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0x3A (0x3A)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 35,6 s y vuelve a empezar en el segundo 5,7.
Pista 0x3B (0x3B)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0x3C (0x3C)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0x3D (0x3D)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 49,5 s y vuelve a empezar en el segundo 23,4.
Pista 0x3E (0x3E)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0x3F (0x3F)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0x40 (0x40)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 45,2 s y vuelve a empezar en el segundo 32,4.
Pista 0x41 (0x41)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0x42 (0x42)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0x43 (0x43)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 17,5 s y vuelve a empezar en el segundo 7,1.
Pista 0x44 (0x44)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0x45 (0x45)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0x46 (0x46)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 27,4 s y vuelve a empezar en el segundo 18,8.
Pista 0x47 (0x47)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 27,4 s y vuelve a empezar en el segundo 18,8.
Pista 0x48 (0x48)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 26,7 s y vuelve a empezar en el segundo 18,1.
Pista 0x49 (0x49)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 9,1 s y vuelve a empezar en el segundo 0,6.
Pista 0x4A (0x4A)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0x4B (0x4B)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0x53 (0x53)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 3,4 s.
Pista 0x54 (0x54)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 3,4 s.
Pista 0x55 (0x55)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 3,4 s.
Pista 0x56 (0x56)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 3,4 s.
Pista 0x57 (0x57)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 3,4 s.
Pista 0x5F (0x5F)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 8,8 s.
Pista 0x60 (0x60)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 8,8 s.
Pista 0x61 (0x61)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 8,8 s.
Pista 0x62 (0x62)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 8,8 s.
Pista 0x63 (0x63)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 8,8 s.
Pista 0x65 (0x65)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 49,1 s y vuelve a empezar en el segundo 14,9.
Pista 0x66 (0x66)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 49,1 s y vuelve a empezar en el segundo 14,9.
Pista 0x67 (0x67)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 49,1 s y vuelve a empezar en el segundo 14,9.
Pista 0x68 (0x68)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 49,1 s y vuelve a empezar en el segundo 14,9.
Pista 0x69 (0x69)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 36,9 s y vuelve a empezar en el segundo 2,8.
Pista 0x6B (0x6B)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 5,2 s.
Pista 0x6C (0x6C)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 5,2 s.
Pista 0x6D (0x6D)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 5,2 s.
Pista 0x6E (0x6E)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 5,2 s.
Pista 0x6F (0x6F)
Lo pide ninguna llamada directa: sale de la tabla de pistas por un número calculado; dura 5,2 s.