mirror of
https://github.com/holub/mame
synced 2025-05-23 14:19:01 +03:00
ssv:
- implemented y tilemap offset register; (Roberto Zandona') - implemented x and y visible area register; (Roberto Zandona') - disabled tilemap draw when mode=0; (Roberto Zandona') - confirmed visible area register with a twin eagle II PCB (Corrado Tomaselli)
This commit is contained in:
parent
61f221209f
commit
b753df9e45
@ -2639,7 +2639,7 @@ static const es5506_interface es5506_config =
|
|||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
static void init_ssv(running_machine *machine, int sprites_offsx, int sprites_offsy, int tilemap_offsx, int tilemap_offsy, int interrupt_ultrax)
|
static void init_ssv(running_machine *machine, int sprites_offsx, int sprites_offsy, int tilemap_offsx, int interrupt_ultrax)
|
||||||
{
|
{
|
||||||
ssv_state *state = machine->driver_data<ssv_state>();
|
ssv_state *state = machine->driver_data<ssv_state>();
|
||||||
int i;
|
int i;
|
||||||
@ -2654,7 +2654,6 @@ static void init_ssv(running_machine *machine, int sprites_offsx, int sprites_of
|
|||||||
state->sprites_offsx = sprites_offsx;
|
state->sprites_offsx = sprites_offsx;
|
||||||
state->sprites_offsy = sprites_offsy;
|
state->sprites_offsy = sprites_offsy;
|
||||||
state->tilemap_offsx = tilemap_offsx;
|
state->tilemap_offsx = tilemap_offsx;
|
||||||
state->tilemap_offsy = tilemap_offsy;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void init_hypreac2(running_machine *machine)
|
static void init_hypreac2(running_machine *machine)
|
||||||
@ -2666,31 +2665,46 @@ static void init_hypreac2(running_machine *machine)
|
|||||||
state->tile_code[i] = (i << 16);
|
state->tile_code[i] = (i << 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// [1c0070-71 & 0x03ff] is the global y offset for tilemaps (it's negative if [1c0070-71 & 0x0100] == 0x0100)
|
||||||
|
// 1c006a-6b is the y start visible area
|
||||||
|
// tilemap_offsy = (1c0070-71) + (1c006a-6b)
|
||||||
|
// drifto94:
|
||||||
|
// 70-71 = 0x300 -> -0x100
|
||||||
|
// 6a-6b = 0x13
|
||||||
|
// tilemap_offsy = -0x100 + 0x13 = -0xed
|
||||||
|
// gdfs:
|
||||||
|
// 70-71 = 0x3ec -> -0x14
|
||||||
|
// 6a-6b = 0x12
|
||||||
|
// tilemap_offsy = -0x14 + 0x12 = -0x02
|
||||||
|
// twineagl:
|
||||||
|
// 70-71 = 0xffec -> 0x03ec -> -0x14
|
||||||
|
// 6a-6b = 12
|
||||||
|
// tilemap_offsy = -0x14 + 0x12 = -0x02
|
||||||
|
|
||||||
static DRIVER_INIT( drifto94 ) { init_ssv(machine, -8, +0xf0, +0, -0xf0, 0); }
|
static DRIVER_INIT( drifto94 ) { init_ssv(machine, -8, +0xec, +0, 0); }
|
||||||
static DRIVER_INIT( eaglshot ) { init_ssv(machine, -8, +0xf0, +0, -0xef, 0); init_hypreac2(machine); }
|
static DRIVER_INIT( eaglshot ) { init_ssv(machine, -8, +0xf0, +0, 0); init_hypreac2(machine); }
|
||||||
static DRIVER_INIT( gdfs ) { init_ssv(machine, -8, +0x01, +0, +0x00, 0); }
|
static DRIVER_INIT( gdfs ) { init_ssv(machine, -8 ,+0x00, +0, 0); }
|
||||||
static DRIVER_INIT( hypreact ) { init_ssv(machine, +0, +0xf0, +0, -0xf7, 0); }
|
static DRIVER_INIT( hypreact ) { init_ssv(machine, +0, +0xe8, +0, 0); }
|
||||||
static DRIVER_INIT( hypreac2 ) { init_ssv(machine, +0, +0xf0, +0, -0xf8, 0); init_hypreac2(machine); }
|
static DRIVER_INIT( hypreac2 ) { init_ssv(machine, +0, +0xe8, +0, 0); init_hypreac2(machine); }
|
||||||
static DRIVER_INIT( janjans1 ) { init_ssv(machine, +0, +0xe8, +0, -0xf0, 0); }
|
static DRIVER_INIT( janjans1 ) { init_ssv(machine, +0, +0xe8, +0, 0); }
|
||||||
static DRIVER_INIT( keithlcy ) { init_ssv(machine, -8, +0xf1, +0, -0xf0, 0); }
|
static DRIVER_INIT( keithlcy ) { init_ssv(machine, -8, +0xec, +0, 0); }
|
||||||
static DRIVER_INIT( meosism ) { init_ssv(machine, +0, +0xe8, +0, -0xef, 0); }
|
static DRIVER_INIT( meosism ) { init_ssv(machine, +0, +0xe4, +0, 0); }
|
||||||
static DRIVER_INIT( mslider ) { init_ssv(machine, -8, +0xf0, +0, -0xf1, 0); }
|
static DRIVER_INIT( mslider ) { init_ssv(machine, -8, +0xf0, +0, 0); }
|
||||||
static DRIVER_INIT( ryorioh ) { init_ssv(machine, +0, +0xe8, +0, -0xf0, 0); }
|
static DRIVER_INIT( ryorioh ) { init_ssv(machine, +0, +0xe8, +0, 0); }
|
||||||
static DRIVER_INIT( srmp4 ) { init_ssv(machine, -8, +0xf0, +0, -0xf0, 0);
|
static DRIVER_INIT( srmp4 ) { init_ssv(machine, -8, +0xec, +0, 0);
|
||||||
// ((UINT16 *)memory_region(machine, "user1"))[0x2b38/2] = 0x037a; /* patch to see gal test mode */
|
// ((UINT16 *)memory_region(machine, "user1"))[0x2b38/2] = 0x037a; /* patch to see gal test mode */
|
||||||
}
|
}
|
||||||
static DRIVER_INIT( srmp7 ) { init_ssv(machine, +0, -0x0f, +0, -0xf0, 0); }
|
static DRIVER_INIT( srmp7 ) { init_ssv(machine, +0, -0x0f, +0, 0); }
|
||||||
static DRIVER_INIT( stmblade ) { init_ssv(machine, -8, +0xef, +0, -0xf0, 0); }
|
static DRIVER_INIT( stmblade ) { init_ssv(machine, -8, +0xef, +0, 0); }
|
||||||
static DRIVER_INIT( survarts ) { init_ssv(machine, +0, +0xe8, +0, -0xef, 0); }
|
static DRIVER_INIT( survarts ) { init_ssv(machine, +0, +0xe4, +0, 0); }
|
||||||
static DRIVER_INIT( dynagear ) { init_ssv(machine, -8, +0xec, +0, -0xef, 0); }
|
static DRIVER_INIT( dynagear ) { init_ssv(machine, -8, +0xec, +0, 0); }
|
||||||
static DRIVER_INIT( sxyreact ) { init_ssv(machine, +0, +0xe8, +0, -0xef, 0); init_hypreac2(machine); } // different
|
static DRIVER_INIT( sxyreact ) { init_ssv(machine, +0, +0xe8, +0, 0); init_hypreac2(machine); }
|
||||||
static DRIVER_INIT( cairblad ) { init_ssv(machine, +0, +0xe8, +0, -0xef, 0); init_hypreac2(machine); } // different
|
static DRIVER_INIT( cairblad ) { init_ssv(machine, +0, +0xe8, +0, 0); init_hypreac2(machine); }
|
||||||
static DRIVER_INIT( sxyreac2 ) { init_ssv(machine, +0, +0xe8, +0, -0xef, 0); init_hypreac2(machine); }
|
static DRIVER_INIT( sxyreac2 ) { init_ssv(machine, +0, +0xe8, +0, 0); init_hypreac2(machine); }
|
||||||
static DRIVER_INIT( twineag2 ) { init_ssv(machine, -6, +0x01, -2, +0x00, 1); }
|
static DRIVER_INIT( twineag2 ) { init_ssv(machine, -8, +0x01, +0, 1); }
|
||||||
static DRIVER_INIT( ultrax ) { init_ssv(machine, -8, +0x01, +0, +0x00, 1); }
|
static DRIVER_INIT( ultrax ) { init_ssv(machine, -8, +0x01, +0, 1); }
|
||||||
static DRIVER_INIT( vasara ) { init_ssv(machine, +0, +0xf0, +0, -0xf8, 0); }
|
static DRIVER_INIT( vasara ) { init_ssv(machine, +0, +0xf0, +0, 0); }
|
||||||
static DRIVER_INIT( jsk ) { init_ssv(machine, -8, +0xf5, +0, -0xf4, 0); }
|
static DRIVER_INIT( jsk ) { init_ssv(machine, -8, +0xf5, +0, 0); }
|
||||||
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( ssv, ssv_state )
|
static MACHINE_CONFIG_START( ssv, ssv_state )
|
||||||
@ -2733,7 +2747,7 @@ static MACHINE_CONFIG_DERIVED( drifto94, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1, 1, 0xf0-1-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xcd-0x25)*2-1, 0, (0x101-0x13)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -2748,7 +2762,7 @@ static MACHINE_CONFIG_DERIVED( gdfs, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x152-1, 0, 0xf0-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xd5-0x2c)*2-1, 0, (0x102-0x12)-1)
|
||||||
|
|
||||||
MDRV_GFXDECODE(gdfs)
|
MDRV_GFXDECODE(gdfs)
|
||||||
MDRV_VIDEO_START(gdfs)
|
MDRV_VIDEO_START(gdfs)
|
||||||
@ -2764,7 +2778,7 @@ static MACHINE_CONFIG_DERIVED( hypreact, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x152-1, 8, 0xf8-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xcb-0x22)*2-1, 0, (0xfe - 0x0e)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -2776,7 +2790,7 @@ static MACHINE_CONFIG_DERIVED( hypreac2, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x152-1, 8, 0xf8-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xcb-0x22)*2-1, 0, (0xfe - 0x0e)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -2788,7 +2802,7 @@ static MACHINE_CONFIG_DERIVED( janjans1, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1, 0, 0xf0-1-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xcb-0x23)*2-1, 0, (0xfe - 0x0f)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -2800,7 +2814,7 @@ static MACHINE_CONFIG_DERIVED( keithlcy, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1, 1, 0xf0-1-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xcd-0x25)*2-1, 0, (0x101 - 0x13)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -2814,7 +2828,7 @@ static MACHINE_CONFIG_DERIVED( meosism, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1+2, 2, 0xf0-1-2)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xd5-0x2c)*2-1, 0, (0xfe - 0x12)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -2826,7 +2840,7 @@ static MACHINE_CONFIG_DERIVED( mslider, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xd6-0x26)*2-1, 0, (0xfe - 0x0e)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -2838,7 +2852,7 @@ static MACHINE_CONFIG_DERIVED( ryorioh, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1, 0, 0xf0-1-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xcb-0x23)*2-1, 0, (0xfe - 0x0f)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( vasara, ssv )
|
static MACHINE_CONFIG_DERIVED( vasara, ssv )
|
||||||
@ -2849,7 +2863,7 @@ static MACHINE_CONFIG_DERIVED( vasara, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1, 0, 0xf0-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xcc-0x24)*2-1, 0,(0xfe - 0x0e)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( srmp4, ssv )
|
static MACHINE_CONFIG_DERIVED( srmp4, ssv )
|
||||||
@ -2860,7 +2874,7 @@ static MACHINE_CONFIG_DERIVED( srmp4, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1, 4, 0xf4-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xd4-0x2c)*2-1, 0, (0x102 - 0x12)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -2872,7 +2886,7 @@ static MACHINE_CONFIG_DERIVED( srmp7, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1, 0, 0xf0-1-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xd4-0x2c)*2-1, 0, (0xfd - 0x0e)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -2885,7 +2899,7 @@ static MACHINE_CONFIG_DERIVED( stmblade, ssv )
|
|||||||
MDRV_NVRAM_HANDLER(ssv)
|
MDRV_NVRAM_HANDLER(ssv)
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xd6-0x26)*2-1, 0, (0xfe - 0x0e)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -2897,15 +2911,16 @@ static MACHINE_CONFIG_DERIVED( survarts, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1, 4, 0xf4-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xd4-0x2c)*2-1, 0, (0x102 - 0x12)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( dynagear, survarts )
|
static MACHINE_CONFIG_DERIVED( dynagear, survarts )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 336-1, 0, 0xf0-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xd4-0x2c)*2-1, 0, (0x102 - 0x12)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -2919,7 +2934,7 @@ static MACHINE_CONFIG_DERIVED( eaglshot, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x140-1, 8, 0xe8-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xca - 0x2a)*2-1, 0, (0xf6 - 0x16)-1)
|
||||||
|
|
||||||
MDRV_GFXDECODE(eaglshot)
|
MDRV_GFXDECODE(eaglshot)
|
||||||
MDRV_VIDEO_START(eaglshot)
|
MDRV_VIDEO_START(eaglshot)
|
||||||
@ -2937,7 +2952,7 @@ static MACHINE_CONFIG_DERIVED( sxyreact, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1+2, 0, 0xf0-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xcb - 0x22)*2-1, 0, (0xfe - 0x0e)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( sxyreac2, ssv )
|
static MACHINE_CONFIG_DERIVED( sxyreac2, ssv )
|
||||||
@ -2950,7 +2965,7 @@ static MACHINE_CONFIG_DERIVED( sxyreac2, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1, 0, 0xf0-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xcb - 0x23)*2-1, 0, (0xfe - 0x0e)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( cairblad, ssv )
|
static MACHINE_CONFIG_DERIVED( cairblad, ssv )
|
||||||
@ -2963,7 +2978,7 @@ static MACHINE_CONFIG_DERIVED( cairblad, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1+2, 0, 0xf0-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xcb - 0x22)*2-1, 0, (0xfe - 0x0e)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( twineag2, ssv )
|
static MACHINE_CONFIG_DERIVED( twineag2, ssv )
|
||||||
@ -2974,7 +2989,7 @@ static MACHINE_CONFIG_DERIVED( twineag2, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1, 0, 0xf0-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xd4 - 0x2c)*2-1, 0, (0x102 - 0x12)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -2986,7 +3001,7 @@ static MACHINE_CONFIG_DERIVED( ultrax, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1, 0, 0xf0-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xd4 - 0x2c)*2-1, 0, (0x102 - 0x12)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( jsk, ssv )
|
static MACHINE_CONFIG_DERIVED( jsk, ssv )
|
||||||
@ -3000,7 +3015,7 @@ static MACHINE_CONFIG_DERIVED( jsk, ssv )
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_MODIFY("screen")
|
MDRV_SCREEN_MODIFY("screen")
|
||||||
MDRV_SCREEN_VISIBLE_AREA(0, 0x150-1, 0, 0xf0-1)
|
MDRV_SCREEN_VISIBLE_AREA(0, (0xca - 0x22)*2-1, 0, (0xfe - 0x0e)-1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,7 +15,6 @@ public:
|
|||||||
int sprites_offsx;
|
int sprites_offsx;
|
||||||
int sprites_offsy;
|
int sprites_offsy;
|
||||||
int tilemap_offsx;
|
int tilemap_offsx;
|
||||||
int tilemap_offsy;
|
|
||||||
int shadow_pen_mask;
|
int shadow_pen_mask;
|
||||||
int shadow_pen_shift;
|
int shadow_pen_shift;
|
||||||
|
|
||||||
|
@ -7,9 +7,8 @@
|
|||||||
This hardware only generates sprites. But they're of various types,
|
This hardware only generates sprites. But they're of various types,
|
||||||
including some large "floating tilemap" ones.
|
including some large "floating tilemap" ones.
|
||||||
|
|
||||||
Sprites RAM is 0x40000 bytes long. The first 0x2000 bytes hold a list
|
Sprites RAM is 0x40000 bytes long. The first 0x2000 bytes hold a list of
|
||||||
of sprites to display (the list can be made shorter using an end-of-list
|
sprites to display (the list can be made shorter using an end-of-list marker).
|
||||||
marker).
|
|
||||||
|
|
||||||
Each entry in the list (8 bytes) is a multi-sprite (e.g it tells the
|
Each entry in the list (8 bytes) is a multi-sprite (e.g it tells the
|
||||||
hardware to display up to 32 single-sprites).
|
hardware to display up to 32 single-sprites).
|
||||||
@ -244,121 +243,133 @@ VIDEO_START( gdfs )
|
|||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
CRT controller, registers that are read
|
CRT controller, registers that are read
|
||||||
(vblank etc.?)
|
(vblank etc.?)
|
||||||
|
|
||||||
1c0000 (wait for bit .. to become ..)
|
1c0000 (wait for bit .. to become ..)
|
||||||
|
|
||||||
keithlcy: bit D, 0 -> 1
|
keithlcy: bit D, 0 -> 1
|
||||||
|
|
||||||
mslider: bit A, 0
|
mslider: bit A, 0
|
||||||
|
|
||||||
hypreact:
|
hypreact:
|
||||||
meosism:
|
meosism:
|
||||||
srmp7:
|
srmp7:
|
||||||
sxyreact:
|
sxyreact:
|
||||||
ultrax: bit F, 0
|
ultrax: bit F, 0
|
||||||
|
|
||||||
twineag2:
|
twineag2:
|
||||||
hypreac2: bit C, 1 -> 0
|
hypreac2: bit C, 1 -> 0
|
||||||
bit F, 0
|
bit F, 0
|
||||||
|
|
||||||
janjans1:
|
janjans1:
|
||||||
srmp4:
|
srmp4:
|
||||||
survarts: No checks
|
survarts: no checks
|
||||||
|
|
||||||
ryorioh:
|
ryorioh:
|
||||||
drifto94: bit D, 0 -> 1
|
drifto94: bit D, 0 -> 1
|
||||||
bit A, 0
|
bit A, 0
|
||||||
|
|
||||||
|
|
||||||
CRT controller, registers that are written
|
CRT controller, registers that are written
|
||||||
(resolution, visible area, flipping etc. ?)
|
(resolution, visible area, flipping etc.)
|
||||||
|
|
||||||
|
1c0060-61 ?
|
||||||
|
1c0062-63 x start visible area
|
||||||
|
1c0064-65 x end visible area
|
||||||
|
1c0066-67 ?
|
||||||
|
1c0068-69 ?
|
||||||
|
1c006a-6b y start visible area
|
||||||
|
1c006c-6d y end visible area
|
||||||
|
1c006e-6f ?
|
||||||
|
1c0070-71 y global tilemap offset
|
||||||
|
1c0072-73 ?
|
||||||
|
1c0074-75 ?
|
||||||
|
1c0076-77 ?
|
||||||
|
1c0078-79 ?
|
||||||
|
1c007a-7b ?
|
||||||
|
|
||||||
|
1c0060-7f:
|
||||||
|
|
||||||
1c0060-7f:
|
drifto94: 0000 0025 00cd 01c6 - 0001 0013 0101 0106
|
||||||
|
0300 0711 0500 0000 - 0015 5940
|
||||||
|
03ea 5558 (flip)
|
||||||
|
|
||||||
drifto94: 0000 0025 00cd 01c6 - 0001 0013 0101 0106
|
dynagear: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
|
||||||
0300 0711 0500 0000 - 0015 5940 0000 0000
|
02fd 0000 0500 0000 - 0015 5940
|
||||||
03ea 5558 (flip)
|
???? ???? (flip)
|
||||||
|
|
||||||
dynagear: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
|
eaglshot: 0021 002a 00ca 01c6 - 0001 0016 00f6 0106
|
||||||
02fd 0000 0500 0000 - 0015 5940 0000 0000
|
0301 0000 0500 d000 - 0015 5940
|
||||||
???? ???? (flip)
|
???? ???? (flip)
|
||||||
|
|
||||||
eaglshot: 0021 002a 00ca 01c6 - 0001 0016 00f6 0106
|
gdfs: 002b 002c 00d5 01c6 - 0001 0012 0102 0106
|
||||||
0301 0000 0500 d000 - 0015 5940 0000 0000
|
03ec 0711 0500 0000 - 00d5 5950
|
||||||
???? ???? (flip)
|
03ec 1557 (flip)
|
||||||
|
|
||||||
gdfs: 002b 002c 00d5 01c6 - 0001 0012 0102 0106
|
hypreact: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
|
||||||
03ec 0711 0500 0000 - 00d5 5950 0000 0000
|
0301 0000 0500 c000 - 0015 5140
|
||||||
03ec 1557 (flip)
|
03f0 5558 (flip)
|
||||||
|
|
||||||
hypreact: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
|
hypreac2: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
|
||||||
0301 0000 0500 c000 - 0015 5140 0000 0000
|
0301 0000 05ff c000 - 0015 5140
|
||||||
03f0 5558 (flip)
|
03ea 5558 (flip)
|
||||||
|
|
||||||
hypreac2: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
|
janjans1: 0021 0023 00cb 01c6 - 0001 000f 00fe 0106
|
||||||
0301 0000 05ff c000 - 0015 5140 0000 0000
|
0300 0000 0500 c000 - 0015 5140
|
||||||
03ea 5558 (flip)
|
0300 (flip)
|
||||||
|
|
||||||
janjans1: 0021 0023 00cb 01c6 - 0001 000f 00fe 0106
|
keithlcy: 002b 0025 00cd 01c6 - 0001 0013 0101 0106
|
||||||
0300 0000 0500 c000 - 0015 5140 0000 0000
|
0300 0711 0500 0000 - 0015 5940
|
||||||
same! (flip)
|
03ea 5558 (flip)
|
||||||
|
|
||||||
keithlcy: 002b 0025 00cd 01c6 - 0001 0013 0101 0106
|
meosism: 002b 002c 00d5 01c6 - 0001 0012 00fe 0106
|
||||||
0300 0711 0500 0000 - 0015 5940 0000 0000
|
0301 0000 0500 c000 - 0015 5140
|
||||||
03ea 5558 (flip)
|
(no flip)
|
||||||
|
|
||||||
meosism: 002b 002c 00d5 01c6 - 0001 0012 00fe 0106
|
mslider: 0021 0026 00d6 01c6 - 0001 000e 00fe 0106
|
||||||
0301 0000 0500 c000 - 0015 5140 0000 0000
|
03f1 0711 5550 c080 - 0015 5940
|
||||||
(no flip)
|
0301 0500 (flip)
|
||||||
|
|
||||||
mslider: 0021 0026 00d6 01c6 - 0001 000e 00fe 0106
|
ryorioh: 0021 0023*00cb 01c6 - 0001 000f 00fe 0106
|
||||||
03f1 0711 5550 c080 - 0015 5940 0000 0000
|
0300 0000 0500 c000 - 0015 5140
|
||||||
0301 0500 (flip)
|
03ed 5558 (flip) *0025
|
||||||
|
|
||||||
ryorioh: 0021 0023*00cb 01c6 - 0001 000f 00fe 0106
|
srmp4: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
|
||||||
0300 0000 0500 c000 - 0015 5140 0000 0000
|
0301 0711 0500 0000 - 0015 4940
|
||||||
03ed 5558 (flip) *0025
|
ffe8 5557 (flip)
|
||||||
|
|
||||||
srmp4: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
|
srmp7: 002b 002c 00d4 01c6 - 0001 000e 00fd 0106
|
||||||
0301 0711 0500 0000 - 0015 4940 0000 0000
|
0000 0000 e500 0000 - 0015 7140
|
||||||
ffe8 5557 (flip)
|
02f2 b558 (flip)
|
||||||
|
|
||||||
srmp7: 002b 002c 00d4 01c6 - 0001 000e 00fd 0106
|
stmblade: 0021 0026 00d6 01c6 - 0001 000e 00fe 0106
|
||||||
0000 0000 e500 0000 - 0015 7140 0000 0000
|
03f1 0711 5550 c080 - 0015 5940 <- 711 becomes 0 during gameplay
|
||||||
02f2 b558 (flip)
|
0301 0500 (flip)
|
||||||
|
|
||||||
stmblade: 0021 0026 00d6 01c6 - 0001 000e 00fe 0106
|
survarts: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
|
||||||
03f1 0711 5550 c080 - 0015 5940 0000 0000 <- 711 becomes 0 during gameplay
|
0301 0000 0500 0000 - 0015 5140
|
||||||
0301 0500 (flip)
|
03e9 5558 (flip)
|
||||||
|
|
||||||
survarts: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
|
sxyreact: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
|
||||||
0301 0000 0500 0000 - 0015 5140 0000 0000
|
0301 0000 0500 c000 - 0015 5140
|
||||||
03e9 5558 (flip)
|
03ef 5558 (flip)
|
||||||
|
|
||||||
sxyreact: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
|
sxyreac2: 0021 0023 00cb 01c6 - 0001 000e 00fe 0106
|
||||||
0301 0000 0500 c000 - 0015 5140 0000 0000
|
0301 0000 0500 c000 - 0015 5140
|
||||||
03ef 5558 (flip)
|
???? ???? (flip)
|
||||||
|
|
||||||
sxyreac2: 0021 0023 00cb 01c6 - 0001 000e 00fe 0106
|
twineag2: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
|
||||||
0301 0000 0500 c000 - 0015 5140 0000 0000
|
ffec 0000 e500 4000 - 0315 7940
|
||||||
???? ???? (flip)
|
???? ???? (flip)
|
||||||
|
|
||||||
twineag2: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
|
ultrax: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
|
||||||
ffec 0000 e500 4000 - 0315 7940 0000 0000
|
ffec 0000 e500 4000 - 0315 7940
|
||||||
???? ???? (flip)
|
02fe b558 (flip)
|
||||||
|
|
||||||
ultrax: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
|
|
||||||
ffec 0000 e500 4000 - 0315 7940 0000 0000
|
|
||||||
02fe b558 (flip)
|
|
||||||
|
|
||||||
vasara & 0021 0024 00cc 01c6 - 0001 000e 00fe 0106
|
|
||||||
vasara2: 03f1 0000 6500 c000 - 0015 5140 0000 0000
|
|
||||||
0301 3558 (flip)
|
|
||||||
|
|
||||||
|
vasara & 0021 0024 00cc 01c6 - 0001 000e 00fe 0106
|
||||||
|
vasara2: 03f1 0000 6500 c000 - 0015 5140
|
||||||
|
0301 3558 (flip)
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -651,13 +662,16 @@ static void draw_row(running_machine *machine, bitmap_t *bitmap, const rectangle
|
|||||||
page = (x & 0x7fff) / size;
|
page = (x & 0x7fff) / size;
|
||||||
|
|
||||||
/* Given a fixed scroll value, the portion of tilemap displayed changes
|
/* Given a fixed scroll value, the portion of tilemap displayed changes
|
||||||
with the sprite postion */
|
with the sprite position */
|
||||||
x += sx;
|
x += sx;
|
||||||
y += sy;
|
y += sy;
|
||||||
|
|
||||||
/* Tweak the scroll values (game specific) */
|
/* Tweak the scroll values (game specific) */
|
||||||
x += state->tilemap_offsx;
|
x += state->tilemap_offsx;
|
||||||
y += state->tilemap_offsy;
|
if (ssv_scroll[0x70/2] & 0x0200)
|
||||||
|
y += ((ssv_scroll[0x70/2] & 0x1ff) - 0x200 + ssv_scroll[0x6a/2] + 2);
|
||||||
|
else
|
||||||
|
y += ((ssv_scroll[0x70/2] & 0x1ff) + ssv_scroll[0x6a/2] + 2);
|
||||||
|
|
||||||
/* Draw the rows */
|
/* Draw the rows */
|
||||||
|
|
||||||
@ -808,7 +822,11 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta
|
|||||||
case 0x7940: sy -= 0x10; break; // ultrax, twineag2
|
case 0x7940: sy -= 0x10; break; // ultrax, twineag2
|
||||||
}
|
}
|
||||||
|
|
||||||
draw_row(machine, bitmap, cliprect, sx, sy, scroll);
|
// sx += xoffs;
|
||||||
|
// sy += yoffs;
|
||||||
|
|
||||||
|
if ((mode & 0x001f) != 0)
|
||||||
|
draw_row(machine, bitmap, cliprect, sx, sy, scroll);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user