release_2.2.0
·
82 commits
to master
since this release
Enhanced No-Intro DAT compatibility and overall robustness. Key changes include:
- Archive Support: Added support for extracting and processing multiple ROMs from archive files (e.g., .zip, .7z) during DAT generation.
- No-Intro DAT Generation: Refactored DAT generation to group and aggregate ROM files by
GameName, aligning with the No-Intro DAT format, allowing a singleGameentry to contain multipleRomelements. - Robust DAT Validation: Greatly enhanced DAT file parsing with stricter No-Intro XML validation, detection of incompatible formats (like ClrMamePro text), detailed error handling, and file previews for improved debugging and bug reporting.
- Comprehensive Hash Checking: Modified hash validation logic to ensure all provided hashes (SHA1, MD5, CRC32) must match for a ROM to be considered valid, and provides detailed mismatch reasons.
- Performance & Stability: Improved UI update performance during hashing via batching, and implemented more robust cancellation token handling across validation and generation processes.
- Centralized Logging: Introduced a
LoggerServicefor centralized error logging, replacing directConsole.Errorcalls. - Model Alignment: Updated
Datafile,Game,Header, andRommodels to strictly adhere to the No-Intro XML DAT schema, removing MAME-specific attributes and adding No-Intro relevant ones (e.g.,Category,Date,Retool,Status,Serial). - Bug Fixes: Corrected an out-of-bounds error in CRC32 computation logic and enhanced filename sanitization using compiled regular expressions.
- Minor Improvements: Replaced collection initializations with
new()syntax, enhanced LINQ withstaticlambdas, and increased max sample length for XML sample reporting in bug reports.