Running DOS Programs on Linux: Duke Nukem Lives!

If I play video games they're usually pretty low tech ones. One of the few games I miss from the old days is Duke Nukem, and I'm talking about the Duke before he went 3D. If you have an old DOS game that you'd like to run, or for that matter any old DOS program, check out DOSBox. Even if you don't have any DOS programs that you'd like to run, you might want to try downloading some of the old DOS games that are now available free online.

DOSBox is a DOS emulator that runs under Linux as well as OS X and Windows. To quote from the website:

DOSBox is a DOS-emulator that uses the SDL-library which makes DOSBox very easy to port to different platforms. DOSBox has already been ported to many different platforms, such as Windows, BeOS, Linux, MacOS X...

DOSBox also emulates CPU:286/386 realmode/protected mode, Directory FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with older games...

DOSBox is fairly easy to use, if it's not included in your distro's repo (openSuSE has it), download it here. Once it's installed just type dosbox. When the DOSBox window appears the first thing you have to do is mount the directory that contains your DOS program as a DOS drive. You do this by typing a mount command in the DOSBox window, for example I did:

  mount c ~/bindirs/dukenukem/DUKE

To start your DOS program change to the drive that you just mounted and type the name of the program:

  c:
  dn1.exe

And now you're playing Duke Nukem, or possibly doing something useful.

If you don't have a copy of Duke Nukem you can download it here. I already had a copy that I had saved years ago but I did download a copy of Duke Nukem 2. This required a few installation steps before I was able to run. Under Linux:

  $ cd ~/bindirs/dukenukem
  $ mkdir DUKE2
  $ cd DUKE2
  $ unzip ~/tar/d/dnukem2.zip
  $ dosbox

Then in the DOSBox window:

  mount c ~/bindirs/dukenukem/DUKE2
  c:
  install.bat
  nukem2.exe

Note that this actually ended up installing it in ~/bindirs/dukenukem/DUKE2/DUKE2 but this is easy enough to move around from Linux to eliminate the extra DUKE2 from the path.

Running on a Quad Core Phenom, DOSBox's performance was good: I encountered no performance problems with video or sound. I also noticed that while running it didn't appear to require any more CPU than any other program I tend to use so I suspect performance should be good on most modern systems.

Mitch Frazier is an embedded systems programmer at Emerson Electric Co. Mitch has been a contributor to and a friend of Linux Journal since the early 2000s.

Load Disqus comments