github purelogiccode/BatchConvertToCHD release_3.3.0

latest releases: release_3.4.2, release_3.4.1, release_3.4.0...
19 days ago

Highlights

  • Non-ASCII cue sheets now convert correctly. Korean, Russian, and Japanese-named game files (e.g. 진설 사무라이 스피리츠 무사도열전.cue, Буря в пустыне-Vermilion Desert.cue) previously failed with couldn't find bin file because the cue text encoding was misdetected. The app now detects the real encoding (UTF-8, Shift-JIS, Korean CP949, Cyrillic CP1251, GBK, Latin-1 and more) by matching referenced file names against the actual files on disk.
  • MP3 audio tracks are handled automatically. Rips that use MP3 audio tracks (common in Neo Geo CD and older PS1 sets — Fatal Fury, King of Fighters, Metal Slug, Super Sidekicks, Silent Hill and friends) previously failed with Unhandled track type MP3. The app now decodes MP3 tracks to WAV before conversion using Windows Media Foundation.
  • bin-only archives convert without a cue. Archives containing only a .bin file now get an auto-generated single-track cue (MODE2/2352, with an automatic MODE1/2352 retry) instead of failing with "No supported primary files found in archive."
  • Smarter track-name resolution. Referenced files are resolved case-insensitively and zero-padding-tolerantly — a cue referencing (Track 02).bin finds (Track 2).bin on disk and vice versa.

Bug Fixes

CUE / TOC conversion failures ("couldn't find bin file")

  • Fixed the biggest failure cluster across all reports: cues whose text was not UTF-8, cues with unquoted/malformed FILE lines, and cues referencing files that differ only by case or zero-padding.
  • When a cue needs it, the app now builds a self-contained, ASCII-safe working set (canonicalized cue + all referenced files) before handing it to chdman — previously only the .cue file was copied, which guaranteed failure for non-ASCII names.
  • If a conversion still fails with couldn't find bin file, the log now lists the actual files present in the input folder so the problem is diagnosable at a glance.

MP3 audio track rejection

  • Unhandled track type MP3 failures are gone: MP3 tracks are decoded to 16-bit PCM WAV (NAudio / Media Foundation) and the cue is rewritten before conversion. WAVE and AIFF tracks are untouched (chdman already supports them).

Archives

  • No supported primary files found in archive. is resolved for bin-only archives (auto-generated cue, see Highlights).
  • Multi-part RAR archives with a missing volume now show a specific message telling you to download all parts, instead of a generic "corrupted or unsupported format" error.

Disc images

  • Non-sector-aligned images (corrupt/truncated .iso files) are flagged with a clear early warning. The app no longer waits for a full failed conversion to tell you the file is bad.

File deletion

  • "Failed to delete original file" reports are addressed: deletion now retries for up to ~45 seconds with backoff (handles transient locks from antivirus or Explorer), and the read-only attribute is cleared automatically when it blocks deletion.

Diagnostics & reporting

  • Disconnected network drives/shares (e.g. \\NAS\...) now produce a clear "network location unavailable" message instead of a generic file-access error.
  • Data-side failures (corrupt archives, missing RAR volumes, unavailable network locations, non-sector-aligned images) are no longer sent to the bug-report API — only genuine application errors are reported.
  • GitHub rate-limit responses during update checks are handled gracefully and no longer surface as bug reports.

Under the Hood

  • Encoding detection engine for cue/toc text: BOM → strict UTF-8 → legacy code pages, filtered to losslessly decodable candidates and scored by filesystem resolution.
  • Cue normalization pipeline: canonical UTF-8 rewrite (quoted FILE lines, resolved names, CRLF), used both before conversion and by the dependency validator, so valid cues are no longer rejected by a case-sensitive existence check.
  • Temporary-directory lifecycle hardening: work directories are guaranteed to be cleaned up on success, cancellation, timeout, and failure paths.
  • Retry semantics: deletion retries only on transient lock errors; permanent failures (e.g. access denied) fail fast.

Full Changelog: release_3.2.0...release_3.3.0

Don't miss a new BatchConvertToCHD release

NewReleases is sending notifications on new releases.