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.
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"
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