VOGONS


Reply 20 of 38, by Scali

User metadata
Rank l33t
Rank
l33t
mothergoose729 wrote:

Is the documentation for say, 3dfx hardware, as descriptive as intel processors?

Not really.
The inner workings of GPUs are closely guarded trade secrets, and often fall under patents anyway, so you can't use it unless you pay huge license fees.
Where you program a CPU directly in its native machine code, GPUs are hidden behind an API/driver layer.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 21 of 38, by appiah4

User metadata
Rank l33t++
Rank
l33t++

I think we are already in a place where things like a simple Voodoo 1 card should be easily recreated using FPGAs.. I mean if DOSBOX branches and PCem can do it in software.. *shrug* It wouldn't be cost effective probably, but once they are rare enough it will happen for sure.

Retronautics: A digital gallery of my retro computers, hardware and projects.

Reply 22 of 38, by root42

User metadata
Rank Oldbie
Rank
Oldbie
Scali wrote:
Not really. The inner workings of GPUs are closely guarded trade secrets, and often fall under patents anyway, so you can't use […]
Show full quote
mothergoose729 wrote:

Is the documentation for say, 3dfx hardware, as descriptive as intel processors?

Not really.
The inner workings of GPUs are closely guarded trade secrets, and often fall under patents anyway, so you can't use it unless you pay huge license fees.
Where you program a CPU directly in its native machine code, GPUs are hidden behind an API/driver layer.

The SST1 Voodoo patents should be free to use by now. After all this is a card from 1995 originally. However reverse engineering it will be a bit harder than e.g. reverse engineering the OPL2 or 3, which was already done.

IIRC 3Dfx was bought up by nvidia, so getting them to release VDHL or any other spec is probably out of the question.

YouTube and Bonus
80386DX@25 MHz, 8 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & BlasterBoard, PC MIDI Card + SC55 + MT32, XT CF Lite, OSSC

Reply 23 of 38, by spiroyster

User metadata
Rank Oldbie
Rank
Oldbie

It's quite well understood what 3D pipelines do and how they function. Pretty sure the 3dfx chip is nothing more than a rasteriser? Geometry setup was done on CPU iirc?

Personally I'm not sure there is much point in replica GPU's or accelrators like 3dfx.... some more exotic accelarators (like TIGA, PGC, SGL, RRedline etc), maybe? Most exotic extnensions and 'feel' can be achieved through wrappers and shaders. The only benefit of recreating old 3D hardware would be to use the old drivers on the hardware.... and for that the hardware would have to be a pretty much 1:1 reproduction I would have thought...

With audio it's a bit different and there can be a drastic difference in the quality and permutation of components used combined with the fact that applications were closer to the metal with older sound/VGA hardware... with 3D accelrators, the only thing that would give much of a difference would be the RAMDAC (and maybe various box filters used etc) to produce that original look/feel. Other than speed and features, both of which can be capped/implented via wrappers and current API's, there isn't much that is unique enough to warrant a reproduction imo. Various VGA cards on differing connectors is certainly a interesting project. Putting a 3dfx on PCIe or something like ISA is just a bit pointless imo.

Maybe a Verite with a badass MIPS or something, and more sophisticated/naked drivers that actually allow user bespoke microcode giving it true flexible GPU functionality... that I would buy!... but not for any reason other than funzzies.

If anyone wanted to make their own 3D hardware... the PCB design and fab would just be a small part of it. You would need to write drivers, and various API implementations (like GL ICD etc) potentially complex ones. A lot of knowedge and effort required on both the hardware and software side.

Reply 24 of 38, by RoberMC

User metadata
Rank Newbie
Rank
Newbie

There is nothing preventing something like a Voodoo 1 FPGA recreation, except interest and costs. No problem in reverse engineering it also by the usual ways of decapping + microscope + trial and error for that purpose.

Today a Voodoo 1 is cheaper than a FPGA replica would be, maybe in some time when bigger and faster FPGAs get cheaper and the Voodoos get more expensive...

Reply 25 of 38, by The Serpent Rider

User metadata
Rank l33t
Rank
l33t

It's not that valuable to replicate. Glide API can be adequately emulated/wrapped even on really old 3D hardware and I doubt most people miss dithered and blurry IQ of early 3dfx cards.

Get up, come on get down with the sickness
Open up your hate, and let it flow into me

Reply 26 of 38, by RoberMC

User metadata
Rank Newbie
Rank
Newbie
The Serpent Rider wrote:

It's not that valuable to replicate. Glide API can be adequately emulated/wrapped even on really old 3D hardware and I doubt most people miss dithered and blurry IQ of early 3dfx cards.

People is spending big money on old Voodoo cards, and building Win98 rigs just to enjoy the old classic feel of authentic Dithered 16-Bit color 3D graphics at low resolutions, amongst other things, and you are saying it is pointless because of Glide wrappers/emulators. Well i guess the same could be said about DOS Games, arcade boards, retro consoles... I suppose we could just close this forum entirely and put a link to the emulators subforums instead. 🤣

Reply 27 of 38, by The Serpent Rider

User metadata
Rank l33t
Rank
l33t

People is spending big money on old Voodoo cards

And the most expensive* and sought after cards are Voodoo 4 and 5, which can do next things:

1. Forced 32-bit color in Glide aps.
2. Full scene anti-aliasing.
3. Better mipmapping and filtering.
4. Crisp VGA image quality and even optional DVI.

So in many ways they're already work similar to an emulator.

Well i guess the same could be said about DOS Games, arcade boards, retro consoles...

Most people do not collect arcade boards. DOS emulation is still not ideal (especially sound), as well as emulation of various consoles. So there are still valid reasons to use original software and hardware outside of "muh authentics".
Compared to these examples, Glide emulation is on very good level right now and even win9x friendly.

*As far as it goes for consumer grade cards anyway.

Get up, come on get down with the sickness
Open up your hate, and let it flow into me

Reply 28 of 38, by weldum

User metadata
Rank Member
Rank
Member

i would rather make a 2d/3d accelerator that supports everything natively
rredline
glide
metal
ati cif
sgl
opengl and directx
and so on...
to me that would be far more interesting from the retrocomputing side of things

Ohh, the humanity 😢
386SX 25-C3 800-P3 900-Atom 1.6-C-D 2.13-P4 2.26-P4HT 3.0-P-DC 1.6-AFX 2.6-FX 3.3

Reply 29 of 38, by infiniteclouds

User metadata
Rank Oldbie
Rank
Oldbie
weldum wrote:
i would rather make a 2d/3d accelerator that supports everything natively rredline glide metal ati cif sgl opengl and directx an […]
Show full quote

i would rather make a 2d/3d accelerator that supports everything natively
rredline
glide
metal
ati cif
sgl
opengl and directx
and so on...
to me that would be far more interesting from the retrocomputing side of things

Give it.

Reply 30 of 38, by data9791

User metadata
Rank Newbie
Rank
Newbie
weldum wrote:
i would rather make a 2d/3d accelerator that supports everything natively rredline glide metal ati cif sgl opengl and directx an […]
Show full quote

i would rather make a 2d/3d accelerator that supports everything natively
rredline
glide
metal
ati cif
sgl
opengl and directx
and so on...
to me that would be far more interesting from the retrocomputing side of things

Yes. This is what I want more than anything. And it would be great done on a modern process so it's as powerful enough to max settings everything up to 1600x1200 from the 20th era of PC gaming.

Reply 31 of 38, by junglemontana

User metadata
Rank Newbie
Rank
Newbie
appiah4 wrote:

I think we are already in a place where things like a simple Voodoo 1 card should be easily recreated using FPGAs.. I mean if DOSBOX branches and PCem can do it in software.. *shrug* It wouldn't be cost effective probably, but once they are rare enough it will happen for sure.

But are the software/API specifications (that we already have) enough to create a drop-in replacement for an actual Voodoo graphics card that would be compatible with the original drivers and libraries?

Creating a Voodoo-like card that can do glide and stuff might be a little easier but then you would also have to write your own drivers?

Reply 33 of 38, by RoberMC

User metadata
Rank Newbie
Rank
Newbie
The Serpent Rider wrote:
And the most expensive* and sought after cards are Voodoo 4 and 5, which can do next things: […]
Show full quote

People is spending big money on old Voodoo cards

And the most expensive* and sought after cards are Voodoo 4 and 5, which can do next things:

1. Forced 32-bit color in Glide aps.
2. Full scene anti-aliasing.
3. Better mipmapping and filtering.
4. Crisp VGA image quality and even optional DVI.

