- What is this?
- Why does this exist?
- Comparison: official PC port vs Xenia vs DPRecomp
- Screenshots
- What you need before playing
- How to install and play
- Default controls (PC Director's Cut style)
- Frequently asked questions
- Building from source
- Technical deep-dives
- Credits
- Legal
DPRecomp is a native Windows port of Deadly Premonition (Access Games / Rising Star Games, Xbox 360, 2010), directed by Hidetaka "Swery" Suehiro. The original Xbox 360 game is converted into a regular Windows program — once, at build time — so it runs on your PC the same way as any other Windows app.
If you've used Xenia or RPCS3 before, this is not that. There is no emulator, no JIT translator running on every CPU instruction, no per-frame interpretation overhead. The PowerPC code in the original Xbox 360 binary is translated into native x86-64 C++ code ahead of time, and then linked against a small host runtime that handles the Xbox-specific parts (input, kernel calls, GPU command processor, EDRAM). The result is a real deadlyprem.exe that boots like any other game.
This technique is called static recompilation. It's the same idea behind:
- N64: Recompiled (the project that started the trend),
- Sonic Mania: Recompiled,
- Skate 3 Recomp,
- DownpourRecomp (the same author's Silent Hill: Downpour port).
DPRecomp uses the ReXGlue SDK — a Xenia-derived Xbox 360 host runtime — as the foundation, and adds the Deadly Premonition-specific glue plus the SDK-level fix for the rainbow-noise GPU artifact that used to appear on hair, foliage, and alpha-tested edges.
Note
You provide your own legally-owned copy of the game. The release zip is the host shell only (~16 MiB). It does not contain default.xex, game data, music, or any Access Games / Rising Star assets. See What you need before playing.
Deadly Premonition is one of those rare cult-classic games — a 2010 Xbox 360 open-world horror / detective oddity that nothing else plays quite like. Twin Peaks vibes, a sharp script, and absurdly broken on PC.
The official PC release, Deadly Premonition: The Director's Cut, is one of the most notoriously broken AAA-budget PC ports ever shipped:
- 720p resolution cap, no fix in settings.
- Hard 30 FPS lock that the engine can't even hit half the time.
- Broken mouse-look that requires third-party fixers to be playable.
- Save/load corruption in specific chapters.
- A long tail of crashes that the publisher never patched.
The Xbox 360 release, by contrast, was the stable version of the game. Most "best way to play DP" guides for years recommended that path.
DPRecomp takes that stable Xbox 360 binary and runs it natively on Windows. External testers have completed full end-to-end playthroughs (driving sequences, all chapters, every cutscene) with no crashes — the recompiled game does not crash and runs more stably than the official PC port. Because the game logic runs natively, the bugs that plague Deadly Premonition under Xenia (chapter-1 hardlocks, broken dialogue advance) also don't apply here.
GPU output uses the upstream Xenia D3D12 stack ported into ReXGlue, so visuals match xenia-canary — with the rainbow-noise artifact on hair/foliage fixed at the SDK level (investigation log).
| Official PC (Director's Cut) | Xenia emulator | DPRecomp | |
|---|---|---|---|
| Resolution | 720p cap | up to 4K (DSR) | up to 4K, native 1080p default |
| Frame rate | 30 FPS lock, often misses | 30 FPS (engine cap) | 30 FPS (engine cap) |
| Stability | Frequent crashes | Chapter-1 hardlocks, dialogue advance bugs | No reported crashes in full playthroughs |
| Mouse-look | Broken — third-party patcher needed | Not supported (controller only) | Working natively — Director's Cut bindings preconfigured |
| Keyboard bindings | Limited, broken on remap | n/a | Full PC-style Director's Cut bindings, remappable |
| Save/load | Corruption in some chapters | Works under Xenia | Working |
| GPU rendering | Custom (broken) | Xenia D3D12 / Vulkan | Xenia D3D12 backend (ported) |
| Rainbow noise on hair/foliage | n/a | known artifact | fixed (log) |
| CPU execution | Native (broken port) | Dynamic recompiler (JIT) | Statically recompiled to native x86-64 |
| Install size | ~6 GB + game | ~80 MiB + your dump | ~50 MiB + your dump |
The download is the application only. You bring the game. To play, you need:
- A legally-owned copy of Deadly Premonition for Xbox 360 — disc, digital download, or backup of either.
- Your own dumped
default.xexextracted from that copy. - The full game data tree —
nxeart,updata/, and the rest of the disc's files. The game streams content from disk at runtime, so the XEX alone is not enough. - A modern Windows PC: Windows 10 or 11 (x86-64), a D3D12-capable GPU.
Important
Do not ask in the issue tracker or anywhere else where to get the XEX. Bring your own legally-acquired copy.
-
Download the latest release zip: DPRecomp v0.1.1 →
-
Extract the zip somewhere with read/write access (e.g.
C:\Games\DPRecomp\). -
Put your game files into an
assets/folder next todeadlyprem.exe. The expected layout:C:\Games\DPRecomp\ deadlyprem.exe rexruntimerd.dll TracyClientrd.dll deadlyprem.toml ← rename from deadlyprem.toml.sample start.bat CONTROLS_EN.txt assets\ default.xex ← your XEX, from your dumped copy nxeart updata\ ... ← full disc data tree -
Rename
deadlyprem.toml.sample→deadlyprem.toml. It already enables mouse mode and ships PC-style Director's Cut bindings (no further config needed). -
Double-click
start.bat, or open a terminal and run:deadlyprem.exe --game_data_root assets
-
The game launches in fullscreen. Press F4 in-game for the settings overlay (cvars, keybinds, mouse sensitivity, render scale). Press ` (backtick) for the console.
That's it — you're playing Deadly Premonition natively on PC.
| Action | Key |
|---|---|
| Move | W A S D |
| Camera | Mouse |
| Interact / fire | E / LMB |
| Run | Shift |
| Light on/off | F |
| Strafe left / right | Z / X |
| Hold breath / lock on | Ctrl |
| Look / draw weapon | Space |
| Reload / cancel | R |
| Map | M |
| Pause | Enter |
| Switch weapon | Mouse wheel |
| Settings overlay | F4 |
| Console | ` |
See CONTROLS_EN.txt inside the release zip for the full mapping. All bindings are remappable live via F4 → Input → Keybinds.
Is this an emulator?
No. An emulator runs the original Xbox 360 instructions on a virtual CPU at runtime. DPRecomp converts the Xbox 360 instructions into native x86-64 code at build time, so what you run on your PC is a real Windows executable.
Why isn't the game executable included?
Including the game's binary or any of its data files would be copyright infringement. You need to obtain the XEX and game data from your own legally-owned copy of the Xbox 360 release. We will not tell you where to download a copy, and asking will get your issue closed.
Is this better than the Steam Director's Cut?
In every practical way relevant to playing the game, yes:
- Stability: full external playthroughs with no crashes. The Steam release crashes frequently and was never properly patched.
- Resolution: any resolution your GPU can handle. The Steam release is capped at 720p.
- Input: native mouse and keyboard with smoothing, fully remappable. The Steam release has broken mouse-look.
- Saves: working. Some chapters corrupt saves in the Steam release.
The Steam release does have one thing this doesn't: official online distribution. If you don't already own a Xbox 360 copy, you can buy Director's Cut on Steam and use that XEX is not possible — they're different binaries — but Steam is at least an easy legal way to own some copy of the game while you find the Xbox 360 version.
Does the controller work?
Yes — Xbox 360, Xbox One/Series, DualShock 4, DualSense, and most XInput-compatible controllers work out of the box. DualSense was tested by the maintainer.
Can I unlock the frame rate above 30 FPS?
Not in v0.1.1. The 30 FPS cap is inside the game's UE3-ish tick loop in the recompiled code. Lifting it would require patching the recompiled game itself to decouple logic tick rate from vblank — raising the host present rate alone makes gameplay run at 2x real speed (animations, physics, scripts all fast-forward), not 60 FPS.
Do achievements unlock?
No. There is no Xbox Live backend in this port, so any code path that submits an achievement is stubbed. Saves work; achievements don't.
I'm getting a crash / artefact / weird behaviour. What do I do?
Open an issue on GitHub Issues with:
- The exact symptom and the scene where it happens.
- A screenshot or short video if visual.
- The
logs/folder next todeadlyprem.exe. - Your
deadlyprem.toml. - GPU model and driver version.
Do not attach any game files or binaries that link against game data.
Click to expand — full build instructions
- Windows 11
- Visual Studio 2022 Build Tools with the C++ workload (or full IDE)
- LLVM/Clang 20 or newer
- CMake 3.25 or newer
- Ninja 1.11 or newer
- A built and installed ReXGlue SDK, registered in CMake's user package registry. The SDK must be built in the same configuration the consumer project uses (Debug or RelWithDebInfo).
Drop the contents of your Xbox 360 disc dump into assets/:
assets/
default.xex
nxeart
updata/
readfile.dir
readfile.tbl
readfile_en.dir
...
# Source the MSVC environment once per shell so clang can find the headers
& 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat'
cmake --preset win-amd64-relwithdebinfo
cmake --build --preset win-amd64-relwithdebinfo --target deadlyprem_codegen
cmake --build --preset win-amd64-relwithdebinfo --parallel 6Codegen produces ~4.45M lines of recompiled C++ in generated/default/. First build takes 20-30 minutes; incremental builds after config tweaks are much faster.
cd out\build\win-amd64-relwithdebinfo
.\deadlyprem.exe --game_data_root assetsIf assets/ is not next to the executable, create a junction:
New-Item -ItemType Junction -Path out\build\win-amd64-relwithdebinfo\assets `
-Target (Resolve-Path .\assets)When the runtime fatals with Call to invalid or unregistered function at guest address 0xADDR, add an entry under [functions] in deadlyprem_config.toml:
"0xADDR" = { name = "sub_ADDR" }For batch discovery, use sp00nznet/360tools:
python tools/extract_pe.py assets/default.xex generated/dp_pe.bin
python tools/find_missing_vtable_funcs.py generated/dp_pe.bin generated/default/deadlyprem_init.cppThe scanner output is paste-compatible with [functions] after a trivial case fix (0X → 0x).
- 📜 GPU rainbow-noise investigation log — the full forensic trail of how the EDRAM ownership-transfer artifact on hair / foliage / alpha-tested edges was found and fixed, including 7 disproved hypotheses kept as "do not re-bisect" notes.
deadlyprem_manifest.toml— top-level ReXGlue manifest; points at the XEX and pulls indeadlyprem_config.toml.deadlyprem_config.toml— codegen hints: manually-registered functions, templates for switch tables and midasm hooks.src/deadlyprem_app.h—rex::ReXAppsubclass; installs the FP exception guard at start, removes it at shutdown.src/deadlyprem_fp_guard.h— VEH (Windows) / SIGFPE (POSIX) handler that masks SSE FP exceptions raised by the recompiled guest code.src/deadlyprem_hooks.cpp— bodies for any named functions and midasm hooks declared in the TOML.src/main.cpp—REX_DEFINE_APPentry point.
- ReXGlue SDK — the recompilation toolkit.
- EternalSonataReprise — the host-glue template that this project's
src/follows, including the FP exception guard pattern. sp00nznet/360tools— Python scanners for batch vtable / switch-table / import discovery.- Xenia project — the upstream GPU stack that ReXGlue's
src/graphics/ports in. - Weighted Coils — testing and end-to-end playthrough validation.
The host-side source under src/, build scripts, CMake files, TOML configs, and documentation are released under the MIT License — see LICENSE.
The recompiled game code produced at build time contains symbols and logic from Deadly Premonition and is not redistributable. Do not share assets/default.xex, the generated/default/ directory, or any built binary that links against them.
Related projects by the same author: DownpourRecomp — Silent Hill: Downpour (PC port)
