Previous 199869 Revisions Next

r36241 Wednesday 4th March, 2015 at 14:38:15 UTC by Carl
(mess) pasogo: add selectable actual, terrible contrast (nw)
[src/mess/drivers]pasogo.c

trunk/src/mess/drivers/pasogo.c
r244752r244753
121121      , m_cart(*this, "cartslot")
122122      , m_ems(*this, "ems")
123123      , m_vram(*this, "vram")
124      , m_palette(*this, "palette")
124125   { }
125126
126127   required_device<cpu_device> m_maincpu;
127128   required_device<generic_slot_device> m_cart;
128129   required_device<address_map_bank_device> m_ems;
129130   required_shared_ptr<UINT16> m_vram;
131   required_device<palette_device> m_palette;
130132
131133   DECLARE_READ16_MEMBER(ems_r);
132134   DECLARE_WRITE16_MEMBER(ems_w);
r244752r244753
159161   void machine_reset();
160162   void machine_start();
161163
162   DECLARE_PALETTE_INIT(pasogo);
163164   UINT32 screen_update_pasogo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
164165   INTERRUPT_GEN_MEMBER(pasogo_interrupt);
165166   TIMER_DEVICE_CALLBACK_MEMBER(vg230_timer);
167   DECLARE_INPUT_CHANGED_MEMBER(contrast);
166168
167169   memory_region *m_cart_rom;
168170   UINT8 m_ems_index;
r244752r244753
452454
453455
454456static INPUT_PORTS_START( pasogo )
455PORT_START("JOY")
457   PORT_START("JOY")
456458//  PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SELECT)  PORT_NAME("select")
457459//  PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START) PORT_NAME("start")
458460   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("O") /*?*/
r244752r244753
463465   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
464466   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("a") PORT_CODE(KEYCODE_A)
465467   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("b") PORT_CODE(KEYCODE_B)
468   PORT_START("COLOR")
469   PORT_CONFNAME(0x01, 0x01, "Contrast") PORT_CHANGED_MEMBER(DEVICE_SELF, pasogo_state, contrast, 0)
470   PORT_CONFSETTING(0x00, "Actual")
471   PORT_CONFSETTING(0x01, "Enhanced")
466472INPUT_PORTS_END
467473
468PALETTE_INIT_MEMBER(pasogo_state, pasogo)
474INPUT_CHANGED_MEMBER(pasogo_state::contrast)
469475{
470   palette.set_pen_color(0, rgb_t(80, 130, 130));
471   palette.set_pen_color(1, rgb_t(40, 60, 140));
476   if(newval)
477   {
478      m_palette->set_pen_color(0, rgb_t(80, 130, 130));
479      m_palette->set_pen_color(1, rgb_t(40, 60, 140));
480   }
481   else
482   {
483      m_palette->set_pen_color(0, rgb_t(100, 110, 100));
484      m_palette->set_pen_color(1, rgb_t(90, 80, 110));
485   }
472486}
473487
474
475488UINT32 pasogo_state::screen_update_pasogo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
476489{
477490   UINT8 *vram = (UINT8 *)m_vram.target();
r244752r244753
504517void pasogo_state::machine_reset()
505518{
506519   astring region_tag;
520   ioport_port *color = ioport("COLOR");
507521   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
508522   if (!m_cart_rom)    // this should never happen, since we make carts mandatory!
509523      m_cart_rom = memregion("maincpu");
r244752r244753
511525   membank("bank27")->set_base(m_cart_rom->base());
512526   m_ems_index = 0;
513527   memset(m_ems_bank, 0, sizeof(m_ems_bank));
528   contrast(*color->first_field(), NULL, 0, color->read());
514529}
515530
516531static MACHINE_CONFIG_START( pasogo, pasogo_state )
r244752r244753
541556   MCFG_SCREEN_UPDATE_DRIVER(pasogo_state, screen_update_pasogo)
542557   MCFG_SCREEN_PALETTE("palette")
543558   MCFG_PALETTE_ADD("palette", 2)
544   MCFG_PALETTE_INIT_OWNER(pasogo_state, pasogo)
545559
546560   MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "pasogo_cart")
547561   MCFG_GENERIC_WIDTH(GENERIC_ROM16_WIDTH)


Previous 199869 Revisions Next


© 1997-2024 The MAME Team