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

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]
  - Fix potential crash when stock cars are missing.
  - Fix crash in random cars mode when certain cars are removed.
  - Fix path exploit in profile creation.
  - Edit: In AI nodes, fix start node detection and distances computation when 
    there are multiple zones with ID 0.
  - Edit: Fix crash upon inserting new instance and copying instance / object.
  [Graphics]
  - Fix potential crash when switching windowed mode while loading.
  - Fix text layout in Progress Table. Updated strings.
  - Fix 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: Fix Controller Config menu width in Portrait mode.
  [Multi]
  - Fix Hybrid P2P issues. Prevent P2P glitches when multiple LAN peers use 
    conflicting local ports.
  - Fix inconsistent race results after host goes back to lobby. Players are 
    now made to wait for the host.
  - Fix players getting skipped when switching views in spectator mode.
  - Fix black screen when switching into spectator mode during reposition.
  - Fix bad lap info shown when joining an ongoing race.
  - Fix 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]
  - Fix player colors appearing white in multiplayer replays.
  - Fix "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]
  - Fix podium cars jumping too high at high frame rates.
  - Fix glitch when manually resetting the car (F10) in dev mode.
  [Graphics]
  - Fix broken antenna motion blur at high frame rates.
  - Ensure that the game window is cleared at startup.
  [Multi]
  - Fix Battle Tag time position in spectator mode.
  - Fix 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]
  - Shader: 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.
  - Shader: 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]
  - Fix disabled objects appearing in multiplayer replay.
  - Fix 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 vsync 
    off while keeping game stable even in previously unsupported cases (broken 
    vsync, high monitor refresh rates, etc).
  - Fix sporadic glitches in the Probe intro animation.
  - Shader: Fix credits display in 'gimmecredits' mode.
  [Audio]
  - More consistent position updates and velocity computations for the 3D audio 
    and doppler effects.
  [Multi]
  - Fix broken late joining support in P2P mode.
  - Fix player stuck in 'Not Ready' mode after going back to lobby.
  - Fix 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]
  - Fix blinking 'Spectator' display in Calc Stats mode.
  - Fix 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.
  - Fix darker menus when viewing replays saved as spectator.
  - Prevent possible stuttering at loading screen.
  [Multi]
  - Ensure default level exists (fix 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 'fox' transfer are now server controlled.
  - Waiting Room shows Mode for collision type and On / Off for pickups.

Fix:
  [General]
  - Fix level length not updated in Select Replay and Overview menu.
  - Fix missing menu entries when going back from Select Replay menu.
  - Fix crashes when playing back bad replay data.
  - Fix Time Trial 'beaten' progress not saved for custom tracks.
  - Fix level search filter still active in Best Times menu.
  [Graphics]
  - Fix missing instances at Create Profile screen.
  - Fix 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: Fix glitch rendering transparent meshes (eg, Ranch waterfall).
  - Shaders: Fix transparent poly count not updated in debug display (F9).
  - Android: Fix car selection screen cut off in Portrait mode.
  [Input]
  - Better conflict prevention between menu and in-game controls.
  - Fix non-working force feedback in multiplayer and spectator mode.
  - Fix 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: Fix loaded replay not using correct game settings (mirrored, etc).
  - Replay: Ensure recording is stopped after termination.
  - Fix some custom cars (eg, Bendor) not starting in Calc Stats mode.
  - Fix PgUp / PgDn not working in Calc Stats mode.
  - Fix various glitches when Frontend level is started as a track.
  - Fix AI zone computation for finding the closest player.
  [Graphics]
  - Fix mipmap loading behavior to always check for *.bmp first.
  - Fix 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]
  - Fix truncation issue when parsing parameters containing extended ASCII.
  [Multi]
  - Removed ability to join ongoing race after using Back To Lobby.
  - Fix cases where player status is not updated after loading (eg, Spectator 
    player allowed to race).
  - Fix camera view stuck after loading in Spectator mode.
  - Fix possible blank name and car displayed in Waiting Room.
  - Fix 'Room Full' shown after using Back To Lobby even when holding a slot.
  - Fix 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: Fix broken save screenshot (F8) option.
  - Fix possible text overflow out of spru box in Game Settings.
  [Multi]
  - Fix 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]
  - Fix profile created upon going back from Create Profile screen. Also 
    simplified the "Profile Already Exists" message string.
  [Graphics]
  - Windows Setup: Fix font creation flags to use sans serif.
  - Fix display mode showing "Windowed" in fullscreen. Now shows "Unknown" if 
    mode cannot be detected.
  - Fix HUD radar spru size in split-screen and touch modes (long car names 
    touching the border).
  - Fix "challenge beaten" and "final lap" message text and spru flashing 
    unsynchronized, which can be disorienting.
  - Fix crash when loading levels with large number of texture animation pages 
    in shader mode (eg, Slippery Slope).
  [Audio]
  - Fix Alure library functions that return without doing anything when an 
    existing OpenAL error was detected. Should solve audio / music not paused.
  [Input]
  - Android: Fix various glitches in Controller Settings menu that prevented  
    controllers from being configured.
  - Ensure joystick and force feedback devices are properly re-initialized (fix 
    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: Fix crash in Objects edit mode on quiting Preview.
  [Graphics]
  - Fix pure-black issues in BossVolt texture.
  - Shaders: Fix lighting glitch in car springs and other parts.
  - Shaders: Fix glitch in reflections of additive blended meshes (Market1 
    fluoroscent lights).
  - Fix broken Antialias support on GLES3 mobile devices.
  - Fix firework target disappearing in Chase camera view.
  - Fix transparency issues and invisible nodes in edit mode.
  - Fix 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]
  - Fix skin selector showing up wrongly in split-screen.
  - Fix potential buffer overflow cases in car params parsing and huge memory 
    consumption caused by empty params file.
  [Graphics]
  - Fix broken mesh effects in shader mode.
  - Fix potential crash at loading, especially with ANGLE backend.
  [Input]
  - Fix freeze and looping "honk" sound at the main menu when controllers or 
    hardware keyboard is used on Android.

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

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]
  - Hardware keyboard / controller inputs are enabled in Android touch menus.
  - Controller names are no longer prefixed with "Joystick".
  - Updated SDL GameController database on Android.

