diff options
Diffstat (limited to 'src/mame/drivers/arcadia.cpp')
-rw-r--r-- | src/mame/drivers/arcadia.cpp | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/src/mame/drivers/arcadia.cpp b/src/mame/drivers/arcadia.cpp index a0244bcb328..445ba4bcb4a 100644 --- a/src/mame/drivers/arcadia.cpp +++ b/src/mame/drivers/arcadia.cpp @@ -471,39 +471,41 @@ static void arcadia_cart(device_slot_interface &device) } -MACHINE_CONFIG_START(arcadia_state::arcadia) +void arcadia_state::arcadia(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", S2650, 3580000/4) /* 0.895 MHz */ - MCFG_DEVICE_PROGRAM_MAP(arcadia_mem) - MCFG_S2650_SENSE_INPUT(READLINE(*this, arcadia_state, vsync_r)) - MCFG_DEVICE_PERIODIC_INT_DRIVER(arcadia_state, video_line, 262*60) - MCFG_QUANTUM_TIME(attotime::from_hz(60)) + S2650(config, m_maincpu, 3580000/4); /* 0.895 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &arcadia_state::arcadia_mem); + m_maincpu->sense_handler().set(FUNC(arcadia_state::vsync_r)); + m_maincpu->set_periodic_int(FUNC(arcadia_state::video_line), attotime::from_hz(262*60)); + + config.m_minimum_quantum = attotime::from_hz(60); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(128+2*XPOS, 262) - MCFG_SCREEN_VISIBLE_AREA(0, 2*XPOS+128-1, 0, 262-1) - MCFG_SCREEN_UPDATE_DRIVER(arcadia_state, screen_update_arcadia) - MCFG_SCREEN_PALETTE("palette") - - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_arcadia) - MCFG_PALETTE_ADD("palette", ARRAY_LENGTH(arcadia_palette)) - MCFG_PALETTE_INDIRECT_ENTRIES(8) - MCFG_PALETTE_INIT_OWNER(arcadia_state, arcadia) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(128+2*XPOS, 262); + m_screen->set_visarea(0, 2*XPOS+128-1, 0, 262-1); + m_screen->set_screen_update(FUNC(arcadia_state::screen_update_arcadia)); + m_screen->set_palette(m_palette); + + GFXDECODE(config, m_gfxdecode, m_palette, gfx_arcadia); + PALETTE(config, m_palette, ARRAY_LENGTH(arcadia_palette)); + m_palette->set_indirect_entries(8); + m_palette->set_init(FUNC(arcadia_state::palette_init_arcadia)); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("custom", ARCADIA_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) + ARCADIA_SOUND(config, m_custom); + m_custom->add_route(ALL_OUTPUTS, "mono", 1.00); /* cartridge */ - MCFG_ARCADIA_CARTRIDGE_ADD("cartslot", arcadia_cart, nullptr) + EA2001_CART_SLOT(config, "cartslot", arcadia_cart, nullptr); /* Software lists */ - MCFG_SOFTWARE_LIST_ADD("cart_list","arcadia") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cart_list").set_original("arcadia"); +} ROM_START(advsnha) |