Difference between revisions of "Emulation accuracy"

From Emulation General Wiki
Jump to navigation Jump to search
Line 38: Line 38:
  
 
[http://tasvideos.org/EmulatorResources/GBAccuracyTests.html Game Boy Accuracy Tests]
 
[http://tasvideos.org/EmulatorResources/GBAccuracyTests.html Game Boy Accuracy Tests]
 +
 +
[http://tasvideos.org/EmulatorResources/SNESAccuracyTests.html SNES Accuracy Tests]
 
[[Category:FAQs]]
 
[[Category:FAQs]]

Revision as of 17:46, 14 April 2014

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 of 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 otherwise impossible 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. 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 are close to perfection, but at a steep CPU cost. However, some people believe that the notion of 100% cycle-based accuracy being slow is a misconception, one that people believe because most attempts at a cycle emulator aren't as well-optimized as they could be. MarathonMan, developer of CEN64, is one of the people who believes this. Whether or not this is the case remains to be seen.

Chip accurate

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 70'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. Basically, what DICE does is emulate arcade machines from the early 70's. The architecture of these systems is very different from a modern architecture, mostly since they don't have a CPU. So the emulator instead emulates the discrete logic components of the machines at a circuit level. Although the results are highly accurate (as in, very highly accurate) the results are quite system intensive. You need a pretty nice 64-bit gaming PC to run these early-70's arcade games at full speed.

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

SNES Accuracy Tests