Une PS5, au fond, c'est juste un PC comme les autres. Elle a un processeur AMD x86-64 (c'est du Zen 2, en gros un Ryzen) ainsi qu'une puce graphique RDNA 2, ce qui est grosso merdo la même came que ce qu'il y a dans votre tour de gamer.Et pour ça que le pari d' AnyPS5 est possible ! L'objectif de ce projet c'est qu'au lieu de lancer un n-ième émulateur qui "imite" la console pendant que vous jouez, l'outil prend le code binaire d'un jeu PS5, le décompile et le recompile intégralement sous la forme d'un vrai programme Linux ou Windows, que votre système peut ensuite lancer comme n'importe quel autre.Pour y parvenir, ce projet repose sur 2 briques. D'abord il y a un "relinker", qui lit l'exécutable du jeu et le reconstruit au format natif de la cible, c'est à dire ELF pour Linux ou PE pour Windows. Mais comme le jeu continue d'appeler des fonctions système PS5 que votre PC ne connait pas, AnyPS5 réimplémente les bibliothèques de Sony, libc, libkernel et toute la famille libSce, en bibliothèques dynamiques que le chargeur de votre OS peut alors lier au programme converti.Résultat, le jeu tourne comme un processus normal, sans runtime à part... C'est beau non ?Mais tout n'est pas réécrit d'avance pour autant puisque côté graphique, le jeu envoie ses files de commandes comme s'il causait à la puce AMD de la console, et c'est donc la version maison du projet de libSceAgcDriver qui les interprète pendant l'exécution. Les shaders RDNA, eux, sont recompilés en SPIR-V pour Vulkan quand le jeu les demande, puis rangés dans un cache sur le disque pour les lancements suivants. Donc ça veut dire que certes, le code processeur tourne en natif, mais la partie GPU, elle, est traduite à la volée.La conversion elle-même, après c'est juste une ligne de commande. Vous indiquez l'exécutable du jeu et son dossier sce_module côte à côte, et vous choisissez le nom du binaire cible (le .exe quoi) :relinker source/input.elf app.elfrelinker --windows source/input.elf app.exeSur un processeur Intel, ajoutez le paramètre --to-intel, qui convertira les instructions propres aux puces AMD qu'il connaît.Et quand le jeu touche à quelque chose que le projet ne gère pas encore, AnyPS5 lève une exception, en affiche la raison dans le terminal et le processus s'arrête. Ça veut dire qu'un jeu qui boote n'est pas forcément un jeu auquel vous pourrez jouer jusqu'au bout.Et justement, qu'est-ce qui va jusqu'au bout ?Hé bien la liste de compatibilité officielle est trèèès courte puisqu'elle ne contient qu'un seul jeu : Dreaming Sarah. C'est un jeu de plateforme 2D sorti sur Steam en 2015 et vendu moins de 5 € (1,49 € en promo au moment où j'écris).Sous Windows, après recompilation, il est noté "in game, playable", à 60 images par seconde sur une GTX 1050 Ti et 36 sur une puce Intel HD 620 et sous Linux, on ne connait pas encore les stats même si l'ELF Linux a été généré.Bien sûr, comme toujours avec ces projets de recompilation ou d'émulation, aucun firmware, ni jeu, ni clé n'est fourni. Et comme vous le savez, pour déchiffrer un jeu et l'extraire, il faut un exploit du firmware en cours, autrement dit une console débridée. Donc ça limite un peu les ambitions de pas mal de monde. Mais ça n'en reste pas moins possible pour qui a un peu de volonté (et une PS5 jailbreakée).Sachez que ce projet AnyPS5 nécessite une carte graphique Vulkan 1.1, que les manettes Xbox ou PlayStation reconnues par SDL fonctionnent avec sticks et gâchettes analogiques, et que le clavier se remappe sans souci dans un fichier anyps5-input.ini que vous devez éditer.Voilà... Les émulateurs PS5 dont je vous ai parlé, recréent la console autour du jeu alors qu'AnyPS5 tente de recréer le jeu pour n'importe quelle machine. On verra qui y parvient massivement en premier, mais en tout cas, la course à l'émancipation de la PS5 et de ses jeux est lancée !Source : AnyPS5