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(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(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(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(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(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) 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_vram_w );
WRITE16_HANDLER( f3_pivot_w ); WRITE16_HANDLER( f3_pivot_w );
WRITE32_HANDLER( f3_lineram_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_pf_data_r );
READ16_HANDLER( f3_vram_r ); READ16_HANDLER( f3_vram_r );
READ16_HANDLER( f3_pivot_r ); READ16_HANDLER( f3_pivot_r );
//READ16_HANDLER( f3_lineram_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 ) static TILE_GET_INFO( get_tile_info_vram )
{ {
taito_f3_state *state = machine.driver_data<taito_f3_state>(); taito_f3_state *state = machine.driver_data<taito_f3_state>();
UINT32 *videoram = state->m_videoram;
int vram_tile; int vram_tile;
int flags=0; int flags=0;
if (tile_index&1) vram_tile = (state->m_videoram[tile_index]&0xffff);
vram_tile = (videoram[tile_index>>1]&0xffff);
else
vram_tile = (videoram[tile_index>>1]>>16);
if (vram_tile&0x0100) flags|=TILE_FLIPX; if (vram_tile&0x0100) flags|=TILE_FLIPX;
if (vram_tile&0x8000) flags|=TILE_FLIPY; 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 ) static TILE_GET_INFO( get_tile_info_pixel )
{ {
taito_f3_state *state = machine.driver_data<taito_f3_state>(); taito_f3_state *state = machine.driver_data<taito_f3_state>();
UINT32 *videoram = state->m_videoram;
int vram_tile,col_off; int vram_tile,col_off;
int flags=0; int flags=0;
int y_offs=(state->m_f3_control_1[5]&0x1ff); int y_offs=(state->m_f3_control_1[5]&0x1ff);
@ -481,10 +476,7 @@ static TILE_GET_INFO( get_tile_info_pixel )
else else
col_off=((tile_index%32)*0x40)+((tile_index&0xfe0)>>5); col_off=((tile_index%32)*0x40)+((tile_index&0xfe0)>>5);
if (col_off&1) vram_tile = (state->m_videoram[col_off]&0xffff);
vram_tile = (videoram[col_off>>1]&0xffff);
else
vram_tile = (videoram[col_off>>1]>>16);
if (vram_tile&0x0100) flags|=TILE_FLIPX; if (vram_tile&0x0100) flags|=TILE_FLIPX;
if (vram_tile&0x8000) flags|=TILE_FLIPY; 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]); 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>(); taito_f3_state *state = space->machine().driver_data<taito_f3_state>();
UINT32 *videoram = state->m_videoram;
int tile,col_off; 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);
tilemap_mark_tile_dirty(state->m_vram_layer,(offset<<1)+1); 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); col_off=((tile&0x3f)*32)+((tile&0xfc0)>>6);
tilemap_mark_tile_dirty(state->m_pixel_layer,col_off); tilemap_mark_tile_dirty(state->m_pixel_layer,col_off);