diff --git a/src/fontcache.cpp b/src/fontcache.cpp index f1a2ac7775..41754a7755 100644 --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -453,7 +453,7 @@ static void *AllocateFont(size_t size) static bool GetFontAAState(FontSize size) { /* AA is only supported for 32 bpp */ - if (BlitterFactory::GetCurrentBlitter()->GetScreenDepth() != 32) return false; + if (BlitterFactory::GetCurrentBlitter()->GetScreenDepth() != 32 && BlitterFactory::GetCurrentBlitter()->GetScreenDepth() != 16) return false; switch (size) { default: NOT_REACHED(); diff --git a/src/spritecache.cpp b/src/spritecache.cpp index c41b8f51cb..e2ae84f0e0 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -400,6 +400,10 @@ static void *ReadSprite(const SpriteCache *sc, SpriteID id, SpriteType sprite_ty /* Try for 32bpp sprites first. */ sprite_avail = sprite_loader.LoadSprite(sprite, file_slot, file_pos, sprite_type, true); } + if (sprite_type != ST_MAPGEN && BlitterFactory::GetCurrentBlitter()->GetScreenDepth() == 16) { + /* 32bpp sprites for 16bpp videomode. */ + sprite_avail = sprite_loader.LoadSprite(sprite, file_slot, file_pos, sprite_type, true); + } if (sprite_avail == 0) { sprite_avail = sprite_loader.LoadSprite(sprite, file_slot, file_pos, sprite_type, false); }