fixed decoding for PALETTE_FORMAT_BBGGRRII (nw)

this fixes drivers in xxmissio, superqix and nova2001
This commit is contained in:
Miodrag Milanovic 2014-03-02 11:13:40 +00:00
parent 8e8bcf7eba
commit 5d7d37b8da

View File

@ -146,7 +146,7 @@
#define PALETTE_FORMAT_RRRGGGBB raw_to_rgb_converter(1, &raw_to_rgb_converter::standard_rgb_decoder<3,3,2, 5,2,0>)
// standard 2-2-2-2 formats
#define PALETTE_FORMAT_BBGGRRII raw_to_rgb_converter(1, &raw_to_rgb_converter::standard_irgb_decoder<2,2,2,2, 0,2,4,6>)
#define PALETTE_FORMAT_BBGGRRII raw_to_rgb_converter(1, &raw_to_rgb_converter::BBGGRRII_decoder)
// standard 4-4-4 formats
#define PALETTE_FORMAT_xxxxBBBBGGGGRRRR raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<4,4,4, 0,4,8>)
@ -301,6 +301,15 @@ public:
UINT8 b = (i * palexpand<_BlueBits>(raw >> _BlueShift)) >> 8;
return rgb_t(r, g, b);
}
static rgb_t BBGGRRII_decoder(UINT32 raw)
{
UINT8 i = (raw >> 0) & 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);
}
// other standard decoders
static rgb_t RRRRGGGGBBBBRGBx_decoder(UINT32 raw); // bits 3/2/1 are LSb