Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What would you use this for?


Retro gaming is the common use case. GLIDE is something people like to run natively and 3Dfx ruled the roost long enough for a ton of games to be specially tuned to the API.

It's viable enough that clone cards have been built based on the reverse engineering efforts:

https://www.youtube.com/watch?v=UgbVmYn1xZ8


Not sure if you're aware, but the card in that video is the same one in the article.


I think they sold them for about $1500, the original post was made more than a year ago.


> GLIDE is something people like to run natively

I wonder why? Because of delays during emulation?


The GLIDE api was quite different from OpenGL or Direct3D. There’s a lot of examples of games from that era that played well on 3DFx hardware but absolutely sucked on OGL or D3D. I think for example the first Unreal engine and games built off it like Deus Ex.

Obviously hardware has improved so much that you can play a game like Deus Ex on any hardware today and it performs perfectly well. But there are also games that run into problems with high clock rates for unrelated reasons. So for an accurate emulation, you would want a clocked down CPU and 3DFx chip running on a FPGA or something.


Also very famously, Diablo 2 ran amazingly using Glide. I had a Voodoo 5 5500 and didn't lag when the whole screen was filled with mobs, summons, fire, etc. while other people died to lag.


Unreal and Unreal Tournament ran flawless and fast on GeForce 2 MX DDR using DirectX


Most old games are patched and you'll get good GLIDE wrappers everywhere.


For some retro gamers any emulation no matter how perfect is a no go because they don't consider it an authentic recreation of the experience. For some even this reverse engineered clone would be unacceptable.


I understand.

I have a lot of nostalgia for the Playstation 2. That system occupied a lot of late nights during my college and young professional years. My memories of those games are wrapped up in those tumultuous times.

As fond as those memories may be, I just can't play emulations/remasters of those games nowadays. Why not? I'm convinced it's because the loud fan noise of the PS2 is missing without the original system. That fan blast was on before, during, and after every gaming session. It filled the silence when the game paused. It picked up when the game peaked. It was there when I had loud joyful matches of Burnout 3 with friends. And it was there during long lonely nights following a breakup. The PS2 fan's noise pierced my soul.

Nostalgia is a very fickle thing. It's never just the favorite game, or food, or jacket. It's where you were at the time, the smells in the air, the twitches around you, the people you were with, the way you felt.

What is an authentic recreation of an old game?

For one, it might just be running it on the original hardware. It may be hearing some specific electric hum or click before the system starts. It may be the way the buttons on those old controllers felt. And that may be enough.

For others, it may be playing the game with a friend lost to time. Or playing the game in one's childhood bedroom, long since demolished. Or playing the game while eating a special pizza, from a place that's long shuttered.

So if recreating the experience is as simple as getting the old hardware assembled, that sounds relatively reasonable and achievable.

Still, ultimately, I prefer not chasing ghosts. Why cling to the experiences of the past when we can make new experiences today? It's a hard lesson learned. Nostalgia bites me hard.


For some even this reverse engineered clone would be unacceptable.

I could see that if it was a software emulation or e.g. an FPGA reimplementation, but this one is still using the original GPUs so would be comparable to having a modern GPU from Asus or Gigabyte instead of the reference designs from AMD or Nvidia.


Doesn't matter. For some retro enthusiasts only original hardware produced during the era is acceptable.


By what measure? Are they actually performing electrical tests to determine minute clocking anomalies?


It mostly has nothing to do with any technical issues. It is about recapturing a feeling for days gone by and part of being able to recapture the feeling for them is only using period manufactured hardware.


Bitchin fast 3d accelerated gaming, of course.

Interpolated pixels kind of look fine sometimes. NFS2:SE looked most fine. They don't make them like that anymore.


AIUI, Glide cards didn't really do 3d acceleration in anything like a modern sense. They accelerated the rasterization part of the rendering pipeline; they were basically very fast (for the time) 2D triangle renderers.

(Thus, reimplementing this under either OpenGL or Vulkan ought to be reasonably trivial using modern hardware.)


If we're arguing semantics, I feel like these early cards are more fitting to the "3D accelerator" name than the modern ones. They were specialized for accelerating 3D graphics (which, in the end, means pushing triangles into a 2D framebuffer). Modern GPUs are more like general-purpose vector processors that happen to also be good at calculations related to 3D graphics and can (sometimes) render triangles to a framebuffer.


Being 2D rasterizers was arguably true for some cheap early graphics chips like that of the PS1. For Voodoos, there was no point in the pipeline after which rendering is “only 2D” in any relevant sense. At the time, the Z coordinate was passed to the hardware and used e.g. for important things like perspective correct texture lookup, environment maps (fake reflections), and Z buffering — that is right until the very last moment of committing the pixel to memory.


i'd argue that 3d-accelerated graphics from that era is still true 3d acceleration. of course, back then the pipelines were mostly fixed - nothing like programable shaders - but you're passing in 3d-coordinates, generating some matrices to determine the MVP, passing in some textures, and getting most of that "heavy lifting" of getting the pixels on the screen from the API & card.

> they were basically very fast (for the time) 2D triangle renderers.

that's still true of GPUs today :) in fact, with the exception of h264/265 encode/decode, and "AI" - that's all that graphics cards have ever done!


The rendition GPU was a risc processors but alas way to early and underperforming


The point is that the 3D-geometry portion of the pipeline is still done on CPU with these early cards. The API's may have been slightly broader, but the hardware accelerated part was limited to rasterization, i.e. painting 2D triangles.


> rasterization, i.e. painting 2D triangles

As I explained in a sister comment, there's a lot more going on with rasterization, even back then, than "painting 2D triangles" might imply. Yes, only the XY coordinates determine the screen location of a rendered pixel, but the Z coordinate even at that stage has a lot to do with its color (e.g. for perspective-correct texture lookup) and whether it is painted at all (Z buffering).


The triangles are in 3D space. Part of what the cards do is project them into 2D space. See pp. 18-20 of the Glide reference: https://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=18...


It explicitly states that vertices are given as (x, y). Voodoo cards did not do projection in hardware.


The GrVertex structure has z and w components too. But it’s a fair point that the x and y is specified in screen space, not world space. I had forgotten that. But the hardware does depth buffering based on the z component, so it’s still 3D.


Yeah, that's a nice "hack" the hardware offered. You can still shove in the depth after having done the screen projection so you don't need to worry about the order in which you draw the triangles. So maybe 2.5D? :-)


indeed, and i agree - what i'm saying is that even today, the rasterization of triangles is still 2D :) (and necessarily will always be! well, as long as we use 2D displays..)


They also do texture mapping, shading, and z buffering. Those things are still the core of 3D rendering.


GLIDE was low level, it would map to Vulkan perfectly.


I’m sure it can be emulated efficiently enough nowadays, but I don’t think the mapping is very direct: Glide was mostly imperative and synchronous, Vulkan is declarative and explicitly asynchronous. Both are low-level, but for hardware that works very differently.


even 15 years ago, Glide wrappers (Glide to DirectX or OpenGl) did a great job


In terms of API design and usage Glide is far closer to classic 1.x GL.

I guess Glide could be defined as low-level API since it was defined by single vendor's architecture instead of some more abstract machine like GL and other APIs.


I prefer the Voodoo 5 9000: https://youtu.be/_3iHV0NvLPI


Playing Deus Ex, of course.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: