
GlideXP Final Release Build 1016 Readme
=======================================

Release Date: 15th March 2003

Website: http://www.users.on.net/triforce/glidexp/


What is it?
-----------

GlideXP is a project to use the Glide3 sources that were released for Linux, 
and to get them to compile under Windows. This is to allow me to find and fix
or bypass the problems that are causing Glide and OpenGL applications to cause
system crashes under Windows XP.

I believe that GlideXP is functional to the level that would warrant an
experimental release. Glide3 applications can now be run without issue under
Windows XP. OpenGL applications (including Windowed) also function correctly.
A full list of changes is in a section below.

Some level of Glide2 support is also included. At this stage it is still a work
in progress and as such isn't 100% compatible with all applications yet. 

Also now included is the GxpOGL ICD Interceptor. GxpOGL is designed to fix/work
around problem with the 3dfx 761 ICD. Eventually there are plans to add new
Extensions. WGL_ARB_multisample is an example of an extension that I'm planning
to add sometime in the future.


License
-------

GlideXP, the Glide2 Translator and GxpOGL are all released under the terms of
the "3DFX GLIDE Source Code General Public License."

Read the "COPYING" file for the details.


Revision History
----------------

15th March 2003 

Final Release Build 1016

* Fixed some real nasty ASM related problems. They were causing all kinds of 
  problems for OpenGL apps, especially the GL screensavers in Win9x, which were
  crashing or were horribly corrupted. They probably were causing numerous
  problems in Glide apps too.

* Added support for Windowed Glide apps. Can't guarantee how well it will work.
  Chances are there will be problems with V3s and Banshees.

* Made a number of changes are supposed to work around grLfbLock() being so 
  slow when using HWCAA read modes.

* Point rendering is finally fixed.

* Changed much of how GxpOGL works. It will now only work with the 761 ICD. 
  Attempting to use it with other ICDs will cause nothing to be changed.

* Made a few changes to the Glide2 Translator, see the ChangeLog for details.


20th January 2003 

Public Experimental Release Build 1015

* Fixed a nasty crash when using DXT1 textures.

* Rewrote HWC (used for screenshot key) code to used Optimized MMX code.
  Screenshot taking is now MUCH MUCH faster in 4x and 8x modes.

* Added new improved CPU detection code. It allow for proper detection of all 
  CPU features. Consequently the FX_CPU setting has been removed. However a new
  setting of GXP_GLIDE_NO_CPU_EXTENSIONS has been added. 

* Updated things so all CPUs that support MMX can use the MMX optimized texture
  download functions (not just AMD as it was before). This should give a minor 
  speed boost.

* Started work on the GxpOGL ICD Interceptor to fix problems with the 3dfx ICD.
  Currently it replaces the glTexImage2D function to fix issues with S3TC 
  textures. S3TC textures are now compressed using the Microsoft compressor and
  are passed to the ICD as compressed textures. The Microsoft compressor is 
  much faster and looks much better than the 3dfx compressor. This also fixed 
  the DXT5 issues that were effecting any games that used that texture format. 
  This includes the text problems in Star Trek Voyager Elite Force and 
  Jedi Knight II, that are now fixed when using GxpOGL. More changes planned 
  sometime in the future.

7th January 2003 
Public Experimental Release Build 1014 

* Fixed Dither Rotation on Voodoo 5 6000. This should make antialiased 16 bit 
  mode look much nicer.

* S3TC Compressed Textures are now supported by GlideXP.

* Added special options for application Frame Buffer captures. They will make 
  it possible for applications to properly capture Antialiased Images on V56Ks
  and also to properly capture 16 bit images when the Frame Buffer has been
  forced to 32 bits. These are by default automatically enabled. There are 3
  new registry settings (which are probably best left alone).

  GXP_GL_LFBLOCK_HACK:
    0 = Disables OpenGL 16 Bit capture from 32 bit Buffer and V56K antialiased
        capture
    1 = Enable them (default)

  GXP_GLIDE_USE_HWC_AA_FOR_LFB_READ:
    0 = Disable all advanced Frame Buffer reading options
    1 = Only use it for grLfbReadRegion() calls
    2 = Only use for grLfbLock() calls
    3 = Enables advanced 32bit->16bit and Antialiased buffer reading for both 
        functions (default)

  GXP_GLIDE_DITHER_HWC_AA:
    0 = Disable dithering of buffer reads using HWC AA
    1 = Enable Error Diffusion dithering for HWC AA buffer reads (default)

* The FX_GLIDE_NUM_CHIPS env setting can be used to force the Voodoo 5 6000 to 
  use all 4 chips in Windows 2000 and Windows XP instead of just using a single
  chip. Just set it to 4. Do NOT set it to any other value.

* Changed the way filenames are generated for Glide screenshots. Format is now 
  glide_yyyymmdd_hhmmss.tga where yyyymmdd is the date and hhmmss is the time 
  the screenshot was taken at.

7th October 2002 
Public Experimental Release Build 1013

* ASM files are now used. GlideXP should be MUCH faster now.

* 2x FSAA can now be used with V5 6K cards in Win2K/XP. It will be as fast as a
  Voodoo 4 though since only 1 chip is used.

* Misc internal changes (refer to ChangeLog.txt in the source)

* Glide 2 Specific Fixes: 
  - Added GXP_HINT_AA_MULTI_SAMPLE hint extension. Used by FS2GXP to disable
    FSAA when drawing text to get rid of the blurryness
  - The Glide2x.dll will now attempt to first load GlideXP.dll rather than 
    only Glide3x.dll as in previous versions. This will allow mixing different 
    Glide dlls, even though it shouldn't really be required as GlideXP is now
    'fast'.


4th September 2002 
Public Experimental Release Build 1012

