31 #define SMACKER_PAL 0x01
32 #define SMACKER_FLAG_RING_FRAME 0x01
81 0x00, 0x04, 0x08, 0x0C, 0x10, 0x14, 0x18, 0x1C,
82 0x20, 0x24, 0x28, 0x2C, 0x30, 0x34, 0x38, 0x3C,
83 0x41, 0x45, 0x49, 0x4D, 0x51, 0x55, 0x59, 0x5D,
84 0x61, 0x65, 0x69, 0x6D, 0x71, 0x75, 0x79, 0x7D,
85 0x82, 0x86, 0x8A, 0x8E, 0x92, 0x96, 0x9A, 0x9E,
86 0xA2, 0xA6, 0xAA, 0xAE, 0xB2, 0xB6, 0xBA, 0xBE,
87 0xC3, 0xC7, 0xCB, 0xCF, 0xD3, 0xD7, 0xDB, 0xDF,
88 0xE3, 0xE7, 0xEB, 0xEF, 0xF3, 0xF7, 0xFB, 0xFF
94 if(p->
buf[0] ==
'S' && p->
buf[1] ==
'M' && p->
buf[2] ==
'K'
95 && (p->
buf[3] ==
'2' || p->
buf[3] ==
'4'))
120 for(i = 0; i < 7; i++)
134 for(i = 0; i < 7; i++) {
140 if(smk->
frames > 0xFFFFFF) {
150 for(i = 0; i < smk->
frames; i++) {
153 for(i = 0; i < smk->
frames; i++) {
178 for(i = 0; i < 7; i++) {
252 uint8_t *pal = smk->
pal;
255 memcpy(oldpal, pal, 768);
265 sz += (t & 0x7F) + 1;
266 pal += ((t & 0x7F) + 1) * 3;
270 if (off + j > 0xff) {
272 "Invalid palette update, offset=%d length=%d extends beyond palette size\n",
277 while(j-- && sz < 256) {
278 *pal++ = oldpal[off + 0];
279 *pal++ = oldpal[off + 1];
280 *pal++ = oldpal[off + 2];
297 for(i = 0; i < 7; i++) {
324 pkt->
data[0] = palchange;
325 memcpy(pkt->
data + 1, smk->
pal, 768);
327 if(ret != frame_size)
330 pkt->
size = ret + 769;
352 for(i = 0; i < 7; i++)