Перейти к содержимому


Внимание!

Это форум по извлечению ресурсов из игр: музыки, звуков, текстур, 3D-моделей...
Перед поиском ответов на форуме, рекомендуется ознакомиться с основным сайтом EXTRACTOR.ru!
[ Прочтите внимательно - правила создания тем и ответа в них ]
Все вопросы по запуску игр задавайте в другом месте: Установка и запуск игр.


Фотография

Godfather


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 49

#21 jTommy

jTommy

    Старший прапорщик

  • Пользователи
  • 195 сообщений
  • Город:Moscow

Отправлено 01 May 2006 - 09:43

-=CHE@TER=-:
к сожалению, я немного забросил распаковку - есть неотложные дела.

shaokahn:
наоборот. eaconv конвертирует новый формат, который появился начиная с underground'а.

#22 -=CHE@TER=-

-=CHE@TER=-

    Полковник

  • Администраторы
  • 971 сообщений
  • Пол:Мужчина

Отправлено 03 May 2006 - 21:39

jTommy!
eaconv.exe версии 0.1c и старый формат, вроде, конвертирует.

shaokahn!
Парсер могу выложить... Короче, описываю суть проблемы:
Если я сейчас выкладываю парсер, то потом по сети будет ходить сделанные самопалом на нём версии всяких extractor'ов, которые через пень-колоду и абы-как распаковывают музыку. Если вам не обломно такими вещами пользоваться - пожалуйста. Я знаю по личному опыту, что стоит один раз написать прогу, которая, якобы, вытаскивает музыку - как она тутже расползётся по всей сети. Все вытащат при помощи неё кривой музон и благополучно забудут об этом деле. И даже если ты потом уже сделаешь правильную программу - хорошо если её хотя бы 1% заново скачает и воспользуется.

У меня всё никак руки не доходят до .MPF файла одну идею проверить - занят сильно.

Короче - предлагаю так: если вы ещё раз просите программу-парсер - я её выкладываю, но НИКАКОЙ ответственности за все те горе-конвертеры, которые потом будут мелькать в сети, я не несу. Делайте, что хотите, а мы тут будем по маленьку правильный конвертер собирать...

#23 -=CHE@TER=-

-=CHE@TER=-

    Полковник

  • Администраторы
  • 971 сообщений
  • Пол:Мужчина

Отправлено 06 May 2006 - 12:06

Прошу прощения, что пишу второй раз подряд, но я, кажется, кое-что накопал - вот:

