Run classic FPS games on the Raspberry Pi
Anyone over 30 may remember playing classic 90s first-person shooters such as Wolfenstein 3D, Doom and Duke Nukem 3D. While a little formulaic, the games always kept you guessing and required super motor control as you navigated Nazi fortresses, hell-infested Martian bases and an alien-infested Earth respectively.
The Raspberry Pi has very humble specs compared to modern desktop computers, but is perfect for playing these classics given that it's over 10 times faster than the average machine in 1995, which had only 8MB of RAM and a 33Mhz processor.
Each of the games listed above was originally released as shareware, in that you could play the first 'episode' or 10 levels free of charge. This was done to drum up interest in the game.
In this guide we'll explore how to download and install software 'engines' for these games, as well as how to play either the shareware or full versions. You won't need any in-depth knowledge of computers.
Provided you have a Raspberry Pi and know how to copy and paste files and text, you'll be able to start playing in minutes.
Read on for more retro gaming nostalgia!
- Want some more ideas for using the mini PC? Check out our collection of Raspberry Pi projects
1. Prepare your Raspberry Pi
In order to begin, you'll need to have your own Raspberry Pi, ideally the Raspberry Pi 3. You'll also need to connect your Raspberry Pi to an external keyboard and to a monitor using an HDMI cable.
Next, open Terminal on your Raspberry Pi and install the necessary software by running the following command:
sudo apt-get install cmake libsdl1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libbz2-dev libjpeg-dev libgtk2.0-dev python-imaging build-essential nasm libgl1-mesa-dev libglu1-mesa-dev libsdl2-dev libsdl2-mixer-dev flac libflac-dev libvorbis-dev libpng-dev libvpx-dev libgtk2.0-dev freepats
The installation process will take some time but once downloaded, these programs will allow you to compile the game engines for Wolfenstein 3D, Doom and Duke Nukem on your Raspberry Pi.
After the installation is complete, you may wish to download the game engines themselves.
To download the Wolfenstein 3D game engine, 'Chocolate Wolfenstein' run:
git clone https://github.com/fabiensanglard/Chocolate-Wolfenstein-3D
To download the Doom game engine, 'Chocolate Doom' run:
wget https://www.chocolate-doom.org/downloads/2.2.1/chocolate-doom-2.2.1.tar.gz && tar xzf chocolate-doom-2.2.1.tar.gz
To download the Duke Nukem game engine:
wget http://dukeworld.duke4.net/eduke32/synthesis/20170711-6359/eduke32_src_20170711-6359.tar.xz && tar xpvf eduke32_src_20170711-6359.tar.xz
2. Download game data
If you're interested in Wolfenstein 3D, you can download the free shareware version of the game data files, which contains only the first ten levels, by opening Terminal on your Raspberry Pi and running the command:
wget http://maniacsvault.net/ecwolf/files/shareware/wolf3d14.zip && unzip -X wolf3d14.zip
If you want the full game and have a Windows machine, consider buying the Steam version of Wolfenstein 3D. Once you've installed the game you can find the necessary data files (with the extension .WL6) in C:\Program Files (x86)\Steam\steamapps\common\Wolfenstein 3D\base. Copy these to your Raspberry Pi.
If you want to play Doom, you can download the free shareware version which contains only the first episode of ten levels by running:
wget http://www.doomworld.com/3ddownloads/ports/shareware_doom_WAD.zip && unzip shareware_doom_WAD.zip
Alternatively if you have access to a Windows computer you can buy Ultimate Doom on Steam. You can find the game data files (with the extension .WAD) in C:\Program Files (x86)\Steam\SteamApps\common\Ultimate Doom\base
For Duke Nukem fans the setup is a little more complicated. If you have access to a Windows machine you can download and install the free shareware version of the game, which contains the first episode of the game.
Alternatively you can buy a copy of the game very inexpensively on Steam. Data files are stored in C:\Program Files (x86)\Steam\steamapps\common\Duke Nukem 3D\gameroot\classic. Copy the files named DUKE3D.GRP and DUKE.RTS to a USB stick, then onto your Raspberry Pi.
3. Play Wolfenstein 3D
Open Terminal on your Raspberry Pi and change to the directory where you downloaded the data files by running:
for i in $(find . -type f -name "*[A-Z]*"); do mv "$i" "$(echo $i | tr A-Z a-z)"; done
This makes sure Chocolate Wolfenstein can read the files. Now move the data files to the game directory with:
mv *.wl1 /home/pi/Chocolate-Wolfenstein-3D
If you're using the full version of the game change .wl1 to .wl6.
Switch to the game directory by running:
Then compile the code with:
Once the program has compiled, the shareware version of Wolfenstein 3D will now ready to play and you can launch it any time by entering:
Add the option:
--res 640 480
or similar to adjust the screen resolution. See the Chocolate Wolfenstein page for a full list of command line parameters.
4. Play Doom
Open the Terminal on your Raspberry Pi and switch to the newly created Doom directory:
This will prepare the necessary files. Now run :
This will begin compiling them. This can take some time so feel free to take a break. Once this completed run:
sudo make install
The WAD data file e.g. DOOM1.WAD you downloaded or copied from your Windows machine earlier must be in the 'chocolate-doom' directory. Use your mouse to move it there.
Use the command:
chocolate-doom-setup -WAD DOOM1.wad
This will launch the setup wizard. You can use this to configure, the display, sound, keyboard layout, mouse and even a gamepad if you have one.
To launch Doom run:
chocolate-doom -WAD DOOM1.WAD
Doom will automatically launch in full-screen mode, which can place a strain on the Raspberry Pi, so consider opening it in a window with this command:
chocolate-doom -WAD DOOM1.WAD -window 640x480
If you have a different WAD file substitute DOOM1.WAD for the file of your choice.
5. Play Duke Nukem 3D
Open the Terminal on your Raspberry Pi and switch to the eduke32 directory by running:
Locate the data files from either the shareware or full version of Duke Nukem 3D named DUKE3D.GRP and DUKE.RTS and copy them to this directory as well using your mouse.
Next, re-open Terminal and run:
Click the 'Configuration' tab to adjust values such as the screen resolution. (640 x 800 is ideal for the Raspberry Pi).
Click the 'Game' tab to verify you have the right version of Duke Nukem installed e.g. Atomic Edition. Click the 'Start' button at the bottom right to begin playing the game.
Duke Nukem 3D supports a number of official and unofficial add ons which can be installed by follow the Official Guide on the eduke32 wiki.
The fan-made add on Nuclear Showdown adds support for widescreen, many new Duke quotes and new weapons.
To get started, download the ZIP file e.g. Nuclear_Showdown_V2.1.zip using the link above and extract the contents to the eduke32 directory.
Return to Terminal on your Raspberry Pi and switch to the eduke32 directory by running:
Next run the below command to play Nuclear Showdown:
./eduke32 /ICDGAME.CON /GDukedc.grp /showdown.grp -ns.def
You can now play these classic FPS games on your Raspberry Pi!
Nate Drake is a tech journalist specializing in cybersecurity and retro tech. He broke out from his cubicle at Apple 6 years ago and now spends his days sipping Earl Grey tea & writing elegant copy.