- 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).
@ -265,7 +264,7 @@ VIDEO_START( gdfs )
janjans1:
srmp4:
survarts: No checks
survarts: no checks
ryorioh:
drifto94: bit D, 0 -> 1
@ -273,93 +272,105 @@ VIDEO_START( gdfs )
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:
drifto94: 0000 0025 00cd 01c6 - 0001 0013 0101 0106
0300 0711 0500 0000 - 0015 5940 0000 0000
0300 0711 0500 0000 - 0015 5940
03ea 5558 (flip)
dynagear: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
02fd 0000 0500 0000 - 0015 5940 0000 0000
02fd 0000 0500 0000 - 0015 5940
???? ???? (flip)
eaglshot: 0021 002a 00ca 01c6 - 0001 0016 00f6 0106
0301 0000 0500 d000 - 0015 5940 0000 0000
0301 0000 0500 d000 - 0015 5940
???? ???? (flip)
gdfs: 002b 002c 00d5 01c6 - 0001 0012 0102 0106
03ec 0711 0500 0000 - 00d5 5950 0000 0000
03ec 0711 0500 0000 - 00d5 5950
03ec 1557 (flip)
hypreact: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
0301 0000 0500 c000 - 0015 5140 0000 0000
0301 0000 0500 c000 - 0015 5140
03f0 5558 (flip)
hypreac2: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
0301 0000 05ff c000 - 0015 5140 0000 0000
0301 0000 05ff c000 - 0015 5140
03ea 5558 (flip)
janjans1: 0021 0023 00cb 01c6 - 0001 000f 00fe 0106
0300 0000 0500 c000 - 0015 5140 0000 0000
same! (flip)
0300 0000 0500 c000 - 0015 5140
0300 (flip)
keithlcy: 002b 0025 00cd 01c6 - 0001 0013 0101 0106
0300 0711 0500 0000 - 0015 5940 0000 0000
0300 0711 0500 0000 - 0015 5940
03ea 5558 (flip)
meosism: 002b 002c 00d5 01c6 - 0001 0012 00fe 0106
0301 0000 0500 c000 - 0015 5140 0000 0000
0301 0000 0500 c000 - 0015 5140
(no flip)
mslider: 0021 0026 00d6 01c6 - 0001 000e 00fe 0106
03f1 0711 5550 c080 - 0015 5940 0000 0000
03f1 0711 5550 c080 - 0015 5940
0301 0500 (flip)
ryorioh: 0021 0023*00cb 01c6 - 0001 000f 00fe 0106
0300 0000 0500 c000 - 0015 5140 0000 0000
0300 0000 0500 c000 - 0015 5140
03ed 5558 (flip) *0025
srmp4: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
0301 0711 0500 0000 - 0015 4940 0000 0000
0301 0711 0500 0000 - 0015 4940
ffe8 5557 (flip)
srmp7: 002b 002c 00d4 01c6 - 0001 000e 00fd 0106
0000 0000 e500 0000 - 0015 7140 0000 0000
0000 0000 e500 0000 - 0015 7140
02f2 b558 (flip)
stmblade: 0021 0026 00d6 01c6 - 0001 000e 00fe 0106
03f1 0711 5550 c080 - 0015 5940 0000 0000 <- 711 becomes 0 during gameplay
03f1 0711 5550 c080 - 0015 5940 <- 711 becomes 0 during gameplay
0301 0500 (flip)
survarts: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
0301 0000 0500 0000 - 0015 5140 0000 0000
0301 0000 0500 0000 - 0015 5140
03e9 5558 (flip)
sxyreact: 0021 0022 00cb 01c6 - 0001 000e 00fe 0106
0301 0000 0500 c000 - 0015 5140 0000 0000
0301 0000 0500 c000 - 0015 5140
03ef 5558 (flip)
sxyreac2: 0021 0023 00cb 01c6 - 0001 000e 00fe 0106
0301 0000 0500 c000 - 0015 5140 0000 0000
0301 0000 0500 c000 - 0015 5140
???? ???? (flip)
twineag2: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
ffec 0000 e500 4000 - 0315 7940 0000 0000
ffec 0000 e500 4000 - 0315 7940
???? ???? (flip)
ultrax: 002b 002c 00d4 01c6 - 0001 0012 0102 0106
ffec 0000 e500 4000 - 0315 7940 0000 0000
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 0000 0000
vasara2: 03f1 0000 6500 c000 - 0015 5140
0301 3558 (flip)
***************************************************************************/
READ16_HANDLER( ssv_vblank_r )
@ -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,6 +822,10 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta
case 0x7940: sy -= 0x10; break; // ultrax, twineag2
}
// sx += xoffs;
// sy += yoffs;
if ((mode & 0x001f) != 0)
draw_row(machine, bitmap, cliprect, sx, sy, scroll);
}
else