Код

  0   0  73   0   1 127   0   0   1   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20   3   0  20  65  24   0
 65 110  44   0 110 127  58   0   2   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20   4   0  20  65  25   0
 65 110  44   0 110 127  58   0   3   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20   5   0  20  65  26   0
 65 110  44   0 110 127  58   0   4   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20   6   0  20  65  27   0
 65 110  44   0 110 127  58   0   5   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20   7   0  20  65  28   0
 65 110  44   0 110 127  58   0   6   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20   8   0  20  65  29   0
 65 110  44   0 110 127  58   0   7   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20   9   0  20  65  30   0
 65 110  44   0 110 127  58   0   8   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20  10   0  20  65  31   0
 65 110  44   0 110 127  58   0   9   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20  11   0  20  65  32   0
 65 110  44   0 110 127  58   0  10   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20  12   0  20  65  33   0
 65 110  44   0 110 127  58   0  11   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20  13   0  20  65  34   0
 65 110  44   0 110 127  58   0  12   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20  14   0  20  65  35   0
 65 110  44   0 110 127  58   0  13   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20  15   0  20  65  36   0
 65 110  44   0 110 127  58   0  14   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20  16   0  20  65  37   0
 65 110  44   0 110 127  58   0  15   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20  17   0  20  65  38   0
 65 110  44   0 110 127  58   0  16   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20  18   0  20  65  39   0
 65 110  44   0 110 127  58   0  17   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20  19   0  20  65  40   0
 65 110  44   0 110 127  58   0  18   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20  20   0  20  65  41   0
 65 110  47   0 110 127  62   0  19   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20  21   0  20  65  42   0
 65 110  47   0 110 127  62   0  20   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20  22   0  20  65  43   0
 65 110  47   0 110 127  62   0  21   0  32   0  17  64  64   1   0   0   0   4   0   0   0   0 255  20   6   0  20  65  23   0
 65 110  47   0 110 127  62   0  22   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20   3   0  20  65  24   0
 65 110  44   0 110 127  58   0  23   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20   4   0  20  65  25   0
 65 110  44   0 110 127  58   0  24   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20   5   0  20  65  26   0
 65 110  44   0 110 127  58   0  25   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20   6   0  20  65  27   0
 65 110  44   0 110 127  58   0  26   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20   7   0  20  65  28   0
 65 110  44   0 110 127  58   0  27   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20   8   0  20  65  29   0
 65 110  44   0 110 127  58   0  28   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20   9   0  20  65  30   0
 65 110  44   0 110 127  58   0  29   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20  10   0  20  65  31   0
 65 110  44   0 110 127  58   0  30   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20  11   0  20  65  32   0
 65 110  44   0 110 127  58   0  31   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20  12   0  20  65  33   0
 65 110  44   0 110 127  58   0  32   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20  13   0  20  65  34   0
 65 110  44   0 110 127  58   0  33   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20  14   0  20  65  35   0
 65 110  44   0 110 127  58   0  34   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20  15   0  20  65  36   0
 65 110  44   0 110 127  58   0  35   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20  16   0  20  65  37   0
 65 110  44   0 110 127  58   0  36   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20  17   0  20  65  38   0
 65 110  44   0 110 127  58   0  37   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20  18   0  20  65  39   0
 65 110  44   0 110 127  58   0  38   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20  19   0  20  65  40   0
 65 110  44   0 110 127  58   0  39   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20  20   0  20  65  41   0
 65 110  47   0 110 127  62   0  40   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20  21   0  20  65  42   0
 65 110  47   0 110 127  62   0  41   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20  22   0  20  65  43   0
 65 110  47   0 110 127  62   0  42   0  32   0  22  64  64   1   0   0   0   4   0   0   0   0 255  20   6   0  20  65  23   0
 65 110  47   0 110 127  62   0  43   0  32   0  26  64  64   1   0   0   0   4   0   0   0   0 255  20   6   0  20  65  23   0
 65 110  45   0 110 127  59   0  44   0  32   0  26  64  64   1   0   0   0   4   0   0   0   0 255  20   6   0  20  65  23   0
 65 110  46   0 110 127  61   0  45   0  32   0  26  64  64   1   0   0   0   4   0   0   0   0 255  20   6   0  20  65  23   0
 65 110  47   0 110 127  62   0  46   0  32   0  26  64  64   1   0   0   0   4   0   0   0   0 255  20  19   0  20  65  40   0
 65 110  48   0 110 127  63   0  47   0  32   0  26  64  64   1   0   0   0   4   0   0   0   0 255  20  19   0  20  65  40   0
 65 110  49   0 110 127  64   0  48   0  32   0  26  64  64   1   0   0   0   4   0   0   0   0 255  20  19   0  20  65  40   0
 65 110  50   0 110 127  65   0  49   0  32   0  26  64  64   1   0   0   0   4   0   0   0   0 255  20  19   0  20  65  40   0
 65 110  51   0 110 127  66   0  50   0  32   0  26  32  64   1   0   0   0   4   0   0   0   0                                
 65 110  52   0 110 127  67   0  51   0  32   0  26  64  64   1   0   0   0   4   0   0   0   0 255  20  19   0  20  65  40   0
 65 110  53   0 110 127  68   0  52   0  32   0  26  64  64   1   0   0   0   4   0   0   0   0 255  20  10   0  20  65  31   0
 65 110  54   0 110 127  69   0  53   0  32   0  26  64  64   1   0   0   0   4   0   0   0   0 255  20  10   0  20  65  31   0
 65 110  55   0 110 127  70   0  54   0  32   0  26  64  64   1   0   0   0   4   0   0   0   0 255  20  10   0  20  65  31   0
 65 110  56   0 110 127  71   0  55   0  32   0  26  64  64   1   0   0   0   4   0   0   0   0 255  20  10   0  20  65  31   0
 65 110  57   0 110 127  72   0  56   0  32   0  26  64  64   1   0   0   0   4   0   0   0   0 255  20  10   0  20  65  31   0
 65 110  44   0 110 127  58   0  57   0  32   0  25  64  64   1   0   0   0   4   0   0   0   0 255  20   6   0  20  65  23   0
 65 110  45   0 110 127  59   0  58   0  32   0  25  64  64   1   0   0   0   4   0   0   0   0 255  20   6   0  20  65  23   0
 65 110  45   0 110 127  60   0  59   0  32   0  25  64  64   1   0   0   0   4   0   0   0   0 255  20   6   0  20  65  23   0
 65 110  46   0 110 127  61   0  60   0  32   0  25  64  64   1   0   0   0   4   0   0   0   0 255  20   6   0  20  65  23   0
 65 110  47   0 110 127  62   0  61   0  32   0  25  64  64   1   0   0   0   4   0   0   0   0 255  20  19   0  20  65  40   0
 65 110  48   0 110 127  63   0  62   0  32   0  25  64  64   1   0   0   0   4   0   0   0   0 255  20  19   0  20  65  40   0
 65 110  49   0 110 127  64   0  63   0  32   0  25  64  64   1   0   0   0   4   0   0   0   0 255  20  19   0  20  65  40   0
 65 110  50   0 110 127  65   0  64   0  32   0  25  64  64   1   0   0   0   4   0   0   0   0 255  20  19   0  20  65  40   0
 65 110  51   0 110 127  66   0  65   0  32   0  25  32  64   1   0   0   0   4   0   0   0   0                                
 65 110  52   0 110 127  67   0  66   0  32   0  25  64  64   1   0   0   0   4   0   0   0   0 255  20  19   0  20  65  40   0

