Case study
Paleblood: a functional decompilation of Bloodborne with its own runtime
Rewrites code from Bloodborne’s PS4 executable (CUSA03173 with update 1.09) as readable C++, one function at a time, aiming at a native PC source port on a clean-room runtime of its own. It is a functional rather than matching decompilation: each replacement is hooked in, compared with the original machine code on recorded and generated inputs, and independently reviewed. Work is at an early stage: README reports 21 of 157,757 functions verified, and the game does not yet run on Paleblood’s own runtime.
Requirements & limits
- Reviewed at the 2026-10-19 head, 12 days after the first commit. The generated status reports 31 functions replaced and 21 verified out of a 157,757-function Ghidra export; the project’s loader maps the executable, and its boot stops at the first unimplemented system call with 247 of 686 system imports implemented. Replacements cover parts of the frame loop and the event, kernel, input, AI, character, physics and render layers, and BB_TARGET_FPS reproduces three community frame-rate patches in code.
- Requires Bloodborne CUSA03173 (EU) with the 1.09 update, dumped from the user’s own PS4; the executables converted from it must match target.sha256. README says the repository holds no game code, assets, binaries, decompiler output or extracted data, a check rejects game data in the pre-commit hook and CI, and the project does not provide or point to game files, pkgs, firmware, keys or decryption tools.
- Development is documented on Linux with CMake 3.20+ and CTest, plus Ghidra 12.0.3 with the GhidraOrbis loader for analysis. Full game runs still use an external scaffold: third_party/bbport, the project’s fork of the GPL-2.0-or-later bloodborne_pc port, which runs the original executable natively with shadPS4-derived Vulkan rendering. CI does not fetch that submodule.
- README says tools/verify.py runs the original code and a replacement side by side, comparing return values, registers, every byte written and every library call, and that deliberately wrong versions must fail; options that replace a community patch are checked against the original with that patch applied. CI builds with GCC and Clang and runs unit, harness and policy checks without game data, so verification against the game is contributor-run and project-reported; this collection ran nothing.
- GPL-2.0-or-later per LICENSE; the bbport scaffold has its own GPL-2.0-or-later notice, which README says grants no right in the game or its code. README calls Paleblood a fan project unaffiliated with Sony Interactive Entertainment or FromSoftware and describes the runtime as clean-room. CONTRIBUTING.md allows disclosed, verified AI-assisted work, and recent commits carry Co-Authored-By trailers naming Claude Opus 5.5 and Codex; no REA use is documented.
About this entry
- Type
- Case study
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Targets
- Game
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · Yharnam-Hunters/Paleblood · Revision 1d418eb
- STATUS.md GitHub · Yharnam-Hunters/Paleblood · Revision 1d418eb
- CONTRIBUTING.md GitHub · Yharnam-Hunters/Paleblood · Revision 1d418eb
- docs/VERIFY.md GitHub · Yharnam-Hunters/Paleblood · Revision 1d418eb
- docs/ONBOARDING.md GitHub · Yharnam-Hunters/Paleblood · Revision 1d418eb
- docs/GHIDRA.md GitHub · Yharnam-Hunters/Paleblood · Revision 1d418eb
- target.sha256 GitHub · Yharnam-Hunters/Paleblood · Revision 1d418eb
- third_party/README.md GitHub · Yharnam-Hunters/Paleblood · Revision 1d418eb
- .github/workflows/ci.yml GitHub · Yharnam-Hunters/Paleblood · Revision 1d418eb
- LICENSE GitHub · Yharnam-Hunters/Paleblood · Revision 1d418eb
- README.md GitHub · Yharnam-Hunters/bbport · Revision accdce3
More in Games
- Pikmin 2: a fully matched GameCube decompilation across five releases · Case study
- Gran Turismo 4: an agent-assisted PS2 engine matching decompilation · Case study
- Mario Kart Wii: an in-progress matching decompilation of the PAL release · Case study
- Pinyon Shift: a ShiftGlue static recompilation of Forza Horizon for PC · Case study
- Touhou 7: reconstructing Perfect Cherry Blossom 1.00b source · Case study
- DKC1Recomp: static recompilation of Donkey Kong Country · Case study