********************************************************************************
**                               RVGL Changelog                               **
********************************************************************************

21.0930a-1:
| Bug-fix release.
| Pumped network version.

Add:
  [General]
  - Linux: Builds for armhf and arm64 are now included. The 'rvgl' launch 
    script is updated to auto-detect these architectures and launch the 
    appropriate build.

Mod:
  [General]
  - Linux: The 'rvgl' launch script now uses 'ldd' in place of 'ldconfig' to 
    resolve libraries. This fixes an error message about root permissions.
  - Weapon generation and firework target display use a better offset 
    computation for the low-CoM fix.

Fix:
  [General]
  - Object Animation: Fixed interpolation glitches in sound effects.
  - Fixed a reposition immediately at countdown in some custom tracks.
  - Fixed the displayed list of stars overflowing in Stunt Arena.
  [Input]
  - Fixed a crash on Windows 7 when certain controllers are plugged in.
  [Multi]
  - Fixed various inconsistencies in the transfer of star in Battle Tag, 
    like the wrong player appearing to hold the star, timer freezing and
    inability to transfer the star.
  - Improved packet verification and fixed a bug that caused the same packet to 
    be received twice in rare occasions.

--------------------------------------------------------------------------------

21.0905a-1:
| Pumped network version.

Add:
  [General]
  - Object Animation: Added support for lights, sound effects and sparks. Each
    bone can have a 3d sound, light and spark generator attached to it. These
    can be created and destroyed at any keyframe. Sounds can be one-shot or
    looping. See the docs for more details.
  - Object Animation: Non-looping animations (Mode 1) can now be triggered
    multiple times. Set 'TriggerOnce' to 'false' to enable this behavior.
  - For cars, the 'Weapon' key in parameters.txt is now deprecated. Instead, 2
    new keys have been added: 'WeaponOffset1' (for shockwaves and fireworks)
    and 'WeaponOffset2' (for water bombs).
  - Added support for Slovenian language (thanks to Mirko Ficko).
  [Graphics]
  - Added support for High DPI rendering (eg., on macOS with a retina display).
    This can be disabled by setting 'HighDPI = 0' in rvgl.ini.
  - Linux: Added option to keep the Desktop compositor enabled when the game is
    running. This allows smoother transition between RVGL and other windows, at
    the cost of slightly reduced performance. Set 'Compositor = 1' in rvgl.ini.
  [Multi]
  - Added support for blocking a player by IP address. The host can select a
    player in Waiting Room and use 'Ctrl + Shift + D' to disconnect and block
    the player from connecting again during the session.
  - Global Blocklist: In addition to dynamic blocking, a file containing IPs to
    block can be loaded at session start. Create 'profiles\blocklist.txt' with
    one entry per line. Then, launch RVGL with the '-blocklist' command line.

Mod:
  [General]
  - The following libraries are upgraded: SDL -> 2.0.14, ENet -> 1.3.17,
    OpenAL Soft -> 1.21.1 (Windows).
  - On macOS, assets are loaded from the 'Application Support' folder so the
    content is not lost when the RVGL.app is updated or replaced. Assets are
    copied from the bundle on first run.
  - Improved assets handling on Android and macOS. Installing the full game
    bundle (APK or DMG) over a previously installed partial bundle correctly
    copies the full game assets again.
  - Editor: Improved support for AI line creation from ghost path and curve
    generation. These features are now supported by the modern editor. See the
    docs for the updated list of commands.
  - Editor: Several message boxes are replaced with in-game messages.
  [Graphics]
  - Game window should no longer minimize when a message box is displayed.
  - Log the window size and render resolution at startup.
  [Audio]
  - Initialize audio device with a 48 kHz sample rate when available.
  - FluidSynth 2 is supported for MIDI playback.
  [Input]
  - Android: Updated the Controller Map configuration app.
  - Updated the SDL GameController mapping database.
  - Log information about Force Feedback support.

Fix:
  [General]
  - Several fixes for low CoM vehicles: (1) Transfer of electropulse between
    low-CoM and high-CoM cars not working; (2) Weapons spawning underground or
    exploding onto the car itself; (3) Trigger boxes failing hit tests.
  - Better support for flippable cars: When these cars are upside-down, weapons
    and cameras (hood and rear-view) are now oriented properly.
  - Fixed weapons like battery and electropulse crashing the game if the car
    has an empty body mesh.
  - Fixed an exploit that let the player skip through a championship race by
    repeatedly pressing Enter at the Quit menu option.
  - Fixed a collision issue when wall-riding. When merging close collisions,
    take into account alignment along all 3 axes. This fixes situations where
    the wheels clip collision polygon edges, causing the car to spin out.
  - Object Animation: Fixed a collision glitch when the car is on an animated
    platform that is moving away from the world NCP bounds.
  - Android: Fixed crash at start on Android 4.x devices.
  - Editor: Fixed empty meshes unselectable in Objects and Instances modes.
  - Editor: Fixed invalid flags causing crash in Lights edit mode.
  - Editor: Fixed selection of overlapping Fields and Triggers.
  [Graphics]
  - Fixed ball bearing texture cut off in the weapon holder.
  [Audio]
  - Fixed inconsistency in playing frontend music when music is turned off.
  [Multi]
  - Fixed a precision loss in the Battle Tag timer.

--------------------------------------------------------------------------------

21.0125a:
| Bug-fix release.
| Pumped network version.

Add:
  [General]
  - Initial macOS release: Supports OSX 10.9 and above on 64-bit Intel and M1
    architectures.

Mod:
  [General]:
  - Packs: The packlist file included with RVGL is renamed "sample.txt" so it
    doesn't overwrite the default packlist.
  - Cups: Invalid class table entries are automatically fixed up instead of
    rejecting the cup file.
  - Cups: Support for zero tries and negative point values.
  - Cups: Custom skins can be selected by CPU cars.
  - Improved handling of missing game data. Display a helpful warning and avoid
    too many message boxes or game crashing.
  [Input]
  - Pressing F8 to take a screenshot no longer skips championship end screen.
  - Updated SDL GameController mapping files.

Fix:
  [General]
  - Cups: Fixed crash when not enough cars are available in a class.
  - Fixed unfinished players marked as finished in the session log.
  - Fixed crash and glitches when no level collision data is found or an empty
    car hull file is present.
  [Graphics]
  - Fixed crash caused by memory corruption when loading zero polygon meshes.
  - Editor: Fixed portal rendering issue in legacy renderer.

--------------------------------------------------------------------------------

20.1230a:
| Pumped network version.

Add:
  [General]
  - Content Packs: The game now supports a pack management system similar to
    tools like Mod Organizer. Content can be placed in multiple folders and
    enabled selectively through a packlist file. There is a new "packs" folder
    where packs and packlists are loaded from. The default packlist is
    "packs/default.txt".
    The command line "-packlist <name>" can be used to select a different
    packlist. This causes the packlist "packs/<name>.txt" to be loaded.
  - Custom Cups: Added support for custom championship cups. Each cup is
    defined in a text file placed in the "cups" folder. Use the "-nousercups"
    command line to temporarily disable them.
  - For custom frontends, there is a new camera view (ID 24) that is used at
    the cup selection screen when a custom cup is selected.
  - Editor: Modern editor now supports Light and Portal modes.
  [Graphics]
  - Added texture animation support for non-world meshes (*.m and *.prm files).
    Animation data is stored in the world file as usual, but models can now set
    the Texture Animation face flag, just like world faces.
  - Added support for mirrored-repeat texture mapping for levels. To use this,
    set the TEXTUREPROPS wrap mode to 2.

Mod:
  [General]
  - Editor: Modern editor is made the default.
  - Editor: No longer create dummy files in place of missing level files.
  - Session CSV once again prints unfinished players in the results table.
  - Replay and Cup selection now have search support.
  [Multi]
  - Difficulty setting is once again taken into account for multiplayer clients
    that use the "-gazzasaicar" command line.

Fix:
  [General]
  - Editor: Fixed glitchy axes in modern editor when the level has just loaded.
  - Editor: Fixed several scaling issues in modern editor. Ensure a minimum
    box size for zones, triggers, etc.
  [Graphics]
  - Fixed crash when a car using the Mystery cloth effect has no body mesh.
  - Editor: Ensure the editor text is drawn on top of other elements.
  [Multi]
  - Fixed a bug that can cause P2P connections to fail in rare cases.

--------------------------------------------------------------------------------

20.0930a:
| Bug-fix release.
| Pumped network version.

Add:
  [Graphics]
  - Editor: New command for rotating the camera about Z axis (tilt) for a Dutch
    Angle effect. Hold down Alt and move the mouse horizontally. Use the reset
    command (C) to reset the tilt.
  [Input]
  - New command line '-nojoy' to allow completely disabling SDL2 joystick and
    game controller subsystem (similar to '-nosound' for audio).

Mod:
  [General]
  - When searching for car skins, use the folder path from tpage file rather
    than hardcoding search to the car's root folder. This allows placing the
    default tpage and additional skins in a sub-folder.
  - Android: On first run, check for game data and do not extract assets from
    the APK if the RVGL folder is empty.
  - Editor: Updated the spark generator object to support the full range of 64
    spark IDs.
  [Graphics]
  - The maximum number of trails visible at a time is increased to 256. Each
    trail supports up to 16 trail bits (Length property).
  - Editor: Swapped the zoom controls. Now use Z for zoom in, X for zoom out
    and C for resetting the camera lens.
  - Windows: Option 'Profile = 3' automatically attempts an ES 3.0 context and
    falls back to ES 2.0 mode. Removed the now redundant 'Profile = 4' option.
  - Option 'Profile = 1' attempts to create an OpenGL 4.5 Core context and
    falls back to OpenGL 3.2 Core.
  [Audio]
  - Windows: Roll back OpenAL Soft to 1.19.1 to fix several issues.
  - OpenAL version is logged to the log file.

Fix:
  [General]
  - Ensure the correct class is checked for progress unlocking.
  - Editor: Fixed flawed intersection tests that caused several issues in
    modern mode.
  - Fixed a bug in the generated session CSV where unfinished players were
    marked as finished when '-savereplays' was also used.
  [Graphics]
  - Editor: Fixed trails glitching out when switching to Objects Preview.
  [Input]
  - Fixed a potential crash when entering the controller config menu after
    hotswapping controllers.
  [Multi]
  - Ensure that clients use the default catchup mode in Battle Tag. This fixes
    yet another 'it' car speedup bug.

--------------------------------------------------------------------------------

20.0905a:
| Pumped network version.

Add:
  [General]
  - The behavior when repositioning to start grid in Time Trial mode can be
    customized. There is a new *.inf key STARTGRIDRESET that can be 0 or 1. 0:
    reset to the node above start grid, 1: actually reset to start grid (the
    default).
  - Object Animation: New option PreCountdown in the ANIMATION section to
    disable syncing in multiplayer and always start the animation before
    countdown. This is useful, eg., for platforms that are supposed to come up
    during the countdown.
  - Level Properties: There is now support for custom slots in addition to the
    default IDs. Up to: 64 Materials, 32 Corrugations, 32 Dusts, 64 Sparks and
    32 Trails are supported.
  - Level Properties: The MATERIAL section has a new Color property for editor
    display (currently unused).
  - Replay: Race results CSV is saved along with each saved replay.
  - The game can optionally have separate base and pref paths. Use new command
    lines '-basepath <path>' and '-prefpath <path>'. If no <path> is supplied,
    the default paths are used. These folders belong to the pref path: cache,
    profiles, replays and times. The default pref path is:
    - "C:\Users\<user>\AppData\Roaming\RVGL" (Windows)
    - "~/.local/share/RVGL" (Linux)
  [Graphics]
  - Windows: Added a new Profile option for forcing an ES3 profile with ANGLE
    Direct3D11 backend. This unlocks ES3 level features, such as UBO and
    disabling mipmap generation. In rvgl.ini, set 'Profile = 3' for a default
    ES2 profile (D3D9), and 'Profile = 4' to enforce an ES3 profile (D3D11).
  - Device creation fallback: Attempt fallback modes when device creation
    fails. The order is: OpenGL (shader) -> D3D (ANGLE) -> OpenGL (legacy).
  [Audio]
  - The 3D Sound object has a redesigned Mode option (0: Continuous, 1: Random,
    2: Play Once). There is a new Start Time flag to decide the time in seconds
    before the sound is played. This is only applicable to Play Once mode.

Mod:
  [General]
  - The following libraries are upgraded: SDL -> 2.0.12, SDL_image -> 2.0.5,
    OpenAL Soft -> 1.20.1 (Windows) / 1.19.1 (Android), ENet -> 1.3.15. The
    GLAD OpenGL loader was upgraded to 2.0.0-beta.
  - Android: The app now targets API 28 (Android 9) and supports the runtime
    permission model. The minimum supported version is now Android 3.1. Support
    for the ARMv5 32-bit architecture has been removed (minimum is now ARMv7).
  - Better message box behavior: Ensure the main window is properly restored
    once the message box is dismissed.
  - Replay: Reading of replay files at startup is better optimized.
  - Editor: Zones editor now shows whether a car has gone outside zone. In
    modern mode, N key toggles AI nodes display.
  - Additional stock cars (those not part of the stack like Clockworks and UFO)
    can now have custom carbox textures.
  [Graphics]
  - Windows: Updated ANGLE libs to the 3497 branch (Chrome 69). Uses custom
    built libs for Windows XP / Vista compatibility.
  - Windows: Removed the ID for Windows 10 from the manifest for better
    compatibility with Intel drivers. This enables native OpenGL support for
    old Intel chipsets running on Windows 10.
  - Shaders: Minor optimization in fragment shader code.
  - Shaders: Cached binaries are now saved to "cache\shaders".
  - Hide HUD now hides Replay, Spectator and No Pause text.
  [Audio]
  - Android: Integer decoder (Tremor) is now used to decode OGG on both 32-bit
    and 64-bit arm devices.
  [Input]
  - Android: Better controller support and HIDAPI support. Updated the RVGL
    Controller Map configuration app.
  - Updated SDL GameController mapping files.
  [Multi]
  - Re-enabled AI rubberbanding and difficulty setting in multiplayer.
  - Don't send data for objects that are almost still. This helps conserve
    bandwidth especially for objects that are always moving, like tumbleweeds
    and wobbly cones.

