mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04:00
a66ec7c601
* all-types: improve all-types generation * all-types: re-generate all-types * tests: remove the test reporting feature the format indeed doesn't work, and all current actions require too many permissions for forked PRs. I'll make my own eventually that works properly (use the new markdown feature) * all-types: put the states in the method table instead * all-types: replace all `*time*...uint64` fields with `time-frame` type * all-types: address feedback
133 lines
5 KiB
YAML
133 lines
5 KiB
YAML
version: "3.13"
|
|
|
|
includes:
|
|
build: ./scripts/tasks/Taskfile_{{OS}}.yml
|
|
|
|
dotenv:
|
|
- ./scripts/tasks/.env
|
|
- ./scripts/tasks/.env.default
|
|
|
|
tasks:
|
|
# SETTINGS / CONFIGURATION
|
|
settings:
|
|
- 'python ./scripts/tasks/update-env.py --info'
|
|
set-game-jak1:
|
|
- 'python ./scripts/tasks/update-env.py --game jak1'
|
|
set-game-jak2:
|
|
- 'python ./scripts/tasks/update-env.py --game jak2'
|
|
set-decomp-ntscv1:
|
|
desc: "aka black label"
|
|
cmds:
|
|
- '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'
|
|
set-decomp-pal:
|
|
- 'python ./scripts/tasks/update-env.py --decomp_config pal'
|
|
set-decomp-ntscjp:
|
|
- 'python ./scripts/tasks/update-env.py --decomp_config ntscjp'
|
|
# GENERAL
|
|
extract:
|
|
desc: "Extracts the game's assets from './iso_data' with the set decompiler config"
|
|
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/{{.DECOMP_CONFIG}}" ./iso_data ./decompiler_out --config-override "{\\\"decompile_code\\\": false}"'
|
|
boot-game:
|
|
desc: "Boots the game, it will fail if it's not already booted!"
|
|
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, to start the game itself the REPL is required"
|
|
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"
|
|
# DEVELOPMENT
|
|
repl:
|
|
desc: "Start the REPL"
|
|
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 --game {{.GAME}}"
|
|
repl-lt:
|
|
cmds:
|
|
- "{{.GOALC_BIN_RELEASE_DIR}}/goalc --auto-lt --game {{.GAME}}"
|
|
format:
|
|
desc: "Format code"
|
|
cmds:
|
|
- cmd: python ./third-party/run-clang-format/run-clang-format.py -r common decompiler game goalc test tools lsp -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"
|
|
# DECOMPILING
|
|
decomp:
|
|
cmds:
|
|
- '{{.DECOMP_BIN_RELEASE_DIR}}/decompiler "./decompiler/config/{{.DECOMP_CONFIG}}" "./iso_data" "./decompiler_out"'
|
|
decomp-clean:
|
|
cmds:
|
|
- rm ./decompiler_out/**/*.asm
|
|
- rm ./decompiler_out/**/*disasm.gc
|
|
# TODO - the below are broken, need to be updated or replaced
|
|
# 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
|
|
# TOOLS
|
|
# TODO - broken!
|
|
# 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}}'
|
|
# TESTS
|
|
offline-tests:
|
|
cmds:
|
|
- '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test --iso_data_path "./iso_data/{{.GAME}}" --game {{.GAME}}'
|
|
# TODO - update or replace
|
|
# 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-ref-tests:
|
|
cmds:
|
|
- cmd: python ./scripts/tasks/default-file-or-folder.py --path failures
|
|
- cmd: '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test --iso_data_path "./iso_data/{{.GAME}}" --game {{.GAME}} --dump_current_output'
|
|
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}}"
|
|
# check-gsrc-file:
|
|
# cmds:
|
|
# - python ./scripts/check-gsrc-file.py --files "{{.FILES}}"
|
|
type-test:
|
|
cmds:
|
|
- cmd: '{{.GOALCTEST_BIN_RELEASE_DIR}}/goalc-test --gtest_brief=0 --gtest_filter="*MANUAL_TEST_TypeConsistencyWithBuildFirst*"'
|
|
ignore_error: true
|