Commit Graph

1461 Commits

Author SHA1 Message Date
Hat Kid 223f8f0b9d regression 2026-04-18 23:39:12 +02:00
Hat Kid e4667607f9 regressions 2026-04-18 23:22:41 +02:00
Hat Kid bf42802763 regressions 2026-04-18 20:57:09 +02:00
Hat Kid 46a4b9d0ad increase stack for tpl-holo-eye 2026-04-18 15:04:47 +02:00
Hat Kid 687b3aa858 Merge remote-tracking branch 'upstream/master' into w/stack-vars 2026-04-16 16:48:52 +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
Hat Kid f5f2fbdb08 regressions 2026-04-15 21:28:33 +02:00
Hat Kid 44cfd6ea8c trim whitespace 2026-04-15 20:36:06 +02:00
Hat Kid 77f5631792 jak3 gsrc 2026-04-15 20:34:09 +02:00
Hat Kid 494e64e9c2 regressions and casts 2026-04-15 02:52:03 +02:00
Hat Kid f1fd4ded5a trim whitespace 2026-04-15 02:41:23 +02:00
Hat Kid c0b0f35b05 jak2 gsrc 2026-04-15 02:33:12 +02:00
Hat Kid 9f66a69859 always set vu function length to 0 2026-04-15 02:31:17 +02:00
Hat Kid 21a148f9ea regressions 2026-04-14 09:34:28 +02:00
Hat Kid c7783d5272 jak1 gsrc 2026-04-14 09:23:20 +02: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
Hat Kid 7145890eee jak3: high fps fix for mech carry drop (#4223)
Closes #4205
2026-04-14 01:26:44 -04:00
Matt Dallmeyer 480fdaa282 [jak3] Fix some things relating to resetting speedruns (#4216)
addresses:
- starting new game from title screen with speedrun mode on -> shows
intro cutscene, doesn't start autosplitter, verification text not shown
- resetting run during intro cutscene leaves weird desert state across
training course (not an issue if we fix^)
- reset in hero mode after completing training course -> verification
text not shown
- resetting during tentacle grab leaves the water bubble sound playing
forever
2026-04-14 00:52:22 -04:00
Matt Dallmeyer d961e793ee [jak3] Make surround sound not the default (#4217) 2026-04-13 19:27:21 -04:00
water111 873fd90e46 update jak1 all_objs paths 2026-04-13 15:26:34 -04:00
Grateful Forest a18d74c6fd jak3: map fixes for pc port (#4199)
Three fixes for fullscreen map screens:

**1. Expand scanlines to cover whole screen**
Instead of just the 4:3 square, scales dynamically without overshooting.

**2. Fix map icon stretching**
On a real PS2, map icons squash incorrectly at 16:9, gets worse with
custom aspects. Fixed but preserves original game bug at PS2 16:9.

**3. Stop fast map scrolling at high FPS**
Same map scroll speed regardless of framerate.

Fixes #4195
2026-04-12 19:45:05 -04:00
Alex fedd27ebfd Adjust projectile focus fix to also work on semi-solid targets + fix tracking issues with dm-tentacles (#4207)
Fixes #4177 

Also additionally fixes the setting not doing anything to the
terraformer tentacles. Tentacles are no longer considered 'solid' when
dead while the setting is on.
2026-04-12 00:57:55 +01:00
Matt Dallmeyer c31662ef89 [jak3] Fix secrets option on title screen (#4194)
Fixes 2 things:
- secrets option on title screen not hidden if no secrets unlocked
(missing check, we just always drew it)
- off-by-one bug in the "skip over secrets option" logic


https://github.com/user-attachments/assets/0f94f310-ca23-4ba8-91d5-7c2c10793c33

This approach mirrors what we did in Jak 2, but feels a bit hacky... I
have another branch
[here](https://github.com/open-goal/jak-project/compare/master...dallmeyer:jak-project:b/title-secrets?expand=1)
which takes the ND approach of just switching between 2 static menus
like:
```lisp
     (if (memcard-unlocked-secrets? #f #f)
      (set! (-> this current-options) *title-secrets-pc*)
      (set! (-> this current-options) *title-pc*))
```
2026-04-09 20:14:43 -04:00
Hat Kid cfe3ec9229 decomp3: cam-debug, hover-nav-edit, pilot-recorder (#4203)
Should be the last remaining files aside from `anim-tester` which we
already have a better replacement for.
2026-04-09 06:27:00 +02:00
Matt Dallmeyer d2e9e6ea45 [jak2/jak3] Check target state != target-continue, instead of = target-stance, for speedrun post-init things (#4193)
Without this change, in hero mode speedruns you aren't given jetboard,
guns, etc if you are immediately moving when the game starts

(left side has these changes, right side does not)


https://github.com/user-attachments/assets/d581ca13-3734-4389-9986-0f815c76e906
2026-04-08 18:36:22 +02:00
Hat Kid 3f686854e6 decomp3: vivsol-edit, editable and nav mesh editor files (#4200)
- `visvol-edit`
- `editable`
- `editable-player`
- `mysql-nav-graph`
- `nav-graph-editor`
- `nav-mesh-editor-h`
- `nav-mesh-editor`

The SQL data is not filled in yet.
2026-04-08 17:42:13 +02:00
Tyler Wilding bd5bfe837b jak3: remove -debug from critical load-game logging function (#4187)
Closes #4183

Jak 2 didn't have this logging call so its fine, but jak 3 added this
which is a nice idea. TLDR - there's some settings we stopped loading
from the memcard as the source of truth, this function (`load-game...`)
skips said portions of the save file and in jak 3, includes a helpful
log message.

It constructed that log message by calling a `defun-debug` function,
which means that in retail mode, that function is gone, instead of that
being a straight forward crash, it returns garbage, which is passed to
`format`, which causes the crash. Fix is simple, make it a non-debug
function so it's always available.

Feels like something that could be improved about `goalc` but,
be-careful with debug only functions is the take away.

This would seem to impact any save file that wrote these related tags
(and thus, triggered the logging code) but it might also be semi-random
with how unlucky you get with the returned garbage addr
2026-04-06 01:10:49 -04:00
Matt Dallmeyer 147765fa23 [jak3] Update progress code to use DPROCESS_STACK_SIZE (#4186)
Mirroring [changes from
jak2](https://github.com/open-goal/jak-project/commit/ba12d804f7a6bed6e3c3dd7b6928bce5c02edb86#diff-a2dfc3363ae440ca32fdf57325fdbcd942fc0155877df70f12c447b9924d54a4),
this was actually causing crashes when opening Mission menu in modbase
2026-04-06 03:04:07 +02:00
Tyler Wilding c012005084 jak3: add unlock debug menu options (#4184)
Same as https://github.com/open-goal/jak-project/pull/3539
2026-04-05 18:18:17 -04:00
Tyler Wilding 1f1fdf834b jak3: support mirror mode (#4170)
Similar changes as have been done in the previous two games. Test the
following things:
- normal gameplay
- defend spargus turret
- satellite
- that desert mission where you shoot the gun
- that turret mission in haven forest

At a glance, i think that's everything...?

~~Didn't debug the crash yet either, hoping this is sufficient~~ (fixed,
thanks hatkid, needed to disable some blit related code)

Closes #4160
2026-04-05 17:52:15 -04:00
Hat Kid dc203502fc jak3: fix potential wascity-defend softlock, stick sens setting, fix freeze-screen regression (#4182)
There was some bad manual decomp in `wasdef-manager` that caused the
mission to sometimes softlock, preventing Jak from exiting the turret
after destroying all Makers.

Also adds stick sensitivity setting from Jak 2 and fixes a regression
with the Light Jak freeze screen overlay on PC aspect ratios.

Closes #4179 
Closes #4154
2026-04-05 16:58:19 +02:00
Tyler Wilding c3cc91c9ba jak2/3: update enemy method name related to playing sound effects (#4176)
Was investigating https://github.com/open-goal/jak-project/issues/3012
and found out it's no longer an issue, fixed at some point.

Updated the method name, it actually looks like quite a few methods were
nicely named / documented in jak 3, so i might automate backporting that
documentation (likely a bunch that can go all the way back to jak 1 as
well).

Closes #3012
2026-04-05 01:14:14 -04:00
Hat Kid c2dd821bd3 jak3: add sidekick feature to hero mode for runs (#4173) 2026-04-04 15:28:35 +02:00
Matt Dallmeyer 8aa9fb0afd Fix language settings not saving in jak 2/3, fix autosave from title screen new game in jak 3 (#4172)
fixes #4167 and #4164
2026-04-04 08:33:53 +02:00
Matt Dallmeyer fe8a664f52 [jak3] Support PC camera invert options (#4171)
Implement PC camera inversion toggles, for first/third
vertical/horizontal controls

Reuses vanilla placement of Camera Options menu (as opposed to under
Input Options like jak1/2)

fixes #4158
2026-04-04 08:26:36 +02:00
rocket 64baff9614 jak2/jak3: fix overlapping layers on non-playable Hellcats (#4161)
fix for issue #4120, along with other areas this happens in Jak II and
Jak 3

**Before**
<img width="2560" height="1440" alt="desoasis-hellcat"
src="https://github.com/user-attachments/assets/c77db831-c9c7-493d-a426-de12248312d4"
/>
**After**
<img width="2560" height="1440" alt="desoasis-hellcat-fixed"
src="https://github.com/user-attachments/assets/f75c57ec-dc76-43bb-b743-7fe659d36a15"
/>

**Before**
<img width="2560" height="1440" alt="ctywide-scenes-atoll-hellcat"
src="https://github.com/user-attachments/assets/73162526-9676-4937-96e8-78636248fbdc"
/>
**After**
<img width="2560" height="1440" alt="ctywide-scenes-atoll-hellcat-fixed"
src="https://github.com/user-attachments/assets/0f5b1e85-dd45-4933-98c1-589bc41aeafb"
/>

---------

Co-authored-by: Matt Dallmeyer <mattdallmeyer@gmail.com>
2026-04-03 20:41:47 +02:00
Matt Dallmeyer 259b74d7cc [jak3] Scale sandstorm push effect to better match PS2 (#4163)
Took @ManDude 's suggestion to make the sandstorm's push effect on Jak
slightly less aggressive, to better match the effect on PS2 where it
never hits 60fps. This was especially noticeable in finalboss. Tested at
higher FPS as well
2026-04-03 15:47:39 +02:00
Hat Kid 6de4b0e62c jak3: misc rpc and progress fixes (#4159)
- Fixed font scaling for main menu options and auto save info box
- Removed surround sound option (we probably won't be implementing this
any time soon)

Discord RPC fixes/additions:
- Now shows what gun you currently have out
- Fixed outdoor levels not showing their icons
- Added icons for vehicles and various other states
- Fixed glider mission not displaying
2026-04-03 03:27:53 +02:00
Matt Dallmeyer be18834432 [jak3] Port over R1/R2 swap and trigger effects from jak2 (#4151)
Exact same changes as jak 2, except I have the left trigger effect moved
from `target-darkjak-get-on` to `target-powerjak-get-on` (the crouching
state before he goes to dark or light jak)
2026-04-03 03:20:51 +02:00
Matt Dallmeyer c37304c2dd [jak3] Fix arena token not respawning bug (#4150)
a bit of a hack but I'm not sure what else to do besides completely
unload/reload wasstadb-obs. open to suggestions

here is the bug
https://youtu.be/C1KZlRFbjys?t=50
2026-04-03 03:15:32 +02:00
Tyler Wilding c4d34e3d0e jak3: Finish font DB implementation (support Cyrillic) (#4147)
Also add in all the other language stubs / copy over the custom text to
the correct enum ids.

Closes #4001
2026-04-02 01:10:39 -04:00
Hat Kid 0e0da376c3 jak3: remove old pal graphics menu and enable fps setting in retail (#4149) 2026-04-02 02:17:45 +02:00
Matt Dallmeyer 07a1fcacae [jak3] Give skull gems for heromode speedruns (#4148) 2026-04-02 02:02:13 +02:00
Grateful Forest 27627012dc jak1: fix memcard screen on custom aspects (#4116)
The particles for the grey memcard slots already had functions
associated with them, so scaling the grey boxes was simply a matter of
making use of those functions.

The memcard boxes expand and shrink with the aspect to resemble the PS2
behavior, where at 4:3 you get a short grey box and at 16:9 you get a
long grey box.

Although I added scaling to the grey boxes, I wasn't satisfied with the
way elements would "slip" as they would scale differently to each other.
Mainly, the collectable counts and their totals slide more and more off
from each other.

This is due to the game's use of integer offsets to decided UI
placements; they were the right numbers for 4:3, but once you start to
scale, they can slide more and more off. You can see this on a real PS2,
where at 4:3, the collectibles are centered above the totals, and at
16:9, the collectibles are more right-aligned above the totals.

To fix this, I used the same text flags on the totals as the counts, so
everything is snapped to each other.
Guards against `(-> *pc-settings* use-vis?)` ensure PS2 aspects remain
untouched, and at PS2 16:9, you still get the original game bug of more
right aligned counts.


https://github.com/user-attachments/assets/0fa00a5d-0090-4cd0-b68b-8b8f28816185
2026-03-27 19:52:40 -04:00
Matt Dallmeyer cd8252d227 [jak1] MP ILs - dont spawn the column that klaww breaks during cutscene (#4131)
Small thing I only noticed from the Gordon & Daxter mod since you skip
klaww and go through where this column spawns.

<img width="1920" height="1080" alt="image"
src="https://github.com/user-attachments/assets/2ea74b77-47db-4783-8917-d0b616dd1820"
/>
2026-03-17 22:07:56 -04:00
Matt Dallmeyer 3c985f8c3a [jak2/jak3] Unbreak split boxes debug option (#4133)
The `Split Boxes` option in jak2/3 currently crashes as soon as you
select it because of the `*debug-region-hide-empty*` code added in
openGOAL. The split boxes aren't true regions, but they reuse the
`debug-draw-region` functions, and crash trying to access `(-> this
region on-enter)`.

<img width="2160" height="1620" alt="image"
src="https://github.com/user-attachments/assets/e8753fcc-8234-40fa-9278-d2dca4dff71a"
/>
yay split boxes
2026-03-17 22:07:15 -04:00
Matt Dallmeyer a2b7fb3c15 [jak1] Restore Klaww cutscene skip for Mountain Pass IL speedruns (#4124)
Originally added in [this
PR](https://github.com/open-goal/jak-project/pull/2162/changes#diff-fcd36d04955bffd72ece8b8bf9b7a137d7b58f712660536bb6889b7850e07bea)
but I forgot to use `og:preserve-this` so it got wiped out in [a later
PR](https://github.com/open-goal/jak-project/commit/da3caf7b2850c37eb7801221461bb8ff918fa101#diff-fcd36d04955bffd72ece8b8bf9b7a137d7b58f712660536bb6889b7850e07beaL1154).

Updated a couple spots to use `og:preserve-this`.
2026-03-02 18:33:08 -05:00
Matt Dallmeyer ad3e55745a [jak2/jak3] Wait to reset autosplitter until after blackout (#4126)
Based on [similar changes we made awhile back for
jak1](https://github.com/open-goal/jak-project/pull/3902) - this way
runners don't need to figure out the -0.3s offset or whatever, and it
won't vary based on where they reset from.
2026-02-28 21:07:12 -05:00
Tyler Wilding d3cc739e43 jakx: Commit existing work from other PRs (#4112)
This attempts to get into master whatever work was done in this PR /
it's earlier PR https://github.com/open-goal/jak-project/pull/3965

I don't want this work to be lost / floating around in massive PRs.

However the changes are:
- switch to ntsc_v1 instead of PAL as the development target, as we have
done for all other games
- remove most of the copied-from-jak2/3 changes as they need to be
confirmed during the decompilation process not just assumed
- avoids committing any changes to `game/kernel/common` as it was not
clear to me if these were changes made in jak x's kernel that were not
properly broken out into it's own functions. We don't want to
accidentally introduce bugs into jak1-3's kernel code.
- in other words, if the change in the kernel only happens in jak x...it
should likely be specific to jak x's kernel, not common.

---------

Co-authored-by: VodBox <dillon@vodbox.io>
Co-authored-by: yodah <greenboyyodah@gmail.com>
2025-12-31 21:08:44 -05:00
Matt Dallmeyer a5ac2b0fcc Prevent array OOB access for traffic-height-map (#4106)
If the `arg0` vector has extreme values, `a2-0` and `a1-1` can end up
being negative, which leads to out-of-bounds access when using these
values to read from the `xz-height-map`'s `data` array, and crashes the
game (you can pretty easily reproduce this in jak 3 by overcharging the
"superfasthoverbikeglitch")

The `min` here already makes sure these values don't go too high, but
doesn't cover the case when they go negative.

As I understand it, this `data` in the `*traffic-height-map*` functions
as a 2d array, bucketing x/z coordinates into heights for the vehicle.
2025-12-28 16:26:00 -05:00