VOGONS


Reply 140 of 167, by vetz

User metadata
Rank l33t
Rank
l33t

Furan, any good tips to make sure that Cyberspeed is actually getting accelerated? Many games default to softwarerender if the acceleration is not working/detected and it can be very hard or almost impossible to visually tell software render apart from any acceleration on the 3D Blaster. You also need a CPU which is in the sweetspot of not being too fast or too slow so that you hopefully can tell them apart from increased FPS.

The driver you attached aren't for CGL? The documentation says they are Win95 DirectDraw/Direct3D drivers. Also the document attached to the GiGi Win95 drivers just confirmed that DirectDraw works without the memory module, but any Direct3D acceleration requires it. I'm pretty sure if we got hold of a good picture or the schematics the module could be reproduced. I know certain people in the community have the skill and interest for it. I've been searching for this module for 9 years and no picture/info has ever surfaced so it doesn't look very optimistic unless Creative themselves releases the schematics.

3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D)
3D Acceleration Comparison Episodes

Reply 141 of 167, by Gona

User metadata
Rank Member
Rank
Member

I'm also have problem to get work 3D Blater VLB on Windows 95. First I have tried "3D-95STD-3-US" driver than "C3DB-95UPD-1-US" upgrade but none succeed (the driver from the DirectX 2 SDK says requires a working Creative Labs driver first).
Later I will try with another VGA card maybe the current has conflict with the 3D Blater VLB.

Last edited by Gona on 2020-10-28, 07:40. Edited 2 times in total.

Videocard compatibility matrix for DOS games | ATI3DCIF compatibility matrix | CGL API compatibility matrix

Reply 142 of 167, by furan

User metadata
Rank Member
Rank
Member
Gona wrote on 2020-10-27, 08:06:

Are GiGi CGL drivers make VXD calls? Really strange, I was sure about CGL drivers are DOS only. This is surprising. Are all GiGi CGL do VxD calls, even the linked-in-binary CGLs too?
Thanks for the driver, today I try to make the first test.

I can only confirm that the 1.67 linked-in GiGi driver makes VXD calls - CGLRW.lib. I know it is making VXD calls because when I disassemble the static library, it has symbols with function names, so it's easy to tell that it checks for Windows and then makes VXD calls to set up the card.

Update: I figured I'd go ahead and page this back in. The static library version of the GiGi CGL driver has some code to check if it's in a win9x dos box. If it finds this to be the case, it makes private (definitely not Windows) VXD calls. These functions are:
GG_InitVxdCall - gets the VXD entry for service 369Dh.
GG_VXDLockDevice - makes a 300h call
GG_VXDUnlockDevice - makes a 301h call
GG_VXDSetCGLMode - makes a 3005h call

It looks like they are basically there to allow for DOS CGL games to run, without conflicting with the existing Windows support for the card - the CGL library asks the VXD to enter a CGL mode, I would guess this mode is so that no DDraw/D3D driver routines try to interact with the hardware.

If I disassemble EAGLEMVD.VXD that is in the driver I provided earlier, the VXD Req_Device_Number matches, it is 369Dh.
If I disassemble the V86_API_Proc it registers, it handles 300h, 301h, and 3005h. 300h/301h set internal state and 3005h makes a vmm call to Map_Flat, which looks to be used to map the address range of the card for the CGL driver.

So I think we can safely say that, at least the linked-in GiGi driver supports running games in a Windows 9x dos box via VXD calls, and that it pairs with at least this specific driver, because it registers the same VXD service number that the static library looks up, and it has routines for each of the VXD calls that the static library makes. As to whether it works at all? I cannot say. 😀 But at least I can say that the driver I provided goes with the static library I have, which I think is the same GiGi library that is statically linked into some CGL games.

I have confirmed that VCT3DBD.VXD in both C3DB-95UPD-1-US and 3D-95STD-3-US also handle these same VXD calls.

Last edited by furan on 2020-10-28, 02:28. Edited 2 times in total.

Reply 143 of 167, by furan

