mirror of
https://github.com/holub/mame
synced 2025-05-23 22:20:01 +03:00
hooked up layer enables in goldstar.c driver, fixes 'girl' in Cherry Master [David Haywood]
This commit is contained in:
parent
f1790fa57f
commit
8872083aeb
@ -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 )
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user