VOGONS


The Changeling 3dfx Voodoo 5 5500

Topic actions

Reply 100 of 129, by Voodoo Rufus

User metadata
Rank Newbie
Rank
Newbie

I was noticing that all of the AGP Changelings are out of stock now. Did I miss my chance, or is there another batch being made in the future?

Reply 101 of 129, by anthony

User metadata
Rank Member
Rank
Member
Voodoo Rufus wrote on 2024-11-15, 16:48:

I was noticing that all of the AGP Changelings are out of stock now. Did I miss my chance, or is there another batch being made in the future?

I'm concentrating on a new project. no cards stated as available so far. In a few weeks some updates will be done on the website.

Reply 102 of 129, by Ascended

User metadata
Rank Newbie
Rank
Newbie

Hi all, Has anyone here managed to get Star trek Voyager elite force running on the wide driver.

For some reason the game just crashes after the intro, I've never managed to get into the main menu screen.
The game is not corrupted because when I drop in my V2 SLI it runs perfect.
Has anyone had an experience with this game.

My rig
P4 3.4
Win98se
512mb ram
V6000 PCI
Directx 8.1
Wide Driver 1.1

Reply 103 of 129, by Dolenc

User metadata
Rank Member
Rank
Member

I can check later, game on my todo list...

Update, doesnt run for me either.
I tried a couple of openGl drivers, mesafx63, sage, wicked, original latest... Some atleast get in the game, but then crash. Cant help you at this point , you can try a different driver.

Reply 104 of 129, by Ascended

User metadata
Rank Newbie
Rank
Newbie
Dolenc wrote on 2025-03-26, 07:39:

I can check later, game on my todo list...

Update, doesnt run for me either.
I tried a couple of openGl drivers, mesafx63, sage, wicked, original latest... Some atleast get in the game, but then crash. Cant help you at this point , you can try a different driver.

Thanks Dolenc,
I pretty much tried everything as well,

In the process of loading up games on my rig that work with the widescreen driver and post it here, So people have a reference of what works.

Got some very interesting finds.

For instance,
M1 Tank platoon 2 works but only in 4:3, got it up to 1280x960. (Need to update the game version 1.2 or the game will crash)

Pretty cool actually.
I know NGlide can have different aspect ratios.

Reply 105 of 129, by Ascended

User metadata
Rank Newbie
Rank
Newbie
Dolenc wrote on 2023-12-29, 11:22:

Ahh the 16bit beauty....

The attachment Aoc_refresh2.jpg is no longer available

Hey Dolenc,
Any chance you can give me a rundown on how you got your system shock 2 running in widescreen.

I have modified the Cam.cfg with different resolutions.
However it never seems to stick, I just get a warning as I enter the game (The required screen mode could not be set)

its definitely trying to do something because image is distorted and stretched.

Reply 106 of 129, by Dolenc

User metadata
Rank Member
Rank
Member

Patch the game to v2.3, then use this patch.

Instructions for the patch:
- Extract the archive to your game installation directory
- Run DarkWidescreen.bat
- Follow the instructions to input your desired resolution
- You will be asked for a fov modification. This allows you to change your field of view. If you don't know what this means just enter 100
- After patching is completed successfully you can run the game's exe to play

Reply 107 of 129, by Ascended

User metadata
Rank Newbie
Rank
Newbie
Dolenc wrote on 2025-03-29, 09:50:
Patch the game to v2.3, then use this patch. […]
Show full quote

Patch the game to v2.3, then use this patch.

Instructions for the patch:
- Extract the archive to your game installation directory
- Run DarkWidescreen.bat
- Follow the instructions to input your desired resolution
- You will be asked for a fov modification. This allows you to change your field of view. If you don't know what this means just enter 100
- After patching is completed successfully you can run the game's exe to play

Thanks for your help Dolenc.

Very much appreciated.

Using a retrotink-4k, haven't got it dial in perfectly.

Some pic's
One in 1080 and the other in 720 all upscale to 4K on my monitor. It's a little bit washed out. Still looks good though.

