Todo lo que suena aquí sale de ejecutar el motor de sonido del cartucho (SUENA, 0x796F, y SONIDO_YA, 0x78E7, que le reparte los canales; lo llama la interrupción en 0x4045) 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:
ld a pero está en la tabla.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_YA recibe el número en A. Por debajo de 0x91 es un efecto y usa un solo canal (el C, 0xE026); del 0x91 al 0x9C usa dos canales y del 0x9D en adelante los tres. El motor no escribe nunca el mezclador del PSG (registro 7): lo deja el arranque, y aquí se parte de ese mismo valor, 0xB8. Los 0x9E y 0x9F son pistas de 23 segundos que ninguna rutina pide con un ld a, y la 0xA1, que el juego pide en el título, es en realidad silencio: dos cuadros y nada que sonar, igual en openMSX.
La música del menú (0x91)
Lo pide ESTADO_18_OPCION y LEVEL_SELECT_TECLA; dura 8,6 s.
La cuenta de READY y la música de fondo (0x93)
Lo pide READY_CUENTA; la partida la relanza en 0x44B1; dura 6,5 s.
La tarjeta contra la cifra escondida (0x95)
Lo pide TARJETA_COMPARA_CIFRA; dura 3,6 s.
Los globos (0x97)
Lo pide GLOBO_MONTA; dura 4,3 s.
Fase superada (0x99)
Lo pide ESTADO_16_FASE_SUPERADA; dura 6,4 s.
La tarjeta llega arriba (0x9B)
Lo pide TARJETA_SUBE_LLEGA; es también la música de fondo cuando el mono lleva la respuesta; dura 4,3 s.
Game over (0x9D)
Lo pide GAME_OVER; dura 3,9 s.
Una pista larga de la tabla (0x9E)
Lo pide ninguna llamada directa: está en la tabla de pistas (0x7A7B); dura 23,4 s.
Otra pista larga de la tabla (0x9F)
Lo pide ninguna llamada directa: está en la tabla de pistas (0x7A7B); dura 23,4 s.