Pendant des années, l'émulation de haut niveau a été le domaine exclusif de l'architecture x86. La complexité du processeur Cell de la PlayStation 3 — avec son cœur PowerPC et ses célèbres unités SPE (Synergistic Processing Elements) — semblait constituer un obstacle insurmontable pour les architectures à basse consommation. Cependant, les avancées récentes du projet RPCS3 indiquent que cet écart est en train de se combler.
Après l'établissement du support natif ARM64 fin 2024, les rapports de développement du début de l'année 2026 montrent que l'équipe s'attaque désormais aux micro-optimisations spécifiques à l'architecture ARM, dépassant le simple stade de la compatibilité de base.
La quête d'une efficacité native
L'activité récente la plus significative concerne la gestion des « shuffles », des opérations cruciales pour les charges de travail vectorielles de la PS3. La pull request (PR) #18056, ouverte le 15 janvier 2026, vise à remplacer l'ancien chemin d'exécution — qui émulait essentiellement la logique x86 sur ARM — par des instructions de brassage (shuffle) natives ARM.
Sur le plan technique, cela représente un gain potentiel majeur en termes de débit. La proposition suggère de réduire l'émulation de l'instruction SHUFB de neuf instructions ARM à seulement cinq. Dans certains cas où le compilateur LLVM se comporte de manière optimale, ce chiffre pourrait même tomber à quatre. Bien que ce projet soit encore au stade de brouillon et qu'il rencontre des problèmes de stabilité (notamment des crashs suspectés d'être liés à des bugs de registre LLVM), il témoigne d'une volonté de traiter ARM comme un citoyen de première classe plutôt que comme une simple cible de traduction.
Détecter le matériel de demain
Depuis la fin mars 2026, le projet prépare le terrain pour des fonctionnalités ARM avancées qui ne sont pas encore standard sur la plupart des puces grand public actuelles. La PR #18422, ouverte le 22 mars 2026, introduit la détection de plusieurs extensions ARM :
- FEAT_LUT : Potentiellement utile pour simplifier l'émulation des machines à états finis (FSM).
- FEAT_I8MM : Ciblant l'amélioration de certaines opérations spécifiques GBH/GBB.
- SVE (Scalable Vector Extension) : L'implémentation ici est prudente, avec des vérifications pour garantir une longueur de vecteur exacte de 128 bits afin de correspondre aux exigences des SPU.
Pour les utilisateurs de Windows-on-ARM, cette détection passe par des entrées de registre spécifiques qui interrogent les registres système. Cela démontre que le projet se prépare à un avenir où les puces Snapdragon X Elite ou les futurs processeurs Apple Silicon pourraient offrir des raccourcis matériels pour des tâches qui nécessitent actuellement un lourd traitement logiciel.
Réalité matérielle : Apple Silicon face au reste du monde
Si les progrès sont évidents, l'expérience utilisateur reste fragmentée selon le matériel utilisé.
L'écart de performance sur Apple Silicon est particulièrement révélateur. En passant de la traduction Rosetta 2 à une version ARM64 native, certains utilisateurs ont signalé un quasi-doublement du taux de rafraîchissement sur certains titres. Selon les rapports de la communauté, des jeux comme Demon's Souls peuvent maintenir un 60 FPS stable en 720p sur les Mac modernes, une prouesse impensable il y a encore quelques années.
Le Raspberry Pi 5 reste quant à lui une démonstration technique « pour la forme ». Même avec un surcadençage à 2,9 GHz, le GPU VideoCore VII est trop limité pour gérer la charge de travail du RSX de la PS3. Les testeurs ont dû réduire la résolution à 272p (similaire à la PSP) pour lancer des titres 3D, et même dans ces conditions, les plantages de pilotes sont fréquents.
Frictions architecturales
Optimiser pour ARM ne se résume pas à changer une option de compilation. L'équipe RPCS3 doit composer avec plusieurs « tics » hérités du x86 ancrés dans la conception même de l'émulateur. Par exemple, ARM utilise un registre de liaison (link register) dédié pour les adresses de retour, ce qui entrait en conflit avec le comportement de la chaîne de retour initialement conçu pour le moteur JIT.
Il y a également le problème de la taille des pages mémoire. Alors que le x86 et le matériel PS3 original utilisent des pages de 4 KiB, de nombreuses plateformes ARM adoptent par défaut des pages de 16 KiB. Cette divergence peut entraîner des rechargements mémoire coûteux et une invalidation plus fréquente des pages, ce qui grignote les gains de performance obtenus par ailleurs.
Où en est l'émulation ARM aujourd'hui ?
Si vous envisagez de transférer votre bibliothèque PS3 sur un appareil ARM, la situation est prometteuse mais demande de la nuance :
- Les utilisateurs de Mac sont les grands gagnants : Les versions ARM natives sur macOS, épaulées par MoltenVK, offrent actuellement l'alternative la plus stable et performante face aux PC x86 haut de gamme.
- Windows-on-ARM est toujours en chantier : Bien que la détection des nouvelles fonctionnalités soit un signe encourageant, la distribution des binaires officiels pour Windows ARM64 n'est pas encore régulière, et le processus de build via Clang reste plus complexe que la route standard Visual Studio.
- Les optimisations peuvent être à double tranchant : Une PR de mars 2026 concernant la prédiction de boucle SPU a montré un gain de +1 à +2 FPS dans Twisted Metal, mais a causé une régression substantielle dans LittleBigPlanet 3 sur Steam Deck LCD. Cela explique pourquoi beaucoup de ces fonctionnalités spécifiques à ARM sont encore en phase de test.
Nous n'en sommes pas encore au point où un ordinateur portable ARM haut de gamme est la recommandation par défaut pour les exclusivités les plus gourmandes de la PS3, mais le flux constant de mises à jour de bas niveau suggère que les développeurs voient un chemin concret vers cette parité.
Commentaires