A PlayStation 2 is two machines in one. The main processor runs the game. A second, smaller one handles the disc, the sound and the memory card. When the game needed something from the second processor, it asked and then waited: the hardware would tap it on the shoulder when the answer was ready.
On a PC there is no tap on the shoulder unless the program builds one. In many places, the kernel Phaethon inherited had not. It waited by asking "done yet?" over and over, as fast as a processor core could ask.
A study, then a ladder
A read-only study went through the kernel looking for those spots. Then they were fixed one at a time, nineteen numbered changes in three days, each its own small step. Every step had to answer one question first: could the game notice? A change the game could notice needed a ruling before it went in, and every step had to leave the frame checker's pictures exactly as they were.
What changed
- Loading. While a level loaded, the main game thread spun a full core asking whether the data had arrived. It now waits on a signal, as the console waited on its hardware. A load that took 0.511 seconds still takes 0.511 seconds, but the main thread used 0.109 seconds of processor time doing it.
- The second processor. Idle, it woke about 695 times a second, and 68 percent of those wakes found nothing to do. It now sleeps until its real next deadline: about 224 wakes a second, every one with work.
- The sound mixer had been stepping 42 permanently silent voices, around two million times a second. Skipping them cut the work for each second of stereo sound from 18,632 to about 7,800 microseconds, with the output proven identical to the bit.
- Memory card saves and disc reads stopped holding up other work. On the console both happened in the background; the PC version had done them in line.
- The developer console stopped costing the game thread time: sending to it went from 15.9 milliseconds over a test run to 1.2.

The clock inside the sound
One step had a story inside it. The second processor's clock had been driven by the game's frame rate. At a 120 frames per second cap, Jak X's music fades took 267 milliseconds where the console takes 534, and during Jak X's movies the sound clock stopped altogether. It now runs on its own exact television clock, one field at a time at the NTSC rate for NTSC games and PAL's for PAL.
What this is and is not
These changes free the processor and make the PC wait the way the console waited. They were not meant to raise the frame rate, and nobody has measured that they do. What they do mean is a quieter machine doing the same work: fewer cores busy for nothing, and the console's own timing where the PC had been guessing.
Alex (maintainer, and a mechanical engineer by trade)
