I've got the Duke Nukem 3D official addons Nuclear Winter, Duke It Out in DC and Life's a Beach running on eDuke32 in RetroPie. They run just as well with all the features of regular Duke Nukem 3D because they're officially supported by eDuke32. You probably already own these if you own Duke Nukem 3D on Steam. (later edit) Also installed NAM!

Installing Duke Nukem 3D Addons

My files came from the Megaton Edition on Steam on Windows and I'm assuming that you'll be modifying files on your RetroPie instance via the Samba network share from your 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 Atomic Edition as already documented on the RetroPie setup wiki. Copy the three folders in C:\Program Files (x86)\Steam\steamapps\common\Duke Nukem 3D\gameroot\addons from your PC to your \\RETROPIE\roms\ports\duke3d folder. This means you will have nw , dc and vacation subfolders. In \\RETROPIE\configs\ports\ , make three copies of the \\RETROPIE\configs\ports\duke3d folder, renaming them to, duke3d-nw , duke3d-dc and duke3d-vacation . In each of the three folders, edit eduke32.cfg so that SelectedGRP = "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. \\RETROPIE\configs\ports\duke3d\emulators.cfg in the duke3d config folder normally looks like this:

eduke32 = "/opt/retropie/ports/eduke32/eduke32 -j/home/pi/RetroPie/roms/ports/duke3d"

default = "eduke32"

Change \\RETROPIE\configs\ports\duke3d-nw\emulators.cfg to look like this:

eduke32 = "/opt/retropie/ports/eduke32/eduke32 -g nw/nwinter.grp -x nw/nwinter.con -j/home/pi/RetroPie/roms/ports/duke3d"

default = "eduke32"

(Note the -x nw/nwinter.con . You need that.)

Change \\RETROPIE\configs\ports\duke3d-dc\emulators.cfg to look like this:

eduke32 = "/opt/retropie/ports/eduke32/eduke32 -g dc/dukedc.grp -j/home/pi/RetroPie/roms/ports/duke3d"

default = "eduke32"

Change \\RETROPIE\configs\ports\duke3d-vacation\emulators.cfg to look like this:

eduke32 = "/opt/retropie/ports/eduke32/eduke32 -g vacation/vacation.grp -j/home/pi/RetroPie/roms/ports/duke3d"

default = "eduke32"

In \\RETROPIE\roms\ports make three copies of Duke Nukem 3D.sh .

Name the first one Duke Nukem 3D - Nuclear Winter.sh and it should say:

#!/bin/bash

"/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ "duke3d-nw" ""

Name the second one Duke Nukem 3D - Duke It Out In DC.sh and it should say:

#!/bin/bash

"/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ "duke3d-dc" ""

Name the third one Duke Nukem 3D - Lifes a Beach.sh and it should say:

#!/bin/bash

"/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ "duke3d-vacation" ""

Installing NAM

My files came from NAM on Steam on Windows and I'm assuming that you'll be modifying files on your RetroPie instance via the Samba network share from your 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 and NAM.RTS to a new folder you make called \\RETROPIE\roms\ports\duke3d

am . The Windows Steam version of NAM has these files located in C:\Program Files (x86)\Steam\steamapps\common\Nam\NAM . Rename GAME.CON to NAM.CON . In \\RETROPIE\configs\ports\ , make a copy of the \\RETROPIE\configs\ports\duke3d folder, renaming it nam . Edit \\RETROPIE\configs\ports

am\eduke32.cfg so that SelectedGRP = "NAM.GRP" and choose some taunts about giving free helicopter rides to Commies. Edit \\RETROPIE\configs\ports

am\emulators.cfg to look like this:

eduke32 = "/opt/retropie/ports/eduke32/eduke32 -nam -g NAM.GRP -x NAM.CON -j/home/pi/RetroPie/roms/ports/duke3d/nam"

default = "eduke32"

Add a file \\RETROPIE\roms\ports\NAM.sh which should say:

#!/bin/bash

"/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ "nam" ""

Try it out!

I'm hoping that this is a temporary solution and we can eventually get launch scripts for these automatically generated by the RetroPie setup script along with launchers for official addon packs for other source ports of other games. I kept the addon files in separate folders so that users don't get confused about which maps belong with which addons. Any suggestions on improving this or on what I'd need to make a PR to add these configs and launchers to the setup script would be much appreciated.