X
    Categories: Guides

How to install Doom 3 on Raspberry Pi 4

Raspberry Pi 4 is an amazing hardware, and now being able to play some great titles like Doom 3 makes it even cooler!! this is a tutorial on how to install Doom 3 on raspberry pi 4!! Thanks for the view!

Equipment List

Raspberry Pi 4 ► Amazon | Ebay

Software List

Full version of Doom 3 or Demo ► Doom 3 Demo (windows)

dhewm3 Doom 3 github ► https://github.com/dhewm/dhewm3

SDL2 ► https://www.libsdl.org/

Raspbian Pixel ► https://www.raspberrypi.org/downloads/

Balena Etcher  ► https://www.balena.io/etcher/ 

Doom 3 (i.e. Raspberry Pi)

Step 1: Install Raspbian Pixel

First you will need to download Raspbian Pixel Desktop version.

Now we will need a piece of software called etcher to write the image onto our SD card and USB Storage device.

Step 2: Check for updates

It is always a good idea to check for updates even if it is a freshly installed OS.

$ sudo apt-get update
$ sudo apt-get upgrade

Step 3: Downloading required dependencies

Open up a terminal and type

sudo apt-get install libfontconfig-dev qt5-default automake mercurial libtool libfreeimage-dev \
libopenal-dev libpango1.0-dev libsndfile-dev libudev-dev libtiff5-dev libwebp-dev libasound2-dev \
libaudio-dev libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxss-dev libesd0-dev \
freeglut3-dev libmodplug-dev libsmpeg-dev libjpeg-dev libogg-dev libvorbis-dev libvorbisfile3 libcurl4 cmake

Step 4: Compiling SDL2

lets make a temp folder to keep everything in one place

mkdir ~/temp

now we can change over to that directory

cd ~/temp

alright, it’s time to download SDL2

hg clone http://hg.libsdl.org/SDL
cd SDL
./autogen.sh
./configure --disable-pulseaudio --disable-esd --disable-video-wayland \
  --disable-video-opengl --host=arm-raspberry-linux-gnueabihf --prefix=/usr
make
sudo make install

now we need to download the 3 add-ons and extract them

cd ..
wget http://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.5.tar.gz
wget http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.4.tar.gz
wget http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.15.tar.gz

tar zxvf SDL2_image-2.0.5.tar.gz
tar zxvf SDL2_mixer-2.0.4.tar.gz
tar zxvf SDL2_ttf-2.0.15.tar.gz

then we need to build and install each one

cd SDL2_image-2.0.5 
./autogen.sh 
./configure --prefix=/usr
make 
sudo make install
cd ..

cd SDL2_mixer-2.0.4 
./autogen.sh 
./configure --prefix=/usr
make 
sudo make install
cd ..

cd SDL2_ttf-2.0.15
./autogen.sh
./configure --prefix=/usr
make
sudo make install
cd ..

Step 5: Compile dhewm3

lets grab the git repo

git clone https://github.com/dhewm/dhewm3

now we will need to make a build folder and cmake

cd dhewm3/neo/
mkdir build
cd build
cmake ..
make -j4

now you should see these 4 files needed to run Doom 3

(base.so, d3xp.so, dhewm3, libidlib.a)

these are the files need to be transferred over to your Doom 3 or Doom 3 Demo folder.

you can either purchase the game via Steam or download the demo. you should be able to find the files in steamapps/Doom 3. Transfer whole doom 3 folder over to your raspberry pi and enjoy!

Step 6: running Doom 3

navigate over to your doom 3 folder and execute

./dhewm3

for FPS and CPU counter

GALLIUM_HUD=simple,fps,cpu ./dhewm3

Thanks for following along!! hope you enjoy!

novaspirit: Avid Thinker, Computer Programmer, Web evangelist, Hacking / Breaking expert, Problem Solver, Technology Obsessed, Gamer, 3D printing, Coffee lover!

View Comments (4)

  • Nice writeup, but I have some comments :)

    - Only SDL2 is needed, SDL2_image, SDL2_mixer and SDL2_ttf are not
    - Neither dhewm3 nor SDL2 use anything from qt5
    - (possibly more dependencies you're installing aren't needed due to SDL2_image etc not being needed)
    - You're installing libcurl4, but not corresponding -dev package (at least on Ubuntu it would be called libcurl4-openssl-dev, should be similar on debian/Raspbian). It's optional, but dhewm3 can use curl for downloading gamedata from multiplayer servers
    - libidlib.a is not needed to run the game, only dhewm3, game.so and (if you wanna play the Doom3 RoE addon) d3xp.so
    - You could link the Doom3 Linux Demo and mention that it can be extracted with `sh doom3-linux-1.1.1286-demo.x86.run --tar xf demo/` - that way you don't need Windows at all to get the game data :)

  • /interface/vmcs_host/linux -o .libs/showimage showimage.o ./.libs/libSDL2_image.so -lSDL2
    /usr/bin/ld: ./.libs/libSDL2_image.so: undefined reference to `SDL_RWclose'
    /usr/bin/ld: ./.libs/libSDL2_image.so: undefined reference to `SDL_RWwrite'
    /usr/bin/ld: ./.libs/libSDL2_image.so: undefined reference to `SDL_RWread'
    /usr/bin/ld: ./.libs/libSDL2_image.so: undefined reference to `SDL_RWtell'
    /usr/bin/ld: ./.libs/libSDL2_image.so: undefined reference to `SDL_RWseek'
    /usr/bin/ld: ./.libs/libSDL2_image.so: undefined reference to `SDL_RWsize'
    collect2: error: ld returned 1 exit status
    make: *** [Makefile:572: showimage] Error 1

Related Post