Fix for using WinGlide with the new 3dfx OpenGL drivers that use Glide3x.dll

Last updated December 19, 1999

What is it and how does it work?
The WinGlide fix available from this page is designed to fix problems with using the new 3dfx OpenGL drivers with WinGlide for Glide 3.0. The fix corrects problems with WinGlide and the 3dfx OpenGL driver by modifying parameters to a few OpenGL function calls. To do this, the fix must be loaded between an application that uses OpenGL and the 3dfx OpenGL driver.

Release notes
Voodoo2 problems
I tested this fix with my Voodoo Graphics based card and for the most part, it worked fairly well. When trying to use it with Voodoo2 based cards, the application it was being used with would hang whenever the focus was switched away from it and then switched back to it. I was only able to test the fix on a few hardware/software configurations with Voodoo2 based cards, but there is a fairly good chance that this problem could occur with large majority or perhaps all Voodoo2 based cards. I have a feeling that this is a problem with the Voodoo2 drivers rather than something Voodoo2 specific in WinGlide or this WinGlide fix. For example, while researching problems with this hang condition, I found out that any application I tried to use full screen with the Voodoo2 without WinGlide and without the WinGlide fix installed would also hang if I alt-tabbed away from it and then switched the focus back to it.

Application compatibility problems
I hoping this fix might allow some new applications to be used with WinGlide and 3dfx OpenGL since the newer 3dfx OpenGL drivers may have improved some over 3dfx OpenGL Beta 2.1. The testing I have done so far has shown more problems with WinGlide and the new 3dfx OpenGL drivers. Although I could get games like GLQuake and some of the Quake III test releases to work with WinGlide, the WinGlide fix, and the new 3dfx OpenGL drivers, many other simple OpenGL applications I use for testing did not work at all. These were applications that worked just fine with WinGlide and 3dfx OpenGL Beta 2.1. The error that occurred was a message from the WinGlide fix saying it could not load the 3dfx OpenGL driver (the name of this file is specified in the WinGlide fix's ini file). I'm not sure why this failure occurred, but it's not good when the LoadLibrary() call it uses to load the 3dfx OpenGL driver fails.

Crashing on exit
When I used the WinGlide fix with some applications, they would crash when exiting. I'm not sure what is causing these problem.

Hangs when WinGlide's multi-threading support is enabled
A deadlock can occur with WinGlide for Glide 3.0 v1.02 and the new 3dfx OpenGL drivers when the 3dfx OpenGL driver gets a DLL_PROCESS_DETACH notification and WinGlide's multi-threading features are enabled. This can cause the application being used with WinGlide to hang when changing video modes or exiting. WinGlide will only enable its multi-threading features by default when run on a multi-processor system. On a multi-processor system, adding the key and value Multi-threading=0 to the [WinGlide] section of wg.ini will disable WinGlide's multi-threading and prevent the hang from occurring. This will of course also eliminate the performance benefits of WinGlide's multi-processor optimizations. I think I will be able to fix this problem in a future WinGlide for Glide 3.0 release.

WinGlide's gamma correction control panel does not work
Do not try using WinGlide's gamma correction control panel (accessible when WinGlide's SystemMenuOptions are enabled). WinGlide's gamma correction control panel has numerous problems when WinGlide for Glide 3.0 is used with the 3dfx OpenGL drivers.

Installation instructions
What not to do
Although the WinGlide fix is called opengl32.dll, this fix is not a full OpenGL implementation. It needs to be able to load the 3dfx OpenGL driver in order to work at all. The WinGlide fix file should never be put in the Windows or Windows\System directory.

General case
Say you have an application called MyApp.exe that uses OpenGL, is linked to opengl32.dll, and is installed in the AppDir directory. To install WinGlide for Glide 3.0, the WinGlide fix, and the 3dfx OpenGL driver with this application, follow these steps:

- Install WinGlide for Glide 3.0 in the AppDir directory. WinGlide for Glide 3.0's glide3x.dll and its wg.ini file should both be placed in the AppDir directory. Check the WinGlide for Glide 3.0 readme.txt file for additional installation information.

