summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/arcadia.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/arcadia.cpp')
-rw-r--r--src/mame/drivers/arcadia.cpp48
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)