The Jak and Daxter PC port just hit a major ARM64 milestone

OpenGOAL version 0.3.5 finishes converting load and store instructions to ARM64, paving the way for native Jak and Daxter on Apple Silicon and Snapdragon chips.

The Jak and Daxter PC port just hit a major ARM64 milestone
OpenGOAL

The OpenGOAL project has released version 0.3.5 of its Jak and Daxter PC port. This update brings the decompilation effort one step closer to full native ARM64 support by finishing the conversion of all load and store instructions to the ARM architecture.

Naughty Dog wrote 98 percent of the original PlayStation 2 trilogy in GOAL. This was a custom LISP dialect created by studio co-founder Andy Gavin. It was a direct evolution of the GOOL language used to build the original Crash Bandicoot games on the PS1. Because GOAL was so specialized and tied directly to the PS2 hardware, porting the games to modern platforms requires more than standard emulation.

The PS2 had a unique architecture with its Emotion Engine and Vector Units. GOAL was designed to feed data to those Vector Units as fast as possible. Replicating that timing on modern hardware without the overhead of an emulator like PCSX2 is the main draw of the OpenGOAL project. The team first decompiles the original PS2 code into human-readable text. Then they run it through their own custom compiler to generate native executables. Up until recently, the primary target was x86-64 processors.

Translating LISP for Apple and Snapdragon

Getting the engine running natively on ARM64 opens up a massive amount of hardware. Apple Silicon Macs, modern Windows on ARM laptops using Snapdragon X chips, and high-end ARM-based retro handhelds all benefit from native code over x86 translation layers. Converting the load and store instructions is a major technical hurdle for the compiler.

Native execution means lower power draw and better performance on devices like the Odin 2 or Raspberry Pi 5. Emulating the PS2 on ARM devices usually requires AetherSX2 or NetherSX2 on Android. A native port bypasses the emulator entirely. You get widescreen support, higher framerates, and better camera controls without the heavy CPU requirements of emulation.

Splash screens and libcurl fixes

The version 0.3.5 release includes a few other practical fixes for the engine. The game will now fall back to the English splash screen before accessing the map if a localized version is missing. The build process also disables libpsl when compiling libcurl. This resolves some dependency headaches for developers compiling the project from source. The automated controller database got its periodic update as well, ensuring newer gamepads map correctly right out of the box.

Bring your own ISO

OpenGOAL is a pure engine port. It does not include any of Naughty Dog's copyrighted assets. To actually play the game, you need to provide a legally obtained PlayStation 2 copy of Jak and Daxter: The Precursor Legacy, Jak II, or Jak 3. The extraction tool supports retail PAL, NTSC, and NTSC-J discs, including Greatest Hits versions. It extracts the textures, models, and audio, then repacks them into a format the modern PC port understands.

The official OpenGOAL setup guide.

You cannot use the PS3, PS4, or PS5 re-releases with the extractor. The file structures in those versions are different. The extraction is a one-time process. Once the assets are compiled, you launch the native executable directly from your desktop.

The project has been steadily working through the trilogy for years. Jak and Daxter is fully playable from start to finish. Jak II is largely complete and playable. Jak 3 is currently the main focus of the active decompilation effort. As the ARM64 compiler matures, the list of devices capable of running the entire trilogy at 60 frames per second will only grow.