diff --git a/src/devices/bus/ti99/colorbus/colorbus.cpp b/src/devices/bus/ti99/colorbus/colorbus.cpp index f157d564861..b9c938f8fde 100644 --- a/src/devices/bus/ti99/colorbus/colorbus.cpp +++ b/src/devices/bus/ti99/colorbus/colorbus.cpp @@ -55,7 +55,7 @@ void ti99_colorbus_device::device_config_complete() void device_ti99_colorbus_interface::interface_config_complete() { - m_colorbus = downcast(device().owner()); + m_colorbus = dynamic_cast(device().owner()); } SLOT_INTERFACE_START( ti99_colorbus_port ) diff --git a/src/devices/bus/ti99/joyport/joyport.cpp b/src/devices/bus/ti99/joyport/joyport.cpp index d41a005258c..3ad74068913 100644 --- a/src/devices/bus/ti99/joyport/joyport.cpp +++ b/src/devices/bus/ti99/joyport/joyport.cpp @@ -95,7 +95,7 @@ void ti99_joyport_device::device_config_complete() void device_ti99_joyport_interface::interface_config_complete() { - m_joyport = downcast(device().owner()); + m_joyport = dynamic_cast(device().owner()); } SLOT_INTERFACE_START( ti99_joystick_port ) diff --git a/src/devices/bus/ti99/peb/peribox.cpp b/src/devices/bus/ti99/peb/peribox.cpp index add22015f2d..d63c824c3ae 100644 --- a/src/devices/bus/ti99/peb/peribox.cpp +++ b/src/devices/bus/ti99/peb/peribox.cpp @@ -701,18 +701,10 @@ void peribox_slot_device::device_start() void peribox_slot_device::device_config_complete() { m_slotnumber = get_index_from_tagname(); - device_t *carddev = subdevices().first(); - peribox_device *peb = static_cast(owner()); - if (carddev != nullptr) - { - peb->set_slot_loaded(m_slotnumber, this); - m_card = static_cast(carddev); - } - else - { - peb->set_slot_loaded(m_slotnumber, nullptr); - m_card = nullptr; - } + m_card = downcast(subdevices().first()); + peribox_device *peb = dynamic_cast(owner()); + if (peb) + peb->set_slot_loaded(m_slotnumber, m_card ? this : nullptr); } /* diff --git a/src/frontend/mame/info.cpp b/src/frontend/mame/info.cpp index dcbcc3bb3b4..8af0df55e60 100644 --- a/src/frontend/mame/info.cpp +++ b/src/frontend/mame/info.cpp @@ -1607,7 +1607,7 @@ void info_xml_creator::output_images(device_t &device, const char *root_tag) void info_xml_creator::output_slots(machine_config &config, device_t &device, const char *root_tag, device_type_set *devtypes) { - for (const device_slot_interface &slot : slot_interface_iterator(device)) + for (device_slot_interface &slot : slot_interface_iterator(device)) { // shall we list fixed slots as non-configurable? bool const listed(!slot.fixed() && strcmp(slot.device().tag(), device.tag())); @@ -1630,12 +1630,12 @@ void info_xml_creator::output_slots(machine_config &config, device_t &device, co { if (devtypes || (listed && option.second->selectable())) { - device_t *const dev = config.device_add(&device, "_dummy", option.second->devtype(), 0); + device_t *const dev = config.device_add(&slot.device(), "_dummy", option.second->devtype(), 0); if (!dev->configured()) dev->config_complete(); if (devtypes) - for (device_t &device : device_iterator(*dev)) devtypes->insert(&device.type()); + for (device_t &subdevice : device_iterator(*dev)) devtypes->insert(&subdevice.type()); if (listed && option.second->selectable()) { @@ -1647,7 +1647,7 @@ void info_xml_creator::output_slots(machine_config &config, device_t &device, co fprintf(m_output, "/>\n"); } - config.device_remove(&device, "_dummy"); + config.device_remove(&slot.device(), "_dummy"); } }