Skip to content
Phaethon

docs / play / the-launcher

The launcher

Phaethon's launcher is the Windows desktop application that sits between you and the games. It installs the Phaethon runtime and keeps it current, imports each game from your own disc image and builds it on your PC, keeps a library of the four games with each one's settings and play time, and starts them. Getting started covers installing it and importing a first disc; this page describes what each part does once it is running.

What the launcher is and is not

  • It installs and updates the runtime. The runtime, gk.exe together with the extractor.exe that imports discs, comes from Phaethon's store at dl.playphaethon.com. The launcher downloads it, checks every file against the store's manifest, and updates it when the store publishes a new version.
  • It imports discs. Import runs the runtime's extractor over your disc image in three stages, extract, decompile and compile, and records what it built.
  • It keeps your library and launches the games, each with its own preset, arguments and record of play.
  • It ships no game data. Nothing from the discs comes with the launcher or the runtime; every game file is extracted from your own image and built on your own PC.
  • It does not need an account. Installing, updating, importing and playing all work signed out. Signing in is optional and is covered under Your account below.
  • It reaches only Phaethon's own servers. The store, the sign-in service at auth.playphaethon.com and the account service at api.playphaethon.com are fixed in the launcher, and no setting points it anywhere else.
  • It does not import memory cards yet. The Disc tab on each Game page has an Import from memory card button for PlayStation 2 and PCSX2 cards, disabled until that importer lands. The sidebar's Forum, Friends, Messages and Achievements entries are marked SOON: they wait for the Jak X online service.

The library

Home is the library: a large card for the selected game at the top, then one card per game in release order, Jak and Daxter: The Precursor Legacy, Jak II, Jak 3 and Jak X: Combat Racing. Click a card to select it; Play, the Game page and the bar at the foot of the window all follow the selection.

Each card shows the game's title and year, a status chip, when you last played it, your total play time, and the preset it boots on, "Retail-faithful preset" or "Remastered preset". Jak 3's card also carries a BETA chip and Jak X's an IN DEVELOPMENT chip. The selected card has a gold border and a SELECTED chip.

Status chip What it means
Runtime not installed There is no gk.exe in the runtime folder. Every card is dimmed and does nothing, and the top card reads "Install the runtime to play", until the runtime is installed.
Disc not imported The runtime is there, but this game's data is not: the launcher has no import on record and finds no built game in the install folder.
Rebuild needed The game was built under a runtime that the installed one has changed; see Rebuilds after a runtime update below.
Ready to play The runtime is installed and the game is built for it.
Running The game the launcher started is running.

There is no separate importing state on a card. While an import runs, the bar at the foot of the window names the game and the stage it is in ("Stage 2 of 3: decompile") and its button becomes CANCEL; the Disc tab on the Game page shows the same stage with the extractor's latest line.

On the selected card, small buttons at the bottom right open what the card needs next: a disc button (Import the disc) while the disc is the one thing missing, a rebuild button (Rebuild for the installed runtime) when the runtime has outdated the build, and Addons and Game settings once the game is ready to play. The bar's main button follows the same state: INSTALL RUNTIME, UPDATE when the runtime has files to update, IMPORT ISO, REBUILD AND PLAY, or PLAY.

While a game the launcher started is running, the top card becomes its session card under NOW PLAYING: what you are doing as the runtime's session journal reports it (at the title screen, in the menus, racing on a named track, in a cutscene), the journal's last line, a clock, and your play time with this session on it. The library waits for the game meanwhile. No card can be selected, imports, rebuilds and uninstalls are refused, each card's tooltip names the running game, and the bar reads the game, the time and the activity, such as "Jak 3 running, 12 min". When the game exits, a toast gives the session's length and where it ended; a session under a minute gets none. A game started some other way than the launcher's Play has no session card.

Installing it, the setup, and where things live

The install wizard

The launcher installs from PhaethonLauncher-Setup.exe, a wizard that installs it for your Windows account alone, without administrator rights, into %LocalAppData%\PhaethonLauncher. That folder cannot be changed, since the updater keeps the launcher there. The wizard creates Phaethon shortcuts in the Start menu and on the desktop, says on its first page whether it is installing, updating, reinstalling or downgrading, keeps your settings, the runtime and your saves through an update, a reinstall or a downgrade, and waits while the launcher is running.

