diff options
author | 2016-05-24 20:13:40 +0200 | |
---|---|---|
committer | 2016-05-24 20:13:40 +0200 | |
commit | 8be2652e41e62c930c9cfa803d56a4e27e4794c9 (patch) | |
tree | 3134a304351929fadd81d7898734b0dfd90540eb /src | |
parent | e208f1d54082b8ed4a03d13d266b7014dc65b218 (diff) |
Fix jerky scrolling
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/metlfrzr.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mame/drivers/metlfrzr.cpp b/src/mame/drivers/metlfrzr.cpp index f1d2b359e27..7f8a52d7326 100644 --- a/src/mame/drivers/metlfrzr.cpp +++ b/src/mame/drivers/metlfrzr.cpp @@ -80,14 +80,16 @@ void metlfrzr_state::legacy_bg_draw(bitmap_ind16 &bitmap,const rectangle &clipre UINT16 x_scroll_value; x_scroll_value = m_video_regs[0x17] + ((m_video_regs[0x06] & 1) << 8); x_scroll_base = (x_scroll_value >> 3) * 32; - x_scroll_shift = (x_scroll_value & 7); - for (count=0;count<32*32;count++) + for (count=0;count<32*33;count++) { int tile_base = count; int y = (count % 32); if(y > 7 || m_video_regs[0x06] & 3) // TODO: this condition breaks on level 5 halfway thru. + { tile_base+= x_scroll_base; + x_scroll_shift = (x_scroll_value & 7); + } else x_scroll_shift = 0; tile_base &= vram_mask; |