Старые Консольные Игры

Объявление

Внимание!
Сайт и форум переехали!

Новый адрес сайта - https://consolgames.ru/
Временный адрес форума - https://consolgames.ru/forum/

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Старые Консольные Игры » Разрабатываемые проекты » Ever17 - the out of infinity (PC)


Ever17 - the out of infinity (PC)

Сообщений 31 страница 35 из 35

31

WinKi, так, на всякий случай: я никуда не пропал, изучаю функцию, которая должна прояснить ситуацию с альфой. Функция длинная, малой кровью обойтись не получится. Потихоньку двигаюсь в правильном, хотелось бы верить, направлении. Такой вот вопрос: 256-элементный массив структур RGBQUAD это, насколько я понимаю, палитра? И может ли альфа храниться в поле rgbReserved? Я понимаю, что мое незнание графической подсистемы и структуры BMP лечится посещением нескольких платных курсов или самообразованием, но мне сейчас не до этого... ;)

0

32

:lol: rgbReserved (я зову его ARGB.A) - это и есть альфа-значение (а точнее, байт-маркер прозрачного цвета). Но, в 256-цветных оно может принимать лишь 2 значения - True (0x01) и False (0x00), причём нескольких ячеек палитры со значением True обычно быть НЕ может. Т.е. полноценная альфа в них храниться не может, потому что преобразование 8-битной картинки в 32-битную, происходит по алгоритму:

пиксель_32 := палитра_256_ячеек_ARGB[пиксель_8];

Есть, конечно, и "нестандартные" варианты ARGB, в которых все пиксели имеют в ARGB.A значение True или выше, но это не наш случай. ^_^

Отредактировано WinKi (2007-12-12 19:56:07)

0

33

Итак, теперь моя очередь каиться по поводу недельного отсутствия. Нет, дело не в праздниках - дело (эх, как всё прозаично) в деньгах на трубе. ^_^'

Сейчас дело обстоит так: написана гора и маленькая тележка функций и процедур для обработки данных изображений. Осталось лишь доделать и протестировать код для преобразования BMP\TGA\PRT\PNG и прочих форматов друг в друга (этим и займусь на Новый Год ;) ).

P.S. Следующий скрин - не фейк. Получен на хакнутом пиратами экзешнике игры. ^_^

Отредактировано WinKi (2007-12-18 21:07:57)

0

34

Кстати, вчера тут решил в кои то веки поломать FFTA, и удивился извращённости алгоритма... 7 модификаций реализации LZ... А точнее - 3 и 4 других метода.

Код:
B[1] - управляющий байт
B[2..n] - последующие

1xxxxxx:
Count:=((B[1] SHR 3) AND $F) + 3;
Back:=((B[1] AND $7) SHL 8) + B[2];
LZ, 1 byte

01xxxxx:
Count:=(B[1] AND $3F) +1;
Copy, 1 byte

001xxxx:
Count:=(B AND 1F) + 2
FILL 0h, 1 byte

0001xxxx:
Count:=((B[2] SHR 2) AND $30) + (B[1] AND $F) + 4;
Back:=((B[2] AND $3F) SHL 8) + B[3] + 1;
LZ, 1 byte

00000010:
Count:=B[2]+3;
FILL 0h, 1 byte

00000001:
Count:=B[2]+3;
FILL FFh, 1 byte


00000000:
a:=B[2]+5;
b:=(B[3] SHL 8) + B[4] + 1;
LZ, 4 bytes

0

35

Эээ... есть маленькая просьба. Если возможно, необходимо разжиться файлом script.dat из Японской DVD-версии Ever17. Кидать в сжатом виде можно сюда: ever17@ya.ru

Заранее домо аригато. ^_^

0


Вы здесь » Старые Консольные Игры » Разрабатываемые проекты » Ever17 - the out of infinity (PC)