summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/pgm2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/pgm2.cpp')
-rw-r--r--src/mame/video/pgm2.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/mame/video/pgm2.cpp b/src/mame/video/pgm2.cpp
index 88fa0c838fc..8f416b469c8 100644
--- a/src/mame/video/pgm2.cpp
+++ b/src/mame/video/pgm2.cpp
@@ -216,12 +216,15 @@ void pgm2_state::draw_sprites(screen_device &screen, const rectangle &cliprect,
draw_sprite_line(cliprect, mask_offset, palette_offset, x, realy, flipx, reverse, sizex, pal, 1, zoomx_bits, growx);
realy++;
- if (zoomy_bit)
+ if (zoomy_bit) // draw it again
{
palette_offset = pre_palette_offset;
mask_offset = pre_mask_offset;
+ draw_sprite_line(cliprect, mask_offset, palette_offset, x, realy, flipx, reverse, sizex, pal, 1, zoomx_bits, growx);
+ realy++;
}
- else ydraw++;
+
+ ydraw++;
}
}
}
@@ -258,6 +261,15 @@ void pgm2_state::copy_sprites_from_bitmap(screen_device &screen, bitmap_rgb32 &b
uint32_t pgm2_state::screen_update_pgm2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
+
+ int mode = m_vidmode[0] & 0x00010000; // other bits not used?
+
+ if (mode)
+ m_screen->set_visible_area(0, 448 - 1, 0, 224 - 1);
+ else // note, +8 to y position too, could be a sprite reg to move sprites intead
+ m_screen->set_visible_area(0, 320 - 1, 8, 224 + 8 - 1);
+
+
m_fg_tilemap->set_scrollx(0, m_fgscroll[0] & 0xffff);
m_fg_tilemap->set_scrolly(0, m_fgscroll[0] >> 16);
m_bg_tilemap->set_scrolly(0, (m_bgscroll[0x0/4] & 0xffff0000)>>16 );