So in many ways they're already work similar to an emulator.

Well i guess the same could be said about DOS Games, arcade boards, retro consoles...

Most people do not collect arcade boards. DOS emulation is still not ideal (especially sound), as well as emulation of various consoles. So there are still valid reasons to use original software and hardware outside of "muh authentics".
Compared to these examples, Glide emulation is on very good level right now and even win9x friendly.

*As far as it goes for consumer grade cards anyway.

Voodoo 4-5 are more expensive because they can be run exactly as if they were Voodoo 1-3 (Glide, 16-bit, etc), but faster, are more rare, and the last of the Voodoos. Not because they play games with some GeForce features but worst. Nobody buys them to play games with the highest quality because there are cards much cheaper that can do it much better and much faster.

I actually own a Voodoo 2, Voodoo 3, and Voodoo 5. The only one i use in a system is the Voodoo 3 to play Glide games because of this reasons. The other two are just in my collection and i love to have them.

I do collect arcade boards, and actually there are much more movement on arcade boards than in retro-PC, also there are a lot of FPGA recreations of many arcade games. Just look outside of Vogons and behold 😊

In my opinion Dos-emulation is very good, Dosbox SBPro emulation is awesome, and PCem sounds wonderfully. There are so many creative SB variants that you could consider these emulator's sound just as another variant, they sound about the same as a SB, but not exactly the same, just like a SB CT1740 to a SB CT2950. Glide wrappers and emulators are also in good shape, buy anyway that is not the point here as playing the games in its original hardware, or using a retro computer as it came out of the factory is a very different experience that has nothing to do with emulation in many ways. Only FPGA recreation is so close you cannot tell the difference in practical usage.

I would not play, for example, Need For Speed II SE with a Glide wrapper in a LCD screen on my Ryzen 5, and i tried, it looks horrendous to me and the feeling is just not right. I prefer turning on my Voodoo 3 powered Pentium III, and enjoy the game in my 22" Lacie ElectronBlue IV CRT. But i respect people playing with wrappers or emulators, i do it for some systems that has less interest or no nostalgia component to me.

People would pay a pretty penny for a Voodoo card fpga recreation, while i think almost nobody here would pay for a Glide Wrapper. That must be for something 😉

junglemontana wrote:

But are the software/API specifications (that we already have) enough to create a drop-in replacement for an actual Voodoo graphics card that would be compatible with the original drivers and libraries?

Creating a Voodoo-like card that can do glide and stuff might be a little easier but then you would also have to write your own drivers?

An FPGA Voodoo recreation would just be a drop-in replacement. There is no need to make custom or special drivers for it, the existing drivers would just work. The only software side of the card is the BIOS, i do not think it can be just bundled with the card in a flash memory, for legal reasons, but an FPGA recreation might have an SD card slot so you can put your own bios on it.

Cheers!

Reply 34 of 38, by FAMICOMASTER

User metadata
Rank Member
Rank
Member

Saw someone had mentioned that a PGC replica might be possible... Would absolutely love to see this. PGC with a standard VGA video port would be an amazing thing to have, no matter how useless it might have been. I would definitely buy a kit to have one.

Reply 35 of 38, by Scali

User metadata
Rank l33t
Rank
l33t
RoberMC wrote:

There is nothing preventing something like a Voodoo 1 FPGA recreation, except interest and costs. No problem in reverse engineering it also by the usual ways of decapping + microscope + trial and error for that purpose.

The only thing preventing it is complexity:
Even an early accelerator chip like the VooDoo 1 is orders of magnitude more complex than the reverse engineering projects done so far on chips like the OPL2 and OPL3.
The chips are made on far more modern manufacturing processes, so you require more advanced microscopes and other equipment. And it will be far more time-consuming. Not to mention that the operation itself is inherently more complex than something like FM synthesis. So you will need a fair share of background knowledge in low-level graphics circuitry to fully be able to 'read' the chip and derive a working circuit.

Not impossible, but it's certainly not like "People have successfully decapped and reverse-engineered some low-end 70s chips, so they can do this too".

I think the main argument against it is that it is more time-consuming and error-prone than just designing your own accelerator circuit from scratch (I have written various software rasterizers over the years, and could assist in creating such a routine in FPGA form). And because accelerators, unlike sound chips and the like, always go through some level of abstraction provided by an API, there really is no need to go down to chip-level. You merely have to go down to command-level.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 36 of 38, by FAMICOMASTER

