version: '3' includes: build: ./scripts/tasks/Taskfile_{{OS}}.yml tasks: # GENERAL extract-jak1: desc: "Extracts Jak 1 - NTSC - Black Label assets" preconditions: - 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/jak1_ntsc_black_label.jsonc" "./iso_data" "./decompiler_out" "decompile_code=false"' boot-game: desc: "Boots the game" preconditions: - sh: test -f {{.GK_BIN_RELEASE_DIR}}/gk{{.EXE_FILE_EXTENSION}} msg: "Couldn't locate runtime executable in '{{.GK_BIN_RELEASE_DIR}}/gk'" cmds: - "{{.GK_BIN_RELEASE_DIR}}/gk -boot -fakeiso -debug -v" run-game: desc: "Start the game's runtime" preconditions: - sh: test -f {{.GK_BIN_RELEASE_DIR}}/gk{{.EXE_FILE_EXTENSION}} msg: "Couldn't locate runtime executable in '{{.GK_BIN_RELEASE_DIR}}/gk'" cmds: - "{{.GK_BIN_RELEASE_DIR}}/gk -fakeiso -debug -v" run-game-quiet: preconditions: - sh: test -f {{.GK_BIN_RELEASE_DIR}}/gk{{.EXE_FILE_EXTENSION}} msg: "Couldn't locate runtime executable in '{{.GK_BIN_RELEASE_DIR}}/gk'" cmds: - "{{.GK_BIN_RELEASE_DIR}}/gk -fakeiso" repl: desc: "Start the REPL" env: OPENGOAL_DECOMP_DIR: "jak1/" preconditions: - sh: test -f {{.GOALC_BIN_RELEASE_DIR}}/goalc{{.EXE_FILE_EXTENSION}} msg: "Couldn't locate compiler executable in '{{.GOALC_BIN_RELEASE_DIR}}/goalc'" cmds: - "{{.GOALC_BIN_RELEASE_DIR}}/goalc" # DEVELOPMENT format: desc: "Format code" cmds: - cmd: python ./third-party/run-clang-format/run-clang-format.py -r common decompiler game goalc test -i # npm install -g prettier - cmd: npx prettier --write ./decompiler/config/jak1_ntsc_black_label/*.jsonc ignore_error: true run-game-headless: cmds: - "{{.GK_BIN_RELEASE_DIR}}/gk -fakeiso -debug -nodisplay" repl-lt: env: OPENGOAL_DECOMP_DIR: "jak1/" cmds: - "{{.GOALC_BIN_RELEASE_DIR}}/goalc --auto-lt" # DECOMPILING decomp: cmds: - '{{.DECOMP_BIN_RELEASE_DIR}}/decompiler "./decompiler/config/jak1_ntsc_black_label.jsonc" "./iso_data" "./decompiler_out"' decomp-clean: cmds: - rm ./decompiler_out/**/*.asm - rm ./decompiler_out/**/*disasm.gc decomp-file: cmds: - python ./scripts/next-decomp-file.py --files "{{.FILES}}" - task: decomp decomp-list: cmds: - python ./scripts/next-decomp-file.py --list "{{.LIST}}" vars: LIST: '{{default "0" .LIST}}' # python -m pip install -U watchdog[watchmedo] decomp-watch: cmds: - watchmedo shell-command --drop --patterns="*.gc;*.jsonc" --recursive --command='task decomp-file FILES="{{.FILES}}"' ./decompiler/config/ # TESTS offline-tests: cmds: - '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test "./iso_data/jak1"' add-reference-test: cmds: - task: decomp-file - python ./scripts/add-reference-test.py --file "{{.FILES}}" - task: offline-tests add-reference-test-no-decomp: cmds: - python ./scripts/add-reference-test.py --file "{{.FILES}}" - task: offline-tests update-reference-tests: cmds: - cmd: python ./scripts/default-file-or-folder.py --path failures - 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 find-label-types: cmds: - python ./scripts/next-decomp-file.py --files "{{.FILES}}" - task: decomp - python ./scripts/find-label-types.py --file "{{.FILES}}" type-test: cmds: - cmd: '{{.GOALCTEST_BIN_RELEASE_DIR}}/goalc-test --gtest_brief=0 --gtest_filter="*MANUAL_TEST_TypeConsistencyWithBuildFirst*"' ignore_error: true check-gsrc-file: cmds: - python ./scripts/check-gsrc-file.py --files "{{.FILES}}" # TOOLS analyze-ee-memory: cmds: - '{{.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}}" vars: SAVESTATE_DIR: '{{default "." .SAVESTATE_DIR}}' update-gsrc: cmds: - python ./scripts/next-decomp-file.py --files "{{.FILES}}" - task: decomp - task: find-label-types - python ./scripts/update-goal-src.py --files "{{.FILES}}" - task: type-test - task: check-gsrc-file cast-repl: cmds: - cmd: python ./scripts/cast-repl.py