RetroArch : le frontend de référence pour libretro
Frontend multiplateforme et sophistiqué pour l'API libretro. Sous licence GPLv3.
En bref
- De quoi s’agit-il ?
- Un frontend multiplateforme qui charge les cœurs libretro comme bibliothèques dynamiques, avec le support de nombreuses plateformes et pipelines de shaders.
- À qui s’adresse-t-il ?
- La portée de RetroArch est définie par l'API libretro : elle gère l'audio, la vidéo, l'entrée et le cycle de vie, tandis que les cœurs fournissent l'émulation ou le rendu réel. Sa liste de plateformes et ses options de configuration sont documentées dans le README, mais certains détails, comme le texte complet de la licence, ne figurent pas dans les sources fournies.
- Puis-je l’utiliser commercialement ?
- Oui, sous conditions. GPL-3.0 est une licence copyleft : si vous distribuez un logiciel qui l’inclut, vous devez publier le code source de ce logiciel sous la même licence. Un usage interne, sans distribution, ne déclenche pas cette obligation.
- Est-il encore maintenu ?
- Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
- En quel langage est-il écrit ?
- Principalement C, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Frontend de référence pour l'API libretro
RetroArch est le frontend de référence pour l'API libretro. L'API libretro fournit des callbacks génériques pour l'audio, la vidéo et l'entrée. Les implémentations de cette API incluent des émulateurs de systèmes de jeux vidéo et des moteurs de jeu, chargés comme bibliothèques dynamiques appelées cœurs libretro. Le README indique que libretro est complètement ouvert et libre d'utilisation pour quiconque, et que d'autres projets ont utilisé l'interface pour supporter des émulateurs et des moteurs de jeu. L'en-tête de l'API est lié dans le README.
Binaires, support et documentation
Les binaires précompilés sont hébergés sur le buildbot à buildbot.libretro.com. Pour contacter les développeurs, le README liste les issues GitHub, le forum officiel, Discord et Reddit avec un flair Support technique. La documentation est disponible dans le Centre de documentation, et les builds Unix incluent des pages man. Les projets connexes incluent des collections de shaders (common-shaders, slang-shaders, glsl-shaders), des scripts d'aide à la compilation dans libretro-super, et des miroirs GitHub dans libretro-mirrors. Les instructions de compilation sont liées depuis le centre de documentation plutôt qu'incluses dans le README.
Philosophie et caractéristiques notables
Le README décrit RetroArch comme essayant d'être petit et léger tout en conservant les fonctionnalités de base utiles d'un émulateur. Il est conçu pour être portable, avec une interface utilisateur centrée sur la manette et tactile, ainsi qu'une interface en ligne de commande complète. Les fonctionnalités supplémentaires mises en avant incluent le support des shaders multi-passes, le rembobinage en temps réel (style Braid), l'enregistrement vidéo avec FFmpeg et la suppression de la latence d'entrée run-ahead. Le projet met également l'accent sur la facilité d'intégration dans les frontends de lancement.
Couverture des plateformes et dépendances
Le README liste une longue liste de plateformes, y compris Android, Apple iOS, macOS (PPC, x86-32, x86-64), tvOS, Blackberry, DOS, Emscripten, FreeBSD, Haiku, LG webOS, Linux, plusieurs versions de Windows de NT 3.5 à 11, et de nombreux ports de consoles tels que Nintendo Switch, PlayStation 4, Xbox Series S/X, et d'autres. Les dépendances sont minimales : aucune véritable dépendance dure, Windows nécessite uniquement Win32, Linux a des en-têtes GL/Vulkan recommandés et X11 ou EGL/KMS/GBM, macOS nécessite Xcode. Les bibliothèques optionnelles incluent nvidia-cg-toolkit et libfreetype2. Les pilotes audio listent ALSA, OSS, RoarAudio, RSound, OpenAL, JACK, SDL, PulseAudio, PipeWire, XAudio2, DirectSound et CoreAudio. Un cœur libretro doit être présent à l'exécution, mais il est chargé dynamiquement, donc il n'est pas requis à la compilation.
Exigences des pilotes graphiques et shaders
Le README spécifie le support minimal des pilotes vidéo : OpenGL 1.1, OpenGL 2.1, OpenGL 3.2 core, Direct3D 11 avec Shader Model 4.0, et Vulkan 1.0. Le support des shaders varie : OpenGL1 n'a pas de shaders, OpenGL2 supporte Cg (obsolète) ou GLSL, OpenGL3, D3D11 et Vulkan supportent les shaders Slang modernes. Les pilotes de menu MaterialUI, XMB, Ozone et RGUI devraient fonctionner avec tous ces pilotes, bien que XMB manque d'effets de pipeline de shaders sur OpenGL1.
Configuration · libretro retroarch
La configuration par défaut est définie dans config.def.h, et le README déconseille de la modifier sauf si vous savez ce que vous faites. Un exemple de configuration est installé dans /etc/retroarch.cfg comme fichier système. Au démarrage, RetroArch crée une configuration utilisateur dans $XDG_CONFIG_HOME/retroarch/retroarch.cfg si elle n'existe pas. Les utilisateurs n'ont besoin d'ajuster que les options qui diffèrent des valeurs par défaut. La configuration des manettes peut se faire via le menu intégré ou en éditant retroarch.cfg.
Commutation de résolution CRT
CRT SwitchRes peut être activé à la volée, mais nécessite un redémarrage pour être désactivé, et démarre RetroArch en 2560x480@60. Sous Windows, CRTEmudriver et les modelines doivent d'abord être installés. Le README liste les super résolutions recommandées à 2560 de largeur (1920, 2560 et 3840 sont les seules super résolutions compatibles), et liste les modelines pour NTSC et PAL. La commutation de résolution native nécessite un ensemble distinct de modelines pour des consoles spécifiques telles que SNES, Mega Drive, NES, N64, PSX, Saturn, GBA et les systèmes d'arcade. Le README conseille que les super résolutions donnent généralement de meilleurs résultats que la commutation de résolution native en raison des changements de résolution en milieu de ligne sur le matériel d'origine. Pour MAME, la détection de résolution garantit que les jeux sont affichés à la résolution disponible la plus proche mais dessinés à leur résolution native ; les jeux verticaux comme DoDonPachi doivent être pivotés dans MAME avant d'activer CRT SwitchRes.
Conclusion éditoriale
La portée de RetroArch est définie par l'API libretro : elle gère l'audio, la vidéo, l'entrée et le cycle de vie, tandis que les cœurs fournissent l'émulation ou le rendu réel. Sa liste de plateformes et ses options de configuration sont documentées dans le README, mais certains détails, comme le texte complet de la licence, ne figurent pas dans les sources fournies.
Notes de la communauté