Skip to content
This repository was archived by the owner on Apr 1, 2026. It is now read-only.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

14 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ Myrient Downloader

Fast, reliable, resumable downloads from Myrient ROM archives

License: MIT Shell: Bash Platform: macOS | Linux

Download entire ROM collections from myrient.erista.me with ease!

Features โ€ข Quick Start โ€ข Usage โ€ข Examples โ€ข FAQ


๐ŸŒŸ What is This?

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

โœจ Features

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

๐Ÿš€ Quick Start

Installation

# Clone the repository
git clone https://github.com/trentas/myrient-downloader.git
cd myrient-downloader

# Make the script executable
chmod +x myrient-downloader.sh

First Run

  1. Create your platforms list (or use the example):
cp platforms-example.txt platforms.txt
nano platforms.txt  # Edit to add your desired platforms
  1. 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
  1. Start downloading!
./myrient-downloader.sh platforms.txt exclude_patterns.txt

๐Ÿ“ฆ Requirements

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

macOS Setup

brew install wget

Linux Setup

# Debian/Ubuntu
sudo apt-get install wget curl python3

# Fedora/RHEL
sudo dnf install wget curl python3

๐Ÿ“– Usage

Basic Syntax

./myrient-downloader.sh [OPTIONS] platforms.txt exclude_patterns.txt

Options

Option Description Example
--verbose Enable detailed logging --verbose
--base-url URL Override default collection URL --base-url https://myrient.erista.me/files/Redump

Configuration Files

platforms.txt

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.

exclude_patterns.txt

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)

๐Ÿ’ก Examples

Download No-Intro Collection (Default)

./myrient-downloader.sh platforms.txt exclude_patterns.txt

Output:

๐Ÿ” 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

Download Redump Collection

./myrient-downloader.sh --base-url https://myrient.erista.me/files/Redump platforms.txt exclude_patterns.txt

Verbose Mode (Debug)

./myrient-downloader.sh --verbose platforms.txt exclude_patterns.txt

Download Multiple Collections

# 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.txt

๐Ÿ“‚ Output Structure

myrient-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
  • .completed files track successfully downloaded ROMs
  • Interrupted downloads resume automatically on next run
  • Files are verified by size comparison with remote server

๐Ÿ› ๏ธ Advanced Usage

Adjust Parallel Download Count

Edit MAX_PARALLEL in the script:

MAX_PARALLEL=10  # Download 10 files at once (default: 5)

Interrupting Downloads

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!

Resume After Failure

Simply run the same command again:

./myrient-downloader.sh platforms.txt exclude_patterns.txt

The script automatically:

  • โœ… Skips completed files (tracked in .completed)
  • โœ… Validates existing files by size
  • โœ… Re-downloads incomplete/corrupted files

โ“ FAQ

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.txt
Q: 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 5

โš ๏ธ Warning: Too many parallel downloads may trigger rate limiting.

Q: What if a download fails?

A: Just run the script again! It will:

  1. Skip verified files
  2. Re-check file sizes
  3. 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:

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

๐Ÿ› Troubleshooting

"No downloadable files found"

  • โœ… Check platform name matches exactly (case-sensitive)
  • โœ… Verify the URL is accessible in your browser
  • โœ… Try --verbose mode for more details

Downloads keep failing

  • โœ… Check your internet connection
  • โœ… Lower MAX_PARALLEL count
  • โœ… Run with --verbose to see detailed errors

"Command not found: wget"

# macOS
brew install wget

# Linux
sudo apt-get install wget

Files not resuming properly

  • โœ… Check disk space (df -h)
  • โœ… Delete the .completed file to force re-download
  • โœ… Check file permissions in the download directory

๐Ÿค Contributing

Contributions are welcome! Feel free to:

  • ๐Ÿ› Report bugs
  • ๐Ÿ’ก Suggest features
  • ๐Ÿ”ง Submit pull requests

Development

# 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)

๐Ÿ“‹ License

MIT License - see LICENSE file for details.


๐Ÿ™ Acknowledgments

  • 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 ๐ŸŒ๐Ÿ’พ

โญ Support

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

About

Fast, reliable, resumable downloads from Myrient ROM archives

Resources

Stars

13 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages