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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

    • Оп-оп-оп, а я-а-а-а могу поотвечать на вопросики, если такие будут О_О

        Хех, разумеется мы смотрели на Диспатч. Мы его прошли и такие: «Блин, хочется еще чего-то такого! Чтобы и диспатчинг, и персонажи, и сеттинг какой-нибудь городской со штуками…». А подходящего ничего не нашлось. Да, есть еще This is the Police, но дух там совершенно другой. А тут еще и детская любовь к «странным штукам в городском сеттинге» и, разумеется, к «Секретным материалам», которые мы в тот момент пересматривали, наложились. Нам такое сочетание показалось довольно вкусным, вот и решили попробовать сами собрать.
      Интерфейсы в данный момент — смесь Operator 112 и Диспатча, да, но это еще очень ранний визуал, он переделывается прямо сейчас. Будет нормальная 3d-карта с тремя крупными районами и вот это все. По ходу разработки будем обновлять все скрины и прочее.
      В целом, именно диспатчиг у нас — только часть игрового процесса, не меньший упор будем делать на взаимодействия с капитанами (с которыми будем общаться во время смены и через огромную бункерную дверь) и на поддержания собственного состояния (все это будет отражаться на офисе, ориентиром берем SH4). Капитаны будут все живенькие и разнохарактерные, каждый со своей сюжетной линией, а в офисе будет куча всякого интерактива, чтобы попытаться избежать выгорания.
        Хе-хе-хе, а «Излом» фактически закончен уже. Там буквально осталось вставить озвучку в 6-8 диалогов и добить локализацию на пару языков. Собственно, именно по техничке он закончен уже несколько месяцев как, поэтому, чтобы не сидеть без дела, и взялись на проект, который напридумывали еще зимой  И, к слову, переводы мы тоже все еще делаем, но последние 5 лет — официально, поэтому нет-нет, да мелькнем в титрах в каком-нибудь крупняке.
    • @Tirniel что ж, мне нравится такой ход событий.
    • Босс как всегда в суперпозиции, ему интересно всё и одновременно нечего , но написать что-то, отметиться, в такой "интересной" теме и похвастаться, что есть нечто именуемое гугнирами , блютерами и грогерами конечно надо. Если ещё и в таких темах молчать, то где же ещё хоть что-то получится сказать. Ведь боссу не нравятся игры, фильмы, итп. Но! Возможно она скрытый поклонник....@BossDigger  вам нравится хентай? На этом ресурсе многие его уважают, и поверьте вас никто не упрекнёт в этой небольшой ваше слабости. Будем обмениваться мнениями о том или ином тайтле и тп.  В главное не стесняйтесь, а говорите всё что думаете.  Хотя нет, лучше всё, что думаете не надо, а то это может окончится для вас 4 месяным баном.  
    • Товарищ, спасибо за твой труд! Скажи, а до звука ты добрался или ты только текст можешь поменять?
    • перевод для для  Blue Dragon вышел отличным ставится и играется легко без тормозов на моей слабенькой ддр3
    • Это один из питонов, одно из твоих многочисленных тел, из альтернативных миров, который предпочёл в какой-то момент карты от амд (дело прошло ну вот прям совершенно точно без участия Мирослава), ага-ага, и это вот так резко изменило его жизнь, определённо, не иначе. Две кошкодевочки с ним — это то, во что превратилась его 5090 от шока, когда увидела, что её вытаскивают, а на её место ставят карту от амд. Теперь они повсюду следуют за ним, пытаясь убедить вернуться на сторону зелёных, но тот питон не сдаётся, так как он понимает, что в тот же момент, как он сдастся под их напором, они из девчин превратятся обратно в кусок кремния с нвидевской маркировкой. Точно-точно.
    • Застревает там же, что с тем bat, что с новой сборкой, что с этим скриптом. Может, сделаешь какой-нибудь лаунчер с галочками, что качать, а что нет? Мне Argos может и не понадобится.
    • В 2 диске чтоль или где то там должен был текст который переведен, весь или нет, но должен быть
  • Изменения статусов

    • axe66  »  SerGEAnt

      здравствуйте. можете добавить на сайт раздел для игры She’s Leaving и русификатор к нему? и как и куда вам скинуть фото и сам русификатор?
      [h2] Версия: 1.0.1 (от 22.05.2026)
      Совместимость: для сборки 20909321 [/h2]
       Информация:
      Машинный перевод моделью gemma2:9b-instruct с несколькими этапами автоматической перепроверки (модель "самопроверялась") и финальными ручными правками.
      Это не финальная версия — по мере нахождения ошибок перевода будут выходить обновления.
      Известные нюансы:
      * Возможны неточности и ошибки в переводе.
      * Некоторые элементы интерфейса остались без перевода.
       Установка:
      1. Запустить Russifier.exe
      2. Нажать "Выбрать папку"
      3. Выбрать папку с игрой и нажать ОК
      4. Нажать "Установить"
      5. Дождаться завершения установки и закрыть программу.
      После установки запустите игру и наслаждайтесь!
      Если заметили ошибки или некорректные формулировки — оставляйте комментарии, будем исправлять!
       
      Автор: Serjik Sokolov История изменений:   Версия 1.0.1 от 22.05.2026 - Установщик теперь автоматически определяет корневую папку игры, даже если случайно выбрана вложенная папка.   Версия 1.0.0 от 03.12.2025 - Релиз
      · 1 ответ
    • Perfect End Strange  »  SerGEAnt

      Привет, озвучку для Silent Hill 4: The Room выпустил энтузиаст под ником Perfect End Strange, а вы написали совсем другую студию, пожалуйста, исправьте эту оплошность
      · 0 ответов
    • 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 ответов
  • Лучшие авторы


×