Unleashed Recompiled is not an emulator. Instead of simulating the Xbox 360 hardware at runtime, it uses static recompilation to convert the game’s original binary code into standard C++ and HLSL ahead of time. The translated code is then compiled like any other native program, producing an executable that runs directly on the host CPU and GPU with no emulation overhead.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/hedge-dev/UnleashedRecomp/llms.txt
Use this file to discover all available pages before exploring further.
Static vs Dynamic Recompilation
Traditional emulators use dynamic recompilation (JIT), translating guest instructions to host instructions at runtime, basic-block by basic-block, as the program executes. This approach is flexible but carries inherent overhead: every block must be discovered, translated, and cached on the fly, and the host has no global view of the program structure. Static recompilation, by contrast, operates entirely ahead of time. The full binary is analysed once, all functions and control flow are mapped out, and the result is emitted as a single C++ compilation unit. A standard optimising compiler (Clang, in this case) then processes that C++ code with full interprocedural visibility — the same way any other C++ application is built.The Recompilation Toolchain
Two purpose-built tools perform the translation. Both are open source and developed by the same team:XenonRecomp
Translates the Xbox 360 PowerPC binary (
default.xex) into equivalent C++
source code. Developed by Skyth.XenosRecomp
Translates Xenos GPU shader bytecode (
shader.ar) into HLSL shaders
compatible with D3D12 and Vulkan. Developed by Skyth.What Each Tool Processes
| Input file | Tool | Output |
|---|---|---|
default.xex | XenonRecomp | C++ source code (UnleashedRecompLib) |
default.xexp | XenonRecomp | Title update patch applied before recompilation |
shader.ar | XenosRecomp | HLSL shader source files |
UnleashedRecompLib — a static library that is linked into the main UnleashedRecomp executable. The HLSL output is compiled at build time into pipeline state objects by the graphics backend.
The recompiled C++ code generated from
default.xex is not included in
the repository. It is produced locally from your own legally acquired copy of
the game. This is why the game files must be placed in
./UnleashedRecompLib/private/ before building.Why Static Recompilation Beats Emulation for This Project
Choosing static recompilation over traditional emulation unlocks several capabilities that are structurally impossible in an emulator: No GPU emulation overhead. The Xbox 360’s Xenos GPU is a highly customised derivative of the R500 architecture. Accurately emulating its shader model, tiled rendering, and EDRAM at runtime is expensive and imprecise. With recompilation, the Xenos shaders are translated directly to HLSL once and compiled to native GPU machine code — zero emulation at draw-call time. Asynchronous shader compilation integrated into asset loading. Because the game’s rendering structures are statically visible in the recompiled C++ code, the renderer can traverse them and pre-compile every required pipeline object during the asset streaming phase. Shader compilation happens in the background, in parallel with level loading, eliminating the in-gameplay stutters that plague emulators running the same title. Targeted gameplay patches. The full control-flow graph of the game is available at compile time. Fixes for frame-rate-dependent bugs, aspect-ratio calculations, camera behaviour, and player movement can be applied as surgical C++ patches inpatches/ rather than fragile memory-address hacks.
Native API usage. With no emulation layer in the way, the renderer can exploit modern graphics features directly: bindless texture descriptors, parallel transfer queues, Flip Model presentation, and Waitable Swap Chains — none of which are accessible inside an emulator’s guest-API wrapper.
Inspiration
This approach was directly inspired by N64: Recompiled by Mr-Wiseguy, which was used to create Zelda 64: Recompiled. The Unleashed Recompiled team received information and early assistance from Mr-Wiseguy at the start of development, and the xenia-project’s extensive Xbox 360 hardware research also significantly accelerated the work.Build-Time Flow
When you runcmake --build for the first time, the following sequence occurs before any of the regular C++ sources are compiled:
- XenonRecomp reads
default.xex+default.xexpfrom./UnleashedRecompLib/private/and emits the C++ game library source. - XenosRecomp reads
shader.arand emits HLSL shader sources. - The emitted C++ is compiled into
UnleashedRecompLib(the game library). - The emitted HLSL shaders are compiled and embedded into the graphics backend.
UnleashedRecomp(the main executable) is compiled and linked againstUnleashedRecompLib.
./UnleashedRecompLib/private/ change, so subsequent builds are fast incremental C++ rebuilds.