Jak X: Combat Racing now plays from its first race to its credits on Phaethon. OpenGOAL, the project Phaethon grew out of, had never gotten it to boot. This is how it got from there to here, and how a fork that set out to bring up one racing game ended up rebuilding much of the engine under all four.
Where it started
Phaethon began in July 2026 as a staging copy of OpenGOAL, a place to prepare fixes for Jak II and Jak 3 and send them back upstream. Six days in, on July 22nd, it turned to Jak X.
What upstream had for Jak X was a collection of other people's unfinished work, merged so it would not be lost. Of its 762 source files, 554 were empty placeholders. The kernel's main loop, the part that hands work to everything running in the game, was a note saying the work was still to do. Asked to run Jak X, the program stopped with a message that the game was not supported.
Ten weeks of firsts
Bringing up a game this way means decompiling its code, translating it back from the disc into something readable, and building whatever the game expects to find underneath it. Every step was a first:
- July 22nd: the kernel's main loop runs, and a Jak X process is alive for the first time.
- July 23rd: the game runs for thirty seconds in a window without falling over.
- July 24th: it reaches brdroom, the first level with real geometry in it.
- July 28th: a race track streams in piece by piece, the way the console read it from the disc.
- August 24th: the menus draw for the first time. No menu had ever rendered before.
- August 28th: the adventure screens work, with the game's own network code running offline.
- September 7th: the first full lap, and a crash at the lap line fixed.
- September 8th: the first full race against computer drivers, all the way to the results.
- September 30th: the Grand Prix road is in.

By October 1st the bring-up milestone closed with 636 items done. Jak X booted, raced, and moved through its menus and cups. What it could not yet do was finish.
Growing past Jak X
Jak X kept exposing things the rest of the project had gotten wrong. Watching a race in an emulator, the scenery in the distance blended its detail smoothly, while Phaethon drew everything at full detail; that started the level-of-detail work that now covers all four games. Jak X was the game most exposed to timing that drifted from the console's sixty ticks a second, and fixing it fixed the trilogy too. The flat teal water in its Dirt Stadium led to rewriting how animated textures are drawn. And it was the test bed for the move to Vulkan.
Upstream's kernel was far more hacks, shortcuts and workarounds than I had realized.
On September 3rd the fork stopped sending work upstream and declared Jak X its primary mission. Two weeks later the project took the name Phaethon, and the work began to spread. In the first half of September, 98 percent of everything merged into the game's code was Jak X work. By mid-October it was 19 percent; the rest was the kernel and the renderer, for all four games. The launcher, the website and accounts grew beside them.
The last stretch
The ending came from a playtester's run. Starting on October 2nd, a second person played through the cups and filed around twenty reports along the way.
The final cup ends in a boss battle, and until October 6th that battle ran an ordinary lap race's code. It got its own players, its own start and its own verdict, and on October 7th a win finally reached the gold medal and the credits.
The credits crashed twice, both times in cloth. On October 8th the playtester beat the final boss, watched the ending, and hit a crash when the credits reached Kleiver: the cloth simulation his costume uses had never been brought up. That was fixed the same day. The next run crashed in the same place for a different reason. The cloth's arrays told the game that every entry sat in the same spot, so it read the first one over and over. That fix landed on October 9th, and the credits rolled.


What is left
There is still work to do, though none of what is known stands between a player and the credits. Future playtests will expose a lot of what still needs doing. Online play is the big one. Today the game's own network code runs, but over a loopback on one machine: nothing crosses a wire yet. That is the next road.
Alex (maintainer, and a mechanical engineer by trade)
