Personnalisez votre machine de retrogaming sur Batocera/Recalbox avec ces réglages pour EmulationStation et Retroarch.
EmulationStation
Utiliser un clavier avec une disposition AZERTY
Par défaut sur Batocera, la disposition du clavier est en QWERTY. Il y a bien les options system.kblayout et system.kbvariant dans batocera.conf mais je n'ai remarqué aucune différence lorsque je les modifie. Ce comportement est recencé sur le forum de Batocera mais sans réponse satisfaisante. Aussi, après différents essais, je vous présente ici ma solution.
Batocera utilise Sway pour configurer le clavier. Lorsque l'on passe en ligne de commande, la commande suivante applique convenablement la disposition AZERTY, ce qui est très encourageant :
sway input type:keyboard xkb_layout fr
Seulement, au redémarrage, ce paramétrage n'est pas conservé et le fichier de paramétrage de Sway est écrasé à chaque redémarrage, annulant toute éventuelle modification... Sur Batocera, l'utilisation de fichiers de configuration étant obsolète depuis la version 38, je vous propose de créer un service qui fonctionne de façon similaire : il s'agit d'un script shell à placer à un endroit approprié pour être automatiquement pris en compte par EmulationStation. Ce script va :
- Attendre le démarrage d'EmulationStation et de Sway.
- Rechercher les périphériques de type clavier 5 fois avec des pauses de 3 secondes.
- Une fois un clavier détecté, il va demander la disposition FR à Sway. En cas d'échec, une pause de 7 secondes est réalisée.
Cette modification peut être appliquée soit en ligne de commande (en allant dans /userdata/system), soit via le répertoire réseau partagé (en allant dans <PARTAGE>\share\system).
- Créez le répertoire /userdata/system/services (ou <PARTAGE>\share\system\services si vous le faites depuis un partage réseau)
- Créez dans ce répertoire un fichier texte (nommé clavier_fr, sans extension) avec le contenu suivant :
#!/bin/bash
# Service Clavier FR, lançant la disposition du clavier en mode AZERTY
# Eric Quillévéré - 08/2025
#
echo "Service clavier FR"
function ajoute_date {
echo -n "$(date +"%Y-%m-%dT%H:%M:%S.%3N");$(whoami);" >> $1
}
#alias ll='ls -lh --group-directories-first --color=auto'
case "$1" in
start)
fichier_log="/userdata/system/clavier_fr.log"
echo "" > $fichier_log
ajoute_date $fichier_log
echo "EmulationStation : attente détection..." >> $fichier_log
while ! pgrep -x swaybg > /dev/null || ! batocera-es-swissknife --espid >> /dev/null; do
sleep 1
done
# La variable d'environnement de Wayland (Sway) n'est pas disponible dans le service
# => on la récupère en listant le répertoire
export SWAYSOCK=$(ls /var/run/sway-ipc.* | head -n 1)
ajoute_date $fichier_log
echo "Clavier : attente détection..." >> $fichier_log
clavier_detecte=false
nb_essais_restants=5
while [[ "$clavier_detecte" != "true" && "$nb_essais_restants" -gt 0 ]]; do
for device in /dev/input/event*; do
# Utilise udevadm pour obtenir des informations sur le type de périphérique
if udevadm info "$device" | grep -q "ID_INPUT_KEYBOARD=1"; then
ajoute_date $fichier_log
echo "Périphérique clavier détecté : $device" >> $fichier_log
clavier_detecte=true
ajoute_date $fichier_log
if /usr/bin/sway input type:keyboard xkb_layout fr | grep -q '{ "success": true }'; then
echo "Lancement SWAY OK" >> $fichier_log
else
echo "Échec du lancement de SWAY" >> $fichier_log
nb_essais_restants=$((nb_essais_restants - 1))
clavier_detecte=false
sleep 7
fi
break
fi
done
if ! $clavier_detecte; then
sleep 3
fi
done
ajoute_date $fichier_log
if $clavier_detecte; then
echo "Fin de l'exécution" >> $fichier_log
else
echo "Abandon de l'exécution" >> $fichier_log
env >> $fichier_log
fi
;;
stop)
sway input type:keyboard xkb_layout us
;;
*)
echo "Usage: $0 {start|stop|restart}"
;;
esac
exit $?
- Redémarrez Batocera puis allez dans le menu principal, système et services. Vous y verrez le nouveau service "Clavier FR", que vous pouvez activer et qui lancera la disposition AZERTY. Si vous arrêtez le service, le script est appelé et rebascule en clavier US (QWERTY).
- Enfin, en cas de souci, le fichier log /userdata/system/clavier_fr.log permet de voir ce qu'il se passe (ou <PARTAGE>\share\system\clavier_fr.log si vous le faites depuis un partage réseau).
Ecouter ses propres musiques
Placer dans le répertoire share/music des fichiers MP3 afin qu'ils soient lus en continu sur EmulationStation. Les musiques de Remix Kwed s'y prêtent particulièrement, vu qu'il s'agit de remake de musiques de jeux.
Retroarch
Voici quelques réglages intéressants pour Retroarch. Sur Batocera, ils peuvent s'appliquer dans le fichier share/system/batocera.conf afin de les centraliser (cela permet à un seul endroit d'avoir les paramètres sur tous les systèmes ou appliqué à un système en particulier).
Activer le 1er plan des jeux DOS/Windows
Si les jeux sont lancés en arrière plan, les touches de raccourci fonctionnent immédiatement, donc autant le faire autant que possible. Par contre, pour les jeux DOS ou Windows, le clavier est souvent nécessaire, d'où une mise au premier plan par défaut.
global.retroarch.input_auto_game_focus = "0"
dos.retroarch.input_auto_game_focus = "1"
Accélérer l'exécution des jeux DOS
Par défaut, les jeux DOS peuvent être trop ralentis au chargement et à l'exécution. Pour les rendre plus rapide, il faut modifier le fichier share/system/configs/retroarch/config/DOSBox-puredos.opt comme ceci :
dosbox_pure_cycles = "max"
dosbox_pure_memory_size = "512"
Conserver 15 sauvegardes maximum et tournantes
Les sauvegardes consommant de l'espace disque, il n'est pas utile d'en conserver 1000. En fixant un maximum plus faible (ici 15) et en indiquant qu'elles sont auto-incrémentées (valeur 2 de savestates), cela permet de limiter l'espace utilisé.
global.savestates=2
global.retroarch.savestate_max_keep = "15"
Utiliser une seconde manette pour le joueur 1
Redirigez le port 3 vers le joueur 1 :
global.retroarch.input_remap_port_p3 = "0"