Fix:
  [General]
  - Level Properties: Fixed parsing of several TRAIL properties (Fades,
    Shrinks, Expands and Length). TexturePage -1 can now be used to disable
    texturing.
  - Ensure custom level progress is loaded so OBTAIN works correctly.
  - Object Animation: Cars on top of animated objects or platforms no longer
    fall through upon reposition.
  - Object Animation: Fixed improper case handling of custom animation model
    file names. This affects case-sensitive platforms like Linux.
  - Replay: Fixed a save game issue when selecting to view replay or restarting
    the race from replay mode.
  - Replay: Fixed a bug in replay file version check.
  - Fixed crash caused by unlinked AI nodes in sprint mode.
  - Fixed an AI recovery glitch when cars drop down during countdown.
  - Fixed rounding errors in pickup randomization that can cause the player to
    get the global weapon even when the probability should be 0%.
  - Editor: Fixed inability to deselect a trigger in legacy editor.
  - Linux: Game launcher now handles arguments with quotes.
  - Better logging of loaded files.
  [Graphics]
  - Camera low CoM fix now takes the orientation of car BBox into account.
  - Windows: Fixed a flicker when launching the game in fullscreen.
  - Shaders: Fixed the order in which debug lines are rendered.
  [Multi]
  - Fixed an overflow in network traffic values (Ctrl + P).

--------------------------------------------------------------------------------

20.0430a:
| Pumped network version.

Add:
  [General]
  - New WIND section in properties.txt to modify the behavior of Wind force
    fields. Wind can be set to affect objects only (default behavior) or both
    objects and cars; either expand (infinite size) or take the actual size of
    the field.
  - Level Obtain Support: New *.inf key OBTAIN to set the conditions to unlock
    the level. This is based on car Obtain values and take -1 to 5. R/M/RM
    variants can be set to be unlocked on beating the level's challenge times.
  - New profile.ini key 'FinalCam' to disable the special finish camera at race
    end. Setting this to 0 will always show the close-up rotating camera
    similar to the original PC version. Further, when 'FinalCam' is 1 (the
    default), replay cameras are now enabled for Battle Tag finish.
  - New rvgl.ini key 'UseProfiles' to disable multiple profiles support. This
    will automatically load the last used profile (set in 'DefaultProfile')
    similar to using the '-profile' command line. If no profile exists, a
    default profile named 'player' is automatically created (unlike the command
    line variant).
  - Added new gallery pages, contributed by MightyCucumber, and rearranged
    existing ones.
  [Graphics]
  - Added support for Adaptive V-Sync. The V-Sync option can now be set to On,
    Off or Adaptive. Only applicable for Windows and Linux with X11.
  [Audio]
  - Persistent Material Sound: There is support for playing a sound effect when
    driving on a material. A new parameter 'DefaultSound' is available for each
    MATERIAL section in properties.txt. This works similar to 'SkidSound' and
    'ScrapeSound'.
  [Input]
  - Added setting to enable or disable Force Feedback for each controller from
    Controller Settings.

Mod:
  [General]
  - DC Pack: Updated Groovster and BigVolt textures to fix wheel issues and
    pure-black. BigVolt has improved windshield and AMA text.
  - When the DC Pack is not installed, and CupDC is disabled, Rooftops is now
    hidden from the track selection screen and Progress Table.
  - Replay: Weapon position data is now stored in replay file as with other
    objects. This affects Firework, Shockwave and Water Bomb objects.
  - Editor: Calc Stats mode now computes the Weight and Trans.
  - Editor: The color of Cam Node links now disambiguates two-way links from
    one-way links. This helps fixing unintended one-way links.
  - The Probe Intro Sequence is now optional. If the 'intro' folder is removed,
    or OBTAIN is set to -1 in 'intro.inf', the game attempts to load a static
    intro slide (devlogo3[a-c].bmp) in place of the animated sequence.
  - When a reversed *.inf is found, the reversed challenge time is taken from
    CHALLENGE key in the reversed *.inf. CHALLENGEREV is deprecated.
  - Stock level info and car parameters are no longer hard-coded. The values
    are now read from the files and can be customized. Updated level *.inf and
    and car parameter files are now included.
  - Reversed customization: These textures can now have reversed variants
    placed in 'custom\reversed': fxpage[1-3].bmp and all level textures.
  - Bomb explosion now uses a dedicated 'models\bomb.m' model instead of
    reusing 'models\ball.m'.
  - Android: Game Settings menu exposes more options (MultiPlayer CPU and Show
    Ghost). The Reset Progress Table option is removed.
  - Select Profile menu is reordered as Create / Load / Delete. The default
    option remains Load (i.e., press left for Create and right for Delete).
  [Graphics]
  - Improved fence sync behavior with v-sync on or when LimitFPS is used.
  - Renamed some rvgl.ini keys for consistency: EnvFlag is now EnvLevel,
    AlphaSort is now SortLevel.
  - Android: Center HUD is now configurable from Render Settings. Removed the
    Instances option instead (which can still be set from rvgl.ini).
  - Android: The carbox and track screen positions and sizes are tweaked for
    better placement in both Portrait and Landscape.
  - Menu titles are now aligned to the top-left.
  [Input]
  - Steering Range and Deadzone settings are now taken into account for mouse
    controls and can be configured in Controller Settings.
  [Multi]
  - Restricted the frequency of jumps in Battle Tag to once every 80ms. This
    limits multiple jumps to double jumps.

Fix:
  [General]
  - Editor: Fixed crash in Instances mode with the legacy editor.
  - Editor: Fixed AI Node distances not computed for some nodes.
  - Editor: Fixed Cam Nodes linking bug with the modern editor.
  - Replay: Fixed glitch during playback right after the car flips.
  - Android: Fixed freeze in main menu after tapping on Select Profile.
  [Graphics]
  - Fixed rail camera direction not properly updated in some cases.
  - Rearview animation is disabled completely when 'AnimateRearview' is off.
  - Show the correct resolution in Video Settings when '-nores' is used.
  - Android: Fixed color band artifacts with Frame Buffer Antialiasing.
  [Multi]
  - Ensure custom animation objects are synced in multiplayer.

--------------------------------------------------------------------------------

20.0325a:
| Bug-fix release.
| Pumped network version.

Add:
  [General]
  - Editor: New selection behavior to allow selecting overlapping objects such
    as zones. Use Left Shift + Select to cycle through objects beneath the
    current selected object. This is supported in both legacy and modern editor
    modes (for Zones, Fields, Visiboxes, Instances and Objects).
  [Graphics]
  - New command line '-nores' to disable display mode change and preserve the
    desktop resolution in fullscreen. Removed the '-nofullscreen' command line
    added previously.
  - Low latency mode: New rvgl.ini key LimitLatency that can be enabled to keep
    latency under control and reduce input lag, especially with v-sync on. This
    can have a slight negative impact on performance. Set to 1 to use standard
    latency control mechanism or 2 to use Fence Sync Objects when available.

Mod:
  [General]
  - Updated DC Pack: Restored wheelXX.prm files for Groovster and LA 54 from
    the original Dreamcast content.
  - Editor: Box selection and side manipulation in lights and visiboxes mode is
    made consistent with other editors. The active box or side is highlighted
    in visibox editor.
  - Write audio and input initialization to the log file.
  [Graphics]
  - Improved loading: Use Fence Sync Objects when available to speed up loading
    when v-sync is on and Threaded OpenGL disabled. For better compatibility,
    Threaded OpenGL is now disabled by default.
  - The minimum frame rate for LimitFPS is increased to 15.
  - Shaders: Restored lights and effects layout to use distinct uniform arrays.
    Works around Intel driver bugs that cause crash during shader compilation.
  - Single-buffered window is no longer provided as a fallback option (can
    cause flickering display in some systems).
  [Multi]
  - AI rubberbanding is disabled in multiplayer. In Battle Tag, the speed of
    the 'it' car is no longer tied to the player's difficulty setting.

Fix:
  [General]
  - Editor: Fixed format detection that broke legacy field and camnode files.
  - Editor: Fixed broken link toggle and missing functions in camnode editor.
  - Editor: Fixed spherical fields not having an initial radius.
  - Editor: Fixed potential crash when deleting an instance.
  - Fixed crash while loading when using certain objects with Object Thrower.
  - Security fix to sanitise profile name before creating the folder.
  [Graphics]
  - Shaders: Fixed a UBO glitch with ANGLE ES3 API.
  - Ensure container objects (VAO) are initialized in the loading thread.
  - Editor: Fixed 3D text not highlighted on hover in zone and trigger editors
    and text being obscured by zones in shader mode.

--------------------------------------------------------------------------------

20.0210a:
| Pumped network version.

Add:
  [General]
  - New force field format with extended options and type selection. The shape,
    direction, distribution and apply type can be configured separately, and
    new field types have been added. Use the FLDFORMAT level *.inf key to
    switch between the new and old format for saving.
  - Editor: Modern editor workflows now available for these edit modes: Camera
    Nodes, Fields, Instances, Objects, Triggers, Visiboxes and Track Zones. New
    tools added for Translation, Rotation and Scaling.
  - Sweep Camera support: New level *.inf key SWEEPCAM (0 or 1) to toggle the
    starting grid zoom camera in user levels.
  - Added support for Super Pro cars (new Rating level 5). Set cars to be
    unlocked upon Stunt Arena completion (new Obtain level 5).
  - Added command line arguments to manage user-made content: '-nouserlevels',
    '-nousercars', '-nouserskins', '-nousersfx' (for car sfx only), along with
    existing '-nouser' (for all the above).
  - Android: Ability to launch from adb shell with command line arguments (set
    through a string extra called 'args').
  [Graphics]
  - Fullscreen emulation support: new command line '-nofullscreen' for
    borderless fullscreen window (i.e., fake fullscreen).
  [Audio]
  - Custom car sfx: New parameters.txt keywords SFXHONK '<path>' and SFXSERVO
    '<path>' to use a custom horn sound and servo sound for the car.

Mod:
  [General]
  - Object Throwers can now specify lap settings in flag high similar to Object
    Animations. More objects are now throwable without crashing the game.
  - Object Animation: Collision now accounts for angular velocity of the moving
    object to support rotating platforms and objects (currently supported for
    Bone 0 only).
  - Collision is now supported for Boat and Horse objects.
  - Removed hardcoded collision bounding box for Train and Slider objects.
  - Updated stat bar ranges in car selection screen to account for Super Pros.
  - Editor: The MAKEITGOOD cheat enables all editor features that are available
    through Dev mode.
  - Editor: The currently active edit mode can be changed directly from the
    in-game menu (and press Enter to restart the level).
  - Editor: Save Car Info option now uses in-game confirmation menu instead of
    system message dialog.
  - Updated Serbian strings.
  [Graphics]
  - Shaders: Updated lights and effects layout to use closely packed data. The
    settings ShaderLights, ShaderShadows and ShaderEffects can be set down to
    zero (previously needed to be at least 1).
  - Shaders: Better mobile compatibility and improved UBO support. Properly
    detect the fragment shader precision for GLES2, and use explicit layout
    specifier for each uniform block (fixes UBO on several devices).
  - Improved fog support: Fog computation is moved to the fragment shader for
    proper per-fragment fog (avoid polygon artifacts).
  - Particle physics processing is tied to the physics rate for consistent
    behavior across different frame rates. Particle collisions are still
    processed at the display rate to avoid computation overhead.
  - Particles render setting now affects more objects (such as sprinklers).
  - EffectsFlag rvgl.ini setting is also applicable in legacy renderer.
  - Editor: Keep meshes visible when Show Collision option is uses. Also avoid
    a crash when collision render and wireframe are both enabled.

Fix:
  [General]
  - Fixed force fields limit to 1024.
  - Fixed minor glitches in gravity customization options.
  - Fixed bad visimask tests for particles processing.
  - Object Animation: Fixed glitch during keyframe relative translations.
  - Object Animation: Improved validation to prevent crash with bad values and
    show a helpful error message in addition to logging.
  - Editor: Save Car Info option uses consistent line endings across platforms.
  - Editor: Properly uninitialize when switching to a new mode or quitting.
  [Graphics]
  - Fixed championship podium cars using wrong skins.
  - Fixed Speedup object animation linked to frame rate.
  - Shaders: Fixed broken alpha transparency when Reflections are off.
  - Shaders: On GLES2, ensure 32-bit indices are supported or use 16-bit
    otherwise. This fixes a compatibility issue with Mali-400.

--------------------------------------------------------------------------------

19.1230a:
| Pumped network version.

Add:
  [General]
  - Custom Animations: Added a new object type that allows track makers to
    design their own animated objects. Each object can consist of multiple
    models (*.m with optional *.ncp collision) that act as "bones". Each bone
    is animated either freely or relative to a "parent". Animation data and
    keyframes are defined in a text file named "custom_animations.txt".
    A new trigger type is available with options to trigger the animation at a
    specific lap, the first or last lap.
  - New GRAVITY section in properties.txt to modify the behavior of the global
    gravity field (magnitude, direction, dampening and rockiness). The ROCK and
    ROCKTYPE level *.inf keys are deprecated - new tracks should set these
    properties in properties.txt instead.
  - New PICKUPS section in properties.txt to change pickup properties: spawn
    count (initial and per-player pickup count), env (shininess) color, and
    light color.
  [Graphics]
  - Android: New rvgl.ini key Orientation to manually set device orientation.
    Supported values are: Auto (-1), Landscape (0), Portrait (1), Sensor
    Landscape (2), Sensor Portrait (3), Reverse Landscape (4), Reverse
    Portrait (5).

