Skip to content

๐Ÿš€ v1.4.0 โ€” The "Community Fixes" Update

Choose a tag to compare

@AverageConsumer AverageConsumer released this 06 Mar 15:16

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! ๐ŸŽฎ