reading of this question brings up 3Dfx Voodoo 1 Emulator in my memories. I always wandered how did it work so good time as any to ask...
My memory is hazy on the details so I might miss remember things anyways this is what I remember:
I saw 3Dfx Emulator v0.2 from ELZ SOFTWARE was MS-DOS utility (single almost 1 MByte executable without any additional files) that had to be started before any 3Dfx SW. It took about 30sec-2min on AMD K5 120MHz PC to start. I always assumed its a TSR and created some kind of LUT tables in memory to speed up stuff. After that MS-DOS 3Dfx capable games could run (not all though) without the HW present.
What was a surprise for me was that the stuff runs fast. Not as fast as the real 3Dfx hw but much faster than usual SW render.
Does anyone know what techniques where used to do this?
How the emulator bypassed missing 3Dfx HW. IIRC on win apps 3Dfx was encapsuled in single
Glide?x.DLL with all
OpenGL 1.0 functions which by exchanging it with OpenGL hooked DLL worked too (however winding rule was inverted sometimes).
But how it was done in MS-DOS (there are no DLL involved in there)?
How it achieve high rendering speed? The quality was not as good as real HW but better than games SW native render.
In case it helps From a quick google search looks like its in here however the link says its blocked for Chrome (if anyone has working link to this please edit it in)...
I just tested it in DOSBox:
First its telling it is building 4x255 tables:
and after serious boost to emulation cycles it do some kind of 8-pass initialization:
after this DOS 3Dfx SW is runable, no temp files are visible anywhere...