- count -= rcnts[index].target;
-
- _psxRcntWcount( index, count );
+ {
+ rcycles -= rcnts[index].target * rcnts[index].rate;
+ rcnts[index].cycleStart = psxRegs.cycle - rcycles;
+ }
+ else
+ {
+ rcnts[index].cycle = 0x10000 * rcnts[index].rate;
+ rcnts[index].counterState = CountToOverflow;
+ }