Live data from Hacker News

Super Mario 64 for the PS1

github.com

21–30 of 116 posts

Re: Super Mario 64 for the PS1

#21

Earlier quoted context omitted.

For those that prefer pure gameplay to skip through https://youtu.be/kkJWZlAjZp0

This is emulated as I'm sure the other videos are, but the PS1 back in the day had no way of running anything this crisp, so the emulator is `enhancing` it here. It's not an actual representation of what the game would have looked like.

It doesn't really work right on "normal" PS1s yet, at least when it was making the rounds a few weeks ago, so you need either an emulator or modded/dev PS1 with more RAM to prevent crashes and most people won't have the latter https://www.reddit.com/r/psx/comments/1p45hrm/comment/nqjtdp.... Probably shared a few months to early.

But yeah, on a "real" PS1 it would be blockier due to lower res. The main rendering problems should be the same though.

Re: Super Mario 64 for the PS1

#22
post #8

> Tessellation (up to 2x) to reduce issues with large polygons From the videos I've watched there is still insane amounts of affine transformation texture warping, is that because it's not enable or because 2x is not enough? I guess they will need to also redo all level geometry to be more amenable to tesselation... I guess that's why many ps1 games had blocky looking levels.

I see a lot of texture warp like you mentioned but I'm not seeing the geometry popping (wobble?) that was a hallmark of ps1 games, I'm guessing they're using soft floating point for the geometry and doing perspective-correct texture mapping would just be too expensive for decent frame rate

The README mentions that it uses both (new) fixed point as well as soft floating point.

Unless I'm mistaken, the PS1 just plain doesn't support perspective correction. All texture mapping is done in hardware using a very not-programmable GPU; there'd be no way to do perspective correction, decent frame rate or not, outside of software rendering the whole thing (which would be beyond intractable).

The common workaround for this was, as suggested, tessellation - smaller polygons are going to suffer less from affine textures. Of course that does up your poly count.

Re: Super Mario 64 for the PS1

#23
post #8

> Tessellation (up to 2x) to reduce issues with large polygons From the videos I've watched there is still insane amounts of affine transformation texture warping, is that because it's not enable or because 2x is not enough? I guess they will need to also redo all level geometry to be more amenable to tesselation... I guess that's why many ps1 games had blocky looking levels.

right now there is basically no preprocessing of level polygons and they are copied as is, but when it is implemented, the largest polygons will be split to solve this

this is also necessary to fix the occasional stretched textures, as texture coordinates are also limited to a smaller range per polygon on PS1

Re: Super Mario 64 for the PS1

#24

If you like this port, you may also enjoy this ground-up effort to clone SM64 on the GBA https://youtu.be/nS5rj80L-pk

Given that this is HN, I'm contractually obligated to mention that the GBA port is written in Rust: https://www.digitec.ch/en/page/the-impossible-port-super-mar...

Re: Super Mario 64 for the PS1

#25

If you like this port, you may also enjoy this ground-up effort to clone SM64 on the GBA https://youtu.be/nS5rj80L-pk

While this is cool, it is really hard to look at for me.

Still bravo! I know getting it working and complete is the real goal and it is commendable.

Re: Super Mario 64 for the PS1

#26
post #8

> Tessellation (up to 2x) to reduce issues with large polygons From the videos I've watched there is still insane amounts of affine transformation texture warping, is that because it's not enable or because 2x is not enough? I guess they will need to also redo all level geometry to be more amenable to tesselation... I guess that's why many ps1 games had blocky looking levels.

I see a lot of texture warp like you mentioned but I'm not seeing the geometry popping (wobble?) that was a hallmark of ps1 games, I'm guessing they're using soft floating point for the geometry and doing perspective-correct texture mapping would just be too expensive for decent frame rate

The PS1's GPU does not support perspective correction at all; it doesn't even receive homogeneous 3D vertex coordinates, instead operating entirely in 2D screen space and leaving both 3D transformations and Z-sorting to the CPU [1]. While it is possible to perform perspective correct rendering in software, doing so in practice is extremely slow and the few games that pull it off are only able to do so by optimizing for a special case (see for instance the PS1 version of Doom rendering perspective correct walls by abusing polygons as "textured lines" [2]).

[1]: https://github.com/spicyjpeg/ps1-bare-metal/blob/main/src/08... - bit of a shameless plug, but notice how the Z coordinates are never sent to the GPU in this example.

[2]: https://fabiensanglard.net/doom_psx/index.html

Re: Super Mario 64 for the PS1

#27
post #20
post #10

Earlier quoted context omitted.

The distorted textures and weird triangle clipping issues are exactly what you'd expect from an unoptimized port to a platform that doesn't support perspective correct texturing or depth testing.

That was an issue in tons of PSX games.

yeah this is the distinctive ps1 look I think all games look like this, at least polygonal games

Re: Super Mario 64 for the PS1

#28

Earlier quoted context omitted.

here's another video that showed good gameplay shots that I happened to see last night. https://www.youtube.com/watch?v=kscCFfXecTI

Its incredible to how compltely unwatchable modern youtube norms are, to me at least. I feel like youtubers now aim almost exclusively for the 12-18 demographic. I mean, this person is doing some kind of character or affectation instead of using a normal voice. Everything is some kind of grift or character or PR or persona now it seems. I understand they do this to get viewers, but its just depressing how much more c…

> I just saw techtips Linus interview Linus Torvalds and the constant manboying and bad jokes was just embarrassing and badly hurt the interview.

If you've been watching LTT for any amount of time, it wouldn't be surprising that that's just LTT Linus' nervous awkward style, he's just a person. The jokes can be cringe as hell, but I thought the video was great, I don't think most nerds would be any different in front of a camera.

Re: Super Mario 64 for the PS1

#29
post #8

> Tessellation (up to 2x) to reduce issues with large polygons From the videos I've watched there is still insane amounts of affine transformation texture warping, is that because it's not enable or because 2x is not enough? I guess they will need to also redo all level geometry to be more amenable to tesselation... I guess that's why many ps1 games had blocky looking levels.

I see a lot of texture warp like you mentioned but I'm not seeing the geometry popping (wobble?) that was a hallmark of ps1 games, I'm guessing they're using soft floating point for the geometry and doing perspective-correct texture mapping would just be too expensive for decent frame rate

it's not possible to have either subpixel vertex precision or perspective correct mapping with the PS1 GPU, as it only takes 2D whole-pixel coordinates for triangle vertices. (contrary to popular belief, N64 also uses exclusively fixed point for graphics btw, it just has subpixel units.) better tessellation can mitigate the perspective issues by a lot, but the vertex snapping is unsolvable, and it is indeed present here. look closer and you might see it.

Re: Super Mario 64 for the PS1

#30

If you like this port, you may also enjoy this ground-up effort to clone SM64 on the GBA https://youtu.be/nS5rj80L-pk

While this is cool, it is really hard to look at for me. Still bravo! I know getting it working and complete is the real goal and it is commendable.

> it is really hard to look at for me.

What were you expecting?

Post reply on HN