CHDファイルとは何か、そしてどのように使用するか?

レトロゲームに興味があるなら、CHD拡張子のファイルを見たことがあるかもしれません。これらのファイルには、アーケードシーンで最も古いゲームを保存し、カタログ化するために使用される小さな宝物が含まれています。CHDファイルは、通常、MAMEというオープンソースのアーケードエミュレーターと連携して動作しますが、それだけが用途ではありません!
目次
- CHDファイルとは?
- CHDファイルの内容を確認する
- CHDを変換する
CHDファイルとは?
Compact Hunks of Data(コンパクトなデータの塊)として知られるこれらのファイルは、MAMEと呼ばれるエミュレーターによって再現される古いアーケードマシンで使用される資産のフルスペクトルを含んでいます。具体的には、MAMEにおいて、これらのファイルはアーケードマシン内のハードディスクの内容の完全な複製です。これが、これらのファイルが非常に大きい理由です。
最近では、CHDファイルは、CD-ROMで通常動作していた大規模なゲームをエミュレートするための、ISOファイルやBIN/CUEペアのニッチな代替手段となっています。これには、RetroArchのPlayStation Libretroコアのようなエミュレーターや、Raspberry Piシリーズのマイクロコンピュータ用の人気のエミュレーション指向のディストリビューションが含まれます。

CHDがMAME ROMの場合、それはエミュレートされたアーケードマシンの実際のファームウェアを含むzipアーカイブと同じ名前のフォルダ内に、MAME ROMsディレクトリに保存する必要があります。Linuxでは、MAMEのROMディレクトリは通常~/.mame/romsです。Windowsでは、ポータブルインストーラーでMAMEを抽出したディレクトリ内のromsフォルダです。

元のPlayStationや他の光ディスクを使用していたコンソールのゲームのバックアップの場合は、エミュレーターのROMサブディレクトリに直接配置する必要があります。
コンソールエミュレーターの場合、CHDファイルには通常ゲーム全体が含まれているので、エミュレーターで「開いて」プレイを始めることができます。しかし、MAMEでは、これらはゲームの資産であり、MAMEは主にアーケードマシンをエミュレートするからです。
ゲームコンソールとは異なり、80年代半ば以降のアーケードマシンは通常、1つのゲームを実行するための特定のハードウェアプロファイルを持っていました。ほぼ間違いなく、すべてのゲーム内の実行コードはROMチップに保存され、すべての視覚資産はCDまたはより一般的にはハードディスクドライブに保存されていました。

このモデルのため、MAMEはCHDを単独で開くことができません。覚えておいてください、CHDは彼らが存在していたアーケードマシンのハードディスク部分です。MAMEは、まず実行コードを含むROMファイル(ほぼ常にzipファイル)を開かなければなりません。それは、ROMファイルと同じ名前のフォルダを検索し、その中のCHDを探します。したがって、ROMsフォルダ内のディレクトリ構造は次のように見える必要があります:
- game - game.chd
- game.zip
CHDファイルしか持っていない場合は、使用しているMAMEのバージョンに適したゲームのファームウェアを見つける必要があります。
CHDファイルの内容を確認する
CHDファイルで作業するための最良の(そして、私たちの知る限り唯一の)ツールは、実際のソースであるMAME自身から提供されます。それはchdmanと呼ばれています。MAMEの設定によっては、すでにインストールされているか、インストールすることができます:
Ubuntu/Debian/Mintの場合:
sudo apt install mame-toolsFedora/RHELベースのディストリビューションの場合:
sudo dnf install mame-toolsArch Linuxの場合:
sudo pacman -S mame-toolsWindowsでは、事前にインストールされている必要があります。MAMEのルートディレクトリ内でchdman.exeと呼ばれます。

CHDイメージをチェックしてその構造に関する情報を得るには、次のコマンドを使用します:
chdman info -i IMAGE_FILENAME.chdWindowsを使用している場合は、MAMEルートフォルダを右クリックし、Open in Terminalをクリックしてから、次のコマンドを入力します:
.\chdman.exe info -i IMAGE_FILENAME.chd
CHDを変換する
同じツールを使って、CHDファイルの内容を抽出したり、作成したりすることができます。
CHDをIMG(ハードディスクドライブのバックアップ用)やCDバックアップ用のBIN & CUEの組み合わせなど、よりアクセスしやすい形式に変換することには、CHD形式をサポートしていない別のエミュレーターでそのファイルを使用する予定がある場合にのみ意味があります。ハードディスクイメージファイルの場合、次のコマンドを使用します:
chdman extracthd -i IMAGE_FILE.CHD -o OUTPUT_FILE.IMGまたはWindowsの場合:
.\chdman extracthd -i IMAGE_FILE.CHD -o OUTPUT_FILE.IMGCDバックアップの場合は、上記のコマンドのextracthdをextractcdに置き換えます。
PCSX ReARMed、Demul、RetroArch、またはRaspberry Pi用のいくつかのエミュレーター分配版を使用している場合は、理論的には、エミュレーターのROMパスにファイルを配置するだけで、それを検出して使用できるようになります。
複数のゲームのバックアップが含まれている場合、ROMsフォルダは混沌としている可能性があります:
- 元々CD形式であった
- 現在はBIN & CUEの組み合わせで保存されている
- 複数のオーディオトラックを含んでいる
CUE & BINの組み合わせでは、元のCDの各トラックが別々のBINファイルとして保存されるため、1つのゲームが数十のファイルに分割されることがあります。
CHDファイル形式は、そのようなROMを保存するためのより現代的な方法として作成され、すべての面で優れています。すべてが1つのファイルに含まれており、ロスレス圧縮が最適な結果を得るためにコンテンツに応じて賢く適用されます。たとえば、通常のデータはzlibアルゴリズムで圧縮されますが、個々のオーディオトラックはFlacで圧縮されます。これにより、データの損失がなく、ロスレス圧縮が使用されるため、優れた圧縮率を実現します。
CUEと複数のBINファイルに分割されたゲームを単一のCHDファイルに変換するには、次のコマンドを使用します:
chdman createcd -i"FILENAME.cue"-o"OUTPUT_FILENAME.chd"またはWindowsの場合:
.\chdman.exe createcd -i "FILENAME.cue"-o "OUTPUT_FILENAME.chd"調整する必要はありませんが、圧縮パラメータを調整することはできます - 最適な選択は自動的に選択されます。変換中、chdmanは他の情報の中で、各ケースで使用される異なる圧縮の種類を提示します。

変換が完了したら、最初にそのゲームをロードしたエミュレーターで新しいCHDファイルをロードしてみてください。うまくいく場合は、元のファイルを削除し、次のゲームに移ることができます。

ファイルを確認すると、新しく作成されたCHDファイルが、変換したBIN、IMG、またはISOファイルよりもかなり小さいことに気付くかもしれません。なぜなら、これらのROMの多くには、それらが設計されたゲームシステムからのアーティファクトが含まれており、特定のデータがディスク上の特定の位置を占有し続ける必要があるかのように機能するためです。エミュレーターを使用しているため、圧縮はこの無駄を多く取り除き、内容の全体的な品質には影響を与えません。
多くのレトロゲームを保持している場合、最大のものをCHD形式に変換すると、少なくともそれをサポートするエミュレーターの場合、数ギガバイトのスペースを節約できる可能性があります - それによってさらに多くのレトロゲームを保存できるかもしれません!レトロゲームをプレイすることに興味があるなら、それらを以前の状態に巻き戻す方法を学んでください。
すべての画像とスクリーンショットはMiguel Leiva-Gomezによるものです。