Accurate emulation is something that most devs aren’t concerned for simply because accurate emulation demands a high-end computer. If you’re thinking that your computer is good enough to run SNES emulator, you might be right. It takes 3Ghz to run nearly perfect SNES emulator. I wonder if people realize that console emulation has two parts; emulating the console and the game. If the other can’t be emulated accurately, then imagine how the other is emulated at all. Emulation is a process that takes a lot of raw processing power above all, thus a clean and simple code is vital. If you take a look at how big of a mess ZNES is (and the insane amount of bugs still pop up) You realize that ZNES ultimately has already failed it’s mission as an emulator.
Historically accurate emulation would be ideal. Consoles are physical object that will break down eventually. Preserving their functionality in binary form would be perfectly preserving their workings to the coming generations. It’s completely comparable to preserving any work of art. All games, including the hacked ones, that work on accurate emulator would work on real hardware as well. We would think that this is ideal and all emulator developers aim for this. But sadly, no.
ZNES is an emulator I’ve never liked. The GUI is ugly, the games work differently from what they would work on the real hardware and ROM workarounds are directly coded into the emulator itself. There are lot of fantranslations that rely on faulty emulation to work. This, in my eyes, is something that needs to fixed. I support fantranslation with games that never saw light in the west, unless it breaks the games’ code so that it would never work on a real hardware. If you check znes’ feature logs you will see that every update sees a bug fix because some faults in the code is never fixed. Actually, these faults will never be fixed because some of the hacked games would cease to work. Because of this in the future we will see three versions of the ZNES; One for hacked games, one for large library of compatible games and one for speed. It’s easier to develop the emulators this way and disregard emulators’ original purpose. This also means that we will see a day when people will discard ZNES and move to another emulator altogether. This will happen when Microsoft will stop 32-bit functionality.
Another emulator with horrible, horrible core is MAME, or Multiple Arcade Machine Emulator. MAME is pretty much the only good arcade emulator next to MESS. MAME’s main purpose is historical preservation. I understand why MAME aims for similar kind of accuracy with arcade machines as Nestopia did with NES, but the fact is that MAME developer community is in horrible mess. The community, in short, is full of in-bred idiots who steal other people’s work and literally disregard what could make their emulator better. There’s also this thing that MAME will never be complete. Rather than aiming for functionality MAME aims of accuracy, a thing that hinders playability in many cases. There are a slew if arcade games that are simply unplayable because their original platform couldn’t handle them. There are numerous examples that show how few change in the code lines would render the games playable again, but because accuracy takes the top place. With MAME I’d argue that two versions are necessary; one for accurate emulation and other for playability. As I said MAME will never have accurate emulation as long as they keep adding new machines into the same code. Also, most of the MAME users are there to play games rather than just see history. It’s a dilemma, but then again, preserving perfect virtual copy of a workings.
MAME sacrifices playability in some cases for accurate emulation, but in case of home consoles playability isn’t lost. Accurate emulation of home consoles would mean that a casual user can play any game without any bugs happening. Accurate emulation on MAME means that some games can’t simply be played.
MAME also has the point that there exists multiple of games using the same PCB, and that there are multiple versions of the PCB, thus existing even more versions of same game. Then there’s those games that utilise a modded PCB which also needs to be emulated from the scratch. Then there’s games that are part of one big collection of games working on completely different PCB utilising emulation, so they need emulate the emulation used in that PCB. And there exists multiple versions of all previously mentioned. Errors are going to be made when accurate emulation is the goal.
One thing that we, as emulator users, need to do is to shut the hell up. Emulation is a process that takes a lot of raw processing power. I’m repeating this because it needs to be repeated. By the time you read this, your computer most likely is shit when it comes to emulation. It barely can actually emulate those GBA games you’ve been playing. We’ve already seen working PS2 and GC/Wii emulators, but these emulators are far from accurate. I’m tempted to try out my GC games in widescreen format, but why would I sacrifice functionality over… well, nothing. As long as home consoles aren’t emulated accurately, they will always be second to the real hardware in every aspect, no matter how many things they can change and add. Actually, because they can change how the game plays or looks emulators lose automatically. Console emulator developers need to get feedback on bugs and errors so that they are encouraged to make more accurate emulators. I find it laughable to start a contest about what emulator is the best. There’s no competition, we just need to see which one emulated the platform perfectly. If the emulator is slow, there’s 99% probability that the reason isn’t in the bad code, but the reason is that you have a computer that is too slow and incapable to emulate the given platform.
In home console emulation accuracy doesn’t mean discarding playability as it does with MAME. However, 100% accurate emulation in all reality is impossible to achieve, not speak verifying such a thing. MAME team believes that they can actually achieve this, which clearly shows that they’re full of raving idiots. Game technology has advanced so much, that I doubt that we’ll see proper N64 emulator in ten years, not to mention anything about the newer consoles. For handheld consoles we can always emulate the hardware and games, but never the physical experience of holding the consoles in our hands and looking into the small screen. Cellphones aren’t any kind of substitute for this, and neither is any other platform.
Let’s talk a bit about TAS’ing. TAS stands for Tool Assisted Speedruns, a method where emulators’ capabilities are used to make a pixel perfect run on any game selected. I’d like to see what kind of results TASers would get on an accurate emulator. I took ten random videos in their SNES section, and none of them were made on the most accurate SNES emulator. Some of the videos are actually possible only on emulators, because some of them utilise errors in the emulation process rather than in the games’ code. Recently it was proved that some TAS videos can be made on the real hardware. The inputs are programmed into a special repeater machine that works in the controller port. It counts the frames and inputs given button presses flawlessly.
If the TAS videos were made on accurate emulator, this kind of robots would become instantly unnecessary, as accurate emulation means accurate play, even if the game play had been slowed down and Random Number Generators had been manipulated. They’d still be valid because the emulation of both platform and games were accurate to begin with.
From here we can get to a point; is accuracy better goal than playability? In the big picture, no. You can archive workings of a console completely on paper and on blueprints, write down all the coding and reverse engineer the logistics of the chips. Nintendo would make a small fortune if they’d release a new budget release of NES and SNES with proper AV jacks. They’d preserve the original machines as well as update them. There are numerous people still owning and playing the old games on their old consoles. The new machines would automatically be different from the original machines, but I’d argue that preservation of the working platform in physical format is more important than digital. In the future there might be a clone console that emulates all games in a library rather well, and this machine would be better option than emulators. Emulation will always be the worse option of the two. Aiming for balance between playability and accuracy would perhaps be the best option. This indeed does discard some of the old hacks, but this is something that simply has to be done for the sake of preserving the original games. Hacks we can afford to lose; real games and their platforms we can’t.