DIY Gaming

How to Run Doom on Your Raspberry Pi Without an Emulator

Christian Cawley 26-07-2017

Want to enjoy some awesome retro gaming 5 Retro Gaming Projects with the Raspberry Pi Zero The Raspberry Pi Zero has taken the DIY and homebrew world by storm, making it possible to revise old projects and inspiring newcomers, especially in the fevered minds of retro gaming fans. Read More , alone or with friends? Fancy teaming up online for some awesome monster blasting first-person shooter fun? Of course you do!


Back in 1997, id Software released the source code for Doom, the ground-breaking 1993 FPS which pits you, a space marine, against all manner of demons and beasts on the Martian moon of Phobos. With the source code available, various new forms of the game have appeared over the years, perfect for running on a Raspberry Pi.

Yes, that’s right: Doom on the Raspberry Pi. PiDoom, anyone?

What You’ll Need

To run this retro classic on your Raspberry Pi, you won’t need any emulators (like RetroPie or Recalbox) or game ROMs. Doom can run natively on the Pi with a simple installation of the game engine, followed by some WAD files. These contain the actual game data — levels, monsters, weapons, and so on — and come in many different themes.

doom hardware

Before we get onto that, however, here’s what you’ll need for PiDoom:


Several versions of the Doom source code are available. We’ll be using the Chocolate Doom variant, which is compatible with the majority of WADs.

Install Doom on the Raspberry Pi

Get started by hooking your Raspberry Pi 2 or 3 up to a display, plug in a keyboard, and boot into Raspbian.

You’ll need to install the game via the command line, so this stage can be done via SSH Setting Up Your Raspberry Pi For Headless Use With SSH The Raspberry Pi can accept SSH commands when connected to a local network (either by Ethernet or Wi-Fi), enabling you to easily set it up. The benefits of SSH go beyond upsetting the daily screening... Read More if necessary.

In the command line, begin by installing the Chocolate Doom dependencies:

sudo apt-get install libsdl-mixer1.2-dev libsdl-net1.2-dev python-imaging

Once this is done, download the Chocolate Doom code, using wget:


doom pi download

Head to to check the correct file name and path to the download first however, as this may change for future versions.

With the download complete, extract with tar:

tar xzf chocolate-doom-2.2.1.tar.gz

You can now compile Chocolate Doom. Switch directory with:

cd chocolate-doom-2.2.1

doom pi configure

Now run the configure routine, followed by make to compile files. This will not be quick:


Everything is now ready to install:

sudo make install

Install a Doom WAD File on Your Raspberry Pi

There are many WAD files available, and we’ll look at some of the best alternatives later. For now, you’re going find out how to install a WAD, using the standard Doom data file. This will add the usual Doom maps and weapons to the game.

From inside the chocolate-doom-2.2.1 directory, run this wget command to download the DOOM1.WAD file:


As this is a zip file, you’ll need to unpack it. The unzip command will work fine:


You’ll end up with a file called DOOM1.WAD. Oh, and you’re ready to play Doom on your Raspberry Pi!

Well, almost.

Configure Doom

If you were previously running commands over SSH, now is the time to plug a keyboard into your Raspberry Pi. Alternatively, you could connect over VNC or RDP, but this will result in a slightly jerky game. Certainly, stop using a remote connection before you start playing!

doom pi setup launch

Before you can play the game, you’ll need to configure Doom. This means running the setup routine with the command:


Use this screen to configure your display, sound, keyboard, mouse, game controller, and even start or join a network game (although these final options can be easily controlled from the command line).

doom pi sound

You can control this configuration menu using keyboard or mouse.

When you’re done with the configuration, hit Save parameters and launch DOOM. BANG BANG BANG!

Launch Chocolate Doom in the Command Line

Although you may have already launched Doom, note that you don’t need to run it from the configuration tool every single time. Instead, there’s an easy command line instruction you can use:

chocolate-doom -iwad DOOM1.WAD

This will launch the game in full-screen mode. However, it can cause a strain on your Raspberry Pi with this screen resolution. For the Raspberry Pi 2, this is particularly a problem. So, you might prefer to run Doom in windowed mode instead:

chocolate-doom -iwad DOOM1.WAD -window 640x480

These settings can also be set as permanent in the configuration tool, using the Configure Display option.

The Best Doom Experience

How you play Doom on your Raspberry Pi depends on you. A big screen TV with an Xbox game controller might be your preference. Perhaps you’ve already hacked your Pi into a portable gaming machine, complete with built-in controller.

