Duke Nukem 3D HRP on Ubuntu Linux 14.04, DukePlus Enabled

I don’t have much time for games anymore, but on the rare occasion where I’m bored and have some time to kill, I tend to waste it all trying to get old games to work on new hardware.

DukePlus on Linux

Hopefully I can spare you the loss of an evening if you are looking to boot up Duke3D for old time’s sake.

It has been a few years since I tried to run eduke32 on Linux and much has changed since the first time I wrote up an article on doing so.

Here’s how to install eduke32 with DukePlus on Linux. It probably works the same on Macs too but I don’t own one to know for sure.

Install eduke32

We must first add the eduke32 repositories to /etc/apt/sources.list:

sudo nano /etc/apt/sources.list
deb http://apt.duke4.net codename main
deb-src http://apt.duke4.net codename main

Change “codename” to your distribution’s codename, but I can confirm “quantal” will still work on 14.04 (“trusty”).

Then download the GPG key so Ubuntu knows the duke4 repository is trusted:

wget -q http://apt.duke4.net/key/eduke32.gpg -O- | sudo apt-key add -

Last, download and install eduke32.

sudo apt-get update
sudo apt-get install eduke32

Install the Duke Nukem core

Dig up your Duke Nukem 3D Atomic Edition CD! On it, you’ll find a file called DUKE3D.GRP.

You have to use Atomic Edition with DukePlus, but you could probably scrape by with regular v1.3 or even the shareware grp if you just want to see the base game in high-resolution.

If you downloaded the game through Steam, you can find it in that weird directory where Steam installs stuff (~/.local/share/) or if you downloaded it from GOG, it should be easy to find.

Worst case, try searching for it.

sudo find / -name DUKE3D.GRP

Copy DUKE3D.GRP from wherever you find it to ~/.eduke32.

cp DUKE3D.GRP ~/.eduke32

Install HRP or other mods

If you want to use HRP or any sort of sprite replacement (weapon skins, etc.) without DukePlus, you’ll want to create an autoload directory and use it for mod management.

mkdir ~/.eduke32/autoload

Installing new mods is as simple as just putting the downloaded zip file straight into this folder and unzipping it there.

unzip ~/.eduke32/autoload/duke3d_hrp.zip

For DukePlus, the steps are only slightly more involved.

Install DukePlus

DukePlus’ lack of documentation in regards to installing it on Linux is its biggest pain in the ass.

From the website, you’ll download a file, DUKEPLUS.zip. Copy/save it to ~/.eduke32 (not into the autoload folder!)

Unzip this file in-place. You’ll get a new directory, “DukePlus Install.”

cd ~/.eduke32
unzip DUKEPLUS.zip

Everything in the first tier of “DukePlus Install” is irrelevant to Linux. What you want is the “DukePlus” folder contained within. Move it one level up. You can then delete the original “DukePlus Install” folder.

mv ~/.eduke32/Dukeplus\ Install/DukePlus ~/.eduke32/

If you want to use HRP or any other custom mods, place their zips in the DukePlus directory and unzip them there.

Now all you have to do is fire up eduke32.

I have found that starting eduke32 from the Applications menu does not work consistently– it does not detect the mod files properly. There’s probably an argument that’s supposed to be specified, but in the meantime, the only method I’ve found to consistently work is from the command line:

cd ~/.eduke32

In the window that pops up, make sure you select “DukePlus” under the Custom Game menu, as well as “Enable ‘autoload’ folder” (if you ever plan to not use DukePlus).

eduke32 Launcher

Check “Polymer” if you want to run the game using the Polymer rendering engine (as seen in screenshots), otherwise leave it blank if you want to run vanilla.

If/when it pops up saying it can’t find dp.cfg, do not let it generate it from eduke32.cfg. Just say no.

Once inside the game, you’ll need to select OPTIONS->KEYBOARD SETUP or MOUSE SETUP and assign keys/buttons for “RELOAD ALTFIRE” and “DUKEPLUS MENU”. DukePlus is configured in-game (as in, you literally need to start Hollywood Holocaust or one of the other episodes before you can really configure it). It will harass you with a banner until you do so.

eDuke32 on Linux with DukePlus

Polymer vs Polymost

A lot of hard work has been put into advanced rendering engines for Duke Nukem 3D, of which Polymer is the most developed but has some steep hardware requirements. My gaming hardware is seriously outdated so it’s possible I can’t get the full Polymer experience, so be your own judge:


eDuke32 Polymer Rendering Engine


eDuke32 Non-Polymer Rendering Engine


eDuke32 Vanilla

Mismatched textures

Enabling DukePlus without HRP, Polymer or Polymost will work but may result in mismatched textures throughout the game. It’s playable but some things (like the corner apartment on E1M1) are difficult to find.


Unfortunately this entire setup is very, very unstable on Linux, owing in no small part to filename inconsistencies across platforms. It is clear everything is developed on Windows systems, because the amount of textures and models eduke32 cannot find on Linux systems as a result of inconsistent capitalization is pretty impressive.

Expect crashes often. At the time of this writing, only episodes 2 and 4 actually load for me; the rest (including the DukePlus levels) crash instantly upon loading.

One Comment

Leave a Reply