VOGONS

Common searches


Glide 2.1.1 games and Voodoo 2

Topic actions

Reply 21 of 28, by Stiletto

User metadata
Rank l33t
Rank
l33t
kjliew wrote on 2020-04-01, 05:58:

I just cooked up a full implementation of Glide 2.1.1 wrapper that wraps into Glide 2.4, ie. glide.dll -> glide2x.dll.

I remember you saying you'd leave this project for a rainy day... Congrats on making this work. 😀

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

Stiletto

Reply 22 of 28, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie
Stiletto wrote on 2020-04-02, 00:48:

I remember you saying you'd leave this project for a rainy day... Congrats on making this work. 😀

Well, I am on a mission to enable my 3Dfx game collections on Linux through QEMU KVM. If OpenGlide had been any better in its implementation, then I wouldn't have done it again. Anyway, it's quite trivial nowadays to do this kind of stuffs with modern GCC toolchain. I no longer have a working Voodoo2, so waiting to see if it also works on real hardware, especially Banshee and Voodoo3/4/5.

Reply 23 of 28, by vetz

User metadata
Rank l33t
Rank
l33t
kjliew wrote on 2020-04-01, 20:59:

@vetz I updated the attachment to include an i586 version without CMOV instructions. Check it out if you will.

Thanks! I'll check it out this weekend and give you a report back 😀

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

Reply 24 of 28, by Gamecollector

User metadata
Rank Oldbie
Rank
Oldbie

Can't test currently, my test PC isn't working correctly (0000007f BSODs, MB capacitors?)...

Asus P4P800 SE/Pentium4 3.2E/2 Gb DDR400B,
Radeon HD3850 Agp (Sapphire), Catalyst 14.4 (XpProSp3).
Voodoo2 12 MB SLI, Win2k drivers 1.02.00 (XpProSp3).

Reply 25 of 28, by vetz

User metadata
Rank l33t
Rank
l33t

I've tested:

- Mechwarrior 2
- Pandemonium
- CyberGladiators
- Scorched Planet

Setup is a Pentium II 266 with a Voodoo3 PCI.

Mechwarrior 2 starts and works fine, even in 800x600, but framerate is in the single digits. It's not playable.
Pandemonoium starts (using the trick to copy in pandy3.exe), but it runs too quick and there seems to be no bilinear filtering. I'm actually not sure if its running in software mode or glide.
CyberGladiators run, but the background and floor is glitching out. Framerate is good.
Scorched Planet crashes on launch with the following error:

SPVOODOO caused an invalid page fault in
module GLIDE2X.DLL at 0187:00f83dd3.
Registers:
EAX=00000000 CS=0187 EIP=00f83dd3 EFLGS=00010256
EBX=00000001 SS=018f ESP=007efa44 EBP=00000000
ECX=00febdb8 DS=018f ESI=00feb9a0 FS=1167
EDX=00000000 ES=018f EDI=0004d8d8 GS=0000
Bytes at CS:EIP:
89 02 75 2f 8b 01 83 c0 04 89 01 8b 9e 14 04 00
Stack dump:
007efe38 00000000 00feb9a0 004bba68 0004d8d8 0004d8d8 0004d8d8 0004d8d8 00000001 00f7c72f 00000008 00f9ec64 00000982 00000000 004bba7c 1000170f

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

Reply 26 of 28, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie
vetz wrote on 2020-04-04, 15:22:

Mechwarrior 2 starts and works fine, even in 800x600, but framerate is in the single digits. It's not playable.

Yeah, I think Pentium II 266MHz may not have the pixel pushing power for the additional LFB format conversion. I remembered when I first did it back in 2002 with a Voodoo2 I was barely getting any playable framerate. That was with Visual Studio C compiler though without any form of SIMD optimization but I did make sure it did loop unrolling, which is what the GCC version is doing now for i586. But that was with a 1GHz PIII Coppermine. There are ways to optimize specially for this game, if you only want to play this game, such as doing selective LFB update with only pixels that changed, but there will be artifacts. Anyway, for QEMU WHPX/KVM on modern CPUs, this is no longer a problem.

