не во всех
Вид для печати
Чтение палитры и распаковку данных вроде сделал. Теперь надо битовые плоскости преобразовать в формат windows bmp. Только не хочу возиться с 4 битной картинкой и палитрами, поэтому сделаю преобразование в 16 битную картинку.
Можете дать ссылку на .spr, где эти байты не равны 0?
В архиве Amstrad spr.7z и в сгенерированных в sprview эти 2 байта равны 0. Предположу, что один из них может кодировать цвет бордюра, что сейчас не актуально, а второй кодирует используемые битовые плоскости. Хорошо бы разобраться.
Так здесь же http://zx-pk.ru/threads/25281-sozdan...l=1#post874626 расписал формат :)
А сам алгоритм вот, вроде готов:
// Распаковка сжатых данных.
fsize:=fsize-1; // Ставим указатель на последний загруженный байт
while buf^[fsize]=0 do
fsize:=fsize-1;
cpos:=32767;
repeat
b:=buf^[fsize-1];
c:=buf^[fsize ]-1;
if c>=128 then begin // Сжатые данные. Скопировать "b" "c" раз
c:=c and $7F;
if cpos-c >=0 then
for x:=0 to c do
spb^[cpos-x]:=b;
end else begin // Несжатые данные, просто скопировать "c" байт
if (cpos-c >=0) and (fsize-c-1 >0) then
for x:=0 to c do
spb^[cpos-x]:=buf^[fsize-x-1];
fsize:=fsize-c; // Сдвинем указатель в источнике на "с" байт
end;
cpos:=cpos-c-1; // Сдвиг указателя приёмника на следующий байт
fsize:=fsize-2; // Сдвиг указателя источника на следующиую группу байт
until fsize<=18;
1. да
2. нет. Насколько я знаю, формат spr предложил неизвестный автор редактора Draw
yur, ну что, сделали компрессор в формат .spr? Я начал, но ошибка проскакивает, не пойму где.