[PS4] shadPS4 corrige des fermetures brutales de Shadow of the Colossus sous Windows
[PS3] RPCS3 : kd-11 achève une refonte majeure du RSX et permet de changer de moteur graphique en jeu
[PS5] PC5 2.0 : lancez vos jeux PC sur PS5 grâce à Wine et DXVK
[PS5] multiMAN PS5 : une légende de la scène PS3 fait ses premiers pas sur PlayStation 5
[PS5] Prospero.Eden Encore : un fork d’Eden mise sur l’émulation Switch directement sur PS5Le développeur junminlee2004 vient de faire intégrer à shadPS4 un correctif destiné à Shadow of the Colossus, dont l'émulation sous Windows pouvait s'interrompre brutalement, parfois sans message d'erreur. Fusionnée le 28 octobre 2026 dans le dépôt officiel de l'émulateur PlayStation 4, la contribution #5382 s'attaque à un conflit entre les piles d'exécution du jeu et les protections mémoire utilisées pour le rendu graphique. Une correction ciblée, mais importante pour la stabilité de ce titre exigeant.
Pour rappel, shadPS4 cherche à exécuter les jeux de la PS4 sur Windows, Linux et macOS en reproduisant leurs services système et les commandes du processeur graphique. Shadow of the Colossus, le remake de Bluepoint Games, fait partie des titres dont le fonctionnement progresse grâce à des correctifs spécifiques. Les performances et la compatibilité restent variables selon les configurations : cette modification ne constitue pas une annonce de jeu entièrement compatible.
Pourquoi l'émulateur se fermait sans explication
Le problème concernait les « fibers », un mécanisme permettant à un programme de passer d'une tâche à une autre tout en conservant leur contexte d'exécution. Dans Shadow of the Colossus, les piles mémoire de ces fibers se trouvaient à proximité des données graphiques surveillées par shadPS4. Lorsque l'émulateur préparait certaines plages mémoire pour le GPU, il pouvait protéger accidentellement les pages contenant également une pile de fiber.
Sous Windows, la situation devenait particulièrement délicate : lorsqu'une fiber tentait d'écrire sur sa propre pile protégée, le système devait y déposer les informations nécessaires au traitement de l'exception. Cette écriture échouait à son tour. Résultat : le processus pouvait se fermer silencieusement, notamment lorsque les transferts DMA étaient activés. Le comportement ne se présentait pas de la même façon sur les systèmes de type POSIX.
Les piles déplacées hors de la mémoire graphique
Plutôt que de désactiver les protections mémoire, junminlee2004 déplace les piles des fibers vers une autre zone de l'espace d'adressage du jeu, éloignée des régions suivies par le moteur graphique. L'émulateur conserve une correspondance entre les fibers et les piles qui leur ont été attribuées. Lorsqu'une même zone est réutilisée, il peut réemployer la pile existante ; si une nouvelle fiber recouvre l'emplacement d'une ancienne, l'ancienne pile est libérée pour reproduire le comportement attendu de la PS4.
La proposition a évolué après une remarque d'un autre contributeur concernant les risques de chevauchement sur des pages mémoire non alignées. L'auteur a alors privilégié le déplacement des piles plutôt qu'une solution reposant sur la modification des protections en place.
Une amélioration de stabilité, pas un gain de FPS annoncé
La contribution comporte une capture de Shadow of the Colossus avec les lectures graphiques précises et le DMA activés. Elle ne fournit cependant ni campagne de tests sur plusieurs configurations, ni mesure de performances, ni garantie de disparition de tous les plantages. Le changement vise Windows et les fermetures provoquées par ce conflit mémoire ; il ne règle pas automatiquement les autres problèmes graphiques ou de compatibilité du jeu.
Le correctif est désormais présent dans la branche principale de shadPS4. Les utilisateurs devront attendre une compilation qui l'intègre ou une prochaine version officielle pour en bénéficier sans compiler eux-mêmes le projet. Les développeurs poursuivent ainsi l'amélioration de l'émulateur en corrigeant des différences de comportement entre la mémoire d'une PS4 et celle des systèmes modernes.
Sources et téléchargements
Correctif #5382 — explications, revue et capture du projet / Commit fusionné dans shadPS4 / Versions officielles de shadPS4.