Извлечение музыки из игр

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

Музыка в компьютерных играх часто представлена в нестандартных форматах, и её воспроизведение с помощью обычных программ-плееров невозможно.

Программы для извлечения музыки

Существуют специализированные программы, позволяющие извлечь музыку из игр. Среди наиболее универсальных программ этого класса можно выделить:

  • Game Audio Player,
  • WinRipper,
  • Total Recorder.

Game Audio Player (GAP)

Программа Game Audio Player, разработанная российским программистом Валерием Анисимовским, является плеером и поддерживает множество игровых музыкальных форматов, в том числе используемые в играх серий Command & Conquer (например, Red Alert) и Need for Speed (например, Hot Pursuit и High Stakes).

Предусмотрена возможность сохранения найденной в игровых ресурсах музыки в стандартные Wave-файлы.

Трекерную (например, MOD, XM, S3M) и MIDI-музыку программа не поддерживает.

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

WinRipper

В отличие от GAP, программа WinRipper Петра Павловского не является плеером и ориентирована исключительно на извлечение звука из файлов игровых ресурсов. В то же время WinRipper избавлен от некоторых недостатков GAP.

Поддерживается не только музыка в Wave-подобных форматах, но и трекерная и MIDI-музыка.

Теоретически возможно прямое воспроизведение музыки из игровых ресурсов через популярный плеер Winamp при помощи соответствующего плагина от разработчика WinRipper, но при этом Winamp и WinRipper должны работать параллельно, да и сам плагин сейчас найти проблематично (он распространялся отдельно от WinRipper), и с современными версиями Winamp он, скорее всего, несовместим.

WinRipper не поддерживает плагины: чтобы добавить в неё поддержку других форматов, необходимо вмешиваться непосредственно в исходный код программы.

Своеобразным достоинством программы является её небольшой размер — всего 51 КБ (версия 0.79) против 1,24 МБ у GAP 1.32.

К сожалению, разработка GAP и WinRipper прекращена, а официальные сайты их разработчиков в настоящее время недоступны.

Total Recorder

Программы типа Game Audio Player и WinRipper обладают общим недостатком: они способны извлечь музыку только в тех случаях, когда музыка в игре представлена в одном из поддерживаемых программой форматов. Но постоянно выходят новые игры, где используются новые форматы, при этом официальные спецификации игровых музыкальных форматов обычно не публикуются.

Программа Total Recorder представляет собой универсальное решение, позволяя получить необходимый музыкальный файл практически всегда: с помощью специального программного драйвера эмулируется самостоятельное звуковое устройство. При этом весь звуковой поток, проходящий через это виртуальное звуковое устройство, перехватывается и может быть сохранён в стандартный Wave-файл.

Некоторые звуковые платы позволяют записывать воспроизводимый звук, но есть принципиальная разница: в программах типа Total Recorder звук не записывается, а перехватывается в неизменном виде. Благодаря этому исключаются потери качества записанного файла относительно исходного звука игры, связанные с несовпадением частот дискретизации исходного звукового потока и полученного файла.

Потери качества возможны в том случае, если громкость в игре установлена на уровень, отличный от максимального (в том числе неуправляемыми образом). Определённую трудность при использовании таких программ также представляет возможное наличие посторонних (звучащих параллельно с музыкальным сопровождением) звуков, отключить которые есть возможность не в каждой игре.

В отличие от Game Audio Player и WinRipper, Total Recorder является платной программой.

Аналогичными возможностями, но уже на аппаратном уровне, обладают профессиональные и полу­профес­сиональные звуковые платы компании ESI — например, Juli@. В них доступна фирменная технология DirectWIRE, позволяющая осуществлять произвольную маршрутизацию звуковых потоков без потерь и перенаправлять выходной звуковой сигнал на вход с вытекающей возможностью записать его обычным образом в любой программе для звукозаписи — например, Sound Forge.

Специализированные утилиты

В отдельных случаях имеет смысл использовать небольшие утилиты, предназначенные исключительно для извлечения музыки из какой-то единственной игры. Порой такие утилиты даже являются консольными (лишены графического интерфейса и работают из командной строки), но такой способ конвертации обычно всё равно более удобен и обеспечивает более гарантированное качественное соответствие оригиналу, чем запись в реальном времени при помощи программ типа Total Recorder.

Например, почти в каждой новой игре компании Electronic Arts используемый в игре звуковой формат претерпевает изменения, и существующие версии более-менее универсальных программ типа GAP оказываются бессильными.

Из узкой специализации таких утилит вытекает и невозможность дать какие-то конкретные рекомендации — для каждой игры следует искать свою утилиту. Например, для игры Project I.G.I. существует программа Innerloop Studios WAV->WAV converter, преобразующая файлы из нестандартного варианта формата Wave в стандартные Wave-файлы.

Музыка из игр для игровых приставок (консолей)

Из большинства игр для игровых приставок прошлых поколений (8/16 бит) — SNES (Super Nintendo), Sega Genesis (Mega Drive), NES (Nintendo, Dendy) — музыка давно извлечена в файлы оригинальных форматов (SPC, GYM/VGM, NSF). Одна из наиболее полных коллекций такой музыки представлена на сайте Zophar.net.

Воспроизвести такие файлы можно либо в специализированных плеерах типа Audio Overload, либо с помощью популярных плееров с использованием сторонних плагинов. Например, бесплатного Windows-плеера foobar2000 с плагинами Game Emu Player (foo_gep) и PSF Decoder (foo_psf) достаточно для воспроиз­ведения музыки из игр большинства игровых приставок.

Need for Speed и Epic Pinball

Кстати, плагин ADPCM (foo_adpcm) для того же foobar2000 поддерживает прямое воспроизведение ASF/MUS-файлов из PC-игр серии Need for Speed, а плагин Dumb (foo_dumb) поддерживает воспроизведение музыкальных файлов в нестандартном трекерном формате PSM, использо­ванном в замеча­тельной старой DOS-игре с замеча­тельной музыкой — Epic Pinball, правда в последнем случае звучание по сравнению с игрой заметно отличается в плане стереопанорамы и соотношения громкостей отдельных дорожек.