pgm2: foreground scroll (nw)

This commit is contained in:
MetalliC 2017-12-13 14:09:32 +02:00
parent a63f658108
commit b0c350c6ae
3 changed files with 7 additions and 2 deletions

View File

@ -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

View File

@ -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;

View File

@ -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++)