Это результат распарсивания файла MW_Music_D.mpf из NFS9MW DEMO.

Прошу обратить внимание на 9-ый слева столбец - это, видимо, порядковый номер строки таблицы, так как постоянно увеличивается.
И, наконец, 6-ой справа - это, как мне кажется, то, что мы ищем - порядок проигрывания композиций (правда я за это не ручаюсь).

О таблице:
- 32 байта строка (я их тут как раз и вывел)
- прошу обратить внимение на строки, где нехватает в конце 8-ми байт - это конец одной таблицы и начало другой, как он определяется я пока не знаю, так что выравнял вручную
- я не уверен, что у меня правильно стоит смещение начала таблицы - т.к. я сдвигал, скажем так, "на глаз"

Это одна из первых таблиц в .MPF файле (её начало), за что отвечают другие - пока не знаю, буду разбираться.

Если кто-то будет смотреть эту таблицу, то лучше делать это через текстовый файл, т.к. из-за переносов непонятно что и куда.

Если у кого-то есть ещё соображения - пишите, обсудим, только без оффтопика.

#24 Siberian_GRemlin

Siberian_GRemlin

    Старший прапорщик

  • Пользователи
  • 166 сообщений
  • Город:Красноярск

Отправлено 07 May 2006 - 06:18

-=CHE@TER=-
Возьми, поменяй пару значений и поиграй, если время есть, то методом тыка можно выяснить какой столбец и за что отвечает и т.д. Я так с несколькими играми делал, чтобы понять для чего нужны некоторые байты, назначение которых изначально небыло очевыдным...

#25 -=CHE@TER=-

-=CHE@TER=-

    Полковник

  • Администраторы
  • 971 сообщений
  • Пол:Мужчина

Отправлено 07 May 2006 - 21:41

Siberian_GRemlin!
Дело в том, что у меня все NFS начиная с первого Underground'а не идут. (*улыбается*)

#26 Siberian_GRemlin

Siberian_GRemlin

    Старший прапорщик

  • Пользователи
  • 166 сообщений
  • Город:Красноярск

Отправлено 11 May 2006 - 15:34

-=CHE@TER=-
Предлагаю написать небольшой редактор, желательно удобный и поручить кому-нибудь поэксперементировать с игрой\играми с MPF файлами...

#27 -=CHE@TER=-

-=CHE@TER=-

    Полковник

  • Администраторы
  • 971 сообщений
  • Пол:Мужчина

Отправлено 12 May 2006 - 17:40

Siberian_GRemlin
О! Первая здравая идея, которую я услышал с начала этого топика.
Ок, тогда я чего-нить налобаю, как время появится, и попрошу кого-нить, кто может, потестить.

