docs/32bpp.txt
author truebrain
Thu, 12 Jun 2008 19:47:02 +0000
branchnoai
changeset 10942 cd3f2d07199f
parent 9628 b5c2449616b5
permissions -rw-r--r--
(svn r13496) [NoAI] -Fix: if a library depends on an other library, the import became globally known, which defeats the idea of imports. They are now restricted to their scope, and 'import' returns the class of import (if any)
9628
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
     1
32bpp and OpenTTD
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
     2
=================
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
     3
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
     4
OpenTTD has 32bpp support. This means: OpenTTD still is 8bpp, but it has the
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
     5
posibility to override the graphics with 32bpp. This means that it isn't a
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
     6
replacement of grf or newgrf, but simply an addition. If you want to use 32bpp
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
     7
graphics of a newgrf, you do need the newgrf itself too (with 8bpp graphics).
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
     8
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
     9
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    10
The Format
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    11
----------
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    12
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    13
32bpp images are stored in PNG. They should go in:
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    14
  data/sprites/<grfname>/<SpriteID>.png
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    15
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    16
For example, a grfname would be 'openttd' (without .grf, lowercase), and the
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    17
SpriteID 3, to override the 3rd sprite in openttd.grf with a 32bpp version.
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    18
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    19
The format of this PNG can be almost anything, but we advise to use RGBA
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    20
format. Alpha-channel is fully supported.
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    21
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    22
As the core of OpenTTD is 8bpp, and because you of course want company colours
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    23
in your images, you will need to add a mask for every sprite that needs colour
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    24
remapping. The name is simular as above, only you have to put a 'm' behind the
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    25
SpriteID. This image should be a 8bpp palette image, where the palette is the
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    26
OpenTTD palette. Upon load of the PNG, the mask is loaded too, and overrides
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    27
the RGB (not the Alpha) of the original PNG image, and replacing it with a
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    28
8bpp color remapped and converted to 32bpp.
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    29
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    30
An other thing that OpenTTD needs in your png, is 2 tEXt chunks: x_offs and
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    31
y_offs. This to define the x- and y-offset, of course. Use the tool we supply
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    32
to add this information. Sadly enough most graphical editors trashes those
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    33
chunks upon save, so you have to readd it every time you save your image.
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    34
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    35
Your images should be the same as the grf, in size.
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents:
diff changeset
    36