This article needs some TLC. Read at your own risk.
EDuke32 is a cross-platform port of Duke Nukem 3D aimed at both extending what can be edited in the game and providing a rich, full-featured means to explore the original episodes. It is widely used in the Duke Nukem modding community and has become a requirement in order to play most mods. It is also capable of playing Nam and WW2 GI.
“It’s time to kick ass and chew bubble gum… and I’m all outta gum.” – Duke Nukem from Duke Nukem 3D.
This system scrapes metadata for the “ports” group(s) and loads the eduke32 set from the currently selected theme, if available.
Grouped with the “ports” group of systems.
roms/eduke32/ .eduke32 No Eduke32 emulator in Batocera needs a BIOS file to run.
-gamegrp)-g)-x)-mx)-j)-h)-mh)-map)
These commands are from configgen/utils/buildargs.py and may be updated in future.
BuildEngineArg("DIR", "-j", False), # Adds directory to search list
# The main game file to load: EDuke32 and Raze can load .grp, .zip, .ssi, .pk3, .pk4; Raze can also load .7z
BuildEngineArg("FILE", "-gamegrp", True),
# Add extra game file to load; this overrides files in virtual filesystem
BuildEngineArg("FILE+", "-g", False),
# Replace the main GAME.CON script module; surprisingly this can be a CON, DEF, or INI!
BuildEngineArg("CON", "-x", True),
BuildEngineArg("CON+", "-mx", False), # Append CON after GAME.CON script module
BuildEngineArg("DEF", "-h", True), # Replace the main DEF module
BuildEngineArg("DEF+", "-mh", False), # Append DEF after main DEF module
BuildEngineArg("MAP", "-map", True), # Start specified MAP on launch
Place your Eduke32 ROMs in /userdata/roms/eduke32/.
Files MD5 sums: https://wiki.eduke32.com/wiki/Frequently_Asked_Questions
The following games are officially supported, and should be placed in the designated directory with their required files:
FILE = /duke/DUKE3D.GRP
Files from game folder /Duke Nukem 3D or /ATOMINST or /Duke Nukem 3D/gameroot or Duke Nukem 3D Twentieth Anniversary World Tour/ or /data
/userdata/roms/eduke32/duke/
|── DUKE3D.GRP (The World Tour's extra features will requires the whole game installation)
└── DUKE.RTS
FILE = /duke/DUKE3D.GRP FILE+ = /duke/DUKEDC.GRP
Files from game folder /Duke Nukem 3D and /Duke Nukem 3D/gameroot/addons/dc or DUKEDC/
/userdata/roms/eduke32/duke/
├── DUKE3D.GRP (Atomic Edition)
└── DUKEDC.GRP (DUKEDCPP.SSI can be converted to GRP: https://forums.duke4.net/topic/998-xp-trying-to-get-duke-it-out-in-dc-please-help/)
FILE = /duke/DUKE3D.GRP FILE+ = /duke/VACATION.GRP
Files from game folder /Duke Nukem 3D and /Duke Nukem 3D/gameroot/addons/vacation or CARIBBEA/VACATION/
/userdata/roms/eduke32/duke/
├── DUKE3D.GRP
└── VACATION.GRP (VACA15.SSI can be converted to GRP: https://forums.duke4.net/topic/998-xp-trying-to-get-duke-it-out-in-dc-please-help/)
FILE = /duke/DUKE3D.GRP FILE+ = /duke/NWINTER.GRP
Files from game folder /Duke Nukem 3D and /Duke Nukem 3D/gameroot/addons/nw
/userdata/roms/eduke32/duke/
├── DUKE3D.GRP
└── NWINTER.GRP
FILE = /duke/DUKE3D.GRP FILE+ = /duke/DUKE3DA.GRP
Files from game folder /Duke Nukem Atomic Edition or /ATOMINST
/userdata/roms/eduke32/duke/
├── DUKE3D.GRP
└── DUKE3DA.GRP
Atomic:
FILE = /duke/DUKE!ZON.GRP FILE+ = /duke/DUKEZONE2.GRPINFO
World Tour:
FILE = /duke/DUKE!ZON.GRP FILE+ = /duke/DUKEZONE2_WT.GRPINFO
Files from game folder /Duke Zone 2
/userdata/roms/eduke32/dukezone2/
| ├── DUKE!ZON.GRP
| ├── DUKEZONE2.GRPINFO (Atomic) OR DUKEZONE2_WT.GRPINFO (World Tour)
| └── FIXED CON FILES: https://hrp.duke4.net/download.php
| ├── GAME.CON (Replaces DZ-GAME.CON)
| ├── DEFS.CON (Replaces DZ-DEFS.CON)
| ├── USER.CON (Replaces DZ-USER.CON)
| └── E3L1.MHK
└── Duke!Zone II.eduke32
Copy the ASSAULT directory from the CD to your EDuke32 directory.
Copy the two TILES014.ART and TILES015.ART files from ART directory to the ASSAULT directory.
FILE = /duke/DUKE3D.GRP
Files from game folder Duke Nukem 3D/, /Duke Assault CD/ASSAULT and /Duke Assault CD/ART
/userdata/roms/eduke32/duke/
| ├── ASSAULT/
| | ├── *.MAP (1640 MAP files!)
| | ├── TILES014.ART
| | └── TILES015.ART
| └── DUKE3D.GRP
└── Duke Assault.eduke32
FILE = /duke/DUKE3D.GRP FILE+ = /duke/PENTHOUS.GRP CON = /duke/GAME.CON
Files from game folder /Duke Nukem 3D and /penthous
/userdata/roms/eduke32/duke/
| ├── DUKE3D.GRP
| └── PENTHOUS.GRP
| └── GAME.CON (from Penthouse Paradise)
└── Duke Nukem's Penthouse Paradise.eduke32
FILE = /duke/DUKE3D.GRP FILE+ = /duke/ZONE.GRP
Files from game folder /Duke Nukem 3D and /redzone
/userdata/roms/eduke32/duke/
| ├── DUKE3D.GRP
| └── Zone.GRP
└── Duke!Zone.eduke32
FILE = /duke/DUKE3D.GRP FILE+ = /duke/PNP.GRP
Files from game folder /Duke Nukem 3D and /pnp
/userdata/roms/eduke32/duke/
| ├── DUKE3D.GRP
| └── PNP.GRP
└── Plug 'N' Pray.eduke32
FILE = /duke/DUKE3D.GRP FILE+ = /duke/ZEROHOUR.GRP
Files from game folder /Duke Nukem 3D and /zerohour
/userdata/roms/eduke32/duke/
| ├── DUKE3D.GRP
| └── ZEROHOUR.GRP
└── Duke Nukem Zero Hour.eduke32
Copy the DKXTRM directory from the CD to your EDuke32 directory.
In DKXTRM/PACK14, rename DKEXGAME.CON to GAME.CON, DKEXDEFS.CON to DN3DDEFS.CON, and DKEXUSER.CON to DN3DUSER.CON.
FILE = /duke/DUKE3D.grp
Files from game folder Duke Nukem 3D/ and /Duke Xtreme CD/XTRM
/userdata/roms/eduke32/duke/
| ├── DUKE3D.GRP
| └── DKXTRM/
| ├── DMMAPS (25 files)
| | └── *.MAP
| ├── PACK13
| | ├── TILES0*.ART (7 files)
| | ├── *.CON (3 files)
| | | ├── DKEXDEFS.CON
| | | ├── DKEXUSER.CON
| | | └── DKEXGAME.CON
| | └── *.VOC (22 files)
| ├── PACK14
| | ├── TILES0*.ART (7 files)
| | ├── *.CON (3 files)
| | | ├── DN3DDEFS.CON (Renamed from DKEXDEFS.CON)
| | | ├── DN3DUSER.CON (Renamed from DKEXUSER.CON)
| | | └── GAME.CON (Renamed from DKEXGAME.CON)
| | └── *.VOC (22 files)
| └── SPMAPS
| └── *.MAP (25 files)
└── Duke - Xtreme.eduke32
FILE = /nam/NAM.GRP CON = /nam/NAM.CON
Files from game folder /NAM
/userdata/roms/eduke32/nam/
| ├── NAM.CON (Renamed from GAME.CON)
| ├── NAM.GRP
| └── NAM.RTS
└── Nam.eduke32
FILE = /napalm/NAPALM.GRP CON = NAPALM.CON
Files from game folder /NAMPALM
/userdata/roms/eduke32/napalm/
| ├── NAPALM.CON (Renamed from GAME.CON)
| ├── NAPALM.GRP
| └── NAPALM.RTS
└── Napalm.eduke32
FILE = /ww2gi/WW2GI.GRP
Files from game folder /WWII GI
/userdata/roms/eduke32/ww2gi/
| ├── WW2GI.GRP
| └── WW2GI.CON
└── World War II GI.eduke32
FILE = /ww2gi/WW2GI.GRP FILE+ = /ww2gi/PLATOONL.DAT CON = /ww2gi/PLATOONL.DEF
Files from game folder /WWII GI and /platoonleader
/userdata/roms/eduke32/ww2gi/
| ├── WW2GI.GRP
| ├── PLATOONL.DAT
| └── PLATOONL.DEF
└── Platoon Leader.eduke32
As of the date this text was written, running Duke Nukem 3D: 20th Anniversary World Tour with EDuke32 requires the use of the stopgap patch, which ensures compatibility between the game and the source port. To download the patch, visit the official stopgap patch page on GitHub: official stopgap patch GitHub page
DIR = /dukewt/duke DIR = /dukewt/stopgap FILE = /dukewt/stopgap/e32wt.grp
Files from game folder /dukewt
/userdata/roms/eduke32/dukewt/
| ├── duke/
| | ├── DUKE3D.GRP (The extra features of The World Tour require the complete game installation files and folders)
| | └── DUKE.RTS
| └── stopgap/ (Extract the contents of the stopgap patch .zip file into this folder)
| ├── E32WT.CON
| ├── e32wt.def
| ├── e32wt.grp
| ├── e32wt.grpinfo
| ├── E32WT_CODE.CON
| ├── e32wt_content.def
| ├── e32wt_normalmaps.def
| ├── E32WT_OLD.CON
| ├── LICENSE.txt
| ├── README.md
| └── version_e32wt.txt
└── Duke Nukem 3D Twentieth Anniversary World Tour.eduke32
Save location saves/eduke32/<game>.<save game extension>
Standardized features available to all cores of this emulator: eduke32.videomode, eduke32.padtokeyboard, eduke32.videomode, eduke32.bezel, eduke32.bezel_stretch, eduke32.hud, eduke32.hud_corner, eduke32.bezel.tattoo, eduke32.bezel.tattoo_corner, eduke32.bezel.tattoo_file, eduke32.bezel.resize_tattoo
ES setting name batocera.conf_key | Description ⇒ ES option key_value |
|---|---|
| Settings that apply to all cores of this emulator | |
SKIP INTRO VIDEOS eduke32.nologo | ⇒ Skip 1, Show (Default) 0. |
Here are the default Eduke32's controls shown on a Batocera Retropad:
.eduke32 launch file is setup correctly/roms/eduke32/<gamefolder>/<main file or add-on>/roms/eduke32/<gamefolder>/<con file>.eduke32 files must not have any empty lines
To start from scratch, delete all the files from system/configs/eduke32/ and saves/eduke32/.