Phaethon's one entry in Apps and Features uninstalls it. The uninstaller removes the launcher's folder and shortcuts and offers three more choices, all unchecked: the launcher's settings, the game runtime's settings and cache, and your game saves. The runtime and the games the launcher installed stay in their folder either way.

The first-run setup

The first start opens a setup of five pages, and every start opens it again until you finish or skip it. Reset App in Settings brings it back too.

  1. Welcome to Phaethon. Get started walks the pages. Skip all keeps the saved settings, the defaults on a first start, and goes straight to the last page.
  2. Where should Phaethon live? The install folder, %UserProfile%\Phaethon by default, a folder your Windows account can write without administrator rights: one folder for the runtime and all four games. A launcher whose settings already name a folder, such as C:\Jak from an earlier version, keeps it, and nothing moves. If Windows gave your account no user folder, there is no default, and the page asks you to choose one with Browse. The page puts the runtime at about 300 MB and each imported game at about 5 GB. It warns about a path that is too long, a removable or network drive, a folder inside Program Files or Windows, and a folder inside OneDrive, Dropbox or iCloud Drive; a folder it cannot write to keeps Next disabled.
  3. A few preferences, all four on by default:
  4. Discord presence: your Discord status names the game and what you are doing in it, as described under Presence, telemetry and logs below.
  5. Stay signed in: keeps your Phaethon sign-in between starts, as a token in Windows Credential Manager, never a password. Settings calls this Auto Login.
  6. Check for updates on start: the runtime's update check each time the launcher starts. The launcher checks for its own updates either way.
  7. Send crash and usage reports: a crash report when the launcher itself crashes, and your play sessions while you are signed in, as described under Presence, telemetry and logs below. Settings has the same switch under Launcher, Privacy.
  8. Your Phaethon account. Sign in, Create an account, or Later.
  9. You're all set. Without a runtime, Install runtime opens the install dialog on the folder from page 2, and Explore first leaves it for later; Install runtime on the Home page does the same. With a runtime already there, Finish closes the setup.

Nothing you choose is saved until that last page's button. The setup does not ask how thoroughly to verify files; that stays at the full check until you change it in Settings.

Where things live

The install folder holds the runtime and everything each game is built into. <game> is jak1, jak2, jak3 or jakx.

Under the install folder What it holds
gk.exe, extractor.exe and the rest of the runtime The runtime itself, at the top of the folder.
data\iso_data\<game> The extracted disc.
data\decompiler_out\<game> The decompiler's output, which a rebuild of the game code alone reads.
data\out\<game> The built game the runtime loads, under iso, with build-keys.json recording the runtime it was built under.
data\custom_assets\<game> Texture replacements composed from your packs, and upscaled cutscenes under movies.
texture-packs\<game>\<id> Installed texture packs.
tools\<name> A mode's tools, such as the cutscene upscaler.
_pre-update-backup Files a runtime update replaced, kept seven days.

The launcher's own files are in %AppData%\PhaethonLauncher:

File What it holds
settings.json Every setting, with one record per game.
download-state.json Where a runtime download stands, so a paused one resumes.
verified-manifest.json The last check's file hashes, so an update check does not hash unchanged files again.
sessions-outbox.json Sessions waiting to be reported to your account, queued while you are signed in and Send crash and usage reports is on.
crash-reports-outbox.json Crash reports waiting to be sent, queued while Send crash and usage reports is on. Turning the switch off empties it.
running-game.json The game the launcher started, so a launcher opened again picks it back up.
settings-recovery.log A line each time settings.json could not be read at start.
logs\ Crash logs.

Launchers from before the Phaethon name kept these in %AppData%\JakLauncher. The first start of a newer version copies that folder over, writes migrated-from-JakLauncher.log in the new one, and leaves the old folder as it was.

Two more folders belong to the runtime, not the launcher: %AppData%\Phaethon\<game> holds each game's own settings, under settings, and its saves, under saves; %LocalAppData%\Phaethon holds the runtime's caches. Your sign-in, while Stay signed in keeps it, is in Windows Credential Manager under an entry whose name starts with JakLauncher_.

Settings, Runtime has the install path and, for anyone building the runtime from source, Use a local Phaethon build: Play then starts gk.exe from a local folder and passes a local project folder as --proj-path, and a game built that way is never asked to rebuild. Settings, Danger Zone holds the rest, all of it locked while a download runs:

  • Repair Files checks every file against the store and downloads again anything missing or different.
  • Clear Decompiler Output deletes every game's decompiler_out folder; imported games keep playing.
  • Move Install moves the install folder somewhere else.
  • Uninstall Runtime deletes the runtime from the install folder; imported games and their discs stay.
  • Reset App clears every setting and signs you out; game files are kept.

