release_2.6.0
·
31 commits
to master
since this release
🔍 Duplicate ROM Detection
- Automatically identifies duplicate ROM files (same hash, different filenames)
- New Duplicate Files Window displays duplicate groups with SHA256 hashes
- Duplicate files are moved to
_duplicatefolder during validation - Added "Duplicates" counter to validation statistics
📂 Enhanced Archive Support
- Automatically renames files inside archives to match DAT specifications
- RAR archives are converted to ZIP format when internal files need renaming
- Improved error handling for corrupted or damaged archives
🛡️ Strict No-Intro Validation
- Requires ALL hashes present in the DAT to match (strict No-Intro compliance)
- Warns about DAT files containing filename collisions (same filename, different hashes)
📝 Comprehensive Documentation
- Added extensive XML documentation to all public classes and methods
- Improved code readability and maintainability
🔄 Async Method Standardization
- Renamed async event handlers to follow
*_ClickAsyncnaming convention - Updated XAML event bindings for consistency
🧹 Code Cleanup
- Removed obsolete ExceptionHandler service
- Simplified BugReportService API payload structure
- Added global cancellation token support for application shutdown
🗂️ Archive Processing
- Fixed archive extraction error handling with specific exception types
- Improved error messages for corrupted archives
- Fixed buffer overflow in CRC32 algorithm
🔍 Validation Logic
- Fixed hash matching logic for strict No-Intro validation
- Enhanced error handling for "destination already exists" scenarios
🖥️ UI Improvements
- Added new UI styles for duplicate warning windows
- Fixed status bar update methods with async support
🔧 Service Architecture
- Moved ApplicationStatsService to centralized initialization
- Improved LoggerService exception formatting
Full Changelog: release_2.5.0...release_2.6.0