Set finder tag relative to current device being configured rather than

the finder's owner.  This meand you no longer need to care about the
your relationship to the object being configured and a lot of ^ and :
can disappear.  There's a bit reduction in string pasting in macros from
this.

Yes, I have to make this apply to devcb etc. as well, but that's a job
for another day.

There's probably at least one thing broken by this where optional
objects are involved.  Most things can be solved by just getting rid of
the now-problematic ^ and : prefixes.
This commit is contained in:
Vas Crabb 2018-04-30 23:32:41 +10:00
parent 89b356a0f5
commit b60c852f11
171 changed files with 332 additions and 322 deletions

View File

@ -151,7 +151,7 @@ MACHINE_CONFIG_START(a2bus_pcxporter_device::device_add_mconfig)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("v30", 0))
MCFG_DEVICE_ADD("isa", ISA8, 0)
MCFG_ISA8_CPU("^v30")
MCFG_ISA8_CPU("v30")
MCFG_ISA_OUT_IRQ2_CB(DEVWRITELINE("pic8259", pic8259_device, ir2_w))
MCFG_ISA_OUT_IRQ3_CB(DEVWRITELINE("pic8259", pic8259_device, ir3_w))
MCFG_ISA_OUT_IRQ4_CB(DEVWRITELINE("pic8259", pic8259_device, ir4_w))

View File

@ -21,7 +21,7 @@
//**************************************************************************
#define MCFG_BML3BUS_CPU(_cputag) \
downcast<bml3bus_device &>(*device).set_cputag("^" _cputag);
downcast<bml3bus_device &>(*device).set_cputag(_cputag);
#define MCFG_BML3BUS_OUT_NMI_CB(_devcb) \
devcb = &downcast<bml3bus_device &>(*device).set_out_nmi_callback(DEVCB_##_devcb);

View File

@ -739,7 +739,7 @@ MACHINE_CONFIG_START(mini_chief_device::device_add_mconfig)
MCFG_FLOPPY_DRIVE_ADD_FIXED(C64H156_TAG":0", c1571_floppies, "525qd", c1571_device::floppy_formats)
MCFG_DEVICE_ADD(ISA_BUS_TAG, ISA8, 0)
MCFG_ISA8_CPU("^" M6502_TAG)
MCFG_ISA8_CPU(M6502_TAG)
MCFG_ISA8_SLOT_ADD(ISA_BUS_TAG, "isa1", mini_chief_isa8_cards, "wd1002a_wx1", false)
MACHINE_CONFIG_END

View File

@ -275,9 +275,9 @@ fd2000_device::fd2000_device(const machine_config &mconfig, device_type type, co
fd4000_device::fd4000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: fd2000_device(mconfig, FD4000, tag, owner, clock)
{
m_maincpu.set_tag(R65C02P4_TAG);
m_fdc.set_tag(PC8477AV1_TAG);
m_floppy0.set_tag(PC8477AV1_TAG":0");
m_maincpu.set_tag(*this, R65C02P4_TAG);
m_fdc.set_tag(*this, PC8477AV1_TAG);
m_floppy0.set_tag(*this, PC8477AV1_TAG":0");
}

View File

@ -68,7 +68,7 @@
MCFG_DEVICE_SLOT_INTERFACE(ep64_expansion_bus_cards, _def_slot, false)
#define MCFG_EP64_EXPANSION_BUS_SLOT_DAVE(_tag) \
downcast<ep64_expansion_bus_slot_device &>(*device).set_dave_tag("^" _tag);
downcast<ep64_expansion_bus_slot_device &>(*device).set_dave_tag(_tag);
#define MCFG_EP64_EXPANSION_BUS_SLOT_IRQ_CALLBACK(_write) \
devcb = &downcast<ep64_expansion_bus_slot_device &>(*device).set_irq_wr_callback(DEVCB_##_write);

View File

@ -117,26 +117,26 @@ to implement the card in both systems.
#define MCFG_INTELLEC4_UNIV_SLOT_ADD(bus_tag, slot_tag, clock, slot_intf, def_slot) \
MCFG_DEVICE_ADD(slot_tag, INTELLEC4_UNIV_SLOT, clock) \
MCFG_DEVICE_SLOT_INTERFACE(slot_intf, def_slot, false) \
downcast<bus::intellec4::univ_slot_device &>(*device).set_bus_tag("^" bus_tag);
downcast<bus::intellec4::univ_slot_device &>(*device).set_bus_tag(bus_tag);
#define MCFG_INTELLEC4_UNIV_SLOT_REMOVE(slot_tag) \
MCFG_DEVICE_REMOVE(slot_tag)
#define MCFG_INTELLEC4_UNIV_BUS_ROM_SPACE(tag, space) \
downcast<bus::intellec4::univ_bus_device &>(*device).set_rom_space("^" tag, space);
downcast<bus::intellec4::univ_bus_device &>(*device).set_rom_space(tag, space);
#define MCFG_INTELLEC4_UNIV_BUS_ROM_PORTS_SPACE(tag, space) \
downcast<bus::intellec4::univ_bus_device &>(*device).set_rom_ports_space("^" tag, space);
downcast<bus::intellec4::univ_bus_device &>(*device).set_rom_ports_space(tag, space);
#define MCFG_INTELLEC4_UNIV_BUS_MEMORY_SPACE(tag, space) \
downcast<bus::intellec4::univ_bus_device &>(*device).set_memory_space("^" tag, space);
downcast<bus::intellec4::univ_bus_device &>(*device).set_memory_space(tag, space);
#define MCFG_INTELLEC4_UNIV_BUS_STATUS_SPACE(tag, space) \
downcast<bus::intellec4::univ_bus_device &>(*device).set_status_space("^" tag, space);
downcast<bus::intellec4::univ_bus_device &>(*device).set_status_space(tag, space);
#define MCFG_INTELLEC4_UNIV_BUS_RAM_PORTS_SPACE(tag, space) \
downcast<bus::intellec4::univ_bus_device &>(*device).set_ram_ports_space("^" tag, space);
downcast<bus::intellec4::univ_bus_device &>(*device).set_ram_ports_space(tag, space);
#define MCFG_INTELLEC4_UNIV_BUS_TEST_CB(obj) \
downcast<bus::intellec4::univ_bus_device &>(*device).set_test_out_cb(DEVCB_##obj);

View File

@ -163,6 +163,6 @@ DECLARE_DEVICE_TYPE(IQ151CART_SLOT, iq151cart_slot_device)
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));
downcast<iq151cart_slot_device &>(*device).set_screen_tag(screen_tag);
#endif // MAME_BUS_IQ151_IQ151_H

View File

@ -31,7 +31,7 @@ isa8_slot_device::isa8_slot_device(const machine_config &mconfig, const char *ta
isa8_slot_device::isa8_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, type, tag, owner, clock),
device_slot_interface(mconfig, *this),
m_owner(nullptr), m_isa_tag(nullptr)
m_isa_bus(*this, finder_base::DUMMY_TAG)
{
}
@ -41,15 +41,15 @@ isa8_slot_device::isa8_slot_device(const machine_config &mconfig, device_type ty
void isa8_slot_device::device_start()
{
device_isa8_card_interface *dev = dynamic_cast<device_isa8_card_interface *>(get_card_device());
device_isa8_card_interface *const dev = dynamic_cast<device_isa8_card_interface *>(get_card_device());
const device_isa16_card_interface *intf;
device_t *isadev = m_owner->subdevice(m_isa_tag);
if (get_card_device() && get_card_device()->interface(intf))
fatalerror("ISA16 device in ISA8 slot\n");
if (dev) dev->set_isabus(isadev);
if (dev) dev->set_isabus(m_isa_bus);
// tell isa bus that there is one slot with the specified tag
dynamic_cast<isa8_device *>(isadev)->add_slot(tag());
downcast<isa8_device &>(*m_isa_bus).add_slot(tag());
}
@ -78,11 +78,10 @@ isa16_slot_device::isa16_slot_device(const machine_config &mconfig, const char *
void isa16_slot_device::device_start()
{
device_isa8_card_interface *dev = dynamic_cast<device_isa8_card_interface *>(get_card_device());
device_t *isadev = m_owner->subdevice(m_isa_tag);
if (dev) dev->set_isabus(isadev);
device_isa8_card_interface *const dev = dynamic_cast<device_isa8_card_interface *>(get_card_device());
if (dev) dev->set_isabus(m_isa_bus);
// tell isa bus that there is one slot with the specified tag
dynamic_cast<isa8_device *>(isadev)->add_slot(tag());
dynamic_cast<isa8_device &>(*m_isa_bus).add_slot(tag());
}

View File

@ -82,7 +82,7 @@
#define MCFG_ISA8_SLOT_ADD(_isatag, _tag, _slot_intf, _def_slot, _fixed) \
MCFG_DEVICE_ADD(_tag, ISA8_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _fixed) \
downcast<isa8_slot_device &>(*device).set_isa8_slot(this, _isatag);
downcast<isa8_slot_device &>(*device).set_isa8_slot(_isatag);
#define MCFG_ISA16_CPU(_cputag) \
downcast<isa8_device &>(*device).set_cputag(_cputag);
#define MCFG_ISA16_BUS_CUSTOM_SPACES() \
@ -90,7 +90,7 @@
#define MCFG_ISA16_SLOT_ADD(_isatag, _tag, _slot_intf, _def_slot, _fixed) \
MCFG_DEVICE_ADD(_tag, ISA16_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _fixed) \
downcast<isa16_slot_device &>(*device).set_isa16_slot(this, _isatag);
downcast<isa16_slot_device &>(*device).set_isa16_slot(_isatag);
#define MCFG_ISA_BUS_IOCHCK(_iochck) \
devcb = &downcast<isa8_device *>(device)->set_iochck_callback(DEVCB_##_iochck);
@ -168,14 +168,13 @@ public:
virtual void device_start() override;
// inline configuration
void set_isa8_slot(device_t *owner, const char *isa_tag) { m_owner = owner; m_isa_tag = isa_tag; }
void set_isa8_slot(const char *isa_tag) { m_isa_bus.set_tag(isa_tag); }
protected:
isa8_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// configuration
device_t *m_owner;
const char *m_isa_tag;
required_device<device_t> m_isa_bus;
};
// device type definition
@ -348,7 +347,7 @@ public:
virtual void device_start() override;
// inline configuration
void set_isa16_slot(device_t *owner, const char *isa_tag) { m_owner = owner; m_isa_tag = isa_tag; }
void set_isa16_slot(const char *isa_tag) { m_isa_bus.set_tag(isa_tag); }
};

View File

@ -92,10 +92,9 @@ macpds_sedisplay_device::macpds_sedisplay_device(const machine_config &mconfig,
device_t(mconfig, type, tag, owner, clock),
device_video_interface(mconfig, *this),
device_macpds_card_interface(mconfig, *this),
m_vram(nullptr), m_vbl_disable(0), m_count(0), m_clutoffs(0), m_timer(nullptr),
m_assembled_tag(util::string_format("%s:%s", tag, SEDISPLAY_SCREEN_NAME))
m_vram(nullptr), m_vbl_disable(0), m_count(0), m_clutoffs(0), m_timer(nullptr)
{
set_screen(m_assembled_tag.c_str());
set_screen(*this, SEDISPLAY_SCREEN_NAME);
}
//-------------------------------------------------

View File

@ -46,7 +46,6 @@ private:
uint32_t m_vbl_disable;
uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs;
emu_timer *m_timer;
const std::string m_assembled_tag;
};

View File

@ -14,8 +14,8 @@ DECLARE_DEVICE_TYPE(MSX_SLOT_BUNSETSU, msx_slot_bunsetsu_device)
#define MCFG_MSX_SLOT_BUNSETSU_ADD(_tag, _startpage, _numpages, _region, _offset, _bunsetsu_region_tag) \
MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_BUNSETSU, _startpage, _numpages) \
downcast<msx_slot_rom_device &>(*device).set_rom_start("^" _region, _offset); \
downcast<msx_slot_bunsetsu_device &>(*device).set_bunsetsu_region_tag("^" _bunsetsu_region_tag);
downcast<msx_slot_rom_device &>(*device).set_rom_start(_region, _offset); \
downcast<msx_slot_bunsetsu_device &>(*device).set_bunsetsu_region_tag(_bunsetsu_region_tag);
class msx_slot_bunsetsu_device : public msx_slot_rom_device
{

View File

@ -29,35 +29,35 @@ DECLARE_DEVICE_TYPE(MSX_SLOT_DISK6, msx_slot_disk6_device)
#define MCFG_MSX_SLOT_DISK1_ADD(_tag, _startpage, _numpages, _region, _offset, _fdc_tag, _floppy0_tag, _floppy1_tag) \
MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_DISK1, _startpage, _numpages) \
downcast<msx_slot_rom_device &>(*device).set_rom_start("^" _region, _offset); \
downcast<msx_slot_rom_device &>(*device).set_rom_start(_region, _offset); \
downcast<msx_slot_disk_device &>(*device).set_fdc_tag(_fdc_tag); \
downcast<msx_slot_disk_device &>(*device).set_floppy0_tag(_floppy0_tag); \
downcast<msx_slot_disk_device &>(*device).set_floppy1_tag(_floppy1_tag);
#define MCFG_MSX_SLOT_DISK2_ADD(_tag, _startpage, _numpages, _region, _offset, _fdc_tag, _floppy0_tag, _floppy1_tag) \
MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_DISK2, _startpage, _numpages) \
downcast<msx_slot_rom_device &>(*device).set_rom_start("^" _region, _offset); \
downcast<msx_slot_rom_device &>(*device).set_rom_start(_region, _offset); \
downcast<msx_slot_disk_device &>(*device).set_fdc_tag(_fdc_tag); \
downcast<msx_slot_disk_device &>(*device).set_floppy0_tag(_floppy0_tag); \
downcast<msx_slot_disk_device &>(*device).set_floppy1_tag(_floppy1_tag);
#define MCFG_MSX_SLOT_DISK3_ADD(_tag, _startpage, _numpages, _region, _offset, _fdc_tag, _floppy0_tag, _floppy1_tag) \
MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_DISK3, _startpage, _numpages) \
downcast<msx_slot_rom_device &>(*device).set_rom_start("^" _region, _offset); \
downcast<msx_slot_rom_device &>(*device).set_rom_start(_region, _offset); \
downcast<msx_slot_disk_device &>(*device).set_fdc_tag(_fdc_tag); \
downcast<msx_slot_disk_device &>(*device).set_floppy0_tag(_floppy0_tag); \
downcast<msx_slot_disk_device &>(*device).set_floppy1_tag(_floppy1_tag);
#define MCFG_MSX_SLOT_DISK4_ADD(_tag, _startpage, _numpages, _region, _offset, _fdc_tag, _floppy0_tag, _floppy1_tag) \
MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_DISK4, _startpage, _numpages) \
downcast<msx_slot_rom_device &>(*device).set_rom_start("^" _region, _offset); \
downcast<msx_slot_rom_device &>(*device).set_rom_start(_region, _offset); \
downcast<msx_slot_disk_device &>(*device).set_fdc_tag(_fdc_tag); \
downcast<msx_slot_disk_device &>(*device).set_floppy0_tag(_floppy0_tag); \
downcast<msx_slot_disk_device &>(*device).set_floppy1_tag(_floppy1_tag);
#define MCFG_MSX_SLOT_DISK5_ADD(_tag, _startpage, _numpages, _region, _offset, _fdc_tag, _floppy0_tag, _floppy1_tag, _floppy2_tag, _floppy3_tag) \
MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_DISK5, _startpage, _numpages) \
downcast<msx_slot_rom_device &>(*device).set_rom_start("^" _region, _offset); \
downcast<msx_slot_rom_device &>(*device).set_rom_start(_region, _offset); \
downcast<msx_slot_disk_device &>(*device).set_fdc_tag(_fdc_tag); \
downcast<msx_slot_disk_device &>(*device).set_floppy0_tag(_floppy0_tag); \
downcast<msx_slot_disk_device &>(*device).set_floppy1_tag(_floppy1_tag); \
@ -66,7 +66,7 @@ DECLARE_DEVICE_TYPE(MSX_SLOT_DISK6, msx_slot_disk6_device)
#define MCFG_MSX_SLOT_DISK6_ADD(_tag, _startpage, _numpages, _region, _offset, _fdc_tag, _floppy0_tag, _floppy1_tag) \
MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_DISK6, _startpage, _numpages) \
downcast<msx_slot_rom_device &>(*device).set_rom_start("^" _region, _offset); \
downcast<msx_slot_rom_device &>(*device).set_rom_start(_region, _offset); \
downcast<msx_slot_disk_device &>(*device).set_fdc_tag(_fdc_tag); \
downcast<msx_slot_disk_device &>(*device).set_floppy0_tag(_floppy0_tag); \
downcast<msx_slot_disk_device &>(*device).set_floppy1_tag(_floppy1_tag);

