Virtualized DOS Gaming in 2018
After recently seeing a couple of YouTube reviews for DOS games that looked really fun, and that I’ve never played, I decided to look for the best way to play them on modern hardware. Upon doing some quick research, I found 3 potential options, each of which seemed very viable. Virtualization via an application like VirtualBox or VMware Workstation/Fusion was one option, DOS emulation through an application like DOSBOX seemed to be a very popular option, and native-platform play via a physical PC was also an option.
System Requirements for DOS Games
DOS was a pretty bare-bones environment and didn’t support a unified API for things like graphics and sound, so unique sound cards and video hardware had to be explicitly supported by game developers. As a result, only common standards like AdLib, Sound Blaster, and general MIDI compatibility were usually supported in most games. While Sound Blaster ISA cards are fairly attainable at around $30-$50 today, AdLib cards are very pricey. I had a Sound Blaster 16 back in the day, so I’d be plenty happy with that, but a lot of people prefer AdLib cards. So much so, that people have created brand new replica AdLib cards for around $60-$80, and from the reviews I’ve seen, they work great.
In terms of video hardware, there’s really nothing special that’s required in DOS. Unlike the 3D accelerator battles from the mid 90s, with companies like 3DFX, nVidia, Diamond, Matrox, all coming out with competing 3D API standards, the vast majority of DOS games don’t require any special video processing at all. Most DOS games are programmed in the native Mode 13h supported by DOS, which requires no special drivers and runs at 320 x 200 with 256 colors. With an extender like DOS4GW, higher resolutions and color depths can be attained, but the graphics processing power required for those games still rely on the CPU and not on a standalone graphics processor.
Some of the most resource-intensive DOS games include Tomb Raider, Quake, the Fallout series, and the Carmageddon series. These games require 90Mhz+ CPUs and between 8MB and 16MB of RAM. Fallout didn’t run well with less than 32MB of RAM. Some of these later games did have optional 3D accelerated graphics modes, typically via 3DFX GLIDE or OpenGL compatibility, but although those accelerated modes did make the games look better, they weren’t required for play. 3DFX cards are very expensive today, and if you can find one that still works, prices range from $70 on the low-end for a bare Voodoo 1 card up through $300 for some of the higher-end cards.
If you can get your hands on a cheap 486 DX4 or lower-end Pentium 100 or 133 machine, a physical PC is definitely a viable option. Even with as little as 8MB of RAM, a few hundred MB of hard disk space, and a Sound Blaster 16 you should still be able to play a vast majority of DOS games. First, I’ll explore the pros and cons of that option. Unfortunately, older machines that have managed to escape a dumpster or PC recycler are getting very rare these days, and prices are going up due to increased collectibility.
Option: Gaming on a Physical PC
The first option, and the primary choice of many, is to get hands on a higher-end 486 or lower-end Pentium machine to play DOS games on the games’ native, intended hardware. This is obviously the most compatible of all potential solutions, since games were coded to run on this hardware. There are some immediate pros and cons that can be identified:
Pros
- Compatibility with this solution would be very high, as the physical hardware is being used as designed.
- This is the most nostalgic setup possible, since all of the original buttons, sounds, peripherals, a CRT monitor, etc. will bring back all of the DOS gaming magic from yesteryear.
- Old software is very easy to find, often a long past end-of-support from the manufacturer, and since they no longer make money off the software, they don’t care if you download and use it. A good example is MS-DOS 6.22, which is basically the only operating system software required to play old DOS games. Microsoft is long past caring if people use MS-DOS 6.22, and don’t even bother to go after sites that offer it for download anymore.
- Modern hardware solutions exist to replace aging hardware. Top of mind here are replica sound cards that can be purchase brand new and tested, and adapters that allow you to use Compact Flash cards instead of legacy IDE mechanical hard disks, which are becoming more and more rare and unreliable. As a bonus, the CF card can be swapped out while the machine is off and data transferred to/from it via a USB adapter to a modern PC.
Cons
- This hardware typically only allows output via standard D-sub 15 VGA connectors. This is a dying format, so you can either use a CRT (the best solution), or output to a modern display, which usually results in a stretched/blurry image and/or requires specialized hardware.
- This solution relies on old physical hardware. Capacitors can fail on mainboards, old CMOS batteries may have leaked and damaged other electronics, parts are getting harder and harder to find, and old IDE spinning hard disks are also very old and may be unreliable. (The hard drive aspect of this concern can be remedied via CF adapters – see “Pros” section above.)
- Getting data to/from the hardware can be difficult, as it would largely either rely on transferring to/from floppy disc or burning CDs. Remember, USB wasn’t a thing in DOS. (This can be remedied via CF adapters – see “Pros” section above.)
- Space is a concern. Most of these old PCs are large, and CRT monitors are definitely large. If you have room for a dedicated old PC on its own table or desk this is a viable solution, but space may be a premium for some people.
- These old PCs are becoming more and more rare, and are getting more expensive. Parts are also becoming hard to find without resorting to sites like eBay, where they can be very expensive.
There’s definitely a lot of pros and cons of gaming on original hardware, but the two biggest cons for me are space and price. I don’t have room to set up a desk for a dedicated DOS gaming machine, and I don’t want to spend a couple hundred dollars plus on a system that I’ll only ever use once in a while. Physical PC setups for old school gaming are a very viable option for enthusiasts, and I love watching YouTube videos of legacy machine builds for for this purpose, but for me it isn’t really an option.
Option: Virtual Machine via VirtualBox
To be honest, I thought this would be the most solid option… before I actually tried it. Modern virtualization platforms like VirtualBox and VMware Workstation/Fusion are great at virtualizing all sorts of modern operating systems, so you think MS-DOS, Windows 95, or Windows 98 would be simple, right? Wrong.
When attempting this setup, I first tried to install Windows 98 SE, which also supports DOS games, since Windows 95 and 98 basically run on top of MS-DOS.
This is where I ran in to the first big hurdle. VirtualBox doesn’t support Windows 95, 98, or MS-DOS with its own Virtualization Tools. This means that the network card drivers, video drivers, sound driverss, and USB drivers for the hardware that VirtualBox emulates aren’t provided. Windows 95 and 98 run horribly without correct video drivers, even on a real machine, so this was a problem.
Sound and Video Drivers (There Aren’t Any)
I found posts as early as the mid/late 2000s from VirtualBox users who were frustrated with trying to get sound working on Windows 95 and 98 VirtualBox VMs. The reply from VirtualBox’s development team was basically “Windows 9x isn’t really a high priority for us since hardly anyone uses it anymore, so we aren’t going to bother with drivers or virtualization tools for these platforms.” This still seems to be the case some 10 years later.
I was able to find a post from 2008 which mentioned use of a very generic Sound Blaster driver for Windows 9x that could be used to get sound working. I was able to successfully install the driver on Windows 98 and got that working, but it blue-screened on my Windows 95 VM immediately upon install (and again upon all subsequent reboots, continuously). Keep in mind this was a legit driver, downloaded directly from Creative Labs’ website, but obviously didn’t line up 100% with the emulated sound device in VirtualBox.
After this, I decided to scrap the idea of using Windows 95 at all, so I deleted that VM. In the Windows 98 VM I soon found that without paying for a third party “Display Doctor” software, there was no working video driver, so 640×480 with 16 colors was as high as it was able to go. I attempted to launch a few DOS games anyway, and all but one of them refused to run on Windows 98, citing various errors.
At this point I decided to scrap 95 and 98 and install MS-DOS 6.22. No video drivers required here, so it should be easy, right? Wrong.
Falling Back to DOS 6.22
In native DOS, the only driver I would need to play games would be a sound driver. VirtualBox emulates a Sound Blaster 16 chipset… sort of.
Getting MS-DOS 6.22 installed and running in VirtualBox in just a few minutes wasn’t a big deal. MS-DOS 6.22 installs from only 3 floppies, and can be done in no time. I was even able to use some lines from the AUTOEXEC.BAT and CONFIG.SYS files from a Windows 98 Install boot floppy, along with some files from the same disk, to add CD-ROM support to my DOS 6.22 install. All of that worked great. The big issue I (still) ran in to was sound. With Creative’s generic SB drivers installed, the diagnostic utility could see the sound card and properly identify it’s IRQ, DMA, and interrupt addresses, but said that MIDI on the device was disabled and refused to see the MPU-401 MIDI component, no matter the setting. I found a web posting from 2008 from the person who I’m assuming wrote the Sound Blaster emulation portion of VirtualBox, which stated that he wasn’t going to take the time to implement proper MPU-401 MIDI emulation and so the “virtual” SB card has a “virtual” jumper set (a physical jumper on the real card) to disable the MPU-401.
Even though the drivers could “see” the sound card and identify all of its settings correctly, I couldn’t get any digitized sound to play in any game. Due to a lack of drivers, VirtualBox was starting to look like a lost cause.
Option: Virtual Machine via VMware Workstation / Fusion
When attempting to prepare the above configuration on a different virtualization application (VMware Fusion), the first thing I did before wasting any more time was to check and see if VMware would support Windows 95 and 98 with its virtualization tools, and much to my surprise, they do! Great! No more dealing with graphics and sound drivers. This is going to be easy! Right?
Installing Windows 98 was as easy as booting to the boot floppy, putting the Windows 98 CD-ROM image in the virtual CD-ROM drive, booting the the disk, and choosing to install from the menu. Installing Windows 95 was a little more difficult since MS-DOS needed to be installed first, CD-ROM support added to the DOS install, and then Windows 95 setup could be run from the Windows 95 install disc. Both operating systems installed incredibly fast, and VMWare Tools was then installed on each one.
After a reboot, I had great looking video in both VMs and was able to set the screen resolution and color depth to high values, including 32-bit color. I immediately noticed that sound didn’t work on either install though. Here we go again. Upon some searching, I found that VMware Fusion provides sound through an emulated Sound Blaster Ensoniq virtual device. Probably because VMware doesn’t want to or can’t redistribute Creative’s copyrighted drivers, sound drivers must be downloaded and installed separately and aren’t included in the VMware Tools pack.
MIDI is supported when using the Creative Labs Ensoniq drivers under Windows through Windows’ MIDI software implementation, but not supported in hardware, thus, no MIDI support for DOS (or Linux). As a fun bonus, trying to install the suggested drivers on my Windows 95 VM blue-screened the VM upon install, just like before. Oh how I don’t miss Windows 9x. Upon attempting to launch a few games under Windows 95 and 98, just to see if they’d run, the results were the same as before. Most games just errored out and wouldn’t run.
Since MIDI is explicitly not supported in DOS, I didn’t bother to test a DOS 6.22 VM.
Option: DOSBOX
To be honest I’d never attempted to use DOSBOX before getting myself in to this experiment. The following are things I’d like to note about the DOSBOX project for those who are unfamiliar:
- DOSBOX is a DOS emulator. It’s not a virtual machine that runs a specific version of DOS (MS-DOS, FreeDOS, etc.).
- DOSBOX’s website claims that 90% of tested games supported and playable using the software. A database of DOS games and their playability level is community developed and updated.
- DOSBOX is free, open source, and is under active development. The latest version was released just a few days before I created this post.
- DOSBOX is multi-platform, and runs on Windows, macOS, Linux, and even on ARM platforms like Android and Raspberry Pi. It’s included as an installable option in RetroPie.
- You can easily mount local directories as drives on DOSBOX, making it very easy to transfer software to/from DOSBOX.
- There are several GUIs to DOSBOX, which allow you to have separate system configurations (CPU speed, etc.) for each game, makes all of your games easily accessible, and doesn’t require any CLI interaction once it’s been set up properly.
- DOSBOX emulates both Sound Blaster and Gravis Ultrasound cards, and drivers are automatically configured, so there’s nothing to download and install manually.
- Mouse support happens out of the box, so you don’t have to worry about installing or configuring mouse drivers from within DOSBOX.
Honestly, this works much better than I thought it would.
Much the same way macOS handles application installs, DOS applications would typically just install to their own directory and all files required to run that application would exist within that directory and nowhere else. There were no massive shared DLL libraries, no registry, no versioned APIs — none of that to deal with. As a result, applications and games in DOS are typically very portable. Every once in a while a game’s configuration files will reference a specific directory where the game was installed (for example C:\D3D) in a random text-based configuration file, so renaming the game directory, moving it to a different directory as a subdirectory, or moving it to a different drive might break the game, but the portability and distribution of DOS games is fairly simple due to the simplistic nature of DOS.
DOSBOX makes it easy to put a large collection of DOS games inside a directory on your local machine (think of the root of that directory as the root of C: on a DOS machine), and then mount that directory as C: in DOSBOX. Want to add something to the “C drive?” Drag-drop in to your local directory and reboot DOSBOX. It’s as simple as that.
Many DOS games are available on Abandonware sites, and some of the more popular games whose intellectual properties are still owned by existing companies are available for purchase DRM-free on sites like gog.com. There are thousands of games for DOS that have been essentially abandoned though, since their developers and publishers no longer exist. (I know that WarCraft II from the above screen shot is not from a company who is no longer around, before anyone comments, but I do own this game on CD-ROM.)
The few games I downloaded and tried worked perfectly under DOSBOX, although some required a little tweaking to the CPU settings to slow them down because they played too fast with the default configuration. I look forward to testing out more games in DOSBOX.
Conclusion
Because I typically like making things more complicated than they need to be (blessing and a curse), I thought for sure that emulating an entire PC with virtualization software would be the way to go when it came to playing old DOS games on modern equipment. After several wasted hours of digging around online for solutions, reading 10-year old forum posts where my same frustrations were realized a decade or more ago, I was glad to stumble upon DOSBOX. For emulating some Windows 9x games that don’t require hardware acceleration, VMware Workstation / Fusion running Windows 98 would probably be a solid option, but for DOS games, DOSBOX is the way to go.
As. usual, the open source community identified a problem and worked hard, to the benefit of all of us, to develop a free and open source solution.
If you enjoyed this tutorial and would like to see more, please feel free to share this article on social media, comment below letting me know what else you’d like to see, and follow me on Twitter @JROlmstead.
Your write-up was recently linked to on VOGONS, and I just wanted to say that it was a very nice read. You did good research and summarized very nicely that which is known to many veterans of the DOS gaming community, but which is often hard to convince others of: that for the purpose of enjoying DOS games, DOSBOX is generally far superior to tinkering with real hardware.
Thanks to DOSBOX’s open-source nature, there are enthusiasts taking it to directions beyond what is officially supported by the core team: such as 3D accelerator (Voodoo) emulation, and support for running Windows 9x inside DOSBOX. I do not have firsthand experience as to how viable this solution is; for early Windows games I typically found that there are game-specific patches and fixes that allow them to be run on a more modern OS, such as Windows XP, often with emulated 3D capabilities (e.g., nGlide).
Thanks for letting me know that. I didn’t know that site existed but it looks cool. I’ll check it out. I haven’t tried any old Windows games in the ways I tried to use DOS games as described in that guide. Most of the older Windows games I played were some of the popular ones so they’re all available on Steam and GOG (Quake II, Unreal Tournament, etc.). It’s good to hear that people are taking the initiative to patch some of these older games and keep them alive.
How about a sequel to this article?
=> https://pcem-emulator.co.uk/index.html
Version 15 was recently released.
The biggest issue with using legacy hardware is configuration. Yes, with the appropriate hardware and software it offers the most authentic (not always best) experience, but setting up DOS, finding appropriate drivers (including ones that maintain stability and maximise base memory), and appropriate boot menu configurations for different game types is at the very least a whole evening’s work.
Transferring data is actually easy. Stick in a network card, use packet drivers, and a DOS FTP server. Much easier than a full network requester.
Physical hardware is always a compatibility trade off. Certain games will need expansion cards to be swapped out.
Tie Fighter is one of the worst cases in point. For maximum effect I’m using a Soundblaster AWE64, an analogue joystick, a separate replica MusicQuest MIDI card (otherwise it triggers a pause bug in TF), and a Roland Sound Canvas. That’s a lot of hardware, fiddling, and expense to play a game when it’s available on GOG.com in a ‘click and go’ configuration that supports modern game controllers for under a tenner (provided you own a reasonably fast PC, emulation is slow).
DOSBox will usually achieve at least 90-95% of a real hardware solution. In the case of games such as Commander Keen 4-6, I don’t think I could tell the difference in an A/B comparison.
If you really want to scream, go and look at the requirements to successfully run the demo ‘Copper’ with all effects present (needs both a specific graphics card, and a limited selection of fixed frequency monitors). It just works in DOSBox..
Just use Windows 98SE, it comes with the SoundBlaster drivers bundled (and they even auto-install) and the OS is generally much more stable on fast or emulated systems. I got 98SE to run on VirtualBox (plus Display Doctor), but all my games wouldn’t enter full screen. Even ones which don’t require Direct3D and can do software rendering.
I will try on VMWare. Maybe display emulation is better, and with the 98SE having bundled SoundBlaster drivers it could be the ultimate DOS and 9x setup (minus Direct 3D support obv, I am surprised that no VM software supports software-emulated Direct3D support for 9x)