PS3 Emulator is not easy to use. Here we will look at the reasons. Sony has recently announced its backward compatibility for the PlayStation 5.
The backward compatibility comes with a commitment to support PlayStation 4 games, over 4000 titles and in some instances, game-specific enhancements will be applied.
PS3 Backward Compatibility
In recent times Sony has hesitated to support backward compatibility with a razor-sharp focus firmly in the future but this wasn’t always true in fact.
Historically Sony has done a good job preserving its library and bringing it forward.
The Sony PlayStation 2 would contain PS1 hardware on its motherboard for near-perfect backward compatibility.
Early models of the PlayStation 3 would do the same with PlayStation 2 hardware only, later sacrificing the hardware in favor of software emulation but this would all change with the PlayStation 4.
While still able to support PS1 and some PS2 games via emulation.
PS3 was nowhere to be found.
This was especially confusing to its customers who are wanting to bring their existing games forward, yet were unable to.
Sony messaging on this wasn’t clear.
No reasons were given specifically other than PS3 games are not compatible with PlayStation 4.
The underlying architecture of the PS3 would be a major concern.
It was a massive departure from anything that came before it and indeed anything that would come after.
PlayStation 4, with its underpowering jaguar CPU, would be an exercise in futility.
Surely the PlayStation 5 with its 8 core, 16 thread ZEN 2 architecture, fast clock speed, and 10 Teraflop GPU would make it an ideal candidate, for PS3.
Yet Sony has not committed to Sony PS3 in the PlayStation 5.
Once again with a blanket response that it’s not compatible.
So why is this?
We also know that the PC is capable of emulating the PlayStation 3 with the very impressive RPCS3 Emulator.
That emulator does run at a fairly high level of compatibility and is technically one of the most complex emulators out there.
PlayStation 5 hardware should be powerful enough to emulate the Sony PS3.
If developers can get a high level of compatibility with the PS3 via emulation then Sony should be able to get PS3 games running on the PS5.
There are some things to consider here.
So let’s start from the beginning.
The Sony PS3 is either a marvel in engineering or a horrible mistake depending on who you talk to but for me, it’s a brilliant piece of engineering.
The system is packed unique with features and when utilized correctly it was unrivaled.
The cell processor combined a general-purpose power PC core or PPE.
It featured a 3.2 Gigahertz dual-core CPU as well as 8 additional co-processors.
It is known as synergistic processing elements or specs which were also clocked at 3.2 Gigahertz.
Taking advantage of these would be complicated.
Even Sony’s own Gaza Nordia Mauchi of Polyphony Digital would describe developing games on the PS3 as a nightmare.
The PS3 would also incorporate the RSX or reality synthesizer which was the Graphics Processing Unit developed for the PS3.
The RSX would be based on the Nvidia 7800 GTX.
It shares a lot of similarities with that particular architecture Albeit with some modifications.
It gets the best performance out of the PS3 hardware, so the developers needed to utilize the SPUs.
PS3 Emulator SPU Snippet Processing Unit
This would require a significant learning curve and some of the early PS3 games would only utilize the PPU and not take advantage of the SPUs at all.
One game that comes to mind is Ridge Racer 7.
The main strength of the SPUs was to offload mathematical processing.
For example things like AI particle engines collisions audio effects rain and many others with all available SPUs running optimized code.
It’s said that it can still rival modern desktop processing and nobody denies its power but unfortunately.
This architecture has caused plenty of headaches in the early days.
Many developers struggled to take advantage of the SPUs because it was extremely complicated to develop for each separately.
An SPU contains local storage of 256K memory to get data to and from the local store DMA or direct memory access is utilized to share data around each unit.
A DMA transfer can be initiated from the PPU, SPUs, and even the RSX once the data hits the SPUs.
The data access is very fast so keeping the SPUs hydrated with data and running their processors is what you want.
Each SPU has 128 registers which are each 128 bits wide or 16 bytes. These are suited for the fast processing of vector applications.
If we consider a simple SPU program, to write a single byte from the SPU’s local storage to main memory we must first set up a DMA transfer.
Begin the transfer wait for the transfer to complete then load 16 bytes or 128 bits from the local memory.
If we go the opposite direction in other words, writing a byte to main memory first must be arranged as a 16-byte value.
It must be stored in the SPU’s local memory then a DMA transfer must be set up, started, and cycled until the DMA is complete.
Pretty complex stuff for a simple read and write of one byte to and from main memory.
If we compound this with the 5 additional SPUs plus the PPU which potentially could be running their processes then the problem becomes much more complex all of a sudden.
We have to consider things like synchronization, memory mapping, and communications.
That requires data to be shared across different units.
PS3 Emulator RPCS3
Emulating the PS3 and its SPU hardware and the intercommunication between units is a complex problem but the good news is it’s already been done.
RPCS3 is an open-source PS3 emulator developed for Windows, Linux, and BSD.
The first public release of this emulator was back in 2012 and its first breakthrough was to run smaller PS3 homebrew.
This was a good first step because the majority of homebrew would not take advantage of the SPUs.
It meant that the focus would be on emulating the PPE and RSX to at least get simple homebrew to run flash forward to 2020.
An RPCS3 can run many commercial games, emulate the PPU RSX and even the SPUs at a good level of performance.
In recent times, we’ve seen some impressive breakthroughs from the RPCS3 team including metal gear solid 4 running at 4k at full frame rate.
The compatibility list is almost at 60% of the entire PS3 library as playable with a further 33.5 as getting in-game.
That in itself is pretty impressive stuff.
This emulator is probably the most complex one ever developed. Emulating the SPUs has been very challenging.
Sony would face attempting to emulate the PS3 on the PlayStation 5.
The biggest bottleneck there really is, is those SPUs.
They do need some kind of hardware for it to be effective porting RPCS3 can help.
You can learn more about RPCS3 here.
But without hardware synchronization, to emulate the SP atomic memory access becomes a challenge for performance.
Ideally, Sony would want to incorporate SPU hardware on the motherboard to handle this piece for them.
Mark Cerny did mention that the tempest engine has an SPU-like cluster for audio processing.
Perhaps Sony could leverage this but there are also other issues with regards to the AMD architecture on Intel processors.
The x86 extension known as TSX provides a feature set to handle transactional memory.
RP SC3 makes use of a TSX feature known as RTM or Restricted Transactional Memory.
It effectively provides exclusive access to a memory block so if another thread attempts to touch the same block of memory, the decision process is made by the calling application.
This TSX extension feature aligns well with the SPU’s transactional and atomic memory behavior.
Unfortunately, the TSX extensions are exclusive to intel and not available on AMD and that includes the ZEN 2 processor found in the Sony PlayStation 5.
Without it, a custom software solution must be developed that manages the locking and copying of memory to determine if any memory block was altered.
This can become quite complex when you’re dealing with many SPUs.
This means a compromise in performance.
It is worth mentioning that the RPCS3 team was able to work around this for Ryzen.
They came up with a very clever cache line emulation mechanism that emulates the contention problem with minimal locking.
Understanding the cell architecture and personally writing tens of thousands of lines of SPU code emulating the PS3 is something very tricky.
The most difficult thing of all will be the SPUs to this day, over 15 years later they are still in a class of their sustained single core.
Performance on an SPU is still higher than almost anything on the market today.
Writing optimized SPU code.
You are almost writing two programs at once.
One to manage the data and one to do the math and you’d pair them up so they executed at the same time.
Emulating them would be near impossible on any modern CPU core doing.
It across multiple cores wouldn’t buy you anything.
A modern PC runs at a similar clock speed and can do multiply, add in a single cycle but it can’t sustain it.
It has to load from memory with the cache.
It has to deal with branching. It doesn’t have enough registers.
DMA engine is very complex, we talked about our simple read-write from the main memory example earlier and how the DMA worked.
An SPU DMA can be issued on behalf of another SPU because the DMA controller itself is a memory-mapped insomniac developed an SPU system for all of its games known as Index Trim.
This would provide a 25 graphic boost over the RSX.
PS3 RSX Reality Synthesizer
It would utilize any unused SPUs to pre-cull vertices and off-screen triangles.
It generates a new indexed list with only visible triangles but as the RSX was processing multiple SPUs would be modifying the command buffer.
The RSX had a pre-fetch of 4 kilobytes.
So if the modification was occurring within 4 kilobytes of the location, it was reading from the command buffer.
A semaphore would be utilized so that the RSX would never see any bad data.
Getting this to work in an emulator would be a nightmare as this requires some very specific hardware features that are on the RSX.
Now consider the tens of thousands of SPU programs that can perform very unique tasks and the way that they communicate with the hardware in thousands of different ways.
Our PCS3 does a good job emulating the SPUs but it may become very difficult for some use cases.
For Sony to consider PS3 emulation, it would require some percentage of compatibility which would be perhaps higher than the current 60 of playable RP CS3 games.
In conclusion, ultimately the cost and time commitment to implement a PS3 emulator in the PS5 or indeed any future hardware would be hard to justify.
The research cost alone would be significant and the budget required for it could not easily be measured.
Given this, my personal feeling is that to solve this Sony is just looking to remake as many PS3 exclusives as they can.
Sadly however it may mean that lesser-known games such as Puppeteer may be left behind or others that belong to third parties such as Metal Gear, Solid 4 by Konami may not be interested in a remake.
With that, I just can’t see PS3 emulation happening on any Sony console.
Its complex architecture is both its biggest triumph and its biggest downfall.
I think that PlayStation 2 and PlayStation 1 backward compatibility will eventually make their way to the PS5.
I would expect some type of announcement with those two systems maybe at some point.
The PS5 has established itself and it’s just off and running with the next generation I do think there is room for PS1 and PS2 to make their way into the PlayStation 5.
As we’ve seen unfortunately due to the complexities of the cell architecture and specifically the SPUs that we went into a lot of detail outlining here, it just doesn’t seem likely that Sony would consider a PS3 emulator at this time.
I think the only thing that we can consider going forward is the RCPS3 emulator.
Here at AMTEmu, we guide you through he the emulation process and the Emulators.
You can download AMTEmu, an AMT Emulator to activate Adobe Products for free.
Feel free to Contact Us for your suggestions and feedback.