Update from kd-11
Added 2024-10-22 18:23:53 +0000 UTCHi all,
It's kd-11 here with another update on RPCS3 emulation. It's been a long time since my last update and a lot has happened. I'll try to stick to the major strides just to keep everyone updated without turning the report into a changelog.
My last major update was about a year ago, during the wrap-up of the RSX detiling work. Work on that feature including optimizations and improvements continued all through the rest of 2023, interspersed with normal bugfixes and improvements. However, I was already working on my next big task which took a really long time to complete. That task was basically expanding RPCS3's supported platform coverage outside the narrow range we had up until now.
Let's begin with some honourable mentions, big fixes that came in over the recent months:
1. Major RSX improvements led to instanced rendering working in some games especially those making use of the insomniac engine (Ratchet & Clank series, Resistance series). Note that since we're working at a low level, things like instancing don't actually exist in a direct form, we just see repeating draw call patterns interspersed with minor register probes that perform program state updates. Rendering in those titles isn't perfect but they look a lot better with foliage now.
2. Another major task was rewriting the RSX emulation and starting the separation of the different layers. Previously there was no clean boundary between any of the multiple graphics layers (the PS3 graphics context, the PS3 GPU, the emulator's decoders and the emulator's backend renderer). This means if any one of them fails, we must stop emulation because we cannot recover which is not ideal. Initial work was targetting separation between the PS3 components so that the PS3 graphics context is separate from the emulated PS3 GPU. The end goal is to separate all 4 layers so that we can hot-reload the renderer if it fails. This will allow us functionality such as automatic recovery after a driver crash without the user losing progress.
3.Some work went into supporting more obscure setups like vulkan-on-d3d12 and llvmpipe. This is needed in case we have to run on platforms that do not have native vulkan drivers.
Of course the main task I have been doing for the last 9 months has been polishing the ARM port of RPCS3 and getting it into a usable state. While it is not common knowledge, RPCS3 has had support for ARM CPUs going back to early 2022. However, the performance was very poor since recompilers could not be used. Back then, I did acquire a M1-based macbook that I later installed Linux on. However, most features didn't really work so progress from our side was also slow. It's not motivating working on platform support while you don't even have working graphics drivers. However, the situation has changed over the years and with Microsoft announcing their new ARM-based laptops I decided to give it another go. Another thing to consider was that since Rosetta worked so well on MacOS, we could just ship the x86_64 version and it would satiate the users on that front. This is unfortunately not the case with Microsoft's "Prism" layer which is still incapable of running RPCS3. By June we had working ARM builds in testing and that work was finally merged into the mainline branch in August 2024. A lot of supporting work is still ongoing such as building and packing official ARM releases, making sure we don't break automatic updates for users who rely on this feature, updating the site with upto date information, etc. It has been an exciting year getting this port into shape and that work is now almost complete. A blog post with the fun details will be posted on our main site soon.
So what's next? Well, I will continue with regular bugfixes but my next main target is to complete the separation of our graphics layers. A lot of work involving surface cache management, texture cache improvements as well as shader work feels pointless while the layers are all glued together as they are. Some components are so fragile that touching single lines of code can randomly cause a flood of regressions that don't appear related and I want to redesign the renderers so that we can innovate without worrying about that.
I would like to thank all our patreons for their continued support.
Regards,
kd-11
Comments
Does the leaking of PS5 ROM keys help PS5 emulation for other platforms?
Arron
2026-01-07 00:01:22 +0000 UTCjust wanna say thank you! to da whole team i am sure i am not the only one who believes the PS3 is still the greatest console
Masongsong
2025-09-19 12:27:03 +0000 UTCmuch good has become of you taking up the mantle of our inequities! muah!
Easter Keister
2025-04-10 01:58:10 +0000 UTCGod's work.
Akenera
2024-12-12 08:02:54 +0000 UTCThank you for the amazing work. RPCS3 brought me hours of fun lately. Please never discontinue this. Love from Rome!
Alex
2024-12-07 12:27:44 +0000 UTCHey is there any chance that I could get a refund please? I've been charged twice this month.
SKARGUT
2024-11-02 11:28:14 +0000 UTCAmazing stuff, there are many games that are only available on PS3 and Sony so far at least has not done anything to change that no matter how good some of these games are. Being able to now run these games on my pc through you and your teams hard work is greatly appreciated, so a heartfelt thanks from me to you guys and gals in preserving these games on several platforms for all to enjoy!
Dimitri Remkes
2024-10-22 21:36:10 +0000 UTCThank you for the hard work!
Márk Kocsicska
2024-10-22 20:18:43 +0000 UTCThanks for the work to both you and the rest of the team. And thank you in particular for the write-up. Honestly by now I'm as interested in the reports as the emulator itself. Again thanks again to you all for keeping the PS3 alive and providing this kind of insight :)
Hans Schmucker
2024-10-22 19:38:25 +0000 UTCI’m in awe of your technical skill; glad that there are people like you out there working on these things. The PS3 especially is one of my favorite consoles!
Lucas Mills
2024-10-22 19:00:11 +0000 UTC