diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/goldstar.cpp | 3 | ||||
-rw-r--r-- | src/mame/includes/goldstar.h | 1 | ||||
-rw-r--r-- | src/mame/video/goldstar.cpp | 33 |
3 files changed, 37 insertions, 0 deletions
diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp index df2149cd4de..bf75c1ca50f 100644 --- a/src/mame/drivers/goldstar.cpp +++ b/src/mame/drivers/goldstar.cpp @@ -8474,6 +8474,9 @@ static MACHINE_CONFIG_DERIVED( mbstar, lucky8 ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(mbstar_map) + + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_UPDATE_DRIVER(wingco_state, screen_update_mbstar) MACHINE_CONFIG_END diff --git a/src/mame/includes/goldstar.h b/src/mame/includes/goldstar.h index 28500b4cc33..22a3876b7ad 100644 --- a/src/mame/includes/goldstar.h +++ b/src/mame/includes/goldstar.h @@ -177,6 +177,7 @@ public: DECLARE_PALETTE_INIT(magodds); uint32_t screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + uint32_t screen_update_mbstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(masked_irq); diff --git a/src/mame/video/goldstar.cpp b/src/mame/video/goldstar.cpp index b3b57f5f280..f7c4477e57e 100644 --- a/src/mame/video/goldstar.cpp +++ b/src/mame/video/goldstar.cpp @@ -466,6 +466,39 @@ uint32_t wingco_state::screen_update_magical(screen_device &screen, bitmap_ind16 } +uint32_t wingco_state::screen_update_mbstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + bitmap.fill(m_palette->black_pen(), cliprect); + + if (!(m_cm_enable_reg & 0x01)) + return 0; + + if (m_cm_enable_reg & 0x08) + { + for (int i = 0; i < 64; i++) + { + m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]); + m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]); + m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]); + } + + // are these hardcoded, or registers? + const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+7)*8-1); + const rectangle visible2(0*8, (14+48)*8-1, 14*8, (36+7)*8-1); // seems to be the one used... + const rectangle visible3(0*8, (14+48)*8-1, 4*8, (4+7)*8-1); + +// m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0); + m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0); +// m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0); + } + + if (m_cm_enable_reg & 0x02) + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + + return 0; +} + + WRITE8_MEMBER(sanghopm_state::fg_vidram_w) { |