This is something I am having trouble wrapping my head around. Say for example PCEm. It can emulate up to Pentium II, however Pentium III is nearly impossible due to current hardware restraints. However, a Pentium III is 433mhz (if I remember correctly) and modern CPUs are well into 5ghz range. However, to accurately emulate a 433mhz you need x amount of CPU.
Why is that the case? If the CPU you’re using to perform the emulation is vastly more powerful?
I read it’s same even for the Super Nintendo, it ran 5mhz, and for accurate emulation you’d need 3Ghz (which is around today, but wind back a few years ago it would the the same question).
Hopefully it makes sense, I am still trying to understand emulation on a deeper level. Happy to have any links to any docs that answer this question as well.
In: Technology
Particularly for SNES it’s about accuracy. If the program wants to calculate 123+456 then you could
* Return 579.
* Return 579 in exactly 6 cycles, otherwise it’s too fast.
* Return 444 because the second operand was about to be changed and the original hardware fetched in sequence so it always received the updated value while your new CPU is pipelined to fetch both values at once.
A lot of software can be faithfully emulated simplistically, but some features can intentionally or unintentionally rely on very specific hardware interactions, and that’s way harder to emulate.
Latest Answers