Для тех, кто время от времени играет в HMM4... Наверняка играя в тот или иной сценарий этой игры Вы встречали такой случай: тропинка очень узкая и создатель карты эту узость на проход-непроход сам непротестировал, а пройти в ту часть карты очень надо. Конечно, можно пойти брутальным путём - открыть файл сценария в редакторе карт и пододвинуть/удалить мешающий объект, но ведь тогда придётся начать сценарий заново... Ответом будет не какой-нибудь чит-код на координаты, а взлом на последнюю координату перемещения в самой игре.
Нам понадобится программа ArtMoney. Откройте её и выберите процесс от heroes4. Делаем так: в игре - выбираем армию и указываем ей куда идти (не объект, только место для перемещения), НО НЕ ИДЁМ. Задержите курсор на финальной ячейке перемещения (где зелёный крестик) - появятся координаты этой ячейки, например, 36,90. В ArtMoney - ищем первую координату, т.е. 36. Возвращаемся в игру, щёлкаем на любое другое доступное для перемещения место, но, опять же, НЕ ИДЁМ на него. Задерживаем курсор на зелёном крестике - появятся координаты, например, 38,92 В ArtMoney - отсеиваем 38 И так далее. А затем то же самое со второй координатой. У первой координаты должно быть 2-3 значения, у второй координаты - 3-4 значения
Теперь, когда найдены все значения - возвращаемся в игру. Щёлкаем на любое доступное для перемещения место, до которого МИНИМУМ ДВА ШАГА (т.е. чтоб путь до зелёного крестика был не в один шаг, а как минимум с одной стрелочкой). Наводим курсор на НЕДОСТУПНОЕ для перемещения место на карте, НО ДОСТУПНОЕ, если бы мы перескочили мешающий нам объект - появятся координаты, запоминаем. НИЧЕГО НЕ ЩЁЛКАЕМ. Возвращаемся в ArtMoney - вводим нужные нам координаты вместо значений для финальной ячейки перемещения.
Возвращаемся в игру, НИЧЕГО НЕ ЩЁЛКАЕМ. Жмите Enter - армия поскачет до зелёного крестика. А когда доскачет - окажется в координатах, подмененных с помощью ArtMoney.
P.S. Если во время поиска/отсеивания Вы всё-таки шагнули - придётся всё искать заново. P.P.S. Таким образом можно переместиться в любую ячейку карты, на которой может находиться армия. НЕЛЬЗЯ переместиться в ячейку, где находится какой-либо другой объект. НЕЛЬЗЯ переместиться из подземелья на поверхность (координаты одни и те же) PS4 CUH-1108A OFW 5.05 + VR CUH-ZVR2 PS3 SuperSlim CECH-4208a OFW v.4.50 Cobra ODE PS2 SCPH-77008a SLIM чиповка; припаян YPbPr - компонент PS2 SCPH-55004 FAT чиповка + orig SCPH-10281 Network Adapter SATA mod
Сообщение отредактировал archicharmer - Сб, 18 Окт 2014, 18:32
Заметки для тех, кто хотел бы заменить музыку в игре.
Делается это с помощью программы Heroes IV Resource Explorer . У неё exe-шник называется H4ResEx. Последняя версия - 1.4 . Найти мне её показалось очень сложным, т.к. на русскоязычных сайтах висела какая-то фальшивка с весом меньше 100кб. Где нашёл уже ссылки дать немогу.
Я отписался здесь не для того, чтобы написать подробный гайд как заменить музыку. Я хочу указать на одну вещь. Когда Вы разархивировали music.h4r - вы можете увидеть, что все wav'ки в таком формате: 128кб/с , 2 (стерео), 44кГц. Все, КРОМЕ ОДНОГО - sound.combat.start - 192кб/с , 2 (стерео), 44кГц.
Как только Вы соберёте новый архивчик.h4r с замененной музыкой (порядок файлов глядите в оригинале, все файлы с такими же кб/с) и подсунете его игре - пойдите на арену, где дадут уровень если навалять чёрным или волшебным драконам - игра вылетит. И виной тому файл sound.combat.start .
Изменять кб/с ему не следует - нужно оставить 192кб/с . НО этот файл нужно урезать. Чтоб не путаться, назовём кустарный архивчик с музыкой файлом 12.h4r Откройте в Heroes IV Resource Explorer'е файл music.h4r . Глядите в строчке sound.combat.start в столбце offset - этот оффсет здесь представлен в десятичном виде. Также поглядите оффсет следующего файла - sound.combat.win Теперь откройте виндовозский стандартный калькулятор, выберите Вид->Инженерный, убедитесь, что отмечено Dec (что значит десятичный вид) и пишите значение. Как написали - кнопок жать ненадо, выбирайте HEX и увидите оффсет в HEX-овом представлении, что намекает о том, что пора открывать HEX-редактор. Но для начала подсчитайте эти значения так (пример:) sound.combat.start: 10624803 - это A21F23 sound.combat.win: 10773601 - это A46461 . А надо A46461-2=A4645F Открываем music.h4r в HEX-редакторе. И сразу жмём Ctrl+E - здесь выписываем полученные значения. Согласно примеру, я выписываю A21F23 в Start-offset и A4645F в End-offset . После того, как блок выделен - Вы увидите его длину(внизу Length:) . Она наверняка 2453D . Так вот, Вам нужно открывать файл sound.combat.start.wav в HEX-редакторе и удалять блоки где-то с оффсета C0 до тех пор, пока его размер в собранном архиве 12.h4r не будет 2453D. Затем в HEX'е из music.h4r выделяете кусок с запакованным sound.combat.start и вставляете с заменой в 12.h4r
P.S.: Надеюсь никому не придёт идея о необходимости заменить и ЭТОТ звук... Насчёт звуков победы, поражения, побега, портала в город, поражения в городе - это звуки, которые играются в видеороликах. Для их замены нужно рыться в файле movies.h4r и заменять в bik-файлах звуковые дорожки с их оригинальными размерами по времени. Затем также делать архив с замененными файлами видеороликов. P.S.S.: Данная проблема вылета игры при походе на арену встречалась мной в одной из сборок HMM4: Excalibur - может она решалась также... Может то же самое нужно сделать каким-то другим файлам, например, sound.combat.lose или sound.combat.win. Я не делал, т.к. НИРАЗУ за всё время что я дохера играл в HMM4 я не слышал этих звуков. Соответственно и немогу проверить надо ли также выдирать оригинальный кусок или нет. PS4 CUH-1108A OFW 5.05 + VR CUH-ZVR2 PS3 SuperSlim CECH-4208a OFW v.4.50 Cobra ODE PS2 SCPH-77008a SLIM чиповка; припаян YPbPr - компонент PS2 SCPH-55004 FAT чиповка + orig SCPH-10281 Network Adapter SATA mod
Сообщение отредактировал archicharmer - Пн, 26 Окт 2015, 20:23
Теперь же я уже хочу написать подробный гайд по замене музыки. После замены, музыка будет воспроизводиться столько, сколько должна, и никаких "молчанок"!
Это можно не читать. Это я написал для того человека, кто сам копался, и, читая мои тутошние заметки, будет говорить: "Вот, вот, такая же фигня", а потом: "Аааа, вона оно чё!". Сначала я знал только про существование редактора H4ResEx и пытался подгонять mp3хи под него. Узнал про существование разновидностей битрейтов - CBR (constant), ABR (average) и VBR (variable), разновидностей кодировок mp3-файлов - "обычный" и LAME. Так вот, хотя игра и воспроизводила все комбинации из этих кодировок и битрейтов, музыка играла примерно вдвое дольше - сначала музыка, потом примерно столько же молчания. Времена молчания были очень похожи по длительности, и я принял их за стандартные. Нарезал таких длительностей mp3шек, но игра опять воспроизводит их с молчанием. В HEX-представлении файла music.h4r можно увидеть, что всяк файл .h4d - это запакованные каким-то особым образом в .gz mp3-файлы - имеет HEX-inverted стартовый оффсет, HEX-inverted величина запакованного в .h4d файла, HEX-inverted величина распакованного mp3-файла (которую если сравнить с распакованным из этого архива mp3-файлом, будет отличаться на 13байт) и тоже HEX-inverted какие-то значения, которые я так и не разгадал... но они что-то нигде не используются, и в конце-концов, игра принимает подсунутую ей чужую музыку. Я думал, что музыка ограничивается концом mp3-файла, но нет. Также правил здесь в архиве music.h4r эти "странный оффсеты" - они тоже никак не влияют на длительности воспроизведения музыки. "Наигравшись" с этими HEX-представлениями, я полез в инет за бугор почитать, может они там как нашли как редактировать. Нашёл один сайт - предлагают сначала конвертить в WAV, затем обратно в mp3, мол, длительность определиться сама - и тут тоже НЕТ. И вот, наконец, нашёл где человек разбирает...HEX-представление распакованных mp3 файлов. Чувак с ником RSVP. Пишет про какие-то HEX значения, которых я перед собой не вижу. Чё за хня?!? Потом замечаю - у него распаковщик другой - какой-то mh4. "Ну", думаю, "другой и другой. Мало ли утилит для работы..." Решил посмотреть как запаковывает та другая утилита. HEX-представление собранного этой утилитой архива music.h4r очень отличается от оригинального. Небуду описывать чем. Но, факт тот, что игра воспроизводит музыку и с таким music.h4r, НО НЕ ЧУЖУЮ подсунутую! Решил посмотреть HEX-содержимое mp3шек, распакованных из оригинального music.h4r именно этой утилитой mh4 - И ВОТ ОНО! ЭТО и была недостающая строчка, откуда игра мнит себе сколько по времени воспроизводить тот или иной звуковой трек! Подробнее про эту строчку и подготовки mp3-файлов в целом я и хочу здесь описать.
Нам понадобятся:
Хексовый редактор (например, HxD) ; Конвертер mp3. Желательно не в LAME кодировке (например, Nero Wave Editor) ; Extractor_Builderby Olivier Soares .
Распаковываем скачанный mh4.win32.006.zip в директорию, по пути которой нет не-латинских символов. В эту же директорию копируем оригинальный файл music.h4r . Запускаем mh4.exe, жмём File->Open a h44 file и выбираем файл music.h4r . Выделяем все файлы и жмём Options->Extract selected files. После этого, в той папке, где лежит music.h4r , появятся распакованные оригинальные mp3-файлы и файл music.h4l .
На этом этапе Вы подбираете музыку себе по вкусу, которую Вы хотели бы слышать в игре в том или ином происходящем случае. Допустим, Вы нашли все необходимые треки - поместите их куда-нибудь, НО НЕ в папку с mh4.exe, где на этот момент хранятся оригинальные mp3шки. Например, в папку "Мои документы". Затем, переименуйте соответствующий файл в соответствующее для игры название. Далее, нужно конвертировать подобранные Вами mp3-файлы. Конвертировать с такими параметрами: CBR (постоянный битрейт), 128кб/с (- это скорость, а качество кодирования можно ставить самое высокое), 44100 кГц, стерео (оно может joint stereo) . Ну, все, кроме sound.combat.start.mp3 - у него 192кб/с . И лучше бы его оставить оригинальным. Почему? - прочтите мой предыдущий пост. Хотя, пробуйте, я просто предупреждаю...
Открываем HEX-редактор, перетаскиваем туда один из файлов.mp3 что Вы сконвертировали в предыдущем шаге. Нужно обрезать header, содержащий ID3, а конкретнее, всё то, что до FF FB 9X 44 :
- это то, что нужно обрезать "сверху" Далее, что нужно обрезать "снизу". Спуститесь в конец файла. Удалите пост-header - байты после конечного FFFFFFFFFFFF....FFFF :
- как правило, длина post-header'а для .mp3-файла в этом формате составляет 223 (Length: 223 на картинке), но ориентироваться нужно по тому месту, где заканчиваются FFFFFFFFFFFF....FFFF Как обрезали, жмите сохранить. И так со всеми файлами.
FFFFFFFFFFFF....FFFF в конце файла.mp3 - это тишина. Если при прослушивании .mp3-файла на самой-самой последней секунде всё ещё что-то слышно, то в HEX-представлении не будет в конце FFFFFFFFFFFF....FFFF . Опять же, как правило в конце .mp3-файла всегда тишина. Рационально добавить пару секунд тишины в конец .mp3-файла (ниже объяснится почему). Сделать это можно во всё том же Nero Wave Editor.
Последний шаг по редактированию mp3шек.
Вначале каждого Вами подготовленного mp3-файла нужно вставить 13 байт инфы, "рассказывающей" игре о данных Вашего нового mp3-файла. Где их брать? - откройте в HEX-редакторе любой из распакованных оригинальных mp3-файлов, скопируйте первые 13 байт и сделайте Paste Insert в самое начало подготавливаемых Вами mp3-файлов. На картинке изображены места для заполнения соответствующих HEX-inverted значений. Частоту дискретизации нам трогать не надо, если Вы следовали шагам и конвертировали в 44100Гц (AC 44). А вот с остальным, надо высчитывать.
Чтобы разобраться что изображено на картинке - откройте в HEX-редакторе оригинальный файл sound.combat.music.4.mp3 . Что заполнять в "HEX-inverted длине файла минус 13 байт"? - это вся длина файла минус эти 13 байт информации. Ну или длина, начинающаяся с первого FF FB XX XX 00 до конца. К примеру, размер оригинального (в котором уже присутствуют эти 13байт спец. инфы) файла sound.combat.music.4.mp3 - 34164D, значит высчитываем 34164D - 13 = 34163A Инвертированный результат - читаем по паре значений справа-налево - это 3A1634, т.е., 3A 16 34 что и написано в той ячейке. Можно обходиться без калькулятора и высчитывания - в HEX-редакторе поставьте курсор мыши перед FF FB XX XX 00, спуститесь в самый низ, зажмите Shift и кликните справа самого последнего байта. И внизу Вы увидите Length выделенного, всё же значение которого, так же, как и описано чуть выше, нужно инвертировать. Соображаем, получаем значение, вписываем в соответствующее место.
Итак, добавили строчку в 13байт, редактировали у неё место для HEX-inverted длины файла, далее, что заполнять в "HEX-inverted длительность звукового трека"? - это |десятичное значение HEX не-инвертированной длины файла делёное на 23,166666666666666666666666666667| в 16чном представлении и inverted . Давайте опять на примере sound.combat.music.4.mp3. У него длина без первых 13байт спец. инфы - 34163A. Откройте стандартный калькулятор, тут без него не обойтись. Выберите Вид->Программист. Выберите Hex. Впишите 34163A. Переключите на Dec. Получилось 3413562. Переключаем режим калькулятора - Вид->Инженерный. Делим 3413562 на 23,166666666666666666666666666667. Получается 147348 (если бы получилось не-целое число, округлили бы до целого) Переключаем режим калькулятора - Вид->Инженерный. Убеждаемся, что выбрано Dec. Вписываем 147348. Переключаем на Hex. Получаем 23F94. Инвертированное значение - 94 3F 02, что и написано в тех 13байтах спец. инфы в отведённой для этого значения ячейке у оригинального файла sound.combat.music.4.mp3. Вникните в то, что написано. Как поймёте - дело попрёт) Высчитайте таким образом HEX-inverted длительность звукового трека Вашего файла. Внесите в соответствующую ячейку, где под это месте изображено на картинке. И так для всех подготавливаемых Вами .mp3-файлов.
Можно не читать. Что есть число 23,166666666666666666666666666667 в предыдущем спойлере? Это значение (ясно, что шестёрок здесь бесконечное множество) получается именно таким во всех оригинальных файлах, если брать обыкновенные (не-inverted) величины в десятичном представлении длины файла и то, что влияет на длительность трека (я назвал её длина трека, по факту конкретно это не есть она), и делить длину файла на длину трека. Повторюсь, что это значение всегда одно и то же во всех оригинальных файлах. Но, я считаю, что это несколько неправильно делать зависимость длины трека от длины файла. Правильнее - найти коэффициент для длины трека. Чтобы её найти, возьмём опять оригинальный файл sound.combat.music.4.mp3. Кидаем его в Nero Wave Editor. Видим, что его длительность дорожки 3мин. 33сек. 838мсек. , т.е., 213838мсек. Значение выставленное самой 3DO, указанное в соотв. месте в 13байтах, влияющее на длительность воспроизведения в игре - 23F94, в десятичном это 147348. 213838 / 147348 = 1,4512446724760431088307951244672 ~= 1,4512 В оригинальном sound.combat.music.4.mp3 в конце есть секунда тишины, но в игре в бою музыка после того как закончилась сразу с начала не начинается, проходит больше чем 1 секунда. Посему, это значение можно взять и 1,4515 В итоге, заполнять в "HEX-inverted длительность звукового трека" можно и |десятичное значение длины трека делёное на 1,4515| в 16чном представлении и inverted . И, раз нет зависимости от длины файла, то файлы.mp3 если они уже .mp3 можно не конвертировать (если их ненадо обрезать, пусть даже они и не 128кб/с), а добавлять к ним те 13байт, в которых, в соотв. местах и виде, редактировать частоту дискретизации если она не 44100Гц, значение влияющее на длину трека, и длину файла.
Скопируйте все готовые mp3-файлы в папку с mh4.exe с заменой оригинальных файлов mp3. Запускайте mh4.exe, жмите Options->Build a h4l file и выбирайте файл music.h4l . Как соберётся - полученный файл music.h4r поместите в папку с игрой в папку Data.
Выкладываю HEX-патч для игры HMM4: Колесница судьбы - исправил кампании "Кольцо дракона" - главное теперь возможно пройти от и до кампанию "Приключения Рина-непоседы" и некоторые другие кампании по мелочи (орфогр. и пунктуационные ошибки, где-чё взять было нельзя, куда пройти было нельзя, кампанию за Луну облегчил наличием нек. артефактов) Патчить прогой ppf-o-matic - выбрать файл x2.h4r (MD5: A758F3E758763BFB5D9BA76A8E2FBBBD) из игры HMM4: Колесница судьбы, выбрать патч x2.ppf и патчить.
Добрались у меня руки исправить пиратское издание героев под названием "Excalibur". Что исправил:
В трёх кампаниях "The Lord of the Ring" исправлены некоторые скрипты, принадлежность рядом с городом стоящих героев, и так по мелочи, чего уже не помню. Главное, это касается в кампании за Гендальфа. И в ней же, на второй карте, тот, кого надо вальнуть, теперь сидит ждёт Гендальфа в городе. Ато он бывало бился в непосильных битвах, где погибал, и для Гендальфа это считалось победой.
В шести кампаниях "Excalibur" исправлено очень много скриптов, в некоторых случаях с добавлением. Особенно за Мерлина и Вегга. За Ланселота сделал кампанию ВООБЩЕ проходимой в двух смыслах - на первой карте добавил помогающий начать квест, сместил города и нанималки, что находились несколько за пределами карты (из-за чего-то из-за них вылетало когда AI нанимал войска), на третей карте удалил/поставил на место нанималку единорогов и охраняющих рядом существ (из-за них почему-то карта бывало незагружалась в кампании, непонятно почему. Может совпадение...) В лузерной кампании "Шпионов его величества" исправлен мост на третей карте. Проходить на маленьком уровне сложности. В кампании Вегга почти всё было забаговано и просто невозможно было пройти на высоких уровнях сложности.
Во всех кампаниях, где только можно, исправлял орфографические и пунктуационные ошибки и опечатки (всё-таки, игра-почитайка). Кампании Dungeons&Dragons из этого издания я не трогал вообще.
Исправлены заглавная буква в тексте поражения на колизее, перечисление Кольца Вспышки в упоминаниях сета с накидкой ангела, сапогами быстроступами и т.д. Восстановлены описания заклинаний "Похитить все чары", "Гипноз" и "Зеркало боли". Исправлено описание арбалета Вальдера - всё это вроде бы как также подойдёт и для оригинальных HMM4 переведённых Букой (Вихри Войны, скорее всего. Смотрите MD5 у text.h4r ).
Также разобрался с тишиной в музыках и почему невоспроизводятся музыки в трёх городах и на местностях.
Если у Вас неполучается автосохранение - просто создайте в папке с игрой папку games.
Итак, поехали. Чтобы патчи уместились здесь в прикреплениях, придётся использовать байтовые вставки в HEX-редакторе, после которых патчить прогой ppf-o-matic (в "ISO File", выбираете файл.h4r , отмечая тип файлов "All files", а в "Patch" выбираете соответственный файл.ppf)
Для файла x2.h4r просто применить патч x2exc.ppf . md5-сумма оригинального файла x2.h4r из издания "Excalibur" - 09E619F907462282AA71FF561F7F43D8
MD5-сумма оригинального файла updates.h4r из издания "Excalibur" - 1E68E5249B7356822AC16523548E96C9 . Откройте его в HEX-редакторе и делайте следующее: Search->Goto... CFE14E
Edit->Insert bytes... Bytecount: 15C9 Hex-values: 00 --------------------------------------------------- Последнее место : Search->Goto... E59893
Edit->Insert bytes... Bytecount: 28E Hex-values: 00 --------------------------------------------------- После байтовых инъекций, md5-сумма будет равна: 343A4A1CDD254C46C0A27D2681371CC1 Если всё так, после всего этого применяйте на этом файле патч updates.ppf
MD5-сумма оригинального файла text.h4r из издания "Excalibur" (а может и не только из "Excalibur"а) - 5CFDCFE2B91BA29DEB218F658832BCB8 . Откройте его в HEX-редакторе и делайте следующее: Search->Goto... 7C056 - удалить один байт (один раз нажать delete) --------------------------------------------------- После, далее : Search->Goto... A2EFA
Edit->Insert bytes... Bytecount: A3 Hex-values: 00 --------------------------------------------------- Последнее место : Search->Goto... 10D019
Edit->Insert bytes... Bytecount: 1A Hex-values: 00 --------------------------------------------------- После байтовых инъекций, md5-сумма будет равна: 4D19CBC4C4E8D33742479CB57888373B Если всё так, после всего этого применяйте на этом файле патч text.ppf
Теперь что касается музыки. Если интересно что здесь не так с музыкой, и почему для music.h4r я не сделал патча, прочтите спойлер.
music.h4r пересобрали некачественно, из-за чего где-то что-то сместилось, и в игре работают только добавленные "придумщиками" этого издания композиции - это в меню игры, в городах Порядка, Жизни, Природы и Мощи, и 6 композиций в битвах. Если пойти брутальным путём, то все файлы можно, из этого порченного файла music.h4r из издания "Excalibur", восстановить. Т.е., пройтись по оффсетам, в которых указаны начала и длины запакованных файлов.gz , сохраняя каждый; на каждом применять каким-то волшебным образом, "лечащую" эти файлы команду, например: gunzip < sound.town.chaos.gz > sound.town.chaos2.gz с последующим переименовыванием sound.town.chaos2.gz обратно в sound.town.chaos.gz - теперь из этого архива.gz можно распаковать тот оригинальный файл.mp3 , что есть в оригинальном music.h4r оригинального издательства HMM4. Как оказалось, все остальные файлы композиций оригинальные (только порченные), так что возьмём их из оригинального издательства HMM4, нежели как я описал.
Т.к. архив с музыкой music.h4r из издательства "Excalibur" порченный, патчем его исправить никак неполучится, ибо патч будет весить размер-в-размер новый music.h4r, проще файл прикрепить (а это за восемьдесят мегов, здесь не прикрепишь). Можно было бы патчить так же с байтовыми инъекциями music.h4r из какого-нибудь оригинального издательства HMM4, но, тем не менее, патч всё равно весил бы в размер запакованных в .gz mp3'шек (где-нить за 40 мегов, тоже здесь не прикрепишь).
Игра вылетает по входу в арены из Gathering Storm и по входу в тюрьмы из-за порченного файла music.h4r .
Если нехотите замарачиваться с пересборкой файла music.h4r - скопируйте его из какого-нибудь другого издания HMM4, хоть из Wings of War, хоть из Epoch of Death или др. А вот как восстановить порченный, т.е., как его пересобрать:
Как пересобрать музыку - читайте третий пост, где, по сути, понадобятся только шаги 1 и 5)) Итак, установите любое другое издание HMM4. Выудите из него файл music.h4r , извлеките из него содержимое с помощью проги mh4, и пока на этом всё. Теперь, откройте в "Heroes IV Resource Explorer" (ака H4ResEx) файл music.h4r из издания "Excalibur". Пофайлово извлеките следующие файлы (выделяя и выбирая Extract current, и игнорируя ошибку "gzclose Error"): sound.combat.music.1.mp3 sound.combat.music.2.mp3 sound.combat.music.3.mp3 sound.combat.music.4.mp3 sound.combat.music.5.mp3 sound.combat.music.6.mp3 sound.credits.mp3 sound.end_turn.mp3 sound.main_menu.mp3 sound.town.life.mp3 sound.town.might.mp3 sound.town.nature.mp3 sound.town.order.mp3
Теперь, каждый нужно открыть в HEX-редакторе и добавлять строчку. Вот список со строчками:
Код
sound.combat.music.1.mp3 : 01 00 00 10 02 44 AC 00 00 00 DD 34 02 01 00 5E 3E 33 00
Например, откроем файл sound.combat.music.1.mp3 . Скопируем строчку с цифирками: 01 00 00 10 02 44 AC 00 00 00 DD 34 02 01 00 5E 3E 33 00 далее, в HEX'овом редакторе, поставить курсор мыши в самое начало этого файла, нажать Edit->Paste insert и сохранить. И так со всеми. Как сделаете это со всеми, копируйте их к оригинальным с заменой, запускайте mh4, жмите Options->Build a h4l file выбираете music.h4l и готово!
Но в главном меню играет музыка не из архива music.h4r , а из new.h4r - так что, если хотите довести дело до конца и исправить музыку и в главном меню, пересоберите и этот архив, заменив тамошний sound.main_menu.mp3 на тот, в который Вы добавляли строчку.
Единственное, что может ещё Вас не устроить, так это, по сравнению с оригинальными композициями, добавленные в издательстве "Excalibur" - громче. Можно их убавить в муз. редакторах, но тогда HEX-длины, указанные в строчках, будут другие...
P.S.: Проходил все кампании за собой исправляя, и так и не понял. ЧТО или ГДЕ здесь Excalibur?..