#28 -=CHE@TER=-

-=CHE@TER=-

    Полковник

  • Администраторы
  • 971 сообщений
  • Пол:Мужчина

Отправлено 21 May 2006 - 18:20

Народ!
Нет времени и представлений, что ещё можно с этим форматом делать, да и к тому же, у меня нет возможности проверить свои соображения.

Я могу полностью отдать исходные коды двум людям: Xplorer'у и jTommy. Не в обиду всем остальными - просто я сомневаюсь, что кто-то ещё сможет это сделать или вообще у него будет желание за это браться.
Если кого-то из вышеперечисленных всё это интересует - чиркните в личку свои соображения и e-mail, куда слать ценную бандероль.

Мне не хотелось бы это всё забрасывать, поэтому буду рад, если кто-нибудь примет эстафету заместо меня.

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

Если никого из вышеперечисленных это не заинтересует - выложу парсер, который будет сразу склеивать, что ему укажешь - там уже, фанаты сами, на слух, найдут что с чем склеивать. Может и неверно, но хоть что-то чем ничего. Просто хотелось сделать правильный распаковщик...

Формат надо расковырять, т.к. EA его будет во всех следующих играх использовать.

#29 jTommy

jTommy

    Старший прапорщик

  • Пользователи
  • 195 сообщений
  • Город:Moscow

Отправлено 21 May 2006 - 21:30

Жаль, Xplorer куда-то пропал, у него неплохо получалось анализировать табличные данные.
А что у тебя реализовано в исходниках? Или ты говоришь про Total Converter?
И еще вопросик: кто правильно определяет кол-во кусочков в mus-файле, eatools или gap?

Сейчас посмотрел все nfs. Аналог mpf-файла есть еще в nfs3, но в виде отдельных .lin и .map файлов.

P.S.: Мне кажется что аудио данные в mus-файле закодированы не вариантом mp3 а вариантом ADPCM. На это указывает разница в 4 раза в размерах сжатых и распакованных данных. И тот факт, что кое-какие звуки можно уловить, если послушать mus-файл. Если так, то это на порядок легче. Но это сейчас не главное.

#30 Siberian_GRemlin

Siberian_GRemlin

    Старший прапорщик

  • Пользователи
  • 166 сообщений
  • Город:Красноярск

Отправлено 22 May 2006 - 06:27

jTommy
Кодирование и декодирование MUS сейчас проблемы не составляет, нужно MPF ковырять!

#31 -=CHE@TER=-

-=CHE@TER=-

    Полковник

  • Администраторы
  • 971 сообщений
  • Пол:Мужчина

Отправлено 22 May 2006 - 14:04

jTommy!
1) А что у тебя реализовано в исходниках? Или ты говоришь про Total Converter?
Я говорю про nfs9mwme (Music Extracotr) - там алгоритм пропарсивания и склеивания .MUS файлов в один, чтобы eatools мог его как один .WAV обработать (по большей части у меня там реализована работа со структурой .MUS файлов).
Этот алгоритм я потом целиком засунул в Total Converter.
2) И еще вопросик: кто правильно определяет кол-во кусочков в mus-файле, eatools или gap?
Правильно определяет GAP. Конвертер eaconv.exe, зачем-то склеивает некоторые .MUS файлы в один (я так и не понял почему, наверное он склеивает те, которые идут друг за другом без пустых выравнивающих полей между ними). Как следствие, если его просто натравить в тупую на здоровый .MUS файл от NFS9 или The Godfather, то он вытащит кучу .WAV, но некоторые из них будут представлять собой склееные между собой .MUS файлы. На этом накололись все, кто делал конвертер для музыки - там получалось, что у тебя в одном .WAV файле начало и конец разных песен. Только когда я уже сам, вручную, в nfs9mwme пропарсил и сделал готовые .MUS файлы - только тогда песни стали верно извлекаться (в MCT я знал, что там начало/конец не такие и приходилось резать где попало .WAV файлы, чтобы левые куски не попадались).
Если нужно - чиркни в личку e-mail, вышлю исходные коды.

