Tocadiscos arcade
Publicado: 06 Oct 2014, 15:00
Hola a todos,
Quizá por la fiebre del evento del sábado de va-de-retro o por todos los magníficos documentales de música de videojuegos que está sacando RedBull, se me ocurrió hacer un tocadiscos arcade. La idea es hacer un programa para el arcade en cuestión que sustituye la ROM principal de código y que reproduce las músicas una tras otra. En algunos juegos ya sabréis que se puede entrar en el modo test, buscar el código de la música en el menú de test y reproducirla. Esta idea serviría para aquellos títulos en que no está disponible ese modo y para aquellos en los que sí lo está pero uno quiere que suenen todas las canciones una detrás de otra.
He hecho una pequeña prueba con el Ghosts'n Goblins. Este código toca los primeros 4 segundos de las principales melodías. Hay que ensamblarlo y grabar el resultado como gg3.bin. Entonces reemplazamos el original gg3.bin (que tendréis en un archivo gng.zip de vuestro directorio de ROMs) e invocamos "mame gng". MAME avisará de que el CRC está mal -claro, hemos cambiado una ROM- pero arrancará igual. Una vez arrancado sonará una música y cuatro segundos después otra, etc.
¡A ver qué os parece!
Y el fichero ya ensamblado y listo para usarse aquí
Quizá por la fiebre del evento del sábado de va-de-retro o por todos los magníficos documentales de música de videojuegos que está sacando RedBull, se me ocurrió hacer un tocadiscos arcade. La idea es hacer un programa para el arcade en cuestión que sustituye la ROM principal de código y que reproduce las músicas una tras otra. En algunos juegos ya sabréis que se puede entrar en el modo test, buscar el código de la música en el menú de test y reproducirla. Esta idea serviría para aquellos títulos en que no está disponible ese modo y para aquellos en los que sí lo está pero uno quiere que suenen todas las canciones una detrás de otra.
He hecho una pequeña prueba con el Ghosts'n Goblins. Este código toca los primeros 4 segundos de las principales melodías. Hay que ensamblarlo y grabar el resultado como gg3.bin. Entonces reemplazamos el original gg3.bin (que tendréis en un archivo gng.zip de vuestro directorio de ROMs) e invocamos "mame gng". MAME avisará de que el CRC está mal -claro, hemos cambiado una ROM- pero arrancará igual. Una vez arrancado sonará una música y cuatro segundos después otra, etc.
¡A ver qué os parece!
Código: Seleccionar todo
; GnG music player
; concept test by jotego. Contact twitter @topapate
; Assemble with target name "gg3.bin". Replace the gg3.bin used in MAME
; with this file. Run MAME, ignore the CRC error message and the program
; will run, playing GnG melodies directly without the game.
org $8000
sound_latch equ $3A00
frames equ $0000
seconds equ $0002
current equ $0004
init: orcc #$FF ;Disable all interrupts
leas [$200] ;Stack
clra
tfr a,dp
clrb
leay [frames]
std ,y
std seconds
leax [sound_latch]
lda #$2B ; Main theme
sta ,x
andcc #$00
wait: ldb seconds+1
cmpb #4 ; play 4 seconds and then move to next tune
blt wait
inca ; gone over one full minute
cmpa #$30
blt l1
lda #$2B
l1: sta ,x ; update tune
clrb
stb seconds+1
bra wait
irqsrv: lda ,y
inca
cmpa #60
beq marco
sta ,y
rti
marco: clra
sta ,y
ldd seconds
incb
adca #0
std seconds
rti
; interrupt vectors:
org $8000+$7FF8
dw irqsrv
org $10000-2
dw init
Y el fichero ya ensamblado y listo para usarse aquí