Commit 8899564d authored by Huki's avatar Huki
Browse files

update for 21.0905a-1

parent 4ad592df
book
.backup*
public
mdbook*
......@@ -4,11 +4,11 @@
## Dev Mode
Below, you can find technical information that is intended for modders, track
Below, you can find technical information that is intended for modders, track
creators and car creators.
Working with tracks and cars is more convenient in *Dev mode*. This is a
special mode that enables several advanced features for content creation. To
Working with tracks and cars is more convenient in *Dev mode*. This is a
special mode that enables several advanced features for content creation. To
access this mode, run RVGL with the `-dev` command line.
> Enabling Dev mode flags your cars as CHT. Avoid using it for normal gameplay.
......@@ -17,78 +17,92 @@ access this mode, run RVGL with the `-dev` command line.
> These options are available only in Dev mode.
**Calculate Car Stats**: This game mode, accessible from the *Start Race* menu,
allows you to calculate stats of your car for frontend display. The top speed,
acceleration, weight and transmission are calculated. Page Up / Page Down allow
**Calculate Car Stats**: This game mode, accessible from the *Start Race* menu,
allows you to calculate stats of your car for frontend display. The top speed,
acceleration, weight and transmission are calculated. Page Up / Page Down allow
you to change the car and restart the test run.
**Save Current Car Info**: Use this in-game menu option to re-save the current car's
*parameters.txt* info. The saved file is up to date with all supported entries. Original
**Save Current Car Info**: Use this in-game menu option to re-save the current car's
*parameters.txt* info. The saved file is up to date with all supported entries. Original
cars are re-signed to ensure that they are not treated as CHT.
**Edit Mode**: Select the edit mode for the in-game editor from the *Start Race* menu.
As of version `20.0210a`, it is also possible to change the edit mode on the fly from
**Edit Mode**: Select the edit mode for the in-game editor from the *Start Race* menu.
As of version `20.0210a`, it is also possible to change the edit mode on the fly from
the in-game menu.
### Commands
> These commands work in Dev mode, some commands may also work by manually entering
> These commands work in Dev mode, some commands may also work by manually entering
MAKEITGOOD edit mode or other appropriate cheat codes.
**Preview Objects**: In Objects edit mode, press Ctrl + P to preview object animations
instantly, then use the same command to get back to editing. The same shortcut is
**Generate AI Lines from Ghost Path**: You must be in AI Nodes edit mode in combination
with Time Trial mode. You must also have completed a best lap so you have a valid
ghost car. Assuming you're using the Modern Editor, press G to generate a path from
the ghost car. Then press Shift + G to update the racing lines, and Ctrl + Shift + G
to update the overtaking lines.
**Generate Curves for AI Lines**: You must be in AI Nodes edit mode. This functionality
helps you generate smooth curves at turns and chicanes. You select 3 consecutive nodes,
one before the turn, one at the turn itself and one after the turn. Assuming you're
using the Modern Editor, hold down the N key and select the 3 nodes. These are control
points from which the curve is generated. Adjust the curve by moving the middle node's
racing / overtaking lines. When you're satisfied, press Shift + N to update the racing
lines, and Ctrl + Shift + N to update the overtaking lines.
**Preview Objects**: In Objects edit mode, press Ctrl + P to preview object animations
instantly, then use the same command to get back to editing. The same shortcut is
used to preview / refresh visiboxes.
**Cheat Codes**: Certain cheats such as TVTIME (F5, F6 cameras) or CHANGELING
(Page Up / Page Down to change car) are enabled in Dev mode. It is also possible
**Cheat Codes**: Certain cheats such as TVTIME (F5, F6 cameras) or CHANGELING
(Page Up / Page Down to change car) are enabled in Dev mode. It is also possible
to disable previously enabled cheat codes by adding an '!' at the end.
**Show Camera Position**: Press Right Shift + F9 to show position and direction of the
camera. This can help set the required StartPos and StartRot values in the level \*.inf
**Show Camera Position**: Press Right Shift + F9 to show position and direction of the
camera. This can help set the required StartPos and StartRot values in the level \*.inf
file, by placing the camera at the start line and noting the camera values.
**Camera Commands**: Use Caps Lock to toggle the camera movement speed and the zoom
speed when using scroll wheel. Use Z for zooming in and X for zooming out. To tilt the
camera, use Alt + Mouse X (horizontal mouse movement). Use C to reset the camera zoom
**Camera Commands**: Use Caps Lock to toggle the camera movement speed and the zoom
speed when using scroll wheel. Use Z for zooming in and X for zooming out. To tilt the
camera, use Alt + Mouse X (horizontal mouse movement). Use C to reset the camera zoom
and tilt.
**Keep game running in background**: Press Shift + F9 to keep the game running when
**Keep game running in background**: Press Shift + F9 to keep the game running when
it's not focused. This is similar to the `-nopause` command line.
**Hide HUD and Menus**: Shift + F5 hides the HUD. Shift + Ctrl + F5 hides the in-game
**Hide HUD and Menus**: Shift + F5 hides the HUD. Shift + Ctrl + F5 hides the in-game
menu. This can help with taking screenshots of your car or track.
**Full Track Reload**: Restarting the level does a full reload in Dev mode.
**Instant Car Refresh**: Press Ctrl + R to refresh the current car. This allows you to
quickly make changes to the car parameters and data and view those changes in-game.
**Instant Car Refresh**: Press Ctrl + R to refresh the current car. This allows you to
quickly make changes to the car parameters and data and view those changes in-game.
This works both at the Frontend selection screen and in-game.
**Camera Edit Mode**: Press Ctrl + C to interactively edit the Hood / Rear view camera
parameters. Use Numpad keys to move the camera and hold down Ctrl for more precise
movement. Right Ctrl + F11 and Right Shift + F11 cycle through the available Follow
**Camera Edit Mode**: Press Ctrl + C to interactively edit the Hood / Rear view camera
parameters. Use Numpad keys to move the camera and hold down Ctrl for more precise
movement. Right Ctrl + F11 and Right Shift + F11 cycle through the available Follow
and Attached cameras, respectively.
**Network Ping**: In Multi-Player sessions, ping and traffic information can be checked
by pressing Ctrl + P to enable the debug display. This works in Dev mode or with
**Network Ping**: In Multi-Player sessions, ping and traffic information can be checked
by pressing Ctrl + P to enable the debug display. This works in Dev mode or with
`-showping` command line.
## Modern Editor
As of version `19.0907a`, there is support for a modern editor scheme and alternate
As of version `19.0907a`, there is support for a modern editor scheme and alternate
camera controls. These options can be enabled from the *[Editor]* section in *rvgl.ini*.
- *LegacyCameraControls*: Set this to 0 to use modern camera navigation controls.
The changes include a more *standard* WSAD set (where W = forward, S = back,
Q = up, E = down), and Y-axis movement that follows the mouse motion instead
of being inverted.
- *LegacyEditorControls*: Set this to 0 to enable the modern editor workflow.
- *LegacyCameraControls*: Set this to 0 to use modern camera navigation controls.
The changes include a more *standard* WSAD set (where W = forward, S = back,
Q = up, E = down), and Y-axis movement that follows the mouse motion instead
of being inverted.
- *LegacyEditorControls*: Set this to 0 to enable the modern editor workflow.
The supported edit modes are documented below.
### Common Tools
The modern editor contains new tools that perform Translation, Rotation and Scaling
in a much more intuitive way. These manipulations can be axis-constrained (one,
The modern editor contains new tools that perform Translation, Rotation and Scaling
in a much more intuitive way. These manipulations can be axis-constrained (one,
two or all axes) and set to occur in World or Object space.
- 1 = Translate
......@@ -126,6 +140,12 @@ two or all axes) and set to occur in World or Object space.
- Ctrl + Left Mouse over connection line = Inserts a segment inbetween
- Delete = Remove segment (Selected first, then if any under cursor)
- Drag white line on selected segment = modifies racing line
- G = Generate ghost path (in Time Trial mode)
- Shift + G = Update racing line from ghost path
- Ctrl + Shift + G = Update overtaking line from ghost path
- N + Left Mouse = Select nodes for curve generation
- Shift + N = Update racing line from generated curve
- Ctrl + Shift + N = Update overtaking line from generated curve
*Hold Alt = Changes to "Alt" mode.*
......
......@@ -4,10 +4,10 @@
Customize user cars through new entries in the car's "parameters.txt" file.
> For compatibility with the original versions of the game, the "parameters.txt"
specification supports a *comment closer*. This is a closing paranthesis following
the semi-colon, or `;)`. Prepending this at each line causes the line to be skipped
by the original versions while it is still read by RVGL. A line can be included
> For compatibility with the original versions of the game, the "parameters.txt"
specification supports a *comment closer*. This is a closing paranthesis following
the semi-colon, or `;)`. Prepending this at each line causes the line to be skipped
by the original versions while it is still read by RVGL. A line can be included
twice, first without the comment closer and then with. Eg.,
> ```
> Rating 4 ; Pro in original version
......@@ -16,19 +16,19 @@ twice, first without the comment closer and then with. Eg.,
## Carbox Art
To add a box-art image to your car, use the TCARBOX parameter. This entry works the
same way as the TPAGE parameter. General syntax:
To add a box-art image to your car, use the TCARBOX parameter. This entry works the
same way as the TPAGE parameter. General syntax:
```
TCARBOX <path to carbox texture>
```
```
It is recommended that the carbox texture use a pure white (RGB 255,255,255) background.
## Custom Car Sound
The keyword SFXENGINE adds a custom engine sound for your car. The way the engine
sound is used by the game depends on the car class (Electric or Glow). The keyword
SFXHONK adds a custom horn sound. The keyword SFXSERVO adds a custom servo
The keyword SFXENGINE adds a custom engine sound for your car. The way the engine
sound is used by the game depends on the car class (Electric or Glow). The keyword
SFXHONK adds a custom horn sound. The keyword SFXSERVO adds a custom servo
sound (i.e., wheel turning effect).
General syntax:
......@@ -36,35 +36,35 @@ General syntax:
SFXENGINE <path to wav file>
SFXHONK <path to wav file>
SFXSERVO <path to wav file>
```
```
## Custom Shadow
Each car can have its own shadow map, or it can use one of the preset stock
shadows (useful for default car repaints).
Each car can have its own shadow map, or it can use one of the preset stock
shadows (useful for default car repaints).
The shadow map is generally a 64x64 texture containing a white silhouette of the car
on a black background. They can be generated from the top view of the car
The shadow map is generally a 64x64 texture containing a white silhouette of the car
on a black background. They can be generated from the top view of the car
(preferably from a 3D modeller) and then post-processed in an image editor.
RVGL requires 5 coordinates to position the shadow under the car. These are the
Left, Right, Front and Back edges and Height relative to the model center.
These values are independent of the car CoM and do not need to be updated upon
RVGL requires 5 coordinates to position the shadow under the car. These are the
Left, Right, Front and Back edges and Height relative to the model center.
These values are independent of the car CoM and do not need to be updated upon
changing the CoM.
Parameters to be added:
Parameters to be added:
+ `TSHADOW` to specify the shadow texture, similar to TPAGE and TCARBOX
parameters. This parameter can be ignored if the car is not using a
custom shadow texture.
+ `SHADOWINDEX` to use one of the default car shadows found in
"cars\\misc\\shadow.bmp". Set this parameter to -1 to use the generic
rectangle shadow. This parameter can be ignored if TSHADOW is used.
+ `SHADOWTABLE` followed by 5 offset values for the Left / Right / Front /
Back / Height of shadow relative to model center. Remove this line or set
all offsets to zero if you'd like the shadow to be automatically placed
under the car's body (in this case, the shadow will not cover wheels
extending out of the body).
+ `TSHADOW` to specify the shadow texture, similar to TPAGE and TCARBOX
parameters. This parameter can be ignored if the car is not using a
custom shadow texture.
+ `SHADOWINDEX` to use one of the default car shadows found in
"cars\\misc\\shadow.bmp". Set this parameter to -1 to use the generic
rectangle shadow. This parameter can be ignored if TSHADOW is used.
+ `SHADOWTABLE` followed by 5 offset values for the Left / Right / Front /
Back / Height of shadow relative to model center. Remove this line or set
all offsets to zero if you'd like the shadow to be automatically placed
under the car's body (in this case, the shadow will not cover wheels
extending out of the body).
General syntax:
```
......@@ -75,24 +75,24 @@ SHADOWTABLE -10.2 10.2 30.4 -30.4 -4.2
## Stats Display
User-made cars can show the Speed / Acceleration / Weight bars in the car
User-made cars can show the Speed / Acceleration / Weight bars in the car
selection screen.
To use this feature, calculate and fill in the TopEnd and Acc parameter values
using the *Calc Car Stats* option in Dev mode. Weight takes the same value as the
To use this feature, calculate and fill in the TopEnd and Acc parameter values
using the *Calc Car Stats* option in Dev mode. Weight takes the same value as the
car mass. RVGL also requires the Trans parameter to be properly filled in.
Then, add the following line in the Frontend section of the parameters file.
Then, add the following line in the Frontend section of the parameters file.
```
Statistics TRUE
```
> TopEnd gives the maximum top-speed that can actually be reached by the car.
> TopEnd gives the maximum top-speed that can actually be reached by the car.
Acc gives time, in seconds, the car takes to reach the top speed.
## Hood & Rear Camera
Configure the Hood and Rearview cameras for your car by adding the `CAMATTACHED`
Configure the Hood and Rearview cameras for your car by adding the `CAMATTACHED`
section in your parameters file. Below is a sample:
```
;====================
......@@ -111,19 +111,19 @@ FixedLook true ; Is look fixed or moving
## Camber Angle
Configure the camber angle for each wheel of your car using the `Camber` entry.
This sets the rotation angle (in degrees) of the wheel along the Z axis.
Configure the camber angle for each wheel of your car using the `Camber` entry.
This sets the rotation angle (in degrees) of the wheel along the Z axis.
General syntax (in each WHEEL section):
```
Camber -10
```
> The camber sign is automatically adjusted for left / right wheels. A negative
> The camber sign is automatically adjusted for left / right wheels. A negative
Camber value makes the bottom of the wheel farther out than the top.
## Special Effects
Enable Rotor, UFO or Mystery effect for your user car by adding new parameters
in the "Handling related stuff" in the parameters file. General syntax:
Enable Rotor, UFO or Mystery effect for your user car by adding new parameters
in the "Handling related stuff" in the parameters file. General syntax:
```
Flippable FALSE ; Rotor car effect
Flying FALSE ; Flying like the UFO car
......@@ -131,27 +131,27 @@ ClothFx FALSE ; Mystery car cloth effect
```
Flying CPU cars will be able to steer in the air.
> Mystery car effect will also need modification to the car mesh to flag the
> Mystery car effect will also need modification to the car mesh to flag the
polygons that form the edges of the cloth.
To use Panga effect (i.e., head turning and ducking according to speed),
modify the SPINNER section. Further, you can use rotation only, ducking
To use Panga effect (i.e., head turning and ducking according to speed),
modify the SPINNER section. Further, you can use rotation only, ducking
(translation) only, or both. General syntax (in the SPINNER section):
```
Type 0 ; 1: Default rot, 2: Turn with steer,
Type 0 ; 1: Default rot, 2: Turn with steer,
; 4: Translate with speed, 6: both 2 and 4
Trans 0.000000 3.000000 6.000000 ; Translation max
TransVel 0.001000 ; Velocity factor
```
> Unlike in legacy versions (eg., default Panga car) where `AngVel` was zero to
make the spinner turn with steer, now AngVel specifies the speed of turning,
so it should be non-zero. An AngVel value of zero denotes that the spinner
> Unlike in legacy versions (eg., default Panga car) where `AngVel` was zero to
make the spinner turn with steer, now AngVel specifies the speed of turning,
so it should be non-zero. An AngVel value of zero denotes that the spinner
doesn't turn at all.
## CPU Selectability
Disable a user car for CPU selection by adding the `CPUSelectable` parameter in
Disable a user car for CPU selection by adding the `CPUSelectable` parameter in
the "frontend and selectability" section in the parameters file. General syntax:
```
CPUSelectable FALSE
......@@ -159,20 +159,30 @@ CPUSelectable FALSE
## Car Classes
As of version `20.0210a`, there are new Rating and Obtain values. Set Rating to
5 to add a Super Pro car. These are a class of cars faster than Pros. Set Obtain
As of version `20.0210a`, there are new Rating and Obtain values. Set Rating to
5 to add a Super Pro car. These are a class of cars faster than Pros. Set Obtain
to 5 to unlock the car upon completing Stunt Arena. General syntax:
```
Rating 5 ; Skill level (0-5)
Obtain 5 ; Obtain method (0-5 or -1)
```
## Weapon Offsets
As of version `21.0905a`, there are new parameters to define weapon generation
offsets for different classes of weapons. These go in the "Handling related stuff"
section in parameters.txt. The `Weapon` parameter is deprecated although it is
still accepted for backward compatibility. General syntax:
```
WeaponOffset1 0.000 -32.000 64.000 ; Offset for shockwaves and fireworks
WeaponOffset2 0.000 -16.000 80.000 ; Offset for water bombs
```
## Car Skins
Additional skins can be added for each car, selectable at the Car Preview screen.
Skins are detected based on a suffix system, i.e., if the TPAGE points to 'car.bmp',
then 'caror.bmp', 'car1.bmp' and 'car-bleh.bmp' are valid skins. Files that start
with the TCARBOX filename are skipped. The length of the skin suffix is currently
Additional skins can be added for each car, selectable at the Car Preview screen.
Skins are detected based on a suffix system, i.e., if the TPAGE points to 'car.bmp',
then 'caror.bmp', 'car1.bmp' and 'car-bleh.bmp' are valid skins. Files that start
with the TCARBOX filename are skipped. The length of the skin suffix is currently
limited to 11 characters.
> As of version `18.1110a`, skins are randomized for CPU cars and in Random Cars mode.
......@@ -7,7 +7,9 @@
; - Each has a main body part and up to 15 child bones which follow their parent bone.
; - Every animation can have up to 256 keyframes, defining the bone positions at that time.
; The game then interpolates the animation between those keyframes.
; - Up to 64 custom model slots are supported.
; - Each bone can have a light, sound effect and spark generator attached to it.
; These attachments can be created, updated or deleted at any keyframe.
; - Up to 64 custom model and sfx slots are supported.
;
; The type of interpolation can be one of the following:
; 0: linear. Constant velocity and angular velocity.
......@@ -21,7 +23,7 @@
;==============================================================================
; ANIMATION
;==============================================================================
; Possible options that can be defined within an animation block, and their
; Possible options that can be defined within an animation block, and their
; default values are given below:
;
; ANIMATION {
......@@ -29,6 +31,7 @@
; Name "DEFAULT" ; Display name (currently unused)
; Mode 0 ; 0: loop / 1: animate a single time, stopping after the last frame / 2: back and forth (reverse after last keyframe)
; NeedsTrigger false ; Whether the animation needs to be triggered
; TriggerOnce false ; Whether the animation can be triggered multiple times
; PreCountdown false ; Whether the animation must start before countdown (in multiplayer)
;
; BONE {
......@@ -50,6 +53,27 @@
; Translation 0.000 0.000 0.000 ; Translation
; RotationAxis 0.000 -1.000 0.000 ; Rotation axis
; RotationAmount 0.000 ; Rotation (in degrees)
;
; ; Light, sound and spark generator for this bone
; ; values apply to all future keyframes until they are changed again
; SFX {
; SfxID -1 ; Sound ID (0 to 63, or -1)
; Range 0 ; Range multiplier (0 to 100)
; Looping false ; Whether the sound is continuous or one-shot
; }
; SPARK {
; Type -1 ; Particle type, defined in properties.txt (0 to 63, or -1)
; AverageSpeed 0 ; Average speed of particle (0 to 200)
; VariableSpeed 0 ; Speed variation of particle (0 to 200)
; Frequency 0 ; Particle generation frequency (1 to 200, or 0 for one-shot)
; }
; LIGHT {
; Type -1 ; Light type (0 - omni, 1 - omni normal, 2 - spot, 3 - spot normal, or -1 to disable)
; Color 0 0 0 ; Light color (RGB values, -1024 to 1024 for each component)
; Reach 0 ; Light reach distance
; ConeSize 0 ; Cone size for spot lights (1 to 180)
; FlickerSpeed 0 ; Flicker speed (1 to 255, 0 to disable)
; }
; }
; }
; }
......@@ -60,7 +84,7 @@
; Models
;--------
MODEL 0 "tw_plane"
MODEL 0 "tw_plane" ; This loads "custom/tw_plane.m"
MODEL 1 "tw_plane_propellor"
MODEL 2 "tw_train"
MODEL 3 "tw_train_fwheel"
......@@ -78,6 +102,14 @@ MODEL 14 "mhk_robot_elbow"
MODEL 15 "mhk_robot_lower_arm"
MODEL 16 "mhk_robot_hand"
;---------------
; Sound effects
;---------------
SFX 0 "gator" ; This loads "custom/gator.wav"
SFX 1 "tw_plane"
SFX 2 "tw_plane_propellor"
;----------------------------
; Example 1: Toy World Plane
;----------------------------
......
This diff is collapsed.
......@@ -4,28 +4,28 @@
## 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
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](https://re-volt.io/downloads/game).
The Windows versions support DirectPlay lobby applications like GameRanger or
GameSpy Arcade. Support for this is provided in *dplobby_helper.dll*. Running the setup
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
> 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](https://en.wikipedia.org/wiki/ANGLE_%28software%29) 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
On Windows systems with poor or non-existent OpenGL support, RVGL can take advantage of
Google's [ANGLE project](https://en.wikipedia.org/wiki/ANGLE_%28software%29) 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` for ANGLE Direct3D.
You can verify whether the Direct3D backend is being used by checking the Video Info
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.
......@@ -35,36 +35,36 @@ GL Version: OpenGL ES 3.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
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
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](https://rvgl.re-volt.io/downloads/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
> The recommended way of installing RVGL on Linux is through the
[install_rvgl.py](https://rvgl.re-volt.io/downloads/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
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
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
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
......@@ -91,19 +91,19 @@ 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
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
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.
## macOS
RVGL has been available on macOS since version `21.0125a`. It's distributed in
the form of universal binaries and has native support for 64-bit Intel and M1
RVGL has been available on macOS since version `21.0125a`. It's distributed in
the form of universal binaries and has native support for 64-bit Intel and M1
(ARM64) architectures.
These are the earliest devices that RVGL runs on:
......@@ -117,27 +117,32 @@ Mac Pro (Early 2008 or later)
Xserve (Early 2009)
```
The DMG available from the RVGL project page requires original game data. This is
not included in the DMG itself. However, a full game package is also available
The DMG available from the RVGL project page requires original game data. This is
not included in the bundle itself. However, a full game bundle is also available
from [Re-Volt I/O](https://re-volt.io/downloads/game).
If you got the minimal DMG from the RVGL project page, you must copy game files
to `RVGL.app/Contents/Resources` (see the next section on locating the data path),
but take care that you do *not* overwrite any of the existing files in the folder
(i.e., say NO to replace).
If you got the minimal DMG from the RVGL project page, you must copy game files
to `~/Library/Application Support/RVGL` (see the next section on locating the data
path), but take care that you do *not* overwrite any of the existing files in the
folder (i.e., say NO to replace).
### Data path on macOS
Right click the app and select `Show Package Contents`. The default data path is:
To see bundled resources, right-click the app and select `Show Package Contents`.
This takes you to a path similar to:
```
/Applications/RVGL.app/Contents/Resources
```
You can add custom content and content packs in here.
Content is not loaded directly from the bundle path. Instead, files are copied
to your data path on first run, and after each update. This ensures that content
is not lost when the app is updated or replaced.
Save game and configuration files are stored in a user-specific folder. Look for:
Game content, save games and configuration files are stored at one place in a
user-specific folder. Look for:
```
/Users/<user-name>/Library/Application Support/RVGL
```
You can place your custom content and content packs in here.
### OpenGL Support
......@@ -145,12 +150,18 @@ The OpenGL version available on macOS depends on the profile used by the game:
- When a Compatibility profile is used, the available OpenGL version is 2.1.
- When a Core profile is used, the available OpenGL version is 4.1.
When RVGL is installed and run for the first time, it automatically detects the
When RVGL is installed and run for the first time, it automatically detects the
best available OpenGL version and sets the profile accordingly.
To learn more about OpenGL profiles and how they can be configured, see the
To learn more about OpenGL profiles and how they can be configured, see the
[OpenGL Profiles](general.html#opengl-profiles) section.
> As of version `21.0905a` high DPI rendering is supported and enabled by
default. On supported devices, this causes the render resolution to be scaled
2x the screen resolution. This can be performance intensive, but reducing the
Antialias level should help in most cases. There is also disable this by setting
`HighDPI = 0` in *rvgl.ini*.
### Launch Parameters
To start the game with command line arguments, you have one of these options:
......@@ -160,12 +171,12 @@ To start the game with command line arguments, you have one of these options:
## Android
RVGL requires at least Android 3.1 with an OpenGL ES 2.0 capable GPU. It's
compatible with the ARMv7 32-bit processor, ARMv8 64-bit processor, x86 and
RVGL requires at least Android 3.1 with an OpenGL ES 2.0 capable GPU. It's
compatible with the ARMv7 32-bit processor, ARMv8 64-bit processor, x86 and