Skip to content

Releases: Mortify7612/RallisportChallenge2-decomp

v0.6.0 — Windows

Choose a tag to compare

@Mortify7612 Mortify7612 released this 17 Oct 12:45

Better ambient occlusion and a faster renderer, for Windows. The same changes as the Linux v0.6.0, on top of the Windows fixes from v0.5.1.

No game data is included. You need your own copy of RalliSport Challenge 2 (Xbox, NTSC). Put its files (the folder with default.xbe, Layer0, Layer1, Media, Movies, …) in a game folder next to the program.

Package Start with Needs
rsc2-v0.6.0-windows-x64.zip rsc2.exe Windows 10/11 x64 with a Vulkan 1.3 GPU driver; nothing else

The binary contains the code translated from the game's executable, built in. It is meant for owners of the game. To build it yourself, see the README.

New since v0.5.1

  • Faster rendering. The renderer no longer sends each frame to the GPU in many small pieces. With frames already overlapping, those extra submits cost more than they saved. In a race on an RTX 5070 Ti at 4× resolution on Windows 11, with the frame rate limit off, the frame rate went from about 70 to about 95 fps.
  • Ambient occlusion, reworked (launcher: Graphics → Ambient occlusion):
    • No more shading on top of see-through things. Trees, bushes, smoke and glass write no depth, so they were darkened by the shading of whatever was behind them. They're now left as the game drew them.
    • Much less noise. It's worked out at reduced resolution, blurred, and scaled back up along depth edges. A faint banding on flat surfaces is gone.
    • Cheaper. On an RTX 5070 Ti at 4× resolution it costs about 0.5 ms per frame.
  • The launcher fits small screens. On a monitor too small for it (for example 1024×768), the launcher scales itself down instead of being cut off.

Known issues

  • HDR is untested on Windows.
  • On a display that isn't 60 or 120 Hz the menus may judder: the menus run at a fixed 60 fps.
  • The Xbox audio DSP is not emulated. The reverb uses the game's parameters but is not the original DSP program (#5).
  • All open issues

Checksums are in SHA256SUMS.txt.

v0.6.0 — Linux

Choose a tag to compare

@Mortify7612 Mortify7612 released this 17 Oct 12:14

Better ambient occlusion and a faster renderer.

No game data is included. You need your own copy of RalliSport Challenge 2 (Xbox, NTSC). Put its files (the folder with default.xbe, Layer0, Layer1, Media, Movies, …) in a game folder next to the program.

Package Start with Needs
rsc2-v0.6.0-linux-x86_64.tar.gz ./run.sh Up-to-date Arch-based distribution (built on CachyOS): glibc 2.43+, SDL2, vulkan-icd-loader, glslang 16, spirv-tools, libepoxy, openssl 3; a Vulkan 1.3 GPU

The Windows package for this version is in v0.6.0 — Windows.

The binaries contain the code translated from the game's executable, built in. They are meant for owners of the game. On other Linux distributions, or to build it yourself, see the README.

New since v0.5.0

  • Faster rendering. The renderer no longer sends each frame to the GPU in many small pieces. With frames already overlapping, those extra submits cost more than they saved. In a race on an RTX 5070 Ti at 3× resolution, the frame rate went from 128 to 145 fps, and from 114 to 134 fps with 4× MSAA. Integrated graphics are no slower.
  • Ambient occlusion, reworked (launcher: Graphics → Ambient occlusion):
    • No more shading on top of see-through things. Trees, bushes, smoke and glass write no depth, so they were darkened by the shading of whatever was behind them. They're now left as the game drew them.
    • Much less noise. It's worked out at reduced resolution, blurred, and scaled back up along depth edges. A faint banding on flat surfaces is gone.
    • Cheaper. On an RTX 5070 Ti at 4× resolution it costs about 0.2 ms per frame, down from 1.2 ms. On integrated graphics the cost is halved.
  • The launcher fits small screens. On a monitor too small for it (for example 1024×768), the launcher scales itself down instead of being cut off.