vetz wrote on 2020-04-04, 15:22:

Pandemonoium starts (using the trick to copy in pandy3.exe), but it runs too quick and there seems to be no bilinear filtering. I'm actually not sure if its running in software mode or glide.

pandy1-glide.png
Filename
pandy1-glide.png
File size
434.77 KiB
Views
271 views
File comment
Pandy1-glide
File license
Fair use/fair dealing exception

Pandy1 works pretty fast on QEMU KVM, too. There is definitely bilinear filtering though. This one was done with Glide pass-through to OpenGlide on the host. Yes 😁, OpenGlide can do Glide 2.1.1 on Linux with the help from the wrapper, but not for Mechwarrior 2 though (...sigh...)

vetz wrote on 2020-04-04, 15:22:

CyberGladiators run, but the background and floor is glitching out. Framerate is good.

Can you upload a screenshot? I guess this may be AUX/DEPTH buffer issue if the game actually locked the LFB for AUX/DEPTH instead of color buffers. AUX/DEPTH locking is not done for the wrapper, I wasn't sure if any games really do that.

vetz wrote on 2020-04-04, 15:22:

Scorched Planet crashes on launch with the following error:

Well, I will see what I can do with this one, if the same error can reproduce on QEMU.

Reply 27 of 28, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie
vetz wrote on 2020-04-04, 15:22:

Scorched Planet crashes on launch with the following error:

I tried the 3Dfx demo from Diamond Monster3D CD. It did not crash, but I found that this is another game that does not use LFBWRITEMODE_565, but LFBWRITEMODE_1555. This is worse than Mechwarrior 2. It works with dgVoodoo2 through QEMU internal emulation of Glide 2.1.1 APIs, but runs very slow at single digit FPS. Apparently, this is another LFB abuser that simply did a lousy job for 3Dfx port, treating Voodoo as mere dumb framebuffer device as what typical DOS VESA LFB or DirectX port would do.

Perhaps it needs more sophisticated tricks than simple fill, convert and flush LFB operations. And I guess it definitely requires selective LFB updates to be able to write only those pixels that changed. However, it is not a great game that deserves special attention, unfortunately.

Reply 28 of 28, by Gamecollector

User metadata
Rank Oldbie
Rank
Oldbie

P4 3.2E, 2 GiB RAM, Radeon HD3850 AGP, Voodoo2 SLI. WinXpSp3, Catalyst 14.4, Voodoo2 w2k 1.02.00 drivers.
Have tested the SSE2 version of the glide 2.1.1 -> glide2x wrapper...

Cybergladiators (+WinXp speed fix) -- ok.
Mechwarriors 2: 31st Century Combat (+gdi42.dll) -- ok, low FPS.
Outlaws -- ok.
Pandemonium! -- freezes before the 3dfx logo. The detection works (copy the CD content to a HDD directory, replace glide.dll to this wrapper, install, edit the "HKCU\Software\Crystal Dynamics\Pandemonium\Path value).
Pod (+PodHacks) -- freezes after the 3dfx logo. Needs glide.dll and sst1init.dll in the system directory to install the glide version (names only, zero length files work too).
Scorched Planet -- ultra low FPS and mouse speed, wrong menu background.
SimCopter -- ok except too fast (game/OS related).
Speedboat Attack -- crashes after the loading screen (sboat.exe module unknown offset 1f9400). Maybe the reason is the game itself. Use the fixed setup.ins to install the glide version. Needs glide.dll, sst1init.dll and fxmemmap.vxd in the system directory (names only, zero length files work too).
Tigershark -- the image and the palette are wrong (double h-size, purple), low FPS.
Time Warriors -- not starts (blinks then returns to the desktop).

Asus P4P800 SE/Pentium4 3.2E/2 Gb DDR400B,
Radeon HD3850 Agp (Sapphire), Catalyst 14.4 (XpProSp3).
Voodoo2 12 MB SLI, Win2k drivers 1.02.00 (XpProSp3).