Todo lo que suena aquí sale de ejecutar el motor de sonido del cartucho (sonido_cada_cuadro, p13:6004, y sonido, p00:4E6B, que reparte las partituras; la interrupción lo llama en p00:410A con los bancos 13 y 14) 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 MSX1 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.
pide_sonido (p00:4E1F) y pide_sonido_ya (p00:4E34, sin mirar la pausa) guardan los bancos de 0x6000 y 0x8000, ponen el 13 y el 14 y llaman a sonido con el número en A: 0 lo calla todo, del 0x01 al 0x7F es un efecto, del 0x80 al 0xF9 una música (tabla de 0x743E) y del 0xFA en adelante, órdenes (pausa, sigue). Antes se corre sonido_a_cero, que deja la copia del mezclador del PSG en 0xBC. La RAM del sonido está en 0xE100-0xE1CD. Las que suenan igual que otra se publican una vez, y las que duran más de 75 segundos sin volver a empezar se cortan a los 75.
La música del mapa de los mundos (0x8A)
Lo pide L_45E8 y L_484F; la rutina musica_del_mapa pide la 0x88 en el castillo y la 0x8A en los mundos; dura 32,4 s y vuelve a empezar en el segundo 0,4.
La música del mapa del castillo (0x88)
Lo pide L_46EC y L_4835; se corta a los 75 s (la pieza sigue).
La pieza del 0x4416 (0x87)
Lo pide L_4416; se corta a los 75 s (la pieza sigue).
La pieza del 0x4363 (0x86)
Lo pide L_4363; dura 22,9 s y vuelve a empezar en el segundo 11,7.
La música de la sala (0x8F)
Lo pide musica_de_la_sala; dura 38,4 s y vuelve a empezar en el segundo 12,8.
El jefe (0x90)
Lo pide musica_del_jefe; dura 23,1 s y vuelve a empezar en el segundo 3,9.
La pieza del 0x486E (0x8C)
Lo pide L_486E; dura 8,5 s y vuelve a empezar en el segundo 2,6.
La sala especial (0x8D)
Lo pide L_48B7 y graficos_de_la_sala_especial; dura 22,7 s y vuelve a empezar en el segundo 3,5.
El jefe vencido (0x91)
Lo pide musica_del_jefe y L_5CEF; dura 3,2 s y vuelve a empezar en el segundo 1,6.
La pieza del 0x49F9 (0x92)
Lo pide L_49F9; dura 12,4 s.
La pieza del 0x4A35 (0x93)
Lo pide L_4A35; se corta a los 75 s (la pieza sigue).
La pieza del 0x4547 (0x95)
Lo pide L_4547; dura 7,1 s.
Una pista de la tabla (0x8B)
Lo pide ninguna llamada directa: sale de la tabla de música por un número calculado; dura 38,9 s y vuelve a empezar en el segundo 6,9.
La pieza del 0x4599 (0x8E)
Lo pide L_4599; dura 1,6 s.
La pieza del 0x499B (0x81)
Lo pide L_499B; dura 3,3 s.
La pieza de jefe_vencido (0x84)
Lo pide jefe_vencido; dura 2,6 s.