Known issues

  • HDR has been tested on KDE Plasma 6.7 with an NVIDIA GPU only.
  • The Xbox audio DSP is not emulated. The reverb uses the game's parameters but is not the original DSP program (#5).
  • All open issues

Checksums are in SHA256SUMS.txt.

v0.5.1 — Windows fixes

Choose a tag to compare

@Mortify7612 Mortify7612 released this 17 Oct 10:25

Windows fixes: the first build tested on real Windows. Saves load, a second launch no longer stalls, menus run at 60 fps, and closing the window quits. Windows only; Linux stays on v0.5.0.

No game data is included. You need your own copy of RalliSport Challenge 2 (Xbox, NTSC). Put its files (the folder with default.xbe, Layer0, Layer1, Media, Movies, …) in a game folder next to the program.

Package Start with Needs
rsc2-v0.5.1-windows-x64.zip rsc2.exe Windows 10/11 x64 with a Vulkan 1.3 GPU driver; nothing else

The binary contains the code translated from the game's executable, built in. It is meant for owners of the game. To build it yourself, see the README.

Fixed since v0.5.0

  • Saves. A profile showed up as corrupted, and one saved by the Linux build could not be loaded. Profiles now load.
  • Second launch. Starting the game a second time could stop on the loading screen. Every start now works; deleting the cache folder by hand is no longer needed.
  • Menus at 60 fps. The menus and car selection ran at 40 fps. They now run at 60 fps, as on the console. The game's clock and frame pacing on Windows are as precise as on Linux.
  • Closing the window (or Alt+F4) quits the game. Before, the game opened a new window, and after a few closes it could crash.
  • Starts on a clean Windows install. v0.5.0 needed XINPUT1_3.dll, which comes from the old DirectX runtime and not with Windows; it now uses the XInput built into Windows 10/11.

Known issues

  • HDR is untested on Windows.
  • On a display that isn't 60 or 120 Hz the menus may judder: the menus run at a fixed 60 fps.

v0.5.0 — HDR, more even frame pacing

Choose a tag to compare

@Mortify7612 Mortify7612 released this 17 Oct 06:03

HDR output, and more even frame pacing.

No game data is included. You need your own copy of RalliSport Challenge 2 (Xbox, NTSC). Put its files (the folder with default.xbe, Layer0, Layer1, Media, Movies, …) in a game folder next to the program.

Package Start with Needs
rsc2-v0.5.0-linux-x86_64.tar.gz ./run.sh Up-to-date Arch-based distribution (built on CachyOS): glibc 2.43+, SDL2, vulkan-icd-loader, glslang 16, spirv-tools, libepoxy, openssl 3; a Vulkan 1.3 GPU
rsc2-v0.5.0-windows-x64.zip rsc2.exe Windows 10/11 x64 with a Vulkan 1.3 GPU driver; nothing else

The binaries contain the code translated from the game's executable, built in. They are meant for owners of the game. On other Linux distributions, or to build it yourself, see the README.

New since v0.4.0

  • HDR. Turn HDR on in your system's display settings, then Display → HDR in the launcher. The game draws in SDR, so its picture is mapped up:
    • its white sits at paper white (HDR brightness, 203 nits by default);
    • only the brightest parts are stretched towards the peak;
    • the sun's glare is kept above white, so it really shines;
    • the HUD and menus stay at paper white.
  • KDE Plasma (Wayland): the game draws straight into the desktop's own HDR colour space, so KWin has nothing to convert or tonemap. Brightness follows Plasma's SDR brightness slider, and the highlights stop at your screen's peak. On a PC where KWin runs on integrated graphics and the screen is on a discrete GPU, this took slow frames in a race from about 60% to about 1%. Other compositors and Windows use scRGB, or HDR10 when the window offers only that.
  • More even frame pacing. Frames are shown on the pacing grid. Before, they were shown whenever the GPU finished, and arrived 6.7–9.9 ms apart at 120 Hz.

Known issues

  • HDR has been tested on KDE Plasma 6.7 with an NVIDIA GPU only. On Windows it is untested.
  • The Windows build has been tested under Wine only so far; reports from real Windows are welcome.
  • A profile saved by the Linux build may show as "Unable to load" on Windows.
  • The Xbox audio DSP is not emulated. The reverb uses the game's parameters but is not the original DSP program (#5).
  • All open issues

