Skip to content

release_2.8.0

Latest

Choose a tag to compare

@drpetersonfernandes drpetersonfernandes released this 05 Aug 17:13
· 4 commits to master since this release

New Features

  • Fluent Dark Theme — the UI is now built on WPF-UI with a professional Windows 11-style dark theme: a cohesive color palette (one blue accent, semantic green/red, neutral grays), dark ListView/GridView styling, and redesigned headers, buttons, and stat cards.
  • Screenshot Capture (F8) — press F8 anywhere in the main window to save a PNG screenshot of the app to %LOCALAPPDATA%\ROM Validator\Screenshot (works even when installed under Program Files).
  • App Data Button — the new App Data button (top-right, next to About) opens %LOCALAPPDATA%\ROM Validator in Explorer. Both the rolling logs (Logs\) and screenshots (Screenshot\) now live there, so you can find and share them in one click.
  • Binary DAT Detection — if you accidentally select a disc image, ROM, archive, or other binary file as a DAT, the app now recognizes common signatures (NES, CHD, 7z, RAR, GZIP, ZIP, PNG, PDF, RIFF) and shows a clear "incompatible file format" message instead of an XML parsing error.
  • Large Archive Streaming — archive entries larger than 256 MB are now extracted to a temporary file instead of memory, eliminating out-of-memory crashes on big ROM sets.
  • User-Error Classification — corrupt archives, cloud-only placeholder files, and locked files are now flagged as user-file errors: shown to you in the UI, but no longer sent to the developer as bug reports.

Improvements

  • Serilog Logging — replaced the hand-rolled logger with Serilog (Debug + daily rolling file sink, 7 days retained). Errors and exceptions are automatically forwarded to the bug-report service with full environment details, with recursion protection so logging failures can never cascade.
  • Smarter Temp-Directory Cleanup — deletion now retries with exponential backoff (up to ~22 s), falls back to individual file deletion after a forced GC, and then schedules background retries every 30 s until the folder is gone. No more "Failed to delete temp directory" errors when a file is momentarily locked.
  • Bug-Report Noise Reduction — network/connectivity failures during the update check, and errors caused by the user's own files, are no longer reported as application bugs.
  • Reliability Hardening — every user-facing action (navigation, browsing, cancel, reset, window close) is wrapped with error handling so a single failure can never take down the app; services are disposed in a safe order on shutdown.
  • Version Check Tuning — HTTP errors and timeouts during the update check are handled gracefully and never crash startup.

Testing

  • Added 104 unit and integration tests covering: hash calculation against known vectors (CRC32/MD5/SHA-1/SHA-256), empty/large/cancelled file scenarios, DAT model serialization, GitHub release parsing, bug-report payloads, logger behavior, and a regression test for temp-directory cleanup while a file is locked.
  • Test SDK updated to 18.8.1.

Technical

  • Upgraded dependencies: WPF-UI 4.3.0, Serilog 4.4.0, SharpSevenZip 2.0.109.
  • Built with .NET 10.0, targeting Windows x64 and ARM64.

Full Changelog: release_2.7.1...release_2.8.0