eli5 If video game consoles are essentially just weaker computers, why did it take so long for PCs to get 7th gen console emulators, why are we only just getting 8th gen emulators, and how long until we see 9th gen emulators?

610 views

eli5 If video game consoles are essentially just weaker computers, why did it take so long for PCs to get 7th gen console emulators, why are we only just getting 8th gen emulators, and how long until we see 9th gen emulators?

In: 1

14 Answers

Anonymous 0 Comments

Consoles contain some very specific hardware dedicated to certain tasks like rendering 3D models in a certain way, or synthesizing sounds in a certain way. Since they’re not using standard PC methods of doing these things, a PC can only do so much of the processing in its own dedicated hardware, and has to do the rest on its CPU. CPUs are very general-purpose components; they’re pretty much never as good as dedicated hardware at doing any particular task. So, given how hard a PC has to work to emulate the various components of a video game console, emulation is typically about two generations behind.

Anonymous 0 Comments

People here explained things pretty well, but if you want something a little more in depth, check out this classic article from Ars Technica on the challenges of emulation.

https://arstechnica.com/gaming/2011/08/accuracy-takes-power-one-mans-3ghz-quest-to-build-a-perfect-snes-emulator/

Anonymous 0 Comments

Former game developer here,

> If video game consoles are essentially just weaker computers

They aren’t.

> why did it take so long for PCs to get 7th gen console emulators

You need to emulate a 3.2 GHz processor for both the XBox 360 and PS 3. Processors today are still in the 2.x-3.x range, with bursting maybe up to 4.x. Not only is speed a concern, but more importantly there is architecture that needs to be translated from one CPU to the other. “A + B” may not be implemented in the circuitry the same way from the PowerPC to the x86. The complexity of this issue is one that cannot be summarized easily. There are very subtle timing issues, even bugs at the hardware level, that need to be correctly emulated. Plus you have the overhead of reading the program as data in software and dispatching each opcode to your emulator subroutine. So you’re not going to emulate a 3.x GHz CPU on another completely different 3.x GHz CPU.

There’s a project called GateBoy, which is a first-gen gameboy emulator, all the way down to the circuitry. They did it by decapping a GameBoy CPU, taking a picture of the traces under a microscope, and using software to generate a map, and again to generate the emulator code from that. It’s a per transistor emulator. A) It’s still not completely correct, because there are hardware error cases that are not trivial to reproduce – there are test cases compared to actual hardware the emulator still fails to faithfully emulate. And B) It only runs 5-6 FPS on modern hardware.

Do you need that much faithful reproduction? Not always, and game emulators try to skirt as much responsibility for the sake of performance as possible, but sometimes it is indeed necessary, especially if games rely on some weird quirk. This is by no means a trivial problem.

In short, emulation is mostly overhead. Mapping the ADD instruction from one CPU to another isn’t enough. You can do all that and still have a non-functioning emulator.

Given the level of difficulty, I’m not sure why developers even try. Really. It would likely be faster and easier to JUST BUY a compatible CPU and build a PCI-E daughter board that just runs the program for you. Or if the CPUs are out of production, reproduce it with an FPGA.

I mean, that’s what Sony did. The PS3 was backward compatible with the PS2 because they built a PS2 into the PS3, processor and all. There was no emulator there. I haven’t kept track of more modern consoles, but each generation switches architecture, so this is how the manufacturers mostly maintain backward compatibility, if they bother in the first place.

> why are we only just getting 8th gen emulators

Both the XBox and PS were based off the AMD Jaguar. By the graces of AMD, this very-not-x86 CPU still supported a lot of x86 extended instruction sets like SSE and MMX. AMD basically copy/pasted these units from their x86 lines and made this hodge-podge weird processor. This means a fair amount of instructions in program code will map pretty efficiently to x86 in an emulator.

> how long until we see 9th gen emulators?

9th gen are x86 processors. This is going to be more of a DRM problem than an emulation problem. It’s hard to say, really.

I recommend you just buy a PC port of the same game, if available.

Anonymous 0 Comments

Emulators are pretty resource intensive. It takes a lot of processing power for contemporary computers just to run stuff like project64 and other emulators.