Avoid triggering SYNC ge signals.

Fixes #5806, bcause it avoids rescheduling at the signal, which it should
not do.  Possibly this is incorrect for all GE signals, but we don't need
to trigger any behavior on a sync anyway.
This commit is contained in:
Unknown W. Brackets 2014-04-08 22:20:33 -07:00
parent 9d99aaaeaf
commit 9c75c1e6fd

View file

@ -823,6 +823,10 @@ void GPUCommon::ExecuteOp(u32 op, u32 diff) {
ERROR_LOG_REPORT(G3D, "Signal with Pause UNIMPLEMENTED! signal/end: %04x %04x", signal, enddata);
break;
case PSP_GE_SIGNAL_SYNC:
// Technically, this ought to trigger an interrupt, but it won't do anything.
// Triggering here can cause incorrect rescheduling, which breaks 3rd Birthday.
// However, this is likely a bug in how GE signal interrupts are handled.
trigger = false;
currentList->signal = behaviour;
DEBUG_LOG(G3D, "Signal with Sync. signal/end: %04x %04x", signal, enddata);
break;