Mod:
  [General]
  - '-savereplays' command line is now supported for offline modes.
  - '-sessionlog' is now available in offline modes. The following game modes
    are supported: Single Race, Championship, Clockwork and Split-Screen.
  - The beginning and end of level load are marked in the log file along with
    elapsed time to aid auto-splitters.
  - Updated various limits: 1024 meshfx slots (eg, animated waterboxes), 256
    effect polys (for piano keys), 256 unique level models (for objects), and
    256 pickups (192 normal + 64 clones). The maximum number of collisions that
    can be processed per frame is increased to 1024.
  - Support for corrugation and conveyor effect for objects NCP collision.
  - The "Car started over finish line" message is now logged instead of showing
    a message box in dev mode.
  - Updated edit mode names in selection menu for consistency.
  - Updated Turkish language strings.
  [Graphics]
  - Updated camera collision behavior: Scale the collision shifting based on
    the car speed such that the necessary scaling is only applied while racing,
    without introducing stuttering when the car is still.
  - Ensure all LODs are updated when setting clockwork body colors.
  - Hide HUD functionality is improved: Shift + F5 toggles HUD. Shift + Ctrl +
    F5 toggles menu.
  - Editor: Added Ctrl + P shortcut in visiboxes mode to refresh / preview the
    visibox behavior at any time. Visiboxes are otherwise refreshed upon saving
    the file.
  - Removed the GL prefix from rvgl.ini keys: 'GLProfile' is now 'Profile',
    and 'GLThreaded' is now 'Threaded'.
  [Audio]
  - Support up to 128 audio samples and 256 3D audio samples.
  - Allow the entire range of effects for sfx testing (Audio Settings).
  [Input]
  - Android: Configuring device with the Controller Map app automatically adds
    or updates the mapping in 'profiles\gamecontrollerdb.txt'.
  [Multi]
  - Shortcut to toggle ping display is now Ctrl + P.

Fix:
  [General]
  - Fixed potentially overflowing entries in Best Times menu when downloaded
    times are available.
  - Ensure best times are loaded upon track change when typing a search term.
  - Android: Fixed crash in Best Times menu and Time Trial mode.
  - Verify that the level and its reversed variant exists and ensure it is
    locked otherwise. Fixed crash in random tracks mode with missing levels.
  - Fixed objects limit in edit mode (now updated to 1024).
  - Fixed broken moving surfaces (conveyor belt) customization in
    properties.txt.
  [Graphics]
  - Show the correct player skin in Championship podium.
  - Editor: Fixed glitched lighting in lights mode (legacy renderer).
  - Shaders: Fixed broken visiboxes reload.
  [Input]
  - Android: Fixed glitch in Controller Map app when attempting to assign axes
    to A and B buttons.
  [Multi]
  - Fixed broken global star behavior: properly identify the star captured when
    the level has multiple stars.

--------------------------------------------------------------------------------

19.1001a:

Add:
  [General]
  - New level *.inf key CAMFORMAT to select the format to be used for saving
    the camera nodes file in edit mode (0 for old format or 1 for new, with new
    being default). This replaces the in-game message box query.
  - Improved ghost file format: the file header now includes the RVGL version
    number and date. A new "Ins:" flag is added to help deduce whether the
    record was done with instances on or off. Also brings car skin support for
    new records.
  - Added a new cheat code. It is also possible to disable previously used
    cheats by adding an '!' at the end (eg, 'CARNIVAL!' to disable cars cheat).
  [Multi]
  - Added support for pasting in chat (Ctrl + V).

Mod:
  [General]
  - Editor: Modern editor controls are improved. Operations using right click
    require holding Shift to avoid conflict with camera rotation. The camera
    no longer moves when using commands like Ctrl + S. New "chain-create-link"
    command using Ctrl + Shift + Click.
    It is now possible to move hovered nodes without having to select them. The
    behavior is improved for selecting racing lines at segment extremities.
  - Editor: Saving uses an in-game notification text instead of message box.
  - The following file limits were extended: Lights, Objects and Instance
    Models (1024). Maximum poly and vertex count for model and world meshes is
    now 65535.
  - Editor: Updated the car camera editor controls (Ctrl + C). Use numpad keys
    to move the camera and hold down Ctrl for more precise movement.
  - Improved Best Times Menu: Level search functionality is now usable. When a
    downloaded ghost file (*.lapdownload) is available, the time is shown
    highlighted in the records list.
  - Updated the clockwork grid layout for better spacing.
  - Removed outdated copyright info from credits.
  [Graphics]
  - The camera collision shifting behavior is tweaked to prevent stuttering
    when close to walls and objects.
  [Input]
  - Android: Improved touch navigation. Auto repeat support for horizontal
    scrolling. Touch region sizes are increased to prevent misses. Backspace is
    handled better when virtual keyboard is used.

Fix:
  [General]
  - Editor: Fixes for AI nodes priority range. Light RGB intensity can once
    again go from -1024 to 1024.
  - Fixed championship points sorting to ensure lower position comes first when
    points are equal.
  - Partial matches are no longer accepted for cheat codes.
  - Several safety and security fixes.
  [Graphics]
  - Fixed rare glitch involving blue flashing in levels using the piano.
  - Preserve alpha during vertex color operations (grayscale conversion and
    clockwork color randomization).
  [Multi]
  - Fixed potential deadlock or connection timeout in loading screen when
    GLThreaded is set to 0.

--------------------------------------------------------------------------------

19.0907a:
| Pumped network version.

Add:
  [General]
  - Sprint Tracks: New GAMETYPE 4 for sprint tracks (point A -> B). Tracks
    using this game type must also specify an ENDPOS defining the finish line,
    in the same format as the STARTPOS.
    The AI (*.fan) and Pos Nodes (*.pan) file formats have been updated to hold
    the ending node ID. The end node is deduced from the ENDPOS, just as the
    start node is deduced from the STARTPOS. These files must be re-saved
    whenever the STARTPOS or ENDPOS is changed. When the start and end nodes
    are different, the nodes do not have to form a loop.
  [Input]
  - Modern Editor Workflow: There is now optional support for a modern editor
    controls scheme and alternate camera controls, both of which are disabled
    by default. These can be enabled separately using new options under the
    Editor section in rvgl.ini:
    Set "LegacyCameraControls = 0" to access a modified WSAD set for camera
    movement along with same-direction Y-axis for mouse motion.
    Set "LegacyEditorControls = 0" to access the new and improved editor
    workflow. This is currently implemented for AI Nodes and Pos Nodes edit
    modes.

Mod:
  [General]
  - Level *.inf file parsing now uses the common utils parser similar to other
    text-based formats. This should make *.inf parsing more stable and bring
    consistency across the different text formats.
  [Graphics]
  - Shaders: Maximum supported on-screen generated polys (eg, sparks, dust) has
    increased to 65536. Also better optimized semi-transparency sorting.
  - The camera collision fix from the previous version is restored. This should
    improve camera behavior at high frame rates.
  - Editor: Visimasks are no longer updated per-frame in Visiboxes edit mode.
    They are updated when saving the file. This should improve performance.
  [Input]
  - Editor: Lens zoom support has improved. Rotation speed is now consistent
    across zoom levels. The scroll-wheel zoom speed can be controlled with the
    caps lock key. Also, zoom level is preserved when switching between F4 and
    F6 modes.
  - Editor: The in-game mouse cursor is 1:1 accurate with the system cursor.
    The cursor is hidden in camera rotation mode (with mouse right held).

Fix:
  [General]
  - Fixed overflow in Stunt Arena mode with more than 64 stars.
  - Editor: Fixed improperly initialized objects in nodes edit mode and ensure
    proper ranges for light Reach and RGB. Also fixed inability to set Zone ID
    above 255.
  - Editor: Fixed AI nodes flashing even after linking until the file is saved.
  [Graphics]
  - Editor: Fixed various glitches in shader mode. Transparent objects (eg,
    zone boxes) no longer flicker. Lines are now properly rendered over the 3D
    mesh. Working wireframe and AI debug render.
  - Editor: Fixed glitch in 3D text positioning in mirrored mode. Also fixed
    distance text over nodes with no links.
  - Editor: Fixed frame rate dependency in various editor mechanics including
    value selection and rotation.
  [Multi]
  - Fixed key cars not moving in Frontend after using Back To Lobby.
  - Fixed 'Waiting For' bug when a game is started with no human players.
  - Fixed cheating flags in session CSV saved out of order.
  - Fixed bomb transfer bug affecting CPU cars.

--------------------------------------------------------------------------------

19.0819a:
| Pumped network version.

Add:
  [General]
  - New languages: Romanian and Turkish.
  - Added more gallery pages from Phippen's artwork.
  [Multi]
  - CPU cars are now supported in online multiplayer, enabled through Game
    Settings -> Multiplayer CPU. This works similar to split-screen mode.

Mod:
  [General]
  - Allow *.prm files along with their *.ncp to be customized through the
    custom folder (similar to *.m).
  - Updated assets: includes fixed collision data for these levels (Toys in the
    Hood 2, Toy World 1, Museum 1 and Rooftops), and fixed track zones for
    Toytanic 2. Updated DC Pack (Rooftops).
  - Android: Continue checking other paths in case folder creation fails.
  [Graphics]
  - Uniform Buffer Objects are now disabled by default.
  - Removed frame rate dependent speed-up in Game Gauge mode.
  [Multi]
  - Cheating state is printed in the session CSV.
  - Disabled dev mode car reset (F10) in multiplayer.

Fix:
  [General]
  - Fixed potential crash when stock cars are missing.
  - Fixed crash in random cars mode when certain cars are removed.
  - Fixed path exploit in profile creation.
  - Editor: In AI Nodes mode, fixed start node detection and node distances
    computation when there are multiple zones with ID 0.
  - Editor: Fixed crash upon inserting or copying instance / object.
  [Graphics]
  - Fixed potential crash when switching windowed mode while loading.
  - Fixed text layout in Progress Table. Updated strings.
  - Fixed camera jitter when close to wall.

--------------------------------------------------------------------------------

19.0430a:
| Bug-fix release.
| Pumped network version.

Mod:
  [General]
  - Windows: Added manifest file for modern Windows compatibility. The manifest
    sets per-monitor DPI awareness mode. This makes it possible to select 4K
    resolutions without upscaling.
  [Multi]
  - Discord RPC now shows the currently played level name and time elapsed.
  - Flash on selected player in Waiting Room and make host unselectable.

Fix:
  [General]
  - Android: Fixed Controller Config menu width in Portrait mode.
  [Multi]
  - Fixed Hybrid P2P issues. Prevent P2P glitches when multiple LAN peers use
    conflicting local ports.
  - Fixed inconsistent race results after host goes back to lobby. Players are
    now made to wait for the host.
  - Fixed players getting skipped when switching views in spectator mode.
  - Fixed black screen when switching into spectator mode during reposition.
  - Fixed bad lap info shown when joining an ongoing race.
  - Fixed potential crash when quitting the session.
  - Prevent memory leak when packets get rejected.
  - Prevent autokick after going back to lobby.
  - Reject bad messages (better verification).

--------------------------------------------------------------------------------

19.0414a:
| Pumped network version.

Add:
  [Multi]
  - Hybrid P2P: Combines the best of P2P and centralized connection schemes.
    Players who are unable to establish a direct connection are linked together
    by the host through multicasting. The host can use '-nomulticast' command
    line to keep using pure P2P.
  - Better P2P management with features like prioritization, order swapping and
    retry attempts to improve the chances of establishing a successful direct
    connection.

Mod:
  [Multi]
  - Late joining is enabled by default (i.e., joining players can spectate an
    ongoing race instead of having to wait at the lobby). Host can use the
    '-nolatejoin' command line to keep this disabled.
  - Players without a direct P2P connection are displayed in dark gray at the
    Waiting Room.

Fix:
  [General]
  - Fixed player colors appearing white in multiplayer replays.
  - Fixed "Press Pause To Continue" message truncated in long translations.

--------------------------------------------------------------------------------

19.0330a:
| Pumped network version.

Add:
  [General]
  - Added command line '-printlog' to print log messages to the terminal.
  [Audio]
  - Jukebox Support: The MUSIC keyword in level .inf now accepts a folder path.
    The game selects a music track from the folder at random.
  [Multi]
  - Improved P2P: More robust P2P support and better handling of direct
    connections. Peers are properly synced before they initiate connections.
    Server side ordering ensures connections are routed to peers with a better
    chance of accepting them.

Mod:
  [General]
  - Update Czech and Slovak strings.
  [Multi]
  - The '-latejoin' command line now works in centralized mode.
  - Use direct multicast in centralized mode (better handling of lag).
  - Waiting Room always prioritizes Spectator state for consistency.
  - Remove unnecessary CHT over Random cars in Waiting Room.
  - Now use PgUp / PgDn to change pages at the player list.
  - Better ping info with '-showping' and better network logs.
  - Mute session log file from repeatedly showing up in the game log.
  - In-game player colors now match the chat colors.

Fix:
  [General]
  - Fixed podium cars jumping too high at high frame rates.
  - Fixed glitch when manually resetting the car (F10) in dev mode.
  [Graphics]
  - Fixed broken antenna motion blur at high frame rates.
  - Ensure that the game window is cleared at startup.
  [Multi]
  - Fixed Battle Tag time position in spectator mode.
  - Fixed font file freed improperly when restarting a multiplayer replay.
  - Prevent timeouts when joining by lobby and potential race conditions when
    several peers join at the same time.

--------------------------------------------------------------------------------

19.0320a:
| Pumped network version.

