release_2.4.0
·
55 commits
to master
since this release
This release marks a significant milestone in the evolution of ROM Validator, focusing on architectural stability, performance optimizations, and enhanced support for the No-Intro ecosystem.
馃攳 Enhanced Validation & DAT Support
- SHA256 Support: Full integration of SHA256 hashing for No-Intro XML DATs, including parsing, indexing, and multi-hash verification.
- Improved Format Detection: Advanced scanner to proactively identify and reject incompatible formats (ClrMamePro text, MAME XML, HTML, and ZIP) with descriptive user notifications.
- Smart File Renaming: New option to automatically rename local files to match DAT entries when hashes match but filenames differ.
- Internal Archive Renaming: Added support for renaming files inside ZIP archives to ensure full collection compliance.
- Multi-ROM Support: Improved handling of game entries containing multiple ROM files.
馃殌 Performance & Reliability
- Library Migration: Replaced
SevenZipSharpwith SharpCompress, enabling native support for Zip, 7z, and RAR without requiring external 7z DLL dependencies. - Async Architecture: Fully migrated to
OpenArchiveandOpenEntryStreamAsyncAPIs for non-blocking I/O. - UI Responsiveness:
- Implemented background file counting for dynamic, accurate progress bar updates.
- Added UI virtualization (limiting displayed logs to 500 items) to prevent lag during large scans.
- Offloaded DAT serialization to background threads.
- Thread Safety: Integrated
Interlockedcounters and thread-safe buffers for UI updates.
馃搨 Collection Management
- Permanent Deletion: Added a safety-confirmed option to permanently delete failed or unknown files from the disk.
- Sequential Processing: Switched to a robust sequential processing model to prevent race conditions during file move/rename operations.
- ZIP Fallback: Added a fallback extraction mechanism for ZIP files using incompatible compression methods.
馃捇 System & UX
- Centralized Logging: Introduced
LoggerServicefor standardized error and activity logging. - Automatic Bug Reporting: Integrated
BugReportServiceto automatically capture and report application exceptions for faster troubleshooting. - Modern Standards: Updated codebase to .NET 10 and C# 14, utilizing
GeneratedRegexand other modern language features.
Note: This version exclusively supports No-Intro XML DAT files. Users attempting to load ClrMamePro or MAME-specific DATs will be notified to download compatible XML files from the No-Intro website.