Outils pour utilisateurs

Outils du site


raspi3:recalbox

(Voir la page principale sur le Raspberry Pi 3 B)

Recalbox

Logo de RecalBox

RecalBox est une distribution orientée émulation de consoles de jeux et inclue également le médiacenter Kodi. Une fois installé, RecalBox peut se piloter avec juste des manettes de jeux.

:!: Note: Si j'ai bien réussi à installer RaspBian et LibrELEC à partir de NOOBS, je n'ai pas réussi à installer RecalBox. (Après téléchargement et installation, j'ai juste obtenu un écran noir après celui de NOOBS).

Vous pouvez par contre utiliser PINN (un dérivé de NOOBS) qui supporte RecalBox.

Alternativement, vous pouvez aussi télécharger recalbox.img.xz du site officiel de RecalBox et utiliser Etcher pour le transférer sur MicroSD.

Roms

RecalBox est fourni avec une poignée de jeux “homebrew” parfaitement légaux. Si vous voulez toute la panoplie de jeux, il vous faut:

  • les BIOS des consoles (à placer dans /share/bios/)
  • les jeux eux-mêmes (à placer dans /share/roms/…, par exemple /share/roms/snes pour les roms SuperNintendo)

Voici diverses sources de ROMs:

Si vous n'avez pas les captures d'écran des ROMs, ne vous inquiétez pas: RecalBox a une option pour aller chercher automatiquement les captures d'écran et pochettes des jeux (voir l'option “Scraping” dans les menus).

J'ai environ: 700 jeux MegaDrive, 700 jeux SuperNintendo, 700 jeux bornes d'arcade MAME et 300 jeux Nintendo 64. Le tout fait environ 8 Go, ça tient sans problème sur la carte MicroSD de 16 Go fournie avec le RasPi3.

Notez qu'avec RecalBox il est possible de mettre les jeux sur une clé USB, ce qui permet d'en stocker plus, et surtout de ne pas avoir à recopier les jeux à nouveau si vous ré-installez un OS sur la MicroSD. Pour le moment, je les laisse sur la MicroSD (Avec environ 2400 jeux, je pense qu'il y a déjà de quoi s'occuper).

Performances: Sur un Raspberry Pi 3B, l'émulation des “petites” consoles passera sans problème (SuperNintendo, MegaDrive, MAME, etc.) mais n'espérez pas émuler une GameCube ou une Wii. Les jeux PSP (Playstation Portable) ne passent pas bien (ralentissements, son saccadé). Pas de soucis avec la majorité des jeux Nintendo 64 et PS1/PSX (Playstation 1). Cela laisse quand même de quoi émuler des milliers de jeux sans problème. Si vous voulez aller jusqu'à l'émulation de la Wii, il faudra sans doute passer à des micro-ordinateurs plus puissants (comme l'ODroid C2). Vous pouvez aussi émuler la Wii sur votre PC avec Dolphin.

Accès à la Recalbox

Une fois en réseau, RecalBox est accessible à l'adresse recalbox.local ou juste recalbox (c'est du ZeroConf/Avahi/Bonjour/mDNS). Vous pouvez y accéder:

  • par partage Windows (connectez-vous à recalbox.local ou recalbox, sans login/mot de passe)
  • par partage ssh (port 22, user:root, mdp:recalboxroot)
  • avec votre navigateur: http://recalbox.local
  • Si recalbox.local ou recalbox ne fonctionnent pas, accéder y directement par adresse IP. Vous pouvez trouver l'adresse IP dans les menus de RecalBox.

Cela vous permet de transférer de nouvelles ROMs dans le répertoire /share sans avoir à enlever la carte MicroSD du Raspberry. (Après avoir ajouté de nouvelles ROMs, pensez à redémarrer votre Raspberry.)

Configuration

  • Manettes:
    • La configuration des manettes a été ma plus grosse galère.
    • Au début, elles ne sont pas nativement reconnues. La configuration nécessite de passer au début par le clavier pour réussir à activer le menu. Une fois qu'une manette est configurée, on peut accéder au reste de la configuration avec les manettes. Touches du clavier à utiliser:
      • Flèches haut/bas/gauche/droite : Sélectionner
      • Q : Valider.
      • S : Annuler/menu précédent
      • ENTRÉE : Menu RecalBox (configuration, etc.)
      • ESPACE : Menu éteindre/redémarrer
    • Les manettes que j'ai sont des copies asiatiques de manettes PS3.
      • Pour voir les caractéristiques, sur un ordinateur, pas sur le RaspberryPi tapez dmesg après avoir branché une manette. Vous verrez par exemple:
        [ 5407.765078] usb 1-4: new low-speed USB device number 9 using xhci_hcd
        [ 5407.916796] usb 1-4: New USB device found, idVendor=0810, idProduct=0001
        [ 5407.916803] usb 1-4: New USB device strings: Mfr=0, Product=2, SerialNumber=0
        [ 5407.916808] usb 1-4: Product:  USB Gamepad          
        [ 5407.920936] input:  USB Gamepad           as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:0810:0001.0006/input/input36
        [ 5407.981774] pantherlord 0003:0810:0001.0006: input,hidraw2: USB HID v1.10 Joystick [ USB Gamepad          ] on usb-0000:00:14.0-4/input0
        [ 5407.981803] pantherlord 0003:0810:0001.0006: Force feedback for PantherLord/GreenAsia devices by Anssi Hannula <anssi.hannula@gmail.com>
      • lsusb (sur un ordinateur) me donne:
        ID 0810:0001 Personal Communication Systems, Inc. Dual PSX Adaptor
      • Pour tester que votre manette fonctionne bien, sudo apt install jstest-gtk et lancez ce programme.
  • Dans recalbox.conf, j'ai changé le paramètre controllers.ps3.driver=bluez par controllers.ps3.driver=gasia (puis redémarré le Raspberry)
  • :!: Avant de configurer les boutons de votre manette, assurez-vous que la diode rouge soit bien allumée (avec le bouton ANALOG).
  • Dans RecalBox > Option des manettes > Configurer une manette > Faire un appuis long sur un des boutons pour commencer à la configurer. Je l'ai configurée comme suit:

  • Pour les touches que vous ne voulez pas configurer (comme L3/R3 par exemple), pressez juste BAS pour passer.
  • Vous devrez choisir un bouton de votre manette comme “HOTKEY”. Je vous conseille d'utiliser le bouton SELECT. En appuyant sur les boutons de votre manette pendant que la touche SELECT est enfoncée, vous accédez à plein de fonctions (sauvegarde, rembobinage, configuration, etc.). Par exemple:
    • SELECT+START : Sortir d'un jeu.
    • SELECT+GAUCHE : “Rembobiner” le jeu.
    • SELECT+DROITE : Passer en mode “avance rapide” (pratique pour passer les intros trop longues)
    • etc.
    • Si vous configurez les boutons comme j'ai indiqués, ils correspondront aux icônes affichées dans RecalBox. Donc en utilisation courante:
      • On utilisera donc le bouton 3/B pour valider et le bouton 2/A pour annuler/revenir en arrière/sortir d'un menu.
      • START affichera le menu principal de RecalBox (configuration, etc.)
      • SELECT affichera le menu d'extinction ou redémarrage.
      • 1/X affichera le menu pour lancer Kodi.
  • Pour la suite, dans les jeux, les touches dépendent des émulateurs.
    • Par exemple dans MAME, la touche SELECT permet d'insérer une pièce.
    • Dans beaucoup d'émulateurs, SELECT+3/B affiche le menu de l'émulateur (pour régler des options).
  • Dans Kodi:
    • START permet de mettre la vidéo en pause.
    • DROITE/GAUCHE permettent d'avancer/reculer dans la vidéo.
    • Joystick 1 gauche/droite permet de régler le volume.
    • FIXME à compléter.
  • Doom:
    • Changement de la résolution:
      • Lancez DOOM. Ensuite, pressez HOTKEY+B (donc SELECT+B). Le “Quick menu” s'affiche: Sélectionnez “Options”:
      • Dans les options, changez la résolution: 1280×800 passe sans problème:
  • Shaders:
    • Un shaders est un post-traitement de l'image, par exemple pour lisser les pixels, ou encore simuler les vieux écrans.
    • Il est possible d'avoir 3 modes de lissage des pixels dans RecalBox. Dans le menu principal > Option des jeux > Shader set. Vous avez alors 3 possibilités:
      • Aucun : Les jeux garderont les pixels tel quel (ou à peine lissés si vous avez activé l'option Lisser les jeux).
      • Scanlines: Simulation des lignes de balayage des écrans CRT.
      • Retro : Utilisation d'un shader simulant au mieux l'écran de la console d'origine (choisi par la communauté).
    • Notez que vous pouvez aussi forcer l'utilisation d'un shader particulier dans un jeu ou pour un émulateur précis.
      • Dans un jeu: Appelez le menu de RetroArch (SELECT+3/B) : Vous arrivez dans le “Quick Menu”. Allez sur Load shader preset et choisissez un des shaders disponibles. Notez que:
        • Certains shaders rendent très mal sur certains types de jeu.
        • Certains shaders ne fonctionneront pas.
        • Certains shaders seront trop lents pour le GPU du Raspberry.
        • J'aime beaucoup le shader 5xbr (/recalbox/share_init/shaders/5xbr.glslp) pour tous les jeux pixelisés (SNES, MAME, Megadrive…). Il donne en général d'assez bons résultats (en lissant les pixels sans trop flouter) et ne ralentit pas les jeux.
      • Pour forcer un shader pour un émulateur particulier: Modifiez le fichier recalbox.conf. Par exemple, j'aime bien le shader “5xbr” pour certaines consoles. J'ai donc ajouté les lignes:
        mame.shaders=/recalbox/share_init/shaders/5xbr.glslp
        snes.shaders=/recalbox/share_init/shaders/5xbr.glslp
        megadrive.shaders=/recalbox/share_init/shaders/5xbr.glslp
  • Pas de son en HDMI: Si vous n'avez pas de son en HDMI, vous pouvez forcer la sortie audio en HDMI (dans le menu “Son”) ou modifier le fichier de config de RecalBox /recalbox/share/system/recalbox.conf (ou en passant par l'interface web: http://recalbox.local/recalbox-conf):
    audio.device=hdmi

Thèmes

Il existe d'autres thèmes pour RecalBox.

  • Ils sont disponibles dans cette page.
  • Ils sont à installer dans /share/system/.emulationstation/themes
  • Redémarrez ensuite RecalBox.
  • Le thème se choisit ensuite dans le menu “Interface utilisateur”. Certains thèmes ont des options de configuration (couleurs, icônes, présentation…).

Autres thèmes sur le forum de RecalBox.

Sauvegarde

Afin de ne pas perdre le contenu de la MicroSD soigneusement préparée par mes soins, j'en fait des sauvegardes (une MicroSD n'est pas éternelle). Il y a deux manière de procéder: Image des partitions ou backup des fichiers individuels.