Reply 108 of 129, by Dolenc

User metadata
Rank Member
Rank
Member
Ascended wrote on 2025-03-26, 23:16:
Thanks Dolenc, I pretty much tried everything as well, […]
Show full quote
Dolenc wrote on 2025-03-26, 07:39:

I can check later, game on my todo list...

Update, doesnt run for me either.
I tried a couple of openGl drivers, mesafx63, sage, wicked, original latest... Some atleast get in the game, but then crash. Cant help you at this point , you can try a different driver.

Thanks Dolenc,
I pretty much tried everything as well,

In the process of loading up games on my rig that work with the widescreen driver and post it here, So people have a reference of what works.

Got some very interesting finds.

For instance,
M1 Tank platoon 2 works but only in 4:3, got it up to 1280x960. (Need to update the game version 1.2 or the game will crash)

Pretty cool actually.
I know NGlide can have different aspect ratios.

A bit late, but I remembered this and wanted to give it a try.
StarTrek Voyager Elite Force works now.

Just replace the two files(make copy of old) in windows\system

The attachment IMG_20250809_014046_tigr.jpg is no longer available
The attachment IMG_20250809_013935_tigr.jpg is no longer available
The attachment GlideNmesa.zip is no longer available

Reply 109 of 129, by Ascended

User metadata
Rank Newbie
Rank
Newbie
Dolenc wrote on 2025-08-08, 23:46:
A bit late, but I remembered this and wanted to give it a try. StarTrek Voyager Elite Force works now. […]
Show full quote
Ascended wrote on 2025-03-26, 23:16:
Thanks Dolenc, I pretty much tried everything as well, […]
Show full quote
Dolenc wrote on 2025-03-26, 07:39:

I can check later, game on my todo list...

Update, doesnt run for me either.
I tried a couple of openGl drivers, mesafx63, sage, wicked, original latest... Some atleast get in the game, but then crash. Cant help you at this point , you can try a different driver.

Thanks Dolenc,
I pretty much tried everything as well,

In the process of loading up games on my rig that work with the widescreen driver and post it here, So people have a reference of what works.

Got some very interesting finds.

For instance,
M1 Tank platoon 2 works but only in 4:3, got it up to 1280x960. (Need to update the game version 1.2 or the game will crash)

Pretty cool actually.
I know NGlide can have different aspect ratios.

A bit late, but I remembered this and wanted to give it a try.
StarTrek Voyager Elite Force works now.

Just replace the two files(make copy of old) in windows\system

The attachment IMG_20250809_014046_tigr.jpg is no longer available
The attachment IMG_20250809_013935_tigr.jpg is no longer available
The attachment GlideNmesa.zip is no longer available

Nice work Dolenc,

Awesome you got it working, such an iconic game. I'll try it out tonight, I've had to do these things before and I just make a batch file that moves the files in and out as required per game.

Reply 110 of 129, by Dolenc

User metadata
Rank Member
Rank
Member

Update2: Soldier of fortune works now. It still stutters a bit when shooting with the shotgun.
There were a bunch of changes to OpenGL side of things, mainly texture managment, now its more robust.
Quake2 engine games, those that use "GL_POINT_SMOOTH" now got a nice 10%+ fps bump, since I removed it. Its not supported on the Voodoo and was done on the cpu.
There were a bunch of MesaFX internal changes, getting more and more mature.
Updated the link in the thread.
--------------------------------------------
Update: Updated files, 8-bit textures are now fine everywhere, glide can force 32bit. Refresh rate setting (in3dfx tools) works in glide, directx, opengl.
You do loose a bit of fps with a higher refresh value, not a big deal, but its there.
- q3 went from 71fps(60hz) to 69fps(100hz)
- ut went from 44fps(60hz) to 43fps(100hz)
Updated the link in the thread. Its gonna go on hold for a bit now 😀
--------------------------------------------

Im working on a newer version of the driver, that will hopefully one day get into a state of Install and forget, cus everything just works...
Cus Im running out of free time, might as well share the current version, and Ill try to make it better with time.

