Skip to content

v1.4.2

Choose a tag to compare

@drpetersonfernandes drpetersonfernandes released this 29 Aug 19:17
· 38 commits to main since this release

What's New in CHDSharp

Final chdman parity gaps closed — battle 2907/2907

  • LZMA byte-parity hash-update-order bug fixed (c470879): raw encoding now replicates chd.cpp's 256-hunk compression work buffer (RingBufferedRawReader) — ring slots past EOF keep stale bytes from the previous 128-hunk batch and the raw SHA-1 folds only valid bytes, exactly like m_compsha1.append(dest, numbytes). Also touches FlacLpcMath, LzmaEncoder and the FLAC encoder for byte-exact output.
  • createhd size / CHS quirks (e4f3735): size parsing now matches chdman.cpp:2035 (sscanf("%I64u") reads leading digits only, so "512K" = 512 bytes) and small sizes are rounded up to the guessed CHS product (guess_chs parity), including the IDENT/GDDD wide-CHS case.
  • Laserdisc AVI byte-parity (e4f3735): AviWriter output is now byte-identical to chdman createld/extractld.
  • Strict info/verify options (e4f3735): full-argument option validation (duplicate -i/--input detection, per-command option sets), info returns exit code 1 on failure, verify parity with chdman's report_error handling.
  • DVD metadata empty payload (c470879): DVD_METADATA_TAG written with zero-length payload per chdman.
  • CLI exit codes (c470879): failure paths now return chdman-consistent non-zero exit codes.
  • Test fixes in CHDSharpEncoderTest/CHDSharpTest accompany the parity work.
  • Missmatch.md replaces the deleted divergency.md and records the battle result: 2907 checks — 2907 passed, 0 failed against MAME 0.289.

CLI improvements

  • createraw now also accepts --hunk-size / --unit-size aliases alongside --hunksize / --unitsize / -hs / -us (ea375e1).
  • extractcd filename template %t regex fixed (named capture groups; escaped %% handling) (ea375e1).
  • hash command help corrected: --result text|json|sfv and --tracks flags (ea375e1).
  • createhd geometry override via LogicalLengthBytes for byte-parity encoding of over-/under-sized sources (c470879).

Build & tests

  • CHDSharpBattleTest multi-targets net8.0;net9.0;net10.0 with LangVersion=latest and copies the built CLI into its output for self-contained battle runs (e4f3735).
  • Analyzer warnings silenced (MA0008 StructLayout, unused-variable suppressions) (aaad13d).
  • Formatting and style pass across CLI, encoder, and vendored codecs (2e3a1e9, b858192).

Documentation

  • New CLI command reference: docs/cli-commands.md (413 lines) plus expanded CHDSharpCli/README.md — full chdman/CHDSharp argument tables for every command (2bef641e).
  • CHD format history added to docs/chd-format.md; language simplified and stale DVD metadata notes corrected (d208521).
  • Wiki home page (docs/README.md) rewritten with CHD history; ReleaseNotes added to sidebar and _config.yml (ff51e98).
  • Docs site URL fixed to the GitHub repository (3dedc71).
  • Peterson Fernandes added to key contributors across all docs (dfb74b7).