Note: I've attempted to ask this question several times in the "Arqade" category. Just like with the "History" category, anything I ask there is deleted by their broken bots soon after I post it. And I don't mean "closed", but DELETED. As in, memoryholed. 404 error. That's why I ask here. Not because I think this is the best fitting category, but it's the next best, is about retro computers and it even has an "emulation" tag.

Ever since the late 1990s, I've tried countless video game emulators, everything from the NES to the Nintendo 64. They have all been awful.

I'm not implying that I could do better, of course (I could not even make a crappy emulator), but as a person who grew up with video games of the golden era (1980-2000), I've become increasingly appalled by how the classic games are butchered by people who apparently cannot tell the difference.

Every time I've brought up just how horribly butchered the games look, sound and play through their emulator, they've acted as if I were personally insulting them, their parents, or their kids. If I don't get banned/blocked right away, they become at best very surly, no matter how nicely I put it.

It truly seems as if they cannot tell the difference. I feel like some sort of food snob who tries to convince somebody that their package of moldy fries that they found in a dumpster behind a fast food restaurant is not the same as the food you get at the finest restaurant in town.

I immediately notice that the resolution is completely wrong, that the aspect ratio is stretched to widescreen, that the text and 2D sprites look completely warped and "cut off", that various entire layers are not present or flicker, that the in-game "big screen" object in Mario Kart 64 doesn't display anything at all, that the animations are absurdly off/glitchy, the sound is all warped/sounds wrong, the timing of all kinds of things seems to be nothing like they are on the real hardware, etc.

It seems to me as if they have entirely ceased all emulation development since many years. Every time, 5 years apart, when I try the latest emulators, I notice that they still are lightyears from actually emulating the real hardware. Even for freaking NES, as crazy as that sounds! But especially for SNES, Nintendo 64, PlayStation, Saturn, etc.

Maybe I'm just an idiot who can't find the "real" emulators, but I don't think they exist. I think the people who use them simply don't have the ability to tell how bad they are. I'm not asking for links or names of emulators as I'm pretty sure I know about them all.

I dream of the day when I can finally play all these games that I never got as a child, and which are now too expensive to actually buy second-hand, and which are butchered with current emulators.

With this in mind, what does "cycle-accurate emulation" mean? Are there any such emulators out there? And does that mean that it's 100% impossible to tell them apart from the real hardware in 100% of all cases, if hooked up to a CRT TV and using some sort of adapter to be able to use the real controllers?

  • 6
    While the story you tell ist interesting (and typical for fanboy reactions you received), It would be really helpful if you could cut it down to the question you want to have answered and maybe why /what for you need the answer. At first sight, the question you ask has already been answered here "what exactly is a cycle accurate emulator". Maybe have a look and modify your question to mark what different information you seek. – Raffzahn Aug 21 '20 at 21:25
  • 1
    While the defects in emulation sound bad (but I'm not a video gamer), they don't sound like a problem of not having cycle-accurate emulation. – another-dave Aug 21 '20 at 23:18
  • 1
    I voted the question down for being way too ranty and also a duplicate – OmarL Aug 22 '20 at 7:30
  • 1
    Arquade SE is hostile, Retrocomputing is not. – peterh - Reinstate Monica Aug 22 '20 at 8:46
  • 1
    @Jean-FrançoisFabre Thanks :-) Imho the difference roots in that the RC SE users programmed 8-bit computers 30 years ago, while the Arcade SE users played on so-named "consoles" (not programmable embedded game systems). The difference only shows, where our lives leaded us in the following decades. – peterh - Reinstate Monica Aug 22 '20 at 9:52

Speaking as an emulator author, "cycle-accurate emulation" is a label that authors apply to their emulator if they want to advertise that they've attempted to implement the parts of the logic they consider fundamental so that every event they model occurs within the correct discrete window of time as marked out by the system clock.

On something like a NES that should mean that the processor makes its decisions at the correct moments, that the image processor fetches tiles and sprites at the correct intervals, and therefore that those things intersect as they did on real hardware.

In essence: the objective is to ensure that it is impossible for software to detect that it is in an environment other than its original.

For the NES, FCEUX is both claimed to be cycle accurate, and widely accepted as such. So it likely is.

With many emulators things fall down a little at the point of video output — it's still fairly common to send complete frames atomically, and either display them at exact 1:1 pixel ratio with the host machine's screen. So, in modern terms, the pixels always end up square. Some emulators attempt post-processing to apply the correct aspect ratio and possibly to give a more TV-like display but mileage varies and clearly sending a whole frame and then post-processing it is completely distinct from how real audio-video equipment functions.

I'm the author of an emulator that tries to maintain signal-level fidelity even in that last mile, which means there'll be others too, but I'm not aware of any mainstream emulator that does so.


"Cycle-accurate" means the emulated parts (mainly the CPU and the video processor) do things at the same speed and with the same steps sequence as the original hardware did. For example, the real CPU did instruction fetch in the first cycle, then did an instruction decoding, then did the memory access, then reads the value, etc... At the same time, the video processor did its own job. A lot of special effects were achieved with this cooperation (or "race condition") in the mind, depending on the exact timing. I.e. the CPU changes the video processor registers at a very precise moment to generate the desired video effect, and this timing depended on the "clock cycles per each instruction".

Such level of emulation is harder to achieve, so a lot of emulators does it work in a simple way: just emulate "a bunch of CPU instruction" at one time, then compute the video result, and so on. It is easier and "fair enough", but it cannot achieve the proper look, especially in the cases the software rely on the exact timing.

Not the answer you're looking for? Browse other questions tagged or ask your own question.