diff options
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 |
commit | 42adde9fd5658c8bdf1f24f1970072b8a7db0a54 (patch) | |
tree | 250107b6cdbe992c1a3569ec4dcedf4f706f94c0 /src/mame/video | |
parent | 4facaf6c24e53a17be232c5c3cab31ecca2d0335 (diff) |
auto_alloc_array_clear -> make_unique_clear (nw)
Diffstat (limited to 'src/mame/video')
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); |