Emulation accuracy: Difference between revisions
Ilyagredasov (talk | contribs) No edit summary Tags: Mobile edit Mobile web edit |
→High accuracy: - Reworked its description. |
||
| (4 intermediate revisions by one other user not shown) | |||
| Line 17: | Line 17: | ||
===High accuracy=== | ===High accuracy=== | ||
High accuracy is a level of | High accuracy is a level of emulation accuracy that emulator developers strive for when achieving [[#Cycle_accuracy|cycle accuracy]] or [[#Partial cycle-accuracy|partial-cycle accuracy]] is not practical or necessary. This approach focuses on replicating the original system's components as closely as possible, aiming to faithfully reproduce its behavior while staying mindful of hardware demands. Even though it may require more processing power compared to lowly accurate emulators, pursuing a more accurate emulation experience can pay off in the form of fewer audio/visual glitches and better handling of niche scenarios that creative programmers often implement. Despite not mimicking every clock cycle as precisely as cycle-accuracy, highly accurate emulators capture the essence of the original hardware very well. Also, achieving 100% compatibility with commercially released games is a common goal for emulators with high accuracy. | ||
Some highly accurate emulators may display an even more meticulous level of precision in replicating the original system compared of other emulators of its category, this heightened level of accuracy often involves more sophisticated techniques, demanding increased computational resources. | |||
===Cycle accuracy=== | ===Cycle accuracy=== | ||
| Line 35: | Line 37: | ||
In summary, we can talk about three types of cycle emulation: "partial cycle-accuracy", "cycle-based accuracy" and "full cycle-accuracy". These can be considered as subsets of "cycle accuracy." Due to technical challenges and [[Frames_per_second|performance]] considerations, emulators often employ either "partial cycle-accuracy" or "cycle-based accuracy" depending on the specific requirements. | In summary, we can talk about three types of cycle emulation: "partial cycle-accuracy", "cycle-based accuracy" and "full cycle-accuracy". These can be considered as subsets of "cycle accuracy." Due to technical challenges and [[Frames_per_second|performance]] considerations, emulators often employ either "partial cycle-accuracy" or "cycle-based accuracy" depending on the specific requirements. | ||
Mesen, BlastEm, NanoBoyAdvance, Azayaka, MartyPC and Stella are recognized for their cycle-accurate emulation, though for knowing the specific degree of cycle-by-cycle precision for each needs further research. | [[Mesen]], [[BlastEm]], [[NanoBoyAdvance]], [[Azayaka]], [[MartyPC]] and [[Stella]] are recognized for their cycle-accurate emulation, though for knowing the specific degree of cycle-by-cycle precision for each needs further research. | ||
====Partial cycle-accuracy==== | ====Partial cycle-accuracy==== | ||
| Line 129: | Line 131: | ||
===DICE=== | ===DICE=== | ||
This type is unique in that its method, [[DICE]], emulates arcade machines from the early 1970s. 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 and, although the results are accurate, [[Computer_specifications|you need a fast 64-bit CPU (for single thread performance)]] to run these arcade games at [[Frames_per_second|full speed]]. It's not as deep as gate or transistor-level emulation for other systems because chips are still treated as black boxes, though. | This type is unique in that its method, [[DICE]], emulates arcade machines from the early 1970s. 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 and, although the results are accurate, [[Computer_specifications|you need a fast 64-bit CPU (for single-thread performance)]] to run these arcade games at [[Frames_per_second|full speed]]. It's not as deep as gate or transistor-level emulation for other systems because chips are still treated as black boxes, though. | ||
==Perfection?== | ==Perfection?== | ||
| Line 148: | Line 150: | ||
==Console revisions== | ==Console revisions== | ||
Many consoles have different internal hardware revisions which degrade accuracy or change the consoles' behavior in another way, such as the SNES 1CHIP (various games have minor issues, such as a small mess of pixels at the top of the screen in games such as | Many consoles have different internal hardware revisions which degrade accuracy or change the consoles' behavior in another way, such as the SNES 1CHIP (various games have minor issues, such as a small mess of pixels at the top of the screen in games such as Demon's Crest), Genesis Model 3 (fixed a bug that some games such as Gargoyles used), or PS2 SCPH-750XX (less compatibility with some PS2 games and PS1 games). These specific consoles are not generally emulated in their respective emulators, and those emulator developers tend to focus only on one revision. | ||
==Further reading== | ==Further reading== | ||