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 removalDatabaseService.systemsWithCache()for batch system presence checksLibrarySyncState.failedSystemsreplaces 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! 🎮