It’s strange how some HN submissions fail to get noticed, and a duplicate submission after a few hours (or even next day) gets upvoted and is more visible.
Rewriting wipEout
21–30 of 64 posts
Re: Rewriting wipEout
#22> The PSX devkits came with a library called LIBGPU, which handled the rendering. Since the PSX GPU didn't have a z-buffer, all primitives you wanted to draw (triangles, quads and sprites) needed to be submitted into an “ordering table” or OT for short. This table had (typically) 8192 slots allowing for 8192 different z-levels. The GPU would then rasterize the list back to front. The result would not be perfect (in s…
I'm guessing this explains the PSX-specific artefacts you would see when rotated triangles would "clip" into each other at the seams of models. The ordering would just come from the average Z coord of the plane.
Re: Rewriting wipEout
#23It would be good if this code would could would work with whatever the standard format for texture packs on PS1 emulators is.
Re: Rewriting wipEout
#24I've lately been playing Redout ( Redout: Enhanced Edition ) on the Steam Deck, and it is a quite fun game in the spirit of the old Wipeout game. Consider giving it a go if you are into that sort of speed-over-everything-else racing games!
Re: Rewriting wipEout
#25Re: Rewriting wipEout
#26> The PSX devkits came with a library called LIBGPU, which handled the rendering. Since the PSX GPU didn't have a z-buffer, all primitives you wanted to draw (triangles, quads and sprites) needed to be submitted into an “ordering table” or OT for short. This table had (typically) 8192 slots allowing for 8192 different z-levels. The GPU would then rasterize the list back to front. The result would not be perfect (in s…
So when you're drawing triangles on the PSX, do you basically get the GTE hardware to figure out your coordinates, before putting those into the appropriately indexed packet? I'm guessing this explains the PSX-specific artefacts you would see when rotated triangles would "clip" into each other at the seams of models. The ordering would just come from the average Z coord of the plane.
[1] https://en.wikipedia.org/wiki/Texture_mapping#Affine_texture...
Re: Rewriting wipEout
#27I loved everything about Wipeout, except the racing. The controls where impossible and the difficulty ridiculous. But the music, the art style, the concept and attitude of that game was awesome. I spent many hours playing it on PSX as an early teenager.
Re: Rewriting wipEout
#28Earlier quoted context omitted.
So when you're drawing triangles on the PSX, do you basically get the GTE hardware to figure out your coordinates, before putting those into the appropriately indexed packet? I'm guessing this explains the PSX-specific artefacts you would see when rotated triangles would "clip" into each other at the seams of models. The ordering would just come from the average Z coord of the plane.
You are right: unlike modern platforms with vertex shading capabilities, the geometry pipeline runs entirely on the CPU and GTE. The GPU is a "black box" that operates exclusively in screen space and only gets access to transformed X/Y coordinates, which is also why it cannot calculate the depth of each pixel and use it to apply perspective correction to projected textures [1]. [1] https://en.wikipedia.org/wiki/Textu…
Maybe the coordinate values passed from GTE to GPU are "shadowed" with extra data about the transformation, that is then retrieved further down the pipeline
I suppose there could be multiple approaches
Re: Rewriting wipEout
#29WOW! Just a `git clone`, download and unpack the .zip with the assets (end of the blog post), type `make` and it compiles on Linux without warnings into `wipegame`, run it and it works first time! You need a joypad/joystick, I was surprised that I could plug it in after the game had started and it picked it up, insted of having to restart the game as I remember being the case with other games on Linux years ago.
Re: Rewriting wipEout
#30WOW! Just a `git clone`, download and unpack the .zip with the assets (end of the blog post), type `make` and it compiles on Linux without warnings into `wipegame`, run it and it works first time! You need a joypad/joystick, I was surprised that I could plug it in after the game had started and it picked it up, insted of having to restart the game as I remember being the case with other games on Linux years ago.
what controller did you use? my dualshock 2 with usb adapter is not being picked up surprisingly.
I guess any proper DirectInput joypad would work just the same.