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.
Reacties