BatchConvertToCHD Wiki

Welcome to the official wiki for Batch Convert to CHD, a high-performance Windows desktop utility for converting disk images into the Compressed Hunks of Data (CHD) format.

This documentation covers the project from both a user and a developer perspective: features, workflows, architecture, services, utilities, embedded libraries, testing, and troubleshooting.

Documentation Index

# Page Audience Contents
1 Project Overview Everyone What the app does, key features, supported formats, content-based routing, technical logic
2 Getting Started Users & devs Requirements, installation, building from source, command line usage
3 Architecture Developers Solution layout, projects, dependency graph, startup sequence, data flow
4 User Guide Users The three workflows: conversion, extraction, verification; options and hotkeys
5 Conversion Pipeline (Technical) Developers Content resolution, per-format routing, chdman wrapper, cue normalization, ISZ/ECM/Alcohol/split sets, error handling
6 Extraction & Verification (Technical) Developers CHD extraction internals, verification, file moves, partial-extraction handling
7 Services Reference Developers ArchiveService, UpdateService, StatsService, FileWatcherService, AppHttpClient, more
8 Utilities Reference Developers PathUtils, CueNormalizer, CueWorkDirectory, GameFileParser, BinCueGenerator, content detection, ISZ/ECM/Alcohol, more
9 Bug Reporting System Developers Bug report API contract, sink, exclusion patterns, environment details
10 Embedded Libraries Developers CCDSharp, CSOSharp, PBPSharp, MDSSharp, ISZSharp: purpose, API, integration
11 Testing Developers Test project layout, coverage by file, integration tests, how to run
12 Application Data Users & devs AppData layout: logs, screenshots, temp directories, cleanup
13 Troubleshooting Users & devs Common errors, their meaning, and how to resolve them
14 Whats New Everyone The changelog for each release

Quick Facts

Fact Value
Application name BatchConvertToCHD
Latest version 3.8.0
Target framework .NET 10.0 (net10.0-windows), WPF
Platform Windows 10 / 11, x64 and ARM64
License GPL v3.0
Primary encoder chdman (MAME Project, 0.289), bundled as chdman.exe / chdman_arm64.exe
Fallback encoder CHDSharp (PureLogicCode), bundled as CHDSharp.exe / CHDSharp_arm64.exe chdman byte-identical output
External tools needed None beyond the bundled CHDSharp, chdman and 7za every input format is handled in-process
Output format .chd (Compressed Hunks of Data)
Logs %LocalAppData%\BatchConvertToCHD\logs
Screenshots %LocalAppData%\BatchConvertToCHD\screenshots (F8 hotkey)
Bug reporting Automatic, opt-out by design sent to the PureLogicCode BugReport API

Repository Layout

CSharp_BatchConvertToCHD/
 MDSSharp/                       # Alcohol 120% (.mds/.mdf) parsing library
 BatchConvertToCHD/              # WPF application (net10.0-windows)
    MainWindow.xaml(.cs)        # Main UI + conversion/extraction/verification logic
    App.xaml(.cs)               # Startup, Serilog, exception handlers
    AppConfig.cs                # Central configuration constants
    Models/                     # FileItem, GitHubRelease, PbpExtractionResult
    Services/                   # Archive, BugReport, FileWatcher, Stats, Update, ...
    Utilities/                  # PathUtils, CueNormalizer, GameFileParser, ...
        Ecm/                    # in-process ECM decoding
 BatchConvertToCHD.Tests/        # xUnit test suite (896 tests)
 CCDSharp/                       # CloneCD (.ccd/.img/.sub) parsing library
 CSOSharp/                       # CSO/CISO decompression library (deflate + LZ4)
 PBPSharp/                       # PlayStation PBP extraction + SFO parsing library
 ISZSharp/                       # UltraISO ISZ decompression library
 docs/                           # This wiki
 References/                     # Third-party reference sources (not part of the build)
 CSharp_BatchConvertToCHD.sln    # Solution

Where to Start


Back to the repository


This site uses Just the Docs, a documentation theme for Jekyll.