Editing PlayStation 3 emulators

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 13: Line 13:
 
|emulated = {{✓}}
 
|emulated = {{✓}}
 
}}
 
}}
{{for|emulators that run on the PlayStation 3|Emulators on PS3}}  
+
 
 +
{{for|other emulators that run on PS3 hardware|Emulators on PS3}}  
  
 
The '''PlayStation 3''' (known shorthand as '''PS3''') is a seventh-generation console released by [[wikipedia:Sony|Sony]] in late 2006 and retailed for {{Inflation|USD|599|2006}}. The successor to the [[PlayStation 2 emulators|PlayStation 2]], it began development in 2001 when Sony partnered with Toshiba and IBM to create the [[wikipedia:Cell_%28microprocessor%29|Cell Broadband Engine]]. The console was launched a year after the [[Xbox 360 emulators|Xbox 360]] and around the same time as the [[Wii emulators|Wii]]. While it was debatably the most powerful console of the seventh generation, it was also difficult to program for, as its architecture was even more complex than its competitors.
 
The '''PlayStation 3''' (known shorthand as '''PS3''') is a seventh-generation console released by [[wikipedia:Sony|Sony]] in late 2006 and retailed for {{Inflation|USD|599|2006}}. The successor to the [[PlayStation 2 emulators|PlayStation 2]], it began development in 2001 when Sony partnered with Toshiba and IBM to create the [[wikipedia:Cell_%28microprocessor%29|Cell Broadband Engine]]. The console was launched a year after the [[Xbox 360 emulators|Xbox 360]] and around the same time as the [[Wii emulators|Wii]]. While it was debatably the most powerful console of the seventh generation, it was also difficult to program for, as its architecture was even more complex than its competitors.
Line 261: Line 262:
 
|-
 
|-
 
