https://github.com/xrce/retro
Personal repo for managing retro games
https://github.com/xrce/retro
downloader emulation emulator handheld retrogaming
Last synced: 12 months ago
JSON representation
Personal repo for managing retro games
- Host: GitHub
- URL: https://github.com/xrce/retro
- Owner: xrce
- Created: 2025-04-03T00:02:25.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-16T18:00:28.000Z (about 1 year ago)
- Last Synced: 2025-05-16T19:19:38.828Z (about 1 year ago)
- Topics: downloader, emulation, emulator, handheld, retrogaming
- Language: Python
- Homepage:
- Size: 48.8 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ฆ Retro Game Package Manager
๐ A **fast and lightweight** package manager for downloading and managing retro game ROMs from public archives. Featuring **smart search, filtering by system, resumable downloads, and automatic extraction** for compressed files. Perfect for quickly downloading ROMs for retro gaming consoles with minimal effort!
---
## ๐ฅ Why Use This?
โก **Ultra-fast fetching** โ Instantly fetch **thousands** of games.
๐ฏ **Easy Filtering** โ Find exactly what you want, **instantly**.
๐ **Auto-Extract Archives** โ **No manual extraction needed**.
๐ **Auto-compress** โ Convert ISO/CUE/GDI files to CHD format.
๐งน **Smart Cleanup** โ Intelligently remove duplicate ROMs.
๐ **Minimal Dependencies** โ Runs smoothly on **any system**.
๐ **Minimalist UI** โ Inspired by **Pacman package manager** style.
---
## **๐ฎ Supported Consoles**
This tool can fetch ROMs for multiple **retro and modern gaming systems**, including:
- **Nintendo**: GB, GBC, GBA, NES, SNES, N64, NDS, 3DS, GameCube, Wii, Wii U
- **Sony**: PSX, PS2, PSP, PS3, PS Vita
- **Microsoft**: Xbox, Xbox 360
- **Sega**: Genesis, Dreamcast, Saturn
- **Others**: Atari 2600, Neo Geo, TurboGrafx-16, PC-98, FM-Towns, 3DO
---
## **๐ Installation**
### **1๏ธโฃ Install dependencies**
Make sure you have Python **3.7+** installed, then run:
```bash
pip install requests tqdm bs4 py7zr rarfile
```
For Linux users, install `unrar` if not available:
```bash
sudo apt install unrar
```
For CHD compression/extraction, install `chdman`:
```bash
# Ubuntu/Debian
sudo apt install mame-tools
# macOS
brew install mame-tools
```
### **2๏ธโฃ Clone this repository**
```bash
git clone https://github.com/xrce/retro.git
cd retro
```
---
## **โก Usage**
### **1๏ธโฃ Launch the application**
```bash
python retro.py
```
You'll see the main menu:
```
โโโโ โโโโโโโโโโโโโโ โโโ
โโ โโโโ โ โโ โโโโ โโ โ 0/1234 games
โโโโโโโโโโ โ โโโโโโโ โโ โ 0/23 systems
โโ โโโโโโโ โ โโ โโโโโโโ โ 0.00B/1.23TB total
--------------------------------------------------
[1] Update packages
[2] Install packages
[3] Uninstall packages
[4] List Installed
[5] Compress packages
[6] Clean duplicates
[0] Exit
--------------------------------------------------
```
### **2๏ธโฃ Update package listings**
Select option `1` to fetch available ROM packages.
### **3๏ธโฃ Search and install packages**
Select option `2` to search and install ROMs.
#### ๐ Search syntax:
```
Keywords: silent hill psx
```
- Search by name: `silent hill`
- Search within a specific console: `gbc silent hill`
- Exclude words from search: `silent hill -demo`
- Install all ROMs for a system: `all gbc`
### **4๏ธโฃ Uninstall packages**
Select option `3` to remove installed ROMs.
Uses the same search syntax as installation.
### **5๏ธโฃ List installed packages**
Select option `4` to view all currently installed ROMs.
### **6๏ธโฃ Compress packages**
Select option `5` to convert ISO/CUE/GDI files to CHD format.
This helps save disk space while preserving full compatibility.
### **7๏ธโฃ Clean duplicates**
Select option `6` to scan for and remove duplicate ROMs.
The system prioritizes ROMs in this order: World (W), Europe (E), USA (U), Japan (J).
---
## **๐ Where Are ROMs Saved?**
- ROMs are stored in folders matching their **system codes** (e.g., `psx`, `gbc`, `nds`).
- Archives are **automatically extracted** into their respective folders.
Example directory structure:
```
๐ roms/
โฃ ๐ gbc/
โ โ ๐ Silent Hill GBC/
โฃ ๐ ps2/
โ โ ๐ Silent Hill 2/
โฃ ๐ psp/
โ โ ๐ Silent Hill Origins/
```
---
## **๐ฏ Example Output**
```
Keywords: silent hill psx
Listing packages...
โ 697.62MB Silent Hill (USA) (psx)
โ 573.47MB Silent Hill (Europe) (psx)
โ 565.12MB Silent Hill (Japan) (psx)
3 packages to install (1.80GB)
Install? [Y/n]: y
Installing: 33% [1/3]
Silent Hill (USA): 100% [697.62MB/697.62MB]
Silent Hill (Europe): 100% [573.47MB/573.47MB]
Silent Hill (Japan): 100% [565.12MB/565.12MB]
Installation complete.
```
---
## ๐ง Configuration
Edit `systems.json` to add or remove supported systems. Example:
```json
{
"psx": {
"name": "Sony PlayStation",
"format": ["bin", "cue", "chd"],
"url": [
"https://myrient.erista.me/files/Redump/Sony%20-%20PlayStation/"
]
}
}
```
---
## ๐ Notes
- **Some ROMs are large!** Ensure you have enough storage space.
- **Roms are fetched from external archives.** No ROMs are included in this repository.
- **Use this responsibly!** Only download games you legally own.
๐ฎ **Happy gaming!** ๐น