Что такое файлы CHD и как их использовать?

Игра, работающая с файлом CHD с его правильным сопроводительным ROM.

Если вы увлекаетесь ретро-играми, вы могли столкнуться с файлами с расширением CHD. Эти файлы обычно содержат небольшие сокровища, которые используются для сохранения и каталогизации некоторых из самых старых игр, которые появились в аркадных залах. Файлы CHD обычно работают в тандеме с эмулятором аркадных автоматов с открытым исходным кодом, известным как MAME, но это не единственное их использование!

Содержание

  • Что такое файлы CHD?
  • Проверка содержимого файла CHD
  • Конвертация ваших CHD

Что такое файлы CHD?

Известные как Компактные куски данных, эти файлы содержат полный спектр ресурсов, используемых в старых аркадных автоматах, которые воспроизводятся эмулятором под названием MAME. Конкретно в MAME эти файлы представляют собой полные реплики содержимого жестких дисков аркадных автоматов. Это объясняет, почему они такие большие.

В последнее время файлы CHD стали нишевой альтернативой файлов ISO или парам BIN/CUE для эмуляции больших игр, которые обычно работали на CD-ROM. Это включает в себя эмуляторы, такие как некоторые ядра PlayStation Libretro в RetroArch и, в свою очередь, все популярные дистрибутивы для эмуляции на микрокомпьютерах серии Raspberry Pi.

Файл CHD, находящийся в правильной папке для MAME.

Если ваши CHD являются ROM-ами для MAME, их необходимо хранить в папке в каталоге ROM-ов MAME с тем же именем, что и zip-архив, который содержит фактическое программное обеспечение аркадного автомата, который воспроизводится. В Linux, обычно каталог ROM-ов MAME находится по адресу ~/.mame/roms. В Windows это папка roms в директории, куда вы распаковали MAME с помощью портативного установщика.

Стрелка указывает на папку ROMs в установке MAME для Windows.

Если это резервные копии игр для оригинальной PlayStation или другой консоли, которая использовала оптические диски, их следует разместить прямо в подкаталоге ROM эмулятора.

В случае эмуляторов консолей файлы CHD обычно содержат всю игру, поэтому вы можете “открыть их” в эмуляторе и начать играть. Однако в MAME они только активы игры, поскольку MAME в первую очередь эмулирует аркадные машины.

В отличие от игровых консолей, аркадные машины с середины 80-х годов обычно имели специфический аппаратный профиль, который позволял им запускать одну единственную игру. Они почти универсально следовали модели, где весь исполняемый код в игре хранился на чипе ROM, а все визуальные активы — на CD или, что более распространено, на жестком диске.

Структура файлов MAME, файлы CHD в папках на изображении.

MAME не может открывать CHD самостоятельно из-за этой модели. Помните, они являются жестким диском тех аркадных машин, в которых они находились. MAME сначала должен открыть файл ROM, содержащий исполняемый код (почти универсально это zip-файл). Он будет искать папку с тем же именем, что и ROM-файл, и искать CHD там. Структура каталога внутри папки ROM должна выглядеть следующим образом:

  • игра - game.chd
  • game.zip

Если у вас есть только файл CHD, вам нужно найти правильное программное обеспечение для игры, которое будет работать с той версией MAME, которую вы используете.

Проверка содержимого файла CHD

Лучший (и, насколько нам известно, единственный) инструмент для работы с файлами CHD поступает от их источника, от самого MAME. Он называется chdman. В зависимости от вашей настройки MAME, он либо уже установлен, либо вы можете установить его:

На Ubuntu/Debian/Mint:

sudo apt install mame-tools

На Fedora/RHEL-основанных дистрибутивах:

sudo dnf install mame-tools

На Arch Linux:

sudo pacman -S mame-tools

Он должен быть предустановлен на Windows. Он будет называться chdman.exe в корневой директории MAME.

Отображение терминала, показывающее установку инструментов MAME на Arch Linux с помощью помощника YAY AUR.

Чтобы проверить изображение CHD и увидеть некоторую информацию о его структуре, используйте:

chdman info -i IMAGE_FILENAME.chd

Если вы используете Windows, щелкните правой кнопкой мыши на корневой папке MAME, нажмите Открыть в терминале, затем введите:

.\chdman.exe info -i IMAGE_FILENAME.chd

Демонстрация команды chdman, показывающей информацию о файле CHD.

Конвертация ваших CHD

Вы можете использовать тот же инструмент, чтобы извлечь содержимое файла CHD и создать его.

Конвертация CHD в более доступный формат, такой как IMG для резервных копий жесткого диска или комбинации BIN & CUE для резервных копий CD, имеет смысл только в том случае, если вы собираетесь использовать эти файлы в другом эмуляторе, который не поддерживает формат CHD. В случае файлы образов жесткого диска используйте:

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

Или для Windows:

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

Для резервных копий CD замените extracthd на extractcd в вышеуказанной команде.

Если вы используете эмулятор, такой как PCSX ReARMed или Demul, RetroArch, или какие-либо дистрибутивы эмулятора для вашего Raspberry Pi, теоретически, вам нужно только поместить ваши файлы в путь ROM эмулятора, чтобы он их обнаружил и использовал.

Ваша папка ROM может выглядеть беспорядочно, если она содержит резервные копии более чем одной игры, которые:

  • Изначально были в формате CD
  • Теперь хранятся в комбинациях BIN & CUE
  • Содержат несколько аудиотреков

С комбинацией CUE & BIN каждый трек оригинального CD сохраняется как отдельный файл BIN, так что одна игра может быть разбита на десятки файлов.

Формат файла CHD был создан как более современный способ хранения таких ROM, тем самым превосходя во всех отношениях. Все может содержаться в одном файле, и без потерь сжатие умно применяется в зависимости от содержимого для достижения оптимальных результатов. Например, обычные данные могут быть сжаты с помощью алгоритма 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 предоставит, среди другой информации, различные типы сжатия, которые он использует в каждом случае.

Сжатие комбинации CUE/BIN в файл CHD.

После завершения конверсии попробуйте загрузить ваш новый файл CHD в том же эмуляторе, который вы использовали изначально для загрузки этой игры. Если работает, удалите оригинальные файлы и переходите к следующей игре.

Диспетчер файлов, отображающий сконвертированный файл CHD.

Когда вы проверяете файлы, вы можете заметить, что вновь созданный файл CHD значительно меньше, чем файлы BIN, IMG или ISO, которые вы конвертировали, поскольку многие из этих ROM содержат артефакты от игровых систем, для которых они были предназначены, и действуют так, как будто определенные части их данных все еще должны занимать определенные позиции на диске. Поскольку вы используете эмулятор, сжатие избавит от большого количества этого бремени, не влияя на общее качество контента, который вы наслаждаетесь на нем.

Если у вас много ретро-игр, когда вы конвертируете самые большие из них в формат CHD, по крайней мере для эмуляторов, которые его поддерживают, вы можете в конечном итоге сэкономить несколько гигабайтов места – гигабайтов, которые вы могли бы затем использовать для хранения еще большего количества ретро-игр! Если вы любите играть в ретро-игры, узнайте, как вернуть их в предыдущее состояние.

Все изображения и скриншоты предоставлены Мигелем Лейвой-Гомесом.