summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cards.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/cards.c b/cards.c
index c6403b9..e67317d 100644
--- a/cards.c
+++ b/cards.c
@@ -51,7 +51,9 @@ dibSurface(SDL_RWops *rw, Uint32 offset, Uint32 length) {
 		if (SDL_RWseek(rw, 0x10, RW_SEEK_CUR) < 0) goto fail;
 		Uint32 paletteLength = SDL_ReadLE32(rw);
 
-		if (!paletteLength) paletteLength = 1 << bitsPerPixel;
+		if (!paletteLength && bitsPerPixel < 16) {
+			paletteLength = 1 << bitsPerPixel;
+		}
 		bitmapDataOffset += 4 * paletteLength;
 
 	} else {
@@ -143,6 +145,7 @@ static int setBlackBorders(struct Cards *cards) {
 	return 0;
 }
 
+// exefmt.txt
 static int loadNE(struct Cards *cards, SDL_RWops *rw, Uint16 neOffset) {
 	if (SDL_RWseek(rw, neOffset + 0x24, RW_SEEK_SET) < 0) return -1;
 	Uint16 resourceTableOffset = neOffset + SDL_ReadLE16(rw);