# 🎼 Retro Game Sets Xtra (RGSX) ## SUPPORT / HELP : https://discord.gg/Vph9jwg3VV RGSX est une application dĂ©veloppĂ©e en Python basĂ©e sur Pygame pour la partie graphique pour la communautĂ© par RetroGameSets. Elle est entiĂšrement gratuite. L'application prend en charge plusieurs sources comme myrient, 1fichier (avec support de dĂ©bridage via AllDebrid en option). Ces sources pourront ĂȘtre mises Ă  jour frĂ©quemment. ## INSTALLATION : https://github.com/RetroGameSets/RGSX/blob/main/README_FR.md#-installation ## ✹ FonctionnalitĂ©s - **TĂ©lĂ©chargement de jeux** : Prise en charge des fichiers ZIP et gestion des extensions non supportĂ©es Ă  partir du fichier `es_systems.cfg` d'EmulationStation (et des `es_systems_*.cfg` personnalisĂ©s sur Batocera). RGSX lit les extensions autorisĂ©es par systĂšme depuis ces configurations et extrait automatiquement les archives si le systĂšme ne les supporte pas. - Les tĂ©lĂ©chargements ne nĂ©cessitent aucune authentification ni compte pour la plupart. - Les systĂšmes notĂ©s `(1fichier)` dans le nom ne seront accessibles que si vous renseignez votre clĂ© API (1Fichier,AllDebrid, Real-Debrid) --- > ## IMPORTANT (1Fichier / AllDebrid / Real-Debdrid) > Pour tĂ©lĂ©charger depuis des liens 1Fichier, vous pouvez utiliser soit votre clĂ© API 1Fichier, soit votre clĂ© API AllDebrid (fallback automatique si 1Fichier est absent). > > OĂč coller votre clĂ© API (le fichier doit contenir uniquement la clĂ©) : > - `/saves/ports/rgsx/1FichierAPI.txt` (clĂ© API 1Fichier) > - `/saves/ports/rgsx/AllDebridAPI.txt` (clĂ© API AllDebrid) > - `/saves/ports/rgsx/RealDebridAPI.txt` (clĂ© API Real-Debrid) > > Ne crĂ©ez PAS ces fichiers manuellement. Lancez une premiĂšre fois l'application RGSX : elle crĂ©era automatiquement les fichiers vides s’ils sont absents. Ensuite, ouvrez le fichier correspondant et collez votre clĂ©. --- **🧰 Utilisation en ligne de commande (CLI)** RGSX propose aussi une interface en ligne de commande (sans interface graphique) pour lister les plateformes/jeux et tĂ©lĂ©charger des ROMs : - Guide FR: voir `https://github.com/RetroGameSets/RGSX/blob/main/README_CLI.md` - **Historique des tĂ©lĂ©chargements** : Consultez la liste de tous les tĂ©lĂ©chargements actuels et anciens. - **TĂ©lĂ©chargements multi-sĂ©lection** : Marquez plusieurs jeux dans la liste avec la touche associĂ©e Ă  Vider Historique (par dĂ©faut X) pour prĂ©parer un lot. Appuyez ensuite sur Confirmer pour lancer les tĂ©lĂ©chargements en sĂ©quence. - **Personnalisation des contrĂŽles** : Remappez les touches du clavier ou de la manette Ă  votre convenance, par defaut certaines manettes sont automatiquement configurĂ©es - **Grille des plateformes** : PossibilitĂ© de modifier la disposition de la grille des plateformes (3x3, 3x4, 4x3, 4x4) - **Afficher/Masquer plateformes non supportĂ©es** : masquage automatique des systĂšmes dont le dossier ROM est absent selon `es_systems.cfg`, avec un interrupteur dans le menu Affichage. - **Changement de police et de taille** : Si vous trouvez les Ă©critures trop petites/trop grosses, pas assez lisibles, vous pouvez le changer dans le menu. - **Mode recherche / Filtre** : Filtrez les jeux par nom pour une navigation rapide avec clavier virtuel sur manette. - **Support multilingue** : Interface disponible en plusieurs langues. Vous pourrez choisir la langue dans le menu. - **Interface adaptative** : L'interface s'adapte Ă  toutes rĂ©solutions de 800x600 Ă  4K (non testĂ© au-delĂ  de 1920x1080). - **Mise Ă  jour automatique** : l'application se relance automatiquement aprĂšs une mise Ă  jour. - **SystĂšmes et Extensions des fichiers** : Ă  la premiĂšre utilisation, RGSX lit `es_systems.cfg` (RetroBat/Batocera) et gĂ©nĂšre `/saves/ports/rgsx/rom_extensions.json` avec les extensions autorisĂ©es par systĂšme. Ainsi que la liste des plateformes prises en charge par le systĂšme. --- ## đŸ–„ïž PrĂ©requis ### SystĂšme d'exploitation - Batocera / Knulli ou Retrobat ### MatĂ©riel - PC, Raspberry, console portable... - Manette (optionnelle, mais recommandĂ©e pour une expĂ©rience optimale) ou Clavier. - Connexion internet active ### Espace disque - 100 Mo pour l'application. --- ## 🚀 Installation ### MĂ©thode Automatique : BATOCERA / KNULLI - Sur un PC lancer un terminal XTERM depuis le menu F1>Applications - Depuis un autre Ă©quipement sur le rĂ©seau avec application Putty ou autre logiciel prenant en charge le SSH (connectez vous Ă  l'IP user=root pass=linux) **Entrez la commande :** **`curl -L bit.ly/rgsx-install | sh`** Patientez et regardez le retour Ă  l'Ă©cran ou sur la commande. Vous trouverez RGSX dans le systĂšme "PORTS" ou "Jeux Amateurs et portages" (et physiquement dans `/roms/ports/RGSX` et `/roms/windows/rgsx` pour Retrobat. Mettez Ă  jour la liste des jeux via : `Menu > ParamĂštres de jeux > Mettre Ă  jour la liste des jeux` si l'application n'apparaĂźt pas ! --- ### MĂ©thode manuelle (Retrobat / Batocera) - TĂ©lĂ©chargez le contenu du dĂ©pĂŽt en zip : https://github.com/RetroGameSets/RGSX/archive/refs/heads/main.zip - Extraire le fichier zip dans le dossier ROMS de votre installation (pour Batocera, seulement le dossier PORTS, pour Retrobat : PORTS et WINDOWS) - Vous aurez donc les dossiers `/roms/ports/RGSX` et `/roms/windows/rgsx` - Mettez Ă  jour la liste des jeux via : `Menu > ParamĂštres de jeux > Mettre Ă  jour la liste des jeux` si l'application n'apparaĂźt pas ! --- ## 🏁 Premier dĂ©marrage - Vous trouverez RGSX dans le systĂšme "WINDOWS" sur Retrobat et dans "PORTS" ou "Jeux Amateurs et portages" - Au premier lancement, l'application importera automatiquement la configuration des contrĂŽles depuis des fichiers prĂ©-configurĂ©s dans /roms/ports/RGSX/assets/controls si votre manette est reconnue - L'application tĂ©lĂ©chargera toutes les donnĂ©es nĂ©cessaires automatiquement ensuite (images des systĂšmes, liste des jeux, etc.) INFO : pour retrobat au premier lancement, l'application tĂ©lĂ©chargera Python dans le dossier /system/tools/python qui est nĂ©cessaire pour faire fonctionner l'application. Le fichier fait environ 50 Mo et va assez vite Ă  tĂ©lĂ©charger mais il n'y a aucun retour visuel Ă  l'Ă©cran, qui va rester figĂ© sur le chargement de RGSX pendant quelques secondes. Vous trouvez le log d'installation dans `/roms/ports/RGSX-INSTALL.log` Ă  fournir en cas de problĂšme. --- ## đŸ•č Utilisation ### Navigation dans les menus - Utilisez les touches directionnelles (D-Pad, flĂšches du clavier) pour naviguer entre les plateformes, jeux et options. - Appuyez sur la touche configurĂ©e comme start (par dĂ©faut, **P** ou bouton Start sur la manette) pour ouvrir le menu pause. Depuis ce menu, accĂ©dez Ă  toute la configuration de l'application. - Vous pouvez aussi, depuis le menu, rĂ©gĂ©nĂ©rer le cache de la liste des systĂšmes/jeux/images pour ĂȘtre sĂ»r d'avoir les derniĂšres mises Ă  jour. --- #### Menu Affichage - Disposition: basculez la grille des plateformes entre 3x3, 3x4, 4x3, 4x4. - Taille de police: ajustez l’échelle du texte (accessibilitĂ©). - Afficher plateformes non supportĂ©es: afficher/masquer les systĂšmes dont le dossier ROM est absent. - Filtrer les systĂšmes: afficher/masquer rapidement des plateformes par nom (persistant). --- ### TĂ©lĂ©chargement - SĂ©lectionnez une plateforme, puis un jeu. - Appuyez sur la touche configurĂ©e confirm (par dĂ©faut, **EntrĂ©e** ou bouton **A**) pour lancer le tĂ©lĂ©chargement. - Option : appuyez sur la touche Vider Historique (par dĂ©faut **X**) sur plusieurs jeux pour activer/dĂ©sactiver leur sĂ©lection (marqueur [X]). Puis validez pour lancer un lot de tĂ©lĂ©chargements. - Suivez la progression dans le menu `HISTORIQUE`. --- ### Personnalisation des contrĂŽles - Dans le menu pause, sĂ©lectionnez **Reconfigurer controles**. - Suivez les instructions Ă  l'Ă©cran pour mapper chaque action en maintenant la touche ou le bouton pendant 3 secondes. - Les noms des boutons s'affichent automatiquement selon votre manette (A, B, X, Y, LB, RB, LT, RT, etc.). - La configuration est compatible avec toutes les manettes supportĂ©es par EmulationStation. - En cas de problĂšme de contrĂŽles ou configuration corrompue, supprimez le fichier : `/saves/ports/rgsx/controls.json` s'il existe puis redĂ©marrez l'application (il sera recréé automatiquement). --- ### Historique - AccĂ©dez Ă  l'historique des tĂ©lĂ©chargements via le menu pause ou en appuyant sur la touche historique (par dĂ©faut, **H**). - SĂ©lectionnez un jeu pour le retĂ©lĂ©charger si nĂ©cessaire en cas d'erreur ou annulation. - Videz tout l'historique via le bouton **EFFACER** dans le menu historique. Les jeux ne sont pas effacĂ©s seulement la liste. - Annulez un tĂ©lĂ©chargement avec le bouton **RETOUR** --- ### Logs Les logs sont enregistrĂ©s dans `/roms/ports/RGSX/logs/RGSX.log` sur batocera et sur Retrobat pour diagnostiquer les problĂšmes et seront Ă  partager pour tout support. --- ## 🔄 Journal des modifications Toutes les infos sur discord ou sur les commit github. --- ## 🌐 Sources de jeux personnalisĂ©es Vous pouvez changer la source dans le menu pause (Source des jeux : RGSX / PersonnalisĂ©e). Le mode personnalisĂ© attend une URL ZIP (HTTP/HTTPS) pointant vers une archive des sources avec la mĂȘme structure que celle par dĂ©faut. À configurer dans : `{chemin rgsx_settings}` → clĂ© : `sources.custom_url` Comportement : - Si mode personnalisĂ© sĂ©lectionnĂ© et URL vide/invalide → liste vide + popup (aucun fallback) - Corrigez l’URL puis utilisez "Mettre Ă  jour la liste des jeux" et redĂ©marrez si nĂ©cessaire Exemple dans rgsx_settings.json : ```json "sources": { "mode": "custom", "custom_url": "https://exemple.com/mes-sources.zip" } ``` Revenez au mode RGSX Ă  tout moment via le menu pause. --- ## 📁 Structure du projet ``` /roms/windows/RGSX │ ├── RGSX Retrobat.bat # Raccourci pour lancer l'application RGSX pour retrobat uniquement, non nĂ©cessaire pour batocera/knulli /roms/ports/ ├── RGSX-INSTALL.log # LOG d'installation uniquement └── RGSX/ │ └──── __main__.py # Point d'entrĂ©e principal de l'application. │ ├──── controls.py # Gestion des Ă©vĂ©nements de navigation dans les menus. │ ├──── controls_mapper.py # Configuration des contrĂŽles │ ├──── display.py # Rendu des interfaces graphiques avec Pygame. │ ├──── config.py # Configuration globale (chemins, paramĂštres, etc.). │ ├──── rgsx_settings.py # Gestion unifiĂ©e des paramĂštres de l'application. │ ├──── network.py # Gestion des tĂ©lĂ©chargements de jeux. │ ├──── history.py # Gestion de l'historique des tĂ©lĂ©chargements. │ ├──── language.py # Gestion du support multilingue. │ ├──── accessibility.py # Gestion des paramĂštres d'accessibilitĂ©. │ ├──── utils.py # Fonctions utilitaires (wrap du texte, troncage etc.). │ ├──── update_gamelist.py # Mise Ă  jour de la liste des jeux (Batocera/Knulli). │ └──── update_gamelist_windows.py # MAJ gamelist retrobat au lancement. └────logs/ │ └──── RGSX.log # Fichier de logs. └── assets/ # Ressources de l'application (polices, exĂ©cutables, musique). └──── controls/ # Fichiers de configuration des contrĂŽles prĂ©-dĂ©finis └──── languages/ # Fichiers de traduction /saves/ports/RGSX/ │ ├── systems_list.json # Liste des systĂšmes / dossiers / images. ├── games/ # Liens des jeux / plateformes ├── images/ # Images des plateformes. ├── rgsx_settings.json # Fichier de configuration des paramĂštres. ├── controls.json # Fichier de mappage des contrĂŽles manuel ├── history.json # Base de donnĂ©es de l'historique de tĂ©lĂ©chargements ├── rom_extensions.json # GĂ©nĂ©rĂ© depuis es_systems.cfg : extensions autorisĂ©es ├── 1FichierAPI.txt # ClĂ© API 1fichier └── AllDebridAPI.txt # ClĂ© API AllDebrid ``` --- ## đŸ€ Contribution ### Signaler un bug 1. Consultez les logs dans `/roms/ports/RGSX/logs/RGSX.log`. 2. Envoyez un message sur le discord avec le log complet et une description du problĂšme. - Lien Discord : https://discord.gg/Vph9jwg3VV ### Proposer une fonctionnalitĂ© - Discutez de votre idĂ©e sur le discord pour obtenir des retours. - Soumettez une issue avec une description claire de la fonctionnalitĂ© proposĂ©e. - Expliquez comment elle s'intĂšgre dans l'application. ### Contribuer au code 1. Forkez le dĂ©pĂŽt et crĂ©ez une branche pour votre fonctionnalitĂ© ou correction : ```bash git checkout -b feature/nom-de-votre-fonctionnalitĂ© ``` 2. Testez vos modifications sur Batocera. 3. Soumettez une pull request avec une description dĂ©taillĂ©e. --- ## ⚠ ProblĂšmes connus - (Aucun listĂ© actuellement) --- ## 📝 Licence Ce projet est libre. Vous ĂȘtes libre de l'utiliser, le modifier et le distribuer selon les termes de cette licence. DĂ©veloppĂ© avec ❀ pour les amateurs de jeux rĂ©tro.