Перейти к содержимому
Zone of Games Forum
z0z1ch

Помогите распаковать .dek

Рекомендованные сообщения

Добрый день.

Необходимо вытащить графику из .dek файлов (присутствуют в играх для iso от компании Playdek Games).

Один добрый человек пытался мне помочь и добился определенных успехов (получилось извлечь звуки и текст), результат его трудов и .dek файлы здесь.

Если у кого-нибудь получится достать графику буду благодарен.

Спасибо!

Поделиться сообщением


Ссылка на сообщение

z0z1ch, тебе нужна просто графика карточек для CnC?

типа такой? http://rgho.st/8HzQ6bhk9.view

Изменено пользователем LinXP

Поделиться сообщением


Ссылка на сообщение

 

LinXP, да нужна именно графика карточек, игрового поля и т.д., если подскажете способ как её достать (т.к. интересует не только данная игра) буду признателен, спасибо.

Изменено пользователем z0z1ch

Поделиться сообщением


Ссылка на сообщение

Есть какой-нибудь прогресс по извлечению графических ресурсов из dek-файлов?

Я пробовал ковырять файлы из Summoner Wars как для ios, так и для android ( https://yadi.sk/d/1Vt9sPZgv3CMQ )

В целом текстуры извлекаются относительно просто, их можно найти в сырых извлеченных данных из раздела с данными, по ссылке выше есть пример такой текстуры. Но основная проблема в том, что не могу понять, почему текстуры в файлах получаются битыми. Я вручную сидел биты перебирал, там полностью правильный и корректный формат DEFLATE с динамическими кодами Хаффмана. Если кто чем поможет, буду безумно признателен.

Изменено пользователем Akuma_Izra

Поделиться сообщением


Ссылка на сообщение
В целом текстуры извлекаются относительно просто...

Если есть возможность, напишите инструкцию как это сделать, спасибо.

Изменено пользователем z0z1ch

Поделиться сообщением


Ссылка на сообщение
Если есть возможность, напишите инструкцию как это сделать, спасибо.

Я просто распаковываю raw deflate данные по смещению 0x2000 или 0x3000 (нужно просто смотреть докуда идет заголовок файла, а потом выравнять по 0x1000). Для большинства файлов это 0x2000

Распаковку делаю с помощью питона 3.4+:

import struct, zlib, sysfile = open(sys.argv[1], "rb")file.seek(0x24) # тут указывается размер упакованных данныхsize = struct.unpack("I", file.read(4))[0]file.seek(0x2000)open("dump.data", "wb").write(file.read(size))

 

Полученный файл в целом можно открыть GIMP'ом как raw-изображение RGBA. Там только нужно подобрать размеры текстуры и смещение в файле. Размеры текстуры равняются обычно степеням двойки (128х128, 256х256 и т.д).

Но у меня часть текстуры получается битой. Причину понять не могу. Я даже декомпилировал андроид версию Summoner Wars, там в коде при загрузке из файлов вызывается обычная inflate функция zlib'а версии 1.2.3.

Пример текстуры, что получается извлечь из non_scene.dek можно найти по моей ссылке выше, там кстати она почему-то ещё и со смещением расположена относительно начала данных.

Поделиться сообщением


Ссылка на сообщение

В общем DEK формат - это довольно простой контейнер.

В зависимости от игры, там меняются немного заголовки, но смысл в целом неизменен.

В начале идет количество папок внутри файла.

Затем идет описание этих папок, в каждом из которых указано количество файлов в папке, смещение в файле, где данные папки лежат и размер этой папки.

По смещению папки идет описание файлов, обычно идет хеш файла, тип файла, смещение и размер в хидер секции папки, смещение и размер в дата секции папки.

После описания файлов идет индексация файлов, там просто напротив хеша ставится номер данного файла(бесполезная штука).

После этого указатель внутри файла выравнивается на следующее значение кратное 0x1000.

Само содержимое папки представляет собой raw deflate, который можно распаковать zlib'ом. Оно поделено на две секции: хидер и дата. В первой содержится описание текстур и обычные файлы. Когда первая секция заканчивается, идет также выравнивание на значение кратное 0x1000, после этого идет секция дата, здесь обычно лежат сами текстуры.

В хидер части обычно указывается размер текстуры. Сама текстура может быть пожата(DXT, PVRTC и прочие), а может быть и нет.

Но иногда вылазят неожиданности, например у Summoner Wars хидер секция битая и половина первой текстуры смешивается с данной секцией. Иногда смещения немного странно смещаются, так что приходится искать правильное.

В Lord of Waterdeep например у заголовков другие смещения, хоть и с тем же смыслом, а в файле cards_hd.dek лежат карты несжатых текстур в RGBA8888, но со странными размерами данных, хоть и превосходно открываются GIMP'ом.

В целом, могу помочь распаковать, но окончательную обработку тебе придется делать самому, у меня на это времени просто не хватает.

Изменено пользователем Akuma_Izra

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Продвигаемые темы

  • Последние сообщения

    • Набор всех игр серии дешевле же (правда туда написали ненужных наборов артов\саунтреков) … ждешь удобную цену? Тоже список имеется и тоже в раздумиях брать\не брать, хотя в библиотеке еще 60-70% игр которые все еще ждут “часа активации” (чтоб я их установил и поиграл, наконец таки), купленные на прошлых распродажах. “покупаю игры потому что я их покупаю”.
    • Чё-то выглядит слишком схематичной. Тама есть сюжет или хоть близкое к этому?
    • Ну как сказал один из любителей статистик стима тут. “Рубль это просто скин в стиме” так что да, мы там игры покупаем за доллары. я 99% времени в стиме вижу скин доллара когда листаю разные страницы проектов, если мне игра понравилась, и я могу ее купить тогда, в этот момент, я вижу скин рубля. Если из 100 случаев 99 раз я вижу доллар и 1 раз я вижу рубль, почему я должен привыкать к рублю? Потому что кнопку купить нажал именно на него? Ну хз.  Есть 100 человек, вы говорите о подавляющем большинстве, 80%. Большая разница по вашему в контекста вопроса, говорить за 80 человек или за 100? Что изменилось то? То что вы вместо 100 говорите за 80? Ну да, сильно меняет всё. Что значит зачем? Просто обсуждая игру люди обсуждает и ее ценник. В смысле в каком? Рассказывает человек о том какая классная игра, если лень идти и самому смотреть что это за игра, можно просто спросить сколько она стоит. Если у нее цена 5 баксов на релизе, а ты не любитель индюшек, то можно сразу мимо проходить. У меня было очень много знакомых, которые не фанаты подобных игр, им нравятся только ААА. И я сам не тоже не очень люблю слишком бюджетные игры. Вышел Gladiator Guild Manager недавно 7 баксов стоит. Она вроде и прикольная, но я в нее играл с трудом. Региональная цена же, она об игре вообще ничего не говорит. Ее вообще может не быть. А вот долларовая косвенно говорит о бюджете проекта.    
    • привет, тоже прошу скинуть русификатор) буду признателен
    • Русская фанатская локализация игры The Nine Tailed Celestial  Fox. 1\ Скачать файл архива перевода версии 0.3 с Яндекс Диска: https://disk.yandex.ru/d/kiKdVByQ_0y6gQ 2\ Скопировать все файлы из архива в папку игры:    \The Nine Tailed Celestial Fox_Data\StreamingAssets\Languages\en\ обязательно с заменой всех файлов! (можно сохранить перед этим оригинальные файлы английской локализации в папке en) 3\ Запустить игру, в главном меню игры, кликнуть на левую верхнюю менюшку и зайти в настройки игры. 4\ В меню настроек кликнуть нижнюю справа строчку и из выпадающего меню выбрать: English   5\ Игра переключится на русскую локализацию и можно играть!  Почему то у меня на пиратке, не сохраняются сделанные в настройках изменения и каждый раз приходится лезть в настройки и менять язык локализации. ВНИМАНИЕ! 
      Русская локализация игры машинная и сделанна с помощью  переводчика deepl, с пследующими ручными правками и частичной вычиткой текста. 
      Перевод не полный, часть текста всё равно будет на английском и даже на китайском языках.  Работа над переводом игры и его правкой, ведётся в Дискорде:  Гора переводчиков "Медные котики"! https://discord.gg/dGvHkK6H75 прошу всех желающих присоединяться...  
    • Там ещё место осталось? Ну вы, блин, даёте! (с) Я вообще себе взял только пак старой Готики ради Архолоса и карточную игиуху Fights in Tight Spaces. За Архолос с готиками пока не брался. А вот Fights in Tight Spaces гоняю, пока нравится. Подумываю к нему дополнение прикупить. Еще подумываю взять Gunbrella и Prison City.
    • Я лучше пересмотрю первый фильм , есть в нем что-то дикое и захватывающее , в отличие от новой поделки . Имхо разумеется но почти все римейки намного слабее оригиналов , пусть те и без компьютерной графики , когда негра называли негром ,  девушки были гетеросексуальные а положительные персонажи не являлись тряпка-кунами )
    • Слабый фильм, какой то затянутый что-ли, под конец уже ждал когда это закончится,  графика местами дешёвая,как будто не доделанная, а может это фишка такая, правда экшен всё таки не плох, Миллер умеет показать драйв.
    • Списочек на вечер воскресенья? Или до второго пришествия?   15 позиций! Я взял пять , и то теперь будут пылиться ни один месяц.
    • Был бы” полный конец обеда” ) Но из лимит я ещё вроде не вышел.
  • Изменения статусов

  • Лучшие авторы


Zone of Games © 2003–2024 | Реклама на сайте.

×