Skip to content

About

Going Commando USA v1.01: byte-exact reconstruction tools and native-port research. No game assets.

Topics

Resources

Contributing

Stars

19 stars

Watchers

1 watching

Forks

Repository files navigation

RAC2 — Going Commando

Ratchet & Clank: Going Commando

Progress PlayStation 2 USA version 1.01

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.

Progress

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).

The report also gives the boot executable's data (383,391 bytes of initialised data, for the Data bar on ByteMatch). None of it is matched yet: the build places C functions' code and discards their objects' data, so all of it still comes from retail's dumps. The levels' data is not measured.

Functions Code
Boot executable 1,470 of 3,390 170,200 of 1,049,464 bytes
Levels 1,471 of 5,710 147,888 of 4,484,136 bytes
Total 2,941 of 9,100 318,088 of 5,533,600 bytes (5.75%)

The 27 levels hold 106,337 function placements; C covers 38,445 of them. 84 of the matched functions are the original's own assembly (ASM_FUNC), kept as assembly.

How it works

  • tools/levels.py dump reads the boot executable and the 27 level programs from the disc.
  • config/boot/functions.tsv and config/levels/functions.tsv list every function once, with its places (docs/LEVELS.md).
  • src/ lists every function once, in address order, as its C or as an INCLUDE_ASM marker, as rac1-decomp does.
  • tools/build.py all disassembles each program, links the C in place of its assembly, and compares every loaded byte with the retail program (docs/BUILDING.md).

Layout

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

Contributing

See CONTRIBUTING.md. Related projects: the rac1-decomp and UYA decompilations, and OpenRAC. Outside work used here is credited in CREDITS.md.

Licence

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.

About

Going Commando USA v1.01: byte-exact reconstruction tools and native-port research. No game assets.

Topics

Resources

Contributing

Stars

19 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages