-
Notifications
You must be signed in to change notification settings - Fork 174
Add 'cpad-dpad-pressed?' function #107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
The-Stellar
wants to merge
105
commits into
OpenGOAL-Mods:main
Choose a base branch
from
The-Stellar:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* init * just strings * names gone * update all the gd to new format * Fix jsonc * boots * works but crash * fix game-info definition * Add back asserts * Add warpgate stuff, title screen for mort, fix some missing text, and untested mp3 functions, and powercell skips * Some cleanup and basic chicken line logic * fix warpgate whoops * Move warp gate, add factory cross fix buzzer count * Add names to portal and all warps, also add progress screens and near-portal * push test * Add warpgate to all levels * title doesnt load lool * declare * Fix all bugs, not sure if game-save stuff is needed * fix portal progress menu * add max chicken count * Orange demon * Rename to demon-chick make it walk at defined point Very early implementation is live, need to set (set! *chicks-follow?* #t) and it walks to (define *GOTOSPOT* (new 'static 'vector :x (meters 32.0085) :y (meters 300.1105) :z (meters 153.0149) :w 1.0)) Currenlty only one demon is supported * scale down to 0.5 * Normal speed * try to make chicks work * Cleanup * perfect * Strip unused orange demon code * Add multiple chicken demons and basic flocking logic needs fixes * demon chicken automatic, doesnt work for first one since index 0 is #f * add chicken to portal * Cleanup * fix rogue init condition, when entering portal * Rework portals * add particles back, hack warpgate position on warp to fix crashes * Some cleanup, let chicks move up/down portal seems stable * Add bool to draw move mort text * temporarily change order of levels * Fix hint control crashes, hopefully dont break anything else * Alot of cleanup, use constants get rid of i + 1 * Speed up chickens * Update demon-chicken.gc * warpgate everything * whoops * Add chicks to holly-wood * Add monument chicks * add chicks to cath and monument, mess up monument.blend * add ice-canyon and coins chicks * add villa cuba * add chicks to ice slide * add space bridge island and garden chicks * Add chick counts for all levels * remove levels that have placeholder chicks from rotation * missing chick move pyramid back * final patch * fix * fiux * force all actors * Fix total chicks in island, add orbs to holly wood * add space bridge orbs ~hsblue * edit blend file for holly wood * fix double ambient merge * update holly wood * add in game music * Make sound scale with music volume * remove 12 powercells * remove jak music * add orbs, remove jak music, make custom music pause in pause menu * update counts and add EVERYTHING for the first 6 levels * fix cathedral gold star * Update cut-release.yaml * cleanup cathederal * Add orbs for ice-canyon * chagne warpgate name * Add curved coins to island * Add curve ice slide orbs * add garden curves * rpc + more curves * fart legacy * json block world RPC crates in blender * add death plane to block world + portal support * add skybox * Fix slow chicks Restore their speed when we add them to a slot * Scale SFX with sfx setting * Play sound when you have all chicks following you fix merc bug hide chicks after warp * add portal rot and finish block-world * Finalize holly wood (OpenGOAL-Mods#11) * Add python script for custom levels (OpenGOAL-Mods#25) * Finalize holly wood * finalize factory-cross --------- Co-authored-by: ZedB0T <89345505+Zedb0T@users.noreply.github.com> * Skybox + warp gate monument * Cleanup Cahederal * Do pyramid catherderal ice slide * update ice-slide * add things to all levels * Egg crates (OpenGOAL-Mods#12) * egg crates * add egg crates and flutflut chicken * Add eggs to all levels * cleanup flutflutegg and shiny chicken * Egg crates (OpenGOAL-Mods#13) * egg crates * add egg crates and flutflut chicken * Add eggs to all levels * cleanup flutflutegg and shiny chicken * fix retail mode * update blends and jsonc * add coins orbs (OpenGOAL-Mods#15) * added orbs in garden (OpenGOAL-Mods#14) hsblue * Add coins coins (OpenGOAL-Mods#17) * add coins orbs * add chicks * cold pipe orbs (OpenGOAL-Mods#16) h * chemical factory every item (OpenGOAL-Mods#18) that right * chicks with chicks blend * run scripts * Fix crash if level doesnt have basebutton * add IL menu * Warpgate text (OpenGOAL-Mods#19) * Add new eco and warpgate text Doesnt really do anything except for not crash for now but thats still kinda cool * Custom eco and portal cleanup * add cells to monument * Add chicken names * add RPC (OpenGOAL-Mods#20) * New audio system * Fix warpgates * Hack menus to show proper orb counts (OpenGOAL-Mods#21) * Move Mort title add process for sounds and music add title (OpenGOAL-Mods#22) * Make chicks move better, increment on warp main process is seperate now (OpenGOAL-Mods#23) * Move everything to processes (OpenGOAL-Mods#24) * Move everything to processes (OpenGOAL-Mods#25) * Move everything to processes * Fix coins crash * Start testing Portal fixes * Fix Cathederal typo * Add runs-on-jak-spawn to warp gate spawns * Add josh sound and make portal menu wheel better? * Clean warpgates When you move left/right factory cross goes away * add back ending * Add Ice eco (OpenGOAL-Mods#26) * Add Ice eco (OpenGOAL-Mods#27) * add cheat mode chicken + 1 for soft lock fix ice slide and villa cube models * Fix orb counts, add softlock prevention split warpgate * remove village1 load * fix eyeball bug * cleanup gd files * more gd cleanup * add new intro method * add eco chicken rename eco gravity (OpenGOAL-Mods#28) * Add a way to block cutscene skips * Hid the custom counts while in title * finalize main music * BIG CHANGE SOFTLOCK STUFF Maybe makes crashing safe? * reset chicks when you saved all in level This only works because when you warp backwards there arent any cells to pickup, If there was a branching path in the levels or level skips this softlock fix WOULD BREAK. Only allow levels in linear order * Add stuff to glass towers * add most continue points * Fix chicks and coins * remove reset actors hack * add beta introduction audio and remove the ability to pause in certain cutscenes * uncomment some levels * fix warp gate pos for villa cube fix checkpoint for ice slide add objects to chemical factory remove powercell sound * add support for custom eco in blender * Script and bubble * level changes and orb count * chemical factory too * Bug fixes * Default eco to 2, default chick eco to 1 * add chemical * softlock fix * Update warpgate.gc * fix holly wood floor * Fix warpgate softlock, fix orb count, add first title sneak, add custom cutscene flag * texture replacement fart menu * add chem fac audio, and cutscene stuff * clang gang (OpenGOAL-Mods#29) * stop windy sound * add test credits * update mod-release * add sounds * add dll back * Add fixes for softlocks? * scope * add chemical factory check fix double audio and softlock stuff * add another softlock prevention * update base-id numbers * Maybe fix chicken dupe * add mort-text display add chicks to cell coutner * fix chem * Finalize audio Move prints to debug mode only Skip final cutscene and remove skips in ones with custom audio * add fart legacy text * block pausing here * add flut icon * fix ~33L * enable RPC * merge test 2 * skel effect hack --------- Co-authored-by: hsblueAU <108990031+hsblueAU@users.noreply.github.com> Co-authored-by: Teemu Laine <101790724+TeemuLaine@users.noreply.github.com> Co-authored-by: Teemu Laine <laineteemu01@gmail.com> Co-authored-by: Bintendo42 <simplebin64@gmail.com> Co-authored-by: Matt Dallmeyer <mattdallmeyer@gmail.com>
This reverts commit ce53e1d.
* Add new audio system to mod base * Fix scope order add some comments
* improve `send-event` for jak 2 (#2828) Fixes #2825 * [jak2] Work-in-progress texture animations (#2819) * [jak2] speed up the sky texture animation (#2829) This saved about 1.6 ms per frame in the city for me (~1.3 saved from not doing sky twice, 0.3 saved in format lookup tables). The big texture animator is about 1.0 ms.  * Added bound check for blend vertex count (#2830) Co-authored-by: animalstyletaco <animalstyletaco95@gmail.com> * Get the project compiling on Apple Silicon macOS natively (arm64) (#2827) I havn't tested it yet, but I can almost guarantee that atleast `goalc` will not work in the slightest! But the project is atleast fully compiling. My hope is to start translating some AVX to NEON next / get `goalc` working...eventually. * [jak2] More texture animations (#2831) Added framework to do texture animations entirely in C++. Currently only works on relatively simple ones, and doesn't handle updating all parameters - only the speeds. Connected texture animations to merc and tfrag for skull gems, dark bomb, and scrolling conveyors. Cleaned up Tfragment/Tfrag3, which used to be two classes. This was one of the first C++ renderers, so it had a weird design. * CI: Periodic Controller Database Update (#2832) Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com> * [jak2] Fix overlord related crash (#2834) This fixes the crash reported in open-goal/jak-project#2833 There was a memory bug here for a long time where our array of `VagCmd` in `iso_queue.cpp` was too small. This caused GetVagCommand to return bogus pointers, and sound code would write over other parts of memory. * [jak2] More progress on texture animations (#2835) - Add security wall animation - Add waterfall animations - Add lava animations - Update layer values from the game to fix the security wall - Remove leftover debug in `level.gc` that would break level-specific animations on the second time you visited the level - Optionally load animated slot textures to the pool so generic can use them (fixes skull gems in UI) * [jak2] Add static textures for the progress menu (#2838) The progress menu loads its icon textures from a .STR file that we were previously ignoring. This change: - updates the decompiler so it can process a .STR file containing a texture - adds a feature to force an entire page to always be loaded in the PC renderer by putting all textures in the GAME.FR3 file. - regenerates the texture offset map file for jak 2 with these new textures For now, I've just put the icon textures in GAME.FR3. The downside is that these will always stay on the GPU, using up VRAM even when they aren't needed. But the entire GAME.FR3 file is under 3 MB so I think it's ok.  * game: add a clear text label for how to hide the top bar (#2845) * [jak2] Fix dark jak anim and low res skull gems (#2842) Fixes skull gems using a low resolution texture. Fixes issue where jak in cutscenes is dark after watching oracle-level-1 (and likely other bugs with texture animations getting stuck) --------- Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com> * [jak2] make progress menu work for widescreen + various other fixes (#2843) Lots of manual fixes to make the text and other UI elements in the progress fit within the small 4x3 view.         I've also changed the select start menus to not have that giant space in each option. It's behind a toggle in the code right now.  Additionally: - fixed city billboard particles - fix stadium crash from original game - fix an accidental regression * Fix small buzz motor not vibrating correctly (#2846) * fix stad-samos regression from refactor (#2796) + change imgui toggle to left-alt and make it customizable (#2848) * [jak2] More texture animations, and fixes (#2847) * Fix possible crash when loading files (#2850) There was a single static path buffer being shared between multiple file i/o threads. So sometimes you would end up using the wrong path for the file, and getting size/data for the wrong file. I think the original reason to have this buffer was just me being lazy when we changed how project paths works a long time ago. It was a bad idea in the first place. * [jak1] Fix ice walking animation bug and crash (#2851) This should fix a crash and animation bug in snowy. The way to trigger the bug: - go on ice - move forward slowly - stop moving forward. Reach zero speed when the frame number isn't between 30 and 35 of the ice walking animation - Due to this bug, the animation gets stuck at frame 60 - Take damage (due to normal lurker or ice lurker) - Sidekick eye animation crashes because a frame number is NaN. * [jak2] graphic options menu proof of concept (#2849)   (The "Custom" option does not do anything right now.) * `force-actors?` -> `ps2-actor-vis?` (#2852) supersedes #2839 * [jak2] workaround for missing yakow textures (#2854) The yakow texture is actually missing from the real game too. This adds a special case in the extractor to replace it with a similar-ish fur texture:  * [jak2] fix transparent shrub blending (#2853)  Should probably wait until the release just in case. But I'm 99% sure this line was just a mistake in the original implementation. * [jak2] Fix ocean culling when using camera-other (#2858) When drawing the spinning palace, there's a terrible hack that lets some stuff be drawn with different camera matrices. The ocean is drawn with camera-other (which spins), but was being culled with camera (doesn't spin). This changes ocean to use the right camera matrix. Note that the ocean is special when it comes to camera-other - it always uses camera-other if there is one. Other uses are set per-level and should already be handled correctly. * [jak2] fix compile error (#2862) not sure how this passed tests.... * [jak2] use current buffer for blit-displays (#2855) This changes how `BlitDisplays.cpp` works so it looks at the current render buffer, rather than the back buffer. This approach is a bit faster because we avoid copying the back buffer on every single frame. It also removes the black frames when the transition starts/stops. The remaining issues are: - there's still a single frame of weirdness with the sprite glow renderer. - when changing resolutions, it doesn't work super well. * [jak2] disable envmap when it should be (#2864) In jak 2, there's an option to disable envmap. It's used on krew holograms, hiphog trophies, and baron bosses in palace/tomb. * [gfx] Clean up background renderer matrices, fix "hole covers" (#2866) The way we got/stored background matrices is a bit weird and full of leftovers from the first attempts at porting renderers. This doesn't work well with the Jak 2 "other camera" system where some stuff is rendered with a different camera matrix. This cleans most of it up. The exception is that the collide mesh renderer and the additional sprite culling I added still need to peek at some cached camera matrices. This fixes the problem where etie uses the wrong matrices for "other camera" levels. Now the "hole covers" go in the holes in the background of the throne room.  * ci: strip binaries in their respective runners (#2868) * New Crowdin updates (#2869) * fix texture anim shader on macOS (#2870) * fix collision renderer filters not working (#2872) fixes #2867 * [goalc] Sign extend objects when loading them (#2863) Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com> * Anim Tester X - Quality of Life improvements (#2682) Co-authored-by: Tyler Wilding <xTVaser@users.noreply.github.com> Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com> * Basic hash table and jump table (#1837) Co-authored-by: Tyler Wilding <xtvaser@gmail.com> * github: update issue templates, move general feature requests to discussions preferably (#2879) * jak1: start a new game correctly when speedrunner mode is enabled (#2873) * formatter: support formatting bindings, for example in a `let` (#2883) * [jak2] get new cheats working (#2885) * [jak2] progress: make custom aspect ratio menu (#2888) New menu for setting a custom aspect ratio.     * CI: Periodic Controller Database Update (#2889) Updating Controller Database Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com> * [jak2] prepare `scf-get-territory` usage (#2890) * log: rotate log files with timestamps and add flag to disable ANSI colors (#2886) Rotates the log files with a timestamp instead of copying all files and incrementing an integer. Increases the amount of info you have when looking at user's log files (ie. when looking at all the files, the file creation dates are accurate).  Also simplifies the API for setting the log file, and `gk` logs are now game specific with `jak1` or `jak2`. Which should be useful going forward. Lastly, added a flag to all CLIs to disable ansi colors for people that want to do so. Though at the same time, there is finally a workaround in jenkins to fix ANSI colors in the truncated log view -- so I'm not sure why anyone would want to get rid of the color information. You can even setup text editors to display the color info making log parsing much easier. Fixes #1917 --------- Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com> * custom levels: fix crash when more than one ambient is present (#2891) * log: don't recursively iterate when rotating log files (#2892) * cleanup our cmake and build warnings (#2876) * cmake: fix regression for building SDL statically (#2894) * input: fix double press issue when assigning a bind (#2895) * Update test-zone.jsonc to use lowercase for nickname (#2896) * [jak1] Fix texture-related custom level crash (#2898) Force FR3 file name for custom levels to be uppercase, fixes the crash described in open-goal/jak-project#2534 and open-goal/jak-project#2897 * [shrub] Fix bug with gs-prim settings (#2899) Fix the bug described in open-goal/jak-project#2882 where some shrubs are transparent when they shouldn't be. The problem was that we never carefully looked at the settings in `gs-prim`, which has a bit to enable/disable alpha blending entirely. Now it should be correct for both jak 1 and jak 2. To see this change, you'll need to re-extract. Also adds a setting to disable saving texture .pngs, to speed up decompilation. I left it on for jak 1 (to avoid confusion for texture swapping(, but off for jak 2 for now. * [glow] fix clipping bug (#2902) Now you can be blinded by the sun:  * log: ensure the `log/` directory exists (#2904) * 989snd: implement SetVolPan for midi sounds (#2905) Fixes #2820 * [jak 2] bigmap, fix texture filtering on map icons (#2906)   and the minimap has filtering now:  It's mostly implemented in C++ using the texture animator. * [jak2] fix bad blerc on objects with warp (#2907) fixes the weird mirror offset stuff  * [jak2] music player cheat menu (#2900) * [jak2] small minor fixes (#2909) - fix deci2 hang when closing the game in retail mode. - change bigmap to always filter because the pixels look really ugly. - don't start the game in fullscreen by default if we're debugging. * [jak2] fix bug in direct in texture handler (#2910) * handle texture of 0 in extract_tie (#2911) Fixes texture difference shown in issue open-goal/jak-project#2908 * [jak2] fix glow sprite flickering (#2912) oops, forgot to set `glDepthMask`, so sometimes it was enabled, and the drawing for the clear was writing into the depth buffer. Fixes open-goal/jak-project#2735 * Fix alpha test > vs >= (minimap arrow fix) (#2913) Fixes open-goal/jak-project#2814 Previously we didn't handle `GREATER` vs `GEQUAL` correctly. I just left this as a TODO by accident.  * [jak2] Support Japanese Subtitles (#2914)  * [jak2] Support `draw-raw-image` (#2915)   * [jak2] widescreen fix for splash/jp subtitles (#2916) * [jak2] fix a few silly texture bugs (#2917) Fix an issue where the commit sha would not use the right blending mode if `draw-raw-image` is running at the same time. Fix an issue where japanese subtitles would accidentally overwrite other textures, leading to random textures missing. (in particular, glows would disappear after watching a cutscene with the subtitles on) * jak1: Consolidate art-elts into a single file as is done in jak 2 (#2887) Fixes #2167 Reduces test flakiness if ran on multiple threads and gets rid of a few hundred files from the source tree I believe this also makes #1434 irrelevant and it can be closed. --------- Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com> * [jak 2] Clouds V2, Clean up texture animator (#2921) Some general improvements for the texture animator: - Clouds are special cased, saving about 1 ms per frame - Adjusting the amount of clouds now actually works. - Fixed an issue with the brightness of clouds, and the way that they fade out around the edges. * [jak2] Toxic Slime texture animations (#2922) https://github.com/open-goal/jak-project/assets/48171810/85e68808-09bf-4f74-a16a-6310e2b81cd3 * [jak2] Fix depth testing issues on glow sprites (#2923) https://github.com/open-goal/jak-project/assets/48171810/0d3064f9-3f27-4be1-b6a4-55fdfb681313 Fixes open-goal/jak-project#2328 * [jak2] a few more subtitles + L1/R1 to move *much* faster through debug menu (#2925) * [jak2] fill in a lot of flags for decomp + mouse macros (#2927) Also changed the default type of enums to `int64` (same as `int`). * [jak2] minimap improvements (#2929) Smoothens minimap icon motion and fixes the target icon being squished depending on the angle it's facing. * g/j1: add support for missing polish alphabet characters (#2931) * ckernel: fix file paths for art groups and tpages (#2932) * custom levels: add support for packing models and textures into the FR3 file (#2936) * [jak2] fix bugs with incorrect music playing sometimes (#2938) - fixes flava and mode not being correct after a new music starts playback by setting them every frame (there is at most 1 frame where it's wrong). - fixes city pursuit theme not playing if the city alarm was triggered while the music wasn't playing yet. * various subtitle editor fixes (#2941) - fix speaker names and time frames being uneditable in Jak 1 - added toggle to auto-selected a newly created scene as current - changed the subtitle summary format slightly. - current scene's name now appears in the UI * ci: macOS build with big sur to increase compatibility (#2944) * New Crowdin updates (#2945) * Placeholder strings for future Jak 2 features + minor subtitle editor fixes (#2943) * [extractor] fix territory being set to wrong value (#2946) Also fixes a minor issue where the JP sound bank wouldn't work (Jak 1). Fixes #2793 * [sprite3] fix max sprite number being wrong (#2949) I don't think this fixes anything, but the number was wrong so might as well fix it. * [jak2] fix bug in `outro-port` script (#2952) * [jak2] higher resolution cloud textures (#2951) Adds a new "hires" sky texture animation that makes the sky use 512x512 textures instead of 128x128. The clouds have higher detail, are slightly more noisy, and are considerably less blocky. There is also a less noticeable "dot crawl" effect.   * [sprite] Adjust allocation randomization (#2953) This tries to match the original behavior of the sprite allocation "randomness", which should reduce the number of very empty sprite blocks sent to C++. * Make cloud_lookup return float (#2958) * rewrite `sp-get-particle` and fix some jak 2 region decomp (#2955) * goalc: use iso_data `build_info` to inform custom level build process (#2959) * [gltf export] Export TIE wind models (#2960) Export models with "wind". The levels with wind models are: firecanyon (9), beach (5), village1 (7), lavatube (2). Sometimes a single object is made up of multiple models - for example the tree in sandover is actually several meshes. * CI: Periodic Controller Database Update (#2926) Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com> * entity-debug: Show path and volume data. (#2942) * Update subtitle_en-US.json (#2763) Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com> Co-authored-by: Tyler Wilding <xtvaser@gmail.com> * g/j2: Some more work on the SQL editor - dump and seed `light` data (#2954) * decomp: handle dumping jak 2 VAG file assets (#2969) There are potentially still some minor issues with the resulting files. Some of them appear to have minor artifacts that playing through the actual game do not -- but this is a much better starting point for someone to iterate from if they are interested in improving things. * jak2: add frame rate option to graphics menu (#2962) This PR adds a frame rate option to the graphics menu for some of the most common refresh rates. Jak 2 has much better support for variable frame rates than Jak 1 out of the box, but there are still some edge cases, most prominently the fact that sprites are still limited to the 300 tick system, which is most noticeable on glow sprites. For this, I abused the glow boost debug setting to scale the glow based on the frame rate. While testing, I noticed two other cases that I have also patched, there's likely to be many more that are yet to be found, but aside from that, the game is playable as normal. https://github.com/open-goal/jak-project/assets/6624576/ad4db24f-cd27-4237-a155-0db7008160f3 * [jak2] Fix hover-formation decomp (#2971) I think this is very likely to fix open-goal/jak-project#2970 We had somebody report a stacktrace from the debugger, and it was immediately after calling `gen-perms`. I found that `gen-perms` writes past the end of a stack array during this mission, and at the same time as the reported freezes. I was unable to recreate the original freeze after making this change. * [jak1] Fix duplicated tie extract (#2972) Fix a bug where meshes are extracted too many times. * g/j2: Start adding game options to jak 2's menu (#2968) * Save entities to JSON, and make custom level building a little faster (#2973) This will create a folder like `decompiler_out/jak1/entities` and save a JSON file per level with all the actors. Also, it should hopefully make custom level building a little faster. * jak2: macro detection for `launch-particles` and `seconds-per-frame`, add `og:preserve-this` comments for manual patches (#2974) This PR adds detection of the `launch-particles` and `seconds-per-frame` macros to the decompiler, removing a lot of bloat and hiding many process register uses. I also added `og:preserve-this` comments to as many manual patches and comments as I could, which will soon be used in conjunction with CI to hopefully catch any regressions in future big decomp update PRs. I have some concerns about the `launch-particles` macro (more details in `sparticle-launcher.gc`) , but thus far, I have not seen anything break yet. --------- Co-authored-by: water <awaterford111445@gmail.com> * g/j2: revert signature changes to `cam-setting-data`, fix camera regressions (#2975) Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com> * [jak 2] Export the collision mesh (#2977)  * g/j1: resolve memory leak around display/input dynamic strings from C++ (#2979) * CI: Periodic Controller Database Update (#2980) Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com> * Polish translation for Jak 1 (#2961) * CI: check for removed goal_src code that we want or need to perserve (#2987) * [jak2] placeholder subtitle files (#2986) fixes #2985 * [decompiler] decomp jak2 `static-attack-info` (#2992) Fixes #2993 * [jak2] fix `task-arrow-spawn` decomp (#2995) * gsrc: add more `og:preserve-this` comments (#2996) * g/j2: Implement speedrunner mode in jak 2 (#2976) * Update game_base_text_pl-PL.json (#2997) * jak2: fix `metalkor` regression (#2999) * goalc: add `macro-expand` form (#3000) * ci: separate lint checks into a required and optional workflow (#3002) * [jak2] ckernel: implement `loado` and `load_and_link` (#3005) * decomp: fix some `enemy` decomp (#3008) * [opengoal] make `none` a child of `object` (#3001) Previously, `object` and `none` were both top-level types. This made decompilation rather messy as they have no LCA and resulted in a lot of variables coming out as type `none` which is very very wrong and additionally there were plenty of casts to `object`. This changes it so `none` becomes a child of `object` (it is still represented by `NullType` which remains unusable in compilation). This change makes `object` the sole top-level type, and the type that can represent *any* GOAL object. I believe this matches the original GOAL built-in type structure. A function that has a return type of `object` can now return an integer or a `none` at the same time. However, keep in mind that the return value of `(none)` is still undefined, just as before. This also makes a cast to `object` meaningless in 90% of the situations it showed up in (as every single thing is already an `object`) and the decompiler will no longer emit them. Casts to `none` are also reduced. Yay! Additionally, state handlers also don't get the final `(none)` printed out anymore. The return type of a state handler is completely meaningless outside the event handler (which is return type `object` anyway) so there are no limitations on what the last form needs to be. I did this instead of making them return `object` to trick the decompiler into not trying to output a variable to be used as a return value (internally, in the decompiler they still have return type `none`, but they have `object` elsewhere). Fixes #1703 Fixes #830 Fixes #928 * [jak2] fully implement collide mesh renderer (#3010) Fixes #2983 * CI: Periodic Controller Database Update (#3006) Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com> * improve decomp of state handlers and art groups (#3014) - state handlers that are not inlined lambdas have smarter type checking, getting rid of 99.9% of the casts emitted (they were not useful) - art groups were not being properly linked to their "master" groups. - `max` in `ja` in Jak 2 was not being detected. Another huge PR... * g/j2: speed up level-select menu scrolling (#3013) * [jak2] also allow analog for play select fast scroll (#3015) * g/j2: Fill out `game options` menu (#3003) * scripts: remove unused `code_retention` script code (#3019) * New Crowdin updates (#3025) * fix `(font-flags left)` name + fix `right` flag not reflecting in debug text box (#3020) Fixes #3016 Fixes #3017 * CI: Periodic Controller Database Update (#3028) Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com> * [compiler] fix `compile_condition` not attempting macro expansion (#3030) Ancient bug! Resulted in a 1%-2% decrease in code object file size (and more importantly the asm is more readable). Fixes #3029 * decompiler: `obj` -> `this`, `set-time!` and `time-elapsed?` macros (#3026) This renames the method object in `defmethod`s to `this` and adds detection for the `set-time!` and `time-elapsed?` macros. Definitely my biggest PR yet... * [decompiler] do not use `time-elapsed?` on unsigned comps (#3031) * misc low hanging fruit fixes (#3034) Fixes #2235 Fixes #2236 Fixes #2963 Fixes #3027 * Jak 2 controller LED implementation (#3035) Adds controller LED features to Jak 2: - progressive flickering denoting health - copies tomb simon says puzzle colors - unique colors for each gun - orange color for being indax - yellow color for being in mech - purple color for being darkjak - blue color for being in board - red flash when wanted. May add more features later? Also did some minor clean-up on some types. * [jak2] un-mips2c `draw-string` (#3040) It's not an asm function. * Remove dupe line in discord-rpc .clang-format (#3039) * [decompiler] Handle `find-parent-method` (#3018) This change adds a few new features: - Decompiler automatically knows the type of `find-parent-method` use in jak 1 and jak2 when used in a method or virtual state handler. - Decompiler inserts a call to `call-parent-method` or `find-parent-state` - Removed most casts related to these functions There are still a few minor issues around this: - There are still some casts needed when using `post` methods, as `post` is just a `function`, and needs a cast to `(function none)` or similar. It didn't seem easy to change the type of `post`, so I'm not going to worry about it for this PR. It only shows up in like 3 places in jak 2. (and 0 in jak 1) - If "call the handler if it's not #f" logic should probably be another macro. Fixes #805 * [jak2] scalable debug font + fix debug menu widescreen bugs (#3044) also hides empty (no commands) regions from the viewers by default now. * fix draw-string-xy-scaled cropping (#3041) fixes #3038 https://github.com/open-goal/jak-project/assets/2515356/5b7a490f-e1fb-4a12-a3d9-b576a2c1d574 * [jak2] fully implement `*user*` (#3046) Fixes #1918 * Bump actions/checkout from 3 to 4 (#3047) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * g/j2: don't force auto-save on in jak 2 when starting a speedrun (#3048) * fix eco pickup time bug (#3056) * CI: Periodic Controller Database Update (#3060) Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com> * decompiler: better automatic detection of art groups and `joint-node-index` macro detection (#3061) * [jak2] Set up extractor (#3042) This sets up the extractor for jak 2. I was expecting that I'd have to make some more significant changes to the decompiler/compiler path stuff, but this was not the case! The only real change is that you can now provide multiple ISO hashes for an entry in `ISOMetadata`. This is needed for the two different NTSC versions, which have the same configs, serials, and ELF hashes, but slightly different contents. I also didn't add the korean version because I don't have the info for it. --------- Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com> * [goalc] Cleaned up speedups (#3066) Started at 349,880,038 allocations and 42s - Switched to making `Symbol` in GOOS be a "fixed type", just a wrapper around a `const char*` pointing to the string in the symbol table. This is a step toward making a lot of things better, but by itself not a huge improvement. Some things may be worse due to more temp `std::string` allocations, but one day all these can be removed. On linux it saved allocations (347,685,429), and saved a second or two (41 s). - cache `#t` and `#f` in interpreter, better lookup for special forms/builtins (hashtable of pointers instead of strings, vector for the small special form list). Dropped time to 38s. - special-case in quasiquote when splicing is the last thing in a list. Allocation dropped to 340,603,082 - custom hash table for environment lookups (lexical vars). Dropped to 36s and 314,637,194 - less allocation in `read_list` 311,613,616. Time about the same. - `let` and `let*` in Interpreter.cpp 191,988,083, time down to 28s. * [jak2] new glow fix (#3067) Fix a typo in the shader. (fixes open-goal/jak-project#3045, and fixes fadeout when glows move offscreen on the bottom). Also, try a different format for the depth blit, in an attempt to fix this issue open-goal/jak-project#3065. * decompiler: some hacks to allow running decompiler on jak 3 v5 code files, improve `all-types` generation (#2526) Co-authored-by: water <awaterford111445@gmail.com> * [glow] potentially fix bad glow texture (#3071) Might fix #3065 fixes #3070 * [jak2] fix minor original game visual bugs (#3072) Fixes #2994 the underport and consite icons being green (same color as the goal, likely copy-pasta). Fixes the hundredths timer in the race timer actually being a 60ths timer. * github: add issue template for jak 2 (#3073) * jak3: add `goal_src` skeleton (#3069) * [decompiler] Support v5 data file link data (#3076) Fix the implementation of `link_v5` so it works on "data" files for jak 3. * decompiler: fix for v5 art group info dump, update `taskfile` for jak 3 (#3077) * decompiler: allow jak 3 texture and model extraction (#3080) Added some hacks and stubs to allow extracting textures and models. * [jak2] Fix collision renderer extract (#3081) Fixes missing collision geometry reported in open-goal/jak-project#3011 The issue happens when there are 256 polygons. In this case `num-polys` is 0 (it's a u8). There are actual cases where there are 0 polygons, so we have to do a more complicated check to get the real count. I should have done this in the first place, but it seemed to work... * g/j2: Integrate highscores with Speedrun.com/JakSpeedruns.com when speedrunner mode is enabled (#3037) * [jak1] Finnish base game strings (#3058) Finnish translations for the remaining UI texts --------- Co-authored-by: Tyler Wilding <xtvaser@gmail.com> * jak3: add missing files and implement `pexcw` (#3084) Some files were in the `banned_objects` list and were thus excluded from the `all_objs` file. Also implements the `pexcw` instruction which is only used in `hfrag` code. * decompiler: add texture merging feature (#3083) * fix `*jak1-full-game*` being flipped (#3085) * [glb export] Export bones. (#3087)  * custom levels: support for packing textures (#3089) * Fix build failure at llvm-rc on windows due to codepage error on zydis (#3088) This fix is for the following error when building with llvm on windows ``` [build] llvm-rc: Error in VERSIONINFO statement (ID 1): [proc] The command: "C:\Program Files\CMake\bin\cmake.exe" --build C:/.../git/jak-project-test/out/build/Release --parallel 8 exited with code: 1 [build] Non-ASCII 8-bit codepoint (´┐¢) can't be interpreted in the current codepage [build] ninja: build stopped: subcommand failed. ``` It's caused by llvm-rc not handling non 8-bit characters. The same issue is discussed in the curl project here curl/curl#7765 This commit copies the fix from curl, replacing '©' with '(C)'. * jak2: add warning text when changing frame rate for the first time (#3092) * CI: Periodic Controller Database Update (#3091) Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com> * Add label_types file merge for PAL version (#3086) * ci: Workaround CMake/Perl regression in recent windows-2022 images (#3097) * formatter: rewrite and refactor, address more edge-cases, begin documenting my work (#3096) * custom levels: refactor level building code and jak 2 support (#3090) Co-authored-by: water <awaterford111445@gmail.com> * CI: Periodic Controller Database Update (#3101) Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com> * Fix starting continue point for Hub 2/3 category extensions (#3103) * [compiler] asm-only disasm output + fix spacing bug (#3104) * `deftype` and `defmethod` syntax major changes (#3094) Major change to how `deftype` shows up in our code: - the decompiler will no longer emit the `offset-assert`, `method-count-assert`, `size-assert` and `flag-assert` parameters. There are extremely few cases where having this in the decompiled code is helpful, as the types there come from `all-types` which already has those parameters. This also doesn't break type consistency because: - the asserts aren't compared. - the first step of the test uses `all-types`, which has the asserts, which will throw an error if they're bad. - the decompiler won't emit the `heap-base` parameter unless necessary now. - the decompiler will try its hardest to turn a fixed-offset field into an `overlay-at` field. It falls back to the old offset if all else fails. - `overlay-at` now supports field "dereferencing" to specify the offset that's within a field that's a structure, e.g.: ```lisp (deftype foobar (structure) ((vec vector :inline) (flags int32 :overlay-at (-> vec w)) ) ) ``` in this structure, the offset of `flags` will be 12 because that is the final offset of `vec`'s `w` field within this structure. - **removed ID from all method declarations.** IDs are only ever automatically assigned now. Fixes #3068. - added an `:overlay` parameter to method declarations, in order to declare a new method that goes on top of a previously-defined method. Syntax is `:overlay <method-name>`. Please do not ever use this. - added `state-methods` list parameter. This lets you quickly specify a list of states to be put in the method table. Same syntax as the `states` list parameter. The decompiler will try to put as many states in this as it can without messing with the method ID order. Also changes `defmethod` to make the first type definition (before the arguments) optional. The type can now be inferred from the first argument. Fixes #3093. --------- Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com> * [jak2] simplify fps disclaimer (#3108) * fps selection fixes i missed (#3109) * rename joint node and art element macros (#3111) * New Crowdin updates (#3113) * ci/windows: stop Strawberry perl from changing resulting built artifacts in CI (#3114) * docs: Re-order root README a bit and add new link to new tutorial (#3119) * fix build warnings * remove art groups from default test-zone levels * switch slime lut to a texture * ci: properly statically link on macOS (#3127) * g/jak2: allow `L1 + R1 + Start` to open speedrun menu as well (#3131) * g/jak2: disable speech volume when starting a new speedrun (#3132) * Add fallback text functionality to Jak 2 (#3128) * cleanup * sky build --------- Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com> Co-authored-by: water111 <48171810+water111@users.noreply.github.com> Co-authored-by: animalstyletaco <mcc-108@hotmail.com> Co-authored-by: animalstyletaco <animalstyletaco95@gmail.com> Co-authored-by: Tyler Wilding <xTVaser@users.noreply.github.com> Co-authored-by: OpenGOAL Bot <99294829+OpenGOALBot@users.noreply.github.com> Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com> Co-authored-by: Luminar Light <18116946+LuminarLight@users.noreply.github.com> Co-authored-by: Brent Hickey <brent.hickey@icloud.com> Co-authored-by: Tyler Wilding <xtvaser@gmail.com> Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com> Co-authored-by: Ziemas <ziemas@ziemas.se> Co-authored-by: ZedB0T <89345505+Zedb0T@users.noreply.github.com> Co-authored-by: atylmo <48929878+atylmo@users.noreply.github.com> Co-authored-by: water <awaterford111445@gmail.com> Co-authored-by: rafalekkB <144032866+rafalekkB@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Aloqas <102683375+Aloqas@users.noreply.github.com> Co-authored-by: jabermony <748988+jabermony@users.noreply.github.com>
This reverts commit 4fd661f.
* CI: Periodic Controller Database Update (#3226) Updating Controller Database Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com> * [Loader] Unload less stuff per frame (#3227) This should avoid the stuttering due to slow unloading on some drivers. I also turned up the amount of stuff we load per frame since nobody has been complaining about stutters there, but there has been a few cases of levels loading in too slowly. (this only changes graphics, not actual GOAL level load times). * [jak2] adjust progress generic item sizes + add scrolling effect (#3231) Makes most of the options larger to reduce the amount of dead space and adds a smooth scrolling effect instead of having "pages".  Button remap menu has no scrolling. Fixes #2984 * [jak2] split language and text language (#3233) * [jak2] Support per-proto shrub visibility (#3228) Fixes the issue reported in open-goal/jak-project#3168, open-goal/jak-project#3189, open-goal/jak-project#3166, open-goal/jak-project#3152, open-goal/jak-project#3224 where a small part of the pipes in the `strip-grenade` mission appear, but shouldn't. * Allow replacing all instances of a texture with one texture (#3234) There are art groups that are present in multiple levels, and that means that also their textures are present in multiple levels. With texture replacement, currently we need to make replacements for all instances if we want it replaced everywhere, but this is not ideal, especially when you make changes to your replacement texture and now you have to put it in each folder again. I added a way to replace all instances of a texture, by letting texture-replacer people put their replacements into an '_all' folder. I set up the logic in such a way that if you have a replacement for the texture in its corresponding folder, it will take priority over a replacement that you placed into the '_all' folder. I personally found this very useful for replacing guard textures. The guards appear in a lot of levels. But ideally you want them to look the same everywhere. And that is why I looked into this and made a PR. Oh and I changed what is printed in the 'Replacing ' part because it was printing the path to our replacement, which didn't look nicely when several textures got replaced by the same replacement from the '_all' folder. So now it will print the original texture's page and name, I think this information is more useful anyway. * jak2: add vehicle hijack lines PC cheat (#3205) Co-authored-by: Tyler Wilding <xtvaser@gmail.com> * [jak2] Fix "Select controller" (#3191) Co-authored-by: Martino Fontana <tinozzo123@gmail.com> * [jak2] Support STICK_DEADZONE (#3239) fixes #3235 * [jak2] add resolutions menu (#3238) * [jak2] fix use-after-free bug in nav enemies (#3240) Fixes #3153 * [jak2] fix health bar color fading (#3241) Fixes #3237 * [jak2] add game territory menu option (#3242) * save & load game territory setting (#3243) * jak2: 90 fps menu option (#3245) Closes #3223 * 989snd: sound bank loading overhaul (#3185) * [jak2] Fix unicode issue with GAME.CGO load (#3254) Fix for open-goal/jak-project#3244 * merge vanilla 12-10 --------- Co-authored-by: OpenGOAL Bot <99294829+OpenGOALBot@users.noreply.github.com> Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com> Co-authored-by: water111 <48171810+water111@users.noreply.github.com> Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com> Co-authored-by: Luminar Light <18116946+LuminarLight@users.noreply.github.com> Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com> Co-authored-by: Tyler Wilding <xtvaser@gmail.com> Co-authored-by: SuperSamus <40663462+SuperSamus@users.noreply.github.com> Co-authored-by: Martino Fontana <tinozzo123@gmail.com> Co-authored-by: Brent Hickey <brent.hickey@icloud.com> Co-authored-by: Ziemas <ziemas@ziemas.se>
…tatus` on save load (OpenGOAL-Mods#53) * use `'base` for volumes * update `task-status` for all tasks upon loading save
* Update board-states.gc * Update target-board.gc
* Allow release pipeline to run on other repos * Install OpenAL Headers when building on linux * Add all required dependencies for linux * Uppercase Filename * Override project path for tests * Use the context, not the env var * Make try_get_project_path_from_path cross platform * Fix path appending * Pass path as string to format * Accept and return string * Don't build for MacOS * Don't test on Windows or Linux * Don't use the bot, use GH token * Use while loop * Don't pass --proj-path The tests don't accept arguments * Fix tree-sitter include path
* 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 />
[](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] <support@github.com>
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 />
[](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] <support@github.com>
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 <OpenGOALBot@users.noreply.github.com>
* 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 <xtvaser@gmail.com>
* 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 <OpenGOALBot@users.noreply.github.com>
* 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:

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:

**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 <xtvaser@gmail.com>
* 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 <2515356+dallmeyer@users.noreply.github.com>
* 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 <xtvaser@gmail.com>
* 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 <OpenGOALBot@users.noreply.github.com>
* 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 <OpenGOALBot@users.noreply.github.com>
* 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.

* 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 <OpenGOALBot@users.noreply.github.com>
* 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.
* merge vanilla
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
Co-authored-by: water111 <48171810+water111@users.noreply.github.com>
Co-authored-by: Ziemas <ziemas@ziemas.se>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com>
Co-authored-by: Tyler Wilding <xTVaser@users.noreply.github.com>
Co-authored-by: OpenGOAL Bot <99294829+OpenGOALBot@users.noreply.github.com>
Co-authored-by: OpenGOALBot <OpenGOALBot@users.noreply.github.com>
Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
Co-authored-by: Brent Hickey <brent.hickey@icloud.com>
Co-authored-by: Luminar Light <18116946+LuminarLight@users.noreply.github.com>
Co-authored-by: ZedB0T <89345505+Zedb0T@users.noreply.github.com>
* init skeleton for orb placer * fix a lot * port to jak 2 * rest of jak2 files * print positions to console * copy back over fine-tuning from orb hunt
* 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 />
[](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] <support@github.com>
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 />
[](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] <support@github.com>
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 <OpenGOALBot@users.noreply.github.com>
* 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 <xtvaser@gmail.com>
* 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 <OpenGOALBot@users.noreply.github.com>
* 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:

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:

**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 <xtvaser@gmail.com>
* 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 <2515356+dallmeyer@users.noreply.github.com>
* 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 <xtvaser@gmail.com>
* 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 <OpenGOALBot@users.noreply.github.com>
* 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 <OpenGOALBot@users.noreply.github.com>
* 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.

* 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 <OpenGOALBot@users.noreply.github.com>
* 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 <OpenGOALBot@users.noreply.github.com>
* 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


- LSP Status fixed
- Type Hierarchy

- Document Color

- Document Symbols

- Completions

---------
Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
* 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 <OpenGOALBot@users.noreply.github.com>
* 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 />
[](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
-…
* Add a has-landed to SR text * Needs cleanup but pushing to test * cleanup * cleanup --------- Co-authored-by: dallmeyer <2515356+dallmeyer@users.noreply.github.com>
Mod-Base merge 05/09/24
* add linear-plat * udpate comment
Checks to see if any of the 4 dpad buttons are being pressed, and if so, returns it. Useful for users looking to make a small on-screen menu using dpad inputs etc.
Base merge 10/09/24
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Checks if a dpad button is being pressed and, if there is one being pressed, returns it.
Also introduces the 'dpad-idx' enum, to be used in conjunction with the new function, for easy reference to dpad inputs when modding.