Skip to content

LittleBitUA/DownpourRecomp

Repository files navigation

Silent Hill: Downpour — PC Port (DownpourRecomp)

Play Silent Hill: Downpour natively on Windows, in 1080p, with keyboard + mouse — no emulator required.

Latest release Total downloads License Platform Stars

Murphy close-up — Silent Hill: Downpour running natively on PC


Table of contents


What is this?

DownpourRecomp is a native Windows port of Silent Hill: Downpour (Konami / Vatra Games, Xbox 360, 2012). The original Xbox 360 game is converted into a regular Windows program — once and for all, 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 downpour.exe that boots like any other game.

This technique is called static recompilation. It's the same idea behind:

DownpourRecomp uses the ReXGlue SDK — a Xenia-derived Xbox 360 host runtime — as the foundation, and adds the Silent Hill: Downpour-specific glue and a narrow GPU fix that makes the fast render path produce a clean image.

Note

You provide your own legally-owned copy of the game. The release zip is the host shell only (~27 MiB). It does not contain default.xex, game data, music, or any Konami / Vatra assets. See What you need before playing.


Why does this exist?

Silent Hill: Downpour never received an official PC release. On modern hardware your three options are:

  1. Real Xbox 360 hardware. Works, but ageing — disc reads fail, HDMI is 720p tops, no improvements over 2012.
  2. Xenia emulator (xenia-canary). Works for Downpour visually but with the overhead of dynamic translation and the dependency on Xenia's evolution.
  3. DownpourRecomp (this project). A native Windows process, full mouse + keyboard support, the chromatic-noise artifact on the fast render path fixed, and the entire CPU side running natively at x86-64 speed.

Option 3 is what this project exists to be.


Comparison vs Xenia and the Xbox 360

Xbox 360 (original) Xenia emulator DownpourRecomp
Resolution 720p (HDMI) up to 4K (DSR) up to 4K, native 1080p default
Frame rate 30 FPS 30 FPS (UE3 cap) 30 FPS (UE3 cap)*
Input Xbox 360 controller only XInput controllers XInput + native mouse & keyboard
Disc / file requirement Original disc Dumped XEX + game data Dumped XEX + game data
GPU rendering Xbox 360 GPU Xenia D3D12 / Vulkan Xenia D3D12 backend (ported)
CPU execution PowerPC native Dynamic recompiler (JIT) Statically recompiled to native x86-64
CPU overhead none per-frame translation none
Chromatic-noise bug n/a (clean) clean fixed (see docs)
Modding hooks none limited C++ source-level hooks
Install size disc only ~80 MiB + your dump ~110 MiB + your dump

* The 30 FPS cap is inside the recompiled game logic (UE3 fixed tick rate). Lifting it requires patching the game's tick code, not the runtime — see Frequently asked questions.


Screenshots

Title screen Murphy close-up
Title screen Murphy close-up
Prison Block 4 intro Prison corridor
Prison Block 4 intro Murphy in the prison corridor

What you need before playing

The download is the application only. You bring the game. To play, you need:

  1. A legally-owned copy of Silent Hill: Downpour for Xbox 360 — disc, digital download, or backup of either. Region USA or EUR (title id 4B4E0823, base XEX hash 7A3D5809776EE6AB). Other regions are untested.
  2. Your own dumped default.xex extracted from that copy.
  3. The full game data treenxeart, SHGame/, AvatarAssetPack/, and the rest of the disc's files. The game streams content (audio, levels, scripts) from disk at runtime, so the XEX alone is not enough.
  4. A modern Windows PC: Windows 10 or 11 (x86-64), a D3D12-capable discrete GPU (RTX 30-series or equivalent, 6+ GB VRAM recommended).

Important

Do not ask in the issue tracker or anywhere else where to get the XEX. Bring your own legally-acquired copy.


