PDA

Просмотр полной версии : ɹǀɩ ATARI. Упаковка данных



breeze
18.03.2014, 15:17
Заинтересовался тут вопросом, а можно ли перепаковать исполняемый (XEX) файл. Что бы он занимал меньше места, и что бы желательно делать на peecee и что бы на atari это распаковывалось автоматически и без лишних телодвижений.

После небольшого поиска по сети попал на сайт не безызвестной MAD TEAM (http://madteam.atari8.info/index.php?prod=uzytki). И в частности нашел их утилиту SUPER PACKER 4.1. Программа представляет из себя оболочку (GUI) для консольных Deflater i Exomizer, а так же для работы ей требуется Mad-Assembler (http://mads.atari8.info/mads_198.7z).

Особо детально в программе я не разбирался и использовал настройки по умолчанию. Возможно при первом запуске пакер спросит пути к консольным файлам: Deflater.exe, Exomizer.exe и mads.exe. В приатаченном архиве пути прописаны локальные и проблем с запуском быть не должно. К сожалению ограничение в 640кб (хватит всем) на форуме не позволило загрузить всё одним архивом, поэтому распакуйте сначала superpacker.zip, а затем в эту же папку остальные файлы superpacker (tools).zip.

Но вернёмся к программе. После запуска вы увидите такое окно:

http://i.imgur.com/koTfws8.png

Нажимаем «Load DOS file» и выбираем интересующий нас файл, к примеру «Isora.xex»

Далее отмечаем те секции кода, которые хотим упаковать и нажимаем «Pack Segment».

http://i.imgur.com/1c8h0eZ.png

Честно скажу, я отмечал от балды всё подряд (ну кроме INI). Но на некоторых файлах (с которыми я экспериментировал) получил сообщение об ошибке, что данных блок не может быть упакован. Логично, что такую секцию стоит тогда пропустить.

После упаковки файла (если всё прошло без ошибок) мы увидим примерно такую картину:

http://i.imgur.com/HckYUCI.png

После чего нажимаем «Save ALL» и сохраняем на диск уже упакованный файл «Isora_p.xex».

При запуске мы увидим на доли секунды цветные полоски по бордеру и немного «мусора» на экране.

Даже без разбирательства с детальными настройками упаковщика мы сжали файл почти в два раза:

Isora.xex — 23505 байт
Isora_p.xex — 13504 байт

Буду признателен, если кто-нибудь дополнит вышеизложенную информацию или поделится другими упаковщиками.

denpopov
18.03.2014, 16:05
сам не пробовал, но у MadTeam есть RLE packer(исходник прилагается), с другими пакерами не разобрался, получается полная чепуха, т.е. программа не запускается.

breeze
18.03.2014, 16:35
получается полная чепуха, т.е. программа не запускается.

ну тут главное, что бы было что паковать, а то в некоторых случаях «пакованный» файл получался больше исходного ;)

denpopov
18.03.2014, 16:54
ну тут главное, что бы было что паковать,
а вот что паковать я пока не знаю..

denpopov
16.11.2014, 16:55
внезапно осилил exomizer. запускается так:

exomizer sfx sys -t 168 -Di_ram_enter=0xff -Di_ram_exit=0xff -Di_table_addr=0x0600 -n ff.xex -o ff2.xex

т.е. ff.xex - входной файл, ff2.xex - выходной.

i_table_addr=0x0600 - место для таблицы для распаковки(6я страница нам е нужна, ага).