Credits - OpenRAC/rac3-uya-decomp GitHub Wiki

Credits

This project stands on other people's work. Thank you to everyone below. Nothing listed here is redistributed by this repo: each tool is installed or downloaded separately under its own license, and the game itself is never included.

If you think something or someone is missing, or you'd like your entry changed or removed, open an issue or a pull request.

Contributors

  • vetusmagnus: project lead, toolchain identification, build system, localdecomp, most of the matched C.
  • Louis-Philippe Le Sieur (llesieur99): matched functions, the common-level C and its verified build (tools/build_common_c.py), the cross-repository research, tool fixes (try_func.py, triage.py, pr_check.py) and many of the patterns in Matching patterns.

The game

Ratchet & Clank: Up Your Arsenal was developed by Insomniac Games and published by Sony Computer Entertainment (2004). This is an unofficial fan project, not affiliated with or endorsed by Insomniac Games or Sony Interactive Entertainment. Ratchet & Clank is a trademark of Sony Interactive Entertainment LLC. You need your own copy of the game to build anything here.

Toolchain

  • SN Systems ProDG for PlayStation 2 (ee-gcc 2.95.3 v1.36, Ps2EeAs): the compiler and assemblers retail was built with. Preserved by AngheloAlf/SN-Systems-ProDG_for_PS2_3.01.
  • decompme/compilers: the PS2 GCC builds (Sony 2.9 to 3.2) used to identify the compiler (compiler matrix findings).
  • wibo (decompals): runs the Windows toolchain on Linux and macOS.
  • GNU Binutils (binutils-mips-linux-gnu): disassembly and the level reference objects.

Decompilation tools

  • splat (Ethan Roseman and contributors): splits frontbin.elf into assembly and data.
  • spimdisasm and rabbitizer (Decompollaborate, Anghelo Carvajal): the MIPS/R5900 disassembly behind splat and several of our tools.
  • objdiff (Luke Street): per-file diffs and the progress report.
  • decomp.dev (Luke Street): hosts the progress page.
  • decomp-permuter (Simon Lindholm): finds the C rewrites behind register and scheduling near misses.
  • asm-differ (Simon Lindholm): the assembly diff used by localdecomp.
  • m2c (Matt Kempster and contributors): first drafts of C from assembly.
  • decomp.me: the collaborative matching site that localdecomp is modelled on.

Python libraries

  • pyelftools (Eli Bendersky): ELF reading in nearly every tool.
  • Capstone: disassembly in try_func.py and pr_check.py.
  • NumPy: the level and executable reference-object generators.

Game files

  • Wrench (chaoticgd): unpacks the game ISO to get frontbin.elf, the levels and the other executables.

Related projects

Research in Cross-repository resources compared functions with these decompilations (MIT licensed at the pinned snapshots; no code was copied into this repo):