One runtime under four cores.
Phaethon is a runtime for the Jak games: the kernel, the renderer, the tools and the launcher that every game runs on. It began as a fork of OpenGOAL's runtime and has been rewritten from the kernel up, accuracy first. It does what the PlayStation 2 did, measured against the console, and does it faster.
The games are its cores. Jak and Daxter, Jak II and Jak 3 stand on OpenGOAL's decompilation; Jak X: Combat Racing was decompiled and brought up here. Each is imported from your own disc and runs on the same kernel, so a fix to the kernel reaches all four.
One kernel
The memory arena, the symbol table, the DMA chains and the disc and sound protocols every game shares, kept as retail shaped them.
One renderer
Vulkan alone, every pass checked against approved reference frames before it lands.
Faithful by default
Every game starts retail-faithful; anything that changes what the console did is a toggle, in a preset of its own.
One launcher
Installs the runtime, imports each disc, keeps everything current, and signs you in to your account.
Rewritten from the kernel up.
Phaethon began as a fork of OpenGOAL's runtime in September 2026. Since then nearly every layer has been added to or rewritten. Jak X: Combat Racing, which upstream had only as a skeleton, plays from start to finish on Phaethon's own kernel.
Renderer
- Vulkan in place of OpenGL, which is gone
- Level of detail and fades as on the disc
- A frame oracle checks every pass before it lands
- Ray-traced shadows and remastered lighting
- DLSS, DLAA, FSR 3.1 and a cutscene upscaler
Kernel and runtime
- Load waits sleep on a signal instead of spinning a core
- The disc's VU0 programs translated by a generator, not by hand
- Textures animated by the disc's own program, across the kernel
- Retail, remastered and speedrun as presets of one settings layer
Timing
- Every game ticks at the disc's 60
- Remastered blends motion at your display's rate
- The frame limiter is gone
Audio and text
- SPU2 reverb
- 5.1 and 7.1 surround
- One subtitle system for all four games
- The disc's movie streams decoded natively
Tools
- A debug window with timing, profiler and capture
- Crash reports, minidumps and a heap audit at every load
- The compiler follows the EE's own arithmetic
- One restructured repository: runtime, compiler, assets
Launcher and services
- A new launcher, not OpenGOAL's, with signed updates
- Sign-in, with play time from each session
- Discord presence from the runtime, Jak X included
- Phaethon's own icons and user folders
Measured, never guessed.
A change lands when the runtime and the console agree, and not before. That rule shapes everything about how the work is done: what counts as evidence, what a review has to show, and what a build has to pass before it reaches a player.
Decompile
The decompiler reads the object code on the disc and writes GOAL source for it. Each file is typed and read against the original until the two say the same thing, and the source is what gets built, so nothing runs that cannot be read.
Compare
A frame oracle holds reference frames from the console's own scenes. Every change that reaches the picture is compared against them before it lands, and a pass that moves a pixel it should not have moved does not land.
Land
Reviewed branches reach the integration line on trains, under one pipeline run and one CI run each. Every runtime change is read through three separate review lenses before it rides. The pipeline's verdict and the CI result travel with the merge.
from the maintainerI do not accept a TODO without an issue number and a reason the work cannot happen now. "Every frame, because why not?" is not a reason. It is a guess, and in a project whose whole claim is doing what the console did, a guess is a defect. Holds inherited from upstream, the shortcuts and workarounds that kept a game booting, are removed on sight. One too large to remove at once gets an issue and is worked down until it is gone. Nothing stays because it happens to work.
Held to the same bar as everything else.
AI assistance is how I work, here and in everything else I build, and most of this work is done with it. It goes through the same three steps as everything else: decompile, compare, land. The line in the footer of every page is the short version; this is the long one.
Tuned for years
Where it is fast and where it lies, what it has to be told and what it has to be refused, and how to make it show its evidence instead of its confidence.
An hour, read
No five months by hand on what it does well in an hour, and no hour of its work accepted without reading it.
Stricter than the repository
The repository's standards are the public ones. Mine add every claim traced to an artifact, every fix landed with the test that would have caught it, and nothing shipped on a tool's word.
the use of ai here is not open to debate · questions about how it is done are welcome and answered · contempt for the fact of it, however loud, gets no reply
One maintainer, a small circle.
Phaethon is maintained by one person, with contributors and testers who bring discs, bug reports and fixes. Development happens on the project's own forge, which is private for now.
Source
The source is not released yet. It stays private until the work proves itself, and may be released then.
Bugs
Write what was observed, the evidence, and what was not verified, with the launcher's and the runtime's versions.
report a bugCommunity
Testers and players compare notes, share captures and report what a disc did.
The Discord server is on its way.from the maintainerI am not a software engineer by trade. I am a mechanical engineer, and Phaethon is a hobby I build in my own time. The trade is why it works: a part is right when it measures right, a tolerance is a number rather than a feeling, and nothing is done until someone else could check it. Phaethon is held to the same standard. Every change is measured against the console before it lands, every claim is traced to something that can be looked at, and nothing ships because it looks finished. That attention to detail is what makes a project like this possible.