github AverageConsumer/R-Shop v0.9.6-beta
🚀 v0.9.6 Beta — The "Smart Scan" Update

latest releases: v1.7.0, v1.6.0, v1.5.2...
pre-release4 months ago

Note: This release adds smart local scanning, a revamped onboarding flow with auto-detection, and cache-first game loading for instant list display. Upgrading from <= 0.9.3 still requires a fresh install.

Highlights

  • Scan Library — Full-library scan from Settings with animated per-system progress, game count badges, and a completion summary showing total games discovered across all consoles.
  • Smart Onboarding — Local Setup now auto-detects existing ROM folders at common paths. Choose to scan a found folder, create standard folders with a system picker, pick an existing folder manually, or skip for later.
  • Cache-First Loading — Game lists load instantly from local cache, then silently refresh from remote providers in the background. The UI only updates if the list actually changed.
  • Expanded ROM Support — 27 systems, 200+ file formats. Added support for GameCube (ISO/GCM/CISO), Wii (WBFS/WIA/CISO), PS2 (CSO), PS3 (PKG), and many more across all systems.
  • Library-Based Search — Y button on home now navigates directly to Library with search open, replacing the standalone global search overlay.

Change Log

Added:

  • Scan Library screen — Settings entry opens animated console grid with per-system scan progress and result badges.
  • Smart onboarding auto-detection — detects ROM folders at /storage/emulated/0/ROMs, /Roms, /roms with scan, create, or pick options.
  • Cache-first game list loading with silent background refresh and filename-diffed updates.
  • Offline indicator — amber "Offline — cached data" toast when sync fails; sync badge shows failure state.
  • Provider reordering — D-pad or arrow buttons to change provider priority in console config.
  • Test & Save — single button press tests provider connection and auto-saves on success.
  • User Guide (docs/USER_GUIDE.md) — comprehensive 582-line guide covering all features, controls, and troubleshooting.

Improved:

  • ROM format coverage expanded across 10+ systems (GameCube, Wii, PS2, PS3, PSP, Mega Drive, Dreamcast, Saturn, Arcade, N64, SNES).
  • Isolate-based local scanning — filesystem scanning offloaded to a Dart isolate for smoother UI.
  • Library sync freshness — 5-minute cache prevents redundant re-syncs; clearFreshness() forces refresh after config changes.
  • Sync now covers local-only systems, not just remote ones.
  • Batched install-status checks (20-game parallel batches).
  • Games with no region/language metadata now pass through filters instead of being excluded.
  • Console grid shows blue folder badge for local-only systems (distinct from green provider checkmark).
  • Post-settings navigation re-syncs config and clears freshness.
  • Library installed detection matches extracted ROM files (e.g., Game.zipGame.iso).

Bug Fixes:

  • GameDetail variant index clamped to valid range (prevents crash on variant list changes).
  • Search overlay focus handling improved.

Technical Internal:

  • GlobalSearchOverlay removed (675 lines) — replaced by Library with openSearch: true.
  • RepoManager and RomHeaderParser removed (no longer needed).
  • archive dependency removed from pubspec.yaml.
  • GameMergeHelper extracted for dedup logic (remote-vs-local merge, archive expansion, multi-file detection).
  • SystemModel gains archiveExtensions, allRomExtensions, allGameExtensions, and isGameFile().
  • Unused providers cleaned up from app_providers, config_providers, download_providers.
  • LibrarySyncService extended with discoverAll(), isFresh(), hadFailures state.

Don't miss a new R-Shop release

NewReleases is sending notifications on new releases.