water111
10b00e57ae
[decomp] Fix flipped byte addressing add and support some VU ops in the parser ( #631 )
...
* fix flipped order
* format
* parser hack
* actually flip
2021-06-26 20:02:21 -04:00
water111
69e24ae577
recognize vector, matrix, quaternion constructors in a better way ( #630 )
...
* recognize vector, matrix, quaternion constructors in a better way
* fix bad bug
2021-06-26 18:30:35 -04:00
water111
ae2666a7c5
fix use def issues ( #629 )
2021-06-26 16:31:38 -04:00
water111
1ffd42e090
[decomp] clean up and make level-update-after-load
work ( #628 )
...
* temp
* make level-update-after-load work
* add missing const
2021-06-26 13:03:31 -04:00
water111
490633d434
add countdown ( #627 )
2021-06-25 20:51:25 -04:00
water111
409be41596
[decompiler] fix bad cast and crash on bad and/or recognition ( #626 )
...
* fix small bugs
* fix missing inlining of derefs
2021-06-25 20:13:22 -04:00
water111
9e6dec9829
[decomp] make bg decompile ( #624 )
...
* make bg decopmile
* fix parent method call
2021-06-24 20:06:12 -04:00
Tyler Wilding
d54eb0b98d
decomp: entity-table
( #614 )
...
* decomp: `entity-table` done but problem with the label cast
* decomp: `entity-table`
* decomp: finalize `entity-table`
2021-06-23 23:29:24 -04:00
water111
83c5852465
allow terrible method hack to decompiler ( #623 )
2021-06-23 22:42:02 -04:00
water111
44f8ff6d25
[decompiler] bug fixes related to infinite loop CFGs, argument registers ( #622 )
...
* temp
* clean up
* more clean
2021-06-23 22:09:02 -04:00
ManDude
997d5b57db
[memdump] Make it work on fields of type (array basic)
( #620 )
...
* use `std::function` for this because that's what you're meant to do
* [memdump] Analyze fields of type `(array basic)`
* fix test
* Massively simplify things.
2021-06-23 22:07:17 -04:00
Tyler Wilding
fc105e1f55
decomp: collide-frag
( #618 )
...
* decomp: Good portion of `collide-frag`
* decomp: Remove redundant method declarations for drawable types
* decomp: Finish `collide-frag`
Co-authored-by: water111 <48171810+water111@users.noreply.github.com>
2021-06-21 20:18:27 -04:00
ManDude
a123f02c32
[decomp] prepare for some files, fill in some types ( #617 )
...
* [mips disasm] don't multiply `vcallms` parameter by 8
* [decomp] prep some game loop files
2021-06-21 19:47:39 -04:00
Tyler Wilding
87961bdb3b
decomp: generic
( #611 )
...
* decomp: Fix casting issue with uint64's from static data
* decomp: `generic`
* add forward declaration
Co-authored-by: water111 <48171810+water111@users.noreply.github.com>
2021-06-20 16:02:15 -04:00
water111
4f8403d8e6
support type-ref ( #613 )
2021-06-20 12:59:39 -04:00
ManDude
adcb9fad55
Fix console scrolling issues on windows ( #609 )
...
* Fix console scrolling issues on windows
* Add super extremely important spaces
2021-06-19 22:46:36 -04:00
water111
06ae38d464
[decomp] clean up type def formatting and remove all-forward-definitions.gc ( #608 )
...
* clean up
* fix test
2021-06-19 15:50:52 -04:00
ManDude
46b83bda2a
[decomp] debug
( #607 )
...
* [decomp] `debug`
* shut up
2021-06-19 14:24:55 -04:00
water111
bc87c4426f
[decompiler] Fix deref bug and add some more new type pass stuff ( #606 )
...
* add copy on write and clean up some register stuff
* fix bug in multiple field lookup
* format
2021-06-18 21:10:00 -04:00
water111
409c1f5a7d
[Decompiler] WIP new type analysis tools ( #601 )
...
* add multi-lookup
* use multi-lookup
2021-06-17 21:50:36 -04:00
water111
af49ac60cd
fix shl by 16 constant being mistaken for a dynamic bitfield construction ( #600 )
2021-06-16 22:15:22 -04:00
water111
d26de26d21
[decompiler] Small bitfield fixes ( #599 )
...
* fix a bunch of small bitfield related things
* fix up test
* format
2021-06-16 21:11:21 -04:00
Tyler Wilding
b209c9e1ba
Fixing organization error in all-types ( #553 )
...
* scripts: improve decomp-next script
* script: Make it possible to consistently cleanup `all-types`
* now use the actual parent type!
* adjust the symbol order for collectables
* re-organize
* manually fix this edge-case for now
2021-06-16 20:29:15 -04:00
water111
d79937fb62
Improve forward declaring types ( #596 )
...
* improve forward declare type
* display type differences
* make codacy happy
2021-06-15 21:03:55 -04:00
ManDude
928673cd13
[decomp] prepare joint
stuff ( #594 )
...
* [decomp] prepare `joint` stuff
* fix types
* fix a missing declaration
* update references
2021-06-14 23:45:21 -04:00
water111
0aa474f12b
[decomp] finish actor-link-h and a few more ( #592 )
...
* finish actor-link-h
* decompile files
* fix pp issue
2021-06-14 20:46:54 -04:00
water111
13b5695b63
[decompiler] Workaround for GOAL fpr -> gpr spill bug and fix >16-bit signed FP loads ( #587 )
...
* fix up broken stuff for collectables
* exception for stack spill float in gpr bug
2021-06-13 13:55:55 -04:00
Tyler Wilding
506b5d8ceb
Decompile: prototype
| video
| vol-h
| air-h
| nav-enemy-h
| rigid-body-h
( #575 )
...
* decomp: `prototype` done
* tests/ref: Update all reference tests
* decomp: `video` done
* decomp: Add `video` to src
* decomp: `vol-h` done
* tests/ref: Update reference tests again
* decomp: Add `vol-h` to ref tests, leave `entity` in process as a `basic` for now!
* decomp: `air-h` done, compiler issue though
* decomp: `nav-enemy-h` done, compiler issue though
* decomp: `rigid-body-h` done, compiler issue though
* Address feedback and fix the failing to compile files
* linting
* finish `video` off
2021-06-12 21:52:55 -04:00
water111
8faded6400
[decompiler] bitfield support for sound-name
( #582 )
...
* fix 64-bit fields in 128-bit bitfields
* support sound-name
* fix merge
* support some more sound stuff in overlord
2021-06-12 12:55:38 -04:00
ManDude
877e3d161c
[decomp] gsound
( #583 )
2021-06-12 10:48:38 -04:00
water111
50fbbc45aa
[decomp] start on actor-link-h
( #579 )
...
* wip
* fix tests
2021-06-11 19:04:47 -04:00
water111
92afd62e2c
[decompiler] fix missing casts issue ( #573 )
...
* fix casts issue
* fix bug
* one last small fix
2021-06-09 21:35:13 -04:00
water111
12d72c7897
detect small integer not equal ( #572 )
2021-06-08 23:39:01 -04:00
water111
5b24e43143
Change syntax for boxed array to support different length and allocated-length ( #568 )
...
* change syntax for boxed array
* fix test and make the flava thing kind of work
2021-06-07 20:22:06 -04:00
water111
f516737cf7
[decompile] bsp-h ( #562 )
...
* decompile bsp-h
* a few more
* some more
* fix merge conflicts
2021-06-07 18:30:16 -04:00
ManDude
e0a15d5990
[decomp] yet even more res
( #565 )
2021-06-07 16:26:21 -04:00
Tyler Wilding
698d96cc4e
Decompilation: Next batch of files ( #539 )
...
* decomp: `collide-frag-h`
* decomp: `effect-control-h`
* decomp: `cam-update-h`
* decomp: `collide-func`
variable pass failed on ray-plane-intersect: invalid unordered_map<K, T> key
* decomp: `cylinder` with vector dot product issue
* decomp: `debug-sphere`
* decomp: `generic`
* decomp: fix `effect-control-h`
* scripts: improve decomp-next script
* decomp: Fix `debug-sphere` issues via type casting
* decomp: Add `collide-frag-h` to reference tests
* scripts: Add script to add a new reference test
* decomp: Add `cam-update-h` to reference tests
* goalc: Fix empty let removal issue
* decomp: Not adding cylinder to goal_src yet either
* decomp: Add `debug-sphere` to reference tests
* decomp: Attempt to finish `generic` but blocked by decomp issue
https://github.com/water111/jak-project/issues/563
* linting
* decomp: Resolve failing tests
* decomp: Address feedback
2021-06-06 23:01:30 -04:00
Tyler Wilding
c19bcd37aa
decomp: credits
( #533 )
...
* decomp: `credits` but there are still issues
* issues over creating a `new` `font-context`
* decomp: finalized `credits`
2021-06-06 19:57:40 -04:00
water111
fef7fad65a
[decompiler] process-drawable-h ( #561 )
...
* decomile process-drawable-h
* one more
2021-06-05 23:55:36 -04:00
water111
54f72e9b10
[decomp] joint-mod-h ( #560 )
...
* decompile joint-mod-h
* format'
* missing include
* fix test
2021-06-05 20:22:03 -04:00
water111
a572587a0e
add types ( #559 )
2021-06-05 16:58:32 -04:00
water111
2851cae13b
[decompile] fact-h ( #556 )
...
* decompile fact-h
* fix unused var
* codacy again
2021-06-05 11:15:34 -04:00
water111
542edfb164
[compiler/decompiler] Take the address of a variable ( #554 )
...
* support taking the address of variables
* partially working stack variables
* implement type cast stuff
* remove final
2021-06-04 13:43:19 -04:00
ManDude
9b905f903c
random clean-up ( #551 )
...
* clean-up various files, do `game-h` and `generic-obs-h`
* cleanup `smush-control-h`
* cleanup `collide-edge-grab-h`, `collide-mesh-h`, `collide-shape-h`
* [goal lib]organize minor things
* Fix a library command before I forget again
* fix
2021-06-04 13:22:50 -04:00
Tyler Wilding
2bfe13d0be
decomp: entity-h
, camera-h
, cam-update-h
and cam-interface[-h]
( #501 )
...
* waiting for `entity-camera` / `entity-ambient` issue
* stash
* add missing definitions
* decomp: `cam-interface`
* as far as i can get with `path-h`, how do you specify pointers on the stack?
* correction, no way these are just simple integers but `etype`is still a mystery...
* decomp: `camera-h` | `cam-interface` | `cam-interface-h` and `entity-h`
* revert change to `process` doesn't seem likely
2021-06-02 20:09:04 -04:00
Tyler Wilding
2b3c4d957a
Organize all types ( #523 )
...
* get a full mapping of all `symbol:file-name` for jak1
* cleanup before any additional work is done
* more pre-organize changes
* scripts: script written to cleanup all-types...but what will cleanup the script...
* resolve clashing enum symbol names
* some manual changes to symbol order
* very close! don't completely lose types that are fully commented out
* scripts: New symbol mapping and further script polishing
* changes needed to make the script function properly
* brand new all-types!
* remove now irrelevant symbol definitions
* formatting cpp
* decompiler: Remove symbol dumping feature, not accurate anyway
2021-06-01 22:41:37 -04:00
ManDude
784119188c
[decomp] even more res
( #529 )
...
* [decomp] even more `res`
* [decompiler] make `logand` with pointers and constants return pointer
* [decomp] more work
* update offline tests
* fix tests(?)
* `*res-static-buf*`
* fixes
* fix reference
* [opengoal] make `logand` work directly with pointers
* [decomp] `inspect res-lump`
* use the inline methods
* don't use a math mode for pointers
* [compiler] allow optionally setting disassembly output file
* [x86 disasm] Keep casing consistent between instructions and offsets
2021-06-01 16:07:45 -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
84c0522102
[decompiler] Add pass to generate a symbol definition map file ( #546 )
...
* add symbol order file
* class to struct fix for windows
2021-05-31 10:43:25 -04:00
water111
c4f44e265f
[decompiler] Better support for non-virtual methods ( #543 )
...
* fix up nonvirtual method calls and stack new method calls
* look at final in compiler too
2021-05-30 22:52:40 -04:00
water111
b1a76b2291
[decomp] Small fixes ( #541 )
...
* fix a few bugs
* fix local vars missing in top level
* more small fixes
* support missing inline array access case
* one more fix
2021-05-30 19:57:11 -04:00
Tyler Wilding
c910a22c1b
decomp: a bunch of files ( #532 )
...
* decomp: `eye-h`
* decomp: `projectile-h`
* decomp: `sky-utils`
* decomp: decompile `water-h` and add `smush-control-h` to ref tests
* decomp: `task-control-h`
2021-05-28 20:11:06 -04:00
Tyler Wilding
fb939726e8
decomp: Decompile ripple
( #512 )
...
* decomp: Decompile `ripple`
* decomp: Finish decompiling `ripple`
* update necessary src files
2021-05-26 19:40:12 -04:00
ManDude
ec45182b42
[decomp] more of res
+ change a few macros ( #527 )
...
* disable asan for windows because it is too slow
* add `deref` and `&deref` macros, change `case` construct
* update `res`
* update `case` usages
* Fix some `res` methods
* `res-lump` method 9
2021-05-25 16:36:36 -04:00
water111
0f0902eabf
add config option for changing cond splitting behavior ( #522 )
2021-05-24 19:52:19 -04:00
water111
d719bf5677
[decompiler] support break ( #516 )
...
* support break
* finish implementation of break, decomp method 19 of res
2021-05-23 20:16:34 -04:00
water111
a96710f0c5
VU micro mode disassembler ( #517 )
...
* wip
* more
* the rest of the disassembler
2021-05-23 16:59:09 -04:00
water111
3fbdd662dc
[decompiler] Support accessing 128-bit bitfields ( #514 )
...
* support some 128-bit bitfield stuff
* fix bug
* support type stuff correctly
2021-05-21 20:36:04 -04:00
ManDude
6ac399ca33
decomp some of res
to get started ( #439 )
...
* decomp some of `res` to get started
* update scripts
2021-05-21 10:41:50 -04:00
water111
46e5d1928b
support float stack spills ( #513 )
2021-05-21 10:29:05 -04:00
water111
663b5c7899
[OpenGOAL] Support for 128-bit arguments and return values (WIP) ( #510 )
...
* xmm call and return working, needs some careful double checking and tests
* clean up and test
2021-05-20 20:12:49 -04:00
Tyler Wilding
174a079dbd
decomp: Decompile stats-h
( #504 )
...
* decomp: Decompile `stats-h`
* linting
2021-05-20 13:53:19 -04:00
Tyler Wilding
ce6ebc385c
decomp: decompile trajectory
( #499 )
...
* decomp: decompile `trajectory`
* address review feedback
* some more corrections
2021-05-18 21:50:08 -04:00
water111
ec412c7777
[decomp] ramdisk, load-dgo and rpc-h ( #496 )
...
* decompile ramdisk load-dgo and rpc-h
* add a bunch of offline tests
* clang-format
2021-05-16 21:07:22 -04:00
Tyler Wilding
b75a64fc29
(init-vf0-vector)
to make vector code a bit more readable (#494 )
...
* decomp: Use a macro for loading VF0 (maybe should be in goal-lib.gc?)
* update references
* lint: format
* delete now unused file
2021-05-16 13:49:24 -04:00
Tyler Wilding
bf6e9fc9e9
decomp: Decompile transformq
( #492 )
...
* decomp: type changes for `transformq`
* decomp: decompile `transformq`
* address feedback
2021-05-16 12:43:50 -04:00
water111
79d10979da
[decomp] math-camera
( #491 )
...
* decompile math camera
* missing line
2021-05-15 20:08:08 -04:00
Tyler Wilding
af2836c452
decomp: Decompile aligner-h
( #490 )
...
* scripts: Automatically re-decompile if all-types is modified
* decomp: `aligner-h`
* remove inspect method
2021-05-15 19:42:23 -04:00
water111
d73501cf19
[decompiler] Get rid of FormStack peek and fix virtual method calls ( #488 )
...
* fix, but it was too easy
* try again
2021-05-15 13:11:20 -04:00
water111
613efbd768
[decomp] transformq-h, clean up trig, and offline test for trig ( #485 )
...
* clean up
* fix store vf fallback errors
2021-05-15 10:38:14 -04:00
water111
c95e501cec
handle zero case in enum comparison ( #484 )
2021-05-14 20:12:59 -04:00
water111
d9f9d36f37
[OpenGOAL] make multiplication/divsion like GOAL and support in decompiler ( #483 )
...
* support in compiler
* multiplication in the decompiler
* update divisions
2021-05-14 18:43:12 -04:00
water111
b3eb05e37f
[decompiler] fix (gpr->fpr
when an integer arg is converted to float ( #482 )
...
* fix gpr fpr bug
* remove unused variable
2021-05-14 14:33:08 -04:00
Tyler Wilding
790e65a78c
decomp: Decompile wind
( #480 )
...
* decomp: Decompile `wind`
* include `<limits>`
2021-05-13 20:46:37 -04:00
water111
0ab916e122
fix quote issue and decompile level-info ( #474 )
2021-05-12 21:57:19 -04:00
ManDude
7d69311552
[decomp] some of fact-h
( #473 )
...
* update scripts
* decomp some of `fact-h`
2021-05-12 21:45:36 -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
Tyler Wilding
3897258753
decomp: mood-tables
( #460 )
...
* decomp: Decompile `mood-tables`
* decomp: Cleanup `mood-tables` and add REF file
* all-types cleanup
* decomp: Add missing float types (that may be optional now)
* linting / formatting
2021-05-12 19:33:29 -04:00
water111
8d4b644a14
fix cond with else that is empty bug ( #470 )
2021-05-12 15:54:33 -04:00
water111
223adeeb0c
Automatically get float label type in most cases ( #463 )
...
* automatically get float type in most cases
* try harder to print json errors
* fix test
2021-05-11 21:57:05 -04:00
water111
0599d144f8
[decompiler] Clean up config more ( #458 )
...
* remove global config
* fix dir
2021-05-11 20:49:54 -04:00
water111
d7d563814f
clean up config ( #456 )
2021-05-11 19:19:23 -04:00
water111
433993074a
Clean up some errors/crashes in decompiler ( #452 )
...
* fix offline tests, clean up some warnings
* clean up warnings during decomp
* fix remaining crash issues
2021-05-11 16:43:13 -04:00
Tyler Wilding
4c788b7f50
Decompilation: shadow-h
and target-h
( #428 )
...
* decomp: `target-h`
* decomp: `shadow-h`
* decomp: Add reference / source files
* Use `define-perm` in goal_src file
2021-05-11 00:01:37 -04:00
ManDude
fef9b139d7
Force-enable assert
on release mode Windows build ( #440 )
2021-05-10 23:03:56 -04:00
water
c5922df12e
Merge branch 'decomp/cleanup-alltypes' of https://github.com/xTVaser/jak-project into xTVaser-decomp/cleanup-alltypes2
2021-05-09 17:09:40 -04:00
Tyler Wilding
2a315419de
tests: Automate the offline reference tests better ( #427 )
...
* tests: Move all files to new directories
* scripts: Update decomp scripts
* tests: Remove hard-coded list for offline tests
* linting
2021-05-09 17:03:58 -04:00
Tyler Wilding
7cbf6e6174
decomp: Cleanup all unknown-types
that we've actually defined
2021-05-08 22:19:36 -04:00
Tyler Wilding
971e0e3e24
decomp: pov-camera-h
and hud-h
( #425 )
...
* decomp: `pov-camera-h`
* decomp: decompile `hud-h` and update offline tests
* linting
2021-05-07 22:56:37 -04:00
Tyler Wilding
73a4f2c83e
decomp: lights.gc
( #420 )
...
* scripts: Hack script to quickly identify the next goal_src file that hasn't been decomp'd yet
* config: Delete old type_hints file
* decomp: Decompile lights.gc
* decomp-tests: Add offline tests and temporary forward defs
* vs: Rename / add new offline test run config
* decomp: Add formatted lights.gc source
* decomp: Temporary define stub in geometry,gc
* decomp: Cleanup `lights-group` handling
2021-05-07 20:54:20 -04:00
ManDude
cc3f8ffbf5
[decomp] headers for generic, mercneric, tieneric, merc, cpu shadow renderers, art, joint and bone ( #424 )
...
* decomp a bunch of renderer files
* fixes
2021-05-07 00:41:42 -04:00
ManDude
812efd92ca
[decomp] prototype-h
, a few enums and other random things ( #422 )
...
* [decompiler] fix missing error in asm output
* decomp prototype-h, cleanup pat-h and res-h, prep for fact-h & res
* fix types
* Update all-types.gc
* fix a methos in `res-h`
2021-05-06 19:00:30 -04:00
Tyler Wilding
233d887790
decomp: Avoid '
in error output ( #421 )
2021-05-06 18:47:32 -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
0a6602e320
[Decompile] connect, text-h, settings-h, capture, memory-usage-h ( #410 )
...
* decompile stuff
* temp
* temp2
* fix
* temp
* preparing for merge
* working
* fix stupid format
* fix codacy
2021-05-05 17:38:16 -04:00
ManDude
8d99bee88c
[decompile] decomp time-of-day-h
, fix mood-h
, update sky-h
, make art-h
almost work ( #415 )
...
* [decompiler] make certain floats decompile to constants
* update various types in `mood-h`, `time-of-day-h` and `art-h`
* fix `time-of-day-context`
* add some offline tests
* make `new-dynamic-structure` decompile at least
* formatting
* Update all-types.gc
* Update all-types.gc
2021-05-04 21:36:22 -04:00
ManDude
2beaa7a340
[decomp] cleanup drawable and ocean stuff ( #414 )
...
* use `kmalloc-flags` for goal `kmalloc`
* cleanup some drawable stuff, add offline tests
* cleanup generic-h a bit
* make decompiler work on 16-bit static data
* cleanup ocean stuff
* fix `ocean-spheres`
* oops forgot this
* I forgot to actually make `ocean-tables`
2021-05-03 08:54:49 -04:00
ManDude
7cb04c6cd5
[decomp] font-h, fix a vector type, minor decompiler fixes ( #411 )
...
* Make `:do-not-decompile` work on field lookup as well
* decompile `font-h` and update a vector type + minor fixes
* fix some types
* fix font-h
* fix font-h (again)
* update a script
* fixes
* Fix segfault
* Fix `PROT_NONE` page protection on windows
2021-05-01 21:09:48 -04:00
water111
7018827a50
decompile display ( #408 )
2021-05-01 15:51:53 -04:00
water111
56625bb0ee
Make buttons a bitfield and fix let bug ( #399 )
...
* make pad buttons bitfields
* fix stupid let bug
* update tests
2021-04-29 20:25:45 -04:00