With the NES mini classic just announced, Nintendo’s handling of classic games has become a current topic. Anytime this comes up I see the same questions: why not make all the games? Why do retro consoles do what Nintendon’t?
Skipping licensing and IP rights, I am going into a bit of hardware technology that will hopefully shed some light on why the internet is full of preserved games yet Nintendo only sporadically re-releases an old game. As a bonus I’ll offer some thoughts on why SNES VC is New 3DS only.
Since the NES mini restarted this debate, let’s look at the NES. Most of what applies to the NES applies to the SNES and N64 too.
First off let’s take a look at how an NES game works. A big hint here is that games before Zelda didn’t have an internal battery, so no long term storage. The cartridge contains a series of “scripts” which are basically a whole lot of 0’s and 1’s in a sequence to tell the NES what it needs to do. There are no images, no music files, no nothing on that cartridge, just sequences of 0’s and 1’s baked into process units.
So if I take Final Fantasy or Dragon Quest or any other JRPG, then calculations are very apparent: an enemy has say 10 HP, and anytime you strike the enemy has less HP. So where is the current HP stored? That would be on the NES and not the cartridge. With music you could say that the NES is a music player, the TV is your instrument. and the cartridge only carries the musical score.
The NES meanwhile doesn’t contain software (as we commonly understand software. I’m skipping some specifics), all the calculations and commands are done through hardware wiring. Using chips that take signals in a certain way, commands from a cartridge get translated to give the results you see and hear.
So a NES game isn’t complete without the hardware, the hardware is nothing without software. Emulators are software pretending to be hardware. But here’s the rub:
Programmers were always playing tricks on the hardware.
Let’s say I have a balloon, and a fan. By letting the fan blow the balloon it flies in a direction. Let’s say the NES was built to fly balloons in a direction, now by nature a balloon rises or falls until it lays on the ground. But If I alternate the fan quickly in all directions surrounding the balloon then I can have it hover in place (something the system wasn’t built for).
In this balloon case you can see how to trick the system. Many games contain trick on the system. The most famous one comes from Sega and Sonic the Hedgehog’s Blast Processing (read the console wars book for more info).
An emulator pretends to be hardware but it cannot be hardware. So any trick to the system has to be taught to the emulator. If I emulate a fan blowing a balloon, I have to tell it be able to be put in different positions, but if I have that fan in my hand, then I don’t have to tell a computer anything. In that sense, software pretending to be hardware has to account for all tricks that can be done. (virtually impossible, praise the pun)
So with Nintendo’s VC strategy. They need to make sure that the games run on the hardware they are building. They can’t just put old hardware in their new systems, that old hardware isn’t available on the market anymore. (and they don’t have a factory for themselves for it)
So Nintendo has the job of recreating a game, the hardware, but most notably the interaction between the game and the hardware. If they recreate the games to be independent of hardware, then they still need to recreate the bumps the hardware would have. Ever notice how some games show slowdown, framedrops and the like in the same way they would have on old systems? That’s quality work right there. Just recreating the game would make it too fluent, to well flown and crips, not at all how they were back in the day.
This essential recreating of “flaws” means maintaining the nostalgia factor, which is huge. Maintaining the nostalgia, means anytime you boot up a VC game, you’re transported back to the NES days. If they make perfect games, then any time after you boot this game, you’ll be stuck in present day with basically an old game. This last bit is psychology and you could make an argument that a good game is still a good game. But seeing the games as they are and Nintendo as Nintendo is.
My money’s on Nintendo recreating and testing their virtual games every single time they release it. If they release a game that’s broken, then they will be held responsible much in the same way how they are credited with Pokemon Go even though they didn’t write a single line of code for it.
Emulators online don’t account for 100% perfection for very game, and there is no need too. There’s no money at stake and no real need for 100% accuracy. We just want to play those games again. If this alters our view on said game, your general friendly hacker won’t care. He/She most likely will fix it because he/she likes the games too, but that’s besides the point
In essence, Nintendo called its service the Virtual console, but that’s actually a bit of a misnomer, as every game comes with its own actual virtual console. A time capsule is a better name.
Also, as you may have already derived, Nintendo needs to recreate games. So that’s either their own source code, or code provided to them so they can make it a VC game (or they hand the keys to third-parties to make their own VC games).
To close off, about that NES classic. I don’t have the innards of this new system, but my guess is that they took a bit of the Wii or Wii-U so that their current VC offerings could be easily ported over. They still have to test every game though. I think that this is the reason why they don’t allow more games to be released for it. That would effectively mean maintain a console outside of the 3DS family and the Wii and Wii U.
So we’ve seen that emulating a console means you make software that pretends to be hardware. (that’s a heavy operation.) but also, you need to program all the tweaks and system tricks (which are also heavy operations). So in order to run a VC game, you have to run the game virtually, and the hardware virtually, and some extra hardware tricks virtually. The SNES specifics are therefore kind of likely to be too heavy for the regular 3DS.
I hope this helps you. I would specifically like to hear from some hardware engineers or integration experts. I’m a software engineer so I hope I didn’t skip any crucial information.