diff options
| author | 2019-03-30 06:44:25 +0900 | |
|---|---|---|
| committer | 2019-03-29 17:44:25 -0400 | |
| commit | 8b08ad2ce691219eefa67f8b99baaeecadd35a81 (patch) | |
| tree | 4a8fea96bbdf44e373d057c56945f0f12cd0fb61 /src/emu | |
| parent | e4d3e12e25efa7cff945db53990c88628292b512 (diff) | |
emupal.cpp : Remove MCFGs, Simplify handlers (#4713)
Diffstat (limited to 'src/emu')
| -rw-r--r-- | src/emu/emupal.cpp | 36 | ||||
| -rw-r--r-- | src/emu/emupal.h | 60 |
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); } |