The version of glide I used in v1.1 doesnt really play that well with MesaFx. So I switched to the latest-greatest from sourceforge glide project.
It has all the resolutions, force 16bit control, also added the Refresh Rate toggle, just set to 144hz and let it do its thing. Now works in DirectX and OpenGl (finally!!!), makes everything a bit smoother and less tearing-prone.

OpenGl driver is now MesaFx-6.4.2, but its still being worked on.
Combo mesa-glide now works correctly with all the texture compressions and some other additional stuff that mesa does.
While its still a work in progress, in general its quite an improvement from Wide driver v1.1, some things I broke in v1.1 from just not knowing enough 😀

Version 1.2
New OpenGl driver MesaFx-6.4.2
Added Refresh Rate variable to 3dfx tools, that will set the highest-avaliable refresh rate for DirectX and OpenGl games.
Different Glide3 driver 3.10.00.40406
Games that didnt work in the previous version, but now do:
Sin
Oni
Star Trek Voyager Elite Force
Heretic II (had random lock-ups)

Whats known to be broken:
Soldier of fortune Texture corruption (I have a general idea whats wrong, its the way game initializes levels, the problem still persist in new mesa versions, so nothing to do with glide)

The attachment shot0006.png is no longer available

You can get the pre-release here
3dfx Wide driver v1.2beta3

Reply 111 of 129, by Dolenc

User metadata
Rank Member
Rank
Member

So since Im quite happy how its progressins with the driver thingy 😀

SOF stutter problems have also been resolved.
So thats basicly everything I wanted do to in this batch.
Texture managment and tmu handling are severly enhanced now.
Currently my code is a bit of a mess, I will slowly clean things up, then this is kinda it for 3dfx Wide driver v1.2.

A couple of games that didnt work before(using opengl) now work. All q2 engine games will be noticably better, no more stutters, a bit of a fps bump. SOF was completly broken before, Sin had some stutters, heretic too. Daikatana had a tendency(well heretic2 too) to randomly freeze, havent tested for a long playtime, but seem to have been resolved.
All (opengl)games should benefit from the changes, some just more than others.

Just as a comparison
Running SOF with 1280x960, no oc on the card.
MesaFx-6.3: 35.4fps
MesaFx-6.4.2: 81.5fps
3dfx OpenGL icd V1.0.0.0761b: 76.8fps

And heres a video of SOF running at 1920x1080@16
MesaFx-6.4.2 Soldier of fortune 3dfx Voodoo 5 5500

And a couple of pictures how this goes 😁

The attachment FpsNotes.jpg is no longer available
The attachment glide0001.jpg is no longer available
The attachment SofBrokenTextures1.jpg is no longer available
The attachment TextureCorruptionAfterTMU1.jpg is no longer available

Reply 112 of 129, by Dolenc

User metadata
Rank Member
Rank
Member

This will be more of a self-motivation post 😀

Today challenge started like this... When testing the 3dfx ICD, it said this in the console...

16bit... Using stencil buffer ...

The attachment IMG_20251012_160954.jpg is no longer available

What????... Im not using it... Only on 32bit.

The attachment IMG_20251012_161232.jpg is no longer available

So it is posible!!
Ive got the napalm spec sheet, doesnt really say much, just that the card supports 32bit, 24bit depth and 8bit stencil.

So... I changed the logic a bit to enable it, and added it to pixel format. Lets go with 24bit depth and 8bit stencil on everything!

The attachment IMG_20251019_174111.jpg is no longer available

Well... that turned out great 😁... After some more exploring, card does support it. But getting to the card, so through glide, its not really exposed.
Theres some stencil logic, but I would have to dig a bit deeper if maybe something can be used, or I would have to add...
So my guess is 3dfx just sets it, but its not in use. Atleast not as it should be.
Im gonna do the same 😜... atleast it wont say 0 anymore. So there we go... great progress!

The attachment IMG_20251019_180420.jpg is no longer available

There were some other fixes, had some opsies initializing stuff. So now it behaves fairly good.
Tried solving some other quirks, but hit a dead end... so the story continues....

