summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2009-11-28 08:31:22 +0000
committer Aaron Giles <aaron@aarongiles.com>2009-11-28 08:31:22 +0000
commit5e643c1251f6ed1f8b427d02940392db7761c00b (patch)
treed77ca9891502e335a6588ffb88698d3b9533ea1e
parent6bfe172c789792068f959376006a711f7a407d68 (diff)
Purged remaining globals from video/generic.c and audio/generic.c
-rw-r--r--src/emu/audio/generic.c70
-rw-r--r--src/emu/mame.h5
-rw-r--r--src/emu/video/generic.c69
-rw-r--r--src/emu/video/generic.h8
-rw-r--r--src/mame/drivers/big10.c2
-rw-r--r--src/mame/drivers/gei.c2
-rw-r--r--src/mame/drivers/sangho.c2
-rw-r--r--src/mame/drivers/sbowling.c8
-rw-r--r--src/mame/drivers/sfkick.c2
-rw-r--r--src/mame/drivers/sothello.c2
-rw-r--r--src/mame/video/atari.c2
-rw-r--r--src/mame/video/galpanic.c8
-rw-r--r--src/mame/video/magmax.c8
-rw-r--r--src/mame/video/matmania.c1
-rw-r--r--src/mame/video/megazone.c6
-rw-r--r--src/mame/video/munchmo.c6
-rw-r--r--src/mame/video/naughtyb.c12
-rw-r--r--src/mame/video/paradise.c8
-rw-r--r--src/mame/video/tunhunt.c6
-rw-r--r--src/mame/video/zac2650.c6
20 files changed, 117 insertions, 116 deletions
diff --git a/src/emu/audio/generic.c b/src/emu/audio/generic.c
index c4618554f2c..41eb35a0314 100644
--- a/src/emu/audio/generic.c
+++ b/src/emu/audio/generic.c
@@ -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;
}
diff --git a/src/emu/mame.h b/src/emu/mame.h
index 4969978a21f..39a698b70a6 100644
--- a/src/emu/mame.h
+++ b/src/emu/mame.h
@@ -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 */
diff --git a/src/emu/video/generic.c b/src/emu/video/generic.c
index a5fae8344cf..af79d3c6b01 100644
--- a/src/emu/video/generic.c
+++ b/src/emu/video/generic.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;
}
diff --git a/src/emu/video/generic.h b/src/emu/video/generic.h
index cdbde21025a..64eb05cb259 100644
--- a/src/emu/video/generic.h
+++ b/src/emu/video/generic.h
@@ -19,14 +19,6 @@
/***************************************************************************
- GLOBAL VARIABLES
-***************************************************************************/
-
-extern bitmap_t *tmpbitmap;
-
-
-
-/***************************************************************************
COMMON GRAPHICS LAYOUTS
***************************************************************************/
diff --git a/src/mame/drivers/big10.c b/src/mame/drivers/big10.c
index 8e3f99987f0..65a6238348e 100644
--- a/src/mame/drivers/big10.c
+++ b/src/mame/drivers/big10.c
@@ -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);
}
diff --git a/src/mame/drivers/gei.c b/src/mame/drivers/gei.c
index bb9d1eb28f2..681699cce3f 100644
--- a/src/mame/drivers/gei.c
+++ b/src/mame/drivers/gei.c
@@ -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)
diff --git a/src/mame/drivers/sangho.c b/src/mame/drivers/sangho.c
index 06ddd5c9b76..94cb86d4184 100644
--- a/src/mame/drivers/sangho.c
+++ b/src/mame/drivers/sangho.c
@@ -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)
diff --git a/src/mame/drivers/sbowling.c b/src/mame/drivers/sbowling.c
index b5c3bf470dc..d4850d661e8 100644
--- a/src/mame/drivers/sbowling.c
+++ b/src/mame/drivers/sbowling.c
@@ -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);
}
diff --git a/src/mame/drivers/sfkick.c b/src/mame/drivers/sfkick.c
index ac08c539fa4..de8210f0cc3 100644
--- a/src/mame/drivers/sfkick.c
+++ b/src/mame/drivers/sfkick.c
@@ -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);
}
diff --git a/src/mame/drivers/sothello.c b/src/mame/drivers/sothello.c
index 930decb6cdb..37be8def0c2 100644
--- a/src/mame/drivers/sothello.c
+++ b/src/mame/drivers/sothello.c
@@ -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);
}
diff --git a/src/mame/video/atari.c b/src/mame/video/atari.c
index 46cf85640be..b778f396b3b 100644
--- a/src/mame/video/atari.c
+++ b/src/mame/video/atari.c
@@ -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)
diff --git a/src/mame/video/galpanic.c b/src/mame/video/galpanic.c
index ec3c84f4b65..cac510121e3 100644
--- a/src/mame/video/galpanic.c
+++ b/src/mame/video/galpanic.c
@@ -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);
diff --git a/src/mame/video/magmax.c b/src/mame/video/magmax.c
index 22c1040b0fe..36ee6e3c337 100644
--- a/src/mame/video/magmax.c
+++ b/src/mame/video/magmax.c
@@ -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)
diff --git a/src/mame/video/matmania.c b/src/mame/video/matmania.c
index 001d89bd9ed..ab173ed22c7 100644
--- a/src/mame/video/matmania.c
+++ b/src/mame/video/matmania.c
@@ -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;
diff --git a/src/mame/video/megazone.c b/src/mame/video/megazone.c
index ad2cc2fa295..750745e46f5 100644
--- a/src/mame/video/megazone.c
+++ b/src/mame/video/megazone.c
@@ -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);
}
diff --git a/src/mame/video/munchmo.c b/src/mame/video/munchmo.c
index f5748663178..e766d394846 100644
--- a/src/mame/video/munchmo.c
+++ b/src/mame/video/munchmo.c
@@ -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);
}
}
diff --git a/src/mame/video/naughtyb.c b/src/mame/video/naughtyb.c
index 558b682c99c..b366b21c9d5 100644
--- a/src/mame/video/naughtyb.c
+++ b/src/mame/video/naughtyb.c
@@ -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;
}
diff --git a/src/mame/video/paradise.c b/src/mame/video/paradise.c
index 02712cab813..5fa9a70dffd 100644
--- a/src/mame/video/paradise.c
+++ b/src/mame/video/paradise.c
@@ -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)
{
diff --git a/src/mame/video/tunhunt.c b/src/mame/video/tunhunt.c
index af181660bcf..84fb86804d4 100644
--- a/src/mame/video/tunhunt.c
+++ b/src/mame/video/tunhunt.c
@@ -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 */
diff --git a/src/mame/video/zac2650.c b/src/mame/video/zac2650.c
index d833bd57515..adcc5b26ee1 100644
--- a/src/mame/video/zac2650.c
+++ b/src/mame/video/zac2650.c
@@ -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;