Skip to content

Releases: purelogiccode/CHDMounter

release_1.2.0

Choose a tag to compare

@drpetersonfernandes drpetersonfernandes released this 08 Aug 21:37

⚠️ Breaking Change: Numeric Console Indexes Removed

Command-line console selection is now alias-only (/s:<alias>). Numeric indexes (/s:8) and bare numeric shorthand (CHDMounter.exe 17 game.chd) are no longer supported.

BeforeAfter

CHDMounter.exe /s:9 game.chd M:      →  CHDMounter.exe /s:ps2 game.chd M:
CHDMounter.exe 17 game.chd           →  CHDMounter.exe game.chd xbox360
CHDMounter.exe /l /s:4 game.chd      →  CHDMounter.exe /l /s:segadreamcast game.chd

If you have scripts using numeric indexes, update them to the new aliases (full list in the README's Console Type Reference, e.g. ps1, ps2, ps3, psp, xbox360, neogeocd, cuebin2352, cueisowav2352).


🚀 New Features

  • 37 console/format modes (up from 31) — the full console table plus dedicated 2352/2048-byte variants for every generic export format:
    • ISO RAW (2048/2352)
    • CUE/ISO (2048/2352)
    • CUE/ISO/WAV (2048/2352)
    • CUE/BIN (2048/2352)
    • CUE/BIN/WAV (2048/2352)
  • Alias-only console registry — console types now resolve exclusively through ConsoleTypeRegistry (single source of truth, case-insensitive, whitespace-trimmed), vendored from the VideoGameFileSystemParser library.
  • VideoGameFileSystemParser v1.1.0 vendored — the parser library is now built as a project in this solution instead of a NuGet reference, bringing in its export fixes (pregap shift, missing ISO audio in CUE/ISO export, truncated tracks, WAV exports skipping stored pregap silence).

🐛 Bug Fixes

  • Fixed wildcard enumeration on mounted virtual drives — Windows passes NT 8.3 DOS wildcard patterns (e.g. <.cue for *.cue); the old regex matcher silently returned no matches, so dir Z:\*.cue showed an empty folder. Replaced with a faithful port of Dokan's DokanIsNameInExpression supporting DOS wildcards (<, >, ") plus plain */?.
  • Fixed directory enumeration resume (WinFsp) — resuming an enumeration with . / .. markers previously ended the listing early.
  • Corrupt settings file no longer spams bug reports — an unreadable settings.dat was reported as a bug on every launch; it is now logged below the bug-report threshold and the corrupt file is deleted so the app recovers to defaults.
  • Test suite no longer pollutes the bug-report API — unit tests were sending real bug reports to the production endpoint; sending is now disabled in tests.
  • Mount reliability (Dokan & WinFsp):
    • An explicitly requested drive letter that is unavailable now falls back to an auto-assigned letter instead of failing.
    • WinFsp folder-mount collisions (STATUS_OBJECT_NAME_COLLISION, 0xC0000035 — e.g. a leftover mount folder) now retry with suffixed fallback folders (e.g. Game (2)).

🔧 Maintenance

  • Updated Meziantou.Analyzer to 3.0.141
  • New unit tests for FileNameMatcher DOS wildcard semantics (31 cases), console registry, corrupt-settings cleanup, and disabled bug reporting

Install

  • Dokan build: requires the Dokan driver
  • WinFsp build: requires WinFsp
  • Windows 10+ (x64 or ARM64), .NET 10 Desktop Runtime (self-contained builds ship their own)

Full Changelog: release_1.1.0...release_1.2.0

release_1.1.0

Choose a tag to compare

@drpetersonfernandes drpetersonfernandes released this 05 Aug 19:31

New: isoraw console type

Raw ISO passthrough for games that emulators expect as a single unparsed image:

  • PS3 (RPCS3) and Xbox (xemu) — the whole CHD is exposed as one image.iso file, no filesystem parsing
  • CLI alias: isoraw (e.g. CHDMounter.exe game.chd isoraw)
  • Numeric indexes: /s:11 (PS3 ISO Raw) and /s:18 (Generic ISO Raw)

More reliable mounting

  • When no mount point is given, the app now tries the next free drive letter (M–Q, then Z–D) if the first candidate is unavailable
  • Per-session and elevated-session drives are invisible to DriveInfo.GetDrives(), so a "free" letter can still be busy — the retry loop handles this instead of failing the mount
  • Failed mount attempts now clean up all resources (container, file system, host) correctly

Fixes

  • WinFsp variant: ChdFs.Dispose is now guarded against double-dispose on unmount
  • WinFsp variant: a busy/invalid mount point now triggers a retry with the next drive letter instead of failing immediately

Dependency updates

Package Version
Meziantou.Analyzer 3.0.139
QuestPDF (Tester) 2026.7.2
winfsp.net 2.1.25156 (stability pin)

Tests

635 unit tests passing, including new coverage for drive-letter selection.

release_1.0.0

Choose a tag to compare

@drpetersonfernandes drpetersonfernandes released this 27 Jul 05:02

Initial release to the public.

Requirements

  • Windows 10 or later (x64 or ARM64)
  • .NET 10.0 Desktop Runtime (or self-contained build ships its own)
  • Dokan Use latest version — install Dokany
    or
  • WinFsp Use latest version — download WinFsp

Only one driver is needed. The Dokan executable uses Dokan; the WinFsp executable uses WinFsp. Both ship side-by-side.

Full Changelog: https://github.com/drpetersonfernandes/CHDMounter/commits/release_1.0.0