mirror of
https://github.com/holub/mame
synced 2025-05-24 23:05:32 +03:00
Purged remaining globals from video/generic.c and audio/generic.c
This commit is contained in:
parent
6bfe172c78
commit
5e643c1251
@ -15,12 +15,15 @@
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
GLOBAL VARIABLES
|
||||
TYPE DEFINITIONS
|
||||
***************************************************************************/
|
||||
|
||||
static UINT16 latch_clear_value = 0x00;
|
||||
static UINT16 latched_value[4];
|
||||
static UINT8 latch_read[4];
|
||||
struct _generic_audio_private
|
||||
{
|
||||
UINT16 latch_clear_value;
|
||||
UINT16 latched_value[4];
|
||||
UINT8 latch_read[4];
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -35,14 +38,13 @@ static UINT8 latch_read[4];
|
||||
|
||||
int generic_sound_init(running_machine *machine)
|
||||
{
|
||||
/* reset latches */
|
||||
latch_clear_value = 0;
|
||||
memset(latched_value, 0, sizeof(latched_value));
|
||||
memset(latch_read, 0, sizeof(latch_read));
|
||||
generic_audio_private *state;
|
||||
|
||||
state = machine->generic_audio_data = auto_alloc_clear(machine, generic_audio_private);
|
||||
|
||||
/* register globals with the save state system */
|
||||
state_save_register_global_array(machine, latched_value);
|
||||
state_save_register_global_array(machine, latch_read);
|
||||
state_save_register_global_array(machine, state->latched_value);
|
||||
state_save_register_global_array(machine, state->latch_read);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -66,16 +68,17 @@ int generic_sound_init(running_machine *machine)
|
||||
|
||||
static TIMER_CALLBACK( latch_callback )
|
||||
{
|
||||
generic_audio_private *state = machine->generic_audio_data;
|
||||
UINT16 value = param >> 8;
|
||||
int which = param & 0xff;
|
||||
|
||||
/* if the latch hasn't been read and the value is changed, log a warning */
|
||||
if (!latch_read[which] && latched_value[which] != value)
|
||||
logerror("Warning: sound latch %d written before being read. Previous: %02x, new: %02x\n", which, latched_value[which], value);
|
||||
if (!state->latch_read[which] && state->latched_value[which] != value)
|
||||
logerror("Warning: sound latch %d written before being read. Previous: %02x, new: %02x\n", which, state->latched_value[which], value);
|
||||
|
||||
/* store the new value and mark it not read */
|
||||
latched_value[which] = value;
|
||||
latch_read[which] = 0;
|
||||
state->latched_value[which] = value;
|
||||
state->latch_read[which] = 0;
|
||||
}
|
||||
|
||||
|
||||
@ -93,10 +96,11 @@ INLINE void latch_w(const address_space *space, int which, UINT16 value)
|
||||
latch_r - handle a read from a given latch
|
||||
-------------------------------------------------*/
|
||||
|
||||
INLINE UINT16 latch_r(int which)
|
||||
INLINE UINT16 latch_r(const address_space *space, int which)
|
||||
{
|
||||
latch_read[which] = 1;
|
||||
return latched_value[which];
|
||||
generic_audio_private *state = space->machine->generic_audio_data;
|
||||
state->latch_read[which] = 1;
|
||||
return state->latched_value[which];
|
||||
}
|
||||
|
||||
|
||||
@ -104,9 +108,10 @@ INLINE UINT16 latch_r(int which)
|
||||
latch_clear - clear a given latch
|
||||
-------------------------------------------------*/
|
||||
|
||||
INLINE void latch_clear(int which)
|
||||
INLINE void latch_clear(const address_space *space, int which)
|
||||
{
|
||||
latched_value[which] = latch_clear_value;
|
||||
generic_audio_private *state = space->machine->generic_audio_data;
|
||||
state->latched_value[which] = state->latch_clear_value;
|
||||
}
|
||||
|
||||
|
||||
@ -130,14 +135,14 @@ WRITE16_HANDLER( soundlatch4_word_w ) { latch_w(space, 3, data); }
|
||||
reading from sound latches
|
||||
-------------------------------------------------*/
|
||||
|
||||
READ8_HANDLER( soundlatch_r ) { return latch_r(0); }
|
||||
READ16_HANDLER( soundlatch_word_r ) { return latch_r(0); }
|
||||
READ8_HANDLER( soundlatch2_r ) { return latch_r(1); }
|
||||
READ16_HANDLER( soundlatch2_word_r ) { return latch_r(1); }
|
||||
READ8_HANDLER( soundlatch3_r ) { return latch_r(2); }
|
||||
READ16_HANDLER( soundlatch3_word_r ) { return latch_r(2); }
|
||||
READ8_HANDLER( soundlatch4_r ) { return latch_r(3); }
|
||||
READ16_HANDLER( soundlatch4_word_r ) { return latch_r(3); }
|
||||
READ8_HANDLER( soundlatch_r ) { return latch_r(space, 0); }
|
||||
READ16_HANDLER( soundlatch_word_r ) { return latch_r(space, 0); }
|
||||
READ8_HANDLER( soundlatch2_r ) { return latch_r(space, 1); }
|
||||
READ16_HANDLER( soundlatch2_word_r ) { return latch_r(space, 1); }
|
||||
READ8_HANDLER( soundlatch3_r ) { return latch_r(space, 2); }
|
||||
READ16_HANDLER( soundlatch3_word_r ) { return latch_r(space, 2); }
|
||||
READ8_HANDLER( soundlatch4_r ) { return latch_r(space, 3); }
|
||||
READ16_HANDLER( soundlatch4_word_r ) { return latch_r(space, 3); }
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
@ -145,10 +150,10 @@ READ16_HANDLER( soundlatch4_word_r ) { return latch_r(3); }
|
||||
for clearing sound latches
|
||||
-------------------------------------------------*/
|
||||
|
||||
WRITE8_HANDLER( soundlatch_clear_w ) { latch_clear(0); }
|
||||
WRITE8_HANDLER( soundlatch2_clear_w ) { latch_clear(1); }
|
||||
WRITE8_HANDLER( soundlatch3_clear_w ) { latch_clear(2); }
|
||||
WRITE8_HANDLER( soundlatch4_clear_w ) { latch_clear(3); }
|
||||
WRITE8_HANDLER( soundlatch_clear_w ) { latch_clear(space, 0); }
|
||||
WRITE8_HANDLER( soundlatch2_clear_w ) { latch_clear(space, 1); }
|
||||
WRITE8_HANDLER( soundlatch3_clear_w ) { latch_clear(space, 2); }
|
||||
WRITE8_HANDLER( soundlatch4_clear_w ) { latch_clear(space, 3); }
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
@ -158,6 +163,7 @@ WRITE8_HANDLER( soundlatch4_clear_w ) { latch_clear(3); }
|
||||
|
||||
void soundlatch_setclearedvalue(running_machine *machine, int value)
|
||||
{
|
||||
generic_audio_private *state = machine->generic_audio_data;
|
||||
assert_always(mame_get_phase(machine) == MAME_PHASE_INIT, "Can only call soundlatch_setclearedvalue at init time!");
|
||||
latch_clear_value = value;
|
||||
state->latch_clear_value = value;
|
||||
}
|
||||
|
@ -141,6 +141,8 @@ typedef struct _cheat_private cheat_private;
|
||||
typedef struct _debugcpu_private debugcpu_private;
|
||||
typedef struct _debugvw_private debugvw_private;
|
||||
typedef struct _generic_machine_private generic_machine_private;
|
||||
typedef struct _generic_video_private generic_video_private;
|
||||
typedef struct _generic_audio_private generic_audio_private;
|
||||
|
||||
|
||||
/* structure to hold a pointer/size pair for generic pointers */
|
||||
@ -176,6 +178,7 @@ struct _generic_pointers
|
||||
generic_ptr buffered_spriteram3;/* tertiary buffered spriteram */
|
||||
generic_ptr paletteram; /* palette RAM */
|
||||
generic_ptr paletteram2; /* secondary palette RAM */
|
||||
bitmap_t * tmpbitmap; /* temporary bitmap */
|
||||
};
|
||||
|
||||
|
||||
@ -233,6 +236,8 @@ struct _running_machine
|
||||
debugcpu_private * debugcpu_data; /* internal data from debugcpu.c */
|
||||
debugvw_private * debugvw_data; /* internal data from debugvw.c */
|
||||
generic_machine_private *generic_machine_data; /* internal data from machine/generic.c */
|
||||
generic_video_private * generic_video_data; /* internal data from video/generic.c */
|
||||
generic_audio_private * generic_audio_data; /* internal data from audio/generic.c */
|
||||
#ifdef MESS
|
||||
images_private * images_data; /* internal data from image.c */
|
||||
ui_mess_private * ui_mess_data; /* internal data from uimess.c */
|
||||
|
@ -15,11 +15,14 @@
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
GLOBAL VARIABLES
|
||||
TYPE DEFINITIONS
|
||||
***************************************************************************/
|
||||
|
||||
bitmap_t *tmpbitmap;
|
||||
static int flip_screen_x, flip_screen_y;
|
||||
struct _generic_video_private
|
||||
{
|
||||
int flip_screen_x;
|
||||
int flip_screen_y;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -227,25 +230,12 @@ INLINE void set_color_888(running_machine *machine, pen_t color, int rshift, int
|
||||
|
||||
void generic_video_init(running_machine *machine)
|
||||
{
|
||||
machine->generic.paletteram.v = NULL;
|
||||
machine->generic.paletteram2.v = NULL;
|
||||
machine->generic.videoram.v = NULL;
|
||||
machine->generic.videoram_size = 0;
|
||||
machine->generic.colorram.v = NULL;
|
||||
machine->generic.colorram_size = 0;
|
||||
machine->generic.spriteram.v = NULL;
|
||||
machine->generic.spriteram_size = 0;
|
||||
machine->generic.spriteram2.v = NULL;
|
||||
machine->generic.spriteram2_size = 0;
|
||||
machine->generic.spriteram3.v = NULL;
|
||||
machine->generic.spriteram3_size = 0;
|
||||
machine->generic.buffered_spriteram.v = NULL;
|
||||
machine->generic.buffered_spriteram2.v = NULL;
|
||||
machine->generic.buffered_spriteram3.v = NULL;
|
||||
tmpbitmap = NULL;
|
||||
flip_screen_x = flip_screen_y = 0;
|
||||
state_save_register_item(machine, "video", NULL, 0, flip_screen_x);
|
||||
state_save_register_item(machine, "video", NULL, 0, flip_screen_y);
|
||||
generic_video_private *state;
|
||||
|
||||
state = machine->generic_video_data = auto_alloc_clear(machine, generic_video_private);
|
||||
|
||||
state_save_register_item(machine, "video", NULL, 0, state->flip_screen_x);
|
||||
state_save_register_item(machine, "video", NULL, 0, state->flip_screen_y);
|
||||
}
|
||||
|
||||
|
||||
@ -262,10 +252,10 @@ void generic_video_init(running_machine *machine)
|
||||
VIDEO_START( generic_bitmapped )
|
||||
{
|
||||
/* allocate the temporary bitmap */
|
||||
tmpbitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
|
||||
machine->generic.tmpbitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
|
||||
|
||||
/* ensure the contents of the bitmap are saved */
|
||||
state_save_register_bitmap(machine, "video", NULL, 0, "tmpbitmap", tmpbitmap);
|
||||
state_save_register_bitmap(machine, "video", NULL, 0, "tmpbitmap", machine->generic.tmpbitmap);
|
||||
}
|
||||
|
||||
|
||||
@ -276,7 +266,7 @@ VIDEO_START( generic_bitmapped )
|
||||
|
||||
VIDEO_UPDATE( generic_bitmapped )
|
||||
{
|
||||
copybitmap(bitmap, tmpbitmap, 0, 0, 0, 0, cliprect);
|
||||
copybitmap(bitmap, screen->machine->generic.tmpbitmap, 0, 0, 0, 0, cliprect);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -399,14 +389,15 @@ void buffer_spriteram_2(running_machine *machine, UINT8 *ptr, int length)
|
||||
|
||||
static void updateflip(running_machine *machine)
|
||||
{
|
||||
generic_video_private *state = machine->generic_video_data;
|
||||
int width = video_screen_get_width(machine->primary_screen);
|
||||
int height = video_screen_get_height(machine->primary_screen);
|
||||
attoseconds_t period = video_screen_get_frame_period(machine->primary_screen).attoseconds;
|
||||
rectangle visarea = *video_screen_get_visible_area(machine->primary_screen);
|
||||
|
||||
tilemap_set_flip_all(machine,(TILEMAP_FLIPX & flip_screen_x) | (TILEMAP_FLIPY & flip_screen_y));
|
||||
tilemap_set_flip_all(machine,(TILEMAP_FLIPX & state->flip_screen_x) | (TILEMAP_FLIPY & state->flip_screen_y));
|
||||
|
||||
if (flip_screen_x)
|
||||
if (state->flip_screen_x)
|
||||
{
|
||||
int temp;
|
||||
|
||||
@ -414,7 +405,7 @@ static void updateflip(running_machine *machine)
|
||||
visarea.min_x = width - visarea.max_x - 1;
|
||||
visarea.max_x = temp;
|
||||
}
|
||||
if (flip_screen_y)
|
||||
if (state->flip_screen_y)
|
||||
{
|
||||
int temp;
|
||||
|
||||
@ -450,7 +441,8 @@ void flip_screen_set_no_update(running_machine *machine, int on)
|
||||
* where writing to flip_screen_x to
|
||||
* bypass update_flip
|
||||
*/
|
||||
flip_screen_x = on;
|
||||
generic_video_private *state = machine->generic_video_data;
|
||||
state->flip_screen_x = on;
|
||||
}
|
||||
|
||||
|
||||
@ -460,10 +452,11 @@ void flip_screen_set_no_update(running_machine *machine, int on)
|
||||
|
||||
void flip_screen_x_set(running_machine *machine, int on)
|
||||
{
|
||||
generic_video_private *state = machine->generic_video_data;
|
||||
if (on) on = ~0;
|
||||
if (flip_screen_x != on)
|
||||
if (state->flip_screen_x != on)
|
||||
{
|
||||
flip_screen_x = on;
|
||||
state->flip_screen_x = on;
|
||||
updateflip(machine);
|
||||
}
|
||||
}
|
||||
@ -475,10 +468,11 @@ void flip_screen_x_set(running_machine *machine, int on)
|
||||
|
||||
void flip_screen_y_set(running_machine *machine, int on)
|
||||
{
|
||||
generic_video_private *state = machine->generic_video_data;
|
||||
if (on) on = ~0;
|
||||
if (flip_screen_y != on)
|
||||
if (state->flip_screen_y != on)
|
||||
{
|
||||
flip_screen_y = on;
|
||||
state->flip_screen_y = on;
|
||||
updateflip(machine);
|
||||
}
|
||||
}
|
||||
@ -490,7 +484,8 @@ void flip_screen_y_set(running_machine *machine, int on)
|
||||
|
||||
int flip_screen_get(running_machine *machine)
|
||||
{
|
||||
return flip_screen_x;
|
||||
generic_video_private *state = machine->generic_video_data;
|
||||
return state->flip_screen_x;
|
||||
}
|
||||
|
||||
|
||||
@ -500,7 +495,8 @@ int flip_screen_get(running_machine *machine)
|
||||
|
||||
int flip_screen_x_get(running_machine *machine)
|
||||
{
|
||||
return flip_screen_x;
|
||||
generic_video_private *state = machine->generic_video_data;
|
||||
return state->flip_screen_x;
|
||||
}
|
||||
|
||||
|
||||
@ -510,7 +506,8 @@ int flip_screen_x_get(running_machine *machine)
|
||||
|
||||
int flip_screen_y_get(running_machine *machine)
|
||||
{
|
||||
return flip_screen_y;
|
||||
generic_video_private *state = machine->generic_video_data;
|
||||
return state->flip_screen_y;
|
||||
}
|
||||
|
||||
|
||||
|
@ -18,14 +18,6 @@
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
GLOBAL VARIABLES
|
||||
***************************************************************************/
|
||||
|
||||
extern bitmap_t *tmpbitmap;
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
COMMON GRAPHICS LAYOUTS
|
||||
***************************************************************************/
|
||||
|
@ -83,7 +83,7 @@ static INTERRUPT_GEN( big10_interrupt )
|
||||
static VIDEO_START( big10 )
|
||||
{
|
||||
VIDEO_START_CALL(generic_bitmapped);
|
||||
v9938_init (machine, 0, machine->primary_screen, tmpbitmap, MODEL_V9938, VDP_MEM, big10_vdp_interrupt);
|
||||
v9938_init (machine, 0, machine->primary_screen, machine->generic.tmpbitmap, MODEL_V9938, VDP_MEM, big10_vdp_interrupt);
|
||||
v9938_reset(0);
|
||||
}
|
||||
|
||||
|
@ -102,7 +102,7 @@ static WRITE8_HANDLER( gei_bitmap_w )
|
||||
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
*BITMAP_ADDR16(tmpbitmap, sy, sx+i) = color[8-i-1];
|
||||
*BITMAP_ADDR16(space->machine->generic.tmpbitmap, sy, sx+i) = color[8-i-1];
|
||||
}
|
||||
|
||||
static PALETTE_INIT(gei)
|
||||
|
@ -213,7 +213,7 @@ static INTERRUPT_GEN( sangho_interrupt )
|
||||
static VIDEO_START( sangho )
|
||||
{
|
||||
VIDEO_START_CALL(generic_bitmapped);
|
||||
v9938_init (machine, 0, machine->primary_screen, tmpbitmap, MODEL_V9938, 0x20000, msx_vdp_interrupt);
|
||||
v9938_init (machine, 0, machine->primary_screen, machine->generic.tmpbitmap, MODEL_V9938, 0x20000, msx_vdp_interrupt);
|
||||
}
|
||||
|
||||
static MACHINE_DRIVER_START(pzlestar)
|
||||
|
@ -61,7 +61,7 @@ static TILE_GET_INFO( get_sb_tile_info )
|
||||
SET_TILE_INFO(0, tileno, 0, 0);
|
||||
}
|
||||
|
||||
static void plot_pixel_sbw(int x, int y, int col, int flip)
|
||||
static void plot_pixel_sbw(bitmap_t *tmpbitmap, int x, int y, int col, int flip)
|
||||
{
|
||||
if (flip)
|
||||
{
|
||||
@ -88,7 +88,7 @@ static WRITE8_HANDLER( sbw_videoram_w )
|
||||
|
||||
for(i = 0; i < 8; i++)
|
||||
{
|
||||
plot_pixel_sbw(x++, y, color_prom_address | ( ((v1&1)*0x20) | ((v2&1)*0x40) ), flip);
|
||||
plot_pixel_sbw(space->machine->generic.tmpbitmap, x++, y, color_prom_address | ( ((v1&1)*0x20) | ((v2&1)*0x40) ), flip);
|
||||
v1 >>= 1;
|
||||
v2 >>= 1;
|
||||
}
|
||||
@ -98,13 +98,13 @@ static VIDEO_UPDATE(sbowling)
|
||||
{
|
||||
bitmap_fill(bitmap,cliprect,0x18);
|
||||
tilemap_draw(bitmap,cliprect,sb_tilemap,0,0);
|
||||
copybitmap_trans(bitmap,tmpbitmap,0,0,0,0,cliprect, color_prom_address);
|
||||
copybitmap_trans(bitmap,screen->machine->generic.tmpbitmap,0,0,0,0,cliprect, color_prom_address);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static VIDEO_START(sbowling)
|
||||
{
|
||||
tmpbitmap = auto_bitmap_alloc(machine,32*8,32*8,video_screen_get_format(machine->primary_screen));
|
||||
machine->generic.tmpbitmap = auto_bitmap_alloc(machine,32*8,32*8,video_screen_get_format(machine->primary_screen));
|
||||
sb_tilemap = tilemap_create(machine, get_sb_tile_info, tilemap_scan_rows, 8, 8, 32, 32);
|
||||
}
|
||||
|
||||
|
@ -419,7 +419,7 @@ static void sfkick_vdp_interrupt(running_machine *machine, int i)
|
||||
static VIDEO_START( sfkick )
|
||||
{
|
||||
VIDEO_START_CALL(generic_bitmapped);
|
||||
v9938_init (machine, 0, machine->primary_screen, tmpbitmap, MODEL_V9938, 0x80000, sfkick_vdp_interrupt);
|
||||
v9938_init (machine, 0, machine->primary_screen, machine->generic.tmpbitmap, MODEL_V9938, 0x80000, sfkick_vdp_interrupt);
|
||||
v9938_reset(0);
|
||||
}
|
||||
|
||||
|
@ -322,7 +322,7 @@ static const msm5205_interface msm_interface =
|
||||
static VIDEO_START( sothello )
|
||||
{
|
||||
VIDEO_START_CALL(generic_bitmapped);
|
||||
v9938_init (machine, 0, machine->primary_screen, tmpbitmap, MODEL_V9938, VDP_MEM, sothello_vdp_interrupt);
|
||||
v9938_init (machine, 0, machine->primary_screen, machine->generic.tmpbitmap, MODEL_V9938, VDP_MEM, sothello_vdp_interrupt);
|
||||
v9938_reset(0);
|
||||
}
|
||||
|
||||
|
@ -1043,7 +1043,7 @@ static void antic_linerefresh(running_machine *machine)
|
||||
dst[2] = antic.color_lookup[PBK] | antic.color_lookup[PBK] << 16;
|
||||
dst[3] = antic.color_lookup[PBK] | antic.color_lookup[PBK] << 16;
|
||||
|
||||
draw_scanline8(tmpbitmap, 12, y, MIN(tmpbitmap->width - 12, sizeof(scanline)), (const UINT8 *) scanline, NULL);
|
||||
draw_scanline8(machine->generic.tmpbitmap, 12, y, MIN(machine->generic.tmpbitmap->width - 12, sizeof(scanline)), (const UINT8 *) scanline, NULL);
|
||||
}
|
||||
|
||||
static int cycle(running_machine *machine)
|
||||
|
@ -8,7 +8,7 @@ static bitmap_t *sprites_bitmap;
|
||||
|
||||
VIDEO_START( galpanic )
|
||||
{
|
||||
tmpbitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
|
||||
machine->generic.tmpbitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
|
||||
sprites_bitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
|
||||
|
||||
pandora_start(machine,0,0, -16);
|
||||
@ -37,7 +37,7 @@ WRITE16_HANDLER( galpanic_bgvideoram_w )
|
||||
sy = offset / 256;
|
||||
sx = offset % 256;
|
||||
|
||||
*BITMAP_ADDR16(tmpbitmap, sy, sx) = 1024 + (data >> 1);
|
||||
*BITMAP_ADDR16(space->machine->generic.tmpbitmap, sy, sx) = 1024 + (data >> 1);
|
||||
}
|
||||
|
||||
WRITE16_HANDLER( galpanic_paletteram_w )
|
||||
@ -104,7 +104,7 @@ static void draw_fgbitmap(bitmap_t *bitmap, const rectangle *cliprect)
|
||||
VIDEO_UPDATE( galpanic )
|
||||
{
|
||||
/* copy the temporary bitmap to the screen */
|
||||
copybitmap(bitmap,tmpbitmap,0,0,0,0,cliprect);
|
||||
copybitmap(bitmap,screen->machine->generic.tmpbitmap,0,0,0,0,cliprect);
|
||||
|
||||
draw_fgbitmap(bitmap, cliprect);
|
||||
|
||||
@ -116,7 +116,7 @@ VIDEO_UPDATE( galpanic )
|
||||
VIDEO_UPDATE( comad )
|
||||
{
|
||||
/* copy the temporary bitmap to the screen */
|
||||
copybitmap(bitmap,tmpbitmap,0,0,0,0,cliprect);
|
||||
copybitmap(bitmap,screen->machine->generic.tmpbitmap,0,0,0,0,cliprect);
|
||||
|
||||
draw_fgbitmap(bitmap,cliprect);
|
||||
|
||||
|
@ -78,7 +78,7 @@ VIDEO_START( magmax )
|
||||
prom_tab = auto_alloc_array(machine, UINT32, 256);
|
||||
|
||||
/* Allocate temporary bitmap */
|
||||
tmpbitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
|
||||
machine->generic.tmpbitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
|
||||
|
||||
for (i=0; i<256; i++)
|
||||
{
|
||||
@ -108,7 +108,7 @@ VIDEO_UPDATE( magmax )
|
||||
UINT32 scroll_v = (*magmax_scroll_y) & 0xff;
|
||||
|
||||
/*clear background-over-sprites bitmap*/
|
||||
bitmap_fill(tmpbitmap, NULL, 0);
|
||||
bitmap_fill(screen->machine->generic.tmpbitmap, NULL, 0);
|
||||
|
||||
for (v = 2*8; v < 30*8; v++) /*only for visible area*/
|
||||
{
|
||||
@ -159,7 +159,7 @@ VIDEO_UPDATE( magmax )
|
||||
|
||||
/*priority: background over sprites*/
|
||||
if (map_v_scr_100 && ((graph_data & 0x0c)==0x0c))
|
||||
*BITMAP_ADDR16(tmpbitmap, v, h) = line_data[h];
|
||||
*BITMAP_ADDR16(screen->machine->generic.tmpbitmap, v, h) = line_data[h];
|
||||
}
|
||||
|
||||
if (flipscreen)
|
||||
@ -214,7 +214,7 @@ VIDEO_UPDATE( magmax )
|
||||
}
|
||||
|
||||
if (!(*magmax_vreg & 0x40)) /* background disable */
|
||||
copybitmap_trans(bitmap, tmpbitmap, flipscreen,flipscreen,0,0, cliprect, 0);
|
||||
copybitmap_trans(bitmap, screen->machine->generic.tmpbitmap, flipscreen,flipscreen,0,0, cliprect, 0);
|
||||
|
||||
/* draw the foreground characters */
|
||||
for (offs = 32*32-1; offs >= 0; offs -= 1)
|
||||
|
@ -22,6 +22,7 @@ size_t matmania_videoram2_size;
|
||||
UINT8 *matmania_videoram3,*matmania_colorram3;
|
||||
size_t matmania_videoram3_size;
|
||||
UINT8 *matmania_scroll;
|
||||
static bitmap_t *tmpbitmap;
|
||||
static bitmap_t *tmpbitmap2;
|
||||
|
||||
UINT8 *matmania_pageselect;
|
||||
|
@ -109,7 +109,7 @@ WRITE8_HANDLER( megazone_flipscreen_w )
|
||||
|
||||
VIDEO_START( megazone )
|
||||
{
|
||||
tmpbitmap = auto_bitmap_alloc(machine,256,256,video_screen_get_format(machine->primary_screen));
|
||||
machine->generic.tmpbitmap = auto_bitmap_alloc(machine,256,256,video_screen_get_format(machine->primary_screen));
|
||||
}
|
||||
|
||||
|
||||
@ -135,7 +135,7 @@ VIDEO_UPDATE( megazone )
|
||||
flipy = !flipy;
|
||||
}
|
||||
|
||||
drawgfx_opaque(tmpbitmap,0,screen->machine->gfx[1],
|
||||
drawgfx_opaque(screen->machine->generic.tmpbitmap,0,screen->machine->gfx[1],
|
||||
((int)screen->machine->generic.videoram.u8[offs]) + ((screen->machine->generic.colorram.u8[offs] & (1<<7) ? 256 : 0) ),
|
||||
(screen->machine->generic.colorram.u8[offs] & 0x0f) + 0x10,
|
||||
flipx,flipy,
|
||||
@ -159,7 +159,7 @@ VIDEO_UPDATE( megazone )
|
||||
}
|
||||
|
||||
|
||||
copyscrollbitmap(bitmap,tmpbitmap,1,&scrollx,1,&scrolly,cliprect);
|
||||
copyscrollbitmap(bitmap,screen->machine->generic.tmpbitmap,1,&scrollx,1,&scrolly,cliprect);
|
||||
}
|
||||
|
||||
|
||||
|
@ -50,7 +50,7 @@ WRITE8_HANDLER( mnchmobl_flipscreen_w )
|
||||
|
||||
VIDEO_START( mnchmobl )
|
||||
{
|
||||
tmpbitmap = auto_bitmap_alloc(machine,512,512,video_screen_get_format(machine->primary_screen));
|
||||
machine->generic.tmpbitmap = auto_bitmap_alloc(machine,512,512,video_screen_get_format(machine->primary_screen));
|
||||
}
|
||||
|
||||
static void draw_status(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect)
|
||||
@ -100,7 +100,7 @@ static void draw_background(running_machine *machine, bitmap_t *bitmap, const re
|
||||
{
|
||||
for( col=0; col<4; col++ )
|
||||
{
|
||||
drawgfx_opaque( tmpbitmap,0, gfx,
|
||||
drawgfx_opaque( machine->generic.tmpbitmap,0, gfx,
|
||||
rom[col+tile_number*4+row*0x400],
|
||||
mnchmobl_palette_bank,
|
||||
0,0, /* flip */
|
||||
@ -113,7 +113,7 @@ static void draw_background(running_machine *machine, bitmap_t *bitmap, const re
|
||||
int scrollx = -(mnchmobl_vreg[6]*2+(mnchmobl_vreg[7]>>7))-64-128-16;
|
||||
int scrolly = 0;
|
||||
|
||||
copyscrollbitmap(bitmap,tmpbitmap, 1,&scrollx,1,&scrolly, cliprect);
|
||||
copyscrollbitmap(bitmap,machine->generic.tmpbitmap, 1,&scrollx,1,&scrolly, cliprect);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -110,7 +110,7 @@ VIDEO_START( naughtyb )
|
||||
palreg = bankreg = 0;
|
||||
|
||||
/* Naughty Boy has a virtual screen twice as large as the visible screen */
|
||||
tmpbitmap = auto_bitmap_alloc(machine,68*8,28*8,video_screen_get_format(machine->primary_screen));
|
||||
machine->generic.tmpbitmap = auto_bitmap_alloc(machine,68*8,28*8,video_screen_get_format(machine->primary_screen));
|
||||
}
|
||||
|
||||
|
||||
@ -223,13 +223,13 @@ VIDEO_UPDATE( naughtyb )
|
||||
}
|
||||
}
|
||||
|
||||
drawgfx_opaque(tmpbitmap,0,screen->machine->gfx[0],
|
||||
drawgfx_opaque(screen->machine->generic.tmpbitmap,0,screen->machine->gfx[0],
|
||||
naughtyb_videoram2[offs] + 256 * bankreg,
|
||||
(naughtyb_videoram2[offs] >> 5) + 8 * palreg,
|
||||
naughtyb_cocktail,naughtyb_cocktail,
|
||||
8*sx,8*sy);
|
||||
|
||||
drawgfx_transpen(tmpbitmap,0,screen->machine->gfx[1],
|
||||
drawgfx_transpen(screen->machine->generic.tmpbitmap,0,screen->machine->gfx[1],
|
||||
screen->machine->generic.videoram.u8[offs] + 256*bankreg,
|
||||
(screen->machine->generic.videoram.u8[offs] >> 5) + 8 * palreg,
|
||||
naughtyb_cocktail,naughtyb_cocktail,
|
||||
@ -240,11 +240,11 @@ VIDEO_UPDATE( naughtyb )
|
||||
{
|
||||
int scrollx;
|
||||
|
||||
copybitmap(bitmap,tmpbitmap,0,0,-66*8,0,&leftvisiblearea);
|
||||
copybitmap(bitmap,tmpbitmap,0,0,-30*8,0,&rightvisiblearea);
|
||||
copybitmap(bitmap,screen->machine->generic.tmpbitmap,0,0,-66*8,0,&leftvisiblearea);
|
||||
copybitmap(bitmap,screen->machine->generic.tmpbitmap,0,0,-30*8,0,&rightvisiblearea);
|
||||
|
||||
scrollx = ( naughtyb_cocktail ) ? *naughtyb_scrollreg - 239 : -*naughtyb_scrollreg + 16;
|
||||
copyscrollbitmap(bitmap,tmpbitmap,1,&scrollx,0,0,&scrollvisiblearea);
|
||||
copyscrollbitmap(bitmap,screen->machine->generic.tmpbitmap,1,&scrollx,0,0,&scrollvisiblearea);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -141,8 +141,8 @@ WRITE8_HANDLER( paradise_pixmap_w )
|
||||
x = (offset & 0x7f) << 1;
|
||||
y = (offset >> 7);
|
||||
|
||||
*BITMAP_ADDR16(tmpbitmap, y, x+0) = 0x80f - (data >> 4);
|
||||
*BITMAP_ADDR16(tmpbitmap, y, x+1) = 0x80f - (data & 0x0f);
|
||||
*BITMAP_ADDR16(space->machine->generic.tmpbitmap, y, x+0) = 0x80f - (data >> 4);
|
||||
*BITMAP_ADDR16(space->machine->generic.tmpbitmap, y, x+1) = 0x80f - (data & 0x0f);
|
||||
}
|
||||
|
||||
|
||||
@ -159,7 +159,7 @@ VIDEO_START( paradise )
|
||||
tilemap_2 = tilemap_create( machine, get_tile_info_2, tilemap_scan_rows, 8,8, 0x20,0x20 );
|
||||
|
||||
/* pixmap */
|
||||
tmpbitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
|
||||
machine->generic.tmpbitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
|
||||
|
||||
tilemap_set_transparent_pen(tilemap_0,0x0f);
|
||||
tilemap_set_transparent_pen(tilemap_1,0xff);
|
||||
@ -251,7 +251,7 @@ if (input_code_pressed(screen->machine, KEYCODE_Z))
|
||||
|
||||
if (layers_ctrl&1) tilemap_draw(bitmap,cliprect, tilemap_0, 0,0);
|
||||
if (layers_ctrl&2) tilemap_draw(bitmap,cliprect, tilemap_1, 0,0);
|
||||
if (layers_ctrl&4) copybitmap_trans(bitmap,tmpbitmap,flip_screen_get(screen->machine),flip_screen_get(screen->machine),0,0,cliprect, 0x80f);
|
||||
if (layers_ctrl&4) copybitmap_trans(bitmap,screen->machine->generic.tmpbitmap,flip_screen_get(screen->machine),flip_screen_get(screen->machine),0,0,cliprect, 0x80f);
|
||||
|
||||
if (paradise_priority & 2)
|
||||
{
|
||||
|
@ -72,7 +72,7 @@ VIDEO_START( tunhunt )
|
||||
We keep track of dirty lines and cache the expanded bitmap.
|
||||
With max RLE expansion, bitmap size is 256x64.
|
||||
*/
|
||||
tmpbitmap = auto_bitmap_alloc(machine, 256, 64, video_screen_get_format(machine->primary_screen));
|
||||
machine->generic.tmpbitmap = auto_bitmap_alloc(machine, 256, 64, video_screen_get_format(machine->primary_screen));
|
||||
|
||||
fg_tilemap = tilemap_create(machine, get_fg_tile_info, tilemap_scan_cols, 8, 8, 32, 32);
|
||||
|
||||
@ -196,7 +196,7 @@ static void set_pens(running_machine *machine)
|
||||
}
|
||||
}
|
||||
|
||||
static void draw_motion_object(bitmap_t *bitmap, const rectangle *cliprect, UINT8 *spriteram)
|
||||
static void draw_motion_object(bitmap_t *bitmap, bitmap_t *tmpbitmap, const rectangle *cliprect, UINT8 *spriteram)
|
||||
{
|
||||
/*
|
||||
* VSTRLO 0x1202
|
||||
@ -371,7 +371,7 @@ VIDEO_UPDATE( tunhunt )
|
||||
|
||||
draw_box(bitmap, cliprect);
|
||||
|
||||
draw_motion_object(bitmap, cliprect, screen->machine->generic.spriteram.u8);
|
||||
draw_motion_object(bitmap, screen->machine->generic.tmpbitmap, cliprect, screen->machine->generic.spriteram.u8);
|
||||
|
||||
draw_shell(screen->machine, bitmap, cliprect,
|
||||
tunhunt_ram[SHL0PC], /* picture code */
|
||||
|
@ -140,7 +140,7 @@ VIDEO_START( tinvader )
|
||||
24, 24, 32, 32);
|
||||
|
||||
spritebitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
|
||||
tmpbitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
|
||||
machine->generic.tmpbitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
|
||||
|
||||
gfx_element_set_source(machine->gfx[1], zac2650_s2636_0_ram);
|
||||
gfx_element_set_source(machine->gfx[2], zac2650_s2636_0_ram);
|
||||
@ -165,7 +165,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap)
|
||||
CollisionBackground = 0; /* Read from 0x1e80 bit 7 */
|
||||
|
||||
// for collision detection checking
|
||||
copybitmap(tmpbitmap,bitmap,0,0,0,0,visarea);
|
||||
copybitmap(machine->generic.tmpbitmap,bitmap,0,0,0,0,visarea);
|
||||
|
||||
for(offs=0;offs<0x50;offs+=0x10)
|
||||
{
|
||||
@ -196,7 +196,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap)
|
||||
continue;
|
||||
}
|
||||
|
||||
if (*BITMAP_ADDR16(bitmap, y, x) != *BITMAP_ADDR16(tmpbitmap, y, x))
|
||||
if (*BITMAP_ADDR16(bitmap, y, x) != *BITMAP_ADDR16(machine->generic.tmpbitmap, y, x))
|
||||
{
|
||||
CollisionBackground = 0x80;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user