Nintendo may have access to 25-year-old source code, documentation, and the developers who worked on classic games like Mario 64 and The Legend of Zelda: Ocarina of Time, but none of those things guarantee Nintendo is actually good at emulating its own games. That sounds counter-intuitive, right? Nintendo made the N64; surely it should be able to whip up a way to run those old games on a new console in a snap. But this week's messy launch of the new Switch Online Expansion Pack and its heavily criticized N64 emulation is a reminder that Nintendo isn't the best steward of its own games, and never will be.
Even with its advantages, Nintendo will never be able to do in months—on a realistic time and development budget—what fans working for free can do in years, or even decades.
“If I'm being honest, outside of them attempting to do netplay, it's a bare minimum effort from Nintendo at best, and the netplay sucks,” said JMC4789, who contributes to the GameCube/Wii emulator Dolphin. I talked to JMC about the reaction to the Switch Expansion Pack launch and some of its most obvious issues. For him, the online play in particular stands out.
It's easy to find videos online right now of Mario Kart 64's netplay implementation lagging badly on the Switch (though who knows if these people are on solid connections or using GoGo wifi a mile above the Atlantic). Regardless, it is cool that Nintendo built online play into games like Mario Kart 64 that obviously didn't have it on the original console.
But as JMC4789 pointed out to me, it's especially frustrating to see those performance issues when other emulators can already do this, and do it better.
50 dollars for this 🙂 #Nintendo64 #NintendoSwitchOnline #NintendoSwitch pic.twitter.com/flHFpTfQFkOctober 26, 2021
“For someone like me, setting up Dolphin netplay is easy,” he said. “But, to get to that point, I've been using the emulator for nearly a decade. I know every little thing that I need to do and every little thing that I need to avoid. For Nintendo Switch Online, no one has to be familiar with emulation. Anyone who owns the service can invite a friend to play online. It opens up N64 netplay to a lot more people. It does matter that something like this exists. It's just disappointing that it's so bad at launch.”
On PC, multiple Nintendo 64 emulators have supported netplay for many years—heck, some of the earliest emulation software built for online play dates back to 2001. With popular emulator Project 64, for example, many players use a plugin called AQZ and game-specific hacks to get netplay working. It's not simple to set up, so Nintendo had an opportunity for an easy win—this is absolutely an area where it can improve upon fan-made emulators. And while it technically has, its implementation really just highlights how much better its emulator should be.
Programmer OatmealDome, who also contributes to Dolphin, has datamined the Switch Online's emulator and learned a few things about it, including its “lockstep” netcode that requires every player be in perfect sync at all times. Throw in a single dodgy wifi connection, and, well…
[Expansion Pack – Nintendo 64]As expected, the Nintendo 64 emulator implements the same lockstep netcode (everyone must be in perfect sync) that Nintendo *really* loves to use.It seems that emulation is paused while other players catch up, causing the choppy audio. https://t.co/mADnCT3BEgOctober 26, 2021
Lockstep is essentially the simplest way to implement online play, and that makes it ripe for issues. A poor internet connection might not be the only culprit: if the emulator drops below 100% speed for a single player, that would cause issues for everyone else, too. Fighting game player Ricky Pusch does a good job in this article of breaking down the common problems with lockstep code and the benefits of rollback netcode, which has become so popular with fighting games that it's now being patched into decades-old games like King of Fighters '98. Rollback isn't necessarily right for every game—the point is Nintendo's gone with the barebones option here, despite having the resources to build something more robust.
Nintendo's emulator is convenient, but it awkwardly fails to be better than decades-old fan emulators when it comes to game preservation—representing games accurately as they ran on original hardware—or enhancing them to look significantly better on modern hardware.
Here's perhaps the most viral criticism of the Switch Expansion Pack going around: streamer Zfg1's comparison of Ocarina of Time running on Nintendo 64, Switch, and the Wii Virtual Console release from 2007. Pay particular attention to the water, tree, and foggy background in each frame.
The Switch version is missing the fog and reflection from the tree; Nintendo has, somehow, made its Switch emulator less accurate than the one it built for the Wii nearly 15 years ago. Or it's not a flaw in the emulation itself, but a deliberate decision a programmer made to disable fog thinking it was no longer necessary to maintain a stable framerate.
Either way: “Something went seriously wrong,” JMC4789 said.
“This is a failure on a huge level, and shows that they either didn't test the game, or more likely, the person testing the game wasn't familiar with the original. The best bug reporters for emulators are people that love the original games. They see things that we'd never see, because they know the original game so exactly that they see the smallest of differences that the average person wouldn't even see as a bug… If you haven't played OoT in 20 years, you probably wouldn't realize this room looks that wrong.”
The missing reflection is the kind of tiny thing that the developers of fan emulators would absolutely catch, because they're not working under the time constraints of Nintendo developers trying to ship a product. JMC4789 gave me a great example: Back in 2014, Dolphin developer delroth fixed a notorious heat effect bug in The Legend of Zelda: The Wind Waker that had plagued players for years.
Nintendo may well fix the most obvious bugs in its Switch emulator, but it's never going to have that kind of dedication to solve tricky issues years after they're discovered. Just last year, fan developers at Libretro made a breakthrough in low-level N64 emulation, making it possible to much more accurately emulate the original hardware without a super powerful CPU. (The more closely you replicate the original hardware, the more work it is for your computer, which is why famously accurate Super Nintendo emulator Bsnes required a 3GHz processor in 2011.)
Even if you don't care about the tiny details of game preservation, like whether an emulator accurately displays a tree's shadow like it did on the original hardware, the work fans put into emulator projects like the one above can have much more obvious payoffs. That low-level N64 emulation is the first to ever properly replicate the original console's video interface, including “dithering, divot filtering, and basic edge anti-aliasing” without brutally straining even high-end CPUs.
The takeaway is that even though Nintendo's own emulator upscales N64 games to (what looks like) 720p, it isn't replicating the anti-aliasing techniques the original console used. No fan emulator did it properly and efficiently, either, until just last year! But now you can run games as they originally appeared—and then upscale them to 8x their original resolution.
The other takeaway, I guess, is that N64 emulation is hard. All emulation is hard!
Nintendo's never going to be the kind of company that hypes up playing 4K versions of its old games, and I don't think anyone expects it to be. But Nintendo does usually take the feel of its games very seriously, which is what makes the poor performance of its N64 emulation—which it's charging $50 a year for bundled with online service—particularly disappointing. Tests are already showing that the Switch emulator introduces about two frames of latency compared to the original hardware, which is far more noticeable in some games like Ocarina of Time. Because Ocarina of Time runs at only 20 frames per second, just two frames of input lag equals 100 milliseconds (at 60 fps, it would be only ~33ms).
JMC4789 said that plenty of PC emulators introduce this much latency, too—but there are also great ones that have worked really, really hard to eliminate it. “In general, most emulators will have an extra frame of latency vs. real console,” he said. “But clever developers have long figured out ways to minimize, reduce, and even get below true console latency in some cases!”
Even if Nintendo brings performance up to an acceptable level and fixes the Online Expansion Pack's obvious bugs, it still won't deliver the one thing Nintendo could offer that no fanmade emulator possibly can: context from the company that made these classic games.
As Frank Cifaldi perfectly laid out in his 2019 GDC talk on emulation, when you're competing with free, you have to give players something better, like a thoughtfully curated experience and behind-the-scenes material they can't get anywhere else. So far, Nintendo's only offered a way to pay for something that fans have been doing better for years.