Braggers Tech Blog


Home > Linux Knowledge > Duke 3D on Void Linux

published 2021-12-10, updated 2024-01-05

Building Duke 3D on Void Linux

The most modern source port of Duke 3D is eduke32. There are no prebuild Linux binaries, so we need to build it ourselves. But this is actualy pretty easy on Void. First we need to clone the eduke32 git repository from voidpoint.io (The guys that built Ion Fury from eduke32). After that install all needed prerequesites for building eduke32. You can find details to this in the eduke32 wiki.

sudo xbps-install -S SDL2-devel SDL2_mixer-devel libvpx-devel libatomic-devel gtk+-devel

After this just run make and that's it. Now you need an original duke3d.grp and then can run it. eduke32 will search in different locations for all grp files it can find. With the parameter -gamegrp you specify which of the found grp files you want to load:

eduke32 -gamegrp duke3d.grp

If you specify fury.grp, Ion Fury will be loaded.

Alternatively you can edit your eduke32.cfg located under ~/.config/eduke32 and set the following variables

NoAutoLoad = 0
SelectedGRP = "duke3d.grp"

This enables the autoload folder (for High resolution pack and other fancy stuff) and sets the used grp file (if multiple are present the first one is always used). The autoload folder needs to be located either in the directory containing the eduke executable, or in the config folder (~/.config/eduke32/)

Setup window

Normally eduke32 has a setup window where you can select different grp files, renderer settings and stuff. I still have not figured out why this is not build into the executable and why this is not displayed. The various cli options do not help either. I need to tinker more, maybe make a test install on Arch Linux, who knows...

Update

As of 2024-01-05 I did a git pull -> make clean -> make, and now I have a GTK setup window which lets me select grp file, autoload folder etc. Maybe I have installed a missing dependency for the setup window or the Makefile was fixed. Who knows...