SIF: Kind of revert a SIF timing change made a while back to fix Parappa the Rapper 2

This commit is contained in:
refractionpcsx2 2021-09-23 04:44:23 +01:00
parent ffbfd2c844
commit d73bf834b3
2 changed files with 8 additions and 5 deletions

View File

@ -182,9 +182,12 @@ static __fi void EndIOP()
DevCon.Warning("SIF0 IOP: cycles = 0"); DevCon.Warning("SIF0 IOP: cycles = 0");
sif0.iop.cycles = 1; sif0.iop.cycles = 1;
} }
// iop is 1/8th the clock rate of the EE and psxcycles is in words (not quadwords) // Hack alert
// So when we're all done, the equation looks like thus: // Parappa the rapper hates SIF0 taking the length of time it should do on bigger packets
//PSX_INT(IopEvt_SIF0, ( ( sif0.iop.cycles*BIAS ) / 4 ) / 8); // I logged it and couldn't work out why, changing any other SIF timing (EE or IOP) seems to have no effect.
if (sif0.iop.cycles > 1000)
sif0.iop.cycles >>= 1; //2 word per cycle
PSX_INT(IopEvt_SIF0, sif0.iop.cycles); PSX_INT(IopEvt_SIF0, sif0.iop.cycles);
} }

View File

@ -554,7 +554,7 @@ __fi bool dmacWrite32( u32 mem, mem32_t& value )
new_source = "None"; new_source = "None";
break; break;
} }
DevCon.Warning("32bit Stall Source Changed to %s", new_source.c_str()); //DevCon.Warning("32bit Stall Source Changed to %s", new_source.c_str());
} }
if ((oldvalue & 0xC0) != (value & 0xC0)) if ((oldvalue & 0xC0) != (value & 0xC0))
{ {
@ -575,7 +575,7 @@ __fi bool dmacWrite32( u32 mem, mem32_t& value )
new_dest = "None"; new_dest = "None";
break; break;
} }
DevCon.Warning("32bit Stall Destination Changed to %s", new_dest.c_str()); //DevCon.Warning("32bit Stall Destination Changed to %s", new_dest.c_str());
} }
#endif #endif
return false; return false;