diff options
Diffstat (limited to 'src/mame/drivers/cosmic.cpp')
-rw-r--r-- | src/mame/drivers/cosmic.cpp | 185 |
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 ) |