From cbe21e3b4b948dd80e10a5347c335d0fc2a6a1e1 Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Sun, 22 Mar 2026 13:17:56 -0400 Subject: [PATCH] docs: README pass, add alternative editor documentation (Zed) (#4137) I'm switching away from visual studio (because its broken) so figured I'd document / commit the minimum to get a working environment with the editor I chose (Zed). Also cleaned up the main README so it's not so verbose, link out to secondary pages, etc. I also deleted the Arch and Fedora dockerfiles, they were broken. The ubuntu one still works, so i left it. --- .dockerignore | 8 + .zed/debug.json | 62 ++++ .zed/tasks.json | 111 ++++++ CMakePresets.json | 6 + LICENSE | 2 +- README.md | 333 ++---------------- Taskfile.yml | 92 +++-- docker/Arch/Dockerfile | 28 -- docker/Fedora/Dockerfile | 20 -- .../Dockerfile => Ubuntu-20.04.Dockerfile} | 0 docs/img/code_progress.png | Bin 10861 -> 0 bytes docs/img/editors/zed/zed-build-proj.png | Bin 0 -> 14504 bytes docs/img/editors/zed/zed-debugger.png | Bin 0 -> 78556 bytes docs/img/editors/zed/zed-gen-cmake.png | Bin 0 -> 14832 bytes docs/img/editors/zed/zed-run-example.png | Bin 0 -> 47047 bytes docs/img/launcher-find-version.png | Bin 41335 -> 0 bytes docs/project-overview.md | 80 +++++ docs/setup/dev/vs.md | 18 + docs/setup/dev/vscode.md | 11 + docs/setup/dev/zed.md | 25 ++ docs/setup/system/docker.md | 21 ++ docs/setup/system/linux.md | 60 ++++ docs/setup/system/macos.md | 34 ++ docs/setup/system/windows.md | 13 + scripts/tasks/Taskfile_darwin.yml | 27 +- scripts/tasks/Taskfile_linux.yml | 27 +- scripts/tasks/Taskfile_windows.yml | 28 +- test_no_filter.sh | 2 +- third-party/zydis/resources/VersionInfo.rc | 2 +- 29 files changed, 593 insertions(+), 417 deletions(-) create mode 100644 .dockerignore create mode 100644 .zed/debug.json create mode 100644 .zed/tasks.json delete mode 100644 docker/Arch/Dockerfile delete mode 100644 docker/Fedora/Dockerfile rename docker/{Ubuntu/Dockerfile => Ubuntu-20.04.Dockerfile} (100%) delete mode 100644 docs/img/code_progress.png create mode 100644 docs/img/editors/zed/zed-build-proj.png create mode 100644 docs/img/editors/zed/zed-debugger.png create mode 100644 docs/img/editors/zed/zed-gen-cmake.png create mode 100644 docs/img/editors/zed/zed-run-example.png delete mode 100644 docs/img/launcher-find-version.png create mode 100644 docs/project-overview.md create mode 100644 docs/setup/dev/vs.md create mode 100644 docs/setup/dev/vscode.md create mode 100644 docs/setup/dev/zed.md create mode 100644 docs/setup/system/docker.md create mode 100644 docs/setup/system/linux.md create mode 100644 docs/setup/system/macos.md create mode 100644 docs/setup/system/windows.md diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..505fdeee91 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +.cache/ +.git/ +build/ +decompiler_out/ +failures/ +iso_data/ +out/ +log/ diff --git a/.zed/debug.json b/.zed/debug.json new file mode 100644 index 0000000000..87d5346b2f --- /dev/null +++ b/.zed/debug.json @@ -0,0 +1,62 @@ +// Project-local debug tasks +// +// For more documentation on how to configure debug tasks, +// see: https://zed.dev/docs/debugger +[ + { + "label": "Game - Jak 1 (Windows)", + "build": "Build - gk", + "program": "$ZED_WORKTREE_ROOT/out/build/Debug/bin/gk.exe", + "args": ["-v", "--game", "jak1", "--", "-fakeiso", "-debug"], + "request": "launch", + "adapter": "CodeLLDB", + }, + { + "label": "Game - Jak 2 (Windows)", + "build": "Build - gk", + "program": "$ZED_WORKTREE_ROOT/out/build/Debug/bin/gk.exe", + "args": ["-v", "--game", "jak2", "--", "-fakeiso", "-debug"], + "request": "launch", + "adapter": "CodeLLDB", + }, + { + "label": "Game - Jak 3 (Windows)", + "build": "Build - gk", + "program": "$ZED_WORKTREE_ROOT/out/build/Debug/bin/gk.exe", + "args": ["-v", "--game", "jak3", "--", "-fakeiso", "-debug"], + "request": "launch", + "adapter": "CodeLLDB", + }, + { + "label": "REPL - Jak 1 (Windows)", + "build": "Build - goalc", + "program": "$ZED_WORKTREE_ROOT/out/build/Debug/bin/goalc.exe", + "args": ["--user-auto", "--game", "jak1"], + "request": "launch", + "adapter": "CodeLLDB", + }, + { + "label": "REPL - Jak 2 (Windows)", + "build": "Build - goalc", + "program": "$ZED_WORKTREE_ROOT/out/build/Debug/bin/goalc.exe", + "args": ["--user-auto", "--game", "jak2"], + "request": "launch", + "adapter": "CodeLLDB", + }, + { + "label": "REPL - Jak 3 (Windows)", + "build": "Build - goalc", + "program": "$ZED_WORKTREE_ROOT/out/build/Debug/bin/goalc.exe", + "args": ["--user-auto", "--game", "jak3"], + "request": "launch", + "adapter": "CodeLLDB", + }, + { + "label": "Tests - Unit - Draft Only (Windows)", + "build": "Build - goalc-test", + "program": "$ZED_WORKTREE_ROOT/out/build/Debug/bin/goalc-test.exe", + "args": ["--gtest_brief=0", "--gtest_filter=\"*Draft*\""], + "request": "launch", + "adapter": "CodeLLDB", + }, +] diff --git a/.zed/tasks.json b/.zed/tasks.json new file mode 100644 index 0000000000..febf931992 --- /dev/null +++ b/.zed/tasks.json @@ -0,0 +1,111 @@ +// Project tasks configuration. See https://zed.dev/docs/tasks for documentation. +[ + { + "label": "Generate CMake - Release", + "command": "task gen-cmake-release", + }, + { + "label": "Generate CMake - Debug", + "command": "task gen-cmake-debug", + }, + { + "label": "Build Project - Release", + "command": "task build-release", + }, + { + "label": "Build Project - Debug", + "command": "task build-debug", + }, + { + "label": "Build - goalc", + "command": "task build-debug", + "env": { + "CMAKE_BUILD_ADDITIONAL_ARGS": "--target goalc", + }, + "cwd": "$ZED_WORKTREE_ROOT", + }, + { + "label": "Build - goalc-test", + "command": "task build-debug", + "env": { + "CMAKE_BUILD_ADDITIONAL_ARGS": "--target goalc-test", + }, + "cwd": "$ZED_WORKTREE_ROOT", + }, + { + "label": "Build - gk", + "command": "task build-debug", + "env": { + "CMAKE_BUILD_ADDITIONAL_ARGS": "--target gk", + }, + "cwd": "$ZED_WORKTREE_ROOT", + }, + { + "label": "Tests - Unit - Brief", + "command": "task unit-tests", + "env": { + "TEST_FILTER": "--gtest_brief=0", + }, + }, + { + "label": "Tests - Unit - Verbose", + "command": "task unit-tests", + "env": { + "TEST_FILTER": "--gtest_brief=1", + }, + }, + { + "label": "Tests - Unit - Type Consistency", + "command": "task unit-tests", + "env": { + "TEST_FILTER": "--gtest_brief=0 --gtest_filter=\"*TypeConsistency*\"", + }, + }, + { + "label": "Tests - Unit - WithGameTests", + "command": "task unit-tests", + "env": { + "TEST_FILTER": "--gtest_brief=0 --gtest_filter=\"*WithGameTests*\"", + }, + }, + { + "label": "Tests - Offline Tests", + "command": "task offline-tests-fast", + }, + { + "label": "Tests - Formatter", + "command": "task unit-tests", + "env": { + "TEST_FILTER": "--gtest_brief=0 --gtest_filter=\"*FormatterTests*\"", + }, + }, + { + "label": "Run - Game (Jak 1)", + "command": "task run-game", + "env": { + "GAME": "jak1", + }, + }, + { + "label": "Run - Game (Jak 2)", + "command": "task run-game", + "env": { + "GAME": "jak2", + }, + }, + { + "label": "Run - Game (Jak 3)", + "command": "task run-game", + "env": { + "GAME": "jak3", + }, + }, + { + "label": "Run - Decompiler", + "command": "task decomp", + }, + { + "label": "Format", + "command": "task format", + }, +] diff --git a/CMakePresets.json b/CMakePresets.json index 3cf4289e9f..9dd278d59b 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -225,6 +225,12 @@ "ZYDIS_BUILD_SHARED_LIB": "OFF" } }, + { + "name": "Debug-linux-clang", + "displayName": "Linux Release (clang)", + "description": "Build with Clang as Release with Debug Symbols", + "inherits": ["base-linux-debug", "base-clang"] + }, { "name": "Debug-linux-clang-static", "displayName": "Linux Static Release (clang)", diff --git a/LICENSE b/LICENSE index 5af9d46e37..9f8c67bbfb 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ ISC License -Copyright (c) 2020-2025 OpenGOAL Team +Copyright (c) 2020-2026 OpenGOAL Team Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above diff --git a/README.md b/README.md index 9087fba4d0..4dcd0c53e0 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ ## Please read first > [!IMPORTANT] -> Our repositories on GitHub are primarily for development of the project and tracking active issues. Most of the information you will find here pertains to setting up the project for development purposes and is not relevant to the end-user. +> Our repositories on GitHub are for development of the project and tracking active issues. Most of the information you will find here pertains to setting up the project for development purposes and is not relevant to the end-user. For a setup guide on how to install and play the game there is the following video that you can check out: https://youtu.be/K84UUMnkJc4 @@ -22,45 +22,27 @@ For questions or additional information pertaining to the project, we have a Dis Additionally, you can find further documentation and answers to **frequently asked questions** on the project's main website: https://opengoal.dev > [!WARNING] -> **Do not use this decompilation project without providing your own legally purchased copy of the game.** We do not distribute any assets from the game - you must use your own legitimately obtained PS2 copy of the game. We support every retail PAL, NTSC, and NTSC-J build, including Greatest Hits copies. +> **Do not use this decompilation project without the use of your own legally purchased copy of the game.** OpenGOAL does not include any assets from the original games, so you must provide your own legitimately obtained PS2 copy of the game. OpenGOAL supports every retail PAL, NTSC, and NTSC-J build, including Greatest Hits copies. Please note that does NOT include any of the later releases (PS3/PS4/PS5). - [Project Description](#project-description) - [Current Status](#current-status) - [Methodology](#methodology) - [Setting up a Development Environment](#setting-up-a-development-environment) - - [Docker](#docker) - - [Linux](#linux) - - [Ubuntu (20.04)](#ubuntu-2004) - - [Arch](#arch) - - [Fedora](#fedora) - - [Windows](#windows) - - [Required Software](#required-software) - - [Using Visual Studio](#using-visual-studio) - - [MacOS](#macos) - - [Intel Based](#intel-based) - - [Apple Silicon](#apple-silicon) - - [VSCode](#vscode) - - [Building and Debugging](#building-and-debugging) + - [OS Setup](#os-setup) + - [Editor Setup](#editor-setup) - [Building and Running the Game](#building-and-running-the-game) - [Extract Assets](#extract-assets) - - [Build the Game](#build-the-game) + - [Build the Game (Running the Compiler)](#build-the-game-running-the-compiler) - [Run the Game](#run-the-game) - [Connecting the REPL to the Game](#connecting-the-repl-to-the-game) - [Running the Game Without Auto-Booting](#running-the-game-without-auto-booting) - - [Interacting with the Game](#interacting-with-the-game) - [Technical Project Overview](#technical-project-overview) - - [`goalc`](#goalc) - - [Running the compiler](#running-the-compiler) - - [`decompiler`](#decompiler) - - [Running the decompiler](#running-the-decompiler) - - [`goal_src/`](#goal_src) - - [`game` runtime](#game-runtime) ## Project Description -This project is to port the original Jak and Daxter and Jak II to PC. Over 98% of the games are written in GOAL, a custom Lisp language developed by Naughty Dog. Our strategy is: +The project's goal is to port the original trilogy (Jak 1 -> Jak 3) to PC. Over 98% of the games were written in GOAL, a custom LISP language developed by Naughty Dog. Our strategy is: - decompile the original game code into human-readable GOAL code -- develop our own compiler for GOAL and recompile game code for x86-64 +- develop our own compiler for GOAL and recompile the game code for x86-64 - create a tool to extract game assets into formats that can be easily viewed or modified - create tools to repack game assets into a format that our port uses. @@ -70,219 +52,50 @@ Our objectives are: - try to match things from the original game and development as possible. For example, the original GOAL compiler supported live modification of code while the game is running, so we do the same, even though it's not required for just porting the game. - support modifications. It should be possible to make edits to the code without everything else breaking. -We support both Linux and Windows on x86-64. - -> We do not support, or plan to support the ARM architecture. This means that this will not run on devices such as a mobile device. +At the moment we support **x86_64** on Windows, Linux and macOS (via Rosetta translation). There are no plans to ever make a mobile release. ### Current Status -Jak 1 is largely playable from start to finish with a handful of bugs that are continually being ironed out. Jak 2 is in development. +- Jak 1 has been considered in a polished, complete state for years at this point. +- Jak 2 is considered in beta due to a few issues we are aware of that need fixing, however to the casual user, the game is essentially complete. +- Jak 3 has a good amount of work left to do. ![](./docs/img/promosmall1.png) ![](./docs/img/promosmall2.png) -YouTube playlist: +YouTube playlist showcasing some of the early progress for Jak 1: https://www.youtube.com/playlist?list=PLWx9T30aAT50cLnCTY1SAbt2TtWQzKfXX ### Methodology -To help with decompiling, we've built a decompiler that can process GOAL code and unpack game assets. We manually specify function types and locations where we believe the original code had type casts (or where they feel appropriate) until the decompiler succeeds, then we clean up the output of the decompiled code by adding comments and adjusting formatting, then save it in `goal_src`. +To assist with decompiling, we've built a decompiler that can process GOAL code and unpack game assets. We manually specify function types and locations where we believe the original code had type casts (or where they feel appropriate) until the decompilation succeeds, then we clean up the output of the decompiled code by adding comments and adjusting formatting, then save it in `goal_src/`. Our decompiler is designed specifically for processing the output of the original GOAL compiler. As a result, when given correct casts, it often produces code that can be directly fed into a compiler and works perfectly. This is continually tested as part of our unit tests. ## Setting up a Development Environment -The remainder of this README is catered towards people interested in building the project from source, typically with the intention on contributing as a developer. +The remainder of this README is aimed at people interested in building the project from source, typically with the intention of contributing as a developer. If this does not sound like you and you just want to play the game, refer to the above section [Quick Start](#quick-start) -### Docker +### OS Setup -All three Linux systems are supported using Docker. +- [Windows](/docs/setup/system/windows.md) +- [Linux](/docs/setup/system/linux.md) +- [MacOS](/docs/setup/system/macos.md) +- [Docker](/docs/setup/system/docker.md) -Pick your supported prefered flavour of linux and build your chosen image +### Editor Setup -``` -docker build -f docker/(Arch|Fedora|Ubuntu)/Dockerfile -t jak . -``` +You can of course use whatever editor you want, but here is some documentation that should help you get started on some of the editor's we have used and have written about: -This will create an image with all required dependencies and already built. - -``` -docker run -v "$(pwd)"/build:/home/jak/jak-project/build -it jak bash -``` - -Note: If you change the content of the `build/` directory you'll need to rerun the `build` command. Alternatively you can get the build via `docker cp`. - -This will link your `build/` folder to the images so can validate your build or test it on an external device. - -Docker images can be linked into your IDE (e.g. CLion) to help with codesniffing, static analysis, run tests and continuous build. - -Unfortunately you'll still need task runner on your local machine to run the game or instead, manually run the game via the commands found in `Taskfile.yml`. - -### Linux - -#### Ubuntu (20.04) - -Install packages and init repository: - -```sh -sudo apt install gcc make cmake ninja-build build-essential g++ nasm clang-format libxrandr-dev libxinerama-dev libxcursor-dev libpulse-dev libxi-dev python libgl1-mesa-dev libssl-dev -sudo sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin -``` - -Compile: - -```sh -cmake -B build && cmake --build build -j 8 -``` - -Run tests: - -```sh -./test.sh -``` - -Note: we have found that `clang` and `lld` are significantly faster to compile and link than `gcc`, generate faster code, and have better warning messages. To install these: - -```sh -sudo apt install lld clang -``` - -and run `cmake` (in a fresh build directory) with: - -```sh -cmake -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ .. -``` - -#### Arch - -Install packages and init repository: - -```sh -sudo pacman -S cmake libpulse base-devel nasm python libx11 libxrandr libxinerama libxcursor libxi -yay -S go-task -``` - -For Arch only, replace `task` with `go-task` in the rest of the instructions. - -Compile: - -```sh -cmake -B build && cmake --build build -j 8 -``` - -Run tests: - -```sh -./test.sh -``` - -#### Fedora - -Install packages and init repository: - -```sh -sudo dnf install cmake python lld clang nasm libX11-devel libXrandr-devel libXinerama-devel libXcursor-devel libXi-devel pulseaudio-libs-devel mesa-libGL-devel -sudo sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin -``` - -Compile with `clang`: - -```sh -cmake -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -B build -cmake --build build -j$(nproc) -``` - -Run tests: - -```sh -./test.sh -``` - -### Windows - -#### Required Software - -We primarily use Visual Studio on Windows for C++ development. Download the latest community edition from [here](https://visualstudio.microsoft.com/vs/). At the time of writing this is Visual Studio 2022. - -You will require the `Desktop development with C++` workload. This can be selected during the installation, or after via the `Visual Studio Installer`, modifying the Visual Studio Installation. - -On Windows, it's recommended to use a package manager, we use Scoop. Follow the steps on the bottom of the homepage [here](https://scoop.sh/) to get it. - -Once Scoop is installed, run the following commands: - -```sh -scoop install git llvm nasm python task -``` - -#### Using Visual Studio - -Clone the repository by running the following command in your folder of choice. - -```sh -git clone https://github.com/open-goal/jak-project.git -``` - -This will create a `jak-project` folder, open the project as a CMake project via Visual Studio. - -![](./docs/img/windows/open-project.png) - -Then build the entire project as `Windows Release (clang)`. You can also press Ctrl+Shift+B as a hotkey for Build All. We currently prefer `clang` on Windows as opposed to `msvc`, though it should work as well! - -![](./docs/img/windows/release-build.png) -![](./docs/img/windows/build-all.png) - -### MacOS - -> NOTE: Running the game requires an Apple Silicon Mac running macOS Sequoia, or an Intel Mac. - -Ensure that you have Xcode command line tools installed (this installs things like Apple Clang). If you don't, you can run the following command: - -```bash -xcode-select --install -``` - -On Apple Silicon, Rosetta 2 also must be installed: - -```bash -softwareupdate --install-rosetta -``` - -#### Building for x86_64 - -```bash -brew install cmake nasm ninja go-task clang-format -cmake -B build --preset=Release-macos-x86_64-clang -cmake --build build --parallel $((`sysctl -n hw.logicalcpu`)) -``` - -#### Building for ARM64 (experimental, unsupported) - -```bash -brew install cmake ninja go-task clang-format -cmake -B build --preset=Release-macos-arm64-clang -cmake --build build --parallel $((`sysctl -n hw.logicalcpu`)) -``` - -You may have to add the MacOS SDK to your `LIBRARY_PATH`: -- `export LIBRARY_PATH="$LIBRARY_PATH:/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"` - -### VSCode - -If you either don't want to or cannot use Visual Studio for working with the C++ project, VSCode is a good alternatively. - -The `clangd` extension is [recommended](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd) and requires `clangd` to be on your `$PATH`. If you can run `clangd` in a terminal successfully then you should be good to go. - -Once you generate your CMake for the first time the clangd LSP should be able to index the project and give you intellisense. - -#### Building and Debugging - -TODO - Consider Contributing Documentation :) +- [Visual Studio (Windows)](/docs/setup/dev/vs.md) +- [Visual Studio Code](/docs/setup/dev/vscode.md) +- [Zed](/docs/setup/dev/zed.md) ### Building and Running the Game -Getting a running game involves 4 steps: +Getting a running game involves 4 main steps: 1. Build C++ tools (follow Getting Started steps above for your platform) 2. Extract assets from the game @@ -291,25 +104,16 @@ Getting a running game involves 4 steps: #### Extract Assets -First, setup your settings so the following scripts know which game you are using, and which version. For the black label version of the game, run the following in a terminal: +First, we have to setup our environment so we know which game and version we are operating with. For the black label version of Jak 1 we would run the following: ```sh task set-game-jak1 -task set-decomp-ntscv1 -``` - -For other versions of the game, you will need to use a different `-set-decomp-` command. An example for the PAL version: - -```sh -task set-game-jak1 -task set-decomp-pal +task set-decomp-ntscv1 # or for example for PAL, `task set-decomp-pal` ``` > Run `task --list` to see the other available options -> At the time of writing, only Jak 1 is expected to work end-to-end! - -The first step is to extract your ISO file contents into the `iso_data/` folder. In the case of Jak 1 this is `iso_data/jak1`. +Next, ensure you extract your ISO file contents into the relevant `iso_data/` folder. In the case of Jak 1 this is `iso_data/jak1`. Once this is done, open a terminal in the `jak-project` folder and run the following: @@ -317,7 +121,7 @@ Once this is done, open a terminal in the `jak-project` folder and run the follo task extract ``` -#### Build the Game +#### Build the Game (Running the Compiler) The next step is to build the game itself. To do so, in the same terminal run the following: @@ -354,7 +158,7 @@ g > (mi) #### Run the Game -Finally the game can be ran. Open a second terminal from the `jak-project` directory and run the following: +Finally the game can be launched. Open a second terminal from the `jak-project` directory and run the following: ```sh task boot-game @@ -410,81 +214,6 @@ gc> (test-play) gc> ``` -#### Interacting with the Game - -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 `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. - ## Technical Project Overview -There are four main components to the project. - -1. `goalc` - the GOAL compiler for x86-64 -2. `decompiler` - our decompiler -3. `goal_src/` - the folder containing all OpenGOAL / GOOS code -4. `game` - aka the runtime written in C++ - -Let's break down each component. - -### `goalc` - -Our implementation of GOAL is called OpenGOAL. - -All of the compiler source code is in `goalc/`. The compiler is controlled through a prompt which can be used to enter commands to compile, connect to a running GOAL program for interaction, run the OpenGOAL debugger, or, if you are connected to a running GOAL program, can be used as a REPL to run code interactively. In addition to compiling code files, the compiler has features to pack and build data files. - -#### Running the compiler - -**Environment Agnostic** - -If you have installed `task` as recommended above, you can run the compiler with `task repl` - -**Linux** - -To run the compiler on Linux, there is a script `scripts/shell/gc.sh`. - -**Windows** - -On Windows, there is a `scripts/batch/gc.bat` scripts and a `scripts/batch/gc-no-lt.bat` script, the latter of which will not attempt to automatically attach to a running target. - -### `decompiler` - -The second component to the project is the decompiler. - -The decompiler will output code and other data intended to be inspected by humans in the `decompiler_out` folder. Files in this folder will not be used by the compiler. - -#### Running the decompiler - -You must have a copy of the PS2 game and place all files from the DVD inside a folder corresponding to the game within `iso_data` folder (`jak1` for Jak 1 Black Label, etc.), as seen in this picture: - -![](./docs/img/iso_data-help.png) - -The decompiler will extract assets to the `assets` folder. These assets will be used by the compiler when building the port, and you may want to turn asset extraction off after running it once. - -**Environment Agnostic** - -If you have installed `task` as recommended above, you can run the compiler with `task decomp` - -**Linux** - -To run, you can use `scripts/shell/decomp.sh` to run the decompiler - -**Windows** - -To run, you can use `scripts/shell/decomp-jak1.bat` to run the decompiler - -### `goal_src/` - -The game source code, written in OpenGOAL, is located in `goal_src`. All GOAL and GOOS code should be in this folder. - -### `game` runtime - -The final component is the "runtime", located in `game`. This is the part of the game that's written in C++. - -In the port, that includes: -- The "C Kernel", which contains the GOAL linker and some low-level GOAL language features. GOAL has a completely custom dynamically linked object file format so in order to load the first GOAL code, you need a linker written in C++. Some low-level functions for memory allocation, communicating with the I/O Processor, symbol table, strings, and the type system are also implemented in C, as these are required for the linker. It also listens for incoming messages from the compiler and passes them to the running game. This also initializes the game, by initializing the PS2 hardware, allocating the GOAL heaps, loading the GOAL kernel off of the DVD, and executing the kernel dispatcher function. This is in the `game/kernel` folder. This should be as close as possible to the game, and all differences should be noted with a comment. -- Implementation of Sony's standard library. GOAL code can call C library functions, and Naughty Dog used some Sony library functions to access files, memory cards, controllers, and communicate with the separate I/O Processor. The library functions are in `game/sce`. Implementations of library features specific to the PC port are located in `game/system`. -- The I/O Processor driver, OVERLORD. The PS2 had a separate CPU called the I/O Processor (IOP) that was directly connected to the DVD drive hardware and the sound hardware. Naughty Dog created a custom driver for the IOP that handled streaming data off of the DVD. It is much more complicated than I first expected. It's located in `game/overlord`. Like the C kernel, we try to keep this as close as possible to the actual game. -- Sound code. Naughty Dog used a third party library for sound called `989SND`. Code for the library and an interface for it is located in `game/sound`. -- PC specific graphics code. We have a functional OpenGL renderer and context that can create a game window and display graphics on it. The specific renderers used by the game however are mostly implemented. Aside from post-processing effects, everything in the game is rendered. This is located in `game/graphics`. While many liberties will be taken to make this work, the end result should very closely match the actual game. -- Extra assets used by the port in some fashion, located in `game/assets`. These include extra text files, icons, etc. +Some more detail about the various components of the project can be found [here](/docs/project-overview.md) diff --git a/Taskfile.yml b/Taskfile.yml index 6cb4d71d9b..7fe511f955 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -10,35 +10,35 @@ dotenv: tasks: # SETTINGS / CONFIGURATION settings: - - '{{.PYTHON}} ./scripts/tasks/update-env.py --info' + - "{{.PYTHON}} ./scripts/tasks/update-env.py --info" set-game-jak1: - - '{{.PYTHON}} ./scripts/tasks/update-env.py --game jak1' + - "{{.PYTHON}} ./scripts/tasks/update-env.py --game jak1" set-game-jak2: - - '{{.PYTHON}} ./scripts/tasks/update-env.py --game jak2' + - "{{.PYTHON}} ./scripts/tasks/update-env.py --game jak2" set-game-jak3: - - '{{.PYTHON}} ./scripts/tasks/update-env.py --game jak3' + - "{{.PYTHON}} ./scripts/tasks/update-env.py --game jak3" set-game-jakx: - - '{{.PYTHON}} ./scripts/tasks/update-env.py --game jakx' + - "{{.PYTHON}} ./scripts/tasks/update-env.py --game jakx" set-decomp-ntscv1: desc: "aka black label" cmds: - - '{{.PYTHON}} ./scripts/tasks/update-env.py --decomp_config ntscv1' + - "{{.PYTHON}} ./scripts/tasks/update-env.py --decomp_config ntscv1" set-decomp-ntscv2: desc: "aka red label" cmds: - - '{{.PYTHON}} ./scripts/tasks/update-env.py --decomp_config ntscv2' + - "{{.PYTHON}} ./scripts/tasks/update-env.py --decomp_config ntscv2" set-decomp-pal: desc: "PAL region version" cmds: - - '{{.PYTHON}} ./scripts/tasks/update-env.py --decomp_config pal' + - "{{.PYTHON}} ./scripts/tasks/update-env.py --decomp_config pal" set-decomp-ntscjp: desc: "NTSC-J region version" cmds: - - '{{.PYTHON}} ./scripts/tasks/update-env.py --decomp_config ntscjp' + - "{{.PYTHON}} ./scripts/tasks/update-env.py --decomp_config ntscjp" set-decomp-ntscko: desc: "NTSC-K region version" cmds: - - '{{.PYTHON}} ./scripts/tasks/update-env.py --decomp_config ntscko' + - "{{.PYTHON}} ./scripts/tasks/update-env.py --decomp_config ntscko" # GENERAL extract: desc: "Extracts the game's assets from './iso_data' with the set decompiler config" @@ -46,7 +46,7 @@ tasks: - sh: test -f {{.DECOMP_BIN_RELEASE_DIR}}/decompiler{{.EXE_FILE_EXTENSION}} msg: "Couldn't locate decompiler executable in '{{.DECOMP_BIN_RELEASE_DIR}}/decompiler'" cmds: - - "{{.DECOMP_BIN_RELEASE_DIR}}/decompiler \"./decompiler/config/{{.DECOMP_CONFIG}}\" \"./iso_data\" \"./decompiler_out\" --version \"{{.DECOMP_CONFIG_VERSION}}\" --config-override '{\"decompile_code\": false, \"levels_extract\": true, \"allowed_objects\": []}'" + - '{{.DECOMP_BIN_RELEASE_DIR}}/decompiler "./decompiler/config/{{.DECOMP_CONFIG}}" "./iso_data" "./decompiler_out" --version "{{.DECOMP_CONFIG_VERSION}}" --config-override ''{"decompile_code": false, "levels_extract": true, "allowed_objects": []}''' boot-game: desc: "Boots the game, it will fail if it's not already compiled!" preconditions: @@ -69,14 +69,35 @@ tasks: cmds: - "{{.GK_BIN_RELEASE_DIR}}/gk -v --game {{.GAME}} -- -fakeiso -debug" # DEVELOPMENT + clean-cmake: + desc: "Cleans up any existing cmake artifacts" + cmds: + - cmd: "{{.PYTHON}} ./scripts/tasks/delete-file-or-folder.py --path ./build" + - cmd: "{{.PYTHON}} ./scripts/tasks/delete-file-or-folder.py --path ./out/build" gen-cmake: desc: "Generate the CMake" cmds: - - "cmake -B build --preset={{.CMAKE_PRESET}}" + - "cmake {{.CMAKE_GEN_BUILD_DIR_DEBUG}} --preset={{.CMAKE_PRESET}}" + gen-cmake-release: + desc: "Generate the CMake" + cmds: + - "cmake {{.CMAKE_GEN_BUILD_DIR_RELEASE}} --preset={{.DEFAULT_CMAKE_RELEASE_PRESET}}" + gen-cmake-debug: + desc: "Generate the CMake" + cmds: + - "cmake {{.CMAKE_GEN_BUILD_DIR_DEBUG}} --preset={{.DEFAULT_CMAKE_DEBUG_PRESET}}" build: desc: "Build the project using the generated CMake" cmds: - - "cmake --build build --parallel {{.CMAKE_NUM_THREADS}}" + - "cmake {{.CMAKE_BUILD_DIR_DEBUG}} --parallel 8" + build-release: + desc: "Build the project using the generated CMake" + cmds: + - "cmake {{.CMAKE_BUILD_DIR_RELEASE}} --parallel 8" + build-debug: + desc: "Build the project using the generated CMake" + cmds: + - "cmake {{.CMAKE_BUILD_DIR_DEBUG}} --parallel 8 --target goalc" repl: desc: "Start the REPL" preconditions: @@ -93,9 +114,9 @@ tasks: format: desc: "Format code" cmds: - - cmd: '{{.PYTHON}} ./scripts/cpp/format-includes.py' - - cmd: '{{.PYTHON}} ./scripts/ci/lint-trailing-whitespace.py --fix' - - cmd: '{{.PYTHON}} ./third-party/run-clang-format/run-clang-format.py -r common decompiler game goalc test tools lsp -i' + - cmd: "{{.PYTHON}} ./scripts/cpp/format-includes.py" + - cmd: "{{.PYTHON}} ./scripts/ci/lint-trailing-whitespace.py --fix" + - cmd: "{{.PYTHON}} ./third-party/run-clang-format/run-clang-format.py -r common decompiler game goalc test tools lsp -i" - task: format-json format-gsrc: desc: "Run formatter on gsrc file" @@ -107,10 +128,10 @@ tasks: # DECOMPILING decomp: cmds: - - "{{.DECOMP_BIN_RELEASE_DIR}}/decompiler \"./decompiler/config/{{.DECOMP_CONFIG}}\" \"./iso_data\" \"./decompiler_out\" --version \"{{.DECOMP_CONFIG_VERSION}}\" --config-override '{\"decompile_code\": true, \"levels_extract\": false}'" + - '{{.DECOMP_BIN_RELEASE_DIR}}/decompiler "./decompiler/config/{{.DECOMP_CONFIG}}" "./iso_data" "./decompiler_out" --version "{{.DECOMP_CONFIG_VERSION}}" --config-override ''{"decompile_code": true, "levels_extract": false}''' decomp-file: cmds: - - "{{.DECOMP_BIN_RELEASE_DIR}}/decompiler \"./decompiler/config/{{.DECOMP_CONFIG}}\" \"./iso_data\" \"./decompiler_out\" --version \"{{.DECOMP_CONFIG_VERSION}}\" --config-override '{\"decompile_code\": true, \"levels_extract\": false, \"allowed_objects\": [\"{{.FILE}}\"]}'" + - '{{.DECOMP_BIN_RELEASE_DIR}}/decompiler "./decompiler/config/{{.DECOMP_CONFIG}}" "./iso_data" "./decompiler_out" --version "{{.DECOMP_CONFIG_VERSION}}" --config-override ''{"decompile_code": true, "levels_extract": false, "allowed_objects": ["{{.FILE}}"]}''' decomp-clean: cmds: - '{{.PYTHON}} ./scripts/tasks/clean-decomp.py --game "{{.GAME}}"' @@ -139,21 +160,21 @@ tasks: # ASSET RIPPING rip-textures: cmds: - - "{{.DECOMP_BIN_RELEASE_DIR}}/decompiler \"./decompiler/config/{{.DECOMP_CONFIG}}\" \"./iso_data\" \"./decompiler_out\" --version \"{{.DECOMP_CONFIG_VERSION}}\" --config-override '{\"decompile_code\": false, \"levels_extract\": true, \"save_texture_pngs\": true}'" + - '{{.DECOMP_BIN_RELEASE_DIR}}/decompiler "./decompiler/config/{{.DECOMP_CONFIG}}" "./iso_data" "./decompiler_out" --version "{{.DECOMP_CONFIG_VERSION}}" --config-override ''{"decompile_code": false, "levels_extract": true, "save_texture_pngs": true}''' rip-levels: cmds: - - "{{.DECOMP_BIN_RELEASE_DIR}}/decompiler \"./decompiler/config/{{.DECOMP_CONFIG}}\" \"./iso_data\" \"./decompiler_out\" --version \"{{.DECOMP_CONFIG_VERSION}}\" --config-override '{\"decompile_code\": false, \"levels_extract\": true, \"rip_levels\": true}'" + - '{{.DECOMP_BIN_RELEASE_DIR}}/decompiler "./decompiler/config/{{.DECOMP_CONFIG}}" "./iso_data" "./decompiler_out" --version "{{.DECOMP_CONFIG_VERSION}}" --config-override ''{"decompile_code": false, "levels_extract": true, "rip_levels": true}''' rip-collision: cmds: - - "{{.DECOMP_BIN_RELEASE_DIR}}/decompiler \"./decompiler/config/{{.DECOMP_CONFIG}}\" \"./iso_data\" \"./decompiler_out\" --version \"{{.DECOMP_CONFIG_VERSION}}\" --config-override '{\"decompile_code\": false, \"levels_extract\": true, \"extract_collision\": true, \"rip_collision\": true}'" + - '{{.DECOMP_BIN_RELEASE_DIR}}/decompiler "./decompiler/config/{{.DECOMP_CONFIG}}" "./iso_data" "./decompiler_out" --version "{{.DECOMP_CONFIG_VERSION}}" --config-override ''{"decompile_code": false, "levels_extract": true, "extract_collision": true, "rip_collision": true}''' rip-audio: cmds: - - "{{.DECOMP_BIN_RELEASE_DIR}}/decompiler \"./decompiler/config/{{.DECOMP_CONFIG}}\" \"./iso_data\" \"./decompiler_out\" --version \"{{.DECOMP_CONFIG_VERSION}}\" --config-override '{\"decompile_code\": false, \"levels_extract\": true, \"rip_streamed_audio\": true}'" + - '{{.DECOMP_BIN_RELEASE_DIR}}/decompiler "./decompiler/config/{{.DECOMP_CONFIG}}" "./iso_data" "./decompiler_out" --version "{{.DECOMP_CONFIG_VERSION}}" --config-override ''{"decompile_code": false, "levels_extract": true, "rip_streamed_audio": true}''' # TOOLS analyze-ee-memory: cmds: - '{{.PYTHON}} ./scripts/tasks/extract-zip.py --file "{{.FILE}}" --out ./savestate_out/' - - '{{.MEMDUMP_BIN_RELEASE_DIR}}/memory_dump_tool ./savestate_out/eeMemory.bin --output-path ./ --game {{.GAME}} > ee-analysis.log' + - "{{.MEMDUMP_BIN_RELEASE_DIR}}/memory_dump_tool ./savestate_out/eeMemory.bin --output-path ./ --game {{.GAME}} > ee-analysis.log" watch-pcsx2: # {{.PYTHON}} -m pip install -U "watchdog[watchmedo]" cmds: @@ -163,7 +184,7 @@ tasks: type-search: desc: Just an example to show it running cmds: - - "{{.TYPESEARCH_BIN_RELEASE_DIR}}/type_searcher --output-path ./search-results.json --game {{.GAME}} --fields '[{\"type\":\"int16\",\"offset\":2},{\"type\":\"int16\",\"offset\":4}]'" + - '{{.TYPESEARCH_BIN_RELEASE_DIR}}/type_searcher --output-path ./search-results.json --game {{.GAME}} --fields ''[{"type":"int16","offset":2},{"type":"int16","offset":4}]''' update-treesitter: desc: Updates locally built tree-sitter rules cmds: @@ -173,11 +194,11 @@ tasks: fix-translations: desc: Finds and tries to fix invalid translation Characters cmds: - - '{{.PYTHON}} ./scripts/ci/lint-autoglottonyms.py --fix' - - '{{.PYTHON}} ./scripts/ci/lint-characters.py --fix' + - "{{.PYTHON}} ./scripts/ci/lint-autoglottonyms.py --fix" + - "{{.PYTHON}} ./scripts/ci/lint-characters.py --fix" lint: cmds: - - '{{.PYTHON}} ./scripts/ci/lint-trailing-whitespace.py' + - "{{.PYTHON}} ./scripts/ci/lint-trailing-whitespace.py" run-gpu-test: desc: "Runs the game's built in GPU test" preconditions: @@ -186,29 +207,32 @@ tasks: cmds: - "{{.GK_BIN_RELEASE_DIR}}/gk -v --gpu-test opengl --gpu-test-out-path ./gpu-test.json" # TESTS + unit-tests: + cmds: + - "{{.GOALCTEST_BIN_DEBUG_DIR}}/goalc-test{{.EXE_FILE_EXTENSION}} {{.TEST_FILTER}}" offline-tests: # ran by jenkins cmds: - - '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test --iso_data_path "./iso_data/{{.GAME}}" --game {{.GAME}} --fail-on-cmp' + - '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test{{.EXE_FILE_EXTENSION}} --iso_data_path "./iso_data/{{.GAME}}" --game {{.GAME}} --fail-on-cmp' offline-test-file: cmds: - - '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test --iso_data_path "./iso_data/{{.GAME}}" --game {{.GAME}} --file {{.FILE}}' + - '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test{{.EXE_FILE_EXTENSION}} --iso_data_path "./iso_data/{{.GAME}}" --game {{.GAME}} --file {{.FILE}}' offline-tests-fast: cmds: - - '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test --iso_data_path "./iso_data/{{.GAME}}" --game {{.GAME}} --pretty-print --num_threads 32 --dump_current_output --fail-on-cmp' + - '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test{{.EXE_FILE_EXTENSION}} --iso_data_path "./iso_data/{{.GAME}}" --game {{.GAME}} --pretty-print --num_threads 32 --dump_current_output --fail-on-cmp' # TODO - amalgamate offline-tests and this task, run twice if the previous step fails update-ref-tests: cmds: - - cmd: '{{.PYTHON}} ./scripts/tasks/delete-file-or-folder.py --path failures' + - cmd: "{{.PYTHON}} ./scripts/tasks/delete-file-or-folder.py --path failures" - cmd: '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test --iso_data_path "./iso_data/{{.GAME}}" --game {{.GAME}} --pretty-print --num_threads 32 --dump_current_output --fail-on-cmp' ignore_error: true - - '{{.PYTHON}} ./scripts/update_decomp_reference.py ./failures ./test/decompiler/reference/ --game {{.GAME}}' + - "{{.PYTHON}} ./scripts/update_decomp_reference.py ./failures ./test/decompiler/reference/ --game {{.GAME}}" - task: offline-tests-fast update-ref-file: cmds: - - cmd: '{{.PYTHON}} ./scripts/tasks/delete-file-or-folder.py --path failures' + - cmd: "{{.PYTHON}} ./scripts/tasks/delete-file-or-folder.py --path failures" - cmd: '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test --iso_data_path "./iso_data/{{.GAME}}" --file {{.FILE}} --game {{.GAME}} --dump_current_output --fail-on-cmp' ignore_error: true - - '{{.PYTHON}} ./scripts/update_decomp_reference.py ./failures ./test/decompiler/reference/ --game {{.GAME}}' + - "{{.PYTHON}} ./scripts/update_decomp_reference.py ./failures ./test/decompiler/reference/ --game {{.GAME}}" - task: offline-test-file type-test: cmds: diff --git a/docker/Arch/Dockerfile b/docker/Arch/Dockerfile deleted file mode 100644 index 1e82723e8b..0000000000 --- a/docker/Arch/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -FROM archlinux:latest - -RUN pacman -Syyu --noconfirm --needed cmake libpulse base-devel nasm python git libx11 libxrandr libxinerama libxcursor libxi - -# makepkg user and workdir -ARG user=jak -RUN useradd --system --create-home $user \ - && echo "$user ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers.d/$user -USER $user -WORKDIR /home/$user - -# Install yay -RUN git clone https://aur.archlinux.org/yay.git \ - && cd yay \ - && makepkg -sri --needed --noconfirm \ - && cd \ - # Clean up - && rm -rf .cache yay - -RUN yay --noconfirm -S go-task - -RUN mkdir /home/$user/jak-project/ -COPY --chown=jak:jak . /home/$user/jak-project -RUN git config --global --add safe.directory /home/jak/jak-project - -WORKDIR /home/$user/jak-project - -RUN cmake -B build && cmake --build build -j 8 \ No newline at end of file diff --git a/docker/Fedora/Dockerfile b/docker/Fedora/Dockerfile deleted file mode 100644 index a150cf2fb0..0000000000 --- a/docker/Fedora/Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM fedora:latest - -RUN dnf install -y curl cmake python lld clang nasm libX11-devel libXrandr-devel libXinerama-devel libXcursor-devel libXi-devel pulseaudio-libs-devel -RUN sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin - -ARG user=jak - -RUN useradd -m -d /home/${user} ${user} - -USER $user - -WORKDIR /home/$user - -RUN mkdir /home/$user/jak-project/ -COPY --chown=jak:jak . /home/$user/jak-project - -WORKDIR /home/$user/jak-project - -RUN cmake -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -B build -RUN cmake --build build -j$(nproc) \ No newline at end of file diff --git a/docker/Ubuntu/Dockerfile b/docker/Ubuntu-20.04.Dockerfile similarity index 100% rename from docker/Ubuntu/Dockerfile rename to docker/Ubuntu-20.04.Dockerfile diff --git a/docs/img/code_progress.png b/docs/img/code_progress.png deleted file mode 100644 index 2d6032424c7397c216443b596bf67ab0c720323b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10861 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 diff --git a/docs/img/editors/zed/zed-build-proj.png b/docs/img/editors/zed/zed-build-proj.png new file mode 100644 index 0000000000000000000000000000000000000000..a724fd96ec855c49c6a5fb0dde5a84c600ba41b9 GIT binary patch literal 14504 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 literal 0 HcmV?d00001 diff --git a/docs/img/editors/zed/zed-run-example.png b/docs/img/editors/zed/zed-run-example.png new file mode 100644 index 0000000000000000000000000000000000000000..efab6476464a8fa23561d2851d3d1c54d9b7757a GIT binary patch literal 47047 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 pA8_XWpsd9s!~#*UZp`}j{{TVy Note: Any later documentation that shows a `task ...` command, would instead be a `go-task ...` command. + +## Fedora + +```sh +sudo dnf install cmake python lld clang nasm libX11-devel libXrandr-devel libXinerama-devel libXcursor-devel libXi-devel pulseaudio-libs-devel mesa-libGL-devel +sudo sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin +``` + +## Compiling and Building + +Compile: + +```sh +cmake -B build && cmake --build build -j 8 +``` + +Run tests: + +```sh +./test.sh +``` + +Note: we have found that `clang` and `lld` are significantly faster to compile and link than `gcc`, generate faster code, and have better warning messages. To install these: + +```sh +sudo apt install lld clang +``` + +and run `cmake` (in a fresh build directory) with: + +```sh +cmake -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ .. +``` diff --git a/docs/setup/system/macos.md b/docs/setup/system/macos.md new file mode 100644 index 0000000000..de3205e5de --- /dev/null +++ b/docs/setup/system/macos.md @@ -0,0 +1,34 @@ +# MacOS Environment Setup + +Running the game requires an Apple Silicon Mac running macOS Sequoia, or an Intel Mac. Additionally, we currently build on macOS 15 (Sequoia) at this time. + +Ensure that you have Xcode command line tools installed (this installs things like Apple Clang). If you don't, you can run the following command: + +```bash +xcode-select --install +``` + +On Apple Silicon, Rosetta 2 also must be installed: + +```bash +softwareupdate --install-rosetta +``` + +## Building for x86_64 + +```bash +brew install cmake nasm ninja go-task clang-format +cmake -B build --preset=Release-macos-x86_64-clang +cmake --build build --parallel $((`sysctl -n hw.logicalcpu`)) +``` + +## Building for ARM64 (experimental, unsupported) + +```bash +brew install cmake ninja go-task clang-format +cmake -B build --preset=Release-macos-arm64-clang +cmake --build build --parallel $((`sysctl -n hw.logicalcpu`)) +``` + +You may have to add the MacOS SDK to your `LIBRARY_PATH`: +- `export LIBRARY_PATH="$LIBRARY_PATH:/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"` diff --git a/docs/setup/system/windows.md b/docs/setup/system/windows.md new file mode 100644 index 0000000000..cc8f403bbc --- /dev/null +++ b/docs/setup/system/windows.md @@ -0,0 +1,13 @@ +# Windows Environment Setup + +Even if you do not intend to use Visual Studio as your IDE of choice, it is the only officially supported way of downloading the various Windows SDKs to build the C++ project. + +Download the latest community edition from [here](https://visualstudio.microsoft.com/vs/). At the time of writing this is Visual Studio 2022. + +You will require the `Desktop development with C++` workload. This can be selected during the installation, or after via the `Visual Studio Installer` program and modifying the Visual Studio Installation. + +We recommend getting the rest of the project's dependencies via a package manager, and for that we use Scoop. Follow the steps on the bottom of the homepage [here](https://scoop.sh/) to get it installed. + +```sh +scoop install git llvm nasm python task ninja cmake +``` diff --git a/scripts/tasks/Taskfile_darwin.yml b/scripts/tasks/Taskfile_darwin.yml index 4982077bf9..8b9692d564 100644 --- a/scripts/tasks/Taskfile_darwin.yml +++ b/scripts/tasks/Taskfile_darwin.yml @@ -1,13 +1,20 @@ version: 3 vars: - GOALC_BIN_RELEASE_DIR: './build/goalc' - GK_BIN_RELEASE_DIR: './build/game' - DECOMP_BIN_RELEASE_DIR: './build/decompiler' - MEMDUMP_BIN_RELEASE_DIR: './build/tools' - TYPESEARCH_BIN_RELEASE_DIR: './build/tools' - OFFLINETEST_BIN_RELEASE_DIR: './build' - GOALCTEST_BIN_RELEASE_DIR: './build' - FORMATTER_BIN_RELEASE_DIR: './build/tools' - EXE_FILE_EXTENSION: '' - PYTHON: 'python3' + GOALC_BIN_RELEASE_DIR: "./build/goalc" + GK_BIN_RELEASE_DIR: "./build/game" + DECOMP_BIN_DEBUG_DIR: "./build/decompiler" + DECOMP_BIN_RELEASE_DIR: "./build/decompiler" + MEMDUMP_BIN_RELEASE_DIR: "./build/tools" + TYPESEARCH_BIN_RELEASE_DIR: "./build/tools" + OFFLINETEST_BIN_RELEASE_DIR: "./build" + GOALCTEST_BIN_RELEASE_DIR: "./build" + FORMATTER_BIN_RELEASE_DIR: "./build/tools" + EXE_FILE_EXTENSION: "" + PYTHON: "python3" + DEFAULT_CMAKE_RELEASE_PRESET: "Release-macos-arm64-clang" + DEFAULT_CMAKE_DEBUG_PRESET: "" + CMAKE_GEN_BUILD_DIR_RELEASE: "-B build" + CMAKE_GEN_BUILD_DIR_DEBUG: "-B build" + CMAKE_BUILD_DIR_RELEASE: "--build build" + CMAKE_BUILD_DIR_DEBUG: "--build build" diff --git a/scripts/tasks/Taskfile_linux.yml b/scripts/tasks/Taskfile_linux.yml index 4982077bf9..0453bbb734 100644 --- a/scripts/tasks/Taskfile_linux.yml +++ b/scripts/tasks/Taskfile_linux.yml @@ -1,13 +1,20 @@ version: 3 vars: - GOALC_BIN_RELEASE_DIR: './build/goalc' - GK_BIN_RELEASE_DIR: './build/game' - DECOMP_BIN_RELEASE_DIR: './build/decompiler' - MEMDUMP_BIN_RELEASE_DIR: './build/tools' - TYPESEARCH_BIN_RELEASE_DIR: './build/tools' - OFFLINETEST_BIN_RELEASE_DIR: './build' - GOALCTEST_BIN_RELEASE_DIR: './build' - FORMATTER_BIN_RELEASE_DIR: './build/tools' - EXE_FILE_EXTENSION: '' - PYTHON: 'python3' + GOALC_BIN_RELEASE_DIR: "./build/goalc" + GK_BIN_RELEASE_DIR: "./build/game" + DECOMP_BIN_DEBUG_DIR: "./build/decompiler" + DECOMP_BIN_RELEASE_DIR: "./build/decompiler" + MEMDUMP_BIN_RELEASE_DIR: "./build/tools" + TYPESEARCH_BIN_RELEASE_DIR: "./build/tools" + OFFLINETEST_BIN_RELEASE_DIR: "./build" + GOALCTEST_BIN_RELEASE_DIR: "./build" + FORMATTER_BIN_RELEASE_DIR: "./build/tools" + EXE_FILE_EXTENSION: "" + PYTHON: "python3" + DEFAULT_CMAKE_RELEASE_PRESET: "Release-linux-clang" + DEFAULT_CMAKE_DEBUG_PRESET: "Debug-linux-clang" + CMAKE_GEN_BUILD_DIR_RELEASE: "-B build" + CMAKE_GEN_BUILD_DIR_DEBUG: "-B build" + CMAKE_BUILD_DIR_RELEASE: "--build build" + CMAKE_BUILD_DIR_DEBUG: "--build build" diff --git a/scripts/tasks/Taskfile_windows.yml b/scripts/tasks/Taskfile_windows.yml index 2aa17c3d77..7fba43689a 100644 --- a/scripts/tasks/Taskfile_windows.yml +++ b/scripts/tasks/Taskfile_windows.yml @@ -1,13 +1,21 @@ version: 3 vars: - GOALC_BIN_RELEASE_DIR: './out/build/Release/bin' - GK_BIN_RELEASE_DIR: './out/build/Release/bin' - DECOMP_BIN_RELEASE_DIR: './out/build/Release/bin' - MEMDUMP_BIN_RELEASE_DIR: './out/build/Release/bin' - TYPESEARCH_BIN_RELEASE_DIR: './out/build/Release/bin' - OFFLINETEST_BIN_RELEASE_DIR: './out/build/Release/bin' - GOALCTEST_BIN_RELEASE_DIR: './out/build/Release/bin' - FORMATTER_BIN_RELEASE_DIR: './out/build/Release/bin' - EXE_FILE_EXTENSION: '.exe' - PYTHON: 'python' + GOALC_BIN_RELEASE_DIR: "./out/build/Release/bin" + GK_BIN_RELEASE_DIR: "./out/build/Release/bin" + DECOMP_BIN_DEBUG_DIR: "./out/build/Debug/bin" + DECOMP_BIN_RELEASE_DIR: "./out/build/Release/bin" + MEMDUMP_BIN_RELEASE_DIR: "./out/build/Release/bin" + TYPESEARCH_BIN_RELEASE_DIR: "./out/build/Release/bin" + OFFLINETEST_BIN_RELEASE_DIR: "./out/build/Release/bin" + GOALCTEST_BIN_RELEASE_DIR: "./out/build/Release/bin" + GOALCTEST_BIN_DEBUG_DIR: "./out/build/Debug/bin" + FORMATTER_BIN_RELEASE_DIR: "./out/build/Release/bin" + EXE_FILE_EXTENSION: ".exe" + PYTHON: "python" + DEFAULT_CMAKE_RELEASE_PRESET: "Release-windows-clang" + DEFAULT_CMAKE_DEBUG_PRESET: "Debug-windows-clang" + CMAKE_GEN_BUILD_DIR_RELEASE: "" + CMAKE_GEN_BUILD_DIR_DEBUG: "" + CMAKE_BUILD_DIR_RELEASE: "--build ./out/build/Release" + CMAKE_BUILD_DIR_DEBUG: "--build ./out/build/Debug" diff --git a/test_no_filter.sh b/test_no_filter.sh index 03e27f4150..e6e06387d6 100755 --- a/test_no_filter.sh +++ b/test_no_filter.sh @@ -3,4 +3,4 @@ # Directory of this script DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" - $DIR/build/goalc-test --gtest_color=yes "$@" +$DIR/build/goalc-test --gtest_color=yes "$@" diff --git a/third-party/zydis/resources/VersionInfo.rc b/third-party/zydis/resources/VersionInfo.rc index 4af550459c..bbe9a82d3a 100644 --- a/third-party/zydis/resources/VersionInfo.rc +++ b/third-party/zydis/resources/VersionInfo.rc @@ -47,7 +47,7 @@ BEGIN VALUE "FileDescription", "Zyan Disassembler Library" VALUE "FileVersion", "5.0.0.0" VALUE "InternalName", "Zydis" - VALUE "LegalCopyright", "Copyright \xA9 2014-2024 by zyantific.com" + VALUE "LegalCopyright", "Copyright 2014-2024 by zyantific.com" VALUE "OriginalFilename", "Zydis.dll" VALUE "ProductName", "Zyan Disassembler Library" VALUE "ProductVersion", "5.0.0.0"