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

Akuma_Izra

Новички
  • Публикации

    4
  • Зарегистрирован

  • Посещение

Репутация

0 Нейтральная

О Akuma_Izra

  • Звание
    Новичок

Информация

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

    В общем DEK формат - это довольно простой контейнер. В зависимости от игры, там меняются немного заголовки, но смысл в целом неизменен. В начале идет количество папок внутри файла. Затем идет описание этих папок, в каждом из которых указано количество файлов в папке, смещение в файле, где данные папки лежат и размер этой папки. По смещению папки идет описание файлов, обычно идет хеш файла, тип файла, смещение и размер в хидер секции папки, смещение и размер в дата секции папки. После описания файлов идет индексация файлов, там просто напротив хеша ставится номер данного файла(бесполезная штука). После этого указатель внутри файла выравнивается на следующее значение кратное 0x1000. Само содержимое папки представляет собой raw deflate, который можно распаковать zlib'ом. Оно поделено на две секции: хидер и дата. В первой содержится описание текстур и обычные файлы. Когда первая секция заканчивается, идет также выравнивание на значение кратное 0x1000, после этого идет секция дата, здесь обычно лежат сами текстуры. В хидер части обычно указывается размер текстуры. Сама текстура может быть пожата(DXT, PVRTC и прочие), а может быть и нет. Но иногда вылазят неожиданности, например у Summoner Wars хидер секция битая и половина первой текстуры смешивается с данной секцией. Иногда смещения немного странно смещаются, так что приходится искать правильное. В Lord of Waterdeep например у заголовков другие смещения, хоть и с тем же смыслом, а в файле cards_hd.dek лежат карты несжатых текстур в RGBA8888, но со странными размерами данных, хоть и превосходно открываются GIMP'ом. В целом, могу помочь распаковать, но окончательную обработку тебе придется делать самому, у меня на это времени просто не хватает.
  2. Помогите распаковать .dek

    Я просто распаковываю 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 можно найти по моей ссылке выше, там кстати она почему-то ещё и со смещением расположена относительно начала данных.
  3. Помогите распаковать .dek

    Есть какой-нибудь прогресс по извлечению графических ресурсов из dek-файлов? Я пробовал ковырять файлы из Summoner Wars как для ios, так и для android ( https://yadi.sk/d/1Vt9sPZgv3CMQ ) В целом текстуры извлекаются относительно просто, их можно найти в сырых извлеченных данных из раздела с данными, по ссылке выше есть пример такой текстуры. Но основная проблема в том, что не могу понять, почему текстуры в файлах получаются битыми. Я вручную сидел биты перебирал, там полностью правильный и корректный формат DEFLATE с динамическими кодами Хаффмана. Если кто чем поможет, буду безумно признателен.
  4. Notabenoid — инвайты

    Суток добрых. Хотел бы принять участие в переводе Undertale. Недавно закончил проходить, эта игра достойна перевода.
Zone of Games © 2003–2024 | Реклама на сайте.

×