Releases: purelogiccode/SimpleXisoDrive
Release list
SimpleXisoDrive 1.3.0
What's New in 1.3.0 (since 1.2.0)
Prepared for the release_1.3.0 tag. Framework-dependent win-x64 and win-arm64 builds require
the .NET 10.0 Runtime (the base runtime; the Desktop Runtime also works but is not required).
This release adds ZArchive (.zar) mounting, CISO (.cso) image support, moves all XDVDFS parsing
to the XISOSharp 1.2.0 library, modernizes ZArchive reads on ZArchiveSharp 1.3.0, and adds
CI plus a tag-driven release pipeline.
Mounting
- ZArchive support.
.zarfiles mount directly: directory-tree archives expose the stored game
files, and an archive holding a single XISO image mounts that image. Content is read on demand
through a zstd block cache; nothing is extracted to disk. - CISO support. Compressed
.csoimages mount like plain ISOs, including split.1.csopart
sets; the resolver recognizes.csoand treats a numbered part set as a single image. - Renamed archives still mount. A valid ZArchive with any extension (including
.iso) falls
back to the archive path when the XISO probe fails. - ZArchiveSharp 1.3.0 reader API. Node-handle enumeration (
TryGetDirEntry), canonical names
(TryGetNodeName), computed volume size (TotalUncompressedSize), seekable entry streams
(OpenRead), shared-read opens, and typedZArchiveOpenFailurereasons in error messages.
XISO parsing
- Parsing delegated to XISOSharp 1.2.0. The in-repo parser (
IsoSt,VolumeDescriptor,
FileEntry,XisoFsFileAttributes) was removed. Path-based images use a keep-openXisoExplorer
with a shared read/write handle; images embedded in archives use theXisoReaderstream APIs. - Rebuilt sector-0 images are detected alongside the standard sector-32 layouts (plain, GLOBAL,
XGD3, XGD2 hybrid, XGD1), and the app reports the library's parsed attributes, size, and creation
time.
Reliability
- Truthful I/O errors. Locked or unreadable images now surface the real
IOException; only
format failures are reported as "not a valid image". ZArchive open failures keep their type
(missing file, access denied/read error, invalid path, or bad format). - No handle leaks. The embedded-ISO probe disposes the archive reader when the probe itself
errors, and the probe stream on a failed validation. - Directory walks use XISOSharp's hardened TOC traversal: cycle detection, per-table entry limits,
and rejection of separator-bearing names. - Reads are clamped to each entry's size, never the image length.
- Every Dokan operation still contains failures, logs them, and returns an error status instead of
propagating. - The shared console key-press watcher no longer swallows the key meant for an error prompt.
- The bug report / stats API key is no longer stored in plain text: it is double-encrypted in the
assembly (AES-256-CBC over a SHA-256 XOR layer) and decrypted once at startup.
Tests
- The suite grew from 43 to 89 tests.
XisoVfsVolumeTreeTestscovers multi-file and nested images, empty files/directories, reads
across sector boundaries, clamped reads, attribute mapping, descriptor FILETIMEs, and parallel
reads in path and stream modes.XboxIsoVfsDokanTestsexercises the Dokan operation layer directly withMockDokanFileInfo—
volume information,./..listings, wildcard filtering,CreateFile/ReadFilesemantics, path
normalization, and read-only denials — with no Dokan driver installed.ResolveImagePathTestsandVfsContainerTestscover.csoresolution (including split sets),
locked/missing images, andApiKeyProviderTestsverifies the decrypted key without storing it.TestImageFactorynow builds arbitrary nested trees (withTestImageEntry) for standard
sector-32 and rebuilt sector-0 layouts.
CI and releases
.github/workflows/ci.ymlbuilds and tests every push/pull request tomasteron
windows-latestand uploads TRX results plus Cobertura coverage..github/workflows/release.ymlruns onrelease_*tags: it verifies the tag against
<AssemblyVersion>, runs the suite, publishes framework-dependent single-file executables for
win-x64andwin-arm64, packs each asrelease_<version>_<rid>.zipcontaining only
SimpleXisoDrive.exe, and creates the GitHub release.- The workflow can also be dispatched manually to produce the same zips as artifacts.
Docs
- Updated
ReadMe.mdwith a CI badge and the building guide; refreshed Architecture,
Virtual File System, XDVDFS Format, Glossary, Testing, Troubleshooting, Contributing, and Release
History for the library-based architecture and the new pipeline.
Full Changelog: release_1.2.0...release_1.3.0
release_1.2.0
Bug Fixes
- Fixed XGD3 and XGD1 ISO support - Large Xbox ISOs (7+ GB, XGD3 format) and GLOBAL format ISOs are now correctly recognized. Previously only standard Xbox and XGD1 dual-layer ISOs were supported, causing "Volume descriptor not found" errors on many game dumps. (Fixes #57179)
- Resilient volume descriptor parsing - Invalid FileTime values at non-standard offsets no longer crash the volume descriptor reader. The parser now gracefully handles corrupt metadata and continues searching other offset locations.
New Features
- Directory auto-resolution - Passing a directory path instead of an ISO file now automatically resolves to the single
.isofile inside it. Useful for drag-and-drop scenarios where the user points to a folder containing one ISO. - Improved error hints - When a directory path is provided, the error message now suggests specifying a
.isofile directly.
Internal
- Added test project (
SimpleXisoDrive.Tests). - Removed redundant
BugReport.LogErrorAsynccalls from volume descriptor parsing.
Full Changelog: release_1.1.0...release_1.2.0
release_1.1.0
New Features
- Green CRT Theme: Added a retro-style green CRT color theme to the console interface for a nostalgic look while managing your XISO files.
Improvements
-
Enhanced ISO File Resolution: Improved the logic for resolving and validating ISO file paths, providing better support for various input formats and relative paths.
-
Better Dokan Detection: Refined the Dokan library detection with clearer error messages. The application now specifically handles
DllNotFoundExceptionand provides detailed guidance when the Dokan runtime or driver is missing. -
Strengthened Binary Tree Safety: Enhanced the binary tree traversal algorithm with improved cycle detection and stack-based iteration for safer and more reliable file system operations.
-
Improved Error Diagnostics: Volume descriptor parsing now provides more detailed error information when encountering invalid or corrupted XISO images.
Bug Fixes
- DllNotFoundException Handling: Added specific exception handling when
dokan2.dllfails to load, with user-friendly instructions on how to resolve the issue.
Internal Improvements
- Enhanced logging capabilities across all services
- Improved error reporting and fatal exception handling
- Better file write locking mechanisms in the error logger
- Streamlined command-line argument processing
release_1.0.3
- Refactor exception handling for InvalidImageException
- Add command-line hint for file paths