summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/goldstar.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/goldstar.c')
-rw-r--r--src/mame/video/goldstar.c206
1 files changed, 104 insertions, 102 deletions
diff --git a/src/mame/video/goldstar.c b/src/mame/video/goldstar.c
index 888107c8551..bf9bdd3407f 100644
--- a/src/mame/video/goldstar.c
+++ b/src/mame/video/goldstar.c
@@ -162,36 +162,6 @@ VIDEO_START_MEMBER(goldstar_state, goldstar)
m_cm_enable_reg = 0x0b;
}
-VIDEO_START_MEMBER(goldstar_state, bingowng)
-{
- m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
-
- m_reel1_tilemap->set_scroll_cols(64);
-
- m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
- m_fg_tilemap->set_transparent_pen(0);
-
- // is there an enable reg for this game?
- m_cm_enable_reg = 0x0b;
-}
-
-VIDEO_START_MEMBER(goldstar_state, magical)
-{
- m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel2_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel3_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
-
- m_reel1_tilemap->set_scroll_cols(32);
- m_reel2_tilemap->set_scroll_cols(32);
- m_reel3_tilemap->set_scroll_cols(32);
-
- m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_magical_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
- m_fg_tilemap->set_transparent_pen(0);
-
- // is there an enable reg for this game?
- m_cm_enable_reg = 0x0b;
-}
-
VIDEO_START_MEMBER(goldstar_state, cherrym)
{
m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
@@ -311,7 +281,7 @@ UINT32 goldstar_state::screen_update_goldstar(screen_device &screen, bitmap_ind1
}
-UINT32 goldstar_state::screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 goldstar_state::screen_update_cmast91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int i;
@@ -325,23 +295,17 @@ UINT32 goldstar_state::screen_update_bingowng(screen_device &screen, bitmap_ind1
for (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]);
}
+ const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+7)*8-1); /* same start for reel1 */
+ const rectangle visible2(0*8, (14+48)*8-1, 11*8, (12+7)*8-1); /* 4 pixels less for reel2 */
+ const rectangle visible3(0*8, (14+48)*8-1, 19*8, (19+7)*8-1); /* 8 pixels less for reel3 */
- const rectangle visible1(0*8, (14+48)*8-1, 3*8, (4+7)*8-1);
m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
- }
-
- if (m_cm_enable_reg &0x04)
- {
- if (memregion("user1")->base())
- {
- gfx_element *gfx = m_gfxdecode->gfx(2);
- int girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0));
- int girlxscroll = (INT8)((m_cm_girl_scroll & 0x0f)<<4);
-
- gfx->zoom_transpen(bitmap,cliprect,m_cmaster_girl_num,m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,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)
@@ -352,8 +316,7 @@ UINT32 goldstar_state::screen_update_bingowng(screen_device &screen, bitmap_ind1
return 0;
}
-
-UINT32 goldstar_state::screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 goldstar_state::screen_update_amcoe1a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int i;
@@ -364,42 +327,25 @@ UINT32 goldstar_state::screen_update_magical(screen_device &screen, bitmap_ind16
if (m_cm_enable_reg &0x08)
{
- // guess, could be wrong, but different screens clearly need different reel layouts
- if (m_unkch_vidreg & 2)
+ for (i= 0;i < 64;i++)
{
- for (i= 0;i < 32;i++)
- {
- m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
- m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
- // m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
- }
-
-
- const rectangle visible1alt(0*8, (16+48)*8-1, 4*8, 16*8-1);
- const rectangle visible2alt(0*8, (16+48)*8-1, 16*8, 28*8-1);
-
- m_reel1_tilemap->draw(screen, bitmap, visible1alt, 0, 0);
- m_reel2_tilemap->draw(screen, bitmap, visible2alt, 0, 0);
- //m_reel3_tilemap->draw(screen, bitmap, &magical_visible3, 0, 0);
+ 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]);
}
- else
- {
- for (i= 0;i < 32;i++)
- {
- m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
- m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
- m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
- }
+ const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+6)*8-1);
+ const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+6)*8-1);
+ const rectangle visible3(0*8, (14+48)*8-1, 16*8, (16+6)*8-1);
- const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+8)*8-1);
- const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+8)*8-1);
- const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+8)*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);
+ }
- 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 &0x04)
+ {
+ // no girls
}
if (m_cm_enable_reg &0x02)
@@ -410,7 +356,40 @@ UINT32 goldstar_state::screen_update_magical(screen_device &screen, bitmap_ind16
return 0;
}
-UINT32 goldstar_state::screen_update_cmast91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+
+
+VIDEO_START_MEMBER(wingco_state, bingowng)
+{
+ m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+
+ m_reel1_tilemap->set_scroll_cols(64);
+
+ m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
+ m_fg_tilemap->set_transparent_pen(0);
+
+ // is there an enable reg for this game?
+ m_cm_enable_reg = 0x0b;
+}
+
+VIDEO_START_MEMBER(wingco_state, magical)
+{
+ m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+
+ m_reel1_tilemap->set_scroll_cols(32);
+ m_reel2_tilemap->set_scroll_cols(32);
+ m_reel3_tilemap->set_scroll_cols(32);
+
+ m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_magical_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
+ m_fg_tilemap->set_transparent_pen(0);
+
+ // is there an enable reg for this game?
+ m_cm_enable_reg = 0x0b;
+}
+
+
+UINT32 wingco_state::screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int i;
@@ -424,17 +403,23 @@ UINT32 goldstar_state::screen_update_cmast91(screen_device &screen, bitmap_ind16
for (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]);
}
- const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+7)*8-1); /* same start for reel1 */
- const rectangle visible2(0*8, (14+48)*8-1, 11*8, (12+7)*8-1); /* 4 pixels less for reel2 */
- const rectangle visible3(0*8, (14+48)*8-1, 19*8, (19+7)*8-1); /* 8 pixels less for reel3 */
+ const rectangle visible1(0*8, (14+48)*8-1, 3*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 &0x04)
+ {
+ if (memregion("user1")->base())
+ {
+ gfx_element *gfx = m_gfxdecode->gfx(2);
+ int girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0));
+ int girlxscroll = (INT8)((m_cm_girl_scroll & 0x0f)<<4);
+
+ gfx->zoom_transpen(bitmap,cliprect,m_cmaster_girl_num,m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
+ }
}
if (m_cm_enable_reg &0x02)
@@ -445,7 +430,7 @@ UINT32 goldstar_state::screen_update_cmast91(screen_device &screen, bitmap_ind16
return 0;
}
-UINT32 goldstar_state::screen_update_amcoe1a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 wingco_state::screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int i;
@@ -456,25 +441,42 @@ UINT32 goldstar_state::screen_update_amcoe1a(screen_device &screen, bitmap_ind16
if (m_cm_enable_reg &0x08)
{
- for (i= 0;i < 64;i++)
+ // guess, could be wrong, but different screens clearly need different reel layouts
+ if (m_vidreg & 2)
{
- 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]);
+ for (i= 0;i < 32;i++)
+ {
+ m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
+ m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
+ // m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
+ }
+
+
+ const rectangle visible1alt(0*8, (16+48)*8-1, 4*8, 16*8-1);
+ const rectangle visible2alt(0*8, (16+48)*8-1, 16*8, 28*8-1);
+
+ m_reel1_tilemap->draw(screen, bitmap, visible1alt, 0, 0);
+ m_reel2_tilemap->draw(screen, bitmap, visible2alt, 0, 0);
+ //m_reel3_tilemap->draw(screen, bitmap, &magical_visible3, 0, 0);
}
+ else
+ {
+ for (i= 0;i < 32;i++)
+ {
+ m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
+ m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
+ m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
+ }
- const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+6)*8-1);
- const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+6)*8-1);
- const rectangle visible3(0*8, (14+48)*8-1, 16*8, (16+6)*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);
- }
+ const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+8)*8-1);
+ const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+8)*8-1);
+ const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+8)*8-1);
- if (m_cm_enable_reg &0x04)
- {
- // no girls
+ 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)
@@ -714,7 +716,7 @@ VIDEO_START_MEMBER(unkch_state, unkch)
m_cmaster_girl_num = 0;
m_cmaster_girl_pal = 0;
- m_unkch_vidreg = 0x00;
+ m_vidreg = 0x00;
m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_cherrym_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
@@ -735,7 +737,7 @@ UINT32 unkch_state::screen_update_unkch(screen_device &screen, bitmap_ind16 &bit
{
// guess, this could be something else completely!!
// only draw the first 'reels' tilemap, but fullscreen, using alt registers? (or no scrolling at all? - doubtful, see girl)
- if (m_unkch_vidreg & 0x40)
+ if (m_vidreg & 0x40)
{
for (i= 0;i < 32;i++)
{