Difference between revisions of "PlayStation 3 emulators"
(→Emulation issues) |
(→Emulation issues) |
||
Line 412: | Line 412: | ||
* New instructions like [[Wikipedia:AVX-512|AVX-512]], [[Wikipedia:Advanced_Vector_Extensions#AVX10|AVX10]] and [[Wikipedia:Advanced_Vector_Extensions#APX|APX]] and potential benefits for RPCS3 emulation: [https://g.co/bard/share/196c4d4d723c AVX512], [https://g.co/bard/share/12a429318f25 AVX10], [https://g.co/bard/share/2a58e863e693 APX], [https://bard.google.com/share/ee2c7336e263 APX potential benefits for RPCS3 emulation], [https://g.co/bard/share/67c7303fc651 Which specific APX instructions potentially benefit RPCS3 emulation], [https://g.co/bard/share/3896403e0301 Comparing AVX512, AVX10 and APX] - ''(These are Google Bard AI responses, so do not expect perfect results'' | * New instructions like [[Wikipedia:AVX-512|AVX-512]], [[Wikipedia:Advanced_Vector_Extensions#AVX10|AVX10]] and [[Wikipedia:Advanced_Vector_Extensions#APX|APX]] and potential benefits for RPCS3 emulation: [https://g.co/bard/share/196c4d4d723c AVX512], [https://g.co/bard/share/12a429318f25 AVX10], [https://g.co/bard/share/2a58e863e693 APX], [https://bard.google.com/share/ee2c7336e263 APX potential benefits for RPCS3 emulation], [https://g.co/bard/share/67c7303fc651 Which specific APX instructions potentially benefit RPCS3 emulation], [https://g.co/bard/share/3896403e0301 Comparing AVX512, AVX10 and APX] - ''(These are Google Bard AI responses, so do not expect perfect results'' | ||
* [[Emulation books and articles]] | * [[Emulation books and articles]] | ||
+ | * [[Wikipedia:PSGL|PSGL API]] | ||
==Screenshots== | ==Screenshots== |
Revision as of 09:47, 27 January 2024
Developer | Sony |
---|---|
Type | Home video game console |
Generation | Seventh generation |
Release date | 2006 |
Discontinued | 2017 |
Predecessor | PlayStation 2 |
Successor | PlayStation 4 |
Emulated | ✓ |
- For other emulators that run on PS3 hardware, see Emulators on PS3.
The PlayStation 3 (known shorthand as PS3) is a seventh-generation console released by Sony in late 2006 and retailed for $599. The successor to the PlayStation 2, it began development in 2001 when Sony partnered with Toshiba and IBM to create the Cell Broadband Engine. The console was launched a year after the Xbox 360 and around the same time as the 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 Cell Broadband Engine consists of a 3.2 GHz Power Processing Element (PPE) and seven Synergistic Processing Elements (SPE),[N2 1] and the system contains 256 MBs of XDR DRAM main memory at 3.2 GHz and 256 MBs of GDDR3 video memory at 650 MHz for the Nvidia/SCEI RSX Reality Synthesizer GPU. The GPU ran at 500 MHz and has to communicate forth and back with both RAMs. The complexity of the SPEs bogged down the PlayStation 3 in multi-platform titles, as developers had to go through the process of learning the SPE architecture before they could use it. As a result, several developers decided against using the SPEs, and the consequence is that many multi-platform games ran with lower framerates or worse graphics compared to running those same games on the PS3's competitors.
The number of units sold worldwide was about the same as the Xbox 360. The PlayStation 3 initially included a feature called OtherOS, but once it was removed shortly after the PS3 Slim model was released citing "security concerns", fail0verflow had a jailbreak detailed in 2010, giving way for modders to downgrade firmware on a specific version and install a custom firmware, something Sony would patch in newer updates until an exploit was released for 4.82. Emulation only started gaining traction in the late 2010s, as RPCS3 had made strides in improving its largely HLE-based emulation. It has since become the emulator of choice.
Contents
Emulators
Name | Platform(s) | Latest Version | Arcade Variations |
Hardware features and peripherals |
Enhancements | Compatibility | FLOSS | Active | Recommended | |
---|---|---|---|---|---|---|---|---|---|---|
PC / x86 | ||||||||||
RPCS3 | Nightly 0.0.32 Alpha Qt5 |
~ | ~ | ~ | 68.7% 2504 out of 3645 reported titles |
✓ | ✓ | ✓ | ||
Nucleus | 0.1.0 | ✗ | ✗ | ✗ | N/A | ✓ | ✗ | ✗ | ||
Short Waves | 0.0.2 | ✗ | ✗ | ✗ | N/A | ✗ | ✗ | ✗ | ||
PS3F | 0.1 | ✗ | ✗ | ✗ | N/A | ✗ | ✗ | ✗ |
Comparisons
- RPCS3
- An open-source emulator for 64-bit Windows, GNU/Linux, BSD and macOS. While it isn't anywhere near as compatible as Dolphin is for GameCube or Wii, it has still made immense progress compared to its early days, when development was slow and seemed like it wasn't really going anywhere. Some of the SPU intensive titles have insufficient performance which requires top-notch single thread performance of CPUs. As of now, all known titles now load, and initialize properly, without crashing the emulator. Beyond this, RPCS3 supports some enhancements and system features, peripherals. As of April 13, 2022, builds for macOS have started being officially distributed for Intel and ARM Macs. [1]
- Nucleus
- A one-person project that aimed at low-level emulation, some AOT emulation, and portability. Made by AlexAltea.
- Short Waves
- Released in 2014 by InoriRus, who later returned to the emulation scene in 2021 as the developer of the PlayStation 4 and 5 compatibility layer Kyty. Short Waves could run a few complex tests that RPCS3 couldn't at the time it was released, but it hasn't been updated since.
- PS3F
- Made by Shima, the creator of SSF. More information can be found here.
Enhancements
Name | RPCS3 | |||
---|---|---|---|---|
Graphics | Resizable Internal Resolution | ✓ | ||
Texture Replacement | ✗ | |||
Ultrawide hack Widescreen already supported on PlayStation 3 system. But there is no support by system for render games in other ratios such as ultrawide 21:9 or super ultrawide 32:9. |
✓ | |||
Pre-rendering AA (MSAA, SSAA) |
?* | |||
Super-resolution techniques (DLSS, XeSS and FSR 2+) |
Requires access to the depth buffer and temporal data like motion-vectors so it's quite challenging and unlikely to be feasible in the near future. | |||
Ray-tracing | Implementing ray-tracing in an emulator is unfortunately quite challenging and unlikely to be feasible in the near future. However you can try "Screen-Space Ray Traced Global Illumination" shader using ReShade. Demonstration | |||
Performance | Internal Framerate Hack | ✓ | ||
Frame generation technologies (LSFG, DLSS-G, ExtraSS and AFMF) |
Implementing frame generation technology in an emulator is unfortunately quite challenging and unlikely to be feasible in the near future. Input latency will be a crucial factor, but its impact likely varies depending on the specific technique employed, it's recommended to use after applying the "Internal Framerate Hack". While AFMF or LSFG can be used with RPCS3, please be aware that some visual glitches and artifacts may occur at this time. | |||
Overclock | ✓ | |||
Post-Processing | Post-rendering AA (FXAA, TXAA and MLAA/SMAA) |
✗* | ||
Post-rendering scaling (Sharp bilinear, Lanczos and FSR 1) |
✓ | |||
Filters | ✗ | |||
Shader Chain | ✗ | |||
TAS features | Macros/Scripts/Lua | ✗ | ||
Rewind | ✗ | |||
Fast-Forward/Turbo Speed | ✗* | |||
Savestates | ✓* | |||
Movie recording/playback | ✗ | |||
Controls | Mouse Injector Compatible | ✓* | ||
Input lag-mitigating technique | ✗ | |||
Quality of life | Built-in Graphics mod editor/manager | ✗ | ||
Built-in Cheat Manager | ✓ | |||
Streamable compression format | ✗ | |||
Per-Game Profiles | ✓ | |||
Command Line Options | ✓* | |||
Built-in Custom resolution/CRTSwitchRes For using this on Windows OS you need CRT Emudriver. Another option is using EDID editor tool such as "Custom Resolution Utility". |
✗ | |||
On-Screen Display Showcases messages, controller input state which is useful for speedrunners, performance data, active settings, and various notifications. |
✓ | |||
Big Picture Mode | ~* | |||
Misc | RetroAchievements | ✗ | ||
Free Look Free Look is a enhancement feature that allows manipulation of the in-game camera. |
While freecam would be technically possible, it will require per-game patches. Said patches would require a significant amount of time to reverse the game's engine, which means that only someone talented with enough dedication to a single game could do it. Also there is a feature request for adding this enhancement feature to RPCS3 emulator. | |||
Debug Features | ✓ |
Hardware features and peripherals
Name | RPCS3 | |
---|---|---|
Backwards compatibility |
PSP emulation (incl. PSP Minis and PSP Remasters) |
✗* |
PlayStation emulation (incl. PSOne Classics) |
~[N3 1] | |
PlayStation 2 emulation (incl. PS2 Classics) |
✗[N3 1] | |
Communication | LAN tunneling | ✓ |
PlayStation Network (incl. PlayStation Home) |
~ | |
PSP communication | ✗ | |
PSVita communication | ✗ | |
PocketStation communication | ✗ | |
System firmware | XMB and apps | ~ |
Trophies | ✓ | |
OtherOS | ✗ | |
Blu-ray player | ✗ | |
Dolby Digital, DTS, 5.1 and 7.1 | ✓ | |
Pressure Sensitive Buttons | ✓[N3 2] | |
Motion controls (Gyro) | ✓[N3 3] | |
Peripherals | ||
PlayStation Move | ~ | |
Portal | Skylanders Portal of Power | ✓* |
LEGO Dimensions Toy Pad | ~* | |
Disney Infinity Base | ✓* | |
Rock Band 3 MIDI Pro Adapter | ✓* | |
Buzz! controller | ✓* | |
Wireless Keypad | TBD | |
DJ Hero turntable | ~* | |
Blu-ray Disc remotes | ✗* | |
Microphone | ✓* | |
Drums and Guitars | ✓* | |
LightGun | GunCon 3 | TBD |
Top Shot Elite | ~ | |
Top Shot Fearmaster | ~ | |
uDraw GameTablet | ~* | |
Wonderbook | TBD |
- ↑ 1.0 1.1 There is no ps1_emu support at the moment, only ps1_netemu is supported. Tweet from 6 May 2019: "RPCS3 supports Sony's PS1_netemu as of today. PS2emu is not yet supported. Both these emulators are present in the PS3 Firmware for backwards compatibility." ps2_emu used for PlayStation 2 emulation, ps1_emu used for disc based PlayStation games and ps1_netemu for PlayStation Classics from PSN.
- ↑ Perfect support for DualShock 3 controller which works with Official Sony driver and DsHidMini community driver. Emulator allows to assign one key to change pressure sensitivity. It's possible to have more variants with reWASD application which allows to assign keys or gamepad buttons to Virtual DualShock 3. Emulator supports DualShock 2, but only with special adapter emulating DualShock 3, RPCS3 does not support Bliss-Box API. Other controllers with pressure-sensitive buttons like Xbox controller or Steam Deck touchpads are not supported.
- ↑ 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.
XMB and apps
The XrossMediaBar (pronounced "cross-media bar" and officially abbreviated as XMB) is a graphical user interface developed by Sony Computer Entertainment. You can launch various applications from this interface as well.
- RPCS3 supports XMB only partially, some functions and apps do not work at the moment. However you can run some of the applications like Netflix from RPCS3 GUI. As mentioned in #Trophies section, you can change XMB home menu sounds if you want.
LAN tunneling
Offline multiplayer gaming on the PS3 home console over a LAN (local area network) multiplayer games, just like System Link for XBOX systems. There are 104 games with the LAN feature for the PlayStation 3. To see if the game you want to play is supported see this page or look on the back of the game case.
- RPCS3 - XLink Kai Setup
- See Preservation_projects#LAN_Tunneling_Programs for more information about other LAN tunneling solutions.
Trophies
Trophies are PlayStation Network awards presented to players for completing specific tasks in a game. The feature is present in most PlayStation 3 games, and all PlayStation Vita, PlayStation 4 and PlayStation 5 games.[1] Trophies shouldn't be confused with RetroAchievements.
- RPCS3 supports Trophies notifications, progress and locking/unlocking etc. and also it has a dedicated built-in manager for trophies. If you want to use custom sound for notifications you need to change files from "RPCS3\sounds". Although there is no communication between PSN or RPCN with RPCS3 trophy system. See this page for more information about this.
OtherOS
OtherOS is a feature of early versions of the PlayStation 3 video game console, allowing user installed software, such as many distributions of Linux or BSD in a separate partition as long as they supported PowerPC. The feature was removed since system firmware update 3.21, released on April 1, 2010. Software running in the OtherOS environment has access to 6 of the 7 SPEs. Sony implemented a hypervisor restricting access to the RSX. However either thru a security vulnerability before FW 2.10 or by using some form of OtherOS++ CFW full access to the RSX, and/or the seventh SPE and other system resources is possible. See Recommended_linux_distros#Wide_range_of_platforms_focused or T2 SDE PS3 page for more information.
PSP communication
- Using 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
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 at the moment. There is a feature request for this.
PSVita communication
Remote play (via the PS3 system's wireless LAN), copying games to play on a PSVita system that can be played on either PS3 or PSVita systems etc.
PocketStation communication
PocketStation communication with PlayStation 3 system is possible with a memory card adaptor.
- RPCS3 do not support PocketStation communication at the moment.
Blu-ray player
PlayStation 3 has featuring a slot-loading 2× speed Blu-ray Disc drive for BD-ROM, PlayStation2 format DVD-ROM, PlayStation 2 and PlayStation 1 format CD-ROM, Blu-ray Disc Video, DVD-Video, and Audio CDs. However there is no support for VCDs for PlayStation 3 just like PlayStation 2. Also interactive film/movie formats like DVDi, DVDPG, BDPG and Blu-ray Interactive HD supported.
- RPCS3 has no disc support or home media playback support currently.
- See this dedicated page for more information about home media playback support for emulation softwares.
Peripherals
PlayStation Move
The PlayStation Move is a controller similar to a Wiimote, shaped to be held into hand and play with motion detection. It is detected by the PSEye, the successor of the PS2's EyeToy. The PSEye is usable on PC as it benefits from unofficial drivers made by the community. It is not yet implemented in a PS3 emulator. RPCS3 had some first steps implemented for PSMove use, but the controllers aren't working yet.
The author of this preliminary implementation, velocityra, is a dedicated developer for RPCS3 and Vita3K. His own branch of the PSMove has advanced further, as the PSEye and PSMove controllers are already physically supported using the PSMoveAPI. A pretty old compatibility list can be found here. Some YouTube videos are also showing the work-in-progress functionality working.[2] The author unfortunately stopped working on this implementation years ago.
LEGO Dimensions Toy Pad
If you have the Toy Pad RPCS3 can communicate to the USB device directly (but only exposed devices that have been whitelisted). Just like cemu there is no Toy Pad emulation for the RPCS3 at the moment but you can use LD-ToyPad-Emulator for that.
Blu-ray Disc remotes
Just like PlayStation 2's DVD Remote Controller you can even play games with it other than multimedia functionalities: as long as the game recognizes controls for a D-Pad, you should be okay. Just hold the PS button to change the controller channel to 1.
Arcade Variations
Arcade variations pull requests for RPCS3.
With this PR merged, the following 3 System 357/369 arcade games are fully supported by RPCS3;
- Taiko no Tatsujin series
- Tekken Tag Tournament 2 (Unlimited)
- Dragon Ball: Zenkai Battle
Namco System 357
RPCS3 only partially supports some 357 games. A fork currently exists for RPCS3 called Project OMED/RPCS357, which supports more games. The fork has two versions of itself, the Taiko/Fighting version (for Taiko no Tatsujin games and fighting games) and the Gun version (for the rail shooters, requires a lightgun to play). The latest public version is available here: https://pixeldrain.com/u/dfGaH2oX. Mirror: https://1fichier.com/?a0pw2xn2xnpy09v0yaz8
Demonstration
Official Project OMED YouTube Channel
Namco System 359
Placeholder text
Namco System 369
Placeholder text
Emulation issues
PlayStation consoles have always been notorious for system complexity (e.g. PlayStation, PlayStation 2). Sony's gamble of their technology being emulator-unfriendly makes them developer-unfriendly as well, and the system's weaker performance in cross-platform games proves it. Even if done properly, an LLE approach would be performance suicide, as some things just have to be abstracted enough to get high framerates in games. The situation is so bad that Sony seems to be incredibly hesitant to produce an official PS3 emulator for the newer PlayStations. Simply because they wouldn't be able to justify the extremely high potential development cost to investors.[3][4]
There are two major bottlenecks at play:
- Cell Broadband Engine - consists of two architectures that developers have to program for; 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 PC processor. The RPCS3 developers using ahead-of-time recompilation using LLVM. RPCS3 is not just compiling the code it runs, it's also need to compile a realtime environment simulator e.g the 128x128bit register file, LS sram, the very weird memory flow controller, etc.[4]
- RSX (Reality Synthesizer): The PlayStation 4 also went unemulated for a long time, simply because of how many components were just undocumented. The same thing applies here; the RSX unit is a custom-designed chip developed by NVIDIA specifically for the PS3 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).
For more information about PlayStation 3 hardware and reverse engineering;
- MVG: Why is the Sony PlayStation PS3 so hard to emulate?, Why was the Sony PlayStation 3 so hard to develop games for ?
- Alexandro Sanchez: FOSDEM'22 - PlayStation 3 Emulation
- Rodrigo Copetti: PLAYSTATION 3 Architecture Practical Analysis
- psdevwiki: PlayStation 3
- whatcookie: Why Is AVX 512 Useful for RPCS3?
- RPCS3: Blog, Discord
- RPCS3 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 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.
- New instructions like AVX-512, AVX10 and APX and potential benefits for RPCS3 emulation: AVX512, AVX10, APX, APX potential benefits for RPCS3 emulation, Which specific APX instructions potentially benefit RPCS3 emulation, Comparing AVX512, AVX10 and APX - (These are Google Bard AI responses, so do not expect perfect results
- Emulation books and articles
- PSGL API
Screenshots
See also
Notes
- ↑ You might see listings of eight SPEs, but that's because there are eight on the die; one of them is disabled to prevent the manufacturer from yielding too many bad units. Another SPE is reserved for the console's operating system.