RetroAchievements Enhancements
- Emulator Auto-Configuration: Streamlined setup process with automatic configuration for retroarch
- UI Localization: Comprehensive localization support across all RetroAchievements interfaces
- Messaging: Enhanced error and success feedback for better user experience
Microsoft Store Game Scanning
- User Verification Window: New interface for confirming detected games
Error Handling & Robustness
- Win32Exception Handling: Improved support for application control policies
- PowerShell Restrictions: Better handling of execution policy limitations
- File Lock Management: User-friendly prompts for locked file scenarios
- Download Resilience: Enhanced retry mechanisms for download and extraction operations
Localization & UI Improvements
- Full Localization: Extended support across multiple windows:
- GlobalStatsWindow
- RetroAchievementsForAGameWindow
- FavoritesWindow
- FilterMenu
- Dynamic Resources: Refactored UI text to use dynamic resource binding
- Consistent Styling: Updated button styles in EasyModeWindow
Performance & Thread Safety
- Cancellation Tokens: Integrated across asynchronous operations for better responsiveness
- Thread Safety: Added explicit locks to critical sections (SettingsManager, search results)
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:
ScanSteamGames
ScanEpicGames
ScanGogGames
ScanMicrosoftStoreGames
ScanAmazonGames
ScanBattleNetGames
ScanHumbleGames
ScanItchioGames
ScanRockstarGames
ScanUplayGames
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
ShowExtractionFailedMessageBoxAsync for manual intervention
- Game launching error handling: Refined in
GameLauncher, adding .URL validation, protocol checks, and a new ShowCustomMessageBox for detailed notifications
- UIPI exceptions: Gracefully handled in
GamePadController with refined error logging
4. UI/UX Improvements
- Introduced a new global
RetroAchievementsWindow for 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