DEV9: add ATA Idle Immediate (E1) stub

Fixes https://github.com/PCSX2/pcsx2/issues/4358
This commit is contained in:
macmenot 2021-04-12 23:14:49 +12:00 committed by lightningterror
parent 72eddb7286
commit dac2a302ec
3 changed files with 12 additions and 1 deletions

View File

@ -246,6 +246,7 @@ private:
void HDD_SetMultipleMode(); void HDD_SetMultipleMode();
void HDD_Nop(); void HDD_Nop();
void HDD_Idle(); void HDD_Idle();
void HDD_IdleImmediate();
void DRQCmdPIODataToHost(u8* buff, int buffLen, int buffIndex, int size, bool sendIRQ); void DRQCmdPIODataToHost(u8* buff, int buffLen, int buffIndex, int size, bool sendIRQ);
void PostCmdPIODataToHost(); void PostCmdPIODataToHost();

View File

@ -230,3 +230,11 @@ void ATA::HDD_Idle()
DevCon.WriteLn("HDD_Idle for %is", idleTime); DevCon.WriteLn("HDD_Idle for %is", idleTime);
PostCmdNoData(); PostCmdNoData();
} }
void ATA::HDD_IdleImmediate()
{
if (!PreCmd())
return;
DevCon.WriteLn("HDD_IdleImmediate");
PostCmdNoData();
}

View File

@ -58,6 +58,9 @@ void ATA::IDE_ExecCmd(u16 value)
//0xCB //0xCB
//0x25 = HDDreadDMA48; //0x25 = HDDreadDMA48;
//0x35 = HDDwriteDMA48;*/ //0x35 = HDDwriteDMA48;*/
case 0xE1:
HDD_IdleImmediate();
break;
case 0xE3: case 0xE3:
HDD_Idle(); HDD_Idle();
break; break;
@ -165,7 +168,6 @@ void ATA::IDE_CmdLBA48Transform(bool islba48)
//MEDIA LOCK //MEDIA LOCK
//MEDIA UNLOCK //MEDIA UNLOCK
//STANDBY IMMEDIAYTE //STANDBY IMMEDIAYTE
//IDLE IMMEDIATE
//STANBY //STANBY
//CHECK POWER MODE //CHECK POWER MODE