Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

CTPAX-X _ Ресурсы _ Spacebase DF9

Автор: Siberian GRemlin Dec 15 2013, 15:15

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

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

Образцы.

Добавлено.
Подозреваю, что графические данные это тело DDS без заголовка.

Автор: Grom PE Dec 16 2013, 03:45

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

Автор: Siberian GRemlin Dec 16 2013, 05:32

Я опростоволосился: игра есть в http://rutracker.org/forum/viewtopic.php?t=4567045.

Автор: Siberian GRemlin Dec 16 2013, 19:01

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

Удалось выяснить, что текстура сгенерирована с помощью http://www.codeandweb.com/texturepacker, судя по всему, в формате zlib compressed pvr (PowerVR) также известном как pvr.ccz либо в его модифицированном варианте, т.к. заголовок отличается. Пробовал сгенерировать любую текстуру, но в ней почему-то данные хранятся в другом виде, не похожем на DDS. Хотя, возможно, я чего-то не понимаю в современной графике.

Автор: -=CHE@TER=- Dec 16 2013, 20:40

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

Автор: Siberian GRemlin Dec 17 2013, 19:52

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

Автор: Siberian GRemlin Dec 18 2013, 08:47

QUOTE(-=CHE@TER=- @ Dec 17 2013, 04:40) *
Насчёт ширины/высоты (width/height) не уверен, потому что они там одинаковые (в .DDS просто сначала высота идёт, а уже потом ширина).
Какая-то чертовщина творится: просто открываю текстуру в «Photoshop» и пересохраняю (с разными параметрами пробовал), а у неё ширина уменьшается вдвое. blink.gif
У кого-нибудь есть идеи?

Автор: -=CHE@TER=- Dec 18 2013, 12:39

Попробуй текстуру сначала в .TGA перегнать какой-нибудь внешней утилитой, а уже потом открывать, может так сработает.
Ибо формат .DDS такой "весёлый" (см. ссылки на MSDN в исходниках), что его каждый может как хочет трактовать и сохранять, так что там в заголовке практически ни на что полагаться нельзя.
Я заполняю только минимально необходимые поля, чтобы оно корректно отображалось, возможно, необходимо что-то ещё. Я сам .DDS не смотрел (нечем), так что конвертировал его в .TGA, чтобы убедиться что всё ок.

Автор: Axsis Dec 18 2013, 23:44

Та формат то нормальный, просто почти в каждой проге его поддержка реализована не на 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" .
:: не потеряй точку в конце первой строки - её плохо там видно :)

Автор: Siberian GRemlin Dec 19 2013, 15:56

Спасибо!
Разобрался с форматом и написал обратный упаковщик — игра кушает новый шрифт. Теперь художественная рутина предстоит. Нашёл все шрифты в векторе, и в один уже добавил 90% кириллицы.

Автор: Siberian GRemlin Dec 20 2013, 19:32

Кривой шрифт (без сглаживания) и пока обрезанный текст (правка недекомпилированного LUA).

Автор: Siberian GRemlin Dec 23 2013, 15:15

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

Может кому-нибудь уже встречался такой формат? Декомпилятор его не понимает, да и компилятор создаёт выходной файл в другом виде. Образцы от обеих версий.

Автор: -=CHE@TER=- Dec 23 2013, 18:31

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

Автор: Siberian GRemlin Dec 25 2013, 17:36

К сожалению, не то.

Автор: Siberian GRemlin Jan 19 2014, 16:34

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

С (де)компиляцией данных LUA пока глухо. sad.gif

Автор: Axsis Jan 19 2014, 23:09

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
Так что копай дальше в этом направлении

Автор: Siberian GRemlin Jan 20 2014, 17:21

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

Однако, компилировать верные файлы научился. Без декомпилятора получается нужен доступ к макинтошной версии. huh.gif

Автор: -=CHE@TER=- Feb 9 2015, 16:49

Заглянул на форум Xentax (кстати, они снова сделали регистрацию платной) и натолкнулся на вот такое: http://forum.xentax.com/viewtopic.php?f=13&t=12248 - там всякие ссылки и документация на виртуальную машину Lua (если ещё актуально).

Автор: Siberian GRemlin Feb 13 2015, 04:20

Уже не актуально: разработчики в последних версиях стали класть чистый код.

Автор: Siberian GRemlin Aug 28 2018, 07:04

Доделал-таки http://siberian-studio.ru/loc_piratruz.php?game=SpacebaseDF9, а то когда разработчики игру забросили, желание пропало переводить.