diff --git a/src/devices/sound/2608intf.h b/src/devices/sound/2608intf.h index de64a23245b..76c69ec3961 100644 --- a/src/devices/sound/2608intf.h +++ b/src/devices/sound/2608intf.h @@ -11,9 +11,6 @@ struct ssg_callbacks; -#define MCFG_YM2608_IRQ_HANDLER(cb) \ - downcast(*device).set_irq_handler(DEVCB_##cb); - class ym2608_device : public ay8910_device, public device_rom_interface { diff --git a/src/devices/sound/2610intf.h b/src/devices/sound/2610intf.h index 9f9dc69c123..ff736e4890e 100644 --- a/src/devices/sound/2610intf.h +++ b/src/devices/sound/2610intf.h @@ -11,9 +11,6 @@ struct ssg_callbacks; -#define MCFG_YM2610_IRQ_HANDLER(cb) \ - downcast(*device).set_irq_handler((DEVCB_##cb)); - class ym2610_device : public ay8910_device, public device_memory_interface { diff --git a/src/mame/drivers/2mindril.cpp b/src/mame/drivers/2mindril.cpp index 790b8bd470d..9fe02bc3280 100644 --- a/src/mame/drivers/2mindril.cpp +++ b/src/mame/drivers/2mindril.cpp @@ -358,11 +358,11 @@ MACHINE_RESET_MEMBER(_2mindril_state,drill) m_irq_reg = 0; } -MACHINE_CONFIG_START(_2mindril_state::drill) - - MCFG_DEVICE_ADD("maincpu", M68000, 16000000 ) - MCFG_DEVICE_PROGRAM_MAP(drill_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", _2mindril_state, drill_vblank_irq) +void _2mindril_state::drill(machine_config &config) +{ + M68000(config, m_maincpu, 16000000); + m_maincpu->set_addrmap(AS_PROGRAM, &_2mindril_state::drill_map); + m_maincpu->set_vblank_int("screen", FUNC(_2mindril_state::drill_vblank_irq)); //MCFG_DEVICE_PERIODIC_INT_DRIVER(_2mindril_state, drill_device_irq, 60) GFXDECODE(config, m_gfxdecode, m_palette, gfx_2mindril); @@ -376,26 +376,26 @@ MACHINE_CONFIG_START(_2mindril_state::drill) MCFG_MACHINE_START_OVERRIDE(_2mindril_state,drill) MCFG_MACHINE_RESET_OVERRIDE(_2mindril_state,drill) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* inaccurate, same as Taito F3? (needs screen raw params anyway) */ - MCFG_SCREEN_SIZE(40*8+48*2, 32*8) - MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 24, 24+224-1) - MCFG_SCREEN_UPDATE_DRIVER(_2mindril_state, screen_update_f3) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, _2mindril_state, screen_vblank_f3)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* inaccurate, same as Taito F3? (needs screen raw params anyway) */ + m_screen->set_size(40*8+48*2, 32*8); + m_screen->set_visarea(46, 40*8-1 + 46, 24, 24+224-1); + m_screen->set_screen_update(FUNC(_2mindril_state::screen_update_f3)); + m_screen->screen_vblank().set(FUNC(_2mindril_state::screen_vblank_f3)); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 0x2000); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610B, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(WRITELINE(*this, _2mindril_state, irqhandler)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END + ym2610b_device &ymsnd(YM2610B(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set(FUNC(_2mindril_state::irqhandler)); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} ROM_START( 2mindril ) diff --git a/src/mame/drivers/aerofgt.cpp b/src/mame/drivers/aerofgt.cpp index c3751024c86..62e85461888 100644 --- a/src/mame/drivers/aerofgt.cpp +++ b/src/mame/drivers/aerofgt.cpp @@ -1461,29 +1461,29 @@ MACHINE_RESET_MEMBER(aerofgt_state,aerofgt) m_soundbank->set_entry(0); /* needed by spinlbrk */ } -MACHINE_CONFIG_START(aerofgt_state::pspikes) - +void aerofgt_state::pspikes(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,XTAL(20'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(pspikes_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", aerofgt_state, irq1_line_hold)/* all irq vectors are the same */ + M68000(config, m_maincpu, XTAL(20'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &aerofgt_state::pspikes_map); + m_maincpu->set_vblank_int("screen", FUNC(aerofgt_state::irq1_line_hold)); /* all irq vectors are the same */ - MCFG_DEVICE_ADD("audiocpu",Z80,XTAL(20'000'000)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(turbofrc_sound_portmap) - /* IRQs are triggered by the YM2610 */ + Z80(config, m_audiocpu, XTAL(20'000'000)/4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &aerofgt_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &aerofgt_state::turbofrc_sound_portmap); + /* IRQs are triggered by the YM2610 */ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,aerofgt) MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,aerofgt) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(61.31) /* verified on pcb */ - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikes) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(61.31); /* verified on pcb */ + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8+4, 44*8+4-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(aerofgt_state::screen_update_pspikes)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pspikes); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -1505,20 +1505,20 @@ MACHINE_CONFIG_START(aerofgt_state::pspikes) m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(aerofgt_state::spikes91) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} +void aerofgt_state::spikes91(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ - MCFG_DEVICE_PROGRAM_MAP(spikes91_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", aerofgt_state, irq1_line_hold)/* all irq vectors are the same */ + M68000(config, m_maincpu, 20000000/2); /* 10 MHz (?) */ + m_maincpu->set_addrmap(AS_PROGRAM, &aerofgt_state::spikes91_map); + m_maincpu->set_vblank_int("screen", FUNC(aerofgt_state::irq1_line_hold)); /* all irq vectors are the same */ /* + Z80 for sound */ @@ -1526,13 +1526,13 @@ MACHINE_CONFIG_START(aerofgt_state::spikes91) MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,common) /* 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(0*8, 320-1, 0*8+4, 224+4-1) - MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_spikes91) - 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(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 320-1, 0*8+4, 224+4-1); + screen.set_screen_update(FUNC(aerofgt_state::screen_update_spikes91)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_spikes91); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -1547,27 +1547,26 @@ MACHINE_CONFIG_START(aerofgt_state::spikes91) 1x OKI M5205 (sound)(ic145) 2x LM324N (sound)(ic152, ic153) */ -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(aerofgt_state::pspikesb) +} +void aerofgt_state::pspikesb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ - MCFG_DEVICE_PROGRAM_MAP(pspikesb_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", aerofgt_state, irq1_line_hold)/* all irq vectors are the same */ + M68000(config, m_maincpu, 20000000/2); /* 10 MHz (?) */ + m_maincpu->set_addrmap(AS_PROGRAM, &aerofgt_state::pspikesb_map); + m_maincpu->set_vblank_int("screen", FUNC(aerofgt_state::irq1_line_hold)); /* all irq vectors are the same */ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,common) MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,common) /* 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(0*8+4, 44*8+4-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikesb) - 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(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8+4, 44*8+4-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(aerofgt_state::screen_update_pspikesb)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pspikesb); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -1579,9 +1578,9 @@ MACHINE_CONFIG_START(aerofgt_state::pspikesb) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_LOW) // clock frequency & pin 7 not verified, pin high causes sound pitch to be too high - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 1056000, okim6295_device::PIN7_LOW); // clock frequency & pin 7 not verified, pin high causes sound pitch to be too high + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); +} /* Kick Ball @@ -1590,28 +1589,28 @@ MACHINE_CONFIG_END tile banking and sound system are different like many of the bootlegs */ -MACHINE_CONFIG_START(aerofgt_state::kickball) - +void aerofgt_state::kickball(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,XTAL(10'000'000)) // 10Mhz XTAL near 10Mhz rated CPU - MCFG_DEVICE_PROGRAM_MAP(kickball_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", aerofgt_state, irq1_line_hold) /* only IRQ1 is valid */ + M68000(config, m_maincpu, XTAL(10'000'000)); // 10Mhz XTAL near 10Mhz rated CPU + m_maincpu->set_addrmap(AS_PROGRAM, &aerofgt_state::kickball_map); + m_maincpu->set_vblank_int("screen", FUNC(aerofgt_state::irq1_line_hold)); /* only IRQ1 is valid */ - MCFG_DEVICE_ADD("audiocpu",Z80,XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(kickball_sound_map) - MCFG_DEVICE_IO_MAP(kickball_sound_portmap) + Z80(config, m_audiocpu, XTAL(4'000'000)); + m_audiocpu->set_addrmap(AS_PROGRAM, &aerofgt_state::kickball_sound_map); + m_audiocpu->set_addrmap(AS_IO, &aerofgt_state::kickball_sound_portmap); MCFG_MACHINE_START_OVERRIDE(aerofgt_state,common) MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,common) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(61.31) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikes) - 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(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8+4, 44*8+4-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(aerofgt_state::screen_update_pspikes)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_kickball); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -1632,32 +1631,32 @@ MACHINE_CONFIG_START(aerofgt_state::kickball) m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM3812, XTAL(4'000'000)) // K-666 (YM3812) - MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + ym3812_device &ymsnd(YM3812(config, "ymsnd", XTAL(4'000'000))); // K-666 (YM3812) + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(4'000'000)/4, okim6295_device::PIN7_LOW) // AD-65 (M6295) clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(aerofgt_state::pspikesc) + OKIM6295(config, m_oki, XTAL(4'000'000)/4, okim6295_device::PIN7_LOW); // AD-65 (M6295) clock frequency & pin 7 not verified + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); +} +void aerofgt_state::pspikesc(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ - MCFG_DEVICE_PROGRAM_MAP(pspikesc_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", aerofgt_state, irq1_line_hold)/* all irq vectors are the same */ + M68000(config, m_maincpu, 20000000/2); /* 10 MHz (?) */ + m_maincpu->set_addrmap(AS_PROGRAM, &aerofgt_state::pspikesc_map); + m_maincpu->set_vblank_int("screen", FUNC(aerofgt_state::irq1_line_hold)); /* all irq vectors are the same */ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,common) MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,common) /* 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(0*8+4, 44*8+4-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikes) - 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(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8+4, 44*8+4-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(aerofgt_state::screen_update_pspikes)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pspikes); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -1674,33 +1673,32 @@ MACHINE_CONFIG_START(aerofgt_state::pspikesc) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(aerofgt_state::karatblz) + OKIM6295(config, m_oki, 1056000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); +} +void aerofgt_state::karatblz(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ - MCFG_DEVICE_PROGRAM_MAP(karatblz_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", aerofgt_state, irq1_line_hold) + M68000(config, m_maincpu, 20000000/2); /* 10 MHz (?) */ + m_maincpu->set_addrmap(AS_PROGRAM, &aerofgt_state::karatblz_map); + m_maincpu->set_vblank_int("screen", FUNC(aerofgt_state::irq1_line_hold)); - MCFG_DEVICE_ADD("audiocpu",Z80,8000000/2) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(turbofrc_sound_portmap) - /* IRQs are triggered by the YM2610 */ + Z80(config, m_audiocpu, 8000000/2); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &aerofgt_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &aerofgt_state::turbofrc_sound_portmap); /* IRQs are triggered by the YM2610 */ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,aerofgt) MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,aerofgt) /* 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(1*8, 45*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_karatblz) - 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(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(1*8, 45*8-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(aerofgt_state::screen_update_karatblz)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_turbofrc); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024); @@ -1727,36 +1725,36 @@ MACHINE_CONFIG_START(aerofgt_state::karatblz) m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(8'000'000) ) /* verified on pcb */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(aerofgt_state::karatblzbl) + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(8'000'000))); /* verified on pcb */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} +void aerofgt_state::karatblzbl(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ - MCFG_DEVICE_PROGRAM_MAP(karatblzbl_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", aerofgt_state, irq1_line_hold) + M68000(config, m_maincpu, 20000000/2); /* 10 MHz (?) */ + m_maincpu->set_addrmap(AS_PROGRAM, &aerofgt_state::karatblzbl_map); + m_maincpu->set_vblank_int("screen", FUNC(aerofgt_state::irq1_line_hold)); - MCFG_DEVICE_ADD("audiocpu",Z80,8000000/2) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(karatblzbl_sound_map) - MCFG_DEVICE_IO_MAP(karatblzbl_sound_portmap) + Z80(config, m_audiocpu, 8000000/2); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &aerofgt_state::karatblzbl_sound_map); + m_audiocpu->set_addrmap(AS_IO, &aerofgt_state::karatblzbl_sound_portmap); MCFG_MACHINE_START_OVERRIDE(aerofgt_state,common) MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,common) /* 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(1*8, 45*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_karatblz) - 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(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(1*8, 45*8-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(aerofgt_state::screen_update_karatblz)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_turbofrc); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024); @@ -1782,37 +1780,36 @@ MACHINE_CONFIG_START(aerofgt_state::karatblzbl) SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM3812, XTAL(8'000'000)/2) - MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + ym3812_device &ymsnd(YM3812(config, "ymsnd", XTAL(8'000'000)/2)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("upd", UPD7759) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(aerofgt_state::spinlbrk) + UPD7759(config, m_upd7759); + m_upd7759->add_route(ALL_OUTPUTS, "mono", 1.0); +} +void aerofgt_state::spinlbrk(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,XTAL(20'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(spinlbrk_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", aerofgt_state, irq1_line_hold) /* there are vectors for 3 and 4 too, analog related? */ + M68000(config, m_maincpu, XTAL(20'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &aerofgt_state::spinlbrk_map); + m_maincpu->set_vblank_int("screen", FUNC(aerofgt_state::irq1_line_hold)); /* there are vectors for 3 and 4 too, analog related? */ - MCFG_DEVICE_ADD("audiocpu",Z80,XTAL(20'000'000)/4) /* 5mhz verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(spinlbrk_sound_portmap) - /* IRQs are triggered by the YM2610 */ + Z80(config, m_audiocpu, XTAL(20'000'000)/4); /* 5mhz verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &aerofgt_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &aerofgt_state::spinlbrk_sound_portmap); /* IRQs are triggered by the YM2610 */ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,spinlbrk) MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,aerofgt) /* 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(1*8, 45*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_spinlbrk) - 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(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(1*8, 45*8-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(aerofgt_state::screen_update_spinlbrk)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_turbofrc); PALETTE(config, m_palette, palette_device::BLACK).set_format(palette_device::xRGB_555, 1024); // doesn't fully initialize palette at start-up ... @@ -1840,37 +1837,36 @@ MACHINE_CONFIG_START(aerofgt_state::spinlbrk) m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(8'000'000)) /* verified on pcb */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(aerofgt_state::turbofrc) + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(8'000'000))); /* verified on pcb */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} +void aerofgt_state::turbofrc(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,XTAL(20'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(turbofrc_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", aerofgt_state, irq1_line_hold)/* all irq vectors are the same */ + M68000(config, m_maincpu, XTAL(20'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &aerofgt_state::turbofrc_map); + m_maincpu->set_vblank_int("screen", FUNC(aerofgt_state::irq1_line_hold)); /* all irq vectors are the same */ - MCFG_DEVICE_ADD("audiocpu",Z80,XTAL(5'000'000)) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(turbofrc_sound_portmap) - /* IRQs are triggered by the YM2610 */ + Z80(config, m_audiocpu, XTAL(5'000'000)); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &aerofgt_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &aerofgt_state::turbofrc_sound_portmap); /* IRQs are triggered by the YM2610 */ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,aerofgt) MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,aerofgt) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(61.31) /* verified on pcb */ - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_turbofrc) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(61.31); /* verified on pcb */ + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 44*8-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(aerofgt_state::screen_update_turbofrc)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_turbofrc); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024); @@ -1897,38 +1893,36 @@ MACHINE_CONFIG_START(aerofgt_state::turbofrc) m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(8'000'000)) /* verified on pcb */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(aerofgt_state::aerofgtb) + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(8'000'000))); /* verified on pcb */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} +void aerofgt_state::aerofgtb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ - MCFG_DEVICE_PROGRAM_MAP(aerofgtb_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", aerofgt_state, irq1_line_hold)/* all irq vectors are the same */ + M68000(config, m_maincpu, 20000000/2); /* 10 MHz (?) */ + m_maincpu->set_addrmap(AS_PROGRAM, &aerofgt_state::aerofgtb_map); + m_maincpu->set_vblank_int("screen", FUNC(aerofgt_state::irq1_line_hold)); /* all irq vectors are the same */ - MCFG_DEVICE_ADD("audiocpu",Z80,8000000/2) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(aerofgt_sound_portmap) - /* IRQs are triggered by the YM2610 */ + Z80(config, m_audiocpu, 8000000/2); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &aerofgt_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &aerofgt_state::aerofgt_sound_portmap); /* IRQs are triggered by the YM2610 */ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,aerofgt) MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,aerofgt) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(500)) - /* wrong but improves sprite-background synchronization */ - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_turbofrc) - 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(500)); /* wrong but improves sprite-background synchronization */ + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8+12, 40*8-1+12, 0*8, 28*8-1); + screen.set_screen_update(FUNC(aerofgt_state::screen_update_turbofrc)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_turbofrc); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024); @@ -1955,25 +1949,24 @@ MACHINE_CONFIG_START(aerofgt_state::aerofgtb) m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(aerofgt_state::aerofgt) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} +void aerofgt_state::aerofgt(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,XTAL(20'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(aerofgt_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", aerofgt_state, irq1_line_hold)/* all irq vectors are the same */ + M68000(config, m_maincpu, XTAL(20'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &aerofgt_state::aerofgt_map); + m_maincpu->set_vblank_int("screen", FUNC(aerofgt_state::irq1_line_hold)); /* all irq vectors are the same */ - MCFG_DEVICE_ADD("audiocpu",Z80,XTAL(20'000'000)/4) /* 5 MHz verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(aerofgt_sound_portmap) - /* IRQs are triggered by the YM2610 */ + Z80(config, m_audiocpu, XTAL(20'000'000)/4); /* 5 MHz verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &aerofgt_state::sound_map);; + m_audiocpu->set_addrmap(AS_IO, &aerofgt_state::aerofgt_sound_portmap); /* IRQs are triggered by the YM2610 */ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,aerofgt) MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,aerofgt) @@ -1988,17 +1981,16 @@ MACHINE_CONFIG_START(aerofgt_state::aerofgt) io.portg_output_cb().set("watchdog", FUNC(mb3773_device::write_line_ck)).bit(7); io.porth_input_cb().set_ioport("JP1"); - MCFG_DEVICE_ADD("watchdog", MB3773, 0) + MB3773(config, "watchdog", 0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(61.31) /* verified on pcb */ - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) - /* wrong but improves sprite-background synchronization */ - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerofgt) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(61.31); /* verified on pcb */ + screen.set_vblank_time(ATTOSECONDS_IN_USEC(400)); /* wrong but improves sprite-background synchronization */ + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 0*8, 28*8-1); + screen.set_screen_update(FUNC(aerofgt_state::screen_update_aerofgt)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_aerofgt); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024); @@ -2018,36 +2010,35 @@ MACHINE_CONFIG_START(aerofgt_state::aerofgt) m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(8'000'000)) /* verified on pcb */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(aerofgt_state::aerfboot) + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(8'000'000))); /* verified on pcb */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} +void aerofgt_state::aerfboot(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ - MCFG_DEVICE_PROGRAM_MAP(aerfboot_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", aerofgt_state, irq1_line_hold) + M68000(config, m_maincpu, 20000000/2); /* 10 MHz (?) */ + m_maincpu->set_addrmap(AS_PROGRAM, &aerofgt_state::aerfboot_map); + m_maincpu->set_vblank_int("screen", FUNC(aerofgt_state::irq1_line_hold)); - MCFG_DEVICE_ADD("audiocpu",Z80,8000000/2) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(aerfboot_sound_map) + Z80(config, m_audiocpu, 8000000/2); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &aerofgt_state::aerfboot_sound_map); MCFG_MACHINE_START_OVERRIDE(aerofgt_state,common) MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,common) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(500)) - /* wrong but improves sprite-background synchronization */ - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerfboot) - 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(500)); /* wrong but improves sprite-background synchronization */ + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8+12, 40*8-1+12, 0*8, 28*8-1); + screen.set_screen_update(FUNC(aerofgt_state::screen_update_aerfboot)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_aerfboot); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024); @@ -2062,30 +2053,29 @@ MACHINE_CONFIG_START(aerofgt_state::aerfboot) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); - MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(aerofgt_state::aerfboo2) + OKIM6295(config, m_oki, 1056000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified + m_oki->set_addrmap(0, &aerofgt_state::oki_map); + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); +} +void aerofgt_state::aerfboo2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ - MCFG_DEVICE_PROGRAM_MAP(aerfboo2_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", aerofgt_state, irq2_line_hold) + M68000(config, m_maincpu, 20000000/2); /* 10 MHz (?) */ + m_maincpu->set_addrmap(AS_PROGRAM, &aerofgt_state::aerfboo2_map); + m_maincpu->set_vblank_int("screen", FUNC(aerofgt_state::irq2_line_hold)); MCFG_MACHINE_START_OVERRIDE(aerofgt_state,common) MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,common) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(500)) - /* wrong but improves sprite-background synchronization */ - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerfboo2) - 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(500)); /* wrong but improves sprite-background synchronization */ + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8+12, 40*8-1+12, 0*8, 28*8-1); + screen.set_screen_update(FUNC(aerofgt_state::screen_update_aerfboo2)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_aerfboo2); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024); @@ -2097,30 +2087,29 @@ MACHINE_CONFIG_START(aerofgt_state::aerfboo2) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(aerofgt_state::wbbc97) + OKIM6295(config, m_oki, 1056000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); +} +void aerofgt_state::wbbc97(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,20000000/2) /* 10 MHz (?) */ - MCFG_DEVICE_PROGRAM_MAP(wbbc97_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", aerofgt_state, irq1_line_hold)/* all irq vectors are the same */ + M68000(config, m_maincpu, 20000000/2); /* 10 MHz (?) */ + m_maincpu->set_addrmap(AS_PROGRAM, &aerofgt_state::wbbc97_map); + m_maincpu->set_vblank_int("screen", FUNC(aerofgt_state::irq1_line_hold)); /* all irq vectors are the same */ - MCFG_DEVICE_ADD("audiocpu",Z80,8000000/2) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(wbbc97_sound_map) - /* IRQs are triggered by the YM3812 */ + Z80(config, m_audiocpu, 8000000/2); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &aerofgt_state::wbbc97_sound_map); /* IRQs are triggered by the YM3812 */ MCFG_MACHINE_START_OVERRIDE(aerofgt_state,common) MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,common) /* 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, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8+14, 44*8-1+4, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_wbbc97) + 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(64*8, 64*8); + screen.set_visarea(0*8+14, 44*8-1+4, 0*8, 30*8-1); + screen.set_screen_update(FUNC(aerofgt_state::screen_update_wbbc97)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_wbbc97); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -2140,13 +2129,13 @@ MACHINE_CONFIG_START(aerofgt_state::wbbc97) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); - MCFG_DEVICE_ADD("ymsnd", YM3812, 3579545) - MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + ym3812_device &ymsnd(YM3812(config, "ymsnd", 3579545)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 1056000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified + m_oki->add_route(ALL_OUTPUTS, "mono", 0.50); +} diff --git a/src/mame/drivers/asuka.cpp b/src/mame/drivers/asuka.cpp index ee3c3c2a438..5a56bfb3429 100644 --- a/src/mame/drivers/asuka.cpp +++ b/src/mame/drivers/asuka.cpp @@ -846,15 +846,15 @@ WRITE8_MEMBER(asuka_state::counters_w) machine().bookkeeping().coin_counter_w(0, data & 0x10); } -MACHINE_CONFIG_START(asuka_state::bonzeadv) - +void asuka_state::bonzeadv(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) /* checked on PCB */ - MCFG_DEVICE_PROGRAM_MAP(bonzeadv_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", asuka_state, bonze_interrupt) + M68000(config, m_maincpu, XTAL(16'000'000)/2); /* checked on PCB */ + m_maincpu->set_addrmap(AS_PROGRAM, &asuka_state::bonzeadv_map); + m_maincpu->set_vblank_int("screen", FUNC(asuka_state::bonze_interrupt)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/4) /* sound CPU, also required for test mode */ - MCFG_DEVICE_PROGRAM_MAP(bonzeadv_z80_map) + Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* sound CPU, also required for test mode */ + m_audiocpu->set_addrmap(AS_PROGRAM, &asuka_state::bonzeadv_z80_map); TAITO_CCHIP(config, m_cchip, 12_MHz_XTAL); // 12MHz OSC near C-Chip m_cchip->in_pa_callback().set_ioport("800007"); @@ -863,24 +863,24 @@ MACHINE_CONFIG_START(asuka_state::bonzeadv) m_cchip->in_ad_callback().set_ioport("80000D"); m_cchip->out_pb_callback().set(FUNC(asuka_state::counters_w)); - MCFG_TIMER_DRIVER_ADD("cchip_irq_clear", asuka_state, cchip_irq_clear_cb) + TIMER(config, "cchip_irq_clear").configure_generic(FUNC(asuka_state::cchip_irq_clear_cb)); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_bonzeadv) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, asuka_state, screen_vblank_asuka)) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 3*8, 31*8-1); + screen.set_screen_update(FUNC(asuka_state::screen_update_bonzeadv)); + screen.screen_vblank().set(FUNC(asuka_state::screen_vblank_asuka)); + screen.set_palette("palette"); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_asuka) - MCFG_PALETTE_ADD("palette", 4096) + GFXDECODE(config, "gfxdecode", "palette", gfx_asuka); + PALETTE(config, "palette").set_entries(4096); PC090OJ(config, m_pc090oj, 0); m_pc090oj->set_offsets(0, 8); @@ -898,29 +898,28 @@ MACHINE_CONFIG_START(asuka_state::bonzeadv) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(16'000'000)/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(16'000'000)/2)); + ymsnd.irq_handler().set_inputline("audiocpu", 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(asuka_state::asuka) +} +void asuka_state::asuka(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(asuka_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", asuka_state, irq5_line_hold) + M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &asuka_state::asuka_map); + m_maincpu->set_vblank_int("screen", FUNC(asuka_state::irq5_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(z80_map) + Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &asuka_state::z80_map); - - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -931,17 +930,17 @@ MACHINE_CONFIG_START(asuka_state::asuka) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, asuka_state, screen_vblank_asuka)) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(asuka_state::screen_update_asuka)); + screen.screen_vblank().set(FUNC(asuka_state::screen_vblank_asuka)); + screen.set_palette("palette"); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_asuka) - MCFG_PALETTE_ADD("palette", 4096) + GFXDECODE(config, "gfxdecode", "palette", gfx_asuka); + PALETTE(config, "palette").set_entries(4096); PC090OJ(config, m_pc090oj, 0); m_pc090oj->set_offsets(0, 8); @@ -966,10 +965,10 @@ MACHINE_CONFIG_START(asuka_state::asuka) ymsnd.add_route(0, "mono", 0.25); ymsnd.add_route(1, "mono", 0.25); - MCFG_DEVICE_ADD("msm", MSM5205, XTAL(384'000)) /* verified on pcb */ - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, asuka_state, asuka_msm5205_vck)) /* VCK function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) + MSM5205(config, m_msm, XTAL(384'000)); /* verified on pcb */ + m_msm->vck_legacy_callback().set(FUNC(asuka_state::asuka_msm5205_vck)); /* VCK function */ + m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 kHz */ + m_msm->add_route(ALL_OUTPUTS, "mono", 0.5); LS157(config, m_adpcm_select, 0); m_adpcm_select->out_callback().set("msm", FUNC(msm5205_device::data_w)); @@ -977,24 +976,23 @@ MACHINE_CONFIG_START(asuka_state::asuka) pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu); ciu.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(asuka_state::cadash) +} +void asuka_state::cadash(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(32'000'000)/2) /* 68000p12 running at 16Mhz, verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(cadash_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", asuka_state, cadash_interrupt) + M68000(config, m_maincpu, XTAL(32'000'000)/2); /* 68000p12 running at 16Mhz, verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &asuka_state::cadash_map); + m_maincpu->set_vblank_int("screen", FUNC(asuka_state::cadash_interrupt)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(8'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(cadash_z80_map) + Z80(config, m_audiocpu, XTAL(8'000'000)/2); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &asuka_state::cadash_z80_map); - MCFG_DEVICE_ADD("subcpu", Z180, XTAL(8'000'000)) /* 8MHz HD64180RP8 Z180 */ - MCFG_DEVICE_PROGRAM_MAP(cadash_sub_map) - MCFG_DEVICE_IO_MAP(cadash_sub_io) + z180_device &subcpu(Z180(config, "subcpu", XTAL(8'000'000))); /* 8MHz HD64180RP8 Z180 */ + subcpu.set_addrmap(AS_PROGRAM, &asuka_state::cadash_sub_map); + subcpu.set_addrmap(AS_IO, &asuka_state::cadash_sub_io); - - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -1005,17 +1003,17 @@ MACHINE_CONFIG_START(asuka_state::cadash) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_bonzeadv) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, asuka_state, screen_vblank_asuka)) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(asuka_state::screen_update_bonzeadv)); + screen.screen_vblank().set(FUNC(asuka_state::screen_vblank_asuka)); + screen.set_palette("palette"); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_asuka) - MCFG_PALETTE_ADD("palette", 4096) + GFXDECODE(config, "gfxdecode", "palette", gfx_asuka); + PALETTE(config, "palette").set_entries(4096); PC090OJ(config, m_pc090oj, 0); m_pc090oj->set_offsets(0, 8); @@ -1044,20 +1042,19 @@ MACHINE_CONFIG_START(asuka_state::cadash) pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu); ciu.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(asuka_state::mofflott) +} +void asuka_state::mofflott(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 8000000) /* 8 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(asuka_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", asuka_state, irq5_line_hold) + M68000(config, m_maincpu, 8000000); /* 8 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &asuka_state::asuka_map); + m_maincpu->set_vblank_int("screen", FUNC(asuka_state::irq5_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(z80_map) + Z80(config, m_audiocpu, 4000000); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &asuka_state::z80_map); - - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -1068,17 +1065,17 @@ MACHINE_CONFIG_START(asuka_state::mofflott) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, asuka_state, screen_vblank_asuka)) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(asuka_state::screen_update_asuka)); + screen.screen_vblank().set(FUNC(asuka_state::screen_vblank_asuka)); + screen.set_palette("palette"); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_asuka) - MCFG_PALETTE_ADD("palette", 4096) /* only Mofflott uses full palette space */ + GFXDECODE(config, "gfxdecode", "palette", gfx_asuka); + PALETTE(config, "palette").set_entries(4096); /* only Mofflott uses full palette space */ PC090OJ(config, m_pc090oj, 0); m_pc090oj->set_offsets(0, 8); @@ -1103,10 +1100,10 @@ MACHINE_CONFIG_START(asuka_state::mofflott) ymsnd.add_route(0, "mono", 0.25); ymsnd.add_route(1, "mono", 0.25); - MCFG_DEVICE_ADD("msm", MSM5205, 384000) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, asuka_state, asuka_msm5205_vck)) /* VCK function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) + MSM5205(config, m_msm, 384000); + m_msm->vck_legacy_callback().set(FUNC(asuka_state::asuka_msm5205_vck)); /* VCK function */ + m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 kHz */ + m_msm->add_route(ALL_OUTPUTS, "mono", 0.5); LS157(config, m_adpcm_select, 0); m_adpcm_select->out_callback().set("msm", FUNC(msm5205_device::data_w)); @@ -1114,20 +1111,19 @@ MACHINE_CONFIG_START(asuka_state::mofflott) pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu); ciu.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(asuka_state::eto) +} +void asuka_state::eto(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 8000000) /* 8 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(eto_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", asuka_state, irq5_line_hold) + M68000(config, m_maincpu, 8000000); /* 8 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &asuka_state::eto_map); + m_maincpu->set_vblank_int("screen", FUNC(asuka_state::irq5_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(cadash_z80_map) + Z80(config, m_audiocpu, 4000000); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &asuka_state::cadash_z80_map); - - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -1138,17 +1134,17 @@ MACHINE_CONFIG_START(asuka_state::eto) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, asuka_state, screen_vblank_asuka)) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(asuka_state::screen_update_asuka)); + screen.screen_vblank().set(FUNC(asuka_state::screen_vblank_asuka)); + screen.set_palette("palette"); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_asuka) - MCFG_PALETTE_ADD("palette", 4096) + GFXDECODE(config, "gfxdecode", "palette", gfx_asuka); + PALETTE(config, "palette").set_entries(4096); PC090OJ(config, m_pc090oj, 0); m_pc090oj->set_offsets(0, 8); @@ -1176,7 +1172,7 @@ MACHINE_CONFIG_START(asuka_state::eto) pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu); ciu.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/bbusters.cpp b/src/mame/drivers/bbusters.cpp index 74bd3c49273..701d7eadabe 100644 --- a/src/mame/drivers/bbusters.cpp +++ b/src/mame/drivers/bbusters.cpp @@ -633,16 +633,16 @@ GFXDECODE_END /******************************************************************************/ -MACHINE_CONFIG_START(bbusters_state::bbusters) - +void bbusters_state::bbusters(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(bbusters_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", bbusters_state, irq6_line_hold) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &bbusters_state::bbusters_map); + m_maincpu->set_vblank_int("screen", FUNC(bbusters_state::irq6_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,4000000) /* Accurate */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_portmap) + Z80(config, m_audiocpu, 4000000); /* Accurate */ + m_audiocpu->set_addrmap(AS_PROGRAM, &bbusters_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &bbusters_state::sound_portmap); NVRAM(config, "eeprom", nvram_device::DEFAULT_ALL_0); @@ -669,24 +669,24 @@ MACHINE_CONFIG_START(bbusters_state::bbusters) GENERIC_LATCH_8(config, m_soundlatch[0]); GENERIC_LATCH_8(config, m_soundlatch[1]); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(0, "rspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(mechatt_state::mechatt) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline("audiocpu", 0); + ymsnd.add_route(0, "lspeaker", 1.0); + ymsnd.add_route(0, "rspeaker", 1.0); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} +void mechatt_state::mechatt(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(mechatt_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mechatt_state, irq4_line_hold) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &mechatt_state::mechatt_map); + m_maincpu->set_vblank_int("screen", FUNC(mechatt_state::irq4_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,4000000) /* Accurate */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sounda_portmap) + Z80(config, m_audiocpu, 4000000); /* Accurate */ + m_audiocpu->set_addrmap(AS_PROGRAM, &mechatt_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &mechatt_state::sounda_portmap); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -709,13 +709,13 @@ MACHINE_CONFIG_START(mechatt_state::mechatt) GENERIC_LATCH_8(config, m_soundlatch[0]); GENERIC_LATCH_8(config, m_soundlatch[1]); - MCFG_DEVICE_ADD("ymsnd", YM2608, 8000000) - MCFG_YM2608_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.50) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END + ym2608_device &ymsnd(YM2608(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline("audiocpu", 0); + ymsnd.add_route(0, "lspeaker", 0.50); + ymsnd.add_route(0, "rspeaker", 0.50); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} /******************************************************************************/ diff --git a/src/mame/drivers/bingowav.cpp b/src/mame/drivers/bingowav.cpp index c9c5b4d963e..f2284300fc5 100644 --- a/src/mame/drivers/bingowav.cpp +++ b/src/mame/drivers/bingowav.cpp @@ -112,9 +112,10 @@ static INPUT_PORTS_START( bingowav ) INPUT_PORTS_END -MACHINE_CONFIG_START(bingowav_state::bingowav) - MCFG_DEVICE_ADD(m_maincpu, M68000, 12000000) // actually TMP63803F-16 - MCFG_DEVICE_PROGRAM_MAP(bingowav_main_map) +void bingowav_state::bingowav(machine_config &config) +{ + M68000(config, m_maincpu, 12000000); // actually TMP63803F-16 + m_maincpu->set_addrmap(AS_PROGRAM, &bingowav_state::bingowav_main_map); tmp68301_device &tmp68301(TMP68301(config, "maintmp", 0)); // wrong tmp68301.set_cputag(m_maincpu); @@ -125,28 +126,26 @@ MACHINE_CONFIG_START(bingowav_state::bingowav) te7750_device &mainiol(TE7750(config, "mainiol")); mainiol.ios_cb().set_constant(4); - MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) - MCFG_DEVICE_PROGRAM_MAP(bingowav_audio_map) + Z80(config, "audiocpu", 4000000).set_addrmap(AS_PROGRAM, &bingowav_state::bingowav_audio_map); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline("audiocpu", 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag("audiocpu"); - MCFG_DEVICE_ADD("termcpu", M68000, 12000000) // actually TMP63803F-16 - MCFG_DEVICE_PROGRAM_MAP(bingowav_drive_map) - MCFG_DEVICE_DISABLE() + m68000_device &termcpu(M68000(config, "termcpu", 12000000)); // actually TMP63803F-16 + termcpu.set_addrmap(AS_PROGRAM, &bingowav_state::bingowav_drive_map); + termcpu.set_disable(); - MCFG_DEVICE_ADD("ctrlcpu", Z80, XTAL(16'000'000) / 4) - MCFG_DEVICE_PROGRAM_MAP(bingowav_control_map) -MACHINE_CONFIG_END + Z80(config, "ctrlcpu", XTAL(16'000'000) / 4).set_addrmap(AS_PROGRAM, &bingowav_state::bingowav_control_map); +} ROM_START( bingowav ) diff --git a/src/mame/drivers/crshrace.cpp b/src/mame/drivers/crshrace.cpp index 551f03a7859..0a78c3f0d3e 100644 --- a/src/mame/drivers/crshrace.cpp +++ b/src/mame/drivers/crshrace.cpp @@ -402,17 +402,16 @@ void crshrace_state::machine_reset() m_flipscreen = 0; } -MACHINE_CONFIG_START(crshrace_state::crshrace) - +void crshrace_state::crshrace(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,16000000) /* 16 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(crshrace_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", crshrace_state, irq1_line_hold) - - MCFG_DEVICE_ADD("audiocpu", Z80,4000000) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_io_map) + M68000(config, m_maincpu, 16000000); /* 16 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &crshrace_state::crshrace_map); + m_maincpu->set_vblank_int("screen", FUNC(crshrace_state::irq1_line_hold)); + Z80(config, m_audiocpu, 4000000); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &crshrace_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &crshrace_state::sound_io_map); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -432,8 +431,8 @@ MACHINE_CONFIG_START(crshrace_state::crshrace) m_spr->set_gfx_region(2); m_spr->set_gfxdecode_tag(m_gfxdecode); - MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM16) - MCFG_DEVICE_ADD("spriteram2", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram); + BUFFERED_SPRITERAM16(config, m_spriteram2); K053936(config, m_k053936, 0); m_k053936->set_wrap(1); @@ -447,13 +446,13 @@ MACHINE_CONFIG_START(crshrace_state::crshrace) m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} ROM_START( crshrace ) diff --git a/src/mame/drivers/f1gp.cpp b/src/mame/drivers/f1gp.cpp index d7c4c18c57e..31792707dfc 100644 --- a/src/mame/drivers/f1gp.cpp +++ b/src/mame/drivers/f1gp.cpp @@ -393,22 +393,22 @@ uint32_t f1gp_state::tile_callback( uint32_t code ) return m_sprcgram[Chip][code & (m_sprcgram[Chip].mask()>>1)]; } -MACHINE_CONFIG_START(f1gp_state::f1gp) - +void f1gp_state::f1gp(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,XTAL(20'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(f1gp_cpu1_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", f1gp_state, irq1_line_hold) + M68000(config, m_maincpu, XTAL(20'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &f1gp_state::f1gp_cpu1_map); + m_maincpu->set_vblank_int("screen", FUNC(f1gp_state::irq1_line_hold)); - MCFG_DEVICE_ADD("sub", M68000,XTAL(20'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(f1gp_cpu2_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", f1gp_state, irq1_line_hold) + m68000_device &sub(M68000(config, "sub", XTAL(20'000'000)/2)); /* verified on pcb */ + sub.set_addrmap(AS_PROGRAM, &f1gp_state::f1gp_cpu2_map); + sub.set_vblank_int("screen", FUNC(f1gp_state::irq1_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,XTAL(20'000'000)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_io_map) + Z80(config, m_audiocpu, XTAL(20'000'000)/4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &f1gp_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &f1gp_state::sound_io_map); - MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame */ + config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame */ ACIA6850(config, m_acia, 0); m_acia->irq_handler().set_inputline("sub", M68K_IRQ_3); @@ -419,12 +419,12 @@ MACHINE_CONFIG_START(f1gp_state::f1gp) acia_clock.signal_handler().append(m_acia, FUNC(acia6850_device::write_rxc)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gp) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(f1gp_state::screen_update_f1gp)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_f1gp); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -455,28 +455,27 @@ MACHINE_CONFIG_START(f1gp_state::f1gp) m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(8'000'000)) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(f1gp_state::f1gpb) + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(8'000'000))); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} +void f1gp_state::f1gpb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,10000000) /* 10 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(f1gpb_cpu1_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", f1gp_state, irq1_line_hold) + M68000(config, m_maincpu, 10000000); /* 10 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &f1gp_state::f1gpb_cpu1_map); + m_maincpu->set_vblank_int("screen", FUNC(f1gp_state::irq1_line_hold)); - MCFG_DEVICE_ADD("sub", M68000,10000000) /* 10 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(f1gpb_cpu2_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", f1gp_state, irq1_line_hold) + m68000_device &sub(M68000(config, "sub", 10000000)); /* 10 MHz ??? */ + sub.set_addrmap(AS_PROGRAM, &f1gp_state::f1gpb_cpu2_map); + sub.set_vblank_int("screen", FUNC(f1gp_state::irq1_line_hold)); /* NO sound CPU */ - MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame */ + config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame */ ACIA6850(config, m_acia, 0); m_acia->irq_handler().set_inputline("sub", M68K_IRQ_3); @@ -487,12 +486,12 @@ MACHINE_CONFIG_START(f1gp_state::f1gpb) acia_clock.signal_handler().append(m_acia, FUNC(acia6850_device::write_rxc)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gpb) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(f1gp_state::screen_update_f1gpb)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_f1gp); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -502,23 +501,22 @@ MACHINE_CONFIG_START(f1gp_state::f1gpb) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified + oki.add_route(ALL_OUTPUTS, "mono", 1.00); +} - -MACHINE_CONFIG_START(f1gp2_state::f1gp2) +void f1gp2_state::f1gp2(machine_config &config) +{ f1gp_state::f1gp(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(f1gp2_cpu1_map) + m_maincpu->set_addrmap(AS_PROGRAM, &f1gp2_state::f1gp2_cpu1_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_f1gp2) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(f1gp2_state, screen_update) + m_gfxdecode->set_info(gfx_f1gp2); + + subdevice("screen")->set_visarea(0*8, 40*8-1, 0*8, 28*8-1); + subdevice("screen")->set_screen_update(FUNC(f1gp2_state::screen_update)); config.device_remove("gga"); config.device_remove("vsystem_spr_old1"); @@ -529,7 +527,7 @@ MACHINE_CONFIG_START(f1gp2_state::f1gp2) m_spr->set_gfxdecode_tag(m_gfxdecode); m_k053936->set_offsets(-48, -21); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/fromanc2.cpp b/src/mame/drivers/fromanc2.cpp index 0bde16dbcd9..b9aec13b2ea 100644 --- a/src/mame/drivers/fromanc2.cpp +++ b/src/mame/drivers/fromanc2.cpp @@ -501,24 +501,24 @@ void fromanc2_state::machine_reset() m_datalatch_2l = 0; } -MACHINE_CONFIG_START(fromanc2_state::fromanc2) - +void fromanc2_state::fromanc2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,32000000/2) /* 16.00 MHz */ - MCFG_DEVICE_PROGRAM_MAP(fromanc2_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", fromanc2_state, irq1_line_hold) + M68000(config, m_maincpu, 32000000/2); /* 16.00 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &fromanc2_state::fromanc2_main_map); + m_maincpu->set_vblank_int("lscreen", FUNC(fromanc2_state::irq1_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,32000000/4) /* 8.00 MHz */ - MCFG_DEVICE_PROGRAM_MAP(fromanc2_sound_map) - MCFG_DEVICE_IO_MAP(fromanc2_sound_io_map) + Z80(config, m_audiocpu, 32000000/4); /* 8.00 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &fromanc2_state::fromanc2_sound_map); + m_audiocpu->set_addrmap(AS_IO, &fromanc2_state::fromanc2_sound_io_map); - MCFG_DEVICE_ADD("sub", Z80,32000000/4) /* 8.00 MHz */ - MCFG_DEVICE_PROGRAM_MAP(fromanc2_sub_map) - MCFG_DEVICE_IO_MAP(fromanc2_sub_io_map) + Z80(config, m_subcpu, 32000000/4); /* 8.00 MHz */ + m_subcpu->set_addrmap(AS_PROGRAM, &fromanc2_state::fromanc2_sub_map); + m_subcpu->set_addrmap(AS_IO, &fromanc2_state::fromanc2_sub_io_map); MCFG_MACHINE_START_OVERRIDE(fromanc2_state,fromanc2) - EEPROM_93C46_16BIT(config, "eeprom"); + EEPROM_93C46_16BIT(config, m_eeprom); /* video hardware */ GFXDECODE(config, m_gfxdecode, m_lpalette, gfx_fromanc2); @@ -528,21 +528,21 @@ MACHINE_CONFIG_START(fromanc2_state::fromanc2) config.set_default_layout(layout_dualhsxs); - MCFG_SCREEN_ADD("lscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 512) - MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_left) - MCFG_SCREEN_PALETTE(m_lpalette) + screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); + lscreen.set_refresh_hz(60); + lscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + lscreen.set_size(512, 512); + lscreen.set_visarea(0, 352-1, 0, 240-1); + lscreen.set_screen_update(FUNC(fromanc2_state::screen_update_left)); + lscreen.set_palette(m_lpalette); - MCFG_SCREEN_ADD("rscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 512) - MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_right) - MCFG_SCREEN_PALETTE(m_rpalette) + screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); + rscreen.set_refresh_hz(60); + rscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + rscreen.set_size(512, 512); + rscreen.set_visarea(0, 352-1, 0, 240-1); + rscreen.set_screen_update(FUNC(fromanc2_state::screen_update_right)); + rscreen.set_palette(m_rpalette); MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromanc2) @@ -552,31 +552,31 @@ MACHINE_CONFIG_START(fromanc2_state::fromanc2) GENERIC_LATCH_8(config, m_soundlatch); GENERIC_LATCH_8(config, m_soundlatch2); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.50) - MCFG_SOUND_ROUTE(1, "mono", 0.75) - MCFG_SOUND_ROUTE(2, "mono", 0.75) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(fromanc2_state::fromancr) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.50); + ymsnd.add_route(1, "mono", 0.75); + ymsnd.add_route(2, "mono", 0.75); +} +void fromanc2_state::fromancr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,32000000/2) /* 16.00 MHz */ - MCFG_DEVICE_PROGRAM_MAP(fromancr_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", fromanc2_state, irq1_line_hold) + M68000(config, m_maincpu, 32000000/2); /* 16.00 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &fromanc2_state::fromancr_main_map); + m_maincpu->set_vblank_int("lscreen", FUNC(fromanc2_state::irq1_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,32000000/4) /* 8.00 MHz */ - MCFG_DEVICE_PROGRAM_MAP(fromanc2_sound_map) - MCFG_DEVICE_IO_MAP(fromanc2_sound_io_map) + Z80(config, m_audiocpu, 32000000/4); /* 8.00 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &fromanc2_state::fromanc2_sound_map); + m_audiocpu->set_addrmap(AS_IO, &fromanc2_state::fromanc2_sound_io_map); - MCFG_DEVICE_ADD("sub", Z80,32000000/4) /* 8.00 MHz */ - MCFG_DEVICE_PROGRAM_MAP(fromanc2_sub_map) - MCFG_DEVICE_IO_MAP(fromanc2_sub_io_map) + Z80(config, m_subcpu, 32000000/4); /* 8.00 MHz */ + m_subcpu->set_addrmap(AS_PROGRAM, &fromanc2_state::fromanc2_sub_map); + m_subcpu->set_addrmap(AS_IO, &fromanc2_state::fromanc2_sub_io_map); MCFG_MACHINE_START_OVERRIDE(fromanc2_state,fromanc2) - EEPROM_93C46_16BIT(config, "eeprom"); + EEPROM_93C46_16BIT(config, m_eeprom); /* video hardware */ GFXDECODE(config, m_gfxdecode, m_lpalette, gfx_fromancr); @@ -586,21 +586,21 @@ MACHINE_CONFIG_START(fromanc2_state::fromancr) config.set_default_layout(layout_dualhsxs); - MCFG_SCREEN_ADD("lscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 512) - MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_left) - MCFG_SCREEN_PALETTE(m_lpalette) + screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); + lscreen.set_refresh_hz(60); + lscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + lscreen.set_size(512, 512); + lscreen.set_visarea(0, 352-1, 0, 240-1); + lscreen.set_screen_update(FUNC(fromanc2_state::screen_update_left)); + lscreen.set_palette(m_lpalette); - MCFG_SCREEN_ADD("rscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 512) - MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_right) - MCFG_SCREEN_PALETTE(m_rpalette) + screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); + rscreen.set_refresh_hz(60); + rscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + rscreen.set_size(512, 512); + rscreen.set_visarea(0, 352-1, 0, 240-1); + rscreen.set_screen_update(FUNC(fromanc2_state::screen_update_right)); + rscreen.set_palette(m_rpalette); MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromancr) @@ -610,27 +610,27 @@ MACHINE_CONFIG_START(fromanc2_state::fromancr) GENERIC_LATCH_8(config, m_soundlatch); GENERIC_LATCH_8(config, m_soundlatch2); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.50) - MCFG_SOUND_ROUTE(1, "mono", 0.75) - MCFG_SOUND_ROUTE(2, "mono", 0.75) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(fromanc2_state::fromanc4) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.50); + ymsnd.add_route(1, "mono", 0.75); + ymsnd.add_route(2, "mono", 0.75); +} +void fromanc2_state::fromanc4(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(32'000'000)/2) /* 16.00 MHz */ - MCFG_DEVICE_PROGRAM_MAP(fromanc4_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", fromanc2_state, irq1_line_hold) + M68000(config, m_maincpu, XTAL(32'000'000)/2); /* 16.00 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &fromanc2_state::fromanc4_main_map); + m_maincpu->set_vblank_int("lscreen", FUNC(fromanc2_state::irq1_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(32'000'000)/4) /* 8.00 MHz */ - MCFG_DEVICE_PROGRAM_MAP(fromanc2_sound_map) - MCFG_DEVICE_IO_MAP(fromanc2_sound_io_map) + Z80(config, m_audiocpu, XTAL(32'000'000)/4); /* 8.00 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &fromanc2_state::fromanc2_sound_map); + m_audiocpu->set_addrmap(AS_IO, &fromanc2_state::fromanc2_sound_io_map); MCFG_MACHINE_START_OVERRIDE(fromanc2_state,fromanc4) - EEPROM_93C46_16BIT(config, "eeprom"); + EEPROM_93C46_16BIT(config, m_eeprom); NS16550(config, m_uart, 2000000); // actual type is TL16C550CFN; clock unknown m_uart->out_int_callback().set_inputline("maincpu", M68K_IRQ_2); @@ -645,21 +645,21 @@ MACHINE_CONFIG_START(fromanc2_state::fromanc4) config.set_default_layout(layout_dualhsxs); - MCFG_SCREEN_ADD("lscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 512) - MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_left) - MCFG_SCREEN_PALETTE("lpalette") + screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); + lscreen.set_refresh_hz(60); + lscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + lscreen.set_size(512, 512); + lscreen.set_visarea(0, 352-1, 0, 240-1); + lscreen.set_screen_update(FUNC(fromanc2_state::screen_update_left)); + lscreen.set_palette(m_lpalette); - MCFG_SCREEN_ADD("rscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 512) - MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_right) - MCFG_SCREEN_PALETTE("rpalette") + screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); + rscreen.set_refresh_hz(60); + rscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + rscreen.set_size(512, 512); + rscreen.set_visarea(0, 352-1, 0, 240-1); + rscreen.set_screen_update(FUNC(fromanc2_state::screen_update_right)); + rscreen.set_palette(m_rpalette); MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromanc4) @@ -669,12 +669,12 @@ MACHINE_CONFIG_START(fromanc2_state::fromanc4) GENERIC_LATCH_8(config, m_soundlatch); GENERIC_LATCH_8(config, m_soundlatch2); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.50) - MCFG_SOUND_ROUTE(1, "mono", 0.75) - MCFG_SOUND_ROUTE(2, "mono", 0.75) -MACHINE_CONFIG_END + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.50); + ymsnd.add_route(1, "mono", 0.75); + ymsnd.add_route(2, "mono", 0.75); +} /************************************* diff --git a/src/mame/drivers/gstriker.cpp b/src/mame/drivers/gstriker.cpp index 8735eaf9f7d..78f25ddc8a9 100644 --- a/src/mame/drivers/gstriker.cpp +++ b/src/mame/drivers/gstriker.cpp @@ -493,10 +493,11 @@ INPUT_PORTS_END /*** MACHINE DRIVER **********************************************************/ -MACHINE_CONFIG_START(gstriker_state::base) - MCFG_DEVICE_ADD("audiocpu", Z80,8000000/2) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_io_map) +void gstriker_state::base(machine_config &config) +{ + Z80(config, m_audiocpu, 8000000/2); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &gstriker_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &gstriker_state::sound_io_map); vs9209_device &io(VS9209(config, "io", 0)); io.porta_input_cb().set_ioport("P1"); @@ -507,22 +508,21 @@ MACHINE_CONFIG_START(gstriker_state::base) io.porth_input_cb().set(m_soundlatch, FUNC(generic_latch_8_device::pending_r)).lshift(0); io.porth_output_cb().set("watchdog", FUNC(mb3773_device::write_line_ck)).bit(3); - MCFG_DEVICE_ADD("watchdog", MB3773, 0) + MB3773(config, m_watchdog, 0); - MCFG_SCREEN_ADD("screen", RASTER) -// MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000) /* hand-tuned, it needs a bit */) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(gstriker_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, gstriker_state, screen_vblank)) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); +// m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(5000)); /* hand-tuned, it needs a bit */ + m_screen->set_size(64*8, 64*8); + m_screen->set_visarea(0*8, 40*8-1, 0*8, 28*8-1); + m_screen->set_screen_update(FUNC(gstriker_state::screen_update)); + m_screen->screen_vblank().set(FUNC(gstriker_state::screen_vblank)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gstriker); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x800); - MB60553(config, m_bg, 0); m_bg->set_gfxdecode_tag(m_gfxdecode); m_bg->set_gfx_region(1); @@ -544,13 +544,13 @@ MACHINE_CONFIG_START(gstriker_state::base) m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} void gstriker_state::gstriker(machine_config &config) { diff --git a/src/mame/drivers/inufuku.cpp b/src/mame/drivers/inufuku.cpp index 80a9271c733..60d80aa6dc6 100644 --- a/src/mame/drivers/inufuku.cpp +++ b/src/mame/drivers/inufuku.cpp @@ -333,30 +333,28 @@ void inufuku_state::machine_reset() m_tx_palettebank = 0; } -MACHINE_CONFIG_START(inufuku_state::inufuku) - +void inufuku_state::inufuku(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 32000000/2) /* 16.00 MHz */ - MCFG_DEVICE_PROGRAM_MAP(inufuku_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", inufuku_state, irq1_line_hold) - - MCFG_DEVICE_ADD("audiocpu", Z80, 32000000/4) /* 8.00 MHz */ - MCFG_DEVICE_PROGRAM_MAP(inufuku_sound_map) - MCFG_DEVICE_IO_MAP(inufuku_sound_io_map) - /* IRQs are triggered by the YM2610 */ + M68000(config, m_maincpu, 32000000/2); /* 16.00 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &inufuku_state::inufuku_map); + m_maincpu->set_vblank_int("screen", FUNC(inufuku_state::irq1_line_hold)); + Z80(config, m_audiocpu, 32000000/4); /* 8.00 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &inufuku_state::inufuku_sound_map); + m_audiocpu->set_addrmap(AS_IO, &inufuku_state::inufuku_sound_io_map); /* IRQs are triggered by the YM2610 */ EEPROM_93C46_16BIT(config, "eeprom"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2300)) - MCFG_SCREEN_SIZE(2048, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 223) - MCFG_SCREEN_UPDATE_DRIVER(inufuku_state, screen_update_inufuku) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, inufuku_state, screen_vblank_inufuku)) - 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(2300)); + screen.set_size(2048, 256); + screen.set_visarea(0, 319, 0, 223); + screen.set_screen_update(FUNC(inufuku_state::screen_update_inufuku)); + screen.screen_vblank().set(FUNC(inufuku_state::screen_vblank_inufuku)); + screen.set_palette(m_palette); VSYSTEM_SPR(config, m_spr, 0); m_spr->set_offsets(0, 1); // reference videos confirm at least the +1 against tilemaps in 3on3dunk (the highscore header text and black box are meant to be 1 pixel misaligned, although there is currently a priority bug there too) @@ -375,18 +373,18 @@ MACHINE_CONFIG_START(inufuku_state::inufuku) m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM2610, 32000000/4) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.50) - MCFG_SOUND_ROUTE(1, "mono", 0.75) - MCFG_SOUND_ROUTE(2, "mono", 0.75) -MACHINE_CONFIG_END + ym2610_device &ymsnd(YM2610(config, "ymsnd", 32000000/4)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.50); + ymsnd.add_route(1, "mono", 0.75); + ymsnd.add_route(2, "mono", 0.75); +} - -MACHINE_CONFIG_START(inufuku_state::_3on3dunk) +void inufuku_state::_3on3dunk(machine_config &config) +{ inufuku(config); - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_3on3dunk) -MACHINE_CONFIG_END + m_gfxdecode->set_info(gfx_3on3dunk); +} diff --git a/src/mame/drivers/mcatadv.cpp b/src/mame/drivers/mcatadv.cpp index 467de6c0205..4ea8bd64aaf 100644 --- a/src/mame/drivers/mcatadv.cpp +++ b/src/mame/drivers/mcatadv.cpp @@ -434,34 +434,32 @@ void mcatadv_state::machine_start() save_item(NAME(m_palette_bank)); } -MACHINE_CONFIG_START(mcatadv_state::mcatadv) - +void mcatadv_state::mcatadv(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(mcatadv_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mcatadv_state, irq1_line_hold) - - MCFG_DEVICE_ADD("soundcpu", Z80, XTAL(16'000'000)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(mcatadv_sound_map) - MCFG_DEVICE_IO_MAP(mcatadv_sound_io_map) + M68000(config, m_maincpu, XTAL(16'000'000)); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &mcatadv_state::mcatadv_map); + m_maincpu->set_vblank_int("screen", FUNC(mcatadv_state::irq1_line_hold)); + Z80(config, m_soundcpu, XTAL(16'000'000)/4); /* verified on pcb */ + m_soundcpu->set_addrmap(AS_PROGRAM, &mcatadv_state::mcatadv_sound_map); + m_soundcpu->set_addrmap(AS_IO, &mcatadv_state::mcatadv_sound_io_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(320, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MCFG_SCREEN_UPDATE_DRIVER(mcatadv_state, screen_update_mcatadv) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, mcatadv_state, screen_vblank_mcatadv)) - 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(0)); + screen.set_size(320, 256); + screen.set_visarea(0, 320-1, 0, 224-1); + screen.set_screen_update(FUNC(mcatadv_state::screen_update_mcatadv)); + screen.screen_vblank().set(FUNC(mcatadv_state::screen_vblank_mcatadv)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_mcatadv); PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 0x2000/2); WATCHDOG_TIMER(config, m_watchdog).set_time(attotime::from_seconds(3)); /* a guess, and certainly wrong */ - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -469,26 +467,26 @@ MACHINE_CONFIG_START(mcatadv_state::mcatadv) GENERIC_LATCH_8(config, "soundlatch2"); - MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(16'000'000)/2) /* verified on pcb */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("soundcpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.32) - MCFG_SOUND_ROUTE(1, "mono", 0.5) - MCFG_SOUND_ROUTE(2, "mono", 0.5) -MACHINE_CONFIG_END + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(16'000'000)/2)); /* verified on pcb */ + ymsnd.irq_handler().set_inputline(m_soundcpu, 0); + ymsnd.add_route(0, "mono", 0.32); + ymsnd.add_route(1, "mono", 0.5); + ymsnd.add_route(2, "mono", 0.5); +} -MACHINE_CONFIG_START(mcatadv_state::nost) +void mcatadv_state::nost(machine_config &config) +{ mcatadv(config); - MCFG_DEVICE_MODIFY("soundcpu") - MCFG_DEVICE_PROGRAM_MAP(nost_sound_map) - MCFG_DEVICE_IO_MAP(nost_sound_io_map) + m_soundcpu->set_addrmap(AS_PROGRAM, &mcatadv_state::nost_sound_map); + m_soundcpu->set_addrmap(AS_IO, &mcatadv_state::nost_sound_io_map); - MCFG_DEVICE_REPLACE("ymsnd", YM2610, XTAL(16'000'000)/2) /* verified on pcb */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("soundcpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.2) - MCFG_SOUND_ROUTE(1, "mono", 0.5) - MCFG_SOUND_ROUTE(2, "mono", 0.5) -MACHINE_CONFIG_END + ym2610_device &ymsnd(YM2610(config.replace(), "ymsnd", XTAL(16'000'000)/2)); /* verified on pcb */ + ymsnd.irq_handler().set_inputline(m_soundcpu, 0); + ymsnd.add_route(0, "mono", 0.2); + ymsnd.add_route(1, "mono", 0.5); + ymsnd.add_route(2, "mono", 0.5); +} ROM_START( mcatadv ) diff --git a/src/mame/drivers/neoprint.cpp b/src/mame/drivers/neoprint.cpp index 9a099fba973..97f1886528c 100644 --- a/src/mame/drivers/neoprint.cpp +++ b/src/mame/drivers/neoprint.cpp @@ -500,27 +500,27 @@ void neoprint_state::machine_start() } MACHINE_CONFIG_START(neoprint_state::neoprint) - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(neoprint_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(neoprint_state, irq3_line_hold, 45) /* camera / printer irq, unknown timing */ - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", neoprint_state, irq2_line_hold) // lv1,2,3 valid? + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &neoprint_state::neoprint_map); + m_maincpu->set_periodic_int(FUNC(neoprint_state::irq3_line_hold), attotime::from_hz(45)); /* camera / printer irq, unknown timing */ + m_maincpu->set_vblank_int("screen", FUNC(neoprint_state::irq2_line_hold)); // lv1,2,3 valid? - MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) - MCFG_DEVICE_PROGRAM_MAP(neoprint_audio_map) - MCFG_DEVICE_IO_MAP(neoprint_audio_io_map) + Z80(config, m_audiocpu, 4000000); + m_audiocpu->set_addrmap(AS_PROGRAM, &neoprint_state::neoprint_audio_map); + m_audiocpu->set_addrmap(AS_IO, &neoprint_state::neoprint_audio_io_map); UPD4990A(config, m_upd4990a); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); GFXDECODE(config, m_gfxdecode, m_palette, gfx_neoprint); - 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(0*8, 48*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(neoprint_state, screen_update_neoprint) - MCFG_SCREEN_PALETTE(m_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(0*8, 48*8-1, 0*8, 30*8-1); + m_screen->set_screen_update(FUNC(neoprint_state::screen_update_neoprint)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x10000); @@ -529,41 +529,42 @@ MACHINE_CONFIG_START(neoprint_state::neoprint) GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("ymsnd", YM2610, 24000000 / 3) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.60) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.60) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END + ym2610_device &ymsnd(YM2610(config, "ymsnd", 24000000 / 3)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.60); + ymsnd.add_route(0, "rspeaker", 0.60); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} MACHINE_RESET_MEMBER(neoprint_state,nprsp) { m_bank_val = 0; } -MACHINE_CONFIG_START(neoprint_state::nprsp) - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(nprsp_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(neoprint_state, irq3_line_hold, 45) /* camera / printer irq, unknown timing */ - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", neoprint_state, irq2_line_hold) // lv1,2,3 valid? +void neoprint_state::nprsp(machine_config &config) +{ + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &neoprint_state::nprsp_map); + m_maincpu->set_periodic_int(FUNC(neoprint_state::irq3_line_hold), attotime::from_hz(45)); /* camera / printer irq, unknown timing */ + m_maincpu->set_vblank_int("screen", FUNC(neoprint_state::irq2_line_hold)); // lv1,2,3 valid? - MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) - MCFG_DEVICE_PROGRAM_MAP(neoprint_audio_map) - MCFG_DEVICE_IO_MAP(neoprint_audio_io_map) + Z80(config, m_audiocpu, 4000000); + m_audiocpu->set_addrmap(AS_PROGRAM, &neoprint_state::neoprint_audio_map); + m_audiocpu->set_addrmap(AS_IO, &neoprint_state::neoprint_audio_io_map); UPD4990A(config, m_upd4990a); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); GFXDECODE(config, m_gfxdecode, m_palette, gfx_neoprint); - 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(0*8, 48*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(neoprint_state, screen_update_nprsp) - MCFG_SCREEN_PALETTE(m_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(0*8, 48*8-1, 0*8, 30*8-1); + m_screen->set_screen_update(FUNC(neoprint_state::screen_update_nprsp)); + m_screen->set_palette(m_palette); MCFG_MACHINE_RESET_OVERRIDE(neoprint_state,nprsp) @@ -574,13 +575,13 @@ MACHINE_CONFIG_START(neoprint_state::nprsp) GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("ymsnd", YM2610, 24000000 / 3) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.60) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.60) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END + ym2610_device &ymsnd(YM2610(config, "ymsnd", 24000000 / 3)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.60); + ymsnd.add_route(0, "rspeaker", 0.60); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} // uses NEO-MVS PROGBK1 (Same as NeoGeo MVS cart) diff --git a/src/mame/drivers/ninjaw.cpp b/src/mame/drivers/ninjaw.cpp index d91ffa3ac4f..c34b15683e1 100644 --- a/src/mame/drivers/ninjaw.cpp +++ b/src/mame/drivers/ninjaw.cpp @@ -733,24 +733,24 @@ void ninjaw_state::machine_reset() machine().sound().system_enable(true); /* mixer enabled */ } -MACHINE_CONFIG_START(ninjaw_state::ninjaw) - +void ninjaw_state::ninjaw(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,16000000/2) /* 8 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(ninjaw_master_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", ninjaw_state, irq4_line_hold) + M68000(config, m_maincpu, 16000000/2); /* 8 MHz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &ninjaw_state::ninjaw_master_map); + m_maincpu->set_vblank_int("lscreen", FUNC(ninjaw_state::irq4_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,16000000/4) /* 16/4 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + z80_device &audiocpu(Z80(config, "audiocpu", 16000000/4)); /* 16/4 MHz ? */ + audiocpu.set_addrmap(AS_PROGRAM, &ninjaw_state::sound_map); - MCFG_DEVICE_ADD("sub", M68000,16000000/2) /* 8 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(ninjaw_slave_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", ninjaw_state, irq4_line_hold) + M68000(config, m_subcpu, 16000000/2); /* 8 MHz ? */ + m_subcpu->set_addrmap(AS_PROGRAM, &ninjaw_state::ninjaw_slave_map); + m_subcpu->set_vblank_int("lscreen", FUNC(ninjaw_state::irq4_line_hold)); // TODO: if CPUs are unsynched then seldomly stages loads up with no enemies // Let's use a better timer (was 6000 before) based off actual CPU timing. // Might as well bump the divider in case the bug still occurs before resorting to perfect CPU. - MCFG_QUANTUM_TIME(attotime::from_hz(16000000/1024)) /* CPU slices */ + config.m_minimum_quantum = attotime::from_hz(16000000/1024); /* CPU slices */ //MCFG_QUANTUM_PERFECT_CPU("maincpu") tc0040ioc_device &tc0040ioc(TC0040IOC(config, "tc0040ioc", 0)); @@ -762,36 +762,36 @@ MACHINE_CONFIG_START(ninjaw_state::ninjaw) tc0040ioc.read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_ninjaw) - MCFG_PALETTE_ADD("palette", 4096) - MCFG_PALETTE_ADD("palette2", 4096) - MCFG_PALETTE_ADD("palette3", 4096) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_ninjaw); + PALETTE(config, m_palette).set_entries(4096); + PALETTE(config, "palette2").set_entries(4096); + PALETTE(config, "palette3").set_entries(4096); config.set_default_layout(layout_ninjaw); - MCFG_SCREEN_ADD("lscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(36*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_left) - MCFG_SCREEN_PALETTE("palette") + screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); + lscreen.set_refresh_hz(60); + lscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + lscreen.set_size(36*8, 32*8); + lscreen.set_visarea(0*8, 36*8-1, 3*8, 31*8-1); + lscreen.set_screen_update(FUNC(ninjaw_state::screen_update_left)); + lscreen.set_palette(m_palette); - MCFG_SCREEN_ADD("mscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(36*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_middle) - MCFG_SCREEN_PALETTE("palette2") + screen_device &mscreen(SCREEN(config, "mscreen", SCREEN_TYPE_RASTER)); + mscreen.set_refresh_hz(60); + mscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + mscreen.set_size(36*8, 32*8); + mscreen.set_visarea(0*8, 36*8-1, 3*8, 31*8-1); + mscreen.set_screen_update(FUNC(ninjaw_state::screen_update_middle)); + mscreen.set_palette("palette2"); - MCFG_SCREEN_ADD("rscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(36*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_right) - MCFG_SCREEN_PALETTE("palette3") + screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); + rscreen.set_refresh_hz(60); + rscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + rscreen.set_size(36*8, 32*8); + rscreen.set_visarea(0*8, 36*8-1, 3*8, 31*8-1); + rscreen.set_screen_update(FUNC(ninjaw_state::screen_update_right)); + rscreen.set_palette("palette3"); TC0100SCN(config, m_tc0100scn[0], 0); m_tc0100scn[0]->set_gfx_region(1); @@ -830,14 +830,14 @@ MACHINE_CONFIG_START(ninjaw_state::ninjaw) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0) - MCFG_SOUND_ROUTE(1, "2610.1.r", 1.0) - MCFG_SOUND_ROUTE(2, "2610.2.l", 1.0) - MCFG_SOUND_ROUTE(2, "2610.2.r", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set_inputline("audiocpu", 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "2610.1.l", 1.0); + ymsnd.add_route(1, "2610.1.r", 1.0); + ymsnd.add_route(2, "2610.2.l", 1.0); + ymsnd.add_route(2, "2610.2.r", 1.0); FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0); FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0); @@ -849,25 +849,25 @@ MACHINE_CONFIG_START(ninjaw_state::ninjaw) TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_maincpu); m_tc0140syt->set_slave_tag("audiocpu"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(ninjaw_state::darius2) - +void ninjaw_state::darius2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,16000000/2) /* 8 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(darius2_master_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", ninjaw_state, irq4_line_hold) + M68000(config, m_maincpu, 16000000/2); /* 8 MHz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &ninjaw_state::darius2_master_map); + m_maincpu->set_vblank_int("lscreen", FUNC(ninjaw_state::irq4_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + z80_device &audiocpu(Z80(config, "audiocpu", 16000000/4)); /* 4 MHz ? */ + audiocpu.set_addrmap(AS_PROGRAM, &ninjaw_state::sound_map); - MCFG_DEVICE_ADD("sub", M68000,16000000/2) /* 8 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(darius2_slave_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", ninjaw_state, irq4_line_hold) + M68000(config, m_subcpu, 16000000/2); /* 8 MHz ? */ + m_subcpu->set_addrmap(AS_PROGRAM, &ninjaw_state::darius2_slave_map); + m_subcpu->set_vblank_int("lscreen", FUNC(ninjaw_state::irq4_line_hold)); - MCFG_QUANTUM_TIME(attotime::from_hz(16000000/1024)) /* CPU slices */ - //MCFG_QUANTUM_PERFECT_CPU("maincpu") + config.m_minimum_quantum = attotime::from_hz(16000000/1024); /* CPU slices */ + //config.m_perfect_cpu_quantum = subtag("maincpu"); tc0040ioc_device &tc0040ioc(TC0040IOC(config, "tc0040ioc", 0)); tc0040ioc.read_0_callback().set_ioport("DSWA"); @@ -878,36 +878,36 @@ MACHINE_CONFIG_START(ninjaw_state::darius2) tc0040ioc.read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_ninjaw) - MCFG_PALETTE_ADD("palette", 4096) - MCFG_PALETTE_ADD("palette2", 4096) - MCFG_PALETTE_ADD("palette3", 4096) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_ninjaw); + PALETTE(config, m_palette).set_entries(4096); + PALETTE(config, "palette2").set_entries(4096); + PALETTE(config, "palette3").set_entries(4096); config.set_default_layout(layout_ninjaw); - MCFG_SCREEN_ADD("lscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(36*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_left) - MCFG_SCREEN_PALETTE("palette") + screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); + lscreen.set_refresh_hz(60); + lscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + lscreen.set_size(36*8, 32*8); + lscreen.set_visarea(0*8, 36*8-1, 3*8, 31*8-1); + lscreen.set_screen_update(FUNC(ninjaw_state::screen_update_left)); + lscreen.set_palette(m_palette); - MCFG_SCREEN_ADD("mscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(36*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_middle) - MCFG_SCREEN_PALETTE("palette2") + screen_device &mscreen(SCREEN(config, "mscreen", SCREEN_TYPE_RASTER)); + mscreen.set_refresh_hz(60); + mscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + mscreen.set_size(36*8, 32*8); + mscreen.set_visarea(0*8, 36*8-1, 3*8, 31*8-1); + mscreen.set_screen_update(FUNC(ninjaw_state::screen_update_middle)); + mscreen.set_palette("palette2"); - MCFG_SCREEN_ADD("rscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(36*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_right) - MCFG_SCREEN_PALETTE("palette3") + screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); + rscreen.set_refresh_hz(60); + rscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + rscreen.set_size(36*8, 32*8); + rscreen.set_visarea(0*8, 36*8-1, 3*8, 31*8-1); + rscreen.set_screen_update(FUNC(ninjaw_state::screen_update_right)); + rscreen.set_palette("palette3"); TC0100SCN(config, m_tc0100scn[0], 0); m_tc0100scn[0]->set_gfx_region(1); @@ -946,14 +946,14 @@ MACHINE_CONFIG_START(ninjaw_state::darius2) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0) - MCFG_SOUND_ROUTE(1, "2610.1.r", 1.0) - MCFG_SOUND_ROUTE(2, "2610.2.l", 1.0) - MCFG_SOUND_ROUTE(2, "2610.2.r", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set_inputline("audiocpu", 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "2610.1.l", 1.0); + ymsnd.add_route(1, "2610.1.r", 1.0); + ymsnd.add_route(2, "2610.2.l", 1.0); + ymsnd.add_route(2, "2610.2.r", 1.0); FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0); FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0); @@ -965,7 +965,7 @@ MACHINE_CONFIG_START(ninjaw_state::darius2) TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_maincpu); m_tc0140syt->set_slave_tag("audiocpu"); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/othunder.cpp b/src/mame/drivers/othunder.cpp index 056e33c039b..b0297cf4c53 100644 --- a/src/mame/drivers/othunder.cpp +++ b/src/mame/drivers/othunder.cpp @@ -604,16 +604,16 @@ void othunder_state::machine_start() save_item(NAME(m_pan)); } -MACHINE_CONFIG_START(othunder_state::othunder) - +void othunder_state::othunder(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL/2) - MCFG_DEVICE_PROGRAM_MAP(othunder_map) + M68000(config, m_maincpu, 24_MHz_XTAL/2); + m_maincpu->set_addrmap(AS_PROGRAM, &othunder_state::othunder_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL/2/2) - MCFG_DEVICE_PROGRAM_MAP(z80_sound_map) + Z80(config, m_audiocpu, 16_MHz_XTAL/2/2); + m_audiocpu->set_addrmap(AS_PROGRAM, &othunder_state::z80_sound_map); - EEPROM_93C46_16BIT(config, "eeprom"); + EEPROM_93C46_16BIT(config, m_eeprom); adc0808_device &adc(ADC0808(config, "adc", 16_MHz_XTAL/2/2/8)); adc.eoc_callback().set(FUNC(othunder_state::adc_eoc_w)); @@ -632,17 +632,17 @@ MACHINE_CONFIG_START(othunder_state::othunder) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(othunder_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, othunder_state, vblank_w)) + 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(othunder_state::screen_update)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(othunder_state::vblank_w)); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_othunder) - MCFG_PALETTE_ADD("palette", 4096) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_othunder); + PALETTE(config, m_palette).set_entries(4096); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -656,14 +656,14 @@ MACHINE_CONFIG_START(othunder_state::othunder) /* sound hardware */ SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "2610.0l", 0.25) - MCFG_SOUND_ROUTE(0, "2610.0r", 0.25) - MCFG_SOUND_ROUTE(1, "2610.1l", 1.0) - MCFG_SOUND_ROUTE(1, "2610.1r", 1.0) - MCFG_SOUND_ROUTE(2, "2610.2l", 1.0) - MCFG_SOUND_ROUTE(2, "2610.2r", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "2610.0l", 0.25); + ymsnd.add_route(0, "2610.0r", 0.25); + ymsnd.add_route(1, "2610.1l", 1.0); + ymsnd.add_route(1, "2610.1r", 1.0); + ymsnd.add_route(2, "2610.2l", 1.0); + ymsnd.add_route(2, "2610.2r", 1.0); FILTER_VOLUME(config, "2610.0l").add_route(ALL_OUTPUTS, "speaker", 1.0); FILTER_VOLUME(config, "2610.0r").add_route(ALL_OUTPUTS, "speaker", 1.0); @@ -675,7 +675,7 @@ MACHINE_CONFIG_START(othunder_state::othunder) TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_maincpu); m_tc0140syt->set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/pipedrm.cpp b/src/mame/drivers/pipedrm.cpp index 732daefecde..5360228314b 100644 --- a/src/mame/drivers/pipedrm.cpp +++ b/src/mame/drivers/pipedrm.cpp @@ -579,29 +579,29 @@ MACHINE_RESET_MEMBER(pipedrm_state,pipedrm) m_flipscreen = 0; } -MACHINE_CONFIG_START(pipedrm_state::pipedrm) - +void pipedrm_state::pipedrm(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,12000000/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_IO_MAP(main_portmap) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pipedrm_state, irq0_line_hold) + Z80(config, m_maincpu, 12000000/2); + m_maincpu->set_addrmap(AS_PROGRAM, &pipedrm_state::main_map); + m_maincpu->set_addrmap(AS_IO, &pipedrm_state::main_portmap); + m_maincpu->set_vblank_int("screen", FUNC(pipedrm_state::irq0_line_hold)); - MCFG_DEVICE_ADD("sub", Z80,14318000/4) - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_portmap) + Z80(config, m_subcpu, 14318000/4); + m_subcpu->set_addrmap(AS_PROGRAM, &pipedrm_state::sound_map); + m_subcpu->set_addrmap(AS_IO, &pipedrm_state::sound_portmap); MCFG_MACHINE_START_OVERRIDE(pipedrm_state,pipedrm) MCFG_MACHINE_RESET_OVERRIDE(pipedrm_state,pipedrm) /* 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(44*8, 30*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pipedrm_state, screen_update_pipedrm) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(44*8, 30*8); + m_screen->set_visarea(0*8, 44*8-1, 0*8, 30*8-1); + m_screen->set_screen_update(FUNC(pipedrm_state::screen_update_pipedrm)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pipedrm); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -624,37 +624,36 @@ MACHINE_CONFIG_START(pipedrm_state::pipedrm) m_soundlatch->data_pending_callback().set_inputline(m_subcpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("sub", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.50) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(pipedrm_state::hatris) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline("sub", 0); + ymsnd.add_route(0, "mono", 0.50); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); +} +void pipedrm_state::hatris(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,12000000/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_IO_MAP(main_portmap) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pipedrm_state, irq0_line_hold) + Z80(config, m_maincpu, 12000000/2); + m_maincpu->set_addrmap(AS_PROGRAM, &pipedrm_state::main_map); + m_maincpu->set_addrmap(AS_IO, &pipedrm_state::main_portmap); + m_maincpu->set_vblank_int("screen", FUNC(pipedrm_state::irq0_line_hold)); - MCFG_DEVICE_ADD("sub", Z80,14318000/4) - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(hatris_sound_portmap) + Z80(config, m_subcpu, 14318000/4); + m_subcpu->set_addrmap(AS_PROGRAM, &pipedrm_state::sound_map); + m_subcpu->set_addrmap(AS_IO, &pipedrm_state::hatris_sound_portmap); MCFG_MACHINE_START_OVERRIDE(pipedrm_state,pipedrm) MCFG_MACHINE_RESET_OVERRIDE(pipedrm_state,pipedrm) /* 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(44*8, 30*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pipedrm_state, screen_update_fromance) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(44*8, 30*8); + m_screen->set_visarea(0*8, 44*8-1, 0*8, 30*8-1); + m_screen->set_screen_update(FUNC(pipedrm_state::screen_update_fromance)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_hatris); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -674,12 +673,12 @@ MACHINE_CONFIG_START(pipedrm_state::hatris) // sound board. //m_soundlatch->data_pending_callback().set_inputline(m_subcpu, INPUT_LINE_NMI); - MCFG_DEVICE_ADD("ymsnd", YM2608, 8000000) - MCFG_YM2608_IRQ_HANDLER(INPUTLINE("sub", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.50) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_CONFIG_END + ym2608_device &ym2608(YM2608(config, "ymsnd", 8000000)); + ym2608.irq_handler().set_inputline("sub", 0); + ym2608.add_route(0, "mono", 0.50); + ym2608.add_route(1, "mono", 1.0); + ym2608.add_route(2, "mono", 1.0); +} diff --git a/src/mame/drivers/slapshot.cpp b/src/mame/drivers/slapshot.cpp index f374fecff89..56ab5b95a07 100644 --- a/src/mame/drivers/slapshot.cpp +++ b/src/mame/drivers/slapshot.cpp @@ -441,17 +441,17 @@ void slapshot_state::machine_start() } -MACHINE_CONFIG_START(slapshot_state::slapshot) - +void slapshot_state::slapshot(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14346000) /* 28.6860 MHz / 2 ??? */ - MCFG_DEVICE_PROGRAM_MAP(slapshot_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", slapshot_state, interrupt) + M68000(config, m_maincpu, 14346000); /* 28.6860 MHz / 2 ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &slapshot_state::slapshot_map); + m_maincpu->set_vblank_int("screen", FUNC(slapshot_state::interrupt)); - MCFG_DEVICE_ADD("audiocpu", Z80,32000000/8) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(opwolf3_z80_sound_map) + z80_device &audiocpu(Z80(config, "audiocpu", 32000000/8)); /* 4 MHz */ + audiocpu.set_addrmap(AS_PROGRAM, &slapshot_state::opwolf3_z80_sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0640FIO(config, m_tc0640fio, 0); m_tc0640fio->read_1_callback().set_ioport("COINS"); @@ -461,14 +461,14 @@ MACHINE_CONFIG_START(slapshot_state::slapshot) m_tc0640fio->read_7_callback().set_ioport("JOY"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(slapshot_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, slapshot_state, screen_vblank_taito_no_buffer)) - 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(0)); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(slapshot_state::screen_update)); + screen.screen_vblank().set(FUNC(slapshot_state::screen_vblank_taito_no_buffer)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_slapshot); PALETTE(config, m_palette).set_format(palette_device::xRGB_888, 8192); @@ -488,31 +488,31 @@ MACHINE_CONFIG_START(slapshot_state::slapshot) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610B, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) + ym2610b_device &ymsnd(YM2610B(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set_inputline("audiocpu", 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); - MCFG_DEVICE_ADD("mk48t08", MK48T08, 0) + MK48T08(config, "mk48t08", 0); TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_maincpu); m_tc0140syt->set_slave_tag("audiocpu"); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(slapshot_state::opwolf3) +} +void slapshot_state::opwolf3(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14346000) /* 28.6860 MHz / 2 ??? */ - MCFG_DEVICE_PROGRAM_MAP(opwolf3_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", slapshot_state, interrupt) + M68000(config, m_maincpu, 14346000); /* 28.6860 MHz / 2 ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &slapshot_state::opwolf3_map); + m_maincpu->set_vblank_int("screen", FUNC(slapshot_state::interrupt)); - MCFG_DEVICE_ADD("audiocpu", Z80,32000000/8) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(opwolf3_z80_sound_map) + z80_device &audiocpu(Z80(config, "audiocpu", 32000000/8)); /* 4 MHz */ + audiocpu.set_addrmap(AS_PROGRAM, &slapshot_state::opwolf3_z80_sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); adc0809_device &adc(ADC0809(config, "adc", 500000)); // unknown clock adc.eoc_ff_callback().set_inputline("maincpu", 3); @@ -529,14 +529,14 @@ MACHINE_CONFIG_START(slapshot_state::opwolf3) m_tc0640fio->read_7_callback().set_ioport("JOY"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(slapshot_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, slapshot_state, screen_vblank_taito_no_buffer)) - 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(0)); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(slapshot_state::screen_update)); + screen.screen_vblank().set(FUNC(slapshot_state::screen_vblank_taito_no_buffer)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_slapshot); PALETTE(config, m_palette).set_format(palette_device::xRGB_888, 8192); @@ -556,19 +556,20 @@ MACHINE_CONFIG_START(slapshot_state::opwolf3) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610B, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) + ym2610b_device &ymsnd(YM2610B(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set_inputline("audiocpu", 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); - MCFG_DEVICE_ADD("mk48t08", MK48T08, 0) + MK48T08(config, "mk48t08", 0); TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_maincpu); m_tc0140syt->set_slave_tag("audiocpu"); -MACHINE_CONFIG_END +} + /*************************************************************************** DRIVERS diff --git a/src/mame/drivers/suprslam.cpp b/src/mame/drivers/suprslam.cpp index d1ba49b18dd..c7e21370431 100644 --- a/src/mame/drivers/suprslam.cpp +++ b/src/mame/drivers/suprslam.cpp @@ -268,15 +268,15 @@ void suprslam_state::machine_reset() m_bg_bank = 0; } -MACHINE_CONFIG_START(suprslam_state::suprslam) +void suprslam_state::suprslam(machine_config &config) +{ + M68000(config, m_maincpu, 16000000); + m_maincpu->set_addrmap(AS_PROGRAM, &suprslam_state::suprslam_map); + m_maincpu->set_vblank_int("screen", FUNC(suprslam_state::irq1_line_hold)); - MCFG_DEVICE_ADD("maincpu", M68000, 16000000) - MCFG_DEVICE_PROGRAM_MAP(suprslam_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", suprslam_state, irq1_line_hold) - - MCFG_DEVICE_ADD("audiocpu", Z80,8000000/2) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_io_map) + Z80(config, m_audiocpu, 8000000/2); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &suprslam_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &suprslam_state::sound_io_map); vs9209_device &io(VS9209(config, "io", 0)); io.porta_input_cb().set_ioport("P1"); @@ -288,14 +288,14 @@ MACHINE_CONFIG_START(suprslam_state::suprslam) GFXDECODE(config, m_gfxdecode, m_palette, gfx_suprslam); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2300) /* hand-tuned */) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(suprslam_state, screen_update_suprslam) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2300)); /* hand-tuned */ + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 0*8, 28*8-1); + screen.set_screen_update(FUNC(suprslam_state::screen_update_suprslam)); + screen.set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xGBR_555, 0x800); @@ -315,13 +315,13 @@ MACHINE_CONFIG_START(suprslam_state::suprslam) m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} /*** ROM LOADING *************************************************************/ diff --git a/src/mame/drivers/taito_b.cpp b/src/mame/drivers/taito_b.cpp index e5856fc65a2..11f9039f46b 100644 --- a/src/mame/drivers/taito_b.cpp +++ b/src/mame/drivers/taito_b.cpp @@ -1729,16 +1729,16 @@ void taitob_state::machine_reset() } -MACHINE_CONFIG_START(taitob_state::rastsag2) - +void taitob_state::rastsag2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(rastsag2_map) + M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::rastsag2_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL / 4) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -1749,13 +1749,13 @@ MACHINE_CONFIG_START(taitob_state::rastsag2) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 4096); @@ -1773,28 +1773,28 @@ MACHINE_CONFIG_START(taitob_state::rastsag2) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16_MHz_XTAL / 2) /* 8 MHz */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, m_ym, 16_MHz_XTAL / 2)); /* 8 MHz */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_state::masterw) - +void taitob_state::masterw(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(masterw_map) + M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::masterw_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 24_MHz_XTAL / 4) /* 6 MHz Z80B */ - MCFG_DEVICE_PROGRAM_MAP(masterw_sound_map) + Z80(config, m_audiocpu, 24_MHz_XTAL / 4); /* 6 MHz Z80B */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::masterw_sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); tc0040ioc_device &tc0040ioc(TC0040IOC(config, "tc0040ioc", 0)); tc0040ioc.read_0_callback().set_ioport("DSWA"); @@ -1805,13 +1805,13 @@ MACHINE_CONFIG_START(taitob_state::masterw) tc0040ioc.read_7_callback().set_ioport("IN2"); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 4096); @@ -1840,37 +1840,34 @@ MACHINE_CONFIG_START(taitob_state::masterw) pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu); ciu.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_state::tetrist) /* Nastar conversion kit with slightly different memory map */ +void taitob_state::tetrist(machine_config &config) /* Nastar conversion kit with slightly different memory map */ +{ rastsag2(config); - - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tetrist_map) - + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::tetrist_map); m_palette->set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_state::tetrista) /* Master of Weapon conversion kit with slightly different memory map */ +void taitob_state::tetrista(machine_config &config) /* Master of Weapon conversion kit with slightly different memory map */ +{ masterw(config); - - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tetrista_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::tetrista_map); +} -MACHINE_CONFIG_START(taitob_state::ashura) - +void taitob_state::ashura(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(rastsag2_map) + M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::rastsag2_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL / 4) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -1881,13 +1878,13 @@ MACHINE_CONFIG_START(taitob_state::ashura) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 4096); @@ -1905,28 +1902,28 @@ MACHINE_CONFIG_START(taitob_state::ashura) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16_MHz_XTAL / 2) /* 8 MHz */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, m_ym, 16_MHz_XTAL / 2)); /* 8 MHz */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_state::crimec) - +void taitob_state::crimec(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(crimec_map) + M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::crimec_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL / 4) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -1937,13 +1934,13 @@ MACHINE_CONFIG_START(taitob_state::crimec) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 4096); @@ -1961,27 +1958,26 @@ MACHINE_CONFIG_START(taitob_state::crimec) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16_MHz_XTAL / 2) /* 8 MHz */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, m_ym, 16_MHz_XTAL / 2)); /* 8 MHz */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_state::hitice) - +void taitob_state::hitice(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(hitice_map) + M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::hitice_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 24_MHz_XTAL / 4) /* 6 MHz Z80B */ - MCFG_DEVICE_PROGRAM_MAP(viofight_sound_map) + Z80(config, m_audiocpu, 24_MHz_XTAL / 4); /* 6 MHz Z80B */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::viofight_sound_map); MCFG_QUANTUM_TIME(attotime::from_hz(600)) @@ -1994,13 +1990,13 @@ MACHINE_CONFIG_START(taitob_state::hitice) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 4096); @@ -2027,25 +2023,25 @@ MACHINE_CONFIG_START(taitob_state::hitice) ymsnd.add_route(2, "mono", 0.25); ymsnd.add_route(3, "mono", 0.80); - MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + okim6295_device &oki(OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified + oki.add_route(ALL_OUTPUTS, "mono", 0.50); pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu); ciu.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_state::rambo3p) - +void taitob_state::rambo3p(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(rambo3_map) + M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::rambo3_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL / 4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -2056,13 +2052,13 @@ MACHINE_CONFIG_START(taitob_state::rambo3p) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 4096); @@ -2080,29 +2076,28 @@ MACHINE_CONFIG_START(taitob_state::rambo3p) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16_MHz_XTAL / 2) /* verified on pcb */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16_MHz_XTAL / 2)); /* verified on pcb */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_state::rambo3) - +void taitob_state::rambo3(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 12MHz verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(rambo3_map) + M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* 12MHz verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::rambo3_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL / 4) /* 4MHz verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4MHz verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -2113,13 +2108,13 @@ MACHINE_CONFIG_START(taitob_state::rambo3) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 4096); @@ -2137,29 +2132,28 @@ MACHINE_CONFIG_START(taitob_state::rambo3) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16_MHz_XTAL / 2) /* 8 MHz verified on pcb */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16_MHz_XTAL / 2)); /* 8 MHz verified on pcb */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_state::pbobble) - +void taitob_state::pbobble(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(pbobble_map) + M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::pbobble_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL / 2) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 16_MHz_XTAL / 2); /* 4 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map); - - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); EEPROM_93C46_16BIT(config, "eeprom"); @@ -2175,13 +2169,13 @@ MACHINE_CONFIG_START(taitob_state::pbobble) m_mb87078->gain_changed().set(FUNC(taitob_state::mb87078_gain_changed)); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); @@ -2199,29 +2193,28 @@ MACHINE_CONFIG_START(taitob_state::pbobble) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610B, 16_MHz_XTAL / 2) /* 8 MHz */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610b_device &ymsnd(YM2610B(config, "ymsnd", 16_MHz_XTAL / 2)); /* 8 MHz */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_state::spacedx) - +void taitob_state::spacedx(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(spacedx_map) + M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::spacedx_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL / 4) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map); + config.m_minimum_quantum = attotime::from_hz(600); EEPROM_93C46_16BIT(config, "eeprom"); @@ -2237,13 +2230,13 @@ MACHINE_CONFIG_START(taitob_state::spacedx) m_mb87078->gain_changed().set(FUNC(taitob_state::mb87078_gain_changed)); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); @@ -2261,28 +2254,28 @@ MACHINE_CONFIG_START(taitob_state::spacedx) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16_MHz_XTAL / 2) /* 8 MHz */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16_MHz_XTAL / 2)); /* 8 MHz */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_state::spacedxo) - +void taitob_state::spacedxo(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(spacedxo_map) + M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::spacedxo_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL / 4) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -2293,13 +2286,13 @@ MACHINE_CONFIG_START(taitob_state::spacedxo) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); @@ -2317,29 +2310,28 @@ MACHINE_CONFIG_START(taitob_state::spacedxo) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16_MHz_XTAL / 2) /* 8 MHz */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16_MHz_XTAL / 2)); /* 8 MHz */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_state::qzshowby) - +void taitob_state::qzshowby(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz according to the readme*/ - MCFG_DEVICE_PROGRAM_MAP(qzshowby_map) + M68000(config, m_maincpu, 16000000); /* 16 MHz according to the readme*/ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::qzshowby_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + Z80(config, m_audiocpu, 4000000); /* 4 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map); + config.m_minimum_quantum = attotime::from_hz(600); EEPROM_93C46_16BIT(config, "eeprom"); @@ -2355,13 +2347,13 @@ MACHINE_CONFIG_START(taitob_state::qzshowby) m_mb87078->gain_changed().set(FUNC(taitob_state::mb87078_gain_changed)); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); @@ -2379,28 +2371,28 @@ MACHINE_CONFIG_START(taitob_state::qzshowby) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610B, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610b_device &ymsnd(YM2610B(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_state::viofight) - +void taitob_state::viofight(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(viofight_map) + M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::viofight_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 24_MHz_XTAL / 4) /* 6 MHz verified */ - MCFG_DEVICE_PROGRAM_MAP(viofight_sound_map) + Z80(config, m_audiocpu, 24_MHz_XTAL / 4); /* 6 MHz verified */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::viofight_sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -2411,13 +2403,13 @@ MACHINE_CONFIG_START(taitob_state::viofight) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 4096); @@ -2443,25 +2435,25 @@ MACHINE_CONFIG_START(taitob_state::viofight) ymsnd.add_route(2, "mono", 0.25); ymsnd.add_route(3, "mono", 0.80); - MCFG_DEVICE_ADD("oki", OKIM6295, 4.224_MHz_XTAL / 4, okim6295_device::PIN7_HIGH) // 1.056MHz clock frequency, but pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + okim6295_device &oki(OKIM6295(config, "oki", 4.224_MHz_XTAL / 4, okim6295_device::PIN7_HIGH)); // 1.056MHz clock frequency, but pin 7 not verified + oki.add_route(ALL_OUTPUTS, "mono", 0.50); pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu); ciu.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_state::silentd) - +void taitob_state::silentd(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(silentd_map) + M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::silentd_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL / 4) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -2472,13 +2464,13 @@ MACHINE_CONFIG_START(taitob_state::silentd) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); @@ -2496,28 +2488,28 @@ MACHINE_CONFIG_START(taitob_state::silentd) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16_MHz_XTAL / 2) /* 8 MHz */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16_MHz_XTAL / 2)); /* 8 MHz */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_state::selfeena) - +void taitob_state::selfeena(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(selfeena_map) + M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::selfeena_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL / 4) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -2528,13 +2520,13 @@ MACHINE_CONFIG_START(taitob_state::selfeena) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); @@ -2552,16 +2544,16 @@ MACHINE_CONFIG_START(taitob_state::selfeena) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16_MHz_XTAL / 2) /* 8 MHz */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16_MHz_XTAL / 2)); /* 8 MHz */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0);; + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} #if 0 void taitob_state::ryujin_patch(void) @@ -2573,16 +2565,16 @@ void taitob_state::ryujin_patch(void) } #endif -MACHINE_CONFIG_START(taitob_state::ryujin) - +void taitob_state::ryujin(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(selfeena_map) + M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::selfeena_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL / 4) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -2593,13 +2585,13 @@ MACHINE_CONFIG_START(taitob_state::ryujin) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); @@ -2617,16 +2609,16 @@ MACHINE_CONFIG_START(taitob_state::ryujin) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16_MHz_XTAL / 2) /* 8 MHz */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16_MHz_XTAL / 2)); /* 8 MHz */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} #if 0 void taitob_state::sbm_patch(void) @@ -2636,16 +2628,16 @@ void taitob_state::sbm_patch(void) } #endif -MACHINE_CONFIG_START(taitob_state::sbm) - +void taitob_state::sbm(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sbm_map) + M68000(config, m_maincpu, 12000000); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_state::sbm_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 4000000); /* 4 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0510NIO(config, m_tc0510nio, 0); m_tc0510nio->read_0_callback().set_ioport("DSWA"); @@ -2656,13 +2648,13 @@ MACHINE_CONFIG_START(taitob_state::sbm) m_tc0510nio->read_7_callback().set_ioport("PHOTOSENSOR"); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob) - MCFG_SCREEN_PALETTE(m_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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 4096); @@ -2680,27 +2672,28 @@ MACHINE_CONFIG_START(taitob_state::sbm) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610B, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610b_device &ymsnd(YM2610B(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitob_c_state::realpunc) +void taitob_c_state::realpunc(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(realpunc_map) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &taitob_c_state::realpunc_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 6000000) - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 6000000); + m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_c_state::sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0510NIO(config, m_tc0510nio, 0); m_tc0510nio->read_0_callback().set_ioport("DSWA"); @@ -2711,19 +2704,21 @@ MACHINE_CONFIG_START(taitob_c_state::realpunc) m_tc0510nio->read_7_callback().set_ioport("IN2"); /* 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(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitob_c_state, screen_update_realpunc) + 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(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitob_c_state::screen_update_taitob)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 4096); MCFG_VIDEO_START_OVERRIDE(taitob_c_state,realpunc) - MCFG_HD63484_ADD("hd63484", 0, realpunc_hd63484_map) - MCFG_HD63484_AUTO_CONFIGURE_SCREEN(false) + hd63484_device &hd63484(HD63484(config, "hd63484", 0)); + hd63484.set_addrmap(0, &taitob_c_state::realpunc_hd63484_map); + hd63484.set_auto_configure_screen(false); TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); m_tc0180vcu->set_fb_colorbase(0x40); @@ -2737,16 +2732,16 @@ MACHINE_CONFIG_START(taitob_c_state::realpunc) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610B, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610b_device &ymsnd(YM2610B(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/taito_f2.cpp b/src/mame/drivers/taito_f2.cpp index b805a49b80d..a4e6c07ce9e 100644 --- a/src/mame/drivers/taito_f2.cpp +++ b/src/mame/drivers/taito_f2.cpp @@ -275,7 +275,6 @@ Notes: #include "sound/2203intf.h" #include "sound/2610intf.h" #include "sound/okim6295.h" -#include "screen.h" #include "speaker.h" @@ -2849,28 +2848,28 @@ MACHINE_START_MEMBER(taitof2_state,f2) membank("bank2")->configure_entries(0, 8, memregion("audiocpu")->base() + 0x10000, 0x4000); } -MACHINE_CONFIG_START(taitof2_state::taito_f2) - +void taitof2_state::taito_f2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24000000/2) /* 12 MHz */ - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitof2_state, taitof2_interrupt) + M68000(config, m_maincpu, 24000000/2); /* 12 MHz */ + m_maincpu->set_vblank_int("screen", FUNC(taitof2_state::taitof2_interrupt)); - MCFG_DEVICE_ADD("audiocpu", Z80, 24000000/6) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 24000000/6); /* 4 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitof2_state::sound_map); MCFG_MACHINE_START_OVERRIDE(taitof2_state,f2) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_no_buffer)) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* frames per second, vblank duration */ + m_screen->set_size(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2)); + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_no_buffer)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_taitof2); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 4096); @@ -2881,23 +2880,24 @@ MACHINE_CONFIG_START(taitof2_state::taito_f2) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 24000000/3) /* Was 16000000/2, but only a 24Mhz OSC */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 24000000/3)); /* Was 16000000/2, but only a 24Mhz OSC */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitof2_state::taito_f2_tc0220ioc ) +void taitof2_state::taito_f2_tc0220ioc(machine_config &config) +{ taito_f2(config); /* basic machine hardware */ - MCFG_DEVICE_REMOVE("watchdog") + config.device_remove("watchdog"); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); m_tc0220ioc->read_1_callback().set_ioport("DSWB"); @@ -2905,13 +2905,14 @@ MACHINE_CONFIG_START(taitof2_state::taito_f2_tc0220ioc ) m_tc0220ioc->read_3_callback().set_ioport("IN1"); m_tc0220ioc->write_4_callback().set(FUNC(taitof2_state::coin_nibble_w)); m_tc0220ioc->read_7_callback().set_ioport("IN2"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitof2_state::taito_f2_tc0510nio ) +void taitof2_state::taito_f2_tc0510nio(machine_config &config) +{ taito_f2(config); /* basic machine hardware */ - MCFG_DEVICE_REMOVE("watchdog") + config.device_remove("watchdog"); TC0510NIO(config, m_tc0510nio, 0); m_tc0510nio->read_0_callback().set_ioport("DSWA"); m_tc0510nio->read_1_callback().set_ioport("DSWB"); @@ -2921,7 +2922,7 @@ MACHINE_CONFIG_START(taitof2_state::taito_f2_tc0510nio ) m_tc0510nio->read_7_callback().set_ioport("IN2"); m_palette->set_format(palette_device::xRGB_555, 4096); -MACHINE_CONFIG_END +} void taitof2_state::taito_f2_te7750(machine_config &config) { @@ -2938,19 +2939,17 @@ void taitof2_state::taito_f2_te7750(machine_config &config) te7750.in_port9_cb().set_ioport("IN4"); } - -MACHINE_CONFIG_START(taitof2_state::finalb) +void taitof2_state::finalb(machine_config &config) +{ taito_f2_tc0220ioc(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(finalb_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::finalb_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_finalb) + m_gfxdecode->set_info(gfx_finalb); MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_finalb) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_partial_buffer_delayed)) + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_partial_buffer_delayed)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -2960,22 +2959,20 @@ MACHINE_CONFIG_START(taitof2_state::finalb) m_tc0100scn->set_palette_tag(m_palette); TC0110PCR(config, m_tc0110pcr, 0, m_palette); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::dondokod) +void taitof2_state::dondokod(machine_config &config) +{ taito_f2_tc0220ioc(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(dondokod_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::dondokod_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_pivot) + m_gfxdecode->set_info(gfx_pivot); MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_partial_buffer_delayed)) - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz) + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_partial_buffer_delayed)); + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri_roz)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -2989,26 +2986,24 @@ MACHINE_CONFIG_START(taitof2_state::dondokod) m_tc0280grd->set_gfxdecode_tag(m_gfxdecode); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::megab) +void taitof2_state::megab(machine_config &config) +{ taito_f2_tc0220ioc(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(megab_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitof2_state, megab_interrupt) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::megab_map); + m_maincpu->set_vblank_int("screen", FUNC(taitof2_state::megab_interrupt)); TAITO_CCHIP(config, m_cchip, 24_MHz_XTAL/2); // 12MHz // the ports don't appear to hook up to anything - MCFG_TIMER_DRIVER_ADD("cchip_irq_clear", taitof2_state, cchip_irq_clear_cb) + TIMER(config, "cchip_irq_clear").configure_generic(FUNC(taitof2_state::cchip_irq_clear_cb)); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -3018,22 +3013,20 @@ MACHINE_CONFIG_START(taitof2_state::megab) m_tc0100scn->set_palette_tag(m_palette); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::thundfox) +void taitof2_state::thundfox(machine_config &config) +{ taito_f2_tc0220ioc(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(thundfox_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::thundfox_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_thundfox) + m_gfxdecode->set_info(gfx_thundfox); MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_thundfox) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_thundfox) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_partial_buffer_delayed_thundfox)) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_thundfox)); + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_partial_buffer_delayed_thundfox)); TC0100SCN(config, m_tc0100scn_1, 0); m_tc0100scn_1->set_gfx_region(1); @@ -3056,21 +3049,19 @@ MACHINE_CONFIG_START(taitof2_state::thundfox) m_tc0100scn_2->set_palette_tag(m_palette); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::cameltry) +void taitof2_state::cameltry(machine_config &config) +{ taito_f2_tc0220ioc(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(cameltry_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::cameltry_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_pivot) + m_gfxdecode->set_info(gfx_pivot); MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri_roz)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -3084,20 +3075,18 @@ MACHINE_CONFIG_START(taitof2_state::cameltry) m_tc0280grd->set_gfxdecode_tag(m_gfxdecode); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::qtorimon) +void taitof2_state::qtorimon(machine_config &config) +{ taito_f2_tc0220ioc(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(qtorimon_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::qtorimon_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_yuyugogo) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_partial_buffer_delayed)) + m_gfxdecode->set_info(gfx_yuyugogo); + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_partial_buffer_delayed)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -3106,21 +3095,19 @@ MACHINE_CONFIG_START(taitof2_state::qtorimon) m_tc0100scn->set_palette_tag(m_palette); TC0110PCR(config, m_tc0110pcr, 0, m_palette); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::liquidk) +void taitof2_state::liquidk(machine_config &config) +{ taito_f2_tc0220ioc(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(liquidk_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::liquidk_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_partial_buffer_delayed)) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri)); + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_partial_buffer_delayed)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -3130,20 +3117,18 @@ MACHINE_CONFIG_START(taitof2_state::liquidk) m_tc0100scn->set_palette_tag(m_palette); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::quizhq) +void taitof2_state::quizhq(machine_config &config) +{ taito_f2(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(quizhq_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::quizhq_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_yuyugogo) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_partial_buffer_delayed)) + m_gfxdecode->set_info(gfx_yuyugogo); + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_partial_buffer_delayed)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -3152,23 +3137,21 @@ MACHINE_CONFIG_START(taitof2_state::quizhq) m_tc0100scn->set_palette_tag(m_palette); TC0110PCR(config, m_tc0110pcr, 0, m_palette); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::ssi) +void taitof2_state::ssi(machine_config &config) +{ taito_f2_tc0510nio(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(ssi_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::ssi_map); m_palette->set_format(palette_device::RGBx_444, 4096); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_ssi) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_ssi) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_partial_buffer_delayed_thundfox)) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_ssi)); + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_partial_buffer_delayed_thundfox)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -3176,23 +3159,21 @@ MACHINE_CONFIG_START(taitof2_state::ssi) m_tc0100scn->set_offsets(3, 0); m_tc0100scn->set_gfxdecode_tag(m_gfxdecode); m_tc0100scn->set_palette_tag(m_palette); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::gunfront) +void taitof2_state::gunfront(machine_config &config) +{ taito_f2_tc0510nio(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(gunfront_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::gunfront_map); m_palette->set_format(palette_device::RGBx_444, 4096); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_gunfront) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_partial_buffer_delayed)) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri)); + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_partial_buffer_delayed)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -3202,20 +3183,18 @@ MACHINE_CONFIG_START(taitof2_state::gunfront) m_tc0100scn->set_palette_tag(m_palette); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::growl) +void taitof2_state::growl(machine_config &config) +{ taito_f2(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(growl_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::growl_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_growl) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri)); m_palette->set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); @@ -3227,15 +3206,14 @@ MACHINE_CONFIG_START(taitof2_state::growl) m_tc0100scn->set_palette_tag(m_palette); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::mjnquest) +void taitof2_state::mjnquest(machine_config &config) +{ taito_f2(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mjnquest_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::mjnquest_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_mjnquest) @@ -3247,22 +3225,20 @@ MACHINE_CONFIG_START(taitof2_state::mjnquest) m_tc0100scn->set_palette_tag(m_palette); TC0110PCR(config, m_tc0110pcr, 0, m_palette); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::footchmp) +void taitof2_state::footchmp(machine_config &config) +{ taito_f2_te7750(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(footchmp_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::footchmp_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_deadconx) + m_gfxdecode->set_info(gfx_deadconx); MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_footchmp) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_full_buffer_delayed)) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_deadconx)); + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_full_buffer_delayed)); TC0480SCP(config, m_tc0480scp, 0); m_tc0480scp->set_gfx_region(1); @@ -3273,29 +3249,28 @@ MACHINE_CONFIG_START(taitof2_state::footchmp) m_tc0480scp->set_gfxdecode_tag(m_gfxdecode); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitof2_state::footchmpbl) +void taitof2_state::footchmpbl(machine_config &config) +{ footchmp(config); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_footchmpbl) -MACHINE_CONFIG_END + m_gfxdecode->set_info(gfx_footchmpbl); +} - -MACHINE_CONFIG_START(taitof2_state::hthero) +void taitof2_state::hthero(machine_config &config) +{ taito_f2_te7750(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(footchmp_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::footchmp_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_deadconx) + m_gfxdecode->set_info(gfx_deadconx); MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_hthero) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_full_buffer_delayed)) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_deadconx)); + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_full_buffer_delayed)); TC0360PRI(config, m_tc0360pri, 0); @@ -3306,20 +3281,18 @@ MACHINE_CONFIG_START(taitof2_state::hthero) m_tc0480scp->set_offsets_tx(-1, 0); m_tc0480scp->set_offsets_flip(-1, 0); m_tc0480scp->set_gfxdecode_tag(m_gfxdecode); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::koshien) +void taitof2_state::koshien(machine_config &config) +{ taito_f2_tc0510nio(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(koshien_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::koshien_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_koshien) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri)); m_palette->set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); @@ -3332,23 +3305,21 @@ MACHINE_CONFIG_START(taitof2_state::koshien) m_tc0100scn->set_palette_tag(m_palette); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::yuyugogo) +void taitof2_state::yuyugogo(machine_config &config) +{ taito_f2_tc0510nio(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(yuyugogo_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::yuyugogo_map); m_palette->set_format(palette_device::RGBx_444, 4096); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_yuyugogo) + m_gfxdecode->set_info(gfx_yuyugogo); MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_yuyugogo) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_yesnoj) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_yesnoj)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -3356,15 +3327,14 @@ MACHINE_CONFIG_START(taitof2_state::yuyugogo) m_tc0100scn->set_offsets(3, 0); m_tc0100scn->set_gfxdecode_tag(m_gfxdecode); m_tc0100scn->set_palette_tag(m_palette); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::ninjak) +void taitof2_state::ninjak(machine_config &config) +{ taito_f2(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(ninjak_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::ninjak_map); te7750_device &te7750(TE7750(config, "te7750")); te7750.in_port1_cb().set_ioport("DSWA"); @@ -3378,8 +3348,7 @@ MACHINE_CONFIG_START(taitof2_state::ninjak) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_ninjak) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -3389,20 +3358,18 @@ MACHINE_CONFIG_START(taitof2_state::ninjak) m_tc0100scn->set_palette_tag(m_palette); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::solfigtr) +void taitof2_state::solfigtr(machine_config &config) +{ taito_f2(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(solfigtr_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::solfigtr_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_solfigtr) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -3414,40 +3381,36 @@ MACHINE_CONFIG_START(taitof2_state::solfigtr) m_tc0100scn->set_palette_tag(m_palette); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::qzquest) +void taitof2_state::qzquest(machine_config &config) +{ taito_f2_tc0510nio(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(qzquest_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::qzquest_map); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_partial_buffer_delayed)) + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_partial_buffer_delayed)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); m_tc0100scn->set_tx_region(2); m_tc0100scn->set_gfxdecode_tag(m_gfxdecode); m_tc0100scn->set_palette_tag(m_palette); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::pulirula) +void taitof2_state::pulirula(machine_config &config) +{ taito_f2_tc0510nio(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(pulirula_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::pulirula_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_pivot) + m_gfxdecode->set_info(gfx_pivot); MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_pulirula) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri_roz)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -3461,23 +3424,21 @@ MACHINE_CONFIG_START(taitof2_state::pulirula) m_tc0430grw->set_gfxdecode_tag(m_gfxdecode); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::metalb) +void taitof2_state::metalb(machine_config &config) +{ taito_f2_tc0510nio(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(metalb_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::metalb_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_deadconx) + m_gfxdecode->set_info(gfx_deadconx); m_palette->set_format(palette_device::RRRRGGGGBBBBRGBx, 8192); MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_metalb) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_metalb) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_metalb)); TC0480SCP(config, m_tc0480scp, 0); m_tc0480scp->set_gfx_region(1); @@ -3489,20 +3450,18 @@ MACHINE_CONFIG_START(taitof2_state::metalb) m_tc0480scp->set_gfxdecode_tag(m_gfxdecode); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::qzchikyu) +void taitof2_state::qzchikyu(machine_config &config) +{ taito_f2_tc0510nio(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(qzchikyu_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::qzchikyu_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_qzchikyu) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_partial_buffer_delayed_qzchikyu)) + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_partial_buffer_delayed_qzchikyu)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -3512,23 +3471,21 @@ MACHINE_CONFIG_START(taitof2_state::qzchikyu) m_tc0100scn->set_offsets_fliptx(-11, 0); m_tc0100scn->set_gfxdecode_tag(m_gfxdecode); m_tc0100scn->set_palette_tag(m_palette); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::yesnoj) +void taitof2_state::yesnoj(machine_config &config) +{ taito_f2(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(yesnoj_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::yesnoj_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_yuyugogo) + m_gfxdecode->set_info(gfx_yuyugogo); m_palette->set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_yesnoj) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_yesnoj) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_yesnoj)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -3538,23 +3495,21 @@ MACHINE_CONFIG_START(taitof2_state::yesnoj) m_tc0100scn->set_palette_tag(m_palette); TC8521(config, "rtc", XTAL(32'768)); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::deadconx) +void taitof2_state::deadconx(machine_config &config) +{ taito_f2_te7750(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(deadconx_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::deadconx_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_deadconx) + m_gfxdecode->set_info(gfx_deadconx); m_palette->set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_deadconx) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_deadconx)); TC0480SCP(config, m_tc0480scp, 0); m_tc0480scp->set_gfx_region(1); @@ -3565,21 +3520,19 @@ MACHINE_CONFIG_START(taitof2_state::deadconx) m_tc0480scp->set_gfxdecode_tag(m_gfxdecode); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::deadconxj) +void taitof2_state::deadconxj(machine_config &config) +{ taito_f2_te7750(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(deadconx_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::deadconx_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_deadconx) + m_gfxdecode->set_info(gfx_deadconx); MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_deadconxj) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_deadconx)); TC0480SCP(config, m_tc0480scp, 0); m_tc0480scp->set_gfx_region(1); @@ -3590,20 +3543,18 @@ MACHINE_CONFIG_START(taitof2_state::deadconxj) m_tc0480scp->set_gfxdecode_tag(m_gfxdecode); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::dinorex) +void taitof2_state::dinorex(machine_config &config) +{ taito_f2_tc0510nio(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(dinorex_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::dinorex_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dinorex) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri)); m_palette->set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); @@ -3615,20 +3566,18 @@ MACHINE_CONFIG_START(taitof2_state::dinorex) m_tc0100scn->set_palette_tag(m_palette); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::qjinsei) +void taitof2_state::qjinsei(machine_config &config) +{ taito_f2_tc0510nio(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(qjinsei_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::qjinsei_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri)); m_palette->set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); @@ -3640,20 +3589,18 @@ MACHINE_CONFIG_START(taitof2_state::qjinsei) m_tc0100scn->set_palette_tag(m_palette); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::qcrayon) +void taitof2_state::qcrayon(machine_config &config) +{ taito_f2_tc0510nio(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(qcrayon_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::qcrayon_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri)); m_palette->set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); @@ -3665,20 +3612,18 @@ MACHINE_CONFIG_START(taitof2_state::qcrayon) m_tc0100scn->set_palette_tag(m_palette); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::qcrayon2) +void taitof2_state::qcrayon2(machine_config &config) +{ taito_f2_tc0510nio(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(qcrayon2_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::qcrayon2_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri)); m_palette->set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); @@ -3690,22 +3635,20 @@ MACHINE_CONFIG_START(taitof2_state::qcrayon2) m_tc0100scn->set_palette_tag(m_palette); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitof2_state::driftout) +void taitof2_state::driftout(machine_config &config) +{ taito_f2_tc0510nio(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(driftout_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::driftout_map); /* video hardware */ - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_pivot) + m_gfxdecode->set_info(gfx_pivot); MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_driftout) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz) + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri_roz)); TC0100SCN(config, m_tc0100scn, 0); m_tc0100scn->set_gfx_region(1); @@ -3719,18 +3662,17 @@ MACHINE_CONFIG_START(taitof2_state::driftout) m_tc0430grw->set_gfxdecode_tag(m_gfxdecode); TC0360PRI(config, m_tc0360pri, 0); -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(taitof2_state::cameltrya) +} +void taitof2_state::cameltrya(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,24000000/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(cameltrya_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitof2_state, taitof2_interrupt) + M68000(config, m_maincpu,24000000/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::cameltrya_map); + m_maincpu->set_vblank_int("screen", FUNC(taitof2_state::taitof2_interrupt)); - MCFG_DEVICE_ADD("audiocpu", Z80,24000000/4) /* verifed on pcb */ - MCFG_DEVICE_PROGRAM_MAP(cameltrya_sound_map) + Z80(config, m_audiocpu, 24000000/4); /* verifed on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitof2_state::cameltrya_sound_map); MCFG_MACHINE_START_OVERRIDE(taitof2_state,common) @@ -3743,14 +3685,14 @@ MACHINE_CONFIG_START(taitof2_state::cameltrya) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_no_buffer)) - 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(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri_roz)); + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_no_buffer)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pivot); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 4096); @@ -3781,24 +3723,23 @@ MACHINE_CONFIG_START(taitof2_state::cameltrya) ymsnd.add_route(2, "mono", 0.20); ymsnd.add_route(3, "mono", 0.60); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(4'224'000)/4, okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) + OKIM6295(config, m_oki, XTAL(4'224'000)/4, okim6295_device::PIN7_HIGH); /* verified on pcb */ + m_oki->add_route(ALL_OUTPUTS, "mono", 0.10); pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu); ciu.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(taitof2_state::driveout) +} +void taitof2_state::driveout(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,24000000/2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(driveout_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitof2_state, taitof2_interrupt) + M68000(config, m_maincpu, 24000000/2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitof2_state::driveout_map); + m_maincpu->set_vblank_int("screen", FUNC(taitof2_state::taitof2_interrupt)); - MCFG_DEVICE_ADD("audiocpu", Z80,24000000/6) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(driveout_sound_map) + Z80(config, m_audiocpu, 24000000/6); /* 4 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitof2_state::driveout_sound_map); MCFG_MACHINE_START_OVERRIDE(taitof2_state,common) @@ -3811,14 +3752,14 @@ MACHINE_CONFIG_START(taitof2_state::driveout) m_tc0510nio->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitof2_state, screen_vblank_no_buffer)) - 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(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitof2_state::screen_update_taitof2_pri_roz)); + m_screen->screen_vblank().set(FUNC(taitof2_state::screen_vblank_no_buffer)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pivot); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 4096); @@ -3842,14 +3783,14 @@ MACHINE_CONFIG_START(taitof2_state::driveout) SPEAKER(config, "lspeaker").front_left(); /* does it ? */ SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + OKIM6295(config, m_oki, 1056000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified + m_oki->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_oki->add_route(ALL_OUTPUTS, "rspeaker", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/taito_h.cpp b/src/mame/drivers/taito_h.cpp index f276e75f095..04877beb5f9 100644 --- a/src/mame/drivers/taito_h.cpp +++ b/src/mame/drivers/taito_h.cpp @@ -644,18 +644,17 @@ void taitoh_state::machine_start() } -MACHINE_CONFIG_START(taitoh_state::syvalion) - +void taitoh_state::syvalion(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000) / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(syvalion_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoh_state, irq2_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000) / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitoh_state::syvalion_map); + m_maincpu->set_vblank_int("screen", FUNC(taitoh_state::irq2_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(8'000'000) / 2) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, XTAL(8'000'000) / 2); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitoh_state::sound_map); - - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0040IOC(config, m_tc0040ioc, 0); m_tc0040ioc->read_0_callback().set_ioport("DSWA"); @@ -666,13 +665,13 @@ MACHINE_CONFIG_START(taitoh_state::syvalion) m_tc0040ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*16, 64*16) - MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 28*16-1) - MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_syvalion) - 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(0)); + screen.set_size(64*16, 64*16); + screen.set_visarea(0*16, 32*16-1, 3*16, 28*16-1); + screen.set_screen_update(FUNC(taitoh_state::screen_update_syvalion)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_syvalion); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 33*16); @@ -687,30 +686,28 @@ MACHINE_CONFIG_START(taitoh_state::syvalion) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(8'000'000)) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(8'000'000))); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(taitoh_state::recordbr) +} +void taitoh_state::recordbr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000) / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(recordbr_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoh_state, irq2_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000) / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitoh_state::recordbr_map); + m_maincpu->set_vblank_int("screen", FUNC(taitoh_state::irq2_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(8'000'000) / 2) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, XTAL(8'000'000) / 2); /* 4 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitoh_state::sound_map); - - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0040IOC(config, m_tc0040ioc, 0); m_tc0040ioc->read_0_callback().set_ioport("DSWA"); @@ -721,13 +718,13 @@ MACHINE_CONFIG_START(taitoh_state::recordbr) m_tc0040ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*16, 64*16) - MCFG_SCREEN_VISIBLE_AREA(1*16, 21*16-1, 2*16, 17*16-1) - MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_recordbr) - 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(0)); + screen.set_size(64*16, 64*16); + screen.set_visarea(1*16, 21*16-1, 2*16, 17*16-1); + screen.set_screen_update(FUNC(taitoh_state::screen_update_recordbr)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_recordbr); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 32*16); @@ -742,41 +739,38 @@ MACHINE_CONFIG_START(taitoh_state::recordbr) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(8'000'000)) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(8'000'000))); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(taitoh_state::tetristh) +void taitoh_state::tetristh(machine_config &config) +{ recordbr(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tetristh_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitoh_state::tetristh_map); m_palette->set_entries(0x800/2); -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(taitoh_state::dleague) +} +void taitoh_state::dleague(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000) / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(dleague_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoh_state, irq1_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000) / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitoh_state::dleague_map); + m_maincpu->set_vblank_int("screen", FUNC(taitoh_state::irq1_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(8'000'000) / 2) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, XTAL(8'000'000) / 2); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitoh_state::sound_map); - - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); tc0220ioc_device &tc0220ioc(TC0220IOC(config, "tc0220ioc", 0)); tc0220ioc.read_0_callback().set_ioport("DSWA"); @@ -787,13 +781,13 @@ MACHINE_CONFIG_START(taitoh_state::dleague) tc0220ioc.read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*16, 64*16) - MCFG_SCREEN_VISIBLE_AREA(1*16, 21*16-1, 2*16, 17*16-1) - MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_dleague) - 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(0)); + screen.set_size(64*16, 64*16); + screen.set_visarea(1*16, 21*16-1, 2*16, 17*16-1); + screen.set_screen_update(FUNC(taitoh_state::screen_update_dleague)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_dleague); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 33*16); @@ -808,16 +802,16 @@ MACHINE_CONFIG_START(taitoh_state::dleague) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(8'000'000)) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(8'000'000))); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/taito_x.cpp b/src/mame/drivers/taito_x.cpp index c7b0a82c3d9..e794e250ef1 100644 --- a/src/mame/drivers/taito_x.cpp +++ b/src/mame/drivers/taito_x.cpp @@ -827,15 +827,15 @@ TIMER_DEVICE_CALLBACK_MEMBER(taitox_state::cchip_irq_clear_cb) /**************************************************************************/ -MACHINE_CONFIG_START(taitox_state::superman) - +void taitox_state::superman(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(superman_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitox_state, interrupt) + M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::superman_map); + m_maincpu->set_vblank_int("screen", FUNC(taitox_state::interrupt)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitox_state::sound_map); TAITO_CCHIP(config, m_cchip, 16_MHz_XTAL/2); // 8MHz measured on pin 20 m_cchip->in_pa_callback().set_ioport("IN0"); @@ -843,9 +843,9 @@ MACHINE_CONFIG_START(taitox_state::superman) m_cchip->in_ad_callback().set_ioport("IN2"); m_cchip->out_pc_callback().set(FUNC(taitox_state::superman_counters_w)); - MCFG_TIMER_DRIVER_ADD("cchip_irq_clear", taitox_state, cchip_irq_clear_cb) + TIMER(config, "cchip_irq_clear").configure_generic(FUNC(taitox_state::cchip_irq_clear_cb)); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ + config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox) @@ -853,13 +853,13 @@ MACHINE_CONFIG_START(taitox_state::superman) m_seta001->set_gfxdecode_tag(m_gfxdecode); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(57.43) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(52*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(57.43); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(52*8, 32*8); + screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(taitox_state::screen_update_seta_no_layers)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_superman); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -870,29 +870,29 @@ MACHINE_CONFIG_START(taitox_state::superman) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(16'000'000)/2) /* verified on pcb */ - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(16'000'000)/2)); /* verified on pcb */ + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(taitox_state::daisenpu) +} +void taitox_state::daisenpu(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(daisenpu_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitox_state, irq2_line_hold) + M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::daisenpu_map); + m_maincpu->set_vblank_int("screen", FUNC(taitox_state::irq2_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(daisenpu_sound_map) + Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitox_state::daisenpu_sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ + config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox) @@ -900,13 +900,13 @@ MACHINE_CONFIG_START(taitox_state::daisenpu) m_seta001->set_gfxdecode_tag(m_gfxdecode); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(52*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers) - 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(0)); + screen.set_size(52*8, 32*8); + screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(taitox_state::screen_update_seta_no_layers)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_superman); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -925,19 +925,19 @@ MACHINE_CONFIG_START(taitox_state::daisenpu) pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu); ciu.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(taitox_state::gigandes) +} +void taitox_state::gigandes(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 8000000) /* 8 MHz? */ - MCFG_DEVICE_PROGRAM_MAP(gigandes_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitox_state, irq2_line_hold) + M68000(config, m_maincpu, 8000000); /* 8 MHz? */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::gigandes_map); + m_maincpu->set_vblank_int("screen", FUNC(taitox_state::irq2_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 4000000); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitox_state::sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ + config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox) @@ -945,13 +945,13 @@ MACHINE_CONFIG_START(taitox_state::gigandes) m_seta001->set_gfxdecode_tag(m_gfxdecode); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(52*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers) - 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(0)); + screen.set_size(52*8, 32*8); + screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(taitox_state::screen_update_seta_no_layers)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_superman); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -962,29 +962,29 @@ MACHINE_CONFIG_START(taitox_state::gigandes) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(taitox_state::ballbros) +} +void taitox_state::ballbros(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 8000000) /* 8 MHz? */ - MCFG_DEVICE_PROGRAM_MAP(ballbros_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitox_state, irq2_line_hold) + M68000(config, m_maincpu, 8000000); /* 8 MHz? */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::ballbros_map); + m_maincpu->set_vblank_int("screen", FUNC(taitox_state::irq2_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 4000000); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitox_state::sound_map); - MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ + config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox) @@ -992,13 +992,13 @@ MACHINE_CONFIG_START(taitox_state::ballbros) m_seta001->set_gfxdecode_tag(m_gfxdecode); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(52*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers) - 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(0)); + screen.set_size(52*8, 32*8); + screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(taitox_state::screen_update_seta_no_layers)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ballbros); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -1009,24 +1009,24 @@ MACHINE_CONFIG_START(taitox_state::ballbros) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitox_state::kyustrkr) +void taitox_state::kyustrkr(machine_config &config) +{ ballbros(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(kyustrkr_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &taitox_state::kyustrkr_map); +} /*************************************************************************** diff --git a/src/mame/drivers/taito_z.cpp b/src/mame/drivers/taito_z.cpp index 9ae3fcfac56..95b46bf9623 100644 --- a/src/mame/drivers/taito_z.cpp +++ b/src/mame/drivers/taito_z.cpp @@ -3179,19 +3179,19 @@ MACHINE_RESET_MEMBER(taitoz_state,taitoz) /* Contcirc vis area seems narrower than the other games... */ -MACHINE_CONFIG_START(taitoz_state::contcirc) - +void taitoz_state::contcirc(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(contcirc_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq6_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::contcirc_map); + m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq6_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(z80_sound_map) + Z80(config, m_audiocpu, 16000000/4); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map); - MCFG_DEVICE_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(contcirc_cpub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq6_line_hold) + M68000(config, m_subcpu, 12000000); /* 12 MHz ??? */ + m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::contcirc_cpub_map); + m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq6_line_hold)); MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) @@ -3205,13 +3205,13 @@ MACHINE_CONFIG_START(taitoz_state::contcirc) m_tc0040ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_contcirc) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 3*8, 31*8-1); + screen.set_screen_update(FUNC(taitoz_state::screen_update_contcirc)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_taitoz); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 4096); @@ -3233,13 +3233,13 @@ MACHINE_CONFIG_START(taitoz_state::contcirc) SPEAKER(config, "rear").rear_center(); SPEAKER(config, "subwoofer").subwoofer(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "subwoofer", 0.20) - MCFG_SOUND_ROUTE(1, "2610.1.l", 2.0) - MCFG_SOUND_ROUTE(1, "2610.1.r", 2.0) - MCFG_SOUND_ROUTE(2, "2610.2.l", 2.0) - MCFG_SOUND_ROUTE(2, "2610.2.r", 2.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "subwoofer", 0.20); + ymsnd.add_route(1, "2610.1.l", 2.0); + ymsnd.add_route(1, "2610.1.r", 2.0); + ymsnd.add_route(2, "2610.2.l", 2.0); + ymsnd.add_route(2, "2610.2.r", 2.0); FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rear", 1.0); FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "front", 1.0); @@ -3249,22 +3249,21 @@ MACHINE_CONFIG_START(taitoz_state::contcirc) TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_subcpu); m_tc0140syt->set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(taitoz_state::chasehq) +} +void taitoz_state::chasehq(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(chasehq_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq4_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::chasehq_map); + m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(z80_sound_map) + Z80(config, m_audiocpu, 16000000/4); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map); - MCFG_DEVICE_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(chq_cpub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq4_line_hold) + M68000(config, m_subcpu, 12000000); /* 12 MHz ??? */ + m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::chq_cpub_map); + m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); MCFG_MACHINE_START_OVERRIDE(taitoz_state,chasehq) MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) @@ -3278,13 +3277,13 @@ MACHINE_CONFIG_START(taitoz_state::chasehq) m_tc0040ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_chasehq) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(taitoz_state::screen_update_chasehq)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_chasehq); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 4096); @@ -3306,13 +3305,13 @@ MACHINE_CONFIG_START(taitoz_state::chasehq) SPEAKER(config, "rear").rear_center(); SPEAKER(config, "subwoofer").subwoofer(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "subwoofer", 0.20) - MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0) - MCFG_SOUND_ROUTE(1, "2610.1.r", 1.0) - MCFG_SOUND_ROUTE(2, "2610.2.l", 1.0) - MCFG_SOUND_ROUTE(2, "2610.2.r", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "subwoofer", 0.20); + ymsnd.add_route(1, "2610.1.l", 1.0); + ymsnd.add_route(1, "2610.1.r", 1.0); + ymsnd.add_route(2, "2610.2.l", 1.0); + ymsnd.add_route(2, "2610.2.r", 1.0); FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rear", 1.0); FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "front", 1.0); @@ -3322,27 +3321,26 @@ MACHINE_CONFIG_START(taitoz_state::chasehq) TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_subcpu); m_tc0140syt->set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(taitoz_state::enforce) +} +void taitoz_state::enforce(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(enforce_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq6_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::enforce_map); + m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq6_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(z80_sound_map) + Z80(config, m_audiocpu, 16000000/4); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map); - MCFG_DEVICE_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(enforce_cpub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq6_line_hold) + M68000(config, m_subcpu, 12000000); /* 12 MHz ??? */ + m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::enforce_cpub_map); + m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq6_line_hold)); MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - MCFG_QUANTUM_TIME(attotime::from_hz(600)) + config.m_minimum_quantum = attotime::from_hz(600); TC0040IOC(config, m_tc0040ioc, 0); m_tc0040ioc->read_0_callback().set_ioport("DSWA"); @@ -3353,13 +3351,13 @@ MACHINE_CONFIG_START(taitoz_state::enforce) m_tc0040ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_contcirc) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 31*8-1); + screen.set_screen_update(FUNC(taitoz_state::screen_update_contcirc)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_taitoz); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 4096); @@ -3380,14 +3378,14 @@ MACHINE_CONFIG_START(taitoz_state::enforce) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "2610.1.l", 20.0) - MCFG_SOUND_ROUTE(1, "2610.1.r", 20.0) - MCFG_SOUND_ROUTE(2, "2610.2.l", 20.0) - MCFG_SOUND_ROUTE(2, "2610.2.r", 20.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "2610.1.l", 20.0); + ymsnd.add_route(1, "2610.1.r", 20.0); + ymsnd.add_route(2, "2610.2.l", 20.0); + ymsnd.add_route(2, "2610.2.r", 20.0); FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0); FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0); @@ -3397,22 +3395,23 @@ MACHINE_CONFIG_START(taitoz_state::enforce) TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_subcpu); m_tc0140syt->set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitoz_state::bshark_base) +void taitoz_state::bshark_base(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 12000000); /* 12 MHz ??? */ m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::bshark_map); m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); - MCFG_DEVICE_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(bshark_cpub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq4_line_hold) + M68000(config, m_subcpu, 12000000); /* 12 MHz ??? */ + m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::bshark_cpub_map); + m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); MCFG_MACHINE_START_OVERRIDE(taitoz_state,bshark) MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - MCFG_QUANTUM_TIME(attotime::from_hz(6000)) + config.m_minimum_quantum = attotime::from_hz(6000); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -3423,13 +3422,13 @@ MACHINE_CONFIG_START(taitoz_state::bshark_base) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_bshark) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(taitoz_state::screen_update_bshark)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_taitoz); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 4096); @@ -3448,20 +3447,20 @@ MACHINE_CONFIG_START(taitoz_state::bshark_base) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16000000/2) - //MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) // DG: this is probably specific to Z80 and wrong? - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "2610.1.l", 28.0) - MCFG_SOUND_ROUTE(1, "2610.1.r", 28.0) - MCFG_SOUND_ROUTE(2, "2610.2.l", 28.0) - MCFG_SOUND_ROUTE(2, "2610.2.r", 28.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2)); + //ymsnd.irq_handler().set_inputline(m_audiocpu, 0); // DG: this is probably specific to Z80 and wrong? + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "2610.1.l", 28.0); + ymsnd.add_route(1, "2610.1.r", 28.0); + ymsnd.add_route(2, "2610.2.l", 28.0); + ymsnd.add_route(2, "2610.2.r", 28.0); FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0); FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0); FILTER_VOLUME(config, "2610.2.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0); FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0); -MACHINE_CONFIG_END +} void taitoz_state::bshark(machine_config &config) { @@ -3482,24 +3481,24 @@ void taitoz_state::bsharkjjs(machine_config &config) } -MACHINE_CONFIG_START(taitoz_state::sci) - +void taitoz_state::sci(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(sci_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, sci_interrupt) + M68000(config, m_maincpu, 12000000); /* 12 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::sci_map); + m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::sci_interrupt)); - MCFG_DEVICE_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(z80_sound_map) + Z80(config, m_audiocpu, 16000000/4); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map); - MCFG_DEVICE_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(sci_cpub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq4_line_hold) + M68000(config, m_subcpu, 12000000); /* 12 MHz ??? */ + m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::sci_cpub_map); + m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - MCFG_QUANTUM_TIME(attotime::from_hz(3000)) + config.m_minimum_quantum = attotime::from_hz(3000); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -3510,13 +3509,13 @@ MACHINE_CONFIG_START(taitoz_state::sci) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_sci) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(taitoz_state::screen_update_sci)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_taitoz); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 4096); @@ -3535,14 +3534,14 @@ MACHINE_CONFIG_START(taitoz_state::sci) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "2610.1.l", 2.0) - MCFG_SOUND_ROUTE(1, "2610.1.r", 2.0) - MCFG_SOUND_ROUTE(2, "2610.2.l", 2.0) - MCFG_SOUND_ROUTE(2, "2610.2.r", 2.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "2610.1.l", 2.0); + ymsnd.add_route(1, "2610.1.r", 2.0); + ymsnd.add_route(2, "2610.2.l", 2.0); + ymsnd.add_route(2, "2610.2.r", 2.0); FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0); FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0); @@ -3552,27 +3551,26 @@ MACHINE_CONFIG_START(taitoz_state::sci) TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_subcpu); m_tc0140syt->set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(taitoz_state::nightstr) +} +void taitoz_state::nightstr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(nightstr_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq4_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::nightstr_map); + m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(z80_sound_map) + Z80(config, m_audiocpu, 16000000/4); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map); - MCFG_DEVICE_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(nightstr_cpub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq4_line_hold) + M68000(config, m_subcpu, 12000000); /* 12 MHz ??? */ + m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::nightstr_cpub_map); + m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - MCFG_QUANTUM_TIME(attotime::from_hz(6000)) + config.m_minimum_quantum = attotime::from_hz(6000); adc0809_device &adc(ADC0809(config, "adc", 500000)); // clock unknown adc.eoc_ff_callback().set_inputline("maincpu", 6); @@ -3590,13 +3588,13 @@ MACHINE_CONFIG_START(taitoz_state::nightstr) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_chasehq) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(taitoz_state::screen_update_chasehq)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_chasehq); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 4096); @@ -3618,13 +3616,13 @@ MACHINE_CONFIG_START(taitoz_state::nightstr) SPEAKER(config, "rear").rear_center(); SPEAKER(config, "subwoofer").subwoofer(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "subwoofer", 0.20) - MCFG_SOUND_ROUTE(1, "2610.1.l", 2.0) - MCFG_SOUND_ROUTE(1, "2610.1.r", 2.0) - MCFG_SOUND_ROUTE(2, "2610.2.l", 2.0) - MCFG_SOUND_ROUTE(2, "2610.2.r", 2.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "subwoofer", 0.20); + ymsnd.add_route(1, "2610.1.l", 2.0); + ymsnd.add_route(1, "2610.1.r", 2.0); + ymsnd.add_route(2, "2610.2.l", 2.0); + ymsnd.add_route(2, "2610.2.r", 2.0); FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rear", 1.0); FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "front", 1.0); @@ -3634,27 +3632,26 @@ MACHINE_CONFIG_START(taitoz_state::nightstr) TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_subcpu); m_tc0140syt->set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(taitoz_state::aquajack) +} +void taitoz_state::aquajack(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(aquajack_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq4_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::aquajack_map); + m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(z80_sound_map) + Z80(config, m_audiocpu, 16000000/4); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map); - MCFG_DEVICE_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(aquajack_cpub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq4_line_hold) + M68000(config, m_subcpu, 12000000); /* 12 MHz ??? */ + m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::aquajack_cpub_map); + m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - MCFG_QUANTUM_TIME(attotime::from_hz(30000)) + config.m_minimum_quantum = attotime::from_hz(30000); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -3665,13 +3662,13 @@ MACHINE_CONFIG_START(taitoz_state::aquajack) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_aquajack) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(taitoz_state::screen_update_aquajack)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_taitoz); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 4096); @@ -3692,14 +3689,14 @@ MACHINE_CONFIG_START(taitoz_state::aquajack) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "2610.1.l", 2.0) - MCFG_SOUND_ROUTE(1, "2610.1.r", 2.0) - MCFG_SOUND_ROUTE(2, "2610.2.l", 2.0) - MCFG_SOUND_ROUTE(2, "2610.2.r", 2.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "2610.1.l", 2.0); + ymsnd.add_route(1, "2610.1.r", 2.0); + ymsnd.add_route(2, "2610.2.l", 2.0); + ymsnd.add_route(2, "2610.2.r", 2.0); FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0); FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0); @@ -3709,24 +3706,23 @@ MACHINE_CONFIG_START(taitoz_state::aquajack) TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_subcpu); m_tc0140syt->set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(taitoz_state::spacegun) +} +void taitoz_state::spacegun(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(spacegun_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq4_line_hold) + M68000(config, m_maincpu, 16000000); /* 16 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::spacegun_map); + m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); - MCFG_DEVICE_ADD("sub", M68000, 16000000) /* 16 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(spacegun_cpub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq4_line_hold) + M68000(config, m_subcpu, 16000000); /* 16 MHz ??? */ + m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::spacegun_cpub_map); + m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); MCFG_MACHINE_START_OVERRIDE(taitoz_state,bshark) MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) - EEPROM_93C46_16BIT(config, "eeprom").default_data(spacegun_default_eeprom, 128); + EEPROM_93C46_16BIT(config, m_eeprom).default_data(spacegun_default_eeprom, 128); adc0809_device &adc(ADC0809(config, "adc", 500000)); // clock unknown adc.eoc_ff_callback().set_inputline("sub", 5); @@ -3745,13 +3741,13 @@ MACHINE_CONFIG_START(taitoz_state::spacegun) m_tc0510nio->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_spacegun) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(taitoz_state::screen_update_spacegun)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_taitoz); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 4096); @@ -3769,41 +3765,40 @@ MACHINE_CONFIG_START(taitoz_state::spacegun) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16000000/2) - //MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) // DG: this is probably specific to Z80 and wrong? - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "2610.1.l", 8.0) - MCFG_SOUND_ROUTE(1, "2610.1.r", 8.0) - MCFG_SOUND_ROUTE(2, "2610.2.l", 8.0) - MCFG_SOUND_ROUTE(2, "2610.2.r", 8.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2)); + //ymsnd.irq_handler().set_inputline(m_audiocpu, 0); // DG: this is probably specific to Z80 and wrong? + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "2610.1.l", 8.0); + ymsnd.add_route(1, "2610.1.r", 8.0); + ymsnd.add_route(2, "2610.2.l", 8.0); + ymsnd.add_route(2, "2610.2.r", 8.0); FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0); FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0); FILTER_VOLUME(config, "2610.2.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0); FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0); -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(taitoz_state::dblaxle) +} +void taitoz_state::dblaxle(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(32'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(dblaxle_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq4_line_hold) + M68000(config, m_maincpu, XTAL(32'000'000)/2); + m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::dblaxle_map); + m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(32'000'000)/8) - MCFG_DEVICE_PROGRAM_MAP(z80_sound_map) + Z80(config, m_audiocpu, XTAL(32'000'000)/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map); - MCFG_DEVICE_ADD("sub", M68000, XTAL(32'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(dblaxle_cpub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq4_line_hold) + M68000(config, m_subcpu, XTAL(32'000'000)/2); + m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::dblaxle_cpub_map); + m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) // make quantum time to be a multiple of the xtal (fixes road layer stuck on continue) - MCFG_QUANTUM_TIME(attotime::from_hz(XTAL(32'000'000)/1024)) + config.m_minimum_quantum = attotime::from_hz(XTAL(32'000'000)/1024); TC0510NIO(config, m_tc0510nio, 0); m_tc0510nio->read_0_callback().set_ioport("DSWA"); @@ -3814,13 +3809,13 @@ MACHINE_CONFIG_START(taitoz_state::dblaxle) m_tc0510nio->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_dblaxle) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(taitoz_state::screen_update_dblaxle)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_dblaxle); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 4096); @@ -3839,14 +3834,14 @@ MACHINE_CONFIG_START(taitoz_state::dblaxle) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(32'000'000)/4) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "2610.1.l", 8.0) - MCFG_SOUND_ROUTE(1, "2610.1.r", 8.0) - MCFG_SOUND_ROUTE(2, "2610.2.l", 8.0) - MCFG_SOUND_ROUTE(2, "2610.2.r", 8.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(32'000'000)/4)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "2610.1.l", 8.0); + ymsnd.add_route(1, "2610.1.r", 8.0); + ymsnd.add_route(2, "2610.2.l", 8.0); + ymsnd.add_route(2, "2610.2.r", 8.0); FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0); FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0); @@ -3856,22 +3851,21 @@ MACHINE_CONFIG_START(taitoz_state::dblaxle) TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_subcpu); m_tc0140syt->set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(taitoz_state::racingb) +} +void taitoz_state::racingb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(32'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(racingb_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, sci_interrupt) + M68000(config, m_maincpu, XTAL(32'000'000)/2); + m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::racingb_map); + m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::sci_interrupt)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(32'000'000)/8) - MCFG_DEVICE_PROGRAM_MAP(z80_sound_map) + Z80(config, m_audiocpu, XTAL(32'000'000)/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map); - MCFG_DEVICE_ADD("sub", M68000, XTAL(32'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(racingb_cpub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoz_state, irq4_line_hold) + M68000(config, m_subcpu, XTAL(32'000'000)/2); + m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::racingb_cpub_map); + m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold)); MCFG_MACHINE_START_OVERRIDE(taitoz_state,taitoz) MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz) @@ -3887,13 +3881,13 @@ MACHINE_CONFIG_START(taitoz_state::racingb) m_tc0510nio->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_racingb) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(taitoz_state::screen_update_racingb)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_dblaxle); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 4096); @@ -3912,14 +3906,14 @@ MACHINE_CONFIG_START(taitoz_state::racingb) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(32'000'000)/4) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "2610.1.l", 8.0) - MCFG_SOUND_ROUTE(1, "2610.1.r", 8.0) - MCFG_SOUND_ROUTE(2, "2610.2.l", 8.0) - MCFG_SOUND_ROUTE(2, "2610.2.r", 8.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(32'000'000)/4)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "2610.1.l", 8.0); + ymsnd.add_route(1, "2610.1.r", 8.0); + ymsnd.add_route(2, "2610.2.l", 8.0); + ymsnd.add_route(2, "2610.2.r", 8.0); FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0); FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0); @@ -3929,7 +3923,7 @@ MACHINE_CONFIG_START(taitoz_state::racingb) TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_subcpu); m_tc0140syt->set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/taitoair.cpp b/src/mame/drivers/taitoair.cpp index 43200872428..0b64bb3e9f2 100644 --- a/src/mame/drivers/taitoair.cpp +++ b/src/mame/drivers/taitoair.cpp @@ -200,7 +200,6 @@ perhaps? The two writes seem to take only two values. #include "audio/taitosnd.h" #include "cpu/m68000/m68000.h" -#include "cpu/tms32025/tms32025.h" #include "cpu/z80/z80.h" #include "sound/2610intf.h" #include "speaker.h" @@ -702,23 +701,23 @@ void taitoair_state::machine_reset() } } -MACHINE_CONFIG_START(taitoair_state::airsys) - +void taitoair_state::airsys(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000)) // MC68000P12 - MCFG_DEVICE_PROGRAM_MAP(airsys_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitoair_state, irq5_line_hold) + M68000(config, m_maincpu, XTAL(12'000'000)); // MC68000P12 + m_maincpu->set_addrmap(AS_PROGRAM, &taitoair_state::airsys_map); + m_maincpu->set_vblank_int("screen", FUNC(taitoair_state::irq5_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000) / 4) // Z8400AB1 - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, XTAL(16'000'000) / 4); // Z8400AB1 + m_audiocpu->set_addrmap(AS_PROGRAM, &taitoair_state::sound_map); - tms32025_device& dsp(TMS32025(config, m_dsp, XTAL(36'000'000))); // Unverified - dsp.set_addrmap(AS_PROGRAM, &taitoair_state::DSP_map_program); - dsp.set_addrmap(AS_DATA, &taitoair_state::DSP_map_data); - dsp.hold_in_cb().set(FUNC(taitoair_state::dsp_HOLD_signal_r)); - dsp.hold_ack_out_cb().set(FUNC(taitoair_state::dsp_HOLDA_signal_w)); + TMS32025(config, m_dsp, XTAL(36'000'000)); // Unverified + m_dsp->set_addrmap(AS_PROGRAM, &taitoair_state::DSP_map_program); + m_dsp->set_addrmap(AS_DATA, &taitoair_state::DSP_map_data); + m_dsp->hold_in_cb().set(FUNC(taitoair_state::dsp_HOLD_signal_r)); + m_dsp->hold_ack_out_cb().set(FUNC(taitoair_state::dsp_HOLDA_signal_w)); - MCFG_QUANTUM_PERFECT_CPU("maincpu") + config.m_perfect_cpu_quantum = subtag("maincpu"); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -731,17 +730,17 @@ MACHINE_CONFIG_START(taitoair_state::airsys) TAITOIO_YOKE(config, m_yoke, 0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) -// MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) -// MCFG_SCREEN_SIZE(64*16, 32*16) -// MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 28*16-1) + 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*16, 32*16); +// m_screen->set_visarea(0*16, 32*16-1, 3*16, 28*16-1); // Estimated, assume same as mlanding.cpp - MCFG_SCREEN_RAW_PARAMS(16000000, 640, 0, 512, 462, 3*16, 28*16) - MCFG_SCREEN_UPDATE_DRIVER(taitoair_state, screen_update_taitoair) - MCFG_SCREEN_PALETTE(m_palette) + m_screen->set_raw(16000000, 640, 0, 512, 462, 3*16, 28*16); + m_screen->set_screen_update(FUNC(taitoair_state::screen_update_taitoair)); + m_screen->set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_airsys) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_airsys); PALETTE(config, m_palette, palette_device::BLACK, 512*16+512*16); @@ -755,16 +754,16 @@ MACHINE_CONFIG_START(taitoair_state::airsys) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, XTAL(16'000'000) / 2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.30) - MCFG_SOUND_ROUTE(1, "mono", 0.60) - MCFG_SOUND_ROUTE(2, "mono", 0.60) + ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(16'000'000) / 2)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.30); + ymsnd.add_route(1, "mono", 0.60); + ymsnd.add_route(2, "mono", 0.60); tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag(m_maincpu); tc0140syt.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} /************************************************************* diff --git a/src/mame/drivers/taotaido.cpp b/src/mame/drivers/taotaido.cpp index 746f93eac18..446b0b1a32c 100644 --- a/src/mame/drivers/taotaido.cpp +++ b/src/mame/drivers/taotaido.cpp @@ -348,15 +348,15 @@ GFXDECODE_END -MACHINE_CONFIG_START(taotaido_state::taotaido) - MCFG_DEVICE_ADD("maincpu", M68000, 32000000/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taotaido_state, irq1_line_hold) +void taotaido_state::taotaido(machine_config &config) +{ + M68000(config, m_maincpu, 32000000/2); + m_maincpu->set_addrmap(AS_PROGRAM, &taotaido_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(taotaido_state::irq1_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,20000000/4) // ?? - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_port_map) - /* IRQs are triggered by the YM2610 */ + Z80(config, m_audiocpu, 20000000/4); // ?? + m_audiocpu->set_addrmap(AS_PROGRAM, &taotaido_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &taotaido_state::sound_port_map); /* IRQs are triggered by the YM2610 */ vs9209_device &io1(VS9209(config, "io1", 0)); io1.porta_input_cb().set_ioport("P1"); @@ -372,18 +372,18 @@ MACHINE_CONFIG_START(taotaido_state::taotaido) io2.porta_input_cb().set_ioport("P3"); // used only by taotaida io2.portb_input_cb().set_ioport("P4"); // used only by taotaida - MCFG_DEVICE_ADD("watchdog", MB3773, 0) + MB3773(config, m_watchdog, 0); GFXDECODE(config, m_gfxdecode, "palette", gfx_taotaido); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taotaido_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taotaido_state, screen_vblank)) - 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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 0*8, 28*8-1); + screen.set_screen_update(FUNC(taotaido_state::screen_update)); + screen.screen_vblank().set(FUNC(taotaido_state::screen_vblank)); + screen.set_palette("palette"); PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x800); @@ -400,13 +400,13 @@ MACHINE_CONFIG_START(taotaido_state::taotaido) m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) -MACHINE_CONFIG_END + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); +} ROM_START( taotaido ) diff --git a/src/mame/drivers/warriorb.cpp b/src/mame/drivers/warriorb.cpp index 18b24e19dbb..229a88aa340 100644 --- a/src/mame/drivers/warriorb.cpp +++ b/src/mame/drivers/warriorb.cpp @@ -435,15 +435,15 @@ void warriorb_state::machine_reset() machine().sound().system_enable(true); /* mixer enabled */ } -MACHINE_CONFIG_START(warriorb_state::darius2d) - +void warriorb_state::darius2d(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? (Might well be 16!) */ - MCFG_DEVICE_PROGRAM_MAP(darius2d_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", warriorb_state, irq4_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz ??? (Might well be 16!) */ + m_maincpu->set_addrmap(AS_PROGRAM, &warriorb_state::darius2d_map); + m_maincpu->set_vblank_int("lscreen", FUNC(warriorb_state::irq4_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(z80_sound_map) + z80_device &audiocpu(Z80(config, "audiocpu", 16000000/4)); /* 4 MHz ? */ + audiocpu.set_addrmap(AS_PROGRAM, &warriorb_state::z80_sound_map); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -454,19 +454,19 @@ MACHINE_CONFIG_START(warriorb_state::darius2d) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_warriorb) - MCFG_PALETTE_ADD("palette", 4096) - MCFG_PALETTE_ADD("palette2", 4096) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_warriorb); + PALETTE(config, m_palette).set_entries(4096); + PALETTE(config, "palette2").set_entries(4096); config.set_default_layout(layout_dualhsxs); - MCFG_SCREEN_ADD("lscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_left) - MCFG_SCREEN_PALETTE("palette") + screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); + lscreen.set_refresh_hz(60); + lscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + lscreen.set_size(40*8, 32*8); + lscreen.set_visarea(0*8, 40*8-1, 3*8, 32*8-1); + lscreen.set_screen_update(FUNC(warriorb_state::screen_update_left)); + lscreen.set_palette(m_palette); TC0100SCN(config, m_tc0100scn[0], 0); m_tc0100scn[0]->set_gfx_region(1); @@ -477,13 +477,13 @@ MACHINE_CONFIG_START(warriorb_state::darius2d) TC0110PCR(config, m_tc0110pcr[0], 0, m_palette); - MCFG_SCREEN_ADD("rscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_right) - MCFG_SCREEN_PALETTE("palette2") + screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); + rscreen.set_refresh_hz(60); + rscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + rscreen.set_size(40*8, 32*8); + rscreen.set_visarea(0*8, 40*8-1, 3*8, 32*8-1); + rscreen.set_screen_update(FUNC(warriorb_state::screen_update_right)); + rscreen.set_palette("palette2"); TC0100SCN(config, m_tc0100scn[1], 0); m_tc0100scn[1]->set_gfx_region(2); @@ -499,14 +499,14 @@ MACHINE_CONFIG_START(warriorb_state::darius2d) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0) - MCFG_SOUND_ROUTE(1, "2610.1.r", 1.0) - MCFG_SOUND_ROUTE(2, "2610.2.l", 1.0) - MCFG_SOUND_ROUTE(2, "2610.2.r", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set_inputline("audiocpu", 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "2610.1.l", 1.0); + ymsnd.add_route(1, "2610.1.r", 1.0); + ymsnd.add_route(2, "2610.2.l", 1.0); + ymsnd.add_route(2, "2610.2.r", 1.0); FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0); FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0); @@ -516,18 +516,17 @@ MACHINE_CONFIG_START(warriorb_state::darius2d) TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_maincpu); m_tc0140syt->set_slave_tag("audiocpu"); -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(warriorb_state::warriorb) +} +void warriorb_state::warriorb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(warriorb_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", warriorb_state, irq4_line_hold) + M68000(config, m_maincpu, 16000000); /* 16 MHz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &warriorb_state::warriorb_map); + m_maincpu->set_vblank_int("lscreen", FUNC(warriorb_state::irq4_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(z80_sound_map) + z80_device &audiocpu(Z80(config, "audiocpu", 16000000/4)); /* 4 MHz ? */ + audiocpu.set_addrmap(AS_PROGRAM, &warriorb_state::z80_sound_map); TC0510NIO(config, m_tc0510nio, 0); m_tc0510nio->read_0_callback().set_ioport("DSWA"); @@ -538,19 +537,19 @@ MACHINE_CONFIG_START(warriorb_state::warriorb) m_tc0510nio->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_warriorb) - MCFG_PALETTE_ADD("palette", 4096) - MCFG_PALETTE_ADD("palette2", 4096) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_warriorb); + PALETTE(config, m_palette).set_entries(4096); + PALETTE(config, "palette2").set_entries(4096); config.set_default_layout(layout_dualhsxs); - MCFG_SCREEN_ADD("lscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_left) - MCFG_SCREEN_PALETTE("palette") + screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); + lscreen.set_refresh_hz(60); + lscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + lscreen.set_size(40*8, 32*8); + lscreen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + lscreen.set_screen_update(FUNC(warriorb_state::screen_update_left)); + lscreen.set_palette(m_palette); TC0100SCN(config, m_tc0100scn[0], 0); m_tc0100scn[0]->set_gfx_region(1); @@ -561,13 +560,13 @@ MACHINE_CONFIG_START(warriorb_state::warriorb) TC0110PCR(config, m_tc0110pcr[0], 0, m_palette); - MCFG_SCREEN_ADD("rscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_right) - MCFG_SCREEN_PALETTE("palette2") + screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); + rscreen.set_refresh_hz(60); + rscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + rscreen.set_size(40*8, 32*8); + rscreen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + rscreen.set_screen_update(FUNC(warriorb_state::screen_update_right)); + rscreen.set_palette("palette2"); TC0100SCN(config, m_tc0100scn[1], 0); m_tc0100scn[1]->set_gfx_region(2); @@ -584,14 +583,14 @@ MACHINE_CONFIG_START(warriorb_state::warriorb) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610B, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0) - MCFG_SOUND_ROUTE(1, "2610.1.r", 1.0) - MCFG_SOUND_ROUTE(2, "2610.2.l", 1.0) - MCFG_SOUND_ROUTE(2, "2610.2.r", 1.0) + ym2610b_device &ymsnd(YM2610B(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set_inputline("audiocpu", 0); + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "2610.1.l", 1.0); + ymsnd.add_route(1, "2610.1.r", 1.0); + ymsnd.add_route(2, "2610.2.l", 1.0); + ymsnd.add_route(2, "2610.2.r", 1.0); FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0); FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0); @@ -601,7 +600,7 @@ MACHINE_CONFIG_START(warriorb_state::warriorb) TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_maincpu); m_tc0140syt->set_slave_tag("audiocpu"); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/wc90.cpp b/src/mame/drivers/wc90.cpp index d2439ed6db0..9e91def8fb5 100644 --- a/src/mame/drivers/wc90.cpp +++ b/src/mame/drivers/wc90.cpp @@ -344,31 +344,31 @@ void wc90_state::machine_start() } -MACHINE_CONFIG_START(wc90_state::wc90) - +void wc90_state::wc90(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, Z80, XTAL(8'000'000)) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(wc90_map_1) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", wc90_state, irq0_line_hold) + Z80(config, m_maincpu, XTAL(8'000'000)); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &wc90_state::wc90_map_1); + m_maincpu->set_vblank_int("screen", FUNC(wc90_state::irq0_line_hold)); - MCFG_DEVICE_ADD("sub", Z80, XTAL(8'000'000)) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(wc90_map_2) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", wc90_state, irq0_line_hold) + z80_device &sub(Z80(config, "sub", XTAL(8'000'000))); /* verified on pcb */ + sub.set_addrmap(AS_PROGRAM, &wc90_state::wc90_map_2); + sub.set_vblank_int("screen", FUNC(wc90_state::irq0_line_hold)); - MCFG_DEVICE_ADD(m_audiocpu, Z80, XTAL(8'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, XTAL(8'000'000)/2); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &wc90_state::sound_map); /* NMIs are triggered by the main CPU */ WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */ - 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(wc90_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.17); /* verified on pcb */ + 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(wc90_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_wc90); PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024).set_endianness(ENDIANNESS_BIG); @@ -381,17 +381,18 @@ MACHINE_CONFIG_START(wc90_state::wc90) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); - MCFG_DEVICE_ADD("ymsnd", YM2608, XTAL(8'000'000)) /* verified on pcb */ - MCFG_YM2608_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.50) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_CONFIG_END + ym2608_device &ymsnd(YM2608(config, "ymsnd", XTAL(8'000'000))); /* verified on pcb */ + ymsnd.irq_handler().set_inputline("audiocpu", 0); + ymsnd.add_route(0, "mono", 0.50); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); +} -MACHINE_CONFIG_START(wc90_state::wc90t) +void wc90_state::wc90t(machine_config &config) +{ wc90(config); MCFG_VIDEO_START_OVERRIDE(wc90_state, wc90t ) -MACHINE_CONFIG_END +} void wc90_state::pac90(machine_config &config) { diff --git a/src/mame/drivers/welltris.cpp b/src/mame/drivers/welltris.cpp index 89012a016b6..1238c57ac26 100644 --- a/src/mame/drivers/welltris.cpp +++ b/src/mame/drivers/welltris.cpp @@ -671,25 +671,25 @@ void welltris_state::machine_start() membank("soundbank")->configure_entries(0, 4, memregion("audiocpu")->base(), 0x8000); } -MACHINE_CONFIG_START(welltris_state::welltris) - +void welltris_state::welltris(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,20000000/2) /* 10 MHz */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", welltris_state, irq1_line_hold) + M68000(config, m_maincpu, 20000000/2); /* 10 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &welltris_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(welltris_state::irq1_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,8000000/2) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_port_map) /* IRQs are triggered by the YM2610 */ + Z80(config, m_audiocpu, 8000000/2); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &welltris_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &welltris_state::sound_port_map); /* IRQs are triggered by the YM2610 */ /* 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(15, 367-1, 8, 248-1) - MCFG_SCREEN_UPDATE_DRIVER(welltris_state, screen_update) - 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(512, 256); + m_screen->set_visarea(15, 367-1, 8, 248-1); + m_screen->set_screen_update(FUNC(welltris_state::screen_update)); + m_screen->set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_welltris); PALETTE(config, "palette").set_format(palette_device::xRGB_555, 2048); @@ -708,23 +708,22 @@ MACHINE_CONFIG_START(welltris_state::welltris) m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 0.75) - MCFG_SOUND_ROUTE(2, "mono", 0.75) -MACHINE_CONFIG_END + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 0.75); + ymsnd.add_route(2, "mono", 0.75); +} -MACHINE_CONFIG_START(welltris_state::quiz18k) +void welltris_state::quiz18k(machine_config &config) +{ welltris(config); /* basic machine hardware */ - - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(15, 335-1, 0, 224-1) + m_screen->set_visarea(15, 335-1, 0, 224-1); m_spr_old->set_offsets(6, 1); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/wgp.cpp b/src/mame/drivers/wgp.cpp index 9acf8aaa94c..b1dd4cc61fd 100644 --- a/src/mame/drivers/wgp.cpp +++ b/src/mame/drivers/wgp.cpp @@ -912,22 +912,21 @@ void wgp_state::machine_start() machine().save().register_postload(save_prepost_delegate(FUNC(wgp_state::postload), this)); } -MACHINE_CONFIG_START(wgp_state::wgp) - +void wgp_state::wgp(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", wgp_state, irq4_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &wgp_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(wgp_state::irq4_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, 16000000/4) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(z80_sound_map) + Z80(config, m_audiocpu, 16000000/4); /* 4 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &wgp_state::z80_sound_map); - MCFG_DEVICE_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(cpu2_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", wgp_state, cpub_interrupt) + M68000(config, m_subcpu, 12000000); /* 12 MHz ??? */ + m_subcpu->set_addrmap(AS_PROGRAM, &wgp_state::cpu2_map); + m_subcpu->set_vblank_int("screen", FUNC(wgp_state::cpub_interrupt)); - - MCFG_QUANTUM_TIME(attotime::from_hz(30000)) + config.m_minimum_quantum = attotime::from_hz(30000); TC0220IOC(config, m_tc0220ioc, 0); m_tc0220ioc->read_0_callback().set_ioport("DSWA"); @@ -938,13 +937,13 @@ MACHINE_CONFIG_START(wgp_state::wgp) m_tc0220ioc->read_7_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(wgp_state, screen_update) - 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(0)); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(wgp_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_wgp); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 4096); @@ -959,28 +958,29 @@ MACHINE_CONFIG_START(wgp_state::wgp) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 16000000/2) - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) // assumes Z80 sandwiched between 68Ks - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.0) + ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2)); + ymsnd.irq_handler().set_inputline(m_audiocpu, 0); // assumes Z80 sandwiched between 68Ks + ymsnd.add_route(0, "lspeaker", 0.25); + ymsnd.add_route(0, "rspeaker", 0.25); + ymsnd.add_route(1, "lspeaker", 1.0); + ymsnd.add_route(2, "rspeaker", 1.0); TC0140SYT(config, m_tc0140syt, 0); m_tc0140syt->set_master_tag(m_subcpu); m_tc0140syt->set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} - -MACHINE_CONFIG_START(wgp_state::wgp2) +void wgp_state::wgp2(machine_config &config) +{ wgp(config); - MCFG_QUANTUM_TIME(attotime::from_hz(12000)) + config.m_minimum_quantum = attotime::from_hz(12000); + /* video hardware */ MCFG_VIDEO_START_OVERRIDE(wgp_state, wgp2) m_tc0100scn->set_offsets(4, 2); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/yuvomz80.cpp b/src/mame/drivers/yuvomz80.cpp index 5978812dd72..86ec91cbd59 100644 --- a/src/mame/drivers/yuvomz80.cpp +++ b/src/mame/drivers/yuvomz80.cpp @@ -97,42 +97,45 @@ void yuvomz80_state::hexapres_audio_io_map(address_map &map) static INPUT_PORTS_START( goldhexa ) INPUT_PORTS_END -MACHINE_CONFIG_START(yuvomz80_state::goldhexa) - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(8'000'000)) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) +void yuvomz80_state::goldhexa(machine_config &config) +{ + Z80(config, m_maincpu, XTAL(8'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &yuvomz80_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &yuvomz80_state::io_map); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(8'000'000)) - MCFG_DEVICE_PROGRAM_MAP(audio_mem_map) - MCFG_DEVICE_IO_MAP(audio_io_map) + z80_device &audiocpu(Z80(config, "audiocpu", XTAL(8'000'000))); + audiocpu.set_addrmap(AS_PROGRAM, &yuvomz80_state::audio_mem_map); + audiocpu.set_addrmap(AS_IO, &yuvomz80_state::audio_io_map); - MCFG_DEVICE_ADD("ppi0", I8255A, 0) - MCFG_DEVICE_ADD("ppi1", I8255A, 0) - MCFG_DEVICE_ADD("ppi2", I8255A, 0) - MCFG_DEVICE_ADD("ppi3", I8255A, 0) + I8255A(config, "ppi0", 0); + I8255A(config, "ppi1", 0); + I8255A(config, "ppi2", 0); + I8255A(config, "ppi3", 0); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(16'934'400)) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.00) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.00) -MACHINE_CONFIG_END -MACHINE_CONFIG_START(yuvomz80_state::hexapres) - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(8'000'000)) - MCFG_DEVICE_DISABLE() + ymz280b_device &ymz(YMZ280B(config, "ymz", XTAL(16'934'400))); + ymz.add_route(0, "lspeaker", 1.00); + ymz.add_route(1, "rspeaker", 1.00); +} - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(8'000'000)) - MCFG_DEVICE_PROGRAM_MAP(audio_mem_map) - MCFG_DEVICE_IO_MAP(hexapres_audio_io_map) +void yuvomz80_state::hexapres(machine_config &config) +{ + Z80(config, m_maincpu, XTAL(8'000'000)); + m_maincpu->set_disable(); + + z80_device &audiocpu(Z80(config, "audiocpu", XTAL(8'000'000))); + audiocpu.set_addrmap(AS_PROGRAM, &yuvomz80_state::audio_mem_map); + audiocpu.set_addrmap(AS_IO, &yuvomz80_state::hexapres_audio_io_map); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2610, 8000000) // type guessed - MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 1.0) - MCFG_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_CONFIG_END + ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); // type guessed + ymsnd.irq_handler().set_inputline("audiocpu", 0); + ymsnd.add_route(0, "mono", 0.25); + ymsnd.add_route(1, "mono", 1.0); + ymsnd.add_route(2, "mono", 1.0); +} ROM_START( goldhexa ) diff --git a/src/mame/includes/fromance.h b/src/mame/includes/fromance.h index 732e35a5d7a..31894d52cd1 100644 --- a/src/mame/includes/fromance.h +++ b/src/mame/includes/fromance.h @@ -29,13 +29,13 @@ public: m_subcpu(*this, "sub"), m_spriteram(*this, "spriteram"), m_gfxdecode(*this, "gfxdecode"), + m_screen(*this, "screen"), m_palette(*this, "palette"), m_gga(*this, "gga"), m_spr_old(*this, "vsystem_spr_old"), m_videoram(*this, "videoram"), m_sublatch(*this, "sublatch"), - m_msm(*this, "msm"), - m_screen(*this, "screen") + m_msm(*this, "msm") { } void nekkyoku(machine_config &config); @@ -51,6 +51,7 @@ protected: required_device m_subcpu; optional_shared_ptr m_spriteram; required_device m_gfxdecode; + required_device m_screen; required_device m_palette; required_device m_gga; optional_device m_spr_old; // only used by pipe dream, split this state up and clean things... @@ -82,7 +83,6 @@ private: optional_device m_sublatch; optional_device m_msm; - required_device m_screen; /* video-related */ tilemap_t *m_bg_tilemap; diff --git a/src/mame/includes/taito_f2.h b/src/mame/includes/taito_f2.h index 4a83149e3d1..899ee6da7b9 100644 --- a/src/mame/includes/taito_f2.h +++ b/src/mame/includes/taito_f2.h @@ -5,7 +5,6 @@ #pragma once - #include "machine/taitocchip.h" #include "machine/taitoio.h" @@ -17,7 +16,7 @@ #include "video/tc0480scp.h" #include "machine/timer.h" #include "emupal.h" - +#include "screen.h" class taitof2_state : public driver_device { @@ -42,6 +41,7 @@ public: , m_tc0220ioc(*this, "tc0220ioc") , m_tc0510nio(*this, "tc0510nio") , m_gfxdecode(*this, "gfxdecode") + , m_screen(*this, "screen") , m_palette(*this, "palette") { } @@ -168,6 +168,7 @@ protected: optional_device m_tc0220ioc; optional_device m_tc0510nio; required_device m_gfxdecode; + required_device m_screen; required_device m_palette; DECLARE_WRITE8_MEMBER(coin_nibble_w); diff --git a/src/mame/includes/taitoair.h b/src/mame/includes/taitoair.h index 5888e8df93d..c8b861904f2 100644 --- a/src/mame/includes/taitoair.h +++ b/src/mame/includes/taitoair.h @@ -10,6 +10,7 @@ #pragma once +#include "cpu/tms32025/tms32025.h" #include "machine/taitoio.h" #include "machine/taitoio_yoke.h" #include "video/tc0080vco.h" @@ -71,7 +72,7 @@ private: /* devices */ required_device m_maincpu; required_device m_audiocpu; - required_device m_dsp; + required_device m_dsp; required_device m_tc0080vco; required_device m_tc0220ioc; required_device m_yoke; diff --git a/src/mame/includes/welltris.h b/src/mame/includes/welltris.h index 34d026d1665..21951770449 100644 --- a/src/mame/includes/welltris.h +++ b/src/mame/includes/welltris.h @@ -7,6 +7,7 @@ #include "machine/gen_latch.h" #include "video/vsystem_spr2.h" +#include "screen.h" class welltris_state : public driver_device { @@ -17,6 +18,7 @@ public: m_audiocpu(*this, "audiocpu"), m_spr_old(*this, "vsystem_spr_old"), m_gfxdecode(*this, "gfxdecode"), + m_screen(*this, "screen"), m_soundlatch(*this, "soundlatch"), m_spriteram(*this, "spriteram"), m_pixelram(*this, "pixelram"), @@ -38,6 +40,7 @@ private: required_device m_audiocpu; required_device m_spr_old; required_device m_gfxdecode; + required_device m_screen; required_device m_soundlatch; required_shared_ptr m_spriteram;