7 October 2026: a new direction, our own runtime
Paleblood is a decompilation with its own runtime. The borrowed runtimes it used so far are being removed, and the game will not run on Paleblood until our own runtime is far enough along.
What changes
Until now, Paleblood's rewritten functions were tried in the game on a borrowed runtime: a fork of bbport, which carries graphics code taken from the shadPS4 emulator. That got the first functions verified quickly, but it tied the project to code that isn't ours. From today Paleblood builds its own runtime instead, and bbport and shadPS4 are being removed from the project entirely. They stay in the credits as part of its history.
The runtime is written clean-room: from public documentation, our own reverse engineering and what we observe, never from another emulator's code. Its first piece is done. Paleblood now has its own loader, which maps the game's executable exactly as the old runtime prepared it, byte for byte, and the verification harness already runs on it. Every function verified so far was checked again on the new loader, case for case, and gives the same results as on the old runtime.
What it means for playing
The game won't run on Paleblood for a while. Running it needs the runtime's whole roadmap: threads and memory, files, input, audio, video out, and the graphics, the largest part. The Runtime page lists the roadmap and shows how far the game's executable gets on our runtime today: its own C library starts up and stops at the first system function we haven't written yet.
Meanwhile the decompilation goes on as before: functions are rewritten and proved against the original in the verification harness, on inputs recorded earlier and on generated edge cases.
A readability gate
After a critique of the rewritten code, readability becomes a hard requirement rather than a later clean-up; the gate went in the same evening. A function will only reach the main branch when it is both verified and readable: named structures instead of raw offsets, named calls instead of addresses, named constants, and no test plumbing inside the game's code. The functions rewritten so far are being brought up to that standard first, each one checked again and reviewed independently.