mirror of
https://github.com/holub/mame
synced 2025-07-02 16:49:22 +03:00
emupal: add support for the IIBBGGRR format, only apply intensity bit if
there is a color defined
This commit is contained in:
parent
0448566a4c
commit
b25a7af59f
@ -966,14 +966,22 @@ void palette_device::palette_init_RRRRRGGGGGGBBBBB(palette_device &palette)
|
||||
palette.set_pen_color(i, rgbexpand<5,6,5>(i, 11, 5, 0));
|
||||
}
|
||||
|
||||
|
||||
rgb_t raw_to_rgb_converter::BBGGRRII_decoder(UINT32 raw)
|
||||
{
|
||||
UINT8 i = raw & 3;
|
||||
UINT8 r = pal4bit(((raw >> 0) & 0x0c) | i);
|
||||
UINT8 g = pal4bit(((raw >> 2) & 0x0c) | i);
|
||||
UINT8 b = pal4bit(((raw >> 4) & 0x0c) | i);
|
||||
return rgb_t(r, g, b);
|
||||
UINT8 r = (raw >> 0) & 0x0c;
|
||||
UINT8 g = (raw >> 2) & 0x0c;
|
||||
UINT8 b = (raw >> 4) & 0x0c;
|
||||
return rgb_t(pal4bit(r ? (r | i) : 0), pal4bit(g ? (g | i) : 0), pal4bit(b ? (b | i) : 0));
|
||||
}
|
||||
|
||||
rgb_t raw_to_rgb_converter::IIBBGGRR_decoder(UINT32 raw)
|
||||
{
|
||||
UINT8 i = (raw >> 6) & 3;
|
||||
UINT8 r = (raw << 2) & 0x0c;
|
||||
UINT8 g = (raw ) & 0x0c;
|
||||
UINT8 b = (raw >> 2) & 0x0c;
|
||||
return rgb_t(pal4bit(r ? (r | i) : 0), pal4bit(g ? (g | i) : 0), pal4bit(b ? (b | i) : 0));
|
||||
}
|
||||
|
||||
rgb_t raw_to_rgb_converter::IRRRRRGGGGGBBBBB_decoder(UINT32 raw)
|
||||
|
@ -125,6 +125,7 @@
|
||||
|
||||
// standard 2-2-2-2 formats
|
||||
#define PALETTE_FORMAT_BBGGRRII raw_to_rgb_converter(1, &raw_to_rgb_converter::BBGGRRII_decoder)
|
||||
#define PALETTE_FORMAT_IIBBGGRR raw_to_rgb_converter(1, &raw_to_rgb_converter::IIBBGGRR_decoder)
|
||||
|
||||
// standard 3-3-3 formats
|
||||
#define PALETTE_FORMAT_xxxxxxxBBBGGGRRR raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<3,3,3, 0,3,6>)
|
||||
@ -354,6 +355,7 @@ public:
|
||||
|
||||
// other standard decoders
|
||||
static rgb_t BBGGRRII_decoder(UINT32 raw);
|
||||
static rgb_t IIBBGGRR_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_bit0_decoder(UINT32 raw); // bits 14/13/12 are LSb
|
||||
|
Loading…
Reference in New Issue
Block a user