-
-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Peterson Fernandes edited this page Aug 22, 2026
·
2 revisions
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.
| # | 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: 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 |
| Fact | Value |
|---|---|
| Application name | BatchConvertToCHD |
| Latest version | 3.4.2 |
| Target framework | .NET 10.0 (net10.0-windows), WPF |
| Platform | Windows 10 / 11, x64 and ARM64 |
| License | GPL v3.0 |
| Primary binary |
chdman (MAME Project), bundled as chdman.exe / chdman_arm64.exe
|
| External tools needed | None beyond the bundled 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 |
CSharp_BatchConvertToCHD/
βββ 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
β βββ Isz/ # in-process ISZ decompression
β βββ Mds/ # Alcohol 120% .mds/.mdf support
βββ BatchConvertToCHD.Tests/ # xUnit test suite (777 tests)
βββ CCDSharp/ # CloneCD (.ccd/.img/.sub) parsing library
βββ CSOSharp/ # CSO/CISO decompression library (deflate + LZ4)
βββ PBPSharp/ # PlayStation PBP extraction + SFO parsing library
βββ docs/ # This wiki
βββ References/ # Third-party reference sources (not part of the build)
βββ CSharp_BatchConvertToCHD.sln # Solution
- I just want to use the app β Getting Started and User Guide
- 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