Why do emulations of old video games still have the same performance issues, even when played on a powerful modern machine?



Why do emulations of old video games still have the same performance issues, even when played on a powerful modern machine?

In: Technology

If your emulation is 100% accurate to the original hardware, you will also be reproducing all of the hardware limitations.

They created the games on limited hardware capabilities.

Those capabilities still exist, even if PCs and systems are faster and better

This depends on the specific game and emulator that you are talking about. Emulators running on Windows systems won’t have the same performance as native Windows games because they can’t use **DirectX 11** features.

Well with hardware limitations back in the day the software had to be optimized to get the best performance out of that hardware. So if your hardware only allowed for 4 interactable objects on the screen at each time, then this is part of the software, so even if you upgrade to a system that supports near infinite objects at the same time all with their own collision dectection and whatnot then it will still not work, because that was not in the game code and you’re still running the old game.

Or the other way around some old games relied on the hardware being slow. Let’s say your snake moves 1 pixel per frame and you have a frame rate of 1 frame per second, then you have 1 move per second. Now if you run that on a machine that supports 60 frames per second or even more as it might be black/white with close to nothing changing each frame, then these games would be unplayable because they were too fast. So you’d need to emulate older hardware and slow them down.

So to make full use of modern hardware you might have to reprogram the game in a new engine.

if your emulation is 100% accurate, it can go to the point where it even emulates Hardware limitations, this can go as far as emulating Hardware quirks, because some games might have been coded on the expectation that this “feature” of the hardware exists and the game likely plays differently, if at all, without it(common example, having your game logic run on its framerate, without adjusting the emulation would play too fast on modern hardware).

Many times, the proper execution of the game on these old consoles was *dependent* on the limitations. E.g., if you used a much faster microprocessor than the original console possessed, then the game will run like it’s in fast-forward.

A recent example I ran into was the SNES game Star Fox on RetroPie emulators. As far as I can tell, there were revisions of Star Fox’s Super FX chip clocked at 20 MHz in later games, but the original revision used in Star Fox was hardware-capped at 10 MHz. So an emulator needs to know to emulate that capping or else the game will run about twice as fast.