Live data from Hacker News

Show HN: Tiny PS1-like Renderer in 500 lines

github.com

41–47 of 47 posts

Re: Show HN: Tiny PS1-like Renderer in 500 lines

#41
post #6

Linked in the README is the article this is probably based on, which explains the rendering for a PS1 and why it has certain behaviors, it's a great article: https://www.david-colson.com/2021/11/30/ps1-style-renderer.h...

This should be required reading for anyone that trying to emulate the PS1 rendering aesthetic. Too many developers seem to think that PS1 games probably looked worse than how they remember them and try to compensate for their nostalgia (or just want to heighten the aesthetic) by introducing far, far more wobbling and warping than there actually was!

Re: Show HN: Tiny PS1-like Renderer in 500 lines

#42

Love the project and the spirit of it. Brings be back to playing FFT. Question to all C/C++ programmers out there. Why are your variables so terse? I have no idea what td and dt mean and why they are both in the same function. I'm genuinely trying to read your code and have no idea what is happening because there is seemingly a desire by the author to keep variables as short as possible. Why?

Don’t go to ShaderToy. You will find a really cool shader and then be disappointed when the code is incomprehensible because whoever wrote it want used one letter variables (starting alphabetically! So x, y, and x coordinates might not even be “x, y, z” but “o, p, q”).

Re: Show HN: Tiny PS1-like Renderer in 500 lines

#43

Earlier quoted context omitted.

No clue what people use today, but when I worked on a psx game 3D Studio Max was the the main choice, with Lightwave 3D having a lot of fans as well. Doing low poly modeling you basically just live between the edge split, rotate, merge, and vertex move tools, so it's incredibly important they have a low friction UI.

omg what game

It was a never published port of Unreal to Playstation 1.

Interestingly enough the renderer was up and running. It was a lot more limited in triangle count than the PC version, hence a lot of fiddling with models.

In any case, the project fell apart for the usual disorganized management reasons.

Re: Show HN: Tiny PS1-like Renderer in 500 lines

#44
post #26

Earlier quoted context omitted.

I know there’s another reply with videos here. I’m gonna put an explanation in text. The N64 had two things which made things smoother. It had sub-pixel precision for geometry after projection, and it had perspective-correct interpolation. This meant that moving objects looked smooth and didn’t “pop”. Games on the PS1 addressed the interpolation problem by subdividing, but you could sometimes see geometry suddenly mo…

I was also under the impression the PS1 only had integer precision? Would that contribute to the wobbling and popping?

That’s the “subpixel” precision I’m talking about.

Re: Show HN: Tiny PS1-like Renderer in 500 lines

#46

Have PS1 triangular graphics made a retro resurgence yet? Because I'm so down for that.

Yes, very much so. Mostly for horror games, for some reason. https://www.nme.com/features/gaming-features/the-resurgence-... https://hauntedps1.itch.io/demodisc2021

It's a Lovecraftian thing. Abstraction of the horror itself (through primitive illustration) lets your own imagination fill in the blanks.

Re: Show HN: Tiny PS1-like Renderer in 500 lines

#47

Love the project and the spirit of it. Brings be back to playing FFT. Question to all C/C++ programmers out there. Why are your variables so terse? I have no idea what td and dt mean and why they are both in the same function. I'm genuinely trying to read your code and have no idea what is happening because there is seemingly a desire by the author to keep variables as short as possible. Why?

Don’t go to ShaderToy. You will find a really cool shader and then be disappointed when the code is incomprehensible because whoever wrote it want used one letter variables (starting alphabetically! So x, y, and x coordinates might not even be “x, y, z” but “o, p, q”).

That's so legit.. I just spent 3 hr reading code of shader toy last night at 1 am, all I could do was changing color... And it was in a variable named c1
Post reply on HN