Updates

The launcher

The launcher updates itself through Velopack from the store's release feed, and it checks at every start whatever the update switches in Settings say. A newer version brings a "Launcher update available" toast and, on the bar, the new version with an Update Now link. Update Now downloads it, Velopack checks the download against the size and SHA-256 the feed declares, and the launcher restarts into the new version; the first start after it offers the list of what changed. Update Now is refused while a runtime download is running.

The launcher will not update from a feed that is not https, that names another package, that lists no full release, or that gives a package no SHA-256, and its toast says which rule stopped it. A copy that Setup did not install, such as one run straight from a build folder, cannot update itself at all and says so when you check.

Releases are signed with Azure Artifact Signing when the release job has its signing identity, and published unsigned otherwise; each release's notes end with a line reading signed: true or signed: false. An unsigned installer meets Windows SmartScreen's "Windows protected your PC" and needs Run anyway, and a signed one can still meet SmartScreen's warning for an unrecognized app while it is new.

The runtime

With Auto-Update on (the setup's Check for updates on start) and Check for Updates on Launch on beneath it, as both are by default, each start fetches the store's manifest and checks the installed runtime against it. Files to update show on the bar as "Update available" with their count, and its button reads UPDATE. The switches are in Settings, Launcher, Updates and downloads, and take effect when you press SAVE on the bar:

Setting What it does
Auto-Update Off, the launcher never checks for runtime updates on its own, and Play starts the game without touching the network. Check for updates now still works.
Check for Updates on Launch Under Auto-Update. Off, the start skips the check and Play checks instead, at most once every 12 hours; files to update bring an Update Available dialog with Play Anyway and Update.
Quick update checks The verification level, below.
Keep backups of replaced files Copies each file an update replaces into _pre-update-backup in the install folder, kept for seven days.
Bandwidth limit (Mbps) 0 means unlimited.

Check for updates now runs a check by hand, at most once every ten minutes; Reset cooldown clears the wait.

A runtime download can be paused, resumed and canceled, and Cancel & Remove deletes what it downloaded. When the store is busy, a file is asked for again up to six times over about half a minute before the download fails. If the store publishes a new runtime while yours is downloading, the download starts over on the new version rather than finish a mix of two. Before the launcher calls the runtime updated, it hashes every file it downloaded against the manifest, and a file that does not match fails the download by name. The "Runtime updated" toast then names the version and what the update means for each game you have imported, and See what changed opens the runtime's changelog.

Rebuilds after a runtime update

Each game is built by the runtime's own tools, so a runtime update can change what the build should be. The store's manifest carries two build keys per game, one for the decompile stage and one for the compile stage, and every import or rebuild writes the keys it ran under beside the build. After an update the launcher compares them:

  • Both keys unchanged: nothing to do.
  • Only the compile key changed: the game code is compiled again from the decompiler's output, or both stages run if Clear Decompiler Output has removed it.
  • The decompile key changed: both stages run again.
  • Keys missing on either side: both stages run again when the runtime version changed, as they do for a build with no record at all.

The card and the Game page then read Rebuild needed, and REBUILD AND PLAY runs those stages before it starts the game. A rebuild works from the disc already extracted and does not read your disc image.

Verification levels

Update checks compare what is on disk with the store's manifest by SHA-256, at one of two levels:

  • Full, the default, hashes every file the manifest names. A file whose size and last-write time match the last check's record is taken from that record rather than hashed again.
  • Quick, the Quick update checks switch, hashes only the files the store marks as required and skips the bulk of the install. When the store's manifest marks none, that check runs in full instead and says so with a "Quick mode auto-promoted" toast.

To go further, Run Full Verify Now on the same card, or Repair Files in the Danger Zone, hashes every file with no shortcut, ignoring the recorded hashes too, and downloads again anything missing or different. A fresh install is always checked in full.

Your account

Signing in is optional. Every game plays the same signed out, and installing or updating the runtime needs no account.

Signing in. Choose Sign In in the sidebar, or Sign in on the setup's account page. The launcher asks Phaethon's sign-in service for a code and shows it; Open browser takes you to the sign-in page, where you confirm the code, and the launcher finishes by itself once you have. Create an account is the same flow: choose Register on the page that opens, then come back. You type your password on Phaethon's page, never in the launcher, which never sees it. A code that runs out before you confirm it offers Start over.

What signing in changes.

  • The sidebar's Account entry opens your profile: your display name, which you can edit (1 to 32 characters; other players see it), your username, your email and whether it is verified, when you joined, and your play time. The play time is Phaethon's, marked From Phaethon, once the account service answers, and this PC's own, marked On this PC, until then or whenever the service cannot be reached. Your games lists each game's play time, last play, session count and saves; the saves column reads Not backed up, since the launcher does not upload saves yet. Achievements are marked SOON.
  • Each game session you play while signed in, with Send crash and usage reports on, is reported to your account. A report holds a session id, the game, when the session started and ended to the second, the seconds played, and this PC's name. Reports wait in sessions-outbox.json and go out at every sign-in and after every session; one that is not delivered stays queued for the next try, and one made under another account waits until that account signs in on this PC again. A session played signed out is never reported and counts toward this PC's totals only. With the switch off, a session counts toward this PC's totals but is not queued, and nothing queued is sent; sessions already queued stay on this PC until the switch is on again and their account signs in.
  • With Stay signed in on (Auto Login in Settings), the sign-in is kept between starts as a token in Windows Credential Manager for your Windows account. Turning it off deletes the stored token, and the next start is signed out.

Signing out. Sign out, in the sidebar or on the profile's Security tab, forgets your sign-in on this PC and ends the launcher's session with Phaethon; your games, saves and settings stay as they are. The launcher holds only its own sign-in, so Sign out everywhere opens your account on the web, where your sessions are listed under Account security. Your password, your email and how you sign in are changed there too, through Manage your account on the web.

What is sent. Signed out, nothing about you is sent except a crash report when the launcher itself crashes, which carries no account. Signed in, your play sessions are sent as well. Both stop under Send crash and usage reports in Settings, as Telemetry below describes. The launcher talks to three addresses, all fixed in it: the store at dl.playphaethon.com for the runtime, its own updates and the changelogs; the sign-in service at auth.playphaethon.com; and the account service at api.playphaethon.com for crash reports and, signed in, for your profile, your play time and the session reports above. Phaethon's privacy page says what the services keep and how to have it removed.

Per-game settings

The Game page shows the selected game; pick another on Home. Its header gives the game's status and when you last played it, then either what you are doing right now, while the game runs, or your play time and a summary of the last session. The tabs are Play, Display, Audio, Controls, Game and Disc, plus Debug Bar while the launcher's debug tooling is on. Changes on this page save as you make them.

Play holds the launcher's own choices for the game:

  • Remastered. Unchecked, the game boots retail-faithful and the launcher passes no preset at all. Checked, Play passes --preset remastered to the runtime and the game boots on its remastered preset, which, as the checkbox's hint puts it, keeps its own settings file beside the retail-faithful one. Settings that older launchers saved under the name Enhanced open as Remastered. The individual toggles are on Settings and the remastered toggles.
  • Debug mode, shown only while Settings, Launcher, Enable debug tooling is on, adds -debug, which opens the runtime's debug tooling (Debug window guide). With debug tooling off, the choice is kept but not passed.
  • Extra launch arguments go after the standard boot arguments, in the order written, and are saved when the box loses focus. They are split at spaces, so no single argument can contain one.
  • What Play runs shows the exact command line Play starts, which Getting started explains.

Display, Audio, Controls and Game edit the game's own settings, the same files its in-game menus write under %AppData%\Phaethon\<game>\settings, for the preset Play boots: pc-settings-remastered.gc while Remastered is checked, pc-settings.gc otherwise. Each tab opens with a heading naming the preset and its file, such as "Remastered preset, pc-settings-remastered.gc", and checking or unchecking Remastered switches the tabs to the other file at once. Mode and Display, on the Display tab, are kept in display.json, which both presets share. The game writes each preset's file the first time it runs on that preset, so these tabs stay locked until then ("Import the disc first" before an import, then "Play Jak 3 once to unlock", or "Play Jak 3 remastered once to unlock" with Remastered checked, with the game's own name), and they lock again while the game runs, since it writes its settings back when it exits. A change reaches the game the next time it starts. The Game tab has a Discord rich presence box for Jak 1 to 3; Jak X does not send presence of its own yet.

Disc holds the disc image path, which Browse picks, with Import, and Uninstall, which removes the game's imported data after telling you how much and where; the disc image, your saves and the runtime stay. Below them are the import record ("Imported" with the date and the image's name, or "Not imported by the launcher."), the saves folder with Open saves folder, and the disabled Import from memory card.

Addons, reached from the sidebar or the selected card, hold the rest of a game's choices:

  • Modes are treatments the launcher prepares on your PC. Jak X has one, AI-upscaled cutscenes: Prepare fetches the upscaling tools, Upscale runs each of the game's 43 pre-rendered clips through a small model on your GPU at four times the size, and Use in game, available once a clip is done, has Play pass the upscaled folder to the game with -movies.
  • Texture packs are installed per game and switched on and off in a layering order, later packs winning where two overlap; switching one rebuilds the game. Settings and the remastered toggles has the details.

All of it lands in the game's record in settings.json: the preset, debug mode, extra arguments, the disc image path, when and from which image the game was imported, the modes switched on, the texture packs in their order, when you last played, your total play time, and the last session (when it started, how long it ran, what you were doing when it ended, and the last race).

Presence, telemetry and logs

Discord presence. While Discord runs on your PC, the launcher sets your Discord status through it: "Browsing the launcher" in the launcher, "Updating client" with a percentage during a runtime download, and, while a game the launcher started runs, the game's full title over what you are doing, with Discord's timer counting from the session's start ("In game" alone if the runtime kept no session journal). It updates at most once every five seconds. Turn it off with the Discord presence switch in the setup, or in Settings, Launcher, with Show what you are playing in Discord and then SAVE; the presence stops when the save lands. Jak 1 to 3 have their own presence setting in each game's options, separate from the launcher's.

Telemetry. One switch, Send crash and usage reports, covers everything the launcher reports. It is on by default, also after an update from a launcher that did not have it, and it sits in Settings, Launcher, under Privacy, and on the setup's preferences page. While it is on, two things are sent. When the launcher itself crashes, it sends Phaethon a crash report, signed in or not: the launcher's version, the runtime's version, the Windows version, when the crash happened, what the launcher was doing, the error's type, message and stack, and the last lines of each game's launcher log. The report waits in crash-reports-outbox.json and goes to the account service at the next start, or as soon as the crash dialog closes if the launcher carries on. It carries no account, no machine name and no identifier that persists from one report to the next: before it is queued, your PC's name, your Windows user folder, your install folder, your disc image paths, and your account's username, email and display name are replaced in its text by placeholders. While you are signed in, your play sessions are sent to your account as well, as described under Your account above. Turn the switch off and save, and nothing is sent: the queued crash reports are deleted, no new session is queued, and sessions already queued stay on this PC. The crash dialog and the crash log on your PC work the same either way. The launcher collects no other usage statistics.

Logs.

  • Crash logs. When the launcher hits an error it did not expect, a Something went wrong dialog shows the details, with Copy to clipboard, and saves them to %AppData%\PhaethonLauncher\logs\crash-<date>-<time>.log, or to %AppData%\JakLauncher\logs on a launcher from before the Phaethon name. Nothing uploads the log file itself; what is sent while Send crash and usage reports is on is the crash report described under Telemetry above.
  • The launcher log. One per game, kept in memory and cleared when the launcher restarts: every line an import printed, runtime downloads, sign-in and account failures, and the game's output while its console is hidden. It needs debug tooling (Settings, Launcher, Enable debug tooling, then SAVE), and then opens from Settings, Debug, Open log, from the bar's View session log link, or from VIEW LOG during an import. Copy takes the whole log as plain text.
  • The game's own log is the runtime's, not the launcher's; Reporting a retail divergence says where it is and what to attach from it.
  • The launcher's version is in the About panel, the ? button in the title bar.

What to attach. A difference from how the PlayStation 2 game behaves is a divergence: see Reporting a retail divergence. A problem with the launcher itself goes through the issue forms as a bug report: give the launcher version from the About panel and what you clicked, in order, and attach the newest crash log if the dialog appeared, or the launcher log taken with Copy if debug tooling was on. Launcher troubleshooting lists the launcher's own messages and what each one means.

Phaethon is a hard fork of OpenGOAL's jak-project. Naughty Dog made the games; you need your own copy of each. built from the wiki · 28 Sep 2026
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-rc7 26 Sep 2026

The Forgejo mark is by Caesar Schinas, CC BY-SA 4.0. 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.