Skip to content

Installation de RetroPie sur PC ​

Ce tutoriel décrit l'installation et la configuration de la distribution Linux RetroPie sur un PC dédié à l'émulation de jeux vidéo. Ce PC peut-être intégré sous forme de borne d'arcade ou de console de jeu.

L'objectif est donc d'obtenir un système dédié, c'est à dire que dès l'allumage une interface proposera l'accès aux jeux.

Nous considérons qu'un système Debian basique a été installé sur le PC. Recommandations pour la suite de ce tutoriel:

  • pas d'interface graphique ni de bureau installé,
  • un accès SSH,
  • on considère ci-après que le nom de l'utilisateur par défaut créé lors de l'installation est pi, sans permission particulière,
  • une maîtrise minimale du shell Linux est fortement conseillée,
  • une installation 64-bits est recommandée.

Une borne d'arcade basée sur un PC, en cours de configuration

Configuration globale du système ​

Depuis un shell root, directement sur la machine, on autorise pi à avoir les droits root:

    apt install sudo
    usermod -aG sudo pi

Pour que l'utilisateur pi n'aie pas besoin de mot de passe pour avoir les droits root, éditer la configuration de sudo:

    sudo visudo

et ajouter:

    # No password for user pi
    pi ALL=(ALL) NOPASSWD:ALL

(ceci est déconseillé sur un PC classique).

Notez l'adresse IP de la machine sur le réseau local:

    ip a

la suite du tutoriel peut-être faite depuis un shell SSH à partir d'une autre machine:

    ssh pi@<adresse_ip>

Installation des paquets requis pour la suite, pour l'affichage et l'audio:

    sudo apt install xorg openbox pulseaudio alsa-utils curl

Ajout de pi au groupe input:

    sudo usermod -aG input pi

Installation des pilotes graphiques ​

Pour améliorer le rendu 3D, il peut-être intéressant d'installer les pilotes officiels de votre carte graphique.

La procédure ci-dessous décrit l'installation pour une Geforce GTS 450. Si une autre carte graphique qu'une est utilisée, la procédure sera similaire, référez-vous à la documentation sur le wiki de Debian: https://wiki.debian.org/fr/GraphicsCard

Editer /etc/apt/sources.list et ajouter contrib et non-free, exemple:

    deb http://httpredir.debian.org/debian/ stretch main contrib non-free

Ensuite installer les composants nécessaires:

    sudo apt update
    sudo apt install linux-headers-$(uname -r|sed 's/[^-]*-[^-]*-//') nvidia-driver

Démarrage immédiat sans timeout Grub ​

Editer /etc/default/grub et changer GRUB_TIMEOUT à 0. Puis exécuter:

    sudo update-grub2

Installation de Retropie ​

Tout d'abord:

    sudo groupadd admin
    sudo usermod -aG admin pi

Ensuite, suivre le tutoriel officiel, pour faire une "Basic install": https://retropie.org.uk/docs/Debian/

Démarrage automatique d'EmulationStation ​

La procédure ci-dessous permet au PC de démarrer directement sur EmulationStation.

On va automatiquement connecter l'utilisateur pi, puis automatiquement lancer Xorg ensuite, démarrer le bureau OpenBox puis EmulationStation.

Autologin d'un utilisateur ​

Exécuter:

    sudo systemctl edit getty@tty1

Et entrer le contenu suivant:

    [Service]
    ExecStart=
    ExecStart=-/sbin/agetty --autologin pi --noclear %I $TERM

Démarrage automatique de Xorg au login ​

Ajouter dans le fichier ~/.profile:

    [ "$(tty)" = "/dev/tty1" ] && startx

Retirer le curseur de souris ​

Editer /etc/X11/xinit/xserverrc et ajouter l'option -nocursor comme suit:

    exec /usr/bin/X -nolisten tcp "$@" -nocursor

Démarrage automatique d'openbox ​

Créer le fichier ~/.xinitrc, le rendre exécutable, et y insérer:

    xrandr -s 1440x900
    amixer set Master unmute
    xset -dpms s off
    openbox-session

Changer la résolution d'écran dans la ligne xrandr ci-dessus pour la valeur optimale de l'écran utilisé.

La ligne amixer permet de s'assurer que la sortie audio n'est pas en mode muet.