Add:
  [General]
  - Added Slovak language and updated Czech translation.
  [Graphics]
  - Shaders: The number of lights / effects affecting each mesh is configurable
    through rvgl.ini options: ShaderLights, ShaderShadows, ShaderEffects (upto
    16 each). Defaults to 8 lights, 4 shadow boxes and 4 mesh effects.
  [Multi]
  - Chat messages log: The '-sessionlog' option now captures chat messages,
    saved to a multiplayer event log (session_xxx.log file) along with the csv.
  - Added command line '-hidechat' to hide in-game chat messages. These can be
    seen by pressing TAB or F12.

Mod:
  [General]
  - Improved session log: Player best lap times are saved to the session log.
    Also, the logs are created once for each session (i.e., Back To Lobby no
    longer creates a new file).
  [Graphics]
  - Support for generic texture compression when S3TC extensions not available.
  - Shaders: Renamed the 'SortLevel' rvgl.ini option to 'AlphaSort'.
  [Input]
  - Non-linear steering option can now be configured for keyboard and mouse.
  [Multi]
  - The race results table is now shown for spectator players.
  - Best lap and race times are now communicated through the server (prevents
    inconsistent results for P2P clients).
  - Improved network logs and now logs weapon data packets.
  - Restored client-side weapon computation in centralized mode.
  - Updated player colors for consistency.

Fix:
  [General]
  - Fixed disabled objects appearing in multiplayer replay.
  - Fixed issues with camera and force feedback at high frame rates.
  - Ensure physics and AI computations are not run when game paused.
  [Graphics]
  - Better handling of high frame rates: the game animations now use a variable
    timestep, with an internal limit of 250 fps. Fixes stuttering with v-sync
    off while keeping game stable even in previously unsupported cases (broken
    v-sync, high monitor refresh rates, etc).
  - Fixed sporadic glitches in the Probe intro animation.
  - Shaders: Fixed credits display in 'gimmecredits' mode.
  [Audio]
  - More consistent position updates and velocity computations for the 3D audio
    and doppler effects.
  [Multi]
  - Fixed broken late joining support in P2P mode.
  - Fixed player stuck in 'Not Ready' mode after going back to lobby.
  - Fixed potential overflow when typing chat messages with unicode characters.
  - Reject high pings during game sync (prevent bad starts).

--------------------------------------------------------------------------------

19.0301a:
| Pumped network version.

Add:
  [General]
  - New profile.ini key 'Difficulty' to adjust the AI difficulty level for
    single races (0: Very Easy, 1: Easy, 2: Medium, 3: Hard).
  - New command line '-chdir <path>' to set the working directory (i.e., change
    where the game looks for assets).
  [Graphics]
  - New rvgl.ini key 'GLThreaded' to configure whether to use multi-threaded
    OpenGL support for assets loading (disabling causes all GPU assets to be
    loaded from the main thread).

Mod:
  [General]
  - Android: AI catchup enabled by default on new profiles.
  [Graphics]
  - Restored Visibox Headers limit to 64.
  - Host Computer menu uses full text width for IP text.
  [Multi]
  - Better lag management and tighter car and object animation.
  - IP text is trimmed of leading and trailing spaces when pasting.
  - Mode text in session log file no longer uses localization.

Fix:
  [General]
  - Fixed blinking 'Spectator' display in Calc Stats mode.
  - Fixed alignment in Best Times menu with unicode text.
  [Graphics]
  - Shaders: Glitch with semi-transparent surfaces in Museum 2 planetarium.
  - Windows: Potential flickering in fullscreen when configuring mouse inputs.
  - Fixed darker menus when viewing replays saved as spectator.
  - Prevent possible stuttering at loading screen.
  [Multi]
  - Ensure default level exists. Fixed crash with host starting Rooftops and no
    DC Pack installed.
  - Electro zap impact displayed properly on remote cars (centralized mode).
  - Glitch with in-game lobby menu when resizing the window.

--------------------------------------------------------------------------------

19.0210a:
| Pumped network version.

Add:
  [General]
  - New profile.ini key 'AnimateRearView' to disable the animation during rear
    view transition.
  - New parameters.txt keys 'FixedOffset' and 'FixedLook' in CAMATTACHED
    section to configure whether the hood / rearview camera is fixed or allowed
    to move.
  - New symbols in font file for bullet point (•) and double dagger (‡).
  [Video]
  - Better support for legacy OpenGL devices (1.1 and above).
  - Texture compression support: New rvgl.ini key 'CompressTextures' to enable
    S3TC (DXT5) compression for all textures.
  [Input]
  - Mouse navigation support: mouse axes and buttons (including mouse wheel)
    can now be configured for gameplay. Mouse cursor is automatically captured
    when using mouse mode.
  [Multi]
  - New command line '-showping' to access ping display (Ctrl + Numpad Enter)
    even without dev mode.
  - New command line '-savereplays' to automatically save replays in
    multiplayer.

Mod:
  [General]
  - Car skin selections are now saved in replay file (breaks compatibility with
    existing replay files). Also updated game_gauge_replay file.
  - Replay selection menu provides more space for level name.
  [Graphics]
  - Shaders: Memory allocation for buffers is done at run-time (should result
    in reduced memory consumption when shaders are not used). Also added safety
    checks to prevent potential crashes during buffer loading.
  - Shaders: Updated texture page sorting and optimization to take into account
    more than 10 level textures.
  - Shaders: Ensure alpha testing turned off for reflective surfaces.
  - Updated video caps info log.
  [Input]
  - Numpad Enter can now be used in the menus.
  - Reset Controls option is moved into Config Controls menu.
  [Multi]
  - Car skins are now synchronized when using random cars mode.
  - Session log file now specifies the network mode (P2P / Centralized) and
    player type (Server / Client).
  - Lagging remote cars (those displayed as ghost) have collisions disabled.
  - When using centralized connection ('-nop2p'), bomb, electropulse and Battle
    Tag star transfer are now server controlled.
  - Waiting Room shows Mode for collision type and On / Off for pickups.

Fix:
  [General]
  - Fixed level length not updated in Select Replay and Overview menu.
  - Fixed missing menu entries when going back from Select Replay menu.
  - Fixed crashes when playing back bad replay data.
  - Fixed Time Trial 'beaten' progress not saved for custom tracks.
  - Fixed level search filter still active in Best Times menu.
  [Graphics]
  - Fixed missing instances at Create Profile screen.
  - Fixed greyed out 'Unknown' resolution in Video Settings.
  - Ensure 'rvgl.ini' is always created (eg, upon video errors).
  - Shaders: Attempted fix for UBO glitches on certain GPUs.
  - Shaders: Fixed glitch rendering transparent meshes (eg, Ranch waterfall).
  - Shaders: Fixed transparent poly count not updated in debug display (F9).
  - Android: Fixed car selection screen cut off in Portrait mode.
  [Input]
  - Better conflict prevention between menu and in-game controls.
  - Fixed non-working force feedback in multiplayer and spectator mode.
  - Fixed glitch when typing vertical bar (|) in chat.
  [Multi]
  - Ensure random cars and tracks option is saved on going back to lobby.
  - Ensure sound effects paused during client restart in multiplayer.

--------------------------------------------------------------------------------

19.0120a:
| Pumped network version.

Add:
  [General]
  - Improved Replays Support: Replays are timestamped and saved to 'replays'
    folder upon using Save Replay. These are accessible from Options -> View
    Replay. Further, replays are now available in Championship and Multi-Player
    mode (including Spectator mode).
  - Custom Frontend Support: Added support for authoring frontend levels by
    setting 'GAMETYPE 3' in the level inf file. Properties like camera
    positions can be overridden through a 'frontend.txt' file placed in the
    level folder. Available frontends are accessible from Options menu. For
    more info, see the online documentation.
  - Added Serbian and Czech language translations.
  - Unicode: Added support for combining characters and additional characters
    for Arabic and Hebrew romanization.
  - Added '-nodemo' command line to disable screensaver mode in main menu.
  [Graphics]
  - Additional Level Textures: Support for up to 64 level textures with an
    extended naming scheme. Texture names can range from __a.bmp to __z.bmp,
    then __aa.bmp to __za.bmp, __ab.bmp to __lb.bmp. There should be no gap
    inbetween the sequence after j (eg, __k.bmp, __m.bmp is invalid).

Mod:
  [General]
  - Extended various level file limits: AI Nodes, Pos Nodes, Cam Nodes (4096);
    AI Zones, Fields, Triggers, Instances, Visiboxes, Portals (1024); Lights,
    Objects, Instance Models, Visibox Headers (256).
  - Improved Replay file format: support for dynamic replay file size based on
    stored data. The maximum limit is capped at 16MB. The frequency of player
    position updates is increased to prevent possible desync.
  - Replay can be saved multiple times without terminating the recording.
  - Automatically terminate replay recording after all players finish.
  - Replay: Added Hood and Rear camera views to the random selection.
  - Replay: Up / Down changes car view by position (similar to Spectator mode).
  - Renamed and re-saved Game Gauge replay file in new format.
  - Simplified CPU car recovery behavior for handling reposition.
  - Updated Polish language strings with diacritics.
  - Updated copyright year in the intro screen.
  - Android: Added '/storage/extSdCard' to list of search paths.
  - Shader builds are now included in this changelog.
  [Graphics]
  - Level Properties: Values accepted by TexturePage parameter are restricted
    to prevent support breaking in future. 0-46 are world textures, 47-49 are
    fxpage[1-3] and higher values are unsupported.
  - Custom support: Texture files 'gfx\acclaim.bmp' and 'cars\misc\shadow.bmp'
    are now customizable.
  - Moved the default carbox textures to 'cars\misc\carbox[1-5].bmp', menu
    title images to 'gfx\spruimage.bmp' and made them customizable.
  - Updated j character in the font file to support diacritics.
  - Warn in log file about bad TPage values in World and Model files.
  [Multi]
  - Use hardware timer to re-seed the Random Number Generator for multiplayer
    games (should result in better quality of randomization).

Fix:
  [General]
  - Level Properties: Security fixes for properties.txt parsing. Properly parse
    the 'Name' key and fix boolean keys not set properly (i.e., setting a key
    to false previously had no effect).
  - Replay: Fixed loaded replay not using correct settings (mirrored, etc).
  - Replay: Ensure recording is stopped after termination.
  - Fixed some custom cars (eg, Bendor) not starting in Calc Stats mode.
  - Fixed PgUp / PgDn not working in Calc Stats mode.
  - Fixed various glitches when Frontend level is started as a track.
  - Fixed AI zone computation for finding the closest player.
  [Graphics]
  - Fixed mipmap loading behavior to always check for *.bmp first.
  - Fixed glitchy rotation of aerial tips when using an asymmetrical model.
  - Ensure Stunt Arena track image does not show flipped or mirrored.

--------------------------------------------------------------------------------

18.1126a:
| Pumped network version.

Add:
  [General]
  - New language strings syntax: The language name and locale are now specified
    using escape sequences \LN and \LC, with the following syntax:
    \LN<Language Name>
    \LC<Language Locale>
    Existing language files are updated to use the new format.
  - Locale support: Language text case conversions are now locale-aware. Eg, i
    is capitalized to İ in Turkish locale and I in other locales. The locale is
    specified as an ISO 639-1 language code in the strings file.
  - Extended support for Latin alphabets. Additional characters for Turkish,
    Slovak, Bavarian, Welsh, Livonian and Vietnamese, and Romanisation schemes
    for Indic, Slavic, Greek, Georgian and Armenian. Title font now supports
    apostrophe.

Mod:
  [General]
  - Linux: The 'fix_cases' script now skips the licenses folder.
  - Now includes world files optimized for the shader renderer for all default
    levels. Also updated DC Pack (Rooftops).
  - Updated Italian strings.
  [Graphics]
  - Shaders: Optimized GPU upload of mirrored world meshes for large levels.
  - Improved rendering of the Vietnamese horn diacritic.
  [Multi]
  - Updated text colors for player chat messages.

Fix:
  [General]
  - A collision issue affecting certain animated objects such as the Market 2
    sliders has been fixed. The behavior of the sliding door animation upon
    pause / resume is also improved.
  [Graphics]
  - Shaders: Fixed vertical fog cutoff (objects visible in reflection beyond
    the specified mirror height). Updated shaders.
  - Fixed glitch / crash with the legacy renderer when a reflective surface and
    waterbox are used together.
  [Multi]
  - Fixed menu inputs not working in the in-game lobby (TAB) screen.

--------------------------------------------------------------------------------

18.1112a:
| Bug-fix release.
| Pumped network version.

Add:
  [General]
  - Added Lithuanian language, contributed by Vaid.
  - New profile.ini setting RandomSkins to toggle the randomization of CPU and
    Random Cars skins (enabled by default).

Fix:
  [General]
  - Fixed truncation issue when parsing parameters containing extended ASCII.
  [Multi]
  - Removed ability to join ongoing race after using Back To Lobby.
  - Fixed cases where player status is not updated after loading (eg, Spectator
    player allowed to race).
  - Fixed camera view stuck after loading in Spectator mode.
  - Fixed possible blank name and car displayed in Waiting Room.
  - Fixed 'Room Full' shown after using Back To Lobby even when holding a slot.
  - Fixed CHT and autokick if a player loads level while host is back in lobby.
  - Ensure player is always in 'Ready' state when launching game.

--------------------------------------------------------------------------------

18.1110a:
| Pumped network version.

Add:
  [General]
  - Unicode support: The game internals are now fully UTF-8 aware, replacing
    the previously used Windows-1252 (ASCII) encoding.
  - Wide character support on Windows: Filesystem calls on Windows use wide
    variants. Unicode filenames are now accessible, complementing UTF-8 support
    on Linux.
  [Graphics]
  - Improved Font: Added new characters and symbols taking advantage of Unicode
    support. The following additional Latin alphabets are supported: Hungarian,
    Romanian, Polish, Lithuanian, Latvian, Czech, Croatian, Turkish and
    Vietnamese.
  [Multi]
  - Back To Lobby in-game menu option to go back to Frontend without quitting
    the online session. This allows players to change their name and car. It
    also allows the host to re-launch the session with new settings, such as
    different number of laps.
  - New Waiting Room command Ctrl-A that allows the host to force a player into
    active state.

