Most PC gamers have, at one point or another, known what it feels like to have a computer that’s too slow to play the latest games on the market. It sucks, but it comes with the territory—you just save up some cash and upgrade. Unfortunately, there’s another, more insidious problem that can keep you from playing the games you want to: a PC that’s too fast.
If you’ve ever tried to run an old DOS game on a modern computer, you probably know what we’re talking about. If the game loads at all, it’s glitchy, or too fast, or the sound doesn’t work. It’s a symptom of software written at a time when gigahertz-scale processors and gigabytes of RAM were simply unthinkable. If you wanted to, you could try to fix the problem by building a PC out of vintage hardware and running DOS natively, but there’s a much easier solution, called DOSBox.
DOSBox is an emulator, similar to those that allow you to play classic console games on your PC (or MAME machine), which simulates a DOS environment running on old hardware. In this article, we’ll show you how to get set up with DOSBox, so you can play all of the classics on even the most breakneck-fast modern rigs.
1. Download and Install DOSBox
The installation procedure for DOSBox is straightforward. Just download the latest version at the DOSBox homepage (www.dosbox.com) and run the installer. You’ll be asked to choose a location to install DOSBox to—put it wherever you like.
Before you run DOSBox for the first time, you’ll need to create a folder to house your old games (image A). When you start DOSBox, you’ll mount this folder as a virtual C: drive, so make sure that it contains all the games you’ll want to play. Once you’ve done this, launch DOSBox by running DOSBox.exe.
2. Launch a Game
When you run DOSBox.exe, two Windows will open, both resembling a command prompt. The window that opens in the background, labeled DOSBox Status Window, is only for troubleshooting and can be safely ignored (for now). The other window is where we’ll launch our game. To do so, start by mounting the folder you created earlier. The command to do this is MOUNT [drive letter for mounted drive] [game folder path]. So, if your games are saved in C:/Emulation/DOSGames, and you want to mount that folder as the C drive, you would enter MOUNT C C:/Emulation/DOSGames.
Now that your games folder is mounted, navigate to the folder containing the specific game you want to play. If your DOS skills are a little rusty, you can do this by first entering C: to move to the (virtual) C drive, then typing CD followed by the name of the game directory and hitting enter. Now, run the game’s executable. If you forget what the name of the executable is, enter DIR to see a list of a directory’s contents (image B).
3. Tweak the Game
If everything goes according to plan, your game will now launch in a small window (image C). To switch to (or from) full screen at any time, just hit Alt+Enter. Once you get into the game, it’s very likely that it will run too fast or too slow. If you experience this, you can either speed up or slow down the simulated-computer’s processor by pressing Ctrl+F12 or Ctrl+F11, respectively.
If the game won’t launch at all, you may need to adjust the emulation options by running DOSBox Options.bat and editing the hardware settings in the configuration file.
4. Create a Desktop Shortcut
If you find yourself playing a particular game frequently and don’t want to have to run it from the DOSBox command line every time, you can create a shortcut that will run the game directly. To do this, first create a new shortcut to DOSBox.exe, then edit it. In the Target field after the DOSBox.exe path, add, in quotes, the filepath for the game you wish to run (image D). If your game needs any special configuration options, you can save a separate config file (make any changes you need to the default DOSBox config file, and then save it as a copy with a different filename) and specify that the shortcut should use that configuration by adding the -conf tag, followed by the filepath of the new config file, in quotes, before the filepath for the game you wish to run.
Once you’ve got the Target field all filled out, simply rename the shortcut, and (if you want) change the icon, and you can run your old game whenever you want, right from your desktop.
Way back in the DOS era, before the Internet boom, multiplayer games frequently used modems (image E), or old communications protocols like IPX. Of course, modern computers are rarely equipped to use those old methods, so DOSBox includes a solution.
For IPX games, DOSBox emulates an IPX network, though it is actually using the modern UDP protocol to connect to other computers. To use DOSBox’s IPX feature, each player first has to enable IPX networking by opening the DOSBox config file (which you can do by clicking the DOSBox Options.bat file) and changing the line that says ipx=false to (you guessed it) ipx=true.
Next, you need to establish the emulated IPX network using DOSBox’s internal IPXNET program. One person will have to act as the IPXNET server. That person simply opens DOSBox and enters IPXNET STARTSERVER (image F). IPXNET uses UDP port 213, so if you’re behind a NAT firewall you may have to set your router to forward that port. More information on this can be found at http://portforward.com.
Everyone else who wishes to connect to the IPX game needs to open DOSBox and type IPXNET CONNECT [IP address of server]. If you’re playing on a LAN, the server can find his local IP using ipconfig. If you’re playing over the Internet, he can find his external IP by visiting http://whatsmyip.org.
Once everyone is connected to IPXNET, simply start the game you want to play, and start a multiplayer game as though you were really connected on an IPX network. You can see your simulated IPX address in the DOSBox Status Window.
DOSBox can also emulate a serial nullmodem connection using TCP. To use this feature, the server and the client must each make a change to the DOSBox config file. The server has to change the line that says serial1=dummy to say serial1=nullmodem. The client must change the same line to read serial1=nullmodem server:[IP of server] (image G). Use the same methods as above to determine the IP address of the server, and don’t include the brackets.