Or you might just like the traditional desktop experience, controlling your space marine with a mouse and keyboard. After all, that’s how we did it in the 1990s.

doom pi playing

My own preference is to use the official Raspberry Pi Touchscreen How to Setup Your Raspberry Pi Touchscreen The Raspberry Pi comes with a variety of useful add-ons, but one piece of kit that has proved particularly popular is the Raspberry Pi 7-inch Touchscreen Display. Here's how to set one up. Read More , which is very easy to set up. After configuring my game controller (a USB Xbox 360 controller), I could then take my Raspberry Pi pretty much anywhere — with a portable battery pack, of course — and play Doom.

Thanks to the compact dimensions of the touchscreen and the useful stand, it will fit on shelves, tables… anywhere, really!

Finding New WADs for PiDoom

If you’re looking for a Doom gaming experience that differs from the original, you’ll need to track down some WAD files. Many are available online. The problem is tracking them all down.

For instance, you might head to the Doom WADs Wikia page, where you’ll find a big selection of downloadable files.

Alternatively, you could drop in to the DoomWADStation, where you’ll find customizations for your Chocolate Doom installation.

Newer WADs, meanwhile, can be found at the WADs forum. That site has the biggest collection of Doom-related material online, and you’ll really feel the love for the game there.

Doom II WADs can also be played in Chocolate Doom. Many of these can be found in the idGames Archive. Among the options you’ll find here are:

  • The Alien-inspired Alien TC.
  • Doctor Who Doom, which is obviously a shooter based on the long-running British TV series Doctor Who.

Finally, if you’re aware of specific Doom WADs (perhaps from a friend, magazine, or from reading about it online), then simply try a direct Google search for the file. Who knows what you’ll turn up?

Set Up a Multiplayer Doom Deathmatch!

internet and local network play are both possible with Chocolate Doom. However, simplicity (and trouble-free play) dictates that all Deathmatch players should be running Chocolate Doom, and the same WAD file, before starting.

Whichever multiplayer option you take, one computer must act as the server to host the game. The host can also play, however. Before proceeding, ensure that UDP port 2342 is open on all players’ routers and/or firewall. Our guide to port forwarding What Is Port Forwarding & How Can It Help Me? [MakeUseOf Explains] Do you cry a little inside when someone tells you there’s a port forwarding problem and that’s why your shiny new app won’t work? Your Xbox won’t let you play games, your torrent downloads refuse... Read More may help here.

Hosting a Deathmatch is as simple as this command:

chocolate-doom -server -privateserver -deathmatch

Anyone on the same network as you can connect to the Deathmatch by running Chocolate Doom as explained above, appending the -autojoin switch:

chocolate-doom -WAD DOOM1.WAD -autojoin

Players wishing to join the Deathmatch from beyond your network, meanwhile, should run:

chocolate-doom -connect [IP_ADDRESS]

They’ll need to replace [IP_ADDRESS] with your public IP address, you can find this via, or by checking your router’s web interface.

Alternatives to Chocolate Doom

Although we have focused on installing and setting up Doom with Chocolate Doom, there are some alternatives. And if you don’t want Doom but you do want some FPS action… well, there are a few options for you as well. The following can all be installed natively on the Raspberry Pi, without emulation.

doom pi freedoom

Freedoom — This is an alternative project, featuring free game content based on the Doom engine. It comprises three phases: Phase 1, the Doom clone; Phase 2, a Doom II and Final Doom clone; and FreeDM, a Deathmatch game. Currently Freedoom is under active development.

Duke Nukem 3D — Not Doom, clearly, but nevertheless a popular shooter in its day, with many revivals over the years. This isn’t really a suitable game for children, however, due to the tone of the visuals and dialogue.

Quake III — Still popular after all these years, Quake III can be installed on the Raspberry Pi.

Wolfenstein 3D — A little older than Doom, but from the same developers, this can either be installed independently from Doom or enjoyed as a WAD in the Doom engine. (We’ve also heard rumors that 2001’s Return to Castle Wolfenstein will run on the Raspberry Pi 3.)

So, if you want to extend your Raspberry Pi’s retro FPS collection to these titles, they’re ready and waiting for you to download and install them!

Play Doom and Host Deathmatches on Your Pi!

Another awesome retro gaming experience revived thanks to the Raspberry Pi! This little computer really continues to surprise, doesn’t it? By now you should be ready to play Doom on your mini-PC, and might even have a few friends round to play a Deathmatch.

Chocolate Doom is available for Windows, Mac and Linux (as well as Linux alternative BSD) so any desktop operating system can be used to join a Deathmatch.

Looking for more classic Raspberry Pi games you can play without emulators 11 Classic Raspberry Pi Games You Can Play Without Emulators Want to play retro games on your Raspberry Pi? Here are the best classic games you can play without needing an emulator. Read More ? We’ve got you covered!

Image Credit: Oddly Rambunctious via YouTube

Related topics: Linux, Raspberry Pi.

Affiliate Disclosure: By buying the products we recommend, you help keep the site alive. Read more.

Whatsapp Pinterest

Leave a Reply

Your email address will not be published. Required fields are marked *

  1. Prashanth
    May 13, 2020 at 4:20 am

    Thanks for posting it, however I am getting a build error when i execute this command
    make in the chocolate directory. I ran ./configure and it went on fine.Then I moved to make and I get an error. Any clues on this?

    i_sdlsound.c: In function ‘ExpandSoundData_SRC’:
    i_sdlsound.c:365:29: error: assignment of read-only location ‘*(src_data.data_in + (sizetype)(i * 4))’
    src_data.data_in[i] = data[i] / 127.5 - 1;
    i_sdlsound.c:433:18: warning: passing argument 1 of ‘free’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
    In file included from i_sdlsound.c:23:
    /usr/include/stdlib.h:563:25: note: expected ‘void *’ but argument is of type ‘const float *’
    extern void free (void *__ptr) __THROW;
    make[3]: *** [Makefile:889: i_sdlsound.o] Error 1
    make[3]: Leaving directory '/home/pi/chocolate-doom-2.2.1/src'
    make[2]: *** [Makefile:972: all-recursive] Error 1
    make[2]: Leaving directory '/home/pi/chocolate-doom-2.2.1/src'
    make[1]: *** [Makefile:491: all-recursive] Error 1
    make[1]: Leaving directory '/home/pi/chocolate-doom-2.2.1'

  2. Shantanu Pawar
    December 14, 2019 at 9:25 am

    if something is not working, try again after running following command in terminal :

    sudo apt-get update

  3. Shantanu Pawar
    December 14, 2019 at 9:00 am

    This game will work only if you have .WAD file reader ( I used Deutex )
    I get it by command:

    sudo apt-get install deutex

  4. Kersten
    January 19, 2019 at 4:36 pm

    I got all the way to the end and it says "IWAD file 'doom1.wad not found!" eventhough it and my own doom2.wad file is in the chocolate doom folder... help?

    • Shantanu Pawar
      December 14, 2019 at 9:04 am

      Just change name of the File from"DOOM2.WAD" to "DOOM1.WAD" .

      • Shantanu Pawar
        December 14, 2019 at 9:17 am

        Sorry this isn't working when I tried.

  5. Joe
    November 24, 2018 at 1:42 am

    apt-get install chocolate-doom also works and is quicker to type

    • Shantanu Pawar
      December 14, 2019 at 9:18 am

      Adding "sudo" ensures that you have required permission.

  6. Ghar
    March 6, 2018 at 8:28 am

    thanks for your article. I tryied to install doom on my raspberry PI3, but get lost in part:
    Now run the configure routine, followed by make to compile files. This will not be quick:

    after "make" command I got error:
    make: *** No targets specified and no makefile found. Stop.

    Can you tell me please, whats wrong?

    • Shantanu Pawar
      December 14, 2019 at 9:14 am

      This happned because you don't have SDL mixer installed.
      Install it by following process and repeate complete process again ( for no errors)
      In terminal type following command:

      sudo apt-get upgrade
      sudo apt-get update
      sudo apt-get install libsdl1.2-dev
      sudo apt-get install libsdl-image1.2-dev
      sudo apt-get install libsdl-ttf2.0-dev
      sudo apt-get update

  7. Muhammad Tariq
    August 2, 2017 at 5:36 am

    Tell me the best exercise to lose weight as well as my high blood pressure.

    • Shawn
      December 14, 2019 at 9:15 am

      sex karo

  8. Muhammad Tariq
    August 2, 2017 at 5:34 am

    Dear sir/ Madam,
    I am a retired person having pension about 40000/- rupees pkr. I cannot afford balanced diet. Bit I can rely on exercise.
    Would you please like to tell me which exercises is the best for me to lose weight and control my high blood pressure along with herbal remedy in your earlier convenience and obliged to my inbox .
    Muhammad Tariq
    Peshawar Pakistan,