Skip to content

v0.9.4-beta

Pre-release
Pre-release

Choose a tag to compare

@AverageConsumer AverageConsumer released this 20 Feb 00:26
· 107 commits to main since this release

๐Ÿš€ v0.9.4 Beta โ€” The "Command Center" Update

Note: This is a major architectural release. It transforms R-Shop from a simple downloader into a professional-grade management hub for Android-based retro handhelds. You might need to reinstall the app for all things to load properly!


โœจ Highlights

๐Ÿ–ฅ๏ธ RomM Command Center

A radically redesigned configuration screen. You can now monitor which console is linked to which server and synchronize credentials with a single click. No more "silent" auth failuresโ€”full transparency across all systems.

๐Ÿ” Global Search (Y-Button)

Search across all your connected systems simultaneously from the Home screen. Includes region flags, tag badges, and smooth gamepad navigation.

๐Ÿ›ก๏ธ Hardened Security & Stability

Critical fixes for Zip-Slip and Path-Traversal vulnerabilities. We've also implemented Atomic Config Saves to ensure your settings are never corrupted during a crash.


๐Ÿ“‚ Change Log

โž• Added

  • Global Search Activated ๐Ÿ”Ž | Cross-system search with region flags and tag badges.
  • Local-Only Mode ๐Ÿ“ | Consoles without a provider now show locally scanned ROMs with a banner hint.
  • FTP Download Progress ๐Ÿ“ˆ | Real-time per-chunk progress reporting.
  • Inactivity Watchdog ๐Ÿ• | 60-second stall detection with clear user error messages.
  • Gamepad Key Fix ๐ŸŽฎ | Intercepts mismatched logical keys for specific drivers (e.g., AYN Thor).
  • Provider Type Badges ๐Ÿท๏ธ | Visual indicators on version cards (RomM, SMB, FTP, WEB).
  • Sectioned Download Overlay ๐Ÿ“ฅ | Organized lists (Downloading / Queued / Complete) with ID-stable focus.

๐Ÿ”ง Improved

  • Settings Rework | Focus-aware glow borders and full D-pad navigation.
  • Safe Reset | "Reset App" moved to HUD (X-button) to prevent accidental wipes.
  • UI Polish | Compressed platform icons (-70% size) and context-sensitive empty states.
  • Network Resilience | Strict timeouts (15s-30s) on all provider calls to prevent app hangs.
  • Input Refinement | Shortcuts now ignore repeats to prevent accidental double-triggers.

๐Ÿ›ก๏ธ Security & Bug Fixes

  • Zip Slip & Path Traversal | Validated canonical paths and enforced safe basenames.
  • Atomic Writes | Config is written to .tmp before renaming to prevent corruption.
  • Race Conditions | Fixed Database initialization and AudioManager re-init loops.
  • Memory Hygiene | Resolved timer and connection leaks (Dio, FTP, Retry timers).
  • Focus Guards | Fixed focus "leaks" in search and download overlays.

๐Ÿ› ๏ธ Technical Internal

  • Database Migration: Schema v3 adds provider_config column support.
  • Immutability: DownloadItem is now fully immutable for predictable state management.
  • Controller Guards: Added disposed-guards to prevent memory-related crashes.

Full Changelog: v0.9.3-beta...v0.9.4-beta