diff options
Diffstat (limited to 'src/mame/drivers/segas24.cpp')
-rw-r--r-- | src/mame/drivers/segas24.cpp | 60 |
1 files changed, 32 insertions, 28 deletions
diff --git a/src/mame/drivers/segas24.cpp b/src/mame/drivers/segas24.cpp index 01c55262261..e0b73147bb8 100644 --- a/src/mame/drivers/segas24.cpp +++ b/src/mame/drivers/segas24.cpp @@ -1916,17 +1916,17 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(segas24_state::system24) - +void segas24_state::system24(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, MASTER_CLOCK/2); m_maincpu->set_addrmap(AS_PROGRAM, &segas24_state::cpu1_map); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", segas24_state, irq_vbl, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(segas24_state::irq_vbl), "screen", 0, 1); M68000(config, m_subcpu, MASTER_CLOCK/2); m_subcpu->set_addrmap(AS_PROGRAM, &segas24_state::cpu2_map); - MCFG_QUANTUM_TIME(attotime::from_hz(6000)) + config.m_minimum_quantum = attotime::from_hz(6000); sega_315_5296_device &io(SEGA_315_5296(config, "io", VIDEO_CLOCK/2)); io.in_pa_callback().set_ioport("P1"); @@ -1940,22 +1940,22 @@ MACHINE_CONFIG_START(segas24_state::system24) io.out_cnt1_callback().set(FUNC(segas24_state::cnt1)); io.out_cnt2_callback().set("ymsnd", FUNC(ym2151_device::reset_w)); - MCFG_TIMER_DRIVER_ADD("irq_timer", segas24_state, irq_timer_cb) - MCFG_TIMER_DRIVER_ADD("irq_timer_clear", segas24_state, irq_timer_clear_cb) - MCFG_TIMER_ADD_NONE("frc_timer") - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_frc", segas24_state, irq_frc_cb, attotime::from_hz(FRC_CLOCK_MODE1)) + TIMER(config, "irq_timer").configure_generic(FUNC(segas24_state::irq_timer_cb)); + TIMER(config, "irq_timer_clear").configure_generic(FUNC(segas24_state::irq_timer_clear_cb)); + TIMER(config, "frc_timer").configure_generic(timer_device::expired_delegate()); + TIMER(config, "irq_frc").configure_periodic(FUNC(segas24_state::irq_frc_cb), attotime::from_hz(FRC_CLOCK_MODE1)); S24TILE(config, m_vtile, 0, 0xfff).set_palette("palette"); S24SPRITE(config, m_vsprite, 0); S24MIXER(config, m_vmixer, 0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) - MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/) - MCFG_SCREEN_UPDATE_DRIVER(segas24_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK); + m_screen->set_raw(VIDEO_CLOCK/2, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/); + m_screen->set_screen_update(FUNC(segas24_state::screen_update)); + m_screen->set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 8192*2) + PALETTE(config, m_palette).set_entries(8192*2); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -1965,10 +1965,12 @@ MACHINE_CONFIG_START(segas24_state::system24) ymsnd.add_route(0, "lspeaker", 0.50); ymsnd.add_route(1, "rspeaker", 0.50); - MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) -MACHINE_CONFIG_END + DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "lspeaker", 0.5).add_route(ALL_OUTPUTS, "rspeaker", 0.5); // 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); +} void segas24_state::system24_rom(machine_config &config) { @@ -1999,7 +2001,8 @@ void segas24_state::system24_floppy_rom(machine_config &config) m_subcpu->set_addrmap(AS_PROGRAM, &segas24_state::rombd_cpu2_map); } -MACHINE_CONFIG_START(segas24_state::system24_floppy_hotrod) +void segas24_state::system24_floppy_hotrod(machine_config &config) +{ system24_floppy(config); m_maincpu->set_addrmap(AS_PROGRAM, &segas24_state::hotrod_cpu1_map); m_subcpu->set_addrmap(AS_PROGRAM, &segas24_state::hotrod_cpu2_map); @@ -2012,14 +2015,14 @@ MACHINE_CONFIG_START(segas24_state::system24_floppy_hotrod) upd2.set_portx_tag("DIAL3"); upd2.set_porty_tag("DIAL4"); - MCFG_DEVICE_ADD("adc1", MSM6253, 0) // IC5 - 33k/33p R/C clock - MCFG_MSM6253_IN0_ANALOG_PORT("PEDAL1") - MCFG_MSM6253_IN1_ANALOG_PORT("PEDAL2") - MCFG_MSM6253_IN2_ANALOG_PORT("PEDAL3") - MCFG_MSM6253_IN3_ANALOG_PORT("PEDAL4") + msm6253_device &adc1(MSM6253(config, "adc1", 0)); // IC5 - 33k/33p R/C clock + adc1.set_input_tag<0>("PEDAL1"); + adc1.set_input_tag<1>("PEDAL2"); + adc1.set_input_tag<2>("PEDAL3"); + adc1.set_input_tag<3>("PEDAL4"); - MCFG_DEVICE_ADD("adc2", MSM6253, 0) // IC2 - 33k/33p R/C clock -MACHINE_CONFIG_END + MSM6253(config, "adc2", 0); // IC2 - 33k/33p R/C clock +} void segas24_state::system24_floppy_fd1094(machine_config &config) { @@ -2029,7 +2032,8 @@ void segas24_state::system24_floppy_fd1094(machine_config &config) m_subcpu->set_addrmap(AS_OPCODES, &segas24_state::decrypted_opcodes_map); } -MACHINE_CONFIG_START(segas24_state::system24_floppy_fd_upd) +void segas24_state::system24_floppy_fd_upd(machine_config &config) +{ system24_floppy_fd1094(config); m_maincpu->set_addrmap(AS_PROGRAM, &segas24_state::roughrac_cpu1_map); m_subcpu->set_addrmap(AS_PROGRAM, &segas24_state::roughrac_cpu2_map); @@ -2037,7 +2041,7 @@ MACHINE_CONFIG_START(segas24_state::system24_floppy_fd_upd) upd4701_device &upd4701(UPD4701A(config, "upd4701")); // IC4 on 834-6510 I/O board upd4701.set_portx_tag("DIAL1"); upd4701.set_porty_tag("DIAL2"); -MACHINE_CONFIG_END +} void segas24_state::dcclub(machine_config &config) { |