View File

@ -14,7 +14,7 @@ DECLARE_DEVICE_TYPE(MSX_SLOT_FS4600, msx_slot_fs4600_device)
#define MCFG_MSX_SLOT_FS4600_ADD(_tag, _startpage, _numpages, _region, _offset) \
MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_FS4600, _startpage, _numpages) \
downcast<msx_slot_fs4600_device &>(*device).set_rom_start("^" _region, _offset);
downcast<msx_slot_fs4600_device &>(*device).set_rom_start(_region, _offset);
class msx_slot_fs4600_device : public device_t, public msx_internal_slot_interface
{

View File

@ -15,7 +15,7 @@ DECLARE_DEVICE_TYPE(MSX_SLOT_MUSIC, msx_slot_music_device)
#define MCFG_MSX_SLOT_MUSIC_ADD(_tag, _startpage, _numpages, _region, _offset, _ym2413_tag) \
MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_MUSIC, _startpage, _numpages) \
downcast<msx_slot_rom_device &>(*device).set_rom_start("^" _region, _offset); \
downcast<msx_slot_rom_device &>(*device).set_rom_start(_region, _offset); \
downcast<msx_slot_music_device &>(*device).set_ym2413_tag(_ym2413_tag);
class msx_slot_music_device : public msx_slot_rom_device

View File

@ -14,7 +14,7 @@ DECLARE_DEVICE_TYPE(MSX_SLOT_PANASONIC08, msx_slot_panasonic08_device)
#define MCFG_MSX_SLOT_PANASONIC08_ADD(_tag, _startpage, _numpages, _region, _offset) \
MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_PANASONIC08, _startpage, _numpages) \
downcast<msx_slot_panasonic08_device &>(*device).set_rom_start("^" _region, _offset);
downcast<msx_slot_panasonic08_device &>(*device).set_rom_start(_region, _offset);
class msx_slot_panasonic08_device : public device_t, public msx_internal_slot_interface
{

View File

@ -9,7 +9,7 @@
#define MCFG_MSX_SLOT_ROM_ADD(_tag, _startpage, _numpages, _region, _offset) \
MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_ROM, _startpage, _numpages) \
downcast<msx_slot_rom_device &>(*device).set_rom_start("^" _region, _offset);
downcast<msx_slot_rom_device &>(*device).set_rom_start(_region, _offset);
class msx_slot_rom_device : public device_t,
public msx_internal_slot_interface

