Zapilyator ND

Системный софт

Postby nyuk » Tue, 28.10.2014 11:24:42

Буду краток. Форкнул запилятор в отдельный, возможно временный проект — Zapilyator ND (не детский).

http://nyuk.retropc.ru/demo_maker_nd

Основные отличия:
  • Выкинул всё "ненужное": заставки, скролл, анализаторы. Осталась только анимация и музыка.
  • Новый формат хранения распарсенных данных: экономичнее раза в 2-3, но с потерей скорости конечно же.
  • Нет ограничений на размер: результат парсинга автоматически раскидывается по страницам и пытается оптимально занять все доступные 128К.
  • Разница между кадрами сохраняется в отдельный каталог diff.

Подробнее о разницах

Каждый файл в каталоге - разница для одного фрейма (номер фрейма в имени файла). Последний файл - разница между последним и первым кадром.

Диффы сохраняются по одному байту в строку, в формате:
Code: Select all
xxxx yy

где:
xxxx - смещение относительно стартового адреса экрана (HEX)
yy   - байт, заносимый по этому адресу (HEX)



Формат максимально простой, если нужно - могу переделать как угодно.

---

Почему проект временный? Потому что часть нового функционала со временем перекочует в основной запилятор. А остальное когда-нибудь всплывет в Запиляторе 2.0
Last edited by nyuk on Tue, 28.10.2014 11:46:51, edited 1 time in total.
не отрастил
User avatar
nyuk
 
Posts: 556
Joined: Thu, 26.07.2012 09:08:24

Postby nyuk » Tue, 28.10.2014 11:43:45

Выложил утилитку, с помощью которой можно легко, а главное быстро "разоптимизировать" GIF, чтобы запилятор его проглотил.

http://nyuk.retropc.ru/resources/demo_m ... izeGIF.zip

Скопировать всё в один каталог и запустить:
unoptimize.cmd %FILENAME%

После этого с гифкой произойдут две вещи:
1. Разоптимизация - каждый фрейм хранится отдельно
2. Конверсия в 1-битный цвет.

Новая гифка будет сохранена в том же катлоге.
не отрастил
User avatar
nyuk
 
Posts: 556
Joined: Thu, 26.07.2012 09:08:24

Postby diver » Tue, 28.10.2014 11:46:40

Цвет не поддерживается?
User avatar
diver
 
Posts: 735
Joined: Sat, 29.06.2013 00:10:07

Postby nyuk » Tue, 28.10.2014 11:52:32

Цвет уже поддерживается в обоих запиляторах, но... в общем пока неюзабельно:

Информация о цвете (атрибуты) берется из дополнительных 24-х строк GIF файла. Для подготовки такого изображения из набора SCR файлов можно использовать утилиту от Kakos Nonos: http://kabardcomp.retroscene.org/ZX/ZXAnim.rar


Я хочу добавить альтернативный вариант: загрузка zip-архива со скринами 6912 и парсинг из него.
не отрастил
User avatar
nyuk
 
Posts: 556
Joined: Thu, 26.07.2012 09:08:24

Postby diver » Tue, 28.10.2014 14:46:10

6912 - это оптимально
User avatar
diver
 
Posts: 735
Joined: Sat, 29.06.2013 00:10:07

Postby nyuk » Tue, 28.10.2014 18:32:54

diver wrote:6912 - это оптимально

Да, но. Теряется возможность установки персональных пауз на каждый фрейм. Сейчас эти паузы можно задавать в гифке. Впрочем, я уже придумал типа решение. Класть в архив со скринами файлик durations.txt, в котором прописывать паузы.
не отрастил
User avatar
nyuk
 
Posts: 556
Joined: Thu, 26.07.2012 09:08:24

Postby diver » Tue, 28.10.2014 19:09:41

Именно.
User avatar
diver
 
Posts: 735
Joined: Sat, 29.06.2013 00:10:07

Postby nyuk » Wed, 29.10.2014 00:40:30

