Bug Fixes
ToolTip/Popup crash on some Windows systems
Fixed the WPF-internal crash (FileNotFoundException from PopupSecurityHelper.ForceMsaaToUiaBridge) that occurred when a tooltip or popup tried to open on systems where the Windows accessibility bridge (MSAA → UIA) cannot be loaded — e.g. broken/missing UIAutomationCore.dll or third-party accessibility/security software. This was an OS-level condition the application cannot act on: the tooltip simply never appeared. It is now suppressed gracefully instead of being reported as an application crash.
chdman conversion failures now show the real error
When chdman rejected an input file it printed the actual cause before its generic Fatal error occurred: N exit summary — but the app only surfaced the last line. The error picker now skips the exit summary and reports the real cause, so the log tells you why a conversion failed (e.g. an unrecognized track type, a missing bin file, an unsupported format).
chdman fallback extraction
If the built-in CHD reader cannot decode a CHD — a corrupt file or an A/V (laserdisc) CHD (Dragon's Lair, Cliff Hanger, Mach 3, Firefox, Cube Quest, …) — the app now retries automatically with chdman instead of failing with a cryptic Failed to read hunk 0: Chderrdecompressionerror message:
- Disc CHDs fall back to
extractcd/extractdvd/extracthd(cue/bin, iso, img). - Laserdisc CHDs (no CD/DVD/HDD metadata) fall back to
extractld(AVI, MAME 0.285+) orextractraw(raw dump) on older chdman builds.
No more leftover temp files after failed extractions
Failed extractions no longer leave _extract_temp_* debris behind in your output folder. Leftover files are cleaned up automatically (locked files are skipped with a warning).
Quieter, more accurate bug reporting
Known user-data and environment conditions — corrupt files, chdman's own crashes and exit summaries, rate limits — no longer generate bug reports. CHDSharp and PBPSharp extraction failures are still reported, with debug details (file size, disc index/count, numeric error codes): both readers are under active development, and their extraction failures are exactly the signal needed to fix them.
Hardened PBP extraction (PBPSharp)
The built-in PBP (PlayStation EBOOT) reader received a robustness pass:
- Multi-disc header validation — the fixed magic values of the
PSTITLEIMG000000header are now checked, so corrupted/foreign multi-disc PBPs are rejected with a clear error instead of failing later with a vague one. - SFO validation — the SFO metadata magic is verified; a corrupt SFO region now reports
CorruptFileinstead of parsing garbage. - Empty ISO index — discs without ISO data (PSP applications, truncated files) are rejected cleanly instead of crashing with an out-of-range exception.
- Corrupt block lengths — negative/oversized index lengths can no longer crash the reader; they map to proper error codes.
- Read-only contract — the library's package description now states explicitly that it can open and extract PBP files but cannot create or modify them.
Maintenance
- Updated
Meziantou.Analyzerto 3.0.151 (build-time only, no runtime impact).
Tests
- 590 tests, all passing (new tests covering the error-line selection, extraction messages, chdman fallback command building, the refined bug-report filters, and the PBPSharp validation/error paths).
Full Changelog: release_3.4.1...release_3.4.2