IPB

Добро пожаловать, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> Spacebase DF9, шрифты
Siberian GRemlin
Dec 15 2013, 15:15
Сообщение #1


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



В душевных метаниях наткнулся на новую игру, идея которой мне понравилась, и решил заняться её переводом в спокойной обстановке (её пока не спиратили [игра находится ещё в разработке] и как результат — в рунете о ней не знают, в том числе на ZoG → никто не будет клянчить сделать перевод быстрее, а «переводчики» не будут выпускать машинный перевод с правками). Т.о. мои стремления не улетучатся.

На последние кровные купил её несколько часов назад и чуток поковырялся. Текст без проблем можно редактировать (второй снимок, нижняя строка), но вот шрифты с наскоку взять не удалось. Шрифт представляет из себя текстуру с разметкой, и если с разметкой всё понятно, кроме пары значений, то с самой текстурой сложнее. Как я понял: после заголовка идёт сжатый zlib'ом блок графических данных, которые верно считать пока не удалось. Буду рад любым советам по обработке этой графики. Не исключено, что я где-то стормозил.

Образцы.

Добавлено.
Подозреваю, что графические данные это тело DDS без заголовка.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Grom PE
Dec 16 2013, 03:45
Сообщение #2


Advanced Member
***

Группа: CTPAX-X
Сообщений: 84
Регистрация: 7-February 08
Из: i@grompe.org.ru
Пользователь №: 3,120
Спасибо сказали: 95 раз(а)



Да, с подставленным заголовком DDS в расжатые zlib-данные показывает картинку. Тут либо DXT3, либо DXT5.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Dec 16 2013, 05:32
Сообщение #3


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



Я опростоволосился: игра есть в свободном доступе.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Dec 16 2013, 19:01
Сообщение #4


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



Что-то не могу подобрать верный заголовок .DDS — максимум показывает всё полотно синим или чёрным цветом.

Удалось выяснить, что текстура сгенерирована с помощью TexturePacker, судя по всему, в формате zlib compressed pvr (PowerVR) также известном как pvr.ccz либо в его модифицированном варианте, т.к. заголовок отличается. Пробовал сгенерировать любую текстуру, но в ней почему-то данные хранятся в другом виде, не похожем на DDS. Хотя, возможно, я чего-то не понимаю в современной графике.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Dec 16 2013, 20:40
Сообщение #5


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,353
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



Скачать бесплатно, без регистрации и SMS: stex2dds.zip
Насчёт ширины/высоты (width/height) не уверен, потому что они там одинаковые (в .DDS просто сначала высота идёт, а уже потом ширина).
dwName - имена людей (ANNA и т.п. - они разные), ну и ещё там пара полей фиг знает за что отвечающих.
P.S. Как идут дела с первой Кирандией? Да, я такой. (*улыбается*)


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Dec 17 2013, 19:52
Сообщение #6


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



QUOTE(-=CHE@TER=- @ Dec 17 2013, 04:40) *
P.S. Как идут дела с первой Кирандией? Да, я такой. (*улыбается*)
Пока не делал, но зато разобрался с размерами строк в стеке. Не знаю почему у меня были проблемы в то время с этим, сейчас изменил без проблем. Хочу пока что-нибудь новое сделать, а затем прошлые переводы обновить.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Dec 18 2013, 08:47
Сообщение #7


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



QUOTE(-=CHE@TER=- @ Dec 17 2013, 04:40) *
Насчёт ширины/высоты (width/height) не уверен, потому что они там одинаковые (в .DDS просто сначала высота идёт, а уже потом ширина).
Какая-то чертовщина творится: просто открываю текстуру в «Photoshop» и пересохраняю (с разными параметрами пробовал), а у неё ширина уменьшается вдвое. blink.gif
У кого-нибудь есть идеи?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Dec 18 2013, 12:39
Сообщение #8


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,353
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



Попробуй текстуру сначала в .TGA перегнать какой-нибудь внешней утилитой, а уже потом открывать, может так сработает.
Ибо формат .DDS такой "весёлый" (см. ссылки на MSDN в исходниках), что его каждый может как хочет трактовать и сохранять, так что там в заголовке практически ни на что полагаться нельзя.
Я заполняю только минимально необходимые поля, чтобы оно корректно отображалось, возможно, необходимо что-то ещё. Я сам .DDS не смотрел (нечем), так что конвертировал его в .TGA, чтобы убедиться что всё ок.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Axsis
Dec 18 2013, 23:44
Сообщение #9


Advanced Member
***

Группа: CTPAX-X
Сообщений: 121
Регистрация: 6-February 08
Пользователь №: 374
Спасибо сказали: 149 раз(а)



Та формат то нормальный, просто почти в каждой проге его поддержка реализована не на 100% - там поддерживаются одни фишки формата, а там - другие.
Например, столкнулся с необходимостью задать маску каналов - это чтобы не перетасовывать местами байты, когда порядок каналов, например, ABRG. Из просмотрщиков только IrfanView справился, и кажется, nvidia texture tools правильно перегнал в tga (но там только конвертер, просмотра нет). Ни XnView, ни Paint.NET, ни фотошоп с плагинами от той же nvidia, ни Imagine не смогли правильно отобразить такой файл - он либо не открывался совсем, либо каналы были перепутаны (то есть маска просто игнорировалась). А в DDS таких фишек, замечу стандартных и документированных, дофига, вот только не очень-то разработчики графических утилит смотрят в ту документацию...
Наиболее адекватной и полной поддержкой, как мне показалось, обладают как раз утилитки от nvidia. Так что попробуй ими dds->tga и потом обратно. nvddsinfo из комплекта может показать специфическую информацию из заголовка в удобоваримой форме (можешь проверить что там у тебя фотошоп дописывает/не дописывает в заголовок)

Сконвертировать текстуры бесплатно, без регистрации и SMS и без скачивания biggrin.gif
tex2dds.bms
CODE
IDstring "TEX "
Set MEMORY_FILE compressed c3EJVqhhYGBgF+BgQAeMDKQBBSBmwadAAFMIAA== # DDS header
ComType unzip_dynamic
Get FNAME filename
Get W short
Get H short
GoTo 0x14
Get ZSIZE long
Get DATASIZE long
PutVarChr MEMORY_FILE 0x0c H long
PutVarChr MEMORY_FILE 0x10 W long
PutVarChr MEMORY_FILE 0x14 DATASIZE long
PutVarChr MEMORY_FILE 0x54 0x35545844 long # DXT5
Log MEMORY_FILE2 0 0x80 MEMORY_FILE
Append
CLog MEMORY_FILE2 0x20 ZSIZE DATASIZE
Append
String FNAME += ".dds"
Math DATASIZE += 0x80
Log FNAME 0 DATASIZE MEMORY_FILE2

ну и convert_all.cmd
CODE
for %%I in (*.tex) do "c:\Program Files\QuickBMS\quickbms.exe" tex2dds.bms "%%I" .
:: не потеряй точку в конце первой строки - её плохо там видно :)


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Dec 19 2013, 15:56
Сообщение #10


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



Спасибо!
Разобрался с форматом и написал обратный упаковщик — игра кушает новый шрифт. Теперь художественная рутина предстоит. Нашёл все шрифты в векторе, и в один уже добавил 90% кириллицы.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Dec 20 2013, 19:32
Сообщение #11


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



Кривой шрифт (без сглаживания) и пока обрезанный текст (правка недекомпилированного LUA).
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Dec 23 2013, 15:15
Сообщение #12


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



Прошу подсказать, т.к. сам не нашёл. В версии для Windows используется что-то вроде двоичного LUA для хранения текста и пр., а в версии для Mac OS — в текстовом виде (неоткомпилированный). Причём версия для Win, его понимает. Проблема в том, что доступа к версии для Mac у меня есть, а сами файлы дал один из иностранцев.

Может кому-нибудь уже встречался такой формат? Декомпилятор его не понимает, да и компилятор создаёт выходной файл в другом виде. Образцы от обеих версий.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Dec 23 2013, 18:31
Сообщение #13


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,353
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



Походу это LuaJIT:
_ttp://luajit.org
Гугли "LuaJIT decompiler" или что-нибудь этакое.
Нашёл вот это, но не пробовал:
_ttp://github.com/bobsayshilol/luajit-decomp


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Dec 25 2013, 17:36
Сообщение #14


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



К сожалению, не то.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Jan 19 2014, 16:34
Сообщение #15


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



За два вечера написал генератор шрифтов, причём качество прорисовки получилось лучше чем в «Photoshop» и в разы быстрее мазохистского метода редактирование шрифта, которым я сделал шрифт в прошлом году. Да и текстурки получаются компактнее чем у разработчиков.

С (де)компиляцией данных LUA пока глухо. sad.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Axsis
Jan 19 2014, 23:09
Сообщение #16


Advanced Member
***

Группа: CTPAX-X
Сообщений: 121
Регистрация: 6-February 08
Пользователь №: 374
Спасибо сказали: 149 раз(а)



QUOTE(Siberian GRemlin @ Dec 25 2013, 21:36) *
К сожалению, не то.
Очень даже то smile.gif
То что это LuaJIT - это 100%, посмотрел в его исходниках формат raw-дампа bytecode - именно он (заголовок 0x1B, "LJ").
_ttp://wiki.luajit.org/Bytecode-2.0#LuaJIT-2.0-Bytecode-Dump-Format

К декомпилятору есть пример. Угадай, по файлам из какой игры biggrin.gif
_ttps://github.com/bobsayshilol/luajit-decomp/wiki/Tutorial
Так что копай дальше в этом направлении


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Jan 20 2014, 17:21
Сообщение #17


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



Он, конечно, что-то декомпилирует, но вот названий переменных с текстом игры на выходе точно нет. sad.gif

Однако, компилировать верные файлы научился. Без декомпилятора получается нужен доступ к макинтошной версии. huh.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Feb 9 2015, 16:49
Сообщение #18


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,353
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



Заглянул на форум Xentax (кстати, они снова сделали регистрацию платной) и натолкнулся на вот такое: .luc decompiling - там всякие ссылки и документация на виртуальную машину Lua (если ещё актуально).
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Feb 13 2015, 04:20
Сообщение #19


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



Уже не актуально: разработчики в последних версиях стали класть чистый код.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Aug 28 2018, 07:04
Сообщение #20


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



Доделал-таки перевод, а то когда разработчики игру забросили, желание пропало переводить.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 28th March 2024 - 12:57