====== VAG ====== VAG - формат аудиоданных PlayStation. ===== Спецификация ===== Внимание: числа в VAG хранятся в формате big endian! Файл начинается с заголовка размером 48 байт: * 0x00 - 4 "волшебных" байта "VAGp" * 0x04 - версия (4-байтное слово) - 3 или 32 * 0x08 - 4 зарезервированных байта * 0x0C - размер звуковых данных в байтах (4-байтное слово) * 0x10 - частота дискретизации в герцах (4-байтное слово) * 0x14 - 12 зарезервированных байт * 0x20 - ASCII-имя звука (16 байт). Дальше идут данные ADPCM, которые хранятся блоками по 16 байт. Структура блока следующая: * 1 байт (uint8) - параметры декодирования (shift factor и фильтр) * 1 байт (uint8) - флаги управления воспроизведением: 3 = блок завершает цикл, 6 = блок начинает цикл, 7 = блок завершает воспроизведение * 14 байт (28 сэмплов) - звуковые данные блока. Декодировать ADPCM программно не нужно, [[SPU]] делает это аппаратно. ===== Примечания ===== * ADPCM-данные должны начинаться с 16 байт тишины (lead-in) для предотвращения щелчков. * Максимальный размер данных одного VAG не должен превышать 520160 байт.