Перейти к содержимому
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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


  • Сейчас популярно

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

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

    • А я думала, что Дэбри Уоллос (Lotta Hart) значит “добрый голос” от английского “lots of heart”. Хотя вариант с “дебри волос” тоже имеет смысл, пожалуй
    • clarkkent, Спасибо за русификатор! Часок погонял, все очень достойно. Никакого охлаждения большого дыма не заметил
    • И еще такой вопрос.
      Игра destiny of immortals, использовал ReiPatcher./
      После в конфиге в OverrideFont меняя шрифт, он не меняется.
      А в OverrideFontTextMeshPro меняется только, если использовать шрифты от сюда по типу “Okгda sdf” (не ttf), но тогда ломается часть механик (пропадает китайски, некоторые картинки и сам переводчик начинает тупить).
      Есть какой то вариант с этим сто-то сделать? 
    • Русификатор меняет цвета кнопок геймпада X Box One. Конкретно A B X Y. Заместо Зелёного, Красного, Синего и Жёлтого, они становятся Зелёным, Тёмно-Синем, Жёлтым и Голубым соответственно.
    • Имхо, 5070ti мощнее. А в сценарии с лучами и подавно. Только вот сейчас это нифига не одна ценовая категория. Нвидиа стоит куда дороже.
    • Одинаковый сегмент производительности, успокойся уже со своей цено это никому не интересно  9070хт =5070ti  Вот и сравни@\miroslav\ 
    •   Ну не получается тут тест именно процессора, ну всё тут. По крайней мере в моём случае никак. К слову, сам-то по нагрузке следил, что там творилось с нагрузкой на карту и проц?   Как по мне, так главным критерием теста процессора является сцена, которая хорошо может нагрузить именно проц, то есть либо куча народа, либо куча эффектов, физики и тому подобное даже при слабой графике. Если игра не даёт такой сцены, то проверить производительность проца и именно проца проблематично. Да, в Ларке есть одна сцена с кучей народа, но это лишь менее чем треть от общего бенча.
    • Я ждал этого (1)5 лет. В АЗКАБАНЕ!!!
    • @\miroslav\ я не собираюсь дальше продолжать спор. Скажу только очевидную вещь - красные сосут в РТ. Факт. тестить нужно на макс настройках, с минимальным разрешением, и если надо задействовать масштабирование!!!!!!! Что сложного???? Оперировать только разрешением!!! @Tirniel  @\miroslav\ разуй глаза и глянь сравнения для между картами одинакового сегмента по производительности в растере и сравни в РТ. всё поймёшь. Красные отстают сильно.
    • В этой игре в бенче лишь в части сцен нагрузка на карту не 98-99% (с разлоченным фпс, разумеется, следил за нагрузкой по оверлею от дров амд на протяжении всех бенчей, к слову, это могло также слегка исказить результат, но вряд ли существенно). Собственно, уже говорил, что даже на самых-самых  минимальных настройках, даже в 800 на 600 разрешении я не смог добиться отсутствия упора в карту на протяжении всего бенча, лишь в одной сцене из трёх (и то не целиком).
  • Изменения статусов

    • Jimmi Hopkins  »  SerGEAnt

      я его уже открыл в свободный доступ, чтобы не потерялось среди новинок
      · 0 ответов
    • NekoNya  »  Onzi

      https://www.dropbox.com/scl/fi/4xncxr2tqy77vz4644q08/text_RU_FINAL.json?rlkey=xckxss3jkql4gjmc1ah6qjb5e&st=k5ql651f&dl=0 
       
      Вот, то что вышло. Извинюсь, что зря говорил, что помогу (
      · 2 ответа
    • serfly  »  SerGEAnt

      Доброго времени! Недавно столкнулся с проблемой автоперевода XUnity AutoTranslator BeplnEx iL2cc. Пару последних лет часто пользовался, теперь консольные команды виснут на стадии загрузки библиотек, хотя они есть там изначально. На GitHub есть подобные вопросы, но ни одного рабочего ответа я не нашел. А Вы что можете посоветовать?
      · 0 ответов
    • serfly  »  SamhainGhost

      Доброго времени. По локализации игры Wicked Seed. Шрифт размазан и в полях, другие можно попробовать? Например arialuni_sdf_2022? Я профан в этом, но интересно.
       
      · 0 ответов
    • Jimmi Hopkins  »  SerGEAnt

      Это не просто перевод, а полноценная авторская сценарная адаптация. Диалоги переписаны так, чтобы персонажи звучали живо, остро и в характере. Добавлен чёрный юмор там, где авторы постеснялись. Убраны лорные противоречия, докручены мотивации. В результате игра стала умнее, злее и смешнее оригинала.
      · 0 ответов
  • Лучшие авторы


×