Qu'est-ce que les fichiers CHD et comment pouvez-vous les utiliser ?

Un jeu fonctionnant à partir d'un fichier CHD avec son ROM accompagnant approprié.

Si vous êtes fan de jeux rétro, vous avez peut-être rencontré des fichiers avec une extension CHD. Ces fichiers contiennent généralement de petites merveilles utilisées pour préserver et cataloguer certains des plus anciens jeux à avoir fait leur apparition dans les salles d’arcade. Les fichiers CHD fonctionnent généralement en tandem avec un émulateur de machine d’arcade open-source connu sous le nom de MAME, mais ce n’est pas leur seule utilisation !

Table des matières

  • Qu’est-ce que les fichiers CHD ?
  • Vérifier le contenu des fichiers CHD
  • Convertir vos CHD

Qu’est-ce que les fichiers CHD ?

Connus sous le nom de Compact Hunks of Data, ces fichiers contiennent l’intégralité du spectre des ressources utilisées dans les anciennes machines d’arcade, qui sont répliquées par un émulateur appelé MAME. Plus précisément dans MAME, ces fichiers sont des répliques complètes du contenu des disques durs trouvés dans les machines d’arcade. C’est pourquoi ils sont si volumineux.

Plus récemment, les fichiers CHD sont devenus une alternative de niche aux fichiers ISO ou aux paires BIN/CUE pour émuler de grands jeux qui fonctionnaient traditionnellement sur CD-ROM. Cela inclut des émulateurs comme certains des cœurs Libretro de PlayStation dans RetroArch et, par extension, toutes les distributions orientées émulation populaires pour la série de micro-ordinateurs Raspberry Pi.

Un fichier CHD dans son dossier approprié pour MAME.

Si vos CHD sont des ROM MAME, ils devront être stockés dans un dossier au sein du répertoire des ROM MAME avec le même nom qu’une archive zip contenant le firmware réel de la machine d’arcade émulée. Sous Linux, le répertoire des ROM de MAME est généralement ~/.mame/roms. Sous Windows, c’est le dossier roms dans le répertoire dans lequel vous avez extrait MAME avec l’installateur portable.

Une flèche pointe vers le dossier ROMs dans une installation MAME sous Windows.

S’il s’agit de sauvegardes de jeux pour la PlayStation originale ou toute autre console ayant utilisé des disques optiques, ils doivent être placés directement dans le sous-répertoire ROM de l’émulateur.

Dans le cas des émulateurs de console, les fichiers CHD contiennent généralement l’intégralité du jeu, vous pouvez donc “les ouvrir” dans l’émulateur et commencer à jouer. Dans MAME, cependant, ce ne sont que les ressources du jeu, car MAME émule principalement des machines d’arcade.

Contrairement aux consoles de jeu, les machines d’arcade des années 80 et au-delà avaient généralement un profil matériel spécifique qui leur permettait de faire fonctionner un seul jeu. Elles suivaient presque universellement un modèle, où tout le code d’exécution d’un jeu serait stocké dans une puce ROM, et tous les éléments visuels seraient stockés soit sur un CD, soit, plus communément, sur un disque dur.

Structure de fichiers MAME, fichiers CHD dans les dossiers de l'image.

MAME ne peut pas ouvrir les CHD par eux-mêmes à cause de ce modèle. Rappelez-vous, ils sont la partie disque dur des machines d’arcade dont ils proviennent. MAME doit d’abord ouvrir un fichier ROM contenant le code d’exécution (presque universellement un fichier zip). Il recherchera un dossier portant le même nom que le fichier ROM et cherchera le CHD à l’intérieur. La structure des répertoires dans le dossier ROMs doit alors ressembler à ceci :

  • jeu - game.chd
  • game.zip

Si tout ce que vous avez est le fichier CHD, vous devrez trouver le firmware correct pour le jeu qui fonctionne avec la version de MAME que vous utilisez.

Vérifier le contenu des fichiers CHD

Le meilleur (et, d’après ce que nous savons, le seul) outil pour travailler avec les fichiers CHD provient de leur source, de MAME lui-même. Il s’appelle chdman. En fonction de votre configuration MAME, il est soit déjà installé, soit vous pouvez l’ajouter :

Sur Ubuntu/Debian/Mint :

sudo apt install mame-tools

Sur Fedora/RHEL-based distros :

sudo dnf install mame-tools

Sur Arch Linux :

sudo pacman -S mame-tools

Il devrait être préinstallé sur Windows. Il sera appelé chdman.exe dans le répertoire racine de MAME.

