Repository navigation
v1.4.1
·
51 commits
to main
since this release
CHDSharp v1.4.1
What's New
GD-ROM support is now complete
extractcdcorrectly handles Dreamcast GD-ROM Redump images (REM SINGLE-DENSITY / HIGH-DENSITY, 45000-frame boundary,has_physical_pregapfixup). Works for both GDI and CUE/BIN.- Per-track extraction now uses the correct mode automatically (
GDIvsCUEBINvsTOC).
Smarter copy and parent handling
copynow picks the right default codecs for each image type automatically (HD/DVD →lzma,zlib,huff,flac/ CD/GD →cdlz,cdzl,cdfl/ laserdisc →avhu), same aschdman.- Parent CHDs: hunk size is inherited from the parent when omitted, and mismatched sizes are rejected as expected.
Fixed
Hard disks (createhd / createraw)
createhd -i image.imgnow writesGDDDgeometry metadata — output is now byte-identical tochdman(was 51 bytes short).createhd --identnow correctly reads CHS from the ATA IDENTIFY data.- Blank hard disks now correctly require
-c none(was silently accepting compressed codecs). createhdnow validates interactions between-tp,-chsand-size/ parent images.createrawnow correctly requires--unitsizewhen no parent is given and validates hunk size (16 B – 1 MiB, multiple of unit size).listtemplatesnow shows all 17 templates (was missing 4 Quantum Fireball drives).
CD / GD-ROM extraction (extractcd)
extractcdnow defaults to cooked sectors (2048/2352 bytes, no subcode, audio byte-swapped) — now matcheschdman extractcdfor all 43 CDs + 3 GD-ROMs. Use--rawto keep 2448-byte raw frames.- Library
ExtractToDirectory(..., cooked: true)does the same — the defaultcooked: falseis kept for backward compatibility. - Large extractions now use a 32 MiB aligned buffer and correct audio byte-swap (CUEBIN always, GDI only for CHD v5+).
DVD
createdvd/BuildDvdMetadatanow writes an emptyDVDtag (length 0) instead of a0x00byte — matcheschdman.
Metadata
addmeta --valuetextno longer adds a trailing NUL (wastext+'\0', nowtext).
CLI — stricter, now matches chdman
- Unknown options, duplicate options and missing values now error correctly.
- Each command now only accepts its valid options (e.g.
createrawrejects-tp). -isb/-ish/-ib/-ihslicing now correctly rejects mixing bytes and hunks.10MBwith trailingBis now handled, and--sizeplain numbers are strict.
Diagnostics
info --verboseandverify --verbosenow show per-codec hunk stats (SELF/PARENT/MINIbuckets).- Progress now throttles to 0.5 s and errors go to
stderrasError: ....
Docs / Code quality
createcd -c cdzlon audio CDs is now documented: container bytes may differ due to FLAC subframe choice, but SHA-1 /verifyare identical.- Zero build warnings. Added
Meziantou.Analyzerto all projects.
Upgrade Notes
- No API break. Library code keeps compiling.
- CLI is now stricter. Scripts that passed invalid combos before (e.g.
createhdblank with-c zlib,extractcd -tp 1,--splitbinwithout%t) will now fail — same aschdman. Fix the flags. - Cooked vs raw: If you compared
ExtractToDirectoryoutput tochdman extractcd, passcooked: true.
Full Changelog: v1.4.0...v1.4.1