Title: Bravo Team (PS4) Post by: m0xf on June 17, 2018, 14:01 Модели распаковываются нормально при выборе версии 4.16-4.17, но какая-то проблема с текстурами. Вот такие ошибки:
Code:
Все ресурсы игры в одном файле (Image0\smg016\content\paks\pakchunk0-ps4.pak, 16Гб), экспортировал из него несколько пакетов: https://yadi.sk/d/_ANh966C3XzuuC Там-же eboot.bin и eboot.elf, который хоть и кривенько но загружается в IDA. Title: Re: Bravo Team (PS4) Post by: Gildor on June 17, 2018, 14:39 Я думаю, здесь проблема в том, что это PS4, и у неё свой формат текстур.
Title: Re: Bravo Team (PS4) Post by: m0xf on June 17, 2018, 15:48 Глянул более детально на текстуры, которые экспортировались в .ubulk. Добавил dds заголовок, получилась мешанина из квадратов. И тут я вспомнил про скрипт "ps4ut.py", который я когда-то давно делал для другой PS4 игры :)
Текстура собралась. Если коротко, то там используется что-то похожее на Z-curve перестановку 3 раза. Title: Re: Bravo Team (PS4) Post by: Gildor on June 17, 2018, 15:55 Отлично. Может в ближайшем будущем встрою этот код в umodel. Ещё на очереди текстуры для Nintendo Switch, вроде там тоже только swizzle другой (по крайней мере для NS я нашёл хоть какую-то информацию в интернете).
Title: Re: Bravo Team (PS4) Post by: Gildor on June 18, 2018, 21:09 Перенёс код на C++. Есть проблема: если текстура DXT5 (block_size_pixel=4), и её длина 16 или меньше, то в
Code: map_block_position(mx, my, width//block_size_pixel, 8) Есть ли какая-нибудь дополнительная информация по swizzle для ps4? Я искал в google и ничего не нашёл. Кода UE4 для PS4 у меня нет, так что нет возможности даже зацепиться за какое-то название, функцию и т.п. чтобы хотя бы поковырять PS4 SDK. Title: Re: Bravo Team (PS4) Post by: Gildor on June 18, 2018, 21:18 И вообще, если возможно, хотелось бы пример любой текстуры из представленных в первом посте, в декодированном виде - чтобы было видно что должно получиться на выходе. Я попробовал работать только с большими текстурами, и получил мусор - т.е. либо алгоритм не работает, либо я неправильно перенёс его с C++.
Title: Re: Bravo Team (PS4) Post by: m0xf on June 18, 2018, 22:12 Вот несколько исправленных текстур: https://yadi.sk/d/V4H0qvSe3Y5f9u
По поводу деления, скорее всего нужно делить с округлением в большую сторону, как это принято для определения количества блоков DDS. То же скорее всего касается и деления "w // bx". Проверить это никак не могу, все текстуры с сжатием что я находил были кратны 8. Пока искал "нестандартные" текстуры нашёл несколько пакетов: https://yadi.sk/d/ih6xgSc43Y5hS6 934x868_male_avatar_1 - возникает access violation внутри nvoglv32 FrontendButtonRight - экспортируется корректно, но отображается неверно Title: Re: Bravo Team (PS4) Post by: Gildor on June 18, 2018, 22:31 Спасибо, буду разбираться.
Title: Re: Bravo Team (PS4) Post by: Gildor on June 19, 2018, 13:41 Всё сделал. Падения поправил. Текстуры работают.
Для запуска нужно указать новую опцию -ps4 (ну или выбрать PS4 в UI). Спасибо за код расшифровщика текстур, он работает. Сделал только дополнение для маленьких текстур (меньше 32x32). |