Итак... Значит просканировал я vdf файлы в папке Data при помощи GothicVDFS, повытягивал где было MUSIC.DAT и декомпилировал с помощью GothicSourcer. Проверил music.d и MusicInst.d. В них всё нормально, numchannels всегда 32. Так я пришел к выводу что дело в чем-то другом... И нашел в чем...
Разрабы мода, подправьте свою dll - AST.dll. Через неё происходит задание zMusic16ChannelsOnly постоянно в 1.
Короче, как временный фикс чтобы вернуть 32 канала для музыки делаете следующее:
1. Открываете AST.dll в папке System с помощью любого текстового редактора(я использовал notepad++).
2. Ищете слово zMusic16ChannelsOnly.
3. Заменяете слово zMusic16ChannelsOnly на любое другое ТАКОЙ ЖЕ длины(если длина другая, то вы сломаете хэш файла и игра не будет запускаться). Т. е. введите любое слово длиной 20 символов. Я проставил буковки z:
zzzzzzzzzzzzzzzzzzzz
4. Сохраните изменения в файле AST.dll.
5. Откройте с помощью текстового редактора файл Gothic.ini в той же папке System.
6. Найдите zMusic16ChannelsOnly и сделайте ему =0.
7. Сохраните изменения в файле Gothic.ini
Всё готово, я пока особо не тестировал, по-этому, прежде чем делать всё выше-написанное, сделайте у себя копию файла AST.dll чтобы восстановить его если вдруг что.
P. S.
После запуска игры в Gothic.ini наблюдается интересная картина:
Игра больше не изменяет поле zMusic16ChannelsOnly, но так же дописывает новое поле, которым мы заменили zMusic16ChannelsOnly в файле AST.dll т. е. у меня в Gothic.ini появилось следующее:
zzzzzzzzzzzzzzzzzzzz=1
Такое впечатление что внутри AST.dll стоит проверка:
if (GameUsing32Channels)
{
DoSomeShitToMakeItUse16Channels();
}
Из-за этого игра постоянно делает запись в gothic.ini чтобы вернуть 16 каналов. Но поскольку мы похимичили с AST.dll, то вернуть ничего не удастся. И игра будет постоянно писать в файл gothic.ini изменения и это может привести к тормозам(у меня вроде тормозов не было, но всё же).
Я не пойму каков был смысл так жестко ограничивать музыку до 16 каналов. Экономия оперативной памяти? Особо на этом не сэкономишь. Максимум выиграешь еще 5 мин жизни игры прежде чем она завалится из-за перевала используемой памяти за 3 или сколько там гигабайта.