diff options
87 files changed, 1714 insertions, 1740 deletions
diff --git a/src/mame/drivers/f-32.cpp b/src/mame/drivers/f-32.cpp index ee1c14f0272..65ababc1634 100644 --- a/src/mame/drivers/f-32.cpp +++ b/src/mame/drivers/f-32.cpp @@ -168,26 +168,26 @@ INPUT_PORTS_END -MACHINE_CONFIG_START(mosaicf2_state::mosaicf2) - +void mosaicf2_state::mosaicf2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", E132XN, XTAL(20'000'000)*4) /* 4x internal multiplier */ - MCFG_DEVICE_PROGRAM_MAP(common_map) - MCFG_DEVICE_IO_MAP(mosaicf2_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mosaicf2_state, irq0_line_hold) + E132XN(config, m_maincpu, XTAL(20'000'000)*4); /* 4x internal multiplier */ + m_maincpu->set_addrmap(AS_PROGRAM, &mosaicf2_state::common_map); + m_maincpu->set_addrmap(AS_IO, &mosaicf2_state::mosaicf2_io); + m_maincpu->set_vblank_int("screen", FUNC(mosaicf2_state::irq0_line_hold)); EEPROM_93C46_16BIT(config, "eeprom") .erase_time(attotime::from_usec(1)) .write_time(attotime::from_usec(1)); /* 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(512, 512) - MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 223) - MCFG_SCREEN_UPDATE_DRIVER(mosaicf2_state, screen_update_mosaicf2) - 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(512, 512); + screen.set_visarea(0, 319, 0, 223); + screen.set_screen_update(FUNC(mosaicf2_state::screen_update_mosaicf2)); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::RGB_555); @@ -199,10 +199,10 @@ MACHINE_CONFIG_START(mosaicf2_state::mosaicf2) ymsnd.add_route(0, "lspeaker", 1.0); ymsnd.add_route(1, "rspeaker", 1.0); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(14'318'181)/8, okim6295_device::PIN7_HIGH) /* 1.7897725 MHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", XTAL(14'318'181)/8, okim6295_device::PIN7_HIGH)); /* 1.7897725 MHz */ + oki.add_route(ALL_OUTPUTS, "lspeaker", 1.0); + oki.add_route(ALL_OUTPUTS, "rspeaker", 1.0); +} @@ -247,26 +247,26 @@ void mosaicf2_state::royalpk2_io(address_map &map) map(0x6a00, 0x6a03).portw("EEPROMOUT"); } -MACHINE_CONFIG_START(mosaicf2_state::royalpk2) - +void mosaicf2_state::royalpk2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", GMS30C2132, XTAL(50'000'000)) - MCFG_DEVICE_PROGRAM_MAP(royalpk2_map) - MCFG_DEVICE_IO_MAP(royalpk2_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mosaicf2_state, irq1_line_hold) + GMS30C2132(config, m_maincpu, XTAL(50'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &mosaicf2_state::royalpk2_map); + m_maincpu->set_addrmap(AS_IO, &mosaicf2_state::royalpk2_io); + m_maincpu->set_vblank_int("screen", FUNC(mosaicf2_state::irq1_line_hold)); EEPROM_93C46_16BIT(config, "eeprom") .erase_time(attotime::from_usec(1)) .write_time(attotime::from_usec(1)); /* 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(512, 512) - MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 223) - MCFG_SCREEN_UPDATE_DRIVER(mosaicf2_state, screen_update_mosaicf2) - 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(512, 512); + screen.set_visarea(0, 319, 0, 223); + screen.set_screen_update(FUNC(mosaicf2_state::screen_update_mosaicf2)); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::RGB_555); @@ -278,12 +278,12 @@ MACHINE_CONFIG_START(mosaicf2_state::royalpk2) // ymsnd.add_route(0, "lspeaker", 1.0); // ymsnd.add_route(1, "rspeaker", 1.0); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(14'318'181)/8, okim6295_device::PIN7_HIGH) /* 1.7897725 MHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + okim6295_device &oki(OKIM6295(config, "oki", XTAL(14'318'181)/8, okim6295_device::PIN7_HIGH)); /* 1.7897725 MHz */ + oki.add_route(ALL_OUTPUTS, "lspeaker", 1.0); + oki.add_route(ALL_OUTPUTS, "rspeaker", 1.0); // there is a 16c550 for communication -MACHINE_CONFIG_END +} /* diff --git a/src/mame/drivers/fantland.cpp b/src/mame/drivers/fantland.cpp index 901d0014992..4299704624b 100644 --- a/src/mame/drivers/fantland.cpp +++ b/src/mame/drivers/fantland.cpp @@ -808,29 +808,29 @@ INTERRUPT_GEN_MEMBER(fantland_state::fantland_sound_irq) device.execute().set_input_line_and_vector(0, HOLD_LINE, 0x80 / 4); } -MACHINE_CONFIG_START(fantland_state::fantland) - +void fantland_state::fantland(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8086, 8000000) // ? - MCFG_DEVICE_PROGRAM_MAP(fantland_map) + I8086(config, m_maincpu, 8000000); // ? + m_maincpu->set_addrmap(AS_PROGRAM, &fantland_state::fantland_map); - MCFG_DEVICE_ADD("audiocpu", I8088, 8000000) // ? - MCFG_DEVICE_PROGRAM_MAP(fantland_sound_map) - MCFG_DEVICE_IO_MAP(fantland_sound_iomap) - MCFG_DEVICE_PERIODIC_INT_DRIVER(fantland_state, fantland_sound_irq, 8000) + I8088(config, m_audiocpu, 8000000); // ? + m_audiocpu->set_addrmap(AS_PROGRAM, &fantland_state::fantland_sound_map); + m_audiocpu->set_addrmap(AS_IO, &fantland_state::fantland_sound_iomap); + m_audiocpu->set_periodic_int(FUNC(fantland_state::fantland_sound_irq), attotime::from_hz(8000)); // NMI when soundlatch is written config.m_minimum_quantum = attotime::from_hz(8000); // sound irq must feed the DAC at 8kHz /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(352,256) - MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, fantland_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(352,256); + m_screen->set_visarea_full(); + m_screen->set_screen_update(FUNC(fantland_state::screen_update)); + m_screen->set_palette(m_palette); + m_screen->screen_vblank().set(FUNC(fantland_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_fantland); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 256); @@ -846,7 +846,7 @@ MACHINE_CONFIG_START(fantland_state::fantland) 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 +} WRITE_LINE_MEMBER(fantland_state::galaxygn_sound_irq) @@ -854,26 +854,26 @@ WRITE_LINE_MEMBER(fantland_state::galaxygn_sound_irq) m_audiocpu->set_input_line_and_vector(0, state ? ASSERT_LINE : CLEAR_LINE, 0x80/4); } -MACHINE_CONFIG_START(fantland_state::galaxygn) - +void fantland_state::galaxygn(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8088, XTAL(16'000'000) / 2) // AMD P8088-2 - MCFG_DEVICE_PROGRAM_MAP(galaxygn_map) + I8088(config, m_maincpu, XTAL(16'000'000) / 2); // AMD P8088-2 + m_maincpu->set_addrmap(AS_PROGRAM, &fantland_state::galaxygn_map); - MCFG_DEVICE_ADD("audiocpu", V20, XTAL(7'995'500)) // NEC D70108C-8 - MCFG_DEVICE_PROGRAM_MAP(fantland_sound_map) - MCFG_DEVICE_IO_MAP(galaxygn_sound_iomap) + V20(config, m_audiocpu, XTAL(7'995'500)); // NEC D70108C-8 + m_audiocpu->set_addrmap(AS_PROGRAM, &fantland_state::fantland_sound_map); + m_audiocpu->set_addrmap(AS_IO, &fantland_state::galaxygn_sound_iomap); // IRQ by YM2151, NMI when soundlatch is written /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(352,256) - MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, fantland_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(352,256); + m_screen->set_visarea_full(); + m_screen->set_screen_update(FUNC(fantland_state::screen_update)); + m_screen->set_palette(m_palette); + m_screen->screen_vblank().set(FUNC(fantland_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_fantland); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 256); @@ -887,7 +887,7 @@ MACHINE_CONFIG_START(fantland_state::galaxygn) ymsnd.irq_handler().set(FUNC(fantland_state::galaxygn_sound_irq)); ymsnd.add_route(0, "speaker", 1.0); ymsnd.add_route(1, "speaker", 1.0); -MACHINE_CONFIG_END +} void borntofi_state::machine_start() diff --git a/src/mame/drivers/fanucs15.cpp b/src/mame/drivers/fanucs15.cpp index 211abbef1a6..823903768cd 100644 --- a/src/mame/drivers/fanucs15.cpp +++ b/src/mame/drivers/fanucs15.cpp @@ -370,23 +370,24 @@ void fanucs15_state::machine_reset() { } -MACHINE_CONFIG_START(fanucs15_state::fanucs15) +void fanucs15_state::fanucs15(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68020, XTAL(12'000'000)) - MCFG_DEVICE_PROGRAM_MAP(maincpu_mem) - MCFG_DEVICE_DISABLE() + M68020(config, m_maincpu, XTAL(12'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &fanucs15_state::maincpu_mem); + m_maincpu->set_disable(); - MCFG_DEVICE_ADD("pmccpu", M68000, XTAL(12'000'000)) - MCFG_DEVICE_PROGRAM_MAP(pmccpu_mem) - MCFG_DEVICE_DISABLE() + M68000(config, m_pmccpu, XTAL(12'000'000)); + m_pmccpu->set_addrmap(AS_PROGRAM, &fanucs15_state::pmccpu_mem); + m_pmccpu->set_disable(); - MCFG_DEVICE_ADD("gfxcpu", M68000, XTAL(10'000'000)) // wants bit 15 of 70500 to be set - MCFG_DEVICE_PROGRAM_MAP(gfxcpu_mem) - MCFG_DEVICE_DISABLE() + M68000(config, m_gfxcpu, XTAL(10'000'000)); // wants bit 15 of 70500 to be set + m_gfxcpu->set_addrmap(AS_PROGRAM, &fanucs15_state::gfxcpu_mem); + m_gfxcpu->set_disable(); - MCFG_DEVICE_ADD("convcpu", I80286, XTAL(8'000'000)) // wants 70500 to return 0x8000 (same as what gfxcpu looks for, basically) - MCFG_DEVICE_PROGRAM_MAP(convcpu_mem) -MACHINE_CONFIG_END + I80286(config, m_convcpu, XTAL(8'000'000)); // wants 70500 to return 0x8000 (same as what gfxcpu looks for, basically) + m_convcpu->set_addrmap(AS_PROGRAM, &fanucs15_state::convcpu_mem); +} /* ROM definition */ ROM_START( fanucs15 ) diff --git a/src/mame/drivers/fb01.cpp b/src/mame/drivers/fb01.cpp index 1f94b2b5ebe..21707c452cc 100644 --- a/src/mame/drivers/fb01.cpp +++ b/src/mame/drivers/fb01.cpp @@ -179,20 +179,21 @@ void fb01_state::fb01_palette(palette_device &palette) const } -MACHINE_CONFIG_START(fb01_state::fb01) +void fb01_state::fb01(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(fb01_mem) - MCFG_DEVICE_IO_MAP(fb01_io) + Z80(config, m_maincpu, XTAL(12'000'000)/2); + m_maincpu->set_addrmap(AS_PROGRAM, &fb01_state::fb01_mem); + m_maincpu->set_addrmap(AS_IO, &fb01_state::fb01_io); /* 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(6*16, 9) - MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 9-1) - MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update) - 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_size(6*16, 9); + screen.set_visarea_full(); + screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update)); + screen.set_palette("palette"); config.set_default_layout(layout_fb01); @@ -224,7 +225,7 @@ MACHINE_CONFIG_START(fb01_state::fb01) ym2164.add_route(1, "rspeaker", 1.00); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/fccpu30.cpp b/src/mame/drivers/fccpu30.cpp index c7f5b9081f1..9b11636e296 100644 --- a/src/mame/drivers/fccpu30.cpp +++ b/src/mame/drivers/fccpu30.cpp @@ -764,53 +764,53 @@ void cpu30_state::cpu30(machine_config &config) } /* SYS68K/CPU-30X Part No.1 01300: 16.7 MHz 68030 based CPU board with 68882 FPCP, DMAC, 1 Mbyte Dual Ported RAM capacity and VMEPROM. */ -MACHINE_CONFIG_START(cpu30_state::cpu30x) +void cpu30_state::cpu30x(machine_config &config) +{ cpu30(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(XTAL(16'777'216)) /* 16.7 MHz from description, crystal needs verification */ + m_maincpu->set_clock(XTAL(16'777'216)); /* 16.7 MHz from description, crystal needs verification */ // config.device_remove(""); // dual ported ram m_ram->set_default_size("1M").set_extra_options("1M, 2M, 4M"); -MACHINE_CONFIG_END +} /* SYS68K/CPU-30XA Part No.1 01301: 20.0 MHz 68030 based CPU board with 68882 FPCP, DMAC, 1 Mbyte Dual Ported RAM capacity and VMEPROM. Documentation included.*/ -MACHINE_CONFIG_START(cpu30_state::cpu30xa) +void cpu30_state::cpu30xa(machine_config &config) +{ cpu30x(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(XTAL(20'000'000)) /* 20.0 MHz from description, crystal needs verification */ -MACHINE_CONFIG_END + m_maincpu->set_clock(XTAL(20'000'000)); /* 20.0 MHz from description, crystal needs verification */ +} /* SYS68K/CPU-30ZA Part No.1 01302: 20.0 MHz 68030 based CPU board with 68882 FPCP, DMAC, 4 Mbyte Dual Ported RAM capacity and VMEPROM. Documentation included.*/ -MACHINE_CONFIG_START(cpu30_state::cpu30za) +void cpu30_state::cpu30za(machine_config &config) +{ cpu30xa(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(XTAL(20'000'000)) /* 20.0 MHz from description, crystal needs verification */ + m_maincpu->set_clock(XTAL(20'000'000)); /* 20.0 MHz from description, crystal needs verification */ // dual ported ram m_ram->set_default_size("4M").set_extra_options("1M, 2M, 4M"); -MACHINE_CONFIG_END +} /* SYS68K/CPU-30ZBE 68030/68882 CPU, 25 MHz, 4 Mbyte shared DRAM, 4 Mbyte Flash, SCSI, Ethernet, Floppy disk, 4 serial I/O ports, 32-bit VMEbus interface */ -MACHINE_CONFIG_START(cpu30_state::cpu30zbe) +void cpu30_state::cpu30zbe(machine_config &config) +{ cpu30za(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(XTAL(25'000'000)) /* 25.0 MHz from description, crystal needs verification */ + m_maincpu->set_clock(XTAL(25'000'000)); /* 25.0 MHz from description, crystal needs verification */ // dual ported ram m_ram->set_default_size("4M").set_extra_options("256K, 512K, 1M, 2M, 4M, 8M, 16M, 32M"); -MACHINE_CONFIG_END +} /* SYS68K/CPU-33 */ -MACHINE_CONFIG_START(cpu30_state::cpu33) +void cpu30_state::cpu33(machine_config &config) +{ cpu30zbe(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(XTAL(25'000'000)) /* 25.0 MHz from description, crystal needs verification */ + m_maincpu->set_clock(XTAL(25'000'000)); /* 25.0 MHz from description, crystal needs verification */ // dual ported ram m_ram->set_default_size("4M").set_extra_options("256K, 512K, 1M, 2M, 4M, 8M, 16M, 32M"); -MACHINE_CONFIG_END +} /* SYS68K/CPU-30BE/8 68030/68882 CPU, 25 MHz, 8 Mbyte shared DRAM, 4 Mbyte Flash, SCSI, Ethernet, Floppy disk, 4 serial I/O ports, 32-bit VMEbus interface, VMEPROM firmware*/ void cpu30_state::cpu30be8(machine_config &config) diff --git a/src/mame/drivers/fcombat.cpp b/src/mame/drivers/fcombat.cpp index 7a0e8954007..6273f47083f 100644 --- a/src/mame/drivers/fcombat.cpp +++ b/src/mame/drivers/fcombat.cpp @@ -288,20 +288,20 @@ void fcombat_state::machine_reset() m_ty = 0; } -MACHINE_CONFIG_START(fcombat_state::fcombat) - +void fcombat_state::fcombat(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 10000000/3) - MCFG_DEVICE_PROGRAM_MAP(main_map) + Z80(config, m_maincpu, 10000000/3); + m_maincpu->set_addrmap(AS_PROGRAM, &fcombat_state::main_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 10000000/3) - MCFG_DEVICE_PROGRAM_MAP(audio_map) + z80_device &audiocpu(Z80(config, "audiocpu", 10000000/3)); + audiocpu.set_addrmap(AS_PROGRAM, &fcombat_state::audio_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(FCOMBAT_PIXEL_CLOCK, FCOMBAT_HTOTAL, FCOMBAT_HBEND, FCOMBAT_HBSTART, FCOMBAT_VTOTAL, FCOMBAT_VBEND, FCOMBAT_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(fcombat_state, screen_update_fcombat) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(FCOMBAT_PIXEL_CLOCK, FCOMBAT_HTOTAL, FCOMBAT_HBEND, FCOMBAT_HBSTART, FCOMBAT_VTOTAL, FCOMBAT_VBEND, FCOMBAT_VBSTART); + screen.set_screen_update(FUNC(fcombat_state::screen_update_fcombat)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_fcombat); PALETTE(config, m_palette, FUNC(fcombat_state::fcombat_palette), 256*3, 32); @@ -316,7 +316,7 @@ MACHINE_CONFIG_START(fcombat_state::fcombat) YM2149(config, "ay2", 1500000).add_route(ALL_OUTPUTS, "mono", 0.12); YM2149(config, "ay3", 1500000).add_route(ALL_OUTPUTS, "mono", 0.12); -MACHINE_CONFIG_END +} /************************************* * diff --git a/src/mame/drivers/fcrash.cpp b/src/mame/drivers/fcrash.cpp index e754d195e4a..0bc74f47002 100644 --- a/src/mame/drivers/fcrash.cpp +++ b/src/mame/drivers/fcrash.cpp @@ -2294,42 +2294,40 @@ MACHINE_START_MEMBER(cps_state, dinopic) m_sprite_x_offset = 0; } -MACHINE_CONFIG_START(cps_state::dinopic) - +void cps_state::dinopic(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(dinopic_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::dinopic_map); + m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack)); - //MCFG_DEVICE_ADD("audiocpu", PIC16C57, 12000000) - //MCFG_DEVICE_DISABLE() /* no valid dumps .. */ + //PIC16C57(config, m_audiocpu, 12000000).set_disable(); /* no valid dumps .. */ MCFG_MACHINE_START_OVERRIDE(cps_state, dinopic) EEPROM_93C46_8BIT(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(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1)) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(64*8, 32*8); + m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1 ); + m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash)); + m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1); - MCFG_PALETTE_ADD("palette", 0xc00) + PALETTE(config, m_palette).set_entries(0xc00); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.30); +} /* @@ -2485,29 +2483,30 @@ void cps_state::init_mtwinsb() // sound cpu is (239 V 249521 VC5006 KABUKI DL-030P-110V) - recycled Kabuki Z80 from genuine Capcom HW? // 3x8 dsws -MACHINE_CONFIG_START(cps_state::sgyxz) +void cps_state::sgyxz(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(sgyxz_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::sgyxz_map); + m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack)); - MCFG_DEVICE_ADD("audiocpu", Z80, 3579545) - MCFG_DEVICE_PROGRAM_MAP(sgyxz_sound_map) + Z80(config, m_audiocpu, 3579545); + m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::sgyxz_sound_map); MCFG_MACHINE_START_OVERRIDE(cps_state,sgyxz) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1)) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(64*8, 32*8); + m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1 ); + m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash)); + m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1); - MCFG_PALETTE_ADD("palette", 0xc00) + PALETTE(config, m_palette).set_entries(0xc00); EEPROM_93C46_8BIT(config, "eeprom"); @@ -2523,9 +2522,8 @@ MACHINE_CONFIG_START(cps_state::sgyxz) ym2151.add_route(1, "mono", 0.35); /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */ - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80 - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.30); // pin 7 can be changed by the game code, see f006 on z80 +} ROM_START( sgyxz ) ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 Code */ @@ -2560,12 +2558,12 @@ ROM_START( sgyxz ) ROM_LOAD( "sgyxz_snd1.bin", 0x00000, 0x40000, CRC(c15ac0f2) SHA1(8d9e5519d9820e4ac4f70555088c80e64d052c9d) ) ROM_END -MACHINE_CONFIG_START(cps_state::wofabl) +void cps_state::wofabl(machine_config &config) +{ sgyxz(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(wofabl_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::wofabl_map); +} ROM_START( wofabl ) ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 Code */ @@ -2608,42 +2606,40 @@ MACHINE_START_MEMBER(cps_state, punipic) m_sprite_x_offset = 0; } -MACHINE_CONFIG_START(cps_state::punipic) - +void cps_state::punipic(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(punipic_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::punipic_map); + m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack)); - //MCFG_DEVICE_ADD("audiocpu", PIC16C57, 12000000) - //MCFG_DEVICE_DISABLE() /* no valid dumps .. */ + //PIC16C57(config, m_audiocpu, 12000000).set_disable(); /* no valid dumps .. */ MCFG_MACHINE_START_OVERRIDE(cps_state, punipic) EEPROM_93C46_8BIT(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(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1)) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(64*8, 32*8); + m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1 ); + m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash)); + m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1); - MCFG_PALETTE_ADD("palette", 0xc00) + PALETTE(config, m_palette).set_entries(0xc00); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.30); +} /* bootleg with pic, like dinopic / dinopic2 */ ROM_START( punipic ) @@ -2802,28 +2798,28 @@ void cps_state::init_punipic3() // ************************************************************************* SF2M1 -MACHINE_CONFIG_START(cps_state::sf2m1) - +void cps_state::sf2m1(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000) ) - MCFG_DEVICE_PROGRAM_MAP(sf2m1_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack) + M68000(config, m_maincpu, XTAL(12'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::sf2m1_map); + m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(3'579'545)) - MCFG_DEVICE_PROGRAM_MAP(sgyxz_sound_map) + Z80(config, m_audiocpu, XTAL(3'579'545)); + m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::sgyxz_sound_map); MCFG_MACHINE_START_OVERRIDE(cps_state,sf2m1) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(CPS_PIXEL_CLOCK, CPS_HTOTAL, CPS_HBEND, CPS_HBSTART, CPS_VTOTAL, CPS_VBEND, CPS_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1)) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(CPS_PIXEL_CLOCK, CPS_HTOTAL, CPS_HBEND, CPS_HBSTART, CPS_VTOTAL, CPS_VBEND, CPS_VBSTART); + m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash)); + m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1); - MCFG_PALETTE_ADD("palette", 0xc00) + PALETTE(config, m_palette).set_entries(0xc00); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2833,9 +2829,8 @@ MACHINE_CONFIG_START(cps_state::sf2m1) ym2151.irq_handler().set_inputline(m_audiocpu, 0); ym2151.add_route(0, "mono", 0.35); ym2151.add_route(1, "mono", 0.35); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.30); +} ROM_START( sf2m1 ) ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ @@ -3178,40 +3173,38 @@ MACHINE_START_MEMBER(cps_state, slampic) m_sprite_x_offset = 0; } -MACHINE_CONFIG_START(cps_state::slampic) - +void cps_state::slampic(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(slampic_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::slampic_map); + m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack)); - //MCFG_DEVICE_ADD("audiocpu", PIC16C57, 12000000) - //MCFG_DEVICE_DISABLE() /* no valid dumps .. */ + //PIC16C57(config, m_audiocpu, 12000000).set_disable(); /* no valid dumps .. */ MCFG_MACHINE_START_OVERRIDE(cps_state, slampic) EEPROM_93C46_8BIT(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(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1)) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(64*8, 32*8); + m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1 ); + m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash)); + m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1); - MCFG_PALETTE_ADD("palette", 0xc00) + PALETTE(config, m_palette).set_entries(0xc00); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.30); +} ROM_START( slampic ) ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ @@ -3279,31 +3272,31 @@ void cps_state::varthb_map(address_map &map) map(0xff0000, 0xffffff).ram().share("mainram"); } -MACHINE_CONFIG_START(cps_state::varthb) - +void cps_state::varthb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(varthb_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::varthb_map); + m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack)); - MCFG_DEVICE_ADD("audiocpu", Z80, 3579545) - MCFG_DEVICE_PROGRAM_MAP(sgyxz_sound_map) + Z80(config, m_audiocpu, 3579545); + m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::sgyxz_sound_map); MCFG_MACHINE_START_OVERRIDE(cps_state,cps1) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1)) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(64*8, 32*8); + m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1 ); + m_screen->set_screen_update(FUNC(cps_state::screen_update_cps1)); + m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1); - MCFG_PALETTE_ADD("palette", 0xc00) + PALETTE(config, m_palette).set_entries(0xc00); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -3316,9 +3309,8 @@ MACHINE_CONFIG_START(cps_state::varthb) ym2151.add_route(0, "mono", 0.35); ym2151.add_route(1, "mono", 0.35); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.30); +} ROM_START( varthb ) ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ diff --git a/src/mame/drivers/feversoc.cpp b/src/mame/drivers/feversoc.cpp index 4414495574b..552d2d81df5 100644 --- a/src/mame/drivers/feversoc.cpp +++ b/src/mame/drivers/feversoc.cpp @@ -286,29 +286,28 @@ void feversoc_state::machine_start() m_lamps.resolve(); } -MACHINE_CONFIG_START(feversoc_state::feversoc) - +void feversoc_state::feversoc(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",SH2,MASTER_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(feversoc_map) + SH2(config, m_maincpu, MASTER_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &feversoc_state::feversoc_map); /* 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, 0*8, 30*8-1) //dynamic resolution? - MCFG_SCREEN_UPDATE_DRIVER(feversoc_state, screen_update_feversoc) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, feversoc_state, feversoc_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(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 0*8, 30*8-1); //dynamic resolution? + screen.set_screen_update(FUNC(feversoc_state::screen_update_feversoc)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(feversoc_state::feversoc_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_feversoc); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x1000); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, MASTER_CLOCK/16, okim6295_device::PIN7_LOW) //pin 7 & frequency not verified (clock should be 28,6363 / n) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.6) + OKIM6295(config, m_oki, MASTER_CLOCK/16, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.6); //pin 7 & frequency not verified (clock should be 28,6363 / n) EEPROM_93C56_16BIT(config, "eeprom"); @@ -317,7 +316,7 @@ MACHINE_CONFIG_START(feversoc_state::feversoc) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); TICKET_DISPENSER(config, m_hopper, attotime::from_msec(60), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/fgoal.cpp b/src/mame/drivers/fgoal.cpp index 8aee26d04be..e4014e1458c 100644 --- a/src/mame/drivers/fgoal.cpp +++ b/src/mame/drivers/fgoal.cpp @@ -359,28 +359,28 @@ void fgoal_state::machine_reset() m_prev_coin = 0; } -MACHINE_CONFIG_START(fgoal_state::fgoal) - +void fgoal_state::fgoal(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6800, 10065000 / 10) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(cpu_map) + M6800(config, m_maincpu, 10065000 / 10); /* ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &fgoal_state::cpu_map); /* add shifter */ MB14241(config, "mb14241"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(256, 263) - MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 255) - MCFG_SCREEN_UPDATE_DRIVER(fgoal_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette); + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(256, 263); + m_screen->set_visarea(0, 255, 16, 255); + m_screen->set_screen_update(FUNC(fgoal_state::screen_update)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_fgoal); PALETTE(config, m_palette, FUNC(fgoal_state::fgoal_palette), 128 + 16 + 1); /* sound hardware */ -MACHINE_CONFIG_END +} ROM_START( fgoal ) diff --git a/src/mame/drivers/finalizr.cpp b/src/mame/drivers/finalizr.cpp index a27e4d4731b..3d818910126 100644 --- a/src/mame/drivers/finalizr.cpp +++ b/src/mame/drivers/finalizr.cpp @@ -262,11 +262,11 @@ void finalizr_state::machine_reset() m_irq_enable = 0; } -MACHINE_CONFIG_START(finalizr_state::finalizr) - +void finalizr_state::finalizr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", KONAMI1, XTAL(18'432'000)/6) /* ??? */ - MCFG_DEVICE_PROGRAM_MAP(main_map) + KONAMI1(config, m_maincpu, XTAL(18'432'000)/6); /* ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &finalizr_state::main_map); TIMER(config, "scantimer").configure_scanline(FUNC(finalizr_state::finalizr_scanline), "screen", 0, 1); I8039(config, m_audiocpu, XTAL(18'432'000)/2); /* 9.216MHz clkin ?? */ @@ -279,13 +279,13 @@ MACHINE_CONFIG_START(finalizr_state::finalizr) WATCHDOG_TIMER(config, "watchdog"); /* 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(36*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(1*8, 35*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(finalizr_state, screen_update_finalizr) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(36*8, 32*8); + screen.set_visarea(1*8, 35*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(finalizr_state::screen_update_finalizr)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_finalizr); PALETTE(config, m_palette, FUNC(finalizr_state::finalizr_palette), 2*16*16, 32); @@ -295,14 +295,13 @@ MACHINE_CONFIG_START(finalizr_state::finalizr) GENERIC_LATCH_8(config, "soundlatch"); - MCFG_DEVICE_ADD("snsnd", SN76489A, XTAL(18'432'000)/12) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75) + SN76489A(config, "snsnd", XTAL(18'432'000)/12).add_route(ALL_OUTPUTS, "speaker", 0.75); DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.325); // 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 +} diff --git a/src/mame/drivers/fireball.cpp b/src/mame/drivers/fireball.cpp index 1be4c969260..3d897c55fdd 100644 --- a/src/mame/drivers/fireball.cpp +++ b/src/mame/drivers/fireball.cpp @@ -492,7 +492,8 @@ TIMER_DEVICE_CALLBACK_MEMBER( fireball_state::int_0 ) *************************/ -MACHINE_CONFIG_START(fireball_state::fireball) +void fireball_state::fireball(machine_config &config) +{ /* basic machine hardware */ I8031(config, m_maincpu, CPU_CLK); // m_maincpu->set_addrmap(AS_PROGRAM, &fireball_state::fireball_map); @@ -513,7 +514,7 @@ MACHINE_CONFIG_START(fireball_state::fireball) /* Video */ config.set_default_layout(layout_fireball); -MACHINE_CONFIG_END +} /************************* diff --git a/src/mame/drivers/firetrk.cpp b/src/mame/drivers/firetrk.cpp index f5d6935ec57..6e7d25d71a6 100644 --- a/src/mame/drivers/firetrk.cpp +++ b/src/mame/drivers/firetrk.cpp @@ -854,21 +854,21 @@ static GFXDECODE_START( gfx_montecar ) GFXDECODE_END -MACHINE_CONFIG_START(firetrk_state::firetrk) - +void firetrk_state::firetrk(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6800, MASTER_CLOCK/12) /* 750Khz during service mode */ - MCFG_DEVICE_PROGRAM_MAP(firetrk_map) + M6800(config, m_maincpu, MASTER_CLOCK/12); /* 750Khz during service mode */ + m_maincpu->set_addrmap(AS_PROGRAM, &firetrk_state::firetrk_map); TIMER(config, "scantimer").configure_scanline(FUNC(firetrk_state::firetrk_scanline), "screen", 0, 1); WATCHDOG_TIMER(config, m_watchdog).set_vblank_count("screen", 5); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 0, 320, 262, 0, 240) - MCFG_SCREEN_UPDATE_DRIVER(firetrk_state, screen_update_firetrk) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); + m_screen->set_raw(MASTER_CLOCK/2, 384, 0, 320, 262, 0, 240); + m_screen->set_screen_update(FUNC(firetrk_state::screen_update_firetrk)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette, FUNC(firetrk_state::firetrk_palette), 28); GFXDECODE(config, m_gfxdecode, m_palette, gfx_firetrk); @@ -876,41 +876,37 @@ MACHINE_CONFIG_START(firetrk_state::firetrk) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("discrete", DISCRETE, firetrk_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + DISCRETE(config, m_discrete, firetrk_discrete).add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_START(firetrk_state::superbug) +void firetrk_state::superbug(machine_config &config) +{ firetrk(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(superbug_map) + m_maincpu->set_addrmap(AS_PROGRAM, &firetrk_state::superbug_map); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(firetrk_state, screen_update_superbug) + m_screen->set_screen_update(FUNC(firetrk_state::screen_update_superbug)); MCFG_VIDEO_START_OVERRIDE(firetrk_state,superbug) m_gfxdecode->set_info(gfx_superbug); /* sound hardware */ - MCFG_DEVICE_REPLACE("discrete", DISCRETE, superbug_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + DISCRETE(config.replace(), m_discrete, superbug_discrete).add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_START(firetrk_state::montecar) +void firetrk_state::montecar(machine_config &config) +{ firetrk(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(montecar_map) + m_maincpu->set_addrmap(AS_PROGRAM, &firetrk_state::montecar_map); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(firetrk_state, screen_update_montecar) + m_screen->set_screen_update(FUNC(firetrk_state::screen_update_montecar)); MCFG_VIDEO_START_OVERRIDE(firetrk_state,montecar) m_gfxdecode->set_info(gfx_montecar); @@ -919,9 +915,8 @@ MACHINE_CONFIG_START(firetrk_state::montecar) m_palette->set_init(FUNC(firetrk_state::montecar_palette)); /* sound hardware */ - MCFG_DEVICE_REPLACE("discrete", DISCRETE, montecar_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + DISCRETE(config.replace(), m_discrete, montecar_discrete).add_route(ALL_OUTPUTS, "mono", 1.0); +} ROM_START( firetrk ) diff --git a/src/mame/drivers/fitfight.cpp b/src/mame/drivers/fitfight.cpp index 6db1ba3f3ff..a75e86a61fc 100644 --- a/src/mame/drivers/fitfight.cpp +++ b/src/mame/drivers/fitfight.cpp @@ -720,11 +720,11 @@ void fitfight_state::machine_reset() m_fof_700000_data = 0; } -MACHINE_CONFIG_START(fitfight_state::fitfight) - - MCFG_DEVICE_ADD("maincpu",M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(fitfight_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", fitfight_state, irq2_line_hold) +void fitfight_state::fitfight(machine_config &config) +{ + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &fitfight_state::fitfight_main_map); + m_maincpu->set_vblank_int("screen", FUNC(fitfight_state::irq2_line_hold)); upd7810_device &audiocpu(UPD7810(config, m_audiocpu, 12000000)); audiocpu.set_addrmap(AS_PROGRAM, &fitfight_state::snd_mem); @@ -750,33 +750,31 @@ MACHINE_CONFIG_START(fitfight_state::fitfight) SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1333333, okim6295_device::PIN7_LOW) // ~8080Hz ??? TODO: find out the real frequency - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(fitfight_state::bbprot) + OKIM6295(config, "oki", 1333333, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0); // ~8080Hz ??? TODO: find out the real frequency +} - MCFG_DEVICE_ADD("maincpu",M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(bbprot_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", fitfight_state, irq2_line_hold) +void fitfight_state::bbprot(machine_config &config) +{ + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &fitfight_state::bbprot_main_map); + m_maincpu->set_vblank_int("screen", FUNC(fitfight_state::irq2_line_hold)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_prot); - 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(2*8, 39*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(fitfight_state, screen_update_fitfight) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(40*8, 32*8); + screen.set_visarea(2*8, 39*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(fitfight_state::screen_update_fitfight)); + 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) // ~8080Hz ??? TODO: find out the real frequency - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", 1333333, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0); // ~8080Hz ??? TODO: find out the real frequency +} /*** diff --git a/src/mame/drivers/fk1.cpp b/src/mame/drivers/fk1.cpp index 7b19267bc5c..a75e3ff7a6b 100644 --- a/src/mame/drivers/fk1.cpp +++ b/src/mame/drivers/fk1.cpp @@ -412,12 +412,13 @@ uint32_t fk1_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, c return 0; } -MACHINE_CONFIG_START(fk1_state::fk1) +void fk1_state::fk1(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(8'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(fk1_mem) - MCFG_DEVICE_IO_MAP(fk1_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(fk1_state,fk1_irq_callback) + Z80(config, m_maincpu, XTAL(8'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &fk1_state::fk1_mem); + m_maincpu->set_addrmap(AS_IO, &fk1_state::fk1_io); + m_maincpu->set_irq_acknowledge_callback(FUNC(fk1_state::fk1_irq_callback)); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER, rgb_t::green())); @@ -468,7 +469,7 @@ MACHINE_CONFIG_START(fk1_state::fk1) TIMER(config, "keyboard_timer").configure_periodic(FUNC(fk1_state::keyboard_callback), attotime::from_hz(24000)); TIMER(config, "vsync_timer").configure_periodic(FUNC(fk1_state::vsync_callback), attotime::from_hz(50)); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( fk1 ) diff --git a/src/mame/drivers/flipjack.cpp b/src/mame/drivers/flipjack.cpp index 2a5445693e3..49710b33951 100644 --- a/src/mame/drivers/flipjack.cpp +++ b/src/mame/drivers/flipjack.cpp @@ -419,8 +419,8 @@ void flipjack_state::machine_start() } -MACHINE_CONFIG_START(flipjack_state::flipjack) - +void flipjack_state::flipjack(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, MASTER_CLOCK/4); m_maincpu->set_addrmap(AS_PROGRAM, &flipjack_state::main_map); @@ -462,7 +462,7 @@ MACHINE_CONFIG_START(flipjack_state::flipjack) ay1.add_route(ALL_OUTPUTS, "mono", 0.50); AY8910(config, "ay2", MASTER_CLOCK/8).add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} ROM_START( flipjack ) diff --git a/src/mame/drivers/flower.cpp b/src/mame/drivers/flower.cpp index c24d3b523d3..eca0e8d727e 100644 --- a/src/mame/drivers/flower.cpp +++ b/src/mame/drivers/flower.cpp @@ -494,25 +494,26 @@ INTERRUPT_GEN_MEMBER(flower_state::slave_vblank_irq) } -MACHINE_CONFIG_START(flower_state::flower) - MCFG_DEVICE_ADD("mastercpu",Z80,MASTER_CLOCK/4) - MCFG_DEVICE_PROGRAM_MAP(shared_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", flower_state, master_vblank_irq) +void flower_state::flower(machine_config &config) +{ + Z80(config, m_mastercpu, MASTER_CLOCK/4); + m_mastercpu->set_addrmap(AS_PROGRAM, &flower_state::shared_map); + m_mastercpu->set_vblank_int("screen", FUNC(flower_state::master_vblank_irq)); - MCFG_DEVICE_ADD("slavecpu",Z80,MASTER_CLOCK/4) - MCFG_DEVICE_PROGRAM_MAP(shared_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", flower_state, slave_vblank_irq) + Z80(config, m_slavecpu, MASTER_CLOCK/4); + m_slavecpu->set_addrmap(AS_PROGRAM, &flower_state::shared_map); + m_slavecpu->set_vblank_int("screen", FUNC(flower_state::slave_vblank_irq)); - MCFG_DEVICE_ADD("audiocpu",Z80,MASTER_CLOCK/4) - MCFG_DEVICE_PROGRAM_MAP(audio_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(flower_state, irq0_line_hold, 90) + Z80(config, m_audiocpu, MASTER_CLOCK/4); + m_audiocpu->set_addrmap(AS_PROGRAM, &flower_state::audio_map); + m_audiocpu->set_periodic_int(FUNC(flower_state::irq0_line_hold), attotime::from_hz(90)); config.m_perfect_cpu_quantum = subtag("mastercpu"); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_UPDATE_DRIVER(flower_state, screen_update) - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3,384,0,288,264,16,240) // derived from Galaxian HW, 60.606060 - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_screen_update(FUNC(flower_state::screen_update)); + m_screen->set_raw(MASTER_CLOCK/3,384,0,288,264,16,240); // derived from Galaxian HW, 60.606060 + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_flower); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256); @@ -521,9 +522,8 @@ MACHINE_CONFIG_START(flower_state::flower) SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("flower", FLOWER_CUSTOM, 96000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + FLOWER_CUSTOM(config, "flower", 96000).add_route(ALL_OUTPUTS, "mono", 1.0); +} ROM_START( flower ) /* Komax version */ diff --git a/src/mame/drivers/flyball.cpp b/src/mame/drivers/flyball.cpp index e4ad472dbc7..ac8ef621f9b 100644 --- a/src/mame/drivers/flyball.cpp +++ b/src/mame/drivers/flyball.cpp @@ -459,11 +459,11 @@ void flyball_state::machine_reset() } -MACHINE_CONFIG_START(flyball_state::flyball) - +void flyball_state::flyball(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, MASTER_CLOCK/16) - MCFG_DEVICE_PROGRAM_MAP(flyball_map) + M6502(config, m_maincpu, MASTER_CLOCK/16); + m_maincpu->set_addrmap(AS_PROGRAM, &flyball_state::flyball_map); F9334(config, m_outlatch); // F7 m_outlatch->q_out_cb<2>().set_nop(); // bat hit @@ -474,19 +474,19 @@ MACHINE_CONFIG_START(flyball_state::flyball) m_outlatch->q_out_cb<7>().set(FUNC(flyball_state::lamp_w)); // 1 player lamp /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(256, 262) - MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MCFG_SCREEN_UPDATE_DRIVER(flyball_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(256, 262); + m_screen->set_visarea(0, 255, 0, 239); + m_screen->set_screen_update(FUNC(flyball_state::screen_update)); + m_screen->set_palette(m_palette); + m_screen->screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_flyball); PALETTE(config, m_palette, FUNC(flyball_state::flyball_palette), 4); /* sound hardware */ -MACHINE_CONFIG_END +} /************************************* diff --git a/src/mame/drivers/fm7.cpp b/src/mame/drivers/fm7.cpp index 616afd71693..8c77675510f 100644 --- a/src/mame/drivers/fm7.cpp +++ b/src/mame/drivers/fm7.cpp @@ -2031,16 +2031,17 @@ static void fm7_floppies(device_slot_interface &device) } -MACHINE_CONFIG_START(fm7_state::fm7) +void fm7_state::fm7(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809, 16.128_MHz_XTAL / 2) - MCFG_DEVICE_PROGRAM_MAP(fm7_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(fm7_state,fm7_irq_ack) + MC6809(config, m_maincpu, 16.128_MHz_XTAL / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &fm7_state::fm7_mem); + m_maincpu->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_irq_ack)); config.m_perfect_cpu_quantum = subtag("maincpu"); - MCFG_DEVICE_ADD("sub", MC6809, 16.128_MHz_XTAL / 2) - MCFG_DEVICE_PROGRAM_MAP(fm7_sub_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(fm7_state,fm7_sub_irq_ack) + MC6809(config, m_sub, 16.128_MHz_XTAL / 2); + m_sub->set_addrmap(AS_PROGRAM, &fm7_state::fm7_sub_mem); + m_sub->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_sub_irq_ack)); config.m_perfect_cpu_quantum = subtag("sub"); SPEAKER(config, "mono").front_center(); @@ -2051,9 +2052,9 @@ MACHINE_CONFIG_START(fm7_state::fm7) MCFG_MACHINE_START_OVERRIDE(fm7_state,fm7) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(16.128_MHz_XTAL, 1024, 0, 640, 262, 0, 200) // H = 15.75 KHz, V = 60.1145 Hz - MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(16.128_MHz_XTAL, 1024, 0, 640, 262, 0, 200); // H = 15.75 KHz, V = 60.1145 Hz + m_screen->set_screen_update(FUNC(fm7_state::screen_update_fm7)); PALETTE(config, m_palette, palette_device::BRG_3BIT); @@ -2082,18 +2083,19 @@ MACHINE_CONFIG_START(fm7_state::fm7) OUTPUT_LATCH(config, m_cent_data_out); m_centronics->set_output_latch(*m_cent_data_out); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(fm7_state::fm8) +void fm7_state::fm8(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809, 4.9152_MHz_XTAL) // 1.2MHz 68A09 - MCFG_DEVICE_PROGRAM_MAP(fm8_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(fm7_state,fm7_irq_ack) + MC6809(config, m_maincpu, 4.9152_MHz_XTAL); // 1.2MHz 68A09 + m_maincpu->set_addrmap(AS_PROGRAM, &fm7_state::fm8_mem); + m_maincpu->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_irq_ack)); config.m_perfect_cpu_quantum = subtag("maincpu"); - MCFG_DEVICE_ADD("sub", MC6809, 16.128_MHz_XTAL / 2) - MCFG_DEVICE_PROGRAM_MAP(fm7_sub_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(fm7_state,fm7_sub_irq_ack) + MC6809(config, m_sub, 16.128_MHz_XTAL / 2); + m_sub->set_addrmap(AS_PROGRAM, &fm7_state::fm7_sub_mem); + m_sub->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_sub_irq_ack)); config.m_perfect_cpu_quantum = subtag("sub"); SPEAKER(config, "mono").front_center(); @@ -2103,9 +2105,9 @@ MACHINE_CONFIG_START(fm7_state::fm8) MCFG_MACHINE_START_OVERRIDE(fm7_state,fm7) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(16.128_MHz_XTAL, 1024, 0, 640, 262, 0, 200) - MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(16.128_MHz_XTAL, 1024, 0, 640, 262, 0, 200); + m_screen->set_screen_update(FUNC(fm7_state::screen_update_fm7)); PALETTE(config, m_palette, palette_device::BRG_3BIT); @@ -2129,18 +2131,19 @@ MACHINE_CONFIG_START(fm7_state::fm8) OUTPUT_LATCH(config, m_cent_data_out); m_centronics->set_output_latch(*m_cent_data_out); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(fm7_state::fm77av) +void fm7_state::fm77av(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809E, 16.128_MHz_XTAL / 8) - MCFG_DEVICE_PROGRAM_MAP(fm77av_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(fm7_state,fm7_irq_ack) + MC6809E(config, m_maincpu, 16.128_MHz_XTAL / 8); + m_maincpu->set_addrmap(AS_PROGRAM, &fm7_state::fm77av_mem); + m_maincpu->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_irq_ack)); config.m_perfect_cpu_quantum = subtag("maincpu"); - MCFG_DEVICE_ADD("sub", MC6809E, 16.128_MHz_XTAL / 8) - MCFG_DEVICE_PROGRAM_MAP(fm77av_sub_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(fm7_state,fm7_sub_irq_ack) + MC6809E(config, m_sub, 16.128_MHz_XTAL / 8); + m_sub->set_addrmap(AS_PROGRAM, &fm7_state::fm77av_sub_mem); + m_sub->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_sub_irq_ack)); config.m_perfect_cpu_quantum = subtag("sub"); SPEAKER(config, "mono").front_center(); @@ -2160,12 +2163,12 @@ MACHINE_CONFIG_START(fm7_state::fm77av) } /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(16.128_MHz_XTAL, 1024, 0, 640, 262, 0, 200) - MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(16.128_MHz_XTAL, 1024, 0, 640, 262, 0, 200); + m_screen->set_screen_update(FUNC(fm7_state::screen_update_fm7)); PALETTE(config, m_palette, palette_device::BRG_3BIT); - MCFG_PALETTE_ADD("av_palette", 4096) + PALETTE(config, m_av_palette).set_entries(4096); CASSETTE(config, m_cassette); m_cassette->set_formats(fm7_cassette_formats); @@ -2192,23 +2195,24 @@ MACHINE_CONFIG_START(fm7_state::fm77av) OUTPUT_LATCH(config, m_cent_data_out); m_centronics->set_output_latch(*m_cent_data_out); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(fm7_state::fm11) +void fm7_state::fm11(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809E, 2000000) // 2MHz 68B09E - MCFG_DEVICE_PROGRAM_MAP(fm11_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(fm7_state,fm7_irq_ack) + MC6809E(config, m_maincpu, 2000000); // 2MHz 68B09E + m_maincpu->set_addrmap(AS_PROGRAM, &fm7_state::fm11_mem); + m_maincpu->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_irq_ack)); config.m_perfect_cpu_quantum = subtag("maincpu"); - MCFG_DEVICE_ADD("sub", MC6809, 8000000) // 2MHz 68B09 - MCFG_DEVICE_PROGRAM_MAP(fm11_sub_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(fm7_state,fm7_sub_irq_ack) + MC6809(config, m_sub, 8000000); // 2MHz 68B09 + m_sub->set_addrmap(AS_PROGRAM, &fm7_state::fm11_sub_mem); + m_sub->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_sub_irq_ack)); config.m_perfect_cpu_quantum = subtag("sub"); - MCFG_DEVICE_ADD("x86", I8088, 8000000) // 8MHz i8088 - MCFG_DEVICE_PROGRAM_MAP(fm11_x86_mem) - MCFG_DEVICE_IO_MAP(fm11_x86_io) + I8088(config, m_x86, 8000000); // 8MHz i8088 + m_x86->set_addrmap(AS_PROGRAM, &fm7_state::fm11_x86_mem); + m_x86->set_addrmap(AS_IO, &fm7_state::fm11_x86_io); SPEAKER(config, "mono").front_center(); BEEP(config, m_beeper, 1200).add_route(ALL_OUTPUTS, "mono", 0.50); @@ -2222,9 +2226,9 @@ MACHINE_CONFIG_START(fm7_state::fm11) } /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(16128000, 1024, 0, 640, 262, 0, 200) - MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(16128000, 1024, 0, 640, 262, 0, 200); + m_screen->set_screen_update(FUNC(fm7_state::screen_update_fm7)); PALETTE(config, m_palette, palette_device::BRG_3BIT); @@ -2248,18 +2252,19 @@ MACHINE_CONFIG_START(fm7_state::fm11) OUTPUT_LATCH(config, m_cent_data_out); m_centronics->set_output_latch(*m_cent_data_out); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(fm7_state::fm16beta) +void fm7_state::fm16beta(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8086, 8000000) // 8MHz i8086 - MCFG_DEVICE_PROGRAM_MAP(fm16_mem) - MCFG_DEVICE_IO_MAP(fm16_io) + I8086(config, m_maincpu, 8000000); // 8MHz i8086 + m_maincpu->set_addrmap(AS_PROGRAM, &fm7_state::fm16_mem); + m_maincpu->set_addrmap(AS_IO, &fm7_state::fm16_io); config.m_perfect_cpu_quantum = subtag("maincpu"); - MCFG_DEVICE_ADD("sub", MC6809, 8000000) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(fm7_state,fm7_sub_irq_ack) - MCFG_DEVICE_PROGRAM_MAP(fm16_sub_mem) + MC6809(config, m_sub, 8000000); + m_sub->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_sub_irq_ack)); + m_sub->set_addrmap(AS_PROGRAM, &fm7_state::fm16_sub_mem); config.m_perfect_cpu_quantum = subtag("sub"); SPEAKER(config, "mono").front_center(); @@ -2269,9 +2274,9 @@ MACHINE_CONFIG_START(fm7_state::fm16beta) MCFG_MACHINE_START_OVERRIDE(fm7_state,fm16) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(16128000, 1024, 0, 640, 262, 0, 200) - MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(16128000, 1024, 0, 640, 262, 0, 200); + m_screen->set_screen_update(FUNC(fm7_state::screen_update_fm7)); PALETTE(config, m_palette, palette_device::BRG_3BIT); @@ -2295,7 +2300,7 @@ MACHINE_CONFIG_START(fm7_state::fm16beta) OUTPUT_LATCH(config, m_cent_data_out); m_centronics->set_output_latch(*m_cent_data_out); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( fm8 ) diff --git a/src/mame/drivers/fontwriter.cpp b/src/mame/drivers/fontwriter.cpp index 0663d015b89..62289cdfb36 100644 --- a/src/mame/drivers/fontwriter.cpp +++ b/src/mame/drivers/fontwriter.cpp @@ -112,35 +112,37 @@ void fontwriter_state::fw600_map(address_map &map) static INPUT_PORTS_START( fontwriter ) INPUT_PORTS_END -MACHINE_CONFIG_START(fontwriter_state::fontwriter) - MCFG_DEVICE_ADD("maincpu", M37720S1, XTAL(16'000'000)) /* M37720S1 @ 16MHz - main CPU */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_IO_MAP(io_map) - - MCFG_DEVICE_ADD("at28c16", AT28C16, 0) - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_UPDATE_DRIVER(fontwriter_state, screen_update) - MCFG_SCREEN_SIZE(640, 400) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(fontwriter_state::fw600) - MCFG_DEVICE_ADD("maincpu", M37720S1, XTAL(16'000'000)) /* M37720S1 @ 16MHz - main CPU */ - MCFG_DEVICE_PROGRAM_MAP(fw600_map) - MCFG_DEVICE_IO_MAP(io_map) - - MCFG_DEVICE_ADD("at28c16", AT28C16, 0) - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_UPDATE_DRIVER(fontwriter_state, screen_update) - MCFG_SCREEN_SIZE(640, 400) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399) -MACHINE_CONFIG_END +void fontwriter_state::fontwriter(machine_config &config) +{ + M37720S1(config, m_maincpu, XTAL(16'000'000)); /* M37720S1 @ 16MHz - main CPU */ + m_maincpu->set_addrmap(AS_PROGRAM, &fontwriter_state::main_map); + m_maincpu->set_addrmap(AS_IO, &fontwriter_state::io_map); + + AT28C16(config, "at28c16", 0); + + 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(fontwriter_state::screen_update)); + screen.set_size(640, 400); + screen.set_visarea_full(); +} + +void fontwriter_state::fw600(machine_config &config) +{ + M37720S1(config, m_maincpu, XTAL(16'000'000)); /* M37720S1 @ 16MHz - main CPU */ + m_maincpu->set_addrmap(AS_PROGRAM, &fontwriter_state::fw600_map); + m_maincpu->set_addrmap(AS_IO, &fontwriter_state::io_map); + + AT28C16(config, "at28c16", 0); + + 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(fontwriter_state::screen_update)); + screen.set_size(640, 400); + screen.set_visarea_full(); +} ROM_START(fw600) ROM_REGION(0x200000, "maincpu", 0) /* M37720 program ROM */ diff --git a/src/mame/drivers/force68k.cpp b/src/mame/drivers/force68k.cpp index d7fe7fd7ada..e3c94231600 100644 --- a/src/mame/drivers/force68k.cpp +++ b/src/mame/drivers/force68k.cpp @@ -617,30 +617,35 @@ void force68k_state::fccpu1(machine_config &config) * CPU-6 family is device and adressmap compatible with CPU-1 but with additions * such as an optional 68881 FPU */ -MACHINE_CONFIG_START (force68k_state::fccpu6) - MCFG_DEVICE_ADD ("maincpu", M68000, XTAL(8'000'000)) /* Jumper B10 Mode B */ - MCFG_DEVICE_PROGRAM_MAP (force68k_mem) -MACHINE_CONFIG_END +void force68k_state::fccpu6(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(8'000'000)); /* Jumper B10 Mode B */ + m_maincpu->set_addrmap(AS_PROGRAM, &force68k_state::force68k_mem); +} -MACHINE_CONFIG_START (force68k_state::fccpu6a) - MCFG_DEVICE_ADD ("maincpu", M68000, XTAL(12'500'000)) /* Jumper B10 Mode A */ - MCFG_DEVICE_PROGRAM_MAP (force68k_mem) -MACHINE_CONFIG_END +void force68k_state::fccpu6a(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(12'500'000)); /* Jumper B10 Mode A */ + m_maincpu->set_addrmap(AS_PROGRAM, &force68k_state::force68k_mem); +} -MACHINE_CONFIG_START (force68k_state::fccpu6v) - MCFG_DEVICE_ADD ("maincpu", M68010, XTAL(8'000'000)) /* Jumper B10 Mode B */ - MCFG_DEVICE_PROGRAM_MAP (force68k_mem) -MACHINE_CONFIG_END +void force68k_state::fccpu6v(machine_config &config) +{ + M68010(config, m_maincpu, XTAL(8'000'000)); /* Jumper B10 Mode B */ + m_maincpu->set_addrmap(AS_PROGRAM, &force68k_state::force68k_mem); +} -MACHINE_CONFIG_START (force68k_state::fccpu6va) - MCFG_DEVICE_ADD ("maincpu", M68010, XTAL(12'500'000)) /* Jumper B10 Mode A */ - MCFG_DEVICE_PROGRAM_MAP (force68k_mem) -MACHINE_CONFIG_END +void force68k_state::fccpu6va(machine_config &config) +{ + M68010(config, m_maincpu, XTAL(12'500'000)); /* Jumper B10 Mode A */ + m_maincpu->set_addrmap(AS_PROGRAM, &force68k_state::force68k_mem); +} -MACHINE_CONFIG_START (force68k_state::fccpu6vb) - MCFG_DEVICE_ADD ("maincpu", M68010, XTAL(12'500'000)) /* Jumper B10 Mode A */ - MCFG_DEVICE_PROGRAM_MAP (force68k_mem) -MACHINE_CONFIG_END +void force68k_state::fccpu6vb(machine_config &config) +{ + M68010(config, m_maincpu, XTAL(12'500'000)); /* Jumper B10 Mode A */ + m_maincpu->set_addrmap(AS_PROGRAM, &force68k_state::force68k_mem); +} #endif /* ROM definitions */ diff --git a/src/mame/drivers/fortecar.cpp b/src/mame/drivers/fortecar.cpp index 549c2d6e45d..38b45db6503 100644 --- a/src/mame/drivers/fortecar.cpp +++ b/src/mame/drivers/fortecar.cpp @@ -682,24 +682,25 @@ void fortecar_state::machine_reset() * Machine Drivers * ***********************************/ -MACHINE_CONFIG_START(fortecar_state::fortecar) +void fortecar_state::fortecar(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) /* 3 MHz, measured */ - MCFG_DEVICE_PROGRAM_MAP(fortecar_map) - MCFG_DEVICE_IO_MAP(fortecar_ports) + Z80(config, m_maincpu, CPU_CLOCK); /* 3 MHz, measured */ + m_maincpu->set_addrmap(AS_PROGRAM, &fortecar_state::fortecar_map); + m_maincpu->set_addrmap(AS_IO, &fortecar_state::fortecar_ports); WATCHDOG_TIMER(config, m_watchdog).set_time(attotime::from_msec(200)); /* guess */ 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(640, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 600-1, 0, 240-1) /* driven by CRTC */ - MCFG_SCREEN_UPDATE_DRIVER(fortecar_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(640, 256); + screen.set_visarea(0, 600-1, 0, 240-1); /* driven by CRTC */ + screen.set_screen_update(FUNC(fortecar_state::screen_update)); + screen.set_palette(m_palette); EEPROM_93C56_16BIT(config, "eeprom").default_value(0); @@ -728,7 +729,7 @@ MACHINE_CONFIG_START(fortecar_state::fortecar) aysnd.port_a_write_callback().set(FUNC(fortecar_state::ayporta_w)); aysnd.port_b_write_callback().set(FUNC(fortecar_state::ayportb_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /******************************* diff --git a/src/mame/drivers/fp1100.cpp b/src/mame/drivers/fp1100.cpp index 074cf9209d8..a6dd5521607 100644 --- a/src/mame/drivers/fp1100.cpp +++ b/src/mame/drivers/fp1100.cpp @@ -638,12 +638,13 @@ void fp1100_state::init_fp1100() membank("bankw0")->configure_entry(0, &wram[0x0000]); } -MACHINE_CONFIG_START(fp1100_state::fp1100) +void fp1100_state::fp1100(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CLOCK/4) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", fp1100_state, vblank_irq) + Z80(config, m_maincpu, MAIN_CLOCK/4); + m_maincpu->set_addrmap(AS_PROGRAM, &fp1100_state::main_map); + m_maincpu->set_addrmap(AS_IO, &fp1100_state::io_map); + m_maincpu->set_vblank_int("screen", FUNC(fp1100_state::vblank_irq)); upd7801_device &sub(UPD7801(config, m_subcpu, MAIN_CLOCK/4)); sub.set_addrmap(AS_PROGRAM, &fp1100_state::sub_map); @@ -655,13 +656,13 @@ MACHINE_CONFIG_START(fp1100_state::fp1100) sub.txd_func().set(FUNC(fp1100_state::cass_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(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DEVICE("crtc", h46505_device, screen_update) - MCFG_PALETTE_ADD("palette", 8) + 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_full(); + screen.set_screen_update("crtc", FUNC(h46505_device::screen_update)); + PALETTE(config, m_palette).set_entries(8); GFXDECODE(config, "gfxdecode", m_palette, gfx_fp1100); /* sound hardware */ @@ -687,7 +688,7 @@ MACHINE_CONFIG_START(fp1100_state::fp1100) CASSETTE(config, m_cass); m_cass->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); TIMER(config, "timer_c").configure_periodic(FUNC(fp1100_state::timer_c), attotime::from_hz(4800)); // cass write -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( fp1100 ) diff --git a/src/mame/drivers/fp6000.cpp b/src/mame/drivers/fp6000.cpp index 947ecdd201e..ef42b50c823 100644 --- a/src/mame/drivers/fp6000.cpp +++ b/src/mame/drivers/fp6000.cpp @@ -297,31 +297,31 @@ void fp6000_state::machine_reset() { } -MACHINE_CONFIG_START(fp6000_state::fp6000) +void fp6000_state::fp6000(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8086, 16000000/2) - MCFG_DEVICE_PROGRAM_MAP(fp6000_map) - MCFG_DEVICE_IO_MAP(fp6000_io) + I8086(config, m_maincpu, 16000000/2); + m_maincpu->set_addrmap(AS_PROGRAM, &fp6000_state::fp6000_map); + m_maincpu->set_addrmap(AS_IO, &fp6000_state::fp6000_io); /* 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_DRIVER(fp6000_state, screen_update_fp6000) - 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(640, 480); + screen.set_visarea_full(); + screen.set_screen_update(FUNC(fp6000_state::screen_update_fp6000)); + screen.set_palette(m_palette); H46505(config, m_crtc, 16000000/5); /* unknown clock, hand tuned to get ~60 fps */ m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); - MCFG_PALETTE_ADD("palette", 8) -// MCFG_PALETTE_INIT(black_and_white) - GFXDECODE(config, m_gfxdecode, m_palette, gfx_fp6000); + PALETTE(config, m_palette).set_entries(8); -MACHINE_CONFIG_END + GFXDECODE(config, m_gfxdecode, m_palette, gfx_fp6000); +} /* ROM definition */ ROM_START( fp6000 ) diff --git a/src/mame/drivers/freekick.cpp b/src/mame/drivers/freekick.cpp index 2a2d7d69a08..4aafbbef37e 100644 --- a/src/mame/drivers/freekick.cpp +++ b/src/mame/drivers/freekick.cpp @@ -730,12 +730,13 @@ MACHINE_RESET_MEMBER(freekick_state,oigas) m_cnt = 0; } -MACHINE_CONFIG_START(freekick_state::omega) - MCFG_DEVICE_ADD("maincpu", MC8123, XTAL(18'432'000)/6) // unknown divisor - MCFG_DEVICE_PROGRAM_MAP(omega_map) - MCFG_DEVICE_IO_MAP(omega_io_map) - MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(freekick_state, irq0_line_hold, 120) // measured on PCB +void freekick_state::omega(machine_config &config) +{ + MC8123(config, m_maincpu, XTAL(18'432'000)/6); // unknown divisor + m_maincpu->set_addrmap(AS_PROGRAM, &freekick_state::omega_map); + m_maincpu->set_addrmap(AS_IO, &freekick_state::omega_io_map); + m_maincpu->set_addrmap(AS_OPCODES, &freekick_state::decrypted_opcodes_map); + m_maincpu->set_periodic_int(FUNC(freekick_state::irq0_line_hold), attotime::from_hz(120)); // measured on PCB LS259(config, m_outlatch); // 3M m_outlatch->q_out_cb<0>().set(FUNC(freekick_state::flipscreen_w)); @@ -745,11 +746,11 @@ MACHINE_CONFIG_START(freekick_state::omega) m_outlatch->q_out_cb<5>().set_nop(); // ??? // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(18'432'000)/3, 768/2, 0, 512/2, 263, 0+16, 224+16) // unknown divisor - MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_gigas) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, freekick_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(XTAL(18'432'000)/3, 768/2, 0, 512/2, 263, 0+16, 224+16); // unknown divisor + screen.set_screen_update(FUNC(freekick_state::screen_update_gigas)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(freekick_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_freekick); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 0x200); @@ -757,25 +758,21 @@ MACHINE_CONFIG_START(freekick_state::omega) // sound hardware SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("sn1", SN76489A, XTAL(18'432'000)/6) // unknown divisor - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MCFG_DEVICE_ADD("sn2", SN76489A, XTAL(18'432'000)/6) // unknown divisor - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SN76489A(config, "sn1", XTAL(18'432'000)/6).add_route(ALL_OUTPUTS, "mono", 0.50); // unknown divisor - MCFG_DEVICE_ADD("sn3", SN76489A, XTAL(18'432'000)/6) // unknown divisor - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SN76489A(config, "sn2", XTAL(18'432'000)/6).add_route(ALL_OUTPUTS, "mono", 0.50); // unknown divisor - MCFG_DEVICE_ADD("sn4", SN76489A, XTAL(18'432'000)/6) // unknown divisor - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_CONFIG_END + SN76489A(config, "sn3", XTAL(18'432'000)/6).add_route(ALL_OUTPUTS, "mono", 0.50); // unknown divisor -MACHINE_CONFIG_START(freekick_state::base) + SN76489A(config, "sn4", XTAL(18'432'000)/6).add_route(ALL_OUTPUTS, "mono", 0.50); // unknown divisor +} +void freekick_state::base(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/4) - MCFG_DEVICE_PROGRAM_MAP(pbillrd_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(freekick_state, irq0_line_hold, 120) // measured on PCB + Z80(config, m_maincpu, XTAL(12'000'000)/4); + m_maincpu->set_addrmap(AS_PROGRAM, &freekick_state::pbillrd_map); + m_maincpu->set_periodic_int(FUNC(freekick_state::irq0_line_hold), attotime::from_hz(120)); // measured on PCB LS259(config, m_outlatch); m_outlatch->q_out_cb<2>().set(FUNC(freekick_state::coin1_w)); @@ -783,11 +780,11 @@ MACHINE_CONFIG_START(freekick_state::base) m_outlatch->q_out_cb<4>().set(FUNC(freekick_state::nmi_enable_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(12'000'000)/2, 768/2, 0, 512/2, 263, 0+16, 224+16) - MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_pbillrd) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, freekick_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(XTAL(12'000'000)/2, 768/2, 0, 512/2, 263, 0+16, 224+16); + screen.set_screen_update(FUNC(freekick_state::screen_update_pbillrd)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(freekick_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_freekick); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 0x200); @@ -795,18 +792,14 @@ MACHINE_CONFIG_START(freekick_state::base) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("sn1", SN76489A, XTAL(12'000'000)/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SN76489A(config, "sn1", XTAL(12'000'000)/4).add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("sn2", SN76489A, XTAL(12'000'000)/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SN76489A(config, "sn2", XTAL(12'000'000)/4).add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("sn3", SN76489A, XTAL(12'000'000)/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SN76489A(config, "sn3", XTAL(12'000'000)/4).add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("sn4", SN76489A, XTAL(12'000'000)/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_CONFIG_END + SN76489A(config, "sn4", XTAL(12'000'000)/4).add_route(ALL_OUTPUTS, "mono", 0.50); +} void freekick_state::pbillrd(machine_config &config) { @@ -821,21 +814,22 @@ void freekick_state::pbillrd(machine_config &config) MCFG_MACHINE_RESET_OVERRIDE(freekick_state,freekick) } -MACHINE_CONFIG_START(freekick_state::pbillrdm) +void freekick_state::pbillrdm(machine_config &config) +{ pbillrd(config); - MCFG_DEVICE_REPLACE("maincpu", MC8123, XTAL(12'000'000)/4) - MCFG_DEVICE_PROGRAM_MAP(pbillrd_map) - MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(freekick_state, irq0_line_hold, 120) // measured on PCB -MACHINE_CONFIG_END + MC8123(config.replace(), m_maincpu, XTAL(12'000'000)/4); + m_maincpu->set_addrmap(AS_PROGRAM, &freekick_state::pbillrd_map); + m_maincpu->set_addrmap(AS_OPCODES, &freekick_state::decrypted_opcodes_map); + m_maincpu->set_periodic_int(FUNC(freekick_state::irq0_line_hold), attotime::from_hz(120)); // measured on PCB +} -MACHINE_CONFIG_START(freekick_state::freekick) +void freekick_state::freekick(machine_config &config) +{ base(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(freekick_map) - MCFG_DEVICE_IO_MAP(freekick_io_map) + m_maincpu->set_addrmap(AS_PROGRAM, &freekick_state::freekick_map); + m_maincpu->set_addrmap(AS_IO, &freekick_state::freekick_io_map); // 5C m_outlatch->q_out_cb<0>().set(FUNC(freekick_state::flipscreen_w)); @@ -855,18 +849,17 @@ MACHINE_CONFIG_START(freekick_state::freekick) ppi1.in_pc_callback().set_ioport("DSW3"); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_freekick) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_screen_update(FUNC(freekick_state::screen_update_freekick)); +} -MACHINE_CONFIG_START(freekick_state::gigas) +void freekick_state::gigas(machine_config &config) +{ base(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(gigas_map) - MCFG_DEVICE_IO_MAP(gigas_io_map) - MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map) + m_maincpu->set_addrmap(AS_PROGRAM, &freekick_state::gigas_map); + m_maincpu->set_addrmap(AS_IO, &freekick_state::gigas_io_map); + m_maincpu->set_addrmap(AS_OPCODES, &freekick_state::decrypted_opcodes_map); m_outlatch->q_out_cb<0>().set(FUNC(freekick_state::flipscreen_w)); m_outlatch->q_out_cb<5>().set_nop(); // ??? @@ -875,19 +868,19 @@ MACHINE_CONFIG_START(freekick_state::gigas) MCFG_MACHINE_RESET_OVERRIDE(freekick_state,freekick) /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_gigas) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_screen_update(FUNC(freekick_state::screen_update_gigas)); +} -MACHINE_CONFIG_START(freekick_state::gigasm) +void freekick_state::gigasm(machine_config &config) +{ base(config); /* basic machine hardware */ - MCFG_DEVICE_REPLACE("maincpu", MC8123, XTAL(12'000'000)/4) - MCFG_DEVICE_PROGRAM_MAP(gigas_map) - MCFG_DEVICE_IO_MAP(gigas_io_map) - MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(freekick_state, irq0_line_hold, 120) // measured on PCB + MC8123(config.replace(), m_maincpu, XTAL(12'000'000)/4); + m_maincpu->set_addrmap(AS_PROGRAM, &freekick_state::gigas_map); + m_maincpu->set_addrmap(AS_IO, &freekick_state::gigas_io_map); + m_maincpu->set_addrmap(AS_OPCODES, &freekick_state::decrypted_opcodes_map); + m_maincpu->set_periodic_int(FUNC(freekick_state::irq0_line_hold), attotime::from_hz(120)); // measured on PCB m_outlatch->q_out_cb<0>().set(FUNC(freekick_state::flipscreen_w)); m_outlatch->q_out_cb<5>().set_nop(); // ??? @@ -896,20 +889,19 @@ MACHINE_CONFIG_START(freekick_state::gigasm) MCFG_MACHINE_RESET_OVERRIDE(freekick_state,freekick) /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_gigas) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_screen_update(FUNC(freekick_state::screen_update_gigas)); +} -MACHINE_CONFIG_START(freekick_state::oigas) +void freekick_state::oigas(machine_config &config) +{ gigas(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(oigas_io_map) + m_maincpu->set_addrmap(AS_IO, &freekick_state::oigas_io_map); MCFG_MACHINE_START_OVERRIDE(freekick_state,oigas) MCFG_MACHINE_RESET_OVERRIDE(freekick_state,oigas) -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/fresh.cpp b/src/mame/drivers/fresh.cpp index 9eaa98411e1..d097612ba12 100644 --- a/src/mame/drivers/fresh.cpp +++ b/src/mame/drivers/fresh.cpp @@ -597,21 +597,21 @@ TIMER_DEVICE_CALLBACK_MEMBER(fresh_state::fake_scanline) } -MACHINE_CONFIG_START(fresh_state::fresh) - +void fresh_state::fresh(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 24000000/2 ) - MCFG_DEVICE_PROGRAM_MAP(fresh_map) + M68000(config, m_maincpu, 24000000/2); + m_maincpu->set_addrmap(AS_PROGRAM, &fresh_state::fresh_map); TIMER(config, "scantimer").configure_scanline(FUNC(fresh_state::fake_scanline), "screen", 0, 1); /* 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(fresh_state, screen_update_fresh) - 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_full(); + screen.set_screen_update(FUNC(fresh_state::screen_update_fresh)); + screen.set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xBGR_888, 0x1000); // or 0xc00 GFXDECODE(config, m_gfxdecode, m_palette, gfx_fresh); @@ -619,9 +619,8 @@ MACHINE_CONFIG_START(fresh_state::fresh) /* sound hw? */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2413, 4000000) // actual clock and type unknown - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + YM2413(config, "ymsnd", 4000000).add_route(ALL_OUTPUTS, "mono", 1.0); // actual clock and type unknown +} ROM_START( fresh ) diff --git a/src/mame/drivers/fruitpc.cpp b/src/mame/drivers/fruitpc.cpp index c2fcf95840f..096292da98b 100644 --- a/src/mame/drivers/fruitpc.cpp +++ b/src/mame/drivers/fruitpc.cpp @@ -115,11 +115,12 @@ void fruitpc_state::fruitpc_sb_conf(device_t *device) MCFG_DEVICE_SLOT_INTERFACE(pc_joysticks, nullptr, true) // remove joystick } -MACHINE_CONFIG_START(fruitpc_state::fruitpc) - MCFG_DEVICE_ADD("maincpu", I486, 66000000) // ST STPCD0166BTC3 66 MHz 486 CPU - MCFG_DEVICE_PROGRAM_MAP(fruitpc_map) - MCFG_DEVICE_IO_MAP(fruitpc_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) +void fruitpc_state::fruitpc(machine_config &config) +{ + I486(config, m_maincpu, 66000000); // ST STPCD0166BTC3 66 MHz 486 CPU + m_maincpu->set_addrmap(AS_PROGRAM, &fruitpc_state::fruitpc_map); + m_maincpu->set_addrmap(AS_IO, &fruitpc_state::fruitpc_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); pcat_common(config); @@ -145,10 +146,10 @@ MACHINE_CONFIG_START(fruitpc_state::fruitpc) m_isabus->drq3_callback().set("dma8237_1", FUNC(am9517a_device::dreq3_w)); // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", fruitpc_isa8_cards, "sb15", true) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("sb15", fruitpc_sb_def) - MCFG_SLOT_OPTION_MACHINE_CONFIG("sb15", fruitpc_sb_conf) -MACHINE_CONFIG_END + isa8_slot_device &isa1(ISA8_SLOT(config, "isa1", 0, "isa", fruitpc_isa8_cards, "sb15", true)); + isa1.set_option_device_input_defaults("sb15", DEVICE_INPUT_DEFAULTS_NAME(fruitpc_sb_def)); + isa1.set_option_machine_config("sb15", fruitpc_sb_conf); +} ROM_START( fruitpc ) ROM_REGION( 0x20000, "bios", 0 ) diff --git a/src/mame/drivers/fungames.cpp b/src/mame/drivers/fungames.cpp index ee8735213d7..88ed2745748 100644 --- a/src/mame/drivers/fungames.cpp +++ b/src/mame/drivers/fungames.cpp @@ -88,11 +88,11 @@ void fungames_state::video_start() { } -MACHINE_CONFIG_START(fungames_state::fungames) - +void fungames_state::fungames(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) - MCFG_NETLIST_SETUP(fungames) + NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK); + m_maincpu->set_constructor(netlist_fungames); /* video hardware */ SCREEN(config, "screen", SCREEN_TYPE_RASTER); @@ -102,7 +102,7 @@ MACHINE_CONFIG_START(fungames_state::fungames) 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/funkball.cpp b/src/mame/drivers/funkball.cpp index 91da29c3c24..7fc0c1f59f1 100644 --- a/src/mame/drivers/funkball.cpp +++ b/src/mame/drivers/funkball.cpp @@ -764,10 +764,10 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) DEVICE_INPUT_DEFAULTS_END MACHINE_CONFIG_START(funkball_state::funkball) - MCFG_DEVICE_ADD("maincpu", MEDIAGX, 66666666*3.5) // 66,6 MHz x 3.5 - MCFG_DEVICE_PROGRAM_MAP(funkball_map) - MCFG_DEVICE_IO_MAP(funkball_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + MEDIAGX(config, m_maincpu, 66666666*3.5); // 66,6 MHz x 3.5 + m_maincpu->set_addrmap(AS_PROGRAM, &funkball_state::funkball_map); + m_maincpu->set_addrmap(AS_IO, &funkball_state::funkball_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); pcat_common(config); @@ -787,12 +787,12 @@ MACHINE_CONFIG_START(funkball_state::funkball) m_voodoo->set_screen_tag("screen"); m_voodoo->set_cpu_tag(m_maincpu); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_UPDATE_DRIVER(funkball_state, screen_update) - MCFG_SCREEN_SIZE(1024, 1024) - MCFG_SCREEN_VISIBLE_AREA(0, 511, 16, 447) + 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(funkball_state::screen_update)); + screen.set_size(1024, 1024); + screen.set_visarea(0, 511, 16, 447); ns16550_device &uart(NS16550(config, "uart", 1843200)); // exact type unknown uart.out_tx_callback().set("rs232", FUNC(rs232_port_device::write_txd)); diff --git a/src/mame/drivers/funkybee.cpp b/src/mame/drivers/funkybee.cpp index 654adcbd71e..f87c6932220 100644 --- a/src/mame/drivers/funkybee.cpp +++ b/src/mame/drivers/funkybee.cpp @@ -285,13 +285,13 @@ void funkybee_state::machine_start() m_gfx_bank = 0; } -MACHINE_CONFIG_START(funkybee_state::funkybee) - +void funkybee_state::funkybee(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 3072000) /* 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(funkybee_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", funkybee_state, irq0_line_hold) + Z80(config, m_maincpu, 3072000); /* 3.072 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &funkybee_state::funkybee_map); + m_maincpu->set_addrmap(AS_IO, &funkybee_state::io_map); + m_maincpu->set_vblank_int("screen", FUNC(funkybee_state::irq0_line_hold)); ls259_device &mainlatch(LS259(config, "mainlatch")); mainlatch.q_out_cb<0>().set(FUNC(funkybee_state::flipscreen_w)); @@ -302,13 +302,13 @@ MACHINE_CONFIG_START(funkybee_state::funkybee) WATCHDOG_TIMER(config, m_watchdog); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(12, 32*8-8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(funkybee_state, screen_update_funkybee) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(32*8, 32*8); + screen.set_visarea(12, 32*8-8-1, 0*8, 28*8-1); + screen.set_screen_update(FUNC(funkybee_state::screen_update_funkybee)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_funkybee); PALETTE(config, m_palette, FUNC(funkybee_state::funkybee_palette), 32); @@ -319,7 +319,7 @@ MACHINE_CONFIG_START(funkybee_state::funkybee) ay8912_device &ay8912(AY8912(config, "aysnd", 1500000)); // AY-3-8912 verified for Sky Lancer ay8912.port_a_read_callback().set_ioport("DSW"); ay8912.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/funkyjet.cpp b/src/mame/drivers/funkyjet.cpp index 58f4a51232c..2c2b8f0cef0 100644 --- a/src/mame/drivers/funkyjet.cpp +++ b/src/mame/drivers/funkyjet.cpp @@ -302,12 +302,12 @@ GFXDECODE_END /******************************************************************************/ -MACHINE_CONFIG_START(funkyjet_state::funkyjet) - +void funkyjet_state::funkyjet(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, M68000, XTAL(28'000'000)/2) /* 28 MHz crystal */ - MCFG_DEVICE_PROGRAM_MAP(funkyjet_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", funkyjet_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(28'000'000)/2); /* 28 MHz crystal */ + m_maincpu->set_addrmap(AS_PROGRAM, &funkyjet_state::funkyjet_map); + m_maincpu->set_vblank_int("screen", FUNC(funkyjet_state::irq6_line_hold)); H6280(config, m_audiocpu, XTAL(32'220'000)/4); /* Custom chip 45, Audio section crystal is 32.220 MHz */ m_audiocpu->set_addrmap(AS_PROGRAM, &funkyjet_state::sound_map); @@ -315,13 +315,13 @@ MACHINE_CONFIG_START(funkyjet_state::funkyjet) m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0); /* video hardware */ - 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(funkyjet_state, screen_update) - 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(funkyjet_state::screen_update)); + screen.set_palette("palette"); DECO146PROT(config, m_deco146, 0); m_deco146->port_a_cb().set_ioport("INPUTS"); @@ -360,10 +360,10 @@ MACHINE_CONFIG_START(funkyjet_state::funkyjet) ymsnd.add_route(0, "lspeaker", 0.45); ymsnd.add_route(1, "rspeaker", 0.45); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(28'000'000)/28, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", XTAL(28'000'000)/28, okim6295_device::PIN7_HIGH)); + oki.add_route(ALL_OUTPUTS, "lspeaker", 0.50); + oki.add_route(ALL_OUTPUTS, "rspeaker", 0.50); +} /******************************************************************************/ diff --git a/src/mame/drivers/funtech.cpp b/src/mame/drivers/funtech.cpp index 84a204ef5ed..47e48e8ac9e 100644 --- a/src/mame/drivers/funtech.cpp +++ b/src/mame/drivers/funtech.cpp @@ -487,22 +487,22 @@ void fun_tech_corp_state::machine_start() } -MACHINE_CONFIG_START(fun_tech_corp_state::funtech) - +void fun_tech_corp_state::funtech(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* ? MHz */ - MCFG_DEVICE_PROGRAM_MAP(funtech_map) - MCFG_DEVICE_IO_MAP(funtech_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", fun_tech_corp_state, vblank_interrupt) + Z80(config, m_maincpu, 4000000); /* ? MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &fun_tech_corp_state::funtech_map); + m_maincpu->set_addrmap(AS_IO, &fun_tech_corp_state::funtech_io_map); + m_maincpu->set_vblank_int("screen", FUNC(fun_tech_corp_state::vblank_interrupt)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 8, 256-8-1) - MCFG_SCREEN_UPDATE_DRIVER(fun_tech_corp_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(512, 256); + screen.set_visarea(0, 512-1, 8, 256-8-1); + screen.set_screen_update(FUNC(fun_tech_corp_state::screen_update)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_funtech); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 0x200); @@ -515,7 +515,7 @@ MACHINE_CONFIG_START(fun_tech_corp_state::funtech) SPEAKER(config, "mono").front_center(); AY8910(config, "aysnd", 1500000).add_route(ALL_OUTPUTS, "mono", 1.00); /* M5255, ? MHz */ -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/funworld.cpp b/src/mame/drivers/funworld.cpp index 1050ea7783d..313a1b7a88a 100644 --- a/src/mame/drivers/funworld.cpp +++ b/src/mame/drivers/funworld.cpp @@ -3067,10 +3067,11 @@ void lunapark_state::machine_reset() * Machine Drivers * **************************/ -MACHINE_CONFIG_START(funworld_state::fw1stpal) +void funworld_state::fw1stpal(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M65SC02, CPU_CLOCK) /* 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(funworld_map) + M65SC02(config, m_maincpu, CPU_CLOCK); /* 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::funworld_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -3085,13 +3086,13 @@ MACHINE_CONFIG_START(funworld_state::fw1stpal) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE((124+1)*4, (30+1)*8) /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1) */ - MCFG_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 29*8-1) /* Taken from MC6845 init, registers 01 & 06 */ - MCFG_SCREEN_UPDATE_DRIVER(funworld_state, screen_update_funworld) - 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((124+1)*4, (30+1)*8); /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1) */ + screen.set_visarea(0*4, 96*4-1, 0*8, 29*8-1); /* Taken from MC6845 init, registers 01 & 06 */ + screen.set_screen_update(FUNC(funworld_state::screen_update_funworld)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_fw1stpal); PALETTE(config, m_palette, FUNC(funworld_state::funworld_palette), 0x200); @@ -3109,35 +3110,38 @@ MACHINE_CONFIG_START(funworld_state::fw1stpal) ay8910.port_a_write_callback().set(FUNC(funworld_state::funworld_lamp_a_w)); ay8910.port_b_write_callback().set(FUNC(funworld_state::funworld_lamp_b_w)); ay8910.add_route(ALL_OUTPUTS, "mono", 2.5); /* analyzed to avoid clips */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(funworld_state::fw2ndpal) +void funworld_state::fw2ndpal(machine_config &config) +{ fw1stpal(config); - MCFG_DEVICE_REPLACE("maincpu", R65C02, CPU_CLOCK) /* 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(funworld_map) + R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::funworld_map); m_gfxdecode->set_info(gfx_fw2ndpal); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(funworld_state::funquiz) +void funworld_state::funquiz(machine_config &config) +{ fw1stpal(config); // fw2ndpal(config); - MCFG_DEVICE_REPLACE("maincpu", R65C02, CPU_CLOCK) /* 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(funquiz_map) + R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::funquiz_map); subdevice<ay8910_device>("ay8910")->port_a_read_callback().set(FUNC(funworld_state::funquiz_ay8910_a_r)); subdevice<ay8910_device>("ay8910")->port_b_read_callback().set(FUNC(funworld_state::funquiz_ay8910_b_r)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(magicrd2_state::magicrd2) +void magicrd2_state::magicrd2(machine_config &config) +{ fw1stpal(config); - MCFG_DEVICE_REPLACE("maincpu", R65C02, CPU_CLOCK) /* 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(magicrd2_map) + R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &magicrd2_state::magicrd2_map); subdevice<mc6845_device>("crtc")->set_visarea_adjust(0, -56, 0, 0); @@ -3145,86 +3149,97 @@ MACHINE_CONFIG_START(magicrd2_state::magicrd2) ay8910.port_a_write_callback().set(FUNC(magicrd2_state::funworld_lamp_a_w)); ay8910.port_b_write_callback().set(FUNC(magicrd2_state::funworld_lamp_b_w)); ay8910.add_route(ALL_OUTPUTS, "mono", 1.5); /* analyzed to avoid clips */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(funworld_state::royalcd1) +void funworld_state::royalcd1(machine_config &config) +{ fw1stpal(config); - MCFG_DEVICE_REPLACE("maincpu", R65C02, CPU_CLOCK) /* (G65SC02P in pro version) 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(magicrd2_map) -MACHINE_CONFIG_END + R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* (G65SC02P in pro version) 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::magicrd2_map); +} -MACHINE_CONFIG_START(funworld_state::royalcd2) +void funworld_state::royalcd2(machine_config &config) +{ fw2ndpal(config); - MCFG_DEVICE_REPLACE("maincpu", R65C02, CPU_CLOCK) /* 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(magicrd2_map) -MACHINE_CONFIG_END + R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::magicrd2_map); +} -MACHINE_CONFIG_START(funworld_state::cuoreuno) +void funworld_state::cuoreuno(machine_config &config) +{ fw1stpal(config); - MCFG_DEVICE_REPLACE("maincpu", R65C02, CPU_CLOCK) /* 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(cuoreuno_map) -MACHINE_CONFIG_END + R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::cuoreuno_map); +} -MACHINE_CONFIG_START(funworld_state::saloon) +void funworld_state::saloon(machine_config &config) +{ fw1stpal(config); - MCFG_DEVICE_REPLACE("maincpu", R65C02, CPU_CLOCK) /* 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(saloon_map) -MACHINE_CONFIG_END + R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::saloon_map); +} -MACHINE_CONFIG_START(funworld_state::witchryl) +void funworld_state::witchryl(machine_config &config) +{ fw1stpal(config); - MCFG_DEVICE_REPLACE("maincpu", R65C02, CPU_CLOCK) /* 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(witchryl_map) -MACHINE_CONFIG_END + R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::witchryl_map); +} -MACHINE_CONFIG_START(lunapark_state::lunapark) +void lunapark_state::lunapark(machine_config &config) +{ fw1stpal(config); - MCFG_DEVICE_REPLACE("maincpu", R65C02, CPU_CLOCK) /* 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(lunapark_map) // mirrored video RAM (4000/5000 to 6000/7000). -MACHINE_CONFIG_END + R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &lunapark_state::lunapark_map); // mirrored video RAM (4000/5000 to 6000/7000). +} -MACHINE_CONFIG_START(chinatow_state::chinatow) +void chinatow_state::chinatow(machine_config &config) +{ fw2ndpal(config); - MCFG_DEVICE_REPLACE("maincpu", R65C02, CPU_CLOCK) /* 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(chinatow_map) -MACHINE_CONFIG_END + R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &chinatow_state::chinatow_map); +} -MACHINE_CONFIG_START(chinatow_state::rcdino4) +void chinatow_state::rcdino4(machine_config &config) +{ fw1stpal(config); - MCFG_DEVICE_REPLACE("maincpu", R65C02, CPU_CLOCK) /* 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(chinatow_map) -MACHINE_CONFIG_END + R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &chinatow_state::chinatow_map); +} -MACHINE_CONFIG_START(funworld_state::intrgmes) +void funworld_state::intrgmes(machine_config &config) +{ fw1stpal(config); - MCFG_DEVICE_REPLACE("maincpu", R65C02, CPU_CLOCK) /* 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(intergames_map) + R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::intergames_map); m_gfxdecode->set_info(gfx_fw2ndpal); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(funworld_state::fw_brick_1) +void funworld_state::fw_brick_1(machine_config &config) +{ fw1stpal(config); - MCFG_DEVICE_REPLACE("maincpu", R65C02, CPU_CLOCK) /* 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(fw_a7_11_map) + R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::fw_a7_11_map); // m_gfxdecode->set_info(gfx_fw2ndpal); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(funworld_state::fw_brick_2) +void funworld_state::fw_brick_2(machine_config &config) +{ fw2ndpal(config); - MCFG_DEVICE_REPLACE("maincpu", R65C02, CPU_CLOCK) /* 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(fw_a7_11_map) + R65C02(config.replace(), m_maincpu, CPU_CLOCK); /* 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &funworld_state::fw_a7_11_map); // m_gfxdecode->set_info(gfx_fw2ndpal); -MACHINE_CONFIG_END +} /************************* diff --git a/src/mame/drivers/funybubl.cpp b/src/mame/drivers/funybubl.cpp index b244d949740..c85978a3eae 100644 --- a/src/mame/drivers/funybubl.cpp +++ b/src/mame/drivers/funybubl.cpp @@ -217,28 +217,28 @@ void funybubl_state::machine_start() } -MACHINE_CONFIG_START(funybubl_state::funybubl) - +void funybubl_state::funybubl(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,12000000/2) /* 6 MHz?? */ - MCFG_DEVICE_PROGRAM_MAP(funybubl_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", funybubl_state, irq0_line_hold) + Z80(config, m_maincpu, 12000000/2); /* 6 MHz?? */ + m_maincpu->set_addrmap(AS_PROGRAM, &funybubl_state::funybubl_map); + m_maincpu->set_addrmap(AS_IO, &funybubl_state::io_map); + m_maincpu->set_vblank_int("screen", FUNC(funybubl_state::irq0_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,8000000/2) /* 4 MHz?? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 8000000/2); /* 4 MHz?? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &funybubl_state::sound_map); ADDRESS_MAP_BANK(config, m_vrambank).set_map(&funybubl_state::vrambank_map).set_options(ENDIANNESS_LITTLE, 8, 13, 0x1000); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(12*8, 512-12*8-1, 16, 256-16-1) -// MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(funybubl_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(512, 256); + screen.set_visarea(12*8, 512-12*8-1, 16, 256-16-1); +// screen.set_visarea(0*8, 512-1, 0, 256-1); + screen.set_screen_update(FUNC(funybubl_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_funybubl); PALETTE(config, m_palette).set_format(4, &funybubl_state::funybubl_R6B6G6, 0xc00/4); @@ -249,10 +249,10 @@ MACHINE_CONFIG_START(funybubl_state::funybubl) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0); - MCFG_DEVICE_ADD("oki", OKIM6295, 8000000/8, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 8000000/8, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified + m_oki->set_addrmap(0, funybubl_state::oki_map); + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); +} diff --git a/src/mame/drivers/g627.cpp b/src/mame/drivers/g627.cpp index b4a999530d8..fafee6d0a15 100644 --- a/src/mame/drivers/g627.cpp +++ b/src/mame/drivers/g627.cpp @@ -296,11 +296,12 @@ WRITE8_MEMBER( g627_state::lamp_w ) } } -MACHINE_CONFIG_START(g627_state::g627) +void g627_state::g627(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 14138000/8) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) + Z80(config, m_maincpu, 14138000/8); + m_maincpu->set_addrmap(AS_PROGRAM, &g627_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &g627_state::io_map); i8156_device &i8156(I8156(config, "i8156", 14138000/8)); i8156.in_pa_callback().set(FUNC(g627_state::porta_r)); @@ -313,12 +314,11 @@ MACHINE_CONFIG_START(g627_state::g627) /* Sound */ genpin_audio(config); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("astrocade", ASTROCADE_IO, 14138000/8) // 0066-117XX audio chip - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + ASTROCADE_IO(config, "astrocade", 14138000/8).add_route(ALL_OUTPUTS, "mono", 1.0); // 0066-117XX audio chip /* Video */ config.set_default_layout(layout_g627); -MACHINE_CONFIG_END +} /*------------------------------------------------------------------- / Rotation VIII (09/1978) diff --git a/src/mame/drivers/gaelco.cpp b/src/mame/drivers/gaelco.cpp index c3c984cce61..dd67f05b271 100644 --- a/src/mame/drivers/gaelco.cpp +++ b/src/mame/drivers/gaelco.cpp @@ -644,15 +644,15 @@ void gaelco_state::machine_start() m_okibank->configure_entries(0, 16, memregion("oki")->base(), 0x10000); } -MACHINE_CONFIG_START(gaelco_state::bigkarnk) - +void gaelco_state::bigkarnk(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 10000000) /* MC68000P10, 10 MHz */ - MCFG_DEVICE_PROGRAM_MAP(bigkarnk_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaelco_state, irq6_line_hold) + M68000(config, m_maincpu, 10000000); /* MC68000P10, 10 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &gaelco_state::bigkarnk_map); + m_maincpu->set_vblank_int("screen", FUNC(gaelco_state::irq6_line_hold)); - MCFG_DEVICE_ADD("audiocpu", MC6809E, 8867000/4) /* 68B09EP, 2.21675 MHz? */ - MCFG_DEVICE_PROGRAM_MAP(bigkarnk_snd_map) + MC6809E(config, m_audiocpu, 8867000/4); /* 68B09EP, 2.21675 MHz? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &gaelco_state::bigkarnk_snd_map); config.m_minimum_quantum = attotime::from_hz(600); @@ -663,13 +663,13 @@ MACHINE_CONFIG_START(gaelco_state::bigkarnk) m_outlatch->q_out_cb<3>().set(FUNC(gaelco_state::coin2_counter_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(32*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_bigkarnk) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(32*16, 32*16); + screen.set_visarea(0, 320-1, 16, 256-1); + screen.set_screen_update(FUNC(gaelco_state::screen_update_bigkarnk)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gaelco); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 1024); @@ -682,28 +682,26 @@ MACHINE_CONFIG_START(gaelco_state::bigkarnk) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, M6809_FIRQ_LINE); - MCFG_DEVICE_ADD("ymsnd", YM3812, 3580000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + YM3812(config, "ymsnd", 3580000).add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_START(gaelco_state::maniacsq) + OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // clock frequency & pin 7 not verified +} +void gaelco_state::maniacsq(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2 ) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(maniacsq_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaelco_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &gaelco_state::maniacsq_map); + m_maincpu->set_vblank_int("screen", FUNC(gaelco_state::irq6_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(32*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(32*16, 32*16); + screen.set_visarea(0, 320-1, 16, 256-1); + screen.set_screen_update(FUNC(gaelco_state::screen_update_maniacsq)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gaelco); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 1024); @@ -713,17 +711,17 @@ MACHINE_CONFIG_START(gaelco_state::maniacsq) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) // pin 7 not verified - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(gaelco_state::squash) + okim6295_device &oki(OKIM6295(config, "oki", XTAL(1'000'000), okim6295_device::PIN7_HIGH)); // pin 7 not verified + oki.set_addrmap(0, &gaelco_state::oki_map); + oki.add_route(ALL_OUTPUTS, "mono", 1.0); +} +void gaelco_state::squash(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(20'000'000)/2 ) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(squash_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaelco_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(20'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &gaelco_state::squash_map); + m_maincpu->set_vblank_int("screen", FUNC(gaelco_state::irq6_line_hold)); config.m_minimum_quantum = attotime::from_hz(600); @@ -735,13 +733,13 @@ MACHINE_CONFIG_START(gaelco_state::squash) m_outlatch->q_out_cb<4>().set_nop(); // used /* 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(32*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq) - 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(32*16, 32*16); + screen.set_visarea(0, 320-1, 16, 256-1); + screen.set_screen_update(FUNC(gaelco_state::screen_update_maniacsq)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gaelco); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 1024); @@ -751,17 +749,17 @@ MACHINE_CONFIG_START(gaelco_state::squash) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(gaelco_state::thoop) + okim6295_device &oki(OKIM6295(config, "oki", XTAL(1'000'000), okim6295_device::PIN7_HIGH)); /* verified on pcb */ + oki.set_addrmap(0, &gaelco_state::oki_map); + oki.add_route(ALL_OUTPUTS, "mono", 1.0); +} +void gaelco_state::thoop(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2 ) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(thoop_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaelco_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &gaelco_state::thoop_map); + m_maincpu->set_vblank_int("screen", FUNC(gaelco_state::irq6_line_hold)); config.m_minimum_quantum = attotime::from_hz(600); @@ -773,13 +771,13 @@ MACHINE_CONFIG_START(gaelco_state::thoop) m_outlatch->q_out_cb<4>().set_nop(); // used /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(32*16, 32*16); + screen.set_visarea(0, 320-1, 16, 256-1); + screen.set_screen_update(FUNC(gaelco_state::screen_update_maniacsq)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gaelco); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 1024); @@ -789,10 +787,10 @@ MACHINE_CONFIG_START(gaelco_state::thoop) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) // pin 7 not verified - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", XTAL(1'000'000), okim6295_device::PIN7_HIGH)); // pin 7 not verified + oki.set_addrmap(0, &gaelco_state::oki_map); + oki.add_route(ALL_OUTPUTS, "mono", 1.0); +} /************************************* diff --git a/src/mame/drivers/gaelcopc.cpp b/src/mame/drivers/gaelcopc.cpp index 600feb982a9..b3762621ec1 100644 --- a/src/mame/drivers/gaelcopc.cpp +++ b/src/mame/drivers/gaelcopc.cpp @@ -71,22 +71,23 @@ static INPUT_PORTS_START( gaelcopc ) INPUT_PORTS_END -MACHINE_CONFIG_START(gaelcopc_state::gaelcopc) +void gaelcopc_state::gaelcopc(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", PENTIUM, 2000000000) /* Pentium4? */ - MCFG_DEVICE_PROGRAM_MAP(gaelcopc_map) + PENTIUM(config, m_maincpu, 2000000000); /* Pentium4? */ + m_maincpu->set_addrmap(AS_PROGRAM, &gaelcopc_state::gaelcopc_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_UPDATE_DRIVER(gaelcopc_state, screen_update) - 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_PALETTE("palette") - - MCFG_PALETTE_ADD("palette", 0x100) -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(gaelcopc_state::screen_update)); + 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_palette("palette"); + + PALETTE(config, "palette").set_entries(0x100); +} ROM_START(tokyocop) diff --git a/src/mame/drivers/gal3.cpp b/src/mame/drivers/gal3.cpp index f3a72c5a12b..45ed3935b97 100644 --- a/src/mame/drivers/gal3.cpp +++ b/src/mame/drivers/gal3.cpp @@ -610,30 +610,31 @@ static GFXDECODE_START( gfx_gal3_r ) GFXDECODE_ENTRY( "obj_board2", 0x000000, tile_layout, 0x000, 0x20 ) GFXDECODE_END -MACHINE_CONFIG_START(gal3_state::gal3) - MCFG_DEVICE_ADD("maincpu", M68020, 49152000/2) - MCFG_DEVICE_PROGRAM_MAP(cpu_mst_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", gal3_state, irq1_line_hold) +void gal3_state::gal3(machine_config &config) +{ + m68020_device &maincpu(M68020(config, "maincpu", 49152000/2)); + maincpu.set_addrmap(AS_PROGRAM, &gal3_state::cpu_mst_map); + maincpu.set_vblank_int("lscreen", FUNC(gal3_state::irq1_line_hold)); - MCFG_DEVICE_ADD("cpuslv", M68020, 49152000/2) - MCFG_DEVICE_PROGRAM_MAP(cpu_slv_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", gal3_state, irq1_line_hold) + m68020_device &cpusly(M68020(config, "cpuslv", 49152000/2)); + cpusly.set_addrmap(AS_PROGRAM, &gal3_state::cpu_slv_map); + cpusly.set_vblank_int("lscreen", FUNC(gal3_state::irq1_line_hold)); - MCFG_DEVICE_ADD("rs_cpu", M68000, 49152000/4) - MCFG_DEVICE_PROGRAM_MAP(rs_cpu_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", gal3_state, irq5_line_hold) /// programmable via 148 IC + m68000_device &rs_cpu(M68000(config, "rs_cpu", 49152000/4)); + rs_cpu.set_addrmap(AS_PROGRAM, &gal3_state::rs_cpu_map); + rs_cpu.set_vblank_int("lscreen", FUNC(gal3_state::irq5_line_hold)); /// programmable via 148 IC - MCFG_DEVICE_ADD("sound_cpu", M68000, 12000000) // ?? - MCFG_DEVICE_PROGRAM_MAP(sound_cpu_map) + m68000_device &sound_cpu(M68000(config, "sound_cpu", 12000000)); // ?? + sound_cpu.set_addrmap(AS_PROGRAM, &gal3_state::sound_cpu_map); - MCFG_DEVICE_ADD("psn_b1_cpu", M68000, 12000000) // ?? - MCFG_DEVICE_PROGRAM_MAP(psn_b1_cpu_map) + m68000_device &psn_b1_cpu(M68000(config, "psn_b1_cpu", 12000000)); // ?? + psn_b1_cpu.set_addrmap(AS_PROGRAM, &gal3_state::psn_b1_cpu_map); /* - MCFG_DEVICE_ADD("psn_b2_cpu", M68000, 12000000) // ?? - MCFG_DEVICE_PROGRAM_MAP(psn_b1_cpu_map,0) + m68000_device &psn_b2_cpu(M68000(config, "psn_b2_cpu", 12000000)); // ?? + psn_b2_cpu.set_addrmap(AS_PROGRAM, &gal3_state::psn_b1_cpu_map); - MCFG_DEVICE_ADD("psn_b3_cpu", M68000, 12000000) // ?? - MCFG_DEVICE_PROGRAM_MAP(psn_b1_cpu_map,0) + m68000_device &psn_b3_cpu(M68000(config, "psn_b3_cpu", 12000000)); // ?? + psn_b3_cpu.set_addrmap(AS_PROGRAM, &gal3_state::psn_b1_cpu_map); */ config.m_minimum_quantum = attotime::from_hz(60*8000); /* 8000 CPU slices per frame */ @@ -641,13 +642,13 @@ MACHINE_CONFIG_START(gal3_state::gal3) // video chain 1 - MCFG_SCREEN_ADD("lscreen", 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, 512-1, 0*8, 512-1) - MCFG_SCREEN_UPDATE_DRIVER(gal3_state, screen_update_left) - MCFG_SCREEN_PALETTE("palette_1") + screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); + lscreen.set_refresh_hz(60); + lscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + lscreen.set_size(64*8, 64*8); + lscreen.set_visarea(0*8, 512-1, 0*8, 512-1); + lscreen.set_screen_update(FUNC(gal3_state::screen_update_left)); + lscreen.set_palette(m_palette[0]); GFXDECODE(config, "gfxdecode_1", m_palette[0], gfx_gal3_l); PALETTE(config, m_palette[0]).set_format(palette_device::xBRG_888, NAMCOS21_NUM_COLORS); @@ -671,13 +672,13 @@ MACHINE_CONFIG_START(gal3_state::gal3) // video chain 2 - MCFG_SCREEN_ADD("rscreen", 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, 512-1, 0*8, 512-1) - MCFG_SCREEN_UPDATE_DRIVER(gal3_state, screen_update_right) - MCFG_SCREEN_PALETTE("palette_2") + screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); + rscreen.set_refresh_hz(60); + rscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + rscreen.set_size(64*8, 64*8); + rscreen.set_visarea(0*8, 512-1, 0*8, 512-1); + rscreen.set_screen_update(FUNC(gal3_state::screen_update_right)); + rscreen.set_palette(m_palette[1]); GFXDECODE(config, "gfxdecode_2", m_palette[1], gfx_gal3_r); PALETTE(config, m_palette[1]).set_format(palette_device::xBRG_888, NAMCOS21_NUM_COLORS); @@ -712,7 +713,7 @@ MACHINE_CONFIG_START(gal3_state::gal3) m_c140_16a->set_bank_type(c140_device::C140_TYPE::SYSTEM21); m_c140_16a->add_route(0, "lspeaker", 0.50); m_c140_16a->add_route(1, "rspeaker", 0.50); -MACHINE_CONFIG_END +} /* diff --git a/src/mame/drivers/galaxi.cpp b/src/mame/drivers/galaxi.cpp index 805810875e4..7eafa021b35 100644 --- a/src/mame/drivers/galaxi.cpp +++ b/src/mame/drivers/galaxi.cpp @@ -463,23 +463,23 @@ void galaxi_state::machine_reset() Machine Drivers ***************************************************************************/ -MACHINE_CONFIG_START(galaxi_state::galaxi) - +void galaxi_state::galaxi(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(galaxi_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galaxi_state, irq4_line_hold) + M68000(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &galaxi_state::galaxi_map); + m_maincpu->set_vblank_int("screen", FUNC(galaxi_state::irq4_line_hold)); 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(512, 256) - MCFG_SCREEN_VISIBLE_AREA(16*5, 512-16*2-1, 16*1, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(galaxi_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(0)); + m_screen->set_size(512, 256); + m_screen->set_visarea(16*5, 512-16*2-1, 16*1, 256-1); + m_screen->set_screen_update(FUNC(galaxi_state::screen_update)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaxi); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x400); @@ -487,30 +487,29 @@ MACHINE_CONFIG_START(galaxi_state::galaxi) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, SND_CLOCK, okim6295_device::PIN7_LOW) // ? - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", SND_CLOCK, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0); // ? +} -MACHINE_CONFIG_START(galaxi_state::magjoker) +void galaxi_state::magjoker(machine_config &config) +{ galaxi(config); /* sound hardware */ - MCFG_DEVICE_MODIFY("oki") /* ADPCM samples are recorded with extremely low volume */ - MCFG_SOUND_ROUTES_RESET() - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 4.0) -MACHINE_CONFIG_END + subdevice<okim6295_device>("oki")->reset_routes(); + subdevice<okim6295_device>("oki")->add_route(ALL_OUTPUTS, "mono", 4.0); +} -MACHINE_CONFIG_START(galaxi_state::lastfour) +void galaxi_state::lastfour(machine_config &config) +{ galaxi(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(lastfour_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &galaxi_state::lastfour_map); +} /*************************************************************************** diff --git a/src/mame/drivers/galaxy.cpp b/src/mame/drivers/galaxy.cpp index 514e011d34e..22cf4cd0f99 100644 --- a/src/mame/drivers/galaxy.cpp +++ b/src/mame/drivers/galaxy.cpp @@ -178,21 +178,20 @@ GFXDECODE_END MACHINE_CONFIG_START(galaxy_state::galaxy) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL / 2) - MCFG_DEVICE_PROGRAM_MAP(galaxy_mem) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galaxy_state, galaxy_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(galaxy_state,galaxy_irq_callback) - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_PALETTE("palette") + Z80(config, m_maincpu, XTAL / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &galaxy_state::galaxy_mem); + m_maincpu->set_vblank_int("screen", FUNC(galaxy_state::galaxy_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(galaxy_state::galaxy_irq_callback)); MCFG_MACHINE_RESET_OVERRIDE(galaxy_state, galaxy ) /* video hardware */ - MCFG_SCREEN_SIZE(384, 212) - MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 208-1) - MCFG_SCREEN_UPDATE_DRIVER(galaxy_state, screen_update_galaxy) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(50); + m_screen->set_palette("palette"); + m_screen->set_size(384, 212); + m_screen->set_visarea(0, 384-1, 0, 208-1); + m_screen->set_screen_update(FUNC(galaxy_state::screen_update_galaxy)); GFXDECODE(config, "gfxdecode", "palette", gfx_galaxy); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -216,22 +215,21 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(galaxy_state::galaxyp) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL / 2) - MCFG_DEVICE_PROGRAM_MAP(galaxyp_mem) - MCFG_DEVICE_IO_MAP(galaxyp_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galaxy_state, galaxy_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(galaxy_state,galaxy_irq_callback) - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_PALETTE("palette") + Z80(config, m_maincpu, XTAL / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &galaxy_state::galaxyp_mem); + m_maincpu->set_addrmap(AS_IO, &galaxy_state::galaxyp_io); + m_maincpu->set_vblank_int("screen", FUNC(galaxy_state::galaxy_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(galaxy_state::galaxy_irq_callback)); MCFG_MACHINE_RESET_OVERRIDE(galaxy_state, galaxyp ) /* video hardware */ - MCFG_SCREEN_SIZE(384, 208) - MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 208-1) - MCFG_SCREEN_UPDATE_DRIVER(galaxy_state, screen_update_galaxy) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(50); + m_screen->set_palette("palette"); + m_screen->set_size(384, 208); + m_screen->set_visarea(0, 384-1, 0, 208-1); + m_screen->set_screen_update(FUNC(galaxy_state::screen_update_galaxy)); PALETTE(config, "palette", palette_device::MONOCHROME); diff --git a/src/mame/drivers/galgames.cpp b/src/mame/drivers/galgames.cpp index 6f0057c209f..f584bc10fe7 100644 --- a/src/mame/drivers/galgames.cpp +++ b/src/mame/drivers/galgames.cpp @@ -67,13 +67,16 @@ class galgames_cart_device : public device_t, public device_rom_interface { public: // construction/destruction - galgames_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - galgames_cart_device(mconfig, GALGAMES_CART, tag, owner, clock) - { } + + galgames_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint8_t cart) + : galgames_cart_device(mconfig, GALGAMES_CART, tag, owner, (uint32_t)0) + { + set_cart(cart); + } // static configuration - static void static_set_cart(device_t &device, uint8_t cart) { downcast<galgames_cart_device &>(device).m_cart = cart; } - static void static_set_pic_bits(device_t &device, int clk, int in, int out, int dis) { downcast<galgames_cart_device &>(device).set_pic_bits(clk, in, out, dis); } + void set_cart(uint8_t cart) { m_cart = cart; } + void set_pic_bits(int clk, int in, int out, int dis); // ROM DECLARE_READ16_MEMBER(rom_r) { return read_word(offset*2); } @@ -122,7 +125,6 @@ protected: uint8_t m_pic_iobits, m_pic_data, m_pic_data_rdy, m_pic_data_bit, m_pic_data_clk; uint8_t m_pic_clk_mask, m_pic_in_mask, m_pic_out_mask, m_pic_dis_mask; - void set_pic_bits(int clk, int in, int out, int dis); void log_cart_comm(const char *text, uint8_t data); void pic_comm_reset(); }; @@ -130,17 +132,6 @@ protected: // device type definition DEFINE_DEVICE_TYPE(GALGAMES_CART, galgames_cart_device, "starpak_cart", "Galaxy Games StarPak Cartridge") -#define MCFG_GALGAMES_CART_INDEX(_cart) \ - galgames_cart_device::static_set_cart(*device, _cart); - -#define MCFG_GALGAMES_PIC_BITS(_clk, _in, _out, _dis) \ - galgames_cart_device::static_set_pic_bits(*device, _clk, _in, _out, _dis); - -#define MCFG_GALGAMES_EMPTY_CART_ADD(_tag, _cart) \ - MCFG_DEVICE_ADD(_tag, GALGAMES_CART, 0) \ - MCFG_GALGAMES_CART_INDEX(_cart) - - // BIOS "cart" @@ -148,9 +139,12 @@ class galgames_bios_cart_device : public galgames_cart_device { public: // construction/destruction - galgames_bios_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - galgames_cart_device(mconfig, GALGAMES_BIOS_CART, tag, owner, clock) - { } + galgames_bios_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint8_t cart) + : galgames_cart_device(mconfig, GALGAMES_BIOS_CART, tag, owner, (uint32_t)0) + { + set_cart(cart); + } + protected: // device-level overrides virtual void device_add_mconfig(machine_config &config) override; @@ -163,11 +157,6 @@ void galgames_bios_cart_device::device_add_mconfig(machine_config &config) EEPROM_93C76_8BIT(config, "eeprom"); } -#define MCFG_GALGAMES_BIOS_CART_ADD(_tag, _cart) \ - MCFG_DEVICE_ADD(_tag, GALGAMES_BIOS_CART, 0) \ - MCFG_GALGAMES_CART_INDEX(_cart) - - // STARPAK2 cart @@ -175,9 +164,13 @@ class galgames_starpak2_cart_device : public galgames_cart_device { public: // construction/destruction - galgames_starpak2_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - galgames_cart_device(mconfig, GALGAMES_STARPAK2_CART, tag, owner, clock) - { } + galgames_starpak2_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint8_t cart) + : galgames_cart_device(mconfig, GALGAMES_STARPAK2_CART, tag, owner, (uint32_t)0) + { + set_cart(cart); + set_pic_bits(5, 4, 2, 1); + } + protected: // device-level overrides virtual void device_add_mconfig(machine_config &config) override; @@ -194,12 +187,6 @@ void galgames_starpak2_cart_device::device_add_mconfig(machine_config &config) EEPROM_93C76_8BIT(config, "eeprom"); } -#define MCFG_GALGAMES_STARPAK2_CART_ADD(_tag, _cart) \ - MCFG_DEVICE_ADD(_tag, GALGAMES_STARPAK2_CART, 0) \ - MCFG_GALGAMES_CART_INDEX(_cart) \ - MCFG_GALGAMES_PIC_BITS(5, 4, 2, 1) - - // STARPAK3 cart @@ -207,9 +194,13 @@ class galgames_starpak3_cart_device : public galgames_cart_device { public: // construction/destruction - galgames_starpak3_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - galgames_cart_device(mconfig, GALGAMES_STARPAK3_CART, tag, owner, clock) - { } + galgames_starpak3_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint8_t cart) + : galgames_cart_device(mconfig, GALGAMES_STARPAK3_CART, tag, owner, (uint32_t)0) + { + set_cart(cart); + set_pic_bits(0, 2, 3, 4); + } + protected: // device-level overrides virtual void device_add_mconfig(machine_config &config) override; @@ -227,12 +218,6 @@ void galgames_starpak3_cart_device::device_add_mconfig(machine_config &config) EEPROM_93C76_8BIT(config, "eeprom"); } -#define MCFG_GALGAMES_STARPAK3_CART_ADD(_tag, _cart) \ - MCFG_DEVICE_ADD(_tag, GALGAMES_STARPAK3_CART, 0) \ - MCFG_GALGAMES_CART_INDEX(_cart) \ - MCFG_GALGAMES_PIC_BITS(0, 2, 3, 4) - - /*************************************************************************** @@ -315,9 +300,6 @@ device_memory_interface::space_config_vector galgames_slot_device::memory_space_ // device type definition DEFINE_DEVICE_TYPE(GALGAMES_SLOT, galgames_slot_device, "starpak_slot", "Galaxy Games Slot") -#define MCFG_GALGAMES_SLOT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, GALGAMES_SLOT, 0) - // CART implementation galgames_cart_device::galgames_cart_device( @@ -981,23 +963,24 @@ int galgames_compute_addr(uint16_t reg_low, uint16_t reg_mid, uint16_t reg_high) return reg_low | (reg_mid << 16); } -MACHINE_CONFIG_START(galgames_state::galgames_base) - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(galgames_map) +void galgames_state::galgames_base(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(24'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &galgames_state::galgames_map); TIMER(config, "scantimer").configure_scanline(FUNC(galgames_state::scanline_interrupt), "screen", 0, 1); WATCHDOG_TIMER(config, "watchdog"); - MCFG_GALGAMES_SLOT_ADD("slot") - MCFG_GALGAMES_BIOS_CART_ADD( "cart0", 0) + GALGAMES_SLOT(config, m_slot, 0); + GALGAMES_BIOS_CART(config, "cart0", 0); // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(400, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(galgames_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(0)); + m_screen->set_size(400, 256); + m_screen->set_visarea(0, 400-1, 0, 256-1); + m_screen->set_screen_update(FUNC(galgames_state::screen_update)); + m_screen->set_palette(m_palette); CESBLIT(config, m_blitter, XTAL(24'000'000), m_screen); m_blitter->set_addrmap(AS_PROGRAM, &galgames_state::blitter_map); @@ -1008,33 +991,35 @@ MACHINE_CONFIG_START(galgames_state::galgames_base) // sound hardware SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(24'000'000) / 16, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified (voices in galgame4 seem ok) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(24'000'000) / 16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // clock frequency & pin 7 not verified (voices in galgame4 seem ok) +} -MACHINE_CONFIG_START(galgames_state::galgbios) +void galgames_state::galgbios(machine_config &config) +{ galgames_base(config); - MCFG_GALGAMES_EMPTY_CART_ADD("cart1", 1) - MCFG_GALGAMES_EMPTY_CART_ADD("cart2", 2) - MCFG_GALGAMES_EMPTY_CART_ADD("cart3", 3) - MCFG_GALGAMES_EMPTY_CART_ADD("cart4", 4) -MACHINE_CONFIG_END + GALGAMES_CART(config, "cart1", 1); + GALGAMES_CART(config, "cart2", 2); + GALGAMES_CART(config, "cart3", 3); + GALGAMES_CART(config, "cart4", 4); +} -MACHINE_CONFIG_START(galgames_state::galgame2) +void galgames_state::galgame2(machine_config &config) +{ galgames_base(config); - MCFG_GALGAMES_STARPAK2_CART_ADD("cart1", 1) - MCFG_GALGAMES_EMPTY_CART_ADD("cart2", 2) - MCFG_GALGAMES_EMPTY_CART_ADD("cart3", 3) - MCFG_GALGAMES_EMPTY_CART_ADD("cart4", 4) -MACHINE_CONFIG_END + GALGAMES_STARPAK2_CART(config, "cart1", 1); + GALGAMES_CART(config, "cart2", 2); + GALGAMES_CART(config, "cart3", 3); + GALGAMES_CART(config, "cart4", 4); +} -MACHINE_CONFIG_START(galgames_state::galgame3) +void galgames_state::galgame3(machine_config &config) +{ galgames_base(config); - MCFG_GALGAMES_STARPAK3_CART_ADD("cart1", 1) - MCFG_GALGAMES_EMPTY_CART_ADD("cart2", 2) - MCFG_GALGAMES_EMPTY_CART_ADD("cart3", 3) - MCFG_GALGAMES_EMPTY_CART_ADD("cart4", 4) -MACHINE_CONFIG_END + GALGAMES_STARPAK3_CART(config, "cart1", 1); + GALGAMES_CART(config, "cart2", 2); + GALGAMES_CART(config, "cart3", 3); + GALGAMES_CART(config, "cart4", 4); +} /*************************************************************************** diff --git a/src/mame/drivers/galivan.cpp b/src/mame/drivers/galivan.cpp index ab1827ad11f..1bcf2709313 100644 --- a/src/mame/drivers/galivan.cpp +++ b/src/mame/drivers/galivan.cpp @@ -429,18 +429,18 @@ MACHINE_RESET_MEMBER(galivan_state,ninjemak) m_ninjemak_dispdisable = 0; } -MACHINE_CONFIG_START(galivan_state::galivan) - +void galivan_state::galivan(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) /* 6 MHz? */ - MCFG_DEVICE_PROGRAM_MAP(galivan_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galivan_state, irq0_line_hold) + Z80(config, m_maincpu, XTAL(12'000'000)/2); /* 6 MHz? */ + m_maincpu->set_addrmap(AS_PROGRAM, &galivan_state::galivan_map); + m_maincpu->set_addrmap(AS_IO, &galivan_state::io_map); + m_maincpu->set_vblank_int("screen", FUNC(galivan_state::irq0_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(8'000'000)/2) /* 4 MHz? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_io_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(galivan_state, irq0_line_hold, XTAL(8'000'000)/2/512) // ? + z80_device &audiocpu(Z80(config, "audiocpu", XTAL(8'000'000)/2)); /* 4 MHz? */ + audiocpu.set_addrmap(AS_PROGRAM, &galivan_state::sound_map); + audiocpu.set_addrmap(AS_IO, &galivan_state::sound_io_map); + audiocpu.set_periodic_int(FUNC(galivan_state::irq0_line_hold), attotime::from_hz(XTAL(8'000'000)/2/512)); // ? MCFG_MACHINE_START_OVERRIDE(galivan_state,galivan) MCFG_MACHINE_RESET_OVERRIDE(galivan_state,galivan) @@ -448,14 +448,14 @@ MACHINE_CONFIG_START(galivan_state::galivan) /* video hardware */ BUFFERED_SPRITERAM8(config, m_spriteram); - 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(galivan_state, screen_update_galivan) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram8_device, vblank_copy_rising)) - 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(galivan_state::screen_update_galivan)); + screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram8_device::vblank_copy_rising)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_galivan); PALETTE(config, m_palette, FUNC(galivan_state::galivan_palette), 8*16+16*16+256*16, 256); @@ -467,53 +467,52 @@ MACHINE_CONFIG_START(galivan_state::galivan) GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("ymsnd", YM3526, XTAL(8'000'000)/2) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) + YM3526(config, "ymsnd", XTAL(8'000'000)/2).add_route(ALL_OUTPUTS, "speaker", 1.0); DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC 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 +} -MACHINE_CONFIG_START(dangarj_state::dangarj) +void dangarj_state::dangarj(machine_config &config) +{ galivan(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(dangarj_io_map) + m_maincpu->set_addrmap(AS_IO, &dangarj_state::dangarj_io_map); NB1412M2(config, m_prot, XTAL(8'000'000)); // divided by 2 maybe -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(galivan_state::ninjemak) +} +void galivan_state::ninjemak(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) /* 6 MHz? */ - MCFG_DEVICE_PROGRAM_MAP(ninjemak_map) - MCFG_DEVICE_IO_MAP(ninjemak_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galivan_state, irq0_line_hold) + Z80(config, m_maincpu, XTAL(12'000'000)/2); /* 6 MHz? */ + m_maincpu->set_addrmap(AS_PROGRAM, &galivan_state::ninjemak_map); + m_maincpu->set_addrmap(AS_IO, &galivan_state::ninjemak_io_map); + m_maincpu->set_vblank_int("screen", FUNC(galivan_state::irq0_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(8'000'000)/2) /* 4 MHz? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_io_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(galivan_state, irq0_line_hold, XTAL(8'000'000)/2/512) // ? + z80_device &audiocpu(Z80(config, "audiocpu", XTAL(8'000'000)/2)); /* 4 MHz? */ + audiocpu.set_addrmap(AS_PROGRAM, &galivan_state::sound_map); + audiocpu.set_addrmap(AS_IO, &galivan_state::sound_io_map); + audiocpu.set_periodic_int(FUNC(galivan_state::irq0_line_hold), attotime::from_hz(XTAL(8'000'000)/2/512)); // ? MCFG_MACHINE_START_OVERRIDE(galivan_state,ninjemak) MCFG_MACHINE_RESET_OVERRIDE(galivan_state,ninjemak) - MCFG_DEVICE_ADD("nb1414m4", NB1414M4, 0) + NB1414M4(config, m_nb1414m4, 0); /* video hardware */ BUFFERED_SPRITERAM8(config, m_spriteram); - 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(galivan_state, screen_update_ninjemak) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram8_device, vblank_copy_rising)) - 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(galivan_state::screen_update_ninjemak)); + screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram8_device::vblank_copy_rising)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_galivan); PALETTE(config, m_palette, FUNC(galivan_state::galivan_palette), 8*16+16*16+256*16, 256); @@ -525,15 +524,14 @@ MACHINE_CONFIG_START(galivan_state::ninjemak) GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("ymsnd", YM3526, XTAL(8'000'000)/2) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) + YM3526(config, "ymsnd", XTAL(8'000'000)/2).add_route(ALL_OUTPUTS, "speaker", 1.0); DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC 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 +} void galivan_state::youmab(machine_config &config) diff --git a/src/mame/drivers/galpani2.cpp b/src/mame/drivers/galpani2.cpp index daca8985720..2f35d25cde9 100644 --- a/src/mame/drivers/galpani2.cpp +++ b/src/mame/drivers/galpani2.cpp @@ -622,27 +622,27 @@ TIMER_DEVICE_CALLBACK_MEMBER(galpani2_state::galpani2_interrupt2) m_subcpu->set_input_line(3, HOLD_LINE); } -MACHINE_CONFIG_START(galpani2_state::galpani2) - +void galpani2_state::galpani2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(27'000'000)/2) /* Confirmed on galpani2i PCB */ - MCFG_DEVICE_PROGRAM_MAP(galpani2_mem1) + M68000(config, m_maincpu, XTAL(27'000'000)/2); /* Confirmed on galpani2i PCB */ + m_maincpu->set_addrmap(AS_PROGRAM, &galpani2_state::galpani2_mem1); TIMER(config, "m_scantimer").configure_scanline(FUNC(galpani2_state::galpani2_interrupt1), "screen", 0, 1); //config.m_perfect_cpu_quantum = subtag("maincpu"); - MCFG_DEVICE_ADD("sub", M68000, XTAL(27'000'000)/2) /* Confirmed on galpani2i PCB */ - MCFG_DEVICE_PROGRAM_MAP(galpani2_mem2) + M68000(config, m_subcpu, XTAL(27'000'000)/2); /* Confirmed on galpani2i PCB */ + m_subcpu->set_addrmap(AS_PROGRAM, &galpani2_state::galpani2_mem2); TIMER(config, "s_scantimer").configure_scanline(FUNC(galpani2_state::galpani2_interrupt2), "screen", 0, 1); 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(320, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1-16) - MCFG_SCREEN_UPDATE_DRIVER(galpani2_state, screen_update_galpani2) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(320, 256); + screen.set_visarea(0, 320-1, 0, 256-1-16); + screen.set_screen_update(FUNC(galpani2_state::screen_update_galpani2)); GFXDECODE(config, "gfxdecode", m_palette, gfx_galpani2); PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 0x4000); // sprites @@ -657,12 +657,10 @@ MACHINE_CONFIG_START(galpani2_state::galpani2) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(20'000'000)/10, okim6295_device::PIN7_HIGH) /* Confirmed on galpani2i PCB */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) + OKIM6295(config, "oki1", XTAL(20'000'000)/10, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "lspeaker", 1.0); /* Confirmed on galpani2i PCB */ - MCFG_DEVICE_ADD("oki2", OKIM6295, XTAL(20'000'000)/10, okim6295_device::PIN7_HIGH) /* Confirmed on galpani2i PCB */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, m_oki2, XTAL(20'000'000)/10, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "rspeaker", 1.0); /* Confirmed on galpani2i PCB */ +} /*************************************************************************** diff --git a/src/mame/drivers/galpani3.cpp b/src/mame/drivers/galpani3.cpp index 8e6f1a21a2d..aa1d2cc619f 100644 --- a/src/mame/drivers/galpani3.cpp +++ b/src/mame/drivers/galpani3.cpp @@ -450,45 +450,43 @@ void galpani3_state::galpani3_map(address_map &map) } -MACHINE_CONFIG_START(galpani3_state::galpani3) - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(28'636'363)/2) // Confirmed from PCB - MCFG_DEVICE_PROGRAM_MAP(galpani3_map) +void galpani3_state::galpani3(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(28'636'363)/2); // Confirmed from PCB + m_maincpu->set_addrmap(AS_PROGRAM, &galpani3_state::galpani3_map); TIMER(config, "scantimer").configure_scanline(FUNC(galpani3_state::galpani3_vblank), "screen", 0, 1); - 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, 40*8-1, 0*8, 30*8-1) - //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1) - MCFG_SCREEN_UPDATE_DRIVER(galpani3_state, screen_update_galpani3) + 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, 40*8-1, 0*8, 30*8-1); + //screen.set_visarea(0*8, 64*8-1, 0*8, 64*8-1); + screen.set_screen_update(FUNC(galpani3_state::screen_update_galpani3)); EEPROM_93C46_16BIT(config, "eeprom"); WATCHDOG_TIMER(config, "watchdog"); - MCFG_DEVICE_ADD("toybox", KANEKO_TOYBOX, "eeprom", "DSW1", "mcuram", "mcudata") + KANEKO_TOYBOX(config, "toybox", "eeprom", "DSW1", "mcuram", "mcudata"); PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 0x4000); - MCFG_DEVICE_ADD("spritegen", SKNS_SPRITE, 0) + SKNS_SPRITE(config, m_spritegen, 0); - MCFG_DEVICE_ADD("grap2_0", KANEKO_GRAP2, 0) - MCFG_DEVICE_ROM("rlebg") + KANEKO_GRAP2(config, m_grap2[0], 0).set_device_rom_tag("rlebg"); - MCFG_DEVICE_ADD("grap2_1", KANEKO_GRAP2, 0) - MCFG_DEVICE_ROM("rlebg") + KANEKO_GRAP2(config, m_grap2[1], 0).set_device_rom_tag("rlebg"); - MCFG_DEVICE_ADD("grap2_2", KANEKO_GRAP2, 0) - MCFG_DEVICE_ROM("rlebg") + KANEKO_GRAP2(config, m_grap2[2], 0).set_device_rom_tag("rlebg"); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(33'333'000) / 2) // Confirmed from PCB - MCFG_SOUND_ROUTE(0, "mono", 1.0) - MCFG_SOUND_ROUTE(1, "mono", 1.0) -MACHINE_CONFIG_END + ymz280b_device &ymz(YMZ280B(config, "ymz", XTAL(33'333'000) / 2)); // Confirmed from PCB + ymz.add_route(0, "mono", 1.0); + ymz.add_route(1, "mono", 1.0); +} ROM_START( galpani3 ) /* All game text in English */ diff --git a/src/mame/drivers/galpanic.cpp b/src/mame/drivers/galpanic.cpp index fed37f72c0e..b4a5aee7345 100644 --- a/src/mame/drivers/galpanic.cpp +++ b/src/mame/drivers/galpanic.cpp @@ -232,24 +232,24 @@ static GFXDECODE_START( gfx_galpanic ) GFXDECODE_END -MACHINE_CONFIG_START(galpanic_state::galpanic) - +void galpanic_state::galpanic(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000)) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(galpanic_map) + M68000(config, m_maincpu, XTAL(12'000'000)); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &galpanic_state::galpanic_map); TIMER(config, "scantimer").configure_scanline(FUNC(galpanic_state::scanline), "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) /* frames per second, vblank duration */) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1) - MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, galpanic_state, screen_vblank)) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */); + m_screen->set_size(256, 256); + m_screen->set_visarea(0, 256-1, 0, 224-1); + m_screen->set_screen_update(FUNC(galpanic_state::screen_update)); + m_screen->screen_vblank().set(FUNC(galpanic_state::screen_vblank)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_galpanic); // fg palette RAM, bit 0 seems to be a transparency flag for the front bitmap @@ -262,23 +262,23 @@ MACHINE_CONFIG_START(galpanic_state::galpanic) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(12'000'000)/6, okim6295_device::PIN7_LOW) /* verified on pcb */ - MCFG_DEVICE_ADDRESS_MAP(0, galpanic_oki_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", XTAL(12'000'000)/6, okim6295_device::PIN7_LOW)); /* verified on pcb */ + oki.set_addrmap(0, &galpanic_state::galpanic_oki_map); + oki.add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_START(galpanic_state::galpanica) +void galpanic_state::galpanica(machine_config &config) +{ galpanic(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(galpanica_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galpanic_state::galpanica_map); /* basic machine hardware */ KANEKO_HIT(config, "calc1_mcu").set_type(0); /* arm watchdog */ subdevice<watchdog_timer_device>("watchdog")->set_time(attotime::from_seconds(3)); /* a guess, and certainly wrong */ -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/gamecom.cpp b/src/mame/drivers/gamecom.cpp index 6ce067100ee..480840cd550 100644 --- a/src/mame/drivers/gamecom.cpp +++ b/src/mame/drivers/gamecom.cpp @@ -268,13 +268,13 @@ MACHINE_CONFIG_START(gamecom_state::gamecom) //NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE( 59.732155 ) - MCFG_SCREEN_VBLANK_TIME(500) - MCFG_SCREEN_UPDATE_DRIVER(gamecom_state, screen_update) - MCFG_SCREEN_SIZE( 200, 160 ) - MCFG_SCREEN_VISIBLE_AREA( 0, 199, 0, 159 ) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_LCD); + m_screen->set_refresh_hz(59.732155); + m_screen->set_vblank_time(500); + m_screen->set_screen_update(FUNC(gamecom_state::screen_update)); + m_screen->set_size(200, 160); + m_screen->set_visarea_full(); + m_screen->set_palette("palette"); config.set_default_layout(layout_gamecom); PALETTE(config, "palette", FUNC(gamecom_state::gamecom_palette), 5); diff --git a/src/mame/drivers/gamecstl.cpp b/src/mame/drivers/gamecstl.cpp index ba24a13e42a..4e9c30d33f5 100644 --- a/src/mame/drivers/gamecstl.cpp +++ b/src/mame/drivers/gamecstl.cpp @@ -446,10 +446,10 @@ void gamecstl_state::machine_reset() MACHINE_CONFIG_START(gamecstl_state::gamecstl) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", PENTIUM3, 200000000) - MCFG_DEVICE_PROGRAM_MAP(gamecstl_map) - MCFG_DEVICE_IO_MAP(gamecstl_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + PENTIUM3(config, m_maincpu, 200000000); + m_maincpu->set_addrmap(AS_PROGRAM, &gamecstl_state::gamecstl_map); + m_maincpu->set_addrmap(AS_IO, &gamecstl_state::gamecstl_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); pcat_common(config); @@ -461,18 +461,16 @@ MACHINE_CONFIG_START(gamecstl_state::gamecstl) ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 199) - MCFG_SCREEN_UPDATE_DRIVER(gamecstl_state, screen_update_gamecstl) - 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(640, 480); + screen.set_visarea(0, 639, 0, 199); + screen.set_screen_update(FUNC(gamecstl_state::screen_update_gamecstl)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cga); - MCFG_PALETTE_ADD("palette", 16) - - + PALETTE(config, m_palette).set_entries(16); MACHINE_CONFIG_END void gamecstl_state::init_gamecstl() diff --git a/src/mame/drivers/gamecube.cpp b/src/mame/drivers/gamecube.cpp index cf6884285c9..3917e09d375 100644 --- a/src/mame/drivers/gamecube.cpp +++ b/src/mame/drivers/gamecube.cpp @@ -142,10 +142,11 @@ void gamecube_state::machine_reset() // MACHINE DEFINITIONS //************************************************************************** -MACHINE_CONFIG_START(gamecube_state::gc) - MCFG_DEVICE_ADD("maincpu", PPC603, 485000000 / 100) // 485 MHz IBM "Gekko" (750CXe/750FX based) - MCFG_DEVICE_PROGRAM_MAP(ppc_mem) -MACHINE_CONFIG_END +void gamecube_state::gc(machine_config &config) +{ + PPC603(config, m_cpu, 485000000 / 100); // 485 MHz IBM "Gekko" (750CXe/750FX based) + m_cpu->set_addrmap(AS_PROGRAM, &gamecube_state::ppc_mem); +} //************************************************************************** diff --git a/src/mame/drivers/gameking.cpp b/src/mame/drivers/gameking.cpp index bc432185035..86dbffe3875 100644 --- a/src/mame/drivers/gameking.cpp +++ b/src/mame/drivers/gameking.cpp @@ -288,17 +288,17 @@ INTERRUPT_GEN_MEMBER(gameking_state::gameking_frame_int) // guess to get over bi MACHINE_CONFIG_START(gameking_state::gameking) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", R65C02, 6000000) - MCFG_DEVICE_PROGRAM_MAP(gameking_mem) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gameking_state, gameking_frame_int) + R65C02(config, m_maincpu, 6000000); + m_maincpu->set_addrmap(AS_PROGRAM, &gameking_state::gameking_mem); + m_maincpu->set_vblank_int("screen", FUNC(gameking_state::gameking_frame_int)); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(48, 32) - MCFG_SCREEN_VISIBLE_AREA(0, 48-1, 0, 32-1) - MCFG_SCREEN_UPDATE_DRIVER(gameking_state, screen_update_gameking) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60); + screen.set_size(48, 32); + screen.set_visarea_full(); + screen.set_screen_update(FUNC(gameking_state::screen_update_gameking)); + screen.set_palette(m_palette); PALETTE(config, m_palette, FUNC(gameking_state::gameking_palette), ARRAY_LENGTH(gameking_pens)); diff --git a/src/mame/drivers/gammagic.cpp b/src/mame/drivers/gammagic.cpp index 985b1bdaf8c..55e1477f347 100644 --- a/src/mame/drivers/gammagic.cpp +++ b/src/mame/drivers/gammagic.cpp @@ -131,10 +131,10 @@ void gammagic_state::machine_start() } MACHINE_CONFIG_START(gammagic_state::gammagic) - MCFG_DEVICE_ADD("maincpu", PENTIUM, 133000000) // Intel Pentium 133 - MCFG_DEVICE_PROGRAM_MAP(gammagic_map) - MCFG_DEVICE_IO_MAP(gammagic_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + PENTIUM(config, m_maincpu, 133000000); // Intel Pentium 133 + m_maincpu->set_addrmap(AS_PROGRAM, &gammagic_state::gammagic_map); + m_maincpu->set_addrmap(AS_IO, &gammagic_state::gammagic_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); pcat_common(config); @@ -145,7 +145,6 @@ MACHINE_CONFIG_START(gammagic_state::gammagic) // MCFG_PCI_BUS_LEGACY_DEVICE(1, "i82371sb", i82371sb_pci_read, i82371sb_pci_write) /* video hardware */ pcvideo_vga(config); - MACHINE_CONFIG_END diff --git a/src/mame/drivers/gatron.cpp b/src/mame/drivers/gatron.cpp index 97b5a8cc363..78c4691b1c3 100644 --- a/src/mame/drivers/gatron.cpp +++ b/src/mame/drivers/gatron.cpp @@ -563,12 +563,12 @@ GFXDECODE_END * Machine Drivers * *************************/ -MACHINE_CONFIG_START(gatron_state::gat) - +void gatron_state::gat(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(gat_map) - MCFG_DEVICE_IO_MAP(gat_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &gatron_state::gat_map); + m_maincpu->set_addrmap(AS_IO, &gatron_state::gat_portmap); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -578,23 +578,22 @@ MACHINE_CONFIG_START(gatron_state::gat) ppi.out_pc_callback().set(FUNC(gatron_state::output_port_1_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(48*8, 16*16) - MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 16*16-1) - MCFG_SCREEN_UPDATE_DRIVER(gatron_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(48*8, 16*16); + screen.set_visarea(0*8, 48*8-1, 0*8, 16*16-1); + screen.set_screen_update(FUNC(gatron_state::screen_update)); + screen.set_palette("palette"); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, "palette", gfx_gat); - MCFG_PALETTE_ADD("palette", 8) + PALETTE(config, "palette").set_entries(8); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, MASTER_CLOCK/8 ) // Present in Bingo PCB. Clock need to be verified. - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.00) -MACHINE_CONFIG_END + SN76489(config, "snsnd", MASTER_CLOCK/8).add_route(ALL_OUTPUTS, "mono", 2.00); // Present in Bingo PCB. Clock need to be verified. +} /************************* diff --git a/src/mame/drivers/gberet.cpp b/src/mame/drivers/gberet.cpp index edb2755c1dd..c361e9e33af 100644 --- a/src/mame/drivers/gberet.cpp +++ b/src/mame/drivers/gberet.cpp @@ -408,11 +408,11 @@ MACHINE_RESET_MEMBER(gberet_state,gberet) m_spritebank = 0; } -MACHINE_CONFIG_START(gberet_state::gberet) - +void gberet_state::gberet(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/6) // X1S (generated by a custom IC) - MCFG_DEVICE_PROGRAM_MAP(gberet_map) + Z80(config, m_maincpu, XTAL(18'432'000)/6); // X1S (generated by a custom IC) + m_maincpu->set_addrmap(AS_PROGRAM, &gberet_state::gberet_map); TIMER(config, "scantimer").configure_scanline(FUNC(gberet_state::gberet_interrupt_tick), "screen", 0, 16); WATCHDOG_TIMER(config, "watchdog"); @@ -420,13 +420,13 @@ MACHINE_CONFIG_START(gberet_state::gberet) MCFG_MACHINE_RESET_OVERRIDE(gberet_state,gberet) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60.60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(gberet_state, screen_update_gberet) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60.60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(1*8, 31*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(gberet_state::screen_update_gberet)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gberet); PALETTE(config, m_palette, FUNC(gberet_state::gberet_palette), 2*16*16, 32); @@ -435,37 +435,36 @@ MACHINE_CONFIG_START(gberet_state::gberet) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489A, XTAL(18'432'000)/12) /* type verified on real and bootleg pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + SN76489A(config, m_sn, XTAL(18'432'000)/12).add_route(ALL_OUTPUTS, "mono", 1.0); /* type verified on real and bootleg pcb */ +} -MACHINE_CONFIG_START(gberet_state::mrgoemon) +void gberet_state::mrgoemon(machine_config &config) +{ gberet(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mrgoemon_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(gberet_state::gberetb) + m_maincpu->set_addrmap(AS_PROGRAM, &gberet_state::mrgoemon_map); +} +void gberet_state::gberetb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(20'000'000)/4) // divider guessed - MCFG_DEVICE_PROGRAM_MAP(gberetb_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gberet_state, irq0_line_assert) - MCFG_DEVICE_PERIODIC_INT_DRIVER(gberet_state, nmi_line_assert, XTAL(20'000'000)/0x8000) // divider guessed + Z80(config, m_maincpu, XTAL(20'000'000)/4); // divider guessed + m_maincpu->set_addrmap(AS_PROGRAM, &gberet_state::gberetb_map); + m_maincpu->set_vblank_int("screen", FUNC(gberet_state::irq0_line_assert)); + m_maincpu->set_periodic_int(FUNC(gberet_state::nmi_line_assert), attotime::from_hz(XTAL(20'000'000)/0x8000)); // divider guessed MCFG_MACHINE_START_OVERRIDE(gberet_state,gberet) MCFG_MACHINE_RESET_OVERRIDE(gberet_state,gberet) /* 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(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(gberet_state, screen_update_gberetb) - 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(1*8, 31*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(gberet_state::screen_update_gberetb)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gberetb); PALETTE(config, m_palette, FUNC(gberet_state::gberet_palette), 2*16*16, 32); @@ -474,9 +473,8 @@ MACHINE_CONFIG_START(gberet_state::gberetb) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489A, XTAL(20'000'000)/12) // divider guessed - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + SN76489A(config, m_sn, XTAL(20'000'000)/12).add_route(ALL_OUTPUTS, "mono", 1.0); // divider guessed +} /************************************* diff --git a/src/mame/drivers/gcpinbal.cpp b/src/mame/drivers/gcpinbal.cpp index 5d3b5821f3f..72ca5c21482 100644 --- a/src/mame/drivers/gcpinbal.cpp +++ b/src/mame/drivers/gcpinbal.cpp @@ -352,26 +352,26 @@ void gcpinbal_state::machine_reset() m_msm_bank = 0; } -MACHINE_CONFIG_START(gcpinbal_state::gcpinbal) - +void gcpinbal_state::gcpinbal(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 32_MHz_XTAL/2) /* 16 MHz */ - MCFG_DEVICE_PROGRAM_MAP(gcpinbal_map) + M68000(config, m_maincpu, 32_MHz_XTAL/2); /* 16 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &gcpinbal_state::gcpinbal_map); TIMER(config, "scantimer").configure_scanline(FUNC(gcpinbal_state::scanline_cb), "screen", 0, 1); EEPROM_93C46_16BIT(config, "eeprom"); - MCFG_DEVICE_ADD("watchdog", MB3773, 0) + MB3773(config, m_watchdog, 0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(gcpinbal_state, screen_update_gcpinbal) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */); + m_screen->set_size(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(gcpinbal_state::screen_update_gcpinbal)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gcpinbal); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 4096); @@ -381,8 +381,7 @@ MACHINE_CONFIG_START(gcpinbal_state::gcpinbal) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1.056_MHz_XTAL, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) + OKIM6295(config, m_oki, 1.056_MHz_XTAL, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.30); ES8712(config, m_essnd, 0); m_essnd->reset_handler().set_inputline("maincpu", 3); @@ -393,7 +392,7 @@ MACHINE_CONFIG_START(gcpinbal_state::gcpinbal) msm.vck_legacy_callback().set("essnd", FUNC(es8712_device::msm_int)); msm.set_prescaler_selector(msm6585_device::S40); /* 16 kHz */ msm.add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/geneve.cpp b/src/mame/drivers/geneve.cpp index f770fabe6aa..dac68a00d45 100644 --- a/src/mame/drivers/geneve.cpp +++ b/src/mame/drivers/geneve.cpp @@ -692,7 +692,8 @@ void geneve_state::machine_reset() m_joyport->write_port(0x01); // select Joystick 1 } -MACHINE_CONFIG_START(geneve_state::geneve) +void geneve_state::geneve(machine_config &config) +{ geneve_common(config); // Mapper @@ -704,9 +705,10 @@ MACHINE_CONFIG_START(geneve_state::geneve) m_peribox->inta_cb().set(FUNC(geneve_state::inta)); m_peribox->intb_cb().set(FUNC(geneve_state::intb)); m_peribox->ready_cb().set(FUNC(geneve_state::ext_ready)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(geneve_state::genmod) +void geneve_state::genmod(machine_config &config) +{ geneve_common(config); // Mapper @@ -718,9 +720,10 @@ MACHINE_CONFIG_START(geneve_state::genmod) m_peribox->inta_cb().set(FUNC(geneve_state::inta)); m_peribox->intb_cb().set(FUNC(geneve_state::intb)); m_peribox->ready_cb().set(FUNC(geneve_state::ext_ready)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(geneve_state::geneve_common) +void geneve_state::geneve_common(machine_config &config) +{ // basic machine hardware // TMS9995 CPU @ 12.0 MHz TMS9995(config, m_cpu, 12000000); @@ -783,7 +786,7 @@ MACHINE_CONFIG_START(geneve_state::geneve_common) // SRAM 384K (max; stock Geneve: 32K, but later MDOS releases require 64K) RAM(config, GENEVE_SRAM_TAG).set_default_size("384K").set_default_value(0); -MACHINE_CONFIG_END +} /* ROM loading diff --git a/src/mame/drivers/geniusiq.cpp b/src/mame/drivers/geniusiq.cpp index 8ba69defe57..ea3d83e356b 100644 --- a/src/mame/drivers/geniusiq.cpp +++ b/src/mame/drivers/geniusiq.cpp @@ -700,18 +700,18 @@ DEVICE_IMAGE_UNLOAD_MEMBER(geniusiq_state,iq128_cart) MACHINE_CONFIG_START(geniusiq_state::iq128) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(32'000'000)/2) // The main crystal is at 32MHz, not sure whats the CPU freq - MCFG_DEVICE_PROGRAM_MAP(geniusiq_mem) - MCFG_DEVICE_PERIODIC_INT_DRIVER(geniusiq_state, irq6_line_hold, 125) // the internal clock is increased by 1 sec every 125 interrupts + M68000(config, m_maincpu, XTAL(32'000'000)/2); // The main crystal is at 32MHz, not sure whats the CPU freq + m_maincpu->set_addrmap(AS_PROGRAM, &geniusiq_state::geniusiq_mem); + m_maincpu->set_periodic_int(FUNC(geniusiq_state::irq6_line_hold), attotime::from_hz(125)); // the internal clock is increased by 1 sec every 125 interrupts /* 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( geniusiq_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(512, 256); + screen.set_visarea_full(); + screen.set_screen_update(FUNC(geniusiq_state::screen_update)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(geniusiq_state::geniusiq_palette), 16); diff --git a/src/mame/drivers/ggconnie.cpp b/src/mame/drivers/ggconnie.cpp index 19bbaa6d757..fd0c82ef921 100644 --- a/src/mame/drivers/ggconnie.cpp +++ b/src/mame/drivers/ggconnie.cpp @@ -262,7 +262,8 @@ static INPUT_PORTS_START(smf) INPUT_PORTS_END -MACHINE_CONFIG_START(ggconnie_state::ggconnie) +void ggconnie_state::ggconnie(machine_config &config) +{ /* basic machine hardware */ H6280(config, m_maincpu, PCE_MAIN_CLOCK/3); m_maincpu->set_addrmap(AS_PROGRAM, &ggconnie_state::sgx_mem); @@ -273,10 +274,10 @@ MACHINE_CONFIG_START(ggconnie_state::ggconnie) m_maincpu->add_route(1, "rspeaker", 1.00); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/3, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242) - MCFG_SCREEN_UPDATE_DRIVER( ggconnie_state, screen_update ) - MCFG_SCREEN_PALETTE("huc6260") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(PCE_MAIN_CLOCK/3, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242); + screen.set_screen_update(FUNC(ggconnie_state::screen_update)); + screen.set_palette(m_huc6260); HUC6260(config, m_huc6260, PCE_MAIN_CLOCK/3); m_huc6260->next_pixel_data().set("huc6202", FUNC(huc6202_device::next_pixel)); @@ -311,10 +312,10 @@ MACHINE_CONFIG_START(ggconnie_state::ggconnie) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("oki", OKIM6295, PCE_MAIN_CLOCK/12, okim6295_device::PIN7_HIGH) /* unknown clock / pin 7 */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.00) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.00) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, PCE_MAIN_CLOCK/12, okim6295_device::PIN7_HIGH); /* unknown clock / pin 7 */ + m_oki->add_route(ALL_OUTPUTS, "lspeaker", 1.00); + m_oki->add_route(ALL_OUTPUTS, "rspeaker", 1.00); +} ROM_START(ggconnie) ROM_REGION( 0x180000, "maincpu", 0 ) diff --git a/src/mame/drivers/giclassic.cpp b/src/mame/drivers/giclassic.cpp index 0e06edbaa0b..7e0c2a7377e 100644 --- a/src/mame/drivers/giclassic.cpp +++ b/src/mame/drivers/giclassic.cpp @@ -295,21 +295,21 @@ void giclassicsvr_state::machine_reset() { } -MACHINE_CONFIG_START(giclassic_state::giclassic) - +void giclassic_state::giclassic(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(20'000'000) / 2) // PCB is marked "68000 12 MHz", but only visible osc is 20 MHz - MCFG_DEVICE_PROGRAM_MAP(satellite_main) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", giclassic_state, giclassic_interrupt) + M68000(config, m_maincpu, XTAL(20'000'000) / 2); // PCB is marked "68000 12 MHz", but only visible osc is 20 MHz + m_maincpu->set_addrmap(AS_PROGRAM, &giclassic_state::satellite_main); + m_maincpu->set_vblank_int("screen", FUNC(giclassic_state::giclassic_interrupt)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.62) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(600, 384) - MCFG_SCREEN_VISIBLE_AREA(0, 599, 0, 383) - MCFG_SCREEN_UPDATE_DRIVER(giclassic_state, screen_update_giclassic) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.62); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(600, 384); + screen.set_visarea_full(); + screen.set_screen_update(FUNC(giclassic_state::screen_update_giclassic)); + screen.set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 256); m_palette->enable_shadows(); @@ -318,23 +318,22 @@ MACHINE_CONFIG_START(giclassic_state::giclassic) m_k056832->set_tile_callback(FUNC(giclassic_state::tile_callback), this); m_k056832->set_config("gfx1", K056832_BPP_4PIRATESH, 1, 0); m_k056832->set_palette(m_palette); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(giclassicsvr_state::giclassvr) +} +void giclassicsvr_state::giclassvr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)) // unknown speed - MCFG_DEVICE_PROGRAM_MAP(server_main) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", giclassicsvr_state, giclassicsvr_interrupt) + M68000(config, m_maincpu, XTAL(16'000'000)); // unknown speed + m_maincpu->set_addrmap(AS_PROGRAM, &giclassicsvr_state::server_main); + m_maincpu->set_vblank_int("screen", FUNC(giclassicsvr_state::giclassicsvr_interrupt)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.62) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(600, 384) - MCFG_SCREEN_VISIBLE_AREA(0, 599, 0, 383) - MCFG_SCREEN_UPDATE_DRIVER(giclassicsvr_state, screen_update_giclassicsvr) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.62); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_visarea_full(); + screen.set_screen_update(FUNC(giclassicsvr_state::screen_update_giclassicsvr)); + screen.set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 16384); m_palette->enable_shadows(); @@ -351,7 +350,7 @@ MACHINE_CONFIG_START(giclassicsvr_state::giclassvr) K053252(config, "k053252a", XTAL(32'000'000)/4).set_offsets(40, 16); // TODO K053252(config, "k053252b", XTAL(32'000'000)/4).set_offsets(40, 16); // TODO -MACHINE_CONFIG_END +} ROM_START( giclasex ) ROM_REGION( 0x80000, "maincpu", 0 ) /* main program */ diff --git a/src/mame/drivers/ginganin.cpp b/src/mame/drivers/ginganin.cpp index fdd8138d393..6e41e76af36 100644 --- a/src/mame/drivers/ginganin.cpp +++ b/src/mame/drivers/ginganin.cpp @@ -245,15 +245,15 @@ WRITE_LINE_MEMBER(ginganin_state::ptm_irq) } -MACHINE_CONFIG_START(ginganin_state::ginganin) - +void ginganin_state::ginganin(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, MAIN_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(ginganin_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", ginganin_state, irq1_line_hold) /* ? (vectors 1-7 cointain the same address) */ + M68000(config, m_maincpu, MAIN_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &ginganin_state::ginganin_map); + m_maincpu->set_vblank_int("screen", FUNC(ginganin_state::irq1_line_hold)); /* ? (vectors 1-7 contain the same address) */ - MCFG_DEVICE_ADD("audiocpu", MC6809, SOUND_CLOCK) // MBL68B09? - MCFG_DEVICE_PROGRAM_MAP(sound_map) + MC6809(config, m_audiocpu, SOUND_CLOCK); // MBL68B09? + m_audiocpu->set_addrmap(AS_PROGRAM, &ginganin_state::sound_map); ptm6840_device &ptm(PTM6840(config, "6840ptm", SOUND_CLOCK/2)); @@ -261,13 +261,13 @@ MACHINE_CONFIG_START(ginganin_state::ginganin) ptm.o1_callback().set(FUNC(ginganin_state::ptm_irq)); /* 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, 255, 0 + 16 , 255 - 16) - MCFG_SCREEN_UPDATE_DRIVER(ginganin_state, screen_update_ginganin) - 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(256, 256); + screen.set_visarea(0, 255, 0 + 16 , 255 - 16); + screen.set_screen_update(FUNC(ginganin_state::screen_update_ginganin)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ginganin); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 1024); @@ -279,9 +279,8 @@ MACHINE_CONFIG_START(ginganin_state::ginganin) YM2149(config, "psg", SOUND_CLOCK / 2).add_route(ALL_OUTPUTS, "mono", 0.10); - MCFG_DEVICE_ADD("ymsnd", Y8950, SOUND_CLOCK) /* The Y8950 is basically a YM3526 with ADPCM built in */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + Y8950(config, "ymsnd", SOUND_CLOCK).add_route(ALL_OUTPUTS, "mono", 1.0); /* The Y8950 is basically a YM3526 with ADPCM built in */ +} diff --git a/src/mame/drivers/gizmondo.cpp b/src/mame/drivers/gizmondo.cpp index 744d9f54e1e..4a2d253795c 100644 --- a/src/mame/drivers/gizmondo.cpp +++ b/src/mame/drivers/gizmondo.cpp @@ -189,18 +189,19 @@ void gizmondo_state::init_gizmondo() // do nothing } -MACHINE_CONFIG_START(gizmondo_state::gizmondo) - MCFG_DEVICE_ADD("maincpu", ARM9, 40000000) - MCFG_DEVICE_PROGRAM_MAP(gizmondo_map) +void gizmondo_state::gizmondo(machine_config &config) +{ + ARM9(config, m_maincpu, 40000000); + m_maincpu->set_addrmap(AS_PROGRAM, &gizmondo_state::gizmondo_map); - MCFG_PALETTE_ADD("palette", 32768) + PALETTE(config, "palette").set_entries(32768); - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(320, 240) - MCFG_SCREEN_VISIBLE_AREA(0, 320 - 1, 0, 240 - 1) - MCFG_SCREEN_UPDATE_DEVICE("gf4500", gf4500_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(320, 240); + screen.set_visarea_full(); + screen.set_screen_update("gf4500", FUNC(gf4500_device::screen_update)); GF4500(config, m_gf4500, 0); @@ -215,7 +216,7 @@ MACHINE_CONFIG_START(gizmondo_state::gizmondo) #if 0 MCFG_QUICKLOAD_ADD("quickload", gizmondo_state, wince, "bin", 0) #endif -MACHINE_CONFIG_END +} static INPUT_PORTS_START( gizmondo ) PORT_START( "PORTF-01" ) diff --git a/src/mame/drivers/gkigt.cpp b/src/mame/drivers/gkigt.cpp index 44254b69912..4d5a4c41046 100644 --- a/src/mame/drivers/gkigt.cpp +++ b/src/mame/drivers/gkigt.cpp @@ -607,11 +607,11 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 ) DEVICE_INPUT_DEFAULTS_END -MACHINE_CONFIG_START(igt_gameking_state::igt_gameking) - +void igt_gameking_state::igt_gameking(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I960, XTAL(24'000'000)) - MCFG_DEVICE_PROGRAM_MAP(igt_gameking_map) + I960(config, m_maincpu, XTAL(24'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &igt_gameking_state::igt_gameking_map); SC28C94(config, m_quart1, XTAL(24'000'000) / 6); m_quart1->d_tx_cb().set("diag", FUNC(rs232_port_device::write_txd)); @@ -625,17 +625,17 @@ MACHINE_CONFIG_START(igt_gameking_state::igt_gameking) GFXDECODE(config, "gfxdecode", m_palette, gfx_igt_gameking); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(1024, 512) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(igt_gameking_state, screen_update_igt_gameking) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, igt_gameking_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(1024, 512); + m_screen->set_visarea(0, 640-1, 0, 480-1); + m_screen->set_screen_update(FUNC(igt_gameking_state::screen_update_igt_gameking)); + m_screen->set_palette(m_palette); + m_screen->screen_vblank().set(FUNC(igt_gameking_state::vblank_irq)); // Xilinx used as video chip XTAL(26'666'666) on board - MCFG_PALETTE_ADD("palette", 0x100) + PALETTE(config, m_palette).set_entries(0x100); ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, m_palette)); ramdac.set_addrmap(0, &igt_gameking_state::ramdac_map); @@ -643,17 +643,16 @@ MACHINE_CONFIG_START(igt_gameking_state::igt_gameking) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(16'934'400)) // enhanced sound on optional Media-Lite sub board - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + YMZ280B(config, "ymz", XTAL(16'934'400)).add_route(ALL_OUTPUTS, "mono", 1.0); // enhanced sound on optional Media-Lite sub board NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(igt_gameking_state::igt_ms72c) +void igt_gameking_state::igt_ms72c(machine_config &config) +{ igt_gameking(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(igt_ms72c_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &igt_gameking_state::igt_ms72c_map); +} ROM_START( ms3 ) ROM_REGION( 0x80000, "maincpu", 0 ) diff --git a/src/mame/drivers/glasgow.cpp b/src/mame/drivers/glasgow.cpp index 9c2dfd42a71..a8ff923dd62 100644 --- a/src/mame/drivers/glasgow.cpp +++ b/src/mame/drivers/glasgow.cpp @@ -311,10 +311,11 @@ static INPUT_PORTS_START( old_keyboard ) //Glasgow,Dallas INPUT_PORTS_END -MACHINE_CONFIG_START(glasgow_state::glasgow) +void glasgow_state::glasgow(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(glasgow_mem) + M68000(config, m_maincpu, 12_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &glasgow_state::glasgow_mem); MEPHISTO_SENSORS_BOARD(config, m_board, 0); @@ -322,30 +323,30 @@ MACHINE_CONFIG_START(glasgow_state::glasgow) config.set_default_layout(layout_glasgow); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, 44) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + BEEP(config, m_beep, 44).add_route(ALL_OUTPUTS, "mono", 0.50); TIMER(config, "nmi_timer").configure_periodic(FUNC(glasgow_state::update_nmi), attotime::from_hz(50)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(amsterd_state::amsterd) +void amsterd_state::amsterd(machine_config &config) +{ glasgow(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(amsterd_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &amsterd_state::amsterd_mem); +} -MACHINE_CONFIG_START(amsterd_state::dallas32) +void amsterd_state::dallas32(machine_config &config) +{ glasgow(config); /* basic machine hardware */ - MCFG_DEVICE_REPLACE("maincpu", M68020, 14_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(dallas32_mem) + M68020(config.replace(), m_maincpu, 14_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &amsterd_state::dallas32_mem); config.device_remove("nmi_timer"); TIMER(config, "nmi_timer").configure_periodic(FUNC(amsterd_state::update_nmi32), attotime::from_hz(50)); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/glass.cpp b/src/mame/drivers/glass.cpp index ebc754251c2..1c4b85ea17f 100644 --- a/src/mame/drivers/glass.cpp +++ b/src/mame/drivers/glass.cpp @@ -220,12 +220,12 @@ void glass_state::machine_reset() m_blitter_command = 0; } -MACHINE_CONFIG_START(glass_state::glass) - +void glass_state::glass(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* 12 MHz verified on PCB */ - MCFG_DEVICE_PROGRAM_MAP(glass_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", glass_state, interrupt) + M68000(config, m_maincpu, XTAL(24'000'000)/2); /* 12 MHz verified on PCB */ + m_maincpu->set_addrmap(AS_PROGRAM, &glass_state::glass_map); + m_maincpu->set_vblank_int("screen", FUNC(glass_state::interrupt)); LS259(config, m_outlatch); m_outlatch->q_out_cb<0>().set(FUNC(glass_state::coin1_lockout_w)); @@ -235,13 +235,13 @@ MACHINE_CONFIG_START(glass_state::glass) m_outlatch->q_out_cb<4>().set_nop(); // Sound Muting (if bit 0 == 1, sound output stream = 0) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 368-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(glass_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(2500) /* not accurate */); + screen.set_size(32*16, 32*16); + screen.set_visarea(0, 368-1, 16, 256-1); + screen.set_screen_update(FUNC(glass_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_glass); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 1024); @@ -249,16 +249,17 @@ MACHINE_CONFIG_START(glass_state::glass) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* 1MHz Resonator & pin 7 high verified on PCB */ - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", XTAL(1'000'000), okim6295_device::PIN7_HIGH)); /* 1MHz Resonator & pin 7 high verified on PCB */ + oki.set_addrmap(0, &glass_state::oki_map); + oki.add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_START(glass_state::glass_ds5002fp) +void glass_state::glass_ds5002fp(machine_config &config) +{ glass(config); - MCFG_DEVICE_ADD("gaelco_ds5002fp", GAELCO_DS5002FP, XTAL(24'000'000) / 2) /* verified on pcb */ - MCFG_DEVICE_ADDRESS_MAP(0, mcu_hostmem_map) -MACHINE_CONFIG_END + gaelco_ds5002fp_device &ds5002fp(GAELCO_DS5002FP(config, "gaelco_ds5002fp", XTAL(24'000'000) / 2)); /* verified on pcb */ + ds5002fp.set_addrmap(0, &glass_state::mcu_hostmem_map); +} ROM_START( glass ) /* Version 1.1 */ ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 code */ diff --git a/src/mame/drivers/globalvr.cpp b/src/mame/drivers/globalvr.cpp index a85b4201d3f..0e969bcd8b5 100644 --- a/src/mame/drivers/globalvr.cpp +++ b/src/mame/drivers/globalvr.cpp @@ -87,11 +87,12 @@ static INPUT_PORTS_START( globalvr ) INPUT_PORTS_END -MACHINE_CONFIG_START(globalvr_state::globalvr) +void globalvr_state::globalvr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", PENTIUM, 100000000) /* ? MHz */ - MCFG_DEVICE_PROGRAM_MAP(globalvr_map) -MACHINE_CONFIG_END + PENTIUM(config, m_maincpu, 100000000); /* ? MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &globalvr_state::globalvr_map); +} ROM_START( hyperv2 ) diff --git a/src/mame/drivers/gluck2.cpp b/src/mame/drivers/gluck2.cpp index 639f0c00609..f595c168bd8 100644 --- a/src/mame/drivers/gluck2.cpp +++ b/src/mame/drivers/gluck2.cpp @@ -484,26 +484,26 @@ GFXDECODE_END * Machine Drivers * *********************************************/ -MACHINE_CONFIG_START(gluck2_state::gluck2) - +void gluck2_state::gluck2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, MASTER_CLOCK/16) /* guess */ - MCFG_DEVICE_PROGRAM_MAP(gluck2_map) + M6502(config, m_maincpu, MASTER_CLOCK/16); /* guess */ + m_maincpu->set_addrmap(AS_PROGRAM, &gluck2_state::gluck2_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)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* CRTC Register: 00 01 02 03 04 05 06 CRTC Value : 0x27 0x20 0x23 0x03 0x26 0x00 0x20 */ - MCFG_SCREEN_SIZE((39+1)*8, (38+1)*8) /* from MC6845 init, registers 00 & 04. (value - 1) */ - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) /* from MC6845 init, registers 01 & 06. */ - MCFG_SCREEN_UPDATE_DRIVER(gluck2_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen.set_size((39+1)*8, (38+1)*8); /* from MC6845 init, registers 00 & 04. (value - 1) */ + screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); /* from MC6845 init, registers 01 & 06. */ + screen.set_screen_update(FUNC(gluck2_state::screen_update)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_gluck2); PALETTE(config, "palette", palette_device::RGB_444_PROMS, "proms", 256); @@ -525,10 +525,8 @@ MACHINE_CONFIG_START(gluck2_state::gluck2) */ ay8910.add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("ymsnd", YM2413, SND_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - -MACHINE_CONFIG_END + YM2413(config, "ymsnd", SND_CLOCK).add_route(ALL_OUTPUTS, "mono", 1.0); +} /********************************************* diff --git a/src/mame/drivers/gng.cpp b/src/mame/drivers/gng.cpp index 8793081b753..7c013a48f85 100644 --- a/src/mame/drivers/gng.cpp +++ b/src/mame/drivers/gng.cpp @@ -378,16 +378,16 @@ void gng_state::machine_reset() } } -MACHINE_CONFIG_START(gng_state::gng) - +void gng_state::gng(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809, XTAL(12'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(gng_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gng_state, irq0_line_hold) + MC6809(config, m_maincpu, XTAL(12'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &gng_state::gng_map); + m_maincpu->set_vblank_int("screen", FUNC(gng_state::irq0_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(12'000'000)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(gng_state, irq0_line_hold, 4*60) + z80_device &audiocpu(Z80(config, "audiocpu", XTAL(12'000'000)/4)); /* verified on pcb */ + audiocpu.set_addrmap(AS_PROGRAM, &gng_state::sound_map); + audiocpu.set_periodic_int(FUNC(gng_state::irq0_line_hold), attotime::from_hz(4*60)); ls259_device &mainlatch(LS259(config, "mainlatch")); // 9B on A board mainlatch.q_out_cb<0>().set(FUNC(gng_state::flipscreen_w)); @@ -399,14 +399,14 @@ MACHINE_CONFIG_START(gng_state::gng) /* video hardware */ BUFFERED_SPRITERAM8(config, m_spriteram); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.59) /* verified on pcb */ - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(gng_state, screen_update_gng) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram8_device, vblank_copy_rising)) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.59); /* verified on pcb */ + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(gng_state::screen_update_gng)); + screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram8_device::vblank_copy_rising)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gng); @@ -417,26 +417,26 @@ MACHINE_CONFIG_START(gng_state::gng) GENERIC_LATCH_8(config, "soundlatch"); - MCFG_DEVICE_ADD("ym1", YM2203, XTAL(12'000'000)/8) /* verified on pcb */ - MCFG_SOUND_ROUTE(0, "mono", 0.40) - MCFG_SOUND_ROUTE(1, "mono", 0.40) - MCFG_SOUND_ROUTE(2, "mono", 0.40) - MCFG_SOUND_ROUTE(3, "mono", 0.20) - - MCFG_DEVICE_ADD("ym2", YM2203, XTAL(12'000'000)/8) /* verified on pcb */ - MCFG_SOUND_ROUTE(0, "mono", 0.40) - MCFG_SOUND_ROUTE(1, "mono", 0.40) - MCFG_SOUND_ROUTE(2, "mono", 0.40) - MCFG_SOUND_ROUTE(3, "mono", 0.20) -MACHINE_CONFIG_END + YM2203(config, m_ym[0], XTAL(12'000'000)/8); /* verified on pcb */ + m_ym[0]->add_route(0, "mono", 0.40); + m_ym[0]->add_route(1, "mono", 0.40); + m_ym[0]->add_route(2, "mono", 0.40); + m_ym[0]->add_route(3, "mono", 0.20); + + YM2203(config, m_ym[1], XTAL(12'000'000)/8); /* verified on pcb */ + m_ym[1]->add_route(0, "mono", 0.40); + m_ym[1]->add_route(1, "mono", 0.40); + m_ym[1]->add_route(2, "mono", 0.40); + m_ym[1]->add_route(3, "mono", 0.20); +} -MACHINE_CONFIG_START(gng_state::diamond) +void gng_state::diamond(machine_config &config) +{ gng(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(diamond_map) + m_maincpu->set_addrmap(AS_PROGRAM, &gng_state::diamond_map); config.device_remove("mainlatch"); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/go2000.cpp b/src/mame/drivers/go2000.cpp index b58634e9691..a841c6a9f03 100644 --- a/src/mame/drivers/go2000.cpp +++ b/src/mame/drivers/go2000.cpp @@ -344,26 +344,26 @@ void go2000_state::machine_start() } -MACHINE_CONFIG_START(go2000_state::go2000) - - MCFG_DEVICE_ADD("maincpu", M68000, 10000000) - MCFG_DEVICE_PROGRAM_MAP(go2000_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", go2000_state, irq1_line_hold) +void go2000_state::go2000(machine_config &config) +{ + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &go2000_state::go2000_map); + m_maincpu->set_vblank_int("screen", FUNC(go2000_state::irq1_line_hold)); - MCFG_DEVICE_ADD("soundcpu", Z80, 4000000) - MCFG_DEVICE_PROGRAM_MAP(go2000_sound_map) - MCFG_DEVICE_IO_MAP(go2000_sound_io) + Z80(config, m_soundcpu, 4000000); + m_soundcpu->set_addrmap(AS_PROGRAM, &go2000_state::go2000_sound_map); + m_soundcpu->set_addrmap(AS_IO, &go2000_state::go2000_sound_io); GFXDECODE(config, m_gfxdecode, m_palette, gfx_go2000); - 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, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(go2000_state, screen_update_go2000) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(64*8, 32*8); + m_screen->set_visarea(0*8, 48*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(go2000_state::screen_update_go2000)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x800); @@ -375,7 +375,7 @@ MACHINE_CONFIG_START(go2000_state::go2000) 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( go2000 ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ diff --git a/src/mame/drivers/goindol.cpp b/src/mame/drivers/goindol.cpp index 9d6a9eac269..0e80a2e447f 100644 --- a/src/mame/drivers/goindol.cpp +++ b/src/mame/drivers/goindol.cpp @@ -235,26 +235,25 @@ void goindol_state::machine_reset() m_prot_toggle = 0; } -MACHINE_CONFIG_START(goindol_state::goindol) - +void goindol_state::goindol(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) /* XTAL confirmed, divisor is not */ - MCFG_DEVICE_PROGRAM_MAP(goindol_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", goindol_state, irq0_line_hold) - - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(12'000'000)/2) /* XTAL confirmed, divisor is not */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(goindol_state, irq0_line_hold, 4*60) + Z80(config, m_maincpu, XTAL(12'000'000)/2); /* XTAL confirmed, divisor is not */ + m_maincpu->set_addrmap(AS_PROGRAM, &goindol_state::goindol_map); + m_maincpu->set_vblank_int("screen", FUNC(goindol_state::irq0_line_hold)); + z80_device &audiocpu(Z80(config, "audiocpu", XTAL(12'000'000)/2)); /* XTAL confirmed, divisor is not */ + audiocpu.set_addrmap(AS_PROGRAM, &goindol_state::sound_map); + audiocpu.set_periodic_int(FUNC(goindol_state::irq0_line_hold), attotime::from_hz(4*60)); /* 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(goindol_state, screen_update_goindol) - 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(goindol_state::screen_update_goindol)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_goindol); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256); @@ -264,9 +263,8 @@ MACHINE_CONFIG_START(goindol_state::goindol) GENERIC_LATCH_8(config, "soundlatch"); - MCFG_DEVICE_ADD("ymsnd", YM2203, XTAL(12'000'000)/8) /* Confirmed pitch from recording */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + YM2203(config, "ymsnd", XTAL(12'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); /* Confirmed pitch from recording */ +} diff --git a/src/mame/drivers/gokidetor.cpp b/src/mame/drivers/gokidetor.cpp index 2ed9b01c8a9..a1683cda21c 100644 --- a/src/mame/drivers/gokidetor.cpp +++ b/src/mame/drivers/gokidetor.cpp @@ -121,9 +121,10 @@ void gokidetor_state::sound_map(address_map &map) } -MACHINE_CONFIG_START(gokidetor_state::gokidetor) - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(16'000'000) / 4) // divider not verified - MCFG_DEVICE_PROGRAM_MAP(main_map) +void gokidetor_state::gokidetor(machine_config &config) +{ + Z80(config, m_maincpu, XTAL(16'000'000) / 4); // divider not verified + m_maincpu->set_addrmap(AS_PROGRAM, &gokidetor_state::main_map); // IRQ from ??? // NMI related to E002 input and TE7750 port 7 @@ -140,8 +141,8 @@ MACHINE_CONFIG_START(gokidetor_state::gokidetor) te7750.out_port8_cb().set(FUNC(gokidetor_state::out8_w)); te7750.out_port9_cb().set(FUNC(gokidetor_state::out9_w)); - MCFG_DEVICE_ADD("soundcpu", Z80, 4000000) - MCFG_DEVICE_PROGRAM_MAP(sound_map) + z80_device &soundcpu(Z80(config, "soundcpu", 4000000)); + soundcpu.set_addrmap(AS_PROGRAM, &gokidetor_state::sound_map); pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu); @@ -157,9 +158,8 @@ MACHINE_CONFIG_START(gokidetor_state::gokidetor) ymsnd.add_route(2, "mono", 0.25); ymsnd.add_route(3, "mono", 0.80); - MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_CONFIG_END + OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50); // clock frequency & pin 7 not verified +} INPUT_PORTS_START( gokidetor ) PORT_START("IN1") diff --git a/src/mame/drivers/goldnpkr.cpp b/src/mame/drivers/goldnpkr.cpp index c378186484f..2c1cf7f9dcd 100644 --- a/src/mame/drivers/goldnpkr.cpp +++ b/src/mame/drivers/goldnpkr.cpp @@ -1303,9 +1303,9 @@ public: m_pia(*this, "pia%u", 0U), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette"), + m_discrete(*this, "discrete"), m_videoram(*this, "videoram"), m_colorram(*this, "colorram"), - m_discrete(*this, "discrete"), m_ay8910(*this, "ay8910"), m_lamps(*this, "lamp%u", 0U) { } @@ -1366,6 +1366,7 @@ protected: required_device_array<pia6821_device, 2> m_pia; required_device<gfxdecode_device> m_gfxdecode; required_device<palette_device> m_palette; + optional_device<discrete_device> m_discrete; private: DECLARE_READ8_MEMBER(goldnpkr_mux_port_r); @@ -1403,7 +1404,6 @@ private: required_shared_ptr<uint8_t> m_videoram; required_shared_ptr<uint8_t> m_colorram; - optional_device<discrete_device> m_discrete; optional_device<ay8910_device> m_ay8910; output_finder<5> m_lamps; @@ -4653,11 +4653,11 @@ static INPUT_PORTS_START( megadpkr ) INPUT_PORTS_END -MACHINE_CONFIG_START(blitz_state::megadpkr) - +void blitz_state::megadpkr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(megadpkr_map) + M6502(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &blitz_state::megadpkr_map); ADDRESS_MAP_BANK(config, "bankdev").set_map(&blitz_state::megadpkr_banked_map).set_data_width(8).set_addr_width(16).set_stride(0x4000); @@ -4677,13 +4677,13 @@ MACHINE_CONFIG_START(blitz_state::megadpkr) m_pia[1]->writepb_handler().set(FUNC(goldnpkr_state::mux_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE((32)*8, (32)*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldnpkr_state, screen_update_goldnpkr) - 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_full(); + screen.set_screen_update(FUNC(goldnpkr_state::screen_update_goldnpkr)); + screen.set_palette(m_palette); mc6845_device &crtc(MC6845(config, "crtc", CPU_CLOCK)); crtc.set_screen("screen"); @@ -4696,9 +4696,8 @@ MACHINE_CONFIG_START(blitz_state::megadpkr) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("discrete", DISCRETE, goldnpkr_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + DISCRETE(config, m_discrete, goldnpkr_discrete).add_route(ALL_OUTPUTS, "mono", 1.0); +} /********************************************* diff --git a/src/mame/drivers/gomoku.cpp b/src/mame/drivers/gomoku.cpp index 43ef834bdfc..cccd0fedd64 100644 --- a/src/mame/drivers/gomoku.cpp +++ b/src/mame/drivers/gomoku.cpp @@ -122,11 +122,12 @@ static GFXDECODE_START( gfx_gomoku ) GFXDECODE_END -MACHINE_CONFIG_START(gomoku_state::gomoku) +void gomoku_state::gomoku(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/12) /* 1.536 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(gomoku_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gomoku_state, irq0_line_hold) + Z80(config, m_maincpu, XTAL(18'432'000)/12); /* 1.536 MHz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &gomoku_state::gomoku_map); + m_maincpu->set_vblank_int("screen", FUNC(gomoku_state::irq0_line_hold)); ls259_device &latch(LS259(config, "latch")); // 7J latch.q_out_cb<1>().set(FUNC(gomoku_state::flipscreen_w)); @@ -134,13 +135,13 @@ MACHINE_CONFIG_START(gomoku_state::gomoku) latch.q_out_cb<7>().set_nop(); // start LED? /* 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(gomoku_state, screen_update_gomoku) - 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, 256-16-1); + m_screen->set_screen_update(FUNC(gomoku_state::screen_update_gomoku)); + m_screen->set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_gomoku); PALETTE(config, "palette", FUNC(gomoku_state::gomoku_palette), 64); @@ -148,9 +149,8 @@ MACHINE_CONFIG_START(gomoku_state::gomoku) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("gomoku", GOMOKU_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + GOMOKU_SOUND(config, "gomoku").add_route(ALL_OUTPUTS, "mono", 1.0); +} ROM_START( gomoku ) diff --git a/src/mame/drivers/good.cpp b/src/mame/drivers/good.cpp index 0c34bc2de21..3de57828b26 100644 --- a/src/mame/drivers/good.cpp +++ b/src/mame/drivers/good.cpp @@ -291,31 +291,31 @@ static GFXDECODE_START( gfx_good ) GFXDECODE_END -MACHINE_CONFIG_START(good_state::good) - - MCFG_DEVICE_ADD("maincpu", M68000, 16000000 /2) - MCFG_DEVICE_PROGRAM_MAP(good_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", good_state, irq2_line_hold) +void good_state::good(machine_config &config) +{ + M68000(config, m_maincpu, 16000000 /2); + m_maincpu->set_addrmap(AS_PROGRAM, &good_state::good_map); + m_maincpu->set_vblank_int("screen", FUNC(good_state::irq2_line_hold)); GFXDECODE(config, m_gfxdecode, "palette", gfx_good); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(1*16, 23*16-1, 0*16, 14*16-1) - MCFG_SCREEN_UPDATE_DRIVER(good_state, screen_update_good) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*16, 32*16); + screen.set_visarea(1*16, 23*16-1, 0*16, 14*16-1); + screen.set_screen_update(FUNC(good_state::screen_update_good)); + screen.set_palette("palette"); PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x400); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, 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) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified + oki.add_route(ALL_OUTPUTS, "lspeaker", 0.47); + oki.add_route(ALL_OUTPUTS, "rspeaker", 0.47); +} ROM_START( good ) diff --git a/src/mame/drivers/gotcha.cpp b/src/mame/drivers/gotcha.cpp index 2cee4b21a25..5c53762d266 100644 --- a/src/mame/drivers/gotcha.cpp +++ b/src/mame/drivers/gotcha.cpp @@ -260,14 +260,14 @@ void gotcha_state::machine_reset() m_banksel = 0; } -MACHINE_CONFIG_START(gotcha_state::gotcha) - +void gotcha_state::gotcha(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14.318181_MHz_XTAL) /* 14.31818 MHz */ - MCFG_DEVICE_PROGRAM_MAP(gotcha_map) + M68000(config, m_maincpu, 14.318181_MHz_XTAL); /* 14.31818 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &gotcha_state::gotcha_map); - MCFG_DEVICE_ADD("audiocpu", Z80, 6_MHz_XTAL) /* 6 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, 6_MHz_XTAL); /* 6 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &gotcha_state::sound_map); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -299,9 +299,8 @@ MACHINE_CONFIG_START(gotcha_state::gotcha) ymsnd.add_route(0, "mono", 0.80); ymsnd.add_route(1, "mono", 0.80); - MCFG_DEVICE_ADD("oki", OKIM6295, 1_MHz_XTAL, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 1_MHz_XTAL, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.60); +} diff --git a/src/mame/drivers/gp2x.cpp b/src/mame/drivers/gp2x.cpp index d92c64215f7..5e9c92722ad 100644 --- a/src/mame/drivers/gp2x.cpp +++ b/src/mame/drivers/gp2x.cpp @@ -362,22 +362,23 @@ void gp2x_state::gp2x_map(address_map &map) static INPUT_PORTS_START( gp2x ) INPUT_PORTS_END -MACHINE_CONFIG_START(gp2x_state::gp2x) - MCFG_DEVICE_ADD("maincpu", ARM9, 80000000) - MCFG_DEVICE_PROGRAM_MAP(gp2x_map) +void gp2x_state::gp2x(machine_config &config) +{ + ARM9(config, m_maincpu, 80000000); + m_maincpu->set_addrmap(AS_PROGRAM, &gp2x_state::gp2x_map); - MCFG_PALETTE_ADD("palette", 32768) + PALETTE(config, "palette").set_entries(32768); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(320, 240) - MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_DRIVER(gp2x_state, screen_update_gp2x) + 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(320, 240); + screen.set_visarea(0, 319, 0, 239); + screen.set_screen_update(FUNC(gp2x_state::screen_update_gp2x)); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); -MACHINE_CONFIG_END +} ROM_START(gp2x) ROM_REGION( 0x600000, "maincpu", 0 ) // contents of NAND flash diff --git a/src/mame/drivers/gpworld.cpp b/src/mame/drivers/gpworld.cpp index 8b25ace2dd7..c1aa1838129 100644 --- a/src/mame/drivers/gpworld.cpp +++ b/src/mame/drivers/gpworld.cpp @@ -500,29 +500,27 @@ GFXDECODE_END MACHINE_CONFIG_START(gpworld_state::gpworld) /* main cpu */ - MCFG_DEVICE_ADD("maincpu", Z80, GUESSED_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(mainmem) - MCFG_DEVICE_IO_MAP(mainport) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gpworld_state, vblank_callback) + Z80(config, m_maincpu, GUESSED_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &gpworld_state::mainmem); + m_maincpu->set_addrmap(AS_IO, &gpworld_state::mainport); + m_maincpu->set_vblank_int("screen", FUNC(gpworld_state::vblank_callback)); - MCFG_LASERDISC_LDV1000_ADD("laserdisc") - MCFG_LASERDISC_OVERLAY_DRIVER(512, 256, gpworld_state, screen_update) - MCFG_LASERDISC_OVERLAY_PALETTE("palette") + PIONEER_LDV1000(config, m_laserdisc, 0); + m_laserdisc->set_overlay(512, 256, FUNC(gpworld_state::screen_update)); + m_laserdisc->set_overlay_palette(m_palette); + m_laserdisc->add_route(0, "lspeaker", 1.0); + m_laserdisc->add_route(1, "rspeaker", 1.0); /* video hardware */ MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") GFXDECODE(config, m_gfxdecode, m_palette, gfx_gpworld); - MCFG_PALETTE_ADD("palette", 1024) + PALETTE(config, m_palette).set_entries(1024); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - - MCFG_DEVICE_MODIFY("laserdisc") - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/grchamp.cpp b/src/mame/drivers/grchamp.cpp index 038cab85759..f81460c0491 100644 --- a/src/mame/drivers/grchamp.cpp +++ b/src/mame/drivers/grchamp.cpp @@ -735,25 +735,25 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(grchamp_state::grchamp) - +void grchamp_state::grchamp(machine_config &config) +{ /* basic machine hardware */ /* CPU BOARD */ - MCFG_DEVICE_ADD("maincpu", Z80, PIXEL_CLOCK/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_IO_MAP(main_portmap) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", grchamp_state, cpu0_interrupt) + Z80(config, m_maincpu, PIXEL_CLOCK/2); + m_maincpu->set_addrmap(AS_PROGRAM, &grchamp_state::main_map); + m_maincpu->set_addrmap(AS_IO, &grchamp_state::main_portmap); + m_maincpu->set_vblank_int("screen", FUNC(grchamp_state::cpu0_interrupt)); /* GAME BOARD */ - MCFG_DEVICE_ADD("sub", Z80, PIXEL_CLOCK/2) - MCFG_DEVICE_PROGRAM_MAP(sub_map) - MCFG_DEVICE_IO_MAP(sub_portmap) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", grchamp_state, cpu1_interrupt) + Z80(config, m_subcpu, PIXEL_CLOCK/2); + m_subcpu->set_addrmap(AS_PROGRAM, &grchamp_state::sub_map); + m_subcpu->set_addrmap(AS_IO, &grchamp_state::sub_portmap); + m_subcpu->set_vblank_int("screen", FUNC(grchamp_state::cpu1_interrupt)); /* SOUND BOARD */ - MCFG_DEVICE_ADD("audiocpu", Z80, SOUND_CLOCK/2) - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(grchamp_state, irq0_line_hold, (double)SOUND_CLOCK/4/16/16/10/16) + Z80(config, m_audiocpu, SOUND_CLOCK/2); + m_audiocpu->set_addrmap(AS_PROGRAM, &grchamp_state::sound_map); + m_audiocpu->set_periodic_int(FUNC(grchamp_state::irq0_line_hold), attotime::from_hz((double)SOUND_CLOCK/4/16/16/10/16)); WATCHDOG_TIMER(config, m_watchdog).set_vblank_count(m_screen, 8); config.m_minimum_quantum = attotime::from_hz(6000); @@ -762,10 +762,10 @@ MACHINE_CONFIG_START(grchamp_state::grchamp) GFXDECODE(config, m_gfxdecode, m_palette, gfx_grchamp); PALETTE(config, m_palette, FUNC(grchamp_state::grchamp_palette), 32); - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(grchamp_state, screen_update) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + m_screen->set_screen_update(FUNC(grchamp_state::screen_update)); /* sound hardware */ @@ -785,9 +785,8 @@ MACHINE_CONFIG_START(grchamp_state::grchamp) ay3.port_b_write_callback().set(FUNC(grchamp_state::portB_2_w)); ay3.add_route(ALL_OUTPUTS, "mono", 0.2); - MCFG_DEVICE_ADD("discrete", DISCRETE, grchamp_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + DISCRETE(config, m_discrete, grchamp_discrete).add_route(ALL_OUTPUTS, "mono", 1.0); +} diff --git a/src/mame/drivers/grfd2301.cpp b/src/mame/drivers/grfd2301.cpp index 2e0dc245288..ac6b2e442bf 100644 --- a/src/mame/drivers/grfd2301.cpp +++ b/src/mame/drivers/grfd2301.cpp @@ -116,23 +116,24 @@ uint32_t grfd2301_state::screen_update(screen_device &screen, bitmap_ind16 &bitm return 0; } -MACHINE_CONFIG_START(grfd2301_state::grfd2301) +void grfd2301_state::grfd2301(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD("maincpu", Z80, 4000000) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) + Z80(config, m_maincpu, 4000000); + m_maincpu->set_addrmap(AS_PROGRAM, &grfd2301_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &grfd2301_state::io_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(grfd2301_state, screen_update) - MCFG_SCREEN_SIZE(640, 240) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) - 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_screen_update(FUNC(grfd2301_state::screen_update)); + screen.set_size(640, 240); + screen.set_visarea_full(); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); -MACHINE_CONFIG_END +} ROM_START( grfd2301 ) ROM_REGION( 0x1000, "maincpu", 0 ) diff --git a/src/mame/drivers/groundfx.cpp b/src/mame/drivers/groundfx.cpp index 145378de015..42dac3e78bc 100644 --- a/src/mame/drivers/groundfx.cpp +++ b/src/mame/drivers/groundfx.cpp @@ -235,12 +235,12 @@ INTERRUPT_GEN_MEMBER(groundfx_state::interrupt) device.execute().set_input_line(4, HOLD_LINE); } -MACHINE_CONFIG_START(groundfx_state::groundfx) - +void groundfx_state::groundfx(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68EC020, XTAL(40'000'000)/2) /* 20MHz - verified */ - MCFG_DEVICE_PROGRAM_MAP(groundfx_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", groundfx_state, interrupt) + M68EC020(config, m_maincpu, XTAL(40'000'000)/2); /* 20MHz - verified */ + m_maincpu->set_addrmap(AS_PROGRAM, &groundfx_state::groundfx_map); + m_maincpu->set_vblank_int("screen", FUNC(groundfx_state::interrupt)); EEPROM_93C46_16BIT(config, "eeprom"); @@ -262,13 +262,13 @@ MACHINE_CONFIG_START(groundfx_state::groundfx) tc0510nio.read_7_callback().set_ioport("SYSTEM"); /* 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, 40*8-1, 3*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(groundfx_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(40*8, 32*8); + screen.set_visarea(0, 40*8-1, 3*8, 32*8-1); + screen.set_screen_update(FUNC(groundfx_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_groundfx); PALETTE(config, m_palette).set_format(palette_device::xRGB_888, 16384); @@ -289,7 +289,7 @@ MACHINE_CONFIG_START(groundfx_state::groundfx) /* sound hardware */ TAITO_EN(config, "taito_en", 0); -MACHINE_CONFIG_END +} /*************************************************************************** DRIVERS diff --git a/src/mame/drivers/gstream.cpp b/src/mame/drivers/gstream.cpp index e24cc45e37b..42cc5dc63ad 100644 --- a/src/mame/drivers/gstream.cpp +++ b/src/mame/drivers/gstream.cpp @@ -828,23 +828,23 @@ void gstream_state::machine_reset() m_oki_bank[0] = m_oki_bank[1] = 0; } -MACHINE_CONFIG_START(gstream_state::gstream) - +void gstream_state::gstream(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", E132XT, 16000000*4) /* 4x internal multiplier */ - MCFG_DEVICE_PROGRAM_MAP(gstream_32bit_map) - MCFG_DEVICE_IO_MAP(gstream_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gstream_state, irq0_line_hold) + E132XT(config, m_maincpu, 16000000*4); /* 4x internal multiplier */ + m_maincpu->set_addrmap(AS_PROGRAM, &gstream_state::gstream_32bit_map); + m_maincpu->set_addrmap(AS_IO, &gstream_state::gstream_io); + m_maincpu->set_vblank_int("screen", FUNC(gstream_state::irq0_line_hold)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(320, 240) - MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_DRIVER(gstream_state, screen_update) + 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, 240); + screen.set_visarea_full(); + screen.set_screen_update(FUNC(gstream_state::screen_update)); PALETTE(config, m_palette).set_format(palette_device::BGR_565, 0x1000 + 0x400 + 0x400 + 0x400); // sprites + 3 bg layers @@ -852,30 +852,28 @@ MACHINE_CONFIG_START(gstream_state::gstream) SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki1", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) /* 1 Mhz? */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - - MCFG_DEVICE_ADD("oki2", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) /* 1 Mhz? */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_CONFIG_END + OKIM6295(config, m_oki[0], 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.00); /* 1 Mhz? */ -MACHINE_CONFIG_START(gstream_state::x2222) + OKIM6295(config, m_oki[1], 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.00); /* 1 Mhz? */ +} +void gstream_state::x2222(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", E132XT, 16000000*4) /* 4x internal multiplier */ - MCFG_DEVICE_PROGRAM_MAP(x2222_32bit_map) - MCFG_DEVICE_IO_MAP(x2222_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gstream_state, irq0_line_hold) + E132XT(config, m_maincpu, 16000000*4); /* 4x internal multiplier */ + m_maincpu->set_addrmap(AS_PROGRAM, &gstream_state::x2222_32bit_map); + m_maincpu->set_addrmap(AS_IO, &gstream_state::x2222_io); + m_maincpu->set_vblank_int("screen", FUNC(gstream_state::irq0_line_hold)); // NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(320, 240) - MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_DRIVER(gstream_state, screen_update) + 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, 240); + screen.set_visarea_full(); + screen.set_screen_update(FUNC(gstream_state::screen_update)); PALETTE(config, m_palette, palette_device::BGR_565); @@ -885,9 +883,8 @@ MACHINE_CONFIG_START(gstream_state::x2222) SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki1", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) /* 1 Mhz? */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_CONFIG_END + OKIM6295(config, m_oki[0], 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.00); /* 1 Mhz? */ +} ROM_START( gstream ) diff --git a/src/mame/drivers/gts80a.cpp b/src/mame/drivers/gts80a.cpp index 68fb7a4ff29..7d150b8e492 100644 --- a/src/mame/drivers/gts80a.cpp +++ b/src/mame/drivers/gts80a.cpp @@ -463,25 +463,25 @@ void caveman_state::video_io_map(address_map &map) } -MACHINE_CONFIG_START(caveman_state::caveman) +void caveman_state::caveman(machine_config &config) +{ gts80a_ss(config); - MCFG_DEVICE_ADD("video_cpu", I8088, 5000000) - MCFG_DEVICE_PROGRAM_MAP(video_map) - MCFG_DEVICE_IO_MAP(video_io_map) + I8088(config, m_videocpu, 5000000); + m_videocpu->set_addrmap(AS_PROGRAM, &caveman_state::video_map); + m_videocpu->set_addrmap(AS_IO, &caveman_state::video_io_map); - 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, 248-1) - MCFG_SCREEN_UPDATE_DRIVER(caveman_state, screen_update_caveman) - 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, 248-1); + screen.set_screen_update(FUNC(caveman_state::screen_update_caveman)); + screen.set_palette("palette"); - MCFG_PALETTE_ADD("palette", 16) + PALETTE(config, "palette").set_entries(16); config.set_default_layout(layout_gts80a_caveman); - -MACHINE_CONFIG_END +} static INPUT_PORTS_START( caveman ) PORT_INCLUDE(gts80a) diff --git a/src/mame/drivers/gumbo.cpp b/src/mame/drivers/gumbo.cpp index 6810d612ef8..cd845259328 100644 --- a/src/mame/drivers/gumbo.cpp +++ b/src/mame/drivers/gumbo.cpp @@ -237,45 +237,45 @@ static GFXDECODE_START( gfx_gumbo ) GFXDECODE_END -MACHINE_CONFIG_START(gumbo_state::gumbo) - - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(14'318'181)/2) - MCFG_DEVICE_PROGRAM_MAP(gumbo_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gumbo_state, irq1_line_hold) // all the same +void gumbo_state::gumbo(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(14'318'181)/2); + m_maincpu->set_addrmap(AS_PROGRAM, &gumbo_state::gumbo_map); + m_maincpu->set_vblank_int("screen", FUNC(gumbo_state::irq1_line_hold)); // all the same GFXDECODE(config, m_gfxdecode, "palette", gfx_gumbo); - 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(gumbo_state, screen_update_gumbo) - 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(gumbo_state::screen_update_gumbo)); + screen.set_palette("palette"); PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x200); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(14'318'181)/16, 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) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", XTAL(14'318'181)/16, 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); +} -MACHINE_CONFIG_START(gumbo_state::mspuzzle) +void gumbo_state::mspuzzle(machine_config &config) +{ gumbo(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mspuzzle_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &gumbo_state::mspuzzle_map); +} -MACHINE_CONFIG_START(gumbo_state::dblpoint) +void gumbo_state::dblpoint(machine_config &config) +{ gumbo(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(dblpoint_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &gumbo_state::dblpoint_map); +} ROM_START( gumbo ) ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 Code */ diff --git a/src/mame/drivers/gunbustr.cpp b/src/mame/drivers/gunbustr.cpp index 99efa095775..ce6c04deccd 100644 --- a/src/mame/drivers/gunbustr.cpp +++ b/src/mame/drivers/gunbustr.cpp @@ -230,12 +230,12 @@ GFXDECODE_END MACHINE DRIVERS ***********************************************************/ -MACHINE_CONFIG_START(gunbustr_state::gunbustr) - +void gunbustr_state::gunbustr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68EC020, XTAL(16'000'000)) - MCFG_DEVICE_PROGRAM_MAP(gunbustr_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gunbustr_state, gunbustr_interrupt) /* VBL */ + M68EC020(config, m_maincpu, XTAL(16'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &gunbustr_state::gunbustr_map); + m_maincpu->set_vblank_int("screen", FUNC(gunbustr_state::gunbustr_interrupt)); /* VBL */ EEPROM_93C46_16BIT(config, "eeprom"); @@ -250,13 +250,13 @@ MACHINE_CONFIG_START(gunbustr_state::gunbustr) tc0510nio.read_7_callback().set_ioport("SYSTEM"); /* 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, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(gunbustr_state, screen_update_gunbustr) - 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, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(gunbustr_state::screen_update_gunbustr)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gunbustr); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 4096); @@ -271,7 +271,7 @@ MACHINE_CONFIG_START(gunbustr_state::gunbustr) /* sound hardware */ TAITO_EN(config, "taito_en", 0); -MACHINE_CONFIG_END +} /***************************************************************************/ diff --git a/src/mame/drivers/gundealr.cpp b/src/mame/drivers/gundealr.cpp index 0fb01049bea..86e0ca88beb 100644 --- a/src/mame/drivers/gundealr.cpp +++ b/src/mame/drivers/gundealr.cpp @@ -438,32 +438,31 @@ TIMER_DEVICE_CALLBACK_MEMBER(gundealr_state::scanline) m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0xcf); /* RST 10h */ } -MACHINE_CONFIG_START(gundealr_state::gundealr) - +void gundealr_state::gundealr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) /* 6 MHz verified for Yam! Yam!? */ - MCFG_DEVICE_PROGRAM_MAP(gundealr_main_map) - MCFG_DEVICE_IO_MAP(main_portmap) + Z80(config, m_maincpu, XTAL(12'000'000)/2); /* 6 MHz verified for Yam! Yam!? */ + m_maincpu->set_addrmap(AS_PROGRAM, &gundealr_state::gundealr_main_map); + m_maincpu->set_addrmap(AS_IO, &gundealr_state::main_portmap); TIMER(config, "scantimer").configure_scanline(FUNC(gundealr_state::scanline), "screen", 0, 1); /* 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(gundealr_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(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(gundealr_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gundealr); - MCFG_PALETTE_ADD("palette", 512) + PALETTE(config, m_palette).set_entries(512); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2203, XTAL(12'000'000)/8) /* 1.5Mhz verified for Yam! Yam!? */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + YM2203(config, "ymsnd", XTAL(12'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); /* 1.5Mhz verified for Yam! Yam!? */ +} TIMER_DEVICE_CALLBACK_MEMBER(gundealr_state::yamyam_mcu_sim) { @@ -529,13 +528,13 @@ TIMER_DEVICE_CALLBACK_MEMBER(gundealr_state::yamyam_mcu_sim) m_rambase[0x006] = m_port_in[0]->read(); } -MACHINE_CONFIG_START(gundealr_state::yamyam) +void gundealr_state::yamyam(machine_config &config) +{ gundealr(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(yamyam_main_map) + m_maincpu->set_addrmap(AS_PROGRAM, &gundealr_state::yamyam_main_map); TIMER(config, "mcusim").configure_periodic(FUNC(gundealr_state::yamyam_mcu_sim), attotime::from_hz(6000000/60)); /* 6mhz confirmed */ -MACHINE_CONFIG_END +} void gundealr_state::gundealrbl(machine_config &config) { diff --git a/src/mame/drivers/gunpey.cpp b/src/mame/drivers/gunpey.cpp index 9872e569937..c90cdc9dd0b 100644 --- a/src/mame/drivers/gunpey.cpp +++ b/src/mame/drivers/gunpey.cpp @@ -1217,33 +1217,33 @@ TIMER_DEVICE_CALLBACK_MEMBER(gunpey_state::scanline) } /***************************************************************************************/ -MACHINE_CONFIG_START(gunpey_state::gunpey) - +void gunpey_state::gunpey(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", V30, 57242400 / 4) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) + V30(config, m_maincpu, 57242400 / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &gunpey_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &gunpey_state::io_map); TIMER(config, "scantimer").configure_scanline(FUNC(gunpey_state::scanline), "screen", 0, 1); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(57242400/8, 442, 0, 320, 264, 0, 240) /* just to get ~60 Hz */ - MCFG_SCREEN_UPDATE_DRIVER(gunpey_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(57242400/8, 442, 0, 320, 264, 0, 240); /* just to get ~60 Hz */ + screen.set_screen_update(FUNC(gunpey_state::screen_update)); + screen.set_palette(m_palette); PALETTE(config, m_palette, palette_device::RGB_555); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'934'400) / 8, okim6295_device::PIN7_LOW) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) + OKIM6295(config, m_oki, XTAL(16'934'400) / 8, okim6295_device::PIN7_LOW); + m_oki->add_route(ALL_OUTPUTS, "lspeaker", 0.25); + m_oki->add_route(ALL_OUTPUTS, "rspeaker", 0.25); - MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(16'934'400)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(1, "rspeaker", 0.25) -MACHINE_CONFIG_END + ymz280b_device &ymz(YMZ280B(config, "ymz", XTAL(16'934'400))); + ymz.add_route(0, "lspeaker", 0.25); + ymz.add_route(1, "rspeaker", 0.25); +} /***************************************************************************************/ diff --git a/src/mame/drivers/gunsmoke.cpp b/src/mame/drivers/gunsmoke.cpp index 5e04f4713b8..c813db9703a 100644 --- a/src/mame/drivers/gunsmoke.cpp +++ b/src/mame/drivers/gunsmoke.cpp @@ -301,27 +301,27 @@ void gunsmoke_state::machine_reset() m_sprite3bank = 0; } -MACHINE_CONFIG_START(gunsmoke_state::gunsmoke) - +void gunsmoke_state::gunsmoke(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 4000000) // 4 MHz - MCFG_DEVICE_PROGRAM_MAP(gunsmoke_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gunsmoke_state, irq0_line_hold) + Z80(config, m_maincpu, 4000000); // 4 MHz + m_maincpu->set_addrmap(AS_PROGRAM, &gunsmoke_state::gunsmoke_map); + m_maincpu->set_vblank_int("screen", FUNC(gunsmoke_state::irq0_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, 3000000) // 3 MHz - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(gunsmoke_state, irq0_line_hold, 4*60) + z80_device &audiocpu(Z80(config, "audiocpu", 3000000)); // 3 MHz + audiocpu.set_addrmap(AS_PROGRAM, &gunsmoke_state::sound_map); + audiocpu.set_periodic_int(FUNC(gunsmoke_state::irq0_line_hold), attotime::from_hz(4*60)); 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(gunsmoke_state, screen_update_gunsmoke) - 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(gunsmoke_state::screen_update_gunsmoke)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gunsmoke); @@ -332,18 +332,18 @@ MACHINE_CONFIG_START(gunsmoke_state::gunsmoke) GENERIC_LATCH_8(config, "soundlatch"); - MCFG_DEVICE_ADD("ym1", YM2203, 1500000) - MCFG_SOUND_ROUTE(0, "mono", 0.22) - MCFG_SOUND_ROUTE(1, "mono", 0.22) - MCFG_SOUND_ROUTE(2, "mono", 0.22) - MCFG_SOUND_ROUTE(3, "mono", 0.14) - - MCFG_DEVICE_ADD("ym2", YM2203, 1500000) - MCFG_SOUND_ROUTE(0, "mono", 0.22) - MCFG_SOUND_ROUTE(1, "mono", 0.22) - MCFG_SOUND_ROUTE(2, "mono", 0.22) - MCFG_SOUND_ROUTE(3, "mono", 0.14) -MACHINE_CONFIG_END + ym2203_device &ym1(YM2203(config, "ym1", 1500000)); + ym1.add_route(0, "mono", 0.22); + ym1.add_route(1, "mono", 0.22); + ym1.add_route(2, "mono", 0.22); + ym1.add_route(3, "mono", 0.14); + + ym2203_device &ym2(YM2203(config, "ym2", 1500000)); + ym2.add_route(0, "mono", 0.22); + ym2.add_route(1, "mono", 0.22); + ym2.add_route(2, "mono", 0.22); + ym2.add_route(3, "mono", 0.14); +} /* ROMs */ diff --git a/src/mame/drivers/gyruss.cpp b/src/mame/drivers/gyruss.cpp index 217087db2cc..f6cfa52b263 100644 --- a/src/mame/drivers/gyruss.cpp +++ b/src/mame/drivers/gyruss.cpp @@ -473,18 +473,18 @@ WRITE_LINE_MEMBER(gyruss_state::vblank_irq) m_subcpu->set_input_line(0, ASSERT_LINE); } -MACHINE_CONFIG_START(gyruss_state::gyruss) - +void gyruss_state::gyruss(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(main_cpu1_map) + Z80(config, m_maincpu, MASTER_CLOCK/6); /* 3.072 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &gyruss_state::main_cpu1_map); - MCFG_DEVICE_ADD("sub", KONAMI1, MASTER_CLOCK/12) /* 1.536 MHz */ - MCFG_DEVICE_PROGRAM_MAP(main_cpu2_map) + KONAMI1(config, m_subcpu, MASTER_CLOCK/12); /* 1.536 MHz */ + m_subcpu->set_addrmap(AS_PROGRAM, &gyruss_state::main_cpu2_map); - MCFG_DEVICE_ADD("audiocpu", Z80, SOUND_CLOCK/4) /* 3.579545 MHz */ - MCFG_DEVICE_PROGRAM_MAP(audio_cpu1_map) - MCFG_DEVICE_IO_MAP(audio_cpu1_io_map) + Z80(config, m_audiocpu, SOUND_CLOCK/4); /* 3.579545 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &gyruss_state::audio_cpu1_map); + m_audiocpu->set_addrmap(AS_IO, &gyruss_state::audio_cpu1_io_map); I8039(config, m_audiocpu_2, XTAL(8'000'000)); m_audiocpu_2->set_addrmap(AS_PROGRAM, &gyruss_state::audio_cpu2_map); @@ -501,11 +501,11 @@ MACHINE_CONFIG_START(gyruss_state::gyruss) mainlatch.q_out_cb<5>().set(FUNC(gyruss_state::flipscreen_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(gyruss_state, screen_update_gyruss) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, gyruss_state, vblank_irq)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + m_screen->set_screen_update(FUNC(gyruss_state::screen_update_gyruss)); + m_screen->set_palette(m_palette); + m_screen->screen_vblank().set(FUNC(gyruss_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gyruss); PALETTE(config, m_palette, FUNC(gyruss_state::gyruss_palette), 16*4+16*16, 32); @@ -555,10 +555,10 @@ MACHINE_CONFIG_START(gyruss_state::gyruss) ay5.add_route(1, "discrete", 1.0, 13); ay5.add_route(2, "discrete", 1.0, 14); - MCFG_DEVICE_ADD("discrete", DISCRETE, gyruss_sound_discrete) - MCFG_SOUND_ROUTE(0, "rspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) -MACHINE_CONFIG_END + DISCRETE(config, m_discrete, gyruss_sound_discrete); + m_discrete->add_route(0, "rspeaker", 1.0); + m_discrete->add_route(1, "lspeaker", 1.0); +} diff --git a/src/mame/includes/funworld.h b/src/mame/includes/funworld.h index 3a69f8becae..34859d8d5e8 100644 --- a/src/mame/includes/funworld.h +++ b/src/mame/includes/funworld.h @@ -12,10 +12,10 @@ class funworld_state : public driver_device public: funworld_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), m_gfxdecode(*this, "gfxdecode"), m_videoram(*this, "videoram"), m_colorram(*this, "colorram"), - m_maincpu(*this, "maincpu"), m_palette(*this, "palette"), m_lamps(*this, "lamp%u", 0U) { } @@ -55,6 +55,7 @@ protected: void magicrd2_map(address_map &map); + required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; tilemap_t *m_bg_tilemap = nullptr; @@ -75,7 +76,6 @@ private: required_shared_ptr<uint8_t> m_videoram; required_shared_ptr<uint8_t> m_colorram; - required_device<cpu_device> m_maincpu; required_device<palette_device> m_palette; output_finder<8> m_lamps; }; diff --git a/src/mame/includes/galivan.h b/src/mame/includes/galivan.h index 6d25df2de94..cb694f624a2 100644 --- a/src/mame/includes/galivan.h +++ b/src/mame/includes/galivan.h @@ -21,9 +21,9 @@ class galivan_state : public driver_device public: galivan_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), m_videoram(*this, "videoram"), m_spriteram(*this, "spriteram"), - m_maincpu(*this, "maincpu"), m_nb1414m4(*this, "nb1414m4"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette"), @@ -39,6 +39,8 @@ public: protected: void io_map(address_map &map); + required_device<cpu_device> m_maincpu; + private: /* memory pointers */ required_shared_ptr<uint8_t> m_videoram; @@ -84,7 +86,7 @@ private: uint32_t screen_update_galivan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_ninjemak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); - required_device<cpu_device> m_maincpu; + optional_device<nb1414m4_device> m_nb1414m4; required_device<gfxdecode_device> m_gfxdecode; required_device<palette_device> m_palette; diff --git a/src/mame/includes/gyruss.h b/src/mame/includes/gyruss.h index 1857fdd6576..e3ffb3c164e 100644 --- a/src/mame/includes/gyruss.h +++ b/src/mame/includes/gyruss.h @@ -43,7 +43,7 @@ private: required_device<cpu_device> m_subcpu; required_device<cpu_device> m_audiocpu; required_device<i8039_device> m_audiocpu_2; - required_device<discrete_device> m_discrete; + required_device<discrete_sound_device> m_discrete; required_shared_ptr<uint8_t> m_colorram; required_shared_ptr<uint8_t> m_videoram; required_shared_ptr<uint8_t> m_spriteram; |