summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2015-12-19 11:06:06 +0100
committer Miodrag Milanovic <mmicko@gmail.com>2015-12-19 11:08:25 +0100
commit42adde9fd5658c8bdf1f24f1970072b8a7db0a54 (patch)
tree250107b6cdbe992c1a3569ec4dcedf4f706f94c0 /src/mame/video
parent4facaf6c24e53a17be232c5c3cab31ecca2d0335 (diff)
auto_alloc_array_clear -> make_unique_clear (nw)
Diffstat (limited to 'src/mame/video')
-rw-r--r--src/mame/video/40love.cpp8
-rw-r--r--src/mame/video/antic.cpp8
-rw-r--r--src/mame/video/antic.h4
-rw-r--r--src/mame/video/apple2gs.cpp2
-rw-r--r--src/mame/video/cidelsa.cpp8
-rw-r--r--src/mame/video/combatsc.cpp28
-rw-r--r--src/mame/video/cps1.cpp18
-rw-r--r--src/mame/video/decbac06.cpp16
-rw-r--r--src/mame/video/decbac06.h5
-rw-r--r--src/mame/video/deco16ic.cpp12
-rw-r--r--src/mame/video/deco16ic.h5
-rw-r--r--src/mame/video/decocomn.cpp4
-rw-r--r--src/mame/video/decocomn.h2
-rw-r--r--src/mame/video/dooyong.cpp8
-rw-r--r--src/mame/video/excellent_spr.cpp6
-rw-r--r--src/mame/video/excellent_spr.h2
-rw-r--r--src/mame/video/fuukifg.cpp20
-rw-r--r--src/mame/video/fuukifg.h6
-rw-r--r--src/mame/video/gb_lcd.cpp104
-rw-r--r--src/mame/video/gb_lcd.h6
-rw-r--r--src/mame/video/gp9001.cpp8
-rw-r--r--src/mame/video/gp9001.h2
-rw-r--r--src/mame/video/gridlee.cpp4
-rw-r--r--src/mame/video/inufuku.cpp6
-rw-r--r--src/mame/video/jalblend.cpp6
-rw-r--r--src/mame/video/jalblend.h2
-rw-r--r--src/mame/video/k001006.cpp16
-rw-r--r--src/mame/video/k001006.h6
-rw-r--r--src/mame/video/k001604.cpp27
-rw-r--r--src/mame/video/k001604.h6
-rw-r--r--src/mame/video/k007342.cpp8
-rw-r--r--src/mame/video/k007342.h4
-rw-r--r--src/mame/video/k007420.cpp4
-rw-r--r--src/mame/video/k007420.h2
-rw-r--r--src/mame/video/k037122.cpp26
-rw-r--r--src/mame/video/k037122.h6
-rw-r--r--src/mame/video/k051960.cpp4
-rw-r--r--src/mame/video/k051960.h2
-rw-r--r--src/mame/video/k052109.cpp4
-rw-r--r--src/mame/video/k052109.h2
-rw-r--r--src/mame/video/k053244_k053245.cpp12
-rw-r--r--src/mame/video/k053244_k053245.h4
-rw-r--r--src/mame/video/k053936.cpp12
-rw-r--r--src/mame/video/k053936.h4
-rw-r--r--src/mame/video/k1ge.cpp4
-rw-r--r--src/mame/video/k1ge.h2
-rw-r--r--src/mame/video/kaneko_grap2.cpp18
-rw-r--r--src/mame/video/kaneko_grap2.h8
-rw-r--r--src/mame/video/kaneko_spr.cpp4
-rw-r--r--src/mame/video/kaneko_spr.h2
-rw-r--r--src/mame/video/kaneko_tmap.cpp20
-rw-r--r--src/mame/video/kaneko_tmap.h6
-rw-r--r--src/mame/video/legionna.cpp24
-rw-r--r--src/mame/video/leland.cpp8
-rw-r--r--src/mame/video/m107.cpp8
-rw-r--r--src/mame/video/macrossp.cpp16
-rw-r--r--src/mame/video/mb60553.cpp8
-rw-r--r--src/mame/video/mb60553.h4
-rw-r--r--src/mame/video/mcatadv.cpp10
-rw-r--r--src/mame/video/midyunit.cpp4
-rw-r--r--src/mame/video/model1.cpp10
-rw-r--r--src/mame/video/model2.cpp2
-rw-r--r--src/mame/video/model3.cpp16
-rw-r--r--src/mame/video/n64.cpp4
-rw-r--r--src/mame/video/n64.h2
-rw-r--r--src/mame/video/namcos22.cpp10
-rw-r--r--src/mame/video/nbmj8688.cpp4
-rw-r--r--src/mame/video/nbmj9195.cpp20
-rw-r--r--src/mame/video/newport.cpp4
-rw-r--r--src/mame/video/newport.h2
-rw-r--r--src/mame/video/ninjakd2.cpp18
-rw-r--r--src/mame/video/niyanpai.cpp24
-rw-r--r--src/mame/video/nmk16.cpp24
-rw-r--r--src/mame/video/pastelg.cpp4
-rw-r--r--src/mame/video/pc080sn.cpp12
-rw-r--r--src/mame/video/pc080sn.h2
-rw-r--r--src/mame/video/pc090oj.cpp8
-rw-r--r--src/mame/video/pc090oj.h4
-rw-r--r--src/mame/video/pgm.cpp10
-rw-r--r--src/mame/video/ppu2c0x.cpp4
-rw-r--r--src/mame/video/ppu2c0x.h2
-rw-r--r--src/mame/video/segas32.cpp2
-rw-r--r--src/mame/video/seibuspi.cpp18
-rw-r--r--src/mame/video/simpl156.cpp18
-rw-r--r--src/mame/video/st0020.cpp18
-rw-r--r--src/mame/video/st0020.h6
-rw-r--r--src/mame/video/system1.cpp24
-rw-r--r--src/mame/video/taito_f2.cpp26
-rw-r--r--src/mame/video/taito_f3.cpp50
-rw-r--r--src/mame/video/taitojc.cpp10
-rw-r--r--src/mame/video/tatsumi.cpp8
-rw-r--r--src/mame/video/tc0080vco.cpp28
-rw-r--r--src/mame/video/tc0080vco.h2
-rw-r--r--src/mame/video/tc0100scn.cpp32
-rw-r--r--src/mame/video/tc0100scn.h2
-rw-r--r--src/mame/video/tc0110pcr.cpp4
-rw-r--r--src/mame/video/tc0110pcr.h2
-rw-r--r--src/mame/video/tc0180vcu.cpp8
-rw-r--r--src/mame/video/tc0180vcu.h4
-rw-r--r--src/mame/video/tc0280grd.cpp4
-rw-r--r--src/mame/video/tc0280grd.h2
-rw-r--r--src/mame/video/tceptor.cpp6
-rw-r--r--src/mame/video/thepit.cpp4
-rw-r--r--src/mame/video/thief.cpp8
-rw-r--r--src/mame/video/ti85.cpp18
-rw-r--r--src/mame/video/tiamc1.cpp18
-rw-r--r--src/mame/video/toaplan1.cpp58
-rw-r--r--src/mame/video/twincobr.cpp12
-rw-r--r--src/mame/video/unico.cpp16
-rw-r--r--src/mame/video/vs920a.cpp4
-rw-r--r--src/mame/video/vs920a.h2
111 files changed, 598 insertions, 597 deletions
diff --git a/src/mame/video/40love.cpp b/src/mame/video/40love.cpp
index 5cbd46c0d36..f95a12a5d26 100644
--- a/src/mame/video/40love.cpp
+++ b/src/mame/video/40love.cpp
@@ -103,8 +103,8 @@ void fortyl_state::redraw_pixels()
void fortyl_state::video_start()
{
- m_pixram1 = auto_alloc_array_clear(machine(), UINT8, 0x4000);
- m_pixram2 = auto_alloc_array_clear(machine(), UINT8, 0x4000);
+ m_pixram1 = make_unique_clear<UINT8[]>(0x4000);
+ m_pixram2 = make_unique_clear<UINT8[]>(0x4000);
m_tmp_bitmap1 = std::make_unique<bitmap_ind16>(256, 256);
m_tmp_bitmap2 = std::make_unique<bitmap_ind16>(256, 256);
@@ -118,8 +118,8 @@ void fortyl_state::video_start()
save_item(NAME(m_flipscreen));
save_item(NAME(m_pix_color));
- save_pointer(NAME(m_pixram1), 0x4000);
- save_pointer(NAME(m_pixram2), 0x4000);
+ save_pointer(NAME(m_pixram1.get()), 0x4000);
+ save_pointer(NAME(m_pixram2.get()), 0x4000);
save_item(NAME(*m_tmp_bitmap1));
save_item(NAME(*m_tmp_bitmap2));
save_item(NAME(m_pixram_sel));
diff --git a/src/mame/video/antic.cpp b/src/mame/video/antic.cpp
index fab29e17e69..4174480ebcb 100644
--- a/src/mame/video/antic.cpp
+++ b/src/mame/video/antic.cpp
@@ -67,7 +67,7 @@ void antic_device::device_start()
m_bitmap = std::make_unique<bitmap_ind16>(m_screen->width(), m_screen->height());
- m_cclk_expand = auto_alloc_array_clear(machine(), UINT32, 21 * 256);
+ m_cclk_expand = make_unique_clear<UINT32[]>(21 * 256);
m_pf_21 = &m_cclk_expand[ 0 * 256];
m_pf_x10b = &m_cclk_expand[ 1 * 256];
@@ -97,7 +97,7 @@ void antic_device::device_start()
cclk_init();
for (auto & elem : m_prio_table)
- elem = auto_alloc_array_clear(machine(), UINT8, 8*256);
+ elem = make_unique_clear<UINT8[]>(8*256);
LOG(("atari prio_init\n"));
prio_init();
@@ -133,7 +133,7 @@ void antic_device::device_start()
save_item(NAME(m_cclock));
save_item(NAME(m_pmbits));
- save_pointer(NAME(m_cclk_expand), 21 * 256);
+ save_pointer(NAME(m_cclk_expand.get()), 21 * 256);
save_pointer(NAME(m_used_colors.get()), 21 * 256);
}
@@ -1804,7 +1804,7 @@ TIMER_CALLBACK_MEMBER( antic_device::scanline_render )
}
if (m_scanline >= VBL_END && m_scanline < 256)
- m_gtia->render((UINT8 *)m_pmbits + PMOFFSET, (UINT8 *)m_cclock + PMOFFSET - m_hscrol_old, (UINT8 *)m_prio_table[m_gtia->get_w_prior() & 0x3f], (UINT8 *)&m_pmbits);
+ m_gtia->render((UINT8 *)m_pmbits + PMOFFSET, (UINT8 *)m_cclock + PMOFFSET - m_hscrol_old, m_prio_table[m_gtia->get_w_prior() & 0x3f].get(), (UINT8 *)&m_pmbits);
m_steal_cycles += CYCLES_REFRESH;
LOG((" run CPU for %d cycles\n", CYCLES_HSYNC - CYCLES_HSTART - m_steal_cycles));
diff --git a/src/mame/video/antic.h b/src/mame/video/antic.h
index 5ddfbe81b22..2b278c2a780 100644
--- a/src/mame/video/antic.h
+++ b/src/mame/video/antic.h
@@ -435,9 +435,9 @@ private:
ANTIC_W m_w; /* ANTIC write registers */
UINT8 m_cclock[256+32]; /* color clock buffer filled by ANTIC */
UINT8 m_pmbits[256+32]; /* player missile buffer filled by GTIA */
- UINT8 *m_prio_table[64]; /* player/missile priority tables */
+ std::unique_ptr<UINT8[]> m_prio_table[64]; /* player/missile priority tables */
VIDEO *m_video[312]; /* video buffer */
- UINT32 *m_cclk_expand; /* shared buffer for the following: */
+ std::unique_ptr<UINT32[]> m_cclk_expand; /* shared buffer for the following: */
UINT32 *m_pf_21; /* 1cclk 2 color txt 2,3 */
UINT32 *m_pf_x10b; /* 1cclk 4 color txt 4,5, gfx D,E */
UINT32 *m_pf_3210b2; /* 1cclk 5 color txt 6,7, gfx 9,B,C */
diff --git a/src/mame/video/apple2gs.cpp b/src/mame/video/apple2gs.cpp
index 1cefde0e248..eacb0e9c632 100644
--- a/src/mame/video/apple2gs.cpp
+++ b/src/mame/video/apple2gs.cpp
@@ -18,7 +18,7 @@
VIDEO_START_MEMBER(apple2gs_state,apple2gs)
{
m_bordercolor = 0;
- apple2_video_start(m_slowmem, m_slowmem+0x10000, 0, 8);
+ apple2_video_start(m_slowmem.get(), m_slowmem.get()+0x10000, 0, 8);
m_legacy_gfx = std::make_unique<bitmap_ind16>(560, 192);
save_item(m_bordercolor, "BORDERCLR");
diff --git a/src/mame/video/cidelsa.cpp b/src/mame/video/cidelsa.cpp
index f942bf187fb..2bda7fe88cc 100644
--- a/src/mame/video/cidelsa.cpp
+++ b/src/mame/video/cidelsa.cpp
@@ -118,13 +118,13 @@ ADDRESS_MAP_END
void cidelsa_state::video_start()
{
// allocate memory
- m_pcbram = auto_alloc_array_clear(machine(), UINT8, CIDELSA_CHARRAM_SIZE);
- m_charram = auto_alloc_array_clear(machine(), UINT8, CIDELSA_CHARRAM_SIZE);
+ m_pcbram = make_unique_clear<UINT8[]>(CIDELSA_CHARRAM_SIZE);
+ m_charram = make_unique_clear<UINT8[]>(CIDELSA_CHARRAM_SIZE);
// register for state saving
save_item(NAME(m_cdp1869_pcb));
- save_pointer(NAME(m_pcbram), CIDELSA_CHARRAM_SIZE);
- save_pointer(NAME(m_charram), CIDELSA_CHARRAM_SIZE);
+ save_pointer(NAME(m_pcbram.get()), CIDELSA_CHARRAM_SIZE);
+ save_pointer(NAME(m_charram.get()), CIDELSA_CHARRAM_SIZE);
}
/* AY-3-8910 */
diff --git a/src/mame/video/combatsc.cpp b/src/mame/video/combatsc.cpp
index e02cb1eb618..c22edbce232 100644
--- a/src/mame/video/combatsc.cpp
+++ b/src/mame/video/combatsc.cpp
@@ -258,8 +258,8 @@ VIDEO_START_MEMBER(combatsc_state,combatsc)
m_bg_tilemap[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info1),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_textlayer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_text_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_spriteram[0] = auto_alloc_array_clear(machine(), UINT8, 0x800);
- m_spriteram[1] = auto_alloc_array_clear(machine(), UINT8, 0x800);
+ m_spriteram[0] = make_unique_clear<UINT8[]>(0x800);
+ m_spriteram[1] = make_unique_clear<UINT8[]>(0x800);
m_bg_tilemap[0]->set_transparent_pen(0);
m_bg_tilemap[1]->set_transparent_pen(0);
@@ -267,8 +267,8 @@ VIDEO_START_MEMBER(combatsc_state,combatsc)
m_textlayer->set_scroll_rows(32);
- save_pointer(NAME(m_spriteram[0]), 0x800);
- save_pointer(NAME(m_spriteram[1]), 0x800);
+ save_pointer(NAME(m_spriteram[0].get()), 0x800);
+ save_pointer(NAME(m_spriteram[1].get()), 0x800);
}
VIDEO_START_MEMBER(combatsc_state,combatscb)
@@ -277,8 +277,8 @@ VIDEO_START_MEMBER(combatsc_state,combatscb)
m_bg_tilemap[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info1_bootleg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_textlayer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_text_info_bootleg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_spriteram[0] = auto_alloc_array_clear(machine(), UINT8, 0x800);
- m_spriteram[1] = auto_alloc_array_clear(machine(), UINT8, 0x800);
+ m_spriteram[0] = make_unique_clear<UINT8[]>(0x800);
+ m_spriteram[1] = make_unique_clear<UINT8[]>(0x800);
m_bg_tilemap[0]->set_transparent_pen(0);
m_bg_tilemap[1]->set_transparent_pen(0);
@@ -287,8 +287,8 @@ VIDEO_START_MEMBER(combatsc_state,combatscb)
m_bg_tilemap[0]->set_scroll_rows(32);
m_bg_tilemap[1]->set_scroll_rows(32);
- save_pointer(NAME(m_spriteram[0]), 0x800);
- save_pointer(NAME(m_spriteram[1]), 0x800);
+ save_pointer(NAME(m_spriteram[0].get()), 0x800);
+ save_pointer(NAME(m_spriteram[1].get()), 0x800);
}
/***************************************************************************
@@ -330,9 +330,9 @@ WRITE8_MEMBER(combatsc_state::combatsc_pf_control_w)
if (offset == 3)
{
if (data & 0x08)
- memcpy(m_spriteram[m_video_circuit], m_page[m_video_circuit] + 0x1000, 0x800);
+ memcpy(m_spriteram[m_video_circuit].get(), m_page[m_video_circuit] + 0x1000, 0x800);
else
- memcpy(m_spriteram[m_video_circuit], m_page[m_video_circuit] + 0x1800, 0x800);
+ memcpy(m_spriteram[m_video_circuit].get(), m_page[m_video_circuit] + 0x1800, 0x800);
}
}
@@ -406,8 +406,8 @@ UINT32 combatsc_state::screen_update_combatsc(screen_device &screen, bitmap_ind1
m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 1, 2);
/* we use the priority buffer so sprites are drawn front to back */
- draw_sprites(bitmap, cliprect, m_spriteram[1], 1, screen.priority(), 0x0f00);
- draw_sprites(bitmap, cliprect, m_spriteram[0], 0, screen.priority(), 0x4444);
+ draw_sprites(bitmap, cliprect, m_spriteram[1].get(), 1, screen.priority(), 0x0f00);
+ draw_sprites(bitmap, cliprect, m_spriteram[0].get(), 0, screen.priority(), 0x4444);
}
else
{
@@ -417,8 +417,8 @@ UINT32 combatsc_state::screen_update_combatsc(screen_device &screen, bitmap_ind1
m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0, 8);
/* we use the priority buffer so sprites are drawn front to back */
- draw_sprites(bitmap, cliprect, m_spriteram[1], 1, screen.priority(), 0x0f00);
- draw_sprites(bitmap, cliprect, m_spriteram[0], 0, screen.priority(), 0x4444);
+ draw_sprites(bitmap, cliprect, m_spriteram[1].get(), 1, screen.priority(), 0x0f00);
+ draw_sprites(bitmap, cliprect, m_spriteram[0].get(), 0, screen.priority(), 0x4444);
}
if (m_k007121_1->ctrlram_r(space, 1) & 0x08)
diff --git a/src/mame/video/cps1.cpp b/src/mame/video/cps1.cpp
index 0e91647975c..f02f0a7864e 100644
--- a/src/mame/video/cps1.cpp
+++ b/src/mame/video/cps1.cpp
@@ -2222,10 +2222,10 @@ VIDEO_START_MEMBER(cps_state,cps)
for (i = 0; i < cps1_palette_entries * 16; i++)
m_palette->set_pen_color(i, rgb_t(0,0,0));
- m_buffered_obj = auto_alloc_array_clear(machine(), UINT16, m_obj_size / 2);
+ m_buffered_obj = make_unique_clear<UINT16[]>(m_obj_size / 2);
if (m_cps_version == 2)
- m_cps2_buffered_obj = auto_alloc_array_clear(machine(), UINT16, m_cps2_obj_size / 2);
+ m_cps2_buffered_obj = make_unique_clear<UINT16[]>(m_cps2_obj_size / 2);
/* clear RAM regions */
memset(m_gfxram, 0, m_gfxram.bytes()); /* Clear GFX RAM */
@@ -2280,11 +2280,11 @@ VIDEO_START_MEMBER(cps_state,cps)
save_item(NAME(m_pri_ctrl));
save_item(NAME(m_objram_bank));
- save_pointer(NAME(m_buffered_obj), m_obj_size / 2);
+ save_pointer(NAME(m_buffered_obj.get()), m_obj_size / 2);
if (m_cps_version == 2)
{
save_item(NAME(m_cps2_last_sprite_offset));
- save_pointer(NAME(m_cps2_buffered_obj), m_cps2_obj_size / 2);
+ save_pointer(NAME(m_cps2_buffered_obj.get()), m_cps2_obj_size / 2);
}
machine().save().register_postload(save_prepost_delegate(FUNC(cps_state::cps1_get_video_base), this));
@@ -2443,7 +2443,7 @@ void cps_state::cps1_render_sprites( screen_device &screen, bitmap_ind16 &bitmap
int i, baseadd;
- UINT16 *base = m_buffered_obj;
+ UINT16 *base = m_buffered_obj.get();
/* some sf2 hacks draw the sprites in reverse order */
if ((m_game_config->bootleg_kludge == 1) || (m_game_config->bootleg_kludge == 2) || (m_game_config->bootleg_kludge == 3))
@@ -2636,7 +2636,7 @@ UINT16 *cps_state::cps2_objbase()
void cps_state::cps2_find_last_sprite() /* Find the offset of last sprite */
{
int offset = 0;
- UINT16 *base = m_cps2_buffered_obj;
+ UINT16 *base = m_cps2_buffered_obj.get();
/* Locate the end of table marker */
while (offset < m_cps2_obj_size / 2)
@@ -2675,7 +2675,7 @@ void cps_state::cps2_render_sprites( screen_device &screen, bitmap_ind16 &bitmap
}
int i;
- UINT16 *base = m_cps2_buffered_obj;
+ UINT16 *base = m_cps2_buffered_obj.get();
int xoffs = 64 - m_output[CPS2_OBJ_XOFFS /2];
int yoffs = 16 - m_output[CPS2_OBJ_YOFFS /2];
@@ -3065,7 +3065,7 @@ void cps_state::screen_eof_cps1(screen_device &screen, bool state)
if (m_cps_version == 1)
{
/* CPS1 sprites have to be delayed one frame */
- memcpy(m_buffered_obj, m_obj, m_obj_size);
+ memcpy(m_buffered_obj.get(), m_obj, m_obj_size);
}
}
}
@@ -3078,5 +3078,5 @@ void cps_state::cps2_set_sprite_priorities()
void cps_state::cps2_objram_latch()
{
cps2_set_sprite_priorities();
- memcpy(m_cps2_buffered_obj, cps2_objbase(), m_cps2_obj_size);
+ memcpy(m_cps2_buffered_obj.get(), cps2_objbase(), m_cps2_obj_size);
}
diff --git a/src/mame/video/decbac06.cpp b/src/mame/video/decbac06.cpp
index 32c2f7c1b4c..c974c4adf13 100644
--- a/src/mame/video/decbac06.cpp
+++ b/src/mame/video/decbac06.cpp
@@ -108,9 +108,9 @@ void deco_bac06_device::device_start()
if(!m_gfxdecode->started())
throw device_missing_dependencies();
- m_pf_data = auto_alloc_array_clear(machine(), UINT16, 0x4000 / 2); // 0x2000 is the maximum needed, some games / chip setups map less and mirror - stadium hero banks this to 0x4000?!
- m_pf_rowscroll = auto_alloc_array_clear(machine(), UINT16, 0x2000 / 2);
- m_pf_colscroll = auto_alloc_array_clear(machine(), UINT16, 0x2000 / 2);
+ m_pf_data = make_unique_clear<UINT16[]>(0x4000 / 2); // 0x2000 is the maximum needed, some games / chip setups map less and mirror - stadium hero banks this to 0x4000?!
+ m_pf_rowscroll = make_unique_clear<UINT16[]>(0x2000 / 2);
+ m_pf_colscroll = make_unique_clear<UINT16[]>(0x2000 / 2);
create_tilemaps(m_gfxregion8x8, m_gfxregion16x16);
m_gfxcolmask = 0x0f;
@@ -119,9 +119,9 @@ void deco_bac06_device::device_start()
m_bppmask = 0x0f;
m_rambank = 0;
- save_pointer(NAME(m_pf_data), 0x4000/2);
- save_pointer(NAME(m_pf_rowscroll), 0x2000/2);
- save_pointer(NAME(m_pf_colscroll), 0x2000/2);
+ save_pointer(NAME(m_pf_data.get()), 0x4000/2);
+ save_pointer(NAME(m_pf_rowscroll.get()), 0x2000/2);
+ save_pointer(NAME(m_pf_colscroll.get()), 0x2000/2);
save_item(NAME(m_pf_control_0));
save_item(NAME(m_pf_control_1));
save_item(NAME(m_gfxcolmask));
@@ -344,7 +344,7 @@ void deco_bac06_device::deco_bac06_pf_draw(bitmap_ind16 &bitmap,const rectangle
}
if (tm)
- custom_tilemap_draw(bitmap,cliprect,tm,m_pf_rowscroll,m_pf_colscroll,m_pf_control_0,m_pf_control_1,flags, penmask, pencondition, colprimask, colpricondition);
+ custom_tilemap_draw(bitmap,cliprect,tm,m_pf_rowscroll.get(),m_pf_colscroll.get(),m_pf_control_0,m_pf_control_1,flags, penmask, pencondition, colprimask, colpricondition);
}
@@ -355,7 +355,7 @@ void deco_bac06_device::deco_bac06_pf_draw_bootleg(bitmap_ind16 &bitmap,const re
if (!mode) tm = m_pf8x8_tilemap[type];
else tm = m_pf16x16_tilemap[type];
- custom_tilemap_draw(bitmap,cliprect,tm,m_pf_rowscroll,m_pf_colscroll,nullptr,nullptr,flags, 0, 0, 0, 0);
+ custom_tilemap_draw(bitmap,cliprect,tm,m_pf_rowscroll.get(),m_pf_colscroll.get(),nullptr,nullptr,flags, 0, 0, 0, 0);
}
diff --git a/src/mame/video/decbac06.h b/src/mame/video/decbac06.h
index f163a4e8cf4..51a991636fa 100644
--- a/src/mame/video/decbac06.h
+++ b/src/mame/video/decbac06.h
@@ -21,8 +21,9 @@ public:
static void static_set_gfxdecode_tag(device_t &device, const char *tag);
static void set_gfx_region_wide(device_t &device, int region8x8, int region16x16, int wide);
- UINT16* m_pf_data;
- UINT16* m_pf_rowscroll, *m_pf_colscroll;
+ std::unique_ptr<UINT16[]> m_pf_data;
+ std::unique_ptr<UINT16[]> m_pf_rowscroll;
+ std::unique_ptr<UINT16[]> m_pf_colscroll;
tilemap_t* m_pf8x8_tilemap[3];
tilemap_t* m_pf16x16_tilemap[3];
diff --git a/src/mame/video/deco16ic.cpp b/src/mame/video/deco16ic.cpp
index a792ff6fb0c..fa5b1caba0a 100644
--- a/src/mame/video/deco16ic.cpp
+++ b/src/mame/video/deco16ic.cpp
@@ -259,9 +259,9 @@ void deco16ic_device::device_start()
m_pf1_8bpp_mode = 0;
- m_pf1_data = auto_alloc_array_clear(machine(), UINT16, 0x2000 / 2);
- m_pf2_data = auto_alloc_array_clear(machine(), UINT16, 0x2000 / 2);
- m_pf12_control = auto_alloc_array_clear(machine(), UINT16, 0x10 / 2);
+ m_pf1_data = make_unique_clear<UINT16[]>(0x2000 / 2);
+ m_pf2_data = make_unique_clear<UINT16[]>(0x2000 / 2);
+ m_pf12_control = make_unique_clear<UINT16[]>(0x10 / 2);
save_item(NAME(m_use_custom_pf1));
@@ -275,9 +275,9 @@ void deco16ic_device::device_start()
save_item(NAME(m_pf1_8bpp_mode));
- save_pointer(NAME(m_pf1_data), 0x2000 / 2);
- save_pointer(NAME(m_pf2_data), 0x2000 / 2);
- save_pointer(NAME(m_pf12_control), 0x10 / 2);
+ save_pointer(NAME(m_pf1_data.get()), 0x2000 / 2);
+ save_pointer(NAME(m_pf2_data.get()), 0x2000 / 2);
+ save_pointer(NAME(m_pf12_control.get()), 0x10 / 2);
}
//-------------------------------------------------
diff --git a/src/mame/video/deco16ic.h b/src/mame/video/deco16ic.h
index 9ae1d5bfd0d..5e45336c093 100644
--- a/src/mame/video/deco16ic.h
+++ b/src/mame/video/deco16ic.h
@@ -124,8 +124,9 @@ protected:
private:
// internal state
- UINT16 *m_pf1_data, *m_pf2_data;
- UINT16 *m_pf12_control;
+ std::unique_ptr<UINT16[]> m_pf1_data;
+ std::unique_ptr<UINT16[]> m_pf2_data;
+ std::unique_ptr<UINT16[]> m_pf12_control;
const UINT16 *m_pf1_rowscroll_ptr, *m_pf2_rowscroll_ptr;
diff --git a/src/mame/video/decocomn.cpp b/src/mame/video/decocomn.cpp
index f0a5aa76c3f..f8bbb7f32bc 100644
--- a/src/mame/video/decocomn.cpp
+++ b/src/mame/video/decocomn.cpp
@@ -53,10 +53,10 @@ void decocomn_device::device_start()
// width = m_screen->width();
// height = m_screen->height();
- m_dirty_palette = auto_alloc_array_clear(machine(), UINT8, 4096);
+ m_dirty_palette = make_unique_clear<UINT8[]>(4096);
save_item(NAME(m_priority));
- save_pointer(NAME(m_dirty_palette), 4096);
+ save_pointer(NAME(m_dirty_palette.get()), 4096);
}
//-------------------------------------------------
diff --git a/src/mame/video/decocomn.h b/src/mame/video/decocomn.h
index 07be0f30281..b2c758c9d60 100644
--- a/src/mame/video/decocomn.h
+++ b/src/mame/video/decocomn.h
@@ -41,7 +41,7 @@ protected:
private:
// internal state
- UINT8 *m_dirty_palette;
+ std::unique_ptr<UINT8[]> m_dirty_palette;
UINT16 m_priority;
required_device<palette_device> m_palette;
required_shared_ptr<UINT16> m_generic_paletteram_16;
diff --git a/src/mame/video/dooyong.cpp b/src/mame/video/dooyong.cpp
index 048df826087..e0886cc9471 100644
--- a/src/mame/video/dooyong.cpp
+++ b/src/mame/video/dooyong.cpp
@@ -558,8 +558,8 @@ VIDEO_START_MEMBER(dooyong_z80_ym2203_state, pollux)
m_fg_gfx = 3;
m_tx_tilemap_mode = 0;
- m_paletteram_flytiger = auto_alloc_array_clear(machine(), UINT8, 0x1000);
- save_pointer(NAME(m_paletteram_flytiger), 0x1000);
+ m_paletteram_flytiger = make_unique_clear<UINT8[]>(0x1000);
+ save_pointer(NAME(m_paletteram_flytiger.get()), 0x1000);
/* Create tilemaps */
m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS,
@@ -631,8 +631,8 @@ VIDEO_START_MEMBER(dooyong_z80_state, flytiger)
m_fg_gfx = 3;
m_tx_tilemap_mode = 0;
- m_paletteram_flytiger = auto_alloc_array_clear(machine(), UINT8, 0x1000);
- save_pointer(NAME(m_paletteram_flytiger), 0x1000);
+ m_paletteram_flytiger = make_unique_clear<UINT8[]>(0x1000);
+ save_pointer(NAME(m_paletteram_flytiger.get()), 0x1000);
/* Create tilemaps */
m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS,
diff --git a/src/mame/video/excellent_spr.cpp b/src/mame/video/excellent_spr.cpp
index 2b178641abd..f58f80f69d6 100644
--- a/src/mame/video/excellent_spr.cpp
+++ b/src/mame/video/excellent_spr.cpp
@@ -30,8 +30,8 @@ excellent_spr_device::excellent_spr_device(const machine_config &mconfig, const
void excellent_spr_device::device_start()
{
- m_ram = auto_alloc_array_clear(this->machine(), UINT8, 0x1000);
- save_pointer(NAME(m_ram), 0x1000);
+ m_ram = make_unique_clear<UINT8[]>(0x1000);
+ save_pointer(NAME(m_ram.get()), 0x1000);
}
@@ -154,7 +154,7 @@ void excellent_spr_device::aquarium_draw_sprites( bitmap_ind16 &bitmap, const re
void excellent_spr_device::gcpinbal_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, gfxdecode_device *gfxdecode, int y_offs, int priority )
{
- UINT8 *spriteram = m_ram;
+ UINT8 *spriteram = m_ram.get();
int offs, chain_pos;
int x, y, curx, cury;
// int priority = 0;
diff --git a/src/mame/video/excellent_spr.h b/src/mame/video/excellent_spr.h
index da4368ea0d4..ac79e260883 100644
--- a/src/mame/video/excellent_spr.h
+++ b/src/mame/video/excellent_spr.h
@@ -16,7 +16,7 @@ public:
void gcpinbal_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, gfxdecode_device *gfxdecode, int y_offs, int priority);
protected:
- UINT8* m_ram;
+ std::unique_ptr<UINT8[]> m_ram;
virtual void device_start() override;
virtual void device_reset() override;
diff --git a/src/mame/video/fuukifg.cpp b/src/mame/video/fuukifg.cpp
index 07257c8931d..bf891fc8201 100644
--- a/src/mame/video/fuukifg.cpp
+++ b/src/mame/video/fuukifg.cpp
@@ -23,18 +23,18 @@ void fuukivid_device::static_set_gfxdecode_tag(device_t &device, const char *tag
void fuukivid_device::device_start()
{
- m_sprram = auto_alloc_array_clear(machine(), UINT16, 0x2000 / 2);
+ m_sprram = make_unique_clear<UINT16[]>(0x2000 / 2);
// fuukifg3 clearly has buffered ram, it is unclear if fuukifg2 has
// it is likely these render to a framebuffer as the tile bank (which is probably external hw) also needs to be banked
// suggesting that the sprites are rendered earlier, then displayed from a buffer
- m_sprram_old = auto_alloc_array_clear(machine(), UINT16, 0x2000 / 2);
- m_sprram_old2 = auto_alloc_array_clear(machine(), UINT16, 0x2000 / 2);
+ m_sprram_old = make_unique_clear<UINT16[]>(0x2000 / 2);
+ m_sprram_old2 = make_unique_clear<UINT16[]>(0x2000 / 2);
- save_pointer(NAME(m_sprram), 0x2000 / 2);
- save_pointer(NAME(m_sprram_old), 0x2000 / 2);
- save_pointer(NAME(m_sprram_old2), 0x2000 / 2);
+ save_pointer(NAME(m_sprram.get()), 0x2000 / 2);
+ save_pointer(NAME(m_sprram_old.get()), 0x2000 / 2);
+ save_pointer(NAME(m_sprram_old2.get()), 0x2000 / 2);
}
@@ -88,9 +88,9 @@ void fuukivid_device::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap,
bitmap_ind8 &priority_bitmap = screen.priority();
const rectangle &visarea = screen.visible_area();
- UINT16 *spriteram16 = m_sprram;
+ UINT16 *spriteram16 = m_sprram.get();
- if (tilebank) spriteram16 = m_sprram_old2; // so that FG3 uses the buffered RAM
+ if (tilebank) spriteram16 = m_sprram_old2.get(); // so that FG3 uses the buffered RAM
int max_x = visarea.max_x + 1;
int max_y = visarea.max_y + 1;
@@ -180,6 +180,6 @@ void fuukivid_device::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap,
void fuukivid_device::buffer_sprites(void)
{
- memcpy(m_sprram_old2, m_sprram_old, 0x2000);
- memcpy(m_sprram_old, m_sprram, 0x2000);
+ memcpy(m_sprram_old2.get(), m_sprram_old.get(), 0x2000);
+ memcpy(m_sprram_old.get(), m_sprram.get(), 0x2000);
}
diff --git a/src/mame/video/fuukifg.h b/src/mame/video/fuukifg.h
index 28bfb4a0c79..41668672abf 100644
--- a/src/mame/video/fuukifg.h
+++ b/src/mame/video/fuukifg.h
@@ -13,9 +13,9 @@ public:
static void static_set_gfxdecode_tag(device_t &device, const char *tag);
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flip_screen, UINT32* tilebank);
- UINT16* m_sprram;
- UINT16* m_sprram_old;
- UINT16* m_sprram_old2;
+ std::unique_ptr<UINT16[]> m_sprram;
+ std::unique_ptr<UINT16[]> m_sprram_old;
+ std::unique_ptr<UINT16[]> m_sprram_old2;
DECLARE_WRITE16_MEMBER(fuuki_sprram_w)
diff --git a/src/mame/video/gb_lcd.cpp b/src/mame/video/gb_lcd.cpp
index 9e0db236901..c7560b485bf 100644
--- a/src/mame/video/gb_lcd.cpp
+++ b/src/mame/video/gb_lcd.cpp
@@ -218,13 +218,13 @@ void gb_lcd_device::common_start()
{
m_screen->register_screen_bitmap(m_bitmap);
save_item(NAME(m_bitmap));
- m_oam = auto_alloc_array_clear(machine(), UINT8, 0x100);
+ m_oam = make_unique_clear<UINT8[]>(0x100);
machine().save().register_postload(save_prepost_delegate(FUNC(gb_lcd_device::videoptr_restore), this));
m_maincpu = machine().device<cpu_device>("maincpu");
- save_pointer(NAME(m_oam), 0x100);
+ save_pointer(NAME(m_oam.get()), 0x100);
save_item(NAME(m_window_lines_drawn));
save_item(NAME(m_vid_regs));
save_item(NAME(m_bg_zbuf));
@@ -286,18 +286,18 @@ void gb_lcd_device::common_start()
void gb_lcd_device::videoptr_restore()
{
- m_layer[0].bg_map = m_vram + m_gb_bgdtab_offs;
- m_layer[0].bg_tiles = m_vram + m_gb_chrgen_offs;
- m_layer[1].bg_map = m_vram + m_gb_wndtab_offs;
- m_layer[1].bg_tiles = m_vram + m_gb_chrgen_offs;
+ m_layer[0].bg_map = m_vram.get() + m_gb_bgdtab_offs;
+ m_layer[0].bg_tiles = m_vram.get() + m_gb_chrgen_offs;
+ m_layer[1].bg_map = m_vram.get() + m_gb_wndtab_offs;
+ m_layer[1].bg_tiles = m_vram.get() + m_gb_chrgen_offs;
}
void cgb_lcd_device::videoptr_restore()
{
- m_layer[0].bg_map = m_vram + m_gb_bgdtab_offs;
- m_layer[0].gbc_map = m_vram + m_gbc_bgdtab_offs;
- m_layer[1].bg_map = m_vram + m_gb_wndtab_offs;
- m_layer[1].gbc_map = m_vram + m_gbc_wndtab_offs;
+ m_layer[0].bg_map = m_vram.get() + m_gb_bgdtab_offs;
+ m_layer[0].gbc_map = m_vram.get() + m_gbc_bgdtab_offs;
+ m_layer[1].bg_map = m_vram.get() + m_gb_wndtab_offs;
+ m_layer[1].gbc_map = m_vram.get() + m_gbc_wndtab_offs;
}
@@ -306,10 +306,10 @@ void gb_lcd_device::device_start()
common_start();
m_lcd_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(gb_lcd_device::lcd_timer_proc),this));
- m_vram = auto_alloc_array_clear(machine(), UINT8, 0x2000);
- save_pointer(NAME(m_vram), 0x2000);
+ m_vram = make_unique_clear<UINT8[]>(0x2000);
+ save_pointer(NAME(m_vram.get()), 0x2000);
- memcpy(m_oam, dmg_oam_fingerprint, 0x100);
+ memcpy(m_oam.get(), dmg_oam_fingerprint, 0x100);
}
void mgb_lcd_device::device_start()
@@ -317,10 +317,10 @@ void mgb_lcd_device::device_start()
common_start();
m_lcd_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mgb_lcd_device::lcd_timer_proc),this));
- m_vram = auto_alloc_array_clear(machine(), UINT8, 0x2000);
- save_pointer(NAME(m_vram), 0x2000);
+ m_vram = make_unique_clear<UINT8[]>(0x2000);
+ save_pointer(NAME(m_vram.get()), 0x2000);
- memcpy(m_oam, mgb_oam_fingerprint, 0x100);
+ memcpy(m_oam.get(), mgb_oam_fingerprint, 0x100);
}
void sgb_lcd_device::device_start()
@@ -328,11 +328,11 @@ void sgb_lcd_device::device_start()
common_start();
m_lcd_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sgb_lcd_device::lcd_timer_proc),this));
- m_vram = auto_alloc_array_clear(machine(), UINT8, 0x2000);
- save_pointer(NAME(m_vram), 0x2000);
+ m_vram = make_unique_clear<UINT8[]>(0x2000);
+ save_pointer(NAME(m_vram.get()), 0x2000);
- m_sgb_tile_data = auto_alloc_array_clear(machine(), UINT8, 0x2000);
- save_pointer(NAME(m_sgb_tile_data), 0x2000);
+ m_sgb_tile_data = make_unique_clear<UINT8[]>(0x2000);
+ save_pointer(NAME(m_sgb_tile_data.get()), 0x2000);
memset(m_sgb_tile_map, 0, sizeof(m_sgb_tile_map));
@@ -359,10 +359,10 @@ void cgb_lcd_device::device_start()
common_start();
m_lcd_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cgb_lcd_device::lcd_timer_proc),this));
- m_vram = auto_alloc_array_clear(machine(), UINT8, 0x4000);
- save_pointer(NAME(m_vram), 0x4000);
+ m_vram = make_unique_clear<UINT8[]>(0x4000);
+ save_pointer(NAME(m_vram.get()), 0x4000);
- memcpy(m_oam, cgb_oam_fingerprint, 0x100);
+ memcpy(m_oam.get(), cgb_oam_fingerprint, 0x100);
/* Background is initialised as white */
for (int i = 0; i < 32; i++)
@@ -447,7 +447,7 @@ void sgb_lcd_device::device_reset()
{
common_reset();
- memset(m_sgb_tile_data, 0, 0x2000);
+ memset(m_sgb_tile_data.get(), 0, 0x2000);
m_sgb_window_mask = 0;
@@ -484,7 +484,7 @@ inline void gb_lcd_device::plot_pixel(bitmap_ind16 &bitmap, int x, int y, UINT32
void gb_lcd_device::select_sprites()
{
int /*yindex,*/ line, height;
- UINT8 *oam = m_oam + 39 * 4;
+ UINT8 *oam = m_oam.get() + 39 * 4;
m_sprCount = 0;
@@ -537,8 +537,8 @@ void gb_lcd_device::update_sprites()
yindex = m_current_line;
line = m_current_line + 16;
- oam = m_oam + 39 * 4;
- vram = m_vram;
+ oam = m_oam.get() + 39 * 4;
+ vram = m_vram.get();
for (int i = 39; i >= 0; i--)
{
/* if sprite is on current line && x-coordinate && x-coordinate is < 168 */
@@ -630,8 +630,8 @@ void gb_lcd_device::update_scanline()
if (m_layer[0].enabled)
{
m_layer[0].bgline = (SCROLLY + m_current_line) & 0xFF;
- m_layer[0].bg_map = m_vram + m_gb_bgdtab_offs;
- m_layer[0].bg_tiles = m_vram + m_gb_chrgen_offs;
+ m_layer[0].bg_map = m_vram.get() + m_gb_bgdtab_offs;
+ m_layer[0].bg_tiles = m_vram.get() + m_gb_chrgen_offs;
m_layer[0].xindex = SCROLLX >> 3;
m_layer[0].xshift = SCROLLX & 7;
m_layer[0].xstart = 0;
@@ -645,8 +645,8 @@ void gb_lcd_device::update_scanline()
xpos = 0;
m_layer[1].bgline = m_window_lines_drawn;
- m_layer[1].bg_map = m_vram + m_gb_wndtab_offs;
- m_layer[1].bg_tiles = m_vram + m_gb_chrgen_offs;
+ m_layer[1].bg_map = m_vram.get() + m_gb_wndtab_offs;
+ m_layer[1].bg_tiles = m_vram.get() + m_gb_chrgen_offs;
m_layer[1].xindex = 0;
m_layer[1].xshift = 0;
m_layer[1].xstart = xpos;
@@ -771,8 +771,8 @@ void sgb_lcd_device::update_sprites()
yindex = m_current_line + SGB_YOFFSET;
line = m_current_line + 16;
- oam = m_oam + 39 * 4;
- vram = m_vram;
+ oam = m_oam.get() + 39 * 4;
+ vram = m_vram.get();
for (int i = 39; i >= 0; i--)
{
/* if sprite is on current line && x-coordinate && x-coordinate is < 168 */
@@ -860,9 +860,9 @@ void sgb_lcd_device::refresh_border()
for (UINT16 xidx = 0; xidx < 64; xidx += 2)
{
if (map[xidx + 1] & 0x80) /* Vertical flip */
- tiles = m_sgb_tile_data + ((7 - (yidx % 8)) << 1);
+ tiles = m_sgb_tile_data.get() + ((7 - (yidx % 8)) << 1);
else /* No vertical flip */
- tiles = m_sgb_tile_data + ((yidx % 8) << 1);
+ tiles = m_sgb_tile_data.get() + ((yidx % 8) << 1);
tiles2 = tiles + 16;
UINT8 pal = (map[xidx + 1] & 0x1C) >> 2;
@@ -941,8 +941,8 @@ void sgb_lcd_device::update_scanline()
if (m_layer[0].enabled)
{
m_layer[0].bgline = (SCROLLY + m_current_line) & 0xFF;
- m_layer[0].bg_map = m_vram + m_gb_bgdtab_offs;
- m_layer[0].bg_tiles = m_vram + m_gb_chrgen_offs;
+ m_layer[0].bg_map = m_vram.get() + m_gb_bgdtab_offs;
+ m_layer[0].bg_tiles = m_vram.get() + m_gb_chrgen_offs;
m_layer[0].xindex = SCROLLX >> 3;
m_layer[0].xshift = SCROLLX & 7;
m_layer[0].xstart = 0;
@@ -959,8 +959,8 @@ void sgb_lcd_device::update_scanline()
xpos = 0;
m_layer[1].bgline = m_window_lines_drawn;
- m_layer[1].bg_map = m_vram + m_gb_wndtab_offs;
- m_layer[1].bg_tiles = m_vram + m_gb_chrgen_offs;
+ m_layer[1].bg_map = m_vram.get() + m_gb_wndtab_offs;
+ m_layer[1].bg_tiles = m_vram.get() + m_gb_chrgen_offs;
m_layer[1].xindex = 0;
m_layer[1].xshift = 0;
m_layer[1].xstart = xpos;
@@ -1117,7 +1117,7 @@ void cgb_lcd_device::update_sprites()
yindex = m_current_line;
line = m_current_line + 16;
- oam = m_oam + 39 * 4;
+ oam = m_oam.get() + 39 * 4;
for (int i = 39; i >= 0; i--)
{
/* if sprite is on current line && x-coordinate && x-coordinate is < 168 */
@@ -1236,8 +1236,8 @@ void cgb_lcd_device::update_scanline()
if (m_layer[0].enabled)
{
m_layer[0].bgline = (SCROLLY + m_current_line) & 0xFF;
- m_layer[0].bg_map = m_vram + m_gb_bgdtab_offs;
- m_layer[0].gbc_map = m_vram + m_gbc_bgdtab_offs;
+ m_layer[0].bg_map = m_vram.get() + m_gb_bgdtab_offs;
+ m_layer[0].gbc_map = m_vram.get() + m_gbc_bgdtab_offs;
m_layer[0].xindex = SCROLLX >> 3;
m_layer[0].xshift = SCROLLX & 7;
m_layer[0].xstart = 0;
@@ -1254,8 +1254,8 @@ void cgb_lcd_device::update_scanline()
xpos = 0;
m_layer[1].bgline = m_window_lines_drawn;
- m_layer[1].bg_map = m_vram + m_gb_wndtab_offs;
- m_layer[1].gbc_map = m_vram + m_gbc_wndtab_offs;
+ m_layer[1].bg_map = m_vram.get() + m_gb_wndtab_offs;
+ m_layer[1].gbc_map = m_vram.get() + m_gbc_wndtab_offs;
m_layer[1].xindex = 0;
m_layer[1].xshift = 0;
m_layer[1].xstart = xpos;
@@ -1287,7 +1287,7 @@ void cgb_lcd_device::update_scanline()
}
map = m_layer[l].bg_map + ((m_layer[l].bgline << 2) & 0x3E0);
gbcmap = m_layer[l].gbc_map + ((m_layer[l].bgline << 2) & 0x3E0);
- tiles = (gbcmap[m_layer[l].xindex] & 0x08) ? (m_vram + m_gbc_chrgen_offs) : (m_vram + m_gb_chrgen_offs);
+ tiles = (gbcmap[m_layer[l].xindex] & 0x08) ? (m_vram.get() + m_gbc_chrgen_offs) : (m_vram.get() + m_gb_chrgen_offs);
/* Check for vertical flip */
if (gbcmap[m_layer[l].xindex] & 0x40)
@@ -1352,7 +1352,7 @@ void cgb_lcd_device::update_scanline()
m_layer[l].xindex = (m_layer[l].xindex + 1) & 31;
m_layer[l].xshift = 0;
- tiles = (gbcmap[m_layer[l].xindex] & 0x08) ? (m_vram + m_gbc_chrgen_offs) : (m_vram + m_gb_chrgen_offs);
+ tiles = (gbcmap[m_layer[l].xindex] & 0x08) ? (m_vram.get() + m_gbc_chrgen_offs) : (m_vram.get() + m_gb_chrgen_offs);
/* Check for vertical flip */
if (gbcmap[m_layer[l].xindex] & 0x40)
@@ -2181,7 +2181,7 @@ WRITE8_MEMBER(gb_lcd_device::video_w)
break;
case 0x06: /* DMA - DMA Transfer and Start Address */
{
- UINT8 *P = m_oam;
+ UINT8 *P = m_oam.get();
offset = (UINT16) data << 8;
for (data = 0; data < 0xA0; data++)
*P++ = space.read_byte(offset++);
@@ -2782,16 +2782,16 @@ void sgb_lcd_device::sgb_io_write_pal(int offs, UINT8 *data)
break;
case 0x13: /* CHR_TRN */
if (data[1] & 0x1)
- memcpy(m_sgb_tile_data + 4096, m_vram + 0x0800, 4096);
+ memcpy(m_sgb_tile_data.get() + 4096, m_vram.get() + 0x0800, 4096);
else
- memcpy(m_sgb_tile_data, m_vram + 0x0800, 4096);
+ memcpy(m_sgb_tile_data.get(), m_vram.get() + 0x0800, 4096);
break;
case 0x14: /* PCT_TRN */
{
UINT16 col;
if (m_sgb_border_hack)
{
- memcpy(m_sgb_tile_map, m_vram + 0x1000, 2048);
+ memcpy(m_sgb_tile_map, m_vram.get() + 0x1000, 2048);
for (int i = 0; i < 64; i++)
{
col = (m_vram[0x0800 + (i * 2) + 1 ] << 8) | m_vram[0x0800 + (i * 2)];
@@ -2800,7 +2800,7 @@ void sgb_lcd_device::sgb_io_write_pal(int offs, UINT8 *data)
}
else /* Do things normally */
{
- memcpy(m_sgb_tile_map, m_vram + 0x0800, 2048);
+ memcpy(m_sgb_tile_map, m_vram.get() + 0x0800, 2048);
for (int i = 0; i < 64; i++)
{
col = (m_vram[0x1000 + (i * 2) + 1] << 8) | m_vram[0x1000 + (i * 2)];
@@ -2810,7 +2810,7 @@ void sgb_lcd_device::sgb_io_write_pal(int offs, UINT8 *data)
}
break;
case 0x15: /* ATTR_TRN */
- memcpy(m_sgb_atf_data, m_vram + 0x0800, 4050);
+ memcpy(m_sgb_atf_data, m_vram.get() + 0x0800, 4050);
break;
case 0x16: /* ATTR_SET */
{
diff --git a/src/mame/video/gb_lcd.h b/src/mame/video/gb_lcd.h
index b68648046b4..e35e55130ef 100644
--- a/src/mame/video/gb_lcd.h
+++ b/src/mame/video/gb_lcd.h
@@ -73,7 +73,7 @@ protected:
UINT16 m_sgb_pal_data[4096];
UINT8 m_sgb_pal_map[20][18];
UINT16 m_sgb_pal[128];
- UINT8 *m_sgb_tile_data;
+ std::unique_ptr<UINT8[]> m_sgb_tile_data;
UINT8 m_sgb_tile_map[2048];
UINT8 m_sgb_window_mask;
@@ -119,8 +119,8 @@ protected:
emu_timer *m_lcd_timer;
int m_gbc_mode;
- UINT8 *m_vram; // Pointer to VRAM
- UINT8 *m_oam; // Pointer to OAM memory
+ std::unique_ptr<UINT8[]> m_vram; // Pointer to VRAM
+ std::unique_ptr<UINT8[]> m_oam; // Pointer to OAM memory
UINT8 m_gb_tile_no_mod;
UINT32 m_gb_chrgen_offs; // GB Character generator
UINT32 m_gb_bgdtab_offs; // GB Background character table
diff --git a/src/mame/video/gp9001.cpp b/src/mame/video/gp9001.cpp
index 9a8c379bf7f..31d939db1dd 100644
--- a/src/mame/video/gp9001.cpp
+++ b/src/mame/video/gp9001.cpp
@@ -308,11 +308,11 @@ void gp9001vdp_device::create_tilemaps()
void gp9001vdp_device::device_start()
{
- sp.vram16_buffer = auto_alloc_array_clear(machine(), UINT16, GP9001_SPRITERAM_SIZE/2);
+ sp.vram16_buffer = make_unique_clear<UINT16[]>(GP9001_SPRITERAM_SIZE/2);
create_tilemaps();
- save_pointer(NAME(sp.vram16_buffer), GP9001_SPRITERAM_SIZE/2);
+ save_pointer(NAME(sp.vram16_buffer.get()), GP9001_SPRITERAM_SIZE/2);
save_item(NAME(gp9001_scroll_reg));
save_item(NAME(gp9001_voffs));
@@ -680,7 +680,7 @@ void gp9001vdp_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clip
UINT16 *source;
- if (sp.use_sprite_buffer) source = sp.vram16_buffer;
+ if (sp.use_sprite_buffer) source = sp.vram16_buffer.get();
else source = m_spriteram;
int total_elements = m_gfx[1]->elements();
int total_colors = m_gfx[1]->colors();
@@ -936,5 +936,5 @@ void gp9001vdp_device::gp9001_render_vdp(bitmap_ind16 &bitmap, const rectangle &
void gp9001vdp_device::gp9001_screen_eof(void)
{
/** Shift sprite RAM buffers *** Used to fix sprite lag **/
- if (sp.use_sprite_buffer) memcpy(sp.vram16_buffer,m_spriteram,GP9001_SPRITERAM_SIZE);
+ if (sp.use_sprite_buffer) memcpy(sp.vram16_buffer.get(),m_spriteram,GP9001_SPRITERAM_SIZE);
}
diff --git a/src/mame/video/gp9001.h b/src/mame/video/gp9001.h
index 45bdd5faeb4..f7dcebe491c 100644
--- a/src/mame/video/gp9001.h
+++ b/src/mame/video/gp9001.h
@@ -26,7 +26,7 @@ struct gp9001tilemaplayer : gp9001layer
struct gp9001spritelayer : gp9001layer
{
bool use_sprite_buffer;
- UINT16 *vram16_buffer; // vram buffer for this layer
+ std::unique_ptr<UINT16[]> vram16_buffer; // vram buffer for this layer
};
diff --git a/src/mame/video/gridlee.cpp b/src/mame/video/gridlee.cpp
index 96b7fd0733f..60010d897d3 100644
--- a/src/mame/video/gridlee.cpp
+++ b/src/mame/video/gridlee.cpp
@@ -63,12 +63,12 @@ void gridlee_state::expand_pixels()
void gridlee_state::video_start()
{
/* allocate a local copy of video RAM */
- m_local_videoram = auto_alloc_array_clear(machine(), UINT8, 256 * 256);
+ m_local_videoram = make_unique_clear<UINT8[]>(256 * 256);
/* reset the palette */
m_palettebank_vis = 0;
- save_pointer(NAME(m_local_videoram), 256 * 256);
+ save_pointer(NAME(m_local_videoram.get()), 256 * 256);
save_item(NAME(m_cocktail_flip));
save_item(NAME(m_palettebank_vis));
machine().save().register_postload(save_prepost_delegate(FUNC(gridlee_state::expand_pixels), this));
diff --git a/src/mame/video/inufuku.cpp b/src/mame/video/inufuku.cpp
index d9f896c9e95..35ce40a1df2 100644
--- a/src/mame/video/inufuku.cpp
+++ b/src/mame/video/inufuku.cpp
@@ -123,7 +123,7 @@ void inufuku_state::video_start()
m_bg_tilemap->set_transparent_pen(255);
m_tx_tilemap->set_transparent_pen(255);
- m_spriteram1_old = auto_alloc_array_clear(machine(), UINT16, m_spriteram1.bytes()/2);
+ m_spriteram1_old = make_unique_clear<UINT16[]>(m_spriteram1.bytes()/2);
}
@@ -159,7 +159,7 @@ UINT32 inufuku_state::screen_update_inufuku(screen_device &screen, bitmap_ind16
m_tx_tilemap->set_scrolly(0, m_tx_scrolly);
m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 4);
- m_spr->draw_sprites( m_spriteram1_old, m_spriteram1.bytes(), screen, bitmap, cliprect );
+ m_spr->draw_sprites( m_spriteram1_old.get(), m_spriteram1.bytes(), screen, bitmap, cliprect );
return 0;
}
@@ -168,6 +168,6 @@ void inufuku_state::screen_eof_inufuku(screen_device &screen, bool state)
// rising edge
if (state)
{
- memcpy(m_spriteram1_old,m_spriteram1,m_spriteram1.bytes());
+ memcpy(m_spriteram1_old.get(),m_spriteram1,m_spriteram1.bytes());
}
}
diff --git a/src/mame/video/jalblend.cpp b/src/mame/video/jalblend.cpp
index 1220d2a3d09..93359334934 100644
--- a/src/mame/video/jalblend.cpp
+++ b/src/mame/video/jalblend.cpp
@@ -36,9 +36,9 @@ jaleco_blend_device::jaleco_blend_device(const machine_config &mconfig, const ch
void jaleco_blend_device::device_start()
{
- m_table = auto_alloc_array_clear(machine(), UINT8, 0xc00);
+ m_table = make_unique_clear<UINT8[]>(0xc00);
- save_pointer(NAME(m_table), 0xc00);
+ save_pointer(NAME(m_table.get()), 0xc00);
}
//-------------------------------------------------
@@ -47,7 +47,7 @@ void jaleco_blend_device::device_start()
void jaleco_blend_device::device_reset()
{
- memset(m_table, 0, 0xc00);
+ memset(m_table.get(), 0, 0xc00);
}
void jaleco_blend_device::set(int color, UINT8 val)
diff --git a/src/mame/video/jalblend.h b/src/mame/video/jalblend.h
index 109e4c66e44..721bf320676 100644
--- a/src/mame/video/jalblend.h
+++ b/src/mame/video/jalblend.h
@@ -22,7 +22,7 @@ protected:
private:
/* each palette entry contains a fourth 'alpha' value */
- UINT8 *m_table;
+ std::unique_ptr<UINT8[]> m_table;
template<class _BitmapClass>
void drawgfx_common(palette_device &palette,_BitmapClass &dest_bmp,const rectangle &clip,gfx_element *gfx,
diff --git a/src/mame/video/k001006.cpp b/src/mame/video/k001006.cpp
index a0524973494..1c60d4b56b0 100644
--- a/src/mame/video/k001006.cpp
+++ b/src/mame/video/k001006.cpp
@@ -20,7 +20,7 @@ k001006_device::k001006_device(const machine_config &mconfig, const char *tag, d
m_unknown_ram(nullptr),
m_addr(0),
m_device_sel(0),
- m_palette(nullptr),
+ m_palette(nullptr), m_gfx_region(nullptr), m_gfxrom(nullptr),
m_tex_layout(0)
{
}
@@ -41,18 +41,18 @@ void k001006_device::device_config_complete()
void k001006_device::device_start()
{
- m_pal_ram = auto_alloc_array_clear(machine(), UINT16, 0x800);
- m_unknown_ram = auto_alloc_array_clear(machine(), UINT16, 0x1000);
- m_palette = auto_alloc_array_clear(machine(), UINT32, 0x800);
+ m_pal_ram = make_unique_clear<UINT16[]>(0x800);
+ m_unknown_ram = make_unique_clear<UINT16[]>(0x1000);
+ m_palette = make_unique_clear<UINT32[]>(0x800);
m_gfxrom = machine().root_device().memregion(m_gfx_region)->base();
m_texrom = std::make_unique<UINT8[]>(0x800000);
preprocess_texture_data(m_texrom.get(), m_gfxrom, 0x800000, m_tex_layout);
- save_pointer(NAME(m_pal_ram), 0x800*sizeof(UINT16));
- save_pointer(NAME(m_unknown_ram), 0x1000*sizeof(UINT16));
- save_pointer(NAME(m_palette), 0x800*sizeof(UINT32));
+ save_pointer(NAME(m_pal_ram.get()), 0x800*sizeof(UINT16));
+ save_pointer(NAME(m_unknown_ram.get()), 0x1000*sizeof(UINT16));
+ save_pointer(NAME(m_palette.get()), 0x800*sizeof(UINT32));
save_item(NAME(m_device_sel));
save_item(NAME(m_addr));
}
@@ -65,7 +65,7 @@ void k001006_device::device_reset()
{
m_addr = 0;
m_device_sel = 0;
- memset(m_palette, 0, 0x800*sizeof(UINT32));
+ memset(m_palette.get(), 0, 0x800*sizeof(UINT32));
}
/*****************************************************************************
diff --git a/src/mame/video/k001006.h b/src/mame/video/k001006.h
index 2a2beb48895..6b3b23e41c2 100644
--- a/src/mame/video/k001006.h
+++ b/src/mame/video/k001006.h
@@ -30,14 +30,14 @@ protected:
private:
// internal state
- UINT16 * m_pal_ram;
- UINT16 * m_unknown_ram;
+ std::unique_ptr<UINT16[]> m_pal_ram;
+ std::unique_ptr<UINT16[]> m_unknown_ram;
UINT32 m_addr;
int m_device_sel;
std::unique_ptr<UINT8[]> m_texrom;
- UINT32 * m_palette;
+ std::unique_ptr<UINT32[]> m_palette;
const char * m_gfx_region;
UINT8 * m_gfxrom;
diff --git a/src/mame/video/k001604.cpp b/src/mame/video/k001604.cpp
index 474dddce394..449545f4466 100644
--- a/src/mame/video/k001604.cpp
+++ b/src/mame/video/k001604.cpp
@@ -24,7 +24,8 @@ k001604_device::k001604_device(const machine_config &mconfig, const char *tag, d
m_layer_size(0),
m_roz_size(0),
m_txt_mem_offset(0),
- m_roz_mem_offset(0),
+ m_roz_mem_offset(0),
+ m_layer_roz(nullptr),
m_tile_ram(nullptr),
m_char_ram(nullptr),
m_reg(nullptr),
@@ -81,9 +82,9 @@ void k001604_device::device_start()
m_gfx_index[0] = m_gfx_index_1;
m_gfx_index[1] = m_gfx_index_2;
- m_char_ram = auto_alloc_array_clear(machine(), UINT32, 0x200000 / 4);
- m_tile_ram = auto_alloc_array_clear(machine(), UINT32, 0x20000 / 4);
- m_reg = auto_alloc_array_clear(machine(), UINT32, 0x400 / 4);
+ m_char_ram = make_unique_clear<UINT32[]>(0x200000 / 4);
+ m_tile_ram = make_unique_clear<UINT32[]>(0x20000 / 4);
+ m_reg = make_unique_clear<UINT32[]>(0x400 / 4);
/* create tilemaps */
roz_tile_size = m_roz_size ? 16 : 8;
@@ -109,9 +110,9 @@ void k001604_device::device_start()
m_gfxdecode->set_gfx(m_gfx_index[0], global_alloc(gfx_element(m_palette, k001604_char_layout_layer_8x8, (UINT8*)&m_char_ram[0], 0, m_palette->entries() / 16, 0)));
m_gfxdecode->set_gfx(m_gfx_index[1], global_alloc(gfx_element(m_palette, k001604_char_layout_layer_16x16, (UINT8*)&m_char_ram[0], 0, m_palette->entries() / 16, 0)));
- save_pointer(NAME(m_reg), 0x400 / 4);
- save_pointer(NAME(m_char_ram), 0x200000 / 4);
- save_pointer(NAME(m_tile_ram), 0x20000 / 4);
+ save_pointer(NAME(m_reg.get()), 0x400 / 4);
+ save_pointer(NAME(m_char_ram.get()), 0x200000 / 4);
+ save_pointer(NAME(m_tile_ram.get()), 0x20000 / 4);
}
@@ -121,9 +122,9 @@ void k001604_device::device_start()
void k001604_device::device_reset()
{
- memset(m_char_ram, 0, 0x200000);
- memset(m_tile_ram, 0, 0x10000);
- memset(m_reg, 0, 0x400);
+ memset(m_char_ram.get(), 0, 0x200000);
+ memset(m_tile_ram.get(), 0, 0x10000);
+ memset(m_reg.get(), 0, 0x400);
}
/*****************************************************************************
@@ -337,7 +338,7 @@ READ32_MEMBER( k001604_device::reg_r )
WRITE32_MEMBER( k001604_device::tile_w )
{
int x/*, y*/;
- COMBINE_DATA(m_tile_ram + offset);
+ COMBINE_DATA(m_tile_ram.get() + offset);
if (m_layer_size)
{
@@ -394,7 +395,7 @@ WRITE32_MEMBER( k001604_device::char_w )
addr = offset + ((set + (bank * 0x40000)) / 4);
- COMBINE_DATA(m_char_ram + addr);
+ COMBINE_DATA(m_char_ram.get() + addr);
m_gfxdecode->gfx(m_gfx_index[0])->mark_dirty(addr / 32);
m_gfxdecode->gfx(m_gfx_index[1])->mark_dirty(addr / 128);
@@ -402,7 +403,7 @@ WRITE32_MEMBER( k001604_device::char_w )
WRITE32_MEMBER( k001604_device::reg_w )
{
- COMBINE_DATA(m_reg + offset);
+ COMBINE_DATA(m_reg.get() + offset);
switch (offset)
{
diff --git a/src/mame/video/k001604.h b/src/mame/video/k001604.h
index e33227328d1..d0719936029 100644
--- a/src/mame/video/k001604.h
+++ b/src/mame/video/k001604.h
@@ -47,9 +47,9 @@ private:
tilemap_t *m_layer_roz;
int m_gfx_index[2];
- UINT32 * m_tile_ram;
- UINT32 * m_char_ram;
- UINT32 * m_reg;
+ std::unique_ptr<UINT32[]> m_tile_ram;
+ std::unique_ptr<UINT32[]> m_char_ram;
+ std::unique_ptr<UINT32[]> m_reg;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
diff --git a/src/mame/video/k007342.cpp b/src/mame/video/k007342.cpp
index 0cc57b6c826..e44dd84e068 100644
--- a/src/mame/video/k007342.cpp
+++ b/src/mame/video/k007342.cpp
@@ -81,8 +81,8 @@ void k007342_device::device_start()
m_tilemap[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(k007342_device::get_tile_info0),this), tilemap_mapper_delegate(FUNC(k007342_device::scan),this), 8, 8, 64, 32);
m_tilemap[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(k007342_device::get_tile_info1),this), tilemap_mapper_delegate(FUNC(k007342_device::scan),this), 8, 8, 64, 32);
- m_ram = auto_alloc_array_clear(machine(), UINT8, 0x2000);
- m_scroll_ram = auto_alloc_array_clear(machine(), UINT8, 0x0200);
+ m_ram = make_unique_clear<UINT8[]>(0x2000);
+ m_scroll_ram = make_unique_clear<UINT8[]>(0x0200);
m_colorram_0 = &m_ram[0x0000];
m_colorram_1 = &m_ram[0x1000];
@@ -92,8 +92,8 @@ void k007342_device::device_start()
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
- save_pointer(NAME(m_ram), 0x2000);
- save_pointer(NAME(m_scroll_ram), 0x0200);
+ save_pointer(NAME(m_ram.get()), 0x2000);
+ save_pointer(NAME(m_scroll_ram.get()), 0x0200);
save_item(NAME(m_int_enabled));
save_item(NAME(m_flipscreen));
save_item(NAME(m_scrollx));
diff --git a/src/mame/video/k007342.h b/src/mame/video/k007342.h
index 5700c0aca76..edc307868fa 100644
--- a/src/mame/video/k007342.h
+++ b/src/mame/video/k007342.h
@@ -33,8 +33,8 @@ protected:
virtual void device_reset() override;
private:
// internal state
- UINT8 *m_ram;
- UINT8 *m_scroll_ram;
+ std::unique_ptr<UINT8[]> m_ram;
+ std::unique_ptr<UINT8[]> m_scroll_ram;
UINT8 *m_videoram_0;
UINT8 *m_videoram_1;
UINT8 *m_colorram_0;
diff --git a/src/mame/video/k007420.cpp b/src/mame/video/k007420.cpp
index d9806491022..9b539f23669 100644
--- a/src/mame/video/k007420.cpp
+++ b/src/mame/video/k007420.cpp
@@ -37,9 +37,9 @@ void k007420_device::device_start()
// bind the init function
m_callback.bind_relative_to(*owner());
- m_ram = auto_alloc_array_clear(machine(), UINT8, 0x200);
+ m_ram = make_unique_clear<UINT8[]>(0x200);
- save_pointer(NAME(m_ram), 0x200);
+ save_pointer(NAME(m_ram.get()), 0x200);
save_item(NAME(m_flipscreen)); // current one uses 7342 one
save_item(NAME(m_regs)); // current one uses 7342 ones
}
diff --git a/src/mame/video/k007420.h b/src/mame/video/k007420.h
index cc94cda3be1..471efe297b6 100644
--- a/src/mame/video/k007420.h
+++ b/src/mame/video/k007420.h
@@ -26,7 +26,7 @@ protected:
virtual void device_reset() override;
private:
// internal state
- UINT8 *m_ram;
+ std::unique_ptr<UINT8[]> m_ram;
int m_flipscreen; // current code uses the 7342 flipscreen!!
UINT8 m_regs[8]; // current code uses the 7342 regs!! (only [2])
diff --git a/src/mame/video/k037122.cpp b/src/mame/video/k037122.cpp
index c5e42a8c4fc..a1ca84148ba 100644
--- a/src/mame/video/k037122.cpp
+++ b/src/mame/video/k037122.cpp
@@ -67,9 +67,9 @@ void k037122_device::device_start()
if(!m_gfxdecode->started())
throw device_missing_dependencies();
- m_char_ram = auto_alloc_array_clear(machine(), UINT32, 0x200000 / 4);
- m_tile_ram = auto_alloc_array_clear(machine(), UINT32, 0x20000 / 4);
- m_reg = auto_alloc_array_clear(machine(), UINT32, 0x400 / 4);
+ m_char_ram = make_unique_clear<UINT32[]>(0x200000 / 4);
+ m_tile_ram = make_unique_clear<UINT32[]>(0x20000 / 4);
+ m_reg = make_unique_clear<UINT32[]>(0x400 / 4);
m_layer[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(k037122_device::tile_info_layer0),this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
m_layer[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(k037122_device::tile_info_layer1),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
@@ -77,11 +77,11 @@ void k037122_device::device_start()
m_layer[0]->set_transparent_pen(0);
m_layer[1]->set_transparent_pen(0);
- m_gfxdecode->set_gfx(m_gfx_index,global_alloc(gfx_element(m_palette, k037122_char_layout, (UINT8*)m_char_ram, 0, m_palette->entries() / 16, 0)));
+ m_gfxdecode->set_gfx(m_gfx_index,global_alloc(gfx_element(m_palette, k037122_char_layout, (UINT8*)m_char_ram.get(), 0, m_palette->entries() / 16, 0)));
- save_pointer(NAME(m_reg), 0x400 / 4);
- save_pointer(NAME(m_char_ram), 0x200000 / 4);
- save_pointer(NAME(m_tile_ram), 0x20000 / 4);
+ save_pointer(NAME(m_reg.get()), 0x400 / 4);
+ save_pointer(NAME(m_char_ram.get()), 0x200000 / 4);
+ save_pointer(NAME(m_tile_ram.get()), 0x20000 / 4);
}
@@ -91,9 +91,9 @@ void k037122_device::device_start()
void k037122_device::device_reset()
{
- memset(m_char_ram, 0, 0x200000);
- memset(m_tile_ram, 0, 0x20000);
- memset(m_reg, 0, 0x400);
+ memset(m_char_ram.get(), 0, 0x200000);
+ memset(m_tile_ram.get(), 0, 0x20000);
+ memset(m_reg.get(), 0, 0x400);
}
/*****************************************************************************
@@ -163,7 +163,7 @@ READ32_MEMBER( k037122_device::sram_r )
WRITE32_MEMBER( k037122_device::sram_w )
{
- COMBINE_DATA(m_tile_ram + offset);
+ COMBINE_DATA(m_tile_ram.get() + offset);
if (m_reg[0xc] & 0x10000)
{
@@ -210,7 +210,7 @@ WRITE32_MEMBER( k037122_device::char_w )
int bank = m_reg[0x30 / 4] & 0x7;
UINT32 addr = offset + (bank * (0x40000/4));
- COMBINE_DATA(m_char_ram + addr);
+ COMBINE_DATA(m_char_ram.get() + addr);
m_gfxdecode->gfx(m_gfx_index)->mark_dirty(addr / 32);
}
@@ -228,5 +228,5 @@ READ32_MEMBER( k037122_device::reg_r )
WRITE32_MEMBER( k037122_device::reg_w )
{
- COMBINE_DATA(m_reg + offset);
+ COMBINE_DATA(m_reg.get() + offset);
}
diff --git a/src/mame/video/k037122.h b/src/mame/video/k037122.h
index 086d9eb445f..181f28e355d 100644
--- a/src/mame/video/k037122.h
+++ b/src/mame/video/k037122.h
@@ -33,9 +33,9 @@ private:
// internal state
tilemap_t *m_layer[2];
- UINT32 * m_tile_ram;
- UINT32 * m_char_ram;
- UINT32 * m_reg;
+ std::unique_ptr<UINT32[]> m_tile_ram;
+ std::unique_ptr<UINT32[]> m_char_ram;
+ std::unique_ptr<UINT32[]> m_reg;
int m_gfx_index;
required_device<gfxdecode_device> m_gfxdecode;
diff --git a/src/mame/video/k051960.cpp b/src/mame/video/k051960.cpp
index 45f634e95ca..81eb58f45af 100644
--- a/src/mame/video/k051960.cpp
+++ b/src/mame/video/k051960.cpp
@@ -201,7 +201,7 @@ void k051960_device::device_start()
if (VERBOSE && !(m_palette->shadows_enabled()))
popmessage("driver should use VIDEO_HAS_SHADOWS");
- m_ram = auto_alloc_array_clear(machine(), UINT8, 0x400);
+ m_ram = make_unique_clear<UINT8[]>(0x400);
// bind callbacks
m_k051960_cb.bind_relative_to(*owner());
@@ -217,7 +217,7 @@ void k051960_device::device_start()
save_item(NAME(m_readroms));
save_item(NAME(m_nmi_enabled));
save_item(NAME(m_spriterombank));
- save_pointer(NAME(m_ram), 0x400);
+ save_pointer(NAME(m_ram.get()), 0x400);
}
//-------------------------------------------------
diff --git a/src/mame/video/k051960.h b/src/mame/video/k051960.h
index c05afc3cadc..069f0f48440 100644
--- a/src/mame/video/k051960.h
+++ b/src/mame/video/k051960.h
@@ -87,7 +87,7 @@ protected:
private:
// internal state
- UINT8 *m_ram;
+ std::unique_ptr<UINT8[]> m_ram;
UINT8 *m_sprite_rom;
UINT32 m_sprite_size;
diff --git a/src/mame/video/k052109.cpp b/src/mame/video/k052109.cpp
index 07e4e1ef80c..f0e3c640051 100644
--- a/src/mame/video/k052109.cpp
+++ b/src/mame/video/k052109.cpp
@@ -225,7 +225,7 @@ void k052109_device::device_start()
decode_gfx();
m_gfx[0]->set_colors(m_palette->entries() / m_gfx[0]->depth());
- m_ram = auto_alloc_array_clear(machine(), UINT8, 0x6000);
+ m_ram = make_unique_clear<UINT8[]>(0x6000);
m_colorram_F = &m_ram[0x0000];
m_colorram_A = &m_ram[0x0800];
@@ -253,7 +253,7 @@ void k052109_device::device_start()
m_firq_handler.resolve_safe();
m_nmi_handler.resolve_safe();
- save_pointer(NAME(m_ram), 0x6000);
+ save_pointer(NAME(m_ram.get()), 0x6000);
save_item(NAME(m_rmrd_line));
save_item(NAME(m_romsubbank));
save_item(NAME(m_scrollctrl));
diff --git a/src/mame/video/k052109.h b/src/mame/video/k052109.h
index a8f893ee443..96f25882fa4 100644
--- a/src/mame/video/k052109.h
+++ b/src/mame/video/k052109.h
@@ -76,7 +76,7 @@ protected:
private:
// internal state
- UINT8 *m_ram;
+ std::unique_ptr<UINT8[]> m_ram;
UINT8 *m_videoram_F;
UINT8 *m_videoram_A;
UINT8 *m_videoram_B;
diff --git a/src/mame/video/k053244_k053245.cpp b/src/mame/video/k053244_k053245.cpp
index 8596af1ce54..66846c73aa6 100644
--- a/src/mame/video/k053244_k053245.cpp
+++ b/src/mame/video/k053244_k053245.cpp
@@ -131,14 +131,14 @@ void k05324x_device::device_start()
m_ramsize = 0x800;
m_z_rejection = -1;
- m_ram = auto_alloc_array_clear(machine(), UINT16, m_ramsize / 2);
- m_buffer = auto_alloc_array_clear(machine(), UINT16, m_ramsize / 2);
+ m_ram = make_unique_clear<UINT16[]>(m_ramsize / 2);
+ m_buffer = make_unique_clear<UINT16[]>(m_ramsize / 2);
// bind callbacks
m_k05324x_cb.bind_relative_to(*owner());
- save_pointer(NAME(m_ram), m_ramsize / 2);
- save_pointer(NAME(m_buffer), m_ramsize / 2);
+ save_pointer(NAME(m_ram.get()), m_ramsize / 2);
+ save_pointer(NAME(m_buffer.get()), m_ramsize / 2);
save_item(NAME(m_rombank));
save_item(NAME(m_z_rejection));
save_item(NAME(m_regs));
@@ -167,7 +167,7 @@ READ16_MEMBER( k05324x_device::k053245_word_r )
WRITE16_MEMBER( k05324x_device::k053245_word_w )
{
- COMBINE_DATA(m_ram + offset);
+ COMBINE_DATA(m_ram.get() + offset);
}
READ8_MEMBER( k05324x_device::k053245_r )
@@ -197,7 +197,7 @@ void k05324x_device::clear_buffer()
void k05324x_device::update_buffer()
{
- memcpy(m_buffer, m_ram, m_ramsize);
+ memcpy(m_buffer.get(), m_ram.get(), m_ramsize);
}
READ8_MEMBER( k05324x_device::k053244_r )
diff --git a/src/mame/video/k053244_k053245.h b/src/mame/video/k053244_k053245.h
index 9b9c47055fa..924edc2a37f 100644
--- a/src/mame/video/k053244_k053245.h
+++ b/src/mame/video/k053244_k053245.h
@@ -64,8 +64,8 @@ protected:
private:
// internal state
- UINT16 *m_ram;
- UINT16 *m_buffer;
+ std::unique_ptr<UINT16[]> m_ram;
+ std::unique_ptr<UINT16[]> m_buffer;
UINT8 *m_sprite_rom;
UINT32 m_sprite_size;
diff --git a/src/mame/video/k053936.cpp b/src/mame/video/k053936.cpp
index 6a659216ee9..aa1fcdd9929 100644
--- a/src/mame/video/k053936.cpp
+++ b/src/mame/video/k053936.cpp
@@ -245,11 +245,11 @@ k053936_device::k053936_device(const machine_config &mconfig, const char *tag, d
void k053936_device::device_start()
{
- m_ctrl = auto_alloc_array_clear(machine(), UINT16, 0x20);
- m_linectrl = auto_alloc_array_clear(machine(), UINT16, 0x4000);
+ m_ctrl = make_unique_clear<UINT16[]>(0x20);
+ m_linectrl = make_unique_clear<UINT16[]>(0x4000);
- save_pointer(NAME(m_ctrl), 0x20);
- save_pointer(NAME(m_linectrl), 0x4000);
+ save_pointer(NAME(m_ctrl.get()), 0x20);
+ save_pointer(NAME(m_linectrl.get()), 0x4000);
}
//-------------------------------------------------
@@ -258,7 +258,7 @@ void k053936_device::device_start()
void k053936_device::device_reset()
{
- memset(m_ctrl, 0, 0x20);
+ memset(m_ctrl.get(), 0, 0x20);
}
@@ -335,7 +335,7 @@ void k053936_device::zoom_draw( screen_device &screen, bitmap_ind16 &bitmap, con
while (y <= maxy)
{
- UINT16 *lineaddr = m_linectrl + 4 * ((y - m_yoff) & 0x1ff);
+ UINT16 *lineaddr = m_linectrl.get() + 4 * ((y - m_yoff) & 0x1ff);
my_clip.min_y = my_clip.max_y = y;
diff --git a/src/mame/video/k053936.h b/src/mame/video/k053936.h
index 6b266d97a3c..311b2e198d9 100644
--- a/src/mame/video/k053936.h
+++ b/src/mame/video/k053936.h
@@ -46,8 +46,8 @@ protected:
private:
// internal state
- UINT16 *m_ctrl;
- UINT16 *m_linectrl;
+ std::unique_ptr<UINT16[]> m_ctrl;
+ std::unique_ptr<UINT16[]> m_linectrl;
int m_wrap, m_xoff, m_yoff;
};
diff --git a/src/mame/video/k1ge.cpp b/src/mame/video/k1ge.cpp
index 4906fff945c..a32e760b385 100644
--- a/src/mame/video/k1ge.cpp
+++ b/src/mame/video/k1ge.cpp
@@ -802,10 +802,10 @@ void k1ge_device::device_start()
m_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(k1ge_device::timer_callback), this));
m_hblank_on_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(k1ge_device::hblank_on_timer_callback), this));
- m_vram = auto_alloc_array_clear(machine(), UINT8, 0x4000);
+ m_vram = make_unique_clear<UINT8[]>(0x4000);
m_bitmap = std::make_unique<bitmap_ind16>(m_screen->width(), m_screen->height() );
- save_pointer(NAME(m_vram), 0x4000);
+ save_pointer(NAME(m_vram.get()), 0x4000);
save_item(NAME(m_wba_h));
save_item(NAME(m_wba_v));
save_item(NAME(m_wsi_h));
diff --git a/src/mame/video/k1ge.h b/src/mame/video/k1ge.h
index 93f4a0aa630..81f79d9eb3c 100644
--- a/src/mame/video/k1ge.h
+++ b/src/mame/video/k1ge.h
@@ -50,7 +50,7 @@ protected:
devcb_write_line m_vblank_pin_w;
devcb_write_line m_hblank_pin_w;
- UINT8 *m_vram;
+ std::unique_ptr<UINT8[]> m_vram;
UINT8 m_wba_h, m_wba_v, m_wsi_h, m_wsi_v;
emu_timer *m_timer;
diff --git a/src/mame/video/kaneko_grap2.cpp b/src/mame/video/kaneko_grap2.cpp
index 11bbf227408..7a5bd2de907 100644
--- a/src/mame/video/kaneko_grap2.cpp
+++ b/src/mame/video/kaneko_grap2.cpp
@@ -43,15 +43,15 @@ void kaneko_grap2_device::static_set_palette_tag(device_t &device, const char *t
void kaneko_grap2_device::device_start()
{
- m_framebuffer = (UINT16*)auto_alloc_array_clear(this->machine(), UINT16, 0x80000/2);
- m_framebuffer_palette = (UINT16*)auto_alloc_array_clear(this->machine(), UINT16, 0x200/2);
- m_framebuffer_unk1 = (UINT16*)auto_alloc_array_clear(this->machine(), UINT16, 0x400/2);
- m_framebuffer_unk2 = (UINT16*)auto_alloc_array_clear(this->machine(), UINT16, 0x400/2);
+ m_framebuffer = make_unique_clear<UINT16[]>(0x80000/2);
+ m_framebuffer_palette = make_unique_clear<UINT16[]>(0x200/2);
+ m_framebuffer_unk1 = make_unique_clear<UINT16[]>(0x400/2);
+ m_framebuffer_unk2 = make_unique_clear<UINT16[]>(0x400/2);
- save_pointer(NAME(m_framebuffer), 0x80000/2);
- save_pointer(NAME(m_framebuffer_palette), 0x200/2);
- save_pointer(NAME(m_framebuffer_unk1), 0x400/2);
- save_pointer(NAME(m_framebuffer_unk2), 0x400/2);
+ save_pointer(NAME(m_framebuffer.get()), 0x80000/2);
+ save_pointer(NAME(m_framebuffer_palette.get()), 0x200/2);
+ save_pointer(NAME(m_framebuffer_unk1.get()), 0x400/2);
+ save_pointer(NAME(m_framebuffer_unk2.get()), 0x400/2);
save_item(NAME(m_framebuffer_bgcol));
save_item(NAME(m_framebuffer_scrolly));
@@ -160,7 +160,7 @@ WRITE16_MEMBER(kaneko_grap2_device::galpani3_regs1_go_w)
UINT8* rledata = memregion(":gfx2")->base();
// printf("galpani3_regs1_go_w? %08x\n",address );
- if ((data==0x2000) || (data==0x3000)) gp3_do_rle(address, m_framebuffer, rledata);
+ if ((data==0x2000) || (data==0x3000)) gp3_do_rle(address, m_framebuffer.get(), rledata);
}
diff --git a/src/mame/video/kaneko_grap2.h b/src/mame/video/kaneko_grap2.h
index cc94af5b97b..cd801ad3b45 100644
--- a/src/mame/video/kaneko_grap2.h
+++ b/src/mame/video/kaneko_grap2.h
@@ -74,10 +74,10 @@ public:
DECLARE_READ16_MEMBER( unk2_r ) { return m_framebuffer_unk2[offset]; }
DECLARE_WRITE16_MEMBER( unk2_w ) { COMBINE_DATA(&m_framebuffer_unk2[offset]); }
- UINT16* m_framebuffer;
- UINT16* m_framebuffer_palette;
- UINT16* m_framebuffer_unk1;
- UINT16* m_framebuffer_unk2;
+ std::unique_ptr<UINT16[]> m_framebuffer;
+ std::unique_ptr<UINT16[]> m_framebuffer_palette;
+ std::unique_ptr<UINT16[]> m_framebuffer_unk1;
+ std::unique_ptr<UINT16[]> m_framebuffer_unk2;
diff --git a/src/mame/video/kaneko_spr.cpp b/src/mame/video/kaneko_spr.cpp
index 403af035443..d37d11bb672 100644
--- a/src/mame/video/kaneko_spr.cpp
+++ b/src/mame/video/kaneko_spr.cpp
@@ -71,12 +71,12 @@ void kaneko16_sprite_device::static_set_gfxdecode_tag(device_t &device, const ch
void kaneko16_sprite_device::device_start()
{
m_first_sprite = auto_alloc_array(machine(), struct kan_tempsprite, 0x400);
- m_sprites_regs = auto_alloc_array_clear(machine(), UINT16, 0x20/2);
+ m_sprites_regs = make_unique_clear<UINT16[]>(0x20/2);
m_screen->register_screen_bitmap(m_sprites_bitmap);
save_item(NAME(m_sprite_flipx));
save_item(NAME(m_sprite_flipy));
- save_pointer(NAME(m_sprites_regs), 0x20/2);
+ save_pointer(NAME(m_sprites_regs.get()), 0x20/2);
save_item(NAME(m_keep_sprites));
save_item(NAME(m_sprites_bitmap));
}
diff --git a/src/mame/video/kaneko_spr.h b/src/mame/video/kaneko_spr.h
index 1afd5fd2ce4..1448a753265 100644
--- a/src/mame/video/kaneko_spr.h
+++ b/src/mame/video/kaneko_spr.h
@@ -79,7 +79,7 @@ private:
// registers
UINT16 m_sprite_flipx;
UINT16 m_sprite_flipy;
- UINT16* m_sprites_regs;
+ std::unique_ptr<UINT16[]> m_sprites_regs;
struct kan_tempsprite *m_first_sprite;
int m_keep_sprites;
diff --git a/src/mame/video/kaneko_tmap.cpp b/src/mame/video/kaneko_tmap.cpp
index d74b87f52d5..634753975c0 100644
--- a/src/mame/video/kaneko_tmap.cpp
+++ b/src/mame/video/kaneko_tmap.cpp
@@ -151,11 +151,11 @@ void kaneko_view2_tilemap_device::device_start()
if(!m_gfxdecode->started())
throw device_missing_dependencies();
- m_vram[0] = (UINT16*)auto_alloc_array_clear(this->machine(), UINT16, 0x1000/2);
- m_vram[1] = (UINT16*)auto_alloc_array_clear(this->machine(), UINT16, 0x1000/2);
- m_vscroll[0] = (UINT16*)auto_alloc_array_clear(this->machine(), UINT16, 0x1000/2);
- m_vscroll[1] = (UINT16*)auto_alloc_array_clear(this->machine(), UINT16, 0x1000/2);
- m_regs = (UINT16*)auto_alloc_array_clear(this->machine(), UINT16, 0x20/2);
+ m_vram[0] = make_unique_clear<UINT16[]>(0x1000/2);
+ m_vram[1] = make_unique_clear<UINT16[]>(0x1000/2);
+ m_vscroll[0] = make_unique_clear<UINT16[]>(0x1000/2);
+ m_vscroll[1] = make_unique_clear<UINT16[]>(0x1000/2);
+ m_regs = make_unique_clear<UINT16[]>(0x20/2);
m_tmap[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(kaneko_view2_tilemap_device::get_tile_info_0),this), TILEMAP_SCAN_ROWS,
16,16, 0x20,0x20 );
@@ -175,11 +175,11 @@ void kaneko_view2_tilemap_device::device_start()
m_tmap[0]->set_scrolldy(-m_dy, m_ydim + m_dy -1 );
m_tmap[1]->set_scrolldy(-m_dy, m_ydim + m_dy -1 );
- save_pointer(NAME(m_vram[0]), 0x1000/2);
- save_pointer(NAME(m_vram[1]), 0x1000/2);
- save_pointer(NAME(m_vscroll[0]), 0x1000/2);
- save_pointer(NAME(m_vscroll[1]), 0x1000/2);
- save_pointer(NAME(m_regs), 0x20/2);
+ save_pointer(NAME(m_vram[0].get()), 0x1000/2);
+ save_pointer(NAME(m_vram[1].get()), 0x1000/2);
+ save_pointer(NAME(m_vscroll[0].get()), 0x1000/2);
+ save_pointer(NAME(m_vscroll[1].get()), 0x1000/2);
+ save_pointer(NAME(m_regs.get()), 0x20/2);
save_item(NAME(m_vram_tile_addition[0]));
save_item(NAME(m_vram_tile_addition[1]));
}
diff --git a/src/mame/video/kaneko_tmap.h b/src/mame/video/kaneko_tmap.h
index e689df23d1d..75a05e3039d 100644
--- a/src/mame/video/kaneko_tmap.h
+++ b/src/mame/video/kaneko_tmap.h
@@ -18,9 +18,9 @@ public:
int m_dx, m_dy, m_xdim, m_ydim;
int m_invert_flip;
- UINT16* m_vram[2];
- UINT16* m_vscroll[2];
- UINT16* m_regs;
+ std::unique_ptr<UINT16[]> m_vram[2];
+ std::unique_ptr<UINT16[]> m_vscroll[2];
+ std::unique_ptr<UINT16[]> m_regs;
tilemap_t* m_tmap[2];
UINT16 m_vram_tile_addition[2]; // galsnew
diff --git a/src/mame/video/legionna.cpp b/src/mame/video/legionna.cpp
index f9840cc3a98..8eb1a21daca 100644
--- a/src/mame/video/legionna.cpp
+++ b/src/mame/video/legionna.cpp
@@ -196,10 +196,10 @@ TILE_GET_INFO_MEMBER(legionna_state::get_text_tile_info)
VIDEO_START_MEMBER(legionna_state,legionna)
{
- m_back_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2);
- m_fore_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2);
- m_mid_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2);
- m_textram = auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
+ m_back_data = make_unique_clear<UINT16[]>(0x800/2);
+ m_fore_data = make_unique_clear<UINT16[]>(0x800/2);
+ m_mid_data = make_unique_clear<UINT16[]>(0x800/2);
+ m_textram = make_unique_clear<UINT16[]>(0x1000/2);
m_background_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
m_foreground_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
@@ -221,10 +221,10 @@ VIDEO_START_MEMBER(legionna_state,legionna)
VIDEO_START_MEMBER(legionna_state,denjinmk)
{
- m_back_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2);
- m_fore_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2);
- m_mid_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2);
- m_textram = auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
+ m_back_data = make_unique_clear<UINT16[]>(0x800/2);
+ m_fore_data = make_unique_clear<UINT16[]>(0x800/2);
+ m_mid_data = make_unique_clear<UINT16[]>(0x800/2);
+ m_textram = make_unique_clear<UINT16[]>(0x1000/2);
m_background_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
m_foreground_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info_denji),this),TILEMAP_SCAN_ROWS,16,16,32,32);
@@ -246,10 +246,10 @@ VIDEO_START_MEMBER(legionna_state,denjinmk)
VIDEO_START_MEMBER(legionna_state,cupsoc)
{
- m_back_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2);
- m_fore_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2);
- m_mid_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2);
- m_textram = auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
+ m_back_data = make_unique_clear<UINT16[]>(0x800/2);
+ m_fore_data = make_unique_clear<UINT16[]>(0x800/2);
+ m_mid_data = make_unique_clear<UINT16[]>(0x800/2);
+ m_textram = make_unique_clear<UINT16[]>(0x1000/2);
m_background_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
m_foreground_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
diff --git a/src/mame/video/leland.cpp b/src/mame/video/leland.cpp
index 3938b07e4c7..928a1e9ab78 100644
--- a/src/mame/video/leland.cpp
+++ b/src/mame/video/leland.cpp
@@ -58,7 +58,7 @@ TIMER_CALLBACK_MEMBER(leland_state::scanline_callback)
VIDEO_START_MEMBER(leland_state,leland)
{
/* allocate memory */
- m_video_ram = auto_alloc_array_clear(machine(), UINT8, VRAM_SIZE);
+ m_video_ram = make_unique_clear<UINT8[]>(VRAM_SIZE);
/* scanline timer */
m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(leland_state::scanline_callback),this));
@@ -68,10 +68,10 @@ VIDEO_START_MEMBER(leland_state,leland)
VIDEO_START_MEMBER(leland_state,ataxx)
{
/* first do the standard stuff */
- m_video_ram = auto_alloc_array_clear(machine(), UINT8, VRAM_SIZE);
+ m_video_ram = make_unique_clear<UINT8[]>(VRAM_SIZE);
/* allocate memory */
- m_ataxx_qram = auto_alloc_array_clear(machine(), UINT8, QRAM_SIZE);
+ m_ataxx_qram = make_unique_clear<UINT8[]>(QRAM_SIZE);
}
@@ -197,7 +197,7 @@ int leland_state::leland_vram_port_r(address_space &space, int offset, int num)
void leland_state::leland_vram_port_w(address_space &space, int offset, int data, int num)
{
- UINT8 *video_ram = m_video_ram;
+ UINT8 *video_ram = m_video_ram.get();
struct vram_state_data *state = m_vram_state + num;
int addr = state->m_addr;
int inc = (offset >> 2) & 2;
diff --git a/src/mame/video/m107.cpp b/src/mame/video/m107.cpp
index d08d17845b9..557884f85ed 100644
--- a/src/mame/video/m107.cpp
+++ b/src/mame/video/m107.cpp
@@ -142,12 +142,12 @@ void m107_state::video_start()
layer->tmap->set_transparent_pen(0);
}
- m_buffered_spriteram = auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
+ m_buffered_spriteram = make_unique_clear<UINT16[]>(0x1000/2);
save_item(NAME(m_sprite_display));
save_item(NAME(m_raster_irq_position));
save_item(NAME(m_control));
- save_pointer(NAME(m_buffered_spriteram), 0x1000/2);
+ save_pointer(NAME(m_buffered_spriteram.get()), 0x1000/2);
for (int i = 0; i < 4; i++)
{
@@ -159,7 +159,7 @@ void m107_state::video_start()
void m107_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- UINT16 *spriteram = m_buffered_spriteram;
+ UINT16 *spriteram = m_buffered_spriteram.get();
int offs;
UINT8 *rom = memregion("user1")->base();
@@ -381,7 +381,7 @@ WRITE16_MEMBER(m107_state::spritebuffer_w)
// logerror("%04x: buffered spriteram\n",space.device().safe_pc());
m_sprite_display = (!(data & 0x1000));
- memcpy(m_buffered_spriteram, m_spriteram, 0x1000);
+ memcpy(m_buffered_spriteram.get(), m_spriteram, 0x1000);
}
}
diff --git a/src/mame/video/macrossp.cpp b/src/mame/video/macrossp.cpp
index 98c452d05bc..9f744b42517 100644
--- a/src/mame/video/macrossp.cpp
+++ b/src/mame/video/macrossp.cpp
@@ -165,8 +165,8 @@ TILE_GET_INFO_MEMBER(macrossp_state::get_macrossp_text_tile_info)
void macrossp_state::video_start()
{
- m_spriteram_old = auto_alloc_array_clear(machine(), UINT32, m_spriteram.bytes() / 4);
- m_spriteram_old2 = auto_alloc_array_clear(machine(), UINT32, m_spriteram.bytes() / 4);
+ m_spriteram_old = make_unique_clear<UINT32[]>(m_spriteram.bytes() / 4);
+ m_spriteram_old2 = make_unique_clear<UINT32[]>(m_spriteram.bytes() / 4);
m_text_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_text_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_scra_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_scra_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
@@ -183,8 +183,8 @@ void macrossp_state::video_start()
m_gfxdecode->gfx(2)->set_granularity(64);
m_gfxdecode->gfx(3)->set_granularity(64);
- save_pointer(NAME(m_spriteram_old), m_spriteram.bytes() / 4);
- save_pointer(NAME(m_spriteram_old2), m_spriteram.bytes() / 4);
+ save_pointer(NAME(m_spriteram_old.get()), m_spriteram.bytes() / 4);
+ save_pointer(NAME(m_spriteram_old2.get()), m_spriteram.bytes() / 4);
}
@@ -193,8 +193,8 @@ void macrossp_state::draw_sprites(screen_device &screen, bitmap_rgb32 &bitmap, c
{
gfx_element *gfx = m_gfxdecode->gfx(0);
// UINT32 *source = m_spriteram;
- UINT32 *source = (m_spriteram_old2 + m_spriteram.bytes() / 4) - 3; /* buffers by two frames */
- UINT32 *finish = m_spriteram_old2;
+ UINT32 *source = (m_spriteram_old2.get() + m_spriteram.bytes() / 4) - 3; /* buffers by two frames */
+ UINT32 *finish = m_spriteram_old2.get();
/* reverse order */
while (source >= finish)
@@ -463,7 +463,7 @@ void macrossp_state::screen_eof_macrossp(screen_device &screen, bool state)
if (state)
{
/* looks like sprites are *two* frames ahead, like nmk16 */
- memcpy(m_spriteram_old2, m_spriteram_old, m_spriteram.bytes());
- memcpy(m_spriteram_old, m_spriteram, m_spriteram.bytes());
+ memcpy(m_spriteram_old2.get(), m_spriteram_old.get(), m_spriteram.bytes());
+ memcpy(m_spriteram_old.get(), m_spriteram, m_spriteram.bytes());
}
}
diff --git a/src/mame/video/mb60553.cpp b/src/mame/video/mb60553.cpp
index e3fd96d0d28..f13a8f3e26c 100644
--- a/src/mame/video/mb60553.cpp
+++ b/src/mame/video/mb60553.cpp
@@ -35,11 +35,11 @@ void mb60553_zooming_tilemap_device::device_start()
if(!m_gfxdecode->started())
throw device_missing_dependencies();
- m_lineram = (UINT16*)auto_alloc_array_clear(this->machine(), UINT16, 0x1000/2);
- m_vram = (UINT16*)auto_alloc_array_clear(this->machine(), UINT16, 0x4000/2);
+ m_lineram = make_unique_clear<UINT16[]>(0x1000/2);
+ m_vram = make_unique_clear<UINT16[]>(0x4000/2);
- save_pointer(NAME(m_lineram), 0x1000/2);
- save_pointer(NAME(m_vram), 0x4000/2);
+ save_pointer(NAME(m_lineram.get()), 0x1000/2);
+ save_pointer(NAME(m_vram.get()), 0x4000/2);
save_item(NAME(m_pal_base));
save_item(NAME(m_bank));
save_item(NAME(m_regs));
diff --git a/src/mame/video/mb60553.h b/src/mame/video/mb60553.h
index b207dce947c..1c9c84e725c 100644
--- a/src/mame/video/mb60553.h
+++ b/src/mame/video/mb60553.h
@@ -12,7 +12,7 @@ public:
static void set_gfx_region(device_t &device, int gfxregion);
tilemap_t* m_tmap;
- UINT16* m_vram;
+ std::unique_ptr<UINT16[]> m_vram;
UINT16 m_regs[8];
UINT8 m_bank[8];
UINT16 m_pal_base;
@@ -22,7 +22,7 @@ public:
void draw( screen_device &screen, bitmap_ind16& bitmap, const rectangle &cliprect, int priority);
tilemap_t* get_tilemap();
- UINT16* m_lineram;
+ std::unique_ptr<UINT16[]> m_lineram;
TILEMAP_MAPPER_MEMBER(twc94_scan);
diff --git a/src/mame/video/mcatadv.cpp b/src/mame/video/mcatadv.cpp
index a14b5ba9f41..fccfd6ba21a 100644
--- a/src/mame/video/mcatadv.cpp
+++ b/src/mame/video/mcatadv.cpp
@@ -52,9 +52,9 @@ WRITE16_MEMBER(mcatadv_state::mcatadv_videoram2_w)
void mcatadv_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
{
- UINT16 *source = (m_spriteram_old + (m_spriteram.bytes() / 2) /2);
+ UINT16 *source = (m_spriteram_old.get() + (m_spriteram.bytes() / 2) /2);
source -= 4;
- UINT16 *finish = m_spriteram_old;
+ UINT16 *finish = m_spriteram_old.get();
int global_x = m_vidregs[0] - 0x184;
int global_y = m_vidregs[1] - 0x1f1;
@@ -271,13 +271,13 @@ void mcatadv_state::video_start()
m_tilemap2 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(mcatadv_state::get_mcatadv_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tilemap2->set_transparent_pen(0);
- m_spriteram_old = auto_alloc_array_clear(machine(), UINT16, m_spriteram.bytes() / 2);
+ m_spriteram_old = make_unique_clear<UINT16[]>(m_spriteram.bytes() / 2);
m_vidregs_old = std::make_unique<UINT16[]>((0x0f + 1) / 2);
m_palette_bank1 = 0;
m_palette_bank2 = 0;
- save_pointer(NAME(m_spriteram_old), m_spriteram.bytes() / 2);
+ save_pointer(NAME(m_spriteram_old.get()), m_spriteram.bytes() / 2);
save_pointer(NAME(m_vidregs_old.get()), (0x0f + 1) / 2);
}
@@ -286,7 +286,7 @@ void mcatadv_state::screen_eof_mcatadv(screen_device &screen, bool state)
// rising edge
if (state)
{
- memcpy(m_spriteram_old, m_spriteram, m_spriteram.bytes());
+ memcpy(m_spriteram_old.get(), m_spriteram, m_spriteram.bytes());
memcpy(m_vidregs_old.get(), m_vidregs, 0xf);
}
}
diff --git a/src/mame/video/midyunit.cpp b/src/mame/video/midyunit.cpp
index 6bbfc2a5358..cca4343fde3 100644
--- a/src/mame/video/midyunit.cpp
+++ b/src/mame/video/midyunit.cpp
@@ -43,7 +43,7 @@ VIDEO_START_MEMBER(midyunit_state,common)
{
/* allocate memory */
m_cmos_ram = std::make_unique<UINT16[]>((0x2000 * 4)/2);
- m_local_videoram = auto_alloc_array_clear(machine(), UINT16, 0x80000/2);
+ m_local_videoram = make_unique_clear<UINT16[]>(0x80000/2);
m_pen_map = auto_alloc_array(machine(), pen_t, 65536);
machine().device<nvram_device>("nvram")->set_base(m_cmos_ram.get(), 0x2000 * 4);
@@ -59,7 +59,7 @@ VIDEO_START_MEMBER(midyunit_state,common)
/* register for state saving */
save_item(NAME(m_autoerase_enable));
- save_pointer(NAME(m_local_videoram), 0x80000/2);
+ save_pointer(NAME(m_local_videoram.get()), 0x80000/2);
save_pointer(NAME(m_cmos_ram.get()), (0x2000 * 4)/2);
save_item(NAME(m_videobank_select));
save_item(NAME(m_dma_register));
diff --git a/src/mame/video/model1.cpp b/src/mame/video/model1.cpp
index 65d0b2846cc..9dbd6babefe 100644
--- a/src/mame/video/model1.cpp
+++ b/src/mame/video/model1.cpp
@@ -742,7 +742,7 @@ void model1_state::push_object(UINT32 tex_adr, UINT32 poly_adr, UINT32 size)
float *poly_data;
if(poly_adr & 0x800000)
- poly_data=(float *) m_poly_ram;
+ poly_data=(float *) m_poly_ram.get();
else
poly_data=(float *) m_poly_rom;
@@ -1445,8 +1445,8 @@ VIDEO_START_MEMBER(model1_state,model1)
m_view = auto_alloc_clear(machine(), struct view);
m_poly_rom = (UINT32 *)memregion("user1")->base();
- m_poly_ram = auto_alloc_array_clear(machine(), UINT32, 0x400000);
- m_tgp_ram = auto_alloc_array_clear(machine(), UINT16, 0x100000-0x40000);
+ m_poly_ram = make_unique_clear<UINT32[]>(0x400000);
+ m_tgp_ram = make_unique_clear<UINT16[]>(0x100000-0x40000);
m_pointdb = auto_alloc_array_clear(machine(), struct m1_point, 1000000*2);
m_quaddb = auto_alloc_array_clear(machine(), struct quad_m1, 1000000);
m_quadind = auto_alloc_array_clear(machine(), struct quad_m1 *, 1000000);
@@ -1455,8 +1455,8 @@ VIDEO_START_MEMBER(model1_state,model1)
m_quadpt = m_quaddb;
m_listctl[0] = m_listctl[1] = 0;
- save_pointer(NAME(m_tgp_ram), 0x100000-0x40000);
- save_pointer(NAME(m_poly_ram), 0x40000);
+ save_pointer(NAME(m_tgp_ram.get()), 0x100000-0x40000);
+ save_pointer(NAME(m_poly_ram.get()), 0x40000);
save_item(NAME(m_listctl));
}
diff --git a/src/mame/video/model2.cpp b/src/mame/video/model2.cpp
index 8915d2ee5c1..248aec4b814 100644
--- a/src/mame/video/model2.cpp
+++ b/src/mame/video/model2.cpp
@@ -2601,7 +2601,7 @@ VIDEO_START_MEMBER(model2_state,model2)
geo_init( machine(), (UINT32*)memregion("user2")->base() );
/* init various video-related pointers */
- m_palram = auto_alloc_array_clear(machine(), UINT16, 0x2000);
+ m_palram = make_unique_clear<UINT16[]>(0x2000);
}
UINT32 model2_state::screen_update_model2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/model3.cpp b/src/mame/video/model3.cpp
index c73b05c0a72..a6d0948212b 100644
--- a/src/mame/video/model3.cpp
+++ b/src/mame/video/model3.cpp
@@ -179,21 +179,21 @@ void model3_state::video_start()
machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(model3_state::model3_exit), this));
- m_m3_char_ram = auto_alloc_array_clear(machine(), UINT64, 0x100000/8);
- m_m3_tile_ram = auto_alloc_array_clear(machine(), UINT64, 0x8000/8);
+ m_m3_char_ram = make_unique_clear<UINT64[]>(0x100000/8);
+ m_m3_tile_ram = make_unique_clear<UINT64[]>(0x8000/8);
- m_texture_fifo = auto_alloc_array_clear(machine(), UINT32, 0x100000/4);
+ m_texture_fifo = make_unique_clear<UINT32[]>(0x100000/4);
/* 2x 4MB texture sheets */
m_texture_ram[0] = std::make_unique<UINT16[]>(0x400000/2);
m_texture_ram[1] = std::make_unique<UINT16[]>(0x400000/2);
/* 1MB Display List RAM */
- m_display_list_ram = auto_alloc_array_clear(machine(), UINT32, 0x100000/4);
+ m_display_list_ram = make_unique_clear<UINT32[]>(0x100000/4);
/* 4MB for nodes (< Step 2.0 have only 2MB) */
- m_culling_ram = auto_alloc_array_clear(machine(), UINT32, 0x400000/4);
+ m_culling_ram = make_unique_clear<UINT32[]>(0x400000/4);
/* 4MB Polygon RAM */
- m_polygon_ram = auto_alloc_array_clear(machine(), UINT32, 0x400000/4);
+ m_polygon_ram = make_unique_clear<UINT32[]>(0x400000/4);
m_vid_reg0 = 0;
@@ -207,10 +207,10 @@ void model3_state::video_start()
m_layer8[3] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer3_8bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
// 4-bit tiles
- m_gfxdecode->set_gfx(0, global_alloc(gfx_element(m_palette, char4_layout, (UINT8*)m_m3_char_ram, 0, m_palette->entries() / 16, 0)));
+ m_gfxdecode->set_gfx(0, global_alloc(gfx_element(m_palette, char4_layout, (UINT8*)m_m3_char_ram.get(), 0, m_palette->entries() / 16, 0)));
// 8-bit tiles
- m_gfxdecode->set_gfx(1, global_alloc(gfx_element(m_palette, char8_layout, (UINT8*)m_m3_char_ram, 0, m_palette->entries() / 256, 0)));
+ m_gfxdecode->set_gfx(1, global_alloc(gfx_element(m_palette, char8_layout, (UINT8*)m_m3_char_ram.get(), 0, m_palette->entries() / 256, 0)));
init_matrix_stack();
}
diff --git a/src/mame/video/n64.cpp b/src/mame/video/n64.cpp
index c9ba7a71f03..224bcb4464e 100644
--- a/src/mame/video/n64.cpp
+++ b/src/mame/video/n64.cpp
@@ -101,7 +101,7 @@ void n64_state::video_start()
m_rdp->m_tex_pipe.set_machine(machine());
- m_rdp->m_aux_buf = auto_alloc_array_clear(machine(), UINT8, EXTENT_AUX_COUNT);
+ m_rdp->m_aux_buf = make_unique_clear<UINT8[]>(EXTENT_AUX_COUNT);
if (LOG_RDP_EXECUTION)
{
@@ -2110,7 +2110,7 @@ void n64_rdp::draw_triangle(bool shade, bool texture, bool zbuffer, bool rect)
new_object = false;
}
- spans[spanidx].userdata = (void*)((UINT8*)m_aux_buf + m_aux_buf_ptr);
+ spans[spanidx].userdata = (void*)((UINT8*)m_aux_buf.get() + m_aux_buf_ptr);
valid = true;
m_aux_buf_ptr += sizeof(rdp_span_aux);
diff --git a/src/mame/video/n64.h b/src/mame/video/n64.h
index bcaa05d7ad4..caab912b3db 100644
--- a/src/mame/video/n64.h
+++ b/src/mame/video/n64.h
@@ -307,7 +307,7 @@ public:
void draw_triangle(bool shade, bool texture, bool zbuffer, bool rect);
- void* m_aux_buf;
+ std::unique_ptr<UINT8[]> m_aux_buf;
UINT32 m_aux_buf_ptr;
UINT32 m_aux_buf_index;
diff --git a/src/mame/video/namcos22.cpp b/src/mame/video/namcos22.cpp
index 7a56a0b98a4..317b78cc12a 100644
--- a/src/mame/video/namcos22.cpp
+++ b/src/mame/video/namcos22.cpp
@@ -459,7 +459,7 @@ void namcos22_renderer::poly3d_drawquad(screen_device &screen, bitmap_rgb32 &bit
{
extra.zfog_enabled = 1;
extra.cz_sdelta = delta;
- extra.czram = m_state.m_recalc_czram[cztype];
+ extra.czram = m_state.m_recalc_czram[cztype].get();
}
}
}
@@ -2369,15 +2369,15 @@ void namcos22_state::init_tables()
// init spotram (super22 only)
if (m_is_ss22)
- m_spotram = auto_alloc_array_clear(machine(), UINT16, SPOTRAM_SIZE);
+ m_spotram = make_unique_clear<UINT16[]>(SPOTRAM_SIZE);
// init czram tables (super22 only)
if (m_is_ss22)
{
for (int table = 0; table < 4; table++)
{
- m_banked_czram[table] = auto_alloc_array_clear(machine(), UINT16, 0x100);
- m_recalc_czram[table] = auto_alloc_array_clear(machine(), UINT8, 0x2000);
+ m_banked_czram[table] = make_unique_clear<UINT16[]>(0x100);
+ m_recalc_czram[table] = make_unique_clear<UINT8[]>(0x2000);
m_cz_was_written[table] = 1;
}
}
@@ -2393,7 +2393,7 @@ void namcos22_state::init_tables()
m_pointrom[i] = signed24(pointrom_high[i] << 16 | pointrom_mid[i] << 8 | pointrom_low[i]);
}
- m_pointram = auto_alloc_array_clear(machine(), UINT32, 0x20000);
+ m_pointram = make_unique_clear<UINT32[]>(0x20000);
// force all texture tiles to be decoded now
for (int i = 0; i < m_gfxdecode->gfx(1)->elements(); i++)
diff --git a/src/mame/video/nbmj8688.cpp b/src/mame/video/nbmj8688.cpp
index 4a2be6cb067..d418c6d698c 100644
--- a/src/mame/video/nbmj8688.cpp
+++ b/src/mame/video/nbmj8688.cpp
@@ -551,13 +551,13 @@ void nbmj8688_state::common_video_start()
m_blitter_timer = timer_alloc(TIMER_BLITTER);
m_tmpbitmap = std::make_unique<bitmap_ind16>(512, 256);
- m_videoram = auto_alloc_array_clear(machine(), UINT16, 512 * 256);
+ m_videoram = make_unique_clear<UINT16[]>(512 * 256);
m_clut = std::make_unique<UINT8[]>(0x20);
m_scrolly = 0; // reset because crystalg/crystal2 don't write to this register
m_screen_refresh = 1;
- save_pointer(NAME(m_videoram), 512 * 256);
+ save_pointer(NAME(m_videoram.get()), 512 * 256);
save_pointer(NAME(m_clut.get()), 0x20);
save_item(NAME(m_scrolly));
save_item(NAME(m_blitter_destx));
diff --git a/src/mame/video/nbmj9195.cpp b/src/mame/video/nbmj9195.cpp
index d22c52744c9..fc165da4898 100644
--- a/src/mame/video/nbmj9195.cpp
+++ b/src/mame/video/nbmj9195.cpp
@@ -376,7 +376,7 @@ VIDEO_START_MEMBER(nbmj9195_state,_1layer)
m_blitter_timer = timer_alloc(TIMER_BLITTER);
m_screen->register_screen_bitmap(m_tmpbitmap[0]);
- m_videoram[0] = auto_alloc_array_clear(machine(), UINT16, width * height);
+ m_videoram[0] = make_unique_clear<UINT16[]>(width * height);
m_clut[0] = std::make_unique<UINT8[]>(0x1000);
m_scanline[0] = m_scanline[1] = SCANLINE_MIN;
m_nb19010_busyflag = 1;
@@ -401,7 +401,7 @@ VIDEO_START_MEMBER(nbmj9195_state,_1layer)
save_item(NAME(m_gfxdraw_mode));
save_item(NAME(m_nb19010_busyctr));
save_item(NAME(m_nb19010_busyflag));
- save_pointer(NAME(m_videoram[0]), width * height);
+ save_pointer(NAME(m_videoram[0].get()), width * height);
save_pointer(NAME(m_clut[0].get()), 0x1000);
save_item(NAME(m_flipscreen_old));
machine().save().register_postload(save_prepost_delegate(FUNC(nbmj9195_state::postload), this));
@@ -416,8 +416,8 @@ void nbmj9195_state::video_start()
m_screen->register_screen_bitmap(m_tmpbitmap[0]);
m_screen->register_screen_bitmap(m_tmpbitmap[1]);
- m_videoram[0] = auto_alloc_array_clear(machine(), UINT16, width * height);
- m_videoram[1] = auto_alloc_array_clear(machine(), UINT16, width * height);
+ m_videoram[0] = make_unique_clear<UINT16[]>(width * height);
+ m_videoram[1] = make_unique_clear<UINT16[]>(width * height);
m_clut[0] = std::make_unique<UINT8[]>(0x1000);
m_clut[1] = std::make_unique<UINT8[]>(0x1000);
m_scanline[0] = m_scanline[1] = SCANLINE_MIN;
@@ -444,8 +444,8 @@ void nbmj9195_state::video_start()
save_item(NAME(m_gfxdraw_mode));
save_item(NAME(m_nb19010_busyctr));
save_item(NAME(m_nb19010_busyflag));
- save_pointer(NAME(m_videoram[0]), width * height);
- save_pointer(NAME(m_videoram[1]), width * height);
+ save_pointer(NAME(m_videoram[0].get()), width * height);
+ save_pointer(NAME(m_videoram[1].get()), width * height);
save_pointer(NAME(m_clut[0].get()), 0x1000);
save_pointer(NAME(m_clut[1].get()), 0x1000);
save_item(NAME(m_flipscreen_old));
@@ -464,11 +464,11 @@ VIDEO_START_MEMBER(nbmj9195_state,nb22090)
int width = m_screen->width();
int height = m_screen->height();
- m_videoworkram[0] = auto_alloc_array_clear(machine(), UINT16, width * height);
- m_videoworkram[1] = auto_alloc_array_clear(machine(), UINT16, width * height);
+ m_videoworkram[0] = make_unique_clear<UINT16[]>(width * height);
+ m_videoworkram[1] = make_unique_clear<UINT16[]>(width * height);
- save_pointer(NAME(m_videoworkram[0]), width * height);
- save_pointer(NAME(m_videoworkram[1]), width * height);
+ save_pointer(NAME(m_videoworkram[0].get()), width * height);
+ save_pointer(NAME(m_videoworkram[1].get()), width * height);
m_gfxdraw_mode = 2;
}
diff --git a/src/mame/video/newport.cpp b/src/mame/video/newport.cpp
index 52aff54c3ce..51604b79326 100644
--- a/src/mame/video/newport.cpp
+++ b/src/mame/video/newport.cpp
@@ -105,9 +105,9 @@ void newport_video_device::device_config_complete()
void newport_video_device::device_start()
{
- m_base = auto_alloc_array_clear(machine(), UINT32, (1280+64) * (1024+64));
+ m_base = make_unique_clear<UINT32[]>((1280+64) * (1024+64));
- save_pointer(NAME(m_base), (1280+64) * (1024+64));
+ save_pointer(NAME(m_base.get()), (1280+64) * (1024+64));
save_item(NAME(m_VC2.nRegister));
save_item(NAME(m_VC2.nRAM));
save_item(NAME(m_VC2.nRegIdx));
diff --git a/src/mame/video/newport.h b/src/mame/video/newport.h
index 180aaf70bb6..1764913a85d 100644
--- a/src/mame/video/newport.h
+++ b/src/mame/video/newport.h
@@ -146,7 +146,7 @@ private:
XMAP_t m_XMAP0;
XMAP_t m_XMAP1;
REX3_t m_REX3;
- UINT32 *m_base;
+ std::unique_ptr<UINT32[]> m_base;
UINT8 m_nDrawGreen;
CMAP_t m_CMAP0;
};
diff --git a/src/mame/video/ninjakd2.cpp b/src/mame/video/ninjakd2.cpp
index 9ff710e57e4..9756e956e0f 100644
--- a/src/mame/video/ninjakd2.cpp
+++ b/src/mame/video/ninjakd2.cpp
@@ -87,17 +87,17 @@ void ninjakd2_state::robokid_get_bg_tile_info( tile_data& tileinfo, tilemap_memo
TILE_GET_INFO_MEMBER(ninjakd2_state::robokid_get_bg0_tile_info)
{
- robokid_get_bg_tile_info(tileinfo, tile_index, 2, m_robokid_bg0_videoram);
+ robokid_get_bg_tile_info(tileinfo, tile_index, 2, m_robokid_bg0_videoram.get());
}
TILE_GET_INFO_MEMBER(ninjakd2_state::robokid_get_bg1_tile_info)
{
- robokid_get_bg_tile_info(tileinfo, tile_index, 3, m_robokid_bg1_videoram);
+ robokid_get_bg_tile_info(tileinfo, tile_index, 3, m_robokid_bg1_videoram.get());
}
TILE_GET_INFO_MEMBER(ninjakd2_state::robokid_get_bg2_tile_info)
{
- robokid_get_bg_tile_info(tileinfo, tile_index, 4, m_robokid_bg2_videoram);
+ robokid_get_bg_tile_info(tileinfo, tile_index, 4, m_robokid_bg2_videoram.get());
}
@@ -113,13 +113,13 @@ void ninjakd2_state::video_init_common(UINT32 vram_alloc_size)
// create video ram
if (vram_alloc_size)
{
- m_robokid_bg0_videoram = auto_alloc_array_clear(machine(), UINT8, vram_alloc_size);
- m_robokid_bg1_videoram = auto_alloc_array_clear(machine(), UINT8, vram_alloc_size);
- m_robokid_bg2_videoram = auto_alloc_array_clear(machine(), UINT8, vram_alloc_size);
+ m_robokid_bg0_videoram = make_unique_clear<UINT8[]>(vram_alloc_size);
+ m_robokid_bg1_videoram = make_unique_clear<UINT8[]>(vram_alloc_size);
+ m_robokid_bg2_videoram = make_unique_clear<UINT8[]>(vram_alloc_size);
- save_pointer(NAME(m_robokid_bg0_videoram), vram_alloc_size);
- save_pointer(NAME(m_robokid_bg1_videoram), vram_alloc_size);
- save_pointer(NAME(m_robokid_bg2_videoram), vram_alloc_size);
+ save_pointer(NAME(m_robokid_bg0_videoram.get()), vram_alloc_size);
+ save_pointer(NAME(m_robokid_bg1_videoram.get()), vram_alloc_size);
+ save_pointer(NAME(m_robokid_bg2_videoram.get()), vram_alloc_size);
}
m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
diff --git a/src/mame/video/niyanpai.cpp b/src/mame/video/niyanpai.cpp
index e6cdeffe70f..132570aa5dc 100644
--- a/src/mame/video/niyanpai.cpp
+++ b/src/mame/video/niyanpai.cpp
@@ -361,12 +361,12 @@ void niyanpai_state::video_start()
m_screen->register_screen_bitmap(m_tmpbitmap[0]);
m_screen->register_screen_bitmap(m_tmpbitmap[1]);
m_screen->register_screen_bitmap(m_tmpbitmap[2]);
- m_videoram[0] = auto_alloc_array_clear(machine(), UINT16, width * height);
- m_videoram[1] = auto_alloc_array_clear(machine(), UINT16, width * height);
- m_videoram[2] = auto_alloc_array_clear(machine(), UINT16, width * height);
- m_videoworkram[0] = auto_alloc_array_clear(machine(), UINT16, width * height);
- m_videoworkram[1] = auto_alloc_array_clear(machine(), UINT16, width * height);
- m_videoworkram[2] = auto_alloc_array_clear(machine(), UINT16, width * height);
+ m_videoram[0] = make_unique_clear<UINT16[]>(width * height);
+ m_videoram[1] = make_unique_clear<UINT16[]>(width * height);
+ m_videoram[2] = make_unique_clear<UINT16[]>(width * height);
+ m_videoworkram[0] = make_unique_clear<UINT16[]>(width * height);
+ m_videoworkram[1] = make_unique_clear<UINT16[]>(width * height);
+ m_videoworkram[2] = make_unique_clear<UINT16[]>(width * height);
m_palette_ptr = std::make_unique<UINT16[]>(0x480);
m_clut[0] = std::make_unique<UINT8[]>(0x1000);
m_clut[1] = std::make_unique<UINT8[]>(0x1000);
@@ -393,12 +393,12 @@ void niyanpai_state::video_start()
save_item(NAME(m_nb19010_busyflag));
save_item(NAME(m_flipscreen_old));
save_pointer(NAME(m_palette_ptr.get()), 0x480);
- save_pointer(NAME(m_videoram[0]), width * height);
- save_pointer(NAME(m_videoram[1]), width * height);
- save_pointer(NAME(m_videoram[2]), width * height);
- save_pointer(NAME(m_videoworkram[0]), width * height);
- save_pointer(NAME(m_videoworkram[1]), width * height);
- save_pointer(NAME(m_videoworkram[2]), width * height);
+ save_pointer(NAME(m_videoram[0].get()), width * height);
+ save_pointer(NAME(m_videoram[1].get()), width * height);
+ save_pointer(NAME(m_videoram[2].get()), width * height);
+ save_pointer(NAME(m_videoworkram[0].get()), width * height);
+ save_pointer(NAME(m_videoworkram[1].get()), width * height);
+ save_pointer(NAME(m_videoworkram[2].get()), width * height);
save_pointer(NAME(m_clut[0].get()), 0x1000);
save_pointer(NAME(m_clut[1].get()), 0x1000);
save_pointer(NAME(m_clut[2].get()), 0x1000);
diff --git a/src/mame/video/nmk16.cpp b/src/mame/video/nmk16.cpp
index 8f3d65fe7a5..8e9adb08aa0 100644
--- a/src/mame/video/nmk16.cpp
+++ b/src/mame/video/nmk16.cpp
@@ -109,8 +109,8 @@ TILE_GET_INFO_MEMBER(nmk16_state::get_tile_info_0_8bit)
void nmk16_state::nmk16_video_init()
{
- m_spriteram_old = auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
- m_spriteram_old2 = auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
+ m_spriteram_old = make_unique_clear<UINT16[]>(0x1000/2);
+ m_spriteram_old2 = make_unique_clear<UINT16[]>(0x1000/2);
m_videoshift = 0; /* 256x224 screen, no shift */
m_background_bitmap = nullptr;
@@ -487,7 +487,7 @@ void nmk16_state::nmk16_draw_sprites_swap(bitmap_ind16 &bitmap, const rectangle
for (i = 0; i < 0x100; i++)
{
int spr = BITSWAP8(i, bittbl[0], bittbl[1], bittbl[2], bittbl[3], bittbl[4], bittbl[5], bittbl[6], bittbl[7]);
- nmk16_draw_sprite(bitmap, cliprect, m_spriteram_old2 + (spr * 16/2));
+ nmk16_draw_sprite(bitmap, cliprect, m_spriteram_old2.get() + (spr * 16/2));
}
}
@@ -498,7 +498,7 @@ void nmk16_state::nmk16_draw_sprites_swap_flipsupported(bitmap_ind16 &bitmap, co
for ( i = 0; i < 0x100; i++ )
{
int spr = BITSWAP8(i, bittbl[0], bittbl[1], bittbl[2], bittbl[3], bittbl[4], bittbl[5], bittbl[6], bittbl[7]);
- nmk16_draw_sprite_flipsupported(bitmap, cliprect, m_spriteram_old2 + (spr * 16/2));
+ nmk16_draw_sprite_flipsupported(bitmap, cliprect, m_spriteram_old2.get() + (spr * 16/2));
}
}
@@ -508,7 +508,7 @@ void nmk16_state::nmk16_draw_sprites(bitmap_ind16 &bitmap, const rectangle &clip
for (offs = 0; offs < 0x1000/2; offs += 8)
{
- nmk16_draw_sprite(bitmap, cliprect, m_spriteram_old2 + offs);
+ nmk16_draw_sprite(bitmap, cliprect, m_spriteram_old2.get() + offs);
}
}
@@ -518,7 +518,7 @@ void nmk16_state::nmk16_draw_sprites_flipsupported(bitmap_ind16 &bitmap, const r
for (offs = 0; offs < 0x1000/2; offs += 8)
{
- nmk16_draw_sprite_flipsupported(bitmap, cliprect, m_spriteram_old2 + offs);
+ nmk16_draw_sprite_flipsupported(bitmap, cliprect, m_spriteram_old2.get() + offs);
}
}
@@ -796,8 +796,8 @@ UINT32 nmk16_state::screen_update_bjtwin(screen_device &screen, bitmap_ind16 &bi
VIDEO_START_MEMBER(nmk16_state,afega)
{
- m_spriteram_old = auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
- m_spriteram_old2 = auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
+ m_spriteram_old = make_unique_clear<UINT16[]>(0x1000/2);
+ m_spriteram_old2 = make_unique_clear<UINT16[]>(0x1000/2);
m_bg_tilemap0 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),this), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),
16,16,
@@ -813,8 +813,8 @@ VIDEO_START_MEMBER(nmk16_state,afega)
VIDEO_START_MEMBER(nmk16_state,grdnstrm)
{
- m_spriteram_old = auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
- m_spriteram_old2 = auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
+ m_spriteram_old = make_unique_clear<UINT16[]>(0x1000/2);
+ m_spriteram_old2 = make_unique_clear<UINT16[]>(0x1000/2);
m_bg_tilemap0 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::get_tile_info_0_8bit),this), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),
@@ -831,8 +831,8 @@ VIDEO_START_MEMBER(nmk16_state,grdnstrm)
VIDEO_START_MEMBER(nmk16_state,firehawk)
{
- m_spriteram_old = auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
- m_spriteram_old2 = auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
+ m_spriteram_old = make_unique_clear<UINT16[]>(0x1000/2);
+ m_spriteram_old2 = make_unique_clear<UINT16[]>(0x1000/2);
m_bg_tilemap0 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::get_tile_info_0_8bit),this), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),this),
diff --git a/src/mame/video/pastelg.cpp b/src/mame/video/pastelg.cpp
index a783696bdce..e76239e9fd4 100644
--- a/src/mame/video/pastelg.cpp
+++ b/src/mame/video/pastelg.cpp
@@ -284,7 +284,7 @@ void pastelg_state::video_start()
int width = m_screen->width();
int height = m_screen->height();
- m_videoram = auto_alloc_array_clear(machine(), UINT8, width * height);
+ m_videoram = make_unique_clear<UINT8[]>(width * height);
save_item(NAME(m_blitter_desty));
save_item(NAME(m_blitter_sizex));
@@ -296,7 +296,7 @@ void pastelg_state::video_start()
save_item(NAME(m_blitter_direction_x));
save_item(NAME(m_blitter_direction_y));
save_item(NAME(m_palbank));
- save_pointer(NAME(m_videoram), width*height);
+ save_pointer(NAME(m_videoram.get()), width*height);
save_item(NAME(m_flipscreen_old));
}
diff --git a/src/mame/video/pc080sn.cpp b/src/mame/video/pc080sn.cpp
index 55c67ed2bfa..62736eecae8 100644
--- a/src/mame/video/pc080sn.cpp
+++ b/src/mame/video/pc080sn.cpp
@@ -128,14 +128,14 @@ void pc080sn_device::device_start()
m_tilemap[1]->set_scroll_rows(512);
}
- m_ram = auto_alloc_array_clear(machine(), UINT16, PC080SN_RAM_SIZE / 2);
+ m_ram = make_unique_clear<UINT16[]>(PC080SN_RAM_SIZE / 2);
- m_bg_ram[0] = m_ram + 0x0000 /2;
- m_bg_ram[1] = m_ram + 0x8000 /2;
- m_bgscroll_ram[0] = m_ram + 0x4000 /2;
- m_bgscroll_ram[1] = m_ram + 0xc000 /2;
+ m_bg_ram[0] = m_ram.get() + 0x0000 /2;
+ m_bg_ram[1] = m_ram.get() + 0x8000 /2;
+ m_bgscroll_ram[0] = m_ram.get() + 0x4000 /2;
+ m_bgscroll_ram[1] = m_ram.get() + 0xc000 /2;
- save_pointer(NAME(m_ram), PC080SN_RAM_SIZE / 2);
+ save_pointer(NAME(m_ram.get()), PC080SN_RAM_SIZE / 2);
save_item(NAME(m_ctrl));
machine().save().register_postload(save_prepost_delegate(FUNC(pc080sn_device::restore_scroll), this));
diff --git a/src/mame/video/pc080sn.h b/src/mame/video/pc080sn.h
index 56f67504a8f..945bc49a9b0 100644
--- a/src/mame/video/pc080sn.h
+++ b/src/mame/video/pc080sn.h
@@ -55,7 +55,7 @@ public:
// internal state
UINT16 m_ctrl[8];
- UINT16 *m_ram;
+ std::unique_ptr<UINT16[]> m_ram;
UINT16 *m_bg_ram[2];
UINT16 *m_bgscroll_ram[2];
diff --git a/src/mame/video/pc090oj.cpp b/src/mame/video/pc090oj.cpp
index 0aa609d093e..d7dc21c19c7 100644
--- a/src/mame/video/pc090oj.cpp
+++ b/src/mame/video/pc090oj.cpp
@@ -115,11 +115,11 @@ void pc090oj_device::static_set_palette_tag(device_t &device, const char *tag)
void pc090oj_device::device_start()
{
- m_ram = auto_alloc_array_clear(machine(), UINT16, PC090OJ_RAM_SIZE / 2);
- m_ram_buffered = auto_alloc_array_clear(machine(), UINT16, PC090OJ_RAM_SIZE / 2);
+ m_ram = make_unique_clear<UINT16[]>(PC090OJ_RAM_SIZE / 2);
+ m_ram_buffered = make_unique_clear<UINT16[]>(PC090OJ_RAM_SIZE / 2);
- save_pointer(NAME(m_ram), PC090OJ_RAM_SIZE / 2);
- save_pointer(NAME(m_ram_buffered), PC090OJ_RAM_SIZE / 2);
+ save_pointer(NAME(m_ram.get()), PC090OJ_RAM_SIZE / 2);
+ save_pointer(NAME(m_ram_buffered.get()), PC090OJ_RAM_SIZE / 2);
save_item(NAME(m_ctrl));
save_item(NAME(m_sprite_ctrl)); // should this be set in intf?!?
}
diff --git a/src/mame/video/pc090oj.h b/src/mame/video/pc090oj.h
index 6f3d9447edf..d1b63b1c7ea 100644
--- a/src/mame/video/pc090oj.h
+++ b/src/mame/video/pc090oj.h
@@ -47,8 +47,8 @@ private:
UINT16 m_ctrl;
UINT16 m_sprite_ctrl;
- UINT16 * m_ram;
- UINT16 * m_ram_buffered;
+ std::unique_ptr<UINT16[]> m_ram;
+ std::unique_ptr<UINT16[]> m_ram_buffered;
int m_gfxnum;
int m_x_offset, m_y_offset;
diff --git a/src/mame/video/pgm.cpp b/src/mame/video/pgm.cpp
index d8d27d359e1..7fb395fed0d 100644
--- a/src/mame/video/pgm.cpp
+++ b/src/mame/video/pgm.cpp
@@ -493,7 +493,7 @@ void pgm_state::draw_sprites( bitmap_ind16& spritebitmap, UINT16 *sprite_source,
wwww wwwh hhhh hhhh
*/
- const UINT16 *finish = m_spritebufferram + (0xa00 / 2);
+ const UINT16 *finish = m_spritebufferram.get() + (0xa00 / 2);
UINT16* start = sprite_source;
@@ -629,9 +629,9 @@ VIDEO_START_MEMBER(pgm_state,pgm)
for (i = 0; i < 0x1200 / 2; i++)
m_palette->set_pen_color(i, rgb_t(0, 0, 0));
- m_spritebufferram = auto_alloc_array_clear(machine(), UINT16, 0xa00/2);
+ m_spritebufferram = make_unique_clear<UINT16[]>(0xa00/2);
- save_pointer(NAME(m_spritebufferram), 0xa00/2);
+ save_pointer(NAME(m_spritebufferram.get()), 0xa00/2);
}
UINT32 pgm_state::screen_update_pgm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -650,7 +650,7 @@ UINT32 pgm_state::screen_update_pgm(screen_device &screen, bitmap_ind16 &bitmap,
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 2);
- draw_sprites(bitmap, m_spritebufferram, screen.priority());
+ draw_sprites(bitmap, m_spritebufferram.get(), screen.priority());
m_tx_tilemap->set_scrolly(0, m_videoregs[0x5000/2]);
m_tx_tilemap->set_scrollx(0, m_videoregs[0x6000/2]); // Check
@@ -669,6 +669,6 @@ void pgm_state::screen_eof_pgm(screen_device &screen, bool state)
if (state)
{
/* first 0xa00 of main ram = sprites, seems to be buffered, DMA? */
- memcpy(m_spritebufferram, m_mainram, 0xa00);
+ memcpy(m_spritebufferram.get(), m_mainram, 0xa00);
}
}
diff --git a/src/mame/video/ppu2c0x.cpp b/src/mame/video/ppu2c0x.cpp
index 5e140d7558f..19c0143ffd1 100644
--- a/src/mame/video/ppu2c0x.cpp
+++ b/src/mame/video/ppu2c0x.cpp
@@ -223,7 +223,7 @@ void ppu2c0x_device::device_start()
/* allocate a screen bitmap, videomem and spriteram, a dirtychar array and the monochromatic colortable */
m_bitmap = std::make_unique<bitmap_ind16>(VISIBLE_SCREEN_WIDTH, VISIBLE_SCREEN_HEIGHT);
- m_spriteram = auto_alloc_array_clear(machine(), UINT8, SPRITERAM_SIZE);
+ m_spriteram = make_unique_clear<UINT8[]>(SPRITERAM_SIZE);
m_colortable = auto_alloc_array(machine(), pen_t, ARRAY_LENGTH(default_colortable));
m_colortable_mono = auto_alloc_array(machine(), pen_t, ARRAY_LENGTH(default_colortable_mono));
@@ -256,7 +256,7 @@ void ppu2c0x_device::device_start()
save_item(NAME(m_palette_ram));
save_item(NAME(m_draw_phase));
save_item(NAME(m_tilecount));
- save_pointer(NAME(m_spriteram), SPRITERAM_SIZE);
+ save_pointer(NAME(m_spriteram.get()), SPRITERAM_SIZE);
save_pointer(NAME(m_colortable), ARRAY_LENGTH(default_colortable));
save_pointer(NAME(m_colortable_mono), ARRAY_LENGTH(default_colortable_mono));
save_item(NAME(*m_bitmap));
diff --git a/src/mame/video/ppu2c0x.h b/src/mame/video/ppu2c0x.h
index ec91bd4166b..09097b720a4 100644
--- a/src/mame/video/ppu2c0x.h
+++ b/src/mame/video/ppu2c0x.h
@@ -189,7 +189,7 @@ public:
required_device<cpu_device> m_cpu;
std::unique_ptr<bitmap_ind16> m_bitmap; /* target bitmap */
- UINT8 *m_spriteram; /* sprite ram */
+ std::unique_ptr<UINT8[]> m_spriteram; /* sprite ram */
pen_t *m_colortable; /* color table modified at run time */
pen_t *m_colortable_mono; /* monochromatic color table modified at run time */
int m_scanline; /* scanline count */
diff --git a/src/mame/video/segas32.cpp b/src/mame/video/segas32.cpp
index 9466a0bb2d4..1212aa42b7a 100644
--- a/src/mame/video/segas32.cpp
+++ b/src/mame/video/segas32.cpp
@@ -240,7 +240,7 @@ void segas32_state::common_start(int multi32)
for (tmap = 0; tmap < 9 + 2 * multi32; tmap++)
{
m_layer_data[tmap].bitmap = auto_alloc(machine(), bitmap_ind16(416, 224));
- m_layer_data[tmap].transparent = auto_alloc_array_clear(machine(), UINT8, 256);
+ m_layer_data[tmap].transparent = make_unique_clear<UINT8[]>(256);
}
/* allocate pre-rendered solid lines of 0's and ffff's */
diff --git a/src/mame/video/seibuspi.cpp b/src/mame/video/seibuspi.cpp
index c89a5505f9d..cb267167789 100644
--- a/src/mame/video/seibuspi.cpp
+++ b/src/mame/video/seibuspi.cpp
@@ -224,7 +224,7 @@ WRITE16_MEMBER(seibuspi_state::sprite_dma_start_w)
if (m_video_dma_address < 0x800)
logerror("sprite_dma_start_w in I/O area: %X\n", m_video_dma_address);
- memcpy(m_sprite_ram, &m_mainram[m_video_dma_address / 4], m_sprite_ram_size);
+ memcpy(m_sprite_ram.get(), &m_mainram[m_video_dma_address / 4], m_sprite_ram_size);
}
@@ -603,9 +603,9 @@ void seibuspi_state::video_start()
m_sprite_ram_size = 0x1000;
m_sprite_bpp = 6;
- m_tilemap_ram = auto_alloc_array_clear(machine(), UINT32, m_tilemap_ram_size/4);
- m_palette_ram = auto_alloc_array_clear(machine(), UINT32, m_palette_ram_size/4);
- m_sprite_ram = auto_alloc_array_clear(machine(), UINT32, m_sprite_ram_size/4);
+ m_tilemap_ram = make_unique_clear<UINT32[]>(m_tilemap_ram_size/4);
+ m_palette_ram = make_unique_clear<UINT32[]>(m_palette_ram_size/4);
+ m_sprite_ram = make_unique_clear<UINT32[]>(m_sprite_ram_size/4);
m_text_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(seibuspi_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
m_back_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(seibuspi_state::get_back_tile_info),this), TILEMAP_SCAN_COLS, 16,16,32,32);
@@ -666,8 +666,8 @@ VIDEO_START_MEMBER(seibuspi_state,sys386f)
m_sprite_bpp = 8;
m_tilemap_ram = nullptr;
- m_palette_ram = auto_alloc_array_clear(machine(), UINT32, m_palette_ram_size/4);
- m_sprite_ram = auto_alloc_array_clear(machine(), UINT32, m_sprite_ram_size/4);
+ m_palette_ram = make_unique_clear<UINT32[]>(m_palette_ram_size/4);
+ m_sprite_ram = make_unique_clear<UINT32[]>(m_sprite_ram_size/4);
memset(m_alpha_table, 0, 0x2000); // no alpha blending
@@ -691,7 +691,7 @@ void seibuspi_state::register_video_state()
save_item(NAME(m_midl_layer_d14));
save_item(NAME(m_fore_layer_d14));
- if (m_tilemap_ram != nullptr) save_pointer(NAME(m_tilemap_ram), m_tilemap_ram_size/4);
- save_pointer(NAME(m_palette_ram), m_palette_ram_size/4);
- save_pointer(NAME(m_sprite_ram), m_sprite_ram_size/4);
+ if (m_tilemap_ram != nullptr) save_pointer(NAME(m_tilemap_ram.get()), m_tilemap_ram_size/4);
+ save_pointer(NAME(m_palette_ram.get()), m_palette_ram_size/4);
+ save_pointer(NAME(m_sprite_ram.get()), m_sprite_ram_size/4);
}
diff --git a/src/mame/video/simpl156.cpp b/src/mame/video/simpl156.cpp
index 3eff8431aa8..dc79657a1c3 100644
--- a/src/mame/video/simpl156.cpp
+++ b/src/mame/video/simpl156.cpp
@@ -12,23 +12,23 @@
void simpl156_state::video_start()
{
/* allocate the ram as 16-bit (we do it here because the CPU is 32-bit) */
- m_pf1_rowscroll = auto_alloc_array_clear(machine(), UINT16, 0x800/2);
- m_pf2_rowscroll = auto_alloc_array_clear(machine(), UINT16, 0x800/2);
- m_spriteram = auto_alloc_array_clear(machine(), UINT16, 0x2000/2);
+ m_pf1_rowscroll = make_unique_clear<UINT16[]>(0x800/2);
+ m_pf2_rowscroll = make_unique_clear<UINT16[]>(0x800/2);
+ m_spriteram = make_unique_clear<UINT16[]>(0x2000/2);
- memset(m_spriteram, 0xff, 0x2000);
+ memset(m_spriteram.get(), 0xff, 0x2000);
/* and register the allocated ram so that save states still work */
- save_pointer(NAME(m_pf1_rowscroll), 0x800/2);
- save_pointer(NAME(m_pf2_rowscroll), 0x800/2);
- save_pointer(NAME(m_spriteram), 0x2000/2);
+ save_pointer(NAME(m_pf1_rowscroll.get()), 0x800/2);
+ save_pointer(NAME(m_pf2_rowscroll.get()), 0x800/2);
+ save_pointer(NAME(m_spriteram.get()), 0x2000/2);
}
UINT32 simpl156_state::screen_update_simpl156(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
screen.priority().fill(0);
- m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll);
+ m_deco_tilegen1->pf_update(m_pf1_rowscroll.get(), m_pf2_rowscroll.get());
bitmap.fill(256, cliprect);
@@ -38,6 +38,6 @@ UINT32 simpl156_state::screen_update_simpl156(screen_device &screen, bitmap_ind1
//FIXME: flip_screen_x should not be written!
flip_screen_set_no_update(1);
- m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x1400/4); // 0x1400/4 seems right for charlien (doesn't initialize any more RAM, so will draw a garbage 0 with more)
+ m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram.get(), 0x1400/4); // 0x1400/4 seems right for charlien (doesn't initialize any more RAM, so will draw a garbage 0 with more)
return 0;
}
diff --git a/src/mame/video/st0020.cpp b/src/mame/video/st0020.cpp
index 29bcee1e161..d9adf38eb38 100644
--- a/src/mame/video/st0020.cpp
+++ b/src/mame/video/st0020.cpp
@@ -73,21 +73,21 @@ static const gfx_layout layout_16x8x8_2 =
void st0020_device::device_start()
{
- m_st0020_gfxram = auto_alloc_array_clear(machine(), UINT16, 4 * 0x100000 / 2);
- m_st0020_spriteram = auto_alloc_array_clear(machine(), UINT16, 0x80000 / 2);
- m_st0020_blitram = auto_alloc_array_clear(machine(), UINT16, 0x100 / 2);
+ m_st0020_gfxram = make_unique_clear<UINT16[]>(4 * 0x100000 / 2);
+ m_st0020_spriteram = make_unique_clear<UINT16[]>(0x80000 / 2);
+ m_st0020_blitram = make_unique_clear<UINT16[]>(0x100 / 2);
for (m_gfx_index = 0; m_gfx_index < MAX_GFX_ELEMENTS; m_gfx_index++)
if (m_gfxdecode->gfx(m_gfx_index) == nullptr)
break;
- m_gfxdecode->set_gfx(m_gfx_index, global_alloc(gfx_element(m_palette, layout_16x8x8_2, (UINT8 *)m_st0020_gfxram, 0, m_palette->entries() / 64, 0)));
+ m_gfxdecode->set_gfx(m_gfx_index, global_alloc(gfx_element(m_palette, layout_16x8x8_2, (UINT8 *)m_st0020_gfxram.get(), 0, m_palette->entries() / 64, 0)));
m_gfxdecode->gfx(m_gfx_index)->set_granularity(64); /* 256 colour sprites with palette selectable on 64 colour boundaries */
- save_pointer(NAME(m_st0020_gfxram), 4 * 0x100000/2);
- save_pointer(NAME(m_st0020_spriteram), 0x80000/2);
- save_pointer(NAME(m_st0020_blitram), 0x100/2);
+ save_pointer(NAME(m_st0020_gfxram.get()), 4 * 0x100000/2);
+ save_pointer(NAME(m_st0020_spriteram.get()), 0x80000/2);
+ save_pointer(NAME(m_st0020_blitram.get()), 0x100/2);
save_item(NAME(m_st0020_gfxram_bank));
}
@@ -154,7 +154,7 @@ READ16_MEMBER(st0020_device::st0020_blitram_r)
WRITE16_MEMBER(st0020_device::st0020_blit_w)
{
- UINT16 *st0020_blitram = m_st0020_blitram;
+ UINT16 *st0020_blitram = m_st0020_blitram.get();
COMBINE_DATA(&st0020_blitram[offset]);
@@ -283,7 +283,7 @@ WRITE16_MEMBER(st0020_device::st0020_blitram_w)
void st0020_device::st0020_draw_zooming_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority)
{
/* Sprites list */
- UINT16 *spriteram16_2 = m_st0020_spriteram;
+ UINT16 *spriteram16_2 = m_st0020_spriteram.get();
UINT16 *s1 = spriteram16_2;
UINT16 *end1 = spriteram16_2 + 0x02000/2;
diff --git a/src/mame/video/st0020.h b/src/mame/video/st0020.h
index cff7f8f1f99..0282acd7699 100644
--- a/src/mame/video/st0020.h
+++ b/src/mame/video/st0020.h
@@ -39,9 +39,9 @@ protected:
private:
int m_st0020_gfxram_bank;
- UINT16* m_st0020_gfxram;
- UINT16* m_st0020_spriteram;
- UINT16* m_st0020_blitram;
+ std::unique_ptr<UINT16[]> m_st0020_gfxram;
+ std::unique_ptr<UINT16[]> m_st0020_spriteram;
+ std::unique_ptr<UINT16[]> m_st0020_blitram;
void st0020_draw_zooming_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority);
DECLARE_READ16_MEMBER(st0020_blit_r);
DECLARE_WRITE16_MEMBER(st0020_blit_w);
diff --git a/src/mame/video/system1.cpp b/src/mame/video/system1.cpp
index 85dd664f3b9..28b772beafc 100644
--- a/src/mame/video/system1.cpp
+++ b/src/mame/video/system1.cpp
@@ -121,19 +121,19 @@ void system1_state::video_start_common(int pagecount)
int pagenum;
/* allocate memory for the collision arrays */
- m_mix_collide = auto_alloc_array_clear(machine(), UINT8, 64);
- m_sprite_collide = auto_alloc_array_clear(machine(), UINT8, 1024);
+ m_mix_collide = make_unique_clear<UINT8[]>(64);
+ m_sprite_collide = make_unique_clear<UINT8[]>(1024);
/* allocate memory for videoram */
m_tilemap_pages = pagecount;
- m_videoram = auto_alloc_array_clear(machine(), UINT8, 0x800 * pagecount);
+ m_videoram = make_unique_clear<UINT8[]>(0x800 * pagecount);
/* create the tilemap pages */
for (pagenum = 0; pagenum < pagecount; pagenum++)
{
m_tilemap_page[pagenum] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(system1_state::tile_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_tilemap_page[pagenum]->set_transparent_pen(0);
- m_tilemap_page[pagenum]->set_user_data(m_videoram + 0x800 * pagenum);
+ m_tilemap_page[pagenum]->set_user_data(m_videoram.get() + 0x800 * pagenum);
}
/* allocate a temporary bitmap for sprite rendering */
@@ -144,9 +144,9 @@ void system1_state::video_start_common(int pagecount)
save_item(NAME(m_mix_collide_summary));
save_item(NAME(m_sprite_collide_summary));
save_item(NAME(m_videoram_bank));
- save_pointer(NAME(m_videoram), 0x800 * pagecount);
- save_pointer(NAME(m_mix_collide), 64);
- save_pointer(NAME(m_sprite_collide), 1024);
+ save_pointer(NAME(m_videoram.get()), 0x800 * pagecount);
+ save_pointer(NAME(m_mix_collide.get()), 64);
+ save_pointer(NAME(m_sprite_collide.get()), 1024);
}
@@ -263,7 +263,7 @@ inline void system1_state::videoram_wait_states(cpu_device *cpu)
READ8_MEMBER(system1_state::system1_videoram_r)
{
- UINT8 *videoram = m_videoram;
+ UINT8 *videoram = m_videoram.get();
videoram_wait_states(m_maincpu);
offset |= 0x1000 * ((m_videoram_bank >> 1) % (m_tilemap_pages / 2));
return videoram[offset];
@@ -271,7 +271,7 @@ READ8_MEMBER(system1_state::system1_videoram_r)
WRITE8_MEMBER(system1_state::system1_videoram_w)
{
- UINT8 *videoram = m_videoram;
+ UINT8 *videoram = m_videoram.get();
videoram_wait_states(m_maincpu);
offset |= 0x1000 * ((m_videoram_bank >> 1) % (m_tilemap_pages / 2));
videoram[offset] = data;
@@ -550,7 +550,7 @@ void system1_state::video_update_common(screen_device &screen, bitmap_ind16 &bit
UINT32 system1_state::screen_update_system1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- UINT8 *videoram = m_videoram;
+ UINT8 *videoram = m_videoram.get();
bitmap_ind16 *bgpixmaps[4];
int bgrowscroll[32];
int xscroll, yscroll;
@@ -585,7 +585,7 @@ UINT32 system1_state::screen_update_system1(screen_device &screen, bitmap_ind16
UINT32 system1_state::screen_update_system2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- UINT8 *videoram = m_videoram;
+ UINT8 *videoram = m_videoram.get();
bitmap_ind16 *bgpixmaps[4];
int rowscroll[32];
int xscroll, yscroll;
@@ -627,7 +627,7 @@ UINT32 system1_state::screen_update_system2(screen_device &screen, bitmap_ind16
UINT32 system1_state::screen_update_system2_rowscroll(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- UINT8 *videoram = m_videoram;
+ UINT8 *videoram = m_videoram.get();
bitmap_ind16 *bgpixmaps[4];
int rowscroll[32];
int yscroll;
diff --git a/src/mame/video/taito_f2.cpp b/src/mame/video/taito_f2.cpp
index 76672f2e0c5..7818f7a4d73 100644
--- a/src/mame/video/taito_f2.cpp
+++ b/src/mame/video/taito_f2.cpp
@@ -34,8 +34,8 @@ void taitof2_state::taitof2_core_vh_start (int sprite_type, int hide, int flip_h
m_hide_pixels = hide;
m_flip_hide_pixels = flip_hide;
- m_spriteram_delayed = auto_alloc_array_clear(machine(), UINT16, m_spriteram.bytes() / 2);
- m_spriteram_buffered = auto_alloc_array_clear(machine(), UINT16, m_spriteram.bytes() / 2);
+ m_spriteram_delayed = make_unique_clear<UINT16[]>(m_spriteram.bytes() / 2);
+ m_spriteram_buffered = make_unique_clear<UINT16[]>(m_spriteram.bytes() / 2);
m_spritelist = auto_alloc_array_clear(machine(), struct f2_tempsprite, 0x400);
for (i = 0; i < 8; i ++)
@@ -67,8 +67,8 @@ void taitof2_state::taitof2_core_vh_start (int sprite_type, int hide, int flip_h
save_item(NAME(m_spritepri));
save_item(NAME(m_spriteblendmode));
save_item(NAME(m_prepare_sprites));
- save_pointer(NAME(m_spriteram_delayed), m_spriteram.bytes() / 2);
- save_pointer(NAME(m_spriteram_buffered), m_spriteram.bytes() / 2);
+ save_pointer(NAME(m_spriteram_delayed.get()), m_spriteram.bytes() / 2);
+ save_pointer(NAME(m_spriteram_buffered.get()), m_spriteram.bytes() / 2);
}
/**************************************************************************************/
@@ -820,7 +820,7 @@ void taitof2_state::taitof2_handle_sprite_buffering( )
{
if (m_prepare_sprites) /* no buffering */
{
- memcpy(m_spriteram_buffered, m_spriteram, m_spriteram.bytes());
+ memcpy(m_spriteram_buffered.get(), m_spriteram, m_spriteram.bytes());
m_prepare_sprites = 0;
}
}
@@ -892,10 +892,10 @@ void taitof2_state::screen_eof_taitof2_full_buffer_delayed(screen_device &screen
taitof2_update_sprites_active_area();
m_prepare_sprites = 0;
- memcpy(m_spriteram_buffered, m_spriteram_delayed, m_spriteram.bytes());
+ memcpy(m_spriteram_buffered.get(), m_spriteram_delayed.get(), m_spriteram.bytes());
for (i = 0; i < m_spriteram.bytes() / 2; i++)
m_spriteram_buffered[i] = spriteram[i];
- memcpy(m_spriteram_delayed, spriteram, m_spriteram.bytes());
+ memcpy(m_spriteram_delayed.get(), spriteram, m_spriteram.bytes());
}
}
@@ -910,10 +910,10 @@ void taitof2_state::screen_eof_taitof2_partial_buffer_delayed(screen_device &scr
taitof2_update_sprites_active_area();
m_prepare_sprites = 0;
- memcpy(m_spriteram_buffered, m_spriteram_delayed, m_spriteram.bytes());
+ memcpy(m_spriteram_buffered.get(), m_spriteram_delayed.get(), m_spriteram.bytes());
for (i = 0;i < m_spriteram.bytes() / 2; i += 4)
m_spriteram_buffered[i] = spriteram[i];
- memcpy(m_spriteram_delayed, spriteram, m_spriteram.bytes());
+ memcpy(m_spriteram_delayed.get(), spriteram, m_spriteram.bytes());
}
}
@@ -928,14 +928,14 @@ void taitof2_state::screen_eof_taitof2_partial_buffer_delayed_thundfox(screen_de
taitof2_update_sprites_active_area();
m_prepare_sprites = 0;
- memcpy(m_spriteram_buffered, m_spriteram_delayed, m_spriteram.bytes());
+ memcpy(m_spriteram_buffered.get(), m_spriteram_delayed.get(), m_spriteram.bytes());
for (i = 0; i < m_spriteram.bytes() / 2; i += 8)
{
m_spriteram_buffered[i] = spriteram[i];
m_spriteram_buffered[i + 1] = spriteram[i + 1];
m_spriteram_buffered[i + 4] = spriteram[i + 4];
}
- memcpy(m_spriteram_delayed, spriteram, m_spriteram.bytes());
+ memcpy(m_spriteram_delayed.get(), spriteram, m_spriteram.bytes());
}
}
@@ -953,7 +953,7 @@ void taitof2_state::screen_eof_taitof2_partial_buffer_delayed_qzchikyu(screen_de
taitof2_update_sprites_active_area();
m_prepare_sprites = 0;
- memcpy(m_spriteram_buffered, m_spriteram_delayed, m_spriteram.bytes());
+ memcpy(m_spriteram_buffered.get(), m_spriteram_delayed.get(), m_spriteram.bytes());
for (i = 0; i < m_spriteram.bytes() / 2; i += 8)
{
m_spriteram_buffered[i] = spriteram[i];
@@ -963,7 +963,7 @@ void taitof2_state::screen_eof_taitof2_partial_buffer_delayed_qzchikyu(screen_de
m_spriteram_buffered[i + 6] = spriteram[i + 6]; // not needed?
m_spriteram_buffered[i + 7] = spriteram[i + 7]; // not needed?
}
- memcpy(m_spriteram_delayed, spriteram, m_spriteram.bytes());
+ memcpy(m_spriteram_delayed.get(), spriteram, m_spriteram.bytes());
}
}
diff --git a/src/mame/video/taito_f3.cpp b/src/mame/video/taito_f3.cpp
index e5598e41c68..97b93fafdab 100644
--- a/src/mame/video/taito_f3.cpp
+++ b/src/mame/video/taito_f3.cpp
@@ -327,7 +327,7 @@ pri_alp_bitmap
void taito_f3_state::print_debug_info(bitmap_rgb32 &bitmap)
{
- UINT16 *f3_line_ram = m_f3_line_ram;
+ UINT16 *f3_line_ram = m_f3_line_ram.get();
int l[16];
char buf[64*16];
char *bufptr = buf;
@@ -511,13 +511,13 @@ void taito_f3_state::screen_eof_f3(screen_device &screen, bool state)
{
get_sprite_info(m_spriteram16_buffered.get());
}
- memcpy(m_spriteram16_buffered.get(),m_spriteram,0x10000);
+ memcpy(m_spriteram16_buffered.get(),m_spriteram.get(),0x10000);
}
else if (m_sprite_lag==1)
{
if (machine().video().skip_this_frame() == 0)
{
- get_sprite_info(m_spriteram);
+ get_sprite_info(m_spriteram.get());
}
}
}
@@ -563,12 +563,12 @@ VIDEO_START_MEMBER(taito_f3_state,f3)
m_f3_game_config=pCFG;
- m_f3_vram = auto_alloc_array_clear(machine(), UINT16, 0x2000/2);
- m_f3_pf_data = auto_alloc_array_clear(machine(), UINT16, 0xc000/2);
- m_videoram = auto_alloc_array_clear(machine(), UINT16, 0x2000/2);
- m_f3_line_ram = auto_alloc_array_clear(machine(), UINT16, 0x10000/2);
- m_f3_pivot_ram = auto_alloc_array_clear(machine(), UINT16, 0x10000/2);
- m_spriteram = auto_alloc_array_clear(machine(), UINT16, 0x10000/2);
+ m_f3_vram = make_unique_clear<UINT16[]>(0x2000/2);
+ m_f3_pf_data = make_unique_clear<UINT16[]>(0xc000/2);
+ m_videoram = make_unique_clear<UINT16[]>(0x2000/2);
+ m_f3_line_ram = make_unique_clear<UINT16[]>(0x10000/2);
+ m_f3_pivot_ram = make_unique_clear<UINT16[]>(0x10000/2);
+ m_spriteram = make_unique_clear<UINT16[]>(0x10000/2);
if (m_f3_game_config->extend) {
m_pf1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info1),this),TILEMAP_SCAN_ROWS,16,16,64,32);
@@ -576,10 +576,10 @@ VIDEO_START_MEMBER(taito_f3_state,f3)
m_pf3_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info3),this),TILEMAP_SCAN_ROWS,16,16,64,32);
m_pf4_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info4),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_f3_pf_data_1=m_f3_pf_data+(0x0000/2);
- m_f3_pf_data_2=m_f3_pf_data+(0x2000/2);
- m_f3_pf_data_3=m_f3_pf_data+(0x4000/2);
- m_f3_pf_data_4=m_f3_pf_data+(0x6000/2);
+ m_f3_pf_data_1=m_f3_pf_data.get()+(0x0000/2);
+ m_f3_pf_data_2=m_f3_pf_data.get()+(0x2000/2);
+ m_f3_pf_data_3=m_f3_pf_data.get()+(0x4000/2);
+ m_f3_pf_data_4=m_f3_pf_data.get()+(0x6000/2);
m_width_mask=0x3ff;
m_twidth_mask=0x7f;
@@ -601,14 +601,14 @@ VIDEO_START_MEMBER(taito_f3_state,f3)
m_pf7_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info7),this),TILEMAP_SCAN_ROWS,16,16,32,32);
m_pf8_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info8),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_f3_pf_data_1=m_f3_pf_data+(0x0000/2);
- m_f3_pf_data_2=m_f3_pf_data+(0x1000/2);
- m_f3_pf_data_3=m_f3_pf_data+(0x2000/2);
- m_f3_pf_data_4=m_f3_pf_data+(0x3000/2);
- m_f3_pf_data_5=m_f3_pf_data+(0x4000/2);
- m_f3_pf_data_6=m_f3_pf_data+(0x5000/2);
- m_f3_pf_data_7=m_f3_pf_data+(0x6000/2);
- m_f3_pf_data_8=m_f3_pf_data+(0x7000/2);
+ m_f3_pf_data_1=m_f3_pf_data.get()+(0x0000/2);
+ m_f3_pf_data_2=m_f3_pf_data.get()+(0x1000/2);
+ m_f3_pf_data_3=m_f3_pf_data.get()+(0x2000/2);
+ m_f3_pf_data_4=m_f3_pf_data.get()+(0x3000/2);
+ m_f3_pf_data_5=m_f3_pf_data.get()+(0x4000/2);
+ m_f3_pf_data_6=m_f3_pf_data.get()+(0x5000/2);
+ m_f3_pf_data_7=m_f3_pf_data.get()+(0x6000/2);
+ m_f3_pf_data_8=m_f3_pf_data.get()+(0x7000/2);
m_width_mask=0x1ff;
m_twidth_mask=0x3f;
@@ -647,13 +647,13 @@ VIDEO_START_MEMBER(taito_f3_state,f3)
m_flipscreen = 0;
memset(m_spriteram16_buffered.get(),0,0x10000);
- memset(m_spriteram,0,0x10000);
+ memset(m_spriteram.get(),0,0x10000);
save_item(NAME(m_f3_control_0));
save_item(NAME(m_f3_control_1));
- m_gfxdecode->gfx(0)->set_source((UINT8 *)m_f3_vram);
- m_gfxdecode->gfx(3)->set_source((UINT8 *)m_f3_pivot_ram);
+ m_gfxdecode->gfx(0)->set_source((UINT8 *)m_f3_vram.get());
+ m_gfxdecode->gfx(3)->set_source((UINT8 *)m_f3_pivot_ram.get());
m_f3_skip_this_frame=0;
@@ -3172,7 +3172,7 @@ UINT32 taito_f3_state::screen_update_f3(screen_device &screen, bitmap_rgb32 &bit
/* sprites */
if (m_sprite_lag==0)
- get_sprite_info(m_spriteram);
+ get_sprite_info(m_spriteram.get());
/* Update sprite buffer */
draw_sprites(bitmap,cliprect);
diff --git a/src/mame/video/taitojc.cpp b/src/mame/video/taitojc.cpp
index 1d1a52236fa..379363480c2 100644
--- a/src/mame/video/taitojc.cpp
+++ b/src/mame/video/taitojc.cpp
@@ -63,13 +63,13 @@ READ32_MEMBER(taitojc_state::taitojc_char_r)
WRITE32_MEMBER(taitojc_state::taitojc_tile_w)
{
- COMBINE_DATA(m_tile_ram + offset);
+ COMBINE_DATA(m_tile_ram.get() + offset);
m_tilemap->mark_tile_dirty(offset);
}
WRITE32_MEMBER(taitojc_state::taitojc_char_w)
{
- COMBINE_DATA(m_char_ram + offset);
+ COMBINE_DATA(m_char_ram.get() + offset);
m_gfxdecode->gfx(m_gfx_index)->mark_dirty(offset/32);
}
@@ -313,11 +313,11 @@ void taitojc_state::video_start()
m_tilemap->set_transparent_pen(0);
- m_char_ram = auto_alloc_array_clear(machine(), UINT32, 0x4000/4);
- m_tile_ram = auto_alloc_array_clear(machine(), UINT32, 0x4000/4);
+ m_char_ram = make_unique_clear<UINT32[]>(0x4000/4);
+ m_tile_ram = make_unique_clear<UINT32[]>(0x4000/4);
/* create the char set (gfx will then be updated dynamically from RAM) */
- m_gfxdecode->set_gfx(m_gfx_index, global_alloc(gfx_element(m_palette, taitojc_char_layout, (UINT8 *)m_char_ram, 0, m_palette->entries() / 16, 0)));
+ m_gfxdecode->set_gfx(m_gfx_index, global_alloc(gfx_element(m_palette, taitojc_char_layout, (UINT8 *)m_char_ram.get(), 0, m_palette->entries() / 16, 0)));
}
UINT32 taitojc_state::screen_update_taitojc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/tatsumi.cpp b/src/mame/video/tatsumi.cpp
index aafb99ff5bc..4c52d4def29 100644
--- a/src/mame/video/tatsumi.cpp
+++ b/src/mame/video/tatsumi.cpp
@@ -127,7 +127,7 @@ TILE_GET_INFO_MEMBER(tatsumi_state::get_tile_info_bigfight_1)
VIDEO_START_MEMBER(tatsumi_state,apache3)
{
m_tx_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_shadow_pen_array = auto_alloc_array_clear(machine(), UINT8, 8192);
+ m_shadow_pen_array = make_unique_clear<UINT8[]>(8192);
m_temp_bitmap.allocate(512, 512);
m_apache3_road_x_ram = std::make_unique<UINT8[]>(512);
@@ -137,7 +137,7 @@ VIDEO_START_MEMBER(tatsumi_state,apache3)
VIDEO_START_MEMBER(tatsumi_state,roundup5)
{
m_tx_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
- m_shadow_pen_array = auto_alloc_array_clear(machine(), UINT8, 8192);
+ m_shadow_pen_array = make_unique_clear<UINT8[]>(8192);
m_roundup5_vram = std::make_unique<UINT16[]>((0x48000 * 4)/2);
m_tx_layer->set_transparent_pen(0);
@@ -153,7 +153,7 @@ VIDEO_START_MEMBER(tatsumi_state,cyclwarr)
m_layer2 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),this),TILEMAP_SCAN_ROWS,8,8,64,512);
m_layer3 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),this),TILEMAP_SCAN_ROWS,8,8,64,512);
- m_shadow_pen_array = auto_alloc_array_clear(machine(), UINT8, 8192);
+ m_shadow_pen_array = make_unique_clear<UINT8[]>(8192);
}
VIDEO_START_MEMBER(tatsumi_state,bigfight)
@@ -163,7 +163,7 @@ VIDEO_START_MEMBER(tatsumi_state,bigfight)
m_layer2 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),this),TILEMAP_SCAN_ROWS,8,8,128,256);
m_layer3 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),this),TILEMAP_SCAN_ROWS,8,8,128,256);
- m_shadow_pen_array = auto_alloc_array_clear(machine(), UINT8, 8192);
+ m_shadow_pen_array = make_unique_clear<UINT8[]>(8192);
}
/********************************************************************/
diff --git a/src/mame/video/tc0080vco.cpp b/src/mame/video/tc0080vco.cpp
index 40e7bd34f41..418e4a5049e 100644
--- a/src/mame/video/tc0080vco.cpp
+++ b/src/mame/video/tc0080vco.cpp
@@ -174,28 +174,28 @@ void tc0080vco_device::device_start()
m_tilemap[2]->set_transparent_pen(0);
- m_ram = auto_alloc_array_clear(machine(), UINT16, TC0080VCO_RAM_SIZE / 2);
+ m_ram = make_unique_clear<UINT16[]>(TC0080VCO_RAM_SIZE / 2);
- m_char_ram = m_ram + 0x00000 / 2; /* continues at +0x10000 */
- m_tx_ram_0 = m_ram + 0x01000 / 2;
- m_chain_ram_0 = m_ram + 0x00000 / 2; /* only used from +0x2000 */
+ m_char_ram = m_ram.get() + 0x00000 / 2; /* continues at +0x10000 */
+ m_tx_ram_0 = m_ram.get() + 0x01000 / 2;
+ m_chain_ram_0 = m_ram.get() + 0x00000 / 2; /* only used from +0x2000 */
- m_bg0_ram_0 = m_ram + 0x0c000 / 2;
- m_bg1_ram_0 = m_ram + 0x0e000 / 2;
+ m_bg0_ram_0 = m_ram.get() + 0x0c000 / 2;
+ m_bg1_ram_0 = m_ram.get() + 0x0e000 / 2;
- m_tx_ram_1 = m_ram + 0x11000 / 2;
- m_chain_ram_1 = m_ram + 0x10000 / 2; /* only used from +0x12000 */
+ m_tx_ram_1 = m_ram.get() + 0x11000 / 2;
+ m_chain_ram_1 = m_ram.get() + 0x10000 / 2; /* only used from +0x12000 */
- m_bg0_ram_1 = m_ram + 0x1c000 / 2;
- m_bg1_ram_1 = m_ram + 0x1e000 / 2;
- m_bgscroll_ram = m_ram + 0x20000 / 2;
- m_spriteram = m_ram + 0x20400 / 2;
- m_scroll_ram = m_ram + 0x20800 / 2;
+ m_bg0_ram_1 = m_ram.get() + 0x1c000 / 2;
+ m_bg1_ram_1 = m_ram.get() + 0x1e000 / 2;
+ m_bgscroll_ram = m_ram.get() + 0x20000 / 2;
+ m_spriteram = m_ram.get() + 0x20400 / 2;
+ m_scroll_ram = m_ram.get() + 0x20800 / 2;
/* create the char set (gfx will then be updated dynamically from RAM) */
m_gfxdecode->set_gfx(m_txnum, global_alloc(gfx_element(m_palette, charlayout, (UINT8 *)m_char_ram, 0, 1, 512)));
- save_pointer(NAME(m_ram), TC0080VCO_RAM_SIZE / 2);
+ save_pointer(NAME(m_ram.get()), TC0080VCO_RAM_SIZE / 2);
machine().save().register_postload(save_prepost_delegate(FUNC(tc0080vco_device::postload), this));
}
diff --git a/src/mame/video/tc0080vco.h b/src/mame/video/tc0080vco.h
index 43a259ae483..c842e3a57b5 100644
--- a/src/mame/video/tc0080vco.h
+++ b/src/mame/video/tc0080vco.h
@@ -43,7 +43,7 @@ protected:
private:
// internal state
- UINT16 * m_ram;
+ std::unique_ptr<UINT16[]> m_ram;
UINT16 * m_bg0_ram_0;
UINT16 * m_bg0_ram_1;
UINT16 * m_bg1_ram_0;
diff --git a/src/mame/video/tc0100scn.cpp b/src/mame/video/tc0100scn.cpp
index e63bd9b0c25..76d6b21fe98 100644
--- a/src/mame/video/tc0100scn.cpp
+++ b/src/mame/video/tc0100scn.cpp
@@ -284,7 +284,7 @@ void tc0100scn_device::device_start()
m_bg_tilemask = 0xffff; /* Mjnquest has 0x7fff tilemask */
- m_ram = auto_alloc_array_clear(machine(), UINT16, TC0100SCN_RAM_SIZE / 2);
+ m_ram = make_unique_clear<UINT16[]>(TC0100SCN_RAM_SIZE / 2);
set_layer_ptrs();
@@ -302,7 +302,7 @@ void tc0100scn_device::device_start()
set_colbanks(0, 0, 0); /* standard values, only Wgp & multiscreen games change them */
/* we call this here, so that they can be modified at video_start*/
- save_pointer(NAME(m_ram), TC0100SCN_RAM_SIZE / 2);
+ save_pointer(NAME(m_ram.get()), TC0100SCN_RAM_SIZE / 2);
save_item(NAME(m_ctrl));
save_item(NAME(m_dblwidth));
save_item(NAME(m_gfxbank));
@@ -390,23 +390,23 @@ void tc0100scn_device::set_layer_ptrs()
{
if (!m_dblwidth)
{
- m_bg_ram = m_ram + 0x0;
- m_tx_ram = m_ram + 0x4000 /2;
- m_char_ram = m_ram + 0x6000 /2;
- m_fg_ram = m_ram + 0x8000 /2;
- m_bgscroll_ram = m_ram + 0xc000 /2;
- m_fgscroll_ram = m_ram + 0xc400 /2;
- m_colscroll_ram = m_ram + 0xe000 /2;
+ m_bg_ram = m_ram.get() + 0x0;
+ m_tx_ram = m_ram.get() + 0x4000 /2;
+ m_char_ram = m_ram.get() + 0x6000 /2;
+ m_fg_ram = m_ram.get() + 0x8000 /2;
+ m_bgscroll_ram = m_ram.get() + 0xc000 /2;
+ m_fgscroll_ram = m_ram.get() + 0xc400 /2;
+ m_colscroll_ram = m_ram.get() + 0xe000 /2;
}
else
{
- m_bg_ram = m_ram + 0x0;
- m_fg_ram = m_ram + 0x08000 /2;
- m_bgscroll_ram = m_ram + 0x10000 /2;
- m_fgscroll_ram = m_ram + 0x10400 /2;
- m_colscroll_ram = m_ram + 0x10800 /2;
- m_char_ram = m_ram + 0x11000 /2;
- m_tx_ram = m_ram + 0x12000 /2;
+ m_bg_ram = m_ram.get() + 0x0;
+ m_fg_ram = m_ram.get() + 0x08000 /2;
+ m_bgscroll_ram = m_ram.get() + 0x10000 /2;
+ m_fgscroll_ram = m_ram.get() + 0x10400 /2;
+ m_colscroll_ram = m_ram.get() + 0x10800 /2;
+ m_char_ram = m_ram.get() + 0x11000 /2;
+ m_tx_ram = m_ram.get() + 0x12000 /2;
}
}
diff --git a/src/mame/video/tc0100scn.h b/src/mame/video/tc0100scn.h
index 3727ca49327..5f07bbee7f2 100644
--- a/src/mame/video/tc0100scn.h
+++ b/src/mame/video/tc0100scn.h
@@ -76,7 +76,7 @@ private:
// internal state
UINT16 m_ctrl[8];
- UINT16 * m_ram;
+ std::unique_ptr<UINT16[]> m_ram;
UINT16 * m_bg_ram;
UINT16 * m_fg_ram;
UINT16 * m_tx_ram;
diff --git a/src/mame/video/tc0110pcr.cpp b/src/mame/video/tc0110pcr.cpp
index 8c3fdf99d51..19eb43d7938 100644
--- a/src/mame/video/tc0110pcr.cpp
+++ b/src/mame/video/tc0110pcr.cpp
@@ -45,9 +45,9 @@ void tc0110pcr_device::static_set_palette_tag(device_t &device, const char *tag)
void tc0110pcr_device::device_start()
{
- m_ram = auto_alloc_array_clear(machine(), UINT16, TC0110PCR_RAM_SIZE);
+ m_ram = make_unique_clear<UINT16[]>(TC0110PCR_RAM_SIZE);
- save_pointer(NAME(m_ram), TC0110PCR_RAM_SIZE);
+ save_pointer(NAME(m_ram.get()), TC0110PCR_RAM_SIZE);
save_item(NAME(m_type));
save_item(NAME(m_addr));
machine().save().register_postload(save_prepost_delegate(FUNC(tc0110pcr_device::restore_colors), this));
diff --git a/src/mame/video/tc0110pcr.h b/src/mame/video/tc0110pcr.h
index 982cf49f8c4..1e8df12c79f 100644
--- a/src/mame/video/tc0110pcr.h
+++ b/src/mame/video/tc0110pcr.h
@@ -26,7 +26,7 @@ protected:
virtual void device_reset() override;
private:
- UINT16 * m_ram;
+ std::unique_ptr<UINT16[]> m_ram;
int m_type;
int m_addr;
required_device<palette_device> m_palette;
diff --git a/src/mame/video/tc0180vcu.cpp b/src/mame/video/tc0180vcu.cpp
index ff7a1df5ed7..9420114b3d9 100644
--- a/src/mame/video/tc0180vcu.cpp
+++ b/src/mame/video/tc0180vcu.cpp
@@ -53,11 +53,11 @@ void tc0180vcu_device::device_start()
m_tilemap[1]->set_transparent_pen(0);
m_tilemap[2]->set_transparent_pen(0);
- m_ram = auto_alloc_array_clear(machine(), UINT16, TC0180VCU_RAM_SIZE / 2);
- m_scrollram = auto_alloc_array_clear(machine(), UINT16, TC0180VCU_SCROLLRAM_SIZE / 2);
+ m_ram = make_unique_clear<UINT16[]>(TC0180VCU_RAM_SIZE / 2);
+ m_scrollram = make_unique_clear<UINT16[]>(TC0180VCU_SCROLLRAM_SIZE / 2);
- save_pointer(NAME(m_ram), TC0180VCU_RAM_SIZE / 2);
- save_pointer(NAME(m_scrollram), TC0180VCU_SCROLLRAM_SIZE / 2);
+ save_pointer(NAME(m_ram.get()), TC0180VCU_RAM_SIZE / 2);
+ save_pointer(NAME(m_scrollram.get()), TC0180VCU_SCROLLRAM_SIZE / 2);
save_item(NAME(m_bg_rambank));
save_item(NAME(m_fg_rambank));
diff --git a/src/mame/video/tc0180vcu.h b/src/mame/video/tc0180vcu.h
index 72436d0b68a..ddd7fbe92b4 100644
--- a/src/mame/video/tc0180vcu.h
+++ b/src/mame/video/tc0180vcu.h
@@ -35,8 +35,8 @@ private:
// internal state
UINT16 m_ctrl[0x10];
- UINT16 * m_ram;
- UINT16 * m_scrollram;
+ std::unique_ptr<UINT16[]> m_ram;
+ std::unique_ptr<UINT16[]> m_scrollram;
tilemap_t *m_tilemap[3];
diff --git a/src/mame/video/tc0280grd.cpp b/src/mame/video/tc0280grd.cpp
index 8034de45c6f..d021893c1a7 100644
--- a/src/mame/video/tc0280grd.cpp
+++ b/src/mame/video/tc0280grd.cpp
@@ -59,9 +59,9 @@ void tc0280grd_device::device_start()
m_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tc0280grd_device::tc0280grd_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap->set_transparent_pen(0);
- m_ram = auto_alloc_array_clear(machine(), UINT16, TC0280GRD_RAM_SIZE / 2);
+ m_ram = make_unique_clear<UINT16[]>(TC0280GRD_RAM_SIZE / 2);
- save_pointer(NAME(m_ram), TC0280GRD_RAM_SIZE / 2);
+ save_pointer(NAME(m_ram.get()), TC0280GRD_RAM_SIZE / 2);
save_item(NAME(m_ctrl));
}
diff --git a/src/mame/video/tc0280grd.h b/src/mame/video/tc0280grd.h
index 679a45ef886..d9f8ffc2ee4 100644
--- a/src/mame/video/tc0280grd.h
+++ b/src/mame/video/tc0280grd.h
@@ -32,7 +32,7 @@ protected:
private:
// internal state
- UINT16 * m_ram;
+ std::unique_ptr<UINT16[]> m_ram;
tilemap_t *m_tilemap;
diff --git a/src/mame/video/tceptor.cpp b/src/mame/video/tceptor.cpp
index 55347e4ce08..56f5ca257ab 100644
--- a/src/mame/video/tceptor.cpp
+++ b/src/mame/video/tceptor.cpp
@@ -361,7 +361,7 @@ void tceptor_state::video_start()
{
int gfx_index;
- m_sprite_ram_buffered = auto_alloc_array_clear(machine(), UINT16, 0x200/2);
+ m_sprite_ram_buffered = make_unique_clear<UINT16[]>(0x200/2);
/* find first empty slot to decode gfx */
for (gfx_index = 0; gfx_index < MAX_GFX_ELEMENTS; gfx_index++)
@@ -392,7 +392,7 @@ void tceptor_state::video_start()
m_bg1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tceptor_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg2_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tceptor_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- save_pointer(NAME(m_sprite_ram_buffered), 0x200 / 2);
+ save_pointer(NAME(m_sprite_ram_buffered.get()), 0x200 / 2);
save_item(NAME(m_bg1_scroll_x));
save_item(NAME(m_bg1_scroll_y));
save_item(NAME(m_bg2_scroll_x));
@@ -553,6 +553,6 @@ void tceptor_state::screen_eof_tceptor(screen_device &screen, bool state)
// rising edge
if (state)
{
- memcpy(m_sprite_ram_buffered, m_sprite_ram, 0x200);
+ memcpy(m_sprite_ram_buffered.get(), m_sprite_ram, 0x200);
}
}
diff --git a/src/mame/video/thepit.cpp b/src/mame/video/thepit.cpp
index be3cdcade76..1018eac40ee 100644
--- a/src/mame/video/thepit.cpp
+++ b/src/mame/video/thepit.cpp
@@ -104,7 +104,7 @@ TILE_GET_INFO_MEMBER(thepit_state::solid_get_tile_info)
{
UINT8 back_color = (m_colorram[tile_index] & 0x70) >> 4;
int priority = (back_color != 0) && ((m_colorram[tile_index] & 0x80) == 0);
- tileinfo.pen_data = m_dummy_tile;
+ tileinfo.pen_data = m_dummy_tile.get();
tileinfo.palette_base = back_color + 32;
tileinfo.category = priority;
}
@@ -135,7 +135,7 @@ void thepit_state::video_start()
m_solid_tilemap->set_scroll_cols(32);
m_tilemap->set_scroll_cols(32);
- m_dummy_tile = auto_alloc_array_clear(machine(), UINT8, 8*8);
+ m_dummy_tile = make_unique_clear<UINT8[]>(8*8);
m_graphics_bank = 0; /* only used in intrepid */
diff --git a/src/mame/video/thief.cpp b/src/mame/video/thief.cpp
index 1fc54b9d9d3..95583b76f9f 100644
--- a/src/mame/video/thief.cpp
+++ b/src/mame/video/thief.cpp
@@ -72,14 +72,14 @@ WRITE8_MEMBER(thief_state::thief_color_plane_w){
}
READ8_MEMBER(thief_state::thief_videoram_r){
- UINT8 *videoram = m_videoram;
+ UINT8 *videoram = m_videoram.get();
UINT8 *source = &videoram[offset];
if( m_video_control&0x02 ) source+=0x2000*4; /* foreground/background */
return source[m_read_mask*0x2000];
}
WRITE8_MEMBER(thief_state::thief_videoram_w){
- UINT8 *videoram = m_videoram;
+ UINT8 *videoram = m_videoram.get();
UINT8 *dest = &videoram[offset];
if( m_video_control&0x02 )
dest+=0x2000*4; /* foreground/background */
@@ -94,14 +94,14 @@ WRITE8_MEMBER(thief_state::thief_videoram_w){
void thief_state::video_start(){
memset( &m_coprocessor, 0x00, sizeof(m_coprocessor) );
- m_videoram = auto_alloc_array_clear(machine(), UINT8, 0x2000*4*2 );
+ m_videoram = make_unique_clear<UINT8[]>(0x2000*4*2 );
m_coprocessor.image_ram = std::make_unique<UINT8[]>(0x2000 );
m_coprocessor.context_ram = std::make_unique<UINT8[]>(0x400 );
}
UINT32 thief_state::screen_update_thief(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){
- UINT8 *videoram = m_videoram;
+ UINT8 *videoram = m_videoram.get();
UINT32 offs;
int flipscreen = m_video_control&1;
const UINT8 *source = videoram;
diff --git a/src/mame/video/ti85.cpp b/src/mame/video/ti85.cpp
index 92ade7ae6fc..81410fb87df 100644
--- a/src/mame/video/ti85.cpp
+++ b/src/mame/video/ti85.cpp
@@ -140,7 +140,7 @@ PALETTE_INIT_MEMBER(ti85_state, ti85)
return;
}
- m_frames = auto_alloc_array_clear(machine(), UINT8, m_ti_number_of_frames*m_ti_video_memory_size);
+ m_frames = make_unique_clear<UINT8[]>(m_ti_number_of_frames*m_ti_video_memory_size);
}
void ti85_state::video_start()
@@ -165,22 +165,22 @@ UINT32 ti85_state::screen_update_ti85(screen_device &screen, bitmap_ind16 &bitma
lcdmem = ((m_LCD_memory_base & 0x3F) + 0xc0) << 0x08;
- memcpy (m_frames, m_frames+m_ti_video_memory_size, sizeof (UINT8) * (m_ti_number_of_frames-1) * m_ti_video_memory_size);
+ memcpy (m_frames.get(), m_frames.get()+m_ti_video_memory_size, sizeof (UINT8) * (m_ti_number_of_frames-1) * m_ti_video_memory_size);
for (y=0; y<m_ti_screen_y_size; y++)
for (x=0; x<m_ti_screen_x_size; x++)
- *(m_frames+(m_ti_number_of_frames-1)*m_ti_video_memory_size+y*m_ti_screen_x_size+x) = space.read_byte(lcdmem+y*m_ti_screen_x_size+x);
+ *(m_frames.get()+(m_ti_number_of_frames-1)*m_ti_video_memory_size+y*m_ti_screen_x_size+x) = space.read_byte(lcdmem+y*m_ti_screen_x_size+x);
for (y=0; y<m_ti_screen_y_size; y++)
for (x=0; x<m_ti_screen_x_size; x++)
for (b=0; b<8; b++)
{
- brightnes = ((*(m_frames+0*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
- + ((*(m_frames+1*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
- + ((*(m_frames+2*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
- + ((*(m_frames+3*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
- + ((*(m_frames+4*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
- + ((*(m_frames+5*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01);
+ brightnes = ((*(m_frames.get()+0*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
+ + ((*(m_frames.get()+1*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
+ + ((*(m_frames.get()+2*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
+ + ((*(m_frames.get()+3*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
+ + ((*(m_frames.get()+4*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
+ + ((*(m_frames.get()+5*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01);
bitmap.pix16(y, x*8+b) = ti85_palette[m_LCD_contrast&0x1f][brightnes];
}
diff --git a/src/mame/video/tiamc1.cpp b/src/mame/video/tiamc1.cpp
index 460917a90d4..fc729293b15 100644
--- a/src/mame/video/tiamc1.cpp
+++ b/src/mame/video/tiamc1.cpp
@@ -124,19 +124,17 @@ TILE_GET_INFO_MEMBER(tiamc1_state::get_bg2_tile_info)
void tiamc1_state::video_start()
{
- UINT8 *video_ram;
+ m_videoram = make_unique_clear<UINT8[]>(0x3040);
- video_ram = auto_alloc_array_clear(machine(), UINT8, 0x3040);
+ m_charram = m_videoram.get() + 0x0800; /* Ram is banked */
+ m_tileram = m_videoram.get() + 0x0000;
- m_charram = video_ram + 0x0800; /* Ram is banked */
- m_tileram = video_ram + 0x0000;
+ m_spriteram_y = m_videoram.get() + 0x3000;
+ m_spriteram_x = m_videoram.get() + 0x3010;
+ m_spriteram_n = m_videoram.get() + 0x3020;
+ m_spriteram_a = m_videoram.get() + 0x3030;
- m_spriteram_y = video_ram + 0x3000;
- m_spriteram_x = video_ram + 0x3010;
- m_spriteram_n = video_ram + 0x3020;
- m_spriteram_a = video_ram + 0x3030;
-
- save_pointer(NAME(video_ram), 0x3040);
+ save_pointer(NAME(m_videoram.get()), 0x3040);
m_bg_tilemap1 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tiamc1_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
diff --git a/src/mame/video/toaplan1.cpp b/src/mame/video/toaplan1.cpp
index 2363ed2510b..fb99840329c 100644
--- a/src/mame/video/toaplan1.cpp
+++ b/src/mame/video/toaplan1.cpp
@@ -222,15 +222,15 @@ void toaplan1_state::toaplan1_create_tilemaps()
void toaplan1_state::toaplan1_vram_alloc()
{
- m_pf1_tilevram16 = auto_alloc_array_clear(machine(), UINT16, TOAPLAN1_TILEVRAM_SIZE/2);
- m_pf2_tilevram16 = auto_alloc_array_clear(machine(), UINT16, TOAPLAN1_TILEVRAM_SIZE/2);
- m_pf3_tilevram16 = auto_alloc_array_clear(machine(), UINT16, TOAPLAN1_TILEVRAM_SIZE/2);
- m_pf4_tilevram16 = auto_alloc_array_clear(machine(), UINT16, TOAPLAN1_TILEVRAM_SIZE/2);
+ m_pf1_tilevram16 = make_unique_clear<UINT16[]>(TOAPLAN1_TILEVRAM_SIZE/2);
+ m_pf2_tilevram16 = make_unique_clear<UINT16[]>(TOAPLAN1_TILEVRAM_SIZE/2);
+ m_pf3_tilevram16 = make_unique_clear<UINT16[]>(TOAPLAN1_TILEVRAM_SIZE/2);
+ m_pf4_tilevram16 = make_unique_clear<UINT16[]>(TOAPLAN1_TILEVRAM_SIZE/2);
- save_pointer(NAME(m_pf1_tilevram16), TOAPLAN1_TILEVRAM_SIZE/2);
- save_pointer(NAME(m_pf2_tilevram16), TOAPLAN1_TILEVRAM_SIZE/2);
- save_pointer(NAME(m_pf3_tilevram16), TOAPLAN1_TILEVRAM_SIZE/2);
- save_pointer(NAME(m_pf4_tilevram16), TOAPLAN1_TILEVRAM_SIZE/2);
+ save_pointer(NAME(m_pf1_tilevram16.get()), TOAPLAN1_TILEVRAM_SIZE/2);
+ save_pointer(NAME(m_pf2_tilevram16.get()), TOAPLAN1_TILEVRAM_SIZE/2);
+ save_pointer(NAME(m_pf3_tilevram16.get()), TOAPLAN1_TILEVRAM_SIZE/2);
+ save_pointer(NAME(m_pf4_tilevram16.get()), TOAPLAN1_TILEVRAM_SIZE/2);
#ifdef MAME_DEBUG
m_display_pf1 = 1;
@@ -244,13 +244,13 @@ void toaplan1_state::toaplan1_vram_alloc()
void toaplan1_state::toaplan1_spritevram_alloc()
{
m_spriteram.allocate(TOAPLAN1_SPRITERAM_SIZE/2);
- m_buffered_spriteram = auto_alloc_array_clear(machine(), UINT16, TOAPLAN1_SPRITERAM_SIZE/2);
- m_spritesizeram16 = auto_alloc_array_clear(machine(), UINT16, TOAPLAN1_SPRITESIZERAM_SIZE/2);
- m_buffered_spritesizeram16 = auto_alloc_array_clear(machine(), UINT16, TOAPLAN1_SPRITESIZERAM_SIZE/2);
+ m_buffered_spriteram = make_unique_clear<UINT16[]>(TOAPLAN1_SPRITERAM_SIZE/2);
+ m_spritesizeram16 = make_unique_clear<UINT16[]>(TOAPLAN1_SPRITESIZERAM_SIZE/2);
+ m_buffered_spritesizeram16 = make_unique_clear<UINT16[]>(TOAPLAN1_SPRITESIZERAM_SIZE/2);
- save_pointer(NAME(m_buffered_spriteram), TOAPLAN1_SPRITERAM_SIZE/2);
- save_pointer(NAME(m_spritesizeram16), TOAPLAN1_SPRITESIZERAM_SIZE/2);
- save_pointer(NAME(m_buffered_spritesizeram16), TOAPLAN1_SPRITESIZERAM_SIZE/2);
+ save_pointer(NAME(m_buffered_spriteram.get()), TOAPLAN1_SPRITERAM_SIZE/2);
+ save_pointer(NAME(m_spritesizeram16.get()), TOAPLAN1_SPRITESIZERAM_SIZE/2);
+ save_pointer(NAME(m_buffered_spritesizeram16.get()), TOAPLAN1_SPRITESIZERAM_SIZE/2);
}
void toaplan1_state::toaplan1_set_scrolls()
@@ -294,8 +294,8 @@ VIDEO_START_MEMBER(toaplan1_rallybik_state,rallybik)
toaplan1_create_tilemaps();
toaplan1_vram_alloc();
- m_buffered_spriteram = auto_alloc_array_clear(machine(), UINT16, m_spriteram.bytes()/2);
- save_pointer(NAME(m_buffered_spriteram), m_spriteram.bytes()/2);
+ m_buffered_spriteram = make_unique_clear<UINT16[]>(m_spriteram.bytes()/2);
+ save_pointer(NAME(m_buffered_spriteram.get()), m_spriteram.bytes()/2);
m_pf1_tilemap->set_scrolldx(-0x00d-6, -0x80+6);
m_pf2_tilemap->set_scrolldx(-0x00d-4, -0x80+4);
@@ -608,14 +608,14 @@ void toaplan1_state::toaplan1_log_vram()
if ( machine().input().code_pressed(KEYCODE_M) )
{
UINT16 *spriteram16 = m_spriteram;
- UINT16 *buffered_spriteram16 = m_buffered_spriteram;
+ UINT16 *buffered_spriteram16 = m_buffered_spriteram.get();
offs_t sprite_voffs;
while (machine().input().code_pressed(KEYCODE_M)) ;
if (m_spritesizeram16) /* FCU controller */
{
int schar,sattr,sxpos,sypos,bschar,bsattr,bsxpos,bsypos;
- UINT16 *size = (UINT16 *)(m_spritesizeram16);
- UINT16 *bsize = (UINT16 *)(m_buffered_spritesizeram16);
+ UINT16 *size = (UINT16 *)(m_spritesizeram16.get());
+ UINT16 *bsize = (UINT16 *)(m_buffered_spritesizeram16.get());
logerror("Scrolls PF1-X PF1-Y PF2-X PF2-Y PF3-X PF3-Y PF4-X PF4-Y\n");
logerror("------> #%04x #%04x #%04x #%04x #%04x #%04x #%04x #%04x\n",
m_pf1_scrollx, m_pf1_scrolly, m_pf2_scrollx, m_pf2_scrolly, m_pf3_scrollx, m_pf3_scrolly, m_pf4_scrollx, m_pf4_scrolly);
@@ -659,8 +659,8 @@ void toaplan1_state::toaplan1_log_vram()
if ( machine().input().code_pressed(KEYCODE_SLASH) )
{
- UINT16 *size = (UINT16 *)(m_spritesizeram16);
- UINT16 *bsize = (UINT16 *)(m_buffered_spritesizeram16);
+ UINT16 *size = (UINT16 *)(m_spritesizeram16.get());
+ UINT16 *bsize = (UINT16 *)(m_buffered_spritesizeram16.get());
offs_t offs;
while (machine().input().code_pressed(KEYCODE_SLASH)) ;
if (m_spritesizeram16) /* FCU controller */
@@ -857,8 +857,8 @@ static void toaplan1_draw_sprite_custom(screen_device &screen, bitmap_ind16 &des
void toaplan1_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
{
- UINT16 *source = (UINT16 *)m_buffered_spriteram;
- UINT16 *size = (UINT16 *)m_buffered_spritesizeram16;
+ UINT16 *source = (UINT16 *)m_buffered_spriteram.get();
+ UINT16 *size = (UINT16 *)m_buffered_spritesizeram16.get();
int fcu_flipscreen = m_fcu_flipscreen;
int offs;
@@ -934,7 +934,7 @@ UINT32 toaplan1_rallybik_state::screen_update_rallybik(screen_device &screen, bi
toaplan1_log_vram();
- m_spritegen->draw_sprites_to_tempbitmap(cliprect, m_buffered_spriteram, m_spriteram.bytes());
+ m_spritegen->draw_sprites_to_tempbitmap(cliprect, m_buffered_spriteram.get(), m_spriteram.bytes());
// first draw everything, including "disabled" tiles and priority 0
m_pf1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
@@ -992,7 +992,7 @@ void toaplan1_rallybik_state::screen_eof_rallybik(screen_device &screen, bool st
// rising edge
if (state)
{
- memcpy(m_buffered_spriteram, m_spriteram, m_spriteram.bytes());
+ memcpy(m_buffered_spriteram.get(), m_spriteram, m_spriteram.bytes());
}
}
@@ -1001,8 +1001,8 @@ void toaplan1_state::screen_eof_toaplan1(screen_device &screen, bool state)
// rising edge
if (state)
{
- memcpy(m_buffered_spriteram, m_spriteram, m_spriteram.bytes());
- memcpy(m_buffered_spritesizeram16, m_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE);
+ memcpy(m_buffered_spriteram.get(), m_spriteram, m_spriteram.bytes());
+ memcpy(m_buffered_spritesizeram16.get(), m_spritesizeram16.get(), TOAPLAN1_SPRITESIZERAM_SIZE);
}
}
@@ -1011,8 +1011,8 @@ void toaplan1_state::screen_eof_samesame(screen_device &screen, bool state)
// rising edge
if (state)
{
- memcpy(m_buffered_spriteram, m_spriteram, m_spriteram.bytes());
- memcpy(m_buffered_spritesizeram16, m_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE);
+ memcpy(m_buffered_spriteram.get(), m_spriteram, m_spriteram.bytes());
+ memcpy(m_buffered_spritesizeram16.get(), m_spritesizeram16.get(), TOAPLAN1_SPRITESIZERAM_SIZE);
m_maincpu->set_input_line(M68K_IRQ_2, HOLD_LINE); /* Frame done */
}
}
diff --git a/src/mame/video/twincobr.cpp b/src/mame/video/twincobr.cpp
index 4f602dd688a..cff357a380a 100644
--- a/src/mame/video/twincobr.cpp
+++ b/src/mame/video/twincobr.cpp
@@ -93,15 +93,15 @@ VIDEO_START_MEMBER(twincobr_state,toaplan0)
twincobr_create_tilemaps();
- m_txvideoram16 = auto_alloc_array_clear(machine(), UINT16, m_txvideoram_size);
- m_fgvideoram16 = auto_alloc_array_clear(machine(), UINT16, m_fgvideoram_size);
- m_bgvideoram16 = auto_alloc_array_clear(machine(), UINT16, m_bgvideoram_size);
+ m_txvideoram16 = make_unique_clear<UINT16[]>(m_txvideoram_size);
+ m_fgvideoram16 = make_unique_clear<UINT16[]>(m_fgvideoram_size);
+ m_bgvideoram16 = make_unique_clear<UINT16[]>(m_bgvideoram_size);
m_display_on = 0;
- save_pointer(NAME(m_txvideoram16), m_txvideoram_size);
- save_pointer(NAME(m_fgvideoram16), m_fgvideoram_size);
- save_pointer(NAME(m_bgvideoram16), m_bgvideoram_size);
+ save_pointer(NAME(m_txvideoram16.get()), m_txvideoram_size);
+ save_pointer(NAME(m_fgvideoram16.get()), m_fgvideoram_size);
+ save_pointer(NAME(m_bgvideoram16.get()), m_bgvideoram_size);
save_item(NAME(m_txoffs));
save_item(NAME(m_fgoffs));
save_item(NAME(m_bgoffs));
diff --git a/src/mame/video/unico.cpp b/src/mame/video/unico.cpp
index ff18803010f..a6c335a5625 100644
--- a/src/mame/video/unico.cpp
+++ b/src/mame/video/unico.cpp
@@ -102,7 +102,7 @@ READ16_MEMBER(unico_state::unico_vram_r) { return m_vram[offset]; }
WRITE16_MEMBER(unico_state::unico_vram_w)
{
- UINT16 *vram = m_vram;
+ UINT16 *vram = m_vram.get();
int tile = ((offset / 0x2000) + 1) % 3;
COMBINE_DATA(&vram[offset]);
m_tilemap[tile]->mark_tile_dirty((offset & 0x1fff)/2);
@@ -127,13 +127,13 @@ WRITE16_MEMBER(unico_state::unico_spriteram_w) { COMBINE_DATA(&m_spriteram[offs
VIDEO_START_MEMBER(unico_state,unico)
{
- m_vram = auto_alloc_array_clear(machine(), UINT16, 0xc000 / 2);
- m_scroll = auto_alloc_array_clear(machine(), UINT16, 0x18 / 2);
- m_spriteram = auto_alloc_array_clear(machine(), UINT16, 0x800 / 2);
+ m_vram = make_unique_clear<UINT16[]>(0xc000 / 2);
+ m_scroll = make_unique_clear<UINT16[]>(0x18 / 2);
+ m_spriteram = make_unique_clear<UINT16[]>(0x800 / 2);
- save_pointer(NAME(m_vram), 0xc000/2);
- save_pointer(NAME(m_scroll), 0x18/2);
- save_pointer(NAME(m_spriteram), 0x800/2);
+ save_pointer(NAME(m_vram.get()), 0xc000/2);
+ save_pointer(NAME(m_scroll.get()), 0x18/2);
+ save_pointer(NAME(m_spriteram.get()), 0x800/2);
m_tilemap[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(unico_state::get_tile_info),this),TILEMAP_SCAN_ROWS,
16,16, 0x40, 0x40);
@@ -191,7 +191,7 @@ VIDEO_START_MEMBER(unico_state,unico)
void unico_state::unico_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect)
{
- UINT16 *spriteram16 = m_spriteram;
+ UINT16 *spriteram16 = m_spriteram.get();
int offs;
/* Draw them backwards, for pdrawgfx */
diff --git a/src/mame/video/vs920a.cpp b/src/mame/video/vs920a.cpp
index 6e88864c216..7d1c973af55 100644
--- a/src/mame/video/vs920a.cpp
+++ b/src/mame/video/vs920a.cpp
@@ -48,8 +48,8 @@ void vs920a_text_tilemap_device::device_start()
if(!m_gfxdecode->started())
throw device_missing_dependencies();
- m_vram = (UINT16*)auto_alloc_array_clear(this->machine(), UINT16, 0x1000/2);
- save_pointer(NAME(m_vram), 0x1000/2);
+ m_vram = make_unique_clear<UINT16[]>(0x1000/2);
+ save_pointer(NAME(m_vram.get()), 0x1000/2);
save_item(NAME(m_pal_base));
diff --git a/src/mame/video/vs920a.h b/src/mame/video/vs920a.h
index 15dee511634..5d945a86631 100644
--- a/src/mame/video/vs920a.h
+++ b/src/mame/video/vs920a.h
@@ -10,7 +10,7 @@ public:
static void set_gfx_region(device_t &device, int gfxregion);
tilemap_t* m_tmap;
- UINT16* m_vram;
+ std::unique_ptr<UINT16[]> m_vram;
UINT16 m_pal_base;
TILE_GET_INFO_MEMBER(get_tile_info);