MANUAL DOSBOX:
Modo Protegido, Dudas frecuentes, Uso de D-Fend

JUEGOS EN MODO PROTEGIDO: DOS32A

A mediados de los noventa, algunos juegos y programas comenzaron a utilizar el modo protegido de MS-DOS. Éstos son fáciles de reconocer, puesto que todos ellos emplean el fichero DOS4GW.EXE, un antiguo extensor de MS-DOS. Por ejemplo, tenemos títulos tan famosos como Doom, Syndicate, etc.

En esta captura de pantalla, que he tomado mientras se ejecutaba el Doom 2, podemos ver cómo se inicia el DOS4GW antes de proceder a arrancar el juego:

Doom2 iniciando el modo protegido

La cuestión es que los juegos que emplean el modo protegido pueden resultar problemáticos en DOSBox. Requieren muchos recursos, muy a menudo la emulación no es demasiado rápida, y en algunas ocasiones —raras, también hay que decirlo; al menos con las últimas versiones de DOSBox— se vuelven inestables.

Para estos inconvenientes hay una solución: usar DOS32A.

DOS32A, al igual que DOS4GW, se trata de un extensor de MS-DOS. Ahora, resulta mucho más moderno —de hecho, es un proyecto vivo y en desarrollo—. Se distribuye gratuitamente, bajo licencia GPL si no recuerdo mal. Y sobre todo, ofrece un mejor rendimiento que el viejo DOS4GW; mayor velocidad de ejecución, y más estabilidad.

DOS32A podemos usarlo en DOSBox o en cualquier sistema MS-DOS (ya sea una máquina emulada con QEMU, VMWare, Bochs..., o un PC real); en cualquiera de estos casos merece la pena.

Lo primero que deberíamos hacer es descargarlo de la página web del proyecto: http://dos32a.sourceforge.net/. Luego descomprimimos el fichero que nos hayamos descargado dónde nos apetezca. Posiblemente, éste contendrá varios archivos ejecutables (EXE); pero el que nos interesa es el DOS32A.EXE.

Siguiendo con el ejemplo de antes, vamos suponer que queremos utilizar DOS32A para jugar a Doom 2. El asunto es muy sencillo. Primero copiamos el archivo DOS32A.EXE en la carpeta del juego. Y luego, entramos en DOSBox y arrancamos Doom 2 del siguiente modo:

Iniciando Doom2 con Dos32a

Y ya lo tenemos funcionando.

Así que el uso de DOS32A es el siguiente:

dos32a (archivo .exe a ejecutar)

Lo más cómodo es tener una copia del DOS32A en la carpeta de cada juego que queramos ejecutar de este modo. El programa es muy pequeño —menos de 50 KB—, y no vale la pena andar cortando y pegando.

DUDAS FRECUENTES

Pues eso. Aquí trato de explicar algunas cuestiones que dan dolores de cabeza a muchos usuarios de DOSBox. Algunas han sido tratadas a lo largo de este manual, y otras no.

La unidad de CD-ROM no funciona en DOSBox:

Antes que nada deberíamos asegurarnos de que la estamos montando de la forma correcta (con la opción -t cdrom en el comando mount; ver el capítulo de "Uso de DOSBox"). Si aun así sigue sin funcionar adecuadamente, podemos montarla con emulación a bajo nivel. Por ejemplo:

Z:\> mount d f:\ -t cdrom -usecd 0 (Con soporte SDL).
Z:\> mount d f:\ -t cdrom -usecd 0 -ioctl (Con soporte IOCTL; en sistemas Windows 2000/NT/XP).
Z:\> mount d f:\ -t cdrom -usecd 0 -aspi (En Windows 98, con los controladores ASPI instalados).

Tenéis más información en la parte de "Uso de DOSBox".

El ratón no funciona bien:

Normalmente, DOSBox detecta cuando un juego emulado está utilizando el ratón. Así, si clicamos en la ventana del emulador, el puntero del ratón queda "atrapado" en ella, y podremos usarlo para jugar del modo habitual. Sólo que en ciertas ocasiones esto puede no funcionar, y será necesario que capturemos el ratón pulsando [CTRL] + F10.

El sonido funciona entrecortado; ¿por qué?

En primer lugar, deberíamos ejecutar DOSBox en pantalla completa.

