Repository navigation
Upstream
Pablo Souza edited this page Oct 22, 2026
·
6 revisions
This runtime started as a fork of bbport by deadinside28, the native Linux port of Bloodborne, and keeps taking its work. bbport's own documentation (release notes, design notes, mostly in Russian, about the Linux version) is in its repository; this page says what we took from each release and from other forks.
| Release | How | What |
|---|---|---|
Up to 0.3; 0.4 (524f829), 0.5 (5c397fb) |
The fork's starting point; then merged with history | The loader, the PS4 runtime, the renderer's extensions (parallel draw preparation, the two-stage draw pipeline, copy hoisting, memos), temporal upscaling (FSR 3.1, FSR 4), motion vectors, the community patches, mods |
0.51 (3c57da4) |
Merged with history (242575c) |
Buffer and texture cache fixes, mouse look, the online module (not built on macOS: offline play) |
0.6-pre1 (72e5c8c), 0.6 (8185b88) |
Ported by hand: 0.6 replaced shadPS4's renderer with bbport's own, and its hook and menu code calls that renderer, so a merge does not fit | See below |
The compatibility level imported from bbport is 0.51, plus the 0.6 items below.
| Item | State |
|---|---|
| Push constants written after the render pass begins (single frames shifted by half the screen); draws without a pixel shader rebuild their own fragment info; cached geometry-stage pipelines keep their fetch shader | Ported |
| The present waits for its frame at every stage (single black or grey frames) | Ported |
| GPU-written images keep their mip hashes from the first upload (an empty character-creator preview, #178) | Ported |
| Decoder and format asserts during draw preparation (#144, #165, #166) | Already here (stale formats logged and skipped) |
| Draw preparation on a quarter of the hardware threads on 12+ thread CPUs | Not needed: ours uses half |
Blur-kernel assertion 0xa0020007 ignored; GX per-frame command heaps of 1 MiB |
Ported (the heap as a patch) |
| Frame rate through hooks, live limit, F3 for 30 FPS | Ported (bbport_frame_rate.cpp) |
Game-code hooks (InstallGuestCodeHook) |
Ported as an interface; our implementation runs its stubs in bbcpu |
| Laurence's cinematic above 30 FPS (job slots, 512 MiB render cache) | Ported (bbport_game_hooks.cpp) |
| Effects switched live (with bloom, a new setting), SSAO only where the game has its target, SSR at start | Ported |
| Aspect ratios through hooks (camera, HUD, markers, UI viewport), the UI edge stretch and its 21:9 streak fix, the blur-kernel clamp | Ported (16:9 stays the default: Auto would change a player's output by itself) |
Keyboard and mouse: the Dark Souls III layout with chords, the movement-key ramp, short taps, native mouse look, the menu pointer, the port's cursor, the mouse-capture fixes (runtime_pad.c, window.cpp merged from 0.6) |
Ported |
| Button prompts for the device in use | Planned |
| Online on shadPS4 0.20's network code (Seamless Hunt with BBSC co-op, The Hunter's Dream) | Planned |
| The new memory model, NVIDIA/Intel/VRAM fixes, FSR 4.1.1, Steam Deck, AppImage | Not applicable (unified memory, Apple GPUs, macOS) |
The plan with every item is the app's roadmap.
| Source | Taken |
|---|---|
Wooloomooloo2/bloodborne_mac_port 0b50589, 78b59f5 (with Huax-1839/bloodborne-macos) |
The Metal backend: SPIR-V to MSL, shader rewrites, pipeline-state cache, format tables, the Vulkan-to-Metal command layer and frame encoder (Native renderer); 4565225: instanced tessellated draws one instance at a time |
| Supermedo/bloodborne_pc | Trophy event persistence (79d44f0); motion-vector pipelines skipped at cache preload (f33e7617); stable slot storage for images (3a7cde8); texture upload baselines, opt-in (7e8bd6c1, 136a72d0); robustness fixes for stale texture formats, garbage PM4 headers, null vertex-buffer tables and early flip interrupts (3e3b760, c07f0ff, 2c4ddeb, 76f5b5f) |
| bmy/bbport-mac | The Retina window; whole-image hashing of possibly changed textures |
MaSieS4Fun/ARM_bloodborne_pc 3d56243, ducvd89/Bloodborne-Android bf1e6cf
|
The portable shader-resource-table walker for non-x86 hosts; delayed condition-variable retirement; NV12 frame invalidation |
Skipped: the Windows fork's stretched-polygon fixes (bugs of its newer shadPS4 base),
VK_EXT_device_fault (MoltenVK lacks it), VRAM budget changes (unified memory). Authors and
licenses: Credits.
-
git fetch upstream(remotehttps://github.com/deadinside28/bloodborne_pc); bbport releases are squashed commits. - Merge or port the runtime, patches, scripts and game settings. Review renderer changes
(
renderer_vulkan/,buffer_cache/,texture_cache/,shader_recompiler/and their 0.6 equivalents) one by one and port the useful ones into the shared core or the Vulkan backend. - Check what assumes Linux or native x86: no
MAP_FIXED_NOREPLACE,memfd_create,fallocateorgregson macOS (usebb_shared_memory,BB_UC_*, the runtime's low memory); the image is not at 0x800000000 (useBB_IMAGE_BASE); host code calls game functions throughruntime_guest_call; x86 stubs run in bbcpu only from guest code ranges; libc++ needs complete types where GCC does not. - Build, run copied-save games, credit the work (commit message, Credits, a code comment, the wiki) and update this page.