CHD Studio — Wiki

Welcome to the official wiki for CHD Studio, a high-performance cross-platform 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 four tabs: conversion, verification, extraction, Explorer; 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 What’s New Everyone The changelog for each release

🔑 Quick Facts

Fact Value
Application name CHDStudio
Latest version 3.9.0
Target framework .NET 10.0 (net10.0;net10.0-windows), Avalonia
Platform Windows 10 / 11 (x64 and ARM64); Linux and macOS from source
License GPL v3.0
Primary encoder chdman (MAME Project, 0.289), bundled as chdman.exe / chdman_arm64.exe on Windows; built-in CHDSharp on Linux/macOS
Fallback encoder Built-in CHDSharp encoder (CHDSharpLib NuGet 1.4.3, in-process) — always available, chdman byte-identical output
External tools needed None beyond the bundled chdman (Windows) and 7-Zip (7za on Windows, 7zz on Linux/macOS) — every input format is handled in-process
Output format .chd (Compressed Hunks of Data)
Logs %LocalAppData%\CHDStudio\logs
Screenshots %LocalAppData%\CHDStudio\screenshots (F8 hotkey; falls back to a screenshots folder next to the app)
Bug reporting Automatic, opt-out by design — sent to the PureLogicCode BugReport API

🗺️ Repository Layout

CHDStudio/
├── MDSSharp/                       # Alcohol 120% (.mds/.mdf) parsing library
├── CHDStudio/            # Avalonia application (net10.0;net10.0-windows)
│   ├── MainWindow.axaml(.cs)       # Main UI + conversion/extraction/verification logic
│   ├── App.axaml(.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
├── CHDStudio.Tests/        # xUnit test suite (1116 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_CHDStudio.sln    # Solution

🚀 Where to Start


← Back to the repository


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