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 | 428 | static void decode_ham_plane32(uint32_t *dst, const uint8_t *buf, |
| 429 | 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 | 432 | do { |
| 433 | 433 | uint32_t first, second; |
| 434 | 434 | DECODE_HAM_PLANE32(0); |