5 ms·
Palette lighting tricks on the Nintendo 64
- typeofhuman 1y agoIt blows my mind how genius these game engineers were. They dealt with so many limitations and created such imaginative and brilliant solutions.
- Dwedit 1y agoThis is new stuff, not stuff done during the reign of the N64.
- bob1029 1y agoOnly recently did we figure out how to make Mario64 run at 30fps. https://news.ycombinator.com/item?id=31075622 https://news.ycombinator.com/item?id=31075622
- corysama 1y agoAround the end of the PS2’s lifetime, some engine dev friends of mine figure out to do palletized spherical harmonic lighting on the PS2. That was pretty straightforward. What was tricky was a separate technique to get real cubemaps working on the PS2. Unfortunately, these came too late to actually ship in any PS2 games. The SH trick might have been used in the GameCube game “The Conduit”. Same team.
- OCASMv2 1y ago> What was tricky was a separate technique to get real cubemaps working on the PS2. Any details on that?
- corysama 1y agoIf you lay out a cubemap as a 2d texture that looks literally like https://www.turais.de/content/images/size/w1000/2021/05/StandardCubeMap-2.jpg https://www.turais.de/content/images/size/w1000/2021/05/Stan... it's not hard, given the VU1-based triangle processing (like proto-mesh-shaders 25 years ago), to set the UVs of triangles independently to use the correct square even in the case of dynamic reflections. This doesn't do per-pixel spherical UV normalization. But, with a dense enough mesh, a linear approximation looks good enough. Except... The triangle UVs will often cross over between multiple squares. With the above texture, it will cross over into the white area and make the white visible on the mesh. So, you fill the white area with a duplicate of the texels from the square that is adjacent on the cube. That won't work for huge triangles that span more than 1.5 squares. But, it's good enough given an appropriate mesh. Probably would have been better to just use a lat-long projection texture like https://www.turais.de/content/images/size/w1600/2021/05/spruit_sunrise_4k_8bit_panorama.jpeg https://www.turais.de/content/images/size/w1600/2021/05/spru... Or, maybe store the cubemap as independent squares and subdivide any triangles that cross square boundaries.
- OCASMv2 1y agoInteresting, thanks!
- msk-lywenn 1y agoI always thought triace had shipped sh lighting on ps2 but maybe it was just a demo? http://research.tri-ace.com/Data/Practical%20Implementation%20of%20SH%20Lighting%20and%20HDR%20Rendering%20Full-Length.ppt http://research.tri-ace.com/Data/Practical%20Implementation%...
- corysama 1y agoThey were doing per-vertex SH. That was a much more practical approach :)
- 90s_dev 1y agoLimitations demand and produce extraordinary creativity. That's the secret behind pico8 and Animal Well and so many amazing games. I wish I didn't think of a significantly better architecture for my 2d-pixel-art-game-maker-maker this weekend. Now it'll be another month before I can release it :(
- 01HNNWZ0MV43FF 1y agoLimitations, and, popularity
- 90s_dev 1y agoPopularity comes from utility. Utility comes from the right trade offs. Limitations demand careful trade offs.
- 01HNNWZ0MV43FF 1y agoThe tradeoff was that the N64 was cheap and had Pokemon on it
- Sharlin 1y agoI'm sure they were but, as noted, this specifically is 2025 stuff, and demoscene, not gamedev.
- accrual 1y agoIt's very impressive to see "realistic" graphics on the N64. The demo reminds me of "ICO" for the PS2. I've always wondered if it would be possible to create an SDK to abstract the N64 graphics hardware and expose some modern primitives, lighting, shading, tools to bake lighting as this demo does, etc. The N64 has some pretty unique hardware for its generation, more details on the hardware are here on Copetti.org: https://www.copetti.org/writings/consoles/nintendo-64/ https://www.copetti.org/writings/consoles/nintendo-64/
- heraldgeezer 1y agoShadow of the Colossus... https://www.youtube.com/watch?v=xMKtYM8AzC8 https://www.youtube.com/watch?v=xMKtYM8AzC8
- rightbyte 1y agoThat is very impressive for a PS2 game.
- HideousKojima 1y agoAnd a sequel (prequel?) to ICO, from the same devs
- somat 1y agoNote that the N64 was designed by SGI, And seeing as how influential SGI was for 3d graphics, I sort of assume the reverse, that the n64 probably has the most standard hardware of it's generation. I would be vaguely surprised if there was not an opengl library for it. However there is a large caveat, 1. you have to think of the system as a graphics card with a cpu bolted on. and 2. the graphics system is directly exposed. Graphics chip architecture ends up being a ugly hateful incompatible mess, and as such the vendors of said accelerators generally tend to avoid publishing reference documents for them, preferring to publish intermediate API's instead. things like OpenGL, DirectX, CUDA, Vulcan, mainly so that under the hood they can keep them an incompatible mess(if you never publish a reference, you never have to have hardware backwards compatibility, the up side is they can create novel designs, the down side is no one can use them directly) so when you do get direct access to them, as in that generation of game console, you sort of instinctively recoil in horror. footnote on graphics influence: OpenGL came out of SGI and nvidia was founded by ex SGI engineers.
- reidrac 1y agoI love how the post, about N64 graphic tricks, ends with the question: "Is this the future?"
- echelon 1y agoThe amount of indie N64 development happening right now is wild. The platform is flourishing. The system has seen a dozen of its most popular games decompiled [1] into readable source files, which enables easy porting to PC without an emulator. It also enables a ton of mods to be written, many of which will run on the original hardware. There are numerous Zelda fan remakes [2]. Complete games with new dungeons and storylines. The Mario 64 scene is on fire. Kaze has deeply optimized the game [3], and is building his own engine and sequels. If you like technical deep dives into retro tech, his channel is literally golden. Folks are making crazy demos for the platform, such as Portal [4], which unfortunately brought Valve's lawyers' attention. Lost games, such as Rare's Dinosaur Planet [5], have leaked, been brought up to near production ready status, been decompiled, and have seen their own indie resurgence. [1] https://wiki.deco.mp/index.php/N64 https://wiki.deco.mp/index.php/N64 [2] https://m.youtube.com/watch?v=bZl8xKDUryI https://m.youtube.com/watch?v=bZl8xKDUryI [3] https://m.youtube.com/channel/UCuvSqzfO_LV_QzHdmEj84SQ https://m.youtube.com/channel/UCuvSqzfO_LV_QzHdmEj84SQ The whole channel is gold. He has dozens of deep dives like this: https://m.youtube.com/watch?v=DdXLpoNLywg https://m.youtube.com/watch?v=DdXLpoNLywg And his game and engine are beautiful: https://youtu.be/Drame-4ufso https://youtu.be/Drame-4ufso [4] https://m.youtube.com/watch?v=yXzoZ2AfWwg https://m.youtube.com/watch?v=yXzoZ2AfWwg [5] https://m.youtube.com/watch?v=s0QSiPRmWaI https://m.youtube.com/watch?v=s0QSiPRmWaI
- heraldgeezer 1y agoI miss the PS1 and PS2 optimization. Most of them look amazing uprezzed to 1080p or 4k or more with emulation. Halo 2 era graphics in 4k is all we need imo. Yes that one is xbox but try Halo MCC Halo 2 in classic graphics. Still looks incredible. GT3 heatwave summarizes it well. "I showed a demo of GT3 that showed the Seattle course at sunset with the heat rising off the ground and shimmering. You can’t re-create that heat haze effect on the PS3 because the read-modify-write just isn’t as fast as when we were using the PS2. There are things like that." https://old.reddit.com/r/ps2/comments/1cktw88/gran_turismos_creator_kazunori_yamauchi_you_cant/ https://old.reddit.com/r/ps2/comments/1cktw88/gran_turismos_... https://youtu.be/ybi9SdroCTA?t=4103 https://youtu.be/ybi9SdroCTA?t=4103 It's not trying to emulate a real heatwave as new engines like UE5 does, that just tanks fps. It does "tricks" to do it instead. And honestly, looking at RTX tanking frame rates, I would rather have these cheap tricks. A 299MHz MIPS runs this: Shadow of the Colossus... https://www.youtube.com/watch?v=xMKtYM8AzC8 https://www.youtube.com/watch?v=xMKtYM8AzC8 GoW2 https://youtu.be/IpKLwIIdvuk?si=TjifKmlYsUuvhk0F&t=970 https://youtu.be/IpKLwIIdvuk?si=TjifKmlYsUuvhk0F&t=970 FFXII https://youtu.be/NytHoYOs_4M?si=jE1Fxy40khEvV6Bn&t=51 https://youtu.be/NytHoYOs_4M?si=jE1Fxy40khEvV6Bn&t=51 GT4 https://www.youtube.com/watch?v=F6lZIxk_h9g https://www.youtube.com/watch?v=F6lZIxk_h9g (THE BOOTSCREEN crying) Black (Renderware was a crazy engine) https://youtu.be/bZBjcwyq7fQ?si=Pev5ifpksJm4X6Oi&t=356 https://youtu.be/bZBjcwyq7fQ?si=Pev5ifpksJm4X6Oi&t=356 Valkyrie profile 2 https://youtu.be/9ScjO4NuUtA?si=Z29cR-hLsT2pnP2I&t=38 https://youtu.be/9ScjO4NuUtA?si=Z29cR-hLsT2pnP2I&t=38 Rouge Galaxy https://youtu.be/iR1evzyl-7Q?si=fldm3-NnuFxOITMn&t=624 https://youtu.be/iR1evzyl-7Q?si=fldm3-NnuFxOITMn&t=624 Burnout 3 https://www.youtube.com/watch?v=_r5r0nE1sA4 https://www.youtube.com/watch?v=_r5r0nE1sA4 Jak and Daxter, Ratchet. For GC - RE4, Metroid, The Zeldas... ofc. Looks crazy good. I kneel.
- anthk 1y agoWith the PS2 you are right. With the PSX... so-so. Yes, it could match maybe a Pentium 90 almost 100, but a MMX pentium with 3DFX would stomp it and be on par of the N64 if not better. MIPS CPU's are amazing, they can do wonders at low cicles. Just look at the PSP, or the SGI Irix. Also, the PS2 "GPU" is not the same as the R4k CPU. BTW, on the PS2... the Deus Ex port sucked balls against the PC port, it couldn't fully handle the Unreal engine. Yes, the PS2 did crazy FX, but with really small levels for the mentioned port; bear in mind DX was almost 'open word' for a huge chunk of the game.
- dejobaan 1y agoWhile I'm really happy we have faster systems now, there was something fun about about having to subvert constraints in games, and so satisfying and lovely when you did it right. HN folks are probably familiar with raster interrupts (https://en.wikipedia.org/wiki/Raster_interrupt https://en.wikipedia.org/wiki/Raster_interrupt) and "racing the beam." I always associated this with the Atari 800. You weren't "supposed" to be able to do stuff like https://youtu.be/GuHqw_3A-vo?t=33 https://youtu.be/GuHqw_3A-vo?t=33, but Display List Interrupts made that possible. What I didn't know until recently was how much Atari 2600's games owed to this kinda of craziness: https://www.youtube.com/watch?v=sJFnWZH5FXc https://www.youtube.com/watch?v=sJFnWZH5FXc It's stuff like this that makes me think that if hardware stopped advancing, we'd still be able to figure out more and more interesting stuff for decades!
- paulryanrogers 1y agoDemo scene and work like this is impressive. Yet I can't help but notice that it tends toward simpler more empty scenes. The kind of stuff one might expect in the background or as only a part of a game mechanic. It's as if there's just not enough resources to really make complete experiences with most of the techniques. What I find more impressive are efforts like FastDoom or the various Mario-64 optimization projects which squeeze significantly better performance out of old hardware. Sometimes even while adding content and features. Maybe there is a connection between demo sceners and more comprehensive efforts?
- kookamamie 1y agoWe did similar palette-based lighting techniques in our shareware game in the 90s. Basically, arranging the VGA 256-color palette so that each color we supported would have a gradient of N shades of the color. Illumination within each color could then be easily altered by adding or subtracting color indices.