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
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!
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
how can i make a shortcut to run it from tyhe desktop?
Excellent work!