DPRecomp

DPRecomp brings Deadly Premonition to PC.

README

Deadly Premonition

Deadly Premonition Recompilation

A native Windows port of Deadly Premonition (Xbox 360, 2010) by static recompilation. No emulator.
60 FPS on the console's own time base · real mouse look · keyboard and PlayStation button prompts · FSR 3 and 2× supersampling · a launcher that updates itself · PAL and USA discs

Latest release Total downloads Platform Issues Stars

York in the rain — Deadly Premonition Recompilation

⬇  Download 2.0.10 for Windows

DPRecomp-2.0.10-win64.zip · 47 MB · Windows 10 / 11 64-bit

Release notes · Steam artwork pack · Report a bug · Changelog

by the «Little Bit» team  ·  🇺🇦 MADE IN UKRAINE


[!IMPORTANT] You provide your own legally-owned copy of the game (PAL or USA Xbox 360 disc, as an .iso or extracted files). The release contains the host program only: no default.xex, no game data. See Legal.

At a glance

⏱️ 60 FPS the right way. The logic tick is unlocked from the 30 FPS vblank gate and fed whole ticks with an error accumulator, exactly like the console counts vblanks. Cutscenes stay in sync with the voices. Switchable.🖱️ Real mouse look. Mouse motion drives the game's own camera code: walking, aiming, driving and cutscene cameras. No stick emulation, no dead zone, no acceleration curve. Sensitivity and Y-invert in the launcher.
⌨️ The prompts speak keyboard. The A / B / X / Y / LB / RB icons become pictures of your keys, generated from your bindings. Or PlayStation glyphs for DualShock / DualSense players.🎮 Every controller. Xbox, DualShock 4, DualSense (adaptive triggers: weapon click, resistance), any XInput or SDL pad, plus a keyboard layout that mirrors the PC Director's Cut.
🖼️ 2× supersampling on the fast ROV path, AMD FSR 3 + FXAA presenter (or CAS, FSR 1, bilinear), anisotropic filtering, window / monitor / VRR settings. A native Direct3D 12 renderer is in preview next to the emulated path, with its own internal resolution up to 4×.🚀 A launcher. PlayDeadlyPremonition.exe: every setting in five tabs, English and Ukrainian, first-run .iso installer, one-click updates from GitHub, config self-healing.
🌍 Both regions. The zip holds a recompiled build for the European (PAL) and the USA (NTSC) disc; the launcher picks the right one from your default.xex.🧩 Modding built in. Every texture is addressable by a stable hash: dump it, edit the PNG, drop it back. That is how the key prompts and the Recompilation title logo are done.
💾 Portable. Unzip anywhere; saves, config and the shader cache live in the game folder. Runs on SSE4.1-era CPUs, no AVX required.🏆 Achievements are tracked locally with unlock toasts (F7). There is no Xbox Live.

Quick start

You need: Windows 10 / 11 64-bit · a Direct3D 12 GPU with rasterizer-ordered views (NVIDIA GTX 900+, AMD RX 400+, Intel Arc; recent integrated graphics at 1×) · ~6 GB free for the game data · your Deadly Premonition Xbox 360 disc image or extracted files.

  1. Download DPRecomp-2.0.10-win64.zip and unzip it anywhere outside Program Files.
  2. Game data: either start the launcher and let the built-in installer extract your .iso into assets\ (a few minutes, resumable), or copy the extracted disc contents so that default.xex ends up at assets\default.xex.
  3. Play: run PlayDeadlyPremonition.exe and press PLAY. The first launch compiles shaders for a minute; later launches are instant. Saves live in userdata\ next to the game.

Updating: the launcher shows an Update available banner and installs the new version in place, keeping your saves and settings; since 1.3.3 this works under Proton on the Steam Deck too (one manual unzip to get onto 1.3.3, the button from then on).


What's new

2.0.10: one present per game frame: the UI no longer repaints on every monitor refresh (#36). Notes.

2.0.9: even 60 FPS frame pacing: no more small jerks every few seconds while moving (#36). Notes.

2.0.8: fixes a crash in the game's collision code later in the story (#39). Notes.

2.0.7: native renderer shadows closer to the console (no more dark self-shadow bands at 2x and above, sharp shadow edges at 3x/4x, the fog veil in floor reflections is back) and a clean sun without a dark ring. Notes.

2.0.6: the native renderer at 3x and 4x keeps the sun shadows (no more hard line of light in the distance), and the log now reports graphics problems in plain words: your GPU driver, resources that could not be created and why. Notes.

2.0.5: drive with W / S (no more holding Space, the mouse stays on the camera), Skip Intro now skips the almost 6-minute opening movie too, and the Director's Cut controller layout no longer stays paused after you get out of the car. Notes.

2.0.4: fixes holes and spikes on some objects with the native renderer: pillows, York's tie showing through his back, door handles and trees pulled across the screen. Notes.

2.0.3: fixes the native renderer's crashes ("GPU lost") while exploring and after closing the pause menu. Notes.

2.0.2: the native renderer no longer shows a black screen after updating with the launcher's Update button (its shader file was never copied), and if the graphics card stops responding the game now says so and closes instead of freezing, with the details in the log. Notes.

2.0.1: safety fixes for the native renderer found in a review right after 2.0: an experimental texture-sharing path that could leave a stale image after a level change is now off, a possible crash and some wasted CPU time in the render-target handling are gone. Nothing you saw in 2.0 looks different. Notes.

2.0: the native renderer is ready for testing. The game can now be drawn directly with DirectX 12 instead of an emulated Xbox 360 graphics chip, and this is the first version of that renderer we consider in a proper state: colours, light, the sky, depth of field and the mirror floors look the way they should. The launcher offers it once; the emulated path stays the default and is unchanged. Please play with it and tell us how it goes: your impressions, your FPS and your hardware (see Help us test below).

  • The main light is back. A recompiler bug skipped the block that switches on each scene's main light (the sun outdoors) in 297 of the game's 462 pixel shaders, so the world was lit by the cool ambient light alone: flat and purple.
  • No more milky veil. The glow's bright-pass let every pixel through, so a blurred copy of the whole frame was added on top of it at 60–70% strength.
  • The sky, trails and doubled signs. The final colour pass draws over the HDR scene in the same video memory on the Xbox 360; the renderer now carries that memory over, so the sky shows through where it should instead of black or the previous frame.
  • The mirror floor in the sheriff's station reflects instead of being white, and env-map reflections come from the right direction.
  • Fire and smoke in the forest look like fire again, and keyboard prompts use the key textures with the native renderer too.
  • Measured on an RTX 5070 at 2× in the sheriff's station: 60 fps held, the native renderer's CPU time 5.1–6.1 ms and GPU time 1.4–1.6 ms per frame.

Full notes.

The sheriff's stationThe hallway
Native renderer at 2x: the sheriff's station with the dark mirror floor reflecting the roomNative renderer at 2x: York and two deputies in the station's hallway

The native renderer in 2.0 at 2× internal resolution.

1.4.7: native renderer preview: depth of field works (the whole frame was blurred), 2× no longer wrecks the image, triangle fans. Notes.

1.4.6: native renderer preview: internal resolution up to 4×, mipmaps, the console's shadow depth format and colour range, a recompiler fix for conditional shader branches. Notes.

1.4.5: settings labels no longer wrap into a clipped second line; long explanations are tooltips (#32). Notes.

1.4.4: Audio Output (Auto / Stereo / Surround). Stereo fixes quiet or missing dialogue when Windows is set to 5.1 but the speakers are not (#19). Notes.

1.4.3: the launcher's Share Shader Cache never actually delivered anything; it does now. Notes.

1.4.2: the endless "Saving" screen (#21), diagonal mouse aim (#30), and the first native renderer preview. Notes.

Everything since 1.0, version by version: docs/CHANGELOG.md.

Sky, tree crowns and car glass on the ROV path at 2×


🧪 Help us test

Every fix in the list above started as somebody's report. What is most useful right now:

  • The native renderer (launcher → Native), new in 2.0. Hardware other than ours is the part we cannot see. Tell us your GPU and CPU, the frame rate in the same spot with the renderer off and on, and whether Internal Resolution 2× is playable. The log line that starts Native renderer: frame # carries the frame, CPU and GPU milliseconds we need; attach logs\deadlyprem_XXX.log.
  • 60 FPS oddities: anything that runs at the wrong speed or desyncs from the voices. The scene where York meets Emily and George is our reference.
  • The ROV path's leftovers: hard contours on tree crowns and glass, light-blue polygonal patches on characters in dialogue scenes, flat cloud blotches (#10). A screenshot plus the scene name.
  • Steam Deck and AMD integrated graphics: frame rates with ROV vs RTV, 1× vs 2×.
  • Crashes: GPU and driver, render path, internal resolution, a screenshot, the newest logs\deadlyprem_XXX.log and any logs\*.dmp next to it. The log ends with a crash report: the game thread, the call stack, and for GPU losses the DRED breadcrumbs.

Open an issue with a save file if the problem is scene-specific (userdata\ → the folder for your XUID). "It works" reports with your GPU and settings are welcome too. And if you say yes when the launcher asks to share your shader cache, whoever plays after you gets fewer first-time stutters (what exactly is sent).


The launcher and in-game keys

PlayDeadlyPremonition.exe shows every setting on its own page: Graphics (render path, internal resolution, upscaler and sharpness, FXAA, 60 FPS, window, monitor list), Advanced (game language, skip intro, GPU adapter, texture cache, audio output, Steam overlay switch, shader cache sharing, texture dump), Mouse (direct camera control, sensitivity, invert, key stick ramp, auto-shake), Controls (button prompts style, controller layout, DualSense triggers, every key binding), Debug (log level, PSO policy), Experimental and Native (the native renderer preview and its internal resolution). It writes deadlyprem.toml next to the game and repairs keys the in-game overlay may drop.

In the game: F4 runtime settings overlay (live changes, Save to config writes them back) · F3 performance overlay · F7 achievements.

Controls

Mirrors the Director's Cut PC keymap. A controller works at the same time. The publisher logos and the opening movie can be skipped (Advanced → Skip Intro: straight to the title screen, or straight to the main menu). Rebind anything in the launcher (Controls tab); combo syntax in the config: , separates alternatives, + means held together (keybind_a = "E,Space+LMB").

ActionKeyboard / mousePad
MoveW A S DLeft stick
LookMouseRight stick
Change weaponMouse wheelD-pad up / down
Map zoomMouse wheelRight stick up / down
Interact / acceptEA
Cancel / reloadRB
ObserveCLeft stick press
FlashlightFY
Run (hold) / cutscene actionsShiftX
Draw weapon / aimhold SpaceRight trigger
Aim (while weapon drawn)Mouse (or W A S D)Left stick
FireSpace + LMBA while aiming
Shake the stick (QTE "Get it off!")tap A D A D rapidlywiggle the left stick
Hold breath / lock-onControlLeft trigger
Car: accelerate / brake and reverse / steerW / S / A D (holding Space / Control still works)Right trigger / left trigger / left stick
Director's Cut layout (Controls → Controller Layout)unchangedLeft trigger aims, right trigger fires, A while aiming holds breath
Strafe left / rightZ / XLB / RB
Pause menuEnterStart
MapMBack

Steam

Add PlayDeadlyPremonition.exe as a non-Steam game, then apply the Steam artwork pack (also in docs/steam): a 600×900 vertical capsule, a 1920×620 hero banner and a transparent logo, with a README that says where each file goes. Step by step in the FAQ. If starting through Steam gives a black screen or a tinted quarter frame, set Steam Overlay to off in the launcher (Advanced).

The game page in Steam with the hero banner and logo applied

Keyboard prompts and texture modding

Keyboard key prompts — "E Save", "R Observe"

The game draws its button hints from one small atlas texture. With Mouse & Keyboard Mode on, the launcher paints key caps with your bindings over that atlas, so E Save, R Observe, SHIFT run, SPACE aim follow your keymap. Controls → Button Prompts picks the style: Keyboard, Xbox (original) or PlayStation in three looks (icons by Zacksly, CC BY 3.0). The sets live in prompts\ as plain PNGs, so another controller family is a folder away.

The same mechanism is a modding tool. Every texture the game loads is identified by a hash of its pixels, the same on every PC:

  • textures\<hash>.png replaces the texture completely (any size; mipmaps are generated).
  • textures\<hash>.overlay.png is composited on top of the original where the PNG is opaque, so you ship only the pixels you changed.
  • Launcher → Advanced → Texture Dump writes every texture the game loads to textures\dump\<hash>_<width>x<height>_<format>.png while you play. Turn it off afterwards.

DXT1/3/5 and RGBA8 textures are dumped; float and depth formats are skipped. Code: docs/sdk-patches/new-files/src/graphics/pipeline/texture/replacement.cpp and GenerateKeyPromptOverlay in launcher/src/main.cpp.


FAQ

Is this an emulator?

No. An emulator runs Xbox 360 instructions on a virtual CPU at runtime. Here the instructions were converted to native x86-64 code once, at build time, by static recompilation: the same technique as N64: Recompiled, Skate 3 Recomp and the author's Silent Hill: Downpour port. The GPU is still translated (Xenos → Direct3D 12) by the ReXGlue runtime, a Xenia-derived host, which is why the settings overlay looks familiar to Xenia users.

How do I add the game to Steam, with proper artwork?

Steam → Games → Add a Non-Steam Game to My Library → Browse... → pick PlayDeadlyPremonition.exe from your DPRecomp folder, and name the entry Deadly Premonition Recompilation. Then download the Steam artwork pack: right-click the game in the library grid → Manage → Set custom artwork → grid.png; on the game's page right-click the banner → Set custom background → hero.png, and right-click the logo area → Set custom logo → logo.png (drag it to the centre). The README inside the pack also has the file-based way (userdata\<id>\config\grid).

Does the USA (NTSC) version work?

Yes. The USA disc ships a different executable, so the zip contains two recompiled builds: deadlyprem.exe for PAL and deadlyprem_usa.exe for USA. The launcher and the installer start the right one from the size of your default.xex; you never have to choose.

Is 60 FPS safe?

It changes the game's time base rather than just doubling the frame rate, so animation, physics and the clock run at normal speed. Since 1.3 the game gets whole logic ticks with an error accumulator, exactly like the console's vblank count: 1, 1, 1, ... and a 2 every few hundred frames, so long cutscenes stay in sync with the audio and scripted scenes never see fractional ticks. The doubled sounds and prop swaps reported at 60 FPS (#17, #18) went away with that change and are closed. If something time-related still misbehaves, switch it off (Graphics → 60 FPS) and open an issue with the location.

The mouse feels different from a PC shooter.

Mouse motion drives the game's own camera, a spring-damped orbit camera by design: it eases towards where you point and re-centres behind York while you walk. The hook keeps the angle you asked for until the camera gets there and turns the yaw state directly. Tune Camera Hook Sensitivity (radians per pixel) and Hold Before Auto-center in the launcher's Mouse tab; Direct Yaw off gives the game's spring back. Turning Mouse Controls Camera Directly off falls back to stick emulation.

Where are my saves?

userdata\ next to deadlyprem.exe. Saves made with the 1.0 build in Documents\deadlyprem