mirror of
https://github.com/holub/mame
synced 2025-05-19 12:18:56 +03:00
Part 1 of Taito F3 32-to-16 conversion ...
This commit is contained in:
parent
a4f8d12933
commit
6e39a7abfa
@ -16,12 +16,13 @@
|
||||
- Sound doesn't work in RidingF/RingRage?
|
||||
(for RingRage it's probably a timing / cpu sync bug, if you go into test mode
|
||||
for a while then exit you'll have sound, this doesn't work on RidingF)
|
||||
- It does work in ringrage but you have to enter test mode first
|
||||
\- It does work in ringrage but you have to enter test mode first
|
||||
- Sound balance is not emulated (see arabianm test mode)
|
||||
- When playing space invaders dx in original mode, t.t. with overlay, the
|
||||
alpha blending effect is wrong (see Taito B version of game)
|
||||
- Bubble Symphony has an alpha transition effect that doesn't appear in Mame
|
||||
- Various other missing blending effects (see Mametesters)
|
||||
- Find how this HW drives the CRTC, and convert video timings to use screen raw params;
|
||||
|
||||
Feel free to report any other issues to me.
|
||||
|
||||
@ -161,8 +162,8 @@ static ADDRESS_MAP_START( f3_map, AS_PROGRAM, 32 )
|
||||
AM_RANGE(0x61e000, 0x61ffff) AM_RAM_WRITE(f3_vram_w) 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_RAM_WRITE(f3_pivot_w) AM_BASE_MEMBER(taito_f3_state, m_f3_pivot_ram)
|
||||
AM_RANGE(0x660000, 0x66000f) AM_WRITE(f3_control_0_w)
|
||||
AM_RANGE(0x660010, 0x66001f) AM_WRITE(f3_control_1_w)
|
||||
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")
|
||||
AM_RANGE(0xc80000, 0xc80003) AM_WRITE(f3_sound_reset_0_w)
|
||||
AM_RANGE(0xc80100, 0xc80103) AM_WRITE(f3_sound_reset_1_w)
|
||||
|
@ -62,8 +62,8 @@ public:
|
||||
tilemap_t *m_pixel_layer;
|
||||
tilemap_t *m_vram_layer;
|
||||
UINT32 *m_spriteram32_buffered;
|
||||
UINT32 m_f3_control_0[8];
|
||||
UINT32 m_f3_control_1[8];
|
||||
UINT16 m_f3_control_0[8];
|
||||
UINT16 m_f3_control_1[8];
|
||||
int m_flipscreen;
|
||||
UINT8 m_sprite_extra_planes;
|
||||
UINT8 m_sprite_pen_mask;
|
||||
@ -193,8 +193,8 @@ VIDEO_START( f3 );
|
||||
SCREEN_UPDATE( f3 );
|
||||
SCREEN_EOF( f3 );
|
||||
|
||||
WRITE32_HANDLER( f3_control_0_w );
|
||||
WRITE32_HANDLER( f3_control_1_w );
|
||||
WRITE16_HANDLER( f3_control_0_w );
|
||||
WRITE16_HANDLER( f3_control_1_w );
|
||||
WRITE32_HANDLER( f3_palette_24bit_w );
|
||||
WRITE32_HANDLER( f3_pf_data_w );
|
||||
WRITE32_HANDLER( f3_vram_w );
|
||||
|
@ -325,6 +325,7 @@ static void init_alpha_blend_func(running_machine &machine);
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* TODO: fix shifting there */
|
||||
static void print_debug_info(running_machine &machine, bitmap_t *bitmap)
|
||||
{
|
||||
taito_f3_state *state = machine.driver_data<taito_f3_state>();
|
||||
@ -708,13 +709,13 @@ WRITE32_HANDLER( f3_pf_data_w )
|
||||
}
|
||||
}
|
||||
|
||||
WRITE32_HANDLER( f3_control_0_w )
|
||||
WRITE16_HANDLER( f3_control_0_w )
|
||||
{
|
||||
taito_f3_state *state = space->machine().driver_data<taito_f3_state>();
|
||||
COMBINE_DATA(&state->m_f3_control_0[offset]);
|
||||
}
|
||||
|
||||
WRITE32_HANDLER( f3_control_1_w )
|
||||
WRITE16_HANDLER( f3_control_1_w )
|
||||
{
|
||||
taito_f3_state *state = space->machine().driver_data<taito_f3_state>();
|
||||
COMBINE_DATA(&state->m_f3_control_1[offset]);
|
||||
@ -3165,21 +3166,21 @@ SCREEN_UPDATE( f3 )
|
||||
tilemap_set_flip_all(screen->machine(),state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
|
||||
|
||||
/* Setup scroll */
|
||||
sy_fix[0]=((state->m_f3_control_0[2]&0xffff0000)>> 7) + (1<<16);
|
||||
sy_fix[1]=((state->m_f3_control_0[2]&0x0000ffff)<< 9) + (1<<16);
|
||||
sy_fix[2]=((state->m_f3_control_0[3]&0xffff0000)>> 7) + (1<<16);
|
||||
sy_fix[3]=((state->m_f3_control_0[3]&0x0000ffff)<< 9) + (1<<16);
|
||||
sx_fix[0]=((state->m_f3_control_0[0]&0xffc00000)>> 6) - (6<<16);
|
||||
sx_fix[1]=((state->m_f3_control_0[0]&0x0000ffc0)<<10) - (10<<16);
|
||||
sx_fix[2]=((state->m_f3_control_0[1]&0xffc00000)>> 6) - (14<<16);
|
||||
sx_fix[3]=((state->m_f3_control_0[1]&0x0000ffc0)<<10) - (18<<16);
|
||||
sx_fix[4]=-(state->m_f3_control_1[2]>>16)+41;
|
||||
sy_fix[4]=-(state->m_f3_control_1[2]&0x1ff);
|
||||
sy_fix[0]=((state->m_f3_control_0[4]&0xffff)<< 9) + (1<<16);
|
||||
sy_fix[1]=((state->m_f3_control_0[5]&0xffff)<< 9) + (1<<16);
|
||||
sy_fix[2]=((state->m_f3_control_0[6]&0xffff)<< 9) + (1<<16);
|
||||
sy_fix[3]=((state->m_f3_control_0[7]&0xffff)<< 9) + (1<<16);
|
||||
sx_fix[0]=((state->m_f3_control_0[0]&0xffc0)<<10) - (6<<16);
|
||||
sx_fix[1]=((state->m_f3_control_0[1]&0xffc0)<<10) - (10<<16);
|
||||
sx_fix[2]=((state->m_f3_control_0[2]&0xffc0)<<10) - (14<<16);
|
||||
sx_fix[3]=((state->m_f3_control_0[3]&0xffc0)<<10) - (18<<16);
|
||||
sx_fix[4]=-(state->m_f3_control_1[4])+41;
|
||||
sy_fix[4]=-(state->m_f3_control_1[5]&0x1ff);
|
||||
|
||||
sx_fix[0]-=((state->m_f3_control_0[0]&0x003f0000)>> 6)+0x0400-0x10000;
|
||||
sx_fix[1]-=((state->m_f3_control_0[0]&0x0000003f)<<10)+0x0400-0x10000;
|
||||
sx_fix[2]-=((state->m_f3_control_0[1]&0x003f0000)>> 6)+0x0400-0x10000;
|
||||
sx_fix[3]-=((state->m_f3_control_0[1]&0x0000003f)<<10)+0x0400-0x10000;
|
||||
sx_fix[0]-=((state->m_f3_control_0[0]&0x003f)<<10)+0x0400-0x10000;
|
||||
sx_fix[1]-=((state->m_f3_control_0[1]&0x003f)<<10)+0x0400-0x10000;
|
||||
sx_fix[2]-=((state->m_f3_control_0[2]&0x003f)<<10)+0x0400-0x10000;
|
||||
sx_fix[3]-=((state->m_f3_control_0[3]&0x003f)<<10)+0x0400-0x10000;
|
||||
|
||||
if (state->m_flipscreen)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user