Easy-to-use ROM downloader for Android devices
A standalone Android application for browsing, downloading, and managing ROMs on Android devices. Perfect for emulation handhelds like Retroid Pocket, Anbernic, AYN Odin, and more.
Concept inspired by pkgi-psp, Kekatsu-DS, and similar tools.
- Browse & Search - Search through thousands of ROMs across multiple platforms
- Platform Filtering - Filter by Nintendo, Sony, Sega, and many more
- Region Filtering - Find ROMs by region (US, EU, JP, etc.)
- Box Art Display - Visual browsing with cached cover art thumbnails
- Download Queue - Queue multiple downloads with concurrent download support
- Background Downloads - Downloads continue even when the app is in the background
- Pause & Resume - Pause downloads and resume them anytime, even after app restart
- ZIP Extraction - Automatic extraction of downloaded archives
- Library Management - Track all your downloaded ROMs in one place
- Platform Organization - Downloads automatically organized into platform folders
- Custom Download Paths - Set default or per-platform download locations
- Internet Archive Support - Login support for protected Internet Archive downloads
-
Download the latest APK from the Releases page.
-
Install the APK on your Android device.
- You may need to enable "Install from unknown sources" in your device settings.
-
Launch romgi and grant storage permissions when prompted.
-
Start browsing! Use the search bar and filters to find ROMs.
-
Tap on any ROM to view details and available download links.
-
Tap "Download" to add to your queue. Downloads will start automatically.
romgi uses a bottom navigation bar with four main sections:
| Tab | Description |
|---|---|
| Browse | Search and filter ROMs from the database |
| Downloads | View active, queued, and completed downloads |
| Library | Browse your downloaded ROM collection |
| Settings | Configure download paths, themes, and accounts |
By default, romgi saves downloads to a public folder accessible by any file manager and emulator:
/storage/emulated/0/Download/Roms/
├── snes/
├── n64/
├── psx/
└── ...
On first launch, you'll be prompted to grant storage permission ("Allow access to manage all files") to enable saving to this location.
You can customize this in Settings > Download Locations:
- Set a custom default download path
- Override paths for specific platforms (e.g., save PS1 games to a different SD card folder)
Some ROMs hosted on Internet Archive require authentication. To access these:
- Go to Settings > Accounts > Internet Archive
- Enter your Internet Archive credentials
- Protected downloads will now work automatically
Links requiring login are marked with a purple "Login Required" badge.
romgi supports all platforms available through the CrocDB database, including:
- Nintendo: NES, SNES, N64, GameCube, Wii, Game Boy, GBA, DS, 3DS, and more
- Sony: PlayStation, PS2, PSP, PS Vita
- Sega: Master System, Genesis/Mega Drive, Saturn, Dreamcast, Game Gear
- And many more: Atari, Neo Geo, TurboGrafx, and other retro platforms
- Flutter SDK (3.0 or higher)
- Android SDK with API level 24+ (Android 7.0+)
- Git
# Clone the repository
git clone https://github.com/caprado/romgi.git
cd romgi
# Get dependencies
flutter pub get
# Build debug APK
flutter build apk --debug
# Build release APK
flutter build apk --releaseThe built APK will be located at build/app/outputs/flutter-apk/app-release.apk.
- Minimum Android Version: Android 7.0 (API 24)
- Target Android Version: Latest stable
- Framework: Flutter/Dart
- Data Source: CrocDB
| Package | Purpose |
|---|---|
dio |
HTTP client with download progress |
sqflite |
Local SQLite database |
flutter_riverpod |
State management |
cached_network_image |
Box art caching |
archive |
ZIP extraction |
flutter_local_notifications |
Download notifications |
flutter_foreground_task |
Background downloads |
romgi is a tool for downloading content; it does not host any ROMs or copyrighted material. Users are responsible for ensuring they have the legal right to download any content. Similar to how torrent clients operate, the application itself is neutral regarding the content being downloaded.
- Data Source: CrocDB - ROM database API
- Inspiration: pkgi-psp, Kekatsu-DS
- Framework: Flutter
This project is open source. See the LICENSE file for details.
