Frequently Asked Questions
General Questions
How do I play it?
You will need your own legitimately obtained copy of the original game. The Jak games are not rare and can be found used for very affordable prices at a variety of second-hand and online stores.
Example Jak and Daxter listing (THIS IS NOT AN ENDORSEMENT).
We encourage you to use our Launcher which simplifies the installation and updating process. You can find a link to get this from the homepage at: https://opengoal.dev.
Alternatively, you can use the latest release from our GitHub repo https://github.com/open-goal/jak-project/releases and provide the path to your ISO like so - ./extractor[.exe] <path-to-iso>
. Once this completes, you should be able to run gk[.exe]
to start the game.
We support all retail versions of the original Jak and Daxter: The Precursor Legacy and Jak II for PS2. For more details on how your version of the games matter, see this page. There is no planned support for early builds, demos or PS3, PS4 or PS5 versions.
What are the minimum requirements?
These are the minimum requirements for the project at the time of writing:
- An operating system that we support
- Windows 10 / 11
- A Linux distro that is still atleast in LTS (we build with Ubuntu 20.04)
- An Intel Mac running atleast BigSur
- x86-64 CPU with AVX support.
- Most, if not all, 64-bit CPUs should work. OpenGOAL has a very small CPU footprint, so most modern CPUs will run the game fine.
- Graphics card that supports OpenGL 4.3 (or OpenGL 4.1 in the case of macOS).
- If you have an AMD Radeon card, updating your AMD drivers to at least version 22.7.1 is recommended. Older driver versions or other AMD cards will be running at a disadvantage.
- At least 2 GiB of available RAM for the game is recommended.
- You might experience slower loads with a hard drive compared to an SSD.
Will AVX always be required?
At this time, yes.
AVX instructions are used for basically all vector math computations used in rendering, collision detection, and other game logic.
Where can I donate?
For several reasons, we are not accepting financial donations of any kind.
Why was this project started?
First and foremost, for fun and the challenge. We are primarily interested in learning how the original games were made, and understanding the technology behind them. The end result of a working PC port that can potentially support mod and such is very motivating and exciting -- but ultimately secondary.
Is this project legal?
Yes.
My antivirus claims it's a virus, what gives?
This is caused by a false-positive detection, which we can do nothing about. If you have any doubts, our code and release process is entirely open-source and can be audited.
How finished is the project?
Jak and Daxter: The Precursor Legacy and Jak II are at a stage where they are feature complete and fully completable. Jak II is as of writing still in beta mainly due to audio bugs and a few graphics issues, which shouldn't get in the way of completing the game.
When is Jak 3 / Jak X?
Please remember that we do this work for free, in our spare time, when we feel like it. There are no rigid timelines that we make for ourselves, things will be done when they are done.
- Jak 3 has been fully decompiled, but still requires many bug fixes before it is playable. It is hard to estimate how long it takes to fix these bugs, so it may take several months. As usual, we will inform everyone when it is playable in the monthly blog.
- As of now, it's unsure whether Jak X will be decompiled.
Will you decompile Daxter or The Lost Frontier?
No, these games run on completely different engines and were not made by Naughty Dog.
Will you decompile Ratchet & Clank? Don't they share the same engine?
No. Ratchet & Clank does not use Naughty Dog's engine and was not written in GOAL, it was developed by a completely different team of people. As stated in staff roll for the Ratchet & Clank games, only the background renderers use Naughty Dog technology. Our work is not transferrable to that series.
Will you decompile [insert non-Jak game here]?
The work done on OpenGOAL will not be a big help for decompiling anything outside of the main Jak series. The Jak games present a very unique set of challenges that we have solved that other games do not possess -- similarly other games pose entirely new sets of challenges.
Most importantly, we are motivated on working on Jak, not other games. Those other games likely already have small niche communities plugging away at things in the background just like we were.
Is there support for raytracing?
No. Implementing raytracing would require a very massive art overhaul which is far outside the scope of this project.
Game Info
Does the game have differences? I don't remember these options!
We have added a plethora of options to the game settings (and removed some that didn't make sense) so that you can have a more up to date experience, or a more PS2-like experience if you decide. It is up to you! There are also a bunch of extra goodies and added secrets to find out. We are aiming to keep the core gameplay (controls, physics, behaviors, etc.) identical however, so if you find any issues or differences with this then do not hesitate to tell us about it.
Will there be bug fixes to the game?
We fix bugs that a player may unintentionally encounter. For example, we would fix random crashes, or collectibles that were mistakeningly made impossible to get after a certain point in the game is reached. We would not patch for example, the Jet-Board hover glitch, or the infinite flight glitch, patching these adds no improvement to the game and only eliminates fun.
How can I play mods?
The launcher now supports mods natively! You will need a Mod Source URL that provides a list of available mods - the launcher doesn't provide any by default.
- In the launcher, go to Settings > Mods, and add your Mod Source URL
- Back on the Jak 1/Jak 2 page, after you've completed the vanilla installation, you can go to Features > Mods to see all the mods for that game from any Mod Source(s) you've added
- Clicking on an available mod will install the latest version, and then clicking on an installed mod will bring you to a dedicated page for the mod
- From here you can play, reboot in debug mode, change the active version, uninstall, etc.
NOTE - Mods are provided by third-parties and are not vetted, endorsed or supported by the official team.
They can run arbitrary unverified code on your system, so only install mods from sources that you trust!
If you run into a problem with a mod, you will likely have to reach out to its author and not the OpenGOAL team.
How can I make and/or list mods?
We intend to make it as easy as we can to make your own code or import graphics for the game, this is always a work-in-progress. For developing mods, check out the Modding Examples documentation and/or the JakMods FAQ.
If you'd like to create your own Mod Source to list your mods, you just need to create a publicly accessible JSON file that adheres to this schema.
Will you support pressure sensitivity?
No. Pressure sensitivity is the possibility of a few controllers such as DualShock 2, DualShock 3 to detect differences in the amount of force applied to them, as opposed to binary inputs (e.g. "pressed" or "not pressed").
Even though pressure sensitivity is present in the PS2 and PS3 versions (for extra jump height and controlling the zoomer), there is no plan to support this. The vast majority of controllers don't support this at a hardware or driver level. The same functionality can be achieved by briefly tapping the respective buttons.
Will you support ARM platforms (such as Android, Apple Silicon, Nintendo Switch, etc.)?
This is not something we have committed to. Supporting ARM platforms requires extending the current OpenGOAL compiler, which as of writing only supports x86-64 platforms.
There is slow on-going work to add this, but no one on the development team is interested in packaging things up so it can easily be consumed on any non-PC platform (ie. Android). The main reason for this work is to natively support Apple Silicon.
The launcher requests an ISO. Where can I find them?
You can extract the isos from a physical copy of the game for PS2, as described on the installation page. We do not provide them ourselves and will not share download links or allow others to share them on our servers or websites.
Where can I find HD textures?
The original textures fall under the umbrella of scaled/cleaned up versions of the original game assets. We do not promote such texture packs.
Where are my saves?
The saves can be found in <USER_FOLDER>\AppData\Roaming\OpenGOAL\<GAME>\saves
on Windows, or in ~/.config/OpenGOAL/<GAME>/saves
on Linux.
Troubleshooting
I am getting "illegal operation"/"illegal instruction" errors when running the game or tools.
Make sure your CPU supports AVX. If it does, please contact us in the support channel of the discord server and we can try to help.
The game is really slow.
Your GPU might be too weak. Some of our rendering code is a bit inefficient and can still be improved, but you should expect significantly better performance than for example running via an emulator. Therefore, things might get better overtime -- or your hardware is just plain too limiting.
The game crashed!!
Curses! Contact us in the help channel on the discord server and tell us about it! Post a support package as well (see here how to generate one). If you're using the official launcher, it can be generated under the help section. Make sure you tell us exactly how the crash happened and what settings you were using.
My controller doesn't work!
Our controller handling does need some work, but generally speaking any controller defined in this database should be supported https://github.com/gabomdq/SDL_GameControllerDB You can try the following until support improves:
- If your controller isn't in the DB above, you should follow the steps there to make a mapping for your controller.
- Make sure you only have 1 controller plugged in at a time to ensure that one is used.
- Try leveraging Steam to get the controller recognized. Conversely, if you have Steam or any other games that may be using your controller open, try closing them. You can also turn off Steam Input if enabled, as it might try to make your controller function as a replacement for keyboard and mouse.
- Steam input should not interfere with the game anymore, as by default, the keyboard is disabled when a controller is in use. But this is still a valid troubleshooting step.
- Try using third-party software or kernel drivers for your particular controller (i.e. DualSenseX, DS4Windows, DsHidMini, xpadneo).
I am having some other issue or found a bug with the game/tools.
First, scroll through our issues page to make sure that your issue hasn't been reported already. If it hasn't, feel free to open up a new issue, or report it to us directly. Make sure you provide reproduction steps! We can't always guess why things go wrong.
Technical Questions
How is this project possible?
Naughty Dog created a custom programming language called GOAL, along with a compiler for it. GOAL makes up 98% of all the code in Jak and Daxter, and the GOAL compiler does not have the same amount of optimizations as C or C++ compilers have, which means that the compiler often times left specific instructions that denote some specific kind of control flow, which lets us piece back the original structure of the code accurately for about 99% of the functions in the game. Nearly every type in GOAL also has an autogenerated debug inspect
method, which prints all of a type's fields by default. These inspect
methods can tell us what fields were in the type, at what offset, and what their type was.
I'm a developer, how can I help?
Our project moves very fast so it's hard to give an answer here that will remain true for weeks let alone months.
Some recommended steps are:
- Consult our GitHub README and get the project setup.
- Look through our documentation that we try to update when we have a chance.
- Look through our issue board on the github repository and see if you feel comfortable tackling a problem.
Aside from the OpenGOAL source code for the games, our codebase is almost entirely C++ with the exception of some throwaway scripts written in Python. Of course you will eventually have to understand OpenGOAL, our flavour of Naughty Dog's language, as the game by-and-large uses it.