Re: Z archive Unpacker
Что там понимать... это больше псевдокод, чем Си.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
iMaster → Маленькие программы → Z archive Unpacker
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Что там понимать... это больше псевдокод, чем Си.
Ну, общие моменты я все же понял
Added: Итак, я расжал Main.exp и запаковал его заново по lzss. Результаты тестов:
1. Winz при загрузке уровня вылетает в главное меню, не успев показать экран загрузки.
2. Z Dos вместо главного меню показывает черный экран (даже курсора нет), однако музыка играет.
3. Распаковал lzss'ный Main.exp распаковщиком Antares'а. Распаковалось без ошибок, но в картинках после строки верного заголовка и 5ти блоков неверного дальше одни нули.
Да, и новый Main.exp оказался на пару килобайт меньше старого. Вот такие пироги.
Скорее всего неправильно выбрана реализация lzss-запаковки.
Ищите реализацию с кольцевым буфером в роли словаря (также поиграйтесь с настройками словаря).
Если ничего не поможет, то можно не сжимать файлы, а переводить их в формат, который можно 100% правильно распаковать:
1. записываем дескриптор 8-и неупакованных байт - 0xFF (все биты флага = 1; один бит дескриптора на байт данных)
2. записываем 8-мь оригинальных байт данных
3. повторяем эту процедуру до конца файла
4. завершаем "запакованную" последовательность 9-ю нулевыми байтами.
Также это поможет проверить правильность jmp2-запаковщика.
То есть, если блок исходных данных выглядит, допустим, как
01 02 03 04 | 05 06 07 08
, то блок "упакованных" данных будет выглядеть как
FF 01 02 03 | 04 05 06 07 | 08 00 00 00 | 00 00 00 00
00 00
, да? А если длина файла не будет кратна 8, то недостающие в конце файла байты представить нулями?
Яволь. В любом случае ненужные нули в конце запакованного файла lzss-распаковщик должен проигнорировать.
У меня вообще такое предчувствие (после когда-то сделанного filemon-а), что если распаковать все ресурсы из [pac|exp]-архивов в папку Z, то он их узнает и запустится без наличия архивов.
1. записываем дескриптор 8-и неупакованных байт - 0xFF (все биты флага = 1; один бит дескриптора на байт данных)
2. записываем 8-мь оригинальных байт данных
3. повторяем эту процедуру до конца файла
4. завершаем "запакованную" последовательность 9-ю нулевыми байтами.
Также это поможет проверить правильность jmp2-запаковщика.
Ну, в общем-то, получилось! Распаковывается все верно. Последний дескриптор я все же представил как надо, чтоб архив хотя б чуть-чуть поменьше места занимал.
Думаю, можно начинать русификацию. Вот только Siberian GRemlin вернется...
AxXxB
Ты написал упаковщик?
Ну, упаковщиком это назвать нельзя... Да и написал-то не я - все сказал dr_dizel, я лишь реализовал.
Игра все прекрасно понимает, даже грузится, как мне показалось, чуточку быстрей. Вот только файлы побольше занимают раза в полтора
Чтобы отправить ответ, вы должны войти или зарегистрироваться
iMaster → Маленькие программы → Z archive Unpacker
Форум работает на PunBB, при поддержке Informer Technologies, Inc