La ligne xset désactive l'écran de veille et le DPMS (Display Power Management Signaling) pour s'assurer qu'aucun écran noir ne survienne pendant qu'un jeu est lancé.

Démarrage automatique d'EmulationStation ​

Exécuter:

    sudo RetroPie-Setup/retropie_setup.sh

et aller dans Configuration / Tools > autostart > activer Autostart Emulation Station after login

Quitter l'outil, et exécuter:

    sudo chown pi .config/autostart/retropie.desktop

Editer ~/.config/autostart/retropie.desktop et changer la valeur de Exec par:

    Exec=~/run_emulationstation.sh

Créer un fichier ~/run_emulationstation.sh, le rendre exécutable:

    touch ~/run_emulationstation.sh
    chmod +x ~/run_emulationstation.sh

et y insérer:

    #!/bin/bash
    xterm -fg white -bg black -e emulationstation --no-splash
    xterm -fg white -bg black

la dernière ligne lance xterm au cas où l'on quitte emulationstation.

Personnalisation d'OpenBox ​

Créer la configuration:

    mkdir ~/.config/openbox

la configuration est à faire dans ~/.config/openbox/rc.xml, qui doit contenir au minimum:

    <?xml version="1.0" encoding="UTF-8"?>
    <openbox_config xmlns="http://openbox.org/3.4/rc" xmlns:xi="http://www.w3.org/2001/XInclude">
    </openbox_config>

les nouvelles configurations sont à ajouter dans le bloc openbox_config.

Retirer la décoration des fenêtres ​

Dans le fichier ~/.config/openbox/rc.xml, dans la section openbox_config:

    <applications>
       <application class="*"> <decor>no</decor> </application>
    </applications>

Terminal en plein écran ​

Ajouter dans la section applications:

    <!-- Xterm fullscreen -->
    <application name="xterm" class="XTerm" type="normal">
       <decor>no</decor>
       <fullscreen>yes</fullscreen>
       <layer>below</layer>
    </application>

Musique de fond ​

L'objectif est d'avoir une musique de fond quand on est dans le menu d'EmulationStation, la musique doit s'arrêter lorsque l'on lance un jeu.

Télécharger le script music_player.py à cette adresse: https://mathieu-abati.com/resources/guides/versusbox/music_player.py et le placer dans ~/music_player.py. Le rendre exécutable:

    chmod +x ~/music_player.py

Editer le script et personnaliser la configuration dans l'en-tête du script.

Installer les dépendances du script:

    sudo apt install python-pygame

Pour le lancement automatique de la musique, créer un fichier ~/.config/autostart/music_player.desktop et y insérer:

    [Desktop Entry]
    Type=Application
    Exec=~/music_player.py
    X-GNOME-Autostart-enabled=true
    Name=music_player

Vous n'avez plus qu'à placer des musiques dans le répertoire configuré en en-tête du script.

Paramétrage du système de jeu ​

NeoGeo en mode AES ​

Le mode AES est le mode console de salon de la NeoGeo.

Editer /opt/retropie/configs/all/retroarch-core-options.cfg et modifier fba-neogeo-mode en AES.

Choix de l'ordre des manettes ​

Installer Retropie Joystick Selection en suivant les instrtuctions ici: https://github.com/meleu/RetroPie-joystick-selection/#installation

Redémarrer, Joystick Selection est accessible par le menu RetroPie dans EmulationStation.

Résolution des problèmes ​

Illegal instruction au lancement d'emulationstation ​

GDB a révélé que le problème se trouvait dans libSDL2. Une réinstallation a corrigé le problème:

    sudo apt remove --purge libsdl2-2.0-0 libsdl2-dev
    sudo apt install libsdl2-2.0-0 libsdl2-dev

La configuration des manettes n'est pas mémorisée après redémarrage / n'est pas effective dans les jeux ​

Quitter EmulationStation puis Exécuter:

    sudo RetroPie-Setup/retropie_setup.sh

Aller à Manage Packages >> Manage Core Packages >> EmulationStation >> Configuration / Options >> Clear / Reset EmulationStation Input Configuration et réinitialiser la configuration.

Quitter l'outil de configuration et redémarrer. Reconfigurer les manettes, ça devrait fonctionner correctement.