From 0a144d17f30a8d5e5246f5ce349ce9a7dfecc925 Mon Sep 17 00:00:00 2001 From: Sven Schnelle Date: Wed, 27 Jun 2018 11:16:23 +0200 Subject: nereid: add support for reading colormap entries --- src/devices/video/nereid.cpp | 13 +++++++++---- src/devices/video/nereid.h | 3 ++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/devices/video/nereid.cpp b/src/devices/video/nereid.cpp index 1ecb49399be..02c2aed1600 100644 --- a/src/devices/video/nereid.cpp +++ b/src/devices/video/nereid.cpp @@ -48,12 +48,12 @@ READ16_MEMBER(nereid_device::ctrl_r) case NEREID_RED_DATA: return 0xff00 | m_red; case NEREID_GREEN_DATA: - return 0xff00 | m_red; + return 0xff00 | m_green; case NEREID_BLUE_DATA: - return 0xff00 | m_red; + return 0xff00 | m_blue; case NEREID_INDEX: return 0xff00 | m_index; - case NEREID_STROBE: + case NEREID_WRITE_STROBE: return 0xff00; case NEREID_PLANE_MASK: return 0xff00 | m_plane_mask; @@ -80,11 +80,16 @@ WRITE16_MEMBER(nereid_device::ctrl_w) case NEREID_INDEX: m_index = ~data; break; - case NEREID_STROBE: + case NEREID_WRITE_STROBE: LOG("NEREID: set color index %u: rgb_t(%u,%u,%u)\n", m_index, m_red, m_green, m_blue); m_palette[m_index] = rgb_t(m_red, m_green, m_blue); break; + case NEREID_READ_STROBE: + m_red = (m_palette[m_index]).r(); + m_green = (m_palette[m_index]).g(); + m_blue = (m_palette[m_index]).b(); + break; case NEREID_PLANE_MASK: m_plane_mask = data; break; diff --git a/src/devices/video/nereid.h b/src/devices/video/nereid.h index ccd7c6c6622..3a5760be2a8 100644 --- a/src/devices/video/nereid.h +++ b/src/devices/video/nereid.h @@ -27,7 +27,8 @@ private: static constexpr int NEREID_BLUE_DATA=0x5b; static constexpr int NEREID_INDEX=0x5c; static constexpr int NEREID_PLANE_MASK=0x5d; - static constexpr int NEREID_STROBE=0x78; + static constexpr int NEREID_WRITE_STROBE=0x78; + static constexpr int NEREID_READ_STROBE=0x7c; rgb_t m_palette[256]; -- cgit v1.2.3 From 05e36cd5b57e283b271e340ffb81fa502823ff4e Mon Sep 17 00:00:00 2001 From: Sven Schnelle Date: Mon, 2 Jul 2018 22:04:01 +0200 Subject: nereid: add save_item() for missing member --- src/devices/video/nereid.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/devices/video/nereid.cpp b/src/devices/video/nereid.cpp index 02c2aed1600..513154f76f4 100644 --- a/src/devices/video/nereid.cpp +++ b/src/devices/video/nereid.cpp @@ -31,6 +31,7 @@ void nereid_device::device_start() save_item(NAME(m_blue)); save_item(NAME(m_index)); save_item(NAME(m_palette)); + save_item(NAME(m_plane_mask)); } void nereid_device::device_reset() -- cgit v1.2.3