Fixes https://github.com/open-goal/jak-project/issues/1821 by adding a
special case for `new` method calls where the argument with type
`symbol` is actually an address to uninitialized structure on the stack.
Fixes https://github.com/open-goal/jak-project/issues/1849 (or at least
the cause of the issue Vaser gave in chat, and one random one I found in
`debug-sphere`)
Fixes https://github.com/open-goal/jak-project/issues/1853
Fixes https://github.com/open-goal/jak-project/issues/1857 by moving the
cast into the cond if the body is a single form and the destination type
is a bitfield/enum which is likely to work well. Seems to work on the
examples we could find in jak 1 and jak 2.
Also fixes an issue with casts on the result of `handle->process` (a
common place to use casts)
the output of process->handle is a plain process. Most of the time, you
end up casting this to a more specific. If you add a cast on every use
of the variable, the decompiler will decide to change the type of that
variable to the more specific type, and this breaks the handle cast.
so previously it was impossible to get code like
```
(let* ((s2-0 (the-as swingpole (handle->process (-> self control hack))))
(gp-0 (-> s2-0 dir))
)
```
But now it will work
This shows the current settings needed to help provide information when
verifying a run, also it removes the two calls to show the version in
main.gc and instead does it within the speedrun/auto splitting scope.
- Shows Version
- Shows if Speedrunner mode is on (technically pointless since the text
only displays when it is enabled this more just serves to show that
there IS a speedrunner mode to viewers and stuff (josh) So hopefully it
may cut down on submissions with the mode off)
- Shows if cutscene skips is enabled/disabled.
Tested on 16x9 4x3 the really weird one and borderless/fullscreen
[![IMAGE ALT TEXT
HERE](https://img.youtube.com/vi/qDC-beEg5Es/0.jpg)](https://www.youtube.com/watch?v=qDC-beEg5Es)
Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
Still comes up from the bottom, but its probably the "correct" way to do it?
The other alternative would be killing Jak when the cutscene is skipped instead of `(start 'play (get-continue-by-name *game-info* "citadel-elevator"))` This would make the elevator at the top instantly, however it might mess with hp values and stored levels.
Credit to Barg/dallmeyer
* jak1: put common speedrunning code into it's own file
* jak1: enforce `60` fps while in speedrunning mode
* jak1: when speedrunning, display the version until you get the first powercell
* jak1: add an explicit option for skipping cutscenes
* jak1: extend `game-option` to allow any menu option to be disabled
* tests/jak1: allow whitelisting types to be redefined to satisfy typeconsistency checks
* jak1: add file headers
* jak1: cleanup bool checking
* test: delete the es substitle file
* test: add it back
* jak1: missed one cleanup spot related to bool comparisons
* Update default-menu.gc
* make fog hack slightly less aggressive
* add `reload-text` back but kinda fixed
* more unlocks for non-guaranteed musics
* smarter language save & load
* also save pc settings on autosave
* more special music log cases
* one more
* wip
* getting stuff set up so we can actually run test cases
* better handle block entry stuff
* types2 working on gstring
* comments
* math ref working
* up to first stack stuff
* stack fixes
* bounding box
* math stuff is working
* float fixes
* temp debug for (method 9 profile-array)
* stupid stupid bug
* debugging
* everything is broken
* some amount of type stuff works
* bitfield
* texture bitfields not working
* temp
* types
* more stuff
* type check
* temp
* float related fixes for light and res problems
* revisit broken files, fix bugs
* more types
* vector debug
* bug fixes for decompiler crashes in harder functions
* update goal_src
* game: add auto-splitter structs
* game/jak1: wire up auto-splitter updating to game when in SR mode
* game/jak1: add info to split on picking up white eco
* game/jak1: add another two tasks for fish and finalboss
* game/jak1: autosplitting code entirely in GOAL
* split some subtitles
* allow cutscene skipping in retail and fix softlock
* formatting
* make intro skipping work?
* citadel sagecage skipping
* finalboss sage skipping
* quicker quit to title
* uk text fixes
* fisher cutscene skipping
* fix test
* game: restore windowed mode settings properly
* game: use the game version for saving settings/saves
* game: prevent windowed mode from being auto-centered on initial init
* game: save and restore window coordinates
* lint: formatting
* redo cheat encodings
* fix error
* add no texture cheat
* tiny cleanup + add sidekick stats button
* crappy implementation of big/small head mode
* more correct bone scaling
* redo bone manip code a bit
* jp text fixes
* improved matrix math!
* add big fist cheat, minor type cleanup, add some debug toggles
* move all this mess to a new file
* slightly rework joint scaling function
* add big head npc cheat
* subtitles typo
* WIP mirror mode
* fix mirrored hud sprites
* fix mirror mode sound pan
* add cheats to menu!
* split some subtitles
* hud - show total counters on dpad up, level counters on dpad down
* make views toggle-able, extend hud timeout on toggle, decompilation cleanup
* review feedback round 1
* refactor draw-hud methods
* scaled version of draw-string-xy working, need to adjust hud labels still
* adjust scale/position of hud counters
* remove unnecessary adjustments
* update comments
* dont crash on inline static value array
* [goalc] add support for non-static inline arrays of values
* add a kernel group to jak1
* move and cleanup pc debug code
* random cleanup in `hud-classes`
* pc port fix for gondola spools
* format
* address feedback (wow it was actually just changing 1 line all along...)
* minor decomp cleanup
* ref test
* fix invincibility cheat not working properly and fixed requirement
* typo
* added YMD for japan version of the game
* remove language cheat
* use language checks instead of territory checks in title logo
* forgot this call
* use `game-text-id->string` function here
* small cleanup to pc progress code
* better way to handle "locked" texts
* this is better
* fix potential incompatibilities with merc & ocean renderers
* show cheat requirements in menu + change requirements
* increase size of money starburst
* split some more subtitles
* potentially fix a vsync bug?
* change territory encoding logic
* pass game territory to compiler
* ugh LOL
* reduce max supersampling options in progress menu
* cleanup knuth rng file
* save & load cheats
* allow keyboard controls when cpad is connected
* ignore key presses when imgui is being used
* save settings when quitting game
* Add in-game option to switch fullscreen monitor
* mmm undefined memory :)
* Fix type consistency
* Optimize get_monitor and get_monitor_count since they're called often
* Address PR feedback
* Track fullscreen mode and minimized state to reduce GLFW calls per frame
* subtitles: add german subtitles for new progress menu options
* subtitles: add german subtitles for village1, beach
* missed some strings
* jungle, firecanyon, finalboss cutscenes
* add framrate options to progress menu
* fix samos line
* add citadel cutscenes
* add text version to subtitles
* add text version to text file
* `sidekick` hints
* fix up `mayor-introduction`
* oops
* `training` hints
* `village1` hints
* `lavatube` hints
* `snowy` and `spidercave` hints
* `finalboss` hints
* `firecanyon` hints and cutscenes
* `beach` hints
* update game text file
* finish up subtitles
* add german to progress menu sub setting
* split all bad lines and fix a few small errors
* remove test block
* Fix rat game camera speed > 60fps
* (Mostly) fix swamp balance platforms at high fps
I think there's other physics stuff factoring into this, but these changes should cover what's specific to the platforms.
* forgot notes
* Fix baby spider wiggling too fast on high fps
* Rat game camera now takes into account lag frames
* raise particles cap to 10x
* change a text line
* allow sound bank load during vag
* fix default settings and fps setting
* keep "auto save disabled" option in menu
* cheats menu!
* Update game_text_ja.gs
* fix battle hud crash
* add cheats menu to title
* update settings version
* Update all-types.gc
* disable envmap fade out with hires actor lod setting
* disable merc fadeout if not using ps2 actor lods
* dont update aspect ratio if game size is bad
* set vsync later
* increase memory for generic, sprite and dma.
* fix issues with aspect ratio not saving
* split forcing envmap to a separate toggle
* too slow, dont expose to users yet
* add secrets menu, music player and some more pc settings
* remove todos
* rename string funcs
* replace cases
* add `game-text-id->string` function, refactor player menu generation
* remove process check, `cons` -> `dcons`, `strncpy`
* Enable L2 'boost if cheatmode is on and PC PORT
Nice QOL
* Enable daxter intro CS skip in retail mode on PC_PORT
* Add empty jak1 folder in ISO_DATA
We can revert this if we want but yeah I just think its more convenient by a tiny tiny tiny amount
* Fix typo in comment to be consistant
This probably isn't a typo but like a EU/US thing or something however I changed it just to be consistent with the other 382 instances in the port.
* Add gitignore back to root ISO_Data folder
* Remove early mention of Jak 2
* Update .gitignore
!**/.gitignore