Download Win32 [ setup | 7z ]
Download Win64 [ setup | 7z ]
Download Linux [ setup | 7z ]
Download Android [ apk ]
Visit the topics for the Android version and the Shader edition for more information.
Download the Dreamcast Pack: rvgl_dcpack.zip (not updated this time, latest version: 18.0720a)
Download the Soundtrack: soundtrack.zip
Download the Controller Map Android app: rvgl_controller_map.apk
More about the update and RVGL: changelog | docs
Full game downloads are available at distribute.re-volt.io.
MIDI and SVG Support:
SVG is now one of the supported texture formats.
There is also experimental support for MIDI music playback using FluidSynth. The Windows releases come with libfluidsynth-1.dll, while on Linux, you need the fluidsynth (1.x) package. The recently released FluidSynth 2 series is not supported yet. You also need to download one of the available SoundFonts and place it in the soundsfonts folder (create one if not present), with the name default.sf2.
There is room for further improvement:
- The path soundfonts/default.sf2 is currently hardcoded. It is planned to support multiple soundfonts sourced from the soundfonts folder.
- Soundfonts are loaded / unloaded along with the stream, which can result in a short freeze when playback starts. They should instead be loaded once at game start.
- FluidSynth 2.x support.
- Shader renderer is now the default. For existing installations, enable it by setting Shaders = 1 in rvgl.ini. The legacy render can be activated with -noshader.
- Shader renderer is compatible with tracks having large number of texture animation pages, like Slippery Slope. (#252)
- V-sync is on by default on new installations.
- Particles option in Render Settings is improved: it now affects Spark Generators too. Also, Spark Generators are now handled properly by visiboxes. (#280)
- TEXTUREPROPS colorkey attribute behaves more consistently across legacy and shader modes. When this attribute is unset, 24-bit bitmaps no longer have pure-black transparency in legacy mode. (#289)
- Adaptive icons support for Android Oreo and above.
- Added FLAC playback support.
- FPU / NEON optimizations enabled on aarch64 and x86[_64] architectures.
- Vorbis Integer decoder (Tremor) and MPG123 fixed-point mode used on 32-bit armeabi and armeabi-v7a.
- Device Back button can be used for menu navigation, pausing the game and to skip intro screens.
- Resolved various issues in Controller Settings that affected joysticks and controllers. (#248)
- Controller Map utility: Available as a separate optional download, this app allows you to generate SDL GameController mappings for your controllers interactively. The mappings are saved to a log file at profiles/gamecontroller_log.txt. You can then add the mappings to profiles/gamecontroller_db.txt.
- The game now statically links to libstdc++, allowing it to run on old distros with an outdated C++ runtime. (#252)
- Scripts included with the release are now heavily optimized and several parts simplified. The fix_cases script replaces syscalls with native Bash 4 functionality and hence, file name checking is almost instantaneous on large folder trees.
- The setup script asks for Yes/No confirmation to proceed. It also ensures that the applications path (~/.local/share/applications) exists.
- Most libraries provided with the game have been upgraded: SDL_image 2.0.3, OpenAL Soft 1.19.0, ENet 1.3.13, image and audio libs.
- Audio libraries now use file-name versioning.
- License files are added for each of RVGL's dependencies.
- When a Controller mapping is available, Controller Settings displays the device name specified in the mapping. The mappings are also logged.
- Keyboard Pause/Break key can be used to pause the game.
- Going back (Esc) from Create Profile screen should no longer create a profile.
- Video Settings no longer shows "Windowed" when in fullscreen and the display mode couldn't be detected.
- The "Final Lap!" text and spru were flashing alternately in a disorienting way (especially noticeable at low frame rates). This is now fixed.
- Attempt to fix audio and music not paused when they should be. (#254)