PS4-BO3-Customs: How a PS4 Mod Turns Black Ops III Into Its Own PC Clone
A custom map converter, runtime hook layer, and Lua spoofing stack work together to load Steam Workshop-era content on jailbroken consoles by borrowing the game’s hidden PC pathways.
- PS4-BO3-Customs is clever because it unlocks hidden PC-only behavior inside Black Ops III instead of rebuilding custom maps from scratch.
- The repo’s real invention is a paired system: a C# porter translates content, while a C++ SPRX layer rewrites runtime behavior safely enough for a console game.
- The most important hack is platform impersonation, where Lua briefly flips `CoD.isPC` so the game exposes its own dormant custom-maps UI.
- The project sits between translation and masquerade, which makes it different from both PC mod tools and ordinary console homebrew.
The trick is not conversion. It is impersonation.
The obvious story is that this repo converts PC custom maps for PS4. The better story is that it convinces Black Ops III to behave like its PC self for a moment, just long enough to reveal UI and loading paths the console build normally hides.
That is why this project feels more like negotiation than porting. It does not replace the game’s systems. It slips into them, flips the right switches, and lets the existing code do the heavy lifting.
Go crazy... BO3 PC->PS4 FastFile converter + SPRX for loading customs. https://t.co/aYVTcqUlis
That announcement line is almost too clean. It names the two halves of the project in one breath: a FastFile converter and an SPRX plugin. One changes the files. The other changes what the game believes it can do.
What PS4-BO3-Customs actually is
The repository splits into two jobs. Tool/ is the C# porter that reshapes PC-side assets. SPRX/ is the PS4 runtime plugin that hooks the game, redirects file reads, injects Lua, and keeps the whole illusion alive.
Tool/ -> C# porter
SPRX/ -> C++ runtime plugin
PS4 HEN -> injected target environment
BO3 PC assets -> converted FastFiles and image data -> console-readable content
The workflow is simple to describe and tricky to execute. PC Workshop-era content gets converted, copied onto the console, then loaded through hooks that make the game accept it as if it were native.
The hidden PC menu inside a console game
The heart of the repo is t7_lua.cpp. It injects Lua into the HKS VM and temporarily sets CoD.isPC = true, which nudges the UI into rendering PC-only custom-map logic instead of the stripped-down console flow.
That matters because the project is not merely faking assets. It is faking identity. Once the game thinks it is on PC, it exposes menu branches and map selection behavior that were already sitting in the codebase, waiting behind a platform check.
The interactive diagram here should make one thing obvious: the mod succeeds in stages. First it changes state. Then the UI opens. Then the asset path follows.
Why the runtime layer has to be so careful
The SPRX side is the part that keeps the whole thing from crashing. Detour.cpp and Detour.hpp implement the hook engine, using HDE64 instruction decoding so jumps do not split a machine instruction in half.
That detail sounds fussy because it is. But on a console, fussy is survival. A bad overwrite means a broken function prologue, a failed relative jump, or a kernel panic when the game touches memory it should not have touched.
| Hook choice | What it does | Why it matters | Risk |
|---|---|---|---|
| 5-byte relative jump | Redirects execution with a compact E9 jump | Fits when the target is in range | Breaks if the detour is too far away |
| 14-byte absolute jump | Uses a longer absolute transfer | Works when relative range is not enough | Consumes more prologue space |
| Near allocation | Places hook code close to the target | Keeps relative jumps valid | Requires searching for writable memory |
The runtime code also patches signatures, redirects file opens, and checks whether memory is readable before probing it. That is the discipline underneath the stunt.
The porter does the ugly translation work
The C# porter in Tool/ does the part nobody screenshots. It reshapes PC FastFiles, handles XPaks, and repacks map data into structures the PS4 build can actually consume.
That translation layer is why the runtime tricks are sustainable. Without it, the game might open the menu, but it would have nothing valid to load once the selection screen appears.
PC Workshop map
-> porter reshapes assets
-> PS4-readable package layout
-> runtime hooks expose the map
-> custom level loads on console
This is the least glamorous part of the repo and the most necessary. The spoof only works if the content underneath is real.
Why this is different from normal BO3 modding
On PC, Steam Workshop and tools like T7Patch or BOIII Client live inside a native modding ecosystem. They make BO3 safer or easier to use, but they do not need to translate content across platforms.
PS4-BO3-Customs is different. It is both a translation layer and a runtime impersonator, which puts it in a niche all its own.
| Approach | Input source | Where it runs | What it changes | Why it matters | Limitation |
|---|---|---|---|---|---|
| Steam Workshop | PC workshop content | Windows PC | Native map installation and loading | Most seamless path for custom maps | No console access |
| PS4-BO3-Customs | PC custom map assets | Jailbroken PS4 or PS5 | Asset conversion plus runtime UI and file I/O spoofing | Brings PC-era custom maps to console | Requires technical setup and base game files |
| T7Patch / BOIII Client | PC game files | Windows PC | Security, stability, and client behavior | Improves PC modding experience | Does not solve console portability |
That is the headline distinction. The project does not merely install content elsewhere. It rebuilds the conditions that let the content exist.
What this project says about modern game binaries
A lot of platform-specific code is not truly platform-specific. It is shared code behind a guardrail, and if you can find the seam, you can sometimes surface behavior that the official UI never meant to show.
PS4-BO3-Customs is a strong example of that idea. It shows how modding can be less about brute force and more about persuasion: change the state, clear the guardrails, and let the binary reveal its own hidden pathways.