diff --git a/src/emu/machine/idectrl.c b/src/emu/machine/idectrl.c index 9a5d29e364e..c668ed05f01 100644 --- a/src/emu/machine/idectrl.c +++ b/src/emu/machine/idectrl.c @@ -1286,8 +1286,13 @@ static UINT32 ide_controller_read(device_t *device, int bank, offs_t offset, int // if (BANK(bank, offset) != IDE_BANK0_DATA && BANK(bank, offset) != IDE_BANK0_STATUS_COMMAND && BANK(bank, offset) != IDE_BANK1_STATUS_CONTROL) LOG(("%s:IDE read at %d:%X, size=%d\n", device->machine().describe_context(), bank, offset, size)); - if (ide->drive[ide->cur_drive].slot->is_ready()) { - ide->status |= IDE_STATUS_DRIVE_READY; + if (ide->drive[ide->cur_drive].slot->is_connected()) + { + if (ide->drive[ide->cur_drive].slot->is_ready()) { + ide->status |= IDE_STATUS_DRIVE_READY; + } else { + ide->status &= ~IDE_STATUS_DRIVE_READY; + } } switch (BANK(bank, offset)) diff --git a/src/emu/machine/idectrl.h b/src/emu/machine/idectrl.h index e1804877606..d5fbf0a88ee 100644 --- a/src/emu/machine/idectrl.h +++ b/src/emu/machine/idectrl.h @@ -67,6 +67,7 @@ public: UINT16 get_heads() { return (m_dev) ? m_dev->get_heads() : 0; } void set_geometry(UINT8 sectors, UINT8 heads) { if (m_dev) m_dev->set_geometry(sectors,heads); } bool is_ready() { return (m_dev) ? m_dev->is_ready() : false; } + bool is_connected() { return (m_dev) ? true : false; } void read_key(UINT8 key[]) { if (m_dev) m_dev->read_key(key); } protected: // device-level overrides diff --git a/src/mame/drivers/jaguar.c b/src/mame/drivers/jaguar.c index 35ee6434a95..fe0e27a3793 100644 --- a/src/mame/drivers/jaguar.c +++ b/src/mame/drivers/jaguar.c @@ -1774,6 +1774,10 @@ static MACHINE_CONFIG_START( cojagr3k, cojag_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( cojagr3k_rom, cojagr3k ) + MCFG_DEVICE_REMOVE("drive_0") + MCFG_IDE_SLOT_ADD("drive_0", ide_devices, NULL, NULL, true) +MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( cojag68k, cojagr3k ) @@ -2529,14 +2533,14 @@ CONS( 1995, jaguarcd, jaguar, 0, jaguar, jaguar, cojag_state, jaguar GAME( 1996, area51, 0, cojagr3k, area51, cojag_state, area51, ROT0, "Atari Games", "Area 51 (R3000)", 0 ) GAME( 1995, area51t, area51, cojag68k, area51, cojag_state, area51a, ROT0, "Atari Games (Time Warner license)", "Area 51 (Time Warner license)", 0 ) GAME( 1995, area51a, area51, cojag68k, area51, cojag_state, area51a, ROT0, "Atari Games", "Area 51 (Atari Games license)", 0 ) -GAME( 1995, fishfren, 0, cojagr3k, fishfren, cojag_state, fishfren, ROT0, "Time Warner Interactive", "Fishin' Frenzy (prototype)", 0 ) -GAME( 1996, freezeat, 0, cojagr3k, freezeat, cojag_state, freezeat, ROT0, "Atari Games", "Freeze (Atari) (prototype, English voice, 96/10/25)", 0 ) -GAME( 1996, freezeatjp,freezeat, cojagr3k, freezeat, cojag_state, freezeat, ROT0, "Atari Games", "Freeze (Atari) (prototype, Japanese voice, 96/10/25)", 0 ) -GAME( 1996, freezeat2, freezeat, cojagr3k, freezeat, cojag_state, freezeat2,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/10/18)", 0 ) -GAME( 1996, freezeat3, freezeat, cojagr3k, freezeat, cojag_state, freezeat3,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/10/07)", 0 ) -GAME( 1996, freezeat4, freezeat, cojagr3k, freezeat, cojag_state, freezeat4,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/10/03)", 0 ) -GAME( 1996, freezeat5, freezeat, cojagr3k, freezeat, cojag_state, freezeat5,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/09/20, AMOA-96)", 0 ) -GAME( 1996, freezeat6, freezeat, cojagr3k, freezeat, cojag_state, freezeat6,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/09/07, Jamma-96)", 0 ) +GAME( 1995, fishfren, 0, cojagr3k_rom, fishfren, cojag_state, fishfren, ROT0, "Time Warner Interactive", "Fishin' Frenzy (prototype)", 0 ) +GAME( 1996, freezeat, 0, cojagr3k_rom, freezeat, cojag_state, freezeat, ROT0, "Atari Games", "Freeze (Atari) (prototype, English voice, 96/10/25)", 0 ) +GAME( 1996, freezeatjp,freezeat, cojagr3k_rom, freezeat, cojag_state, freezeat, ROT0, "Atari Games", "Freeze (Atari) (prototype, Japanese voice, 96/10/25)", 0 ) +GAME( 1996, freezeat2, freezeat, cojagr3k_rom, freezeat, cojag_state, freezeat2,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/10/18)", 0 ) +GAME( 1996, freezeat3, freezeat, cojagr3k_rom, freezeat, cojag_state, freezeat3,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/10/07)", 0 ) +GAME( 1996, freezeat4, freezeat, cojagr3k_rom, freezeat, cojag_state, freezeat4,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/10/03)", 0 ) +GAME( 1996, freezeat5, freezeat, cojagr3k_rom, freezeat, cojag_state, freezeat5,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/09/20, AMOA-96)", 0 ) +GAME( 1996, freezeat6, freezeat, cojagr3k_rom, freezeat, cojag_state, freezeat6,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/09/07, Jamma-96)", 0 ) GAME( 1996, maxforce, 0, cojagr3k, area51, cojag_state, maxforce, ROT0, "Atari Games", "Maximum Force v1.05", 0 ) GAME( 1996, maxf_102, maxforce, cojagr3k, area51, cojag_state, maxforce, ROT0, "Atari Games", "Maximum Force v1.02", 0 ) GAME( 1996, maxf_ng, maxforce, cojagr3k, area51, cojag_state, maxforce, ROT0, "Atari Games", "Maximum Force (No Gore version)", 0 )