Personas / Compañías
Tecnologías
Curiosidades
Otros Juegos
TUTORIAL DOSBOX Y DBGL (III)
Mejorando el Sonido MIDI
02 - 06 - 2020
En el primer tutorial de esta serie vimos cómo descargar e instalar DOSBox y DBGL, así como configurar de manera muy básica un juego de disquetes preinstalado. También tocamos brevemente el tema del sonido, aprendiendo a emular una tarjeta de sonido Sound Blaster.
En el segundo tutorial aprendimos a configurar un juego en CD o disquetes, montando un lector virtual o usando directamente una imagen del disco. También detallamos las distintas opciones de DOSBox en cuanto a procesador, memoria, gráficos, teclado…
Este tutorial voy a dedicarlo a profundizar en la configuración de sonido, algo a lo que no se le suele prestar demasiada atención, pero que nos puede dar muchas alegrías con poco esfuerzo. En concreto vamos a ver cómo emular otras tarjetas de sonido distintas a la Sound Blaster 16 (la Roland MT-32 y la Gravis Ultrasound) y también cómo usar el protocolo General MIDI para reproducir la música MIDI a través de un programa externo y usar las fuentes de sonidos que más nos gusten.
Pero, ¿por qué emular otras tarjetas de sonido? ¿Qué diferencias hay entre ellas? Para explicar esto es necesario un poco de historia...
TABLA DE CONTENIDOS:
2. Cómo emular una Roland MT-32
Un poco de historia
«En el principio fue el PC speaker, y era una basura». Así podría comenzar una breve historia del sonido en los ordenadores PC.
En efecto, hasta que empezó a extenderse el uso de las tarjetas de sonido a finales de los años 80, la única forma que tenían los PC de producir sonidos era a través del altavoz interno o PC speaker. Este dispositivo fue creado con una única función en mente: llamar la atención del usuario mediante pitidos cuando saltaban avisos o errores del sistema. Sin embargo, como la necesidad agudiza el ingenio y los diseñadores de videojuegos no tenían otra herramienta a su alcance, empezaron a usarlo de forma creativa para generar los sonidos y la música de sus juegos.
Como era de esperar el resultado es horroroso, lo cual no le quita mérito a aquellos hackers que inventaron mil y un trucos para que el altavoz interno sonase lo mejor posible. Incluso hubo quien se las ingenió para que reprodujera sonidos digitalizados, como Acces Software con su tecnología RealSound. Sí, la calidad seguía siendo muy pobre, pero en una escala de logros este está sólo unos puntos por debajo de hacer hablar a tu lavavajillas.
En 1987 aparece la tarjeta de sonido AdLib, que permitía reproducir música en formato MIDI y que, a pesar de no tener un sintetizador de gran calidad, supuso un salto de gigante respecto al altavoz interno. Con su ajustado precio y la enorme cantidad de juegos que la soportaban, se convirtió durante años en la tarjeta de sonido más extendida entre los usuarios.
Sin embargo esta tarjeta tenía un gran pero: no podía reproducir sonidos reales digitalizados. Esto fue aprovechado por Creative Labs para tomar la delantera con su Sound Blaster, que no sólo podía grabar y reproducir sonidos reales, sino que usaba el mismo chip que AdLib para reproducir la música MIDI, lo que la hacía completamente compatible con los juegos diseñados para su competidora. Todo esto, sumado a un precio moderado, la convirtieron en poco tiempo en el nuevo estándar del sector.
En 1992 AdLib intentó recuperar el liderazgo perdido sacando el modelo Gold 1000, esta vez con soporte para sonido digital, pero para entonces ya era tarde. Creative contraatacó ese mismo año con la Sound Blaster 16, con numerosas mejoras y considerablemente más barata que su competidora, lo que acabó llevando a AdLib a la bancarrota.
Y así acaba la historia principal, con las tarjetas Sound Blaster reinando sin discusión durante toda la década de los 90. Sin embargo, bajo la sombra de estos dos titanes proliferaron muchas otras tarjetas de sonido, algunas de ellas mucho mejores que las que habían dominado el mercado. De entre todas ellas quiero destacar dos:
Roland MT-32: Salió el mismo año que la AdLib y le daba cien vueltas a esta en calidad de reproducción MIDI. Si no se convirtió en estándar fue debido a su elevado precio, ya que estaba pensada para un uso más profesional. Además no podía reproducir audio digital.
Gravis Ultrasound: Esta tarjeta introdujo en el mundo del PC la creación de música basada en samples o muestras, es decir, que en lugar de simular el sonido de los instrumentos mediante un sintetizador, se trabajaba a partir de sonidos reales, procesados y modulados para adaptarse a las posibles variaciones. Lo que la impidió competir con Sound Blaster fue el escaso apoyo que recibió de los desarrolladores de videojuegos, que en muchos casos no incluían soporte para ella. Además, sus creadores tampoco consiguieron una compatibilidad aceptable con los juegos que ya existían antes de que saliera al mercado.
Gracias a la emulación, hoy en día podemos disfrutar la música de los videojuegos clásicos como sólo podían hacerlo los potentados de la época, y si os estáis preguntando si realmente merece la pena complicarse en este asunto, os animo a que lo juzguéis por vosotros mismos:
Comparación de AdLib/Sound Blaster vs. Roland MT-32
Comparación de AdLib/Sound Blaster vs. Gravis Ultrasound
Sí que hay que aclarar que la emulación no está conseguida al 100% en ninguno de los dos casos y no vais a obtener el sonido exacto que conseguían estas tarjetas, pero la mejora sigue siendo impresionante.
Cómo emular una Roland MT-32
Para emular esta tarjeta necesitaremos un programa externo llamado Munt. Vamos a ver los pasos para descargarlo y configurarlo:
1. Vamos a la página de descarga del programa y pulsamos en el botón “Download”:
2. Una vez descargado el programa lo instalamos en la carpeta que queramos.
3. Para poder funcionar Munt necesita los archivos con las ROM originales de la tarjeta y por motivos legales no vienen incluidos con el programa. Por esos mismos motivos legales no puedo dejaros aquí ningún enlace de descarga, aunque son muy fáciles de encontrar por la web.
Que cada uno examine su conciencia. Yo tengo clara mi opinión sobre un producto de 1987 que ya no puedo comprar a sus creadores y que sólo se encuentra en el mercado se segunda mano…
4. Una vez obtenidas las ROM iniciamos Munt y nos aparece la pantalla principal:
5. Vamos a Options > ROM Configuration:
6. Aquí pulsamos en el botón a la derecha de “ROM Directory” para seleccionar la carpeta donde hemos descargado las ROM. Todas las ROM válidas que encuentre Munt en esa carpeta aparecerán listadas en la parte de abajo.
Marcamos la casilla de las que queramos utilizar, teniendo en cuenta que necesitamos dos: “MT32_CONTROL.ROM” y “MT32_PCM.ROM” (al buscar por la web es normal encontrar varias versiones de cada una de estas ROM y los nombres pueden variar un poco). Pulsamos “OK”.
7. Ya tenemos instalado y configurado Munt. Ahora tenemos que averiguar qué número le ha dado Windows en la lista de sintetizadores MIDI que hay en nuestro sistema.
Para ello vamos a la carpeta donde tengamos guardado DOSBox (si seguisteis las recomendaciones de los anteriores tutoriales la tendréis guardada dentro de la carpeta DBGL) y ejecutamos “DOSBox.exe”. Os aparecerá esta pantalla:
Aquí escribimos mixer /listmidi y nos aparecerá un listado como este:
Como podéis ver, en mi equipo el reproductor MIDI de Munt tiene el número “3”.
8. Con esta información vamos a DBGL. Seleccionamos el juego que vamos a configurar con Roland MT-32 y pulsamos Edit profile > Audio. En esta ventana lo que nos interesa es el campo Config dentro de “General”, donde pondremos el número que tiene Munt en la lista de reproductores MIDI:
9. Por último un par de cosas:
- Hay que tener el progama Munt abierto cuando ejecutemos el juego.
- Debemos ejecutar el programa de configuración del propio juego y seleccionar la Roland MT-32 como tarjeta de sonido. Tened en cuenta que la tarjeta Roland MT-32 no permitía reproducir sonido digital, por lo que muchos juegos dan la opción de seleccionar esta tarjeta para la reproducción de música MIDI y otra diferente (normalmente Sound Blaster) para el sonido. Si veis esta opción, aprovechadla.
Cómo emular una Gravis Ultrasound
DOSBox emula oficialmente la tarjeta Gravis Ultrasound, por lo que no necesitaremos ningún programa externo. Sin embargo, si para emular la Roland MT-32 necesitábamos las ROM, para emular la Gravis Ultrasound necesitaremos los drivers originales. Vamos a ver cómo obtenerlos y configurar DBGL.
1. Por motivos legales no es lícito distribuir libremente estos drivers, por lo que vais a tener que navegar un rato por la web. Hay varios enlaces caídos y son más difíciles de encontrar que las ROM de la Roland, pero estar, están. Es posible que os resulte más fácil localizarlos buscando “ULTRASND411 ULTRASNDPPL161”, que son los nombres de las carpetas que contienen los drivers.
2. Una vez descargados y descomprimidos, lo que tenemos son las dos carpetas citadas:
- La carpeta “ULTRASND411” contiene los drivers y samples originales, y son los que menos problemas os deberían dar.
- La carpeta “ULTRASNDPPL161” contiene unos drivers “tuneados” que pueden dar problemas con algunos juegos.
La diferencia entre ambas es el sonido que tendrán los instrumentos, así que podéis probar las dos para ver cuál os gusta más.
IMPORTANTE: Aquella que queráis utilizar tendréis que renombrarla como “ULTRASND” para que el juego la reconozca.
3. En DBGL, seleccionamos el juego y pulsamos Edit profile > Audio. Lo que nos interesa es el apartado Gravis Ultrasound que está a la derecha:
Aquí marcamos la casilla Enable y en el apartado Ultradir debemos indicar la ruta donde se encuentra la carpeta con los drivers de la Gravis Ultrasound que queramos utilizar.
IMPORTANTE: Para que DOSBox pueda acceder a la carpeta que indicáis en esta ruta, esta debe estar dentro de alguno de los discos duros virtuales que habéis montado (leed el tutorial anterior si tenéis alguna duda sobre el montaje de discos duros).
Tenemos dos opciones:
- Copiar la carpeta con los drivers dentro de la carpeta donde está el juego que vamos a ejecutar, ya que la vamos a montar igualmente (tendríamos que hacer esto con cada juego).
- Montar un segundo disco duro con la carpeta donde se encuentran los drivers.
Todo esto se entiende mejor con un ejemplo:
Para jugar al juego Doom he montado dos discos duros:
Como podéis ver ha montado un disco duro “C” con la carpeta “E:\DOSBOX\JUEGOS\DOOM”, donde se encuentran los archivos del juego.
Además he montado un segundo disco duro “E” con la carpeta “E:\DOSBOX\GRAVIS”, dentro de la cual están las carpetas “ULTRASND411” y “ULTRASNDPPL161” con los drivers.
Como quiero usar los drivers de la carpeta “ULTRASND411” le he cambiado el nombre a “ULTRASND”.
En el apartado Ultradir indico la ruta E:\ULTRASND (hay que recordar que para DOSBox la carpeta “E:\DOSBOX\GRAVIS” va a ser la raíz del disco duro E, por eso NO hay que indicar “E:\DOSBOX\GRAVIS\ULTRASND”):
Esta es una de las opciones. La otra es montar únicamente el disco duro “C” con la carpeta “E:\DOSBOX\JUEGOS\DOOM” y copiar aquí dentro la carpeta “ULTRASND” con los drivers. En ese caso, en el apartado Ultradir pondríamos “C:\ULTRASND”, ya que toda la ruta “E:\DOSBOX\JUEGOS\DOOM” para DOSBox va a ser simplemente el disco duro “C”.
4. Sólo nos queda entrar en la configuración del propio juego y seleccionar la tarjeta Gravis Ultrasound para la reproducción de música y sonido (no todos los juegos dan esta opción). A diferencia de la Roland MT-32 esta tarjeta sí permite reproducir sonido digital, por lo que no tendremos que seleccionar ninguna otra.
Si durante la configuración dentro del juego os pide parámetros como “Address”, “IRQ1”, etc. recordad que tenéis esta información en DBGL, seleccionando el juego y pulsando Edit profile > Audio. La información está en la parte derecha, en el apartado “Gravis Ultrasound”.
Cómo usar General MIDI en DOSBox - DBGL
Vamos a subir ahora el nivel. Si emulando una tarjeta Roland MT-32 o una Gravis Ultrasound dábamos un enorme salto de calidad en la música de los juegos, usando General MIDI podemos dar un salto aún mayor acercando el sonido de la música MIDI al de una orquesta real.
Tomaos un momento para comparar la introducción del juego X-Wing en estos tres vídeos:
Introducción con AdLib / Sound Blaster.
Introducción con Roland MT-32 emulada.
Introducción con General MIDI.
¿Qué os parece? Merece la pena trastear un rato para conseguir ese sonido, ¿verdad?
Aunque podríamos utilizar el sintetizador MIDI que viene incluido con Windows, el Microsoft GS Wavetable Synth, realmente no conseguiríamos ninguna mejora, ya que es bastante basuriento.
Vamos a usar en su lugar un sintetizador externo gratuito, llamado VirtualMIDISynth. Vamos a ver cómo configurarlo:
1. Descargamos el programa de la página oficial yendo a la sección “Download” y lo instalamos donde mejor nos parezca.
2. Antes de usar el sintetizador necesitamos soundfonts o fuentes de sonido, por lo que vamos a descargar alguna de Internet.
En la propia web de VirtualMIDISynth hay un apartado “SoundFonts” donde podemos descargar un gran número de ellas. También podemos buscar en otras páginas, teniendo en cuenta que deben tener el formato “sf2”.
Cuando empecéis a probar distintas soundfonts os daréis cuenta de que no hay ninguna claramente mejor que las demás, es cuestión de gustos. Unas simulan mejor unos determinados instrumentos y otras otros, algunas han sido creadas específicamente para música rock y otras para música orquestal, e incluso las hay que se han configurado teniendo en cuenta un juego concreto, como Doom.
Para guiaros en los comienzos, os puedo dar algunos nombres:
FluidR3_GM: es la que recomienda el creador de VirtualMIDISynth.
Timbres of Heaven: Muy nombrada en los foros de páginas dedicadas a la creación musical.
Musyng Kite: También muy recomendada en dichos foros.
Arachno SoundFont: Creada específicamente para juegos clásicos y testada con ellos. Suena realmente bien con juegos con bandas sonoras rockeras, como Doom.
3. Una vez descargada la fuente de sonido que hayamos elegido, iniciamos VirtualMIDISynth y nos aparece la pantalla principal:
Aquí pulsamos en el signo “+” a la derecha para añadir las soundfont. Nos aparece el explorador de Windows para que indiquemos dónde la hemos guardado.
Una vez seleccionada, la fuente aparece en la pantalla principal:
4. Si queremos tener más de una soundfont cargada en el programa, iremos a la pestaña Opciones y en el desplegable Número de dispositivos seleccionaremos el número de fuentes de sonido distintas que queremos tener cargadas en el programa:
Esto nos obliga a reiniciar el programa para que se apliquen los cambios. Si el programa da error al reiniciar automáticamente no os preocupéis, simplemente iniciarlo de vosotros de forma manual y veréis que los cambios se han aplicado.
De vuelta en la pantalla principal podemos seguir pulsando el signo “+” de la derecha para añadir tantas fuentes como hayamos indicado. En lugar de sustituir a la primera, aparecerán a continuación:
Además, podéis ver que a la izquierda de cada fuente aparecen unos números recuadrados. Esto indica en qué posición queda la fuente en la lista de dispositivos MIDI que crea VirtualMIDISynth dentro de Windows. El número que pulsemos y quede en color verde es el número que tendrá en dicha lista.
Esto es importante porque, al igual que hicimos al configurar la Roland MT-32, vamos a tener que indicar en DBGL el número de dispositivo MIDI que queremos usar para el juego, como veremos en los siguientes puntos.
5. Vamos a averiguar qué número le ha dado Windows a VirtualMIDISynth en la lista de sintetizadores MIDI que hay en nuestro sistema.
Para ello vamos a la carpeta donde tengamos guardado DOSBox y ejecutamos “DOSBox.exe”. Os aparecerá esta pantalla:
Aquí escribimos mixer /listmidi y nos aparecerá un listado como este:
Como he cargado dos soundfonts en VirtualMIDISynth, este me ha creado dos dispositivos MIDI diferentes, uno para cada fuente.
“VirtualMIDISynth #1” se corresponde con la fuente que en VirtualMIDISynth hemos dejado con el número 1 en color verde, y así sucesivamente.
Una vez sabemos cuál es el que queremos usar con el juego, nos fijamos en el número que hay a la izquierda, que es el que tenemos que introducir en DBGL. En mi caso son el “0” y el “1”.
6. En DBGL seleccionamos el juego que vamos a configurar con General MIDI y pulsamos Edit profile > Audio. En esta ventana lo que nos interesa es el campo Config dentro de “General”, donde pondremos el número de dispositivo MIDI de VirtualMIDISynth que queremos utilizar y que hemos visto en el punto anterior.
7. Ya sólo nos queda entrar en la configuración del propio juego e indicarle que queremos utilizar General MIDI para reproducir la música (no todos los juegos dan esta opción).
Al igual que ocurría con la Roland MT-32, General MIDI es un sistema para reproducir MIDI, no permite reproducir sonido digital, por lo que si el juego da la opción de usar tarjetas diferentes para la música y el sonido seleccionaremos Sound Blaster para este último.
Y aquí acaba este tutorial, que espero os sea útil y os permita redescubrir las bandas sonoras de vuestros juegos favoritos. Recordad que para cuestiones no relacionadas con el sonido tenéis los tutoriales anteriores:
Configuración básica de un juego de disquetes preinstalado
Configuración de un juego en soporte CD o imagen de disco. Opciones avanzadas
Arturo López