Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

drpetersonfernandes/BatchConvertToCHD

Open more actions menu

Repository files navigation

Platform: Windows .NET 10.0 License: GPL v3 GitHub release

Batch Convert to CHD

Batch Convert to CHD is a high-performance Windows desktop utility designed to streamline the conversion of various disk image formats into the Compressed Hunks of Data (CHD) format.

Batch Convert to CHD Screenshot Batch Convert to CHD Screenshot Batch Convert to CHD Screenshot

🚀 Key Features

💻 Modern Side-by-Side Dashboard

  • Dual-Pane Interface: View your settings and file list on the left, while monitoring real-time process logs on the right.
  • Interactive File Selection: Automatically scans folders and allows you to manually pick exactly which files to process via a detailed file list.
  • Optimized File Loader: Utilizes a chunked loading strategy to maintain UI responsiveness even when scanning directories with thousands of files.
  • Resizable Layout: Includes a built-in grid splitter to adjust the balance between the file explorer and the terminal view.

💻 Multi-Architecture Support

  • Native ARM64 & x64: Automatically detects your system architecture and utilizes the appropriate chdman binaries for conversion for maximum efficiency.
  • Optimized Performance: Leverages native instructions on ARM64 hardware to reduce overhead during heavy compression tasks.

🛠️ Intelligent Conversion & Extraction

  • Automated Batch Processing: Convert entire directories of disk images with real-time progress monitoring and immediate cancellation response.
  • Recursive Structure Preservation: Maintains your original directory hierarchy in the output folder when processing subfolders.
  • Robust Extraction: Supports extracting CHD files back to .cue (CD), .iso (DVD), .gdi (Dreamcast/Naomi), and .img (HDD) with intelligent metadata auto-detection using the CHDSharp library.
  • Archive Integration: Transparently handles .zip, .7z, and .rar archives, extracting and processing contents automatically while respecting cancellation tokens. Includes a 7za.exe fallback for .7z files that SharpCompress cannot extract.
  • CSO Decompression: Built-in support for .cso and .ciso (Compressed ISO) files via the CSOSharp library (supports deflate/zlib and LZ4).
  • PBP Extraction: Convert PlayStation Portable .pbp files to CHD format via the PBPSharp library.

✅ Integrity, Safety & Verification

  • Safe Deletion: Source files (and their dependencies like .bin, .sub, etc.) are only deleted if the conversion/extraction is confirmed successful.
  • Batch Verification: Validate the checksums and structural integrity of existing CHD files using the CHDSharp library.
  • Automated Organization: Optionally move verified or failed files into dedicated subfolders (Success/Failed) while ignoring these special folders during subsequent scans.
  • Cleanup: Automatically removes empty subdirectories left behind after files are moved or deleted.
  • Dependency Protection: Performs a critical dependency check on startup to notify you if required components (like chdman.exe, needed for conversion) are missing.

📊 Performance & UI

  • Real-time Telemetry: Monitor disk write/read speeds and elapsed time during operations.
  • Optimized Logging: High-performance logging system with automatic truncation to keep the application responsive during long-running tasks.
  • WPF-UI Theming: Modern dark-themed UI powered by WPF-UI with Mica backdrop, rounded corners, and native Windows 11 aesthetics.

🔄 Updates & Stability

  • Automatic Update Checks: Notifies you immediately if a newer version is available on GitHub at startup.
  • Automated Bug Reporting: Built-in error reporting system helps improve the application by automatically sending crash reports (no personal data collected).

📂 Supported Formats

Category Formats
Standard Images .iso, .cue (+.bin), .img, .raw, .toc
Console Specific .gdi (Dreamcast), .pbp (PlayStation)
Compressed .cso (Compressed ISO)
Archives .zip, .7z, .rar
Output .chd (Compressed Hunks of Data)

🛠️ Technical Logic

