diff options
author | Ivan Vangelista <mesgnet@yahoo.it> | 2019-02-25 21:11:25 +0100 |
---|---|---|
committer | Ivan Vangelista <mesgnet@yahoo.it> | 2019-02-25 21:11:25 +0100 |
commit | bb815543a63e669ab79f397d2b16c0e7a7c0fdb9 (patch) | |
tree | 1663694ada3fb3f52b82abbaccad830557efe888 | |
parent | 1c65b655603ac374c8cb3ce3bf8716921d89804b (diff) |
(nw) sorry, take 2
screen.h: added constructor for SVG screens and removed a couple of macros (nw)
mame\drivers: remove most MCFG and MACHINE_CONFIG macros from drivers starting with P, Q and R (nw)
139 files changed, 2579 insertions, 2573 deletions
diff --git a/src/emu/screen.h b/src/emu/screen.h index edf9629c21a..a68893b8ba2 100644 --- a/src/emu/screen.h +++ b/src/emu/screen.h @@ -183,6 +183,12 @@ public: set_type(type); set_color(color); } + screen_device(const machine_config &mconfig, const char *tag, device_t *owner, const char *region) + : screen_device(mconfig, tag, owner, u32(0)) + { + set_type(SCREEN_TYPE_SVG); + set_svg_region(region); + } ~screen_device(); // configuration readers @@ -532,11 +538,6 @@ typedef device_type_iterator<screen_device> screen_device_iterator; #define MCFG_SCREEN_TYPE(_type) \ downcast<screen_device &>(*device).set_type(SCREEN_TYPE_##_type); -#define MCFG_SCREEN_SVG_ADD(_tag, _region) \ - MCFG_DEVICE_ADD(_tag, SCREEN, 0) \ - MCFG_SCREEN_TYPE(SVG) \ - downcast<screen_device &>(*device).set_svg_region(_region); - #define MCFG_SCREEN_RAW_PARAMS(_pixclock, _htotal, _hbend, _hbstart, _vtotal, _vbend, _vbstart) \ downcast<screen_device &>(*device).set_raw(_pixclock, _htotal, _hbend, _hbstart, _vtotal, _vbend, _vbstart); @@ -551,8 +552,6 @@ typedef device_type_iterator<screen_device> screen_device_iterator; #define MCFG_SCREEN_VISIBLE_AREA(_minx, _maxx, _miny, _maxy) \ downcast<screen_device &>(*device).set_visarea(_minx, _maxx, _miny, _maxy); -#define MCFG_SCREEN_DEFAULT_POSITION(_xscale, _xoffs, _yscale, _yoffs) \ - downcast<screen_device &>(*device).set_default_position(_xscale, _xoffs, _yscale, _yoffs); #define MCFG_SCREEN_UPDATE_DRIVER(_class, _method) \ downcast<screen_device &>(*device).set_screen_update(&_class::_method, #_class "::" #_method); #define MCFG_SCREEN_UPDATE_DEVICE(_device, _class, _method) \ diff --git a/src/mame/drivers/hh_melps4.cpp b/src/mame/drivers/hh_melps4.cpp index 6f6f49451ce..044c7c2646b 100644 --- a/src/mame/drivers/hh_melps4.cpp +++ b/src/mame/drivers/hh_melps4.cpp @@ -294,8 +294,8 @@ static INPUT_PORTS_START( cfrogger ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, nullptr) INPUT_PORTS_END -MACHINE_CONFIG_START(cfrogger_state::cfrogger) - +void cfrogger_state::cfrogger(machine_config &config) +{ /* basic machine hardware */ M58846(config, m_maincpu, 600_kHz_XTAL); m_maincpu->read_k().set(FUNC(cfrogger_state::input_r)); @@ -306,17 +306,16 @@ MACHINE_CONFIG_START(cfrogger_state::cfrogger) m_maincpu->write_t().set(FUNC(cfrogger_state::speaker_w)); /* video hardware */ - MCFG_SCREEN_SVG_ADD("screen", "svg") - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(500, 1080) - MCFG_SCREEN_VISIBLE_AREA(0, 500-1, 0, 1080-1) + screen_device &screen(SCREEN(config, "screen", "svg")); + screen.set_refresh_hz(50); + screen.set_size(500, 1080); + screen.set_visarea(0, 500-1, 0, 1080-1); TIMER(config, "display_decay").configure_periodic(FUNC(hh_melps4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); +} @@ -409,8 +408,8 @@ static INPUT_PORTS_START( gjungler ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, nullptr) INPUT_PORTS_END -MACHINE_CONFIG_START(gjungler_state::gjungler) - +void gjungler_state::gjungler(machine_config &config) +{ /* basic machine hardware */ M58846(config, m_maincpu, 600_kHz_XTAL); m_maincpu->read_k().set(FUNC(gjungler_state::input_r)); @@ -422,17 +421,16 @@ MACHINE_CONFIG_START(gjungler_state::gjungler) m_maincpu->write_t().set(FUNC(gjungler_state::speaker_w)); /* video hardware */ - MCFG_SCREEN_SVG_ADD("screen", "svg") - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(481, 1080) - MCFG_SCREEN_VISIBLE_AREA(0, 481-1, 0, 1080-1) + screen_device &screen(SCREEN(config, "screen", "svg")); + screen.set_refresh_hz(50); + screen.set_size(481, 1080); + screen.set_visarea(0, 481-1, 0, 1080-1); TIMER(config, "display_decay").configure_periodic(FUNC(hh_melps4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); +} diff --git a/src/mame/drivers/p112.cpp b/src/mame/drivers/p112.cpp index 178c57f5d9d..7b4c6cb4ad3 100644 --- a/src/mame/drivers/p112.cpp +++ b/src/mame/drivers/p112.cpp @@ -90,25 +90,24 @@ uint32_t p112_state::screen_update_p112(screen_device &screen, bitmap_ind16 &bit return 0; } -MACHINE_CONFIG_START(p112_state::p112) +void p112_state::p112(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z180, XTAL(16'000'000)) - MCFG_DEVICE_PROGRAM_MAP(p112_mem) - MCFG_DEVICE_IO_MAP(p112_io) - + Z180(config, m_maincpu, XTAL(16'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &p112_state::p112_mem); + m_maincpu->set_addrmap(AS_IO, &p112_state::p112_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(240, 320) - MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 320-1) - MCFG_SCREEN_UPDATE_DRIVER(p112_state, screen_update_p112) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(240, 320); + screen.set_visarea(0, 240-1, 0, 320-1); + screen.set_screen_update(FUNC(p112_state::screen_update_p112)); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); - -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( p112 ) diff --git a/src/mame/drivers/p2000t.cpp b/src/mame/drivers/p2000t.cpp index a226b2b8a14..1f5a0fccc51 100644 --- a/src/mame/drivers/p2000t.cpp +++ b/src/mame/drivers/p2000t.cpp @@ -221,20 +221,21 @@ READ8_MEMBER( p2000t_state::videoram_r ) } /* Machine definition */ -MACHINE_CONFIG_START(p2000t_state::p2000t) +void p2000t_state::p2000t(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 2500000) - MCFG_DEVICE_PROGRAM_MAP(p2000t_mem) - MCFG_DEVICE_IO_MAP(p2000t_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", p2000t_state, p2000_interrupt) + Z80(config, m_maincpu, 2500000); + m_maincpu->set_addrmap(AS_PROGRAM, &p2000t_state::p2000t_mem); + m_maincpu->set_addrmap(AS_IO, &p2000t_state::p2000t_io); + m_maincpu->set_vblank_int("screen", FUNC(p2000t_state::p2000_interrupt)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(40 * 12, 24 * 20) - MCFG_SCREEN_VISIBLE_AREA(0, 40 * 12 - 1, 0, 24 * 20 - 1) - MCFG_SCREEN_UPDATE_DEVICE("saa5050", saa5050_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(40 * 12, 24 * 20); + screen.set_visarea(0, 40 * 12 - 1, 0, 24 * 20 - 1); + screen.set_screen_update("saa5050", FUNC(saa5050_device::screen_update)); saa5050_device &saa5050(SAA5050(config, "saa5050", 6000000)); saa5050.d_cb().set(FUNC(p2000t_state::videoram_r)); @@ -242,28 +243,28 @@ MACHINE_CONFIG_START(p2000t_state::p2000t) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); +} /* Machine definition */ -MACHINE_CONFIG_START(p2000m_state::p2000m) +void p2000m_state::p2000m(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 2500000) - MCFG_DEVICE_PROGRAM_MAP(p2000m_mem) - MCFG_DEVICE_IO_MAP(p2000t_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", p2000m_state, p2000_interrupt) + Z80(config, m_maincpu, 2500000); + m_maincpu->set_addrmap(AS_PROGRAM, &p2000m_state::p2000m_mem); + m_maincpu->set_addrmap(AS_IO, &p2000m_state::p2000t_io); + m_maincpu->set_vblank_int("screen", FUNC(p2000m_state::p2000_interrupt)); config.m_minimum_quantum = attotime::from_hz(60); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(80 * 12, 24 * 20) - MCFG_SCREEN_VISIBLE_AREA(0, 80 * 12 - 1, 0, 24 * 20 - 1) - MCFG_SCREEN_UPDATE_DRIVER(p2000m_state, screen_update_p2000m) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(80 * 12, 24 * 20); + screen.set_visarea(0, 80 * 12 - 1, 0, 24 * 20 - 1); + screen.set_screen_update(FUNC(p2000m_state::screen_update_p2000m)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_p2000m); PALETTE(config, m_palette, FUNC(p2000m_state::p2000m_palette), 4); @@ -271,7 +272,7 @@ MACHINE_CONFIG_START(p2000m_state::p2000m) /* sound hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} ROM_START(p2000t) diff --git a/src/mame/drivers/p8k.cpp b/src/mame/drivers/p8k.cpp index ca0f224b832..79efb9f0aae 100644 --- a/src/mame/drivers/p8k.cpp +++ b/src/mame/drivers/p8k.cpp @@ -416,7 +416,8 @@ GFXDECODE_END ****************************************************************************/ -MACHINE_CONFIG_START(p8k_state::p8k) +void p8k_state::p8k(machine_config &config) +{ /* basic machine hardware */ z80_device& maincpu(Z80(config, "maincpu", 16_MHz_XTAL / 4)); maincpu.set_daisy_config(p8k_daisy_chain); @@ -481,17 +482,17 @@ MACHINE_CONFIG_START(p8k_state::p8k) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, 3250) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + BEEP(config, "beeper", 3250).add_route(ALL_OUTPUTS, "mono", 0.5); +} -MACHINE_CONFIG_START(p8k_state::p8k_16) +void p8k_state::p8k_16(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z8001, XTAL(4'000'000) ) - MCFG_DEVICE_PROGRAM_MAP(p8k_16_memmap) - MCFG_DEVICE_DATA_MAP(p8k_16_datamap) - MCFG_DEVICE_IO_MAP(p8k_16_iomap) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("p8k_16_daisy", p8k_16_daisy_device, irq_callback) + Z8001(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &p8k_state::p8k_16_memmap); + m_maincpu->set_addrmap(AS_DATA, &p8k_state::p8k_16_datamap); + m_maincpu->set_addrmap(AS_IO, &p8k_state::p8k_16_iomap); + m_maincpu->set_irq_acknowledge_callback("p8k_16_daisy", FUNC(p8k_16_daisy_device::irq_callback)); P8K_16_DAISY(config, m_daisy, 0); m_daisy->set_daisy_config(p8k_16_daisy_chain); @@ -531,9 +532,8 @@ MACHINE_CONFIG_START(p8k_state::p8k_16) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, 3250) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + BEEP(config, "beeper", 3250).add_route(ALL_OUTPUTS, "mono", 0.5); +} /* ROM definition */ ROM_START( p8000 ) diff --git a/src/mame/drivers/palestra.cpp b/src/mame/drivers/palestra.cpp index cac0d842f5f..a4c188675fd 100644 --- a/src/mame/drivers/palestra.cpp +++ b/src/mame/drivers/palestra.cpp @@ -72,8 +72,8 @@ INPUT_PORTS_END MACHINE_CONFIG_START(palestra_state::palestra) - MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) - MCFG_NETLIST_SETUP(palestra) + NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK); + m_maincpu->set_constructor(netlist_palestra); MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "videomix", fixedfreq_device, update_composite_monochrome, "fixfreq") diff --git a/src/mame/drivers/palmz22.cpp b/src/mame/drivers/palmz22.cpp index a0548582971..9afea7cc2c3 100644 --- a/src/mame/drivers/palmz22.cpp +++ b/src/mame/drivers/palmz22.cpp @@ -288,19 +288,19 @@ void palmz22_state::init_palmz22() { } -MACHINE_CONFIG_START(palmz22_state::palmz22) - MCFG_DEVICE_ADD(m_maincpu, ARM920T, 266000000) - MCFG_DEVICE_PROGRAM_MAP(map) - - MCFG_PALETTE_ADD("palette", 32768) +void palmz22_state::palmz22(machine_config &config) +{ + ARM920T(config, m_maincpu, 266000000); + m_maincpu->set_addrmap(AS_PROGRAM, &palmz22_state::map); - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(160, 160) - MCFG_SCREEN_VISIBLE_AREA(0, 160 - 1, 0, 160 - 1) + PALETTE(config, "palette").set_entries(32768); - MCFG_SCREEN_UPDATE_DEVICE("s3c2410", s3c2410_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(160, 160); + screen.set_visarea(0, 160 - 1, 0, 160 - 1); + screen.set_screen_update("s3c2410", FUNC(s3c2410_device::screen_update)); S3C2410(config, m_s3c2410, 12000000); m_s3c2410->set_palette_tag("palette"); @@ -317,7 +317,7 @@ MACHINE_CONFIG_START(palmz22_state::palmz22) NAND(config, m_nand, 0); m_nand->set_nand_type(nand_device::chip::K9F5608U0D_J); m_nand->rnb_wr_callback().set(m_s3c2410, FUNC(s3c2410_device::frnb_w)); -MACHINE_CONFIG_END +} static INPUT_PORTS_START( palmz22 ) PORT_START( "PENB" ) diff --git a/src/mame/drivers/pangofun.cpp b/src/mame/drivers/pangofun.cpp index fb0478d8aa8..cf2895b11bd 100644 --- a/src/mame/drivers/pangofun.cpp +++ b/src/mame/drivers/pangofun.cpp @@ -179,21 +179,21 @@ void pangofun_state::machine_start() { } -MACHINE_CONFIG_START(pangofun_state::pangofun) +void pangofun_state::pangofun(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I486, 25000000 ) /* I486 ?? Mhz (25 according to POST) */ - MCFG_DEVICE_PROGRAM_MAP(pcat_map) - MCFG_DEVICE_IO_MAP(pcat_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + I486(config, m_maincpu, 25000000); /* I486 ?? Mhz (25 according to POST) */ + m_maincpu->set_addrmap(AS_PROGRAM, &pangofun_state::pcat_map); + m_maincpu->set_addrmap(AS_IO, &pangofun_state::pcat_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); /* video hardware */ pcvideo_vga(config); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ + subdevice<screen_device>("screen")->set_refresh_hz(60); + subdevice<screen_device>("screen")->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ pcat_common(config); -MACHINE_CONFIG_END +} ROM_START(pangofun) diff --git a/src/mame/drivers/panicr.cpp b/src/mame/drivers/panicr.cpp index b80c1171430..b22d278d528 100644 --- a/src/mame/drivers/panicr.cpp +++ b/src/mame/drivers/panicr.cpp @@ -602,22 +602,22 @@ TIMER_DEVICE_CALLBACK_MEMBER(panicr_state::scanline) m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xc8/4); } -MACHINE_CONFIG_START(panicr_state::panicr) - MCFG_DEVICE_ADD("maincpu", V20,MASTER_CLOCK/2) /* Sony 8623h9 CXQ70116D-8 (V20 compatible) */ - MCFG_DEVICE_PROGRAM_MAP(panicr_map) +void panicr_state::panicr(machine_config &config) +{ + V20(config, m_maincpu, MASTER_CLOCK/2); /* Sony 8623h9 CXQ70116D-8 (V20 compatible) */ + m_maincpu->set_addrmap(AS_PROGRAM, &panicr_state::panicr_map); TIMER(config, "scantimer").configure_scanline(FUNC(panicr_state::scanline), "screen", 0, 1); - MCFG_DEVICE_ADD("t5182", T5182, 0) - + T5182(config, m_t5182, 0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) -// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(panicr_state, screen_update) - 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(32*8, 32*8); +// m_screen->set_visarea(0*8, 32*8-1, 0*8, 32*8-1); + m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(panicr_state::screen_update)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_panicr); PALETTE(config, m_palette, FUNC(panicr_state::panicr_palette), 256 * 4, 256); @@ -629,7 +629,7 @@ MACHINE_CONFIG_START(panicr_state::panicr) ymsnd.irq_handler().set(m_t5182, FUNC(t5182_device::ym2151_irq_handler)); ymsnd.add_route(0, "mono", 1.0); ymsnd.add_route(1, "mono", 1.0); -MACHINE_CONFIG_END +} ROM_START( panicr ) diff --git a/src/mame/drivers/paradise.cpp b/src/mame/drivers/paradise.cpp index bf93a4dd828..4c73aef6164 100644 --- a/src/mame/drivers/paradise.cpp +++ b/src/mame/drivers/paradise.cpp @@ -731,23 +731,23 @@ INTERRUPT_GEN_MEMBER(paradise_state::irq) m_maincpu->set_input_line(INPUT_LINE_IRQ0, HOLD_LINE); } -MACHINE_CONFIG_START(paradise_state::paradise) - +void paradise_state::paradise(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) /* Z8400B - 6mhz Verified */ - MCFG_DEVICE_PROGRAM_MAP(paradise_map) - MCFG_DEVICE_IO_MAP(paradise_io_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(paradise_state, irq, 4*54) /* No nmi routine, timing is confirmed (i.e. three timing irqs for each vblank irq */ + Z80(config, m_maincpu, XTAL(12'000'000)/2); /* Z8400B - 6mhz Verified */ + m_maincpu->set_addrmap(AS_PROGRAM, ¶dise_state::paradise_map); + m_maincpu->set_addrmap(AS_IO, ¶dise_state::paradise_io_map); + m_maincpu->set_periodic_int(FUNC(paradise_state::irq), attotime::from_hz(4*54)); /* No nmi routine, timing is confirmed (i.e. three timing irqs for each vblank irq */ /* video hardware */ - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_REFRESH_RATE(54) /* 54 verified */ - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* we're using PORT_VBLANK */) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-1-16) - MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_paradise) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(54); /* 54 verified */ + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* we're using PORT_VBLANK */); + m_screen->set_size(256, 256); + m_screen->set_visarea(0, 256-1, 0+16, 256-1-16); + m_screen->set_screen_update(FUNC(paradise_state::screen_update_paradise)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_paradise); PALETTE(config, m_palette).set_entries(0x800 + 16); @@ -756,34 +756,32 @@ MACHINE_CONFIG_START(paradise_state::paradise) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + OKIM6295(config, "oki1", XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50); /* verified on pcb */ - MCFG_DEVICE_ADD("oki2", OKIM6295, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_CONFIG_END + OKIM6295(config, m_oki2, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50); /* verified on pcb */ +} -MACHINE_CONFIG_START(paradise_state::tgtball) +void paradise_state::tgtball(machine_config &config) +{ paradise(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tgtball_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, ¶dise_state::tgtball_map); +} -MACHINE_CONFIG_START(paradise_state::torus) +void paradise_state::torus(machine_config &config) +{ paradise(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(torus_map) - MCFG_DEVICE_IO_MAP(torus_io_map) + m_maincpu->set_addrmap(AS_PROGRAM, ¶dise_state::torus_map); + m_maincpu->set_addrmap(AS_IO, ¶dise_state::torus_io_map); m_gfxdecode->set_info(gfx_torus); m_screen->set_screen_update(FUNC(paradise_state::screen_update_torus)); config.device_remove("oki2"); -MACHINE_CONFIG_END +} void paradise_state::madball(machine_config &config) { @@ -794,14 +792,14 @@ void paradise_state::madball(machine_config &config) m_screen->set_screen_update(FUNC(paradise_state::screen_update_madball)); } -MACHINE_CONFIG_START(paradise_state::penky) +void paradise_state::penky(machine_config &config) +{ paradise(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(torus_map) - MCFG_DEVICE_IO_MAP(torus_io_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, ¶dise_state::torus_map); + m_maincpu->set_addrmap(AS_IO, ¶dise_state::torus_io_map); +} void paradise_state::penkyi(machine_config &config) diff --git a/src/mame/drivers/paranoia.cpp b/src/mame/drivers/paranoia.cpp index 5c215799342..affe48db73e 100644 --- a/src/mame/drivers/paranoia.cpp +++ b/src/mame/drivers/paranoia.cpp @@ -165,7 +165,8 @@ WRITE_LINE_MEMBER(paranoia_state::i8155_timer_out) //logerror("Timer out %d\n", state); } -MACHINE_CONFIG_START(paranoia_state::paranoia) +void paranoia_state::paranoia(machine_config &config) +{ /* basic machine hardware */ H6280(config, m_maincpu, PCE_MAIN_CLOCK/3); m_maincpu->set_addrmap(AS_PROGRAM, ¶noia_state::pce_mem); @@ -177,13 +178,13 @@ MACHINE_CONFIG_START(paranoia_state::paranoia) config.m_minimum_quantum = attotime::from_hz(60); - MCFG_DEVICE_ADD("sub", I8085A, 18000000/3) - MCFG_DEVICE_PROGRAM_MAP(paranoia_8085_map) - MCFG_DEVICE_IO_MAP(paranoia_8085_io_map) + i8085a_cpu_device &sub(I8085A(config, "sub", 18000000/3)); + sub.set_addrmap(AS_PROGRAM, ¶noia_state::paranoia_8085_map); + sub.set_addrmap(AS_IO, ¶noia_state::paranoia_8085_io_map); - MCFG_DEVICE_ADD("sub2", Z80, 18000000/6) - MCFG_DEVICE_PROGRAM_MAP(paranoia_z80_map) - MCFG_DEVICE_IO_MAP(paranoia_z80_io_map) + z80_device &sub2(Z80(config, "sub2", 18000000/6)); + sub2.set_addrmap(AS_PROGRAM, ¶noia_state::paranoia_z80_map); + sub2.set_addrmap(AS_IO, ¶noia_state::paranoia_z80_io_map); i8155_device &i8155(I8155(config, "i8155", 1000000 /*?*/)); i8155.out_pa_callback().set(FUNC(paranoia_state::i8155_a_w)); @@ -192,10 +193,10 @@ MACHINE_CONFIG_START(paranoia_state::paranoia) i8155.out_to_callback().set(FUNC(paranoia_state::i8155_timer_out)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242) - MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update ) - MCFG_SCREEN_PALETTE("huc6260") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(PCE_MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242); + screen.set_screen_update(FUNC(pce_common_state::screen_update)); + screen.set_palette(m_huc6260); HUC6260(config, m_huc6260, PCE_MAIN_CLOCK); m_huc6260->next_pixel_data().set("huc6270", FUNC(huc6270_device::next_pixel)); @@ -209,7 +210,7 @@ MACHINE_CONFIG_START(paranoia_state::paranoia) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); -MACHINE_CONFIG_END +} ROM_START(paranoia) ROM_REGION( 0x40000, "maincpu", 0 ) diff --git a/src/mame/drivers/pasha2.cpp b/src/mame/drivers/pasha2.cpp index 9acbc634bb2..5885b1c6aba 100644 --- a/src/mame/drivers/pasha2.cpp +++ b/src/mame/drivers/pasha2.cpp @@ -398,41 +398,39 @@ void pasha2_state::machine_reset() m_vbuffer = 0; } -MACHINE_CONFIG_START(pasha2_state::pasha2) - +void pasha2_state::pasha2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", E116XT, 20000000*4) /* 4x internal multiplier */ - MCFG_DEVICE_PROGRAM_MAP(pasha2_map) - MCFG_DEVICE_IO_MAP(pasha2_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pasha2_state, irq0_line_hold) + E116XT(config, m_maincpu, 20000000*4); /* 4x internal multiplier */ + m_maincpu->set_addrmap(AS_PROGRAM, &pasha2_state::pasha2_map); + m_maincpu->set_addrmap(AS_IO, &pasha2_state::pasha2_io); + m_maincpu->set_vblank_int("screen", FUNC(pasha2_state::irq0_line_hold)); - MCFG_DEVICE_ADD("audiocpu", AT89C52, 12000000) /* clock from docs */ + AT89C52(config, m_audiocpu, 12000000); /* clock from docs */ /* TODO : ports are unimplemented; P0,P1,P2,P3 and Serial Port Used */ EEPROM_93C46_16BIT(config, "eeprom"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 512) - MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239) - MCFG_SCREEN_UPDATE_DRIVER(pasha2_state, screen_update_pasha2) - 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(512, 512); + screen.set_visarea(0, 383, 0, 239); + screen.set_screen_update(FUNC(pasha2_state::screen_update_pasha2)); + screen.set_palette(m_palette); PALETTE(config, m_palette).set_entries(0x200); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki1", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + OKIM6295(config, m_oki[0], 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("oki2", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + OKIM6295(config, m_oki[1], 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); //and ATMEL DREAM SAM9773 -MACHINE_CONFIG_END +} ROM_START( pasha2 ) ROM_REGION16_BE( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ diff --git a/src/mame/drivers/paso1600.cpp b/src/mame/drivers/paso1600.cpp index 010e921acaa..e01e46d17c4 100644 --- a/src/mame/drivers/paso1600.cpp +++ b/src/mame/drivers/paso1600.cpp @@ -304,25 +304,25 @@ WRITE8_MEMBER(paso1600_state::pc_dma_write_byte) space.write_byte(offset, data); } -MACHINE_CONFIG_START(paso1600_state::paso1600) +void paso1600_state::paso1600(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8086, 16000000/2) - MCFG_DEVICE_PROGRAM_MAP(paso1600_map) - MCFG_DEVICE_IO_MAP(paso1600_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb) + I8086(config, m_maincpu, 16000000/2); + m_maincpu->set_addrmap(AS_PROGRAM, &paso1600_state::paso1600_map); + m_maincpu->set_addrmap(AS_IO, &paso1600_state::paso1600_io); + m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(paso1600_state, screen_update_paso1600) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(paso1600_state::screen_update_paso1600)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_paso1600); - MCFG_PALETTE_ADD("palette", 8) -// MCFG_PALETTE_INIT(black_and_white) + PALETTE(config, m_palette).set_entries(8); /* Devices */ h46505_device &crtc(H46505(config, "crtc", 16000000/4)); /* unknown clock, hand tuned to get ~60 fps */ @@ -336,7 +336,7 @@ MACHINE_CONFIG_START(paso1600_state::paso1600) AM9517A(config, m_dma, 16000000/4); m_dma->in_memr_callback().set(FUNC(paso1600_state::pc_dma_read_byte)); m_dma->out_memw_callback().set(FUNC(paso1600_state::pc_dma_write_byte)); -MACHINE_CONFIG_END +} ROM_START( paso1600 ) ROM_REGION16_LE(0x2000,"ipl", 0) diff --git a/src/mame/drivers/pasopia.cpp b/src/mame/drivers/pasopia.cpp index 48d53cb5fd3..3ce53dbc8a5 100644 --- a/src/mame/drivers/pasopia.cpp +++ b/src/mame/drivers/pasopia.cpp @@ -286,7 +286,8 @@ We preset all banks here, so that bankswitching will incur no speed penalty. m_pio_timer->adjust(attotime::from_hz(50), 0, attotime::from_hz(50)); } -MACHINE_CONFIG_START(pasopia_state::pasopia) +void pasopia_state::pasopia(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, 4000000); @@ -295,14 +296,14 @@ MACHINE_CONFIG_START(pasopia_state::pasopia) m_maincpu->set_daisy_config(pasopia_daisy); /* 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(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DEVICE("crtc", h46505_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update("crtc", FUNC(h46505_device::screen_update)); GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia); - MCFG_PALETTE_ADD("palette", 8) + PALETTE(config, m_palette).set_entries(8); /* Devices */ H46505(config, m_crtc, XTAL(4'000'000)/4); /* unknown clock, hand tuned to get ~60 fps */ @@ -334,7 +335,7 @@ MACHINE_CONFIG_START(pasopia_state::pasopia) m_pio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_pio->out_pa_callback().set(FUNC(pasopia_state::mux_w)); m_pio->in_pb_callback().set(FUNC(pasopia_state::keyb_r)); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pasopia ) diff --git a/src/mame/drivers/pasopia7.cpp b/src/mame/drivers/pasopia7.cpp index 1cbdbc3f93d..4d39305960a 100644 --- a/src/mame/drivers/pasopia7.cpp +++ b/src/mame/drivers/pasopia7.cpp @@ -968,46 +968,50 @@ void pasopia7_state::p7_base(machine_config &config) FLOPPY_CONNECTOR(config, "fdc:1", pasopia7_floppies, "525hd", floppy_image_device::default_floppy_formats); } -MACHINE_CONFIG_START(pasopia7_state::p7_raster) +void pasopia7_state::p7_raster(machine_config &config) +{ p7_base(config); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 32-1) - 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(640, 480); + m_screen->set_visarea(0, 640-1, 0, 32-1); + m_screen->set_palette(m_palette); + m_screen->set_screen_update(FUNC(pasopia7_state::screen_update_pasopia7)); MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7) - MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7) + PALETTE(config, m_palette, palette_device::BRG_3BIT); GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia7); H46505(config, m_crtc, VDP_CLOCK); /* unknown clock, hand tuned to get ~60 fps */ - m_crtc->set_screen("screen"); + m_crtc->set_screen(m_screen); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pasopia7_state::p7_lcd) +void pasopia7_state::p7_lcd(machine_config &config) +{ p7_base(config); - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) + SCREEN(config, m_screen, SCREEN_TYPE_LCD); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(640, 480); + m_screen->set_visarea(0, 640-1, 0, 200-1); + m_screen->set_screen_update(FUNC(pasopia7_state::screen_update_pasopia7)); + m_screen->set_palette(m_palette); + MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7) - MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7) - MCFG_SCREEN_PALETTE(m_palette) PALETTE(config, m_palette, FUNC(pasopia7_state::p7_lcd_palette), 8); GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia7); H46505(config, m_crtc, LCD_CLOCK); /* unknown clock, hand tuned to get ~60 fps */ - m_crtc->set_screen("screen"); + m_crtc->set_screen(m_screen); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pasopia7 ) diff --git a/src/mame/drivers/pass.cpp b/src/mame/drivers/pass.cpp index 4bc1a2f511f..da1d72c0a06 100644 --- a/src/mame/drivers/pass.cpp +++ b/src/mame/drivers/pass.cpp @@ -241,26 +241,26 @@ static GFXDECODE_START( gfx_pass ) GFXDECODE_END /* todo : is this correct? */ -MACHINE_CONFIG_START(pass_state::pass) - +void pass_state::pass(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14318180/2 ) - MCFG_DEVICE_PROGRAM_MAP(pass_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pass_state, irq1_line_hold) /* all the same */ + M68000(config, m_maincpu, 14318180/2); + m_maincpu->set_addrmap(AS_PROGRAM, &pass_state::pass_map); + m_maincpu->set_vblank_int("screen", FUNC(pass_state::irq1_line_hold)); /* all the same */ - MCFG_DEVICE_ADD("audiocpu", Z80, 14318180/4 ) - MCFG_DEVICE_PROGRAM_MAP(pass_sound_map) - MCFG_DEVICE_IO_MAP(pass_sound_io_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(pass_state, irq0_line_hold, 60) /* probably not accurate, unknown timing and generation (ym2203 sound chip?). */ + z80_device &audiocpu(Z80(config, "audiocpu", 14318180/4)); + audiocpu.set_addrmap(AS_PROGRAM, &pass_state::pass_sound_map); + audiocpu.set_addrmap(AS_IO, &pass_state::pass_sound_io_map); + audiocpu.set_periodic_int(FUNC(pass_state::irq0_line_hold), attotime::from_hz(60)); /* probably not accurate, unknown timing and generation (ym2203 sound chip?). */ /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pass_state, screen_update_pass) - 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(64*8, 32*8); + screen.set_visarea(8*8, 48*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(pass_state::screen_update_pass)); + screen.set_palette("palette"); PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x200); GFXDECODE(config, m_gfxdecode, "palette", gfx_pass); @@ -271,12 +271,10 @@ MACHINE_CONFIG_START(pass_state::pass) GENERIC_LATCH_8(config, "soundlatch"); - MCFG_DEVICE_ADD("ymsnd", YM2203, 14318180/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) + YM2203(config, "ymsnd", 14318180/4).add_route(ALL_OUTPUTS, "mono", 0.60); - MCFG_DEVICE_ADD("oki", OKIM6295, 792000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) -MACHINE_CONFIG_END + OKIM6295(config, "oki", 792000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.60); // clock frequency & pin 7 not verified +} ROM_START( pass ) diff --git a/src/mame/drivers/pastelg.cpp b/src/mame/drivers/pastelg.cpp index 3ec950a89e9..5a253adb99d 100644 --- a/src/mame/drivers/pastelg.cpp +++ b/src/mame/drivers/pastelg.cpp @@ -397,26 +397,26 @@ static INPUT_PORTS_START( galds ) INPUT_PORTS_END -MACHINE_CONFIG_START(pastelg_state::pastelg) - +void pastelg_state::pastelg(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 19968000/4) /* unknown divider, galds definitely relies on this for correct voice pitch */ - MCFG_DEVICE_PROGRAM_MAP(pastelg_map) - MCFG_DEVICE_IO_MAP(pastelg_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pastelg_state, irq0_line_assert) // nmiclock not written, chip is 1411M1 instead of 1413M3 + Z80(config, m_maincpu, 19968000/4); /* unknown divider, galds definitely relies on this for correct voice pitch */ + m_maincpu->set_addrmap(AS_PROGRAM, &pastelg_state::pastelg_map); + m_maincpu->set_addrmap(AS_IO, &pastelg_state::pastelg_io_map); + m_maincpu->set_vblank_int("screen", FUNC(pastelg_state::irq0_line_assert)); // nmiclock not written, chip is 1411M1 instead of 1413M3 NB1413M3(config, m_nb1413m3, 0, NB1413M3_PASTELG); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg) - 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(256, 256); + m_screen->set_visarea(0, 256-1, 16, 240-1); + m_screen->set_screen_update(FUNC(pastelg_state::screen_update_pastelg)); + m_screen->set_palette("palette"); PALETTE(config, "palette", FUNC(pastelg_state::pastelg_palette), 32); @@ -432,7 +432,7 @@ MACHINE_CONFIG_START(pastelg_state::pastelg) voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} /* @@ -457,25 +457,25 @@ Note */ -MACHINE_CONFIG_START(pastelg_state::threeds) - +void pastelg_state::threeds(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 19968000/4) /* unknown divider, galds definitely relies on this for correct voice pitch */ - MCFG_DEVICE_PROGRAM_MAP(pastelg_map) - MCFG_DEVICE_IO_MAP(threeds_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pastelg_state, irq0_line_assert) + Z80(config, m_maincpu, 19968000/4); /* unknown divider, galds definitely relies on this for correct voice pitch */ + m_maincpu->set_addrmap(AS_PROGRAM, &pastelg_state::pastelg_map); + m_maincpu->set_addrmap(AS_IO, &pastelg_state::threeds_io_map); + m_maincpu->set_vblank_int("screen", FUNC(pastelg_state::irq0_line_assert)); NB1413M3(config, m_nb1413m3, 0); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg) - 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(256, 256); + m_screen->set_visarea(0, 256-1, 16, 240-1); + m_screen->set_screen_update(FUNC(pastelg_state::screen_update_pastelg)); + m_screen->set_palette("palette"); PALETTE(config, "palette", FUNC(pastelg_state::pastelg_palette), 32); @@ -491,7 +491,7 @@ MACHINE_CONFIG_START(pastelg_state::threeds) voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} ROM_START( pastelg ) diff --git a/src/mame/drivers/patapata.cpp b/src/mame/drivers/patapata.cpp index de68c9d5c9a..9638f33ef2b 100644 --- a/src/mame/drivers/patapata.cpp +++ b/src/mame/drivers/patapata.cpp @@ -285,37 +285,36 @@ TIMER_DEVICE_CALLBACK_MEMBER(patapata_state::scanline) if (param==128) m_maincpu->set_input_line(1, HOLD_LINE); } -MACHINE_CONFIG_START(patapata_state::patapata) +void patapata_state::patapata(machine_config &config) +{ + M68000(config, m_maincpu, 16_MHz_XTAL); // 16 MHz XTAL, 16 MHz CPU + m_maincpu->set_addrmap(AS_PROGRAM, &patapata_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(patapata_state::irq4_line_hold)); // 1 + 4 valid? (4 main VBL) - MCFG_DEVICE_ADD("maincpu", M68000, 16_MHz_XTAL) // 16 MHz XTAL, 16 MHz CPU - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", patapata_state, irq4_line_hold) // 1 + 4 valid? (4 main VBL) TIMER(config, "scantimer").configure_scanline(FUNC(patapata_state::scanline), "screen", 0, 1); GFXDECODE(config, m_gfxdecode, "palette", gfx_patapata); - 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, 60*8-1, 0*8, 44*8-1) - MCFG_SCREEN_UPDATE_DRIVER(patapata_state, screen_update) - 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(64*8, 64*8); + screen.set_visarea(0*8, 60*8-1, 0*8, 44*8-1); + screen.set_screen_update(FUNC(patapata_state::screen_update)); + screen.set_palette("palette"); PALETTE(config, "palette").set_format(palette_device::RRRRGGGGBBBBRGBx, 0x600/2); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki1", OKIM6295, 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW) // not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) + OKIM6295(config, "oki1", 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.40); // not verified - MCFG_DEVICE_ADD("oki2", OKIM6295, 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW) // not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) + OKIM6295(config, "oki2", 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.40); // not verified nmk112_device &nmk112(NMK112(config, "nmk112", 0)); // or 212? difficult to read (maybe 212 is 2* 112?) nmk112.set_rom0_tag("oki1"); nmk112.set_rom1_tag("oki2"); -MACHINE_CONFIG_END +} ROM_START( patapata ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ diff --git a/src/mame/drivers/pbaction.cpp b/src/mame/drivers/pbaction.cpp index 0e12ebdd703..e327f926ff3 100644 --- a/src/mame/drivers/pbaction.cpp +++ b/src/mame/drivers/pbaction.cpp @@ -448,8 +448,8 @@ static const z80_daisy_config daisy_chain[] = { nullptr } }; -MACHINE_CONFIG_START(pbaction_state::pbaction) - +void pbaction_state::pbaction(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, 4_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &pbaction_state::pbaction_map); @@ -463,14 +463,14 @@ MACHINE_CONFIG_START(pbaction_state::pbaction) m_ctc->intr_callback().set_inputline(m_audiocpu, 0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pbaction_state, screen_update_pbaction) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pbaction_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(pbaction_state::screen_update_pbaction)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(pbaction_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pbaction); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 256); @@ -483,7 +483,7 @@ MACHINE_CONFIG_START(pbaction_state::pbaction) AY8910(config, "ay1", 12_MHz_XTAL/8).add_route(ALL_OUTPUTS, "mono", 0.25); AY8910(config, "ay2", 12_MHz_XTAL/8).add_route(ALL_OUTPUTS, "mono", 0.25); AY8910(config, "ay3", 12_MHz_XTAL/8).add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} void pbaction_state::pbactionx(machine_config &config) { diff --git a/src/mame/drivers/pc.cpp b/src/mame/drivers/pc.cpp index 2d8b7476bc4..64e490b327e 100644 --- a/src/mame/drivers/pc.cpp +++ b/src/mame/drivers/pc.cpp @@ -208,11 +208,11 @@ MACHINE_CONFIG_START(pc_state::pccga) mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga)); // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false) - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false); + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false); + ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, nullptr, false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -254,13 +254,12 @@ Expansion: 8087 FPU ******************************************************************************/ -MACHINE_CONFIG_START(pc_state::ataripc1) +void pc_state::ataripc1(machine_config &config) +{ pccga(config); - MCFG_DEVICE_MODIFY("isa1") - MCFG_SLOT_DEFAULT_OPTION("ega") - MCFG_DEVICE_MODIFY("isa2") - MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_single_360K) -MACHINE_CONFIG_END + subdevice<isa8_slot_device>("isa1")->set_default_option("ega"); + subdevice<isa8_slot_device>("isa2")->set_option_machine_config("fdc_xt", cfg_single_360K); +} ROM_START ( ataripc1 ) ROM_REGION(0x10000,"bios", 0) @@ -356,13 +355,14 @@ ToDo: The ROM for the CGA is available (see ROM section) ******************************************************************************/ -MACHINE_CONFIG_START(pc_state::mpc1600) +void pc_state::mpc1600(machine_config &config) +{ pccga(config); - MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa7", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa8", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa7", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa8", 0, "mb:isa", pc_isa8_cards, nullptr, false); subdevice<ram_device>(RAM_TAG)->set_default_size("128K").set_extra_options("256K, 512K, 640K"); -MACHINE_CONFIG_END +} ROM_START( mpc1600 ) ROM_REGION(0x10000,"bios", 0) @@ -408,12 +408,12 @@ CPU: ******************************************************************************/ -MACHINE_CONFIG_START(pc_state::comport) +void pc_state::comport(machine_config &config) +{ pccga(config); - MCFG_DEVICE_MODIFY("isa1") - MCFG_SLOT_DEFAULT_OPTION("ega") + subdevice<isa8_slot_device>("isa1")->set_default_option("ega"); subdevice<ram_device>(RAM_TAG)->set_default_size("128K").set_extra_options("256K, 512K, 640K"); -MACHINE_CONFIG_END +} ROM_START( comport ) ROM_REGION(0x10000, "bios", 0) @@ -446,11 +446,11 @@ Expansion: Expansion box, with 5 ISA slots and space for a 5.25" drive and a har ******************************************************************************/ -MACHINE_CONFIG_START(pc_state::dgone) +void pc_state::dgone(machine_config &config) +{ pccga(config); - MCFG_DEVICE_MODIFY("isa2") - MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_dual_720K) -MACHINE_CONFIG_END + subdevice<isa8_slot_device>("isa2")->set_option_machine_config("fdc_xt", cfg_dual_720K); +} ROM_START( dgone ) ROM_REGION(0x10000,"bios", 0) @@ -558,9 +558,8 @@ MACHINE_CONFIG_START(pc_state::epc) pccga(config); config.device_remove("maincpu"); MCFG_CPU_PC(pc8, epc, I8088, 4772720) - MCFG_DEVICE_MODIFY("isa1") - MCFG_SLOT_DEFAULT_OPTION("ega") - MCFG_DEVICE_ADD("i8251", I8251, 0) // clock? + subdevice<isa8_slot_device>("isa1")->set_default_option("ega"); + I8251(config, "i8251", 0); // clock? MACHINE_CONFIG_END ROM_START( epc ) @@ -623,10 +622,10 @@ MACHINE_CONFIG_START(pc_state::ibm5550) mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga)); // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false) - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false); + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -681,20 +680,16 @@ Misc: A Kaypro 16/2 is a configuration without harddisk but with two floppy disk ******************************************************************************/ -MACHINE_CONFIG_START(pc_state::kaypro16) +void pc_state::kaypro16(machine_config &config) +{ pccga(config); - MCFG_DEVICE_MODIFY("isa1") - MCFG_SLOT_FIXED(true) - MCFG_DEVICE_MODIFY("isa2") - MCFG_SLOT_FIXED(true) - MCFG_DEVICE_MODIFY("isa3") - MCFG_SLOT_FIXED(true) - MCFG_DEVICE_MODIFY("isa4") - MCFG_SLOT_FIXED(true) - MCFG_DEVICE_MODIFY("isa5") - MCFG_SLOT_DEFAULT_OPTION(nullptr) + subdevice<isa8_slot_device>("isa1")->set_fixed(true); + subdevice<isa8_slot_device>("isa2")->set_fixed(true); + subdevice<isa8_slot_device>("isa3")->set_fixed(true); + subdevice<isa8_slot_device>("isa4")->set_fixed(true); + subdevice<isa8_slot_device>("isa5")->set_default_option(nullptr); subdevice<ram_device>(RAM_TAG)->set_default_size("256K").set_extra_options("512K, 640K"); -MACHINE_CONFIG_END +} ROM_START( kaypro16 ) ROM_REGION(0x10000, "bios", 0) @@ -706,11 +701,11 @@ ROM_END ******************************************************************************/ // MK-88 -MACHINE_CONFIG_START(pc_state::mk88) +void pc_state::mk88(machine_config &config) +{ poisk2(config); - MCFG_DEVICE_MODIFY("isa1") - MCFG_SLOT_DEFAULT_OPTION("cga_ec1841") -MACHINE_CONFIG_END + subdevice<isa8_slot_device>("isa1")->set_default_option("cga_ec1841"); +} // MK-88 ROM_START( mk88 ) @@ -751,14 +746,15 @@ Options: 8087 FPU, K101 memory upgrade in 64K steps, 1.2MB floppy and controller ******************************************************************************/ -MACHINE_CONFIG_START(pc_state::ncrpc4i) +void pc_state::ncrpc4i(machine_config & config) +{ pccga(config); //MCFG_DEVICE_MODIFY("mb:isa") - MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa7", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa7", 0, "mb:isa", pc_isa8_cards, nullptr, false); subdevice<ram_device>(RAM_TAG)->set_default_size("640K").set_extra_options("64K, 128K, 256K, 512K"); -MACHINE_CONFIG_END +} ROM_START( ncrpc4i ) ROM_REGION(0x10000,"bios", 0) @@ -789,14 +785,14 @@ static DEVICE_INPUT_DEFAULTS_START( m15 ) DEVICE_INPUT_DEFAULTS("DSW0", 0x01, 0x00) DEVICE_INPUT_DEFAULTS_END -MACHINE_CONFIG_START(pc_state::m15) +void pc_state::m15(machine_config &config) +{ pccga(config); subdevice<ibm5160_mb_device>("mb")->set_input_default(DEVICE_INPUT_DEFAULTS_NAME(m15)); - MCFG_DEVICE_MODIFY("isa2") - MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_dual_720K) + subdevice<isa8_slot_device>("isa2")->set_option_machine_config("fdc_xt", cfg_dual_720K); subdevice<ram_device>(RAM_TAG)->set_default_size("448K").set_extra_options("16K, 160K, 304K"); -MACHINE_CONFIG_END +} ROM_START( olivm15 ) ROM_REGION(0x10000,"bios", 0) @@ -825,12 +821,9 @@ MACHINE_CONFIG_START(pc_state::olytext30) pccga(config); config.device_remove("maincpu"); MCFG_CPU_PC(pc8, pc8, V20, XTAL(14'318'181)/3) /* 4,77 MHz */ - MCFG_DEVICE_MODIFY("isa2") - MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_single_720K) - MCFG_DEVICE_MODIFY("isa3") - MCFG_SLOT_DEFAULT_OPTION("") - MCFG_DEVICE_MODIFY("isa5") - MCFG_SLOT_DEFAULT_OPTION("hdc") + subdevice<isa8_slot_device>("isa2")->set_option_machine_config("fdc_xt", cfg_single_720K); + subdevice<isa8_slot_device>("isa3")->set_default_option(""); + subdevice<isa8_slot_device>("isa5")->set_default_option("hdc"); subdevice<ram_device>(RAM_TAG)->set_default_size("768K"); MACHINE_CONFIG_END @@ -852,10 +845,10 @@ MACHINE_CONFIG_START(pc_state::poisk2) mb.set_cputag(m_maincpu); mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga_poisk2", false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga_poisk2", false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -944,12 +937,10 @@ MACHINE_CONFIG_START(pc_state::iskr3104) mb.set_cputag(m_maincpu); mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(iskr3104)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "ega", false) // FIXME: determine ISA bus clock - MCFG_SLOT_OPTION_DEFAULT_BIOS("ega", "iskr3104") - - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "ega", false).set_option_default_bios("ega", "iskr3104"); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -1022,12 +1013,12 @@ MACHINE_CONFIG_START(pc_state::siemens) mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(siemens)); // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "hercules", false) - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "hdc", false) - MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "hercules", false); + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false); + ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, "hdc", false); + ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -1066,14 +1057,14 @@ MACHINE_CONFIG_START(pc_state::laser_turbo_xt) mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga)); // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false) - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) // Multi I/O card (includes FDC) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa7", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa8", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false); + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "com", false); // Multi I/O card (includes FDC) + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa7", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa8", 0, "mb:isa", pc_isa8_cards, nullptr, false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -1145,11 +1136,10 @@ MACHINE_CONFIG_START(pc_state::zenith) mb.set_cputag(m_maincpu); mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_dual_720K) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false).set_option_machine_config("fdc_xt", cfg_dual_720K); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); diff --git a/src/mame/drivers/pc100.cpp b/src/mame/drivers/pc100.cpp index 0ce792797a5..c4c446ed822 100644 --- a/src/mame/drivers/pc100.cpp +++ b/src/mame/drivers/pc100.cpp @@ -634,7 +634,8 @@ static void pc100_floppies(device_slot_interface &device) #define MASTER_CLOCK 6988800 -MACHINE_CONFIG_START(pc100_state::pc100) +void pc100_state::pc100(machine_config &config) +{ /* basic machine hardware */ I8086(config, m_maincpu, MASTER_CLOCK); m_maincpu->set_addrmap(AS_PROGRAM, &pc100_state::pc100_map); @@ -681,11 +682,11 @@ MACHINE_CONFIG_START(pc100_state::pc100) FLOPPY_CONNECTOR(config, "upd765:1", pc100_floppies, "525dd", floppy_image_device::default_floppy_formats); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); /* TODO: Unknown Pixel Clock and CRTC is dynamic */ - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*4, 1024, 0, 768, 264*2, 0, 512) - MCFG_SCREEN_UPDATE_DRIVER(pc100_state, screen_update_pc100) - MCFG_SCREEN_PALETTE("palette") + screen.set_raw(MASTER_CLOCK*4, 1024, 0, 768, 264*2, 0, 512); + screen.set_screen_update(FUNC(pc100_state::screen_update_pc100)); + screen.set_palette(m_palette); GFXDECODE(config, "gfxdecode", m_palette, gfx_pc100); PALETTE(config, m_palette).set_format(palette_device::xBGR_333, 16); @@ -693,7 +694,7 @@ MACHINE_CONFIG_START(pc100_state::pc100) SPEAKER(config, "mono").front_center(); BEEP(config, m_beeper, 2400).add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pc100 ) diff --git a/src/mame/drivers/pc1512.cpp b/src/mame/drivers/pc1512.cpp index 24680ba8376..5fab9bdacf8 100644 --- a/src/mame/drivers/pc1512.cpp +++ b/src/mame/drivers/pc1512.cpp @@ -1152,14 +1152,15 @@ void pc1640_state::machine_start() //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( pc1512 ) +// machine_config( pc1512 ) //------------------------------------------------- -MACHINE_CONFIG_START(pc1512_state::pc1512) - MCFG_DEVICE_ADD(I8086_TAG, I8086, 24_MHz_XTAL / 3) - MCFG_DEVICE_PROGRAM_MAP(pc1512_mem) - MCFG_DEVICE_IO_MAP(pc1512_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(I8259A2_TAG, pic8259_device, inta_cb) +void pc1512_state::pc1512(machine_config &config) +{ + I8086(config, m_maincpu, 24_MHz_XTAL / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &pc1512_state::pc1512_mem); + m_maincpu->set_addrmap(AS_IO, &pc1512_state::pc1512_io); + m_maincpu->set_irq_acknowledge_callback(I8259A2_TAG, FUNC(pic8259_device::inta_cb)); // video pc1512_video(config); @@ -1252,9 +1253,9 @@ MACHINE_CONFIG_START(pc1512_state::pc1512) isa.drq1_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq1_w)); isa.drq2_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq2_w)); isa.drq3_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq3_w)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) // FIXME: determine ISA clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); // FIXME: determine ISA clock + ISA8_SLOT(config, "isa2", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa3", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); // internal ram RAM(config, RAM_TAG).set_default_size("512K").set_extra_options("544K,576K,608K,640K"); @@ -1262,41 +1263,42 @@ MACHINE_CONFIG_START(pc1512_state::pc1512) // software list SOFTWARE_LIST(config, "flop_list").set_original("pc1512_flop"); SOFTWARE_LIST(config, "hdd_list").set_original("pc1512_hdd"); -MACHINE_CONFIG_END +} //------------------------------------------------- -// MACHINE_CONFIG( pc1512dd ) +// machine_config( pc1512dd ) //------------------------------------------------- -MACHINE_CONFIG_START(pc1512_state::pc1512dd) +void pc1512_state::pc1512dd(machine_config &config) +{ pc1512(config); - MCFG_DEVICE_MODIFY(PC_FDC_XT_TAG ":1") - MCFG_SLOT_DEFAULT_OPTION("525dd") -MACHINE_CONFIG_END + subdevice<floppy_connector>(PC_FDC_XT_TAG ":1")->set_default_option("525dd"); +} //------------------------------------------------- -// MACHINE_CONFIG( pc1512hd ) +// machine_config( pc1512hd ) //------------------------------------------------- -MACHINE_CONFIG_START(pc1512_state::pc1512hd) +void pc1512_state::pc1512hd(machine_config &config) +{ pc1512(config); - MCFG_DEVICE_MODIFY("isa1") - //MCFG_SLOT_DEFAULT_OPTION("wdxt_gen") - MCFG_SLOT_DEFAULT_OPTION("hdc") -MACHINE_CONFIG_END + //subdevice<isa8_slot_device>("isa1")->set_default_option("wdxt_gen"); + subdevice<isa8_slot_device>("isa1")->set_default_option("hdc"); +} //------------------------------------------------- -// MACHINE_CONFIG( pc1640 ) +// machine_config( pc1640 ) //------------------------------------------------- -MACHINE_CONFIG_START(pc1640_state::pc1640) - MCFG_DEVICE_ADD(I8086_TAG, I8086, 24_MHz_XTAL / 3) - MCFG_DEVICE_PROGRAM_MAP(pc1640_mem) - MCFG_DEVICE_IO_MAP(pc1640_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(I8259A2_TAG, pic8259_device, inta_cb) +void pc1640_state::pc1640(machine_config &config) +{ + I8086(config, m_maincpu, 24_MHz_XTAL / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &pc1640_state::pc1640_mem); + m_maincpu->set_addrmap(AS_IO, &pc1640_state::pc1640_io); + m_maincpu->set_irq_acknowledge_callback(I8259A2_TAG, FUNC(pic8259_device::inta_cb)); // sound SPEAKER(config, "mono").front_center(); @@ -1386,11 +1388,11 @@ MACHINE_CONFIG_START(pc1640_state::pc1640) isa.drq1_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq1_w)); isa.drq2_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq2_w)); isa.drq3_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq3_w)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, ISA_BUS_TAG, pc1640_isa8_cards, "iga", false) + ISA8_SLOT(config, "isa1", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa3", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa4", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa5", 0, ISA_BUS_TAG, pc1640_isa8_cards, "iga", false); // internal ram RAM(config, RAM_TAG).set_default_size("640K"); @@ -1398,30 +1400,30 @@ MACHINE_CONFIG_START(pc1640_state::pc1640) // software list SOFTWARE_LIST(config, "flop_list").set_original("pc1640_flop"); SOFTWARE_LIST(config, "hdd_list").set_original("pc1640_hdd"); -MACHINE_CONFIG_END +} //------------------------------------------------- -// MACHINE_CONFIG( pc1640dd ) +// machine_config( pc1640dd ) //------------------------------------------------- -MACHINE_CONFIG_START(pc1640_state::pc1640dd) +void pc1640_state::pc1640dd(machine_config &config) +{ pc1640(config); - MCFG_DEVICE_MODIFY(PC_FDC_XT_TAG ":1") - MCFG_SLOT_DEFAULT_OPTION("525dd") -MACHINE_CONFIG_END + subdevice<floppy_connector>(PC_FDC_XT_TAG ":1")->set_default_option("525dd"); +} //------------------------------------------------- -// MACHINE_CONFIG( pc1640hd ) +// machine_config( pc1640hd ) //------------------------------------------------- -MACHINE_CONFIG_START(pc1640_state::pc1640hd) +void pc1640_state::pc1640hd(machine_config &config) +{ pc1640(config); - MCFG_DEVICE_MODIFY("isa1") - //MCFG_SLOT_DEFAULT_OPTION("wdxt_gen") - MCFG_SLOT_DEFAULT_OPTION("hdc") -MACHINE_CONFIG_END + //subdevice<isa8_slot_device>("isa1")->set_default_option("wdxt_gen"); + subdevice<isa8_slot_device>("isa1")->set_default_option("hdc"); +} diff --git a/src/mame/drivers/pc2000.cpp b/src/mame/drivers/pc2000.cpp index 0cf410cf845..9f111f5e8b3 100644 --- a/src/mame/drivers/pc2000.cpp +++ b/src/mame/drivers/pc2000.cpp @@ -957,7 +957,7 @@ void gl3000s_state::gl3000s(machine_config &config) SOFTWARE_LIST(config, "gl2000_cart").set_compatible("gl2000"); SOFTWARE_LIST(config, "misterx_cart").set_compatible("misterx"); -MACHINE_CONFIG_END +} void gl4004_state::gl4000(machine_config &config) { diff --git a/src/mame/drivers/pc4.cpp b/src/mame/drivers/pc4.cpp index a2661b1aa1c..ffdfd572770 100644 --- a/src/mame/drivers/pc4.cpp +++ b/src/mame/drivers/pc4.cpp @@ -217,19 +217,20 @@ void pc4_state::machine_start() m_blink = 0; } -MACHINE_CONFIG_START(pc4_state::pc4) +void pc4_state::pc4(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(pc4_mem) - MCFG_DEVICE_IO_MAP(pc4_io) + Z80(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &pc4_state::pc4_mem); + m_maincpu->set_addrmap(AS_IO, &pc4_state::pc4_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(72) - MCFG_SCREEN_UPDATE_DRIVER(pc4_state, screen_update) - MCFG_SCREEN_SIZE(240, 36) - MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 36-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(72); + screen.set_screen_update(FUNC(pc4_state::screen_update)); + screen.set_size(240, 36); + screen.set_visarea(0, 240-1, 0, 36-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pc4_state::pc4_palette), 2); GFXDECODE(config, "gfxdecode", "palette", gfx_pc4); @@ -239,7 +240,7 @@ MACHINE_CONFIG_START(pc4_state::pc4) BEEP(config, m_beep, 3250).add_route(ALL_OUTPUTS, "mono", 1.00); RP5C01(config, "rtc", XTAL(32'768)); -MACHINE_CONFIG_END +} ROM_START( pc4 ) ROM_REGION( 0x20000, "maincpu", 0 ) diff --git a/src/mame/drivers/pc6001.cpp b/src/mame/drivers/pc6001.cpp index 3219c1e5f70..38fcea1268d 100644 --- a/src/mame/drivers/pc6001.cpp +++ b/src/mame/drivers/pc6001.cpp @@ -1470,25 +1470,26 @@ GFXDECODE_END #define PC6001_MAIN_CLOCK 7987200 -MACHINE_CONFIG_START(pc6001_state::pc6001) +void pc6001_state::pc6001(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, PC6001_MAIN_CLOCK / 2) // PD 780C-1, ~4 Mhz - MCFG_DEVICE_PROGRAM_MAP(pc6001_map) - MCFG_DEVICE_IO_MAP(pc6001_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc6001_state, vrtc_irq) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc6001_state, irq_callback) + Z80(config, m_maincpu, PC6001_MAIN_CLOCK / 2); // PD 780C-1, ~4 Mhz + m_maincpu->set_addrmap(AS_PROGRAM, &pc6001_state::pc6001_map); + m_maincpu->set_addrmap(AS_IO, &pc6001_state::pc6001_io); + m_maincpu->set_vblank_int("screen", FUNC(pc6001_state::vrtc_irq)); + m_maincpu->set_irq_acknowledge_callback(FUNC(pc6001_state::irq_callback)); -// MCFG_DEVICE_ADD("subcpu", I8049, 7987200) +// I8049(config, "subcpu", 7987200); GFXDECODE(config, "gfxdecode", m_palette, gfx_pc6001m2); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_DRIVER(pc6001_state, screen_update_pc6001) - MCFG_SCREEN_SIZE(320, 25+192+26) - MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_screen_update(FUNC(pc6001_state::screen_update_pc6001)); + m_screen->set_size(320, 25+192+26); + m_screen->set_visarea(0, 319, 0, 239); + m_screen->set_palette(m_palette); PALETTE(config, m_palette, FUNC(pc6001_state::pc6001_palette), 16+4); @@ -1520,59 +1521,57 @@ MACHINE_CONFIG_START(pc6001_state::pc6001) /* TODO: accurate timing on this */ TIMER(config, "keyboard_timer").configure_periodic(FUNC(pc6001_state::keyboard_callback), attotime::from_hz(250)); TIMER(config, "cassette_timer").configure_periodic(FUNC(pc6001_state::cassette_callback), attotime::from_hz(1200/12)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pc6001mk2_state::pc6001mk2) +void pc6001mk2_state::pc6001mk2(machine_config &config) +{ pc6001(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(pc6001mk2_map) - MCFG_DEVICE_IO_MAP(pc6001mk2_io) + m_maincpu->set_addrmap(AS_PROGRAM, &pc6001mk2_state::pc6001mk2_map); + m_maincpu->set_addrmap(AS_IO, &pc6001mk2_state::pc6001mk2_io); // MCFG_MACHINE_RESET_OVERRIDE(pc6001mk2_state,pc6001mk2) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(pc6001mk2_state, screen_update_pc6001mk2) + m_screen->set_screen_update(FUNC(pc6001mk2_state::screen_update_pc6001mk2)); m_palette->set_entries(16+16); m_palette->set_init(FUNC(pc6001mk2_state::pc6001mk2_palette)); subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_pc6001m2); - MCFG_DEVICE_ADD("upd7752", UPD7752, PC6001_MAIN_CLOCK/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - -MACHINE_CONFIG_END + UPD7752(config, "upd7752", PC6001_MAIN_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 1.00); +} -MACHINE_CONFIG_START(pc6601_state::pc6601) +void pc6601_state::pc6601(machine_config &config) +{ pc6001mk2(config); /* basic machine hardware */ - MCFG_DEVICE_REPLACE("maincpu", Z80, PC6001_MAIN_CLOCK / 2) - MCFG_DEVICE_PROGRAM_MAP(pc6001mk2_map) - MCFG_DEVICE_IO_MAP(pc6601_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc6001_state, vrtc_irq) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc6001_state, irq_callback) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(pc6001sr_state::pc6001sr) + Z80(config.replace(), m_maincpu, PC6001_MAIN_CLOCK / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &pc6601_state::pc6001mk2_map); + m_maincpu->set_addrmap(AS_IO, &pc6601_state::pc6601_io); + m_maincpu->set_vblank_int("screen", FUNC(pc6001_state::vrtc_irq)); + m_maincpu->set_irq_acknowledge_callback(FUNC(pc6001_state::irq_callback)); +} + +void pc6001sr_state::pc6001sr(machine_config &config) +{ pc6001mk2(config); /* basic machine hardware */ //*Yes*, PC-6001 SR Z80 CPU is actually slower than older models (better waitstates tho?) - MCFG_DEVICE_REPLACE("maincpu", Z80, XTAL(3'579'545)) - MCFG_DEVICE_PROGRAM_MAP(pc6001sr_map) - MCFG_DEVICE_IO_MAP(pc6001sr_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc6001sr_state, sr_vrtc_irq) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc6001_state, irq_callback) + Z80(config.replace(), m_maincpu, XTAL(3'579'545)); + m_maincpu->set_addrmap(AS_PROGRAM, &pc6001sr_state::pc6001sr_map); + m_maincpu->set_addrmap(AS_IO, &pc6001sr_state::pc6001sr_io); + m_maincpu->set_vblank_int("screen", FUNC(pc6001sr_state::sr_vrtc_irq)); + m_maincpu->set_irq_acknowledge_callback(FUNC(pc6001_state::irq_callback)); // MCFG_MACHINE_RESET_OVERRIDE(pc6001sr_state,pc6001sr) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(pc6001sr_state, screen_update_pc6001sr) -MACHINE_CONFIG_END + m_screen->set_screen_update(FUNC(pc6001sr_state::screen_update_pc6001sr)); +} /* ROM definition */ ROM_START( pc6001 ) diff --git a/src/mame/drivers/pc8001.cpp b/src/mame/drivers/pc8001.cpp index a56ef6c7d7b..c13e1f13755 100644 --- a/src/mame/drivers/pc8001.cpp +++ b/src/mame/drivers/pc8001.cpp @@ -479,23 +479,23 @@ void pc8001_state::machine_start() /* Machine Drivers */ -MACHINE_CONFIG_START(pc8001_state::pc8001) +void pc8001_state::pc8001(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(pc8001_mem) - MCFG_DEVICE_IO_MAP(pc8001_io) + Z80(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &pc8001_state::pc8001_mem); + m_maincpu->set_addrmap(AS_IO, &pc8001_state::pc8001_io); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_DEVICE(UPD3301_TAG, upd3301_device, screen_update) - MCFG_SCREEN_SIZE(640, 220) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_screen_update(UPD3301_TAG, FUNC(upd3301_device::screen_update)); + screen.set_size(640, 220); + screen.set_visarea(0, 640-1, 0, 200-1); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, 2000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + BEEP(config, m_beep, 2000).add_route(ALL_OUTPUTS, "mono", 0.25); /* devices */ I8251(config, I8251_TAG, 0); @@ -526,25 +526,25 @@ MACHINE_CONFIG_START(pc8001_state::pc8001) m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED); RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("32K,64K"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pc8001mk2_state::pc8001mk2) +void pc8001mk2_state::pc8001mk2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(pc8001mk2_mem) - MCFG_DEVICE_IO_MAP(pc8001mk2_io) + Z80(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &pc8001mk2_state::pc8001mk2_mem); + m_maincpu->set_addrmap(AS_IO, &pc8001mk2_state::pc8001mk2_io); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_DEVICE(UPD3301_TAG, upd3301_device, screen_update) - MCFG_SCREEN_SIZE(640, 220) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_screen_update(UPD3301_TAG, FUNC(upd3301_device::screen_update)); + screen.set_size(640, 220); + screen.set_visarea(0, 640-1, 0, 200-1); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, 2000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + BEEP(config, m_beep, 2000).add_route(ALL_OUTPUTS, "mono", 0.25); /* devices */ I8251(config, I8251_TAG, 0); @@ -573,7 +573,7 @@ MACHINE_CONFIG_START(pc8001mk2_state::pc8001mk2) m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED); RAM(config, RAM_TAG).set_default_size("64K"); -MACHINE_CONFIG_END +} /* ROMs */ diff --git a/src/mame/drivers/pc8401a.cpp b/src/mame/drivers/pc8401a.cpp index 36a44bd7da7..7de2b1b5d45 100644 --- a/src/mame/drivers/pc8401a.cpp +++ b/src/mame/drivers/pc8401a.cpp @@ -570,11 +570,12 @@ WRITE8_MEMBER( pc8401a_state::ppi_pc_w ) /* Machine Drivers */ -MACHINE_CONFIG_START(pc8401a_state::pc8401a) +void pc8401a_state::pc8401a(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(Z80_TAG, Z80, 4000000) // NEC uPD70008C - MCFG_DEVICE_PROGRAM_MAP(pc8401a_mem) - MCFG_DEVICE_IO_MAP(pc8401a_io) + Z80(config, m_maincpu, 4000000); // NEC uPD70008C + m_maincpu->set_addrmap(AS_PROGRAM, &pc8401a_state::pc8401a_mem); + m_maincpu->set_addrmap(AS_IO, &pc8401a_state::pc8401a_io); /* fake keyboard */ TIMER(config, "keyboard").configure_periodic(FUNC(pc8401a_state::pc8401a_keyboard_tick), attotime::from_hz(64)); @@ -606,13 +607,14 @@ MACHINE_CONFIG_START(pc8401a_state::pc8401a) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K").set_extra_options("96K"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pc8500_state::pc8500) +void pc8500_state::pc8500(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(Z80_TAG, Z80, 4000000) // NEC uPD70008C - MCFG_DEVICE_PROGRAM_MAP(pc8401a_mem) - MCFG_DEVICE_IO_MAP(pc8500_io) + Z80(config, m_maincpu, 4000000); // NEC uPD70008C + m_maincpu->set_addrmap(AS_PROGRAM, &pc8500_state::pc8401a_mem); + m_maincpu->set_addrmap(AS_IO, &pc8500_state::pc8500_io); /* fake keyboard */ TIMER(config, "keyboard").configure_periodic(FUNC(pc8401a_state::pc8401a_keyboard_tick), attotime::from_hz(64)); @@ -644,7 +646,7 @@ MACHINE_CONFIG_START(pc8500_state::pc8500) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K").set_extra_options("96K"); -MACHINE_CONFIG_END +} /* ROMs */ diff --git a/src/mame/drivers/pc8801.cpp b/src/mame/drivers/pc8801.cpp index fb7291e44fc..327f2044fe4 100644 --- a/src/mame/drivers/pc8801.cpp +++ b/src/mame/drivers/pc8801.cpp @@ -2340,18 +2340,19 @@ WRITE_LINE_MEMBER( pc8801_state::rxrdy_w ) // ... } -MACHINE_CONFIG_START(pc8801_state::pc8801) +void pc8801_state::pc8801(machine_config &config) +{ /* main CPU */ - MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(pc8801_mem) - MCFG_DEVICE_IO_MAP(pc8801_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc8801_state, pc8801_vrtc_irq) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc8801_state,pc8801_irq_callback) + Z80(config, m_maincpu, MASTER_CLOCK); /* 4 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &pc8801_state::pc8801_mem); + m_maincpu->set_addrmap(AS_IO, &pc8801_state::pc8801_io); + m_maincpu->set_vblank_int("screen", FUNC(pc8801_state::pc8801_vrtc_irq)); + m_maincpu->set_irq_acknowledge_callback(FUNC(pc8801_state::pc8801_irq_callback)); /* sub CPU(5 inch floppy drive) */ - MCFG_DEVICE_ADD(m_fdccpu, Z80, MASTER_CLOCK) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(pc8801fdc_mem) - MCFG_DEVICE_IO_MAP(pc8801fdc_io) + Z80(config, m_fdccpu, MASTER_CLOCK); /* 4 MHz */ + m_fdccpu->set_addrmap(AS_PROGRAM, &pc8801_state::pc8801fdc_mem); + m_fdccpu->set_addrmap(AS_IO, &pc8801_state::pc8801fdc_io); //config.m_minimum_quantum = attotime::from_hz(300000); config.m_perfect_cpu_quantum = subtag("maincpu"); @@ -2390,10 +2391,10 @@ MACHINE_CONFIG_START(pc8801_state::pc8801) SOFTWARE_LIST(config, "disk_list").set_original("pc8801_flop"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK_24KHz,848,0,640,448,0,400) - MCFG_SCREEN_UPDATE_DRIVER(pc8801_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(PIXEL_CLOCK_24KHz,848,0,640,448,0,400); + m_screen->set_screen_update(FUNC(pc8801_state::screen_update)); + m_screen->set_palette(m_palette); GFXDECODE(config, "gfxdecode", m_palette, gfx_pc8801); PALETTE(config, m_palette, FUNC(pc8801_state::pc8801_palette), 0x10); @@ -2414,26 +2415,28 @@ MACHINE_CONFIG_START(pc8801_state::pc8801) m_opna->port_b_read_callback().set(FUNC(pc8801_state::opn_portb_r)); m_opna->add_route(ALL_OUTPUTS, "mono", 1.00); - MCFG_DEVICE_ADD("beeper", BEEP, 2400) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) + BEEP(config, m_beeper, 2400).add_route(ALL_OUTPUTS, "mono", 0.10); TIMER(config, "rtc_timer").configure_periodic(FUNC(pc8801_state::pc8801_rtc_irq), attotime::from_hz(600)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pc8801_state::pc8801fh) +void pc8801_state::pc8801fh(machine_config &config) +{ pc8801(config); MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_clock_speed ) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pc8801_state::pc8801ma) +void pc8801_state::pc8801ma(machine_config &config) +{ pc8801(config); MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_dic ) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pc8801_state::pc8801mc) +void pc8801_state::pc8801mc(machine_config &config) +{ pc8801(config); MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_cdrom ) -MACHINE_CONFIG_END +} /* TODO: clean this up */ diff --git a/src/mame/drivers/pc88va.cpp b/src/mame/drivers/pc88va.cpp index 043dcc2d33a..508edd48ccd 100644 --- a/src/mame/drivers/pc88va.cpp +++ b/src/mame/drivers/pc88va.cpp @@ -1585,30 +1585,30 @@ WRITE8_MEMBER(pc88va_state::dma_memw_cb) } -MACHINE_CONFIG_START(pc88va_state::pc88va) - - MCFG_DEVICE_ADD("maincpu", V30, 8000000) /* 8 MHz */ - MCFG_DEVICE_PROGRAM_MAP(pc88va_map) - MCFG_DEVICE_IO_MAP(pc88va_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc88va_state, pc88va_vrtc_irq) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb) +void pc88va_state::pc88va(machine_config &config) +{ + V30(config, m_maincpu, 8000000); /* 8 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &pc88va_state::pc88va_map); + m_maincpu->set_addrmap(AS_IO, &pc88va_state::pc88va_io_map); + m_maincpu->set_vblank_int("screen", FUNC(pc88va_state::pc88va_vrtc_irq)); + m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb)); #if TEST_SUBFDC - MCFG_DEVICE_ADD("fdccpu", Z80, 8000000) /* 8 MHz */ - MCFG_DEVICE_PROGRAM_MAP(pc88va_z80_map) - MCFG_DEVICE_IO_MAP(pc88va_z80_io_map) + z80_device &fdccpu(Z80(config, "fdccpu", 8000000)); /* 8 MHz */ + fdccpu.set_addrmap(AS_PROGRAM, &pc88va_state::pc88va_z80_map); + fdccpu.set_addrmap(AS_IO, &pc88va_state::pc88va_z80_io_map); config.m_perfect_cpu_quantum = subtag("maincpu"); #endif - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) - MCFG_SCREEN_UPDATE_DRIVER(pc88va_state, screen_update_pc88va) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(640, 480); + m_screen->set_visarea(0, 640-1, 0, 200-1); + m_screen->set_screen_update(FUNC(pc88va_state::screen_update_pc88va)); - MCFG_PALETTE_ADD("palette", 32) -// MCFG_PALETTE_INIT_OWNER(pc88va_state, pc8801 ) + PALETTE(config, m_palette).set_entries(32); +// m_palette->set_init(FUNC(pc88va_state::pc8801)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pc88va); i8255_device &d8255_2(I8255(config, "d8255_2")); @@ -1664,12 +1664,12 @@ MACHINE_CONFIG_START(pc88va_state::pc88va) ADDRESS_MAP_BANK(config, "sysbank").set_map(&pc88va_state::sysbank_map).set_options(ENDIANNESS_LITTLE, 16, 18+4, 0x40000); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ym", YM2203, 3993600) //unknown clock / divider - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 0.25) - MCFG_SOUND_ROUTE(2, "mono", 0.50) - MCFG_SOUND_ROUTE(3, "mono", 0.50) -MACHINE_CONFIG_END + ym2203_device &ym(YM2203(config, "ym", 3993600)); //unknown clock / divider + ym.add_route(0, "mono", 0.25); + ym.add_route(1, "mono", 0.25); + ym.add_route(2, "mono", 0.50); + ym.add_route(3, "mono", 0.50); +} ROM_START( pc88va2 ) diff --git a/src/mame/drivers/pcat_nit.cpp b/src/mame/drivers/pcat_nit.cpp index e7a48dc12b6..16e3f1a1a0e 100644 --- a/src/mame/drivers/pcat_nit.cpp +++ b/src/mame/drivers/pcat_nit.cpp @@ -231,12 +231,13 @@ void pcat_nit_state::machine_start() membank("rombank")->set_entry(0); } -MACHINE_CONFIG_START(pcat_nit_state::pcat_nit) +void pcat_nit_state::pcat_nit(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I386, 14318180*2) /* I386 ?? Mhz */ - MCFG_DEVICE_PROGRAM_MAP(pcat_map) - MCFG_DEVICE_IO_MAP(pcat_nit_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + I386(config, m_maincpu, 14318180*2); /* I386 ?? Mhz */ + m_maincpu->set_addrmap(AS_PROGRAM, &pcat_nit_state::pcat_map); + m_maincpu->set_addrmap(AS_IO, &pcat_nit_state::pcat_nit_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); /* video hardware */ pcvideo_vga(config); @@ -250,14 +251,15 @@ MACHINE_CONFIG_START(pcat_nit_state::pcat_nit) MICROTOUCH(config, m_microtouch, 9600).stx().set(uart, FUNC(ins8250_uart_device::rx_w)); // rate? NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pcat_nit_state::bonanza) +void pcat_nit_state::bonanza(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I386, 14318180*2) /* I386 ?? Mhz */ - MCFG_DEVICE_PROGRAM_MAP(bonanza_map) - MCFG_DEVICE_IO_MAP(bonanza_io_map) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + I386(config, m_maincpu, 14318180*2); /* I386 ?? Mhz */ + m_maincpu->set_addrmap(AS_PROGRAM, &pcat_nit_state::bonanza_map); + m_maincpu->set_addrmap(AS_IO, &pcat_nit_state::bonanza_io_map); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); /* video hardware */ pcvideo_cirrus_gd5428(config); @@ -270,7 +272,7 @@ MACHINE_CONFIG_START(pcat_nit_state::bonanza) MICROTOUCH(config, m_microtouch, 9600).stx().set(uart, FUNC(ins8250_uart_device::rx_w)); // rate? NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); -MACHINE_CONFIG_END +} /*************************************** * diff --git a/src/mame/drivers/pce220.cpp b/src/mame/drivers/pce220.cpp index 7e4bba2462a..80d62bea1c0 100644 --- a/src/mame/drivers/pce220.cpp +++ b/src/mame/drivers/pce220.cpp @@ -944,21 +944,22 @@ void pce220_state::pce220_palette(palette_device &palette) const } -MACHINE_CONFIG_START(pce220_state::pce220) +void pce220_state::pce220(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, 3072000 ) // CMOS-SC7852 - MCFG_DEVICE_PROGRAM_MAP(pce220_mem) - MCFG_DEVICE_IO_MAP(pce220_io) + Z80(config, m_maincpu, 3072000); // CMOS-SC7852 + m_maincpu->set_addrmap(AS_PROGRAM, &pce220_state::pce220_mem); + m_maincpu->set_addrmap(AS_IO, &pce220_state::pce220_io); /* video hardware */ // 4 lines x 24 characters, resp. 144 x 32 pixel - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(pce220_state, screen_update) - MCFG_SCREEN_SIZE(24*6, 4*8) - MCFG_SCREEN_VISIBLE_AREA(0, 24*6-1, 0, 4*8-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(pce220_state::screen_update)); + screen.set_size(24*6, 4*8); + screen.set_visarea(0, 24*6-1, 0, 4*8-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pce220_state::pce220_palette), 2); @@ -974,23 +975,24 @@ MACHINE_CONFIG_START(pce220_state::pce220) RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card PCE220SERIAL(config, m_serial, 0); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pcg850v_state::pcg815) +void pcg850v_state::pcg815(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(4'000'000) ) // 3.54MHz - MCFG_DEVICE_PROGRAM_MAP(pce220_mem) - MCFG_DEVICE_IO_MAP(pcg850v_io) + Z80(config, m_maincpu, XTAL(4'000'000)); // 3.54MHz + m_maincpu->set_addrmap(AS_PROGRAM, &pcg850v_state::pce220_mem); + m_maincpu->set_addrmap(AS_IO, &pcg850v_state::pcg850v_io); /* video hardware */ // 4 lines x 24 characters, resp. 144 x 32 pixel - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(pcg850v_state, screen_update) - MCFG_SCREEN_SIZE(144, 32) - MCFG_SCREEN_VISIBLE_AREA(0, 144-1, 0, 32-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(pcg850v_state::screen_update)); + screen.set_size(144, 32); + screen.set_visarea(0, 144-1, 0, 32-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pcg850v_state::pce220_palette), 2); @@ -1006,23 +1008,24 @@ MACHINE_CONFIG_START(pcg850v_state::pcg815) RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card PCE220SERIAL(config, m_serial, 0); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pcg850v_state::pcg850v) +void pcg850v_state::pcg850v(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(8'000'000) ) // CMOS-SC7852 - MCFG_DEVICE_PROGRAM_MAP(pce220_mem) - MCFG_DEVICE_IO_MAP(pcg850v_io) + Z80(config, m_maincpu, XTAL(8'000'000)); // CMOS-SC7852 + m_maincpu->set_addrmap(AS_PROGRAM, &pcg850v_state::pce220_mem); + m_maincpu->set_addrmap(AS_IO, &pcg850v_state::pcg850v_io); /* video hardware */ // 6 lines x 24 characters, resp. 144 x 48 pixel - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(pcg850v_state, screen_update) - MCFG_SCREEN_SIZE(144, 48) - MCFG_SCREEN_VISIBLE_AREA(0, 144-1, 0, 48-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(pcg850v_state::screen_update)); + screen.set_size(144, 48); + screen.set_visarea(0, 144-1, 0, 48-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pcg850v_state::pce220_palette), 2); @@ -1038,7 +1041,7 @@ MACHINE_CONFIG_START(pcg850v_state::pcg850v) RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card PCE220SERIAL(config, m_serial, 0); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pce220 ) diff --git a/src/mame/drivers/pcfx.cpp b/src/mame/drivers/pcfx.cpp index 4a4aea782b9..b478d2c5ebd 100644 --- a/src/mame/drivers/pcfx.cpp +++ b/src/mame/drivers/pcfx.cpp @@ -417,14 +417,15 @@ uint32_t pcfx_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, } -MACHINE_CONFIG_START(pcfx_state::pcfx) - MCFG_DEVICE_ADD( "maincpu", V810, XTAL(21'477'272) ) - MCFG_DEVICE_PROGRAM_MAP( pcfx_mem) - MCFG_DEVICE_IO_MAP( pcfx_io) +void pcfx_state::pcfx(machine_config &config) +{ + V810(config, m_maincpu, XTAL(21'477'272)); + m_maincpu->set_addrmap(AS_PROGRAM, &pcfx_state::pcfx_mem); + m_maincpu->set_addrmap(AS_IO, &pcfx_state::pcfx_io); - MCFG_SCREEN_ADD( "screen", RASTER ) - MCFG_SCREEN_UPDATE_DRIVER(pcfx_state, screen_update) - MCFG_SCREEN_RAW_PARAMS(XTAL(21'477'272), huc6261_device::WPF, 64, 64 + 1024 + 64, huc6261_device::LPF, 18, 18 + 242) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(pcfx_state::screen_update)); + screen.set_raw(XTAL(21'477'272), huc6261_device::WPF, 64, 64 + 1024 + 64, huc6261_device::LPF, 18, 18 + 242); huc6270_device &huc6270_a(HUC6270(config, "huc6270_a", 0)); huc6270_a.set_vram_size(0x20000); @@ -457,7 +458,7 @@ MACHINE_CONFIG_START(pcfx_state::pcfx) huc6230.cdda_cb().set("huc6272", FUNC(huc6272_device::cdda_update)); huc6230.add_route(0, "lspeaker", 1.0); huc6230.add_route(1, "rspeaker", 1.0); -MACHINE_CONFIG_END +} ROM_START( pcfx ) diff --git a/src/mame/drivers/pcktgal.cpp b/src/mame/drivers/pcktgal.cpp index 6398fe6d179..5a2c05a40d0 100644 --- a/src/mame/drivers/pcktgal.cpp +++ b/src/mame/drivers/pcktgal.cpp @@ -270,7 +270,7 @@ void pcktgal_state::bootleg(machine_config &config) pcktgal(config); m_gfxdecode->set_info(gfx_bootleg); subdevice<screen_device>("screen")->set_screen_update(FUNC(pcktgal_state::screen_update_pcktgalb)); -MACHINE_CONFIG_END +} void pcktgal_state::pcktgal2(machine_config &config) { diff --git a/src/mame/drivers/pcm.cpp b/src/mame/drivers/pcm.cpp index 460e32d8589..02d5f704f9e 100644 --- a/src/mame/drivers/pcm.cpp +++ b/src/mame/drivers/pcm.cpp @@ -256,7 +256,8 @@ static GFXDECODE_START( gfx_pcm ) GFXDECODE_ENTRY( "chargen", 0x0000, pcm_charlayout, 0, 1 ) GFXDECODE_END -MACHINE_CONFIG_START(pcm_state::pcm) +void pcm_state::pcm(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, XTAL(10'000'000) /4); m_maincpu->set_addrmap(AS_PROGRAM, &pcm_state::pcm_mem); @@ -264,13 +265,13 @@ MACHINE_CONFIG_START(pcm_state::pcm) m_maincpu->set_daisy_config(pcm_daisy_chain); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(pcm_state, screen_update) - MCFG_SCREEN_SIZE(64*8, 16*8) - MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*8-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(pcm_state::screen_update)); + screen.set_size(64*8, 16*8); + screen.set_visarea(0, 64*8-1, 0, 16*8-1); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_pcm); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -304,7 +305,7 @@ MACHINE_CONFIG_START(pcm_state::pcm) m_ctc_s->zc_callback<0>().append("sio", FUNC(z80sio_device::txca_w)); m_ctc_s->zc_callback<1>().set("sio", FUNC(z80sio_device::rxtxcb_w)); m_ctc_s->zc_callback<2>().set(FUNC(pcm_state::pcm_82_w)); // speaker -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pcm ) diff --git a/src/mame/drivers/pcw16.cpp b/src/mame/drivers/pcw16.cpp index 877d65105a7..58d7340d28e 100644 --- a/src/mame/drivers/pcw16.cpp +++ b/src/mame/drivers/pcw16.cpp @@ -1010,11 +1010,12 @@ static void pcw16_com(device_slot_interface &device) device.option_add("msystems_mouse", MSYSTEMS_HLE_SERIAL_MOUSE); } -MACHINE_CONFIG_START(pcw16_state::pcw16) +void pcw16_state::pcw16(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 16000000) - MCFG_DEVICE_PROGRAM_MAP(pcw16_map) - MCFG_DEVICE_IO_MAP(pcw16_io) + Z80(config, m_maincpu, 16000000); + m_maincpu->set_addrmap(AS_PROGRAM, &pcw16_state::pcw16_map); + m_maincpu->set_addrmap(AS_IO, &pcw16_state::pcw16_io); config.m_minimum_quantum = attotime::from_hz(60); ns16550_device &uart1(NS16550(config, "ns16550_1", XTAL(1'843'200))); /* TODO: Verify uart model */ @@ -1043,13 +1044,13 @@ MACHINE_CONFIG_START(pcw16_state::pcw16) serport2.cts_handler().set(m_uart2, FUNC(ins8250_uart_device::cts_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(PCW16_SCREEN_WIDTH, PCW16_SCREEN_HEIGHT) - MCFG_SCREEN_VISIBLE_AREA(0, PCW16_SCREEN_WIDTH-1, 0, PCW16_SCREEN_HEIGHT-1) - MCFG_SCREEN_UPDATE_DRIVER(pcw16_state, screen_update_pcw16) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(PCW16_SCREEN_WIDTH, PCW16_SCREEN_HEIGHT); + screen.set_visarea(0, PCW16_SCREEN_WIDTH-1, 0, PCW16_SCREEN_HEIGHT-1); + screen.set_screen_update(FUNC(pcw16_state::screen_update_pcw16)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pcw16_state::pcw16_colours), PCW16_NUM_COLOURS); @@ -1081,7 +1082,7 @@ MACHINE_CONFIG_START(pcw16_state::pcw16) TIMER(config, "video_timer").configure_periodic(FUNC(pcw16_state::pcw16_timer_callback), attotime::from_usec(5830)); /* rtc timer */ TIMER(config, "rtc_timer").configure_periodic(FUNC(pcw16_state::rtc_timer_callback), attotime::from_hz(256)); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/pcxt.cpp b/src/mame/drivers/pcxt.cpp index c21f81a272d..db4b48940a3 100644 --- a/src/mame/drivers/pcxt.cpp +++ b/src/mame/drivers/pcxt.cpp @@ -494,33 +494,34 @@ static void filetto_isa8_cards(device_slot_interface &device) } -MACHINE_CONFIG_START(pcxt_state::filetto) - MCFG_DEVICE_ADD("maincpu", I8088, XTAL(14'318'181)/3) - MCFG_DEVICE_PROGRAM_MAP(filetto_map) - MCFG_DEVICE_IO_MAP(filetto_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) +void pcxt_state::filetto(machine_config &config) +{ + I8088(config, m_maincpu, XTAL(14'318'181)/3); + m_maincpu->set_addrmap(AS_PROGRAM, &pcxt_state::filetto_map); + m_maincpu->set_addrmap(AS_IO, &pcxt_state::filetto_io); + m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); PCNOPPI_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", filetto_isa8_cards, "filetto", true) // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa1", 0, "mb:isa", filetto_isa8_cards, "filetto", true); // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("voice", HC55516, 8000000/4)//8923S-UM5100 is a HC55536 with ROM hook-up - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mb:mono", 0.60) + HC55516(config, "voice", 8000000/4).add_route(ALL_OUTPUTS, "mb:mono", 0.60); //8923S-UM5100 is a HC55536 with ROM hook-up RAM(config, RAM_TAG).set_default_size("640K"); ADDRESS_MAP_BANK(config, "bank").set_map(&pcxt_state::bank_map).set_options(ENDIANNESS_LITTLE, 8, 18, 0x10000); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pcxt_state::tetriskr) - MCFG_DEVICE_ADD("maincpu", I8088, XTAL(14'318'181)/3) - MCFG_DEVICE_PROGRAM_MAP(tetriskr_map) - MCFG_DEVICE_IO_MAP(tetriskr_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) +void pcxt_state::tetriskr(machine_config &config) +{ + I8088(config, m_maincpu, XTAL(14'318'181)/3); + m_maincpu->set_addrmap(AS_PROGRAM, &pcxt_state::tetriskr_map); + m_maincpu->set_addrmap(AS_IO, &pcxt_state::tetriskr_io); + m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); PCNOPPI_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", filetto_isa8_cards, "tetriskr", true) // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa1", 0, "mb:isa", filetto_isa8_cards, "tetriskr", true); // FIXME: determine ISA bus clock RAM(config, RAM_TAG).set_default_size("640K"); -MACHINE_CONFIG_END +} ROM_START( filetto ) ROM_REGION( 0x10000, "bios", 0 ) diff --git a/src/mame/drivers/pdp11.cpp b/src/mame/drivers/pdp11.cpp index aa8dcbc9811..bd8634767f3 100644 --- a/src/mame/drivers/pdp11.cpp +++ b/src/mame/drivers/pdp11.cpp @@ -367,18 +367,20 @@ void pdp11_state::pdp11(machine_config &config) RX01(config, "rx01", 0); } -MACHINE_CONFIG_START(pdp11_state::pdp11ub2) +void pdp11_state::pdp11ub2(machine_config &config) +{ pdp11(config); MCFG_MACHINE_RESET_OVERRIDE(pdp11_state,pdp11ub2) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pdp11_state::pdp11qb) +void pdp11_state::pdp11qb(machine_config &config) +{ pdp11(config); MCFG_MACHINE_RESET_OVERRIDE(pdp11_state,pdp11qb) m_maincpu->set_initial_mode(0 << 13); m_maincpu->set_addrmap(AS_PROGRAM, &pdp11_state::pdp11qb_mem); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pdp11ub ) diff --git a/src/mame/drivers/pegasus.cpp b/src/mame/drivers/pegasus.cpp index 7d8055715ff..77ddc422697 100644 --- a/src/mame/drivers/pegasus.cpp +++ b/src/mame/drivers/pegasus.cpp @@ -490,19 +490,19 @@ void pegasus_state::init_pegasus() MACHINE_CONFIG_START(pegasus_state::pegasus) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809, XTAL(4'000'000)) // actually a 6809C - 4MHZ clock coming in, 1MHZ internally - MCFG_DEVICE_PROGRAM_MAP(pegasus_mem) + MC6809(config, m_maincpu, XTAL(4'000'000)); // actually a 6809C - 4MHZ clock coming in, 1MHZ internally + m_maincpu->set_addrmap(AS_PROGRAM, &pegasus_state::pegasus_mem); TIMER(config, "pegasus_firq").configure_periodic(FUNC(pegasus_state::pegasus_firq), attotime::from_hz(400)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(pegasus_state, screen_update) - MCFG_SCREEN_SIZE(32*8, 16*16) - MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 16*16-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(pegasus_state::screen_update)); + screen.set_size(32*8, 16*16); + screen.set_visarea(0, 32*8-1, 0, 16*16-1); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_pegasus); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -548,11 +548,11 @@ MACHINE_CONFIG_START(pegasus_state::pegasus) SOFTWARE_LIST(config, "cart_list").set_original("pegasus_cart"); MACHINE_CONFIG_END -MACHINE_CONFIG_START(pegasus_state::pegasusm) +void pegasus_state::pegasusm(machine_config &config) +{ pegasus(config); - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP(pegasusm_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &pegasus_state::pegasusm_mem); +} /* ROM definition */ diff --git a/src/mame/drivers/pentagon.cpp b/src/mame/drivers/pentagon.cpp index 8bd464034e9..54ee980e21a 100644 --- a/src/mame/drivers/pentagon.cpp +++ b/src/mame/drivers/pentagon.cpp @@ -276,19 +276,18 @@ GFXDECODE_END -MACHINE_CONFIG_START(pentagon_state::pentagon) +void pentagon_state::pentagon(machine_config &config) +{ spectrum_128(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(XTAL(14'000'000) / 4) - MCFG_DEVICE_PROGRAM_MAP(pentagon_mem) - MCFG_DEVICE_IO_MAP(pentagon_io) - MCFG_DEVICE_OPCODES_MAP(pentagon_switch) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pentagon_state, pentagon_interrupt) + m_maincpu->set_clock(XTAL(14'000'000) / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &pentagon_state::pentagon_mem); + m_maincpu->set_addrmap(AS_IO, &pentagon_state::pentagon_io); + m_maincpu->set_addrmap(AS_OPCODES, &pentagon_state::pentagon_switch); + m_maincpu->set_vblank_int("screen", FUNC(pentagon_state::pentagon_interrupt)); MCFG_MACHINE_RESET_OVERRIDE(pentagon_state, pentagon ) - MCFG_SCREEN_MODIFY("screen") - //MCFG_SCREEN_RAW_PARAMS(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 304) - MCFG_SCREEN_RAW_PARAMS(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 287) + //m_screen->set_raw(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 304); + m_screen->set_raw(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 287); MCFG_VIDEO_START_OVERRIDE(pentagon_state, pentagon ) BETA_DISK(config, m_beta, 0); @@ -306,7 +305,7 @@ MACHINE_CONFIG_START(pentagon_state::pentagon) config.device_remove("exp"); SOFTWARE_LIST(config, "cass_list_pen").set_original("pentagon_cass"); -MACHINE_CONFIG_END +} void pentagon_state::pent1024(machine_config &config) { diff --git a/src/mame/drivers/perq.cpp b/src/mame/drivers/perq.cpp index c067da028b7..9e92fad8353 100644 --- a/src/mame/drivers/perq.cpp +++ b/src/mame/drivers/perq.cpp @@ -29,8 +29,9 @@ private: static INPUT_PORTS_START( perq ) INPUT_PORTS_END -MACHINE_CONFIG_START(perq_state::perq) -MACHINE_CONFIG_END +void perq_state::perq(machine_config &config) +{ +} ROM_START( perq ) ROM_REGION( 0x10000, "maincpu", 0 ) diff --git a/src/mame/drivers/peyper.cpp b/src/mame/drivers/peyper.cpp index c81928a9184..f3dc37a2f57 100644 --- a/src/mame/drivers/peyper.cpp +++ b/src/mame/drivers/peyper.cpp @@ -601,12 +601,13 @@ void peyper_state::machine_reset() } -MACHINE_CONFIG_START(peyper_state::peyper) +void peyper_state::peyper(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 2'500'000) - MCFG_DEVICE_PROGRAM_MAP(peyper_map) - MCFG_DEVICE_IO_MAP(peyper_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(peyper_state, irq0_line_hold, 1250) + Z80(config, m_maincpu, 2'500'000); + m_maincpu->set_addrmap(AS_PROGRAM, &peyper_state::peyper_map); + m_maincpu->set_addrmap(AS_IO, &peyper_state::peyper_io); + m_maincpu->set_periodic_int(FUNC(peyper_state::irq0_line_hold), attotime::from_hz(1250)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ @@ -631,7 +632,7 @@ MACHINE_CONFIG_START(peyper_state::peyper) kbdc.in_rl_callback().set(FUNC(peyper_state::sw_r)); // kbd RL lines kbdc.in_shift_callback().set_constant(1); // Shift key kbdc.in_ctrl_callback().set_constant(1); -MACHINE_CONFIG_END +} // Not allowed to set up an array all at once, so we have this mess void peyper_state::init_peyper() diff --git a/src/mame/drivers/pg685.cpp b/src/mame/drivers/pg685.cpp index 850113517ad..fc4beba17ad 100644 --- a/src/mame/drivers/pg685.cpp +++ b/src/mame/drivers/pg685.cpp @@ -422,11 +422,12 @@ void pg685_state::pg685_module(machine_config &config) MM58167(config, "rtc", XTAL(32'768)); } -MACHINE_CONFIG_START(pg685_state::pg675) +void pg685_state::pg675(machine_config &config) +{ // main cpu - MCFG_DEVICE_ADD("maincpu", I8088, XTAL(15'000'000) / 3) - MCFG_DEVICE_PROGRAM_MAP(pg675_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb) + I8088(config, m_maincpu, XTAL(15'000'000) / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &pg685_state::pg675_mem); + m_maincpu->set_irq_acknowledge_callback("mainpic", FUNC(pic8259_device::inta_cb)); pic8259_device &mainpic(PIC8259(config, "mainpic", 0)); mainpic.out_int_callback().set_inputline(m_maincpu, 0); @@ -437,9 +438,9 @@ MACHINE_CONFIG_START(pg685_state::pg675) // ram // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values - MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update ) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(12288000, 882, 0, 720, 370, 0, 350 ); // not real values + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); mc6845_device &crtc(MC6845(config, "crtc", 12288000)); crtc.set_screen("screen"); @@ -452,7 +453,7 @@ MACHINE_CONFIG_START(pg685_state::pg675) // devices pg685_module(config); - MCFG_DEVICE_ADD("mainuart", I8251, XTAL(12'288'000) / 6) // divider guessed + I8251(config, "mainuart", XTAL(12'288'000) / 6); // divider guessed // rs232 port @@ -467,14 +468,14 @@ MACHINE_CONFIG_START(pg685_state::pg675) // m_fdc->drq_wr_callback(FUNC(zorba_state::fdc_drq_w)); FLOPPY_CONNECTOR(config, "fdc:0", pg675_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, "fdc:1", pg675_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(pg685_state::pg685) +void pg685_state::pg685(machine_config &config) +{ // main cpu - MCFG_DEVICE_ADD("maincpu", V20, XTAL(15'000'000) / 3) - MCFG_DEVICE_PROGRAM_MAP(pg685_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb) + V20(config, m_maincpu, XTAL(15'000'000) / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &pg685_state::pg685_mem); + m_maincpu->set_irq_acknowledge_callback("mainpic", FUNC(pic8259_device::inta_cb)); pic8259_device &mainpic(PIC8259(config, "mainpic", 0)); mainpic.out_int_callback().set_inputline(m_maincpu, 0); @@ -485,9 +486,9 @@ MACHINE_CONFIG_START(pg685_state::pg685) // ram // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values - MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update ) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(12288000, 882, 0, 720, 370, 0, 350 ); // not real values + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); mc6845_device &crtc(MC6845(config, "crtc", 12288000)); crtc.set_screen("screen"); @@ -501,7 +502,7 @@ MACHINE_CONFIG_START(pg685_state::pg685) pg685_backplane(config); pg685_module(config); - MCFG_DEVICE_ADD("mainuart", I8251, XTAL(12'288'000) / 6) // divider guessed + I8251(config, "mainuart", XTAL(12'288'000) / 6); // divider guessed // rs232 port @@ -519,13 +520,14 @@ MACHINE_CONFIG_START(pg685_state::pg685) // harddisk wd2010_device& hdc(WD2010(config, "hdc", XTAL(10'000'000) / 2)); // divider guessed hdc.out_intrq_callback().set("mainpic", FUNC(pic8259_device::ir3_w)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pg685_state::pg685oua12) +void pg685_state::pg685oua12(machine_config &config) +{ // main cpu - MCFG_DEVICE_ADD("maincpu", I80286, XTAL(20'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(pg685oua12_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb) + I80286(config, m_maincpu, XTAL(20'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &pg685_state::pg685oua12_mem); + m_maincpu->set_irq_acknowledge_callback("mainpic", FUNC(pic8259_device::inta_cb)); pic8259_device &mainpic(PIC8259(config, "mainpic", 0)); mainpic.out_int_callback().set_inputline(m_maincpu, 0); @@ -536,9 +538,9 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12) // ram // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values - MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update ) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(12288000, 882, 0, 720, 370, 0, 350 ); // not real values + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); mc6845_device &crtc(MC6845(config, "crtc", 12288000)); crtc.set_screen("screen"); @@ -552,7 +554,7 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12) pg685_backplane(config); pg685_module(config); - MCFG_DEVICE_ADD("mainuart", I8251, 12288000 / 6) // wrong + I8251(config, "mainuart", 12288000 / 6); // wrong // rs232 port @@ -569,8 +571,7 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12) // harddisk wd2010_device& hdc(WD2010(config, "hdc", XTAL(10'000'000) / 2)); // divider guessed hdc.out_intrq_callback().set("mainpic", FUNC(pic8259_device::ir3_w)); - -MACHINE_CONFIG_END +} //************************************************************************** diff --git a/src/mame/drivers/pgm.cpp b/src/mame/drivers/pgm.cpp index 188c1103104..2f3ac8a9cf8 100644 --- a/src/mame/drivers/pgm.cpp +++ b/src/mame/drivers/pgm.cpp @@ -490,7 +490,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(pgm_state::pgm_interrupt) { int scanline = param; -// already being generated by MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pgm_state, irq6_line_hold) +// already being generated by m_maincpu->set_vblank_int("screen", FUNC(pgm_state::irq6_line_hold)); // if(scanline == 224) // m_maincpu->set_input_line(6, HOLD_LINE); diff --git a/src/mame/drivers/pgm3.cpp b/src/mame/drivers/pgm3.cpp index 4d3fa198943..ba95a80a902 100644 --- a/src/mame/drivers/pgm3.cpp +++ b/src/mame/drivers/pgm3.cpp @@ -104,25 +104,25 @@ void pgm3_state::machine_reset() { } -MACHINE_CONFIG_START(pgm3_state::pgm3) - +void pgm3_state::pgm3(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", ARM9, 800000000) // wrong, see notes at top of driver - MCFG_DEVICE_PROGRAM_MAP(pgm3_map) - MCFG_DEVICE_DISABLE() + ARM9(config, m_maincpu, 800000000); // wrong, see notes at top of driver + m_maincpu->set_addrmap(AS_PROGRAM, &pgm3_state::pgm3_map); + m_maincpu->set_disable(); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(1280, 720) - MCFG_SCREEN_VISIBLE_AREA(0, 1280-1, 0, 720-1) - MCFG_SCREEN_UPDATE_DRIVER(pgm3_state, screen_update_pgm3) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pgm3_state, screen_vblank_pgm3)) - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD("palette", 0x1000) -MACHINE_CONFIG_END + 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(1280, 720); + screen.set_visarea(0, 1280-1, 0, 720-1); + screen.set_screen_update(FUNC(pgm3_state::screen_update_pgm3)); + screen.screen_vblank().set(FUNC(pgm3_state::screen_vblank_pgm3)); + screen.set_palette("palette"); + + PALETTE(config, "palette").set_entries(0x1000); +} ROM_START( kov3hd ) ROM_REGION( 0x04000, "maincpu", ROMREGION_ERASE00 ) diff --git a/src/mame/drivers/photon.cpp b/src/mame/drivers/photon.cpp index a895d38de4c..8dcb71f8453 100644 --- a/src/mame/drivers/photon.cpp +++ b/src/mame/drivers/photon.cpp @@ -214,23 +214,23 @@ uint32_t photon_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap return video_update(screen, bitmap, cliprect, memregion("maincpu")->base()); } -MACHINE_CONFIG_START(photon_state::photon) - +void photon_state::photon(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",I8080, 1780000) - MCFG_DEVICE_PROGRAM_MAP(pk8000_mem) - MCFG_DEVICE_IO_MAP(pk8000_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", photon_state, interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(photon_state, irq_callback) + I8080(config, m_maincpu, 1780000); + m_maincpu->set_addrmap(AS_PROGRAM, &photon_state::pk8000_mem); + m_maincpu->set_addrmap(AS_IO, &photon_state::pk8000_io); + m_maincpu->set_vblank_int("screen", FUNC(photon_state::interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(photon_state::irq_callback)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(256+32, 192+32) - MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1) - MCFG_SCREEN_UPDATE_DRIVER(photon_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(256+32, 192+32); + screen.set_visarea(0, 256+32-1, 0, 192+32-1); + screen.set_screen_update(FUNC(photon_state::screen_update)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(photon_state::pk8000_palette), 16); @@ -247,7 +247,7 @@ MACHINE_CONFIG_START(photon_state::photon) /* audio hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /* Dump was made using custom adaptor, hence it is marked as bad dump. diff --git a/src/mame/drivers/photon2.cpp b/src/mame/drivers/photon2.cpp index 8ee9d4094ba..9d4f207ee6d 100644 --- a/src/mame/drivers/photon2.cpp +++ b/src/mame/drivers/photon2.cpp @@ -358,29 +358,30 @@ void photon2_state::machine_start() save_item(NAME(m_nmi_enable)); } -MACHINE_CONFIG_START(photon2_state::photon2) +void photon2_state::photon2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 3500000) /* 3.5 MHz */ - MCFG_DEVICE_PROGRAM_MAP(spectrum_mem) - MCFG_DEVICE_IO_MAP(spectrum_io) + Z80(config, m_maincpu, 3500000); /* 3.5 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &photon2_state::spectrum_mem); + m_maincpu->set_addrmap(AS_IO, &photon2_state::spectrum_io); TIMER(config, "scantimer").configure_scanline(FUNC(photon2_state::spec_interrupt_hack), "screen", 0, 1); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50.08) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT) - MCFG_SCREEN_VISIBLE_AREA(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1) - MCFG_SCREEN_UPDATE_DRIVER(photon2_state, screen_update_spectrum) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, photon2_state, screen_vblank_spectrum)) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50.08); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT); + screen.set_visarea(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1); + screen.set_screen_update(FUNC(photon2_state::screen_update_spectrum)); + screen.screen_vblank().set(FUNC(photon2_state::screen_vblank_spectrum)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(photon2_state::photon2_palette), 16); /* sound hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /************************************* * diff --git a/src/mame/drivers/pinball2k.cpp b/src/mame/drivers/pinball2k.cpp index 0488e5687fb..eda9e7d8e0d 100644 --- a/src/mame/drivers/pinball2k.cpp +++ b/src/mame/drivers/pinball2k.cpp @@ -605,10 +605,10 @@ void pinball2k_state::ramdac_map(address_map &map) MACHINE_CONFIG_START(pinball2k_state::mediagx) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MEDIAGX, 166000000) - MCFG_DEVICE_PROGRAM_MAP(mediagx_map) - MCFG_DEVICE_IO_MAP(mediagx_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + MEDIAGX(config, m_maincpu, 166000000); + m_maincpu->set_addrmap(AS_PROGRAM, &pinball2k_state::mediagx_map); + m_maincpu->set_addrmap(AS_IO, &pinball2k_state::mediagx_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); pcat_common(config); @@ -622,14 +622,14 @@ MACHINE_CONFIG_START(pinball2k_state::mediagx) m_ramdac->set_addrmap(0, &pinball2k_state::ramdac_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) - MCFG_SCREEN_UPDATE_DRIVER(pinball2k_state, screen_update_mediagx) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(640, 480); + m_screen->set_visarea(0, 639, 0, 239); + m_screen->set_screen_update(FUNC(pinball2k_state::screen_update_mediagx)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cga); - MCFG_PALETTE_ADD("palette", 256) + PALETTE(config, m_palette).set_entries(256); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/pingpong.cpp b/src/mame/drivers/pingpong.cpp index 8530e42128a..bd86b6567a6 100644 --- a/src/mame/drivers/pingpong.cpp +++ b/src/mame/drivers/pingpong.cpp @@ -448,22 +448,22 @@ static GFXDECODE_START( gfx_pingpong ) GFXDECODE_END -MACHINE_CONFIG_START(pingpong_state::pingpong) - +void pingpong_state::pingpong(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80,18432000/6) /* 3.072 MHz (probably) */ - MCFG_DEVICE_PROGRAM_MAP(pingpong_map) + Z80(config, m_maincpu,18432000/6); /* 3.072 MHz (probably) */ + m_maincpu->set_addrmap(AS_PROGRAM, &pingpong_state::pingpong_map); TIMER(config, "scantimer").configure_scanline(FUNC(pingpong_state::pingpong_interrupt), "screen", 0, 1); 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(456, 262) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pingpong_state, screen_update_pingpong) - 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(456, 262); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(pingpong_state::screen_update_pingpong)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pingpong); PALETTE(config, m_palette, FUNC(pingpong_state::pingpong_palette), 64*4+64*4, 32); @@ -471,19 +471,18 @@ MACHINE_CONFIG_START(pingpong_state::pingpong) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76496, 18432000/8) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + SN76496(config, "snsnd", 18432000/8).add_route(ALL_OUTPUTS, "mono", 1.0); +} /* too fast! */ -MACHINE_CONFIG_START(pingpong_state::merlinmm) +void pingpong_state::merlinmm(machine_config &config) +{ pingpong(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(merlinmm_map) + m_maincpu->set_addrmap(AS_PROGRAM, &pingpong_state::merlinmm_map); subdevice<timer_device>("scantimer")->set_callback(FUNC(pingpong_state::merlinmm_interrupt)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/pinkiri8.cpp b/src/mame/drivers/pinkiri8.cpp index 093e4d149ab..d5ad19d1baa 100644 --- a/src/mame/drivers/pinkiri8.cpp +++ b/src/mame/drivers/pinkiri8.cpp @@ -1106,32 +1106,31 @@ static GFXDECODE_START( gfx_pinkiri8 ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 0x100 ) GFXDECODE_END -MACHINE_CONFIG_START(pinkiri8_state::pinkiri8) - MCFG_DEVICE_ADD("maincpu",Z180,XTAL(32'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(pinkiri8_map) - MCFG_DEVICE_IO_MAP(pinkiri8_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pinkiri8_state, nmi_line_assert) - - 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, 62*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pinkiri8_state, screen_update_pinkiri8) - MCFG_SCREEN_PALETTE("palette") +void pinkiri8_state::pinkiri8(machine_config &config) +{ + Z180(config, m_maincpu, XTAL(32'000'000)/2); + m_maincpu->set_addrmap(AS_PROGRAM, &pinkiri8_state::pinkiri8_map); + m_maincpu->set_addrmap(AS_IO, &pinkiri8_state::pinkiri8_io); + m_maincpu->set_vblank_int("screen", FUNC(pinkiri8_state::nmi_line_assert)); + + 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, 62*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(pinkiri8_state::screen_update_pinkiri8)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pinkiri8); - MCFG_PALETTE_ADD("palette", 0x2000) - + PALETTE(config, m_palette).set_entries(0x2000); - MCFG_DEVICE_ADD("janshivdp", JANSHIVDP, 0) + JANSHIVDP(config, m_vdp, 0); /* 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", 0.5) -MACHINE_CONFIG_END + OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); // clock frequency & pin 7 not verified +} /*************************************************************************** diff --git a/src/mame/drivers/pirates.cpp b/src/mame/drivers/pirates.cpp index 07595c472c4..9f7a1f31b32 100644 --- a/src/mame/drivers/pirates.cpp +++ b/src/mame/drivers/pirates.cpp @@ -252,30 +252,30 @@ GFXDECODE_END /* Machine Driver + Related bits */ -MACHINE_CONFIG_START(pirates_state::pirates) - MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16mhz */ - MCFG_DEVICE_PROGRAM_MAP(pirates_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pirates_state, irq1_line_hold) +void pirates_state::pirates(machine_config &config) +{ + M68000(config, m_maincpu, 16000000); /* 16mhz */ + m_maincpu->set_addrmap(AS_PROGRAM, &pirates_state::pirates_map); + m_maincpu->set_vblank_int("screen", FUNC(pirates_state::irq1_line_hold)); EEPROM_93C46_16BIT(config, "eeprom"); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pirates); - MCFG_SCREEN_ADD("screen", 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, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pirates_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(36*8, 32*8); + screen.set_visarea(0*8, 36*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(pirates_state::screen_update)); + screen.set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x2000); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1333333, okim6295_device::PIN7_LOW) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 1333333, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0); +} diff --git a/src/mame/drivers/piratesh.cpp b/src/mame/drivers/piratesh.cpp index 0dfc7b2a8bb..5933f7d580c 100644 --- a/src/mame/drivers/piratesh.cpp +++ b/src/mame/drivers/piratesh.cpp @@ -616,7 +616,7 @@ void piratesh_state::piratesh(machine_config &config) /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK); -// MCFG_SCREEN_REFRESH_RATE(60) +// screen.set_refresh_hz(60); screen.set_raw(6000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223); // TODO screen.set_vblank_time(ATTOSECONDS_IN_USEC(600)); screen.set_size(64*8, 32*8); diff --git a/src/mame/drivers/pitagjr.cpp b/src/mame/drivers/pitagjr.cpp index f2b30986bfc..9c9be7f61b7 100644 --- a/src/mame/drivers/pitagjr.cpp +++ b/src/mame/drivers/pitagjr.cpp @@ -209,22 +209,23 @@ uint32_t pitagjr_state::screen_update(screen_device &screen, bitmap_ind16 &bitma return 0; } -MACHINE_CONFIG_START(pitagjr_state::pitajr) +void pitagjr_state::pitajr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", HD63705, XTAL(2'000'000)) // probably a m6805-based MCU with internal boot ROM - MCFG_DEVICE_PROGRAM_MAP(pitajr_mem) + HD63705(config, m_maincpu, XTAL(2'000'000)); // probably a m6805-based MCU with internal boot ROM + m_maincpu->set_addrmap(AS_PROGRAM, &pitagjr_state::pitajr_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(pitagjr_state, screen_update) - MCFG_SCREEN_SIZE( 200, 100 ) // FIXME - MCFG_SCREEN_VISIBLE_AREA( 0, 200-1, 0, 100-1 ) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(pitagjr_state::screen_update)); + screen.set_size(200, 100); // FIXME + screen.set_visarea(0, 200-1, 0, 100-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pitagjr_state::pitagjr_palette), 2); -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/pk8000.cpp b/src/mame/drivers/pk8000.cpp index d26f7998579..b0a4c204aeb 100644 --- a/src/mame/drivers/pk8000.cpp +++ b/src/mame/drivers/pk8000.cpp @@ -360,22 +360,23 @@ uint32_t pk8000_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap return video_update(screen, bitmap, cliprect, m_ram->pointer()); } -MACHINE_CONFIG_START(pk8000_state::pk8000) +void pk8000_state::pk8000(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",I8080, 1780000) - MCFG_DEVICE_PROGRAM_MAP(pk8000_mem) - MCFG_DEVICE_IO_MAP(pk8000_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pk8000_state, interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pk8000_state, irq_callback) + I8080(config, m_maincpu, 1780000); + m_maincpu->set_addrmap(AS_PROGRAM, &pk8000_state::pk8000_mem); + m_maincpu->set_addrmap(AS_IO, &pk8000_state::pk8000_io); + m_maincpu->set_vblank_int("screen", FUNC(pk8000_state::interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(pk8000_state::irq_callback)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(256+32, 192+32) - MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1) - MCFG_SCREEN_UPDATE_DRIVER(pk8000_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(256+32, 192+32); + screen.set_visarea(0, 256+32-1, 0, 192+32-1); + screen.set_screen_update(FUNC(pk8000_state::screen_update)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pk8000_state::pk8000_palette), 16); @@ -400,7 +401,7 @@ MACHINE_CONFIG_START(pk8000_state::pk8000) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K"); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( vesta ) diff --git a/src/mame/drivers/pk8020.cpp b/src/mame/drivers/pk8020.cpp index f34e5bb292a..734ce7c32a6 100644 --- a/src/mame/drivers/pk8020.cpp +++ b/src/mame/drivers/pk8020.cpp @@ -189,22 +189,23 @@ static void pk8020_floppies(device_slot_interface &device) * 7 floppy */ /* Machine driver */ -MACHINE_CONFIG_START(pk8020_state::pk8020) +void pk8020_state::pk8020(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080, 20_MHz_XTAL / 8) - MCFG_DEVICE_PROGRAM_MAP(pk8020_mem) - MCFG_DEVICE_IO_MAP(pk8020_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pk8020_state, pk8020_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb) + I8080(config, m_maincpu, 20_MHz_XTAL / 8); + m_maincpu->set_addrmap(AS_PROGRAM, &pk8020_state::pk8020_mem); + m_maincpu->set_addrmap(AS_IO, &pk8020_state::pk8020_io); + m_maincpu->set_vblank_int("screen", FUNC(pk8020_state::pk8020_interrupt)); + m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(pk8020_state, screen_update_pk8020) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0, 256-1); + screen.set_screen_update(FUNC(pk8020_state::screen_update_pk8020)); + screen.set_palette(m_palette); GFXDECODE(config, "gfxdecode", m_palette, gfx_pk8020); PALETTE(config, m_palette, FUNC(pk8020_state::pk8020_palette), 16); @@ -262,7 +263,7 @@ MACHINE_CONFIG_START(pk8020_state::pk8020) /* internal ram */ RAM(config, RAM_TAG).set_default_size("258K").set_default_value(0x00); // 64 + 4*48 + 2 = 258 -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/pktgaldx.cpp b/src/mame/drivers/pktgaldx.cpp index 65e659bb4ff..2bbb8596766 100644 --- a/src/mame/drivers/pktgaldx.cpp +++ b/src/mame/drivers/pktgaldx.cpp @@ -338,24 +338,24 @@ void pktgaldx_state::machine_start() { } -MACHINE_CONFIG_START(pktgaldx_state::pktgaldx) - +void pktgaldx_state::pktgaldx(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 28_MHz_XTAL / 2) // The clock input is 14.000MHz on pin 6 - MCFG_DEVICE_PROGRAM_MAP(pktgaldx_map) - MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map) + M68000(config, m_maincpu, 28_MHz_XTAL / 2); // The clock input is 14.000MHz on pin 6 + m_maincpu->set_addrmap(AS_PROGRAM, &pktgaldx_state::pktgaldx_map); + m_maincpu->set_addrmap(AS_OPCODES, &pktgaldx_state::decrypted_opcodes_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldx) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pktgaldx_state, vblank_w)) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(pktgaldx_state::screen_update_pktgaldx)); + screen.screen_vblank().set(FUNC(pktgaldx_state::vblank_w)); + screen.set_palette(m_palette); - PALETTE(config, "palette").set_format(palette_device::xBGR_888, 4096); + PALETTE(config, m_palette).set_format(palette_device::xBGR_888, 4096); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pktgaldx); @@ -389,31 +389,31 @@ MACHINE_CONFIG_START(pktgaldx_state::pktgaldx) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("oki1", OKIM6295, 32.22_MHz_XTAL / 32, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) - - MCFG_DEVICE_ADD("oki2", OKIM6295, 32.22_MHz_XTAL / 16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60) -MACHINE_CONFIG_END + okim6295_device &oki1(OKIM6295(config, "oki1", 32.22_MHz_XTAL / 32, okim6295_device::PIN7_HIGH)); + oki1.add_route(ALL_OUTPUTS, "lspeaker", 0.75); + oki1.add_route(ALL_OUTPUTS, "rspeaker", 0.75); + OKIM6295(config, m_oki2, 32.22_MHz_XTAL / 16, okim6295_device::PIN7_HIGH); + m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.60); + m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.60); +} -MACHINE_CONFIG_START(pktgaldx_state::pktgaldb) +void pktgaldx_state::pktgaldb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 16000000) - MCFG_DEVICE_PROGRAM_MAP(pktgaldb_map) + M68000(config, m_maincpu, 16000000); + m_maincpu->set_addrmap(AS_PROGRAM, &pktgaldx_state::pktgaldb_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldb) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pktgaldx_state, vblank_w)) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(pktgaldx_state::screen_update_pktgaldb)); + screen.screen_vblank().set(FUNC(pktgaldx_state::vblank_w)); + screen.set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xBGR_888, 4096); @@ -423,14 +423,14 @@ MACHINE_CONFIG_START(pktgaldx_state::pktgaldb) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) + okim6295_device &oki1(OKIM6295(config, "oki1", 32220000/32, okim6295_device::PIN7_HIGH)); + oki1.add_route(ALL_OUTPUTS, "lspeaker", 0.75); + oki1.add_route(ALL_OUTPUTS, "rspeaker", 0.75); - MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60) -MACHINE_CONFIG_END + OKIM6295(config, m_oki2, 32220000/16, okim6295_device::PIN7_HIGH); + m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.60); + m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.60); +} ROM_START( pktgaldx ) diff --git a/src/mame/drivers/playmark.cpp b/src/mame/drivers/playmark.cpp index 688a8804a9f..e3043157202 100644 --- a/src/mame/drivers/playmark.cpp +++ b/src/mame/drivers/playmark.cpp @@ -1041,12 +1041,12 @@ MACHINE_RESET_MEMBER(playmark_state,playmark) m_dispenser_latch = 0; } -MACHINE_CONFIG_START(playmark_state::bigtwin) - +void playmark_state::bigtwin(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(bigtwin_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::bigtwin_main_map); + m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold)); PIC16C57(config, m_audiocpu, 12000000); m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); @@ -1059,13 +1059,13 @@ MACHINE_CONFIG_START(playmark_state::bigtwin) MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwin) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(playmark_state::screen_update_bigtwin)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_bigtwin); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024); @@ -1075,17 +1075,17 @@ MACHINE_CONFIG_START(playmark_state::bigtwin) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(playmark_state::bigtwinb) + OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &playmark_state::oki_map); +} +void playmark_state::bigtwinb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(bigtwinb_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000)/2); + m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::bigtwinb_main_map); + m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold)); PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); @@ -1098,13 +1098,13 @@ MACHINE_CONFIG_START(playmark_state::bigtwinb) MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwinb) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(playmark_state::screen_update_bigtwinb)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_bigtwinb); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024); @@ -1114,17 +1114,17 @@ MACHINE_CONFIG_START(playmark_state::bigtwinb) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(playmark_state::wbeachvl) + OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &playmark_state::oki_map); +} +void playmark_state::wbeachvl(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(wbeachvl_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::wbeachvl_main_map); + m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold)); PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* 12MHz with internal 4x divisor */ m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // wrong? @@ -1140,13 +1140,13 @@ MACHINE_CONFIG_START(playmark_state::wbeachvl) MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_wbeachvl) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(playmark_state::screen_update_wbeachvl)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_wbeachvl); PALETTE(config, m_palette).set_format(palette_device::RGBx_555, 2048); @@ -1156,17 +1156,17 @@ MACHINE_CONFIG_START(playmark_state::wbeachvl) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(playmark_state::excelsr) + OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &playmark_state::oki_map); +} +void playmark_state::excelsr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(excelsr_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000)/2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::excelsr_main_map); + m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold)); PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* 12MHz with internal 4x divisor */ m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); @@ -1179,13 +1179,13 @@ MACHINE_CONFIG_START(playmark_state::excelsr) MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_excelsr) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(playmark_state::screen_update_excelsr)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_excelsr); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024); @@ -1195,17 +1195,17 @@ MACHINE_CONFIG_START(playmark_state::excelsr) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* 1MHz resonator */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(playmark_state::hrdtimes) + OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* 1MHz resonator */ + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &playmark_state::oki_map); +} +void playmark_state::hrdtimes(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(hrdtimes_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::hrdtimes_main_map); + m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq6_line_hold)); PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* verified on pcb */ // m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // Banking data output but not wired. Port C is wired to the OKI banking instead @@ -1219,13 +1219,13 @@ MACHINE_CONFIG_START(playmark_state::hrdtimes) MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(playmark_state::screen_update_hrdtimes)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_hrdtimes); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024); @@ -1235,17 +1235,17 @@ MACHINE_CONFIG_START(playmark_state::hrdtimes) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(playmark_state::hotmind) + OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* verified on pcb */ + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &playmark_state::oki_map); +} +void playmark_state::hotmind(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(hotmind_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq6_line_hold) // irq 2 and 6 point to the same location on hotmind + M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::hotmind_main_map); + m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq6_line_hold)); // irq 2 and 6 point to the same location on hotmind PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* verified on pcb */ // m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // Banking data output but not wired. Port C is wired to the OKI banking instead @@ -1260,13 +1260,13 @@ MACHINE_CONFIG_START(playmark_state::hotmind) MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(playmark_state::screen_update_hrdtimes)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_hotmind); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024); @@ -1279,17 +1279,17 @@ MACHINE_CONFIG_START(playmark_state::hotmind) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(playmark_state::luckboomh) + OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* verified on pcb */ + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &playmark_state::oki_map); +} +void playmark_state::luckboomh(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(luckboomh_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::luckboomh_main_map); + m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq6_line_hold)); PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* verified on pcb */ // m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // Banking data output but not wired. Port C is wired to the OKI banking instead @@ -1304,13 +1304,13 @@ MACHINE_CONFIG_START(playmark_state::luckboomh) MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(playmark_state::screen_update_hrdtimes)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_luckboomh); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024); @@ -1323,10 +1323,10 @@ MACHINE_CONFIG_START(playmark_state::luckboomh) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* verified on pcb */ + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &playmark_state::oki_map); +} /*************************************************************************** diff --git a/src/mame/drivers/plus4.cpp b/src/mame/drivers/plus4.cpp index 9ff154aacdb..95fc4a8b922 100644 --- a/src/mame/drivers/plus4.cpp +++ b/src/mame/drivers/plus4.cpp @@ -837,7 +837,7 @@ void plus4_state::machine_reset() //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( plus4 ) +// machine_config( plus4 ) //------------------------------------------------- void plus4_state::plus4(machine_config &config) @@ -939,7 +939,7 @@ void plus4_state::plus4(machine_config &config) //------------------------------------------------- -// MACHINE_CONFIG( plus4p ) +// machine_config( plus4p ) //------------------------------------------------- void c16_state::plus4p(machine_config &config) @@ -958,7 +958,7 @@ void c16_state::plus4p(machine_config &config) } //------------------------------------------------- -// MACHINE_CONFIG( plus4n ) +// machine_config( plus4n ) //------------------------------------------------- void c16_state::plus4n(machine_config &config) @@ -978,7 +978,7 @@ void c16_state::plus4n(machine_config &config) //------------------------------------------------- -// MACHINE_CONFIG( c16n ) +// machine_config( c16n ) //------------------------------------------------- void c16_state::c16n(machine_config &config) @@ -999,7 +999,7 @@ void c16_state::c16n(machine_config &config) //------------------------------------------------- -// MACHINE_CONFIG( c16p ) +// machine_config( c16p ) //------------------------------------------------- void c16_state::c16p(machine_config &config) @@ -1027,7 +1027,7 @@ void c16_state::c232(machine_config &config) //------------------------------------------------- -// MACHINE_CONFIG( v364 ) +// machine_config( v364 ) //------------------------------------------------- void c16_state::v364(machine_config &config) diff --git a/src/mame/drivers/pmi80.cpp b/src/mame/drivers/pmi80.cpp index 86ace8c1736..93a6f48aa8a 100644 --- a/src/mame/drivers/pmi80.cpp +++ b/src/mame/drivers/pmi80.cpp @@ -168,16 +168,17 @@ void pmi80_state::machine_start() } -MACHINE_CONFIG_START(pmi80_state::pmi80) +void pmi80_state::pmi80(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",I8080, XTAL(1'000'000)) - MCFG_DEVICE_PROGRAM_MAP(pmi80_mem) - MCFG_DEVICE_IO_MAP(pmi80_io) + I8080(config, m_maincpu, XTAL(1'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &pmi80_state::pmi80_mem); + m_maincpu->set_addrmap(AS_IO, &pmi80_state::pmi80_io); /* video hardware */ config.set_default_layout(layout_pmi80); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pmi80 ) diff --git a/src/mame/drivers/pockchal.cpp b/src/mame/drivers/pockchal.cpp index ec9f541aa11..f0a699cd39d 100644 --- a/src/mame/drivers/pockchal.cpp +++ b/src/mame/drivers/pockchal.cpp @@ -101,23 +101,22 @@ void pockchalv1_state::machine_reset() MACHINE_CONFIG_START(pockchalv1_state::pockchalv1) - /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", TMP90845,8000000) /* ? MHz */ - MCFG_DEVICE_PROGRAM_MAP(pockchalv1_map) -// MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pockchalv1_state, irq0_line_hold) + TMP90845(config, m_maincpu, 8000000); /* ? MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &pockchalv1_state::pockchalv1_map); +// m_maincpu->->set_vblank_int("screen", FUNC(pockchalv1_state::irq0_line_hold)); // wrong, it's a b&w / greyscale thing PALETTE(config, "palette").set_format(palette_device::xRGB_444, 0x100).set_endianness(ENDIANNESS_BIG); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_DRIVER(pockchalv1_state, screen_update_pockchalv1) - 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(256, 256); + screen.set_visarea(0, 256-1, 16, 256-16-1); + screen.set_screen_update(FUNC(pockchalv1_state::screen_update_pockchalv1)); + screen.set_palette("palette"); MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "pockchalw_cart") MCFG_GENERIC_EXTENSIONS("bin") @@ -125,7 +124,6 @@ MACHINE_CONFIG_START(pockchalv1_state::pockchalv1) MCFG_GENERIC_MANDATORY SOFTWARE_LIST(config, "pc1_list").set_compatible("pockchalw"); - MACHINE_CONFIG_END diff --git a/src/mame/drivers/pockstat.cpp b/src/mame/drivers/pockstat.cpp index 73792f320ec..f78ee0d9f40 100644 --- a/src/mame/drivers/pockstat.cpp +++ b/src/mame/drivers/pockstat.cpp @@ -981,16 +981,16 @@ DEVICE_IMAGE_LOAD_MEMBER( pockstat_state, pockstat_flash ) MACHINE_CONFIG_START(pockstat_state::pockstat) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", ARM7, DEFAULT_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(pockstat_mem) + ARM7(config, m_maincpu, DEFAULT_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &pockstat_state::pockstat_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(32, 32) - MCFG_SCREEN_VISIBLE_AREA(0, 32-1, 0, 32-1) - MCFG_SCREEN_UPDATE_DRIVER(pockstat_state, screen_update_pockstat) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(32, 32); + screen.set_visarea(0, 32-1, 0, 32-1); + screen.set_screen_update(FUNC(pockstat_state::screen_update_pockstat)); PALETTE(config, "palette", palette_device::MONOCHROME); diff --git a/src/mame/drivers/pofo.cpp b/src/mame/drivers/pofo.cpp index 239e8c3bb56..01a62f67877 100644 --- a/src/mame/drivers/pofo.cpp +++ b/src/mame/drivers/pofo.cpp @@ -1011,23 +1011,24 @@ void portfolio_state::machine_reset() //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( portfolio ) +// machine_config( portfolio ) //------------------------------------------------- -MACHINE_CONFIG_START(portfolio_state::portfolio) +void portfolio_state::portfolio(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD(M80C88A_TAG, I8088, XTAL(4'915'200)) - MCFG_DEVICE_PROGRAM_MAP(portfolio_mem) - MCFG_DEVICE_IO_MAP(portfolio_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(portfolio_state,portfolio_int_ack) + I8088(config, m_maincpu, XTAL(4'915'200)); + m_maincpu->set_addrmap(AS_PROGRAM, &portfolio_state::portfolio_mem); + m_maincpu->set_addrmap(AS_IO, &portfolio_state::portfolio_io); + m_maincpu->set_irq_acknowledge_callback(FUNC(portfolio_state::portfolio_int_ack)); // video hardware - MCFG_SCREEN_ADD(SCREEN_TAG, LCD) - MCFG_SCREEN_REFRESH_RATE(72) - MCFG_SCREEN_UPDATE_DEVICE(HD61830_TAG, hd61830_device, screen_update) - MCFG_SCREEN_SIZE(240, 64) - MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 64-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_LCD)); + screen.set_refresh_hz(72); + screen.set_screen_update(HD61830_TAG, FUNC(hd61830_device::screen_update)); + screen.set_size(240, 64); + screen.set_visarea(0, 240-1, 0, 64-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(portfolio_state::portfolio_palette), 2); @@ -1040,8 +1041,7 @@ MACHINE_CONFIG_START(portfolio_state::portfolio) // sound hardware SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD(PCD3311T_TAG, PCD3311, XTAL(3'578'640)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + PCD3311(config, m_dtmf, XTAL(3'578'640)).add_route(ALL_OUTPUTS, "mono", 0.25); // devices PORTFOLIO_MEMORY_CARD_SLOT(config, m_ccm, portfolio_memory_cards, nullptr); @@ -1064,7 +1064,7 @@ MACHINE_CONFIG_START(portfolio_state::portfolio) RAM(config, RAM_TAG).set_default_size("128K"); NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/poisk1.cpp b/src/mame/drivers/poisk1.cpp index e7926131184..d7cf7be86f4 100644 --- a/src/mame/drivers/poisk1.cpp +++ b/src/mame/drivers/poisk1.cpp @@ -634,7 +634,8 @@ static INPUT_PORTS_START( poisk1 ) PORT_INCLUDE( poisk1_keyboard_v91 ) INPUT_PORTS_END -MACHINE_CONFIG_START(p1_state::poisk1) +void p1_state::poisk1(machine_config &config) +{ /* basic machine hardware */ I8088(config, m_maincpu, 5000000); m_maincpu->set_addrmap(AS_PROGRAM, &p1_state::poisk1_map); @@ -673,10 +674,10 @@ MACHINE_CONFIG_START(p1_state::poisk1) m_isabus->irq5_callback().set(m_pic8259, FUNC(pic8259_device::ir5_w)); m_isabus->irq7_callback().set(m_pic8259, FUNC(pic8259_device::ir7_w)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", p1_isa8_cards, "fdc", false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, m_isabus, p1_isa8_cards, "fdc", false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, m_isabus, p1_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa3", 0, m_isabus, p1_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa4", 0, m_isabus, p1_isa8_cards, nullptr, false); CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED); @@ -685,19 +686,18 @@ MACHINE_CONFIG_START(p1_state::poisk1) // SOFTWARE_LIST(config, "cass_list").set_original("poisk1_cass"); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD( "speaker", SPEAKER_SOUND ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 ) + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00); - MCFG_SCREEN_ADD( "screen", RASTER ) - MCFG_SCREEN_RAW_PARAMS( XTAL(15'000'000), 912,0,640, 262,0,200 ) - MCFG_SCREEN_UPDATE_DRIVER( p1_state, screen_update ) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(XTAL(15'000'000), 912,0,640, 262,0,200); + m_screen->set_screen_update(FUNC(p1_state::screen_update)); /* XXX verify palette */ PALETTE(config, m_palette, FUNC(p1_state::p1_palette), CGA_PALETTE_SETS * 16); /* internal ram */ RAM(config, RAM_TAG).set_default_size("512K"); -MACHINE_CONFIG_END +} ROM_START( poisk1 ) ROM_REGION16_LE(0x10000,"bios", 0) diff --git a/src/mame/drivers/pokechmp.cpp b/src/mame/drivers/pokechmp.cpp index 2c2d62c8d2b..11662fdc8c7 100644 --- a/src/mame/drivers/pokechmp.cpp +++ b/src/mame/drivers/pokechmp.cpp @@ -226,8 +226,8 @@ WRITE_LINE_MEMBER(pokechmp_state::sound_irq) m_audiocpu->set_input_line(0, HOLD_LINE); } -MACHINE_CONFIG_START(pokechmp_state::pokechmp) - +void pokechmp_state::pokechmp(machine_config &config) +{ /* basic machine hardware */ M6502(config, m_maincpu, 4_MHz_XTAL/4); m_maincpu->set_addrmap(AS_PROGRAM, &pokechmp_state::pokechmp_map); @@ -254,17 +254,15 @@ MACHINE_CONFIG_START(pokechmp_state::pokechmp) GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("ym1", YM2203, XTAL(4'000'000)/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) + YM2203(config, "ym1", XTAL(4'000'000)/4).add_route(ALL_OUTPUTS, "mono", 0.60); - MCFG_DEVICE_ADD("ym2", YM3812, XTAL(24'000'000)/16) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + YM3812(config, "ym2", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(24'000'000)/16, okim6295_device::PIN7_LOW) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* sound fx */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_DEVICE_ADDRESS_MAP(0, pokechmp_oki_map) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", XTAL(24'000'000)/16, okim6295_device::PIN7_LOW)); + oki.add_route(ALL_OUTPUTS, "mono", 0.50); /* sound fx */ + oki.add_route(ALL_OUTPUTS, "mono", 0.50); + oki.set_addrmap(0, &pokechmp_state::pokechmp_oki_map); +} void pokechmp_state::init_pokechmp() { diff --git a/src/mame/drivers/poker72.cpp b/src/mame/drivers/poker72.cpp index ff8c55b240a..96522df743a 100644 --- a/src/mame/drivers/poker72.cpp +++ b/src/mame/drivers/poker72.cpp @@ -371,20 +371,21 @@ void poker72_state::machine_reset() membank("bank1")->set_entry(0); } -MACHINE_CONFIG_START(poker72_state::poker72) +void poker72_state::poker72(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,8000000) /* ? MHz */ - MCFG_DEVICE_PROGRAM_MAP(poker72_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", poker72_state, irq0_line_hold) + Z80(config, m_maincpu, 8000000); /* ? MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &poker72_state::poker72_map); + m_maincpu->set_vblank_int("screen", FUNC(poker72_state::irq0_line_hold)); /* 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, 64*8-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(poker72_state, screen_update_poker72) - 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, 64*8-1, 0, 32*8-1); + screen.set_screen_update(FUNC(poker72_state::screen_update_poker72)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_poker72); PALETTE(config, m_palette, FUNC(poker72_state::poker72_palette), 0xe00); @@ -395,7 +396,7 @@ MACHINE_CONFIG_START(poker72_state::poker72) ay.port_a_read_callback().set_ioport("SW2"); ay.port_b_read_callback().set_ioport("SW3"); ay.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/poly.cpp b/src/mame/drivers/poly.cpp index 13c5914884a..06d9be0e9cf 100644 --- a/src/mame/drivers/poly.cpp +++ b/src/mame/drivers/poly.cpp @@ -248,22 +248,23 @@ static void poly_floppies(device_slot_interface &device) } -MACHINE_CONFIG_START(poly_state::poly) +void poly_state::poly(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809, 12.0576_MHz_XTAL / 3) - MCFG_DEVICE_PROGRAM_MAP(poly_mem) + MC6809(config, m_maincpu, 12.0576_MHz_XTAL / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &poly_state::poly_mem); ADDRESS_MAP_BANK(config, "bankdev").set_map(&poly_state::poly_bank).set_options(ENDIANNESS_LITTLE, 8, 17, 0x10000); INPUT_MERGER_ANY_HIGH(config, "irqs").output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(40 * 12, 24 * 20) - MCFG_SCREEN_VISIBLE_AREA(0, 40 * 12 - 1, 0, 24 * 20 - 1) - MCFG_SCREEN_UPDATE_DRIVER(poly_state, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(40 * 12, 24 * 20); + screen.set_visarea(0, 40 * 12 - 1, 0, 24 * 20 - 1); + screen.set_screen_update(FUNC(poly_state::screen_update)); SAA5050(config, m_trom[0], 12.0576_MHz_XTAL / 2); m_trom[0]->d_cb().set(FUNC(poly_state::videoram_1_r)); @@ -275,8 +276,7 @@ MACHINE_CONFIG_START(poly_state::poly) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); /* internal ram */ RAM(config, m_ram).set_default_size("128K").set_extra_options("64K"); @@ -342,7 +342,7 @@ MACHINE_CONFIG_START(poly_state::poly) /* software lists */ SOFTWARE_LIST(config, "flop_list").set_original("poly_flop").set_filter("POLY1"); -MACHINE_CONFIG_END +} void poly_state::poly2(machine_config &config) diff --git a/src/mame/drivers/poly88.cpp b/src/mame/drivers/poly88.cpp index d082c962649..60ea6f60a35 100644 --- a/src/mame/drivers/poly88.cpp +++ b/src/mame/drivers/poly88.cpp @@ -197,20 +197,20 @@ GFXDECODE_END MACHINE_CONFIG_START(poly88_state::poly88) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080A, XTAL(16'588'800) / 9) // uses 8224 clock generator - MCFG_DEVICE_PROGRAM_MAP(poly88_mem) - MCFG_DEVICE_IO_MAP(poly88_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", poly88_state, poly88_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(poly88_state,poly88_irq_callback) + I8080A(config, m_maincpu, XTAL(16'588'800) / 9); // uses 8224 clock generator + m_maincpu->set_addrmap(AS_PROGRAM, &poly88_state::poly88_mem); + m_maincpu->set_addrmap(AS_IO, &poly88_state::poly88_io); + m_maincpu->set_vblank_int("screen", FUNC(poly88_state::poly88_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(poly88_state::poly88_irq_callback)); /* 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(64*10, 16*15) - MCFG_SCREEN_VISIBLE_AREA(0, 64*10-1, 0, 16*15-1) - MCFG_SCREEN_UPDATE_DRIVER(poly88_state, screen_update_poly88) - 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(2500)); /* not accurate */ + screen.set_size(64*10, 16*15); + screen.set_visarea(0, 64*10-1, 0, 16*15-1); + screen.set_screen_update(FUNC(poly88_state::screen_update_poly88)); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_poly88); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -234,12 +234,12 @@ MACHINE_CONFIG_START(poly88_state::poly88) MCFG_SNAPSHOT_ADD("snapshot", poly88_state, poly88, "img", attotime::from_seconds(2)) MACHINE_CONFIG_END -MACHINE_CONFIG_START(poly88_state::poly8813) +void poly88_state::poly8813(machine_config &config) +{ poly88(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(poly8813_mem) - MCFG_DEVICE_IO_MAP(poly8813_io) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &poly88_state::poly8813_mem); + m_maincpu->set_addrmap(AS_IO, &poly88_state::poly8813_io); +} /* ROM definition */ ROM_START( poly88 ) diff --git a/src/mame/drivers/polyplay.cpp b/src/mame/drivers/polyplay.cpp index 276dec717b0..e1c572457b9 100644 --- a/src/mame/drivers/polyplay.cpp +++ b/src/mame/drivers/polyplay.cpp @@ -276,7 +276,8 @@ GFXDECODE_END /* the machine driver */ -MACHINE_CONFIG_START(polyplay_state::polyplay_zre) +void polyplay_state::polyplay_zre(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, POLYPLAY_MAIN_CLOCK / 4); /* UB880D */ m_maincpu->set_daisy_config(daisy_chain_zre); @@ -299,12 +300,12 @@ MACHINE_CONFIG_START(polyplay_state::polyplay_zre) m_z80pio->out_pb_callback().set(FUNC(polyplay_state::pio_portb_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(polyplay_state, screen_update_polyplay) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(polyplay_state::screen_update_polyplay)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_polyplay); PALETTE(config, m_palette, FUNC(polyplay_state::polyplay_palette), 10); @@ -313,7 +314,7 @@ MACHINE_CONFIG_START(polyplay_state::polyplay_zre) SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker1).add_route(ALL_OUTPUTS, "mono", 0.5); SPEAKER_SOUND(config, m_speaker2).add_route(ALL_OUTPUTS, "mono", 0.5); -MACHINE_CONFIG_END +} void polyplay_state::polyplay_zrepp(machine_config &config) { diff --git a/src/mame/drivers/poolshrk.cpp b/src/mame/drivers/poolshrk.cpp index 35efc9757e1..106d142f315 100644 --- a/src/mame/drivers/poolshrk.cpp +++ b/src/mame/drivers/poolshrk.cpp @@ -216,22 +216,22 @@ void poolshrk_state::poolshrk_palette(palette_device &palette) const } -MACHINE_CONFIG_START(poolshrk_state::poolshrk) - +void poolshrk_state::poolshrk(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6800, 11055000 / 8) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(poolshrk_cpu_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", poolshrk_state, irq0_line_assert) + M6800(config, m_maincpu, 11055000 / 8); /* ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &poolshrk_state::poolshrk_cpu_map); + m_maincpu->set_vblank_int("screen", FUNC(poolshrk_state::irq0_line_assert)); WATCHDOG_TIMER(config, m_watchdog); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(1, 255, 24, 255) - MCFG_SCREEN_UPDATE_DRIVER(poolshrk_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_size(256, 256); + screen.set_visarea(1, 255, 24, 255); + screen.set_screen_update(FUNC(poolshrk_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_poolshrk); PALETTE(config, m_palette, FUNC(poolshrk_state::poolshrk_palette), 4); @@ -239,9 +239,8 @@ MACHINE_CONFIG_START(poolshrk_state::poolshrk) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("discrete", DISCRETE, poolshrk_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + DISCRETE(config, m_discrete, poolshrk_discrete).add_route(ALL_OUTPUTS, "mono", 1.0); +} ROM_START( poolshrk ) diff --git a/src/mame/drivers/pooyan.cpp b/src/mame/drivers/pooyan.cpp index 6bc9f9a649c..284134f4ad0 100644 --- a/src/mame/drivers/pooyan.cpp +++ b/src/mame/drivers/pooyan.cpp @@ -193,11 +193,11 @@ void pooyan_state::machine_start() } -MACHINE_CONFIG_START(pooyan_state::pooyan) - +void pooyan_state::pooyan(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/3/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) + Z80(config, m_maincpu, MASTER_CLOCK/3/2); + m_maincpu->set_addrmap(AS_PROGRAM, &pooyan_state::main_map); ls259_device &mainlatch(LS259(config, "mainlatch")); // B2 mainlatch.q_out_cb<0>().set(FUNC(pooyan_state::irq_enable_w)); @@ -211,20 +211,20 @@ MACHINE_CONFIG_START(pooyan_state::pooyan) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - 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(pooyan_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pooyan_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + 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(pooyan_state::screen_update)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(pooyan_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pooyan); PALETTE(config, m_palette, FUNC(pooyan_state::pooyan_palette), 16*16+16*16, 32); /* sound hardware */ TIMEPLT_AUDIO(config, "timeplt_audio"); -MACHINE_CONFIG_END +} /************************************* diff --git a/src/mame/drivers/popobear.cpp b/src/mame/drivers/popobear.cpp index 9739224ef84..672c799b83e 100644 --- a/src/mame/drivers/popobear.cpp +++ b/src/mame/drivers/popobear.cpp @@ -642,22 +642,22 @@ TIMER_DEVICE_CALLBACK_MEMBER(popobear_state::irq) m_maincpu->set_input_line(2, ASSERT_LINE); } -MACHINE_CONFIG_START(popobear_state::popobear) - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(42'000'000)/4) // XTAL CORRECT, DIVISOR GUESSED - MCFG_DEVICE_PROGRAM_MAP(popobear_mem) +void popobear_state::popobear(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(42'000'000)/4); // XTAL CORRECT, DIVISOR GUESSED + m_maincpu->set_addrmap(AS_PROGRAM, &popobear_state::popobear_mem); // levels 2,3,5 look interesting - //MCFG_DEVICE_VBLANK_INT_DRIVER("screen", popobear_state, irq5_line_assert) - //MCFG_DEVICE_PERIODIC_INT_DRIVER(popobear_state, irq2_line_assert, 120) + //->set_vblank_int("screen", popobear_state, irq5_line_assert) + //->set_periodic_int(FUNC(popobear_state, irq2_line_assert, 120) TIMER(config, "scantimer").configure_scanline(FUNC(popobear_state::irq), "screen", 0, 1); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(popobear_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - - MCFG_SCREEN_SIZE(128*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 239) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(popobear_state::screen_update)); + screen.set_palette(m_palette); + screen.set_size(128*8, 32*8); + screen.set_visarea(0, 479, 0, 239); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 256*2); @@ -665,12 +665,10 @@ MACHINE_CONFIG_START(popobear_state::popobear) GFXDECODE(config, m_gfxdecode, m_palette, gfx_popobear); - MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(42'000'000)/16) // XTAL CORRECT, DIVISOR GUESSED - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + YM2413(config, "ymsnd", XTAL(42'000'000)/16).add_route(ALL_OUTPUTS, "mono", 1.0); // XTAL CORRECT, DIVISOR GUESSED - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(42'000'000)/32, okim6295_device::PIN7_LOW) // XTAL CORRECT, DIVISOR GUESSED - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", XTAL(42'000'000)/32, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0); // XTAL CORRECT, DIVISOR GUESSED +} ROM_START( popobear ) diff --git a/src/mame/drivers/popper.cpp b/src/mame/drivers/popper.cpp index 6c17179780a..93bd11f34ab 100644 --- a/src/mame/drivers/popper.cpp +++ b/src/mame/drivers/popper.cpp @@ -534,20 +534,21 @@ void popper_state::machine_reset() // MACHINE DEFINTIONS //************************************************************************** -MACHINE_CONFIG_START(popper_state::popper) - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/3/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) +void popper_state::popper(machine_config &config) +{ + Z80(config, m_maincpu, XTAL(18'432'000)/3/2); + m_maincpu->set_addrmap(AS_PROGRAM, &popper_state::main_map); - MCFG_DEVICE_ADD("subcpu", Z80, XTAL(18'432'000)/3/2) - MCFG_DEVICE_PROGRAM_MAP(sub_map) + Z80(config, m_subcpu, XTAL(18'432'000)/3/2); + m_subcpu->set_addrmap(AS_PROGRAM, &popper_state::sub_map); config.m_perfect_cpu_quantum = subtag("maincpu"); // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(18'432'000)/3, 384, 48, 328, 264, 16, 240) - MCFG_SCREEN_UPDATE_DRIVER(popper_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(XTAL(18'432'000)/3, 384, 48, 328, 264, 16, 240); + m_screen->set_screen_update(FUNC(popper_state::screen_update)); + m_screen->set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_popper); @@ -559,7 +560,7 @@ MACHINE_CONFIG_START(popper_state::popper) AY8910(config, m_ay[0], XTAL(18'432'000)/3/2/2).add_route(ALL_OUTPUTS, "mono", 0.25); AY8910(config, m_ay[1], XTAL(18'432'000)/3/2/2).add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} //************************************************************************** diff --git a/src/mame/drivers/portrait.cpp b/src/mame/drivers/portrait.cpp index 385f5720e95..5f0ea95b14e 100644 --- a/src/mame/drivers/portrait.cpp +++ b/src/mame/drivers/portrait.cpp @@ -254,23 +254,24 @@ static GFXDECODE_START( gfx_portrait ) GFXDECODE_END -MACHINE_CONFIG_START(portrait_state::portrait) - MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(portrait_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", portrait_state, irq0_line_hold) +void portrait_state::portrait(machine_config &config) +{ + Z80(config, m_maincpu, 4000000); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &portrait_state::portrait_map); + m_maincpu->set_vblank_int("screen", FUNC(portrait_state::irq0_line_hold)); - MCFG_DEVICE_ADD("audiocpu", I8039, 3120000) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(portrait_sound_map) + i8039_device &audiocpu(I8039(config, "audiocpu", 3120000)); /* ? */ + audiocpu.set_addrmap(AS_PROGRAM, &portrait_state::portrait_sound_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 0*8, 40*8-1) - MCFG_SCREEN_UPDATE_DRIVER(portrait_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 54*8-1, 0*8, 40*8-1); + screen.set_screen_update(FUNC(portrait_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_portrait); PALETTE(config, m_palette, FUNC(portrait_state::portrait_palette), 0x800, 0x40); @@ -281,7 +282,7 @@ MACHINE_CONFIG_START(portrait_state::portrait) GENERIC_LATCH_8(config, "soundlatch"); TMS5200(config, m_tms, 640000).add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} ROM_START( portrait ) diff --git a/src/mame/drivers/potgoldu.cpp b/src/mame/drivers/potgoldu.cpp index f6e19d70af8..3eb610b779f 100644 --- a/src/mame/drivers/potgoldu.cpp +++ b/src/mame/drivers/potgoldu.cpp @@ -78,8 +78,8 @@ static INPUT_PORTS_START( potgold ) INPUT_PORTS_END -MACHINE_CONFIG_START(potgold_state::potgold) - +void potgold_state::potgold(machine_config &config) +{ /* basic machine hardware */ TMS34010(config, m_maincpu, XTAL(40'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &potgold_state::potgold_map); @@ -88,13 +88,13 @@ MACHINE_CONFIG_START(potgold_state::potgold) m_maincpu->set_pixels_per_clock(1); m_maincpu->set_scanline_rgb32_callback(FUNC(potgold_state::scanline_update)); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200) - MCFG_SCREEN_UPDATE_DEVICE("maincpu", tms34010_device, tms340x0_rgb32) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200); + screen.set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_rgb32)); /* sound hardware */ /* YM2413 */ -MACHINE_CONFIG_END +} ROM_START( potgoldu ) ROM_REGION16_LE( 0x400000, "user1", 0 ) /* 34010 code */ diff --git a/src/mame/drivers/powerbal.cpp b/src/mame/drivers/powerbal.cpp index 09cca74a673..d5ae925c83e 100644 --- a/src/mame/drivers/powerbal.cpp +++ b/src/mame/drivers/powerbal.cpp @@ -626,24 +626,24 @@ MACHINE_RESET_MEMBER(powerbal_state,powerbal) configure_oki_banks(); } -MACHINE_CONFIG_START(powerbal_state::powerbal) - +void powerbal_state::powerbal(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(powerbal_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", powerbal_state, irq2_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &powerbal_state::powerbal_main_map); + m_maincpu->set_vblank_int("screen", FUNC(powerbal_state::irq2_line_hold)); MCFG_MACHINE_START_OVERRIDE(powerbal_state,powerbal) MCFG_MACHINE_RESET_OVERRIDE(powerbal_state,powerbal) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(61) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(128*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(powerbal_state, screen_update_powerbal) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(61); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(128*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(powerbal_state::screen_update_powerbal)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_powerbal); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 512); @@ -653,17 +653,17 @@ MACHINE_CONFIG_START(powerbal_state::powerbal) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(powerbal_state::magicstk) + OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &powerbal_state::oki_map); +} +void powerbal_state::magicstk(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(magicstk_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", powerbal_state, irq2_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &powerbal_state::magicstk_main_map); + m_maincpu->set_vblank_int("screen", FUNC(powerbal_state::irq2_line_hold)); EEPROM_93C46_16BIT(config, "eeprom").default_value(0); @@ -671,13 +671,13 @@ MACHINE_CONFIG_START(powerbal_state::magicstk) MCFG_MACHINE_RESET_OVERRIDE(powerbal_state,powerbal) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(61) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(128*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(powerbal_state, screen_update_powerbal) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(61); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(128*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(powerbal_state::screen_update_powerbal)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_powerbal); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 512); @@ -687,25 +687,23 @@ MACHINE_CONFIG_START(powerbal_state::magicstk) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(powerbal_state::atombjt) + OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &powerbal_state::oki_map); +} +void powerbal_state::atombjt(machine_config &config) +{ powerbal(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(atombjt_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", powerbal_state, irq6_line_hold) + m_maincpu->set_addrmap(AS_PROGRAM, &powerbal_state::atombjt_map); + m_maincpu->set_vblank_int("screen", FUNC(powerbal_state::irq6_line_hold)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_SIZE(512, 256) \ - MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) \ + subdevice<screen_device>("screen")->set_size(512, 256); + subdevice<screen_device>("screen")->set_visarea(0*8, 48*8-1, 2*8, 30*8-1); MCFG_VIDEO_START_OVERRIDE(powerbal_state,atombjt) -MACHINE_CONFIG_END +} /* Power Balls diff --git a/src/mame/drivers/powerstack.cpp b/src/mame/drivers/powerstack.cpp index 8f25734b9c3..d5444770d65 100644 --- a/src/mame/drivers/powerstack.cpp +++ b/src/mame/drivers/powerstack.cpp @@ -27,10 +27,11 @@ private: static INPUT_PORTS_START( powerstack ) INPUT_PORTS_END -MACHINE_CONFIG_START(powerstack_state::powerstack) -// MCFG_DEVICE_ADD("maincpu", PPC604, 300'000'000) // PPC604E @ 300MHz -// MCFG_DEVICE_PROGRAM_MAP(mem_map) -MACHINE_CONFIG_END +void powerstack_state::powerstack(machine_config &config) +{ +// ppc604_device &maincpu(PPC604(config, "maincpu", 300'000'000)); // PPC604E @ 300MHz +// maincpu.set_addrmap(AS_PROGRAM, &powerstack_state::mem_map); +} ROM_START( powerstk ) ROM_REGION( 0x80000, "roms", 0 ) diff --git a/src/mame/drivers/pp01.cpp b/src/mame/drivers/pp01.cpp index 22386146fac..21f0d21d743 100644 --- a/src/mame/drivers/pp01.cpp +++ b/src/mame/drivers/pp01.cpp @@ -199,20 +199,21 @@ static INPUT_PORTS_START( pp01 ) INPUT_PORTS_END /* Machine driver */ -MACHINE_CONFIG_START(pp01_state::pp01) +void pp01_state::pp01(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080, 2000000) - MCFG_DEVICE_PROGRAM_MAP(pp01_mem) - MCFG_DEVICE_IO_MAP(pp01_io) + I8080(config, m_maincpu, 2000000); + m_maincpu->set_addrmap(AS_PROGRAM, &pp01_state::pp01_mem); + m_maincpu->set_addrmap(AS_IO, &pp01_state::pp01_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(pp01_state, screen_update_pp01) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(256, 256); + screen.set_visarea(0, 256-1, 0, 256-1); + screen.set_screen_update(FUNC(pp01_state::screen_update_pp01)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pp01_state::pp01_palette), 8); @@ -222,7 +223,7 @@ MACHINE_CONFIG_START(pp01_state::pp01) //WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); /* Devices */ - MCFG_DEVICE_ADD("uart", I8251, 0) + I8251(config, "uart", 0); // when rts and dtr are both high, the uart is being used for cassette operations PIT8253(config, m_pit, 0); @@ -243,7 +244,7 @@ MACHINE_CONFIG_START(pp01_state::pp01) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K").set_default_value(0x00); -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/ppmast93.cpp b/src/mame/drivers/ppmast93.cpp index 8e4a1a95396..5294c66c52f 100644 --- a/src/mame/drivers/ppmast93.cpp +++ b/src/mame/drivers/ppmast93.cpp @@ -373,26 +373,27 @@ uint32_t ppmast93_state::screen_update(screen_device &screen, bitmap_ind16 &bitm return 0; } -MACHINE_CONFIG_START(ppmast93_state::ppmast93) +void ppmast93_state::ppmast93(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,5000000) /* 5 MHz */ - MCFG_DEVICE_PROGRAM_MAP(ppmast93_cpu1_map) - MCFG_DEVICE_IO_MAP(ppmast93_cpu1_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", ppmast93_state, irq0_line_hold) + Z80(config, m_maincpu, 5000000); /* 5 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &ppmast93_state::ppmast93_cpu1_map); + m_maincpu->set_addrmap(AS_IO, &ppmast93_state::ppmast93_cpu1_io); + m_maincpu->set_vblank_int("screen", FUNC(ppmast93_state::irq0_line_hold)); - MCFG_DEVICE_ADD("sub", Z80,5000000) /* 5 MHz */ - MCFG_DEVICE_PROGRAM_MAP(ppmast93_cpu2_map) - MCFG_DEVICE_IO_MAP(ppmast93_cpu2_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(ppmast93_state, irq0_line_hold, 8000) + z80_device &sub(Z80(config, "sub", 5000000)); /* 5 MHz */ + sub.set_addrmap(AS_PROGRAM, &ppmast93_state::ppmast93_cpu2_map); + sub.set_addrmap(AS_IO, &ppmast93_state::ppmast93_cpu2_io); + sub.set_periodic_int(FUNC(ppmast93_state::irq0_line_hold), attotime::from_hz(8000)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(55) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(ppmast93_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(55); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(256, 256); + screen.set_visarea(0, 256-1, 0, 256-1); + screen.set_screen_update(FUNC(ppmast93_state::screen_update)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_ppmast93); @@ -403,14 +404,13 @@ MACHINE_CONFIG_START(ppmast93_state::ppmast93) GENERIC_LATCH_8(config, "soundlatch"); - MCFG_DEVICE_ADD("ymsnd", YM2413, 5000000/2) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) + YM2413(config, "ymsnd", 5000000/2).add_route(ALL_OUTPUTS, "speaker", 1.0); DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.3); // unknown DAC voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} ROM_START( ppmast93 ) ROM_REGION( 0x20000, "maincpu", 0 ) diff --git a/src/mame/drivers/prestige.cpp b/src/mame/drivers/prestige.cpp index de06047e6b3..eb89d393fc1 100644 --- a/src/mame/drivers/prestige.cpp +++ b/src/mame/drivers/prestige.cpp @@ -743,23 +743,24 @@ TIMER_DEVICE_CALLBACK_MEMBER(prestige_state::irq_timer) m_maincpu->set_input_line(0, ASSERT_LINE); } -MACHINE_CONFIG_START(prestige_state::prestige_base) +void prestige_state::prestige_base(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(8'000'000)) // Z84C008 - MCFG_DEVICE_PROGRAM_MAP(prestige_mem) - MCFG_DEVICE_IO_MAP(prestige_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(prestige_state,prestige_int_ack) + Z80(config, m_maincpu, XTAL(8'000'000)); // Z84C008 + m_maincpu->set_addrmap(AS_PROGRAM, &prestige_state::prestige_mem); + m_maincpu->set_addrmap(AS_IO, &prestige_state::prestige_io); + m_maincpu->set_irq_acknowledge_callback(FUNC(prestige_state::prestige_int_ack)); TIMER(config, "irq_timer").configure_periodic(FUNC(prestige_state::irq_timer), attotime::from_hz(200)); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(prestige_state, screen_update_1bpp) - MCFG_SCREEN_SIZE( 240, 100 ) - MCFG_SCREEN_VISIBLE_AREA( 0, 240-1, 0, 100-1 ) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(prestige_state::screen_update_1bpp)); + screen.set_size(240, 100); + screen.set_visarea(0, 240-1, 0, 100-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(prestige_state::prestige_palette), 2); @@ -768,32 +769,32 @@ MACHINE_CONFIG_START(prestige_state::prestige_base) /* internal ram */ RAM(config, RAM_TAG).set_default_size("32K").set_extra_options("64K"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(prestige_state::glcolor) +void prestige_state::glcolor(machine_config &config) +{ prestige_base(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(glcolor_io) + m_maincpu->set_addrmap(AS_IO, &prestige_state::glcolor_io); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(prestige_state, screen_update_2bpp) - MCFG_SCREEN_SIZE( 160, 80 ) - MCFG_SCREEN_VISIBLE_AREA( 0, 160-1, 0, 80-1 ) + screen_device &screen(*subdevice<screen_device>("screen")); + screen.set_screen_update(FUNC(prestige_state::screen_update_2bpp)); + screen.set_size(160, 80); + screen.set_visarea(0, 160-1, 0, 80-1); subdevice<palette_device>("palette")->set_entries(4).set_init(FUNC(prestige_state::glcolor_palette)); SOFTWARE_LIST(config, "cart_list").set_original("glcolor"); SOFTWARE_LIST(config, "snotec_cart").set_compatible("snotec"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(prestige_state::glmcolor) +void prestige_state::glmcolor(machine_config &config) +{ glcolor(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(prestige_io) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &prestige_state::prestige_io); +} void prestige_state::snotec(machine_config &config) { diff --git a/src/mame/drivers/primo.cpp b/src/mame/drivers/primo.cpp index 5fc7a9b154a..01d473632fe 100644 --- a/src/mame/drivers/primo.cpp +++ b/src/mame/drivers/primo.cpp @@ -248,19 +248,19 @@ static const struct CassetteOptions primo_cassette_options = { MACHINE_CONFIG_START(primo_state::primoa32) /* basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", Z80, 2500000 ) - MCFG_DEVICE_PROGRAM_MAP( primo32_mem) - MCFG_DEVICE_IO_MAP( primoa_port) + Z80(config, m_maincpu, 2500000); + m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo32_mem); + m_maincpu->set_addrmap(AS_IO, &primo_state::primoa_port); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE( 50 ) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE( 256, 192 ) - MCFG_SCREEN_VISIBLE_AREA( 0, 256-1, 0, 192-1 ) - MCFG_SCREEN_UPDATE_DRIVER(primo_state, screen_update_primo) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, primo_state, vblank_irq)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(50); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(256, 192); + m_screen->set_visarea(0, 256-1, 0, 192-1); + m_screen->set_screen_update(FUNC(primo_state::screen_update_primo)); + m_screen->set_palette("palette"); + m_screen->screen_vblank().set(FUNC(primo_state::vblank_irq)); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -286,49 +286,49 @@ MACHINE_CONFIG_START(primo_state::primoa32) GENERIC_CARTSLOT(config, m_cart2, generic_plain_slot, nullptr, "bin,rom"); MACHINE_CONFIG_END -MACHINE_CONFIG_START(primo_state::primoa48) +void primo_state::primoa48(machine_config &config) +{ primoa32(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(primo48_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo48_mem); +} -MACHINE_CONFIG_START(primo_state::primoa64) +void primo_state::primoa64(machine_config &config) +{ primoa32(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(primo64_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo64_mem); +} -MACHINE_CONFIG_START(primo_state::primob32) +void primo_state::primob32(machine_config &config) +{ primoa32(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(primob_port) + m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(primo_state::primob48) +void primo_state::primob48(machine_config &config) +{ primoa48(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(primob_port) + m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(primo_state::primob64) +void primo_state::primob64(machine_config &config) +{ primoa64(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(primob_port) + m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(primo_state::primoc64) +void primo_state::primoc64(machine_config &config) +{ primoa64(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(primob_port) + m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -MACHINE_CONFIG_END +} ROM_START( primoa32 ) ROM_REGION( 0x14000, "maincpu", ROMREGION_ERASEFF ) diff --git a/src/mame/drivers/prof180x.cpp b/src/mame/drivers/prof180x.cpp index 2c9f533ecd2..3391c782c4c 100644 --- a/src/mame/drivers/prof180x.cpp +++ b/src/mame/drivers/prof180x.cpp @@ -238,19 +238,20 @@ void prof180x_state::machine_reset() } } -MACHINE_CONFIG_START(prof180x_state::prof180x) +void prof180x_state::prof180x(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(HD64180_TAG, Z80, XTAL(9'216'000)) - MCFG_DEVICE_PROGRAM_MAP(prof180x_mem) - MCFG_DEVICE_IO_MAP(prof180x_io) + z80_device &maincpu(Z80(config, HD64180_TAG, XTAL(9'216'000))); + maincpu.set_addrmap(AS_PROGRAM, &prof180x_state::prof180x_mem); + maincpu.set_addrmap(AS_IO, &prof180x_state::prof180x_io); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_UPDATE_DRIVER(prof180x_state, screen_update) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(prof180x_state::screen_update)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); /* devices */ UPD765A(config, FDC9268_TAG, 8'000'000, false, true); @@ -271,7 +272,7 @@ MACHINE_CONFIG_START(prof180x_state::prof180x) /* software lists */ SOFTWARE_LIST(config, "flop_list").set_original("prof180"); -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/prof80.cpp b/src/mame/drivers/prof80.cpp index 9d2cdef58fe..21426bd4a5e 100644 --- a/src/mame/drivers/prof80.cpp +++ b/src/mame/drivers/prof80.cpp @@ -447,7 +447,7 @@ void prof80_state::machine_start() //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( prof80 ) +// machine_config( prof80 ) //------------------------------------------------- void prof80_state::prof80(machine_config &config) diff --git a/src/mame/drivers/progolf.cpp b/src/mame/drivers/progolf.cpp index a3ff28598fa..b40a1b5018e 100644 --- a/src/mame/drivers/progolf.cpp +++ b/src/mame/drivers/progolf.cpp @@ -418,13 +418,14 @@ void progolf_state::progolf_palette(palette_device &palette) const } } -MACHINE_CONFIG_START(progolf_state::progolf) +void progolf_state::progolf(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", DECO_222, 3000000/2) /* guess, 3 Mhz makes the game to behave worse? */ - MCFG_DEVICE_PROGRAM_MAP(main_cpu) + DECO_222(config, m_maincpu, 3000000/2); /* guess, 3 Mhz makes the game to behave worse? */ + m_maincpu->set_addrmap(AS_PROGRAM, &progolf_state::main_cpu); - MCFG_DEVICE_ADD("audiocpu", M6502, 500000) - MCFG_DEVICE_PROGRAM_MAP(sound_cpu) + M6502(config, m_audiocpu, 500000); + m_audiocpu->set_addrmap(AS_PROGRAM, &progolf_state::sound_cpu); config.m_perfect_cpu_quantum = subtag("maincpu"); @@ -433,13 +434,13 @@ MACHINE_CONFIG_START(progolf_state::progolf) soundlatch.set_separate_acknowledge(true); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(57) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3072)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(progolf_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(57); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(3072)); + screen.set_size(256, 256); + screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(progolf_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_progolf); PALETTE(config, m_palette, FUNC(progolf_state::progolf_palette), 32 * 3); @@ -455,14 +456,15 @@ MACHINE_CONFIG_START(progolf_state::progolf) AY8910(config, "ay1", 12000000/8).add_route(ALL_OUTPUTS, "mono", 0.23); AY8910(config, "ay2", 12000000/8).add_route(ALL_OUTPUTS, "mono", 0.23); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(progolf_state::progolfa) +void progolf_state::progolfa(machine_config &config) +{ progolf(config); - config.device_remove("maincpu"); /* different encrypted cpu to progolf */ - MCFG_DEVICE_ADD("maincpu", DECO_CPU6, 3000000/2) /* guess, 3 Mhz makes the game to behave worse? */ - MCFG_DEVICE_PROGRAM_MAP(main_cpu) -MACHINE_CONFIG_END + /* different encrypted cpu to progolf */ + DECO_CPU6(config.replace(), m_maincpu, 3000000/2); /* guess, 3 Mhz makes the game to behave worse? */ + m_maincpu->set_addrmap(AS_PROGRAM, &progolf_state::main_cpu); +} ROM_START( progolf ) diff --git a/src/mame/drivers/proteus.cpp b/src/mame/drivers/proteus.cpp index dc99f66cf9a..fbdd9ecf67c 100644 --- a/src/mame/drivers/proteus.cpp +++ b/src/mame/drivers/proteus.cpp @@ -321,14 +321,15 @@ static void proteus_floppies(device_slot_interface &device) } -MACHINE_CONFIG_START(proteus_state::proteus) +void proteus_state::proteus(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809, 4_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(proteus_6809_mem) + MC6809(config, m_maincpu, 4_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &proteus_state::proteus_6809_mem); - MCFG_DEVICE_ADD("z80", Z80, 4_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(proteus_z80_mem) - MCFG_DEVICE_IO_MAP(proteus_z80_io) + Z80(config, m_z80, 4_MHz_XTAL); + m_z80->set_addrmap(AS_PROGRAM, &proteus_state::proteus_z80_mem); + m_z80->set_addrmap(AS_IO, &proteus_state::proteus_z80_io); INPUT_MERGER_ANY_HIGH(config, m_irqs); m_irqs->output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); @@ -413,7 +414,7 @@ MACHINE_CONFIG_START(proteus_state::proteus) /* software lists */ SOFTWARE_LIST(config, "flop_list").set_original("poly_flop").set_filter("PROTEUS"); -MACHINE_CONFIG_END +} ROM_START(proteus) diff --git a/src/mame/drivers/proteus3.cpp b/src/mame/drivers/proteus3.cpp index 5ffeabee34a..c18892408bf 100644 --- a/src/mame/drivers/proteus3.cpp +++ b/src/mame/drivers/proteus3.cpp @@ -380,19 +380,20 @@ void proteus3_state::machine_reset() Machine Drivers ******************************************************************************/ -MACHINE_CONFIG_START(proteus3_state::proteus3) +void proteus3_state::proteus3(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6800, XTAL(3'579'545)) /* Divided by 4 internally */ - MCFG_DEVICE_PROGRAM_MAP(proteus3_mem) + M6800(config, m_maincpu, XTAL(3'579'545)); /* Divided by 4 internally */ + m_maincpu->set_addrmap(AS_PROGRAM, &proteus3_state::proteus3_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(200)) - MCFG_SCREEN_SIZE(64*8, 16*12) - MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*12-1) - MCFG_SCREEN_UPDATE_DRIVER(proteus3_state, screen_update_proteus3) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(200)); + screen.set_size(64*8, 16*12); + screen.set_visarea(0, 64*8-1, 0, 16*12-1); + screen.set_screen_update(FUNC(proteus3_state::screen_update_proteus3)); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_proteus3); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -442,7 +443,7 @@ MACHINE_CONFIG_START(proteus3_state::proteus3) m_brg->out_f<13>().set(FUNC(proteus3_state::write_f13_clock)); m_brg->out_f<14>().set(FUNC(proteus3_state::write_f14_clock)); m_brg->out_f<15>().set(FUNC(proteus3_state::write_f15_clock)); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/pse.cpp b/src/mame/drivers/pse.cpp index c6a1511ea3a..7dfb6a595b2 100644 --- a/src/mame/drivers/pse.cpp +++ b/src/mame/drivers/pse.cpp @@ -99,11 +99,11 @@ void pse_state::video_start() { } -MACHINE_CONFIG_START(pse_state::pse) - +void pse_state::pse(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) - MCFG_NETLIST_SETUP(pse) + NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK); + m_maincpu->set_constructor(netlist_pse); /* video hardware */ SCREEN(config, "screen", SCREEN_TYPE_RASTER); @@ -113,7 +113,7 @@ MACHINE_CONFIG_START(pse_state::pse) m_video->set_vert_params(V_TOTAL-22,V_TOTAL-19,V_TOTAL-12,V_TOTAL); m_video->set_fieldcount(1); m_video->set_threshold(0.30); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/psion.cpp b/src/mame/drivers/psion.cpp index c6316f16a6f..ae92011d2a4 100644 --- a/src/mame/drivers/psion.cpp +++ b/src/mame/drivers/psion.cpp @@ -569,18 +569,19 @@ static GFXDECODE_START( gfx_psion ) GFXDECODE_END /* basic configuration for 2 lines display */ -MACHINE_CONFIG_START(psion_state::psion_2lines) +void psion_state::psion_2lines(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", HD63701, 980000) // should be HD6303 at 0.98MHz + HD63701(config, m_maincpu, 980000); // should be HD6303 at 0.98MHz /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update) - MCFG_SCREEN_SIZE(6*16, 9*2) - MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 9*2-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update)); + screen.set_size(6*16, 9*2); + screen.set_visarea(0, 6*16-1, 0, 9*2-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(psion_state::psion_palette), 2); GFXDECODE(config, "gfxdecode", "palette", gfx_psion); @@ -603,76 +604,75 @@ MACHINE_CONFIG_START(psion_state::psion_2lines) /* Software lists */ SOFTWARE_LIST(config, "pack_list").set_original("psion2"); -MACHINE_CONFIG_END +} /* basic configuration for 4 lines display */ -MACHINE_CONFIG_START(psion_state::psion_4lines) +void psion_state::psion_4lines(machine_config &config) +{ psion_2lines(config); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_SIZE(6*20, 9*4) - MCFG_SCREEN_VISIBLE_AREA(0, 6*20-1, 0, 9*4-1) + subdevice<screen_device>("screen")->set_size(6*20, 9*4); + subdevice<screen_device>("screen")->set_visarea(0, 6*20-1, 0, 9*4-1); m_lcdc->set_lcd_size(4, 20); m_lcdc->set_pixel_update_cb(FUNC(psion_state::lz_pixel_update), this); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(psion1_state::psion1) +void psion1_state::psion1(machine_config &config) +{ psion_2lines(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(psion1_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &psion1_state::psion1_mem); subdevice<timer_device>("nmi_timer")->set_start_delay(attotime::from_seconds(1)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_SIZE(6*16, 1*8) - MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 8*1-1) + subdevice<screen_device>("screen")->set_size(6*16, 1*8); + subdevice<screen_device>("screen")->set_visarea(0, 6*16-1, 0, 8*1-1); m_lcdc->set_lcd_size(1, 16); m_lcdc->set_pixel_update_cb(FUNC(psion1_state::psion1_pixel_update), this); /* Software lists */ SOFTWARE_LIST(config.replace(), "pack_list").set_original("psion1"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(psion_state::psioncm) +void psion_state::psioncm(machine_config &config) +{ psion_2lines(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(psioncm_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psioncm_mem); +} -MACHINE_CONFIG_START(psion_state::psionla) +void psion_state::psionla(machine_config &config) +{ psion_2lines(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(psionla_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionla_mem); +} -MACHINE_CONFIG_START(psion_state::psionlam) +void psion_state::psionlam(machine_config &config) +{ psion_2lines(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(psionlam_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionlam_mem); +} -MACHINE_CONFIG_START(psion_state::psionp350) +void psion_state::psionp350(machine_config &config) +{ psion_2lines(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(psionp350_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionp350_mem); NVRAM(config, "nvram3", nvram_device::DEFAULT_ALL_0); // paged RAM -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(psion_state::psionlz) +void psion_state::psionlz(machine_config &config) +{ psion_4lines(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(psionlz_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionlz_mem); NVRAM(config, "nvram3", nvram_device::DEFAULT_ALL_0); // paged RAM -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/pturn.cpp b/src/mame/drivers/pturn.cpp index 4bec5d24a90..14d50a76a92 100644 --- a/src/mame/drivers/pturn.cpp +++ b/src/mame/drivers/pturn.cpp @@ -517,14 +517,15 @@ void pturn_state::machine_reset() m_nmi_sub = false; } -MACHINE_CONFIG_START(pturn_state::pturn) - MCFG_DEVICE_ADD("maincpu", Z80, 12000000/3) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pturn_state, main_intgen) +void pturn_state::pturn(machine_config &config) +{ + Z80(config, m_maincpu, 12000000/3); + m_maincpu->set_addrmap(AS_PROGRAM, &pturn_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(pturn_state::main_intgen)); - MCFG_DEVICE_ADD("audiocpu", Z80, 12000000/3) - MCFG_DEVICE_PROGRAM_MAP(sub_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(pturn_state, sub_intgen, 3*60) + Z80(config, m_audiocpu, 12000000/3); + m_audiocpu->set_addrmap(AS_PROGRAM, &pturn_state::sub_map); + m_audiocpu->set_periodic_int(FUNC(pturn_state::sub_intgen), attotime::from_hz(3*60)); ls259_device &mainlatch(LS259(config, "mainlatch")); mainlatch.q_out_cb<0>().set(FUNC(pturn_state::flip_w)); @@ -535,13 +536,13 @@ MACHINE_CONFIG_START(pturn_state::pturn) mainlatch.q_out_cb<5>().set(FUNC(pturn_state::fgbank_w)); mainlatch.q_out_cb<6>().set_nop(); // toggles frequently during gameplay - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pturn_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(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(pturn_state::screen_update)); + screen.set_palette(m_palette); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 0x100); @@ -555,7 +556,7 @@ MACHINE_CONFIG_START(pturn_state::pturn) AY8910(config, "ay1", 2000000).add_route(ALL_OUTPUTS, "mono", 0.25); AY8910(config, "ay2", 2000000).add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} ROM_START( pturn ) diff --git a/src/mame/drivers/puckpkmn.cpp b/src/mame/drivers/puckpkmn.cpp index 52680f21141..23a81639696 100644 --- a/src/mame/drivers/puckpkmn.cpp +++ b/src/mame/drivers/puckpkmn.cpp @@ -278,36 +278,34 @@ void md_boot_state::puckpkmna_map(address_map &map) map(0x70001c, 0x70001d).r(FUNC(md_boot_state::puckpkmna_70001c_r)); } -MACHINE_CONFIG_START(md_boot_state::puckpkmn) +void md_boot_state::puckpkmn(machine_config &config) +{ md_ntsc(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(puckpkmn_map) + m_maincpu->set_addrmap(AS_PROGRAM, &md_boot_state::puckpkmn_map); MCFG_MACHINE_START_OVERRIDE(md_boot_state, md_bootleg) config.device_remove("genesis_snd_z80"); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(4'000'000) / 4, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker",0.25) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", XTAL(4'000'000) / 4, okim6295_device::PIN7_HIGH)); + oki.add_route(ALL_OUTPUTS, "lspeaker", 0.25); + oki.add_route(ALL_OUTPUTS, "rspeaker", 0.25); +} -MACHINE_CONFIG_START(md_boot_state::puckpkmna) +void md_boot_state::puckpkmna(machine_config &config) +{ puckpkmn(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(puckpkmna_map) - -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &md_boot_state::puckpkmna_map); +} -MACHINE_CONFIG_START(md_boot_state::jzth) +void md_boot_state::jzth(machine_config &config) +{ puckpkmn(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(jzth_map) - -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &md_boot_state::jzth_map); +} /* Genie's Hardware (contains no real sega parts) */ diff --git a/src/mame/drivers/punchout.cpp b/src/mame/drivers/punchout.cpp index aeb98cd8d66..b9faf70cad0 100644 --- a/src/mame/drivers/punchout.cpp +++ b/src/mame/drivers/punchout.cpp @@ -622,15 +622,15 @@ MACHINE_RESET_MEMBER(punchout_state, spnchout) } -MACHINE_CONFIG_START(punchout_state::punchout) - +void punchout_state::punchout(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(8'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(punchout_map) - MCFG_DEVICE_IO_MAP(punchout_io_map) + Z80(config, m_maincpu, XTAL(8'000'000)/2); + m_maincpu->set_addrmap(AS_PROGRAM, &punchout_state::punchout_map); + m_maincpu->set_addrmap(AS_IO, &punchout_state::punchout_io_map); - MCFG_DEVICE_ADD("audiocpu", N2A03, NTSC_APU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(punchout_sound_map) + N2A03(config, m_audiocpu, NTSC_APU_CLOCK); + m_audiocpu->set_addrmap(AS_PROGRAM, &punchout_state::punchout_sound_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -659,13 +659,13 @@ MACHINE_CONFIG_START(punchout_state::punchout) top.screen_vblank().set(FUNC(punchout_state::vblank_irq)); top.screen_vblank().append_inputline(m_audiocpu, INPUT_LINE_NMI); - MCFG_SCREEN_ADD("bottom", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_punchout_bottom) - MCFG_SCREEN_PALETTE("palette") + screen_device &bottom(SCREEN(config, "bottom", SCREEN_TYPE_RASTER)); + bottom.set_refresh_hz(60); + bottom.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + bottom.set_size(32*8, 32*8); + bottom.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + bottom.set_screen_update(FUNC(punchout_state::screen_update_punchout_bottom)); + bottom.set_palette(m_palette); /* sound hardware */ // FIXME: this makes no sense - "lspeaker" on left and "mono" on right, with nothing routed to "mono" @@ -675,43 +675,41 @@ MACHINE_CONFIG_START(punchout_state::punchout) GENERIC_LATCH_8(config, "soundlatch"); GENERIC_LATCH_8(config, "soundlatch2"); - MCFG_DEVICE_ADD("vlm", VLM5030, N2A03_NTSC_XTAL/6) - MCFG_DEVICE_ADDRESS_MAP(0, punchout_vlm_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) -MACHINE_CONFIG_END + VLM5030(config, m_vlm, N2A03_NTSC_XTAL/6); + m_vlm->set_addrmap(0, &punchout_state::punchout_vlm_map); + m_vlm->add_route(ALL_OUTPUTS, "lspeaker", 0.50); +} -MACHINE_CONFIG_START(punchout_state::spnchout) +void punchout_state::spnchout(machine_config &config) +{ punchout(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(spnchout_io_map) + m_maincpu->set_addrmap(AS_IO, &punchout_state::spnchout_io_map); RP5C01(config, m_rtc, 0); // OSCIN -> Vcc m_rtc->remove_battery(); RP5H01(config, m_rp5h01, 0); MCFG_MACHINE_RESET_OVERRIDE(punchout_state, spnchout) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(punchout_state::armwrest) +void punchout_state::armwrest(machine_config &config) +{ punchout(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(armwrest_map) + m_maincpu->set_addrmap(AS_PROGRAM, &punchout_state::armwrest_map); /* video hardware */ m_gfxdecode->set_info(gfx_armwrest); MCFG_VIDEO_START_OVERRIDE(punchout_state, armwrest) - MCFG_SCREEN_MODIFY("top") - MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_armwrest_top) - MCFG_SCREEN_MODIFY("bottom") - MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_armwrest_bottom) -MACHINE_CONFIG_END + subdevice<screen_device>("top")->set_screen_update(FUNC(punchout_state::screen_update_armwrest_top)); + subdevice<screen_device>("bottom")->set_screen_update(FUNC(punchout_state::screen_update_armwrest_bottom)); +} diff --git a/src/mame/drivers/pv1000.cpp b/src/mame/drivers/pv1000.cpp index 7676a9120b0..abc184e8645 100644 --- a/src/mame/drivers/pv1000.cpp +++ b/src/mame/drivers/pv1000.cpp @@ -177,12 +177,12 @@ private: required_device<gfxdecode_device> m_gfxdecode; required_device<screen_device> m_screen; required_device<palette_device> m_palette; - void pv1000(address_map &map); + void pv1000_mem(address_map &map); void pv1000_io(address_map &map); }; -void pv1000_state::pv1000(address_map &map) +void pv1000_state::pv1000_mem(address_map &map) { //AM_RANGE(0x0000, 0x7fff) // mapped by the cartslot map(0xb800, 0xbbff).ram().share("videoram"); @@ -441,11 +441,9 @@ GFXDECODE_END MACHINE_CONFIG_START(pv1000_state::pv1000) - - MCFG_DEVICE_ADD( "maincpu", Z80, 17897725/5 ) - MCFG_DEVICE_PROGRAM_MAP( pv1000 ) - MCFG_DEVICE_IO_MAP( pv1000_io ) - + Z80(config, m_maincpu, 17897725/5); + m_maincpu->set_addrmap(AS_PROGRAM, &pv1000_state::pv1000_mem); + m_maincpu->set_addrmap(AS_IO, &pv1000_state::pv1000_io); /* D65010G031 - Video & sound chip */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); diff --git a/src/mame/drivers/pv2000.cpp b/src/mame/drivers/pv2000.cpp index 21824601056..d0a0b8bc410 100644 --- a/src/mame/drivers/pv2000.cpp +++ b/src/mame/drivers/pv2000.cpp @@ -387,11 +387,10 @@ DEVICE_IMAGE_LOAD_MEMBER( pv2000_state, pv2000_cart ) /* Machine Drivers */ MACHINE_CONFIG_START(pv2000_state::pv2000) - // basic machine hardware - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(7'159'090)/2) // 3.579545 MHz - MCFG_DEVICE_PROGRAM_MAP(pv2000_map) - MCFG_DEVICE_IO_MAP(pv2000_io_map) + Z80(config, m_maincpu, XTAL(7'159'090)/2); // 3.579545 MHz + m_maincpu->set_addrmap(AS_PROGRAM, &pv2000_state::pv2000_map); + m_maincpu->set_addrmap(AS_IO, &pv2000_state::pv2000_io_map); // video hardware tms9928a_device &vdp(TMS9928A(config, "tms9928a", XTAL(10'738'635))); @@ -403,8 +402,7 @@ MACHINE_CONFIG_START(pv2000_state::pv2000) // sound hardware SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("sn76489a", SN76489A, XTAL(7'159'090)/2) /* 3.579545 MHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) + SN76489A(config, "sn76489a", XTAL(7'159'090)/2).add_route(ALL_OUTPUTS, "mono", 1.00); /* 3.579545 MHz */ WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "mono", 0.25); diff --git a/src/mame/drivers/pv9234.cpp b/src/mame/drivers/pv9234.cpp index a3ff1a54d85..39cb02f1cac 100644 --- a/src/mame/drivers/pv9234.cpp +++ b/src/mame/drivers/pv9234.cpp @@ -149,23 +149,23 @@ uint32_t pv9234_state::screen_update_pv9234(screen_device &screen, bitmap_ind16 return 0; } -MACHINE_CONFIG_START(pv9234_state::pv9234) +void pv9234_state::pv9234(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", ARM7, 4915000) //probably a more powerful clone. - MCFG_DEVICE_PROGRAM_MAP(pv9234_map) - + ARM7(config, m_maincpu, 4915000); //probably a more powerful clone. + m_maincpu->set_addrmap(AS_PROGRAM, &pv9234_state::pv9234_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(pv9234_state, screen_update_pv9234) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(pv9234_state::screen_update_pv9234)); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pv9234 ) diff --git a/src/mame/drivers/pwrview.cpp b/src/mame/drivers/pwrview.cpp index f77c46c2ec5..2c9d76c2c62 100644 --- a/src/mame/drivers/pwrview.cpp +++ b/src/mame/drivers/pwrview.cpp @@ -404,15 +404,16 @@ static void pwrview_floppies(device_slot_interface &device) device.option_add("525dd", FLOPPY_525_DD); } -MACHINE_CONFIG_START(pwrview_state::pwrview) - MCFG_DEVICE_ADD("maincpu", I80186, XTAL(16'000'000)) - MCFG_DEVICE_PROGRAM_MAP(pwrview_map) - MCFG_DEVICE_OPCODES_MAP(pwrview_fetch_map) - MCFG_DEVICE_IO_MAP(pwrview_io) +void pwrview_state::pwrview(machine_config &config) +{ + I80186(config, m_maincpu, XTAL(16'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &pwrview_state::pwrview_map); + m_maincpu->set_addrmap(AS_OPCODES, &pwrview_state::pwrview_fetch_map); + m_maincpu->set_addrmap(AS_IO, &pwrview_state::pwrview_io); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(64'000'000)/8, 480, 0, 384, 1040, 0, 960) // clock unknown - MCFG_SCREEN_UPDATE_DEVICE("crtc", hd6845_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(XTAL(64'000'000)/8, 480, 0, 384, 1040, 0, 960); // clock unknown + screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update)); PIT8253(config, m_pit, 0); m_pit->set_clk<0>(XTAL(16'000'000)/16); // clocks unknown, fix above when found @@ -435,7 +436,7 @@ MACHINE_CONFIG_START(pwrview_state::pwrview) crtc.set_update_row_callback(FUNC(pwrview_state::update_row), this); ADDRESS_MAP_BANK(config, "bios_bank").set_map(&pwrview_state::bios_bank).set_options(ENDIANNESS_LITTLE, 16, 17, 0x8000); -MACHINE_CONFIG_END +} ROM_START(pwrview) ROM_REGION(0x8000, "bios", 0) diff --git a/src/mame/drivers/px4.cpp b/src/mame/drivers/px4.cpp index 8a2e6c879ef..66f62a566cb 100644 --- a/src/mame/drivers/px4.cpp +++ b/src/mame/drivers/px4.cpp @@ -1485,19 +1485,20 @@ void px4p_state::px4p_palette(palette_device &palette) const // MACHINE DRIVERS //************************************************************************** -MACHINE_CONFIG_START(px4_state::px4) +void px4_state::px4(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(7'372'800) / 2) // uPD70008 - MCFG_DEVICE_PROGRAM_MAP(px4_mem) - MCFG_DEVICE_IO_MAP(px4_io) + Z80(config, m_z80, XTAL(7'372'800) / 2); // uPD70008 + m_z80->set_addrmap(AS_PROGRAM, &px4_state::px4_mem); + m_z80->set_addrmap(AS_IO, &px4_state::px4_io); // video hardware - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(72) - MCFG_SCREEN_SIZE(240, 64) - MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 63) - MCFG_SCREEN_UPDATE_DRIVER(px4_state, screen_update_px4) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(72); + screen.set_size(240, 64); + screen.set_visarea(0, 239, 0, 63); + screen.set_screen_update(FUNC(px4_state::screen_update_px4)); + screen.set_palette("palette"); config.set_default_layout(layout_px4); @@ -1541,25 +1542,25 @@ MACHINE_CONFIG_START(px4_state::px4) m_rs232->cts_handler().set(FUNC(px4_state::rs232_cts_w)); // rom capsules - MCFG_GENERIC_CARTSLOT_ADD("capsule1", generic_plain_slot, "px4_cart") - MCFG_GENERIC_CARTSLOT_ADD("capsule2", generic_plain_slot, "px4_cart") + GENERIC_CARTSLOT(config, m_caps1, generic_plain_slot, "px4_cart"); + GENERIC_CARTSLOT(config, m_caps2, generic_plain_slot, "px4_cart"); // software list SOFTWARE_LIST(config, "cart_list").set_original("px4_cart"); SOFTWARE_LIST(config, "epson_cpm_list").set_original("epson_cpm"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(px4p_state::px4p) +void px4p_state::px4p(machine_config &config) +{ px4(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(px4p_io) + m_z80->set_addrmap(AS_IO, &px4p_state::px4p_io); NVRAM(config, "rdnvram", nvram_device::DEFAULT_ALL_0); subdevice<palette_device>("palette")->set_init(FUNC(px4p_state::px4p_palette)); - MCFG_GENERIC_CARTSLOT_ADD("ramdisk_socket", generic_plain_slot, "px4_cart") -MACHINE_CONFIG_END + GENERIC_CARTSLOT(config, m_rdsocket, generic_plain_slot, "px4_cart"); +} //************************************************************************** diff --git a/src/mame/drivers/px8.cpp b/src/mame/drivers/px8.cpp index 581003b512d..73e4213b248 100644 --- a/src/mame/drivers/px8.cpp +++ b/src/mame/drivers/px8.cpp @@ -737,31 +737,32 @@ void px8_state::machine_reset() MACHINE DRIVERS ***************************************************************************/ -MACHINE_CONFIG_START(px8_state::px8) +void px8_state::px8(machine_config &config) +{ /* main cpu (uPD70008) */ - MCFG_DEVICE_ADD(UPD70008_TAG, Z80, XTAL_CR1 / 4) /* 2.45 MHz */ - MCFG_DEVICE_PROGRAM_MAP(px8_mem) - MCFG_DEVICE_IO_MAP(px8_io) + Z80(config, m_maincpu, XTAL_CR1 / 4); /* 2.45 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &px8_state::px8_mem); + m_maincpu->set_addrmap(AS_IO, &px8_state::px8_io); /* slave cpu (HD6303) */ - MCFG_DEVICE_ADD(HD6303_TAG, M6803, XTAL_CR1 / 4) /* 614 kHz */ - MCFG_DEVICE_PROGRAM_MAP(px8_slave_mem) - MCFG_DEVICE_DISABLE() + m6803_cpu_device &slave(M6803(config, HD6303_TAG, XTAL_CR1 / 4)); /* 614 kHz */ + slave.set_addrmap(AS_PROGRAM, &px8_state::px8_slave_mem); + slave.set_disable(); /* sub CPU (uPD7508) */ -// MCFG_DEVICE_ADD(UPD7508_TAG, UPD7508, 200000) /* 200 kHz */ -// MCFG_DEVICE_IO_MAP(px8_sub_io) -// MCFG_DEVICE_DISABLE() +// upd7508_device &sub(UPD7508(config, UPD7508_TAG, 200000)); /* 200 kHz */ +// sub.set_addrmap(AS_IO, &px8_state::px8_sub_io); +// sub.set_disable(); /* video hardware */ config.set_default_layout(layout_px8); - MCFG_SCREEN_ADD(SCREEN_TAG, LCD) - MCFG_SCREEN_REFRESH_RATE(72) - MCFG_SCREEN_UPDATE_DRIVER(px8_state, screen_update) - MCFG_SCREEN_SIZE(480, 64) - MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 63) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_LCD)); + screen.set_refresh_hz(72); + screen.set_screen_update(FUNC(px8_state::screen_update)); + screen.set_size(480, 64); + screen.set_visarea(0, 479, 0, 63); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_px8); PALETTE(config, "palette", FUNC(px8_state::px8_palette), 2); @@ -771,14 +772,12 @@ MACHINE_CONFIG_START(px8_state::px8) WAVE(config, "wave", m_cassette).add_route(0, "mono", 0.25); /* cartridge */ - MCFG_GENERIC_CARTSLOT_ADD("capsule1", generic_plain_slot, "px8_cart") - MCFG_GENERIC_EXTENSIONS("bin,rom") + GENERIC_CARTSLOT(config, "capsule1", generic_plain_slot, "px8_cart", "bin,rom"); - MCFG_GENERIC_CARTSLOT_ADD("capsule2", generic_plain_slot, "px8_cart") - MCFG_GENERIC_EXTENSIONS("bin,rom") + GENERIC_CARTSLOT(config, "capsule2", generic_plain_slot, "px8_cart", "bin,rom"); /* devices */ - MCFG_DEVICE_ADD(I8251_TAG, I8251, 0) + I8251(config, I8251_TAG, 0); CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); @@ -789,7 +788,7 @@ MACHINE_CONFIG_START(px8_state::px8) // software SOFTWARE_LIST(config, "cart_list").set_original("px8_cart"); SOFTWARE_LIST(config, "epson_cpm_list").set_original("epson_cpm"); -MACHINE_CONFIG_END +} /*************************************************************************** ROMS diff --git a/src/mame/drivers/pzletime.cpp b/src/mame/drivers/pzletime.cpp index 53a3015f514..0366ad0a56d 100644 --- a/src/mame/drivers/pzletime.cpp +++ b/src/mame/drivers/pzletime.cpp @@ -334,21 +334,21 @@ void pzletime_state::machine_reset() m_ticket = 0; } -MACHINE_CONFIG_START(pzletime_state::pzletime) - +void pzletime_state::pzletime(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,10000000) - MCFG_DEVICE_PROGRAM_MAP(pzletime_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pzletime_state, irq4_line_hold) + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &pzletime_state::pzletime_map); + m_maincpu->set_vblank_int("screen", FUNC(pzletime_state::irq4_line_hold)); /* 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(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pzletime_state, screen_update_pzletime) - 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(64*8, 32*8); + m_screen->set_visarea(0*8, 48*8-1, 0*8, 28*8-1); + m_screen->set_screen_update(FUNC(pzletime_state::screen_update_pzletime)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pzletime); PALETTE(config, m_palette, FUNC(pzletime_state::pzletime_palette)); @@ -360,7 +360,7 @@ MACHINE_CONFIG_START(pzletime_state::pzletime) SPEAKER(config, "mono").front_center(); OKIM6295(config, m_oki, 937500, okim6295_device::PIN7_HIGH); //freq & pin7 taken from stlforce m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/ql.cpp b/src/mame/drivers/ql.cpp index 2a822268a68..d7c00923d23 100644 --- a/src/mame/drivers/ql.cpp +++ b/src/mame/drivers/ql.cpp @@ -895,13 +895,14 @@ void ql_state::machine_reset() //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( ql ) +// machine_config( ql ) //------------------------------------------------- -MACHINE_CONFIG_START(ql_state::ql) +void ql_state::ql(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD(m_maincpu, M68008, X1/2) - MCFG_DEVICE_PROGRAM_MAP(ql_mem) + M68008(config, m_maincpu, X1/2); + m_maincpu->set_addrmap(AS_PROGRAM, &ql_state::ql_mem); I8749(config, m_ipc, X4); m_ipc->set_addrmap(AS_IO, &ql_state::ipc_io); @@ -912,12 +913,12 @@ MACHINE_CONFIG_START(ql_state::ql) m_ipc->bus_in_cb().set(FUNC(ql_state::ipc_bus_r)); // video hardware - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(50.08) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate - MCFG_SCREEN_UPDATE_DEVICE(ZX8301_TAG, zx8301_device, screen_update) - MCFG_SCREEN_SIZE(960, 312) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50.08); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate + screen.set_screen_update(ZX8301_TAG, FUNC(zx8301_device::screen_update)); + screen.set_size(960, 312); + screen.set_visarea(0, 512-1, 0, 256-1); // sound hardware SPEAKER(config, "mono").front_center(); @@ -971,25 +972,26 @@ MACHINE_CONFIG_START(ql_state::ql) // internal ram RAM(config, m_ram).set_default_size("128K"); -MACHINE_CONFIG_END +} //------------------------------------------------- -// MACHINE_CONFIG( ql_ntsc ) +// machine_config( ql_ntsc ) //------------------------------------------------- -MACHINE_CONFIG_START(ql_state::ql_ntsc) +void ql_state::ql_ntsc(machine_config &config) +{ ql(config); // video hardware - MCFG_SCREEN_MODIFY(SCREEN_TAG) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(960, 262) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) -MACHINE_CONFIG_END + screen_device &screen(*subdevice<screen_device>(SCREEN_TAG)); + screen.set_refresh_hz(60); + screen.set_size(960, 262); + screen.set_visarea(0, 512-1, 0, 256-1); + } //------------------------------------------------- -// MACHINE_CONFIG( opd ) +// machine_config( opd ) //------------------------------------------------- void ql_state::opd(machine_config &config) @@ -1002,7 +1004,7 @@ void ql_state::opd(machine_config &config) /* //------------------------------------------------- -// MACHINE_CONFIG( megaopd ) +// machine_config( megaopd ) //------------------------------------------------- void ql_state::megaopd(machine_config &config) diff --git a/src/mame/drivers/quakeat.cpp b/src/mame/drivers/quakeat.cpp index e7738bcf74d..5b575462c74 100644 --- a/src/mame/drivers/quakeat.cpp +++ b/src/mame/drivers/quakeat.cpp @@ -124,27 +124,27 @@ void quakeat_state::machine_start() } /*************************************************************/ -MACHINE_CONFIG_START(quakeat_state::quake) +void quakeat_state::quake(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", PENTIUM2, 233000000) /* Pentium II, 233MHz */ - MCFG_DEVICE_PROGRAM_MAP(quake_map) - MCFG_DEVICE_IO_MAP(quake_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + PENTIUM2(config, m_maincpu, 233000000); /* Pentium II, 233MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &quakeat_state::quake_map); + m_maincpu->set_addrmap(AS_IO, &quakeat_state::quake_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); pcat_common(config); /* 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, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(quakeat_state, screen_update_quake) - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD("palette", 0x100) - -MACHINE_CONFIG_END + 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, 64*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(quakeat_state::screen_update_quake)); + screen.set_palette("palette"); + + PALETTE(config, "palette").set_entries(0x100); +} ROM_START(quake) diff --git a/src/mame/drivers/queen.cpp b/src/mame/drivers/queen.cpp index ff1e9cf2af0..2d4e875db57 100644 --- a/src/mame/drivers/queen.cpp +++ b/src/mame/drivers/queen.cpp @@ -283,10 +283,10 @@ void queen_state::machine_reset() MACHINE_CONFIG_START(queen_state::queen) - MCFG_DEVICE_ADD("maincpu", PENTIUM3, 533000000/16) // Celeron or Pentium 3, 533 Mhz - MCFG_DEVICE_PROGRAM_MAP(queen_map) - MCFG_DEVICE_IO_MAP(queen_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + PENTIUM3(config, m_maincpu, 533000000/16); // Celeron or Pentium 3, 533 Mhz + m_maincpu->set_addrmap(AS_PROGRAM, &queen_state::queen_map); + m_maincpu->set_addrmap(AS_IO, &queen_state::queen_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); pcat_common(config); diff --git a/src/mame/drivers/quizdna.cpp b/src/mame/drivers/quizdna.cpp index 18ed31d6aae..f4ed0324cc1 100644 --- a/src/mame/drivers/quizdna.cpp +++ b/src/mame/drivers/quizdna.cpp @@ -440,25 +440,25 @@ void quizdna_state::machine_start() } -MACHINE_CONFIG_START(quizdna_state::quizdna) - +void quizdna_state::quizdna(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MCLK/2) /* 8.000 MHz */ - MCFG_DEVICE_PROGRAM_MAP(quizdna_map) - MCFG_DEVICE_IO_MAP(quizdna_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", quizdna_state, irq0_line_hold) + Z80(config, m_maincpu, MCLK/2); /* 8.000 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &quizdna_state::quizdna_map); + m_maincpu->set_addrmap(AS_IO, &quizdna_state::quizdna_io_map); + m_maincpu->set_vblank_int("screen", FUNC(quizdna_state::irq0_line_hold)); /* 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(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(quizdna_state, screen_update) - 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(2500) /* not accurate */); + screen.set_size(64*8, 32*8); + screen.set_visarea(8*8, 56*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(quizdna_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_quizdna); - MCFG_PALETTE_ADD("palette", 2048) + PALETTE(config, m_palette).set_entries(2048); /* sound hardware */ @@ -472,30 +472,27 @@ MACHINE_CONFIG_START(quizdna_state::quizdna) ymsnd.add_route(2, "mono", 0.10); ymsnd.add_route(3, "mono", 0.40); - MCFG_DEVICE_ADD("oki", OKIM6295, (MCLK/1024)*132, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END + OKIM6295(config, "oki", (MCLK/1024)*132, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.30); // clock frequency & pin 7 not verified +} -MACHINE_CONFIG_START(quizdna_state::gakupara) +void quizdna_state::gakupara(machine_config &config) +{ quizdna(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(gakupara_io_map) - -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &quizdna_state::gakupara_io_map); +} -MACHINE_CONFIG_START(quizdna_state::gekiretu) +void quizdna_state::gekiretu(machine_config &config) +{ quizdna(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(gekiretu_map) - MCFG_DEVICE_IO_MAP(gekiretu_io_map) - -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &quizdna_state::gekiretu_map); + m_maincpu->set_addrmap(AS_IO, &quizdna_state::gekiretu_io_map); +} /****************************************************************************/ diff --git a/src/mame/drivers/quizo.cpp b/src/mame/drivers/quizo.cpp index 25843af8f95..4ff533680ee 100644 --- a/src/mame/drivers/quizo.cpp +++ b/src/mame/drivers/quizo.cpp @@ -217,29 +217,29 @@ static INPUT_PORTS_START( quizo ) PORT_DIPSETTING( 0x80, DEF_STR( On ) ) INPUT_PORTS_END -MACHINE_CONFIG_START(quizo_state::quizo) +void quizo_state::quizo(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,XTAL1/2) - MCFG_DEVICE_PROGRAM_MAP(memmap) - MCFG_DEVICE_IO_MAP(portmap) - - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", quizo_state, irq0_line_hold) + Z80(config, m_maincpu, XTAL1/2); + m_maincpu->set_addrmap(AS_PROGRAM, &quizo_state::memmap); + m_maincpu->set_addrmap(AS_IO, &quizo_state::portmap); + m_maincpu->set_vblank_int("screen", FUNC(quizo_state::irq0_line_hold)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(320, 200) - MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8, 200-1) - MCFG_SCREEN_UPDATE_DRIVER(quizo_state, screen_update) - 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(320, 200); + screen.set_visarea(0*8, 320-1, 0*8, 200-1); + screen.set_screen_update(FUNC(quizo_state::screen_update)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(quizo_state::quizo_palette), 16); /* sound hardware */ SPEAKER(config, "mono").front_center(); AY8910(config, "aysnd", XTAL2 / 16).add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} ROM_START( quizo ) diff --git a/src/mame/drivers/quizpani.cpp b/src/mame/drivers/quizpani.cpp index 2e694e4cfeb..d9431d663ff 100644 --- a/src/mame/drivers/quizpani.cpp +++ b/src/mame/drivers/quizpani.cpp @@ -195,32 +195,31 @@ static GFXDECODE_START( gfx_quizpani ) GFXDECODE_END -MACHINE_CONFIG_START(quizpani_state::quizpani) - MCFG_DEVICE_ADD("maincpu", M68000, 10000000) - MCFG_DEVICE_PROGRAM_MAP(quizpani_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", quizpani_state, irq4_line_hold) - MCFG_DEVICE_PERIODIC_INT_DRIVER(quizpani_state, irq1_line_hold, 164) // music tempo +void quizpani_state::quizpani(machine_config &config) +{ + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &quizpani_state::quizpani_map); + m_maincpu->set_vblank_int("screen", FUNC(quizpani_state::irq4_line_hold)); + m_maincpu->set_periodic_int(FUNC(quizpani_state::irq1_line_hold), attotime::from_hz(164)); // music tempo GFXDECODE(config, m_gfxdecode, "palette", gfx_quizpani); PALETTE(config, "palette").set_format(palette_device::RRRRGGGGBBBBRGBx, 0x200); - 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, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(quizpani_state, screen_update) - 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(64*8, 32*8); + screen.set_visarea(0*8, 48*8-1, 0*8, 28*8-1); + screen.set_screen_update(FUNC(quizpani_state::screen_update)); + screen.set_palette("palette"); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 16000000/4, okim6295_device::PIN7_LOW) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + OKIM6295(config, "oki", 16000000/4, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0); nmk112_device &nmk112(NMK112(config, "nmk112", 0)); nmk112.set_rom0_tag("oki"); -MACHINE_CONFIG_END +} ROM_START( quizpani ) ROM_REGION( 0x340000, "maincpu", 0 ) /* 68000 Code */ diff --git a/src/mame/drivers/qvt70.cpp b/src/mame/drivers/qvt70.cpp index 28843e0e806..1af2ab9274d 100644 --- a/src/mame/drivers/qvt70.cpp +++ b/src/mame/drivers/qvt70.cpp @@ -32,10 +32,11 @@ void qvt70_state::mem_map(address_map &map) static INPUT_PORTS_START( qvt70 ) INPUT_PORTS_END -MACHINE_CONFIG_START(qvt70_state::qvt70) - MCFG_DEVICE_ADD("maincpu", Z80, 2'000'000) - MCFG_DEVICE_PROGRAM_MAP(mem_map) -MACHINE_CONFIG_END +void qvt70_state::qvt70(machine_config &config) +{ + Z80(config, m_maincpu, 2'000'000); + m_maincpu->set_addrmap(AS_PROGRAM, &qvt70_state::mem_map); +} /************************************************************************************************************** diff --git a/src/mame/drivers/qx10.cpp b/src/mame/drivers/qx10.cpp index 009917ce16c..03df6686f96 100644 --- a/src/mame/drivers/qx10.cpp +++ b/src/mame/drivers/qx10.cpp @@ -723,10 +723,10 @@ static void keyboard(device_slot_interface &device) MACHINE_CONFIG_START(qx10_state::qx10) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, MAIN_CLK / 4) - MCFG_DEVICE_PROGRAM_MAP(qx10_mem) - MCFG_DEVICE_IO_MAP(qx10_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb) + Z80(config, m_maincpu, MAIN_CLK / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &qx10_state::qx10_mem); + m_maincpu->set_addrmap(AS_IO, &qx10_state::qx10_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb)); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); diff --git a/src/mame/drivers/r2dtank.cpp b/src/mame/drivers/r2dtank.cpp index 49463a87a4f..dff5a7cfa5a 100644 --- a/src/mame/drivers/r2dtank.cpp +++ b/src/mame/drivers/r2dtank.cpp @@ -445,19 +445,20 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(r2dtank_state::r2dtank) - MCFG_DEVICE_ADD("maincpu", MC6809, MAIN_CPU_MASTER_CLOCK / 4) // divider guessed - MCFG_DEVICE_PROGRAM_MAP(r2dtank_main_map) +void r2dtank_state::r2dtank(machine_config &config) +{ + MC6809(config, m_maincpu, MAIN_CPU_MASTER_CLOCK / 4); // divider guessed + m_maincpu->set_addrmap(AS_PROGRAM, &r2dtank_state::r2dtank_main_map); - MCFG_DEVICE_ADD("audiocpu", M6802, 3.579545_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(r2dtank_audio_map) + M6802(config, m_audiocpu, 3.579545_MHz_XTAL); + m_audiocpu->set_addrmap(AS_PROGRAM, &r2dtank_state::r2dtank_audio_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 360, 0, 256, 276, 0, 224) - MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(PIXEL_CLOCK, 360, 0, 256, 276, 0, 224); + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); PALETTE(config, m_palette, palette_device::BGR_3BIT); @@ -507,8 +508,7 @@ MACHINE_CONFIG_START(r2dtank_state::r2dtank) m_ay2->port_a_read_callback().set_ioport("IN1"); m_ay2->port_b_read_callback().set_ioport("DSWA"); m_ay2->add_route(ALL_OUTPUTS, "mono", 0.25); - -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/rad_eu3a05.cpp b/src/mame/drivers/rad_eu3a05.cpp index a89910c246a..4c9c33be6b3 100644 --- a/src/mame/drivers/rad_eu3a05.cpp +++ b/src/mame/drivers/rad_eu3a05.cpp @@ -1146,25 +1146,25 @@ INTERRUPT_GEN_MEMBER(radica_eu3a05_state::interrupt) */ } -MACHINE_CONFIG_START(radica_eu3a05_state::radicasi) - +void radica_eu3a05_state::radicasi(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M6502,XTAL(21'281'370)/2) // Tetris has a XTAL(21'281'370), not confirmed on Space Invaders, actual CPU clock unknown. - MCFG_DEVICE_PROGRAM_MAP(radicasi_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", radica_eu3a05_state, interrupt) + M6502(config, m_maincpu, XTAL(21'281'370)/2); // Tetris has a XTAL(21'281'370), not confirmed on Space Invaders, actual CPU clock unknown. + m_maincpu->set_addrmap(AS_PROGRAM, &radica_eu3a05_state::radicasi_map); + m_maincpu->set_vblank_int("screen", FUNC(radica_eu3a05_state::interrupt)); ADDRESS_MAP_BANK(config, "bank").set_map(&radica_eu3a05_state::radicasi_bank_map).set_options(ENDIANNESS_LITTLE, 8, 24, 0x8000); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_UPDATE_DRIVER(radica_eu3a05_state, screen_update) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - 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(2500)); + screen.set_screen_update(FUNC(radica_eu3a05_state::screen_update)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 256) + PALETTE(config, m_palette).set_entries(256); GFXDECODE(config, m_gfxdecode, m_palette, gfx_radicasi_fake); @@ -1176,7 +1176,7 @@ MACHINE_CONFIG_START(radica_eu3a05_state::radicasi) radica6502_sound_device &sound(RADICA6502_SOUND(config, "6ch_sound", 8000)); sound.space_read_callback().set(FUNC(radica_eu3a05_state::read_full_space)); sound.add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} ROM_START( rad_tetr ) diff --git a/src/mame/drivers/rad_eu3a14.cpp b/src/mame/drivers/rad_eu3a14.cpp index fed73d6c6fa..7b0c664f2e4 100644 --- a/src/mame/drivers/rad_eu3a14.cpp +++ b/src/mame/drivers/rad_eu3a14.cpp @@ -1366,49 +1366,49 @@ GFXDECODE_END -MACHINE_CONFIG_START(radica_eu3a14_state::radica_eu3a14) +void radica_eu3a14_state::radica_eu3a14(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M6502,XTAL(21'477'272)/2) // marked as 21'477'270 - MCFG_DEVICE_PROGRAM_MAP(radica_eu3a14_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", radica_eu3a14_state, interrupt) + M6502(config, m_maincpu, XTAL(21'477'272)/2); // marked as 21'477'270 + m_maincpu->set_addrmap(AS_PROGRAM, &radica_eu3a14_state::radica_eu3a14_map); + m_maincpu->set_vblank_int("screen", FUNC(radica_eu3a14_state::interrupt)); ADDRESS_MAP_BANK(config, "bank").set_map(&radica_eu3a14_state::bank_map).set_options(ENDIANNESS_LITTLE, 8, 24, 0x8000); GFXDECODE(config, m_gfxdecode, m_palette, gfx_helper); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_UPDATE_DRIVER(radica_eu3a14_state, screen_update) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - - 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(2500)); + screen.set_screen_update(FUNC(radica_eu3a14_state::screen_update)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 512) + PALETTE(config, m_palette).set_entries(512); /* sound hardware */ SPEAKER(config, "mono").front_center(); radica6502_sound_device &sound(RADICA6502_SOUND(config, "6ch_sound", 8000)); sound.space_read_callback().set(FUNC(radica_eu3a14_state::read_full_space)); sound.add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(radica_eu3a14_state::radica_eu3a14_adc) +void radica_eu3a14_state::radica_eu3a14_adc(machine_config &config) +{ radica_eu3a14(config); TIMER(config, "scantimer").configure_scanline(FUNC(radica_eu3a14_state::scanline_cb), "screen", 0, 1); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(radica_eu3a14_state::radica_eu3a14p) // TODO, clocks differ too, what are they on PAL? +void radica_eu3a14_state::radica_eu3a14p(machine_config &config) // TODO, clocks differ too, what are they on PAL? +{ radica_eu3a14(config); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(50) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_refresh_hz(50); +} void radica_eu3a14_state::init_rad_gtg() diff --git a/src/mame/drivers/radio86.cpp b/src/mame/drivers/radio86.cpp index 005c981a7a5..c66612c34f2 100644 --- a/src/mame/drivers/radio86.cpp +++ b/src/mame/drivers/radio86.cpp @@ -517,81 +517,80 @@ void radio86_state::kr03(machine_config &config) m_ppi8255_1->out_pc_callback().set(FUNC(radio86_state::radio86_8255_portc_w2)); } -MACHINE_CONFIG_START(radio86_state::radio16) +void radio86_state::radio16(machine_config &config) +{ radio86(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(radio86_16_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::radio86_16_mem); +} -MACHINE_CONFIG_START(radio86_state::radiorom) +void radio86_state::radiorom(machine_config &config) +{ radio86(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(radio86rom_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::radio86rom_mem); I8255(config, m_ppi8255_2); m_ppi8255_2->in_pa_callback().set(FUNC(radio86_state::radio86rom_romdisk_porta_r)); m_ppi8255_2->out_pb_callback().set(FUNC(radio86_state::radio86_romdisk_portb_w)); m_ppi8255_2->out_pc_callback().set(FUNC(radio86_state::radio86_romdisk_portc_w)); - MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "radio86_cart") - MCFG_GENERIC_EXTENSIONS("bin,rom") + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "radio86_cart", "bin,rom"); SOFTWARE_LIST(config, "cart_list").set_original("radio86_cart"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(radio86_state::radioram) +void radio86_state::radioram(machine_config &config) +{ radio86(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(radio86ram_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::radio86ram_mem); I8255(config, m_ppi8255_2); m_ppi8255_2->in_pa_callback().set(FUNC(radio86_state::radio86ram_romdisk_porta_r)); m_ppi8255_2->out_pb_callback().set(FUNC(radio86_state::radio86_romdisk_portb_w)); m_ppi8255_2->out_pc_callback().set(FUNC(radio86_state::radio86_romdisk_portc_w)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(radio86_state::rk7007) +void radio86_state::rk7007(machine_config &config) +{ radio86(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(rk7007_io) + m_maincpu->set_addrmap(AS_IO, &radio86_state::rk7007_io); i8255_device &ms7007(I8255(config, "ms7007")); ms7007.out_pa_callback().set(FUNC(radio86_state::radio86_8255_porta_w2)); ms7007.in_pb_callback().set(FUNC(radio86_state::radio86_8255_portb_r2)); ms7007.in_pc_callback().set(FUNC(radio86_state::rk7007_8255_portc_r)); ms7007.out_pc_callback().set(FUNC(radio86_state::radio86_8255_portc_w2)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(radio86_state::rk700716) +void radio86_state::rk700716(machine_config &config) +{ radio16(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(rk7007_io) + m_maincpu->set_addrmap(AS_IO, &radio86_state::rk7007_io); i8255_device &ms7007(I8255(config, "ms7007")); ms7007.out_pa_callback().set(FUNC(radio86_state::radio86_8255_porta_w2)); ms7007.in_pb_callback().set(FUNC(radio86_state::radio86_8255_portb_r2)); ms7007.in_pc_callback().set(FUNC(radio86_state::rk7007_8255_portc_r)); ms7007.out_pc_callback().set(FUNC(radio86_state::radio86_8255_portc_w2)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(radio86_state::mikron2) +void radio86_state::mikron2(machine_config &config) +{ radio86(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mikron2_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::mikron2_mem); +} -MACHINE_CONFIG_START(radio86_state::impuls03) +void radio86_state::impuls03(machine_config &config) +{ radio86(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(impuls03_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::impuls03_mem); +} /* ROM definition */ ROM_START( radio86 ) diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp index 9a42b6f3c1f..f4757a0a466 100644 --- a/src/mame/drivers/rainbow.cpp +++ b/src/mame/drivers/rainbow.cpp @@ -3197,25 +3197,25 @@ void rainbow_state::upd7220_map(address_map &map) map(0x00000, 0x3ffff).rw(FUNC(rainbow_state::vram_r), FUNC(rainbow_state::vram_w)).share("vram"); } -MACHINE_CONFIG_START(rainbow_state::rainbow) +void rainbow_state::rainbow(machine_config &config) +{ config.set_default_layout(layout_rainbow); /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8088, 24.0734_MHz_XTAL / 5) // approximately 4.815 MHz - MCFG_DEVICE_PROGRAM_MAP(rainbow8088_map) - MCFG_DEVICE_IO_MAP(rainbow8088_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(rainbow_state, irq_callback) + I8088(config, m_i8088, 24.0734_MHz_XTAL / 5); // approximately 4.815 MHz + m_i8088->set_addrmap(AS_PROGRAM, &rainbow_state::rainbow8088_map); + m_i8088->set_addrmap(AS_IO, &rainbow_state::rainbow8088_io); + m_i8088->set_irq_acknowledge_callback(FUNC(rainbow_state::irq_callback)); - MCFG_DEVICE_ADD("subcpu", Z80, 24.0734_MHz_XTAL / 6) - MCFG_DEVICE_PROGRAM_MAP(rainbowz80_mem) - MCFG_DEVICE_IO_MAP(rainbowz80_io) + Z80(config, m_z80, 24.0734_MHz_XTAL / 6); + m_z80->set_addrmap(AS_PROGRAM, &rainbow_state::rainbowz80_mem); + m_z80->set_addrmap(AS_IO, &rainbow_state::rainbowz80_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(24.0734_MHz_XTAL / 6, 442, 0, 400, 264, 0, 240) // ~NTSC compatible video timing (?) - - MCFG_SCREEN_UPDATE_DRIVER(rainbow_state, screen_update_rainbow) - MCFG_SCREEN_PALETTE("vt100_video:palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(24.0734_MHz_XTAL / 6, 442, 0, 400, 264, 0, 240); // ~NTSC compatible video timing (?) + screen.set_screen_update(FUNC(rainbow_state::screen_update_rainbow)); + screen.set_palette("vt100_video:palette"); GFXDECODE(config, "gfxdecode", "vt100_video:palette", gfx_rainbow); RAINBOW_VIDEO(config, m_crtc, 24.0734_MHz_XTAL); @@ -3233,19 +3233,19 @@ MACHINE_CONFIG_START(rainbow_state::rainbow) m_hgdc->set_display_pixels(FUNC(rainbow_state::hgdc_display_pixels)); m_hgdc->set_screen(m_screen2); // set_screen needs to be added after 7720 device in the machine config, not after the screen. - MCFG_PALETTE_ADD("palette2", 32) + PALETTE(config, m_palette2).set_entries(32); - MCFG_SCREEN_ADD("screen2", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE) + SCREEN(config, m_screen2, SCREEN_TYPE_RASTER); + m_screen2->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE); // VR241 color monitor is specified for 20 MHz bandwidth ( 60 Hz / 15.72 kHz horizontal rate ) // - sufficient for 800 x 240 non-interlaced at 60 Hz (non interlaced). - //MCFG_SCREEN_RAW_PARAMS(31188000 / 2 , 992, 0, 800, 262, 0, 240) + //m_screen2->set_raw(31188000 / 2 , 992, 0, 800, 262, 0, 240); // Alternate configuration: - MCFG_SCREEN_RAW_PARAMS(31188000 / 4 , 496, 0, 400, 262, 0, 240) + m_screen2->set_raw(31188000 / 4 , 496, 0, 400, 262, 0, 240); - MCFG_SCREEN_UPDATE_DEVICE("upd7220", upd7220_device, screen_update) + m_screen2->set_screen_update("upd7220", FUNC(upd7220_device::screen_update)); FD1793(config, m_fdc, 24.0734_MHz_XTAL / 24); // no separate 1 Mhz quartz FLOPPY_CONNECTOR(config, FD1793_TAG ":0", rainbow_floppies, "525qd", rainbow_state::floppy_formats); @@ -3277,18 +3277,14 @@ MACHINE_CONFIG_START(rainbow_state::rainbow) m_hdc->in_sc_callback().set_constant(1); // SEEK COMPLETE (VCC = complete) m_hdc->in_tk000_callback().set_constant(1); // TRACK 00 signal (= from drive) - MCFG_HARDDISK_ADD("decharddisk1") + HARDDISK(config, "decharddisk1"); /// ******************************** / HARD DISK CONTROLLER **************************************** - MCFG_DEVICE_ADD("corvus", CORVUS_HDC, 0) - MCFG_HARDDISK_ADD("harddisk1") - MCFG_HARDDISK_INTERFACE("corvus_hdd") - MCFG_HARDDISK_ADD("harddisk2") - MCFG_HARDDISK_INTERFACE("corvus_hdd") - MCFG_HARDDISK_ADD("harddisk3") - MCFG_HARDDISK_INTERFACE("corvus_hdd") - MCFG_HARDDISK_ADD("harddisk4") - MCFG_HARDDISK_INTERFACE("corvus_hdd") + CORVUS_HDC(config, m_corvus_hdc, 0); + HARDDISK(config, "harddisk1", "corvus_hdd"); + HARDDISK(config, "harddisk2", "corvus_hdd"); + HARDDISK(config, "harddisk3", "corvus_hdd"); + HARDDISK(config, "harddisk4", "corvus_hdd"); DS1315(config, m_rtc, 0); // DS1315 (ClikClok for DEC-100 B) * OPTIONAL * @@ -3335,7 +3331,7 @@ MACHINE_CONFIG_START(rainbow_state::rainbow) TIMER(config, "motor").configure_periodic(FUNC(rainbow_state::hd_motor_tick), attotime::from_hz(60)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); -MACHINE_CONFIG_END +} //---------------------------------------------------------------------------------------- // 'Rainbow 100-A' (system module 70-19974-00, PSU H7842-A) diff --git a/src/mame/drivers/rampart.cpp b/src/mame/drivers/rampart.cpp index 87f7f01474a..4d414967a9a 100644 --- a/src/mame/drivers/rampart.cpp +++ b/src/mame/drivers/rampart.cpp @@ -338,11 +338,11 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(rampart_state::rampart) - +void rampart_state::rampart(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) + M68000(config, m_maincpu, MASTER_CLOCK/2); + m_maincpu->set_addrmap(AS_PROGRAM, &rampart_state::main_map); SLAPSTIC(config, m_slapstic_device, 118, true); @@ -357,24 +357,22 @@ MACHINE_CONFIG_START(rampart_state::rampart) ATARI_MOTION_OBJECTS(config, m_mob, 0, m_screen, rampart_state::s_mob_config); m_mob->set_gfxdecode(m_gfxdecode); - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240) - MCFG_SCREEN_UPDATE_DRIVER(rampart_state, screen_update_rampart) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rampart_state, video_int_write_line)) + m_screen->set_raw(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240); + m_screen->set_screen_update(FUNC(rampart_state::screen_update_rampart)); + m_screen->set_palette("palette"); + m_screen->screen_vblank().set(FUNC(rampart_state::video_int_write_line)); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, MASTER_CLOCK/4/3, okim6295_device::PIN7_LOW) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) + OKIM6295(config, m_oki, MASTER_CLOCK/4/3, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.60); - MCFG_DEVICE_ADD("ymsnd", YM2413, MASTER_CLOCK/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + YM2413(config, m_ym2413, MASTER_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 1.0); +} diff --git a/src/mame/drivers/ramtek.cpp b/src/mame/drivers/ramtek.cpp index b939c83ce5e..b87e632ee69 100644 --- a/src/mame/drivers/ramtek.cpp +++ b/src/mame/drivers/ramtek.cpp @@ -110,11 +110,11 @@ void ramtek_state::video_start() { } -MACHINE_CONFIG_START(ramtek_state::ramtek) - +void ramtek_state::ramtek(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) - MCFG_NETLIST_SETUP(ramtek) + NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK); + m_maincpu->set_constructor(netlist_ramtek); /* video hardware */ SCREEN(config, "screen", SCREEN_TYPE_RASTER); @@ -124,7 +124,7 @@ MACHINE_CONFIG_START(ramtek_state::ramtek) m_video->set_vert_params(V_TOTAL-22,V_TOTAL-19,V_TOTAL-12,V_TOTAL); m_video->set_fieldcount(1); m_video->set_threshold(0.30); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/rbisland.cpp b/src/mame/drivers/rbisland.cpp index a9d2c13ac49..e3bdc534b22 100644 --- a/src/mame/drivers/rbisland.cpp +++ b/src/mame/drivers/rbisland.cpp @@ -653,15 +653,15 @@ WRITE8_MEMBER(rbisland_state::counters_w) machine().bookkeeping().coin_counter_w(0, data & 0x10); } -MACHINE_CONFIG_START(rbisland_state::rbisland) - +void rbisland_state::rbisland(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(rbisland_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbisland_state, interrupt) + M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &rbisland_state::rbisland_map); + m_maincpu->set_vblank_int("screen", FUNC(rbisland_state::interrupt)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(rbisland_sound_map) + Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &rbisland_state::rbisland_sound_map); TAITO_CCHIP(config, m_cchip, 12_MHz_XTAL); // 12MHz OSC next to C-Chip m_cchip->in_pa_callback().set_ioport("800007"); @@ -675,13 +675,13 @@ MACHINE_CONFIG_START(rbisland_state::rbisland) config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ /* 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(rbisland_state, screen_update_rainbow) - 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(rbisland_state::screen_update_rainbow)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_rbisland); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 2048); @@ -706,31 +706,31 @@ MACHINE_CONFIG_START(rbisland_state::rbisland) pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu); ciu.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} /* Jumping: The PCB has 2 Xtals, 18.432MHz and 24MHz */ -MACHINE_CONFIG_START(rbisland_state::jumping) - +void rbisland_state::jumping(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(18'432'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(jumping_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbisland_state, irq4_line_hold) + M68000(config, m_maincpu, XTAL(18'432'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &rbisland_state::jumping_map); + m_maincpu->set_vblank_int("screen", FUNC(rbisland_state::irq4_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(24'000'000)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(jumping_sound_map) + Z80(config, m_audiocpu, XTAL(24'000'000)/4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &rbisland_state::jumping_sound_map); config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough unless otherwise */ /* 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(rbisland_state, screen_update_jumping) - 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(rbisland_state::screen_update_jumping)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_jumping); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 2048); @@ -745,21 +745,18 @@ MACHINE_CONFIG_START(rbisland_state::jumping) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ym1", YM2203, XTAL(24'000'000)/8) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) + YM2203(config, "ym1", XTAL(24'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.30); /* verified on pcb */ - MCFG_DEVICE_ADD("ym2", YM2203, XTAL(24'000'000)/8) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END + YM2203(config, "ym2", XTAL(24'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.30); /* verified on pcb */ +} /* Imnoe PCB uses 16MHz CPU crystal instead of 18.432 for CPU */ -MACHINE_CONFIG_START(rbisland_state::jumpingi) +void rbisland_state::jumpingi(machine_config &config) +{ jumping(config); - MCFG_DEVICE_REPLACE("maincpu", M68000, XTAL(16'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(jumping_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbisland_state, irq4_line_hold) -MACHINE_CONFIG_END + m_maincpu->set_clock(XTAL(16'000'000)/2); /* verified on pcb */ +} /*************************************************************************** DRIVERS diff --git a/src/mame/drivers/rbmk.cpp b/src/mame/drivers/rbmk.cpp index cac0dc61cfa..e462f197e72 100644 --- a/src/mame/drivers/rbmk.cpp +++ b/src/mame/drivers/rbmk.cpp @@ -565,10 +565,11 @@ uint32_t rbmk_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, return 0; } -MACHINE_CONFIG_START(rbmk_state::rbmk) - MCFG_DEVICE_ADD("maincpu", M68000, 22000000 /2) - MCFG_DEVICE_PROGRAM_MAP(rbmk_mem) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbmk_state, irq1_line_hold) +void rbmk_state::rbmk(machine_config &config) +{ + M68000(config, m_maincpu, 22000000 /2); + m_maincpu->set_addrmap(AS_PROGRAM, &rbmk_state::rbmk_mem); + m_maincpu->set_vblank_int("screen", FUNC(rbmk_state::irq1_line_hold)); AT89C4051(config, m_mcu, 22000000 / 4); // frequency isn't right m_mcu->set_addrmap(AS_PROGRAM, &rbmk_state::mcu_mem); @@ -577,13 +578,13 @@ MACHINE_CONFIG_START(rbmk_state::rbmk) GFXDECODE(config, m_gfxdecode, m_palette, gfx_rbmk); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rbmk_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(rbmk_state::screen_update)); + screen.set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x800); @@ -592,25 +593,24 @@ MACHINE_CONFIG_START(rbmk_state::rbmk) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1122000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47) + okim6295_device &oki(OKIM6295(config, "oki", 1122000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified + oki.add_route(ALL_OUTPUTS, "lspeaker", 0.47); + oki.add_route(ALL_OUTPUTS, "rspeaker", 0.47); YM2151(config, m_ymsnd, 22000000 / 8); m_ymsnd->add_route(0, "lspeaker", 0.60); m_ymsnd->add_route(1, "rspeaker", 0.60); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(rbmk_state::rbspm) +void rbmk_state::rbspm(machine_config &config) +{ rbmk(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(rbspm_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &rbmk_state::rbspm_mem); - MCFG_DEVICE_MODIFY("mcu") - MCFG_DEVICE_DISABLE() // until decapped + m_mcu->set_disable(); // until decapped // PIC16F84 but no CPU core available -MACHINE_CONFIG_END +} // 实战麻将王 (ShÃzhà n Májià ng Wáng) ROM_START( rbmk ) diff --git a/src/mame/drivers/rc702.cpp b/src/mame/drivers/rc702.cpp index 4a9fede162d..5df8b76a730 100644 --- a/src/mame/drivers/rc702.cpp +++ b/src/mame/drivers/rc702.cpp @@ -331,7 +331,8 @@ static void floppies(device_slot_interface &device) device.option_add("525qd", FLOPPY_525_QD); } -MACHINE_CONFIG_START(rc702_state::rc702) +void rc702_state::rc702(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, XTAL(8'000'000) / 2); m_maincpu->set_addrmap(AS_PROGRAM, &rc702_state::rc702_mem); @@ -378,11 +379,11 @@ MACHINE_CONFIG_START(rc702_state::rc702) m_7474->comp_output_cb().set(FUNC(rc702_state::qbar_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(272*2, 200+4*8) - MCFG_SCREEN_VISIBLE_AREA(0, 272*2-1, 0, 200-1) - MCFG_SCREEN_UPDATE_DEVICE("crtc", i8275_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_size(272*2, 200+4*8); + screen.set_visarea(0, 272*2-1, 0, 200-1); + screen.set_screen_update("crtc", FUNC(i8275_device::screen_update)); i8275_device &crtc(I8275(config, "crtc", 11640000/7)); crtc.set_character_width(7); @@ -396,7 +397,7 @@ MACHINE_CONFIG_START(rc702_state::rc702) /* sound hardware */ SPEAKER(config, "mono").front_center(); BEEP(config, m_beep, 1000).add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/rcorsair.cpp b/src/mame/drivers/rcorsair.cpp index dd4bf635ba6..cff08bd03b0 100644 --- a/src/mame/drivers/rcorsair.cpp +++ b/src/mame/drivers/rcorsair.cpp @@ -156,30 +156,30 @@ uint32_t rcorsair_state::screen_update(screen_device &screen, bitmap_ind16 &bitm return 0; } -MACHINE_CONFIG_START(rcorsair_state::rcorsair) - +void rcorsair_state::rcorsair(machine_config &config) +{ /* Main CPU is probably inside Custom Block with program code, unknown type */ - MCFG_DEVICE_ADD("maincpu", Z80, 8000000) - MCFG_DEVICE_PROGRAM_MAP(rcorsair_main_map) - //MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rcorsair_state, irq0_line_hold) + Z80(config, m_maincpu, 8000000); + m_maincpu->set_addrmap(AS_PROGRAM, &rcorsair_state::rcorsair_main_map); + //m_maincpu->set_vblank_int("screen", FUNC(rcorsair_state::irq0_line_hold)); - MCFG_DEVICE_ADD("subcpu", I8035, 8000000) - MCFG_DEVICE_PROGRAM_MAP(rcorsair_sub_map) - MCFG_DEVICE_IO_MAP(rcorsair_sub_io_map) + I8035(config, m_subcpu, 8000000); + m_subcpu->set_addrmap(AS_PROGRAM, &rcorsair_state::rcorsair_sub_map); + m_subcpu->set_addrmap(AS_IO, &rcorsair_state::rcorsair_sub_io_map); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_UPDATE_DRIVER(rcorsair_state, screen_update) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - 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_screen_update(FUNC(rcorsair_state::screen_update)); + screen.set_size(256, 256); + screen.set_visarea(0, 256-1, 0, 256-1); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_rcorsair); - MCFG_PALETTE_ADD("palette", 0x100) -MACHINE_CONFIG_END + PALETTE(config, "palette").set_entries(0x100); +} ROM_START( rcorsair ) ROM_REGION( 0x6000, "maincpu", 0 ) diff --git a/src/mame/drivers/rd110.cpp b/src/mame/drivers/rd110.cpp index a51994b7ef5..b9a9f62cd9e 100644 --- a/src/mame/drivers/rd110.cpp +++ b/src/mame/drivers/rd110.cpp @@ -233,7 +233,8 @@ void d110_state::d110_map(address_map &map) map(0xc000, 0xffff).bankrw("fixed"); } -MACHINE_CONFIG_START(d110_state::d110) +void d110_state::d110(machine_config &config) +{ P8098(config, m_maincpu, 12_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &d110_state::d110_map); m_maincpu->serial_tx_cb().set(FUNC(d110_state::midi_w)); @@ -247,13 +248,13 @@ MACHINE_CONFIG_START(d110_state::d110) RAM( config, m_memc ).set_default_size( "32K" ); NVRAM( config, m_memcs, nvram_device::DEFAULT_ALL_0 ); - MCFG_SCREEN_ADD( "screen", LCD ) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_UPDATE_DRIVER(d110_state, screen_update) -// MCFG_SCREEN_SIZE(20*6-1, 2*9-1) - MCFG_SCREEN_SIZE(16*6-1, (16*6-1)*3/4) - MCFG_SCREEN_VISIBLE_AREA(0, 16*6-2, 0, (16*6-1)*3/4-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_screen_update(FUNC(d110_state::screen_update)); +// screen.set_size(20*6-1, 2*9-1); + screen.set_size(16*6-1, (16*6-1)*3/4); + screen.set_visarea(0, 16*6-2, 0, (16*6-1)*3/4-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(d110_state::d110_palette), 2); @@ -262,7 +263,7 @@ MACHINE_CONFIG_START(d110_state::d110) TIMER(config, m_midi_timer).configure_generic(FUNC(d110_state::midi_timer_cb)); TIMER(config, "samples_timer").configure_periodic(FUNC(d110_state::samples_timer_cb), attotime::from_hz(32000*2) ); -MACHINE_CONFIG_END +} ROM_START( d110 ) ROM_REGION( 0x10000, "maincpu", 0 ) diff --git a/src/mame/drivers/realbrk.cpp b/src/mame/drivers/realbrk.cpp index 023963328dd..c1a07c2cbd8 100644 --- a/src/mame/drivers/realbrk.cpp +++ b/src/mame/drivers/realbrk.cpp @@ -767,26 +767,26 @@ WRITE_LINE_MEMBER(realbrk_state::vblank_irq) m_tmp68301->external_interrupt_1(); } -MACHINE_CONFIG_START(realbrk_state::realbrk) - +void realbrk_state::realbrk(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, M68000, XTAL(32'000'000) / 2) /* !! TMP68301 !! */ - MCFG_DEVICE_PROGRAM_MAP(realbrk_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("tmp68301",tmp68301_device,irq_callback) + M68000(config, m_maincpu, XTAL(32'000'000) / 2); /* !! TMP68301 !! */ + m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::realbrk_mem); + m_maincpu->set_irq_acknowledge_callback("tmp68301", FUNC(tmp68301_device::irq_callback)); TMP68301(config, m_tmp68301, 0); m_tmp68301->set_cputag(m_maincpu); m_tmp68301->out_parallel_callback().set(FUNC(realbrk_state::realbrk_flipscreen_w)); /* video hardware */ - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(0x140, 0xe0) - MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_DRIVER(realbrk_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, realbrk_state, vblank_irq)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(0x140, 0xe0); + m_screen->set_visarea(0, 0x140-1, 0, 0xe0-1); + m_screen->set_screen_update(FUNC(realbrk_state::screen_update)); + m_screen->set_palette(m_palette); + m_screen->screen_vblank().set(FUNC(realbrk_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_realbrk); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x8000); @@ -795,40 +795,40 @@ MACHINE_CONFIG_START(realbrk_state::realbrk) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(33'868'800) / 2) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) - MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) + ymz280b_device &ymz(YMZ280B(config, "ymz", XTAL(33'868'800) / 2)); + ymz.add_route(0, "lspeaker", 0.50); + ymz.add_route(1, "rspeaker", 0.50); - MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(3'579'545)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) -MACHINE_CONFIG_END + ym2413_device &ymsnd(YM2413(config, "ymsnd", XTAL(3'579'545))); + ymsnd.add_route(ALL_OUTPUTS, "lspeaker", 0.50); + ymsnd.add_route(ALL_OUTPUTS, "rspeaker", 0.50); +} -MACHINE_CONFIG_START(realbrk_state::pkgnsh) +void realbrk_state::pkgnsh(machine_config &config) +{ realbrk(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(pkgnsh_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::pkgnsh_mem); m_tmp68301->out_parallel_callback().set_nop(); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(realbrk_state::pkgnshdx) +void realbrk_state::pkgnshdx(machine_config &config) +{ pkgnsh(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(pkgnshdx_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::pkgnshdx_mem); +} -MACHINE_CONFIG_START(realbrk_state::dai2kaku) +void realbrk_state::dai2kaku(machine_config &config) +{ realbrk(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(dai2kaku_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::dai2kaku_mem); m_gfxdecode->set_info(gfx_dai2kaku); m_screen->set_screen_update(FUNC(realbrk_state::screen_update_dai2kaku)); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/redalert.cpp b/src/mame/drivers/redalert.cpp index 85d587ecf1e..a677afeae6f 100644 --- a/src/mame/drivers/redalert.cpp +++ b/src/mame/drivers/redalert.cpp @@ -391,61 +391,61 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(redalert_state::redalert) - +void redalert_state::redalert(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(redalert_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt) + M6502(config, m_maincpu, MAIN_CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::redalert_main_map); + m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt)); /* video hardware */ redalert_video(config); /* audio hardware */ redalert_audio(config); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(redalert_state::ww3) +} +void redalert_state::ww3(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(ww3_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt) + M6502(config, m_maincpu, MAIN_CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::ww3_main_map); + m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt)); /* video hardware */ ww3_video(config); /* audio hardware */ ww3_audio(config); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(redalert_state::panther) +} +void redalert_state::panther(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(panther_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt) + M6502(config, m_maincpu, MAIN_CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::panther_main_map); + m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt)); /* video hardware */ panther_video(config); /* audio hardware */ ww3_audio(config); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(redalert_state::demoneye) +} +void redalert_state::demoneye(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(demoneye_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt) + M6502(config, m_maincpu, MAIN_CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::demoneye_main_map); + m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt)); /* video hardware */ demoneye_video(config); /* audio hardware */ demoneye_audio(config); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/relief.cpp b/src/mame/drivers/relief.cpp index add178d614c..3f55fbc6d43 100644 --- a/src/mame/drivers/relief.cpp +++ b/src/mame/drivers/relief.cpp @@ -255,11 +255,11 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(relief_state::relief) - +void relief_state::relief(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14.318181_MHz_XTAL/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) + M68000(config, m_maincpu, 14.318181_MHz_XTAL/2); + m_maincpu->set_addrmap(AS_PROGRAM, &relief_state::main_map); EEPROM_2816(config, "eeprom").lock_after_write(true); @@ -275,24 +275,23 @@ MACHINE_CONFIG_START(relief_state::relief) TILEMAP(config, "vad:playfield2", m_gfxdecode, 2, 8, 8, TILEMAP_SCAN_COLS, 64, 64, 0).set_info_callback(DEVICE_SELF_OWNER, FUNC(relief_state::get_playfield2_tile_info)); ATARI_MOTION_OBJECTS(config, "vad:mob", 0, m_screen, relief_state::s_mob_config).set_gfxdecode(m_gfxdecode); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); /* note: these parameters are from published specs, not derived */ /* the board uses a VAD chip to generate video signals */ - MCFG_SCREEN_RAW_PARAMS(14.318181_MHz_XTAL/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_DRIVER(relief_state, screen_update_relief) - MCFG_SCREEN_PALETTE("palette") + m_screen->set_raw(14.318181_MHz_XTAL/2, 456, 0, 336, 262, 0, 240); + m_screen->set_screen_update(FUNC(relief_state::screen_update_relief)); + m_screen->set_palette("palette"); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 14.318181_MHz_XTAL/4/3, okim6295_device::PIN7_LOW) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) + OKIM6295(config, m_oki, 14.318181_MHz_XTAL/4/3, okim6295_device::PIN7_LOW); + m_oki->add_route(ALL_OUTPUTS, "mono", 0.50); + m_oki->set_addrmap(0, &relief_state::oki_map); - MCFG_DEVICE_ADD("ymsnd", YM2413, 14.318181_MHz_XTAL/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + YM2413(config, m_ym2413, 14.318181_MHz_XTAL/4).add_route(ALL_OUTPUTS, "mono", 1.0); +} diff --git a/src/mame/drivers/retofinv.cpp b/src/mame/drivers/retofinv.cpp index 1a4bb7374be..bb0be85c97b 100644 --- a/src/mame/drivers/retofinv.cpp +++ b/src/mame/drivers/retofinv.cpp @@ -412,22 +412,22 @@ INTERRUPT_GEN_MEMBER(retofinv_state::sub_vblank_irq) } -MACHINE_CONFIG_START(retofinv_state::retofinv) - +void retofinv_state::retofinv(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", retofinv_state, main_vblank_irq) + Z80(config, m_maincpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(retofinv_state::main_vblank_irq)); - MCFG_DEVICE_ADD("sub", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", retofinv_state, sub_vblank_irq) + Z80(config, m_subcpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */ + m_subcpu->set_addrmap(AS_PROGRAM, &retofinv_state::sub_map); + m_subcpu->set_vblank_int("screen", FUNC(retofinv_state::sub_vblank_irq)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(retofinv_state, nmi_line_pulse, 2*60) // wrong, should be ~128-132 per frame, not 120. + Z80(config, m_audiocpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &retofinv_state::sound_map); + m_audiocpu->set_periodic_int(FUNC(retofinv_state::nmi_line_pulse), attotime::from_hz(2*60)); // wrong, should be ~128-132 per frame, not 120. - MCFG_DEVICE_ADD("68705", TAITO68705_MCU, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */ + TAITO68705_MCU(config, m_68705, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */ config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - enough for the sound CPU to read all commands */ @@ -442,13 +442,13 @@ MACHINE_CONFIG_START(retofinv_state::retofinv) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60.58) // vsync measured at 60.58hz - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // not accurate - MCFG_SCREEN_SIZE(36*8, 28*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(retofinv_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60.58); // vsync measured at 60.58hz + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); // not accurate + screen.set_size(36*8, 28*8); + screen.set_visarea(0*8, 36*8-1, 0*8, 28*8-1); + screen.set_screen_update(FUNC(retofinv_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_retofinv); PALETTE(config, m_palette, FUNC(retofinv_state::retofinv_palette), 256*2 + 64*16 + 64*16, 256); @@ -458,42 +458,41 @@ MACHINE_CONFIG_START(retofinv_state::retofinv) GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("sn1", SN76489A, XTAL(18'432'000)/6) /* @IC5?; XTAL, chip type, and divider verified, 3.072 MHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489A(config, "sn1", XTAL(18'432'000)/6).add_route(ALL_OUTPUTS, "mono", 0.80); /* @IC5?; XTAL, chip type, and divider verified, 3.072 MHz */ - MCFG_DEVICE_ADD("sn2", SN76489A, XTAL(18'432'000)/6) /* @IC6?; XTAL, chip type, and divider verified, 3.072 MHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END + SN76489A(config, "sn2", XTAL(18'432'000)/6).add_route(ALL_OUTPUTS, "mono", 0.80); /* @IC6?; XTAL, chip type, and divider verified, 3.072 MHz */ +} /* bootleg which has different palette clut */ -MACHINE_CONFIG_START(retofinv_state::retofinvb1) +void retofinv_state::retofinvb1(machine_config &config) +{ retofinv(config); m_palette->set_init(FUNC(retofinv_state::retofinv_bl_palette)); -MACHINE_CONFIG_END +} /* bootleg which has no mcu */ -MACHINE_CONFIG_START(retofinv_state::retofinvb_nomcu) +void retofinv_state::retofinvb_nomcu(machine_config &config) +{ retofinv(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(bootleg_map) + m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::bootleg_map); m_mainlatch->q_out_cb<3>().set_nop(); config.device_remove("68705"); -MACHINE_CONFIG_END +} -/* bootleg which has different pallete clut and also has no mcu */ -MACHINE_CONFIG_START(retofinv_state::retofinvb1_nomcu) +/* bootleg which has different palette clut and also has no mcu */ +void retofinv_state::retofinvb1_nomcu(machine_config &config) +{ retofinvb1(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(bootleg_map) + m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::bootleg_map); m_mainlatch->q_out_cb<3>().set_nop(); config.device_remove("68705"); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/rex6000.cpp b/src/mame/drivers/rex6000.cpp index 0679d53292a..e97c01ba358 100644 --- a/src/mame/drivers/rex6000.cpp +++ b/src/mame/drivers/rex6000.cpp @@ -897,22 +897,22 @@ GFXDECODE_END MACHINE_CONFIG_START(rex6000_state::rex6000) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(4'000'000)) //Toshiba microprocessor Z80 compatible at 4.3MHz - MCFG_DEVICE_PROGRAM_MAP(rex6000_mem) - MCFG_DEVICE_IO_MAP(rex6000_io) + Z80(config, m_maincpu, XTAL(4'000'000)); //Toshiba microprocessor Z80 compatible at 4.3MHz + m_maincpu->set_addrmap(AS_PROGRAM, &rex6000_state::rex6000_mem); + m_maincpu->set_addrmap(AS_IO, &rex6000_state::rex6000_io); TIMER(config, "sec_timer").configure_periodic(FUNC(rex6000_state::sec_timer), attotime::from_hz(1)); TIMER(config, "irq_timer1").configure_periodic(FUNC(rex6000_state::irq_timer1), attotime::from_hz(32)); TIMER(config, "irq_timer2").configure_periodic(FUNC(rex6000_state::irq_timer2), attotime::from_hz(4096)); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(rex6000_state, screen_update) - MCFG_SCREEN_SIZE(240, 120) - MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 120-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(rex6000_state::screen_update)); + screen.set_size(240, 120); + screen.set_visarea(0, 240-1, 0, 120-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(rex6000_state::rex6000_palettte), 2); GFXDECODE(config, "gfxdecode", "palette", gfx_rex6000); @@ -956,15 +956,14 @@ MACHINE_CONFIG_START(rex6000_state::rex6000) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD( "beeper", BEEP, 0 ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 ) + BEEP(config, m_beep, 0).add_route(ALL_OUTPUTS, "mono", 1.00); MACHINE_CONFIG_END MACHINE_CONFIG_START(oz750_state::oz750) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(9'830'400)) //Toshiba microprocessor Z80 compatible at 9.8MHz - MCFG_DEVICE_PROGRAM_MAP(rex6000_mem) - MCFG_DEVICE_IO_MAP(oz750_io) + Z80(config, m_maincpu, XTAL(9'830'400)); //Toshiba microprocessor Z80 compatible at 9.8MHz + m_maincpu->set_addrmap(AS_PROGRAM, &oz750_state::rex6000_mem); + m_maincpu->set_addrmap(AS_IO, &oz750_state::oz750_io); TIMER(config, "sec_timer").configure_periodic(FUNC(rex6000_state::sec_timer), attotime::from_hz(1)); TIMER(config, "irq_timer1").configure_periodic(FUNC(rex6000_state::irq_timer1), attotime::from_hz(64)); @@ -984,13 +983,13 @@ MACHINE_CONFIG_START(oz750_state::oz750) //serport.cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(oz750_state, screen_update_oz) - MCFG_SCREEN_SIZE(240, 80) - MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 80-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(oz750_state::screen_update_oz)); + screen.set_size(240, 80); + screen.set_visarea(0, 240-1, 0, 80-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(rex6000_state::rex6000_palettte), 2); @@ -1011,8 +1010,7 @@ MACHINE_CONFIG_START(oz750_state::oz750) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD( "beeper", BEEP, 0 ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 ) + BEEP(config, m_beep, 0).add_route(ALL_OUTPUTS, "mono", 1.00); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/rgum.cpp b/src/mame/drivers/rgum.cpp index 610be95ca91..71a606245ab 100644 --- a/src/mame/drivers/rgum.cpp +++ b/src/mame/drivers/rgum.cpp @@ -245,19 +245,20 @@ static GFXDECODE_START( gfx_rgum ) GFXDECODE_END -MACHINE_CONFIG_START(rgum_state::rgum) +void rgum_state::rgum(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M65C02,24000000/16) /* ? MHz */ - MCFG_DEVICE_PROGRAM_MAP(rgum_map) + M65C02(config, m_maincpu, 24000000/16); /* ? MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &rgum_state::rgum_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(rgum_state, screen_update_royalgum) - 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(256, 256); + screen.set_visarea(0, 256-1, 0, 256-1); + screen.set_screen_update(FUNC(rgum_state::screen_update_royalgum)); + screen.set_palette(m_palette); mc6845_device &crtc(MC6845(config, "crtc", 24000000/16)); /* unknown clock & type, hand tuned to get ~50 fps (?) */ crtc.set_screen("screen"); @@ -271,12 +272,12 @@ MACHINE_CONFIG_START(rgum_state::rgum) ppi.in_pc_callback().set_ioport("IN2"); GFXDECODE(config, m_gfxdecode, m_palette, gfx_rgum); - MCFG_PALETTE_ADD("palette", 0x100) + PALETTE(config, m_palette).set_entries(0x100); SPEAKER(config, "mono").front_center(); AY8910(config, "aysnd", 24000000/16).add_route(ALL_OUTPUTS, "mono", 0.50); /* guessed to use the same xtal as the crtc */ -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/riscpc.cpp b/src/mame/drivers/riscpc.cpp index b08056fdbfa..055e68225a8 100644 --- a/src/mame/drivers/riscpc.cpp +++ b/src/mame/drivers/riscpc.cpp @@ -814,86 +814,91 @@ void riscpc_state::machine_reset() m_flyback_timer->adjust( attotime::never); } -MACHINE_CONFIG_START(riscpc_state::rpc600) +void riscpc_state::rpc600(machine_config &config) +{ /* Basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", ARM7, 60_MHz_XTAL/2) // ARM610 - MCFG_DEVICE_PROGRAM_MAP(a7000_mem) + ARM7(config, m_maincpu, 60_MHz_XTAL/2); // ARM610 + m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem); /* 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(1900, 1080) //max available size - MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1) - MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update) - MCFG_PALETTE_ADD("palette", 0x200) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(riscpc_state::rpc700) + 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(1900, 1080); //max available size + m_screen->set_visarea(0, 1900-1, 0, 1080-1); + m_screen->set_screen_update(FUNC(riscpc_state::screen_update)); + PALETTE(config, m_palette).set_entries(0x200); +} + +void riscpc_state::rpc700(machine_config &config) +{ /* Basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", ARM7, 80_MHz_XTAL/2) // ARM710 - MCFG_DEVICE_PROGRAM_MAP(a7000_mem) + ARM7(config, m_maincpu, 80_MHz_XTAL/2); // ARM710 + m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem); /* 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(1900, 1080) //max available size - MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1) - MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update) - MCFG_PALETTE_ADD("palette", 0x200) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(riscpc_state::a7000) + 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(1900, 1080); //max available size + m_screen->set_visarea(0, 1900-1, 0, 1080-1); + m_screen->set_screen_update(FUNC(riscpc_state::screen_update)); + PALETTE(config, m_palette).set_entries(0x200); +} + +void riscpc_state::a7000(machine_config &config) +{ /* Basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", ARM7, XTAL(32'000'000) ) // ARM7500 - MCFG_DEVICE_PROGRAM_MAP(a7000_mem) + ARM7(config, m_maincpu, XTAL(32'000'000)); // ARM7500 + m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem); /* 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(1900, 1080) //max available size - MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1) - MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update) - MCFG_PALETTE_ADD("palette", 0x200) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(riscpc_state::a7000p) + 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(1900, 1080); //max available size + m_screen->set_visarea(0, 1900-1, 0, 1080-1); + m_screen->set_screen_update(FUNC(riscpc_state::screen_update)); + PALETTE(config, m_palette).set_entries(0x200); +} + +void riscpc_state::a7000p(machine_config &config) +{ a7000(config); - MCFG_DEVICE_MODIFY("maincpu") // ARM7500FE - MCFG_DEVICE_CLOCK(XTAL(48'000'000)) -MACHINE_CONFIG_END + m_maincpu->set_clock(XTAL(48'000'000)); // ARM7500FE +} -MACHINE_CONFIG_START(riscpc_state::sarpc) +void riscpc_state::sarpc(machine_config &config) +{ /* Basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", ARM7, 202000000 ) // StrongARM - MCFG_DEVICE_PROGRAM_MAP(a7000_mem) + ARM7(config, m_maincpu, 202000000); // StrongARM + m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem); /* 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(1900, 1080) //max available size - MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1) - MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update) - MCFG_PALETTE_ADD("palette", 0x200) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(riscpc_state::sarpc_j233) + 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(1900, 1080); //max available size + m_screen->set_visarea(0, 1900-1, 0, 1080-1); + m_screen->set_screen_update(FUNC(riscpc_state::screen_update)); + PALETTE(config, m_palette).set_entries(0x200); +} + +void riscpc_state::sarpc_j233(machine_config &config) +{ /* Basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", ARM7, 233000000 ) // StrongARM - MCFG_DEVICE_PROGRAM_MAP(a7000_mem) + ARM7(config, m_maincpu, 233000000); // StrongARM + m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem); /* 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(1900, 1080) //max available size - MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1) - MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update) - MCFG_PALETTE_ADD("palette", 0x200) -MACHINE_CONFIG_END + 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(1900, 1080); //max available size + m_screen->set_visarea(0, 1900-1, 0, 1080-1); + m_screen->set_screen_update(FUNC(riscpc_state::screen_update)); + PALETTE(config, m_palette).set_entries(0x200); +} ROM_START(rpc600) ROM_REGION( 0x800000, "user1", ROMREGION_ERASEFF ) diff --git a/src/mame/drivers/rltennis.cpp b/src/mame/drivers/rltennis.cpp index ace73fd5f9e..9803fba9585 100644 --- a/src/mame/drivers/rltennis.cpp +++ b/src/mame/drivers/rltennis.cpp @@ -181,20 +181,20 @@ void rltennis_state::ramdac_map(address_map &map) map(0x000, 0x3ff).rw("ramdac", FUNC(ramdac_device::ramdac_pal_r), FUNC(ramdac_device::ramdac_rgb888_w)); } -MACHINE_CONFIG_START(rltennis_state::rltennis) - - MCFG_DEVICE_ADD("maincpu", M68000, RLT_XTAL/2) /* 68000P8 ??? */ - MCFG_DEVICE_PROGRAM_MAP(rltennis_main) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rltennis_state, interrupt) +void rltennis_state::rltennis(machine_config &config) +{ + M68000(config, m_maincpu, RLT_XTAL/2); /* 68000P8 ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &rltennis_state::rltennis_main); + m_maincpu->set_vblank_int("screen", FUNC(rltennis_state::interrupt)); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE( RLT_REFRESH_RATE ) - MCFG_SCREEN_SIZE(320, 240) - MCFG_SCREEN_VISIBLE_AREA(0,319, 0, 239) - MCFG_SCREEN_UPDATE_DRIVER(rltennis_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(RLT_REFRESH_RATE); + screen.set_size(320, 240); + screen.set_visarea(0, 319, 0, 239); + screen.set_screen_update(FUNC(rltennis_state::screen_update)); + screen.set_palette("palette"); - MCFG_PALETTE_ADD("palette", 256) + PALETTE(config, "palette").set_entries(256); EEPROM_2864(config, "eeprom"); @@ -209,7 +209,7 @@ MACHINE_CONFIG_START(rltennis_state::rltennis) voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT); vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} ROM_START( rltennis ) ROM_REGION( 0x100000, "maincpu", 0 ) diff --git a/src/mame/drivers/rm380z.cpp b/src/mame/drivers/rm380z.cpp index 1b9c3dd745b..7b648e24133 100644 --- a/src/mame/drivers/rm380z.cpp +++ b/src/mame/drivers/rm380z.cpp @@ -234,22 +234,23 @@ uint32_t rm380z_state::screen_update_rm380z(screen_device &screen, bitmap_ind16 return 0; } -MACHINE_CONFIG_START(rm380z_state::rm380z) +void rm380z_state::rm380z(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(RM380Z_MAINCPU_TAG, Z80, 16_MHz_XTAL / 4) - MCFG_DEVICE_PROGRAM_MAP(rm380z_mem) - MCFG_DEVICE_IO_MAP(rm380z_io) + Z80(config, m_maincpu, 16_MHz_XTAL / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &rm380z_state::rm380z_mem); + m_maincpu->set_addrmap(AS_IO, &rm380z_state::rm380z_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); // according to videos and pictures of the real hardware, chars are spaced of at least 1 pixel // and there is at least 1 pixel between each row of characters - MCFG_SCREEN_SIZE((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))) - MCFG_SCREEN_VISIBLE_AREA(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1) - MCFG_SCREEN_UPDATE_DRIVER(rm380z_state, screen_update_rm380z) - MCFG_SCREEN_PALETTE("palette") + screen.set_size((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))); + screen.set_visarea(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1); + screen.set_screen_update(FUNC(rm380z_state::screen_update_rm380z)); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -271,30 +272,31 @@ MACHINE_CONFIG_START(rm380z_state::rm380z) /* keyboard */ generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); keyboard.set_keyboard_callback(FUNC(rm380z_state::keyboard_put)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(rm380z_state::rm480z) +void rm380z_state::rm480z(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(RM380Z_MAINCPU_TAG, Z80, 16_MHz_XTAL / 4) - MCFG_DEVICE_PROGRAM_MAP(rm480z_mem) - MCFG_DEVICE_IO_MAP(rm480z_io) + Z80(config, m_maincpu, 16_MHz_XTAL / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &rm380z_state::rm480z_mem); + m_maincpu->set_addrmap(AS_IO, &rm380z_state::rm480z_io); MCFG_MACHINE_RESET_OVERRIDE(rm380z_state, rm480z) /* video hardware */ -// MCFG_SCREEN_ADD("screen", RASTER) -// MCFG_SCREEN_REFRESH_RATE(50) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) -// MCFG_SCREEN_SIZE((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))) -// MCFG_SCREEN_VISIBLE_AREA(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1) -// MCFG_SCREEN_UPDATE_DRIVER(rm380z_state, screen_update_rm480z) -// MCFG_SCREEN_PALETTE("palette") +// screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); +// screen.set_refresh_hz(50); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); +// screen.set_size((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))); +// screen.set_visarea(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1); +// screen.set_screen_update(FUNC(rm380z_state::screen_update_rm480z)); +// screen.set_palette("palette"); -// MCFG_PALETTE_ADD_MONOCHROME("palette") +// PALETTE(config, "palette", palette_device::MONOCHROME); /* keyboard */ // generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); // keyboard.set_keyboard_callback(FUNC(rm380z_state::keyboard_put)); -MACHINE_CONFIG_END +} /* ROM definitions */ diff --git a/src/mame/drivers/rmnimbus.cpp b/src/mame/drivers/rmnimbus.cpp index f8e367dda5d..5c9c3cffe24 100644 --- a/src/mame/drivers/rmnimbus.cpp +++ b/src/mame/drivers/rmnimbus.cpp @@ -127,7 +127,7 @@ void rmnimbus_state::nimbus(machine_config &config) SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(4.433619_MHz_XTAL * 2, 650, 0, 640, 260, 0, 250); m_screen->set_screen_update(FUNC(rmnimbus_state::screen_update_nimbus)); - //MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE) + //m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE); m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_entries(16); diff --git a/src/mame/drivers/rmt32.cpp b/src/mame/drivers/rmt32.cpp index f325012954e..3e93698e165 100644 --- a/src/mame/drivers/rmt32.cpp +++ b/src/mame/drivers/rmt32.cpp @@ -349,22 +349,23 @@ void mt32_state::mt32_map(address_map &map) map(0xc000, 0xffff).bankrw("fixed"); } -MACHINE_CONFIG_START(mt32_state::mt32) - i8x9x_device &maincpu(P8098(config, "maincpu", 12_MHz_XTAL)); +void mt32_state::mt32(machine_config &config) +{ + i8x9x_device &maincpu(P8098(config, cpu, 12_MHz_XTAL)); maincpu.set_addrmap(AS_PROGRAM, &mt32_state::mt32_map); maincpu.ach7_cb().set_ioport("A7"); maincpu.serial_tx_cb().set(FUNC(mt32_state::midi_w)); maincpu.in_p0_cb().set(FUNC(mt32_state::port0_r)); - RAM( config, "ram" ).set_default_size( "32K" ); + RAM(config, ram).set_default_size("32K"); - MCFG_SCREEN_ADD( "screen", LCD ) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_UPDATE_DRIVER(mt32_state, screen_update) -// MCFG_SCREEN_SIZE(20*6-1, 9) - MCFG_SCREEN_SIZE(20*6-1, (20*6-1)*3/4) - MCFG_SCREEN_VISIBLE_AREA(0, 20*6-2, 0, (20*6-1)*3/4-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_screen_update(FUNC(mt32_state::screen_update)); +// screen.set_size(20*6-1, 9); + screen.set_size(20*6-1, (20*6-1)*3/4); + screen.set_visarea(0, 20*6-2, 0, (20*6-1)*3/4-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(mt32_state::mt32_palette), 2); @@ -373,7 +374,7 @@ MACHINE_CONFIG_START(mt32_state::mt32) TIMER(config, midi_timer).configure_generic(FUNC(mt32_state::midi_timer_cb)); TIMER(config, "samples_timer").configure_periodic(FUNC(mt32_state::samples_timer_cb), attotime::from_hz(32000*2)); -MACHINE_CONFIG_END +} ROM_START( mt32 ) ROM_REGION( 0x10000, "maincpu", 0 ) diff --git a/src/mame/drivers/rockrage.cpp b/src/mame/drivers/rockrage.cpp index 81abbeb1508..803b9859ffa 100644 --- a/src/mame/drivers/rockrage.cpp +++ b/src/mame/drivers/rockrage.cpp @@ -248,26 +248,26 @@ void rockrage_state::machine_reset() m_vreg = 0; } -MACHINE_CONFIG_START(rockrage_state::rockrage) - +void rockrage_state::rockrage(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", HD6309E, XTAL(24'000'000) / 8) - MCFG_DEVICE_PROGRAM_MAP(rockrage_map) + HD6309E(config, m_maincpu, XTAL(24'000'000) / 8); + m_maincpu->set_addrmap(AS_PROGRAM, &rockrage_state::rockrage_map); - MCFG_DEVICE_ADD("audiocpu", MC6809E, XTAL(24'000'000) / 16) - MCFG_DEVICE_PROGRAM_MAP(rockrage_sound_map) + MC6809E(config, m_audiocpu, XTAL(24'000'000) / 16); + m_audiocpu->set_addrmap(AS_PROGRAM, &rockrage_state::rockrage_sound_map); 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(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rockrage_state, screen_update_rockrage) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rockrage_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(rockrage_state::screen_update_rockrage)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(rockrage_state::vblank_irq)); K007342(config, m_k007342, 0); m_k007342->set_gfxnum(0); @@ -292,11 +292,11 @@ MACHINE_CONFIG_START(rockrage_state::rockrage) YM2151(config, "ymsnd", 3579545).add_route(0, "lspeaker", 0.60).add_route(1, "rspeaker", 0.60); - MCFG_DEVICE_ADD("vlm", VLM5030, 3579545) - MCFG_DEVICE_ADDRESS_MAP(0, rockrage_vlm_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60) -MACHINE_CONFIG_END + VLM5030(config, m_vlm, 3579545); + m_vlm->set_addrmap(0, &rockrage_state::rockrage_vlm_map); + m_vlm->add_route(ALL_OUTPUTS, "lspeaker", 0.60); + m_vlm->add_route(ALL_OUTPUTS, "rspeaker", 0.60); +} /*************************************************************************** diff --git a/src/mame/drivers/rocnrope.cpp b/src/mame/drivers/rocnrope.cpp index d112e720d84..2518a36dfab 100644 --- a/src/mame/drivers/rocnrope.cpp +++ b/src/mame/drivers/rocnrope.cpp @@ -206,11 +206,11 @@ WRITE_LINE_MEMBER(rocnrope_state::vblank_irq) m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); } -MACHINE_CONFIG_START(rocnrope_state::rocnrope) - +void rocnrope_state::rocnrope(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", KONAMI1, MASTER_CLOCK / 3 / 4) /* Verified in schematics */ - MCFG_DEVICE_PROGRAM_MAP(rocnrope_map) + KONAMI1(config, m_maincpu, MASTER_CLOCK / 3 / 4); /* Verified in schematics */ + m_maincpu->set_addrmap(AS_PROGRAM, &rocnrope_state::rocnrope_map); ls259_device &mainlatch(LS259(config, "mainlatch")); // B2 mainlatch.q_out_cb<0>().set(FUNC(rocnrope_state::flip_screen_w)); @@ -223,21 +223,21 @@ MACHINE_CONFIG_START(rocnrope_state::rocnrope) 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(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rocnrope_state, screen_update_rocnrope) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rocnrope_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(rocnrope_state::screen_update_rocnrope)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(rocnrope_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_rocnrope); PALETTE(config, m_palette, FUNC(rocnrope_state::rocnrope_palette), 16*16+16*16, 32); /* sound hardware */ TIMEPLT_AUDIO(config, "timeplt_audio"); -MACHINE_CONFIG_END +} /************************************* * diff --git a/src/mame/drivers/rohga.cpp b/src/mame/drivers/rohga.cpp index 1a0bacf9abd..da1d4c8d39d 100644 --- a/src/mame/drivers/rohga.cpp +++ b/src/mame/drivers/rohga.cpp @@ -871,12 +871,12 @@ DECOSPR_COLOUR_CB_MEMBER(rohga_state::schmeisr_col_callback) return colour; } -MACHINE_CONFIG_START(rohga_state::rohga) - +void rohga_state::rohga(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14000000) - MCFG_DEVICE_PROGRAM_MAP(rohga_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert) + M68000(config, m_maincpu, 14000000); + m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::rohga_map); + m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert)); H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */ m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map); @@ -884,18 +884,18 @@ MACHINE_CONFIG_START(rohga_state::rohga) m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0); /* video hardware */ - MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram[0]); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(529)); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(rohga_state::screen_update_rohga)); + screen.set_palette(m_palette); GFXDECODE(config, "gfxdecode", m_palette, gfx_rohga); - MCFG_PALETTE_ADD("palette", 2048) + PALETTE(config, m_palette).set_entries(2048); DECOCOMN(config, m_decocomn, 0); m_decocomn->set_palette_tag(m_palette); @@ -954,21 +954,21 @@ MACHINE_CONFIG_START(rohga_state::rohga) ymsnd.add_route(0, "lspeaker", 0.78); ymsnd.add_route(1, "rspeaker", 0.78); - MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH); + m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(rohga_state::wizdfire) + OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH); + m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40); + m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40); +} +void rohga_state::wizdfire(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14000000) - MCFG_DEVICE_PROGRAM_MAP(wizdfire_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert) + M68000(config, m_maincpu, 14000000); + m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::wizdfire_map); + m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert)); H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */ m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map); @@ -976,18 +976,18 @@ MACHINE_CONFIG_START(rohga_state::wizdfire) m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0); /* video hardware */ - MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16) - MCFG_DEVICE_ADD("spriteram2", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram[0]); + BUFFERED_SPRITERAM16(config, m_spriteram[1]); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_wizdfire) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(529)); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(rohga_state::screen_update_wizdfire)); GFXDECODE(config, "gfxdecode", m_palette, gfx_wizdfire); - MCFG_PALETTE_ADD("palette", 2048) + PALETTE(config, m_palette).set_entries(2048); DECOCOMN(config, m_decocomn, 0); m_decocomn->set_palette_tag(m_palette); @@ -1051,21 +1051,21 @@ MACHINE_CONFIG_START(rohga_state::wizdfire) ymsnd.add_route(0, "lspeaker", 0.80); ymsnd.add_route(1, "rspeaker", 0.80); - MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - - MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) -MACHINE_CONFIG_END + OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH); + m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); -MACHINE_CONFIG_START(rohga_state::nitrobal) + OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH); + m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40); + m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40); +} +void rohga_state::nitrobal(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14000000) - MCFG_DEVICE_PROGRAM_MAP(nitrobal_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert) + M68000(config, m_maincpu, 14000000); + m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::nitrobal_map); + m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert)); H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */ m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map); @@ -1073,18 +1073,18 @@ MACHINE_CONFIG_START(rohga_state::nitrobal) m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0); /* video hardware */ - MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16) - MCFG_DEVICE_ADD("spriteram2", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram[0]); + BUFFERED_SPRITERAM16(config, m_spriteram[1]); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_nitrobal) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(529)); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(rohga_state::screen_update_nitrobal)); GFXDECODE(config, "gfxdecode", m_palette, gfx_wizdfire); - MCFG_PALETTE_ADD("palette", 2048) + PALETTE(config, m_palette).set_entries(2048); DECOCOMN(config, m_decocomn, 0); m_decocomn->set_palette_tag(m_palette); @@ -1149,21 +1149,21 @@ MACHINE_CONFIG_START(rohga_state::nitrobal) ymsnd.add_route(0, "lspeaker", 0.80); ymsnd.add_route(1, "rspeaker", 0.80); - MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - - MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) -MACHINE_CONFIG_END + OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH); + m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); -MACHINE_CONFIG_START(rohga_state::schmeisr) + OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH); + m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40); + m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40); +} +void rohga_state::schmeisr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14000000) - MCFG_DEVICE_PROGRAM_MAP(schmeisr_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert) + M68000(config, m_maincpu, 14000000); + m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::schmeisr_map); + m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert)); H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */ m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map); @@ -1171,18 +1171,18 @@ MACHINE_CONFIG_START(rohga_state::schmeisr) m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0); /* video hardware */ - MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram[0]); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(529)); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(rohga_state::screen_update_rohga)); + screen.set_palette(m_palette); GFXDECODE(config, "gfxdecode", m_palette, gfx_schmeisr); - MCFG_PALETTE_ADD("palette", 2048) + PALETTE(config, m_palette).set_entries(2048); DECOCOMN(config, m_decocomn, 0); m_decocomn->set_palette_tag(m_palette); @@ -1241,24 +1241,24 @@ MACHINE_CONFIG_START(rohga_state::schmeisr) ymsnd.add_route(0, "lspeaker", 0.80); ymsnd.add_route(1, "rspeaker", 0.80); - MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH); + m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) -MACHINE_CONFIG_END + OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH); + m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40); + m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40); +} -MACHINE_CONFIG_START(rohga_state::hangzo) +void rohga_state::hangzo(machine_config &config) +{ schmeisr(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(hangzo_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::hangzo_map); +} /**********************************************************************************/ diff --git a/src/mame/drivers/rollext.cpp b/src/mame/drivers/rollext.cpp index 57de06bd0ea..8a5af16a441 100644 --- a/src/mame/drivers/rollext.cpp +++ b/src/mame/drivers/rollext.cpp @@ -543,25 +543,26 @@ void rollext_state::machine_start() } -MACHINE_CONFIG_START(rollext_state::rollext) - MCFG_DEVICE_ADD("maincpu", TMS32082_MP, 60000000) - MCFG_DEVICE_PROGRAM_MAP(memmap) - //MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rollext_state, vblank_interrupt) - MCFG_DEVICE_PERIODIC_INT_DRIVER(rollext_state, irq1_line_assert, 60) - //MCFG_DEVICE_PERIODIC_INT_DRIVER(rollext_state, irq3_line_assert, 500) +void rollext_state::rollext(machine_config &config) +{ + TMS32082_MP(config, m_maincpu, 60000000); + m_maincpu->set_addrmap(AS_PROGRAM, &rollext_state::memmap); + //m_maincpu->set_vblank_int("screen", FUNC(rollext_state::vblank_interrupt)); + m_maincpu->set_periodic_int(FUNC(rollext_state::irq1_line_assert), attotime::from_hz(60)); + //m_maincpu->set_periodic_int(FUNC(rollext_state::irq3_line_assert), attotime::from_hz(500)); - MCFG_DEVICE_ADD("pp0", TMS32082_PP, 60000000) - MCFG_DEVICE_PROGRAM_MAP(memmap); + tms32082_pp_device &pp0(TMS32082_PP(config, "pp0", 60000000)); + pp0.set_addrmap(AS_PROGRAM, &rollext_state::memmap); config.m_minimum_quantum = attotime::from_hz(100); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 384) - MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) - MCFG_SCREEN_UPDATE_DRIVER(rollext_state, screen_update) -MACHINE_CONFIG_END + 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, 384); + m_screen->set_visarea(0, 511, 0, 383); + m_screen->set_screen_update(FUNC(rollext_state::screen_update)); +} INTERRUPT_GEN_MEMBER(rollext_state::vblank_interrupt) diff --git a/src/mame/drivers/rollrace.cpp b/src/mame/drivers/rollrace.cpp index b9e4655c71c..b05c7776697 100644 --- a/src/mame/drivers/rollrace.cpp +++ b/src/mame/drivers/rollrace.cpp @@ -249,15 +249,15 @@ INTERRUPT_GEN_MEMBER(rollrace_state::sound_timer_irq) device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -MACHINE_CONFIG_START(rollrace_state::rollrace) - +void rollrace_state::rollrace(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,XTAL(24'000'000)/8) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(rollrace_map) + Z80(config, m_maincpu, XTAL(24'000'000)/8); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &rollrace_state::rollrace_map); - MCFG_DEVICE_ADD("audiocpu", Z80,XTAL(24'000'000)/16) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(rollrace_sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(rollrace_state, sound_timer_irq, 4*60) + z80_device &audiocpu(Z80(config, "audiocpu", XTAL(24'000'000)/16)); /* verified on pcb */ + audiocpu.set_addrmap(AS_PROGRAM, &rollrace_state::rollrace_sound_map); + audiocpu.set_periodic_int(FUNC(rollrace_state::sound_timer_irq), attotime::from_hz(4*60)); ls259_device &mainlatch(LS259(config, "mainlatch")); mainlatch.q_out_cb<0>().set(FUNC(rollrace_state::flipx_w)); @@ -269,14 +269,14 @@ MACHINE_CONFIG_START(rollrace_state::rollrace) mainlatch.q_out_cb<6>().set(FUNC(rollrace_state::spritebank_w)); /* 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(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0,256-1,16, 255-16) - MCFG_SCREEN_UPDATE_DRIVER(rollrace_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rollrace_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(256, 256); + screen.set_visarea(0, 256-1, 16, 255-16); + screen.set_screen_update(FUNC(rollrace_state::screen_update)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(rollrace_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_rollrace); PALETTE(config, m_palette, FUNC(rollrace_state::rollrace_palette), 256); @@ -292,16 +292,16 @@ MACHINE_CONFIG_START(rollrace_state::rollrace) AY8910(config, "ay2", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "rspeaker", 0.10); /* verified on pcb */ AY8910(config, "ay3", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "lspeaker", 0.10); /* verified on pcb */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(rollrace_state::rollace2) +void rollrace_state::rollace2(machine_config &config) +{ rollrace(config); /* basic machine hardware */ -// MCFG_SCREEN_MODIFY("screen") -// MCFG_SCREEN_VISIBLE_AREA(0,256-1,16, 255-16) -MACHINE_CONFIG_END +// subdevice<screen_device>("screen")->set_visarea(0, 256-1, 16, 255-16); +} /*************************************************************************** diff --git a/src/mame/drivers/ron.cpp b/src/mame/drivers/ron.cpp index 2bade072443..a2f6d8d91b2 100644 --- a/src/mame/drivers/ron.cpp +++ b/src/mame/drivers/ron.cpp @@ -486,12 +486,12 @@ WRITE8_MEMBER(ron_state::ay_pa_w) { } -MACHINE_CONFIG_START(ron_state::ron) - +void ron_state::ron(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(ron_map) - MCFG_DEVICE_IO_MAP(ron_io) + Z80(config, m_maincpu, MAIN_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &ron_state::ron_map); + m_maincpu->set_addrmap(AS_IO, &ron_state::ron_io); I8035(config, m_audiocpu, SOUND_CLOCK); m_audiocpu->set_addrmap(AS_PROGRAM, &ron_state::ron_audio_map); @@ -503,11 +503,11 @@ MACHINE_CONFIG_START(ron_state::ron) m_audiocpu->t1_in_cb().set(FUNC(ron_state::audio_t1_r)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_UPDATE_DRIVER(ron_state, screen_update) - MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 320, 0, 256, 264, 0, 240) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, ron_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(ron_state::screen_update)); + screen.set_raw(VIDEO_CLOCK, 320, 0, 256, 264, 0, 240); + screen.set_palette("palette"); + screen.screen_vblank().set(FUNC(ron_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, "palette", gfx_ron); @@ -519,7 +519,7 @@ MACHINE_CONFIG_START(ron_state::ron) AY8910(config, m_ay, 0); // T0 CLK from I8035 (not verified) m_ay->add_route(ALL_OUTPUTS, "mono", 0.30); m_ay->port_a_write_callback().set(FUNC(ron_state::ay_pa_w)); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/roul.cpp b/src/mame/drivers/roul.cpp index 1857d4bb465..51e23dcbb38 100644 --- a/src/mame/drivers/roul.cpp +++ b/src/mame/drivers/roul.cpp @@ -312,27 +312,28 @@ static INPUT_PORTS_START( roul ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END -MACHINE_CONFIG_START(roul_state::roul) +void roul_state::roul(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 4000000) - MCFG_DEVICE_PROGRAM_MAP(roul_map) - MCFG_DEVICE_IO_MAP(roul_cpu_io_map) + Z80(config, m_maincpu, 4000000); + m_maincpu->set_addrmap(AS_PROGRAM, &roul_state::roul_map); + m_maincpu->set_addrmap(AS_IO, &roul_state::roul_cpu_io_map); - MCFG_DEVICE_ADD("soundcpu", Z80, 4000000) - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_cpu_io_map) + Z80(config, m_soundcpu, 4000000); + m_soundcpu->set_addrmap(AS_PROGRAM, &roul_state::sound_map); + m_soundcpu->set_addrmap(AS_IO, &roul_state::sound_cpu_io_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(roul_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(roul_state::screen_update)); + screen.set_palette("palette"); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); PALETTE(config, "palette", FUNC(roul_state::roul_palette), 0x100); @@ -341,7 +342,7 @@ MACHINE_CONFIG_START(roul_state::roul) GENERIC_LATCH_8(config, m_soundlatch); AY8910(config, "aysnd", 1000000).add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} ROM_START(roul) ROM_REGION( 0x10000, "maincpu", 0 ) diff --git a/src/mame/drivers/royalmah.cpp b/src/mame/drivers/royalmah.cpp index d6d61f4ff71..e7911dd960b 100644 --- a/src/mame/drivers/royalmah.cpp +++ b/src/mame/drivers/royalmah.cpp @@ -3532,26 +3532,26 @@ static INPUT_PORTS_START( mjvegasa ) INPUT_PORTS_END -MACHINE_CONFIG_START(royalmah_state::royalmah) - +void royalmah_state::royalmah(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, Z80, 18432000/6) /* 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(royalmah_map) - MCFG_DEVICE_IO_MAP(royalmah_iomap) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, irq0_line_hold) + Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::royalmah_map); + m_maincpu->set_addrmap(AS_IO, &royalmah_state::royalmah_iomap); + m_maincpu->set_vblank_int("screen", FUNC(royalmah_state::irq0_line_hold)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ PALETTE(config, "palette", FUNC(royalmah_state::royalmah_palette), 16*4); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_UPDATE_DRIVER(royalmah_state, screen_update_royalmah) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_size(256, 256); + screen.set_visarea(0, 255, 8, 247); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_screen_update(FUNC(royalmah_state::screen_update_royalmah)); + screen.set_palette("palette"); /* sound hardware */ SPEAKER(config, "speaker").front_center(); @@ -3560,32 +3560,32 @@ MACHINE_CONFIG_START(royalmah_state::royalmah) m_ay->port_a_read_callback().set(FUNC(royalmah_state::player_1_port_r)); m_ay->port_b_read_callback().set(FUNC(royalmah_state::player_2_port_r)); m_ay->add_route(ALL_OUTPUTS, "speaker", 0.33); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(royalmah_state::janoh) +void royalmah_state::janoh(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(janoh_map) + m_maincpu->set_clock(8000000/2); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::janoh_map); - MCFG_DEVICE_ADD("sub", Z80, 4000000) /* 4 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(janoh_sub_map) - MCFG_DEVICE_IO_MAP(janoh_sub_iomap) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, irq0_line_hold) -MACHINE_CONFIG_END + z80_device &sub(Z80(config, "sub", 4000000)); /* 4 MHz ? */ + sub.set_addrmap(AS_PROGRAM, &royalmah_state::janoh_sub_map); + sub.set_addrmap(AS_IO, &royalmah_state::janoh_sub_iomap); + sub.set_vblank_int("screen", FUNC(royalmah_state::irq0_line_hold)); +} -MACHINE_CONFIG_START(royalmah_state::jansou) +void royalmah_state::jansou(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(jansou_map) - MCFG_DEVICE_IO_MAP(royalmah_iomap) + m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::jansou_map); + m_maincpu->set_addrmap(AS_IO, &royalmah_state::royalmah_iomap); - MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4.000 MHz */ - MCFG_DEVICE_PROGRAM_MAP(jansou_sub_map) - MCFG_DEVICE_IO_MAP(jansou_sub_iomap) - MCFG_DEVICE_PERIODIC_INT_DRIVER(royalmah_state, irq0_line_hold, 4000000/512) + Z80(config, m_audiocpu, 4000000); /* 4.000 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &royalmah_state::jansou_sub_map); + m_audiocpu->set_addrmap(AS_IO, &royalmah_state::jansou_sub_iomap); + m_audiocpu->set_periodic_int(FUNC(royalmah_state::irq0_line_hold), attotime::from_hz(4000000/512)); GENERIC_LATCH_8(config, m_soundlatch); @@ -3593,74 +3593,74 @@ MACHINE_CONFIG_START(royalmah_state::jansou) voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(royalmah_state::dondenmj) +void royalmah_state::dondenmj(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */ - MCFG_DEVICE_IO_MAP(dondenmj_iomap) -MACHINE_CONFIG_END + m_maincpu->set_clock(8000000/2); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_IO, &royalmah_state::dondenmj_iomap); +} -MACHINE_CONFIG_START(royalmah_state::tahjong) +void royalmah_state::tahjong(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(tahjong_map) - MCFG_DEVICE_IO_MAP(tahjong_iomap) -MACHINE_CONFIG_END + m_maincpu->set_clock(8000000/2); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::tahjong_map); + m_maincpu->set_addrmap(AS_IO, &royalmah_state::tahjong_iomap); +} -MACHINE_CONFIG_START(royalmah_state::makaijan) +void royalmah_state::makaijan(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */ - MCFG_DEVICE_IO_MAP(makaijan_iomap) -MACHINE_CONFIG_END + m_maincpu->set_clock(8000000/2); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_IO, &royalmah_state::makaijan_iomap); +} -MACHINE_CONFIG_START(royalmah_state::daisyari) +void royalmah_state::daisyari(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */ - MCFG_DEVICE_IO_MAP(daisyari_iomap) -MACHINE_CONFIG_END + m_maincpu->set_clock(8000000/2); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_IO, &royalmah_state::daisyari_iomap); +} -MACHINE_CONFIG_START(royalmah_state::mjclub) +void royalmah_state::mjclub(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */ - MCFG_DEVICE_IO_MAP(mjclub_iomap) -MACHINE_CONFIG_END + m_maincpu->set_clock(8000000/2); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjclub_iomap); +} -MACHINE_CONFIG_START(royalmah_state::mjyarou) +void royalmah_state::mjyarou(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(mjyarou_iomap) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjyarou_iomap); +} -MACHINE_CONFIG_START(royalmah_state::ippatsu) +void royalmah_state::ippatsu(machine_config &config) +{ dondenmj(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(ippatsu_iomap) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &royalmah_state::ippatsu_iomap); +} -MACHINE_CONFIG_START(royalmah_state::janyoup2) +void royalmah_state::janyoup2(machine_config &config) +{ ippatsu(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(XTAL(18'432'000)/4) // unknown divider - MCFG_DEVICE_IO_MAP(janyoup2_iomap) + m_maincpu->set_clock(XTAL(18'432'000)/4); // unknown divider + m_maincpu->set_addrmap(AS_IO, &royalmah_state::janyoup2_iomap); h46505_device &crtc(H46505(config, "crtc", XTAL(18'432'000)/12)); // unknown divider crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(4); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(royalmah_state::seljan) +void royalmah_state::seljan(machine_config &config) +{ janyoup2(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(seljan_map) - MCFG_DEVICE_IO_MAP(seljan_iomap) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::seljan_map); + m_maincpu->set_addrmap(AS_IO, &royalmah_state::seljan_iomap); +} INTERRUPT_GEN_MEMBER(royalmah_state::suzume_irq) { @@ -3668,12 +3668,12 @@ INTERRUPT_GEN_MEMBER(royalmah_state::suzume_irq) device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -MACHINE_CONFIG_START(royalmah_state::suzume) +void royalmah_state::suzume(machine_config &config) +{ dondenmj(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(suzume_iomap) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, suzume_irq) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &royalmah_state::suzume_iomap); + m_maincpu->set_vblank_int("screen", FUNC(royalmah_state::suzume_irq)); +} void royalmah_state::jongshin(machine_config &config) { @@ -3681,41 +3681,41 @@ void royalmah_state::jongshin(machine_config &config) m_maincpu->set_addrmap(AS_IO, &royalmah_state::jongshin_iomap); } -MACHINE_CONFIG_START(royalmah_state::tontonb) +void royalmah_state::tontonb(machine_config &config) +{ dondenmj(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(tontonb_iomap) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &royalmah_state::tontonb_iomap); +} -MACHINE_CONFIG_START(royalmah_state::mjdiplob) +void royalmah_state::mjdiplob(machine_config &config) +{ dondenmj(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(mjdiplob_iomap) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjdiplob_iomap); +} -MACHINE_CONFIG_START(royalmah_state::majs101b) +void royalmah_state::majs101b(machine_config &config) +{ dondenmj(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(majs101b_iomap) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &royalmah_state::majs101b_iomap); +} -MACHINE_CONFIG_START(royalmah_state::mjapinky) +void royalmah_state::mjapinky(machine_config &config) +{ dondenmj(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mjapinky_map) - MCFG_DEVICE_IO_MAP(mjapinky_iomap) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::mjapinky_map); + m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjapinky_iomap); +} -MACHINE_CONFIG_START(royalmah_state::mjderngr) +void royalmah_state::mjderngr(machine_config &config) +{ dondenmj(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(mjderngr_iomap) + m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjderngr_iomap); /* video hardware */ auto &palette(*subdevice<palette_device>("palette")); palette.set_entries(16*32); palette.set_init(FUNC(royalmah_state::mjderngr_palette)); -MACHINE_CONFIG_END +} void royalmah_state::janptr96(machine_config &config) { @@ -3737,7 +3737,8 @@ void royalmah_state::janptr96(machine_config &config) } -MACHINE_CONFIG_START(royalmah_state::mjifb) +void royalmah_state::mjifb(machine_config &config) +{ mjderngr(config); tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 8000000)); /* ? */ tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjifb_map); @@ -3750,13 +3751,14 @@ MACHINE_CONFIG_START(royalmah_state::mjifb) tmp.port_read<8>().set(FUNC(royalmah_state::mjifb_p8_r)); tmp.port_write<8>().set(FUNC(royalmah_state::mjifb_p8_w)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) -MACHINE_CONFIG_END + screen_device &screen(*subdevice<screen_device>("screen")); + screen.set_visarea(0, 255, 8, 255-8); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0); +} -MACHINE_CONFIG_START(royalmah_state::mjdejavu) +void royalmah_state::mjdejavu(machine_config &config) +{ mjderngr(config); tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 8000000)); /* ? */ tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjdejavu_map); @@ -3769,43 +3771,46 @@ MACHINE_CONFIG_START(royalmah_state::mjdejavu) tmp.port_read<8>().set(FUNC(royalmah_state::mjifb_p8_r)); tmp.port_write<8>().set(FUNC(royalmah_state::mjifb_p8_w)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) -MACHINE_CONFIG_END + screen_device &screen(*subdevice<screen_device>("screen")); + screen.set_visarea(0, 255, 8, 255-8); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0); +} -MACHINE_CONFIG_START(royalmah_state::mjtensin) +void royalmah_state::mjtensin(machine_config &config) +{ mjderngr(config); tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 12000000)); /* ? */ tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjtensin_map); tmp.port_read<3>().set(FUNC(royalmah_state::mjtensin_p3_r)); tmp.port_write<4>().set(FUNC(royalmah_state::mjtensin_p4_w)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + screen_device &screen(*subdevice<screen_device>("screen")); + screen.set_visarea(0, 255, 8, 255-8); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0); /* devices */ MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(royalmah_state::cafetime) +void royalmah_state::cafetime(machine_config &config) +{ mjderngr(config); tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 12000000)); /* ? */ tmp.set_addrmap(AS_PROGRAM, &royalmah_state::cafetime_map); tmp.port_write<3>().set(FUNC(royalmah_state::cafetime_p3_w)); tmp.port_write<4>().set(FUNC(royalmah_state::cafetime_p4_w)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + screen_device &screen(*subdevice<screen_device>("screen")); + screen.set_visarea(0, 255, 8, 255-8); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0); /* devices */ MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(royalmah_state::mjvegasa) +void royalmah_state::mjvegasa(machine_config &config) +{ mjderngr(config); tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, XTAL(8'000'000))); /* ? */ tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjvegasa_map); @@ -3813,13 +3818,13 @@ MACHINE_CONFIG_START(royalmah_state::mjvegasa) tmp.port_write<3>().set(FUNC(royalmah_state::mjvegasa_p3_w)); tmp.port_write<4>().set(FUNC(royalmah_state::mjvegasa_p4_w)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + screen_device &screen(*subdevice<screen_device>("screen")); + screen.set_visarea(0, 255, 8, 255-8); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0); /* devices */ MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/rpunch.cpp b/src/mame/drivers/rpunch.cpp index 6b16c5bd4d5..2e2b36e2ac7 100644 --- a/src/mame/drivers/rpunch.cpp +++ b/src/mame/drivers/rpunch.cpp @@ -457,14 +457,14 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(rpunch_state::rpunch) - +void rpunch_state::rpunch(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) + M68000(config, m_maincpu, MASTER_CLOCK/2); + m_maincpu->set_addrmap(AS_PROGRAM, &rpunch_state::main_map); - MCFG_DEVICE_ADD("audiocpu", Z80, MASTER_CLOCK/4) - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, MASTER_CLOCK/4); + m_audiocpu->set_addrmap(AS_PROGRAM, &rpunch_state::sound_map); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set("soundirq", FUNC(input_merger_device::in_w<0>)); @@ -472,12 +472,12 @@ MACHINE_CONFIG_START(rpunch_state::rpunch) INPUT_MERGER_ANY_HIGH(config, "soundirq").output_handler().set_inputline(m_audiocpu, 0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(304, 224) - MCFG_SCREEN_VISIBLE_AREA(8, 303-8, 0, 223-8) - MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(304, 224); + m_screen->set_visarea(8, 303-8, 0, 223-8); + m_screen->set_screen_update(FUNC(rpunch_state::screen_update_rpunch)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_rpunch); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024); @@ -495,25 +495,25 @@ MACHINE_CONFIG_START(rpunch_state::rpunch) ymsnd.add_route(0, "mono", 0.50); ymsnd.add_route(1, "mono", 0.50); - MCFG_DEVICE_ADD("upd", UPD7759) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_CONFIG_END + UPD7759(config, m_upd7759).add_route(ALL_OUTPUTS, "mono", 0.50); +} -MACHINE_CONFIG_START(rpunch_state::svolley) +void rpunch_state::svolley(machine_config &config) +{ rpunch(config); MCFG_VIDEO_START_OVERRIDE(rpunch_state,svolley) -MACHINE_CONFIG_END +} // c+p of above for now, bootleg hw, things need verifying -MACHINE_CONFIG_START(rpunch_state::svolleybl) - +void rpunch_state::svolleybl(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) + M68000(config, m_maincpu, MASTER_CLOCK/2); + m_maincpu->set_addrmap(AS_PROGRAM, &rpunch_state::main_map); - MCFG_DEVICE_ADD("audiocpu", Z80, MASTER_CLOCK/4) - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, MASTER_CLOCK/4); + m_audiocpu->set_addrmap(AS_PROGRAM, &rpunch_state::sound_map); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set("soundirq", FUNC(input_merger_device::in_w<0>)); @@ -521,12 +521,12 @@ MACHINE_CONFIG_START(rpunch_state::svolleybl) INPUT_MERGER_ANY_HIGH(config, "soundirq").output_handler().set_inputline(m_audiocpu, 0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(304, 224) - MCFG_SCREEN_VISIBLE_AREA(8, 303-8, 0, 223-8) - MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(304, 224); + m_screen->set_visarea(8, 303-8, 0, 223-8); + m_screen->set_screen_update(FUNC(rpunch_state::screen_update_rpunch)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_svolleybl); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024); @@ -545,9 +545,8 @@ MACHINE_CONFIG_START(rpunch_state::svolleybl) ymsnd.add_route(0, "mono", 0.50); ymsnd.add_route(1, "mono", 0.50); - MCFG_DEVICE_ADD("upd", UPD7759) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_CONFIG_END + UPD7759(config, m_upd7759).add_route(ALL_OUTPUTS, "mono", 0.50); +} diff --git a/src/mame/drivers/rt1715.cpp b/src/mame/drivers/rt1715.cpp index 376471eb391..ce780064f3c 100644 --- a/src/mame/drivers/rt1715.cpp +++ b/src/mame/drivers/rt1715.cpp @@ -284,7 +284,8 @@ static const z80_daisy_config rt1715_daisy_chain[] = { nullptr } }; -MACHINE_CONFIG_START(rt1715_state::rt1715) +void rt1715_state::rt1715(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, 9.832_MHz_XTAL / 4); m_maincpu->set_addrmap(AS_PROGRAM, &rt1715_state::rt1715_mem); @@ -292,14 +293,14 @@ MACHINE_CONFIG_START(rt1715_state::rt1715) m_maincpu->set_daisy_config(rt1715_daisy_chain); /* keyboard */ - MCFG_DEVICE_ADD("keyboard", Z80, 683000) - MCFG_DEVICE_PROGRAM_MAP(k7658_mem) - MCFG_DEVICE_IO_MAP(k7658_io) + z80_device &keyboard(Z80(config, "keyboard", 683000)); + keyboard.set_addrmap(AS_PROGRAM, &rt1715_state::k7658_mem); + keyboard.set_addrmap(AS_IO, &rt1715_state::k7658_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_UPDATE_DEVICE("a26", i8275_device, screen_update) - MCFG_SCREEN_RAW_PARAMS(13.824_MHz_XTAL, 864, 0, 624, 320, 0, 300) // ? + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_screen_update("a26", FUNC(i8275_device::screen_update)); + screen.set_raw(13.824_MHz_XTAL, 864, 0, 624, 320, 0, 300); // ? GFXDECODE(config, "gfxdecode", "palette", gfx_rt1715); PALETTE(config, "palette", FUNC(rt1715_state::rt1715_palette), 3); @@ -320,11 +321,12 @@ MACHINE_CONFIG_START(rt1715_state::rt1715) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K").set_default_value(0x00); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(rt1715_state::rt1715w) +void rt1715_state::rt1715w(machine_config &config) +{ rt1715(config); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/rx78.cpp b/src/mame/drivers/rx78.cpp index 716d9bd0435..c6002549395 100644 --- a/src/mame/drivers/rx78.cpp +++ b/src/mame/drivers/rx78.cpp @@ -472,24 +472,23 @@ GFXDECODE_END MACHINE_CONFIG_START(rx78_state::rx78) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, MASTER_CLOCK/7) // unknown divider - MCFG_DEVICE_PROGRAM_MAP(rx78_mem) - MCFG_DEVICE_IO_MAP(rx78_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rx78_state, irq0_line_hold) + Z80(config, m_maincpu, MASTER_CLOCK/7); // unknown divider + m_maincpu->set_addrmap(AS_PROGRAM, &rx78_state::rx78_mem); + m_maincpu->set_addrmap(AS_IO, &rx78_state::rx78_io); + m_maincpu->set_vblank_int("screen", FUNC(rx78_state::irq0_line_hold)); /* 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(192, 184) -// MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 184-1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); +// screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ +// screen.set_size(192, 184); +// screen.set_visarea(0, 192-1, 0, 184-1); /* guess: generic NTSC video timing at 256x224, system runs at 192x184, suppose with some border area to compensate */ - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 442, 0, 256, 263, 0, 224) - MCFG_SCREEN_UPDATE_DRIVER(rx78_state, screen_update) + screen.set_raw(MASTER_CLOCK/4, 442, 0, 256, 263, 0, 224); + screen.set_screen_update(FUNC(rx78_state::screen_update)); + screen.set_palette("palette"); - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD("palette", 16+1) //+1 for the background color + PALETTE(config, m_palette).set_entries(16+1); //+1 for the background color GFXDECODE(config, "gfxdecode", m_palette, gfx_rx78); MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "rx78_cart") @@ -504,8 +503,7 @@ MACHINE_CONFIG_START(rx78_state::rx78) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); - MCFG_DEVICE_ADD("sn1", SN76489A, XTAL(28'636'363)/8) // unknown divider - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SN76489A(config, "sn1", XTAL(28'636'363)/8).add_route(ALL_OUTPUTS, "mono", 0.50); // unknown divider /* Software lists */ SOFTWARE_LIST(config, "cart_list").set_original("rx78"); diff --git a/src/mame/drivers/rzone.cpp b/src/mame/drivers/rzone.cpp index 0052aa75c23..53305092ea2 100644 --- a/src/mame/drivers/rzone.cpp +++ b/src/mame/drivers/rzone.cpp @@ -242,8 +242,8 @@ INPUT_PORTS_END ***************************************************************************/ -MACHINE_CONFIG_START(rzone_state::rzbatfor) - +void rzone_state::rzbatfor(machine_config &config) +{ /* basic machine hardware */ SM512(config, m_maincpu); // no external XTAL m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); @@ -252,10 +252,10 @@ MACHINE_CONFIG_START(rzone_state::rzbatfor) m_maincpu->write_r().set(FUNC(rzone_state::t2_write_r)); /* video hardware */ - MCFG_SCREEN_SVG_ADD("screen", "svg") - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(1368, 1080) - MCFG_SCREEN_VISIBLE_AREA(0, 1368-1, 0, 1080-1) + screen_device &screen(SCREEN(config, "screen", "svg")); + screen.set_refresh_hz(50); + screen.set_size(1368, 1080); + screen.set_visarea(0, 1368-1, 0, 1080-1); TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback)); TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1)); @@ -263,12 +263,11 @@ MACHINE_CONFIG_START(rzone_state::rzbatfor) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(rzone_state::rztoshden) + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); +} +void rzone_state::rztoshden(machine_config &config) +{ /* basic machine hardware */ SM510(config, m_maincpu); m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); @@ -278,10 +277,10 @@ MACHINE_CONFIG_START(rzone_state::rztoshden) m_maincpu->write_r().set(FUNC(rzone_state::t1_write_r)); /* video hardware */ - MCFG_SCREEN_SVG_ADD("screen", "svg") - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(1392, 1080) - MCFG_SCREEN_VISIBLE_AREA(0, 1392-1, 0, 1080-1) + screen_device &screen(SCREEN(config, "screen", "svg")); + screen.set_refresh_hz(50); + screen.set_size(1392, 1080); + screen.set_visarea(0, 1392-1, 0, 1080-1); TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback)); TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1)); @@ -289,12 +288,11 @@ MACHINE_CONFIG_START(rzone_state::rztoshden) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(rzone_state::rzindy500) + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); +} +void rzone_state::rzindy500(machine_config &config) +{ /* basic machine hardware */ SM510(config, m_maincpu); // no external XTAL m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed @@ -304,10 +302,10 @@ MACHINE_CONFIG_START(rzone_state::rzindy500) m_maincpu->write_r().set(FUNC(rzone_state::t1_write_r)); /* video hardware */ - MCFG_SCREEN_SVG_ADD("screen", "svg") - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(1425, 1080) - MCFG_SCREEN_VISIBLE_AREA(0, 1425-1, 0, 1080-1) + screen_device &screen(SCREEN(config, "screen", "svg")); + screen.set_refresh_hz(50); + screen.set_size(1425, 1080); + screen.set_visarea(0, 1425-1, 0, 1080-1); TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback)); TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1)); @@ -315,9 +313,8 @@ MACHINE_CONFIG_START(rzone_state::rzindy500) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); +} |