rm galaxian_sprite_clip_*, sprite clipping is not hw controllable, the only game that was assumed to be able to control it (pacmanbl) is supposed to have sprites partially cut off. See CrazyKongFan's notes here: http://www.mametesters.org/view.php?id=1598

This commit is contained in:
Michaël Banaan Ananas 2011-03-16 15:42:16 +00:00
parent 2816328d1d
commit 1b4ead59cb
3 changed files with 3 additions and 15 deletions

View File

@ -2619,8 +2619,6 @@ static void common_init(
irq_line = INPUT_LINE_NMI;
galaxian_frogger_adjust = FALSE;
galaxian_sfx_tilemap = FALSE;
galaxian_sprite_clip_start = 16;
galaxian_sprite_clip_end = 255;
galaxian_draw_bullet_ptr = (draw_bullet != NULL) ? draw_bullet : galaxian_draw_bullet;
galaxian_draw_background_ptr = (draw_background != NULL) ? draw_background : galaxian_draw_background;
galaxian_extend_tile_info_ptr = extend_tile_info;
@ -2791,10 +2789,6 @@ static DRIVER_INIT( pacmanbl )
/* ...but coin lockout disabled/disconnected */
memory_install_write8_handler(space, 0x6002, 0x6002, 0, 0x7f8, (write8_space_func)artic_gfxbank_w);
/* also shift the sprite clip offset */
galaxian_sprite_clip_start = 7;
galaxian_sprite_clip_end = 246;
}
static READ8_HANDLER( tenspot_dsw_read )

View File

@ -42,8 +42,6 @@ public:
extern UINT8 galaxian_frogger_adjust;
extern UINT8 galaxian_sfx_tilemap;
extern UINT8 galaxian_sprite_clip_start;
extern UINT8 galaxian_sprite_clip_end;
PALETTE_INIT( galaxian );
PALETTE_INIT( moonwar );

View File

@ -245,8 +245,6 @@ galaxian_extend_sprite_info_func galaxian_extend_sprite_info_ptr;
/* global tweaks */
UINT8 galaxian_frogger_adjust;
UINT8 galaxian_sfx_tilemap;
UINT8 galaxian_sprite_clip_start;
UINT8 galaxian_sprite_clip_end;
@ -600,13 +598,11 @@ static void sprites_draw(running_machine *machine, bitmap_t *bitmap, const recta
{
rectangle clip = *cliprect;
int sprnum;
int clip_ofs = (flipscreen_x ? 16 : 0);
/* 16 of the 256 pixels of the sprites are hard-clipped at the line buffer */
/* according to the schematics, it should be the first 16 pixels; however, */
/* some bootlegs demonstrate that this can be shifted to other positions. */
clip.min_x = MAX(clip.min_x, (galaxian_sprite_clip_start - clip_ofs) * GALAXIAN_XSCALE);
clip.max_x = MIN(clip.max_x, (galaxian_sprite_clip_end - clip_ofs + 1) * GALAXIAN_XSCALE - 1);
/* according to the schematics, it should be the first 16 pixels */
clip.min_x = MAX(clip.min_x, (!flipscreen_x) * 16 * GALAXIAN_XSCALE);
clip.max_x = MIN(clip.max_x, (256 - flipscreen_x * 16) * GALAXIAN_XSCALE - 1);
/* The line buffer is only written if it contains a '0' currently; */
/* it is cleared during the visible area, and populated during HBLANK */