diff --git a/src/mame/video/segas32.c b/src/mame/video/segas32.c index 8031a948b40..b04df8b8a26 100644 --- a/src/mame/video/segas32.c +++ b/src/mame/video/segas32.c @@ -42,7 +42,7 @@ ---- f--- ---- ---- : Bitmap format (1= 8bpp, 0= 4bpp) ---- -t-- ---- ---- : Tile banking related ---- --f- ---- ---- : 1= Global X/Y flip? (most games?) - ---- ---f ---- ---- : 1= All layers Y flip (or one layer?) (Air Rescue 2nd screen) + ---- ---f ---- ---- : 1= prohbit Y flip? (Air Rescue 2nd screen title, also gets set on one of the intro sequence screens) ---- ---- ---- 4--- : 1= X+Y flip for NBG3 ---- ---- ---- -2-- : 1= X+Y flip for NBG2 ---- ---- ---- --1- : 1= X+Y flip for NBG1 @@ -883,13 +883,16 @@ void segas32_state::update_tilemap_zoom(screen_device &screen, struct segas32_st int global_flip = (m_system32_videoram[0x1ff00 / 2] >> 9)&1; int flipx = global_flip; - int flipy = global_flip ^ ((m_system32_videoram[0x1ff00 / 2] >> 8)&1); + int flipy = global_flip; + int layer_flip = (m_system32_videoram[0x1ff00 / 2] >> bgnum) & 1; flipy ^= layer_flip; flipx ^= layer_flip; + if ((m_system32_videoram[0x1ff00 / 2] >> 8) & 1) flipy = 0; + /* determine the clipping */ clipenable = (m_system32_videoram[0x1ff02/2] >> (11 + bgnum)) & 1; clipout = (m_system32_videoram[0x1ff02/2] >> (6 + bgnum)) & 1;