diff --git a/README.md b/README.md index f88d6cf900..defae647f5 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ Install packages and init repository: ```sh sudo apt install gcc make cmake build-essential g++ nasm clang-format libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev python -sudo snap install task --classic +sudo sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin ``` Compile: @@ -119,7 +119,8 @@ cmake -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_EXE_LINKER_FLAGS="-fuse Install packages and init repository: ```sh -sudo pacman -S gcc make cmake base-devel g++ nasm taskfile-git python +sudo pacman -S gcc make cmake base-devel g++ nasm python +yay -S taskfile-git ``` Compile: @@ -158,11 +159,11 @@ nix-build -A packages.x86_64-linux.jak-asan # package with Clang ASan build ### Required Software -We primarily use Visual Studio for development on Windows for C++ development. Download the community addition from [here](https://visualstudio.microsoft.com/vs/) +We primarily use Visual Studio on Windows for C++ development. Download the latest community edition from [here](https://visualstudio.microsoft.com/vs/) -You will require the `Desktop development with C++` workload. This can be selected during the installation, or after via the `Visual Studio Installer` and modifying the Visual Studio Installation. +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 get Scoop to use as a package manager, making the following steps _much_ easier. Follow the steps on the bottom of the homepage [here](https://scoop.sh/) +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: @@ -180,7 +181,7 @@ Clone the repository by running the following command in your folder of choice. git clone https://github.com/open-goal/jak-project.git ``` -This will create a `jak-project` folder, we will open the project as a CMake project via Visual Studio. +This will create a `jak-project` folder, open the project as a CMake project via Visual Studio. ![](./docs/img/windows/open-project.png) @@ -200,7 +201,7 @@ Getting a running game involves 4 steps: ### Extract Assets -The first step is to extract your ISO file contents into the `iso_data/` folder. In the case of jak this is `iso_data/jak1`. +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`. Once this is done, open a terminal in the `jak-project` folder and run the following: @@ -239,7 +240,7 @@ g > (mi) ### Run the Game -Finally the game can be ran. Open a second terminal from the `jak-project` directly and run the following: +Finally the game can be ran. Open a second terminal from the `jak-project` directory and run the following: ```sh task boot-game @@ -257,7 +258,7 @@ To do so, in the REPL after a successful `(mi)`, run the following: g > (lt) ``` -If successfuly your prompt should change to: +If successful, your prompt should change to: ```sh gc> diff --git a/Taskfile.yml b/Taskfile.yml index 67b70b55a9..6558388b53 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -7,18 +7,18 @@ tasks: # GENERAL extract-jak1: cmds: - - '{{.RELEASE_PATH}}/decompiler "./decompiler/config/jak1_ntsc_black_label.jsonc" "./iso_data" "./decompiler_out" "decompile_code=false"' + - '{{.DECOMP_BIN_RELEASE_DIR}}/decompiler "./decompiler/config/jak1_ntsc_black_label.jsonc" "./iso_data" "./decompiler_out" "decompile_code=false"' boot-game: cmds: - - "{{.RELEASE_PATH}}/gk -boot -fakeiso -debug -v" + - "{{.GK_BIN_RELEASE_DIR}}/gk -boot -fakeiso -debug -v" run-game: cmds: - - "{{.RELEASE_PATH}}/gk -fakeiso -debug -v" + - "{{.GK_BIN_RELEASE_DIR}}/gk -fakeiso -debug -v" repl: env: OPENGOAL_DECOMP_DIR: "jak1/" cmds: - - "{{.RELEASE_PATH}}/goalc" + - "{{.GOALC_BIN_RELEASE_DIR}}/goalc" # DEVELOPMENT format: cmds: @@ -28,16 +28,16 @@ tasks: ignore_error: true run-game-headless: cmds: - - "{{.RELEASE_PATH}}/gk -fakeiso -debug -nodisplay" + - "{{.GK_BIN_RELEASE_DIR}}/gk -fakeiso -debug -nodisplay" repl-lt: env: OPENGOAL_DECOMP_DIR: "jak1/" cmds: - - "{{.RELEASE_PATH}}/goalc -auto-lt" + - "{{.GOALC_BIN_RELEASE_DIR}}/goalc -auto-lt" # DECOMPILING decomp: cmds: - - '{{.RELEASE_PATH}}/decompiler "./decompiler/config/jak1_ntsc_black_label.jsonc" "./iso_data" "./decompiler_out"' + - '{{.DECOMP_BIN_RELEASE_DIR}}/decompiler "./decompiler/config/jak1_ntsc_black_label.jsonc" "./iso_data" "./decompiler_out"' decomp-clean: cmds: - rm ./decompiler_out/**/*.asm @@ -58,7 +58,7 @@ tasks: # TESTS offline-tests: cmds: - - '{{.RELEASE_PATH}}/offline-test "./iso_data/jak1"' + - '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test "./iso_data/jak1"' add-reference-test: cmds: - task: decomp-file @@ -71,7 +71,7 @@ tasks: update-reference-tests: cmds: - cmd: python ./scripts/default-file-or-folder.py --path failures - - cmd: '{{.RELEASE_PATH}}/offline-test "./iso_data/jak1" --dump-mode' + - cmd: '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test "./iso_data/jak1" --dump-mode' ignore_error: true - python ./scripts/update_decomp_reference.py ./failures ./test/decompiler/reference/ - task: offline-tests @@ -82,7 +82,7 @@ tasks: - python ./scripts/find-label-types.py --file "{{.FILES}}" type-test: cmds: - - cmd: '{{.RELEASE_PATH}}/goalc-test --gtest_brief=0 --gtest_filter="*MANUAL_TEST_TypeConsistencyWithBuildFirst*"' + - cmd: '{{.GOALCTEST_BIN_RELEASE_DIR}}/goalc-test --gtest_brief=0 --gtest_filter="*MANUAL_TEST_TypeConsistencyWithBuildFirst*"' ignore_error: true check-gsrc-file: cmds: @@ -90,7 +90,7 @@ tasks: # TOOLS analyze-ee-memory: cmds: - - '{{.RELEASE_PATH}}/memory_dump_tool "{{.FILE}}" ./ > ee-analysis.log' + - '{{.MEMDUMP_BIN_RELEASE_DIR}}/memory_dump_tool "{{.FILE}}" ./ > ee-analysis.log' watch-pcsx2: cmds: - watchmedo shell-command --drop --patterns="*.p2s" --recursive --command='task analyze-ee-memory FILE="${watch_src_path}"' "{{.SAVESTATE_DIR}}" diff --git a/scripts/tasks/Taskfile_darwin.yml b/scripts/tasks/Taskfile_darwin.yml index 956f5f4946..ccddd79310 100644 --- a/scripts/tasks/Taskfile_darwin.yml +++ b/scripts/tasks/Taskfile_darwin.yml @@ -1,4 +1,9 @@ version: '3' vars: - RELEASE_PATH: './build' + GOALC_BIN_RELEASE_DIR: './build/goalc' + GK_BIN_RELEASE_DIR: './build/game' + DECOMP_BIN_RELEASE_DIR: './build/decompiler' + MEMDUMP_BIN_RELEASE_DIR: './build/tools' + OFFLINETEST_BIN_RELEASE_DIR: './build' + GOALCTEST_BIN_RELEASE_DIR: './build' diff --git a/scripts/tasks/Taskfile_linux.yml b/scripts/tasks/Taskfile_linux.yml index 956f5f4946..ccddd79310 100644 --- a/scripts/tasks/Taskfile_linux.yml +++ b/scripts/tasks/Taskfile_linux.yml @@ -1,4 +1,9 @@ version: '3' vars: - RELEASE_PATH: './build' + GOALC_BIN_RELEASE_DIR: './build/goalc' + GK_BIN_RELEASE_DIR: './build/game' + DECOMP_BIN_RELEASE_DIR: './build/decompiler' + MEMDUMP_BIN_RELEASE_DIR: './build/tools' + OFFLINETEST_BIN_RELEASE_DIR: './build' + GOALCTEST_BIN_RELEASE_DIR: './build' diff --git a/scripts/tasks/Taskfile_windows.yml b/scripts/tasks/Taskfile_windows.yml index 910ead1667..33c018704f 100644 --- a/scripts/tasks/Taskfile_windows.yml +++ b/scripts/tasks/Taskfile_windows.yml @@ -1,4 +1,9 @@ version: '3' vars: - RELEASE_PATH: './out/build/Release/bin' + 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' + OFFLINETEST_BIN_RELEASE_DIR: './out/build/Release/bin' + GOALCTEST_BIN_RELEASE_DIR: './out/build/Release/bin'