Ratchet & Clank: Going Commando
A matching decompilation of Ratchet & Clank: Going Commando for the PlayStation 2 (USA v1.01,
SCUS_972.68): C that compiles to the game's own bytes, on the way to a native PC port.
No game files, disc images, rebuilt executables or proprietary tools are distributed: bring your own copy of the game.
Every distinct function counts once: the boot executable's 3,390 and the levels' 5,711 that
the boot does not also have. A function many levels share is one function, however many
places it has. A function is C when its C links into a program that comes out equal to the
retail one (progress/report.json, tools/progress.py).
| Functions | Code | |
|---|---|---|
| Boot executable | 1,411 of 3,390 | 161,996 of 1,049,464 bytes |
| Levels | 1,470 of 5,710 | 147,828 of 4,484,136 bytes |
| Total | 2,881 of 9,100 | 309,824 of 5,533,600 bytes (5.60%) |
The 27 levels hold 106,337 function placements; C covers 36,986 of them.
84 of the matched functions are the original's own assembly (ASM_FUNC), kept as assembly.
tools/levels.py dumpreads the boot executable and the 27 level programs from the disc.config/boot/functions.tsvandconfig/levels/functions.tsvlist every function once, with its places (docs/LEVELS.md).src/lists every function once, in address order, as its C or as anINCLUDE_ASMmarker, as rac1-decomp does.tools/build.py alldisassembles each program, links the C in place of its assembly, and compares every loaded byte with the retail program (docs/BUILDING.md).
| Path | What |
|---|---|
src/core/ |
the boot's core code (SDK, libc), one file per original object |
src/game/ |
the boot's own program |
src/levels/shared/, src/levels/NN_name/ |
level functions in several levels, and in one |
nonmatching/ |
near misses, never linked |
config/ |
the function catalogues, per-file compiler flags, naming research |
tools/ |
disc reader and catalogue, build, progress, the compiler recipes |
include/ |
shared headers |
ports/pal-functional/ |
functional C for the PAL release (not matching) |
docs/ |
building, the level format, the compiler, game research |
See CONTRIBUTING.md. Related projects: the rac1-decomp and UYA decompilations, and OpenRAC. Outside work used here is credited in CREDITS.md.
GPL-3.0, see LICENSE, like rac1-decomp and OpenRAC. Code released earlier under MIT keeps its notice in THIRD_PARTY_NOTICES.md. The licence covers this repository's own code, never the game, its assets or proprietary toolchains.
