mirror of
https://github.com/holub/mame
synced 2025-05-21 05:08:54 +03:00
Part 3
This commit is contained in:
parent
8993443d51
commit
5eb7122294
@ -202,11 +202,11 @@ static ADDRESS_MAP_START( f3_map, AS_PROGRAM, 32 )
|
||||
AM_RANGE(0x4a0000, 0x4a001f) AM_READWRITE(f3_control_r, f3_control_w)
|
||||
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(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)
|
||||
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_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)
|
||||
AM_RANGE(0x660000, 0x66000f) AM_WRITE16(f3_control_0_w,0xffffffff)
|
||||
AM_RANGE(0x660010, 0x66001f) AM_WRITE16(f3_control_1_w,0xffffffff)
|
||||
AM_RANGE(0xc00000, 0xc007ff) AM_RAM AM_SHARE("f3_shared")
|
||||
|
@ -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 );
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user