hooked up layer enables in goldstar.c driver, fixes 'girl' in Cherry Master [David Haywood]

This commit is contained in:
davidhay 2009-03-01 23:24:20 +00:00
parent f1790fa57f
commit 8872083aeb
2 changed files with 97 additions and 48 deletions

View File

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

View File

@ -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;
}
@ -220,28 +239,37 @@ VIDEO_UPDATE( goldstar )
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,18 +280,27 @@ VIDEO_UPDATE( cmast91 )
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, &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);
}
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
}
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;
}