The application implements priority-based logic to ensure compatibility:

  1. DVD Images (.iso): Defaults to createdvd.
  2. Multi-track Images (.cue, .gdi, .toc): Defaults to createcd.
  3. Hard Disk Images (.img): Defaults to createhd unless an accompanying .cue file is detected, in which case createcd is used.
  4. Raw Data (.raw): Defaults to createraw.
  5. PlayStation PBP (.pbp): Extracts to CUE/BIN using PBPSharp, then converts to CHD using createcd.

Note: Users can manually override these settings via the UI to force specific modes (except for PBP which always extracts first).


💻 Requirements

  • Operating System: Windows 10 / 11 (x64 or ARM64)
  • Runtime: .NET 10.0 Desktop Runtime
  • Bundled Dependencies:
    • chdman.exe / chdman_arm64.exe (MAME Project — conversion only)
    • 7za.exe / 7za_arm64.exe (7-Zip fallback extraction)
  • Library Dependencies:
    • WPF-UI (v4.3.0) — Modern Fluent Design theming and controls
    • CHDSharp (v1.2.0) — Pure C# CHD reading, verification, and extraction
    • CSOSharp (v1.0.0) — Pure C# CSO/CISO decompression (deflate + LZ4)
    • PBPSharp (v1.0.0) — Pure C# PBP extraction and SFO parsing
    • SharpCompress (v0.50.0) — Archive extraction support
    • Serilog (v4.4.0) — Structured diagnostic logging

📥 Installation

  1. Download the latest binary from the Releases page.
  2. Extract the contents to a permanent folder.
  3. Important: Ensure all .exe files (including ARM64 variants) remain in the same directory as BatchConvertToCHD.exe.
  4. Launch the application.

📖 Usage

The application also accepts a folder path as a command-line argument to quickly populate the source directory:

BatchConvertToCHD.exe "C:\ROMs\MyGames"

Conversion Workflow

  1. Navigate to the Convert to CHD tab.
  2. Select your Source Folder (containing images or archives).
  3. Select your Output Folder.
  4. (Optional) Check "Process smaller files first" to sort by file size.
  5. (Optional) Check "Force CD" or "Force DVD" to override automatic command detection.
  6. (Optional) Set a time limit per file to abort conversions that exceed the specified duration.
  7. (Optional) Enable "Delete original files" to clean up source data after a successful conversion.
  8. Click Start Conversion.

Extraction Workflow

  1. Navigate to the Extract CHD Files tab.
  2. Select your Source Folder (containing .chd files).
  3. Select your Output Folder.
  4. Choose the desired output format (Auto-detect, CD .cue, DVD .iso, Dreamcast .gdi, HDD .img).
  5. (Optional) Enable "Include subfolders" to process nested directories.
  6. (Optional) Enable "Delete original CHD files" to clean up after successful extraction.
  7. Click Start Extraction.

Verification Workflow

  1. Navigate to the Verify CHD Files tab.
  2. Select the folder containing your .chd files.
  3. Configure folder organization options (Success/Failed folders).
  4. Click Start Verification.

🤝 Contributing & Support

If you encounter issues or have feature requests, please use the GitHub Issues tracker.

Support the Project: If this tool saves you time, consider supporting further development:


📜 License

This project is licensed under the GNU General Public License v3.0. See the LICENSE.txt file for details.

Acknowledgements:

  • MAME Team for chdman.
  • CHDSharp by Gordon Jefferyes — Pure C# CHD read-only library supporting V1-V5, all 10 codecs, parent/child chaining, and parallel verification.
  • WPF-UI by lepoco — Modern Windows 11 Fluent Design theming and controls.
  • CSOSharp by PureLogicCode — Pure C# CSO/CISO decompression library.
  • PBPSharp by PureLogicCode — Pure C# PlayStation PBP extraction library.
  • SharpCompress for archive handling.
  • Serilog for structured logging.
  • Igor Pavlov for 7za.exe (7-Zip command-line tool).

Developed by Pure Logic Code

About

Windows frontend for CHDMAN. A Windows desktop utility for batch converting various disk image formats to CHD (Compressed Hunks of Data) format and for verifying the integrity of existing CHD files.

Topics

Resources

Stars

Watchers

Forks

Releases

Sponsor this project

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.