mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
devices\bus: some more MCFG macros removal (nw)
This commit is contained in:
parent
5bb63697f0
commit
7918b8068c
@ -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 );
|
||||
|
@ -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
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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
|
||||
|
@ -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(); }
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
//
|
||||
|
@ -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 )
|
||||
|
@ -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
|
||||
|
@ -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 )
|
||||
|
@ -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);
|
||||
|
||||
|
||||
|
@ -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) :
|
||||
|
@ -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);
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
/*************************************************
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
/*************************************************
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
/*************************************************
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
/*************************************************
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
|
@ -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 );
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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 );
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
|
@ -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 );
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
/*************************************************
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
/*************************************************
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
|
@ -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
|
||||
|
@ -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 )
|
||||
|
@ -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; }
|
||||
|
@ -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; }
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -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");
|
||||
|
@ -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 */
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -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)
|
||||
|
@ -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));
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user