diff --git a/src/fontcache.cpp b/src/fontcache.cpp index 975643cca5..77ac714f79 100644 --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -451,7 +451,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 49f2d7ff4b..3ce35ab327 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -398,6 +398,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); }