Mod:
  [General]
  - Skins support: CPU car skins are now randomized. Skins are also randomized
    in Random Cars mode.
  - Linux: Discord RPC code is disabled in 32-bit binaries. This avoids a GLIBC
    2.28 dependency. Also reverted some included libs to previous versions.
  - The log file entries now use UTF-8 encoding.
  - Language files are now resaved in UTF-8 encoding.
  - The new line '\n' in language strings now implies line return '\r'.
  [Graphics]
  - Updated font texture to redraw some characters and remove UV offset.
  - The font and fxpage2 textures are resaved to make alpha channel readable by
    image viewers and editors.
  [Input]
  - Player names and profile names accept Unicode characters.
  - Content search keywords accept Unicode characters.
  [Multi]
  - Player status behavior: 'Not Ready' players no longer give up their active
    slot. The default state for new players is 'Spectator'.
  - When a player is selected in Waiting Room, the 'Spectator' state is
    prioritized over 'Ready' state. This allows the host to use kick / assign
    commands appropriately.
  - Chat message length is UTF-8 aware. The entire range of 45 characters can
    be reached when typing Unicode characters.
  - Session log CSV file now adds version entry to the header.

Fix:
  [Graphics]
  - Android: Fixed broken save screenshot (F8) option.
  - Fixed possible text overflow out of spru box in Game Settings.
  [Multi]
  - Fixed glitch displaying number of laps above 127 in Waiting Room.

--------------------------------------------------------------------------------

18.1020a:

Add:
  [General]
  - Add license files for RVGL and its dependencies, now providing proper
    attribution for libraries used / included with the game - see "licenses"
    folder. RVGL redistributables are themselves covered by CC-BY-NC-SA.
  [Graphics]
  - SVG textures support (provided by SDL_image 2.0.3).
  - Android: Adaptive icons support for Oreo and above.
  [Audio]
  - Experimental support for FluidSynth (MIDI) playback. The game looks for a
    soundfont placed in "soundfonts\default.sf2". Not supported on Android.
  - Android: FLAC playback support.
  [Input]
  - Android: New "Controller Map" app that allows generating SDL GameController
    mappings for controllers. The mappings can be retrieved from the log at:
    "profiles\gamecontroller_log.txt" and added to the db file.

Mod:
  [General]
  - Android: FPU / NEON optimizations enabled where applicable for aarch64 and
    x86 builds (eg, for image, audio decoding).
  - Android: Several external components are now loaded as shared objects.
  - Windows: Audio libs now use file name versioning (i.e., libFLAC-8.dll
    instead of libFLAC.dll).
  - Windows: Major update of provided libraries: SDL_image 2.0.3, OpenAL Soft
    1.19.0, ENet 1.3.13, updated image and audio libs.
  - Linux: Statically link to libstdc++ (compatible with old distros).
  - Linux: Updated scripts. Massive optimization of 'fix_cases' script using
    Bash 4 globstar support and parameter expansion. Also simplified working
    directory resolution. The 'setup' script uses Yes / No confirmation, and
    ensures that the .desktop file path exists.
  - Updated language strings.
  [Graphics]
  - V-sync is on by default for new installations.
  - The shader renderer is now enabled by default.
  - TEXTUREPROPS colorkey attribute now has effect on legacy renderer.
  - Render Settings "Particles" option now has effect for spark generators.
  - Spark generators are now affected by visiboxes.
  [Audio]
  - Android: 32-bit armeabi and armeabi-v7a now use Integer decoding for OGG
    Vorbis (Tremor) and MP3 playback.
  [Input]
  - Controller Settings displays the Game Controller name when available.
  - Game Controller mapping is now logged to the log file.
  - Maximum number of supported joystick buttons is now 100 (eg, Android
    reports 36 buttons).
  - The behavior of rejecting broken axes at Controller Config menu is restored
    for legacy joysticks.
  - Ensure flush upon joystick remove to prevent stray inputs from a removed
    controller.
  - Android: Support for Back button on the device to pause the game, skip the
    intro screens, etc.
  - Support for Keyboard Pause / Break button to pause the game.

Fix:
  [General]
  - Fixed profile created upon going back from Create Profile screen. Also
    simplified the "Profile Already Exists" message string.
  [Graphics]
  - Windows Setup: Fixed font creation flags to use sans serif.
  - Fixed display mode showing "Windowed" in fullscreen. Now shows "Unknown" if
    mode cannot be detected.
  - Fixed HUD radar spru size in split-screen and touch modes (long car names
    touching the border).
  - Fixed "challenge beaten" and "final lap" message text and spru flashing
    unsynchronized, which can be disorienting.
  - Shaders: Fixed crash when loading levels with a large number of texture
    animation pages (eg, Slippery Slope).
  [Audio]
  - Fixed Alure library functions that return without doing anything when an
    existing OpenAL error was detected. Should solve audio / music not paused.
  [Input]
  - Android: Fixed various glitches in Controller Settings menu that prevented
    controllers from being configured.
  - Ensure joystick and force feedback devices are properly re-initialized to
    prevent potential crashes.

--------------------------------------------------------------------------------

18.0731a:
| Pumped network version.

Add:
  [Multi]
  - Discord Rich Presence support: announce and join games from the Discord
    client. A new rvgl.ini key "DiscordRPC" under the Network section can be
    used to disable this feature. A custom URI for the game is registered by
    the RVGL setup for Windows and the Linux 'setup' script. To manually
    register the URI, run RVGL with the '-register' command line.

Mod:
  [General]
  - Changed inf keywords behavior for reversed mode: if a reversed\<level>.inf
    is found, normal keywords are taken from the file. REV keywords are used
    only when no reversed\<level>.inf is found.

Fix:
  [Graphics]
  - Fixed crash with UBO upon new level load.
  - Fixed viewport scaling in lobby launch screen.
  - Android: Fixed text scaling in the Gallery screen.

--------------------------------------------------------------------------------

18.0725a:
| Bug-fix release.

Add:
  [Graphics]
  - New rvgl.ini key "EnableFBO" that toggles the use of Frame Buffer Objects
    for multisampling. When disabled, the "Antialias" key controls native
    window multisampling, which is more efficient and has wider support on
    embedded GPUs. FBO is disabled by default on Android.
  - Antialias support on ANGLE: FBO-backed multisampling is now supported on
    the ANGLE backend when available.

Mod:
  [Graphics]
  - Updated video info log: prints the window format and various GL limits.
  - Render Settings displays proper Antialias level when FBO is not used.

Fix:
  [General]
  - Fixed aarch64 detected as x86 in debug log.
  [Graphics]
  - Fixed crash on rendering the first frame with UBO.
  - Fixed fog and reflection glitches with UBO.
  - Fixed frame buffer multisampling on GLES3.
  - Fixed issues with video capture when Antialias on.
  - Workaround shader compilation error with SSO on Linux.

--------------------------------------------------------------------------------

18.0720a:
| Pumped network version.

Add:
  [General]
  - Improved support for reverse tracks: all supported levels files (.w, .ncp,
    .fob, etc.) and a few level graphics can now have reverse variants placed
    in the "reversed" or "custom\reversed" folder. If one of these files is not
    present, the game will fall back to the normal version of the file.
    All supported <level>.inf keywords can be customized for reverse through
    reversed\<level>.inf. The only exceptions are STARTPOS, STARTROT and
    STARTGRID which must use their REV variants.
  - New profile.ini setting WeaponCam to enable the weapon target in-set cam
    used for fireworks (disabled by default).
  - Added Basque language.
  [Graphics]
  - Support for new OpenGL functionality: Uniform Buffer Objects and Separate
    Shader Objects. These can be disabled through new rvgl.ini keys "EnableUBO"
    and "EnableSSO".
  - Improved translucency sorting: better handling of sparks, skidmarks and
    dust effects. New rvgl.ini key "SortLevel" to switch between complex and
    minimal sorting schemes.
  - Android: Ultra wide aspect ratio support.

Mod:
  [General]
  - Android: Increased target API level to 21 for compatibility with Android P.
  - Avoid repeated error messages on shader compilation failure.
  - Does not enable shared OpenGL context when using silent load.
  - Show confirmation message for Save Car Info in-game option (dev mode).
  - The log file mentions CPU architecture info (x86 or arm).
  - Updated video caps info log.
  [Graphics]
  - Improved performance with shaders: better shader generation and avoids
    dynamic branching where possible. Split lights and shadow box handling (8
    lights and 3 shadow boxes).
  - Android: Better disclaimer text scaling at the intro screen.
  [Input]
  - Support multiple gamecontrollerdb files for different SDL2 versions.

Fix:
  [General]
  - Android: Ensure on-screen keyboard shown after dismissing message box.
  - Shaders: Fixed crash in Objects edit mode on quiting Preview.
  [Graphics]
  - Fixed pure-black issues in BossVolt texture.
  - Shaders: Fixed lighting glitch in car springs and other parts.
  - Shaders: Fixed glitch in reflections of additive blended meshes (Market1
    fluoroscent lights).
  - Fixed broken Antialias support on GLES3 mobile devices.
  - Fixed firework target disappearing in Chase camera view.
  - Fixed transparency issues and invisible nodes in edit mode.
  - Fixed lines visible through walls in edit mode.

--------------------------------------------------------------------------------

18.0514a:
| Bug-fix release.

Mod:
  [Graphics]
  - Updated shaders: more compliant with newer GLSL standards, support for
    integer operations when available.
  - Updated resources: the game window sets the proper class name and hi-res
    icon on Windows and Linux (eg, for the Alt-Tab switcher). Gfx assets are
    re-saved in newer bitmap format for better compatibility with Linux image
    viewers.
  - Updated ANGLE libs: new custom built ANGLE libs and d3dcompiler modules
    with better compatibility and Windows XP / Vista support.
  - Anisotropy support is now also detected from core OpenGL 4.6 and the
    corresponding ARB extension.

Fix:
  [General]
  - Fixed skin selector showing up wrongly in split-screen.
  - Fixed potential buffer overflow cases in car params parsing and huge memory
    consumption caused by empty params file.
  [Graphics]
  - Fixed broken mesh effects in shader mode.
  - Fixed potential crash at loading, especially with ANGLE backend.
  [Input]
  - Android: Fixed freeze and looping "honk" sound at the main menu when
    controllers or hardware keyboard is used.

--------------------------------------------------------------------------------

18.0504a:
| Bug-fix release.
| Pumped network version.

Add:
  [Graphics]
  - The proper Video Device name is displayed in Video Settings. New Video
    Renderer entry shows the backend (OpenGL / Direct3D) and rendering mode
    (Shader / Legacy) in use.

Mod:
  [Graphics]
  - The shader mode has improved mesh updates that prevent freezes (eg, during
    bomb explosion) with large and poorly optimized world files.
  - Updated lights and effects shaders: loops are no longer unrolled manually,
    should result in faster shader compilation on mobiles and compatibility
    with older mobile GPUs.
  - Brightness / Contrast sliders in Video Settings now use steps of 5.
  [Input]
  - Controller names are no longer prefixed with "Joystick".
  - Android: Hardware keyboard / controller inputs are enabled in menus.
  - Android: Updated SDL GameController database.

Fix:
  [General]
  - Android: Fixed glitch in pickup randomizer after the app is restarted.
  - Updated DC textures - remove white dot in FulonX carbox.
  - Fixed BigVolt / BossVolt shadow table values.
  [Graphics]
  - Fixed rain rendering in legacy mode.
  - Fixed 3D text showing through walls in legacy mode.
  - Android: Fixed touch highlights in legacy mode.

--------------------------------------------------------------------------------

18.0428a:

Add:
  [Graphics]
  - Shader mode: The shader edition is now part of the usual alpha builds,
    selectable through an ini option. To switch between the shader and fixed
    pipeline (legacy) renderer, use the 'Shaders' key in rvgl.ini. The
    "-noshader" command line can be used to force the legacy renderer when
    shader mode is enabled through the ini.
  - Texture properties: New level .inf keyword TEXTUREPROPS to set various
    level per-texture properties. Syntax is 'TEXTUREPROPS  3 1 0 1', with four
    values specifying the index (0-9), mipmapping (0-disable / 1-enable), wrap
    mode (0-clamp / 1-repeat) and colorkeying (0-disable / 1-auto).

Mod:
  [General]
  - Save Car Info option now uses Windows (CRLF) line endings.
  - More intuitive error message when language files are out of date.
  [Graphics]
  - Removed the 8192x8192 upper limit on texture size.

Fix:
  [General]
  - Message boxes should no longer minimize the game window on Linux.
  - Android: Fixed text widths in the car selection screen.
  - Win in a "single car race" is no longer counted for progress.

--------------------------------------------------------------------------------

18.0416a:
18.0416s:
| Pumped network version.

Mod:
  [General]
  - Skins support: carbox files rejection is now based on the params file
    TCARBOX entry - eg, if TCARBOX points to "box.bmp", then "box.bmp",
    "box256.bmp", "box-alt.bmp" are rejected.
  - Moved "Final Lap" box more towards the top of the screen.
  - Save Replay option is now available when viewing a replay.
  - Improved Save Car Info option: better formatting, adds missing sections and
    original params are now signed.
  [Multi]
  - Increased maximum connections to 24 (16 players and 8 spectators).

Fix:
  [General]
  - Fixed wrong cars showing up in a saved replay after adding / removing
    custom cars. Existing replays need to be re-saved for this fix to work.
  - Fixed "Final Lap" message appearing in Practice mode and when switching
    between players in spectator mode.
  [Audio]
  - Fixed music not stopped at the end of a replay.
  [Multi]
  - More robust net code. Fixed potential crashes when receiving corrupt or
    hand crafted messages over the network (eg, from a third party dedicated
    server tool).