User metadata
Rank Member
Rank
Member
vetz wrote on 2020-10-27, 09:30:

Furan, any good tips to make sure that Cyberspeed is actually getting accelerated? Many games default to softwarerender if the acceleration is not working/detected and it can be very hard or almost impossible to visually tell software render apart from any acceleration on the 3D Blaster. You also need a CPU which is in the sweetspot of not being too fast or too slow so that you hopefully can tell them apart from increased FPS.

The driver you attached aren't for CGL? The documentation says they are Win95 DirectDraw/Direct3D drivers. Also the document attached to the GiGi Win95 drivers just confirmed that DirectDraw works without the memory module, but any Direct3D acceleration requires it. I'm pretty sure if we got hold of a good picture or the schematics the module could be reproduced. I know certain people in the community have the skill and interest for it. I've been searching for this module for 9 years and no picture/info has ever surfaced so it doesn't look very optimistic unless Creative themselves releases the schematics.

First it should be easy to know with the 3D Blaster VLB if something is accelerated - just unplug the VGA that is being passed through it.

The driver I attached is a VXD that yes supports early DirectX, but I believe the VXD calls made by the linked-in GiGi driver that is in some CGL games, is talking to it. Just a reminder - Cyberspeed is not a CGL game. The binaries that it uses to support GiGi contain code to control the Gaming GLINT chip directly. It might require the driver I provided, but I am not sure.

I don't think the original schematic is needed to figure out how to make a memory upgrade. If you look at the board, the upgrade sits directly over the existing memory, so it's unlikely to have a separate data/address bus, and it's unlikely the GiGi chip has more than one memory controller, so the signals used by the SDRAM controller are probably the same. So I think all that it may require is someone taking the time to get the datasheet for the memory that is on the board, and use a continuity tester to "pin out" all of the pins on the upgrade headers, to the SDRAM chips. They probably share memory controller signals, but it's probably a 32 bit data bus created by different address and data signals to one pair of chips. It's possible that a higher bit (or few) of the address bus is not used on the board memory, but is used by the expansion memory, and that would take a little guesswork. These might make themselves known by being connecting to terminating resistors on the board. But the documentation at least for the 500TX pinout is available, so I think it wouldn't take too much guesswork after looking at that to figure out any extra signals. I wanted to do this at some point but my life has been a little derailed this year so I will leave that for someone else to do. 😀

Reply 144 of 167, by furan

User metadata
Rank Member
Rank
Member

Just another update - the GiGi driver that is part of the RenderMorphics engine does not make VXD calls, it is using GDI ExtEscape() calls with service value 0x3D3D to communicate with the driver via the driver DrvEscape(). If it fails, it will pop a message box with a title of "Glint" saying "Can't switch context." This is not a value Windows handles, so it would pass it on to the driver. The driver I provided, as well as C3DB-95UPD-1-US and 3D-95STD-3-US, do not check for this value. I also checked the NT driver with that driver, and it does not check for that value. I checked the drivers 3DLabs provides for the early GLINT chips for NT 3.5, 4.0 and Windows 2000, and none of them service that iEscape code either. That it mentions Glint and has gigi in the filename, makes me think that this is *for* the gaming glint chip, but it doesn't look like the RenderMorphics driver has something to talk to. Incidentally, 0x3D3D is the product PCI ID that 3DLabs has reserved for them, so I imagine they would use it elsewhere like this.

I hate to say it but maybe they didn't include these in the full version of the game, because there was some unreleased Creative/3DLabs Windows GDI driver which implemented support for these routines. Maybe we could find it? It would have to be a version of the driver that supported DirectDraw, but not D3D - likely from before D3D was around. This library looks like it combines the use of DirectDraw with ExtEscape() calls to the GDI driver for the card, for a 3D interface.

Reply 145 of 167, by furan

User metadata
Rank Member
Rank
Member

