The palette is organised into 'hold' and 'modify' pairs, hence why the first palette entry is pal[1]. Fixes ticket #1701.
Unified · Split
| @@ -428,7 +428,7 @@ static void decodeplane32(uint32_t *dst, const uint8_t *buf, int buf_size, int p · 427 unmodified lines | |||
| 428 | static void decode_ham_plane32(uint32_t *dst, const uint8_t *buf, | 428 | static void decode_ham_plane32(uint32_t *dst, const uint8_t *buf, |
| 429 | const uint32_t *const pal, unsigned buf_size) | 429 | const uint32_t *const pal, unsigned buf_size) |
| 430 | { | 430 | { |
| 431 | uint32_t delta = 0; | 431 | uint32_t delta = pal[1]; /* first palette entry */ |
| 432 | do { | 432 | do { |
| 433 | uint32_t first, second; | 433 | uint32_t first, second; |
| 434 | DECODE_HAM_PLANE32(0); | 434 | DECODE_HAM_PLANE32(0); |