summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatarGravatar Ivan Vangelista <mesgnet@yahoo.it>2019-02-14 17:57:12 +0100
committerGravatarGravatar Ivan Vangelista <mesgnet@yahoo.it>2019-02-14 17:57:12 +0100
commit9aa0a78c9844d6eed57739b1addc41dc07507dd3 (patch) (github)
tree43e4a732cb0befa5b729843766e76b2be4ffade3
parent2ed835fc02bfe553fe644d373b8ac02fee9cb8d2 (diff)
downloadmame-9aa0a78c9844d6eed57739b1addc41dc07507dd3.tar.bz2
mame-9aa0a78c9844d6eed57739b1addc41dc07507dd3.zip
mame\video: removed MACHINE_CONFIG macros (nw)
mame\drivers: mostly removed MACHINE_CONFIG macros from drivers starting with w, x, y and z (nw)
-rw-r--r--src/devices/bus/a2bus/a2diskii.cpp16
-rw-r--r--src/devices/bus/a2bus/agat840k_hle.cpp15
-rw-r--r--src/devices/bus/nes/disksys.cpp7
-rw-r--r--src/devices/bus/scsi/scsihle.h6
-rw-r--r--src/devices/imagedev/flopdrv.h40
-rw-r--r--src/devices/machine/appldriv.h25
-rw-r--r--src/devices/machine/sonydriv.h18
-rw-r--r--src/mame/drivers/apple2e.cpp27
-rw-r--r--src/mame/drivers/bullet.cpp8
-rw-r--r--src/mame/drivers/dai3wksi.cpp2
-rw-r--r--src/mame/drivers/exidy440.cpp23
-rw-r--r--src/mame/drivers/fastfred.cpp2
-rw-r--r--src/mame/drivers/firebeat.cpp4
-rw-r--r--src/mame/drivers/foodf.cpp2
-rw-r--r--src/mame/drivers/hitpoker.cpp3
-rw-r--r--src/mame/drivers/hng64.cpp3
-rw-r--r--src/mame/drivers/joctronic.cpp3
-rw-r--r--src/mame/drivers/k8915.cpp2
-rw-r--r--src/mame/drivers/m63.cpp4
-rw-r--r--src/mame/drivers/mjkjidai.cpp4
-rw-r--r--src/mame/drivers/neoprint.cpp3
-rw-r--r--src/mame/drivers/nmg5.cpp4
-rw-r--r--src/mame/drivers/peplus.cpp3
-rw-r--r--src/mame/drivers/pyl601.cpp2
-rw-r--r--src/mame/drivers/seabattl.cpp4
-rw-r--r--src/mame/drivers/sengokmj.cpp4
-rw-r--r--src/mame/drivers/snowbros.cpp2
-rw-r--r--src/mame/drivers/sorcerer.cpp2
-rw-r--r--src/mame/drivers/spectra.cpp2
-rw-r--r--src/mame/drivers/sun3x.cpp27
-rw-r--r--src/mame/drivers/thomson.cpp20
-rw-r--r--src/mame/drivers/travrusa.cpp2
-rw-r--r--src/mame/drivers/v1050.cpp19
-rw-r--r--src/mame/drivers/vtech2.cpp9
-rw-r--r--src/mame/drivers/wacky_gator.cpp4
-rw-r--r--src/mame/drivers/wallc.cpp46
-rw-r--r--src/mame/drivers/wangpc.cpp2
-rw-r--r--src/mame/drivers/warpsped.cpp28
-rw-r--r--src/mame/drivers/warpwarp.cpp66
-rw-r--r--src/mame/drivers/wheelfir.cpp30
-rw-r--r--src/mame/drivers/white_mod.cpp9
-rw-r--r--src/mame/drivers/wico.cpp18
-rw-r--r--src/mame/drivers/wildpkr.cpp56
-rw-r--r--src/mame/drivers/williams.cpp142
-rw-r--r--src/mame/drivers/wink.cpp35
-rw-r--r--src/mame/drivers/wiping.cpp32
-rw-r--r--src/mame/drivers/witch.cpp42
-rw-r--r--src/mame/drivers/wiz.cpp75
-rw-r--r--src/mame/drivers/wmg.cpp22
-rw-r--r--src/mame/drivers/wms.cpp39
-rw-r--r--src/mame/drivers/wolfpack.cpp28
-rw-r--r--src/mame/drivers/wpc_95.cpp20
-rw-r--r--src/mame/drivers/wpc_dcs.cpp17
-rw-r--r--src/mame/drivers/wpc_s.cpp20
-rw-r--r--src/mame/drivers/wrally.cpp35
-rw-r--r--src/mame/drivers/wswan.cpp37
-rw-r--r--src/mame/drivers/wwfsstar.cpp29
-rw-r--r--src/mame/drivers/wyse.cpp11
-rw-r--r--src/mame/drivers/x07.cpp20
-rw-r--r--src/mame/drivers/x1.cpp32
-rw-r--r--src/mame/drivers/x1twin.cpp36
-rw-r--r--src/mame/drivers/xain.cpp35
-rw-r--r--src/mame/drivers/xbox.cpp7
-rw-r--r--src/mame/drivers/xerox820.cpp35
-rw-r--r--src/mame/drivers/xmen.cpp88
-rw-r--r--src/mame/drivers/xtom3d.cpp8
-rw-r--r--src/mame/drivers/xxmissio.cpp32
-rw-r--r--src/mame/drivers/xybots.cpp26
-rw-r--r--src/mame/drivers/xyonix.cpp30
-rw-r--r--src/mame/drivers/y2.cpp21
-rw-r--r--src/mame/drivers/yiear.cpp39
-rw-r--r--src/mame/drivers/z100.cpp21
-rw-r--r--src/mame/drivers/z1013.cpp25
-rw-r--r--src/mame/drivers/z80dev.cpp11
-rw-r--r--src/mame/drivers/z80ne.cpp43
-rw-r--r--src/mame/drivers/z9001.cpp21
-rw-r--r--src/mame/drivers/zac_proto.cpp10
-rw-r--r--src/mame/drivers/zaccaria.cpp26
-rw-r--r--src/mame/drivers/zapcomputer.cpp11
-rw-r--r--src/mame/drivers/zaurus.cpp24
-rw-r--r--src/mame/drivers/zaxxon.cpp80
-rw-r--r--src/mame/includes/madalien.h4
-rw-r--r--src/mame/includes/mystston.h6
-rw-r--r--src/mame/machine/atarifdc.cpp7
-rw-r--r--src/mame/machine/rx01.cpp7
-rw-r--r--src/mame/video/20pacgal.cpp19
-rw-r--r--src/mame/video/733_asr.cpp20
-rw-r--r--src/mame/video/911_vdt.cpp16
-rw-r--r--src/mame/video/abc80.cpp14
-rw-r--r--src/mame/video/abc800.cpp21
-rw-r--r--src/mame/video/abc802.cpp2
-rw-r--r--src/mame/video/abc806.cpp13
-rw-r--r--src/mame/video/agat7.cpp13
-rw-r--r--src/mame/video/airraid_dev.cpp21
-rw-r--r--src/mame/video/amiga.cpp32
-rw-r--r--src/mame/video/apollo.cpp26
-rw-r--r--src/mame/video/bfm_adr2.cpp29
-rw-r--r--src/mame/video/bfm_dm01.cpp32
-rw-r--r--src/mame/video/cgc7900.cpp19
-rw-r--r--src/mame/video/decodmd1.cpp21
-rw-r--r--src/mame/video/exidy440.cpp39
-rw-r--r--src/mame/video/gamate.cpp21
-rw-r--r--src/mame/video/jedi.cpp15
-rw-r--r--src/mame/video/kyocera.cpp34
-rw-r--r--src/mame/video/leland.cpp19
-rw-r--r--src/mame/video/madalien.cpp20
-rw-r--r--src/mame/video/mikromik.cpp19
-rw-r--r--src/mame/video/mystston.cpp22
-rw-r--r--src/mame/video/osi.cpp51
-rw-r--r--src/mame/video/pc1512.cpp2
-rw-r--r--src/mame/video/pc8401a.cpp50
-rw-r--r--src/mame/video/redalert.cpp58
-rw-r--r--src/mame/video/stactics.cpp21
-rw-r--r--src/mame/video/stfight_dev.cpp19
-rw-r--r--src/mame/video/tmc1800.cpp15
-rw-r--r--src/mame/video/vtvideo.cpp7
-rw-r--r--src/mame/video/wpc_dmd.cpp17
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()
{