mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
Color table removal
This commit is contained in:
parent
039ec1cbc7
commit
778628f7b3
@ -369,7 +369,6 @@ static MACHINE_DRIVER_START( cm2v841 )
|
||||
|
||||
MDRV_GFXDECODE(cherrym2)
|
||||
MDRV_PALETTE_LENGTH(256)
|
||||
MDRV_COLORTABLE_LENGTH(256)
|
||||
|
||||
MDRV_VIDEO_START(cm2)
|
||||
MDRV_VIDEO_UPDATE(cm2)
|
||||
|
@ -285,7 +285,7 @@ static ADDRESS_MAP_START( combasc_writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0414, 0x0414) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0x0418, 0x0418) AM_WRITE(combasc_sh_irqtrigger_w)
|
||||
AM_RANGE(0x041c, 0x041c) AM_WRITE(watchdog_reset_w) /* watchdog reset? */
|
||||
AM_RANGE(0x0600, 0x06ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_le_w) AM_BASE(&paletteram)
|
||||
AM_RANGE(0x0600, 0x06ff) AM_WRITE(MWA8_RAM) AM_BASE(&paletteram)
|
||||
AM_RANGE(0x0800, 0x1fff) AM_WRITE(MWA8_RAM) /* RAM */
|
||||
AM_RANGE(0x2000, 0x3fff) AM_WRITE(combasc_video_w)
|
||||
AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_ROM) /* banked ROM area */
|
||||
@ -304,7 +304,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( combascb_writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x04ff) AM_WRITE(MWA8_RAM)
|
||||
AM_RANGE(0x0500, 0x0500) AM_WRITE(combascb_bankselect_w)
|
||||
AM_RANGE(0x0600, 0x06ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_le_w) AM_BASE(&paletteram)
|
||||
AM_RANGE(0x0600, 0x06ff) AM_WRITE(MWA8_RAM) AM_BASE(&paletteram)
|
||||
AM_RANGE(0x0800, 0x1fff) AM_WRITE(MWA8_RAM)
|
||||
AM_RANGE(0x2000, 0x3fff) AM_WRITE(combasc_video_w)
|
||||
AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_BANK1) /* banked ROM/RAM area */
|
||||
@ -680,8 +680,7 @@ static MACHINE_DRIVER_START( combasc )
|
||||
MDRV_SCREEN_SIZE(32*8, 32*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MDRV_GFXDECODE(combasc)
|
||||
MDRV_PALETTE_LENGTH(128)
|
||||
MDRV_COLORTABLE_LENGTH(8*16*16)
|
||||
MDRV_PALETTE_LENGTH(8*16*16)
|
||||
|
||||
MDRV_PALETTE_INIT(combasc)
|
||||
MDRV_VIDEO_START(combasc)
|
||||
@ -723,8 +722,7 @@ static MACHINE_DRIVER_START( combascb )
|
||||
MDRV_SCREEN_SIZE(32*8, 32*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MDRV_GFXDECODE(combascb)
|
||||
MDRV_PALETTE_LENGTH(128)
|
||||
MDRV_COLORTABLE_LENGTH(8*16*16)
|
||||
MDRV_PALETTE_LENGTH(8*16*16)
|
||||
|
||||
MDRV_PALETTE_INIT(combascb)
|
||||
MDRV_VIDEO_START(combascb)
|
||||
|
@ -88,7 +88,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x001c, 0x001c) AM_WRITE(cpu_sound_command_w)
|
||||
AM_RANGE(0x001e, 0x001e) AM_WRITE(MWA8_NOP) /* ? */
|
||||
AM_RANGE(0x0060, 0x0067) AM_WRITE(contra_K007121_ctrl_1_w)
|
||||
AM_RANGE(0x0c00, 0x0cff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_le_w) AM_BASE(&paletteram)
|
||||
AM_RANGE(0x0c00, 0x0cff) AM_WRITE(MWA8_RAM) AM_BASE(&paletteram)
|
||||
AM_RANGE(0x1000, 0x1fff) AM_WRITE(MWA8_RAM)
|
||||
AM_RANGE(0x2000, 0x23ff) AM_WRITE(contra_fg_cram_w) AM_BASE(&contra_fg_cram)
|
||||
AM_RANGE(0x2400, 0x27ff) AM_WRITE(contra_fg_vram_w) AM_BASE(&contra_fg_vram)
|
||||
@ -265,8 +265,7 @@ static MACHINE_DRIVER_START( contra )
|
||||
MDRV_SCREEN_SIZE(37*8, 32*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1)
|
||||
MDRV_GFXDECODE(contra)
|
||||
MDRV_PALETTE_LENGTH(128)
|
||||
MDRV_COLORTABLE_LENGTH(2*8*16*16)
|
||||
MDRV_PALETTE_LENGTH(2*8*16*16)
|
||||
|
||||
MDRV_PALETTE_INIT(contra)
|
||||
MDRV_VIDEO_START(contra)
|
||||
|
@ -112,7 +112,7 @@ static ADDRESS_MAP_START( fastlane_writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0d00, 0x0d0d) AM_WRITE(fastlane_K007232_write_port_0_w) /* 007232 registers (chip 1) */
|
||||
AM_RANGE(0x0e00, 0x0e0d) AM_WRITE(fastlane_K007232_write_port_1_w) /* 007232 registers (chip 2) */
|
||||
AM_RANGE(0x0f00, 0x0f1f) AM_WRITE(K051733_w) /* 051733 (protection) */
|
||||
AM_RANGE(0x1000, 0x17ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram)/* palette RAM */
|
||||
AM_RANGE(0x1000, 0x17ff) AM_WRITE(MWA8_RAM) AM_BASE(&paletteram)/* palette RAM */
|
||||
AM_RANGE(0x1800, 0x1fff) AM_WRITE(MWA8_RAM) /* Work RAM */
|
||||
AM_RANGE(0x2000, 0x27ff) AM_WRITE(fastlane_vram1_w) AM_BASE(&fastlane_videoram1)
|
||||
AM_RANGE(0x2800, 0x2fff) AM_WRITE(fastlane_vram2_w) AM_BASE(&fastlane_videoram2)
|
||||
@ -290,8 +290,7 @@ static MACHINE_DRIVER_START( fastlane )
|
||||
MDRV_SCREEN_SIZE(37*8, 32*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1)
|
||||
MDRV_GFXDECODE(fastlane)
|
||||
MDRV_PALETTE_LENGTH(1024)
|
||||
MDRV_COLORTABLE_LENGTH(1024*16)
|
||||
MDRV_PALETTE_LENGTH(1024*16)
|
||||
|
||||
MDRV_PALETTE_INIT(fastlane)
|
||||
MDRV_VIDEO_START(fastlane)
|
||||
|
@ -76,7 +76,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x040c, 0x040c) AM_WRITE(watchdog_reset_w)
|
||||
AM_RANGE(0x0410, 0x0410) AM_WRITE(hcastle_coin_w)
|
||||
AM_RANGE(0x0418, 0x0418) AM_WRITE(hcastle_gfxbank_w)
|
||||
AM_RANGE(0x0600, 0x06ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram)
|
||||
AM_RANGE(0x0600, 0x06ff) AM_WRITE(MWA8_RAM) AM_BASE(&paletteram)
|
||||
AM_RANGE(0x0700, 0x1fff) AM_WRITE(MWA8_RAM)
|
||||
AM_RANGE(0x2000, 0x2fff) AM_WRITE(hcastle_pf1_video_w) AM_BASE(&hcastle_pf1_videoram)
|
||||
AM_RANGE(0x3000, 0x3fff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
|
||||
@ -284,8 +284,7 @@ static MACHINE_DRIVER_START( hcastle )
|
||||
MDRV_SCREEN_SIZE(32*8, 32*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MDRV_GFXDECODE(hcastle)
|
||||
MDRV_PALETTE_LENGTH(128)
|
||||
MDRV_COLORTABLE_LENGTH(2*8*16*16)
|
||||
MDRV_PALETTE_LENGTH(2*8*16*16)
|
||||
|
||||
MDRV_PALETTE_INIT(hcastle)
|
||||
MDRV_VIDEO_START(hcastle)
|
||||
|
@ -80,7 +80,7 @@ static ADDRESS_MAP_START( labyrunr_writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0c00, 0x0c00) AM_WRITE(labyrunr_bankswitch_w)
|
||||
AM_RANGE(0x0d00, 0x0d1f) AM_WRITE(K051733_w) /* 051733 (protection) */
|
||||
AM_RANGE(0x0e00, 0x0e00) AM_WRITE(watchdog_reset_w)
|
||||
AM_RANGE(0x1000, 0x10ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram)
|
||||
AM_RANGE(0x1000, 0x10ff) AM_WRITE(MWA8_RAM) AM_BASE(&paletteram)
|
||||
AM_RANGE(0x1800, 0x1fff) AM_WRITE(MWA8_RAM)
|
||||
AM_RANGE(0x2000, 0x2fff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) /* Sprite RAM */
|
||||
AM_RANGE(0x3000, 0x37ff) AM_WRITE(labyrunr_vram1_w) AM_BASE(&labyrunr_videoram1)
|
||||
@ -252,8 +252,7 @@ static MACHINE_DRIVER_START( labyrunr )
|
||||
MDRV_SCREEN_SIZE(37*8, 32*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1)
|
||||
MDRV_GFXDECODE(labyrunr)
|
||||
MDRV_PALETTE_LENGTH(128)
|
||||
MDRV_COLORTABLE_LENGTH(2*8*16*16)
|
||||
MDRV_PALETTE_LENGTH(2*8*16*16)
|
||||
|
||||
MDRV_PALETTE_INIT(labyrunr)
|
||||
MDRV_VIDEO_START(labyrunr)
|
||||
|
@ -28,11 +28,18 @@ static UINT8 *combasc_scrollram;
|
||||
|
||||
PALETTE_INIT( combasc )
|
||||
{
|
||||
int i,pal,clut = 0;
|
||||
for( pal=0; pal<8; pal++ )
|
||||
int pal;
|
||||
|
||||
/* allocate the colortable */
|
||||
machine->colortable = colortable_alloc(machine, 0x80);
|
||||
|
||||
for (pal = 0; pal < 8; pal++)
|
||||
{
|
||||
switch( pal )
|
||||
int i, clut;
|
||||
|
||||
switch (pal)
|
||||
{
|
||||
default:
|
||||
case 0: /* other sprites */
|
||||
case 2: /* other sprites(alt) */
|
||||
clut = 1; /* 0 is wrong for Firing Range III targets */
|
||||
@ -54,36 +61,65 @@ PALETTE_INIT( combasc )
|
||||
break;
|
||||
}
|
||||
|
||||
for( i=0; i<256; i++ )
|
||||
for (i = 0; i < 0x100; i++)
|
||||
{
|
||||
if ((pal & 1) == 0) /* sprites */
|
||||
{
|
||||
if (color_prom[256 * clut + i] == 0)
|
||||
*(colortable++) = 0;
|
||||
else
|
||||
*(colortable++) = 16 * pal + color_prom[256 * clut + i];
|
||||
}
|
||||
else /* chars */
|
||||
*(colortable++) = 16 * pal + color_prom[256 * clut + i];
|
||||
UINT8 ctabentry;
|
||||
|
||||
if (((pal & 0x01) == 0) && (color_prom[(clut << 8) | i] == 0))
|
||||
ctabentry = 0;
|
||||
else
|
||||
ctabentry = (pal << 4) | (color_prom[(clut << 8) | i] & 0x0f);
|
||||
|
||||
colortable_entry_set_value(machine->colortable, (pal << 8) | i, ctabentry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PALETTE_INIT( combascb )
|
||||
{
|
||||
int i,pal;
|
||||
for( pal=0; pal<8; pal++ )
|
||||
int pal;
|
||||
|
||||
/* allocate the colortable */
|
||||
machine->colortable = colortable_alloc(machine, 0x80);
|
||||
|
||||
for (pal = 0; pal < 8; pal++)
|
||||
{
|
||||
for( i=0; i<256; i++ )
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 0x100; i++)
|
||||
{
|
||||
if ((pal & 1) == 0) /* sprites */
|
||||
*(colortable++) = 16 * pal + (color_prom[i] ^ 0x0f);
|
||||
else /* chars */
|
||||
*(colortable++) = 16 * pal + (i & 0x0f); /* no lookup? */
|
||||
UINT8 ctabentry;
|
||||
|
||||
if ((pal & 1) == 0)
|
||||
/* sprites */
|
||||
ctabentry = (pal << 4) | (~color_prom[i] & 0x0f);
|
||||
else
|
||||
/* chars - no lookup? */
|
||||
ctabentry = (pal << 4) | (i & 0x0f); /* no lookup? */
|
||||
|
||||
colortable_entry_set_value(machine->colortable, (pal << 8) | i, ctabentry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void set_pens(running_machine *machine)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0x00; i < 0x100; i += 2)
|
||||
{
|
||||
UINT16 data = paletteram[i] | (paletteram[i | 1] << 8);
|
||||
|
||||
rgb_t color = MAKE_RGB(pal5bit(data >> 0), pal5bit(data >> 5), pal5bit(data >> 10));
|
||||
|
||||
colortable_palette_set_color(machine->colortable, i >> 1, color);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Callbacks for the TileMap code
|
||||
@ -453,6 +489,7 @@ VIDEO_UPDATE( combasc )
|
||||
{
|
||||
int i;
|
||||
|
||||
set_pens(machine);
|
||||
|
||||
if (K007121_ctrlram[0][0x01] & 0x02)
|
||||
{
|
||||
@ -612,6 +649,8 @@ VIDEO_UPDATE( combascb )
|
||||
{
|
||||
int i;
|
||||
|
||||
set_pens(machine);
|
||||
|
||||
for( i=0; i<32; i++ )
|
||||
{
|
||||
tilemap_set_scrollx( bg_tilemap[0],i, combasc_io_ram[0x040+i]+5 );
|
||||
|
@ -30,30 +30,51 @@ static rectangle bg_clip, fg_clip, tx_clip;
|
||||
|
||||
PALETTE_INIT( contra )
|
||||
{
|
||||
int i,chip,pal,clut;
|
||||
int chip;
|
||||
|
||||
for (chip = 0;chip < 2;chip++)
|
||||
/* allocate the colortable */
|
||||
machine->colortable = colortable_alloc(machine, 0x80);
|
||||
|
||||
for (chip = 0; chip < 2; chip++)
|
||||
{
|
||||
for (pal = 0;pal < 8;pal++)
|
||||
int pal;
|
||||
|
||||
for (pal = 0; pal < 8; pal++)
|
||||
{
|
||||
clut = (pal & 1) + 2 * chip;
|
||||
for (i = 0;i < 256;i++)
|
||||
int i;
|
||||
int clut = (chip << 1) | (pal & 1);
|
||||
|
||||
for (i = 0; i < 0x100; i++)
|
||||
{
|
||||
if ((pal & 1) == 0) /* sprites */
|
||||
{
|
||||
if (color_prom[256 * clut + i] == 0)
|
||||
*(colortable++) = 0;
|
||||
else
|
||||
*(colortable++) = 16 * pal + color_prom[256 * clut + i];
|
||||
}
|
||||
UINT8 ctabentry;
|
||||
|
||||
if (((pal & 0x01) == 0) && (color_prom[(clut << 8) | i] == 0))
|
||||
ctabentry = 0;
|
||||
else
|
||||
*(colortable++) = 16 * pal + color_prom[256 * clut + i];
|
||||
ctabentry = (pal << 4) | (color_prom[(clut << 8) | i] & 0x0f);
|
||||
|
||||
colortable_entry_set_value(machine->colortable, (chip << 11) | (pal << 8) | i, ctabentry);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void set_pens(running_machine *machine)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0x00; i < 0x100; i += 2)
|
||||
{
|
||||
UINT16 data = paletteram[i] | (paletteram[i | 1] << 8);
|
||||
|
||||
rgb_t color = MAKE_RGB(pal5bit(data >> 0), pal5bit(data >> 5), pal5bit(data >> 10));
|
||||
|
||||
colortable_palette_set_color(machine->colortable, i >> 1, color);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
@ -267,6 +288,8 @@ VIDEO_UPDATE( contra )
|
||||
sect_rect(&fg_finalclip, cliprect);
|
||||
sect_rect(&tx_finalclip, cliprect);
|
||||
|
||||
set_pens(machine);
|
||||
|
||||
tilemap_set_scrollx( fg_tilemap,0, K007121_ctrlram[0][0x00] - 40 );
|
||||
tilemap_set_scrolly( fg_tilemap,0, K007121_ctrlram[0][0x02] );
|
||||
tilemap_set_scrollx( bg_tilemap,0, K007121_ctrlram[1][0x00] - 40 );
|
||||
|
@ -8,17 +8,40 @@ static rectangle clip0, clip1;
|
||||
|
||||
PALETTE_INIT( fastlane )
|
||||
{
|
||||
int pal,col;
|
||||
int pal;
|
||||
|
||||
for (pal = 0;pal < 16;pal++)
|
||||
/* allocate the colortable */
|
||||
machine->colortable = colortable_alloc(machine, 0x400);
|
||||
|
||||
for (pal = 0; pal < 0x10; pal++)
|
||||
{
|
||||
for (col = 0;col < 1024;col++)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 0x400; i++)
|
||||
{
|
||||
*(colortable++) = (col & ~0x0f) | color_prom[16 * pal + (col & 0x0f)];
|
||||
UINT8 ctabentry = (i & 0x3f0) | color_prom[(pal << 4) | (i & 0x0f)];
|
||||
colortable_entry_set_value(machine->colortable, (pal << 10) | i, ctabentry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void set_pens(running_machine *machine)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0x00; i < 0x800; i += 2)
|
||||
{
|
||||
UINT16 data = paletteram[i | 1] | (paletteram[i] << 8);
|
||||
|
||||
rgb_t color = MAKE_RGB(pal5bit(data >> 0), pal5bit(data >> 5), pal5bit(data >> 10));
|
||||
|
||||
colortable_palette_set_color(machine->colortable, i >> 1, color);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Callbacks for the TileMap code
|
||||
@ -130,6 +153,8 @@ VIDEO_UPDATE( fastlane )
|
||||
sect_rect(&finalclip0, cliprect);
|
||||
sect_rect(&finalclip1, cliprect);
|
||||
|
||||
set_pens(machine);
|
||||
|
||||
/* set scroll registers */
|
||||
xoffs = K007121_ctrlram[0][0x00];
|
||||
for( i=0; i<32; i++ ){
|
||||
|
@ -16,30 +16,50 @@ static int pf2_bankbase,pf1_bankbase;
|
||||
|
||||
PALETTE_INIT( hcastle )
|
||||
{
|
||||
int i,chip,pal,clut;
|
||||
int chip;
|
||||
|
||||
for (chip = 0;chip < 2;chip++)
|
||||
/* allocate the colortable */
|
||||
machine->colortable = colortable_alloc(machine, 0x80);
|
||||
|
||||
for (chip = 0; chip < 2; chip++)
|
||||
{
|
||||
for (pal = 0;pal < 8;pal++)
|
||||
int pal;
|
||||
|
||||
for (pal = 0; pal < 8; pal++)
|
||||
{
|
||||
clut = (pal & 1) + 2 * chip;
|
||||
for (i = 0;i < 256;i++)
|
||||
int i;
|
||||
int clut = (chip << 1) | (pal & 1);
|
||||
|
||||
for (i = 0; i < 0x100; i++)
|
||||
{
|
||||
if ((pal & 1) == 0) /* sprites */
|
||||
{
|
||||
if (color_prom[256 * clut + i] == 0)
|
||||
*(colortable++) = 0;
|
||||
else
|
||||
*(colortable++) = 16 * pal + color_prom[256 * clut + i];
|
||||
}
|
||||
UINT8 ctabentry;
|
||||
|
||||
if (((pal & 0x01) == 0) && (color_prom[(clut << 8) | i] == 0))
|
||||
ctabentry = 0;
|
||||
else
|
||||
*(colortable++) = 16 * pal + color_prom[256 * clut + i];
|
||||
ctabentry = (pal << 4) | (color_prom[(clut << 8) | i] & 0x0f);
|
||||
|
||||
colortable_entry_set_value(machine->colortable, (chip << 11) | (pal << 8) | i, ctabentry);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void set_pens(running_machine *machine)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0x00; i < 0x100; i += 2)
|
||||
{
|
||||
UINT16 data = paletteram[i | 1] | (paletteram[i] << 8);
|
||||
|
||||
rgb_t color = MAKE_RGB(pal5bit(data >> 0), pal5bit(data >> 5), pal5bit(data >> 10));
|
||||
|
||||
colortable_palette_set_color(machine->colortable, i >> 1, color);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
@ -190,6 +210,7 @@ VIDEO_UPDATE( hcastle )
|
||||
{
|
||||
static int old_pf1,old_pf2;
|
||||
|
||||
set_pens(machine);
|
||||
|
||||
pf1_bankbase = 0x0000;
|
||||
pf2_bankbase = 0x4000 * ((gfx_bank & 2) >> 1);
|
||||
|
@ -1351,7 +1351,7 @@ if (input_code_pressed(KEYCODE_D))
|
||||
offs[2] = 0x02;
|
||||
offs[3] = 0x03;
|
||||
offs[4] = 0x04;
|
||||
trans = TRANSPARENCY_COLOR;
|
||||
trans = TRANSPARENCY_PENS;
|
||||
/* when using priority buffer, draw front to back */
|
||||
if (pri_mask != -1)
|
||||
{
|
||||
@ -1371,6 +1371,7 @@ if (input_code_pressed(KEYCODE_D))
|
||||
int yflip = source[offs[4]] & 0x20; /* flip y */
|
||||
int color = base_color + ((source[offs[1]] & 0xf0) >> 4);
|
||||
int width,height;
|
||||
int transparent_color;
|
||||
static const int x_offset[4] = {0x0,0x1,0x4,0x5};
|
||||
static const int y_offset[4] = {0x0,0x2,0x8,0xa};
|
||||
int x,y, ex, ey;
|
||||
@ -1382,6 +1383,11 @@ if (input_code_pressed(KEYCODE_D))
|
||||
number = number << 2;
|
||||
number += (sprite_bank >> 2) & 3;
|
||||
|
||||
if (trans == TRANSPARENCY_PEN)
|
||||
transparent_color = 0;
|
||||
else
|
||||
transparent_color = colortable_get_transpen_mask(machine->colortable, gfx, color, 0);
|
||||
|
||||
if (!is_flakatck || source[0x00]) /* Flak Attack needs this */
|
||||
{
|
||||
number += bank_base;
|
||||
@ -1413,7 +1419,7 @@ if (input_code_pressed(KEYCODE_D))
|
||||
color,
|
||||
!xflip,!yflip,
|
||||
248-(sx+x*8),248-(sy+y*8),
|
||||
cliprect,trans,0,
|
||||
cliprect,trans,transparent_color,
|
||||
pri_mask);
|
||||
else
|
||||
drawgfx(bitmap,gfx,
|
||||
@ -1421,7 +1427,7 @@ if (input_code_pressed(KEYCODE_D))
|
||||
color,
|
||||
!xflip,!yflip,
|
||||
248-(sx+x*8),248-(sy+y*8),
|
||||
cliprect,trans,0);
|
||||
cliprect,trans,transparent_color);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1431,7 +1437,7 @@ if (input_code_pressed(KEYCODE_D))
|
||||
color,
|
||||
xflip,yflip,
|
||||
global_x_offset+sx+x*8,sy+y*8,
|
||||
cliprect,trans,0,
|
||||
cliprect,trans,transparent_color,
|
||||
pri_mask);
|
||||
else
|
||||
drawgfx(bitmap,gfx,
|
||||
@ -1439,7 +1445,7 @@ if (input_code_pressed(KEYCODE_D))
|
||||
color,
|
||||
xflip,yflip,
|
||||
global_x_offset+sx+x*8,sy+y*8,
|
||||
cliprect,trans,0);
|
||||
cliprect,trans,transparent_color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,27 +8,58 @@ static rectangle clip0, clip1;
|
||||
|
||||
PALETTE_INIT( labyrunr )
|
||||
{
|
||||
int i,pal;
|
||||
int pal;
|
||||
|
||||
for (pal = 0;pal < 8;pal++)
|
||||
/* allocate the colortable */
|
||||
machine->colortable = colortable_alloc(machine, 0x80);
|
||||
|
||||
for (pal = 0; pal < 8; pal++)
|
||||
{
|
||||
if (pal & 1) /* chars, no lookup table */
|
||||
/* chars, no lookup table */
|
||||
if (pal & 1)
|
||||
{
|
||||
for (i = 0;i < 256;i++)
|
||||
*(colortable++) = 16 * pal + (i & 0x0f);
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 0x100; i++)
|
||||
colortable_entry_set_value(machine->colortable, (pal << 8) | i, (pal << 4) | (i & 0x0f));
|
||||
}
|
||||
else /* sprites */
|
||||
/* sprites */
|
||||
else
|
||||
{
|
||||
for (i = 0;i < 256;i++)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 0x100; i++)
|
||||
{
|
||||
UINT8 ctabentry;
|
||||
|
||||
if (color_prom[i] == 0)
|
||||
*(colortable++) = 0;
|
||||
ctabentry = 0;
|
||||
else
|
||||
*(colortable++) = 16 * pal + color_prom[i];
|
||||
ctabentry = (pal << 4) | (color_prom[i] & 0x0f);
|
||||
|
||||
colortable_entry_set_value(machine->colortable, (pal << 8) | i, ctabentry);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void set_pens(running_machine *machine)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0x00; i < 0x100; i += 2)
|
||||
{
|
||||
UINT16 data = paletteram[i | 1] | (paletteram[i] << 8);
|
||||
|
||||
rgb_t color = MAKE_RGB(pal5bit(data >> 0), pal5bit(data >> 5), pal5bit(data >> 10));
|
||||
|
||||
colortable_palette_set_color(machine->colortable, i >> 1, color);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Callbacks for the TileMap code
|
||||
@ -142,6 +173,8 @@ VIDEO_UPDATE( labyrunr )
|
||||
{
|
||||
rectangle finalclip0, finalclip1;
|
||||
|
||||
set_pens(machine);
|
||||
|
||||
fillbitmap(priority_bitmap,0,cliprect);
|
||||
fillbitmap(bitmap,get_black_pen(machine),cliprect);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user