Star on GitHubStar1.4k stars

Case study

OpenGOAL: recovering GOAL code and rebuilding the Jak games

Reconstructs readable GOAL code from the original Jak binaries and compiles it with a new GOAL compiler for modern PCs. Its workflow combines a specialized decompiler, manually supplied type information, asset extraction and an interactive development runtime.

Targets
Game
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Sources reviewed

Requirements & limits

  • Prerequisites: Requires the user’s original PS2 game copy and extracted assets. The README covers retail PAL, NTSC and NTSC-J editions, including Greatest Hits, and excludes later PS3/PS4/PS5 releases.
  • Prerequisites: The supported runtime is x86-64 on Windows, Linux and macOS. The macOS guide requires Rosetta 2 on Apple Silicon and lists macOS Sequoia; native ARM64 builds are experimental and unsupported. No mobile release is planned.
  • Prerequisites: Development uses C++20, CMake, NASM and platform libraries, then the project’s asset-extraction and GOAL compilation steps. The documented task commands need the corresponding task runner; runtime code editing is a development feature.
  • Scope: The pinned README reports Jak 1 as complete, Jak 2 as beta with remaining issues, and substantial work still needed for Jak 3.
  • License: ISC license for project work; original game assets and third-party components retain their own rights.

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · open-goal/jak-project · Revision 32c3cf7
  2. CMakeLists.txt GitHub · open-goal/jak-project · Revision 32c3cf7
  3. LICENSE GitHub · open-goal/jak-project · Revision 32c3cf7
  4. docs/setup/system/linux.md GitHub · open-goal/jak-project · Revision 32c3cf7
  5. docs/setup/system/macos.md GitHub · open-goal/jak-project · Revision 32c3cf7

More in Games

All 318 entries in GamesGames case studies (239)

↑↓ move↵ open⌘↵ new tab