summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2010-12-29 18:56:23 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2010-12-29 18:56:23 +0000
commit5cfd97d3f7348d23ba85392bad4907f6dd15759f (patch)
tree18e541901ef4d398c9dd4cb8d50372b084436f85 /src
parentfb32b80591ac09007c37cd017edcd0823e7b850e (diff)
Haze: moved +16 for sprite offsetting in SD Gundam, no whatsnew
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/legionna.c2
-rw-r--r--src/mame/includes/legionna.h1
-rw-r--r--src/mame/machine/seicop.c3
-rw-r--r--src/mame/video/legionna.c17
4 files changed, 16 insertions, 7 deletions
diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c
index ebc9569993f..389a8c43b8e 100644
--- a/src/mame/drivers/legionna.c
+++ b/src/mame/drivers/legionna.c
@@ -1225,7 +1225,7 @@ static MACHINE_CONFIG_START( grainbow, driver_device )
MDRV_GFXDECODE(grainbow)
MDRV_PALETTE_LENGTH(128*16)
- MDRV_VIDEO_START(legionna)
+ MDRV_VIDEO_START(grainbow)
MDRV_VIDEO_UPDATE(grainbow)
/* sound hardware */
diff --git a/src/mame/includes/legionna.h b/src/mame/includes/legionna.h
index cf9424baa7c..d28a2b393b9 100644
--- a/src/mame/includes/legionna.h
+++ b/src/mame/includes/legionna.h
@@ -13,6 +13,7 @@ WRITE16_HANDLER( legionna_text_w );
VIDEO_START( legionna );
VIDEO_START( cupsoc );
VIDEO_START( denjinmk );
+VIDEO_START( grainbow );
VIDEO_UPDATE( legionna );
VIDEO_UPDATE( godzilla );
VIDEO_UPDATE( grainbow );
diff --git a/src/mame/machine/seicop.c b/src/mame/machine/seicop.c
index 8e5bb3393e5..830fb91b590 100644
--- a/src/mame/machine/seicop.c
+++ b/src/mame/machine/seicop.c
@@ -2451,8 +2451,7 @@ static WRITE16_HANDLER( generic_cop_w )
offs = (offset & 3) * 4;
/* TODO: I really suspect that following two are actually taken from the 0xa180 macro command then internally loaded */
- /* TODO: +16 is a temp hack, we need to find the X/Y global register ... also this probably should go into video file rather than here ... */
- abs_x = space->read_word(cop_register[0] + 8) - cop_sprite_dma_abs_x + 16;
+ abs_x = space->read_word(cop_register[0] + 8) - cop_sprite_dma_abs_x;
abs_y = space->read_word(cop_register[0] + 4) - cop_sprite_dma_abs_y;
rel_xy = space->read_word(cop_sprite_dma_src + 4 + offs);
diff --git a/src/mame/video/legionna.c b/src/mame/video/legionna.c
index d78b4af81fb..f1a22c8f4b8 100644
--- a/src/mame/video/legionna.c
+++ b/src/mame/video/legionna.c
@@ -11,6 +11,7 @@ UINT16 *legionna_back_data,*legionna_fore_data,*legionna_mid_data,*legionna_scro
static tilemap_t *background_layer,*foreground_layer,*midground_layer,*text_layer;
UINT16 legionna_layer_disable;
+int legionna_sprite_xoffs;
/******************************************************************************/
@@ -144,6 +145,7 @@ VIDEO_START( legionna )
text_layer = tilemap_create(machine, get_text_tile_info,tilemap_scan_rows, 8,8,64,32);
legionna_scrollram16 = auto_alloc_array(machine, UINT16, 0x60/2);
+ legionna_sprite_xoffs = 0;
tilemap_set_transparent_pen(background_layer,15);
tilemap_set_transparent_pen(midground_layer,15);
@@ -159,6 +161,7 @@ VIDEO_START( denjinmk )
text_layer = tilemap_create(machine, get_text_tile_info,tilemap_scan_rows, 8,8,64,32);
legionna_scrollram16 = auto_alloc_array(machine, UINT16, 0x60/2);
+ legionna_sprite_xoffs = 0;
tilemap_set_transparent_pen(background_layer,15);
tilemap_set_transparent_pen(midground_layer,15);
@@ -174,6 +177,7 @@ VIDEO_START( cupsoc )
text_layer = tilemap_create(machine, get_text_tile_info,tilemap_scan_rows, 8,8,64,32);
legionna_scrollram16 = auto_alloc_array(machine, UINT16, 0x60/2);
+ legionna_sprite_xoffs = 0;
tilemap_set_transparent_pen(background_layer,15);
tilemap_set_transparent_pen(midground_layer,15);
@@ -181,7 +185,12 @@ VIDEO_START( cupsoc )
tilemap_set_transparent_pen(text_layer,15);
}
+VIDEO_START(grainbow)
+{
+ VIDEO_START_CALL(legionna);
+ legionna_sprite_xoffs = 16;
+}
/*************************************************************************
Legionnaire Spriteram (similar to Dcon)
@@ -276,7 +285,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan
{
pdrawgfx_transpen(bitmap,cliprect,machine->gfx[3],
sprite++,
- color,fx,fy,x+ax*16,y+ay*16,
+ color,fx,fy,(x+ax*16)+legionna_sprite_xoffs,y+ay*16,
machine->priority_bitmap,pri_mask, 15);
}
}
@@ -287,7 +296,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan
{
pdrawgfx_transpen(bitmap,cliprect,machine->gfx[3],
sprite++,
- color,fx,fy,x+ax*16,y+(dy-ay-1)*16,
+ color,fx,fy,(x+ax*16)+legionna_sprite_xoffs,y+(dy-ay-1)*16,
machine->priority_bitmap,pri_mask,15);
}
}
@@ -301,7 +310,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan
{
pdrawgfx_transpen(bitmap,cliprect,machine->gfx[3],
sprite++,
- color,fx,fy,x+(dx-ax-1)*16,y+ay*16,
+ color,fx,fy,(x+(dx-ax-1)*16)+legionna_sprite_xoffs,y+ay*16,
machine->priority_bitmap,pri_mask,15);
}
}
@@ -312,7 +321,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan
{
pdrawgfx_transpen(bitmap,cliprect,machine->gfx[3],
sprite++,
- color,fx,fy,x+(dx-ax-1)*16,y+(dy-ay-1)*16,
+ color,fx,fy,(x+(dx-ax-1)*16)+legionna_sprite_xoffs,y+(dy-ay-1)*16,
machine->priority_bitmap,pri_mask, 15);
}
}