RSP: Only use semaphore if not hle code
This commit is contained in:
parent
f3160cdf12
commit
a5e2f43c17
|
@ -39,6 +39,7 @@
|
||||||
#include "x86.h"
|
#include "x86.h"
|
||||||
|
|
||||||
extern UWORD32 Recp, RecpResult, SQroot, SQrootResult;
|
extern UWORD32 Recp, RecpResult, SQroot, SQrootResult;
|
||||||
|
extern BOOL AudioHle, GraphicsHle;
|
||||||
|
|
||||||
/************************* OpCode functions *************************/
|
/************************* OpCode functions *************************/
|
||||||
void RSP_Opcode_SPECIAL ( void ) {
|
void RSP_Opcode_SPECIAL ( void ) {
|
||||||
|
@ -389,9 +390,14 @@ void RSP_Cop0_MF (void) {
|
||||||
case 5: RSP_GPR[RSPOpC.rt].UW = *RSPInfo.SP_DMA_FULL_REG; break;
|
case 5: RSP_GPR[RSPOpC.rt].UW = *RSPInfo.SP_DMA_FULL_REG; break;
|
||||||
case 6: RSP_GPR[RSPOpC.rt].UW = *RSPInfo.SP_DMA_BUSY_REG; break;
|
case 6: RSP_GPR[RSPOpC.rt].UW = *RSPInfo.SP_DMA_BUSY_REG; break;
|
||||||
case 7:
|
case 7:
|
||||||
RSP_GPR[RSPOpC.rt].W = *RSPInfo.SP_SEMAPHORE_REG;
|
if (AudioHle || GraphicsHle)
|
||||||
*RSPInfo.SP_SEMAPHORE_REG = 1;
|
{
|
||||||
RSP_Running = FALSE;
|
RSP_GPR[RSPOpC.rt].W = 0;
|
||||||
|
} else {
|
||||||
|
RSP_GPR[RSPOpC.rt].W = *RSPInfo.SP_SEMAPHORE_REG;
|
||||||
|
*RSPInfo.SP_SEMAPHORE_REG = 1;
|
||||||
|
RSP_Running = FALSE;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 8: RSP_GPR[RSPOpC.rt].UW = *RSPInfo.DPC_START_REG ; break;
|
case 8: RSP_GPR[RSPOpC.rt].UW = *RSPInfo.DPC_START_REG ; break;
|
||||||
case 9: RSP_GPR[RSPOpC.rt].UW = *RSPInfo.DPC_END_REG ; break;
|
case 9: RSP_GPR[RSPOpC.rt].UW = *RSPInfo.DPC_END_REG ; break;
|
||||||
|
|
Loading…
Reference in New Issue