- 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>();
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_offsy = sprites_offsy;
state->tilemap_offsx = tilemap_offsx;
state->tilemap_offsy = tilemap_offsy;
}
static void init_hypreac2(running_machine *machine)
@ -2666,31 +2665,46 @@ static void init_hypreac2(running_machine *machine)
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( eaglshot ) { init_ssv(machine, -8, +0xf0, +0, -0xef, 0); init_hypreac2(machine); }
static DRIVER_INIT( gdfs ) { init_ssv(machine, -8, +0x01, +0, +0x00, 0); }
static DRIVER_INIT( hypreact ) { init_ssv(machine, +0, +0xf0, +0, -0xf7, 0); }
static DRIVER_INIT( hypreac2 ) { init_ssv(machine, +0, +0xf0, +0, -0xf8, 0); init_hypreac2(machine); }
static DRIVER_INIT( janjans1 ) { init_ssv(machine, +0, +0xe8, +0, -0xf0, 0); }
static DRIVER_INIT( keithlcy ) { init_ssv(machine, -8, +0xf1, +0, -0xf0, 0); }
static DRIVER_INIT( meosism ) { init_ssv(machine, +0, +0xe8, +0, -0xef, 0); }
static DRIVER_INIT( mslider ) { init_ssv(machine, -8, +0xf0, +0, -0xf1, 0); }
static DRIVER_INIT( ryorioh ) { init_ssv(machine, +0, +0xe8, +0, -0xf0, 0); }
static DRIVER_INIT( srmp4 ) { 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, 0); init_hypreac2(machine); }
static DRIVER_INIT( gdfs ) { init_ssv(machine, -8 ,+0x00, +0, 0); }
static DRIVER_INIT( hypreact ) { init_ssv(machine, +0, +0xe8, +0, 0); }
static DRIVER_INIT( hypreac2 ) { init_ssv(machine, +0, +0xe8, +0, 0); init_hypreac2(machine); }
static DRIVER_INIT( janjans1 ) { init_ssv(machine, +0, +0xe8, +0, 0); }
static DRIVER_INIT( keithlcy ) { init_ssv(machine, -8, +0xec, +0, 0); }
static DRIVER_INIT( meosism ) { init_ssv(machine, +0, +0xe4, +0, 0); }
static DRIVER_INIT( mslider ) { init_ssv(machine, -8, +0xf0, +0, 0); }
static DRIVER_INIT( ryorioh ) { init_ssv(machine, +0, +0xe8, +0, 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 */
}
static DRIVER_INIT( srmp7 ) { init_ssv(machine, +0, -0x0f, +0, -0xf0, 0); }
static DRIVER_INIT( stmblade ) { init_ssv(machine, -8, +0xef, +0, -0xf0, 0); }
static DRIVER_INIT( survarts ) { init_ssv(machine, +0, +0xe8, +0, -0xef, 0); }
static DRIVER_INIT( dynagear ) { init_ssv(machine, -8, +0xec, +0, -0xef, 0); }
static DRIVER_INIT( sxyreact ) { init_ssv(machine, +0, +0xe8, +0, -0xef, 0); init_hypreac2(machine); } // different
static DRIVER_INIT( cairblad ) { init_ssv(machine, +0, +0xe8, +0, -0xef, 0); init_hypreac2(machine); } // different
static DRIVER_INIT( sxyreac2 ) { init_ssv(machine, +0, +0xe8, +0, -0xef, 0); init_hypreac2(machine); }
static DRIVER_INIT( twineag2 ) { init_ssv(machine, -6, +0x01, -2, +0x00, 1); }
static DRIVER_INIT( ultrax ) { init_ssv(machine, -8, +0x01, +0, +0x00, 1); }
static DRIVER_INIT( vasara ) { init_ssv(machine, +0, +0xf0, +0, -0xf8, 0); }
static DRIVER_INIT( jsk ) { init_ssv(machine, -8, +0xf5, +0, -0xf4, 0); }
static DRIVER_INIT( srmp7 ) { init_ssv(machine, +0, -0x0f, +0, 0); }
static DRIVER_INIT( stmblade ) { init_ssv(machine, -8, +0xef, +0, 0); }
static DRIVER_INIT( survarts ) { init_ssv(machine, +0, +0xe4, +0, 0); }
static DRIVER_INIT( dynagear ) { init_ssv(machine, -8, +0xec, +0, 0); }
static DRIVER_INIT( sxyreact ) { init_ssv(machine, +0, +0xe8, +0, 0); init_hypreac2(machine); }
static DRIVER_INIT( cairblad ) { init_ssv(machine, +0, +0xe8, +0, 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, -8, +0x01, +0, 1); }
static DRIVER_INIT( ultrax ) { init_ssv(machine, -8, +0x01, +0, 1); }
static DRIVER_INIT( vasara ) { init_ssv(machine, +0, +0xf0, +0, 0); }
static DRIVER_INIT( jsk ) { init_ssv(machine, -8, +0xf5, +0, 0); }
static MACHINE_CONFIG_START( ssv, ssv_state )
@ -2733,7 +2747,7 @@ static MACHINE_CONFIG_DERIVED( drifto94, ssv )
/* video hardware */
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
@ -2748,7 +2762,7 @@ static MACHINE_CONFIG_DERIVED( gdfs, ssv )
/* video hardware */
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_VIDEO_START(gdfs)
@ -2764,7 +2778,7 @@ static MACHINE_CONFIG_DERIVED( hypreact, ssv )
/* video hardware */
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
@ -2776,7 +2790,7 @@ static MACHINE_CONFIG_DERIVED( hypreac2, ssv )
/* video hardware */
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
@ -2788,7 +2802,7 @@ static MACHINE_CONFIG_DERIVED( janjans1, ssv )
/* video hardware */
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
@ -2800,7 +2814,7 @@ static MACHINE_CONFIG_DERIVED( keithlcy, ssv )
/* video hardware */
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
@ -2814,7 +2828,7 @@ static MACHINE_CONFIG_DERIVED( meosism, ssv )
/* video hardware */
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
@ -2826,7 +2840,7 @@ static MACHINE_CONFIG_DERIVED( mslider, ssv )
/* video hardware */
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
@ -2838,7 +2852,7 @@ static MACHINE_CONFIG_DERIVED( ryorioh, ssv )
/* video hardware */
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
static MACHINE_CONFIG_DERIVED( vasara, ssv )
@ -2849,7 +2863,7 @@ static MACHINE_CONFIG_DERIVED( vasara, ssv )
/* video hardware */
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
static MACHINE_CONFIG_DERIVED( srmp4, ssv )
@ -2860,7 +2874,7 @@ static MACHINE_CONFIG_DERIVED( srmp4, ssv )
/* video hardware */
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
@ -2872,7 +2886,7 @@ static MACHINE_CONFIG_DERIVED( srmp7, ssv )
/* video hardware */
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
@ -2885,7 +2899,7 @@ static MACHINE_CONFIG_DERIVED( stmblade, ssv )
MDRV_NVRAM_HANDLER(ssv)
/* video hardware */
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
@ -2897,15 +2911,16 @@ static MACHINE_CONFIG_DERIVED( survarts, ssv )
/* video hardware */
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
static MACHINE_CONFIG_DERIVED( dynagear, survarts )
/* basic machine hardware */
/* video hardware */
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
@ -2919,7 +2934,7 @@ static MACHINE_CONFIG_DERIVED( eaglshot, ssv )
/* video hardware */
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_VIDEO_START(eaglshot)
@ -2937,7 +2952,7 @@ static MACHINE_CONFIG_DERIVED( sxyreact, ssv )
/* video hardware */
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
static MACHINE_CONFIG_DERIVED( sxyreac2, ssv )
@ -2950,7 +2965,7 @@ static MACHINE_CONFIG_DERIVED( sxyreac2, ssv )
/* video hardware */
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
static MACHINE_CONFIG_DERIVED( cairblad, ssv )
@ -2963,7 +2978,7 @@ static MACHINE_CONFIG_DERIVED( cairblad, ssv )
/* video hardware */
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
static MACHINE_CONFIG_DERIVED( twineag2, ssv )
@ -2974,7 +2989,7 @@ static MACHINE_CONFIG_DERIVED( twineag2, ssv )
/* video hardware */
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
@ -2986,7 +3001,7 @@ static MACHINE_CONFIG_DERIVED( ultrax, ssv )
/* video hardware */
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
static MACHINE_CONFIG_DERIVED( jsk, ssv )
@ -3000,7 +3015,7 @@ static MACHINE_CONFIG_DERIVED( jsk, ssv )
/* video hardware */
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

View File

@ -15,7 +15,6 @@ public:
int sprites_offsx;
int sprites_offsy;
int tilemap_offsx;
int tilemap_offsy;
int shadow_pen_mask;
int shadow_pen_shift;

View File

@ -7,9 +7,8 @@
This hardware only generates sprites. But they're of various types,
including some large "floating tilemap" ones.
Sprites RAM is 0x40000 bytes long. The first 0x2000 bytes hold a list
of sprites to display (the list can be made shorter using an end-of-list
marker).
Sprites RAM is 0x40000 bytes long. The first 0x2000 bytes hold a list of
sprites to display (the list can be made shorter using an end-of-list marker).
Each entry in the list (8 bytes) is a multi-sprite (e.g it tells the
hardware to display up to 32 single-sprites).
@ -244,121 +243,133 @@ VIDEO_START( gdfs )
/***************************************************************************
CRT controller, registers that are read
(vblank etc.?)
CRT controller, registers that are read
(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:
meosism:
srmp7:
sxyreact:
ultrax: bit F, 0
hypreact:
meosism:
srmp7:
sxyreact:
ultrax: bit F, 0
twineag2:
hypreac2: bit C, 1 -> 0
bit F, 0
twineag2:
hypreac2: bit C, 1 -> 0
bit F, 0
janjans1:
srmp4:
survarts: No checks
janjans1:
srmp4:
survarts: no checks
ryorioh:
drifto94: bit D, 0 -> 1
bit A, 0
ryorioh:
drifto94: bit D, 0 -> 1
bit A, 0
CRT controller, registers that are written
(resolution, visible area, flipping etc. ?)
CRT controller, registers that are written
(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
0300 0711 0500 0000 - 0015 5940 0000 0000
03ea 5558 (flip)
dynagear: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
02fd 0000 0500 0000 - 0015 5940
???? ???? (flip)
dynagear: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
02fd 0000 0500 0000 - 0015 5940 0000 0000
???? ???? (flip)
eaglshot: 0021 002a 00ca 01c6 - 0001 0016 00f6 0106
0301 0000 0500 d000 - 0015 5940
???? ???? (flip)
eaglshot: 0021 002a 00ca 01c6 - 0001 0016 00f6 0106
0301 0000 0500 d000 - 0015 5940 0000 0000
???? ???? (flip)
gdfs: 002b 002c 00d5 01c6 - 0001 0012 0102 0106
03ec 0711 0500 0000 - 00d5 5950
03ec 1557 (flip)
gdfs: 002b 002c 00d5 01c6 - 0001 0012 0102 0106
03ec 0711 0500 0000 - 00d5 5950 0000 0000
03ec 1557 (flip)
hypreact: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
0301 0000 0500 c000 - 0015 5140
03f0 5558 (flip)
hypreact: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
0301 0000 0500 c000 - 0015 5140 0000 0000
03f0 5558 (flip)
hypreac2: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
0301 0000 05ff c000 - 0015 5140
03ea 5558 (flip)
hypreac2: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
0301 0000 05ff c000 - 0015 5140 0000 0000
03ea 5558 (flip)
janjans1: 0021 0023 00cb 01c6 - 0001 000f 00fe 0106
0300 0000 0500 c000 - 0015 5140
0300 (flip)
janjans1: 0021 0023 00cb 01c6 - 0001 000f 00fe 0106
0300 0000 0500 c000 - 0015 5140 0000 0000
same! (flip)
keithlcy: 002b 0025 00cd 01c6 - 0001 0013 0101 0106
0300 0711 0500 0000 - 0015 5940
03ea 5558 (flip)
keithlcy: 002b 0025 00cd 01c6 - 0001 0013 0101 0106
0300 0711 0500 0000 - 0015 5940 0000 0000
03ea 5558 (flip)
meosism: 002b 002c 00d5 01c6 - 0001 0012 00fe 0106
0301 0000 0500 c000 - 0015 5140
(no flip)
meosism: 002b 002c 00d5 01c6 - 0001 0012 00fe 0106
0301 0000 0500 c000 - 0015 5140 0000 0000
(no flip)
mslider: 0021 0026 00d6 01c6 - 0001 000e 00fe 0106
03f1 0711 5550 c080 - 0015 5940
0301 0500 (flip)
mslider: 0021 0026 00d6 01c6 - 0001 000e 00fe 0106
03f1 0711 5550 c080 - 0015 5940 0000 0000
0301 0500 (flip)
ryorioh: 0021 0023*00cb 01c6 - 0001 000f 00fe 0106
0300 0000 0500 c000 - 0015 5140
03ed 5558 (flip) *0025
ryorioh: 0021 0023*00cb 01c6 - 0001 000f 00fe 0106
0300 0000 0500 c000 - 0015 5140 0000 0000
03ed 5558 (flip) *0025
srmp4: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
0301 0711 0500 0000 - 0015 4940
ffe8 5557 (flip)
srmp4: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
0301 0711 0500 0000 - 0015 4940 0000 0000
ffe8 5557 (flip)
srmp7: 002b 002c 00d4 01c6 - 0001 000e 00fd 0106
0000 0000 e500 0000 - 0015 7140
02f2 b558 (flip)
srmp7: 002b 002c 00d4 01c6 - 0001 000e 00fd 0106
0000 0000 e500 0000 - 0015 7140 0000 0000
02f2 b558 (flip)
stmblade: 0021 0026 00d6 01c6 - 0001 000e 00fe 0106
03f1 0711 5550 c080 - 0015 5940 <- 711 becomes 0 during gameplay
0301 0500 (flip)
stmblade: 0021 0026 00d6 01c6 - 0001 000e 00fe 0106
03f1 0711 5550 c080 - 0015 5940 0000 0000 <- 711 becomes 0 during gameplay
0301 0500 (flip)
survarts: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
0301 0000 0500 0000 - 0015 5140
03e9 5558 (flip)
survarts: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
0301 0000 0500 0000 - 0015 5140 0000 0000
03e9 5558 (flip)
sxyreact: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
0301 0000 0500 c000 - 0015 5140
03ef 5558 (flip)
sxyreact: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
0301 0000 0500 c000 - 0015 5140 0000 0000
03ef 5558 (flip)
sxyreac2: 0021 0023 00cb 01c6 - 0001 000e 00fe 0106
0301 0000 0500 c000 - 0015 5140
???? ???? (flip)
sxyreac2: 0021 0023 00cb 01c6 - 0001 000e 00fe 0106
0301 0000 0500 c000 - 0015 5140 0000 0000
???? ???? (flip)
twineag2: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
ffec 0000 e500 4000 - 0315 7940
???? ???? (flip)
twineag2: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
ffec 0000 e500 4000 - 0315 7940 0000 0000
???? ???? (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)
ultrax: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
ffec 0000 e500 4000 - 0315 7940
02fe b558 (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;
/* Given a fixed scroll value, the portion of tilemap displayed changes
with the sprite postion */
with the sprite position */
x += sx;
y += sy;
/* Tweak the scroll values (game specific) */
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 */
@ -808,7 +822,11 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta
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
{