CDVD: Correct SCMD error states and init SCMD result

This commit is contained in:
refractionpcsx2 2023-03-23 12:58:22 +00:00
parent 181b05daf0
commit caf8eedd76
1 changed files with 4 additions and 4 deletions

View File

@ -58,6 +58,7 @@ static __fi void SetSCMDResultSize(u8 size)
cdvd.SCMDResultC = size; cdvd.SCMDResultC = size;
cdvd.SCMDResultP = 0; cdvd.SCMDResultP = 0;
cdvd.sDataIn &= ~0x40; cdvd.sDataIn &= ~0x40;
memset(cdvd.SCMDResult, 0, size);
} }
static void CDVDSECTORREADY_INT(u32 eCycle) static void CDVDSECTORREADY_INT(u32 eCycle)
@ -2344,8 +2345,8 @@ static void cdvdWrite16(u8 rt) // SCOMMAND
default: default:
SetSCMDResultSize(1); SetSCMDResultSize(1);
cdvd.SCMDResult[0] = 0x80; cdvd.SCMDResult[0] = 0x81;
Console.Warning("*Unknown Mecacon Command param[0]=%02X", cdvd.SCMDParam[0]); Console.Warning("*Unknown Mecacon Command param Test2 subparams - param[0]=%02X", cdvd.SCMDParam[0]);
break; break;
} }
break; break;
@ -2910,9 +2911,8 @@ static void cdvdWrite16(u8 rt) // SCOMMAND
break; break;
default: default:
// fake a 'correct' command
SetSCMDResultSize(1); //in:0 SetSCMDResultSize(1); //in:0
cdvd.SCMDResult[0] = 0; // 0 complete ; 1 busy ; 0x80 error cdvd.SCMDResult[0] = 0x80; // 0 complete ; 1 busy ; 0x80 error
Console.WriteLn("SCMD Unknown %x", rt); Console.WriteLn("SCMD Unknown %x", rt);
break; break;
} // end switch } // end switch