How to install and play

  1. Download the latest release zip: DownpourRecomp v0.1.1 →

  2. Extract the zip somewhere with read/write access (e.g. C:\Games\DownpourRecomp\).

  3. Put your game files into an assets/ folder next to downpour.exe. The expected layout:

    C:\Games\DownpourRecomp\
      downpour.exe
      rexruntimerd.dll
      TracyClientrd.dll
      downpour.toml         ← rename from downpour.toml.sample
      start.bat
      assets\
        default.xex         ← your XEX, from your dumped copy
        nxeart
        SHGame\
        AvatarAssetPack\
    
  4. Rename downpour.toml.sampledownpour.toml. It already enables the chromatic-noise fix and sensible defaults.

  5. Double-click start.bat, or open a terminal and run:

    downpour.exe --game_data_root assets
  6. The game launches in fullscreen 1080p. Press F4 in-game to open the settings overlay (cvars, keybinds, mouse sensitivity, render scale). Press ` (backtick) for the console.

That's it — you're playing Silent Hill: Downpour natively on PC.


Default controls

Action Key / Button
Move W A S D
Camera Mouse
Interact / fire Space / LMB
Aim / look RMB
Run Shift
Crouch C
Reload R
Menu Esc
Pause / Map Tab
Settings overlay F4
Console `

All bindings are remappable live via F4 → Input → Keybinds.


Runtime configuration

The recompiled binary reads downpour.toml from its working directory. The sample shipped with the release already has these defaults set:

# Chromatic-noise fix on the fast RTV path. Safe to leave enabled for Downpour.
# Details: docs/chromatic-noise-fix.md
skip_depth_color_7e3_aliasing_transfers = true

# Render path: "rtv" = fast HostRenderTargets, "rov" = slower correctness fallback
render_target_path_d3d12 = "rtv"

# Native 1080p
window_width = 1920
window_height = 1080
fullscreen = true
video_mode_width = 1920
video_mode_height = 1080

# Soft present-rate cap
d3d12_present_frame_limiter = true

# Keyboard + mouse mode (hot-reloadable via F4)
mnk_mode = true
# mnk_sensitivity = 1.0   # raise for faster mouse, lower for slower

# Path to your game files (relative to this folder)
game_data_root = "./assets"

[log.levels]
gpu = "info"

Tip

For internal supersampling (sharper at the cost of GPU time), open F4 → GPU and raise draw_resolution_scale_x / draw_resolution_scale_y to 2. That renders internally at 2160p and downscales to your output — similar to NVIDIA DSR or AMD VSR. Heavy on mid-range cards; leave at 1 for default 1080p.


Frequently asked questions

Is this an emulator?

No. An emulator runs the original Xbox 360 instructions on a virtual CPU at runtime. DownpourRecomp 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. Think of it as the game being "re-translated" once, not interpreted on every frame.

Why isn't the game executable included? Where do I get it?

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.

Can I unlock the frame rate above 30 FPS?

Not at runtime in this version. The 30 FPS cap is baked into the game's UE3 tick loop in the recompiled code. The community-known Xenia patch (xenia_patches.toml in this repo, "Unlock FPS") is a guest-memory byte patch — it works under Xenia because Xenia reads guest code on every frame, but in a static recomp the relevant instructions are already translated to native code, so writing bytes to that guest address does nothing.

True 60+ FPS support would require either (a) regenerating the recomp against a pre-patched XEX, or (b) hand-patching the corresponding native function. Neither is done in v0.1.1. The "Camera movement slows down over 60 FPS" warning from the Xenia patch description still applies to this game engine.

Does mouse and keyboard work?

Yes — Silent Hill: Downpour never had an official PC port, so this is the first time the game can be played with a mouse and keyboard. The ReXGlue SDK ships a mouse-to-right-stick mapping with smoothing (rewritten in v0.1.1 for clean continuous mouse motion). All controller buttons are remappable to keyboard keys via F4 → Input.

What about ultrawide, HDR, ray tracing?

The game is a 2012 UE3 title — no native HDR or RT support. Ultrawide is not automatically letterboxed; you'll get a stretched 16:9 image at 21:9 unless you cap your window/output to 16:9. Aspect-correct ultrawide support would require a UE3 FOV patch (similar to Skate 3 Recomp's approach) and is not implemented in v0.1.1.

Do achievements unlock?

No. There is no Xbox Live backend, so any code path that submits an achievement is stubbed out. Saves work; achievements don't.

Will the save files transfer to/from a real Xbox 360?

The save layout matches the Xbox 360 format, so in principle yes — but no one's verified a round-trip yet. If you do, please open an issue with the result.

Why does GitHub call this a "native PC port" and not an "emulator"?

