.CHD

CHD File

MAME Compressed Hunks of Data
Ask a question
QUICK ANSWER

A CHD file is a MAME Compressed Hunks of Data image - a compressed container for arcade hard disk, CD-ROM, DVD, or LaserDisc dumps. You load it in MAME or RetroArch rather than opening it like a document, or convert it back to CUE/BIN or ISO with the free chdman tool. The file carries SHA-1 hashes, so MAME detects any corrupt or wrong-revision copy before it runs.

Developer: MAMEdev (the MAME project) Category: Disk Image Files Open standard MIME: application/octet-stream
OPENS ON Windows macOS Linux Android
Related: .BIN · .ISO · .MDF · .DMG

On this page

19k+ extensions indexed
Last reviewed Jun 23, 2026

Not sure what your file is?

Drop any file into our identifier - we read just the first bytes to name the format.

Identify a file

What is the CHD file format?

.chd - short for Compressed Hunks of Data - is a binary disk-image container developed by the MAME project. It stores arcade machine hard disks, CD-ROMs, DVDs, and LaserDisc media in a compressed form that emulators can stream efficiently.

The format divides the source media into fixed-size units called *hunks*. Each hunk is compressed independently, so the emulator decompresses only the hunk it needs rather than the entire image. Up to four compression codecs can be active in a single file: Deflate (cdzl), LZMA (cdlz), custom Huffman (huff), and FLAC (cdfl) for CD audio tracks. A typical .chd is 30-60 % smaller than the equivalent .iso or .cue+.bin source.

Every .chd begins with the 8-byte magic string MComprHD at file offset 0, followed by a big-endian header that records:

  • format version (v4 or current v5)
  • active codec list and total uncompressed size
  • SHA-1 hashes of both the raw data and the full file

MAME validates both hashes at load time and rejects images whose hash does not match its database entry.

The chdman command-line tool, bundled with MAME, creates, verifies, and converts .chd files. Conversion back to a .bin raw image is fully lossless. Re-archiving a .chd inside a ZIP saves negligible space and breaks emulator detection, so it is discouraged.

Security & safety

RISK: LOW

CHD is inert image data with no executable code, and it carries SHA-1 hashes so a tampered or corrupt file is detected on load. The practical caution is legal, not technical: distributing or downloading CHDs of copyrighted games is usually piracy - dump discs you own with chdman. Avoid shady "CHD converter" websites that bundle adware; chdman from mamedev.org is free.

Format details

in a nutshell
FULL NAMEMAME Compressed Hunks of Dataaka Compressed Hunks of Data, MAME CHD disk image
DEVELOPERMAMEdev (the MAME project)since 2002 (MAME, originally for hard-disk-based arcade games)
MIME TYPEapplication/octet-stream
TYPECompressed disk/CD/DVD/LaserDisc image (proprietary binary container)
STANDARDOpen · royalty-free
MAGIC BYTES · FILE SIGNATURE
OFFSET
0001020304050607
HEX
4D436F6D70724844
ASCII
MComprHD
8-byte tag at offset 0, followed by big-endian header length and version (4 = v4, 5 = v5).

Programs that open CHD files

Windows3 apps
MAME Open-source Place the .chd in the game's ROM folder (often a subfolder named after the game) and launch that game in MAME.
RetroArch Open-source Load the .chd with a disc-capable core (MAME, Beetle PSX, Flycast, etc.) via Load Content.
chdman (MAME tools) Open-source Run 'chdman extractcd -i game.chd -o game.cue' to convert back, or 'createcd' to make a CHD. Free CLI bundled with MAME.
macOS2 apps
OpenEmu Open-source Add the .chd to your library for the appropriate core; supports MAME and several disc systems.
MAME Open-source Install via Homebrew or the official build; place the .chd in the game folder and launch the game.
Linux2 apps
MAME Open-source Install MAME (most distro repos), drop the .chd into the game's folder, and run the game.
RetroArch Open-source Load the .chd through a MAME or disc-system core.
Android1 app
RetroArch Open-source Install from Play Store/APK, then load the .chd with a MAME or disc core.

