crypt of decay - November 23rd, 2013 [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

November 23rd, 2013

блядь! [Nov. 23rd, 2013|02:11 am]
я, кажется, когда-то просил помощи в распаковке ресурсов от игры Future Classics Collection (а может и не просил, потому что с ходу псто не нарыл). таки распаковал. ну блядь, ну ёбаный же нахуй же! да, это совершенно обычный lzss.c, содраный один-в-один. но я же самый умный, я его и так помню, зачем в исходник смотреть? хуяк-пиздык — распаковывает какую-то хуйню.

забыл я, блядь, об одном: начальная позиция в словаре в lzss.c — DICT_SIZE-MAX_MATCH_LENGTH. блядь. не ноль. блядь. я пытался какие-то «дельты» угадать, ещё всякую хуйню — от больших мозгов, да. потом таки перечитал пример, сдвинул начальную позицию — всё распаковалось. пересобрал пакованые файлы без сжатия (тупо хуячил литералами), запустил игрушку — работает.

внутри там забавные файлы, очень похожие на RIFF: четырёхбайтовое имя чанка, размер в dword, данные. и этой срани большая кучка. и ещё вдобавок кучка срани вообще без заголовков. но тут уже проще: поскольку я могу пересобирать паки, то методом научного тыка в байты можно выяснить, какой за что отвечает. по крайней мере в степени, достаточной для выковыривания уровней из любимого diskman (и, надеюсь, графики; ну да графику я и пошотить могу, если что).

римейк я, конечно, не сделаю в виду ленивости, но ещё одну расковыряную игру в копилку добавлю.

кстати, надо бы выложить куда-то инфу по Threat. на шикади попробовать, что ли?

да, игра ничего особого из себя не представляет. но diskman'ом оттуда я в школе упарывался по полной программе. там ещё и хотсит есть, пробегать вдвоём на скорость уровни было весьма прикольно. да, 286-е, ничего более навороченого не работало.

сейчас вот опять diskman'а погонял — до сих пор штырит. может, и сделаю таки римейк, там кода-то…
Linkmeow!

future classics collection, продолжение [Nov. 23rd, 2013|01:09 pm]
формат картинок и тайлов совершенно дурацкий. и уровней тоже. не хочу в дизассемблер.

формат картинок почти выковырял — кроме одной: в tank battle после середины какая-то лютая ебанина идёт, совершенно ни на что не похожая. поскольку в BATT и BINF я не врубился, то подозреваю, что интересное именно там. точно такая же ебанина в тайлах от танков, кстати.

сами же тайлы очень похожи на картинки, только там TSAT и OTAB, тоже нихуя не ясно. OTAB — это какая-то таблица смещений, видимо — если её занулить, графику подпиздошивает сдвигом.

формат уровней тоже немного понятен: там четыре слоя информации. один, похоже — фон/action, второй — номер тайла (кажется, проходимость тайлов как-то связана с OTAB), третий и четвёртый — тип объекта и какие-то его флажки. в принципе, нарисовать уровень без объектов и тайлов-действий я уже могу.

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

графика, кстати, вся шестнадцатицветная, но с VGA-палитрой. для EGA и CGA есть таблицы EPRM и CPRM, они как-то влияют на преобразование картинки. как именно — мне лень разбираться.

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

надо было бы быстро накидать sdl-ный визуализатор/редактор уровней, чтобы наглядней связи втычить. но лень же, как обычно.

кстати, подумалось, что alien breed с динамическим освещением выглядела бы весьма неплохо: там как раз резкие границы должны атмосферненько вписаться. формат файлов римэйка добрый человек уже расколол, как-нибудь стоит попробовать сделать рендерер. ну, или взять threat'овские уровни — там как раз проходимость стен по цвету пикселей определяется, можно и свет трассировать поточней.
Link7 meows|meow!

navigation
[ viewing | November 23rd, 2013 ]
[ go | Previous Day|Next Day ]