Because the file you run, downpour.exe, is a normal Windows executable produced by Clang from C++ source code. There is no virtual CPU. The CPU instructions that used to live in the Xbox 360 binary have been translated to C++ at build time. That's what "static recompilation" means.

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 to downpour.exe (text logs, not too large).
  • Your downpour.toml so we know your configuration.
  • GPU model and driver version.

Do not attach any game files or binaries that link against game data.


Building from source

Click to expand — full build instructions

Requirements

  • Windows 10/11 x86-64 with up-to-date GPU drivers (D3D12 + DXIL/DXBC).
  • A discrete GPU. RTX 30-series or equivalent (≥ 6 GB VRAM) for 1080p; RTX 40-/50-series for headroom on 1440p / 2160p downscale.
  • Visual Studio 2022 (17.8+) with the "Desktop development with C++" workload, Windows 10 SDK, and CMake/Ninja components.
  • CMake ≥ 3.25 and Ninja ≥ 1.11.
  • LLVM/Clang-cl is used by ReXGlue for the recompiled translation units; install LLVM and put clang.exe / clang-cl.exe on PATH.
  • The ReXGlue SDK installed somewhere on disk.
  • A legal copy of Silent Hill: Downpour (title id 4B4E0823, hash 7A3D5809776EE6AB).

1. Build and install the ReXGlue SDK

DownpourRecomp consumes the SDK as an installed CMake package. One-time, ~10 minutes:

git clone https://github.com/rexglue/rexglue-sdk.git
cd rexglue-sdk
cmake --preset win-amd64-relwithdebinfo
cmake --build out/build/win-amd64 --config RelWithDebInfo --target install

The install prefix defaults to out/install/win-amd64/.

2. Provide the game executable

DownpourRecomp/
  assets/
    default.xex          ← your XEX, not in this repo

.gitignore blocks accidental commits of *.xex, *.iso, *.god, *.dlc, etc.

3. Run codegen

rexglue codegen --manifest downpour_manifest.toml

Translates the PPC code into C++ under generated/default/ (~280 MB, excluded from git).

4. Configure and build

cmake --preset win-amd64-relwithdebinfo \
      -DREXGLUE_DIR="<path-to-rexglue-install>/lib/cmake/rexglue"
cmake --build out/build/win-amd64 --config RelWithDebInfo --target downpour

Produces downpour.exe. Copy rexruntimerd.dll from the SDK install next to it.

5. Provide the runtime game data

The runtime needs the full game file tree (the XEX alone is not enough). Point at it via game_data_root in downpour.toml or --game_data_root CLI.


Technical deep-dives

  • 📜 Chromatic-noise fix — full RenderDoc Pixel History backward trace from the noisy swapchain pixel to the divergent depth → 7e3 ownership transfer (EID 9506), the narrow one-direction cvar that resolves it, and a "what NOT to retry" dead-ends list.

Project structure

This repository contains:

  • Recompiled game codegen output: function tables, vtable address fix-ups, indirect-call targets discovered at runtime (downpour_config.toml).
  • A thin DownpourApp shell that overrides ReXApp hooks for Downpour-specific behaviour.
  • xenia_patches.toml — optional game patches (Unlock FPS, force 16x AF, disable FXAA, show FPS counter — reference-only in this port; see FAQ).

Acknowledgements


Legal

This repository contains no Konami or Vatra Games assets, no game code, no game data, no game audio. It is original code (build configuration, codegen metadata, application shell) that targets a separately-supplied legally-owned copy of Silent Hill: Downpour for personal use under the user's own jurisdiction's fair-use / private-copy provisions.

Do not distribute the game executable, game data, or any binary that links against game data. Pull requests that include game content will be rejected.

Code under this repository is released under the BSD 3-Clause license — see LICENSE.

The license applies only to the host-side source under src/, build scripts, CMake files, TOML configs, and documentation. The recompiled game code produced at build time (generated/default/) is derived from the copyrighted Silent Hill: Downpour binary and is not covered by this license.


Related projects by the same author: DPRecomp — Deadly Premonition (PC port)

About

Silent Hill: Downpour native PC port via static recompilation of the Xbox 360 binary. Plays in 1080p with mouse + keyboard, no emulator.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors