¿Qué son los archivos CHD y cómo puedes usarlos?

Si te gusta el juego retro, es posible que te hayas encontrado con archivos con la extensión CHD. Estos archivos contienen pequeñas gemas que se utilizan para preservar y catalogar algunos de los juegos más antiguos que llegaron a las máquinas de arcade. Los archivos CHD suelen funcionar en conjunto con un emulador de máquinas de arcade de código abierto conocido como MAME, ¡pero no es su único uso!
Tabla de Contenidos
- ¿Qué son los archivos CHD?
- Comprobar el contenido del archivo CHD
- Convierte tus CHDs
¿Qué son los archivos CHD?
Conocidos como Compact Hunks of Data, estos archivos contienen el espectro completo de recursos utilizados en las máquinas de arcade más antiguas que son replicadas por un emulador conocido como MAME. Específicamente en MAME, estos archivos son réplicas completas del contenido de los discos duros encontrados en las máquinas de arcade. Esto explica por qué son tan grandes.
Más recientemente, los archivos CHD se han convertido en una alternativa de nicho a los archivos ISO o combinaciones BIN/CUE para emular grandes juegos que normalmente se ejecutaban en CD-ROMs. Esto incluye emuladores como algunos de los núcleos de Libretro de PlayStation en RetroArch y, por extensión, todas las populares distribuciones orientadas a la emulación para la serie de microcomputadoras Raspberry Pi.

Si tus CHDs son ROMs de MAME, necesitarán ser almacenados en una carpeta dentro del directorio de ROMs de MAME con el mismo nombre que un archivo zip que contiene el firmware real de la máquina de arcade que se está emulando. En Linux, el directorio de ROMs de MAME es generalmente ~/.mame/roms. En Windows, es la carpeta roms dentro del directorio en el que extrajiste MAME con el instalador portátil.

Si son copias de seguridad de juegos para la PlayStation original o alguna otra consola que utilizaba discos ópticos, deben ser colocados directamente en el subdirectorio de ROM del emulador.
En el caso de los emuladores de consola, los archivos CHD suelen contener todo el juego, por lo que puedes “abrirlos” en el emulador y comenzar a jugar. En MAME, sin embargo, solo son los recursos del juego, ya que MAME emula principalmente máquinas de arcade.
A diferencia de las consolas de juego, las máquinas de arcade desde mediados de los 80 en adelante generalmente tenían un perfil de hardware específico que les permitía ejecutar un solo juego. Casi universalmente seguían un modelo, donde todo el código de ejecución en un juego se almacenaría en un chip ROM, y todos los recursos visuales se almacenarían en un CD o, más comúnmente, en un disco duro.

MAME no puede abrir CHDs por sí solo debido a este modelo. Recuerda, son la parte del disco duro de las máquinas de arcade que habitaron. MAME debe abrir primero un archivo ROM que contenga el código de ejecución (casi universalmente un archivo zip). Buscará una carpeta con el mismo nombre que el archivo ROM y buscará el CHD allí. La estructura del directorio dentro de la carpeta ROMs, por tanto, debe verse así:
- juego - juego.chd
- juego.zip
Si solo tienes el archivo CHD, necesitarás encontrar el firmware correcto para el juego que funcione con la versión de MAME que estás usando.
Comprobar el contenido del archivo CHD
La mejor (y, hasta donde sabemos, única) herramienta para trabajar con archivos CHD proviene de su fuente, de MAME mismo. Se llama chdman. Dependiendo de tu configuración de MAME, ya está instalada o puedes instalarla:
En Ubuntu/Debian/Mint:
sudo apt install mame-toolsEn distribuciones basadas en Fedora/RHEL:
sudo dnf install mame-toolsEn Arch Linux:
sudo pacman -S mame-toolsDebería estar preinstalada en Windows. Se llamará chdman.exe dentro del directorio raíz de MAME.

