EDuke32 – a port for Windows, Linux, x8664, and Mac OS X. This is the most actively updated and advanced port. This is the most actively updated and advanced port. Started by Richard 'TerminX' Gobeille in late 2004, EDuke32 is based on EDuke 2.0 and the JFDuke3D port.
Download · Source Code · APT repository · Packages
Building from source on: Linux · Windows · macOS
- That’s why EDuke32 was created. The best definition for what EDuke32 is, can be found at EDuke32’s website: Eduke32 is an awesome, free homebrew game engine and source port of the classic PC first person shooter Duke Nukem 3D— Duke3D for short—to Windows, Linux, Mac OS X, FreeBSD, several handhelds, and to your family toaster.
- EDuke32 also comes bundled with Mapster32, the level editor of choice for anybody making Duke3D maps these days. The High Resolution Pack homepage is the place to go for the latest texture/model pack released by the Duke community, an ongoing project to bring Duke3D at least part way into the new century. The HRP is compatible with the latest.
- EDuke32 is an awesome, free homebrew game engine and source port of the classic PC first person shooter Duke Nukem 3D— Duke3D for short—to Windows, Linux, Mac OS X, FreeBSD, several handhelds, and to your family toaster. We've added all kinds of new renderers, tons of cool features and upgrades for regular players, and thousands of.
EDuke32 supports OS X macOS 10.5 and newer.
You can get help here: http://forums.duke4.net/topic/4242-building-eduke-on-mac-os-x/
Getting source files
- See Acquiring the EDuke32 Source Code.
Installing Xcode
Before you begin, you're going to need a Developer account with Apple. These are free and can be created by heading over to the Mac Dev Center, clicking the 'Register' link toward the top right hand corner and answering a few questions. If you already have an Apple ID, then you can link your developer account to that. Just enter it when it asks and continue through the registration process.
- Install the latest version of Xcode that your OS X version supports. Consult the chart on the Xcode Wikipedia page.
- To find a specfic version of Xcode, go to the Downloads section of the developer center and run a search for that specific version (e.g.: Xcode 3.1.4) using the search box in the top left corner.
- Even though you can download Xcode itself through the App Store without a Developer ID, you still need one later to install the mobile device SDKs when you first run Xcode and to install the command line tools.
- Download and install the Xcode command line tools (not needed for versions prior to OS X 10.7/Xcode 4.3.x):
- Starting with Xcode 4.3, Apple no longer includes the command line build tools within the standard Xcode distribution. In order to install them you have to open Xcode, go into its preferences dialog (Xcode -> Preferences in the menu bar or Command+,) and, in the 'Downloads' tab, click 'Install' next to 'Command Line Tools'. At this point you'll be prompted for your Developer ID. Just enter it and your password and it should be on its way.
Prerequisite Libraries
Install Homebrew. (On OS X 10.5, try Tigerbrew.)
Run the following in a terminal window:
You're all set! You can continue to the Building section.
Universal (Fat) Libraries
This section has not been tested for a long time and is not necessary when building for your own personal use!
First, install MacPorts. Make sure you have the correct version for your OS X version.
You then need to edit a couple of MacPorts' config files to make sure it builds what's needed correctly. At a terminal prompt, type:
When prompted, enter your password and hit enter then add the following to the end of the file:
Then hold down Ctrl and press X to exit nano. You'll be asked if you want to save the file. Press 'Y'.
Now you have to make sure the architecturally relevant versions of things are being built by typing:
Enter your password again if prompted and then scroll down until you get to the 'universal_archs' line and make sure both i386 and x86_64 are in there if you have an Intel Mac (Core Duo, Core 2 Duo, Core i* or Xeon) and that i386 and ppc are there if you have a PowerPC (G4, G5) Mac.
Finally, install the prerequisites themselves:
Again, entering your password if prompted. If any of these packages fail to build, remove it from the command and try again to make sure everything that can build has built.
Special notes for 10.5/Leopard users
osxbuild.sh assumes PowerPC support when run under Leopard. If you'd rather not build the PowerPC version, then call the script with the noppc parameter to prevent the PowerPC version from being built. If your Mac has a 64-bit capable CPU (Core 2 Duo or later), you may also want to enable the 64-bit build as well using the directions that follow.
The 64-bit build is also disabled on Leopard by default. If you wish to enable it and don't care about the PowerPC build then you have to call osxbuild.sh with the --build64=1 --buildppc=0
command line parameters and follow the Intel directions below. (64-bit here refers to x86_64, there's no equivalent 64-bit build for PowerPC so even if you have a 64-bit capable PowerPC processor, don't enable this unless you're trying to create a three-way universal binary as defined below).
If, on the other hand, you want to compile a three-way universal binary containing the PowerPC, x86 and x86_64 versions, things get a little more complicated. You not only have to manually enable the 64-bit build as outlined above, but you also have to make sure all but one of the dependency ports are compiled three-way universal as well. The procedure here is much the same as the directions above, but with a few exceptions: To start with, you need ppc, i386 and x86_64 all in your macports.conf universal_archs line. Use that to install everything but libvpx, and after you've finished installing those go back into macports.conf and remove ppc from the universal_archs before installing the libvpx port. You can put ppc back afterward if you want, but it's essential to remove it in order to build libvpx.
Building
Type make
and hope for the best! For debug builds, run make RELEASE=0
. If you want to use SDL 1.2 instead of SDL 2.0, you can append SDL_TARGET=1
to the make invocation.
You also have the option of using osxbuild.sh, which is designed to assist in building universal binary packages.
osxbuild.sh Documentation
- The following options take either 0 or 1 as a parameter to disable or enable the option in a binary switch fashion.
- --buildppc, --build86, and --build64 set the PowerPC, x86, and x86_64 builds respectively.
- --debug sets additional building of the debugging builds. Currently, it defaults to off.
- --main controls building of the main executables.
- --tools controls building and installation of the Build tools.
- --pack controls creation of a zip file with the results at the conclusion of the process.
- The following options are mutually exclusive and control preset values for the above switches.
- onlyzip will skip building any executables and simply package the zip file. Mostly for internal use.
- dist will build all architectures and both release and debug builds of just the main executables, then pack them.
- disttools will build all architectures and both release and debug builds of just the Build tools.
- full builds everything.
Game Data
To play the game, the files you need are DUKE3D.GRP and DUKE.RTS. They, as well as any other data you have, such as the HRP, music packs, and mods, can be placed in the following locations, depending on the circumstances in which you want them to be used:
~/Library/Application Support/EDuke32/
~/.eduke32/
EDuke32.app/Contents/Resources/
Play
Once everything is in place, you should be able to run the .app bundle. Enjoy!
Eduke32 For Macbook Pro
As of 8/3/19 this guide isn't the way to install the 3 expansion packs. I had followed this guide and it used to infact work. An update of retropie script and then subsequent update of all installed packages that I had done, changed where the grp go. So now all you need to do is put nwinter.grp, dukedc.grp, and vacation.grp in the duke3d folder you create and then install eduke32 as described. You may need to make the .sh files described below for each duke3d expansion pack but maybe not. Same with the emulators.cfg and eduke32.cfg files in the configs/ports/duke3d folders. I dont know as mine were already created using this guide before the devs changed how the duke3d install works.
NAM however will run and continue to run everytime you start it up but it changes the eduke32.cfg file located in .etc/eduke32 on its own and breaks duke3d and all expansion packs till you manually modify eduke32.cfg selectedgrp field back to duke3d.grp. I've tried multiple times and nam breaks duke 3d and any expansion packs every single time. To avoid this change the permissions on the eduke3d.cfg file so no one can change it. And then you can run duke 3d the expansion packs and nam without anything breaking or having to modify anything after running nam.
I also had to modify the screen res from 1024 x 768 (iirc) in eduke32.cfg to make the screen visible if anyone else is having issues with a blurred screen smashed at the top of the monitor or tv.
Duke Nukem 3D is a First Person Shooter game developed by 3D Realms in 1996.
Port: Eduke32
Basic Installation
The shareware port can be installed under RetroPie setup. Go to Manage packages > Manage optional packages and select eduke32. You can install from binary or from source.
ROMs
Shareware versions of duke3d.grp and duke.rts are provided via symlinks in
The shareware files are physically located in a different directory, but if you just replace the links in the folder above with your full version game data, it should work.
Installing Duke Nukem 3D Official Addons 'Nuclear Winter', 'Duke It Out in DC' and 'Duke Caribbean: Life's a Beach'
Automated installation
Since September 2019, the EDuke32 port installation can automatically setup launching entries for the official addons and the NAM mod. To use this method, copy each addon files to ports/duke32/addons/<addon_name>
.
Addon | Mod .grp file | Location |
---|---|---|
Duke It Out in DC | dukedc.grp | /home/pi/RetroPie/roms/ports/duke3d/addons/dc |
Nuclear Winter | nw.grp | /home/pi/RetroPie/roms/ports/duke3d/addons/nw |
Duke Caribbean: Life's a Beach | vacation.grp | /home/pi/RetroPie/roms/ports/duke3d/addons/vacation |
NAM | nam.grp * | /home/pi/RetroPie/roms/ports/duke3d/addons/nam |
NAM
requires copying theGAME.CON
file and renaming it toNAM.CON
, in addition to the main.grp
file.
After copying the files, install the eduke32
package and addons launching entries will be added to the Ports system. As with all new games, EmulationStation must be restarted after the installation/re-installation for the new addon entries be picked up and displayed.
Manual installation
The files tested for this method came from the Megaton Edition on Steam on Windows and these instructions assume that you'll be modifying files on your RetroPie instance via the Samba network share from your Windows PC. If you have a different version of the game or a different method of modifying files on your RetroPie instance then you should be able to interpret these instructions for the game version and method you have.
Install full Duke Nukem 3D Megaton Edition as already documented on this page.
Copy the three folders in
C:Program Files (x86)SteamsteamappscommonDuke Nukem 3Dgamerootaddons
from your PC to yourRETROPIEromsportsduke3d
folder. This means you will havenw
,dc
andvacation
subfolders.In
RETROPIEconfigsports
, make three copies of theRETROPIEconfigsportsduke3d
folder, renaming them to,duke3d-nw
,duke3d-dc
andduke3d-vacation
.In each of the three folders, edit
eduke32.cfg
so thatSelectedGRP = 'nwinter.grp'
,'dukedc.grp'
and'vacation.grp'
respectively, instead of plain'duke3d.grp'
Change any other settings you want for these addons, like maybe some Christmas-themed taunts for Nuclear Winter or some political taunts for Duke It Out in DC.RETROPIEconfigsportsduke3demulators.cfg
in the duke3d config folder normally looks like this:
ChangeRETROPIEconfigsportsduke3d-nwemulators.cfg
to look like this:
(Note the -x nw/nwinter.con
. You need that.)
Change RETROPIEconfigsportsduke3d-dcemulators.cfg
to look like this:
Change RETROPIEconfigsportsduke3d-vacationemulators.cfg
to look like this:
- In
RETROPIEromsports
make three copies ofDuke Nukem 3D.sh
.
Name the first one Duke Nukem 3D - Nuclear Winter.sh
and it should say:
Name the second one Duke Nukem 3D - Duke It Out In DC.sh
and it should say:
Name the third one Duke Nukem 3D - Lifes a Beach.sh
and it should say:
Installing NAM
The files tested for this method came from NAM on Steam on Windows and these instructions assume that you'll be modifying files on your RetroPie instance via the Samba network share from your Windows PC. If you have a different version of the game or a different method of modifying files on your RetroPie instance then you should be able to interpret these instructions for the game version and method you have.
Copy
GAME.CON
,NAM.GRP
andNAM.RTS
to a new folder you make calledRETROPIEromsportsduke3dnam
. The Windows Steam version of NAM has these files located inC:Program Files (x86)SteamsteamappscommonNamNAM
.Rename
GAME.CON
toNAM.CON
.In
RETROPIEconfigsports
, make a copy of theRETROPIEconfigsportsduke3d
folder, renaming itnam
.Edit
RETROPIEconfigsportsnameduke32.cfg
so thatSelectedGRP = 'NAM.GRP'
and choose some taunts about giving free helicopter rides to Commies.Edit
RETROPIEconfigsportsnamemulators.cfg
to look like this:
- Add a file
RETROPIEromsportsNAM.sh
, which should contain:
Controls:
Eduke32 Mac Install
Key | Action |
---|---|
W or NUMPAD 8 | Move Forward |
S or NUMPAD 2 | Move Backward |
Left or NUMPAD 4 | Turn Left |
Right or NUMPAD 6 | Turn Right |
ALT | Strafe |
Right CTRL or Left Click | Fire |
E | Open/Use |
Shift | Run |
Caps Lock | Autorun |
Space or / | Jump |
Left CTRL | Crouch |
PGUP or NUMPAD 9 | Look Up |
PGDN or NUMPAD 3 | Look Down |
INS or NUMPAD 0 | Look Left |
DEL or NUMPAD . | Look Right |
A | Strafe Left |
D | Strafe Right |
HOME or NUMPAD 7 | Aim Up |
END or NUMPAD 1 | Aim Down |
0-9 | Weapons |
Enter | Inventory |
[ | Inventory Left |
] | Inventory Right |
H | Holo Duke |
J | Jetpack |
N | Nightvision |
M | Medkit |
Backspace | Turnaround |
T | Send Message |
Tab | Map |
- | Shrink Screen |
+ | Enlarge Screen |
5 | Center View |
Scroll Lock | Holster Weapon |
Y | Show Opponents Weapon |
F | Map Follow Mode |
K | See Co-op View |
U | Mouse Aiming |
I | Toggle Crosshair |
R | Steroids |
Q | Quick Kick |
' | Next Weapon |
: | Previous Weapon |
` | Show Console |
F1 | Help |
F2 | Save |
F3 | Load |
F4 | Sound/Music |
F5 | Change Music |
F6 | Quicksave |
F7 | Chase View |
F8 | Messages |
F9 | Quickload |
F10 | Quit |
F11 | Brightness |
F12 | Save PCX |
ESC | Menu |
Eduke32 For Macbook Air
If you start EDuke32 and it is not recognizing your controller bring down the console and type:
in_joystick 1
Eduke32 For Mac And Cheese
For information on how to configure an XBox360 controller to work in eduke32, check out this forum post.