diff options
author | MetalliC <0vetal0@gmail.com> | 2017-12-13 14:09:32 +0200 |
---|---|---|
committer | MetalliC <0vetal0@gmail.com> | 2017-12-13 14:09:32 +0200 |
commit | b0c350c6ae6e4fa5b79ca2f26cc642d5e8f4a0ec (patch) | |
tree | ad80c737ae7054f10a03ea7693bed137982e33dc | |
parent | a63f658108f0c9828c917352cbda0d944da9d0ef (diff) |
pgm2: foreground scroll (nw)
-rw-r--r-- | src/mame/drivers/pgm2.cpp | 5 | ||||
-rw-r--r-- | src/mame/includes/pgm2.h | 2 | ||||
-rw-r--r-- | src/mame/video/pgm2.cpp | 2 |
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++) |