diff --git a/src/mame/drivers/discoboy.cpp b/src/mame/drivers/discoboy.cpp index de5bc4d40f9..0889d68ae3e 100644 --- a/src/mame/drivers/discoboy.cpp +++ b/src/mame/drivers/discoboy.cpp @@ -456,31 +456,30 @@ WRITE_LINE_MEMBER(discoboy_state::yunsung8_adpcm_int) m_audiocpu->set_input_line(INPUT_LINE_NMI, m_toggle); } -MACHINE_CONFIG_START(discoboy_state::discoboy) - +void discoboy_state::discoboy(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) /* 6 MHz? */ - MCFG_DEVICE_PROGRAM_MAP(discoboy_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", discoboy_state, irq0_line_hold) + Z80(config, m_maincpu, XTAL(12'000'000)/2); /* 6 MHz? */ + m_maincpu->set_addrmap(AS_PROGRAM, &discoboy_state::discoboy_map); + m_maincpu->set_addrmap(AS_IO, &discoboy_state::io_map); + m_maincpu->set_vblank_int("screen", FUNC(discoboy_state::irq0_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(10'000'000)/2) /* 5 MHz? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, XTAL(10'000'000)/2); /* 5 MHz? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &discoboy_state::sound_map); ADDRESS_MAP_BANK(config, "rambank1").set_map(&discoboy_state::rambank1_map).set_options(ENDIANNESS_BIG, 8, 13, 0x800); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(8*8, 512-1-8*8, 0+8, 256-1-8) - MCFG_SCREEN_UPDATE_DRIVER(discoboy_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_discoboy) - MCFG_PALETTE_ADD("palette", 0x1000) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 256); + screen.set_visarea(8*8, 512-1-8*8, 0+8, 256-1-8); + screen.set_screen_update(FUNC(discoboy_state::screen_update)); + screen.set_palette(m_palette); + GFXDECODE(config, m_gfxdecode, m_palette, gfx_discoboy); + PALETTE(config, m_palette).set_entries(0x1000); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -489,19 +488,19 @@ MACHINE_CONFIG_START(discoboy_state::discoboy) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0); - MCFG_DEVICE_ADD("ymsnd", YM3812, XTAL(10'000'000)/4) /* 2.5 MHz? */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.6) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.6) + ym3812_device &ymsnd(YM3812(config, "ymsnd", XTAL(10'000'000)/4)); /* 2.5 MHz? */ + ymsnd.add_route(ALL_OUTPUTS, "lspeaker", 0.6); + ymsnd.add_route(ALL_OUTPUTS, "rspeaker", 0.6); LS157(config, m_adpcm_select, 0); m_adpcm_select->out_callback().set("msm", FUNC(msm5205_device::data_w)); - MCFG_DEVICE_ADD("msm", MSM5205, XTAL(400'000)) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, discoboy_state, yunsung8_adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz, 4 Bits */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) -MACHINE_CONFIG_END + MSM5205(config, m_msm, XTAL(400'000)); + m_msm->vck_legacy_callback().set(FUNC(discoboy_state::yunsung8_adpcm_int)); /* interrupt function */ + m_msm->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz, 4 Bits */ + m_msm->add_route(ALL_OUTPUTS, "lspeaker", 0.80); + m_msm->add_route(ALL_OUTPUTS, "rspeaker", 0.80); +} ROM_START( discoboy ) diff --git a/src/mame/drivers/docastle.cpp b/src/mame/drivers/docastle.cpp index 567663b9d05..35d85849b99 100644 --- a/src/mame/drivers/docastle.cpp +++ b/src/mame/drivers/docastle.cpp @@ -580,18 +580,18 @@ void docastle_state::machine_start() save_item(NAME(m_buffer1)); } -MACHINE_CONFIG_START(docastle_state::docastle) - +void docastle_state::docastle(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(docastle_map) - MCFG_DEVICE_IO_MAP(docastle_io_map) + Z80(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &docastle_state::docastle_map); + m_maincpu->set_addrmap(AS_IO, &docastle_state::docastle_io_map); - MCFG_DEVICE_ADD("slave", Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(docastle_map2) + Z80(config, m_slave, XTAL(4'000'000)); + m_slave->set_addrmap(AS_PROGRAM, &docastle_state::docastle_map2); - MCFG_DEVICE_ADD("cpu3", Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(docastle_map3) + Z80(config, m_cpu3, XTAL(4'000'000)); + m_cpu3->set_addrmap(AS_PROGRAM, &docastle_state::docastle_map3); TMS1025(config, m_inp[0]); m_inp[0]->read_port1_callback().set_ioport("DSW2"); @@ -625,10 +625,10 @@ MACHINE_CONFIG_START(docastle_state::docastle) m_crtc->out_vsync_callback().append_inputline(m_cpu3, INPUT_LINE_NMI); m_crtc->out_hsync_callback().set(FUNC(docastle_state::docastle_tint)); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(9'828'000)/2, 0x138, 8, 0x100-8, 0x108, 0, 0xc0) // from CRTC - MCFG_SCREEN_UPDATE_DRIVER(docastle_state, screen_update_docastle) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(XTAL(9'828'000)/2, 0x138, 8, 0x100-8, 0x108, 0, 0xc0); // from CRTC + screen.set_screen_update(FUNC(docastle_state::screen_update_docastle)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_docastle); PALETTE(config, m_palette, FUNC(docastle_state::docastle_palette), 512); @@ -640,28 +640,26 @@ MACHINE_CONFIG_START(docastle_state::docastle) SN76489A(config, "sn2", 4_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 0.25); SN76489A(config, "sn3", 4_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 0.25); SN76489A(config, "sn4", 4_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(docastle_state::dorunrun) +void docastle_state::dorunrun(machine_config &config) +{ docastle(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(dorunrun_map) - - MCFG_DEVICE_MODIFY("slave") - MCFG_DEVICE_PROGRAM_MAP(dorunrun_map2) + m_maincpu->set_addrmap(AS_PROGRAM, &docastle_state::dorunrun_map); + m_slave->set_addrmap(AS_PROGRAM, &docastle_state::dorunrun_map2); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(docastle_state,dorunrun) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(docastle_state::idsoccer) +void docastle_state::idsoccer(machine_config &config) +{ docastle(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(idsoccer_map) + m_maincpu->set_addrmap(AS_PROGRAM, &docastle_state::idsoccer_map); m_inp[0]->read_port4_callback().set_ioport("JOYS_RIGHT"); m_inp[1]->read_port4_callback().set_ioport("JOYS_RIGHT").rshift(4); @@ -670,11 +668,11 @@ MACHINE_CONFIG_START(docastle_state::idsoccer) MCFG_VIDEO_START_OVERRIDE(docastle_state,dorunrun) /* sound hardware */ - MCFG_DEVICE_ADD("msm", MSM5205, XTAL(384'000)) // Crystal verified on American Soccer board. - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, docastle_state, idsoccer_adpcm_int)) // interrupt function - MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) // 6 kHz ??? - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) -MACHINE_CONFIG_END + MSM5205(config, m_msm, XTAL(384'000)); // Crystal verified on American Soccer board. + m_msm->vck_legacy_callback().set(FUNC(docastle_state::idsoccer_adpcm_int)); // interrupt function + m_msm->set_prescaler_selector(msm5205_device::S64_4B); // 6 kHz ??? + m_msm->add_route(ALL_OUTPUTS, "mono", 0.40); +} /* ROMs */ diff --git a/src/mame/drivers/drmicro.cpp b/src/mame/drivers/drmicro.cpp index 3aad808e81c..a6fd1a3cf13 100644 --- a/src/mame/drivers/drmicro.cpp +++ b/src/mame/drivers/drmicro.cpp @@ -240,25 +240,24 @@ void drmicro_state::machine_reset() } -MACHINE_CONFIG_START(drmicro_state::drmicro) - +void drmicro_state::drmicro(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,MCLK/6) /* 3.072MHz? */ - MCFG_DEVICE_PROGRAM_MAP(drmicro_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", drmicro_state, drmicro_interrupt) - - MCFG_QUANTUM_TIME(attotime::from_hz(60)) + Z80(config, m_maincpu, MCLK/6); /* 3.072MHz? */ + m_maincpu->set_addrmap(AS_PROGRAM, &drmicro_state::drmicro_map); + m_maincpu->set_addrmap(AS_IO, &drmicro_state::io_map); + m_maincpu->set_vblank_int("screen", FUNC(drmicro_state::drmicro_interrupt)); + 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(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(drmicro_state, screen_update_drmicro) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(drmicro_state::screen_update_drmicro)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_drmicro); PALETTE(config, m_palette, FUNC(drmicro_state::drmicro_palette), 512, 32); @@ -266,20 +265,15 @@ MACHINE_CONFIG_START(drmicro_state::drmicro) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("sn1", SN76496, MCLK/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SN76496(config, "sn1", MCLK/4).add_route(ALL_OUTPUTS, "mono", 0.50); + SN76496(config, "sn2", MCLK/4).add_route(ALL_OUTPUTS, "mono", 0.50); + SN76496(config, "sn3", MCLK/4).add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("sn2", SN76496, MCLK/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MCFG_DEVICE_ADD("sn3", SN76496, MCLK/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MCFG_DEVICE_ADD("msm", MSM5205, 384000) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, drmicro_state, pcm_w)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) /* 6 KHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) -MACHINE_CONFIG_END + MSM5205(config, m_msm, 384000); + m_msm->vck_legacy_callback().set(FUNC(drmicro_state::pcm_w)); /* IRQ handler */ + m_msm->set_prescaler_selector(msm5205_device::S64_4B); /* 6 KHz */ + m_msm->add_route(ALL_OUTPUTS, "mono", 0.75); +} /************************************* * diff --git a/src/mame/drivers/dynax.cpp b/src/mame/drivers/dynax.cpp index f0312250ca1..310832aadba 100644 --- a/src/mame/drivers/dynax.cpp +++ b/src/mame/drivers/dynax.cpp @@ -4192,13 +4192,13 @@ MACHINE_START_MEMBER(dynax_state,hanamai) Castle Of Dracula ***************************************************************************/ -MACHINE_CONFIG_START(dynax_state::cdracula) - +void dynax_state::cdracula(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(21'477'272)/4) /* 5.3693175MHz measured */ - MCFG_DEVICE_PROGRAM_MAP(cdracula_mem_map) - MCFG_DEVICE_IO_MAP(cdracula_io_map) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainirq", rst_pos_buffer_device, inta_cb) // IM 0 needs an opcode on the data bus + Z80(config, m_maincpu, XTAL(21'477'272)/4); /* 5.3693175MHz measured */ + m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::cdracula_mem_map); + m_maincpu->set_addrmap(AS_IO, &dynax_state::cdracula_io_map); + m_maincpu->set_irq_acknowledge_callback("mainirq", FUNC(rst_pos_buffer_device::inta_cb)); // IM 0 needs an opcode on the data bus MCFG_MACHINE_START_OVERRIDE(dynax_state,dynax) MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax) @@ -4235,22 +4235,22 @@ MACHINE_CONFIG_START(dynax_state::cdracula) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(4'000'000) / 4, okim6295_device::PIN7_HIGH) /* 1MHz measured */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(4'000'000) / 4, okim6295_device::PIN7_HIGH); /* 1MHz measured */ + m_oki->add_route(ALL_OUTPUTS, "mono", 0.80); +} /*************************************************************************** Hana no Mai ***************************************************************************/ -MACHINE_CONFIG_START(dynax_state::hanamai) - +void dynax_state::hanamai(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80,22000000 / 4) /* 5.5MHz */ - MCFG_DEVICE_PROGRAM_MAP(sprtmtch_mem_map) - MCFG_DEVICE_IO_MAP(hanamai_io_map) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainirq", rst_pos_buffer_device, inta_cb) // IM 0 needs an opcode on the data bus + Z80(config, m_maincpu, 22000000 / 4); /* 5.5MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::sprtmtch_mem_map); + m_maincpu->set_addrmap(AS_IO, &dynax_state::hanamai_io_map); + m_maincpu->set_irq_acknowledge_callback("mainirq", FUNC(rst_pos_buffer_device::inta_cb)); // IM 0 needs an opcode on the data bus MCFG_MACHINE_START_OVERRIDE(dynax_state,hanamai) MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax) @@ -4302,11 +4302,11 @@ MACHINE_CONFIG_START(dynax_state::hanamai) ym2203.add_route(2, "mono", 0.20); ym2203.add_route(3, "mono", 0.50); - MCFG_DEVICE_ADD("msm", MSM5205, 384000) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, dynax_state, adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + MSM5205(config, m_msm, 384000); + m_msm->vck_legacy_callback().set(FUNC(dynax_state::adpcm_int)); /* IRQ handler */ + m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz, 4 Bits */ + m_msm->add_route(ALL_OUTPUTS, "mono", 1.0); +} @@ -4314,13 +4314,13 @@ MACHINE_CONFIG_END Hana Oriduru ***************************************************************************/ -MACHINE_CONFIG_START(dynax_state::hnoridur) - +void dynax_state::hnoridur(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80,XTAL(22'000'000) / 4) /* 5.5MHz */ - MCFG_DEVICE_PROGRAM_MAP(hnoridur_mem_map) - MCFG_DEVICE_IO_MAP(hnoridur_io_map) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainirq", rst_pos_buffer_device, inta_cb) // IM 0 needs an opcode on the data bus + Z80(config, m_maincpu, XTAL(22'000'000) / 4); /* 5.5MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::hnoridur_mem_map); + m_maincpu->set_addrmap(AS_IO, &dynax_state::hnoridur_io_map); + m_maincpu->set_irq_acknowledge_callback("mainirq", FUNC(rst_pos_buffer_device::inta_cb)); // IM 0 needs an opcode on the data bus MCFG_MACHINE_START_OVERRIDE(dynax_state,dynax) MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax) @@ -4370,24 +4370,24 @@ MACHINE_CONFIG_START(dynax_state::hnoridur) YM2413(config, "ym2413", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("msm", MSM5205, XTAL(384'000)) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, dynax_state, adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + MSM5205(config, m_msm, XTAL(384'000)); + m_msm->vck_legacy_callback().set(FUNC(dynax_state::adpcm_int)); /* IRQ handler */ + m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz, 4 Bits */ + m_msm->add_route(ALL_OUTPUTS, "mono", 1.0); +} /*************************************************************************** Hana Jingi ***************************************************************************/ -MACHINE_CONFIG_START(dynax_state::hjingi) - +void dynax_state::hjingi(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(22'000'000) / 4) - MCFG_DEVICE_PROGRAM_MAP(hjingi_mem_map) - MCFG_DEVICE_IO_MAP(hjingi_io_map) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainirq", rst_pos_buffer_device, inta_cb) // IM 0 needs an opcode on the data bus + Z80(config, m_maincpu, XTAL(22'000'000) / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::hjingi_mem_map); + m_maincpu->set_addrmap(AS_IO, &dynax_state::hjingi_io_map); + m_maincpu->set_irq_acknowledge_callback("mainirq", FUNC(rst_pos_buffer_device::inta_cb)); // IM 0 needs an opcode on the data bus MCFG_MACHINE_START_OVERRIDE(dynax_state,hjingi) MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax) @@ -4439,24 +4439,24 @@ MACHINE_CONFIG_START(dynax_state::hjingi) YM2413(config, "ym2413", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("msm", MSM5205, XTAL(384'000) ) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, dynax_state, adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + MSM5205(config, m_msm, XTAL(384'000)); + m_msm->vck_legacy_callback().set(FUNC(dynax_state::adpcm_int)); /* IRQ handler */ + m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz, 4 Bits */ + m_msm->add_route(ALL_OUTPUTS, "mono", 1.0); +} /*************************************************************************** Sports Match ***************************************************************************/ -MACHINE_CONFIG_START(dynax_state::sprtmtch) - +void dynax_state::sprtmtch(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,22000000 / 4) /* 5.5MHz */ - MCFG_DEVICE_PROGRAM_MAP(sprtmtch_mem_map) - MCFG_DEVICE_IO_MAP(sprtmtch_io_map) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainirq", rst_pos_buffer_device, inta_cb) // IM 0 needs an opcode on the data bus + Z80(config, m_maincpu, 22000000 / 4); /* 5.5MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::sprtmtch_mem_map); + m_maincpu->set_addrmap(AS_IO, &dynax_state::sprtmtch_io_map); + m_maincpu->set_irq_acknowledge_callback("mainirq", FUNC(rst_pos_buffer_device::inta_cb)); // IM 0 needs an opcode on the data bus MCFG_MACHINE_START_OVERRIDE(dynax_state,hanamai) MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax) @@ -4502,7 +4502,7 @@ MACHINE_CONFIG_START(dynax_state::sprtmtch) ym2203.add_route(1, "mono", 0.20); ym2203.add_route(2, "mono", 0.20); ym2203.add_route(3, "mono", 1.0); -MACHINE_CONFIG_END +} /*************************************************************************** @@ -4515,12 +4515,12 @@ WRITE_LINE_MEMBER(dynax_state::mjfriday_vblank_w) m_maincpu->set_input_line(0, HOLD_LINE); } -MACHINE_CONFIG_START(dynax_state::mjfriday) - +void dynax_state::mjfriday(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80,24000000/4) /* 6 MHz? */ - MCFG_DEVICE_PROGRAM_MAP(sprtmtch_mem_map) - MCFG_DEVICE_IO_MAP(mjfriday_io_map) + Z80(config, m_maincpu, 24000000/4); /* 6 MHz? */ + m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::sprtmtch_mem_map); + m_maincpu->set_addrmap(AS_IO, &dynax_state::mjfriday_io_map); MCFG_MACHINE_START_OVERRIDE(dynax_state,hanamai) MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax) @@ -4560,87 +4560,85 @@ MACHINE_CONFIG_START(dynax_state::mjfriday) SPEAKER(config, "mono").front_center(); YM2413(config, "ym2413", 24000000/6).add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} /*************************************************************************** Mahjong Dial Q2 ***************************************************************************/ -MACHINE_CONFIG_START(dynax_state::mjdialq2) +void dynax_state::mjdialq2(machine_config &config) +{ mjfriday(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mjdialq2_mem_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::mjdialq2_mem_map); +} /*************************************************************************** Yarunara / Quiz TV Q&Q / Mahjong Angels ***************************************************************************/ -MACHINE_CONFIG_START(dynax_state::yarunara) +void dynax_state::yarunara(machine_config &config) +{ hnoridur(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(yarunara_mem_map) - MCFG_DEVICE_IO_MAP(yarunara_io_map) + m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::yarunara_mem_map); + m_maincpu->set_addrmap(AS_IO, &dynax_state::yarunara_io_map); - MCFG_DEVICE_MODIFY("bankdev") - MCFG_DEVICE_PROGRAM_MAP(yarunara_banked_map) + m_bankdev->set_addrmap(AS_PROGRAM, &dynax_state::yarunara_banked_map); - MCFG_DEVICE_REMOVE("outlatch") // ??? + config.device_remove("outlatch"); // ??? m_screen->set_visarea(0, 336-1, 8, 256-1-8-1); /* devices */ MSM6242(config, "rtc", 32.768_kHz_XTAL).out_int_handler().set(m_mainirq, FUNC(rst_pos_buffer_device::rst1_w)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(dynax_state::mjangels) +void dynax_state::mjangels(machine_config &config) +{ yarunara(config); - MCFG_DEVICE_MODIFY("bankdev") m_bankdev->set_map(&dynax_state::mjangels_banked_map).set_addr_width(21); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(dynax_state::quiztvqq) +void dynax_state::quiztvqq(machine_config &config) +{ mjangels(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(quiztvqq_mem_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::quiztvqq_mem_map); +} /*************************************************************************** Mahjong Campus Hunting ***************************************************************************/ -MACHINE_CONFIG_START(dynax_state::mcnpshnt) +void dynax_state::mcnpshnt(machine_config &config) +{ hnoridur(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mcnpshnt_mem_map) - MCFG_DEVICE_IO_MAP(mcnpshnt_io_map) + m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::mcnpshnt_mem_map); + m_maincpu->set_addrmap(AS_IO, &dynax_state::mcnpshnt_io_map); MCFG_VIDEO_START_OVERRIDE(dynax_state,mcnpshnt) // different priorities -MACHINE_CONFIG_END +} /*************************************************************************** 7jigen ***************************************************************************/ -MACHINE_CONFIG_START(dynax_state::nanajign) +void dynax_state::nanajign(machine_config &config) +{ hnoridur(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(nanajign_mem_map) - MCFG_DEVICE_IO_MAP(nanajign_io_map) + m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::nanajign_mem_map); + m_maincpu->set_addrmap(AS_IO, &dynax_state::nanajign_io_map); - MCFG_DEVICE_MODIFY("bankdev") - MCFG_DEVICE_PROGRAM_MAP(nanajign_banked_map) -MACHINE_CONFIG_END + m_bankdev->set_addrmap(AS_PROGRAM, &dynax_state::nanajign_banked_map); +} /*************************************************************************** @@ -4661,18 +4659,18 @@ MACHINE_START_MEMBER(dynax_state,jantouki) } -MACHINE_CONFIG_START(dynax_state::jantouki) - +void dynax_state::jantouki(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80,22000000 / 4) /* 5.5MHz */ - MCFG_DEVICE_PROGRAM_MAP(jantouki_mem_map) - MCFG_DEVICE_IO_MAP(jantouki_io_map) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainirq", rst_pos_buffer_device, inta_cb) // IM 0 needs an opcode on the data bus + Z80(config, m_maincpu, 22000000 / 4); /* 5.5MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::jantouki_mem_map); + m_maincpu->set_addrmap(AS_IO, &dynax_state::jantouki_io_map); + m_maincpu->set_irq_acknowledge_callback("mainirq", FUNC(rst_pos_buffer_device::inta_cb)); // IM 0 needs an opcode on the data bus - MCFG_DEVICE_ADD("soundcpu",Z80,22000000 / 4) /* 5.5MHz */ - MCFG_DEVICE_PROGRAM_MAP(jantouki_sound_mem_map) - MCFG_DEVICE_IO_MAP(jantouki_sound_io_map) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("soundirq", rst_pos_buffer_device, inta_cb) // IM 0 needs an opcode on the data bus + Z80(config, m_soundcpu, 22000000 / 4); /* 5.5MHz */ + m_soundcpu->set_addrmap(AS_PROGRAM, &dynax_state::jantouki_sound_mem_map); + m_soundcpu->set_addrmap(AS_IO, &dynax_state::jantouki_sound_io_map); + m_soundcpu->set_irq_acknowledge_callback("soundirq", FUNC(rst_pos_buffer_device::inta_cb)); // IM 0 needs an opcode on the data bus MCFG_MACHINE_START_OVERRIDE(dynax_state,jantouki) MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax) @@ -4680,7 +4678,6 @@ MACHINE_CONFIG_START(dynax_state::jantouki) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); RST_POS_BUFFER(config, m_mainirq, 0).int_callback().set_inputline(m_maincpu, 0); - RST_POS_BUFFER(config, m_soundirq, 0).int_callback().set_inputline(m_soundcpu, 0); LS259(config, m_mainlatch); @@ -4741,14 +4738,14 @@ MACHINE_CONFIG_START(dynax_state::jantouki) ym2203.add_route(2, "mono", 0.20); ym2203.add_route(3, "mono", 0.50); - MCFG_DEVICE_ADD("msm", MSM5205, 384000) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, dynax_state, adpcm_int_cpu1)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + MSM5205(config, m_msm, 384000); + m_msm->vck_legacy_callback().set(FUNC(dynax_state::adpcm_int_cpu1)); /* IRQ handler */ + m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz, 4 Bits */ + m_msm->add_route(ALL_OUTPUTS, "mono", 1.0); /* devices */ MSM6242(config, "rtc", 32.768_kHz_XTAL); -MACHINE_CONFIG_END +} void dynax_state::janyuki(machine_config &config) { @@ -4765,14 +4762,14 @@ void dynax_state::janyuki(machine_config &config) 0xfa and 0xfc are very similar, they should be triggered by the blitter 0xf8 is vblank */ -MACHINE_CONFIG_START(dynax_state::mjelctrn) +void dynax_state::mjelctrn(machine_config &config) +{ hnoridur(config); TMPZ84C015(config.replace(), m_maincpu, XTAL(22'000'000) / 4); m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::nanajign_mem_map); m_maincpu->set_addrmap(AS_IO, &dynax_state::mjelctrn_io_map); - MCFG_DEVICE_MODIFY("bankdev") - MCFG_DEVICE_PROGRAM_MAP(mjelctrn_banked_map) + m_bankdev->set_addrmap(AS_PROGRAM, &dynax_state::mjelctrn_banked_map); LS259(config.replace(), m_mainlatch); m_mainlatch->q_out_cb<0>().set(FUNC(dynax_state::flipscreen_w)); @@ -4780,7 +4777,7 @@ MACHINE_CONFIG_START(dynax_state::mjelctrn) m_mainlatch->q_out_cb<2>().set(FUNC(dynax_state::layer_half2_w)); // Q3, Q4 seem to be related to wrap around enable - MCFG_DEVICE_REMOVE("mainirq") + config.device_remove("mainirq"); m_screen->screen_vblank().set(m_maincpu, FUNC(tmpz84c015_device::trg0)).invert(); @@ -4788,9 +4785,10 @@ MACHINE_CONFIG_START(dynax_state::mjelctrn) m_blitter->ready_cb().append(m_maincpu, FUNC(tmpz84c015_device::trg2)); MCFG_VIDEO_START_OVERRIDE(dynax_state,mjelctrn) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(dynax_state::mjembase) +void dynax_state::mjembase(machine_config &config) +{ mjelctrn(config); tmpz84c015_device &maincpu(*subdevice("maincpu")); @@ -4802,10 +4800,10 @@ MACHINE_CONFIG_START(dynax_state::mjembase) m_mainlatch->q_out_cb<3>().set(FUNC(dynax_state::coincounter_0_w)); m_mainlatch->q_out_cb<4>().set(FUNC(dynax_state::coincounter_1_w)); - MCFG_DEVICE_REMOVE("outlatch") + config.device_remove("outlatch"); MCFG_VIDEO_START_OVERRIDE(dynax_state,mjembase) -MACHINE_CONFIG_END +} /*************************************************************************** Neruton @@ -4816,10 +4814,11 @@ MACHINE_CONFIG_END 0x40 is vblank 0x46 is a periodic irq? */ -MACHINE_CONFIG_START(dynax_state::neruton) +void dynax_state::neruton(machine_config &config) +{ mjelctrn(config); MCFG_VIDEO_START_OVERRIDE(dynax_state,neruton) -MACHINE_CONFIG_END +} @@ -4842,8 +4841,8 @@ WRITE_LINE_MEMBER(dynax_state::tenkai_blitter_ack_w) } -MACHINE_CONFIG_START(dynax_state::tenkai) - +void dynax_state::tenkai(machine_config &config) +{ /* basic machine hardware */ tmp91640_device &tmp(TMP91640(config, m_maincpu, 21472700 / 2)); tmp.set_addrmap(AS_PROGRAM, &dynax_state::tenkai_map); @@ -4903,7 +4902,7 @@ MACHINE_CONFIG_START(dynax_state::tenkai) /* devices */ MSM6242(config, "rtc", 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ2); -MACHINE_CONFIG_END +} void dynax_state::majrjhdx(machine_config &config) { @@ -4922,8 +4921,8 @@ void dynax_state::mjreach(machine_config &config) Mahjong Gekisha ***************************************************************************/ -MACHINE_CONFIG_START(dynax_state::gekisha) - +void dynax_state::gekisha(machine_config &config) +{ /* basic machine hardware */ tmp90841_device &tmp(TMP90841(config, m_maincpu, XTAL(10'000'000))); // ? tmp.set_addrmap(AS_PROGRAM, &dynax_state::gekisha_map); @@ -4973,7 +4972,7 @@ MACHINE_CONFIG_START(dynax_state::gekisha) ay8910.add_route(ALL_OUTPUTS, "mono", 0.20); YM2413(config, "ym2413", XTAL(24'000'000) / 8).add_route(ALL_OUTPUTS, "mono", 1.0); // ? -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/fcrash.cpp b/src/mame/drivers/fcrash.cpp index ea196c71bf7..61aad3ec6b2 100644 --- a/src/mame/drivers/fcrash.cpp +++ b/src/mame/drivers/fcrash.cpp @@ -1675,95 +1675,95 @@ MACHINE_RESET_MEMBER(cps_state,fcrash) m_sample_select2 = 0; } -MACHINE_CONFIG_START(cps_state::fcrash) - +void cps_state::fcrash(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 10000000) - MCFG_DEVICE_PROGRAM_MAP(fcrash_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack) + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::fcrash_map); + m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack)); - MCFG_DEVICE_ADD("audiocpu", Z80, 24000000/6) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 24000000/6); /* ? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::sound_map); MCFG_MACHINE_START_OVERRIDE(cps_state,fcrash) MCFG_MACHINE_RESET_OVERRIDE(cps_state,fcrash) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1)) - MCFG_SCREEN_PALETTE("palette") + 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(64*8, 32*8); + m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1 ); + m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash)); + m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1)); + m_screen->set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cps1) - MCFG_PALETTE_ADD("palette", 4096) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1); + PALETTE(config, m_palette).set_entries(4096); // sound hardware SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("ym1", YM2203, 24000000/6) /* ? */ - MCFG_SOUND_ROUTE(0, "mono", 0.10) - MCFG_SOUND_ROUTE(1, "mono", 0.10) - MCFG_SOUND_ROUTE(2, "mono", 0.10) - MCFG_SOUND_ROUTE(3, "mono", 1.0) + ym2203_device &ym1(YM2203(config, "ym1", 24000000/6)); /* ? */ + ym1.add_route(0, "mono", 0.10); + ym1.add_route(1, "mono", 0.10); + ym1.add_route(2, "mono", 0.10); + ym1.add_route(3, "mono", 1.0); - MCFG_DEVICE_ADD("ym2", YM2203, 24000000/6) /* ? */ - MCFG_SOUND_ROUTE(0, "mono", 0.10) - MCFG_SOUND_ROUTE(1, "mono", 0.10) - MCFG_SOUND_ROUTE(2, "mono", 0.10) - MCFG_SOUND_ROUTE(3, "mono", 1.0) + ym2203_device &ym2(YM2203(config, "ym2", 24000000/6)); /* ? */ + ym2.add_route(0, "mono", 0.10); + ym2.add_route(1, "mono", 0.10); + ym2.add_route(2, "mono", 0.10); + ym2.add_route(3, "mono", 1.0); - MCFG_DEVICE_ADD("msm1", MSM5205, 24000000/64) /* ? */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + MSM5205(config, m_msm_1, 24000000/64); /* ? */ + m_msm_1->vck_legacy_callback().set(FUNC(cps_state::m5205_int1)); /* interrupt function */ + m_msm_1->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */ + m_msm_1->add_route(ALL_OUTPUTS, "mono", 0.25); - MCFG_DEVICE_ADD("msm2", MSM5205, 24000000/64) /* ? */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + MSM5205(config, m_msm_2, 24000000/64); /* ? */ + m_msm_2->vck_legacy_callback().set(FUNC(cps_state::m5205_int2)); /* interrupt function */ + m_msm_2->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */ + m_msm_2->add_route(ALL_OUTPUTS, "mono", 0.25); +} -MACHINE_CONFIG_START(cps_state::cawingbl) +void cps_state::cawingbl(machine_config &config) +{ fcrash(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, irq6_line_hold) /* needed to write to scroll values */ + m_maincpu->set_vblank_int("screen", FUNC(cps_state::irq6_line_hold)); /* needed to write to scroll values */ MCFG_MACHINE_START_OVERRIDE(cps_state, cawingbl) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(cps_state::kodb) +} +void cps_state::kodb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 10000000) - MCFG_DEVICE_PROGRAM_MAP(fcrash_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack) + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::fcrash_map); + m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack)); - MCFG_DEVICE_ADD("audiocpu", Z80, 3579545) - MCFG_DEVICE_PROGRAM_MAP(kodb_sound_map) + Z80(config, m_audiocpu, 3579545); + m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::kodb_sound_map); MCFG_MACHINE_START_OVERRIDE(cps_state,kodb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1)) - MCFG_SCREEN_PALETTE("palette") + 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(64*8, 32*8); + m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash)); + m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1)); + m_screen->set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cps1) - MCFG_PALETTE_ADD("palette", 0xc00) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1); + PALETTE(config, m_palette).set_entries(0xc00); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -1776,35 +1776,35 @@ MACHINE_CONFIG_START(cps_state::kodb) ym2151.add_route(1, "mono", 0.35); /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */ - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80 - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(cps_state::mtwinsb) + OKIM6295(config, m_oki, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH); // pin 7 can be changed by the game code, see f006 on z80 + m_oki->add_route(ALL_OUTPUTS, "mono", 0.30); +} +void cps_state::mtwinsb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 10000000) - MCFG_DEVICE_PROGRAM_MAP(mtwinsb_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack) + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::mtwinsb_map); + m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack)); - MCFG_DEVICE_ADD("audiocpu", Z80, 3579545) - MCFG_DEVICE_PROGRAM_MAP(sgyxz_sound_map) + Z80(config, m_audiocpu, 3579545); + m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::sgyxz_sound_map); MCFG_MACHINE_START_OVERRIDE(cps_state, mtwinsb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1)) - MCFG_SCREEN_PALETTE("palette") + 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(64*8, 32*8); + m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash)); + m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1)); + m_screen->set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cps1) - MCFG_PALETTE_ADD("palette", 0xc00) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1); + PALETTE(config, m_palette).set_entries(0xc00); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -1817,35 +1817,35 @@ MACHINE_CONFIG_START(cps_state::mtwinsb) ym2151.add_route(0, "mono", 0.35); ym2151.add_route(1, "mono", 0.35); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(cps_state::sf2mdt) + OKIM6295(config, m_oki, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH); + m_oki->add_route(ALL_OUTPUTS, "mono", 0.30); +} +void cps_state::sf2mdt(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(sf2mdt_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, irq4_line_hold) /* triggers the sprite ram and scroll writes */ + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::sf2mdt_map); + m_maincpu->set_vblank_int("screen", FUNC(cps_state::irq4_line_hold)); /* triggers the sprite ram and scroll writes */ - MCFG_DEVICE_ADD("audiocpu", Z80, 3579545) - MCFG_DEVICE_PROGRAM_MAP(sf2mdt_z80map) + Z80(config, m_audiocpu, 3579545); + m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::sf2mdt_z80map); MCFG_MACHINE_START_OVERRIDE(cps_state, sf2mdt) MCFG_MACHINE_RESET_OVERRIDE(cps_state,fcrash) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1)) - MCFG_SCREEN_PALETTE("palette") + 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(64*8, 32*8); + m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash)); + m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1)); + m_screen->set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cps1) - MCFG_PALETTE_ADD("palette", 4096) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1); + PALETTE(config, m_palette).set_entries(4096); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -1855,48 +1855,48 @@ MACHINE_CONFIG_START(cps_state::sf2mdt) YM2151(config, "2151", XTAL(3'579'545)).add_route(0, "mono", 0.35).add_route(1, "mono", 0.35); /* has 2x MSM5205 instead of OKI6295 */ - MCFG_DEVICE_ADD("msm1", MSM5205, 24000000/64) /* ? */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + MSM5205(config, m_msm_1, 24000000/64); /* ? */ + m_msm_1->vck_legacy_callback().set(FUNC(cps_state::m5205_int1)); /* interrupt function */ + m_msm_1->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */ + m_msm_1->add_route(ALL_OUTPUTS, "mono", 0.25); - MCFG_DEVICE_ADD("msm2", MSM5205, 24000000/64) /* ? */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + MSM5205(config, m_msm_2, 24000000/64); /* ? */ + m_msm_2->vck_legacy_callback().set(FUNC(cps_state::m5205_int2)); /* interrupt function */ + m_msm_2->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */ + m_msm_2->add_route(ALL_OUTPUTS, "mono", 0.25); +} -MACHINE_CONFIG_START(cps_state::sf2b) +void cps_state::sf2b(machine_config &config) +{ sf2mdt(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(sf2b_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(cps_state::knightsb) + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::sf2b_map); +} +void cps_state::knightsb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24000000 / 2) - MCFG_DEVICE_PROGRAM_MAP(knightsb_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack) + M68000(config, m_maincpu, 24000000 / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::knightsb_map); + m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack)); - MCFG_DEVICE_ADD("audiocpu", Z80, 29821000 / 8) - MCFG_DEVICE_PROGRAM_MAP(knightsb_z80map) + Z80(config, m_audiocpu, 29821000 / 8); + m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::knightsb_z80map); MCFG_MACHINE_START_OVERRIDE(cps_state, knightsb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1)) - MCFG_SCREEN_PALETTE("palette") + 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(64*8, 32*8); + m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash)); + m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1)); + m_screen->set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cps1) - MCFG_PALETTE_ADD("palette", 0xc00) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1); + PALETTE(config, m_palette).set_entries(0xc00); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -1909,16 +1909,16 @@ MACHINE_CONFIG_START(cps_state::knightsb) ym2151.add_route(1, "mono", 0.35); /* has 2x MSM5205 instead of OKI6295 */ - MCFG_DEVICE_ADD("msm1", MSM5205, 24000000/64) /* ? */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int1)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + MSM5205(config, m_msm_1, 24000000/64); /* ? */ + m_msm_1->vck_legacy_callback().set(FUNC(cps_state::m5205_int1)); /* interrupt function */ + m_msm_1->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */ + m_msm_1->add_route(ALL_OUTPUTS, "mono", 0.25); - MCFG_DEVICE_ADD("msm2", MSM5205, 24000000/64) /* ? */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int2)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + MSM5205(config, m_msm_2, 24000000/64); /* ? */ + m_msm_1->vck_legacy_callback().set(FUNC(cps_state::m5205_int2)); /* interrupt function */ + m_msm_2->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */ + m_msm_2->add_route(ALL_OUTPUTS, "mono", 0.25); +} #define CODE_SIZE 0x400000 diff --git a/src/mame/drivers/firetrap.cpp b/src/mame/drivers/firetrap.cpp index 815564c257a..ae95c7d1d5c 100644 --- a/src/mame/drivers/firetrap.cpp +++ b/src/mame/drivers/firetrap.cpp @@ -615,33 +615,32 @@ void firetrap_state::machine_reset() m_coin_command_pending = 0; } -MACHINE_CONFIG_START(firetrap_state::firetrap) - +void firetrap_state::firetrap(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, FIRETRAP_XTAL/2) // 6 MHz - MCFG_DEVICE_PROGRAM_MAP(firetrap_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", firetrap_state, firetrap_irq) + Z80(config, m_maincpu, FIRETRAP_XTAL/2); // 6 MHz + m_maincpu->set_addrmap(AS_PROGRAM, &firetrap_state::firetrap_map); + m_maincpu->set_vblank_int("screen", FUNC(firetrap_state::firetrap_irq)); - MCFG_DEVICE_ADD("audiocpu", M6502, FIRETRAP_XTAL/8) // 1.5 MHz - MCFG_DEVICE_PROGRAM_MAP(sound_map) - /* IRQs are caused by the ADPCM chip */ - /* NMIs are caused by the main CPU */ + M6502(config, m_audiocpu, FIRETRAP_XTAL/8); // 1.5 MHz + m_audiocpu->set_addrmap(AS_PROGRAM, &firetrap_state::sound_map); + /* IRQs are caused by the ADPCM chip */ + /* NMIs are caused by the main CPU */ - MCFG_DEVICE_ADD("mcu", I8751, XTAL(8'000'000)) - MCFG_DEVICE_DISABLE() + I8751(config, "mcu", XTAL(8'000'000)).set_disable(); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) -// MCFG_SCREEN_REFRESH_RATE(57.4034) // PCB measurement -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) -// MCFG_SCREEN_SIZE(32*8, 32*8) -// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); +// screen.set_refresh_hz(57.4034); // PCB measurement +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ +// screen.set_size(32*8, 32*8); +// screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1); // DECO video CRTC, unverified - MCFG_SCREEN_RAW_PARAMS(FIRETRAP_XTAL/2,384,0,256,272,8,248) - MCFG_SCREEN_UPDATE_DRIVER(firetrap_state, screen_update_firetrap) - MCFG_SCREEN_PALETTE(m_palette) + screen.set_raw(FIRETRAP_XTAL/2,384,0,256,272,8,248); + screen.set_screen_update(FUNC(firetrap_state::screen_update_firetrap)); + screen.set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_firetrap) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_firetrap); PALETTE(config, m_palette, FUNC(firetrap_state::firetrap_palette), 256); /* sound hardware */ @@ -650,42 +649,42 @@ MACHINE_CONFIG_START(firetrap_state::firetrap) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); - MCFG_DEVICE_ADD("ymsnd", YM3526, FIRETRAP_XTAL/4) // 3 MHz - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + ym3526_device &ymsnd(YM3526(config, "ymsnd", FIRETRAP_XTAL/4)); // 3 MHz + ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0); LS157(config, m_adpcm_select, 0); m_adpcm_select->out_callback().set("msm", FUNC(msm5205_device::data_w)); - MCFG_DEVICE_ADD("msm", MSM5205, FIRETRAP_XTAL/32) // 375 kHz - MCFG_MSM5205_VCK_CALLBACK(WRITELINE(*this, firetrap_state, firetrap_adpcm_int)) - MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 7.8125kHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(firetrap_state::firetrapbl) + MSM5205(config, m_msm, FIRETRAP_XTAL/32); // 375 kHz + m_msm->vck_callback().set(FUNC(firetrap_state::firetrap_adpcm_int)); + m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 7.8125kHz */ + m_msm->add_route(ALL_OUTPUTS, "mono", 0.30); +} +void firetrap_state::firetrapbl(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, FIRETRAP_XTAL/2) // 6 MHz - MCFG_DEVICE_PROGRAM_MAP(firetrap_bootleg_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", firetrap_state, firetrap_irq) + Z80(config, m_maincpu, FIRETRAP_XTAL/2); // 6 MHz + m_maincpu->set_addrmap(AS_PROGRAM, &firetrap_state::firetrap_bootleg_map); + m_maincpu->set_vblank_int("screen", FUNC(firetrap_state::firetrap_irq)); - MCFG_DEVICE_ADD("audiocpu", M6502, FIRETRAP_XTAL/8) // 1.5 MHz - MCFG_DEVICE_PROGRAM_MAP(sound_map) - /* IRQs are caused by the ADPCM chip */ - /* NMIs are caused by the main CPU */ + M6502(config, m_audiocpu, FIRETRAP_XTAL/8); // 1.5 MHz + m_audiocpu->set_addrmap(AS_PROGRAM, &firetrap_state::sound_map); + /* IRQs are caused by the ADPCM chip */ + /* NMIs are caused by the main CPU */ /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) -// MCFG_SCREEN_REFRESH_RATE(57.4034) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) -// MCFG_SCREEN_SIZE(32*8, 32*8) -// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); +// screen.set_refresh_hz(57.4034); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ +// screen.set_size(32*8, 32*8); +// screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1); // DECO video CRTC, unverified - MCFG_SCREEN_RAW_PARAMS(FIRETRAP_XTAL/2,384,0,256,272,8,248) - MCFG_SCREEN_UPDATE_DRIVER(firetrap_state, screen_update_firetrap) - MCFG_SCREEN_PALETTE(m_palette) + screen.set_raw(FIRETRAP_XTAL/2,384,0,256,272,8,248); + screen.set_screen_update(FUNC(firetrap_state::screen_update_firetrap)); + screen.set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_firetrap) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_firetrap); PALETTE(config, m_palette, FUNC(firetrap_state::firetrap_palette), 256); /* sound hardware */ @@ -694,17 +693,17 @@ MACHINE_CONFIG_START(firetrap_state::firetrapbl) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); - MCFG_DEVICE_ADD("ymsnd", YM3526, FIRETRAP_XTAL/4) // 3 MHz - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + ym3526_device &ymsnd(YM3526(config, "ymsnd", FIRETRAP_XTAL/4)); // 3 MHz + ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0); LS157(config, m_adpcm_select, 0); m_adpcm_select->out_callback().set("msm", FUNC(msm5205_device::data_w)); - MCFG_DEVICE_ADD("msm", MSM5205, FIRETRAP_XTAL/32) // 375 kHz - MCFG_MSM5205_VCK_CALLBACK(WRITELINE(*this, firetrap_state, firetrap_adpcm_int)) - MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 7.8125kHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END + MSM5205(config, m_msm, FIRETRAP_XTAL/32); // 375 kHz + m_msm->vck_callback().set(FUNC(firetrap_state::firetrap_adpcm_int)); + m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 7.8125kHz */ + m_msm->add_route(ALL_OUTPUTS, "mono", 0.30); +} diff --git a/src/mame/drivers/fromance.cpp b/src/mame/drivers/fromance.cpp index 61ea744dabd..66f04e81a1c 100644 --- a/src/mame/drivers/fromance.cpp +++ b/src/mame/drivers/fromance.cpp @@ -900,16 +900,16 @@ MACHINE_RESET_MEMBER(fromance_state,fromance) m_flipscreen = 0; } -MACHINE_CONFIG_START(fromance_state::nekkyoku) - +void fromance_state::nekkyoku(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,12000000/2) /* 6.00 Mhz ? */ - MCFG_DEVICE_PROGRAM_MAP(nekkyoku_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", fromance_state, irq0_line_hold) + Z80(config, m_maincpu, 12000000/2); /* 6.00 Mhz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &fromance_state::nekkyoku_main_map); + m_maincpu->set_vblank_int("screen", FUNC(fromance_state::irq0_line_hold)); - MCFG_DEVICE_ADD("sub", Z80,12000000/2) /* 6.00 Mhz ? */ - MCFG_DEVICE_PROGRAM_MAP(nekkyoku_sub_map) - MCFG_DEVICE_IO_MAP(nekkyoku_sub_io_map) + Z80(config, m_subcpu, 12000000/2); /* 6.00 Mhz ? */ + m_subcpu->set_addrmap(AS_PROGRAM, &fromance_state::nekkyoku_sub_map); + m_subcpu->set_addrmap(AS_IO, &fromance_state::nekkyoku_sub_io_map); GENERIC_LATCH_8(config, m_sublatch); m_sublatch->set_separate_acknowledge(true); @@ -918,15 +918,15 @@ MACHINE_CONFIG_START(fromance_state::nekkyoku) MCFG_MACHINE_RESET_OVERRIDE(fromance_state,fromance) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(512, 256); + m_screen->set_visarea(0, 352-1, 0, 240-1); + m_screen->set_screen_update(FUNC(fromance_state::screen_update_fromance)); + m_screen->set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_fromance) - MCFG_PALETTE_ADD("palette", 1024) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_fromance); + PALETTE(config, m_palette).set_entries(1024); VSYSTEM_GGA(config, m_gga, 14318181 / 2); // clock not verified m_gga->write_cb().set(FUNC(fromance_state::fromance_gga_data_w)); @@ -938,23 +938,22 @@ MACHINE_CONFIG_START(fromance_state::nekkyoku) AY8910(config, "aysnd", 12000000/6).add_route(ALL_OUTPUTS, "mono", 0.15); // type not verified - MCFG_DEVICE_ADD("msm", MSM5205, 384000) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, fromance_state, fromance_adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(fromance_state::idolmj) + MSM5205(config, m_msm, 384000); + m_msm->vck_legacy_callback().set(FUNC(fromance_state::fromance_adpcm_int)); /* IRQ handler */ + m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz */ + m_msm->add_route(ALL_OUTPUTS, "mono", 0.80); +} +void fromance_state::idolmj(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000) / 2) /* 6.00 Mhz ? */ - MCFG_DEVICE_PROGRAM_MAP(fromance_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", fromance_state, irq0_line_hold) + Z80(config, m_maincpu, XTAL(12'000'000) / 2); /* 6.00 Mhz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &fromance_state::fromance_main_map); + m_maincpu->set_vblank_int("screen", FUNC(fromance_state::irq0_line_hold)); - MCFG_DEVICE_ADD("sub", Z80, XTAL(12'000'000) / 2) /* 6.00 Mhz ? */ - MCFG_DEVICE_PROGRAM_MAP(fromance_sub_map) - MCFG_DEVICE_IO_MAP(idolmj_sub_io_map) + Z80(config, m_subcpu, XTAL(12'000'000) / 2); /* 6.00 Mhz ? */ + m_subcpu->set_addrmap(AS_PROGRAM, &fromance_state::fromance_sub_map); + m_subcpu->set_addrmap(AS_IO, &fromance_state::idolmj_sub_io_map); GENERIC_LATCH_8(config, m_sublatch); m_sublatch->set_separate_acknowledge(true); @@ -963,15 +962,15 @@ MACHINE_CONFIG_START(fromance_state::idolmj) MCFG_MACHINE_RESET_OVERRIDE(fromance_state,fromance) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(512, 256); + m_screen->set_visarea(0, 352-1, 0, 240-1); + m_screen->set_screen_update(FUNC(fromance_state::screen_update_fromance)); + m_screen->set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_fromance) - MCFG_PALETTE_ADD("palette", 2048) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_fromance); + PALETTE(config, m_palette).set_entries(2048); VSYSTEM_GGA(config, m_gga, XTAL(14'318'181) / 2); // divider not verified m_gga->write_cb().set(FUNC(fromance_state::fromance_gga_data_w)); @@ -983,23 +982,23 @@ MACHINE_CONFIG_START(fromance_state::idolmj) YM2149(config, "aysnd", 12000000/6).add_route(ALL_OUTPUTS, "mono", 0.15); - MCFG_DEVICE_ADD("msm", MSM5205, 384000) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, fromance_state, fromance_adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END + MSM5205(config, m_msm, 384000); + m_msm->vck_legacy_callback().set(FUNC(fromance_state::fromance_adpcm_int)); /* IRQ handler */ + m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz */ + m_msm->add_route(ALL_OUTPUTS, "mono", 0.80); +} -MACHINE_CONFIG_START(fromance_state::fromance) - +void fromance_state::fromance(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000) / 2) /* 6.00 Mhz ? */ - MCFG_DEVICE_PROGRAM_MAP(fromance_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", fromance_state, irq0_line_hold) + Z80(config, m_maincpu, XTAL(12'000'000) / 2); /* 6.00 Mhz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &fromance_state::fromance_main_map); + m_maincpu->set_vblank_int("screen", FUNC(fromance_state::irq0_line_hold)); - MCFG_DEVICE_ADD("sub", Z80, XTAL(12'000'000) / 2) /* 6.00 Mhz ? */ - MCFG_DEVICE_PROGRAM_MAP(fromance_sub_map) - MCFG_DEVICE_IO_MAP(fromance_sub_io_map) + Z80(config, m_subcpu, XTAL(12'000'000) / 2); /* 6.00 Mhz ? */ + m_subcpu->set_addrmap(AS_PROGRAM, &fromance_state::fromance_sub_map); + m_subcpu->set_addrmap(AS_IO, &fromance_state::fromance_sub_io_map); GENERIC_LATCH_8(config, m_sublatch); m_sublatch->set_separate_acknowledge(true); @@ -1008,15 +1007,15 @@ MACHINE_CONFIG_START(fromance_state::fromance) MCFG_MACHINE_RESET_OVERRIDE(fromance_state,fromance) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(512, 256); + m_screen->set_visarea(0, 352-1, 0, 240-1); + m_screen->set_screen_update(FUNC(fromance_state::screen_update_fromance)); + m_screen->set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_fromance) - MCFG_PALETTE_ADD("palette", 2048) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_fromance); + PALETTE(config, m_palette).set_entries(2048); VSYSTEM_GGA(config, m_gga, XTAL(14'318'181) / 2); // divider not verified m_gga->write_cb().set(FUNC(fromance_state::fromance_gga_data_w)); @@ -1026,14 +1025,13 @@ MACHINE_CONFIG_START(fromance_state::fromance) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2413, 3579545) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) + YM2413(config, "ymsnd", 3579545).add_route(ALL_OUTPUTS, "mono", 0.90); - MCFG_DEVICE_ADD("msm", MSM5205, 384000) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, fromance_state, fromance_adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) -MACHINE_CONFIG_END + MSM5205(config, m_msm, 384000); + m_msm->vck_legacy_callback().set(FUNC(fromance_state::fromance_adpcm_int)); /* IRQ handler */ + m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz */ + m_msm->add_route(ALL_OUTPUTS, "mono", 0.10); +} diff --git a/src/mame/drivers/gladiatr.cpp b/src/mame/drivers/gladiatr.cpp index fcf1e61e9f4..0a7e0fb86f8 100644 --- a/src/mame/drivers/gladiatr.cpp +++ b/src/mame/drivers/gladiatr.cpp @@ -938,23 +938,23 @@ GFXDECODE_END -MACHINE_CONFIG_START(ppking_state::ppking) - +void ppking_state::ppking(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 12_MHz_XTAL/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(ppking_cpu1_map) - MCFG_DEVICE_IO_MAP(ppking_cpu1_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", ppking_state, irq0_line_hold) + Z80(config, m_maincpu, 12_MHz_XTAL/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &ppking_state::ppking_cpu1_map); + m_maincpu->set_addrmap(AS_IO, &ppking_state::ppking_cpu1_io); + m_maincpu->set_vblank_int("screen", FUNC(ppking_state::irq0_line_hold)); - MCFG_DEVICE_ADD("sub", Z80, 12_MHz_XTAL/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(cpu2_map) - MCFG_DEVICE_IO_MAP(ppking_cpu2_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(ppking_state, irq0_line_assert, 60) + Z80(config, m_subcpu, 12_MHz_XTAL/4); /* verified on pcb */ + m_subcpu->set_addrmap(AS_PROGRAM, &ppking_state::cpu2_map); + m_subcpu->set_addrmap(AS_IO, &ppking_state::ppking_cpu2_io); + m_subcpu->set_periodic_int(FUNC(ppking_state::irq0_line_assert), attotime::from_hz(60)); - MCFG_DEVICE_ADD("audiocpu", MC6809, 12_MHz_XTAL/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(ppking_cpu3_map) + MC6809(config, m_audiocpu, 12_MHz_XTAL/4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &ppking_state::ppking_cpu3_map); - MCFG_QUANTUM_TIME(attotime::from_hz(6000)) + config.m_minimum_quantum = attotime::from_hz(6000); MCFG_MACHINE_RESET_OVERRIDE(ppking_state, ppking) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -969,17 +969,17 @@ MACHINE_CONFIG_START(ppking_state::ppking) mainlatch.q_out_cb<7>().set(FUNC(ppking_state::flipscreen_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) -// MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) -// MCFG_SCREEN_SIZE(32*8, 32*8) -// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_RAW_PARAMS(12_MHz_XTAL/2,384,0,256,264,16,240) // assume same as Arkanoid - MCFG_SCREEN_UPDATE_DRIVER(ppking_state, screen_update_ppking) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); +// screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); +// screen.set_size(32*8, 32*8); +// screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_raw(12_MHz_XTAL/2,384,0,256,264,16,240); // assume same as Arkanoid + screen.set_screen_update(FUNC(ppking_state::screen_update_ppking)); + screen.set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_ppking) - MCFG_PALETTE_ADD("palette", 1024) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_ppking); + PALETTE(config, m_palette).set_entries(1024); MCFG_VIDEO_START_OVERRIDE(ppking_state, ppking) @@ -998,25 +998,25 @@ MACHINE_CONFIG_START(ppking_state::ppking) ymsnd.add_route(2, "mono", 0.60); ymsnd.add_route(3, "mono", 0.50); - MCFG_DEVICE_ADD("msm", MSM5205, 455_kHz_XTAL) /* verified on pcb */ - MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* vclk input mode */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(gladiatr_state::gladiatr) + MSM5205(config, m_msm, 455_kHz_XTAL); /* verified on pcb */ + m_msm->set_prescaler_selector(msm5205_device::SEX_4B); /* vclk input mode */ + m_msm->add_route(ALL_OUTPUTS, "mono", 0.60); +} +void gladiatr_state::gladiatr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 12_MHz_XTAL/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(gladiatr_cpu1_map) - MCFG_DEVICE_IO_MAP(gladiatr_cpu1_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gladiatr_state, irq0_line_hold) + Z80(config, m_maincpu, 12_MHz_XTAL/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &gladiatr_state::gladiatr_cpu1_map); + m_maincpu->set_addrmap(AS_IO, &gladiatr_state::gladiatr_cpu1_io); + m_maincpu->set_vblank_int("screen", FUNC(gladiatr_state::irq0_line_hold)); - MCFG_DEVICE_ADD("sub", Z80, 12_MHz_XTAL/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(cpu2_map) - MCFG_DEVICE_IO_MAP(gladiatr_cpu2_io) + Z80(config, m_subcpu, 12_MHz_XTAL/4); /* verified on pcb */ + m_subcpu->set_addrmap(AS_PROGRAM, &gladiatr_state::cpu2_map); + m_subcpu->set_addrmap(AS_IO, &gladiatr_state::gladiatr_cpu2_io); - MCFG_DEVICE_ADD("audiocpu", MC6809, 12_MHz_XTAL/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(gladiatr_cpu3_map) + MC6809(config, m_audiocpu, 12_MHz_XTAL/4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &gladiatr_state::gladiatr_cpu3_map); MCFG_MACHINE_RESET_OVERRIDE(gladiatr_state,gladiator) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // NEC uPD449 CMOS SRAM @@ -1056,22 +1056,22 @@ MACHINE_CONFIG_START(gladiatr_state::gladiatr) m_csnd->t1_in_cb().set(FUNC(gladiatr_state::csnd_t1_r)); /* lazy way to make polled serial between MCUs work */ - MCFG_QUANTUM_PERFECT_CPU("ucpu") + config.m_perfect_cpu_quantum = subtag("ucpu"); - MCFG_CLOCK_ADD("tclk", 12_MHz_XTAL/8/128/2) /* verified on pcb */ - MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, gladiatr_state, tclk_w)); + CLOCK(config, "tclk", 12_MHz_XTAL/8/128/2) /* verified on pcb */ + .signal_handler().set(FUNC(gladiatr_state::tclk_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(gladiatr_state, screen_update_gladiatr) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(gladiatr_state::screen_update_gladiatr)); + screen.set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_gladiatr) - MCFG_PALETTE_ADD("palette", 1024) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_gladiatr); + PALETTE(config, m_palette).set_entries(1024); MCFG_VIDEO_START_OVERRIDE(gladiatr_state,gladiatr) @@ -1089,12 +1089,12 @@ MACHINE_CONFIG_START(gladiatr_state::gladiatr) ymsnd.add_route(2, "mono", 0.60); ymsnd.add_route(3, "mono", 0.50); - MCFG_DEVICE_ADD("msm", MSM5205, 455_kHz_XTAL) /* verified on pcb */ - MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* vclk input mode */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) + MSM5205(config, m_msm, 455_kHz_XTAL); /* verified on pcb */ + m_msm->set_prescaler_selector(msm5205_device::SEX_4B); /* vclk input mode */ + m_msm->add_route(ALL_OUTPUTS, "mono", 0.60); - MCFG_DEVICE_ADD("filtlatch", LS259, 0) // 9R - filters on sound output -MACHINE_CONFIG_END + LS259(config, "filtlatch", 0); // 9R - filters on sound output +} /*************************************************************************** diff --git a/src/mame/drivers/gsword.cpp b/src/mame/drivers/gsword.cpp index ee65e641dcd..4403e40d75a 100644 --- a/src/mame/drivers/gsword.cpp +++ b/src/mame/drivers/gsword.cpp @@ -914,21 +914,21 @@ static GFXDECODE_START( gfx_gsword ) GFXDECODE_END -MACHINE_CONFIG_START(gsword_state::gsword) - +void gsword_state::gsword(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, Z80, XTAL(18'000'000)/6) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(cpu1_map) - MCFG_DEVICE_IO_MAP(cpu1_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gsword_state, irq0_line_hold) + Z80(config, m_maincpu, XTAL(18'000'000)/6); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &gsword_state::cpu1_map); + m_maincpu->set_addrmap(AS_IO, &gsword_state::cpu1_io_map); + m_maincpu->set_vblank_int("screen", FUNC(gsword_state::irq0_line_hold)); - MCFG_DEVICE_ADD(m_subcpu, Z80, XTAL(18'000'000)/6) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(cpu2_map) - MCFG_DEVICE_IO_MAP(cpu2_io_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(gsword_state, sound_interrupt, 4*60) + Z80(config, m_subcpu, XTAL(18'000'000)/6); /* verified on pcb */ + m_subcpu->set_addrmap(AS_PROGRAM, &gsword_state::cpu2_map); + m_subcpu->set_addrmap(AS_IO, &gsword_state::cpu2_io_map); + m_subcpu->set_periodic_int(FUNC(gsword_state::sound_interrupt), attotime::from_hz(4*60)); - MCFG_DEVICE_ADD(m_audiocpu, Z80, XTAL(18'000'000)/6) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(cpu3_map) + Z80(config, m_audiocpu, XTAL(18'000'000)/6); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &gsword_state::cpu3_map); upi41_cpu_device &mcu1(I8041(config, "mcu1", 12'000'000/2)); // clock unknown, using value from gladiatr mcu1.p1_in_cb().set([this] () { return ioport("MCU1.P1")->read() | BIT(m_mcu2_p1, 0); }); @@ -955,16 +955,16 @@ MACHINE_CONFIG_START(gsword_state::gsword) CLOCK(config, "tclk", 12'000'000/8/128/2).signal_handler().set([this] (int state) { m_tclk_val = state != 0; }); // lazy way to ensure communication works - MCFG_QUANTUM_PERFECT_CPU("mcu1") + config.m_perfect_cpu_quantum = subtag("mcu1"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(gsword_state, screen_update_gsword) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(gsword_state::screen_update_gsword)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gsword); PALETTE(config, m_palette, FUNC(gsword_state::gsword_palette), 64*4 + 64*4, 256); @@ -980,23 +980,23 @@ MACHINE_CONFIG_START(gsword_state::gsword) m_ay1->port_a_write_callback().set(FUNC(gsword_state::nmi_set_w)); m_ay1->add_route(ALL_OUTPUTS, "mono", 0.30); - MCFG_DEVICE_ADD("msm", MSM5205, XTAL(400'000)) /* verified on pcb */ - MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* vclk input mode */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(josvolly_state::josvolly) + msm5205_device &msm(MSM5205(config, "msm", XTAL(400'000))); /* verified on pcb */ + msm.set_prescaler_selector(msm5205_device::SEX_4B); /* vclk input mode */ + msm.add_route(ALL_OUTPUTS, "mono", 0.60); +} +void josvolly_state::josvolly(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 18000000/4) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(cpu1_map) - MCFG_DEVICE_IO_MAP(josvolly_cpu1_io_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(josvolly_state, irq0_line_hold, 2*60) + Z80(config, m_maincpu, 18000000/4); /* ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &josvolly_state::cpu1_map); + m_maincpu->set_addrmap(AS_IO, &josvolly_state::josvolly_cpu1_io_map); + m_maincpu->set_periodic_int(FUNC(josvolly_state::irq0_line_hold), attotime::from_hz(2*60)); - MCFG_DEVICE_ADD("audiocpu", Z80, 12000000/4) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(josvolly_cpu2_map) - MCFG_DEVICE_IO_MAP(josvolly_cpu2_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", josvolly_state, irq0_line_assert) + Z80(config, m_audiocpu, 12000000/4); /* ? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &josvolly_state::josvolly_cpu2_map); + m_audiocpu->set_addrmap(AS_IO, &josvolly_state::josvolly_cpu2_io_map); + m_audiocpu->set_vblank_int("screen", FUNC(josvolly_state::irq0_line_assert)); upi41_cpu_device &mcu1(I8741(config, "mcu1", 18000000/2)); /* ? */ mcu1.p1_in_cb().set(FUNC(josvolly_state::mcu1_p1_r)); @@ -1019,17 +1019,16 @@ MACHINE_CONFIG_START(josvolly_state::josvolly) ppi.in_pc_callback().set_ioport("IN0"); // START // the second MCU polls the first MCU's outputs, so it needs tight sync - MCFG_QUANTUM_PERFECT_CPU("mcu2") - + config.m_perfect_cpu_quantum = subtag("mcu2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(josvolly_state, screen_update_gsword) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(josvolly_state::screen_update_gsword)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gsword); PALETTE(config, m_palette, FUNC(josvolly_state::josvolly_palette), 64*4 + 64*4, 256); @@ -1038,14 +1037,12 @@ MACHINE_CONFIG_START(josvolly_state::josvolly) SPEAKER(config, "mono").front_center(); AY8910(config, m_ay0, 1500000).add_route(ALL_OUTPUTS, "mono", 0.30); - AY8910(config, m_ay1, 1500000).add_route(ALL_OUTPUTS, "mono", 0.30); #if 0 - MCFG_DEVICE_ADD("msm", MSM5205, 384000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) + MSM5205(config, "msm", 384000).add_route(ALL_OUTPUTS, "mono", 0.60); #endif -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/hnayayoi.cpp b/src/mame/drivers/hnayayoi.cpp index e00cde62f19..eaa03fc3925 100644 --- a/src/mame/drivers/hnayayoi.cpp +++ b/src/mame/drivers/hnayayoi.cpp @@ -542,15 +542,14 @@ void hnayayoi_state::machine_reset() } -MACHINE_CONFIG_START(hnayayoi_state::hnayayoi) - +void hnayayoi_state::hnayayoi(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 20000000/4 ) /* 5 MHz ???? */ - MCFG_DEVICE_PROGRAM_MAP(hnayayoi_map) - MCFG_DEVICE_IO_MAP(hnayayoi_io_map) + Z80(config, m_maincpu, 20000000/4); /* 5 MHz ???? */ + m_maincpu->set_addrmap(AS_PROGRAM, &hnayayoi_state::hnayayoi_map); + m_maincpu->set_addrmap(AS_IO, &hnayayoi_state::hnayayoi_io_map); - MCFG_DEVICE_ADD("nmiclock", CLOCK, 8000) - MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, hnayayoi_state, nmi_clock_w)) + CLOCK(config, "nmiclock", 8000).signal_handler().set(FUNC(hnayayoi_state::nmi_clock_w)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -561,9 +560,9 @@ MACHINE_CONFIG_START(hnayayoi_state::hnayayoi) m_mainlatch->q_out_cb<4>().set(FUNC(hnayayoi_state::nmi_enable_w)).invert(); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(20_MHz_XTAL / 2, 632, 0, 512, 263, 0, 243) - MCFG_SCREEN_UPDATE_DEVICE("crtc", hd6845_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(20_MHz_XTAL / 2, 632, 0, 512, 263, 0, 243); + screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update)); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256); @@ -586,26 +585,26 @@ MACHINE_CONFIG_START(hnayayoi_state::hnayayoi) ymsnd.add_route(2, "mono", 0.25); ymsnd.add_route(3, "mono", 0.80); - MCFG_DEVICE_ADD("msm", MSM5205, 384000) - MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + MSM5205(config, m_msm, 384000); + m_msm->set_prescaler_selector(msm5205_device::SEX_4B); + m_msm->add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_START(hnayayoi_state::hnfubuki) +void hnayayoi_state::hnfubuki(machine_config &config) +{ hnayayoi(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(hnfubuki_map) - MCFG_DEVICE_REMOVE_ADDRESS_MAP(AS_IO) + m_maincpu->set_addrmap(AS_PROGRAM, &hnayayoi_state::hnfubuki_map); + m_maincpu->set_addrmap(AS_IO, address_map_constructor()); // D5 m_mainlatch->q_out_cb<4>().set(FUNC(hnayayoi_state::nmi_enable_w)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hnayayoi_state::untoucha) +void hnayayoi_state::untoucha(machine_config &config) +{ hnayayoi(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(untoucha_map) - MCFG_DEVICE_IO_MAP(untoucha_io_map) + m_maincpu->set_addrmap(AS_PROGRAM, &hnayayoi_state::untoucha_map); + m_maincpu->set_addrmap(AS_IO, &hnayayoi_state::untoucha_io_map); m_mainlatch->q_out_cb<1>().set(m_msm, FUNC(msm5205_device::vclk_w)); m_mainlatch->q_out_cb<2>().set(FUNC(hnayayoi_state::nmi_enable_w)); @@ -615,7 +614,7 @@ MACHINE_CONFIG_START(hnayayoi_state::untoucha) subdevice("crtc")->set_update_row_callback(FUNC(hnayayoi_state::untoucha_update_row), this); MCFG_VIDEO_START_OVERRIDE(hnayayoi_state,untoucha) -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/hyperspt.cpp b/src/mame/drivers/hyperspt.cpp index 6fcec542d85..855cb323eb3 100644 --- a/src/mame/drivers/hyperspt.cpp +++ b/src/mame/drivers/hyperspt.cpp @@ -292,14 +292,14 @@ WRITE_LINE_MEMBER(hyperspt_state::vblank_irq) m_maincpu->set_input_line(0, ASSERT_LINE); } -MACHINE_CONFIG_START(hyperspt_state::hyperspt) - +void hyperspt_state::hyperspt(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, KONAMI1, XTAL(18'432'000)/12) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(hyperspt_map) + KONAMI1(config, m_maincpu, XTAL(18'432'000)/12); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &hyperspt_state::hyperspt_map); - MCFG_DEVICE_ADD(m_audiocpu, Z80,XTAL(14'318'181)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(hyperspt_sound_map) + Z80(config, m_audiocpu, XTAL(14'318'181)/4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &hyperspt_state::hyperspt_sound_map); ls259_device &mainlatch(LS259(config, "mainlatch")); // F2 mainlatch.q_out_cb<0>().set(FUNC(hyperspt_state::flipscreen_w)); @@ -315,14 +315,14 @@ MACHINE_CONFIG_START(hyperspt_state::hyperspt) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(hyperspt_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, hyperspt_state, vblank_irq)) + 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(32*8, 32*8); + m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(hyperspt_state::screen_update)); + m_screen->set_palette(m_palette); + m_screen->screen_vblank().set(FUNC(hyperspt_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_hyperspt); PALETTE(config, m_palette, FUNC(hyperspt_state::hyperspt_palette), 16*16+16*16, 32); @@ -332,18 +332,20 @@ MACHINE_CONFIG_START(hyperspt_state::hyperspt) GENERIC_LATCH_8(config, "soundlatch"); - MCFG_DEVICE_ADD(m_soundbrd, TRACKFLD_AUDIO, 0, m_audiocpu, m_vlm) + TRACKFLD_AUDIO(config, m_soundbrd, 0, m_audiocpu, m_vlm); - MCFG_DEVICE_ADD(m_dac, DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // 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) + DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.4); // 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); - MCFG_DEVICE_ADD(m_sn, SN76496, XTAL(14'318'181)/8) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) + SN76496(config, m_sn, XTAL(14'318'181)/8); /* verified on pcb */ + m_sn->add_route(ALL_OUTPUTS, "speaker", 1.0); - MCFG_DEVICE_ADD(m_vlm, VLM5030, XTAL(3'579'545)) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) -MACHINE_CONFIG_END + VLM5030(config, m_vlm, XTAL(3'579'545)); /* verified on pcb */ + m_vlm->add_route(ALL_OUTPUTS, "speaker", 1.0); +} void hyperspt_state::hyprolyb_adpcm_map(address_map &map) { @@ -368,28 +370,28 @@ void hyperspt_state::hyprolyb_adpcm_map(address_map &map) map(0x8000, 0xffff).rom(); } - -MACHINE_CONFIG_START(hyperspt_state::hypersptb) +void hyperspt_state::hypersptb(machine_config &config) +{ hyperspt(config); - MCFG_DEVICE_REMOVE("vlm") + config.device_remove("vlm"); m_audiocpu->set_addrmap(AS_PROGRAM, address_map_constructor(&std::remove_pointer_t::soundb_map, tag(), this)); - MCFG_DEVICE_ADD("adpcm", M6802, XTAL(14'318'181)/8) /* unknown clock */ - MCFG_DEVICE_PROGRAM_MAP(hyprolyb_adpcm_map) + M6802(config, "adpcm", XTAL(14'318'181)/8) /* unknown clock */ + .set_addrmap(AS_PROGRAM, &hyperspt_state::hyprolyb_adpcm_map); GENERIC_LATCH_8(config, "soundlatch2"); - MCFG_DEVICE_ADD("hyprolyb_adpcm", HYPROLYB_ADPCM, 0) + HYPROLYB_ADPCM(config, "hyprolyb_adpcm", 0); - MCFG_DEVICE_ADD("msm", MSM5205, 384000) - MCFG_MSM5205_VCLK_CB(WRITELINE("hyprolyb_adpcm", hyprolyb_adpcm_device, vck_callback)) /* VCK function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4 kHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) -MACHINE_CONFIG_END + msm5205_device &msm(MSM5205(config, "msm", 384000)); + msm.vck_legacy_callback().set("hyprolyb_adpcm", FUNC(hyprolyb_adpcm_device::vck_callback)); /* VCK function */ + msm.set_prescaler_selector(msm5205_device::S96_4B); /* 4 kHz */ + msm.add_route(ALL_OUTPUTS, "speaker", 0.5); +} - -MACHINE_CONFIG_START(hyperspt_state::roadf) +void hyperspt_state::roadf(machine_config &config) +{ hyperspt(config); m_maincpu->set_addrmap(AS_PROGRAM, address_map_constructor(&std::remove_pointer_t::roadf_map, tag(), this)); @@ -398,8 +400,8 @@ MACHINE_CONFIG_START(hyperspt_state::roadf) MCFG_VIDEO_START_OVERRIDE(hyperspt_state,roadf) - MCFG_DEVICE_REMOVE("vlm") -MACHINE_CONFIG_END + config.device_remove("vlm"); +} /*************************************************************************** diff --git a/src/mame/drivers/jangou.cpp b/src/mame/drivers/jangou.cpp index 1bc6fb59389..229cdda4e04 100644 --- a/src/mame/drivers/jangou.cpp +++ b/src/mame/drivers/jangou.cpp @@ -873,22 +873,22 @@ MACHINE_RESET_MEMBER(jangou_state,jngolady) MACHINE_CONFIG_START(jangou_state::jangou) /* basic machine hardware */ - MCFG_DEVICE_ADD("cpu0", Z80, MASTER_CLOCK / 8) - MCFG_DEVICE_PROGRAM_MAP(cpu0_map) - MCFG_DEVICE_IO_MAP(cpu0_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", jangou_state, irq0_line_hold) + Z80(config, m_cpu_0, MASTER_CLOCK / 8); + m_cpu_0->set_addrmap(AS_PROGRAM, &jangou_state::cpu0_map); + m_cpu_0->set_addrmap(AS_IO, &jangou_state::cpu0_io); + m_cpu_0->set_vblank_int("screen", FUNC(jangou_state::irq0_line_hold)); - MCFG_DEVICE_ADD("cpu1", Z80, MASTER_CLOCK / 8) - MCFG_DEVICE_PROGRAM_MAP(cpu1_map) - MCFG_DEVICE_IO_MAP(cpu1_io) + Z80(config, m_cpu_1, MASTER_CLOCK / 8); + m_cpu_1->set_addrmap(AS_PROGRAM, &jangou_state::cpu1_map); + m_cpu_1->set_addrmap(AS_IO, &jangou_state::cpu1_io); - MCFG_JANGOU_BLITTER_ADD("blitter", MASTER_CLOCK/4) + JANGOU_BLITTER(config, "blitter", MASTER_CLOCK/4); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4,320,0,256,264,16,240) // assume same as nightgal.cpp - MCFG_SCREEN_UPDATE_DRIVER(jangou_state, screen_update_jangou) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(MASTER_CLOCK/4,320,0,256,264,16,240); // assume same as nightgal.cpp + screen.set_screen_update(FUNC(jangou_state::screen_update_jangou)); + screen.set_palette(m_palette); PALETTE(config, m_palette, FUNC(jangou_state::jangou_palette), 32); @@ -902,66 +902,62 @@ MACHINE_CONFIG_START(jangou_state::jangou) aysnd.port_b_read_callback().set(FUNC(jangou_state::input_system_r)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.40); - MCFG_DEVICE_ADD("cvsd", HC55516, MASTER_CLOCK / 1024) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) -MACHINE_CONFIG_END + HC55516(config, m_cvsd, MASTER_CLOCK / 1024); + m_cvsd->add_route(ALL_OUTPUTS, "mono", 0.60); +} -MACHINE_CONFIG_START(jangou_state::jngolady) +void jangou_state::jngolady(machine_config &config) +{ jangou(config); /* basic machine hardware */ + m_cpu_0->set_addrmap(AS_PROGRAM, &jangou_state::jngolady_cpu0_map); - MCFG_DEVICE_MODIFY("cpu0") - MCFG_DEVICE_PROGRAM_MAP(jngolady_cpu0_map) + m_cpu_1->set_addrmap(AS_PROGRAM, &jangou_state::jngolady_cpu1_map); + m_cpu_1->set_addrmap(AS_IO, &jangou_state::jngolady_cpu1_io); - MCFG_DEVICE_MODIFY("cpu1") - MCFG_DEVICE_PROGRAM_MAP(jngolady_cpu1_map) - MCFG_DEVICE_IO_MAP(jngolady_cpu1_io) - - MCFG_DEVICE_ADD("nsc", NSC8105, MASTER_CLOCK / 8) - MCFG_DEVICE_PROGRAM_MAP(nsc_map) + NSC8105(config, m_nsc, MASTER_CLOCK / 8); + m_nsc->set_addrmap(AS_PROGRAM, &jangou_state::nsc_map); MCFG_MACHINE_START_OVERRIDE(jangou_state,jngolady) MCFG_MACHINE_RESET_OVERRIDE(jangou_state,jngolady) /* sound hardware */ - MCFG_DEVICE_REMOVE("cvsd") + config.device_remove("cvsd"); - MCFG_DEVICE_ADD("msm", MSM5205, XTAL(400'000)) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, jangou_state, jngolady_vclk_cb)) - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END + MSM5205(config, m_msm, XTAL(400'000)); + m_msm->vck_legacy_callback().set(FUNC(jangou_state::jngolady_vclk_cb)); + m_msm->set_prescaler_selector(msm5205_device::S96_4B); + m_msm->add_route(ALL_OUTPUTS, "mono", 0.80); +} -MACHINE_CONFIG_START(jangou_state::cntrygrl) +void jangou_state::cntrygrl(machine_config &config) +{ jangou(config); /* basic machine hardware */ + m_cpu_0->set_addrmap(AS_PROGRAM, &jangou_state::cntrygrl_cpu0_map); + m_cpu_0->set_addrmap(AS_IO, &jangou_state::cntrygrl_cpu0_io); - MCFG_DEVICE_MODIFY("cpu0") - MCFG_DEVICE_PROGRAM_MAP(cntrygrl_cpu0_map ) - MCFG_DEVICE_IO_MAP(cntrygrl_cpu0_io ) - - MCFG_DEVICE_REMOVE("cpu1") + config.device_remove("cpu1"); MCFG_MACHINE_START_OVERRIDE(jangou_state,common) MCFG_MACHINE_RESET_OVERRIDE(jangou_state,common) /* sound hardware */ - MCFG_DEVICE_REMOVE("cvsd") - MCFG_DEVICE_REMOVE("soundlatch") -MACHINE_CONFIG_END + config.device_remove("cvsd"); + config.device_remove("soundlatch"); +} -MACHINE_CONFIG_START(jangou_state::roylcrdn) +void jangou_state::roylcrdn(machine_config &config) +{ jangou(config); /* basic machine hardware */ + m_cpu_0->set_addrmap(AS_PROGRAM, &jangou_state::roylcrdn_cpu0_map); + m_cpu_0->set_addrmap(AS_IO, &jangou_state::roylcrdn_cpu0_io); - MCFG_DEVICE_MODIFY("cpu0") - MCFG_DEVICE_PROGRAM_MAP(roylcrdn_cpu0_map ) - MCFG_DEVICE_IO_MAP(roylcrdn_cpu0_io ) - - MCFG_DEVICE_REMOVE("cpu1") + config.device_remove("cpu1"); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -969,9 +965,9 @@ MACHINE_CONFIG_START(jangou_state::roylcrdn) MCFG_MACHINE_RESET_OVERRIDE(jangou_state,common) /* sound hardware */ - MCFG_DEVICE_REMOVE("cvsd") - MCFG_DEVICE_REMOVE("soundlatch") -MACHINE_CONFIG_END + config.device_remove("cvsd"); + config.device_remove("soundlatch"); +} /*************************************