кстати вполне разумный подход, разжимать только те спрайты врагов что нужны для текущего уровня.
таким образом можно даже выбирать их случайным образом (для разнообразия)
Вид для печати
допилил за праздники генератор, просьба потестировать поактивнее
в качестве входных параметров sfxpack - имя файла и адрес запуска на спеке
(адрес с минусом изменяет способ упаковки атрибутов на смешанный)
на выходе пока что голый бинарь, может быть, когда-нибудь тапку сделаю
а пока что грузите в память эмуля по указанному адресу и randomize usr
в редких случаях при повторном запуске может быть замусоривание картинки
это не баг, это фича) но сообщайте, если встретится, всё равно
(del/11)
Lethargeek, у меня Symantec Download Insight заматерился :) Картинка нового Диззи упаковалась лучше.
LC5: dizzy_final.lc5 -- 5642 байта
LGK: dizzy_final.lgk -- 5095 байт
547 байт выигрыш! :v2_dizzy_roll:
Упаковку по третям опциональную можешь добавить?
fantasyworld dizzy:
С депакерами:
LC521: 3791
LGK016: 3517
274 байта выигрыш, это отличный результат!
drbars, 547 байт это очень крутой выигрыш. Упаковка была с депакерами? Использовался LC521?
В эмуле распаковывается нормально.
Теперь drbars впихнет еще пару комнат в свою игру без проблем, верно?)
по третям зачем? упаковка же познакоместная у меня
будет обработка любых окошек (только неизвестно когда))
- - - Добавлено - - -
да, у депакера еще такая особенность - для перегруженных плохосжимаемых картинок он меньше :)
- - - Добавлено - - -
еще несколько наблюдений и замечаний - в силу упомянутой особенности и вообще
так как мой депакер в среднем байт на 200 длиннее лазерного - проигрыши sfx вероятнее
в основном на сильно сжимаемых картинках, где много пустоты, заливок и повторений
(впрочем, далеко не на всяких, контрпримеры: FDThorpe - Convoy, Einar - Elexis)
кроме этого, проигрыш даже без депакера вероятен в случаях "ненормальной корреляции"
это если по какой-то причине корреляция между произвольными соседними пикселями слабая
но сильна корреляция отдельных пикселей в байте, в результате на участках картинки
получаются ограниченные наборы байтов, соответственно с ограниченным числом сочетаний
Shiru Citystorm - как выяснилось, оригинал до диффузии состоял из "пикселей" 8x1
также ранее упоминавшийся Alien Syndrome (lowres - лишь 16 байт почти на всю картинку)
но самый патологический случай (проигрыш 747 байт без депакера!) был R-Tape - EFMB
почти по всей площади (кроме центра) корреляции между соседними пикселями нет вообще!
нет двух совершенно одинаковых знакомест! но зато зеркальная корреляция внутри байта
в результате на 3/4 картинки тоже видим только 16 различных байт (но уже без заливок)
и самое смешное, что JBIG на ней проиграл обоим спектрумовским компрессорам)))
так что применяйте оба как взаимодополняющие :v2_dizzy_roll:
так для них нужен не приклеенный депакер частного случая, а универсальный один на все
или ты их с диска тянуть собрался? вообще какого они размера?
если хочешь, можешь в личку примеры кинуть, и про комнаты подробнее рассказать
может, что-нибудь по аналогии и придумается, как запаковать оптимальнее
каждый раз, возвращаясь к своему коду, понимаю, насколько сжатие далеко покамест от оптимального
применил однократную коррекцию после хаффмана с перевыбором типа ксорки с учётом длин кодов
выигрыш на разных картинках получил от нескольких байт до нескольких десятков байт
(эталонные мотоциклы уже только 3710); и несколько ускорил компрессор
(del/20)