Emulation accuracy

From Emulation General Wiki
Revision as of 13:00, 26 November 2013 by 207.112.44.85 (talk) (Types:)
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. There are hopes that less CPU power will be needed for more accuracy with the use tighter programming.

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 very non-sneslike behaviour. This means that the romhack can only be used in that one specific emulator. Such an issue has occured 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.

100% Game compatibility

Some high accuracy emulators can achieve 100% compatibility with commercially released games.

Cycle accurate

Cycle accurate emulation is basically 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. How much performance is taken depends on the way cycle accuracy is implemented and the skill of the coder. The accuracy of these emulators are close to perfection, but at a steep CPU cost.

Circuit accurate

Circuit accurate emulators work by simulating each logic chip on the board individually. They take a tremendous amount of power to run.

Controversy

There are basically two camps 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 takes a backseat to accuracy to the real console, both for purposes of compatibility and preservation.

Even within the second camp, 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 battle between those who feel 'good enough' is the goal and those who want nothing but the pinnacle of 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