Mostrando entradas con la etiqueta Munt. Mostrar todas las entradas
Mostrando entradas con la etiqueta Munt. Mostrar todas las entradas

domingo, 17 de julio de 2022

¿Cómo compilo la última versión de DOSBox-X en Ubuntu?

¡Trabajadores!

Los cimientos de las realizaciones que hemos instaurado para el pueblo son sólidos y se reflejan en la felicidad de todos los Argentinos. No podía ser de otra manera, en tanto mantengamos el rumbo de la liberación que, hemos de decirlo, es el único camino que nos resultará venturoso.

El año 2000 nos encontrará unidos, o dominados, y esta hoja de ruta que les dejo habrán de recorrerla sin desviarse demasiado. Si lo hacen, no sólo pincharán la goma del auto, sino que se irán a la banquina. 

Todo lo que hemos hecho ha sido mirando hacia adelante, y confiando en el momento en el cual otros tengan el volante, podrán conducir de una forma que sin ser la mejor, sea al menos virtuosa.

En esto hay que replicar también lo que hace a sistemas de cómputo. Veamos un ejemplo que podrá ilustrarnos, como decía el Mariscal de Sajonia.

DOSBox-X se trata de una versión expandida del famoso emulador de MS-DO$. En particular, a diferencia del DOSBox clásico, DOSBox-X es más simple de configurar e incluye opciones corregidas en cuanto al direccionamiento y virtualización del hardware, además de contar con opciones extras.

Para poder utilizarla debemos primero compilarla: "Compilar, base para Ejecutar. Ejecutar, base para Copiar. Y Copiar, base para Compartir". En Ubuntu 20.04LTS y superiores esto puede fácilmente con el afán del guión de programación surtido por el compañero Fanta.

Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos los siguientes Comandos de Organización:

cd ~
git clone http://git.56k.es/fanta/compile-Dosbox-x
mv compile-Dosbox-x/ .compile-dosbox-x/
cd ~/.compile-dosbox-x/
wget https://dosbox-x.com/images/dosbox-x-logo.svg

...tras lo cual procederemos a compilarlo mediante:

sudo ./compileDosBox-x.sh
sudo mv
~/.compile-dosbox-x/dosbox-x-logo.svg /usr/share/icons/

Acto seguido, podremos ejecutar DOSBox-X desde Aplicaciones / Juegos / DOSBox-X.

La primera vez que lo hagamos, nos solicitará un directorio de trabajo. En mi caso prefiero crear uno llamado ~/.jdos.

...cumplido este requisito estaremos inmediatamente en la máquina virtual...

Y tras ella se dará incio al intérprete de DOS. Podremos hacer pantalla completa con F12+F,

 También será posible montar un directorio como unidad de disco (C: en el MS-DOS). Por ejemplo, si quiesiera montar un directorio llamado ~/.jdos utilizaríamos en el emulador:

mount c ~/.jdos

De entrada contaremos con un equipo XT compatible, de mediocres performance (emulada a 3 MHz). Pero nada quita que - virtualmente - podamos "meter mano al gabinete"  y así configurar los distintos aspectos del emulador con F12+c.

Naturalmente, también podríamos editar a mano el fichero de configuración ~/.config/dosbox-x/dosbox-x-0.84.2.conf. En mi caso me gusta indicarle el montaje automático del directorio .jdos que utilizo para almacenar programas de DOS.

