Emulators: pretend to be the console
RPCS3 (PS3) and Xenia (Xbox 360) are emulators. They load the original game and translate its instructions while it runs, on top of a software model of the console’s CPU, GPU and operating system. That works for almost any game, but it costs a lot of performance, and every game has its own quirks to tune.
Recompilation: translate once, run natively
A static recompiler does the translation ahead of time. XenonRecomp “converts Xbox 360 executables into C++ code, which can then be recompiled for any platform”. The rexglue SDK that Skate 3 uses describes the same idea: “Rather than interpreting or JIT-compiling PPC instructions at runtime, ReXGlue … generates C++ source code ahead of time.”
Code alone isn’t enough. XenonRecomp’s README warns that the output “is not going to function correctly without a runtime backing it”, meaning something has to replace the console’s graphics, audio and system calls. That runtime is most of the work in a recomp project, and much of it builds on Xenia’s research (XenonRecomp credits).
What that means for Skate 3
skate3recomp is “an unofficial native recompilation of the Xbox 360 version of Skate 3, supporting Windows, Linux, and macOS.” Since v2.0 it doesn’t emulate the GPU at all. It uses “a native renderer built directly on Direct3D 12 and Vulkan”, which the README says delivers more than twice the frame rate of the emulated renderer at roughly a quarter of the GPU power draw.
What it doesn’t do is include the game. “The project does not include Skate 3 retail game files”, so you point it at the disc image of your own Xbox 360 copy. The Android, iOS, PS4 and web builds listed in the Skate 3 history all build on this recompilation.
| Emulator (RPCS3, Xenia) | Recomp (skate3recomp) | |
|---|---|---|
| Runs | the original disc image | a native program, plus your disc image’s data |
| Performance | heavy, tuned per game | close to a native PC game |
| Mods | file swaps, emulator patches | DLC packs, the Level Loader, engine-level changes |
| Platforms | wherever the emulator runs | Windows, Linux, macOS, plus community ports |
Updated 2026-10-01 · Improve this answer on GitHub