Checksums are in SHA256SUMS.txt.

v0.4.0 — no shader stutter, faster renderer, ultrawide screens

Choose a tag to compare

@Mortify7612 Mortify7612 released this 16 Oct 17:36

A faster renderer, no more shader stutter, and ultrawide screens filled edge to edge.

No game data is included. You need your own copy of RalliSport Challenge 2 (Xbox, NTSC). Put its files (the folder with default.xbe, Layer0, Layer1, Media, Movies, …) in a game folder next to the program.

Package Start with Needs
rsc2-v0.4.0-linux-x86_64.tar.gz ./run.sh Up-to-date Arch-based distribution (built on CachyOS): glibc 2.43+, SDL2, vulkan-icd-loader, glslang 16, spirv-tools, libepoxy, openssl 3; a Vulkan 1.3 GPU
rsc2-v0.4.0-windows-x64.zip rsc2.exe Windows 10/11 x64 with a Vulkan 1.3 GPU driver; nothing else

The binaries contain the code translated from the game's executable, built in. They are meant for owners of the game. On other Linux distributions, or to build it yourself, see the README.

New since v0.3.0

  • No shader stutter. Shaders and their GPU pipelines are now built in the background. Until one is ready, the object is drawn another way, so the game never stops to wait for it. Every pipeline the game uses is remembered, and later starts prepare them all while the intro plays. On a cold cache a race load used to freeze for about 1.6 s in total; now there are no stalls at all from the second start.

  • Faster. Much less CPU work per frame:

    • vertex data is read once;
    • long runs of GPU commands are handled in one go;
    • a per-frame wait for the previous frame's shadow map is gone.

    The same race replay at 1× went from about 260 to about 350–375 fps on a Ryzen 9950X.

  • Ultrawide screens. With the launcher's aspect ratio set to 16:9, the picture now fills screens wider than 16:9 in fullscreen. The 3D view is widened rather than stretched, the edges show more of the stage, and the HUD keeps its shape. 16:9 screens look exactly as before. RECOMP_WIDE_FILL=0 keeps the 16:9 picture; RECOMP_VIEW_ASPECT=<width/height> forces a shape.

  • The FPS counter (F3) sits a little further in from the corner.

The source tree now also builds for 64-bit ARM Linux and Android. An Android version runs at around 60–75 fps in races on a Snapdragon 8 Gen 3, but it isn't packaged yet: loading the game files onto a phone still needs developer tools. See rsc2/android/README.md to build it yourself.

Known issues

  • The Windows build has been tested under Wine only so far; reports from real Windows are welcome.
  • A profile saved by the Linux build may show as "Unable to load" on Windows.
  • The Xbox audio DSP is not emulated. The reverb uses the game's parameters but is not the original DSP program (#5).
  • The very first time an effect appears (before its shader is ready), it can be drawn slightly differently for a moment.
  • All open issues

Checksums are in SHA256SUMS.txt.

v0.3.0 — keyboard driving, faster renderer, Add to Steam

Choose a tag to compare

@Mortify7612 Mortify7612 released this 16 Oct 08:05

Keyboard driving controls, a much faster renderer, Alt+Enter fullscreen and an "Add to Steam" button.

No game data is included. You need your own copy of RalliSport Challenge 2 (Xbox, NTSC). Put its files (the folder with default.xbe, Layer0, Layer1, Media, Movies, …) in a game folder next to the program.

Package Start with Needs
rsc2-v0.3.0-linux-x86_64.tar.gz ./run.sh Up-to-date Arch-based distribution (built on CachyOS): glibc 2.43+, SDL2, vulkan-icd-loader, glslang 16, spirv-tools, libepoxy, openssl 3; a Vulkan 1.3 GPU
rsc2-v0.3.0-windows-x64.zip rsc2.exe Windows 10/11 x64 with a Vulkan 1.3 GPU driver; nothing else

The binaries contain the code translated from the game's executable, built in. They are meant for owners of the game. On other Linux distributions, or to build it yourself, see the README.