|[[#PSP_communication|PSP communication]]
 
|[[#PSP_communication|PSP communication]]
| {{~}}
+
| {{}}
 
|-
 
|-
 
|[[#PSVita_communication|PSVita communication]]
 
|[[#PSVita_communication|PSVita communication]]
Line 280: Line 281:
 
|-
 
|-
 
|rowspan=3 | Inputs
 
|rowspan=3 | Inputs
| [[List_of_games_that_support_Pressure-Sensitive_Face_Buttons#PlayStation_3_Emulation|Pressure Sensitive Buttons]]
+
| [https://www.pcgamingwiki.com/wiki/List_of_games_that_support_Pressure-Sensitive_Face_Buttons#PlayStation_3_Emulation Pressure Sensitive Buttons]
 
| {{✓}}<ref group=N3>Perfect support for [https://wiki.rpcs3.net/index.php?title=Help:Controller_Configuration#Using_DualShock_3_controller DualShock 3] controller which works with [https://www.pcgamingwiki.com/wiki/Controller:DualShock_3#Wired_connection_-_official_drivers Official Sony driver] and [https://www.pcgamingwiki.com/wiki/Controller:DualShock_3#Wired_connection_-_unofficial_drivers DsHidMini community driver]. Emulator allows to assign one key to change pressure sensitivity. It's possible to have more variants with [https://www.rewasd.com/releases/release-6.3.0 reWASD application] which allows to assign keys or gamepad buttons to [https://help.rewasd.com/basic-functions/virtual-controller.html Virtual DualShock 3]. Emulator supports DualShock 2, but only with special adapter emulating DualShock 3, RPCS3 does not support [https://bliss-box.net/integration/ Bliss-Box API]. Other controllers with pressure-sensitive buttons like [https://www.pcgamingwiki.com/wiki/Controller:Xbox_Controller#Games_with_pressure_sensitive_face_buttons Xbox controller] or Steam Deck touchpads are not supported.</ref>
 
| {{✓}}<ref group=N3>Perfect support for [https://wiki.rpcs3.net/index.php?title=Help:Controller_Configuration#Using_DualShock_3_controller DualShock 3] controller which works with [https://www.pcgamingwiki.com/wiki/Controller:DualShock_3#Wired_connection_-_official_drivers Official Sony driver] and [https://www.pcgamingwiki.com/wiki/Controller:DualShock_3#Wired_connection_-_unofficial_drivers DsHidMini community driver]. Emulator allows to assign one key to change pressure sensitivity. It's possible to have more variants with [https://www.rewasd.com/releases/release-6.3.0 reWASD application] which allows to assign keys or gamepad buttons to [https://help.rewasd.com/basic-functions/virtual-controller.html Virtual DualShock 3]. Emulator supports DualShock 2, but only with special adapter emulating DualShock 3, RPCS3 does not support [https://bliss-box.net/integration/ Bliss-Box API]. Other controllers with pressure-sensitive buttons like [https://www.pcgamingwiki.com/wiki/Controller:Xbox_Controller#Games_with_pressure_sensitive_face_buttons Xbox controller] or Steam Deck touchpads are not supported.</ref>
 
|-
 
|-
| [[List of games that support tracked motion controllers#PlayStation 3 Emulation|Motion controls (Gyro)]]
+
| Motion controls (Gyro)
 
| {{✓}}<ref group=N3>Perfect support. Emulator supports motion controls for DualShock 3, DualShock 4 and DualSense. Sony, Nintendo and Valve controllers can emulate DualShock 3 via reWASD application.</ref>
 
| {{✓}}<ref group=N3>Perfect support. Emulator supports motion controls for DualShock 3, DualShock 4 and DualSense. Sony, Nintendo and Valve controllers can emulate DualShock 3 via reWASD application.</ref>
 
|-
 
|-
Line 304: Line 305:
 
|-
 
|-
 
|colspan=2 | [[Wikipedia:PlayStation_Eye#Compatible_games|PlayStation Eye]]
 
|colspan=2 | [[Wikipedia:PlayStation_Eye#Compatible_games|PlayStation Eye]]
| {{✓}}
 
|-
 
|colspan=2 | [[List_of_games_with_keyboard_and_mouse_support#PlayStation_3_Emulation|USB Keyboard & Mouse]]
 
 
| {{✓}}
 
| {{✓}}
 
|-
 
|-
Line 397: Line 395:
 
:[https://manuals.playstation.net/document/en/ps3/current/game/copypsp.html Copying games to play on a PSP system that can be played on either PS3 or PSP systems]
 
:[https://manuals.playstation.net/document/en/ps3/current/game/copypsp.html Copying games to play on a PSP system that can be played on either PS3 or PSP systems]
 
Adhoc Party support, remote play (via the PS3 system's wireless LAN), copying games to play on a PSP system that can be played on either PS3 or PSP systems etc.
 
Adhoc Party support, remote play (via the PS3 system's wireless LAN), copying games to play on a PSP system that can be played on either PS3 or PSP systems etc.
*RPCS3 do not support PSP communication emulation at the moment. There is a [https://github.com/RPCS3/rpcs3/issues/4119 feature request] for this. Recently [https://github.com/RPCS3/rpcs3/pull/15540 UsbPspCm passthrough support added to RPCS3].
+
*RPCS3 do not support PSP communication at the moment. There is a [https://github.com/RPCS3/rpcs3/issues/4119 feature request] for this.
  
 
===PSVita communication===
 
===PSVita communication===
Line 461: Line 459:
 
There are two major bottlenecks at play:
 
There are two major bottlenecks at play:
 
* '''[[wikipedia:Cell_(microprocessor)|Cell Broadband Engine]]''' - consists of two architectures that developers have to program for; [[POS_(Pong_Consoles)_CPUs_and_Other_Chips#PPC_CPUs|PowerPC]], and... whatever the SPEs really are; and you have a great formula for high system requirements, SPU hardware environment is the furthest thing from a [[POS_(Pong_Consoles)_CPUs_and_Other_Chips#x86_CPUs|x86 PC processor]]. The RPCS3 developers using ahead-of-time recompilation using LLVM. RPCS3 is not just compiling the code it runs, it's also needs to compile a realtime environment simulator e.g. the 128x128bit register file, LS sram, the very weird memory flow controller, etc [https://discord.com/channels/272035812277878785/272083901277667342/1200171144603512892]. SPEs closer to [[PlayStation_2_emulators#Emulation_issues|VUs from PS2]] than to a GPU. They're a SIMD cluster, don't be fooled by their apparent similarity to GPUs. GPU are low throughput but very wide. SPEs are also wide, but not so much so. However, their individual thread throughput is insane even compared to a something like RTX 4090 GPU. It's not possible to beat SPUs 1:1 (it's ALL vector, it doesn't have scalar registers at least not general-purpose ones), they have 128 registers and very low latency SRAM, almost no memory fetches and everything is async. Although AVX-512 comes close in performance (at 5+ GHz). GPUs on the other hand are around 10-100x slower, but that's just because of how their cores are designed and the fact that SPU kernels are optimized to run in much smaller groups. There's too much working against emulation at 3.2 GHz rate since most SPU instructions need many instructions on PC (like dozens in some cases), so the PC side needs to be an order of magnitude faster.[https://discord.com/channels/272035812277878785/272083901277667342/1197648306084524202]
 
* '''[[wikipedia:Cell_(microprocessor)|Cell Broadband Engine]]''' - consists of two architectures that developers have to program for; [[POS_(Pong_Consoles)_CPUs_and_Other_Chips#PPC_CPUs|PowerPC]], and... whatever the SPEs really are; and you have a great formula for high system requirements, SPU hardware environment is the furthest thing from a [[POS_(Pong_Consoles)_CPUs_and_Other_Chips#x86_CPUs|x86 PC processor]]. The RPCS3 developers using ahead-of-time recompilation using LLVM. RPCS3 is not just compiling the code it runs, it's also needs to compile a realtime environment simulator e.g. the 128x128bit register file, LS sram, the very weird memory flow controller, etc [https://discord.com/channels/272035812277878785/272083901277667342/1200171144603512892]. SPEs closer to [[PlayStation_2_emulators#Emulation_issues|VUs from PS2]] than to a GPU. They're a SIMD cluster, don't be fooled by their apparent similarity to GPUs. GPU are low throughput but very wide. SPEs are also wide, but not so much so. However, their individual thread throughput is insane even compared to a something like RTX 4090 GPU. It's not possible to beat SPUs 1:1 (it's ALL vector, it doesn't have scalar registers at least not general-purpose ones), they have 128 registers and very low latency SRAM, almost no memory fetches and everything is async. Although AVX-512 comes close in performance (at 5+ GHz). GPUs on the other hand are around 10-100x slower, but that's just because of how their cores are designed and the fact that SPU kernels are optimized to run in much smaller groups. There's too much working against emulation at 3.2 GHz rate since most SPU instructions need many instructions on PC (like dozens in some cases), so the PC side needs to be an order of magnitude faster.[https://discord.com/channels/272035812277878785/272083901277667342/1197648306084524202]
* '''[[wikipedia:RSX_Reality_Synthesizer|RSX (Reality Synthesizer)]]''': PlayStation 3 GPU went unemulated for a long time, simply because of how many components were just undocumented; the [https://www.psdevwiki.com/ps3/RSX RSX unit] is a custom-designed chip developed by NVIDIA specifically for the PlayStation 3 and share similarities with GeForce 7800 GTX or G70/G71. It's not well-documented, and developers have to figure out how it displays graphics and graphical effects. Without access to Nvidia's resources, which would normally be included with an SDK, this would be very difficult.
+
* '''[[wikipedia:RSX_Reality_Synthesizer|RSX (Reality Synthesizer)]]''': [[PlayStation_4_emulators#Emulation_issues|PlayStation 4 GPU]] went unemulated for a long time, simply because of how many components were just undocumented, the same thing applies here; the [https://www.psdevwiki.com/ps3/RSX RSX unit] is a custom-designed chip developed by NVIDIA specifically for the PlayStation 3 and share similarities with GeForce 7800 GTX or G70/G71. It's not well-documented, and developers have to figure out how it displays graphics and graphical effects. Without access to Nvidia's resources, which would normally be included with an SDK, this would be very difficult.
 
:Something of note is that this GPU was also managed by two different memory units with very disparate frequency speeds; 1) 256 MBs of GDDR3 RAM clocked at 650 MHz with an effective transmission rate of 1.4 GHz, and 2) up to 224 MBs of the 3.2 GHz XDR main memory via the CPU (480 MBs max).
 
:Something of note is that this GPU was also managed by two different memory units with very disparate frequency speeds; 1) 256 MBs of GDDR3 RAM clocked at 650 MHz with an effective transmission rate of 1.4 GHz, and 2) up to 224 MBs of the 3.2 GHz XDR main memory via the CPU (480 MBs max).
  
Line 472: Line 470:
 
* [https://www.copetti.org/writings/consoles/playstation-3/ Rodrigo Copetti: PLAYSTATION 3 Architecture Practical Analysis]
 
* [https://www.copetti.org/writings/consoles/playstation-3/ Rodrigo Copetti: PLAYSTATION 3 Architecture Practical Analysis]
 
* [https://www.psdevwiki.com/ps3/ psdevwiki: PlayStation 3]
 
* [https://www.psdevwiki.com/ps3/ psdevwiki: PlayStation 3]
* Whatcookie: [https://youtu.be/19ae5Mq2lJE Why is PS3 emulation so fast: RPCS3 optimizations explained], [https://whatcookie.github.io/posts/why-is-avx-512-useful-for-rpcs3/ Why Is AVX 512 Useful for RPCS3?] and [https://youtu.be/VR_HZMMMOX4 How to uncap framerates].
+
* Whatcookie: [https://youtu.be/19ae5Mq2lJE Why is PS3 emulation so fast: RPCS3 optimizations explained], [https://whatcookie.github.io/posts/why-is-avx-512-useful-for-rpcs3/ Why Is AVX 512 Useful for RPCS3?]. Also, there are new upcoming instructions for future CPUs such as [[Wikipedia:Advanced_Vector_Extensions#AVX10|AVX10]] and [[Wikipedia:Advanced_Vector_Extensions#APX|APX]]. RPCS3's [https://rpcs3.net/blog/2020/08/21/hardware-performance-scaling/ progress report August 2020]: Since intel dropped TSX due to security reasons, RPCS3 will use TSX-FA/TSX Force Abort on CPUs with new microcode and [https://github.com/RPCS3/rpcs3/issues/6028 this will result potential regressions], good news is RPCS3 has improved non-TSX performance, because of this, even if your CPU supports TSX it will be disabled for RPCS3 by default.
* RPCS3's [https://rpcs3.net/blog/2020/08/21/hardware-performance-scaling/ progress report August 2020]: Since intel dropped TSX due to security reasons, RPCS3 will use TSX-FA/TSX Force Abort on CPUs with new microcode and [https://github.com/RPCS3/rpcs3/issues/6028 this will result potential regressions], good news is RPCS3 has improved non-TSX performance, because of this, even if your CPU supports TSX it will be disabled for RPCS3 by default.
 
 
* [https://discord.com/channels/644252595329957915/668417976554225674 T2 SDE discord - ppc-aim-ps3 channel]
 
* [https://discord.com/channels/644252595329957915/668417976554225674 T2 SDE discord - ppc-aim-ps3 channel]
 
* RPCS3: [https://rpcs3.net/blog/ Blog], [https://discord.gg/rpcs3 Discord], [https://www.youtube.com/@RPCS3_emu YouTube].
 
* RPCS3: [https://rpcs3.net/blog/ Blog], [https://discord.gg/rpcs3 Discord], [https://www.youtube.com/@RPCS3_emu YouTube].

Please note that all contributions to Emulation General Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Emulation General Wiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)