tag:blogger.com,1999:blog-4428473564097379725.post3214610082420674948..comments2024-03-14T06:42:34.180+05:00Comments on Ещё один блог сисадмина: Распаковщик и упаковщик игровых ресурсов PUPmorbohttp://www.blogger.com/profile/16650057587203469226noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-4428473564097379725.post-85039120618936840892018-04-21T22:33:25.772+05:002018-04-21T22:33:25.772+05:00Спасибо за доработки, приятно что автор не в стол ...Спасибо за доработки, приятно что автор не в стол все это сделал.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4428473564097379725.post-85193917269540282582017-12-06T15:45:58.091+05:002017-12-06T15:45:58.091+05:001. texture работает хорошо со всеми форматами, кро...1. texture работает хорошо со всеми форматами, кроме конвертации в m32 ))) Программа валится с ошибкой в винде7 х64, но нормально отрабатыват под винХП. <br />2. Понимаю что времени нет у вас... Но, может, сможете объяснить логику шрифтов font.m32, font1.m32, font2.m32? Ибо правило что "Символы там имеют размеры 8x8 и выстроены в виде таблицы 16x16." распростаняется только на шрифт conchars.m32. Не могу понять каких размеров и где рисовать новые.<br /><br />Я приложил ссылки на скрины как выглядят шрифты и ссылку на оригинальные файлы шрифтов.<br /><br />Может, этот комментарий не постите в блог. Ответье хоть что в почту, скайп или вайбер.<br />https://www.dropbox.com/s/n8jnl3jlhrf57ir/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%202017-12-06%2013.31.17.png?dl=0<br /><br />https://www.dropbox.com/s/5fu9zyagy8c5mg8/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%202017-12-06%2013.31.28.png?dl=0<br /><br />https://www.dropbox.com/s/5fyhyqf1qhpivi4/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%202017-12-06%2013.31.44.png?dl=0<br /><br />https://www.dropbox.com/s/h40cun1ls66nbv5/misc.rar?dl=0<br />iншыnoreply@blogger.comtag:blogger.com,1999:blog-4428473564097379725.post-75087051318352222042017-12-04T21:14:24.673+05:002017-12-04T21:14:24.673+05:00Формат вызова команды такой:
pup --plugin <plu...Формат вызова команды такой:<br /><br />pup --plugin <plugin> --pack <file> [<dir> [<meta>]]<br /><br />Программе надо указывать имя собираемого файла, а каталог и имя файла с метаданными она сгенерирует сама. Вы указали имя каталог, соответственно - программа посчитала его именем собираемого файла, неправильно сгенерировала имя каталога и файла с метаданными, не смогла их найти и завершилась. Как вариант - можно указать все три имени явно.<br /><br />Помню, у меня были аналогичные проблемы со сборкой. Изначально я писал программу под Linux i386. Потом я стал пользоваться Linux amd64 и под ним она не собиралась из-за несовпадения размеров целых чисел: в программе предполагалось что они всегда 32-битные, а оказались 64-битные. И ещё были проблемы с тем, что тип ssize_t переехал в другой заголовочный файл. Я для себя программу доработал, чтобы она собиралась. К сожалению, в процессе доработки редактор покорёжил отступы и я их так и не исправил.<br /><br />Архив с доработанной программой можно взять тут:<br />http://stupin.su/files/pup64.tbz<br /><br />Как время появится - поправлю отступы. Эта версия под Linux amd64 должна собираться нормально, если опять состав заголовочных файлов в системе не изменился.morbohttps://www.blogger.com/profile/16650057587203469226noreply@blogger.comtag:blogger.com,1999:blog-4428473564097379725.post-76324076441461580882017-12-04T21:00:47.820+05:002017-12-04T21:00:47.820+05:00У себя Heretic 2 я не нашёл и сейчас не помню, в к...У себя Heretic 2 я не нашёл и сейчас не помню, в каком формате там шрифты. Если не изменяет память, то это картинка 256x256 в собственном формате Heretic 2, который имеет расширение m32. Символы там имеют размеры 8x8 и выстроены в виде таблицы 16x16.<br /><br />Можете попробовать приспособить в целях распаковки и упаковки мою программу texture, которую я писал на C++ в 2002 году ещё под Windows:<br />http://stupin.su/files/texture.tbz<br /><br />К сожалению, помочь со сборкой и адаптацией под Linux не смогу - времени не хватает даже просто чтобы написать этот ответ.morbohttps://www.blogger.com/profile/16650057587203469226noreply@blogger.comtag:blogger.com,1999:blog-4428473564097379725.post-63798006196047082622017-12-04T02:05:37.667+05:002017-12-04T02:05:37.667+05:00Ещё проблема. Решил запаковать готовый материал в ...Ещё проблема. Решил запаковать готовый материал в pak файл Heretic 2<br /><br />/base/pup$ ./pup --plugin pack --pack ru<br />Selected plugin: pack.<br />Autoselected path: ru/.<br />Autoselected metafile: ru.txt.<br />rt_init: failed.<br /><br />Что я делаю не так?<br /><br />Вот мой лог компиляции самой программы, там есть фатальные ошибки... Возможно в них дело.<br />Спасибо за ответ.<br /><br />https://www.dropbox.com/s/bvl92v42fa7eu23/pup_comp.txt?dl=0iншыnoreply@blogger.comtag:blogger.com,1999:blog-4428473564097379725.post-26572673137628250652017-12-04T00:52:51.874+05:002017-12-04T00:52:51.874+05:00Отлично! Помогло. Спасибо. Ещё вопрос... Может вы ...Отлично! Помогло. Спасибо. Ещё вопрос... Может вы в курсе чем можно отредактировать файлы шрифтов Heretic 2? Хочу сделать нормальный русский шрифт и русские тексты, а то в пиратке как всегда - тексты без дешифратора не прочесть )))<br /><br />Спасибо ещё раз за помощь и программу, очень выручили.iншыnoreply@blogger.comtag:blogger.com,1999:blog-4428473564097379725.post-37721797674043654412017-12-03T21:07:39.253+05:002017-12-03T21:07:39.253+05:00Области данных первой и второй записей частично пе...Области данных первой и второй записей частично перекрываются. Получается что один из ресурсов начинается внутри другого, а другой - заканчивается внутри первого.<br /><br />Как я понимаю, вы скомпилировали программу из исходных текстов? В таком случае откройте файл restable.c и закоментируйте в нём вот этот блок:<br />/* Проверка, не пересекаются ли блоки. */<br />if (((rt->entries[i].offset > rt->entries[j].offset)<br /> && (rt->entries[i].offset < rt->entries[<br />j].offset + rt->entries[j].compressed))<br /> || ((rt->entries[i].offset + rt->entries[i].compressed > rt->entries[j].offset)<br /> && (rt->entries[i].offset + rt->entries[i].compressed < rt->entries[j].offset + rt->entries[j].compressed)))<br />{<br /> fprintf(stderr, "rt_fix: entries %zu and %zu overlapped!\n", i, j);<br /> return FALSE;<br />}<br /><br />После этого перекомпилируйте программу и попробуйте распаковать ваш файл. Однако предупреждаю, что распакованные ресурсы будут скорее всего частично повреждены, т.к. перекрываются в исходном файле.morbohttps://www.blogger.com/profile/16650057587203469226noreply@blogger.comtag:blogger.com,1999:blog-4428473564097379725.post-40202752617790482082017-12-03T19:10:51.929+05:002017-12-03T19:10:51.929+05:00Отличная программа. Единственная, которая заработа...Отличная программа. Единственная, которая заработала у меня с файлами Heretic 2. Одна беда - при попытке распаковать файл от русских пиратов пишет:<br /><br />user@amd:/media/heretic2/base/pup$ ./pup --unpack htic2-1.pak <br />Autoselected path: htic2-1/.<br />Autoselected metafile: htic2-1.txt.<br />Autodetected plugin: pack.<br />Checking entries 0/161. Found 0 referenced to same block, 0 with same content, 0rt_fix: entries 1 and 2 overlapped!<br />unpack: rt_fix failed.<br /><br />И что делать? Как быть? Мне нужно распаковать именно русскую пиратку чтобы исправить перевод.iншыnoreply@blogger.com