From 27b1f00813cb9c38ce27fb9ef5720cfe838e19b8 Mon Sep 17 00:00:00 2001 From: cam900 Date: Sat, 7 Apr 2018 18:57:18 +0900 Subject: Convert m_pens, m_local_paletteram into std::unique_ptr, Minor cleanup --- src/devices/video/tlc34076.cpp | 29 +++++++++++++++++------------ src/devices/video/tlc34076.h | 4 ++-- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/devices/video/tlc34076.cpp b/src/devices/video/tlc34076.cpp index f1d01bd87d5..9d25c044eeb 100644 --- a/src/devices/video/tlc34076.cpp +++ b/src/devices/video/tlc34076.cpp @@ -53,9 +53,15 @@ tlc34076_device::tlc34076_device(const machine_config &mconfig, const char *tag, //------------------------------------------------- void tlc34076_device::device_start() { - save_item(NAME(m_local_paletteram)); + for (int i = 0; i < 3; i++) + { + m_local_paletteram[i] = std::make_unique(0x100); + save_pointer(NAME(m_local_paletteram[i].get()), 0x100, i); + } + m_pens = std::make_unique(0x100); + save_item(NAME(m_regs)); - save_item(NAME(m_pens)); + save_pointer(NAME(m_pens.get()), 0x100); save_item(NAME(m_writeindex)); save_item(NAME(m_readindex)); @@ -97,9 +103,9 @@ const rgb_t *tlc34076_device::get_pens() if ((i & m_regs[PIXEL_READ_MASK]) == i) { - r = m_local_paletteram[3 * i + 0]; - g = m_local_paletteram[3 * i + 1]; - b = m_local_paletteram[3 * i + 2]; + r = m_local_paletteram[0][i]; + g = m_local_paletteram[1][i]; + b = m_local_paletteram[2][i]; if (m_dacbits == 6) { @@ -118,7 +124,7 @@ const rgb_t *tlc34076_device::get_pens() m_pens[i] = rgb_t(r, g, b); } - return m_pens; + return m_pens.get(); } @@ -140,9 +146,8 @@ READ8_MEMBER( tlc34076_device::read ) case PALETTE_DATA: if (m_readindex == 0) { - m_palettedata[0] = m_local_paletteram[3 * m_regs[PALETTE_READ_ADDR] + 0]; - m_palettedata[1] = m_local_paletteram[3 * m_regs[PALETTE_READ_ADDR] + 1]; - m_palettedata[2] = m_local_paletteram[3 * m_regs[PALETTE_READ_ADDR] + 2]; + for (int i = 0; i < 3; i++) + m_palettedata[i] = m_local_paletteram[i][m_regs[PALETTE_READ_ADDR]]; } result = m_palettedata[m_readindex++]; if (m_readindex == 3) @@ -181,9 +186,9 @@ WRITE8_MEMBER( tlc34076_device::write ) m_palettedata[m_writeindex++] = data; if (m_writeindex == 3) { - m_local_paletteram[3 * m_regs[PALETTE_WRITE_ADDR] + 0] = m_palettedata[0]; - m_local_paletteram[3 * m_regs[PALETTE_WRITE_ADDR] + 1] = m_palettedata[1]; - m_local_paletteram[3 * m_regs[PALETTE_WRITE_ADDR] + 2] = m_palettedata[2]; + for (int i = 0; i < 3; i++) + m_local_paletteram[i][m_regs[PALETTE_WRITE_ADDR]] = m_palettedata[i]; + m_writeindex = 0; m_regs[PALETTE_WRITE_ADDR]++; } diff --git a/src/devices/video/tlc34076.h b/src/devices/video/tlc34076.h index 6f15a4143fc..ae17c54b3e0 100644 --- a/src/devices/video/tlc34076.h +++ b/src/devices/video/tlc34076.h @@ -46,13 +46,13 @@ protected: private: // internal state - uint8_t m_local_paletteram[0x300]; + std::unique_ptr m_local_paletteram[3]; uint8_t m_regs[0x10]; uint8_t m_palettedata[3]; uint8_t m_writeindex; uint8_t m_readindex; uint8_t m_dacbits; - rgb_t m_pens[0x100]; + std::unique_ptr m_pens; }; -- cgit v1.2.3