Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2 | daniel-mar | 1 | |
2 | ART FILES BY IMAGINATION PILOTS |
||
3 | Technical overview by Daniel Marschall 15 Feb 2018 |
||
4 | |||
5 | |||
6 | VERSION 1.x (16-bit era, "IPE16") |
||
7 | ================================= |
||
8 | |||
9 | Version 1.0 For game: "Blown Away" (1994) |
||
10 | * File signature "Art" + 20 NUL bytes |
||
11 | * Image names up to 23 characters |
||
12 | (unsure if the 23th byte must be a zero terminator) |
||
13 | * LZW implementation: GIF standard implementation |
||
14 | - variable code length between 9 and 12 bits |
||
15 | - clear code (256) |
||
16 | - end code (257) |
||
17 | * Pictures can only be 8-bit |
||
18 | * Each picture can either be LZW compressed (code "P") |
||
19 | or uncompressed (code "p", lower case) |
||
20 | * Decompressed/raw data: Top-down pixel data |
||
21 | * Attached: Optional palette (R,G,B), uncompressed. |
||
22 | (Sprites usually do not have a palette, so the game |
||
23 | will use the palette of the parent picture) |
||
24 | |||
25 | Version 1.1 For games: "Panic in the Park" (1995) |
||
26 | "Where's Waldo? At the Circus" (1995) |
||
27 | * Codes for compression/raw are now "Q" and "q" instead of |
||
28 | "P" and "p" |
||
29 | * Each picture has now a relative X- and Y-offsets for 'fine-tuning'. |
||
30 | These offsets cannot be negative, though. |
||
31 | |||
32 | VERSION 2.x (32-bit era, "IPE32") |
||
33 | ================================= |
||
34 | |||
35 | Version 2.0 For games: "Where's Waldo? Exploring Geography" (1996) |
||
36 | "Eraser Turnabout" (1997) |
||
37 | "Virtual K'Nex" (1998) |
||
38 | * File signature "ART_DATA" |
||
39 | * Image names up to 8 characters; |
||
40 | no zero termination required after the 8 characters. |
||
41 | * LZW implementation by Mark R. Nelson and Shawn M. Regan |
||
42 | - variable code length between 9 and 13 bits |
||
43 | - clear code (256) |
||
44 | - end code (257) |
||
45 | * Pictures are divided into chunks. Each chunk can be compressed or |
||
46 | uncompressed. Limitations: |
||
47 | - Each compressed chunk (except the last one) must decode into |
||
48 | exactly 16382 (0x3FFE) bytes of uncompressed data. |
||
49 | - The size of the compressed data of a chunk must not exceed the |
||
50 | size of the original uncompressed data. |
||
51 | * The size of each chunk (raw or compressed) is limited |
||
52 | to max. 32767 Bytes (0x7FFF). |
||
53 | * Decompressed/raw data: Windows Bitmap (without file header); |
||
54 | therefore, theoretically every color depth/compression/etc. can be used. |
||
55 | For 8-bit pictures, the palette is included in the Bitmap. |
||
56 | * Re-using of parent palette is not possible. |