Todo lo que suena aquí sale de ejecutar el motor de sonido del cartucho (mueve_el_sonido, 0x9EA3, y pide_un_sonido, 0x9C4A, que le reparte los canales; lo llama la interrupción en 0x4075) 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_un_sonido recibe el número en A. Por debajo de 0x8D es un efecto y usa un solo canal, el tercero; de ahí en adelante, dos o tres canales según el número. Solo se publican las piezas que el listado pide con un ld a y que suenan de verdad; la tabla tiene además pistas casi mudas (0x8B y 0x8C) y efectos. El motor no escribe el mezclador del PSG: lo deja el arranque, y aquí se parte de su mismo valor, 0xB8.
Empezar la partida (0x9C)
Lo pide estado_8_elige_dificultad (0x4430); dura 4,3 s.
La pieza del 0x43DD (0x99)
Lo pide la rutina de 0x43DB; dura 5,4 s.
La pieza del submodo 3 (0x93)
Lo pide submodo_3_del_estado_11 y la rutina de 0x42BC; dura 2,6 s.
La máquina canta (0x90)
Lo pide la_maquina_canta (0x56E5) y la rutina de 0x770D; dura 2,7 s.
El tenpai (0x96)
Lo pide mira_quien_esta_en_tenpai (0x7713); dura 2,4 s.