Actualités

PPSSPP : L’IA révèle le fonctionnement des fonctions VFPU

PPSSPP a utilisé l'IA pour comprendre les fonctions VFPU de la PSP, permettant une émulation plus précise et optimisée.

Bande-annonce officielle

PPSSPP : Découverte des Fonctions VFPU via l’IA

Le projet PPSSPP, un émulateur libre et open source de la console PlayStation Portable (PSP), a récemment marqué un tournant majeur dans l’émulation des fonctions mathématiques du VFPU (Vector Floating Point Unit). Cette avancée, détaillée dans un blog de développement publié le 24 septembre 2026, a permis de comprendre le fonctionnement interne de ces instructions, qui étaient jusqu’à présent inconnues.

Le VFPU : Une Unité de Calcul Spéciale

Le VFPU est une unité vectorielle de la PSP, conçue comme un co-processeur MIPS traditionnel. Il partage le flux d’instructions avec le CPU principal mais dispose d’un pipeline propre. Comme les GPU modernes, il intègre une unité de fonction spéciale pour des calculs comme sin, cos, exp2, log2, racine carrée, etc. Bien que la fonctionnalité de ces instructions soit connue, leur implémentation exacte restait mystérieuse.

Les fonctions VFPU incluent :

  • vrcp : inverse
  • vrsq : inverse de la racine carrée
  • vsqrt : racine carrée
  • vexp2 : puissance de 2
  • vsin : sinus
  • vcos : cosinus
  • vasin : arc-sinus
  • vlog2 : logarithme en base 2
  • vrot : rotation matricielle

Une Émulation Plus Précise et Plus Rapide

fp64, un contributeur clé du projet, avait déjà mis en place une version bit-exacte de ces fonctions en utilisant des tables de résultats et des corrections. Cependant, cette approche consommait plusieurs mégaoctets de mémoire et affectait la performance. L’objectif était de trouver une méthode plus efficace.

Encouragé par le travail de skmp sur la réversing de l’unité FIPR sur la Sega Dreamcast, l’équipe a décidé d’utiliser l’intelligence artificielle. En utilisant Claude Opus, l’IA a réussi à déchiffrer le fonctionnement des fonctions VFPU en seulement une heure. Cette découverte permettra à PPSSPP de réduire la taille des tables de données et d’améliorer la précision de l’émulation.

Les Résultats de l’Analyse

Les résultats de l’analyse montrent que les huit fonctions VFPU proviennent désormais de seulement 10 Ko de coefficients, avec une précision exacte sur chaque entrée de 32 bits. Cette méthode, basée sur une analyse des données et de la vérification exhaustive, a permis de remplacer les tables de correction par une implémentation précise.

Les performances ont également été améliorées. Par exemple, la fonction rcp prend désormais 4,2 ns au lieu de 3,6 ns, et rsqrt passe de 5,4 ns à 3,6 ns. Ces améliorations sont attribuables à la réduction de la complexité des calculs et à l’optimisation de l’architecture.

Les Implications pour l’Émulation

La découverte des fonctions VFPU a des implications importantes pour l’émulation de la PSP. Elle permet non seulement une meilleure précision, mais aussi une réduction de la consommation de mémoire et une amélioration des performances. Cette avancée souligne l’importance de l’IA dans la réversing et l’analyse des systèmes anciens.

Le projet PPSSPP continue de progresser, avec des mises à jour régulières et des améliorations continues. Les utilisateurs peuvent désormais profiter d’une émulation plus stable et plus précise de leurs jeux PSP sur diverses plateformes, y compris Android, iOS, Windows et macOS.

Référence officielle : PPSSPP Blog