Вы правы - сейчас действительно нужно разобраться с .MPF файлом, тогда можно через nfs9mwme склеить куски и для конвертирования юзать хоть тот же VAG'овский конвертер.

#32 Xplorer

Xplorer

    Старшина

  • Пользователи
  • 86 сообщений

Отправлено 24 May 2006 - 11:49

У меня сейчас нет ни одной игры с MPF файлами, так что помочь пока ничем не могу.

P.S. Насколько я помню, в NFS:U2 тоже есть MPF файл.

#33 -=CHE@TER=-

-=CHE@TER=-

    Полковник

  • Администраторы
  • 971 сообщений
  • Пол:Мужчина

Отправлено 24 May 2006 - 15:11

Xplorer!
Большое тебе спасибо, что откликнулся!
А DEMO от NFS9 тебе подойдёт?
MW_Music_D.mus - 85 Мб.
Есть ли у тебя возможность откуда-нибудь скачать?
Кстати, а если тебе прислать .MPF файл и ещё какой-нибудь, в котором, скажем, для статистики занесены только размеры и смещения .MUS файлов внутри большого? Этого будет достаточно или нет?

И да, про NFS:U2 - ты верно заметил. Там тоже есть. Попробую достать и посмотреть что к чему, там динамической музыки не было, и все трэки подряд шли. Может что и выгорит.

#34 -=CHE@TER=-

-=CHE@TER=-

    Полковник

  • Администраторы
  • 971 сообщений
  • Пол:Мужчина

Отправлено 25 May 2006 - 12:54

Прошу прощения, что два поста подряд, но кое-что накопал:
Код

