View Full Version : how to get my program started on a voodoo 1/2

01-30-2001, 01:33 AM

I have a little problem with voodoo cards. I wrote a little game and it works very well. On a card with a NVIDIA chip. However I started this program on two different computers, one with a voodoo 1 and the second with a voodooo 2. On none of them I got hardware support. Why? Do I have to do any extra work, if the PC uses just a 3D-accelerator instead of a 3D-card? Or is this problem 3dfx specific, so that I will have the same problem with a voodooo 3/4/5, too???

Thanks, Jan.

01-30-2001, 12:19 PM
ya my voodoo1 doesnt work either, but i'm running freebsd on it. with a voodoo you need glide... get hold of an opengl implementation uding glide

01-31-2001, 08:33 AM
I don't think the Voodoo 1/2 cards have a full ICD, so you need to use something like a minidriver.

02-01-2001, 03:39 AM
here you have complete solution (as I had the same problem before - with voodoo 2):

rename file 3dfxvgl.dll (it's the file you must have) to opengl32.dll and put it into
directory "windows/system/..."

everything should work

(there is one important thing - you can't do it under windows, you have to go to DOS mode or sth like this and then rename and copy this file)

hope to help you...

02-01-2001, 04:35 AM
Do not rename 3dfxvgl.dll to opengl32.dll and place it in Windows\system directory. While that works, it also breaks the ICD mechanism in general. So software OpenGL, as well as any other primary OpenGL implementation, is lost if you try this. If your program is implicitly linked to the OpenGL32.dll, then you do have to rename the 3dfxvgl.dll to OpenGL32.dll, but put a renamed copy of 3dfxvgl.dll in the program's working directory, not the Windows\system directory. To properly use 3dfxvgl.dll without renaming, you need to explicitly load it with LoadLibrary, and get the pointers to the gl functions within it by using GetProcAddress. Also, since the Voodoo 1 and 2 are secondary display devices, you do not need to set the pixel format the way you normally would. Instead you just have to make sure the primary display is set to 16 bit color, and to the resolution you want the secondary card to use. It appears that 3dfxvgl looks at the desktop settings to figure out what mode the secondary card should be placed in. Now this is from all my personal experiences but it has been a few years since I did this, so some details might be wrong or missing.

[This message has been edited by DFrey (edited 02-01-2001).]

02-01-2001, 01:54 PM
Maybe I'm going to repeat something already written... but that's the way I use Voodoo2:
The file 3dfxvgl.dll is declared as full ICD. Apps and games that use opengl must detect if there is a Voodoo1/2 card (substantially verifying if a glide library is installed), then dynamically load (with LoadLibrary) '3dfxvgl.dll' in case of voodoo and 'opengl32.dll' in other cases, then load all the gl funcs.
Search through this forum: in a topic I posted someone suggested me a link where all this is explained.
I did it in that way and in the simple way (copying 3dfxvgl.dll in the app dir with the name of opengl32.dll)... both works.

But don't rename it in the windows/system... for example quake3 detects the v2 and loads 3dfxvgl.dll
This happens (I read somewhere) because the v2 is an accelerator (not a standalone card) and in this case the calls to ogl cannot be automatically redirected to the icd.
Finally, you can set pixelformat like you were writing code for every other card... and some restrictions someone said to me (accel only 800x600 16bpp ?!?!) are not true.
This is all I can say to you based on my recent experience... hope this helps!


02-02-2001, 05:38 AM
Thanx, sounds like a bit of extra work, but IŽll try it.