I randomly asked one of the 3Dlabs employees if they had any info on Gaming Glint pinout, and they gave me their datasheet collection. It does not contain Gaming Glint, but the Glint 300SX, 500TX, and MX are all pin compatible with each other, so it could be that GiGi is close to that. They use a different local bus interface, so I imagine the pinout is similar but not the same.

Reply 146 of 167, by Stiletto

User metadata
Rank l33t
Rank
l33t
furan wrote on 2020-10-28, 06:05:

I randomly asked one of the 3Dlabs employees if they had any info on Gaming Glint pinout, and they gave me their datasheet collection.

I'd like a copy of these, please. 😀

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 147 of 167, by Gona

User metadata
Rank Member
Rank
Member
furan wrote on 2020-10-28, 00:06:

1.67 linked-in GiGi driver

Likely you have mistyped the version number, linked-in versions are from 1.6 to 1.61a

Gona wrote on 2020-10-27, 21:29:

Later I will try with another VGA card maybe the current has conflict with the 3D Blater VLB

I was true there was a conflict with my ISA Trident TGUI9680. I have switched the VGA to a PCI Matrox Impression Lite and 3D Blater VLB now works under Windows 95!

furan wrote on 2020-10-28, 00:16:

First it should be easy to know with the 3D Blaster VLB if something is accelerated - just unplug the VGA that is being passed through it.

Unfortunately it is not that simple. I'm always test addon 3D cards with a 2nd monitor, I did so now, and as soon as the conflict with the VGA has gone Creative driver has loaded and the Windows desktop has comed up on the 2nd monitor! The 1st monitor plugged on to the VGA card has no signal! So the 3D Blaster VLB Windows 95 driver grabs the whole video out! I have made a quick test with Cyberspeed demo on the C3DB-95UPD-1-US driver and looks like software mode. I have removed the gigi named dll-s and looks the same. Later I will continue testing.

Last edited by Stiletto on 2020-10-28, 17:31. Edited 1 time in total.

Videocard compatibility matrix for DOS games | ATI3DCIF compatibility matrix | CGL API compatibility matrix

Reply 148 of 167, by furan

User metadata
Rank Member
Rank
Member

Yep I typed the version number from memory :]

It is exactly:
CGL Revision 1.6a

config.png
Filename
config.png
File size
26.38 KiB
Views
166 views
File license
CC-BY-4.0

By the way, I was hoping that since the GiGi drivers have a chip type lookup that includes the 300SX, that one of them might have code for a PCI bus device, but it does not look like any of them make PCI BIOS service calls, and the static version of the driver only has VLBus initialization code. 🙁

Here are some of the datasheets I got, sort-of related to GiGi:
300SX: https://www.dropbox.com/s/kqnxaeeq57aqcvk/GLI … %201.0.pdf?dl=1
500TX:https://www.dropbox.com/sh/7zgtmp1zo2xg43e/AA … DTrdJfm9va?dl=1

Reply 149 of 167, by furan

User metadata
Rank Member
Rank
Member
Gona wrote on 2020-10-28, 07:49:

Unfortunately it is not that simple. I'm always test addon 3D cards with a 2nd monitor, I did so now, and as soon as the conflict with the VGA has gone Creative driver has loaded and the Windows desktop has comed up on the 2nd monitor! The 1st monitor plugged on to the VGA card has no signal! So the 3D Blater VLB Windows 95 driver grabs the whole video out! I have made a quick test with Cyberspeed demo on the C3DB-95UPD-1-US driver and looks like software mode. I have removed the gigi named dll-s and looks the same. Later I will continue testing.

I should have realized this - the Windows 9x drivers include a GDI display driver, and they take over to render even just the desktop. Even the 0.98 driver I provided does this. So yeah, it is not that easy to figure out if something is accelerated. Technically most things are, if the GiGi GDI driver is actually doing more than using the chip as a framebuffer. I imagine it is. If you want to disable this, you can try deleting eagle.drv, but I haven't tried this - YMMV. eagle.drv is just the GDI driver, and it is not necessary for the VXD (which is lower in the stack and will load on its own).

