github Mrsuss60/bloodborne_pc_windows_port v0.8.0
v0.8.0_bloodborne_pc_windows_port

3 hours ago

Bloodborne PC Windows Port v0.8.0

This release introduces upstream GPU command processor synchronization and packet pacing, modernizes the SPIR-V shader recompiler with fast math optimizations, brings Garbage Collector Part 2 verification (shadPS4 Issue #184), overhauls the audio mixer to eliminate CPU thread starvation and clipping, restores 1:1 camera physics during high-framerate sprinting, adds configurable async pipeline compilation, and automates title screen startup into offline play.


Improvements

  • Vulkan Buffer Device Address & Memory Model Groundwork (624ac74)

    • Integrated dense VRAM buffer mirrors and Vulkan Buffer Device Address (BDA) in-shader page table mappings.
    • Added layer memory management and residency models in preparation for direct host-memory imports and low-overhead allocation tracking.
  • Vulkan Shader Caching, Ring Deduplication & Performance (dcdb834)

    • Ported performance optimizations from upstream author deadinside (0fc2921):
      • Replaced repetitive VirtualQuery system calls in win32_memory with fast internal view range lookups.
      • Added constant ring buffer deduplication in the Vulkan rasterizer using XXH3 64-bit hashing and dynamic VRAM-budgeted ring sizing.
      • Integrated shader recipe import and background pre-compilation support (shader_recipes.bin) for hitch-free pipeline warmup.
      • Added compute copy shader HLE bypass to skip identical memory blocks during GPU transfers.
      • Enabled NVAPI profile initialization to guarantee high-performance GPU power states under Windows.
      • Polished the in-game shader compilation overlay with a smooth animated spinner and synchronized it with the F11 HUD toggle.
  • Audio Pipeline Overhaul & Low-Spec CPU Stabilization (c3f5589)

    • Stripped aggressive thread priority overrides that previously caused CPU core starvation and audio thread stalls on 4-core and 6-core processors.
    • Replaced synthetic gain boosting and limiter saturation with linear, uncolored volume calculations, preserving dynamic range without clipping.
    • Increased the audio queue cushion threshold to reliably cover native WASAPI device buffer periods.
    • Streamlined output sample pacing and removed obsolete Win32 timer resolution calls.
  • Command Processor Sync, Packet Pacing & Texture Cache Modernization (6b2cc0e)

    • Ported core synchronization, PM4 loop safety, and subresource handling from upstream shadPS4:
      • Validated ce_task.handle before checking .done() and guarded against counter underflows in WaitOnDeCounterDiff (e6c79a5).
      • Pre-read packet lengths before execution across graphics and Constant Engine (CE) command loops to eliminate ring buffer overwrite races (7ea677e).
      • Added proper handling for PM4 Type 2 padding packets and applied atomic acquire semantics to PM4CmdRewind::Valid() (c64a1e0).
      • Fixed string formatting names for NumberFormat::Ubscaled (e0845a1).
      • Implemented SubresourceExtent::Contains() for strict per-dimension mip-level and array-layer matching (ca36c7e).
      • Guarded ExpandImage copy operations with HasGpuValidData() to prevent overwriting CPU-dirty modifications (699009c).
      • Tracked parent images immediately inside ResolveOverlap to safeguard subresource slices (d3ff0e0).
      • Constrained attachment-less render pass bounds with GetCombinedScissor() to prevent oversized framebuffers (0cd6e4f).
      • Verified complete mip-chain transfer handling in CopyImageWithBuffer (b3d46e9).
  • Shader Recompiler Modernization & Fast Shader Math (b62051d)

    • Ported compiler correctness and control flow reconstructions from upstream shadPS4:
      • Excluded GetUserData from Phi folding to protect push constant and buffer table register inputs from corruption (524be7c).
      • Stabilized Phi node deduplication order for deterministic SPIR-V output and maximum pipeline cache hit rates (603cff4).
      • Lowered undefined 64-bit integer values to OpUndef in the SPIR-V emitter (ab1dd38).
      • Lowered S_SLEEP instructions as benign scheduling hints instead of aborting shader translation (a808e76).
      • Corrected operand metadata for BUFFER_WBINVL1 / BUFFER_WBINVL1_SC and mapped them to device memory barriers (6752d8b).
      • Accounted for singleton workgroup dimensions during compute LDS barrier analysis (08225c2).
      • Preserved CFG fallthrough edges and halted lookahead on terminators to fix structured control-flow reconstruction (78bedfa).
      • Handled HW_ID.SE_ID hardware register reads in S_GETREG_B32 as virtual engine zero (f0ea8eb).
      • Added GsOp::EmitCut support in S_SENDMSG with missing stream index fields (de27898).
      • Added Fast Shader Math support (BB_FAST_SHADER_MATH=1) applying RelaxedPrecision decorators to floating-point operations, unlocking GPU driver FMA vectorization and throughput gains (b61f6c5).
  • Architectural PM4 Buffer Chaining, CE FIFO & Garbage Collector Part 2 (d81d63b)

    • Ported advanced command packet features and memory reclamation from upstream shadPS4:
      • Implemented IT_STRMOUT_BUFFER_UPDATE streamout offset tracking and handled IT_GET_LOD_STATS across graphics and compute queues (b6f0c58, 9d3524f).
      • Followed chained indirect command buffers (INDIRECT_BUFFER with chain bit) by replacing the current buffer span rather than nesting tasks, avoiding call-depth recursion (1b9d159).
      • Supported stencil-only depth targets and decoupled stencil slice dimensions from color/depth aspect sizing logic (626f3ac).
      • Implemented global CE task FIFO scheduling across graphics submissions with scheduler-yielding waits (f9d0748).
      • Integrated Garbage Collector Part 2 download verification (HasGpuValidData(), CanBeDownloaded()) to safely reclaim host memory without desyncing guest memory (e6faa2e, 0918faa, eedf851, shadPS4 Issue #184).
      • Built the deferred maybe_download verification queue using native Win32 pointer hashing (XXH3_64bits).
      • Added edge-page protection (ReadEdgeImagePages) and edge modification invalidation (MarkDirtyIfEdgesModified).
      • Retained custom idle-seconds thresholds (BB_GC_IDLE_SECONDS), depth target fast-free paths, and submission rate limiters.
  • Async Pipeline Compilation Controls & Launcher UI Reorganization (d81d63b)

    • Added direct configuration for asynchronous Vulkan pipeline compilation (BB_ASYNC_PIPELINES) via a dedicated dropdown in the launcher under GPU Adapter (Auto, Off, 1, 2, 4, 8 worker threads).
    • Reorganized and unified dropdown sizing across the Display & Graphics tab, placing Live Resolution neatly beneath Upscaler Preset.
  • Automated Title Screen Offline Dialog Bypass (d81d63b)

    • Integrated the "Skip Online/Offline Choice" patch into patches/Bloodborne.xml (detouring function 0x01f39030 to offline handler 0x1b49cd0).
    • Added hardcoded code toggle in scripts/patches.py (SKIP_NETWORK_CHOICE_DEFAULT = True), launching straight to the main menu without requiring manual input. Can be toggled off in code or overridden via BB_SKIP_NETWORK_CHOICE=0 / bbport.ini.

Fixes

  • Live FPS 240 Ceiling & Static XML Preset Lock Fix (83a168e)

    • Uncapped the guest frame pacer ceiling from 60 FPS to 240 FPS so 90 FPS, 120 FPS, and Uncapped targets exceed 60 FPS under the dynamic clock hook.
    • Fixed an issue where disabling Live FPS mode set BB_FPS_PATCH=0, which mistakenly forced static XML framerate presets back down to 30 FPS.
  • Sprint Camera Lag & Third-Person Camera Pull-Back (dcdb834)

    • Fixed delayed third-person camera follow and excessive camera pull-back distance during sprinting under the dynamic clock hook.
    • Removed 41 artificial camera damping overrides from Bloodborne.xml, restoring authentic 1:1 camera physics across all framerates.
  • Audio Distortion, Crackling & Limiter Clipping (c3f5589)

    • Eliminated audio stuttering and buffer under-runs by removing thread priority hogging that starved low-spec CPU cores.
    • Removed harsh digital limiter saturation, preventing clipping distortion during high-volume sound effects and boss encounters.
  • GPU Memory Leak & Edge-Page Corruption (shadPS4 Issue #184, d81d63b)

    • Resolved memory reclamation stalls and edge-page modification bugs by validating GPU download eligibility and tracking boundary pages across texture allocations.

Credits & Upstream References

Thanks to the developers whose work was used in this release:


Requirements

  • OS: Windows 10 or Windows 11 (64-bit)
  • GPU: Vulkan 1.3 capable graphics card (NVIDIA GTX 10-series+, AMD RX 400-series+, Intel Arc)
  • CPU: 64-bit x86 processor supporting AVX 1.0 or SSE4.2 (CPUs without BMI1 are supported)
  • Game Dump: Decrypted Bloodborne PS4 dump (CUSA03173, CUSA00207, CUSA03023, CUSA00900, version 1.09) with eboot.bin and sce_module/libc.prx

Installation

  1. Extract the release archive to a folder.
  2. Run BloodborneLauncher.exe.
  3. Confirm your decrypted 1.09 eboot.bin path on the Home dashboard.
  4. Select your GPU Adapter, game language, graphics settings, and controls.
  5. Click Launch Bloodborne.

Updating from v0.7.2

  1. Copy the USER folder from \bloodborne_pc_windows_port_v0.7.2_release\user to \bloodborne_pc_windows_port_v0.8.0_release

In-Game Hotkeys

  • F1: Lock or unlock the mouse cursor.
  • F4: Toggle the in-game cheat/tweaks menu.
  • Insert or L3 + R3: Open the in-game settings menu.
  • F11: Show or hide the FPS and performance display.

Troubleshooting

  • If the game freezes on startup or crashes when transitioning between areas, set prep_workers=1 or prep_workers=2 in the launcher or bbport.ini. Higher worker counts can overload 4-core and 6-core processors.
  • If you experience shader compilation stuttering during initial gameplay, ensure "Async Pipelines" is set to Auto or 2-4 threads in the launcher.
  • Avoid enabling conflicting frame rate mods at the same time. If you run into issues, try launching with only "Skip Intro" enabled first.
  • If you notice visual glitches or crashes after an update, delete the cache folder in user/cache/CUSA03173/ (or your regional CUSA folder) so the game can rebuild shaders cleanly.

Note

  • When reporting a crash, please click "Copy Diagnostics" on the launcher's Home tab and attach the latest bblauncher.log, and crash log from the out folder.

Downloads v0.8.0

Discord Server

Join the Discord for updates, bug reports, and discussions about the Bloodborne PC Windows Port:
https://discord.gg/gTvrZZ75G

Don't miss a new bloodborne_pc_windows_port release

NewReleases is sending notifications on new releases.