Inicio      Mercadillo      Máquinas      Juegos     

IBM Raspberry DosBox

... Un Spectrum en un DOSBox en una Raspberry Pi 3 en un teclado IBM mecánico
Marzo 2016
Andaba trasteando con una Raspberry Pi model b prestada, cuando encontré en el mercadillo un teclado IBM mecánico, fué pulsar las teclas y trasportarme a los tiempos del Turbo C y el WordPerfect, asi que me dije: ¡voy a meter como sea un MSDOS en el teclado IBM! o visto de otro modo, ¡voy a fabricarle una caja elegante a la Raspberry!

Tenía ya totalmente encajada la raspberry 1 dentro del teclado y estaba peleándome con el dosbox compilado (el de repositorio va demasiado lento en el primer modelo), cuando sacan la raspberry 3, así que devuelvo la prestada y compro esta.
Anunque la diferencia de rendimiento es considerable de una a otra, al tener más puertos USB no he podido encajarla totalmente en el teclado :-(

Empecemos con el jierro y a continuación una guía rápida de la configuración del software en la raspberry.

Como el teclado IBM es PS2, se utiliza un conversor PS2 a USB, que además permite utilizar un ratón PS2. Como los conectores USB se han quedado fuera, el cable del adaptador también sale por fuera, quedando un poco raro, y de perdidos al río le he dejado también por fuera el conector para ratón PS2.
El hueco que hay permite cambiar la microsd, además de airear en lo posible la RP.

En lugar de utilizar el conector USB de la RP, la alimentación pasa por un interruptor, y de ahí a los pines +5V y GND del conector GPIO.

Para el sonido he utilizado un pequeño altavoz de un Dell (PN:0D9899), que funciona con 5V y se puede conectar directamente a la salida de auriculares de la Pi.
Además del conversor HDMI-VGA para conectarlo a un monitor, le he puesto un codo a la salida HDMI, para que los cables molesten lo menos posible.

Aquí tenemos algunos programillas ejecutándose, espectacular cómo se mueve el Alone in the Dark.

Pues vamos con el software:

****************************   NOTAS PREVIAS
- La imagen base utilizada para la raspberry pi 3 es 2016-02-26-raspbian-jessie, se pasa a la tarjeta micro SD 10 de 32 GB con Win32DiskImager
- Las primeras pruebas las hice en una RP 1 con raspbian-wheezy, pero esa imagen no me funcionó en la RP3
- Además algunas de las siguientes configuraciones no son válidas para la RP1 y RP2.

****************************   CONFIGURACION INICIAL

-Desde Terminal (o desde X):
sudo raspi-config 
configurar Locale (ES, es, UTF-8), teclado, zona horaria, expandir sistema de archivos, ...

-Actualizar listado desde repositorios
sudo apt-get update

-Actualizar paquetes en el sistema
sudo apt-get upgrade

****************************   SSH
-Habilitar con
sudo raspi-config
-usuario pi / raspberry ... cambiar password a pi, por defecto es raspberry

****************************   WIFI
-Se puede configurar desde el Escritorio, esquina superior derecha

****************************   Bloq Num ACTIVO AL ARRANCAR
-Al quedar ocultos los leds de la raspberry, con esto se vé si está encendida o no
sudo nano /etc/kbd/config
	# Turn on numlock by default
	LEDS=+num

****************************   MINIMIZAR ESCRITURA EN SD
-Utilizando la memoria para almacenar los archivos de logs en lugar de la SD, se consigue prolongar la vidad e esta, y ganar algo de velocidad
sudo nano /etc/fstab
(añadir la linea)
tmpfs    /var/log    tmpfs    defaults,noatime,nosuid,mode=0755,size=100m    0 0


****************************   APAGAR LA RASPBERRY CON Ctrl-Alt-Supr
-En lugar de apagar de botonazo, se puede configurar Ctrl-Alt-Supr para que apague el sistema, en lugar de reiniciarlo. 
- Así que para apagar de forma rápida y límpia basta pulsar Ctr-Alt-F1 para mostrar un terminal, y a continuación Ctrl-Alt-Supr.

sudo rm /lib/systemd/system/ctrl-alt-del.target
sudo ln -s /lib/systemd/system/poweroff.target /lib/systemd/system/ctrl-alt-del.target
sudo systemctl daemon-reload


****************************   FTP
-Fundamental para pasar archivos a la raspberry desde el PC
sudo apt-get update
sudo apt-get install vsftpd
sudo nano /etc/vsftpd.conf 
	local_enable=YES
	write_enable=YES
	local_umask=077
	chown_uploads=YES
	chown_username=pi

sudo service vsftpd restart

****************************   CONFIGURACION RESOLUCION PANTALLA RASPBERRY
-Como voy a configurar DosBox con resolución VGA, para que no se vea muy pequeño en pantalla, es conveniente bajar también la resolución de la propia Raspberry.
-Los modos de video soportados dependen directamente del monitor que se utilice en cada caso. Se pueden comprobar con estos comandos:

pi@raspberrypi:~ $ tvservice -n
device_name=DEL-DELL_P2311H

pi@raspberrypi:~ $ tvservice -m CEA
Group CEA has 0 modes:

pi@raspberrypi:~ $ tvservice -m DMT
Group DMT has 11 modes:
           mode 4: 640x480 @ 60Hz 4:3, clock:25MHz progressive
           mode 6: 640x480 @ 75Hz 4:3, clock:31MHz progressive
           mode 9: 800x600 @ 60Hz 4:3, clock:40MHz progressive
           mode 11: 800x600 @ 75Hz 4:3, clock:49MHz progressive
           mode 16: 1024x768 @ 60Hz 4:3, clock:65MHz progressive
           mode 18: 1024x768 @ 75Hz 4:3, clock:78MHz progressive
           mode 21: 1152x864 @ 75Hz 4:3, clock:108MHz progressive
           mode 35: 1280x1024 @ 60Hz 5:4, clock:108MHz progressive
           mode 36: 1280x1024 @ 75Hz 5:4, clock:135MHz progressive
  (prefer) mode 82: 1920x1080 @ 60Hz 16:9, clock:148MHz progressive
           mode 85: 1280x720 @ 60Hz 16:9, clock:74MHz progressive


-A continuación configurar el modo adecuado en el fichero /boot/config.txt

hdmi_group=1 (CEA)
hdmi_group=2 (DMT)

-En este caso 800x600 @ 60Hz 4:3

sudo nano /boot/config.txt
	-> hdmi_group=2
	-> hdmi_mode=9


****************************   SONIDO
-Configurar salida de cascos en lugar de por HDMI
amixer cset numid=3 1

-Para probarlo
wget http://www.freespecialeffects.co.uk/soundfx/computers/bleep_01.wav
aplay bleep_01.wav

****************************   EJECUTAR DOSBOX AL ARRANCAR X
-Para que al arrancar LXDE se ejecute dosbox
sudo nano .config/lxsession/LXDE-pi/autostart
	/usr/bin/dosbox
sudo chmod 755 .config/lxsession/LXDE-pi/autostart


****************************   DosBox SVN DYNAMIC RECOMPILATION
-Aunque se puede instalar fácilmente Dosbox desde repositorio, esa versión es súmamente lenta con lo que he optado por 
recompilar desde fuente el DoxBox con algunas opciones que aumentan considerablemente su velocisad. 

sudo apt-get install libsdl1.2-dev libsdl-net1.2-dev libsdl-sound1.2-dev libasound2-dev libpng12-dev automake autoconf zlib1g-dev

sudo apt-get install subversion
svn checkout svn://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk dosboxsvn

cd dosboxsvn
./autogen.sh 
CXXFLAGS="-O2 -mfpu=vfp -march=armv6j -mfloat-abi=hard" ./configure --disable-opengl

sed -i "s/C_TARGETCPU.*/C_TARGETCPU ARMV4LE/g" config.h
echo "#define C_DYNREC 1" >>config.h

make
sudo make install

-Desde excritorio, ejecutar dosbox una primera vez para que se genere el siguiente fichero, y a continuación se edita
sudo nano /home/pi/.dosbox/dosbox-SVN.conf
	fullscreen=true
	fullresolution=800x600
	keyboardlayout=es
	[autoexec]
	# Lines in this section will be run at startup.
	# You can put your MOUNT lines here.
	mount c MSDOS -freesize 1024
	c:

[sdl]
priority=highest,normal

[dosbox]
machine=svga_et3000
memsize=16

[render]
frameskip=2

[cpu]
core=auto
cputype=386
cycles=3000
cycleup=10
cycledown=10


[gus]
gus=false
 
[speaker]
pcspeaker=true
tandy=off
disney=false

[joystick]
joysticktype=none
 
[ipx]
ipx=false


-Para que al arrancar LXDE ejecute dosbox
sudo nano .config/lxsession/LXDE-pi/autostart
	->/usr/local/bin/dosbox
sudo chmod 755 .config/lxsession/LXDE-pi/autostart

-Para crear enlace en el escritorio

sudo nano /home/pi/Desktop/DOSBox.desktop
	[Desktop Entry]
	Type=Application
	Name=DOSBox
	Name[es]=DOSBox
	Icon=dosbox
	Exec=/usr/local/bin/dosbox
	Terminal=false
	Categories=Game;Emulator;
	Keywords=GAME DOS Emulator;

sudo chmod 777 /home/pi/Desktop/DOSBox.desktop
sudo chown pi.pi /home/pi/Desktop/DOSBox.desktop

****************************   EMULADOR ZX Pedro Gimeno 0.99A en DosBox

¿Y qué sentido tiene todo esto si no se puede jugar al JetPac? pues evidentemente, ninguno.

-En la carpeta MSDOS\ZX se copia el primer emulador de Spectrum, de Pedro Gimeno 0.99A, y el conversor de formatos spcnv
-Desde la propia raspberry y en dosbox, se convierte el juego a formato SP
	spcnv110.exe JETPAC.Z80 JETPAC.SP
- se ejecuta el emulador indicándo que cargue el juego y solo hay que pulsar F1
	SPECTRUM.EXE JETPAC.SP

alboran70@yahoo.es

Última actualización 19/11/2017