Emulateurs

RetroArch : les surimpresions (Overlay)

[ Cet article est disponible en Anglais / This article is available in English ]


Aujourd’hui, je vais vous faire mon retour d’expérience concernant les surimpressions dans RetroArch. Si le mot surimpression ne vous dit rien, ce n’est sans doute pas le cas des “overlays”.


Mais qu’est-ce que c’est qu’une surimpression (overlay)

Les surimpressions permettent d’ajouter des effets s visuels a un jeu émulé, cela permet de simuler des écrans CRT ou d’ajouter sur les cotés du jeu une image qui peut être en rapport au type console, ou en rapport avec le jeu lui-même.
Les écrans, à l’époque, étaient dans un format 4/3 (plutôt carré), maintenant la plupart des écrans sont en 16/9 (rectangulaire), ce qui laisse de la place sur les cotés du jeu.
Voici ce que cela peut donner avec et sans surimpression :

Presque tous les émulateurs ont un système de surimpression, et quand l’émulateur n’en a pas il est possible de passer par programme externe comme RocketLauncher.

Mon avis, qui peut être discutable, c’est d’éviter de passer par ce genre de programme. Pourquoi ? parce que la configuration est déjà pas très simple, si en plus vous ajoutez une couche supplémentaire, vous allez rapidement vous y perdre et surtout y passer beaucoup de temps. Le plus simple c’est d’avoir un FrontEnd (Launcher-Box, HyperSpin, EmulationStation  …) qui lance directement votre émulateur (Retrorarch, Mame, Fba, Fba-Neo…) plutôt que le FrontEnd qui lance RocketLauncher qui lance l’émulateur.
De plus si l’émulateur change son système d’affichage ou change son système d’options, RocketLauncher n’y arrivera pas, il me semble aussi que RocketLauncher est dépendant de “AutoIt” …
Retroarch gère les surimpressions, autant l’utiliser.


Surimpression dans RetroArch

Je vais vous décrire rapidement comment RetroArch gère les surimpressions,
Le répertoire de Retroarch contient une arborescence de cette forme, regardez bien le répertoire C:\retroarch\config\ et C:\retroarch\overlays\, ce sont ces 2 répertoires qui sont utilisés pour gérer nos surimpressions :

C:\retroarch\ 
    C:\retroarch\assets\
    C:\retroarch\autoconfig\
    C:\retroarch\cheats\
    ...
    C:\retroarch\config\
    C:\retroarch\config\FB Alpha\
    C:\retroarch\config\FinalBurn Neo\
    C:\retroarch\config\MAME\ 
    C:\retroarch\config\Reicast\ 
    ...
    C:\retroarch\overlays\
    C:\retroarch\overlays\FB Alpha\
    C:\retroarch\overlays\FinalBurn Neo\
    C:\retroarch\overlays\MAME\ 
    C:\retroarch\overlays\Reicast\ 
    ...
    C:\retroarch\system\
    C:\retroarch\thumbnails\

Quand vous lancez un jeu, Retroarch va tester la présence de plusieurs fichiers et les charger s’ils existent. C’est la configuration la plus proche du jeu qui est prioritaire :

  1. Lecture de la configuration générale (retroarch.cfg)
  2. Lecture de la configuration générale du cœur (core) pour le jeu chargé, exemples :
    • C:\retroarch\config\FB Alpha\FB Alpha.cfg (pour fbalpha_libretro.dll)
    • C:\RetroArch\config\MAME\MAME.cfg (pour mame_libretro.dll)
  3. Lecture de la configuration du type de plateforme (CPS1, CPS2 …) OU lecture de la configuration mis avec l’option “–appendconfig PATH_AND_FILENAME.cfg“.
    Attention : Retroarch ne charge pas les 2 fichiers, c’est l’un ou l’autre, en priorité le fichier qui porte le nom de la plateforme émulé.
    • C:\RetroArch\config\MAME\Capcom Play System.cfg
    • C:\RetroArch\config\MAME\Capcom Play System II.cfg
    • C:\RetroArch\config\MAME\Capcom Play System III.cfg
    • C:\retroarch\config\FB Alpha\Capcom Play System.cfg
    • C:\retroarch\config\FinalBurn Neo\Capcom Play System.cfg
  4. En dernier, lecture de la configuration pour le jeu chargé, exemples :
    • C:\retroarch\config\FB Alpha\sfiii3.cfg (Street Fighter III avec FBAlpha)
    • C:\RetroArch\config\MAME\jojo.cfg (pour JoJo’ avec Mame)

