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

DOGOS (Шрифты)

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

Помогите разобрать формат шрифтов https://yadi.sk/d/A6h6giSvwUMy2, а потом написать утилиту.

TextureFinder показывает раст шрифта:

 

Spoiler

e4e4081b0b37.jpg

Update 11.10.2016:

Добавил в архив утилиту от DZH, которая распаковывает и запаковывает контейнер.

Update 08.02.2017:

Добавил на яд Binary Template формата разметки .FNTh от SileNTViP. Кто сможет сделать генератор fnt2FNTh.exe на основе BMFont?

 

//------------------------------------------------//--- 010 Editor v7.0 Binary Template////      File: DOGOSFnt.bt//   Authors: SileNTViP//   Version: 1.0//   Purpose: //  Category: Games// File Mask: *.FNTh//  ID Bytes: //   History: //------------------------------------------------struct { uint Count; uint unk1; uint unk2; uint unk3; float unk4; float unk5; float unk6; float unk7; uint imgWidth; uint imgHeight;} Header <optimize=false>;struct { uint16 CharID; float Left; //Left float Top; //Top float Right; //Right float Bottom; //Bottom float unk5; //0 float unk6; //0 float unk7; float unk8; float unk9; float unk10;} Glyph[Header.Count] <optimize=false>;

 

Новый шрифт можно сделать размером меньше или как оригинал, а то паковать pkg https://yadi.sk/d/YcZIJ80xvkRCa через скрипт буду для quickbms http://aluigi.org/bms/dogos.bms?

 

# DOGOS# script for QuickBMS http://quickbms.aluigi.orgcomtype lz4idstring "PKTO"get DUMMY longget DUMMY longget DUMMY longget FILES longget DUMMY longlongget DUMMY longlongget DUMMY longlongfor i = 0 < FILES   getdstring NAME 0x100   set NAME unicode NAME   get ZSIZE longlong   get SIZE longlong   get ZIP long   get OFFSET longlong   if ZIP == 0       log NAME OFFSET SIZE   else       clog NAME OFFSET ZSIZE SIZE   endifnext i

 

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

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


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

Добавил в архив утилиту от DZH, которая распаковывает и запаковывает контейнер с шрифтами. Кто сможет разобрать разметку?

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


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

Первая строка в Heh

40 01 - 0140 - 320 букв

Третья строка

00 10 - 1000 - 4096 разрешение по горизонтали

00 40 - 0400 - 1024 разрешение по вертикали

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

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


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

Добавил на яд Binary Template формата .FNTh от SileNTViP.

//------------------------------------------------//--- 010 Editor v7.0 Binary Template////      File: DOGOSFnt.bt//   Authors: SileNTViP//   Version: 1.0//   Purpose: //  Category: Games// File Mask: *.FNTh//  ID Bytes: //   History: //------------------------------------------------struct { uint Count; uint unk1; uint unk2; uint unk3; float unk4; float unk5; float unk6; float unk7; uint imgWidth; uint imgHeight;} Header <optimize=false>;struct { uint16 CharID; float Left; //Left float Top; //Top float Right; //Right float Bottom; //Bottom float unk5; //0 float unk6; //0 float unk7; float unk8; float unk9; float unk10;} Glyph[Header.Count] <optimize=false>;

 

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


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

Кто сможет сделать генератор fnt2FNTh.exe на основе BMFont?

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


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

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

float Left; // это X

float Top; // это Y

float Right; // это height

float Bottom; // это width

в каких единицах данные значение в статике понять сложно, а в динамике проверить видяха не позволяет, так как не дружит с dx11.(скинемся мне да новую видяху? шююютка)

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

после данных Glyph идут скорее всего описания кернинг пар

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

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


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

float Left; // это X

float Top; // это Y

float Right; // это height

float Bottom; // это width

в каких единицах данные значение в статике понять сложно, а в динамике проверить видяха не позволяет, так как не дружит с dx11.(скинемся мне да новую видяху? шююютка)

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

после данных Glyph идут скорее всего описания кернинг пар

А вот тут ты и не прав. С чего ж так ты взял, что тут ширина и высота? Ширина это ж расстояние от левой точки X до правой. А тут как раз указанны точки начала и конца как X ,так и Y. только в значении плавающей запятой. А после них идет бред. причем полный. Идет количество таблиц равное количеству символов в шрифте + в каждой таблице количество uint равно количеству символов в шрифте... и все идут от 0 до количества... совершенно бесполезная информация

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


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

SileNTViP, эмм, возможно я не так понял, и мы говорим об одно и том же только разными словами, Left и Top это значение (начало спрайта) относительно левого-верхнего угла атласа?

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


Ссылка на сообщение
SileNTViP, эмм, возможно я не так понял, и мы говорим об одно и том же только разными словами, Left и Top это значение (начало спрайта) относительно левого-верхнего угла атласа?

Ну в теории ) это как Rect() в delphi. Можно разделить 4 этих float на две группы и получим XY верхнего левого угла символа и XY правого нижнего. Прямоугольник) я уже тестил на коде дергать символы по одному. все верно

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


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

в делфи ковырялся тел 15ть назад, и то не графику..

значит я таки ошибаюсь, хотя об одном и говорили.. ))

"С чего ж так ты взял, что тут ширина и высота? " ну я с другой стороны смотрел.. ))

rectangle.jpg

что то подобное мне уже один раз попадалось в какой то игре, в переводе на "формат" bmfont получалось как то так:

Left = x

Top = y

Right = x + width

Bottom = y + height

но что то с двумя последними было не то... надо перелопатить исходники чтоб вспомнить...

а игра у тебя запускается? можешь на символах abcdefghijkl занулить все значения unk5 - сделать скриншот, потом unk6... и т.д.? чтоб глянуть как они скачут от изменения этих значений...

и объясни плиз как делфи этот флоат конвертит в пиксели и обратно?

адд:

// Compute the source rectRect src;src.left   = ch.x;src.top    = ch.y;src.right  = ch.x + ch.width;src.bottom = ch.y + ch.height;// Compute the destination rectRect dst;dst.left   = cursor.x + ch.xoffset;dst.top    = cursor.y + ch.yoffset;dst.right  = dst.left + ch.width;dst.bottom = dst.top + ch.height;// Draw the image from the right textureDrawRect(ch.page, src, dst);// Update the positioncursor.x += ch.xadvance;

 

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

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


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

LinXP

В Falling Skies я делал так. Картинка у нас жи 1:1 в текущем состоянии. Делим 1 / на ширину и получаем пиксель в значении float и делим X координаты на это значение. То же самое и с Y, но там 1 / на высоту. Надо игру ставить. Просто они еще ширину с высотой могут в них прописать + xOffset и yOffset. И прочие радости.

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

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


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

LinXP

Кстати еще вариант проще. Есть у тебя в шрифте значение float и есть ширина атласа Width. берешь Width * float и получаешь X. так же с Y

Обратно тоже легко. Есть у тебя X и ширина атласа Width. X / Width получашь float )

