Progress Report - Q4 2025
Happy Holidays! Lots of fixes across all 3 games the past few months.
Release Info
This month's OpenGOAL Tooling (jak-project repo) release is 0.2.31.
Community Spotlight
Cratetopia
GratefulForest (of Platformia infamy) is back with Cratetopia, a familiar-looking block game recreated in the OpenGOAL engine!
Pogo
EvelynTSMG came up with this Jak 1 challenge mod, where Jak is forced to keep jumping at all times! Be sure to check out the mod settings where you can adjust various difficulty settings.
If you want to play these mods (and others), follow the instructions here to set up the mod list for the OpenGOAL launcher.
Launcher
Build new AppImage format
Upgrades our Tauri version to support portable AppImages.
Disable content selection in sidebar
Fixes minor bug where you could highlight unintended parts of the UI.
Restore playtime feature
Restores a feature to track playtime per game, which was inadvertently removed during code cleanup.

Support window resizing & allow Linux users to change install directory
Now that the CSS is responsive, we can allow for the launcher window to be resized (e.g. fullscreen on Steamdeck). Also fixed an issue where Linux users couldn't change their installation directory.
Improve support package output
Improves the accuracy of installation metadata collected for the support package, which users can provide to developers to get help troubleshooting.
Restore changelog page
Adds back the page detailing what has changed when new updates are available. This also fixes responsive issues with the "Update Available" header positioning.
Replace svelte-navigator with sv-router
Replaces the deprecated svelte-navigator with the more modern sv-router, which has some new features and a much nicer reactive model.
Correct header version display for mods
Properly distinguishes between vanilla and mod versions in the header.

Texture Pack / Mod feature cleanup
Fixes a bunch of typescript errors and refactored Texture Packs and Mods into isolated components.
Fix local mod installation
Fixes an issue where mods could no longer be installed from a local release package.
Fix offline mod support
Fixes an issue where already-installed mods could not be played while offline. The launcher will now cache metadata about mods during installation, and will fall back to this if the information cannot be fetched from the mod list source (i.e. while offline).
Fix brief UI flashes while navigating
Fixes an issue where previous component state could be briefly visible while naviating between pages.
General Changes
Translations
All translations from Crowdin should now be updated and added to the games. This includes changes for Spanish, Czech, Portuguese (Brazilian), French, Dutch, German, Polish, Finnish, and Norwegian!
If you're interested in contributing translations, check out these guides.
Add REPL function offset-of
Adds a new function to the REPL which will return the offset in memory for a field within a reference type.