The attachment IMG_20251011_111318.jpg is no longer available

Reply 113 of 129, by Dolenc

User metadata
Rank Member
Rank
Member

The saga continues...

I had 3 more things that I wanted to solve, for this batch:
- Correctly setup 2pixelPerClock rendering and analogSli in Glide
- Mdk2 crashes on starting the game, but works if I press "Get Info" in the games start menu, then start the game
- Sin, if I force 16bit textures crashes

1. Sli
In glide you can enable 2px per clock rendering and digital/analog sli (for Voodoo5 5500 only, 6k defaults to analog).
Napalm feature, rasterizer and pixel combiner can render two adjacent pixels in one clock cycle so basicly doubling fill rate.
2px should in theory give a small performance improvement, probably mostly in lower resolutions.

Digital sli should be always enabled, sending output digitally over an internal bus, digital scan-line combiner then merges pixels before going to the DAC.

Incorrectly setuped, when the system starts breaking causes those "sli pink lines".

The attachment sli pink lines.jpg is no longer available

My assumption was that a combination of both contributes. Also that going higher resolution, you want to fallback to analog sli. Since default in code, analog sli was already enabled for 1600x1024.
Wide driver v1.1 for example, going to 1920x1080@32bit, you will get pink lines.

Well now I spend some time testing it. 2px can be enabled for every resolution up to(including) 1920x1080, so does digitalSli.
Theres probably some reason why this can be toggled, but since going higher (in 3d) isnt really viable on the v5, I enabled analog sli then.
So now it works fine with 1600x1200 or 1920x1080 at 32bit, no more pink lines! And both settings as they chould be.
One down!

2. MDK2
Game was working fine with MesaFx6.2....

The attachment mdk2Error.jpg is no longer available

It crashes very early in the loading process... So no Mesa.log gets created, that woul help to explore whats happening.
In time... I found out that if you click "Get info" then run, it works. Also if you put Opengl32.dll in the game root folder it works. Also if you select 3dfx Opengl driver, also works...

So I did a bunch of trial-and-error very early in the loading process _dllmain... Nothing worked. Its probably just some variable that isnt initialized...

Then I "figured out", that basicly... How I have it setuped, is just wrong, and that even working before, is... well incorrect. They probably changed something on core-mesa side, that this isnt allowed anymore.
I had "my" MesaFx icd as "3dfxogl.dll" and "Opengl32.dll" in the windows/system folder. Its how I saw some other drivers did it, but its not ok.
You should leave the poor Opengl32.dll provided from Microsoft alone!... And then from the registry, this one links with your main driver one, in this case 3dfxogl.dll.
So I did that. And now it work. Its also the correct "Windows" way.
Eh you know... you learn something new every day...
Two down!

3. Sin crash if forcing 16bit textures
This game, didnt work before with mesa 6.2. But with 6.3 it worked. To be honest, this is the main reason I wanted to bumb the version 😁.
But since 6.3 3dfx part source was never updated and it had a lot of mesa-core changes, that need to be adapted... But yea, that was the motivation to "once do it", and this is now!

So Sin was working, paletted textures were broken, but also got fixed, the only thing was, when forcing 16bit textures (mesa defaults to 32bit textures) it crashed to desktop. Quake 2 worked fine, every other Quake 2-engine game worked fine, was just this one.

