Subversion Repositories ipe_artfile_utils

Rev

Blame | Last modification | View Log | RSS feed


ART FILES BY IMAGINATION PILOTS
Technical overview by Daniel Marschall                                          15 Feb 2018


                VERSION 1.x (16-bit era, "IPE16")
                =================================

Version 1.0     For game: "Blown Away" (1994)
                * File signature "Art" + 20 NUL bytes
                * Image names up to 23 characters
                  (unsure if the 23th byte must be a zero terminator)
                * LZW implementation: GIF standard implementation
                  - variable code length between 9 and 12 bits
                  - clear code (256)
                  - end code (257)
                * Pictures can only be 8-bit
                * Each picture can either be LZW compressed (code "P")
                  or uncompressed (code "p", lower case)
                * Decompressed/raw data: Top-down pixel data
                * Attached: Optional palette (R,G,B), uncompressed.
                  (Sprites usually do not have a palette, so the game
                   will use the palette of the parent picture)

Version 1.1     For games: "Panic in the Park" (1995)
                           "Where's Waldo? At the Circus" (1995)
                * Codes for compression/raw are now "Q" and "q" instead of
                  "P" and "p"
                * Each picture has now a relative X- and Y-offsets for 'fine-tuning'.
                  These offsets cannot be negative, though.

                VERSION 2.x (32-bit era, "IPE32")
                =================================

Version 2.0     For games: "Where's Waldo? Exploring Geography" (1996)
                           "Eraser Turnabout" (1997)
                           "Virtual K'Nex" (1998)
                * File signature "ART_DATA"
                * Image names up to 8 characters;
                  no zero termination required after the 8 characters.
                * LZW implementation by Mark R. Nelson and Shawn M. Regan
                  - variable code length between 9 and 13 bits
                  - clear code (256)
                  - end code (257)
                * Pictures are divided into chunks. Each chunk can be compressed or
                  uncompressed. Limitations:
                  - Each compressed chunk (except the last one) must decode into
                    exactly 16382 (0x3FFE) bytes of uncompressed data.
                  - The size of the compressed data of a chunk must not exceed the
                    size of the original uncompressed data.
                * The size of each chunk (raw or compressed) is limited
                  to max. 32767 Bytes (0x7FFF).
                * Decompressed/raw data: Windows Bitmap (without file header);
                  therefore, theoretically every color depth/compression/etc. can be used.
                  For 8-bit pictures, the palette is included in the Bitmap.
                * Re-using of parent palette is not possible.