PC
The good old days of DOS.
Emulator | Rom Folder | Extension | BIOS | Controller Config |
---|---|---|---|---|
DOSBox | pc | .com .sh .bat .exe .conf | none | /opt/retropie/configs/pc/dosbox-SVN.conf |
DOSBox Staging | pc | .com .sh .bat .exe .conf | none | /opt/retropie/configs/pc/dosbox-staging.conf |
Emulators: DOSBox, Rpix86, DOSBox Staging
ROMS
Accepted File Extensions: .com .sh .bat .exe .conf
Place your ROMs in
/home/pi/RetroPie/roms/pc
Documentation
- DOSbox: http://www.dosbox.com/wiki/Main_Page
- Rpix86: http://rpix86.patrickaalto.com/rfaq.html
- DOSBox Staging: https://dosbox-staging.github.io
Controls
DOSBox Quick Keys:
ctrl+F1: display keymapper configuration screen (to assign key/buttons)
ctrl+F4: to change CD
ctrl+F9: exit emulator
For more information see: https://www.dosbox.com/wiki/Special_Keys
Tutorials
How to add games to RetroPie and launch them directly from EmulationStation.
How to configure DOSBOX for individual games. aka one .conf file per game. Recommended way to add games in order to keep a clean setup and ease debug process (whenever needed).
How to configure USB game controllers in DOSBox.
How to create a default (arcade) mapping for game controllers in DOSBox.
DosBOX Compatibility List feel free to contribute to the list.
see also forum post here
DOS/32A extender
As per Dosbox' documentation: DOS/32A (DOS/32 Advanced DOS Extender) is a free and open source software that can be used to replace the DOS4GW.EXE DOS Extender file that many DOS games use. Once a game uses this, it is expected to run faster and better in DOSBox.
Note: not all games will work with DOS/32A. For example, Shadowcaster is incompatible with it because RAVEN.EXE run with DOS/32A is unable to find the A32SBDG.DLL file that is in the same directory, while with DOS4GW it can.
Check Dosbox' documentation to get further information as well as a guide on how to proceed.
Once "patched" your file executable should look like this:
$ file hospital.exe
MS-DOS executable, LE executable for MS-DOS, DOS/32A DOS extender (embedded)
Install Gravis Ultrasound (GUS)
DOSBox comes with Gravis Ultrasound support, but you need a little effort to set it up. It's worth it definitely as the difference with a SoundBlaster 16 is impressive (check that for yourself with a game like Rise of the Triad, it's night and day).
1. You must first find the GUS driver for Dosbox. As I'm not 100% sure about the legality of the file no link can be shared from this wiki.
2. If you get the file it should typically be containing a "ULTRASND" folder with various files and folders within.
3. Simply copy that "ULTRASND" folder straight under your Retropie "roms" directory for Dosbox (default: roms/pc).
4. Edit the .conf of your game(s) and get to the [gus]
section. Modify it this way:
[gus]
[...]
gus = true
gusrate = 44100
gusbase = 240
gusirq = 5
gusdma = 3
ultradir = C:\ULTRASND
setup.exe
or install.exe
located in your game's directory.
Note: it's ok to move the "ULTRASND" directory to another location. Just remember to "mount" it whenever you launch the game and to edit the ultradir
path from .conf
accordingly.
List of DOS games with GUS support.
Thread to fix games relying on Human Machines Interface/HMI setup. Those will fail detection of GUS soundcard (like Terminator Future Shock, Daggerfall, Whitchaven, etc).
Tips and tricks
With DOSbox on a Pi3B+ without overclocking (stock) I was able to get up to 34000 cycles. Meaning a solid equivalent of a good 486DX2 or even Pentium 60 according to this page. Below the cpu
setting I'm currently using for the majority of games. Feel free to look at the DOSbox' documentation for further details.
[cpu]
cycles = max 95% limit 34000
Whenever a game is running too fast you'll have to rely on the fixed
parameter of cycles
. Good example with Wing Commander (1 and 2):
[cpu]
cycles = fixed 4000
Troubleshooting
If the keyboard input in DOSBox is not correct, you need to edit the DOSBox config file, dosbox-SVN.conf, which is located in the hidden folder, .dosbox, in your home folder.
To fix, run the following commands:
cd ~/.dosbox
sudo nano dosbox-SVN.conf
In the [sdl] section, edit line 34 of dosbox-SVN.conf so that usescancodes is set to false as below:
usescancodes=false
In some games your joystick/controller may be permanently fixed in one corner. For these games, edit dosbox-SVN.conf, find the [Joystick] section and set timed to false as below:
timed=false
rpix86 defaults to analog audio output, if you use HDMI audio you need to give -a0 parameter to rpix86