Page 1 of 1


Posted: Sat Apr 10, 2010 7:25 pm
by Stiletto
Congratulations on the development of a new Glide wrapper, especially one that will support both Glide 2.x and Glide 3.x. (Yeah, I only just found out about it.)

As far as I'm concerned, I would love to see you focus on compatibility support (between graphics cards, working around 3D driver bugs, between games, between DirectX versions) foremost and then add gamer-friendly features in the future (windowed modes, high resolution, texture replacement, 3D glasses support, custom extensions like in Glide64, etc.)

Once nGlide reaches 1.00 or 2.00 or some other point of satisfaction, I hope you'll consider going open-source, GPL or otherwise. The only Direct3D open-source Glide wrapper that immediately jumps to mind is psvoodoo:

I used to do a lot of wrapper testing in the past, as anyone would tell you. I may someday yet return to it.

My own requests/suggestions for the wrapper and emulator development community still stand:
- add full Glide 2.1.1 support whenever you can
- when you feel you're "done" with Glide wrapping, consider wrapping other old 3D APIs, like RRedline, NV1, ATI CIF, etc. This is almost completely untraveled territory, you could break new ground. The only non-Glide wrappers out there are OpenGL-to-Direct3D, Direct3D-to-OpenGL. There's also BigRRed (possibly the world's first Glide wrapper, wrapped Glide-to-RRedline). The hardest part is acquiring SDKs.
- find a way to hack the very first Glide programs that were "statically compiled" with the Glide libraries so that they can be "wrapped". Essentially, Glide 1.x. This would require a DOS emulation environment like DOSBox for testing.
- consider taking MAME's Voodoo emulation and turning it into a "virtual video card" as a device in Device Manager, or in a reliable PC emulator - with permission from MAMEDEV first of course - any bugs found could actually help the MAME/MESS projects as well.
- a DirectX 6.0-7.0 wrapper to DirectX 9.0 or higher, or to OpenGL, for Windows or otherwise. Many old Windows games cannot be supported on modern OS's until someone works on this.

FYI: You might want to say if you support 32-bit and 64-bit on your website, it looks like you do from the forum but it wasn't visible on the website.

BTW: Some education on the project history would be cool. Is this a spinoff project from the emuxhaven forums, or anything? Or just something you decided to work on? I don't get around to the other emulation community websites as much as I'd like anymore...

- Stiletto

Re: Congrats

Posted: Sat Apr 10, 2010 9:28 pm
by Stiletto
A little list mangling brought forth some other games/apps you could try, although I haven't fact-checked it to remove any other DOS games or games without Glide support (or miniGL support):

4x4 Evolution
A2 Racer
Baldur's Gate II
Crime Cities
Croc 2
Descent (D1_3dfx patch, Windows)
ePSXe w/ Lewpy's Glide Plugin
F-16 Fighting Falcon
F-22 ADF
F-22 Total Air War
Falcon 4.0
FIFA 2000
FIFA 2001
FIFA 2002
Flanker 2.0
Future Cop: LAPD
Heavy Metal FAKK2
Hype: The Time Quest
Independence War (I-War)
KO Boxing
Mars Maniacs
MechWarrior 2: Mercenaries (3dfx Edition)
Nature (Vertigo) (demoscene)
NBA Live 2000
NBA Live 2001
NBA Live 2002
Nerf ArenaBlast
Neverwinter Nights
Operation Flashpoint
Puma Street Soccer
Quake 3
Resident Evil
Roland Garros Tennis '98 (The French Open '98)
Serious Sam
Serious Sam 2
Sentinel Returns
Sierra Pro Pilot
Soldier of Fortune
Star Trek: Deep Space Nine - The Fallen
Star Trek: The Next Generation - Klingon Honor Guard
Star Trek: Voyager - Elite Force
Star Wars: Jedi Knight 2
Starsiege: Tribes 2
SWIV 3D Assault
Tachyon: The Fringe
Team Fortress
The 5th Element
To Be Continued (demoscene)
UEFA Champions League Season 1998/99
Voodoo Lights (screensaver)
World League Soccer '98

