Todo lo que suena aquí sale de ejecutar el motor de sonido del cartucho (tick_sonido, 0x7B37, y reproduce_efecto, 0x7A9E, que le reparte los canales; lo llama la interrupción en 0x401E) 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.
reproduce_efecto recibe el número en A. Los números bajos son efectos y del 0x87 en adelante hay música. Cada ficha ocupa catorce bytes desde 0xE010 y 0xE03A guarda la copia del mezclador del PSG, que el arranque deja en 0xB8. Las pistas «de la tabla» están en la tabla de pistas pero ninguna rutina las pide con un ld a.
La música de la sala (0x8B)
Lo pide bucle_de_juego, tarea_4_espera_a_jugar y tarea_10_pantalla_final; dura 12,8 s y vuelve a empezar en el segundo 0,0.
El mapa del valle (0x91)
Lo pide monta_el_mapa_del_valle; dura 2,8 s.
El arranque de la tarea 3 (0x97)
Lo pide tarea_3_arranca: efecto 0x97 y 0x50 fotogramas de contador; dura 4,3 s.
La sala resuelta (0x94)
Lo pide sala_comprueba_final; dura 2,8 s.
La pieza del 0x4211 (0x9A)
Lo pide L_4211; dura 4,9 s.
La pieza del 0x66B3 (0x8D)
Lo pide L_66B3; dura 1,0 s.
Pista 0x83 de la tabla (0x83)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 29,6 s.
Pista 0x8C de la tabla (0x8C)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 2,0 s y vuelve a empezar en el segundo 0,9.
Pista 0x90 de la tabla (0x90)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 2,8 s.
Pista 0x92 de la tabla (0x92)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 2,8 s.
Pista 0x93 de la tabla (0x93)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 2,8 s.
Pista 0x95 de la tabla (0x95)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 4,3 s.
Pista 0x96 de la tabla (0x96)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 4,3 s.
Pista 0x98 de la tabla (0x98)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 4,9 s.
Pista 0x99 de la tabla (0x99)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 4,9 s.