Mijn bladwijzers

RPCS3 PS3-emulator boekt flinke prestatiewinst op ARM-architectuur

RPCS3 PS3-emulator boekt flinke prestatiewinst op ARM-architectuur
Topic Hubs
Samenvatting
Click to expand
Inhoudsopgave

Jarenlang was x86-hardware de onbetwiste gouden standaard voor high-end emulatie. De complexiteit van de Cell Broadband Engine van de PlayStation 3 — met zijn unieke mix van een PowerPC-kern en de beruchte Synergistic Processing Elements (SPE's) — leek een onoverkomelijke barrière voor energiezuinige architecturen. Recente ontwikkelingen binnen het RPCS3-project wijzen er echter op dat dit gat razendsnel gedicht wordt.

Nadat native ARM64-ondersteuning eind 2024 werd vastgelegd, laten pull requests uit begin 2026 zien dat het ontwikkelingsteam verder gaat dan louter compatibiliteit. De focus is verschoven naar diepgaande, ARM-specifieke micro-optimalisaties.

De jacht op native efficiëntie

De belangrijkste recente activiteiten concentreren zich op de manier waarop de emulator omgaat met "shuffles", een cruciale operatie voor de vector-intensieve workloads van de PS3. Draft PR #18056, geopend op 15 januari 2026, heeft als doel het oude pad te vervangen. Waar voorheen x86-shuffle-logica werd nagebootst op ARM, wordt er nu ingezet op native ARM-shuffle-instructies.

Technisch gezien kan dit een enorme winst in doorvoer betekenen. Het voorstel suggereert dat de emulatie van de SHUFB-instructie kan worden teruggebracht van negen ARM-instructies naar slechts vijf. In scenario's waarin de LLVM-compiler optimaal presteert, zou dit zelfs naar vier kunnen dalen. Hoewel dit project zich nog in de ontwerpfase bevindt en kampt met stabiliteitsproblemen — waaronder crashes die vermoedelijk worden veroorzaakt door LLVM-bugs in de register-toewijzing — markeert het een omslagpunt. ARM wordt niet langer behandeld als een vertaaldoel, maar als een volwaardig platform.

Detectie van de hardware van morgen

Sinds eind maart 2026 legt het project de basis voor geavanceerde ARM-functies die op dit moment nog niet eens standaard zijn in de meeste consumentenchips. Draft PR #18422, geopend op 22 maart 2026, introduceert detectie voor diverse ARM-extensies:

  • FEAT_LUT: Potentieel nuttig voor het stroomlijnen van Finite State Machine (FSM) emulatie.
  • FEAT_I8MM: Gericht op het verbeteren van specifieke GBH/GBB-operaties.
  • SVE (Scalable Vector Extension): De implementatie hiervan is voorzichtig, met controles om een exacte vectorlengte van 128-bit te garanderen, passend bij de vereisten van de SPU.

Voor Windows-on-ARM-gebruikers verloopt deze detectie via specifieke registerverwijzingen die naar de systeemregisters kijken. Dit toont aan dat het project zich voorbereidt op een toekomst waarin de Snapdragon X Elite of de nieuwste Apple Silicon-chips hardwarematige short-cuts bieden voor taken die nu nog zware softwarematige rekenkracht vereisen.

Hardware in de praktijk: Apple Silicon versus de rest

Ondanks de duidelijke vooruitgang blijft de ervaring sterk afhankelijk van de gekozen chipset.

Het prestatieverschil op Apple Silicon is bijzonder opvallend. Door over te stappen van de Rosetta 2-translatielaag naar een native ARM64-build, rapporteren sommige gebruikers bijna een verdubbeling van de framerate in bepaalde titels. Volgens berichten uit de community kunnen games zoals Demon's Souls een stabiele 60 FPS aanhouden op 720p op moderne Mac-hardware — een prestatie die enkele jaren geleden ondenkbaar was.

De Raspberry Pi 5 blijft vooralsnog een demonstratie van "omdat het kan". Zelfs bij een overclock naar 2,9 GHz is de VideoCore VII GPU simpelweg te zwak voor de RSX-workloads van de PS3. Testers moesten de resolutie verlagen naar een PSP-achtige 272p om 3D-titels überhaupt op te starten, en zelfs dan kwamen driver-crashes regelmatig voor.

Architecturale wrijving

Het optimaliseren voor ARM is niet zo eenvoudig als het omzetten van een knop in de compiler. Het RPCS3-team moet navigeren door diverse "x86-ismen" die diep in de kern van de emulator verankerd zitten. ARM gebruikt bijvoorbeeld een specifiek link register voor retouradressen, wat botste met de return-chain logica waar de JIT-engine oorspronkelijk omheen was gebouwd.

Daarnaast is er het probleem met de paginagrootte. Waar x86 en de originele PS3-hardware gebruikmaken van geheugenpagina's van 4 KiB, hanteren veel ARM-platforms standaard 16 KiB. Deze discrepantie kan leiden tot kostbare geheugen-herlaadacties en een zwaardere belasting door "dirty-page" invalidatie, wat de winst die elders in de code wordt geboekt weer deels tenietdoet.

De huidige stand van zaken voor ARM-emulatie

Wie overweegt om zijn PS3-bibliotheek over te zetten naar een ARM-gebaseerd apparaat, vindt een veelbelovende situatie, mits de verwachtingen realistisch blijven:

  • Mac-gebruikers profiteren nu het meest: De native ARM-builds op macOS, ondersteund door MoltenVK, bieden momenteel het meest stabiele en krachtige alternatief voor een high-end x86-pc.
  • Windows-on-ARM is nog werk in uitvoering: Hoewel de detectie van nieuwe functies een goed teken is, is de distributie van officiële Windows ARM64-binaries nog niet consistent en blijft het Clang-gebaseerde build-proces complexer dan de standaard Visual Studio-route.
  • Optimalisaties kunnen soms tegenwerken: Een pull request uit maart 2026 voor SPU-loop-voorspelling leverde een winst van +1 tot +2 FPS op in Twisted Metal, maar veroorzaakte tegelijkertijd een flinke achteruitgang in prestaties voor LittleBigPlanet 3 op de Steam Deck LCD. Dit verklaart waarom veel van deze ARM-specifieke functies nog in de ontwerpfase (draft) staan.

We zijn nog niet op het punt dat een high-end ARM-laptop de aanbevolen manier is om de meest veeleisende PS3-exclusives te spelen, maar de constante stroom van low-level updates suggereert dat de ontwikkelaars een toekomst zien waarin die gelijkwaardigheid er uiteindelijk zal zijn.

Veelgestelde vragen

Volgens gebruikerservaringen uit het artikel zorgt de overstap van de Rosetta 2-vertaallaag naar een native ARM64-build voor 50% tot 100% betere prestaties in bepaalde games. In sommige gevallen verdubbelt de framerate zelfs. Zo kan een game als Demon's Souls op moderne Macs in 720p een stabiele 60 FPS behalen met de native versie.

Ja, maar de ondersteuning voor de Raspberry Pi 5 is volgens het artikel momenteel meer een 'proof-of-concept' dan een praktische manier om PS3-games te spelen. De Broadcom VideoCore VII GPU is niet krachtig genoeg voor de zware RSX-workloads. Testers moesten de resolutie verlagen naar 272p om 3D-games überhaupt aan de praat te krijgen, en er werden veel crashes gemeld tijdens het testen met Vulkan.

In Draft PR #18056 (van 15 januari 2026) wordt voorgesteld om de verouderde x86-gebaseerde emulatie van shuffle-instructies te vervangen door native ARM-instructies. Dit is cruciaal voor de zware vector-workloads van de PS3. Hierdoor kan de SHUFB-emulatie worden teruggebracht van negen naar vijf ARM-instructies, en soms zelfs naar vier als de LLVM-compiler gunstige code genereert, wat de algehele snelheid op ARM-chips verhoogt.

Volgens het artikel voegt Draft PR #18422 (22 maart 2026) ondersteuning toe voor het detecteren van FEAT_LUT, FEAT_I8MM en SVE (Scalable Vector Extension). Bij SVE wordt specifiek gecontroleerd op een vectorlengte van exact 128-bit om aan de eisen van de PS3 SPU te voldoen. Voor Windows-on-ARM wordt de detectie geregeld via specifieke registerverwijzingen.

Het artikel noemt twee hoofdoorzaken. Ten eerste gebruikt ARM een specifiek 'link register' voor retouradressen, wat botst met de manier waarop de JIT-engine oorspronkelijk is ontworpen. Ten tweede werken veel ARM-systemen met geheugenpagina's van 16 KiB in plaats van de 4 KiB die gangbaar is bij x86 en de originele PS3. Dit maakt het verwerken van gewijzigde geheugenpagina's (dirty-page invalidation) een stuk zwaarder en minder efficiënt.

Nog niet. De ondersteuning voor Windows-on-ARM wordt begin 2026 nog als experimenteel beschouwd. De verspreiding van officiële Windows ARM64-binaries is nog niet consistent en het bouwproces via Clang is complexer dan de standaard Visual Studio-methode. Daarnaast kampt het platform nog met technische hobbels zoals ASLR-conflicten en uitdagingen in het ontwerp van de JIT-engine.

Reacties

Leesvoorkeuren
Lettergrootte
Vergelijkingstabel