and of course: ... Id,14/p,3/

- Stiletto

Re: Congrats

Posted: Sat Apr 10, 2010 9:56 pm
by Stiletto
And other weird stuff to play with:
Glide 2.x Translator
eVoodoo 2.6 - Glide2.x to 3.x wrapper

- Stiletto

Re: Congrats

Posted: Sun Apr 18, 2010 4:48 am
by mudlord

Code: Select all

(windowed modes, high resolution, texture replacement, 3D glasses support, custom extensions like in Glide64, etc.)

Excuse me. The wrapper *already* works almost perfectly without custom extensions like for windowed mode in Glide64.

The only extensions missing are for stippling, texture buffer, and advanced combiner support. Something of which that the Voodoo 5's natively support anyway. So those are *not* custom. They are things that the Voodoo 5 natively supports but are done via Glide3x extensions.

Re: Congrats

Posted: Tue Apr 20, 2010 5:10 pm
by Stiletto
Hello mudlord...

Well there's no need to get angry about it. ;) Yes, I agree that it's a great wrapper without the custom extensions. Especially for coming from more-or-less out of the blue. I didn't mean to come across as demeaning either project. If I did, my apologies.

You summarize it here: viewtopic.php?f=9&t=14&p=31#p31

As you well know, except for grConfigWrapperExt, grKeyPressedExt, grWrapperFullScreenResolutionExt, which are Glitch64-specific, Glitch64 also adds the following: grAlphaCombineExt, grAuxBufferExt, grColorCombineExt, grConstantColorValueExt, grFramebufferCopyExt, grQueryResolutionsExt, grSstWinOpenExt, grTexAlphaCombineExt, grTexColorCombineExt, grTextureAuxBufferExt, and grTextureBufferExt, as well as grStippleMode and grStipplePattern.

It all depends on what you call "custom" or "original". From my point of view, anything added to Glide post the final release by 3dfx is "custom" because they are not original to Glide for Windows - it dates after that. For example, grStippleMode and grStipplePattern were not in the final official release of Glide3x for Windows (, it was added to the Glide API by one of the Glide Linux/open-source developers on 2000-11-24, shortly after release. And later on, the people working on Glide at that point were not 3dfx employees, and it was no longer a 3dfx project - it had gone open-source. So it is up to Glide wrapper authors if they want to support post-final-release Glide extensions, so far Zeus says "maybe later". As for whether or not the Voodoo5 supports things... in my opinion, that only matters if you're writing a Voodoo low-level emulator. If you're a Glide wrapper author, you're concerned with whether Glide supports things. Regardless, the mentioned extensions are part of current Glide, so a complete Glide wrapper may want to add support at some point.

I was simply stating that in my opinion these additional extensions are not needed right now, and should not be a focus right now - I would prefer keep focusing on compatibility testing - but maybe later on Zeus could add the Glitch64-specific extensions so that nGlide could be a full replacement for Glitch64, or add the additional current-Glide extensions so that it could support whatever other current Glide-using applications there are out there (if any). Glide64 does not ship with any Direct3D wrappers, just OpenGL, AFAIK, so this could be a good thing. But I'm not ordering anyone to do anything or speaking on behalf of anyone, it's just my opinion. The last wrapper projects I was tied to was OpenGlide and GliDOS, and that only sees occasional development these days.


Other congrats are in store: nGlide implements the pci* API, and I don't recall many wrappers implementing these. (What calls them, Zeus? The Voodoo card detection routines?) Congrats on that!

The only ones I see nGlide implementing that I don't immediately recall are guEndianSwapBytes (glide3x.dll) and grGetSipValues (glide2x.dll), which were not available in Glide3x and Glide2x for Windows. However, I see guEndianSwapBytes in an old header for Glide2x using Google, so perhaps it doesn't hurt anything to have a Glide3x version of that. Is it attempted to be used by anything?

nGlide's Glide3x.dll seems to be missing guEncodeRLE16 but heck, Glide3x support was only just added in January. :)


For comparison's sake, Glitch64 (I checked from Napalm-WX) does not seem to implement (even as stubs): grCheckForRoom, grSetNumPendingBuffers, grSstConfigPipeline, grSstVidMode, gu3dfGetInfo, gu3dfLoad, guEncodeRLE16, guFogGenerateExp2, guFogGenerateExp, guGammaCorrectionRGB. OTOH that wrapper's main focus is Glide64, so it doesn't really matter if they're not there. ;)

