SUPPORT / HELP: https://discord.gg/Vph9jwg3VV
LISEZ-MOI / INSTRUCTIONS EN FRANCAIS : https://github.com/RetroGameSets/RGSX/blob/main/README_FR.md
RGSX is a Python application using Pygame for its graphical interface, created by and for the RetroGameSets community. It is completely free.
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.
INSTALLATION : https://github.com/RetroGameSets/RGSX#-installation
- Game downloads: Supports ZIP files and handles unsupported raw archives automatically based on allowed extensions defined in EmulationStation's
es_systems.cfg(and customes_systems_*.cfgon Batocera). RGSX reads the perโsystem 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.
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 autoโcreate 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 commandโline 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.
-
Multiโselection 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 autoโconfigured 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 onโscreen virtual keyboard for controllers.
-
Multiโlanguage 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.jsonplus the supported systems list.
- Batocera / Knulli or RetroBat
- PC, Raspberry Pi, handheld console...
- Controller (recommended) or keyboard
- Active internet connection
- ~100 MB for the application (additional space for downloaded games)
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.
Run:
curl -L bit.ly/rgsx-install | sh
Wait for the script to finish (log file and onโscreen 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).
- Download ZIP: https://github.com/RetroGameSets/RGSX/archive/refs/heads/main.zip
- Extract into your ROMS folder:
- Batocera: only extract the
portsfolder contents - RetroBat: extract both
portsandwindows
- Batocera: only extract the
- Ensure you now have:
/roms/ports/RGSXand (RetroBat)/roms/windows/RGSX - Update the game list:
Menu > Game Settings > Update game 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 autoโimported. - The app then downloads required data (system images, game lists, etc.).
- If controls act strangely or are corrupt, delete
/saves/ports/rgsx/controls.jsonand 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).
- Use DโPad / Arrow keys to move between platforms, games, and options.
- Press the Start key (default:
Por 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.
- 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
- Select a platform then a game
- Press the Confirm key (default: Enter / A) to start downloading
- (Optional) Press the Clear History key (default: X) on multiple games to toggle multiโselection ([X] marker), then Confirm to launch a sequential batch
- Track progress in the HISTORY menu
- 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.jsonif mapping breaks; restart to regenerate
- Access from pause menu or press the History key (default: H)
- Select an entry to reโdownload (e.g. after an error or cancellation)
- CLEAR button empties the list only (does not delete installed games)
- BACK cancels an active download
Logs are stored at: /roms/ports/RGSX/logs/RGSX.log (provide this for troubleshooting).
See Discord or GitHub commits for the latest changes.
Switch the game source in the pause menu (Game Source: RGSX / Custom).
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 is selected and URL is empty/invalid โ empty list + popup (no fallback)
- Fix the URL then choose "Update games list" (restart if prompted)
Example rgsx_settings.json snippet:
"sources": {
"mode": "custom",
"custom_url": "https://example.com/my-sources.zip"
}Switch back to RGSX mode any time via the pause menu.
/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)
- Review
/roms/ports/RGSX/logs/RGSX.log. - Open a GitHub issue with a clear description + relevant log excerpt OR share it on Discord.
- Open an issue (or discuss on Discord first) describing the feature and its integration.
- Fork the repository & create a feature branch:
git checkout -b feature/your-feature-name- Test on Batocera / RetroBat.
- Open a Pull Request with a detailed summary.
- (None currently listed)
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.