Si aun así persiste el problema, se debe a que estamos usando demasiados recursos de nuestra CPU. En tal caso deberíamos bajar el número de ciclos o aumentar el salto de frames. También hay que recordar que la emulación de Gravis Ultrasound y MPU401 o General Midi tiene un mejor rendimiento que la de SoundBlaster; si el juego o programa que estemos usando nos da la oportunidad, deberíamos utilizar estas tarjetas.

Otra opción sería incrementar el valor de prebuffer en el archivo de configuración de DOSBox —usualmente, dosbox.conf—. Esta opción está situada en la etiqueta mixer.

Ver los capítulos "Acelerando la emulación" y "El archivo dosbox.conf" para una información más general sobre estos asuntos.

¿Qué tarjetas y dispositivos de sonido puede emular DOSBox?

  • El altavoz interno del PC.
  • Creative CMS/Gameblaster:
    La primera tarjeta de sonido desarrollada por Creative Labs. La configuración por defecto la coloca en el puerto 0x220; esto puede ocasionar conflictos si activamos al mismo tiempo la emulación de Adlib (puesto que ambas usaban en mismo puerto).
  • Tandy.
  • Adlib.
  • SoundBlaster 16, SoundBlaster Pro I / II, SoundBlaster I / II:
    Con la configuración por defecto, DOSBox emula una SoundBlaster 16 con sonido estéreo de 16 bits. Esto podemos cambiarlo editando el archivo dosbox.conf.
  • Disney Soundsource.
  • Gravis Ultrasound.
  • MPU401:
    Una interfaz de sonido, pensada para trabajar con música midi, que se usó en diversas tarjetas, entre ellas General Midi y MT-32.

¿Cómo cambiar el tipo de sistema que está emulando DOSBox?

Para esto debemos editar el archivo de configuración del emulador, el dosbox.conf. En él veremos opciones para modificar la cantidad de memoria RAM que queremos disponible en la emulación, el tipo de tarjeta gráfica —VGA, CGA, etc—, y muchos otros detalles de interés.

Leed el capítulo "El archivo dosbox.conf" para más información.

El juego o programa no puede leer su CD-ROM:

Evidentemente, tenemos que asegurarnos de usar la opción -t cdrom con el comando mount. También podríamos emplear la opción -label, asignándole a la unidad emulada la misma etiqueta de volumen que tiene el CD que queremos leer.

Otra posibilidad sería montar la unidad de CD con emulación a bajo nivel. Sobre esto podéis ver el capítulo "Uso de DOSBox", o la primera pregunta de esta misma sección.

¡Hey! ¿Qué pasa con el teclado? ¿Cómo escribir ciertos signos?

DOSBox utiliza por defecto una configuración de teclas inglesa. Con nuestros teclados españoles no tendremos problemas para escribir caracteres alfanuméricos —o sea, letras y números—, pero sí con diversos signos de uso común como corchetes, asteriscos, paréntesis, etc. Ocurre que éstos están situados en teclas diferentes.

Para ahorraros una fatigosa búsqueda, aquí hago una pequeña lista con los símbolos más frecuentes y su localización en la configuración de teclas de DOSBox:

