summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author MetalliC <0vetal0@gmail.com>2017-12-13 14:09:32 +0200
committer MetalliC <0vetal0@gmail.com>2017-12-13 14:09:32 +0200
commitb0c350c6ae6e4fa5b79ca2f26cc642d5e8f4a0ec (patch)
treead80c737ae7054f10a03ea7693bed137982e33dc
parenta63f658108f0c9828c917352cbda0d944da9d0ef (diff)
pgm2: foreground scroll (nw)
-rw-r--r--src/mame/drivers/pgm2.cpp5
-rw-r--r--src/mame/includes/pgm2.h2
-rw-r--r--src/mame/video/pgm2.cpp2
3 files changed, 7 insertions, 2 deletions
diff --git a/src/mame/drivers/pgm2.cpp b/src/mame/drivers/pgm2.cpp
index a439f84ee01..3a61710eae0 100644
--- a/src/mame/drivers/pgm2.cpp
+++ b/src/mame/drivers/pgm2.cpp
@@ -73,8 +73,8 @@
02 - bg scroll y
04 - zoom something, 0F-7F, default 1F
06 - zoom something, 0F-7F, default 1F
- 08 - fg? scroll x
- 0a - fg? scroll y
+ 08 - fg scroll x
+ 0a - fg scroll y
0e - ? 1 at init (sprite related?)
10 - ? orleg2 - 0x13, kov2nl - 0x14 at init (sprite related?)
14 - sprite enable ? set to 0 before spriteram update, to 1 after
@@ -355,6 +355,7 @@ static ADDRESS_MAP_START( pgm2_map, AS_PROGRAM, 32, pgm2_state )
AM_RANGE(0x30100000, 0x301000ff) AM_READWRITE8(shareram_r, shareram_w, 0x00ff00ff)
AM_RANGE(0x30120000, 0x30120003) AM_RAM AM_SHARE("bgscroll") // scroll
+ AM_RANGE(0x30120008, 0x3012000b) AM_RAM AM_SHARE("fgscroll")
AM_RANGE(0x30120030, 0x30120033) AM_WRITE16(share_bank_w, 0xffff0000)
AM_RANGE(0x30120038, 0x3012003b) AM_WRITE(sprite_encryption_w)
// there are other 0x301200xx regs
diff --git a/src/mame/includes/pgm2.h b/src/mame/includes/pgm2.h
index 1447a5d6fc6..de986d1b5a3 100644
--- a/src/mame/includes/pgm2.h
+++ b/src/mame/includes/pgm2.h
@@ -32,6 +32,7 @@ public:
m_bg_videoram(*this, "bg_videoram"),
m_sp_videoram(*this, "sp_videoram"),
m_bgscroll(*this, "bgscroll"),
+ m_fgscroll(*this, "fgscroll"),
m_gfxdecode2(*this, "gfxdecode2"),
m_gfxdecode3(*this, "gfxdecode3"),
m_arm_aic(*this, "arm_aic"),
@@ -130,6 +131,7 @@ private:
required_shared_ptr<uint32_t> m_bg_videoram;
required_shared_ptr<uint32_t> m_sp_videoram;
required_shared_ptr<uint32_t> m_bgscroll;
+ required_shared_ptr<uint32_t> m_fgscroll;
required_device<gfxdecode_device> m_gfxdecode2;
required_device<gfxdecode_device> m_gfxdecode3;
required_device<arm_aic_device> m_arm_aic;
diff --git a/src/mame/video/pgm2.cpp b/src/mame/video/pgm2.cpp
index 64ce9901cf7..dcd56aff64f 100644
--- a/src/mame/video/pgm2.cpp
+++ b/src/mame/video/pgm2.cpp
@@ -258,6 +258,8 @@ 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)
{
+ 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 );
for (int y = 0; y < 224; y++)