Racer log
---------

Racer is a free car simulation for Windows, Linux and Mac OS X.
See the website for many details: http://www.racer.nl

Ruud van Gaal
Cruden B.V.
http://www.cruden.com

--- Copyrights ---
Racer
Copyright (c) 2000-2007, Ruud van Gaal
All rights reserved

Open Dynamics Engine
Copyright (c) 2001-2004, Russell L. Smith.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the names of ODE's copyright owner nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 

Running this software may require installation of Visual C++ DLL's, which can be found at:
http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en


--- DEVELOPMENT LOG ---

v0.5.3 beta6/7
--------------
- Network (multiplayer) reworked a lot. Using ENet as an intermediate network library now (meaning reliable packet sending should work)
- Bugfix: ini file reads could result in extra information at the end for CR+LF formatted files.
- Bugfix: if a remote client connected before the local client (a multiplayer master is both client & server) cars wouldn't update properly
- Tracked bugfix: material index was one off in the ASE Multi/sub cutter (!)
- Tracked: when using 'Cut Multisub ASE', any resulting texture tiling/offsets weren't used.
- Tracked: Convert ASE->DOF improved (could take a LONG time); optimization is also optional now.
- Tracked: ASE importer had a bug for some split ASE files with lots of vertices but few faces.
- Tracked: added some keys/functions in Spline mode to facilitate editing splines a bit better.
- Bugfix: Ackerman wasn't applied correctly to the steering wheels (effectively operated only on 1 wheel).
- Added shader's mipmap_min_lod and mipmap_max_lod parameters again. Used to crash on ATI cards, not on nVidia. Does it work now?
- Added shader mipmap_lod_bias variable to modify mipmap behavior.
- Added resolution.no_border option to get rid of borders in non-fullscreen windows
- Added 'global' setting for freeshifting in data/controls/default.ini
- Added 'dbg_car.susp_implicit_integration' to racer.ini. 1 is the old Racer behavior, although it generates weight bugs (Ctrl-9)! Wheels get more spikey when this is 0.
- Changed spline painting colors from yellow to red and thick green for start/finish
- Added data/locale/racer_english.txt as a 'backup' language for untranslated texts in other locale files
- Added Dutch locale (racer_dutch.txt)
- Some extra locale texts (ai.learn_on etc)
- Removed wav/mp3 load failure message when menu AVI was used (without accompanying sound file)
- Stub image (when no image can be found) is now a little more colorful (red/blue)
- Added racer.ini:textures.compression (defaults to 1) to enable app-wide support for texture compression
- Added shader 'compression' key (globally and per layer!) to be able to disable compression for certain textures (skies!)
- See http://www.racer.nl/tutorial/gfxtweak.htm#texcompression for texture compression details.
- Some texture map loading changes; images without alpha will be stored as GL_RGB instead of GL_RGBA (might help performance)
- Views (for cars) are no longer loaded sequentially; instead of going through the list, now they're properly referenced as views.view0, views.view1 etc.
- Same for view elements; now referenced using views.view<n>.elt<m> instead of iterating. This should not make a difference normally for car views, except when the views.ini is not correct.
- Removed 2 second pause when starting 'Race' (this is needed for slave computers, but was even used no slaves were connected)
- Improved ini file reading speed for slightly faster startup and loading cars etc.
- Improved readability of debug info (^1-^9; shadow added)
- Fixed location of some object in non-800x600 resolutions; start lights, console text.
- Revived motion blur; it seems to start to work with at least my DuoCore/nVidia7950 machine (renderer.motion_blur.passes).
- Optimized particle drawing if no particles are visible
- Added 'trackmap save' command to save the live environment trackmap. For non-live trackmaps.
- Smoke image from Some1 included (thanks!)
- Fixed brakes flickering when ABS kicks in
- No crashes anymore when body.dof isn't found (seen a lot with Mustang2005GT; perhaps updates were installed?); a dark cube of 1x1x1m is created instead
- Added car.ini wheel<x>.reverse_steering option to allow reverse steering
- (beta6 fix) mirror was using compression so it was slow, and ATI drivers even crashed or were mangled at best
- Screenshots now use TGA again.
- Added 'debug <n>' script command to control debug info through scripting.
- Added 'format=<f>' to car's views.ini digital view elements. Format can be 'simple', 'time' or 'relative_time'. See www.racer.nl/tutorial/newcar.htm#views
- Added 'volume <x>' script command to set the master volume.
- Added sideload control (future motorbike simulation)
- Added aero.body.cz (and cy) for generic body downforce generation (only drag was supported) (car.ini)
- Added car.ini engine.braking_offset (next to engine.braking_coeff) for a more detailed engine braking torque line.

v0.5.3 beta5
------------
- Bugfix: texture caching didn't work for shaders
- Bugfix: data/cars/default seemed to be missing from the installation
- Bugfix: fog works again
- Timing no longer using QueryPerformanceCounter() to avoid trouble (slowdown/skipping) on dual-core machines
- Added ellipsoid drawing for racer.ini's gfx.show_car_bbox
- Added car.ini body.box_offset to move collision box around
- Added process.cpu_affinity_mask to limit Racer to run on only certain processors
- Support for compressed textures; default is to use compressed textures (not used for fonts and some others).
- Fixed rendering order issues with smoke & transparent car materials
- Started particle definitions through data/renderer/particles.ini (not complete yet)
- Smoke particles are white again (different blend mode)
- Added mirror update rate (mirrors.texture.update_rate) and visibility (mirrors.texture.visibility)
- F4 now loops through mirror OFF/Texture/Full instead of just on and off
- Omitting default/car.ini is no longer allowed; it would lead to subtly modified car behavior
- dbg_car.warp_rotated was deprecated
- Added collision.report_car_trk option to report when car-track collisions take place (in the console)
- Added warning for cars that still use body.restitution_coeff in their car.ini
- Improved shadow hiding; when flying high, the simple shadow could flicker on and off
- Added resolution.x/y parameters to position non-fullscreen window
- Framerate throttling details can now be set with renderer.min_detail/max_detail
- Switching realtime speed (i.e. 'realtime 2') no corrects timing to avoid stalls/catchups
- Bugreports (crashes) now add the latest QLOG entries to the report

v0.5.3 beta4.0
--------------
- Bugfix: replay crashed when first smoke particle was fired
- Slightly improved Modeler's ASE import function to handle multi/sub materials just 1 level deep
- Added graphics.use_track_loading_image option to turn on/off track-specific loading.jpg loading.
- Model offset works again

v0.5.3 beta3.0
--------------
- Bugfix: screendumps saved JPEGs only with .tga extension (now .jpg)
- Bugfix: loading.jpg wasn't found in track directory.
- buildar: added */? pattern matching (buildar data.ar *.dof) and always stores lowercase names.
- Added buildar.exe to the distribution
- Added pacenote implementation (see script command on the website)
- Added global view that is always displayed (for static logos); data/gui/globalviews.ini
- Added throttle off sound; is played once throttle goes from >0.2 to <0.2
  and RPM>5500 (currently hardcoded)
- Added race.auto_return_time for automatic resets to start (rally stages)
- Added surface skidmark=0 option to avoid skidmarks being generated on some surfaces
- TrackEd: added spline order moving to move around the start/finish line
- TrackEd: added camera fly mode (use cursor fwd/bwd and mouse to fly around)

v0.5.3 beta2.1
--------------

Known bugs:
- Car displaying in car selection screen is still a bit simple compared to before (due to the scenegraph)
- Haven't tested the car generic models with the scenegraph; they may be
  temporarily unusable.
