# NBlood: EDuke32 source ports for Blood, Exhumed and Duke Nukem 3D

> NBlood is a repository of reverse-engineered source ports for three Build engine games, built on EDuke32 technology: NBlood for Blood, PCExhumed for Exhumed and PowerSlave, and Rednukem for six games from the Duke Nukem 3D codebase. No game data ships with it, so the ports run on assets you copy from your own copy of the originals.

**NBlood/NBlood** — Reverse-engineered ports of Build games using EDuke32 engine technology and development principles (NBlood/Rednukem/PCExhumed)

- Repository: https://github.com/NBlood/NBlood
- Website: https://discord.gg/nNQWEvSTvZ
- Stars: 815 · Forks: 109
- Language: C++
- License: not declared
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/nblood-nblood

## Three ports, one engine foundation

The repository holds three related source ports, all built on EDuke32 engine technology and development principles, and all reverse-engineered rather than written from the original game code.

NBlood is a port of Blood, the 1997 first-person shooter built on the Build engine, and it is the most complete of the three. PCExhumed is a port of the PC version of Exhumed, also known as PowerSlave, and the documentation says Exhumed is preferred over PowerSlave as a source. Rednukem is a port of several Build engine games derived from the Duke Nukem 3D codebase, and it covers six of them: Duke Nukem 3D Atomic Edition, Redneck Rampage, Redneck Rampage Rides Again, Duke Nukem 64, NAM and NAPALM, and World War II GI.

The shared thread is EDuke32, the long-lived open source Duke Nukem 3D engine whose extensions, level editor and development conventions the ports inherit. A consequence of that is visible in the repository layout: a GNUmakefile, a Common.mak, a source directory, a platform directory, and per-port pk3 files such as nblood.pk3, pcexhumed.pk3 and dn64widescreen.pk3, which is the EDuke32 mechanism for shipping data alongside an executable.

The code is C++, the homepage is a Discord invite rather than a website, and the last push to the repository was on 2026-10-02, with recent tagged builds r14386, r14387 and r14388 published through September 2026.

## No game data ships with the ports

This is the part that makes the project legal in the ordinary sense, and it is stated at the top of every installation section.

If you have a digital copy of Blood installed, such as from Steam or GOG, no installation is necessary beyond running the port. Otherwise, the port directory needs specific data files copied out of the original game. For Blood that means the configuration and resource archives, the optional level files, the optional Cryptic Passage content, and the art and voxel data:

```bash
BLOOD.INI
BLOOD.RFF
GUI.RFF
SOUNDS.RFF
SURFACE.DAT
VOXEL.DAT
```

That is the whole model. The port is the engine, the executable and the extensions, and the original game data is the content, which you supply from a copy you already own. Nothing about the project is designed around copying data to people who do not have it.

The same pattern holds for the other two ports. PCExhumed needs STUFF.DAT, DEMO.VCR and BOOK.MOV from the PC retail version of Exhumed or PowerSlave, or from the PowerSlave demo, and the documentation says beta, pre-release and other demo versions are not supported. Rednukem needs DUKE3D.GRP and DUKE.RTS for Duke Nukem 3D, REDNECK.GRP and REDNECK.RTS for Redneck Rampage, a Duke 64 cartridge ROM dump for Duke Nukem 64, and NAM.GRP, NAM.RTS and the CON files for NAM, and WW2GI.GRP, WW2GI.RTS and CON files for World War II GI.

For Duke Nukem 64 the data is a cartridge ROM dump, which is a real constraint that the documentation states plainly rather than glossing over.

## Optional extras, CD audio and the GOG cue sheet

The installation instructions are detailed about the optional parts, and those details are where the real friction of running a late nineties game lives.

For Blood, most of the data is optional and labelled as such: the BLOOD000.DEM to BLOOD003.DEM files, the CP01.MAP to CP09.MAP Cryptic Passage levels, the CPART07.AR_ and CPART15.AR_ archives, the CPBB map set, CPSL.MAP, and the CRYPTIC.INI, CRYPTIC.SMK and CRYPTIC.WAV files. You can run the port without the expansion, or with it, and the choice changes what the game contains.

Audio is where the original CD matters. To use CD audio tracks instead of MIDI, you provide FLAC or OGG recordings named bloodXX.flac or bloodXX.ogg where XX is the track number, and you enable the Redbook audio option in the sound menu. The equivalent for PCExhumed is OGG files named exhumedXX.ogg or trackXX.ogg, which provide the soundtrack and the storyline narration by the King Ramses character, and the documentation notes the game includes tracks 02 to 19. Redneck Rampage tracks follow the trackXX.ogg convention.

For cutscenes, the original CD is needed, and for the GOG version of Blood the instructions describe making a copy of game.ins or game.inst named game.cue, mounting that cue as a virtual CD, for example with WinCDEmu, and copying the movie folder out of it. That is a small piece of work, but it is the difference between a port with the intro cinematics and a port without them.

## Configuration moved to nblood_cvars.cfg

There is one upgrade note in the NBlood section that anyone returning to the port after a break should read, because the setting file was renamed.

NBlood now uses nblood_cvars.cfg instead of settings.cfg, and if you need to retain settings from a previous version you have to rename your settings.cfg by hand. That is a one line change with a one line consequence, and it is the kind of thing that surfaces as a settings reset after an upgrade rather than as an error message.