Un affichage de terminal montrant l'installation des outils MAME sur Arch Linux utilisant l'assistant YAY AUR.

Pour vérifier une image CHD et voir des informations sur sa structure, utilisez :

chdman info -i IMAGE_FILENAME.chd

Si vous utilisez Windows, cliquez avec le bouton droit sur le dossier racine de MAME, cliquez sur Ouvrir dans le terminal, puis tapez :

.\chdman.exe info -i IMAGE_FILENAME.chd

Une démonstration de la commande chdman montrant les infos sur un fichier CHD.

Convertir vos CHD

Vous pouvez utiliser le même outil pour extraire le contenu d’un fichier CHD et pour en créer un.

Convertir un CHD dans un format plus accessible, comme IMG pour les sauvegardes de disque dur ou une combinaison BIN & CUE pour les sauvegardes de CD, n’a de sens que si vous comptez utiliser ces fichiers dans un autre émulateur qui ne supporte pas le format CHD. Pour les fichiers d’images de disque dur, utilisez :

chdman extracthd -i IMAGE_FILE.CHD -o OUTPUT_FILE.IMG

Ou pour Windows :

.\chdman extracthd -i IMAGE_FILE.CHD -o OUTPUT_FILE.IMG

Pour les sauvegardes de CD, remplacez extracthd par extractcd dans la commande ci-dessus.

Si vous utilisez un émulateur comme PCSX ReARMed ou Demul, RetroArch ou une distribution d’émulateur pour votre Raspberry Pi, théoriquement, vous devez seulement placer vos fichiers dans le chemin ROM de l’émulateur pour qu’il les détecte et les utilise.

Votre dossier ROMs peut sembler chaotique s’il contient des sauvegardes de plus d’un jeu qui :

  • Était initialement au format CD
  • Est désormais stocké en combinaisons BIN & CUE
  • Contient plusieurs pistes audio

Avec la combinaison CUE & BIN, chaque piste du CD d’origine est sauvegardée comme un fichier BIN séparé, de sorte qu’un seul jeu peut être divisé en des dizaines de fichiers.

Le format de fichier CHD a été créé comme une manière plus moderne de stocker de telles ROMs, excellant ainsi à tous égards. Tout peut être contenu dans un seul fichier, et la compression sans perte est appliquée intelligemment en fonction du contenu pour des résultats optimaux. Par exemple, les données typiques pourraient être compressées avec l’algorithme zlib, mais les pistes audio individuelles sont compressées avec Flac. Cela mène à de grands taux de compression sans aucune perte de données, puisque les types de compression utilisés sont “sans perte”.

Pour convertir un jeu divisé entre un CUE et un tas de fichiers BIN en un seul fichier CHD, utilisez :

chdman createcd -i"FILENAME.cue"-o"OUTPUT_FILENAME.chd"

Ou sous Windows :

.\chdman.exe createcd -i "FILENAME.cue"-o "OUTPUT_FILENAME.chd"

Bien que vous puissiez, vous n’êtes pas obligé de modifier les paramètres de compression – les choix optimaux seront automatiquement sélectionnés pour vous. Lors de la conversion, chdman présentera, parmi d’autres informations, les différents types de compression qu’il utilise dans chaque cas.

Compression de la combinaison CUE/BIN en fichier CHD.

Après l’achèvement de la conversion, essayez de charger votre nouveau fichier CHD dans le même émulateur que vous avez utilisé précédemment pour charger ce jeu. Si cela fonctionne, supprimez les fichiers d’origine et passez au jeu suivant.

Gestionnaire de fichiers affichant le fichier CHD converti.

Lorsque vous vérifiez les fichiers, vous pourriez remarquer que le nouveau fichier CHD créé est significativement plus petit que les fichiers BIN, IMG ou ISO que vous avez convertis, car beaucoup de ces ROMs contiennent des artefacts des systèmes de jeu pour lesquels elles ont été conçues et agissent comme si certaines portions de leurs données devaient encore occuper certaines positions sur le disque. Puisque vous utilisez un émulateur, la compression éliminera une grande partie de ce surplus sans affecter la qualité globale du contenu que vous appréciez sur celui-ci.

Si vous conservez de nombreux jeux rétro, lorsque vous convertissez les plus volumineux d’entre eux au format CHD, au moins pour les émulateurs qui le supportent, vous pouvez finir par économiser plusieurs gigaoctets d’espace – gigaoctets que vous pourriez utiliser pour stocker encore plus de jeux rétro ! Si vous aimez jouer à des jeux rétro, apprenez à les rembobiner à un état précédent.

Toutes les images et captures d’écran par Miguel Leiva-Gomez.