C’est donc dans ces fichiers, au format texte, que la configuration indique à Retroarch s’il faut charger une configuration de surimpression ou pas : Ce fichier NE CONTIENT PAS la configuration de la surimpression, il indique juste le chemin et le nom du fichier qui contient les paramètres de la surimpression.
Prenons l’exemple de C:\RetroArch\config\MAME\MAME.cfg ce fichier contient la configuration du coeur “core” mame_libretro.dll :

state_slot = "0"
input_overlay = ".\overlays\mame\mame.cfg"
input_overlay_scale = "1.020000"

Ce fichier de configuration contient le chemin et le nom du fichier de configuration pour la surimpression, dans notre exemple le véritable fichier de configuration est donc “.\overlays\mame\mame.cfg

Voici le contenu du fichier C:\RetroArch\overlays\mame\mame.cfg :

overlays = 1
overlay0_overlay = "mame.png"
overlay0_full_screen = true
overlay0_descs = 0

C’est donc dans ce fichier que vous trouverez la configuration de la surimpression de notre cœur chargé (core).
Attention pour FBA : si vous mettez un chemin relatif dans un fichier de configuration (pas dans le fichier de surimpression), exemple input_overlay = “.\overlays\mame\mame.cfg” dans C:\retroarch\config\FB Alpha\FB Alpha.cfg , il faudra absolument que le répertoire de lancement (ou répertoire de travail) corresponde au répertoire contenant “retroarch.exe”

Prenons un exemple, si nous voulons lancer le jeux sfiii3 “Street Fighter III: New Generation (Euro 970204)”, voila ce que cela donnerai :

  • Exécution de la commande : retroarch.exe -f –verbose -L cores\fbneo_libretro.dll –appendconfig “.\config\MAME\MAME-CPS3.cfg” “D:\Games\Capcom Play System III\sfiii.zip”
  • Lecture du fichier de configuration général : retroarch.cfg
  • Chargement du coeur : FinalBurn Neo ( cores\fbneo_libretro.dll )
  • Chargement du jeu : sfiii.zip
  • Retroarch cherche et charge (si le fichier existe) la configuration du cœur : .\config\FinalBurn Neo\FinalBurn Neo.cfg
  • Retroarch cherche un fichier de configuration additionnel (appending config):
    • Recherche le fichier qui porte le nom de la plateforme émulé : .\config\FinalBurn Neo\Capcom Play System III.cfg
    • SI le fichier ci-dessus ( .\config\FinalBurn Neo\Capcom Play System III.cfg ) n’existe pas ET que l’option “– appendconfig ” est présente, Retroarch va charger le fichier mis avec cette option : “.\config\MAME\MAME-CPS3.cfg”
    • Attention : Retroarch ne charge pas les 2 fichiers, c’est l’un ou l’autre, en priorité le fichier qui porte le nom de la plateforme émulé.
  • Retroarch cherche et charge (si le fichier existe) la configuration du jeu : .\config\FinalBurn Neo\sfiii.cfg
  • Quand Retroarch est fermé, les changements de configuration sont enregistrés dans le fichier “retroarch.cfg” sauf si l’option config_save_on_exit = “false” est présente.
    Attention : si le fichier de configuration additionnel est chargé (et utilisé) grâce l’option “– appendconfig “, l’option “input_overlay” du fichier “retroarch.cfg” sera changée avec le dernier overlay qui a été chargé ! Je vous conseille donc de passer cette option config_save_on_exit = “false” dans votre fichier “retroarch.cfg”

Surimpression en fonction de la Plateforme émulé