View File

@ -14,10 +14,9 @@ DECLARE_DEVICE_TYPE(MSX_SLOT_SONY08, msx_slot_sony08_device)
#define MCFG_MSX_SLOT_SONY08_ADD(_tag, _startpage, _numpages, _region, _offset) \
MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_SONY08, _startpage, _numpages) \
downcast<msx_slot_sony08_device &>(*device).set_rom_start("^" _region, _offset);
downcast<msx_slot_sony08_device &>(*device).set_rom_start(_region, _offset);
class msx_slot_sony08_device : public device_t,
public msx_internal_slot_interface
class msx_slot_sony08_device : public device_t, public msx_internal_slot_interface
{
public:
msx_slot_sony08_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);

View File

@ -40,7 +40,7 @@ DEFINE_DEVICE_TYPE(NUBUS_824GC, nubus_824gc_device, "nb_824gc", "Apple 8*24 vide
//-------------------------------------------------
MACHINE_CONFIG_START(jmfb_device::device_add_mconfig)
MCFG_SCREEN_ADD( GC48_SCREEN_NAME, RASTER)
MCFG_SCREEN_ADD(GC48_SCREEN_NAME, RASTER)
MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, jmfb_device, screen_update)
MCFG_SCREEN_RAW_PARAMS(25175000, 800, 0, 640, 525, 0, 480)
// MCFG_SCREEN_SIZE(1152, 870)
@ -76,10 +76,9 @@ jmfb_device::jmfb_device(const machine_config &mconfig, device_type type, const
device_video_interface(mconfig, *this),
device_nubus_card_interface(mconfig, *this),
m_screen(nullptr), m_timer(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_stride(0), m_base(0), m_count(0), m_clutoffs(0), m_xres(0), m_yres(0),
m_is824(is824),
m_assembled_tag(util::string_format("%s:%s", tag, GC48_SCREEN_NAME))
m_is824(is824)
{
set_screen(m_assembled_tag.c_str());
set_screen(*this, GC48_SCREEN_NAME);
}
nubus_48gc_device::nubus_48gc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :

View File

@ -46,7 +46,6 @@ private:
uint32_t m_registers[0x100];
int m_xres, m_yres;
const bool m_is824;
const std::string m_assembled_tag;
};
class nubus_48gc_device : public jmfb_device

View File

@ -70,10 +70,9 @@ nubus_m2hires_device::nubus_m2hires_device(const machine_config &mconfig, device
device_t(mconfig, type, tag, owner, clock),
device_video_interface(mconfig, *this),
device_nubus_card_interface(mconfig, *this),
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr),
m_assembled_tag(util::string_format("%s:%s", tag, M2HIRES_SCREEN_NAME))
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr)
{
set_screen(m_assembled_tag.c_str());
set_screen(*this, M2HIRES_SCREEN_NAME);
}
//-------------------------------------------------

View File

@ -47,7 +47,6 @@ private:
uint32_t m_mode, m_vbl_disable, m_toggle;
uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs;
emu_timer *m_timer;
const std::string m_assembled_tag;
};
// device type definition

View File

@ -72,10 +72,9 @@ nubus_m2video_device::nubus_m2video_device(const machine_config &mconfig, device
device_t(mconfig, type, tag, owner, clock),
device_video_interface(mconfig, *this),
device_nubus_card_interface(mconfig, *this),
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr),
m_assembled_tag(util::string_format("%s:%s", tag, M2VIDEO_SCREEN_NAME))
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr)
{
set_screen(m_assembled_tag.c_str());
set_screen(*this, M2VIDEO_SCREEN_NAME);
}
//-------------------------------------------------

View File

@ -47,7 +47,6 @@ private:
uint32_t m_mode, m_vbl_disable, m_toggle;
uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs;
emu_timer *m_timer;
const std::string m_assembled_tag;
};

View File

@ -73,10 +73,9 @@ nubus_radiustpd_device::nubus_radiustpd_device(const machine_config &mconfig, de
device_t(mconfig, type, tag, owner, clock),
device_video_interface(mconfig, *this),
device_nubus_card_interface(mconfig, *this),
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr),
m_assembled_tag(util::string_format("%s:%s", tag, RADIUSTPD_SCREEN_NAME))
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr)
{
set_screen(m_assembled_tag.c_str());
set_screen(*this, RADIUSTPD_SCREEN_NAME);
}
//-------------------------------------------------

View File

@ -47,7 +47,6 @@ private:
uint32_t m_mode, m_vbl_disable, m_toggle;
uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs;
emu_timer *m_timer;
const std::string m_assembled_tag;
};

View File

@ -75,10 +75,9 @@ nubus_spec8s3_device::nubus_spec8s3_device(const machine_config &mconfig, device
device_video_interface(mconfig, *this),
device_nubus_card_interface(mconfig, *this),
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_count(0), m_clutoffs(0), m_timer(nullptr),
m_assembled_tag(util::string_format("%s:%s", tag, SPEC8S3_SCREEN_NAME)),
m_vbl_pending(false), m_parameter(0)
{
set_screen(m_assembled_tag.c_str());
set_screen(*this, SPEC8S3_SCREEN_NAME);
}
//-------------------------------------------------

View File

@ -47,7 +47,6 @@ private:
uint32_t m_mode, m_vbl_disable;
uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs;
emu_timer *m_timer;
const std::string m_assembled_tag;
//uint32_t m_7xxxxx_regs[0x100000/4];
//int m_width, m_height, m_patofsx, m_patofsy;

View File

@ -88,11 +88,10 @@ nubus_specpdq_device::nubus_specpdq_device(const machine_config &mconfig, device
device_video_interface(mconfig, *this),
device_nubus_card_interface(mconfig, *this),
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_count(0), m_clutoffs(0), m_timer(nullptr),
m_assembled_tag(util::string_format("%s:%s", tag, SPECPDQ_SCREEN_NAME)),
m_width(0), m_height(0), m_patofsx(0), m_patofsy(0), m_vram_addr(0), m_vram_src(0),
m_palette(*this, "palette")
{
set_screen(m_assembled_tag.c_str());
set_screen(*this, SPECPDQ_SCREEN_NAME);
}
//-------------------------------------------------

View File

@ -47,7 +47,6 @@ private:
uint32_t m_mode, m_vbl_disable;
uint32_t m_palette_val[256], m_colors[3], m_count, m_clutoffs;
emu_timer *m_timer;
const std::string m_assembled_tag;
uint32_t m_7xxxxx_regs[0x100000/4];
int m_width, m_height, m_patofsx, m_patofsy;

View File

@ -73,10 +73,9 @@ nubus_wsportrait_device::nubus_wsportrait_device(const machine_config &mconfig,
device_t(mconfig, type, tag, owner, clock),
device_video_interface(mconfig, *this),
device_nubus_card_interface(mconfig, *this),
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr),
m_assembled_tag(util::string_format("%s:%s", tag, WSPORTRAIT_SCREEN_NAME))
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr)
{
set_screen(m_assembled_tag.c_str());
set_screen(*this, WSPORTRAIT_SCREEN_NAME);
}
//-------------------------------------------------

View File

@ -47,7 +47,6 @@ private:
uint32_t m_mode, m_vbl_disable, m_toggle;
uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs;
emu_timer *m_timer;
const std::string m_assembled_tag;
};

View File

@ -73,10 +73,9 @@ nubus_xceed30hr_device::nubus_xceed30hr_device(const machine_config &mconfig, de
device_t(mconfig, type, tag, owner, clock),
device_video_interface(mconfig, *this),
device_nubus_card_interface(mconfig, *this),
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr),
m_assembled_tag(util::string_format("%s:%s", tag, XCEED30HR_SCREEN_NAME))
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr)
{
set_screen(m_assembled_tag.c_str());
set_screen(*this, XCEED30HR_SCREEN_NAME);
}
//-------------------------------------------------

View File

@ -47,7 +47,6 @@ private:
uint32_t m_mode, m_vbl_disable, m_toggle;
uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs;
emu_timer *m_timer;
const std::string m_assembled_tag;
};

View File

@ -67,10 +67,9 @@ nubus_cb264se30_device::nubus_cb264se30_device(const machine_config &mconfig, de
device_t(mconfig, type, tag, owner, clock),
device_video_interface(mconfig, *this),
device_nubus_card_interface(mconfig, *this),
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr),
m_assembled_tag(util::string_format("%s:%s", tag, CB264SE30_SCREEN_NAME))
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr)
{
set_screen(m_assembled_tag.c_str());
set_screen(*this, CB264SE30_SCREEN_NAME);
}
//-------------------------------------------------

View File

@ -47,7 +47,6 @@ private:
uint32_t m_mode, m_vbl_disable, m_toggle;
uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs;
emu_timer *m_timer;
const std::string m_assembled_tag;
};

View File

@ -69,10 +69,9 @@ nubus_xceedmc30_device::nubus_xceedmc30_device(const machine_config &mconfig, de
device_t(mconfig, type, tag, owner, clock),
device_video_interface(mconfig, *this),
device_nubus_card_interface(mconfig, *this),
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr),
m_assembled_tag(util::string_format("%s:%s", tag, XCEEDMC30_SCREEN_NAME))
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr)
{
set_screen(m_assembled_tag.c_str());
set_screen(*this, XCEEDMC30_SCREEN_NAME);
}
//-------------------------------------------------

View File