.text:0073A510 sub_73A510      proc near              ; CODE XREF: sub_483F20+28p
.text:0073A510
.text:0073A510 var_4           = dword ptr -4
.text:0073A510 arg_0           = dword ptr  4
.text:0073A510
.text:0073A510                 push    ecx
.text:0073A511                 mov     al, byte_8B7BBC
.text:0073A516                 test    al, al
.text:0073A518                 push    edi
.text:0073A519                 mov     edi, 4
.text:0073A51E                 mov     [esp+8+var_4], 0FFFFFFFFh
.text:0073A526                 jnz     short loc_73A52D
.text:0073A528                 call    sub_73A480
.text:0073A52D
.text:0073A52D loc_73A52D:                            ; CODE XREF: sub_73A510+16j
.text:0073A52D                 mov     eax, dword_8B7BC0
.text:0073A532                 test    eax, eax
.text:0073A534                 jz      short loc_73A53E
.text:0073A536                 mov     eax, 0FFFFFFEEh
.text:0073A53B                 pop     edi
.text:0073A53C                 pop     ecx
.text:0073A53D                 retn
.text:0073A53E; ---------------------------------------------------------------------------
.text:0073A53E
.text:0073A53E loc_73A53E:                            ; CODE XREF: sub_73A510+24j
.text:0073A53E                 mov     eax, dword_8B5744
.text:0073A543                 push    ebx
.text:0073A544                 mov     ebx, [esp+0Ch+arg_0]
.text:0073A548                 push    ebp
.text:0073A549                 xor     ebp, ebp
.text:0073A54B                 test    eax, eax
.text:0073A54D                 push    esi
.text:0073A54E                 movzx   esi, byte ptr [ebx+0Ch]
.text:0073A552                 jnz     short loc_73A558
.text:0073A554                 xor     edi, edi
.text:0073A556                 jmp     short loc_73A565
.text:0073A558; ---------------------------------------------------------------------------
.text:0073A558
.text:0073A558 loc_73A558:                            ; CODE XREF: sub_73A510+42j
.text:0073A558                 movzx   eax, byte ptr [eax+0Ch]
.text:0073A55C                 cmp     eax, esi
.text:0073A55E                 jnz     short loc_73A565
.text:0073A560                 mov     ebp, 1
.text:0073A565
.text:0073A565 loc_73A565:                            ; CODE XREF: sub_73A510+46j
.text:0073A565                                        ; sub_73A510+4Ej
.text:0073A565                 mov     eax, dword_8B606C
.text:0073A56A                 test    eax, eax
.text:0073A56C                 jnz     short loc_73A57A
.text:0073A56E                 cmp     edi, 4
.text:0073A571                 jnz     short loc_73A583
.text:0073A573                 mov     edi, 1
.text:0073A578                 jmp     short loc_73A583
.text:0073A57A; ---------------------------------------------------------------------------
.text:0073A57A
.text:0073A57A loc_73A57A:                            ; CODE XREF: sub_73A510+5Cj
.text:0073A57A                 movzx   ecx, byte ptr [eax+0Ch]
.text:0073A57E                 cmp     ecx, esi
.text:0073A580                 jnz     short loc_73A583
.text:0073A582                 inc     ebp
.text:0073A583
.text:0073A583 loc_73A583:                            ; CODE XREF: sub_73A510+61j
.text:0073A583                                        ; sub_73A510+68j ...
.text:0073A583                 mov     eax, dword_8B6994
.text:0073A588                 test    eax, eax
.text:0073A58A                 jnz     short loc_73A598
.text:0073A58C                 cmp     edi, 4
.text:0073A58F                 jnz     short loc_73A5A1
.text:0073A591                 mov     edi, 2
.text:0073A596                 jmp     short loc_73A5A1
.text:0073A598; ---------------------------------------------------------------------------
.text:0073A598
.text:0073A598 loc_73A598:                            ; CODE XREF: sub_73A510+7Aj
.text:0073A598                 movzx   edx, byte ptr [eax+0Ch]
.text:0073A59C                 cmp     edx, esi
.text:0073A59E                 jnz     short loc_73A5A1
.text:0073A5A0                 inc     ebp
.text:0073A5A1
.text:0073A5A1 loc_73A5A1:                            ; CODE XREF: sub_73A510+7Fj
.text:0073A5A1                                        ; sub_73A510+86j ...
.text:0073A5A1                 mov     eax, dword_8B72BC
.text:0073A5A6                 test    eax, eax
.text:0073A5A8                 jnz     short loc_73A5B6
.text:0073A5AA                 cmp     edi, 4
.text:0073A5AD                 jnz     short loc_73A5C2
.text:0073A5AF                 mov     edi, 3
.text:0073A5B4                 jmp     short loc_73A5BF
.text:0073A5B6; ---------------------------------------------------------------------------
.text:0073A5B6
.text:0073A5B6 loc_73A5B6:                            ; CODE XREF: sub_73A510+98j
.text:0073A5B6                 movzx   eax, byte ptr [eax+0Ch]
.text:0073A5BA                 cmp     eax, esi
.text:0073A5BC                 jnz     short loc_73A5BF
.text:0073A5BE                 inc     ebp
.text:0073A5BF
.text:0073A5BF loc_73A5BF:                            ; CODE XREF: sub_73A510+A4j
.text:0073A5BF                                        ; sub_73A510+ACj
.text:0073A5BF                 cmp     edi, 4
.text:0073A5C2
.text:0073A5C2 loc_73A5C2:                            ; CODE XREF: sub_73A510+9Dj
.text:0073A5C2                 jge     loc_73A709
.text:0073A5C8                 cmp     dword ptr [ebx], 50464478h
.text:0073A5CE                 jnz     loc_73A709
.text:0073A5D4                 cmp     byte ptr [ebx+4], 4
.text:0073A5D8                 jnz     loc_73A709
.text:0073A5DE                 mov     edx, edi
.text:0073A5E0                 imul    edx, 928h
.text:0073A5E6                 xor     eax, eax
.text:0073A5E8                 lea     edi, dword_8B5710[edx]
.text:0073A5EE                 mov     ecx, 24Ah
.text:0073A5F3                 rep stosd
.text:0073A5F5                 mov     ecx, ebp
.text:0073A5F7                 mov     eax, 10000000h
.text:0073A5FC                 shl     eax, cl
.text:0073A5FE                 mov     ecx, esi
.text:0073A600                 mov     edi, 1000000h
.text:0073A605                 shl     edi, cl
.text:0073A607                 mov     dword_8B5744[edx], ebx
.text:0073A60D                 or      eax, edi
.text:0073A60F                 push    eax
.text:0073A610                 mov     dword_8B5740[edx], eax
.text:0073A616                 call    sub_73B3D0
.text:0073A61B                 mov     edx, dword_8B7BB0
.text:0073A621                 mov     eax, [edx+34h]
.text:0073A624                 add     eax, 20h
.text:0073A627                 mov     [edx+38h], eax
.text:0073A62A                 mov     ecx, [edx+34h]
.text:0073A62D                 movzx   ecx, word ptr [ecx+12h]
.text:0073A631                 lea     eax, [eax+ecx*2]
.text:0073A634                 mov     [edx+3Ch], eax
.text:0073A637                 mov     eax, [edx+34h]
.text:0073A63A                 movzx   ecx, word ptr [eax+12h]
.text:0073A63E                 mov     edi, [edx+38h]
.text:0073A641                 movsx   ecx, word ptr [edi+ecx*2-2]
.text:0073A646                 lea     eax, [eax+ecx*4]
.text:0073A649                 mov     ecx, [eax+4]
.text:0073A64C                 shr     ecx, 0Ch
.text:0073A64F                 and     ecx, 1Fh
.text:0073A652                 lea     eax, [eax+ecx*4+13h]
.text:0073A656                 and     eax, 0FFFFFFFCh
.text:0073A659                 mov     [edx+40h], eax
.text:0073A65C                 mov     ecx, [edx+34h]
.text:0073A65F                 movzx   ecx, byte ptr [ecx+0Fh]
.text:0073A663                 lea     eax, [eax+ecx*2+3]
.text:0073A667                 and     eax, 0FFFFFFFCh
.text:0073A66A                 mov     [edx+44h], eax
.text:0073A66D                 mov     eax, [edx+34h]
.text:0073A670                 movzx   ecx, byte ptr [eax+0Fh]
.text:0073A674                 mov     edi, [edx+40h]
.text:0073A677                 movsx   ecx, word ptr [edi+ecx*2-2]
.text:0073A67C                 lea     eax, [eax+ecx*4]
.text:0073A67F                 xor     ecx, ecx
.text:0073A681                 mov     cl, [eax+0Eh]
.text:0073A684                 add     esp, 4
.text:0073A687                 and     ecx, 3Fh
.text:0073A68A                 shl     ecx, 4
.text:0073A68D                 lea     eax, [ecx+eax+13h]
.text:0073A691                 and     eax, 0FFFFFFFCh
.text:0073A694                 mov     [edx+48h], eax
.text:0073A697                 mov     ecx, [edx+34h]
.text:0073A69A                 movzx   edi, byte ptr [ecx+10h]
.text:0073A69E                 mov     eax, [eax+edi*4]
.text:0073A6A1                 lea     eax, [ecx+eax*4]
.text:0073A6A4                 mov     [edx+4Ch], eax
.text:0073A6A7                 mov     ecx, [edx+34h]
.text:0073A6AA                 movzx   ecx, byte ptr [ecx+0Dh]
.text:0073A6AE                 lea     eax, [eax+ecx*4+4]
.text:0073A6B2                 mov     [edx+50h], eax
.text:0073A6B5                 mov     eax, [edx+34h]
.text:0073A6B8                 mov     edi, [edx+4Ch]
.text:0073A6BB                 movzx   ecx, byte ptr [eax+0Dh]
.text:0073A6BF                 mov     ecx, [edi+ecx*4]
.text:0073A6C2                 lea     eax, [eax+ecx*4]
.text:0073A6C5                 mov     [edx+54h], eax
.text:0073A6C8                 xor     eax, eax
.text:0073A6CA                 lea     edi, [edx+0DCh]
.text:0073A6D0                 mov     ecx, 10h
.text:0073A6D5                 rep stosd
.text:0073A6D7                 mov     dword ptr [edx+0Ch], 32h
.text:0073A6DE                 mov     dword ptr [edx+10h], 0Ah
.text:0073A6E5                 xor     ecx, ecx
.text:0073A6E7                 mov     dword ptr [edx+14h], 3E8h
.text:0073A6EE                 mov     dword ptr [edx+18h], 1
.text:0073A6F5                 mov     eax, esi
.text:0073A6F7                 mov     dword_8B7BC0, ecx
.text:0073A6FD                 mov     dword_8B7BB0, ecx
.text:0073A703                 pop     esi
.text:0073A704                 pop     ebp
.text:0073A705                 pop     ebx
.text:0073A706                 pop     edi
.text:0073A707                 pop     ecx
.text:0073A708                 retn
.text:0073A709; ---------------------------------------------------------------------------
.text:0073A709
.text:0073A709 loc_73A709:                            ; CODE XREF: sub_73A510:loc_73A5C2j
.text:0073A709                                        ; sub_73A510+BEj ...
.text:0073A709                 mov     eax, [esp+14h+var_4]
.text:0073A70D                 pop     esi
.text:0073A70E                 pop     ebp
.text:0073A70F                 xor     ecx, ecx
.text:0073A711                 pop     ebx
.text:0073A712                 mov     dword_8B7BC0, ecx
.text:0073A718                 mov     dword_8B7BB0, ecx
.text:0073A71E                 pop     edi
.text:0073A71F                 pop     ecx
.text:0073A720                 retn
.text:0073A720 sub_73A510      endp


