URL: https://linuxfr.org/news/duckstation-un-emulateur-playstation-libre-epoustouflant Title: DuckStation, un émulateur PlayStation libre époustouflant ! Authors: tikilou Pierre Jarillon, Davy Defaud, Nils Ratusznik et Ysabeau Date: 2020-12-12T19:16:37+01:00 License: CC By-SA Tags: Score: 4 Stenzek, un développeur et ingénieur spécialisé dans la rétro‐ingénierie, très connu en matière d’émulation, ayant notamment participé activement au développement de l’émulateur Dolphin pour GameCube et Wii, nous gratifie d’un excellent émulateur pour la [[PlayStation]] de Sony, émulateur en développement depuis le 9 août 2019. En termes d’émulation, EPSXE, qui n’était pas libre, a longtemps tenu la palme. Puis, suite à la perte du code source de l’auteur, lui‑même finalement piégé par sa propre politique en la matière, il a dû redémarrer de zéro, et l’émulateur n’a plus vraiment été à la hauteur sur ce qui faisait son succès et son suivi. Au‑delà de ça, s’est longtemps posé le problème de la portabilité, car, faute de code libre, les sorties sur telle ou telle architecture, étaient limitées au choix du développeur. Dans ce domaine, c’est clairement PCSX, qui a parallèlement pris le relai (développé depuis 2001) et dépassé EPSXE, que ce soit à travers le projet original, ou ses nombreuses reprises allant de PCSX-df et PCSX-rearmed. On se retrouvait néanmoins systématiquement à hériter des limitations et problèmes de compatibilité et à des choix de désengagement de l’émulateur vieillissant, lui‑même basé sur de multiples greffons. ---- [Télécharger l’émulateur](https://github.com/stenzek/duckstation/releases/tag/latest) [Code source](https://github.com/stenzek/duckstation) ---- DuckStation est né afin de remettre à niveau l’émulation PSone avec un émulateur Open Source, libre, pour profiter des technologies d’aujourd’hui et obtenir le meilleur rendu et la meilleure prise en charge possible des jeux. DuckStation apporte la prise en charge de plusieurs API graphiques, c’est‑à‑dire logicielle (sur processeur avec exécution parallélisée), OpenGL, DirectX, mais surtout [Vulkan](https://fr.wikipedia.org/wiki/Vulkan_(API)) ! Ce dernier est même déjà disponible sous Windows, macOS et GNU/Linux, en versions 32 et 64 bits pour Intel et ARM, et Android, et propose une application prête à l’emploi avec une interface Qt, ou SDL, ou même un cœur [libretro](https://www.libretro.com/) pour [[RetroArch]] et consorts ! De nombreuses options sont intégrées, comme le préchargement des jeux en mémoire vive, le débogage mémoire en direct, le gestion des codes de triches et listes de codes importées de RetroArch, la configuration d’un BIOS spécifique pour chaque région, l’outrepassement des régions, le surcadencement du processeur émulé de la PSone, l’accélération ou la limitation de la vitesse de lecture des disques avec disques virtuels, le gestion automatisée de deux cartes mémoire dédiées pour chaque jeu, listage automatique des images ISO de jeux, la prise en charge de presque tous les périphériques PSone (incluant NamcoGun et souris), l’accélération « _in‑game_ »… Mais le gros point fort de DuckStation, c’est son excellente gestion des écrans larges sur tous les jeux 3D en temps réel. Elle permet d’afficher des jeux PSone initialement développés pour du format 4/3 en 16/9 ou même en 21/9 et tout un tas d’autres ratios, tout en corrigeant, avec sa propre techno de correction PGXP, les problèmes inhérents de rendu 3D d’une telle conversion. Une option permet même de conserver le ratio 4/3 des vidéos sans déformation. Seules les images fixées restent déformées (généralement les éléments de l’afficheur tête haute et les images 2D de jeux comme _Resident Evil_ et _Final Fantasy_) du fait de la correction (il est possible de régler individuellement les jeux pour leurs propres options activées ou non !), mais Stenzek pense à terme, à inclure la prise en charge du chargement des textures externes à l’émulateur afin que chacun puisse apporter ses corrections. De même, certains jeux intègrent nativement une limitation apportant alors du [_clipping_](https://fr.wikipedia.org/wiki/Clipping_(infographie)) sur les côtés de l’image, il convient alors de trouver et d’intégrer des codes de triches afin de faire sauter ces limitations. Des limitations outrepassées qui ne poseront d’ailleurs pas de problèmes à l’émulateur, car il est possible de surcadencer le processeur émulé de la PSone. La gestion de la conversion vidéo ascendante, quant à elle, est tout simplement excellente, que ce soit à la volée ou manuellement, avec prise en charge de la 4K et au‑delà, ainsi que la gestion de l’anticrénelage (SSA/MSA) et des filtres (dont xBR). La prise en charge de Vulkan n’est pas négligeable, permettant de gagner de précieuses trames vidéo et de soulager le processeur quand on pousse l’émulation dans ses retranchements ! Ce dernier a également une fonction bien pratique, permettant de passer en [[NTSC]] (en 60 Hz) la majorité des jeux [[PAL]] (en 50 Hz), tout en ne provoquant pas de problèmes audio, corrigés à la volée pour la grande majorité des jeux. Du côté du BIOS, Stenzek se concentre actuellement sur la fidélité de l’émulation, et n’a donc pas intégré de BIOS HLE, ni le BIOS clone de NoCash. Vous pourrez néanmoins profiter des BIOS originaux pour l’instant (à condition d’avoir la console d’origine), voire mieux, car de petits malins ont récupéré le BIOS présent dans l’émulateur PSone de Sony sur PSP, et se sont aperçu qu’outre faire sauter la limitation des régions, il permettait d’obtenir un meilleur taux d’images par seconde dans la plupart des jeux, et d’améliorer le rendu des textures en haute résolution. Le _dump_ du dernier BIOS PSone de Sony sur PSP, se trouve généralement sous le nom « `PSXONPSP660.BIN` », et sa somme MD5 est `C53CA5908936D412331790F4426C6C33`. Cet émulateur, nouvelle pointure pour jouer aux jeux PSone, déjà excellent en l’état et très prometteur, pourra du fait de son code libre, être porté sur n’importe quelle architecture en lieu et place de PCSX, que ce soit sur Xbox, Xbox 360, PS3, PS4, Wii, Wii U, Switch, PC, Raspberry Pi (bien qu’actuellement n’étant pas porté sur architectures PPC, uniquement ARM et x86/x64)…