- if ((rcnts[i].mode & 7) == (RcSyncModeEnable | Rc01UnblankReset) ||
- (rcnts[i].mode & 7) == (RcSyncModeEnable | Rc01UnblankReset2))
- {
- rcnts[i].cycleStart = rcnts[3].cycleStart;
- }
+ rcnts[0].cycleStart = rcnts[3].cycleStart;
+ }
+
+ if ((rcnts[1].mode & 7) == (RcSyncModeEnable | Rc01UnblankReset) ||
+ (rcnts[1].mode & 7) == (RcSyncModeEnable | Rc01UnblankReset2))
+ {
+ rcnts[1].cycleStart = rcnts[3].cycleStart;
+ }
+ else if (rcnts[1].mode & Rc1HSyncClock)
+ {
+ // adjust to remove the rounding error
+ _psxRcntWcount(1, (psxRegs.cycle - rcnts[1].cycleStart) / rcnts[1].rate);