Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* jak3: dump of all vu programs (#3340) With the exception of `sprite` and the new `hfrag` renderer, everything appears to be identical to Jak 2. * decomp3: `font-h`, `display`, `profile`, `settings-h`, `camera-defs-h`, `text-h` (#3335) * [jak3] dma, dma-bucket, dma-buffer (#3331) * [jak3] dma-disasm, time-of-day-h, texture-anim-h, level-h (#3344) * cmake: Remove -Wmissing-include-dir (#3343) I'm tired of it spamming and I couldn't figure out what adds to non-existent fmt/include dir. * [jak3] misc. headers (#3345) trail-h, minimap-h, bigmap-h, capture, memory-usage-h, blit-displays-h, sky-h, rest of ocean-h * [jak3] decompile (but not port) texture (#3346) For now - just a plain decompilation, with no PC port changes. I think it'll be easier to do those once we have a little bit more decompiled. * [jak3] Drawable header decomp (#3347) * Rip collision based on config flag (#3348) Added a new `rip_collision` flag to the decompiler config and wired it up. Cleaned up the comments around these fields in the JSON too for clarity Also refactored a bunch of the related extract functions to read from `config` object rather than pass down a bunch of booleans * decomp3: more misc files (#3349) - `pat-h` - `engines` - `res-h` - `res` - `fact-h` - `game-info-h` - `wind-h` - `merc-h` - `shadow-vu1-h` - `shadow-cpu-h` - `dynamics-h` - `memcard-h` - `surface-h` - part of `gui-h` - `ambient-h` - `speech-h` - `prototype-h` - `smush-control-h` - `generic-merc-h` - `generic-work-h` - `collide-func-h` - `collide-mesh-h` - `collide-shape-h` (only missing the `new` method for `collide-shape` because we don't have `process-drawable` yet and that also needs joint stuff etc.) - `collide-touch-h` - `collide-edge-grab-h` - `lightning-h` This also adds argument name remaps for the `relocate` and `mem-usage` methods (Jak 1 and 2 ref tests were updated, but not the gsrc). * [jak3] More headers! (#3351) Decomp aligner-h, joint-h, prim-h, debug-h, game-h, penetrate-h, bones-h, foreground-h, scene-h, script-h. Also, has a little bit of the joint-mod-h file, but it's not finished yet. * build(deps): bump peter-evans/repository-dispatch from 2 to 3 (#3354) Bumps [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) from 2 to 3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/peter-evans/repository-dispatch/releases">peter-evans/repository-dispatch's releases</a>.</em></p> <blockquote> <h2>Repository Dispatch v3.0.0</h2> <p>⚙️ Updated runtime to Node.js 20</p> <ul> <li>The action now requires a minimum version of <a href="https://github.com/actions/runner/releases/tag/v2.308.0">v2.308.0</a> for the Actions runner. Update self-hosted runners to v2.308.0 or later to ensure compatibility.</li> </ul> <h2>What's Changed</h2> <ul> <li>Bump prettier to fix deps by <a href="https://github.com/peter-evans"><code>@peter-evans</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/255">peter-evans/repository-dispatch#255</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.17.12 to 18.17.14 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/257">peter-evans/repository-dispatch#257</a></li> <li>build(deps-dev): bump <code>@vercel/ncc</code> from 0.36.1 to 0.38.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/258">peter-evans/repository-dispatch#258</a></li> <li>build(deps): bump actions/checkout from 3 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/259">peter-evans/repository-dispatch#259</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.17.14 to 18.17.16 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/261">peter-evans/repository-dispatch#261</a></li> <li>build(deps): bump <code>@actions/core</code> from 1.10.0 to 1.10.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/262">peter-evans/repository-dispatch#262</a></li> <li>build(deps-dev): bump jest-circus from 29.6.4 to 29.7.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/263">peter-evans/repository-dispatch#263</a></li> <li>build(deps-dev): bump eslint from 8.48.0 to 8.49.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/264">peter-evans/repository-dispatch#264</a></li> <li>Update distribution by <a href="https://github.com/actions-bot"><code>@actions-bot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/265">peter-evans/repository-dispatch#265</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.17.16 to 18.17.18 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/266">peter-evans/repository-dispatch#266</a></li> <li>build(deps-dev): bump eslint-plugin-github from 4.10.0 to 4.10.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/267">peter-evans/repository-dispatch#267</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.17.18 to 18.18.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/268">peter-evans/repository-dispatch#268</a></li> <li>build(deps-dev): bump eslint from 8.49.0 to 8.50.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/269">peter-evans/repository-dispatch#269</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.18.0 to 18.18.3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/271">peter-evans/repository-dispatch#271</a></li> <li>build(deps-dev): bump eslint-plugin-prettier from 5.0.0 to 5.0.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/275">peter-evans/repository-dispatch#275</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.18.3 to 18.18.5 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/274">peter-evans/repository-dispatch#274</a></li> <li>build(deps-dev): bump eslint from 8.50.0 to 8.51.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/276">peter-evans/repository-dispatch#276</a></li> <li>build(deps-dev): bump <code>@babel/traverse</code> from 7.16.3 to 7.23.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/278">peter-evans/repository-dispatch#278</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.18.5 to 18.18.6 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/279">peter-evans/repository-dispatch#279</a></li> <li>build(deps-dev): bump <code>@vercel/ncc</code> from 0.38.0 to 0.38.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/280">peter-evans/repository-dispatch#280</a></li> <li>build(deps-dev): bump eslint from 8.51.0 to 8.52.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/281">peter-evans/repository-dispatch#281</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.18.6 to 18.18.7 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/282">peter-evans/repository-dispatch#282</a></li> <li>build(deps): bump actions/setup-node from 3 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/283">peter-evans/repository-dispatch#283</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.18.7 to 18.18.8 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/284">peter-evans/repository-dispatch#284</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.18.8 to 18.18.9 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/285">peter-evans/repository-dispatch#285</a></li> <li>build(deps-dev): bump eslint from 8.52.0 to 8.53.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/286">peter-evans/repository-dispatch#286</a></li> <li>build(deps-dev): bump prettier from 3.0.3 to 3.1.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/287">peter-evans/repository-dispatch#287</a></li> <li>build(deps-dev): bump eslint from 8.53.0 to 8.54.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/289">peter-evans/repository-dispatch#289</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.18.9 to 18.18.13 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/290">peter-evans/repository-dispatch#290</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.18.13 to 18.19.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/291">peter-evans/repository-dispatch#291</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.19.0 to 18.19.3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/292">peter-evans/repository-dispatch#292</a></li> <li>build(deps-dev): bump eslint from 8.54.0 to 8.55.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/293">peter-evans/repository-dispatch#293</a></li> <li>build(deps-dev): bump prettier from 3.1.0 to 3.1.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/296">peter-evans/repository-dispatch#296</a></li> <li>build(deps): bump actions/upload-artifact from 3 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/295">peter-evans/repository-dispatch#295</a></li> <li>build(deps-dev): bump eslint from 8.55.0 to 8.56.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/297">peter-evans/repository-dispatch#297</a></li> <li>build(deps-dev): bump eslint-plugin-prettier from 5.0.1 to 5.1.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/298">peter-evans/repository-dispatch#298</a></li> <li>build(deps-dev): bump eslint-plugin-prettier from 5.1.1 to 5.1.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/299">peter-evans/repository-dispatch#299</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.19.3 to 18.19.4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/300">peter-evans/repository-dispatch#300</a></li> <li>build(deps-dev): bump eslint-plugin-prettier from 5.1.2 to 5.1.3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/301">peter-evans/repository-dispatch#301</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.19.4 to 18.19.6 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/302">peter-evans/repository-dispatch#302</a></li> <li>build(deps-dev): bump prettier from 3.1.1 to 3.2.4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/303">peter-evans/repository-dispatch#303</a></li> <li>build(deps-dev): bump <code>@types/node</code> from 18.19.6 to 18.19.8 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/304">peter-evans/repository-dispatch#304</a></li> <li>feat: update runtime to node 20 by <a href="https://github.com/peter-evans"><code>@peter-evans</code></a> in <a href="https://redirect.github.com/peter-evans/repository-dispatch/pull/305">peter-evans/repository-dispatch#305</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/peter-evans/repository-dispatch/commit/ff45666b9427631e3450c54a1bcbee4d9ff4d7c0"><code>ff45666</code></a> feat: update runtime to node 20 (<a href="https://redirect.github.com/peter-evans/repository-dispatch/issues/305">#305</a>)</li> <li><a href="https://github.com/peter-evans/repository-dispatch/commit/a4a90276d01e3a2ae44fa10a0247287f045afd59"><code>a4a9027</code></a> build(deps-dev): bump <code>@types/node</code> from 18.19.6 to 18.19.8 (<a href="https://redirect.github.com/peter-evans/repository-dispatch/issues/304">#304</a>)</li> <li><a href="https://github.com/peter-evans/repository-dispatch/commit/26052532834cf5d789f5606e8b98cd0bfab56380"><code>2605253</code></a> build(deps-dev): bump prettier from 3.1.1 to 3.2.4 (<a href="https://redirect.github.com/peter-evans/repository-dispatch/issues/303">#303</a>)</li> <li><a href="https://github.com/peter-evans/repository-dispatch/commit/ab3258eeeffae29c708cb86edfc514542da16621"><code>ab3258e</code></a> build(deps-dev): bump <code>@types/node</code> from 18.19.4 to 18.19.6 (<a href="https://redirect.github.com/peter-evans/repository-dispatch/issues/302">#302</a>)</li> <li><a href="https://github.com/peter-evans/repository-dispatch/commit/240bc731931727c20e5294c098f79936917bb2ab"><code>240bc73</code></a> build(deps-dev): bump eslint-plugin-prettier from 5.1.2 to 5.1.3 (<a href="https://redirect.github.com/peter-evans/repository-dispatch/issues/301">#301</a>)</li> <li><a href="https://github.com/peter-evans/repository-dispatch/commit/8aa15c54a0775550e589f6e5a1c10d5a7944fa61"><code>8aa15c5</code></a> build(deps-dev): bump <code>@types/node</code> from 18.19.3 to 18.19.4 (<a href="https://redirect.github.com/peter-evans/repository-dispatch/issues/300">#300</a>)</li> <li><a href="https://github.com/peter-evans/repository-dispatch/commit/22aa07cf23211217f2f281db8f96d64aaf773db3"><code>22aa07c</code></a> build(deps-dev): bump eslint-plugin-prettier from 5.1.1 to 5.1.2 (<a href="https://redirect.github.com/peter-evans/repository-dispatch/issues/299">#299</a>)</li> <li><a href="https://github.com/peter-evans/repository-dispatch/commit/ba0298574b6decfde4790aeded048a3b996a9ba0"><code>ba02985</code></a> build(deps-dev): bump eslint-plugin-prettier from 5.0.1 to 5.1.1 (<a href="https://redirect.github.com/peter-evans/repository-dispatch/issues/298">#298</a>)</li> <li><a href="https://github.com/peter-evans/repository-dispatch/commit/accfd7b5bfd02b2977592bd723e73cab236409e4"><code>accfd7b</code></a> build(deps-dev): bump eslint from 8.55.0 to 8.56.0 (<a href="https://redirect.github.com/peter-evans/repository-dispatch/issues/297">#297</a>)</li> <li><a href="https://github.com/peter-evans/repository-dispatch/commit/3c7d964ae9f0b74896fbe6e607a12437ba01ca21"><code>3c7d964</code></a> build(deps): bump actions/upload-artifact from 3 to 4 (<a href="https://redirect.github.com/peter-evans/repository-dispatch/issues/295">#295</a>)</li> <li>Additional commits viewable in <a href="https://github.com/peter-evans/repository-dispatch/compare/v2...v3">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=peter-evans/repository-dispatch&package-manager=github_actions&previous-version=2&new-version=3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump peter-evans/create-pull-request from 5 to 6 (#3353) Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 5 to 6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/peter-evans/create-pull-request/releases">peter-evans/create-pull-request's releases</a>.</em></p> <blockquote> <h2>Create Pull Request v6.0.0</h2> <h2>Behaviour changes</h2> <ul> <li>The default values for <code>author</code> and <code>committer</code> have changed. See "What's new" below for details. If you are overriding the default values you will not be affected by this change.</li> <li>On completion, the action now removes the temporary git remote configuration it adds when using <code>push-to-fork</code>. This should not affect you unless you were using the temporary configuration for some other purpose after the action completes.</li> </ul> <h2>What's new</h2> <ul> <li>Updated runtime to Node.js 20 <ul> <li>The action now requires a minimum version of <a href="https://github.com/actions/runner/releases/tag/v2.308.0">v2.308.0</a> for the Actions runner. Update self-hosted runners to v2.308.0 or later to ensure compatibility.</li> </ul> </li> <li>The default value for <code>author</code> has been changed to <code>${{ github.actor }} <${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com></code>. The change adds the <code>${{ github.actor_id }}+</code> prefix to the email address to align with GitHub's standard format for the author email address.</li> <li>The default value for <code>committer</code> has been changed to <code>github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com></code>. This is to align with the default GitHub Actions bot user account.</li> <li>Adds input <code>git-token</code>, the <a href="https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token">Personal Access Token (PAT)</a> that the action will use for git operations. This input defaults to the value of <code>token</code>. Use this input if you would like the action to use a different token for git operations than the one used for the GitHub API.</li> <li><code>push-to-fork</code> now supports pushing to sibling repositories in the same network.</li> <li>Previously, when using <code>push-to-fork</code>, the action did not remove temporary git remote configuration it adds during execution. This has been fixed and the configuration is now removed when the action completes.</li> <li>If the pull request body is truncated due to exceeding the maximum length, the action will now suffix the body with the message "...<em>[Pull request body truncated]</em>" to indicate that the body has been truncated.</li> <li>The action now uses <code>--unshallow</code> only when necessary, rather than as a default argument of <code>git fetch</code>. This should improve performance, particularly for large git repositories with extensive commit history.</li> <li>The action can now be executed on one GitHub server and create pull requests on a <em>different</em> GitHub server. Server products include GitHub hosted (github.com), GitHub Enterprise Server (GHES), and GitHub Enterprise Cloud (GHEC). For example, the action can be executed on GitHub hosted and create pull requests on a GHES or GHEC instance.</li> </ul> <h2>What's Changed</h2> <ul> <li>Update distribution by <a href="https://github.com/actions-bot"><code>@actions-bot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/2086">peter-evans/create-pull-request#2086</a></li> <li>fix crazy-max/ghaction-import-gp parameters by <a href="https://github.com/fharper"><code>@fharper</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/2177">peter-evans/create-pull-request#2177</a></li> <li>Update distribution by <a href="https://github.com/actions-bot"><code>@actions-bot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/2364">peter-evans/create-pull-request#2364</a></li> <li>Use checkout v4 by <a href="https://github.com/okuramasafumi"><code>@okuramasafumi</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/2521">peter-evans/create-pull-request#2521</a></li> <li>Note about <code>delete-branch</code> by <a href="https://github.com/dezren39"><code>@dezren39</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/2631">peter-evans/create-pull-request#2631</a></li> <li>98 dependency updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/fharper"><code>@fharper</code></a> made their first contribution in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/2177">peter-evans/create-pull-request#2177</a></li> <li><a href="https://github.com/okuramasafumi"><code>@okuramasafumi</code></a> made their first contribution in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/2521">peter-evans/create-pull-request#2521</a></li> <li><a href="https://github.com/dezren39"><code>@dezren39</code></a> made their first contribution in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/2631">peter-evans/create-pull-request#2631</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/peter-evans/create-pull-request/compare/v5.0.2...v6.0.0">https://github.com/peter-evans/create-pull-request/compare/v5.0.2...v6.0.0</a></p> <h2>Create Pull Request v5.0.2</h2> <p>⚙️ Fixes an issue that occurs when using <code>push-to-fork</code> and both base and head repositories are in the same org/user account.</p> <h2>What's Changed</h2> <ul> <li>fix: specify head repo by <a href="https://github.com/peter-evans"><code>@peter-evans</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/2044">peter-evans/create-pull-request#2044</a></li> <li>20 dependency updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/peter-evans/create-pull-request/compare/v5.0.1...v5.0.2">https://github.com/peter-evans/create-pull-request/compare/v5.0.1...v5.0.2</a></p> <h2>Create Pull Request v5.0.1</h2> <h2>What's Changed</h2> <ul> <li>fix: truncate body if exceeds max length by <a href="https://github.com/peter-evans"><code>@peter-evans</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/1915">peter-evans/create-pull-request#1915</a></li> <li>12 dependency updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/peter-evans/create-pull-request/compare/v5.0.0...v5.0.1">https://github.com/peter-evans/create-pull-request/compare/v5.0.0...v5.0.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/peter-evans/create-pull-request/commit/b1ddad2c994a25fbc81a28b3ec0e368bb2021c50"><code>b1ddad2</code></a> feat: v6 (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/2717">#2717</a>)</li> <li><a href="https://github.com/peter-evans/create-pull-request/commit/bb809027fda03cc267431a7d36a88148eb9f3846"><code>bb80902</code></a> build(deps-dev): bump <code>@types/node</code> from 18.19.8 to 18.19.10 (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/2712">#2712</a>)</li> <li><a href="https://github.com/peter-evans/create-pull-request/commit/e0037d470cdeb1c8133acfba89af08639bb69eb3"><code>e0037d4</code></a> build(deps): bump peter-evans/create-or-update-comment from 3 to 4 (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/2702">#2702</a>)</li> <li><a href="https://github.com/peter-evans/create-pull-request/commit/94b1f99e3a73880074d0e669c3b69d376cc8ceae"><code>94b1f99</code></a> build(deps): bump peter-evans/find-comment from 2 to 3 (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/2703">#2703</a>)</li> <li><a href="https://github.com/peter-evans/create-pull-request/commit/69c27eaf4a14a67b5362a51e681f83d3d5e0f96b"><code>69c27ea</code></a> build(deps-dev): bump ts-jest from 29.1.1 to 29.1.2 (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/2685">#2685</a>)</li> <li><a href="https://github.com/peter-evans/create-pull-request/commit/7ea722a0f6286a45eb3005280d83575a74bc8fef"><code>7ea722a</code></a> build(deps-dev): bump prettier from 3.2.2 to 3.2.4 (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/2684">#2684</a>)</li> <li><a href="https://github.com/peter-evans/create-pull-request/commit/5ee839affd4c87811108724370a2819a40e2e5d3"><code>5ee839a</code></a> build(deps-dev): bump <code>@types/node</code> from 18.19.7 to 18.19.8 (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/2683">#2683</a>)</li> <li><a href="https://github.com/peter-evans/create-pull-request/commit/60fc256c678e6ed78d0d42e09675c9beba09cb94"><code>60fc256</code></a> build(deps-dev): bump eslint-plugin-prettier from 5.1.2 to 5.1.3 (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/2660">#2660</a>)</li> <li><a href="https://github.com/peter-evans/create-pull-request/commit/0c677233614c017442253060c74fd2cb7ff349fc"><code>0c67723</code></a> build(deps-dev): bump <code>@types/node</code> from 18.19.5 to 18.19.7 (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/2661">#2661</a>)</li> <li><a href="https://github.com/peter-evans/create-pull-request/commit/4e288e851b95bd1362e281a255094fcc47ada675"><code>4e288e8</code></a> build(deps-dev): bump prettier from 3.1.1 to 3.2.2 (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/2659">#2659</a>)</li> <li>Additional commits viewable in <a href="https://github.com/peter-evans/create-pull-request/compare/v5...v6">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=peter-evans/create-pull-request&package-manager=github_actions&previous-version=5&new-version=6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Change important `printf`s to `lg::print` (#3355) This allows them to be logged into a file, useful for debugging. With this, GOAL `format` and C-kernel `Msg` (and its variants) will be logged. * decomp3: more headers (#3356) - `pov-camera-h` - `sync-info-h` - `trajectory-h` - `collide-target-h` (`control-info` just padded out for now) - `water-info-h` - `process-drawable-h` - `process-focusable` - `focus` - `effect-control-h` - `process-taskable-h` - `generic-obs-h` - `target-h` * [jak3] More headers again (#3352) joint-mod-h collide-frag-h projectile-h stats-h bsp-h chain-physics-h ragdoll-h collide-hash-h * seriously fix music player in title screen (#3358) * game: fix intermittent sprite_distort related crash (#3357) Apparently a long standing bug, with https://github.com/open-goal/jak-project/pull/3194 making it more likely to occur. * decomp3: more headers (again) (#3362) - `entity-h` - `eye-h` - `simple-sprite-h` - `sprite-h` - `cam-debug-h` - `cam-update-h` - `cam-interface-h` - `hud-h` - `actor-link-h` - `camera-h` - `progress-h` Also fills out a lot of the `text-id` enum. `progress-static` is also very close to ready, only being blocked by #3361. * [jak3] More headers again again (#3359) collide-cache-h, collide-h, projectile-h, background-h, subdivide-h, hfrag-h, shrubbery-h, tfrag-h, tie-h * [jak3] More headers, up to load-dgo (#3363) path-h, sparticle-h, load-dgo, nav-control-h, nav-mesh-h, rigid-body-h, actor-hash-h, spatial-hash-h * [jak3] decomp gsound (#3364) Decompile `gsound.gc` * d/j3: do a few `mood` related files and fix some issues along the way (#3365) * decomp: Copy over new docstrings back to jak 2's common code, write some scripts to help automate this (#3366) * decompiler: `defskelgroup` macro detection for jak 3, fix art group dumping for jak 3 and some more decomp work (#3370) - `transformq` - `wind-work` - `progress-static` - `merc-vu1` - `emerc-vu1` - `merc` - `emerc` - `cloth-h` - Most of `cloth`, not added to gsrc yet Art group dumps were incorrect for Jak 3 because the master art group fields were at different offsets. * Decompile `joint`, `collide-func`, clean up joint decompression code for all games (#3369) I finally read through all the joint code and wrote up some documentation. I think this will be really helpful when we try to understand all the functions in `process-drawable`, or if somebody ever wants to import/export animations. This switches all three games to using a new faster GOAL joint decompressor. It is on by default, but you can go back to the old version by setting `*use-new-decompressor*` to false. Also fix the log-related crash, fix the clock speed used in timer math. * [jak3] `joint-mod`, `subdivide`, `bsp` (#3371) * decomp `loader` (#3373) fixes `defskelgroup` being broken in jak 2 switches jak 3 to the jak 3 font (currently identical to jak 2) * decomp3: `game-info`, `game-task`, `game-save`, `level-info`, `process-drawable` and more (#3374) - `settings` - `generic-vu1` - `generic-vu0` * CI: Periodic Controller Database Update (#3368) Updating Controller Database Co-authored-by: OpenGOALBot <[email protected]> * Update to C++20 (#3193) Just putting this here for consideration, I'm personally not in a big rush to get it. --------- Co-authored-by: Tyler Wilding <[email protected]> * Fix remaining cpp20 issues (#3375) * Switch to std::span (#3376) Now that we have cpp20 we can ditch nonstd::span. Depends on #3375 * CI: Periodic Controller Database Update (#3379) Updating Controller Database Co-authored-by: OpenGOALBot <[email protected]> * lsp: revert unnamed variable labelling (#3381) This didn't really pan out as I hoped since files can have thousands of these and there is a limit to how many diagnostics are shown (starting from the top of the file). This also may have caused the recent instability in the LSP, disabling this i wasn't able to reproduce an LSP crash cycling through 50-100 files. * New Crowdin updates (#3382) * tracing: add some more startup related events and a new `--profile-until-event` flag (#3385) While trying to narrow down why sometimes SDL takes 20-40seconds to initialize I built up some more profiling features. TLDR - I still don't know why SDL is taking a long time but I've narrowed it down to it initializing the `GAME_CONTROLLER` subsystem. This isn't unprecedented, I found numerous github issues and articles suggesting this is the problem: ![image](https://github.com/open-goal/jak-project/assets/13153231/1853326b-7a40-458e-87a0-f7a9f44781e3) I imagine it is hardware/OS related on some level, there are even some recent commits in SDL that have made it worse on certain platforms. I've had this problem myself so I will hope to get it again soon so i can debug where in the SDL code the delay occurs and make a proper bug report. Hopefully this helps but it's not yet confirmed - https://github.com/open-goal/jak-project/pull/3384 * g/j2: properly wireup mouse settings, properly detect when the mouse has stopped moving (#3383) - Wired up the menu settings to change the settings in game, not just on boot - Removed all the duplication in the game options menu code - Fixed the mouse code so that it properly brings the virtual analog stick back to neutral when the mouse stops - Extended the sensitivity min/max for those that want to ensure the slightest movement maxes out virtual analog stick. * g/j2: allow customizing the speedrunner menu bind (#3386) The bind carried forward from Jak 1 is annoying -- R1 shoots the gun. Allow the user to use whatever button combination they want by modifying it in the `pc-settings` file. ```clj (controller-led-status? 1360729) (speedrunner-mode-custom-bind 4098) ``` * Rename `bigmap-id` enum entries (#3380) also fixed some docstrings that were swapped * game: disable keyboard input by default, give users a way to enable it via the imgui menu (#3295) It was narrowed down recently that a lot of people have issues with the controller input because of Steam Input working as intended. Steam Input can be configured to replicate controller inputs as keyboard inputs (for example, pressing X on your controller presses Enter on the keyboard). This results in the problem of "jumping pauses the game" and similar issues. This is a consequence of the intended behaviour of the game listening to all input sources at the same time. Since the vast majority of players are using controllers over keyboards, it makes sense to disable the keyboard input by default to solve this problem. However that makes things awkward for users that want to use the keyboard (how do they enable the setting). The solution is a new imgui option in the settings menu: ![Screenshot 2024-01-07 141224](https://github.com/open-goal/jak-project/assets/13153231/6f9ffa2d-be7a-433d-b698-15b70210e97e) **Known issue that I don't care about** -- in Jak 1's menu code, since the flags are controlled by pointers to values instead of a lambda like in jak 2, the menu won't update live with the imgui option. This has no functional impact and I don't care enough to fix it. I also made the pc-settings.gc file persist on first load if the file wasn't found. Hopefully this helps diagnose the support issues related to the black screen. # Why not just ignore the keyboard inputs for a period of time? This won't work, the keyboard is polled every frame. Therefore if you hold down the X button on your controller, steam is continuously signaling that `Enter` is held down on the keyboard. Yes it would be possible to completely disable the keyboard while the controller is being used, but this defeats the purpose of creating an input system that allows multiple input sources at the same time. With an explicit option, not only can the user decide the behaviour they want (do they want the keyboard ignored or simultaneously listened to) but we avoid breaking strange edge-cases in usage leading to never ending complexity: - ie. imagine steam input sends events to the mouse, well you can't disable the mouse while using the keyboard because most times people are using mouse and keyboard - ie. a user that wants to hold a direction with the keyboard and press buttons on the controller in tandem (something i frequently do while TAS'ing, to move in a perfect straight line) * [high fps] Increase input buffer size and fix cloud scroll speed (#3178) The game stores the last 3 frames of input (50ms of time at 60fps) and often checks if a button was pressed within those 3 saved frames as a condition. When transitioning states, it often checks if some input was received during the previous state (within those 3 frames) in order to quickly transition out. A good example of this is when transitioning to standing, it checks if you can jump this frame and if you had pressed X recently, and if so, transition immediately to jump. This allows transitions between states to feel more smooth/forgiving by letting you jump at a later time when you are transitioning from falling->standing than if you were only falling. At 165fps the last 3 frames is only 18ms of time so the input windows for these smooth transitions are almost 3x shorter. This PR saves 15 input frames (enough to cover 50ms of time at 300fps) for each controller and adds a (recently-pressed?) macro that checks all 15 frames. However, it only updates the necessary frames in history based on the current frame rate. This way, 60fps continues to only check against 3 input frames, 165fps checks against 9, 240fps checks against 12, and 300fps checks all 15. --------- Co-authored-by: Tyler Wilding <[email protected]> * g/j2: Dynamic speedrun mode categories and implement a significant amount of a practice mode (#3378) For example, `AppData/OpenGOAL/jak2/features/speedrun-categories.json` is defined as such: ```json [ { "cheats": 0, "completed_task": 0, "continue_point_name": "", "features": 0, "forbidden_features": 992, "name": "Gunless", "secrets": 0 }, { "cheats": 1, "completed_task": 29, "continue_point_name": "ctypal-shaft", "features": 1024, "forbidden_features": 0, "name": "Turbo Jetboard - After Praxis 1", "secrets": 0 } ] ``` > These entries can be created using the in-game menu as well. https://github.com/open-goal/jak-project/assets/13153231/9b17a116-4aa9-40ad-b9f5-02b04e0ad4f3 --------- Co-authored-by: dallmeyer <[email protected]> * Only remove -vis from name if it is part of the name. (#3257) During level extraction, the last 4 characters of the level name are always removed, because it is assumed that '-vis' is there. But it isn't always there. This is especially true in post-TPL games. This causes multiple problems: - There can be levels in the extraction that will miss their last 4 characters from their name, which is sad, and may make it harder to identify them. - If there are '-vis'-less levels whose names are identical apart from the last 4 characters, the extractor will only get the last one (it probably extracts all but overwrites everything but the last one). For example 'ctyasha' and 'ctykora'. This issue affects the glb extraction and the entities json extraction. I personally think that just keeping the -vis in the name would be the best solution, but I guess there was a reason why it was decided that it should be removed from the name. So to adapt to this, my implementation will still remove '-vis' from the name, but only if it is actually in the name - otherwise it won't remove anything. I hope my changes didn't break anything. Extraction seemed to run fine after my changes, and I was able to see both ctyasha and ctykora json files. And didn't see any '-vis', so it is still properly removed. --------- Co-authored-by: Tyler Wilding <[email protected]> * scripts: new linter script to detect goal_src files with trailing whitespace (#3387) Removes trailing whitespace from goal_src files, eventually the formatter will do this as well but it's not ready yet so this is a decent interim solution. A competent text editor will also do this / flag it for you. * CI: Periodic Controller Database Update (#3389) Updating Controller Database Co-authored-by: OpenGOALBot <[email protected]> * formatter: Format `deftype` correctly (#3391) New configuration options to format column widths in deftype field definitions. Also force each field/method/state to be inlined. * Fix `(-> *autosplit-info-jak1* training-num-orbs)` when blacked out (#3297) When loading a save, these values are temporarily 0, and it messes with the autosplitter so we want to ignore them then. * decomp3: more engine stuff, detect non-virtual state inheritance (#3377) - `speech` - `ambient` - `water-h` - `vol-h` - `generic-obs` - `carry-h` - `pilot-h` - `board-h` - `gun-h` - `flut-h` - `indax-h` - `lightjak-h` - `darkjak-h` - `target-util` - `history` - `collide-reaction-target` - `logic-target` - `sidekick` - `projectile` - `voicebox` - `ragdoll-edit` - most of `ragdoll` (not added to gsrc yet) - `curves` - `find-nearest` - `lightjak-wings` - `target-handler` - `target-anim` - `target` - `target2` - `target-swim` - `target-lightjak` - `target-invisible` - `target-death` - `target-gun` - `gun-util` - `board-util` - `target-board` - `board-states` - `mech-h` - `vol` - `vent` - `viewer` - `gem-pool` - `collectables` - `crates` - `secrets-menu` Additionally: - Detection of non-virtual state inheritance - Added a config file that allows overriding the process stack size set by `stack-size-set!` calls - Fix for integer multiplication with `r0` - Fixed detection for the following macros: - `static-attack-info` - `defpart` and `defpartgroup` (probably still needs adjustments, uses Jak 2 implementation at the moment) - `sound-play` (Jak 3 seems to always call `sound-play-by-name` with a `sound-group` of 0, so the macro has been temporarily defaulted to use that) One somewhat significant change made here that should be noted is that the return type of `process::init-from-entity!` was changed to `object`. I've been thinking about this for a while, since it looks a bit nicer without the `(none)` at the end and I have recently encountered init methods that early return `0`. * [joint] fix missing matrix interpolation (#3394) I was missing one of the ways that the joint animation was interpolated. In particular - the `matrix` that defines the root position of the object. * decomp: update naming across jak2/3 (#3395) * jak2 pckernel: save `pc-settings` on cheat progress and regular auto-saves (#3396) Fixes #3392 * CI: Periodic Controller Database Update (#3397) Updating Controller Database Co-authored-by: OpenGOALBot <[email protected]> * deps: update `fmt` to latest version (#3403) This updates `fmt` to the latest version and moves to just being a copy of their repo to make updating easier (no editing their cmake / figuring out which files to minimally include). The motivation for this is now that we switched to C++ 20, there were a ton of deprecated function usages that is going away in future compiler versions. This gets rid of all those warnings. * deps: SDL update to 2.30.0 (#3384) In the hopes that some things have been fixed in the last year (GAME_CONTROLLER init time, etc) Make sure this does not regress #2691 * ci: move to `sccache` (#3404) The original buildcache action has been archived, and buildcache itself has also moved to github. I forked the action and was updating it to work, but then the latest buildcache release once again breaks support for older runners (in our case, macos-12 is the lowest, which is acceptable as 11 is EOL). Either way, switching to sccache is not only a way cleaner solution but it is also well maintained (and works!) * ci: move to macos-12 (#3407) macos-11 is end of life, it has been for 5 months https://endoflife.date/macos, it will be removed as a runner on github in Q2 2024. Next release will require atleast macOS 12. ![300882082-ac6ef1f1-8e18-4af1-a97f-d38cf82885df](https://github.com/open-goal/jak-project/assets/13153231/88bed2ae-8059-4d01-b4a6-8994af131c89) * Fix issues with camera movement with controller when mouse tracking is also enabled (#3409) Fixes #3408 * [jak3] Decompile sprite (#3412) Decompile `sprite.gc`. Also update the DMA macro for a small change in Jak 3: a check to see if nothing was added to the bucket. * Fix minor issues related to the speedrunner mode menu, also stop saving the `pc-settings` every frame when sr mode is on (#3413) Fixes #3209 * d/j3: ensure type-tests pass (#3414) Make this test run in CI as the game is not done yet, CI in master is failing because something was missed (forward declaration) * g/j2: Update some `vehicle` related naming (#3419) While looking into https://github.com/open-goal/jak-project/issues/3289 I renamed a few things * g/j2: workaround intermittent lifeseed DMA crash (#3418) This is not a fix, but it temporarily works around the potential crash discussed here https://github.com/open-goal/jak-project/issues/2988 As long as this doesn't impact other things, this feels like a good interim fix, as having a broken cutscene is better than a fatal crash and it might be some time before this is properly identified and fixed. * [jak3] Decompile sprite and debug files (#3420) * CI: Periodic Controller Database Update (#3423) Updating Controller Database Co-authored-by: OpenGOALBot <[email protected]> * decomp3: more engine stuff, support boxed stack arrays in compiler (#3424) - `sync-info` - `trajectory` - `camera` - `cam-update` - `cam-states` - `cam-states-dbg` - `cam-master` - `cam-layout` - `cam-interface` - `cam-combiner` Closes #2016 * Port `bones.gc` math to GOAL (#3425) Reverse engineer the skinning matrix calculation and port to GOAL. This is about 3x faster than the MIPS2c version. As usual, there is a `*use-new-bones*` flag to go back to the old version. Fix for a bug in the compiler's `.div.vf` implementation (only happens if src/dst are the same), and fix for a typo in the register allocator that would sometimes cause it not to consider xmm8-xmm15. * [goal] Add labels, break, and continue to loops (#3426) Uses (block) and (return-from) to support (break) and (continue) with labeling Supports `(while) (until) (dotimes) (countdown) (loop) (doarray)` Test cases: ``` lisp (dotimes (i 5) (when (= i 2) (break) ) (format #t "i: ~D~%" i) ) ;; Output: ;; i: 0 ;; i: 1 (dotimes (i 5) (when (= i 2) (continue) ) (format #t "i: ~D~%" i) ) ;; Output: ;; i: 0 ;; i: 1 ;; i: 3 ;; i: 4 (dotimes (i 3) (when (= i 2) (continue) ) (format #t "outer: ~D~%" i) (dotimes (i 3) (when (= i 0) (continue) ) (format #t "inner: ~D~%" i) ) ) ;; Output: ;; outer: 0 ;; inner: 1 ;; inner: 2 ;; outer: 1 ;; inner: 1 ;; inner: 2 (dotimes (i 5) :label outer (when (= i 2) (continue :from outer) ) (format #t "outer: ~D~%" i) (dotimes (i 3) (when (= i 1) (continue :from outer) ) (format #t "inner: ~D~%" i) ) ) ;; Output: ;; outer: 0 ;; inner: 0 ;; outer: 1 ;; inner: 0 ;; outer: 3 ;; inner: 0 ;; outer: 4 ;; inner: 0 (dotimes (i 5) :label outer (when (= i 2) (continue :from outer) ) (format #t "outer: ~D~%" i) (dotimes (i 3) (when (= i 0) (break :from outer) ) (format #t "inner: ~D~%" i) ) ) ;; Output: ;; outer: 0 (dotimes (i 5) :label outer (when (= i 2) (continue :from outer) ) (format #t "outer2: ~D~%" i) (dotimes (i 3) (when (= i 1) (break) ) (format #t "inner2: ~D~%" i) ) ) ;; Output: ;; outer2: 0 ;; inner2: 0 ;; outer2: 1 ;; inner2: 0 ;; outer2: 3 ;; inner2: 0 ;; outer2: 4 ;; inner2: 0 (countdown (i 5) (when (= i 2) (continue) ) (format #t "i: ~D~%" i) ) ;; Output: ;; i: 4 ;; i: 3 ;; i: 1 ;; i: 0 (let ((i 0)) (while (< i 5) (when (= i 1) (break) ) (format #t "i: ~D~%" i) (1+! i) ) ) ;; Output: ;; i: 0 (let ((i 0)) (until (> i 5) :label outer (loop (break :from outer) ) (format #t "i: ~D~%" i) (1+! i) ) ) ;; Output: ;; nothing (define *array* (new 'global 'boxed-array uint32 3)) (doarray (i *array*) (break) (format #t "doarray") ) ;; Output: ;; nothing (doarray (i *array*) :label arrayloop (dotimes (i 5) (when (= i 2) (continue :from arrayloop) ) (format #t "i: ~D~%" i) ) (format #t "doarray~%") ) ;; Output: ;; i: 0 ;; i: 1 ;; i: 0 ;; i: 1 ;; i: 0 ;; i: 1 ``` * Decompile foreground and bones (#3427) Small fix to decompiler when the original compiler uses `ra` register. This seems to happen in "normal" code very rarely - perhaps they manually specified this in an `rlet`. Start figuring out buckets/textures for Jak 3. The foreground code is not yet modified for PC - I want to wait until the game is running, since it is too hard to do it now. * Decompile font, decomp, background, shrubbery (#3428) * Decompile tfrag, tie, prim (#3429) These still need to be ported to PC. * CI: Periodic Controller Database Update (#3430) Updating Controller Database Co-authored-by: OpenGOALBot <[email protected]> * decomp3: more engine files, `get-texture` macro, use `print` method in autogenerated inspect, fix bitfield float print (#3432) - `fma-sphere` - `prim-beam-h` - `cam-start` - `ragdoll` - `light-trails-h` - `light-trails` - `menu` - `water` - `water-flow` - `hud` - `hud-classes` - `progress` - `progress-draw` --- The `get-texture` macro replaces calls to `lookup-texture-by-id` and `lookup-texture-by-id-fast`. The `defpart` macro detection was modified to print a pair like `(texture-name tpage-name)` for the texture field that gets turned into a `texture-id` constant. Only used in Jak 3 at the moment, I'll probably go through the other games at a later point. * Decompile `level` (#3433) * decomp drawable, main (#3434) * [jak3] A bunch of small fixes to get `game.cgo` to load (#3435) The `test-play` macro is back, though it doesn't call `play` yet. We can at least load all of `game.cgo`, which involves loading a lot of the code we've decompiled, loading/linking objects files compiled by OpenGOAL (like dir-tpages), and loading/linking Jak's art-groups (for jak 3 they are stored v5 format that I added to the linker). There were no major issues - just a few forgotten mips2c entries and minor bugs/functions that needed stubs. Most of the work was updating the linker. Hopefully I'll never have to touch that code again - I think it supports everything we need for jak 3! * decomp3: more engine stuff, fix `ja` macro detection for jak 2/3, unmerged `let` matcher, `part-tracker-spawn` macro (#3436) - `aligner` - `effect-control` - `pov-camera` - `powerups` - `los-control-h` - `airlock` - `water-anim` - `blocking-plane` - `proc-focusable-spawner` - `idle-control` - `enemy-h` - `nav-enemy-h` - `enemy` - `enemy-states` - `particle-curves` - `base-plat` - `plat` - `bouncer` - `elevator` - `rigid-body` - `rigid-body-queue` - `process-taskable` - `scene-actor` - `warp-gate` - `guard-projectile` - `metalhead-projectile` - `los-control` - `joint-exploder` - `ragdoll-test` - `debris` - `shield-sphere` - `text` - `target-launch` * LSP: A bunch of new OpenGOAL language features (#3437) - Integrate the AST into the LSP, this makes parsing and tokenizing the files much easier - Consolidate most of the symbol info tracking in `goalc` to a single map. Fixed some issues where the old map would never evict symbols when re-compiling files. There is still some more to cleanup, but this now can be used as an incrementally updated source-of-truth for the LSP - re-compile files when they are saved. Ideally this would be done everytime they are changed but that: - may be too aggressive - goalc doesn't compile incrementally yet so it likely would be a worse UX Features added, see https://github.com/open-goal/opengoal-vscode/issues/256 - Hover ![image](https://github.com/open-goal/jak-project/assets/13153231/58dadb5d-582c-4c1f-9ffe-eaa4c85a0255) ![image](https://github.com/open-goal/jak-project/assets/13153231/b383adde-57fc-462c-a256-b2de5c30ca9a) - LSP Status fixed - Type Hierarchy ![image](https://github.com/open-goal/jak-project/assets/13153231/8e681377-1d4e-4336-ad70-1695a4607340) - Document Color ![image](https://github.com/open-goal/jak-project/assets/13153231/4e48ccd8-0ed1-4459-a133-5277561e4201) - Document Symbols ![Screenshot 2024-03-27 004105](https://github.com/open-goal/jak-project/assets/13153231/8e655034-43c4-4261-b6e0-85de00cbfc7f) - Completions ![Screenshot 2024-03-30 004504](https://github.com/open-goal/jak-project/assets/13153231/d123a187-af90-466b-9eb7-561b2ee97cd1) --------- Co-authored-by: Hat Kid <[email protected]> * g/j1: remove the redundant graphics menu (#3421) This was hiding options for people that only had 60hz monitors since the two menus drifted -- it is not necessary for an entire separate menu, just disable the option if applicable. Don't merge this without testing it throughly * decomp3: support for virtual states inheriting from their own type's virtual states, `gun-yellow-shot`, `gun-red-shot`, `gun-dark-shot` (#3438) * goalc: Fix new symbol trie's performance inefficiencies (#3443) I believe this brings things back in line to where it was before: Here are the first handful of files before the changes: ``` 0.014 | gcommon.gc 0.006 | gkernel-h.gc 0.025 | gkernel.gc 0.002 | pskernel.gc 0.01 | gstring.gc 0.004 | gstate.gc 0.001 | kernel.gd 0.001 | types-h.gc 0.002 | vu1-macros.gc 0.003 | math.gc 0.01 | vector-h.gc 0.001 | gravity-h.gc 0.001 | bounding-box-h.gc 0.001 | matrix-h.gc 0.001 | quaternion-h.gc 0.001 | euler-h.gc ``` > first compile ``` 0.161 | gcommon.gc 0.126 | gkernel-h.gc 0.174 | gkernel.gc 0.046 | pskernel.gc 0.08 | gstring.gc 0.048 | gstate.gc 0.001 | kernel.gd 0.052 | types-h.gc 0.009 | vu1-macros.gc 0.059 | math.gc 0.228 | vector-h.gc 0.026 | gravity-h.gc 0.006 | bounding-box-h.gc 0.002 | matrix-h.gc 0.028 | quaternion-h.gc 0.026 | euler-h.gc ``` > make a change in gcommon and recompile With the changes: ``` 0.015 | gcommon.gc 0.018 | gkernel-h.gc 0.039 | gkernel.gc 0.006 | pskernel.gc 0.015 | gstring.gc 0.009 | gstate.gc 0.005 | kernel.gd 0.006 | types-h.gc 0.006 | vu1-macros.gc 0.008 | math.gc 0.017 | vector-h.gc 0.004 | gravity-h.gc 0.004 | bounding-box-h.gc 0.005 | matrix-h.gc 0.005 | quaternion-h.gc 0.003 | euler-h.gc ``` > First compile, no difference expected ``` 0.016 | gcommon.gc 0.008 | gkernel-h.gc 0.023 | gkernel.gc 0.002 | pskernel.gc 0.01 | gstring.gc 0.043 | gstate.gc 0.001 | kernel.gd 0.002 | types-h.gc 0.002 | vu1-macros.gc 0.003 | math.gc 0.013 | vector-h.gc 0.001 | gravity-h.gc 0.002 | bounding-box-h.gc 0.002 | matrix-h.gc 0.001 | quaternion-h.gc 0.001 | euler-h.gc ``` > Compile times seem to be back within margin of error -- some are faster than the first compilation time. * CI: Periodic Controller Database Update (#3444) Updating Controller Database Co-authored-by: OpenGOALBot <[email protected]> * decompiler: allow overriding dgo inputs (#3446) * build(deps): bump mathieudutour/github-tag-action from 6.1 to 6.2 (#3442) Bumps [mathieudutour/github-tag-action](https://github.com/mathieudutour/github-tag-action) from 6.1 to 6.2. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/mathieudutour/github-tag-action/commit/a22cf08638b34d5badda920f9daf6e72c477b07b"><code>a22cf08</code></a> check in prod dependencies</li> <li><a href="https://github.com/mathieudutour/github-tag-action/commit/f36074fe49d589315ac97253c23ce83ccbd6fbb9"><code>f36074f</code></a> version 6.2</li> <li><a href="https://github.com/mathieudutour/github-tag-action/commit/f40d7eefd8aa8e0422116f3fb945bbd96dfb7691"><code>f40d7ee</code></a> match latest tag regex (<a href="https://redirect.github.com/mathieudutour/github-tag-action/issues/171">#171</a>)</li> <li><a href="https://github.com/mathieudutour/github-tag-action/commit/1bf7977a3da165de50510f793132286574222465"><code>1bf7977</code></a> fix: add previous_version to action.yml (<a href="https://redirect.github.com/mathieudutour/github-tag-action/issues/183">#183</a>)</li> <li><a href="https://github.com/mathieudutour/github-tag-action/commit/5a16d1443262c7f1a1addb0de22dea8a784acdbe"><code>5a16d14</code></a> Bump tough-cookie from 4.0.0 to 4.1.3 (<a href="https://redirect.github.com/mathieudutour/github-tag-action/issues/184">#184</a>)</li> <li><a href="https://github.com/mathieudutour/github-tag-action/commit/71c368965901c31849458bb74c4ffa22b48172c7"><code>71c3689</code></a> Update README.md (<a href="https://redirect.github.com/mathieudutour/github-tag-action/issues/205">#205</a>)</li> <li><a href="https://github.com/mathieudutour/github-tag-action/commit/a079ba461db5f184f53dcd8d6031a82478b788f5"><code>a079ba4</code></a> Update Node version to 20 (<a href="https://redirect.github.com/mathieudutour/github-tag-action/issues/202">#202</a>)</li> <li><a href="https://github.com/mathieudutour/github-tag-action/commit/86301c823dac64d427711dd6b99d7ffdd894d2dd"><code>86301c8</code></a> Revert "Use <code>${{github.token}}</code> as default" (<a href="https://redirect.github.com/mathieudutour/github-tag-action/issues/167">#167</a>)</li> <li><a href="https://github.com/mathieudutour/github-tag-action/commit/5bd9038fd1cc379dfe97904dda3a4b5b3af5d606"><code>5bd9038</code></a> Bump minimatch from 3.0.4 to 3.1.2 (<a href="https://redirect.github.com/mathieudutour/github-tag-action/issues/162">#162</a>)</li> <li><a href="https://github.com/mathieudutour/github-tag-action/commit/ac8cb388384294d1215aed7911d7b7e57b3d0f0a"><code>ac8cb38</code></a> getValidTags() should exclude tags that do not match the prefixRegex (<a href="https://redirect.github.com/mathieudutour/github-tag-action/issues/158">#158</a>)</li> <li>Additional commits viewable in <a href="https://github.com/mathieudutour/github-tag-action/compare/v6.1...v6.2">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mathieudutour/github-tag-action&package-manager=github_actions&previous-version=6.1&new-version=6.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourse…
- Loading branch information