Skip to content
Peterson Fernandes edited this page Aug 22, 2026 · 2 revisions

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: 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

πŸ”‘ Quick Facts

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

πŸ—ΊοΈ Repository Layout

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

πŸš€ Where to Start


← Back to the repository

Clone this wiki locally