PPSSPP utilise l’IA pour émuler précisément les fonctions VFPU des jeux PSP
Cracking VFPU math functions using AI – PPSSPP : Une avancée majeure dans l’émulation des jeux PSP
Le 24 septembre 2026, le blog officiel de PPSSPP a publié une actualité marquante sur la découverte des fonctions mathématiques du VFPU (Vector Floating Point Unit) de la console PlayStation Portable. Cette découverte, menée par Henrik Rydgård, a permis d’améliorer l’émulation des jeux PSP via PPSSPP, en utilisant l’IA pour décrypter les algorithmes internes de la console.
Le VFPU : une unité vectorielle complexe
Le VFPU est une unité vectorielle de la console PSP, conçue comme un co-processeur MIPS qui partage le flux d’instructions avec le CPU principal, mais dispose d’un pipeline propre. Contrairement aux unités de calcul modernes, le VFPU possède une unité de fonction spécialisée, capable de traiter des fonctions mathématiques comme sin, cos, exp2, log2, sqrt, rcp, rsqrt, etc.
Ces fonctions renvoient des approximations, mais pas des résultats correctement arrondis selon le standard IEEE. Leur implémentation exacte reste un mystère, bien que leur comportement soit bien connu. C’est pourquoi, jusqu’à présent, l’émulation de ces fonctions dans PPSSPP reposait sur des tables de données volumineuses.
Une nouvelle approche : l’IA et la précision bit-exacte
Henrik Rydgård, contributeur clé à PPSSPP, a utilisé l’IA (notamment Claude Opus) pour analyser les fonctions mathématiques du VFPU. Cette approche a permis de déchiffrer les algorithmes internes, permettant une émulation précise et optimisée.
Le résultat est une implémentation exacte des fonctions mathématiques du VFPU, qui fonctionne avec une précision de 100% sur tous les 2^32 entrées possibles. Cette solution réduit la taille des données de 4,9 MB à 10,5 KB, tout en améliorant les performances.
Les performances et la réduction de la taille des données
Les tables de données utilisées pour l’émulation des fonctions mathématiques du VFPU ont été réduites de manière significative. L’ancienne méthode, basée sur des tables de données volumineuses, pesait environ 4,9 MB, tandis que la nouvelle implémentation, basée sur des coefficients précis, ne prend que 10,5 KB.
Cette optimisation permettra à PPSSPP de réduire la taille des fichiers d’installation et d’améliorer les performances. Les fonctions mathématiques seront désormais activées par défaut dans les futures versions de l’émulateur, grâce à leur meilleure efficacité.
Les fonctions implémentées et leur précision
Les fonctions mathématiques du VFPU implémentées incluent : rcp (reciprocal), rsqrt (reciprocal of square root), sqrt (square root), exp2 (pow(2.0f, input)), sin (sin, avec 4.0 = un tour au lieu de 2*PI), cos (cos, avec 4.0 = un tour au lieu de 2*PI), asin (arc-sine, avec le même système de 4.0), log2, et vrot (convenience function pour sin+cos pour la construction de matrices de rotation).
Chacune de ces fonctions a été testée pour s’assurer de sa précision sur tous les 2^32 entrées possibles. Les résultats montrent que l’implémentation est exacte, ce qui permet une émulation fiable et précise des jeux PSP.
Les implications pour PPSSPP
La publication de Henrik Rydgård a des implications importantes pour PPSSPP. L’émulateur bénéficiera d’une meilleure précision dans l’émulation des fonctions mathématiques du VFPU, ce qui améliorera la compatibilité et la qualité de l’expérience de jeu.
Les changements seront inclus dans les futures versions de PPSSPP, permettant aux utilisateurs de profiter d’une émulation plus précise et plus rapide. Cela marque une avancée majeure dans le domaine de l’émulation des jeux PSP.