--------------------------------------------------------------------------------

18.0410a:
18.0410s:

Add:
  [General]
  - The DC pack is updated to include alternate skins based on the PSX version
    for some of the cars, designed by Strinabre.
  - "Final Lap!" message. This can be disabled with a new 'FinalLapMsg' key in
    profile.ini.

Mod:
  [General]
  - Spinner Axis provided in the car params is now normalized (improves support
    for rotation along multiple axes).
  - Next Track in-game menu option is now available in single race modes.
  - Car skins are now sorted (ensure same order at each RVGL start).
  - Updated language strings.

Fix:
  [General]
  - Skins support: properly reject carbox files on Windows.
  - Android: Fixed crash when quiting from the main menu.
  - Fixed potential divide-by-zero in vector normalization code.
  [Multi]
  - Local player's skin is loaded properly even if host doesn't have it.

--------------------------------------------------------------------------------

18.0330a:
18.0330s:
| Pumped network version.

Add:
  [General]
  - Car skins support: Support for additional skins 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. Special names like 'carbox.bmp' are
    skipped. The suffix length is limited to 11 characters.
  - Custom car engine sfx: New parameters.txt keyword SFXENGINE '<path>' to use
    a custom engine sound for a car. The way the engine sound is used by the
    game depends on the car class (Electric or Glow).
  - Custom challenge times: Custom tracks can now set challenge times to be
    beaten in Time Trial. New level *.inf keywords CHALLENGE and CHALLENGEREV
    with the format: 'CHALLENGE  0 54 0' (3 values for min, sec, ms).
  - Dreamcast championship mode: New profile.ini key 'CupDC' that can be used
    to enable Dreamcast mode for the Championship cups. This brings Rooftops
    and DC cars to the cups. Requires the DC Pack to be installed.
  - Android: Add Camera View option in Game Settings.
  [Input]
  - Android: Add Controller Settings menu to configure the hardware keyboard or
    wireless controllers if available.
  - Android: Button Opacity can now be changed from the Controller Settings.

Mod:
  [General]
  - Android: When tapping on the level name, level modes are now switched in
    progress table order (Normal,R,M,RM).
  - Android: Time Trial now displays the Record time at the top right corner
    (after challenge time has been beaten).
  - Android: Add new emulated storage paths (eg, "storage/emulated/0").
  - Android: APK now displays the proper version number.
  [Graphics]
  - Android: Rearview in-set camera (F2) is kept disabled at start (can still
    be enabled with a hardware keyboard).

Fix:
  [General]
  - Android: Fixed custom cars and tracks hanging the game forever (happens
    with certain *.inf / parameters.txt files that end without a newline).
  - Strip trailing spaces in language files (fixed bad padding).
  [Graphics]
  - Android: Fixed broken per-instance shading (RgbPer).
  - Shaders: Fixed shader compilation errors with some ATI drivers.
  [Audio]
  - Android: MP3 music is now enabled.

--------------------------------------------------------------------------------

18.0315a:
18.0315s:
| Bug-fix release.

Add:
  [Graphics]
  - Shaders caching: Compiled shader executables are cached to avoid having to
    re-compile them on each run. Enabled on both desktop and mobiles. Cached
    binaries are stored in the RVGL folder, in "shaders\cache". Caches are
    compared against the shader sources and automatically rejected if found out
    of date.

Mod:
  [General]
  - Improved Android support.
  - Windows and Android now use SDL 2.0.8.
  - Updated SDL GameController database.
  [Graphics]
  - Maintain Aspect setting now takes effect immediately.
  - Moved V-Sync option to Video Settings.
  - Additional video info logs in sync with shader edition.
  - Shaders: Antialiasing available on GLES3 mobile hardware.
  - Shaders: Better handling of world buffer updates (for bomb explosions).

Fix:
  [Graphics]
  - Shaders: Fixed Museum 2 stars sporadically disappearing.
  [Multi]
  - Fixed chat messages overlapping race results.
  - Fixed chat messages length in waiting room.

--------------------------------------------------------------------------------

18.0310a:
18.0310s:
| Pumped network version.

Add:
  [General]
  - Android support: RVGL is now available on Android 2.x and above on both
    32-bit and 64-bit arm and x86 targets. The game data should be placed in an
    RVGL folder on the device's internal storage (eg, "/storage/sdcard0/RVGL").
  - Touch support: New touch UI and virtual joypad support with updated HUD and
    menu screens. Currently enabled only on Android. This release includes
    touch overlay buttons designed by RV Passion.
  [Graphics]
  - OpenGL ES 1.1 support for fixed pipeline rendering on OpenPandora, Android
    and Linux based legacy handheld devices.
  - New rvgl.ini setting 'EffectFlag' to toggle mesh effects. Only used by the
    shader edition to turn off complex effect shaders on old hardware.
  [Multi]
  - New "-serverport <number>" command line that can be set to use a different
    server port from 2310. When the host uses a custom server port, all clients
    will need to use the same server port to be able to connect to that host.
  - Password support: new command line "-pass <phrase>" to protect the session
    with a password. The passphrase can be upto 255 characters in length and
    cannot contain spaces.

Mod:
  [General]
  - Increased instances limit to 1024.
  - Update language files for touch support.
  - Additional log info for android support.
  - Update credits.
  [Graphics]
  - Shaders: Per-poly visimasks support.

Fix:
  [Graphics]
  - Fixed glitch with ball bearing when shininess is turned off.
  - Fixed render settings overrides not working in frontend.
  - Attempt to fix untextured polys not rendered on some devices.
  - Shaders: Static lights (from .lit file) not working on instances.
  - Shaders: Fixed fluorescent light reflections in Market1.
  - Shaders: Fixed crash in instances edit mode.
  - Shaders: Invisible 3D text in edit mode.
  - Shaders: Fixed shader compilation error on some devices.
  - Shaders: Lights and shininess not working during reposition.
  [Audio]
  - Music stops after changing music volume when playing custom music.
  - Inablity to use custom music on stock tracks.

--------------------------------------------------------------------------------

17.1222a:
17.1222s:
| Bug-fix release.
| Pumped network version.

Mod:
  [General]
  - Removed unused GLEW libraries.
  - Updated language files for latest version.
  - Better detection for corrupt language files.
  [Multi]
  - Spectator players are no longer affected by autokick.
  - Late joining and not-ready players are not automatically launched upon
    reaching the waiting room. They can launch by pressing TAB when ready.
  - Disabled "reload car" dev mode option in multiplayer.

Fix:
  [General]
  - Fixed early countdown in single-player when loading takes a while.
  - Fixed difficulty mode getting reset in Practice mode.
  [Multi]
  - Fixed alignment issues that resulted in incompatibility between 32-bit
    Linux build and other versions (eg, weapons not working).
  - Fixed camera view not updated in late-join mode until the player list
    screen is dismissed.
  - Fixed possibility of bad lap count and radar values when late joining.

--------------------------------------------------------------------------------

17.1218a:
17.1218s:
| Bug-fix release.
| Pumped network version.

Add:
  [Multi]
  - Added command line "-latejoin" that can be set by the host to allow players
    to jump into an ongoing race. This is only supported in P2P mode.
  - The host can use Ctrl + C keyboard shortcut to copy the public IP address
    displayed in the top right corner.

Mod:
  [Graphics]
  - Window events are now processed during the load screen. This allows players
    to minimize / maximize / resize the RVGL window while loading.
  - The inset cams (F2 and F3) are now hidden when using panel hide feature.
  - Shaders: Optimized shader code and buffer updates. Shaders are generated
    based on the enabled render settings (lights / reflections / environment).
  - Shaders: Edit modes support (lines, nodes, edit objects drawn properly).

Fix:
  [General]
  - Fixed potential crash when world polys use an improper texture anim slot.
  - Attempt a fix for crash experienced by some users when restarting the race
    after using a freeform camera.
  [Graphics]
  - Fixed potential flickering / black lines at loading screen.
  - Fixed black screen after repositioning in some cases.
  - Particles setting not taking effect from in-game Render Settings.
  - Ensure split-screen cameras are updated properly when game is paused.
  - Fixed stray weapon counter displayed in split-screen after race finish.
  - Shaders: Slight flicker when using weapons like battery or electro pulse.
  - Shaders: Text disappearing when there is a lot of text.
  - Shaders: Player names showing through walls and opaque surfaces.
  - Shaders: Fixed issues with models scaling, eg, in "small cars" mode.
  [Multi]
  - Fixed timeout / disconnect when the game is minimized during sync screen.
  - Fixed weapons dropped at the start grid after several restarts.
  - Don't trigger Rear View or Change Camera while configuring controls.
  - Next Track menu in split-screen unusable after viewing replay.
  - Trying to join an ongoing race properly displays the 'Joining Next Game'
    dialog (broken in previous update).

--------------------------------------------------------------------------------

17.1124a:
17.1124s:
| Pumped network version.

Add:
  [General]
  - Custom level properties: Added support for overriding properties like
    materials, corrugation, dust, sparks and trails. Properties are loaded from
    a 'properties.txt' file placed in the level folder. For more info, see
    the online documentation.
  [Graphics]
  - Added GLProfile key to rvgl.ini settings. This does nothing, and is added
    for compatibility with the shader edition. Also updated video info log in
    sync with the shader edition.

Mod:
  [General]
  - Improved Windows setup: New UI, added option to create a Desktop shortcut.
    Further, the setup now checks whether the game data is found in the install
    path and displays a warning.
  - Windows: Updated SDL2 library to version 2.0.7.
  - The release builds now use optimization level -O3.
  [Graphics]
  - Use GLAD OpenGL loader and shared context in sync with shader edition.
  - When stepping through the Antialias setting, the FBO is recreated afresh
    rather than modifying storage (may improve performance).
  - Shaders: When running on an embedded GPU with no Desktop OpenGL support, ES
    profile is automatically used.
  - Shaders: log messages related to shader loading are clearly formatted.
  [Multi]
  - Removed the flashing 'Locked' overlay from the in-game 'Next Track' screen
    to improve readability.

Fix:
  [General]
  - Fixed broken compatibility with old replay files, introduced in 17.1009a.
  [Graphics]
  - Possible stuttering when streaming textures (like water ripples on Garden).
  - Save Screenshots (F8) now reads from the back buffer (fixes issues with
    some drivers).
  [Multi]
  - Ensure that the client's audio is stopped properly when the same track is
    restarted.
  - Messages received during sync and level load are queued to be processed at
    the end of loading. This fixes improper message handling when clients load
    too fast (eg, by using the -sload command), which can result in bad sync
    and CHT tagging. High priority messages are processed immediately in the
    background.
  - With -sload command, network tasks are run in a background thread in order
    to keep connections from timing out.

--------------------------------------------------------------------------------

17.1115s:

Add:
  [Graphics]
  - OpenGL ES 2.0 support: The popular version of OpenGL for Embedded Systems
    is now supported.
  - ANGLE Direct3D backend support on Windows.
  - New option 'GLProfile' in rvgl.ini to switch between Compatibility, Core,
    Embedded profile and ANGLE backend (values from 0-3).

Mod:
  [Graphics]
  - Switched to GLAD OpenGL loader.
  - Optimized rendering: Significant rewrite and optimizations since the
    preliminary release. Now uses multiple shader programs for world, model and
    screen space (particles, etc.) rendering with combinations depending on the
    mesh type.
  - Better optimized shader code and better compatibility for old devices
  - Transparent meshes are now rendered back to front in correct order.
  - Alpha testing (colorkeying) is only enabled for textures that need it.
  - Untextured polys now use a 1x1 pure-white texture internally.
  - The minimum requirement to run the shader edition is now OpenGL 2.0.
  - Multi-threaded assets loading: Now uses a shared OpenGL context for fast
    loading of assets in background while rendering in the main thread.
  - Re-enabled the loading screen, along with intros.

Fix:
  [Graphics]
  - Fixed broken waterbox animation on levels like Boat Beach.

--------------------------------------------------------------------------------

17.1021a:
| Bug-fix release.

Mod:
  [Graphics]
  - Tweaked the 'popcorn' spark type, updated color and various attributes.
  - Panel hide (Shift + F5) now hides race results and finish position display.
  [Multi]
  - Players are cycled through in the spectator cam or follow cam (F3) based on
    their current race position.
  - The '-port' command line to override the LocalPort ini option now accepts 0
    to force a random port for this instance.

Fix:
  [Multi]
  - Bad default player count in split-screen when creating a new profile.
  - Glitch in name enter menu in random cars mode in split-screen.
  - Wrong player name shown in-game in random cars mode in split-screen.
  - Incorrect CHT tag shown on players in random cars mode.

--------------------------------------------------------------------------------

17.1014a:
| Bug-fix release.
| Pumped network version.

Add:
  [General]
  - Added command line "-tvtime" that enables special cameras, similar to using
    TVTIME cheat.

Mod:
  [Graphics]
  - In tvtime mode, pressing and holding Shift + Space hides in-game menu. When
    HUD is already hidden (Shift + F5), menu can be hidden with Space alone.
  [Multi]
  - Freeform (F6) camera is now allowed in Battle Tag mode after the player has
    finished.
  - Improved level verification: the following files are compared against the
    host: *.fob, *.taz, *.pan, *.fan, *.fld and *.ncp. Visual changes are not
    tagged as cheat. The verification system is also aware of "dummy" files.
  - Disabled various cheats and Edit modes in multiplayer.
  - Entering cheat codes to unlock tracks / cars no longer registers as CHT.

Fix:
  [General]
  - The currently followed player in spectator mode or F3 camera is properly
    saved after race restart.
  [Multi]
  - Fixed 'persistent cheat' bug where a player with mismatching car or level
    continues to be tagged CHT after starting a different level.

--------------------------------------------------------------------------------

17.1012a:
| Pumped network version.

Add:
  [Multi]
  - Added command line "-sessionlog" that can be used by the host to log the
    session data to file. The session data is timestamped and saved in the
    profiles folder as csv.
  - Server-side cheat verification is now extended to cover level data files.
    Mismatching players are kicked when "-autokick" is used.

Mod:
  [Multi]
  - Players using cheat codes are now tagged as CHT.
  - Disabled Object mode preview in multiplayer.
  - All weapons cheat is disabled even with dev mode in multiplayer.

Fix:
  [Multi]
  - Fixed player's car not removed on host's screen when forced to spectate.
  - Fixed possible case when a player can appear twice in race results.

--------------------------------------------------------------------------------

17.1009a:
| Pumped network version.

Add:
  [General]
  - Allow users to specify a custom difficulty for levels with the DIFFICULTY
    line in .inf files. Supported values are 0 to 4.
  - Windows versions are now provided as installer executables (both 32-bit and
    64-bit variants).
  [Multi]
  - Server-side cheat verification: client car parameters are now compared
    against that of the host to detect cheating players. This allows custom
    cars without the CHT tag as long as it matches with the host.
  - Host can set to auto-kick cheating players (those with mismatching car
    parameters) by using the "-autokick" command line. Players with DEV mode
    enabled, but matching parameters, are tagged with CHT but not kicked.
  - New "-port <number>" command line that can be used to override the local
    port for each RVGL instance without editing the ini.

Mod:
  [General]
  - User cars and tracks are now selected by the random cars / tracks option.
  - Added minimal Game Settings in the in-game Options menu.
  - Number of cars can be set down to 1 and laps up to 255 in profile.ini even
    without dev mode.
  [Graphics]
  - Weapon counter is now shown in split-screen for fireworks and water bomb.
  [Multi]
  - Local IP and port are now also displayed for clients.
  - Updated public IP server to 'rv12.revoltzone.net'.

Fix:
  [Graphics]
  - Tweaked sand material color, skidmark and particle effects.
  [Multi]
  - LAN broadcast not working when LocalPort is set to 2310.
  - Next Track option missing in split-screen after viewing replay.

--------------------------------------------------------------------------------

17.1002a:
| Bug-fix release.

Add:
  [General]
  - Added key "CatchUp" in profile.ini to enable / disable AI catchup.
  [Input]
  - Support for custom GameController mappings: mappings are now sourced from
    "profiles\gamecontrollerdb.txt" in addition to the default mappings
    included in the root game folder.

Fix:
  [Input]
  - Fixed hotplugging support with multiple players and controllers.

--------------------------------------------------------------------------------

17.0930a:

Add:
  [Input]
  - Hotplugging support: controllers can be added and removed while the game is
    running and they are now detected and used automatically.
  - Menu navigation uses the D-Pad by default on supported controllers.
  - Controller info including the name and GUID are now logged.
  [Multi]
  - A new rvgl.ini setting called "LocalPort" can be found under the Network
    section. This allows clients to set the port to be used when connecting to
    an online session. The default is 0, i.e., a random port is used.

Mod:
  [General]
  - Updated language files.
  [Graphics]
  - Optimized viewport clear and skybox rendering for better performance on
    tracks that have a skybox.
  - The F9 key in dev mode now shows world and model vertex count in addition
    to poly count.

Fix:
  [General]
  - Fixed wrong player position suffixes used when the panel is hidden.
  - Minor internal tweaks / refactoring.

--------------------------------------------------------------------------------

17.0618s:
| Bug-fix release.

Mod:
  [Graphics]
  - Disabled world mesh info logging (prevent slowdown on Windows).
  - Alpha testing is turned on for additive blending.

Fix:
  [Graphics]
  - Fixed bomb explosions on levels with texture animations.
  - Fixed car fading glitch during reposition.

--------------------------------------------------------------------------------

17.0615s:
| First Shader release.

Add:
  [Graphics]
  - New shader based rendering engine with complete support for the existing
    feature set. Meshes are processed on the GPU.

Mod:
  [Graphics]
  - The OpenGL version is locked to 3.2+ Core profile.
  - Shader Edition is limited to 8 lights and 4 effects per mesh.
  - Log information about world meshes upon loading.

--------------------------------------------------------------------------------

17.0327a:
| Bug-fix release.

Add:
  [General]
  - Added Portuguese language support, translated by LC-DDM.

Mod:
  [General]
  - Save Replay option is currently disabled in Championship mode.
  [Graphics]
  - When using the "-aspect" command line, the lens setting now takes effect in
    frontend too.
  [Multi]
  - Disabled the 'press pause to continue' message (upon race finish) for
    clients.

Fix:
  [General]
  - Fixed podium cars jumping too high when v-sync is off.
  - Fixed -gamegauge mode not working, moved the output to 'profiles\fps.txt'.
  - Fixed version display when entering in and out of dev mode.
  [Graphics]
  - Fixed visual glitch when FOGSTART is equal to FARCLIP.
  [Multi]
  - Fixed chat messages overlapping with race results table.

--------------------------------------------------------------------------------

17.0325a:
| Pumped network version.

Add:
  [General]
  - Added Hungarian (Magyar) language support, translated by Andor.
  - Initial support for loading UTF-8 language files.
  - Added new 3-car wide STARTGRID types 4 and 5 for use in custom tracks.
  [Input]
  - Included an SDL community sourced GameController mapping database that is
    loaded automatically to support various additional controllers.
  - Menu select and back are set to buttons A and B by default on supported
    controllers.
  [Multi]
  - Updated Waiting Room layout and added new commands: use Up / Down keys to
    scroll through the player list, hold down Ctrl for faster scrolling. The
    host can use Ctrl-D to disconnect a player or Ctrl-S to put a player in
    spectator mode.

Mod:
  [General]
  - Increased the maximum number of cars to 16.
  - Reduced the probability of player getting the global star pickup.
  - Can now use the look back button when spectating cars at race finish.
  [Multi]
  - Increased number of connections to 20 (upto 16 playable cars and 4 more
    slots for spectators).
  - More efficient transfer of the game data during race start.
  - Improved Waiting Room messages in various occasions such as late joining
    and spectating (i.e., when game has already started or when joining the
    next game).

Fix:
  [Multi]
  - Fixed crash when the number of players connecting exceeds the maximum
    allowed connections.
  - Fixed bug with the "Room Full" status not detecting properly.

--------------------------------------------------------------------------------

17.0215a:
| Bug-fix release.

Mod:
  [General]
  - Reintroduce fixed timestep for camera movement and animations with v-sync
    off. A variable timestep is still used to keep the animation smooth when
    v-sync is on.
  [Input]
  - Left Stick should now be accepted in menu inputs even when Acc/Reverse is
    configured differently.

Fix:
  [General]
  - Various code cleanup aimed at the 64-bit version.
  [Audio]
  - Updated the doppler effect code to provide safe limits, avoid generating
    very large pitch values. This fixes a potential crash or lockup with some
    openal versions on 64-bit Linux.
  [Multi]
  - Fixed a bug in lag computation on 64-bit RVGL that can result in high
    latency and cars flickering on some LANs.

--------------------------------------------------------------------------------

17.0115a:
| Pumped network version.

Mod:
  [General]
  - Updated the Spanish translation for Instances option in Render Settings.
  - Disabled the "Object Out of Bounds" warning that appeared in Dev mode. The
    message is now logged instead.
  [Multi]
  - The external IP service provider is now changed to 'www.myexternalip.com'.
  - P2P is now the default mode for multiplayer sessions. Use "-nop2p" command
    line to explicitly disable P2P and use client-server mode.
  - Disabled the ping displayed above cars. Ping values can still be checked
    from the debug display in Dev mode (Ctrl + Numpad Enter).

Fix:
  [General]
  - Fixed camera stuttering issues. This undoes a change introduced in v1.2
    build 15.0325 that was intended to improve stability at high fps.
  - Flickering lights (as in Market1) were improved so the flicker speed is no
    longer dependent on the frame rate.
  - Fixed audio clipping at high frame rate.
  [Multi]
  - Players on the same LAN connecting to a remote host in P2P mode should now
    be able to see each other.
  - Fixed lobby timeout not giving any error in the previous release.
  - Fixed bad 'player leaving' message sent by clients in P2P mode.

--------------------------------------------------------------------------------

16.1230a:
| Pumped network version.

Add:
  [General]
  - This release includes additional Gallery pages from the DC version.
  [Multi]
  - Initial support for P2P multiplayer: use the "-p2p" command line to start a
    P2P session. Only the host needs to set the command line. UDP hole punching
    is used to link clients behind NAT, so no port forwarding is required for
    the clients.

Mod:
  [General]
  - Replays are now saved per-profile when using the Save Replay feature.
  - Added missing entry for libGLEW.so.2.0 in the 'rvgl' launch script.
  - The changelog is now saved in UTF-8 encoding.
  [Multi]
  - Lobby connection timeout is reduced from 60s to 15s.

Fix:
  [General]
  - Time Trial records and ghosts not loading in Linux after running the
    fix_cases script.
  [Graphics]
  - Possible alpha transparency glitch in saved screenshots.
  [Multi]
  - 'No countdown' bug when a fast client finishes loading when the host is
    still at the sync screen.

--------------------------------------------------------------------------------

16.1210a:

Add:
  [General]
  - Added missing texture files for the Trolley car.
  [Graphics]
  - New implementation of multisample anti-aliasing using Framebuffer objects.
    Antialias is now a proper option under Render Settings, and changes take
    effect instantly. The command line "-multisample <num_samples>" can be used
    to initialize a multisampled opengl window the old fashioned way, without
    framebuffer objects.
  - Screenshot support: automatically save screenshots from the game using F8
    key. The screenshots are timestamped and saved in the profiles folder in
    PNG format.
  [Audio]
  - Added libsndfile decoder to support various compressed WAV formats.

Mod:
  [General]
  - Updated the collision poly limit to accomodate instance collpolys. The
    maximum polys supported by the world ncp file is limited to 65536. However,
    it's now possible to add any number of additional instance ncp files, i.e.,
    the total number of world + instance collpolys can now exceed 65536.
  - The unlocking behavior and CPU selectability of BigVolt and BossVolt are
    now restored based on the original DC version.
  - Improved logging to display additional details and log error messages.

Fix:
  [General]
  - Fixed repeated error messages at startup when the selected language strings
    are missing or outdated.

--------------------------------------------------------------------------------

16.1125a:

Add:
  [Graphics]
  - Support for enabling Multisampling (MSAA) from the Video Settings. Changing
    this setting currently requires restarting RVGL to take effect.

Mod:
  [General]
  - Updated the Dreamcast pack with the latest files.
  - Localized the "Windowed" text in Video Settings.
  - Log the OS and architecture to the re-volt.log file.
  [Multi]
  - Calculate the remote delay based on the last packet lag only (not taking
    into account the interval between packets). This avoids increased delay in
    case of low pps.
  - Debug display is now invoked with Ctrl + Numpad Enter (Dev mode).
  - Show lag and interval values in multiplayer debug display.
  - Car / object position updates are now sent in a separate enet channel.

Fix:
  [General]
  - Fixed bug in .lit file saving in Lights edit mode.
  - Fixed crash after selecting give up try in Championship mode.
  - Dev mode: don't add a camera section when saving car info if the car
    doesn't use one.
  [Multi]
  - Reducing the number of cars from Game Settings in an online session now
    properly sets any extra players to spectating mode.

--------------------------------------------------------------------------------

16.0927a:
| Bug-fix release.
| Pumped network version.

Mod:
  [Multi]
  - Ensure remote car orientation doesn't deviate too much from correct angle.
  - Restored the remote object delay (to a lesser extent than before).
  - Weapon transfer now uses guaranteed messaging.
  - Show CHT if the player has entered dev mode.

--------------------------------------------------------------------------------

16.0920a:
| Pumped network version.

Add:
  [General]
  - Additional content: added support for additional cars from the DC version
    (available as a separate optional download). This adds BigVolt and BossVolt
    to the car selection screen. It is possible to use the original Dreamcast
    frontend.fob file to bring the same carbox layout as the DC version (i.e.,
    all carboxes displayed on screen).
  [Input]
  - Support for modern game controllers like the Xbox 360 and PS3 Controllers.
    This means Triggers can be selected along with other axes. The axis and
    button names are displayed in the Controller Config menu for these devices.

Mod:
  [General]
  - Rooftops now shows the proper gfx and length at the track selection screen
    even if the level data is missing.
  - Provide signed parameters for special cars (key cars, Mystery, UFO) to
    remove CHT mention.
  - Automatically restore window upon dismissing a message box in fullscreen
    (Windows only).
  - Linux 'setup' script now sets proper permissions to the 'lib' folder.
  [Graphics]
  - Increased the enumerated number of display modes to 1024 (previously 256).
    The number of display modes is logged to the re-volt.log file.
  [Input]
  - Controller buttons are properly supported for menu navigation: axes can now
    be treated as buttons. Use Fire - forwards (Button A by default) and
    Pause - backwards (Button Y by default).
  [Multi]
  - Disabled the delay added to the multiplayer cars and objects animation.
  - Updated multiplayer animation model, should result in smoother animation
    even at high pings without the need for adding a remote delay.
  - Increased the network packets per second to 20 (from previous 6).
  - Improved debug display in multiplayer (Numpad Enter in Dev mode).

Fix:
  [General]
  - Bug restarting level in reverse / mirror mode in split-screen.
  - Fixed CPU cars info shown in race summary in split-screen even when
    Multiplayer CPU setting is turned off.
  - Fixed key cars locked at the options menu when a race is quit before the
    countdown has ended.
  [Graphics]
  - Possible crash when the number of display modes is above 256.
  - Glitch when switching from windowed to fullscreen at the frontend after
    selecting split-screen mode.
  - Improper menu layout when the window is resized while the menu is animated.
  [Input]
  - Menu navigation not working when controller axes are used as buttons.
  [Multi]
  - Track search unavailable when going back from waiting room.
  - Wrong weapon target when using the 'all weapons' cheat in multiplayer.

