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
You’re probably taking about cycle accurate emulation. Almost all SNES games could be emulated just fine back in the 90s on CPUs just a few hundred MHz.
However they’d be a few games that weren’t perfect. The SNES isn’t just a CPU it has a bunch of other chips handing graphics and sound and copying memory around. All those would happen in a very particular order in a real SNES, and developers would know that so they could write code that works in the order things are happening on the SNES’ chips.
So if you want to write a perfect emulator you don’t just go thought the CPU instructions converting them you need to go “ok now there is a CPU cycle so I read one instruction, now there is a DMA cycle, now the audio chip reads one byte of memory, now the graphic chip reads 2 bytes of VRAM, now the CPU has finished processing the instruction and writes 1 byte to the graphic chip’s register” and so on.
It just makes a lot more work for the emulating computer.
Latest Answers