Ars Technica discusses the difficulty of programming emulators with one of the programmers of the SNES Emulator BSnes. In it he talks about why old technology emulating uses so much PC hardware power and some of the problems that arise when programming emulators. Definitely a great read, check it out!
Emulators for playing older games are immensely popular online, with regular arguments breaking out over which emulator is best for which game. Today we present another point of view from a gentleman who has created the Super Nintendo emulator bsnes. He wants to share his thoughts on the most important part of the emulation experience: accuracy.
It doesn’t take much raw power to play Nintendo or SNES games on a modern PC; emulators could do it in the 1990s with a mere 25MHz of processing power. But emulating those old consoles accurately—well, that’s another challenge entirely; accurate emulators may need up to 3GHz of power to faithfully recreate aging tech. In this piece we’ll take a look at why accuracy is so important for emulators and why it’s so hard to achieve.
Put simply, accuracy is the measure of how well emulation software mimics the original hardware. Apparent compatibility is the most obvious measure of accuracy—will an old game run on my new emulator?—but such a narrow view can paper over many small problems. In truth, most software runs with great tolerance to timing issues and appears to be functioning normally even if timing is off by as much as 20 percent.
So the question becomes: if we can achieve basic compatibility, why care about improving accuracy further when such improvement comes at a great cost in speed? Two reasons: performance and preservation.
First, performance. Let’s take the case of Speedy Gonzales. This is an SNES platformer with no save functionality, and it’s roughly 2-3 hours long. At first glance, it appears to run fine in any emulator. Yet once you reach stage 6-1, you can quickly spot the difference between an accurate emulator and a fast one: there is a switch, required to complete the level, where the game will deadlock if a rare hardware edge case is not emulated. One can imagine the frustration of instantly losing three hours of progress and being met with an unbeatable game. Unless the software does everything in the exact same way the hardware used to, the game remains broken.
Or consider Air Strike Patrol, where a shadow is drawn under your aircraft. This is done using mid-scanline raster effects, which are extraordinarily resource intensive to emulate. But without the raster effects, your aircraft’s shadow will not show up, as you see in the screenshot below. It’s easy to overlook, especially if you do not know that it is supposed to be there. But once you actually see it, you realize that it’s quite helpful. Your aircraft has the ability to drop bombs, and this shadow acts as a sort of targeting system to determine where they will land.—something that’s slightly more difficult without this seemingly minor effect.