Previous 199869 Revisions Next

r33609 Monday 1st December, 2014 at 15:45:26 UTC by David Haywood
add supduck palette type to emupal.c and use that (nw)
[src/emu]emupal.c emupal.h
[src/mame/drivers]alpha68k.c supduck.c

trunk/src/emu/emupal.c
r242120r242121
927927   return rgb_t(r, g, b);
928928}
929929
930rgb_t raw_to_rgb_converter::xRGBRRRRGGGGBBBB_decoder(UINT32 raw)
930rgb_t raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit0_decoder(UINT32 raw)
931931{
932932   UINT8 r = pal5bit(((raw >> 7) & 0x1e) | ((raw >> 14) & 0x01));
933933   UINT8 g = pal5bit(((raw >> 3) & 0x1e) | ((raw >> 13) & 0x01));
934934   UINT8 b = pal5bit(((raw << 1) & 0x1e) | ((raw >> 12) & 0x01));
935935   return rgb_t(r, g, b);
936936}
937
938rgb_t raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit4_decoder(UINT32 raw)
939{
940   UINT8 r = pal5bit(((raw >> 8) & 0x0f) | ((raw >> 10) & 0x10));
941   UINT8 g = pal5bit(((raw >> 4) & 0x0f) | ((raw >> 9)  & 0x10));
942   UINT8 b = pal5bit(((raw >> 0) & 0x0f) | ((raw >> 8)  & 0x10));
943   return rgb_t(r, g, b);
944}
trunk/src/emu/emupal.h
r242120r242121
143143#define PALETTE_FORMAT_RRRRRGGGGGBBBBBx raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 11,6,1>)
144144#define PALETTE_FORMAT_GGGGGRRRRRBBBBBx raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 6,11,1>)
145145#define PALETTE_FORMAT_RRRRGGGGBBBBRGBx raw_to_rgb_converter(2, &raw_to_rgb_converter::RRRRGGGGBBBBRGBx_decoder)
146#define PALETTE_FORMAT_xRGBRRRRGGGGBBBB raw_to_rgb_converter(2, &raw_to_rgb_converter::xRGBRRRRGGGGBBBB_decoder)
146#define PALETTE_FORMAT_xRGBRRRRGGGGBBBB_bit0 raw_to_rgb_converter(2, &raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit0_decoder)
147#define PALETTE_FORMAT_xRGBRRRRGGGGBBBB_bit4 raw_to_rgb_converter(2, &raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit4_decoder)
147148
148149// standard 5-6-5 formats
149150#define PALETTE_FORMAT_RRRRRGGGGGGBBBBB raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,6,5, 11,5,0>)
r242120r242121
307308   static rgb_t BBGGRRII_decoder(UINT32 raw);
308309   static rgb_t IRRRRRGGGGGBBBBB_decoder(UINT32 raw);
309310   static rgb_t RRRRGGGGBBBBRGBx_decoder(UINT32 raw);  // bits 3/2/1 are LSb
310   static rgb_t xRGBRRRRGGGGBBBB_decoder(UINT32 raw);  // bits 14/13/12 are LSb
311   static rgb_t xRGBRRRRGGGGBBBB_bit0_decoder(UINT32 raw);  // bits 14/13/12 are LSb
312   static rgb_t xRGBRRRRGGGGBBBB_bit4_decoder(UINT32 raw);  // bits 14/13/12 are MSb
311313
312314private:
313315   // internal data
trunk/src/mame/drivers/alpha68k.c
r242120r242121
20982098
20992099   MCFG_GFXDECODE_ADD("gfxdecode", "palette", alpha68k_II)
21002100   MCFG_PALETTE_ADD("palette", 2048)
2101   MCFG_PALETTE_FORMAT(xRGBRRRRGGGGBBBB)
2101   MCFG_PALETTE_FORMAT(xRGBRRRRGGGGBBBB_bit0)
21022102
21032103   MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k)
21042104
r242120r242121
21512151
21522152   MCFG_GFXDECODE_ADD("gfxdecode", "palette", alpha68k_II)
21532153   MCFG_PALETTE_ADD("palette", 2048)
2154   MCFG_PALETTE_FORMAT(xRGBRRRRGGGGBBBB)
2154   MCFG_PALETTE_FORMAT(xRGBRRRRGGGGBBBB_bit0)
21552155
21562156   MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k)
21572157
r242120r242121
21972197
21982198   MCFG_GFXDECODE_ADD("gfxdecode", "palette", alpha68k_V)
21992199   MCFG_PALETTE_ADD("palette", 4096)
2200   MCFG_PALETTE_FORMAT(xRGBRRRRGGGGBBBB)
2200   MCFG_PALETTE_FORMAT(xRGBRRRRGGGGBBBB_bit0)
22012201
22022202   MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k)
22032203
r242120r242121
22432243
22442244   MCFG_GFXDECODE_ADD("gfxdecode", "palette", alpha68k_V)
22452245   MCFG_PALETTE_ADD("palette", 4096)
2246   MCFG_PALETTE_FORMAT(xRGBRRRRGGGGBBBB)
2246   MCFG_PALETTE_FORMAT(xRGBRRRRGGGGBBBB_bit0)
22472247
22482248   MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k)
22492249
trunk/src/mame/drivers/supduck.c
r242120r242121
3636         m_text_videoram(*this, "textvideoram"),
3737         m_fore_videoram(*this, "forevideoram"),
3838         m_back_videoram(*this, "backvideoram"),
39         m_paletteram(*this, "paletteram"),
4039         m_gfxdecode(*this, "gfxdecode"),
4140         m_palette(*this, "palette")
4241   { }
r242120r242121
5049   required_shared_ptr<UINT16> m_text_videoram;
5150   required_shared_ptr<UINT16> m_fore_videoram;
5251   required_shared_ptr<UINT16> m_back_videoram;
53   required_shared_ptr<UINT16> m_paletteram;
5452
5553   required_device<gfxdecode_device> m_gfxdecode;
5654   required_device<palette_device> m_palette;
r242120r242121
6866
6967   DECLARE_WRITE16_MEMBER(supduck_4000_w);
7068   DECLARE_WRITE16_MEMBER(supduck_4002_w);
71   DECLARE_WRITE16_MEMBER(supduck_paletteram_w);
7269
7370   TILEMAP_MAPPER_MEMBER(supduk_tilemap_scan);
7471
r242120r242121
245242{
246243}
247244
248WRITE16_MEMBER(supduck_state::supduck_paletteram_w)
249{
250   int r, g, b;
251   data = COMBINE_DATA(&m_paletteram[offset]);
252245
253   r = ((data >> 8) & 0x0f);
254   if (data & 0x4000) r |= 0x10;
255
256   g = ((data >> 4 ) & 0x0f);
257   if (data & 0x2000) g |= 0x10;
258
259   b = ((data >> 0 ) & 0x0f);
260   if (data & 0x1000) b |= 0x10;
261
262   m_palette->set_pen_color (offset, rgb_t(r<<3, g<<3, b<<3));
263}
264
265246WRITE16_MEMBER(supduck_state::supduck_4002_w)
266247{
267248   data &= mem_mask;
r242120r242121
308289   AM_RANGE(0xfec000, 0xfecfff) AM_RAM_WRITE(text_videoram_w) AM_SHARE("textvideoram")
309290   AM_RANGE(0xff0000, 0xff3fff) AM_RAM_WRITE(back_videoram_w) AM_SHARE("backvideoram")
310291   AM_RANGE(0xff4000, 0xff7fff) AM_RAM_WRITE(fore_videoram_w) AM_SHARE("forevideoram")
311   AM_RANGE(0xff8000, 0xff87ff) AM_RAM_WRITE(supduck_paletteram_w) AM_SHARE("paletteram") // AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
292   AM_RANGE(0xff8000, 0xff87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
312293   AM_RANGE(0xffc000, 0xffffff) AM_RAM /* working RAM */
313294ADDRESS_MAP_END
314295
r242120r242121
510491   MCFG_GFXDECODE_ADD("gfxdecode", "palette", supduck)
511492
512493   MCFG_PALETTE_ADD("palette", 0x800/2)
513//  MCFG_PALETTE_FORMAT(xRGBRRRRGGGGBBBB) // can't use this, the RGB bits are the lowest bits with this format, for this game they're the highest bits
494   MCFG_PALETTE_FORMAT(xRGBRRRRGGGGBBBB_bit4)
514495
515496   /* sound hardware */
516497   MCFG_SPEAKER_STANDARD_MONO("mono")


Previous 199869 Revisions Next


© 1997-2024 The MAME Team