RetroStash is an Android application designed for retro gaming enthusiasts and archivists. It transforms your handheld into a Personal Digital Preservation System, allowing you to browse, acquire, and safeguard digital artifacts with professional-grade integrity.
- Careful Caretaker Philosophy: RetroStash now acts as a guardian. It detects issues and proposes repairs rather than making destructive changes automatically.
- ArtifactLocation System: Decoupled file paths from artifacts. Track your collection across NAS, SD Cards, and Local Storage with a single unified view.
- Preservation Lock: Secure your most important archives with
ARCHIVE_LOCKEDstatus, preventing any accidental deletion, replacement, or modification. - Proposal-Based Repair: If corruption is detected, RetroStash generates a Repair Proposal with confidence scores and specific strategies (Replace, Restore, Relink, Merge).
- Safety Staging & Backups: All repairs are first verified in a
.stagingarea and backed up with a JSON metadata manifest before the original file is touched. - Maintenance Hub: A new dashboard visualizing Library Health (physical condition) vs. Preservation Confidence (provenance and trust).
- Smart Maintenance Worker: A multi-level background worker (Health -> Duplicates -> Repairs) that respects device state (Charging, WiFi, Idle).
- SDK 37 Upgrade: Modernized build configuration for the latest AndroidX support while maintaining compatibility with Android 8.0+.
- Artifact Intelligence: Understands what your files are, not just where they are. Uses fingerprints and metadata to manage your archive logically.
- Integrity Verification: Automatic checksum monitoring and verification history for every component in your library.
- Advanced Discovery: Search Archive.org using a category-aware engine and specialized Lucene query builders.
- Handheld Optimized: Native support for portrait phones and landscape consoles (like the RG556/Odin 2) with 2-column grid layouts.
- Robust Import Pipeline: Handles Zips, 7z, and Rar archives with automatic extraction or safe-move fallbacks.
- Metadata & Provenance: Generates
gameList.xmland maintains internal provenance records for long-term archival trust.
- Android device running Android 8.0 (API level 26) or higher.
- Launch the app and go to Settings.
- Select your Library Root (SD Card or Local).
- (Optional) Configure Storage Types (NAS/SD) to help the Deduplication Engine select the best "Master" copies.
- Language: Kotlin 2.0+
- UI Framework: Jetpack Compose (Adaptive Layouts)
- Database: Room (with v3 Location-Decoupled Schema)
- Architecture: MVI / Clean Architecture with Preservation-First Design
- Target SDK: 35 (Compile SDK 37)
This project is licensed under the MIT License - see the LICENSE file for details.