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

шрифт в TGA расшифровка/разбор?

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

Здравствуйте, прошу подсказать как получить нормально читаемый текст в файле tga

Платформа PS3

Игра Dungeon Defenders

Возникли сложности со шрифтом, мне сказали:

"шрифтов около 10 штук и они едрёные,наложены друг на друга" рябь на картинке

https://cloud.mail.ru/public/f4095838dc6e%2...Large_PageA.tga

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

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

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


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

в загаловке указан 24битный режм - т.к. шрифты обычно ч\б, значит значения одного пиксела повторяются трижды, что мы и видим (негинтропия для 24бит имеет весьма высокое значение).

далее в заголовке видим тип кодирования 10, это значит, цветовая схема RGB, а сжатие RLE.

Суть методов данного подхода состоит в замене цепочек или серий повторяющихся байтов или их последовательностей на один кодирующий байт и счетчик числа их повторений.

Например:

44 44 44 11 11 11 11 11 01 33 FF 22 22 - исходная последовательность

03 44 04 11 00 03 01 03 FF 02 22 - сжатая последовательность

Первый байт указывает сколько раз нужно повторить следующий байт

Если первый байт равен 00, то затем идет счетчик, показывающий сколько за ним следует неповторяющихся данных.

возможны и друге реализации RLE.

и дейчтвительно, если поглядеть на содержимое в hex (начиная с 13h - 19 символ\байт), то треммы (группы из трех) байт чередуются однобайтовами значениями длинны, а значит сомнений в том, что это именно RLE быть не может, но при декодировании всего этого бреда получается вот такая каша. глядя на эту кашу можно предположть, что данные зашифрованны (не редкий слчай в наше время, особенно для консолей) и учитывая крайнюю избыточность данных в купе с контестом (например, учитывая, что это простая картинка с алфовитом, размера 512на512), видна куча подскзок для расшифроки...

Расшифровка должна осуществлятся с ключем размера кратным 8 бит (судя по всем признакам это и есть 8), т.к. структура файла не повреждена шифрованием (наболее примитивм методом шифрования может быть побайтовый XOR, как в японских играх, а в наиболее сложным - добавляется еще перестановка бит т.к. другие методы будут увиличивать энтропию, что в файле не наблюдается). В результате декодирования (заголовок не зашифрован) должна получится RLE последовательность в которой - сумма произведений повторений суммы пикселей цвета фона (повторяемой) подстроки должна быть велика (в общем фон шрифта) из всех имеющихся (из заголовка имеем, что размер текстуры 512х512=) 262 144 пикселов, по другому - наиболее часто встречатся в конечном изображении, иначе - изображение должно получится с высокой энтропией (в случае подсчета энтропии можно стремится к ее мексимизации исходя из условий задачи, даже на сжатом наборе данных, чтобы не перебирать все варианты, хотя можно подобрать и более сложные\эффективные фильтры). После расшифровки и декодирования RLE количество 24х-битных пикселов должно соответствовать размеру текстуры.

Иначе (в случае безрезультативности достаточно быстрого перебора 8!*2^8=10 321 920 варантов, в простейшем случае 2^8=256 варианов) текстура либо не содержиит шрифта, либо является лишь его частью в избыточной форме кодирования избыточной текстуры шрифта.

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

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


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

UPD

еще один покозатель близости правильного результата - негэнтропия закодированной последовательности, хотя эти метрики по влянию на результат весьма похожы между собой

На первом этапе не обязательно брутфорсить все байты изображения (оно и так будет различимо), а можно лишь перебирать ключ для кодирующих байт RLE последовательности.

при перестоновках начать проверу было бы логично с циклических сдвигов (на от 0 до 7 бит в любую одну сторону, всего 8*2^8=2 048 вариантов и останется 5 040 =7! остальных комбинаций этих вариантов из 7 возможных перестановок соответственно)

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

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


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

Еще однм автоматическим достаточно сильным и надежным способом проверки результата будет проход окном светрки по результирущей ткстуре фильтром габора (это выделение краев, нужен для надежности метода на не доконца расшифрованных данных) и гаусианом размера символа (для скорости можно сначало свернуть эти фильтры между собой, а затем разделить их на вертикальный и горизонтальный толщиной 1 элемент), в результате фильтрации получится карта со светлыми блобами (размытые символы) распложенными на равном растоянии друг от друга по осям х и у на темном фоне, которую можно сравнить на степень соответствия такойже в идеальном случае (т.к. сама функция проверки тоже является сверткой, то всю проверку в идеале можно свести к двух этапному проходу окона-строки и окна-столбца).

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


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

Мда.

Либо umodel неправильно достал текстуру, либо обычный свизлинг, раз уж речь идет о пс3.

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


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

Thief1987, спокойно, это предусмотрино еще в первом посте, ведь свизлинг и есть перестаовка wikipedia:Swizzling_(computer_graphics)

а как проверить, что там нет искомого я еще там же расписал :)

Кстати, здесь челвек описывает похожий баг с umodel и частично решает его

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

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


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

немного почитал про свизлинг и понял что последовательность, но не понял как она определяется. сложновато на анлийском, на русском не нашел примеров.

через winhex открыл файл

00000A00000000000000000000020002180000424242813F3F3F813C3C3C81393939013636363C3C3C813939398136363681323232012F2F2F35353581323232052F2F2F2E2E2E2A2A2A2B2B2B2828282F2F2F812C2C2C812929290325252526262622222235353581323232812F2F2F812C2C2C092929292E2E2E2C2C2C2B2B2B2828282929292626262525252323232929298126262681232323031F1F1F2020201C1C1C23232381202020811C1C1C82000000032727272222222424241F1F1F83000000022121211C1C1C1E1E1E94000000001B1B1B9E000000082727272525252323232020202222221F1F1F1D1D1D0000001D1D1D86000000001C1C1CFF

 

и запутался в конец, а где в заголовке указано? -

там указан 24битный режм

на ресурсе по разбору заголовка http://open-file.ru/articles/file-header

если вводить первые 3 блока "00000A" то он мне ничего не выдал а на первые 2 "0000" сказал что это Том архива WinOptimizer #1

открывал через фотошоп тоже не понимаю, там в channels единственно показывает "RGB+Red+Green+Blue"

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

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

    • Deep Sleep: Labyrinth of the Forsaken
      Метки: приключение, хоррор-выживание, головоломки, пиксельная графика, мистическое, сюжетные развилки
      Платформа: PC (Windows)
      Разработчик / Издатель: scriptwelder / Armor Games Studios
      Дата выхода: 21 августа 2025 года
      Отзывы Steam: 92 % положительных из 92 обзорoв — Очень положительные
      Движок: Unity Скриншоты: Перевод планирует сделать Ambigram , он же переводил Don’t Escape: 4 Days to Survive и  Deep Sleep Trilogy .    
    • Sentimental Death Loop Метки: приключение, хоррор-выживание, визуальная новелла, пиксельная графика, мистика, несколько концовок
      Платформа: PC (Windows)
      Разработчик / Издатель: qureate, IXILL LLC.
      Дата выхода: 27 июля 2023 года Steam Store
      Отзывы Steam: 58 % положительных из 135 обзоров — Смешанные отзывы Движок: Unity Описание: Переводом на русский switch-версии занимается  greg6
    • Года два точно будут делать, и действительно, не до конца понятно чего именно ждать. Разрабы вроде говорили, что хотят чего-то нового, каких-то изменений и тп. Мда...Несчастная обезьяна им столько бабок принесла, а её тут же забыли и выкинули на задворки истории, как какой-то хлам.   Кстати, обезьяны очень злопамятные... 
    • Добрый день, а можно как-то у вас приобрести рабочую сборку с переводом? Для ПК, хоть с эмулятором. А то у вас тут нет опции задонатить. Думал посмотрю на ютубчике прохождения, вспомню былое. Но не могу смотреть этих дегенератов с джойстиками, какие-то мамкины прохожденцы всего подряд, ничего не читают, гундосят под нос и удивляются, что проигрывают.  Был бы рад помочь деньгами и получить от Вас ссылку на скачивание игры. Мое почтение за Ваш труд.
    • @piton4 аналогично. Считай около года потратили на ДЛС впустую. Обезьяну делали чёрт знает сколько. Теперь эту ждать примерно столько же, к тому же не понятно чего ждать. Думаю будет тоже самое и по той же книге, просто за нового перса. Может присобачились к движку и на этот раз сделают быстрее.
    • Savara Метки: приключения, экшен, RPG, рогалик, подземелья, souls-like, инди , фэнтези, Wakfu Платформы: PC (Windows)
      Разработчик: Doryah Games
      Издатель: Ankama Games
      Дата выхода: 6 мая 2025 года
      Отзывы Steam: 89 % положительных из 430 обзоров Движок:  Unity 2022.3.37f1   Перевод на русский или русификатор на данный момент отсутствует.
    • Здравствуйте, будучи новичком в этом деле, решил попробовать вытащить и сделать перевод текста из игры The Legend of Heroes Trails of Cold Steel III. Как я разобрался, основной текст лежит в файле assets.pka и мне удалось его с помощью утилиты с гита  разложить на pkg файлы. Но вот дальше возникла проблема,сделал 2 скрипта, один раскрывает pkg файл(приложу ниже), другой просто автоматизирует массовость этой распаковки , в результате работы они сделали каждому файлу отдельную папку, где должны были быть таблицы и скрипты, но они все оказались пусты. Нейронка предположила, что это из за особенностей движка, либо запаковки файлов. Пытался через прогу на гите какую-то вытащить файлы, но нормальной документации там нету и ничерта не ясно. Если у кого был опыт работы с играми этого издателя, как я понимаю последнии ys на том же движке, что cold steel 3,4 , Reverie , Daybreaker 1,2,3(будущий), то буду благодарен за помощь в выходе из этого тупика.  Заранее спасибо! Файл простого скрипта на распаковку из pkg: TOOLS = Path("C:/Users/A/Desktop/CS3_localize/tools") # где лежит unpackpkg.py PKG_DIR = Path("C:/Users/A/Desktop/CS3_localize/work/pkg") # все .pkg после распаковки assets.pka OUT_DIR = Path("C:/Users/A/Desktop/CS3_localize/work/unpacked") # тут будут распакованные файлы UNPACKER = TOOLS / "unpackpkg.py" def unpack_all(): OUT_DIR.mkdir(parents=True, exist_ok=True) pkg_files = list(PKG_DIR.glob("*.pkg")) print(f"Найдено {len(pkg_files)} pkg файлов") for pkg in tqdm(pkg_files, desc="Распаковка .pkg"): out = OUT_DIR / pkg.stem out.mkdir(parents=True, exist_ok=True) subprocess.run( ["python", str(UNPACKER), str(pkg), str(out)], check=False ) if __name__ == "__main__": unpack_all()
    • Технологии испарительной камеры и тому подобные так-то давно есть для решения проблем отвода тепла. Проблема лишь в цене — решение выходит дороговатым. Это вне диапазона бюджетных “народных” решений, но до “потолка” так-то ещё запас имеется. В т.ч. в тех же ноутбуках (как гибридных, так и “полновесных”) кроме всего прочего временами применяются и альтернативные методы создания потока воздуха, например, пьезо “щёточки” вентиляторы, то есть в классическом плане тоже всё не ограничено воздушкой и водянкой, есть и альтернативные направления. Собственно, пк на примере портативных их вариаций (ноутбуки, нетбуки и т.п.) и так уже идут в сторону уменьшения, постепенно превращаясь в малолитражки (чуть ли не плоские “папки” с дисплеем) и ещё меньшие по размерам “миники” (от малоразмерных ноутов до по сути карманных компьютеров с экраном, встроенными джоями  и мини-клавиатурами) даже в случае классических сборок с дискретками (мобильные дискретки могут быть весьма так маленькими относительно своих полноразмерных стационарных версий). Технически, дискретки уже временами упираются в потолок своего развития и хотят быть поближе к процессору физически для более быстрого обмена данными. То есть объединение в гибридный процессор или обратное действие с переносом самого центрального процессора в видеокарту и слияние видеопамяти с обычным озу давно напрашивается. По крайней мере таково моё личное видение данной ситуации, таково моё личное мнение. Не больше, не меньше.
  • Изменения статусов

    • Дмитрий Соснов  »  Tirniel

      Привет! ты разбираешься в компьютерном железе, сможешь помочь с советом по апгрейду старого компа?
      · 1 ответ
    • SHAMAH

      Куда вход на сайт убрали и ЗАЧЕМ? Хотел файл скачать, там только медленная загрузка и “зарегистрируйтесь”. Все. Пришлось вручную страницу входа прописывать.
      · 0 ответов
    • Nosferatu  »  behar

      Добрый вечер.
      Подскажите пожалуйста, у вас не осталось случайно исходников для фикса на широкоформатные мониторы для игры Vampire The Masquerade Redemption?
      Если да, то не могли бы вы ими поделиться, а если нет, то прошу прощенья что побеспокоил.
      Заранее спасибо.
      · 0 ответов
    • AlcoKolyic  »  makc_ar

      Здраствуйте! Извините, а можно попросить ссылку на место где можно взять перевод (патч или образ игры с переводом) El Shaddai: Ascension of the Metatron для ps3, пожалуйста? А то в теме к этой игре у меня не получилось найти работающие ссылки… Первая ведет в группу в которой удалены большинство постов, а пост с этой игрой ведет на сайт https://psnext.ru который сейчас не имеет отношения к видеоиграм. 
      · 0 ответов
    • oleg72  »  Boor

      https://www.skidrowcodex.net/fate-reawakened-goldberg/
      · 0 ответов
  • Лучшие авторы


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

×