Major Overhaul: Microsoft Windows Game Scanning & Enhanced Error Handling
Introduces a major overhaul of Microsoft Windows Game scanning, significantly enhancing error handling, and refining the user interface.
Key Changes
1. Game Scanning Refactoring & Expansion
The monolithic GameScannerService was broken down into modular, platform-specific classes:
ScanSteamGamesScanEpicGamesScanGogGamesScanMicrosoftStoreGamesScanAmazonGamesScanBattleNetGamesScanHumbleGamesScanItchioGamesScanRockstarGamesScanUplayGames
This adds support for new platforms and improves existing scanning logic with:
- Better filtering
- DLC detection
- Executable identification
- Icon extraction heuristics
2. API-based Artwork Download
A new API integration (GameImageClient) was added to download game artwork for Microsoft Windows Games, with robust fallback mechanisms to local icon extraction if the API fails.
3. Enhanced Error Handling & Robustness
- Long path support: Implemented
\\?\prefix for reliable file and directory operations across services - Download and extraction error handling: Including retry logic, disk space checks, user cancellation management, and a new
ShowExtractionFailedMessageBoxAsyncfor manual intervention - Game launching error handling: Refined in
GameLauncher, adding.URLvalidation, protocol checks, and a newShowCustomMessageBoxfor detailed notifications - UIPI exceptions: Gracefully handled in
GamePadControllerwith refined error logging
4. UI/UX Improvements
- Introduced a new global
RetroAchievementsWindowfor user profiles and unlocks - Automated first-run game scanning for Microsoft Windows games
- Updated menu structures, replacing dynamic headers with static strings for consistency
- Added a new SupportOptionWindow for AI-based troubleshooting and developer contact
5. Binary & Dependency Updates
Updated various external tools:
- RetroGameCoverDownloader
- GameCoverScraper
- BatchConvertToCHD
6. Code Cleanup & Localization
- Cleaned up unused code
- Updated localization strings across all supported languages