* Added setting to control the Pixel Center offset for FSAA modes. This will
  remove the blur from most 2D graphics when using FSAA. The Default value is 8
  which works best for most games. Range is -128 to +127, however normal range 
  is 0 to 16. The Registry Setting is GXP_GLIDE_FSAA_PIXEL_CENTER. Some 
  standard values for this setting are as follows:
    4 = Ideal setting for Unreal Tournament
    8 = Ideal setting for most other games/apps (default)
   16 = Setting to produce ouput identical to older Glide versions.
    
* Actually fixed the Fog issue in the Glide2x games. It should be noted though,
  that the changes are in Glide3x.dll not Glide2x.dll so Fog will only work
  properly with matching GlideXP DLL. Mixing DLLs will cause the problem to
  reappear


3rd September 2002 
Public Experimental Release Build 1011

* Improved Alt-Tab handling. Should be faster than before and more stable.
  There really should be almost no crashes now on Alt-Tab. 

* Fixed bad crashes on res change and quit in App/Games that use SDL for OpenGL
  support. 

* Tribes (1) should now properly detect Glide2x

* Fixed an issue with Fog in some Glide2x games

* Possibly improved Glide2x compatibilty with some badly written games/apps


16th July 2002
Public Experimental Release Build 1010

* All New Glide2x.dll. Completely rewritten from scratch. Should offer much 
  better compatability. Many problems likely to be fixed. Offers 2 new registry
  settings GXP_GLIDE2_FASTER_PALETTES:
    0 = Compatable Mode (default)
    1 = Faster Mode
  and GXP_GLIDE2_NO_MULTITEXTURE:
    0 = Multitexture Enabled (default)
    1 = Multitexture Disabled, TMU0 uses all texture memory (if possible)

* Added new registry settings for Refresh rates that can be used as well as 
  FX_GLIDE_REFRESH. The new settings work per resolution, and per resolutions
  and bits per pixel. The format is GXP_GLIDE_REFRESH_???x??? for per 
  resolution settings and GXP_GLIDE_REFRESH_???x???x?? for res and bpp (16 or
  32).

* Renamed old registry setting FX_GLIDE_LOD_SUBSAMPLE_DITHER to
  GXP_GLIDE_LOD_SUBSAMPLE_DITHER.

* General Fixes: 
  - Fixed problem reading from the frame buffer in Forced 32 Bit mode. Output
    perviously would be corrupted.
  - Fixed problem where Unreal engine games would have flickering detail 
    textures in forced 32 Bit mode.

* Voodoo 5 6000 Fixes: 
  - Added work around for the FSAA Gamma problem.

* Glide 2 Specific Fixes: 
  - Unreal Tournament Texture Corruption Fixed
  - MiniGL now functions


31st March 2002
Public Experimental Release Build 1007

 * Fixing some Glide2 crashes.


28th December 2001
Public Experimental Release Build 1006

 * Stopped fullscreen OpenGL apps crashing when switching from Fullscreen to
   Windowed.

 * Some general Glide 2 improvments.

 * Making WinXP alt-tab support a little better.


23rd December 2001
Public Experimental Release Build 1005

 * Stopped fullscreen OpenGL apps crashing on Alt-Tab and Quit.


22nd December 2001
Public Experimental Release Build 1004 

 * Fixed a few problems with the Glide Utility Library in Glide 2.

 * Fixed some Antialiased primitive problems in Glide 2.

 * Re-enabled the Splash Screen.


20th December 2001
Private Experimental Release Build 1003 

 * Improved Glide 2 support. Unreal Tournament and Deus Ex now run somewhat
   correctly.


18th December 2001
Private Experimental Release Build 1002 

 * Adding initial (extremely buggy) Glide 2 support

 * Some refresh rate and multimonitor fixes.


14th December 2001
Initial (Private) Experimental Release Build 1001:

 * Fixed crash on program startup in XP.

 * Fixed Alt-Tab crashes problem in XP.

 * Added environment setting FX_GLIDE_LOD_SUBSAMPLE_DITHER to enable and
   disable Subsample Mipmap Dithering Trilinear Approximation for use in FSAA
   modes (Voodoo 5 only). Settings are:
    0 = Disabled
    1 = Enabled (except when doing normal mipmap dithering and trilinear)
    2 = Enabled (except when doing trilinear)

 * Changed FX_GLIDE_LOD_DITHER. Settings are now:
   -1 = Never (will never allow it even if the app requests it)
    0 = Auto (only if the app requests it)
    1 = Always (except when doing trilinear)

 * Fixed screenshot taking on Voodoo 5 6000s.

 * FSAA offset Environment variables for 2x and 4x now work for V5 6ks.


Known Issues
------------

 * Windowed Glide Applications may not work (all operating systems)

 * Some Glide 2 functions aren't yet implemented, and others may not be
   implemented properly. Some Games/programs will not run correctly, or may
   not work at all.


Bug Reporting
-------------

If possible, please report all problems with games to me. My contact details
are written at the bottom of this document.


Source Code
-----------

In order to comply with the terms in COPYING, all sources for released builds
are freely available to download. The sources for this build are available
here:

http://www.users.on.net/triforce/glidexp/glidexp_build1016_src.rar

Compiling the sources requires MSVC6 Service Pack 5, The Processor Pack (for
MASM) and the Windows 98 DDK. Just load the "glide3x.dsw" workspace in MSVC6
and that should be it. Choose the correct configuration for Glide3x, Glide2x or
GxpOGL.

The FxASM and Gendate projects will automatically generate some files that are
required to build the sources.


Contact Details
---------------

Name: Ryan Nunn (Colourless)
Email: colourles@users.sourceforge.net
ICQ: 9421058
WWW: http://www.users.on.net/triforce/glidexp/