@ -47,7 +47,6 @@ private:
uint32_t m_mode, m_vbl_disable, m_toggle;
uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs;
emu_timer *m_timer;
const std::string m_assembled_tag;
};

View File

@ -72,10 +72,9 @@ nubus_procolor816_device::nubus_procolor816_device(const machine_config &mconfig
device_t(mconfig, type, tag, owner, clock),
device_video_interface(mconfig, *this),
device_nubus_card_interface(mconfig, *this),
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr),
m_assembled_tag(util::string_format("%s:%s", tag, PROCOLOR816_SCREEN_NAME))
m_vram32(nullptr), m_mode(0), m_vbl_disable(0), m_toggle(0), m_count(0), m_clutoffs(0), m_timer(nullptr)
{
set_screen(m_assembled_tag.c_str());
set_screen(*this, PROCOLOR816_SCREEN_NAME);
}
//-------------------------------------------------

View File

@ -47,7 +47,6 @@ private:
uint32_t m_mode, m_vbl_disable, m_toggle;
uint32_t m_palette[256], m_colors[3], m_count, m_clutoffs;
emu_timer *m_timer;
const std::string m_assembled_tag;
};

View File

@ -67,10 +67,9 @@ nubus_lview_device::nubus_lview_device(const machine_config &mconfig, device_typ
device_t(mconfig, type, tag, owner, clock),
device_video_interface(mconfig, *this),
device_nubus_card_interface(mconfig, *this),
m_vram32(nullptr), m_vbl_disable(0), m_toggle(0), m_timer(nullptr), m_protstate(0),
m_assembled_tag(util::string_format("%s:%s", tag, LVIEW_SCREEN_NAME))
m_vram32(nullptr), m_vbl_disable(0), m_toggle(0), m_timer(nullptr), m_protstate(0)
{
set_screen(m_assembled_tag.c_str());
set_screen(*this, LVIEW_SCREEN_NAME);
}
//-------------------------------------------------

View File

@ -48,7 +48,6 @@ private:
uint32_t m_palette[256];
emu_timer *m_timer;
int m_protstate;
const std::string m_assembled_tag;
};

View File

