Trivia Madness: Improved graphics & colors [Angelo Salese]
This commit is contained in:
parent
2ba1316646
commit
f9f9ca6f9a
@ -77,6 +77,7 @@ static WRITE8_HANDLER( trvmadns_banking_w )
|
|||||||
|
|
||||||
if((data & 0xf0) == 0xa0)
|
if((data & 0xf0) == 0xa0)
|
||||||
{
|
{
|
||||||
|
/* FIXME: selects GFX char RAM bank here */
|
||||||
}
|
}
|
||||||
else if((data & 0xf0) == 0x80 || (data & 0xf0) == 0x90)
|
else if((data & 0xf0) == 0x80 || (data & 0xf0) == 0x90)
|
||||||
{
|
{
|
||||||
@ -146,21 +147,20 @@ static WRITE8_HANDLER( trvmadns_gfxram_w )
|
|||||||
gfx_element_mark_dirty(space->machine->gfx[0], offset/16);
|
gfx_element_mark_dirty(space->machine->gfx[0], offset/16);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef UNUSED_FUNCTION
|
|
||||||
//WRONG!
|
|
||||||
static WRITE8_HANDLER( trvmadns_palette_w )
|
static WRITE8_HANDLER( trvmadns_palette_w )
|
||||||
{
|
{
|
||||||
int r, g, b;
|
int r,g,b,datax;
|
||||||
|
|
||||||
space->machine->generic.paletteram.u8[offset] = data;
|
space->machine->generic.paletteram.u8[offset] = data;
|
||||||
|
offset>>=1;
|
||||||
|
datax=space->machine->generic.paletteram.u8[offset*2+1]+256*space->machine->generic.paletteram.u8[offset*2];
|
||||||
|
|
||||||
r = space->machine->generic.paletteram.u8[offset & ~1] & 0xf;
|
b = (((datax & 0x0007)>>0) | ((datax & 0x0200)>>6)) ^ 0xf;
|
||||||
g = (space->machine->generic.paletteram.u8[offset | 1] & 0xf0) >> 4;
|
r = (((datax & 0x0038)>>3) | ((datax & 0x0400)>>7)) ^ 0xf;
|
||||||
b = space->machine->generic.paletteram.u8[offset | 1] & 0xf;
|
g = (((datax & 0x01c0)>>6) | ((datax & 0x0800)>>8)) ^ 0xf;
|
||||||
|
|
||||||
palette_set_color_rgb(space->machine, offset >> 1, pal4bit(r), pal4bit(g), pal4bit(b));
|
palette_set_color_rgb(space->machine, offset, pal4bit(r), pal4bit(g), pal4bit(b));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static WRITE8_HANDLER( w2 )
|
static WRITE8_HANDLER( w2 )
|
||||||
{
|
{
|
||||||
@ -202,8 +202,8 @@ static ADDRESS_MAP_START( cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0x7000, 0x7fff) AM_ROMBANK("bank2")
|
AM_RANGE(0x7000, 0x7fff) AM_ROMBANK("bank2")
|
||||||
AM_RANGE(0x6000, 0x7fff) AM_WRITE(trvmadns_gfxram_w) AM_BASE(&trvmadns_gfxram)
|
AM_RANGE(0x6000, 0x7fff) AM_WRITE(trvmadns_gfxram_w) AM_BASE(&trvmadns_gfxram)
|
||||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||||
AM_RANGE(0xc000, 0xc01f) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_le_w) AM_BASE_GENERIC(paletteram)
|
AM_RANGE(0xa000, 0xa7ff) AM_RAM_WRITE(trvmadns_tileram_w) AM_BASE(&trvmadns_tileram)
|
||||||
AM_RANGE(0xa000, 0xbfff) AM_RAM_WRITE(trvmadns_tileram_w) AM_BASE(&trvmadns_tileram)
|
AM_RANGE(0xc000, 0xc01f) AM_RAM_WRITE(trvmadns_palette_w) AM_BASE_GENERIC(paletteram)
|
||||||
AM_RANGE(0xe000, 0xe000) AM_WRITE(w2)//NOP
|
AM_RANGE(0xe000, 0xe000) AM_WRITE(w2)//NOP
|
||||||
AM_RANGE(0xe004, 0xe004) AM_WRITE(w3)//NOP
|
AM_RANGE(0xe004, 0xe004) AM_WRITE(w3)//NOP
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -251,29 +251,68 @@ static TILE_GET_INFO( get_bg_tile_info )
|
|||||||
color = (attr & 0x18) >> 3;
|
color = (attr & 0x18) >> 3;
|
||||||
flag = TILE_FLIPXY((attr & 0x06) >> 1);
|
flag = TILE_FLIPXY((attr & 0x06) >> 1);
|
||||||
|
|
||||||
if((~attr & 0x20) || (~attr & 0x40))
|
// if((~attr & 0x20) || (~attr & 0x40))
|
||||||
flag |= TILE_FORCE_LAYER0;
|
// flag |= TILE_FORCE_LAYER0;
|
||||||
|
|
||||||
//0x20? tile transparent pen 1?
|
//0x20? tile transparent pen 1?
|
||||||
//0x40? tile transparent pen 1?
|
//0x40? tile transparent pen 1?
|
||||||
|
|
||||||
SET_TILE_INFO(0,tile,color,flag);
|
SET_TILE_INFO(0,tile,color,flag);
|
||||||
|
|
||||||
|
tileinfo->category = (attr & 0x20)>>5;
|
||||||
}
|
}
|
||||||
|
|
||||||
static VIDEO_START( trvmadns )
|
static VIDEO_START( trvmadns )
|
||||||
{
|
{
|
||||||
bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan_rows, 8, 8, 32, 32);
|
bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan_rows, 8, 8, 32, 32);
|
||||||
|
|
||||||
tilemap_set_transparent_pen(bg_tilemap,1);
|
// tilemap_set_transparent_pen(fg_tilemap,1);
|
||||||
|
|
||||||
gfx_element_set_source(machine->gfx[0], trvmadns_gfxram);
|
gfx_element_set_source(machine->gfx[0], trvmadns_gfxram);
|
||||||
}
|
}
|
||||||
|
|
||||||
static VIDEO_UPDATE( trvmadns )
|
static VIDEO_UPDATE( trvmadns )
|
||||||
{
|
{
|
||||||
|
int x,y,count;
|
||||||
|
const gfx_element *gfx = screen->machine->gfx[0];
|
||||||
|
|
||||||
bitmap_fill(bitmap,cliprect,0xd);
|
bitmap_fill(bitmap,cliprect,0xd);
|
||||||
|
|
||||||
tilemap_draw(bitmap,cliprect,bg_tilemap,0,0);
|
count = 0;
|
||||||
|
|
||||||
|
for (y=0;y<32;y++)
|
||||||
|
{
|
||||||
|
for (x=0;x<32;x++)
|
||||||
|
{
|
||||||
|
int attr = trvmadns_tileram[count*2+0];
|
||||||
|
int tile = trvmadns_tileram[count*2+1] | ((attr & 0x01) << 8);
|
||||||
|
int color = (attr & 0x18) >> 3;
|
||||||
|
int flipx = attr & 4;
|
||||||
|
int flipy = attr & 2;
|
||||||
|
|
||||||
|
if(!(attr & 0x20))
|
||||||
|
drawgfx_opaque(bitmap,cliprect,gfx,tile,color,flipx,flipy,(x*8),(y*8));
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
count = 0;
|
||||||
|
|
||||||
|
for (y=0;y<32;y++)
|
||||||
|
{
|
||||||
|
for (x=0;x<32;x++)
|
||||||
|
{
|
||||||
|
int attr = trvmadns_tileram[count*2+0];
|
||||||
|
int tile = trvmadns_tileram[count*2+1] | ((attr & 0x01) << 8);
|
||||||
|
int color = (attr & 0x18) >> 3;
|
||||||
|
int flipx = attr & 4;
|
||||||
|
int flipy = attr & 2;
|
||||||
|
|
||||||
|
if(attr & 0x20)
|
||||||
|
drawgfx_transpen(bitmap,cliprect,gfx,tile,color,flipx,flipy,(x*8),(y*8),1);
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user