M1 es un software que tiene su versión para GNU+Linux pero que buscando por internete no veo que nadie indique como usarlo. Solamente se ven artículos de este software pare ser usado en Windows.
Este post por tanto es para dejar escrito como puede utilizarse en GNU+Linux con la finalidad de extraer la música de roms MAME.
Instalar las dependencias
Lo primero es instalar dependencias que vamos a precisar.
En Debian por ejemplo así (como root):
# apt install mame alsa-oss audacity ffmpeg
En Arch por ejemplo así (como root):
# pacman -S mame alsa-oss audacity ffmpeg
Descargar unos juegos para probar a extraer el sonido
Descargamos M1 y lo descomprimimos (con 2 roms de Street Fighter y Snow Bros):
$ wget "https://rbelmont.mameworld.info/m1078a6-lnx.tar.bz2" $ tar xfvj m1078a6-lnx.tar.bz2 $ cd m1_078a6/ $ wget "http://fanta.56k.es/emulation/MAME_good_games/snowbros.zip" -O roms/snowbros.zip $ wget "http://fanta.56k.es/emulation/MAME_good_games/sf2ce.zip" -O roms/sf2ce.zip
La forma rara de ejecutarlo
Por un lado es importante saber que vienen 2 ejecutables. Uno se llama m1 y otro m1-x64 .
Lo normal es que actualmente uses el m1-x64 en tu máquina.
La forma normal de usarlo sería así:
./m1-x64 -m0 -r44100 -s0 snowbros
Pero eso fallará posiblemente. No escucharás nada o se cerrará. Para escuchar algo aunque mal posiblemente tendrás que cambiar -s0 por s1 (0=OSS, 1=ALSA)
./m1-x64 -m0 -r44100 -s1 snowbros
Recordemos que OSS desde hace tiempo no se usa. Por el contrario si ALSA y PulseAudio.
1. OSS (El más viejo)
2. Alsa
3. PulseAudio (el más joven)
De modo que el truco del almendruco es forzar la emulación de OSS así antes de ejecutarlo (esto mejor en otra terminal como root).
# modprobe snd-pcm-oss
Entonces ya podemos usar M1 con OSS y aunque no escucharemos nada si podemos añadirle la opción -w para que guarde como WAV la musiquita.
Esto se puede hacer así:
./m1-x64 -w -m0 -r44100 -s0 snowbros
Con el + y – podemos pasar de pista, con space parar o reanudar, con el 0 repetir, …
Es muy importante el 0 para repetir la pista. Cuando pasamos de una pista a otra (la siguiente por ejemplo pulsando +) no almacenará automaticamente la canción en wav.
Una vez pasamos de canción es importante pulsar 0 para que se ponga a guardar el wav desde el comienzo.
Con -w se puede indicar que se quiere grabar. Se grabará en el directorio waves.
Luego el archivo puedes reproducirlo con aplay, audacity si quieres editarlo, vlc, …
Importante desactivar la emulación OSS para reproducirlo.
Jugar los juegos
Puedes jugar a los juegos así:
$ mame snowbros -rompath roms/ $ mame sf2ce -rompath roms/
Metiendo monedas con la tecla 5 y para 1 player el 1.
Saludos cordiales.