Phaethon

Roadmap

What is in flight and what comes after, read from the forge rather than promised.

In flight

What is moving, read from the forge.

read from git.snalpha.com/alex/phaethon on 27 Sep 2026 · every rung is an issue, every bar is closed over all

Jak X: bring-up complete

milestone 15 · 43 open
567 of 610 rungs landed · 93%

Jak X: Combat Racing runs from a cold boot with its world, sky and actors rendering, and the bring-up scaffolding retired.

JakX Enhanced

milestone 20 · 30 open
113 of 143 rungs landed · 79%

The enhanced preset's eye candy for the Jak X port, one issue per effect, every one a toggle that ships off so the retail preset is untouched (the two-mode rule). Bloom, explosion flashes, sun shafts, heat haze, motion blur, garage depth of field, tonemapping with a per-track color grade, and damage

Renderer: OpenGL to Vulkan

milestone 21 · 2 open
199 of 201 rungs landed · 99%

The renderer conversion, from the 2012-era OpenGL path to a direct Vulkan backend with ray query, in the order issue 2059 sets: SPIR-V shaders under GL 4.6 (landed), the frame replay oracle (landed), an in-house device layer implemented on GL first (landed), the Vulkan backend of that layer with the

Kernel: efficiency

milestone 22 · 2 open
69 of 71 rungs landed · 97%

The runtime's C side made efficient without the GOAL side noticing: the EE thread's frame, the barrier to the render thread, the Overlord's host IO, the loader and the memory card, the frame limiter, and the dead code the port carries. This is the goal the whole arc served (the renderer swap, the mu

Repository: structure

milestone 23 · all landed
34 of 34 rungs landed · 100%

The fifteen-rung restructure of the fork: five words for the product parts, one directory per fork process, a fixed out layout. Approved in full on 2026-09-23.

Release: v0.1.0

milestone 24 · 3 open
22 of 25 rungs landed · 88%

The first cut: a protected tag, the release job that builds and publishes the runtime bundle with its manifest, the releases unit on, the changelog from the train PRs, and the launcher installing from the store.

CI: audit and normalization

milestone 25 · 3 open
4 of 7 rungs landed · 57%

The inherited CI read against what it claims: the short-circuit made symmetric, the false greens closed, the contributor token hardened, one naming scheme, the stale upstream text gone. Every rung rides its own train and is exercised by dispatching the workflow on the train branch first.

Jak 3: visual parity

milestone 17 · closed
7 of 7 rungs landed · 100%

Jak 3 on PC renders and animates like the PS2, in this tree. An issue here closes when its fix is accepted into `develop`; the upstream contribution pipeline is tracked separately by the `state/` labels (staged, submitted, merged-upstream), which is what that axis exists for. So the meter reads pari

Contributor on-ramp

milestone 18 · closed
11 of 11 rungs landed · 100%

An ordered introduction to working in this tree, built from the open issues that are self-contained enough to not need the accumulated Jak X bring-up context. The intended order and the reasoning live in the pinned roadmap issue #71; this milestone exists for the progress meter and the filter view.

After the four goals

In the order it is likely to arrive.

None of it has a date. Each item says where it stands today and what done looks like, so progress can be read rather than promised.

Online multiplayer for Jak X

Jak X shipped with online races, deathmatch and the rest of its multiplayer modes over a service that no longer exists. The port keeps the game's own session, lobby and race code, and the goal is to run those modes again over the port's own networking, driven by the game's code as retail was.

Today

the game's network road runs in loopback on one machine (the runtime's own net manager exchanges its packets with itself), which is how the net-player and net-game-mgr landings are exercised. Nothing crosses a wire yet.

Done looks like

two ports on one LAN race each other through the game's own net game manager, then two across the internet, with the retail modes' rules intact.

First-class mod APIs

Custom levels, texture packs and GOAL-level changes exist today as files placed in the right directories, which is how OpenGOAL's community works with the trilogy. The goal is a documented, versioned surface for mods on the trilogy, and on Jak X once its port is complete, that the launcher installs and manages without touching the tree.

Today

custom levels build from custom_assets, texture packs are written beside them by the launcher and applied at extraction, and any GOAL change is a fork of the source.

Done looks like

a mod installs from the launcher, survives a runtime update, declares what it hooks through a documented API with a version, and is disabled as easily as it was enabled.

macOS release

The renderer runs on Vulkan, so macOS follows through MoltenVK rather than a second renderer. Windows is the daily platform and the Linux build compiles and boots in CI on every landing.

Today

macOS is not built. The CMake presets carry Darwin entries under the one build root, but no machine builds them and no reading has been taken.

Done looks like

a macOS build in the launcher's releases, the oracle's scene set green on it, a full race on Apple silicon at the faithful preset.

Steam Deck

The Linux build on the Deck's GPU at its 1280 by 800 panel, controller-first from the launcher to the race, with the remastered preset's frame cap and upscaler sized for the device.

Today

the Linux build exists and boots; the Deck has not been read, and the launcher is a Windows application.

Done looks like

a full race on the Deck at its cap under the remastered preset, verified from the Deck's own log, the launcher or an equivalent path running on SteamOS, and the game playable without a keyboard from power-on.

Achievements for all four games

Each game gets an achievement set of its own, awarded by the port from the game's own state and kept per profile beside the save data: the story milestones, the collectibles and the times in the trilogy, the races, the arenas and the cups in Jak X. A retail-faithful run and a remastered run both count. The sets are Phaethon's own: the titles, the descriptions, the badges and the unlock logic are written here, since the port's memory layout is not the console's and no console set's logic runs on it as it stands. RetroAchievements' PlayStation 2 sets for the four games (61, 94, 88 and 65 achievements) are a reference for what is worth awarding, not a source: their written policy excludes decompilations and unofficial ports from their service, so there is no account sync, and their text and badges stay theirs.

Not on this page

What is not coming.

  • Sending work back to OpenGOAL or taking its changes: this fork is its own line.
  • A compatibility layer of any kind, at any point.
  • A date for any of the above.
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 f183c49b CI green v0.2.0-rc6 26 Sep 2026