--------------------------------------------------------------------------------

16.0904a:

Add:
  [General]
  - 64 bit builds are now available for Windows.
  - Additional content: added support for Rooftops level from the DC version
    (available as a separate optional download).
  - Support Rooftops models, sfx and skybox in the Objects edit mode.

Mod:
  [Graphics]
  - Edited the 32-bit bitmaps included in 16.0705 for compatibility as they
    were found to not load in v1.2 and older versions.
  [Audio]
  - Increased the sfx range to be closer to 1207 behavior.
  - Disabled the exponential volume curve introduced previously.

Fix:
  [General]
  - Bug selecting 'no' during championship give up try.
  [Audio]
  - Fixed a bug in 3D surround panning.

--------------------------------------------------------------------------------

16.0710a:

Add:
  [General]
  - 64 bit support: this release includes native linux binaries for both 32-bit
    and 64-bit systems (rvgl.32 and rvgl.64).
  - Added 'rvgl' launch script that auto-detects the system type and launches
    either the 32-bit or 64-bit executable. The script automatically resolves
    dependencies by using libs included with rvgl in place of any missing libs.
    This allows rvgl to run without any manual configuration on a wide range of
    distros as long as the opengl drivers, sdl2 and sdl2_image are installed.

--------------------------------------------------------------------------------

16.0705a:

Mod:
  [General]
  - Spherical linear interpolation (slerp) code used for remote car animation
    is now closer to the 1207 / DC version.
  - Updated the Linux build for Ubuntu 16.04 support.
  - Avoid renaming dll files when running the fix_cases script.

Fix:
  [Graphics]
  - Fixed 32-bit bitmaps (icon, logo, etc.) that can cause transparency issues
    with latest SDL libraries.
  [Input]
  - Fixed TAB and F11 keys not working when caps lock or num lock is on.

--------------------------------------------------------------------------------

16.0505a:
| Bug-fix release.

Mod:
  [General]
  - Improved AI catchup code: should make the effect more subtle, especially in
    Junior RC mode.
  - Updated fix_cases script on Linux to avoid renaming the lib folder.
  [Multi]
  - Reverted lag management change from 16.0315a as it can cause jittering.

Fix:
  [General]
  - Fixed crash introduced by the waterbox fix in last release.

--------------------------------------------------------------------------------

16.0420a:

Add:
  [General]
  - Added new level inf keyword ROCKTYPE, which can be 0 or 1. The default 0
    can be used for ship levels, 1 can be used for water surfaces.
  [Graphics]
  - Added an fps limiter that can be used with v-sync off. Set the preferred
    frame rate through the LimitFPS entry in rvgl.ini, set it to zero to
    disable limiting. Only 0 or values above 10 are accepted.

Mod:
  [General]
  - Allow 'flying' car AIs to turn in air / water.
  - The camera speed in edit mode is now controlled by the caps lock key.
  - Errors are logged to the console in addition to message box display.
  [Input]
  - Disable broken axes in controller config menu.

Fix:
  [General]
  - Fixed split times bug in time trial introduced in last release.
  - Fixed crash at load screen when trying to preload a bad object thrower.
  - Fixed jittering of the waterbox animation with v-sync off.
  - Fixed edit camera mouse movement not working with v-sync off.
  [Input]
  - Fixed inablity to select controllers other than keyboard for players 2-4.
  - Fixed error in axis deadzone / range calculation.

--------------------------------------------------------------------------------

16.0315a:
| Bug-fix release.

Mod:
  [General]
  - Optimized collision data gridding (should reduce ncp loading times by half
    when lots of instance models are used).
  [Graphics]
  - Use DC style hi-res text for Replay / Spectator / Demo Mode.

Fix:
  [Multi]
  - Fixed clone weapon not working between clients.
  - Fixed player ping display showing wrong ping.
  - Minor lag management improvement, cuts off interpolation based on distance
    between samples. Should avoid cars zooming past, etc.

--------------------------------------------------------------------------------

16.0305a:

Add:
  [General]
  - Add support for UTF-8 filenames on Linux. This allows the car parameters
    file and level inf to be saved in UTF-8 encoding. The characters that can
    be displayed in-game is still limited to extended ascii (Windows-1252)
    encoding. UTF-8 support is not available on Windows, to be added later.
  [Multi]
  - Display the ping delay in ms above the lagging player cars.

Mod:
  [General]
  - Disabled v-sync by default, avoids input lag with some gfx cards.
  - Only display "no pause" message in dev mode.
  - Updated setup script on Linux: now places launcher in
    ~/.local/share/applications and uses correct category. The rename script
    now handles all valid UTF-8 symbols.

Fix:
  [General]
  - Fixed error loading textures in user content with extended ascii filenames.
  - Fixed instance files (fin) saved in-game not importing in Blender.
  - Code cleanup: Fixed potential crash while freeing memory.
  [Multi]
  - Fixed camera change glitches when one player enters spectator mode.
  - Fixed improper game start in waiting room under some cases.
  - Keep peer alive (prevent timeout) when loading takes a long time.
  - Avoid redundant messages when new player joins.

--------------------------------------------------------------------------------

16.0115a:
| Pumped network version.

Add:
  [General]
  - Add support for controlling camera speed in edit mode: press and hold the
    scroll lock to speed up camera.
  - Included the names of artwork contributors in the credits.
  [Multi]
  - The Windows version now adds support for DirectPlay lobby launchers like
    GameRanger or GameSpy. For this to work, create a copy of rvgl.exe and
    rename it to revolt.exe, then place dplobby_helper.dll alongside.

Fix:
  [General]
  - Fixed pause menu showing up in demo and credits mode after minimizing and
    reactivating the game (in windowed mode).
  - Pressing Esc at the pause menu no longer resumes the game.
  [Multi]
  - Improved public ip address retry to reduce the frequency of requests.
  - Fixed bug allowing the car to move before countdown after using spectator.
  - Prevent possible crash at the sync screen.
  - Fixed crash at loading screen in battle tag mode.
  - Fixed issue with battle tag star capture and transfer.
  - Fixed battle tag time display in in-game waiting room.

--------------------------------------------------------------------------------

16.0110a:
| Pumped network version.

Add:
  [Graphics]
  - Re-added support for changing the brightness and contrast. This only works
    in fullscreen, and for the primary monitor in a multi-monitor display. Use
    "-nogamma" command line to disable gamma correction.
  [Audio]
  - Added support for true 3D surround sound. Surround speakers or headphones
    with virtual surround capability are required.
  - Support for the streaming redbook from the PSX master track (TRACK1.DA).
    Convert the master track to OGG and place it in the redbook folder as
    "track1.ogg". Only OGG is supported.

Fix:
  [General]
  - Fixed bug loading instances with capitalized file name extension.
  [Multi]
  - Fixed no collision after going to spectator mode and re-joining race.
  - Fixed buggy level loading after using the Next Track in-game option and
    changing the reversed or mirrored states.
  - Reversed and mirrored states not displayed in the Waiting Room.

--------------------------------------------------------------------------------

15.1220a:

Add:
  [Graphics]
  - Texture formats support: additional texture formats are now supported. For
    historical reasons, the textures should still be named with the .bmp
    extension (and mipmaps with .bmq, .bmo, etc. as usual).
    Available formats: BMP, PNG, JPG, WEBP, TIF, GIF, CUR, ICO, LBM, PCX, PNM,
    XPM, XV, XCF. Support for XCF (GIMP's native format) is experimental. This
    allows you to visualize a GIMP project file in RVGL without exporting it.
    However, this is not guaranteed to work correctly in all cases.
  - New option in Render Settings to enable or disable the water ripples effect
    (vibrations in water) used in tracks like Garden. This can help improve
    performance with some Intel cards.
  [Audio]
  - Re-added support for MP3 playback on Windows.

Fix:
  [Graphics]
  - Fixed "Spectating" text displayed in demo mode and credits.
  - The "Demo Mode" text in demo mode no longer looks stretched.
  [Audio]
  - Fixed loud sfx volume, now uses an exponential volume curve that fades away
    quickly as you move away from the source. Also fixed an inconsistency in
    panning.

--------------------------------------------------------------------------------

15.1025a:
| Pumped network version.

Add:
  [General]
  - Added "-nopause" command line to keep running the game even when it's in
    the background. This is an alternative to the Shift+F9 shortcut in dev mode.
  [Multi]
  - Added lobby launching support with the command line "-lobby <ip_address>".
    <ip_address> can be the host's IP, 0 (to search for local sessions), or
    entirely ignored (for launching the host).

Fix:
  [General]
  - Fixed potential crash in custom tracks utilizing the Speedup object.
  - Viewport glitches in 3-player split-screen when not using Auto split.
  - Pickups not staying disabled in edit mode.
  - Broken "clear progress table" option.
  - Fixed instances saved using RVGL not loading anymore in previous Re-Volt
    versions. The non-working instances need to be re-saved using the fixed
    rvgl build.

--------------------------------------------------------------------------------

15.0827a:
| Bug-fix release.
| Pumped network version.

Mod:
  [Multi]
  - Enabled display of debug information (ping, packets) using Numpad Enter
    (dev mode only).

Fix:
  [Multi]
  - Fixed bug in syncing of race timers.

--------------------------------------------------------------------------------

15.0825a:
| Pumped network version.

Add:
  [Audio]
  - Logs occurences of al_soft errors in an attempt to pin point the "can't
    load moto.wav" error.
  [Multi]
  - Keyboard layouts support: the existing support in v1.2 for international
    keyboards is now back. Further, various keyboard layouts added through the
    OS is also supported, including the use of dead keys.

Mod:
  [General]
  - Localized the "Locked" message on track select screen.
  [Graphics]
  - Optimized texture updates that are done for some special effects such as
    the water ripple used in Garden.
  [Multi]
  - Enabled the spectating menu (to join game / spectate) and the corresponding
    in-game menu entry.
  - Enabled the multiplayer main menu (to change options, profile, etc).
  - Enabled the in-game sync / pinging of players.
  - After selecting the "Spectate" option from the in-game menu, re-joining the
    race instantly puts the player back on track to continue the current race.
  - Now retries fetching of public IP upon time-out.

Fix:
  [General]
  - Fixed behavior on championship give-up try.
  - Cup not unlocked even after completion of previous cup.
  [Graphics]
  - Fixed particles and lights stretched horizontally.
  - Fixed screen not turning bluish when under water.
  - Fixed spru bar width on "cup locked" message.
  [Multi]
  - Stray 'v' character when pasting host IP.

--------------------------------------------------------------------------------

15.0814a:
| Bug-fix release.
| Pumped network version.

Mod:
  [General]
  - Use Windows line endings for the language strings files to keep backwards
    compatibility with v1.2.
  [Multi]
  - Changed the UDP port used to 2310 to prevent conflict with RV House.

Fix:
  [General]
  - Fixed "speed units" setting changing the "number of cars" instead.
  [Multi]
  - Fixed crash upon "Can't create enet server" error.

--------------------------------------------------------------------------------

15.0810a:
| Pumped network version.

Add:
  [Multi]
  - First implementation of online multiplayer support. Uses client/server mode
    of communication rather than peer-to-peer. The server binds to UDP port
    2301 (currently hard-coded).
  - Display both the public and private IP address for the host. Public IP is
    queried through "checkip.dyndns.org".
  - Logs various network information to the log file (see lines starting with
    the "NET:" prefix.

Mod:
  [General]
  - Enabled the options menu (some unsupported settings may be greyed out).
  - Removed delay when quickly pressing Enter / Forward key at the profile menu.
  - Simplified multiplayer menu.

Fix:
  [General]
  - Summary screen showed non-existing challenge time for reverse-mirror modes.
  - Fixed wheels not turning when using the camber feature.
  [Graphics]
  - Fixed / improved the rendering of firework trails.

--------------------------------------------------------------------------------

15.0501a:
| First Alpha release.

Add:
  [General]
  - Language search support: the list of languages supported is no longer
    hard-coded. Instead, any language file can be placed in the strings folder
    and it will be detected by RVGL. The localized language name (eg,
    "Français" for "french.txt") can be specified as the last line of the
    strings file.
  [Graphics]
  - Fullscreen toggle support: use F11 to switch between fullscreen and windows
    mode instantly.
  - Ability to resize the RVGL window in windowed mode to any preferred size.
    The last window size is saved on fullscreen toggle.
  - Auto Generate Mipmaps: All mipmap levels can now be automatically generated
    at loading time (no need for .bmq, ... files). We only recommend using this
    option if Anisotropic filtering is also enabled, otherwise there can be
    excessive blurring.
  - New logo: This release adds the RV Team developer splash screen with a
    disclaimer text and uses a new RVGL logo made by hi-ban for the loading and
    frontend screens.

Mod:
  [General]
  - We now support Unix (LF) line endings for the language files. Previously
    only Windows (CRLF) line endings were supported.
  - RVGL global settings file is named "rvgl.ini" and profile specific settings
    are saved in "profile.ini". Profile names are capitalized in-game.
  - The profile ini entries now use double-quotes to cover string entries like
    level dir, player name, etc. This supports entry with spaces better.
  - The debug log files are now created inside the profiles folder.
  [Graphics]
  - The default resolution is taken from the desktop mode rather than being
    hard-coded to 640x480. In windowed mode, the default size is half the
    desktop dimensions. A different default size can be set using "-window w h"
    command line.

--------------------------------------------------------------------------------

Copyright © RV Team 2010-2021.
Webpage: https://rvgl.re-volt.io
Email: rv12@revoltzone.net
