Что у нас есть?

Это тоже интересно




Статьи и описания форматов игровых файлов

Описание форматов BPX и GSC

Эта статья относится к играм:

Автор материала: Михаил Бесчетнов aka Terminus


Описание форматов BPX и GSC, используемых в игре Cossacks


Формат GSC

В начале заголовок:

GSCHeader: record 
  id: array[1..6]of char; //Идентификатор формата 

  Junk: array[1..4]of char; //Хлам 

  Files: LongInt; //Количество файлов 

End;


Таблица размещения файлов располагается по адресу $0E. Описание записи о файле:

FATRecord: record 
  Junk_1: array[1..4]of char; //Хлам 

  Name: array[1..64]of char; //Имя файла 

  Offset: LongInt; //Смещение до файла 

  Size: LongInt; //Размер файла 

  Junk_2: array[1..4]of char; //Хлам 

  Flag: Boolean; //Флаг шифрования 

End;


Важно!: Для того, чтобы получить из FATRecord.Offset нормальное, полноценное смещение, примените к нему операцию XOR с ключем $FFFFFFFF. Например: FATRecord.Offset:=FATRecord.Offset xor $FFFFFFFF;
После этого начинается область данных. Надо отметить, что именно от этого места (после таблицы FAT) отсчитывается смещение до каждого файла (FATRecord.Offset)

При распаковке обратите внимание на флаг шифрования FATRecord.Flag. Если он установлен (т.е. равен Еденице), то к каждому байту распаковываемого файла необходимо применить операцию XOR с параметром $78. Параметр этот я подобрал вручную, но предположительно, число типа Byte, записанное по адресу $09 и имеющее в моем случае значение $78 и есть необходимый параметр, т.е. Ключ.

Формат BPX

Совсем простой формат. Небольшой заголовок, за которым следует область данных размером Width*Height.

BPXHeader: record
  Width: Word; //Ширина изображения 

  Height: Word; //Высота изображения 

End;


При работе с BPX следует учесть два момента. Во-первых, не все файлы BPX действительно являются изображениями. Лично я провожу такую проверку "на вшивость": FileSize=Width*Height+4. Если условие выполняется, значит все нормально. И еще. Я не нашел способа автоматического подбора палитры для каждого изображения, так что делать это приходится вручную. Все палитры лежат в файлах .PAL


 
©2000—2010 Михаил Бесчетнов aka Terminus
«EXTRACTOR.ru» — игровые ресурсы: распаковка музыки и графики, конверторы форматов и многое другое…
Ссылка на «EXTRACTOR.ru» при перепечатывании оригинальных материалов крайне желательна

Rambler's Top100