OS Specifics

Windows

RVGL for Windows is available either as an installable update or a portable package. Using the installer is recommended as it updates necessary registry entries and file permissions, and optionally creates a Desktop shortcut. Full game packages are provided at Re-Volt I/O.

The Windows versions support DirectPlay lobby applications like GameRanger or GameSpy Arcade. Support for this is provided in dplobby_helper.dll. Running the setup also ensures that the game is properly detected by lobby applications.

Running RVGL in Administrator mode is not necessary and not recommended. Instead, install the game to a locally accessible folder (such as My Documents), or run the RVGL setup which fixes permissions for you.

Direct3D Backend

On Windows systems with poor or non-existent OpenGL support, RVGL can take advantage of Google's ANGLE project which provides a compliant OpenGL ES implementation based on Direct3D 9 or 11. To use this support, edit rvgl.ini and set Shaders = 1 to enable the shader-based renderer, and set Profile = 3.

You can verify whether the Direct3D backend is being used by checking the Video Info section in profiles\re-volt.log. Below is a sample output:

GL Vendor: Google Inc.
GL Renderer: ANGLE (AMD Radeon™ R4 Graphics Direct3D11 vs_5_0 ps_5_0)
GL Version: OpenGL ES 2.0 (ANGLE 2.1.0.54118be67360)

Discord URI

RVGL registers the custom URI discord-472158403830218762:// for Discord Rich Presence integration. The registration is done only once during the RVGL setup. To customize the URI and set various launch parameters, edit the registry key at:

HKEY_CURRENT_USER\Software\Classes\discord-472158403830218762\shell\open\command

The "%1" at the end of the path is a required parameter. The default URI can be re-registered by running RVGL with the -register command line.

GNU/Linux

The recommended way of installing RVGL on Linux is through the install_rvgl.py python script. Ensure that your Linux system has the prerequisites: python3, wget, p7zip, unzip. Then run ./install_rvgl.py from an empty folder (say, ~/rvgl) and follow the on-screen instructions. The documentation below covers manual installation steps.

Before starting the game for the first time, run the setup script included in the package. The setup converts game files to lower case, adds necessary file permissions, and places an application launcher at ~/.local/share/applications.

Launch the game using the rvgl launch script. The launcher auto-detects your system type and launches the appropriate (32-bit or 64-bit) executable. The script also resolves dependencies by using libraries bundled with the game in place of missing libs. This allows the game to run without manual configuration on a wide range of systems, as long as the OpenGL drivers, SDL2 and SDL2_image packages are installed.

All game files must be in lower case. To repair file names after installing custom content, run the fix_cases script. Starting from version 18.1020a, these scripts are require Bash 4.

Required Packages

# Debian / Ubuntu
sudo apt install libsdl2-2.0-0 libsdl2-image-2.0-0
sudo apt install libopenal1 libenet7 libunistring2
sudo apt install libjpeg8 libpng16-16 libtiff5 libwebp6
sudo apt install libvorbisfile3 libflac8 libmpg123-0 libfluidsynth1

# Arch Linux
sudo pacman -S sdl2 sdl2_image
sudo pacman -S openal enet libunistring
sudo pacman -S libjpeg libpng libtiff libwebp
sudo pacman -S libvorbis flac mpg123 fluidsynth

# Fedora
sudo yum install SDL2 SDL2_image
sudo yum install openal enet libunistring
sudo yum install libjpeg libpng libtiff libwebp
sudo yum install libvorbis flac mpg123 fluidsynth

Discord URI

RVGL registers the custom URI discord-472158403830218762:// for Discord Rich Presence integration. The registration is done only once during the RVGL setup. To customize the URI and set various launch parameters, edit the Desktop entry at:

~/.local/share/applications/discord-472158403830218762.desktop

The "%u" at the end of the path is a required parameter. The default URI can be re-registered by running RVGL with the -register command line.

Android

Locating the data path

The following locations are checked in order for the game files:

/sdcard/RVGL
/storage/sdcard0/RVGL
/storage/sdcard1/RVGL
/storage/emulated/legacy/RVGL
/storage/emulated/0/RVGL
/storage/emulated/1/RVGL
/storage/extSdCard/RVGL

If you already ran the app, it will automatically create the RVGL folder with updated assets. In this case, extract the full game data into this folder, taking care not to overwrite any of the existing files (i.e., say NO to replace).

Generated files

  • A file named rvgl_version.txt is created on first run. Deleting it will force the game to re-extract the latest assets from the apk.
  • The log file is generated at profiles/re-volt_log.txt.
  • Running the RVGL Controller Map app (see below) saves controller mappings to profiles/gamecontrollerdb.txt.
  • Advanced settings can be configured from profiles/rvgl.ini. To display the frame rate, set ShowFPS to 1. To set the device orientation, set Orientation to a value between 0-5.

Improving performance

The Shader Edition might benefit from level world (*.w) files optimized with WorldCut to have larger sized meshes. As of version 18.1126a, optimized level files are included in the app package.

Gameplay tips

  • Flip Car: When the car is upside down, tap anywhere at the centre of the screen (eg., on the car itself) to flip the car.
  • UI navigation: Tap anywhere outside the menu box to go back to the previous screen, or use the Back button on the device.

Native Multisampling

Native multisampling is very fast on embedded GPUs and enjoys wider support:

  • 2x or 4x native multisampling can be enabled on embedded GPUs with virtually no performance loss.
  • It's supported on low end hardware like the Adreno 203.
  • It can be used with either the shader-based GLES2+ renderer or the legacy GLES1 renderer.

However, native multisampling cannot be configured in-game from Render Settings. It must be set directly in rvgl.ini through the Antialias key. It's usually safe to set it to 2 or 4. The behavior is undefined when an unsupported value is used. The currently used Antialias level can still be checked from Render Settings.

The alternative is to use Frame Buffer Objects for multisampling, which can be quite slow on embedded GPUs. Because of the performance benefits, FBO is disabled by default on Android.

Controller Map

Available as a separate optional download, the RVGL Controller Map app allows you to generate mappings for your controllers interactively. Once configured, the mappings are automatically saved to profiles/gamecontrollerdb.txt and is used by the game upon next start.

Command Lines

As of version 20.0210a, it is possible to launch the app from the adb shell with optional command line arguments. These are set through a string extra called args.

am start -n com.rvgl.rvgl/.RVGLActivity -e args "-nointro -lobby 1.1.1.1"