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