GR graphics files are 8-bits-per-pixels but only 4-bits of color, with transparency and no palette. Compression is the standard TempleOS LZW compression. #define DCF_COMPRESSED 1 //This is the only saved flag. #define DCF_PALETTE 2 #define TRANSPARENT 0xFF #define BLACK 0 #define BLUE 1 #define GREEN 2 #define CYAN 3 #define RED 4 #define PURPLE 5 #define BROWN 6 #define LTGRAY 7 #define DKGRAY 8 #define LTBLUE 9 #define LTGREEN 10 #define LTCYAN 11 #define LTRED 12 #define LTPURPLE 13 #define YELLOW 14 #define WHITE 15 class CBGR48 { U16 r,g,b,pad; }; CBGR48 gr_palette_std[16]={ 0x000000000000,0x00000000AAAA,0x0000AAAA0000,0x0000AAAAAAAA, 0xAAAA00000000,0xAAAA0000AAAA,0xAAAA55550000,0xAAAAAAAAAAAA, 0x555555555555,0x55555555FFFF,0x5555FFFF5555,0x5555FFFFFFFF, 0xFFFF55555555,0xFFFF5555FFFF,0xFFFFFFFF5555,0xFFFFFFFFFFFF}; class GRFile { I32 width; I32 width_internal; //Rounded-up to multiple of 8. I32 height; I32 flags; //DCF_COMPRESSED? See ::/Kernel/Compress.HC. CBGR48 palette[16]; //Included if DCF_PALETTE. U8 body[]; }; See DCSave(), GRWrite(), DCLoad(), and GRRead().