diff options
Diffstat (limited to 'src/mame/drivers/prestige.cpp')
-rw-r--r-- | src/mame/drivers/prestige.cpp | 122 |
1 files changed, 64 insertions, 58 deletions
diff --git a/src/mame/drivers/prestige.cpp b/src/mame/drivers/prestige.cpp index fbc565d4fd6..eb89d393fc1 100644 --- a/src/mame/drivers/prestige.cpp +++ b/src/mame/drivers/prestige.cpp @@ -743,104 +743,110 @@ TIMER_DEVICE_CALLBACK_MEMBER(prestige_state::irq_timer) m_maincpu->set_input_line(0, ASSERT_LINE); } -MACHINE_CONFIG_START(prestige_state::prestige_base) +void prestige_state::prestige_base(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(8'000'000)) // Z84C008 - MCFG_DEVICE_PROGRAM_MAP(prestige_mem) - MCFG_DEVICE_IO_MAP(prestige_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(prestige_state,prestige_int_ack) + Z80(config, m_maincpu, XTAL(8'000'000)); // Z84C008 + m_maincpu->set_addrmap(AS_PROGRAM, &prestige_state::prestige_mem); + m_maincpu->set_addrmap(AS_IO, &prestige_state::prestige_io); + m_maincpu->set_irq_acknowledge_callback(FUNC(prestige_state::prestige_int_ack)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer", prestige_state, irq_timer, attotime::from_hz(200)) + TIMER(config, "irq_timer").configure_periodic(FUNC(prestige_state::irq_timer), attotime::from_hz(200)); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(prestige_state, screen_update_1bpp) - MCFG_SCREEN_SIZE( 240, 100 ) - MCFG_SCREEN_VISIBLE_AREA( 0, 240-1, 0, 100-1 ) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(prestige_state::screen_update_1bpp)); + screen.set_size(240, 100); + screen.set_visarea(0, 240-1, 0, 100-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(prestige_state::prestige_palette), 2); /* cartridge */ - MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "genius_cart") + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "genius_cart"); /* internal ram */ RAM(config, RAM_TAG).set_default_size("32K").set_extra_options("64K"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(prestige_state::glcolor) +void prestige_state::glcolor(machine_config &config) +{ prestige_base(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(glcolor_io) + m_maincpu->set_addrmap(AS_IO, &prestige_state::glcolor_io); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(prestige_state, screen_update_2bpp) - MCFG_SCREEN_SIZE( 160, 80 ) - MCFG_SCREEN_VISIBLE_AREA( 0, 160-1, 0, 80-1 ) + screen_device &screen(*subdevice<screen_device>("screen")); + screen.set_screen_update(FUNC(prestige_state::screen_update_2bpp)); + screen.set_size(160, 80); + screen.set_visarea(0, 160-1, 0, 80-1); subdevice<palette_device>("palette")->set_entries(4).set_init(FUNC(prestige_state::glcolor_palette)); - MCFG_SOFTWARE_LIST_ADD("cart_list", "glcolor") - MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("snotec_cart", "snotec") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cart_list").set_original("glcolor"); + SOFTWARE_LIST(config, "snotec_cart").set_compatible("snotec"); +} -MACHINE_CONFIG_START(prestige_state::glmcolor) +void prestige_state::glmcolor(machine_config &config) +{ glcolor(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(prestige_io) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &prestige_state::prestige_io); +} -MACHINE_CONFIG_START(prestige_state::snotec) +void prestige_state::snotec(machine_config &config) +{ glcolor(config); - MCFG_SOFTWARE_LIST_REMOVE("cart_list") - MCFG_SOFTWARE_LIST_REMOVE("snotec_cart") - MCFG_SOFTWARE_LIST_ADD("cart_list", "snotec") - MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("glcolor_cart", "glcolor") -MACHINE_CONFIG_END + config.device_remove("snotec_cart"); + SOFTWARE_LIST(config.replace(), "cart_list").set_original("snotec"); + SOFTWARE_LIST(config, "glcolor_cart").set_compatible("glcolor"); +} -MACHINE_CONFIG_START(prestige_state::prestige) +void prestige_state::prestige(machine_config &config) +{ prestige_base(config); - MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gl6000sl_cart", "gl6000sl") - MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("misterx_cart", "misterx") - MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gl2000_cart", "gl2000") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "gl6000sl_cart").set_compatible("gl6000sl"); + SOFTWARE_LIST(config, "misterx_cart").set_compatible("misterx"); + SOFTWARE_LIST(config, "gl2000_cart").set_compatible("gl2000"); +} -MACHINE_CONFIG_START(prestige_state::gl6000sl) +void prestige_state::gl6000sl(machine_config &config) +{ prestige_base(config); - MCFG_SOFTWARE_LIST_ADD("cart_list", "gl6000sl") - MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("misterx_cart", "misterx") - MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gl2000_cart", "gl2000") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cart_list").set_original("gl6000sl"); + SOFTWARE_LIST(config, "misterx_cart").set_compatible("misterx"); + SOFTWARE_LIST(config, "gl2000_cart").set_compatible("gl2000"); +} -MACHINE_CONFIG_START(prestige_state::gl7007sl) +void prestige_state::gl7007sl(machine_config &config) +{ prestige_base(config); - MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gl6000sl_cart", "gl6000sl") - MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gl2000_cart", "gl2000") - MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("misterx_cart", "misterx") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "gl6000sl_cart").set_compatible("gl6000sl"); + SOFTWARE_LIST(config, "gl2000_cart").set_compatible("gl2000"); + SOFTWARE_LIST(config, "misterx_cart").set_compatible("misterx"); +} -MACHINE_CONFIG_START(prestige_state::gjmovie) +void prestige_state::gjmovie(machine_config &config) +{ prestige_base(config); - MCFG_SOFTWARE_LIST_ADD("cart_list", "gjmovie") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cart_list").set_original("gjmovie"); +} -MACHINE_CONFIG_START(prestige_state::princ) +void prestige_state::princ(machine_config &config) +{ prestige_base(config); - MCFG_DEVICE_REMOVE("cartslot") - MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "princ_cart") - MCFG_SOFTWARE_LIST_ADD("cart_list", "princ") -MACHINE_CONFIG_END + config.device_remove("cartslot"); + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "princ_cart"); + SOFTWARE_LIST(config, "cart_list").set_original("princ"); +} /* ROM definition */ ROM_START( gl6000sl ) |