Readers like you help support MUO. When you make a purchase using links on our site, we may earn an affiliate commission. Read More.

If you're collecting ROMs like Pokémon, you surely have noticed that the ones for newer platforms take up a significant chunk of your storage. A single game might require multiple gigabytes of storage. Keep over a dozen, and your ROM collection can quickly expand to many Terabytes. That's where the MAME project's CHDMAN tool can help.

Does your ROM collection contain arcade games or titles for consoles with optical media, like Sony's PlayStation? CHDMAN can compress them to CHD files that take up a fraction of a ROM's original size.

What's best is that many emulators support the CHD format. So, you can keep playing your ROMs without extracting or decompressing them. Let's see how.

What Is CHDMAN?

MAME's Compressed Hunks of Data (CHD) manager, or "CHDMAN" for short, allows you to store the files of a ROM in a single compressed archive. Apart from saving space, this can also simplify the management of multi-file ROMs, like optical media backups consisting of a game's data track and many more audio tracks for its music.

A key difference compared to typical archives produced by tools like 7-Zip and WinRAR is that CHDMAN's CHD files can be used without requiring decompression.

The two cons of the CHD format are that CHDMAN is a command line tool that you'll have to use by typing commands in the terminal and that not all emulators support the resulting CHD format. CHDMAN can only compress files with the following extensions:

  • CUE & BIN.
  • GDI.
  • ISO.
  • TOC.
  • NRG.
  • CDR.
  • IMG.

How to Compress Your ISOs With CHDMAN

CHDMAN is distributed with the MAME emulator. If you already use that, you'll find CHDMAN's executable in MAME's installation directory. If not, download the latest version of MAME from its official site and install it on your PC to also get CHDMAN.

To avoid typing the full path to CHDMAN every time you want to compress a ROM, add MAME's folder to your System Path variable. You can do this by using environment variables in Windows 10.

Open a File Explorer window (Windows Key + E) and, to keep things tidy, create a folder anywhere you wish, within which you'll do all CHDMAN-related file juggling.

Move the files of the ROM you want to compress to that folder. For this article, we'll use an original PlayStation backup stored in a CUE & BIN file combination.

A screenshot of a BIN and CUE ROM image from the File Explorer in Windows

Run Windows CMD or PowerShell. Then, move to the folder with your game's files with the Change Directory (CD) command:

 cd PATH_TO_FOLDER 

Our command was:

 cd "H:\Emulation\ROMs\PS1\Compress-to-CHD" 
A screenshot of the Change Directory command in Windows

To compress your game with CHDMAN to CHD format, use the following:

 chdman.exe createcd -i "ROM_YOU_WANT_TO_COMPRESS.CUE" -o "FILENAME_OF_COMPRESSED.CHD" 

Our command was:

 chdman createcd -i "MUO_PSX.cue" -o "MUO_PSX.chd"
A screenshot of the command to compress a ROM into CHD format using CHDMAN

This way, you can compress the ROMs of all the consoles that used optical media (CDs and DVDs) into the CHD format. However, there's a particular case we have to mention: hard disk images.

CHDMAN and the CHD format can also be used to store compressed HDD backups. Those may share the same extension with optical backups saved as BIN and IMG, but you have to use a tweaked version of the above command to compress HDDs to CHDs:

 chdman createhd -i "OLDPCback.img" -o "OLDPCback.chd" 

CHDMAN can also back up to the CHD format actual HDDs connected to the PC. That, though, should be rarely needed by the average user.

What Else Should You Know About CHDs?

Knowing how to compress your large ROMs to leaner CHD files is our target in this article. Still, the following might be helpful if you decide to use that file format for your emulated games.

Which Emulators Support CHDs?

Although CHD files are now considered a standard for storing optical media and HDD backups in a compressed emulation-friendly format, not all emulators support them.

DuckStation File Selector set to MAME CHD images

If you're looking for a CHD-compatible emulator then, luckily some of the most popular emulators support them. Here are a few examples of emulators that allow you to play CHDs:

  • MAME.
  • DuckStation.
  • Beetle PSX.
  • PCSX.
  • PCSX2.
  • DEmul.
  • lr-opera.
  • Reicast.
  • Flycast.
  • Redream.
  • Genesis Plus GX.
  • PicoDrive.

Because of how LaunchBox works and other front-end services you can use for emulation, like using RetroArch on Windows, CHDs should work on these services too.

How Can You Check Your CHDs?

CHDMAN isn't only a compression solution but, as its name states, a manager for CHD files. So, you can also use it to...

  • Get info about CHD files by using the chdman info -i "FILENAME.chd" prompt.
  • Check CHD files by using the chdman verify -i "FILENAME.chd" prompt.

Can You Decompress CHDs?

Decompressing CHDs is almost the reverse of how you compress them. Since the format supports optical media and HDD backups, you must customize the command you'll use according to the media you're dealing with.

A screenshot of the CHD Required category in the MAME emulator

CHDMAN can only extract optical media backups back to the CUE & BIN combination with:

 chdman.exe extractcd -i "INPUT.chd" -o "OUTPUT.cue" 

You don't have to specify the BIN file; CHDMAN creates it automatically using the same name used for the CUE file. To extract compressed HDD backups, swap "extractcd" with "extracthd" as follows:

 chdman.exe extracthd -i "INPUT.chd" -o "OUTPUT.IMG" 

More Storage, More Gaming

Compressing your emulators' ROMs with CHDMAN will give you back a significant amount of storage space. But there's also a major con.

Freeing up storage space means you can expand your ROM collection further. And that, in turn, translates to even more games in your backlog. With so many games a click away, having a CHDMAN equivalent that could compress and multiply our free time would be great.