
Le développement de RetroArch ne connaît pas de pause. Entre le 26 et le 27 octobre, la branche de développement du célèbre frontend multi-émulateurs de libretro a intégré une série de contributions qui touchent à des domaines très différents : l'analyse des bibliothèques de jeux, la réactivité des commandes sur Android, la gestion des archives volumineuses, le rendu sur PlayStation 3 et le jeu en réseau. Aucune version stable ne les intègre encore, mais elles donnent un aperçu de la prochaine mise à jour.
Des bibliothèques analysées en un éclair
Le premier chantier, signé Davey-Hughes, s'attaque à un défaut bien connu des utilisateurs : la lenteur de l'analyse des dossiers de ROMs. Le scanner passait l'essentiel de son temps à calculer l'empreinte CRC de fichiers qu'il aurait pu identifier autrement. Les jeux PlayStation sont désormais reconnus par le fichier SYSTEM.CNF du disque : sur dix images CHD, l'analyse passe de 8,49 secondes à 0,45 seconde. Les jeux Nintendo 3DS s'identifient par leur code produit NCCH, lisible même dans les copies chiffrées, ce qui évite de calculer l'empreinte d'images de plus d'un gigaoctet. Le travail est aussi découpé en petites étapes pour ne plus bloquer l'affichage, et jusqu'à quatre lecteurs travaillent en parallèle selon le nombre de cœurs du processeur. Les tests évoquent mille ROMs NES zippées analysées en 4,31 secondes au lieu de 11,88 sur un partage réseau, et un gain de 34 % sur la carte microSD d'une console portable Android. La lecture parallèle reste toutefois désactivée sur Wii U et PS Vita. Au passage, l'analyse d'un fichier isolé fait son retour, sans écraser la liste de jeux existante.
Sur Android, trois contributions de Bradleyw801 corrigent la gestion des commandes. Jusqu'ici, la façon dont RetroArch dialoguait avec le système limitait la lecture des touches à une trentaine par seconde. Au-delà, les appuis s'empilaient et pouvaient être rejoués bien après que le joueur avait lâché la manette. Lors d'un test sur Super Punch-Out!! avec l'émulateur Snes9x, le retard maximal tombe de 10 secondes à 35 millisecondes. Une lecture des entrées dans un fil d'exécution dédié règle le problème, et deux boutons pressés ensemble arrivent enfin au même moment. Les mouvements des sticks et de l'écran tactile ne sont plus mis en attente par Android jusqu'à l'image suivante : le délai moyen d'un glissé de doigt passe de 13,1 à 2,4 millisecondes. Enfin, un joueur affecté à une autre manette que la sienne récupère bien les boutons de cette dernière, et pas seulement ses sticks. Les gains concernent surtout ces situations précises, pas la latence de chaque jeu.
Archives géantes, PS3 et netplay
Côté archives, RetroArch gère désormais le format ZIP64, indispensable au-delà de 4 Go, et sait lister et extraire les fichiers de cette taille dans les archives 7z, RAR et zst lorsque la plateforme le permet. Une image disque zippée peut ainsi être extraite morceau par morceau, sans être chargée entièrement en mémoire, un atout pour les jeux sur CD et DVD.
La version PS3 reçoit, grâce à jcorrea, un contexte de rendu natif et expérimental pour le processeur graphique RSX de la console. Les cores compilés avec PSL1GHT, la boîte à outils homebrew de la PS3, peuvent désormais présenter leurs textures directement au GPU, sans passer par des copies du processeur central. Il s'agit d'une fondation technique : elle n'accélère pas automatiquement les émulateurs existants, qui devront être adaptés pour en profiter.
Les sticks analogiques enfin synchronisés en ligne
Le netplay comble enfin une lacune ancienne. Le protocole ne transmettait que les boutons des manettes, si bien que les jeux qui lisent les sticks analogiques, sur Nintendo 64 ou GameCube notamment, se désynchronisaient ou voyaient les sticks des joueurs distants immobiles. Le protocole passe en version 8 et transmet désormais ces données. Contrepartie : avec l'option de synchronisation des sticks, activée par défaut, un hôte refuse les clients plus anciens pour éviter les désynchronisations. Tous les jeux de ces consoles ne deviennent pas jouables en ligne pour autant, mais cette avancée s'inscrit dans l'essor du jeu en réseau dans l'émulation, dont Recalbox 11 a fait l'un de ses arguments.
Ces nouveautés profiteront à un logiciel désormais présent presque partout, des portables Android, qui accueillent aussi des émulateurs comme WatermelonDS, jusqu'à la PS5 jailbreakée, où RetroArch tourne en natif. Les plus curieux peuvent tester ces changements dans les compilations de développement, en attendant la prochaine version stable publiée sur le dépôt GitHub du projet. L'actualité du frontend se suit aussi sur la page RetroArch.
Vous aimez notre contenu ?
Suivez-nous pour ne rien manquer !