summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/m72.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/m72.cpp')
-rw-r--r--src/mame/drivers/m72.cpp128
1 files changed, 62 insertions, 66 deletions
diff --git a/src/mame/drivers/m72.cpp b/src/mame/drivers/m72.cpp
index b95dffc2804..ed0965b93c9 100644
--- a/src/mame/drivers/m72.cpp
+++ b/src/mame/drivers/m72.cpp
@@ -188,7 +188,6 @@ other supported games as well.
#include "includes/m72.h"
#include "includes/iremipt.h"
-#include "cpu/mcs51/mcs51.h"
#include "cpu/nec/nec.h"
#include "cpu/nec/v25.h"
#include "cpu/z80/z80.h"
@@ -1802,7 +1801,8 @@ static GFXDECODE_START( gfx_majtitle )
GFXDECODE_END
-MACHINE_CONFIG_START(m72_state::m72_audio_chips)
+void m72_state::m72_audio_chips(machine_config &config)
+{
/* sound hardware */
SPEAKER(config, "speaker").front_center();
@@ -1812,60 +1812,62 @@ MACHINE_CONFIG_START(m72_state::m72_audio_chips)
RST_NEG_BUFFER(config, "soundirq", 0).int_callback().set_inputline(m_soundcpu, 0);
- MCFG_DEVICE_MODIFY("soundcpu")
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("soundirq", rst_neg_buffer_device, inta_cb)
+ m_soundcpu->set_irq_acknowledge_callback("soundirq", FUNC(rst_neg_buffer_device::inta_cb));
- MCFG_DEVICE_ADD("m72", IREM_M72_AUDIO)
+ IREM_M72_AUDIO(config, "m72");
ym2151_device &ymsnd(YM2151(config, "ymsnd", SOUND_CLOCK));
ymsnd.irq_handler().set("soundirq", FUNC(rst_neg_buffer_device::rst28_w));
ymsnd.add_route(ALL_OUTPUTS, "speaker", 1.0);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2) // unknown DAC
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
-MACHINE_CONFIG_END
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.2); // unknown DAC
+ 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);
+ vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
+}
MACHINE_CONFIG_START(m72_state::m72_base)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
- MCFG_DEVICE_PROGRAM_MAP(m72_map)
- MCFG_DEVICE_IO_MAP(m72_portmap)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb)
- MCFG_DEVICE_ADD("soundcpu",Z80, SOUND_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(sound_ram_map)
- MCFG_DEVICE_IO_MAP(sound_portmap)
+ V30(config, m_maincpu, MASTER_CLOCK/2/2); /* 16 MHz external freq (8MHz internal) */
+ m_maincpu->set_addrmap(AS_PROGRAM, &m72_state::m72_map);
+ m_maincpu->set_addrmap(AS_IO, &m72_state::m72_portmap);
+ m_maincpu->set_irq_acknowledge_callback("upd71059c", FUNC(pic8259_device::inta_cb));
+
+ Z80(config, m_soundcpu, SOUND_CLOCK);
+ m_soundcpu->set_addrmap(AS_PROGRAM, &m72_state::sound_ram_map);
+ m_soundcpu->set_addrmap(AS_IO, &m72_state::sound_portmap);
PIC8259(config, m_upd71059c, 0);
m_upd71059c->out_int_callback().set_inputline(m_maincpu, 0);
/* video hardware */
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_m72)
- MCFG_PALETTE_ADD("palette", 512)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_m72);
+ PALETTE(config, m_palette, 512);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256);
+ m_screen->set_screen_update(FUNC(m72_state::screen_update));
+ m_screen->set_palette(m_palette);
MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
m72_audio_chips(config);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(m72_state::m72)
+void m72_state::m72(machine_config &config)
+{
m72_base(config);
- MCFG_DEVICE_MODIFY("soundcpu")
- MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, fake_nmi, 128*55) /* clocked by V1? (Vigilante) */
- /* IRQs are generated by main Z80 and YM2151 */
-MACHINE_CONFIG_END
+ m_soundcpu->set_periodic_int(FUNC(m72_state::fake_nmi), attotime::from_hz(128*55)); /* clocked by V1? (Vigilante) */
+ /* IRQs are generated by main Z80 and YM2151 */
+}
-MACHINE_CONFIG_START(m72_state::m72_8751)
+void m72_state::m72_8751(machine_config &config)
+{
m72_base(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(m72_protected_map)
- MCFG_DEVICE_IO_MAP(m72_protected_portmap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &m72_state::m72_protected_map);
+ m_maincpu->set_addrmap(AS_IO, &m72_state::m72_protected_portmap);
MB8421_MB8431_16BIT(config, m_dpram);
//m_dpram->intl_callback().set(m_upd71059c, FUNC(pic8259_device::ir3_w)); // not actually used?
@@ -1875,46 +1877,40 @@ MACHINE_CONFIG_START(m72_state::m72_8751)
mculatch.data_pending_callback().set_inputline(m_mcu, MCS51_INT1_LINE);
mculatch.set_separate_acknowledge(true);
- MCFG_DEVICE_ADD("mcu", I8751, XTAL(8'000'000)) /* Uses its own XTAL */
- MCFG_DEVICE_IO_MAP(mcu_io_map)
- MCFG_MCS51_PORT_P1_OUT_CB(WRITE8(*this, m72_state, mcu_port1_w))
-MACHINE_CONFIG_END
+ I8751(config, m_mcu, XTAL(8'000'000)); /* Uses its own XTAL */
+ m_mcu->set_addrmap(AS_IO, &m72_state::mcu_io_map);
+ m_mcu->port_out_cb<1>().set(FUNC(m72_state::mcu_port1_w));
+}
-MACHINE_CONFIG_START(m72_state::rtype)
+void m72_state::rtype(machine_config &config)
+{
m72_base(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(rtype_map)
-
- MCFG_DEVICE_MODIFY("soundcpu")
- MCFG_DEVICE_IO_MAP(rtype_sound_portmap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &m72_state::rtype_map);
+ m_soundcpu->set_addrmap(AS_IO, &m72_state::rtype_sound_portmap);
- MCFG_DEVICE_REMOVE("m72")
- MCFG_DEVICE_REMOVE("dac")
- MCFG_DEVICE_REMOVE("vref")
-MACHINE_CONFIG_END
+ config.device_remove("m72");
+ config.device_remove("dac");
+ config.device_remove("vref");
+}
-MACHINE_CONFIG_START(m72_state::m72_xmultipl)
+void m72_state::m72_xmultipl(machine_config &config)
+{
m72_8751(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(xmultiplm72_map)
-
- MCFG_DEVICE_MODIFY("soundcpu")
- MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
- /* IRQs are generated by main Z80 and YM2151 */
-
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &m72_state::xmultiplm72_map);
+ m_soundcpu->set_periodic_int(FUNC(m72_state::nmi_line_pulse), attotime::from_hz(128*55)); /* clocked by V1? (Vigilante) */
+ /* IRQs are generated by main Z80 and YM2151 */
+}
-MACHINE_CONFIG_START(m72_state::m72_dbreed)
+void m72_state::m72_dbreed(machine_config &config)
+{
m72_base(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(dbreedm72_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &m72_state::dbreedm72_map);
- MCFG_DEVICE_MODIFY("soundcpu")
- MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
- /* IRQs are generated by main Z80 and YM2151 */
-MACHINE_CONFIG_END
+ m_soundcpu->set_periodic_int(FUNC(m72_state::nmi_line_pulse), attotime::from_hz(128*55)); /* clocked by V1? (Vigilante) */
+ /* IRQs are generated by main Z80 and YM2151 */
+}
@@ -1965,7 +1961,7 @@ MACHINE_CONFIG_START(m72_state::rtype2)
MCFG_DEVICE_IO_MAP(m84_portmap)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb)
- MCFG_DEVICE_ADD("soundcpu", Z80, SOUND_CLOCK)
+ MCFG_DEVICE_ADD(m_soundcpu, Z80, SOUND_CLOCK)
MCFG_DEVICE_PROGRAM_MAP(sound_rom_map)
MCFG_DEVICE_IO_MAP(rtype2_sound_portmap)
MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
@@ -2008,7 +2004,7 @@ MACHINE_CONFIG_START(m72_state::cosmccop)
MCFG_DEVICE_PROGRAM_MAP(kengo_map)
MCFG_DEVICE_IO_MAP(m84_v33_portmap)
- MCFG_DEVICE_ADD("soundcpu", Z80, SOUND_CLOCK)
+ MCFG_DEVICE_ADD(m_soundcpu, Z80, SOUND_CLOCK)
MCFG_DEVICE_PROGRAM_MAP(sound_rom_map)
MCFG_DEVICE_IO_MAP(rtype2_sound_portmap)
MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
@@ -2055,7 +2051,7 @@ MACHINE_CONFIG_START(m72_state::m82)
MCFG_DEVICE_PROGRAM_MAP(m82_map)
MCFG_DEVICE_IO_MAP(m82_portmap)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb)
- MCFG_DEVICE_ADD("soundcpu", Z80, SOUND_CLOCK)
+ MCFG_DEVICE_ADD(m_soundcpu, Z80, SOUND_CLOCK)
MCFG_DEVICE_PROGRAM_MAP(sound_rom_map)
MCFG_DEVICE_IO_MAP(rtype2_sound_portmap)
MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
@@ -2090,7 +2086,7 @@ MACHINE_CONFIG_START(m72_state::poundfor)
MCFG_DEVICE_PROGRAM_MAP(rtype2_map)
MCFG_DEVICE_IO_MAP(poundfor_portmap)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb)
- MCFG_DEVICE_ADD("soundcpu", Z80, SOUND_CLOCK)
+ MCFG_DEVICE_ADD(m_soundcpu, Z80, SOUND_CLOCK)
MCFG_DEVICE_PROGRAM_MAP(sound_rom_map)
MCFG_DEVICE_IO_MAP(poundfor_sound_portmap)
MCFG_DEVICE_PERIODIC_INT_DRIVER(m72_state, fake_nmi, 128*55) /* clocked by V1? (Vigilante) */