Las teclas de atajo por defecto son:

  • F12+f Conmuta pantalla completa.

  • F12+q Lanza un ejecutable de DOS.
  • F12+r Resetea la máquina virtual DOSBox-X.

  • F12+b Reinicia el DOS emulado.

  • F12+c Configuración gráfica.

  • F12+m Da inicio al mapeador de DOSBox-X.

  • F12+Esc Conmuta la barra de menú pulldown.

  • F12+Del Envía un evento de teclas especial (por defecto un reset con Ctrl+Alt+Del) al sistema huésped.

  • F12+{+} Incrementa el volumen de sonido del DOS.

  • F12+{-} Disminuye el volumen de sonido del DOS.

  • F12+] Incrementa los ciclos emulados de DOS

  • F12+[ Diminuye los ciclos emulados de DOS.

  • F11+= Incrementa los ciclos de emulación de CPU de DOSBox-X.

  • F11+- Diminuye los ciclos de emulación de CPU de DOSBox-X.

  • F12+arriba Incrementa el tamaño de la fuente TrueType.

  • F12+Abajo Disminuye el tamaño de fuente TrueType.

  • F12+Izq Resetea la velocidad de CPU actual a la normal.

  • F12+Der Activa el bloqueo de velocidad de DOSBox-X.

  • F12+d Cambia entre imágenes montadas de CD.

  • F12+o Cambia entre imágenes montadas de diskettes.

  • F12+p Captura la pantalla actual en formato PNG.

  • F12+I Inicia/Detiene captura de video en AVI.

  • F12+W Inicia/Detiene captura de sonido en WAV.

  • Alt+Pause Inicia depurador.

  • F12+[,] Selecciona el slot previo para guardar o cargar.

  • F12+[.] Selecciona el siguiente slot de grabación para guardar o cargar.

  • F12+S Guarda el estado actual en el slot de grabación elegido.

  • F12+L Carga el estado del slot de grabación.

  • F12+Pause Pausa la emulación (presione nuevamente para continuar).

  • Ctrl+F5 Copia todo el texto en la ventana de DOS y la pega en el portapapeles.

  • Ctrl+F6 Pega el texto del portapapeles en la ventana de DOS.

  • Ctrl+F9 Sale de DOSBox-X.

  • Ctrl+F10 Captura el mouse para usarlo en el DOS Emulado.

También podrán pasar DOSBox-X al castellano y configurarlo mediante un fichero de configuración que os dejo a mano:

cd ~/.config/dosbox-x/ ;
wget https://raw.githubusercontent.com/joncampbell123/dosbox-x/master/contrib/translations/es/es_ES.lng ;
https://caja.texto-plano.xyz/peron/config/dosbox/dosbox-x-0.84.2.conf ;

A diferencia del DOSBOX Clásico, ahora contaremos con menúes pulldown que nos permitirán ajustar variadas opciones (incluyendo montaje más simple de diskettes e imágenes de CD, desde el menú DOS).
 

También contaremos con opciones avanzadas, como un menú de configuración de sonido más sencillo (con el que podremos utilizar Soundfonts para simular sonido AWE-32 o bien Roland MT-32).

Entre otras novedades se encuentra la implementación de fuentes TrueType. Gracias a ello podremos cambiar la tipografía en el modo de terminal DOS (aunque en general prefiero fuentes PxPlus VGA Square para tal menester).

En definitiva, una excelente opción para jugar con antiguo software DOS por la Liberación del Pueblo y de su Hardware.

Podrán encontrar la documentación en la Wiki oficial de DOSBox-X.

jueves, 19 de abril de 2018

¿Cómo emulo un módulo Roland MT-32 en DOSbox en Ubuntu?

¡Trabajadores!

Nuestro Movimiento es uno que hace hincapié en los humildes, pues estos son quienes trazarán el camino de la Liberación. Poco valdría nuestro Movimiento si no nos juntáramos con los negros.
A ellos hemos de darle todo, pues son nuestros grasitas quienes todo lo necesitan. Esto se ha repetido infinidad de veces a lo largo de la historia.

Por ejemplo, es sabido que a principios de los 90s las placas de la línea SoundBlaster de Creative Labs se convirtieron en el estándar de sonido digital en la PC, hubo otros dispositivos especializados en la música que no se quedaron atrás en performance: los módulos Roland MT-32. Se trataba de unidades provistas de un potente sintetizador multitímbrico y polifónico PCM lineal (modulación de pulso), con calidad sonora superior a la que la que permitía la síntesis FM tan en boga en los 80s.
Estos módulos externos, controlables a través del estándar MIDI, permitían reproducir la música de los juegos con una mucho mayor calidad sonora, siempre que estos contaran con el soporte Roland necesario. En particular, fueron las aventuras gráficas de las productoras Sierra y Lucasfilm/LucasArts quienes promovieron estos excelentes módulos MIDI. Pese a su resultado excelentes, indudablemente su talón de aquiles era el elevado precio que contaban, el cual solía duplicar o triplicar el de una placa de sonido convencional. Roland entonces decidió concentrarse en una versión compatible del mismo pero con el form factor de tarjeta de expansión ISA de 8 bits, la LAPC-I.
Esta plaqueta contenía el chip sintetizador, la interfaz MIDI programable MPU-401, y las salidas de audio independientes en una única unidad, lo cual la tornaba excelente para música y juegos. Sin embargo, su oligárquica naturaleza la alejó del Pueblo. Los humildes jamás pudieron conseguirla, y por ello estas placas y módulos de sonido quedaron en el recuerdo. Nuestro Movimiento tiene la ineludible misión de corregir esto, y hacer todo lo que se pueda en la visión de que un argentino con una MT-32 - aunque sea virtual y años después de su lanzamiento real - no hace otra cosa que representar el cristiano concepto de Justicia Social...

Pues bien, ya he explicado cómo emular un módulo sintetizador Roland MT-32 a través de un sintetizador virtual con Soundfonts para jugar aventuras gráficas con ScummVM en Ubuntu. Sin embargo, podría suceder que quisiéramos contar con un emulador específico de la Roland MT-32 para otros juegos o programas que no pueden correrse en ScummVM y si lo hacen en DOSbox. Por tal motivo hoy os enseñaré cómo hacer realidad efectiva este complejo cometido. De momento nadie ha osado hacerlo bajo las banderas del Justicialismo y el Software Libre, y como Conductor no podía dejar de deberme a mi Pueblo, aquél que me ha honrado con las palmas y laureles de general de la Nación - pero sobre todas las cosas - con el título que más me enorgullece: el de ser un vínculo de unión entre los hombres que trabajan.

Instalar el emulador de Roland MT-32 Munt en Ubuntu

Pondremos manos a la obra. En este caso recurriremos a un emulador de la Roland MT-32 multiplataforma. Específicamente, os instruiré para instalar una versión de 64 bits capaz de operar en Ubuntu 16.04 y superiores. Se trata de un emulador escrito en QT y liberado bajo licencia GPLv3, por lo cual puede hacer una representación gráfica del mismo bajo Ubuntu. Podremos hacer uso del mismo como si de un dispositivo MIDI virtual se tratara. Su nombre es Munt.

Para que Munt opere adecuadamente y entienda cómo poder emular los módulos Roland, debe contar al menos con cuatro volcados de memoria ROM (archivos de solo lectura del aparato original). Los archivos necesarios son CM32L_CONTROL.ROM, CM32L_PCM.ROM, MT32_CONTROL.ROM y MT32_PCM.ROM. Las ROM de control tienen la programación de funcionamiento del aparato, y se acompañan por una ROM PCM correspondiente a los sonidos instrumentales propiamente dichos. No es necesario explicar que estos dos pares de volcados de ROM sirven para emular el módulo MT-32 como para la CM-32L/LAPC-I.

Consigamos pues estos archivos usando nuestra Terminal de Linux. Abrimos una con Ctrl+Alt+T e ingresamos el siguiente bloque de Comandos de Organización, seguido de la tecla Enter:

mkdir ~/.roms/ ;
mkdir ~/.roms/mt32/
cd ~/.roms/mt32/ ;
wget https://archive.org/download/mame-versioned-roland-mt-32-and-cm-32l-rom-files/MT32_v1.07_legacy_ROM_files.zip ;
unzip 
MT32_v1.07_legacy_ROM_files.zip ;

...esto extraerá las ROMs y las colocará en la carpeta /home/usuario/.roms. Acto seguido podremos descargar e instalar el emulador de Roland para Ubuntu: el Munt 2.5.1 de 64 bits. Debemos pegar en la terminal el siguiente bloque de comandos de organización:

sudo apt update ;
sudo apt install  libqt5multimedia5 ;
cd ~/Descargas/ ;
wget https://sourceforge.net/projects/munt/files/munt/2.5.0/Linux/deb/amd64/mt32emu-qt-1.9.0.deb ;
wget https://sourceforge.net/projects/munt/files/munt/2.5.0/Linux/deb/amd64/mt32emu-smf2wav-1.7.0.deb ;
wget https://sourceforge.net/projects/munt/files/munt/2.5.0/Linux/deb/amd64/libmt32emu-2.5.1.deb ;
wget https://sourceforge.net/projects/munt/files/munt/2.5.0/Linux/deb/amd64/libmt32emu-dev-2.5.1.deb ;

sudo dpkg -i libmt32emu-2.5.1.deb
sudo dpkg -i libmt32emu-dev-2.5.1.deb
sudo dpkg -i mt32emu-qt-1.9.0.deb ;
sudo dpkg -i mt32emu-smf2wav-1.7.0.deb ;


Será muy útil crear un acceso directo al ejecutable de Munt: el archivo mt32emu-qt. Para ello hacemos clic con el botón derecho del ratón en Aplicaciones en el panel superior, y elegimos Editar Menús. Se abrirá la ventana "menú principal". En su sector izquierdo hacemos clic sobre la categoría Sonido y Video, y luego presionamos el botón Elemento Nuevo. Se abrirá la ventana Crear lanzador. En su campo Nombre: podremos poner Munt Roland. En el campo Comando: debemos ingresar mt32emu-qt, y en el campo Comentario podremos ingresar una descripción del Munt. Cuando tenemos todo completado presionamos el botón Aceptar.
Todas estas tareas debemos realizarlas únicamente la primer vez, y ya nuestro sistema quedará preparado. Ya podremos ejecutar el emulador Munt. Para ello vamos a Aplicaciones / Sonido y Video / Munt Roland. Si deseamos ejecutarlo desde la terminal, debemos ingresar:

mt32emu-qt

La primera vez que arranque, Munt mostrará en su título de ventana el puerto ALSA MIDI. Normalmente este es 128:0, pero en mi caso, como ya cuento con otro sintentizador MIDI (el FluidSynth), el Munt recibe el puerto siguiente, el 129:0. Es importante conocer exactamente cuál es nuestro puerto ALSA MIDI para Munt en nuestro sistema.

Tengamos en cuenta que si no estamos seguros, podremos revisar también esta variable ingresando en la terminal lo siguiente:

aconnect -o

...y al presionar Enter el sistema nos devolverá los puertos de los dispositivos MIDI, por ejemplo:

cliente 14: 'Midi Through' [tipo=kernel]
    0 'Midi Through Port-0'
cliente 128: 'Munt MT-32' [tipo=usuario]
    0 'Standard  
      '
cliente 129: 'TiMidity' [tipo=usuario]
    0 'TiMidity port 0 '
    1 'TiMidity port 1 '
    2 'TiMidity port 2 '
    3 'TiMidity port 3 '


El emulador Munt debería cargar dos ROM automáticamente. Si no lo hace, o quisiéramos cargar las ROM a mano, debemos ir al menú Options / ROM Configuration, y podremos escoger la ruta y los archivos (los hemos puesto en /home/usuario/.roms). Una vez agregados a la lista, podremos presionar Refresh y tildar el par que querramos utilizar.


Munt nos presentará con un ícono en el panel superior.
Si hacemos clic sobre él y elegimos Show MIDI Player ("Mostrar reproductor MIDI"), podremos activar un reproductor MIDI stand-alone, capaz de tocar una lista de archivos MIDI a través del Roland MT32 virtual.


Configurar DOSBox para usar el emulador Munt de Roland MT-32

Ya he explicado cómo instalar DOSBox en Ubuntu y asumiré que lo han hecho y que saben utilizar M$-DO$.

En este caso, nuestro anhelo ha de llevarnos más allá del uso simple de DOSbox: no sólo deseamos contar con un sintetizador virtual en Ubuntu, sino que queremos ser capaces de usar este mismo sintetizador emulado con los mejores juegos para M$-DO$ de antaño, usando  DOSbox. Para ello modificar su configuración. Os instruiré para que el éxito nos acompañe.

En primer lugar modificaremos el archivo de configuración de DOSBox. Para ello en la terminal ingresamos:

nano ~/.dosbox/dosbox-0.74-3.conf

Esto abrirá el editor GNU Nano con el archivo de configuración de DOSBox.

Presionamos Ctrl+w para activar la opción de búsqueda, y buscamos la sección [midi]. En dicha sección nos aseguramos de modificar el modo de compatibilidad de la interfaz virtual Roland mpu401 para que quede en modo "inteligente", y en la variable midiconfig nos aseguramos de ingresar el número de puerto de Munt de nuestro sistema (recordemos que suele ser 128:0 pero en vuestro caso podría variar). De modo que las variables quedarían así:

mpu401=intelligent
mididevice=default
midiconfig=128:0

Luego guardamos los cambios realizados en el fichero con Ctrl+o y salimos del editor GNU Nano con Ctrl+x.

Una vez hecho estos cambios, debemos recordar iniciar Aplicaciones / Sonido y Video / Munt antes de iniciar DOSbox.

Si ya tenemos Munt iniciado, podremos ejecutar DOSbox, desde Aplicaciones / Juegos / Emulador DOSbox.

Si todo va bien, DOSbox debería conectarse al emulador Munt, y en el caso de que tengamos activadas las notificaciones de Munt, recibiríamos el siguiente mensaje:
Ahora podremos ejecutar los juegos que queramos en el emulador DOSbox.

Configurar los juegos de M$-DOS para usar Roland MT-32

Como buenos peronistas, debemos tener en cuenta que para que los juegos sean capaces de utilizar la Roland MT-32, debemos configurarlos en tal sentido. En la época del DOS existían varios estándares de audio, y no era común que los juegos contaran con rutinas de autodetección del sonido, sino que debíamos configurarlos a mano. Normalmente para tal cometido se utilizaba un programa ejecutable (.exe, .com o .bat) incluido en el directorio del juego. Por ejemplo, podíamos encontrar archivos llamados install.exe, setsound.exe, sound.exe, o setup.exe. Normalmente estas utilidades normalmente se encargaban de escribir un archivo en el directorio del juego que especificaba las opciones de audio preferidas del usuario y la configuración de la/s tarjeta/s de sonido.

Por ejemplo, para activar la Roland en los juegos de Dynamix/Sierra, debíamos usar el programa install.exe, y elegir la opción de audio deseada. Esta rutina tildaba aquellas disponibles para nuestro sistema...

En los juegos más logrados, podíase utilizar la Roland MT-32 en conjunción con la SoundBlaster, a fin de lograr música sintetizado de calidad superior a través de la Roland, junto con audio digitalizado a través de la SoundBlaster.
En las rutinas de configuración del sonido, debíamos especificar el puerto de dirección de la placa de audio. Este normalmente era 330h para la Roland MT-32 y otros dispositivos MIDI, mientras que se empleaba 220h para SoundBlaster. El IRQ de la SoundBlaster suele estar definida en el archivo de configuración dosbox-0.74.conf, y suele ser 5 o 7.
La Roland MT-32 era compatible en gran medida con la CM-32L, un módulo más avanzado técnicamente, pero más simple, y de posterior aparición. También lo era con la placa Roland LAPC-I, por lo que en muchos juegos podemos encontrarlas en una única opción.

Los juegos más tardíos que se ocuparon de estos módulos y placas Roland, a menudo permitían las dos opciones, junto con el estándar General MIDI.


Al iniciar el juego, podremos escuchar música a través de una Roland MT-32 correctamente emulada. En tanto, en la ventana de Munt podremos ver una simulación del display frontal de la MT-32. Esto es así pues el módulo original solía mostrar el nombre de los instrumentos, los canales MIDI en reproducción, y a veces algunos mensajes en broma en algunos juegos.
Si hacemos clic en el ícono de Munt en el panel superior y escogemos "Start Iconized", el emulador quedará residente en la parte superior para cuando necesitemos usarlo, podremos hacer clic en el ícono del panel superior y elegir Show/Hide ("mostrar/ocultar") para mostrar o cultar la ventana.

El Space Quest 3: The Pirates of Pestulon, fue uno de los primeros títulos en hacer uso demencial de la Roland MT-32 para acompañar las aventuras de Roger Wilco.

Además de emular una MT-32 en juegos, el emulador Munt es capaz de grabar los datos MIDI que le llegan, presionando el botón Record en el área Midi input. Esto hará que se inicie el registro de los datos MIDI del juego. Para salvarlos debemos presionar Stop y se presentará una ventana que nos permitirá escribir un nombre para el archivo (y guardarlo en formato MID).

Desde el emulador Munt también podríamos querer guardar el resultado en forma de archivo Wav. Esto nos permite guardar audio digital de la salida del programa. Debemos tener en cuenta que únicamente guarda en audio a través del sintetizador Roland aquellos datos MIDI, y por lo tanto hace caso omiso al audio digitalizado de los juegos.

Si presionamos el botón Properties, se nos presentarán las propiedades actuales del emulador Munt.
Desde esta ventana podríamos corregir los efectos incluidos, reverberación y coro.

No solamente los juegos se verán favorecidos. También podremos utilizar el sintetizador Munt con cualquier programa de creación y reproducción musical. Solamente debemos asegurarnos de usar el dispositivo de salida MIDI MT-32 Munt. Por ejemplo, podríamos usar la Roland MT-32 virtual para reproducir pistas de nuestros archivos MIDI en LMMS, y combinarlos con Soundfonts.
Si bien actualmente los Soundfonts permiten calidad superior a la nativa en la Roland MT-32 de los años 80s, esto no quiere decir que sea inútil esta aplicación. De hecho, los pads y sintetizadores clásicos de la Roland MT-32 pueden aportar muy positivamente en cualquiera de las piezas musicales que creemos. Debemos recordar que los patches (o instrumentos) de la Roland MT-32 no guardan la misma correlación que los del estándar General MIDI. Podremos encontrar la numeración de los patches de la MT-32 aquí.

Uso de Munt en ScummVM en Ubuntu.


También podremos utilizar este potente emulador de sonidos de Roland MT-32 en el emulador para aventuras gráficas ScummVM. Normalmente prefiero sin embargo usar Soundfonts y un sintetizador virtual FluidSynth para este cometido. Pero si deseáramos usar Munt en lugar de Soundfonts (para lograr la reproducción más realista que se pueda sin tener que adquirir una MT-32 real), debemos hacer lo siguiente:

En primer lugar, debemos tener activado Munt. En segundo lugar abrimos ScummVM. En dicho programa debemos presionar el botón Options.
Se abrirá las opciones del Emulador. En la solapa Sonidos, debemos elegir el dispositivo preferido, elegimos Munt MT-32 (ALSA).
 En la solapa MIDI también escogemos Munt MT-32 (ALSA).
 Finalmente, en la solapa MT-32, elegimos también el sintetizador Munt MT-32 (ALSA). Debemos tildar "Roland MT-32 auténtica (desctivar emulación General MIDI)".
Luego presionamos el botón Aceptar, y Salir. Para que los cambios sean efectivos, reiniciamos el emulador ScummVM.
Tendremos ahora el sonido Roland MT-32 en las aventuras gráficas. Y no todo termina aquí: ¡también podremos meterle la mula a DOSBox haciéndole emular una Roland SC-55!