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?

483 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

The console manufacturers are not kind enough to hand out the full documentation, schematics and source code of the hardware and software.

We don’t know exactly how the consoles work.

So the emulator developers need to research the consoles on their own to find how they work.

Anonymous 0 Comments

Different hardware speaks different languages, and those languages don’t have a uniform syntax/structure.

A PC can speak PC language faster than the consoles can speak their own languages, but to emulate the consoles the PC needs to convert console language to PC language in realtime (which is quite resource intensive). The hangup isn’t ‘taking so long to get emulators’, it’s ‘taking so long to get emulators that can translate between console language and PC language fast enough to play console games’. The modern consoles also have some security features in place to make emulating games more difficult too, since console emulation is piracy 99.999% of the time.

Releasing games on multiple platforms is essentially the same process, except it’s translating the game code into the target language ahead of time so that the console/pc doesn’t need to do that translation itself on the fly

Anonymous 0 Comments

Speculating.. They’re often not much weaker, particular at launch, and historically have both been entirely different cpu architectures than x86 pc’s, but often also had custom hardware funtion – as coprocessors, or on die feature etc etc.

Emulating in software bits of hardware specifically designed to do things that are hard to do in software, in a way that’s performant enough to play games is probably quite difficult, so PC’s have to progress a long way ahead of that hardware to be able to emulate it.

A stretched analogy.. you can, for example, “emulate” a video card in software, and in ye olde days of yore that’s where we did graphics processing anyway.. but I suspect you would struggle to get the performance of even a 10 year old video card out of a pure cpu/software implementation.. and that’s just talking features, not worrying about actually emulating the architecture!

Emulators, to be useful, also can’t relay on the fastest, most modern pc hardware either, further holding them back in the general case.

Anonymous 0 Comments

When youre playing a rom, its not the same as a native pc game. Running an emulator is like running a computer within a computer. So you need significant power to pretend to be the console, whilst also running the rest of your pc.
It also takes time to develop, because people are interpreting how the emulated system OS works. We do not have access to the source code. A lot of older systems also had very different archetectures to how a pc works

Anonymous 0 Comments

Consoles are specifically built to do just one thing, and do it well. Computers are all-purpose, and that fact alone gives consoles an edge.

And emulating other hardware can be complex, imagine a powerful PC emulating a mechanic calculator, by simulating the physics of the turning cogs. That would be several orders of magnitude slower than just digitally calculating the same thing.

Anonymous 0 Comments

Horses are made for running. They run pretty good, but they’re not that smart, and can’t do much else.

Humans are smart, and they are also good at acting. But we want to do horse stuff. So we put two guys in a horse costume. We had to take top athletes and they constantly need to coordinate what they’re doing which makes things awkward, but it runs like a horse now.

Consoles are designed for very specific tasks. Everything they need to do is pure instinct to them. Emulators are ways for pc’s to pretend they’re something else. But that means they need the computational power for the calculations in game, plus calculations to pretend they’re a console, plus transforming all data the game wants and generates into data the pc can interpret, and that at least 60 times per second. It’s a lot of work.

Anonymous 0 Comments

A lot of it is because the how different the software is (consoles don’t exactly run on windows 10). This means that the coding is different (similar to how just because something runs on windows doesn’t mean it will on Linux and Mac, devs have to spend time on porting it to those systems).

Because emulators are working within the windows 10 environment, it complicates matters since the games were never meant to do so. Because porting over every single game would be unrealistic, emulators essentially work by re-engineering the console software, and have it boot up within the windows system.

However, PC hardware and the software attached to that hardware is still not made for console code, so there’s some inefficiency. Imagine having someone who’s a native English speaker, having to translate to Spanish.

So in a way, it’s kinda like asking “if someone with a PHD in English is better at language than someone with primary school education in Spain, why is the English PHD person not nearly as good at Spanish?”.

Or, ” If the world’s strongest man is such a great athlete, why can’t he run 5 miles?” (Or the opposite, “if X athlete is so amazing, why can’t they deadlift 1100 pounds?”). Both things are related, but they’re far enough away that they’re not going to be nearly as good at the new thing as they are at their own.

Because of this, a PC using emulators essentially need to be 50-100% better than whatever the original console is, add in needing to re-engineer the entire thing as well, it takes a long time (not to mention, emulators are not made by companies, but volunteers, so it’s often a small handful of people working on it).

Anonymous 0 Comments

people are saying it’s because the performance gap isn’t that big but it really is. the overhead of running a general-purpose OS isn’t that big either with new consoles because they ALSO run a general-purpose OS. one with a lot of restrictions sure, but it’s not like all they do is run games anymore. if the games weren’t proprietary they could not only be ported to current PCs, but get a graphics upgrade on the way. but they’re not, so you have to effectively run an OS on top of an OS to play them

the problem with that has always been architecture. PCs are almost all x86, while consoles are MIPS or POWER or something totally custom. so you can’t just rip the software and put it in a container on your PC, you have to create a virtual MIPS processor to run it. and with how little documentation consoles publish it can take a long time to reverse-engineer

consoles switching to x86 doesn’t eliminate this problem either. the processor may match, but the GPU doesn’t. the games expect one specific GPU with its own way of addressing it, so that has to be reverse-engineered too. and the more complex hardware is, the longer that takes

Anonymous 0 Comments

When you take a program down to its most basic level it’s just a bunch of simple instructions to a processor/memory/gpu. Compiling takes human understandable code and turns it to machine code that the computer understand.

Machine code to add two numbers might be something like:
X1: Load number 1 from memory into the cpu
X1: Load number 2 from memory into the cpu
A1: Add number 1 and number 2
X2: Put result back into memory

The game logic itself will be in machine code.

First step is to work out what all the machine code means. It’s not like the console manufacturer gives you that info, so we don’t know what X1/X2/A1 means. This takes a lot of reverse engineering to figure out!

After you work out what the instructions do, often some instructions simply don’t exist on your pc (and vice versa), so now you have to convert them into equivalents. The console may have an instruction to add 100 numbers together in one go, but the closest instruction with your pc adds 16 numbers at a time – so you have to do that 16 number sum 7 times, and you have to partially fill the 7th time with zeros because 100 doesn’t divide by 16 exactly. This is way slower. Some instructions are exceptionally awkward/difficult to emulate/convert – which is why some games that use these features can be particularly difficult to emulate. Going further, some functionality can’t even be emulated, or only approximately.

Anonymous 0 Comments

The console makers like Sony and Nintendo do not want you running their games on your PC, so they intentionally do everything they can to make it harder for you. If we had all of the information freely available, then yes, we could easily play PS5 games on PC.