- Stenciled shadow separated drawing is temporarily not available
  due to the new scenegraph changes.

Changes:
- Added a scenegraph; a big structural change but a cleaner approach.
- Texturemaps are longer searched for transparent pixels; this may mean
  that some shaders need to be added, but it's faster and more efficient this way.
- Tracked: added track object splitter, which cuts DOF files through a grid by material.
  For some tracks this can make rendering MUCH faster (seen 400% improvements on Kyalami
  taking something like 400m x 400m grids).
- Tracked/Modeler: improved model optimize for vertex cache ordering (unfortunately to use
  this it means having to reoptimize all models out there).
- Improved simple shadow polygon vertex generation
- Bugfix: Tracked buffer overrun in F4 mode (object properties)
- Bugfix: wheel blur models appeared in car selection
- PacPlayer: added wheel index selector
- Removed a bunch of superfluous log messages at program exit.
- Added (yet unused code) potential hitting of movable objects; not optimized yet.
  This will require a major restructure.
- Renderer is faster most of times, though it now mostly requires shaders instead
  of taking the safest route to get the looks right.
- renderer.desired_fps added for automatic detail adjustment; works best on tracks
  which have a lot of objects; tracks like Swiss Stroll will exhibit more flickering
  of large objects (lots of trees). Tracks like Kyalami work better with detail
  reduction though if you use unsplit (see TrackEd) tracks.
- Added shader sort_offset (in *.shd files) to fine-tune shader sorting (range -99..+99).
  Useful for large fences for example which have sorting problems.
- Added view3 in a car's views.ini that is used for trackcam views (falls back to view0 if not defined)
- Expanded 'graph' console command with derivative and extra signals (see website).

v0.5.3 beta2.0
--------------
- Audio setup wasn't read from racer.ini but hardcoded (FMOD4). Fixed.
- Fixed fx.fog=0 bug that made tracks black/dark. Moved to renderer.fog as well.
- Surface types are now read 'through' splines, so splines are no longer only the first (road) type!
- Multiplayer sends through brakelights (starting at about 20% to avoid flickering)
- Multiplayer LAN play improved (collisions, timing)
- Lap indicator added
- Added dbg_car.max_tire_penetration to avoid bouncy cars when rolling over
- Pacecar improvements (a bunch)
- 2-car race summary view (instead of the fullscreen one); press F1 a couple of times
- racer.ini:stats.race_view setting to select initial race summary.
- LOD sensitivity varies with camera zoom (based on FOV=50).
- Added car.ini:engine.enable_stall (default 1)
- Added script 'spline move <y>' to vertically move the current spline (live editing)
- Added script command 'spline save' to save the splines (actually it turns out not to be really useful)
- First timeline of track fixed hard to first spline. This probably WILL affect
  tracks. AI might wiggle, in which case you need to shift all splines or
  move the grid positions (easier).
