mirror of
https://github.com/open-goal/jak-project
synced 2026-05-23 15:02:01 -04:00
59e0c5e264
Probably the last major missing file. The bigmap fetches the correct level and map info, but doesn't actually render anything right now.  
158 lines
7.5 KiB
YAML
158 lines
7.5 KiB
YAML
version: 3
|
|
|
|
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:
|
|
desc: "PAL region version"
|
|
cmds:
|
|
- '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'
|
|
# 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\" --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:
|
|
- 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 -v --game {{.GAME}} -- -boot -fakeiso -debug"
|
|
boot-game-retail:
|
|
desc: "Boots the game without debug mode, it will fail if it's not already compiled!"
|
|
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 -v --game {{.GAME}} -- -boot -fakeiso"
|
|
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 -v --game {{.GAME}} -- -fakeiso -debug"
|
|
# 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 --user-auto --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/**/*.jsonc
|
|
ignore_error: true
|
|
- cmd: npx prettier --write ./decompiler/config/jak2/**/*.jsonc
|
|
ignore_error: true
|
|
format-json:
|
|
desc: "Format code"
|
|
cmds:
|
|
# npm install -g prettier
|
|
- cmd: npx prettier --write ./decompiler/config/jak1/**/*.jsonc
|
|
ignore_error: true
|
|
- cmd: npx prettier --write ./decompiler/config/jak2/**/*.jsonc
|
|
ignore_error: true
|
|
# 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-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-clean:
|
|
cmds:
|
|
- python ./scripts/tasks/clean-decomp.py --game "{{.GAME}}"
|
|
lint-gsrc-file:
|
|
cmds:
|
|
- python ./scripts/gsrc/lint-gsrc-file.py --game {{.GAME}} --file {{.FILE}}
|
|
update-gsrc:
|
|
cmds:
|
|
- python ./scripts/gsrc/update-gsrc-via-refs.py --game "{{.GAME}}" --decompiler "{{.DECOMP_BIN_RELEASE_DIR}}/decompiler" --decompiler_config {{.DECOMP_CONFIG}} --version {{.DECOMP_CONFIG_VERSION}}
|
|
update-gsrc-glob:
|
|
cmds:
|
|
- python ./scripts/gsrc/update-gsrc-via-refs.py --game "{{.GAME}}" --file_pattern "{{.GLOB}}" --decompiler "{{.DECOMP_BIN_RELEASE_DIR}}/decompiler" --decompiler_config {{.DECOMP_CONFIG}} --version {{.DECOMP_CONFIG_VERSION}}
|
|
update-gsrc-file:
|
|
cmds:
|
|
- task: decomp-file
|
|
- python ./scripts/gsrc/update-from-decomp.py --game "{{.GAME}}" --file {{.FILE}}
|
|
- task: lint-gsrc-file
|
|
# 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'
|
|
watch-pcsx2:
|
|
# python -m pip install -U "watchdog[watchmedo]"
|
|
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}}'
|
|
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}]'"
|
|
# TESTS
|
|
offline-tests: # ran by jenkins
|
|
cmds:
|
|
- '{{.OFFLINETEST_BIN_RELEASE_DIR}}/offline-test --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}}'
|
|
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'
|
|
# 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: '{{.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}}
|
|
- task: offline-tests-fast
|
|
update-ref-file:
|
|
cmds:
|
|
- 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}}
|
|
- task: offline-test-file
|
|
type-test-jak1:
|
|
cmds:
|
|
- cmd: '{{.GOALCTEST_BIN_RELEASE_DIR}}/goalc-test --gtest_brief=0 --gtest_filter="*Jak1TypeConsistency*" --gtest_break_on_failure'
|
|
type-test:
|
|
cmds:
|
|
- cmd: '{{.GOALCTEST_BIN_RELEASE_DIR}}/goalc-test --gtest_brief=0 --gtest_filter="*Jak2TypeConsistency*" --gtest_break_on_failure'
|