Moonmarch
Posts: 95
Joined: Thu Mar 07, 2019 1:34 am

Compile QZDoom

Wed Apr 24, 2019 5:32 am

You will need a copy of Doom or other supported Doom engine game, here is a list of supported games:
https://zdoom.org/wiki/IWAD

Here is the download link to the QZDoom source code:
https://zdoom.org/downloads

GZDoom vintage can be compiled on the RPI, the latest releases of GZDoom are not compatible with RPI3B+, because GZDoom requires Opengl 3, the RPI3B+ can only use Opengl 2, I''ll post a short guide on compiling GZDoom, the GZDoom vintage releases are compatible with Opengl 2 GPU's, and are more up to date compared to QZDoom builds, which was last updated June 2018.

Here is a link to all of the dependencies you will need to compile QZDoom for RPI3:
https://zdoom.org/wiki/Compile_ZDoom_on_Raspberry_Pi

Here is a link to how to compile QZDoom on Linux, copy and paste all of the dependencies under the Debian/Ubuntu section, we are not using the instructions, because those instructions are for x86/x64 CPUs:
https://zdoom.org/wiki/Compile_GZDoom_on_Linux

After downloading the QZDoom source code, extract the contents then open the terminal:

Code: Select all

cd /home/pi/"QZDoom folder location"

Code: Select all

cmake .

Code: Select all

make -j2
You can use "sudo make -j4" to compile faster, this can cause your computer to freeze or overheat, because the computer will always be at 100% utilization, using "make" or "make -j2" will take longer to compile the source code, this is safer to use, compiling the source code will require at least 30 minutes. After compiling the source code, copy and paste "doom.wad" or other IWAD file into the QZDoom directory, then open the terminal to run the QZDoom program:

Code: Select all

cd /home/pi/"QZDoom folder location"

Code: Select all

./qzdoom
Check the terminal to see if any .pk3 files were loaded, if files were not loaded, then try editing the qzdoom.ini file that is located in the /home/pi/.config/qzdoom directory, to enable dynamic lights you will need qzdoom to load .pk3 files, you will need access to the qzdoom config file, to access the /.config/qzdoom directory open the terminal:

Code: Select all

cd .config/qzdoom

Code: Select all

nano qzdoom.ini
Inside the /home/pi/"QZDoom folder location," you will see 4 .pk3 files, we need to auto load "lights.pk3" and "brightmaps.pk3" to enable dynamic lights, here is a guide that shows you how to enable autoloading in QZDoom:

https://zdoom.org/wiki/How_to_autoload_files

During the "nano qzdoom.ini" command, scroll all the way down the text file until you see [doom.Autoload], you need to determine which .wad file you are using with QZDoom to determine where to load the .pk3 files in the text file, here is a example of loading the .pk3 files if you are running Ultimate Doom or Doom 1993:

[doom.Autoload]
Path=/home/pi/"QZDoom folder location"/"Base-Game".wad
Path=/home/pi/"QZDoom folder location"/lights.pk3
Path=/home/pi/"QZDoom folder location"/brightmaps.pk3
Path=/home/pi/"QZDoom folder location"/"additional_qzdoom_pk3_files".pk3

Any .wad file that is located in the /home/pi/"QZDoom folder location" will be loaded into QZDoom automatically, to use a certain .wad file or a different .wad file, delete the old .wad and replace with new .wad file in the QZDoom directory.

After editing the qzdoom.ini file, save the file and exit the terminal, enabling dynamic lights will reduce your frame rates significantly, expect to see slowdown in outdoor areas, or areas with large numbers of enemies in one location, expect to see reduced frame rates between 10 - 20 FPS at 720p with dynamic lights, without dynamic lights, the frame rate will be more stable, not dropping below 30 fps at 720p.

You need to enable Full KMS drivers (OpenGL) in raspi-config or the game will not launch. Here is how you open raspi-config, open the terminal:

Code: Select all

sudo raspi-config
Then select Advanced Options > GL driver > GL Full KMS

*Update July 2 2019
-Reduced article length to improve readability and reduce build difficulty
-Removed optimization flags explanation
-Removed excess use of "sudo" commands
-Removed /root directory access explanation
-Miscellaneous improvements

*Update May 24 2019
-Removed miscellaneous content
-Added qzdoom.ini troubleshooting explanation
-Added doom.autoload explanation
-Added miscellaneous explanations

*Update May 12 2019
-Updated QZDoom instead of GZDoom explanation, included updates on GZDoom build for RPI.
-Added qzdoom.ini shortcut to sudo su command explanation
-Edited miscellaneous explanations
-Edited qzdoom.ini shortcut code
-Added description to raspi-config explanation

Return to “Gaming”