Skip to content

Melon-Bread/ChdWarrden

Repository files navigation

ChdWarrden 🗃️

License: GPLv3 Python 3.8+ Packaging: Briefcase Platform

Screenshot

A graphical interface for managing CHD files (Compressed Hunks of Data) using chdman from the MAME tools suite. Designed for retro gaming enthusiasts, archivists, and developers working with disc-based systems.

Version Note
This was last tested with mame0276 so not all features from future versions are implemented.


Features ✨

  • CHD Creation
    Convert raw images to CHD format for:

    • Hard Drives (createhd)
    • CDs (createcd)
    • DVDs (createdvd)
    • LaserDiscs (createld)
    • Raw sectors (createraw)
  • CHD Extraction
    Convert CHD files back to:

    • BIN/CUE, ISO, IMG, and raw formats
  • Verification & Metadata

    • Validate CHD integrity (verify)
    • Add/remove metadata tags (addmeta/delmeta)
    • Dump metadata to XML (dumpmeta)
  • Bulk Processing
    Batch convert entire directories of files with progress tracking

  • Template Support
    Predefined HD templates for common retro systems (CPS3, PS1, etc.)

  • Cross-Platform
    Works on Windows, macOS, and Linux

  • Automatic Tool Installation
    Platform-specific download prompts when chdman is missing


Installation 📦

Prerequisites

  • Python 3.8+
  • MAME Tools (for chdman in your PATH)

Quick Start

# Clone repo
https://codeberg.org/Melon-Bread/ChdWarrden

# Enter repo
cd ChdWarrden

# Install briefcase (can also use pipx here)
pip install briefcase

# Launch the program
briefcase run

You can also find what binary builds I am able to build in the releases.


Usage 🖱️

  1. Select Command
    Choose an operation from the dropdown (e.g., createhd, extractcd)

  2. Configure Parameters

    • Input/output paths
    • Set additonal command parameters as needed
    • Special flags (delete source, verbose mode)

    Compatibility Note
    I tried to properly map all the chdman commands/options to this front end, but since I do not use them all some may not work properly. Please submit an issue/merge request as needed.

  3. Run Operation

    • Single file processing
    • Bulk directory conversion (enable checkbox)
    • Real-time output in console
  4. Monitor Progress
    Progress bar updates during bulk operations


Command Reference 📖

It;s recomended that you checkout the MAME project's documentation on chdman for more info on each command.


Development 🛠️

Contributing

  1. Fork the repository
  2. Create feature branch
  3. Submit merge request
  4. Ensure code complies with GPLv3 license

License 📜

This project is licensed under the GNU General Public License v3.0 - see LICENSE for details.


Acknowledgments 🙏

  • MAME Development Team for chdman
  • PySide6 for the Qt framework bindings
  • Beeware for easy Python packaging