mirror of
https://github.com/holub/mame
synced 2025-05-23 06:08:48 +03:00
Part 3
This commit is contained in:
parent
8993443d51
commit
5eb7122294
@ -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)
|
||||||
|
@ -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 );
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user