how emulators struggle with frames per second so much?

242 viewsOtherTechnology

After the recent news of people running bloodborne on PC on a ps4 emulator at a massive 1 frame per second, I’m just wondering why they tend to struggle to run these games?

In: Technology

9 Answers

Anonymous 0 Comments

Optimization. Bloodborne was built and meant to be played on the PS4… not an emulator. The emulator isn’t a PS4. It’s trying but it’s nowhere near 100%.

Anonymous 0 Comments

Hardware, especially graphics hardware (GPU), is super optimised. An emulator basically replicates this in software on more generalised hardware (CPU) this is massively less efficient.

As this is ELI5 let me use an example:

Think about a calculator, dividing large numbers is very fast if you use it. You can do the same thing in your head or with a pencil on paper. It will just take more time.

Running anything/bloodborne on computers is, this is a fast oversimplification, just doing a lot of math.

Running bloodborne on the original hardware is like using the calculator. Running it in an emulator is like using a pencil and paper.

Does this help ?

Anonymous 0 Comments

Sometimes the games are coded to exploit some particular hardware optimizations of a platform. And these optimizations are not always easily translated to emulators.
While not directly referable to this particular game you can watch some YouTube videos where they explain some of these hacks helped to build games on older consoles so they appeared ahead of their time

Anonymous 0 Comments

Imagine you have like a game, but it’s basically a huge tank of water. 

This tank of water has like 3-4 pipes coming out of it, and the designed it to fit exactly 3-4 pipes in the ground (the PS4), so when the pipes turn on, the water flows freely from the tank outlet pipes to the ones in the ground. It all goes pretty smoothly. 

Now imagine the same tank, but you take it to a place where the pipes in the ground don’t quite match up to the outlet pipes of the water tank. So you have a bunch of guys with buckets, running from the outlet pipes, filling up the bucket and then running and pouring it into the ground pipes. It’s a lot slower, but the end effect is the same. 

In this case, the ground pipes are the PS4 hardware, so if you match your game (the water tank) it all works fine. The people running around with buckets of water are the emulator, trying to fake that the water is going directly to the ground pipes. 

In this case the pipes may represent 1 for the pipeline of instructions to the PS4 graphics processor, another for the CPU, another for physics etc. So it’s always better if you have ypur pipes fitting exactly rather than someone in between with buckets trying to do the same thing. 

Anonymous 0 Comments

I always see this answer “it’s optimised for PS4”. Anyone care to eli5 a bit further?

AFAIK a PS4 still has a CPU and a GPU and some RAM, no?

Anonymous 0 Comments

An emulator is a translation layer between the game and the hardware. The game is speaking in “PS4 language”, but the hardware only knows “PC language”. Translating between the two is not always straightforward.

Like, German has the word “schadenfreude” that doesn’t have an equivalent word in English. The translation is almost a full sentence: “pleasure derived by someone from another person’s misfortune”. We have the benefit of being human and can just insert the German word into English. But a computer chip’s “language” is literally hard wired into it. So we have no choice but to use the full sentence translation.

Anonymous 0 Comments

So when you play on your PS4, the PS4 is playing the game Bloodborne. When you play on an emulator, your machine is playing the game “Pretend to be a PS4” and that PS4 is playing Bloodborne. 

Anonymous 0 Comments

Your PC is pretending to be a PS4. The Pretend PS4 is running pretend PS4 firmware on the Pretend PS4. The Pretend PS4 Firmware is pretending to run Bloodbourne on pretend graphics cards. It’s a lot of work for your poor PC.

Anonymous 0 Comments

A console has dedicated chips to process commands for games. These chips are “custom” built for the console, and so programmers have to build a game around those chips. Your PC doesn’t have those chips. So what is easy for a console chip to do requires more commands for your PC to do. Emulators basically “pretend” to be the chips of the console. So instead of using your PC’s power for doing the actual task, an emulated game has to have inefficent code that first uses the “fast console” chip commands, and each and every one of those commands is translated for the PC to do.

It’s sort of like making a coffee. You can make a coffee at home. It’ll be fast (that’s your PC). You can be inside a Starbucks and order a coffee, it’ll also be fast (that’s your console). But if you order a coffee to be delivered from Starbucks, it’ll be slow – because there’s an extra step of a delivery person doing all sorts of things for everyone else, and eventually doing your step of “bringing you the coffee.” And your coffee won’t be hot anymore.