Introduction
Top Next

В этом HELP`е будут рассматриваться некоторые программы для изменения моделей и текстур SADX.
Полный список программ для хакинга(created by Sanic):
sadxoff_exe.exe - для извлечения отдельных обьектов SADX(не моделей)
sadxmdl.exe - для извлечения BIN`ов Sega Dreamcast
Sadxmdl-exe_kind.exe - для вырезания группы обьектов
sadmdl-dll_hack-1.exe - для вырезания отдельных обьектов из dll`ов(3D модели в формате .obj)
sadxmdl-dll.exe - для извлечения всех моделей из dll`ов
OBJ2VT.exe - конвертирует .obj файл в Vertex tree.
Мы будем рассматривать sadxmdl-dll.exe, sadmdl-dll_hack-1.exe, OBJ2VT.exe, а также pvmUnpacker и create.exe(две другие программы для работы с .pvm файлами).
Этот HELP расчитан на обычных пользователей.На примере Соника я объясню как использовать программы, приведенные выше.
Примечание: изменить анимацию персонажей или их состав не получиться т.к. суть хакинга состоит в том, что мы лишь изменим информацию о местоположении вершин(vertex) моделей при помощи Hex - редактора и прилагающихся программ.
По завершению Соник будет выглядет примерно так:


Before starting
Previous Top Next

Ïåðåä òåì êàê íà÷àòü ðåêîìåíäóåòñÿ ñäåëàòü ðåçåðâíûå êîïèè ðåäàêòèðóåìûõ ôàéëîâ.À èìåííî:
CHRMODELS.dll - çäåñü ëåæàò âñå ìîäåëè ïåðñîíàæåé.
Sonic.pvm - òåêñòóðà Ñîíèêà.
Ðåäàêòèðîâàíèå ìîäåëåé
Ðåäàêòèðîâàíèå òåêñòóð


Models editing
Previous Top Next

Для редактирования моделей нам понадобятся программы sadxmdl-dll.exe, sadmdl-dll_hack-1.exe и OBJ2VT.exe, а также какой-нибудь Hex - редактор(я использовал WinHex) и калькулятор для просчета hex и decimal значений(вполне подойдет калькулятор Windows).
Итак, приступим:
1)Откройте с помощью программы sadxmdl-dll.exe файл CHRMODELS.dll.
2)Подождите, пока программа все извлечет в .obj файл.
3)Получившийся файл импортируйте в какую-нибудь программу 3D моделирования(например 3dsmax).
4)После открытия вы увидите что-то вроде этого:

В этом "массиве" обьектов выберете нужный.Одна из голов Соника имеет имя _objgroup5674388_4(примерно).Почему голов несколько?
Дело в том, что все они используются в различных игровых ситуациях(например во время разговора используется отдельный экземпляр головы, но внешне это не заметно).Выше приведенное имя используется в игре во время прохождения.
Примечание:если вам уже известно имя объекта можно использовать программу sadmdl-dll_hack-1.exe чтобы вновь не разгребать массив.
5)После того, как нашли интересующий объект, можно приступить к редактированию.ВНИМАНИЕ:нельзя вностить изменения в редактируемую сетку и изменять позицию обьекта, иначе все сделанные изменения НЕ БУДУТ показаны в игре.

модель головы до и после изменений.
6)После завершения изменений экспортируйте модель в .obj файл.
7)Затем "пропустите"(откройте с помощью) получившийся файл через программу OBJ2VT.exe.
Теперь мы займемся внесением наших изменений в игру.
1)Откройте Hex - редактором файл CHRMODELS.dll и полученый .vt файл(out.vt).
2)Теперь посмотрите имя редактируемого обьекта.В нашем случае это _objgroup5674388_4, где первые 7 цифр - decimal offset обьекта в файле CHRMODELS, а то, что после подчеркивания - значение offset`а.Найдите offset:

3)В документации сказано "The attatch pointer is 4 bytes after this".Это означает что "указатель соединения" находится после следующих 4 байт.Пропустите следующие 3 пары чисел.Теперь нужно вычесть значение для dll из 32-х битного значения offset`а(см.окно "Data interpreter")

Примечание: я забыл сказать, что для просчета следует использовать несколько основных "ключей":
$400000 - ключ для "ексешника"
$10000000 - ключ для dll`а
$C900000 - Dreamcast binaries.
$ указывает на то, что это hex - значение
При подсчете следует учитывать, что "32-х битное значение" - decimal, а "ключ" - hex.
4)После вычитания получаем offset значение 5674344(после конвертирования полученного hex- значения 569568).Найдите его.
5)Теперь вновь проведите вычитание "ключа" для dll`а.В результате получаем значение нужного offset`а(5665656).Найдите его.
Теперь объясню, зачем мы все это делали.Мы искали это значение т.к. это - точное значение Attatch pointer`а т.е. теперь мы находимся в самом начале структуры модели.
6)Теперь откройте .vt файл, выделите его содержимое и скопируйте.Не забудьте посмотреть размер содержимого(4344 байт)

7)Теперь в файле с моделями от нужного offset`а выделите столько байт, сколько указано в размере .vt файла, и замените значения файла CHRMODELS на значения .vt файла.
8)Посмотрите на результаты в игре.
12006-02-16 12-32-57-79 112-36-53-40
Да, это то, что нам нужно.
ЗЫ:приведенные выше действия пробовались ТОЛЬКО на моделях из библиотеки CHRMODELS.dll.


Textures editing
Previous Top

Для редактирования текстур мы будем использовать программы PvmUnpacker.exe и Create.exe, а также какой-нибудь редактор растровой графики(например Adobe Photoshop или Painter).
Редактирование текстур, пожалуй, самое простое, что можно хакнуть в SADX.Мы просто будем распаковывать и запаковывать файлы, содержащие текстуры.Текстуры хранятся в .prs и .pvm файлах, но большая их часть именно в .pvm
Теперь непосредственно к делу.
1)Выберите файл с расширением .pvm и скопируйте в папку с программой PvmUnpacker.
2)Запустите программу и введите имя файла для распаковки(обязательно указав расширение)
3)Программа распакует .pvm файл во множество файлов с расширением .pvr
4)Откройте файле в вашем редакторе и внесите желаемые изменения.Чтобы открыть файлы в Photoshop`е нужно скачать дополнительный плагин.

5)Сохранив изменения, запустите программу create.exe.Этой программой мы будем запаковывать все .pvr файлы в .pvm.
6)Введите имя нового .pvm файла.Также вам предложат сделать файл на основе .plf файла.
.plf файл создается при распаковке pvm`а и содержит в себе список извлеченных файлов.Если хотите запаковать все файлы(что в большинстве случаев и нужно) используйте именно этод метод.

7)Вот и все!Остается только заменить файлы игры на только что сделанные.
Пример
112-36-53-40 12006-02-16 12-39-15-20