User metadata
Rank Member
Rank
Member

I would love to see a homebrew 3D accelerator, GLiDE or DirectX / OpenGL would be amazing to me.

I was impressed to see someone had partially designed a replica of an EMS board, let alone anything close to a video card from scratch!

If we could get one that would be ISA compatible and not need a pass thru (my biggest problem with early 3Dfx cards), you'd have at least one sale for a board.

Reply 37 of 38, by junglemontana

User metadata
Rank Newbie
Rank
Newbie
Scali wrote:
The only thing preventing it is complexity: Even an early accelerator chip like the VooDoo 1 is orders of magnitude more complex […]
Show full quote
RoberMC wrote:

There is nothing preventing something like a Voodoo 1 FPGA recreation, except interest and costs. No problem in reverse engineering it also by the usual ways of decapping + microscope + trial and error for that purpose.

The only thing preventing it is complexity:
Even an early accelerator chip like the VooDoo 1 is orders of magnitude more complex than the reverse engineering projects done so far on chips like the OPL2 and OPL3.
The chips are made on far more modern manufacturing processes, so you require more advanced microscopes and other equipment. And it will be far more time-consuming. Not to mention that the operation itself is inherently more complex than something like FM synthesis. So you will need a fair share of background knowledge in low-level graphics circuitry to fully be able to 'read' the chip and derive a working circuit.

Not impossible, but it's certainly not like "People have successfully decapped and reverse-engineered some low-end 70s chips, so they can do this too".

I think the main argument against it is that it is more time-consuming and error-prone than just designing your own accelerator circuit from scratch (I have written various software rasterizers over the years, and could assist in creating such a routine in FPGA form). And because accelerators, unlike sound chips and the like, always go through some level of abstraction provided by an API, there really is no need to go down to chip-level. You merely have to go down to command-level.

How much reverse engineering is even needed when we have the documentation/specifications that were released? If the goal is to create a drop-in replacement for a Voodoo card, I mean.

Reply 38 of 38, by Scali

User metadata
Rank l33t
Rank
l33t
junglemontana wrote:

How much reverse engineering is even needed when we have the documentation/specifications that were released? If the goal is to create a drop-in replacement for a Voodoo card, I mean.

It all depends on how accurate you want it.
The inner details of the rasterizing/shading/texturing process are generally not documented/specified, and are often guarded as trade secrets (or are patented so you can't use them without licensing).

If you look at OPL2/OPL3 as examples... The first implementations would basically 'guess' how the internals of the chip worked, based on the documentation and specification. This resulted in working sound emulation, but there were corner-cases that didn't work, and it didn't sound 100% the same.
This led to people eventually decapping real chips and reverse-engineering them. This allowed them to extract actual tables from ROM and such. And these tables would turn out to be slightly different than the implementations based on formulas from the specs. Eventually the reverse-engineering led to more accurate emulation, which is now more or less 100% equal.
You wouldn't actually need to recap the chip and reverse the circuit though. I just exhaustively tested all possible inputs and outputs and captured the behaviour in a single function.

So, it depends on what you want. If you want say Glide-wrapper level compatibility, that's easy to do with no reverse engineering at all.
You just create your own graphics accelerator and interface it with the Glide API. Like a real Glide-wrapper, it won't render 100% accurately, because the rendering depends on the actual card that the wrapper is using.

If you want it 100% accurate, you could start from there, but then you'd have to use reverse-engineering to find all the corner-cases where the rendering may be just a bit off here and there.

For example, I recall that the alphablending circuit on the Radeon 9500-9800 series had an off-by-one error, in some cases. This led to repeated blending getting darker and darker.
If you would just use any other DX9-compatible card, they'd be 'compatible' with the same software, but the image is not 100% equal.

Personally I think that 100% accuracy would probably not be such a big requirement for most people. Just having an ISA or VLB card that you can stick in your old machine and that allows you to run games with 3d acceleration is probably good enough.
That would be the first 80% that is the easy part 😀
The last 20% would be to fix all the corner-cases to make it render 100% the same as a VooDoo 1 (and ideally also cycle-exact to the real thing). But that is less practical, and more of a purist thing,

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/