Playing GOG.com DOS Games on Raspberry Pi
June 25, 2013 9:54 pm 2 CommentsUPDATE: I seemed to have mistyped Ultima 7 with Gabriel Knight, I have updated the article so it’s consistent now.
I have a lot of DOS games from GOG.com. That store is really cool bringing most of the great DOS games and indie games to PCs and Macs. Most of their games work out of the box too, so when I want to play Strike Commander or Wing Commander on my desktop PC I wouldn’t have to think about any DOSBOX configurations or ScummVM configuration at all. It just works. However lately I’ve been wanting to play some of their games on the Raspberry Pi and some of them have been working. So today I’m going to share it with you all how I get GOG.com games work on a Raspberry Pi. For the purpose of today’s exercise, we are going to get the game Ultima VII running on our Raspberry Pi.
Prepare Your Raspberry Pi
If you haven’t yet, you should prepare your Raspberry Pi by installing DosBox and setting up your screen resolutions. Read our previous article on DosBox on Pi here to find out how.
To increase our chances, we should also set overclock to high and memory split to 32MB. You can do this using the raspi-config.
Transfer the GOG game into Your Raspberry Pi
In general, every GOG games are installed under c:\Program Files (x86)\GOG.com\ or c:\GOG Games\. Ultima VII in my installation is located under c:\Program Files (x86)\GOG.com\Ultima VII – Complete\ULTIMA7\. There are numerous ways to transfer the files to Raspberry Pi, you can either copy the files directly or use an FTP application to transfer the files via sftp. My favourite application to do this is FileZilla, it’s free and easy to use.
So go into the Ultima7 directory and copy all the files into your Raspberry Pi. The ones that you can left out are: the DOSBOX directory, Graphic mode setup.exe, unins000.dat/exe. Of course it wouldn’t hurt to just copy the whole thing to your Raspberry Pi. Also don’t forget if you are wondering what is you Raspberry Pi IP address, you can always use the command ifconfig.
In our example, we have transferred the files under /home/pi/dos/ultima7/
Prepare the DOSBOX configuration
Now that you have copied all of the files into the Raspberry Pi, let’s prepare the configuration. So in your Raspberry Pi terminal, go to the Ultima7 directory:
1 |
cd /home/pi/dos/ultima7/ |
Then copy the original dosbox configuration from GOG, which would be dosboxGK.conf (GOG postfix all of the dosbox configuration with the game title initials) into dosbox.conf
1 |
cp dosboxULTIMA7.conf dosbox.conf |
Now let’s do some minor modifications to the dosbox configurations. Using your favourite text editor, open dosbox.conf. In my case I’ll use leafpad.
Here are a couple things that you’ll have to change, every games are slightly different though, but the modifications will be in similar places. Most of the configurations below will be to reduce the amount of resources required to do the emulation.
Modify the priorities
1 |
priority=highest,normal |
Adjust the full screen resolution
1 2 |
fullresolution=original fulldouble=false |
Adjust SDL
1 2 3 4 5 |
fullscreen=true fulldouble=false fullresolution=original windowresolution=original output=surface |
Adjust rendering
We’ll adjust the frameskip and the scaler so that it uses less amount of processing power
1 2 3 |
frameskip=2 aspect=true scaler=none |
Adjust the CPU
1 2 3 4 |
core=auto cycles=1800 cycleup=10 cycledown=10 |
Adjust the Autoexec
This is the important part. We must adjust the paths otherwise the game wouldn’t mount properly and wouldn’t start at all.
The games from GOG also come with the autoexec configuration, only it comes on a separate config file. To simplify, we will copy the content of the autoexec settings to our main dosbox.conf. So open the file dosboxULTIMA7_single.conf and copy the contents onto the last lines of you dosbox.conf.
You last lines on your dosbox.conf should look like these:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
..... [ipx] # ipx -- Enable ipx over UDP/IP emulation. ipx=false [autoexec] @echo off mount C "..\ULTIMA7" cls c: ultima7.com exit |
Obviously the paths above are wrong, so we’ll have to update the path to suit our needs. In this example, it’s pretty simple, instead of mounting ..\ULTIMA7 we mount /home/pi/dos/ultima7.
1 2 3 4 5 6 7 8 |
[autoexec] @echo off mount C "/home/pi/dos/ultima7" cls c: ultima7.com exit |
Playing the Game
To play the game, simply navigate to /home/pi/dos/ultima7/ then type dosbox. This should load the configuration that you just edited.
Ultima 7 is a more modern DOS game and the Raspberry Pi has got just the minimal amount of hardware to emulate the machine, so this game will just barely run. The Avatar does move slowly on my Raspberry Pi hardware. I am however running on overclock settings set as “high”, perhaps setting it up to maximum might help although there are always risks in overclocking.
In conclusion though, today you have learned how to transfer and run a GOG purchased game on a Raspberry Pi. If anyone have some ideas on how to optimise the performance, please leave some comments below.
Tags: gog games, Raspberry Pi, retro game
Categorised in: Fun computing, Raspberry Pi