3dfx GLIDE™ for Windows - glide2.x , glide3.x
Contact: KoolSmoky , koolsmoky@3dfxzone.it , http://www.3dfxzone.it/koolsmoky

Open sourced 3dfx GLIDE™ driver for Win32 (Windows 95,98,Me,NT4,2000,XP) ported from the Linux 3dfx GLIDE™ source code. The Linux source code was originally open sourced by the demised 3dfx Interactive Inc. Currently supports 3dfx Voodoo Banshee, Velocity, Voodoo3, Voodoo4, Voodoo5 and has been extended to support S3TC (DXTC) compressed textures. Optimizations for 3DNOW! MMX included.
Note: S3TC (DXTC) support is for Voodoo4 and Voodoo5.
Note: 3dfx OpenGL ICD requires GLIDE3x™
Note: 3dfx MiniGL requires GLIDE2x™

Installation
1. Windows XP users must install the 3dfx Windows 2000 drivers or 3rd party Windows XP drivers.
Note: you can skip this step if you do not use Windows XP. If you use Windows XP you must not skip this step otherwise you will not be able to use 3dfx GLIDE™ or hardware accelerated OpenGL.

2. Backup your original copy of glide2x.dll and glide3x.dll files.

3. copy glide2x.dll and glide3x.dll to the following directory.
__Windows 95,98,Me : /Windows/System
__Windows NT4,2000 : /Winnt/System32
__Windows XP______: /Windows/System32

Issues
Multi-Monitor with Windows 2000,XP
You may have problems running GLIDE™ on 3dfx devices other than the 1st. To run GLIDE™ on 2nd or 3rd device, disattach window's desktop from the display device using the display properties.

License
This driver has been ported from the Linux 3dfx GLIDE™ source code and is released under the 3dfx GLIDE™ Source Code General Public License. Please read the license documentation for details.

Future Plans
Add CPU optimizations, possibly SSE2
Port back the source to Linux

FAQ
1. OpenGL ICD requires Glide3x. MiniGL requires Glide2x.

2. Install windows compatibility patch and service pack from microsoft.
Windows XP: http://www.microsoft.com/Downloads/Release.asp?ReleaseID=37942
Windows 2000: http://microsoft.com/windows2000/downloads/tools/appcompat/default.asp

3. Use win98/me compatibility mode for apps having problems in win2k/xp.

4. OpenGL ICD requires Glide3x. MiniGL requires *Glide2x*.

5. For OpenGL S3TC (DXTC) support, 3dfx OpenGL ICD version 1.0.0.0761 (1,102,096 bytes) is required. Legacy texture compression as in Q3A will compress to FXT1 on-the-fly and is not precompressed. UT 2nd CD textures are precompressed. Copy the OpenGL ICD as opengl32.dll to the application or game folder.

6. JediKnight2 if menus appear corrupt, add in this setting.
seta r_ext_texture_compression_s3tc "1"
seta r_ext_preferred_tc_method "1"

7. SeriousSam2 if game crashes, disable guardband clipping.

8. Medal of Honor Allied Assault use force 16bit texture to see in-game movies.

9. 3dfx Post-filtering which enables 22bpp-ish results when running in 16bpp mode can be disabled by adding SSTH3_OVERLAYMODE -1(string) to the registry.

10. UnrealTournament if in openGL use the latest ut opengl renderer from Epic's Unreal™ engine development team . set UseS3TC=0 if you do *not* use s3tc. if you wish to use S3TC with ut's 2nd CD textures, do *not* force mipmap (lod) dithering and set lodbais to -4 via regtweaks. for Win2k/xp Set win95 compatibility mode to unrealtournament.exe. use the following in unrealtournament.ini.
[OpenGLDrv.OpenGLRenderDevice]
RefreshRate=75
DetailTextures=1
UseTrilinear=1
UseS3TC=1
UseTNT=0
LODBias=0
UseMultiTexture=1
UsePalette=1
UseAlphaPalette=1
Translucency=1
VolumetricLighting=1
ShinySurfaces=1
Coronas=1
HighDetailActors=1
MaxAnisotropy=0
AlwaysMipmap=0
UsePrecache=1
SupportsLazyTextures=1

11. there is no x2FSAA with EdgeAA. just x2FSAA with different LOD offests when used with mipmap dithering to reduce banding.

