La música

Todo lo que suena aquí sale de ejecutar el motor de sonido del cartucho (un_cuadro_de_sonido, 0x7C5C, y pon_la_melodia, 0x7BCC, 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.

Cotejado con openMSX

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.

Cómo se pide una pieza

pon_la_melodia recibe el número en A, sin mirar prioridad. Los números bajos son efectos y del 0x88 en adelante hay música. Cada canal ocupa doce bytes desde 0xE018 y 0xE03C 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. Solo hay una pieza cotejada con openMSX, la 0x88; las demás salen del mismo motor, pero no se ha comparado cada una.

Las músicas

La música del combate (0x88)

Lo pide escena_3_arranca_la_musica, escena_4_el_combate, premio y apunta_el_enemigo; dura 29,9 s y vuelve a empezar en el segundo 0,0.

El final de la partida (0x8F)

Lo pide se_acabo_la_partida; dura 2,9 s.

La caída (0x8A)

Lo pide modo_3_la_caida_si_no_2; dura 3,0 s.

Pista 0x89 de la tabla (0x89)

Lo pide ninguna llamada directa: está en la tabla de pistas; dura 32,8 s y vuelve a empezar en el segundo 2,9.

Pista 0x8B de la tabla (0x8B)

Lo pide ninguna llamada directa: está en la tabla de pistas; dura 34,2 s.

Pista 0x8D de la tabla (0x8D)

Lo pide ninguna llamada directa: está en la tabla de pistas; dura 2,9 s.

Pista 0x8E de la tabla (0x8E)

Lo pide ninguna llamada directa: está en la tabla de pistas; dura 2,9 s.

Pista 0x90 de la tabla (0x90)

Lo pide ninguna llamada directa: está en la tabla de pistas; dura 2,9 s.

Pista 0x91 de la tabla (0x91)

Lo pide ninguna llamada directa: está en la tabla de pistas; dura 2,9 s.