diff --git a/src/mame/drivers/findout.c b/src/mame/drivers/findout.c index d4ea648825d..a2554b077f5 100644 --- a/src/mame/drivers/findout.c +++ b/src/mame/drivers/findout.c @@ -20,10 +20,16 @@ replaced by a 6th button to start games. This is a feature of the PCB for privat static UINT8 drawctrl[3]; +static UINT8 drawctrl_bgcolor = 0; static WRITE8_HANDLER( findout_drawctrl_w ) { drawctrl[offset] = data; + + if (offset==2 && drawctrl[1]==0xff) + { + drawctrl_bgcolor = drawctrl[0]; + } } static WRITE8_HANDLER( findout_bitmap_w ) @@ -38,7 +44,7 @@ static WRITE8_HANDLER( findout_bitmap_w ) prevoffset = offset; fg = drawctrl[0] & 7; - bg = 2; + bg = drawctrl_bgcolor & 7; mask = 0xff;//drawctrl[2]; bits = drawctrl[1]; @@ -46,6 +52,7 @@ static WRITE8_HANDLER( findout_bitmap_w ) sy = offset / 64; sy = (sy + yadd) & 0xff; + logerror("bitmap_w: offset = %04x, x = %d, y = %d\n", offset, sx, sy ); //if (mask != bits) // popmessage("color %02x bits %02x mask %02x\n",fg,bits,mask); diff --git a/src/mame/drivers/getrivia.c b/src/mame/drivers/getrivia.c index 816e0b5aba7..7e4573c0d9b 100644 --- a/src/mame/drivers/getrivia.c +++ b/src/mame/drivers/getrivia.c @@ -84,7 +84,18 @@ NOTE: Series 8 and above are version 1.03a (currently in findout.c) #include "machine/ticket.h" #include "sound/dac.h" -static UINT8 *drawctrl; +static UINT8 drawctrl[3]; +static UINT8 drawctrl_bgcolor = 0; + +static WRITE8_HANDLER( getrivia_drawctrl_w ) +{ + drawctrl[offset] = data; + + if (offset==2 && drawctrl[1]==0xff) + { + drawctrl_bgcolor = drawctrl[0]; + } +} static WRITE8_HANDLER( getrivia_bitmap_w ) { @@ -98,7 +109,7 @@ static WRITE8_HANDLER( getrivia_bitmap_w ) prevoffset = offset; fg = drawctrl[0] & 7; - bg = 2; + bg = drawctrl_bgcolor & 7; mask = 0xff;//drawctrl[2]; bits = drawctrl[1]; @@ -318,7 +329,7 @@ static ADDRESS_MAP_START( getrivia_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x609b, 0x609b) AM_WRITE(banksel_3_2_w) AM_RANGE(0x609d, 0x609d) AM_WRITE(banksel_2_2_w) AM_RANGE(0x609e, 0x609e) AM_WRITE(banksel_1_2_w) - AM_RANGE(0x8000, 0x8002) AM_WRITE(SMH_RAM) AM_BASE(&drawctrl) + AM_RANGE(0x8000, 0x8002) AM_WRITE(getrivia_drawctrl_w) AM_RANGE(0x8000, 0x9fff) AM_ROM /* space for diagnostic ROM? */ AM_RANGE(0xa000, 0xbfff) AM_ROM AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(getrivia_bitmap_w) AM_BASE(&videoram) @@ -334,7 +345,7 @@ static ADDRESS_MAP_START( gselect_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x4403, 0x4403) AM_WRITE(banksel_2_2_w) AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) - AM_RANGE(0x8000, 0x8002) AM_WRITE(SMH_RAM) AM_BASE(&drawctrl) + AM_RANGE(0x8000, 0x8002) AM_WRITE(getrivia_drawctrl_w) AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(getrivia_bitmap_w) AM_BASE(&videoram) ADDRESS_MAP_END @@ -350,7 +361,7 @@ static ADDRESS_MAP_START( amuse_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x607b, 0x607b) AM_WRITE(banksel_3_1_w) AM_RANGE(0x607d, 0x607d) AM_WRITE(banksel_2_1_w) AM_RANGE(0x607e, 0x607e) AM_WRITE(banksel_1_1_w) - AM_RANGE(0x8000, 0x8002) AM_WRITE(SMH_RAM) AM_BASE(&drawctrl) + AM_RANGE(0x8000, 0x8002) AM_WRITE(getrivia_drawctrl_w) AM_RANGE(0x8000, 0xbfff) AM_ROM AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(getrivia_bitmap_w) AM_BASE(&videoram) ADDRESS_MAP_END @@ -366,7 +377,7 @@ static ADDRESS_MAP_START( gepoker_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x60fb, 0x60fb) AM_WRITE(banksel_2_1_w) AM_RANGE(0x60fd, 0x60fd) AM_WRITE(banksel_1_2_w) AM_RANGE(0x60fe, 0x60fe) AM_WRITE(banksel_1_1_w) - AM_RANGE(0x8000, 0x8002) AM_WRITE(SMH_RAM) AM_BASE(&drawctrl) + AM_RANGE(0x8000, 0x8002) AM_WRITE(getrivia_drawctrl_w) AM_RANGE(0x8000, 0xbfff) AM_ROM /* space for diagnostic ROM? */ AM_RANGE(0xe000, 0xffff) AM_ROM AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(getrivia_bitmap_w) AM_BASE(&videoram) @@ -383,7 +394,7 @@ static ADDRESS_MAP_START( amuse1_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) AM_RANGE(0x5800, 0x5fff) AM_ROM - AM_RANGE(0x8000, 0x8002) AM_WRITE(SMH_RAM) AM_BASE(&drawctrl) + AM_RANGE(0x8000, 0x8002) AM_WRITE(getrivia_drawctrl_w) AM_RANGE(0x8000, 0xbfff) AM_ROM /* space for diagnostic ROM? */ AM_RANGE(0xe000, 0xffff) AM_ROM AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(getrivia_bitmap_w) AM_BASE(&videoram) @@ -396,7 +407,7 @@ static ADDRESS_MAP_START( suprpokr_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) AM_RANGE(0x6200, 0x6200) AM_WRITE(signature2_w) AM_RANGE(0x6400, 0x6400) AM_READ(signature_r) - AM_RANGE(0x8000, 0x8002) AM_WRITE(SMH_RAM) AM_BASE(&drawctrl) + AM_RANGE(0x8000, 0x8002) AM_WRITE(getrivia_drawctrl_w) AM_RANGE(0x8000, 0xbfff) AM_ROM /* space for diagnostic ROM? */ AM_RANGE(0xe000, 0xffff) AM_ROM AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(getrivia_bitmap_w) AM_BASE(&videoram) @@ -410,7 +421,7 @@ static ADDRESS_MAP_START( geimulti_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x5800, 0x5fff) AM_ROM AM_RANGE(0x5a00, 0x5cff) AM_WRITE(geimulti_bank_w) AM_RANGE(0x6000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x8002) AM_WRITE(SMH_RAM) AM_BASE(&drawctrl) + AM_RANGE(0x8000, 0x8002) AM_WRITE(getrivia_drawctrl_w) AM_RANGE(0x8000, 0xffff) AM_ROMBANK(1) AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(getrivia_bitmap_w) AM_BASE(&videoram) ADDRESS_MAP_END @@ -424,7 +435,7 @@ static ADDRESS_MAP_START( sprtauth_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x5800, 0x5800) AM_WRITE(signature_w) AM_RANGE(0x5a00, 0x5cff) AM_WRITE(geimulti_bank_w) AM_RANGE(0x6000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x8002) AM_WRITE(SMH_RAM) AM_BASE(&drawctrl) + AM_RANGE(0x8000, 0x8002) AM_WRITE(getrivia_drawctrl_w) AM_RANGE(0x8000, 0xffff) AM_ROMBANK(1) AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(getrivia_bitmap_w) AM_BASE(&videoram) ADDRESS_MAP_END