Previous 199869 Revisions Next

r40047 Wednesday 29th July, 2015 at 13:55:59 UTC by Dirk Best
camplynx: use standard 3-bit rgb palette
[src/mess/drivers]camplynx.c

trunk/src/mess/drivers/camplynx.c
r248558r248559
127127   DECLARE_MACHINE_RESET(lynx128k);
128128   MC6845_UPDATE_ROW(lynx128k_update_row);
129129   // common
130   DECLARE_PALETTE_INIT(camplynx);
131130   required_device<palette_device> m_palette;
132131private:
133132   UINT8 m_port80;
r248558r248559
464463   m_maincpu->set_input_line(0, data);
465464}
466465
467
468static const UINT8 lynx48k_palette[8*3] =
469{
470   0x00, 0x00, 0x00,   /*  0 Black     */
471   0x00, 0x00, 0xff,   /*  1 Blue      */
472   0xff, 0x00, 0x00,   /*  2 Red       */
473   0xff, 0x00, 0xff,   /*  3 Magenta       */
474   0x00, 0xff, 0x00,   /*  4 Green     */
475   0x00, 0xff, 0xff,   /*  5 Cyan      */
476   0xff, 0xff, 0x00,   /*  6 Yellow        */
477   0xff, 0xff, 0xff,   /*  7 White     */
478};
479
480PALETTE_INIT_MEMBER(camplynx_state, camplynx)
481{
482   UINT8 r, b, g, i=0, color_count = 8;
483
484   while (color_count--)
485   {
486      r = lynx48k_palette[i++]; g = lynx48k_palette[i++]; b = lynx48k_palette[i++];
487      palette.set_pen_color(7-color_count, rgb_t(r, g, b));
488   }
489}
490
491466MC6845_UPDATE_ROW( camplynx_state::lynx48k_update_row )
492467{
493468   UINT8 *RAM = machine().root_device().memregion("maincpu")->base();
494   const rgb_t *palette = m_palette->palette()->entry_list_raw();
495469   UINT8 r,g,b,x;
496470   UINT32 *p = &bitmap.pix32(y);
497471   UINT16 mem = ((ma << 2) + (ra << 5)) & 0x3fff;
r248558r248559
502476      g = RAM[0x1c000+mem+x];
503477      b = RAM[0x10000+mem+x];
504478
505      *p++ = palette[(BIT(r, 7) << 1) | (BIT(g, 7) << 2) | (BIT(b, 7))];
506      *p++ = palette[(BIT(r, 6) << 1) | (BIT(g, 6) << 2) | (BIT(b, 6))];
507      *p++ = palette[(BIT(r, 5) << 1) | (BIT(g, 5) << 2) | (BIT(b, 5))];
508      *p++ = palette[(BIT(r, 4) << 1) | (BIT(g, 4) << 2) | (BIT(b, 4))];
509      *p++ = palette[(BIT(r, 3) << 1) | (BIT(g, 3) << 2) | (BIT(b, 3))];
510      *p++ = palette[(BIT(r, 2) << 1) | (BIT(g, 2) << 2) | (BIT(b, 2))];
511      *p++ = palette[(BIT(r, 1) << 1) | (BIT(g, 1) << 2) | (BIT(b, 1))];
512      *p++ = palette[(BIT(r, 0) << 1) | (BIT(g, 0) << 2) | (BIT(b, 0))];
479      *p++ = m_palette->pen_color((BIT(b, 7) << 2) | (BIT(g, 7) << 1) | (BIT(r, 7)));
480      *p++ = m_palette->pen_color((BIT(b, 6) << 2) | (BIT(g, 6) << 1) | (BIT(r, 6)));
481      *p++ = m_palette->pen_color((BIT(b, 5) << 2) | (BIT(g, 5) << 1) | (BIT(r, 5)));
482      *p++ = m_palette->pen_color((BIT(b, 4) << 2) | (BIT(g, 4) << 1) | (BIT(r, 4)));
483      *p++ = m_palette->pen_color((BIT(b, 3) << 2) | (BIT(g, 3) << 1) | (BIT(r, 3)));
484      *p++ = m_palette->pen_color((BIT(b, 2) << 2) | (BIT(g, 2) << 1) | (BIT(r, 2)));
485      *p++ = m_palette->pen_color((BIT(b, 1) << 2) | (BIT(g, 1) << 1) | (BIT(r, 1)));
486      *p++ = m_palette->pen_color((BIT(b, 0) << 2) | (BIT(g, 0) << 1) | (BIT(r, 0)));
513487   }
514488}
515489
516490MC6845_UPDATE_ROW( camplynx_state::lynx128k_update_row )
517491{
518492   UINT8 *RAM = machine().root_device().memregion("maincpu")->base();
519   const rgb_t *palette = m_palette->palette()->entry_list_raw();
520493   UINT8 r,g,b,x;
521494   UINT32 green_bank, *p = &bitmap.pix32(y);
522495   UINT16 mem = ((ma << 2) + (ra << 6)) & 0x3fff;
r248558r248559
532505      b = RAM[0x24000+mem+x];
533506      g = RAM[green_bank+x];
534507
535      *p++ = palette[(BIT(r, 7) << 1) | (BIT(g, 7) << 2) | (BIT(b, 7))];
536      *p++ = palette[(BIT(r, 6) << 1) | (BIT(g, 6) << 2) | (BIT(b, 6))];
537      *p++ = palette[(BIT(r, 5) << 1) | (BIT(g, 5) << 2) | (BIT(b, 5))];
538      *p++ = palette[(BIT(r, 4) << 1) | (BIT(g, 4) << 2) | (BIT(b, 4))];
539      *p++ = palette[(BIT(r, 3) << 1) | (BIT(g, 3) << 2) | (BIT(b, 3))];
540      *p++ = palette[(BIT(r, 2) << 1) | (BIT(g, 2) << 2) | (BIT(b, 2))];
541      *p++ = palette[(BIT(r, 1) << 1) | (BIT(g, 1) << 2) | (BIT(b, 1))];
542      *p++ = palette[(BIT(r, 0) << 1) | (BIT(g, 0) << 2) | (BIT(b, 0))];
508      *p++ = m_palette->pen_color((BIT(b, 7) << 2) | (BIT(g, 7) << 1) | (BIT(r, 7)));
509      *p++ = m_palette->pen_color((BIT(b, 6) << 2) | (BIT(g, 6) << 1) | (BIT(r, 6)));
510      *p++ = m_palette->pen_color((BIT(b, 5) << 2) | (BIT(g, 5) << 1) | (BIT(r, 5)));
511      *p++ = m_palette->pen_color((BIT(b, 4) << 2) | (BIT(g, 4) << 1) | (BIT(r, 4)));
512      *p++ = m_palette->pen_color((BIT(b, 3) << 2) | (BIT(g, 3) << 1) | (BIT(r, 3)));
513      *p++ = m_palette->pen_color((BIT(b, 2) << 2) | (BIT(g, 2) << 1) | (BIT(r, 2)));
514      *p++ = m_palette->pen_color((BIT(b, 1) << 2) | (BIT(g, 1) << 1) | (BIT(r, 1)));
515      *p++ = m_palette->pen_color((BIT(b, 0) << 2) | (BIT(g, 0) << 1) | (BIT(r, 0)));
543516   }
544517}
545518
r248558r248559
557530   MCFG_SCREEN_SIZE(512, 480)
558531   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 479)
559532   MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
560   MCFG_PALETTE_ADD("palette", 8)
561   MCFG_PALETTE_INIT_OWNER(camplynx_state, camplynx)
562533
534   MCFG_PALETTE_ADD_3BIT_RGB("palette")
535
563536   /* sound hardware */
564537   MCFG_SPEAKER_STANDARD_MONO("mono")
565538   MCFG_SOUND_ADD("dac", DAC, 0)
r248558r248559
595568   MCFG_SCREEN_SIZE(512, 480)
596569   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 479)
597570   MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
598   MCFG_PALETTE_ADD("palette", 8)
599   MCFG_PALETTE_INIT_OWNER(camplynx_state, camplynx)
600571
572   MCFG_PALETTE_ADD_3BIT_RGB("palette")
573
601574   /* sound hardware */
602575   MCFG_SPEAKER_STANDARD_MONO("mono")
603576   MCFG_SOUND_ADD("dac", DAC, 0)


Previous 199869 Revisions Next


© 1997-2024 The MAME Team