Commit Graph

3002 Commits

Author SHA1 Message Date
OpenGOALBot 89e5ea9764 ci: updated controller database 2026-06-22 19:25:47 +00:00
Hat Kid 0f9beb4610 decompiler: detect light-trail-tracker-spawn macro (#4317) 2026-06-17 18:57:59 +02:00
Hat Kid 0b799821ed decompiler: export blerc data to glb (#4316)
This adds the blerc data from merc models to the GLB export as shape
keys, also including the data from animations. Blender is unfortunately
a bit weird about this and only really lets you change what animated
weights are used via the NLA track editor by selecting both the
corresponding armature animation and then the one for the shape keys.
Additionally, due to the way the Blender GLB import works when you have
animated weights on a model + animations as actions for an armature, any
models that have blerc data get an extra useless empty, but this seems
to be harmless.

This PR also fixes materials that use texture animations so they now
have their base texture in the export, rather than using the default
material. Materials now also get named after their base texture for
easier recognition.
2026-06-17 02:41:39 +02:00
OpenGOAL Bot 86bbff237f CI: Periodic Controller Database Update (#4313)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-06-15 20:10:23 -04:00
Tyler Wilding a3e004f475 d/jx: Another round of files (#4311)
Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
2026-06-15 09:56:10 -04:00
Matt Dallmeyer 58d957a305 [jak3] track-skill: Better check for orbs collected from crate (#4312)
The one crate with gold triple orb in temple doesn't update `(-> e extra
perm user-int8 1)` the way I was expecting based on how the one crate
that drops two orbs behaved. This check fixes that and is a bit simpler
2026-06-15 06:23:12 +01:00
Hat Kid 41fd0b6cec custom levels: support camera entities and custom keyframe values (#4310) 2026-06-13 00:29:24 +02:00
Matt Dallmeyer feaa7fb873 [jak1] Show max of flying-lurker distances on HUD (#4309)
previously only showed the distance from `flying-lurker-1`, but any of
the 3 getting 500m can cause you to fail, so we should show the max
2026-06-11 07:26:41 +01:00
Matt Dallmeyer 396fd63c93 [jak3] Include orbs in crates for track skill debug option (#4275)
<img width="2756" height="2066" alt="image"
src="https://github.com/user-attachments/assets/88034b10-c502-4df0-b5b8-6d6357eed433"
/>
2026-06-10 19:48:38 -04:00
Tyler Wilding faa9b91c73 ci: move offline tests to a GHA self-hosted runner (#4308) 2026-06-09 21:25:33 -04:00
Tyler Wilding e41b6da568 ci: init offline runner allowlist (#4307)
Necessary scaffolding for offline test runner change, moving it off of
jenkins.
2026-06-08 20:13:30 -04:00
YohanDFN 70ef778a90 [jak3] proofreading & correcting FR subtitle lines (#4272)
This PR provides minor typo fixes and harmonizes the French subtitles
with the game's original terminology used in cutscenes and menus.

---------

Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
2026-06-08 17:03:26 -04:00
tripp 560e191ca4 decompiler: reduce memory usage during texture pack installation by lazily loading texture replacements and serializing level building (#4278)
Three changes:
1. Add lazy merging/replacing for texture `rgba_bytes`.
2. Use a single thread when decompiling with texture replacements.
3. Drop textures after serializing and before compression.

These changes should enable users to install **massive** texture packs
without issue.
2026-06-08 17:02:19 -04:00
OpenGOAL Bot c81a315fa3 CI: Periodic Controller Database Update (#4306)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-06-08 17:00:54 -04:00
Hat Kid 4076b1477e jak3: fix zoom blur flashbang in retail (#4305)
When `do_zoom_blur` sets up its draw, it doesn't update the blend
settings, so it ends up inheriting the previous values.

In retail mode, the previous draw is from a texture animation, which
sets up the blend in a specific way that causes it to draw a white
texture over the screen. In debug mode, right before the zoom blur is
drawn, the debug text is drawn, which modifies the blend settings to
something that makes the blur look as it should.

Closes #4206
2026-06-07 21:28:59 +02:00
Hat Kid a5ef456e8b loader: allow manual reload of fr3 data (#4304)
This adds some buttons to the loader debug menu and GOAL functions to
allow you to manually force a reload of a level's FR3 data (including
the common level), allowing for live texture replacements, model swaps
and custom level modifications without requiring a game restart or
waiting for the loader to fully discard a level.
2026-06-07 16:45:33 +02:00
Hat Kid 25e105aa5d jak2/3: implement ocean envmap (#4303)
Implements the envmap for the ocean generated by
`ocean-method-89`/`ocean-method-88`.

While the resulting envmap looks accurate compared to PCSX2 in
Renderdoc, the end result does not seem 100% identical, but it is a big
improvement over the default placeholder texture.

Closes #3417
2026-06-07 07:27:43 +02:00
Matt Dallmeyer b948e954d0 [jak2/3] Fix dark/light eco HUD not flashing after save file is X hours old (#4285)
Once `(-> *display* game-clock frame-counter)` gets too large, in the
HUD flashing math the `sin` function breaks down at high values. It's
effectively reading the number of ticks (times a multiplier) as degrees,
so we can modulo that by 360 to avoid breaking `sin`

This applies to both the eco meter and the dark jak icon in jak 2 - the
icon stops flashing twice as early because it's multiplied by x4 vs the
eco meter x2.

example:

you can see dark jak icon stops flashing around 2:36:02
https://youtu.be/3V2GneLSY14?t=9362

and dark eco meter stops flashing between 4:30 and 4:37
https://youtu.be/3V2GneLSY14?t=16235
https://youtu.be/3V2GneLSY14?t=16619
2026-06-06 17:32:12 +01:00
Hat Kid b9d3f50ae8 deps: update to SDL 3.4.10 (#4301)
For Steam Controller (2026) support
2026-06-04 19:19:15 +02:00
Hat Kid 1254d93fbe custom levels: support custom regions in jak2/3 (#4300)
This adds support for generating pairs with `DataObjectGenerator` and
defining your own regions and `actor-group`s in custom levels.
2026-06-03 18:39:21 +02:00
Ziemas e00bc479f4 libco: Update to latest version from ares (#4282)
This also removes the LIBCO_MPROTECT setting, I don't know why I enabled
that but it prevented putting the context swap code in the text section.
2026-06-03 02:51:07 -04:00
Aloqas fa2f652d2f jak3: Dev commentary subtitles (#4281)
Subtitles for ND dev commentary tracks
2026-06-03 00:24:44 -04:00
OpenGOAL Bot bbb9abdbf8 CI: Periodic Controller Database Update (#4273)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-06-03 00:13:46 -04:00
Alex 89da645162 jak3: make actor LOD setting affect lightning quality in elec gates (#4292)
Carrying this over from Jak 2, where it significantly improved the elec
gates' look at a distance.
2026-05-31 16:55:46 +02:00
Hat Kid 3422e0525f decompiler: extract_anim model name remap (#4297)
In some rare cases, the master art group and model names do not match
for some animations (`collectables-ag` is a prime example for Jak 2/3,
which contains multiple different models).
2026-05-31 16:55:10 +02:00
Hat Kid e48289406e build-actor: set shader-cnt to 0 for dummy merc-fragment (#4296)
Inside the build actor tool's dummy `merc-fragment`'s `merc-fp-data`,
the `shader-cnt` is set to `1`, which means that `login-adgifs` runs for
the fragment and attempts to login the texture. We don't need to do this
for custom actors and it can cause crashes during level unloading when
textures get unlinked, so we can just set the `shader-cnt` to `0` to
prevent this.
2026-05-31 16:19:10 +02:00
Hat Kid 122de4ecf5 jak1: clean up control-info names and other misc cleanup (#4295)
After spending the last month staring at and comparing Jak 3 and Jak 1
versions of a bunch of `target` code for my jetboard mod, I figured this
would be a good opportunity to revive this ancient PR #1714 along with
some other small misc fixes/improvements.

Instead of directly replacing the old fields, I decided to opt for using
overlay fields to maintain backwards compatibility with existing manual
patches, files without ref tests and mods that might use these fields.
2026-05-31 15:08:41 +02:00
tripp fd17e337d6 jak2: add missing inline declaration in vector*! (#4287)
as per the description of #3846 
"Detect use of vector*!, which is **inlined in jak 2** and jak 3."

This function was missing the inline declaration resulting in the
compiled output differing.
2026-05-30 17:21:25 -04:00
Hat Kid 4e77d6ea61 jak1: fix mole crash on foot (#4294)
Another classic case of missing event args, though this one is fatal on
PS2 as well.
2026-05-30 11:14:29 +02:00
tripp c010073ddc game: fix missing event.type comparison in joystick axis motion handler (pressure sensitive axii) (#4286)
`SDL_EVENT_JOYSTICK_AXIS_MOTION` is an enum with `Value = 1536`, which
means the code current acts like: `else if (true &&
m_has_pressure_sensitive_buttons)`
2026-05-27 21:28:02 -04:00
Tyler Wilding 704972dd6a decomp: resolve first batch of trivial files (#4266) 2026-05-08 18:54:05 -04:00
Hat Kid 580b190371 jak3: fix dark eco vent powerup anim (#4269)
Yet another case of the PS2 getting insanely lucky with buggy ND code,
the eco vents send an event to Jak to make him go into the powerup
state, but do not pass any event arguments which determine what
animation to play and at what speed/start frame. For the dark eco vents,
PS2 manages to somehow get the correct value of `7`, but we are not so
lucky.

As a side effect of this fix, we also get the originally intended
behavior for the light eco vents of playing the full powerup animation
from the start at a slower speed, rather than the much shorter one you
see on PS2.

Closes #4268
2026-05-06 04:29:15 +02:00
Luís Mota 18988ff9fe Update Jak 1 Portuguese (pt-pt) translations (#4263)
Hello guys, I'm new here.
To give my contribution I've fully translated the intro sequence for Jak
1, some lines were missing.
2026-05-05 00:23:22 -04:00
OpenGOAL Bot 87190890cf CI: Periodic Controller Database Update (#4262)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-05-04 17:36:21 -04:00
Hat Kid c4bc4d3ff4 jak3: fix region regression (#4264) v0.3.3 2026-05-04 21:47:47 +02:00
Aloqas 553edd3e68 jak2/jak3: Add subtitle speakers (#4230)
Adds subtitle speaker names to jak2/jak3 cutscenes, as well as the
progress menu option

<img width="962" height="752" alt="Näyttökuva 2026-04-18 005744"
src="https://github.com/user-attachments/assets/66b1cc46-9623-4e43-ad65-df7302a0156d"
/>
v0.3.2
2026-05-04 18:49:08 +02:00
Hat Kid e6260e48ab decompiler: support animation export and support master art groups in build-actor tool (#4260)
Adds support for exporting animations for foreground models. It's not
perfect and doesn't handle the Jak 2/3 animations very well in some
cases (scale can often get messed up, especially for the LZO compressed
ones, I have no idea what is going on with the data in those art groups
sometimes, so that'll have to be revisited later...), but it does a
decent job on Jak 1.

Additionally, the `build-actor` tool has also been changed to support
setting the `master-art-group-name` and `master-art-group-index` fields
to allow for custom art groups to link their animations to a different
master art group, which lets you add custom animations to vanilla art
groups.
2026-05-04 17:19:41 +02:00
Matt Dallmeyer a7844c9b5d [jak3] Add roboskip autosplit, allow heromode secret selection (#4257)
addresses a couple issues from
https://github.com/open-goal/jak-project/issues/4214



https://github.com/user-attachments/assets/cc34aa77-3c5e-4b50-9d8b-4a1bf9f58353



https://github.com/user-attachments/assets/91edb7eb-5aab-497a-bdb5-8f6ffc00cbfd
2026-05-04 13:10:02 +02:00
Matt Dallmeyer 5b75cb74df [jak3] Prevent NaN propagation in spydroid attack state (#4237)
Another patch to prevent NaN propagation. Still doesn't address the root
cause of the NaNs, but should fix some mission behavior.

In some cases, crimson-guards will [return NaN vectors for their
`bullseye-joint`](https://github.com/open-goal/jak-project/blob/1dff57182004f058848b26f0f8bfbb111a96e480/goal_src/jak3/engine/ai/enemy.gc#L178-L183).
I suspect the root cause of these NaNs may be related to the guards
missing their torsos

<img width="1202" height="692" alt="image"
src="https://github.com/user-attachments/assets/c1a91266-cd50-44f9-80cb-de9b9415d36b"
/>

In the [spydroid's `attack`
state](https://github.com/open-goal/jak-project/blob/1dff57182004f058848b26f0f8bfbb111a96e480/goal_src/jak3/levels/common/enemy/spydroid.gc#L743-L772),
this NaN value will end up propagating to the spydroid's position.

This in turn causes issues like the infinite looping addressed in #4225.
Or another issue in "Defend HQ From Attack" - every spydroid spawned by
the task manager can end up with NaN positions. The spydroids will be
nowhere to be seen, but the task-manager still considers them alive and
won't spawn any other KG enemies.
2026-05-04 13:09:10 +02:00
dependabot[bot] d328be1084 build(deps): bump hendrikmuhs/ccache-action from 1.2.22 to 1.2.23 (#4255)
Bumps
[hendrikmuhs/ccache-action](https://github.com/hendrikmuhs/ccache-action)
from 1.2.22 to 1.2.23.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hendrikmuhs/ccache-action/releases">hendrikmuhs/ccache-action's
releases</a>.</em></p>
<blockquote>
<h2>v1.2.23</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump handlebars from 4.7.8 to 4.7.9 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/hendrikmuhs/ccache-action/pull/436">hendrikmuhs/ccache-action#436</a></li>
<li>Bump <code>@​types/node</code> from 25.5.0 to 25.6.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/hendrikmuhs/ccache-action/pull/440">hendrikmuhs/ccache-action#440</a></li>
<li>Update ccache to 4.13.3 by <a
href="https://github.com/crueter"><code>@​crueter</code></a> in <a
href="https://redirect.github.com/hendrikmuhs/ccache-action/pull/441">hendrikmuhs/ccache-action#441</a></li>
<li>Bump brace-expansion by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/hendrikmuhs/ccache-action/pull/438">hendrikmuhs/ccache-action#438</a></li>
<li>Support platforms without upstream ccache/sccache releases by <a
href="https://github.com/luhenry"><code>@​luhenry</code></a> in <a
href="https://redirect.github.com/hendrikmuhs/ccache-action/pull/439">hendrikmuhs/ccache-action#439</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/luhenry"><code>@​luhenry</code></a> made
their first contribution in <a
href="https://redirect.github.com/hendrikmuhs/ccache-action/pull/439">hendrikmuhs/ccache-action#439</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/hendrikmuhs/ccache-action/compare/v1.2.22...v1.2.23">https://github.com/hendrikmuhs/ccache-action/compare/v1.2.22...v1.2.23</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/hendrikmuhs/ccache-action/commit/d62db5f07c26379fc4b4e0916f098a92573c3b03"><code>d62db5f</code></a>
Support platforms without upstream ccache/sccache releases (<a
href="https://redirect.github.com/hendrikmuhs/ccache-action/issues/439">#439</a>)</li>
<li><a
href="https://github.com/hendrikmuhs/ccache-action/commit/05e1c04f70f450688c8bf36082e71050cda33fff"><code>05e1c04</code></a>
update code</li>
<li><a
href="https://github.com/hendrikmuhs/ccache-action/commit/46cafa7d86381b309fd628848dc9a06f6b62fa84"><code>46cafa7</code></a>
Bump brace-expansion (<a
href="https://redirect.github.com/hendrikmuhs/ccache-action/issues/438">#438</a>)</li>
<li><a
href="https://github.com/hendrikmuhs/ccache-action/commit/1f2fc71e6bcde2d2239527d286615b056034631d"><code>1f2fc71</code></a>
Update ccache to 4.13.3 (<a
href="https://redirect.github.com/hendrikmuhs/ccache-action/issues/441">#441</a>)</li>
<li><a
href="https://github.com/hendrikmuhs/ccache-action/commit/a488765c244f03fddbbccc93de3f64abdb389e59"><code>a488765</code></a>
Bump <code>@​types/node</code> from 25.5.0 to 25.6.0 (<a
href="https://redirect.github.com/hendrikmuhs/ccache-action/issues/440">#440</a>)</li>
<li><a
href="https://github.com/hendrikmuhs/ccache-action/commit/c97afba725c6d99ed1e7395257fb02cc412236d5"><code>c97afba</code></a>
Bump handlebars from 4.7.8 to 4.7.9 (<a
href="https://redirect.github.com/hendrikmuhs/ccache-action/issues/436">#436</a>)</li>
<li>See full diff in <a
href="https://github.com/hendrikmuhs/ccache-action/compare/v1.2.22...v1.2.23">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hendrikmuhs/ccache-action&package-manager=github_actions&previous-version=1.2.22&new-version=1.2.23)](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>
2026-05-01 21:41:26 -04:00
Matt Dallmeyer 7f2dbd6dd3 Include jak3 docs in zip (#4254) 2026-04-30 17:45:05 +02:00
OpenGOAL Bot 36d8213dfb CI: Periodic Controller Database Update (#4251)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-04-27 19:38:14 -04:00
Nick0778 fea7d3a15d [jak3] Fix Daxter's death quotes scenes not playing (#4243)
This PR fixes a bug in `target-death.gc` that was causing Daxter's death
quotes scenes to not play in OpenGoal.

Basically, these scenes weren’t working because `sv-96` was assigned an
invalid level, and as a result the `s4-1` check always returned `#f`.
So, the `(when s4-1 ...)` block that contains the logic for these scenes
was never executed.

<img width="1118" height="911" alt="png1"
src="https://github.com/user-attachments/assets/b92505f0-fa9b-4499-a113-b7524265c314"
/>

## Before the fix:


https://github.com/user-attachments/assets/58e2f412-814b-40ff-ab64-d22054a7232e

## After the fix:


https://github.com/user-attachments/assets/bf6ac0da-1a62-4cb4-b363-20af898dac7f
2026-04-26 16:10:15 -04:00
Tyler Wilding 6238f7f567 various decomp cleanups (#4247)
Removed a bunch of stuff, old scripts, cleaned up some decompiler
errors, added a new tool that should help with a future PR
2026-04-25 23:35:19 -04:00
OpenGOAL Bot 67cd649cb9 CI: Periodic Controller Database Update (#4240)
Updating Controller Database

Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
2026-04-20 18:46:52 -04:00
Hat Kid 1dff571820 game: support splash screens (#4236)
Closes #1496 

This brings back the SCE splash screens. Also adds a runtime flag
`-nosplash` to skip it. Right now, it's on by default, but open to
changes on that (maybe always disable in debug to speed up start times,
etc.).
2026-04-20 03:19:08 +02:00
Matt Dallmeyer a63cb1d212 [jak2/jak3] Fix off by one bug in trick display (#4224)
fixes #3150 

the scoring system counts up to 16 (point-scoring) tricks, but the
opengoal-secret display system was ignoring the 16th one, causing score
discrepancies
2026-04-19 00:47:36 +02:00
water111 637990314b wip: better stack var support (#4222)
Closes #736

---------

Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
2026-04-19 00:14:44 +02:00
Matt Dallmeyer 3e3542cb10 [jak3] Prevent NaN-induced infinite loop in ff-squad-control bubble sort (#4225)
This bit of ff-squad-control code is trying to sort guards based on
their distance from some shared target. In some cases the
`vector-vector-distance` returns NaN. In the bubble sort below this
change, the < operation always returns #t when NaN is involved, so the
NaN guard gets swapped back and forth endlessly, causing an infinite
loop.
2026-04-16 13:52:51 +01:00
Matt Dallmeyer 2f51e355dd [jak3] Implement trick display text secret (#4208)
ported the implementation from jak 2 into jak3 pretty much exactly.
added a new color for L2 tricks, and shrunk the text/width a bit so it
wouldn't end up covered by the minimap.

also fixed small bug in jak 2 (and 3) where dismounting jetboard
wouldn't reset the trick display, so displayed score wouldn't match the
granted score

---------

Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
2026-04-14 01:40:27 -04:00