From 35fb63c8c35703ebe91ecedf7e7c825842a3d079 Mon Sep 17 00:00:00 2001 From: AJR Date: Fri, 26 Aug 2022 21:51:15 -0400 Subject: monon_color.cpp: Allocate large buffer at machine_start time --- src/mame/misc/monon_color.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mame/misc/monon_color.cpp b/src/mame/misc/monon_color.cpp index 826ee22fc39..a3518b3c3ca 100644 --- a/src/mame/misc/monon_color.cpp +++ b/src/mame/misc/monon_color.cpp @@ -156,7 +156,7 @@ private: void do_palette(int amount, int pal_to_use); rgb_t m_linebuf[240]; - rgb_t m_vidbuffer[320 * 240]; + std::unique_ptr m_vidbuffer; int16_t m_bufpos_y; uint32_t m_bufpos_x; uint8_t m_storeregs[0x20]; @@ -175,6 +175,8 @@ private: void monon_color_state::machine_start() { + m_vidbuffer = std::make_unique(320 * 240); + save_item(NAME(m_dacbyte)); save_item(NAME(m_out4data)); save_item(NAME(m_out3data)); @@ -182,7 +184,7 @@ void monon_color_state::machine_start() save_item(NAME(m_out1data)); save_item(NAME(m_out0data)); save_item(NAME(m_linebuf)); - save_item(NAME(m_vidbuffer)); + save_pointer(NAME(m_vidbuffer), 320 * 240); save_item(NAME(m_bufpos_x)); save_item(NAME(m_bufpos_y)); save_item(NAME(m_curpal)); @@ -225,7 +227,6 @@ void monon_color_state::machine_reset() std::fill(std::begin(m_storeregs), std::end(m_storeregs), 0); std::fill(std::begin(m_linebuf), std::end(m_linebuf), 0); - std::fill(std::begin(m_vidbuffer), std::end(m_vidbuffer), 0); m_sound_direction_iswrite = true; m_sound_latch = 0; @@ -238,7 +239,7 @@ void monon_color_state::machine_reset() uint32_t monon_color_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - rgb_t* videoram = m_vidbuffer; + rgb_t* videoram = m_vidbuffer.get(); for (int y = 0; y < 240; y++) { -- cgit v1.2.3