CARÁCTER TECLAS EN DOSBOX
* (Asterisco) [MAYUSC.] + 8
( (Paréntesis abierto) [MAYUSC.] + 9
) (Paréntesis cerrado) [MAYUSC.] + 0
- (Guión) ['] (Apóstrofe - Cerrar interrogante)
_ (Subrayado) [MAYUSC.] + ['] (Cerrar interrogante)
= (Igual) [¡] (Exclamación)
+ (Más) [MAYUSC.] + [¡]
; (Punto y coma) Ñ
: (Dos puntos) [MAYUSC.] + Ñ
/ (Barra de división) [-] (a la izquierda de [MAYUSC.])
\ (Barra invertida) [<], Ç
| (Barra vertical) [MAYUSC.] + Ç

Por cierto, y al contrario de lo que sucede en MS-DOS, en DOSBox las barras (/ y \) son intercambiables a la hora de especificar rutas de directorios.

Podemos cambiar la configuración del teclado pulsando [CTRL] + F1 mientras trabajamos con el emulador. O bien instalarnos el KEYB.COM de MS-DOS o FreeDOS —preferiblemente éste último—.

¿Cómo compilar el código fuente de DOSBox en Linux?

Más arriba, en el capítulo "Instalando DOSBox" he dejado unas sencillas indicaciones. De todos modos, en el archivo INSTALL —que viene con el código fuente de cualquier versión de DOSBox— encontraremos también instrucciones, y una pequeña lista con las librerías necesarias para la compilación.

DOSBox funciona muy lento:

Hay diversos modos de aumentar el rendimiento del emulador y sacarle el máximo partido; sobre esto he hablado largo y tendido en el capítulo "Acelerando la emulación".

Por lo demás, no esperéis milagros de DOSBox. Es un emulador, y lo que ejecutemos con él nunca irá tan rápido como una aplicación nativa. Con una CPU de 1-1'5 GHz podríamos emular el equivalente a un 486 de gama baja; con un Pentium II a 300-400 MHz, podemos conseguir un 286 potente o un 386. A mejor máquina, claro, mejores resultados.

¿Cómo configuro una tarjeta de sonido en un juego?

Bueno, muchos juegos simplemente las detectaban automáticamente, sin necesidad que nosotros tuviéramos que tocar nada; por ejemplo, era el caso de Titus the Fox, y muchos otros que ahora no recuerdo.

Ahora, en otros casos tendremos que configurar el sonido nosotros mismos. Para ello, normalmente hay que ejecutar alguna utilidad de configuración que venga con el juego —suelen llamarse SETUP o INSTALL—. Por ejemplo, aquí tenemos el "Setup" de Doom 2:

SETUP de Doom2

Aquí escogeremos la tarjeta de sonido que más nos convenga, tanto para reproducir los efectos digitalizados como las melodías midi. Ahora, las dificultades vienen a la hora de configurar la tarjeta en cuestión; el ordenador nos preguntará por el puerto (address, port o base address), la interrupción (IRQ), y otras cuestiones como el canal DMA, etc.

Dado que se trata de tarjetas emuladas, estos valores están determinados por DOSBox. Podemos verlos editando el archivo dosbox.conf, y cambiarlos si lo deseamos —cosa que normalmente no necesitaremos hacer—.

Por si las dudas, los valores por defecto son estos:

  • SoundBlaster: Puerto 220, IRQ 7, DMA 1, HDMA 5.
  • Gravis Ultrasound: Puerto 240, IRQ 5, DMA 3.
  • General Midi: Puerto 330.

FRONT-ENDS: D-FEND

El nombre de este capítulo intrigará a más de uno; ¿qué carajo es un front-end? ¿Algún animal amazónico? ¿Una herramienta de bricolaje? Pues no; estas palabrejas inglesas hacen referencia, entre otras cosas, a ciertas utilidades que pueden resultar de interés para algunos usuarios de DOSBox.

Los front-ends para DOSBox son simplemente pequeños programas que proporcionan una interfaz gráfica para trabajar con él. Vamos, un medio para usar el emulador desde cómodas ventanas de escritorio y sin escribir ningún comando. Los hay para Windows, para Mac, para Linux, y posiblemente para algún otro sistema.

En principio son más sencillos que emplear DOSBox tal cual, sin añadidos. Y digo "en principio", porque para manejar cualquier front-end necesitaremos conocer al menos las nociones básicas del emulador. Usarlos depende más que nada de las preferencias de cada cuál. Ahora, a mí nunca me han parecido un gran invento; para quién ya tiene unos conocimientos básicos, no hay nada tan flexible como utilizar directamente DOSBox.

Bueno, aquí hablaré sobre D-Fend, que es el front-end que mejor conozco. De todas formas, supongo que los restantes tendrán un uso bastante parecido.

¿Qué es D-Fend?

Bueno, instalarlo y configurarlo no ofrece mayor complicación. Podemos descargarlo de su página oficial (http://members.home.nl/mabus), aunque tal vez en la web de DOSBox (http://www.dosbox.com) también lo tengan.

Una vez instalado en el disco duro deberemos configurarlo. Lo primero —y más básico— sería especificar la carpeta en la que tenemos el DOSBox. Es posible que, la primera vez que ejecutemos D-Fend, él mismo lo pregunte. De lo contrario, accederemos a las opciones generales de configuración (configure defaults), y seleccionaremos la pestaña Options en el cuadro de diálogo que nos aparecerá.

Por ejemplo, aquí lo tenemos:

Configurando D-Fend

Claro que, una vez aquí, podemos aprovechar para cambiar otros detalles y optimizar un poco la ejecución de DOSBox. En realidad, estaríamos haciendo lo mismo que al editar el fichero de configuración del emulador, el dosbox.conf. Si queréis explicaciones detalladas sobre todo lo que podemos modificar aquí, echadle un vistazo al capítulo correspondiente ("El archivo dosbox.conf").

Bien, en principio sería buena idea abrir la pestaña General, y marcar allí la opción Start Fullscreen, para que lo que ejecutemos en DOSBox se haga en pantalla completa —más rápido que una ventana de escritorio—. Render Method hace exactamente lo mismo que el valor "output=" del archivo dosbox.conf; especificar el modo gráfico en el que trabajará el emulador.

Environment también es importante. Aquí podremos elegir cuánta memoria RAM queremos emular, activar o desactivar la emulación de XMS y EMS, y otros detalles significativos.

Mounting nos servirá para especificar unidades que se montarán automáticamente al iniciarse DOSBox. Es lo mismo que agregar un comando mount en el apartado autoexec del archivo dosbox.conf.

En el apartado Sound, lógicamente, configuraremos todo lo referente a las tarjetas de sonido emuladas. Lo mejor sería dejar los valores que vienen por defecto. Aunque, por ejemplo, si queremos ganar un poco de velocidad al ejecutar DOSBox, podríamos bajar a 11025 Hz el Sample Rate general, y los valores correspondientes de las tarjetas SoundBlaster y Gravis Ultrasound (ver "Acelerando la Emulación" y "El archivo dosbox.conf").

La pestaña Communication controla todo lo referente a conexiones en red. Como nunca he usado DOSBox para esto, poco puedo decir aquí sobre ello. Quizás en un futuro...

Por último, en Custom sets podremos introducir valores del archivo dosbox.conf que no estén presentes en los menús de D-Fend. Y en la pestaña Priority, elegir la prioridad que tendrá DOSBox entre las demás tareas de nuestro sistema.

Una vez tengamos el D-Fend configurado a nuestro gusto, querremos ejecutar algo con él. Este programa funciona mediante perfiles; cada juego o utilidad que queramos emular en DOSBox tendrá sus propias opciones de ejecución almacenadas en un perfil. Y para ponerlo en marcha, simplemente haremos doble clic con el ratón en el perfil correspondiente.

Ahora, estos perfiles tendremos que ir creándolos nosotros; la cosa resulta sencilla, siempre y cuando conozcamos lo básico del uso de DOSBox. Y para ver cómo se hace, nada como un ejemplo; vamos a elaborar un perfil para ejecutar el juego Rise of the Triad.

Así que empecemos. Lo primero es abrir el profile wizard. Depende de la versión de D-Fend que estemos usando, lo encontraremos en un icono bajo la barra de menús, o dentro del menú Profile.

Nos encontraremos con un cuadro de diálogo como éste:

Creando un perfil: primer paso

Esto no merecería mayores comentarios, pues las opciones se explican por sí mismas. En Profile Name escribiremos el nombre que tendrá el perfil que vamos a crear. Game EXE es precisamente eso; el ejecutable del juego o programa que queremos emular en DOSBox. Setup EXE, por su parte, se refiere a la utilidad de configuración del juego; si no hay ninguna, lo dejaremos en blanco.

Hemos marcado la casilla Close Dosbox after game exit. De este modo, cuando terminemos nuestra partida del Rise of the Triad y salgamos del juego, el DOSBox se cerrará también.

Una vez rellenado esto, pasamos a la siguiente ventana:

Creando un perfil: establecemos ciclos

Aquí elegiremos la velocidad de la emulación (los ciclos; ver el capítulo "Acelerando la Emulación"), el tipo de tarjeta gráfica que emularemos (VGA, CGA, Tandy, Hercules) y el modo de renderización gráfica que usará DOSBox (surface, opengl, ddraw... Ver "El Archivo dosbox.conf").

En principio, para la gran mayoría de juegos y programas que ejecutemos en DOSBox deberíamos usar VGA como Video Card. Ahora, si queremos usar alguna aplicación diseñada para funcionar con Tandy o Hercules —que son muy pocas; casi todas admitían además el modo gráfico CGA, que las tarjetas VGA podían reproducir sin problemas—, tendremos que seleccionar el valor correspondiente.

Bien, le damos a "siguiente", y aparecerá en pantalla el tercer cuadro de diálogo. Aquí tendremos que configurar las unidades que resultará necesario montar para ejecutar el juego. De todas formas, normalmente no hace falta calentarse mucho la cabeza; hay un botón llamado Auto Create que realiza todo el trabajo por nosotros, partiendo de los datos que hemos rellenado en el primer paso.

Aquí podemos verlo:

Creando un perfil: Establecemos las unidades que se montarán

A continuación nos las veremos con la cuarta ventana, cuya función es la de configurar el funcionamiento de la tarjeta emulada SoundBlaster. Los valores que vienen por defecto deberían servirnos perfectamente, y no vale la pena que nos preocupemos por ellos. En todo caso, podríamos cambiar el primer valor —Type— si en lugar de una SoundBlaster 16 queremos emular otro modelo.

El quinto cuadro de diálogo está dedicado a la configuración de la Gravis Ultrasound; el sexto a la emulación MIDI, y el séptimo a la del altavoz interno del PC. Ninguno de ellos presenta mayores complicaciones, y podemos dejar tranquilamente sus valores por defecto.

En todos estos dispositivos de sonido deberíamos tener en cuenta sus "rates" —que por defecto están configurados en 22050 Hz—. Este valor no debería ser mayor que el que pusimos de Sample rate al configurar D-Fend (menú configure defaults, pestaña Sound). De lo contrario, es posible que el sonido emulado no funcione correctamente, u obtengamos una calidad bastante mala.

Y ya estamos terminando.

En el octavo —y último— paso tendremos que especificar cuánta memoria RAM emulará DOSBox, y si habilitaremos memoria extendida (XMS) y expandida (EMS).

Comentaré que a la hora de rellenar estos cuadros de diálogo existe un botón llamado Accept all defaults. Lo podemos usar si, en lugar de ajustar opciones propias para un perfil, deseamos utilizar la configuración por defecto de D-Fend (que editamos después de instalarlo, en los configure defaults).

Así que ya tenemos nuestro perfil acabado y listo para usar. Lo veremos en la ventana principal de D-Fend... Y de ahora en adelante, para jugar al Rise of the Triad emulándolo con DOSBox, nos bastaría con un doble clic de ratón.

Por supuesto, podemos editar los perfiles ya creados si queremos cambiar alguna opción que se nos haya pasado por alto, etc.

Pantalla principal de D-Fend

Bien, y con esto podríamos dar por terminada esta pequeña sección sobre D-Fend; apenas quedarían por comentar algunos detalles poco importantes. Una vez sepamos cómo crear un perfil —cosa muy fácil si conocemos el funcionamiento de DOSBox—, el programa dejará de tener secretos para nosotros.

Supongo que el uso de otros front-ends —Boxer, etc—, no cambiará demasiado respecto a lo que he explicado aquí. Yo me he centrado en D-Fend porque es de los más utilizados, y el único que he visto funcionar.

NOTAS SOBRE ESTE TEXTO

Y bueno, hasta aquí el tutorial de DOSBox...

No he pretendido hacer una guía exhaustiva, entre otras cosas porque me faltan conocimientos para ello. Mi idea original era, más bien, redactar un pequeño manual de uso, con las nociones básicas para defenderse con el emulador y solucionar los problemas más comunes. Al final, no obstante, me he extendido más de lo que pensaba, y he comentado aspectos que no entraban en mi plan original.

Las fuentes de este tutorial son variadas. En primer lugar, y lo más importante, mi propia experiencia. Ahora, también me he basado en la documentación oficial de DOSBox (el archivo README), del que he tomado bastante información. Sobre algunos detalles me he informado en los foros de la web oficial de DOSBox (http://www.dosbox.com), y en un par de pequeñas guías que encontré en Internet.

Por lo demás, podéis modificar, distribuir o colgar en Internet este texto a vuestro antojo y sin ningún permiso por mi parte. Si veis algún detalle que debe ser corregido, o creéis necesario ampliar el manual con alguna sección nueva, podéis hacerlo tranquilamente. En tales casos me gustaría que me enviaseis las copias modificadas por e-mail, más que nada por tener una versión actual del texto; pero bueno, tampoco es algo imprescindible.

En fin, esto vendría a ser como una licencia GPL... :risa:

Y nada más. Espero que el manual os resulte útil, y os ayude a reencontraros con muchas viejas glorias del videojuego. Al menos, con esa intención está redactado.

Un saludo,
Eye del Cul.

Cumple con el estándar HTMLCumple con el estándar CSSApta para cualquier navegador

Podéis copiar libremente cualquier contenido de esta página. Si se trata del texto o las imágenes, mencionad la fuente (www.arcades3d.net)...