Changes

Jump to navigation Jump to search

Emulation accuracy

344 bytes added, 15:28, 10 November 2023
no edit summary
===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.
===Cycle accuracy===
Unlike cycle-based 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.
===Subcycle accuracy===
===Gate-level accuracy===
Gate-level accuracy focuses on operating at the level of logical gates within a digital circuit. In this approach, the focus is to replicate the behavior of the system by emulating the interactions and operations of logic gates. This level of abstraction allows for a more efficient imitation of digital circuits, as it does not delve into the intricacies of individual transistors. this level of system emulation is suitable for scenarios where a higher-level understanding of circuit behavior is sufficient. This method of hardware imitation should not be recommended for general purposes (for example, casual gaming), because of its rather poor performance because it is mimicking the desired machine at a very low level, and as such, requires loads of computational power to function.
 
Example of gate-level emulators are Breaknes and GateBoy.
===Transistor-level accuracy===
Transistor-level accuracy represents a more granular emulation accuracy level that delves into the behavior of individual transistors within a digital circuit. This approach aims to replicate the electrical characteristics and interactions of transistors, offering a higher degree of accuracy at the cost of increased computational complexity, way more than that of gate-level accuracy. This method is probably the most accurate representation of the electrical characteristics and interactions within a machine's circuit, but because of its extremely demanding nature, it should not be recommended for most people looking to play their childhood video games not only because of its abysmal performance, but also because it requires way too much computational power to execute. This type of hardware emulation is great for hardware enthusiasts and homebrew developers who want to get a deep understanding of the functionality and behavior of the hardware in question at a very detailed level.
 
Examples of transistor-level emulators are MetalNES and Visualnes.
 
Examples
===DICE===

Navigation menu