Switch Virtual Console was the original plan.

Published on 11 Jan 2025


Probably not the final post in relation to the N64 emulator on Switch, but we did get a bunch of new information thanks to a new leak of iQue emails not too long ago. Somehow the gigaleak continued, it seems.

There’s a ton of emails in relation to game localization of first party Switch games, but I won’t talk about those, there’s also tons of stuff in relation to Wii U VC and the Pokémon 3DS GB rereleases, instead I’m gonna focus about the early development of emulators on Switch.

GameCube Emulation for Wii U?

I don’t know where to put this, I found this in the leak, but I’m sure some people would have been interested to know: iQue was working on a GameCube emulator for Wii U in 2013. I have no reason to believe this work was used by NERD later, I believe they fully did their own thing later.

For explanation: CAT actually means Wii U here. CAT-DEV is the name of one of Wii U development kit. For context the same emulator framework would use CTR (3DS) and PC (well… Windows PC).

It absolutely did not work like Nintendont, I saw evidence of JIT code recompilation. It would join the unreleased GBA emulator for 3DS by the same developers.
(For those who might ask: No, Nintendo did not use a GBA emulator for the 10 GBA games that came out on 3DS, it relies on the 3DS’s GBA backward compatibility mode. Yep, they did that on the hardware level and somehow they still wanted to make an emulator for it.)

Switch Virtual Console (Clipper)

Yes, Switch Virtual Console was originally a thing!
It was codenamed “Clipper”, development seems to have started around 2015, and continued from there. It was seemingly a collaboration between iQue and M2, possibly others like NERD but they get barely mentioned so I can’t be certain.

Do you guys actually remember the original announcement of Nintendo Switch Online’s retro game service? It used to say this:

Subscribers will get to download and play a Nintendo Entertainment System™ (NES) or Super Nintendo Entertainment System™ (Super NES) game (with newly-added online play) for free for a month.

This, for me, is the relic of what it used to be. I believe the original plan, was basically Virtual Console, but with one free monthly game for those who pay for NSO. It was confirmed it was paid games after that, at least by the press.

iQue took their NES emulator from the 3DS, which was okay, it wasn’t bad, and N64 would continue from Wii U N64 VC, which already had terrible reputation.

If you started a game on Switch VC in CRT mode, you would see an animation where a CRT TV would be turned on, complete with TV noise, and even caring enough to record the sound of the power button for both the Famicom and NES seperately. Nintendo cared to have a very descriptive animation.

There was actual testing for NES Switch VC, listing tons of the usual first party game and also third party games such as: Final Fantasy 1 & 3, Mega Man 2 to 6, Ganbare Goemon! Karakuri dōchū, Star Luster…

I don’t know whether it was going to be part of the final product, but they seemed to test games with different game speeds (Slow, Normal, Fast), and they do report bugs in relation to that so I don’t know.

Also they did make it important to have online netplay in it, with different ideas for implementation. One of the ideas that was given as a fun mode was a way to automatically shuffle controllers between up to 4 players every 30 seconds, with a countdown until it says “SHUFFLE!”, as well as premade messages (such as emojis and “thx”, “sry”, “plz”, “cya”).

For SNES, I saw a mention of “Street Fighter ZERO 2”. I don’t have the full context but it sounds like M2 was responsible for SNES Switch VC initially? M2 was very involved at the very least.

I did see a bunch for N64, but a lot of focus were on Wii U VC, specifically for games like Banjo-Kazooie (yep), Blast Corps and Ogre Battle 64.
A bit of off-topic in regards to Ogre Battle 64: It seems they tried to fix a bug that also happened on original hardware, which also happens to lock up the entire system. Unfortunately fixing such bugs isn’t easy.

And then around May 2017, I don’t seem to see too much about Clipper. And that would make sense, because in June 2017, Nintendo announced a change about how they would deal with classic games on Nintendo Switch Online, with what was originally called “Classic Game Selection.”

Nintendo Switch Online (L-Classics)

This is where the project that we know about, codenamed “L-Classics”, would come to be. There’s a lot of back and forth between iQue and NERD, where NERD explained why Clipper was cancelled in favor of L-Classics:

Previously, when shipping Virtual Console titles on new platform, Nintendo relied on extensive testing for each emulator (NES, SNES, N64) on each new platform (3DS, Wii, WiiU). This approach is no longer possible, it is just too costly. Besides, players were annoyed that previous Virtual Console titles were not available at lunch on the next platform, and they were angry that they had to buy again the Virtual Console titles they bought on the previous platform. This and other factor lead to the cancelling the Virtual Console single-title approach, and the new L-Classics multi-title project. Now, the goal is to:

  • ship many titles (30+) on short schedule
  • maintain all the titles in the “long-run” while still adding features
  • ship everything very quickly and for a very low cost on the next hardware

There were a lot of talks about code recompilation, as NERD was very busy on doing that for their GameCube emulator, while iQue was also doing this for their N64 emulator.

The NES emulator would be replaced with the one used on the NES Classic Mini developed by NERD in 2016, which was after development of the Switch Virtual Console started, or at least was concurrent with each other, frankly I don’t understand why Nintendo has like 3 NES emulators for Switch now. Clearly, during 2016, after the development of DS Virtual Console emulator, NERD started to have some real influence on emulation within Nintendo, to the point of having NES, SNES, GB, GBA, DS and GameCube emulation today… and maybe more? For real though, NERD seriously cooked there, like, I feel like they did almost everything at the same time.

The initial idea was to have a version of retro NSO to contain NES, SNES and N64 in one app, so the approach that I quoted about was very serious on having easy to maintain but also future proof emulators for long term development. Obviously though, this did not happen in the end, probably for similar reasons of cost, as it could just be easier to develop and test when it’s seperate.

One of the key things that NERD made a point on was to automate testing with controller replays to make sure nothing has regressed in testing after updates. I don’t think this is a bad idea, actually.
(In retrospect, seeing SNES Mouse replay feature in the latest SNES NSO update from September 2024 is actually pretty positive because it means it is considered as a serious feature now.)

NERD also makes it very clear that L-Classics is absolutely long term and really insists on this aspect:

Finally, and this is the most critical issue.

We must make sure the whole L-Classics application, with all the emulators, can be supported and maintained for the many years to come. We want to be able to quickly add new features, new games, new emulators. We should make sure that all emulators are well integrated. For example, we should avoid duplicating code as much as possible. And when possible, we should refactor each emulator to have similar behavior.

We understand that it may require a lot of work on your side. But, it is NERD opinion that this initial time investment will have a very positive impact on the future of this project.

So if there’s anyone worried about the future of the retro games on Nintendo Switch Online, this really seems like a project that Nintendo takes very seriously. This is kind of reassuring that finally, everyone is on the same page, and not just doing their own thing, there’s a lot of back and forth between teams.

I’d like to do the reminder that Nintendo had literally THREE DIFFERENT NES emulators running on Switch:

Can I comment how very poorly planned this was?
I even suspect the NES emulator on the new Mario & Zelda Game & Watch is a different one again, though, that one is a lot more understandable in terms of hardware and optimization required. It’s only since the planning for the NSO that we know that they finally started to stop making a mess (though Fire Emblem NES… ugh).

The development of Nintendo 64 emulation on Switch

Considering that all we have is only iQue’s side of things, Nintendo 64 emulation is basically all we can talk about, more or less.
Maybe I need more context on top, but I’ll be frank, I’m not gonna be on the side of the developers here. I tried not to be that way, but seeing these leaks, with discussions with other people on the matter…
I really think N64 emulation should have been managed by people with more experience. I am really sorry if I become seriously harsh on this section.

To make their Nintendo 64 emulator from Wii U to work on Switch, there were several issues that stemmed from the Switch, here’s the most important ones:

To sum up the CPU JIT topic, there was a lot of back and forth between iQue and NERD about the specific topic of basically recompiling the game in advance and rely less on real time recompilation for performance. That’s something NERD has done to GameCube emulation and was honestly pretty easy to do in advance because the overall GC architecture made this easy to automate. You can’t really do this on N64, so iQue opted to basically “record” recompiled parts and put them alongside the game, doing real time recompilation for stuff that they didn’t precompile. There’s not much else to say about it, it’s really not the part I’m going too wild about.

To me, the biggest failure of N64 emulation is not that it is unaccurate in general, to me I think full accuracy is kind of unnecessary. I don’t really like MVG’s focus on timing emulation on his latest video about N64 emulation, I think it’s not the main issue. However, I believe graphics can be emulated a whole lot better, and that’s the real failure for me. It was really obvious in the launch of N64 NSO, but to me, it’s still that way now.

A lot of the problems were already there on Wii U Virtual Console. You can speak to Zelda Ocarina of Time speedrunners about that. But instead iQue chose that they should port their renderer to Vulkan. And that’s not me saying it, here’s iQue’s N64 emulation schedule development from March 7th, 2017 outright saying it.

"Vulkan 移植(暫定,予定作業時間2ヶ月) 45 days 2018/3/1 2018/5/2"

Translation: Vulkan port (provisional, expected work time 2 months)

N64 emulation currently, unofficially speaking, owes a whole lot to Vulkan. We wouldn’t have a performant highly accurate renderer that is parallel-rdp without Vulkan. It was literally impossible without it. RT64’s hackless approach to graphics rendering also wouldn’t exist without DirectX 12 and Vulkan.

And considering how at N64 NSO launch, the bugs were still there, or, should I rather say it, even worse, to me it shows that they just ported their work and did not do anything to make advantage of Vulkan’s specifics to make N64 emulation even better from here.

In a later description of how they handle graphics, from September 2017, I see this part:

This seemed to have been emulated correctly even on Wii U, so I’m not gonna be picky about this. But I will still be because sure, dealing with stuff that is more of a result of a bug is annoying when you’re an emulator developer. Well the thing is: This happens a lot. This is pretty much part of your job to deal with the mess of old game devs. This isn’t unique to N64, and at least, if I deal with something like this, well, you can complain all you want, but what you do is perform specific tests on the actual system to understand how it works.

When people talk about “Nintendo has all the documentation but they can’t figure out N64 emulation” to me they don’t know what they’re talking about. The amount of times when official documentation can outright be lying to the developer, the times where you deal with a highly specific bug that could happen to the hardware and isn’t explained at all, one of the things that I think is that you should NOT trust the documentation, you should trust what the original hardware is actually doing. And many emudevs I know stick to this adage.

[TODO, LINK TO POSTS HERE] Remember Sloop? The leaked GBA emulator demo build that we got years before the GBA NSO launch? Well I remember writing two posts about it especially when I talk about how it shows the use of a GBA flashcart where they can go back and forth with real hardware save states and a homebrew to test the screen output, as well as a ROM that performs tests.
Well that’s the proof of actual dedication to the craft. They’re paying attention to real hardware tests. They might even write some of their own tests.

Well that’s what I hoped for when NERD received a N64 flashcart in 2017. A few people may remember that I said this around February 2017 in some places. I hoped NERD developed a N64 emulator alongside the rest which showed a lot of promise. And then it seemed like they didn’t make one… or did they?

I have upload a source package for our emulator at: /ique/from_NERD/package/20171122-mushi-src-ique.zip

Introducing “Mushi”! It seems NERD has worked on an emulator which I am not fully certain it is N64 to be perfectly honest, but I don’t believe it is GameCube, which is called “Hagi”, and within the context of it, I believe “Mushi” is NERD’s N64 emulator. It uses software (CPU) rendering for graphics, on which iQue’s developer noted for its accuracy (this is not really evidence that it is accurate though). That’s all the info I have about it, unfortunately.

Anyway, from there, iQue’s goal was clear: Make all of the Wii U VC games work on Switch (including unreleased ones like Smash Bros., Banjo-Kazooie and Blast Corps, yep), and look into other games later. They also looked into rollback… and an Android and iOS port?

Yep. I don’t know where the idea of iOS and Android port came from.

When it comes to rollback, I think considering the way N64 emulation works in general across everything including unofficial emulation, it’s pretty hard to do, and could just fill your RAM extremely fast + save state processing time could prevent things to work as well as they want.

There’s also talk about Nintendo wanting to put N64 emulator development to Panasonic Vietnam for September 2019..? That is honestly curious and apparently has put some iQue employees wondering about why this was put into consideration. NERD was also talked about as having high technical skills and capable, but “not good at mass production process”. That last part may seem confusing, but I believe they’re talking about more like the process of putting the work required for software for public hands.

Personally though, I don’t believe N64 emulation was ever given to Panasonic Vietnam in the end, I still have reasonable belief that iQue is still around for it, for reasons that I cannot invoke. Or, if Panasonic Vietnam is involved, I think they’re mostly just a support team helping across all of NSO emulators, one of which is confirmed to be GBA.

And now?

And that’s about it, really. All info ends at around March 2018, so anything that happened past that is still very much a secret.

I’m sorry that I’m still giving iQue developers not a pretty good look from me. I expect that we’re still missing a lot of context, I would have certainly loved to look at the internal discussions that happened after the disasterous launch of N64 NSO. To me I still believe that Nintendo hasn’t done a good job about N64 emulation, especially when the emulator was truly in constant development for 10+ years. But as much as I’m not an expert on Nintendo 64 hardware, I still have some understanding of it as a modder and as a 64DD emulation developer.

If Nintendo truly wants to do something long term, then having emulation that does good enough accuracy (aka not what’s in N64 NSO) with legit performance tradeoffs should be their goal. The goal is to respect the legacy of their games. The least they could have done is at least good graphics emulation. I’m not even asking for super accuracy, this is not possible on Switch, but at least to actually use the technology at their disposal to do it well, and I consider that they did absolutely not.

When it comes to Switch Virtual Console, I know a lot of people would have wanted that instead, but on a personal level, I never liked Virtual Console since the Wii. And what I’ve been seeing about Switch VC was none other than a continuation of it but with online play added to it, well… I’m not interested. I believe that playing retro games shouldn’t be a niche thing, and I’m sure Nintendo would think so.

But it sure is interesting to have a glimpse of how it was like with some details here and there. I like development details like this, and I hope this was an interesting read.