Certains cœurs comme MAME, FBA… émulent différents types de plateformes (CPS1, CPS2 CPS3, NeoGeo …) et dans certains cas vous ne pourrez pas mettre la configuration de la surimpression dans le fichier de configuration du cœur (“MAME.cfg” ou ” FB Alpha.cfg” ).
Deux solutions :

  • Utiliser le fichier de configuration de la plateforme émulée ( “Capcom Play System III.cfg” …) (conseillé mais pas toujours disponible)
  • Utiliser l’option –appendconfig pour spécifier le fichier de configuration pour la plateforme lancée.

Par exemple pour le jeu ” sfiii3” avec MAME, RetroArch va donc chercher les fichiers de configuration suivants: “config\MAME\MAME.cfg” , “config\MAME\Capcom Play System III.cfg, puis config\MAME\sfiii3.cfg.
Si le fichier config\MAME\sfiii3.cfg existe, c’est que le visuel sera adapté au jeu donc pas de problème.
Si le fichier n’existe pas, cela sera le fichier config\MAME\MAME.cfg qui donnera la configuration, et comme MAME est multi-plateforme, cela peut poser un problème si votre surimpression affiche comme image à l’écran le nom de la plateforme (exemple “CPS3”.)
La solution est d’utiliser le fichier “config\MAME\Capcom Play System III.cfg ” qui correspond à la plateforme émulés.
Voici une liste des fichiers de plateformes pour MAME :

  • Arcade.cfg
  • Capcom Play System.cfg
  • Capcom Play System II.cfg
  • Capcom Play System III.cfg
  • Cave.cfg
  • SNK Neo Geo.cfg

Par exemple :
Votre Frontend lance les jeux CPS3 en utilisant le coeur mame_libretro.dll avec une commande qui ressemble à ceci :

input_overlay = ".\overlays\mame-cps3\mame-cps3.cfg"
retroarch.exe -L cores\mame_libretro.dll %PATH_OF_YOUR_GAMES%
ou
retroarch.exe -L cores\mame_libretro.dll C:\gmaes\cps3\sfiii3.zip

Ensuite, dans votre Frontend vous ajouterez cette option –appendconfig config\MAME\MAME-CPS3.cfg pour les jeux CPS3 lancés, cela donne quelque chose comme ceci :

retroarch.exe -L cores\mame_libretro.dll --appendconfig  config\MAME\MAME-CPS3.cfg %PATH_OF_YOUR_GAMES%
ou
retroarch.exe -L cores\mame_libretro.dll --appendconfig  config\MAME\MAME-CPS3.cfg C:\games\cps3\sfiii3.zip

Faites la meme chose pour chaque plateforme, sur Launch-box cela donne ceci :

Evidemment, je vous laisse adapter vos fichiers de configuration comme vous le voulez (config\MAME\MAME-CPS3.cfg …), n’oubliez pas de créer le répertoire “overlays\mame-cps3\mame-cps3.cfg” et de mettre les fichiers dedans avec la bonne configuration.

Je conseille d’utiliser les fichiers de configuration de la plate forme émulé, c’est bien plus simple. N’utilisez l’option ” –appendconfig ” que si vous n’avez pas d’autre solution.


Ne plus changer la configuration

Pour ne plus sauvegarder la configuration quand on quitte RetroArch, et être sur que votre configuration ne changera plus, vous pouvez ajouter/modifier cette option dans le fichier “retroarch.cfg”

config_save_on_exit = "false"

Divers

# Activer ou  non la pause quand Retroarch n'est pas actif :
pause_nonactive = "false"
# Activer ou  non la pause quand le menu de Retroarch est affiché : 
menu_pause_libretro = "false"

# Ajouter automatiquement le jeux a la playlist 
automatically_add_content_to_playlist = "true"
# Voir les log
content_runtime_log = "true"
input_overlay_show_physical_inputs = "true"
log_verbosity = "true"

Conclusion

Comme vous pouvez le constater, la configuration n’est pas si simple. Mais vous pouvez, dans un premier temps, créer uniquement les surimpressions pour le/les cœurs que vous utilisez.
Je vous conseille donc de télécharger les fichiers de configuration déjà préparé. Je mettrai bientôt un lien pour télécharger ceux que je possède.

Une réflexion au sujet de « RetroArch : les surimpresions (Overlay) »

Laisser un commentaire