bckpkol писал(а):Это распаковка. Да, я заметил, что в dat есть что-то похожее на палитру. А упаковка? Какой формат у заголовка?
И размеры у dat файлов разные. Нет, там нечто большее, чем кусок палитры.
Распакуй .dat моим экстрактором и увидишь что там есть еще. И еще раз повторяю, у меня нет спецификации, нет формата заголовка, я сразу писал код ничего не записывая, причем если говорить от .dat, то помимо палитры, с которой я разобрался раньше, все остальное подсмотрено в scumm, наверно именно потому так и получилось

Кстати, что это за метка 53 4b?
Последние две буквы от ".MSK"?
Reflector писал(а):Внешняя палитра? Уверен, что не внутренняя, запакованная в cps? Если нет, что понимается под внешней палитрой?
Странно... Взять одну палитру, скопировать из другой, затем странные магические числа 0x17 и 60.
Для k2 в pak обычно лежит палитра, иногда несколько, иногда ни одной, т.е. можно передать в качестве параметра конкретную палитру или же обойтись глобальной палитрой для игры в целом(если в хедере не указано, что используется встроенная в cps). Для k1 у меня в коде можно передавать внешнюю палитру, но используется ли она для фонов или только для анимаций я уже точно не помню...
Тут хотелось бы спросить подробнее. Так как VGA использует 6 бит на канал, 18 на цвет, палитра должна быть 576 байт.
Мне непонятно, зачем нужно брать вторую половину, разве палитра изначально не целая?
Художник рисует анимацию для конкретной локации, ему говорят, что ты можешь создать себе какую хочешь палитру, но не более такого-то размера, потому что мы туда втиснем еще часть другой палитры нужной для отрисовки той графики, которая может присутствовать на любой из локаций. А почему в одних случаях они вставляют небольшой кусочек, а в других половину палитры, я без понятия

Когда обнаружились проблемы с палитрами, я стал делать в досбоксе скриншоты, затем вытягивал в фотошопе палитру, сравнивал и искал закономерности. Какие нашел, так и сделал, может местами там можно сделать и проще.
ColorScale - это то же самое, что и <<2?
Типа того, но не совсем. Если сдвинуть 63 на 2 позиции влево, то получим 252, а не 255, потому я множу на (255 / 63) и округляю до ближайшего целого. Так же само сделано в досбоксе, по крайней мере когда я проверял то результаты были одинаковыми.
Вопрос не в тему. Я единственный, кому кажется, что исходники scummvm нечитаемы?
Что я понял - scummvm - это рендерер, который динамически загружает ресурсы игры. Отдельного файла на каждый тип ресурса нет, всё распихано непонятно как.
По именам примерно можно понять какие файлы за что отвечают, а в целом да, разобраться там не так и просто. В особо запущенных случаях можно самому скомпилить и выводить отладочную информацию.