summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/cosmic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/cosmic.cpp')
-rw-r--r--src/mame/drivers/cosmic.cpp185
1 files changed, 90 insertions, 95 deletions
diff --git a/src/mame/drivers/cosmic.cpp b/src/mame/drivers/cosmic.cpp
index f9bce981824..46f7906e704 100644
--- a/src/mame/drivers/cosmic.cpp
+++ b/src/mame/drivers/cosmic.cpp
@@ -1005,21 +1005,21 @@ MACHINE_RESET_MEMBER(cosmic_state,cosmicg)
m_maincpu->set_input_line(INT_9980A_RESET, CLEAR_LINE);
}
-MACHINE_CONFIG_START(cosmic_state::cosmic)
-
+void cosmic_state::cosmic(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,Z80_MASTER_CLOCK/6) /* 1.8026 MHz */
+ Z80(config, m_maincpu, Z80_MASTER_CLOCK/6); /* 1.8026 MHz */
MCFG_MACHINE_START_OVERRIDE(cosmic_state,cosmic)
MCFG_MACHINE_RESET_OVERRIDE(cosmic_state,cosmic)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_PALETTE("palette")
-MACHINE_CONFIG_END
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 4*8, 28*8-1);
+ m_screen->set_palette(m_palette);
+}
TIMER_DEVICE_CALLBACK_MEMBER(cosmic_state::panic_scanline)
{
@@ -1033,64 +1033,62 @@ TIMER_DEVICE_CALLBACK_MEMBER(cosmic_state::panic_scanline)
}
-MACHINE_CONFIG_START(cosmic_state::panic)
+void cosmic_state::panic(machine_config &config)
+{
cosmic(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(panic_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", cosmic_state, panic_scanline, "screen", 0, 1)
+ m_maincpu->set_addrmap(AS_PROGRAM, &cosmic_state::panic_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(cosmic_state::panic_scanline), "screen", 0, 1);
/* video hardware */
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_panic)
- MCFG_PALETTE_ADD("palette", 16+8*4)
- MCFG_PALETTE_INDIRECT_ENTRIES(16)
- MCFG_PALETTE_INIT_OWNER(cosmic_state,panic)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_panic);
+ PALETTE(config, m_palette, 16+8*4);
+ m_palette->set_indirect_entries(16);
+ m_palette->set_init(FUNC(cosmic_state::palette_init_panic));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_panic)
+ m_screen->set_screen_update(FUNC(cosmic_state::screen_update_panic));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("samples", SAMPLES)
- MCFG_SAMPLES_CHANNELS(9)
- MCFG_SAMPLES_NAMES(panic_sample_names)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
-
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
-MACHINE_CONFIG_END
+ SAMPLES(config, m_samples);
+ m_samples->set_channels(9);
+ m_samples->set_samples_names(panic_sample_names);
+ m_samples->add_route(ALL_OUTPUTS, "speaker", 0.25);
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5);
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
+}
-MACHINE_CONFIG_START(cosmic_state::cosmica)
+void cosmic_state::cosmica(machine_config &config)
+{
cosmic(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(cosmica_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &cosmic_state::cosmica_map);
/* video hardware */
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cosmica)
- MCFG_PALETTE_ADD("palette", 8+16*4)
- MCFG_PALETTE_INDIRECT_ENTRIES(8)
- MCFG_PALETTE_INIT_OWNER(cosmic_state,cosmica)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_cosmica);
+ PALETTE(config, m_palette, 8+16*4);
+ m_palette->set_indirect_entries(8);
+ m_palette->set_init(FUNC(cosmic_state::palette_init_cosmica));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_cosmica)
+ m_screen->set_screen_update(FUNC(cosmic_state::screen_update_cosmica));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("samples", SAMPLES)
- MCFG_SAMPLES_CHANNELS(13)
- MCFG_SAMPLES_NAMES(cosmica_sample_names)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(cosmic_state::cosmicg)
+ SAMPLES(config, m_samples);
+ m_samples->set_channels(13);
+ m_samples->set_samples_names(cosmica_sample_names);
+ m_samples->add_route(ALL_OUTPUTS, "speaker", 0.25);
+}
+void cosmic_state::cosmicg(machine_config &config)
+{
/* basic machine hardware */
TMS9980A(config, m_maincpu, COSMICG_MASTER_CLOCK); // 9.828 MHz Crystal
m_maincpu->set_addrmap(AS_PROGRAM, &cosmic_state::cosmicg_map);
@@ -1100,90 +1098,87 @@ MACHINE_CONFIG_START(cosmic_state::cosmicg)
MCFG_MACHINE_RESET_OVERRIDE(cosmic_state,cosmicg)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_cosmicg)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 4*8, 28*8-1);
+ m_screen->set_screen_update(FUNC(cosmic_state::screen_update_cosmicg));
+ m_screen->set_palette(m_palette);
- MCFG_PALETTE_ADD("palette", 16)
- MCFG_PALETTE_INIT_OWNER(cosmic_state,cosmicg)
+ PALETTE(config, m_palette, 16);
+ m_palette->set_init(FUNC(cosmic_state::palette_init_cosmicg));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("samples", SAMPLES)
- MCFG_SAMPLES_CHANNELS(9)
- MCFG_SAMPLES_NAMES(cosmicg_sample_names)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
+ SAMPLES(config, m_samples);
+ m_samples->set_channels(9);
+ m_samples->set_samples_names(cosmicg_sample_names);
+ m_samples->add_route(ALL_OUTPUTS, "speaker", 0.25);
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // NE556
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // NE556
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
// Other DACs include 3-bit binary-weighted (100K/50K/25K) DAC combined with another NE556 for attack march
-MACHINE_CONFIG_END
-
+}
-MACHINE_CONFIG_START(cosmic_state::magspot)
+void cosmic_state::magspot(machine_config &config)
+{
cosmic(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", Z80, Z80_MASTER_CLOCK/4) /* 2.704 MHz, verified via schematics */
- MCFG_DEVICE_PROGRAM_MAP(magspot_map)
+ Z80(config.replace(), m_maincpu, Z80_MASTER_CLOCK/4); /* 2.704 MHz, verified via schematics */
+ m_maincpu->set_addrmap(AS_PROGRAM, &cosmic_state::magspot_map);
/* video hardware */
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_panic)
- MCFG_PALETTE_ADD("palette", 16+8*4)
- MCFG_PALETTE_INDIRECT_ENTRIES(16)
- MCFG_PALETTE_INIT_OWNER(cosmic_state,magspot)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_panic);
+ PALETTE(config, m_palette, 16+8*4);
+ m_palette->set_indirect_entries(16);
+ m_palette->set_init(FUNC(cosmic_state::palette_init_magspot));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_magspot)
+ m_screen->set_screen_update(FUNC(cosmic_state::screen_update_magspot));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
-MACHINE_CONFIG_END
-
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5);
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
+}
-MACHINE_CONFIG_START(cosmic_state::devzone)
+void cosmic_state::devzone(machine_config &config)
+{
magspot(config);
- /* basic machine hardware */
-
/* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_devzone)
-MACHINE_CONFIG_END
-
+ m_screen->set_screen_update(FUNC(cosmic_state::screen_update_devzone));
+}
-MACHINE_CONFIG_START(cosmic_state::nomnlnd)
+void cosmic_state::nomnlnd(machine_config &config)
+{
cosmic(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(magspot_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &cosmic_state::magspot_map);
/* video hardware */
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_panic)
- MCFG_PALETTE_ADD("palette", 16+8*4)
- MCFG_PALETTE_INDIRECT_ENTRIES(16)
- MCFG_PALETTE_INIT_OWNER(cosmic_state,nomnlnd)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_panic);
+ PALETTE(config, m_palette, 16+8*4);
+ m_palette->set_indirect_entries(16);
+ m_palette->set_init(FUNC(cosmic_state::palette_init_nomnlnd));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_nomnlnd)
+ m_screen->set_screen_update(FUNC(cosmic_state::screen_update_nomnlnd));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
-MACHINE_CONFIG_END
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5);
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
+}
ROM_START( panic )