# 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.

- Type: Case study
- Targets: Game
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-10-19
- Added to the catalog: 2026-10-28
- Original resource: <https://github.com/Yharnam-Hunters/Paleblood>
- Primary source: <https://github.com/Yharnam-Hunters/Paleblood/blob/1d418eba692745d8fc0a7d77a04d1bca56badab8/README.md>
- Catalog page: <https://awesomerea.org/resources/paleblood-bloodborne-functional-decomp-case/>
- Record JSON: <https://awesomerea.org/resources/paleblood-bloodborne-functional-decomp-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/paleblood-bloodborne-functional-decomp-case/index.md)

## 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.
- 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.

## Primary sources

1. <https://github.com/Yharnam-Hunters/Paleblood/blob/1d418eba692745d8fc0a7d77a04d1bca56badab8/README.md>
2. <https://github.com/Yharnam-Hunters/Paleblood/blob/1d418eba692745d8fc0a7d77a04d1bca56badab8/STATUS.md>
3. <https://github.com/Yharnam-Hunters/Paleblood/blob/1d418eba692745d8fc0a7d77a04d1bca56badab8/CONTRIBUTING.md>
4. <https://github.com/Yharnam-Hunters/Paleblood/blob/1d418eba692745d8fc0a7d77a04d1bca56badab8/docs/VERIFY.md>
5. <https://github.com/Yharnam-Hunters/Paleblood/blob/1d418eba692745d8fc0a7d77a04d1bca56badab8/docs/ONBOARDING.md>
6. <https://github.com/Yharnam-Hunters/Paleblood/blob/1d418eba692745d8fc0a7d77a04d1bca56badab8/docs/GHIDRA.md>
7. <https://github.com/Yharnam-Hunters/Paleblood/blob/1d418eba692745d8fc0a7d77a04d1bca56badab8/target.sha256>
8. <https://github.com/Yharnam-Hunters/Paleblood/blob/1d418eba692745d8fc0a7d77a04d1bca56badab8/third_party/README.md>
9. <https://github.com/Yharnam-Hunters/Paleblood/blob/1d418eba692745d8fc0a7d77a04d1bca56badab8/.github/workflows/ci.yml>
10. <https://github.com/Yharnam-Hunters/Paleblood/blob/1d418eba692745d8fc0a7d77a04d1bca56badab8/LICENSE>
11. <https://github.com/Yharnam-Hunters/bbport/blob/accdce33b89d45fa3c7f5066e69362a5ec215c1a/README.md>

## More in Games

- [R.E.L.I.V.E.: an Oddworld Abe’s Oddysee and Abe’s Exoddus engine reimplementation](https://awesomerea.org/resources/relive-oddworld-abe-engine-case/index.md) · Case study
- [re-plants-vs-zombies: decompiling and modernizing Plants vs. Zombies GOTY](https://awesomerea.org/resources/re-plants-vs-zombies-decomp-case/index.md) · Case study
- [REDRIVER2: reconstructing Driver 2 through a PlayStation compatibility layer](https://awesomerea.org/resources/redriver2-case/index.md) · Case study
- [RSDKv3 Decompilation: Sonic CD (2011) on a reconstructed Retro Engine v3](https://awesomerea.org/resources/rsdkv3-sonic-cd-decomp-case/index.md) · Case study
- [RSDKv4 Decompilation: Retro Engine v4 and the Sonic 1 & 2 (2013) menus](https://awesomerea.org/resources/rsdkv4-sonic-1-2-decomp-case/index.md) · Case study
- [RSDKv5 Decompilation: reconstructing Retro Engine v5 and v5U](https://awesomerea.org/resources/rsdkv5-engine-decomp-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
