1
0
forked from Mirrors/RGSX

update readme

This commit is contained in:
skymike03
2025-09-12 22:04:26 +02:00
parent c6ae45aecd
commit e685c16b2d
3 changed files with 275 additions and 275 deletions

360
README.md
View File

@@ -1,258 +1,240 @@
# 🎮 Retro Game Sets Xtra (RGSX)
## SUPPORT / HELP : https://discord.gg/Vph9jwg3VV
## LISEZ-MOI EN FRANCAIS : https://github.com/RetroGameSets/RGSX/blob/main/README_FR.md
## SUPPORT / HELP: https://discord.gg/Vph9jwg3VV
RGSX is a Python application developed using Pygame for graphics, created for the community by RetroGameSets. It is completely free.
RGSX is a Python application using Pygame for its graphical interface, created by and for the RetroGameSets community. It is completely free.
The application supports multiple sources like myrient and 1fichier (with optional AllDebrid unlocking fallback). These sources can be updated frequently.
---
## 🧰 Command-line usage (CLI)
RGSX also offers a headless command-line interface to list platforms/games and download ROMs:
- English guide: see `https://github.com/RetroGameSets/RGSX/blob/main/README_CLI.md`
The application currently supports multiple download sources such as myrient and 1fichier (with optional unlocking / fallback via AllDebrid and Real-Debrid). Sources can be updated frequently.
---
## ✨ Features
- **Game downloads** : Support for ZIP files and handling of unsupported extensions based on EmulationStation's `es_systems.cfg` (and custom `es_systems_*.cfg` on Batocera). RGSX reads allowed extensions per system from these configs and will automatically extract archives when a system doesn't support them.
- Downloads require no authentication or account for most sources.
- Systems marked `(1fichier)` in the name will only be accessible if you provide either your 1Fichier API key or an AllDebrid API key (see below).
- **Download history** : View and re-download previous files.
- **Multi-select downloads** : Mark multiple games in the game list with the key mapped to Clear History (default X) to enqueue several downloads in one batch. Press Confirm to start batch.
- **Control customization** : Remap keyboard or controller keys to your preference with automatic button name detection from EmulationStation (beta).
- **Systems grid layout**: Change the platforms grid (3x3, 3x4, 4x3, 4x4) from the Display menu.
- **Show/hide unsupported systems**: Auto-hide platforms whose ROM folder is missing according to `es_systems.cfg`, with a toggle in the Display menu.
- **Smarter system images**: Image loading prioritizes explicit `platform_image` from your systems list JSON before falling back to `<platform_name>.png` or folder images.
- **Font size adjustment** : If you find the text too small/too large, you can change it in the menu.
- **Search mode** : Filter games by name for quick navigation with virtual keyboard on controller.
- **Multilingual support** : Interface available in multiple languages. You can choose the language in the menu.
- **Error handling** with informative messages and LOG file.
- **Adaptive interface** : The interface adapts to all resolutions from 800x600 to 4K (not tested beyond 1920x1080).
- **Automatic updates** : the application must be restarted after an update.
- **Automatic supported extensions cache**: On first use, RGSX reads `es_systems.cfg` (RetroBat/Batocera) and generates `/saves/ports/rgsx/rom_extensions.json` with allowed extensions per system.
- **Retrobat gamelist auto-update**: On Retrobat, the Windows `gamelist.xml` is updated automatically at launch so your images/videos appear in EmulationStation.
- **Game downloads**: Supports ZIP files and handles unsupported raw archives automatically based on allowed extensions defined in EmulationStation's `es_systems.cfg` (and custom `es_systems_*.cfg` on Batocera). RGSX reads the persystem allowed extensions and extracts archives automatically if the target system does not support zipped files.
- Most downloads require no account or authentication.
- Systems tagged with `(1fichier)` in their name require a valid API key (1Fichier, AllDebrid or Real-Debrid) for premium links.
---
> ## IMPORTANT (1Fichier / AllDebrid / Real-Debrid)
> To download from 1Fichier links you may use one of: your 1Fichier API key, an AllDebrid API key (automatic fallback), or a Real-Debrid API key (fallback if others missing / limited).
>
> Where to paste your API key (file must contain ONLY the key):
> - `/saves/ports/rgsx/1FichierAPI.txt` (1Fichier API key)
> - `/saves/ports/rgsx/AllDebridAPI.txt` (AllDebrid API key optional fallback)
> - `/saves/ports/rgsx/RealDebridAPI.txt` (Real-Debrid API key optional fallback)
>
> Do NOT create these files manually. Launch RGSX once: it will autocreate the empty files if they are missing. Then open the relevant file and paste your key.
---
**🧰 Command Line (CLI) Usage**
RGSX also provides a headless commandline interface to list platforms/games and download ROMs:
- French CLI guide: https://github.com/RetroGameSets/RGSX/blob/main/README_CLI.md
- English CLI guide: https://github.com/RetroGameSets/RGSX/blob/main/README_CLI_EN.md
- **Download history**: View all current and past downloads.
- **Multiselection downloads**: Mark several games using the key mapped to Clear History (default X) to prepare a batch, then Confirm to launch sequential downloads.
- **Control customization**: Remap keyboard / controller buttons; many popular pads are autoconfigured on first launch.
- **Platform grid layouts**: Switch between 3x3, 3x4, 4x3, 4x4.
- **Hide unsupported systems**: Automatically hides systems whose ROM folder is missing (toggle in Display menu).
- **Change font & size**: Accessibility & readability adjustments directly in the menu.
- **Search / filter mode**: Quickly filter games by name; includes onscreen virtual keyboard for controllers.
- **Multilanguage interface**: Switch language any time in the menu.
- **Adaptive interface**: Scales cleanly from 800x600 up to 1080p (higher resolutions untested but should work).
- **Auto update & restart**: The application restarts itself after applying an update.
- **System & extension discovery**: On first run, RGSX parses `es_systems.cfg` (Batocera / RetroBat) and generates `/saves/ports/rgsx/rom_extensions.json` plus the supported systems list.
---
## 🖥️ Requirements
### Operating System
- Batocera / Knulli or Retrobat
- Batocera / Knulli or RetroBat
### Hardware
- PC, Raspberry Pi, handheld console...
- Controller (optional, but recommended for optimal experience) or Keyboard.
- Controller (recommended) or keyboard
- Active internet connection
### Disk Space
- 100 MB for the application.
- ~100 MB for the application (additional space for downloaded games)
---
## 🚀 Installation
### Method 1: Automatic command line installation for Batocera/Knulli
### Automatic Method (Batocera / Knulli)
- On batocera x86 PC access F1>Applications>xTERM or
- From another PC on the network with Putty, powershell SSH or other application
On the target system:
- On Batocera PC: open an xTERM (F1 > Applications > xTERM), or
- From another machine: connect via SSH (root / linux) using PuTTY, PowerShell, etc.
Enter the command:
## `curl -L bit.ly/rgsx-install | sh`
Wait and watch the return on screen or on the command (to be improved).
Update the game list via: `Menu > Game Settings > Update game list`.
You will find RGSX in the "PORTS" system or "Homebrew and ports" and in `/roms/ports/RGSX`
Run:
`curl -L bit.ly/rgsx-install | sh`
Wait for the script to finish (log file and onscreen output). Then update the game list via:
`Menu > Game Settings > Update game list`
You will find RGSX under the "PORTS" or "Homebrew and ports" system. Physical paths created: `/roms/ports/RGSX` (and `/roms/windows/RGSX` on RetroBat environments as needed).
### Manual Method (RetroBat / Batocera)
1. Download ZIP: https://github.com/RetroGameSets/RGSX/archive/refs/heads/main.zip
2. Extract into your ROMS folder:
- Batocera: only extract the `ports` folder contents
- RetroBat: extract both `ports` and `windows`
3. Ensure you now have: `/roms/ports/RGSX` and (RetroBat) `/roms/windows/RGSX`
4. Update the game list: `Menu > Game Settings > Update game list`
---
### Method 2: Manual copy (Mandatory method on retrobat)
## 🏁 First Launch
- Download the repository content as zip: https://github.com/RetroGameSets/RGSX/archive/refs/heads/main.zip
- Extract the zip file into the ROMS folder (for Batocera, only the PORTS folder will be used, for Retrobat you will need to extract PORTS and WINDOWS)
- Update the game list via the menu:
`Game Settings > Update list`.
- RGSX appears in the "WINDOWS" system on RetroBat, and in "PORTS" / "Homebrew and ports" on Batocera/Knulli.
- On first launch, if your controller matches a predefined profile in `/roms/ports/RGSX/assets/controls`, mapping is autoimported.
- The app then downloads required data (system images, game lists, etc.).
- If controls act strangely or are corrupt, delete `/saves/ports/rgsx/controls.json` and restart (it will be regenerated).
INFO (RetroBat only): On the first run, Python (~50 MB) is downloaded into `/system/tools/python`. The screen may appear frozen on the loading splash for several seconds—this is normal. Installation output is logged in `/roms/ports/RGSX-INSTALL.log` (share this if you need support).
## 🏁 First startup
---
> ## IMPORTANT (1Fichier / AllDebrid)
> To download from 1Fichier links, you can use either your 1Fichier API key or an AllDebrid API key (automatic fallback if 1Fichier is missing).
>
> Where to paste your API key (file should contain the key only):
> - `/saves/ports/rgsx/1FichierAPI.txt` (1Fichier API key)
> - `/saves/ports/rgsx/AllDebridAPI.txt` (AllDebrid API key)
>
> Do NOT create these files manually. Start a 1Fichier download once: RGSX will auto-create empty files if missing. Then open the appropriate file and paste your key.
---
- Launch RGSX from ports on batocera, from Windows on Retrobat.
- On first launch, the application will automatically import the control configuration from EmulationStation if available.
- Configure controls if necessary. They can be reconfigured via the pause menu later.
- Delete the `/saves/ports/rgsx/controls.json` file in case of problems then restart the application.
- The application will then automatically download all necessary data.
INFO: for retrobat on first launch, the application will download Python in the /system/tools/python folder which is necessary to run the application. The file is about 50MB and downloads quite quickly but there is no visual feedback on screen, which will remain frozen on the RGSX loading for a few seconds.
---
## 🕹️ Usage
### Menu navigation
### Menu Navigation
- Use the directional keys (D-Pad, keyboard arrows) to navigate between platforms, games and options.
- Press the key configured as start (default, **P** or Start button on controller) to open the pause menu.
- From the pause menu, access history, control help (control display changes depending on which menu you're in) or reconfiguration of keys, languages, font size.
- You can also, from the menu, regenerate the cache of the systems/games/images list to be sure to have the latest updates.
- Use DPad / Arrow keys to move between platforms, games, and options.
- Press the Start key (default: `P` or controller Start) for the pause menu with all configuration options.
- From the pause menu you can regenerate cached system/game/image lists to pull latest updates.
#### Display menu
### Display Menu
- Layout: switch platforms grid between 3x3, 3x4, 4x3, 4x4.
- Font size: adjust text scale (accessibility).
- Show unsupported systems: toggle visibility for platforms whose ROM folder is missing.
- Filter systems: quickly show/hide platforms by name (persistent).
- Layout: switch platform grid (3x3, 3x4, 4x3, 4x4)
- Font size: adjust text scale (accessibility)
- Show unsupported systems: toggle systems whose ROM directory is missing
- Filter systems: persistently include/exclude systems by name
---
### Downloading Games
### Download
1. Select a platform then a game
2. Press the Confirm key (default: Enter / A) to start downloading
3. (Optional) Press the Clear History key (default: X) on multiple games to toggle multiselection ([X] marker), then Confirm to launch a sequential batch
4. Track progress in the HISTORY menu
- Select a platform, then a game.
- Press the confirm key (default, **Enter** or **A** button) to start the download.
- Optional: Press the key mapped to Clear History (default **X**) on several games to toggle multi-selection ([X] marker). Then press Confirm to launch a sequential batch download.
- Follow the progress in the `HISTORY` menu.
### Control Customization
---
### Control customization
- In the pause menu, select **Reconfigure controls**.
- Follow the on-screen instructions to map each action by holding the key or button for 3 seconds.
- Button names are automatically displayed according to your controller (A, B, X, Y, LB, RB, LT, RT, etc.).
- The configuration is compatible with all controllers supported by EmulationStation.
- If controls behave incorrectly or mapping is corrupted, delete the file: `/saves/ports/rgsx/controls.json` then restart the application (it will be recreated).
---
- Open pause menu → Reconfigure controls
- Hold each desired key/button for ~3 seconds when prompted
- Button labels adapt to your pad (A/B/X/Y, LB/RB/LT/RT, etc.)
- Delete `/saves/ports/rgsx/controls.json` if mapping breaks; restart to regenerate
### History
- Access download history via the pause menu or by pressing the history key (default, **H**).
- Select a game to re-download it if necessary in case of error or cancellation.
- Clear all history via the **CLEAR** button in the history menu. Games are not deleted, only the list.
- Cancel a download with the **BACK** button.
---
- Access from pause menu or press the History key (default: H)
- Select an entry to redownload (e.g. after an error or cancellation)
- CLEAR button empties the list only (does not delete installed games)
- BACK cancels an active download
### Logs
Logs are saved in `roms/ports/RGSX/logs/RGSX.log` on batocera and on Retrobat to diagnose problems and should be shared for any support.
Logs are stored at: `/roms/ports/RGSX/logs/RGSX.log` (provide this for troubleshooting).
---
## 📁 Project structure
```
/roms/windows/RGSX
├── RGSX Retrobat.bat # Shortcut to launch RGSX application for retrobat only, not necessary for batocera/knulli
/roms/ports/
RGSX-INSTALL.log # Installation LOG only for a first command line installation.
RGSX/
├── __main__.py # Main entry point of the application.
├── controls.py # Keyboard/controller/mouse event handling and menu navigation.
├── controls_mapper.py # Control configuration with automatic button name detection.
├── display.py # Pygame graphics interface rendering.
├── config.py # Global configuration (paths, parameters, etc.).
├── rgsx_settings.py # Unified application settings management.
├── network.py # Game download management.
├── history.py # Download history management.
├── language.py # Multilingual support management.
├── accessibility.py # Accessibility settings management.
├── utils.py # Utility functions (text wrap, truncation etc.).
├── update_gamelist.py # Game list update (Batocera/Knulli).
├── update_gamelist_windows.py # Retrobat-only: auto-update ES gamelist.xml on launch.
├── assets/ # Application resources (fonts, executables, music).
├── languages/ # Translation files.
└── logs/
└── RGSX.log # Log file.
/saves/ports/RGSX/
├── systems_list.json # Available Systems names / folders / images
├── games/ # Links for games.
├── images/ # System images.
├── rgsx_settings.json # Unified configuration file (settings, accessibility, language, music, symlinks).
├── controls.json # Control mapping file (generated after first startup).
├── history.json # Download history database (generated after first download).
├── rom_extensions.json # Generated from es_systems.cfg: per-system allowed ROM extensions cache.
├── 1FichierAPI.txt # 1fichier API key (premium account and + only) (empty by default).
└── AllDebridAPI.txt # AllDebrid API key (optional, fallback for 1Fichier links) (empty by default).
```
---
## 🤝 Contributing
### Report a bug
1. Check the logs in `/roms/ports/RGSX/logs/RGSX.log`.
2. Open an issue on GitHub with a detailed description and relevant logs.
### Propose a feature
- Submit an issue with a clear description of the proposed feature.
- Explain how it integrates into the application.
### Contribute to the code
1. Fork the repository and create a branch for your feature or fix:
```bash
git checkout -b feature/your-feature-name
```
2. Test your changes on Batocera.
3. Submit a pull request with a detailed description.
---
## ⚠️ Known issues / To implement
- (None currently listed)
---
## 📝 License
This project is free. You are free to use, modify and distribute it under the terms of this license.
Developed with ❤️ for retro gaming enthusiasts.
## 🔄 Changelog
All informations are on the discord server
See Discord or GitHub commits for the latest changes.
---
## 🌐 Custom Game Sources
You can switch source mode in the pause menu (Game Source: RGSX / Custom).
Switch the game source in the pause menu (Game Source: RGSX / Custom).
Custom mode expects a ZIP URL (HTTP/HTTPS) pointing to a sources archive with the same structure as the default. Configure it in:
Custom mode expects an HTTP/HTTPS ZIP URL pointing to a sources archive mirroring the default structure. Configure in:
`{rgsx_settings path}` → key: `sources.custom_url`
Behavior:
- If custom mode selected and URL missing/invalid → empty list + popup (no fallback)
- Fix the URL then use "Update games list" and restart if required
- If custom mode is selected and URL is empty/invalid → empty list + popup (no fallback)
- Fix the URL then choose "Update games list" (restart if prompted)
Example snippet in rgsx_settings.json:
Example `rgsx_settings.json` snippet:
```json
"sources": {
"mode": "custom",
"custom_url": "https://example.com/my-sources.zip"
}
```
Switch back to RGSX mode anytime via pause menu.
Switch back to RGSX mode any time via the pause menu.
---
## 📁 Project Structure
```
/roms/windows/RGSX
├── RGSX Retrobat.bat # Windows/RetroBat launcher (not needed on Batocera/Knulli)
/roms/ports/
├── RGSX-INSTALL.log # Install log (first scripted install)
└── RGSX/
├── __main__.py # Main entry point
├── controls.py # Input handling & menu navigation events
├── controls_mapper.py # Interactive control remapping & auto button naming
├── display.py # Pygame rendering layer
├── config.py # Global paths / parameters
├── rgsx_settings.py # Unified settings manager
├── network.py # Download logic (multi-provider, fallback)
├── history.py # Download history store & UI logic
├── language.py # Localization manager
├── accessibility.py # Accessibility options (fonts, layout)
├── utils.py # Helper utilities (text wrapping, truncation, etc.)
├── update_gamelist.py # Game list updater (Batocera/Knulli)
├── update_gamelist_windows.py # RetroBat gamelist auto-update on launch
├── assets/ # Fonts, binaries, music, predefined control maps
├── languages/ # Translation files
└── logs/
└── RGSX.log # Runtime log
/saves/ports/RGSX/
├── systems_list.json # Discovered systems / folders / images
├── games/ # Platform game link repositories
├── images/ # Downloaded platform images
├── rgsx_settings.json # Unified config (settings, language, music, symlinks, sources)
├── controls.json # Generated control mapping
├── history.json # Download history database
├── rom_extensions.json # Allowed ROM extensions cache from es_systems.cfg
├── 1FichierAPI.txt # 1Fichier API key (empty until you paste key)
├── AllDebridAPI.txt # AllDebrid API key (optional fallback)
└── RealDebridAPI.txt # Real-Debrid API key (optional fallback)
```
---
## 🤝 Contributing
### Report a Bug
1. Review `/roms/ports/RGSX/logs/RGSX.log`.
2. Open a GitHub issue with a clear description + relevant log excerpt OR share it on Discord.
### Propose a Feature
- Open an issue (or discuss on Discord first) describing the feature and its integration.
### Contribute Code
1. Fork the repository & create a feature branch:
```bash
git checkout -b feature/your-feature-name
```
2. Test on Batocera / RetroBat.
3. Open a Pull Request with a detailed summary.
---
## ⚠️ Known Issues
- (None currently listed)
---
## 📝 License
This project is free software. You are free to use, modify, and distribute it under the terms of the included license.
Developed with ❤️ for retro gaming enthusiasts.

View File

@@ -6,35 +6,52 @@ RGSX est une application développée en Python basée sur Pygame pour la partie
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.
---
## 🧰 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`
---
## ✨ 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 ou une clé API AllDebrid (voir plus bas).
- **Historique des téléchargements** : Consultez et retéléchargez les anciens fichiers.
- 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 sils 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 avec détection automatique des noms de boutons depuis EmulationStation(beta).
- **Grille des plateformes** : changez la disposition de la grille (3x3, 3x4, 4x3, 4x4) depuis le menu Affichage.
- **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.
- **Images système plus intelligentes** : priorité à limage explicite `platform_image` issue du JSON des systèmes avant les fallback `<platform_name>.png` ou dossier.
- **Changement de taille de police** : Si vous trouvez les écritures 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.
- **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.
- **Gestion des erreurs** avec messages informatifs et fichier de LOG.
- **Interface adaptative** : 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.
- **Cache des extensions supportées** : à 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.
- **Mise à jour automatique de la gamelist (Retrobat)** : sur Retrobat, le `gamelist.xml` Windows est mis à jour automatiquement au lancement pour afficher les images/vidéos dans EmulationStation.
- **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.
---
@@ -55,46 +72,39 @@ RGSX propose aussi une interface en ligne de commande (sans interface graphique)
## 🚀 Installation
### Méthode 1 : Installation automatique en ligne de commande pour Batocera/Knulli
### Méthode Automatique : BATOCERA / KNULLI
- Sur batocera x86 PC accéder à F1>Applications>xTERM ou
- Depuis un autre PC sur le réseau avec application Putty, powershell SSH ou autre
- 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`
**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`
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 2 : Copie manuelle (Méthode obligatoire sur retrobat)
### 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
- 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`.
- 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
---
> ## IMPORTANT (1Fichier / AllDebrid)
> 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)
>
> Ne créez PAS ces fichiers manuellement. Lancez une première fois un téléchargement 1Fichier: RGSX créera automatiquement les fichiers vides sils sont absents. Ensuite, ouvrez le fichier correspondant et collez votre clé.
---
- 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.
- 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.
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.
---
## 🕹️ Utilisation
@@ -102,10 +112,11 @@ INFO : pour retrobat au premier lancement, l'application téléchargera Python d
### 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.
- 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.
@@ -126,11 +137,11 @@ INFO : pour retrobat au premier lancement, l'application téléchargera Python d
### Personnalisation des contrôles
- Dans le menu pause, sélectionnez **Reconfigurer controls**.
- 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` puis redémarrez l'application (il sera recréé automatiquement).
- 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).
---
@@ -145,12 +156,12 @@ INFO : pour retrobat au premier lancement, l'application téléchargera Python d
### 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.
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
Toutes les infos sur discord ou sur les commit github.
---
@@ -182,39 +193,39 @@ Revenez au mode RGSX à tout moment via le menu pause.
├── 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 pour une première 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.
├── 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 # Spécifique Retrobat : mise à jour auto de gamelist.xml au lancement.
├── assets/ # Ressources de l'application (polices, exécutables, musique).
├── 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
├── languages/ # Fichiers de traduction.
└── logs/
└── RGSX.log # Fichier de logs.
/saves/ports/RGSX/
├── systems_list.json # Liste des systèmes
├── games/ # Liens des systèmes
├── images/ # Images des systèmes.
├── rgsx_settings.json # Fichier de configuration unifié (paramètres, accessibilité, langue, musique, symlinks).
├── controls.json # Fichier de mappage des contrôles (généré après le premier démarrage).
├── history.json # Base de données de l'historique de téléchargements (généré après le premier téléchargement).
├── rom_extensions.json # Généré depuis es_systems.cfg : cache des extensions autorisées par système.
├── 1FichierAPI.txt # Clé API 1fichier (compte premium et + uniquement) (vide par défaut).
└── AllDebridAPI.txt # Clé API AllDebrid (optionnelle, fallback pour les liens 1Fichier) (vide par défaut).
├── 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
```
---
@@ -224,10 +235,12 @@ RGSX/
### 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.
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.
@@ -242,7 +255,7 @@ git checkout -b feature/nom-de-votre-fonctionnalité
---
## ⚠️ Problèmes connus / À implémenter
## ⚠️ Problèmes connus
- (Aucun listé actuellement)

View File

@@ -215,8 +215,8 @@ else:
# Des joysticks sont présents, activer le mode joystick et tenter la détection spécifique
config.joystick = True
config.keyboard = False
print(f"Joysticks détectés: {joystick_names}")
logger.debug(f"Joysticks détectés: {joystick_names}")
print(f"Joysticks détectés: YES")
logger.debug(f"Joysticks détectés: YES")
for idx, name in enumerate(joystick_names):
lname = name.lower()
# Détection spécifique Elite AVANT la détection générique Xbox
@@ -255,6 +255,11 @@ else:
config.steam_controller = True
logger.debug(f"Steam Controller detected : {name}")
print(f"Controller detected : {name}")
else:
# Si aucune marque spécifique détectée mais un joystick est présent, marquer comme générique
config.generic_controller = True
logger.debug(f"Generic Controller detected : {name}")
print(f"Generic Controller detected : {name}")
# Note: virtual keyboard display now depends on controller presence (config.joystick)
logger.debug(f"Flags contrôleur: xbox={config.xbox_controller}, ps={config.playstation_controller}, nintendo={config.nintendo_controller}, eightbitdo={config.eightbitdo_controller}, steam={config.steam_controller}, trimui={config.trimui_controller}, logitech={config.logitech_controller}, generic={config.generic_controller}")