Skip to content

release_2.2.0

Choose a tag to compare

@drpetersonfernandes drpetersonfernandes released this 13 Jan 01:55
· 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 single Game entry to contain multiple Rom elements.
  • 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 LoggerService for centralized error logging, replacing direct Console.Error calls.
  • Model Alignment: Updated Datafile, Game, Header, and Rom models 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 with static lambdas, and increased max sample length for XML sample reporting in bug reports.