Todo lo que suena aquí sale de ejecutar el motor de sonido del cartucho (late_el_sonido, 0x5195, y arranca_melodia, 0x5113, que le reparte los canales; lo llama la interrupción) 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.
arranca_melodia recibe el número en A y respeta la melodia que ya suene; suena_si_hay_partida hace lo mismo solo en partida (bit 6 de 0xE002). Los números bajos son efectos y del 0x97 en adelante hay música. Cada voz ocupa quince bytes desde 0xE010 y 0xE03D 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; se omiten la 0xA6, la 0xA7 y la 0xAC, de minutos de duración y casi sin notas.
La pieza del 0x42E2 (0xA5)
Lo pide L_42E2; dura 5,3 s.
La pieza del 0x6921 (0xAE)
Lo pide L_6921; dura 3,2 s.
Pista 0xA3 de la tabla (0xA3)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 25,6 s.
Pista 0xA4 de la tabla (0xA4)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 25,6 s.
Pista 0xAD de la tabla (0xAD)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 3,2 s.
Pista 0xAF de la tabla (0xAF)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 5,2 s.
Pista 0xB0 de la tabla (0xB0)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 5,2 s.
Pista 0xB1 de la tabla (0xB1)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 5,2 s.
Pista 0xB2 de la tabla (0xB2)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 5,2 s.
Pista 0xB3 de la tabla (0xB3)
Lo pide ninguna llamada directa: está en la tabla de pistas; dura 5,2 s.