Phaethon

news / / 3 min read

When the console settles the argument

Two versions of Jak and Daxter's ocean code disagreed in a third of their cases. A capture of the console decided it, and by October 13th no hand-translated vector code was left in the game.

A diagram of two disagreeing answers for the ocean's vector code, the hand translation and the interpreter, with a PCSX2 capture between them siding with the interpreter
Two answers disagreed in 1,242 of 4,018 cases, and the console's capture picked one.
of 4
1,242
vertices matched after
512 of 512
scenes the frame oracle checks
797
on this page
  1. The vector units
  2. Two answers
  3. Asking the console
  4. The frame oracle
  5. What it is checked against

"Faithful by default" is easy to say. This is a story about how it gets checked.

The vector units

The PlayStation 2 had two small, fast vector processors that did the heavy math for the picture: turning, bending and lighting thousands of points a frame. The games carry their own programs for them, written in the chips' own language, and those programs depend on the chips' exact timing. Some results arrive a few steps after they are asked for, and a program that reads too early gets the old value.

OpenGOAL translated several of these programs into C++ by hand. That works, as long as every timing detail was translated right.

Two answers

Phaethon took a different route: an interpreter that runs the vector programs as written, built from the chips' own timing rules. Run against upstream's hand translation of Jak and Daxter's ocean, the two disagreed in 1,242 of 4,018 cases. One of them was wrong. Which one?

Asking the console

The answer came from a capture of the game running in PCSX2, the PlayStation 2 emulator, at Sentinel Beach. It sided with the interpreter. The hand translation read the result of a division one step before the hardware delivers it, which shifted the ocean's reflection at every fourth column of its texture. With the code generated from the console's own program, the ocean matched the capture on 512 of 512 points.

Sentinel Beach's ocean in Jak and Daxter twice, as PCSX2 draws it on the left and as the port drew it before the fix on the right
The capture that decided it: PCSX2 on the left, and on the right the port on October 11th, before the fix, with the reflection shifted.
The reflection, every fourth column out of place, and then in place.

By October 13th no hand-translated vector program was left in the shipped game. Every one now comes from the disc's own program.

The frame oracle

The ocean was settled by hand, but most changes are checked by a machine. The frame oracle saves the full state of a moment in a game, draws that moment again later without the game running, and compares the picture with a reference a person approved. A change that moves pixels past tolerance is refused before it lands.

It started with seven scenes in September, all matching to the pixel. It now checks 797. Many compare the game with itself: one picture must be identical to another, or never brighter than it. When a reference picture changes, the approval is written down with its reason, and PCSX2 is named in those approvals 46 times. One example: sparks from an impact were approved at 129 strips, where the console draws 115 to 125 and the port had been drawing 239.

What it is checked against

The reference is PCSX2 and the discs' own code, not a recording from real hardware. No capture from a real console exists yet, and getting one is on the list. Until then, faithful means faithful to the best record of the console there is, checked on every change.

Alex (maintainer, and a mechanical engineer by trade)

Oct 13, 2026 · renderer · verificationEvery 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.