PS4 Emulator Question

11/07/2015 18:13 ArazGames#1
Hey, I'd like to ask why it's so hard to make an Emulator for example PS4. I read that's because the hardware must be emulated too and that you need a really strong machine for that, but isn't it possible to just make the Software work on PC Hardware?

Greetings,
Araz Games
11/07/2015 20:29 Jeoni#2
That would imply to recode the application to work with a PC.
There are some problems with this approach. The PS4 is using a semi-custom hardware solution which might have some features that the software uses and that normal computer system don't have. So you have to find all those instructions or hardware specific approaches made by the software and find a way to recode them in order to use it on the normal x86_64 instruction set.
Next the PS4 might work with a totally different operating system and may ship own libraries which the software uses. So you'd have to convert all operating system specific mechanics (including things like the system to use shared libraries / DLLs) to solutions that can be used with your operating system and may recode the shipped libraries in the same way as the application itself.
I think it is not impossible, but it is definitly not worth the time. Furthermore I guess that you will encounter several unique cases, so coding a conversion tool would be quite hard to impossible.
With best regards
Jeoni
11/07/2015 20:39 Shadow992#3
Quote:
Originally Posted by Jeoni View Post
That would imply to recode the application to work with a PC.
There are some problems with this approach. The PS4 is using a semi-custom hardware solution which might have some features that the software uses and that normal computer system don't have. So you have to find all those instructions or hardware specific approaches made by the software and find a way to recode them in order to use it on the normal x86_64 instruction set.
Next the PS4 might work with a totally different operating system and may ship own libraries which the software uses. So you'd have to convert all operating system specific mechanics (including things like the system to use shared libraries / DLLs) to solutions that can be used with your operating system and may recode the shipped libraries in the same way as the application itself.
I think it is not impossible, but it is definitly not worth the time. Furthermore I guess that you will encounter several unique cases, so coding a conversion tool would be quite hard to impossible.
With best regards
Jeoni
Besides that, to asnwer the original question of thread starter, the PS4 is highly optimized for games.
So all kind of "useless" things for games were removed from hardware and this gained space is used for graphical/gaming things.

I never tested it but I am quite sure if you are comparing a mean Dekstop PC with PS4 and use some kind of optimization problems/sorting/etc. as benchmark your pc will be 2-3x faster.

But then if you switch to gaming your pc may have got big problems with newest games and PS4 can handle them easily.

So the main reason why it is not easy (besides the coding fact) to create an emulator is the fact that important things are missing or just too few available in normal desktop-pcs. You will get hard FPS drops.

The only "ok" approach would be the approach of wine for linux.
Wine enables you to execute windows programs under linux.
This is not done by emulating libraries or similiar (ok to be honest if you have a deep look in source code you may find sometimes kind of emulation) but it is mostly done be "recompiling" the windows programs to programs that run on linux.

So if you write a program that recompiles ps4 games to windows/linux games, you may be able to run them on pc. But PS4-OS and libraries are such a giant software... It would be extremly hard to write a converter for this.
11/07/2015 21:19 ArazGames#4
Ok, thanks for the answers!
11/07/2015 22:43 alpines#5
Quote:
Originally Posted by Jeoni View Post
...
There is surely nothing wrong with that but for example (PS4 is different I guess) the XBOX 360 or the One (not sure which) had their games developed in SDKs without console hardware. They put PCs in computer stores running the game in the XBOX SDK.

Also it's not impossible to code an emulator but you'd have to crack the bios first and learn about the console because every console handles everything different. The GameBoy for example has a modified Z80 cpu in it with different registers and operations compared to the stock Z80.