summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/goldstar.cpp3
-rw-r--r--src/mame/includes/goldstar.h1
-rw-r--r--src/mame/video/goldstar.cpp33
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)
{