Mortify7612 / RallisportChallenge2-decomp
git clone https://github.com/Mortify7612/RallisportChallenge2-decomp.git
v0.6.0-windows · 5d ago
Recompilation of DICE's 2004 Rallisport Challenge 2 for Linux and Windows.
+1
stars, 24h · #10,092
+51
stars, 7 days · #2,347
+51
stars, 30 days · #11,437
56
★ total · +51% this week
1
forks · 11 open issues
Star history (as recorded here)
LanguageC
License—
Created2026-10-15 (7d ago)
Last push2d ago
Watchers1
OwnerUser
Links
README excerpt
# RalliSport Challenge 2 — static recompilation A native PC build of *RalliSport Challenge 2* (Xbox, NTSC, title `0x4D530039`), made by statically recompiling the original executable with the xboxrecomp toolkit. Linux first; the Windows build is cross-compiled and so far tested under Wine. **No game data is included.** You need your own copy of the game. The lifted C code is generated locally from your `default.xbe` and is not part of this repository either. ## Demo ## Prebuilt binaries Releases have ready-built Linux (x86-64) and Windows (x64) packages. They contain the compiled program only, with the code translated from the game's executable built in, but no game data. Put your game files in a `game` folder next to the program, then start `run.sh` (Linux) or `rsc2.exe` (Windows). - The Linux binary is built on an up-to-date Arch-based system and needs glibc 2.43+, SDL2, the Vulkan loader, glslang 16, SPIRV-Tools, libepoxy and OpenSSL 3. On other distributions, build from source. - The Windows binary only needs a GPU driver with Vulkan 1.3. ## What works - Boot, intro movies, menus, profiles, career, stage loading and racing. - Vulkan renderer at up to 6x internal resolution, with the game's own 16:9 widescreen mode, and frame rates above 60 (the game keeps time by the clock). - Optional extras the original never had: MSAA, anisotropic filtering and ambient occlusion. - Sound through SDL2: per-voice resampling, speaker mixdown, and the game's per-environment I3DL2 reverb (tunnels, forest, valleys, in the car). - Keyboard and SDL game controllers, with rumble. - A pre-game launcher for resolution, aspect ratio, GPU, display mode, frame rate limit, audio and controls. ## Layout | Path | What | |---|---| | `xboxrecomp/` | The recompilation toolkit (v0.13.1, MIT) with this project's runtime work: Linux platform layer, NV2A Vulkan renderer, audio, input, kernel fixes. | | `rsc2/` | The game project: entry point, hand-written overrides, launcher, build files, tools. | | `rsc2/config/` | Function seeds and trace lists for the recompiler. | | `addr2func.py` | Maps guest addresses to recompiled functions (debugging). | ## Building (Linux) Needs CMake 3.20+, Ninja, a C11 compiler (GCC or Clang), Python 3, SDL2 2.0.18+, OpenSSL, libepoxy, the Vulkan headers and loader, `glslc` and glslang. 1. Put your game files in `RalliSport2/` and copy its `default.xbe` to `xboxrecomp/game_files/default.xbe`. 2. Make the Python environment the recompiler runs in: [code] 3. Generate the lifted C from your XBE (writes `rsc2/src/recomp/`): [code] 4. Configure and build: [code] 5. Run: [code] The launcher opens first; its settings are saved to `~/.config/rsc2/settings.ini`. `rsc2/run.sh --no-launcher` skips it, `--launcher` brings it back when "Show at startup" is off. Any `RECOMP_*` variable set by hand overrides the saved setting. `rsc2/RUNNING.md` has the keyboard map, the Windows cross-build and more of the runtime switches. ## Credits and licences - xb