PCExhumed is still on settings.cfg, and its documentation gives two concrete examples of what you can put there while the team works on new menus. To invert the mouse you add the line in_mouseflip 0, and to change the field of view you add a line such as fov "120", where 120 is the desired value between 60 and 140:

```bash
in_mouseflip 0
fov "120"
```

The settings.cfg file is created on first run in the game directory, so editing it is a matter of running the game once and then opening the file.

Both of these are working notes rather than a polished settings UI. The documentation says the team is currently working on fancy new menus for the game, and in the meantime the configuration file is the interface.

## Building from source means reading the EDuke32 wiki

There is no build guide in the repository, and that is a deliberate choice rather than an oversight.

The README points to the EDuke32 wiki for the build instructions, on the grounds that the ports inherit the engine's build system. The tree supports that: GNUmakefile at the top level, Common.mak for the shared make rules, a platform directory for the platform specific code, a source directory for the game logic, and a package directory for the installable output.

The continuous integration configuration is visible in the repository as well, with an .appveyor.yml for Windows builds and a .gitlab-ci.yml for the GitLab side, a .clang-format file named with a leading underscore, and a .vscode directory. The Codeowners and author attributions live in AUTHORS.md, which the acknowledgements section points at.

For the sake of clarity about what the project is and is not: it is not a games distribution and not a re-release. It does not include the original game data, it does not include the level files, and the assets it does ship are the ones it has to in order to be a port, such as the pk3 data files and the widescreen patch for Duke Nukem 64. Everything else comes from the copy you already own.

One small piece of state is worth knowing: the PCExhumed section states that demo playback is not yet working, and that is the kind of unfinished corner that the port's own documentation is upfront about rather than hiding.

## What these ports give you, and what they do not

The value of a source port is that it replaces a binary that expects a 1990s operating system with a program that runs on the machine in front of you, and that is where the three ports here sit.

The alternative is to run the original retail executables under a DOS emulator, or through a compatibility layer, which is a perfectly reasonable thing to do and which some people prefer precisely because it is the original code path. The difference in approach is that a port like NBlood is a native build with modernised input handling, modern rendering and the EDuke32 extension set available, and it is maintained as code you can read, patch and compile, whereas the emulator route gives you the original behaviour with none of the improvements and none of the ability to change it.

The limits are equally concrete. The ports do not include the games, so a copy of the original is a prerequisite, and the specific files required differ between retail versions, with the Blood 1.21 layout called out explicitly and the GOG layout handled as a separate case. Demo playback in PCExhumed does not work. The settings interface in PCExhumed is still a configuration file while new menus are in progress. And the licence is not stated: the repository records no licence and the top level listing contains no licence file, which for a codebase that people fork, port to other platforms and contribute patches to is the most consequential gap in the documentation.

The recent release cadence, with three tagged builds between August and September 2026 and a push on 2026-10-02, says the ports are still being worked on rather than frozen.

## Conclusion

NBlood suits a player who owns a digital copy of one of the supported games and wants it running on a modern system with modern input handling, and it is the wrong choice if you do not hold the original data, since the ports are engines and nothing else. Verify first which assets your specific retail version needs, because the file list differs between the Blood 1.21 and GOG layouts and between the six games Rednukem covers, and check the terms before you fork the code, since the repository records no licence.

## FAQ

### What games does the NBlood repository cover?

NBlood ports Blood, PCExhumed ports the PC version of Exhumed and PowerSlave, and Rednukem ports Duke Nukem 3D Atomic Edition, Redneck Rampage, Redneck Rampage Rides Again, Duke Nukem 64, NAM and NAPALM, and World War II GI. All three are built on EDuke32 engine technology.

### Do I need to own the original game to use these ports?

Yes, because no game data is included. The instructions say that if you have a digital copy installed, such as from Steam or GOG, no further installation is necessary, otherwise you copy specific data files such as BLOOD.RFF and VOXEL.DAT, or DUKE3D.GRP and DUKE.RTS, from your own copy into the port directory.

### How do I set the field of view and invert the mouse in PCExhumed?

Edit the settings.cfg file created in the game directory on first run. To invert the mouse add the line in_mouseflip 0, and to change the field of view add a line such as fov "120" with a value between 60 and 140. The team is working on new menus in the meantime.

### What changed in the NBlood configuration file?

NBlood now uses nblood_cvars.cfg instead of settings.cfg, so a settings.cfg from an earlier version has to be renamed by hand if you want to keep your settings. The launch parameter for the Cryptic Passage on Linux is -ini CRYPTIC.INI.

### How do I build NBlood from source?

The README does not include build instructions and instead points to the EDuke32 wiki, since the ports inherit the engine's build system. The repository holds a GNUmakefile, a Common.mak, a platform directory and a source directory, with continuous integration configured through .appveyor.yml and .gitlab-ci.yml.

## Sources

- [Issues](https://github.com/NBlood/NBlood/issues)
- [NBlood/NBlood on GitHub](https://github.com/NBlood/NBlood)
- [Project website](https://discord.gg/nNQWEvSTvZ)
- [README](https://github.com/NBlood/NBlood/blob/master/README.md)
- [Releases](https://github.com/NBlood/NBlood/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/nblood-nblood
