This commit is contained in:
Angelo Salese 2011-04-04 19:43:39 +00:00
parent 8993443d51
commit 5eb7122294
3 changed files with 21 additions and 24 deletions

View File

@ -203,7 +203,7 @@ static ADDRESS_MAP_START( f3_map, AS_PROGRAM, 32 )
AM_RANGE(0x4c0000, 0x4c0003) AM_WRITE16(f3_unk_w,0xffffffff)
AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_BASE_SIZE_MEMBER(taito_f3_state, m_spriteram, m_spriteram_size)
AM_RANGE(0x610000, 0x61bfff) AM_RAM_WRITE(f3_pf_data_w) AM_BASE_MEMBER(taito_f3_state, m_f3_pf_data)
AM_RANGE(0x61c000, 0x61dfff) AM_RAM_WRITE(f3_videoram_w) AM_BASE_MEMBER(taito_f3_state, m_videoram)
AM_RANGE(0x61c000, 0x61dfff) AM_READWRITE16(f3_videoram_r,f3_videoram_w,0xffffffff) AM_BASE_MEMBER(taito_f3_state, m_videoram)
AM_RANGE(0x61e000, 0x61ffff) AM_READWRITE16(f3_vram_r,f3_vram_w,0xffffffff) AM_BASE_MEMBER(taito_f3_state, m_f3_vram)
AM_RANGE(0x620000, 0x62ffff) AM_RAM_WRITE(f3_lineram_w) AM_BASE_MEMBER(taito_f3_state, m_f3_line_ram)
AM_RANGE(0x630000, 0x63ffff) AM_READWRITE16(f3_pivot_r,f3_pivot_w,0xffffffff) AM_BASE_MEMBER(taito_f3_state, m_f3_pivot_ram)

View File

@ -200,10 +200,10 @@ WRITE32_HANDLER( f3_pf_data_w );
WRITE16_HANDLER( f3_vram_w );
WRITE16_HANDLER( f3_pivot_w );
WRITE32_HANDLER( f3_lineram_w );
WRITE32_HANDLER( f3_videoram_w );
WRITE16_HANDLER( f3_videoram_w );
//READ16_HANDLER( f3_pf_data_r );
READ16_HANDLER( f3_vram_r );
READ16_HANDLER( f3_pivot_r );
//READ16_HANDLER( f3_lineram_r );
//READ16_HANDLER( f3_videoram_r );
READ16_HANDLER( f3_videoram_r );

View File

@ -447,14 +447,10 @@ static TILE_GET_INFO( get_tile_info4 )
static TILE_GET_INFO( get_tile_info_vram )
{
taito_f3_state *state = machine.driver_data<taito_f3_state>();
UINT32 *videoram = state->m_videoram;
int vram_tile;
int flags=0;
if (tile_index&1)
vram_tile = (videoram[tile_index>>1]&0xffff);
else
vram_tile = (videoram[tile_index>>1]>>16);
vram_tile = (state->m_videoram[tile_index]&0xffff);
if (vram_tile&0x0100) flags|=TILE_FLIPX;
if (vram_tile&0x8000) flags|=TILE_FLIPY;
@ -469,7 +465,6 @@ static TILE_GET_INFO( get_tile_info_vram )
static TILE_GET_INFO( get_tile_info_pixel )
{
taito_f3_state *state = machine.driver_data<taito_f3_state>();
UINT32 *videoram = state->m_videoram;
int vram_tile,col_off;
int flags=0;
int y_offs=(state->m_f3_control_1[5]&0x1ff);
@ -481,10 +476,7 @@ static TILE_GET_INFO( get_tile_info_pixel )
else
col_off=((tile_index%32)*0x40)+((tile_index&0xfe0)>>5);
if (col_off&1)
vram_tile = (videoram[col_off>>1]&0xffff);
else
vram_tile = (videoram[col_off>>1]>>16);
vram_tile = (state->m_videoram[col_off]&0xffff);
if (vram_tile&0x0100) flags|=TILE_FLIPX;
if (vram_tile&0x8000) flags|=TILE_FLIPY;
@ -721,19 +713,24 @@ WRITE16_HANDLER( f3_control_1_w )
COMBINE_DATA(&state->m_f3_control_1[offset]);
}
WRITE32_HANDLER( f3_videoram_w )
READ16_HANDLER( f3_videoram_r )
{
taito_f3_state *state = space->machine().driver_data<taito_f3_state>();
return state->m_videoram[offset];
}
WRITE16_HANDLER( f3_videoram_w )
{
taito_f3_state *state = space->machine().driver_data<taito_f3_state>();
UINT32 *videoram = state->m_videoram;
int tile,col_off;
COMBINE_DATA(&videoram[offset]);
COMBINE_DATA(&state->m_videoram[offset]);
tilemap_mark_tile_dirty(state->m_vram_layer,offset<<1);
tilemap_mark_tile_dirty(state->m_vram_layer,(offset<<1)+1);
tilemap_mark_tile_dirty(state->m_vram_layer,offset);
tilemap_mark_tile_dirty(state->m_vram_layer,offset+1);
if (offset>0x3ff) offset-=0x400;
if (offset>0x7ff) offset-=0x800;
tile=offset<<1;
tile=offset;
col_off=((tile&0x3f)*32)+((tile&0xfc0)>>6);
tilemap_mark_tile_dirty(state->m_pixel_layer,col_off);