diff options
117 files changed, 1284 insertions, 1308 deletions
diff --git a/src/devices/bus/a2bus/a2diskii.cpp b/src/devices/bus/a2bus/a2diskii.cpp index 0155662792d..20aff173549 100644 --- a/src/devices/bus/a2bus/a2diskii.cpp +++ b/src/devices/bus/a2bus/a2diskii.cpp @@ -61,15 +61,19 @@ ROM_END // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(a2bus_floppy_device::device_add_mconfig) +void a2bus_floppy_device::device_add_mconfig(machine_config &config) +{ APPLEFDC(config, m_fdc, &fdc_interface); - MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_ADD(floppy_interface,15,16) -MACHINE_CONFIG_END + FLOPPY_APPLE(config, FLOPPY_0, &floppy_interface, 15, 16); + FLOPPY_APPLE(config, FLOPPY_1, &floppy_interface, 15, 16); +} -MACHINE_CONFIG_START(a2bus_iwmflop_device::device_add_mconfig) +void a2bus_iwmflop_device::device_add_mconfig(machine_config &config) +{ IWM(config, m_fdc, &fdc_interface); - MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_ADD(floppy_interface,15,16) -MACHINE_CONFIG_END + FLOPPY_APPLE(config, FLOPPY_0, &floppy_interface, 15, 16); + FLOPPY_APPLE(config, FLOPPY_1, &floppy_interface, 15, 16); +} //------------------------------------------------- // rom_region - device-specific ROM region diff --git a/src/devices/bus/a2bus/agat840k_hle.cpp b/src/devices/bus/a2bus/agat840k_hle.cpp index 3571513b7d5..c95d66a09e9 100644 --- a/src/devices/bus/a2bus/agat840k_hle.cpp +++ b/src/devices/bus/a2bus/agat840k_hle.cpp @@ -51,13 +51,12 @@ static const floppy_interface agat840k_hle_floppy_interface = "floppy_5_25" }; -MACHINE_CONFIG_START(a2bus_agat840k_hle_device::device_add_mconfig) - MCFG_DEVICE_ADD(FLOPPY_0, LEGACY_FLOPPY, 0) - MCFG_LEGACY_FLOPPY_CONFIG(agat840k_hle_floppy_interface) - MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(*this, a2bus_agat840k_hle_device, index_0_w)) - MCFG_DEVICE_ADD(FLOPPY_1, LEGACY_FLOPPY, 0) - MCFG_LEGACY_FLOPPY_CONFIG(agat840k_hle_floppy_interface) - MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(*this, a2bus_agat840k_hle_device, index_1_w)) +void a2bus_agat840k_hle_device::device_add_mconfig(machine_config &config) +{ + legacy_floppy_image_device &floppy0(LEGACY_FLOPPY(config, FLOPPY_0, 0, &agat840k_hle_floppy_interface)); + floppy0.out_idx_cb().set(FUNC(a2bus_agat840k_hle_device::index_0_w)); + legacy_floppy_image_device &floppy1(LEGACY_FLOPPY(config, FLOPPY_1, 0, &agat840k_hle_floppy_interface)); + floppy1.out_idx_cb().set(FUNC(a2bus_agat840k_hle_device::index_1_w)); I8255(config, m_d14); // PA not connected @@ -69,7 +68,7 @@ MACHINE_CONFIG_START(a2bus_agat840k_hle_device::device_add_mconfig) // m_d15->out_pb_callback().set(FUNC(a2bus_agat840k_hle_device::d15_o_b)); // write data m_d15->in_pc_callback().set(FUNC(a2bus_agat840k_hle_device::d15_i_c)); m_d15->out_pc_callback().set(FUNC(a2bus_agat840k_hle_device::d15_o_c)); -MACHINE_CONFIG_END +} //------------------------------------------------- // rom_region - device-specific ROM region diff --git a/src/devices/bus/nes/disksys.cpp b/src/devices/bus/nes/disksys.cpp index 0f350fb7922..32a364aa9e4 100644 --- a/src/devices/bus/nes/disksys.cpp +++ b/src/devices/bus/nes/disksys.cpp @@ -51,9 +51,10 @@ static const floppy_interface nes_floppy_interface = // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(nes_disksys_device::device_add_mconfig) - MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, nes_floppy_interface) -MACHINE_CONFIG_END +void nes_disksys_device::device_add_mconfig(machine_config &config) +{ + LEGACY_FLOPPY(config, FLOPPY_0, 0, &nes_floppy_interface); +} ROM_START( disksys ) diff --git a/src/devices/bus/scsi/scsihle.h b/src/devices/bus/scsi/scsihle.h index bce047ae474..e98e38122e7 100644 --- a/src/devices/bus/scsi/scsihle.h +++ b/src/devices/bus/scsi/scsihle.h @@ -84,10 +84,4 @@ extern const input_device_default DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_5)[]; extern const input_device_default DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_6)[]; extern const input_device_default DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_7)[]; -#define MCFG_SCSIDEV_ADD(_tag, _option, _type, _id) \ - MCFG_DEVICE_MODIFY(_tag ) \ - MCFG_SLOT_OPTION_ADD( _option, _type ) \ - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS( _option, _id ) \ - MCFG_SLOT_DEFAULT_OPTION( _option ) - #endif // MAME_BUS_SCSI_SCSIHLE_H diff --git a/src/devices/imagedev/flopdrv.h b/src/devices/imagedev/flopdrv.h index cae694146b7..5751365260d 100644 --- a/src/devices/imagedev/flopdrv.h +++ b/src/devices/imagedev/flopdrv.h @@ -92,9 +92,6 @@ struct chrn_id /* set if index has just occurred */ #define FLOPPY_DRIVE_INDEX 0x0020 -#define MCFG_LEGACY_FLOPPY_IDX_CB(_devcb) \ - downcast<legacy_floppy_image_device &>(*device).set_out_idx_func(DEVCB_##_devcb); - class legacy_floppy_image_device : public device_t, public device_image_interface { @@ -110,7 +107,7 @@ public: ~legacy_floppy_image_device(); void set_floppy_config(const floppy_interface *config) { m_config = config; } - template<class Object> devcb_base &set_out_idx_func(Object &&cb) { return m_out_idx_func.set_callback(std::forward<Object>(cb)); } + auto out_idx_cb() { return m_out_idx_func.bind(); } static void add_4drives(machine_config &mconfig, const floppy_interface *config) { @@ -120,6 +117,12 @@ public: LEGACY_FLOPPY(mconfig, FLOPPY_3, 0, config); } + static void add_2drives(machine_config &mconfig, const floppy_interface *config) + { + LEGACY_FLOPPY(mconfig, FLOPPY_0, 0, config); + LEGACY_FLOPPY(mconfig, FLOPPY_1, 0, config); + } + virtual image_init_result call_load() override; virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); } virtual image_init_result call_create(int format_type, util::option_resolution *format_options) override; @@ -250,33 +253,4 @@ legacy_floppy_image_device *floppy_get_device_by_type(running_machine &machine,i int floppy_get_drive_by_type(legacy_floppy_image_device *image,int ftype); int floppy_get_count(running_machine &machine); - -/*************************************************************************** - DEVICE CONFIGURATION MACROS -***************************************************************************/ - - -#define MCFG_LEGACY_FLOPPY_CONFIG(_config) \ - downcast<legacy_floppy_image_device &>(*device).set_floppy_config(&(_config)); - -#define MCFG_LEGACY_FLOPPY_DRIVE_ADD(_tag, _config) \ - MCFG_DEVICE_ADD(_tag, LEGACY_FLOPPY, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) - -#define MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(_config) \ - MCFG_DEVICE_ADD(FLOPPY_0, LEGACY_FLOPPY, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) \ - MCFG_DEVICE_ADD(FLOPPY_1, LEGACY_FLOPPY, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) \ - MCFG_DEVICE_ADD(FLOPPY_2, LEGACY_FLOPPY, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) \ - MCFG_DEVICE_ADD(FLOPPY_3, LEGACY_FLOPPY, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) - -#define MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(_config) \ - MCFG_DEVICE_ADD(FLOPPY_0, LEGACY_FLOPPY, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) \ - MCFG_DEVICE_ADD(FLOPPY_1, LEGACY_FLOPPY, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) - #endif // MAME_DEVICES_IMAGEDV_FLOPDRV_H diff --git a/src/devices/machine/appldriv.h b/src/devices/machine/appldriv.h index ad951f6d0fa..6d23284f46a 100644 --- a/src/devices/machine/appldriv.h +++ b/src/devices/machine/appldriv.h @@ -63,29 +63,4 @@ private: // device type definition DECLARE_DEVICE_TYPE(FLOPPY_APPLE, apple525_floppy_image_device) -#define MCFG_LEGACY_FLOPPY_APPLE_PARAMS(_dividend,_divisor) \ - downcast<apple525_floppy_image_device *>(device)->set_params(_dividend,_divisor); - -#define MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_ADD(_config,_dividend,_divisor) \ - MCFG_DEVICE_ADD(FLOPPY_0, FLOPPY_APPLE, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) \ - MCFG_LEGACY_FLOPPY_APPLE_PARAMS(_dividend,_divisor) \ - MCFG_DEVICE_ADD(FLOPPY_1, FLOPPY_APPLE, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) \ - MCFG_LEGACY_FLOPPY_APPLE_PARAMS(_dividend,_divisor) - -#define MCFG_LEGACY_FLOPPY_APPLE_4_DRIVES_ADD(_config,_dividend,_divisor) \ - MCFG_DEVICE_ADD(FLOPPY_0, FLOPPY_APPLE, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) \ - MCFG_LEGACY_FLOPPY_APPLE_PARAMS(_dividend,_divisor) \ - MCFG_DEVICE_ADD(FLOPPY_1, FLOPPY_APPLE, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) \ - MCFG_LEGACY_FLOPPY_APPLE_PARAMS(_dividend,_divisor) \ - MCFG_DEVICE_ADD(FLOPPY_2, FLOPPY_APPLE, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) \ - MCFG_LEGACY_FLOPPY_APPLE_PARAMS(_dividend,_divisor) \ - MCFG_DEVICE_ADD(FLOPPY_3, FLOPPY_APPLE, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) \ - MCFG_LEGACY_FLOPPY_APPLE_PARAMS(_dividend,_divisor) - #endif // MAME_MACHINE_APPLDRIV_H diff --git a/src/devices/machine/sonydriv.h b/src/devices/machine/sonydriv.h index b6e4358eadb..322db3f3342 100644 --- a/src/devices/machine/sonydriv.h +++ b/src/devices/machine/sonydriv.h @@ -58,22 +58,4 @@ protected: // device type definition DECLARE_DEVICE_TYPE(FLOPPY_SONY, sonydriv_floppy_image_device) -#define MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(_config) \ - MCFG_DEVICE_ADD(FLOPPY_0, FLOPPY_SONY, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) \ - MCFG_DEVICE_ADD(FLOPPY_1, FLOPPY_SONY, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) - -#define MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADDITIONAL_ADD(_config) \ - MCFG_DEVICE_ADD(FLOPPY_2, FLOPPY_SONY, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) \ - MCFG_DEVICE_ADD(FLOPPY_3, FLOPPY_SONY, 0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) - -#define MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_MODIFY(_config) \ - MCFG_DEVICE_MODIFY(FLOPPY_0) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) \ - MCFG_DEVICE_MODIFY(FLOPPY_1) \ - MCFG_LEGACY_FLOPPY_CONFIG(_config) - #endif // MAME_MACHINE_SONYDRIV_H diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp index f1422ea17a6..6956d51b541 100644 --- a/src/mame/drivers/apple2e.cpp +++ b/src/mame/drivers/apple2e.cpp @@ -4263,7 +4263,8 @@ static const floppy_interface floppy_interface = "floppy_5_25" }; -MACHINE_CONFIG_START(apple2e_state::apple2cp) +void apple2e_state::apple2cp(machine_config &config) +{ apple2c(config); M65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::apple2c_memexp_map); @@ -4271,11 +4272,13 @@ MACHINE_CONFIG_START(apple2e_state::apple2cp) config.device_remove("sl4"); config.device_remove("sl6"); IWM(config, m_iicpiwm, &a2cp_interface); - MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_ADD(floppy_interface,15,16) - MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADDITIONAL_ADD(apple2cp_floppy35_floppy_interface) + FLOPPY_APPLE(config, FLOPPY_0, &floppy_interface, 15, 16); + FLOPPY_APPLE(config, FLOPPY_1, &floppy_interface, 15, 16); + FLOPPY_SONY(config, FLOPPY_2, &apple2cp_floppy35_floppy_interface); + FLOPPY_SONY(config, FLOPPY_3, &apple2cp_floppy35_floppy_interface); m_ram->set_default_size("128K").set_extra_options("128K, 384K, 640K, 896K, 1152K"); -MACHINE_CONFIG_END +} void apple2e_state::apple2c_iwm(machine_config &config) { @@ -4307,13 +4310,15 @@ const applefdc_interface fdc_interface = apple525_read_status /* read_status */ }; -MACHINE_CONFIG_START(apple2e_state::laser128) +void apple2e_state::laser128(machine_config &config) +{ apple2c(config); M65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::laser128_map); APPLEFDC(config, m_laserudc, &fdc_interface); - MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_ADD(floppy_interface,15,16) + FLOPPY_APPLE(config, FLOPPY_0, &floppy_interface, 15, 16); + FLOPPY_APPLE(config, FLOPPY_1, &floppy_interface, 15, 16); config.device_remove("sl4"); config.device_remove("sl6"); @@ -4327,15 +4332,17 @@ MACHINE_CONFIG_START(apple2e_state::laser128) A2BUS_SLOT(config, "sl7", m_a2bus, apple2_cards, nullptr); m_ram->set_default_size("128K").set_extra_options("128K, 384K, 640K, 896K, 1152K"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(apple2e_state::laser128ex2) +void apple2e_state::laser128ex2(machine_config &config) +{ apple2c(config); M65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::laser128_map); APPLEFDC(config, m_laserudc, &fdc_interface); - MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_ADD(floppy_interface,15,16) + FLOPPY_APPLE(config, FLOPPY_0, &floppy_interface, 15, 16); + FLOPPY_APPLE(config, FLOPPY_1, &floppy_interface, 15, 16); config.device_remove("sl4"); config.device_remove("sl6"); @@ -4349,7 +4356,7 @@ MACHINE_CONFIG_START(apple2e_state::laser128ex2) A2BUS_LASER128(config, "sl7", A2BUS_7M_CLOCK).set_onboard(m_a2bus); m_ram->set_default_size("128K").set_extra_options("128K, 384K, 640K, 896K, 1152K"); -MACHINE_CONFIG_END +} void apple2e_state::ceci(machine_config &config) { diff --git a/src/mame/drivers/bullet.cpp b/src/mame/drivers/bullet.cpp index db92c535abf..507b00c5c3d 100644 --- a/src/mame/drivers/bullet.cpp +++ b/src/mame/drivers/bullet.cpp @@ -1187,7 +1187,8 @@ void bullet_state::bullet(machine_config &config) // MACHINE_CONFIG( bulletf ) //------------------------------------------------- -MACHINE_CONFIG_START(bulletf_state::bulletf) +void bulletf_state::bulletf(machine_config &config) +{ // basic machine hardware Z80(config, m_maincpu, 16_MHz_XTAL / 4); m_maincpu->set_addrmap(AS_PROGRAM, &bulletf_state::bulletf_mem); @@ -1263,20 +1264,19 @@ MACHINE_CONFIG_START(bulletf_state::bulletf) m_scsibus->req_handler().set(FUNC(bulletf_state::req_w)); m_scsibus->io_handler().set(m_scsi_ctrl_in, FUNC(input_buffer_device::write_bit7)); m_scsibus->set_data_input_buffer(m_scsi_data_in); + m_scsibus->set_slot_device(1, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0)); OUTPUT_LATCH(config, m_scsi_data_out); m_scsibus->set_output_latch(*m_scsi_data_out); INPUT_BUFFER(config, m_scsi_data_in); INPUT_BUFFER(config, m_scsi_ctrl_in); - MCFG_SCSIDEV_ADD(SCSIBUS_TAG ":" SCSI_PORT_DEVICE1, "harddisk", SCSIHD, SCSI_ID_0) - // software lists SOFTWARE_LIST(config, "flop_list").set_original("wmbullet"); // internal ram RAM(config, RAM_TAG).set_default_size("128K"); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/dai3wksi.cpp b/src/mame/drivers/dai3wksi.cpp index 61cc83c7d62..2002ee353d8 100644 --- a/src/mame/drivers/dai3wksi.cpp +++ b/src/mame/drivers/dai3wksi.cpp @@ -533,7 +533,7 @@ void dai3wksi_state::dai3wksi(machine_config &config) m_ic81->set_enable(1); m_ic81->add_route(ALL_OUTPUTS, "mono", 0.4); #endif -MACHINE_CONFIG_END +} /************************************* diff --git a/src/mame/drivers/exidy440.cpp b/src/mame/drivers/exidy440.cpp index 248b57d46a5..a71c7f05624 100644 --- a/src/mame/drivers/exidy440.cpp +++ b/src/mame/drivers/exidy440.cpp @@ -996,11 +996,11 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(exidy440_state::exidy440) - +void exidy440_state::exidy440(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809E, MAIN_CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(exidy440_map) + MC6809E(config, m_maincpu, MAIN_CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &exidy440_state::exidy440_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -1011,20 +1011,19 @@ MACHINE_CONFIG_START(exidy440_state::exidy440) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("440audio", EXIDY440, EXIDY440_MC3418_CLOCK) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END + EXIDY440(config, m_custom, EXIDY440_MC3418_CLOCK); + m_custom->add_route(0, "lspeaker", 1.0); + m_custom->add_route(1, "rspeaker", 1.0); +} -MACHINE_CONFIG_START(topsecex_state::topsecex) +void topsecex_state::topsecex(machine_config &config) +{ exidy440(config); - /* basic machine hardware */ - /* video hardware */ topsecex_video(config); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/fastfred.cpp b/src/mame/drivers/fastfred.cpp index c68294e5164..9121d83d32f 100644 --- a/src/mame/drivers/fastfred.cpp +++ b/src/mame/drivers/fastfred.cpp @@ -676,7 +676,7 @@ void fastfred_state::fastfred(machine_config &config) AY8910(config, "ay8910.1", XTAL(12'432'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); /* 1.554 MHz; xtal from pcb pics, divider not verified */ AY8910(config, "ay8910.2", XTAL(12'432'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); /* 1.554 MHz; xtal from pcb pics, divider not verified */ -MACHINE_CONFIG_END +} void fastfred_state::jumpcoas(machine_config &config) { diff --git a/src/mame/drivers/firebeat.cpp b/src/mame/drivers/firebeat.cpp index 90b4a2aae13..2bb69eb3511 100644 --- a/src/mame/drivers/firebeat.cpp +++ b/src/mame/drivers/firebeat.cpp @@ -1175,8 +1175,8 @@ static void firebeat_ata_devices(device_slot_interface &device) device.option_add("cdrom", ATAPI_FIXED_CDROM); } -MACHINE_CONFIG_START(firebeat_state::firebeat) - +void firebeat_state::firebeat(machine_config &config) +{ /* basic machine hardware */ PPC403GCX(config, m_maincpu, XTAL(64'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &firebeat_state::firebeat_map); diff --git a/src/mame/drivers/foodf.cpp b/src/mame/drivers/foodf.cpp index 245a9f8c002..d23a6b336bb 100644 --- a/src/mame/drivers/foodf.cpp +++ b/src/mame/drivers/foodf.cpp @@ -386,7 +386,7 @@ void foodf_state::foodf(machine_config &config) pokey_device &pokey3(POKEY(config, "pokey3", MASTER_CLOCK/2/10)); pokey3.add_route(ALL_OUTPUTS, "mono", 0.33); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/hitpoker.cpp b/src/mame/drivers/hitpoker.cpp index cdba067704c..cafebdb5861 100644 --- a/src/mame/drivers/hitpoker.cpp +++ b/src/mame/drivers/hitpoker.cpp @@ -462,7 +462,8 @@ static GFXDECODE_START( gfx_hitpoker ) GFXDECODE_ENTRY( "gfx1", 0, hitpoker_layout_8bpp, 0, 8 ) GFXDECODE_END -MACHINE_CONFIG_START(hitpoker_state::hitpoker) +void hitpoker_state::hitpoker(machine_config &config) +{ MC68HC11(config, m_maincpu, 1000000); m_maincpu->set_addrmap(AS_PROGRAM, &hitpoker_state::hitpoker_map); m_maincpu->set_addrmap(AS_IO, &hitpoker_state::hitpoker_io); diff --git a/src/mame/drivers/hng64.cpp b/src/mame/drivers/hng64.cpp index 343bf35fa53..359eeaf44e4 100644 --- a/src/mame/drivers/hng64.cpp +++ b/src/mame/drivers/hng64.cpp @@ -2106,7 +2106,8 @@ void hng64_state::init_io() m_ex_ramaddr_upper = 0; } -MACHINE_CONFIG_START(hng64_state::hng64) +void hng64_state::hng64(machine_config &config) +{ /* basic machine hardware */ VR4300BE(config, m_maincpu, HNG64_MASTER_CLOCK); // actually R4300 m_maincpu->set_icache_size(16384); diff --git a/src/mame/drivers/joctronic.cpp b/src/mame/drivers/joctronic.cpp index 47fd7bf429c..efe5ad48b18 100644 --- a/src/mame/drivers/joctronic.cpp +++ b/src/mame/drivers/joctronic.cpp @@ -335,7 +335,8 @@ void joctronic_state::machine_reset() static INPUT_PORTS_START( joctronic ) INPUT_PORTS_END -MACHINE_CONFIG_START(joctronic_state::joctronic) +void joctronic_state::joctronic(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, XTAL(12'000'000)/4); // 3 MHz - uses WAIT m_maincpu->set_addrmap(AS_PROGRAM, &joctronic_state::maincpu_map); // 139 diff --git a/src/mame/drivers/k8915.cpp b/src/mame/drivers/k8915.cpp index 43c1056d1a5..2c2609ee46b 100644 --- a/src/mame/drivers/k8915.cpp +++ b/src/mame/drivers/k8915.cpp @@ -165,7 +165,7 @@ void k8915_state::k8915(machine_config &config) rs232.rxd_handler().set("sio", FUNC(z80sio_device::rxb_w)); rs232.dcd_handler().set("sio", FUNC(z80sio_device::dcdb_w)); rs232.cts_handler().set("sio", FUNC(z80sio_device::ctsb_w)); -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/m63.cpp b/src/mame/drivers/m63.cpp index 6c2016619e8..5c62786cdcb 100644 --- a/src/mame/drivers/m63.cpp +++ b/src/mame/drivers/m63.cpp @@ -755,8 +755,8 @@ INTERRUPT_GEN_MEMBER(m63_state::vblank_irq) device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -MACHINE_CONFIG_START(m63_state::m63) - +void m63_state::m63(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, XTAL(12'000'000)/4); /* 3 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &m63_state::m63_map); diff --git a/src/mame/drivers/mjkjidai.cpp b/src/mame/drivers/mjkjidai.cpp index d80bef0cb4d..2aa94b2d72a 100644 --- a/src/mame/drivers/mjkjidai.cpp +++ b/src/mame/drivers/mjkjidai.cpp @@ -296,8 +296,8 @@ void mjkjidai_state::machine_reset() m_adpcm_pos = m_adpcm_end = 0; } -MACHINE_CONFIG_START(mjkjidai_state::mjkjidai) - +void mjkjidai_state::mjkjidai(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, 10000000/2); /* 5 MHz ??? */ m_maincpu->set_addrmap(AS_PROGRAM, &mjkjidai_state::mjkjidai_map); diff --git a/src/mame/drivers/neoprint.cpp b/src/mame/drivers/neoprint.cpp index 9091b019325..f6f245f83b0 100644 --- a/src/mame/drivers/neoprint.cpp +++ b/src/mame/drivers/neoprint.cpp @@ -500,7 +500,8 @@ void neoprint_state::machine_start() m_upd4990a->c2_w(1); } -MACHINE_CONFIG_START(neoprint_state::neoprint) +void neoprint_state::neoprint(machine_config &config) +{ M68000(config, m_maincpu, 12000000); m_maincpu->set_addrmap(AS_PROGRAM, &neoprint_state::neoprint_map); m_maincpu->set_periodic_int(FUNC(neoprint_state::irq3_line_hold), attotime::from_hz(45)); /* camera / printer irq, unknown timing */ diff --git a/src/mame/drivers/nmg5.cpp b/src/mame/drivers/nmg5.cpp index 457e5c39c11..29f0938e8b5 100644 --- a/src/mame/drivers/nmg5.cpp +++ b/src/mame/drivers/nmg5.cpp @@ -978,8 +978,8 @@ void nmg5_state::machine_reset() m_input_data = 0; } -MACHINE_CONFIG_START(nmg5_state::nmg5) - +void nmg5_state::nmg5(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 16000000); /* 16 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &nmg5_state::nmg5_map); diff --git a/src/mame/drivers/peplus.cpp b/src/mame/drivers/peplus.cpp index 93236ea444f..150f0ab9474 100644 --- a/src/mame/drivers/peplus.cpp +++ b/src/mame/drivers/peplus.cpp @@ -1371,7 +1371,8 @@ void peplus_state::machine_start() * Machine Driver * *************************/ -MACHINE_CONFIG_START(peplus_state::peplus) +void peplus_state::peplus(machine_config &config) +{ // basic machine hardware I80C32(config, m_maincpu, XTAL(20'000'000)/2); // 10MHz m_maincpu->set_addrmap(AS_PROGRAM, &peplus_state::main_map); diff --git a/src/mame/drivers/pyl601.cpp b/src/mame/drivers/pyl601.cpp index 553c0a4e600..5a16c67a810 100644 --- a/src/mame/drivers/pyl601.cpp +++ b/src/mame/drivers/pyl601.cpp @@ -579,7 +579,7 @@ void pyl601_state::pyl601(machine_config &config) /* internal ram */ RAM(config, RAM_TAG).set_default_size("576K"); // 64 + 512 -MACHINE_CONFIG_END +} void pyl601_state::pyl601a(machine_config &config) { diff --git a/src/mame/drivers/seabattl.cpp b/src/mame/drivers/seabattl.cpp index 9841b29fac2..44d69cf4bc0 100644 --- a/src/mame/drivers/seabattl.cpp +++ b/src/mame/drivers/seabattl.cpp @@ -480,8 +480,8 @@ static GFXDECODE_START( gfx_seabattl ) GFXDECODE_ENTRY( "gfx3", 0, tiles8x8_layout, 24, 1 ) GFXDECODE_END -MACHINE_CONFIG_START(seabattl_state::seabattl) - +void seabattl_state::seabattl(machine_config &config) +{ /* basic machine hardware */ S2650(config, m_maincpu, 14318180/4/2); m_maincpu->set_addrmap(AS_PROGRAM, &seabattl_state::seabattl_map); diff --git a/src/mame/drivers/sengokmj.cpp b/src/mame/drivers/sengokmj.cpp index 4ae31d9a243..47e80655ce3 100644 --- a/src/mame/drivers/sengokmj.cpp +++ b/src/mame/drivers/sengokmj.cpp @@ -577,8 +577,8 @@ WRITE16_MEMBER( sengokmj_state::layer_scroll_w ) } -MACHINE_CONFIG_START(sengokmj_state::sengokmj) - +void sengokmj_state::sengokmj(machine_config &config) +{ /* basic machine hardware */ V30(config, m_maincpu, 16000000/2); /* V30-8 */ m_maincpu->set_addrmap(AS_PROGRAM, &sengokmj_state::sengokmj_map); diff --git a/src/mame/drivers/snowbros.cpp b/src/mame/drivers/snowbros.cpp index 17a3c4a0262..3e39a07bbdb 100644 --- a/src/mame/drivers/snowbros.cpp +++ b/src/mame/drivers/snowbros.cpp @@ -2034,7 +2034,7 @@ void snowbros_state::yutnori(machine_config &config) okim6295_device &oki2(OKIM6295(config, "oki2", XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified oki2.add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/sorcerer.cpp b/src/mame/drivers/sorcerer.cpp index a6f45c26460..032714ab4f3 100644 --- a/src/mame/drivers/sorcerer.cpp +++ b/src/mame/drivers/sorcerer.cpp @@ -487,7 +487,7 @@ MACHINE_CONFIG_START(sorcerer_state::sorcererd) MICROPOLIS(config, m_fdc, 0); m_fdc->set_default_drive_tags(); - MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(sorcerer_floppy_interface) + legacy_floppy_image_device::add_4drives(config, &sorcerer_floppy_interface); FD1793(config, m_fdc2, 8_MHz_XTAL / 8); // confirmed clock m_fdc2->set_force_ready(true); // should be able to get rid of this when fdc issue is fixed diff --git a/src/mame/drivers/spectra.cpp b/src/mame/drivers/spectra.cpp index fb5d20cb989..b903183c366 100644 --- a/src/mame/drivers/spectra.cpp +++ b/src/mame/drivers/spectra.cpp @@ -269,7 +269,7 @@ void spectra_state::spectra(machine_config &config) m_snsnd->set_envelope_params(0, 0); m_snsnd->set_enable(1); m_snsnd->add_route(ALL_OUTPUTS, "mono", 0.30); -MACHINE_CONFIG_END +} /*-------------------------------- / Spectra IV diff --git a/src/mame/drivers/sun3x.cpp b/src/mame/drivers/sun3x.cpp index d9488e8271f..c2e84f952c2 100644 --- a/src/mame/drivers/sun3x.cpp +++ b/src/mame/drivers/sun3x.cpp @@ -591,12 +591,13 @@ static void sun_floppies(device_slot_interface &device) device.option_add("35hd", FLOPPY_35_HD); } -MACHINE_CONFIG_START(sun3x_state::sun3_80) +void sun3x_state::sun3_80(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68030, 20000000) - MCFG_DEVICE_PROGRAM_MAP(sun3_80_mem) + M68030(config, m_maincpu, 20000000); + m_maincpu->set_addrmap(AS_PROGRAM, &sun3x_state::sun3_80_mem); - MCFG_DEVICE_ADD(TIMEKEEPER_TAG, M48T02, 0) + M48T02(config, TIMEKEEPER_TAG, 0); SCC8530N(config, m_scc1, 4.9152_MHz_XTAL); m_scc1->out_txda_callback().set(KEYBOARD_TAG, FUNC(sun_keyboard_port_device::write_txd)); @@ -619,9 +620,9 @@ MACHINE_CONFIG_START(sun3x_state::sun3_80) rs232b.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcdb_w)); rs232b.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsb_w)); - MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0) - MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "harddisk", SCSIHD, SCSI_ID_6) - MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE2, "harddisk", SCSIHD, SCSI_ID_5) + scsi_port_device &scsi(SCSI_PORT(config, "scsi")); + scsi.set_slot_device(1, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_6)); + scsi.set_slot_device(2, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_5)); NCR539X(config, ESP_TAG, 20000000/2).set_scsi_port("scsi"); @@ -631,12 +632,12 @@ MACHINE_CONFIG_START(sun3x_state::sun3_80) // the timekeeper has no interrupt output, so 3/80 includes a dedicated timer circuit TIMER(config, "timer").configure_periodic(FUNC(sun3x_state::sun380_timer), attotime::from_hz(100)); - MCFG_SCREEN_ADD("bwtwo", RASTER) - MCFG_SCREEN_UPDATE_DRIVER(sun3x_state, bw2_update) - MCFG_SCREEN_SIZE(1152,900) - MCFG_SCREEN_VISIBLE_AREA(0, 1152-1, 0, 900-1) - MCFG_SCREEN_REFRESH_RATE(72) -MACHINE_CONFIG_END + screen_device &bwtwo(SCREEN(config, "bwtwo", SCREEN_TYPE_RASTER)); + bwtwo.set_screen_update(FUNC(sun3x_state::bw2_update)); + bwtwo.set_size(1152,900); + bwtwo.set_visarea(0, 1152-1, 0, 900-1); + bwtwo.set_refresh_hz(72); +} void sun3x_state::sun3_460(machine_config &config) { diff --git a/src/mame/drivers/thomson.cpp b/src/mame/drivers/thomson.cpp index 32bacd28e72..883f34f752d 100644 --- a/src/mame/drivers/thomson.cpp +++ b/src/mame/drivers/thomson.cpp @@ -668,18 +668,14 @@ MACHINE_CONFIG_START(thomson_state::to7_base) /* floppy */ MCFG_DEVICE_ADD("mc6843", MC6843, 16_MHz_XTAL / 16 / 2) - MCFG_DEVICE_ADD(m_floppy_image[0], LEGACY_FLOPPY, 0) - MCFG_LEGACY_FLOPPY_CONFIG(thomson_floppy_interface) - MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(*this, thomson_state, fdc_index_0_w)) - MCFG_DEVICE_ADD(m_floppy_image[1], LEGACY_FLOPPY, 0) - MCFG_LEGACY_FLOPPY_CONFIG(thomson_floppy_interface) - MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(*this, thomson_state, fdc_index_1_w)) - MCFG_DEVICE_ADD(m_floppy_image[2], LEGACY_FLOPPY, 0) - MCFG_LEGACY_FLOPPY_CONFIG(thomson_floppy_interface) - MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(*this, thomson_state, fdc_index_2_w)) - MCFG_DEVICE_ADD(m_floppy_image[3], LEGACY_FLOPPY, 0) - MCFG_LEGACY_FLOPPY_CONFIG(thomson_floppy_interface) - MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(*this, thomson_state, fdc_index_3_w)) + LEGACY_FLOPPY(config, m_floppy_image[0], 0, &thomson_floppy_interface); + m_floppy_image[0]->out_idx_cb().set(FUNC(thomson_state::fdc_index_0_w)); + LEGACY_FLOPPY(config, m_floppy_image[1], 0, &thomson_floppy_interface); + m_floppy_image[1]->out_idx_cb().set(FUNC(thomson_state::fdc_index_1_w)); + LEGACY_FLOPPY(config, m_floppy_image[2], 0, &thomson_floppy_interface); + m_floppy_image[2]->out_idx_cb().set(FUNC(thomson_state::fdc_index_2_w)); + LEGACY_FLOPPY(config, m_floppy_image[3], 0, &thomson_floppy_interface); + m_floppy_image[3]->out_idx_cb().set(FUNC(thomson_state::fdc_index_3_w)); WD2793(config, m_wd2793_fdc, 16_MHz_XTAL / 16); FLOPPY_CONNECTOR(config, "wd2793:0", cd90_640_floppies, "dd", thomson_state::cd90_640_formats); diff --git a/src/mame/drivers/travrusa.cpp b/src/mame/drivers/travrusa.cpp index 9dbe6af5b38..91bc67f5487 100644 --- a/src/mame/drivers/travrusa.cpp +++ b/src/mame/drivers/travrusa.cpp @@ -338,7 +338,7 @@ void travrusa_state::shtrider(machine_config &config) /* video hardware */ m_gfxdecode->set_info(gfx_shtrider); m_palette->set_init(FUNC(travrusa_state::shtrider_palette)); -MACHINE_CONFIG_END +} void travrusa_state::shtriderb(machine_config &config) { diff --git a/src/mame/drivers/v1050.cpp b/src/mame/drivers/v1050.cpp index 62bc8d015e3..b88992449c0 100644 --- a/src/mame/drivers/v1050.cpp +++ b/src/mame/drivers/v1050.cpp @@ -1022,17 +1022,18 @@ void v1050_state::machine_reset() // Machine Driver -MACHINE_CONFIG_START(v1050_state::v1050) +void v1050_state::v1050(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD(Z80_TAG, Z80, 16_MHz_XTAL/4) - MCFG_DEVICE_PROGRAM_MAP(v1050_mem) - MCFG_DEVICE_IO_MAP(v1050_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(v1050_state,v1050_int_ack) + Z80(config, m_maincpu, 16_MHz_XTAL/4); + m_maincpu->set_addrmap(AS_PROGRAM, &v1050_state::v1050_mem); + m_maincpu->set_addrmap(AS_IO, &v1050_state::v1050_io); + m_maincpu->set_irq_acknowledge_callback(FUNC(v1050_state::v1050_int_ack)); config.m_perfect_cpu_quantum = subtag(Z80_TAG); - MCFG_DEVICE_ADD(M6502_TAG, M6502, 15.36_MHz_XTAL/16) - MCFG_DEVICE_PROGRAM_MAP(v1050_crt_mem) + M6502(config, m_subcpu, 15.36_MHz_XTAL/16); + m_subcpu->set_addrmap(AS_PROGRAM, &v1050_state::v1050_crt_mem); config.m_perfect_cpu_quantum = subtag(M6502_TAG); // keyboard HACK @@ -1114,7 +1115,7 @@ MACHINE_CONFIG_START(v1050_state::v1050) m_sasibus->msg_handler().set(m_sasi_ctrl_in, FUNC(input_buffer_device::write_bit2)); m_sasibus->cd_handler().set(m_sasi_ctrl_in, FUNC(input_buffer_device::write_bit3)); m_sasibus->io_handler().set(FUNC(v1050_state::write_sasi_io)).exor(1); // bit4 - MCFG_SCSIDEV_ADD(SASIBUS_TAG ":" SCSI_PORT_DEVICE1, "harddisk", S1410, SCSI_ID_0) + m_sasibus->set_slot_device(1, "harddisk", S1410, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0)); OUTPUT_LATCH(config, m_sasi_data_out); m_sasibus->set_output_latch(*m_sasi_data_out); @@ -1138,7 +1139,7 @@ MACHINE_CONFIG_START(v1050_state::v1050) // internal ram RAM(config, RAM_TAG).set_default_size("128K"); -MACHINE_CONFIG_END +} // ROMs diff --git a/src/mame/drivers/vtech2.cpp b/src/mame/drivers/vtech2.cpp index de42c5f3b8d..eabbc25c4a4 100644 --- a/src/mame/drivers/vtech2.cpp +++ b/src/mame/drivers/vtech2.cpp @@ -526,7 +526,7 @@ MACHINE_CONFIG_START(vtech2_state::laser350) MCFG_GENERIC_LOAD(vtech2_state, cart_load) /* 5.25" Floppy drive */ - MCFG_LEGACY_FLOPPY_DRIVE_ADD( FLOPPY_0, vtech2_floppy_interface ) + LEGACY_FLOPPY(config, FLOPPY_0, 0, &vtech2_floppy_interface); MACHINE_CONFIG_END @@ -541,7 +541,8 @@ void vtech2_state::laser500(machine_config &config) } -MACHINE_CONFIG_START(vtech2_state::laser700) +void vtech2_state::laser700(machine_config &config) +{ laser350(config); ADDRESS_MAP_BANK(config.replace(), "banka").set_map(&vtech2_state::m_map700).set_options(ENDIANNESS_LITTLE, 8, 18, 0x4000); @@ -550,8 +551,8 @@ MACHINE_CONFIG_START(vtech2_state::laser700) ADDRESS_MAP_BANK(config.replace(), "bankd").set_map(&vtech2_state::m_map700).set_options(ENDIANNESS_LITTLE, 8, 18, 0x4000); /* Second 5.25" floppy drive */ - MCFG_LEGACY_FLOPPY_DRIVE_ADD( FLOPPY_1, vtech2_floppy_interface ) -MACHINE_CONFIG_END + LEGACY_FLOPPY(config, FLOPPY_1, 0, &vtech2_floppy_interface); + } ROM_START(laser350) diff --git a/src/mame/drivers/wacky_gator.cpp b/src/mame/drivers/wacky_gator.cpp index 7d523c6ae90..4859b884b5e 100644 --- a/src/mame/drivers/wacky_gator.cpp +++ b/src/mame/drivers/wacky_gator.cpp @@ -281,8 +281,8 @@ void wackygtr_state::program_map(address_map &map) map(0x8000, 0xffff).rom(); } -MACHINE_CONFIG_START(wackygtr_state::wackygtr) - +void wackygtr_state::wackygtr(machine_config &config) +{ MC6809(config, m_maincpu, XTAL(3'579'545)); // HD68B09P m_maincpu->set_addrmap(AS_PROGRAM, &wackygtr_state::program_map); m_maincpu->set_periodic_int(FUNC(wackygtr_state::irq0_line_assert), attotime::from_hz(50)); // FIXME diff --git a/src/mame/drivers/wallc.cpp b/src/mame/drivers/wallc.cpp index 1663704cf3a..942902e8211 100644 --- a/src/mame/drivers/wallc.cpp +++ b/src/mame/drivers/wallc.cpp @@ -514,20 +514,21 @@ void wallc_state::init_wallca() } -MACHINE_CONFIG_START(wallc_state::wallc) +void wallc_state::wallc(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 12.288_MHz_XTAL / 4) /* 3.072 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(wallc_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", wallc_state, irq0_line_hold) + Z80(config, m_maincpu, 12.288_MHz_XTAL / 4); /* 3.072 MHz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &wallc_state::wallc_map); + m_maincpu->set_vblank_int("screen", FUNC(wallc_state::irq0_line_hold)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(wallc_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(wallc_state::screen_update)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_wallc); PALETTE(config, "palette", FUNC(wallc_state::wallc_palette), 32); @@ -535,19 +536,19 @@ MACHINE_CONFIG_START(wallc_state::wallc) /* sound hardware */ SPEAKER(config, "mono").front_center(); AY8912(config, "aysnd", 12288000 / 8).add_route(ALL_OUTPUTS, "mono", 0.30); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(wallc_state::wallca) +void wallc_state::wallca(machine_config &config) +{ wallc(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(12_MHz_XTAL / 4) -MACHINE_CONFIG_END + m_maincpu->set_clock(12_MHz_XTAL / 4); +} -MACHINE_CONFIG_START(wallc_state::unkitpkr) +void wallc_state::unkitpkr(machine_config &config) +{ wallc(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(unkitpkr_map) + m_maincpu->set_addrmap(AS_PROGRAM, &wallc_state::unkitpkr_map); MCFG_VIDEO_START_OVERRIDE(wallc_state, unkitpkr) subdevice<palette_device>("palette")->set_init(FUNC(wallc_state::unkitpkr_palette)); @@ -556,13 +557,14 @@ MACHINE_CONFIG_START(wallc_state::unkitpkr) subdevice<ay8912_device>("aysnd")->port_a_read_callback().set_ioport("DSW2"); subdevice<ay8912_device>("aysnd")->reset_routes(); subdevice<ay8912_device>("aysnd")->add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(wallc_state::sidampkr) +void wallc_state::sidampkr(machine_config &config) +{ unkitpkr(config); MCFG_VIDEO_START_OVERRIDE(wallc_state, sidampkr) -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/wangpc.cpp b/src/mame/drivers/wangpc.cpp index a69de0c446a..1085c74930b 100644 --- a/src/mame/drivers/wangpc.cpp +++ b/src/mame/drivers/wangpc.cpp @@ -1272,7 +1272,7 @@ void wangpc_state::on_disk1_unload(floppy_image_device *image) //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( wangpc ) +// machine_config( wangpc ) //------------------------------------------------- void wangpc_state::wangpc(machine_config &config) diff --git a/src/mame/drivers/warpsped.cpp b/src/mame/drivers/warpsped.cpp index 410bfe1f5eb..65b6c21651f 100644 --- a/src/mame/drivers/warpsped.cpp +++ b/src/mame/drivers/warpsped.cpp @@ -322,26 +322,26 @@ void warpspeed_state::warpsped_palette(palette_device &palette) const palette.set_pen_color(2 + i, 0xff * BIT(i, 0), 0xff * BIT(i, 1), 0xff * BIT(i, 2)); } -MACHINE_CONFIG_START(warpspeed_state::warpspeed) - +void warpspeed_state::warpspeed(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(5'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(warpspeed_map) - MCFG_DEVICE_IO_MAP(warpspeed_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", warpspeed_state, irq0_line_hold) + Z80(config, m_maincpu, XTAL(5'000'000)/2); + m_maincpu->set_addrmap(AS_PROGRAM, &warpspeed_state::warpspeed_map); + m_maincpu->set_addrmap(AS_IO, &warpspeed_state::warpspeed_io_map); + m_maincpu->set_vblank_int("screen", FUNC(warpspeed_state::irq0_line_hold)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE((32)*8, (32)*8) - MCFG_SCREEN_VISIBLE_AREA(4*8, 32*8-1, 8*8, 32*8-1) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_UPDATE_DRIVER(warpspeed_state, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size((32)*8, (32)*8); + screen.set_visarea(4*8, 32*8-1, 8*8, 32*8-1); + screen.set_palette("palette"); + screen.set_screen_update(FUNC(warpspeed_state::screen_update)); GFXDECODE(config, m_gfxdecode, "palette", gfx_warpspeed); PALETTE(config, "palette", FUNC(warpspeed_state::warpsped_palette), 2 + 8); -MACHINE_CONFIG_END +} ROM_START( warpsped ) ROM_REGION(0x1000, "maincpu", 0) diff --git a/src/mame/drivers/warpwarp.cpp b/src/mame/drivers/warpwarp.cpp index abe4df33031..3685b396f53 100644 --- a/src/mame/drivers/warpwarp.cpp +++ b/src/mame/drivers/warpwarp.cpp @@ -712,12 +712,12 @@ GFXDECODE_END -MACHINE_CONFIG_START(warpwarp_state::geebee) - +void warpwarp_state::geebee(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080, MASTER_CLOCK/9) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(geebee_map) - MCFG_DEVICE_IO_MAP(geebee_port_map) + I8080(config, m_maincpu, MASTER_CLOCK/9); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &warpwarp_state::geebee_map); + m_maincpu->set_addrmap(AS_IO, &warpwarp_state::geebee_port_map); LS259(config, m_latch); // 5N m_latch->q_out_cb<0>().set_output("led0"); // LAMP 1 @@ -730,11 +730,11 @@ MACHINE_CONFIG_START(warpwarp_state::geebee) m_latch->q_out_cb<7>().set(FUNC(warpwarp_state::inv_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 272, 264, 0, 224) - MCFG_SCREEN_UPDATE_DRIVER(warpwarp_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, warpwarp_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(MASTER_CLOCK/3, 384, 0, 272, 264, 0, 224); + screen.set_screen_update(FUNC(warpwarp_state::screen_update)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(warpwarp_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_1k); PALETTE(config, m_palette, FUNC(warpwarp_state::geebee_palette), 4*2); @@ -744,9 +744,8 @@ MACHINE_CONFIG_START(warpwarp_state::geebee) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("geebee_custom", GEEBEE_SOUND, MASTER_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + GEEBEE_SOUND(config, m_geebee_sound, MASTER_CLOCK).add_route(ALL_OUTPUTS, "mono", 1.0); +} void warpwarp_state::geebeeb(machine_config &config) { @@ -754,7 +753,8 @@ void warpwarp_state::geebeeb(machine_config &config) m_latch->q_out_cb<4>().set_nop(); // remove coin lockout } -MACHINE_CONFIG_START(warpwarp_state::navarone) +void warpwarp_state::navarone(machine_config &config) +{ geebee(config); /* basic machine hardware */ @@ -763,9 +763,10 @@ MACHINE_CONFIG_START(warpwarp_state::navarone) m_palette->set_init(FUNC(warpwarp_state::navarone_palette)); MCFG_VIDEO_START_OVERRIDE(warpwarp_state,navarone) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(warpwarp_state::kaitei) +void warpwarp_state::kaitei(machine_config &config) +{ geebee(config); /* basic machine hardware */ @@ -773,14 +774,14 @@ MACHINE_CONFIG_START(warpwarp_state::kaitei) m_palette->set_entries(4*2+1); MCFG_MACHINE_RESET_OVERRIDE(warpwarp_state,kaitei) -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(warpwarp_state::bombbee) +void warpwarp_state::bombbee(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080, MASTER_CLOCK/9) - MCFG_DEVICE_PROGRAM_MAP(bombbee_map) + I8080(config, m_maincpu, MASTER_CLOCK/9); + m_maincpu->set_addrmap(AS_PROGRAM, &warpwarp_state::bombbee_map); LS259(config, m_latch); // 6L on Warp Warp m_latch->q_out_cb<0>().set_output("led0"); // LAMP 1 @@ -795,11 +796,11 @@ MACHINE_CONFIG_START(warpwarp_state::bombbee) WATCHDOG_TIMER(config, m_watchdog); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 272, 264, 0, 224) - MCFG_SCREEN_UPDATE_DRIVER(warpwarp_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, warpwarp_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(MASTER_CLOCK/3, 384, 0, 272, 264, 0, 224); + screen.set_screen_update(FUNC(warpwarp_state::screen_update)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(warpwarp_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_color); @@ -809,17 +810,16 @@ MACHINE_CONFIG_START(warpwarp_state::bombbee) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("warpwarp_custom", WARPWARP_SOUND, MASTER_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + WARPWARP_SOUND(config, m_warpwarp_sound, MASTER_CLOCK).add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_START(warpwarp_state::warpwarp) +void warpwarp_state::warpwarp(machine_config &config) +{ bombbee(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(warpwarp_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &warpwarp_state::warpwarp_map); +} /*************************************************************************** diff --git a/src/mame/drivers/wheelfir.cpp b/src/mame/drivers/wheelfir.cpp index 2a5933f8570..340ded67a34 100644 --- a/src/mame/drivers/wheelfir.cpp +++ b/src/mame/drivers/wheelfir.cpp @@ -732,13 +732,13 @@ void wheelfir_state::ramdac_map(address_map &map) map(0x000, 0x3ff).rw("ramdac", FUNC(ramdac_device::ramdac_pal_r), FUNC(ramdac_device::ramdac_rgb888_w)); } -MACHINE_CONFIG_START(wheelfir_state::wheelfir) - - MCFG_DEVICE_ADD("maincpu", M68000, 32000000/2) - MCFG_DEVICE_PROGRAM_MAP(wheelfir_main) +void wheelfir_state::wheelfir(machine_config &config) +{ + M68000(config, m_maincpu, 32000000/2); + m_maincpu->set_addrmap(AS_PROGRAM, &wheelfir_state::wheelfir_main); - MCFG_DEVICE_ADD("subcpu", M68000, 32000000/2) - MCFG_DEVICE_PROGRAM_MAP(wheelfir_sub) + M68000(config, m_subcpu, 32000000/2); + m_subcpu->set_addrmap(AS_PROGRAM, &wheelfir_state::wheelfir_sub); //config.m_minimum_quantum = attotime::from_hz(12000); @@ -750,15 +750,15 @@ MACHINE_CONFIG_START(wheelfir_state::wheelfir) TIMER(config, "scan_timer").configure_scanline(FUNC(wheelfir_state::scanline_timer_callback), "screen", 0, 1); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(336, NUM_SCANLINES+NUM_VBLANK_LINES) - MCFG_SCREEN_VISIBLE_AREA(0,335, 0, NUM_SCANLINES-1) - MCFG_SCREEN_UPDATE_DRIVER(wheelfir_state, screen_update_wheelfir) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, wheelfir_state, screen_vblank_wheelfir)) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(336, NUM_SCANLINES+NUM_VBLANK_LINES); + m_screen->set_visarea(0,335, 0, NUM_SCANLINES-1); + m_screen->set_screen_update(FUNC(wheelfir_state::screen_update_wheelfir)); + m_screen->screen_vblank().set(FUNC(wheelfir_state::screen_vblank_wheelfir)); + m_screen->set_palette(m_palette); - MCFG_PALETTE_ADD("palette", NUM_COLORS) + PALETTE(config, m_palette).set_entries(NUM_COLORS); ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, m_palette)); ramdac.set_addrmap(0, &wheelfir_state::ramdac_map); @@ -775,7 +775,7 @@ MACHINE_CONFIG_START(wheelfir_state::wheelfir) vref.set_output(5.0); vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT); vref.add_route(0, "rdac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "rdac", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} ROM_START( wheelfir ) diff --git a/src/mame/drivers/white_mod.cpp b/src/mame/drivers/white_mod.cpp index a25b063b680..d62eb26764e 100644 --- a/src/mame/drivers/white_mod.cpp +++ b/src/mame/drivers/white_mod.cpp @@ -47,11 +47,12 @@ void whitestar_mod_state::init_whitestar_mod() { } -MACHINE_CONFIG_START(whitestar_mod_state::whitestar_mod) +void whitestar_mod_state::whitestar_mod(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809E, 2000000) - MCFG_DEVICE_PROGRAM_MAP(whitestar_mod_map) -MACHINE_CONFIG_END + MC6809E(config, m_maincpu, 2000000); + m_maincpu->set_addrmap(AS_PROGRAM, &whitestar_mod_state::whitestar_mod_map); +} /*------------------------------------------------------------------- / Elvis diff --git a/src/mame/drivers/wico.cpp b/src/mame/drivers/wico.cpp index 5a0c1d248cb..1ed154b7c08 100644 --- a/src/mame/drivers/wico.cpp +++ b/src/mame/drivers/wico.cpp @@ -440,12 +440,15 @@ void wico_state::machine_reset() } -MACHINE_CONFIG_START(wico_state::wico) +void wico_state::wico(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("ccpu", MC6809E, XTAL(10'000'000) / 8) // MC68A09EP @ U51 - MCFG_DEVICE_PROGRAM_MAP(ccpu_map) - MCFG_DEVICE_ADD("hcpu", MC6809E, XTAL(10'000'000) / 8) // MC68A09EP @ U24 - MCFG_DEVICE_PROGRAM_MAP(hcpu_map) + MC6809E(config, m_ccpu, XTAL(10'000'000) / 8); // MC68A09EP @ U51 + m_ccpu->set_addrmap(AS_PROGRAM, &wico_state::ccpu_map); + + MC6809E(config, m_hcpu, XTAL(10'000'000) / 8); // MC68A09EP @ U24 + m_hcpu->set_addrmap(AS_PROGRAM, &wico_state::hcpu_map); + TIMER(config, "irq").configure_periodic(FUNC(wico_state::irq_housekeeping), attotime::from_hz(120)); // zero crossing TIMER(config, "firq").configure_periodic(FUNC(wico_state::firq_housekeeping), attotime::from_hz(750)); // time generator NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -456,9 +459,8 @@ MACHINE_CONFIG_START(wico_state::wico) /* Sound */ genpin_audio(config); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("sn76494", SN76494, XTAL(10'000'000) / 64) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) -MACHINE_CONFIG_END + SN76494(config, "sn76494", XTAL(10'000'000) / 64).add_route(ALL_OUTPUTS, "mono", 0.75); +} /*------------------------------------------------------------------- / Af-Tor (1984) diff --git a/src/mame/drivers/wildpkr.cpp b/src/mame/drivers/wildpkr.cpp index 750e5431ecd..50380cfd46e 100644 --- a/src/mame/drivers/wildpkr.cpp +++ b/src/mame/drivers/wildpkr.cpp @@ -465,22 +465,22 @@ IRQ_CALLBACK_MEMBER(wildpkr_state::tabpkr_irq_ack) * Machine Drivers * *************************/ -MACHINE_CONFIG_START(wildpkr_state::wildpkr) - +void wildpkr_state::wildpkr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, MAIN_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(wildpkr_map) - //MCFG_DEVICE_VBLANK_INT_DRIVER("screen", wildpkr_state, irq2_line_hold) // guess + M68000(config, m_maincpu, MAIN_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &wildpkr_state::wildpkr_map); + //m_maincpu->set_vblank_int("screen", FUNC(wildpkr_state::irq2_line_hold)); // guess MC68681(config, m_duart, SEC_CLOCK); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(384, 280) - MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) - MCFG_SCREEN_UPDATE_DEVICE("acrtc", hd63484_device, update_screen) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(384, 280); + screen.set_visarea(0, 384-1, 0, 280-1); + screen.set_screen_update("acrtc", FUNC(hd63484_device::update_screen)); + screen.set_palette("palette"); HD63484(config, "acrtc", 0).set_addrmap(0, &wildpkr_state::hd63484_map); @@ -492,16 +492,16 @@ MACHINE_CONFIG_START(wildpkr_state::wildpkr) /* sound hardware */ SPEAKER(config, "mono").front_center(); AY8930(config, "aysnd", AY_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(wildpkr_state::tabpkr) +void wildpkr_state::tabpkr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(tabpkr_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(wildpkr_state, irq3_line_assert, 60*256) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(wildpkr_state, tabpkr_irq_ack) + M68000(config, m_maincpu, XTAL(24'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &wildpkr_state::tabpkr_map); + m_maincpu->set_periodic_int(FUNC(wildpkr_state::irq3_line_assert), attotime::from_hz(60*256)); + m_maincpu->set_irq_acknowledge_callback(FUNC(wildpkr_state::tabpkr_irq_ack)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); // DS1220Y @@ -513,14 +513,14 @@ MACHINE_CONFIG_START(wildpkr_state::tabpkr) CLOCK(config, m_dac_clock, 1500000); // base rate derived from program code m_dac_clock->signal_handler().set_inputline(m_maincpu, M68K_IRQ_5, ASSERT_LINE); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(384, 280) - MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) - MCFG_SCREEN_UPDATE_DEVICE("acrtc", hd63484_device, update_screen) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(ASSERTLINE("maincpu", M68K_IRQ_4)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(384, 280); + screen.set_visarea(0, 384-1, 0, 280-1); + screen.set_screen_update("acrtc", FUNC(hd63484_device::update_screen)); + screen.set_palette("palette"); + screen.screen_vblank().set_inputline(m_maincpu, M68K_IRQ_4, ASSERT_LINE); HD63484(config, "acrtc", 0).set_addrmap(0, &wildpkr_state::hd63484_map); @@ -536,7 +536,7 @@ MACHINE_CONFIG_START(wildpkr_state::tabpkr) vref.set_output(5.0); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} /************************* diff --git a/src/mame/drivers/williams.cpp b/src/mame/drivers/williams.cpp index 5f839a0c0be..36bad4e09e7 100644 --- a/src/mame/drivers/williams.cpp +++ b/src/mame/drivers/williams.cpp @@ -1482,14 +1482,14 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(williams_state::williams) - +void williams_state::williams(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809E, MASTER_CLOCK/3/4) - MCFG_DEVICE_PROGRAM_MAP(williams_map) + MC6809E(config, m_maincpu, MASTER_CLOCK/3/4); + m_maincpu->set_addrmap(AS_PROGRAM, &williams_state::williams_map); - MCFG_DEVICE_ADD("soundcpu", M6808, SOUND_CLOCK) // internal clock divider of 4, effective frequency is 894.886kHz - MCFG_DEVICE_PROGRAM_MAP(sound_map) + M6808(config, m_soundcpu, SOUND_CLOCK); // internal clock divider of 4, effective frequency is 894.886kHz + m_soundcpu->set_addrmap(AS_PROGRAM, &williams_state::sound_map); MCFG_MACHINE_START_OVERRIDE(williams_state,williams) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // 5101 (Defender), 5114 or 6514 (later games) + battery @@ -1503,10 +1503,10 @@ MACHINE_CONFIG_START(williams_state::williams) WATCHDOG_TIMER(config, m_watchdog); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE | VIDEO_ALWAYS_UPDATE) - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2/3, 512, 6, 298, 260, 7, 247) - MCFG_SCREEN_UPDATE_DRIVER(williams_state, screen_update_williams) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE | VIDEO_ALWAYS_UPDATE); + m_screen->set_raw(MASTER_CLOCK*2/3, 512, 6, 298, 260, 7, 247); + m_screen->set_screen_update(FUNC(williams_state::screen_update_williams)); MCFG_VIDEO_START_OVERRIDE(williams_state,williams) @@ -1539,39 +1539,38 @@ MACHINE_CONFIG_START(williams_state::williams) m_pia[2]->writepa_handler().set("dac", FUNC(dac_byte_interface::data_w)); m_pia[2]->irqa_handler().set("soundirq", FUNC(input_merger_any_high_device::in_w<0>)); m_pia[2]->irqb_handler().set("soundirq", FUNC(input_merger_any_high_device::in_w<1>)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(williams_state::defender) +void williams_state::defender(machine_config &config) +{ williams(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(defender_map) + m_maincpu->set_addrmap(AS_PROGRAM, &williams_state::defender_map); - MCFG_DEVICE_MODIFY("soundcpu") - MCFG_DEVICE_PROGRAM_MAP(defender_sound_map) + m_soundcpu->set_addrmap(AS_PROGRAM, &williams_state::defender_sound_map); ADDRESS_MAP_BANK(config, "bankc000").set_map(&williams_state::defender_bankc000_map).set_options(ENDIANNESS_BIG, 8, 16, 0x1000); MCFG_MACHINE_START_OVERRIDE(williams_state,defender) MCFG_MACHINE_RESET_OVERRIDE(williams_state,defender) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(12, 304-1, 7, 247-1) -MACHINE_CONFIG_END + m_screen->set_visarea(12, 304-1, 7, 247-1); +} -MACHINE_CONFIG_START(williams_state::jin) // needs a different screen size or the credit text is clipped +void williams_state::jin(machine_config &config) // needs a different screen size or the credit text is clipped +{ defender(config); /* basic machine hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 315, 7, 247-1) -MACHINE_CONFIG_END + m_screen->set_visarea(0, 315, 7, 247-1); +} -MACHINE_CONFIG_START(williams_state::williams_muxed) +void williams_state::williams_muxed(machine_config &config) +{ williams(config); /* basic machine hardware */ @@ -1592,21 +1591,21 @@ MACHINE_CONFIG_START(williams_state::williams_muxed) LS157(config, m_mux1, 0); // IC4 on interface board (actually LS257 with OC tied low) m_mux1->a_in_callback().set_ioport("INP2A"); m_mux1->b_in_callback().set_ioport("INP1A"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(spdball_state::spdball) +void spdball_state::spdball(machine_config &config) +{ williams(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(spdball_map) + m_maincpu->set_addrmap(AS_PROGRAM, &spdball_state::spdball_map); /* pia */ PIA6821(config, m_pia[3], 0); m_pia[3]->readpa_handler().set_ioport("IN3"); m_pia[3]->readpb_handler().set_ioport("IN4"); -MACHINE_CONFIG_END +} void williams_state::lottofun(machine_config &config) @@ -1623,59 +1622,56 @@ void williams_state::lottofun(machine_config &config) } -MACHINE_CONFIG_START(williams_state::sinistar) +void williams_state::sinistar(machine_config &config) +{ williams(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(sinistar_map) + m_maincpu->set_addrmap(AS_PROGRAM, &williams_state::sinistar_map); /* sound hardware */ - MCFG_DEVICE_ADD("cvsd", HC55516, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.8) + HC55516(config, "cvsd", 0).add_route(ALL_OUTPUTS, "speaker", 0.8); /* pia */ m_pia[0]->readpa_handler().set(FUNC(williams_state::williams_49way_port_0_r)); m_pia[2]->ca2_handler().set("cvsd", FUNC(hc55516_device::digit_w)); m_pia[2]->cb2_handler().set("cvsd", FUNC(hc55516_device::clock_w)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(williams_state::playball) +void williams_state::playball(machine_config &config) +{ williams(config); /* basic machine hardware */ /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(6, 298-1, 8, 240-1) + m_screen->set_visarea(6, 298-1, 8, 240-1); /* sound hardware */ - MCFG_DEVICE_ADD("cvsd", HC55516, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.8) + HC55516(config, "cvsd", 0).add_route(ALL_OUTPUTS, "speaker", 0.8); /* pia */ m_pia[1]->writepb_handler().set(FUNC(williams_state::playball_snd_cmd_w)); m_pia[2]->ca2_handler().set("cvsd", FUNC(hc55516_device::digit_w)); m_pia[2]->cb2_handler().set("cvsd", FUNC(hc55516_device::clock_w)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(blaster_state::blastkit) +void blaster_state::blastkit(machine_config &config) +{ williams(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(blaster_map) + m_maincpu->set_addrmap(AS_PROGRAM, &blaster_state::blaster_map); MCFG_MACHINE_START_OVERRIDE(blaster_state,blaster) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(blaster_state,blaster) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(blaster_state, screen_update_blaster) + m_screen->set_screen_update(FUNC(blaster_state::screen_update_blaster)); /* pia */ m_pia[0]->readpa_handler().set("mux_a", FUNC(ls157_x2_device::output_r)); @@ -1686,7 +1682,7 @@ MACHINE_CONFIG_START(blaster_state::blastkit) LS157_X2(config, m_muxa, 0); m_muxa->a_in_callback().set_ioport("IN3"); m_muxa->b_in_callback().set(FUNC(williams_state::williams_49way_port_0_r)); -MACHINE_CONFIG_END +} void blaster_state::blaster(machine_config &config) @@ -1738,14 +1734,14 @@ void blaster_state::blaster(machine_config &config) } -MACHINE_CONFIG_START(williams2_state::williams2) - +void williams2_state::williams2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809E, MASTER_CLOCK/3/4) - MCFG_DEVICE_PROGRAM_MAP(williams2_d000_ram_map) + MC6809E(config, m_maincpu, MASTER_CLOCK/3/4); + m_maincpu->set_addrmap(AS_PROGRAM, &williams2_state::williams2_d000_ram_map); - MCFG_DEVICE_ADD("soundcpu", M6808, MASTER_CLOCK/3) /* yes, this is different from the older games */ - MCFG_DEVICE_PROGRAM_MAP(williams2_sound_map) + M6808(config, m_soundcpu, MASTER_CLOCK/3); /* yes, this is different from the older games */ + m_soundcpu->set_addrmap(AS_PROGRAM, &williams2_state::williams2_sound_map); ADDRESS_MAP_BANK(config, "bank8000").set_map(&williams2_state::williams2_bank8000_map).set_options(ENDIANNESS_BIG, 8, 12, 0x800); @@ -1765,10 +1761,10 @@ MACHINE_CONFIG_START(williams2_state::williams2) PALETTE(config, m_palette).set_entries(1024); GFXDECODE(config, m_gfxdecode, m_palette, gfx_williams2); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE | VIDEO_ALWAYS_UPDATE) - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2/3, 512, 8, 284, 260, 8, 248) - MCFG_SCREEN_UPDATE_DRIVER(williams2_state, screen_update_williams2) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE | VIDEO_ALWAYS_UPDATE); + m_screen->set_raw(MASTER_CLOCK*2/3, 512, 8, 284, 260, 8, 248); + m_screen->set_screen_update(FUNC(williams2_state::screen_update_williams2)); MCFG_VIDEO_START_OVERRIDE(williams2_state,williams2) @@ -1802,10 +1798,11 @@ MACHINE_CONFIG_START(williams2_state::williams2) m_pia[2]->ca2_handler().set(m_pia[1], FUNC(pia6821_device::cb1_w)); m_pia[2]->irqa_handler().set("soundirq", FUNC(input_merger_any_high_device::in_w<0>)); m_pia[2]->irqb_handler().set("soundirq", FUNC(input_merger_any_high_device::in_w<1>)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(williams2_state::inferno) +void williams2_state::inferno(machine_config &config) +{ williams2(config); m_pia[0]->readpa_handler().set("mux", FUNC(ls157_x2_device::output_r)); m_pia[0]->ca2_handler().set("mux", FUNC(ls157_x2_device::select_w)); @@ -1813,10 +1810,11 @@ MACHINE_CONFIG_START(williams2_state::inferno) LS157_X2(config, m_mux, 0); // IC45 (for PA4-PA7) + IC46 (for PA0-PA3) on CPU board m_mux->a_in_callback().set_ioport("INP1"); m_mux->b_in_callback().set_ioport("INP2"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(williams2_state::mysticm) +void williams2_state::mysticm(machine_config &config) +{ williams2(config); /* basic machine hardware */ @@ -1827,15 +1825,15 @@ MACHINE_CONFIG_START(williams2_state::mysticm) m_pia[1]->irqa_handler().set("mainirq", FUNC(input_merger_any_high_device::in_w<1>)); m_pia[1]->irqb_handler().set("mainirq", FUNC(input_merger_any_high_device::in_w<2>)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(tshoot_state::tshoot) +void tshoot_state::tshoot(machine_config &config) +{ williams2(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(williams2_d000_rom_map) + m_maincpu->set_addrmap(AS_PROGRAM, &tshoot_state::williams2_d000_rom_map); MCFG_MACHINE_START_OVERRIDE(tshoot_state,tshoot) @@ -1849,24 +1847,22 @@ MACHINE_CONFIG_START(tshoot_state::tshoot) m_pia[1]->irqa_handler().set("mainirq", FUNC(input_merger_any_high_device::in_w<2>)); m_pia[1]->irqb_handler().set("mainirq", FUNC(input_merger_any_high_device::in_w<3>)); - MCFG_DEVICE_MODIFY("pia_2") m_pia[2]->cb2_handler().set(FUNC(tshoot_state::maxvol_w)); LS157_X2(config, m_mux, 0); // U2 + U3 on interface board m_mux->a_in_callback().set_ioport("INP1"); m_mux->b_in_callback().set_ioport("INP2"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(joust2_state::joust2) +void joust2_state::joust2(machine_config &config) +{ williams2(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(williams2_d000_rom_map) + m_maincpu->set_addrmap(AS_PROGRAM, &joust2_state::williams2_d000_rom_map); - MCFG_DEVICE_ADD("cvsd", WILLIAMS_CVSD_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) + WILLIAMS_CVSD_SOUND(config, m_cvsd_sound).add_route(ALL_OUTPUTS, "speaker", 1.0); MCFG_MACHINE_START_OVERRIDE(joust2_state,joust2) MCFG_MACHINE_RESET_OVERRIDE(joust2_state,joust2) @@ -1886,7 +1882,7 @@ MACHINE_CONFIG_START(joust2_state::joust2) LS157(config, m_mux, 0); m_mux->a_in_callback().set_ioport("INP1"); m_mux->b_in_callback().set_ioport("INP2"); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/wink.cpp b/src/mame/drivers/wink.cpp index 91ada6938e2..440e5e652db 100644 --- a/src/mame/drivers/wink.cpp +++ b/src/mame/drivers/wink.cpp @@ -383,11 +383,12 @@ void wink_state::machine_reset() m_sound_flag = 0; } -MACHINE_CONFIG_START(wink_state::wink) +void wink_state::wink(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 12000000 / 4) - MCFG_DEVICE_PROGRAM_MAP(wink_map) - MCFG_DEVICE_IO_MAP(wink_io) + Z80(config, m_maincpu, 12000000 / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &wink_state::wink_map); + m_maincpu->set_addrmap(AS_IO, &wink_state::wink_io); ls259_device &mainlatch(LS259(config, "mainlatch")); mainlatch.q_out_cb<0>().set(FUNC(wink_state::nmi_enable_w)); @@ -399,22 +400,22 @@ MACHINE_CONFIG_START(wink_state::wink) mainlatch.q_out_cb<6>().set(FUNC(wink_state::coin_counter_w<1>)); mainlatch.q_out_cb<7>().set(FUNC(wink_state::coin_counter_w<2>)); - MCFG_DEVICE_ADD("audiocpu", Z80, 12000000 / 8) - MCFG_DEVICE_PROGRAM_MAP(wink_sound_map) - MCFG_DEVICE_IO_MAP(wink_sound_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(wink_state, wink_sound, 15625) + Z80(config, m_audiocpu, 12000000 / 8); + m_audiocpu->set_addrmap(AS_PROGRAM, &wink_state::wink_sound_map); + m_audiocpu->set_addrmap(AS_IO, &wink_state::wink_sound_io); + m_audiocpu->set_periodic_int(FUNC(wink_state::wink_sound), attotime::from_hz(15625)); 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(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(wink_state, screen_update_wink) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, wink_state, nmi_clock_w)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(wink_state::screen_update_wink)); + screen.set_palette("palette"); + screen.screen_vblank().set(FUNC(wink_state::nmi_clock_w)); GFXDECODE(config, m_gfxdecode, "palette", gfx_wink); PALETTE(config, "palette").set_format(palette_device::xBRG_444, 16); @@ -427,7 +428,7 @@ MACHINE_CONFIG_START(wink_state::wink) ay8912_device &aysnd(AY8912(config, "aysnd", 12000000 / 8)); aysnd.port_a_read_callback().set(FUNC(wink_state::sound_r)); aysnd.add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/wiping.cpp b/src/mame/drivers/wiping.cpp index 819f68261ba..a5bdb311fda 100644 --- a/src/mame/drivers/wiping.cpp +++ b/src/mame/drivers/wiping.cpp @@ -285,16 +285,16 @@ INTERRUPT_GEN_MEMBER(wiping_state::sound_timer_irq) -MACHINE_CONFIG_START(wiping_state::wiping) - +void wiping_state::wiping(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,18432000/6) /* 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", wiping_state, vblank_irq) + Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &wiping_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(wiping_state::vblank_irq)); - MCFG_DEVICE_ADD("audiocpu", Z80,18432000/6) /* 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(wiping_state, sound_timer_irq, 120) /* periodic interrupt, don't know about the frequency */ + Z80(config, m_audiocpu, 18432000/6); /* 3.072 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &wiping_state::sound_map); + m_audiocpu->set_periodic_int(FUNC(wiping_state::sound_timer_irq), attotime::from_hz(120)); /* periodic interrupt, don't know about the frequency */ ls259_device &mainlatch(LS259(config, "mainlatch")); // 5A mainlatch.q_out_cb<0>().set(FUNC(wiping_state::main_irq_mask_w)); // INT1 @@ -305,13 +305,13 @@ MACHINE_CONFIG_START(wiping_state::wiping) 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(36*8, 28*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(wiping_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(36*8, 28*8); + screen.set_visarea(0*8, 36*8-1, 0*8, 28*8-1); + screen.set_screen_update(FUNC(wiping_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_wiping); PALETTE(config, m_palette, FUNC(wiping_state::wiping_palette), 64*4+64*4, 32); @@ -320,7 +320,7 @@ MACHINE_CONFIG_START(wiping_state::wiping) SPEAKER(config, "mono").front_center(); WIPING_CUSTOM(config, "wiping", 96000).add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/witch.cpp b/src/mame/drivers/witch.cpp index a20142771b4..81dec49b544 100644 --- a/src/mame/drivers/witch.cpp +++ b/src/mame/drivers/witch.cpp @@ -954,16 +954,17 @@ void witch_state::machine_reset() m_motor_active = (ioport("YM_PortB")->read() & 0x08) ? 0 : 1; } -MACHINE_CONFIG_START(witch_state::witch) +void witch_state::witch(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) /* 3 MHz */ - MCFG_DEVICE_PROGRAM_MAP(witch_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", witch_state, irq0_line_assert) + Z80(config, m_maincpu, CPU_CLOCK); /* 3 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &witch_state::witch_main_map); + m_maincpu->set_vblank_int("screen", FUNC(witch_state::irq0_line_assert)); /* 2nd z80 */ - MCFG_DEVICE_ADD("sub", Z80, CPU_CLOCK) /* 3 MHz */ - MCFG_DEVICE_PROGRAM_MAP(witch_sub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", witch_state, irq0_line_assert) + Z80(config, m_subcpu, CPU_CLOCK); /* 3 MHz */ + m_subcpu->set_addrmap(AS_PROGRAM, &witch_state::witch_sub_map); + m_maincpu->set_vblank_int("screen", FUNC(witch_state::irq0_line_assert)); config.m_minimum_quantum = attotime::from_hz(6000); @@ -983,13 +984,13 @@ MACHINE_CONFIG_START(witch_state::witch) m_ppi[1]->out_pc_callback().set(FUNC(witch_state::write_a006)); /* 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(8, 256-1-8, 8*4, 256-8*4-1) - MCFG_SCREEN_UPDATE_DRIVER(witch_state, screen_update_witch) - 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(8, 256-1-8, 8*4, 256-8*4-1); + screen.set_screen_update(FUNC(witch_state::screen_update_witch)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_witch); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x800); @@ -1015,16 +1016,15 @@ MACHINE_CONFIG_START(witch_state::witch) ym2.port_a_write_callback().set(FUNC(witch_state::xscroll_w)); ym2.port_b_write_callback().set(FUNC(witch_state::yscroll_w)); ym2.add_route(ALL_OUTPUTS, "mono", 0.5); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(keirinou_state::keirinou) +void keirinou_state::keirinou(machine_config &config) +{ witch(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(keirinou_main_map) + m_maincpu->set_addrmap(AS_PROGRAM, &keirinou_state::keirinou_main_map); - MCFG_DEVICE_MODIFY("sub") - MCFG_DEVICE_PROGRAM_MAP(keirinou_sub_map) + m_subcpu->set_addrmap(AS_PROGRAM, &keirinou_state::keirinou_sub_map); PALETTE(config.replace(), m_palette).set_entries(0x200+0x80); m_gfxdecode->set_info(gfx_keirinou); @@ -1048,7 +1048,7 @@ MACHINE_CONFIG_START(keirinou_state::keirinou) config.device_remove("msm"); config.device_remove("ym1"); config.device_remove("ym2"); -MACHINE_CONFIG_END +} ROM_START( witch ) ROM_REGION( 0x30000, "maincpu", 0 ) diff --git a/src/mame/drivers/wiz.cpp b/src/mame/drivers/wiz.cpp index 9cdd53bd070..fa0228a83bb 100644 --- a/src/mame/drivers/wiz.cpp +++ b/src/mame/drivers/wiz.cpp @@ -790,25 +790,25 @@ INTERRUPT_GEN_MEMBER(wiz_state::wiz_sound_interrupt) device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -MACHINE_CONFIG_START(wiz_state::kungfut) - +void wiz_state::kungfut(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(kungfut_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", wiz_state, wiz_vblank_interrupt) + Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &wiz_state::kungfut_main_map); + m_maincpu->set_vblank_int("screen", FUNC(wiz_state::wiz_vblank_interrupt)); - MCFG_DEVICE_ADD("audiocpu", Z80, 18432000/6) /* 3.072 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(kungfut_sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(wiz_state, wiz_sound_interrupt, 4*60) /* ??? */ + Z80(config, m_audiocpu, 18432000/6); /* 3.072 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &wiz_state::kungfut_sound_map); + m_audiocpu->set_periodic_int(FUNC(wiz_state::wiz_sound_interrupt), attotime::from_hz(4*60)); /* ??? */ /* 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(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(wiz_state, screen_update_kungfut) - 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(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(wiz_state::screen_update_kungfut)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_stinger); PALETTE(config, m_palette, FUNC(wiz_state::wiz_palette), 256); @@ -823,57 +823,54 @@ MACHINE_CONFIG_START(wiz_state::kungfut) AY8910(config, "8910.2", 18432000/12).add_route(ALL_OUTPUTS, "mono", 0.10); AY8910(config, "8910.3", 18432000/12).add_route(ALL_OUTPUTS, "mono", 0.10); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(wiz_state::wiz) +void wiz_state::wiz(machine_config &config) +{ kungfut(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(wiz_main_map) + m_maincpu->set_addrmap(AS_PROGRAM, &wiz_state::wiz_main_map); /* video hardware */ m_gfxdecode->set_info(gfx_wiz); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(wiz_state, screen_update_wiz) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_screen_update(FUNC(wiz_state::screen_update_wiz)); +} -MACHINE_CONFIG_START(wiz_state::stinger) +void wiz_state::stinger(machine_config &config) +{ kungfut(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(stinger_main_map) - MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map) + m_maincpu->set_addrmap(AS_PROGRAM, &wiz_state::stinger_main_map); + m_maincpu->set_addrmap(AS_OPCODES, &wiz_state::decrypted_opcodes_map); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("audiocpu") - MCFG_DEVICE_PROGRAM_MAP(stinger_sound_map) + m_audiocpu->set_addrmap(AS_PROGRAM, &wiz_state::stinger_sound_map); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(wiz_state, screen_update_stinger) + subdevice<screen_device>("screen")->set_screen_update(FUNC(wiz_state::screen_update_stinger)); /* sound hardware */ config.device_remove("8910.3"); - MCFG_DEVICE_ADD("discrete", DISCRETE, stinger_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + DISCRETE(config, m_discrete, stinger_discrete).add_route(ALL_OUTPUTS, "mono", 0.5); +} -MACHINE_CONFIG_START(wiz_state::scion) +void wiz_state::scion(machine_config &config) +{ stinger(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_REMOVE_ADDRESS_MAP(AS_OPCODES) + Z80(config.replace(), m_maincpu, 18432000/6); /* 3.072 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &wiz_state::stinger_main_map); + m_maincpu->set_vblank_int("screen", FUNC(wiz_state::wiz_vblank_interrupt)); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(2*8, 32*8-1, 2*8, 30*8-1) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_visarea(2*8, 32*8-1, 2*8, 30*8-1); +} diff --git a/src/mame/drivers/wmg.cpp b/src/mame/drivers/wmg.cpp index 47bf94a9da0..fc2dbd43dd2 100644 --- a/src/mame/drivers/wmg.cpp +++ b/src/mame/drivers/wmg.cpp @@ -515,14 +515,14 @@ void wmg_state::init_wmg() * Machine Driver * *************************************/ -MACHINE_CONFIG_START(wmg_state::wmg) - +void wmg_state::wmg(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809E, MASTER_CLOCK/3/4) - MCFG_DEVICE_PROGRAM_MAP(wmg_cpu1) + MC6809E(config, m_maincpu, MASTER_CLOCK/3/4); + m_maincpu->set_addrmap(AS_PROGRAM, &wmg_state::wmg_cpu1); - MCFG_DEVICE_ADD("soundcpu", M6808, SOUND_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(wmg_cpu2) + M6808(config, m_soundcpu, SOUND_CLOCK); + m_soundcpu->set_addrmap(AS_PROGRAM, &wmg_state::wmg_cpu2); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -537,10 +537,10 @@ MACHINE_CONFIG_START(wmg_state::wmg) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE | VIDEO_ALWAYS_UPDATE) - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2/3, 512, 6, 298, 260, 7, 247) - MCFG_SCREEN_UPDATE_DRIVER(williams_state, screen_update_williams) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE | VIDEO_ALWAYS_UPDATE); + m_screen->set_raw(MASTER_CLOCK*2/3, 512, 6, 298, 260, 7, 247); + m_screen->set_screen_update(FUNC(williams_state::screen_update_williams)); MCFG_VIDEO_START_OVERRIDE(williams_state,williams) @@ -575,7 +575,7 @@ MACHINE_CONFIG_START(wmg_state::wmg) pia2.writepa_handler().set("dac", FUNC(dac_byte_interface::data_w)); pia2.irqa_handler().set("soundirq", FUNC(input_merger_any_high_device::in_w<0>)); pia2.irqb_handler().set("soundirq", FUNC(input_merger_any_high_device::in_w<1>)); -MACHINE_CONFIG_END +} /************************************* * diff --git a/src/mame/drivers/wms.cpp b/src/mame/drivers/wms.cpp index c14ae209c31..b06a92ef97b 100644 --- a/src/mame/drivers/wms.cpp +++ b/src/mame/drivers/wms.cpp @@ -178,28 +178,29 @@ static GFXDECODE_START( gfx_wms ) GFXDECODE_END -MACHINE_CONFIG_START(wms_state::wms) +void wms_state::wms(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I80188, MAIN_CLOCK ) // AMD N80C188-20, ( 40 MHz. internally divided by 2) - MCFG_DEVICE_PROGRAM_MAP(wms_map) - MCFG_DEVICE_IO_MAP(wms_io) - - MCFG_DEVICE_ADD("adsp", ADSP2105, MAIN_CLOCK / 2) // ADSP-2105 could run either at 13.824 or 20 MHz... - MCFG_DEVICE_DISABLE() - MCFG_DEVICE_PROGRAM_MAP(adsp_program_map) - MCFG_DEVICE_DATA_MAP(adsp_data_map) - - 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(wms_state, screen_update_wms) - MCFG_SCREEN_PALETTE("palette") + I80188(config, m_maincpu, MAIN_CLOCK); // AMD N80C188-20, ( 40 MHz. internally divided by 2) + m_maincpu->set_addrmap(AS_PROGRAM, &wms_state::wms_map); + m_maincpu->set_addrmap(AS_IO, &wms_state::wms_io); + + adsp2105_device &adsp(ADSP2105(config, "adsp", MAIN_CLOCK / 2)); // ADSP-2105 could run either at 13.824 or 20 MHz... + adsp.set_disable(); + adsp.set_addrmap(AS_PROGRAM, &wms_state::adsp_program_map); + adsp.set_addrmap(AS_DATA, &wms_state::adsp_data_map); + + 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(wms_state::screen_update_wms)); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_wms); - MCFG_PALETTE_ADD("palette", 0x100) -MACHINE_CONFIG_END + PALETTE(config, "palette").set_entries(0x100); +} /********************************************* diff --git a/src/mame/drivers/wolfpack.cpp b/src/mame/drivers/wolfpack.cpp index f35dea54029..611f453464f 100644 --- a/src/mame/drivers/wolfpack.cpp +++ b/src/mame/drivers/wolfpack.cpp @@ -306,31 +306,31 @@ static GFXDECODE_START( gfx_wolfpack ) GFXDECODE_END -MACHINE_CONFIG_START(wolfpack_state::wolfpack) - +void wolfpack_state::wolfpack(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, 12096000 / 16) - MCFG_DEVICE_PROGRAM_MAP(main_map) + M6502(config, m_maincpu, 12096000 / 16); + m_maincpu->set_addrmap(AS_PROGRAM, &wolfpack_state::main_map); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(512, 262) - MCFG_SCREEN_VISIBLE_AREA(0, 511, 16, 239) - MCFG_SCREEN_UPDATE_DRIVER(wolfpack_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, wolfpack_state, screen_vblank)) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(512, 262); + m_screen->set_visarea(0, 511, 16, 239); + m_screen->set_screen_update(FUNC(wolfpack_state::screen_update)); + m_screen->screen_vblank().set(FUNC(wolfpack_state::screen_vblank)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_wolfpack); PALETTE(config, m_palette, FUNC(wolfpack_state::wolfpack_palette), 12, 8); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speech", S14001A, 20000) /* RC Clock (C=100pf, R=470K-670K ohms, adjustable) ranging from 14925.37313hz to 21276.59574hz, likely factory set to 20000hz since anything below 19500 is too slow */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_CONFIG_END + S14001A(config, m_s14001a, 20000); /* RC Clock (C=100pf, R=470K-670K ohms, adjustable) ranging from 14925.37313hz to 21276.59574hz, likely factory set to 20000hz since anything below 19500 is too slow */ + m_s14001a->add_route(ALL_OUTPUTS, "mono", 1.00); +} ROM_START( wolfpack ) diff --git a/src/mame/drivers/wpc_95.cpp b/src/mame/drivers/wpc_95.cpp index c02f0c51ffa..d3d26e0d27f 100644 --- a/src/mame/drivers/wpc_95.cpp +++ b/src/mame/drivers/wpc_95.cpp @@ -2249,22 +2249,24 @@ static INPUT_PORTS_START( ttt ) PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("UL Flipper Button") INPUT_PORTS_END -MACHINE_CONFIG_START(wpc_95_state::wpc_95) +void wpc_95_state::wpc_95(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(8'000'000)/4) // 68B09E - MCFG_DEVICE_PROGRAM_MAP(wpc_95_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(wpc_95_state, irq0_line_assert, XTAL(8'000'000)/8192.0) + MC6809E(config, maincpu, XTAL(8'000'000)/4); // 68B09E + maincpu->set_addrmap(AS_PROGRAM, &wpc_95_state::wpc_95_map); + maincpu->set_periodic_int(FUNC(wpc_95_state::irq0_line_assert), attotime::from_hz(XTAL(8'000'000)/8192.0)); + TIMER(config, "zero_crossing").configure_periodic(FUNC(wpc_95_state::zc_timer), attotime::from_hz(120)); // Mains power zero crossing - MCFG_DEVICE_ADD("pic", WPC_PIC, 0) - MCFG_DEVICE_ADD("lamp", WPC_LAMP, 0) - MCFG_DEVICE_ADD("out", WPC_OUT, 0, 3) - MCFG_DEVICE_ADD("shift", WPC_SHIFT, 0) + WPC_PIC(config, pic, 0); + WPC_LAMP(config, lamp, 0); + WPC_OUT(config, out, 0, 3); + WPC_SHIFT(config, "shift", 0); WPC_DMD(config, "dmd", 0).scanline_callback().set(FUNC(wpc_95_state::scanline_irq)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); DCS_AUDIO_WPC(config, dcs, 0); -MACHINE_CONFIG_END +} /*----------------- / Attack From Mars #50041 diff --git a/src/mame/drivers/wpc_dcs.cpp b/src/mame/drivers/wpc_dcs.cpp index 30217fb9dc4..710d5995733 100644 --- a/src/mame/drivers/wpc_dcs.cpp +++ b/src/mame/drivers/wpc_dcs.cpp @@ -424,22 +424,23 @@ static INPUT_PORTS_START( wpc_dcs ) INPUT_PORTS_END -MACHINE_CONFIG_START(wpc_dcs_state::wpc_dcs) +void wpc_dcs_state::wpc_dcs(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6809, XTAL(8'000'000)/4) - MCFG_DEVICE_PROGRAM_MAP(wpc_dcs_map) + M6809(config, maincpu, XTAL(8'000'000)/4); + maincpu->set_addrmap(AS_PROGRAM, &wpc_dcs_state::wpc_dcs_map); + maincpu->set_periodic_int(FUNC(wpc_dcs_state::irq0_line_assert), attotime::from_hz(XTAL(8'000'000)/8192.0)); - MCFG_DEVICE_PERIODIC_INT_DRIVER(wpc_dcs_state, irq0_line_assert, XTAL(8'000'000)/8192.0) TIMER(config, "zero_crossing").configure_periodic(FUNC(wpc_dcs_state::zc_timer), attotime::from_hz(120)); // Mains power zero crossing - MCFG_DEVICE_ADD("lamp", WPC_LAMP, 0) - MCFG_DEVICE_ADD("out", WPC_OUT, 0, 3) - MCFG_DEVICE_ADD("shift", WPC_SHIFT, 0) + WPC_LAMP(config, lamp, 0); + WPC_OUT(config, out, 0, 3); + WPC_SHIFT(config, "shift", 0); WPC_DMD(config, "dmd", 0).scanline_callback().set(FUNC(wpc_dcs_state::scanline_irq)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); DCS_AUDIO_8K(config, dcs, 0); -MACHINE_CONFIG_END +} /*------------- / Demolition Man #50028 diff --git a/src/mame/drivers/wpc_s.cpp b/src/mame/drivers/wpc_s.cpp index e61fd98592e..d6d5e09e2c5 100644 --- a/src/mame/drivers/wpc_s.cpp +++ b/src/mame/drivers/wpc_s.cpp @@ -1971,22 +1971,24 @@ static INPUT_PORTS_START( tfs ) PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("UL Flipper Button") INPUT_PORTS_END -MACHINE_CONFIG_START(wpc_s_state::wpc_s) +void wpc_s_state::wpc_s(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(8'000'000)/4) - MCFG_DEVICE_PROGRAM_MAP(wpc_s_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(wpc_s_state, irq0_line_assert, XTAL(8'000'000)/8192.0) + MC6809E(config, maincpu, XTAL(8'000'000)/4); + maincpu->set_addrmap(AS_PROGRAM, &wpc_s_state::wpc_s_map); + maincpu->set_periodic_int(FUNC(wpc_s_state::irq0_line_assert), attotime::from_hz(XTAL(8'000'000)/8192.0)); + TIMER(config, "zero_crossing").configure_periodic(FUNC(wpc_s_state::zc_timer), attotime::from_hz(120)); // Mains power zero crossing - MCFG_DEVICE_ADD("shift", WPC_SHIFT, 0) - MCFG_DEVICE_ADD("pic", WPC_PIC, 0) - MCFG_DEVICE_ADD("lamp", WPC_LAMP, 0) - MCFG_DEVICE_ADD("out", WPC_OUT, 0, 5) + WPC_SHIFT(config, "shift", 0); + WPC_PIC(config, pic, 0); + WPC_LAMP(config, lamp, 0); + WPC_OUT(config, out, 0, 5); WPC_DMD(config, "dmd", 0).scanline_callback().set(FUNC(wpc_s_state::scanline_irq)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); DCS_AUDIO_8K(config, dcs, 0); -MACHINE_CONFIG_END +} /*----------------- / Corvette #50036 diff --git a/src/mame/drivers/wrally.cpp b/src/mame/drivers/wrally.cpp index 956fc6e36b5..55995779471 100644 --- a/src/mame/drivers/wrally.cpp +++ b/src/mame/drivers/wrally.cpp @@ -264,23 +264,24 @@ static GFXDECODE_START( gfx_wrally ) GFXDECODE_END -MACHINE_CONFIG_START(wrally_state::wrally) +void wrally_state::wrally(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,XTAL(24'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(wrally_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", wrally_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &wrally_state::wrally_map); + m_maincpu->set_vblank_int("screen", FUNC(wrally_state::irq6_line_hold)); - MCFG_DEVICE_ADD("gaelco_ds5002fp", GAELCO_DS5002FP, XTAL(24'000'000) / 2) /* verified on pcb */ - MCFG_DEVICE_ADDRESS_MAP(0, mcu_hostmem_map) + gaelco_ds5002fp_device &ds5002(GAELCO_DS5002FP(config, "gaelco_ds5002fp", XTAL(24'000'000) / 2)); /* verified on pcb */ + ds5002.set_addrmap(0, &wrally_state::mcu_hostmem_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_SIZE(64*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(8, 24*16-8-1, 16, 16*16-8-1) - MCFG_SCREEN_UPDATE_DRIVER(wrally_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(64*16, 32*16); + screen.set_visarea(8, 24*16-8-1, 16, 16*16-8-1); + screen.set_screen_update(FUNC(wrally_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_wrally); PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024*8); @@ -302,10 +303,10 @@ MACHINE_CONFIG_START(wrally_state::wrally) /* 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 + okim6295_device &oki(OKIM6295(config, "oki", XTAL(1'000'000), okim6295_device::PIN7_HIGH)); /* verified on pcb */ + oki.set_addrmap(0, &wrally_state::oki_map); + oki.add_route(ALL_OUTPUTS, "mono", 1.0); +} ROM_START( wrally ) diff --git a/src/mame/drivers/wswan.cpp b/src/mame/drivers/wswan.cpp index 0077257b28b..9ac840b7b82 100644 --- a/src/mame/drivers/wswan.cpp +++ b/src/mame/drivers/wswan.cpp @@ -117,25 +117,26 @@ static void wswan_cart(device_slot_interface &device) device.option_add_internal("ws_eeprom", WS_ROM_EEPROM); } -MACHINE_CONFIG_START(wswan_state::wswan) +void wswan_state::wswan(machine_config &config) +{ /* Basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, V30MZ, 3.072_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(wswan_mem) - MCFG_DEVICE_IO_MAP(wswan_io) + V30MZ(config, m_maincpu, 3.072_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &wswan_state::wswan_mem); + m_maincpu->set_addrmap(AS_IO, &wswan_state::wswan_io); WSWAN_VIDEO(config, m_vdp, 0); m_vdp->set_vdp_type(VDP_TYPE_WSWAN); m_vdp->set_irq_callback(FUNC(wswan_state::set_irq_line), this); m_vdp->set_dmasnd_callback(FUNC(wswan_state::dma_sound_cb), this); - MCFG_SCREEN_ADD("screen", LCD) -// MCFG_SCREEN_REFRESH_RATE(75) -// MCFG_SCREEN_VBLANK_TIME(0) - MCFG_SCREEN_UPDATE_DEVICE("vdp", wswan_video_device, screen_update) -// MCFG_SCREEN_SIZE(WSWAN_X_PIXELS, WSWAN_Y_PIXELS) -// MCFG_SCREEN_VISIBLE_AREA(0*8, WSWAN_X_PIXELS - 1, 0, WSWAN_Y_PIXELS - 1) - MCFG_SCREEN_RAW_PARAMS(3.072_MHz_XTAL, 256, 0, WSWAN_X_PIXELS, 159, 0, WSWAN_Y_PIXELS) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); +// screen.set_refresh_rate(75); +// screen.set_vblank_time(0); + screen.set_screen_update("vdp", FUNC(wswan_video_device::screen_update)); +// screen.set_size(WSWAN_X_PIXELS, WSWAN_Y_PIXELS); +// screen.set_visarea(0*8, WSWAN_X_PIXELS - 1, 0, WSWAN_Y_PIXELS - 1); + screen.set_raw(3.072_MHz_XTAL, 256, 0, WSWAN_X_PIXELS, 159, 0, WSWAN_Y_PIXELS); + screen.set_palette("palette"); config.set_default_layout(layout_wswan); @@ -149,20 +150,20 @@ MACHINE_CONFIG_START(wswan_state::wswan) /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD(m_sound, WSWAN_SND, 3.072_MHz_XTAL) - MCFG_DEVICE_ADDRESS_MAP(0, wswan_snd) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) - MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) + WSWAN_SND(config, m_sound, 3.072_MHz_XTAL); + m_sound->set_addrmap(0, &wswan_state::wswan_snd); + m_sound->add_route(0, "lspeaker", 0.50); + m_sound->add_route(1, "rspeaker", 0.50); /* cartridge */ - MCFG_DEVICE_ADD(m_cart, WS_CART_SLOT, 3.072_MHz_XTAL / 8, wswan_cart, nullptr) + WS_CART_SLOT(config, m_cart, 3.072_MHz_XTAL / 8, wswan_cart, nullptr); /* software lists */ SOFTWARE_LIST(config, "cart_list").set_original("wswan"); SOFTWARE_LIST(config, "wsc_list").set_compatible("wscolor"); SOFTWARE_LIST(config, "pc2_list").set_compatible("pockchalv2"); -MACHINE_CONFIG_END +} void wscolor_state::wscolor(machine_config &config) { diff --git a/src/mame/drivers/wwfsstar.cpp b/src/mame/drivers/wwfsstar.cpp index d853f4a128f..c7349d1c848 100644 --- a/src/mame/drivers/wwfsstar.cpp +++ b/src/mame/drivers/wwfsstar.cpp @@ -413,21 +413,22 @@ GFXDECODE_END Machine Driver(s) *******************************************************************************/ -MACHINE_CONFIG_START(wwfsstar_state::wwfsstar) - +void wwfsstar_state::wwfsstar(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(main_map) + M68000(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &wwfsstar_state::main_map); + TIMER(config, "scantimer").configure_scanline(FUNC(wwfsstar_state::scanline), "screen", 0, 1); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(3'579'545)) - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, XTAL(3'579'545)); + m_audiocpu->set_addrmap(AS_PROGRAM, &wwfsstar_state::sound_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 320, 0, 256, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */ - MCFG_SCREEN_UPDATE_DRIVER(wwfsstar_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(PIXEL_CLOCK, 320, 0, 256, 272, 8, 248); /* HTOTAL and VTOTAL are guessed */ + m_screen->set_screen_update(FUNC(wwfsstar_state::screen_update)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_wwfsstar); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 384); @@ -444,10 +445,10 @@ MACHINE_CONFIG_START(wwfsstar_state::wwfsstar) ymsnd.add_route(0, "lspeaker", 0.45); ymsnd.add_route(1, "rspeaker", 0.45); - MCFG_DEVICE_ADD("oki", OKIM6295, 1.056_MHz_XTAL, okim6295_device::PIN7_HIGH) - 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", 1.056_MHz_XTAL, okim6295_device::PIN7_HIGH)); + oki.add_route(ALL_OUTPUTS, "lspeaker", 0.47); + oki.add_route(ALL_OUTPUTS, "rspeaker", 0.47); +} /******************************************************************************* Rom Loaders / Game Drivers diff --git a/src/mame/drivers/wyse.cpp b/src/mame/drivers/wyse.cpp index 7e4cdf90eaf..d99891b5292 100644 --- a/src/mame/drivers/wyse.cpp +++ b/src/mame/drivers/wyse.cpp @@ -54,11 +54,12 @@ void wyse_state::io_map(address_map &map) static INPUT_PORTS_START( wyse ) INPUT_PORTS_END -MACHINE_CONFIG_START(wyse_state::wyse) - MCFG_DEVICE_ADD("maincpu", I8031, 11'000'000) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) -MACHINE_CONFIG_END +void wyse_state::wyse(machine_config &config) +{ + i8031_device &maincpu(I8031(config, "maincpu", 11'000'000)); + maincpu.set_addrmap(AS_PROGRAM, &wyse_state::mem_map); + maincpu.set_addrmap(AS_IO, &wyse_state::io_map); +} ROM_START( wy30p ) ROM_REGION( 0x10000, "maincpu", 0 ) diff --git a/src/mame/drivers/x07.cpp b/src/mame/drivers/x07.cpp index 7db018ad00b..916a2fe1b94 100644 --- a/src/mame/drivers/x07.cpp +++ b/src/mame/drivers/x07.cpp @@ -1482,18 +1482,18 @@ void x07_state::machine_reset() MACHINE_CONFIG_START(x07_state::x07) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", NSC800, 15.36_MHz_XTAL / 4) - MCFG_DEVICE_PROGRAM_MAP(x07_mem) - MCFG_DEVICE_IO_MAP(x07_io) + NSC800(config, m_maincpu, 15.36_MHz_XTAL / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &x07_state::x07_mem); + m_maincpu->set_addrmap(AS_IO, &x07_state::x07_io); /* video hardware */ - MCFG_SCREEN_ADD("lcd", LCD) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(x07_state, screen_update) - MCFG_SCREEN_SIZE(120, 32) - MCFG_SCREEN_VISIBLE_AREA(0, 120-1, 0, 32-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &lcd(SCREEN(config, "lcd", SCREEN_TYPE_LCD)); + lcd.set_refresh_hz(60); + lcd.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + lcd.set_screen_update(FUNC(x07_state::screen_update)); + lcd.set_size(120, 32); + lcd.set_visarea(0, 120-1, 0, 32-1); + lcd.set_palette("palette"); PALETTE(config, "palette", FUNC(x07_state::x07_palette), 2); GFXDECODE(config, "gfxdecode", "palette", gfx_x07); diff --git a/src/mame/drivers/x1.cpp b/src/mame/drivers/x1.cpp index dd7dce36b35..8835141ef44 100644 --- a/src/mame/drivers/x1.cpp +++ b/src/mame/drivers/x1.cpp @@ -2191,14 +2191,15 @@ static void x1_floppies(device_slot_interface &device) device.option_add("dd", FLOPPY_525_DD); } -MACHINE_CONFIG_START(x1_state::x1) +void x1_state::x1(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, MAIN_CLOCK/4); m_maincpu->set_addrmap(AS_PROGRAM, &x1_state::x1_mem); m_maincpu->set_addrmap(AS_IO, &x1_state::x1_io); m_maincpu->set_daisy_config(x1_daisy); - ADDRESS_MAP_BANK(config, "iobank").set_map(&x1_state::x1_io_banks).set_options(ENDIANNESS_LITTLE, 8, 17, 0x10000); + ADDRESS_MAP_BANK(config, m_iobank).set_map(&x1_state::x1_io_banks).set_options(ENDIANNESS_LITTLE, 8, 17, 0x10000); z80ctc_device& ctc(Z80CTC(config, "ctc", MAIN_CLOCK/4)); ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); @@ -2206,7 +2207,7 @@ MACHINE_CONFIG_START(x1_state::x1) ctc.zc_callback<1>().set("ctc", FUNC(z80ctc_device::trg1)); ctc.zc_callback<2>().set("ctc", FUNC(z80ctc_device::trg2)); - MCFG_DEVICE_ADD("x1kb", X1_KEYBOARD, 0) + X1_KEYBOARD(config, "x1kb", 0); i8255_device &ppi(I8255A(config, "ppi8255_0")); ppi.in_pa_callback().set(FUNC(x1_state::x1_porta_r)); @@ -2220,12 +2221,12 @@ MACHINE_CONFIG_START(x1_state::x1) MCFG_MACHINE_RESET_OVERRIDE(x1_state,x1) /* 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(x1_state, screen_update_x1) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(640, 480); + m_screen->set_visarea(0, 640-1, 0, 480-1); + m_screen->set_screen_update(FUNC(x1_state::screen_update_x1)); H46505(config, m_crtc, (VDP_CLOCK/48)); //unknown divider m_crtc->set_screen(m_screen); @@ -2249,8 +2250,7 @@ MACHINE_CONFIG_START(x1_state::x1) SOFTWARE_LIST(config, "flop_list").set_original("x1_flop"); - MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "x1_cart") - MCFG_GENERIC_EXTENSIONS("bin,rom") + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "x1_cart", "bin,rom"); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -2274,9 +2274,10 @@ MACHINE_CONFIG_START(x1_state::x1) TIMER(config, "keyboard_timer").configure_periodic(FUNC(x1_state::x1_keyboard_callback), attotime::from_hz(250)); TIMER(config, "cmt_wind_timer").configure_periodic(FUNC(x1_state::x1_cmt_wind_timer), attotime::from_hz(16)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(x1_state::x1turbo) +void x1_state::x1turbo(machine_config &config) +{ x1(config); m_maincpu->set_addrmap(AS_PROGRAM, &x1_state::x1turbo_mem); @@ -2284,8 +2285,7 @@ MACHINE_CONFIG_START(x1_state::x1turbo) MCFG_MACHINE_RESET_OVERRIDE(x1_state,x1turbo) - MCFG_DEVICE_MODIFY("iobank") - MCFG_DEVICE_PROGRAM_MAP(x1turbo_io_banks) + m_iobank->set_map(&x1_state::x1turbo_io_banks); z80sio0_device& sio(Z80SIO0(config, "sio", MAIN_CLOCK/4)); sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); @@ -2303,7 +2303,7 @@ MACHINE_CONFIG_START(x1_state::x1turbo) YM2151(config, m_ym, MAIN_CLOCK/8); //option board m_ym->add_route(0, "lspeaker", 0.50); m_ym->add_route(1, "rspeaker", 0.50); -MACHINE_CONFIG_END +} /************************************* * diff --git a/src/mame/drivers/x1twin.cpp b/src/mame/drivers/x1twin.cpp index 03f01c80003..698f5059488 100644 --- a/src/mame/drivers/x1twin.cpp +++ b/src/mame/drivers/x1twin.cpp @@ -410,7 +410,8 @@ static void x1_floppies(device_slot_interface &device) device.option_add("dd", FLOPPY_525_DD); } -MACHINE_CONFIG_START(x1twin_state::x1twin) +void x1twin_state::x1twin(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, X1_MAIN_CLOCK/4); m_maincpu->set_addrmap(AS_PROGRAM, &x1twin_state::x1_mem); @@ -425,7 +426,7 @@ MACHINE_CONFIG_START(x1twin_state::x1twin) ctc.zc_callback<1>().set("ctc", FUNC(z80ctc_device::trg1)); ctc.zc_callback<2>().set("ctc", FUNC(z80ctc_device::trg2)); - MCFG_DEVICE_ADD("x1kb", X1_KEYBOARD, 0) + X1_KEYBOARD(config, "x1kb", 0); i8255_device &ppi(I8255A(config, "ppi8255_0")); ppi.in_pa_callback().set(FUNC(x1_state::x1_porta_r)); @@ -447,23 +448,23 @@ MACHINE_CONFIG_START(x1twin_state::x1twin) m_maincpu->add_route(0, "pce_l", 0.5); m_maincpu->add_route(1, "pce_r", 0.5); - MCFG_TIMER_ADD_SCANLINE("scantimer", pce_interrupt, "pce_screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(x1twin_state::pce_interrupt), "pce_screen", 0, 1); #endif config.set_default_layout(layout_dualhsxs); /* 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(x1twin_state, screen_update_x1) - - MCFG_SCREEN_ADD("pce_screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, huc6260_device::WPF, 70, 70 + 512 + 32, huc6260_device::LPF, 14, 14+242) - MCFG_SCREEN_UPDATE_DRIVER(x1twin_state, screen_update_x1pce) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(640, 480); + m_screen->set_visarea(0, 640-1, 0, 480-1); + m_screen->set_screen_update(FUNC(x1twin_state::screen_update_x1)); + + screen_device &pce_screen(SCREEN(config, "pce_screen", SCREEN_TYPE_RASTER)); + pce_screen.set_refresh_hz(60); + pce_screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + pce_screen.set_raw(PCE_MAIN_CLOCK/2, huc6260_device::WPF, 70, 70 + 512 + 32, huc6260_device::LPF, 14, 14+242); + pce_screen.set_screen_update(FUNC(x1twin_state::screen_update_x1pce)); H46505(config, m_crtc, (VDP_CLOCK/48)); //unknown divider m_crtc->set_screen(m_screen); @@ -487,8 +488,7 @@ MACHINE_CONFIG_START(x1twin_state::x1twin) SOFTWARE_LIST(config, "flop_list").set_original("x1_flop"); - MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "x1_cart") - MCFG_GENERIC_EXTENSIONS("bin,rom") + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "x1_cart", "bin,rom"); SPEAKER(config, "x1_l").front_left(); SPEAKER(config, "x1_r").front_right(); @@ -517,7 +517,7 @@ MACHINE_CONFIG_START(x1twin_state::x1twin) TIMER(config, "keyboard_timer").configure_periodic(FUNC(x1twin_state::x1_keyboard_callback), attotime::from_hz(250)); TIMER(config, "cmt_wind_timer").configure_periodic(FUNC(x1twin_state::x1_cmt_wind_timer), attotime::from_hz(16)); -MACHINE_CONFIG_END +} ROM_START( x1twin ) ROM_REGION( 0x10000, "x1_cpu", ROMREGION_ERASEFF ) diff --git a/src/mame/drivers/xain.cpp b/src/mame/drivers/xain.cpp index 174d6f93117..f1e7ba5aa94 100644 --- a/src/mame/drivers/xain.cpp +++ b/src/mame/drivers/xain.cpp @@ -471,28 +471,29 @@ void xain_state::machine_start() save_item(NAME(m_vblank)); } -MACHINE_CONFIG_START(xain_state::xsleena) - +void xain_state::xsleena(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD(m_maincpu, MC6809E, CPU_CLOCK) // 68B09E - MCFG_DEVICE_PROGRAM_MAP(main_map) + MC6809E(config, m_maincpu, CPU_CLOCK); // 68B09E + m_maincpu->set_addrmap(AS_PROGRAM, &xain_state::main_map); + TIMER(config, "scantimer").configure_scanline(FUNC(xain_state::scanline), "screen", 0, 1); - MCFG_DEVICE_ADD(m_subcpu, MC6809E, CPU_CLOCK) // 68B09E - MCFG_DEVICE_PROGRAM_MAP(cpu_map_B) + MC6809E(config, m_subcpu, CPU_CLOCK); // 68B09E + m_subcpu->set_addrmap(AS_PROGRAM, &xain_state::cpu_map_B); - MCFG_DEVICE_ADD(m_audiocpu, MC6809, PIXEL_CLOCK) // 68A09 - MCFG_DEVICE_PROGRAM_MAP(sound_map) + MC6809(config, m_audiocpu, PIXEL_CLOCK); // 68A09 + m_audiocpu->set_addrmap(AS_PROGRAM, &xain_state::sound_map); TAITO68705_MCU(config, m_mcu, MCU_CLOCK); config.m_perfect_cpu_quantum = subtag("maincpu"); // video hardware - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 8, 248) // based on ddragon driver - MCFG_SCREEN_UPDATE_DRIVER(xain_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 8, 248); // based on ddragon driver + m_screen->set_screen_update(FUNC(xain_state::screen_update)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_xain); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 512); @@ -514,17 +515,17 @@ MACHINE_CONFIG_START(xain_state::xsleena) ym2.add_route(1, "mono", 0.50); ym2.add_route(2, "mono", 0.50); ym2.add_route(3, "mono", 0.40); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(xain_state::xsleenab) +void xain_state::xsleenab(machine_config &config) +{ xsleena(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(bootleg_map) + m_maincpu->set_addrmap(AS_PROGRAM, &xain_state::bootleg_map); config.device_remove("mcu"); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/xbox.cpp b/src/mame/drivers/xbox.cpp index 33cde885e1e..1452d3ce5c3 100644 --- a/src/mame/drivers/xbox.cpp +++ b/src/mame/drivers/xbox.cpp @@ -172,9 +172,8 @@ void xbox_ata_devices(device_slot_interface &device) MACHINE_CONFIG_START(xbox_state::xbox) xbox_base(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(xbox_map) - MCFG_DEVICE_IO_MAP(xbox_map_io) + m_maincpu->set_addrmap(AS_PROGRAM, &xbox_state::xbox_map); + m_maincpu->set_addrmap(AS_IO, &xbox_state::xbox_map_io); MCFG_DEVICE_MODIFY(":pci:09.0:ide:0") MCFG_DEVICE_SLOT_INTERFACE(xbox_ata_devices, "hdd", true) @@ -189,7 +188,7 @@ MACHINE_CONFIG_START(xbox_state::xbox) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ohci_gamepad", OHCI_GAME_CONTROLLER, 0) + OHCI_GAME_CONTROLLER(config, "ohci_gamepad", 0); MACHINE_CONFIG_END diff --git a/src/mame/drivers/xerox820.cpp b/src/mame/drivers/xerox820.cpp index f0ce88ec8d0..5aef2816bc6 100644 --- a/src/mame/drivers/xerox820.cpp +++ b/src/mame/drivers/xerox820.cpp @@ -609,9 +609,9 @@ MACHINE_CONFIG_START(xerox820_state::xerox820) m_maincpu->set_daisy_config(xerox820_daisy_chain); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_UPDATE_DRIVER(xerox820_state, screen_update) - MCFG_SCREEN_RAW_PARAMS(10.69425_MHz_XTAL, 700, 0, 560, 260, 0, 240) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(xerox820_state::screen_update)); + screen.set_raw(10.69425_MHz_XTAL, 700, 0, 560, 260, 0, 240); GFXDECODE(config, "gfxdecode", m_palette, gfx_xerox820); PALETTE(config, m_palette, palette_device::MONOCHROME); @@ -669,13 +669,13 @@ MACHINE_CONFIG_START(xerox820_state::xerox820) MCFG_QUICKLOAD_ADD("quickload", xerox820_state, xerox820, "com,cpm", attotime::from_seconds(3)) MACHINE_CONFIG_END -MACHINE_CONFIG_START(bigboard_state::bigboard) +void bigboard_state::bigboard(machine_config &config) +{ xerox820(config); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, 950) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) /* bigboard only */ -MACHINE_CONFIG_END + BEEP(config, m_beeper, 950).add_route(ALL_OUTPUTS, "mono", 1.00); /* bigboard only */ +} MACHINE_CONFIG_START(xerox820ii_state::xerox820ii) /* basic machine hardware */ @@ -685,17 +685,16 @@ MACHINE_CONFIG_START(xerox820ii_state::xerox820ii) m_maincpu->set_daisy_config(xerox820_daisy_chain); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_UPDATE_DRIVER(xerox820ii_state, screen_update) - MCFG_SCREEN_RAW_PARAMS(10.69425_MHz_XTAL, 700, 0, 560, 260, 0, 240) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(xerox820ii_state::screen_update)); + screen.set_raw(10.69425_MHz_XTAL, 700, 0, 560, 260, 0, 240); GFXDECODE(config, "gfxdecode", m_palette, gfx_xerox820ii); PALETTE(config, m_palette, palette_device::MONOCHROME); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); /* devices */ Z80PIO(config, m_kbpio, 16_MHz_XTAL / 4); @@ -758,8 +757,7 @@ MACHINE_CONFIG_START(xerox820ii_state::xerox820ii) m_sasibus->cd_handler().set("sasi_ctrl_in", FUNC(input_buffer_device::write_bit2)).exor(1); m_sasibus->req_handler().set("sasi_ctrl_in", FUNC(input_buffer_device::write_bit3)).exor(1); m_sasibus->io_handler().set("sasi_ctrl_in", FUNC(input_buffer_device::write_bit4)).exor(1); - - MCFG_SCSIDEV_ADD(SASIBUS_TAG ":" SCSI_PORT_DEVICE1, "harddisk", SA1403D, SCSI_ID_0) + m_sasibus->set_slot_device(1, "harddisk", SA1403D, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0)); output_latch_device &sasi_data_out(OUTPUT_LATCH(config, "sasi_data_out")); m_sasibus->set_output_latch(sasi_data_out); @@ -774,14 +772,15 @@ MACHINE_CONFIG_START(xerox820ii_state::xerox820ii) MCFG_QUICKLOAD_ADD("quickload", xerox820_state, xerox820, "com,cpm", attotime::from_seconds(3)) MACHINE_CONFIG_END -MACHINE_CONFIG_START(xerox820ii_state::xerox168) +void xerox820ii_state::xerox168(machine_config &config) +{ xerox820ii(config); - MCFG_DEVICE_ADD(I8086_TAG, I8086, 4770000) - MCFG_DEVICE_PROGRAM_MAP(xerox168_mem) + i8086_cpu_device &i8086(I8086(config, I8086_TAG, 4770000)); + i8086.set_addrmap(AS_PROGRAM, &xerox820ii_state::xerox168_mem); /* internal ram */ m_ram->set_default_size("192K").set_extra_options("320K"); -MACHINE_CONFIG_END +} void xerox820_state::mk83(machine_config & config) { diff --git a/src/mame/drivers/xmen.cpp b/src/mame/drivers/xmen.cpp index 5f5f110e3a6..bfb8954538f 100644 --- a/src/mame/drivers/xmen.cpp +++ b/src/mame/drivers/xmen.cpp @@ -298,28 +298,29 @@ TIMER_DEVICE_CALLBACK_MEMBER(xmen_state::xmen_scanline) } -MACHINE_CONFIG_START(xmen_state::xmen) - +void xmen_state::xmen(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(main_map) + M68000(config, m_maincpu, XTAL(16'000'000)); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &xmen_state::main_map); + TIMER(config, "scantimer").configure_scanline(FUNC(xmen_state::xmen_scanline), "screen", 0, 1); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, XTAL(16'000'000)/2); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &xmen_state::sound_map); EEPROM_ER5911_8BIT(config, "eeprom"); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */ - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) /* correct, same issue of TMNT2 */ - MCFG_SCREEN_UPDATE_DRIVER(xmen_state, screen_update_xmen) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(59.17); /* verified on pcb */ + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(64*8, 32*8); + m_screen->set_visarea(13*8, (64-13)*8-1, 2*8, 30*8-1 ); /* correct, same issue of tmnt2 */ + m_screen->set_screen_update(FUNC(xmen_state::screen_update_xmen)); + m_screen->set_palette("palette"); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 2048).enable_shadows(); @@ -342,20 +343,21 @@ MACHINE_CONFIG_START(xmen_state::xmen) YM2151(config, "ymsnd", XTAL(16'000'000)/4).add_route(0, "lspeaker", 0.20).add_route(1, "rspeaker", 0.20); /* verified on pcb */ - MCFG_DEVICE_ADD("k054539", K054539, XTAL(18'432'000)) - MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(xmen_state::xmen6p) + K054539(config, m_k054539, XTAL(18'432'000)); + m_k054539->add_route(0, "rspeaker", 1.00); + m_k054539->add_route(1, "lspeaker", 1.00); +} +void xmen_state::xmen6p(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)) - MCFG_DEVICE_PROGRAM_MAP(_6p_main_map) + M68000(config, m_maincpu, XTAL(16'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &xmen_state::_6p_main_map); + TIMER(config, "scantimer").configure_scanline(FUNC(xmen_state::xmen_scanline), "screen", 0, 1); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, XTAL(16'000'000)/2); + m_audiocpu->set_addrmap(AS_PROGRAM, &xmen_state::sound_map); EEPROM_ER5911_8BIT(config, "eeprom"); @@ -365,22 +367,22 @@ MACHINE_CONFIG_START(xmen_state::xmen6p) PALETTE(config, "palette").set_format(palette_device::xBGR_555, 2048).enable_shadows(); config.set_default_layout(layout_dualhsxs); - 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(12*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(xmen_state, screen_update_xmen6p_left) - MCFG_SCREEN_PALETTE("palette") - - MCFG_SCREEN_ADD("screen2", 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(16*8, 52*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(xmen_state, screen_update_xmen6p_right) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, xmen_state, screen_vblank_xmen6p)) - 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(12*8, 48*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(xmen_state::screen_update_xmen6p_left)); + m_screen->set_palette("palette"); + + screen_device &screen2(SCREEN(config, "screen2", SCREEN_TYPE_RASTER)); + screen2.set_refresh_hz(60); + screen2.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen2.set_size(64*8, 32*8); + screen2.set_visarea(16*8, 52*8-1, 2*8, 30*8-1); + screen2.set_screen_update(FUNC(xmen_state::screen_update_xmen6p_right)); + screen2.screen_vblank().set(FUNC(xmen_state::screen_vblank_xmen6p)); + screen2.set_palette("palette"); MCFG_VIDEO_START_OVERRIDE(xmen_state,xmen6p) @@ -404,10 +406,10 @@ MACHINE_CONFIG_START(xmen_state::xmen6p) YM2151(config, "ymsnd", XTAL(16'000'000)/4).add_route(0, "lspeaker", 0.20).add_route(1, "rspeaker", 0.20); - MCFG_DEVICE_ADD("k054539", K054539, XTAL(18'432'000)) - MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) -MACHINE_CONFIG_END + K054539(config, m_k054539, XTAL(18'432'000)); + m_k054539->add_route(0, "rspeaker", 1.00); + m_k054539->add_route(1, "lspeaker", 1.00); +} /*************************************************************************** diff --git a/src/mame/drivers/xtom3d.cpp b/src/mame/drivers/xtom3d.cpp index 3a7253bdfdd..34137b1c654 100644 --- a/src/mame/drivers/xtom3d.cpp +++ b/src/mame/drivers/xtom3d.cpp @@ -408,10 +408,10 @@ void xtom3d_state::machine_reset() } MACHINE_CONFIG_START(xtom3d_state::xtom3d) - MCFG_DEVICE_ADD("maincpu", PENTIUM2, 450000000/16) // actually Pentium II 450 - MCFG_DEVICE_PROGRAM_MAP(xtom3d_map) - MCFG_DEVICE_IO_MAP(xtom3d_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + PENTIUM2(config, m_maincpu, 450000000/16); // actually Pentium II 450 + m_maincpu->set_addrmap(AS_PROGRAM, &xtom3d_state::xtom3d_map); + m_maincpu->set_addrmap(AS_IO, &xtom3d_state::xtom3d_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); pcat_common(config); diff --git a/src/mame/drivers/xxmissio.cpp b/src/mame/drivers/xxmissio.cpp index 8a20845c4de..f6333035a5f 100644 --- a/src/mame/drivers/xxmissio.cpp +++ b/src/mame/drivers/xxmissio.cpp @@ -265,27 +265,27 @@ GFXDECODE_END /****************************************************************************/ -MACHINE_CONFIG_START(xxmissio_state::xxmissio) - +void xxmissio_state::xxmissio(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,12000000/4) /* 3.0MHz */ - MCFG_DEVICE_PROGRAM_MAP(map1) + Z80(config, m_maincpu, 12000000/4); /* 3.0MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &xxmissio_state::map1); - MCFG_DEVICE_ADD("sub", Z80,12000000/4) /* 3.0MHz */ - MCFG_DEVICE_PROGRAM_MAP(map2) - MCFG_DEVICE_PERIODIC_INT_DRIVER(xxmissio_state, interrupt_s, 2*60) + Z80(config, m_subcpu, 12000000/4); /* 3.0MHz */ + m_subcpu->set_addrmap(AS_PROGRAM, &xxmissio_state::map2); + m_subcpu->set_periodic_int(FUNC(xxmissio_state::interrupt_s), attotime::from_hz(2*60)); config.m_minimum_quantum = attotime::from_hz(6000); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 4*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(xxmissio_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, xxmissio_state, interrupt_m)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 4*8, 28*8-1); + screen.set_screen_update(FUNC(xxmissio_state::screen_update)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(xxmissio_state::interrupt_m)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_xxmissio); PALETTE(config, m_palette).set_format(1, &xxmissio_state::BBGGRRII, 768); @@ -308,7 +308,7 @@ MACHINE_CONFIG_START(xxmissio_state::xxmissio) ym2.add_route(1, "mono", 0.15); ym2.add_route(2, "mono", 0.15); ym2.add_route(3, "mono", 0.40); -MACHINE_CONFIG_END +} /****************************************************************************/ diff --git a/src/mame/drivers/xybots.cpp b/src/mame/drivers/xybots.cpp index 51dbc9cecff..96dc31fb701 100644 --- a/src/mame/drivers/xybots.cpp +++ b/src/mame/drivers/xybots.cpp @@ -175,11 +175,11 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(xybots_state::xybots) - +void xybots_state::xybots(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) + M68000(config, m_maincpu, ATARI_CLOCK_14MHz/2); + m_maincpu->set_addrmap(AS_PROGRAM, &xybots_state::main_map); SLAPSTIC(config, "slapstic", 107, true); @@ -191,20 +191,20 @@ MACHINE_CONFIG_START(xybots_state::xybots) GFXDECODE(config, "gfxdecode", "palette", gfx_xybots); PALETTE(config, "palette").set_format(palette_device::IRGB_4444, 1024); - MCFG_TILEMAP_ADD_STANDARD("playfield", "gfxdecode", 2, xybots_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 64,32) - MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", "gfxdecode", 2, xybots_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0) + TILEMAP(config, m_playfield_tilemap, "gfxdecode", 2, 8, 8, TILEMAP_SCAN_ROWS, 64, 32).set_info_callback(FUNC(xybots_state::get_playfield_tile_info)); + TILEMAP(config, m_alpha_tilemap, "gfxdecode", 2, 8, 8, TILEMAP_SCAN_ROWS, 64, 32, 0).set_info_callback(FUNC(xybots_state::get_alpha_tile_info)); ATARI_MOTION_OBJECTS(config, m_mob, 0, m_screen, xybots_state::s_mob_config); m_mob->set_gfxdecode(m_gfxdecode); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); /* note: these parameters are from published specs, not derived */ /* the board uses a SYNGEN chip to generate video signals */ - MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_DRIVER(xybots_state, screen_update_xybots) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, xybots_state, video_int_write_line)) + m_screen->set_raw(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240); + m_screen->set_screen_update(FUNC(xybots_state::screen_update_xybots)); + m_screen->set_palette("palette"); + m_screen->screen_vblank().set(FUNC(xybots_state::video_int_write_line)); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -217,7 +217,7 @@ MACHINE_CONFIG_START(xybots_state::xybots) m_jsa->add_route(1, "lspeaker", 1.0); config.device_remove("jsa:pokey"); config.device_remove("jsa:tms"); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/xyonix.cpp b/src/mame/drivers/xyonix.cpp index f636445eb2a..01d513f4e3c 100644 --- a/src/mame/drivers/xyonix.cpp +++ b/src/mame/drivers/xyonix.cpp @@ -246,23 +246,23 @@ GFXDECODE_END /* MACHINE driver *************************************************************/ -MACHINE_CONFIG_START(xyonix_state::xyonix) - +void xyonix_state::xyonix(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,16000000 / 4) /* 4 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_IO_MAP(port_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(xyonix_state, irq0_line_assert, 4*60) /* ?? controls music tempo */ + Z80(config, m_maincpu, 16000000 / 4); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &xyonix_state::main_map); + m_maincpu->set_addrmap(AS_IO, &xyonix_state::port_map); + m_maincpu->set_periodic_int(FUNC(xyonix_state::irq0_line_assert), attotime::from_hz(4*60)); /* ?? controls music tempo */ /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(80*4, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0, 80*4-1, 0, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(xyonix_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, xyonix_state, nmiclk_w)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(80*4, 32*8); + screen.set_visarea(0, 80*4-1, 0, 28*8-1); + screen.set_screen_update(FUNC(xyonix_state::screen_update)); + screen.set_palette("palette"); + screen.screen_vblank().set(FUNC(xyonix_state::nmiclk_w)); GFXDECODE(config, m_gfxdecode, "palette", gfx_xyonix); PALETTE(config, "palette", FUNC(xyonix_state::xyonix_palette), 256); @@ -272,7 +272,7 @@ MACHINE_CONFIG_START(xyonix_state::xyonix) SN76496(config, "sn1", 16000000/4).add_route(ALL_OUTPUTS, "mono", 1.0); SN76496(config, "sn2", 16000000/4).add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} /* ROM Loading ***************************************************************/ diff --git a/src/mame/drivers/y2.cpp b/src/mame/drivers/y2.cpp index 4050d8b4684..2f36fa1227b 100644 --- a/src/mame/drivers/y2.cpp +++ b/src/mame/drivers/y2.cpp @@ -53,7 +53,8 @@ static INPUT_PORTS_START( system_board_y2 ) INPUT_PORTS_END -MACHINE_CONFIG_START(system_board_y2_state::system_board_y2) +void system_board_y2_state::system_board_y2(machine_config &config) +{ /* SH4LE(config, m_maincpu, 266666666); m_maincpu->set_md(0, 1); @@ -68,18 +69,18 @@ MACHINE_CONFIG_START(system_board_y2_state::system_board_y2) m_maincpu->set_sh4_clock(CPU_CLOCK); */ - 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, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(system_board_y2_state, screen_update_system_board_y2) - 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, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(system_board_y2_state::screen_update_system_board_y2)); + screen.set_palette("palette"); - MCFG_PALETTE_ADD("palette", 0x1000) + PALETTE(config, "palette").set_entries(0x1000); SPEAKER(config, "mono").front_center(); -MACHINE_CONFIG_END +} ROM_START( kof2002um ) // The King of Fighters 复仇之路/Fùchóu zhī lù/Road to Revenge ROM_REGION( 0x8000000, "boot", 0 ) // sound program only? or boot too? diff --git a/src/mame/drivers/yiear.cpp b/src/mame/drivers/yiear.cpp index 60d5df7e323..effbeaffaa4 100644 --- a/src/mame/drivers/yiear.cpp +++ b/src/mame/drivers/yiear.cpp @@ -278,24 +278,24 @@ void yiear_state::machine_reset() m_yiear_nmi_enable = 0; } -MACHINE_CONFIG_START(yiear_state::yiear) - +void yiear_state::yiear(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, MC6809E, XTAL(18'432'000)/12) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(yiear_state, yiear_nmi_interrupt, 480) /* music tempo (correct frequency unknown) */ + MC6809E(config, m_maincpu, XTAL(18'432'000)/12); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &yiear_state::main_map); + m_maincpu->set_periodic_int(FUNC(yiear_state::yiear_nmi_interrupt), attotime::from_hz(480)); /* music tempo (correct frequency unknown) */ WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_REFRESH_RATE(60.58) /* 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(yiear_state, screen_update_yiear) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, yiear_state, vblank_irq)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60.58); /* verified on pcb */ + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(32*8, 32*8); + m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(yiear_state::screen_update_yiear)); + m_screen->set_palette(m_palette); + m_screen->screen_vblank().set(FUNC(yiear_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_yiear); PALETTE(config, m_palette, FUNC(yiear_state::yiear_palette), 32); @@ -303,15 +303,14 @@ MACHINE_CONFIG_START(yiear_state::yiear) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD(m_audio, TRACKFLD_AUDIO, 0, finder_base::DUMMY_TAG, m_vlm) + TRACKFLD_AUDIO(config, m_audio, 0, finder_base::DUMMY_TAG, m_vlm); - MCFG_DEVICE_ADD(m_sn, SN76489A, XTAL(18'432'000)/12) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + SN76489A(config, m_sn, XTAL(18'432'000)/12).add_route(ALL_OUTPUTS, "mono", 1.0); /* verified on pcb */ - MCFG_DEVICE_ADD(m_vlm, VLM5030, XTAL(3'579'545)) /* verified on pcb */ - MCFG_DEVICE_ADDRESS_MAP(0, vlm_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + VLM5030(config, m_vlm, XTAL(3'579'545)); /* verified on pcb */ + m_vlm->set_addrmap(0, &yiear_state::vlm_map); + m_vlm->add_route(ALL_OUTPUTS, "mono", 1.0); +} /*************************************************************************** diff --git a/src/mame/drivers/z100.cpp b/src/mame/drivers/z100.cpp index 5b7b485679d..e95eedc8f8f 100644 --- a/src/mame/drivers/z100.cpp +++ b/src/mame/drivers/z100.cpp @@ -664,7 +664,8 @@ static void z100_floppies(device_slot_interface &device) device.option_add("dd", FLOPPY_525_DD); } -MACHINE_CONFIG_START(z100_state::z100) +void z100_state::z100(machine_config &config) +{ /* basic machine hardware */ I8088(config, m_maincpu, 14.318181_MHz_XTAL / 3); m_maincpu->set_addrmap(AS_PROGRAM, &z100_state::z100_mem); @@ -672,15 +673,15 @@ MACHINE_CONFIG_START(z100_state::z100) m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(z100_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(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(z100_state::screen_update)); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 8) + PALETTE(config, m_palette).set_entries(8); /* devices */ MC6845(config, m_crtc, 14.318181_MHz_XTAL / 8); /* unknown clock, hand tuned to get ~50/~60 fps */ @@ -725,7 +726,7 @@ MACHINE_CONFIG_START(z100_state::z100) input_merger_device &epci1int(INPUT_MERGER_ANY_HIGH(config, "epci1int")); epci1int.output_handler().set(m_picm, FUNC(pic8259_device::ir5_w)); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( z100 ) diff --git a/src/mame/drivers/z1013.cpp b/src/mame/drivers/z1013.cpp index 89136e53288..cd8e157d5b9 100644 --- a/src/mame/drivers/z1013.cpp +++ b/src/mame/drivers/z1013.cpp @@ -373,18 +373,18 @@ GFXDECODE_END /* Machine driver */ MACHINE_CONFIG_START(z1013_state::z1013) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(1'000'000) ) - MCFG_DEVICE_PROGRAM_MAP(z1013_mem) - MCFG_DEVICE_IO_MAP(z1013_io) + Z80(config, m_maincpu, XTAL(1'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &z1013_state::z1013_mem); + m_maincpu->set_addrmap(AS_IO, &z1013_state::z1013_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(z1013_state, screen_update_z1013) - 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(32*8, 32*8); + screen.set_visarea(0, 32*8-1, 0, 32*8-1); + screen.set_screen_update(FUNC(z1013_state::screen_update_z1013)); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_z1013); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -404,13 +404,14 @@ MACHINE_CONFIG_START(z1013_state::z1013) MCFG_SNAPSHOT_ADD("snapshot", z1013_state, z1013, "z80") MACHINE_CONFIG_END -MACHINE_CONFIG_START(z1013_state::z1013k76) +void z1013_state::z1013k76(machine_config &config) +{ z1013(config); z80pio_device &pio(*subdevice<z80pio_device>("z80pio")); pio.in_pb_callback().set(FUNC(z1013_state::k7659_port_b_r)); pio.out_pb_callback().set_nop(); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( z1013 ) diff --git a/src/mame/drivers/z80dev.cpp b/src/mame/drivers/z80dev.cpp index 1df8b699238..2f64375d8d0 100644 --- a/src/mame/drivers/z80dev.cpp +++ b/src/mame/drivers/z80dev.cpp @@ -123,15 +123,16 @@ INPUT_PORTS_START( z80dev ) PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LD") PORT_CODE(KEYCODE_L) INPUT_PORTS_END -MACHINE_CONFIG_START(z80dev_state::z80dev) +void z80dev_state::z80dev(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 4_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) + Z80(config, m_maincpu, 4_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &z80dev_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &z80dev_state::io_map); /* video hardware */ config.set_default_layout(layout_z80dev); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( z80dev ) diff --git a/src/mame/drivers/z80ne.cpp b/src/mame/drivers/z80ne.cpp index 1f9874fec00..1b08433a9d3 100644 --- a/src/mame/drivers/z80ne.cpp +++ b/src/mame/drivers/z80ne.cpp @@ -414,11 +414,12 @@ static void z80ne_floppies(device_slot_interface &device) device.option_add("sssd", FLOPPY_525_SSSD); } -MACHINE_CONFIG_START(z80ne_state::z80ne) +void z80ne_state::z80ne(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("z80ne", Z80, Z80NE_CPU_SPEED_HZ) - MCFG_DEVICE_PROGRAM_MAP(z80ne_mem) - MCFG_DEVICE_IO_MAP(z80ne_io) + Z80(config, m_maincpu, Z80NE_CPU_SPEED_HZ); + m_maincpu->set_addrmap(AS_PROGRAM, &z80ne_state::z80ne_mem); + m_maincpu->set_addrmap(AS_IO, &z80ne_state::z80ne_io); MCFG_MACHINE_START_OVERRIDE(z80ne_state,z80ne) MCFG_MACHINE_RESET_OVERRIDE(z80ne_state,z80ne) @@ -444,14 +445,14 @@ MACHINE_CONFIG_START(z80ne_state::z80ne) // all known tapes require LX.388 expansion //SOFTWARE_LIST(config, "cass_list").set_original("z80ne_cass"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(z80ne_state::z80net) +void z80ne_state::z80net(machine_config &config) +{ z80ne(config); - MCFG_DEVICE_MODIFY("z80ne") - MCFG_DEVICE_PROGRAM_MAP(z80net_mem) - MCFG_DEVICE_IO_MAP(z80net_io) + m_maincpu->set_addrmap(AS_PROGRAM, &z80ne_state::z80net_mem); + m_maincpu->set_addrmap(AS_IO, &z80ne_state::z80net_io); MCFG_MACHINE_START_OVERRIDE(z80ne_state, z80net ) MCFG_MACHINE_RESET_OVERRIDE(z80ne_state, z80net ) @@ -483,13 +484,14 @@ MACHINE_CONFIG_START(z80ne_state::z80net) m_ram->set_default_size("32K").set_extra_options("1K"); SOFTWARE_LIST(config, "cass_list").set_original("z80ne_cass"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(z80ne_state::z80netb) +void z80ne_state::z80netb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("z80ne", Z80, Z80NE_CPU_SPEED_HZ) - MCFG_DEVICE_PROGRAM_MAP(z80netb_mem) - MCFG_DEVICE_IO_MAP(z80net_io) + Z80(config, m_maincpu, Z80NE_CPU_SPEED_HZ); + m_maincpu->set_addrmap(AS_PROGRAM, &z80ne_state::z80netb_mem); + m_maincpu->set_addrmap(AS_IO, &z80ne_state::z80net_io); MCFG_MACHINE_START_OVERRIDE(z80ne_state,z80netb) MCFG_MACHINE_RESET_OVERRIDE(z80ne_state,z80netb) @@ -535,13 +537,14 @@ MACHINE_CONFIG_START(z80ne_state::z80netb) RAM(config, m_ram).set_default_size("32K").set_extra_options("1K"); SOFTWARE_LIST(config, "cass_list").set_original("z80ne_cass"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(z80netf_state::z80netf) +void z80netf_state::z80netf(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("z80ne", Z80, Z80NE_CPU_SPEED_HZ) - MCFG_DEVICE_PROGRAM_MAP(z80netf_mem) - MCFG_DEVICE_IO_MAP(z80netf_io) + Z80(config, m_maincpu, Z80NE_CPU_SPEED_HZ); + m_maincpu->set_addrmap(AS_PROGRAM, &z80netf_state::z80netf_mem); + m_maincpu->set_addrmap(AS_IO, &z80netf_state::z80netf_io); MCFG_MACHINE_START_OVERRIDE(z80netf_state,z80netf) MCFG_MACHINE_RESET_OVERRIDE(z80netf_state,z80netf) @@ -584,7 +587,7 @@ MACHINE_CONFIG_START(z80netf_state::z80netf) SOFTWARE_LIST(config, "cass_list").set_original("z80ne_cass"); SOFTWARE_LIST(config, "flop_list").set_original("z80ne_flop"); -MACHINE_CONFIG_END +} /****************************************************************************** ROM Definitions diff --git a/src/mame/drivers/z9001.cpp b/src/mame/drivers/z9001.cpp index 9d329a141ce..f6950922c38 100644 --- a/src/mame/drivers/z9001.cpp +++ b/src/mame/drivers/z9001.cpp @@ -206,7 +206,8 @@ static GFXDECODE_START( gfx_z9001 ) GFXDECODE_END -MACHINE_CONFIG_START(z9001_state::z9001) +void z9001_state::z9001(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, XTAL(9'830'400) / 4); m_maincpu->set_addrmap(AS_PROGRAM, &z9001_state::z9001_mem); @@ -214,16 +215,16 @@ MACHINE_CONFIG_START(z9001_state::z9001) m_maincpu->set_daisy_config(z9001_daisy_chain); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(40*8, 24*8) - MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 24*8-1) - MCFG_SCREEN_UPDATE_DRIVER(z9001_state, screen_update_z9001) - 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(40*8, 24*8); + screen.set_visarea(0, 40*8-1, 0, 24*8-1); + screen.set_screen_update(FUNC(z9001_state::screen_update_z9001)); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_z9001); - MCFG_PALETTE_ADD("palette", 16) + PALETTE(config, "palette").set_entries(16); /* Sound */ SPEAKER(config, "mono").front_center(); @@ -248,7 +249,7 @@ MACHINE_CONFIG_START(z9001_state::z9001) ctc.zc_callback<2>().set("z80ctc", FUNC(z80ctc_device::trg3)); CASSETTE(config, m_cass); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( z9001 ) diff --git a/src/mame/drivers/zac_proto.cpp b/src/mame/drivers/zac_proto.cpp index 1eabe100a8d..0ecdfb56f7a 100644 --- a/src/mame/drivers/zac_proto.cpp +++ b/src/mame/drivers/zac_proto.cpp @@ -241,10 +241,12 @@ void zac_proto_state::machine_reset() m_digits[10] = 0x3f; // units shows zero all the time } -MACHINE_CONFIG_START(zac_proto_state::zac_proto) +void zac_proto_state::zac_proto(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", INS8060, XTAL(4'000'000) / 2) // Using SC/MP II chip which has an internal /2 circuit. - MCFG_DEVICE_PROGRAM_MAP(zac_proto_map) + INS8060(config, m_maincpu, XTAL(4'000'000) / 2); // Using SC/MP II chip which has an internal /2 circuit. + m_maincpu->set_addrmap(AS_PROGRAM, &zac_proto_state::zac_proto_map); + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* Video */ @@ -252,7 +254,7 @@ MACHINE_CONFIG_START(zac_proto_state::zac_proto) /* Sound */ genpin_audio(config); -MACHINE_CONFIG_END +} /*-------------------------------- / Strike diff --git a/src/mame/drivers/zaccaria.cpp b/src/mame/drivers/zaccaria.cpp index 9e2bd9c06fd..d3827682f13 100644 --- a/src/mame/drivers/zaccaria.cpp +++ b/src/mame/drivers/zaccaria.cpp @@ -331,11 +331,11 @@ WRITE_LINE_MEMBER(zaccaria_state::vblank_irq) } -MACHINE_CONFIG_START(zaccaria_state::zaccaria) - +void zaccaria_state::zaccaria(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,XTAL(18'432'000)/6) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(main_map) + Z80(config, m_maincpu, XTAL(18'432'000)/6); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &zaccaria_state::main_map); // config.m_minimum_quantum = attotime::from_hz(1000000); @@ -355,14 +355,14 @@ MACHINE_CONFIG_START(zaccaria_state::zaccaria) ppi.out_pc_callback().set(FUNC(zaccaria_state::dsw_sel_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60.57) /* 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(zaccaria_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, zaccaria_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60.57); /* 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(zaccaria_state::screen_update)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(zaccaria_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_zaccaria); PALETTE(config, m_palette, FUNC(zaccaria_state::zaccaria_palette), 32*8 + 32*8, 512); @@ -370,7 +370,7 @@ MACHINE_CONFIG_START(zaccaria_state::zaccaria) /* sound hardware */ SPEAKER(config, "speaker").front_center(); ZACCARIA_1B11142(config, "audiopcb").add_route(ALL_OUTPUTS, "speaker", 1.0); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/zapcomputer.cpp b/src/mame/drivers/zapcomputer.cpp index 1f43a87eb85..e718367412d 100644 --- a/src/mame/drivers/zapcomputer.cpp +++ b/src/mame/drivers/zapcomputer.cpp @@ -155,15 +155,16 @@ void zapcomp_state::machine_start() m_digits.resolve(); } -MACHINE_CONFIG_START(zapcomp_state::zapcomp) +void zapcomp_state::zapcomp(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(2'000'000)) - MCFG_DEVICE_PROGRAM_MAP(zapcomp_mem) - MCFG_DEVICE_IO_MAP(zapcomp_io) + Z80(config, m_maincpu, XTAL(2'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &zapcomp_state::zapcomp_mem); + m_maincpu->set_addrmap(AS_IO, &zapcomp_state::zapcomp_io); /* video hardware */ config.set_default_layout(layout_zapcomputer); -MACHINE_CONFIG_END +} ROM_START( zapcomp ) ROM_REGION( 0x10000, "roms", 0 ) diff --git a/src/mame/drivers/zaurus.cpp b/src/mame/drivers/zaurus.cpp index 7be6ae5d832..7e3d7416e22 100644 --- a/src/mame/drivers/zaurus.cpp +++ b/src/mame/drivers/zaurus.cpp @@ -1519,30 +1519,30 @@ TIMER_DEVICE_CALLBACK_MEMBER(zaurus_state::rtc_irq_callback) } // TODO: main CPU differs greatly between versions! -MACHINE_CONFIG_START(zaurus_state::zaurus) - +void zaurus_state::zaurus(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu,PXA255,MAIN_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(zaurus_map) + PXA255(config, m_maincpu, MAIN_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &zaurus_state::zaurus_map); TIMER(config, "rtc_timer").configure_periodic(FUNC(zaurus_state::rtc_irq_callback), attotime::from_hz(XTAL(32'768))); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_UPDATE_DRIVER(zaurus_state, screen_update) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_screen_update(FUNC(zaurus_state::screen_update)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); - MCFG_PALETTE_ADD("palette", 8) + PALETTE(config, "palette").set_entries(8); /* sound hardware */ SPEAKER(config, "mono").front_center(); // AY8910(config, "aysnd", MAIN_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 0.30); PXA255_PERIPHERALS(config, m_pxa_periphs, MAIN_CLOCK, m_maincpu); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/zaxxon.cpp b/src/mame/drivers/zaxxon.cpp index d8a295b075b..6a09d9e57c9 100644 --- a/src/mame/drivers/zaxxon.cpp +++ b/src/mame/drivers/zaxxon.cpp @@ -915,11 +915,11 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(zaxxon_state::root) - +void zaxxon_state::root(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/16) - MCFG_DEVICE_PROGRAM_MAP(zaxxon_map) + Z80(config, m_maincpu, MASTER_CLOCK/16); + m_maincpu->set_addrmap(AS_PROGRAM, &zaxxon_state::zaxxon_map); I8255A(config, m_ppi); m_ppi->out_pa_callback().set(FUNC(zaxxon_state::zaxxon_sound_a_w)); @@ -944,29 +944,29 @@ MACHINE_CONFIG_START(zaxxon_state::root) GFXDECODE(config, m_gfxdecode, m_palette, gfx_zaxxon); PALETTE(config, m_palette, FUNC(zaxxon_state::zaxxon_palette), 256); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_zaxxon) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, zaxxon_state, vblank_int)) -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + screen.set_screen_update(FUNC(zaxxon_state::screen_update_zaxxon)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(zaxxon_state::vblank_int)); +} -MACHINE_CONFIG_START(zaxxon_state::zaxxon) +void zaxxon_state::zaxxon(machine_config &config) +{ root(config); /* sound hardware */ SPEAKER(config, "speaker").front_center(); zaxxon_samples(config); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(zaxxon_state::szaxxon) +void zaxxon_state::szaxxon(machine_config &config) +{ zaxxon(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_OPCODES, &zaxxon_state::decrypted_opcodes_map); +} void zaxxon_state::szaxxone(machine_config &config) @@ -980,8 +980,8 @@ void zaxxon_state::szaxxone(machine_config &config) } - -MACHINE_CONFIG_START(zaxxon_state::futspye) +void zaxxon_state::futspye(machine_config &config) +{ root(config); sega_315_5061_device &maincpu(SEGA_315_5061(config.replace(), m_maincpu, MASTER_CLOCK/16)); maincpu.set_addrmap(AS_PROGRAM, &zaxxon_state::zaxxon_map); @@ -991,19 +991,16 @@ MACHINE_CONFIG_START(zaxxon_state::futspye) /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_futspy) + subdevice<screen_device>("screen")->set_screen_update(FUNC(zaxxon_state::screen_update_futspy)); /* sound hardware */ SPEAKER(config, "speaker").front_center(); zaxxon_samples(config); - -MACHINE_CONFIG_END - - +} -MACHINE_CONFIG_START(zaxxon_state::razmataze) +void zaxxon_state::razmataze(machine_config &config) +{ root(config); sega_315_5098_device &maincpu(SEGA_315_5098(config.replace(), m_maincpu, MASTER_CLOCK/16)); maincpu.set_addrmap(AS_PROGRAM, &zaxxon_state::ixion_map); @@ -1015,13 +1012,13 @@ MACHINE_CONFIG_START(zaxxon_state::razmataze) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(zaxxon_state,razmataz) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_razmataz) + subdevice<screen_device>("screen")->set_screen_update(FUNC(zaxxon_state::screen_update_razmataz)); /* sound hardware */ SPEAKER(config, "speaker").front_center(); SEGAUSBROM(config, "usbsnd", 0, m_maincpu).add_route(ALL_OUTPUTS, "speaker", 1.0); -MACHINE_CONFIG_END +} + void zaxxon_state::ixion(machine_config &config) { @@ -1035,11 +1032,12 @@ void zaxxon_state::ixion(machine_config &config) m_mainlatch[0]->q_out_cb<6>().set_nop(); // flip screen not used } -MACHINE_CONFIG_START(zaxxon_state::congo) + +void zaxxon_state::congo(machine_config &config) +{ root(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(congo_map) + m_maincpu->set_addrmap(AS_PROGRAM, &zaxxon_state::congo_map); m_ppi->in_pa_callback().set("soundlatch", FUNC(generic_latch_8_device::read)); m_ppi->out_pa_callback().set_nop(); @@ -1056,31 +1054,27 @@ MACHINE_CONFIG_START(zaxxon_state::congo) m_mainlatch[1]->q_out_cb<6>().set(FUNC(zaxxon_state::congo_fg_bank_w)); // BS m_mainlatch[1]->q_out_cb<7>().set(FUNC(zaxxon_state::congo_color_bank_w)); // CBS - MCFG_DEVICE_ADD("audiocpu", Z80, SOUND_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(congo_sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(zaxxon_state, irq0_line_hold, SOUND_CLOCK/16/16/16/4) + z80_device &audiocpu(Z80(config, "audiocpu", SOUND_CLOCK)); + audiocpu.set_addrmap(AS_PROGRAM, &zaxxon_state::congo_sound_map); + audiocpu.set_periodic_int(FUNC(zaxxon_state::irq0_line_hold), attotime::from_hz(SOUND_CLOCK/16/16/16/4)); /* video hardware */ m_palette->set_entries(512).set_init(FUNC(zaxxon_state::zaxxon_palette)); MCFG_VIDEO_START_OVERRIDE(zaxxon_state,congo) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_congo) + subdevice<screen_device>("screen")->set_screen_update(FUNC(zaxxon_state::screen_update_congo)); /* sound hardware */ SPEAKER(config, "speaker").front_center(); GENERIC_LATCH_8(config, "soundlatch"); - MCFG_DEVICE_ADD("sn1", SN76489A, SOUND_CLOCK) // schematic shows sn76489A - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) + SN76489A(config, "sn1", SOUND_CLOCK).add_route(ALL_OUTPUTS, "speaker", 1.0); // schematic shows sn76489A - MCFG_DEVICE_ADD("sn2", SN76489A, SOUND_CLOCK/4) // schematic shows sn76489A - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) + SN76489A(config, "sn2", SOUND_CLOCK/4).add_route(ALL_OUTPUTS, "speaker", 1.0); // schematic shows sn76489A congo_samples(config); -MACHINE_CONFIG_END - +} /************************************* diff --git a/src/mame/includes/madalien.h b/src/mame/includes/madalien.h index edeb06a7111..473a9f2dc0b 100644 --- a/src/mame/includes/madalien.h +++ b/src/mame/includes/madalien.h @@ -49,6 +49,9 @@ public: DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); +protected: + virtual void video_start() override; + private: required_shared_ptr<uint8_t> m_videoram; required_shared_ptr<uint8_t> m_charram; @@ -79,7 +82,6 @@ private: TILE_GET_INFO_MEMBER(get_tile_info_BG_1); TILE_GET_INFO_MEMBER(get_tile_info_BG_2); TILE_GET_INFO_MEMBER(get_tile_info_FG); - DECLARE_VIDEO_START(madalien); void madalien_palette(palette_device &palette) const; uint32_t screen_update_madalien(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); inline int scan_helper(int col, int row, int section); diff --git a/src/mame/includes/mystston.h b/src/mame/includes/mystston.h index 512dd04a9ac..47fc6636e5e 100644 --- a/src/mame/includes/mystston.h +++ b/src/mame/includes/mystston.h @@ -39,6 +39,10 @@ public: DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); +protected: + virtual void video_start() override; + virtual void video_reset() override; + private: /* machine state */ @@ -61,8 +65,6 @@ private: DECLARE_WRITE8_MEMBER(mystston_video_control_w); TILE_GET_INFO_MEMBER(get_bg_tile_info); TILE_GET_INFO_MEMBER(get_fg_tile_info); - DECLARE_VIDEO_START(mystston); - DECLARE_VIDEO_RESET(mystston); uint32_t screen_update_mystston(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(interrupt_callback); void set_palette(); diff --git a/src/mame/machine/atarifdc.cpp b/src/mame/machine/atarifdc.cpp index 357cdb906af..977db4392d3 100644 --- a/src/mame/machine/atarifdc.cpp +++ b/src/mame/machine/atarifdc.cpp @@ -796,6 +796,7 @@ void atari_fdc_device::device_start() // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(atari_fdc_device::device_add_mconfig) - MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(atari_floppy_interface) -MACHINE_CONFIG_END +void atari_fdc_device::device_add_mconfig(machine_config &config) +{ + legacy_floppy_image_device::add_4drives(config, &atari_floppy_interface); +} diff --git a/src/mame/machine/rx01.cpp b/src/mame/machine/rx01.cpp index 06f74f56b02..b98bd78fd7c 100644 --- a/src/mame/machine/rx01.cpp +++ b/src/mame/machine/rx01.cpp @@ -53,9 +53,10 @@ rx01_device::rx01_device(const machine_config &mconfig, const char *tag, device_ // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(rx01_device::device_add_mconfig) - MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(rx01_floppy_interface) -MACHINE_CONFIG_END +void rx01_device::device_add_mconfig(machine_config &config) +{ + legacy_floppy_image_device::add_2drives(config, &rx01_floppy_interface); +} //------------------------------------------------- // device_start - device-specific startup diff --git a/src/mame/video/20pacgal.cpp b/src/mame/video/20pacgal.cpp index d8eef7e0c6d..f087ed59822 100644 --- a/src/mame/video/20pacgal.cpp +++ b/src/mame/video/20pacgal.cpp @@ -445,14 +445,15 @@ void _20pacgal_state::video_start() * *************************************/ -MACHINE_CONFIG_START(_20pacgal_state::_20pacgal_video) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(SCREEN_WIDTH, SCREEN_HEIGHT) - MCFG_SCREEN_VISIBLE_AREA(0, SCREEN_WIDTH - 1, 0, SCREEN_HEIGHT - 1) - MCFG_SCREEN_UPDATE_DRIVER(_20pacgal_state, screen_update_20pacgal) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, _20pacgal_state, vblank_irq)) +void _20pacgal_state::_20pacgal_video(machine_config &config) +{ + 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(SCREEN_WIDTH, SCREEN_HEIGHT); + screen.set_visarea(0, SCREEN_WIDTH - 1, 0, SCREEN_HEIGHT - 1); + screen.set_screen_update(FUNC(_20pacgal_state::screen_update_20pacgal)); + screen.screen_vblank().set(FUNC(_20pacgal_state::vblank_irq)); PALETTE(config, m_palette, FUNC(_20pacgal_state::starpal_init), NUM_PENS + NUM_PENS); -MACHINE_CONFIG_END +} diff --git a/src/mame/video/733_asr.cpp b/src/mame/video/733_asr.cpp index 59bfa3bc76f..17f68bba783 100644 --- a/src/mame/video/733_asr.cpp +++ b/src/mame/video/733_asr.cpp @@ -777,15 +777,15 @@ ioport_constructor asr733_device::device_input_ports() const //------------------------------------------------- -MACHINE_CONFIG_START(asr733_device::device_add_mconfig) +void asr733_device::device_add_mconfig(machine_config &config) +{ PALETTE(config, "palette", palette_device::MONOCHROME_INVERTED); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, asr733_device, screen_update) - - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_PALETTE("palette") -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_screen_update(FUNC(asr733_device::screen_update)); + m_screen->set_size(640, 480); + m_screen->set_visarea(0, 640-1, 0, 480-1); + m_screen->set_palette("palette"); +} diff --git a/src/mame/video/911_vdt.cpp b/src/mame/video/911_vdt.cpp index 1290e3bea51..af57d9daf9a 100644 --- a/src/mame/video/911_vdt.cpp +++ b/src/mame/video/911_vdt.cpp @@ -794,18 +794,18 @@ INPUT_PORTS_END // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(vdt911_device::device_add_mconfig) - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_raw(11.004_MHz_XTAL, 700, 0, 560, 262, 0, 240); - screen.set_screen_update(FUNC(vdt911_device::screen_update)); - screen.set_palette("palette"); +void vdt911_device::device_add_mconfig(machine_config &config) +{ + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(11.004_MHz_XTAL, 700, 0, 560, 262, 0, 240); + m_screen->set_screen_update(FUNC(vdt911_device::screen_update)); + m_screen->set_palette("palette"); SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, 3250) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.50) + BEEP(config, m_beeper, 3250).add_route(ALL_OUTPUTS, "speaker", 0.50); PALETTE(config, "palette", FUNC(vdt911_device::vdt911_palette), ARRAY_LENGTH(vdt911_pens), ARRAY_LENGTH(vdt911_colors)); -MACHINE_CONFIG_END +} ioport_constructor vdt911_device::device_input_ports() const { diff --git a/src/mame/video/abc80.cpp b/src/mame/video/abc80.cpp index 4f3b46c40f9..5aa828894cf 100644 --- a/src/mame/video/abc80.cpp +++ b/src/mame/video/abc80.cpp @@ -189,15 +189,15 @@ uint32_t abc80_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, //------------------------------------------------- -// MACHINE_CONFIG_START( abc80_video ) +// machine_config( abc80_video ) //------------------------------------------------- -MACHINE_CONFIG_START(abc80_state::abc80_video) - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_UPDATE_DRIVER(abc80_state, screen_update) - - MCFG_SCREEN_RAW_PARAMS(XTAL(11'980'800)/2, ABC80_HTOTAL, ABC80_HBEND, ABC80_HBSTART, ABC80_VTOTAL, ABC80_VBEND, ABC80_VBSTART) +void abc80_state::abc80_video(machine_config &config) +{ + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_screen_update(FUNC(abc80_state::screen_update)); + m_screen->set_raw(XTAL(11'980'800)/2, ABC80_HTOTAL, ABC80_HBEND, ABC80_HBSTART, ABC80_VTOTAL, ABC80_VBEND, ABC80_VBSTART); GFXDECODE(config, "gfxdecode", m_palette, gfx_abc80); PALETTE(config, m_palette, palette_device::MONOCHROME); -MACHINE_CONFIG_END +} diff --git a/src/mame/video/abc800.cpp b/src/mame/video/abc800.cpp index a8fdc99771b..e03bcf19c81 100644 --- a/src/mame/video/abc800.cpp +++ b/src/mame/video/abc800.cpp @@ -153,23 +153,24 @@ void abc800c_state::abc800c_palette(palette_device &palette) const //------------------------------------------------- -// MACHINE_CONFIG_START( abc800c_video ) +// machine_config( abc800c_video ) //------------------------------------------------- -MACHINE_CONFIG_START(abc800c_state::abc800c_video) - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_UPDATE_DRIVER(abc800c_state, screen_update) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(480, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 480-1) +void abc800c_state::abc800c_video(machine_config &config) +{ + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(abc800c_state::screen_update)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(480, 480); + screen.set_visarea(0, 480-1, 0, 480-1); PALETTE(config, m_palette, FUNC(abc800c_state::abc800c_palette), 8); SAA5052(config, m_trom, XTAL(12'000'000)/2); m_trom->d_cb().set(FUNC(abc800c_state::char_ram_r)); m_trom->set_screen_size(40, 24, 40); -MACHINE_CONFIG_END +} @@ -273,7 +274,7 @@ uint32_t abc800m_state::screen_update(screen_device &screen, bitmap_rgb32 &bitma //------------------------------------------------- -// MACHINE_CONFIG_START( abc800m_video ) +// machine_config( abc800m_video ) //------------------------------------------------- void abc800m_state::abc800m_video(machine_config &config) diff --git a/src/mame/video/abc802.cpp b/src/mame/video/abc802.cpp index cdf044c6679..7ea2c43b284 100644 --- a/src/mame/video/abc802.cpp +++ b/src/mame/video/abc802.cpp @@ -175,7 +175,7 @@ WRITE_LINE_MEMBER( abc802_state::vs_w ) //------------------------------------------------- -// MACHINE_CONFIG_START( abc802_video ) +// machine_config( abc802_video ) //------------------------------------------------- void abc802_state::abc802_video(machine_config &config) diff --git a/src/mame/video/abc806.cpp b/src/mame/video/abc806.cpp index 78d4a67306d..82dd1238316 100644 --- a/src/mame/video/abc806.cpp +++ b/src/mame/video/abc806.cpp @@ -474,10 +474,11 @@ void abc806_state::abc806_palette(palette_device &palette) const //------------------------------------------------- -// MACHINE_CONFIG_START( abc806_video ) +// machine_config( abc806_video ) //------------------------------------------------- -MACHINE_CONFIG_START(abc806_state::abc806_video) +void abc806_state::abc806_video(machine_config &config) +{ MC6845(config, m_crtc, ABC800_CCLK); m_crtc->set_screen(SCREEN_TAG); m_crtc->set_show_border_area(true); @@ -486,9 +487,9 @@ MACHINE_CONFIG_START(abc806_state::abc806_video) m_crtc->out_hsync_callback().set(FUNC(abc806_state::hs_w)); m_crtc->out_vsync_callback().set(FUNC(abc806_state::vs_w)); - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_UPDATE_DRIVER(abc806_state, screen_update) - MCFG_SCREEN_RAW_PARAMS(XTAL(12'000'000), 0x300, 0, 0x1e0, 0x13a, 0, 0xfa) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(abc806_state::screen_update)); + screen.set_raw(XTAL(12'000'000), 0x300, 0, 0x1e0, 0x13a, 0, 0xfa); PALETTE(config, m_palette, FUNC(abc806_state::abc806_palette), 8); -MACHINE_CONFIG_END +} diff --git a/src/mame/video/agat7.cpp b/src/mame/video/agat7.cpp index cc551d87237..bfce6c81b96 100644 --- a/src/mame/video/agat7.cpp +++ b/src/mame/video/agat7.cpp @@ -39,12 +39,13 @@ DEFINE_DEVICE_TYPE(AGAT7VIDEO, agat7video_device, "agat7video", "Agat-7 Video") // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(agat7video_device::device_add_mconfig) - MCFG_SCREEN_ADD("a7screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(10'500'000), 672, 0, 512, 312, 0, 256) - MCFG_SCREEN_UPDATE_DRIVER(agat7video_device, screen_update) - MCFG_SCREEN_PALETTE(DEVICE_SELF) -MACHINE_CONFIG_END +void agat7video_device::device_add_mconfig(machine_config &config) +{ + screen_device &a7screen(SCREEN(config, "a7screen", SCREEN_TYPE_RASTER)); + a7screen.set_raw(XTAL(10'500'000), 672, 0, 512, 312, 0, 256); + a7screen.set_screen_update(FUNC(agat7video_device::screen_update)); + a7screen.set_palette(DEVICE_SELF); +} //************************************************************************** diff --git a/src/mame/video/airraid_dev.cpp b/src/mame/video/airraid_dev.cpp index e0687ffad6b..3dac9982bc7 100644 --- a/src/mame/video/airraid_dev.cpp +++ b/src/mame/video/airraid_dev.cpp @@ -58,20 +58,19 @@ static GFXDECODE_START( gfx_cshooter ) GFXDECODE_ENTRY( "fg_gfx", 0, char16layout, 0, 16 ) GFXDECODE_END -MACHINE_CONFIG_START(airraid_video_device::device_add_mconfig) - +void airraid_video_device::device_add_mconfig(machine_config &config) +{ /* 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-1-16) - MCFG_SCREEN_UPDATE_DRIVER(airraid_video_device, screen_update_airraid) - 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-1-16); + m_screen->set_screen_update(FUNC(airraid_video_device::screen_update_airraid)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cshooter); - -MACHINE_CONFIG_END +} void airraid_video_device::device_start() diff --git a/src/mame/video/amiga.cpp b/src/mame/video/amiga.cpp index 804f4643325..d6ad936aee3 100644 --- a/src/mame/video/amiga.cpp +++ b/src/mame/video/amiga.cpp @@ -1094,26 +1094,28 @@ void amiga_state::update_screenmode() // MACHINE DRIVER FRAGMENTS //************************************************************************** -MACHINE_CONFIG_START(amiga_state::pal_video) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS +void amiga_state::pal_video(machine_config &config) +{ + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw ( (amiga_state::CLK_28M_PAL / 4) * 2 * 2, amiga_state::SCREEN_WIDTH, amiga_state::HBLANK, amiga_state::SCREEN_WIDTH, amiga_state::SCREEN_HEIGHT_PAL, amiga_state::VBLANK_PAL, amiga_state::SCREEN_HEIGHT_PAL - ) - MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga) - MCFG_SCREEN_PALETTE("palette") -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(amiga_state::ntsc_video) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS + ); + m_screen->set_screen_update(FUNC(amiga_state::screen_update_amiga)); + m_screen->set_palette(m_palette); +} + +void amiga_state::ntsc_video(machine_config &config) +{ + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw ( (amiga_state::CLK_28M_NTSC / 4) * 2 * 2, amiga_state::SCREEN_WIDTH, amiga_state::HBLANK, amiga_state::SCREEN_WIDTH, amiga_state::SCREEN_HEIGHT_NTSC, amiga_state::VBLANK_NTSC, amiga_state::SCREEN_HEIGHT_NTSC - ) - MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga) - MCFG_SCREEN_PALETTE("palette") -MACHINE_CONFIG_END + ); + m_screen->set_screen_update(FUNC(amiga_state::screen_update_amiga)); + m_screen->set_palette(m_palette); +} diff --git a/src/mame/video/apollo.cpp b/src/mame/video/apollo.cpp index 7d169e706ac..eba48d5868d 100644 --- a/src/mame/video/apollo.cpp +++ b/src/mame/video/apollo.cpp @@ -1712,13 +1712,14 @@ void apollo_graphics_15i::register_vblank_callback() MACHINE DRIVERS ***************************************************************************/ -MACHINE_CONFIG_START(apollo_graphics_15i::device_add_mconfig) +void apollo_graphics_15i::device_add_mconfig(machine_config &config) +{ config.set_default_layout(layout_apollo_15i); - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) - MCFG_SCREEN_RAW_PARAMS(68000000, 1346, 0, 1024, 841, 0, 800) - MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, apollo_graphics_15i, screen_update) -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK); + m_screen->set_raw(68000000, 1346, 0, 1024, 841, 0, 800); + m_screen->set_screen_update(FUNC(apollo_graphics_15i::screen_update)); +} DEFINE_DEVICE_TYPE(APOLLO_GRAPHICS, apollo_graphics_15i, "apollo_graphics_15i", "Apollo Screen") @@ -1884,14 +1885,15 @@ void apollo_graphics_15i::device_reset() //------------------------------------------------- -MACHINE_CONFIG_START(apollo_graphics_19i::device_add_mconfig) +void apollo_graphics_19i::device_add_mconfig(machine_config &config) +{ config.set_default_layout(layout_apollo); PALETTE(config, "palette", palette_device::MONOCHROME); - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) - MCFG_SCREEN_RAW_PARAMS(120000000, 1728, 0, 1280, 1066, 0, 1024) - MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, apollo_graphics_19i, screen_update) -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK); + m_screen->set_raw(120000000, 1728, 0, 1280, 1066, 0, 1024); + m_screen->set_screen_update(FUNC(apollo_graphics_19i::screen_update)); +} DEFINE_DEVICE_TYPE(APOLLO_MONO19I, apollo_graphics_19i, "apollo_graphics_19i", "Apollo 19\" Monochrome Screen") diff --git a/src/mame/video/bfm_adr2.cpp b/src/mame/video/bfm_adr2.cpp index a8e6d409cfb..1da7d078b2e 100644 --- a/src/mame/video/bfm_adr2.cpp +++ b/src/mame/video/bfm_adr2.cpp @@ -549,17 +549,18 @@ void bfm_adder2_device::adder2_memmap(address_map &map) // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(bfm_adder2_device::device_add_mconfig) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_SIZE( 400, 280) - MCFG_SCREEN_VISIBLE_AREA( 0, 400-1, 0, 280-1) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, bfm_adder2_device, update_screen) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, bfm_adder2_device, adder2_vbl_w)) // board has a VBL IRQ - - MCFG_PALETTE_ADD("palette", 16) - - MCFG_DEVICE_ADD("adder2", M6809, ADDER_CLOCK/4 ) // adder2 board 6809 CPU at 2 Mhz - MCFG_DEVICE_PROGRAM_MAP(adder2_memmap) // setup adder2 board memorymap -MACHINE_CONFIG_END +void bfm_adder2_device::device_add_mconfig(machine_config &config) +{ + M6809(config, m_cpu, ADDER_CLOCK/4); // adder2 board 6809 CPU at 2 Mhz + m_cpu->set_addrmap(AS_PROGRAM, &bfm_adder2_device::adder2_memmap); // setup adder2 board memorymap + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_size(400, 280); + screen.set_visarea(0, 400-1, 0, 280-1); + screen.set_refresh_hz(50); + screen.set_palette("palette"); + screen.set_screen_update(FUNC(bfm_adder2_device::update_screen)); + screen.screen_vblank().set(FUNC(bfm_adder2_device::adder2_vbl_w)); // board has a VBL IRQ + + PALETTE(config, "palette").set_entries(16); +} diff --git a/src/mame/video/bfm_dm01.cpp b/src/mame/video/bfm_dm01.cpp index 2447c93e4db..4c38871258b 100644 --- a/src/mame/video/bfm_dm01.cpp +++ b/src/mame/video/bfm_dm01.cpp @@ -288,22 +288,22 @@ INTERRUPT_GEN_MEMBER( bfm_dm01_device::nmi_line_assert ) m_matrixcpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } -MACHINE_CONFIG_START(bfm_dm01_device::device_add_mconfig) - MCFG_DEVICE_ADD("matrix", M6809, 2000000 ) /* matrix board 6809 CPU at 2 Mhz ?? I don't know the exact freq.*/ - MCFG_DEVICE_PROGRAM_MAP(bfm_dm01_memmap) - MCFG_DEVICE_PERIODIC_INT_DRIVER(bfm_dm01_device, nmi_line_assert, 1500 ) /* generate 1500 NMI's per second ?? what is the exact freq?? */ - - MCFG_PALETTE_ADD("palette_lcd", 3) - - MCFG_SCREEN_ADD("dmd", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(65*2, 21*2) - MCFG_SCREEN_VISIBLE_AREA(0, 65*2-1, 0, 21*2-1) - MCFG_SCREEN_UPDATE_DRIVER(bfm_dm01_device, screen_update) - - MCFG_SCREEN_PALETTE("palette_lcd") -MACHINE_CONFIG_END +void bfm_dm01_device::device_add_mconfig(machine_config &config) +{ + M6809(config, m_matrixcpu, 2000000); /* matrix board 6809 CPU at 2 Mhz ?? I don't know the exact freq.*/ + m_matrixcpu->set_addrmap(AS_PROGRAM, &bfm_dm01_device::bfm_dm01_memmap); + m_matrixcpu->set_periodic_int(FUNC(bfm_dm01_device::nmi_line_assert), attotime::from_hz(1500)); /* generate 1500 NMI's per second ?? what is the exact freq?? */ + + PALETTE(config, m_palette).set_entries(3); + + 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(65*2, 21*2); + m_screen->set_visarea(0, 65*2-1, 0, 21*2-1); + m_screen->set_screen_update(FUNC(bfm_dm01_device::screen_update)); + m_screen->set_palette(m_palette); +} /////////////////////////////////////////////////////////////////////////// diff --git a/src/mame/video/cgc7900.cpp b/src/mame/video/cgc7900.cpp index 0db24b9c12f..4eb02ed07e8 100644 --- a/src/mame/video/cgc7900.cpp +++ b/src/mame/video/cgc7900.cpp @@ -227,17 +227,18 @@ GFXDECODE_END MACHINE_DRIVER( cgc7900_video ) -------------------------------------------------*/ -MACHINE_CONFIG_START(cgc7900_state::cgc7900_video) - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(cgc7900_state, screen_update) - MCFG_SCREEN_SIZE(1024, 768) - MCFG_SCREEN_VISIBLE_AREA(0, 1024-1, 0, 768-1) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cgc7900_state, irq<0xc>)) +void cgc7900_state::cgc7900_video(machine_config &config) +{ + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(cgc7900_state::screen_update)); + screen.set_size(1024, 768); + screen.set_visarea(0, 1024-1, 0, 768-1); + screen.screen_vblank().set(FUNC(cgc7900_state::irq<0xc>)); GFXDECODE(config, "gfxdecode", m_palette, gfx_cgc7900); PALETTE(config, m_palette, FUNC(cgc7900_state::cgc7900_palette), 8); TIMER(config, "blink").configure_periodic(FUNC(cgc7900_state::blink_tick), attotime::from_hz(XTAL(28'480'000)/7500000)); -MACHINE_CONFIG_END +} diff --git a/src/mame/video/decodmd1.cpp b/src/mame/video/decodmd1.cpp index f8a76bc7d28..e0164ad5c55 100644 --- a/src/mame/video/decodmd1.cpp +++ b/src/mame/video/decodmd1.cpp @@ -195,21 +195,22 @@ void decodmd_type1_device::decodmd1_io_map(address_map &map) map(0x00, 0xff).rw(FUNC(decodmd_type1_device::dmd_port_r), FUNC(decodmd_type1_device::dmd_port_w)); } -MACHINE_CONFIG_START(decodmd_type1_device::device_add_mconfig) +void decodmd_type1_device::device_add_mconfig(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("dmdcpu", Z80, XTAL(8'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(decodmd1_map) - MCFG_DEVICE_IO_MAP(decodmd1_io_map) + Z80(config, m_cpu, XTAL(8'000'000) / 2); + m_cpu->set_addrmap(AS_PROGRAM, &decodmd_type1_device::decodmd1_map); + m_cpu->set_addrmap(AS_IO, &decodmd_type1_device::decodmd1_io_map); config.m_minimum_quantum = attotime::from_hz(50); TIMER(config, "nmi_timer").configure_periodic(FUNC(decodmd_type1_device::dmd_nmi), attotime::from_hz(2000)); // seems a lot - MCFG_SCREEN_ADD("dmd", LCD) - MCFG_SCREEN_SIZE(128, 16) - MCFG_SCREEN_VISIBLE_AREA(0, 128-1, 0, 16-1) - MCFG_SCREEN_UPDATE_DRIVER(decodmd_type1_device, screen_update) - MCFG_SCREEN_REFRESH_RATE(50) + screen_device &dmd(SCREEN(config, "dmd", SCREEN_TYPE_LCD)); + dmd.set_size(128, 16); + dmd.set_visarea(0, 128-1, 0, 16-1); + dmd.set_screen_update(FUNC(decodmd_type1_device::screen_update)); + dmd.set_refresh_hz(50); RAM(config, RAM_TAG).set_default_size("8K"); @@ -220,7 +221,7 @@ MACHINE_CONFIG_START(decodmd_type1_device::device_add_mconfig) m_bitlatch->q_out_cb<5>().set(FUNC(decodmd_type1_device::rowdata_w)); m_bitlatch->q_out_cb<6>().set(FUNC(decodmd_type1_device::rowclock_w)); m_bitlatch->q_out_cb<7>().set(FUNC(decodmd_type1_device::test_w)); -MACHINE_CONFIG_END +} decodmd_type1_device::decodmd_type1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) diff --git a/src/mame/video/exidy440.cpp b/src/mame/video/exidy440.cpp index 12de6ba3be0..c3a09628098 100644 --- a/src/mame/video/exidy440.cpp +++ b/src/mame/video/exidy440.cpp @@ -460,22 +460,23 @@ uint32_t topsecex_state::screen_update_topsecex(screen_device &screen, bitmap_in * *************************************/ -MACHINE_CONFIG_START(exidy440_state::exidy440_video) - MCFG_PALETTE_ADD("palette", 256) - - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_video_attributes(VIDEO_ALWAYS_UPDATE); - screen.set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); - screen.set_screen_update(FUNC(exidy440_state::screen_update_exidy440)); - screen.set_palette(m_palette); - screen.screen_vblank().set(FUNC(exidy440_state::vblank_interrupt_w)); - screen.screen_vblank().append(m_custom, FUNC(exidy440_sound_device::sound_interrupt_w)); -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(topsecex_state::topsecex_video) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VIDEO_ATTRIBUTES(0) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, TOPSECEX_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(topsecex_state, screen_update_topsecex) -MACHINE_CONFIG_END +void exidy440_state::exidy440_video(machine_config &config) +{ + PALETTE(config, m_palette). set_entries(256); + + 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(exidy440_state::screen_update_exidy440)); + m_screen->set_palette(m_palette); + m_screen->screen_vblank().set(FUNC(exidy440_state::vblank_interrupt_w)); + m_screen->screen_vblank().append(m_custom, FUNC(exidy440_sound_device::sound_interrupt_w)); +} + + +void topsecex_state::topsecex_video(machine_config &config) +{ + m_screen->set_video_attributes(0); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, TOPSECEX_VBSTART); + m_screen->set_screen_update(FUNC(topsecex_state::screen_update_topsecex)); +} diff --git a/src/mame/video/gamate.cpp b/src/mame/video/gamate.cpp index 67e0272c8aa..f4a302ed321 100644 --- a/src/mame/video/gamate.cpp +++ b/src/mame/video/gamate.cpp @@ -305,18 +305,19 @@ void gamate_video_device::gamate_palette(palette_device &palette) const frame rate is 60.8093Hz. */ -MACHINE_CONFIG_START(gamate_video_device::device_add_mconfig) - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(60.8093) - MCFG_SCREEN_SIZE(160, 150) - MCFG_SCREEN_VISIBLE_AREA(0, 160-1, 0, 150-1) - MCFG_SCREEN_UPDATE_DRIVER(gamate_video_device, screen_update) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE) // close approximate until we use timers to emulate exact video update - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) +void gamate_video_device::device_add_mconfig(machine_config &config) +{ + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60.8093); + screen.set_size(160, 150); + screen.set_visarea(0, 160-1, 0, 150-1); + screen.set_screen_update(FUNC(gamate_video_device::screen_update)); + screen.set_palette("palette"); + screen.set_video_attributes(VIDEO_UPDATE_SCANLINE); // close approximate until we use timers to emulate exact video update + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); PALETTE(config, "palette", FUNC(gamate_video_device::gamate_palette), 4); -MACHINE_CONFIG_END +} void gamate_video_device::device_start() { diff --git a/src/mame/video/jedi.cpp b/src/mame/video/jedi.cpp index d99be2e9568..9383b5dcbeb 100644 --- a/src/mame/video/jedi.cpp +++ b/src/mame/video/jedi.cpp @@ -361,10 +361,11 @@ uint32_t jedi_state::screen_update_jedi(screen_device &screen, bitmap_rgb32 &bit * *************************************/ -MACHINE_CONFIG_START(jedi_state::jedi_video) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(64*8, 262) /* verify vert size */ - MCFG_SCREEN_VISIBLE_AREA(0*8, 37*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(jedi_state, screen_update_jedi) -MACHINE_CONFIG_END +void jedi_state::jedi_video(machine_config &config) +{ + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(64*8, 262); /* verify vert size */ + m_screen->set_visarea(0*8, 37*8-1, 0*8, 30*8-1); + m_screen->set_screen_update(FUNC(jedi_state::screen_update_jedi)); +} diff --git a/src/mame/video/kyocera.cpp b/src/mame/video/kyocera.cpp index ac510959eba..6b910160fef 100644 --- a/src/mame/video/kyocera.cpp +++ b/src/mame/video/kyocera.cpp @@ -39,13 +39,14 @@ void tandy200_state::tandy200_lcdc(address_map &map) map(0x0000, 0x1fff).ram(); } -MACHINE_CONFIG_START(kc85_state::kc85_video) - MCFG_SCREEN_ADD(SCREEN_TAG, LCD) - MCFG_SCREEN_REFRESH_RATE(44) - MCFG_SCREEN_UPDATE_DRIVER(kc85_state, screen_update) - MCFG_SCREEN_SIZE(240, 64) - MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 64-1) - MCFG_SCREEN_PALETTE("palette") +void kc85_state::kc85_video(machine_config &config) +{ + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_LCD)); + screen.set_refresh_hz(44); + screen.set_screen_update(FUNC(kc85_state::screen_update)); + screen.set_size(240, 64); + screen.set_visarea(0, 240-1, 0, 64-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(kc85_state::kc85_palette), 2); @@ -62,19 +63,20 @@ MACHINE_CONFIG_START(kc85_state::kc85_video) // MCFG_HD44103_MASTER_ADD("m11", SCREEN_TAG, CAP_P(18), RES_K(100), HD44103_FS_HIGH, HD44103_DUTY_1_32) // MCFG_HD44103_SLAVE_ADD( "m12", "m11", SCREEN_TAG, HD44103_FS_HIGH, HD44103_DUTY_1_32) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(tandy200_state::tandy200_video) - MCFG_SCREEN_ADD(SCREEN_TAG, LCD) - MCFG_SCREEN_REFRESH_RATE(80) - MCFG_SCREEN_UPDATE_DRIVER(tandy200_state, screen_update) - MCFG_SCREEN_SIZE(240, 128) - MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 128-1) - MCFG_SCREEN_PALETTE("palette") +void tandy200_state::tandy200_video(machine_config &config) +{ + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_LCD)); + screen.set_refresh_hz(80); + screen.set_screen_update(FUNC(tandy200_state::screen_update)); + screen.set_size(240, 128); + screen.set_visarea(0, 240-1, 0, 128-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(tandy200_state::tandy200_palette), 2); HD61830(config, m_lcdc, XTAL(4'915'200)/2/2); m_lcdc->set_addrmap(0, &tandy200_state::tandy200_lcdc); m_lcdc->set_screen(SCREEN_TAG); -MACHINE_CONFIG_END +} diff --git a/src/mame/video/leland.cpp b/src/mame/video/leland.cpp index 4ad9620e0c0..ccaece336bd 100644 --- a/src/mame/video/leland.cpp +++ b/src/mame/video/leland.cpp @@ -511,18 +511,19 @@ static GFXDECODE_START( gfx_ataxx ) GFXDECODE_ENTRY( "bg_gfx", 0, ataxx_layout, 0, 16) // 16 is foreground GFXDECODE_END -MACHINE_CONFIG_START(leland_state::leland_video) +void leland_state::leland_video(machine_config &config) +{ GFXDECODE(config, m_gfxdecode, m_palette, gfx_leland); PALETTE(config, m_palette).set_format(palette_device::BGR_233, 1024); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_DRIVER(leland_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); + m_screen->set_size(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 0*8, 30*8-1); + m_screen->set_refresh_hz(60); + m_screen->set_screen_update(FUNC(leland_state::screen_update)); + m_screen->set_palette(m_palette); +} void ataxx_state::ataxx_video(machine_config &config) { diff --git a/src/mame/video/madalien.cpp b/src/mame/video/madalien.cpp index 62dd7d21dd0..380d80cba01 100644 --- a/src/mame/video/madalien.cpp +++ b/src/mame/video/madalien.cpp @@ -116,10 +116,8 @@ WRITE8_MEMBER(madalien_state::madalien_videoram_w) } -VIDEO_START_MEMBER(madalien_state,madalien) +void madalien_state::video_start() { - int i; - static const tilemap_mapper_delegate scan_functions[4] = { tilemap_mapper_delegate(FUNC(madalien_state::scan_mode0),this), @@ -136,7 +134,7 @@ VIDEO_START_MEMBER(madalien_state,madalien) m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_FG),this), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32); m_tilemap_fg->set_transparent_pen(0); - for (i = 0; i < 4; i++) + for (int i = 0; i < 4; i++) { m_tilemap_edge1[i] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_BG_1),this), scan_functions[i], 16, 16, tilemap_cols[i], 8); @@ -364,19 +362,19 @@ static GFXDECODE_START( gfx_madalien ) GFXDECODE_END -MACHINE_CONFIG_START(madalien_state::madalien_video) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 336, 0, 256, 288, 0, 256) - MCFG_SCREEN_UPDATE_DRIVER(madalien_state, screen_update_madalien) - MCFG_SCREEN_PALETTE(m_palette) +void madalien_state::madalien_video(machine_config &config) +{ + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(PIXEL_CLOCK, 336, 0, 256, 288, 0, 256); + screen.set_screen_update(FUNC(madalien_state::screen_update_madalien)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_madalien); PALETTE(config, m_palette, FUNC(madalien_state::madalien_palette), 0x30, 0x20); - MCFG_VIDEO_START_OVERRIDE(madalien_state,madalien) mc6845_device &crtc(MC6845(config, "crtc", PIXEL_CLOCK / 8)); crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); crtc.out_vsync_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); -MACHINE_CONFIG_END +} diff --git a/src/mame/video/mikromik.cpp b/src/mame/video/mikromik.cpp index f31f8e95b73..bcadbfc954a 100644 --- a/src/mame/video/mikromik.cpp +++ b/src/mame/video/mikromik.cpp @@ -126,16 +126,17 @@ void mm1_state::mm1_palette(palette_device &palette) const //------------------------------------------------- -// MACHINE_CONFIG_START( mm1m6_video ) +// machine_config( mm1m6_video ) //------------------------------------------------- -MACHINE_CONFIG_START(mm1_state::mm1m6_video) - MCFG_SCREEN_ADD( SCREEN_TAG, RASTER ) - MCFG_SCREEN_REFRESH_RATE( 50 ) - MCFG_SCREEN_UPDATE_DRIVER(mm1_state, screen_update) - MCFG_SCREEN_SIZE( 800, 375 ) // (25 text rows * 15 vertical pixels / character) - MCFG_SCREEN_VISIBLE_AREA( 0, 800-1, 0, 375-1 ) - //MCFG_SCREEN_RAW_PARAMS(XTAL(18'720'000), ...) +void mm1_state::mm1m6_video(machine_config &config) +{ + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz( 50 ); + screen.set_screen_update(FUNC(mm1_state::screen_update)); + screen.set_size( 800, 375 ); // (25 text rows * 15 vertical pixels / character) + screen.set_visarea( 0, 800-1, 0, 375-1 ); + //screen.set_raw(XTAL(18'720'000), ...); GFXDECODE(config, "gfxdecode", m_palette, gfx_mm1); PALETTE(config, m_palette, FUNC(mm1_state::mm1_palette), 3); @@ -151,4 +152,4 @@ MACHINE_CONFIG_START(mm1_state::mm1m6_video) m_hgdc->set_addrmap(0, &mm1_state::mm1_upd7220_map); m_hgdc->set_display_pixels_callback(FUNC(mm1_state::hgdc_display_pixels), this); m_hgdc->set_screen(SCREEN_TAG); -MACHINE_CONFIG_END +} diff --git a/src/mame/video/mystston.cpp b/src/mame/video/mystston.cpp index efa90c607ef..ef5f62baa32 100644 --- a/src/mame/video/mystston.cpp +++ b/src/mame/video/mystston.cpp @@ -213,7 +213,7 @@ void mystston_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec * *************************************/ -VIDEO_START_MEMBER(mystston_state,mystston) +void mystston_state::video_start() { m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mystston_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 32); @@ -232,7 +232,7 @@ VIDEO_START_MEMBER(mystston_state,mystston) * *************************************/ -VIDEO_RESET_MEMBER(mystston_state,mystston) +void mystston_state::video_reset() { m_interrupt_timer->adjust(m_screen->time_until_pos(FIRST_INT_VPOS - 1, INT_HPOS), FIRST_INT_VPOS); } @@ -310,15 +310,13 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(mystston_state::mystston_video) - MCFG_VIDEO_START_OVERRIDE(mystston_state,mystston) - MCFG_VIDEO_RESET_OVERRIDE(mystston_state,mystston) - +void mystston_state::mystston_video(machine_config &config) +{ GFXDECODE(config, m_gfxdecode, m_palette, gfx_mystston); - MCFG_PALETTE_ADD("palette", 0x40) + PALETTE(config, m_palette).set_entries(0x40); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(mystston_state, screen_update_mystston) - MCFG_SCREEN_PALETTE("palette") -MACHINE_CONFIG_END + 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(mystston_state::screen_update_mystston)); + m_screen->set_palette("palette"); +} diff --git a/src/mame/video/osi.cpp b/src/mame/video/osi.cpp index f23b83f5c4d..d06540810e6 100644 --- a/src/mame/video/osi.cpp +++ b/src/mame/video/osi.cpp @@ -140,35 +140,38 @@ uint32_t uk101_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, /* Machine Drivers */ -MACHINE_CONFIG_START(sb2m600_state::osi600_video) - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(X1/256/256) // 60 Hz - MCFG_SCREEN_UPDATE_DRIVER(sb2m600_state, screen_update) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 32*8-1) - MCFG_SCREEN_PALETTE("palette") +void sb2m600_state::osi600_video(machine_config &config) +{ + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(X1/256/256); // 60 Hz + screen.set_screen_update(FUNC(sb2m600_state::screen_update)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 0, 32*8-1); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(uk101_state::uk101_video) - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_UPDATE_DRIVER(uk101_state, screen_update) - MCFG_SCREEN_SIZE(64*8, 16*16) - MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*16-1) - MCFG_SCREEN_PALETTE("palette") +void uk101_state::uk101_video(machine_config &config) +{ + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_screen_update(FUNC(uk101_state::screen_update)); + screen.set_size(64*8, 16*16); + screen.set_visarea(0, 64*8-1, 0, 16*16-1); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(sb2m600_state::osi630_video) - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(X1/256/256) // 60 Hz - MCFG_SCREEN_UPDATE_DRIVER(sb2m600_state, screen_update) - MCFG_SCREEN_SIZE(64*8, 16*16) - MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*16-1) - MCFG_SCREEN_PALETTE("palette") +void sb2m600_state::osi630_video(machine_config &config) +{ + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(X1/256/256); // 60 Hz + screen.set_screen_update(FUNC(sb2m600_state::screen_update)); + screen.set_size(64*8, 16*16); + screen.set_visarea(0, 64*8-1, 0, 16*16-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(sb2m600_state::osi630_palette), 8+2); -MACHINE_CONFIG_END +} diff --git a/src/mame/video/pc1512.cpp b/src/mame/video/pc1512.cpp index 82c5e563991..ff6787c9816 100644 --- a/src/mame/video/pc1512.cpp +++ b/src/mame/video/pc1512.cpp @@ -590,7 +590,7 @@ uint32_t pc1512_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap //------------------------------------------------- -// MACHINE_CONFIG( pc1512 ) +// machine_config( pc1512 ) //------------------------------------------------- void pc1512_state::pc1512_video(machine_config &config) diff --git a/src/mame/video/pc8401a.cpp b/src/mame/video/pc8401a.cpp index 0c38ce83c39..832b5c7cb1b 100644 --- a/src/mame/video/pc8401a.cpp +++ b/src/mame/video/pc8401a.cpp @@ -58,52 +58,54 @@ void pc8401a_state::pc8500_lcdc(address_map &map) /* Machine Drivers */ -MACHINE_CONFIG_START(pc8401a_state::pc8401a_video) +void pc8401a_state::pc8401a_video(machine_config &config) +{ // config.set_default_layout(layout_pc8401a); PALETTE(config, "palette", FUNC(pc8401a_state::pc8401a_palette), 2); /* LCD */ - MCFG_SCREEN_ADD(SCREEN_TAG, LCD) - MCFG_SCREEN_REFRESH_RATE(44) - MCFG_SCREEN_UPDATE_DEVICE(SED1330_TAG, sed1330_device, screen_update) - MCFG_SCREEN_SIZE(480, 128) - MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 128-1) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen_lcd, SCREEN_TYPE_LCD); + m_screen_lcd->set_refresh_hz(44); + m_screen_lcd->set_screen_update(SED1330_TAG, FUNC(sed1330_device::screen_update)); + m_screen_lcd->set_size(480, 128); + m_screen_lcd->set_visarea(0, 480-1, 0, 128-1); + m_screen_lcd->set_palette("palette"); SED1330(config, m_lcdc, 0); - m_lcdc->set_screen(SCREEN_TAG); + m_lcdc->set_screen(m_screen_lcd); m_lcdc->set_addrmap(0, &pc8401a_state::pc8401a_lcdc); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pc8500_state::pc8500_video) +void pc8500_state::pc8500_video(machine_config &config) +{ config.set_default_layout(layout_pc8500); PALETTE(config, "palette", FUNC(pc8500_state::pc8401a_palette), 2 + 8); /* LCD */ - MCFG_SCREEN_ADD(SCREEN_TAG, LCD) - MCFG_SCREEN_REFRESH_RATE(44) - MCFG_SCREEN_UPDATE_DEVICE(SED1330_TAG, sed1330_device, screen_update) - MCFG_SCREEN_SIZE(480, 208) - MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 200-1) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen_lcd, SCREEN_TYPE_LCD); + m_screen_lcd->set_refresh_hz(44); + m_screen_lcd->set_screen_update(SED1330_TAG, FUNC(sed1330_device::screen_update)); + m_screen_lcd->set_size(480, 208); + m_screen_lcd->set_visarea(0, 480-1, 0, 200-1); + m_screen_lcd->set_palette("palette"); SED1330(config, m_lcdc, 0); m_lcdc->set_screen(SCREEN_TAG); m_lcdc->set_addrmap(0, &pc8500_state::pc8500_lcdc); /* PC-8441A CRT */ - MCFG_SCREEN_ADD(CRT_SCREEN_TAG, RASTER) - MCFG_SCREEN_UPDATE_DRIVER(pc8500_state, screen_update) - MCFG_SCREEN_SIZE(80*8, 24*8) - MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 24*8-1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, CRT_SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(pc8500_state::screen_update)); + screen.set_size(80*8, 24*8); + screen.set_visarea(0, 80*8-1, 0, 24*8-1); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_refresh_hz(50); + screen.set_palette("palette"); MC6845(config, m_crtc, 400000); m_crtc->set_screen(CRT_SCREEN_TAG); m_crtc->set_show_border_area(false); m_crtc->set_char_width(6); -MACHINE_CONFIG_END +} diff --git a/src/mame/video/redalert.cpp b/src/mame/video/redalert.cpp index 817804bb736..2c7294427df 100644 --- a/src/mame/video/redalert.cpp +++ b/src/mame/video/redalert.cpp @@ -402,28 +402,27 @@ uint32_t redalert_state::screen_update_panther(screen_device &screen, bitmap_rgb * *************************************/ -MACHINE_CONFIG_START(redalert_state::redalert_video_common) - 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, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(redalert_state, screen_update_redalert) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(redalert_state::redalert_video) +void redalert_state::redalert_video_common(machine_config &config) +{ + 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(32*8, 32*8); + m_screen->set_visarea(0*8, 32*8-1, 1*8, 31*8-1); + m_screen->set_screen_update(FUNC(redalert_state::screen_update_redalert)); +} +void redalert_state::redalert_video(machine_config &config) +{ MCFG_VIDEO_START_OVERRIDE(redalert_state,redalert) redalert_video_common(config); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(redalert_state::ww3_video) - +void redalert_state::ww3_video(machine_config &config) +{ MCFG_VIDEO_START_OVERRIDE(redalert_state, ww3 ) redalert_video_common(config); - -MACHINE_CONFIG_END +} /************************************* @@ -432,26 +431,21 @@ MACHINE_CONFIG_END * *************************************/ -MACHINE_CONFIG_START(redalert_state::demoneye_video) +void redalert_state::demoneye_video(machine_config &config) +{ MCFG_VIDEO_START_OVERRIDE(redalert_state,redalert) - 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, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(redalert_state, screen_update_demoneye) -MACHINE_CONFIG_END + redalert_video_common(config); + m_screen->set_screen_update(FUNC(redalert_state::screen_update_demoneye)); +} -MACHINE_CONFIG_START(redalert_state::panther_video) +void redalert_state::panther_video(machine_config &config) +{ MCFG_VIDEO_START_OVERRIDE(redalert_state,ww3) - 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, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(redalert_state, screen_update_panther) -MACHINE_CONFIG_END + redalert_video_common(config); + + m_screen->set_screen_update(FUNC(redalert_state::screen_update_panther)); +} diff --git a/src/mame/video/stactics.cpp b/src/mame/video/stactics.cpp index 5f9ab186403..ed74bb411e2 100644 --- a/src/mame/video/stactics.cpp +++ b/src/mame/video/stactics.cpp @@ -426,15 +426,16 @@ uint32_t stactics_state::screen_update(screen_device &screen, bitmap_ind16 &bitm * *************************************/ -MACHINE_CONFIG_START(stactics_state::stactics_video) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) - 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, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(stactics_state, screen_update) - MCFG_SCREEN_PALETTE("palette") +void stactics_state::stactics_video(machine_config &config) +{ + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_video_attributes(VIDEO_ALWAYS_UPDATE); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(stactics_state::screen_update)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(stactics_state::stactics_palette), 0x400); -MACHINE_CONFIG_END +} diff --git a/src/mame/video/stfight_dev.cpp b/src/mame/video/stfight_dev.cpp index 0e85fb3af6f..18c81092dea 100644 --- a/src/mame/video/stfight_dev.cpp +++ b/src/mame/video/stfight_dev.cpp @@ -109,18 +109,19 @@ static GFXDECODE_START( gfx_stfight ) GFXDECODE_ENTRY( "spr_gfx", 0x0000, spritelayout, 0, 32 ) GFXDECODE_END -MACHINE_CONFIG_START(stfight_video_device::device_add_mconfig) +void stfight_video_device::device_add_mconfig(machine_config &config) +{ /* 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(stfight_video_device, screen_update_stfight) - 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(32*8, 32*8); + m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(stfight_video_device::screen_update_stfight)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_stfight); -MACHINE_CONFIG_END +} /* Graphics ROM Format diff --git a/src/mame/video/tmc1800.cpp b/src/mame/video/tmc1800.cpp index 71110e5aa51..f672d4d2c27 100644 --- a/src/mame/video/tmc1800.cpp +++ b/src/mame/video/tmc1800.cpp @@ -46,13 +46,14 @@ void tmc1800_state::tmc1800_video(machine_config &config) SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER); } -MACHINE_CONFIG_START(osc1000b_state::osc1000b_video) - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_UPDATE_DRIVER(osc1000b_state, screen_update) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(320, 200) - MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 199) -MACHINE_CONFIG_END +void osc1000b_state::osc1000b_video(machine_config &config) +{ + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(osc1000b_state::screen_update)); + screen.set_refresh_hz(50); + screen.set_size(320, 200); + screen.set_visarea(0, 319, 0, 199); +} void tmc2000_state::tmc2000_video(machine_config &config) { diff --git a/src/mame/video/vtvideo.cpp b/src/mame/video/vtvideo.cpp index 3fed7fd93f7..8e67e6957b5 100644 --- a/src/mame/video/vtvideo.cpp +++ b/src/mame/video/vtvideo.cpp @@ -922,6 +922,7 @@ void vt100_video_device::device_add_mconfig(machine_config &config) PALETTE(config, m_palette, palette_device::MONOCHROME); } -MACHINE_CONFIG_START(rainbow_video_device::device_add_mconfig) - MCFG_PALETTE_ADD("palette", 4) -MACHINE_CONFIG_END +void rainbow_video_device::device_add_mconfig(machine_config &config) +{ + PALETTE(config, m_palette).set_entries(4); +} diff --git a/src/mame/video/wpc_dmd.cpp b/src/mame/video/wpc_dmd.cpp index 8ab7b1c9d31..75b3e5cbddf 100644 --- a/src/mame/video/wpc_dmd.cpp +++ b/src/mame/video/wpc_dmd.cpp @@ -35,16 +35,17 @@ wpc_dmd_device::~wpc_dmd_device() { } -MACHINE_CONFIG_START(wpc_dmd_device::device_add_mconfig) - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, wpc_dmd_device, screen_update) - MCFG_SCREEN_SIZE(128*4, 32*4) - MCFG_SCREEN_VISIBLE_AREA(0, 128*4-1, 0, 32*4-1) +void wpc_dmd_device::device_add_mconfig(machine_config &config) +{ + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_screen_update(FUNC(wpc_dmd_device::screen_update)); + screen.set_size(128*4, 32*4); + screen.set_visarea(0, 128*4-1, 0, 32*4-1); TIMER(config, "scanline").configure_periodic(FUNC(wpc_dmd_device::scanline_timer), attotime::from_hz(60*4*32)); -MACHINE_CONFIG_END +} void wpc_dmd_device::device_start() { |