Para verificar una imagen CHD y ver información sobre su estructura, usa:
chdman info -i NOMBRE_DE_IMAGEN.chdSi estás utilizando Windows, haz clic derecho en la carpeta raíz de MAME, selecciona Abrir en Terminal, y luego escribe:
.\chdman.exe info -i NOMBRE_DE_IMAGEN.chd
Convierte tus CHDs
Puedes usar la misma herramienta para extraer el contenido de un archivo CHD y para crear uno.
Convertir un CHD a un formato más accesible, como IMG para copias de seguridad de discos duros o una combinación BIN & CUE para copias de CD, solo tiene sentido si vas a usar esos archivos en un emulador diferente que no soporta el formato CHD. En el caso de archivos de imagen de disco duro, usa:
chdman extracthd -i ARCHIVO_IMAGEN.CHD -o ARCHIVO_SALIDA.IMGO para Windows:
.\chdman extracthd -i ARCHIVO_IMAGEN.CHD -o ARCHIVO_SALIDA.IMGPara copias de CD, reemplaza extracthd con extractcd en el comando anterior.
Si estás usando un emulador como PCSX ReARMed o Demul, RetroArch, o alguna distribución de emulador para tu Raspberry Pi, teóricamente, solo tienes que colocar tus archivos en la ruta de ROM del emulador para que detecte y los use.
Tu carpeta de ROMs puede verse caótica si contiene copias de seguridad de más de un juego que:
- Originalmente estaba en formato de CD
- Ahora está almacenado en combinaciones BIN & CUE
- Contiene múltiples pistas de audio
Con la combinación CUE & BIN, cada pista del CD original se guarda como un archivo BIN separado, por lo que un solo juego puede estar dividido en docenas de archivos.
El formato de archivo CHD fue creado como una forma más moderna de almacenar tales ROMs, sobresaliendo en todos los aspectos. Todo puede ser contenido en un solo archivo, y la compresión sin pérdidas se aplica inteligentemente dependiendo del contenido para obtener resultados óptimos. Por ejemplo, los datos típicos pueden ser comprimidos con el algoritmo zlib, pero las pistas de audio individuales se comprimen con Flac. Esto conduce a grandes tasas de compresión con cero pérdida de datos, ya que los tipos de compresión utilizados son “sin pérdidas”.
Para convertir un juego dividido entre un CUE y un montón de archivos BIN a un solo archivo CHD, usa:
chdman createcd -i"FILENAME.cue"-o"OUTPUT_FILENAME.chd"O en Windows:
.\chdman.exe createcd -i "FILENAME.cue"-o "OUTPUT_FILENAME.chd"Aunque puedes, no tienes que ajustar los parámetros de compresión: las opciones óptimas se elegirán automáticamente para ti. Durante la conversión, chdman mostrará, entre otra información, los diferentes tipos de compresión que utiliza en cada caso.

Después de que la conversión se complete, intenta cargar tu nuevo archivo CHD en el mismo emulador que usaste inicialmente para cargar ese juego. Si funciona, elimina los archivos originales y pasa al siguiente juego.

Cuando revises los archivos, puedes notar que el archivo CHD recién creado es significativamente más pequeño que los archivos BIN, IMG o ISO que convertiste, ya que muchos de estos ROMs contienen artefactos de los sistemas de juego para los que fueron diseñados y actúan como si ciertos bits de sus datos aún necesitaran ocupar ciertas posiciones en el disco. Dado que estás usando un emulador, la compresión se deshará de gran parte de esta hinchazón sin afectar la calidad general del contenido que disfrutas en él.
Si mantienes muchos juegos retro, al convertir los más grandes a formato CHD, al menos para los emuladores que lo soportan, puedes terminar ahorrando múltiples gigabytes de espacio, ¡gigabytes que luego podrías usar para almacenar aún más juegos retro! Si te gusta jugar juegos retro, aprende cómo retrocederlos a un estado anterior.
Todas las imágenes y capturas de pantalla por Miguel Leiva-Gomez.