Palettes · bei.pm

Published on 19/11/2015·Updated on 13/02/2025·English
This text was automated translated by OpenAI GPT-4o Mini.

The file formats described on this page are based on the technical analysis of intellectual property by Dynamix, Inc. and Sierra Entertainment.
The intellectual property is now part of the Activision Publishing, Inc. / Activision Blizzard, Inc. estate and is currently owned by Microsoft Corp..

The information has been gathered through Reverse Engineering and Data Analysis for the purposes of archiving and interoperability with historical data.
No proprietary or confidential specifications were used.

The game is currently available for purchase as a download at gog.com.

Addr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF char
0x0000 50 50 41 4c -- -- -- -- -- -- -- -- -- -- -- -- P P A L . . . . . . . . . . . .
Offset Data type Designation Explanation
0x0000 uint(32) Magic Bytes
0x0004 uint(24) Pallet length

Indicates the number of palettes found in this file, contrary to the normal block format - not the length of the block in bytes.

0x0007 uint(8) Flags

Probably, as usual, flags.

However, I am not aware of any flags; since all the values I know correspond to 0x00, it is also potentially conceivable that the number of palettes is simply a uint(32).

The palette information is very straightforward to read.
It consists of a header and a data segment.

Palette Header

Addr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF char
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
Offset Data type Designation Explanation
0x0000 uint(32) Magic Bytes
0x0004 uint(24) Pallet length

Indicates the number of palettes found in this file, contrary to the normal block format - not the length of the block in bytes.

0x0007 uint(8) Flags

Probably, as usual, flags.

However, I am not aware of any flags; since all the values I know correspond to 0x00, it is also potentially conceivable that the number of palettes is simply a uint(32).

0x0008 uint(32) Pallet format version?

Probably defines which palette format version the palette adheres to.

All Outpost2 palettes appear to have version 0x01.

Palette Data

Addr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF char
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
Offset Data type Designation Explanation
0x0000 uint(32) Magic Bytes
0x0004 uint(24) Block length
0x0007 uint(8) Flags

The data section includes the individual pallet entries. The number of pallet entries is determined by the block length / 4.

The individual entries have the following simple structure;

Addr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF char
0x0000 -- -- -- 04 -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Data type Designation Explanation
0x0000 uint(8) Red component

Indicates the red component of the colour

0x0001 uint(8) Green component

Indicates the green component of the colour

0x0002 uint(8) Blue component

Indicates the blue component of the colour

0x0003 uint(8) Unknown - Flags?

It is unclear what this value means, as it apparently is fundamentally 0x04.

Regarding the palettes, it can additionally be said that the following rules apply to palettes used for animations:

  • The first colour is ALWAYS transparent, regardless of what value is specified there.
  • Palette entries 1-24 are to be considered as player colours in palettes 1-8.
    Where the colours, apart from player 1, originate from is unclear to me.
    I suspect that the remaining colours are hardcoded.

Palette Reference