After, some exploring... This game does things a bit "its own way", as lot of games of this time do 😒 ... It will use whatever texture setting you have + Shared global palette... This is a usecase that isnt handled correctly in core-mesa. You can do 32bit and combine with palette, you can do 8bit and use palette only, but combining 16bit(rgb565 or argb4444 + global palette wont work, theres an issue with palette conversion for 16bit format in StoreImage function.

The easiest solution is to just threat palette textures as that, and others as 32bit.
I also... Well chatGPT/claude, fixed the StoreImage for 16bit formats, but the gain was fairly minimal a few fps, and the image quality was noticably worse, than just combining with 32bit. (I commited the StoreImage change and then reverted the commit if someone wants it, its there)
So I settled on this, for this usecase (probably just this game).

The attachment SinForce16bit fix5.png is no longer available

Three down!

Yes I can go to bed! Im done! Everything works... Well upon further testing...
- Now Force 16bit px doesnt work in ONE !!!... case, using a custom quake3v.exe for quake3, it sees invalid pixelformat and just runs in software
- Oni crashes

So here we go again!

1. I overly complicated how forcing 16bit works now. Basicly if the game requests 32bit, it will resolve to 32bit. But it will still run in 16bit, cus fuck you game, I do what I want!
The downside, you will see 32bit/24bit/16z/8scentil reported in the game, not the correct value. Not ideal, but... Atleast it will work everywhere.
2. Oni crashed after shooting the gun. My wonderfull... I want hw stencil buffer on 16bit! was causing the crash. So I reverted back.

There now Im done!

Whats left is a lot of testing, hope nothing turns up. For now it really looks like something solid.
I will try as many games as I can and do a comparison with the last official 3dfx driver. Theres a lot more stuff I would like to do, but for this release this will be it.

Reply 114 of 129, by Dolenc

User metadata
Rank Member
Rank
Member

So for some reason, as a last hoorah I tried 3 more things.

First, there is an issue with some pixels, on edges of static geometry(walls), can sometimes show through the mesh. Like z-fighting.
I never noticed it before, but since I was playing a bit more without any textures, everything was white, it was noticeable and now I cant unsee it 😁

The attachment IMG_20251019_211755.jpg is no longer available

It happens with 3dfx driver too, so I guess its a voodoo feature.
I tried tweaking depth range, depth bias, deph precision, poligon offset, snapingVertices, texture clamping, tried a clamp to edge implementation.. Nothing worked. So, goes into the ToDo oneday list.

Then I tried checking if Mesa does Guardbound clipping, has ofc its own(opengl) clipping system, but not guardbound.
Picture explains it better than me, basicly an area around the viewport, that detects polygons outside the viewport and clips them. Saves some cpu time.

The attachment Guardbound.jpg is no longer available

I tried a gpt-assisted implementation, but was working incorrectly.
I did however found in community glide, theres a flag that enables it on glides side (FX_GLIDE_GBC). So atleast I put that in 3dfxTools. Enabled it by default for glide and d3d.

Than as a last last, nothing to lose. Lets try implementing a version of HSR... Hidden surface removal.
So removing as much invisible geometry as possible, before sending it to the renderer.
I added Triangle Z cull, Tile occlusion mask and Depth sorting.

And it worked surprisingly somewhat well. About a 10-15% fps increase. With some missing geometry on the edges of a 3d menu (sof), half the gun was missing and so on. But overall most of the game was there 😁.
So you know... Maybe something, for the future, when I can invest more time into it. Its nice to see theres still lots of things to explore and headroom for future improvements.

So thats its, done. I prepared the games to benchmark and thats what my Voodoo will be doing today! To actually see what all the changes made 😀

Reply 115 of 129, by Ascended

User metadata
Rank Newbie
Rank
Newbie
Dolenc wrote on 2025-10-28, 12:04:
So for some reason, as a last hoorah I tried 3 more things. […]
Show full quote

So for some reason, as a last hoorah I tried 3 more things.

First, there is an issue with some pixels, on edges of static geometry(walls), can sometimes show through the mesh. Like z-fighting.
I never noticed it before, but since I was playing a bit more without any textures, everything was white, it was noticeable and now I cant unsee it 😁

The attachment IMG_20251019_211755.jpg is no longer available

It happens with 3dfx driver too, so I guess its a voodoo feature.
I tried tweaking depth range, depth bias, deph precision, poligon offset, snapingVertices, texture clamping, tried a clamp to edge implementation.. Nothing worked. So, goes into the ToDo oneday list.

Then I tried checking if Mesa does Guardbound clipping, has ofc its own(opengl) clipping system, but not guardbound.
Picture explains it better than me, basicly an area around the viewport, that detects polygons outside the viewport and clips them. Saves some cpu time.

The attachment Guardbound.jpg is no longer available

I tried a gpt-assisted implementation, but was working incorrectly.
I did however found in community glide, theres a flag that enables it on glides side (FX_GLIDE_GBC). So atleast I put that in 3dfxTools. Enabled it by default for glide and d3d.

Than as a last last, nothing to lose. Lets try implementing a version of HSR... Hidden surface removal.
So removing as much invisible geometry as possible, before sending it to the renderer.
I added Triangle Z cull, Tile occlusion mask and Depth sorting.

And it worked surprisingly somewhat well. About a 10-15% fps increase. With some missing geometry on the edges of a 3d menu (sof), half the gun was missing and so on. But overall most of the game was there 😁.
So you know... Maybe something, for the future, when I can invest more time into it. Its nice to see theres still lots of things to explore and headroom for future improvements.

So thats its, done. I prepared the games to benchmark and thats what my Voodoo will be doing today! To actually see what all the changes made 😀

Nice Dolenc,

Love hearing about your little deep dive adventures. Keep up the good work mate, very much appreciated.

Reply 116 of 129, by Dolenc

User metadata
Rank Member
Rank
Member

Yea I enjoy documenting it too, I didnt go into detail, I will for a few thing in next post, so I can remember what was happening and where I left things if I do more on a later date, and ofc I will forget everything otherwise.

Yesterday I did my benchmark runs, looks good. Except one outlier, Half-life: Opposing force.
It did 98.3fps on the 3dfx driver, 95.3 on wide 1.1 and 88.8fps on wide 1.2.

God damn it.... But ok, one game (well not really, shows the state of all half-life games, and they are 3 + lots of mods)...
I would be fine with 3dfx driver being faster, but having a regression from previous MesaFx 6.2... something aint right. MesaFx6.4.2 should be faster in every scenario. Even if core-mesa isnt improved for this games path, I know all the additions I did, and they should help.

So I tested some old built .dll I had... And damn 97fps, so I caused the regression 😁 somewhere.
As it turned out my Sin "fix" was the problem.

To explain a bit more, the extension it uses is EXT_shared_texture_palette, which is an opengl extension that did what 3dfx-s early GL_3DFX_set_palette_EXT provided, meant for performance optimization.

So for those that dont know, but are interested.
Instead of having a single image for one texture.
You use 8bit, and use that space, to put multiple textures on one texture, making a texture palette.
You then still have to provide data for what color format it uses, width and whole table size. So you know how to "crop" individual textures out of the palette.

The attachment PaletteGPT.jpg is no longer available

Now usually you get this data with every (per)palette.
But an optimization is that you can have the same format for all palettes, so you just send a global palette data and use it for all textures.
Thats what this extension does, thats why its shared/global texture palette.

But mesa6.4.2 is from 2006, long past 3dfx days, long past anyone carrying for 16bit, I mean gtx8800 was around the corner, no one even considered we can gain fps using 8bit texture palettes and using 16bit rendering 😁
So this use-case isnt handled correctly. Maybe they fixed it in later versions...
But their 32bit fast-path really is well optimized. Even going from mesa6.2 to mesa6.4.2 there are noticeable improvements, that will show in the fps numbers.

I will eventually have to handle this case correctly if I want "full performance" out of it... But for now I just removed the previous "fix".
And made an even dumber one.

if (game == sin) then just use default 32bit path 😁

Its not ideal, could say terrible. But for now its fine, Ill get to it eventually (maybe).
Result, hl:opposing force, 98.8fps!
Sin works the same as before, its just an exception, not a driver-wide "fix" now.

Reply 117 of 129, by sdz

User metadata
Rank Oldbie
Rank
Oldbie

Awesome work you're doing!

Reply 118 of 129, by Putas

User metadata
Rank Oldbie
Rank
Oldbie

Texture palette is only about the color lookup, multiple textures in one resource is another kind of optimization that does not even need to be for a 3d renderer.

Reply 119 of 129, by Dolenc

User metadata
Rank Member
Rank
Member

Well now I learned something new.