Изменено пользователем Haoose
Не цитируй длинные сообщения по 100500 раз

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

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

    • И так что я купил пока(  ограничение были жесткие а лимит минимален) Получилось ли у меня не увеличить сильно беклог?  
    • Заинтриговала первая серия недавно вышедшего сериала — Воскрешение. Чувствуются нотки британского “Во Плоти” и немного интриги из Квази (книги Лукьяненко) но пилотные серии обычно для этого и создаются — затянуть) поэтому пока хз)
    • ИГРЫ GAME PASS (ИЮЛЬ 2025/1)

      1 июля
      • Little Nightmares II (Cloud, Console, PC)
      • Rise of the Tomb Raider (Cloud, Console, PC)

      2 июля
      • Legend of Mana (Console)
      • Trials of Mana (Console)

      3 июля
      • Ultimate Chicken Horse (Cloud, Console, PC)

      8 июля
      • The Ascent (Cloud, Console, PC)

      9 июля
      • Minami Lane (Cloud, Console, PC)

      11 июля
      • Tony Hawk’s Pro Skater 3 + 4 (Cloud, Console, PC)

      15 июля
      • High On Life (Cloud, Console, PC)

      Игры покидающие Game Pass после 15 июля:
      • Flock (Cloud, Console, PC)
      • Mafia Definitive Edition (Cloud, Console, PC)
      • Magical Delicacy (Cloud, Console, PC)
      • Tchia (Cloud, Console, PC)
      • The Callisto Protocol (Cloud, Console, PC)
      • The Case of the Golden Idol (Cloud, Console, PC)
    •   То ли с трудом, то ли так и не осилил, даже первый сезон. Толком не объясню почему, чисто по ощущениям, что будто в серике всё ни так и не туда, как хотелось бы или должно быть. Пробуй, может в тебя попадёт. Как минимум серик качественный и каст хороший. @lordik555 мне понравился “Программисты” (2020), а вот для SerGEAnt он оказался скучным и нудным. Мне в той или иной степени нравятся все работы Алекса Гарленда (“Из машины”, “Падение империи”). 
    • Bayer это немцы. Точно? Алкоголик емнип вообще не умел обходит старфорс,а для поздних версий кроме даймонда нужно было ещё отключать физический сдром  Если-бы это было так… Было бы здорово если бы у нас был реальный аналог,как ЯМ с Спотиком, Я попробовал  пользоваться  “аналогом”,ну как сказать..я лучше вообще не буду видеохоситнгами пользоваться. Собственно и не пользуюсь уже пару месяцев..ТГ спасает и подкасты на ЯМ НФС хот пурсайт в ориджн имела 3 активации,я как то ТП обращался что бы мне их обнулили... Емнип мне разрабы  Дозора носд как-то высылали ибо у меня не работал старфорс  игра на моем железе)) Убрать офлайн активацию (у убейсофта так было недолго)  Ваш Кэп(с)
    • Disciples III. На старте продаж там было ограниченное кол-во активаций. По моим воспоминаниям три, но сейчас бегло глянул старые обсуждения 2009 года и пишут, что всего два раза! Привязка была к ОС и вроде даже к железу. Потом игру в Стиме выпустили, но это совсем другая история.
    • может кто перевод скинуть пожалуйста?
    • Ешё были мини образа на несколько килобайт. Для тех, кто не шибко доверял крякерам, но хотел поиграть, не храня полных образов для запуска кхм совершенно легально. К слову, это было удобно даже при наличии лицензионных дисков, т.к. держать взлетающие периодически в космос диски в  сд или двд приводе было ну такое себе, в т.ч. их ещё ж и доставать каждый раз приходилось, а то и менять в процессе игры на следующий из нескольких, а тут два клика и играй себе на здоровье. Кстати шутки шутками, но когда появились новые оси без поддержки драйвера старфорса, то уйма игр так и осталась невзломанными (зачем ломать, если были образы и мини образы, которые сделать проще — так думало немало людей явно), а разрабы у некоторых ушли в закат и не выпускали чистых экзешников. То есть только уйдя в закат, защита стала по-настоящему эффективной. Ну на какое-то время. Но не суть. Сейчас игры стоят столько, что те можно не просто на флешках продавать физически, но и на внешних ссд дисках. А туда можно зафиндюлить при желании всё, что угодно. Начиная от аналогов старфорса, где по сути потребуется хранить весь образ (например, если размазать игру на 4-20 гигов по диску на 128 гигов, то желающих хранить такие массивы чисто запуска ради поубавится среди пиратов), либо использовать токены по аналогии с, например, криптопро. Как хорошо, что у нас эра цифровых сервисов и упарываться по физическим защитам игр уже вряд ли кто в ближайшее время снова станет. Ну кроме нинтендо, которые тем не менее дошли до гибридных решений физических “дисков” с токенами и цифровых сервисов для загрузки и проверки игр.   Кстати, вспомнилась очень древнючая защита “из былых веков”. Дискеты (от некоторых особо упарывающихся по этой теме разрабов) продавались некоторые вместе со здоровенным томиком текста. В процессе игры периодически игрок дёргался, чтобы особым образом получать с помощью поставляемого в комплекте трафарета (или чего-то типа) из книги нужные кодовые слова. Защита пусть и простая, но печатать здоровенную книжку+трафарет по понятным причинам готовых было немного (если вообще были), т.к. это было тупо экономически нецелесообразно и сравнимо по затратам с покупкой лиц. дискеты.
    • Ну и где русификатор  ты
  • Изменения статусов

    • Дмитрий Соснов  »  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 | Реклама на сайте.

×