Sauvegarde des partitions

RecalBox est constitué de 3 partitions:

  • BOOT (fat32, 64 Mo) : partition boot Raspberry.
  • RECALBOX (ext4, 2 Go) : partition système RecalBox (montée en / en lecture seule)
  • SHARE (ext4, le reste) : partition contenant les ROMs, paramètres, sauvegardes… (monté en /recalbox/share)

Je met directement la MicroSD dans mon ordinateur (avec l'adaptateur SD fourni) afin de faire une images de ces 3 partitions.

En faisant des images des partitions, cela me permet de restaurer complètement le système en cas de gros problème sur la MicroSD, ou même de restaurer sur une autre MicroSD. Plutôt que d'utiliser dd, j'utilise partclone qui est un peu plus intelligent et ne sauvegardera pas les secteurs vides. Cela permet de gagner beaucoup de temps sur la sauvegarde et produire des fichiers plus petits.

Je sauvegarde en prime le MBR avec dd. Voici le script (à exécuter en sudo):

clone-microsd.sh
#!/bin/bash
umount /dev/sdc1
umount /dev/sdc2
umount /dev/sdc3
 
# Sauvegarde du MBR:
dd if=/dev/sdc of=mbr.bin bs=512 count=1
 
# Sauvegarde des 3 partitions:
partclone.vfat -c -d -s /dev/sdc1 | pigz > sdc1.BOOT.partclone.fat32.gz
partclone.ext4 -c -d -s /dev/sdc2 | pigz > sdc2.RECALBOX.partclone.ext4.gz
partclone.ext4 -c -d -s /dev/sdc3 | pigz | split -d -b 4000M - sdc3.SHARE.partclone.ext4.gz.
md5sum * > md5sums
chmod 777 *

Note: La sauvegarde de la troisième partition (SHARE) faisant plus de 4 Go, on la découpe en fichiers de 4 Go avec la commande split. (Cela produit des fichiers sdc3.SHARE.partclone.ext4.gz.00, sdc3.SHARE.partclone.ext4.gz.01, etc.). Cela permet de la copier sur un disque dur externe en FAT32.

Restauration:

# Restaurer le MBR:
sudo dd if=mbr.bin of=/dev/sdc
 
# Restaurer les partitions:
zcat sdc1.BOOT.partclone.fat32.gz | sudo partclone.restore -d -o /dev/sdc1
zcat sdc2.RECALBOX.partclone.ext4.gz | sudo partclone.restore -d -o /dev/sdc2
cat sdc3.SHARE.partclone.ext4.gz.* | pigz -d | sudo partclone.restore -d -o /dev/sdc3

Backup des fichiers

Je fais un peu plus souvent un backup des fichiers par ssh avec rsync. Cela va sauvegarder les roms, les paramètres de chaque jeu, les parties sauvegardées, les captures d'écran, votre paramétrage RecalBox, etc.

Le premier backup sera long (il va tout sauvegarder), mais les suivants seront très rapides. Du coup, pas de problème à lancer très souvent ce script.

backup-recalbox.sh
#!/bin/bash
mkdir -p "ssh-mirror/"
sshpass -p 'recalboxroot' rsync -av --no-p -zz --delete --progress root@recalbox.local:/recalbox/ -e "ssh -p 22" "ssh-mirror/"

À voir

  • Les écran de démarrage sont dans /RECALBOX/recalbox/system/resources/splash
  • Kodi semble écrire beaucoup de fichier dans /share/system/.kodi/temp/. Voir à mettre ce répertoire en tmpfs.
raspi3/recalbox.txt · Dernière modification: 2019/11/07 13:46 par sebsauvage