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
- I just want to use the app Getting Started and User Guide
- I want to know what changed Whats New
- I want to build from source Getting Started Building from Source
- I want to understand the internals Architecture Conversion Pipeline
- I want to contribute or add tests Testing
This site uses Just the Docs, a documentation theme for Jekyll.