# TonyWasAProSkater: a THPS1 native port forked from a matching decompilation

> Ports Tony Hawk’s Pro Skater (PlayStation, USA) to native Windows and Linux builds from a fork of an in-progress matching decompilation of the retail executable. The decompilation recompiles reconstructed functions with a Psy-Q toolchain and compares them byte for byte with the user’s retail executable, while the port replaces PlayStation hardware and libraries with SDL2 and OpenGL services. Play needs the user’s own disc image; matching and gameplay results remain project-reported.

- Type: Case study
- Targets: Game
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-10-18
- Added to the catalog: 2026-10-18
- Original resource: <https://github.com/LANCommander/TonyWasAProSkater>
- Primary source: <https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/README.md>
- Catalog page: <https://awesomerea.org/resources/thps1-decomp-native-port-case/>
- Record JSON: <https://awesomerea.org/resources/thps1-decomp-native-port-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/thps1-decomp-native-port-case/index.md)

## Requirements & limits

- **Prerequisites:** Play requires a raw MODE2/2352 BIN image of the user’s own Tony Hawk’s Pro Skater (USA) PlayStation disc; the Dreamcast disc image (.gdi and its tracks) can supply the assets instead. The first start copies about 630 MB into a Data folder. Building also needs the retail SLUS_008.60 executable from the user’s disc for the function layout. README states that no game assets or original executable are committed, while decompiled code and initialised data are included.
- **Prerequisites:** Builds run on Windows with MSYS2’s 32-bit MinGW toolchain and SDL2 (64-bit builds use ucrt64) or on x86 Linux with multilib GCC and 32-bit SDL2, plus Python 3 and Ghidra’s GNU demangler; a Psy-Q library name table is generated from ghidra_psx_ldr signatures. Running needs 64-bit Windows 10/11 or x86 Linux with 32-bit SDL2 and OpenGL libraries, and an OpenGL 3.3 GPU. Re-verifying matched functions additionally needs Node and the Psy-Q 4.5 compiler, which is not distributed.
- **Scope:** The reviewed main branch, a fork of LANCommander/THPS, targets only the retail PS1 USA executable SLUS_008.60, not later games in the series. decomp/PROGRESS.md, generated 2026-10-13, reports 88.0% of game-code bytes (928 of 1,178 functions) byte-exact, with the Psy-Q libraries out of scope. The port compiles a separate fork of that code in game/; decomp/ stays the byte-matching reference and is not built into the port, so the playable executable is not itself a matching build.
- **Testing evidence:** decomp/tools/check_all.mjs recompiles every function in matched.tsv and compares it with the retail bytes; C that replaces hand-written assembly and Sony libraries is checked by replaying recorded game states against the original MIPS code. Port changes are checked with deterministic runs whose frames and saves are compared with an earlier build. README reports all nine career levels playable and an approximate rather than exact PS1 reverb.
- **License:** README and the port README describe the project’s own code as MIT under a repository LICENSE, but the reviewed tree has no LICENSE file and GitHub detects none. The port README states that decompiled game code, data and all assets remain © Activision/Neversoft; linked libraries such as SDL 2, PL_MPEG and glad keep their own terms. The tree includes CLAUDE.md project notes and a GhidraMCP configuration.

## Primary sources

1. <https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/README.md>
2. <https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/platform/pc/README.md>
3. <https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/decomp/README.md>
4. <https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/decomp/PROGRESS.md>
5. <https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/decomp/matched.tsv>
6. <https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/decomp/tools/check_all.mjs>
7. <https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/docs/coverage-report.md>
8. <https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/platform/pc/dist/THIRD-PARTY-NOTICES.txt>

## More in Games

- [Vandal Hearts: native PC port built on matching decompilations](https://awesomerea.org/resources/vandal-hearts-pc-port-case/index.md) · Case study
- [Age of Empires Free Software Remake: a re-implementation on the original data](https://awesomerea.org/resources/aoe-free-software-remake-case/index.md) · Case study
- [Bravo: a reverse-engineered Minecraft server](https://awesomerea.org/resources/bravo-minecraft-server-case/index.md) · Case study
- [Chariot: Age of Empires engine reimplementation](https://awesomerea.org/resources/chariot/index.md) · Case study
- [CoD4 Rewrite: Rust/Bevy reconstruction](https://awesomerea.org/resources/cod4-rewrite-reconstruction-case/index.md) · Case study
- [CorsixTH: an open reimplementation of Theme Hospital](https://awesomerea.org/resources/corsixth-engine-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
