github LittleBitUA/DownpourRecomp v1.1.7
v1.1.7 — everything since v1.1.6, before something bigger

2 hours ago

Not a final release — and that's the point

v1.1.7 is a compilation of every update that has been accumulating on the dev machine since v1.1.6, shipped as one package before something bigger that is already in the works. Consider it the deck being cleared.

💿 First-run disc-image installer (community contribution)

A fresh install no longer needs pre-extracted game files. If the game data is missing on first launch, a new wizard asks for your own Silent Hill: Downpour ISO (Redump / XGD3 / raw dump layouts auto-detected), extracts the game partition itself, then chains into the Title Update installer — which can fetch TU1 automatically. Extraction is resumable: interrupt it, relaunch, it continues. Headless installs: DOWNPOUR_INSTALL_ISO / DOWNPOUR_INSTALL_TU env variables.

Contributed by @Alexbeav (PR #27) — the project's first external code contribution, integrated with all review feedback addressed. Thank you!

🧠 No more AVX2 requirement (issue #11)

The runtime shipped with -march=x86-64-v3, which hard-requires AVX2 — CPUs older than Haswell (2013) / Excavator (2015) died with 0xc0000142 before the first log line. The build now targets baseline x86-64 + SSSE3. FX-8300-class machines boot the game.

🖱️ Mouse look rebuilt on raw input — direct displacement mapping

The raw-input path was reimplemented from scratch in the runtime (WM_INPUT, no Windows pointer ballistics), and after live testing the whole stick-emulation filter chain was taken out of it: no smoothing lag, no decay drift after the hand stops, and no ramp remap silently discarding small motions below the game's stick deadzone (the "mouse feels dead and slow" reports were exactly this). Motion this frame = camera turn this frame. Cursor capture also moved off the guest input-poll thread.

Important

Upgrading from v1.1.x? The mapping semantics changed: open Settings → Mouse and set Raw Input Scale = 0.6, Stick Scale = 800 (fresh installs get these defaults automatically). Your old values will feel slow under the new direct mapping.

Honest ceiling: the game reads a controller stick, so a fully-deflected stick remains the fastest possible turn. The mouse now reaches that ceiling instantly; raising the ceiling itself needs a camera-speed patch in the game code — on the roadmap.

🔧 Nine correctness fixes ported from upstream ReXGlue v0.10

Hand-ported (the fork can't rebase — upstream rewrote history): occlusion-query end detection (the game could spin waiting on a result that never "finished"), GPU page-state coherency (the stale-flags class that makes geometry invisible), APC delivery through a trap frame + cr2-cr4/FPSCR preserved across fiber switches (silent guest-register corruption), the audio-stretch timer-resolution fix, correct 7e3 HDR clear decode, thread-context init (a memset wiped PPCContext defaults), faster file opens (streaming hitches), and crash diagnostics (guest address + thread logged on unhandled access violations, arena bases logged at boot).

🔊 Audio mix fixes

  • The 5.1→stereo fold no longer discards the LFE channel — bass and thunder are back in stereo/headphone mixes. Proper ITU-R BS.775 weights, master gain, clamping; the scalar path also had its rear channels swapped.
  • One-shot SFX crunch root-caused: the decoder reset called avcodec_flush_buffers, which is a no-op for the XMA codec — the previous sound's MDCT tail leaked into the next sound. The reset now forces a codec reopen, which actually discards the history.
  • Clean audio-worker shutdown.

🏆 Achievements — press F5

Achievement support with unlock toasts ships in the runtime (thanks to the upstream SDK community). Press F5 in-game for the list and your progress. Tracked locally, persists across sessions — no Xbox Live, nothing leaves your machine.

🧹 Housekeeping

Log spam eliminated (per-frame diagnostics gated behind opt-in cvars, VFS negative lookups demoted to debug), the F4 overlay no longer lists dead experimental cvars, the retired native-render experiment left the build entirely (−22,000 lines), and the non-functional DoF-scale scaffolding was removed rather than shipped broken.

What this does NOT include (yet)

  • DoF disable — still open; the previous approach was confirmed to write FName metadata instead of actual blur values.
  • In-game audio volume sliders — still queued.
  • XMA loop-wrap fix (looped ambience silences its last 192 samples per loop) — the upstream fix replaces the decoder output stage; ours is heavily customized, so it needs a dedicated session with listening tests.
  • The bigger thing this release clears the deck for. 🙂

Auto-update

Already on v1.1.x? Launch PlayDownpour.exe, click the pill banner. Your saves and settings are preserved, with the pre-update backup zip in %TEMP% as the safety net. Then do the one-time mouse migration above.

Warning

One-time manual step when auto-updating from v1.1.6 or older: the v1.1.7 runtime imports a new file, amd_fidelityfx_dx12drel.dll (FidelityFX / FSR3 backend), which ships in the release zip — but the OLD updater's copy list doesn't know about it. If the game complains that amd_fidelityfx_dx12drel.dll was not found after the update, open the release zip and copy that one file next to downpour.exe. Done — updaters from v1.1.7 onward carry it automatically.

🤖 Generated with Claude Code

Don't miss a new DownpourRecomp release

NewReleases is sending notifications on new releases.