From 7d2862d0802fe2a7e2a46f47889c538b6fb46c54 Mon Sep 17 00:00:00 2001 From: cam900 Date: Mon, 11 Feb 2019 20:18:22 +0900 Subject: device/bus/sega8/sega8_slot.cpp : Remove MCFG macros --- src/devices/bus/sega8/ccatch.cpp | 7 +- src/devices/bus/sega8/mgear.cpp | 7 +- src/devices/bus/sega8/sega8_slot.cpp | 61 ++++++++- src/devices/bus/sega8/sega8_slot.h | 253 +++++++++++++++++++++++++---------- src/devices/bus/sms_exp/gender.cpp | 7 +- src/mame/drivers/sg1000.cpp | 6 +- src/mame/drivers/sms.cpp | 86 ++++++------ 7 files changed, 300 insertions(+), 127 deletions(-) diff --git a/src/devices/bus/sega8/ccatch.cpp b/src/devices/bus/sega8/ccatch.cpp index cbe9840bae7..1180e7a793b 100644 --- a/src/devices/bus/sega8/ccatch.cpp +++ b/src/devices/bus/sega8/ccatch.cpp @@ -53,6 +53,7 @@ static void sg1000_card(device_slot_interface &device) device.option_add_internal("rom", SEGA8_ROM_STD); } -MACHINE_CONFIG_START(sega8_cardcatch_device::device_add_mconfig) - MCFG_SG1000_CARD_ADD("cardslot", sg1000_card, nullptr) -MACHINE_CONFIG_END +void sega8_cardcatch_device::device_add_mconfig(machine_config &config) +{ + SG1000_CARD_SLOT(config, "cardslot", sg1000_card, nullptr); +} diff --git a/src/devices/bus/sega8/mgear.cpp b/src/devices/bus/sega8/mgear.cpp index e1f292013f1..46fb6a4ad52 100644 --- a/src/devices/bus/sega8/mgear.cpp +++ b/src/devices/bus/sega8/mgear.cpp @@ -38,7 +38,8 @@ void sega8_mgear_device::device_reset() } -MACHINE_CONFIG_START(sega8_mgear_device::device_add_mconfig) - MCFG_SMS_CARTRIDGE_ADD("subslot", sms_cart, nullptr) +void sega8_mgear_device::device_add_mconfig(machine_config &config) +{ + SMS_CART_SLOT(config, "subslot", sms_cart, nullptr); SOFTWARE_LIST(config, "cart_list").set_original("sms"); -MACHINE_CONFIG_END +} diff --git a/src/devices/bus/sega8/sega8_slot.cpp b/src/devices/bus/sega8/sega8_slot.cpp index 0922a431cbf..e897f6c53e8 100644 --- a/src/devices/bus/sega8/sega8_slot.cpp +++ b/src/devices/bus/sega8/sega8_slot.cpp @@ -40,6 +40,16 @@ DEFINE_DEVICE_TYPE(SEGA8_CART_SLOT, sega8_cart_slot_device, "sega8_cart_slot", "Sega Master System / Game Gear / SG-1000 Cartridge Slot") DEFINE_DEVICE_TYPE(SEGA8_CARD_SLOT, sega8_card_slot_device, "sega8_card_slot", "Sega Master System / Game Gear / SG-1000 Card Slot") +DEFINE_DEVICE_TYPE(SG1000_CART_SLOT, sg1000_cart_slot_device, "sg1000_cart_slot", "Sega SG-1000 Cartridge Slot") +DEFINE_DEVICE_TYPE(OMV_CART_SLOT, omv_cart_slot_device, "omv_cart_slot", "Tsukuda Original Othello Multivision FG-1000 / FG-2000 Cartridge Slot") +DEFINE_DEVICE_TYPE(SC3000_CART_SLOT, sc3000_cart_slot_device, "sc3000_cart_slot", "Sega SC-3000 Cartridge Slot") +DEFINE_DEVICE_TYPE(SG1000MK3_CART_SLOT, sg1000mk3_cart_slot_device, "sg1000mk3_cart_slot", "Sega SG-1000 Mark III Cartridge Slot") +DEFINE_DEVICE_TYPE(SMS_CART_SLOT, sms_cart_slot_device, "sms_cart_slot", "Sega Master System Cartridge Slot") +DEFINE_DEVICE_TYPE(GAMEGEAR_CART_SLOT, gamegear_cart_slot_device, "gamegear_cart_slot", "Sega Game Gear Cartridge Slot") + +DEFINE_DEVICE_TYPE(SMS_CARD_SLOT, sms_card_slot_device, "sms_card_slot", "Sega Master System Card Slot") +DEFINE_DEVICE_TYPE(SG1000_CARD_SLOT, sg1000_card_slot_device, "sg1000_card_slot", "Sega SG-1000 Card Slot") + //************************************************************************** // SMS cartridges Interface @@ -112,10 +122,7 @@ sega8_cart_slot_device::sega8_cart_slot_device(const machine_config &mconfig, de , device_image_interface(mconfig, *this) , device_slot_interface(mconfig, *this) , m_type(SEGA8_BASE_ROM) - , m_must_be_loaded(false) , m_is_card(is_card) - , m_interface("sms_cart") - , m_extensions("bin") , m_cart(nullptr) { } @@ -125,11 +132,57 @@ sega8_cart_slot_device::sega8_cart_slot_device(const machine_config &mconfig, co { } +sega8_card_slot_device::sega8_card_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : sega8_cart_slot_device(mconfig, type, tag, owner, clock, true) +{ +} + sega8_card_slot_device::sega8_card_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : sega8_cart_slot_device(mconfig, SEGA8_CARD_SLOT, tag, owner, clock, true) + : sega8_card_slot_device(mconfig, SEGA8_CARD_SLOT, tag, owner, clock) +{ +} + + +sg1000_cart_slot_device::sg1000_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : sega8_cart_slot_device(mconfig, SG1000_CART_SLOT, tag, owner, clock) +{ +} + +omv_cart_slot_device::omv_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : sega8_cart_slot_device(mconfig, OMV_CART_SLOT, tag, owner, clock) +{ +} + +sc3000_cart_slot_device::sc3000_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : sega8_cart_slot_device(mconfig, SC3000_CART_SLOT, tag, owner, clock) { } +sg1000mk3_cart_slot_device::sg1000mk3_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : sega8_cart_slot_device(mconfig, SG1000MK3_CART_SLOT, tag, owner, clock) +{ +} + +sms_cart_slot_device::sms_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : sega8_cart_slot_device(mconfig, SMS_CART_SLOT, tag, owner, clock) +{ +} + +gamegear_cart_slot_device::gamegear_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : sega8_cart_slot_device(mconfig, GAMEGEAR_CART_SLOT, tag, owner, clock) +{ +} + + +sms_card_slot_device::sms_card_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : sega8_card_slot_device(mconfig, SMS_CARD_SLOT, tag, owner, clock) +{ +} + +sg1000_card_slot_device::sg1000_card_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : sega8_card_slot_device(mconfig, SG1000_CARD_SLOT, tag, owner, clock) +{ +} //------------------------------------------------- // sega8_cart_slot_device - destructor diff --git a/src/devices/bus/sega8/sega8_slot.h b/src/devices/bus/sega8/sega8_slot.h index 829398b7ef4..ca3ebdc6172 100644 --- a/src/devices/bus/sega8/sega8_slot.h +++ b/src/devices/bus/sega8/sega8_slot.h @@ -131,18 +131,14 @@ public: void save_ram() { if (m_cart && m_cart->get_ram_size()) m_cart->save_ram(); } - void set_mandatory(bool val) { m_must_be_loaded = val; } - void set_intf(const char * interface) { m_interface = interface; } - void set_ext(const char * extensions) { m_extensions = extensions; } - virtual iodevice_t image_type() const override { return IO_CARTSLOT; } virtual bool is_readable() const override { return 1; } virtual bool is_writeable() const override { return 0; } virtual bool is_creatable() const override { return 0; } - virtual bool must_be_loaded() const override { return m_must_be_loaded; } virtual bool is_reset_on_load() const override { return 1; } - virtual const char *image_interface() const override { return m_interface; } - virtual const char *file_extensions() const override { return m_extensions; } + virtual bool must_be_loaded() const override { return false; } + virtual const char *image_interface() const override { return "sms_cart"; } + virtual const char *file_extensions() const override { return "bin"; } // slot interface overrides virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override; @@ -160,15 +156,13 @@ public: int get_sms_mode() { return m_cart->get_sms_mode(); } protected: - sega8_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_card); + sega8_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_card = false); // device-level overrides virtual void device_start() override; int m_type; - bool m_must_be_loaded, m_is_card; - const char *m_interface; - const char *m_extensions; + bool m_is_card; device_sega8_cart_interface* m_cart; }; @@ -182,8 +176,188 @@ public: virtual const char *custom_instance_name() const override { return "card"; } virtual const char *custom_brief_instance_name() const override { return "card"; } + +protected: + // construction/destruction + sega8_card_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); +}; + +// ======================> sg1000_cart_slot_device + +class sg1000_cart_slot_device : public sega8_cart_slot_device +{ +public: + // construction/destruction + template + sg1000_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt) + : sg1000_cart_slot_device(mconfig, tag, owner, u32(0)) + { + option_reset(); + opts(*this); + set_default_option(dflt); + set_fixed(false); + } + sg1000_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual bool must_be_loaded() const override { return true; } + virtual const char *image_interface() const override { return "sg1000_cart"; } + virtual const char *file_extensions() const override { return "bin,sg"; } +}; + +// ======================> omv_cart_slot_device + +class omv_cart_slot_device : public sega8_cart_slot_device +{ +public: + // construction/destruction + template + omv_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt) + : omv_cart_slot_device(mconfig, tag, owner, u32(0)) + { + option_reset(); + opts(*this); + set_default_option(dflt); + set_fixed(false); + } + omv_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual bool must_be_loaded() const override { return false; } + virtual const char *image_interface() const override { return "sg1000_cart"; } + virtual const char *file_extensions() const override { return "bin,sg"; } +}; + +// ======================> sc3000_cart_slot_device + +class sc3000_cart_slot_device : public sega8_cart_slot_device +{ +public: + // construction/destruction + template + sc3000_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt) + : sc3000_cart_slot_device(mconfig, tag, owner, u32(0)) + { + option_reset(); + opts(*this); + set_default_option(dflt); + set_fixed(false); + } + sc3000_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual bool must_be_loaded() const override { return true; } + virtual const char *image_interface() const override { return "sg1000_cart"; } + virtual const char *file_extensions() const override { return "bin,sg,sc"; } +}; + +// ======================> sg1000mk3_cart_slot_device + +class sg1000mk3_cart_slot_device : public sega8_cart_slot_device +{ +public: + // construction/destruction + template + sg1000mk3_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt) + : sg1000mk3_cart_slot_device(mconfig, tag, owner, u32(0)) + { + option_reset(); + opts(*this); + set_default_option(dflt); + set_fixed(false); + } + sg1000mk3_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual bool must_be_loaded() const override { return false; } + virtual const char *image_interface() const override { return "sms_cart,sg1000_cart"; } + virtual const char *file_extensions() const override { return "bin,sms,sg"; } }; +// ======================> sms_cart_slot_device + +class sms_cart_slot_device : public sega8_cart_slot_device +{ +public: + // construction/destruction + template + sms_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt) + : sms_cart_slot_device(mconfig, tag, owner, u32(0)) + { + option_reset(); + opts(*this); + set_default_option(dflt); + set_fixed(false); + } + sms_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual bool must_be_loaded() const override { return false; } + virtual const char *image_interface() const override { return "sms_cart"; } + virtual const char *file_extensions() const override { return "bin,sms"; } +}; + +// ======================> gamegear_cart_slot_device + +class gamegear_cart_slot_device : public sega8_cart_slot_device +{ +public: + // construction/destruction + template + gamegear_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt) + : gamegear_cart_slot_device(mconfig, tag, owner, u32(0)) + { + option_reset(); + opts(*this); + set_default_option(dflt); + set_fixed(false); + } + gamegear_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual bool must_be_loaded() const override { return true; } + virtual const char *image_interface() const override { return "gamegear_cart"; } + virtual const char *file_extensions() const override { return "bin,gg"; } +}; + + +// ======================> sms_card_slot_device + +class sms_card_slot_device : public sega8_card_slot_device +{ +public: + // construction/destruction + template + sms_card_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt) + : sms_card_slot_device(mconfig, tag, owner, u32(0)) + { + option_reset(); + opts(*this); + set_default_option(dflt); + set_fixed(false); + } + sms_card_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual bool must_be_loaded() const override { return false; } + virtual const char *image_interface() const override { return "sms_card"; } + virtual const char *file_extensions() const override { return "bin"; } +}; + +// ======================> sg1000_card_slot_device + +class sg1000_card_slot_device : public sega8_card_slot_device +{ +public: + // construction/destruction + template + sg1000_card_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt) + : sg1000_card_slot_device(mconfig, tag, owner, u32(0)) + { + option_reset(); + opts(*this); + set_default_option(dflt); + set_fixed(false); + } + sg1000_card_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual const char *image_interface() const override { return "sg1000_cart"; } + virtual const char *file_extensions() const override { return "bin,sg"; } +}; + +DECLARE_DEVICE_TYPE(SG1000_CART_SLOT, sg1000_cart_slot_device) +DECLARE_DEVICE_TYPE(OMV_CART_SLOT, omv_cart_slot_device) +DECLARE_DEVICE_TYPE(SC3000_CART_SLOT, sc3000_cart_slot_device) +DECLARE_DEVICE_TYPE(SG1000MK3_CART_SLOT, sg1000mk3_cart_slot_device) +DECLARE_DEVICE_TYPE(SMS_CART_SLOT, sms_cart_slot_device) +DECLARE_DEVICE_TYPE(GAMEGEAR_CART_SLOT, gamegear_cart_slot_device) +DECLARE_DEVICE_TYPE(SMS_CARD_SLOT, sms_card_slot_device) +DECLARE_DEVICE_TYPE(SG1000_CARD_SLOT, sg1000_card_slot_device) /*************************************************************************** DEVICE CONFIGURATION MACROS @@ -192,63 +366,6 @@ public: #define S8SLOT_ROM_REGION_TAG ":cart:rom" -#define MCFG_SG1000_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ - MCFG_DEVICE_ADD(_tag, SEGA8_CART_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \ - static_cast(device)->set_mandatory(true); \ - static_cast(device)->set_intf("sg1000_cart"); \ - static_cast(device)->set_ext("bin,sg"); - -#define MCFG_OMV_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ - MCFG_DEVICE_ADD(_tag, SEGA8_CART_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \ - static_cast(device)->set_mandatory(false); \ - static_cast(device)->set_intf("sg1000_cart"); \ - static_cast(device)->set_ext("bin,sg"); - -#define MCFG_SC3000_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ - MCFG_DEVICE_ADD(_tag, SEGA8_CART_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \ - static_cast(device)->set_mandatory(true); \ - static_cast(device)->set_intf("sg1000_cart"); \ - static_cast(device)->set_ext("bin,sg,sc"); - -#define MCFG_SG1000MK3_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ - MCFG_DEVICE_ADD(_tag, SEGA8_CART_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \ - static_cast(device)->set_mandatory(false); \ - static_cast(device)->set_intf("sms_cart,sg1000_cart"); \ - static_cast(device)->set_ext("bin,sms,sg"); - -#define MCFG_SMS_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ - MCFG_DEVICE_ADD(_tag, SEGA8_CART_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \ - static_cast(device)->set_mandatory(false); \ - static_cast(device)->set_intf("sms_cart"); \ - static_cast(device)->set_ext("bin,sms"); - -#define MCFG_GG_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ - MCFG_DEVICE_ADD(_tag, SEGA8_CART_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \ - static_cast(device)->set_mandatory(true); \ - static_cast(device)->set_intf("gamegear_cart"); \ - static_cast(device)->set_ext("bin,gg"); - - - -#define MCFG_SMS_CARD_ADD(_tag,_slot_intf,_def_slot) \ - MCFG_DEVICE_ADD(_tag, SEGA8_CARD_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \ - static_cast(device)->set_mandatory(false); \ - static_cast(device)->set_intf("sms_card"); \ - static_cast(device)->set_ext("bin"); -#define MCFG_SG1000_CARD_ADD(_tag,_slot_intf,_def_slot) \ - MCFG_DEVICE_ADD(_tag, SEGA8_CARD_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \ - static_cast(device)->set_intf("sg1000_cart"); \ - static_cast(device)->set_ext("bin,sg"); - - // slot interfaces void sg1000_cart(device_slot_interface &device); void sg1000mk3_cart(device_slot_interface &device); diff --git a/src/devices/bus/sms_exp/gender.cpp b/src/devices/bus/sms_exp/gender.cpp index b6279fb8dff..227aae8a1da 100644 --- a/src/devices/bus/sms_exp/gender.cpp +++ b/src/devices/bus/sms_exp/gender.cpp @@ -95,6 +95,7 @@ WRITE8_MEMBER(sms_gender_adapter_device::write_ram) // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(sms_gender_adapter_device::device_add_mconfig) - MCFG_SMS_CARTRIDGE_ADD("subslot", sms_cart, nullptr) -MACHINE_CONFIG_END +void sms_gender_adapter_device::device_add_mconfig(machine_config &config) +{ + SMS_CART_SLOT(config, "subslot", sms_cart, nullptr); +} diff --git a/src/mame/drivers/sg1000.cpp b/src/mame/drivers/sg1000.cpp index 5a9b1cc3f4f..285c8ab8842 100644 --- a/src/mame/drivers/sg1000.cpp +++ b/src/mame/drivers/sg1000.cpp @@ -551,7 +551,7 @@ MACHINE_CONFIG_START(sg1000_state::sg1000) SG1000_EXPANSION_SLOT(config, m_sgexpslot, sg1000_expansion_devices, nullptr, false); /* cartridge */ - MCFG_SG1000_CARTRIDGE_ADD(CARTSLOT_TAG, sg1000_cart, nullptr) + SG1000_CART_SLOT(config, CARTSLOT_TAG, sg1000_cart, nullptr); /* software lists */ SOFTWARE_LIST(config, "cart_list").set_original("sg1000"); @@ -571,7 +571,7 @@ MACHINE_CONFIG_START(sg1000_state::omv) MCFG_DEVICE_IO_MAP(omv_io_map) config.device_remove(CARTSLOT_TAG); - MCFG_OMV_CARTRIDGE_ADD(CARTSLOT_TAG, sg1000_cart, nullptr) + OMV_CART_SLOT(config, CARTSLOT_TAG, sg1000_cart, nullptr); m_ram->set_default_size("2K"); MACHINE_CONFIG_END @@ -603,7 +603,7 @@ MACHINE_CONFIG_START(sc3000_state::sc3000) SG1000_EXPANSION_SLOT(config, m_sgexpslot, sg1000_expansion_devices, "sk1100", true); /* cartridge */ - MCFG_SC3000_CARTRIDGE_ADD(CARTSLOT_TAG, sg1000_cart, nullptr) + SC3000_CART_SLOT(config, CARTSLOT_TAG, sg1000_cart, nullptr); /* software lists */ SOFTWARE_LIST(config, "cart_list").set_original("sg1000"); diff --git a/src/mame/drivers/sms.cpp b/src/mame/drivers/sms.cpp index 44cade72066..86a4b88a425 100644 --- a/src/mame/drivers/sms.cpp +++ b/src/mame/drivers/sms.cpp @@ -497,7 +497,7 @@ MACHINE_CONFIG_START(sms_state::sms_base) /* basic machine hardware */ SPEAKER(config, "mono").front_center(); - MCFG_SMS_CARTRIDGE_ADD("slot", sms_cart, nullptr) + SMS_CART_SLOT(config, "slot", sms_cart, nullptr); SOFTWARE_LIST(config, "cart_list").set_original("sms"); @@ -621,7 +621,7 @@ MACHINE_CONFIG_START(sms_state::sms1_ntsc) m_vdp->pause().set(FUNC(sms_state::sms_pause_callback)); // card and expansion slots, not present in Master System II - MCFG_SMS_CARD_ADD("mycard", sms_cart, nullptr) + SMS_CARD_SLOT(config, "mycard", sms_cart, nullptr); SMS_EXPANSION_SLOT(config, "smsexp", sms_expansion_devices, nullptr); m_has_bios_full = true; @@ -641,38 +641,38 @@ MACHINE_CONFIG_START(smssdisp_state::sms_sdisp) config.device_remove("mycard"); config.device_remove("smsexp"); - MCFG_SMS_CARTRIDGE_ADD("slot2", sms_cart, nullptr) - MCFG_SMS_CARTRIDGE_ADD("slot3", sms_cart, nullptr) - MCFG_SMS_CARTRIDGE_ADD("slot4", sms_cart, nullptr) - MCFG_SMS_CARTRIDGE_ADD("slot5", sms_cart, nullptr) - MCFG_SMS_CARTRIDGE_ADD("slot6", sms_cart, nullptr) - MCFG_SMS_CARTRIDGE_ADD("slot7", sms_cart, nullptr) - MCFG_SMS_CARTRIDGE_ADD("slot8", sms_cart, nullptr) - MCFG_SMS_CARTRIDGE_ADD("slot9", sms_cart, nullptr) - MCFG_SMS_CARTRIDGE_ADD("slot10", sms_cart, nullptr) - MCFG_SMS_CARTRIDGE_ADD("slot11", sms_cart, nullptr) - MCFG_SMS_CARTRIDGE_ADD("slot12", sms_cart, nullptr) - MCFG_SMS_CARTRIDGE_ADD("slot13", sms_cart, nullptr) - MCFG_SMS_CARTRIDGE_ADD("slot14", sms_cart, nullptr) - MCFG_SMS_CARTRIDGE_ADD("slot15", sms_cart, nullptr) - MCFG_SMS_CARTRIDGE_ADD("slot16", sms_cart, nullptr) - - MCFG_SMS_CARD_ADD("slot17", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot18", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot19", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot20", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot21", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot22", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot23", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot24", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot25", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot26", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot27", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot28", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot29", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot30", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot31", sms_cart, nullptr) - MCFG_SMS_CARD_ADD("slot32", sms_cart, nullptr) + SMS_CART_SLOT(config, "slot2", sms_cart, nullptr); + SMS_CART_SLOT(config, "slot3", sms_cart, nullptr); + SMS_CART_SLOT(config, "slot4", sms_cart, nullptr); + SMS_CART_SLOT(config, "slot5", sms_cart, nullptr); + SMS_CART_SLOT(config, "slot6", sms_cart, nullptr); + SMS_CART_SLOT(config, "slot7", sms_cart, nullptr); + SMS_CART_SLOT(config, "slot8", sms_cart, nullptr); + SMS_CART_SLOT(config, "slot9", sms_cart, nullptr); + SMS_CART_SLOT(config, "slot10", sms_cart, nullptr); + SMS_CART_SLOT(config, "slot11", sms_cart, nullptr); + SMS_CART_SLOT(config, "slot12", sms_cart, nullptr); + SMS_CART_SLOT(config, "slot13", sms_cart, nullptr); + SMS_CART_SLOT(config, "slot14", sms_cart, nullptr); + SMS_CART_SLOT(config, "slot15", sms_cart, nullptr); + SMS_CART_SLOT(config, "slot16", sms_cart, nullptr); + + SMS_CARD_SLOT(config, "slot17", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot18", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot19", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot20", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot21", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot22", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot23", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot24", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot25", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot26", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot27", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot28", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot29", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot30", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot31", sms_cart, nullptr); + SMS_CARD_SLOT(config, "slot32", sms_cart, nullptr); m_has_bios_full = false; m_is_sdisp = true; @@ -743,7 +743,7 @@ MACHINE_CONFIG_START(sms_state::sms1_pal) m_vdp->pause().set(FUNC(sms_state::sms_pause_callback)); // card and expansion slots, not present in Master System II - MCFG_SMS_CARD_ADD("mycard", sms_cart, nullptr) + SMS_CARD_SLOT(config, "mycard", sms_cart, nullptr); SMS_EXPANSION_SLOT(config, "smsexp", sms_expansion_devices, nullptr); m_has_bios_full = true; @@ -815,7 +815,7 @@ MACHINE_CONFIG_START(sms_state::sms1_paln) m_vdp->pause().set(FUNC(sms_state::sms_pause_callback)); // card and expansion slots, not present in Tec Toy Master System III - MCFG_SMS_CARD_ADD("mycard", sms_cart, nullptr) + SMS_CARD_SLOT(config, "mycard", sms_cart, nullptr); SMS_EXPANSION_SLOT(config, "smsexp", sms_expansion_devices, nullptr); m_has_bios_full = true; @@ -889,7 +889,7 @@ MACHINE_CONFIG_START(sms_state::sms1_br) m_vdp->pause().set(FUNC(sms_state::sms_pause_callback)); // card and expansion slots, not present in Tec Toy Master System III - MCFG_SMS_CARD_ADD("mycard", sms_cart, nullptr) + SMS_CARD_SLOT(config, "mycard", sms_cart, nullptr); SMS_EXPANSION_SLOT(config, "smsexp", sms_expansion_devices, nullptr); m_has_bios_full = true; @@ -903,7 +903,7 @@ MACHINE_CONFIG_START(sms_state::sms2_kr) MCFG_DEVICE_IO_MAP(smskr_io) config.device_remove("slot"); - MCFG_SG1000MK3_CARTRIDGE_ADD("slot", sg1000mk3_cart, nullptr) + SG1000MK3_CART_SLOT(config, "slot", sg1000mk3_cart, nullptr); SOFTWARE_LIST(config, "cart_list2").set_original("sg1000"); // Despite having a Japanese cartridge slot, this version is detected as Export region. @@ -920,8 +920,8 @@ MACHINE_CONFIG_START(sms_state::sms1_kr) config.device_remove("slot"); config.device_remove("mycard"); config.device_remove("smsexp"); - MCFG_SG1000MK3_CARTRIDGE_ADD("slot", sg1000mk3_cart, nullptr) - MCFG_SMS_CARD_ADD("mycard", sms_cart, nullptr) + SG1000MK3_CART_SLOT(config, "slot", sg1000mk3_cart, nullptr); + SMS_CARD_SLOT(config, "mycard", sms_cart, nullptr); SMS_EXPANSION_SLOT(config, "smsexp", sms_expansion_devices, nullptr); SOFTWARE_LIST(config, "cart_list2").set_original("sg1000"); @@ -957,8 +957,8 @@ MACHINE_CONFIG_START(sms_state::sg1000m3) config.device_remove("slot"); config.device_remove("mycard"); config.device_remove("smsexp"); - MCFG_SG1000MK3_CARTRIDGE_ADD("slot", sg1000mk3_cart, nullptr) - MCFG_SMS_CARD_ADD("mycard", sms_cart, nullptr) + SG1000MK3_CART_SLOT(config, "slot", sg1000mk3_cart, nullptr); + SMS_CARD_SLOT(config, "mycard", sms_cart, nullptr); SG1000_EXPANSION_SLOT(config, "sgexp", sg1000_expansion_devices, nullptr, false); SOFTWARE_LIST(config, "cart_list2").set_original("sg1000"); @@ -1005,7 +1005,7 @@ MACHINE_CONFIG_START(sms_state::gamegear) MCFG_SOUND_ROUTE(1, "rspeaker", 1.00) /* cartridge */ - MCFG_GG_CARTRIDGE_ADD("slot", gg_cart, nullptr) + GAMEGEAR_CART_SLOT(config, "slot", gg_cart, nullptr); SOFTWARE_LIST(config, "cart_list").set_original("gamegear"); -- cgit v1.2.3