Это дизассемблированный под IDA speed2.exe от Underground2.

Код
.text:0073A5C8                 cmp     dword ptr [ebx], 50464478h
.text:0073A5CE                 jnz     loc_73A709
.text:0073A5D4                 cmp     byte ptr [ebx+4], 4
.text:0073A5D8                 jnz     loc_73A709


50464478h - это сигнатура .MPF файла - "xDFP"
Следом идёт cmp [ebx+4], 4 <- это сравнение пятого байта с 4-ой, и если он не равен - тогда перейти на завершение данной процедуры.
Посмотрел .MPF файл от NFSU2 - там, действительно, 5-ый байт - 4-ка.
В .MPF от NFS9MW и The Godfather - там 5-ка, т.е. формат изменился.
Я так предпологаю, что это версия .MPF формата.
Плюс в .MPF файле от NFSU2 я НЕ нашёл секции с именами (типа "pursuitid" и т.д.).
Так что там, в чём-то, схожие форматы, но 5-ый - расширили.
Один фиг - с U2 не проще. Хотя там в .MUS файле всего 43 штуки .MUS (видимо, тогда их ещё не били на куски по 3-5 секунд) и они идут сразу, без 256-ти байт в заголовке.

У кого ещё будут какие соображения?..

#35 Xplorer

