RG350 DOSBox
DOSBox recrea un entorno MS-DOS virtual para permitir ejecutar los viejos juegos aparecidos en los 80-90 para esta plataforma. Soporta sonido, controles de entrada y gráficos.
Instalación¶
El emulador tiene forma de OPK, como la mayoría de los emuladores para el sistema de la RG350 (OpenDingux). Por tanto sólo tenemos que bajarlo de este enlace y copiarlo a una de las dos rutas que explora GMenu2X para mostrar los lanzadores, es decir:
- Tarjeta interna:
/media/data/apps
- Tarjeta externa:
/media/sdcard/apps
Una vez instalado se puede ejecutar el entorno sin ningún juego para así alcanzar algunas utilidades que ayudan a la configuración del mismo. Para conseguir llegar al prompt, hay que editar el lanzador de GMenu2X, dejar en blanco el parámetro Selector Directory
(ojo porque cada vez que se arranca toma el valor /media
, por lo que hay que limpiarlo cada vez) y poner OFF
en el parámetro Selector Browser
:
Cuando lo lancemos aparecerá la típica pantalla de DOS. La pantalla tiene una resolución de 640x400 por lo que en la pantalla de la RG350 se verá muy mal por el reescalado a 320x240 (para esto puede venir bien la reciente publicación de un update que permite activar la salida de video HDMI que soporta esta resolución):
Como se puede leer ahí, tecleando INTRO
mediante el teclado virtual (que aparece pulsando L1
) se nos muestran varias pantallas con información:
Configuración¶
El concepto más importante de entender en DOSBox es el del fichero de configuración o dosbox.conf
. Cuando arrancamos por primera vez DOSBox, se genera un fichero de configuración genérico en el directorio /media/data/local/home/.dosbox
. En concreto en la versión compilada para la RG350 este fichero tiene de nombre dosbox-SVN.conf
. Dentro de él están todos los ajustes que aplicarán a los programas o juegos que ejecutemos en DOSBox. En particular hay un ajuste de la configuración que se volverá fundamental en la mayoría de los juegos y es el del mapeado del teclado. En la documentación de este fichero vemos que los controles tienen su propio fichero de configuración al que se apunta desde el dosbox.conf
mediante el parámetro mapperfile
.
Un fichero mapper típico contiene la relación entre los códigos de las teclas de un teclado de PC y las de los controles de la consola. En cada línea del fichero se indica un código de teclado de PC y a continuación entre comillas el código del pulsador de la RG350 con la palabra key
delante separada del código por un espacio (más adelante se muestran ejemplos).
Los códigos de teclado de PC más importantes son:
key_a
hastakey_z
para las letraskey_0
hastakey_9
para los númeroskey_kp_0
hastakey_kp_9
para el teclado numéricokey_kp_enter
para enter en teclado numéricokey_f1
hastakey_f12
para las teclas de funciónkey_up
,key_down
,key_left
,key_right
para las teclas de cursorkey_lalt
,key_lctrl
,key_lshift
,key_alt
,key_ctrl
,key_shift
para las teclas modificadoraskey_enter
,key_esc
,key_space
,key_tab
Se adjunta aquí un fichero todos los códigos de teclado y joystick de PC que soporta DOSBox.
Los códigos de los controles de la RG350 son los siguientes:
Control | Código | Tecla de PC en mapper predeterminado |
---|---|---|
A | 306 | key_lctrl |
B | 308 | key_lalt |
X | 32 | key_space |
Y | 304 | key_lshift |
L1 | 9 | key_tab |
L2 | 280 | key_pageup |
R1 | 8 | key_bspace |
R2 | 281 | key_pagedown |
UP | 273 | key_up |
DOWN | 274 | key_down |
LEFT | 276 | key_left |
RIGHT | 275 | key_right |
START | 13 | key_enter |
SELECT | 27 | key_esc |
POWER | 278 | key_home |
Por ejemplo para mapear la tecla A
de un PC al control A
de la RG350 habría que incluir la siguiente línea en el fichero de mapper:
key_a "key 306"
Como ejemplo vamos a elaborar el mapper para el juego Prince of Persia. Un listado básico de los controles de este juego sería:
Tecla | Efecto |
---|---|
Cursores | Movimiento |
LShift | Paso lento/Coger/Luchar |
Enter | Empezar |
Espacio | Muestra tiempo que queda |
Escape | Pausa |
Ctrl-R | Termina el juego y vuelve a la secuencia de título |
Ctrl-A | Reinicia el juego al comienzo del nivel actual |
Ctrl-S | Apaga/enciende el sonido |
Ctrl-Q | Cierra el juego y retorna a MS-DOS |
Así pues vamos a establecer las siguientes relaciones entre las teclas de un PC y los controles de la RG350 (la tecla L1 la evitaremos puesto que siempre saca el teclado virtual):
Tecla PC | Control RG350 |
---|---|
Cursor arriba | UP |
Cursor abajo | DOWN |
Cursor derecha | RIGHT |
Cursor izquierda | LEFT |
LShift | A |
Enter | START |
Espacio | B |
Escape | SELECT |
LCtrl | L2 |
R | X |
A | Y |
S | R2 |
Q | R1 |
Lo que traducido a un fichero de mapper se convierte en:
key_up "key 273"
key_down "key 274"
key_right "key 275"
key_left "key 276"
key_lshift "key 306"
key_enter "key 13"
key_space "key 308"
key_esc "key 27"
key_lctrl "key 280"
key_r "key 32"
key_a "key 304"
key_s "key 281"
key_q "key 8"
Creamos el fichero con el contenido anterior y lo dejamos en /media/data/local/home/.dosbox/mapper.txt
. Finalmente editamos el fichero /media/data/local/home/.dosbox/dosbox-SVN.conf
para que el parámetro mapperfile
apunte al nuevo fichero. A partir de entonces podremos utilizar el juego con los nuevos controles. La tabla inicial de controles con los equivalentes en RG350 queda ahora:
Tecla PC | Efecto | Control RG350 |
---|---|---|
Cursores | Movimiento | Cruceta |
LShift | Paso lento/Coger/Luchar | A |
Enter | Empezar | START |
Espacio | Muestra tiempo que queda | B |
Escape | Pausa | SELECT |
Ctrl-R | Termina el juego y vuelve a la secuencia de título | L2 + X |
Ctrl-A | Reinicia el juego al comienzo del nivel actual | L2 + Y |
Ctrl-S | Apaga/enciende el sonido | L2 + R2 |
Ctrl-Q | Cierra el juego y retorna a MS-DOS | L2 + R1 |
Por último se incluyen a continuación una serie de enlaces de documentación que pueden servir de ayuda:
Juegos¶
Los juegos para DOSBox consisten simplemente en los ficheros originales del juego sin modificar, normalmente dentro de un directorio. DOSBox soporta el montaje de imágenes de CD-ROM para los juegos que venían en este formato, pero de momento no nos vamos a complicar con eso (estudiar los enlaces indicados un poco más arriba). Una vez que tengamos los ficheros del juego en un directorio sólo tendremos que abrir el OPK desde GMenu2X y explorar hasta localizar el directorio. Por defecto se nos filtrarán los ficheros con extensiones .exe
, .com
y .bat
que eran los típicos ficheros ejecutables en MS-DOS. Seleccionando el ejecutable adecuado el juego arrancará. Por ejemplo en una instalación del juego Prince of Persia
aparecen los siguientes ficheros como ejecutables:
El que tendremos que seleccionar es el de nombre prince
.
Integración en frontends¶
DOSBox se integra bien con frontends puesto que permite seleccionar el ejecutable a lanzar mediante el explorador. Se recomienda filtrar únicamente la extensión .bat
y generar un fichero de este tipo si no existe ya entre los ficheros del juego. De esta forma sólo aparecerá una entrada para arrancar el juego (y no 4 como hemos visto en el ejemplo anterior).
Personalización de controles para juegos¶
Del extenso apartado Configuración se desprende que la principal dificultad de instalar juegos MS-DOS en DOSBox es la del mapeo de controles. Además, a pesar de que el proyecto oficial permite cargar automáticamente un dosbox.conf desde el directorio del juego, la versión para la RG350 que se encuentra habitualmente, no parece soportar esta capacidad. Sin embargo no es complicado adaptarla para que lo consiga. Simplemente incluyendo dentro del OPK el siguiente script de nombre set_conf.sh
que será el que se ejecute desde el fichero default.gcw0.desktop
:
#!/bin/sh
DIRBASE=`dirname "${1}"`
if [ -f "$DIRBASE/dosbox.conf" ]
then
./dosbox "$1" -exit -conf "$DIRBASE/dosbox.conf"
else
./dosbox "$1" -exit
fi
En default.gcw0.desktop
sustituiremos la línea correspondiente al parámetro Exec
por lo siguiente:
Exec=set_conf.sh %f
El OPK resultante con estos cambios, que se puede utilizar en lugar del que se distribuye habitualmente, se puede descargar desde aquí: Dosbox_conf_mod.opk
Con este OPK simplemente tendremos que colocar el dosbox.conf
que queremos que aplique en el mismo directorio del juego. El mapper al que se apunte desde este fichero (parámetro mapperfile
, recordemos) también se deberá encontrar en el directorio del juego.
Configuración de scalers¶
Un parámetro interesante del dosbox.conf
es el scaler
que se encuentra dentro de la sección [render]
. Permite seleccionar de entre una serie de filtros para producir efectos en la pantalla (como los típicos scanlines de los televisores CRT). Por ejemplo en el dosbox.conf
predeterminado se ve esto:
[render]
# frameskip: How many frames DOSBox skips before drawing one.
# aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!.
# scaler: Scaler used to enlarge/enhance low resolution modes. If 'forced' is appended,
# then the scaler will be used even if the result might not be desired.
# Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.
frameskip=0
aspect=false
scaler=none
Cambiando ese parámetro se pueden conseguir los distintos efectos, aunque al probarlos se ve que no resultan de mucha utilidad en la RG350. Supongo que dependerá mucho de la resolución original del juego. Es decir, si el juego se dibuja a 320x240, la mayoría de esos scalers no tienen mucho sentido.
A continuación se muestra el efecto de cada uno de los scalers sobre la pantalla de presentación del Prince of Persia que sin scaler aplicado se ve así:
normal2x
advmame2x
advinterp2x
hq2x
2xsai
super2xsai
supereagle
scaler_tv2x
rgb2x
scan2x
Los siguientes scalers parecen no funcionar (supongo que porque será necesario que la resolución de pantalla sea el triple al menos de la del juego):
- normal3x
- advmame3x
- advinterp3x
- hq3x
- tv3x
- rgb3x
- scan3x