# 🎼 Retro Game Sets Xtra (RGSX) RGSX est une application developpĂ©e en Python basĂ©e sur Pygame pour la partie graphique pour la communautĂ©e par RetroGameSets. Elle est entiĂšrement gratuite. L'application prend en charge plusieures sources comme myrient, 1fichier. Ces sources pourront ĂȘtre mises Ă  jour frĂ©quemment. --- ## ✹ FonctionnalitĂ©s - **TĂ©lĂ©chargement de jeux** : Prise en charge des fichiers ZIP et gestion des extensions non supportĂ©es grĂące au fichier `info.txt` dans chaque dossier (batocera), qui extrait automatiquement si le systeme ne supporte pas les archives. - 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 (voir plus bas). - **Historique des tĂ©lĂ©chargements** : Consultez et retĂ©lĂ©chargez les anciens fichiers. - **Personnalisation des contrĂŽles** : Remappez les touches du clavier ou de la manette Ă  votre convenance avec dĂ©tection automatique des noms de boutons depuis EmulationStation(beta). - **Changement de taille de police** : Si vous trouvez les ecritures trop petites/trop grosses, vous pouvez le changer dans le menu. - **Mode recherche** : 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 - **Gestion des erreurs** avec messages informatifs et fichier de LOG - **Interface adaptatative** : L'interface s'adapte Ă  toutes rĂ©solutions de 800x600 Ă  4K (non testĂ© au-delĂ  de 1920x1080). - **Mise Ă  jour automatique** : l'application doit ĂȘtre relancĂ©e aprĂšs une mise Ă  jour. --- ## đŸ–„ïž 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 1 : Installation automatique en ligne de commande pour Batocera/Knulli - Sur batocera x86 PC acceder Ă  F1>Applications>xTERM ou - Depuis un autre pc sur le rĂ©seau avec application Putty, powershell SSH ou autre Entrez la commande : ## `curl -L bit.ly/rgsx-install | sh` Patientez et regardez le retour Ă  l'Ă©cran ou sur la commande (Ă  amĂ©liorer). Mettez Ă  jour la liste des jeux via : `Menu > ParamĂštres de jeux > Mettre Ă  jour la liste des jeux `. Vous trouverez RGSX dans le systĂšme "PORTS" ou "Jeux Amateurs et portages" et dans `/roms/ports/RGSX` --- ### MĂ©thode 2 : Copie manuelle (Methode obligatoire sur retrobat) - TĂ©lĂ©chargez le contenu du dĂ©pĂŽt en zip : https://github.com/RetroGameSets/RGSX/archive/refs/heads/main.zip - Extrayez le fichier zip dans le dossier ROMS (pour Batocera, seul le dossier PORTS sera utilisĂ© pour Retrobat il faudra extraire PORTS et WINDOWS) - Mettez Ă  jour la liste des jeux via le menu : `ParamĂštres de jeux > Mettre Ă  jour la liste`. ## 🏁 1er dĂ©marrage --- > ## IMPORTANT > Si vous avez une clĂ© API 1Fichier, vous devez la renseigner dans > `/saves/ports/rgsx/1FichierAPI.txt` > si vous souhaitez tĂ©lĂ©charger depuis des liens 1Fichier. --- - Lancez RGSX depuis ports sur batocera, depuis Windows sur Retrobat. - Au premier lancement, l'application importera automatiquement la configuration des contrĂŽles depuis EmulationStation si disponible. - Configurez les contrĂŽles si nĂ©cessaire. Ils pourront ĂȘtre reconfigurĂ©s via le menu pause par la suite. - Supprimez le fichier `/saves/ports/rgsx/controls.json` en cas de problĂšme puis relancez l'application. - L'application tĂ©lĂ©chargera toutes les donnĂ©es nĂ©cessaires automatiquement ensuite. INFO : pour retrobat au 1er lancement, l'application tĂ©lĂ©chargera Python dans le dossier /system/tools/python qui est necessaire pour faire fonctionner l'application. Le fichier fait environ 50mo et va assez vite a tĂ©lĂ©charger mais il n'y a aucun retour visuel a l'ecran, qui va rester figĂ© sur le chargement de RGSX pendant quelques secondes. --- ## đŸ•č 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 le menu pause, accĂ©dez Ă  l'historique, Ă  l'aide des contrĂŽles (l'affichage des contrĂŽles change suivant le menu oĂč vous ĂȘtes) ou Ă  la reconfiguration des touches, des langues, de la taille de la police. - 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. --- ### 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. - Suivez la progression dans le menu `HISTORIQUE`. --- ### Personnalisation des contrĂŽles - Dans le menu pause, sĂ©lectionnez **Reconfigurer controls**. - 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. --- ### 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 a partager pour tout support. --- ## 📁 Structure du projet ``` /roms/windows/RGSX │ ├── RGSX Retrobat.bat #Raccourci pour lancer l'application RGSX pour retrobat uniquement, non necessaire pour batocera/knulli /roms/ports/ RGSX-INSTALL.log # LOG d'installation uniquement pour une premiere installation en ligne de commande. RGSX/ │ ├── main.py # Point d'entrĂ©e principal de l'application. ├── controls.py # Gestion des Ă©vĂ©nements clavier/manette/souris et navigation dans les menus. ├── controls_mapper.py # Configuration des contrĂŽles avec dĂ©tection automatique des noms de boutons. ├── es_input_parser.py # Parseur de configuration EmulationStation pour l'import automatique des contrĂŽles. ├── display.py # Rendu des interfaces graphiques avec Pygame. ├── config.py # Configuration globale (chemins, paramĂštres, etc.). ├── 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. ├── utils.py # Fonctions utilitaires (wrap du texte, troncage etc.). └── logs/ └── RGSX.log # Fichier de logs. /saves/ports/RGSX/ │ ├── controls.json # Fichier de mappage des contrĂŽles (gĂ©nĂ©rĂ© aprĂšs le 1er demarrage) ├── history.json # Base de donnĂ©es de l'historique de tĂ©lĂ©chargements (gĂ©nĂ©rĂ© aprĂšs le 1er tĂ©lĂ©chargement) ├── language.json # Contient la langue configurĂ©e └── 1FichierAPI.txt # ClĂ© API 1fichier (compte premium et + uniquement) (vide par defaut) ``` --- ## đŸ€ Contribution ### Signaler un bug 1. Consultez les logs dans `/roms/ports/RGSX/logs/RGSX.log`. 2. Ouvrez une issue sur GitHub avec une description dĂ©taillĂ©e et les logs pertinents. ### Proposer une fonctionnalitĂ© - 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 : 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 / À implĂ©menter - Gestion des tĂ©lĂ©chargements multiples --- ## 📝 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.