Emezeta.com

Manual de DOSBox: Revive juegos antiguos


DOSBox es un excelente emulador de DOS, mediante el cuál es posible utilizar programas o juegos que se usaban hace varios años y que ahora no funcionan en sistemas actuales.

DOSBox: Emulador de MSDOS, DrDOS o FreeDOS

A muchos de los que pasamos un largo tiempo con sistemas operativos como MSDOS, FreeDOS o DrDOS, nos podría interesar hacer uso de aplicaciones o juegos que utilizabamos en dicha época. En algunos casos, quizás más por nostalgia que por necesidad.

DOSBox: Emulador de aplicaciones o juegos de DOS

Grandes como El día del Tentáculo, Indiana Jones, Lemmings o Doom.

Actualmente, también es posible utilizar el excelente emulador ScummVM, el cuál es mucho más sencillo de utilizar, pero su uso se restringe sólo a aventuras gráficas de esta lista (screenshots). Por su parte, DOSBox permite el uso de prácticamente cualquier aplicación o juego que funcionara en un sistema DOS.

¿Por qué usar DOSBox?

Básicamente, porque sin él, no funcionan. Estos programas o juegos para DOS (sistema de 16 bits), fueron diseñados para sistemas diferentes de los que se utilizan hoy en día (sistemas de 64 bits). Muchos de ellos, funcionarían demasiado rápido o, directamente, no podrían ejecutarse y mostrarían errores similares a los siguientes:

La versión de este archivo no es compatible con la versión de Windows

La versión de este archivo no es compatible con la versión de Windows que está ejecutando. Compruebe la información del sistema del equipo para ver si necesita una versión x86 (32 bits) o x64 (64 bits) del programa y después póngase en contacto con el proveedor.

Cualquier programa o juego que, al ejecutar, muestre un error similar al anterior (Windows 7 en el caso de la captura), mencione al Subsistema MS-DOS de 16 bits o devuelva errores con mensajes como «La CPU NTVDM ha encontrado una instrucción no permitida», es posible que funcionen correctamente en DOSBox.

1. Descarga e instalación

La instalación es muy sencilla. Simplemente hay que acceder a la sección de Descargas de la página oficial de DOSBox, y elegir la versión de nuestro sistema: Windows, Linux, Mac, BeOS, Solaris, etc... Una vez descargada, la instalamos.

DOSBox: Descargar DOSBox para Windows, Linux, Mac, BeOS, FreeBSD o Android

Más adelante hablaremos también de algunas adaptaciones, como DOSBox para Android.

2. Iniciando DOSBox

Para iniciar el emulador, sólo tenemos que ir a Inicio / Programas / DOSBox y seleccionar DOSBox (que estará acompañado del número de la versión instalada del emulador).

Hay que notar que al abrir el emulador, se abre también una segunda ventana detrás (que si intentamos cerrar, cierra por completo el emulador). Esta ventana extra es muy útil para observar posibles errores u operaciones que realicemos con el emulador, pero si no queremos investigar ningún error es mejor utilizar el icono ubicado en el apartado DOSBox / Extras, con el nombre DOSBox (noconsole), que no abrirá esta segunda ventana.

Finalmente, tendremos delante una terminal de DOSBox, muy similar al sistema operativo DOS, con algunas diferencias, que nos harán la vida más cómoda.

3. DOSBox, el emulador

Por seguridad, al utilizar DOSBox no utilizamos nuestros discos, ya que por error (o un posible programa dañino) podría eliminar nuestros datos. Para ello, comenzamos en una unidad virtual Z: (no existe realmente).

Para comenzar a utilizar el emulador tenemos que montar (crear) unas unidades virtuales en nuestro entorno de DOSBox, basándonos en la ruta real de nuestros discos. Así, sólo tendremos en el emulador lo justo y necesario.

3.1 Montando unidades

Veamos el montaje de una unidad con un ejemplo. Tenemos un disco duro externo en la unidad D. En él, hay una carpeta juegos que contiene cuatro carpetas más (4 juegos diferentes):

La estructura a utilizar sería mount [unidad_a_crear] [carpeta_existente], con lo que al escribir mount c: d:\juegos, crearemos una unidad virtual C que tendrá el contenido de la carpeta D:\juegos. Podemos repetir el proceso y crear varias unidades, si queremos.

Montando carpetas en DOSBox (mount)

Si escribimos mount solamente, veremos un listado de las unidades actuales y a que rutas o carpetas están asociadas.

De resto, funciona de forma muy similar al sistema DOS tradicional. Escribiendo C:, cambiamos a la unidad C, escribiendo dir listamos el contenido de la ruta actual y escribiendo cd carpeta, accedemos a la carpeta en cuestión. Si no sabes nada sobre DOS, puedes leer este breve manual.

Volviendo al ejemplo, tras cambiar a la unidad C, si quisiéramos jugar al juego LARRY1, sólo tendríamos que escribir:

CD LARRY1
SCIDHUV

En el caso de no conocer el ejecutable, bastaría con hacer un DIR *.EXE para buscar los archivos ejecutables. Las extensiones ejecutables sólo pueden ser EXE (ejecutable), BAT (script, archivo por lotes) o COM (comando, ejecutable antiguo).

Volviendo al mount, que es el comando añadido en DOSBox, si queremos desmontar alguna unidad ya montada, basta con escribir mount -u [unidad].

Un detalle interesante es que, después de montar una carpeta, los cambios que hagamos desde fuera de DOSBox no serán efectivos. Si queremos forzar a DOSBox a actualizar estos cambios, basta con escribir RESCAN (o pulsar CTRL-F4).

3.2 Montando imágenes como CDROM

Existen juegos o programas, que sólo permitían utilizarse si tenías el CDROM en la unidad D o E. Con el comando IMGMOUNT es posible crear una unidad virtual de CD a partir de una imagen ISO (o CUE/BIN), siguiendo la sintaxis que muestro a continuación: imgmount [unidad] [fichero_iso] -t iso.

Veamos un ejemplo:

Montando imágenes en DOSBox (imgmount)

También es posible montar carpetas como unidades de CDROM (apartado anterior), simplemente añadiendo el parámetro -t cdrom:

mount f: d:\juegos -t cdrom

En el caso de tener problemas con ciertos carácteres (como la ñ o los dos puntos), es probable que no tengamos el teclado en español. Simplemente escribe keyb sp.

3.3 Imprimir con programa DOS

En muchos casos, se quiere encontrar una forma de emular aplicaciones antiguas y utilizar la función imprimir de la misma. Esto no es posible con el DOSBox original del que hablamos en este artículo, pero si se afirma contar con soporte de impresión en algunas variantes como DOSBox ykhwong, DOSBox Megabuild o DOSBox UberBuild.

Soporte de impresion: Imprimir con DOSBox (print)

Básicamente, lo que se hace en la imagen de ejemplo, es redireccionar el contenido a imprimir a LPT1 (antiguo puerto de la impresora). Esto activa el panel de impresión de nuestro sistema.

3.4 Pantalla completa

Es posible que quieras utilizar pantalla completa en tus programas o aplicaciones. No tienes más que pulsar la combinación de teclas ALT+ENTER.

Otro detalle interesante a conocer, es que pulsando CTRL-F10 podemos liberar o capturar el ratón (útil por si queremos salir del emulador y volver a nuestro sistema real).

3.5 Mapeado de teclado

Es posible necesitar mapear un teclado, es decir, asociar ciertos eventos de teclado o joystick a otras operaciones. Esto es posible mediante el interfaz Keymapper de DOSBox.

Mapeado de teclado en DOSBox (Keymapper)

Para acceder a él, simplemente hay que pulsar CTRL-F1 y seleccionar la tecla, combinación de teclas u operación a configurar.

3.6 Realizando capturas

DOSBox permite realizar todo tipo de capturas, simplemente pulsando una combinación de teclas:

  • Capturas de pantalla en formato PNG (CTRL-F5).
  • Grabación de vídeo en formato AVI/ZMBV (CTRL-ALT-F5).
  • Capturas de sonido en formato WAV (CTRL-F6).
  • Capturas de comandos OPL (CTRL-ALT-F7).
  • Capturas de sonido en formato MIDI (CTRL-ALT-F8).

Salvo la primera, las demás se tienen que pulsar dos veces (una para iniciar la grabación y otra para finalizarla). Los archivos capturados serán guardados en la carpeta captures, a la que se puede acceder en Inicio / Programas / DOSBox / Extras / Screenshots & Recordings.

3.7 Ajustar rendimiento de emulador

Es posible, que al utilizar juegos antiguos, la velocidad del juego sea diferente, los gráficos no se muestren como deberían, etc... DOSBox provee varios sistemas para ajustar el rendimiento del emulador a nuestro juego:

Ajustar rendimiento en DOSBox: Cycles y Frameskip

Ajustando ciclos y frameskip en Death Rally, con DOSBox.

Con CTRL-F7 y CTRL-F8, se puede decrementar e incrementar el Frameskip. Esto es, el número de fotogramas que se ignorarán antes de dibujarlos por pantalla. Por defecto, es 0.

Por otra parte, con CTRL-F11 y CTRL-F12, se puede decrementar e incrementar el número de cycles (ciclos de CPU). Esto es útil para reducir o aumentar la velocidad con la que transcurre un juego en el emulador (en algunos es necesario). Por lo general se ajusta automáticamente, pero puedes ajustarlo de forma manual si lo consideras necesario.

4. Optimizando DOSBox

Lo que hemos visto hasta ahora son las opciones básicas de DOSBox. Sin embargo, es posible editar el fichero de configuración del mismo para optimizar al máximo las posibilidades de este fantástico emulador.

Para ello, vamos a Inicio / Programas / DOSBox / Options / DOSBox Options. Nos aparecerá un archivo de configuración para editar.

Existen muchísimas opciones, veamos las que considero más interesantes.

4.1 Sección SDL

La sección SDL, permite configurar algunos detalles útiles. Iniciar a pantalla completa (por defecto a false, habría que cambiarlo a true), la sensitividad del ratón (cambiar si el ratón se mueve muy lento) o la opción autolock, que establecida a false, hace que el emulador sólo esté activo cuando se pase el ratón por el interior de la ventana.

fullscreen=false
sensitivity=100
autolock=true

Otras opciones interesantes serían fulldouble, fullresolution, windowresolution u output, que permitirían varias la resolución y aspecto (en cuanto a tamaño) del emulador.

4.2 Sección DOSBox

En esta sección se permiten cambiar algunos parámetros del emulador, como establecer un tipo diferente de máquina (hércules, tandy, etc.... Por defecto se emula una S3 SuperVGA, más que suficiente para la mayoría de nuestros propósitos.

Larry 1 (Restart)

El clásico Larry, de Al Lowe, al perder una vida.

También podemos cambiar la cantidad de memoria asignada a nuestro emulador, por si necesitamos más (por defecto, 16MB).

language=
machine=svga_s3
memsize=16

Como se pueden imaginar, es posible descargar una traducción, por ejemplo la traducción para DOSBox al español, y aplicarla en el apartado language, por defecto vacío.

4.3 Sección Render

La sección de renderizado es quizás una de las más llamativas e importantes, ya que modifica el aspecto gráfico de nuestro juego. Aparte de otras opciones como el ya mencionado frameskip o la corrección de aspecto, tenemos una opción muy interesante para mejorar el aspecto de gráficos:

scaler=normal2x

Las opciones que puede tomar este scaler son las siguientes: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x y scan3x.

Modos de renderizado de DOSBox (interpolación)

Modos de renderizado de DOSBox (interpolación).

Si quieres un mayor nivel de detalle de los renderizados, puedes fijarte en esta imagen animada del juego Indiana Jones que va cambiando por los distintos tipos de interpolación.

4.4 Sección CPU

Esta sección ofrece un dominio bastante alto sobre el cambio de ciclos de CPU del emulador. En él se pueden cambiar cosas como el tipo de CPU: 386, 486, pentium... (por si queremos emular hasta las esperas :P) o la cantidad de ciclos que se disminuye al pulsar las teclas de incrementar o decrementar.

core=auto
cputype=auto
cycles=auto
cycleup=10
cycledown=20

4.5 Sección IPX

Mediante el protocolo IPX/SPX, es posible realizar partidas en red con los juegos o programas que permitan esta característica. Juegos como Warcraft 2, Constructor o Death Rally lo soportan.

Para ello, sólo necesitaremos cambiar la linea ipx=false a ipx=true, dentro de la sección de mismo nombre, [IPX]. Con esto estará habilitado el soporte para red de DOSBox, y varios jugadores pueden participar en una misma partida.

Pero antes de iniciar el juego, uno de estos participantes debe designarse como servidor (los demás participantes se conectarán a él, para jugar en la misma partida).

Antes de iniciar el juego, el jugador servidor debe escribir en la ventana de DOSBox: IPXNET STARTSERVER, mientras que el resto de jugadores que quiera unirse a esa partida, debe escribir IPXNET CONNECT IP, donde IP es la dirección IP del jugador servidor.

NOTA: Programas para crear redes privadas como Hamachi, pueden facilitar esta tarea. Windows XP fue el último sistema operativo que implementa el protocolo IPX. En Windows posteriores, puede utilizar algún programa como Kali.

Información aportada por: Guardian Misterioso.

4.6 Sección Autoexec

Esta sección permite ejecutar comandos automáticamente al abrir el emulador. Es muy útil para escribir tareas repetitivas que no queremos escribir en cada inicio (montaje de unidades, por ejemplo) o la activación del teclado en español (si se necesitara). Por ejemplo, ejecutaríamos directamente un juego al abrir el DOSBox, al añadir en la sección [autoexec] las siguientes líneas:

mount c d:\juegos
c:
cd kq1vga
SCIV

También es muy útil a la hora de crear posibles scripts o procesos ejecutables, como el que escribí en su día en el artículo Cómo crear juegos antiguos portables y autoejecutables (portables SFX avanzados), útil para abstraer al usuario final de todo proceso de configuración o instalación.

5. Otros dispositivos

Existen bastantes ports y proyectos derivados para ejecutar DOSBox en otras plataformas a parte de las oficiales (Windows, Linux, Mac, FreeBSD, BeOS...).

6. Front-ends

Finalmente, y ahora que sabemos como funciona este emulador, debemos conocer también algunos front-ends para DOSBox. Existen muchos (aunque la mayoría bastante limitados), pero algunos dignos de mención son los siguientes:

  • DOSShell: Front-end para DOSBox bajo Windows.
  • AmpShell: Front-end para DOSBox bajo Windows o Linux (con Mono).
  • DOSBox Manager: Front-end de DOSBox para Android.