Files
project-solana/games/rac1

Ratchet & Clank (PAL v2.00): build kit

A static recompilation of Ratchet & Clank (SCES_509.16) for Windows (and Linux, for development).

build.py reads the game's executable and level programs from your disc image, generates C from them (the decomp's own C where it has it, everything else translated instruction by instruction by tools/recomp.py, the VU microcode by tools/vu_recomp.py), and compiles it with the host engine in host/ into build/windows/rac1_game.dll and rac1_wrapper.exe.

python build.py --platform windows --iso "Ratchet & Clank (Europe).iso" --repo ../rac1-decomp --levels 0,1,...,18

Needs Python 3, pip install rabbitizer ziglang. The Project Solana launcher runs this for players with its own copies of both.

Path What
tools/gen_host.py the decomp's C made host-ready (types, calls between C and translated code)
tools/recomp.py MIPS (R5900) to C, the executable and each level
tools/vu_recomp.py VU0/VU1 microprograms to C
tools/level_dump.py a level's program from the disc image
host/src/gs/ the Graphics Synthesizer: software and OpenGL 3.3 (upscaling: UYA_SCALE)
host/src/gfx/ VIF, GIF and the VU runtime
host/src/sdk/, host/src/rac1/ Sony library entry points, 989snd and the SPU2, levels, boot
host/overrides/ hand-ported assembly functions
launcher/ rac1_wrapper.exe: reserves PS2 RAM at its real addresses, joins split DLLs, runs the DLL
docs/LEVELS.md how level programs are built in

Environment variables for testing (UYA_FPSLOG, UYA_GSREC, UYA_LEVEL, UYA_SCALE, ...) are described where they are read.