12. there is no true trilinear filtering support when used with 3dfx/x3dfx OpenGL ICD. 1.0.0.0761 OpenGL ICD seems to let OpenGL trilinear calls pass through but outputs bilinear. therefore in Q3A, even if you set trilinear in-game the result will be bilinear. enabling force mipmap dithering via driver tool will not turn on trilinear, it will be bilinear with mipmap dithering. Trilinear is possible if the voodoo hardware is setup in a special way, but this has to be done outside glide3x.dll right now. In a true trilinear state, glide3x automatically omits mipmap dithering.

13. I have tried my best to keep compatibility with win95/98/me/nt4/2k/xp, however tests are mainly done with win2k/xp. the regtweak unreadable bug in win9x/me is fixed now.

14. Although the changes in Glide3x may affect HSR performance in OpenGL, I haven't really focused on the issue. do not threaten me to get it working.

15. GLExcess, this ain't a game but for the ogl demo fans, the app will crash at first run, kill with taskmanager and rerun it. it'll run fine after that.

16. to play Quake3 engine based games with texture compression, add these lines
seta r_ext_compress_textures "1"
seta r_ext_compressed_textures "1"
seta r_ext_texture_compression_s3tc "1"
seta r_ext_s3tc "1"
and enable legacy texture compression (fxt1 compression for voodoo4/5) in driver tool. most games with the Q3 engine will use realtime (on-the-fly) compression.

17. If you have problems running OpenGL apps, search for 3dfxogl.dll in the windows system directory and copy the file to the apps' directory and rename it to opengl32.dll.

18. If you have Z-buffer Clear errors in OpenGL, set OpenGL z-precision to normal or fast in the driver tools. you can also do this by setting string 0 or 1 for FX_GL_16BPP_ZPRECISION and FX_GL_32BPP_ZPRECISION.

Update Logs
[Nov.09.2002]
Glide2x first public release.
Thanks to the psx emulation guru Lewpy, glide3x bug which resized the wrong screen when exiting on multimonitor setups has been fixed. lots of small bug fixes.

[Oct.19.2002]
Glide2x third private release.

[Sept.07.2002]
Glide2x second private release.

[Aug.18.2002]
Glide2x first private release.

[July.31.2002]
less problems with windows hotkeys.
fixed bug with mipmap download.
fixed OpenGL UnrealTournament hang on exit in win9x/me.

[May.31.2002]
fixed regtweaks not working under win9x/me.
revised texture handling.

[May.25.2002]
Paving way for multimonitor support. Retrieves the correct display path now. Buggy but tries to render to the correct device.
Support for precompressed S3TC textures. UnrealTournament 2nd CD textures and SeriousSam2 will work with S3TC enabled.
Fixes for Diablo2. Diablo2 will now run correctly in Glide.
Eliminates pinkish screens.
Colourless's subsample lod dithering trilinear approximation for Voodoo5. Use FX_GLIDE_LOD_SUBSAMPLE_DITHER 1(string) to enable, 0 to disable. Default enabled. Slightly modified settings to reduce banding when used with mipmap (lod) dithering. Subsample lod dithering trilinear approximation will work when running in fsaa without trilinear.
also added fix to prevent crashing from screen mode changes
and 4chip AA offsets for Voodoo5 6000.

[March.1.2002]
Started merging Glide3x sources to Glide2x.

[Feb.24.2002]
Faster screen restores in winxp.

[Feb.15.2002]
Stopped crashing when window is resized in winxp.

[Feb.03.2002]
First Public release

[Dec.30.2001]
Second private release.

[Dec.27.2001]
Code cleanup.

[Dec.20.2001]
First private release.

[Dec.19.2001]
Stopped hanging when task switching from FullScreen in WinXP.

[Dec.10.2001]
Stopped Glide3x from hanging when exiting from fullscreen OpenGL.

[Dec.09.2001]
Fixed Glide3x crashing on startup in WinXP.

[Dec.08.2001]
Glide3x compiled with CPU optimizations.

[Dec.03.2001]
minihwc compiled.

[Nov.24.2001]
Begin to compile Glide3x for the Microsoft Windows Platform.

[Oct.25.2001]
Windows XP launch. Glide crashes on startup in WinXP :(

Acknowledgments
I would like to take a moment to thank those who generously provided technical information and assistance.

Disclaimer
This software may be distributed as long as it is not sold commercially without permission from the author. Distribution is permitted provided that no modifications or additions are made to the software, its documentation, or any associated files. Please send me an email with information of distribution. This software is provided as is, without warranty of any kind. The user takes the entire risk as to the quality and performance of the software. The author will not be held liable for any problem the user encounters using this software.


November 2002 © KoolSmoky