Thursday, December 12th 2024
RPCS3 PlayStation 3 Emulator Gets Native arm64 Support on Linux, macOS, and Windows
The RPCS3 team has announced the successful implementation of arm64 architecture support for their PlayStation 3 emulator. This development enables the popular emulator to run on a broader range of devices, including Apple Silicon machines, Windows-on-Arm, and even some smaller Arm-based SBC systems like the Raspberry Pi 5. The journey to arm64 support began in late 2021, following the release of Apple's M1 processors, with initial efforts focused on Linux platforms. After overcoming numerous technical hurdles, the development team, led by core developer Nekotekina and graphics specialist kd-11, achieved a working implementation by mid-2024. One of the primary challenges involved adapting the emulator's just-in-time (JIT) compiler for arm64 systems.
The team developed a solution using LLVM's intermediate representation (IR) transformer, which allows the emulator to generate code once for x86-64 and then transform it for arm64 platforms. This approach eliminated the need to maintain separate codebases for different architectures. A particular technical challenge emerged from the difference in memory management between x86 and arm64 systems. While the PlayStation 3 and traditional x86 systems use 4 KB memory pages, modern arm64 platforms typically operate with 16 KB pages. Though this larger page size can improve memory performance in native applications, it presented unique challenges for emulating the PS3's graphics systems, particularly when handling smaller textures and buffers. While the emulator now runs on arm64 devices, performance varies significantly depending on the hardware. Simple applications and homebrew software show promising results, but more demanding commercial games may require substantial computational power beyond what current affordable Arm devices can provide.
Source:
RPCS3
The team developed a solution using LLVM's intermediate representation (IR) transformer, which allows the emulator to generate code once for x86-64 and then transform it for arm64 platforms. This approach eliminated the need to maintain separate codebases for different architectures. A particular technical challenge emerged from the difference in memory management between x86 and arm64 systems. While the PlayStation 3 and traditional x86 systems use 4 KB memory pages, modern arm64 platforms typically operate with 16 KB pages. Though this larger page size can improve memory performance in native applications, it presented unique challenges for emulating the PS3's graphics systems, particularly when handling smaller textures and buffers. While the emulator now runs on arm64 devices, performance varies significantly depending on the hardware. Simple applications and homebrew software show promising results, but more demanding commercial games may require substantial computational power beyond what current affordable Arm devices can provide.
13 Comments on RPCS3 PlayStation 3 Emulator Gets Native arm64 Support on Linux, macOS, and Windows
EDIT: 69.53% playable and completable as of now.
rpcs3.net/compatibility
I cant think of any ARM device that can. Even the snapdragon x elite is a far cry from, say, zen 4 with AVX 512 acceleration.
It's capable of playing thousands of games, not "2 or 3 games".
Because those things are really powerful.
In software that is not...the M series is only middling in performance. I doubt this emulator will be that well optimized. We cant get a good idea of how powerful it is in cross platform stuff because Apple's closed sandbox and lack of vulkan means most games wont run on it.
I was doing a playthru of eternal sonata which I will go back to, I had to run it in the unoptimised mode to prevent crashes, but once in that mode it is stable, it works with the higher rendering resolution which makes it look really nice. Played on my 9900k, it doesnt sustain its native frame rate, but that actually makes it easier, as the game is really difficult requiring very good reaction times to defend. So when I come back to it on my 13700k, unless I gimp it on a e-core or something, it will be harder.
I tried FF13-2, which doesnt work with the native resolution booster, so played it with FSR, however the game has pretty serious bugs, it will run, but certain UI elements wont render, also the historia crux is all malformed like a cancel cell this latter issue makes the game unbeatable, as thats a area/level selector and the bug prevents you selecting areas needing to do to progress. This indicates it cant interpret certain instructions correctly. I would like the devs to fix compatibility over performance, but they seem to concentrate on the games that most people play.
the same happened with PCSX2. It took a few years, but they eventually got most of the bugs fixed.