- 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:
Roberto Zandona 2010-09-10 19:45:27 +00:00
parent 61f221209f
commit b753df9e45
3 changed files with 169 additions and 137 deletions

View File

@ -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

View File

@ -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;

View File

@ -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
{ {