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

> N64 is notoriously tricky to emulate

Huh, I wouldn't have expected that. I don't know much about the specifics of N64 emulation, but I've had N64 emulators running perfectly since the early 2010s. I played mostly the big classics, so I'm unfamiliar with more niche title performance.



The N64 had a fully unified memory architecture, and weird custom silicon that also happened to be a fully programmable GPU kinda device. For decades, all N64 emulation was done by translating calls to that GPU (called the RDP) to openGL or DirectX calls, and that works horribly, but anything else would have had awful performance. Several years ago however, someone decided "Fuck it" and created a fully emulated version of the RDP that you could run, ie feed it real N64 instructions and it spits out pixel values. It was significantly slower than the translation approach, so you had to have like a powerful 8 or more core CPU to run it well.

Some other madlad then took that approach, and ported it to a GPU Shader, because fuck yeah thousands of cores! It actually greatly improved the situation, as you didn't need a super powerful GPU, just a somewhat modern GPU.

That development means devices like the steam deck actually have zero issues running awesome N64 emulation, including allowing for upscaling to much higher rendering resolutions without artifacts because you are literally telling a virtual RDP to do it, and it happily complies.

Before AngryLion and ParaLLEl, we were stuck with basically the same graphics plugins, glitches, and tweaks as the late 90s.

https://www.libretro.com/index.php/category/parallel-n64/ for a more detailed description of how this changed things.


You'd be surprised, even Nintendo doesn't get it perfect themselves. When N64 games were first made available on the Nintendo Switch Online platform, there were several problems with graphical effects and input lag. Here's an MVG video from the time: https://www.youtube.com/watch?v=jSyBMSOfPxg


Haha I remember this launch and how awful it was an thinking about how a bunch of fans have done such a better job. Hell, even Nintendo did a better job for the Wii's Virtual Console.


Yeah it's an interesting pattern. Even the GameCube had decent N64 emulation early in its lifecycle. But the Wii U Virtual Console also had issues with N64 emulation. Specifically it added a dark filter for no reason, which could be removed with homebrew thankfully. You'd think Nintendo would have the best emulation of their own systems on their systems, considering how long people stick around you probably have people who developed for the N64 still there


Homebrew emulators will almost always work better than first-party ones which need to avoid copyleft code, and can be content with a small subset of games being "playable", or "good enough".

Console makers will often hire lead developers of open source emulators to sew something up for them, like what was used for the mario 35 collection (part of galaxy was recompiled too) or the "ps2 classics" software emulator for the ps3.


Many games were very playable with UltraHLE back in 1999, on the hardware of the time (~ Pentium 133 IIRC)


I remember convincing my dad to get a 3dfx voodoo2 because I really wanted to run UltraHLE. That was a seriously impressive emulator


I think part of the issue is that some purists believe anything less than pixel perfect fidelity is unacceptable. I recall reading a report on N64(?) Wii(?) about how the flame flicker in one level of one game was off.


Any Dolphin progress report will be full of these one-off quirks with an exhaustive deep-dive on how the issue was diagnosed and solved.

Setting aside the part about purists finding it unacceptable, I appreciate the tenacity of the devs that find these problems worth solving.


Depends what you're trying to do, but some glitches used in speed runs literally depend on the exact values of pixels on the screen

https://youtu.be/0B095eHBrCg?t=24m40s

Not saying that supporting glitches like that is a hard requirement for these ports though


Inaccurate emulation can also result in stuff like altered physics, invisible objects, stuttering animations, etc. resulting in a different experience from the original.


I had to do several magic flags for video plugins in order to avoid glitches in THPS2 for instance, compared to Zelda or SM64.




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

Search: