How to install Doom on the Raspberry Pi 3

Doom is a classic DOS game and has been ported to many operating systems and now you can play it on your Raspberry Pi in just a few minutes. You can even setup a joystick or controller to play Doom and relive your childhood memories. You can also download a ton of WAD’s (“Wheres all the Data”) for Doom. WAD’s are like old school mods and include new levels, weapons and really just transform your Doom playing experience. There are many WAD’s out there right now which make the game completely different.

We’ll be using the Chocolate Doom port today to install and play Doom. Chocolate Doom try’s to mimic the original experience of Doom as much as possible. Chocolate Doom’s main features are its accurate reproduction of the game as it was played in the 1990s. We’ll be downloading the source for Chocolate Doom and building and compiling the code on the Raspberry Pi, so this may be a new experience for some people but I promise it is very easy to do.

Objective

To install and play Doom on the Raspberry Pi 3

Material

You will need the following:

Instructions

We’ll be installing the latest version of Chocolate Doom, which as of this tutorial is 3.0.0. You can check to see if there are new version’s by clicking here. You would just need to modify the ‘wget‘ commands and directory commands below to match the version and file names that you downloaded.

Lets start off by making sure that our Raspberry Pi is up to date by running the two commands below. Open up your Raspberry Pi terminal and run the following commands:

Now we will install all the required dev libraries so that we can compile the Doom Source Code. Run the following commands to install the required libraries:

Finally we can download the Doom Source code from the Chocolate Doom website:

Extract the tar file we just downloaded:

Navigate to the new directory that was just created and run the configure and make commands. This will verify the Doom Source Code and make sure that we have all the correct libraies on our Raspberry Pi to compile and run Doom: Note: This can take around 5 minutes to compile

If you have no errors you can finally install Doom using the command below:

Before we can play Doom we will need to install a WAD file. This is the original Doom WAD file so it should be the same data as when you played Doom in the 90’s. Run the two commands below to download the WAD file and unzip it: Note: Be sure you download the WAD file in the chocolate-doom-3.0.0 folder.

We are now ready to play Doom! We first need to configure Doom and select our display options as well as audio output. To launch the Doom Configuration setup run the command below:

Doom Configuration Editor

You may have noticed that your can run Doom from the Configuration screen however in the future you can play Doom using the command below. This will launch Doom with the WAD file we downloaded earlier or if you decide to get some new WAD files.

Doom running on the Raspberry Pi 3

I also recommend not running DOOM on Full Screen mode. You may find it a bit choppy. You can edit the Window size using the Configuration screen or you can launch Doom with a custom Window size using the following command:

That should be it! If you have any issues compiling Chocolate Doom or getting Doom to run let me know in the comments below!

10 Comments

  • Jonathan

    October 10, 2018

    Hi, I’m a real beginner with the raspberry pi 3 (and Linux) and get this message after running the command to install the libraries:

    E: Unable to locate package python-imaging libsdl2-dev

    What can I do to get around this?

    Many thanks

    Reply
    • dayz

      October 12, 2018

      I tested this in Raspberry Stretch and it finds the packages with no issues. Try installing each package one by one instead of using my line of code and see if it finds them that way.

      Reply
      • pseudO

        September 1, 2019

        Installing the packages one-by-one did the trick for me. I got an error trying to install python-imaging but installed the python-pil package instead. Thanks for the guide!

        Reply
      • Kari

        September 28, 2020

        I had the same issue as pseudO and it took my about an hour to figure this out. 🙁 maybe update your code to show the changes. I am new to raspberry pi so that is part of the issue too lol. Thanks for the tutorial.

        Reply
  • Brett

    January 16, 2019

    I followed your directions, and everything worked perfectly! Rpi 3 B+ with Raspbian Stretch. Thank you very much

    Reply
  • brayden

    May 8, 2019

    whenever I install mine I get doom iwad not found i look at in in files and it wont unzip the zip file what do i do?

    Reply
  • juan

    June 30, 2019

    Im on fedora 29 on rpi3 and cant find the names of those packages to install

    Reply
  • Charles

    July 2, 2019

    I have followed the above exactly and it does not work. Doom ran once from the config screen but not anymore saying doom1.wad not found – even though the file is there.

    Reply
  • DAniel

    July 12, 2019

    I receive the following error:

    configure: error: Package requirements (SDL2_net >= 2.0.0) were not met:

    No package ‘SDL2_net’ found

    Consider adjusting the PKG_CONFIG_PATH environment variable if you
    installed software in a non-standard prefix.

    How do I proceed?

    Reply
  • Maciek

    August 7, 2019

    I have problem with starting game. What should I do ?

    chocolate-doom-setup
    Using /home/pi/.local/share//chocolate-doom/ for configuration and saves
    saving config in /home/pi/.local/share//chocolate-doom/default.cfg
    Found response file /tmp/chocolat.rsp!
    Chocolate Doom 3.0.0
    Z_Init: Init zone memory allocation daemon.
    zone memory: 0x74ab2008, 1000000 allocated for zone
    Using /home/pi/.local/share//chocolate-doom/ for configuration and saves
    V_Init: allocate screens.
    M_LoadDefaults: Load system defaults.
    saving config in /home/pi/.local/share//chocolate-doom/default.cfg
    Game mode indeterminate. No IWAD file was found. Try
    specifying one with the ‘-iwad’ command line parameter.

    Reply

Leave a Reply