{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/platform/pc/README.md",
    "https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/decomp/README.md",
    "https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/decomp/PROGRESS.md",
    "https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/decomp/matched.tsv",
    "https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/decomp/tools/check_all.mjs",
    "https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/docs/coverage-report.md",
    "https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/platform/pc/dist/THIRD-PARTY-NOTICES.txt"
  ],
  "category": "reconstruction-cases",
  "description_en": "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.",
  "description_zh": "从一个仍在进行中的零售版可执行文件一致性反编译项目派生分支，将 Tony Hawk’s Pro Skater（PlayStation 美版）移植为原生 Windows 与 Linux 程序。反编译部分用 Psy-Q 工具链重新编译已重建的函数，并与使用者自备的零售可执行文件逐字节比对；移植部分则以 SDL2 和 OpenGL 服务取代 PlayStation 硬件和库。运行需使用者自备光盘镜像；一致性与可玩性结果仍为项目报告。",
  "entry_url": "https://awesomerea.org/resources/thps1-decomp-native-port-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/thps1-decomp-native-port-case/",
  "evidence_url": "https://github.com/LANCommander/TonyWasAProSkater/blob/23968e91391ccdeb35f45e1fe987a8a40085aa5f/README.md",
  "group": "cases",
  "id": "thps1-decomp-native-port-case",
  "json_url": "https://awesomerea.org/resources/thps1-decomp-native-port-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/thps1-decomp-native-port-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/thps1-decomp-native-port-case/index.md",
  "name": "TonyWasAProSkater: a THPS1 native port forked from a matching decompilation",
  "name_zh": "TonyWasAProSkater：派生自一致性反编译的 THPS1 原生移植",
  "reconstruction_method": "port",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "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.",
    "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.",
    "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.",
    "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.",
    "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."
  ],
  "requirements_zh": [
    "所审阅的 main 分支派生自 LANCommander/THPS，仅针对 PS1 美版零售可执行文件 SLUS_008.60，不涵盖系列后续作品。2026-10-13 生成的 decomp/PROGRESS.md 报告游戏代码字节中 88.0%（1,178 个函数中的 928 个）逐字节一致，Psy-Q 库不在范围内。移植在 game/ 中编译该代码的独立分支；decomp/ 作为逐字节一致的参照保留，不参与移植构建，因此可运行的程序本身并非一致性构建产物。",
    "运行需使用者自备 Tony Hawk’s Pro Skater（美版）PlayStation 光盘的原始 MODE2/2352 BIN 镜像；也可改用 Dreamcast 光盘镜像（.gdi 及其轨道）提供素材。首次启动会把约 630 MB 内容复制到 Data 文件夹。构建还需使用者光盘中的零售版 SLUS_008.60 可执行文件，以获取函数布局。README 说明仓库未提交任何游戏素材或原始可执行文件，但包含反编译代码和已初始化数据。",
    "构建可在 Windows 上使用 MSYS2 的 32 位 MinGW 工具链和 SDL2（64 位构建使用 ucrt64），或在 x86 Linux 上使用 multilib GCC 与 32 位 SDL2，另需 Python 3 和 Ghidra 的 GNU 反修饰器；Psy-Q 库名称表依据 ghidra_psx_ldr 的签名生成。运行需 64 位 Windows 10／11，或具备 32 位 SDL2 与 OpenGL 库的 x86 Linux，以及支持 OpenGL 3.3 的 GPU。重新校验已匹配函数还需 Node 和未随项目分发的 Psy-Q 4.5 编译器。",
    "decomp/tools/check_all.mjs 会重新编译 matched.tsv 中的每个函数，并与零售版字节比对；取代手写汇编和 Sony 库的 C 代码，则通过重放录制的游戏状态与原 MIPS 代码对照检查。移植层的改动通过确定性运行检查，将画面帧和存档与早期构建比较。README 报告九个经典生涯关卡均可游玩，PS1 混响仅为近似实现。",
    "README 和移植层 README 称项目自身代码采用仓库 LICENSE 中的 MIT 许可，但所审阅的源码树中没有 LICENSE 文件，GitHub 也未检测到许可。移植层 README 说明反编译的游戏代码、数据及全部素材仍归 Activision／Neversoft 所有；SDL 2、PL_MPEG、glad 等链接库保留各自条款。源码树含 CLAUDE.md 项目笔记和 GhidraMCP 配置。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/LANCommander/TonyWasAProSkater",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
