github AverageConsumer/R-Shop v1.4.0
🚀 v1.4.0 — The "Community Fixes" Update

latest releases: v1.7.0, v1.6.0, v1.5.2...
5 months ago

First community-driven release — fixing bugs reported by users, plus performance improvements across the board.

Highlights

  • 3DS ROM support expanded — .cci, .cxi, and .app formats now recognized alongside .3ds and .cia.
  • RomM Switch downloads fixed — Games served as ZIP archives by RomM are now correctly detected and extracted via Content-Disposition header parsing.
  • Faster home screen — Carousel animations scoped per-item instead of globally, reducing unnecessary widget rebuilds.
  • Smarter sync errors — Failed sources are now tracked individually with specific messages instead of a generic "Offline" banner.

Change Log

Fixed:

  • 3DS extension support — added .cci, .cxi, and .app ROM formats (thanks @yangeric! #1)
  • RomM Switch downloads — games served as ZIP archives are now correctly detected and extracted (thanks @gulasch! #2)
  • Deleted games now immediately disappear from the game collection instead of lingering until the next background refresh

Improved:

  • Home carousel performance — AnimatedBuilder now wraps individual items instead of the entire PageView
  • Game list performance — favorites provider uses selective watch to avoid rebuilding when unrelated favorites change
  • Visible systems query — single batch query replaces N individual database calls
  • Sync error reporting — per-system failure tracking with specific error messages ("2 sources unavailable")
  • Library screen — setEquals guard prevents unnecessary rebuilds when installed files haven't changed
  • Thumbnail migration — batch size increased from 3 to 15 (capacity guard handled by ThumbnailService)
  • Memory — gameMetadataProvider now auto-disposes when detail screen is closed

Internal:

  • DatabaseService.deleteGame() for targeted cache entry removal
  • DatabaseService.systemsWithCache() for batch system presence checks
  • LibrarySyncState.failedSystems replaces single error string with per-system failure map
  • 170+ new database upsert tests
  • Updated sync and onboarding tests

Thanks to @yangeric and @gulasch for the first community bug reports — your detailed reports made tracking these down easy. Keep them coming! 🎮

Don't miss a new R-Shop release

NewReleases is sending notifications on new releases.