Fix:
  [General]
  - Fixed glitch in pickup randomizer after the Android 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.
  - Fixed touch highlights in legacy mode (Android).

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

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.
  - Fixed text widths in the car selection screen (Android).
  - 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: fix 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.
  - Fix crash on Android when quiting from the main menu.
  - Fix 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: customs 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.
  - Add Camera View option in Game Settings (Android).
  [Input]
  - Add Controller Settings on Android: can be used to configure the hardware 
    keyboard or wireless controllers if available.
  - Button Opacity can now be changed from the Controller Settings (Android).

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

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

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

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

Add:
  [Graphics]
  - Shaders caching: Compiled shader exectuables 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 Vsync 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: Fix Museum 2 stars sporadically disappearing.
  [Multi]
  - Fix chat messages overlapping race results.
  - Fix 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]
  - Fix glitch with ball bearing when shininess is turned off.
  - Fix 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: Fix fluorescent light reflections in Market1.
  - Shaders: Fix crash in instances edit mode.
  - Shaders: Invisible 3D text in edit mode.
  - Shaders: Fix 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]
  - Fix early countdown in single-player when loading takes a while.
  - Fix difficulty mode getting reset in Practice mode.
  [Multi]
  - Fix alignment issues that resulted in incompatibility between 32-bit Linux 
    build and other versions (eg, weapons not working).
  - Fix camera view not updated in late-join mode until the player list screen 
    is dismissed.
  - Fix 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]
  - Fix 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]
  - Fix potential flickering / black lines at loading screen.
  - Fix 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.
  - Fix 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: Fix issues with models scaling, eg, in "small cars" mode.
  [Multi]
  - Fix timeout / disconnect when the game is minimized during sync screen.
  - Fix 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.
  - On Windows, updated SDL2 library to version 2.0.7.
  - The release builds now use optimization level -O3.
  [Graphics]
  - Use 'glad' OpenGL library 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 library.
  - 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]
  - Fix 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 vsync 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 water box 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 vsync 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 water box animation with vsync off.
  - Fixed edit camera mouse movement not working with vsync 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, fix 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 (fix 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.
  - Fix bug allowing the car to move before countdown after using spectator.
  - Prevent possible crash at the sync screen.
  - Fix crash at loading screen in battle tag mode.
  - Fix issue with battle tag star capture and transfer.
  - Fix 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-2019.
Webpage: https://rvgl.re-volt.io
Email: rv12@revoltzone.net
