summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/galaga.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/galaga.cpp')
-rw-r--r--src/mame/drivers/galaga.cpp227
1 files changed, 115 insertions, 112 deletions
diff --git a/src/mame/drivers/galaga.cpp b/src/mame/drivers/galaga.cpp
index 22ca1a5cb55..5461f784450 100644
--- a/src/mame/drivers/galaga.cpp
+++ b/src/mame/drivers/galaga.cpp
@@ -1585,17 +1585,17 @@ WRITE_LINE_MEMBER(galaga_state::vblank_irq)
m_subcpu->set_input_line(0, ASSERT_LINE);
}
-MACHINE_CONFIG_START(bosco_state::bosco)
-
+void bosco_state::bosco(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(bosco_map)
+ Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &bosco_state::bosco_map);
- MCFG_DEVICE_ADD("sub", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(bosco_map)
+ Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &bosco_state::bosco_map);
- MCFG_DEVICE_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(bosco_map)
+ Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu2->set_addrmap(AS_PROGRAM, &bosco_state::bosco_map);
ls259_device &misclatch(LS259(config, "misclatch")); // 3C on CPU board
misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
@@ -1650,8 +1650,8 @@ MACHINE_CONFIG_START(bosco_state::bosco)
//m_videolatch->q_out_cb<7>().append("52xx", FUNC(namco_52xx_device, reset_w));
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
- /* synchronization of the CPUs */
+
+ config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -1661,35 +1661,35 @@ MACHINE_CONFIG_START(bosco_state::bosco)
m_screen->screen_vblank().append(FUNC(galaga_state::vblank_irq));
m_screen->set_palette("palette");
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_bosco)
- MCFG_PALETTE_ADD("palette", 64*4+64*4+4+64)
- MCFG_PALETTE_INDIRECT_ENTRIES(32+64)
- MCFG_PALETTE_INIT_OWNER(bosco_state,bosco)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_bosco);
+ PALETTE(config, m_palette, 64*4+64*4+4+64);
+ m_palette->set_indirect_entries(32+64);
+ m_palette->set_init(FUNC(bosco_state::palette_init_bosco));
+
MCFG_VIDEO_START_OVERRIDE(bosco_state,bosco)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0)
+ NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
+ m_namco_sound->set_voices(3);
+ m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
/* discrete circuit on the 54XX outputs */
- MCFG_DEVICE_ADD("discrete", DISCRETE, bosco_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(galaga_state::galaga)
+ DISCRETE(config, "discrete", bosco_discrete).add_route(ALL_OUTPUTS, "mono", 0.90);
+}
+void galaga_state::galaga(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(galaga_map)
+ Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &galaga_state::galaga_map);
- MCFG_DEVICE_ADD("sub", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(galaga_map)
+ Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &galaga_state::galaga_map);
- MCFG_DEVICE_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(galaga_map)
+ Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu2->set_addrmap(AS_PROGRAM, &galaga_state::galaga_map);
ls259_device &misclatch(LS259(config, "misclatch")); // 3C on CPU board
misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
@@ -1722,8 +1722,8 @@ MACHINE_CONFIG_START(galaga_state::galaga)
m_videolatch->q_out_cb<7>().set(FUNC(galaga_state::flip_screen_w));
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
- /* synchronization of the CPUs */
+
+ config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -1733,25 +1733,26 @@ MACHINE_CONFIG_START(galaga_state::galaga)
m_screen->screen_vblank().append(FUNC(galaga_state::vblank_irq));
m_screen->set_palette("palette");
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_galaga)
- MCFG_PALETTE_ADD("palette", 64*4+64*4+64)
- MCFG_PALETTE_INDIRECT_ENTRIES(32+64)
- MCFG_PALETTE_INIT_OWNER(galaga_state,galaga)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaga);
+ PALETTE(config, m_palette, 64*4+64*4+64);
+ m_palette->set_indirect_entries(32+64);
+ m_palette->set_init(FUNC(galaga_state::palette_init_galaga));
+
MCFG_VIDEO_START_OVERRIDE(galaga_state,galaga)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0)
+ NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
+ m_namco_sound->set_voices(3);
+ m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
/* discrete circuit on the 54XX outputs */
- MCFG_DEVICE_ADD("discrete", DISCRETE, galaga_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
-MACHINE_CONFIG_END
+ DISCRETE(config, "discrete", galaga_discrete).add_route(ALL_OUTPUTS, "mono", 0.90);
+}
-MACHINE_CONFIG_START(galaga_state::galagab)
+void galaga_state::galagab(machine_config &config)
+{
galaga(config);
/* basic machine hardware */
@@ -1765,33 +1766,33 @@ MACHINE_CONFIG_START(galaga_state::galagab)
n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read));
n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write));
- MCFG_DEVICE_ADD("sub3", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(galaga_mem4)
+ z80_device &sub3(Z80(config, "sub3", MASTER_CLOCK/6)); /* 3.072 MHz */
+ sub3.set_addrmap(AS_PROGRAM, &galaga_state::galaga_mem4);
/* sound hardware */
config.device_remove("discrete");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(galaga_state::gatsbee)
+void galaga_state::gatsbee(machine_config &config)
+{
galaga(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(gatsbee_main_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &galaga_state::gatsbee_main_map);
ls259_device &extralatch(LS259(config, "extralatch"));
extralatch.q_out_cb<0>().set(FUNC(galaga_state::gatsbee_bank_w));
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(xevious_state::xevious)
+}
+void xevious_state::xevious(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(xevious_map)
+ Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &xevious_state::xevious_map);
- MCFG_DEVICE_ADD("sub", Z80,MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(xevious_map)
+ Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &xevious_state::xevious_map);
- MCFG_DEVICE_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(xevious_map)
+ Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu2->set_addrmap(AS_PROGRAM, &xevious_state::xevious_map);
ls259_device &misclatch(LS259(config, "misclatch")); // 5K
misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
@@ -1825,35 +1826,36 @@ MACHINE_CONFIG_START(xevious_state::xevious)
n06xx.write_callback<3>().set("54xx", FUNC(namco_54xx_device::write));
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
- MCFG_QUANTUM_TIME(attotime::from_hz(60000)) /* 1000 CPU slices per frame - an high value to ensure proper */
- /* synchronization of the CPUs */
+
+ config.m_minimum_quantum = attotime::from_hz(60000); /* 1000 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
- MCFG_SCREEN_UPDATE_DRIVER(xevious_state, screen_update_xevious)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, galaga_state, vblank_irq))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_xevious)
- MCFG_PALETTE_ADD("palette", 128*4+64*8+64*2)
- MCFG_PALETTE_INDIRECT_ENTRIES(128+1)
- MCFG_PALETTE_INIT_OWNER(xevious_state,xevious)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224);
+ m_screen->set_screen_update(FUNC(xevious_state::screen_update_xevious));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(galaga_state::vblank_irq));
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_xevious);
+ PALETTE(config, m_palette, 128*4+64*8+64*2);
+ m_palette->set_indirect_entries(128+1);
+ m_palette->set_init(FUNC(xevious_state::palette_init_xevious));
+
MCFG_VIDEO_START_OVERRIDE(xevious_state,xevious)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0)
+ NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
+ m_namco_sound->set_voices(3);
+ m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
/* discrete circuit on the 54XX outputs */
- MCFG_DEVICE_ADD("discrete", DISCRETE, galaga_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
-MACHINE_CONFIG_END
+ DISCRETE(config, "discrete", galaga_discrete).add_route(ALL_OUTPUTS, "mono", 0.90);
+}
-MACHINE_CONFIG_START(battles_state::battles)
+void battles_state::battles(machine_config &config)
+{
xevious(config);
/* basic machine hardware */
@@ -1867,33 +1869,33 @@ MACHINE_CONFIG_START(battles_state::battles)
n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read));
n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write));
- MCFG_DEVICE_ADD("sub3", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(battles_mem4)
+ Z80(config, m_subcpu3, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu3->set_addrmap(AS_PROGRAM, &battles_state::battles_mem4);
m_screen->screen_vblank().append(FUNC(battles_state::interrupt_4));
- MCFG_TIMER_DRIVER_ADD("nmi", battles_state, nmi_generate)
+ TIMER(config, "nmi").configure_generic(FUNC(battles_state::nmi_generate));
/* sound hardware */
config.device_remove("discrete");
- MCFG_DEVICE_ADD("samples", SAMPLES)
- MCFG_SAMPLES_CHANNELS(1)
- MCFG_SAMPLES_NAMES(battles_sample_names)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(digdug_state::digdug)
+ SAMPLES(config, m_samples);
+ m_samples->set_channels(1);
+ m_samples->set_samples_names(battles_sample_names);
+ m_samples->add_route(ALL_OUTPUTS, "mono", 0.80);
+}
+void digdug_state::digdug(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(digdug_map)
+ Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &digdug_state::digdug_map);
- MCFG_DEVICE_ADD("sub", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(digdug_map)
+ Z80(config, m_subcpu, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &digdug_state::digdug_map);
- MCFG_DEVICE_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(digdug_map)
+ Z80(config, m_subcpu2, MASTER_CLOCK/6); /* 3.072 MHz */
+ m_subcpu2->set_addrmap(AS_PROGRAM, &digdug_state::digdug_map);
ls259_device &misclatch(LS259(config, "misclatch")); // 8R
misclatch.q_out_cb<0>().set(FUNC(galaga_state::irq1_clear_w));
@@ -1935,42 +1937,43 @@ MACHINE_CONFIG_START(digdug_state::digdug)
m_videolatch->q_out_cb<3>().set(FUNC(digdug_state::bg_disable_w));
m_videolatch->q_out_cb<7>().set(FUNC(digdug_state::flip_screen_w));
- MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
- /* synchronization of the CPUs */
+ config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs */
- MCFG_DEVICE_ADD("earom", ER2055)
+ ER2055(config, m_earom);
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
- MCFG_SCREEN_UPDATE_DRIVER(digdug_state, screen_update_digdug)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, galaga_state, vblank_irq))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_digdug)
- MCFG_PALETTE_ADD("palette", 16*2+64*4+64*4)
- MCFG_PALETTE_INDIRECT_ENTRIES(32)
- MCFG_PALETTE_INIT_OWNER(digdug_state,digdug)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224);
+ m_screen->set_screen_update(FUNC(digdug_state::screen_update_digdug));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(galaga_state::vblank_irq));
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_digdug);
+ PALETTE(config, m_palette, 16*2+64*4+64*4);
+ m_palette->set_indirect_entries(32);
+ m_palette->set_init(FUNC(digdug_state::palette_init_digdug));
+
MCFG_VIDEO_START_OVERRIDE(digdug_state,digdug)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
- MCFG_NAMCO_AUDIO_VOICES(3)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0)
-MACHINE_CONFIG_END
+ NAMCO(config, m_namco_sound, MASTER_CLOCK/6/32);
+ m_namco_sound->set_voices(3);
+ m_namco_sound->add_route(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0);
+}
-MACHINE_CONFIG_START(digdug_state::dzigzag)
+void digdug_state::dzigzag(machine_config &config)
+{
digdug(config);
/* basic machine hardware */
- MCFG_DEVICE_ADD("sub3", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(dzigzag_mem4)
-MACHINE_CONFIG_END
+ z80_device &sub3(Z80(config, "sub3", MASTER_CLOCK/6)); /* 3.072 MHz */
+ sub3.set_addrmap(AS_PROGRAM, &digdug_state::dzigzag_mem4);
+}