summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/deco16ic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/deco16ic.cpp')
-rw-r--r--src/mame/video/deco16ic.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/mame/video/deco16ic.cpp b/src/mame/video/deco16ic.cpp
index 55daf66fa2a..da8467a9b50 100644
--- a/src/mame/video/deco16ic.cpp
+++ b/src/mame/video/deco16ic.cpp
@@ -724,11 +724,18 @@ static int deco16_pf_update(
if (tilemap_16x16)
{
+ int numrows = rows;
+
+ // cap at tilemap size
+ if (numrows > tilemap_16x16->height())
+ numrows = tilemap_16x16->height();
+
tilemap_16x16->set_scroll_cols(1);
- tilemap_16x16->set_scroll_rows(rows);
+ tilemap_16x16->set_scroll_rows(numrows);
tilemap_16x16->set_scrolly(0, scrolly);
- for (offs = 0; offs < rows; offs++)
+
+ for (offs = 0; offs < numrows; offs++)
tilemap_16x16->set_scrollx(offs, scrollx + rowscroll_ptr[offs]);
}
@@ -740,6 +747,10 @@ static int deco16_pf_update(
if (!(tilemapsizes & 4))
numrows = rows >> 1;
+ // cap at tilemap size
+ if (numrows > tilemap_8x8->height())
+ numrows = tilemap_8x8->height();
+
tilemap_8x8->set_scroll_cols(1);
tilemap_8x8->set_scroll_rows(numrows);
tilemap_8x8->set_scrolly(0, scrolly);