This is computationally expensive and thus slow. Software is not able to perform these steps in parallel and must swap between operations. Hardware performs all of these steps independently on any given cycle. This can become quite slow, and introduces the major difference in performance between cycle accuracy and cycle-count designs. This may sound easy like an easy task: perform all of the individual steps that occur on a given cycle, in order, go to the next cycle, and repeat. The primary problem that cycle accuracy solves is correctly emulating different pieces of hardware performing actions on the same cycle. When implemented well, cycle-count accuracy will produce very similar, and often identical, results. It is a common misconception that mGBA is now or will become cycle accurate, but to do so would require a major rewrite of some of the foundational elements of mGBA. However, cycle-count accuracy is much a much easier style of emulation to design, implement, and maintain. As such, cycle-count accuracy may sound strictly inferior to cycle accuracy, and from a perfect hardware accuracy perspective, it is the case. As a result, the ARM9 may have to wait on the slower bus to get data from memory that it could get more quickly if the bus were the same speed as the ARM9’s clock rate.Ĭycle-count accuracy is a similar concept, but instead of every piece of hardware being emulated on the correct cycle relative to other components that act concurrently, each component acts atomically and takes the correct amount of time, but may not overlap properly with the timing of other hardware. While the bus often runs at the same speed as the CPU, such as it does in the GBA, this is not a guarantee: in the Nintendo DS, there are two processors, the ARM7 (the same CPU as the GBA) and the ARM9, which run at different clock speeds (approximately 33MHz and 67MHz respectively), however the bus runs at the same 33MHz as the ARM7. A bus is an interconnect that transports data between various components of the system, such as between the CPU and main memory. Another important piece of hardware, the bus, sometimes has a different clock rate. Thus, for a system that has a 16MHz processor, such as the Game Boy Advance, this means that the processor runs 16 million cycles per second. The commonly discussed MHz and GHz quantities describing systems and processors refer to the frequency of the clock on that system. The word “cycle” in this term refers to the fundamental unit of timing in digital logic: the clock cycle. For many systems with tight timing and more direct access to the hardware, especially older systems, cycle accuracy is a key aspect of highly accurate emulation. Cycle accuracy, loosely, means that every single aspect of the emulated system occurs at the correct time relative to everything else. The term has a specific meaning, but it is often misunderstood and over-broadly applied. One of the most prevalent terms used to describe emulation accuracy is “cycle-accuracy”. While there is a kernel of truth to these claims, there is far more to the reality of the matter. Less accurate emulators are often said to be faster and “good enough” for most games. Accuracy in emulators is thought to mean it’s slower, but has fewer bugs. There is no simple metric for what makes an emulator “accurate”. However, there is a significant amount of complexity hidden behind this simple term. The term means how close the emulation is to the behavior of the original hardware. Emulation Accuracy, Speed, and OptimizationĪ commonly discussed topic in emulation is the “accuracy” of an emulator.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |