summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu
diff options
context:
space:
mode:
author cam900 <dbtlrchl@naver.com>2019-03-30 06:44:25 +0900
committer ajrhacker <ajrhacker@users.noreply.github.com>2019-03-29 17:44:25 -0400
commit8b08ad2ce691219eefa67f8b99baaeecadd35a81 (patch)
tree4a8fea96bbdf44e373d057c56945f0f12cd0fb61 /src/emu
parente4d3e12e25efa7cff945db53990c88628292b512 (diff)
emupal.cpp : Remove MCFGs, Simplify handlers (#4713)
Diffstat (limited to 'src/emu')
-rw-r--r--src/emu/emupal.cpp36
-rw-r--r--src/emu/emupal.h60
2 files changed, 41 insertions, 55 deletions
diff --git a/src/emu/emupal.cpp b/src/emu/emupal.cpp
index 59b77d66ebf..6a998c4849e 100644
--- a/src/emu/emupal.cpp
+++ b/src/emu/emupal.cpp
@@ -337,6 +337,18 @@ palette_device &palette_device::set_format(rrrrggggbbbbrgbx_t, u32 entries)
return *this;
}
+palette_device &palette_device::set_format(xrgbrrrrggggbbbb_bit0_t, u32 entries)
+{
+ set_format(2, &raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit0_decoder, entries);
+ return *this;
+}
+
+palette_device &palette_device::set_format(xrgbrrrrggggbbbb_bit4_t, u32 entries)
+{
+ set_format(2, &raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit4_decoder, entries);
+ return *this;
+}
+
//**************************************************************************
// GENERIC WRITE HANDLERS
@@ -373,35 +385,35 @@ inline void palette_device::update_for_write(offs_t byte_offset, int bytes_modif
// write - write a byte to the base paletteram
//-------------------------------------------------
-WRITE8_MEMBER(palette_device::write8)
+void palette_device::write8(offs_t offset, u8 data)
{
m_paletteram.write8(offset, data);
update_for_write(offset, 1);
}
-WRITE16_MEMBER(palette_device::write16)
+void palette_device::write16(offs_t offset, u16 data, u16 mem_mask)
{
m_paletteram.write16(offset, data, mem_mask);
update_for_write(offset * 2, 2);
}
-WRITE32_MEMBER(palette_device::write32)
+void palette_device::write32(offs_t offset, u32 data, u32 mem_mask)
{
m_paletteram.write32(offset, data, mem_mask);
update_for_write(offset * 4, 4);
}
-READ8_MEMBER(palette_device::read8)
+u8 palette_device::read8(offs_t offset)
{
return m_paletteram.read8(offset);
}
-READ16_MEMBER(palette_device::read16)
+u16 palette_device::read16(offs_t offset)
{
return m_paletteram.read16(offset);
}
-READ32_MEMBER(palette_device::read32)
+u32 palette_device::read32(offs_t offset)
{
return m_paletteram.read32(offset);
}
@@ -412,24 +424,24 @@ READ32_MEMBER(palette_device::read32)
// paletteram
//-------------------------------------------------
-WRITE8_MEMBER(palette_device::write8_ext)
+void palette_device::write8_ext(offs_t offset, u8 data)
{
m_paletteram_ext.write8(offset, data);
update_for_write(offset, 1);
}
-WRITE16_MEMBER(palette_device::write16_ext)
+void palette_device::write16_ext(offs_t offset, u16 data, u16 mem_mask)
{
m_paletteram_ext.write16(offset, data, mem_mask);
update_for_write(offset * 2, 2);
}
-READ8_MEMBER(palette_device::read8_ext)
+u8 palette_device::read8_ext(offs_t offset)
{
return m_paletteram_ext.read8(offset);
}
-READ16_MEMBER(palette_device::read16_ext)
+u16 palette_device::read16_ext(offs_t offset)
{
return m_paletteram_ext.read16(offset);
}
@@ -440,7 +452,7 @@ READ16_MEMBER(palette_device::read16_ext)
// paletteram, updating indirect colors
//-------------------------------------------------
-WRITE8_MEMBER(palette_device::write_indirect)
+void palette_device::write_indirect(offs_t offset, u8 data)
{
m_paletteram.write8(offset, data);
update_for_write(offset, 1, true);
@@ -452,7 +464,7 @@ WRITE8_MEMBER(palette_device::write_indirect)
// paletteram, updating indirect colors
//-------------------------------------------------
-WRITE8_MEMBER(palette_device::write_indirect_ext)
+void palette_device::write_indirect_ext(offs_t offset, u8 data)
{
m_paletteram_ext.write8(offset, data);
update_for_write(offset, 1, true);
diff --git a/src/emu/emupal.h b/src/emu/emupal.h
index 0711bf1a296..b4f52ac2a55 100644
--- a/src/emu/emupal.h
+++ b/src/emu/emupal.h
@@ -97,36 +97,6 @@
//**************************************************************************
-// CONSTANTS
-//**************************************************************************
-
-// exotic 5-5-5 formats
-#define PALETTE_FORMAT_xRGBRRRRGGGGBBBB_bit0 raw_to_rgb_converter(2, &raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit0_decoder)
-#define PALETTE_FORMAT_xRGBRRRRGGGGBBBB_bit4 raw_to_rgb_converter(2, &raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit4_decoder)
-
-//**************************************************************************
-// DEVICE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_PALETTE_ADD(_tag, _entries) \
- MCFG_DEVICE_ADD(_tag, PALETTE, 0) \
- downcast<palette_device &>(*device).set_entries(_entries);
-
-
-#define MCFG_PALETTE_FORMAT(_format) \
- downcast<palette_device &>(*device).set_format(PALETTE_FORMAT_##_format);
-
-
-// not implemented yet
-#if 0
-#define MCFG_PALETTE_ADD_HARDCODED(_tag, _array) \
- MCFG_PALETTE_ADD(_tag, sizeof(_array) / 3) \
- downcast<palette_device &>(*device).set_init(palette_init_delegate(FUNC(palette_device::palette_init_RRRRGGGGBBBB_proms), downcast<palette_device *>(device)));
-#endif
-
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -273,7 +243,9 @@ public:
enum rgb_444_prom_t { RGB_444_PROMS, RRRRGGGGBBBB_PROMS };
// exotic formats
- enum rrrrggggbbbbrgbx_t { RRRRGGGGBBBBRGBx };
+ enum rrrrggggbbbbrgbx_t { RRRRGGGGBBBBRGBx };
+ enum xrgbrrrrggggbbbb_bit0_t { xRGBRRRRGGGGBBBB_bit0 };
+ enum xrgbrrrrggggbbbb_bit4_t { xRGBRRRRGGGGBBBB_bit4 };
// construction/destruction
palette_device(const machine_config &mconfig, const char *tag, device_t *owner, init_delegate &&init, u32 entries = 0U, u32 indirect = 0U);
@@ -358,6 +330,8 @@ public:
palette_device &set_format(grbx_888_t, u32 entries);
palette_device &set_format(bgrx_888_t, u32 entries);
palette_device &set_format(rrrrggggbbbbrgbx_t, u32 entries);
+ palette_device &set_format(xrgbrrrrggggbbbb_bit0_t, u32 entries);
+ palette_device &set_format(xrgbrrrrggggbbbb_bit4_t, u32 entries);
template <typename T> palette_device &set_format(T x, u32 entries, u32 indirect) { set_format(x, entries); set_indirect_entries(indirect); return *this; }
palette_device &set_membits(int membits) { m_membits = membits; m_membits_supplied = true; return *this; }
palette_device &set_endianness(endianness_t endianness) { m_endianness = endianness; m_endianness_supplied = true; return *this; }
@@ -404,18 +378,18 @@ public:
}
// generic read/write handlers
- DECLARE_READ8_MEMBER(read8);
- DECLARE_READ8_MEMBER(read8_ext);
- DECLARE_WRITE8_MEMBER(write8);
- DECLARE_WRITE8_MEMBER(write8_ext);
- DECLARE_WRITE8_MEMBER(write_indirect);
- DECLARE_WRITE8_MEMBER(write_indirect_ext);
- DECLARE_READ16_MEMBER(read16);
- DECLARE_READ16_MEMBER(read16_ext);
- DECLARE_WRITE16_MEMBER(write16);
- DECLARE_WRITE16_MEMBER(write16_ext);
- DECLARE_READ32_MEMBER(read32);
- DECLARE_WRITE32_MEMBER(write32);
+ u8 read8(offs_t offset);
+ u8 read8_ext(offs_t offset);
+ void write8(offs_t offset, u8 data);
+ void write8_ext(offs_t offset, u8 data);
+ void write_indirect(offs_t offset, u8 data);
+ void write_indirect_ext(offs_t offset, u8 data);
+ u16 read16(offs_t offset);
+ u16 read16_ext(offs_t offset);
+ void write16(offs_t offset, u16 data, u16 mem_mask = u16(~0));
+ void write16_ext(offs_t offset, u16 data, u16 mem_mask = u16(~0));
+ u32 read32(offs_t offset);
+ void write32(offs_t offset, u32 data, u32 mem_mask = u32(~0));
// helper to update palette when data changed
void update() { if (!m_init.isnull()) m_init(*this); }