(C) Research/Volgasoft
FLN пакет v1.0
...Крутых утилит на свете
много, полезных мало...
Содержание
1. Для чего и что могут
2. Детальки
3. Комплект поставки
4. Заключение
5. Приложение
1. Для чего
Мне понадобилась серия прог для ре-
шения таких задач как:
а) Рипанье графики с пц и других
платформ
б) Ужимание маски в 2(4) раза для
экономии памяти (и соответст-
венно для разжимания и после-
дующего редактирования)
в) Перевода в линейный формат (и
обратно) графики ибо лучше па-
куется
д) Hегеморройного удаления серии
спрайтов из блока
е) Перевода в GRF формат и обратно
Посему был написан пакет из 4-х
программ:
BMP2F - программа для перевода 1 бит-
ных BMP произвольного размера
в файл спрайтмастера;
FLN UTITIES - утилиты одноименные с
пакетом (см. ниже);
F2GRF - конвертор FLN файла спрайтмас-
тера в GRF файл;
GRF2F - конвертор GRF файла в FLN файл
спрайтмастера;
FLN утилиты (собственно программа)
могут использоваться для:
a) Конверсии произвольных файлов
SpriteMaster 'а в формат FLN (кон-
вертится сразу после загрузки, да-
льнейшая работа ведется только име-
нно с этим форматом);
б) Удаления группы лишних спрайтов
из FLN файла SpriteMaster 'а;
в) Преобразования группы спрайтов в
линейный формат (по столбцам, потом
графика лучше пакуется) и обратно;
г) Сжатия группы спрайтов по верти-
кали в 2 раза (2 метода OR и AND);
д) Разжатия группы спрайтов по вер-
тикали (преобразование, обратное
пп.г);
е) Увеличение размера по вертикали
группы спрайтов на 1 знакоместо
(выбирается байт заполнения
#00/#FF);
2. Детальки
Все набивать влом, посему вот кусок
письма от меня к Эльфу/CPU :
------------------begin------------------
от 18.02.2000
Я доволен как дитя: FLN UTILITIES
beta теперь с линеаризатором, и от него
толк есть (около 12-20% при паковке ли-
нейного и обычного блока графики). Hо
это было ночью, а щас я сляпал Гамма ве-
рсию с функцией Y++ (увеличение высоты
спрайта на единицу), а то спрайтмастер
грузить так в облом. (Если не понятно -
это для того, чтобы маски нечетной высо-
ты делать четной, а потом плющить, не
то ползнакоместа потеряется).
Вроде как инструкцию надо бы напи-
сать, но так обломно! (типа спрайты мож-
но удалять кнопкой DEL, спрайты высотой
один знак лучше не плющить, а все не
удалять и т.п.)
от 19.02.2000 00:55 ночи
Заходил Бивис , уговаривал меня
бросить извращаться с ФЛH утилитами и
уменьшить всех монстров, чтобы в банку
влезли (посе того, как я затребовал его
компрессор Хаффмана). С ним сделали де-
льта версию (добавился y++Fill, чтобы
менять каким байтом заливать добавляемую
строку: для масок 255, для спрайтов -0).
Так как обнаружился глючечек пришлось
сделать епсилон версию (в дельте он
есть, а в ранних версих нет).
------------------end--------------------
Добавлю, что я уже перелопатил уйму
графики с помощью этой проги, посему на-
шелся тока один недостаток - программа
иногда скидывается... Отсюда мораль -
отписываться надобно.
Да и еще когда вы грузите файл
спрайтмастера , прога скидывает себя в
банку, посему посе выхода из файла SPM
все настройки меняются на старые!!! Вто-
рая мораль - настройся, потом работай).
3. Комплект поставки
BMP2F.E - экзешник для писюка;
F2GRF.B - конвертор в GRF;
GRF2F.B - конвертор в F;
FLN EPS.B - утилиты одноименные с
пакетом;
4. Заключение
Знаю, что подобных утилит много, но
конвертить BMPшки произвольного размера
с писюка нечем. Удалять спрайты в спрай-
тмастере долго, а для ужимания маски в
артстудии я еще не готов.
У конверторов в F и GRF интерфейса
нет, но он и не очень-то нужен, сообще-
ний тоже кстати нет. Результат работы
можно посмотреть по каталогу.
Да и еще посоветую почитать помощь
к PV1.18 ,на счет имен в файле спрайтма-
стера.
Ясно одно: написать черно-белую иг-
рушку стало чуточку проще.
5. Приложение
(FLN= FLOAT LINE NO_ATR)
Формат FLN файла Sprite Master:
{F_HEADER}{FLNSprite1#}...{FLNSprite#N}
(заголовок файла)(спрайт1)...(спрайтN)
F_HEADER
{
FSIZE DW ?; длина самого файла -9 байт
TYPE db ?
AtrType db ?; 0-NoAtr, 1-Symbol, 2-Graph
BMPtype db ?; 0-Symbol, 1-Line
ySize db ?; любое значение
xSize db ?; любое значение
COUNTER db ?; всего спрайтов в файле
(от нуля)
}
FLNSprite
{
Length dw dy*dx*8+4;длина спрайта с
шапкой
dy db ?; высота в знакоместах
dx db ?; ширина в знакоместах
Body ds dy*dx*8; тело спрайта
}
Формат GRF файла:
Этот форматец несомненно более удо-
бнее, чем FLN для выноса на экран и
очень простой:
org .c000
COUNTER db ?; всего спрайтов (от 1)
{ ; шапки спрайтов
dx1 db ?; ширина в знакоместах
dy1 db ?; высота в знакоместах
ptr1 dw body1; адрес спрайта
} ; и вся структура повторяет-
; ся стока,
; скока спрайтов
; шапки кончились, начинаются
; тела
;
{
body1 ds dx1*dy1*8; тело спрайта
} ;и тел соотвественно стока
;скока прописано в COUNTER