New since v0.2.1

  • Keyboard driving. The keyboard is now laid out for driving, following the game's default controller preset:

    Key In a race In menus
    ← / → Steer, eased in rather than full lock at once Left / right
    ↑ / ↓ Accelerate / brake Up / down
    Space E-brake Accept
    A / Z Gear up / down
    C · V · R · H Camera · look back · car reset · horn
    Esc Pause Back
    Enter Accept

    Every key can be changed in the launcher (Controls → Key bindings), with up to two keys per action. Keyboard steering sets how fast the steering keys reach full lock.

  • Faster rendering. The GPU now draws one frame while the next is being prepared, instead of the two taking turns, and several per-draw costs are gone. On the same stretch of the first stage:

    • RTX 5070 Ti, 3× 16:9 with MSAA and ambient occlusion: 65–83 → 80–109 fps
    • RTX 5070 Ti, 1×: 108 → 140 fps
    • Ryzen 9950X integrated graphics, 1×: 117 → 171 fps; 2× 16:9: 101 → 145 fps

    RECOMP_VK_PIPELINE=0 switches the new frame overlap off if it ever causes trouble.

  • Alt+Enter toggles fullscreen, as F11 does.

  • Add to Steam. A launcher button that adds the game to your Steam library as a non-Steam game, so it starts from Steam and Big Picture. Quit Steam first: Steam rewrites its list of games when it closes. Your previous list is kept as shortcuts.vdf.bak.

Known issues

  • The Windows build has been tested under Wine only so far; reports from real Windows are welcome.
  • A profile saved by the Linux build may show as "Unable to load" on Windows.
  • The Xbox audio DSP is not emulated. The reverb uses the game's parameters but is not the original DSP program (#5).
  • All open issues

Checksums are in SHA256SUMS.txt.

v0.2.1 — the Xbox's colour grading, FPS counter

Choose a tag to compare

@Mortify7612 Mortify7612 released this 16 Oct 04:36

Ready-to-run builds for Linux and Windows, with the Xbox's look restored and a new FPS counter.

No game data is included. You need your own copy of RalliSport Challenge 2 (Xbox, NTSC). Put its files (the folder with default.xbe, Layer0, Layer1, Media, Movies, …) in a game folder next to the program.

Package Start with Needs
rsc2-v0.2.1-linux-x86_64.tar.gz ./run.sh Up-to-date Arch-based distribution (built on CachyOS): glibc 2.43+, SDL2, vulkan-icd-loader, glslang 16, spirv-tools, libepoxy, openssl 3; a Vulkan 1.3 GPU
rsc2-v0.2.1-windows-x64.zip rsc2.exe Windows 10/11 x64 with a Vulkan 1.3 GPU driver; nothing else

The binaries contain the code translated from the game's executable, built in. They are meant for owners of the game. On other Linux distributions, or to build it yourself, see the README.

New since v0.2.0

  • The game's colour grading. The race now has the warm, glowing look of the console. The game sets a gamma ramp that lifts and warms the shadows and midtones, and adjusts it as you drive; on the Xbox the video output applies it to every pixel. It used to be dropped. Now it is applied when the frame is shown, and also to video recordings. RECOMP_GAMMA=0 turns it off.
  • FPS counter. Shows frames per second, the average, fastest and slowest frame time of the last second, and a graph of recent frames against your frame-rate limit. Turn it on in the launcher (Display → FPS counter) or press F3 while playing.
  • The tree pop-in fix from v0.2.0 is confirmed in play (#1 closed).

Known issues

  • The Windows build has been tested under Wine only so far; reports from real Windows are welcome.
  • A profile saved by the Linux build may show as "Unable to load" on Windows.
  • The Xbox audio DSP is not emulated. The reverb uses the game's parameters but is not the original DSP program (#5).
  • All open issues

Checksums are in SHA256SUMS.txt.

v0.2.0 — Linux and Windows builds

Choose a tag to compare

@Mortify7612 Mortify7612 released this 16 Oct 03:18

The first release with ready-to-run builds for Linux and Windows.

No game data is included. You need your own copy of RalliSport Challenge 2 (Xbox, NTSC). Put its files (the folder with default.xbe, Layer0, Layer1, Media, Movies, …) in a game folder next to the program.

Package Start with Needs
rsc2-v0.2.0-linux-x86_64.tar.gz ./run.sh Up-to-date Arch-based distribution (built on CachyOS): glibc 2.43+, SDL2, vulkan-icd-loader, glslang 16, spirv-tools, libepoxy, openssl 3; a Vulkan 1.3 GPU
rsc2-v0.2.0-windows-x64.zip rsc2.exe Windows 10/11 x64 with a Vulkan 1.3 GPU driver; nothing else

The binaries contain the code translated from the game's executable, built in; they are meant for owners of the game. On other Linux distributions, or to build it yourself, see the README.

New since v0.1.0

  • Tree pop-in fixed (#1). Whole stands of 2D trees used to vanish. When a sprite batch passed 63 quads, the GPU emulation dropped its first chunk. Long HUD text batches lost text the same way, and that is fixed too.
  • Windows build with feature parity (#4). It now has the launcher window, 16:9 widescreen, and borderless fullscreen (F11). It also scales correctly on high-DPI displays, and SDL2 and glslang are built in.
  • New graphics options in the launcher:
    • MSAA (2×/4×/8×).
    • Anisotropic filtering, up to 16×. This is on by default and makes roads sharp into the distance.
    • Ambient occlusion: soft contact shading on the scenery.
  • Reverb that follows the track. The game sets its own reverb for each environment: tunnels, forest, hillsides, stone valleys, buildings and the in-car view. The reverb is now rebuilt from those settings instead of one fixed effect. "Normal" in the launcher is the original level.
  • Stability:
    • A rare crash in controller handling is gone. Interrupt-level work and the game threads now take turns, as on the console's single CPU (#3, #8).
    • Memory corruption from host allocations landing inside the guest address space is fixed.

Known issues

  • The Windows build has been tested under Wine only so far; reports from real Windows are welcome.
  • A profile saved by the Linux build may show as "Unable to load" on Windows.
  • The Xbox audio DSP is not emulated. The reverb uses the game's parameters but is not the original DSP program (#5).
  • All open issues

Checksums are in SHA256SUMS.txt.

v0.1.0 — first source snapshot

Choose a tag to compare

@Mortify7612 Mortify7612 released this 15 Oct 17:52

First public snapshot of the RalliSport Challenge 2 static recompilation: a native Linux build of the Xbox game, made by recompiling the original executable with the xboxrecomp toolkit.

Source only — no binaries, no game data. You need your own copy of the game. The lifted code is generated from your own default.xbe by rsc2/regen.sh; build steps are in the README.

What works

  • Boot, intro movies, menus, profiles, career, stage loading and racing.
  • Vulkan renderer: up to 6x internal resolution; the game's own 16:9 widescreen mode, with the extra width rendered at full sharpness; frame rates above 60 (the game keeps time by the clock); render targets kept on the GPU, specialised combiner shaders compiled in the background, DXT textures uploaded as BC.
  • Fixes: tyre marks and the car shadow no longer flicker (polygon offset), sun glare, distant mountains, the white car, the car-select background, points and lines (power lines, aerial).
  • Audio: per-voice resampling, speaker mixdown, reverb.
  • Input: keyboard and SDL game controllers, with rumble.
  • Launcher: resolution, aspect ratio, GPU, fullscreen, frame-rate limit, sound, reverb, keyboard and vibration, saved to ~/.config/rsc2/settings.ini.

Requirements

Linux x86_64 with a Vulkan 1.3 GPU. To build: CMake 3.20+, Ninja, GCC or Clang, Python 3, SDL2 2.0.18+, OpenSSL, libepoxy, the Vulkan headers and loader, glslc and glslang.

Known issues

  • #1 Groups of trees vanish within a band of distance (being worked on).
  • #4 The Windows build has no launcher window or 16:9 stretch yet, and has only been tested under Wine.
  • #2 Input replays drift after ~17 s; #3 a rare crash seen once.
  • All open issues