Emulation accuracy

From Emulation General Wiki
Revision as of 03:48, 19 July 2014 by Error (talk | contribs) (More polish. Don't care about 'hopes'. 'Some people' is code for personal opinion and if there is no evidence why tell us about it?)
Jump to navigation Jump to search

Accuracy is how accurate the emulator is to the original hardware. Accuracy is most often achieved by tighter syncing. More accuracy means less graphics and audio glitches, at the cost of additional CPU power required to run the game at fullspeed.

Types:

Low accuracy

Low accuracy emulators will have a large amount of visual and audio glitches. They will typically use various speedhacks to skip over problems, as a result many games simply run due to a variety of patches while others don't work at all. This can become very problematic when ROM hacks use these speedhacks to run by abusing the errors to create otherwise impossible behaviour. This means that the ROM hack can only be used in that one specific emulator. Such an issue has occurred with ZSNES.

Medium accuracy

Medium accuracy emulators will have fewer glitches, but will still have many problems. Most emulators fall into this category.

High accuracy

High accuracy emulators try to replicate the original system as closely as possible, and for that reason take more CPU power to do so. They will have fewer audio and visual glitches. High accuracy emulators may or may not be cycle accurate. Some high accuracy emulators can achieve 100% compatibility with commercially released games.

Cycle accuracy

Cycle accurate emulation is trying to perfectly emulate timings right down to per-cycle accesses. So each individual component is emulated at exactly the right time, and in perfect sync etc., which takes a performance hit. The size of the performance hit depends on the way cycle accuracy is implemented and the skill of the coder. The accuracy of these emulators is very high, but at a steep CPU cost.

Chip accuracy

Chip accurate emulation works by simulating each logic chip on the board individually. Not only does this take a tremendous amount of power to run (as in, even emulating something from the 1970's on a chip accurate level would need Dolphin-level system requirements to run at a good speed.), but they also require a incredible amount of effort and money to make. This accuracy method is pretty much useless. Although it is technically the only way to achieve true 100% hardware simulation, cycle accurate emulation can already achieve accuracy which is virtually indistinguishable from the real hardware. Not only that, but cycle-accurate emulators have much lower system requirements and programming difficulty. There are currently no publicly-released chip accurate video game emulators in existence, and there will most likely never be one.

DICE

This emulator needs its own section on accuracy, because its accuracy method is unlike any other. DICE emulates arcade machines from the early 1970's. The architecture of these systems is different from a modern architecture, mostly because they don't have a CPU. DICE emulates the discrete logic components of the machines at a circuit level. Although the results are accurate the you need a fast 64-bit gaming PC to run these early-1970's arcade games at full speed.

Controversy

There are two sides when it comes to the issue of accuracy. One side argues that as long as an emulator plays the majority of games at full speed on most computers and devices without too many obvious glitches, it does not matter how accurately it actually replicates the original hardware and its many quirks and functions. The faithfulness of the emulator to the console it is emulating comes second to its overall ability to play games. The other side argues that an emulator should ultimately strive to simulate the hardware as much as possible, as that is the only way to achieve as much compatibility as possible, as well as the only way to preserve the hardware. Thus, speed and scalability to most devices is a lower priority to accuracy to the real console, both for purposes of compatibility and preservation.

Even within the second side, however, there is some disagreement as to just how much accuracy is actually needed. On most platforms, after obtaining a certain amount of accuracy, going further still requires an exponential growth in system requirements, the results of which may not be noticeable to the vast majority of users. Cycle accuracy in particular has been hotly debated in regards to its usefulness, due to how such an extreme level of accuracy requires a lot of extra processing power for relatively few gains in compatibility.

Simply put, it's a disagreement between wanting 'good enough' or perfection no matter the cost.

Further reading

http://arstechnica.com/gaming/2011/08/accuracy-takes-power-one-mans-3ghz-quest-to-build-a-perfect-snes-emulator/

NES Accuracy Tests

Game Boy Accuracy Tests

SNES Accuracy Tests