Todo lo que suena aquí sale de ejecutar el motor de sonido del cartucho (el_sonido_de_este_cuadro, p04:6228, y pide_un_sonido, p04:6032, que apunta las piezas; la interrupción lo llama en p00:4233 con los bancos 4 y 5) 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.
sonido (p00:5490) mete los bancos 4 y 5 y llama a pide_un_sonido con el número en A (sonido_si_juega, p00:5488, no suena en la demostración: bit 6 de 0xC102). El 0 lo para todo, los menores de 0x80 son efectos, del 0x80 en adelante son piezas, y del 0xFD órdenes (pausa, sigue, fundido). La 0x85 suena como la 0x80. Antes se corre el_sonido_desde_cero, que deja la copia del mezclador del PSG en 0xBC. La RAM del sonido está en 0xC010-0xC09F. Las pistas «de la tabla» salen de la tabla por un número calculado; 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 pieza del 0x666B (0x85)
Lo pide L_666B (suena como la 0x80); se corta a los 75 s (la pieza sigue).
La pieza del 0x8265 (0x81)
Lo pide L_8265; dura 5,0 s.
La pieza del 0x8271 (0x82)
Lo pide L_8271; dura 36,7 s y vuelve a empezar en el segundo 6,3.
La pieza del 0x6BF8 (0x8A)
Lo pide L_6BF8; dura 1,8 s.
La pieza del 0x66D6 (0x89)
Lo pide L_66D6; dura 6,3 s.
Pista 0x80 de la tabla (0x80)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; dura 63,4 s y vuelve a empezar en el segundo 25,0.
Pista 0x83 de la tabla (0x83)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; dura 29,6 s y vuelve a empezar en el segundo 0,2.
Pista 0x84 de la tabla (0x84)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; dura 21,4 s y vuelve a empezar en el segundo 0,0.
Pista 0x87 de la tabla (0x87)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; dura 26,4 s y vuelve a empezar en el segundo 13,6.
Pista 0x88 de la tabla (0x88)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; dura 9,3 s y vuelve a empezar en el segundo 0,8.
Pista 0x8B de la tabla (0x8B)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; dura 12,0 s y vuelve a empezar en el segundo 8,0.
Pista 0x8F de la tabla (0x8F)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0xAB de la tabla (0xAB)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; dura 63,4 s y vuelve a empezar en el segundo 25,0.
Pista 0xAC de la tabla (0xAC)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; dura 35,3 s y vuelve a empezar en el segundo 5,0.
Pista 0xAD de la tabla (0xAD)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0xAE de la tabla (0xAE)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0xAF de la tabla (0xAF)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0xB0 de la tabla (0xB0)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; se corta a los 75 s (la pieza sigue).
Pista 0xB2 de la tabla (0xB2)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; dura 39,2 s y vuelve a empezar en el segundo 13,6.
Pista 0xB3 de la tabla (0xB3)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; dura 14,8 s y vuelve a empezar en el segundo 6,3.
Pista 0xB5 de la tabla (0xB5)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; dura 12,0 s y vuelve a empezar en el segundo 8,0.
Pista 0xB6 de la tabla (0xB6)
Lo pide ninguna llamada directa: sale de la tabla de piezas por un número calculado; dura 12,0 s y vuelve a empezar en el segundo 8,0.