diff --git a/FAQ.md b/FAQ.md index 51e4ade988..40f4772a0c 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,78 +1,72 @@ ### How finished is the project? -We estimate it is about 80% done. Most of the renderers are finished and there is no sound. +We estimate it is about 80% done. Most of the renderers and sound are finished, but there are still a few bugs. The project is still in development. If you want to give it a try, feel free, but we don't provide detailed support yet. ### Is there a way to try it without compiling it myself? Yes, there are release versions available here: https://github.com/open-goal/jak-project/releases Download the latest one and extract all the files. Drag an ISO of the game to the "extractor" program to extract the assets. After that finishes, you can run the "gk" program to start playing. -### How is this project possible? +### How is this project possible? Naughty Dog created a custom programming language called [GOAL](https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp), along with a compiler for it. GOAL makes up 98% of all the code in Jak & 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. ### When will the project be finished? -Hopefully just a few more months! - -### Why is there no sound? -Sound is still in progress. +Hopefully just a few more months! ### Will you also decompile Jak II? Yes! But we haven't started yet. ### Will you also decompile Jak X? -We don't know yet. +We don't know yet. ### How can I compile the project for myself? -The project readme contains instructions on installing and running the game. You need to bring your own copy of the game, we provide none of its assets. +The project readme contains instructions on installing and running the game. You need to bring your own copy of the game, we provide none of its assets. ### I am having trouble running the game! -Keep in mind the project is currently in development and is not adapted for end users at the moment. If you are having trouble, there are some extra troubleshooting steps at the bottom of this page. If the common issues do not include your specific issue, feel free to join the discord server and ask for help in the help channel. +Keep in mind the project is currently in development and is not adapted for end users at the moment. If you are having trouble, there are some extra troubleshooting steps at the bottom of this page. If the common issues do not include your specific issue, feel free to join the discord server and ask for help in the help channel. ### 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. +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. ### Where can I find a list of differences? -[This page](https://github.com/open-goal/jak-project/issues/386) contains a list of ideas and suggestions we have for the game, but it does not cover all the deliberate changes we have made. We will probably compile a list at some point! In the meantime, feel free to ask us about this. +[This page](https://github.com/open-goal/jak-project/issues/386) contains a list of ideas and suggestions we have for the game, but it does not cover all the deliberate changes we have made. We will probably compile a list at some point! In the meantime, feel free to ask us about this. ### Will there be bug fixes to the game? -The original game had a few issues of varying severity - from progress softlocks to crashing - that we are aiming to patch. The complexity of these issues is varying (if they were simple to reproduce and fix, Naughty Dog likely would have done it), but so far we have fixed 2 issues that could crash the game. +The original game had a few issues of varying severity - from progress softlocks to crashing - that we are aiming to patch. The complexity of these issues is varying (if they were simple to reproduce and fix, Naughty Dog likely would have done it), but so far we have fixed 2 issues that could crash the game. ### Will there be mod support? -In the future yes! We intend to make it as easy as it can be to make your own code or import graphics for the game. +In the future yes! We intend to make it as easy as we can to make your own code or import graphics for the game. ### What is this menu? Why am I not dying sometimes? -This might be the result of the game beeing booted in debugging mode. The project is still in development and we rely on the game's built-in debug features (along with some we made ourselves) for testing and development. The final product will have this debug mode disabled. In the meantime, have fun with all the options! Keep in mind some don't work very well. +This might be the result of the game beeing booted in debugging mode. The project is still in development and we rely on the game's built-in debug features (along with some we made ourselves) for testing and development. The final product will have this debug mode disabled. In the meantime, have fun with all the options! Keep in mind some don't work very well. ### What are the minimum requirements? These are not totally set in stone as the project is not complete. These are the minimum architecture requirements for the project: - 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. The rendering code is still very much in progress. NVIDIA graphics cards should have no issue running the game, but AMD cards might struggle unless you have a more powerful one. -- You might experience slower loads with a hard drive compared to an SSD. +- You might experience slower loads with a hard drive compared to an SSD. ### Will there be a Vulkan version of the game? -Probably yes, in the future! +Probably yes, in the future! ### I'd like to contribute, but don't know where to start! -Great to hear! Any help is good help. If you haven't already, please read the project readme. It has information on what is done, what isn't done, what is being worked on, the project layout and how it all works. Then just join our development discord server and we can help you further. +Great to hear! Any help is good help. If you haven't already, please read the project readme. It has information on what is done, what isn't done, what is being worked on, the project layout and how it all works. Then just join our development discord server and we can help you further. ### Will you also decompile other games that aren't Jak? -No. +No. ### Is this project legal? -Yes. +Yes. -## Troubleshooting - -### None of the tools are working! -Because of its in-development state, we provide no pre-built binaries at the moment. The project readme has instructions on how to compile the tools. +## Troubleshooting ### I am getting "illegal operation"/"illegal instruction" errors when running the game or tools. This shouldn't happen, so please contact us in the support channel of the discord server and we can help, and tell us if your CPU supports AVX, AVX2 or AVX512. ### The game is really slow. -Your GPU is probably too weak and our renderers too slow. However, we plan on making significant changes to the renderers over time to improve performance. The merc renderer right now is very slow, if you would like to turn off then head to the debug menu by pressing R3, then go to `Render...` and turn `merc` off. +Your GPU is probably too weak and our renderers too slow. We plan on making significant changes to the renderers over time to improve performance. The merc renderer right now is very slow, if you would like to turn it off then head to the debug menu by pressing R3, then go to `Render...` and turn `merc` off. ### The game crashed!! -Crap! Contact us in the help channel on the discord server and tell us about it! Post the log files as well. These are located in the `log` folder of the project. +Curses! Contact us in the help channel on the discord server and tell us about it! Post the log files as well. These are located in the `log` folder of the project. Make sure you tell us exactly how the crash happened. -### The game crashed when entering the final boss area! -This one specifically is known. We are investigating this at the moment, so don't worry. +### I am having some other issue or found a bug with the game/tools. +First, scroll through our [issues](https://github.com/open-goal/jak-project/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. diff --git a/README.md b/README.md index 5b958b5eb8..7927530f87 100644 --- a/README.md +++ b/README.md @@ -53,9 +53,9 @@ Our objectives are: We support both Linux and Windows on x86-64. -We have a Discord server where we discuss development. https://discord.gg/VZbXMHXzWv +### **[Please read the FAQ by clicking here if you have any questions.](FAQ.md)** -**[If you have any questions, please read the FAQ here beforehand.](FAQ.md)** +We have a Discord server where we discuss development: https://discord.gg/VZbXMHXzWv ## Current Status @@ -74,10 +74,9 @@ We don't save any assets from the game - you must bring your own copy of the gam ## What's Next -- Continue decompilation of GOAL code. We've made huge progress recently in decompiling gameplay code. We're finishing that up and also working on the some of the rendering code. Here's our decompilation progress over the past year: ![](./docs/img/code_progress.png) -- Bug testing! The game can be beaten 100%, but it's possible a few things do not work correctly. -- Improve the decompiler. We are always finding new features and macros in the GOAL language. -- Investigate more complicated renderers. We have an in-progress port of the "merc" foreground renderer, shown in the screenshots above. +- Bug testing! The game can be beaten 100% from start to finish, but it's possible a few things do not work correctly. +- Improve the decompiler and clean up decompilation of GOAL code. We are always finding new features and macros in the GOAL language. +- Investigate and rewrite the more complicated renderers. ## Getting Started - Linux @@ -280,7 +279,7 @@ gc> In the graphics window, you can use the period key to bring up the debug menu. Controllers also work, using the same mapping as the original game. -Check out the `pc_debug`, `examples` and `engine/pc/` folders under `goal_src` for some examples of GOAL code we wrote. The debug files that are not loaded automatically by the engine have instructions for how to run them. +Check out the `pc_debug`, `examples` and `pc` folders under `goal_src` for some examples of GOAL code we wrote. The debug files that are not loaded automatically by the engine have instructions for how to run them. ## Project Layout @@ -347,6 +346,7 @@ The final component is the "runtime", located in `game`. This is the part of the - `examples`: Example GOAL code we have written. - `test`: Test code we have written. - `pc_debug`: GOAL code for PC-specific debugging. Also written by us. + - `pc`: GOAL code for PC-specific features. Also written by us. - `user`: User sandboxes. Written by you! And anyone else that wishes to share their user code. - `goalc`: The OpenGOAL compiler. - `compiler`: The implementation of the OpenGOAL language.