Added preliminary layer clearance in Puzzlet [Angelo Salese]

This commit is contained in:
Angelo Salese 2010-03-24 19:46:16 +00:00
parent c2144b58b7
commit 59e17f40c9

View File

@ -1823,6 +1823,38 @@ static WRITE16_HANDLER( puzzlet_irq_enable_w )
*state->irq_enable = data ^ 0xffff;
}
/* FIXME: algorythm not yet understood. */
static WRITE16_HANDLER( vram_0_clr_w )
{
static int i;
metro_state *state = (metro_state *)space->machine->driver_data;
// printf("0 %04x %04x\n",offset,data);
for(i=0;i<0x20/2;i++)
state->vram_0[(offset*0x10+i)/2] = 0xffff;
}
static WRITE16_HANDLER( vram_1_clr_w )
{
static int i;
metro_state *state = (metro_state *)space->machine->driver_data;
// printf("0 %04x %04x\n",offset,data);
for(i=0;i<0x20/2;i++)
state->vram_1[(offset*0x10+i)/2] = 0xffff;
}
static WRITE16_HANDLER( vram_2_clr_w )
{
static int i;
metro_state *state = (metro_state *)space->machine->driver_data;
// printf("0 %04x %04x\n",offset,data);
for(i=0;i<0x20/2;i++)
state->vram_2[(offset*0x10+i)/2] = 0xffff;
}
// H8/3007 CPU
static ADDRESS_MAP_START( puzzlet_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
@ -1842,7 +1874,9 @@ static ADDRESS_MAP_START( puzzlet_map, ADDRESS_SPACE_PROGRAM, 16 )
// AM_RANGE(0x772000, 0x773fff) AM_RAM
AM_RANGE(0x770000, 0x773fff) AM_RAM_WRITE(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x775000, 0x777fff) AM_RAM
AM_RANGE(0x775000, 0x775fff) AM_RAM_WRITE(vram_0_clr_w)
AM_RANGE(0x776000, 0x776fff) AM_RAM_WRITE(vram_1_clr_w)
AM_RANGE(0x777000, 0x777fff) AM_RAM_WRITE(vram_2_clr_w)
AM_RANGE(0x778000, 0x7787ff) AM_RAM AM_BASE_SIZE_MEMBER(metro_state, tiletable, tiletable_size) // Tiles Set
AM_RANGE(0x778800, 0x778813) AM_WRITEONLY AM_BASE_MEMBER(metro_state, videoregs) // Video Registers