The state of N64 emulation
-
Hey, I wanted to collect some experiences users have currently with Nintendo 64 emulation on RetroPie. It's a small rant on my part and I'd really like to find ways with the community to make playing N64 games fun.
N64 is a console I really like and often played with friends or enjoyed the Legend of Zelda ports on Gamecube. For me, it's really hard to replicate this nostalgic feeling with RetroPie because Nintendo 64 emulation quality is currently way behind every other emulator I tried. Every game I tested had some major kind of flaws, every emulator has issues with audio-stuttering or the games would crash - either randomly, while saving an emulator state or when playing a certain scenario.
One notable exception I found was Mario Kart 64, which works well with all the emulators, but most of them have some graphical issues.That's not RetroPie's fault, but as I understand emulating N64 is really hard, because the architecture of the emulators with their plugin system is unusual and in the past developers generally didn't really work closely together to deliver an all-in-one "product" like dolphin or pcsx. Sadly lr-GlupeN64's development, which I had high hopes for has also ceased (understandably!) and leaves us with a choice less.
When I tried to get games working I often referenced the compatibility list found in the docs. Herb_Fargus created a new and well organised list from two rather messy Google spreadsheets which were once open for user input. After trying out the settings in this list with my games I soon realised, that these were either outdated or wrong.
So, let's be positive and figure out some ways we can improve N64 gaming.
Here are some ideas I have:
One way is obviously to provide developers money and information in the form of bug reporting. What's difficult from what I read is that emulation on raspberry pi is only a small subset of the users. So it's important to make our issues heard in a structured way, ideally trough someone who is familiar with the development of mupen64plus/Glide.Another angle to tackle the problem is a new system for documenting rom compatibility. Instead of an open compatibility list, we could make a list only a few people have permission to edit. What's important is, that the settings and compatibility results have to be verified by at least two other members of the community before the list is updated.
This would make a huge difference to new users, because they know instantly which roms are worth trying and which are hopeless. Also date and version number of the software used is needed to judge how current the information is and if needed reevaluate the information. Problems with games could also be separated in speed problems, which are likely to disappear with new and faster hardware (rpi4/asus tinkerbord maybe?) and problems which are clearly related to the emulator (glitchy graphics/buggy gameplay).
Lastly, I think we should prioritize our efforts on titles, which are important to the platform. Nintendo 64 was a console which had great multiplayer games and some outstanding singleplayer titles. So instead of trying to get good settings and bugfixes for every game available, we should focus on the most beloved titles.
Thanks to all the developers and contributors of RetroPie, you have already made and awesome job and I hope we can make it together even more awesome!
-
I've basically given up on N64 emulation on the Pi for now because of compatibility and performance issues. The emulator is in need of optimization and additionally the Pi needs a more powerful GPU (which hopefully we see with the Pi 4). Some games can be finagled into working well, but when I have to make custom settings for each ROM that just ruins the experience for me. As a result, if I get a hankering from some n64 emulation I just use a PC. I find Project64 works best myself, though if there is a better one feel free to let me know. Shame Project64 hasn't or can't be ported to RetroPie. The most advanced console I emulate on Pi is the PSX, and that emulator works nearly flawlessly, though it would be nice to have some texture filtering.
-
Nintendo 64 emulation is in a pretty bad state even on PCs. In times when even the Wii U is getting good emulation in a fast pace (with the PS2 and the Wii having near perfect), it's really awkward that the N64 cannot be properly emulated in any platform and specs.
I believe that the problem lies in the way emulators for it are written - based upon plugins and written on top of really, really old code. I believe that it's time for a brand new, accurate, lightweight, portable open source emulator to be created.
-
There's project64. It runs well on PCs, plus it also was updated in January.
-
It's far, far, far from perfect. It heavily relies on plugins and on (very) high level emulation. The updates keep fixing incompatibilities and create new ones.
-
Man, I wish every emulation team was like Dolphin's. Those guys are incredible.
-
@matchaman said in The state of N64 emulation:
Nintendo 64 emulation is in a pretty bad state even on PCs. In times when even the Wii U is getting good emulation in a fast pace (with the PS2 and the Wii having near perfect), it's really awkward that the N64 cannot be properly emulated in any platform and specs.
n64 emulation is way closer to perfect than ps2. angrylion is more or less pixel perfect on a decent pc. GLideN64 is getting large amounts of development and is increasingly accurate even on lower spec/mobile.
I believe that the problem lies in the way emulators for it are written - based upon plugins and written on top of really, really old code. I believe that it's time for a brand new, accurate, lightweight, portable open source emulator to be created.
i think maybe in an ideal world, but most plugins are nearing perfection and seems like a sensible split in terms of the workload/expertise.
n64 emulation is hard
-
While almost perfect in accuracy, Angrylion's plugin frequently stutters on my i7 4770K. It's on the far low-level side and it will "shine" in a few years along with CEN64 once there's enough computing power.
I would rather see Mednafen have a take on N64 emulation. Beetle (as well as PCSX-ReARMed) seems to be well balanced with near-perfect compatibility. Mednafen's guys even managed excellent Saturn emulation on PCs, featuring even more exotic architecture than the N64.
-
@matchaman said in The state of N64 emulation:
While almost perfect in accuracy, Angrylion's plugin frequently stutters on my i7 4770K. It's on the far low-level side and it will "shine" in a few years along with CEN64 once there's enough computing power.
i think that's the reality of where the N64 is positioned in the console timeline. it has 3d accelerated graphics so to emulate it via CPU takes huge computational force (emulating GPU functions via CPU is very inefficient), but to do it via a GPU takes less power but needs fiddly open GL and shader work to emulate ancient graphics hardware via modern graphics APIs and hardware. even something as trivial as texture filtering is done in a baffling way on the n64.
emulating graphical functions on something like the GC or Wii is perhaps "easier" because their graphics hardware was relatively close to modern GPU standards (although they have their own complexities with shaders, etc)
I would rather see Mednafen have a take on N64 emulation. Beetle (as well as PCSX-ReARMed) seems to be well balanced with near-perfect compatibility. Mednafen's guys even managed excellent Saturn emulation on PCs, featuring even more exotic architecture than the N64.
it was a gal, not guys :) but i don't think the saturn is neccesarily 'more exotic' than the n64. it didn't have proprietary ancient accelerated graphics. no per-game microcode, etc.
-
The idea behind CEN64 is what n64 emulation should have been from the beginning. A single emulator that accurately reproduces the N64 hardware and all of its core functions - versus all of the current N64 emulators that operate on the "let the emulator do the core work but offload all the graphic and sound rendering to plugins" method.
This is like Windows and it's driver system, it's prone to incompatibilites and errors especially when the plugins try to do a bunch of functions that the original hardware wasn't designed for - like upscaling polygonal graphics, smoothing out edges, removing fog, increasing draw distance and all the other unnecessary additions that detract from the nostalgic experience (dont hate on the pixels).
If there was a plugin that focused on outputting the original resolution of an N64 and not trying to add in any effect or function not intended by original hardware, n64 emulation would probably work fine, but its all these "improvements" that are actually ruining it as a whole.
Hopefully they can get CEN64 as optimized as psx-rearmed or beetle, their idea of faithfully emulating the hardware will make compatibility amazing if they end up getting that far.
-
@Capeman said in The state of N64 emulation:
The idea behind CEN64 is what n64 emulation should have been from the beginning. A single emulator that accurately reproduces the N64 hardware and all of its core functions - versus all of the current N64 emulators that operate on the "let the emulator do the core work but offload all the graphic and sound rendering to plugins" method.
This is like Windows and it's driver system, it's prone to incompatibilites and errors especially when the plugins try to do a bunch of functions that the original hardware wasn't designed for - like upscaling polygonal graphics, smoothing out edges, removing fog, increasing draw distance and all the other unnecessary additions that detract from the nostalgic experience (dont hate on the pixels).
If there was a plugin that focused on outputting the original resolution of an N64 and not trying to add in any effect or function not intended by original hardware, n64 emulation would probably work fine, but its all these "improvements" that are actually ruining it as a whole.
Hopefully they can get CEN64 as optimized as psx-rearmed or beetle, their idea of faithfully emulating the hardware will make compatibility amazing if they end up getting that far.
Yes, I agree with you that CEN64 should be supported, after all it isn't one of these emulators that relies heavily on plugins to make sure it runs.
-
@Capeman said in The state of N64 emulation:
If there was a plugin that focused on outputting the original resolution of an N64 and not trying to add in any effect or function not intended by original hardware, n64 emulation would probably work fine
that's exactly what angrylion does :) it's essentially pixel perfect, but that comes at a MASSIVE processing cost. GPU type operations just weren't meant to be run on a CPU.
Hopefully they can get CEN64 as optimized as psx-rearmed or beetle, their idea of faithfully emulating the hardware will make compatibility amazing if they end up getting that far.
cen64 has a goal of being optimized to run on "modest systems" which is awesome, but i think that would rule out any SOCs like the raspberry pi systems, at least for many years, but who knows!
-
@dankcushions said in The state of N64 emulation:
cen64 has a goal of being optimized to run on "modest systems" which is awesome, but i think that would rule out any SOCs like the raspberry pi systems, at least for many years, but who knows!
Well, lets hold out hope that SOC's get massive upgrades in the next few years to the point where putting in one that is double or quadruple the power of the pi3 costs the same (since their main goal is cost efficiency)... it's not a stretch, Pi 5 will likely be really quick, haha.
-
As for now, the only true alternative to a physical collection are flashcarts along with an a mod like UltraHDMI.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.