Как устроен GRF-файл (в качестве примера взят файл
TEST.GRF)
|
Примечание.
Этот материал не является полным руководством по распаковке GRF-файлов.
|
Addr 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
---- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
0000 ff f6 b6 ff 5b 00 9b 08 ad ad ad f6 08 00 00 00 |....[...........|
0010 c3 b7 ee fb ff ed 6e db bb 6c ff 7e ff 6e ee f6 |......n..l.~.n..|
0020 ff df fe db 77 dd 7e 76 77 fd dd b6 f7 b7 cd b7 |....w.~vw.......|
.... .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..................
.... .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..................
.... .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..................
5f40 fd bf fe ff db fe 7e db ec ff fe dd db 7e db fb |......~......~..|
5f50 6c bb bb ee b3 99 6c 74 64 f0 ec ec f2 d9 d1 e4 |l.....ltd.......|
5f60 b2 b1 cd b3 6c bb ec ec 93 cc cd 27 d9 91 4d 33 |....l......'..M3|
5f70 26 99 64 26 32 24 89 22 01 13 49 20 24 08 04 00 |&.d&2$."..I $...|
5f80 04 09 00 81 80 14 00 81 20 13 00 00 ff ff df ff |........ .......|
5f90 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
5fa0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
5fb0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
5fc0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
5fd0 ff ff ff ff ff ff fe ff ff ff ff ff ff ff ff ff |................|
5fe0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
5ff0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
|
С адреса 0000-000f (16 байт) - Цвета GRF-файла.
С адреса 0010-5fff - GRF-данные (изображение) с мусором в конце.
Распаковка закончится, если распаковщик найдёт нулевой байт.
Распаковка начинается после пропуска 16 байт цветов.
|
Структура GRF:
┌─────────────────┐ ┌──────────────┐ ┌────────┐ ┌──────────────┐
│ Цвета (16 байт) │ │ Информ. байт │ │ Данные │ │ Информ. байт │ =>
└─────────────────┘ └──────────────┘ └────────┘ └──────────────┘
┌────────┐ ┌──────────────┐ ┌───────────────┐
=> │ Данные │ ... │ Нулевой байт │ │ Мусор в конце │
└────────┘ └──────────────┘ └───────────────┘
Примечание.
Информ. байт - Информационный байт.
|
Информационный байт GRF-файла отличается от информационного байта SPR-файла.
Информационный байт GRF-файла.
Если 7 бит 0 - Повтор повторяющегося байта.
Если 7 бит 1 - Пересылка неповторяющихся байт.
Остальные биты (6, 5, 4, 3, 2, 1, 0) - сколько раз повторить байт или сколько
переписать неповторяющихся байт.
Информационный байт SPR-файла.
Если 7 бит 0 - Пересылка неповторяющихся байт.
Если 7 бит 1 - Повтор повторяющегося байта.
Остальные биты (6, 5, 4, 3, 2, 1, 0) - сколько раз повторить байт или сколько
переписать неповторяющихся байт.
Примечание.
GRF-файл не может быть больше 32 кб.
Это связано с алгоритмом, и архитектурой
Вектор'а-06Ц
(UKR).
С SPR-файлом дело обстоит чуть иначе.
|
Ukraine
(Украина). (C) Демидов С.В.
|
|