Просмотр полной версии : Суперпаковщик данных BitBuster
Aprisobal
24.01.2005, 16:50
(продолжение поста, начало см. здесь)
3. а дальше ещё интереснее: паковщик данных, распаковщик которого всего 120 байт(!), и причём утверждают, что его можно довести до 89(!). Также сказано, что пакует примерно также как Hrust(правда упаковщик только для PC, но там же есть его исходники). Проверим!
Итак:
исходный файл: 6912байт - заставка HeroQuest :).
запак. hrust1.3: 4608байт
запак. bitbuster: 4580байт (!)
Но конечно есть и другие паковщики и другие файлы. Но думаю вы их сами попробуете ужать и проверить BitBuster.
Жду комментариев.
Думаю на паковке этой заставке выиграет lc5.0 :D
Ну а про то, что распаковщик можно уместисть в 89 быйт - абсолютная правда, нужно всего лишь в исходнике все макросы заменить на call..
А вообще, мне bitbuster понравился..
Aprisobal
24.01.2005, 18:57
А вообще, мне bitbuster понравился..Особенно он понравится создателям 512b интро - вот уж где с таким распаковщиком в 89b открываются широкие просторы ;) Это уже не 256 байт с hrust, а целых 423!
Особенно он понравится создателям 512b интро - вот уж где с таким распаковщиком в 89b открываются широкие просторы ;) Это уже не 256 байт с hrust, а целых 423!Для 1r тоже неплохо.. Надо будет поюзать.. Только надо проверить ещё, с какой скоростью работает распаковщик, и работает ли он вообще :D
Особенно он понравится создателям 512b интро - вот уж где с таким распаковщиком в 89b открываются широкие просторы ;) Это уже не 256 байт с hrust, а целых 423!
Уже полтора года существует оптимизированный распаковщик хруста длиной 212 байт. Исходник есть в составе http://ob.raww.net/files/qc_2_82.zip. Но 89 - это конечно круто. Где можно найти упаковщик? Ссылка в начале темы ведет на совсем посторонний пост.
89 - это конечно круто. Где можно найти упаковщик? Ссылка в начале темы ведет на совсем посторонний пост.
Там в первом посте ссылка.. её и посмотри пожалуйста ;)
Sorry, не посмотрел сразу.
Нашел я упаковщик и провел полевые испытания на случайно выбранной программе. Этой программой оказался кодовый блок QC v3.10. ;) Результаты:
17856 - оригинал
14386 - QC packer (Hrust v2.4fix + lazy evaluation, 16Кб окно)
14801 - Bitbuster v1.2
Разница впечатляющая, но в пользу нашего родного хруста. :)
Aprisobal
28.01.2005, 01:55
Ну а про то, что распаковщик можно уместисть в 89 быйт - абсолютная правда, нужно всего лишь в исходнике все макросы заменить на call..Оказалось (сразу не заметил), что BitBuster Extreme (http://www.west.co.tt/matt/speccy/apology/#the_packer) и есть распаковщик размером в 89 байт! Уже опробовал - работает.
Провел полевые испытания на случайно выбранной программе. Этой программой оказался кодовый блок QC v3.10. ;) Результаты:
Разница впечатляющая, но в пользу нашего родного хруста. :)Я тоже провёл некоторые испытания.. Hrust тоже победил..
off: неужели qc уже 3.10?
"бесплатных пирожных не бывает" (c)
off: неужели qc уже 3.10?
http://ob.raww.net/cgi-bin/index.cgi?page=quick :), 3.11 не за горами.
ктонить может полноценно протестить данный паковщик?
нужна сравнительная характеристика на файлах
-экран (тесты: средней заполненности, с текстурами, конверченный с размывкой)
-текст (тесты: маленький текст, большой, текст программы)
-код (тесты: смешанные данные, чисто код)
Aprisobal
01.02.2005, 01:42
Просьба тому, кто произведёт тесты - залить в аттач оригиналы файлов. Спасибо.
Sorry, не посмотрел сразу.
Нашел я упаковщик и провел полевые испытания на случайно выбранной программе. Этой программой оказался кодовый блок QC v3.10. ;) Результаты:
17856 - оригинал
14386 - QC packer (Hrust v2.4fix + lazy evaluation, 16Кб окно)
14801 - Bitbuster v1.2
Разница впечатляющая, но в пользу нашего родного хруста. :)
на небольших графических файлах < 7000 кб - он делает Хрум :(
спрайты короче жмет лучьше
Aprisobal
19.10.2006, 12:26
Автор оригинального SjASM Sjoerd Mastijn создал новый компрессор Pletter на основе исходных кодов Bitbuster'а - http://home.planet.nl/~realfun/pletter.html
NovaStorm
07.11.2006, 17:02
Сравнивал с UCL в виде депакера uclz80.
На полных скринах с хорошим заполнением и спрайтоподобными лучше всего оказался 1 метод, видимо из-за окна в 2кб и природы расположения байтов на экране. Выигрыш у плеттера был в пределах сотни байт. На русских/английских/программерских текстах лучше всего словарь около 8кб, 16 обычно слишком много, те видимо неоптимально плеттер кодирует с большим размером окна. UCL в среднем выигрывает на данных в 16к до 5-10%. На бОльших данных рвёт плеттера как тузик грелку, видимо окно во все данные и кодирование в пределах окна оптимальнее.
По коду: uclz80 около 250 байт. При некоторой доработке не использует стек, IY и альтернативные регистры. Нет CALL'ов - всё через JP, есть возможность заменить их хорошую часть на JR.
У плеттера наоборот, используются все регистры, много call'ов, а значит и стек занят. около 110 байт в зависимости от режима и ковыряния в нём...
NovaStorm
04.12.2006, 15:03
Если кому то ещё интересно, то сравнил pletter с megalz. На текстах под 16к mlz однозначно лучше, для pletter приходится подбирать параметры. На экранах mlz обычно(но бывает и наоборот) выигрывает байт 20-40. pletter на экранах почти всегда лучше в 1м режиме. Скорость mlz почти одинаковая с ucl - у меня было около 1000000 тактов на распаковку экрана, у pletter 1 - около 600000. Так что пока среди них mlz - для текстов, pletter - для графики. Для ucl на спеке нет подходящих объёмов данных, так что в пределах 16к смысла для её применения не вижу.
http://psndcj.blogspot.com/
SjASM, SjASM... А на родном Спеке или хоть на эмуле много людей осталось? Что забыли Аласм, Масм, Тасм? Куда народ движется? Понимаю, что к современным технологиям. Но ведь родное, Спековское забываете!
VNN_KCS, жизнь коротка... на пц быстрее делать. ведь сколько не сделано! и сколько еще предстоит не сделать...
SjASM, SjASM... А на родном Спеке или хоть на эмуле много людей осталось? Что забыли Аласм, Масм, Тасм? Куда народ движется? Понимаю, что к современным технологиям. Но ведь родное, Спековское забываете!
ммм
берем среднестатистическую игру - для работы требует 128 кб
вопрос сколько памяти должно быть на той машине на которой будем писать? для удобной (!) отладки
SjASM, SjASM... А на родном Спеке или хоть на эмуле много людей осталось? Что забыли Аласм, Масм, Тасм? Куда народ движется? Понимаю, что к современным технологиям. Но ведь родное, Спековское забываете!
Вобщем-то, в 80-х игры для спектрума часто делали не целиком на спектруме.
сколько памяти должно быть на той машине на которой будем писать? для удобной (!) отладки
а вот существует мнение, что отладка - это лишнее, сразу надо писать без глупых ошибок;) но даже при этом остается проблема удобной сборки на реале.
Вобщем-то, в 80-х игры для спектрума часто делали не целиком на спектруме.
Да? правда правда? :)
а вот где-то перевод статьи видел - так там рекомендация была
иметь более мощную машину - и ссылки, что в крупных конторах так и было
писать на 48к машине можно - но ппц как сложно особенно если в каком нить ГЕНСЕ с кассетником
---------- Post added at 17:08 ---------- Previous post was at 17:07 ----------
а вот существует мнение, что отладка - это лишнее, сразу надо писать без глупых ошибок;) но даже при этом остается проблема удобной сборки на реале.
не бывает чтобы совсем без ошибок
так это же просто глупое мнение... просто встречаются самоуверенные индивиды.
SjASM, SjASM... А на родном Спеке или хоть на эмуле много людей осталось? Что забыли Аласм, Масм, Тасм? Куда народ движется? Понимаю, что к современным технологиям. Но ведь родное, Спековское забываете!
Выкладывание в любом из спековских ассемблеров (особенно в экзотическом) приведет только к срачу "а почему не в моем любимом %assemblername%???"
а вот существует мнение, что отладка - это лишнее, сразу надо писать без глупых ошибок но даже при этом остается проблема удобной сборки на реале.
Это в мой огород камень или просто ветер попутный подул? :-D
NovaStorm
07.10.2010, 21:01
>http://psndcj.blogspot.com/
MegaLZ лучший благодаря optimal parsing'у, но сливает в скорости из-за того, что читается слишком много битов. А кодирование больших длин Элиасом сделано имхо вообще зря. В целом для дем можно сделать пакер с небольшим, возможно динамическим окном, с чем-то отличным от унарных кодов для длин, и без частого использования битового чтения. Формат 3-9 для length-offset тут наверное даст хороший прирост в скорости.
Это в мой огород камень или просто ветер попутный подул?
попутный:) но наверное это была фраза-детектор:)
Вобщем-то, в 80-х игры для спектрума часто делали не целиком на спектруме.
вот кусок из интервью про игру JoeBladeIV
`What computer was the game developed on ?
The game was written on a PC using PDS and sent to the Spectrum via the interface port`
http://www.worldofspectrum.org/infoseekid.cgi?id=1000532
попутный но наверное это была фраза-детектор
Ну вспоминая наш с тобой спор на эту тему, немудрено было и "попасться":)
вот кусок из интервью про игру JoeBladeIV
`What computer was the game developed on ?
The game was written on a PC using PDS and sent to the Spectrum via the interface port`
http://www.worldofspectrum.org/infoseekid.cgi?id=1000532
Ну так и я о том же. Поэтому не вижу ничего зазорного чтобы использовать эмулятор и различные PC программы для создания софта для zx.
Не очень я понял.
Для меня кто-нибудь объяснит - чем выложенный битюастер лучше чем указанный же МегаЛЗ и Храст? Судя по результатам качество сжатие нелучше, тогда в чём подвох?
чем выложенный битюастер лучше
Скорость распаковки
Скорость распаковки
А конкретнее?
Например очень любопытно, во первых как хорошо сабж сожмет дамп AY, во вторых сколько тактов займет распаковка 14 байт.
Например очень любопытно, во первых как хорошо сабж сожмет дамп AY, во вторых сколько тактов займет распаковка 14 байт.
Имхо, в силу ссылочной сущности LZ-based алгоритмов, пакетная распаковка будет достаточно затрудненной. Тот же ZX50 эти 14 байт может преобразовать в 2...16 байт, в зависимости от ситации.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot