Libretro, RetroArch et distributions sur Raspberry Pi

Sommaire


Libretro/Retroarch

Vous aurez peut-être entendu parler de Libretro ou Retroarch, et vous vous demandez ce que c’est.

Libretro est une bibliothèque de programmation (“library” en anglais, d’où le “Lib” de “Libretro”), qui permet aux développeurs d’émulateur d’accéder à des fonctions standardisées, et d’intégrer leurs émulateurs dans Retroarch (même si en pratique, c’est souvent plutôt Retroarch qui modifie les émulateurs pour les intégrer). En tant qu’utilisateur, vous n’avez pas accès à Libretro : pour schématiser, ce ne sont que des “bouts de code” que l’on peut intégrer lorsque l’on développe un programme.

Libretro est le “centre névralgique”. Il fournit des API (une couche de programmation) dans tous les sens pour faire communiquer de manière standard les émulateurs, l’affichage, le hardware, etc. En gros, si j’écris un émulateur en m’appuyant sur Libretro, je n’ai plus à me soucier de faire fonctionner mon émulateur sur PC, Mac ou Android ; sur un écran 55″ 4K ou un écran de Gameboy ; avec un clavier, un pad PS3 ou un stick arcade custom : c’est libretro s’occupe de tout ça. L’émulateur reçoit “le bouton A du pad a été appuyé”, il fait ses calculs, et renvoie l’image qui va bien à Libretro, qui se démerde pour l’afficher.

Notez que Libretro appelle les émulateurs des “core” au prétexte qu’ils pourraient être autre chose que des émulateurs, même si presque rien d’autre utilisant Libretro n’existe.

Retroarch est un front-end (voir plus bas), qui permet de lancer ces émulateurs qui utilisent Libretro. C’est lui que vous lancez pour jouer à vos jeux. Retroarch a l’avantage d’être très complet, avec des tonnes de systèmes émulés, des tonnes d’émulateurs pour chaque système, des options à foison, etc. Le revers de la médaille, c’est que l’interface est incroyablement difficile à comprendre, avec une logique bien particulière et des options absolument partout.

Les front-ends

Par-dessus Libretro, auquel on n’a pas accès en tant qu’utilisateur lambda, on utilise un front-end. C’est une interface graphique utilisateur (GUI) qui permet de “piloter” ce que font Libretro et les cores, de charger des jeux, etc.

Retroarch est un front-end, c’est le plus incompréhensible et inutilisable des front-ends, mais c’est aussi l’officiel, et celui qui permet de faire le plus de choses. Beaucoup de front-ends ne prennent pas la peine de coder bon nombre de fonctions et se contentent de lancer Retroarch pour la configuration avancée.

L’intérêt principal d’un frontend, c’est d’être joli et facile à utiliser. Comme ce sont 2 critères qui sont totalement subjectifs, impossible de donner un conseil à ce niveau. Regardez quand-même la date de la dernière version, certains ne sont plus mis à jour depuis des années… ça n’empêche pas ces vieilles versions de très bien fonctionner, mais les bugs ne seront peut-être jamais corrigés.

Les plus populaires :

  • RetroArch : le plus compliqué, le plus “brut”, le plus complet.
  • LaunchBox : un front-end Windows, qui permet aussi de lancer les jeux Windows ou Steam.
  • Hyperspin : assez connu, assez joli, assez complet, mais assez payant.
  • EmulationStation : très connu et utilisé, mais seulement en version “custom” dans les distributions Recalbox et Retropie.

Les autres également connus :

  • ICE : intègre vos roms sur Steam, mais il n’est plus mis à jour depuis quelques années.
  • RetroFE : plutôt chouette, et semble toujours utiliser la dernière version de MAME, ce qui est intéressant.
  • New Retro Arcade Neon : un front-end en VR qui permet d’explorer une salle d’arcade enfumée (personnalisable) et de jouer aux jeux exposés. En VR, donc.
  • Phoenix : basique, mais efficace.
  • BizHawk : dédié aux speedrunners.
  • mGalaxy : pas mal de thèmes plutôt cools, mais souvent payants.
  • Attract-Mode : utilise massivement les vidéos pour attirer le chaland (d’où le nom).
  • FEEL : prévu pour être utilisé dans une borne d’arcade custom.
  • GameEx : spécialisé dans l’arcade, mais dispose également une version dédiée aux consoles. Avec plein de vidéos et d’images en plein écran.
  • HardCade : également spécialisé dans l’arcade. Léger, pour tourner sur des petites configs.
  • Kodi : c’est censé juste lire des vidéos, mais comme ça utilise aussi sur libretro, en pratique ça peut se trafiquer pour coller ses roms à côté de ses films.

Les distributions

Le tout est rassemblé dans une distribution : Retropie ou Recalbox sont des distributions, qui regroupent le tout de manière prête à l’emploi : Libretro + des cores + un front-end. Et d’autres trucs, comme des scrapers (qui vont chercher des informations sur les roms), par exemple.

Les distributions sont essentiellement utilisées sur Raspberry Pi, même si des versions PC existent parfois, ce qui est plus facile à installer mais empêche d’utiliser son PC normalement.

Liste des distributions :

  • Recalbox : distribution très connue sur Pi, plus connue que Retropie en France car faite principalement par des Français. Assez peu personnalisable, mais marche très bien sans toucher à rien. Elle est très clairement recommandée pour ceux qui ne veulent pas se prendre la tête à devoir paramétrer des choses, qui veulent avoir une interface simple et jolie à utiliser.
  • Batocera : basé originellement sur Recalbox, il est mis à jour un peu plus “agressivement”, avec plus d’émulateurs, plus d’options, etc, et est donc un peu moins “stable”. Moins populaire, la communauté est plus petite, et vous aurez peut-être moins de réponses à vos problèmes.
  • Retropie : la distribution la plus connue sur Raspberry Pi dans le monde anglophone. Très configurable et personnalisable, on peut même y ajouter un environnement de bureau avec un navigateur internet, LibreOffice, Gimp, et tout ce qu’on veut pour travailler. Sa modularité est sa force mais aussi sa faiblesse : on peut facilement se perdre dans les méandres des menus et passer plus de temps à bidouiller qu’à jouer. Au premier lancement il n’y a même pas d’émulateurs, et il faudra les installer en passant dans un menu en mode texte (ncurses).
  • Lakka : la distribution “officielle” de Libretro. Basique et pas très pratique car elle utilise l’infernal RetroArch, mais fait le job.
  • Blast16 et SNESES : dédiés respectivement aux système Sega et à la SNES, ils cherchent à reproduire l’expérience “user friendly” des Megadrive Mini et SNES Mini. En revanche, les possibilités sont très limitées, il n’y a aucune personnalisation, et les mises à jour ont été arrêtées.