Case study

Sly Cooper and the Thievius Raccoonus: matching PlayStation 2 decompilation

Reconstructs source code for SCUS_971.98, the NTSC-U PlayStation 2 executable of Sly Cooper and the Thievius Raccoonus, as a work-in-progress matching decompilation. Functions not yet matched are still assembled from code split out of the user's own executable, and the build checks the linked ELF's SHA-1. The result runs in PCSX2 with the original disc for assets; it is not a native PC port.

Requirements and limitations

  • README describes a work-in-progress decompilation of the NTSC-U executable SCUS_971.98 (SHA-1 prefix 57dc305d) that aims to decompile the game engine to matching source. Its FAQ says the project has built a matching ELF since July 2024 and still aims to match 100% of functions. Engine, Splice scripting-engine and data progress are reported on decomp.dev; this collection recorded no percentage.
  • The repository contains no game assets or original code. Users supply SCUS_971.98 from their own legally obtained disc, or an NTSC-U ISO for the quickstart script. Running the build requires PCSX2 2.0, the user's game ISO for assets and a BIOS from the user's own PS2.
  • Builds run on Debian-based Linux or WSL, with a Distrobox guide for other distributions. They need Python 3.9+ with the listed packages, MIPS binutils, Ninja, and Wine or wibo to run the downloaded ee-gcc 2.95.2 SN (ProDG) compiler archive. configure.py splits the ELF with splat, inserts split assembly in place of non-matching functions and links the executable; objdiff, decomp.me and CodeMatcher support matching, the last currently against the May 19, 2002 prototype.
  • By default the build checks out/SCUS_971.98 against config/checksum.sha1; --skip-checksum is documented for intentional code changes, whose output may not boot. CI downloads the original ELF through a repository secret and runs this check on main, and the check run recorded for the reviewed commit succeeded. This verifies byte identity of one executable, not complete decompilation, and this collection did not rerun it.
  • The repository is dedicated under CC0 1.0; the original game, extracted assembly and data, and the ProDG compiler and SCE runtime library keep separate rights. CONTRIBUTING takes mangled function names from the May 2002 prototype's debug symbols. Reviewed sources establish no REA involvement, and no runtime reproduction is claimed.

About this entry

Type
Case study
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Targets
Game

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Primary sources

  1. README.md GitHub · TheOnlyZac/sly1 · Revision ea5e2d7
  2. configure.py GitHub · TheOnlyZac/sly1 · Revision ea5e2d7
  3. config/checksum.sha1 GitHub · TheOnlyZac/sly1 · Revision ea5e2d7
  4. config/readme.md GitHub · TheOnlyZac/sly1 · Revision ea5e2d7
  5. scripts/setup_prodg_linux.sh GitHub · TheOnlyZac/sly1 · Revision ea5e2d7
  6. docs/CONTRIBUTING.md GitHub · TheOnlyZac/sly1 · Revision ea5e2d7
  7. .github/workflows/build.yml GitHub · TheOnlyZac/sly1 · Revision ea5e2d7
  8. LICENSE GitHub · TheOnlyZac/sly1 · Revision ea5e2d7
  9. https://decomp.dev/TheOnlyZac/sly1
  10. https://theonlyzac.github.io/sly1