Xplorer

    Старшина

  • Пользователи
  • 86 сообщений

Отправлено 26 May 2006 - 18:09

-=CHE@TER=-
Ладно, попробую собрать все игры, где есть MPF файлы.

#36 dimi

dimi

    Старшина

  • Пользователи
  • 82 сообщений

Отправлено 27 May 2006 - 07:58

Если нужны MPF файлы в одельности то могу подогнать их из всех последних игр Electronic Arts.

#37 Xplorer

Xplorer

    Старшина

  • Пользователи
  • 86 сообщений

Отправлено 28 May 2006 - 06:41

Спасибо, но скорее всего мне понадобится MPF + MUS + возможность запустить игру.

#38 shaokahn

shaokahn

    Ефрейтор

  • Пользователи
  • 7 сообщений

Отправлено 20 June 2006 - 13:41

Похоже что дело с экстрактором музыки зашло в тупик.
Тогда может кто нибудь сделает прогу которая просто бы mus файлы распаковывала и все конвертировала в wav? (сам то я в программировании не рублю)
А кому надо тот, наверное, и сам все склеит в отдельные треки.
Заранее спасибо!

#39 shaokahn

shaokahn

    Ефрейтор

  • Пользователи
  • 7 сообщений

Отправлено 20 June 2006 - 13:43

Похоже что дело с экстрактором музыки зашло в тупик.
Тогда может кто нибудь сделает прогу которая просто бы mus файлы распаковывала и все конвертировала в wav? (сам то я в программировании не рублю)
А кому надо тот, наверное, и сам все склеит в отдельные треки.
Заранее спасибо!
PS Извините за повторное сообщение. просто вывело ошибку об отправке и пришлось повторить.
Кстати, а свои сообщения можно удалять?

#40 The Godfather

The Godfather

    Рядовой

  • Пользователи
  • 3 сообщений

Отправлено 29 June 2006 - 06:11

У меня есть прога, чтобы без проблем вытаскивать файлы из Most Wanted, причем она делает сразу готовые и целые MP3 или WAV. Выложить? Может переделаете?