Hat Kid
bc66d416b4
decompiler: call-parent-state-handler
and suspend-for
macros ( #3625 )
...
Build / 🖥️ Windows (push) Has been cancelled
Build / 🐧 Linux (push) Has been cancelled
Build / 🍎 MacOS (push) Has been cancelled
Inform Pages Repo / Generate Documentation (push) Has been cancelled
Lint / 📝 Formatting (push) Has been cancelled
Lint / 📝 Required Checks (push) Has been cancelled
Lint / 📝 Optional Checks (push) Has been cancelled
Also fix `hud-draw-pris2` bucket in Jak 3 to make subtitles work and
foreground HUD envmap.
2024-09-04 19:35:54 +02:00
Hat Kid
58a5440c8a
decomp3: more misc files ( #3466 )
...
Makes a bunch of missions mostly playable, including:
- `arena-training-1`
- `arena-fight-1`
- `wascity-chase`
- `arena-fight-2`
- `arena-fight-3`
- `volcano-darkeco`
- `desert-hover`
- `nest-eggs`
- `temple-climb`
- `temple-oracle`
- `temple-tests`
- `desert-beast-battle`
- `desert-turtle-training`
- `desert-course-race`
- `desert-artifact-race1`
- `wascity-leaper-race`
- `wascity-pre-game`
- `sewer-met-hum`
- `forest-kill-plants`
- `forest-ring-chase`
- `temple-defend`
- `tower-destroy`
- `desert-glide`
---
Files:
- `ripple`
- `waswide-mood`
- `sig-rider`
- `nst-tasks`
- `nst-part`
- `nst-gas`
- `nst-eggs-h`
- `nst-obs`
- `nst-mood`
- `egg-spider`
- `wasdoors-init`
- `wasall-tasks`
- `wvehicle-race`
- `wcar-marauder`
- `wcar-marauder-b`
- `turret-control`
- `was-squad-control`
- `turtle-training`
- `kleever-rider`
- `course-race`
- `artifact-race`
- `desert-hover`
- `desbeast-path-h`
- `des-beast`
- `desertg-obs`
- `desertf-obs`
- `desertd-obs`
- `desert-dust-storm`
- `des-cactus`
- `race-hud`
- `race-info`
- `race-manager`
- `tizard`
- `flyingsaw`
- `hover-training`
- `temple-mood`
- `temple-obs`
- `temple-obs2`
- `temple-part`
- `temple-scenes`
- `templex-mood`
- `templex-obs`
- `templex-part`
- `tomb-baby-spider`
- `target-turret-shot`
- `target-turret`
- `beast-battle-path`
- `des-beast-2`
- `mh-flyer`
- `scorpion-gun`
- `hover-enemy-h`
- `hover-enemy`
- `hover-formation-h`
- `hover-formation`
- `hover-nav-control-h`
- `hover-nav-control`
- `flamer-hover`
- `hover-nav-templea`
- `robo-hover`
- `hover-nav-sewb`
- `hover-nav-sewg`
- `hover-nav-sewj`
- `hover-nav-sewl`
- `hover-nav-sewo`
- `hover-nav-towera`
- `tower-mood`
- `tower-obs`
- `tower-scenes`
- `tower-part`
- `eco-green-collider`
- `forest-bridges`
- `forest-kill-plants`
- `forest-mood`
- `forest-ring-chase`
- `forest-tasks`
- `forest-part`
- `foresta-obs`
- `hover-nav-foresta`
- `mh-plant`
- `dp-bipedal-part`
- `dp-bipedal-shot`
- `dp-bipedal`
- `neo-spawner`
- `for-turret`
- `for-turret-shot`
- `neo-wasp`
- `neo-wasp-part`
- `volcanox-scenes`
- `volcanox-mood`
- `volcano-scenes`
- `volcano-mood`
- `volcano-obs`
- `volcano-obs2`
- `chain-physics`
- `rigid-body-plat`
- `volcano-part`
- `flamer-lava`
- `flitter`
- `spiky-frog`
- `flut-wild`
- `target-indax`
- `target-indax-hang`
- `mantis`
- `volcanox-obs`
- `spyder`
- `wcar-faccar`
- `mhcity-obs2`
- `mhcity-part`
- `mhcity-obs`
- `dm-mine-spider`
- `rapid-gunner`
- `stadium-mood`
- `stadium-scenes`
- `stadiuma-mood`
- `stadiuma-part`
- `kanga-lizard`
- `marauder`
- `arena-scenes`
- `wasstada-mood`
- `wasstada-obs`
- `wasstada-part`
- `wasstadb-obs`
- `wasstadc-obs`
- `dm-flyer`
- `maker-part`
- `maker-projectile`
- `skeet-part`
- `wascity-turret`
- `wasgun-h`
- `wasgun-hud`
- `wasgun-manager`
- `nav-graph-h`
- `traffic-engine-h`
- `waswide-init`
- `cty-borrow-manager-h`
- `cty-borrow-manager`
- `desert-part`
- `height-map-h`
- `height-map`
- `traffic-height-map`
- `vehicle-control`
- `hvehicle-h`
- `hvehicle`
- `hvehicle-effects`
- `hvehicle-physics`
- `hvehicle-util`
- `glider-h`
- `glider-hud`
- `glider-manager`
- `glider-ring`
- `glider-ring-part`
- `h-glider`
- `hanga-init`
- `was-pre-game`
- `was-leaper-race`
- `flut-racer`
- `desert-scenes`
- `desert-lizard-h`
- `desert-lizard-task`
- `desert-lizard`
- `throne-scenes`
- `waspal-mood`
- `waspala-obs`
- `waspala-part`
- `deswalk-obs`
- `deswalk-part`
- `terraformer-drone`
- `terraformer-head`
- `terraformer-part`
- `terraformer-setup`
2024-04-22 18:43:51 +02:00
Hat Kid
dacb704ef6
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`
2024-03-30 10:28:02 -04:00
Ziemas
4afefc5a82
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>
2024-02-17 14:14:23 -05:00
water111
0e31a9c407
[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
2023-09-30 11:06:09 -04:00
ManDude
87be9ebd14
[decompiler] decomp jak2 static-attack-info
( #2992 )
...
Fixes #2993
2023-09-15 19:32:57 +01:00
ManDude
77242bd12e
[jak2] script-eval
macro ( #2315 )
...
turns
```lisp
(eval! (new 'stack 'script-context (process->ppointer self) self (the-as vector #f)) '(teleport))
(eval! (new 'stack 'script-context (process->ppointer self) self (the-as vector #f)) (-> arg0 on-goto))
```
into
```lisp
(script-eval '(teleport))
(script-eval (-> arg0 on-goto))
```
2023-03-11 10:45:16 -05:00
water111
f39b993f79
[decommp] generic-obs
( #2013 )
2022-11-12 17:56:07 -05:00
ManDude
7ce58f709f
process-spawn
+ pretty printer improvements (#1428 )
...
* some jp support to fix some errors in the original game
* music fade toggle
* recognize `process-new` macros!!
* strip casts in this macro
* rename macro
* fix cast typecheck
* update source 1
* detect kernel stack case
* less boilerplate
* `manipy-spawn` special case
* pretty printer improvements
* revert dumb thing from earlier
* use shell detection on `send-event`
* fix some events
* remove unused argument
* detect `static-attack-info` and add `CondNoElse` to shell detect
* better `attack-info` detect
* support `process-spawn` in multi-lets
* detect `rand-float-gen` pt 1
* detect as return value
* detect in `countdown` and `dotimes`
* oops this wasnt working
* fancier `send-event`s
* clang
* update source!!
* fix tests
* fine jeez
* uh okay
* fix some accidental regressions
* fix more regressions
* regression fixes
* fix big bug...
* extra safety!
2022-06-10 02:18:08 +01:00
ManDude
0212aa10c9
[decomp] better handling of animation code and art files ( #1352 )
...
* update refs
* [decompiler] read and process art groups
* finish decompiler art group selection & detect in `ja-group?`
* make art stuff work on offline tests!
* [decompiler] detect `ja-group!` (primitive)
* corrections.
* more
* use new feature on skel groups!
* find `loop!` as well
* fully fledged `ja` macro & decomp + `loop` detect
* fancy fixed point printing!
* update source
* `:num! max` (i knew i should've done this)
* Update jak1_ntsc_black_label.jsonc
* hi imports
* make compiling the game work
* fix `defskelgroup`
* clang
* update refs
* fix chan
* fix seek and finalboss
* fix tests
* delete unused function
* track let rewrite stats
* reorder `rewrite_let`
* Update .gitattributes
* fix bug with `:num! max`
* Update robotboss-part.gc
* Update goal-lib.gc
* document `ja`
* get rid of pc fixes thing
* use std::abs
2022-05-20 02:30:14 +01:00
ManDude
24578b64b9
proper support for hardcoded "time" types ( #1141 )
...
* hardcode `time-frame`things
* Update cam-states_REF.gc
* Update level-info_REF.gc
* update refs 1
* update refs 2
* update refs 3
* update refs 4
* update refs 5
* update detection and casting
* Update FormExpressionAnalysis.cpp
* update refs 6
* update mood decomp
* update refs 7
* update refs 8
* remove temp entity birth code
* update time-frame casts
* fix compiler
* hardcode stuff and fix some types
* fix some bitfield detection being wrong
* bug fixes
* detect seconds on adds with immediate
* update refs 9
* fix casts and rand-vu-int-range bugs (update refs 10)
* update refs 11
* update 12
* update 13
* update 14
* Update game-info_REF.gc
* improve cpad macros detection
* remove unused code
* update refs
* clang
* update source code
* Update cam-states.gc
* `lavatube-energy` finish
* update refs
* fix actor bank stuff
* Update navigate.gc
* reduce entity default stack size
* Update transformq-h.gc
* oops forgot these
* fix code and tests
* fix mood sound stuff
* Update load-dgo.gc
* Update README.md
2022-02-12 12:26:19 -05:00
water111
78cde74d5a
update readme and fix always playing str ( #1139 )
...
* update readme deps
* replace assert
* bump timeout
* fix memory corruption in kernel
* use unknown if level name is invalid
2022-02-08 19:02:47 -05:00
ManDude
d845524c23
[decompiler] detect cpad-hold?
and cpad-pressed?
( #986 )
...
* [decompiler] detect `cpad-hold?` and `cpad-pressed?`
* cleanup cpad macro button lookup
* better
* fix
2021-12-01 19:41:49 -05:00
water111
403bb5f4de
[decomp] game-info ( #779 )
...
* support more process stuff
* more of game info
* add ref file
* progress on save
2021-08-22 20:12:47 -04:00
water111
784cd5debb
[decomp] get started on game info ( #674 )
...
* temp
* menu text
* wip
* recognize handle to process
* more
2021-07-03 16:18:41 -04:00
water111
a572587a0e
add types ( #559 )
2021-06-05 16:58:32 -04:00
water111
3d8013633a
[decompiler] Fix rlet in top level and detect matrix and stack inline construction ( #547 )
...
* top level in rlet
* detect matrix and vector inline 0
* pretty print the symbol map
2021-05-31 18:14:18 -04:00
water111
129ab54fd4
[decompiler] clean up if/when/cond and recognize define-perm ( #472 )
...
* clean up if and when and cond decisions
* recognize define perm
2021-05-12 19:46:17 -04:00
water111
21fefa0aaa
[decompiler] small fixes for methods and more reference tests ( #419 )
...
* clean up method stuff, fix a few small bugs, and add references for easy -h files
* more small fixes and reference tests
2021-05-06 00:42:49 -04:00
water111
9074a35b9b
[Decompiler] Fix printing of lets ( #314 )
...
* fix let prints and windows warnings
* missing include for windows
* windows again
2021-03-07 12:01:59 -05:00
water111
b352dcefa9
recognize dotimes ( #310 )
2021-03-05 21:46:39 -05:00
water111
c15c163333
[Decomp] Add SSA based check for expression building ( #292 )
...
* wip
* tests pass
* fix warnings
2021-02-28 12:38:29 -05:00
water111
5ec9a91eb9
Decompiler fixes + decompiling ( #276 )
...
* decomp pad
* more decompilation
* update
* fix test name
2021-02-22 09:36:30 -05:00
water111
43c1d223a6
[Decomp] Decompile gcommon, gstring-h, and gkernel-h ( #249 )
...
* begin decomp
* untabify
* finish decomp of gcommon
* warning with function name
* clean up gkernel-h
* fix all types
2021-02-11 09:49:15 -05:00
water111
6e0ff4c9d0
[Decompiler] Clean up the output ( #245 )
...
* fix parent issue
* fix compiler issue
* update
* add error messages
* fix error
* fix array access, temporary
* more clean
* fix
* rename arg variables better
* fix method name
* fix no return value in decompiler
* many small fixes
* cheat types so it works
* name map
* fix old test'
2021-02-09 20:59:14 -05:00
water111
a870bb53e4
[Decompiler] Expression 5 ( #218 )
...
* new method of inline-array-class
* up to new array
* wip side effect stuff
* prepare for pop barrier stuff
* add pop barrier
* add local vars hack to compiler
* fix bug, make sort work
* add test for array
* bug fixes
* another bug fix
* refactoring env variable print for casts
* more tweaks
* updates
* final cleanup
* codacy fixes
2021-02-01 20:41:37 -05:00
water111
b35beab372
[Decompiler] Add more expressions (Part 4) ( #215 )
...
* ref
* more
* one more
* up to insert cons
* recognize new
* fix memory bug!
* some mods to pair fields
2021-01-27 13:47:54 -05:00
water111
b59e33c005
[Decompiler] Expressions (Part 3) ( #213 )
...
* before inserting bonus instruction
* first part of refactor for return values
* find parent method working
2021-01-25 22:08:58 -05:00