In case anyone's wondering, grCheckForRoom (according to some old USENET posts) was like this:
"> "This is a remnant from sst1 glide2x that no longer does anything. It
> would tell you how much room was left in the internal pci fifo, and a
> great deal of care could be used to avoid things like sound stuttering
> due to overloading the pci bus. (At least, that's the theory behind the
> call, but it doesn't do anything useful now so don't bother calling
> it)."

Another post says this:
> "This function is included in glide3x.dll, but since it doesn't appear
> in one of the SDK header files, I suppose the guys at 3DFX don't want
> us to use them."

The only game I know of off the top of my head that calls it is the DOS/3dfx version of Descent II.

Perhaps I should continue this in email...

Re: Congrats

Posted: Tue Apr 20, 2010 10:51 pm
by Zeus
Welcome Stiletto.

Many thanks to you for the suggestions. You have great knowledge about 3Dfx Glide API.
Thanks for Glide games lists.

I would love to see you focus on compatibility support

I totally agree. This is the most important thing.
Except Windows Glide games, there are some DOS Glide games (run with DOSBox+Gulikoza's patch) that require support.

add gamer-friendly features in the future

I think this is the right time to consider/start implementing these features (at least high resolutions and Glide64 extensions).

-I hope you'll consider going open-source, GPL or otherwise.
-when you feel you're "done" with Glide wrapping, consider wrapping other old 3D APIs, like RRedline, NV1, ATI CIF, etc
-MAME's Voodoo emulation
-DirectX 6.0-7.0 wrapper to DirectX 9.0

This is a far future, so nobody knows...

Is this a spinoff project from the emuxhaven forums, or anything? Or just something you decided to work on

It's not any emulation site project. Together with my teammate Taz, we've decided to work on this project.

And later on, the people working on Glide at that point were not 3dfx employees

I agree. That's why I also call them 'custom', but as I said before, adding them would be very reasonable.

pci* API, grCheckForRoom

These are for compatibility only (to avoid lack of exports). You're right, today these functions are useless so they don't do anything.

Greetings for all you guys. :)

Re: Congrats

Posted: Wed Apr 28, 2010 2:57 am
by mudlord

1) grFramebufferCopyExt was added by Ziggy. Its no longer used for FB copies.
2) grTextureBufferExt is the render to texture function used by Voodoo 5's. Its similar to FBOs in function to OpenGL.
3) Likewise, if you look in the Glide docs there is advanced colour combiner extensions there. Same with the "Surface" extensions.
4) Yes the stipple pattern functions were added by koolsmoky later.
5) The grSsrWinOpenExt function is just a wrapper around the official Glide context opening function.
6) The wrapper supports gamma correction now :P
& Yes, all that mattered was the gamma correction out of those functions. Plus, nglide is making a name for itself so I don't see the point in adding any arbitrary functions as its already a great wrapper as is.

But yeh, adding support for those extensions would be uber cool. Saves waiting for someone to make a pure Glide64 port to D3D9/10 or OGL 2.0

Re: Congrats

Posted: Sat Jul 31, 2010 8:49 am
by WhiteMagicRaven
Thanx for new nGlide release its works exellent =)