- Install the WinGlide fix in the AppDir directory. If there is already a file called opengl32.dll in the AppDir directory, make sure to rename this file to something different before proceding so that you have a backup copy. This backup copy will be needed if you want to remove the WinGlide fix. Then, extract the WinGlide fix's opengl32.dll file and its wg_gl.ini file to the AppDir directory. This should cause MyApp.exe to load the WinGlide fix's opengl32.dll when it loads the OpenGL library.

- The WinGlide fix needs to be able to load the 3dfx OpenGL driver in order to work correctly. The OpenGL32 key in the [Main] section of wg_gl.ini tells the WinGlide fix the name of the 3dfx OpenGL driver it is to load. The default name is opengl32.3dfx.dll although this can be set to any valid file name. If the name opengl32.3dfx.dll is used, find the 3dfx OpenGL driver, make a copy of it, rename this copy to opengl32.3dfx.dll, and put this file in the AppDir directory. The 3dfx OpenGL driver is called 3dfxVGL.dll in the 3dfx driver packages I have seen. This file can be manually extracted from all of the 3dfx driver downloads I have seen so far using a program such a WinZip.

GLQuake
GLQuake installation instructions are listed here because I used GLQuake extensively for testing the WinGlide fix. If you want to run GLQuake windowed with a Voodoo Graphics or Voodoo2 based card, you are much better off using the WinGlide that works with glide2x.dll with the 3dfx MiniGL.

- Install the files mentioned above in the General case in your Quake directory instead of the AppDir directory.

- Start GLQuake with a command line such as glquake -window -width 512 to run GLQuake windowed with WinGlide.

Quake III Demo Test
I've tested WinGlide for Glide 3.0, the WinGlide fix, and various 3dfx OpenGL drivers with a couple of the Q3Test releases and the Quake III Demo Test. I have not tested it with the official demo or Quake III Arena retail although there is a fairly good chance it will work with these releases too. It would be a good idea to do a practice install on an extra Q3Test or Quake III Demo Test installation first in case there are any difficulties encountered with the complicated install process or compatibility problems.

- Install the files mentioned above in the General case in your q3demoTest directory instead of the AppDir directory. Installing these files in the q3demoTest directory will cause the WinGlide fix to be loaded as the default OpenGL library by Quake III Demo Test. If you want to use the real default OpenGL support on your system later (the OpenGL support provide by your primary video card), you will need to remove the WinGlide related files that you put in your q3demoTest directory. Also, don't forget about removing these WinGlide files if you later upgrade to a primary video card that has good windowed OpenGL support.

- The Quake III Demo Test must then be set to run windowed. This can either be easy or very difficult depending on if a certain hang problem that I saw decides to show up. In the easy case, all it takes is going to Quake III Demo Test's graphics options, choosing the DEFAULT GL DRIVER, setting FULLSCREEN to OFF, and choosing a video mode your Voodoo Graphics or Voodoo2 based card can support such as 512x384 or 640x480.

- Now, moving on to the difficult case. If the Quake III Demo Test hangs when you select the new video mode, you may be stuck with the pass through on on the 3dfx card which can prevent you from getting back to the desktop to kill the application. At this point, finding a way back to the desktop to kill application or reseting the system are the two remaining options. If you cannot set a windowed video mode through Quake III Demo Test's graphics options menu because of this hang problem, it still may be possible to get things working by modifying the q3config.cfg file in the demoq3 directory so that it is set to use a windowed video mode like mentioned above. This way, the game will start up windowed and the hang that occurs when switching video modes will not be a problem. I think these are the three lines in q3config.cfg that need to be modified and what they should be set to if you want to try the manual video mode switch:
seta r_glDriver "opengl32"
seta r_fullscreen "0"
seta r_mode "2"

The files
You can get WinGlide for Glide 3.0 which is used with the WinGlide fix from the WinGlide for Glide 3.0 page.

The WinGlide fix for using WinGlide for Glide 3.0 with the new 3dfx OpenGL driver can be downloaded from this link.

Like I mentioned in the release notes, I'm sure that many system configuration will have problems with this WinGlide fix. If you have any feedback or questions about something I did not cover in the release notes, you can send me an email at cwdohnal@ucdavis.edu.

 

Copyright 1999 Chris Dohnal