Phaethon

news / / 3 min read

The kernel learns to wait

Where the PlayStation 2 waited quietly, the PC kernel spun whole processor cores asking whether it was done yet. Nineteen changes in three days taught it to wait the console's way.

Two cards compare the second processor's wakes a second, 695 before and 224 after, with every remaining wake having work
Waiting for its real deadline cut the second processor's wakes to 224 a second.
changes in three days
19
processor time for a 0.511 s load
0.109 s
wakes a second
695 to 224
on this page
  1. A study, then a ladder
  2. What changed
  3. The clock inside the sound
  4. What this is and is not

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 debug window over Jak X's main menu, its Threads card showing the main game thread at rest, enlarged beside it
The debug window's Threads card at Jak X's menu: the main game thread at rest, where it once spun a full core waiting for a load.

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)

Sep 24, 2026 · kernel · measurementEvery post
Phaethon

Built with AI in the loop. Phaethon uses AI assistance for speed and accuracy, and holds it to the same bar as every other contribution: every change is read, tested and checked against the console before it lands.

develop 6332c399 CI green v0.2.1 Nov 4, 2026

Phaethon is an unofficial fan project. It is not affiliated with, endorsed by or associated with Sony Interactive Entertainment, Naughty Dog or the OpenGOAL project. Jak and Daxter is a trademark of Sony Interactive Entertainment. You need your own copy of each game. Icons from Lucide, ISC; JetBrains Mono under the SIL Open Font License.

Under construction

This site is still being built.

Nothing links to playphaethon.com yet, so you have found it before it is ready. Some of what it says may be wrong, out of date or attributed to the wrong source. Treat it as a work in progress until this notice is gone.