Also like I mention - from disassembling the CyberSpeed GLINT drivers, they make ExtEscape calls to the GDI driver for 3D functions, and the 3D Blaster GDI driver does not handle these. I asked the 3Dlabs guy I'm talking to but haven't heard back yet. This was right before Microsoft bought RenderMorphics and built Direct3D, so I imagine maybe it was in a beta driver and then removed immediately - because the way it worked was kind of a hack anyway.

Here is an example of the code I am talking about - if the GDI driver does not implement escape support and handle this 0x3D3D iEscape code, nothing will happen. EAGLE.DRV doesn't have any handler for this.

escape.png
Filename
escape.png
File size
16.05 KiB
Views
143 views
File license
CC-BY-4.0

Reply 150 of 167, by vetz

User metadata
Rank l33t
Rank
l33t

Nice work furan!

I looked through the timestamps in the Cyberspeed demo, they are from 26th of October 1995. That is roughly when the 3D Blaster VLB was released to the public. Did you check the original 1.0 driver shipped with the card? http://vogonsdrivers.com/getfile.php?fileid=824&menustate=0 It's the oldest that exists. If the ExtEscape calls are not included there I'm afraid it looks like we're out of luck.

3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D)
3D Acceleration Comparison Episodes

Reply 151 of 167, by furan

User metadata
Rank Member
Rank
Member
vetz wrote on 2020-10-28, 10:15:

Nice work furan!

I looked through the timestamps in the Cyberspeed demo, they are from 26th of October 1995. That is roughly when the 3D Blaster VLB was released to the public. Did you check the original 1.0 driver shipped with the card? http://vogonsdrivers.com/getfile.php?fileid=824&menustate=0 It's the oldest that exists. If the ExtEscape calls are not included there I'm afraid it looks like we're out of luck.

Thanks. Note that I linked a beta 0.98 driver on my Dropbox earlier in the thread 😀 It's from the DirectX 2.0/3.0 CDs. It doesn't have an escape handler for 0x3D3D, and unfortunately this 1.0 driver you linked does not have it either.

Here's that driver: https://www.dropbox.com/s/tlner70kjf3c9ra/3D% … 200.98.zip?dl=1

Reply 152 of 167, by vetz

User metadata
Rank l33t
Rank
l33t

Cyberspeed being released this early I guess it must use DirectX 1.0 since 2.0 wasn't out untill June 5, 1996 and Direct X 3 on September 15h 1996 Source: (http://craig.theeislers.com/2006/02/20/direct … and-now-part-1/)

I came across a post on Google Groups from jan 96 with a user asking for help with DirectDraw calling RealityLabs functions. This was from the Windows 95 Game SDK. Haven't been able to find it on archive.org. Do you have this SDK or earlier DirectX SDK's we could check out for a driver?

D0ENRdkUcAAUV59.jpg
Filename
D0ENRdkUcAAUV59.jpg
File size
170.11 KiB
Views
125 views
File license
Public domain

3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D)
3D Acceleration Comparison Episodes

Reply 153 of 167, by furan

User metadata
Rank Member
Rank
Member
vetz wrote on 2020-10-28, 11:06:

I came across a post on Google Groups from jan 96 with a user asking for help with DirectDraw calling RealityLabs functions. This was from the Windows 95 Game SDK. Haven't been able to find it on archive.org. Do you have this SDK or earlier DirectX SDK's we could check out for a driver?

The only SDK I have that is earlier than 2.0 is called DirectX1_GDC2005_Beta, but it is referred to in documentation as the Game SDK, so it appears to be the same thing. The only video driver it has is for the Mach 64.

Reply 154 of 167, by vetz

User metadata
Rank l33t
Rank
l33t

I managed to dig up stuff on Archive.org

https://archive.org/details/directx2sdk - Contains 3D Labs 300SX v0.95 driver
https://archive.org/details/gamesdk - Game SDK - with many more drivers (unknown if 3D Labs/3D Blaster is included as they are all placed in one giant folder)

Last edited by vetz on 2020-10-28, 11:33. Edited 1 time in total.

