Notably a lot done related to process-drawable/camera/nav code, the core
engine files are dwindling.
Also finally commits all the static data files for textures/joints/etc
---------
Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
The `relocate` method for `simple-prim` is defined twice, first in
`generic-obs.gc` and then again here in `cty-sniper-turret`. This
removes the one from the mission-specific code.
The only other type making use of `simple-prim` is used in the glider
mission. So on first playthrough, it runs fine, using the
`generic-obs.gc` method. But once you've played the sniper cannons
mission once, after it unloads, we no longer have a relocate method for
`simple-prim` on hand. So the glider mission crashes
Bumps
[mathieudutour/github-tag-action](https://github.com/mathieudutour/github-tag-action)
from 6.2 to 7.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mathieudutour/github-tag-action/blob/master/CHANGELOG.md">mathieudutour/github-tag-action's
changelog</a>.</em></p>
<blockquote>
<p>v7 upgrades the action to Node 24 and introduces breaking changes to
version calculation and branch handling. Review the migration guide
before upgrading from v6.</p>
<ul>
<li>Run on Node 24 and ship a self-contained <code>dist/</code> bundle
with both supported commit presets, templates, dependencies, and license
notices. Refresh the lockfile, remove the old Octokit dependency chain,
and retain proxy support.</li>
<li>Align analysis and changelogs on Conventional Commits, including
<code>feat!</code>. Angular remains selectable.</li>
<li>Match whole branch names; an empty prerelease list now means no
prerelease branches. Never publish from PR events or recursively process
tag events. Preview versions include a commit SHA suffix.</li>
<li>Fetch all tags and all compare-commit pages. Explicitly restricted
tag fetching fails when results might be incomplete. Read initial commit
history instead of comparing against a fabricated HEAD baseline.</li>
<li>Skip version creation when no eligible commits remain, unless custom
or forced versioning was explicitly requested.</li>
<li>Keep stable release baselines separate from unrelated prereleases;
match prerelease identifiers exactly, honor the first prerelease
default, increment existing RCs, and allow higher-level changes to
advance the RC base.</li>
<li>Add path/scope/ignore filters, opt-in squash-bullet parsing,
tag-stream filtering, explicit bump/version inputs, local/moving/rolling
tags, repository/ref/directory overrides, and release metadata
outputs.</li>
<li>Retry transient API reads and fall back to complete local Git
history for compare failures. No history means no guessed release.
Optional soft failure clears release outputs.</li>
</ul>
<h2>Migration</h2>
<p>See <a
href="https://github.com/mathieudutour/github-tag-action/blob/master/docs/migrating-to-v7.md">Migrating
from v6 to v7</a> for changed defaults, workflow examples, prerelease
behavior, and a dry-run validation procedure.</p>
<p>New inputs are opt-in unless explicitly described above and require
v7. See the <a
href="https://github.com/mathieudutour/github-tag-action/blob/master/README.md">README</a>
for the full input contract.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mathieudutour/github-tag-action/commit/af99e60ce8132224b8e6ebab5023449fe256ed46"><code>af99e60</code></a>
fix CI on windows</li>
<li><a
href="https://github.com/mathieudutour/github-tag-action/commit/8e15535db64483b84d3598dbf36eca1662cdbfe7"><code>8e15535</code></a>
version 7</li>
<li><a
href="https://github.com/mathieudutour/github-tag-action/commit/9d35d648e836d5db77936aa35a3a5c7bc16092c8"><code>9d35d64</code></a>
Bump ws from 7.5.5 to 7.5.10 (<a
href="https://redirect.github.com/mathieudutour/github-tag-action/issues/216">#216</a>)</li>
<li><a
href="https://github.com/mathieudutour/github-tag-action/commit/17d01dc92c1e62b097ea60d6c63b9f2b73c7b998"><code>17d01dc</code></a>
Bump braces from 3.0.2 to 3.0.3 (<a
href="https://redirect.github.com/mathieudutour/github-tag-action/issues/215">#215</a>)</li>
<li>See full diff in <a
href="https://github.com/mathieudutour/github-tag-action/compare/v6.2...v7">compare
view</a></li>
</ul>
</details>
<br />
[](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 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Some months ago I noticed that I wasn't seeing hint subtitles in TPL
anymore. Specifically, I was seeing the speaker names, but not the
subtitles themselves. I looked into it briefly back then and failed to
find anything, so I assumed it was something wrong with my setup
somehow.
I have returned to the issue, and managed to fix it. Now I consistently
see all subtitles, as I should. I always had the subtitles in the other
games working fine, and after my fix I still see them.
Before:
<img width="1920" height="1080" alt="2026-10-10T16-10-59"
src="https://github.com/user-attachments/assets/63a417fb-2f37-4950-a0ba-b9f28b02cae0"
/>
After:
<img width="1920" height="1080" alt="2026-10-10T16-58-55"
src="https://github.com/user-attachments/assets/4e58b34b-a253-458b-8be0-877c73767c3b"
/>
The fix was to provide default values in the subtitle metadata structs.
I remember that c++ fields/structs can end up having garbage data if you
don't provide values yourself, and this is probably also influenced by
the build config and maybe the PC itself. Anyway, with these changes, it
should always be good now regardless of who or what builds the project
(I usually use the Release msvc build config because Release clang has a
history of failing me).
Maybe it is worth mentioning that I always play with the setting that
forces speaker name to appear at all times. Not sure if relevant.
I have also discovered that the reload-subtitles feature of Jak 1 was
not working anymore, so I have made some adjustments and now it is
working fine.
While my solution fixed my issue, it is possible that it is not the
right way. The c++ language is not a language I am very experienced
with, so if my solution is unprofessional, please let me know and tell
me how I should approach it instead. But I am certain that the issue is
with field initialization somehow, and this is one way to fix that.
EDIT: Worth mentioning that I properly see all subtitles in current
latest OpenGOAL (launcher v2.11.2, tooling v0.3.8), which further
reinforces the idea that it is some fields that get unpredictable
values, influenced by the build config or build device. My issue is only
when I build the project myself. And it may impact other people, or it
may become an issue for official OpenGOAL too in the future.
<img width="1913" height="1073" alt="image"
src="https://github.com/user-attachments/assets/584ec767-d612-4634-a677-6853fad76924"
/>
- translates base game text in jak3 to polish
- minor fixes for jak2 polish translation
- fixes an error in game_text.gp where every line referenced jak2 folder
instead of jak3
- increases text heap size to 128KB so the game doesn't crash when
loading the translated file
For Act 2/3/Post-game, `set!`-ing the features ends up removing some
features given by task progression (e.g. `darkjak-smack`). Fix is to use
`logior!` instead so that we upsert the hero mode features and leave
task progression features alone.
while `gh release create` will create the tag for you, it only gets
created after the release is published. Which means the final step that
uploads the artifacts fails (it tries to checkout the tag, and it fails,
since it doesn't exist yet)
Last release was bad, went to delete it and remake it. Found out that
immutable releases also means an implicit tag protection that you cannot
disable. This is a good thing, unfortunate that I forgot about it before
deleting the tag.
Anyway...this will resolve it (allows me to push 0.3.8 and it'll still
generate the release notes with the last tag (0.3.6), atleast that's the
theory
fixes an issue from my previous pull request #4278.
this change restores the previous behavior prior and prevents the level
extraction process from creating too many threads, ultimately resulting
in the decompiler failing.
With help from @gratefulforest, I've implemented storing colours for
each time of day for meshes,
and updated the code to store 32 channel colours (8 times of day * 4
rgba channels).
https://github.com/user-attachments/assets/5d2fb82c-40b7-44ad-976f-acd5d4d57e1c
In addition, I've implemented a system @gratefulforest suggested which
makes adding different times of day
really easy for developers.
- If some times of day are missing, they use the closest time of day
that is defined, defaulting to the earlier of the two if there are two
equally closest defined times of day.
- If no times of day are defined, COLOR_0 is used, otherwise white is
used.
Log messages are concise and very informative:
```
[46:23:278] [info] Reading gltf mesh: /home/jakjm/git/jak-project/custom_assets/jak1/levels/test-zone/test-zone2.glb
[46:23:278] [warn] Plane missing some times of day, using sunrise:_EVENING, morning:_EVENING, noon:_TWILIGHT, afternoon:_TWILIGHT, sunset:_TWILIGHT, twilight:_TWILIGHT, evening:_EVENING, green sun:_EVENING
[46:23:278] [error] Cube.001 didn't have any colors, using white.
[46:23:278] [warn] Cube.002 had colors but no times of day, using COLOR_0.
[46:23:278] [warn] Cube.003 missing some times of day, using sunrise:_SUNRISE, morning:_SUNRISE, noon:_SUNRISE, afternoon:_SUNSET, sunset:_SUNSET, twilight:_SUNSET, evening:_SUNSET, green sun:_SUNRISE
[46:23:278] [warn] Cube.004 had colors but no times of day, using COLOR_0.
[46:23:278] [error] Cube.005 didn't have any colors, using white.
```
---------
Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
This PR adds the ability to extract sound effects to .wav files for each
of the four games, and music to .wav files for Jak1 and Jak2.
Basically what I have done is create a "fake player" which works the
same as the player from Player.cpp except we just take the raw audio
samples that would be sent to cubeb and then write them to wave files.
I shamelessly stole @Hat-Kid's code for flavas, for parsing the sound
effect names and for finding where the sound banks start for Jak 1 lol.
Fixes the following error when running the "Install Jak" option in VS:
```
CMake Error at third-party/draco/cmake_install.cmake:841 (file):
file INSTALL cannot find
"C:/Users/{WindowsUsername}/Documents/Coding/jak-project/out/build/Release/draco/draco_features.h":
No error.
Call Stack (most recent call first):
cmake_install.cmake:48 (include)
FAILED: [code=1] CMakeFiles/install.util
C:\WINDOWS\system32\cmd.exe /C "cd /D C:\Users\Jack\Documents\Coding\jak-project\out\build\Release && "C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -P cmake_install.cmake"
ninja: build stopped: subcommand failed.
Install succeeded.
```
The build was still useable but the error was bugging me.
Our version of `draco_features.h` is stored in
`third-party/draco/src/draco/draco_features.h` but `draco_install.cmake`
was not updated to reflect this change. Use the already defined
`${draco_features_file_name}` from `draco_options.cmake` to point to the
right place.
Disclosure: I didn't want to spend too much time dealing with cmake so I
pointed Qwen at the problem and it found a very simple solution. Using
`${draco_features_file_name}` to avoid hardcoding is neat. I fully
understand the fix, have tested it and all the descriptions were written
by me.
(AI Assisted)
---------
Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
Was trying to go through the README and the documentation on the project
to eventually start contributing and I noticed that this picture wasn't
rendering due to a faulty path in the markdown file.
The current autosplit options for side missions that track
bronze/gold/silver don't actually work (other than the explicit gold
options I added in #4398). This reworks these to track the player's best
rank in these missions (0=unranked, 1=bronze, 2=silver, 3=gold), and I
have the [corresponding autosplitter script
changes](https://github.com/open-goal/speedrunning/pull/35) to split
when reaching gold (rank 3). Should be okay to repurpose some of these
autosplitter fields since we haven't cut a release using them yet.
Along the way I filled out the `game-score` enum, made use of this enum
in place of uints throughout the code, and renamed things for a few
related `game-info` methods.
Breaks the 300 file milestone, also includes the majority of mips2c
functions carried forward. Some functions need some fixes in the c++
code to mips2c properly, and a small handful of the mips2c functions
require manual patching -- all spots were marked with `TODO - fix` that
had to be commented out to get things compiling.
Not required anymore.
Eventually this test should be ran on the ARM version of the compiler in
addition to the x86 one, but im not in a rush, especially since it's
likely that the ARM backend will be less stable as it's literally brand
new.
Got OpenGOAL building and running natively on Apple Silicon.
This is the rest of the port after the smaller arm64 emitter PRs. I was
told pushing one big PR was okay. This covers goalc, the runtime,
linker, kernel and the GOAL asm.
The new paths have native tests. I also found four more emitter bugs
while running it. They're in scalar sqrt, 128-bit stores, scalar max and
indexed stores above 4 GB.
Spent a while cleaning it up so it's easier to read. 4am gotta sleep lol
Closes#3841
---------
Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
These dependencies only crop up under the static build i suppose, brotli
was fixed, but now http/2 support is the new failure. Will actually
verify they will work here before merging this time.
Some neon tests, plus the fix they needed to run at all.
`ldr q` and `str q` with a register offset had a bad option field so
they don't
decode. The s8 load was ignoring addr2 and reading from the base on its
own. A
few used post indexed forms, which move the address register.
Rest of the avx list to come.
Alters the opcode constants and the lane index maths, so the pext,
vector shift, shuffle, blend and splat helpers now emit the correct
ZIP1/ZIP2, SHL/SSHR/USHR, INS and DUP machine encodings for 128-bit
vector operations.
Adds an Imm5 field helper, which the lane-insert and duplicate encodings
need.
Follows #4384, from the same Apple Silicon work.
Alters the opcode constants in Base, so these helpers now emit the
correct FADD/FMAX/FMIN machine encodings for 4×f32 vector operations.
Found these while getting OpenGOAL running natively on Apple Silicon.
- Adds `capstone` as a disassembling library that could eventually
replace Zydis (for now left that alone)
- Replicates all of the existing x86 tests to ARM64, fixed a bunch of
underlying issues along the way
- There are a very small handful of tests remaining that need to be
enabled / fixed