Improved decompiler output for part-tracker
Improves the readability of decompiler output relating to particle groups / particle trackers. For example:
(process-spawn part-tracker :init part-tracker-init
- (-> *part-group-id-table* 104)
+ group-part-yellow-eco-fireball-hit
Fix custom model meshes when reusing materials
Fixes an issue where collision and visibility on custom actors would get skipped if multiple Blender objects shared the same material.
Fix custom level missing collision issue
Fixes an edge case in the BVH tree logic when processing custom level collision.
Speedrunner mode/autosplitter updates
Various changes relating to speedrunner mode and autosplitter:
- Jak 1
- Fixes Hub 2/3 100% categories to start with correct Scout Fly counts for previous levels
- Jak 2
- Adds intro autosplit points for the Stadium races
- Jak 3
- Adds useful non-resolution autosplit points
- Fixes end split timing to line up with last hit on final boss
- Updates suggested splits/routes for LiveSplit
Jak 3
Add zoom blur and color filter effect
Adds the zoom blur effect, as used in some cutscenes and for a few weapons:
Adds the color filter effect, as used in Misson Failed screen:
slow-time blur effect and fixed color filter:
Fix crash when entering Freedom League HQ
Fixes some issues that would lead to a crash when entering the Freedom League HQ.
Fix crash from VAG out-of-bounds access
Fixes an issue where all stereo VAG commands would write to an out-of-bounds array element and corrupt the whole VAG queue list. This was the cause of various sound-related crashes, such as when using Light Jak Freeze.
Add support for brightness and contrast modifiers
Adds renderer support for modifying brightness and contrast, a new feature added to the graphics options in Jak 3.
Fix subtitle speaker colors
Fixes copy/paste from Jak 2 for the text color of speakers in subtitles.
Decouple wasteland storm particles and wind pushback effect from framerate
Fixes an issue where the sandstorm in the wasteland had overly-aggressive particle effects and pushback effects on Jak. Players may have noticed this issue in the PS3 port, as it occurs because the newer console could maintain a better framerate than the PS2.
Misc high FPS fixes
Various fixes to support framerates higher than 60 FPS:
prebotsword attack and projectile speed- Fast first person camera turning speed
- Slow turret camera turning speed
flyingsawmovement and rotation speed- Green eco drain rate on jetboard during
forest-kill-plantsmission skeetrotation speedmaker-grenadetumble speed- Jetboard spin speed
- Texscroll speed
- Slow walk anim after landing from a jump
hud-skillrotation speedgun-dark-shotprojectile speedtarget-floatup/down speed- Prevents instantly killing Jak when exiting some vehicles
Collision Renderer support for new pat-events and pat-materials
Adds support to the OpenGOAL collision renderer for new pat-events and pat-materials added in Jak 3:

Fix cutscene blackout issues
Fixes an edge case where cutscenes with a non-zero artist-base would start with an awkward amount of blackout frames, depending on framerate. This is another issue that can be seen on PS3 but not PS2 because of the framerate the consoles can maintain - for example during the Metal Head Tower tower-destroy-res scene.
Fix menu scissoring for Mission/Scene Select
Fixes the scissoring in the pause menu on the Mission Select and Scene Select screens.
Add OpenGOAL-exclusive cheats city-peace and desert-peace
Adds support for the city-peace cheat similar to what we added in Jak 2, which disables all enemies throughout Haven City. Also adds a new desert-peace cheat which disables the sandstorm effects and all maruaders in the Wasteland.
Fix generic2/prim zbuffer issue and progress menu crash
Fixes an issue in how the zbuffer is handled for the generic2 renderer. This was quite noticeable in the Dark Strike and Arc Wielder effects.

Support directional pad controls for Eco Grid (Pac-Man) minigame
Adds a toggle under controller options to allow use of the directional pad for the Eco Grid minigame. Normally this minigame only respects inputs from the left analog stick.
Fix rigid-body physics to not depend on FPS
Fixes a issue where the physics logic for rigid-body systems (e.g. zoomer vehicles) depended on framerate. This was another difference that could be observed between PS3 and PS2.
For example, the "Superfasthoverbikeglitch" on OpenGOAL (pre-fix) vs PCSX2:
Fix War Factory hemi-gradient-flames texture and ocean culling
Fixes a small typo relating to the hemi-gradient-flames texture used in the Hellcat bomb during the War Factory mission. Also fixes an issue with ocean culling during this mission, caused by the rotating background effect.
Fix prebot sword texture
Fixes a small issue with the Precursor Robot's sword trail texture not rendering.
Fix audio language setting
Fixes an issue where changing language didn't actually change the audio used for play hints and cutscenes.
Fix same-attack-invulnerable-timeout clock drift bug
Fixes an original game bug that could lead to increasingly long cooldowns between taking damage from the same source, such as a flaming torch. This is also fixed for Jak 2.
The game tracks when the player last took damage using one clock, but compares this to a different clock when deciding if the player should take damage if it's from the same source. Only one of these clocks is affected by slow-down effects, such as during mission fails, Dark Jak special attacks, or Light Jak freeze. After one or more of these slow-down effects, these two clocks can end up drifting significantly apart, and throw off the intended cooldown logic.
Fix *traffic-height-map* array out-of-bounds bug
Fixes an original game bug, where extreme h-vehicle coordinates could lead to a crash by accessing out-of-bounds data in the *traffic-height-map*. This is also fixed for Jak 2.
Jak 2
Fix WakeupThread Overlord/IOP issue
Fixes an issue where StreamListThread should have been deadlocked waiting for the uninitialized LfoList semaphore, but instead it would get woken up by WakeupThread erroneously.
Fix HUD alignment for various aspect ratios
Fixes alignment of HUD elements to correctly scale with widescreen aspect ratios.
Misc high FPS fixes
Various fixes to support framerates higher than 60 FPS:
hud-skillrotation speedgun-dark-shotprojectile speedtarget-floatup/down speed- Prevents instantly killing Jak when exiting some vehicles
Jak 1
Subtitle fixes
Fixes a few typos in Uncle, Farmer, and Geologist subtitles.
Misc high FPS fixes
Various fixes to support framerates higher than 60 FPS:
- Water ripple effect
balance-platspeeds- Speed of slider options in pause menu
Fix opening logo letterboxing for widescreen aspect ratios
Fixes letterboxing/blackout during the opening "Jak and Daxter" logo for widescreen aspect ratios. Previously you would start to see Sandover Village on the sides of the screen early, before the logo burst animation happened.
Fix custom levels tpages
Fixes an issue where the tpage list for custom levels was ignored, which could cause texture remapping to behave incorrectly.
Fix aspect ratio selection issues
Fixes an issue where aspect ratio was not properly updated from the progress menu upon selection.