3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D)
3D Acceleration Comparison Episodes

Reply 156 of 167, by vetz

User metadata
Rank l33t
Rank
l33t

Found this within the 3D Labs 0.95 driver (from DirectX 2.0 SDK):

Direct3D, Reality Lab support.
The driver contains a Direct3D HAL driver in BETA form. This enables hardware acceleration of Direct3D and Reality Lab. Additionally, version 4.0 of the DirectX PDK will be required. As this is an early BETA, there are limitations which should be understood before attempting to run Direct3D or Reality Lab programs. The main limitations are listed below. The HAL driver is currently capable of rendering Gourand and flat shaded primitives, with specular highlights. The HAL driver also supports Z Buffering.

Could it be that the Cyberspeed demo acceleration is only working on a 3Dlabs 300SX? Cyberspeed was announced in press releases to include support for the 3D Blaster VLB. I'd imagine that the developers would use 3DLabs 300SX boards during development or prototype 3D Blaster VLBs. Seems at some point the RL driver would not be supported by Creative and since the game was developed for Windows 95, CGL could not be used.

3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D)
3D Acceleration Comparison Episodes

Reply 157 of 167, by furan

User metadata
Rank Member
Rank
Member
vetz wrote on 2020-10-28, 11:38:

Could it be that the Cyberspeed demo acceleration is only working on a 3Dlabs 300SX? Cyberspeed was announced in press releases to include support for the 3D Blaster VLB. I'd imagine that the developers would use 3DLabs 300SX boards during development or prototype 3D Blaster VLBs. Seems at some point the RL driver would not be supported by Creative and since the game was developed for Windows 95, CGL could not be used.

I thought I had written this up, but now I can't find it. I suspect that the RenderMorphics acceleration DLLs are for the first GLiNT chip, the 300SX. But, I have disassembled several versions of the GLiNT drivers, and they do not handle 0x3D3D escape calls. They do, however, attempt to load an oglsrv.dll, and call a method ClientGLDrvEscape(). I was theorizing that maybe this was a Windows 95 OpenGL ICD, but the ICD in the Windows 95 GLiNT driver is called 3dogldrv.dll, and does not export this function.

I'm not sure why my writeup got eaten, but my theory is that the RenderMorphics drivers were for this first GLiNT chip, the 300SX, and it requires a driver that includes this oglsrv.dll, and it's ClientGLDrvEscape() method tests for 0x3D3D and does the things. I can't find anything anywhere on this oglsrv.dll.

Reply 158 of 167, by vetz

User metadata
Rank l33t
Rank
l33t

I'll fire up my 300SX later tonight and see what happens with that 0.95 BETA driver. If Cyberspeed isn't working then atleast can test if it works on Intel platforms (since my card is for MIPS) and the DirectDraw/Direct3D demos on the SDK.

3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D)
3D Acceleration Comparison Episodes

Reply 159 of 167, by furan

User metadata
Rank Member
Rank
Member

I don't see how CyberSpeed could work... I also don't see how/why your 300SX card would not work... 😀 It's not like MIPS had their own PCI specification, or 3Dlabs made a MIPS-only version of the 300SX. I imagine it will work fine, but you'll have to swap your VGA cable between it and the VGA card. It looks like, from the datasheets, that the EPROM on the board does not contain code, but configuration for the chip.

There is a 3Dlabs press release for the RenderMorphics stuff that you can find, here is a summary:
Rendermorphics is now directly supported by 3D Labs' GLINT chip, a 3D
rendering engine on a chip being widely adapted by the PC-Mac-Windows NT board
manufacturing community. It will be even faster as a result when used with
hardware acceleration.

The proper way to put it is that 3Dlabs GLiNT chip was supported by RenderMorphics! So, from what it sounds like it was for the original GLiNT - the 300SX, with the right driver.

Page 16 of this magazine has a great article about the GLiNT 300SX, and mentions RenderMorphics support and shows screenshots:
https://retrocdn.net/images/6/69/Edge_UK_015.pdf