@titeguy3 - Thanks for that i wasnt sure why, i had no idea it took it from the system.
Ya know, now that I think about it I bet it just counts processor ticks. That would explain why the multi-core processors make the timer run slower.
This is my theory: The processor reports itself as running at ~34 Mhz (What the PSX runs at). So an internal timer counts out ~34Mil worth of ticks before incrementing the timer 1 second, right? This is the most reliable way to keep track of time when you are using a fast system than the one intended, don't have access to the system's clock, or you encounter lag that slows down graphics (so you can't count frames).
However, for multi-core processors, they'd report their speed at, say, 3Ghz. But each core reports that and it somehow gets translated as 6Ghz. Now the timer, which is running on only one core, is waiting for 6Bil ticks which takes 2 seconds rather than one. When you switch to a single-core affinity only one core reports its speed at 3Ghz so the timer waits for 3Bil ticks to pass and the timer counts down correctly.