summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/emu/clifront.c18
-rw-r--r--src/emu/dislot.c3
-rw-r--r--src/emu/dislot.h16
-rw-r--r--src/emu/imagedev/floppy.h2
-rw-r--r--src/emu/info.c2
-rw-r--r--src/emu/machine/ctronics.h2
-rw-r--r--src/emu/machine/idectrl.h10
-rw-r--r--src/emu/machine/nscsi_bus.h2
-rw-r--r--src/emu/mconfig.c14
-rw-r--r--src/emu/uimain.c25
-rw-r--r--src/lib/util/options.c11
-rw-r--r--src/lib/util/options.h2
-rw-r--r--src/mame/drivers/calchase.c2
-rw-r--r--src/mame/drivers/chihiro.c2
-rw-r--r--src/mame/drivers/cobra.c2
-rw-r--r--src/mame/drivers/djmain.c2
-rw-r--r--src/mame/drivers/funkball.c2
-rw-r--r--src/mame/drivers/gamecstl.c2
-rw-r--r--src/mame/drivers/jaguar.c2
-rw-r--r--src/mame/drivers/kinst.c2
-rw-r--r--src/mame/drivers/mediagx.c2
-rw-r--r--src/mame/drivers/midqslvr.c2
-rw-r--r--src/mame/drivers/midvunit.c2
-rw-r--r--src/mame/drivers/qdrmfgp.c4
-rw-r--r--src/mame/drivers/queen.c2
-rw-r--r--src/mame/drivers/savquest.c2
-rw-r--r--src/mame/drivers/seattle.c2
-rw-r--r--src/mame/drivers/taitogn.c2
-rw-r--r--src/mame/drivers/taitowlf.c2
-rw-r--r--src/mame/drivers/twinkle.c2
-rw-r--r--src/mame/drivers/vegas.c2
-rw-r--r--src/mame/drivers/viper.c2
-rw-r--r--src/mame/drivers/voyager.c2
-rw-r--r--src/mame/drivers/xtom3d.c2
-rw-r--r--src/mame/drivers/zn.c4
35 files changed, 100 insertions, 57 deletions
diff --git a/src/emu/clifront.c b/src/emu/clifront.c
index 63804c3959b..620393a1ee7 100644
--- a/src/emu/clifront.c
+++ b/src/emu/clifront.c
@@ -647,6 +647,7 @@ void cli_frontend::listslots(const char *gamename)
bool first = true;
for (const device_slot_interface *slot = iter.first(); slot != NULL; slot = iter.next())
{
+ if (slot->fixed()) continue;
// output the line, up to the list of extensions
printf("%-13s%-10s ", first ? drivlist.driver().name : "", slot->device().tag()+1);
@@ -654,14 +655,17 @@ void cli_frontend::listslots(const char *gamename)
const slot_interface* intf = slot->get_slot_interfaces();
for (int i = 0; intf && intf[i].name != NULL; i++)
{
- device_t *dev = (*intf[i].devtype)(drivlist.config(), "dummy", &drivlist.config().root_device(), 0);
- dev->config_complete();
- if (i==0) {
- printf("%-15s %s\n", intf[i].name,dev->name());
- } else {
- printf("%-23s %-15s %s\n", "",intf[i].name,dev->name());
+ if (!intf[i].internal)
+ {
+ device_t *dev = (*intf[i].devtype)(drivlist.config(), "dummy", &drivlist.config().root_device(), 0);
+ dev->config_complete();
+ if (i==0) {
+ printf("%-15s %s\n", intf[i].name,dev->name());
+ } else {
+ printf("%-23s %-15s %s\n", "",intf[i].name,dev->name());
+ }
+ global_free(dev);
}
- global_free(dev);
}
// end the line
printf("\n");
diff --git a/src/emu/dislot.c b/src/emu/dislot.c
index 95cfedaa046..617377b7b71 100644
--- a/src/emu/dislot.c
+++ b/src/emu/dislot.c
@@ -20,7 +20,7 @@ device_slot_interface::~device_slot_interface()
}
-void device_slot_interface::static_set_slot_info(device_t &device, const slot_interface *slots_info, const char *default_card,const input_device_default *default_input)
+void device_slot_interface::static_set_slot_info(device_t &device, const slot_interface *slots_info, const char *default_card,const input_device_default *default_input, bool fixed)
{
device_slot_interface *slot;
if (!device.interface(slot))
@@ -29,6 +29,7 @@ void device_slot_interface::static_set_slot_info(device_t &device, const slot_in
slot->m_slot_interfaces = slots_info;
slot->m_default_card = default_card;
slot->m_input_defaults = default_input;
+ slot->m_fixed = fixed;
}
device_t* device_slot_interface::get_card_device()
diff --git a/src/emu/dislot.h b/src/emu/dislot.h
index 911cae86462..58dcabccbda 100644
--- a/src/emu/dislot.h
+++ b/src/emu/dislot.h
@@ -17,10 +17,11 @@ struct slot_interface
{
const char * name;
const device_type & devtype;
+ bool internal;
};
-#define MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _def_inp) \
- device_slot_interface::static_set_slot_info(*device, SLOT_INTERFACE_NAME(_slot_intf), _def_slot, DEVICE_INPUT_DEFAULTS_NAME(_def_inp));
+#define MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _def_inp, _fixed) \
+ device_slot_interface::static_set_slot_info(*device, SLOT_INTERFACE_NAME(_slot_intf), _def_slot, DEVICE_INPUT_DEFAULTS_NAME(_def_inp), _fixed);
#define SLOT_INTERFACE_NAME(name) slot_interface_##name
@@ -29,10 +30,13 @@ struct slot_interface
{ \
#define SLOT_INTERFACE(tag,device) \
- { tag, device }, \
+ { tag, device, false }, \
+
+#define SLOT_INTERFACE_INTERNAL(tag,device) \
+ { tag, device, true }, \
#define SLOT_INTERFACE_END \
- { NULL, NULL } \
+ { NULL, NULL, false } \
};
#define SLOT_INTERFACE_EXTERN(name) extern const slot_interface slot_interface_##name[]
@@ -46,16 +50,18 @@ public:
device_slot_interface(const machine_config &mconfig, device_t &device);
virtual ~device_slot_interface();
- static void static_set_slot_info(device_t &device, const slot_interface *slots_info, const char *default_card,const input_device_default *default_input);
+ static void static_set_slot_info(device_t &device, const slot_interface *slots_info, const char *default_card,const input_device_default *default_input, bool fixed);
const slot_interface* get_slot_interfaces() const { return m_slot_interfaces; };
const char * get_default_card(const machine_config &config, emu_options &options) const { return m_default_card; };
virtual const char * get_default_card_software(const machine_config &config, emu_options &options) { return NULL; };
const input_device_default *input_ports_defaults() const { return m_input_defaults; }
+ const bool fixed() const { return m_fixed; }
device_t* get_card_device();
protected:
const char *m_default_card;
const input_device_default *m_input_defaults;
const slot_interface *m_slot_interfaces;
+ bool m_fixed;
};
// iterator
diff --git a/src/emu/imagedev/floppy.h b/src/emu/imagedev/floppy.h
index 4018e8a060f..99789ecb2b3 100644
--- a/src/emu/imagedev/floppy.h
+++ b/src/emu/imagedev/floppy.h
@@ -11,7 +11,7 @@
#define MCFG_FLOPPY_DRIVE_ADD(_tag, _slot_intf, _def_slot, _def_inp, _formats) \
MCFG_DEVICE_ADD(_tag, FLOPPY_CONNECTOR, 0) \
- MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _def_inp) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _def_inp, false) \
static_cast<floppy_connector *>(device)->set_formats(_formats);
diff --git a/src/emu/info.c b/src/emu/info.c
index 62fe531e094..fb2a8b770e4 100644
--- a/src/emu/info.c
+++ b/src/emu/info.c
@@ -1276,7 +1276,7 @@ void info_xml_creator::output_slots(device_t &device, const char *root_tag)
*/
const slot_interface* intf = slot->get_slot_interfaces();
- for (int i = 0; intf && intf[i].name != NULL; i++)
+ for (int i = 0; intf && intf[i].name != NULL && !intf[i].internal; i++)
{
device_t *dev = const_cast<machine_config &>(m_drivlist.config()).device_add(&m_drivlist.config().root_device(), "dummy", intf[i].devtype, 0);
if (!dev->configured())
diff --git a/src/emu/machine/ctronics.h b/src/emu/machine/ctronics.h
index cb62e288aad..1f55977c348 100644
--- a/src/emu/machine/ctronics.h
+++ b/src/emu/machine/ctronics.h
@@ -149,7 +149,7 @@ SLOT_INTERFACE_EXTERN(centronics_printer);
#define MCFG_CENTRONICS_ADD(_tag, _intf, _slot_intf, _def_slot, _def_inp) \
MCFG_DEVICE_ADD(_tag, CENTRONICS, 0) \
MCFG_DEVICE_CONFIG(_intf) \
- MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _def_inp) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _def_inp, false) \
#define MCFG_CENTRONICS_PRINTER_ADD(_tag, _intf) \
MCFG_CENTRONICS_ADD(_tag, _intf, centronics_printer, "printer", NULL) \
diff --git a/src/emu/machine/idectrl.h b/src/emu/machine/idectrl.h
index e55aae970e1..e1804877606 100644
--- a/src/emu/machine/idectrl.h
+++ b/src/emu/machine/idectrl.h
@@ -145,20 +145,20 @@ SLOT_INTERFACE_EXTERN(ide_image_devices);
DEVICE CONFIGURATION MACROS
***************************************************************************/
-#define MCFG_IDE_CONTROLLER_ADD(_tag, _callback, _slotintf, _master, _slave) \
+#define MCFG_IDE_CONTROLLER_ADD(_tag, _callback, _slotintf, _master, _slave, _fixed) \
MCFG_DEVICE_ADD(_tag, IDE_CONTROLLER, 0) \
MCFG_DEVICE_CONFIG_DATAPTR(ide_config, interrupt, _callback) \
- MCFG_IDE_SLOT_ADD("drive_0", _slotintf, _master, NULL) \
- MCFG_IDE_SLOT_ADD("drive_1", _slotintf, _slave, NULL) \
+ MCFG_IDE_SLOT_ADD("drive_0", _slotintf, _master, NULL, _fixed) \
+ MCFG_IDE_SLOT_ADD("drive_1", _slotintf, _slave, NULL, _fixed) \
#define MCFG_IDE_BUS_MASTER_SPACE(_tag, _cpu, _space) \
MCFG_DEVICE_MODIFY(_tag) \
MCFG_DEVICE_CONFIG_DATAPTR(ide_config, bmcpu, _cpu) \
MCFG_DEVICE_CONFIG_DATA32(ide_config, bmspace, AS_##_space)
-#define MCFG_IDE_SLOT_ADD(_tag, _slot_intf, _def_slot, _def_inp) \
+#define MCFG_IDE_SLOT_ADD(_tag, _slot_intf, _def_slot, _def_inp, _fixed) \
MCFG_DEVICE_ADD(_tag, IDE_SLOT, 0) \
- MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _def_inp) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _def_inp, _fixed) \
/***************************************************************************
FUNCTION PROTOTYPES
diff --git a/src/emu/machine/nscsi_bus.h b/src/emu/machine/nscsi_bus.h
index d3a19dac924..49e302e4fe8 100644
--- a/src/emu/machine/nscsi_bus.h
+++ b/src/emu/machine/nscsi_bus.h
@@ -16,7 +16,7 @@
#define MCFG_NSCSI_ADD(_tag, _slot_intf, _def_slot, _def_inp) \
MCFG_DEVICE_ADD(_tag, NSCSI_CONNECTOR, 0) \
- MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _def_inp)
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _def_inp, false)
class nscsi_device;
diff --git a/src/emu/mconfig.c b/src/emu/mconfig.c
index bd2d236b5c7..b593adc8619 100644
--- a/src/emu/mconfig.c
+++ b/src/emu/mconfig.c
@@ -78,6 +78,7 @@ machine_config::machine_config(const game_driver &gamedrv, emu_options &options)
{
device_t &owner = slot->device();
const char *selval = options.value(owner.tag()+1);
+ bool isdefault = (options.priority(owner.tag()+1)==OPTION_PRIORITY_DEFAULT);
if (!is_selected_driver || !options.exists(owner.tag()+1))
selval = slot->get_default_card(*this, options);
@@ -88,11 +89,14 @@ machine_config::machine_config(const game_driver &gamedrv, emu_options &options)
{
if (strcmp(selval, intf[i].name) == 0)
{
- device_t *new_dev = device_add(&owner, intf[i].name, intf[i].devtype, 0);
- found = true;
- const char *def = slot->get_default_card(*this, options);
- if (def != NULL && strcmp(def, selval) == 0)
- device_t::static_set_input_default(*new_dev, slot->input_ports_defaults());
+ if ((!intf[i].internal) || (isdefault && intf[i].internal))
+ {
+ device_t *new_dev = device_add(&owner, intf[i].name, intf[i].devtype, 0);
+ found = true;
+ const char *def = slot->get_default_card(*this, options);
+ if (def != NULL && strcmp(def, selval) == 0)
+ device_t::static_set_input_default(*new_dev, slot->input_ports_defaults());
+ }
}
}
if (!found)
diff --git a/src/emu/uimain.c b/src/emu/uimain.c
index 94cc6190a47..1e4ba70d00b 100644
--- a/src/emu/uimain.c
+++ b/src/emu/uimain.c
@@ -180,8 +180,14 @@ void ui_menu_main::populate()
slot_interface_iterator slotiter(machine().root_device());
if (slotiter.first() != NULL)
{
+ bool display = false;
+ for (const device_slot_interface *slot = slotiter.first(); slot != NULL; slot = slotiter.next())
+ {
+ if (slot->fixed()) continue;
+ display = true;
+ }
/* add image info menu */
- item_append("Slot Devices", NULL, 0, (void *)SLOT_DEVICES);
+ if (display) item_append("Slot Devices", NULL, 0, (void *)SLOT_DEVICES);
}
network_interface_iterator netiter(machine().root_device());
@@ -393,6 +399,10 @@ int ui_menu_slot_devices::slot_get_length(device_slot_interface *slot)
const char *ui_menu_slot_devices::slot_get_next(device_slot_interface *slot)
{
int idx = slot_get_current_index(slot) + 1;
+ do {
+ if (idx==slot_get_length(slot)) return "";
+ if (slot->get_slot_interfaces()[idx].internal) idx++;
+ } while (slot->get_slot_interfaces()[idx].internal);
if (idx==slot_get_length(slot)) return "";
return slot->get_slot_interfaces()[idx].name;
}
@@ -403,9 +413,12 @@ const char *ui_menu_slot_devices::slot_get_next(device_slot_interface *slot)
const char *ui_menu_slot_devices::slot_get_prev(device_slot_interface *slot)
{
int idx = slot_get_current_index(slot) - 1;
- if (idx==-1) return "";
- if (idx==-2) idx = slot_get_length(slot) -1;
- if (idx==-1) return "";
+ do {
+ if (idx==-1) return "";
+ if (idx==-2) idx = slot_get_length(slot) -1;
+ if (idx==-1) return "";
+ if (slot->get_slot_interfaces()[idx].internal) idx--;
+ } while (slot->get_slot_interfaces()[idx].internal);
return slot->get_slot_interfaces()[idx].name;
}
@@ -445,6 +458,8 @@ void ui_menu_slot_devices::populate()
slot_interface_iterator iter(machine().root_device());
for (device_slot_interface *slot = iter.first(); slot != NULL; slot = iter.next())
{
+ // do no display fixed slots
+ if (slot->fixed()) continue;
/* record the menu item */
const char *title = get_slot_device(slot);
item_append(slot->device().tag()+1, strcmp(title,"")==0 ? "------" : title, MENU_FLAG_LEFT_ARROW | MENU_FLAG_RIGHT_ARROW, (void *)slot);
@@ -469,7 +484,7 @@ void ui_menu_slot_devices::handle()
if (menu_event != NULL && menu_event->itemref != NULL)
{
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT) {
- device_slot_interface *slot = (device_slot_interface *)menu_event->itemref;
+ device_slot_interface *slot = (device_slot_interface *)menu_event->itemref;
const char *val = (menu_event->iptkey == IPT_UI_LEFT) ? slot_get_prev(slot) : slot_get_next(slot);
set_slot_device(slot,val);
reset(UI_MENU_RESET_REMEMBER_REF);
diff --git a/src/lib/util/options.c b/src/lib/util/options.c
index 88c173c1c65..1144bb1202e 100644
--- a/src/lib/util/options.c
+++ b/src/lib/util/options.c
@@ -575,6 +575,17 @@ const char *core_options::value(const char *name) const
//-------------------------------------------------
+// priority - return the priority of option
+//-------------------------------------------------
+
+int core_options::priority(const char *name) const
+{
+ entry *curentry = m_entrymap.find(name);
+ return (curentry != NULL) ? curentry->priority() : 0;
+}
+
+
+//-------------------------------------------------
// seqid - return the seqid for a given option
//-------------------------------------------------
diff --git a/src/lib/util/options.h b/src/lib/util/options.h
index 03aa293bebf..c8fbf5e1f51 100644
--- a/src/lib/util/options.h
+++ b/src/lib/util/options.h
@@ -115,6 +115,7 @@ public:
bool is_header() const { return type() == OPTION_HEADER; }
bool is_command() const { return type() == OPTION_COMMAND; }
bool has_range() const { return (m_minimum && m_maximum); }
+ int priority() const { return m_priority; }
// setters
void set_value(const char *newvalue, int priority);
@@ -171,6 +172,7 @@ public:
// reading
const char *value(const char *option) const;
+ int priority(const char *option) const;
bool bool_value(const char *name) const { return (atoi(value(name)) != 0); }
int int_value(const char *name) const { return atoi(value(name)); }
float float_value(const char *name) const { return atof(value(name)); }
diff --git a/src/mame/drivers/calchase.c b/src/mame/drivers/calchase.c
index 285d54b9cac..eddebb141fd 100644
--- a/src/mame/drivers/calchase.c
+++ b/src/mame/drivers/calchase.c
@@ -916,7 +916,7 @@ static MACHINE_CONFIG_START( calchase, calchase_state )
MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
MCFG_PIC8259_ADD( "pic8259_1", calchase_pic8259_1_config )
MCFG_PIC8259_ADD( "pic8259_2", calchase_pic8259_2_config )
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
MCFG_PCI_BUS_ADD("pcibus", 0)
diff --git a/src/mame/drivers/chihiro.c b/src/mame/drivers/chihiro.c
index 9a54ce51a60..20fc7c94bbf 100644
--- a/src/mame/drivers/chihiro.c
+++ b/src/mame/drivers/chihiro.c
@@ -1179,7 +1179,7 @@ static MACHINE_CONFIG_START( chihiro_base, driver_device )
MCFG_PIC8259_ADD( "pic8259_1", chihiro_pic8259_1_config )
MCFG_PIC8259_ADD( "pic8259_2", chihiro_pic8259_2_config )
MCFG_PIT8254_ADD( "pit8254", chihiro_pit8254_config )
- MCFG_IDE_CONTROLLER_ADD( "ide", ide_interrupt , ide_baseboard, "bb", NULL)
+ MCFG_IDE_CONTROLLER_ADD( "ide", ide_interrupt , ide_baseboard, "bb", NULL, true)
MCFG_IDE_BUS_MASTER_SPACE( "ide", "maincpu", PROGRAM )
/* video hardware */
diff --git a/src/mame/drivers/cobra.c b/src/mame/drivers/cobra.c
index 83c3b351468..553dc6b9a1c 100644
--- a/src/mame/drivers/cobra.c
+++ b/src/mame/drivers/cobra.c
@@ -2020,7 +2020,7 @@ static MACHINE_CONFIG_START( cobra, cobra_state )
MCFG_PCI_BUS_ADD("pcibus", 0)
MCFG_PCI_BUS_DEVICE(0, NULL, mpc106_pci_r, mpc106_pci_w)
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
/* video hardware */
MCFG_VIDEO_START(cobra)
diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c
index 42ac7e18658..a027f2d9778 100644
--- a/src/mame/drivers/djmain.c
+++ b/src/mame/drivers/djmain.c
@@ -1456,7 +1456,7 @@ static MACHINE_CONFIG_START( djmain, djmain_state )
MCFG_MACHINE_START(djmain)
MCFG_MACHINE_RESET(djmain)
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/funkball.c b/src/mame/drivers/funkball.c
index 2bae619ea1e..a5ab9f042b0 100644
--- a/src/mame/drivers/funkball.c
+++ b/src/mame/drivers/funkball.c
@@ -1155,7 +1155,7 @@ static MACHINE_CONFIG_START( funkball, funkball_state )
MCFG_PCI_BUS_DEVICE(7, "voodoo_0", voodoo_0_pci_r, voodoo_0_pci_w)
MCFG_PCI_BUS_DEVICE(18, NULL, cx5510_pci_r, cx5510_pci_w)
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
/* video hardware */
MCFG_3DFX_VOODOO_1_ADD("voodoo_0", STD_VOODOO_1_CLOCK, 2, "screen")
diff --git a/src/mame/drivers/gamecstl.c b/src/mame/drivers/gamecstl.c
index 90c8ff930ff..d0a07538f52 100644
--- a/src/mame/drivers/gamecstl.c
+++ b/src/mame/drivers/gamecstl.c
@@ -704,7 +704,7 @@ static MACHINE_CONFIG_START( gamecstl, gamecstl_state )
MCFG_PIC8259_ADD( "pic8259_2", gamecstl_pic8259_2_config )
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
diff --git a/src/mame/drivers/jaguar.c b/src/mame/drivers/jaguar.c
index 03b30401007..e3c2aa5df4a 100644
--- a/src/mame/drivers/jaguar.c
+++ b/src/mame/drivers/jaguar.c
@@ -1737,7 +1737,7 @@ static MACHINE_CONFIG_START( cojagr3k, cojag_state )
MCFG_MACHINE_RESET(cojag)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_IDE_CONTROLLER_ADD("ide", jaguar_external_int, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", jaguar_external_int, ide_devices, "hdd", NULL, true)
MCFG_TIMER_ADD("serial_timer", jaguar_serial_callback)
diff --git a/src/mame/drivers/kinst.c b/src/mame/drivers/kinst.c
index a0ca431a24b..f7b38dc36f7 100644
--- a/src/mame/drivers/kinst.c
+++ b/src/mame/drivers/kinst.c
@@ -664,7 +664,7 @@ static MACHINE_CONFIG_START( kinst, kinst_state )
MCFG_MACHINE_START(kinst)
MCFG_MACHINE_RESET(kinst)
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
/* video hardware */
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c
index 9779169699c..4ec4dbb2db8 100644
--- a/src/mame/drivers/mediagx.c
+++ b/src/mame/drivers/mediagx.c
@@ -1153,7 +1153,7 @@ static MACHINE_CONFIG_START( mediagx, mediagx_state )
MCFG_PIC8259_ADD( "pic8259_slave", mediagx_pic8259_2_config )
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
MCFG_TIMER_ADD("sound_timer", sound_timer_callback)
diff --git a/src/mame/drivers/midqslvr.c b/src/mame/drivers/midqslvr.c
index ea225139224..bfcfff513a1 100644
--- a/src/mame/drivers/midqslvr.c
+++ b/src/mame/drivers/midqslvr.c
@@ -704,7 +704,7 @@ static MACHINE_CONFIG_START( midqslvr, midqslvr_state )
MCFG_PCI_BUS_DEVICE( 0, NULL, intel82439tx_pci_r, intel82439tx_pci_w)
MCFG_PCI_BUS_DEVICE(31, NULL, intel82371ab_pci_r, intel82371ab_pci_w)
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
/* video hardware */
MCFG_FRAGMENT_ADD( pcvideo_vga )
diff --git a/src/mame/drivers/midvunit.c b/src/mame/drivers/midvunit.c
index 834fd3f76eb..5494e38bc2a 100644
--- a/src/mame/drivers/midvunit.c
+++ b/src/mame/drivers/midvunit.c
@@ -1043,7 +1043,7 @@ static MACHINE_CONFIG_DERIVED( midvplus, midvcommon )
MCFG_DEVICE_REMOVE("nvram")
MCFG_NVRAM_HANDLER(midway_serial_pic2)
- MCFG_IDE_CONTROLLER_ADD("ide", NULL, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", NULL, ide_devices, "hdd", NULL, true)
/* sound hardware */
MCFG_FRAGMENT_ADD(dcs2_audio_2115)
diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c
index b1904664ccc..b0b1b94968b 100644
--- a/src/mame/drivers/qdrmfgp.c
+++ b/src/mame/drivers/qdrmfgp.c
@@ -675,7 +675,7 @@ static MACHINE_CONFIG_START( qdrmfgp, qdrmfgp_state )
MCFG_MACHINE_RESET(qdrmfgp)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -711,7 +711,7 @@ static MACHINE_CONFIG_START( qdrmfgp2, qdrmfgp_state )
MCFG_MACHINE_RESET(qdrmfgp)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_IDE_CONTROLLER_ADD("ide", gp2_ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", gp2_ide_interrupt, ide_devices, "hdd", NULL, true)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/queen.c b/src/mame/drivers/queen.c
index dbc78a199dd..f4a007be856 100644
--- a/src/mame/drivers/queen.c
+++ b/src/mame/drivers/queen.c
@@ -691,7 +691,7 @@ static MACHINE_CONFIG_START( queen, queen_state )
MCFG_PCI_BUS_DEVICE(0, NULL, intel82439tx_pci_r, intel82439tx_pci_w)
MCFG_PCI_BUS_DEVICE(7, NULL, intel82371ab_pci_r, intel82371ab_pci_w)
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
/* video hardware */
MCFG_FRAGMENT_ADD( pcvideo_vga )
diff --git a/src/mame/drivers/savquest.c b/src/mame/drivers/savquest.c
index a8cde432075..5f1e49e6b9d 100644
--- a/src/mame/drivers/savquest.c
+++ b/src/mame/drivers/savquest.c
@@ -555,7 +555,7 @@ static MACHINE_CONFIG_START( savquest, savquest_state )
MCFG_PCI_BUS_DEVICE(0, NULL, intel82439tx_pci_r, intel82439tx_pci_w)
MCFG_PCI_BUS_DEVICE(7, NULL, intel82371ab_pci_r, intel82371ab_pci_w)
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
/* video hardware */
MCFG_FRAGMENT_ADD( pcvideo_vga )
diff --git a/src/mame/drivers/seattle.c b/src/mame/drivers/seattle.c
index fbb63224421..b4a094dd5bb 100644
--- a/src/mame/drivers/seattle.c
+++ b/src/mame/drivers/seattle.c
@@ -2514,7 +2514,7 @@ static MACHINE_CONFIG_START( seattle_common, seattle_state )
MCFG_MACHINE_RESET(seattle)
MCFG_NVRAM_ADD_1FILL("nvram")
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
MCFG_IDE_BUS_MASTER_SPACE("ide", "maincpu", PROGRAM)
MCFG_3DFX_VOODOO_1_ADD("voodoo", STD_VOODOO_1_CLOCK, 2, "screen")
diff --git a/src/mame/drivers/taitogn.c b/src/mame/drivers/taitogn.c
index 54161f48198..949f6106555 100644
--- a/src/mame/drivers/taitogn.c
+++ b/src/mame/drivers/taitogn.c
@@ -982,7 +982,7 @@ static MACHINE_CONFIG_START( coh3002t, taitogn_state )
MCFG_MACHINE_RESET( coh3002t )
MCFG_AT28C16_ADD( "at28c16", 0 )
- MCFG_IDE_CONTROLLER_ADD( "card", 0, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD( "card", 0, ide_devices, "hdd", NULL, true)
MCFG_MB3773_ADD("mb3773")
diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c
index c8e918ee6db..dd809e93460 100644
--- a/src/mame/drivers/taitowlf.c
+++ b/src/mame/drivers/taitowlf.c
@@ -634,7 +634,7 @@ static MACHINE_CONFIG_START( taitowlf, taitowlf_state )
MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
MCFG_PIC8259_ADD( "pic8259_1", taitowlf_pic8259_1_config )
MCFG_PIC8259_ADD( "pic8259_2", taitowlf_pic8259_2_config )
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
/* video hardware */
diff --git a/src/mame/drivers/twinkle.c b/src/mame/drivers/twinkle.c
index 6d0f12306aa..4412a0d3ddc 100644
--- a/src/mame/drivers/twinkle.c
+++ b/src/mame/drivers/twinkle.c
@@ -908,7 +908,7 @@ static MACHINE_CONFIG_START( twinkle, twinkle_state )
MCFG_MACHINE_RESET( twinkle )
MCFG_I2CMEM_ADD("security",i2cmem_interface)
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
MCFG_RTC65271_ADD("rtc", twinkle_rtc)
/* video hardware */
diff --git a/src/mame/drivers/vegas.c b/src/mame/drivers/vegas.c
index 689b05c9e1a..837e4255a6d 100644
--- a/src/mame/drivers/vegas.c
+++ b/src/mame/drivers/vegas.c
@@ -2222,7 +2222,7 @@ static MACHINE_CONFIG_START( vegascore, vegas_state )
MCFG_MACHINE_RESET(vegas)
MCFG_M48T37_ADD("timekeeper")
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
MCFG_IDE_BUS_MASTER_SPACE("ide", "maincpu", PROGRAM)
MCFG_SMC91C94_ADD("ethernet", ethernet_interrupt)
diff --git a/src/mame/drivers/viper.c b/src/mame/drivers/viper.c
index 80f4e06876e..d88751ab6fb 100644
--- a/src/mame/drivers/viper.c
+++ b/src/mame/drivers/viper.c
@@ -1963,7 +1963,7 @@ static MACHINE_CONFIG_START( viper, viper_state )
MCFG_PCI_BUS_DEVICE(0, "mpc8240", mpc8240_pci_r, mpc8240_pci_w)
MCFG_PCI_BUS_DEVICE(12, "voodoo", voodoo3_pci_r, voodoo3_pci_w)
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
MCFG_3DFX_VOODOO_3_ADD("voodoo", STD_VOODOO_3_CLOCK, 8, "screen")
MCFG_3DFX_VOODOO_CPU("maincpu")
MCFG_3DFX_VOODOO_VBLANK(voodoo_vblank)
diff --git a/src/mame/drivers/voyager.c b/src/mame/drivers/voyager.c
index 74fe646f08f..c950912862a 100644
--- a/src/mame/drivers/voyager.c
+++ b/src/mame/drivers/voyager.c
@@ -771,7 +771,7 @@ static MACHINE_CONFIG_START( voyager, voyager_state )
MCFG_I8237_ADD( "dma8237_2", XTAL_14_31818MHz/3, dma8237_2_config )
MCFG_PIC8259_ADD( "pic8259_1", voyager_pic8259_1_config )
MCFG_PIC8259_ADD( "pic8259_2", voyager_pic8259_2_config )
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
MCFG_MC146818_ADD( "rtc", MC146818_STANDARD )
MCFG_PCI_BUS_ADD("pcibus", 0)
diff --git a/src/mame/drivers/xtom3d.c b/src/mame/drivers/xtom3d.c
index f1b9e1f0fd7..0600a1c5671 100644
--- a/src/mame/drivers/xtom3d.c
+++ b/src/mame/drivers/xtom3d.c
@@ -696,7 +696,7 @@ static MACHINE_CONFIG_START( xtom3d, xtom3d_state )
MCFG_PCI_BUS_DEVICE(0, NULL, intel82439tx_pci_r, intel82439tx_pci_w)
MCFG_PCI_BUS_DEVICE(7, NULL, intel82371ab_pci_r, intel82371ab_pci_w)
- MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true)
/* video hardware */
MCFG_FRAGMENT_ADD( pcvideo_vga )
diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c
index d937d85d28f..9bd4756ebf8 100644
--- a/src/mame/drivers/zn.c
+++ b/src/mame/drivers/zn.c
@@ -1514,7 +1514,7 @@ static MACHINE_RESET( coh1000w )
static MACHINE_CONFIG_DERIVED( coh1000w, zn1_2mb_vram )
MCFG_MACHINE_RESET( coh1000w )
- MCFG_IDE_CONTROLLER_ADD("ide", atpsx_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", atpsx_interrupt, ide_devices, "hdd", NULL, true)
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psx_dma_read_delegate( FUNC( atpsx_dma_read ), (zn_state *) owner ) )
MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psx_dma_write_delegate( FUNC( atpsx_dma_write ), (zn_state *) owner ) )
MACHINE_CONFIG_END
@@ -2197,7 +2197,7 @@ static MACHINE_CONFIG_DERIVED( coh1000a_ide, zn1_2mb_vram )
MCFG_MACHINE_RESET( coh1000a )
- MCFG_IDE_CONTROLLER_ADD("ide", jdredd_ide_interrupt, ide_devices, "hdd", NULL)
+ MCFG_IDE_CONTROLLER_ADD("ide", jdredd_ide_interrupt, ide_devices, "hdd", NULL, true)
MACHINE_CONFIG_END
/*