Commit graph

72 commits

Author SHA1 Message Date
Tyler Wilding 92105bb696
ci: update buildcache back now that things have stabilized (#1997)
My changes for allowing an explicit tag have now been merged to the
original action, so no need to use my fork.

Additionally, buildcache itself reverted to using ubuntu 20.04 to fix
this issue, but we'll leave the explicit tag there anyway to avoid
sudden breakage in the future.
2022-10-29 18:22:02 -04:00
Tyler Wilding 84497712ff
d/jak2: finish task-arrow | carry-h | projectile | gun-[red|yellow|blue]-shot (#1864) 2022-10-29 15:22:57 -04:00
Tyler Wilding b602b83d17
ci: rollback to previous buildcache version (#1981)
buildcache's latest release changes to be built on Ubuntu22.04, which
breaks our 20.04 runners
2022-10-20 09:07:50 -04:00
Tyler Wilding 332f0b2f2b
tools: add a tool to search for types based on size / type chain / fields (#1906)
Just a small simple tool that can search through `all-types` for a type
based on a bunch of criteria.

For example:

![image](https://user-images.githubusercontent.com/13153231/192043561-181e5c5d-d5b1-41a9-8891-5cc3ed1a0efa.png)

The results are printed to stdout, as well as output to a json file so
they can be consumed by another tool (in my plans, the VSCode extension)
2022-09-24 16:04:52 -04:00
Tyler Wilding e64414d9d0
d/jak2: finish drawable-group | drawable-inline-array | drawable-tree and path (#1899) 2022-09-24 12:27:02 -04:00
Tyler Wilding a1b5935655
release: inform the launcher repo when a release is cut (#1788) 2022-08-23 19:13:57 -04:00
Tyler Wilding e71adf6e3d
tests: allow the binary prep steps in the linux release script to be skipped (#1772) 2022-08-19 21:50:36 -04:00
Tyler Wilding b2eb041ebe
ci: add back the windows artifact (#1766) 2022-08-17 00:57:59 -04:00
Tyler Wilding a72b6e5e01
goal_src: Get rid of *OLD* files in jak1's goal_src (#1736)
* gsrc: delete empty OLD files

* ci: put the right author on the controller updating commits
2022-08-06 12:03:42 -04:00
Tyler Wilding a66ec7c601
all-types: Improve Jak 2's all-types (#1728)
* 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
2022-08-05 17:39:32 -04:00
Tyler Wilding 8651179aa3
tests: Cleanup decompiler test fixtures and try to improve the test output / add a readable report (#1724)
* tests: add a Jak2 `FormRegressionTest` fixture

* tests/ci: minimize test log output and produce a readable report

* improve naming of report due to underlying GitHub issue

* hopefully fix windows handling of this argument

* test...

* final test

* test linux coverage
2022-08-05 12:12:33 -04:00
Tyler Wilding 329bde229e
release: ensure linux artifacts have execute permissions (#1713) 2022-07-29 20:10:30 -04:00
Tyler Wilding d1ad6c3817
utf8: fix locale mis-handling on linux (#1698)
* utf8: fix locale mis-handling on linux

* lint: formatting
2022-07-23 10:30:23 -04:00
Tyler Wilding 01c70368e3
LSP: initial LSP implementation for IR files to assist with decompilation (#1647)
* lsp: json-rpc example is working, a decent place to start...

* lsp: vendor library

* lsp: cleanup and time to get started

* lsp: commit what i got so far

* lsp: example `initialize` payload

* lsp: switch to `stdio`

* stash

* modularize the lsp implementation

* lsp: implement first actual LSP feature - function names in outline

* lsp: produce document diagnostics

* lsp: remove unused third-party lib

* lsp: support hovering MIPS instructions in IR files

* lsp: basic go-to all-types definition

* stash

* lsp: cleanup code, just need to add it to the release artifacts

* fix some project configuration

* fix linux build

* lsp: add lsp to PR artifacts and release assets

* lsp: address feedback
2022-07-18 18:26:57 -04:00
Tyler Wilding 0a7a791571
CI: Cleanup release process (#1659)
* ci: overhaul workflows

* ci: some fixes
2022-07-16 19:25:10 -04:00
Tyler Wilding 8a18072d97
tests/jak2: Better prepare offline tests for multiple games (#1591)
* git: ignore vs build dir

* cmake: ditch `clang-cl` on windows in favor of actual `clang`

* build: suppress a significant number of warnings

* build: adjust workflows and vendor nasm

* docs: update docs to remove `clang-cl` mentions

* tests: move jak1 reference tests into their own folder

* tests: update offline tests to support multiple games

* tests: some additional fixes and multi-game handling

* tests: update reference tests
2022-07-06 18:10:38 -04:00
Tyler Wilding 7f05974956
build: ensure zydis statically links when we want it to (#1599)
* build: ensure `zydis` statically links when we want it to

* test

* test-static

* revert the static test commit

* build: don't generate cmake twice on release builds
2022-07-03 20:26:04 -04:00
Tyler Wilding 8fefd298fd
build: get rid of clang-cl in favor of actual clang among other things (#1589)
* git: ignore vs build dir

* cmake: ditch `clang-cl` on windows in favor of actual `clang`

* build: suppress a significant number of warnings

* build: adjust workflows and vendor nasm

* docs: update docs to remove `clang-cl` mentions

* build: fix some copy-paste mistakes in the linux build

* build: remove C++20 compat warnings as that is useful if we want to upgrade
2022-07-03 17:35:39 -04:00
Shalen Bennett 20304715af
Replace assert with user-friendly error if ISO is invalid or not found (#1540)
* Replace assert with user-friendly error if ISO not found

When the extractor runs and can't detect a game folder, it will assume there is an ISO file in the directory instead. If there isn't an ISO file, or it's a different extension, it will trigger an assert. This adds an additional check to make sure the file extension is of type `.iso` and returns a more clear message to the user.

Once I get home I'll iterate upon this a bit to add file size checks and reading header data as well as making sure the error code is able to be reported to the launcher.

* Fix `extension` call & formatting

more de-rust lol

* fix extension call (again)

* fix ONE extra parenthesis

* argument incompatible with fmt print

will fix print later

* add ONE missing parenthesis 

never taking intellisense for granted again

* Add ISO size checks and rework type check

* actually print `data_dir_path` :p

* Normalize extension case before verifying file type

+ clang-format

* clang-format

Co-authored-by: doctashay <doctashay@github.com>
2022-06-24 18:27:57 -04:00
Tyler Wilding 9754688879
github: fix issue with bug report template (#1532) 2022-06-23 16:36:47 -04:00
Tyler Wilding 17c9861f3c
github: improve bug report issue template (#1527)
* github: improve bug report issue template

* github: add refresh rate question
2022-06-23 16:34:05 -04:00
ManDude 7d5045ab3f
PAL & NTSC-J support + updates (#1490)
* PAL dumps files

* alrighty then

* make PAL warning slightly more specific

* PAL patches for `title-obs`

* Update all-types.gc

* PAL patch `beach-obs`

* `process-taskable` PAL patch

* `ambient` PAL patch

* `yakow` PAL patch

* `village-obs` PAL patch

* `sparticle-launcher` patch

* `swamp-obs` PAL patch

* `sequence-a-village1` PAL patch

* typo

* errors

* `powerups` PAL patch

* `ogreboss` PAL patch

* jak 1 v2 encoding

* `load-boundary` PAL patch

* `flying-lurker` PAL patch

* `mayor` PAL patch

* update game encoding to PAL (v2) encoding

* `cam-debug` and `cam-update` PAL patch

* `fisher` PAL patch

* `target` PAL patch

* `target2` PAL patch and fix text compiling

* `target-death` PAL patch

* `target-racer-h` PAL patch

* `logic-target` PAL patch

* `main` PAL patch

* `snow-flutflut-obs` PAL patch

* `rolling-obs` PAL patch

* `gsound` PAL patch

* update refs

* `progress` and `progress-draw` PAL patches

* clang

* wrong.

* complain

* clang

* fix test

* fix blurry jp text

* fix weird interrupt lag from setting window size

* patch more text lines, special handling for credits

* Update FontUtils.cpp

* Add xdelta3 and file patching interface

* add window lock toggle and update settings ver

* better particle hacks

* add PAL support to extractor

* Fix credits

* also NTSC-J support

* make xdelta3 a separate library

* address feedback

Co-authored-by: water <awaterford111445@gmail.com>
2022-06-22 05:16:34 +01:00
water111 c13934708a
Initial implementation of custom level tool (#1482)
* wip

* learning about colors

* gltf node stuff working

* cleanup

* support textures

* bvh generation seems reasonable

* tree layout

* frag packer, untested and doesnt do real stripping yet

* temp

* working collide frags

* handle bad inputs better

* clean up

* format

* include

* another include

* reorganize for release build use
2022-06-19 20:44:07 -04:00
Hat Kid 0ec742319e
issues: add issue templates (#1480) 2022-06-18 15:22:50 -04:00
Hat Kid 0ff6cf4747
actions: add libpulse-dev dependency to fix audio on pipewire systems (#1473)
actions: add libpulse-dev package to dependencies
2022-06-17 22:06:53 -04:00
Tyler Wilding fb532f2a53
release: include error metadata file for launcher purposes (#1463)
* release: include error metadata file for launcher purposes

* release: put release assets in the top level of the 7z/tarball (no out/ dir)

* extractor: ensure critical directories are created

* extractor: handle weird Win32 path prefix `\\?\` by stripping it out

* release: avoid using `-C` with `tar`
2022-06-17 22:05:02 -04:00
dependabot[bot] 0f3daa8fc7
Bump peter-evans/repository-dispatch from 1 to 2 (#1268)
Bumps [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) from 1 to 2.
- [Release notes](https://github.com/peter-evans/repository-dispatch/releases)
- [Commits](https://github.com/peter-evans/repository-dispatch/compare/v1...v2)

---
updated-dependencies:
- dependency-name: peter-evans/repository-dispatch
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-19 16:56:26 -04:00
dependabot[bot] 87e7ed54ec
Bump EndBug/add-and-commit from 8 to 9 (#1349)
Bumps [EndBug/add-and-commit](https://github.com/EndBug/add-and-commit) from 8 to 9.
- [Release notes](https://github.com/EndBug/add-and-commit/releases)
- [Changelog](https://github.com/EndBug/add-and-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/EndBug/add-and-commit/compare/v8...v9)

---
updated-dependencies:
- dependency-name: EndBug/add-and-commit
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-19 16:55:18 -04:00
water111 e8911758f0
[graphics] small improvements (#1351)
* faster texture upload lookup

* fix debug menu

* cleanup

* one more
2022-05-02 21:26:17 -04:00
Tyler Wilding 0d4b5f8df4
game: add SDL controller database (#1328)
* game: add SDL controller database

* lint: formatting
2022-04-20 18:20:59 -04:00
Tyler Wilding 5369932fcd
ci: make linux release artifact structure match windows (#1326) 2022-04-19 22:16:33 -04:00
Tyler Wilding c4a92571b2
Improve ASSERT macro, fix linux file paths in Taskfile and hopefully fix the windows release (#1295)
* ci: fix windows releases (hopefully)

* scripts: fix Taskfile file references for linux

* asserts: add `ASSERT_MSG` macro and ensure `stdout` is flushed before `abort`ing

* asserts: refactor all `assert(false);` with a preceeding message instances

* lint: format

* temp...

* fix compiler errors

* assert: allow for string literals in `ASSERT_MSG`

* lint: formatting

* revert temp change for testing
2022-04-12 18:48:27 -04:00
Tyler Wilding 2caf75a11c
ci: there is no point in building with code-coverage on clang (#1285) 2022-04-04 21:29:38 -04:00
Tyler Wilding 79f255bcc1
release: switch to 7z on windows because it doesnt have zip (#1284) 2022-04-04 21:24:52 -04:00
Tyler Wilding dba95660ea
release: fix windows artifacts and stop building asan when releasing on linux (#1283)
* release: fix windows artifacts and stop building asan when releasing on linux

* release: use valid paths in the container's context
2022-04-04 20:50:08 -04:00
water111 8e71184daf
rename linux artifact (#1277)
* rename linux artifact

* just linux
2022-04-03 19:44:25 -04:00
water111 5bd0b735a5
Add extractor tool (#1276)
* first attempt

* fix

* zip to tar

* windows

* try again, std::filesystem sucks

* std::filesystem is still garbage

* std::filesystem is terrible

* std::filesystem continues to waste my time

* again

* neadsflaldksal;df
2022-04-03 19:17:03 -04:00
Tyler Wilding e74bd3b32b
ci: Add an automated release process (#1262)
* ci: bring over some of my code to enable the process

* ci: cleanup builds a bit and add release stuff

* ci: fix paths and such after debugging

* ci: fix flowchart

* cmake: easily toggle between building everything dyn or statically linked

* ci: build release artifacts statically linked

* ci: fix some issues after testing once again, linux binaries are still too big
2022-03-29 22:47:08 -04:00
Tyler Wilding b688bdbfd1
ci: stop trying to cache clang-cl builds (#1260) 2022-03-28 18:15:13 -04:00
Tyler Wilding e4c841f9f5
docs: delete content that now lives in another repo (#1160) 2022-02-12 23:20:43 -05:00
Tyler Wilding ffb04ddd10
Documentation cleanup and some feature improvements (#1155)
* ci: switch to codacy for coverage

* docs: update badges

* decomp: allow overriding config flags via CLI

* cleanup: top level file cleanup

* docs: big README overhaul

Attempt to close #1128 and #1086

* decomp: attempt to detect if `iso_data` is missing or wrongly extracted

* game: switch to `fpng` for screenshots, allow for compression

closes #1035

* game: switch vsync control to a checkbox

* lint: format cpp files

* lint: format json files

* docs/scripts: organize taskfile
2022-02-12 17:48:50 -05:00
water111 78cde74d5a
update readme and fix always playing str (#1139)
* update readme deps

* replace assert

* bump timeout

* fix memory corruption in kernel

* use unknown if level name is invalid
2022-02-08 19:02:47 -05:00
Tyler Wilding 3f394ef4d6
ci: shift docs website over to a separate repo (#1144) 2022-02-08 18:31:14 -05:00
ManDude 5b44aece75
random fixes + support clang-cl on visual studio (#1129)
* delete unused shaders

* hide some options in debug menu

* change fullscreen logic a bit

* add "all actors" toggle

* borderless fix and fix alpha in direct renderer untextured (do we need a separate shader for that?)

* fix fuel cell orbit icons in widescreen

* fix `curve` types

* refs

* fix levitator task...

* fix some task stuff

* update font code a bit (temp)

* cmake, third-party and visual studio overhaul

* Update .gitmodules

* update modules

* clone repos

* fix encoding in zydis

* where did these come from

* try again

* add submodule

* Update 11zip

* Update 11zip

* Update 11zip

* delete

* try again

* clang

* update compiler flags

* delete 11zip. go away.

* Create memory-dump-p2s.py

* properly

* fix minimum architecture c++ compiler flags

* fix zydis

* oops

* Update all-types.gc

* fix clang-cl tests

* make "all actors" work better, entity debug qol

* update game-text conversion code to be more modularized

* Create vendor.txt

* fix typos and minor things

* update refs

* clang

* Attempt to add clang-cl support to vs2019 and CI

* vs2022 + clang-cl

* srsly? fix clang build

* Update launch.vs.json

* extend windows CI timer
2022-02-07 19:15:37 -05:00
Tyler Wilding 90438523cd
docs: mobile optimize docs portal, support videos, better gallery features (#1099)
* docs: quick update of readme and windows screenshots for vs 2022

* update the docs portal to be better on mobile, support videos, and better gallery

* docs: re-generate site
2022-01-20 00:17:39 -05:00
Tyler Wilding 90e860aef8
ci: retry on transient chocolatey failures (#1070) 2022-01-09 17:45:10 -05:00
Tyler Wilding 7117a512c7
docs: Refresh the homepage and add some basic gallery support (#1051)
* docs: refresh the homepage

* docs: basic gallery support added

* homepage background image back to jpg

* docs: remove data file tracker, as it's soon to be removed
2022-01-04 21:05:27 -05:00
Tyler Wilding 9d9c944dc5
docs: include the -lock file to hopefully make CI builds consist with local ones (#991) 2021-12-04 13:49:28 -05:00
Tyler Wilding 5f1ed7ab60
decomp: decompile *-obs files (#856)
* decomp: mostly finish `cam-master`

* decomp/scripts: lots of work in cam-states

* stash

* Merge remote-tracking branch 'water111/master' into decomp/camera-master

Updated submodule third-party/googletest

* decompiler: Add support for non power of 2 offsets for inline arr access

* decomp: mostly finish `cam-states` need to fix a macro issue

* blocked: `cam-master` decompiler crash when adding casts

* decomp: finish `cam-states-dbg`

* decomp: mostly finish `pov-camera` with the exception of joint-related code

* decomp: `cam-debug` finished decompiling, no way does this compile yet though

* decomp: considerable work done in `cam-layout`

* decomp: `cam-layout` almost done!

* decomp: `pov-camera` finished, TC tests will fail for now

* decomp: working on resolving issues

* decomp: cam-layout decompiling

* fixing more issues in cam-master...one event handler remains

* skip problematic function in `cam-master` for now

* gsrc: update res macros

* decomp: finish `cam-states`

* decomp: giving up on `cam-debug`

* tests: allow skipping state handlers in ref tests

* decomp: working through cam-layout bugs

* decomp: allow for shifting non-integers

* decomp: finalize `cam-layout` and `cam-master`

* decomp: finalize `cam-states`

* cleanup: bi-annual formatting of the casting files

* formatting

* decomp: start working on beach-obs

* blocked: `beach-obs` mostly finished, but handle cast issues and unknown `prebind` func signature

* blocked: `villagep-obs` done, `s6` not being referred to as `self`

* decomp: finish `citadel-obs`

* decomp: finish `darkcave-obs`

* blocked: need to allow `hud-h` to decompile properly (#f as static pointer)

* decomp: finish `jungle-obs`

* decomp: finish `village-obs`

* blocked: `misty-obs` handle cast issues

* decomp: finish `village2-obs`

* decomp: 1 function left in `swamp-obs`, particle related -- maybe we know now?

* decomp: finish `swamp-obs`

* blocked: `maincave-obs` handle casts

* decomp: finish `sunken-obs`

* blocked: `rolling-obs` handle casts and hud-parts

* decomp: finish `firecanyon-obs`

* decomp: finish `ogre-obs`

* blocked: `village3-obs` gives up type analysis!

* blocked: `snow-obs` has hud-parts and handle casts code

* decomp: finish `snow-flutflut-obs`

* blocked: `lavatube-obs` has s6-1 issue

* blocked: `title-obs` handle cast issues

* fixed post merge problems

* decomp: finish `jungleb-obs`

* blocked: `training-obs` has `s6-1` issue

* fix type consistency

* scripts: Extend update script to handle the game-text-id enum as well

* git: Update git attributes to effectively halve PR burden

* fixed `sound-play-by-name` signature

* fix particle definitions in firecanyon-obs

* fix func signature in racer-states

* update ref tests

* tests: update current ref tests

* tests: add `joint` to ref-tests

* tests: add `process-drawable` to ref-tests

* updated gsrc

* add back manual fix

* address most feedback, update source files

* get rid of forward declarations in `darkcave-obs`

Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com>
2021-11-05 21:29:32 -04:00
Tyler Wilding b95ec1062e
ci: Add buildcache to all CI builds (#828) 2021-09-06 14:29:34 -04:00