@ -93,7 +93,7 @@ sms_light_phaser_device::sms_light_phaser_device(const machine_config &mconfig,
{
// Workaround for failed validation that occurs when running on a driver
// with Sega Scope emulation, which adds 2 screens (left/right lenses).
set_screen(":screen");
set_screen(*this, ":screen");
}

View File

@ -64,7 +64,7 @@
//**************************************************************************
#define MCFG_CPU_AVR8_EEPROM(_tag) \
downcast<avr8_device &>(*device).set_eeprom_tag("^" _tag);
downcast<avr8_device &>(*device).set_eeprom_tag(_tag);
//**************************************************************************

View File

@ -35,7 +35,7 @@
downcast<esrip_device &>(*device).lbrm_prom(_tag);
#define MCFG_ESRIP_SCREEN(screen_tag) \
downcast<esrip_device &>(*device).set_screen_tag(("^" screen_tag));
downcast<esrip_device &>(*device).set_screen_tag(screen_tag);
//**************************************************************************
// TYPE DEFINITIONS

View File

@ -25,8 +25,8 @@
#define MCFG_IBM5160_MOTHERBOARD_ADD(_tag, _cputag) \
MCFG_DEVICE_ADD(_tag, IBM5160_MOTHERBOARD, 0) \
downcast<ibm5160_mb_device &>(*device).set_cputag("^" _cputag); \
(*device->subdevice<isa8_device>("isa")).set_cputag("^^" _cputag);
downcast<ibm5160_mb_device &>(*device).set_cputag(_cputag); \
(*device->subdevice<isa8_device>("isa")).set_cputag(_cputag);
// ======================> ibm5160_mb_device
class ibm5160_mb_device : public device_t
@ -130,8 +130,8 @@ DECLARE_DEVICE_TYPE(IBM5160_MOTHERBOARD, ibm5160_mb_device)
#define MCFG_IBM5150_MOTHERBOARD_ADD(_tag, _cputag) \
MCFG_DEVICE_ADD(_tag, IBM5150_MOTHERBOARD, 0) \
downcast<ibm5150_mb_device &>(*device).set_cputag("^" _cputag); \
(*device->subdevice<isa8_device>("isa")).set_cputag("^^" _cputag);
downcast<ibm5150_mb_device &>(*device).set_cputag(_cputag); \
(*device->subdevice<isa8_device>("isa")).set_cputag(_cputag);
// ======================> ibm5150_mb_device
class ibm5150_mb_device : public ibm5160_mb_device
@ -163,8 +163,8 @@ DECLARE_DEVICE_TYPE(IBM5150_MOTHERBOARD, ibm5150_mb_device)
#define MCFG_EC1841_MOTHERBOARD_ADD(_tag, _cputag) \
MCFG_DEVICE_ADD(_tag, EC1841_MOTHERBOARD, 0) \
downcast<ec1841_mb_device &>(*device).set_cputag("^" _cputag); \
(*device->subdevice<isa8_device>("isa")).set_cputag("^^" _cputag);
downcast<ec1841_mb_device &>(*device).set_cputag(_cputag); \
(*device->subdevice<isa8_device>("isa")).set_cputag(_cputag);
class ec1841_mb_device : public ibm5160_mb_device
{
@ -189,8 +189,8 @@ DECLARE_DEVICE_TYPE(EC1841_MOTHERBOARD, ec1841_mb_device)
#define MCFG_PCNOPPI_MOTHERBOARD_ADD(_tag, _cputag) \
MCFG_DEVICE_ADD(_tag, PCNOPPI_MOTHERBOARD, 0) \
downcast<pc_noppi_mb_device &>(*device).set_cputag("^" _cputag); \
(*device->subdevice<isa8_device>("isa")).set_cputag("^^" _cputag);
downcast<pc_noppi_mb_device &>(*device).set_cputag(_cputag); \
(*device->subdevice<isa8_device>("isa")).set_cputag(_cputag);
class pc_noppi_mb_device : public ibm5160_mb_device
{

View File

@ -19,7 +19,7 @@
***************************************************************************/
#define MCFG_K033906_VOODOO(_tag) \
downcast<k033906_device &>(*device).set_voodoo_tag("^" _tag);
downcast<k033906_device &>(*device).set_voodoo_tag(_tag);
/***************************************************************************
TYPE DEFINITIONS

View File

@ -29,7 +29,7 @@
downcast<k053252_device &>(*device).set_offsets(_offsx, _offsy);
#define MCFG_K053252_SET_SLAVE_SCREEN(_tag) \
downcast<k053252_device &>(*device).set_slave_screen("^" _tag);
downcast<k053252_device &>(*device).set_slave_screen(_tag);
class k053252_device : public device_t, public device_video_interface

View File

@ -19,7 +19,7 @@
***************************************************************************/
#define MCFG_K056230_CPU(_tag) \
downcast<k056230_device &>(*device).set_cpu_tag("^" _tag);
downcast<k056230_device &>(*device).set_cpu_tag(_tag);
#define MCFG_K056230_HACK(_region) \
downcast<k056230_device &>(*device).set_thunderh_hack(_region);

View File

@ -77,7 +77,7 @@ enum laserdisc_field_code
#define MCFG_LASERDISC_OVERLAY_SCALE(_scalex, _scaley) \
downcast<laserdisc_device &>(*device).set_overlay_scale(_scalex, _scaley);
#define MCFG_LASERDISC_OVERLAY_PALETTE(_palette_tag) \
downcast<laserdisc_device &>(*device).set_overlay_palette("^" _palette_tag);
downcast<laserdisc_device &>(*device).set_overlay_palette(_palette_tag);
// use these to add laserdisc screens with proper video update parameters
// TODO: actually move these SCREEN_RAW_PARAMS to a common screen info header

View File

@ -8,7 +8,7 @@
#include "bus/scsi/scsihle.h"
#define MCFG_LEGACY_SCSI_PORT(_tag) \
downcast<legacy_scsi_host_adapter &>(*device).set_scsi_port("^" _tag);
downcast<legacy_scsi_host_adapter &>(*device).set_scsi_port(_tag);
class legacy_scsi_host_adapter : public device_t
{

View File

@ -386,7 +386,7 @@ private:
DECLARE_DEVICE_TYPE(MC68328, mc68328_device)
#define MCFG_MC68328_CPU(_tag) \
downcast<mc68328_device &>(*device).set_cpu_tag("^" _tag);
downcast<mc68328_device &>(*device).set_cpu_tag(_tag);
#define MCFG_MC68328_OUT_PORT_A_CB(_devcb) \
devcb = &downcast<mc68328_device &>(*device).set_out_port_a_callback(DEVCB_##_devcb);

View File

@ -28,31 +28,31 @@
//**************************************************************************
#define MCFG_MSM6253_IN0_ANALOG_PORT(_input) \
downcast<msm6253_device &>(*device).set_input_tag(0, "^" _input);
downcast<msm6253_device &>(*device).set_input_tag<0>(_input);
#define MCFG_MSM6253_IN1_ANALOG_PORT(_input) \
downcast<msm6253_device &>(*device).set_input_tag(1, "^" _input);
downcast<msm6253_device &>(*device).set_input_tag<1>(_input);
#define MCFG_MSM6253_IN2_ANALOG_PORT(_input) \
downcast<msm6253_device &>(*device).set_input_tag(2, "^" _input);
downcast<msm6253_device &>(*device).set_input_tag<2>(_input);
#define MCFG_MSM6253_IN3_ANALOG_PORT(_input) \
downcast<msm6253_device &>(*device).set_input_tag(3, "^" _input);
downcast<msm6253_device &>(*device).set_input_tag<3>(_input);
#define MCFG_MSM6253_IN0_ANALOG_READ(_class, _method) \
downcast<msm6253_device &>(*device).set_input_cb(0, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, this));
downcast<msm6253_device &>(*device).set_input_cb<0>(msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, this));
#define MCFG_MSM6253_IN1_ANALOG_READ(_class, _method) \
downcast<msm6253_device &>(*device).set_input_cb(1, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, this));
downcast<msm6253_device &>(*device).set_input_cb<1>(msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, this));
#define MCFG_MSM6253_IN2_ANALOG_READ(_class, _method) \
downcast<msm6253_device &>(*device).set_input_cb(2, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, this));
downcast<msm6253_device &>(*device).set_input_cb<2>(msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, this));
#define MCFG_MSM6253_IN3_ANALOG_READ(_class, _method) \
downcast<msm6253_device &>(*device).set_input_cb(3, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, this));
downcast<msm6253_device &>(*device).set_input_cb<3>(msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, this));
#define MCFG_MSM6253_IN0_ANALOG_DEVREAD(_tag, _class, _method) \
downcast<msm6253_device &>(*device).set_input_cb(0, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, _tag));
downcast<msm6253_device &>(*device).set_input_cb<0>(msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, _tag));
#define MCFG_MSM6253_IN1_ANALOG_DEVREAD(_tag, _class, _method) \
downcast<msm6253_device &>(*device).set_input_cb(1, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, _tag));
downcast<msm6253_device &>(*device).set_input_cb<1>(msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, _tag));
#define MCFG_MSM6253_IN2_ANALOG_DEVREAD(_tag, _class, _method) \
downcast<msm6253_device &>(*device).set_input_cb(2, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, _tag));
downcast<msm6253_device &>(*device).set_input_cb<2>(msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, _tag));
#define MCFG_MSM6253_IN3_ANALOG_DEVREAD(_tag, _class, _method) \
downcast<msm6253_device &>(*device).set_input_cb(3, msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, _tag));
downcast<msm6253_device &>(*device).set_input_cb<3>(msm6253_device::port_read_delegate(&_class::_method, #_class "::" #_method, _tag));
//**************************************************************************
@ -70,8 +70,8 @@ public:
msm6253_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// configuration
void set_input_tag(int port, const char *tag) { m_analog_ports[port].set_tag(tag); }
template <typename Object> void set_input_cb(int port, Object &&cb) { m_analog_input_cb[port] = std::forward<Object>(cb); }
template <unsigned P> void set_input_tag(const char *tag) { m_analog_ports[P].set_tag(tag); }
template <unsigned P, typename Object> void set_input_cb(Object &&cb) { m_analog_input_cb[P] = std::forward<Object>(cb); }
// write handlers
WRITE8_MEMBER(address_w);

View File

@ -11,10 +11,11 @@
20 ... 2f, 40 ... 4f or 60 ... 6f.
**********************************************************************/
#ifndef MAME_MACHINE_RA17XX_H
#define MAME_MACHINE_RA17XX_H
#pragma once
#include "device.h"
#include "cpu/pps4/pps4.h"
@ -32,7 +33,7 @@
downcast<ra17xx_device &>(*device).set_iowr(DEVCB_##devcb);
#define MCFG_RA17XX_CPU(tag) \
downcast<ra17xx_device &>(*device).set_cpu_tag("^" tag);
downcast<ra17xx_device &>(*device).set_cpu_tag(tag);
class ra17xx_device : public device_t
{

View File

@ -21,10 +21,10 @@
#define S3C2400_TAG "s3c2400"
#define MCFG_S3C2400_PALETTE(palette_tag) \
downcast<s3c2400_device &>(*device).set_palette_tag(("^" palette_tag));
downcast<s3c2400_device &>(*device).set_palette_tag(palette_tag);
#define MCFG_S3C2400_SCREEN(screen_tag) \
downcast<s3c2400_device &>(*device).set_screen_tag(("^" screen_tag));
downcast<s3c2400_device &>(*device).set_screen_tag(screen_tag);
#define MCFG_S3C2400_CORE_PIN_R_CB(cb) \
devcb = &downcast<s3c2400_device &>(*device).set_core_pin_r_callback(DEVCB_##cb);

View File

@ -21,10 +21,10 @@
#define S3C2410_TAG "s3c2410"
#define MCFG_S3C2410_PALETTE(palette_tag) \
downcast<s3c2410_device &>(*device).set_palette_tag(("^" palette_tag));
downcast<s3c2410_device &>(*device).set_palette_tag(palette_tag);
#define MCFG_S3C2410_SCREEN(screen_tag) \
downcast<s3c2410_device &>(*device).set_screen_tag(("^" screen_tag));
downcast<s3c2410_device &>(*device).set_screen_tag(screen_tag);
#define MCFG_S3C2410_CORE_PIN_R_CB(cb) \
devcb = &downcast<s3c2410_device &>(*device).set_core_pin_r_callback(DEVCB_##cb);

View File

@ -20,10 +20,10 @@
#define S3C2440_TAG "s3c2440"
#define MCFG_S3C2440_PALETTE(_palette_tag) \
downcast<s3c2440_device &>(*device).set_palette_tag("^" _palette_tag);
downcast<s3c2440_device &>(*device).set_palette_tag(_palette_tag);
#define MCFG_S3C2440_SCREEN(screen_tag) \
downcast<s3c2440_device &>(*device).set_screen_tag(("^" screen_tag));
downcast<s3c2440_device &>(*device).set_screen_tag(screen_tag);
#define MCFG_S3C2440_CORE_PIN_R_CB(_devcb) \
devcb = &downcast<s3c2440_device &>(*device).set_core_pin_r_callback(DEVCB_##_devcb);

View File

@ -24,7 +24,7 @@
MCFG_DEVICE_ADD((tag), SMPC_HLE, (clock))
#define MCFG_SMPC_HLE_SCREEN(screen_tag) \
downcast<smpc_hle_device &>(*device).set_screen_tag(("^" screen_tag));
downcast<smpc_hle_device &>(*device).set_screen_tag(screen_tag);
#define MCFG_SMPC_HLE_CONTROL_PORTS(ctrl1_tag, ctrl2_tag) \
downcast<smpc_hle_device &>(*device).set_control_port_tags(ctrl1_tag, ctrl2_tag);

View File

@ -85,6 +85,6 @@ DECLARE_DEVICE_TYPE(TC0091LVC, tc0091lvc_device)
#define MCFG_TC0091LVC_GFXDECODE(gfxtag) \
downcast<tc0091lvc_device &>(*device).set_gfxdecode_tag(("^" gfxtag));
downcast<tc0091lvc_device &>(*device).set_gfxdecode_tag(gfxtag);
#endif // MAME_MACHINE_TL009XLVC_H

View File

@ -15,7 +15,7 @@
// FIXME: M68000 ought to be a parent class, not an external object
#define MCFG_TMP68301_CPU(_tag) \
downcast<tmp68301_device &>(*device).set_cpu_tag("^" _tag);
downcast<tmp68301_device &>(*device).set_cpu_tag(_tag);
#define MCFG_TMP68301_IN_PARALLEL_CB(cb) \
devcb = &downcast<tmp68301_device &>(*device).set_in_parallel_callback((DEVCB_##cb));

View File

@ -32,9 +32,9 @@
***************************************************************************/
#define MCFG_UPD4701_PORTX(_tag) \
downcast<upd4701_device &>(*device).set_portx_tag("^" _tag);
downcast<upd4701_device &>(*device).set_portx_tag(_tag);
#define MCFG_UPD4701_PORTY(_tag) \
downcast<upd4701_device &>(*device).set_porty_tag("^" _tag);
downcast<upd4701_device &>(*device).set_porty_tag(_tag);
#define MCFG_UPD4701_CF_CALLBACK(_devcb) \
devcb = downcast<upd4701_device &>(*device).set_cf_cb(DEVCB_##_devcb);
#define MCFG_UPD4701_SF_CALLBACK(_devcb) \

View File

@ -76,7 +76,7 @@ private:
DECLARE_DEVICE_TYPE(UPD71071, upd71071_device)
#define MCFG_UPD71071_CPU(tag) \
downcast<upd71071_device &>(*device).set_cpu_tag(("^" tag));
downcast<upd71071_device &>(*device).set_cpu_tag(tag);
#define MCFG_UPD71071_CLOCK(clk) \
downcast<upd71071_device &>(*device).set_clock((clk));

View File

@ -57,6 +57,6 @@ private:
DECLARE_DEVICE_TYPE(C6280, c6280_device)
#define MCFG_C6280_CPU(tag) \
downcast<c6280_device &>(*device).set_devicecpu_tag(("^" tag));
downcast<c6280_device &>(*device).set_devicecpu_tag(tag);
#endif // MAME_SOUND_C6280_H

View File

@ -23,7 +23,7 @@
#define MCFG_ES8712_MSM_WRITE_CALLBACK(_devcb) \
devcb = &downcast<es8712_device &>(*device).set_msm_write_callback(DEVCB_##_devcb);
#define MCFG_ES8712_MSM_TAG(_msmtag) \
downcast<es8712_device &>(*device).set_msm_tag(("^" _msmtag));
downcast<es8712_device &>(*device).set_msm_tag(_msmtag);
//**************************************************************************

View File

@ -11,7 +11,7 @@
//**************************************************************************
#define MCFG_GAELCO_SND_DATA(_tag) \
downcast<gaelco_gae1_device &>(*device).set_snd_data_tag("^" _tag);
downcast<gaelco_gae1_device &>(*device).set_snd_data_tag(_tag);
#define MCFG_GAELCO_BANKS(_offs1, _offs2, _offs3, _offs4) \
downcast<gaelco_gae1_device &>(*device).set_bank_offsets(_offs1, _offs2, _offs3, _offs4);

View File

@ -338,7 +338,7 @@ private:
DECLARE_DEVICE_TYPE(TMSPROM, tmsprom_device)
#define MCFG_TMSPROM_REGION(_region) \
downcast<tmsprom_device &>(*device).set_region("^" _region);
downcast<tmsprom_device &>(*device).set_region(_region);
#define MCFG_TMSPROM_ROM_SIZE(_size) \
downcast<tmsprom_device &>(*device).set_rom_size(_size);

View File

@ -36,7 +36,7 @@
downcast<sega315_5313_device &>(*device).set_palwrite_base(_data);
#define MCFG_SEGA315_5313_PALETTE(_palette_tag) \
downcast<sega315_5313_device &>(*device).set_palette_tag("^" _palette_tag);
downcast<sega315_5313_device &>(*device).set_palette_tag(_palette_tag);
// Temporary solution while 32x VDP mixing and scanline interrupting is moved outside MD VDP

View File

@ -15,7 +15,7 @@
#define MCFG_EF9345_PALETTE(_palette_tag) \
downcast<ef9345_device &>(*device).set_palette_tag("^" _palette_tag);
downcast<ef9345_device &>(*device).set_palette_tag(_palette_tag);
//**************************************************************************
// TYPE DEFINITIONS

View File

@ -14,7 +14,7 @@
#pragma once
#define MCFG_EF9364_PALETTE(_palette_tag) \
downcast<ef9364_device &>(*device).set_palette_tag("^" _palette_tag);
downcast<ef9364_device &>(*device).set_palette_tag(_palette_tag);
#define MCFG_EF9364_PAGES_CNT(_pages_number) \
downcast<ef9364_device &>(*device).set_nb_of_pages(_pages_number);

View File

@ -14,7 +14,7 @@
#pragma once
#define MCFG_EF936X_PALETTE(palette_tag) \
downcast<ef9365_device &>(*device).set_palette_tag(("^" palette_tag));
downcast<ef9365_device &>(*device).set_palette_tag(palette_tag);
#define MCFG_EF936X_BITPLANES_CNT(bitplanes_number) \
downcast<ef9365_device &>(*device).set_nb_bitplanes((bitplanes_number));

View File

@ -295,19 +295,19 @@ DECLARE_DEVICE_TYPE(CGB_PPU, cgb_ppu_device)
#define MCFG_DMG_PPU_ADD(_tag, _cpu_tag ) \
MCFG_DEVICE_ADD( _tag, DMG_PPU, 0 ) \
downcast<dmg_ppu_device &>(*device).set_lr35902_tag("^" _cpu_tag);
downcast<dmg_ppu_device &>(*device).set_lr35902_tag(_cpu_tag);
#define MCFG_MGB_PPU_ADD(_tag, _cpu_tag ) \
MCFG_DEVICE_ADD( _tag, MGB_PPU, 0 ) \
downcast<dmg_ppu_device &>(*device).set_lr35902_tag("^" _cpu_tag);
downcast<dmg_ppu_device &>(*device).set_lr35902_tag(_cpu_tag);
#define MCFG_SGB_PPU_ADD(_tag, _cpu_tag ) \
MCFG_DEVICE_ADD( _tag, SGB_PPU, 0 ) \
downcast<dmg_ppu_device &>(*device).set_lr35902_tag("^" _cpu_tag);
downcast<dmg_ppu_device &>(*device).set_lr35902_tag(_cpu_tag);
#define MCFG_CGB_PPU_ADD(_tag, _cpu_tag ) \
MCFG_DEVICE_ADD( _tag, CGB_PPU, 0 ) \
downcast<dmg_ppu_device &>(*device).set_lr35902_tag("^" _cpu_tag);
downcast<dmg_ppu_device &>(*device).set_lr35902_tag(_cpu_tag);
#endif // MAME_VIDEO_GB_LCD_H

View File

@ -19,7 +19,7 @@
//**************************************************************************
#define MCFG_I4100_GFXDECODE(gfxtag) \
downcast<imagetek_i4100_device &>(*device).set_gfxdecode_tag(("^" gfxtag));
downcast<imagetek_i4100_device &>(*device).set_gfxdecode_tag(gfxtag);
#define MCFG_I4100_BLITTER_END_CALLBACK(_devcb) \
devcb = &downcast<imagetek_i4100_device &>(*device).set_blitter_irq_callback(DEVCB_##_devcb);

View File

@ -90,9 +90,9 @@ DECLARE_DEVICE_TYPE(MB_VCU, mb_vcu_device)
//**************************************************************************
#define MCFG_MB_VCU_CPU(_tag) \
downcast<mb_vcu_device &>(*device).set_cpu_tag("^" _tag);
downcast<mb_vcu_device &>(*device).set_cpu_tag(_tag);
#define MCFG_MB_VCU_PALETTE(_palette_tag) \
downcast<mb_vcu_device &>(*device).set_palette_tag("^" _palette_tag);
downcast<mb_vcu_device &>(*device).set_palette_tag(_palette_tag);
#endif // MAME_VIDEO_MB_VCU_H

View File

@ -90,7 +90,7 @@
//***************************************************************************
#define MCFG_MOS6566_CPU(_tag) \
downcast<mos6566_device &>(*device).set_cpu_tag("^" _tag);
downcast<mos6566_device &>(*device).set_cpu_tag(_tag);
#define MCFG_MOS6566_IRQ_CALLBACK(_write) \
devcb = &downcast<mos6566_device &>(*device).set_irq_wr_callback(DEVCB_##_write);

View File

@ -31,14 +31,14 @@ msm6222b_device::msm6222b_device(const machine_config &mconfig, device_type type
msm6222b_device::msm6222b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
msm6222b_device(mconfig, MSM6222B, tag, owner, clock)
{
m_cgrom.set_tag(DEVICE_SELF);
m_cgrom.set_tag(*this, DEVICE_SELF);
}
msm6222b_01_device::msm6222b_01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
msm6222b_device(mconfig, MSM6222B_01, tag, owner, clock)
{
// load the fixed cgrom
m_cgrom.set_tag("cgrom");
m_cgrom.set_tag(*this, "cgrom");
}
const tiny_rom_entry *msm6222b_01_device::device_rom_region() const

View File

@ -59,7 +59,7 @@
#define MCFG_PPU2C0X_SET_SCREEN MCFG_VIDEO_SET_SCREEN
#define MCFG_PPU2C0X_CPU(_tag) \
downcast<ppu2c0x_device &>(*device).set_cpu_tag("^" _tag);
downcast<ppu2c0x_device &>(*device).set_cpu_tag(_tag);
#define MCFG_PPU2C0X_COLORBASE(_color) \
downcast<ppu2c0x_device &>(*device).set_color_base(_color);

View File

@ -20,7 +20,7 @@
#define MCFG_RAMDAC_ADD(_tag, _map, _palette_tag) \
MCFG_DEVICE_ADD(_tag, RAMDAC, 0) \
MCFG_DEVICE_ADDRESS_MAP(0, _map) \
downcast<ramdac_device &>(*device).set_palette_tag("^" _palette_tag);
downcast<ramdac_device &>(*device).set_palette_tag(_palette_tag);
#define MCFG_RAMDAC_COLOR_BASE(_color_base) \
downcast<ramdac_device &>(*device).set_color_base(_color_base);

View File

@ -20,7 +20,7 @@
downcast<tms9927_device &>(*device).set_char_width(_pixels);
#define MCFG_TMS9927_REGION(_tag) \
downcast<tms9927_device &>(*device).set_region_tag("^" _tag);
downcast<tms9927_device &>(*device).set_region_tag(_tag);
#define MCFG_TMS9927_OVERSCAN(_left, _right, _top, _bottom) \
downcast<tms9927_device &>(*device).set_overscan(_left, _right, _top, _bottom);

View File

@ -237,7 +237,7 @@ DECLARE_DEVICE_TYPE(VIC3, vic3_device)
#define MCFG_VIC3_CPU(tag) \
downcast<vic3_device &>(*device).set_cpu_tag(("^" tag));
downcast<vic3_device &>(*device).set_cpu_tag(tag);
#define MCFG_VIC3_TYPE(type) \
downcast<vic3_device &>(*device).set_vic3_type((vic3_device::vic3_type::type));

View File

@ -115,6 +115,17 @@ finder_base::~finder_base()
}
//-------------------------------------------------
// set_tag - set tag
//-------------------------------------------------
void finder_base::set_tag(char const *tag)
{
m_base = m_base.get().mconfig().current_device();
m_tag = tag;
}
//-------------------------------------------------
// find_memregion - find memory region
//-------------------------------------------------
@ -122,8 +133,8 @@ finder_base::~finder_base()
void *finder_base::find_memregion(u8 width, size_t &length, bool required) const
{
// look up the region and return nullptr if not found
memory_region *const region = m_base.memregion(m_tag);
if (region == nullptr)
memory_region *const region(m_base.get().memregion(m_tag));
if (!region)
{
length = 0;
return nullptr;
@ -162,10 +173,10 @@ bool finder_base::validate_memregion(size_t bytes, bool required) const
{
// make sure we can resolve the full path to the region
size_t bytes_found = 0;
std::string region_fulltag = m_base.subtag(m_tag);
std::string const region_fulltag(m_base.get().subtag(m_tag));
// look for the region
for (device_t const &dev : device_iterator(m_base.mconfig().root_device()))
for (device_t const &dev : device_iterator(m_base.get().mconfig().root_device()))
{
for (romload::region const &region : romload::entries(dev.rom_region()).get_regions())
{
@ -197,8 +208,8 @@ bool finder_base::validate_memregion(size_t bytes, bool required) const
void *finder_base::find_memshare(u8 width, size_t &bytes, bool required) const
{
// look up the share and return nullptr if not found
memory_share *share = m_base.memshare(m_tag);
if (share == nullptr)
memory_share *const share(m_base.get().memshare(m_tag));
if (!share)
return nullptr;
// check the width and warn if not correct
@ -233,7 +244,7 @@ bool finder_base::report_missing(bool found, const char *objname, bool required)
return true;
// otherwise, report
std::string const region_fulltag = m_base.subtag(m_tag);
std::string const region_fulltag(m_base.get().subtag(m_tag));
if (required)
osd_printf_error("Required %s '%s' not found\n", objname, region_fulltag.c_str());
else

View File

@ -17,6 +17,7 @@
#pragma once
#include <functional>
#include <iterator>
#include <stdexcept>
#include <type_traits>
@ -259,10 +260,27 @@ public:
/// Allows search tag to be changed after construction. Note that
/// this must be done before resolution time to take effect. Also
/// note that the tag is not copied.
/// \param [in] base Updated search base. The tag must be specified
/// relative to this device.
/// \param [in] tag Updated search tag. This is not copied, it is
/// the caller's responsibility to ensure this pointer remains
/// valid until resolution time.
void set_tag(char const *tag) { m_tag = tag; }
void set_tag(device_t &base, char const *tag)
{
m_base = base;
m_tag = tag;
}
/// \brief Set search tag
///
/// Allows search tag to be changed after construction. Note that
/// this must be done before resolution time to take effect. Also
/// note that the tag is not copied.
/// \param [in] tag Updated search tag relative to the current
/// device being configured. This is not copied, it is the
/// caller's responsibility to ensure this pointer remains valid
/// until resolution time.
void set_tag(char const *tag);
/// \brief Is the object to be resolved before memory maps?
///
@ -375,7 +393,7 @@ protected:
finder_base *const m_next;
/// \brief Base device to search from
device_t &m_base;
std::reference_wrapper<device_t> m_base;
/// \brief Object tag to search for
char const *m_tag;
@ -494,7 +512,7 @@ private:
/// is found, false otherwise.
virtual bool findit(bool isvalidation) override
{
device_t *const device = this->m_base.subdevice(this->m_tag);
device_t *const device = this->m_base.get().subdevice(this->m_tag);
this->m_target = dynamic_cast<DeviceClass *>(device);
if (device && !this->m_target)
this->printf_warning("Device '%s' found but is of incorrect type (actual type is %s)\n", this->m_tag, device->name());
@ -560,7 +578,7 @@ private:
virtual bool findit(bool isvalidation) override
{
if (isvalidation) return this->validate_memregion(0, Required);
this->m_target = this->m_base.memregion(this->m_tag);
this->m_target = this->m_base.get().memregion(this->m_tag);
return this->report_missing("memory region");
}
};
@ -620,7 +638,7 @@ public:
virtual bool findit(bool isvalidation) override
{
if (isvalidation) return true;
this->m_target = this->m_base.membank(this->m_tag);
this->m_target = this->m_base.get().membank(this->m_tag);
return this->report_missing("memory bank");
}
};
@ -691,7 +709,7 @@ private:
virtual bool findit(bool isvalidation) override
{
if (isvalidation) return true;
this->m_target = this->m_base.ioport(this->m_tag);
this->m_target = this->m_base.get().ioport(this->m_tag);
return this->report_missing("I/O port");
}
};
@ -863,7 +881,7 @@ public:
m_allocated.resize(entries);
this->m_target = &m_allocated[0];
m_bytes = entries * sizeof(PointerType);
this->m_base.save_item(m_allocated, this->m_tag);
this->m_base.get().save_item(m_allocated, this->m_tag);
}
private:

View File

@ -25,10 +25,11 @@ const char device_video_interface::s_unconfigured_screen_tag[] = "!!UNCONFIGURED
//-------------------------------------------------
device_video_interface::device_video_interface(const machine_config &mconfig, device_t &device, bool screen_required)
: device_interface(device, "video"),
m_screen_required(screen_required),
m_screen_tag(s_unconfigured_screen_tag),
m_screen(nullptr)
: device_interface(device, "video")
, m_screen_required(screen_required)
, m_screen_base(&device)
, m_screen_tag(s_unconfigured_screen_tag)
, m_screen(nullptr)
{
}
@ -42,6 +43,13 @@ device_video_interface::~device_video_interface()
}
void device_video_interface::set_screen(const char *tag)
{
m_screen_base = &device().mconfig().current_device();
m_screen_tag = tag;
}
//-------------------------------------------------
// interface_validity_check - validation for a
// device after the configuration has been
@ -52,19 +60,18 @@ void device_video_interface::interface_validity_check(validity_checker &valid) c
{
// only look up screens if we haven't explicitly requested no screen
screen_device *screen = nullptr;
if (m_screen_tag != nullptr)
if (m_screen_tag)
{
// find the screen device if explicitly configured
if (strcmp(m_screen_tag, s_unconfigured_screen_tag) != 0)
{
screen = device().siblingdevice<screen_device>(m_screen_tag);
if (screen == nullptr)
// find the screen device if explicitly configured
screen = m_screen_base->subdevice<screen_device>(m_screen_tag);
if (!screen)
osd_printf_error("Screen '%s' not found, explicitly set for device '%s'\n", m_screen_tag, device().tag());
}
// otherwise, look for a single match
else
{
// otherwise, look for a single match
screen_device_iterator iter(device().mconfig().root_device());
screen = iter.first();
if (iter.count() > 1)
@ -73,7 +80,7 @@ void device_video_interface::interface_validity_check(validity_checker &valid) c
}
// error if no screen is found
if (screen == nullptr && m_screen_required)
if (!screen && m_screen_required)
osd_printf_error("Device '%s' requires a screen\n", device().tag());
}
@ -86,19 +93,18 @@ void device_video_interface::interface_validity_check(validity_checker &valid) c
void device_video_interface::interface_pre_start()
{
// only look up screens if we haven't explicitly requested no screen
if (m_screen_tag != nullptr)
if (m_screen_tag)
{
// find the screen device if explicitly configured
if (strcmp(m_screen_tag, s_unconfigured_screen_tag) != 0)
{
m_screen = device().siblingdevice<screen_device>(m_screen_tag);
if (m_screen == nullptr)
// find the screen device if explicitly configured
m_screen = m_screen_base->subdevice<screen_device>(m_screen_tag);
if (!m_screen)
throw emu_fatalerror("Screen '%s' not found, explicitly set for device '%s'", m_screen_tag, device().tag());
}
// otherwise, look for a single match
else
{
// otherwise, look for a single match
screen_device_iterator iter(device().machine().root_device());
m_screen = iter.first();
if (iter.count() > 1)
@ -107,21 +113,19 @@ void device_video_interface::interface_pre_start()
}
// fatal error if no screen is found
if (m_screen == nullptr && m_screen_required)
if (!m_screen)
throw emu_fatalerror("Device '%s' requires a screen", device().tag());
// if we have a screen and it's not started, wait for it
device_palette_interface *palintf;
if (m_screen != nullptr && !m_screen->started())
if (m_screen && !m_screen->started())
{
// avoid circular dependency if we are also a palette device
if (!device().interface(palintf))
throw device_missing_dependencies();
else
{
// no other palette may be specified
if (m_screen->has_palette() && palintf != &m_screen->palette())
throw emu_fatalerror("Device '%s' cannot control screen '%s' with palette '%s'", device().tag(), m_screen_tag, m_screen->palette().device().tag());
}
// no other palette may be specified
if (m_screen->has_palette() && palintf != &m_screen->palette())
throw emu_fatalerror("Device '%s' cannot control screen '%s' with palette '%s'", device().tag(), m_screen_tag, m_screen->palette().device().tag());
}
}

View File

@ -43,7 +43,12 @@ public:
virtual ~device_video_interface();
// configuration
void set_screen(const char *tag) { m_screen_tag = tag; }
void set_screen(const char *tag);
void set_screen(device_t &base, const char *tag)
{
m_screen_base = &base;
m_screen_tag = tag;
}
// getters
screen_device &screen() const { return *m_screen; }
@ -57,6 +62,7 @@ protected:
private:
// configuration state
bool m_screen_required; // is a screen required?
device_t * m_screen_base; // base device for resolving target screen
const char * m_screen_tag; // configured tag for the target screen
// internal state

View File

@ -273,7 +273,7 @@
// other standard palettes
#define MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS(_tag, _region, _entries) \
MCFG_PALETTE_ADD(_tag, _entries) \
downcast<palette_device &>(*device).set_prom_region("^" _region); \
downcast<palette_device &>(*device).set_prom_region(_region); \
downcast<palette_device &>(*device).set_init(palette_init_delegate(FUNC(palette_device::palette_init_RRRRGGGGBBBB_proms), downcast<palette_device *>(device)));
// not implemented yet

View File

@ -82,7 +82,8 @@ public:
// getters
const game_driver &gamedrv() const { return m_gamedrv; }
device_t &root_device() const { assert(m_root_device != nullptr); return *m_root_device; }
device_t &root_device() const { assert(m_root_device); return *m_root_device; }
device_t &current_device() const { assert(m_current_device); return *m_current_device; }
emu_options &options() const { return m_options; }
inline device_t *device(const char *tag) const { return root_device().subdevice(tag); }
template <class DeviceClass> inline DeviceClass *device(const char *tag) const { return downcast<DeviceClass *>(device(tag)); }

View File

@ -370,7 +370,7 @@ enum tilemap_standard_mapper
#define MCFG_TILEMAP_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, TILEMAP, 0)
#define MCFG_TILEMAP_GFXDECODE(_gfxtag) \
downcast<tilemap_device &>(*device).set_gfxdecode_tag("^" _gfxtag);
downcast<tilemap_device &>(*device).set_gfxdecode_tag(_gfxtag);
#define MCFG_TILEMAP_BYTES_PER_ENTRY(_bpe) \
downcast<tilemap_device &>(*device).set_bytes_per_entry(_bpe);
#define MCFG_TILEMAP_INFO_CB_DRIVER(_class, _method) \

View File

@ -10,7 +10,7 @@
MCFG_DEVICE_ADD(_tag, NAMCO_52XX, _clock)
#define MCFG_NAMCO_52XX_DISCRETE(_tag) \
downcast<namco_52xx_device &>(*device).set_discrete("^" _tag);
downcast<namco_52xx_device &>(*device).set_discrete(_tag);
#define MCFG_NAMCO_52XX_BASENODE(_node) \
downcast<namco_52xx_device &>(*device).set_basenote(_node);

View File

@ -11,7 +11,7 @@
MCFG_DEVICE_ADD(_tag, NAMCO_54XX, _clock)
#define MCFG_NAMCO_54XX_DISCRETE(_tag) \
downcast<namco_54xx_device &>(*device).set_discrete("^" _tag);
downcast<namco_54xx_device &>(*device).set_discrete(_tag);
#define MCFG_NAMCO_54XX_BASENODE(_node) \
downcast<namco_54xx_device &>(*device).set_basenote(_node);

View File

@ -182,10 +182,10 @@ DECLARE_DEVICE_TYPE(SEIBU_ADPCM, seibu_adpcm_device)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
#define MCFG_SEIBU_SOUND_CPU(_audiocputag) \
downcast<seibu_sound_device &>(*device).set_cpu_tag("^" _audiocputag);
downcast<seibu_sound_device &>(*device).set_cpu_tag(_audiocputag);
#define MCFG_SEIBU_SOUND_ROMBANK(_banktag) \
downcast<seibu_sound_device &>(*device).set_rombank_tag("^" _banktag);
downcast<seibu_sound_device &>(*device).set_rombank_tag(_banktag);
#define MCFG_SEIBU_SOUND_YM_READ_CB(_devcb) \
devcb = &downcast<seibu_sound_device &>(*device).set_ym_read_callback(DEVCB_##_devcb);

View File

@ -9,10 +9,10 @@
//**************************************************************************
#define MCFG_TC0140SYT_MASTER_CPU(_tag) \
downcast<tc0140syt_device &>(*device).set_master_tag("^" _tag);
downcast<tc0140syt_device &>(*device).set_master_tag(_tag);
#define MCFG_TC0140SYT_SLAVE_CPU(_tag) \
downcast<tc0140syt_device &>(*device).set_slave_tag("^" _tag);
downcast<tc0140syt_device &>(*device).set_slave_tag(_tag);
#define MCFG_PC060HA_MASTER_CPU(_tag) MCFG_TC0140SYT_MASTER_CPU(_tag)
#define MCFG_PC060HA_SLAVE_CPU(_tag) MCFG_TC0140SYT_SLAVE_CPU(_tag)

View File

@ -513,7 +513,7 @@ MACHINE_CONFIG_START(_4enlinea_state::_4enlinea)
MCFG_CPU_PERIODIC_INT_DRIVER(_4enlinea_state, _4enlinea_audio_irq, 60) //TODO
MCFG_DEVICE_ADD("isa", ISA8, 0)
MCFG_ISA8_CPU(":maincpu")
MCFG_ISA8_CPU("maincpu")
MCFG_ISA8_SLOT_ADD("isa", "isa1", 4enlinea_isa8_cards, "4enlinea", true)

View File

@ -105,7 +105,7 @@ MACHINE_CONFIG_START(asst128_state::asst128)
MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
MCFG_DEVICE_ADD("mb", ASST128_MOTHERBOARD, 0)
downcast<asst128_mb_device &>(*device).set_cputag("^maincpu");
downcast<asst128_mb_device &>(*device).set_cputag("maincpu");
MCFG_DEVICE_INPUT_DEFAULTS(asst128)
MCFG_DEVICE_MODIFY("mb:cassette")

View File

@ -633,7 +633,7 @@ MACHINE_CONFIG_START(megapc_state::megapc)
// on board devices
MCFG_DEVICE_ADD("isabus", ISA16, 0)
MCFG_ISA16_CPU(":maincpu")
MCFG_ISA16_CPU("maincpu")
MCFG_ISA_BUS_IOCHCK(DEVWRITELINE("wd7600", wd7600_device, iochck_w))
MCFG_ISA_OUT_IRQ2_CB(DEVWRITELINE("wd7600", wd7600_device, irq09_w))
MCFG_ISA_OUT_IRQ3_CB(DEVWRITELINE("wd7600", wd7600_device, irq03_w))

View File

@ -145,7 +145,7 @@ MACHINE_CONFIG_START(ct486_state::ct486)
MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
MCFG_DEVICE_ADD("isabus", ISA16, 0)
MCFG_ISA16_CPU(":maincpu")
MCFG_ISA16_CPU("maincpu")
MCFG_ISA_BUS_IOCHCK(DEVWRITELINE("cs4031", cs4031_device, iochck_w))
MCFG_ISA_OUT_IRQ2_CB(DEVWRITELINE("cs4031", cs4031_device, irq09_w))
MCFG_ISA_OUT_IRQ3_CB(DEVWRITELINE("cs4031", cs4031_device, irq03_w))

View File

@ -147,7 +147,7 @@ MACHINE_CONFIG_START(fruitpc_state::fruitpc)
MCFG_I8237_OUT_IOW_1_CB(WRITE8(fruitpc_state, dma8237_1_dack_w))
MCFG_DEVICE_ADD("isa", ISA8, 0)
MCFG_ISA8_CPU(":maincpu")
MCFG_ISA8_CPU("maincpu")
MCFG_ISA_OUT_IRQ2_CB(DEVWRITELINE("pic8259_2", pic8259_device, ir2_w))
MCFG_ISA_OUT_IRQ3_CB(DEVWRITELINE("pic8259_1", pic8259_device, ir3_w))
MCFG_ISA_OUT_IRQ4_CB(DEVWRITELINE("pic8259_1", pic8259_device, ir4_w))

View File

@ -332,7 +332,7 @@ MACHINE_CONFIG_START(gijoe_state::gijoe)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_K054321_ADD("k054321", ":lspeaker", ":rspeaker")
MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker")
MCFG_DEVICE_ADD("k054539", K054539, XTAL(18'432'000))
MCFG_K054539_TIMER_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI))

View File

@ -95,7 +95,7 @@ MACHINE_CONFIG_START(indiana_state::indiana)
MCFG_CPU_PROGRAM_MAP(indiana_mem)
MCFG_DEVICE_ADD(ISABUS_TAG, ISA16, 0)
MCFG_ISA16_CPU(":" M68K_TAG)
MCFG_ISA16_CPU(M68K_TAG)
MCFG_ISA16_BUS_CUSTOM_SPACES()
MCFG_ISA16_SLOT_ADD(ISABUS_TAG, "isa1", indiana_isa_cards, "vga", false)
MCFG_ISA16_SLOT_ADD(ISABUS_TAG, "isa2", indiana_isa_cards, "fdc_at", false)

View File

@ -537,7 +537,7 @@ MACHINE_CONFIG_START(lethal_state::lethalen)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_K054321_ADD("k054321", ":lspeaker", ":rspeaker")
MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker")
MCFG_DEVICE_ADD("k054539", K054539, XTAL(18'432'000))
MCFG_K054539_TIMER_HANDLER(INPUTLINE("soundcpu", INPUT_LINE_NMI))

View File

@ -212,7 +212,7 @@ MACHINE_CONFIG_START(magtouch_state::magtouch)
MCFG_I8237_OUT_IOW_1_CB(WRITE8(magtouch_state, dma8237_1_dack_w))
MCFG_DEVICE_ADD("isa", ISA8, 0)
MCFG_ISA8_CPU(":maincpu")
MCFG_ISA8_CPU("maincpu")
MCFG_ISA_OUT_IRQ2_CB(DEVWRITELINE("pic8259_2", pic8259_device, ir2_w))
MCFG_ISA_OUT_IRQ3_CB(DEVWRITELINE("pic8259_1", pic8259_device, ir3_w))
//MCFG_ISA_OUT_IRQ4_CB(DEVWRITELINE("pic8259_1", pic8259_device, ir4_w))

View File

@ -284,7 +284,7 @@ MACHINE_CONFIG_START(mc1502_state::mc1502)
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("upd8251", i8251_device, write_cts))
MCFG_DEVICE_ADD("isa", ISA8, 0)
MCFG_ISA8_CPU(":maincpu")
MCFG_ISA8_CPU("maincpu")
MCFG_ISA_OUT_IRQ2_CB(DEVWRITELINE("pic8259", pic8259_device, ir2_w))
MCFG_ISA_OUT_IRQ3_CB(DEVWRITELINE("pic8259", pic8259_device, ir3_w))
MCFG_ISA_OUT_IRQ4_CB(DEVWRITELINE("pic8259", pic8259_device, ir4_w))

Some files were not shown because too many files have changed in this diff Show More