Moonlight est un client de streaming de jeux : votre PC calcule l'image, votre Recalbox l'affiche et lui renvoie les commandes de la manette. Les jeux diffusés apparaissent comme n'importe quel autre jeu dans EmulationStation, avec leurs jaquettes.
Moonlight est disponible sur Raspberry Pi 3, Pi Zero 2, Pi 4/400, Pi 5/500 et PC (x86_64). Il n'est pas proposé sur les consoles portables Anbernic (RG351x, RG353x).
Côté PC, il faut un serveur qui capture et encode l'image. Historiquement, c'était NVIDIA GameStream — mais NVIDIA l'a abandonné en 2023. Le successeur est Sunshine, libre et gratuit, qui fonctionne avec toutes les cartes graphiques (AMD, Intel, NVIDIA) sous Windows, Linux et macOS.
Avec Sunshine, vous pouvez monter jusqu'à la 4K/120 fps, avec HDR et VRR selon le matériel, et diffuser aussi bien un jeu que le bureau entier ou un lanceur (Steam en Big Picture, Playnite…).
Tout se fait en trois commandes, à taper en SSH sur la Recalbox. Indiquez toujours le chemin complet.
/recalbox/scripts/moonlight/Moonlight.sh find
La commande liste les serveurs détectés sur le réseau local, avec leur nom et leur adresse IP.
/recalbox/scripts/moonlight/Moonlight.sh pair <hôte>
Remplacez <hôte> par le nom ou l'adresse IP du PC. Un code PIN à quatre chiffres s'affiche à la fin de la commande : saisissez-le dans l'interface web de Sunshine — ouvrez https://<adresse-du-PC>:47990 dans un navigateur (acceptez l'avertissement de certificat), allez dans l'onglet PIN, tapez le code, donnez un nom au périphérique et validez avec Send.
Si l'association échoue avec le nom de la machine, réessayez avec son adresse IP fixe : c'est le cas le plus fréquent.
/recalbox/scripts/moonlight/Moonlight.sh init <hôte>
Recalbox interroge le PC, crée une entrée par jeu ou application déclarée dans Sunshine, et récupère les jaquettes. Le système Moonlight apparaît alors dans la liste des systèmes ; lancer un jeu démarre le streaming.
Pour tout remettre à zéro pour un hôte (association, configuration et entrées de jeux) :
/recalbox/scripts/moonlight/Moonlight.sh clean <hôte>
Tout ce qui apparaît dans Recalbox vient de l'onglet Applications de Sunshine. Ajoutez-y une application par jeu ou par lanceur que vous voulez voir dans la liste, puis relancez la commande init.
Deux exemples de commandes utiles :
"D:\Games\Steam\steam.exe" -bigpicture
"C:\Users\<utilisateur>\AppData\Local\Playnite\Playnite.FullscreenApp.exe" --hidesplashscreen --startfullscreen
Le décodage vidéo est accéléré par le matériel, avec un réglage adapté à chaque machine :
| Machine | Décodage | Codec |
|---|---|---|
| Raspberry Pi 5 / 500 | V4L2 DRM | HEVC |
| Raspberry Pi 4 / 400 | V4L2 DRM | HEVC |
| Raspberry Pi 3, Pi Zero 2 | MMAL | H.264 |
| PC (x86_64) | automatique | HEVC |
Jusqu'à quatre joueurs sont pris en charge, ainsi que le clavier et la souris. Recalbox transmet automatiquement la configuration de vos manettes à Moonlight.
Pour forcer la fermeture d'une session de streaming, utilisez la combinaison clavier CTRL + ALT + MAJ + Q.
/recalbox/share/system/configs/moonlight/
├── moonlight-<hôte>.conf (adresse et réglages de l'hôte)
├── keydir-<hôte>/ (certificats d'association)
└── gamelist.txt (correspondance entrée ↔ application Sunshine)
/recalbox/share/roms/moonlight/<hôte>/
└── <jeu>.moonlight (une entrée par jeu)
Il est possible de diffuser depuis un PC distant, mais cela réclame une redirection de ports sur votre box et une bonne connexion montante côté PC. Reportez-vous au guide officiel Moonlight, puis renseignez l'adresse publique dans le fichier moonlight-<hôte>.conf.
Réservé aux utilisateurs avertis : sur le réseau local, préférez toujours une liaison filaire, bien plus simple et bien plus stable.