Live data from Hacker News

RPCS3: An open-source PlayStation 3 emulator for Windows written in C++

github.com

11–20 of 50 posts

Re: RPCS3: An open-source PlayStation 3 emulator for Windows written in C++

#11

I doubt this will run well on anything but the latest high base clock PC's. I have a 2.2 Ghz Sandy Bridge laptop, with Turbo Boost up to 3.1 Ghz, but Turbo Boost is mainly marketing scam by Intel, so it will run as if it's 2.2 Ghz. Plus Haswell only has a ~15 percent IPC improvement over SNB. With the PS2 emulator I can't even get 60 fps for most games.

Does it matter though, this is an elegant hack in the true sense of the word. The cell processors architecture pretty much rules out high fidelity emulation directly on an x86 chip any time soon. Not all hacks have to be useful (even for a given value of useful).

I disagree. High-speed emulation of the processor would be possible using dynamic recompilation, a la QEmu. Someone would just have to write the code to do it.

Re: RPCS3: An open-source PlayStation 3 emulator for Windows written in C++

#13
post #9
post #6

Earlier quoted context omitted.

As it stands right now the chance of seeing a playable PS3 emulator is much less than the chance of seeing a playable PS4 emulator. This is of course due to the x86 processor on PS4 EDIT: DCKing corrected me on this I erroneously assumed that the CPU architecture was the main hurdle. Turns out the GPU is a much bigger problem. The more you know, thanks DCKing.

This is not true. The great complexity of modern GPUs is a much larger problem generally than emulating a CPU. Furthermore, the previous x86-equipped console, the original Xbox, never saw any decent progress in emulation whereas its far more exotic competitors have really good emulators. That's not to say the exotic Cell architecture is not a major problem for PS3 emulation. It is. But having an x86 CPU does not seem…

I did not know that the GPUs are that different from their desktop cousins. Do you know the reason for this?

Re: RPCS3: An open-source PlayStation 3 emulator for Windows written in C++

#14

Earlier quoted context omitted.

Does it matter though, this is an elegant hack in the true sense of the word. The cell processors architecture pretty much rules out high fidelity emulation directly on an x86 chip any time soon. Not all hacks have to be useful (even for a given value of useful).

I disagree. High-speed emulation of the processor would be possible using dynamic recompilation, a la QEmu. Someone would just have to write the code to do it.

I disagree. Dynamic recompilation wouldn't help with the fact that x86 just doesn't have an equivalent of SPUs. They can be emulated, but they will be nowhere near as fast as the real thing. You can reliably emulate the PPU but that's about it. I've programmed for the PS3 and the architecture is so different to x86 that any emulation would have to somehow make up for the hardware that doesn't exist in x86. Early games for the PS3 didn't even use the SPUs, or barely used them, running mostly on the PPU, and those games should run fairly decently fairly soon. But latest games like The Last Of Us, where the SPUs have been pushed to the limit? I wouldn't count on that being emulated anytime soon.

Re: RPCS3: An open-source PlayStation 3 emulator for Windows written in C++

#15
post #10
post #9

Earlier quoted context omitted.

This is not true. The great complexity of modern GPUs is a much larger problem generally than emulating a CPU. Furthermore, the previous x86-equipped console, the original Xbox, never saw any decent progress in emulation whereas its far more exotic competitors have really good emulators. That's not to say the exotic Cell architecture is not a major problem for PS3 emulation. It is. But having an x86 CPU does not seem…

Do you think this is because of difficulty in emulation or because the X-Box was so easy to hack? It was not super expensive to buy a used X-Box and mod it even back when new games were coming out for it, so maybe it just didn't seem like a worthwhile investment to spend time writing an emulator?

I'd recommend reading this post [1] by the dev of an existing Xbox emulator. It's a summary of the issues inherent to the emulation of the original Xbox, highlighting some major hurdles and technical difficulties that would have to be overcome.

[1] http://www.neogaf.com/forum/showpost.php?p=48088464&postcoun...

