diff options
Diffstat (limited to 'src/emu')
-rw-r--r-- | src/emu/emupal.c | 10 | ||||
-rw-r--r-- | src/emu/emupal.h | 6 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/emu/emupal.c b/src/emu/emupal.c index b5712fa4b95..0831d50a712 100644 --- a/src/emu/emupal.c +++ b/src/emu/emupal.c @@ -927,10 +927,18 @@ rgb_t raw_to_rgb_converter::RRRRGGGGBBBBRGBx_decoder(UINT32 raw) return rgb_t(r, g, b); } -rgb_t raw_to_rgb_converter::xRGBRRRRGGGGBBBB_decoder(UINT32 raw) +rgb_t raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit0_decoder(UINT32 raw) { UINT8 r = pal5bit(((raw >> 7) & 0x1e) | ((raw >> 14) & 0x01)); UINT8 g = pal5bit(((raw >> 3) & 0x1e) | ((raw >> 13) & 0x01)); UINT8 b = pal5bit(((raw << 1) & 0x1e) | ((raw >> 12) & 0x01)); return rgb_t(r, g, b); } + +rgb_t raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit4_decoder(UINT32 raw) +{ + UINT8 r = pal5bit(((raw >> 8) & 0x0f) | ((raw >> 10) & 0x10)); + UINT8 g = pal5bit(((raw >> 4) & 0x0f) | ((raw >> 9) & 0x10)); + UINT8 b = pal5bit(((raw >> 0) & 0x0f) | ((raw >> 8) & 0x10)); + return rgb_t(r, g, b); +} diff --git a/src/emu/emupal.h b/src/emu/emupal.h index e8e0ebaf3a5..e11510745b0 100644 --- a/src/emu/emupal.h +++ b/src/emu/emupal.h @@ -143,7 +143,8 @@ #define PALETTE_FORMAT_RRRRRGGGGGBBBBBx raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 11,6,1>) #define PALETTE_FORMAT_GGGGGRRRRRBBBBBx raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 6,11,1>) #define PALETTE_FORMAT_RRRRGGGGBBBBRGBx raw_to_rgb_converter(2, &raw_to_rgb_converter::RRRRGGGGBBBBRGBx_decoder) -#define PALETTE_FORMAT_xRGBRRRRGGGGBBBB raw_to_rgb_converter(2, &raw_to_rgb_converter::xRGBRRRRGGGGBBBB_decoder) +#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) // standard 5-6-5 formats #define PALETTE_FORMAT_RRRRRGGGGGGBBBBB raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,6,5, 11,5,0>) @@ -307,7 +308,8 @@ public: static rgb_t BBGGRRII_decoder(UINT32 raw); static rgb_t IRRRRRGGGGGBBBBB_decoder(UINT32 raw); static rgb_t RRRRGGGGBBBBRGBx_decoder(UINT32 raw); // bits 3/2/1 are LSb - static rgb_t xRGBRRRRGGGGBBBB_decoder(UINT32 raw); // bits 14/13/12 are LSb + static rgb_t xRGBRRRRGGGGBBBB_bit0_decoder(UINT32 raw); // bits 14/13/12 are LSb + static rgb_t xRGBRRRRGGGGBBBB_bit4_decoder(UINT32 raw); // bits 14/13/12 are MSb private: // internal data |