devices\bus: some more MCFG macros removal (nw)

This commit is contained in:
Ivan Vangelista 2019-02-01 18:13:14 +01:00
parent 5bb63697f0
commit 7918b8068c
63 changed files with 459 additions and 503 deletions

View File

@ -12,27 +12,6 @@
#pragma once
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_ABC_KEYBOARD_PORT_ADD(_tag, _def_slot) \
MCFG_DEVICE_ADD(_tag, ABC_KEYBOARD_PORT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(abc_keyboard_devices, _def_slot, false)
#define MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(_devcb) \
downcast<abc_keyboard_port_device &>(*device).set_out_rx_handler(DEVCB_##_devcb);
#define MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(_devcb) \
downcast<abc_keyboard_port_device &>(*device).set_out_trxc_handler(DEVCB_##_devcb);
#define MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(_devcb) \
downcast<abc_keyboard_port_device &>(*device).set_out_keydown_handler(DEVCB_##_devcb);
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -43,11 +22,21 @@ class abc_keyboard_port_device : public device_t, public device_slot_interface
{
public:
// construction/destruction
abc_keyboard_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T>
abc_keyboard_port_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: abc_keyboard_port_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
template <class Object> devcb_base &set_out_rx_handler(Object &&cb) { return m_out_rx_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_out_trxc_handler(Object &&cb) { return m_out_trxc_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_out_keydown_handler(Object &&cb) { return m_out_keydown_handler.set_callback(std::forward<Object>(cb)); }
abc_keyboard_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
auto out_rx_handler() { return m_out_rx_handler.bind(); }
auto out_trxc_handler() { return m_out_trxc_handler.bind(); }
auto out_keydown_handler() { return m_out_keydown_handler.bind(); }
// computer interface
DECLARE_WRITE_LINE_MEMBER( txd_w );

View File

@ -59,7 +59,17 @@ class apf_cart_slot_device : public device_t,
{
public:
// construction/destruction
apf_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T>
apf_cart_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: apf_cart_slot_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
apf_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
virtual ~apf_cart_slot_device();
// device-level overrides
@ -110,8 +120,4 @@ DECLARE_DEVICE_TYPE(APF_CART_SLOT, apf_cart_slot_device)
#define APFSLOT_ROM_REGION_TAG ":cart:rom"
#define MCFG_APF_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \
MCFG_DEVICE_ADD(_tag, APF_CART_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
#endif // MAME_BUS_APF_SLOT_H

View File

@ -49,17 +49,6 @@
#define BW2_EXPANSION_SLOT_TAG "exp"
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_BW2_EXPANSION_SLOT_ADD(_tag, _clock, _slot_intf, _def_slot) \
MCFG_DEVICE_ADD(_tag, BW2_EXPANSION_SLOT, _clock) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -73,6 +62,16 @@ class bw2_expansion_slot_device : public device_t,
{
public:
// construction/destruction
template <typename T>
bw2_expansion_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock, T &&opts, char const *dflt)
: bw2_expansion_slot_device(mconfig, tag, owner, clock)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
bw2_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual ~bw2_expansion_slot_device();

View File

@ -64,7 +64,17 @@ class channelf_cart_slot_device : public device_t,
{
public:
// construction/destruction
channelf_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T>
channelf_cart_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: channelf_cart_slot_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
channelf_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
virtual ~channelf_cart_slot_device();
// device-level overrides
@ -115,8 +125,4 @@ DECLARE_DEVICE_TYPE(CHANF_CART_SLOT, channelf_cart_slot_device)
#define CHANFSLOT_ROM_REGION_TAG ":cart:rom"
#define MCFG_CHANNELF_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \
MCFG_DEVICE_ADD(_tag, CHANF_CART_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
#endif // MAME_BUS_CHANF_SLOT_H

View File

@ -21,28 +21,6 @@
#define ECONET_TAG "econet"
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_ECONET_ADD() \
MCFG_DEVICE_ADD(ECONET_TAG, ECONET, 0)
#define MCFG_ECONET_SLOT_ADD(_tag, _num, _slot_intf, _def_slot) \
MCFG_DEVICE_ADD(_tag, ECONET_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \
downcast<econet_slot_device &>(*device).set_slot(_num);
#define MCFG_ECONET_CLK_CALLBACK(_write) \
downcast<econet_device &>(*device).set_clk_wr_callback(DEVCB_##_write);
#define MCFG_ECONET_DATA_CALLBACK(_write) \
downcast<econet_device &>(*device).set_data_wr_callback(DEVCB_##_write);
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -57,8 +35,6 @@ public:
// construction/destruction
econet_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <class Object> devcb_base &set_clk_wr_callback(Object &&cb) { return m_write_clk.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data_wr_callback(Object &&cb) { return m_write_data.set_callback(std::forward<Object>(cb)); }
auto clk_wr_callback() { return m_write_clk.bind(); }
auto data_wr_callback() { return m_write_data.bind(); }

View File

@ -51,7 +51,17 @@ class gamate_cart_slot_device : public device_t,
{
public:
// construction/destruction
gamate_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T>
gamate_cart_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: gamate_cart_slot_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
gamate_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
virtual ~gamate_cart_slot_device();
// image-level overrides
@ -95,10 +105,6 @@ DECLARE_DEVICE_TYPE(GAMATE_CART_SLOT, gamate_cart_slot_device)
#define GAMATESLOT_ROM_REGION_TAG ":cart:rom"
#define MCFG_GAMATE_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \
MCFG_DEVICE_ADD(_tag, GAMATE_CART_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
void gamate_cart(device_slot_interface &device);
#endif // MAME_BUS_GAMATE_SLOT_H

View File

@ -16,28 +16,6 @@
#pragma once
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_GG_EXT_PORT_ADD(_tag, _slot_intf, _def_slot) \
MCFG_DEVICE_ADD(_tag, GG_EXT_PORT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
#define MCFG_GG_EXT_PORT_MODIFY(_tag) \
MCFG_DEVICE_MODIFY(_tag)
#define MCFG_GG_EXT_PORT_TH_INPUT_HANDLER(_devcb) \
downcast<gg_ext_port_device &>(*device).set_th_input_handler(DEVCB_##_devcb);
#define MCFG_GG_EXT_PORT_PIXEL_HANDLER(_devcb) \
downcast<gg_ext_port_device &>(*device).set_pixel_handler(DEVCB_##_devcb);
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -50,13 +28,23 @@ class gg_ext_port_device : public device_t, public device_slot_interface
{
public:
// construction/destruction
gg_ext_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T>
gg_ext_port_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: gg_ext_port_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
gg_ext_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
virtual ~gg_ext_port_device();
// static configuration helpers
template <class Object> devcb_base &set_th_input_handler(Object &&cb) { return m_th_pin_handler.set_callback(std::forward<Object>(cb)); }
auto th_input_handler() { return m_th_pin_handler.bind(); }
template <class Object> devcb_base &set_pixel_handler(Object &&cb) { return m_pixel_handler.set_callback(std::forward<Object>(cb)); }
auto pixel_handler() { return m_pixel_handler.bind(); }
// Currently, only the support for SMS Controller Adaptor is emulated,
// for when SMS Compatibility mode is enabled. In that mode, the 10 pins

View File

@ -84,7 +84,17 @@ class gba_cart_slot_device : public device_t,
{
public:
// construction/destruction
gba_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T>
gba_cart_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: gba_cart_slot_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
gba_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
virtual ~gba_cart_slot_device();
// device-level overrides
@ -143,11 +153,6 @@ DECLARE_DEVICE_TYPE(GBA_CART_SLOT, gba_cart_slot_device)
#define GBASLOT_ROM_REGION_TAG ":cart:rom"
#define GBAHELP_ROM_REGION_TAG ":cart:romhlp"
#define MCFG_GBA_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \
MCFG_DEVICE_ADD(_tag, GBA_CART_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
//------------------------------------------------------------------------
//

View File

@ -94,7 +94,8 @@ void intv_ecs_device::late_subslot_setup()
//-------------------------------------------------
MACHINE_CONFIG_START(intv_ecs_device::device_add_mconfig)
void intv_ecs_device::device_add_mconfig(machine_config &config)
{
SPEAKER(config, "mono_ecs").front_center();
AY8914(config, m_snd, XTAL(3'579'545)/2);
@ -103,9 +104,9 @@ MACHINE_CONFIG_START(intv_ecs_device::device_add_mconfig)
m_snd->port_a_write_callback().set("ctrl_port", FUNC(intvecs_control_port_device::portA_w));
m_snd->add_route(ALL_OUTPUTS, "mono_ecs", 0.33);
MCFG_INTVECS_CONTROL_PORT_ADD("ctrl_port", intvecs_control_port_devices, "keybd")
MCFG_INTV_CARTRIDGE_ADD("subslot", intv_cart, nullptr)
MACHINE_CONFIG_END
INTVECS_CONTROL_PORT(config, "ctrl_port", intvecs_control_port_devices, "keybd");
INTV_CART_SLOT(config, m_subslot, intv_cart, nullptr);
}
ROM_START( ecs )

View File

@ -98,7 +98,17 @@ class intv_cart_slot_device : public device_t,
{
public:
// construction/destruction
intv_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T>
intv_cart_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: intv_cart_slot_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
intv_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
virtual ~intv_cart_slot_device();
// image-level overrides
@ -179,10 +189,6 @@ DECLARE_DEVICE_TYPE(INTV_CART_SLOT, intv_cart_slot_device)
#define INTVSLOT_ROM_REGION_TAG ":cart:rom"
#define MCFG_INTV_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \
MCFG_DEVICE_ADD(_tag, INTV_CART_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
void intv_cart(device_slot_interface &device);
#endif // MAME_BUS_INTV_SLOT_H

View File

@ -69,15 +69,16 @@ void intv_voice_device::late_subslot_setup()
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_START(intv_voice_device::device_add_mconfig)
void intv_voice_device::device_add_mconfig(machine_config &config)
{
SPEAKER(config, "mono_voice").front_center();
SP0256(config, m_speech, 3120000);
/* The Intellivoice uses a speaker with its own volume control so the relative volumes to use are subjective */
m_speech->add_route(ALL_OUTPUTS, "mono_voice", 1.00);
MCFG_INTV_CARTRIDGE_ADD("subslot", intv_cart, nullptr)
MACHINE_CONFIG_END
INTV_CART_SLOT(config, m_subslot, intv_cart, nullptr);
}
ROM_START( intellivoice )

View File

@ -41,7 +41,17 @@ class intv_control_port_device : public device_t,
{
public:
// construction/destruction
intv_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T>
intv_control_port_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: intv_control_port_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
intv_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
virtual ~intv_control_port_device();
DECLARE_READ8_MEMBER( ctrl_r ) { return read_ctrl(); }
@ -58,17 +68,6 @@ protected:
// device type definition
DECLARE_DEVICE_TYPE(INTV_CONTROL_PORT, intv_control_port_device)
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_INTV_CONTROL_PORT_ADD(_tag, _slot_intf, _def_slot) \
MCFG_DEVICE_ADD(_tag, INTV_CONTROL_PORT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
void intv_control_port_devices(device_slot_interface &device);

View File

@ -145,10 +145,11 @@ static void intvecs_controller(device_slot_interface &device)
device.option_add("handctrl", INTV_HANDCTRL);
}
MACHINE_CONFIG_START(intvecs_ctrls_device::device_add_mconfig)
MCFG_INTV_CONTROL_PORT_ADD("port1", intvecs_controller, "handctrl")
MCFG_INTV_CONTROL_PORT_ADD("port2", intvecs_controller, "handctrl")
MACHINE_CONFIG_END
void intvecs_ctrls_device::device_add_mconfig(machine_config &config)
{
INTV_CONTROL_PORT(config, m_hand1, intvecs_controller, "handctrl");
INTV_CONTROL_PORT(config, m_hand2, intvecs_controller, "handctrl");
}
intvecs_ctrls_device::intvecs_ctrls_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :

View File

@ -46,7 +46,17 @@ class intvecs_control_port_device : public device_t,
{
public:
// construction/destruction
intvecs_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T>
intvecs_control_port_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: intvecs_control_port_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
intvecs_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
virtual ~intvecs_control_port_device();
DECLARE_READ8_MEMBER( portA_r ) { return read_portA(); }
@ -68,16 +78,6 @@ protected:
DECLARE_DEVICE_TYPE(INTVECS_CONTROL_PORT, intvecs_control_port_device)
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_INTVECS_CONTROL_PORT_ADD(_tag, _slot_intf, _def_slot) \
MCFG_DEVICE_ADD(_tag, INTVECS_CONTROL_PORT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
void intvecs_control_port_devices(device_slot_interface &device);

View File

@ -87,16 +87,26 @@ class iq151cart_slot_device : public device_t,
{
public:
// construction/destruction
iq151cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T>
iq151cart_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: iq151cart_slot_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
iq151cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
virtual ~iq151cart_slot_device();
void set_screen_tag(const char *tag) { m_screen.set_tag(tag); }
template <class Object> devcb_base &set_out_irq0_callback(Object &&cb) { return m_out_irq0_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_out_irq1_callback(Object &&cb) { return m_out_irq1_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_out_irq2_callback(Object &&cb) { return m_out_irq2_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_out_irq3_callback(Object &&cb) { return m_out_irq3_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_out_irq4_callback(Object &&cb) { return m_out_irq4_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_out_drq_callback(Object &&cb) { return m_out_drq_cb.set_callback(std::forward<Object>(cb)); }
template <typename T> void set_screen_tag(T &&tag) { m_screen.set_tag(std::forward<T>(tag)); }
auto out_irq0_callback() { return m_out_irq0_cb.bind(); }
auto out_irq1_callback() { return m_out_irq1_cb.bind(); }
auto out_irq2_callback() { return m_out_irq2_cb.bind(); }
auto out_irq3_callback() { return m_out_irq3_cb.bind(); }
auto out_irq4_callback() { return m_out_irq4_cb.bind(); }
auto out_drq_callback() { return m_out_drq_cb.bind(); }
// device-level overrides
virtual void device_start() override;
@ -139,30 +149,4 @@ public:
// device type definition
DECLARE_DEVICE_TYPE(IQ151CART_SLOT, iq151cart_slot_device)
/***************************************************************************
DEVICE CONFIGURATION MACROS
***************************************************************************/
#define MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(_devcb) \
downcast<iq151cart_slot_device &>(*device).set_out_irq0_callback(DEVCB_##_devcb);
#define MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(_devcb) \
downcast<iq151cart_slot_device &>(*device).set_out_irq1_callback(DEVCB_##_devcb);
#define MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(_devcb) \
downcast<iq151cart_slot_device &>(*device).set_out_irq2_callback(DEVCB_##_devcb);
#define MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(_devcb) \
downcast<iq151cart_slot_device &>(*device).set_out_irq3_callback(DEVCB_##_devcb);
#define MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(_devcb) \
downcast<iq151cart_slot_device &>(*device).set_out_irq4_callback(DEVCB_##_devcb);
#define MCFG_IQ151CART_SLOT_OUT_DRQ_CB(_devcb) \
downcast<iq151cart_slot_device &>(*device).set_out_drq_callback(DEVCB_##_devcb);
#define MCFG_IQ151CART_SLOT_SCREEN_TAG(screen_tag) \
downcast<iq151cart_slot_device &>(*device).set_screen_tag(screen_tag);
#endif // MAME_BUS_IQ151_IQ151_H

View File

@ -66,7 +66,17 @@ class m5_cart_slot_device : public device_t,
{
public:
// construction/destruction
m5_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T>
m5_cart_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: m5_cart_slot_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
m5_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
virtual ~m5_cart_slot_device();
// device-level overrides
@ -116,9 +126,4 @@ DECLARE_DEVICE_TYPE(M5_CART_SLOT, m5_cart_slot_device)
#define M5SLOT_ROM_REGION_TAG ":cart:rom"
#define MCFG_M5_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \
MCFG_DEVICE_ADD(_tag, M5_CART_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
#endif // MAME_BUS_M5_SLOT_H

View File

@ -48,9 +48,10 @@ void neogeo_cthd2k3_cart_device::device_reset()
mapper specific handlers
-------------------------------------------------*/
MACHINE_CONFIG_START(neogeo_cthd2k3_cart_device::device_add_mconfig)
MCFG_CTHD_PROT_ADD("cthd_prot")
MACHINE_CONFIG_END
void neogeo_cthd2k3_cart_device::device_add_mconfig(machine_config &config)
{
NG_CTHD_PROT(config, m_prot);
}
/*************************************************
@ -122,8 +123,9 @@ void neogeo_matrimbl_cart_device::decrypt_all(DECRYPT_ALL_PARAMS)
}
MACHINE_CONFIG_START(neogeo_matrimbl_cart_device::device_add_mconfig)
MCFG_KOF2002_PROT_ADD("kof2k2_prot")
MCFG_CMC_PROT_ADD("cmc_prot")
MCFG_CTHD_PROT_ADD("cthd_prot")
MACHINE_CONFIG_END
void neogeo_matrimbl_cart_device::device_add_mconfig(machine_config &config)
{
NG_KOF2002_PROT(config, m_kof2k2_prot);
NG_CMC_PROT(config, m_cmc_prot);
NG_CTHD_PROT(config, m_prot);
}

View File

@ -48,9 +48,10 @@ void neogeo_kof10th_cart_device::device_reset()
mapper specific handlers
-------------------------------------------------*/
MACHINE_CONFIG_START(neogeo_kof10th_cart_device::device_add_mconfig)
MCFG_NEOBOOT_PROT_ADD("bootleg_prot")
MACHINE_CONFIG_END
void neogeo_kof10th_cart_device::device_add_mconfig(machine_config &config)
{
NEOBOOT_PROT(config, m_prot);
}
void neogeo_kof10th_cart_device::decrypt_all(DECRYPT_ALL_PARAMS)

View File

@ -12,24 +12,27 @@
#include "boot_kof2k2.h"
MACHINE_CONFIG_START(neogeo_kof2002b_cart_device::device_add_mconfig)
MCFG_NEOBOOT_PROT_ADD("bootleg_prot")
MCFG_CMC_PROT_ADD("cmc_prot")
MCFG_PCM2_PROT_ADD("pcm2_prot")
MCFG_KOF2002_PROT_ADD("kof2k2_prot")
MACHINE_CONFIG_END
void neogeo_kof2002b_cart_device::device_add_mconfig(machine_config &config)
{
NEOBOOT_PROT(config, m_prot);
NG_CMC_PROT(config, m_cmc_prot);
NG_PCM2_PROT(config, m_pcm2_prot);
NG_KOF2002_PROT(config, m_kof2k2_prot);
}
MACHINE_CONFIG_START(neogeo_kf2k2mp_cart_device::device_add_mconfig)
MCFG_NEOBOOT_PROT_ADD("bootleg_prot")
MCFG_CMC_PROT_ADD("cmc_prot")
MCFG_PCM2_PROT_ADD("pcm2_prot")
MACHINE_CONFIG_END
void neogeo_kf2k2mp_cart_device::device_add_mconfig(machine_config &config)
{
NEOBOOT_PROT(config, m_prot);
NG_CMC_PROT(config, m_cmc_prot);
NG_PCM2_PROT(config, m_pcm2_prot);
}
MACHINE_CONFIG_START(neogeo_kf2k2mp2_cart_device::device_add_mconfig)
MCFG_NEOBOOT_PROT_ADD("bootleg_prot")
MCFG_CMC_PROT_ADD("cmc_prot")
MCFG_PCM2_PROT_ADD("pcm2_prot")
MACHINE_CONFIG_END
void neogeo_kf2k2mp2_cart_device::device_add_mconfig(machine_config &config)
{
NEOBOOT_PROT(config, m_prot);
NG_CMC_PROT(config, m_cmc_prot);
NG_PCM2_PROT(config, m_pcm2_prot);
}
/*************************************************
kof2002b

View File

@ -12,26 +12,29 @@
#include "boot_kof2k3.h"
MACHINE_CONFIG_START(neogeo_kf2k3bl_cart_device::device_add_mconfig)
MCFG_NEOBOOT_PROT_ADD("bootleg_prot")
MCFG_CMC_PROT_ADD("cmc_prot")
MCFG_PCM2_PROT_ADD("pcm2_prot")
MCFG_KOF2K3BL_PROT_ADD("kof2k3bl_prot")
MACHINE_CONFIG_END
void neogeo_kf2k3bl_cart_device::device_add_mconfig(machine_config &config)
{
NEOBOOT_PROT(config, m_prot);
NG_CMC_PROT(config, m_cmc_prot);
NG_PCM2_PROT(config, m_pcm2_prot);
NG_KOF2K3BL_PROT(config, m_kof2k3bl_prot);
}
MACHINE_CONFIG_START(neogeo_kf2k3pl_cart_device::device_add_mconfig)
MCFG_NEOBOOT_PROT_ADD("bootleg_prot")
MCFG_CMC_PROT_ADD("cmc_prot")
MCFG_PCM2_PROT_ADD("pcm2_prot")
MCFG_KOF2K3BL_PROT_ADD("kof2k3bl_prot")
MACHINE_CONFIG_END
void neogeo_kf2k3pl_cart_device::device_add_mconfig(machine_config &config)
{
NEOBOOT_PROT(config, m_prot);
NG_CMC_PROT(config, m_cmc_prot);
NG_PCM2_PROT(config, m_pcm2_prot);
NG_KOF2K3BL_PROT(config, m_kof2k3bl_prot);
}
MACHINE_CONFIG_START(neogeo_kf2k3upl_cart_device::device_add_mconfig)
MCFG_NEOBOOT_PROT_ADD("bootleg_prot")
MCFG_CMC_PROT_ADD("cmc_prot")
MCFG_PCM2_PROT_ADD("pcm2_prot")
MCFG_KOF2K3BL_PROT_ADD("kof2k3bl_prot")
MACHINE_CONFIG_END
void neogeo_kf2k3upl_cart_device::device_add_mconfig(machine_config &config)
{
NEOBOOT_PROT(config, m_prot);
NG_CMC_PROT(config, m_cmc_prot);
NG_PCM2_PROT(config, m_pcm2_prot);
NG_KOF2K3BL_PROT(config, m_kof2k3bl_prot);
}
/*************************************************
kf2k3bl

View File

@ -48,9 +48,10 @@ void neogeo_bootleg_cart_device::device_reset()
mapper specific handlers
-------------------------------------------------*/
MACHINE_CONFIG_START(neogeo_bootleg_cart_device::device_add_mconfig)
MCFG_NEOBOOT_PROT_ADD("bootleg_prot")
MACHINE_CONFIG_END
void neogeo_bootleg_cart_device::device_add_mconfig(machine_config &config)
{
NEOBOOT_PROT(config, m_prot);
}
/*************************************************
@ -207,10 +208,11 @@ void neogeo_mslug3b6_cart_device::decrypt_all(DECRYPT_ALL_PARAMS)
m_cmc_prot->cmc42_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY);
}
MACHINE_CONFIG_START(neogeo_mslug3b6_cart_device::device_add_mconfig)
MCFG_CMC_PROT_ADD("cmc_prot")
MCFG_NEOBOOT_PROT_ADD("bootleg_prot")
MACHINE_CONFIG_END
void neogeo_mslug3b6_cart_device::device_add_mconfig(machine_config &config)
{
NG_CMC_PROT(config, m_cmc_prot);
NEOBOOT_PROT(config, m_prot);
}
/*************************************************
@ -234,11 +236,12 @@ void neogeo_ms5plus_cart_device::decrypt_all(DECRYPT_ALL_PARAMS)
m_prot->sx_decrypt(fix_region, fix_region_size, 1);
}
MACHINE_CONFIG_START(neogeo_ms5plus_cart_device::device_add_mconfig)
MCFG_NEOBOOT_PROT_ADD("bootleg_prot")
MCFG_CMC_PROT_ADD("cmc_prot")
MCFG_PCM2_PROT_ADD("pcm2_prot")
MACHINE_CONFIG_END
void neogeo_ms5plus_cart_device::device_add_mconfig(machine_config &config)
{
NEOBOOT_PROT(config, m_prot);
NG_CMC_PROT(config, m_cmc_prot);
NG_PCM2_PROT(config, m_pcm2_prot);
}
/*************************************************

View File

@ -30,10 +30,11 @@ void neogeo_svcboot_cart_device::decrypt_all(DECRYPT_ALL_PARAMS)
m_prot->svcboot_cx_decrypt(spr_region, spr_region_size);
}
MACHINE_CONFIG_START(neogeo_svcboot_cart_device::device_add_mconfig)
MCFG_NEOBOOT_PROT_ADD("bootleg_prot")
MCFG_PVC_PROT_ADD("pvc_prot")
MACHINE_CONFIG_END
void neogeo_svcboot_cart_device::device_add_mconfig(machine_config &config)
{
NEOBOOT_PROT(config, m_prot);
NG_PVC_PROT(config, m_pvc_prot);
}
/*************************************************
@ -96,7 +97,8 @@ void neogeo_svcsplus_cart_device::decrypt_all(DECRYPT_ALL_PARAMS)
}
MACHINE_CONFIG_START(neogeo_svcsplus_cart_device::device_add_mconfig)
MCFG_NEOBOOT_PROT_ADD("bootleg_prot")
MCFG_PVC_PROT_ADD("pvc_prot")
MACHINE_CONFIG_END
void neogeo_svcsplus_cart_device::device_add_mconfig(machine_config &config)
{
NEOBOOT_PROT(config, m_prot);
NG_PVC_PROT(config, m_pvc_prot);
}

View File

@ -44,9 +44,10 @@ void neogeo_cmc_cart_device::device_reset()
}
MACHINE_CONFIG_START(neogeo_cmc_cart_device::device_add_mconfig)
MCFG_CMC_PROT_ADD("cmc_prot")
MACHINE_CONFIG_END
void neogeo_cmc_cart_device::device_add_mconfig(machine_config &config)
{
NG_CMC_PROT(config, m_prot);
}
/*************************************************

View File

@ -43,6 +43,7 @@ void neogeo_fatfury2_cart_device::device_reset()
mapper specific handlers
-------------------------------------------------*/
MACHINE_CONFIG_START(neogeo_fatfury2_cart_device::device_add_mconfig)
MCFG_FATFURY2_PROT_ADD("fatfury2_prot")
MACHINE_CONFIG_END
void neogeo_fatfury2_cart_device::device_add_mconfig(machine_config &config)
{
NG_FATFURY2_PROT(config, m_prot);
}

View File

@ -3,7 +3,7 @@
/***********************************************************************************************************
Neo Geo cart emulation
The King of Fighers 2002 cart type (CMC + PCM2 + Additional CPU encryption)
The King of Fighters 2002 cart type (CMC + PCM2 + Additional CPU encryption)
***********************************************************************************************************/
@ -50,11 +50,12 @@ void neogeo_kof2k2type_cart_device::device_reset()
mapper specific handlers
-------------------------------------------------*/
MACHINE_CONFIG_START(neogeo_kof2k2type_cart_device::device_add_mconfig)
MCFG_CMC_PROT_ADD("cmc_prot")
MCFG_PCM2_PROT_ADD("pcm2_prot")
MCFG_KOF2002_PROT_ADD("kof2002_prot")
MACHINE_CONFIG_END
void neogeo_kof2k2type_cart_device::device_add_mconfig(machine_config &config)
{
NG_CMC_PROT(config, m_cmc_prot);
NG_PCM2_PROT(config, m_pcm2_prot);
NG_KOF2002_PROT(config, m_kof2k2_prot);
}
/*************************************************

View File

@ -43,9 +43,10 @@ void neogeo_kof98_cart_device::device_reset()
mapper specific handlers
-------------------------------------------------*/
MACHINE_CONFIG_START(neogeo_kof98_cart_device::device_add_mconfig)
MCFG_KOF98_PROT_ADD("kof98_prot")
MACHINE_CONFIG_END
void neogeo_kof98_cart_device::device_add_mconfig(machine_config &config)
{
NG_KOF98_PROT(config, m_prot);
}
void neogeo_kof98_cart_device::decrypt_all(DECRYPT_ALL_PARAMS)
{

View File

@ -43,6 +43,7 @@ void neogeo_mslugx_cart_device::device_reset()
mapper specific handlers
-------------------------------------------------*/
MACHINE_CONFIG_START(neogeo_mslugx_cart_device::device_add_mconfig)
MCFG_MSLUGX_PROT_ADD("mslugx_prot")
MACHINE_CONFIG_END
void neogeo_mslugx_cart_device::device_add_mconfig(machine_config &config)
{
NG_MSLUGX_PROT(config, m_prot);
}

View File

@ -49,10 +49,11 @@ void neogeo_pcm2_cart_device::device_reset()
mapper specific handlers
-------------------------------------------------*/
MACHINE_CONFIG_START(neogeo_pcm2_cart_device::device_add_mconfig)
MCFG_CMC_PROT_ADD("cmc_prot")
MCFG_PCM2_PROT_ADD("pcm2_prot")
MACHINE_CONFIG_END
void neogeo_pcm2_cart_device::device_add_mconfig(machine_config &config)
{
NG_CMC_PROT(config, m_cmc_prot);
NG_PCM2_PROT(config, m_pcm2_prot);
}
/*************************************************

View File

@ -9,9 +9,6 @@
DECLARE_DEVICE_TYPE(NG_CMC_PROT, cmc_prot_device)
#define MCFG_CMC_PROT_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, NG_CMC_PROT, 0)
// cmc42
#define KOF99_GFX_KEY (0x00)
#define GAROU_GFX_KEY (0x06)
@ -44,7 +41,7 @@ class cmc_prot_device : public device_t
{
public:
// construction/destruction
cmc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
cmc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
void decrypt(uint8_t *r0, uint8_t *r1,
uint8_t c0, uint8_t c1,

View File

@ -8,15 +8,11 @@
DECLARE_DEVICE_TYPE(NG_CTHD_PROT, cthd_prot_device)
#define MCFG_CTHD_PROT_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, NG_CTHD_PROT, 0)
class cthd_prot_device : public device_t
{
public:
// construction/destruction
cthd_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
cthd_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
void fix_do(uint8_t* sprrom, uint32_t sprrom_size, int start, int end, int bit3shift, int bit2shift, int bit1shift, int bit0shift);
void gfx_address_fix(uint8_t* sprrom, uint32_t sprrom_size, int start, int end);

View File

@ -8,15 +8,12 @@
DECLARE_DEVICE_TYPE(NG_FATFURY2_PROT, fatfury2_prot_device)
#define MCFG_FATFURY2_PROT_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, NG_FATFURY2_PROT, 0)
class fatfury2_prot_device : public device_t
{
public:
// construction/destruction
fatfury2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
fatfury2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
DECLARE_READ16_MEMBER( protection_r );
DECLARE_WRITE16_MEMBER( protection_w );

View File

@ -9,15 +9,12 @@
DECLARE_DEVICE_TYPE(NG_KOF2002_PROT, kof2002_prot_device)
#define MCFG_KOF2002_PROT_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, NG_KOF2002_PROT, 0)
class kof2002_prot_device : public device_t
{
public:
// construction/destruction
kof2002_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
kof2002_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
void kof2002_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
void matrim_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);

View File

@ -8,15 +8,12 @@
DECLARE_DEVICE_TYPE(NG_KOF2K3BL_PROT, kof2k3bl_prot_device)
#define MCFG_KOF2K3BL_PROT_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, NG_KOF2K3BL_PROT, 0)
class kof2k3bl_prot_device : public device_t
{
public:
// construction/destruction
kof2k3bl_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
kof2k3bl_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
DECLARE_READ16_MEMBER(protection_r);
DECLARE_WRITE16_MEMBER(kof2003_w);

View File

@ -9,15 +9,12 @@
DECLARE_DEVICE_TYPE(NG_KOF98_PROT, kof98_prot_device)
#define MCFG_KOF98_PROT_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, NG_KOF98_PROT, 0)
class kof98_prot_device : public device_t
{
public:
// construction/destruction
kof98_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
kof98_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
void decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
DECLARE_WRITE16_MEMBER(protection_w);

View File

@ -8,15 +8,12 @@
DECLARE_DEVICE_TYPE(NEOBOOT_PROT, neoboot_prot_device)
#define MCFG_NEOBOOT_PROT_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, NEOBOOT_PROT, 0)
class neoboot_prot_device : public device_t
{
public:
// construction/destruction
neoboot_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
neoboot_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
void cx_decrypt(uint8_t* sprrom, uint32_t sprrom_size);
void sx_decrypt(uint8_t* fixed, uint32_t fixed_size, int value);

View File

@ -9,15 +9,12 @@
DECLARE_DEVICE_TYPE(NG_MSLUGX_PROT, mslugx_prot_device)
#define MCFG_MSLUGX_PROT_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, NG_MSLUGX_PROT, 0)
class mslugx_prot_device : public device_t
{
public:
// construction/destruction
mslugx_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
mslugx_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
DECLARE_WRITE16_MEMBER( protection_w );
DECLARE_READ16_MEMBER( protection_r );

View File

@ -9,15 +9,12 @@
DECLARE_DEVICE_TYPE(NG_PCM2_PROT, pcm2_prot_device)
#define MCFG_PCM2_PROT_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, NG_PCM2_PROT, 0)
class pcm2_prot_device : public device_t
{
public:
// construction/destruction
pcm2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
pcm2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
void decrypt(uint8_t* ymrom, uint32_t ymsize, int value);
void swap(uint8_t* ymrom, uint32_t ymsize, int value);

View File

@ -8,15 +8,12 @@
DECLARE_DEVICE_TYPE(NG_PVC_PROT, pvc_prot_device)
#define MCFG_PVC_PROT_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, NG_PVC_PROT, 0)
class pvc_prot_device : public device_t
{
public:
// construction/destruction
pvc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
pvc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
void pvc_write_unpack_color();
void pvc_write_pack_color();

View File

@ -9,15 +9,12 @@
DECLARE_DEVICE_TYPE(NG_SMA_PROT, sma_prot_device)
#define MCFG_SMA_PROT_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, NG_SMA_PROT, 0)
class sma_prot_device : public device_t
{
public:
// construction/destruction
sma_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
sma_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
//DECLARE_WRITE16_MEMBER( kof99_bankswitch_w );
//DECLARE_WRITE16_MEMBER( garou_bankswitch_w );

View File

@ -50,11 +50,12 @@ void neogeo_pvc_cart_device::device_reset()
mapper specific handlers
-------------------------------------------------*/
MACHINE_CONFIG_START(neogeo_pvc_cart_device::device_add_mconfig)
MCFG_CMC_PROT_ADD("cmc_prot")
MCFG_PCM2_PROT_ADD("pcm2_prot")
MCFG_PVC_PROT_ADD("pvc_prot")
MACHINE_CONFIG_END
void neogeo_pvc_cart_device::device_add_mconfig(machine_config &config)
{
NG_CMC_PROT(config, m_cmc_prot);
NG_PCM2_PROT(config, m_pcm2_prot);
NG_PVC_PROT(config, m_pvc_prot);
}
/*************************************************

View File

@ -55,10 +55,11 @@ void neogeo_sma_cart_device::device_reset()
mapper specific handlers
-------------------------------------------------*/
MACHINE_CONFIG_START(neogeo_sma_cart_device::device_add_mconfig)
MCFG_SMA_PROT_ADD("sma_prot")
MCFG_CMC_PROT_ADD("cmc_prot")
MACHINE_CONFIG_END
void neogeo_sma_cart_device::device_add_mconfig(machine_config &config)
{
NG_SMA_PROT(config, m_sma_prot);
NG_CMC_PROT(config, m_cmc_prot);
}
/*************************************************

View File

@ -67,7 +67,8 @@ const tiny_rom_entry *newbrain_eim_device::device_rom_region() const
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_START(newbrain_eim_device::device_add_mconfig)
void newbrain_eim_device::device_add_mconfig(machine_config &config)
{
// devices
Z80CTC(config, m_ctc, XTAL(16'000'000)/8);
m_ctc->zc_callback<0>().set(m_acia, FUNC(acia6850_device::write_rxc));
@ -92,11 +93,11 @@ MACHINE_CONFIG_START(newbrain_eim_device::device_add_mconfig)
RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr);
MCFG_NEWBRAIN_EXPANSION_SLOT_ADD(NEWBRAIN_EXPANSION_SLOT_TAG, XTAL(16'000'000)/8, newbrain_expansion_cards, "fdc")
NEWBRAIN_EXPANSION_SLOT(config, m_exp, XTAL(16'000'000)/8, newbrain_expansion_cards, "fdc");
// internal ram
RAM(config, RAM_TAG).set_default_size("96K");
MACHINE_CONFIG_END
}
//**************************************************************************

View File

@ -49,17 +49,6 @@
#define NEWBRAIN_EXPANSION_SLOT_TAG "exp"
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_NEWBRAIN_EXPANSION_SLOT_ADD(_tag, _clock, _slot_intf, _def_slot) \
MCFG_DEVICE_ADD(_tag, NEWBRAIN_EXPANSION_SLOT, _clock) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -73,6 +62,16 @@ class newbrain_expansion_slot_device : public device_t,
{
public:
// construction/destruction
template <typename T>
newbrain_expansion_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock, T &&opts, char const *dflt)
: newbrain_expansion_slot_device(mconfig, tag, owner, clock)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
newbrain_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// computer interface

View File

@ -104,10 +104,11 @@ static void newbrain_floppies(device_slot_interface &device)
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_START(newbrain_fdc_device::device_add_mconfig)
MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(4'000'000))
MCFG_DEVICE_PROGRAM_MAP(newbrain_fdc_mem)
MCFG_DEVICE_IO_MAP(newbrain_fdc_io)
void newbrain_fdc_device::device_add_mconfig(machine_config &config)
{
Z80(config, m_maincpu, XTAL(4'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &newbrain_fdc_device::newbrain_fdc_mem);
m_maincpu->set_addrmap(AS_IO, &newbrain_fdc_device::newbrain_fdc_io);
UPD765A(config, m_fdc, 8'000'000, false, true);
m_fdc->intrq_wr_callback().set(FUNC(newbrain_fdc_device::fdc_int_w));
@ -117,8 +118,8 @@ MACHINE_CONFIG_START(newbrain_fdc_device::device_add_mconfig)
FLOPPY_CONNECTOR(config, UPD765_TAG ":2", newbrain_floppies, nullptr, floppy_image_device::default_floppy_formats);
FLOPPY_CONNECTOR(config, UPD765_TAG ":3", newbrain_floppies, nullptr, floppy_image_device::default_floppy_formats);
MCFG_NEWBRAIN_EXPANSION_SLOT_ADD(NEWBRAIN_EXPANSION_SLOT_TAG, XTAL(16'000'000)/8, newbrain_expansion_cards, nullptr)
MACHINE_CONFIG_END
NEWBRAIN_EXPANSION_SLOT(config, m_exp, XTAL(16'000'000)/8, newbrain_expansion_cards, nullptr);
}
//**************************************************************************

View File

@ -65,7 +65,17 @@ class o2_cart_slot_device : public device_t,
{
public:
// construction/destruction
o2_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T>
o2_cart_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: o2_cart_slot_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
o2_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
virtual ~o2_cart_slot_device();
// device-level overrides
@ -114,10 +124,6 @@ DECLARE_DEVICE_TYPE(O2_CART_SLOT, o2_cart_slot_device)
#define O2SLOT_ROM_REGION_TAG ":cart:rom"
#define MCFG_O2_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \
MCFG_DEVICE_ADD(_tag, O2_CART_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
void o2_cart(device_slot_interface &device);
#endif // MAME_BUS_ODYSSEY2_SLOT_H

View File

@ -43,7 +43,8 @@ void o2_voice_device::device_start()
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_START(o2_voice_device::device_add_mconfig)
void o2_voice_device::device_add_mconfig(machine_config &config)
{
SPEAKER(config, "mono").front_center();
SP0256(config, m_speech, 3120000);
@ -51,8 +52,8 @@ MACHINE_CONFIG_START(o2_voice_device::device_add_mconfig)
// The Voice uses a speaker with its own volume control so the relative volumes to use are subjective, these sound good
m_speech->add_route(ALL_OUTPUTS, "mono", 1.00);
MCFG_O2_CARTRIDGE_ADD("subslot", o2_cart, nullptr)
MACHINE_CONFIG_END
O2_CART_SLOT(config, m_subslot, o2_cart, nullptr);
}
ROM_START( o2voice )

View File

@ -60,17 +60,6 @@
#define PORTFOLIO_MEMORY_CARD_SLOT_B_TAG "ccmb"
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_PORTFOLIO_MEMORY_CARD_SLOT_ADD(_tag, _slot_intf, _def_slot) \
MCFG_DEVICE_ADD(_tag, PORTFOLIO_MEMORY_CARD_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -108,7 +97,17 @@ class portfolio_memory_card_slot_device : public device_t,
{
public:
// construction/destruction
portfolio_memory_card_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T>
portfolio_memory_card_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: portfolio_memory_card_slot_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
portfolio_memory_card_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
// computer interface
bool cdet_r() { return (m_card != nullptr) ? m_card->cdet() : 1; }

View File

@ -54,26 +54,6 @@
#define PORTFOLIO_EXPANSION_SLOT_TAG "exp"
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_PORTFOLIO_EXPANSION_SLOT_ADD(_tag, _clock, _slot_intf, _def_slot) \
MCFG_DEVICE_ADD(_tag, PORTFOLIO_EXPANSION_SLOT, _clock) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
#define MCFG_PORTFOLIO_EXPANSION_SLOT_EINT_CALLBACK(_write) \
downcast<portfolio_expansion_slot_device &>(*device).set_eint_wr_callback(DEVCB_##_write);
#define MCFG_PORTFOLIO_EXPANSION_SLOT_NMIO_CALLBACK(_write) \
downcast<portfolio_expansion_slot_device &>(*device).set_nmio_wr_callback(DEVCB_##_write);
#define MCFG_PORTFOLIO_EXPANSION_SLOT_WAKE_CALLBACK(_write) \
downcast<portfolio_expansion_slot_device &>(*device).set_wake_wr_callback(DEVCB_##_write);
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -115,11 +95,21 @@ class portfolio_expansion_slot_device : public device_t, public device_slot_inte
{
public:
// construction/destruction
template <typename T>
portfolio_expansion_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock, T &&opts, char const *dflt)
: portfolio_expansion_slot_device(mconfig, tag, owner, clock)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
portfolio_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <class Object> devcb_base &set_eint_wr_callback(Object &&cb) { return m_write_eint.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_nmio_wr_callback(Object &&cb) { return m_write_nmio.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_wake_wr_callback(Object &&cb) { return m_write_wake.set_callback(std::forward<Object>(cb)); }
auto eint_wr_callback() { return m_write_eint.bind(); }
auto nmio_wr_callback() { return m_write_nmio.bind(); }
auto wake_wr_callback() { return m_write_wake.bind(); }
// computer interface
bool nmd1_r() { return (m_card != nullptr) ? m_card->nmd1() : 1; }

View File

@ -31,14 +31,15 @@ DEFINE_DEVICE_TYPE(POFO_HPC104_2, pofo_hpc104_2_device, "pofo_hpc104_2", "Atari
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_START(pofo_hpc104_device::device_add_mconfig)
MCFG_PORTFOLIO_MEMORY_CARD_SLOT_ADD(PORTFOLIO_MEMORY_CARD_SLOT_B_TAG, portfolio_memory_cards, nullptr)
void pofo_hpc104_device::device_add_mconfig(machine_config &config)
{
PORTFOLIO_MEMORY_CARD_SLOT(config, m_ccm, portfolio_memory_cards, nullptr);
MCFG_PORTFOLIO_EXPANSION_SLOT_ADD(PORTFOLIO_EXPANSION_SLOT_TAG, XTAL(4'915'200), portfolio_expansion_cards, nullptr)
MCFG_PORTFOLIO_EXPANSION_SLOT_EINT_CALLBACK(WRITELINE(DEVICE_SELF_OWNER, portfolio_expansion_slot_device, eint_w))
MCFG_PORTFOLIO_EXPANSION_SLOT_NMIO_CALLBACK(WRITELINE(DEVICE_SELF_OWNER, portfolio_expansion_slot_device, nmio_w))
MCFG_PORTFOLIO_EXPANSION_SLOT_WAKE_CALLBACK(WRITELINE(DEVICE_SELF_OWNER, portfolio_expansion_slot_device, wake_w))
MACHINE_CONFIG_END
PORTFOLIO_EXPANSION_SLOT(config, m_exp, XTAL(4'915'200), portfolio_expansion_cards, nullptr);
m_exp->eint_wr_callback().set(DEVICE_SELF_OWNER, FUNC(portfolio_expansion_slot_device::eint_w));
m_exp->nmio_wr_callback().set(DEVICE_SELF_OWNER, FUNC(portfolio_expansion_slot_device::nmio_w));
m_exp->wake_wr_callback().set(DEVICE_SELF_OWNER, FUNC(portfolio_expansion_slot_device::wake_w));
}
//-------------------------------------------------

View File

@ -876,11 +876,12 @@ void abc1600_state::machine_reset()
// MACHINE_CONFIG( abc1600 )
//-------------------------------------------------
MACHINE_CONFIG_START(abc1600_state::abc1600)
void abc1600_state::abc1600(machine_config &config)
{
// basic machine hardware
MCFG_DEVICE_ADD(MC68008P8_TAG, M68008, 64_MHz_XTAL / 8)
MCFG_DEVICE_PROGRAM_MAP(abc1600_mem)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(abc1600_state,abc1600_int_ack)
M68008(config, m_maincpu, 64_MHz_XTAL / 8);
m_maincpu->set_addrmap(AS_PROGRAM, &abc1600_state::abc1600_mem);
m_maincpu->set_irq_acknowledge_callback(FUNC(abc1600_state::abc1600_int_ack));
// video hardware
ABC1600_MOVER(config, ABC1600_MOVER_TAG, 0);
@ -948,10 +949,10 @@ MACHINE_CONFIG_START(abc1600_state::abc1600)
rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr));
rs232b.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w));
MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, "abc99")
MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(WRITELINE(m_dart, z80dart_device, rxb_w))
MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(WRITELINE(m_dart, z80dart_device, rxtxcb_w))
MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(WRITELINE(m_dart, z80dart_device, dcdb_w))
abc_keyboard_port_device &kb(ABC_KEYBOARD_PORT(config, ABC_KEYBOARD_PORT_TAG, abc_keyboard_devices, "abc99"));
kb.out_rx_handler().set(m_dart, FUNC(z80dart_device::rxb_w));
kb.out_trxc_handler().set(m_dart, FUNC(z80dart_device::rxtxcb_w));
kb.out_keydown_handler().set(m_dart, FUNC(z80dart_device::dcdb_w));
abcbus_slot_device &bus0i(ABCBUS_SLOT(config, "bus0i", 64_MHz_XTAL / 16, abc1600bus_cards, nullptr));
bus0i.irq_callback().set(m_cio, FUNC(z8536_device::pa7_w));
@ -974,7 +975,7 @@ MACHINE_CONFIG_START(abc1600_state::abc1600)
// software list
SOFTWARE_LIST(config, "flop_list").set_original("abc1600");
MACHINE_CONFIG_END
}

View File

@ -1097,17 +1097,16 @@ MACHINE_CONFIG_START(abc800_state::common)
rs232b.dcd_handler().set(m_sio, FUNC(z80sio_device::dcda_w));
rs232b.cts_handler().set(m_sio, FUNC(z80sio_device::ctsa_w));
MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, nullptr)
MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(WRITELINE(m_dart, z80dart_device, rxb_w))
MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(WRITELINE(m_dart, z80dart_device, rxtxcb_w))
MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(WRITELINE(m_dart, z80dart_device, dcdb_w))
abc_keyboard_port_device &kb(ABC_KEYBOARD_PORT(config, ABC_KEYBOARD_PORT_TAG, abc_keyboard_devices, nullptr));
kb.out_rx_handler().set(m_dart, FUNC(z80dart_device::rxb_w));
kb.out_trxc_handler().set(m_dart, FUNC(z80dart_device::rxtxcb_w));
kb.out_keydown_handler().set(m_dart, FUNC(z80dart_device::dcdb_w));
ABCBUS_SLOT(config, ABCBUS_TAG, ABC800_X01/2/2, abcbus_cards, nullptr);
// sound hardware
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD(DISCRETE_TAG, DISCRETE, abc800_discrete)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
DISCRETE(config, m_discrete, abc800_discrete).add_route(ALL_OUTPUTS, "mono", 0.80);
// software list
SOFTWARE_LIST(config, "flop_list").set_original("abc800");

View File

@ -519,17 +519,17 @@ static void apf_cart(device_slot_interface &device)
}
MACHINE_CONFIG_START(apf_state::apfm1000)
void apf_state::apfm1000(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M6800, 3.579545_MHz_XTAL / 4) // divided by 4 in external clock circuit
MCFG_DEVICE_PROGRAM_MAP(apfm1000_map)
M6800(config, m_maincpu, 3.579545_MHz_XTAL / 4); // divided by 4 in external clock circuit
m_maincpu->set_addrmap(AS_PROGRAM, &apf_state::apfm1000_map);
/* video hardware */
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
MC6847_NTSC(config, m_crtc, 3.579545_MHz_XTAL);
m_crtc->fsync_wr_callback().set("pia0", FUNC(pia6821_device::cb1_w));
m_crtc->fsync_wr_callback().set(m_pia0, FUNC(pia6821_device::cb1_w));
m_crtc->input_callback().set(FUNC(apf_state::videoram_r));
m_crtc->set_get_fixed_mode(mc6847_ntsc_device::MODE_GM2 | mc6847_ntsc_device::MODE_GM1);
m_crtc->set_screen("screen");
@ -538,28 +538,27 @@ MACHINE_CONFIG_START(apf_state::apfm1000)
/* 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 */
PIA6821(config, m_pia0, 0);
m_pia0->readpa_handler().set(FUNC(apf_state::pia0_porta_r));
m_pia0->writepb_handler().set(FUNC(apf_state::pia0_portb_w));
m_pia0->ca2_handler().set(FUNC(apf_state::pia0_ca2_w));
m_pia0->cb2_handler().set("speaker", FUNC(speaker_sound_device::level_w));
m_pia0->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE);
m_pia0->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE);
m_pia0->cb2_handler().set(m_speaker, FUNC(speaker_sound_device::level_w));
m_pia0->irqa_handler().set_inputline(m_maincpu, M6800_IRQ_LINE);
m_pia0->irqb_handler().set_inputline(m_maincpu, M6800_IRQ_LINE);
MCFG_APF_CARTRIDGE_ADD("cartslot", apf_cart, nullptr)
APF_CART_SLOT(config, m_cart, apf_cart, nullptr);
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("apfm1000");
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(apf_state::apfimag)
void apf_state::apfimag(machine_config &config)
{
apfm1000(config);
MCFG_DEVICE_MODIFY( "maincpu" )
MCFG_DEVICE_PROGRAM_MAP( apfimag_map)
m_maincpu->set_addrmap(AS_PROGRAM, &apf_state::apfimag_map);
/* internal ram */
RAM(config, RAM_TAG).set_default_size("8K").set_extra_options("16K");
@ -581,7 +580,7 @@ MACHINE_CONFIG_START(apf_state::apfimag)
FLOPPY_CONNECTOR(config, "fdc:1", apf_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true);
SOFTWARE_LIST(config, "cass_list").set_original("apfimag_cass");
MACHINE_CONFIG_END
}
/***************************************************************************

View File

@ -598,7 +598,7 @@ MACHINE_CONFIG_START(bw2_state::bw2)
FLOPPY_CONNECTOR(config, WD2797_TAG":0", bw2_floppies, "35dd", bw2_state::floppy_formats);
FLOPPY_CONNECTOR(config, WD2797_TAG":1", bw2_floppies, nullptr, bw2_state::floppy_formats);
MCFG_BW2_EXPANSION_SLOT_ADD(BW2_EXPANSION_SLOT_TAG, 16_MHz_XTAL, bw2_expansion_cards, nullptr)
BW2_EXPANSION_SLOT(config, m_exp, 16_MHz_XTAL, bw2_expansion_cards, nullptr);
// software list
SOFTWARE_LIST(config, "flop_list").set_original("bw2");

View File

@ -197,13 +197,14 @@ static void cf_cart(device_slot_interface &device)
}
MACHINE_CONFIG_START(channelf_state::channelf_cart)
void channelf_state::channelf_cart(machine_config &config)
{
/* cartridge */
MCFG_CHANNELF_CARTRIDGE_ADD("cartslot", cf_cart, nullptr)
CHANF_CART_SLOT(config, m_cart, cf_cart, nullptr);
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("channelf");
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(channelf_state::channelf)
/* basic machine hardware */

View File

@ -176,9 +176,10 @@ TIMER_CALLBACK_MEMBER(gamate_state::gamate_timer2)
timer2->reset(m_maincpu->cycles_to_attotime(32768/2));
}
MACHINE_CONFIG_START(gamate_state::gamate)
MCFG_DEVICE_ADD("maincpu", M6502, 4433000/2) // NCR 65CX02
MCFG_DEVICE_PROGRAM_MAP(gamate_mem)
void gamate_state::gamate(machine_config &config)
{
M6502(config, m_maincpu, 4433000/2); // NCR 65CX02
m_maincpu->set_addrmap(AS_PROGRAM, &gamate_state::gamate_mem);
GAMATE_VIDEO(config, "video", 0);
@ -191,10 +192,10 @@ MACHINE_CONFIG_START(gamate_state::gamate)
m_ay->add_route(2, "lspeaker", 0.25);
m_ay->add_route(2, "rspeaker", 0.25);
MCFG_GAMATE_CARTRIDGE_ADD("cartslot", gamate_cart, nullptr)
GAMATE_CART_SLOT(config, m_cartslot, gamate_cart, nullptr);
SOFTWARE_LIST(config, "cart_list").set_original("gamate");
MACHINE_CONFIG_END
}
/* ROM notes:

View File

@ -1458,7 +1458,7 @@ MACHINE_CONFIG_START(gba_state::gbadv)
MCFG_SOUND_ROUTE(0, "ldacb", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldacb", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ROUTE(0, "rdacb", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdacb", -1.0, DAC_VREF_NEG_INPUT)
MCFG_GBA_CARTRIDGE_ADD("cartslot", gba_cart, nullptr)
GBA_CART_SLOT(config, m_cart, gba_cart, nullptr);
SOFTWARE_LIST(config, "cart_list").set_original("gba");
MACHINE_CONFIG_END

View File

@ -478,8 +478,8 @@ MACHINE_CONFIG_START(intv_state::intv)
PALETTE(config, m_palette, FUNC(intv_state::intv_palette), 0x400, 32);
MCFG_INTV_CONTROL_PORT_ADD("iopt_right_ctrl", intv_control_port_devices, "handctrl")
MCFG_INTV_CONTROL_PORT_ADD("iopt_left_ctrl", intv_control_port_devices, "handctrl")
INTV_CONTROL_PORT(config, "iopt_right_ctrl", intv_control_port_devices, "handctrl");
INTV_CONTROL_PORT(config, "iopt_left_ctrl", intv_control_port_devices, "handctrl");
/* sound hardware */
SPEAKER(config, "mono").front_center();
@ -489,7 +489,7 @@ MACHINE_CONFIG_START(intv_state::intv)
m_sound->add_route(ALL_OUTPUTS, "mono", 0.33);
/* cartridge */
MCFG_INTV_CARTRIDGE_ADD("cartslot", intv_cart, nullptr)
INTV_CART_SLOT(config, m_cart, intv_cart, nullptr);
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("intv");

View File

@ -428,46 +428,41 @@ MACHINE_CONFIG_START(iq151_state::iq151)
TIMER(config, "cassette_timer").configure_periodic(FUNC(iq151_state::cassette_timer), attotime::from_hz(2000));
/* cartridge */
MCFG_DEVICE_ADD("slot1", IQ151CART_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(iq151_cart, nullptr, false)
MCFG_IQ151CART_SLOT_SCREEN_TAG("screen")
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE(m_pic, pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE(m_pic, pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE(m_pic, pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE(m_pic, pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE(m_pic, pic8259_device, ir4_w))
MCFG_DEVICE_ADD("slot2", IQ151CART_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(iq151_cart, nullptr, false)
MCFG_IQ151CART_SLOT_SCREEN_TAG("screen")
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE(m_pic, pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE(m_pic, pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE(m_pic, pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE(m_pic, pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE(m_pic, pic8259_device, ir4_w))
MCFG_DEVICE_ADD("slot3", IQ151CART_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(iq151_cart, nullptr, false)
MCFG_IQ151CART_SLOT_SCREEN_TAG("screen")
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE(m_pic, pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE(m_pic, pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE(m_pic, pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE(m_pic, pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE(m_pic, pic8259_device, ir4_w))
MCFG_DEVICE_ADD("slot4", IQ151CART_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(iq151_cart, nullptr, false)
MCFG_IQ151CART_SLOT_SCREEN_TAG("screen")
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE(m_pic, pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE(m_pic, pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE(m_pic, pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE(m_pic, pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE(m_pic, pic8259_device, ir4_w))
MCFG_DEVICE_ADD("slot5", IQ151CART_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(iq151_cart, "video32", false)
MCFG_IQ151CART_SLOT_SCREEN_TAG("screen")
MCFG_IQ151CART_SLOT_OUT_IRQ0_CB(WRITELINE(m_pic, pic8259_device, ir0_w))
MCFG_IQ151CART_SLOT_OUT_IRQ1_CB(WRITELINE(m_pic, pic8259_device, ir1_w))
MCFG_IQ151CART_SLOT_OUT_IRQ2_CB(WRITELINE(m_pic, pic8259_device, ir2_w))
MCFG_IQ151CART_SLOT_OUT_IRQ3_CB(WRITELINE(m_pic, pic8259_device, ir3_w))
MCFG_IQ151CART_SLOT_OUT_IRQ4_CB(WRITELINE(m_pic, pic8259_device, ir4_w))
IQ151CART_SLOT(config, m_carts[0], iq151_cart, nullptr);
m_carts[0]->set_screen_tag("screen");
m_carts[0]->out_irq0_callback().set(m_pic, FUNC(pic8259_device::ir0_w));
m_carts[0]->out_irq1_callback().set(m_pic, FUNC(pic8259_device::ir1_w));
m_carts[0]->out_irq2_callback().set(m_pic, FUNC(pic8259_device::ir2_w));
m_carts[0]->out_irq3_callback().set(m_pic, FUNC(pic8259_device::ir3_w));
m_carts[0]->out_irq4_callback().set(m_pic, FUNC(pic8259_device::ir4_w));
IQ151CART_SLOT(config, m_carts[1], iq151_cart, nullptr);
m_carts[1]->set_screen_tag("screen");
m_carts[1]->out_irq0_callback().set(m_pic, FUNC(pic8259_device::ir0_w));
m_carts[1]->out_irq1_callback().set(m_pic, FUNC(pic8259_device::ir1_w));
m_carts[1]->out_irq2_callback().set(m_pic, FUNC(pic8259_device::ir2_w));
m_carts[1]->out_irq3_callback().set(m_pic, FUNC(pic8259_device::ir3_w));
m_carts[1]->out_irq4_callback().set(m_pic, FUNC(pic8259_device::ir4_w));
IQ151CART_SLOT(config, m_carts[2], iq151_cart, nullptr);
m_carts[2]->set_screen_tag("screen");
m_carts[2]->out_irq0_callback().set(m_pic, FUNC(pic8259_device::ir0_w));
m_carts[2]->out_irq1_callback().set(m_pic, FUNC(pic8259_device::ir1_w));
m_carts[2]->out_irq2_callback().set(m_pic, FUNC(pic8259_device::ir2_w));
m_carts[2]->out_irq3_callback().set(m_pic, FUNC(pic8259_device::ir3_w));
m_carts[2]->out_irq4_callback().set(m_pic, FUNC(pic8259_device::ir4_w));
IQ151CART_SLOT(config, m_carts[3], iq151_cart, nullptr);
m_carts[3]->set_screen_tag("screen");
m_carts[3]->out_irq0_callback().set(m_pic, FUNC(pic8259_device::ir0_w));
m_carts[3]->out_irq1_callback().set(m_pic, FUNC(pic8259_device::ir1_w));
m_carts[3]->out_irq2_callback().set(m_pic, FUNC(pic8259_device::ir2_w));
m_carts[3]->out_irq3_callback().set(m_pic, FUNC(pic8259_device::ir3_w));
m_carts[3]->out_irq4_callback().set(m_pic, FUNC(pic8259_device::ir4_w));
IQ151CART_SLOT(config, m_carts[4], iq151_cart, "video32");
m_carts[4]->set_screen_tag("screen");
m_carts[4]->out_irq0_callback().set(m_pic, FUNC(pic8259_device::ir0_w));
m_carts[4]->out_irq1_callback().set(m_pic, FUNC(pic8259_device::ir1_w));
m_carts[4]->out_irq2_callback().set(m_pic, FUNC(pic8259_device::ir2_w));
m_carts[4]->out_irq3_callback().set(m_pic, FUNC(pic8259_device::ir3_w));
m_carts[4]->out_irq4_callback().set(m_pic, FUNC(pic8259_device::ir4_w));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("iq151_cart");

View File

@ -1404,21 +1404,21 @@ void brno_state::machine_reset()
// MACHINE_CONFIG( m5 )
//-------------------------------------------------
MACHINE_CONFIG_START(m5_state::m5)
void m5_state::m5(machine_config &config)
{
// basic machine hardware
Z80(config, m_maincpu, 14.318181_MHz_XTAL / 4);
m_maincpu->set_addrmap(AS_PROGRAM, &m5_state::m5_mem);
m_maincpu->set_addrmap(AS_IO, &m5_state::m5_io);
m_maincpu->set_daisy_config(m5_daisy_chain);
MCFG_DEVICE_ADD(m_fd5cpu, Z80, 14.318181_MHz_XTAL / 4)
MCFG_DEVICE_PROGRAM_MAP(fd5_mem)
MCFG_DEVICE_IO_MAP(fd5_io)
Z80(config, m_fd5cpu, 14.318181_MHz_XTAL / 4);
m_fd5cpu->set_addrmap(AS_PROGRAM, &m5_state::fd5_mem);
m_fd5cpu->set_addrmap(AS_IO, &m5_state::fd5_io);
// sound hardware
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD(SN76489AN_TAG, SN76489A, 14.318181_MHz_XTAL / 4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
SN76489A(config, SN76489AN_TAG, 14.318181_MHz_XTAL / 4).add_route(ALL_OUTPUTS, "mono", 1.00);
// devices
Z80CTC(config, m_ctc, 14.318181_MHz_XTAL / 4);
@ -1449,8 +1449,8 @@ MACHINE_CONFIG_START(m5_state::m5)
FLOPPY_CONNECTOR(config, UPD765_TAG ":0", m5_floppies, "525dd", m5_state::floppy_formats);
// cartridge
MCFG_M5_CARTRIDGE_ADD("cartslot1", m5_cart, nullptr)
MCFG_M5_CARTRIDGE_ADD("cartslot2", m5_cart, nullptr)
M5_CART_SLOT(config, m_cart1, m5_cart, nullptr);
M5_CART_SLOT(config, m_cart2, m5_cart, nullptr);
// software lists
SOFTWARE_LIST(config, "cart_list").set_original("m5_cart");
@ -1460,7 +1460,7 @@ MACHINE_CONFIG_START(m5_state::m5)
// internal ram
//68K is not possible, 'cos internal ram always overlays any expansion memory in that area
RAM(config, RAM_TAG).set_default_size("4K").set_extra_options("36K,64K");
MACHINE_CONFIG_END
}
//-------------------------------------------------

View File

@ -809,7 +809,8 @@ void newbrain_state::device_timer(emu_timer &timer, device_timer_id id, int para
// MACHINE_CONFIG( newbrain )
//-------------------------------------------------
MACHINE_CONFIG_START(newbrain_state::newbrain)
void newbrain_state::newbrain(machine_config &config)
{
// basic system hardware
Z80(config, m_maincpu, XTAL(16'000'000)/4);
m_maincpu->set_addrmap(AS_PROGRAM, &newbrain_state::newbrain_mreq);
@ -829,7 +830,7 @@ MACHINE_CONFIG_START(newbrain_state::newbrain)
newbrain_video(config);
// devices
MCFG_NEWBRAIN_EXPANSION_SLOT_ADD(NEWBRAIN_EXPANSION_SLOT_TAG, XTAL(16'000'000)/4, newbrain_expansion_cards, "eim")
NEWBRAIN_EXPANSION_SLOT(config, m_exp, XTAL(16'000'000)/4, newbrain_expansion_cards, "eim");
CASSETTE(config, m_cassette1);
m_cassette1->set_default_state((cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED));
@ -842,7 +843,7 @@ MACHINE_CONFIG_START(newbrain_state::newbrain)
// internal ram
RAM(config, RAM_TAG).set_default_size("32K");
MACHINE_CONFIG_END
}
//-------------------------------------------------

View File

@ -673,11 +673,12 @@ GFXDECODE_END
MACHINE_CONFIG_START(odyssey2_state::odyssey2_cartslot)
MCFG_O2_CARTRIDGE_ADD("cartslot", o2_cart, nullptr)
void odyssey2_state::odyssey2_cartslot(machine_config &config)
{
O2_CART_SLOT(config, m_cart, o2_cart, nullptr);
SOFTWARE_LIST(config, "cart_list").set_original("odyssey2");
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(odyssey2_state::odyssey2)

View File

@ -1044,12 +1044,12 @@ MACHINE_CONFIG_START(portfolio_state::portfolio)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
// devices
MCFG_PORTFOLIO_MEMORY_CARD_SLOT_ADD(PORTFOLIO_MEMORY_CARD_SLOT_A_TAG, portfolio_memory_cards, nullptr)
PORTFOLIO_MEMORY_CARD_SLOT(config, m_ccm, portfolio_memory_cards, nullptr);
MCFG_PORTFOLIO_EXPANSION_SLOT_ADD(PORTFOLIO_EXPANSION_SLOT_TAG, XTAL(4'915'200), portfolio_expansion_cards, nullptr)
MCFG_PORTFOLIO_EXPANSION_SLOT_EINT_CALLBACK(WRITELINE(*this, portfolio_state, eint_w))
MCFG_PORTFOLIO_EXPANSION_SLOT_NMIO_CALLBACK(INPUTLINE(M80C88A_TAG, INPUT_LINE_NMI))
MCFG_PORTFOLIO_EXPANSION_SLOT_WAKE_CALLBACK(WRITELINE(*this, portfolio_state, wake_w))
PORTFOLIO_EXPANSION_SLOT(config, m_exp, XTAL(4'915'200), portfolio_expansion_cards, nullptr);
m_exp->eint_wr_callback().set(FUNC(portfolio_state::eint_w));
m_exp->nmio_wr_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
m_exp->wake_wr_callback().set(FUNC(portfolio_state::wake_w));
TIMER(config, "counter").configure_periodic(FUNC(portfolio_state::counter_tick), attotime::from_hz(XTAL(32'768)/16384));
TIMER(config, TIMER_TICK_TAG).configure_periodic(FUNC(portfolio_state::system_tick), attotime::from_hz(XTAL(32'768)/32768));

View File

@ -1009,10 +1009,10 @@ MACHINE_CONFIG_START(sms_state::gamegear)
SOFTWARE_LIST(config, "cart_list").set_original("gamegear");
MCFG_GG_EXT_PORT_ADD("ext", gg_ext_port_devices, nullptr)
MCFG_GG_EXT_PORT_TH_INPUT_HANDLER(WRITELINE(*this, sms_state, gg_ext_th_input))
GG_EXT_PORT(config, m_port_gg_ext, gg_ext_port_devices, nullptr);
m_port_gg_ext->th_input_handler().set(FUNC(sms_state::gg_ext_th_input));
// only for GG-TV mod (may be simulated with a driver modified with SMS screen settings)
//MCFG_GG_EXT_PORT_PIXEL_HANDLER(READ32(*this, sms_state, sms_pixel_color))
//m_port_gg_ext->pixel_handler().set(FUNC(sms_state::sms_pixel_color));
m_is_gamegear = true;
m_has_bios_0400 = true;