Duke Nukem 3D port for the original Xbox, based on JFDuke3D by Jonathon Fowler. Built using the nxdk open-source Xbox development kit.
This project was heavily AI-assisted using Claude Opus 4.6 and now Opus 4.7. We used JFDuke3D as the base and NXDK to get it working on Xbox. The result is a high performance PC port with features like 720P 60 FPS gameplay and hardware audio with 5.1 surround support.
FTP or otherwise move the XBE file to the desired location on your Xbox and place a copy of DUKE3D.GRP next to it, then run.
- Hardware renderer, conversion of POLYMOST to NV2A
- OGG Vorbis music playback via stb_vorbis
- Hardware audio support featuring full 5.1 surround sound via optical
- Native 720p with auto-detection (480i/480p/720p), can be specified in config if detection fails
- Full Xbox controller support (dual analog sticks, triggers, vibration)
- Splitscreen multiplayer! Not seen in Duke 3D since N64
- Crosshair adjusts to hitscan position, making aiming more accurate (not perfect)
- Save/load game support
- Precaches common sprites to improve performance
- Cheat support (see below)
- Demo recording support, use the record demo option to save a replay that will show on the title screen
- User map support
- Gameplay Modifiers
- Workings mirrors, nightvision, and underwater tints
- Writable directory probing (supports both HDD and disc boot)
For music, extract the MID files from your GRP, convert them to OGG, and place in a music/ folder next to the XBE file. There are scripts available in the repo to convert MIDI to OGG and further optimize OGGs. You can also copy the music folder straight from Megaton Edition.
A - Jump
B - Crouch
X - Activate
Y - Use Item
Left Stick - Move
Left Stick Click - Kick
Right Stick - Aim
Right Stick Click - Third Person Toggle
DPAD Left/Right - Select Item
DPAD Up - Activate Jetpack
DPAD Down - Activate Medkit
Right Trigger - Shoot
Left Trigger - Walk
Black/White - Switch Weapons
Select - Toggle Map
Start - Pause
Up Up Down Down Left Right Left Right B A B A - God Mode
Up Up Down Down Left Right Left Right A B A B - Give Everything
Up Up Down Down Left Right Left Right A A B B - Toggle Clipping
Up Up Down Down Left Right Left Right B B A A - Teleport to Stadium
- May have missed a couple spots for Duke voice positional audio correction, so it will play out of other channels than center on 5.1 (only known is KTIT mic easter egg).
- May still have minor graphical issues, but the ones I knew of have been fixed.
- Equipped RPG sprite needs to be aligned to the right on widescreen resolutions.
- This will not work on emulators due to how rendering is handled and hardware audio!
- If you see any strange issues, please reach out to me on Discord and attach your log file (link below).
- MSYS2 with GNU Make (
pacman -S make) — or Git Bash with Make available - nxdk — included as a git submodule (fork with S/PDIF audio patch)
- clang/lld — provided by nxdk, no separate install needed
After cloning, initialize the nxdk submodule:
git submodule update --init --recursivebash build_xbox.shThe build script handles the nxdk toolchain setup automatically — it sets NXDK_DIR, compiles Xbox-specific startup code, then runs make -f Makefile.nxdk.
Output: bin/default.xbe (~2.4 MB Xbox executable)
You need a legitimate copy of Duke Nukem 3D or the shareware. Place the following on your Xbox HDD in the same directory as default.xbe:
DUKE3D.GRP— Main game data filemusic/— (Optional) OGG Vorbis music files (useconvert_midi_to_ogg.shto convert from MIDI). Please note they should be the same name as the MID file, only with OGG extension. You can extract them from the GRP and different tools are available.
src/ Game logic (actors, menus, player, etc.)
jfbuild/ Build engine (renderer, file I/O, SDL layer)
jfmact/ Input/control library
jfaudiolib/ Audio library (mixing, music, sound effects)
xbox_compat/ Xbox compatibility shims (POSIX I/O, stubs, startup)
nxdk/ nxdk submodule (Xbox open-source SDK, S/PDIF fork)
GPLv2 — see GPL.TXT
Feel free to message me on Discord @KushAstronaut, I am in most duke or xbox related discord servers