Skip to content

release_2.8.0

Choose a tag to compare

@drpetersonfernandes drpetersonfernandes released this 28 Sep 00:32
· 34 commits to master since this release

2.8.0

The XISOSharp release. All XISO encoding, decoding, integrity testing, and exploration now
run in-process through the XISOSharp library.
The bundled extract-xiso.exe/xdvdfs.exe engines and the in-repo XDVDFS implementation were removed.

New Features

  • In-process XISOSharp conversion engine — XisoSharpService converts via XisoReader.Rewrite.
    Redump/XGD1/XGD2/XGD3 and hybrid partition offsets are auto-detected; video partitions, padding, and
    inter-file gaps are removed. Already-optimized images (optimized tag present) are skipped automatically.
  • XISOSharp integrity service — XisoIntegrityService performs a deep structural audit of the
    XDVDFS tree (XisoReader.AuditXiso) and reports per-entry issues, plus the optional sequential
    deep surface scan.
  • Explorer migrated to XisoExplorer — browsing, double-click to open, and drag-and-drop
    extraction now use XisoExplorer/ExplorerNode, with ordinal-ignore-case sorting.
  • Smaller distribution — extract-xiso.exe (40 KB) and xdvdfs.exe (3.6 MB) are no longer bundled.

Improvements

  • ARM64 CUE/BIN handling now matches the documentation — .cue/.bin inputs are skipped with a
    clear message on ARM64 (the bundled bchunk.exe is x64-only), instead of attempting to launch it.
    The ARM64 bundle therefore no longer ships bchunk.exe.
  • Output free-space and FAT32 4 GB limit pre-checks before conversion, with partial-output cleanup on failure.
  • Output integrity check (when enabled) validates the produced XISO before reporting success.
  • Device I/O errors (ERROR_IO_DEVICE and localized variants) stop the batch with a drive-health
    message and are excluded from automatic bug reports.
  • Locked archives are retried with exponential backoff (antivirus/download-client locks).
  • Cross-volume file moves fall back to copy + delete when a direct move fails.
  • Local file moves now use the same retry/backoff logic as network moves.
  • More languages in network/disk-space/device error detection (English, German, French, Spanish,
    Italian, and Czech device-not-ready from bug reports).

Bug Fixes

  • The main window is no longer delayed by drive probing — startup cleanup used to run before the
    window was shown; probing every drive with DriveInfo.IsReady can block for ~20 seconds while an
    idle/spinning disk wakes up, which made the app look like it never started. Cleanup now runs after
    the window is visible and off the UI thread (the same fix removes the pause before each batch, since
    the pre-operation cleanup shares the code path).
  • Cloud/OneDrive files keep their original name — when the source is a temporary working copy,
    the converted XISO is written using the original file name instead of the internal temporary name.
  • Skipped (already-optimized) inputs no longer delete an existing output file — the optimized
    check now runs before the output is touched.
  • Replace Originals no longer loses data on skipped conversions — .iso, archive, and CUE/BIN
    originals are deleted only when a converted file was actually produced. Cloud-backed originals are
    now deleted too (previously they were always kept, so Replace Originals silently did nothing for them).
  • Device I/O errors are no longer misclassified as network errors — localized "I/O device error"
    messages now fall through to the drive-health path instead of the network retry path.
  • Temp-folder cleanup failures no longer mask the original error — a folder that remains locked
    after all retries logs a warning instead of throwing from finally blocks.
  • The 7-Zip CLI fallback for unsupported ZIP compression honors cancellation — the shared async
    helper terminates the child process when the batch is cancelled.
  • FAT32 and access-denied move failures are reported with actionable guidance.
  • Better DirectoryNotFoundException/cloud-provider handling across conversion and extraction.

UI Changes

  • The Conversion Method radio buttons were removed; conversion is always performed by XISOSharp.
  • The Convert tab shows a Conversion Engine — Powered by XISOSharp panel with a link to the project.
  • About window, instructions, and links updated to the XISOSharp engine and the new repository URL.

Breaking Changes

  • extract-xiso.exe, xdvdfs.exe, the native XISO writer, and the in-repo XDVDFS parser were removed.
  • The application and test projects report version 2.8.0 (AssemblyVersion/FileVersion) so the
    update checker sees this release over 2.7.x. The file layout is otherwise the same.

Documentation

Internal

  • Added .editorconfig and enabled Meziantou/Roslynator analyzers on both projects; project builds
    with zero warnings.
  • Renamed services for clarity: ExtractFiles → FileExtractorService, MoveFiles → FileMoverService,
    Logger → LoggerService.
  • Consolidated interfaces: IXisoSharpService, IXisoIntegrityService; removed IExtractXisoService,
    IXdvdfsService, INativeIsoIntegrityService.
  • Test suite reorganized around the new services (XisoSharpServiceTests, XisoIntegrityServiceTests).

Full Changelog: release_2.7.1...release_2.8.0