Technical details

deep spec
Magic bytesMComprHD (8 ASCII bytes) at file offset 0, followed by a 4-byte big-endian header length
Byte orderBig-endian
EncodingBinary
Container structureHeader → hunk map → per-hunk compressed data blocks → tagged metadata records
Compression codecsUp to four simultaneous codecs per file: Deflate (cdzl), LZMA (cdlz), Huffman (huff), FLAC (cdfl) for CD audio
Hunk sizePower-of-two byte count fixed at creation time (typically 4 KB - 512 KB); uniform for every hunk in the file
Integrity checksumsSHA-1 of raw uncompressed content + SHA-1 of the complete CHD file, both stored in the header; MAME enforces both at load time
Media typesHard-disk images, CD-ROM, DVD, LaserDisc, and raw sector media
Metadata blocksTagged key-value records embedded after the hunk map: CD track layout, HDD geometry, drive identity strings
Typical compression ratio30-60 % smaller than an equivalent ISO or CUE+BIN source
DeveloperMAMEdev (the MAME project)
Supported platformsWindows, macOS, Linux, Android
Lossless round-tripchdman can reconstruct the exact original ISO, BIN, GDI, or raw image with no data loss
Format versionsv4 and v5 in common use; version encoded as a 4-byte big-endian integer immediately after the magic tag
Released2002 (MAME, originally for hard-disk-based arcade games)
Latest versionCHD v5 (current header/map format)
Open standardYes · royalty-free
Specificationdocs.mamedev.org

CHD conversions

Community Q&A

asked by users
Ask a quick question
Get help from people who work with CHD files. Be specific - include your system and software version.
No account needed · answers usually within a day

No questions yet - be the first to ask about CHD files.

Frequently asked questions

How do I open a CHD file?
Load it in MAME (place it in the game's ROM folder) or in a MAME/disc-capable RetroArch core. To get the original disc back, convert it with the free chdman tool.
How do I convert a CHD back to CUE/BIN or ISO?
Use chdman (bundled with MAME): 'chdman extractcd -i game.chd -o game.cue' produces CUE+BIN; 'extracthd' produces a raw disk image.
How do I make a CHD from CUE/BIN or ISO?
Run 'chdman createcd -i game.cue -o game.chd' (or createdvd/createhd). RetroArch's command-line and some front-ends wrap this too.
Why does MAME say my CHD is bad or wrong?
MAME checks the CHD's SHA-1 against its database. A mismatch means the file is corrupt, the wrong revision, or not the exact dump MAME expects for that game.
Is CHD smaller than ISO or CUE/BIN?
Usually yes - CHD compresses each hunk and often saves 30-60% versus an uncompressed ISO or BIN, while staying losslessly convertible back.
Can a regular archive tool open a CHD?
No. CHD is not a ZIP/7z archive; it has its own hunk format. Use chdman or an emulator, not WinRAR/7-Zip.

References

1MAME Documentation - chdman (CHD File Manager)docs.mamedev.org
2MAME source - chd.h (CHD v5 header/map format)github.com

Keep exploring

across the database

Top extensions this week

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.NOMEDIAAndroid No-Media Marker File
4.PARTPartial Download File
5.EXEWindows Executable (Portable Executable)
6.DATProgram Data File (generic)
7.BINCD/DVD Disc Image (BIN/CUE)
8.MDMarkdown Document
9.TMPTemporary File
10.DBSQLite Database File

Related extensions

.BINCD/DVD Disc Image (BIN/CUE)
.ISOISO disc image (ISO 9660 / UDF)
.MDFMedia Descriptor File (Alcohol 120% / DAEMON Tools disc image)
.DMGApple Disk Image
.NRGNero Burning ROM Disc Image
.TIBAcronis True Image Backup

Free file tools

An in-browser file identifier and image converter - everything runs on your device.

Open the toolbox

Browse file extensions A-Z