Faster Raspberry Pi DOS Gaming with FastDosBox
June 29, 2013 8:20 pm Leave your thoughtsThis week has been a GOG Dos Games mania with ScummVM and DosBox. We also explore some possible DosBox and Raspberry Pi configurations to get as much performance as possible with the Raspberry Pi hardware. Therefore with that we almost exhaust our tuning options.
Enter FastDosBox, this application is a fork of DosBox, modified and tuned specifically for the Raspberry Pi. Just like a car, when it comes to specialized conditions, you need specialized tunings. FastDosBox is tuned for the Raspberry Pi ARM processor and is able to use utilize Raspberry Pi’s GPU for scaling.
Anyway, I have spent a couple days with the application and I have to say that it has a lot of potential ahead. Today I will share some of the steps that I have to take to make the most our of this application.
Getting the FastDosBox Application
There are two ways to get FastDosBox, from the Raspberry Pi IndieCity store or download the source codes from the official No RISC No Fun website and compile them yourselves.
I would recommend going with the first option though because it did save me the hassle of compiling the software and it doesn’t cost much at the time of the purchase. Basically if you can afford a good cup of coffee, you can afford to buy this application.
If you go the IndieCity route, it’s very simple. Simply update your Raspberry Pi to the latest version, to make sure you have the Pi Store.
1 |
sudo apt-get upgrade |
Then go into the desktop using startx. You’ll see the Pi Store icon. Just create your account, search for FastDosBox and install it from the Pi Store application. It will tell you if the FastDosBox application has finished downloading and is installed.
Running the Application
FastDosBox by default is installed under /usr/local/bin/indiecity/InstalledApps/fastdosbox/Full/fastdosbox-1.5/fastdosbox. Unlike the standard DosBox, FastDosBox cannot run under X desktop environment, you’ll have to exit and use the console to start your game.
As per previous instructions, you would go to the game directory such as /home/pi/dos/ultima7/ and run the fastdosbox command. So the full commands would be:
1 2 |
cd /home/pi/dos/ultima7 /usr/local/bin/indiecity/InstalledApps/fastdosbox/Full/fastdosbox-1.5/fastdosbox |
That should, like the standard dosbox load the dosbox.conf in the game directory. However the above is pretty tedious to type.
So we’ll create a symlink so that we can just type fastdosbox from the game directory whenever we want to play without specifying the full path. The commands that I use to create the symlink were:
1 2 |
cd /usr/bin/ sudo ln -s /usr/local/bin/indiecity/InstalledApps/fastdosbox/Full/fastdosbox-1.5/fastdosbox |
Remember, that if you ever update FastDosBox, you might need to re-point the symlink to the updated directory, eg./…. fastdosbox-1.6/fastdosbox
Important Settings
Here are the most important settings that you must have in your dosbox.conf in order to ensure FastDosbox works properly.
Usescancodes
Set this to false always, otherwise pressing esc will cause an error.
1 |
usescancodes=false |
Fullscreen and Resolution Setup
As far as I understand FastDosbox have its own scaler, therefore it’s best to set the resolutions to original.
1 2 3 4 |
fullscreen=false fulldouble=false fullresolution=original windowresolution=original |
Output
The original config from FastDosBox uses surface as output, however in my setup this caused some display corruptions. This may be caused by me setting up the Raspberry Pi to connect through a HDMI to VGA converter. Not 100% sure of the cause, but, if you ever encounter some display corruptions, use output overlay.
1 |
output=overlay |
Should You Give This a Go?
Here are some things from my experiences so far.
Easy Installation. The installation procedure was very easy, basically click and install from the Raspberry Pi Store. Although it’ll be good if it creates the symbolic link automatically, this is not really a shortcoming. The pricing was good as well, like I said, if you can afford a cup of coffe you can afford this. Well, of course it’s possible to download the source code and compile it yourself, but I just can’t spend my time to do so.
Hardware Upscaling. The biggest problem that I have with running the normal DosBox is that scaling takes a lot of resource since it’s not hardware accelerated. According to the documentation FastDosBox is using the GPU via dispmanx for upscaling. The result is of course evident from the screenshot in this article, I was able to get fullscreen gaming of Ultima 7 with “smoothened” out graphics without using too much of the CPU processing power. From my experience with full screen scaling I was able to get similar or actually slightly faster frame rate at times.
Performance Seems Faster. Ultima 7 is a DOS games but it’s still a more modern game which was quite demanding and FastDosBox claims to emulate up to 386DX 25Mhz so playability is still quite low, but I was able to get better frame-rate then when I was using the normal DosBox. Obviously you’ll have to tune the DosBox configs too for performance, don’t forget to check out our last article for this.
So, should you give this a go? I think you should, it doesn’t matter if you buy it from the store or compile it yourself; depending on the game you play, you might get better performance and obviously the fullscreen scaling is a good feature. I hope that the development of FastDosBox continues on so that we can get even more performance improvements.
Tags: dosbox, fastdosbox, gog games, Raspberry Pi
Categorised in: Fun computing, Raspberry Pi