Структура аудио в SA — различия между версиями
Материал из GTAModding.ru
Sergeanur (обсуждение | вклад) (Новая: {{Stub}} В этой статье описана структура аудио-форматов в GTA SA. ==Папка STREAMS== В папке STREAMS хранятся файлы ра...) |
Sergeanur (обсуждение | вклад) |
||
Строка 41: | Строка 41: | ||
"Исцелённые" файлы можно проиграть с помощью программы [[MF Audio]]. Для этого надо выставить тип формата RAW ADPCM, в Interleave - 10000 и истинную частоту (где она находится описано выше). | "Исцелённые" файлы можно проиграть с помощью программы [[MF Audio]]. Для этого надо выставить тип формата RAW ADPCM, в Interleave - 10000 и истинную частоту (где она находится описано выше). | ||
+ | ===PC=== | ||
+ | ===XBOX=== | ||
===Таблица ID файлов=== | ===Таблица ID файлов=== | ||
{| {{Таблица}} | {| {{Таблица}} |
Версия 18:56, 3 августа 2011
В этой статье описана структура аудио-форматов в GTA SA.
Содержание |
Папка STREAMS
В папке STREAMS хранятся файлы радиостанций и звуковые дорожки катсцен.
PS2
Все поинтеры для файлов PAK хранятся в файле TRAKLKUP.DAT. Структура файла такова:
4 байта - DWORD - ID PAK файла 4 байта - DWORD - Оффсет к метаданным звукового файла 4 байта - DWORD - Длина непосредственно звукового файла
Обратите внимание на то, что второе значение ссылается именно к метаданным, а не к звуковому файлу, но третье значение является длинной уже самого звукового файла. Поэтому если вы хотите прочитать и метаданные, и сам звуковой файл, то прибавьте 8068 к длине звукового файла, а если только сам звуковой файл, то прибавьте 8068 к оффсету к метаданным.
Структура метаданных
8000 байт - "танцевальный ритм" (Beats) 4 байта - DWORD - длина "исцелённого" левого канала звукового файла 4 байта - DWORD - частота левого канала звукового файла 4 байта - DWORD - длина "исцелённого" правого канала звукового файла 4 байта - DWORD - частота правого канала звукового файла 4 байта - DWORD - неизвестное (возможно, кол-во каналов, т.к. всегда равно 2)
Rockstar зачем-то прописали длину и частоту для каждого канала отдельно (смысла в этом нет никакого, так как эти значения будут одинаковыми всегда), поэтому чтобы прочитать сколько весит "исцелённый" файл надо сложить значения длины правого и левого каналов.
"Битые" файлы
Наверное вы заметили ранее употребление слова "исцелённый". Дело в том, что файлы хранятся в немного побитом виде - посреди файлов были добавлены пустые блоки. Процедура корректного прочтения музыки из радиостанций описано в статье Моддинг San Andreas PS2. В файле CUTSCENE.PAK обстоит всё несколько по-другому - через каждые 131072 байта (0x20000) вставлен блок нулевых байтов размером 4096 байт (0x1000).
Структура Beats
Таблица Beats используется в танцевальных мини-играх, состоит из двух значений:
4 байта - DWORD - время появления (в миллисекундах) 4 байта - DWORD - клавиша
Если значение времени стоит -1, то "ритмы" не используются.
Таблица Beats не может весить больше 8000 байт. Это означает, что в мини-игре не может быть задействовано более 1000 "ритмов".
Проигрывание файлов
"Исцелённые" файлы можно проиграть с помощью программы MF Audio. Для этого надо выставить тип формата RAW ADPCM, в Interleave - 10000 и истинную частоту (где она находится описано выше).
PC
XBOX
Таблица ID файлов
ID | Файл |
---|---|
0 | AA |
1 | ADVERTS |
2 | AMBIENCE |
3 | BEATS |
4 | CH |
5 | CO |
6 | CR |
7 | CUTSCENE |
8 | DS |
9 | HC |
10 | MH |
11 | MR |
12 | NJ |
13 | RE |
14 | RG |
15 | TK |
Таблица клавиш для Beats
Значение (hex) | Клавиша | ||
---|---|---|---|
xbox | PS2 | PC (по умолчанию) | |
0x01 | A | X | Вниз |
0x02 | X | Квадрат | Влево |
0x03 | Y | Треугольник | Вверх |
0x04 | B | Круг | Вправо |
0x21 | Окончание мини-игры |
Значение (hex) | Клавиша | |
---|---|---|
xbox и PS2 | PC (по умолчанию) | |
0x09 | Прав. аналоговый стик: вправо | Numpad 6 |
0x0a | Прав. аналоговый стик: влево | Numpad 4 |
0x0b | Прав. аналоговый стик: вверх и вправо | Numpad 8 и Numpad 6 |
0x0c | Прав. аналоговый стик: вниз и влево | Numpad 2 и Numpad 4 |
0x0d | Прав. аналоговый стик: вверх | Numpad 8 |
0x0e | Прав. аналоговый стик: вниз | Numpad 2 |
0x0f | Прав. аналоговый стик: вверх и влево | Numpad 8 и Numpad 4 |
0x10 | Прав. аналоговый стик: вниз и вправо | Numpad 2 и Numpad 6 |
0x21 | Окончание мини-игры |