metamorpho, выложи пожалуйста свою микродему. Это будет хороший челендж для мини распаковщиков. Я хочу проверить чисто rle компрессорам. Влезет или нет. :)
Вид для печати
metamorpho, выложи пожалуйста свою микродему. Это будет хороший челендж для мини распаковщиков. Я хочу проверить чисто rle компрессорам. Влезет или нет. :)
parallelno, вот здесь она лежит
http://sensi.org/scalar/ware/915/
metamorpho, выложи плиз тот вариант который не влазил в 256 байт. Этот упаковывается в 250, но распаковщик в 6 байт нереально для меня написать. :)
parallelno, вариант который не влазил был размером 274 байта. Т.е. мне оставалось избавиться от 18 байт. На том этапе я пытался использовать упаковщик - какие были результаты и какие мысли высказали по поводу использования упаковщиков для микродемок, можно посмотреть вот здесь начиная с этого места и дальше
https://zx-pk.ru/threads/29679-szhat...=1#post1136662
В итоге я убрал 18 лишних байт вручную - при этом видоизменив некоторые моменты демки.
Если тебе нужно для эксперимента воссоздать размер, который не умещался, т.е. 274 байта, то можно добавить вконце ассемблерного кода строку
.db 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 ;========== для эксперимента
И получится вот этот ROM (см. вложение)
для эксперимента как раз хочется не синтетические данные, а реальные. но это не страшно если тот вариант не сохранился. все равно выглядит что ужать достаточно сильно у меня не получается.
Для интереса написал LZ77 алгоритм, получилось 246 байт, 10 сэкономилось, но распаковщик у меня в 10 никак не влезает. Распаковщик получился в 58 байт.
Хоть и не получилось осилить челендж, но зато многое узнал про алгоритмы сжатия. :)
ivagor, навскидку -- dzx0 переднепроходный можно переделать на поточный с циклическим буфером 256 байт типа как у меня это получилось с dzx7 ? Или там есть какие-то отличия, которые могут помешать ?
Переделать можно все, вопрос в двух параметрах: какие будут скорость и размер распаковщика. Кстати, а ты пробовал сжимать интересующий файл salvadorом с опцией -w255?
Не-а, я пока только пробовал только zx0 -c, как ты завещал в заголовках к dzx0_CLASSIC.asm. По-моему компромиссы тут приемлемы, размер распаковщика в любом случае маленький, а распаковывать надо, если я понимаю правильно, по 16 байт на кадр, так что ничего страшного. Кстати, Arkos Tracker 2 умеет сохранять ym сгруппированный по регистрам. Делать 16 параллельных потоков zx0 вряд ли хорошая идея, но может быть в этом случае обычный RLE даст хороший результат.
В общем повозился чуть чуть и адаптировал dezx0 для окна 255 потоком. Жутко криво, надо конечно сделать потом поаккуратней, но в общем это работает.
Примеры: текст, шансон 1, шансон 2.
Если переделать колбаск на немного более человеческий, чтобы можно было поженить с обычным циклом или прерыванием, в общем музон как музон. Но размер получается слонопотамский. Надо все-таки попробовать ym файл, сгруппированный по регистрам.
svofski, чистой воды магия! :) Ты потоком распаковываешь музыку и проигрываешь?
А в случае с текстом ты как делаешь? Используешь какую-то функцию операционки для вывода буфера длинной 256 байт?