idwav player и конвертор для Doom 3 BFG Edition

Наконец-то доделал свой конвертор. Изначально это была крайне неудобная и сырая консольная программа, где надо руками прописывать все команды и пути к файлам. Теперь же это нормальный удобный конвертор с графическим интерфейсом и простыми кнопками. Поэтому пришло время его опубликовать для всех.


О формате Idwav

В игре Doom 3 bfg edition, почти 95% всех файлов — это ms adpcm idwav. Оставшиеся 5% — это pcm idwav файлы.
Сам по себе формат idwav позволяет записывать timestamp со временем создания файла, а также может содержать блок амплитуд.
Во всех idwav файлах в игре timestamp по какой-то причине нулевой. Однако его можно заполнить реальной датой и файл также будет работать. Что касается блока амплитуд — в исходных кодах игры нет абсолютно никакой информации о том, для чего он нужен и используется ли он где-то в игре. Также нет никаких данных о размере блока амплитуд. Судя по всему он может быть разным в разных файлах. В оригинальном Doom 3 (2004) все звуковые файлы были в формате ogg и никаких доп. файлов с амплитудами там не использовалось. Зачем в Doom 3 bfg edition, который является переизданием этой игры, при конвертации ogg в idwav туда добавили блок амплитуд и как они его сделали — мне неизвестно. Однако в ходе тестирования у точно установил что idwav файлы абсолютно одинаково работает и при пустом блоке амплитуд и при его наличии. В игре не меняется вообще ничего и нигде. Файлы звучат одинаково и нигде в интерфейсе игры нет абсолютно ничего, что менялось бы при отсутствии амплитуд или двигалось в соответствии с этими амплитудами. В связи с чем их можно не добавлять в idwav файлы и ничего не изменится.
Всё будет работать точно также.

О моём конверторе:
Эта программа позволяет как записать нулевой timestamp при установке соответствующей галочки, так и убрать эту галочку и тогда дата создания файла будет записана в заголовок idwav файлы.
Размер блока амплитуд можно настраивать. Но, как я уже сказал ранее, я не знаю какого размера он должен быть и что должен собой представлять. Проверить его работоспособность в игре невозможно, т.к. неизвестно используется ли он вообще хоть где-то в игре. Хотя точно можно сказать что во всех idwav файлах игры блок амплитуд зачем-то создан и мой конвертор
создаёт такой блок амплитуд, который либо подходит игре, либо игнорируется. Т.е. никак не мешает игре воспроизводить эти файлы.

При конвертации из формата wav в idwav ваши исходные wav файлы должны быть либо pcm wav, либо ms adpcm wav.
Никакие другие форматы данных не поддерживаются. Настоятельно рекомендую использовать ms adpcm wav. Также, как это делают разработчики игры. Хотя pcm wav также будет работать, но размер каждого файла на выходе увеличится в 3-4 раза по сравнению с ms adpcm.
Возможность конвертации ogg в idwav добавлена в последний момент работы над программой, просто потому что в Doom 3 (2004) используется именно ogg. При конвертации ogg в idwav можно поставить галочку, которая конвертирует ogg не в pcm idwav, а в ms adpcm wav. Такая конвертация будет выполняться при использовании программы ffmpeg, которая лежит в той же папке.
И всегда должна там находиться, т.к. для генерации амплитуд из ms adpcm wav файлов программа создаёт временный pcm wav с помощью ffmpeg, на основе которого и создаются амплитуды.
Кроме того, при наличии отдельных файлов амплитуд с расширением .amp, мой конвертор попытается использовать их как данные для блока амплитуд при создании idwav файла.

Во всех случаях вы можете конвертировать как отдельный файл, так и папку с файлами.

Судя по спецификации формата idwav, описанной в текстовой файле specs.idwav.txt, лежащем в папке с программой BFG-Resource-File-Manager, которая умеет воспроизводить idwav файлы, в idwav файлах есть так называемый loop begin.
Но скорее всего эта часть используется только в xma-версии формата idwav, т.е. в файлах с расширением idxma.
(Используется в версии игры для xbox). Эта часть определяет с какого места файл будет зацикливаться при воспроизведении.
При желании можно указать там какое-то значение в семплах и скорее всего такой idwav файл будет воспроизводится много раз подряд. Но я это не проверял и не тестировал. И добавил эту галочку в конвертор без какой-то особой цели. Лучше не включать этот параметр. Можно сказать что это заготовка под возможное расширение функционала программы или просто остатки кода со
стадии изучения формата idwav. Я не стал это убирать, т.к. в теории это может пригодится, если я захочу добавить поддержку xma в будущем.

Итак, чтобы конвертировать ваши wav файлы в idwav, вам сначала надо сохранить их как MS ADPCM wav, затем запустить мой конвертор и просто нажать на кнопку «Start convertion». После чего в папке с вашими wav файлами получатся idwav файлы, которые будут прекрасно работать в игре. На вкладке IDWAV->WAV вы можете провести обратную конвертацию, чтобы, например, конвертировать имеющиеся в игре idwav файлы в формат wav. Хотя не знаю зачем это может кому-то понадобиться. Т.к. я также опубликовал idwav player, который умеет воспроизводить файлы idwav напрямую. Как в их исходном виде, так и в случае, когда они упакованы в игровые архивы с расширением .resoures, в которых Doom 3 bfg edition хранит все игровые данные, включая idwav файлы.

Скачать конвертор можно тут
https://drive.google.com/file/d/1cZD31npI0Yhi7sWPR8giEN4KPIa3TUJh/view?usp=drive_link


IDWAV Player — это аудиоплеер для воспроизведения звуковых файлов формата .idwav, используемых в игре Doom 3 BFG Edition.
Программа поддерживает воспроизведение idwav файлов, в которых использованы кодеки msadpcm и pcm (ПК-версия игры)

Основные функции:
Управление плейлистом

Загрузка файлов из папки (с сохранением последнего пути)

Загрузка файлов из архивов .resources

Перетаскивание idwav файлов в окно плейлиста

Поиск по плейлисту с подсветкой результатов

Навигация по трекам (предыдущий/следующий)

Отображение текущего статуса (количество файлов, текущая позиция)

Сохранение всего плейлиста в текстовый файл

Дополнительные функции

Конвертация в WAV (сохранение текущего трека)

Информация о файле:

    Версия формата

    Кодек

    Частота дискретизации

    Количество каналов

    Битность

Горячие клавиши:

    Пробел - воспроизведение/пауза

    Стрелки влево/вправо - переключение треков

    Ctrl+O - открыть папку

    Ctrl+F - перенести курсор в поле для поиска

Системные требования

ОС: Windows 10/11 (64-bit)

*Для запуска на windows 7 используйте Vxkex.

Как использовать:

Нажмите на кнопку Load Folder и выберите папку с .idwav файлами, после чего будет создан плейлист и можно будет воспроизводить любые файлы из этой папки и всех подпапок.
Либо нажмите на кнопку Load .resources и выберите файл .resources в папке с игрой, например DOOM 3 BFG Edition\base_sound_pc.resources

Также вы можете запустить программу и перетащить idwav файл в её окно. Выбранный idwav файл добавится в плейлист. Кроме того, можно нажать на Idwav файл правой кнопкой мыши, выбрать пункт меню «Открыть с помощью…» и выбрать exe-файл этой программы. После чего она запустится и в плейлист добавится нужный файл. Потом просто нажмите на кнопку воспроизведения.

Скачать Idwav player можно тут
https://drive.google.com/file/d/1PWe3xbndEKfY1ctc38043iZdD83MaiLV/view?usp=drive_link

One thought on “idwav player и конвертор для Doom 3 BFG Edition”

  1. Известная проблема в конверторе: порт RbDoom3bfg по какой-то причине не воспроизводит созданные конвертором ms adpcm idwav файлы, но воспроизводит Pcm idwav. Видимо в этот порт добавили какие-то жёсткие проверки структуры файла, которых не было в оригинальной игре.

Добавить комментарий

Ваш адрес email не будет опубликован.