summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2012-01-15 01:13:13 +0000
committer Aaron Giles <aaron@aarongiles.com>2012-01-15 01:13:13 +0000
commitd57d1f3273a0c8542ee12ac7dbfa05ceac591061 (patch)
tree0ce77a6150ba41fa726487a0c4f06a6fa532010d
parent61cb12528c4ae1a88b70d63e855ddd899bd4e80e (diff)
Added new method screen_device::register_screen_bitmap which
allocates a given bitmap to match the screen size and resizes it as appropriate when the screen size changes. Updated all the obvious spots in the code where this could be leveraged. Move allocate/resize methods in the bitmap classes down into bitmap_t because they no longer have any dependency on the bitmap format or type. Ensured that the bitmap's palette remains set across a resize call (it is lost doing an allocate).
-rw-r--r--src/emu/machine.c4
-rw-r--r--src/emu/machine/laserdsc.c2
-rw-r--r--src/emu/screen.c77
-rw-r--r--src/emu/screen.h81
-rw-r--r--src/emu/sound/cdp1864.c2
-rw-r--r--src/emu/tilemap.c14
-rw-r--r--src/emu/video/315_5124.c6
-rw-r--r--src/emu/video/cdp1861.c2
-rw-r--r--src/emu/video/cdp1862.c2
-rw-r--r--src/emu/video/v9938.c3
-rw-r--r--src/lib/util/bitmap.c7
-rw-r--r--src/lib/util/bitmap.h24
-rw-r--r--src/mame/drivers/astrocorp.c2
-rw-r--r--src/mame/drivers/coolridr.c5
-rw-r--r--src/mame/drivers/gei.c2
-rw-r--r--src/mame/drivers/lastfght.c2
-rw-r--r--src/mame/drivers/mazerbla.c8
-rw-r--r--src/mame/drivers/sliver.c4
-rw-r--r--src/mame/drivers/sms.c2
-rw-r--r--src/mame/drivers/taitotz.c2
-rw-r--r--src/mame/drivers/tmaster.c2
-rw-r--r--src/mame/video/airbustr.c2
-rw-r--r--src/mame/video/argus.c2
-rw-r--r--src/mame/video/bigevglf.c8
-rw-r--r--src/mame/video/bking.c4
-rw-r--r--src/mame/video/blockout.c2
-rw-r--r--src/mame/video/buggychl.c4
-rw-r--r--src/mame/video/cave.c4
-rw-r--r--src/mame/video/ccastles.c2
-rw-r--r--src/mame/video/changela.c8
-rw-r--r--src/mame/video/cloud9.c2
-rw-r--r--src/mame/video/cvs.c6
-rw-r--r--src/mame/video/dday.c2
-rw-r--r--src/mame/video/decospr.c2
-rw-r--r--src/mame/video/dkong.c4
-rw-r--r--src/mame/video/dogfgt.c2
-rw-r--r--src/mame/video/exidy.c2
-rw-r--r--src/mame/video/fgoal.c4
-rw-r--r--src/mame/video/firetrk.c12
-rw-r--r--src/mame/video/gaiden.c24
-rw-r--r--src/mame/video/galastrm.c4
-rw-r--r--src/mame/video/galpanic.c4
-rw-r--r--src/mame/video/gomoku.c2
-rw-r--r--src/mame/video/hyhoo.c2
-rw-r--r--src/mame/video/ikki.c2
-rw-r--r--src/mame/video/kaneko16.c4
-rw-r--r--src/mame/video/magmax.c2
-rw-r--r--src/mame/video/mappy.c2
-rw-r--r--src/mame/video/mcd212.c4
-rw-r--r--src/mame/video/mermaid.c4
-rw-r--r--src/mame/video/model3.c7
-rw-r--r--src/mame/video/ms32.c8
-rw-r--r--src/mame/video/nbmj8891.c6
-rw-r--r--src/mame/video/nbmj8900.c4
-rw-r--r--src/mame/video/nbmj8991.c2
-rw-r--r--src/mame/video/nbmj9195.c10
-rw-r--r--src/mame/video/ninjakd2.c2
-rw-r--r--src/mame/video/niyanpai.c6
-rw-r--r--src/mame/video/ojankohs.c2
-rw-r--r--src/mame/video/pacland.c2
-rw-r--r--src/mame/video/paradise.c2
-rw-r--r--src/mame/video/psikyosh.c4
-rw-r--r--src/mame/video/quasar.c2
-rw-r--r--src/mame/video/shangha3.c2
-rw-r--r--src/mame/video/spbactn.c7
-rw-r--r--src/mame/video/sprint2.c2
-rw-r--r--src/mame/video/sprint4.c2
-rw-r--r--src/mame/video/sprint8.c4
-rw-r--r--src/mame/video/starfire.c2
-rw-r--r--src/mame/video/starshp1.c2
-rw-r--r--src/mame/video/taito_f3.c6
-rw-r--r--src/mame/video/taitojc.c8
-rw-r--r--src/mame/video/taitosj.c4
-rw-r--r--src/mame/video/tank8.c6
-rw-r--r--src/mame/video/tceptor.c2
-rw-r--r--src/mame/video/tecmo16.c24
-rw-r--r--src/mame/video/toaplan2.c6
-rw-r--r--src/mame/video/toobin.c2
-rw-r--r--src/mame/video/triplhnt.c2
-rw-r--r--src/mame/video/ultratnk.c2
-rw-r--r--src/mame/video/wolfpack.c2
-rw-r--r--src/mame/video/zac2650.c4
82 files changed, 232 insertions, 293 deletions
diff --git a/src/emu/machine.c b/src/emu/machine.c
index 3e6df66a619..70526399393 100644
--- a/src/emu/machine.c
+++ b/src/emu/machine.c
@@ -450,6 +450,10 @@ int running_machine::run(bool firstrun)
error = MAMERR_FATALERROR;
}
+ // make sure our phase is set properly before cleaning up,
+ // in case we got here via exception
+ m_current_phase = MACHINE_PHASE_EXIT;
+
// call all exit callbacks registered
call_notifiers(MACHINE_NOTIFY_EXIT);
zip_file_cache_clear();
diff --git a/src/emu/machine/laserdsc.c b/src/emu/machine/laserdsc.c
index 871539159f0..4bc0878fc8e 100644
--- a/src/emu/machine/laserdsc.c
+++ b/src/emu/machine/laserdsc.c
@@ -864,8 +864,8 @@ void laserdisc_device::init_video()
for (int index = 0; index < ARRAY_LENGTH(m_overbitmap); index++)
{
m_overbitmap[index].set_format(format, texformat);
- m_overbitmap[index].allocate(m_overwidth, m_overheight);
m_overbitmap[index].set_palette(machine().palette);
+ m_overbitmap[index].resize(m_overwidth, m_overheight);
}
// allocate overlay texture
diff --git a/src/emu/screen.c b/src/emu/screen.c
index 4659792b324..e4a11fa05af 100644
--- a/src/emu/screen.c
+++ b/src/emu/screen.c
@@ -300,10 +300,17 @@ void screen_device::device_start()
m_screen_update_rgb32.bind_relative_to(*owner());
m_screen_vblank.bind_relative_to(*owner());
- // configure bitmap formats
+ // configure bitmap formats and allocate screen bitmaps
texture_format texformat = !m_screen_update_ind16.isnull() ? TEXFORMAT_PALETTE16 : TEXFORMAT_RGB32;
for (int index = 0; index < ARRAY_LENGTH(m_bitmap); index++)
+ {
m_bitmap[index].set_format(format(), texformat);
+ register_screen_bitmap(m_bitmap[index]);
+ }
+
+ // allocate raw textures
+ m_texture[0] = machine().render().texture_alloc();
+ m_texture[1] = machine().render().texture_alloc();
// configure the default cliparea
render_container::user_settings settings;
@@ -522,39 +529,13 @@ void screen_device::realloc_screen_bitmaps()
if (m_type == SCREEN_TYPE_VECTOR)
return;
- // extract the current width/height from the bitmap
- int curwidth = 0, curheight = 0;
- if (m_bitmap[0].valid())
- {
- curwidth = m_bitmap[0].width();
- curheight = m_bitmap[0].height();
- }
+ // reize all registered screen bitmaps
+ for (auto_bitmap_item *item = m_auto_bitmap_list.first(); item != NULL; item = item->next())
+ item->m_bitmap.resize(m_width, m_height);
- // if we're too small to contain this width/height, reallocate our bitmaps and textures
- if (m_width > curwidth || m_height > curheight)
- {
- // free what we have currently
- machine().render().texture_free(m_texture[0]);
- machine().render().texture_free(m_texture[1]);
-
- // compute new width/height
- curwidth = MAX(m_width, curwidth);
- curheight = MAX(m_height, curheight);
-
- // allocate raw textures
- m_texture[0] = machine().render().texture_alloc();
- m_texture[1] = machine().render().texture_alloc();
-
- // allocate bitmaps
- m_bitmap[0].allocate(curwidth, curheight);
- m_bitmap[0].set_palette(machine().palette);
- m_bitmap[1].allocate(curwidth, curheight);
- m_bitmap[1].set_palette(machine().palette);
-
- // set up textures
- m_texture[0]->set_bitmap(m_bitmap[0], m_visarea, m_bitmap[0].texformat());
- m_texture[1]->set_bitmap(m_bitmap[1], m_visarea, m_bitmap[1].texformat());
- }
+ // re-set up textures
+ m_texture[0]->set_bitmap(m_bitmap[0], m_visarea, m_bitmap[0].texformat());
+ m_texture[1]->set_bitmap(m_bitmap[1], m_visarea, m_bitmap[1].texformat());
}
@@ -564,18 +545,8 @@ void screen_device::realloc_screen_bitmaps()
void screen_device::set_visible_area(int min_x, int max_x, int min_y, int max_y)
{
- // validate arguments
- assert(min_x >= 0);
- assert(min_y >= 0);
- assert(min_x < max_x);
- assert(min_y < max_y);
-
- rectangle visarea;
- visarea.min_x = min_x;
- visarea.max_x = max_x;
- visarea.min_y = min_y;
- visarea.max_y = max_y;
-
+ rectangle visarea(min_x, max_x, min_y, max_y);
+ assert(!visarea.empty());
configure(m_width, m_height, visarea, m_frame_period);
}
@@ -810,6 +781,22 @@ void screen_device::register_vblank_callback(vblank_state_delegate vblank_callba
//-------------------------------------------------
+// register_screen_bitmap - registers a bitmap
+// that should track the screen size
+//-------------------------------------------------
+
+void screen_device::register_screen_bitmap(bitmap_t &bitmap)
+{
+ // append to the list
+ m_auto_bitmap_list.append(*global_alloc(auto_bitmap_item(bitmap)));
+
+ // if allocating now, just do it
+ bitmap.allocate(width(), height());
+ bitmap.set_palette(machine().palette);
+}
+
+
+//-------------------------------------------------
// vblank_begin - call any external callbacks to
// signal the VBLANK period has begun
//-------------------------------------------------
diff --git a/src/emu/screen.h b/src/emu/screen.h
index 46e3af14304..dbd8ac40693 100644
--- a/src/emu/screen.h
+++ b/src/emu/screen.h
@@ -77,74 +77,58 @@ class screen_bitmap
{
private:
// internal helpers
- bitmap_t &appropriate_bitmap()
- {
- switch (m_format)
- {
- case BITMAP_FORMAT_IND16: return m_ind16;
- case BITMAP_FORMAT_RGB32: return m_rgb32;
- default: throw emu_fatalerror("Invalid screen_bitmap format");
- }
- }
-
- const bitmap_t &appropriate_bitmap() const
- {
- switch (m_format)
- {
- case BITMAP_FORMAT_IND16: return m_ind16;
- case BITMAP_FORMAT_RGB32: return m_rgb32;
- default: throw emu_fatalerror("Invalid screen_bitmap format");
- }
- }
+ bitmap_t &live() { assert(m_live != NULL); return *m_live; }
+ const bitmap_t &live() const { assert(m_live != NULL); return *m_live; }
public:
// construction/destruction
screen_bitmap()
: m_format(BITMAP_FORMAT_INVALID),
- m_texformat(TEXFORMAT_UNDEFINED) { }
+ m_texformat(TEXFORMAT_UNDEFINED),
+ m_live(NULL) { }
screen_bitmap(bitmap_ind16 &orig)
: m_format(BITMAP_FORMAT_IND16),
m_texformat(TEXFORMAT_PALETTE16),
+ m_live(&m_ind16),
m_ind16(orig, orig.cliprect()) { }
screen_bitmap(bitmap_rgb32 &orig)
: m_format(BITMAP_FORMAT_RGB32),
m_texformat(TEXFORMAT_RGB32),
+ m_live(&m_rgb32),
m_rgb32(orig, orig.cliprect()) { }
- // allocation
- void allocate(int width, int height)
- {
- switch (m_format)
- {
- case BITMAP_FORMAT_IND16: m_ind16.allocate(width, height); break;
- case BITMAP_FORMAT_RGB32: m_rgb32.allocate(width, height); break;
- default: throw emu_fatalerror("Invalid screen_bitmap format");
- }
- }
+ // resizing
+ void resize(int width, int height) { live().resize(width, height); }
// conversion
- operator bitmap_t &() { return appropriate_bitmap(); }
+ operator bitmap_t &() { return live(); }
bitmap_ind16 &as_ind16() { assert(m_format == BITMAP_FORMAT_IND16); return m_ind16; }
bitmap_rgb32 &as_rgb32() { assert(m_format == BITMAP_FORMAT_RGB32); return m_rgb32; }
// getters
- INT32 width() const { return appropriate_bitmap().width(); }
- INT32 height() const { return appropriate_bitmap().height(); }
- INT32 rowpixels() const { return appropriate_bitmap().rowpixels(); }
- INT32 rowbytes() const { return appropriate_bitmap().rowbytes(); }
- UINT8 bpp() const { return appropriate_bitmap().bpp(); }
+ INT32 width() const { return live().width(); }
+ INT32 height() const { return live().height(); }
+ INT32 rowpixels() const { return live().rowpixels(); }
+ INT32 rowbytes() const { return live().rowbytes(); }
+ UINT8 bpp() const { return live().bpp(); }
bitmap_format format() const { return m_format; }
texture_format texformat() const { return m_texformat; }
- bool valid() const { return appropriate_bitmap().valid(); }
- palette_t *palette() const { return appropriate_bitmap().palette(); }
- const rectangle &cliprect() const { return appropriate_bitmap().cliprect(); }
+ bool valid() const { return live().valid(); }
+ palette_t *palette() const { return live().palette(); }
+ const rectangle &cliprect() const { return live().cliprect(); }
// operations
- void set_palette(palette_t *palette) { appropriate_bitmap().set_palette(palette); }
+ void set_palette(palette_t *palette) { live().set_palette(palette); }
void set_format(bitmap_format format, texture_format texformat)
{
m_format = format;
m_texformat = texformat;
+ switch (format)
+ {
+ case BITMAP_FORMAT_IND16: m_live = &m_ind16; break;
+ case BITMAP_FORMAT_RGB32: m_live = &m_rgb32; break;
+ default: m_live = NULL; break;
+ }
m_ind16.reset();
m_rgb32.reset();
}
@@ -153,6 +137,7 @@ private:
// internal state
bitmap_format m_format;
texture_format m_texformat;
+ bitmap_t * m_live;
bitmap_ind16 m_ind16;
bitmap_rgb32 m_rgb32;
};
@@ -237,6 +222,7 @@ public:
// additional helpers
void register_vblank_callback(vblank_state_delegate vblank_callback);
+ void register_screen_bitmap(bitmap_t &bitmap);
// internal to the video system
bool update_quads();
@@ -315,6 +301,7 @@ private:
UINT64 m_frame_number; // the current frame number
UINT32 m_partial_updates_this_frame;// partial update counter this frame
+ // VBLANK callbacks
class callback_item
{
public:
@@ -327,6 +314,20 @@ private:
vblank_state_delegate m_callback;
};
simple_list<callback_item> m_callback_list; // list of VBLANK callbacks
+
+ // auto-sizing bitmaps
+ class auto_bitmap_item
+ {
+ public:
+ auto_bitmap_item(bitmap_t &bitmap)
+ : m_next(NULL),
+ m_bitmap(bitmap) { }
+ auto_bitmap_item *next() const { return m_next; }
+
+ auto_bitmap_item * m_next;
+ bitmap_t & m_bitmap;
+ };
+ simple_list<auto_bitmap_item> m_auto_bitmap_list; // list of registered bitmaps
};
// device type definition
diff --git a/src/emu/sound/cdp1864.c b/src/emu/sound/cdp1864.c
index 376cc3ffb98..91ae48a0989 100644
--- a/src/emu/sound/cdp1864.c
+++ b/src/emu/sound/cdp1864.c
@@ -169,7 +169,7 @@ void cdp1864_device::device_start()
// find devices
m_cpu = machine().device<cpu_device>(m_cpu_tag);
m_screen = machine().device<screen_device>(m_screen_tag);
- m_bitmap.allocate(m_screen->width(), m_screen->height());
+ m_screen->register_screen_bitmap(m_bitmap);
// register for state saving
save_item(NAME(m_disp));
diff --git a/src/emu/tilemap.c b/src/emu/tilemap.c
index 8416ca8da14..2c07acc7379 100644
--- a/src/emu/tilemap.c
+++ b/src/emu/tilemap.c
@@ -291,19 +291,11 @@ INLINE int gfx_elements_changed(tilemap_t *tmap)
void tilemap_init(running_machine &machine)
{
- UINT32 screen_width, screen_height;
-
- if (machine.primary_screen == NULL)
+ if (machine.primary_screen == NULL || machine.primary_screen->width() == 0)
return;
- screen_width = machine.primary_screen->width();
- screen_height = machine.primary_screen->height();
-
- if (screen_width != 0 && screen_height != 0)
- {
- machine.priority_bitmap.allocate(screen_width, screen_height);
- machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(tilemap_exit), &machine));
- }
+ machine.primary_screen->register_screen_bitmap(machine.priority_bitmap);
+ machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(tilemap_exit), &machine));
}
diff --git a/src/emu/video/315_5124.c b/src/emu/video/315_5124.c
index 845ffbbac8d..df0756889df 100644
--- a/src/emu/video/315_5124.c
+++ b/src/emu/video/315_5124.c
@@ -1609,8 +1609,6 @@ void sega315_5124_device::device_config_complete()
void sega315_5124_device::device_start()
{
m_screen = machine().device<screen_device>( m_screen_tag );
- int width = m_screen->width();
- int height = m_screen->height();
/* Resolve callbacks */
m_cb_int.resolve( m_int_callback, *this );
@@ -1624,8 +1622,8 @@ void sega315_5124_device::device_start()
m_frame_timing = (m_is_pal) ? pal_192 : ntsc_192;
/* Make temp bitmap for rendering */
- m_tmpbitmap.allocate(width, height);
- m_y1_bitmap.allocate(width, height);
+ m_screen->register_screen_bitmap(m_tmpbitmap);
+ m_screen->register_screen_bitmap(m_y1_bitmap);
m_display_timer = timer_alloc(TIMER_LINE);
m_display_timer->adjust(m_screen->time_until_pos(0, DISPLAY_CB_HPOS), 0, m_screen->scan_period());
diff --git a/src/emu/video/cdp1861.c b/src/emu/video/cdp1861.c
index 04181988000..c071562bd98 100644
--- a/src/emu/video/cdp1861.c
+++ b/src/emu/video/cdp1861.c
@@ -82,7 +82,7 @@ void cdp1861_device::device_start()
// find devices
m_cpu = machine().device<cpu_device>(m_cpu_tag);
m_screen = machine().device<screen_device>(m_screen_tag);
- m_bitmap.allocate(m_screen->width(), m_screen->height(), m_screen->format());
+ m_screen->register_screen_bitmap(m_bitmap);
// register for state saving
save_item(NAME(m_disp));
diff --git a/src/emu/video/cdp1862.c b/src/emu/video/cdp1862.c
index a90c99cc4c2..7ec4f31802b 100644
--- a/src/emu/video/cdp1862.c
+++ b/src/emu/video/cdp1862.c
@@ -122,7 +122,7 @@ void cdp1862_device::device_start()
// find devices
m_screen = machine().device<screen_device>(m_screen_tag);
- m_bitmap.allocate(m_screen->width(), m_screen->height(), m_screen->format());
+ m_screen->register_screen_bitmap(m_bitmap);
// init palette
initialize_palette();
diff --git a/src/emu/video/v9938.c b/src/emu/video/v9938.c
index c7fde0f4db6..f4f28a37cf0 100644
--- a/src/emu/video/v9938.c
+++ b/src/emu/video/v9938.c
@@ -596,7 +596,7 @@ void v99x8_device::device_start()
m_vdp_ops_count = 1;
m_vdp_engine = NULL;
- m_bitmap.allocate(m_screen->width(), m_screen->height());
+ m_screen->register_screen_bitmap(m_bitmap);
m_size_old = -1;
// allocate VRAM
@@ -2212,7 +2212,6 @@ void v99x8_device::interrupt_start_vblank ()
else
m_screen->set_visible_area (0, 256 + 16 - 1, 0, 212 + 28 - 1);
- m_bitmap.allocate(m_screen->width(), m_screen->height());
m_size_old = m_size;
}
diff --git a/src/lib/util/bitmap.c b/src/lib/util/bitmap.c
index a90d3ee3db1..46c0757be13 100644
--- a/src/lib/util/bitmap.c
+++ b/src/lib/util/bitmap.c
@@ -207,7 +207,12 @@ void bitmap_t::resize(int width, int height, int xslop, int yslop)
// if we need more memory, just realloc
if (new_allocbytes > m_allocbytes)
- return allocate(width, height, xslop, yslop);
+ {
+ palette_t *palette = m_palette;
+ allocate(width, height, xslop, yslop);
+ set_palette(palette);
+ return;
+ }
// otherwise, reconfigure
m_rowpixels = new_rowpixels;
diff --git a/src/lib/util/bitmap.h b/src/lib/util/bitmap.h
index a8082c74e2b..a255ac24e89 100644
--- a/src/lib/util/bitmap.h
+++ b/src/lib/util/bitmap.h
@@ -129,7 +129,7 @@ private:
bitmap_t &operator=(const bitmap_t &);
protected:
- // construction/destruction -- subclasses only
+ // construction/destruction -- subclasses only to ensure type correctness
bitmap_t(bitmap_format format, int bpp, int width = 0, int height = 0, int xslop = 0, int yslop = 0);
bitmap_t(bitmap_format format, int bpp, void *base, int width, int height, int rowpixels);
bitmap_t(bitmap_format format, int bpp, bitmap_t &source, const rectangle &subrect);
@@ -150,6 +150,10 @@ public:
palette_t *palette() const { return m_palette; }
const rectangle &cliprect() const { return m_cliprect; }
+ // allocation/sizing
+ void allocate(int width, int height, int xslop = 0, int yslop = 0);
+ void resize(int width, int height, int xslop = 0, int yslop = 0);
+
// operations
void set_palette(palette_t *palette);
void fill(rgb_t color) { fill(color, m_cliprect); }
@@ -166,9 +170,7 @@ public:
void *raw_pixptr(INT32 y, INT32 x = 0) const { return reinterpret_cast<UINT8 *>(m_base) + (y * m_rowpixels + x) * m_bpp / 8; }
protected:
- // for use by subclasses only
- void allocate(int width, int height, int xslop = 0, int yslop = 0);
- void resize(int width, int height, int xslop = 0, int yslop = 0);
+ // for use by subclasses only to ensure type correctness
void wrap(void *base, int width, int height, int rowpixels);
void wrap(bitmap_t &source, const rectangle &subrect);
@@ -298,8 +300,6 @@ public:
bitmap_ind8(int width = 0, int height = 0, int xslop = 0, int yslop = 0) : bitmap8_t(k_bitmap_format, width, height, xslop, yslop) { }
bitmap_ind8(void *base, int width, int height, int rowpixels) : bitmap8_t(k_bitmap_format, base, width, height, rowpixels) { }
bitmap_ind8(bitmap_ind8 &source, const rectangle &subrect) : bitmap8_t(k_bitmap_format, source, subrect) { }
- void allocate(int width, int height, int xslop = 0, int yslop = 0) { bitmap_t::allocate(width, height, xslop, yslop); }
- void resize(int width, int height, int xslop = 0, int yslop = 0) { bitmap_t::resize(width, height, xslop, yslop); }
void wrap(UINT8 *base, int width, int height, int rowpixels) { bitmap_t::wrap(base, width, height, rowpixels); }
void wrap(bitmap_ind8 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<bitmap_t &>(source), subrect); }
@@ -317,8 +317,6 @@ public:
bitmap_ind16(int width = 0, int height = 0, int xslop = 0, int yslop = 0) : bitmap16_t(k_bitmap_format, width, height, xslop, yslop) { }
bitmap_ind16(void *base, int width, int height, int rowpixels) : bitmap16_t(k_bitmap_format, base, width, height, rowpixels) { }
bitmap_ind16(bitmap_ind16 &source, const rectangle &subrect) : bitmap16_t(k_bitmap_format, source, subrect) { }
- void allocate(int width, int height, int xslop = 0, int yslop = 0) { bitmap_t::allocate(width, height, xslop, yslop); }
- void resize(int width, int height, int xslop = 0, int yslop = 0) { bitmap_t::resize(width, height, xslop, yslop); }
void wrap(UINT16 *base, int width, int height, int rowpixels) { bitmap_t::wrap(base, width, height, rowpixels); }
void wrap(bitmap_ind8 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<bitmap_t &>(source), subrect); }
@@ -336,8 +334,6 @@ public:
bitmap_ind32(int width = 0, int height = 0, int xslop = 0, int yslop = 0) : bitmap32_t(k_bitmap_format, width, height, xslop, yslop) { }
bitmap_ind32(void *base, int width, int height, int rowpixels) : bitmap32_t(k_bitmap_format, base, width, height, rowpixels) { }
bitmap_ind32(bitmap_ind32 &source, const rectangle &subrect) : bitmap32_t(k_bitmap_format, source, subrect) { }
- void allocate(int width, int height, int xslop = 0, int yslop = 0) { bitmap_t::allocate(width, height, xslop, yslop); }
- void resize(int width, int height, int xslop = 0, int yslop = 0) { bitmap_t::resize(width, height, xslop, yslop); }
void wrap(UINT32 *base, int width, int height, int rowpixels) { bitmap_t::wrap(base, width, height, rowpixels); }
void wrap(bitmap_ind8 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<bitmap_t &>(source), subrect); }
@@ -355,8 +351,6 @@ public:
bitmap_ind64(int width = 0, int height = 0, int xslop = 0, int yslop = 0) : bitmap64_t(k_bitmap_format, width, height, xslop, yslop) { }
bitmap_ind64(void *base, int width, int height, int rowpixels) : bitmap64_t(k_bitmap_format, base, width, height, rowpixels) { }
bitmap_ind64(bitmap_ind64 &source, const rectangle &subrect) : bitmap64_t(k_bitmap_format, source, subrect) { }
- void allocate(int width, int height, int xslop = 0, int yslop = 0) { bitmap_t::allocate(width, height, xslop, yslop); }
- void resize(int width, int height, int xslop = 0, int yslop = 0) { bitmap_t::resize(width, height, xslop, yslop); }
void wrap(UINT64 *base, int width, int height, int rowpixels) { bitmap_t::wrap(base, width, height, rowpixels); }
void wrap(bitmap_ind8 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<bitmap_t &>(source), subrect); }
@@ -377,8 +371,6 @@ public:
bitmap_yuy16(int width = 0, int height = 0, int xslop = 0, int yslop = 0) : bitmap16_t(k_bitmap_format, width, height, xslop, yslop) { }
bitmap_yuy16(void *base, int width, int height, int rowpixels) : bitmap16_t(k_bitmap_format, base, width, height, rowpixels) { }
bitmap_yuy16(bitmap_yuy16 &source, const rectangle &subrect) : bitmap16_t(k_bitmap_format, source, subrect) { }
- void allocate(int width, int height, int xslop = 0, int yslop = 0) { bitmap_t::allocate(width, height, xslop, yslop); }
- void resize(int width, int height, int xslop = 0, int yslop = 0) { bitmap_t::resize(width, height, xslop, yslop); }
void wrap(UINT16 *base, int width, int height, int rowpixels) { bitmap_t::wrap(base, width, height, rowpixels); }
void wrap(bitmap_yuy16 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<bitmap_t &>(source), subrect); }
@@ -396,8 +388,6 @@ public:
bitmap_rgb32(int width = 0, int height = 0, int xslop = 0, int yslop = 0) : bitmap32_t(k_bitmap_format, width, height, xslop, yslop) { }
bitmap_rgb32(void *base, int width, int height, int rowpixels) : bitmap32_t(k_bitmap_format, base, width, height, rowpixels) { }
bitmap_rgb32(bitmap_rgb32 &source, const rectangle &subrect) : bitmap32_t(k_bitmap_format, source, subrect) { }
- void allocate(int width, int height, int xslop = 0, int yslop = 0) { bitmap_t::allocate(width, height, xslop, yslop); }
- void resize(int width, int height, int xslop = 0, int yslop = 0) { bitmap_t::resize(width, height, xslop, yslop); }
void wrap(UINT32 *base, int width, int height, int rowpixels) { bitmap_t::wrap(base, width, height, rowpixels); }
void wrap(bitmap_rgb32 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<bitmap_t &>(source), subrect); }
@@ -415,8 +405,6 @@ public:
bitmap_argb32(int width = 0, int height = 0, int xslop = 0, int yslop = 0) : bitmap32_t(k_bitmap_format, width, height, xslop, yslop) { }
bitmap_argb32(void *base, int width, int height, int rowpixels) : bitmap32_t(k_bitmap_format, base, width, height, rowpixels) { }
bitmap_argb32(bitmap_argb32 &source, const rectangle &subrect) : bitmap32_t(k_bitmap_format, source, subrect) { }
- void allocate(int width, int height, int xslop = 0, int yslop = 0) { bitmap_t::allocate(width, height, xslop, yslop); }
- void resize(int width, int height, int xslop = 0, int yslop = 0) { bitmap_t::resize(width, height, xslop, yslop); }
void wrap(UINT32 *base, int width, int height, int rowpixels) { bitmap_t::wrap(base, width, height, rowpixels); }
void wrap(bitmap_argb32 &source, const rectangle &subrect) { bitmap_t::wrap(static_cast<bitmap_t &>(source), subrect); }
diff --git a/src/mame/drivers/astrocorp.c b/src/mame/drivers/astrocorp.c
index 0693c465f58..c89767aad25 100644
--- a/src/mame/drivers/astrocorp.c
+++ b/src/mame/drivers/astrocorp.c
@@ -61,7 +61,7 @@ static VIDEO_START( astrocorp )
{
astrocorp_state *state = machine.driver_data<astrocorp_state>();
- state->m_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_bitmap);
state->save_item(NAME(state->m_bitmap));
state->save_item (NAME(state->m_screen_enable));
diff --git a/src/mame/drivers/coolridr.c b/src/mame/drivers/coolridr.c
index 17e301e3f35..f2616d8afbb 100644
--- a/src/mame/drivers/coolridr.c
+++ b/src/mame/drivers/coolridr.c
@@ -293,10 +293,7 @@ public:
static VIDEO_START(coolridr)
{
coolridr_state *state = machine.driver_data<coolridr_state>();
- int width = machine.primary_screen->width();
- int height = machine.primary_screen->height();
-
- state->m_temp_bitmap_sprites.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_temp_bitmap_sprites);
state->m_test_offs = 0x2000;
}
diff --git a/src/mame/drivers/gei.c b/src/mame/drivers/gei.c
index 6156da10e10..64dce5f8381 100644
--- a/src/mame/drivers/gei.c
+++ b/src/mame/drivers/gei.c
@@ -147,7 +147,7 @@ static PALETTE_INIT(quizvid)
void gei_state::video_start()
{
- m_bitmap.allocate(machine().primary_screen->width(), machine().primary_screen->height());
+ machine().primary_screen->register_screen_bitmap(m_bitmap);
}
UINT32 gei_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/lastfght.c b/src/mame/drivers/lastfght.c
index 1b43b8012e2..5ca704db3d9 100644
--- a/src/mame/drivers/lastfght.c
+++ b/src/mame/drivers/lastfght.c
@@ -114,7 +114,7 @@ static VIDEO_START( lastfght )
lastfght_state *state = machine.driver_data<lastfght_state>();
int i;
for (i = 0; i < 2; i++)
- state->m_bitmap[i].allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_bitmap[i]);
state->save_item(NAME(state->m_bitmap[0]));
state->save_item(NAME(state->m_bitmap[1]));
diff --git a/src/mame/drivers/mazerbla.c b/src/mame/drivers/mazerbla.c
index 91de6b48603..920deed29f8 100644
--- a/src/mame/drivers/mazerbla.c
+++ b/src/mame/drivers/mazerbla.c
@@ -158,10 +158,10 @@ static VIDEO_START( mazerbla )
state->m_dbg_lookup = 4;
#endif
- state->m_tmpbitmaps[0].allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tmpbitmaps[1].allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tmpbitmaps[2].allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tmpbitmaps[3].allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmaps[0]);
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmaps[1]);
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmaps[2]);
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmaps[3]);
state->save_item(NAME(state->m_tmpbitmaps[0]));
state->save_item(NAME(state->m_tmpbitmaps[1]));
diff --git a/src/mame/drivers/sliver.c b/src/mame/drivers/sliver.c
index 3e9c25ca273..c561923d5ca 100644
--- a/src/mame/drivers/sliver.c
+++ b/src/mame/drivers/sliver.c
@@ -441,8 +441,8 @@ static VIDEO_START(sliver)
{
sliver_state *state = machine.driver_data<sliver_state>();
- state->m_bitmap_bg.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_bitmap_fg.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_bitmap_bg);
+ machine.primary_screen->register_screen_bitmap(state->m_bitmap_fg);
}
static SCREEN_UPDATE_RGB32(sliver)
diff --git a/src/mame/drivers/sms.c b/src/mame/drivers/sms.c
index 82f9a7d82f2..fedea38d530 100644
--- a/src/mame/drivers/sms.c
+++ b/src/mame/drivers/sms.c
@@ -465,7 +465,7 @@ static WRITE8_HANDLER(video_w)
static VIDEO_START( sms )
{
sms_state *state = machine.driver_data<sms_state>();
- state->m_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_bitmap);
state_save_register_global_array(machine, state->m_vid_regs);
state_save_register_global_bitmap(machine, &state->m_bitmap);
diff --git a/src/mame/drivers/taitotz.c b/src/mame/drivers/taitotz.c
index 3bccf955645..fdf911ad162 100644
--- a/src/mame/drivers/taitotz.c
+++ b/src/mame/drivers/taitotz.c
@@ -107,7 +107,7 @@ static VIDEO_START( taitotz )
{
taitotz_state *state = machine.driver_data<taitotz_state>();
- state->framebuffer.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->framebuffer);
}
static SCREEN_UPDATE_RGB32( taitotz )
diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c
index d323c00fca4..8d0ebaa555f 100644
--- a/src/mame/drivers/tmaster.c
+++ b/src/mame/drivers/tmaster.c
@@ -299,7 +299,7 @@ static VIDEO_START( tmaster )
{
for (buffer = 0; buffer < 2; buffer++)
{
- state->m_bitmap[layer][buffer].allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_bitmap[layer][buffer]);
state->m_bitmap[layer][buffer].fill(0xff);
}
}
diff --git a/src/mame/video/airbustr.c b/src/mame/video/airbustr.c
index 987a29b0ac2..19d34dfdc52 100644
--- a/src/mame/video/airbustr.c
+++ b/src/mame/video/airbustr.c
@@ -121,7 +121,7 @@ VIDEO_START( airbustr )
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan_rows, 16, 16, 32, 32);
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, tilemap_scan_rows, 16, 16, 32, 32);
- state->m_sprites_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_sprites_bitmap);
tilemap_set_transparent_pen(state->m_fg_tilemap, 0);
tilemap_set_scrolldx(state->m_bg_tilemap, 0x094, 0x06a);
diff --git a/src/mame/video/argus.c b/src/mame/video/argus.c
index cca08878b3f..d6ea8decc4f 100644
--- a/src/mame/video/argus.c
+++ b/src/mame/video/argus.c
@@ -312,7 +312,7 @@ VIDEO_START( valtric )
tilemap_set_transparent_pen(state->m_tx_tilemap, 15);
- state->m_mosaicbitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_mosaicbitmap);
jal_blend_init(machine, 1);
}
diff --git a/src/mame/video/bigevglf.c b/src/mame/video/bigevglf.c
index 88fe7ad4885..2e48ddc45e2 100644
--- a/src/mame/video/bigevglf.c
+++ b/src/mame/video/bigevglf.c
@@ -58,10 +58,10 @@ VIDEO_START( bigevglf )
{
bigevglf_state *state = machine.driver_data<bigevglf_state>();
- state->m_tmp_bitmap[0].allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tmp_bitmap[1].allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tmp_bitmap[2].allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tmp_bitmap[3].allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmp_bitmap[0]);
+ machine.primary_screen->register_screen_bitmap(state->m_tmp_bitmap[1]);
+ machine.primary_screen->register_screen_bitmap(state->m_tmp_bitmap[2]);
+ machine.primary_screen->register_screen_bitmap(state->m_tmp_bitmap[3]);
state->save_item(NAME(state->m_tmp_bitmap[0]));
state->save_item(NAME(state->m_tmp_bitmap[1]));
state->save_item(NAME(state->m_tmp_bitmap[2]));
diff --git a/src/mame/video/bking.c b/src/mame/video/bking.c
index c9014182f78..dae08d176a9 100644
--- a/src/mame/video/bking.c
+++ b/src/mame/video/bking.c
@@ -241,8 +241,8 @@ VIDEO_START( bking )
{
bking_state *state = machine.driver_data<bking_state>();
state->m_bg_tilemap = tilemap_create(machine, get_tile_info, tilemap_scan_rows, 8, 8, 32, 32);
- state->m_tmp_bitmap1.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tmp_bitmap2.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmp_bitmap1);
+ machine.primary_screen->register_screen_bitmap(state->m_tmp_bitmap2);
state->save_item(NAME(state->m_tmp_bitmap1));
state->save_item(NAME(state->m_tmp_bitmap2));
diff --git a/src/mame/video/blockout.c b/src/mame/video/blockout.c
index 07170d7548a..89e85487bdd 100644
--- a/src/mame/video/blockout.c
+++ b/src/mame/video/blockout.c
@@ -66,7 +66,7 @@ VIDEO_START( blockout )
blockout_state *state = machine.driver_data<blockout_state>();
/* Allocate temporary bitmaps */
- state->m_tmpbitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap);
state->save_item(NAME(state->m_tmpbitmap));
}
diff --git a/src/mame/video/buggychl.c b/src/mame/video/buggychl.c
index 87daff7ed27..cafa5a2890a 100644
--- a/src/mame/video/buggychl.c
+++ b/src/mame/video/buggychl.c
@@ -15,8 +15,8 @@ PALETTE_INIT( buggychl )
VIDEO_START( buggychl )
{
buggychl_state *state = machine.driver_data<buggychl_state>();
- state->m_tmp_bitmap1.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tmp_bitmap2.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmp_bitmap1);
+ machine.primary_screen->register_screen_bitmap(state->m_tmp_bitmap2);
state->save_item(NAME(state->m_tmp_bitmap1));
state->save_item(NAME(state->m_tmp_bitmap2));
diff --git a/src/mame/video/cave.c b/src/mame/video/cave.c
index bee22ba5c4a..538ca59eb8f 100644
--- a/src/mame/video/cave.c
+++ b/src/mame/video/cave.c
@@ -730,8 +730,6 @@ static void get_sprite_info_donpachi( running_machine &machine )
static void sprite_init_cave( running_machine &machine )
{
cave_state *state = machine.driver_data<cave_state>();
- int screen_width = machine.primary_screen->width();
- int screen_height = machine.primary_screen->height();
if (state->m_spritetype[0] == 0 || state->m_spritetype[0] == 2) // most of the games
{
@@ -745,7 +743,7 @@ static void sprite_init_cave( running_machine &machine )
}
state->m_sprite_zbuf_baseval = 0x10000 - MAX_SPRITE_NUM;
- state->m_sprite_zbuf.allocate(screen_width, screen_height);
+ machine.primary_screen->register_screen_bitmap(state->m_sprite_zbuf);
state->m_blit.baseaddr_zbuf = &state->m_sprite_zbuf.pix8(0);
state->m_blit.line_offset_zbuf = state->m_sprite_zbuf.rowpixels() * state->m_sprite_zbuf.bpp() / 8;
diff --git a/src/mame/video/ccastles.c b/src/mame/video/ccastles.c
index 50b439c88ee..22cecc6f6e1 100644
--- a/src/mame/video/ccastles.c
+++ b/src/mame/video/ccastles.c
@@ -32,7 +32,7 @@ VIDEO_START( ccastles )
3, resistances, state->m_bweights, 1000, 0);
/* allocate a bitmap for drawing sprites */
- state->m_spritebitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_spritebitmap);
/* register for savestates */
state->save_item(NAME(state->m_video_control));
diff --git a/src/mame/video/changela.c b/src/mame/video/changela.c
index 42a3590509c..959ba5f1dd9 100644
--- a/src/mame/video/changela.c
+++ b/src/mame/video/changela.c
@@ -24,10 +24,10 @@ VIDEO_START( changela )
state->m_memory_devices = auto_alloc_array(machine, UINT8, 4 * 0x800); /* 0 - not connected, 1,2,3 - RAMs*/
state->m_tree_ram = auto_alloc_array(machine, UINT8, 2 * 0x20);
- state->m_obj0_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_river_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tree0_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tree1_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_obj0_bitmap);
+ machine.primary_screen->register_screen_bitmap(state->m_river_bitmap);
+ machine.primary_screen->register_screen_bitmap(state->m_tree0_bitmap);
+ machine.primary_screen->register_screen_bitmap(state->m_tree1_bitmap);
state->m_scanline_timer = machine.scheduler().timer_alloc(FUNC(changela_scanline_callback));
state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(30), 30);
diff --git a/src/mame/video/cloud9.c b/src/mame/video/cloud9.c
index 9b64ce5df16..ea470669c5d 100644
--- a/src/mame/video/cloud9.c
+++ b/src/mame/video/cloud9.c
@@ -36,7 +36,7 @@ VIDEO_START( cloud9 )
3, resistances, state->m_bweights, 1000, 0);
/* allocate a bitmap for drawing sprites */
- state->m_spritebitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_spritebitmap);
/* register for savestates */
state->save_pointer(NAME(state->m_videoram), 0x8000);
diff --git a/src/mame/video/cvs.c b/src/mame/video/cvs.c
index 8d05929a231..3e0a0c44dc3 100644
--- a/src/mame/video/cvs.c
+++ b/src/mame/video/cvs.c
@@ -169,9 +169,9 @@ VIDEO_START( cvs )
}
/* create helper bitmaps */
- state->m_background_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_collision_background.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_scrolled_collision_background.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_background_bitmap);
+ machine.primary_screen->register_screen_bitmap(state->m_collision_background);
+ machine.primary_screen->register_screen_bitmap(state->m_scrolled_collision_background);
/* register save */
state->save_item(NAME(state->m_background_bitmap));
diff --git a/src/mame/video/dday.c b/src/mame/video/dday.c
index 6f5fbf89578..328340e7298 100644
--- a/src/mame/video/dday.c
+++ b/src/mame/video/dday.c
@@ -219,7 +219,7 @@ VIDEO_START( dday )
state->m_text_tilemap = tilemap_create(machine, get_text_tile_info, tilemap_scan_rows, 8, 8, 32, 32);
state->m_sl_tilemap = tilemap_create(machine, get_sl_tile_info, tilemap_scan_rows, 8, 8, 32, 32);
- state->m_main_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_main_bitmap);
tilemap_set_transmask(state->m_bg_tilemap, 0, 0x00f0, 0xff0f); /* pens 0-3 have priority over the foreground layer */
tilemap_set_transparent_pen(state->m_fg_tilemap, 0);
diff --git a/src/mame/video/decospr.c b/src/mame/video/decospr.c
index abae6110d0c..88ebf50f9b3 100644
--- a/src/mame/video/decospr.c
+++ b/src/mame/video/decospr.c
@@ -165,7 +165,7 @@ void decospr_device::decospr_sprite_kludge(int x, int y)
void decospr_device::alloc_sprite_bitmap()
{
- m_sprite_bitmap.allocate(machine().primary_screen->width(), machine().primary_screen->height());
+ machine().primary_screen->register_screen_bitmap(m_sprite_bitmap);
}
void decospr_device::set_pri_callback(decospr_priority_callback_func callback)
diff --git a/src/mame/video/dkong.c b/src/mame/video/dkong.c
index 3d419fb3d27..ca6ccfc2cd6 100644
--- a/src/mame/video/dkong.c
+++ b/src/mame/video/dkong.c
@@ -947,7 +947,7 @@ VIDEO_START( dkong )
switch (state->m_hardware_type)
{
case HARDWARE_TRS02:
- state->m_bg_bits.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_bg_bits);
state->m_gfx3 = machine.region("gfx3")->base();
state->m_gfx3_len = machine.region("gfx3")->bytes();
/* fall through */
@@ -960,7 +960,7 @@ VIDEO_START( dkong )
state->m_bg_tilemap = tilemap_create(machine, radarscp1_bg_tile_info, tilemap_scan_rows, 8, 8, 32, 32);
tilemap_set_scrolldx(state->m_bg_tilemap, 0, 128);
- state->m_bg_bits.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_bg_bits);
state->m_gfx4 = machine.region("gfx4")->base();
state->m_gfx3 = machine.region("gfx3")->base();
state->m_gfx3_len = machine.region("gfx3")->bytes();
diff --git a/src/mame/video/dogfgt.c b/src/mame/video/dogfgt.c
index 1d81f3d7619..52089f622b6 100644
--- a/src/mame/video/dogfgt.c
+++ b/src/mame/video/dogfgt.c
@@ -73,7 +73,7 @@ VIDEO_START( dogfgt )
state->m_bitmapram = auto_alloc_array(machine, UINT8, BITMAPRAM_SIZE);
state->save_pointer(NAME(state->m_bitmapram), BITMAPRAM_SIZE);
- state->m_pixbitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_pixbitmap);
state->save_item(NAME(state->m_pixbitmap));
}
diff --git a/src/mame/video/exidy.c b/src/mame/video/exidy.c
index 30458a4bd64..1bd742d632a 100644
--- a/src/mame/video/exidy.c
+++ b/src/mame/video/exidy.c
@@ -35,7 +35,7 @@ VIDEO_START( exidy )
{
exidy_state *state = machine.driver_data<exidy_state>();
- state->m_background_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_background_bitmap);
state->m_motion_object_1_vid.allocate(16, 16);
state->m_motion_object_2_vid.allocate(16, 16);
state->m_motion_object_2_clip.allocate(16, 16);
diff --git a/src/mame/video/fgoal.c b/src/mame/video/fgoal.c
index 8f4ba986e7e..067dd42e18a 100644
--- a/src/mame/video/fgoal.c
+++ b/src/mame/video/fgoal.c
@@ -32,8 +32,8 @@ WRITE8_HANDLER( fgoal_xpos_w )
VIDEO_START( fgoal )
{
fgoal_state *state = machine.driver_data<fgoal_state>();
- state->m_fgbitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_bgbitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_fgbitmap);
+ machine.primary_screen->register_screen_bitmap(state->m_bgbitmap);
state->save_item(NAME(state->m_fgbitmap));
state->save_item(NAME(state->m_bgbitmap));
diff --git a/src/mame/video/firetrk.c b/src/mame/video/firetrk.c
index d91ffcc0e5b..c460d451e11 100644
--- a/src/mame/video/firetrk.c
+++ b/src/mame/video/firetrk.c
@@ -225,8 +225,8 @@ static TILE_GET_INFO( montecar_get_tile_info2 )
VIDEO_START( firetrk )
{
firetrk_state *state = machine.driver_data<firetrk_state>();
- state->m_helper1.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_helper2.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_helper1);
+ machine.primary_screen->register_screen_bitmap(state->m_helper2);
state->m_tilemap1 = tilemap_create(machine, firetrk_get_tile_info1, tilemap_scan_rows, 16, 16, 16, 16);
state->m_tilemap2 = tilemap_create(machine, firetrk_get_tile_info2, tilemap_scan_rows, 16, 16, 16, 16);
@@ -236,8 +236,8 @@ VIDEO_START( firetrk )
VIDEO_START( superbug )
{
firetrk_state *state = machine.driver_data<firetrk_state>();
- state->m_helper1.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_helper2.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_helper1);
+ machine.primary_screen->register_screen_bitmap(state->m_helper2);
state->m_tilemap1 = tilemap_create(machine, superbug_get_tile_info1, tilemap_scan_rows, 16, 16, 16, 16);
state->m_tilemap2 = tilemap_create(machine, superbug_get_tile_info2, tilemap_scan_rows, 16, 16, 16, 16);
@@ -247,8 +247,8 @@ VIDEO_START( superbug )
VIDEO_START( montecar )
{
firetrk_state *state = machine.driver_data<firetrk_state>();
- state->m_helper1.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_helper2.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_helper1);
+ machine.primary_screen->register_screen_bitmap(state->m_helper2);
state->m_tilemap1 = tilemap_create(machine, montecar_get_tile_info1, tilemap_scan_rows, 16, 16, 16, 16);
state->m_tilemap2 = tilemap_create(machine, montecar_get_tile_info2, tilemap_scan_rows, 16, 16, 16, 16);
diff --git a/src/mame/video/gaiden.c b/src/mame/video/gaiden.c
index f7cfb69937f..cf5707de9b3 100644
--- a/src/mame/video/gaiden.c
+++ b/src/mame/video/gaiden.c
@@ -75,12 +75,10 @@ static TILE_GET_INFO( get_tx_tile_info )
VIDEO_START( gaiden )
{
gaiden_state *state = machine.driver_data<gaiden_state>();
- int width = machine.primary_screen->width();
- int height = machine.primary_screen->height();
/* set up tile layers */
- state->m_tile_bitmap_bg.allocate(width, height);
- state->m_tile_bitmap_fg.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_bg);
+ machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_fg);
state->m_background = tilemap_create(machine, get_bg_tile_info, tilemap_scan_rows, 16, 16, 64, 32);
state->m_foreground = tilemap_create(machine, get_fg_tile_info_raiga, tilemap_scan_rows, 16, 16, 64, 32);
@@ -99,19 +97,17 @@ VIDEO_START( gaiden )
tilemap_set_scrolldx(state->m_text_layer, 0, -1);
/* set up sprites */
- state->m_sprite_bitmap.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap);
}
VIDEO_START( mastninj )
{
gaiden_state *state = machine.driver_data<gaiden_state>();
- int width = machine.primary_screen->width();
- int height = machine.primary_screen->height();
/* set up tile layers */
- state->m_tile_bitmap_bg.allocate(width, height);
- state->m_tile_bitmap_fg.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_bg);
+ machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_fg);
state->m_background = tilemap_create(machine, get_bg_tile_info, tilemap_scan_rows, 16, 16, 64, 32);
state->m_foreground = tilemap_create(machine, get_fg_tile_info_raiga, tilemap_scan_rows, 16, 16, 64, 32);
@@ -122,7 +118,7 @@ VIDEO_START( mastninj )
tilemap_set_transparent_pen(state->m_text_layer, 15);
/* set up sprites */
- state->m_sprite_bitmap.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap);
tilemap_set_scrolldx(state->m_background, -248, 248);
tilemap_set_scrolldx(state->m_foreground, -252, 252);
@@ -131,12 +127,10 @@ VIDEO_START( mastninj )
VIDEO_START( raiga )
{
gaiden_state *state = machine.driver_data<gaiden_state>();
- int width = machine.primary_screen->width();
- int height = machine.primary_screen->height();
/* set up tile layers */
- state->m_tile_bitmap_bg.allocate(width, height);
- state->m_tile_bitmap_fg.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_bg);
+ machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_fg);
state->m_background = tilemap_create(machine, get_bg_tile_info, tilemap_scan_rows, 16, 16, 64, 32);
state->m_foreground = tilemap_create(machine, get_fg_tile_info_raiga, tilemap_scan_rows, 16, 16, 64, 32);
@@ -147,7 +141,7 @@ VIDEO_START( raiga )
tilemap_set_transparent_pen(state->m_text_layer, 0);
/* set up sprites */
- state->m_sprite_bitmap.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap);
}
VIDEO_START( drgnbowl )
diff --git a/src/mame/video/galastrm.c b/src/mame/video/galastrm.c
index 91f847205f8..f7db405ea3e 100644
--- a/src/mame/video/galastrm.c
+++ b/src/mame/video/galastrm.c
@@ -33,8 +33,8 @@ VIDEO_START( galastrm )
galastrm_state *state = machine.driver_data<galastrm_state>();
state->m_spritelist = auto_alloc_array(machine, struct tempsprite, 0x4000);
- state->m_tmpbitmaps.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_polybitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmaps);
+ machine.primary_screen->register_screen_bitmap(state->m_polybitmap);
state->m_poly = poly_alloc(machine, 16, sizeof(poly_extra_data), POLYFLAG_ALLOW_QUADS);
machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(galastrm_exit), &machine));
diff --git a/src/mame/video/galpanic.c b/src/mame/video/galpanic.c
index ceef8b503b6..afcca531f82 100644
--- a/src/mame/video/galpanic.c
+++ b/src/mame/video/galpanic.c
@@ -6,8 +6,8 @@
VIDEO_START( galpanic )
{
galpanic_state *state = machine.driver_data<galpanic_state>();
- state->m_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_sprites_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_bitmap);
+ machine.primary_screen->register_screen_bitmap(state->m_sprites_bitmap);
}
PALETTE_INIT( galpanic )
diff --git a/src/mame/video/gomoku.c b/src/mame/video/gomoku.c
index 453881af334..f9874499ed3 100644
--- a/src/mame/video/gomoku.c
+++ b/src/mame/video/gomoku.c
@@ -117,7 +117,7 @@ VIDEO_START( gomoku )
int bgdata;
int color;
- state->m_bg_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_bg_bitmap);
state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,tilemap_scan_rows,8,8,32, 32);
diff --git a/src/mame/video/hyhoo.c b/src/mame/video/hyhoo.c
index f4a4f387202..232f39c571a 100644
--- a/src/mame/video/hyhoo.c
+++ b/src/mame/video/hyhoo.c
@@ -227,7 +227,7 @@ static void hyhoo_gfxdraw(running_machine &machine)
VIDEO_START( hyhoo )
{
hyhoo_state *state = machine.driver_data<hyhoo_state>();
- state->m_tmpbitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap);
}
diff --git a/src/mame/video/ikki.c b/src/mame/video/ikki.c
index 122ee340635..0708864a719 100644
--- a/src/mame/video/ikki.c
+++ b/src/mame/video/ikki.c
@@ -119,7 +119,7 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
VIDEO_START( ikki )
{
ikki_state *state = machine.driver_data<ikki_state>();
- state->m_sprite_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap);
state->save_item(NAME(state->m_sprite_bitmap));
}
diff --git a/src/mame/video/kaneko16.c b/src/mame/video/kaneko16.c
index 46f93016f7f..1375ea12f41 100644
--- a/src/mame/video/kaneko16.c
+++ b/src/mame/video/kaneko16.c
@@ -122,7 +122,7 @@ VIDEO_START( kaneko16_1xVIEW2_tilemaps )
state->m_tmap[3] = 0;
- state->m_sprites_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_sprites_bitmap);
{
int dx, dy;
@@ -294,7 +294,7 @@ VIDEO_START( galsnew )
state->m_tmap[3] = 0;
- state->m_sprites_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_sprites_bitmap);
{
int dx = 0x5b, dy = 8;
diff --git a/src/mame/video/magmax.c b/src/mame/video/magmax.c
index ea105f98a65..d667ed3712e 100644
--- a/src/mame/video/magmax.c
+++ b/src/mame/video/magmax.c
@@ -72,7 +72,7 @@ VIDEO_START( magmax )
state->m_prom_tab = auto_alloc_array(machine, UINT32, 256);
- state->m_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_bitmap);
/* Allocate temporary bitmap */
for (i=0; i<256; i++)
diff --git a/src/mame/video/mappy.c b/src/mame/video/mappy.c
index c1bc7eaadb1..1c5ffc936ad 100644
--- a/src/mame/video/mappy.c
+++ b/src/mame/video/mappy.c
@@ -323,7 +323,7 @@ VIDEO_START( superpac )
mappy_state *state = machine.driver_data<mappy_state>();
state->m_bg_tilemap = tilemap_create(machine, superpac_get_tile_info,superpac_tilemap_scan,8,8,36,28);
- state->m_sprite_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap);
colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[0], 31);
}
diff --git a/src/mame/video/mcd212.c b/src/mame/video/mcd212.c
index 35a729a4240..a3d91f22360 100644
--- a/src/mame/video/mcd212.c
+++ b/src/mame/video/mcd212.c
@@ -1511,7 +1511,7 @@ TIMER_CALLBACK( mcd212_perform_scan )
void mcd212_init(running_machine &machine, mcd212_regs_t *mcd212)
{
mcd212->m_machine = &machine;
- mcd212->m_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(mcd212->m_bitmap);
int index = 0;
for(index = 0; index < 2; index++)
@@ -1658,7 +1658,7 @@ VIDEO_START( cdimono1 )
state->m_mcd212_regs.scan_timer->adjust(machine.primary_screen->time_until_pos(0, 0));
screen_device *screen = downcast<screen_device *>(machine.device("lcd"));
- state->m_lcdbitmap.allocate(screen->width(), screen->height());
+ screen->register_screen_bitmap(state->m_lcdbitmap);
}
SCREEN_UPDATE_RGB32( cdimono1 )
diff --git a/src/mame/video/mermaid.c b/src/mame/video/mermaid.c
index b4714d722cc..6f780de92de 100644
--- a/src/mame/video/mermaid.c
+++ b/src/mame/video/mermaid.c
@@ -184,8 +184,8 @@ VIDEO_START( mermaid )
tilemap_set_scroll_cols(state->m_fg_tilemap, 32);
tilemap_set_transparent_pen(state->m_fg_tilemap, 0);
- state->m_helper.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_helper2.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_helper);
+ machine.primary_screen->register_screen_bitmap(state->m_helper2);
}
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/model3.c b/src/mame/video/model3.c
index a39386fc5ff..60b429d0c16 100644
--- a/src/mame/video/model3.c
+++ b/src/mame/video/model3.c
@@ -117,15 +117,12 @@ static void model3_exit(running_machine &machine)
VIDEO_START( model3 )
{
model3_state *state = machine.driver_data<model3_state>();
- int width, height;
state->m_poly = poly_alloc(machine, 4000, sizeof(poly_extra_data), 0);
machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(model3_exit), &machine));
- width = machine.primary_screen->width();
- height = machine.primary_screen->height();
- state->m_bitmap3d.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_zbuffer.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_bitmap3d);
+ machine.primary_screen->register_screen_bitmap(state->m_zbuffer);
state->m_m3_char_ram = auto_alloc_array_clear(machine, UINT64, 0x100000/8);
state->m_m3_tile_ram = auto_alloc_array_clear(machine, UINT64, 0x8000/8);
diff --git a/src/mame/video/ms32.c b/src/mame/video/ms32.c
index 645e8e338f3..f30a9d25162 100644
--- a/src/mame/video/ms32.c
+++ b/src/mame/video/ms32.c
@@ -69,8 +69,6 @@ static TILE_GET_INFO( get_ms32_extra_tile_info )
VIDEO_START( ms32 )
{
ms32_state *state = machine.driver_data<ms32_state>();
- int width = machine.primary_screen->width();
- int height = machine.primary_screen->height();
state->m_priram_8 = auto_alloc_array_clear(machine, UINT8, 0x2000);
state->m_palram_16 = auto_alloc_array_clear(machine, UINT16, 0x20000);
@@ -87,9 +85,9 @@ VIDEO_START( ms32 )
/* set up tile layers */
- state->m_temp_bitmap_tilemaps.allocate(width, height);
- state->m_temp_bitmap_sprites.allocate(width, height);
- state->m_temp_bitmap_sprites_pri.allocate(width, height); // not actually being used for rendering, we embed pri info in the raw colour bitmap
+ machine.primary_screen->register_screen_bitmap(state->m_temp_bitmap_tilemaps);
+ machine.primary_screen->register_screen_bitmap(state->m_temp_bitmap_sprites);
+ machine.primary_screen->register_screen_bitmap(state->m_temp_bitmap_sprites_pri); // not actually being used for rendering, we embed pri info in the raw colour bitmap
state->m_temp_bitmap_tilemaps.fill(0);
state->m_temp_bitmap_sprites.fill(0);
diff --git a/src/mame/video/nbmj8891.c b/src/mame/video/nbmj8891.c
index b0be97ca63e..6af4d2d0e33 100644
--- a/src/mame/video/nbmj8891.c
+++ b/src/mame/video/nbmj8891.c
@@ -499,7 +499,7 @@ VIDEO_START( nbmj8891_1layer )
int width = machine.primary_screen->width();
int height = machine.primary_screen->height();
- state->m_tmpbitmap0.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap0);
state->m_videoram0 = auto_alloc_array(machine, UINT8, width * height);
state->m_palette = auto_alloc_array(machine, UINT8, 0x200);
state->m_clut = auto_alloc_array(machine, UINT8, 0x800);
@@ -516,8 +516,8 @@ VIDEO_START( nbmj8891_2layer )
int width = machine.primary_screen->width();
int height = machine.primary_screen->height();
- state->m_tmpbitmap0.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tmpbitmap1.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap0);
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap1);
state->m_videoram0 = auto_alloc_array(machine, UINT8, width * height);
state->m_videoram1 = auto_alloc_array(machine, UINT8, width * height);
state->m_palette = auto_alloc_array(machine, UINT8, 0x200);
diff --git a/src/mame/video/nbmj8900.c b/src/mame/video/nbmj8900.c
index 7170b9ca4e4..bc6c28974fa 100644
--- a/src/mame/video/nbmj8900.c
+++ b/src/mame/video/nbmj8900.c
@@ -383,8 +383,8 @@ VIDEO_START( nbmj8900_2layer )
state->m_screen_width = machine.primary_screen->width();
state->m_screen_height = machine.primary_screen->height();
- state->m_tmpbitmap0.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tmpbitmap1.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap0);
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap1);
state->m_videoram0 = auto_alloc_array(machine, UINT8, state->m_screen_width * state->m_screen_height);
state->m_videoram1 = auto_alloc_array(machine, UINT8, state->m_screen_width * state->m_screen_height);
state->m_palette = auto_alloc_array(machine, UINT8, 0x200);
diff --git a/src/mame/video/nbmj8991.c b/src/mame/video/nbmj8991.c
index 0f4b7c84bdf..4a5076d9492 100644
--- a/src/mame/video/nbmj8991.c
+++ b/src/mame/video/nbmj8991.c
@@ -296,7 +296,7 @@ VIDEO_START( nbmj8991 )
int width = machine.primary_screen->width();
int height = machine.primary_screen->height();
- state->m_tmpbitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap);
state->m_videoram = auto_alloc_array(machine, UINT8, width * height);
state->m_clut = auto_alloc_array(machine, UINT8, 0x800);
memset(state->m_videoram, 0x00, (width * height * sizeof(UINT8)));
diff --git a/src/mame/video/nbmj9195.c b/src/mame/video/nbmj9195.c
index 2faab0cb665..1c58e9327d2 100644
--- a/src/mame/video/nbmj9195.c
+++ b/src/mame/video/nbmj9195.c
@@ -394,7 +394,7 @@ VIDEO_START( nbmj9195_1layer )
int width = machine.primary_screen->width();
int height = machine.primary_screen->height();
- state->m_tmpbitmap[0].allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap[0]);
state->m_videoram[0] = auto_alloc_array_clear(machine, UINT16, width * height);
state->m_palette = auto_alloc_array(machine, UINT8, 0x200);
state->m_clut[0] = auto_alloc_array(machine, UINT8, 0x1000);
@@ -409,8 +409,8 @@ VIDEO_START( nbmj9195_2layer )
int width = machine.primary_screen->width();
int height = machine.primary_screen->height();
- state->m_tmpbitmap[0].allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tmpbitmap[1].allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap[0]);
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap[1]);
state->m_videoram[0] = auto_alloc_array_clear(machine, UINT16, width * height);
state->m_videoram[1] = auto_alloc_array_clear(machine, UINT16, width * height);
state->m_palette = auto_alloc_array(machine, UINT8, 0x200);
@@ -427,8 +427,8 @@ VIDEO_START( nbmj9195_nb22090 )
int width = machine.primary_screen->width();
int height = machine.primary_screen->height();
- state->m_tmpbitmap[0].allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tmpbitmap[1].allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap[0]);
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap[1]);
state->m_videoram[0] = auto_alloc_array_clear(machine, UINT16, width * height);
state->m_videoram[1] = auto_alloc_array_clear(machine, UINT16, width * height);
state->m_videoworkram[0] = auto_alloc_array_clear(machine, UINT16, width * height);
diff --git a/src/mame/video/ninjakd2.c b/src/mame/video/ninjakd2.c
index 88039db0885..6c85e17e22c 100644
--- a/src/mame/video/ninjakd2.c
+++ b/src/mame/video/ninjakd2.c
@@ -121,7 +121,7 @@ static void videoram_alloc(running_machine& machine, int const size)
state->m_robokid_bg2_videoram = auto_alloc_array_clear(machine, UINT8, size);
}
- state->m_sp_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_sp_bitmap);
}
static int stencil_ninjakd2( UINT16 pal );
diff --git a/src/mame/video/niyanpai.c b/src/mame/video/niyanpai.c
index 50ec9789f9f..3e37e901a56 100644
--- a/src/mame/video/niyanpai.c
+++ b/src/mame/video/niyanpai.c
@@ -365,9 +365,9 @@ VIDEO_START( niyanpai )
int width = machine.primary_screen->width();
int height = machine.primary_screen->height();
- state->m_tmpbitmap[0].allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tmpbitmap[1].allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_tmpbitmap[2].allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap[0]);
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap[1]);
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap[2]);
state->m_videoram[0] = auto_alloc_array_clear(machine, UINT16, width * height);
state->m_videoram[1] = auto_alloc_array_clear(machine, UINT16, width * height);
state->m_videoram[2] = auto_alloc_array_clear(machine, UINT16, width * height);
diff --git a/src/mame/video/ojankohs.c b/src/mame/video/ojankohs.c
index b88b5f0c468..afa54ea071a 100644
--- a/src/mame/video/ojankohs.c
+++ b/src/mame/video/ojankohs.c
@@ -296,7 +296,7 @@ VIDEO_START( ojankoc )
{
ojankohs_state *state = machine.driver_data<ojankohs_state>();
- state->m_tmpbitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap);
state->m_videoram = auto_alloc_array(machine, UINT8, 0x8000);
state->m_paletteram = auto_alloc_array(machine, UINT8, 0x20);
diff --git a/src/mame/video/pacland.c b/src/mame/video/pacland.c
index 695f98c8ab8..aa0128ec3e6 100644
--- a/src/mame/video/pacland.c
+++ b/src/mame/video/pacland.c
@@ -196,7 +196,7 @@ VIDEO_START( pacland )
pacland_state *state = machine.driver_data<pacland_state>();
int color;
- state->m_fg_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_fg_bitmap);
state->m_fg_bitmap.fill(0xffff);
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,tilemap_scan_rows,8,8,64,32);
diff --git a/src/mame/video/paradise.c b/src/mame/video/paradise.c
index cf4d75d079e..38859c29075 100644
--- a/src/mame/video/paradise.c
+++ b/src/mame/video/paradise.c
@@ -169,7 +169,7 @@ VIDEO_START( paradise )
state->m_tilemap_2 = tilemap_create(machine, get_tile_info_2, tilemap_scan_rows, 8, 8, 0x20, 0x20);
/* pixmap */
- state->m_tmpbitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap);
tilemap_set_transparent_pen(state->m_tilemap_0, 0x0f);
tilemap_set_transparent_pen(state->m_tilemap_1, 0xff);
diff --git a/src/mame/video/psikyosh.c b/src/mame/video/psikyosh.c
index 1b1c12374a9..bd4a9c1b23b 100644
--- a/src/mame/video/psikyosh.c
+++ b/src/mame/video/psikyosh.c
@@ -1227,10 +1227,8 @@ VIDEO_START( psikyosh )
{
psikyosh_state *state = machine.driver_data<psikyosh_state>();
UINT8 *alphatable = state->m_alphatable;
- int width = machine.primary_screen->width();
- int height = machine.primary_screen->height();
- state->m_z_bitmap.allocate(width, height); /* z-buffer */
+ machine.primary_screen->register_screen_bitmap(state->m_z_bitmap); /* z-buffer */
state->m_zoom_bitmap.allocate(16*16, 16*16); /* temp buffer for assembling sprites */
state->m_bg_bitmap.allocate(32*16, 32*16); /* temp buffer for assembling tilemaps */
state->m_bg_zoom = auto_alloc_array(machine, UINT16, 256);
diff --git a/src/mame/video/quasar.c b/src/mame/video/quasar.c
index df5749ece8f..7a8b95adeb7 100644
--- a/src/mame/video/quasar.c
+++ b/src/mame/video/quasar.c
@@ -96,7 +96,7 @@ VIDEO_START( quasar )
state->m_effectram = auto_alloc_array(machine, UINT8, 0x400);
/* create helper bitmap */
- state->m_collision_background.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_collision_background);
/* register save */
state->save_item(NAME(state->m_collision_background));
diff --git a/src/mame/video/shangha3.c b/src/mame/video/shangha3.c
index d4bbf27b86f..120410d63f8 100644
--- a/src/mame/video/shangha3.c
+++ b/src/mame/video/shangha3.c
@@ -69,7 +69,7 @@ VIDEO_START( shangha3 )
shangha3_state *state = machine.driver_data<shangha3_state>();
int i;
- state->m_rawbitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_rawbitmap);
for (i = 0;i < 14;i++)
state->m_drawmode_table[i] = DRAWMODE_SOURCE;
diff --git a/src/mame/video/spbactn.c b/src/mame/video/spbactn.c
index 282d41597fc..f266658ef4c 100644
--- a/src/mame/video/spbactn.c
+++ b/src/mame/video/spbactn.c
@@ -111,11 +111,8 @@ VIDEO_START( spbactn )
spbactn_state *state = machine.driver_data<spbactn_state>();
/* allocate bitmaps */
- int width = machine.primary_screen->width();
- int height = machine.primary_screen->height();
-
- state->m_tile_bitmap_bg.allocate(width, height);
- state->m_tile_bitmap_fg.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_bg);
+ machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_fg);
}
SCREEN_UPDATE_RGB32( spbactn )
diff --git a/src/mame/video/sprint2.c b/src/mame/video/sprint2.c
index 90c57aa6dd9..d63a32cd1e9 100644
--- a/src/mame/video/sprint2.c
+++ b/src/mame/video/sprint2.c
@@ -46,7 +46,7 @@ static TILE_GET_INFO( get_tile_info )
VIDEO_START( sprint2 )
{
sprint2_state *state = machine.driver_data<sprint2_state>();
- state->m_helper.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_helper);
state->m_bg_tilemap = tilemap_create(machine, get_tile_info, tilemap_scan_rows, 16, 8, 32, 32);
}
diff --git a/src/mame/video/sprint4.c b/src/mame/video/sprint4.c
index ecbaf0cd1b8..61e0c523916 100644
--- a/src/mame/video/sprint4.c
+++ b/src/mame/video/sprint4.c
@@ -51,7 +51,7 @@ static TILE_GET_INFO( sprint4_tile_info )
VIDEO_START( sprint4 )
{
sprint4_state *state = machine.driver_data<sprint4_state>();
- state->m_helper.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_helper);
state->m_playfield = tilemap_create(machine, sprint4_tile_info, tilemap_scan_rows, 8, 8, 32, 32);
}
diff --git a/src/mame/video/sprint8.c b/src/mame/video/sprint8.c
index dc1af359267..6674008a6e5 100644
--- a/src/mame/video/sprint8.c
+++ b/src/mame/video/sprint8.c
@@ -117,8 +117,8 @@ WRITE8_HANDLER( sprint8_video_ram_w )
VIDEO_START( sprint8 )
{
sprint8_state *state = machine.driver_data<sprint8_state>();
- state->m_helper1.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_helper2.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_helper1);
+ machine.primary_screen->register_screen_bitmap(state->m_helper2);
state->m_tilemap1 = tilemap_create(machine, get_tile_info1, tilemap_scan_rows, 16, 8, 32, 32);
state->m_tilemap2 = tilemap_create(machine, get_tile_info2, tilemap_scan_rows, 16, 8, 32, 32);
diff --git a/src/mame/video/starfire.c b/src/mame/video/starfire.c
index 248cc96dd15..0133d28f2fb 100644
--- a/src/mame/video/starfire.c
+++ b/src/mame/video/starfire.c
@@ -19,7 +19,7 @@ VIDEO_START( starfire )
{
starfire_state *state = machine.driver_data<starfire_state>();
- state->m_starfire_screen.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_starfire_screen);
state->m_scanline_timer = machine.scheduler().timer_alloc(FUNC(starfire_scanline_callback));
state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(STARFIRE_VBEND), STARFIRE_VBEND);
diff --git a/src/mame/video/starshp1.c b/src/mame/video/starshp1.c
index aff2b5e7975..8e6947b2189 100644
--- a/src/mame/video/starshp1.c
+++ b/src/mame/video/starshp1.c
@@ -81,7 +81,7 @@ VIDEO_START( starshp1 )
val = (val << 1) | (bit & 1);
}
- state->m_helper.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_helper);
}
diff --git a/src/mame/video/taito_f3.c b/src/mame/video/taito_f3.c
index 3fab2207a4d..4dd686c18b6 100644
--- a/src/mame/video/taito_f3.c
+++ b/src/mame/video/taito_f3.c
@@ -542,7 +542,7 @@ VIDEO_START( f3 )
{
taito_f3_state *state = machine.driver_data<taito_f3_state>();
const struct F3config *pCFG=&f3_config_table[0];
- int width, height, i;
+ int i;
state->m_f3_alpha_level_2as=127;
state->m_f3_alpha_level_2ad=127;
@@ -647,9 +647,7 @@ VIDEO_START( f3 )
state->m_pixel_layer = tilemap_create(machine, get_tile_info_pixel,tilemap_scan_cols,8,8,64,32);
state->m_pf_line_inf = auto_alloc_array(machine, struct f3_playfield_line_inf, 5);
state->m_sa_line_inf = auto_alloc_array(machine, struct f3_spritealpha_line_inf, 1);
- width = machine.primary_screen->width();
- height = machine.primary_screen->height();
- state->m_pri_alp_bitmap.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_pri_alp_bitmap);
state->m_tile_opaque_sp = auto_alloc_array(machine, UINT8, machine.gfx[2]->total_elements);
for (i=0; i<8; i++)
state->m_tile_opaque_pf[i] = auto_alloc_array(machine, UINT8, machine.gfx[1]->total_elements);
diff --git a/src/mame/video/taitojc.c b/src/mame/video/taitojc.c
index 8ed296d30aa..dc228e2fe5c 100644
--- a/src/mame/video/taitojc.c
+++ b/src/mame/video/taitojc.c
@@ -261,7 +261,6 @@ static void taitojc_exit(running_machine &machine)
VIDEO_START( taitojc )
{
taitojc_state *state = machine.driver_data<taitojc_state>();
- int width, height;
state->m_poly = poly_alloc(machine, 4000, sizeof(poly_extra_data), POLYFLAG_ALLOW_QUADS);
machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(taitojc_exit), &machine));
@@ -285,11 +284,8 @@ VIDEO_START( taitojc )
state->m_texture = auto_alloc_array(machine, UINT8, 0x400000);
- state->m_framebuffer.allocate(machine.primary_screen->width(), machine.primary_screen->height());
-
- width = machine.primary_screen->width();
- height = machine.primary_screen->height();
- state->m_zbuffer.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_framebuffer);
+ machine.primary_screen->register_screen_bitmap(state->m_zbuffer);
}
static void draw_object_bank(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 bank_type, UINT8 pri)
diff --git a/src/mame/video/taitosj.c b/src/mame/video/taitosj.c
index c2852698324..0d284da287a 100644
--- a/src/mame/video/taitosj.c
+++ b/src/mame/video/taitosj.c
@@ -180,8 +180,8 @@ VIDEO_START( taitosj )
for (i = 0; i < 3; i++)
{
- state->m_layer_bitmap[i].allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_sprite_layer_collbitmap2[i].allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_layer_bitmap[i]);
+ machine.primary_screen->register_screen_bitmap(state->m_sprite_layer_collbitmap2[i]);
}
state->m_sprite_sprite_collbitmap1.allocate(32,32);
diff --git a/src/mame/video/tank8.c b/src/mame/video/tank8.c
index ff1a0fadf24..a6b7d9c1eb3 100644
--- a/src/mame/video/tank8.c
+++ b/src/mame/video/tank8.c
@@ -104,9 +104,9 @@ static TILE_GET_INFO( tank8_get_tile_info )
VIDEO_START( tank8 )
{
tank8_state *state = machine.driver_data<tank8_state>();
- state->m_helper1.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_helper2.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_helper3.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_helper1);
+ machine.primary_screen->register_screen_bitmap(state->m_helper2);
+ machine.primary_screen->register_screen_bitmap(state->m_helper3);
state->m_tilemap = tilemap_create(machine, tank8_get_tile_info, tilemap_scan_rows, 16, 16, 32, 32);
diff --git a/src/mame/video/tceptor.c b/src/mame/video/tceptor.c
index 78483b8c4b1..65e8ad4baa8 100644
--- a/src/mame/video/tceptor.c
+++ b/src/mame/video/tceptor.c
@@ -394,7 +394,7 @@ VIDEO_START( tceptor )
decode_sprite32(machine, "gfx4");
/* allocate temp bitmaps */
- state->m_temp_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_temp_bitmap);
namco_road_init(machine, gfx_index);
diff --git a/src/mame/video/tecmo16.c b/src/mame/video/tecmo16.c
index 7c1058b25d6..fdca6a8ca0e 100644
--- a/src/mame/video/tecmo16.c
+++ b/src/mame/video/tecmo16.c
@@ -59,15 +59,13 @@ static TILE_GET_INFO( tx_get_tile_info )
VIDEO_START( fstarfrc )
{
tecmo16_state *state = machine.driver_data<tecmo16_state>();
- int width = machine.primary_screen->width();
- int height = machine.primary_screen->height();
/* set up tile layers */
- state->m_tile_bitmap_bg.allocate(width, height);
- state->m_tile_bitmap_fg.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_bg);
+ machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_fg);
/* set up sprites */
- state->m_sprite_bitmap.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap);
state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,tilemap_scan_rows,16,16,32,32);
state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,tilemap_scan_rows,16,16,32,32);
@@ -85,15 +83,13 @@ VIDEO_START( fstarfrc )
VIDEO_START( ginkun )
{
tecmo16_state *state = machine.driver_data<tecmo16_state>();
- int width = machine.primary_screen->width();
- int height = machine.primary_screen->height();
/* set up tile layers */
- state->m_tile_bitmap_bg.allocate(width, height);
- state->m_tile_bitmap_fg.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_bg);
+ machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_fg);
/* set up sprites */
- state->m_sprite_bitmap.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap);
state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,tilemap_scan_rows,16,16,64,32);
state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,tilemap_scan_rows,16,16,64,32);
@@ -109,15 +105,13 @@ VIDEO_START( ginkun )
VIDEO_START( riot )
{
tecmo16_state *state = machine.driver_data<tecmo16_state>();
- int width = machine.primary_screen->width();
- int height = machine.primary_screen->height();
/* set up tile layers */
- state->m_tile_bitmap_bg.allocate(width, height);
- state->m_tile_bitmap_fg.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_bg);
+ machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_fg);
/* set up sprites */
- state->m_sprite_bitmap.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap);
state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,tilemap_scan_rows,16,16,64,32);
state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,tilemap_scan_rows,16,16,64,32);
diff --git a/src/mame/video/toaplan2.c b/src/mame/video/toaplan2.c
index d212849be2b..ebea3ab08d8 100644
--- a/src/mame/video/toaplan2.c
+++ b/src/mame/video/toaplan2.c
@@ -82,15 +82,13 @@ static void truxton2_postload(running_machine &machine)
VIDEO_START( toaplan2 )
{
toaplan2_state *state = machine.driver_data<toaplan2_state>();
- int width = machine.primary_screen->width();
- int height = machine.primary_screen->height();
/* cache the VDP device */
state->m_vdp0 = machine.device<gp9001vdp_device>("gp9001vdp0");
state->m_vdp1 = machine.device<gp9001vdp_device>("gp9001vdp1");
/* our current VDP implementation needs this bitmap to work with */
- state->m_custom_priority_bitmap.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_custom_priority_bitmap);
if (state->m_vdp0 != NULL)
{
@@ -100,7 +98,7 @@ VIDEO_START( toaplan2 )
if (state->m_vdp1 != NULL)
{
- state->m_secondary_render_bitmap.allocate(width, height);
+ machine.primary_screen->register_screen_bitmap(state->m_secondary_render_bitmap);
state->m_vdp1->custom_priority_bitmap = &state->m_custom_priority_bitmap;
}
diff --git a/src/mame/video/toobin.c b/src/mame/video/toobin.c
index a3ffd24377f..84eee127502 100644
--- a/src/mame/video/toobin.c
+++ b/src/mame/video/toobin.c
@@ -97,7 +97,7 @@ VIDEO_START( toobin )
tilemap_set_transparent_pen(state->m_alpha_tilemap, 0);
/* allocate a playfield bitmap for rendering */
- state->m_pfbitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_pfbitmap);
state->save_item(NAME(state->m_brightness));
}
diff --git a/src/mame/video/triplhnt.c b/src/mame/video/triplhnt.c
index 099577a280a..18d5837c6eb 100644
--- a/src/mame/video/triplhnt.c
+++ b/src/mame/video/triplhnt.c
@@ -20,7 +20,7 @@ static TILE_GET_INFO( get_tile_info )
VIDEO_START( triplhnt )
{
triplhnt_state *state = machine.driver_data<triplhnt_state>();
- state->m_helper.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_helper);
state->m_bg_tilemap = tilemap_create(machine, get_tile_info, tilemap_scan_rows, 16, 16, 16, 16);
}
diff --git a/src/mame/video/ultratnk.c b/src/mame/video/ultratnk.c
index 8ed661f26be..b04a2198f4b 100644
--- a/src/mame/video/ultratnk.c
+++ b/src/mame/video/ultratnk.c
@@ -49,7 +49,7 @@ static TILE_GET_INFO( ultratnk_tile_info )
VIDEO_START( ultratnk )
{
ultratnk_state *state = machine.driver_data<ultratnk_state>();
- state->m_helper.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_helper);
state->m_playfield = tilemap_create(machine, ultratnk_tile_info, tilemap_scan_rows, 8, 8, 32, 32);
}
diff --git a/src/mame/video/wolfpack.c b/src/mame/video/wolfpack.c
index c3dd86880f0..bcb71faff19 100644
--- a/src/mame/video/wolfpack.c
+++ b/src/mame/video/wolfpack.c
@@ -116,7 +116,7 @@ VIDEO_START( wolfpack )
state->m_LFSR = auto_alloc_array(machine, UINT8, 0x8000);
- state->m_helper.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_helper);
for (i = 0; i < 0x8000; i++)
{
diff --git a/src/mame/video/zac2650.c b/src/mame/video/zac2650.c
index 515c2a17e9d..255f3184a60 100644
--- a/src/mame/video/zac2650.c
+++ b/src/mame/video/zac2650.c
@@ -144,8 +144,8 @@ VIDEO_START( tinvader )
state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan_rows,
24, 24, 32, 32);
- state->m_bitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
- state->m_spritebitmap.allocate(machine.primary_screen->width(), machine.primary_screen->height());
+ machine.primary_screen->register_screen_bitmap(state->m_bitmap);
+ machine.primary_screen->register_screen_bitmap(state->m_spritebitmap);
gfx_element_set_source(machine.gfx[1], state->m_s2636_0_ram);
gfx_element_set_source(machine.gfx[2], state->m_s2636_0_ram);