- Added shifting into N/R even in automatic gearbox.
- Implemented traction_control.min_velocity (wasn't used before) to disable TC at low (world) speed
- Added gearwhine (again) to the audio section.
- Added ABS braking factor, which multiplies braking signal (car.ini:abs.braking_factor). Normally 1.
  Added because ABS allows for harder braking.
- Improved AI (lateral behavior during passing); fixes nervous behavior close to other cars
- Improved AI; removed target spring and some unneeded interpolation. KISS.
- Added AI performance array in racer.ini:race.ai.performance (i.e. '1.0 0.9 0.95 1.0 0.95').
- Added 'ai performance <x>' script command to modify AI performance live
- Added 'ai on' and 'ai off' script commands
- Added support for generic models (see www.racer.nl/tutorial/generic_models.htm)
- New page on faking motorbikes a bit (www.racer.nl/tutorial/motorbikes.htm)

v0.5.3 beta1.6
--------------
- Bugfix: Fixed some small bugs (crash while skidmarks is disabled etc)
- Bugfix: Track audio volumes were broken
- Bugfix: no doppler effect while in car camera view
- Track selection screen listbox slider works again and is visible
- Spinning wheels while standing still now gives skid sound
- Optimized for Pentium4
- TGA loader reworked; is theoretically a bit faster
- Added shader layer<x>.mipmap_minlod and mipmap_maxlod to be able
  to make a mipmap range. Useful for road shaders where mipmapping
  quickly makes things blurry; set mipmap_maxlod to 3.5 for example
  (1000=all levels, 0=only 1st high resolution level)
- Fixed the new camera system a bit so in case of no trackcam,
  it switches to the last car camera. See Carlswood for an example.
- A cunning test to get wheels to stay off the ground polygons a little. ;-)
- TrackEd v3.0 with alpha functionality for new camera system
  (add/remove camera doesn't work for one)

v0.5.3 beta1.5
--------------
- Sound is software again; too many problems reported with hardware sounds
- Auto-reset is turned off by default
- Auto-reset won't reset unnecessarily anymore on unsplined tracks
- New camera system which uses keyframes. If you're using this system, ALL
  cameras in a track must use the system, as it's not compatible with the old trackcam system.
  The new camera system only works with splined tracks.
- Added viscosity to the surface definitions. For gravel-type surfaces (use values ~0..1 in special.ini)
- Re-installed checking for transparency to automatically make materials transparent
  if no explicit shader is defined.
- Blurred wheels work in replays

v0.5.3 beta1.4
--------------
- Added pacecar.min_distance_time for subtler braking
- FMOD update to 4.0 (FMOD Ex); now using hardware 3D voices again (hm)

v0.5.3 beta1.3
--------------
- Bugfix: sound is back in replays
- Bugfix: memory leaks in car selection screen
- Bugfix: multiview slave FOV offset for funny aspects were off
- Bugfix: multiplayer+multiview slaves issues
- Car selection screen is a bit lighter
- Console can now be painted even if sent to UDP (console.paint=1)
- Added menu background movie support (no audio); see menu.*
- Revived controller setup screen
- Added initial car camera if initial camera mode=0 (carcams); camera.initial_car_camera
- Auto soft reset for offroad conditions (assist.time_allowed_offroad)

v0.5.3 beta1.2
--------------
- Bugfix: Timeline comparisons could go wrong when laptime differences were large.
- Bugfix: No longer a need to specify a track's road_noise_threshold; if absent, 0 is assumed
- Bugfix: Wheel blur models now also work in reverse
- Bugfix: replay movie generation didn't update car position.
- Bugfix: Racer crashes when renderer.use_vbo was set to 1 but the gfx card didn't support it.
- Bugfix: No shift_miss played on hard crashes anymore (this actually had to do
  with the driveline getting velocity mismatched for engine vs rest of the driveline).
- Bugfix: engine would stall when holding clutch depressed and shifting.
- Bugfix: fast AI automatic gearboxes would lead to shortshifting a lot.
  Added a minimum 300ms time delay between each up- and downshift.
- Bugfix: Tracked's preview trackcam function works again.
- Autoclutching has been refined a bit so that controller override is a bit better.
- Added on/off script commands for traction control (tc), abs and asl. I.e. 'abs on' or 'abs off'.
- The clutch has been reversed (again); it now acts more like the throttle
  and brake pedals. Clutch=0 means pedal unpressed, clutch=1 means fully depressed.
- Clutch is depressed in the start sequence (you can't drive off)
- race.quickstart=1 turns off the start lights sequence (hurrah! ;-) )
- Console output can now be logged (racer.ini:console.logfile=<file> generates data/dump/<file>)
- Revised controller engine entirely; instead of the control sets (data/ctrlsets/*), now
  data/controls/*.ini files are used to define controllers and the controls they perform.
  This was necessary because of the high number of proprietary controllers (motion/FF wheels).
  See data/controls/default.ini for an example.
- Changed the hardcoded 'c' key into a control function; use change_camera in data/controls/* to
  define a control to switch views.
- Added manual/automatic gear selection (racer.ini:assist.auto_shift=1 for always automatic)
- Added shift in/shift out sounds (car.ini:audio.shiftin.sample and shiftout.sample)
- Added a HTML ReadMe file to the installation.
- Added fast shifts (car.ini: gearbox.shifting.fast) to avoid waiting for shift-up control
  to be released while shifting (keeping the gearbox in neutral while depressed).
  Useful for racecars which shift very fast.
- Added horn sound (car.ini:audio.horn.sample)
- Added master volume of all audio (racer.ini:audio.mastervolume)
- Most texts are now taken from a language file (data/locale/racer_english.txt) for easy translation
- Tracked: modified movements; left mouse button=move around, SHIFT=pick/draw, CTRL=move fast

v0.5.2 beta9.0
--------------
- Improved skidmark system; had problems when skidmarks were all used
- Suspension stability tweaks; suspension functions could leave cars
  bouncing more than they should at standstill. Things may feel a
  little different.
- Improved LAN multiplayer collisions (LAN only though; lots of bandwidth!)
  The improvement is considerable, however probably internet play may
  be impossible due to increased bandwidth during collisions.
- OpenGL error in renderer fixed (stack underflow when using proj. shadows)
- Some multiview bugs fixed (multiplayer cars not visible on multiview slaves)
- Multiple wheel gfx models (5) supported for varying speeds; use wheel<x>.model2
  upto wheel<x>.model5 to specify other wheel models. wheel<x>.model<n>.velocity
  then determines the velocity (radians/second) at which this model starts
  being used. Notice the models must be in order from slow to fast.
- Car camera switching during trackcam viewing is now optional. Use
  camera.use_carcam_while_trackcam (set to 1 to allow carcam switching)

v0.5.2 beta8.9
--------------
- Fixed jittering of wheels while being steered in replays.
- Fixed skid sounds in replays; they were on when just braking.
- Got rid of a DLL which took a couple of seconds at startup time.
- Slight improvements in AI opponent detection (left/right/front)
- AI braking for slower cars in front improved
- Steering wheel 'xa' angle works again
- Replays are now backwards compatibile with 1.1 (052b88)
- Replays also store current gear; incompatible with 052b88.
  (not enough time passed so I'll stick with replay format 2.1)
- Replays now deduce the speedometer position (from gear & car velocity).
- Steering wheel now interpolates in replays; was a bit jerky
- Shadow intensities definable per car; car.shadow.intensity_light and intensity_dark (0..1)
  This is used with projected shadows to get the shadow intensity inside and outside
  the projected shadow. See also www.racer.nl/reference/carphys.htm#miscgfx
  The projected shadow's opacity is defined in graphics.shadow.intensity (default 0.3).
- Perlin noise thresholds definable in special.ini (road_noise_threshold=<v1> <v2>...)
  This indicates the minimal amplitude needed before the bump gets activated.
- Fixed crash at exit when track used LOD models.
- Named timelines; for example timeline.line1.name=Eau Rouge
- Bugfix: persistent skidmarks were only saved for Carrera

v0.5.2 beta8.8
--------------
- Fixed texture detach error in QLOG (splash screen related)
- Skidmark image is now used; data/images/skidmark.tga (NOT skidmark.bmp anymore!)
- Skidmarks are persistent; they survive multiple races.
- Default projected shadow is now the body model if none is explicitly defined.
- Smoke in replays is back.
- Replays also record brakelights and skid amount.
- Replays are incompatible with older versions (!) due to skidmarks etc.
- Shadow improvements; the single poly shadow is culled so might not appear
  anymore on hills where it used to when viewing from low camera angles.
- The single poly shadow will be clipped by the projected shadow, so it
  only appears visible where the projected shadow is as well. This does
  mean the shadow model should be available, or it looks quite ugly.
- The single poly shadow plane is calculated according to the splines,
  not the polygon intersections anymore (a little more accurate, perhaps
  making it disappear a bit more though).
- Camera movement keys have been inverted to feel as moving the cameraman.
- New camera movement keys; Ctrl-4/6/2/8 move the camera offset.

v0.5.2 beta8.7
--------------
- Added scripts (data/scripts). onrace.rex and oncar.rex are currently run
  at the start of each race, and as every car is loaded.
- Added telemetry graphing; console 'graph step -1 1 wheel0.road_noise' for example.
- Added Perlin road noise; fractal like road noise. A track's special.ini's
  surface now also know about 'road_noise_frequency' and 'road_noise_amplitude'
  for a maximum of 4 octaves of Perlin noise.
- Added 'echo' console command.
- Fixed trackcam bug in replay; they weren't switching.
- Added 'run' console command; runs the script data/scripts/<name>.rex
- Added 'graph clear' console command.
- AI velocity calculations are more gradual now. Used to jerk a bit.
- Improvements on the Spoon's car shadow
- Removed some pipe checking (which gave some errors)

v0.5.2 beta8.6
--------------
- Fixed replay profile bug, which prevented replays from running.
- Fixed Carlswood treelines render problems, thanks to Alfanut.
- Bugfix: the A key used to increase car camera FOV.
- Keypad + and - change car camera FOV. Notice the change in sense of speed.
- Bugfix attempt: font errors on older Windows version (Win95) in TrackEd.
- Mirror is now always updated, even if the F4 mirror is not enabled, since
  the mirror may be used in car models.
- Screen clears no longer happen by default; the track's special.ini file
  must include gfx.clear_color=1 when the sky is transparent or appears funny.
- car.ini addition: ai.grip_factor (normally 1.0)
- Bugfix: car selection screen now only shows highest LOD model.

v0.5.2 beta8.5
--------------
- Detection of running Racer twice. It won't run twice now.
- Multiview slaves now also connect & run if the master is already running.
- Autojoin slaves now also connect & run if the master is already running.
- Automatic slave machines startup when master starts (through Spawner).
- Spectator view now gets car & track sent through
- Aspect ratio setting for non-4:3 displays (Mac mostly)
- gfx.ini and debug.ini are now incorporated in racer.ini; they're now obsolete.
- Commandline arg: -f <file> selects racer.ini file to use.

v0.5.2 beta8.2
--------------
- Minimap keying is now done a little better (gray background on minimaps)
- AI improvements
- Listserver basic support (multiplayer)
- Bugfix: car.ini:steering.linearity had an implicit effect on the wheel lock
- Added realtime scaling (both slowmotion and fastmotion). See debug.ini:timing
- Added gfx.ini:shader.enable test setting
- Added gfx.ini:texture.enable test setting
- Pacecar braking is more subtle
- ABS is always enabled for AI
- Fixed a number of memory leaks (some very big ones); memory management overhaul
- Turning off the texture mirror (F4) now also improves rendering speed
- Improved projected shadows to work decently with the shader system

v0.5.2 beta7.9
--------------
- Fixed bug with tracks without surfaces

v0.5.2 beta7.8
--------------
- Bugfix: wheel lock left too much steering capability
- Bugfix: director camera audio origin was always at world center
- Added surface 'skid_sound' option for surface (special.ini) to turn off skid sounds
  for certain surfaces. See http://www.racer.nl/tracked.htm
- Added surface 'dust_color' implementation for colored smoke.
- AI recording (Ctrl-F6) now displays the AI lines as they're being recorded,
  so it's easier to spot if AI recording goes wrong.
- All audio is now done in software; with boards (SBLive?) that had only so many
  channels, any sounds played beyond that would all be on a single channel.
  Had problems with the Lamborghini decelerate sounds on an Intel AC97 internal soundchip.
- Added racer.ini:audio.voices (defaults to 32) to set the max. number of samples played.
  Note that Racer uses a LOT of samples, but few of them are actually mixed at one time,
  so I just leave this at 128 for example.
- Slightly modified volume determination of engine (overall more volume)
- Bugfix: mirror sometimes turned black (lighting was on for that polygon)
- Added global emissive light for tracks. This is an emissive light that adds to ALL
  shaders. Per track, in special.ini:gfx.sun.global (i.e. gfx.sun.global=0.3 0.3 0.3 1).
  This can be used to lighten up cars on a track if the weather is sunny for example.
- Mirror texture, if not used, is now gray instead of hard-red

v0.5.2 beta7.7
--------------
- Added 'analyse dampers' console command that gives an overview of damper forces
  at some velocities (0.1 upto 0.5 m/s). To verify damper forces with actual data.
- Bugfix: AI steering improved a lot (was based on steering lock rather than wheel lock)
- Bugfix: shifting could shift from R to 1st or 1st to R in one step.
- Bugfix: steering ratio was half of what it should have been.
- Added car.ini AI fields; ai.understeer_correct and ai.oversteer_correct. Magic
  factors (around 30?) to add oversteer/understeer corrections to steering. Larger
  numbers mean less impact. Lots of magic and it's more of a try.
- AI cars now always use traction control
- Modified first line of log file for Miran's replay analyzer (some fields)

v0.5.2 beta7.6
--------------
- Fatal error messages will show a messagebox (multiplayer join errors and such) on Windows
- Fixed minimap transparency, minimap car offsets on non-800x600 view.
- Fixed console UDP output; no console painted anymore if console UDP is active.
- Steering ratio is now deduced from the steering wheel and wheel lock. FF will be affected!
- Track selection preview.tga files can now use alpha channel (transparency).

v0.5.2 beta7.5
--------------
- AI improvements; no longer blind but wary of other cars
  (problems with steering though, work in progress)
- Mouse preset showed flickery in the control setup screen
- Added initial camera mode (debug.ini:camera.initial_mode)
- Added camera mode; director (next to track/car/heli).
- Throttle blipping during downshifts (racer.ini:controls.blip_throttle=1)
- Separate upshift/downshift can be specified in car.ini to allow to tune throttle blips.
  Set car.ini:engine.shifting.time_to_declutch_down, time_in_neutral_down and
  time_to_clutch_down (defaulting to the standard shift times specified in time_to_declutch,
  time_in_neutral and time_to_clutch).
- Fixed bug when using texture quality reduction; could crash while resizing.
- Fixed minimap bug which appeared too far right on some tracks
- Minimap hides when no splines are defined.
- Added z-buffer, alpha and stencil bit depths to gfx.ini. Default is not to use
  alpha bits (was 8 before).
- Added bump/rebound damper functions for more damper behavior variation; see:
  http://www.racer.nl/reference/carphys.htm#suspdamper
- Added camber change wrt suspension deflection, see (for all suspension geometry effects):
  http://www.racer.nl/reference/carphys.htm#suspgeometry
- Added camber change wrt steering
- Added bump steer (toe change wrt steering)
- Cleaned up some QLOG warnings, assumes tracks with no id are for v0.4.9 for example.
- The ^9 debug screen now also shows dynamic RC heights for front and rear.

v0.5.2 beta7.4
--------------
- Fixed controller setup for non-800x600 resolutions
- Fixed nasty bug with revlimiter; could be on.

v0.5.2 beta7.3
--------------
- Minimap added, see racer.ini:minimap, use F6 to toggle
- Network layer renewed, no more 2 player limit (but no time correction or collisions)
  (incompatible with older betas)
- Revlimiter added, debug.ini:car.rev_limit_time and car.ini:engine.max_rpm
- Controller setup screen is now working and replacing the control set files.

v0.5.2 beta5.4
--------------
- Initial FPS displaying can be controlled in racer.ini:stats.fps
- Console enabling/disabling through racer.ini:console.enable
- Console UDP output support (console.host/port)

v0.5.2 beta5.3
--------------
- AI shifted poorly if controls.cut_throttle was set to 1.
- Race timing added; speed traps, best-time comparisons
  (F1 to walk through the modes)
- A bit more compatibility with older tracks for skies.
- Hiding of cursor (fullscreen mode) is now optional; see racer.ini's graphics.hide_cursor

v0.5.2 beta5.2
---------------
- Small LOD fix; LOD objects could disappear for a small moment due to slightly
  different geometric centers (flickering).
- Spectator view: if racer.ini's multiplayer.audience is 1,
  no car will be loaded (only the remote cars will be shown).
- Wrap variables added to shader layers to help rid the extra lines
  at the top of treelines for example (see site:ref/shadereng.htm).
- Added $mirror texturemap which contains live rendered mirror view. See gfx.ini's
  mirror.texture settings. Use $mirror in shaders.
- Renderer can now handle 10,000 objects visible at the same time (Z-sorting). Was 1,000.
- Quickrace #ai cars now works at once.
- Models stored in .ar files didn't correctly find/load shaders.
- Traction control now also works in reverse gear.
- Brake 3D models are no longer inverted vertically.
- If "loading.jpg" exists in the track directory, that image will be used for loading.
- Splash screen (see racer.ini:splash and data/images/splash.jpg)
- Some race support; start lights, flagging after a number of laps.
- Cursor is turned off in fullscreen mode

v0.5.2 beta5
------------
- Renderer now uses Z-sorting for transparent geobs. Big geobs may still
  render incorrectly (models with lots of trees for example) as no sorting
  per polygon is nor will be implemented for performance reasons.
- Added traction control (see www.racer.nl/reference/carphys.htm)
- Added engine mapping; non-linear throttle for low gears
- Steering linearity modifiable per car (steer.linearity)
- Linearity can be inverted; using a value>1 actually exaggerates
  the responsiveness (for controls, steering, throttle etc).
- Automatic damping parameters for relaxation length (damp_predict_lat/long)
  should deal with excessive bouncing back of cars.
- LOD support for tracks & cars; see www.racer.nl/tutorial/lod.htm
- Audio simplified a bit; engine sounds in/out now working.
- Simple mirror (toggle with F4)

v0.5.2 beta4.1
--------------

- Seemingly the bug of crashing on the Start/Finish line is fixed
(full recompile).
- Carlswood Z-buffer problems ('sinking in the road') fixed; sky objects
had all their shaders modified to be of type SKY (and no FOG). However,
some sky objects also contains (unused) shaders of other objects, mistakingly
updating those too.

v0.5.2 beta3.4/beta 4
---------------------

- Fixed slip bug (you could do 360's instead of 180's)
- Emission color from DOF materials are ignored (to get rid
  of the red shine on a lot of tracks)
- Old tracks should now have visible skies (implicit shader
  changes to include sky=1 and fog=0).
- You can control whether the throttle is cut during shifts
  in racer.ini's controls.cut_throttle.
- Warnings are generated if the Pacejka curve generates longitudinal
  forces with 0 input (wheels will rotate a bit by themselves).
- Fixed keyboard.ini to work again (clutch was negated)
- Experimental 4WD hack; wheel<x>.powered=1 is accepted and will
  add engine torque to a wheel without a differential.
- Old cars with the old audio engine now work again (an implicit
  audio set is created).

v0.5.2 beta3.3
--------------

- Brakelights now work; need shaders though (car.shd) to render correctly.
- Audio now works for more than 1 car.
- Console now displays in various resolutions at the right location.

v0.5.2 beta3.1
--------------

Bugfixes:
- Modeler's Import DOF could crash
- Old 050f cars could turn out quite white (Nissan Silvia was tested to work now)
- Reflection map emulation of v050f cars was not done properly
- Reflections on cars could flip randomly, depending on the viewpoint
- FPS counter had a small memory bug
- AI acc/dec performance was accidentally still cut down by 50%

v0.5.2 beta1-3
--------------

Features:
- Improved multiplayer prediction (splines); best with framerates around 50+
  and LAN though (no time corrections).
- AI races in simplistic form; use Quick Race. With car-car collisions!
- Track steer/road noise.
- Stabilized FPS readout
Bugfixes:
- Collision normals fixed; you can now actually flip the car without flying
  into space!
- Some gfx engine bugs fixed.

v0.5.2 alpha 8/9
----------------

Features:
- Controller setup screen now mostly works. Try a MOMO. :)
- Screensaver/monitor power off should now be off while
  Racer is active (Windows).
- Modeler can now rename materials.

Bugfixes:
- Fixed Modeler's moving system, which was unusable.
  Now uses an Arcball. Pretty nice.
- Pacejka player crashed when selecting a coefficient above ~12.
- Envmaps needed to be rendered upside down, lefthanded.
- ASE import (of TrackEd & Modeler!) incorrectly imported
  MATERIAL_AMBIENT as emission.

v0.5.2 alpha 7
--------------

- Cubic environment mapping support for shaders. Set a shader's
  texgen_s, r and t to reflection_map and use map=$trackenvmap.
- Live track environment mapping. Damn costly. Set gfx.ini's
  envmap.live_track to 1 to have a taste.

v0.5.2 alpha 6
--------------

- Wheels could disappear (graphically) when making high jumps
- Debug.ini's gravity_body=0 fixed to work.
- Gfx engine bugfixes (a bunch)
- Wheel can no longer separate from suspension
- Camber angles limited (unrealistic forces otherwise)
- Car shaders were not sorted with track shaders.

v0.5.2 alpha 1
--------------

? Added better support for POV Yaw & Pitch angle changes.
? Added support for trackIR (www.trackIR.com) head tracking
  through POV Yaw and Pitch controls.
- Fixed font widths for Parhelia Surround Gaming modes.
- Added car.ini engine.shifting.time_in_neutral variable
  to add a neutral phase while shifting.
- Logging added; see www.racer.nl/reference/logging.htm.
  Enough to do a serious telemetry analyzer.
- Throttle cut during shifting
- No more quick-shifting; you need to release the shift up/down
  control before the next shift can occur.
- Shifting is initiated by shift control; the next gear
  will only be selected once the shift control is released
  (while depressed you'll stay in neutral gear)
- New graphics engine in place for easier experimenting and shaders.
- TrackEd also uses new gfx engine.
- TrackEd's batch import (ASE/VRML) optimizes models better
  (as in Modeler).
- New shader editor, Shady.
- Geometry.ini DOF filenames are now stripped of whitespace
  (could lead to strange trouble when using a track.ar file)
- All material texture maps are now handled in lowercase,
  to avoid platform incompatibilities.
- Specular highlights on tracks now possible.
- New camera system using SMD (spring/mass/damper).
  Backwards compatible with old Racer v0.5.0 style cams.
- Added digital view element (for digital speedometers)
- Added factor in view elements (for example to go from
  m/s to kmh for digital view elements)
- Cars now have their specific projected shadow model.
  See car.ini's graphics.shadow.

Bugfixes:
- Clutch negation wouldn't work if min>max.
- Engine torque reaction was reset to 0 at the start of a game.

v0.5.1 alpha 2
--------------

- Controller is reacquired when application focus is lost. This
  should help when Alt-TAB-ing out of the program for example.

v0.5.1 alpha 1
--------------

Fixes:
- Projected shadows could be whitish; fog was still on
  (seen on Mac and a certain XP/Geforce2MX machine)

Features:
- Added multiple audio samples for engines, skidding, wind etc.
- Added track surface sounds


v0.5.0 final
------------

Fixes:
- Autoshift doesn't shift out of reverse/neutral anymore
- Better Join/Host multiplayer handling. On Mac, you'll have to use
  racer.ini's multiplayer.server_remote to specify a remote server.
  Host/Join now actually works at once. Try it on a LAN first though.
- Better collision response (some ERP changes in debug.ini)
- Improved keyboard.ini (but totally unrecommended)

Features:
- Improved multiplayer prediction code; cars move smoother
- Multiplayer smoke
- Multiplayer wheel heights; wheels don't sink in track

Known bugs:
- Replays don't work for multiplayer.

v0.5.0 beta13
-------------

Fixes:
- The Fer312 car.ini had a typo; locking_coefficient
  should have been locking_coeff.
- Typing 'P' twice during a replay would turn the realtime
  back on, and getting back out of the replay, realtime
  would be catched up, giving incorrect superfast responses. 
- Using Shift-R now doesn't cause bad replays anymore. Simtime
  keeps on running when Shift-R is used.
- Wheel<n>.x offset now added to suspension location, instead
  of just being reset to 0.
- Replays could crash at the end.
- JPEG loader works again
- Using a brake model works with projective shadowing.
- Tire forces were in the wrong direction

Features:
- Added function motion plugins. (data/plugins/*)
- Improved locked wheel behavior
- Nicer smoke

v0.5 beta 10-II
---------------

- Fixed bug where a car could drive on indefinitely in a large
  turn with some initial speed.
- Degenerate splines detected and skipped
- Degenerate track triangles detected for car-road touching.

v0.5 beta 10
------------

Fixes:
- Car-track collisions are a lot better; using ellipsoid collision
  shape instead of box. See also debug.ini's collision.* variables.
- Shift-R/Shift-P now reset the car's velocities. A bit more stable.

Features:
- The differential can be attached to any set of wheels. Use
  differential.output0 and output1 to select the wheels.
- Pacejka camber coefficients are checked at car load time. If they
  look suspicious, a warning will be generated in QLOG.txt.
  Suspicious means that Fy or Mz decreases with added camber. This
  may give an indication of Pacejka values that use a reversed
  lateral axis.
 

v0.5 beta 9
-----------

Mac:
- Controllers are now searched for by product and vendor id;
  the controller index system was too problematic.

Fixes:
- Projected shadows now also work on remote cars

Features:
- Projected shadows now lighter for transparent areas (windows...)
- Debug text (^1-^9) are scalable (racer.ini: stats.scale)

v0.5 beta 8
-----------

Beta 7-II : Fixed roll torque bug
Beta 7-III: Fixed sound bug (for hardware accelerated boards)

Fixes:
- Splines on Nurburgring are now much faster
- Spline bug fixed near start/finish
- Suspension min/max limits now handled better
- Handbrake is no longer limited by the maximum brake torque
- Smoke while driving in reverse
- Incompatible cars can no longer be selected (in 'Select Car')
- Track lighting direction is now derived from the sun
- Using the clutch controller overrules the autoclutch.
- The joystick utility (Windows only) now correctly reports all
  axes. Just the last DX8 incompatibility straw.
- Low speed & torque damping to get rid of low-frequency wobbling.
- Suspension is now compressed in the car selection screen.

Features:
- Projection shadow of car on track
- Replay buttons auto-hide
- Digital controls can be turned into analog values using
  'make_analog=1' for that control. For digital gamepads etc.
- Controller input and output now independent of framerate
  (see racer.ini:controls.time_input and time_output)
- Control's 'sensitive_rise' and 'fall' are now independent
  of framerate. Their effect has changed (you may need to tweak
  them to the new system).
- Multiplayer improved; now both client & server see the cars.
  One on one only currently! Very rough stuff though.

v0.5 beta 6/7
-------------

Beta 6 was Mac-only. To avoid confusion over features, beta 6
was never released on the PC.

Incompatibilities:
- Rollcenter used to add the suspension position. This didn't seem
  that logical so the addition is now gone (!). This means that
  for every car.ini, you need to retweak the roll center. To get
  pre-beta6 behavior, add susp<x>.x/y/z to susp<x>.roll_center.
  This now makes the rollcenter's base the nullpoint.
- Track and car id's must be used from now on.
- SGI release has been dropped.

Fixes:
- Fixed yaw torque bug; cars would spin under braking too quickly.
- Fixed telemetry; CG height was calculated incorrectly.
- Fixed automatic shifting; wasn't running.
- Fixed magic drive bug; when one side of the car had a
  lower suspension Y coordinate, the car would start to
  drive by itself. Also had some impact on weight transfer.
- Fixed weight transfer bugs (all directions)
- Fixed anti-pitch weight transfer bugs
- Fixed track popup objects
- Fixed bug in automatic shifting; erratic downshifting.
- Fixed spline offset bug; small fluctations from poly to poly.
- Several small fixes & enhancements.

Features:
- FMOD updated to v3.6 (all platforms).
- JPEG files now accepted on Windows/Linux/Mac. Note that JPEG
  does not support alpha channels. Also don't use colorkeying
  in JPEG images; JPEG is too lossy for that to work.
- Telemetry now fully functional onscreen.
- POV following; see racer.ini (controls.pov_follow); allows head yawing
  to follow the steering wheel motion in car cameras.
- Helicopter camera view. Press C twice.
- Audio system upgraded to cache samples with the same filename.
- Car selection now sorts by name
- Car selection has 2 more lines: credits & comments
- Roll center debug displaying improved.
- Low-LOD steering wheel possible (steer.model_low) for outcar views.
- View elements can now be tilted; view<v>.elt<x>.xa (and ya, za)
- Linux version now has working fullscreen.

Mac version:
- Support for sound (FMOD3.6)
- Support for USB controllers; Thrustmaster Modena 360 Pro control set created.
- Now also has working fullscreen.
- Multiple mouse button support (used to only see the primary button)

Notes:
- The 350Z car.ini has a typo: susp_rear.anti_pitch=0.5 instead of anti_pitch-0.5

v0.5 beta 5
-----------

Bugfixes:
- Fixed camber bug; camber was converted twice from radians to degrees
- Fixed trackcam bug; used to be able to crash quickly when switching
  from car to track cameras on tracks with few cameras.
- Fixed point_to_point bug; on every save, TrackEd would enable
  point_to_point. (A-B tracks)
- Replay buttons look a bit better.
- Improved resource releasing to avoid memory leaks.
- Some other small bug fixes.

Features:
- Last track is cached. Quitting to the menu and restarting on the same track
  (or watching a replay on that track) doesn't need to reload the track.
- Parhelia Surround Gaming support (3 monitors) (gfx.ini:resolution.monitors)
- Telemetry screen (^9). Still being worked on.
- Carlswood is the new default track.
- Buzzbomb's Ferrari P4 is the new default car.

v0.5.0 beta2
------------

Bugfixes:
- Toe on rear wheels didn't work
- Engine mass is now added to the body
- Aero was twice as much as it should be
- Gear velocity didn't match actual velocity.
- Specular hilites were awful from trackcams.

New features (physics)
- Driveline redesigned for more flexibility, clutch etc.
- Analog clutch
- Analog handbrake implemented?
- Free shifting possible (ActLabs Shifter etc.)
- Smoke bug fixed for older drivers/cards.

- Camber calculated for the wheels vs. track
- Static wheel camber
- Camber change / suspension deflection
- Camber change / steering degree
- Camber change / caster

- Engine stalling is now possible
- Starter engine; press S to use the starter (if present)
- Smoke bug probably fixed for older drivers/cards
- Velocity is taken from gearbox (not the body velocity)
- Force feedback at low speed is filtered to avoid shaking
- body.restitution_coeff is used again (wasn't in v0.4.9)
 
Additions:
- A-B tracks now possible (non-closed)
- Upto 3000 track objects possible (was 1500)
- Replays can now be exported to .tga files (in data/dump/)
- Replay markers are used to limit exports (not saves though).
- F12 saves a screenshot in data/dump/ (as a Targa file)
- Car camera movements using the numerical keypad.
- Modeler: translate operation added
- TrackEd: no spline limit anymore

Misc:
- In replays, P now means play/slomo (was ENTER)
- ENTER in replays now reselect the last button clicked

Changes in car.ini files:
- differential.ratio is now used instead of gearbox.end_ratio
- differential.inertia is used for the ring gear inertia
- audio.ini and env.ini are now included in racer.ini for simplicity

v0.4.9
------
Bugfixes:
- TrackEd's Batch ASE import contained a texture bug.
- ASE importing could lead to alpha=0 in the diffuse color,
  which would render an object fully transparent (invisible)
  when rendered from certain track points (tough one). If you
  have this problem, reimport the ASE files.
- The FMOD dll and .so (Linux) had division by 0 bugs and have
  been replaced with newer versions.
- The mipmap and trilinear features in gfx.ini weren't
  correctly applied.
- TrackEd: Sky bug fixed (moving around didn't move sky well)

New features (physics):
- Anti-roll bars added to the physics engine.
- Dampers are now MUCH more stable (implicit integration).
- Ackerman steering is now possible.
- Much improved collision detection response. Thanks to
  Russel Smith's ODE library (www.q12.org).
- CarLab: Analysis button added which gives info on the
  car, like weight ratio, suspension critical damping etc.
- CarLab: a button to modify the weight ratio of the car
  (is otherwise quite some work)
- AABBTrees for the track introduced to even out and speed up
  wheel-track collision detection.

New features (graphics):
- Vertex color support (see the
  new Carlswood track, downloadable at Strat's site).
- TrackEd/Racer: Driving line overlays possible (decals).
- In gfx.ini, mipmap can be set to 2 to use more linear filtering
  (instead of 1 for nearest filtering, or 0 for none at all).
- Sun (with whiteout and editable flare in gfx.ini)
- Lens flares
- Skidmarks (for settings, see gfx.ini)
- Fog is now defined per track instead of globally.
- Separate brake light models.
- Separate front light models.
- Separate wheel brake models (that don't rotate along,
  but do steer with the wheel).
- Basic replays possible (press F2); thanks to Mitch
  for providing the buttons.
- GUI improved; buttons that may be clicked with the mouse,
  and selected with TAB/Shift-TAB and ENTER.
- Improved reflection map (full use of the texturemap).

New features (audio):
- Frequency upgraded to 44.1kHz.
- Music possible in section (menu/racing/replays). MP3/WAV etc.

New features (misc):
- Keyboard support (I still think driving with the mouse is easier)
- Wingman Force 3D joystick control set.
- Gravis Eliminator Aftershock control set.
- Updated Guillemot Ferrari wheel control sets.
- Fer312 car attached. It now has a setup very similar to an
  existing GPL setup from Alison Hine. There are still some unknowns.
- Sound playing in the original v0.4.8 had a bug, which could
  give you no sound. This has been fixed.
- Pacejka editor now works for the most part (except Save).
- Thrustmaster Nascar Pro Digital wheel control set added
  (thanks to Adam Light).
- UDP output possibility of the acceleration forces and car
  orientation. This is done to facilitate any chair control
  that you may want to do (!).
- Ini files can now refer to trees with '~' (and overrule).
- Replay viewing from the menu

Changes:
- TrackEd now defaults to flags=0 when importing objects. This was
  done because a big Monza import gave more objects to turn off
  than to turn Collision and Surface flags on for.

New requirements:
- DirectX8 (for DirectInput)

v0.4.8
------
Bugfixes:
- When the car bottomed out, the wheel could get stuck
  for too long and gave strange forces, making the
  car seem to float or fly.
- Ran Purify on Racer and this caught a lot of tiny bugs. Fixed
  those and some memory leaks.

New features:
- Improved spline handling using full 3D surface patches;
  retry the Oval once more and you'll feel the difference.
- Surface detection; multiple track surface types
- Kerb force feedback effects (thanks to the above)
- Added the Evo6 as the new default car. It can show off more
  of Racer's capabilities than the Ferrari P4 can.
- Full 3D cockpit is now possible (separate models, 3D dials etc).
  You can specify a special incar model for detailed cockpits.
- Steering wheel model possibility added (the Evo6 has one).
- Physics option to use suspension force for load instead of
  direct tire forces. Idea by Paul Harrington. See debug.ini's
  use_susp_as_load. Perhaps gives more stable grip.
- Basic UDP multiplayer facilities for LAN networks (no dropped
  packets are traced so it will probably do very bad on
  modem connections). Not much yet, don't hope for too much.
- Improved envmapping; now also possible on transparent windows
  on multitexture-capable boards.
- Collision detection improved; it's harder to get stuck now,
  either in the railing or in the track itself.
- 3D sound (using FMOD) on Windows & Linux (see http://www.fmod.org)
- Upgraded sound system to 16-bit, 22kHz (upgrade those samples!).
- Music possible in the menu; no music is included because that
  would make the download bigger. Check racer.ini's menu.music.
  Streaming MP3, WAV and some others are supported.
- Toe in/out for each wheel
- FOV settings added for each car camera
- Added an ActLabs Force RS FF control set. Note these things come
  in various configurations. I now have a shifter, and support for
  it will be added in a future version.
- Added a Microsoft Gamepad control set.
- TrackEd adds batch ASE import (useful for people making new tracks)
- Modeler can set shininess per material now.
- Modeler can edit ambient/specular/diffuse/emissive color per material.
- 'F' in Modeler toggles current-material flashing.
- Optimize in Modeler improved.
- Carlab fixed to give correct car camera views.
- Carlab can now edit the car camera FOV.
- Carlab's dialog now shouldn't disappear on Win98 machines.
- Ran Purify on Racer and fixed quite a number of bugs that it found.
  Has run cleanly through Purify (and you don't know how
  clean that feels!).

New requirements:
- A TCP/IP network protocol, because every game now behaves
  a bit like multiplayer.

v0.4.7:
-------

Bugfixes:
- Modeler's ASE loader improved (had some bugs with some models,
  esp. with UVW unwrapping); also improved the optimizer to
  handle the new methods better.
- TrackEd & Modeler popup dialogs are now not overdrawn anymore.
  This problem was most apparent on Win98. It is a driver problem
  still, but I'll just circumvent it then. :(
- Debug output to COM1 is now optional (setenv QDBG_COM=1).
  This may resolve problem with wheels that are hooked on COM1.
- On Win98, a lot of people had trouble running Racer more than twice.
  My sound code is better now, in that COM is uninitialized at
  exit time. This is likely to fix the two-time running problem.
- FF jittering at low speed is damped more.

New features:
- Added a new friction combination method, courtesy from
  Gregor Veble for the idea, which gives better behavior,
  meaning more warning before the tire starts slipping.
  This friction method is now the default. It resembles
  very much the method from chapters 24/25 from Brian Beckman.
- Mipmapping, trilinear and anisotropic filtering support.
  See gfx.ini's new options.
- Aero drag for the body
- Wing aerodynamics
- Engine torque reaction on the body (like in GPL)
- Improved skid sound code (I think).
- Support for more than 1 controller
- Dual controller controlset for Logitech FF wheel
  and CH Pro Pedals (courtesy from Alison Hine)
- TSW2mod controlset (courtesy from Uwe Schuerkamp)
- Non-linear control support (variable from linear to non-linear)
- Improved the JoystImm utility (Win only) so it now handles
  more than 1 controller (you can select it).
- Improved TrackEd movement and selection
- Car selection screen
- Track selection screen
- Best laps are recorded per track (10 per track) and per driver
  (just 1 driver for now in data/drivers/default)
- Some transparency support for the cars. Still rudimentary,
  but working a bit.

v0.4.6.1:
---------
- Fixes major grip bug; now it finally feels a bit realistic.
  You now get twice as much grip, like it should be.

v0.4.6:
-------
- Last-minute fix of a major bug on Linux where you would get
  only 1 texture for the track and 1 for the car (ugly!).

New features:
- Environment mapping on the cars; nice reflections.
- Splined surfaces; much smoother surfaces. Retry the oval!
- Separate specular highlights; creates specular highlights
  on cards that support it (on the car for example).
- Differential improved; viscous locking (but slippery).
- A horizon is now possible (the original sky is included
  in Carrera, although I also tried a sky from GPL's Silverstone
  with success)
- Ferrari 312 '67 car added, thanks to Neil Bainbridge
- Lotus John Player Special '72 car added, thanks to Christoper
  A. Landt and Christopher M. Steed
- Modeler can now import .3do objects (from GPL for example).
  It converts from a tree to a flat object, so don't think
  it can import tracks. Only recommended for small objects.
- Modeler can now select materials (reflection mapping
  is defined per material).
- TrackEd has been enhanced for spline surfaces, better
  trackcam editing (preview) etc.
- Further enhancements here & there (it's not so easy anymore
  to get Racer to 'lock' when the car gets out of control)
- Source of D3/QLib library and EGL (extending OpenGL for OpenGL1.2).

v0.4.5:
- Rendering optimized a little.
  It now sorts by material, made some 10% difference on my O2.
- Texture loading optimized.
  Multiple occurences are only loaded once. This was previously only used in TrackEd. Should load (much) faster now and use much less memory. If you previously tried to convert tracks like Monza, try again; this version should be much better.
- Differential code has been placed in. It's quite beta, and will exhibit quite a few problems while driving (or should I say trying to drive).

New features:
- Linux version added! Not a fully compilable version, but perhaps interesting for future serving of races. Strangely enough, the Linux version was up & displaying in 3 days. No sound yet though. Any takers?
- Collision detection (car vs. track). A bit crude still; no angular impulses yet (and no angular rotation collision prediction). Thanks to Dave Eberly for his OBB-Triangle detection code.
- Power oversteer.
  Note the Ferrari is quite heavy and requires some pushing to make it spin out from a start. The addition was possible thanks to a friction curve which specifies maximum friction based on the slip velocity. But oh gosh, ofcourse there's too much oversteer!
- Lit tracks; some lighting can be added to the tracks (it's on by default).
  Although subtle, it does add a bit of flavour. To get lighting to work on old exported tracks, use TrackEd, select your track, and click 'Add Lighting'. This will process all track .DOFs and add normals so that lighting works correctly.
- Transparent track objects (fences and such).
  Although the rendering order is not be correct in all cases, alpha rendering is supported. For .BMP texturemaps, any purple pixels are made transparent. The bridge rail in Carrera for example. Note that half-transparent textures (if you use .tga files) will not render in the right order.
- ACT Labs wheel control sets were added (thanks to Dedlast)
- Logitech wheel axes support.
  The Logitech wheel used slider axes and these could not be specified. Support was added. Use 'slider0' or 'slider1' as the axis name in the control set files (no Logitech ctrlset exists yet; please send one to me if you get it working)
- More axes are supported; the Logitech wheel uses a slider axis, and this was not recognized. Now if someone can do a control set that I can include... (use slider0 or slider1 instead of the regular axes, X/Y/Z/RX/RY/RZ).
- Full compilable source available for Win32, SGI and Linux.
  I might have forgotten things, or getting it to work is (very) unclear. Mail me with what you had to do to get it to compile, or what your problems are in getting it up, so I can make it easier for future releases. Warning: it might be a bit of a mess right now; didn't put enough time I guess into testing and searching for omissions.
- Force feedback improved.
  I now have friction working to get rid of the loose feel at low speeds. Look at the msff_ff.ini file in data/ctrlsets for some new parameters.

TrackEd changes:
- AI waypoint editing now possible (consisting of direction markers and left/right road markers; possible speeds are learned by the robot drivers).
- Camera handling is now a bit where it should be; not too much funny alpha stuff. It's ok to do your own track camera's, in fact, I'd love to see what you make of it, since I don't really put time into those much.

v0.4.1:
- Tire model enhanced with lateral force buildup, with thanks to Chris West & Gregor Veble for the help
- A lot of variables are shown; a bit too much for the casual driver. :)
- The laptime is back; it was there, but culled out by mistake.

New features:
- Track cameras! To show off, it starts in trackcam mode by default, hehe. Press C to switch to car view (and C again to switch back). Track cameras are still in beta, they will be enhanced soon with a couple of extra features.
- SGI version now available.
- Guillemot Ferrari control set (thanks to Shane Lowry)
- Applying the friction circle is optional; try debug.ini's car.apply_friction_circle and set it to 0 and 1; see the difference. Understeer or snap oversteer? Hm... In my opinion, WITH the friction circle on it's much to slippery. WithOUT it is VERY understeering.
- Some extra documents collected from Usenet discussions.

v0.4:
- Pacejka tire model; better than the original curves.
- Force feedback! Yes, with Pacejka this was a piece of cake. HOWEVER, the response I feel with my MSFF wheel is too late. Will have to do some future prediction like GPL, but how...
- Optimized triangle intersection; your FPS may go up quite a bit.
- Engine torque curve normalized, with a torque factor to get the maximum torque.
- Released a small track called 'Carrera'; very cute, and it contains a bridge where you can drive under and on. So it's basically Suzuka ready. :)
- Physics of the Ferrari once more revised (for Pacejka) so it now weighs twice as much.
- A shadow is projected onto the ground. Looks much nicer.
- Shifting with buttons.
- Mouse support (select the mouse controller from Config).
- A digital clutch has been included (it's analog, but handled in a digital way).
- Engine inertia added; the engine must now spin up as well as the rest of the drivetrain.
- Engine rpm is better simulated.
- A crude open differential is simulated.
- Wheel lock is handled better; you used to be able to steer the car even with fully locking front wheels.
- Bug fixed; QLOG.txt could get uncontrollably large on Windows systems. Limit is now 1Mb.
- Source code included (not yet compilable; more coming later)

v0.39.2:
Bugs resolved:
- Shift-R / Shift-P now work completely fine. The suspensions wasn't reset completely when in bad shape.
- Drivability is a bit better, though perhaps you might want to tweak the braking parameters.
- Camera following is now correct, no more run away cams
- Installer path fixed; should now create correct shortcuts (tested in Win2000/95)
- 1st frame had no track for collision; this caused the massive helicopter flight
- 1st frame quaternion matrix was off; 1st frame was badly oriented
- Grid/pit positions and timelines were rounded to ints, are now floats
- Suspension could get locked indefinitely, this caused strange bouncing
- 4WD was accidentally turned on, hehe, it's now rear wheel drive.

New features:
- Car is lit (looks a bit better)
- Wheel models!
- Camera 10 (key '0') is an in-car view (sort of)
- Fog introduced; you can turn it off in gfx.ini
- Brake factor introduced in the physics to get a means of brake balance

v0.39.1:
- Shift-R / Shift-P now work far better; they also reset
  the suspension and wheels.
- The car's physics have been tweaked a little bit.
  It's a bit more drivable now.
- No display lists are being used; this didn't seem
  to make much of a difference on my card, and it
  saves a lot of memory (I tried a lap on Monza,
  but it was swapping too much at 256Mb). And no,
  Monza is not downloadable on my site (on others
  though).
- Timing is improved; it should have better resolution
  now. Although you won't see it through the car's
  behavior, the Physics% and Graphics% are much more
  stable now.
- Icons are created in the installation. How handy!
- Curved was missing from v0.39. My mistake.
- The camera pitch has been improved, and you should
  be able to see more clearly now where the car is
  going in the default view.

v0.39:
- Added info on track timelines used in Racer.
- Timelines also really work, so you can now drive an actual lap time! (best lap time is shown under the current lap time)
- Physics engine reworked to use quaternions (the car's body now has gyroscopic precession as well).
- Gravity now always point down (not that it won't flip! ;-)
- views.ini file; it's now possible to create dials, timers etc. in a very flexible way.
- Roll centers for the suspensions
- Actual camera's from the car.ini file are used (keys 0-9)
- Grid/pit positions (easily created from TrackEd too)

v0.3 (28-01-01)
- Bugfix: body gravity now points down always
- Pitching of car; an American-style jumpy car was the result :)
- Rolling of the sprung mass
- Tire rate suspension; the wheel is part of the suspension
- Small simple track model (create by a Racer .trk file)
- Controller configuration for quite flexible controller setups

v0.2 prerelease (13-10-00):
- Slip ratio/slip angle model to be able to use real tire test data
- Better integration; fixed simulation frequency (100-1000Hz); editable
- Body stub graphics
- Frames/second counter (a bit jumpy)
- Fullscreen possible
- Wheels graphics may be replaced by .ASE model files (3DS Max for example)
- Front wheel drive works reasonably well (modify testcar.ini)
- Joystick/wheel controller input (Win32/DirectX7 needed);
  MSFF split axis only
- Very simple suspension system and graphics; mostly non-functional yet
- Curve editor to create and edit curves for slip ratio etc.
- More camera viewpoints
- The Racer modules are now put into a library (for multiple apps using
  the Racer universe, like the Car Laboratory).
- Very crude rev-limiter (if rpm>max then torque=0)
- Car Laboratory Win32 car editor; skeleton mostly

v0.1 (30-08-00)
- First release, some turning, throttle etc. with mouse.

END OF LOG
