Que sont les fichiers CHD et comment pouvez-vous les utiliser ?

Que sont les fichiers CHD et comment pouvez-vous les utiliser ?
Un jeu fonctionnant à partir d'un fichier CHD accompagné de la ROM appropriée.

Si vous aimez les jeux rétro, vous avez peut-être rencontré des fichiers avec une extension CHD. Ces fichiers contiennent généralement de petits joyaux utilisés pour préserver et cataloguer certains des jeux les plus anciens de la scène arcade. Les fichiers CHD fonctionnent généralement main dans la main avec un émulateur de machine d’arcade open source connu sous le nom de MAME, mais ce n’est pas leur seule utilité !

Que sont les fichiers CHD ?

Connus sous le nom de Compact Hunks of Data, ces fichiers contiennent l’ensemble 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. Cela explique pourquoi ils sont si grands.

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

Un fichier CHD résidant dans son dossier approprié pour MAME.

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

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

S’il s’agit de sauvegardes de jeux pour la PlayStation d’origine ou pour une autre console utilisant des disques optiques, elles doivent être placées 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 atouts du jeu, car MAME émule principalement des machines d’arcade.

Contrairement aux consoles de jeux, les machines d’arcade du milieu des années 80 avaient généralement un profil matériel spécifique qui leur permettait d’exécuter un seul jeu. Ils ont presque universellement suivi un modèle dans lequel 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 tout seul à cause de ce modèle. N’oubliez pas qu’ils constituent la partie disque dur des machines d’arcade qu’ils habitaient. 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 y cherchera le CHD. La structure des répertoires dans le dossier ROM doit alors ressembler à ceci :

  • jeu
    • jeu.chd
  • jeu.zip

Si vous ne disposez que du fichier CHD, vous devrez trouver le micrologiciel correct pour le jeu qui fonctionne avec la version de MAME que vous utilisez.

Vérifier le contenu du fichier CHD

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

Sur Ubuntu/Debian/Mint :

Sur les distributions basées sur Fedora/RHEL :

Sous Arch Linux :

Il doit ê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 à l'aide de l'assistant YAY AUR.

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

Si vous utilisez Windows, faites un clic droit sur le dossier racine MAME, cliquez sur Ouvrir dans le terminal, puis tapez :

Une démonstration de la commande chdman affichant des informations sur un fichier CHD.

Convertissez vos CHD

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

Conversion d’un CHD vers un format plus accessible, comme IMG pour les sauvegardes de disque dur ou un format BIN & La combinaison CUE pour les sauvegardes sur CD n’a d’intérêt que si vous comptez utiliser ces fichiers dans un autre émulateur qui ne prend pas en charge le format CHD. Dans le cas de fichiers image du disque dur, utilisez :

Ou pour Windows :

Conversion d'un fichier CHD en fichier IMG.

Pour les sauvegardes sur 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, en théorie, vous seul vous devez placer vos fichiers dans le chemin ROM de l’émulateur pour que celui-ci puisse les détecter et les utiliser.

Votre dossier ROM peut sembler chaotique s’il contient des sauvegardes de plusieurs jeux qui :

  • Était à l’origine au format CD
  • Est maintenant stocké dans BIN & Combinaisons de CUE
  • Contient plusieurs pistes audio

Avec le CUE & Combinaison BIN, chaque piste du CD original est enregistrée dans un fichier BIN distinct, de sorte qu’un seul jeu peut être divisé en dizaines de fichiers.

Le format de fichier CHD a été créé comme un moyen plus moderne de stocker de telles ROM, excellant ainsi à tous égards. Tout peut être contenu dans un seul fichier et la compression sans perte est intelligemment appliquée en fonction du contenu pour des résultats optimaux. Par exemple, des données typiques peuvent être compressées avec l’algorithme zlib, mais les pistes audio individuelles sont compressées avec Flac. Cela conduit à des taux de compression élevés sans perte de données, puisque les types de compression utilisés sont « sans perte ».

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

Ou sous Windows :

Même si vous le pouvez, vous n’avez pas besoin de modifier les paramètres de compression : les choix optimaux seront automatiquement choisis pour vous. Lors de la conversion, chdman présentera, entre autres informations, les différents types de compression qu’il utilise dans chaque cas.

Compression de la combinaison CUE/BIN dans un fichier CHD.

Une fois la conversion terminée, essayez de charger votre nouveau fichier CHD dans le même émulateur que vous avez utilisé initialement pour charger ce jeu. Si cela fonctionne, supprimez les fichiers originaux et passez au jeu suivant.

Gestionnaire de fichiers affichant le fichier CHD converti.

Lorsque vous vérifiez les fichiers, vous remarquerez peut-être que le fichier CHD nouvellement créé est nettement plus petit que les fichiers BIN, IMG ou ISO que vous avez convertis, car bon nombre de ces ROM contiennent des artefacts des systèmes de jeu pour lesquels ils ont été conçus et agissent comme si certains bits de leurs données doivent encore occuper certaines positions sur le disque. Puisque vous utilisez un émulateur, la compression éliminera une grande partie de cette surcharge sans affecter la qualité globale du contenu que vous appréciez.

Si vous conservez de nombreux jeux rétro, lorsque vous convertissez le plus grand d’entre eux au format CHD, au moins pour les émulateurs qui le prennent en charge, vous pouvez finir par économiser plusieurs gigaoctets d’espace – des gigaoctets que vous pourriez ensuite utiliser pour stocker encore plus de jeux rétro ! Si vous aimez jouer à des jeux rétro, découvrez comment les rembobiner jusqu’à un état antérieur.

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *