·
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 Validatorin 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