Быстропофикшеный баг не считается найденым! Пофиксил кой-чо. А заодно добавил фишку: если анимация не влезет в памяти, то дема все равно соберется и заработает. Но без невлезших кадров, которые в исхолнике будут автоматически закомментированы.
не отрастил
User avatar
nyuk
 
Posts: 556
Joined: Thu, 26.07.2012 09:08:24

Postby nyuk » Wed, 29.10.2014 10:12:38

Придумал! Впень durations.txt! Пусть будет map.txt, где через пробел записаны следующие параметры:

  • Имя файла.
  • Продолжительность показа в интах (не обязательно).
  • Имя файла следующего кадра (не обязательно).

Тем самым легко и непринужденно получаем нелинейную анимацию. Правда, пока писал, возникла куча нюансов в голове. Пойду думать.
не отрастил
User avatar
nyuk
 
Posts: 556
Joined: Thu, 26.07.2012 09:08:24

Postby diver » Wed, 29.10.2014 19:41:05

Крутяк! Тогда одинаковые кадры и храниться будут 1 раз? Но это слооожно будет сделать:)
User avatar
diver
 
Posts: 735
Joined: Sat, 29.06.2013 00:10:07

Postby nyuk » Wed, 29.10.2014 20:53:51

Да тут всё хитрее получается. потому что хранится разница между кадрами.
Т.е. если у нас есть A->B и A->C, то придется хранить оба перехода.
В общем, пока допилю нормальный цвет, потом дальше буду думать.
не отрастил
User avatar
nyuk
 
Posts: 556
Joined: Thu, 26.07.2012 09:08:24

Postby diver » Wed, 29.10.2014 21:09:47

Можно в map выделять ключевые кадры вручную. Типа картинок.
User avatar
diver
 
Posts: 735
Joined: Sat, 29.06.2013 00:10:07

Postby nyuk » Wed, 29.10.2014 22:42:12

diver wrote:Можно в map выделять ключевые кадры вручную. Типа картинок.

Интересно. Типа, ключевой кадр обновляет экран, а дальше от него строятся изменения. Правда, если в это же время крутится еще одна анимация, ключевой кадр может её испортить.
не отрастил
User avatar
nyuk
 
Posts: 556
Joined: Thu, 26.07.2012 09:08:24

Postby diver » Wed, 29.10.2014 23:40:24

Нет, я не совсем это хотел сказать. Могут быть кадры, которые надо действительно повторять в деме и нет смысла их хранить как изменения к предыдущему, а дешевле хранить 1 раз целиком.

Простой пример: пустой экран. На кой ляд хранить изменения к предыдущему, когда надо просто очистить экран. Дальше, например эффект из набора меняющихся повторяющихся картинок, мерцание или перебор. Запилятор на таком умрет. А если кадры пометить и хранить один раз, то будет экономно.

Ну а какие-то схожие последовательности надо действительно хранить как набор изменений. Первые кадры последовательностей - как раз ключевые в стандартном понимании.

Но и те, что выше, они тоже ключевые, за ними просто последовательности нет, там один за другим, например, ключевые кадры с разной задержкой.
User avatar
diver
 
Posts: 735
Joined: Sat, 29.06.2013 00:10:07

Postby nyuk » Thu, 30.10.2014 11:46:01

Тут ты описываешь именно то, что я хочу сделать во втором запиляторе. Будет некое подобие таймлайна, будет можно накидывать последовательность анимаций, статичных картинок, очистка экрана, эффекты... Клева в общем будет :-)

Но этот полумифический второй запилятор до сих пор на стадии планирования. А сейчас я хотел добиться гибкости, оставаясь в рамках текущего запилятора. Хотя... вот я думаю что. Правильнее довести до ума работу с цветом и всё. А остальное уже в следующей версии.
не отрастил
User avatar
nyuk
 
Posts: 556
Joined: Thu, 26.07.2012 09:08:24

Postby nyuk » Wed, 12.11.2014 23:22:31

Прикрутил поддержку ZIP-архивов. Вот несколько тезисов:

* В архиве должны находиться цветные или ч/б скрины. Желательно в корне архива.

* Сортировки нет. Поэтому лучше заранее переименовать файлы в нужном порядке и закидывать в архив сразу всей пачкой. Во избежании.

* Продолжительность показа фреймов настраиваем следующим образом:
В корень архива (ОБЯЗАТЕЛЬНО В КОРЕНЬ!) кладем файл durations.txt, в котором указываем продолжительность показа каждого кадра в формате:
Code: Select all
имя_файла N

Где N - количество интов от 1 до 255.
Если для файла не найдена запись в durations.txt, то берется значение из настроек запилятора. Если в настройках выбрано "Take from GIF", то будет 1.

(Я не стал городить описанные выше приблуды типа map.txt. Отложил на будущее.)

* Мы с Какосом выбрали цвет #80 (черный инк, черный папер, нобрихт, флэш) в качестве "магического". атрибуты, указанные этим цветом запилятор не обрабатывает. Оставляет как было на экране. В будущем будет возможность задать свой Magic Color.
не отрастил
User avatar
nyuk
 
Posts: 556
Joined: Thu, 26.07.2012 09:08:24

Postby Black_Cat » Thu, 13.11.2014 01:45:31

nyuk wrote:Мы с Какосом выбрали цвет #80 (черный инк, черный папер, нобрихт, флэш) в качестве "магического"

Ну вааще-то (инк=папер) & флеш - все магические в силу своей бессмысленности :) Почему чёрный?
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
http://zx.clan.su/forum/
User avatar
Black_Cat
 
Posts: 1110
Joined: Thu, 26.07.2012 23:39:01

Postby nyuk » Thu, 13.11.2014 03:15:57

Почему бы и нет? Просто нужно было договориться на каком-нибудь неиспользуемом цвете.
не отрастил
User avatar
nyuk
 
Posts: 556
Joined: Thu, 26.07.2012 09:08:24

Postby den_p » Thu, 13.11.2014 10:14:22

когда оно станет платным?
отключена за неуплату
User avatar
den_p
Говнокодер
 
Posts: 682
Joined: Mon, 15.09.2014 12:33:13

Postby nyuk » Thu, 13.11.2014 11:13:48

А смысл делать платным сейчас? Только ААА и будет башлять.
Сначала нужно побольше народу подсадить. Работаю над этим.
не отрастил
User avatar
nyuk
 
Posts: 556
Joined: Thu, 26.07.2012 09:08:24

Postby den_p » Thu, 13.11.2014 16:36:50

nyuk wrote:Сначала нужно побольше народу подсадить.

ну смеха ради подай пример - пищы демы сам. ничо к деме ты не доделал.
отключена за неуплату
User avatar
den_p
Говнокодер
 
Posts: 682
Joined: Mon, 15.09.2014 12:33:13

Postby nyuk » Thu, 13.11.2014 18:23:32

den_p wrote:ну смеха ради подай пример - пищы демы сам. ничо к деме ты не доделал.

Не распарсил посыл. На всякий случай, дему я пишу. Очень медленно, но пишу. Без запилятора. Пока без запилятора, но возможно заюзаю его в качестве вспомогательного инструмента.
не отрастил
User avatar
nyuk
 
Posts: 556
Joined: Thu, 26.07.2012 09:08:24

Postby den_p » Fri, 14.11.2014 05:40:24

nyuk wrote:Не распарсил посыл.

эквалайзеры и появление картинок, и поднадоевший шрифт.
отключена за неуплату
User avatar
den_p
Говнокодер
 
Posts: 682
Joined: Mon, 15.09.2014 12:33:13

Postby nyuk » Fri, 14.11.2014 08:09:27

Ден, ты можешь как-то развернутей сказать, о чем ты? Иначе мне даже и ответить нечего. Тупо не понимаю.
не отрастил
User avatar
nyuk
 
Posts: 556
Joined: Thu, 26.07.2012 09:08:24


Return to Utilities

Who is online

Users browsing this forum: No registered users and 0 guests

cron

x