Conversion Methods
| Getting Started | Using the App | Technical Reference | Project |
|---|---|---|---|
| Home | Usage Guide | Architecture | Repository |
| Installation | Conversion Methods | XDVDFS Technical Docs | Building from Source |
| XISO Explorer | Troubleshooting & FAQ | Release Notes |
All conversion is performed in-process by the XISOSharp library, with CHDSharp handling CHD output. No external conversion binaries are required or bundled. The Convert tab can produce optimized XISO, compressed ZAR, compressed CSO, or compressed CHD output from the same packing pipeline.
How It Works
XISOSharp repacks the game partition into an optimized XISO:
- The XDVDFS volume descriptor is located (auto-detecting Redump/XGD partition offsets).
- The directory tree is read and the file data is copied into a new, tightly packed XISO.
- Gaps between files are removed, and the optimized tag is written so later runs can skip already-converted files.
What Gets Removed
- Video Partition (DVD movie/demonstration content) — ~7–387 MB removed
- End Padding (empty sectors after the last file) — variable
- System Update (optional, when Skip $SystemUpdate is enabled) — ~100–300 MB removed
Visual Comparison
Redump ISO (Original):
[Video Partition][XDVDFS: Header][Dir][File A][gap][File B][gap][File C][Padding]
XISOSharp Output:
[XDVDFS: Header][Dir][File A][File B][File C] (gaps removed, tightly packed)
^ ^ ^
Files repositioned for maximum compression
Features
- Smallest output size — files are packed tightly, with video partition and padding removed.
- No external tools — the conversion engines (XISOSharp and CHDSharp) ship inside the application.
- Redump-aware — automatically detects XGD1/XGD2/XGD3 and hybrid partition offsets.
- Already-optimized files are skipped — images carrying the optimized tag are not converted again.
- Optional
$SystemUpdateskipping for extra space savings — also honored for already-optimized inputs written as CSO/CHD (they are rewritten through the filter before packing). - Optional output integrity check — the new XISO is structurally audited before being reported as successful.
- Integrated with the application’s progress reporting, cancellation, and disk monitoring.
Output Formats
The Convert tab can produce four output formats from the same optimized packing pipeline:
| Format | Extension | Description |
|---|---|---|
| XISO (default) | .iso |
Optimized, tightly packed XISO image. Already-optimized inputs are skipped. |
| ZAR | .zar |
ZArchive: the game-partition file tree packed with pure-C# zstd (level 6, 64 KiB blocks, raw fallback for incompressible blocks). Byte-compatible with zarchive.exe/xboxkit, and Xenia canary loads it directly. |
| CSO | .cso |
CISO v2 (LZ4, byte-identical to xdvdfs compress), written as a single file. Redump/non-optimized inputs are first repacked to a temporary optimized XISO, then compressed. |
| CHD | .chd |
CHD v5 (Compressed Hunks of Data) written by CHDSharp with the chdman createdvd preset: 4096-byte hunks, 2048-byte units, and the lzma,zlib,huff,flac codec list. Redump/non-optimized inputs are first repacked to a temporary optimized XISO, then encoded with the DVD metadata tag; the output is deep-verified against every hunk checksum. |
Skip $SystemUpdate applies to all four formats: XISO, CSO, and CHD omit the folder during the rewrite, and ZAR excludes it from the archive tree. Check Output Integrity deep-verifies the newly created CHD (all hunks and hashes) and audits the newly created XISO; for ZAR/CSO, which cannot be read by the XISO auditor, the source image that is about to be packed is audited instead.
Archive Support
.zip, .7z, and .rar archives are processed transparently:
- The archive is extracted to a temporary folder (SharpCompress is used first; the bundled 7-Zip CLI handles complex
.7zarchives). - The first ISO inside is converted to the selected output format with XISOSharp/CHDSharp; additional ISOs, non-ISO images, and unsafe entries are reported as skipped.
- Temporary files are cleaned up.
Encrypted or password-protected archives are detected up front and skipped with a clear message. With Delete Originals enabled, an archive is deleted only when every entry was extracted and every extracted image was converted — skipped entries keep the archive.