Wolfenstein 3D x64
Wolfenstein 3D x64 is a faithful x64 port of the 1992 Wolfenstein 3-D engine for Windows and Linux.
- Type: PC port
- Game: Wolfenstein 3D
- Runs on Windows and Linux
- By mkalkhoven-po
- Latest release v0.9.0, 2026-10-11
- Source: https://github.com/mkalkhoven-po/wolf3d-x64
README
Wolf3D x64
A faithful x64 port of the 1992 Wolfenstein 3-D engine, rebuilt from id Software's original source code: the same fixed-point maths, 70 Hz game clock, AI, renderer and screens, so it plays like the DOS game. For Windows 10 / 11 and Linux.
The shareware in Wolf3D x64: the title screen, and floor 6.
You bring the game files: the free shareware version (Episode 1) or the full version (the registered game, all six episodes), both version 1.4. No game data is in this repository.
Download the latest release for Windows or Linux, see Download.
Status: version 0.9.0, a preview: the faithful engine and all of the original's screens are done (P1–P5, go/no-go signed off Go on 2026-10-11) and released for Windows and Linux (R1). Next is the live playtest (P6): please report what you find as an issue. Version 1.0.0 follows the fixes.
What you get
- The original engine, ported from
WL_*.Cin 16.16 fixed point: original AI and state tables, doors, pushwalls, the raycaster and sprite scaler,US_RndT. All eight original demos replay in sync (ADR-002). - The original screens: rating screen, title, credits and high scores with the demos in between; the full control panel (new game, sound, control and Customize, load and save with ten named slots, view size, Read This! for the shareware); "Get Psyched!", the intermission tally, victory, high score entry, the death cam.
- Sound as on a Sound Blaster Pro: digitized effects placed left and right, and AdLib music and effects through an OPL2 emulator written for this port (ADR-003).
- Modern additions, kept apart from the game logic: XInput and other game pads (twin-stick), separate music and effects volume, controller look speed, fill-the-screen scaling with sharp pixels, fullscreen, mouse wheel in the menus, settings and saves in
%APPDATA%\Wolf3D-x64\.
Download
Each release on the Releases page has two packages:
- Windows (64-bit, Windows 10 or 11):
wolf3d-x64-<version>-windows-x64.zip. Unzip it, put your game files in itsdatafolder (or anywhere: the game asks for the folder), double-clickwolf3d.exe. The exe is not signed, so Windows may warn "Windows protected your PC": More info, then Run anyway. - Linux (64-bit, Ubuntu 22.04 or newer and the like):
wolf3d-x64-<version>-linux-x64.tar.gz. Needs SDL2 (sudo apt install libsdl2-2.0-0); unpack, put your game files indata, run./wolf3d.
Each package has a README.txt for players. SHA256SUMS.txt lists the checksums.
Play
Full guide: docs/player/QUICKSTART.md (finding the data, controls, menus, saves, settings).
build\wolf3d.exe --data D:\path\to\your\wolf3d
The game also looks for a Wolf3dgame or data folder next to the exe; when it finds no game files it asks for the folder, and remembers it. Any game option starts a game directly:
build\wolf3d.exe --data D:\path\to\your\wolf3d --map 0 --skill 3
build\wolf3d.exe --data D:\path\to\your\wolf3d --demo 0
Build
Prerequisites: CMake 3.20+, a C17 compiler (MinGW-w64 or MSVC 2022), Ninja recommended. The first configure fetches SDL2 (-DWOLF_FETCH_SDL2=OFF to use your own).
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build -j
SDL2.dll is copied next to wolf3d.exe. On Windows wolf3d.exe is a windowed program: started from a terminal it prints there, double-clicked its output goes to %APPDATA%\Wolf3D-x64\wolf3d.log.
Packages and releases
cpack in the build folder makes the release package of that system: wolf3d-x64-<version>-windows-x64.zip or -linux-x64.tar.gz (the game, SDL2.dll on Windows, packaging/README.txt.in as README.txt, the license papers, an empty data folder). The version is the one in project() in CMakeLists.txt.
A release: set the version there, add docs/releases/v<version>.md (the release notes), merge, then tag main and push the tag:
git tag v0.9.0
git push origin v0.9.0
The release workflow builds both packages (Windows with MSYS2 UCRT64, Linux on Ubuntu 22.04) and puts them in a draft release on GitHub; read it over and publish it there.
Tests
set WOLF3D_DATA=D:\path\to\full-version
set WOLF3D_DATA_WL1=D:\path\to\shareware
cmake -S . -B build
ctest --test-dir build --output-on-failure
Without game data the unit tests run (also in CI). With one or both packs set at configure time, the engine tests run on real data: demo sync per view size, golden frames, the E1M1 route, every menu and screen driven by scripted input with pinned screenshots, smoke, cold start, settings migration (50 tests with both packs). -DWOLF_SANITIZE=ON builds with sanitizers where the compiler has them.
Troubleshooting: with Windows 11 Smart App Control on, a freshly built unsigned wolf3d.exe or SDL2.dll can be blocked ("Bad Image", status 0xc0e90002, or ctest "BAD_COMMAND"; Code Integrity event 3077). That is an OS policy, not a build error.
Roadmap
| Phase | Status | |
|---|---|---|
| E0–E8, Q0–Q3, F1–F3, L1 | First playable shell, data loading, QA harness (a float engine, since replaced) | Done |
| P1–P3 | Safety net (warnings, unit tests, CI), honest docs, shareware data layer | Done |
| P4 | The faithful engine core: fixed point, 70 Hz, original AI, player, renderer; fidelity gate | Done |
| P5 | The original game flow: menus, intermission, attract loop; audio pass and go/no-go (Go) | Done |
| R1 | Release 0.9.0: GPL-2.0 license, icon, Windows zip and Linux tarball, first-run folder picker | Done |
| P6 | Live playtest after release, bugs as issues; then 1.0.0 | Next |
| F4 | Dual pistols (optional) | Deferred |
Details: docs/epics/README.md. Boards: Wolf3D x64 — Delivery and Wolf3D x64 — QA & Stabilization.
Docs
- Player quickstart · User-supplied game data
- ADR-001 Platform backend · ADR-002 Faithful fixed-point port · ADR-003 Own OPL2 emulator
- QA index: FR matrix, playtest checklists, go/no-go, smoke
- Epic index and roadmap · ID module map
| Path | |
|---|---|
src/orig/ | The faithful engine, ported from the original WL_*.C and ID_*.C |
src/id/ | Data loading (maps, VSWAP, VGAGRAPH, audio), the OPL2 emulator, the sound mixer |
src/platform/win_sdl/ | SDL2 window, input, game pad, settings and saves, the engine's hooks |
reference/original/ | id's original DOS sources, unmodified (the reference) |
tests/ | Unit and engine tests (CTest) |
License
Wolf3D x64 is free software under the GNU General Public License, version 2 (LICENSE), as id Software's 2012 release of the Wolfenstein 3-D source it derives from. SDL2 is under the zlib license; see THIRD_PARTY_NOTICES.md.
- No game data is in this repository and the license does not cover it: point the game at files you are entitled to use (GAME_DATA.md). Pull requests adding game files (
.WL1shareware,.WL6full version) are not accepted. - Wolfenstein is a trademark of ZeniMax Media; this project is not affiliated with or endorsed by id Software or ZeniMax.
Credits
- The original game and engine: id Software (1992)
- This port: mkalkhoven-po