A native port of Tony Hawk's Project 8 (Xbox 360, 2006), built by static recompilation. It is not an emulator: the game's PowerPC code is translated to C++ ahead of time and compiled into a normal executable for your machine.
You must own a copy of Tony Hawk's Project 8 for Xbox 360. This repository and its releases contain no disc image, original game executable, extracted assets, or other files copied from the disc. The launcher reads a disc image you supply from your own copy, checks it is a supported release, and sets up an install on your machine. Nobody here has a copy to give you. Asking in an issue, a discussion, or anywhere else will get the thread closed.

A minute of Free Skate, running natively on Linux. In-game music is muted in the recording.
| Platform | Status |
|---|---|
| Linux x86_64 | Verified. The main development and testing platform. |
| macOS arm64 | Verified on Apple M1. The archive is self-contained and renders correctly, but heavy scenes are still too slow for comfortable play; see known issues. |
| Windows x86_64 | Experimental. The complete archive works under Proton, but has not yet been tested on real Windows hardware. |
v0.3.0 substantially improves busy-scene performance. In a repeatable late-game Funpark view with about 2,667 draws per frame, the native Linux build improved from 40.01 to 45.58 effective FPS. Mean frame time fell from 25.00 to 21.94 ms, p95 fell from 27.00 to 23.00 ms, and process CPU fell from about 258% to 223%. These are uncapped measurements from the same Steam Deck LCD and scene, not a claim that every area now holds 60 FPS.
The Windows situation, plainly: everything is cross-compiled from Linux, because nobody on this project owns a Windows machine. The complete v0.3.0 archive was tested through Proton 10 on a Steam Deck. The launcher and game started, and the late-game 2,600-plus-draw fixture rendered every expected checkpoint. The player-default path held 30 FPS with a 33.32 / 34.25 ms p50 / p95; uncapped, it measured 27.01 / 30.99 ms and 36.30 effective FPS. That is useful compatibility and performance evidence, but it is not a test on Windows. Proton is a different implementation of the same interfaces, and the places where it differs are precisely where an untested port can break.
If you try the Windows launcher, please tell us what happened. "It opened and the buttons worked" is as useful to us as a crash report, and there is a template for it.
- Your own copy of Tony Hawk's Project 8 for Xbox 360.
- A disc image of it (
.iso). You do not need to extract it; the launcher reads the image directly. - About 5 GB of free space.
- A GPU with Vulkan support.
- Download the release for your platform and unpack it anywhere you can write.
- Run
Project8Recomp(Project8Recomp.exeon Windows). On Steam Deck, add this file as a Non-Steam Game and do not force Proton for the Linux build. - It asks for your disc image. Point it at your
.iso. - It checks the image. This takes well under a second and copies nothing yet. A disc that is not the supported release is refused here, before 4.7 GB is written rather than after.
- On a match it copies the game data into the same folder. This takes a few minutes, and you can stop it.
- The game starts. From then on
Project8Recompgoes straight through the launcher to Play. RunProject8Recomp --guiwhenever you want settings, setup status, or the normal launcher home screen.
The v0.1.0 executable names remain in the folder and keep their old behaviour,
so existing shortcuts continue to work. The new entry is a small wrapper over
thps_p8_gui; it never starts the game binary directly, which means launch
settings, single-instance handling, the supervisor, and crash cleanup stay on
the same path.
Everything lives in that one folder: the game data, your saves, and your settings. Move it, copy it between your own machines, or delete it. Nothing is written elsewhere on your system.
macOS: the archive includes its Vulkan runtime, so Homebrew is not required. It is ad-hoc signed but not notarized, so Gatekeeper will refuse a double-click. Right-click → Open → Open, once per install.
Windows: the binary is not signed, so SmartScreen will show "Windows protected your PC". More info → Run anyway.
More detail, including the accepted disc hash and where things live: docs/SETUP.md.
The one worth knowing before you play: leave the frame rate cap on. It is the default. With it off, in-level cutscenes run three to five times too fast.
Full list, including what is implemented but unverified: docs/KNOWN_ISSUES.md.
Is this an emulator?
No. An emulator interprets or JIT-compiles the console's instructions while you play. This translates them to C++ once, ahead of time, and compiles a native binary. The result runs as a normal application on your CPU.
Why isn't the game included?
Because it is not ours to give you. The release carries the runtime; your disc carries roughly 4.7 GB of content that will never be distributed here. A runtime without a copy of the game has nothing to run.
The launcher rejected my disc image. Why?
It hashes default.xex inside the image and compares it against the releases
this port was built from. Today that is one: the 2006 retail disc listed in
docs/SETUP.md. It will distinguish three cases: a file that is
not a disc image, a different game, or the right game from a different release.
If you own a PAL or NTSC-J disc, the hash and size of its default.xex are
genuinely useful to us. Those two values are all it takes to add support for a
release. Do not send the file itself.
The tool that does the checking will print them for you. From the folder you unpacked:
# Linux / macOS
./thps_p8_identify --identify_disc=/path/to/your.iso --json# Windows
.\thps_p8_identify.exe --identify_disc="D:\path\to\your.iso" --jsonIt prints something like:
default.xex sha256: 1a2b3c...
default.xex size: 8237056 bytes
Paste those two lines into an issue, along with the region printed on your disc.
Where are my saves and logs?
Saves are in saves/ and logs are in logs/, both inside the folder you
unpacked. The launcher home screen has a button for each folder.
Can I get more than 60 fps?
Yes, by turning the cap off in the launcher's Display settings. Read the known issues first because in-level cutscenes break when you do this.
My antivirus flagged it.
Static recompilations can resemble packers or injectors to heuristic scanners,
but do not dismiss a warning blindly. Download only from this repository's
release page, verify the archive and its SHA256SUMS, and tell us the engine
and detection name so we can investigate it.
Most people do not need to. If you want to: the launcher builds in about a
minute from nothing but a compiler and SDL3, and the game needs your own copy
because the recompiler reads default.xex as its input.
Ownership. You must own a copy of Tony Hawk's Project 8 for Xbox 360. This repository and its releases contain no disc image, original game executable, extracted assets, or other files copied from the disc.
Non-affiliation. Tony Hawk's Project 8 is a trademark of Activision Publishing, Inc. Tony Hawk is a trademark of Tony Hawk. Xbox 360 and related marks are trademarks of Microsoft Corporation. This is an independent, non-commercial preservation project. It is not affiliated with, sponsored by, or endorsed by Activision, Neversoft, Tony Hawk, Microsoft, or any other rights holder. All trademarks and copyrights belong to their respective owners.
What the licence covers. The source in this repository includes the launcher, disc identity worker, supervisor, game host code, recompiler configuration, build scripts, and documentation. It is under the BSD 3-Clause License (LICENSE). Third-party components are used under their own licences, reproduced in full in NOTICE.
It does not cover anything derived from the game. The translation units the
recompiler generates from default.xex are not published as source and are not
licensed by this project. Release archives contain the compiled recompilation,
but no original executable or extracted disc asset; the BSD licence grants no
rights in the underlying title. Do not redistribute your generated sources or
game files.
Do not request or share game files. Issues, discussions and pull requests asking where to obtain the game will be closed without an answer. Pull requests containing game assets, decrypted intermediates, platform keys or generated translation units will be rejected; see CONTRIBUTING.md.
- ReXGlue by Tom Clay: the static recompilation runtime this is built on.
- Xenia: the Xbox 360 emulation work ReXGlue derives from. None of this exists without it.
- XenonRecomp and rexdex's recompiler: for pioneering this approach on the platform.
- FFmpeg (LGPL-2.1), RmlUi (MIT), SDL3 and SDL3_image (Zlib), FreeType, Noto Sans (OFL-1.1).
Portions of this software are copyright © The FreeType Project (www.freetype.org). All rights reserved.
Full licence texts: NOTICE.