Re: RPCS3: An open-source PlayStation 3 emulator for Windows written in C++

#16
post #13
post #9

Earlier quoted context omitted.

This is not true. The great complexity of modern GPUs is a much larger problem generally than emulating a CPU. Furthermore, the previous x86-equipped console, the original Xbox, never saw any decent progress in emulation whereas its far more exotic competitors have really good emulators. That's not to say the exotic Cell architecture is not a major problem for PS3 emulation. It is. But having an x86 CPU does not seem…

I did not know that the GPUs are that different from their desktop cousins. Do you know the reason for this?

They are not, the problem is how you use them. For example - fetching a texture data on PS3 takes about 50 clock cycles, while on a PC it takes 1000-2000 cycles, because the request has to go through all the driver layers first. PS3 uses its own version of OpenGL(PSGL) which has a much more low level access to hardware. That level of access is simply not provided by PC hardware, so it has to be somehow emulated - and for high performance GPUs we have nowadays, it's rather difficult.

Re: RPCS3: An open-source PlayStation 3 emulator for Windows written in C++

#17

Earlier quoted context omitted.

Does it matter though, this is an elegant hack in the true sense of the word. The cell processors architecture pretty much rules out high fidelity emulation directly on an x86 chip any time soon. Not all hacks have to be useful (even for a given value of useful).

I disagree. High-speed emulation of the processor would be possible using dynamic recompilation, a la QEmu. Someone would just have to write the code to do it.

It's not "just" a software problem.

The SPU's are a fundamentally different architecture to an x86 been something akin to a graphics card, heavily optimised for a very particular kind of floating point calculations (somewhat similar to SSE but much more task focused).

A more likely approach is to use something like CUDA/OpenCL but again while closer in architecture the SPU's are incredibly optimised for one thing.

Re: RPCS3: An open-source PlayStation 3 emulator for Windows written in C++

#18
post #13

Earlier quoted context omitted.

I did not know that the GPUs are that different from their desktop cousins. Do you know the reason for this?

They are not, the problem is how you use them. For example - fetching a texture data on PS3 takes about 50 clock cycles, while on a PC it takes 1000-2000 cycles, because the request has to go through all the driver layers first. PS3 uses its own version of OpenGL(PSGL) which has a much more low level access to hardware. That level of access is simply not provided by PC hardware, so it has to be somehow emulated - and…

Do you think DX12 or Mantle will help with overcoming the high-level API overhead?

Re: RPCS3: An open-source PlayStation 3 emulator for Windows written in C++

#19
post #13

Earlier quoted context omitted.

I did not know that the GPUs are that different from their desktop cousins. Do you know the reason for this?

They are not, the problem is how you use them. For example - fetching a texture data on PS3 takes about 50 clock cycles, while on a PC it takes 1000-2000 cycles, because the request has to go through all the driver layers first. PS3 uses its own version of OpenGL(PSGL) which has a much more low level access to hardware. That level of access is simply not provided by PC hardware, so it has to be somehow emulated - and…

I imagine that timing and synchronisation between things has to be emulated too for various operations to work as expected, further complicating this.

Re: RPCS3: An open-source PlayStation 3 emulator for Windows written in C++

#20
post #13

Earlier quoted context omitted.

I did not know that the GPUs are that different from their desktop cousins. Do you know the reason for this?

They are not, the problem is how you use them. For example - fetching a texture data on PS3 takes about 50 clock cycles, while on a PC it takes 1000-2000 cycles, because the request has to go through all the driver layers first. PS3 uses its own version of OpenGL(PSGL) which has a much more low level access to hardware. That level of access is simply not provided by PC hardware, so it has to be somehow emulated - and…

I agree with your general point, but PSGL is pretty much never used. I only know of a couple of small indie PSN titles that used it, mostly to ease the porting process from PC. It's way too slow for the big games, who use a lower level API called LibGCM.
Post reply on HN