Download entire ROM collections from myrient.erista.me with ease!
Features โข Quick Start โข Usage โข Examples โข FAQ
Myrient Downloader is a powerful bash script that automates downloading ROM collections from Myrient's archives (No-Intro, Redump, TOSEC, MAME, and more). It handles everything from parallel downloads to smart resumption and verification.
Perfect for:
- ๐น๏ธ Retro gaming enthusiasts building their collection
- ๐ Preservationists archiving gaming history
- ๐ฏ Power users who want efficient, hands-off downloads
| Feature | Description |
|---|---|
| โก Parallel Downloads | Download up to 5 files simultaneously (configurable) |
| ๐ Smart Resumption | Automatically resumes interrupted downloads |
| โ Verification | Validates file integrity by comparing sizes |
| ๐ฏ Flexible Filtering | Exclude unwanted files with pattern matching |
| ๐ก๏ธ Robust Error Handling | Retries failed downloads with exponential backoff |
| ๐ฆ Graceful Interruption | Ctrl-C safely stops all downloads and cleans up |
| ๐ Progress Tracking | Per-platform .completed cache prevents re-downloads |
| ๐ Multi-Collection | Supports No-Intro, Redump, TOSEC, MAME, and more |
| ๐ฌ Verbose Mode | Detailed logging for debugging |
| ๐ Cross-Platform | Works on macOS and Linux |
# Clone the repository
git clone https://github.com/trentas/myrient-downloader.git
cd myrient-downloader
# Make the script executable
chmod +x myrient-downloader.sh- Create your platforms list (or use the example):
cp platforms-example.txt platforms.txt
nano platforms.txt # Edit to add your desired platforms- Create your exclusions list (or use the example):
cp exclude_patterns-example.txt exclude_patterns.txt
nano exclude_patterns.txt # Edit to add patterns you want to skip- Start downloading!
./myrient-downloader.sh platforms.txt exclude_patterns.txt| Tool | Purpose | Installation |
|---|---|---|
bash |
Shell (v4+) | Pre-installed on most systems |
wget |
Download engine | brew install wget (macOS) |
curl |
Metadata fetching | Pre-installed on most systems |
python3 |
URL decoding | Pre-installed on most systems |
brew install wget# Debian/Ubuntu
sudo apt-get install wget curl python3
# Fedora/RHEL
sudo dnf install wget curl python3./myrient-downloader.sh [OPTIONS] platforms.txt exclude_patterns.txt| Option | Description | Example |
|---|---|---|
--verbose |
Enable detailed logging | --verbose |
--base-url URL |
Override default collection URL | --base-url https://myrient.erista.me/files/Redump |
List platforms to download (one per line). Names must exactly match folder names on Myrient:
Nintendo - Game Boy
Nintendo - Game Boy Advance
Sony - PlayStation
Sega - Mega Drive - Genesis
๐ก Tip: Browse myrient.erista.me to find exact platform names.
Pattern matching (case-insensitive) to skip unwanted files:
# Skip documentation
README
datfile
# Skip certain regions
(Japan)
(Germany)
(France)
# Skip certain types
(Proto)
(Beta)
(Demo)
(Unl)
(Pirate)
./myrient-downloader.sh platforms.txt exclude_patterns.txtOutput:
๐ Fetching list from: https://myrient.erista.me/files/No-Intro/Nintendo%20-%20Game%20Boy/
๐ Local folder: ./Nintendo - Game Boy
โญ๏ธ Skipping (excluded): README.txt
โ
Already complete: Pokemon - Red Version (USA, Europe).zip
โฌ๏ธ Downloading: Tetris (World).zip
โ
Download verified by size: Tetris (World).zip
๐ Starting parallel downloads for: Nintendo - Game Boy
๐ Download Summary
----------------------
๐งพ Total attempted: 127
โ
Completed: 126
โ Errors: 1
โ
Done: Nintendo - Game Boy
./myrient-downloader.sh --base-url https://myrient.erista.me/files/Redump platforms.txt exclude_patterns.txt./myrient-downloader.sh --verbose platforms.txt exclude_patterns.txt# No-Intro
./myrient-downloader.sh --base-url https://myrient.erista.me/files/No-Intro platforms-no-intro.txt exclude_patterns.txt
# Redump
./myrient-downloader.sh --base-url https://myrient.erista.me/files/Redump platforms-redump.txt exclude_patterns.txt
# TOSEC
./myrient-downloader.sh --base-url https://myrient.erista.me/files/TOSEC platforms-tosec.txt exclude_patterns.txtmyrient-downloader/
โโโ myrient-downloader.sh
โโโ platforms.txt
โโโ exclude_patterns.txt
โโโ Nintendo - Game Boy/
โ โโโ .completed # Tracks finished downloads
โ โโโ Pokemon Red (USA).zip
โ โโโ Tetris (World).zip
โ โโโ ...
โโโ Sony - PlayStation/
โ โโโ .completed
โ โโโ ...
โโโ ...
- Each platform gets its own directory
.completedfiles track successfully downloaded ROMs- Interrupted downloads resume automatically on next run
- Files are verified by size comparison with remote server
Edit MAX_PARALLEL in the script:
MAX_PARALLEL=10 # Download 10 files at once (default: 5)Press Ctrl-C to safely stop:
^C
๐ Interrupting downloads...
โ
Cleanup complete
All temporary files are cleaned up automatically, and you can resume where you left off!
Simply run the same command again:
./myrient-downloader.sh platforms.txt exclude_patterns.txtThe script automatically:
- โ
Skips completed files (tracked in
.completed) - โ Validates existing files by size
- โ Re-downloads incomplete/corrupted files
Q: Can I download from other Myrient collections?
A: Yes! Use --base-url:
# Redump
./myrient-downloader.sh --base-url https://myrient.erista.me/files/Redump platforms.txt exclude_patterns.txt
# TOSEC
./myrient-downloader.sh --base-url https://myrient.erista.me/files/TOSEC platforms.txt exclude_patterns.txt
# MAME
./myrient-downloader.sh --base-url https://myrient.erista.me/files/MAME platforms.txt exclude_patterns.txtQ: How do I only download specific regions?
A: Use exclusion patterns. For USA-only ROMs:
# exclude_patterns.txt
(Japan)
(Europe)
(Germany)
(France)
(Spain)
(Italy)
(Korea)
(World)
Q: Downloads are slow. Can I speed them up?
A: Yes! Edit MAX_PARALLEL in the script:
MAX_PARALLEL=10 # Increase from default 5Q: What if a download fails?
A: Just run the script again! It will:
- Skip verified files
- Re-check file sizes
- Re-download incomplete/failed files
Q: Can I pause and resume later?
A: Yes! Press Ctrl-C to stop. Run the same command again to resume exactly where you left off.
Q: How do I find exact platform names?
A: Browse the collection on Myrient:
- No-Intro: https://myrient.erista.me/files/No-Intro
- Redump: https://myrient.erista.me/files/Redump
- TOSEC: https://myrient.erista.me/files/TOSEC
Copy folder names exactly as they appear (including spaces and special characters).
Q: Does this work on Windows?
A: Not natively, but you can use:
- WSL (Windows Subsystem for Linux)
- Git Bash
- Cygwin
- โ Check platform name matches exactly (case-sensitive)
- โ Verify the URL is accessible in your browser
- โ
Try
--verbosemode for more details
- โ Check your internet connection
- โ
Lower
MAX_PARALLELcount - โ
Run with
--verboseto see detailed errors
# macOS
brew install wget
# Linux
sudo apt-get install wget- โ
Check disk space (
df -h) - โ
Delete the
.completedfile to force re-download - โ Check file permissions in the download directory
Contributions are welcome! Feel free to:
- ๐ Report bugs
- ๐ก Suggest features
- ๐ง Submit pull requests
# Run in verbose mode for testing
./myrient-downloader.sh --verbose platforms.txt exclude_patterns.txt
# Test interrupt handling
# (Press Ctrl-C during downloads to verify cleanup)MIT License - see LICENSE file for details.
- Myrient for hosting and preserving gaming history
- No-Intro for ROM verification and cataloging
- Redump for disc preservation standards
- TOSEC for comprehensive archival efforts
- The entire ROM preservation community ๐๐พ
If this tool helped you build your collection, consider:
- โญ Starring this repository
- ๐ Reporting issues you encounter
- ๐ข Sharing with other retro gaming enthusiasts
- ๐ Supporting Myrient for hosting costs
Happy Gaming! ๐ฎโจ
Made with โค๏ธ by the ROM preservation community