RESOURCE.PLN is the picture data file for DOS Planets. It is also used by various other programs, including VPA and PVCR. This section also describes Winplan's use of pictures, which is structurally similar.

File format information mostly by Frank Hempel.

RESOURCE.PLN contains 151 images numbered from 1 to 151 (important if another file such as HULLSPEC.DAT references an image). Every picture consists of a 5537 byte record built up as follows:

 +0     WORD    Width of image, always 105
 +2     WORD    Height of image, always 93
 +4   n BYTEs   For each scanline 4 byte sequences. Each of the four byte
                sequences is ((Width+7) DIV 8) bytes long, in this case
                4x14 bytes. The first sequence contains information for
                color plane 0, bit 7 is the left-most pixel. Then the color
                planes 1 to 3 follow.
                This matches the organization of VGA video memory (the
                BASIC commands PUT and GET normally work with memory dumps,
                like here).
 +x   n BYTEs   unused
+5300 15 WORDs  Color palette. 5 records of 3 words:
                 +0     WORD    Red (0..63)
                 +2     WORD    Blue (0..63)
                 +4     WORD    Green (0..63)
                See also note below.
 +x   n BYTEs   unused. Non-existent for the last picture (#151).

Winplan doesn't use RESOURCE.PLN, the images are stored as single Bitmap files, as WINPLAN\BMP\VPLxx.BMP, xx is a 1- to 3-digit bitmap number. That is, the first RESOURCE.PLN picture corresponds to VPL1.BMP. There are 262 images following this scheme, most are new planet pictures. See also WPVCR.DLL.

Additionally, there are the WINPLAN\BMP\VPAUXxxx.bmp files. These are used when reading messages from 3rd-party programs, see MDATAx.DAT.

The BMP files have no color restrictions; palette allocation and recoloring is left to Windows' built-in API functions.

Notes on the Color Palette

Planets uses the 16 color mode of the VGA card. From these 16 colors, 11 are fixed:

                Color   | Red   Green Blue      |
               =========|=======================|=============
                 0      |   0     0     0       | Black
                 6      |  37    18     3       | Red
                 7      |  42    42    42       | Light gray
                 8      |  20    19    22       | Dark gray 1
                 9      |   0     0    62       | Light blue
                10      |  12    55    12       | Light green
                11      |  17    17    17       | Dark gray 2
                12      |  58     0     0       | Light red
                13      |  11    11    11       | Dark gray 3
                14      |  60    59     0       | Yellow
                15      |  57    57    57       | White

Colors 1 to 5 are defined by each image. In some pictures, PLANETS.EXE shuffles the color components.

                                | Hull  | Color | Transform.
        ========================|=======|=======|=============
         Image 33               |       |       |
              Super Transp. Fr. |   18  | brown | none
              Neutronic Ref.    |  104  | green | R/G
              Merlin            |  105  | blue  | R/B
        ------------------------|-------|-------|-------------
         Image 47               |       |       |
              T-Rex             |   23  | brown | none
              Madonnzila        |   49  | green | R/G

R/G means Red and Green component are exchanged, R/B means Red and Blue component are exchanged. This transformation is hardwired in PLANETS.EXE and depends on the hull number only. In the standard ship list, some other pairs of hulls share a picture, too, but for those, no tricks are played to the palette.

For planets, PLANETS.EXE also uses the palette to change the images. Desert planets appear in sand colors while arctic planets appear cold as ice. In pictures for factories, defense and mines the ground has the same color as the planet so that the buildings always stay on a different ground. See also the section on planets below.

Some images may not use the special colors 1 to 5:
- 8 (scanner), always combined with a ship image
- 21, 48, 52, 71, 83, 93, 94, 115, 126, 138, 151 (Logo), always combined with a race member (main menu) or ship image (build screen)

Images of ships or planets may not use colors 6 to 10. In VCR, where 2 ships appear side by side, colors 1 to 5 of one ship are translated into colors 6 to 10, since a ship always needs the special colors. PLANETS.EXE doesn't do such translations, so that it needs to hide the planet picture by putting the scanner image (pic. 8) on it each time you request a visual scan from the planet or base screen.

Assignment of the images

All pictures not listed in the tables below are starship or planet images, see also HULLSPEC.DAT.

                  Race          | Logo   | Person | Fighter
                 ===============|========|========|=========
                  1 (Feds)      |   21   |   22   |   34
                  2 (Lizard)    |   48   |   44   |   81
                  3 (Bird Men)  |   52   |   53   |   82
                  4 (Fascist)   |   71   |   70   |   82
                  5 (Privateer) |   83   |   75   |   80
                  6 (Cyborg)    |   93   |   91   |   92
                  7 (Crystal)   |   94   |   95   |   96
                  8 (Empire)    |  115   |  116   |  111
                  9 (Robot)     |  126   |  127   |  125
                  10 (Rebel)    |  138   |  139   |  130
                  11 (Colony)   |  151   |  150   |  145

Pic. | Meaning ======|==========================

                      8  | Scanner Screen
                     23  | Starbase
                     30  | unused ship picture (*)
                     35  | Defense Post
                     36  | Factory
                     37  | Mine
                     38  | Planet for Mining Survey
                     51  | Explosion (VCR)
                     43  | unused planet picture

A note on picture 30: This image is not used in HULLSPEC.DAT. Anyway, VCR uses it sometimes, see VCRx.DAT.

Planet pictures

  To display a planet picture, the temperature and Id number are needed:
                INDEX := ( Temperature_Value + Id_Number ) MOD 13
  The Temperature_Value is the value stored in the planet record, not the
  Fahrenheit temperature. Each of the Index values maps to one planet
  picture:

INDEX | Planet Picture(s) =======|===================

                      0   |    1
                    1..4  | 39 .. 42
                    5..7  |  2 .. 4
                    8..12 | 24 .. 28

The palette (special colors 1-5) are computed separately to reflect the planet's temperature. This special palette is also used to make the planetary buildings appear to stand on different ground depending on the climate.

  Winplan uses a different formula:
                INDEX := Id_Number MOD 95
  The index maps into a table of planet pictures:

INDEX | Planet Picture(s) =======|===================

                      0   |     1
                    1..4  |  39 .. 42
                    5..7  |   2 .. 4
                    8..11 |  24 .. 27
                     12   |     43
                   13..62 | 155 .. 204
                   63..94 | 213 .. 244

Winplan does not modify the color palette, it displays the BMP files unchanged (they actually need not even be palette-based images).