diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c index 63477246bc2..ba05fc99341 100644 --- a/src/mame/drivers/goldstar.c +++ b/src/mame/drivers/goldstar.c @@ -114,6 +114,7 @@ extern WRITE8_HANDLER( goldstar_fg_atrram_w ); WRITE8_HANDLER( goldstar_fa00_w ); WRITE8_HANDLER( cm_background_col_w ); +WRITE8_HANDLER( cm_outport0_w ); VIDEO_START( goldstar ); VIDEO_START( cherrym ); VIDEO_UPDATE( goldstar ); @@ -252,14 +253,11 @@ ADDRESS_MAP_END */ -static WRITE8_HANDLER( cm_outport0_w ) -{ - /* lamps? */ -} + static WRITE8_HANDLER( cm_outport1_w ) { - /* quick extended writes */ + /* lamps? */ } static ADDRESS_MAP_START( cm_map, ADDRESS_SPACE_PROGRAM, 8 ) diff --git a/src/mame/video/goldstar.c b/src/mame/video/goldstar.c index 678e9d5cf36..d8ea367313a 100644 --- a/src/mame/video/goldstar.c +++ b/src/mame/video/goldstar.c @@ -8,8 +8,6 @@ #include "driver.h" -#define DRAW_GIRL 0 - //UINT8 *goldstar_video1, *goldstar_video2, *goldstar_video3; //size_t goldstar_video_size; UINT8 *goldstar_reel1_scroll, *goldstar_reel2_scroll, *goldstar_reel3_scroll; @@ -27,6 +25,22 @@ static int bgcolor; static tilemap *goldstar_fg_tilemap; static UINT8 cmaster_girl_num; static UINT8 cmaster_girl_pal; +static UINT8 cm_enable_reg; + +WRITE8_HANDLER( cm_outport0_w ) +{ + cm_enable_reg = data; + /* + ---- ---x (global enable or irq enable?) + ---- --x- (fg enable) + ---- -x-- (girl enable?) + ---- x--- (reels enable) + + xxxx ---- unused? + + */ + //popmessage("%02x",data); +} WRITE8_HANDLER( goldstar_fg_vidram_w ) { @@ -142,6 +156,9 @@ VIDEO_START( goldstar ) goldstar_fg_tilemap = tilemap_create(machine,get_goldstar_fg_tile_info,tilemap_scan_rows,8,8, 64, 32); tilemap_set_transparent_pen(goldstar_fg_tilemap,0); + + // is there an enable reg for this game? + cm_enable_reg = 0x0b; } VIDEO_START( cherrym ) @@ -159,6 +176,8 @@ VIDEO_START( cherrym ) goldstar_fg_tilemap = tilemap_create(machine,get_cherrym_fg_tile_info,tilemap_scan_rows,8,8, 64, 32); tilemap_set_transparent_pen(goldstar_fg_tilemap,0); + + cm_enable_reg = 0x0b; } @@ -217,32 +236,41 @@ static const rectangle am1a_visible3 = { 0*8, (14+48)*8-1, 16*8, (16+6)*8-1 }; VIDEO_UPDATE( goldstar ) { int i; - + bitmap_fill(bitmap,cliprect,get_black_pen(screen->machine)); - for (i= 0;i < 64;i++) + if (!cm_enable_reg &0x01) + return 0; + + if (cm_enable_reg &0x08) { - tilemap_set_scrolly(goldstar_reel1_tilemap, i, goldstar_reel1_scroll[i]); - tilemap_set_scrolly(goldstar_reel2_tilemap, i, goldstar_reel2_scroll[i]); - tilemap_set_scrolly(goldstar_reel3_tilemap, i, goldstar_reel3_scroll[i]); + for (i= 0;i < 64;i++) + { + tilemap_set_scrolly(goldstar_reel1_tilemap, i, goldstar_reel1_scroll[i]); + tilemap_set_scrolly(goldstar_reel2_tilemap, i, goldstar_reel2_scroll[i]); + tilemap_set_scrolly(goldstar_reel3_tilemap, i, goldstar_reel3_scroll[i]); + } + + + tilemap_draw(bitmap, &visible1, goldstar_reel1_tilemap, 0, 0); + tilemap_draw(bitmap, &visible2, goldstar_reel2_tilemap, 0, 0); + tilemap_draw(bitmap, &visible3, goldstar_reel3_tilemap, 0, 0); } - - - tilemap_draw(bitmap, &visible1, goldstar_reel1_tilemap, 0, 0); - tilemap_draw(bitmap, &visible2, goldstar_reel2_tilemap, 0, 0); - tilemap_draw(bitmap, &visible3, goldstar_reel3_tilemap, 0, 0); - - /* need to figure out priority etc. */ - #if DRAW_GIRL - if (memory_region(screen->machine,"user1")) + + if (cm_enable_reg &0x04) { - const gfx_element *gfx = screen->machine->gfx[2]; - drawgfxzoom(bitmap,gfx,cmaster_girl_num,cmaster_girl_pal,0,0,32*8,16*8,cliprect,TRANSPARENCY_PEN,0, 0x20000, 0x10000); + if (memory_region(screen->machine,"user1")) + { + const gfx_element *gfx = screen->machine->gfx[2]; + drawgfxzoom(bitmap,gfx,cmaster_girl_num,cmaster_girl_pal,0,0,32*8,16*8,cliprect,TRANSPARENCY_PEN,0, 0x20000, 0x10000); + } } - #endif - - tilemap_draw(bitmap,cliprect, goldstar_fg_tilemap, 0, 0); - + + if (cm_enable_reg &0x02) + { + tilemap_draw(bitmap,cliprect, goldstar_fg_tilemap, 0, 0); + } + return 0; } @@ -252,19 +280,28 @@ VIDEO_UPDATE( cmast91 ) bitmap_fill(bitmap,cliprect,get_black_pen(screen->machine)); - for (i= 0;i < 64;i++) - { - tilemap_set_scrolly(goldstar_reel1_tilemap, i, goldstar_reel1_scroll[i]); - tilemap_set_scrolly(goldstar_reel2_tilemap, i, goldstar_reel2_scroll[i]); - tilemap_set_scrolly(goldstar_reel3_tilemap, i, goldstar_reel3_scroll[i]); + if (!cm_enable_reg &0x01) + return 0; + + if (cm_enable_reg &0x08) + { + for (i= 0;i < 64;i++) + { + tilemap_set_scrolly(goldstar_reel1_tilemap, i, goldstar_reel1_scroll[i]); + tilemap_set_scrolly(goldstar_reel2_tilemap, i, goldstar_reel2_scroll[i]); + tilemap_set_scrolly(goldstar_reel3_tilemap, i, goldstar_reel3_scroll[i]); + } + + tilemap_draw(bitmap, &cm91_visible1, goldstar_reel1_tilemap, 0, 0); + tilemap_draw(bitmap, &cm91_visible2, goldstar_reel2_tilemap, 0, 0); + tilemap_draw(bitmap, &cm91_visible3, goldstar_reel3_tilemap, 0, 0); } - tilemap_draw(bitmap, &cm91_visible1, goldstar_reel1_tilemap, 0, 0); - tilemap_draw(bitmap, &cm91_visible2, goldstar_reel2_tilemap, 0, 0); - tilemap_draw(bitmap, &cm91_visible3, goldstar_reel3_tilemap, 0, 0); - - tilemap_draw(bitmap, cliprect, goldstar_fg_tilemap, 0, 0); - + if (cm_enable_reg &0x02) + { + tilemap_draw(bitmap, cliprect, goldstar_fg_tilemap, 0, 0); + } + return 0; } @@ -274,18 +311,32 @@ VIDEO_UPDATE( amcoe1a ) bitmap_fill(bitmap,cliprect,get_black_pen(screen->machine)); - for (i= 0;i < 64;i++) + if (!cm_enable_reg &0x01) + return 0; + + if (cm_enable_reg &0x08) { - tilemap_set_scrolly(goldstar_reel1_tilemap, i, goldstar_reel1_scroll[i]); - tilemap_set_scrolly(goldstar_reel2_tilemap, i, goldstar_reel2_scroll[i]); - tilemap_set_scrolly(goldstar_reel3_tilemap, i, goldstar_reel3_scroll[i]); + for (i= 0;i < 64;i++) + { + tilemap_set_scrolly(goldstar_reel1_tilemap, i, goldstar_reel1_scroll[i]); + tilemap_set_scrolly(goldstar_reel2_tilemap, i, goldstar_reel2_scroll[i]); + tilemap_set_scrolly(goldstar_reel3_tilemap, i, goldstar_reel3_scroll[i]); + } + + tilemap_draw(bitmap, &am1a_visible1, goldstar_reel1_tilemap, 0, 0); + tilemap_draw(bitmap, &am1a_visible2, goldstar_reel2_tilemap, 0, 0); + tilemap_draw(bitmap, &am1a_visible3, goldstar_reel3_tilemap, 0, 0); + } + + if (cm_enable_reg &0x04) + { + // no girls + } + + if (cm_enable_reg &0x02) + { + tilemap_draw(bitmap, cliprect, goldstar_fg_tilemap, 0, 0); } - - tilemap_draw(bitmap, &am1a_visible1, goldstar_reel1_tilemap, 0, 0); - tilemap_draw(bitmap, &am1a_visible2, goldstar_reel2_tilemap, 0, 0); - tilemap_draw(bitmap, &am1a_visible3, goldstar_reel3_tilemap, 0, 0); - - tilemap_draw(bitmap, cliprect, goldstar_fg_tilemap, 0, 0); return 0; }