diff options
Diffstat (limited to 'src/mame/drivers/msx.cpp')
-rw-r--r-- | src/mame/drivers/msx.cpp | 72 |
1 files changed, 39 insertions, 33 deletions
diff --git a/src/mame/drivers/msx.cpp b/src/mame/drivers/msx.cpp index 6417aa77ec4..f2b2b0fba2b 100644 --- a/src/mame/drivers/msx.cpp +++ b/src/mame/drivers/msx.cpp @@ -1342,22 +1342,23 @@ void msx_state::msx_2_35_dd_drive(machine_config &config) FLOPPY_CONNECTOR(config, "fdc:1", msx_floppies, "35dd", msx_state::floppy_formats); } -MACHINE_CONFIG_START(msx2_state::msx_ym2413) - MCFG_DEVICE_ADD("ym2413", YM2413, 21.477272_MHz_XTAL / 6) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) -MACHINE_CONFIG_END +void msx2_state::msx_ym2413(machine_config &config) +{ + YM2413(config, "ym2413", 21.477272_MHz_XTAL / 6).add_route(ALL_OUTPUTS, "speaker", 0.4); +} -MACHINE_CONFIG_START(msx2_state::msx2_64kb_vram) - MCFG_DEVICE_MODIFY("v9938") - downcast<v99x8_device &>(*device).set_vram_size(0x10000); -MACHINE_CONFIG_END +void msx2_state::msx2_64kb_vram(machine_config &config) +{ + m_v9938->set_vram_size(0x10000); +} -MACHINE_CONFIG_START(msx_state::msx) +void msx_state::msx(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 10.738635_MHz_XTAL / 3) /* 3.579545 MHz */ - MCFG_DEVICE_PROGRAM_MAP(msx_memory_map) - MCFG_DEVICE_IO_MAP(msx_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", msx_state, msx_interrupt) /* Needed for mouse updates */ + Z80(config, m_maincpu, 10.738635_MHz_XTAL / 3); /* 3.579545 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &msx_state::msx_memory_map); + m_maincpu->set_addrmap(AS_IO, &msx_state::msx_io_map); + m_maincpu->set_vblank_int("screen", FUNC(msx_state::msx_interrupt)); /* Needed for mouse updates */ config.m_minimum_quantum = attotime::from_hz(60); INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline("maincpu", INPUT_LINE_IRQ0); @@ -1369,9 +1370,10 @@ MACHINE_CONFIG_START(msx_state::msx) /* sound hardware */ SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) + DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.1); + 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); WAVE(config, "wave", m_cassette).add_route(ALL_OUTPUTS, "speaker", 0.25); AY8910(config, m_ay8910, 10.738635_MHz_XTAL / 3 / 2); @@ -1401,7 +1403,7 @@ MACHINE_CONFIG_START(msx_state::msx) /* Software lists */ SOFTWARE_LIST(config, "cass_list").set_original("msx1_cass"); -MACHINE_CONFIG_END +} template<typename VDPType> @@ -1417,11 +1419,12 @@ void msx_state::msx1(VDPType &vdp_type, machine_config &config) } -MACHINE_CONFIG_START(msx2_state::msx2) +void msx2_state::msx2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 21.477272_MHz_XTAL / 6) /* 3.579545 MHz */ - MCFG_DEVICE_PROGRAM_MAP(msx_memory_map) - MCFG_DEVICE_IO_MAP(msx2_io_map) + Z80(config, m_maincpu, 21.477272_MHz_XTAL / 6); /* 3.579545 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &msx2_state::msx_memory_map); + m_maincpu->set_addrmap(AS_IO, &msx2_state::msx2_io_map); config.m_minimum_quantum = attotime::from_hz(60); INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline("maincpu", INPUT_LINE_IRQ0); @@ -1440,9 +1443,10 @@ MACHINE_CONFIG_START(msx2_state::msx2) /* sound hardware */ SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) + DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.1); + 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); WAVE(config, "wave", m_cassette).add_route(ALL_OUTPUTS, "speaker", 0.25); AY8910(config, m_ay8910, 21.477272_MHz_XTAL / 6 / 2); @@ -1476,14 +1480,15 @@ MACHINE_CONFIG_START(msx2_state::msx2) /* Software lists */ SOFTWARE_LIST(config, "cass_list").set_original("msx2_cass"); SOFTWARE_LIST(config, "msx1_cas_l").set_compatible("msx1_cass"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(msx2_state::msx2p) +void msx2_state::msx2p(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 21.477272_MHz_XTAL / 6) /* 3.579545 MHz */ - MCFG_DEVICE_PROGRAM_MAP(msx_memory_map) - MCFG_DEVICE_IO_MAP(msx2p_io_map) + Z80(config, m_maincpu, 21.477272_MHz_XTAL / 6); /* 3.579545 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &msx2_state::msx_memory_map); + m_maincpu->set_addrmap(AS_IO, &msx2_state::msx2p_io_map); config.m_minimum_quantum = attotime::from_hz(60); INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline("maincpu", INPUT_LINE_IRQ0); @@ -1502,9 +1507,10 @@ MACHINE_CONFIG_START(msx2_state::msx2p) /* sound hardware */ SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) + DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.1); + 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); WAVE(config, "wave", m_cassette).add_route(ALL_OUTPUTS, "speaker", 0.25); AY8910(config, m_ay8910, 21.477272_MHz_XTAL / 6 / 2); @@ -1538,7 +1544,7 @@ MACHINE_CONFIG_START(msx2_state::msx2p) /* Software lists */ SOFTWARE_LIST(config, "cass_list").set_original("msx2_cass"); SOFTWARE_LIST(config, "msx1_cas_l").set_compatible("msx1_cass"); -MACHINE_CONFIG_END + } void msx2_state::msx2_pal(machine_config &config) |