Warning: Unknown: Unable to allocate memory for pool. in Unknown on line 0

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/index.php on line 54

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebStart.php on line 63

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 94

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 97

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 100

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 103

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Defines.php on line 187

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 115

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 134

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 137

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 139

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 144

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 145

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 153

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 150

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 157

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Setup.php on line 381

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Setup.php on line 382

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Setup.php on line 383

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Setup.php on line 384

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/languages/Language.php on line 20

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: include_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Skin.php on line 153

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: include(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/resourceloader/ResourceLoader.php on line 201

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007
PAL (Dark Reign) - Just Solve the File Format Problem

PAL (Dark Reign)

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
m
(Structure)
Line 37: Line 37:
 
| Stored as RGB planes. The purpose of this palette is unknown, but assumed to be the dimmed palette that is used when the game is running but left idle.
 
| Stored as RGB planes. The purpose of this palette is unknown, but assumed to be the dimmed palette that is used when the game is running but left idle.
 
|-
 
|-
| Unknown chunks
+
| Unknown chunks (1)
 
| <code>bytes[32768]</code>
 
| <code>bytes[32768]</code>
 
|  
 
|  
 
|-
 
|-
| Unknown data
+
| Unknown data (2)
 
| All remaining bytes up until the shading tables (last 147,456 bytes of the file)
 
| All remaining bytes up until the shading tables (last 147,456 bytes of the file)
 
|   
 
|   
Line 49: Line 49:
 
|  
 
|  
 
|}
 
|}
 +
 +
== Palette and Dimmed palette ==
 +
 +
The palette entries in the '''Palette''' and '''Dimmed palette''' are store as red, green, and blue planes:
 +
 +
* The first 256 bytes are the red components in order, the next 256 are the green components, etc.
 +
* Each component is stored in 6-bits (0-63) and will need to be multiplied by 4 to map to the range 0-255.
 +
* Index 0 is always transparent.
 +
 +
The index of the colors within the palettes are important:
 +
 +
{| class="wikitable"
 +
! Purpose
 +
! Range
 +
|-
 +
| Unit palette
 +
| 0-159 and 255
 +
|-
 +
| Terrain palette
 +
| 160-254
 +
|-
 +
| Team remapping colors (for game units)
 +
| 32-39
 +
|-
 +
| Team 0
 +
| 48-55
 +
|-
 +
| Team 1
 +
| 40-47
 +
|-
 +
| Team 2
 +
| 64-71
 +
|-
 +
| Team 3
 +
| 56-63
 +
|-
 +
| Team 4
 +
| 72-79
 +
|-
 +
| Team 5
 +
| 80-87
 +
|-
 +
| Team 6
 +
| 88-95
 +
|-
 +
| Team 7
 +
| 32-39
 +
|-
 +
| User definable
 +
| 96-159
 +
|}
 +
 +
== Unknown chunks (1) ==
 +
 +
* The '''Unknown chunks''' appears to be 32 (or 33) chunks of 1,024 bytes, representing what appears to be a non-looping animation of 32x32 pixel images.
 +
* These chunks do not appear to use the palettes.
 +
* These chunks are different for each palette.
 +
 +
== Unknown data (2) ==
 +
 +
The '''Unknown data''' is all of the data from the end of the '''Unknown chunks''' up until the start of the '''Shading tables'''.
 +
 +
* The purpose of this data is not known, but might be compressed using the same RLE method used by sprites.

Revision as of 18:05, 11 January 2023

A .pal is a palette format used by the real-time strategy game Dark Reign.

Each of the game's terrains has an associated .pal file. Dark Reign comes with the following Terrains:

  • BARREN
  • SNOW
  • JUNGLE
  • ASTEROID1
  • AUSTRALIA1
  • VOLCANIC1
  • ALIEN2
  1. These terrains were add-ons released by the developer, Auran, after the game launch.
  2. This terrain was included in the expansion Dark Reign: Rise of the Shadowhand but also released separately after the game launch.

Contents

Structure

Variable Type Notes
Signature "PALS"
Version 0x0102
Palette bytes[768] Stored as RGB planes
Dimmed palette bytes[768] Stored as RGB planes. The purpose of this palette is unknown, but assumed to be the dimmed palette that is used when the game is running but left idle.
Unknown chunks (1) bytes[32768]
Unknown data (2) All remaining bytes up until the shading tables (last 147,456 bytes of the file)
Shading tables bytes[147456]

Palette and Dimmed palette

The palette entries in the Palette and Dimmed palette are store as red, green, and blue planes:

  • The first 256 bytes are the red components in order, the next 256 are the green components, etc.
  • Each component is stored in 6-bits (0-63) and will need to be multiplied by 4 to map to the range 0-255.
  • Index 0 is always transparent.

The index of the colors within the palettes are important:

Purpose Range
Unit palette 0-159 and 255
Terrain palette 160-254
Team remapping colors (for game units) 32-39
Team 0 48-55
Team 1 40-47
Team 2 64-71
Team 3 56-63
Team 4 72-79
Team 5 80-87
Team 6 88-95
Team 7 32-39
User definable 96-159

Unknown chunks (1)

  • The Unknown chunks appears to be 32 (or 33) chunks of 1,024 bytes, representing what appears to be a non-looping animation of 32x32 pixel images.
  • These chunks do not appear to use the palettes.
  • These chunks are different for each palette.

Unknown data (2)

The Unknown data is all of the data from the end of the Unknown chunks up until the start of the Shading tables.

  • The purpose of this data is not known, but might be compressed using the same RLE method used by sprites.
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007