Changes

Jump to navigation Jump to search

Emulation accuracy

158 bytes added, 17:02, 19 December 2023
m
no edit summary
===Cycle accuracy===
Cycle accuracy is a more stringent form of emulation accuracy that seeks to precisely replicate the timing and execution of each individual cycle of the original hardware. This type of emulation accuracy aims to match the appropriate timing and execution of each cycle. The authenticity and performance of the emulator in question depends in how cycle accuracy is implemented. Typically, emulators with this level of accuracy ensure that situations where precise timing is required are properly dealt with.
:Examples of cycle-accurate emulators are Mesen2 with its NES and SNES emulation, CEN64, and BlastEm.
So in summary, we can talk about three type of cycle emulation; "partial cycle-accuracy", "cycle-based accuracy" and "full cycle-accuracy". These can be considered subsets of "cycle accuracy." Due to technical challenges and performance considerations, emulators often employ either "partial cycle-accuracy" or "cycle-based accuracy" depending on the specific requirements.
 
Mesen2, CEN64, BlastEm, and Exodus 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====
This focuses on replicating the timing of instructions and key internal operations, while simplifying or skipping some less critical details. This can lower the performance requirements while still maintaining good compatibility and accuracy.
:Example of partial cycle-accurate emulator is [https://old.reddit.com/r/emulation/comments/vy8cg7/ares_v129_has_been_released_crossplatform/ig4da06/ bsnes].
====Cycle-based accuracy====
By emulating the components in a cycle-per-cycle fashion, we get cycle-based accuracy. This type of emulation accuracy aims to reproduce the system's functional behavior within a specified cycle without necessarily adhering to the exact
timing of each cycle. Since this method doesn't go out of its way to mimic the precise timing and execution of each cycle, it may not be able to handle all hardware edge cases.
:An example of a cycle-based emulator is jgnes with its cycle-based emulation of the Ricoh 2A03 and PPU.
====Partial cycle-accuracy====
This focuses on replicating the timing of instructions and key internal operations, while simplifying or skipping some less critical details. This can lower the performance requirements while still maintaining good compatibility and accuracy.
:[https://old.reddit.com/r/emulation/comments/vy8cg7/ares_v129_has_been_released_crossplatform/ig4da06/ Example of partial cycle-accurate emulator is bsnes].
 
====Full cycle-accuracy====
This aims to mimic every aspect of the CPU's timing and behavior, including internal operations and interactions with other components like memory and I/O devices. This demands the highest processing power for accurate emulation.
 
:[https://old.reddit.com/r/emulation/comments/vy8cg7/ares_v129_has_been_released_crossplatform/ig4da06/ Example of full cycle-accurate emulator: higan or ares].
 
"Cycle-based accuracy", "partial cycle-accuracy" and "full cycle-accuracy" can be considered subsets of "cycle accuracy." Due to technical challenges and performance considerations, emulators often employ either partial cycle-accuracy or cycle-based accuracy depending on the specific requirements.
===Subcycle accuracy===
12,011
edits

Navigation menu