water111
4616f436f1
fix missing bitfield ( #811 )
2021-09-01 21:02:16 -04:00
water111
9b0480c50d
[decompiler] process initialization macros ( #807 )
...
* implementation and a few working cases
* fix self issue
* fix run-function-in-process
* fix up set-to-run
2021-09-01 16:59:26 -04:00
water111
6d120c1ac8
fix self issue ( #808 )
2021-09-01 16:42:24 -04:00
water111
b58d9ec65d
support vector 4 ( #803 )
2021-09-01 10:02:20 -04:00
water111
c2c6d3ba46
[decompiler] detect res-lump macros ( #796 )
...
* support res lump float
* handle data macro
* rest of res macros
* add vi3 to the build system
* missing close paren
2021-08-31 15:01:54 -04:00
water111
41507f1aee
nest floating point addition and multiply operations ( #794 )
...
* nest floating point addition and multiply operations
* fix mood
2021-08-31 12:04:46 -04:00
water111
34e8afa0ee
get started on entity ( #793 )
2021-08-31 11:05:03 -04:00
water111
d9f9e076af
[decompiler] automatically label things when possible ( #784 )
...
* improve label system
* clean up menu
* debug menu working, still need to fix tests
* fix tests and clean up
2021-08-29 11:13:06 -04:00
Tyler Wilding
991a438927
decomp: decompile target-util
| logic-target
( #662 )
...
* add IR syntax highlighting
* set the filterFileRegex properly!
* stash
* decompiler: Add print if conditional fails
* decomp: Mostly finish `target-util`
* decomp: figured out a bit more with `target-util`, a bit stuck now
* decomp: *deep breath* `logic-target` mostly complete
* decompiler: More robust arg_count checking for `format` calls
* decomp: some more work in `target-util`
* fix sllv usage
* decomp: `logic-target` is compiling
* decomp: `target-util` very close - blocked by decomp issue!
* decomp: finish `target-util` except for one issue
#772
* demp: update goal_src
* linting
* add back the one remaining method
* address feedback, update source files
2021-08-22 20:46:37 -04: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
30d1e1d6c9
[decompiler] maybe fix symbol decompile issue ( #776 )
...
* maybe fix symbol decompile issue
* try again on a label
* allow int to float on seconds
2021-08-21 10:20:55 -04:00
water111
11e11d2c04
[decompiler] Several small fixes ( #775 )
...
* fix assorted bugs
* stricter return types
* only look for functions in code files
2021-08-19 20:35:12 -04:00
water111
e4f5e8eebd
improve warnings ( #770 )
2021-08-18 20:19:01 -04:00
water111
1f0c2e0e71
[decomp] Split condition and body of until
after building expressions ( #768 )
...
* improve until decomp
* fix tests
2021-08-18 19:36:52 -04:00
water111
97ab6a4e12
add support for non virtual states ( #764 )
...
* add support for non virtual states
* typecheck go
* start on virtual states
* more support for virtual states
* offline passes
* fix tests
* use behavior shortcut instead of lambda
* final cleanup of virtual go
* unused var warnings and fix inconsistent enum decompile order on win vs linux
* fix thread safety bug with goal symbol table and vif1 interrupt handler
* fix type mistake
2021-08-17 20:54:03 -04:00
water
ee81b709a4
add merc
2021-08-14 23:31:17 -04:00
water
78928e4c04
temp
2021-08-14 23:15:10 -04:00
water
097ae07bb8
clean up font color
2021-08-14 13:06:43 -04:00
water
ee71b52b27
Merge branch 'master' of https://github.com/water111/jak-project into w/dma-for-font
2021-08-12 19:27:51 -04:00
water
ebc580822e
clean up
2021-08-12 19:03:33 -04:00
water
66f95d3c8a
text working with no textures
2021-08-07 21:16:44 -04:00
Tyler Wilding
4f331b5f79
decomp: finalize rigid-body
2021-08-07 18:29:44 -04:00
Tyler Wilding
ef81529855
decomp: almost finish rigid-body
stuck on symbol param from an event!
2021-08-07 17:31:29 -04:00
water111
12446037bd
[decompiler] Make addition nicer ( #733 )
...
* temp
* update refs
* update reference
* fix tests
2021-08-01 18:24:58 -04:00
Tyler Wilding
75f7609baa
decomp: ocean-transition
( #616 )
...
* some work on `ocean-transition`
* decomp: finished non-blocked `ocean-transition` functions
* decompiler: Support <0 unsigned comparison
* decompiler/goalc: Support half-word and byte parallel extend ops
* attempt to add support for byte stack spills, assertion errors
`Assertion failed: idx < n_src, file ..\..\..\decompiler\Disasm\Instruction.cpp, line 353`
* decomp: fix byte stack spills, only 1 issue remains in `draw-ocean-transition`
* almost there...
* closer, but unknowns about `dma-buffer` blocking
* dealing with dma-buffer issues
* some more fixes, only an obscure xmm issue remains
* add two problematic functions to blacklists, avoid goal_src additions for now
* fix building/compilation but TypeConsistency hits an assertion error
the `ocean-mid-masks`'s `data` field is none of the types
* decomp: finalize `ocean-transition`
* address feedback - 1 issue remains
* decomp: finalize `ocean-transition`
2021-08-01 17:42:40 -04:00
ManDude
26c3fb65e9
make some macros for DMA stuff ( #725 )
...
* [compiler] allow infinite args for `logior`
* make some dma macros and use them on `display`
* [goos] add `string->symbol`
* make a sketchy macro
* fix tests
* `with-dma-bucket` and `dma-buffer-add-vector4w-2`
* cleanup `debug`
* cleanup `menu`
* go thru `texture` pt 1
* finish `texture`
* `sprite` pt 1
* `sprite` pt 2
* `generic`
* `gs` and `main`
2021-08-01 17:11:32 -04:00
Tyler Wilding
d317497c64
decomp: main-collide
and support a bunch of new inline-asm operations ( #673 )
...
* decomp/goal-lib: Implement all fixed point macros
* decompiler/goalc: Support half-word and byte parallel extend ops
* decompiler/goalc: Support all parallel compare instructions
* decompiler/goalc: Wire up PPACH and parallel bitwise operations
* goalc: Add emitter tests
* decomp: finalize `main-collide`
* codacy lint
2021-07-27 19:57:14 -04:00
water111
eee8390ec0
support inline arrays on stack ( #726 )
2021-07-26 21:39:05 -04:00
water111
bd9f550d82
add ref test for sprite and support nested bitfields in static data ( #723 )
2021-07-26 20:02:16 -04:00
water111
92a5d84a5b
fix sc when the block after the delay slot is optimized out ( #721 )
2021-07-25 16:42:37 -04:00
water111
2b6684aa5c
[decompiler] Working toward bsp
( #717 )
...
* clean up
* before int to float stuff
* before trying to eliminate the separate read and write maps
* partial fix for register issues
* add missing include
2021-07-25 15:30:37 -04:00
water111
95366d21df
Get started on collide-func and clean up log
forms in decompiler ( #713 )
...
* wip
* temp
* temp2
* first part of log macros
* more log macros
* logtest
* clean up
* dont initialize game info because we are missing stuff
2021-07-23 20:51:26 -04:00
water111
c76b51d805
clean up to gsound! ( #709 )
2021-07-19 20:49:33 -04:00
water111
b70fcb2f7a
support non-virtual gos in decompiler ( #707 )
2021-07-17 18:07:21 -04:00
water111
4989470828
recognize +! and set-vector ( #706 )
...
"
2021-07-17 15:00:10 -04:00
water111
2754a8f2c4
get res decompiling ( #705 )
2021-07-17 13:41:05 -04:00
water111
f6d5952498
[decompiler] handle nested conditionals and goto
s better ( #693 )
...
* diff check
* try that again
* more small fixes
2021-07-11 21:59:27 -04:00
water111
0a9cc68a27
[decompiler] Use meters, degrees, and seconds ( #689 )
...
* use meters degrees and seconds
* update changelog
2021-07-11 18:19:41 -04:00
water111
656489e942
[decomp] Clean up - part 2 ( #687 )
...
* temp
* temp2
* basic case support
* working for or without else
* support more cases
* clean up to drawable headers
* ocean
* format json
2021-07-11 16:35:25 -04:00
water111
1898c7c52a
[decomp] texture ( #684 )
...
* temp
* more cleanup
* fix merge issue
* handle no texture correctly
2021-07-09 22:20:37 -04:00
water111
551a9c4955
[decompiler] ASM Branching Support ( #677 )
...
* basic example working in geometry
* before updating offline'
* clean up
* temp
* progress
2021-07-05 16:07:07 -04:00
water111
e251f8b2d9
Support Behaviors ( #678 )
...
* temp
* working, but type pass got really slow
* clean up
* changelog and flip order
* clean up and add tests
* fix zero size array
* handle lambdas correctly
* another windows fix
2021-07-04 16:54:07 -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
4bea175140
[decompiler/compiler] Fixes for task-control
( #668 )
...
* fix decompiler for task control
* support in compiler
* changelog
* typo
2021-07-01 21:38:19 -04:00
water111
322a4ed9b2
Fix compiler crashes and improve return statements. ( #652 )
...
* fix a few small bugs
* fi
* fix merge conflict
2021-06-30 00:11:46 -04:00
water111
a6d5c4eda3
[decompiler] clean up vector detection and add vector float product detection ( #638 )
...
* change
* recognize vector float product and update tests
2021-06-27 17:24:35 -04:00
water111
bfb1fbe1fc
[decompiler] recognize more inlined vector functions ( #637 )
...
* detect vector+
* recognize reset
2021-06-27 12:11:30 -04:00
water111
b19a2c82f0
[decomp] detect vector-! inlined. ( #633 )
...
* fix flipped order
* format
* parser hack
* actually flip
* detect
2021-06-26 22:52:52 -04:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
water111
79d10979da
[decomp] math-camera
( #491 )
...
* decompile math camera
* missing line
2021-05-15 20:08:08 -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
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
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
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
ManDude
fef9b139d7
Force-enable assert
on release mode Windows build ( #440 )
2021-05-10 23:03:56 -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
water111
7018827a50
decompile display ( #408 )
2021-05-01 15:51:53 -04:00
water111
70d93354eb
[Decompile] file-io, loader-h, texture-h, level-h, math-camera-h ( #397 )
...
* file-io and loader-h
* add test for level-h
* math camera-h
2021-04-28 20:51:17 -04:00
water111
14028b90bc
[Decompile] vector.gc (finally) ( #394 )
...
* support psubw
* do half of vector
* rest of vector
* add test
* format
2021-04-28 17:14:54 -04:00
water111
3d2ca71fe3
[Decompile] pad and gs ( #389 )
...
* update stuff
* gs reference added
* update config
2021-04-26 21:40:08 -04:00
water111
2002db359a
[Decompiler] WIP: Stack Spills ( #382 )
...
* set up types
* cleaned up type analysis and got things working through atomic ops
* expression working, need types
* improved types and names
* getting close
* finish up dma-disasm
* fix
2021-04-25 14:48:54 -04:00
water111
fa122356ec
[Decompiler] Fixes for dma-disasm ( #377 )
...
* small tweaks
* fix up some more dma stuff
2021-04-23 20:29:15 -04:00
water111
060b125324
[Compiler/Decompiler] Better support for Bitfield and Enum types ( #374 )
...
* compiler fixes, a decent amount of decompiler stuff is working too
* more support in decompiler, fix some casts
* decompile static data too
2021-04-22 19:08:58 -04:00
water111
c09e18f3a7
Fix stack new and add size-of to compiler ( #370 )
...
* make decompiler output stack-no-clear
* add size-of
2021-04-18 19:51:15 -04:00
water111
7737817ac7
[Decomp] Fix bitfields in dma-bucket ( #367 )
...
* fix bitfields in dma-bucket
* fix dma-bucket
2021-04-18 12:08:08 -04:00
water111
9867155e7c
[Decompiler] More support for bitfields ( #363 )
...
* temp
* initial support for dynamic bitfields
* some more progress on display
* dma-buffer good
* small fixes
2021-04-17 18:35:50 -04:00
ManDude
9fbbe1a79c
prepare for decompiling display ( #359 )
...
* prepare for decompiling display
Needs some work on the decompiler (mostly bitfield stuff) before a more proper decomp can be done
* make `(profile-bar draw)`, `set-display-gs-state-offset` and `set-display-env` decompile
decompiler should now support unsigned divide
* fill in some dma-h types
* Fill in a few VIF bitfields + other minor fixes
* Update all-types.gc
* Fix stupid mistake in `vif-mask`
* update dma-h reference
* this uint32 is actually a `vif-tag` (oops)
2021-04-16 18:36:19 -04:00
water111
e5f0fecf17
[Decompiler] bitfield support and clean up of DMA ( #350 )
...
* get to vif
* support basic bitfield access
* make bitfields in dma work
* clean up dma
* fix merge conflict
2021-04-11 16:07:01 -04:00
water111
9969445cf7
[Decomp] Math library: transform and quaternion ( #344 )
...
* decompile transform
* types for quaternion
* part of quaternion
* finish quaternion
* fix offline test reference
* wip fix to let issue
* fix
2021-04-02 11:35:14 -04:00
water111
0a76e6e157
[Decompiler] Make matrix decompile ( #341 )
...
* small fixes
* update
* add instructions
* finish matrix
* add matrix test cases
2021-03-28 20:26:30 -04:00
water111
64c35ca453
[Decompiler] Stack Variables ( #338 )
...
* clean up type analysis
* get everything set up
* basic stack variables working
* partial load fix
* most of matrix
* add offline tests
2021-03-27 15:18:59 -04:00
water111
7fac11ddf5
Support 128-bit variables ( #336 )
...
* wip 128 bit support
* add a few more files to offline test
2021-03-25 16:02:48 -04:00
water111
99683c0dac
[decompiler] Add tests and fixes for vector-h and math ( #333 )
...
* before messing with ssa stuff
* fix ash
* bounding box
2021-03-24 19:16:31 -04:00
water111
9ffc6014e1
fix printing and add gstate ( #330 )
2021-03-22 20:04:00 -04:00
water111
4262145c99
fix set! missing typecast ( #324 )
2021-03-17 19:26:35 -04:00
water111
d60d9b639a
support anonymous functions ( #323 )
2021-03-14 19:06:51 -04:00
water111
e93d97dd07
[decompiler] gkernel offline test ( #321 )
...
* working on pointer math
* bug fixes
* gkernel passing with no anon functions
* update tests
2021-03-14 16:11:42 -04:00
water111
814480f9e5
[Decompiler] Replace type hint system and improve variable types. ( #320 )
...
* get gkernel and gkernel-h at least somewhat working in the offline tests
* strip comments from json
* switch hints to casts. online tests passing, offline passing up to gkernel
* variable retyping is added
* fix up casts in lets
* update
2021-03-13 16:10:39 -05: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
d8a82eeca1
[Decompiler] Fix up pretty printing and other small changes ( #311 )
...
* fix up pretty printing
* wip
* fix pointer cast signed vs unsigned issue
2021-03-06 20:16:48 -05:00
Tyler Wilding
f123bf368a
decomp - vector.gc - Decompile vector.gc ( #289 )
...
* temp: commit what i have so far
decomp: Fix nonempty_intersection impl for MSVC Debugging use-case
docs: Add info on getting ASan builds running on Visual Studio w/o exceptions
* decomp: initial rlet implementation
* decomp: cleanup pass of vector-rewrite stage
* decomp: Commit in-progress vector.gc, shortcomings are TODO commented
* decomp: More cleanup, rename from being `vector` instr specific
Fundamentally, this process can be used for re-writing ANY inline-asm instruction
* decomp: Support 4th arg ACC instructions
* decomp: Final pass of vector.gc before implementing last instructions
* decomp: Better warnings when hitting unimplemented instructs
* compiler: Implement inverse-sqrt and mov.vf
* decomp: Final manual pass over vector.gc, documented gaps
* decomp: Finish decompiling what currently is possible in vector.gc
* decomp: Fix Variable -> RegisterAccess conflict
* decomp: codacy lint
* Address review feedback
* Address feedback part 2
* Resolve build failures
2021-03-06 10:46:26 -05:00
water111
b352dcefa9
recognize dotimes ( #310 )
2021-03-05 21:46:39 -05:00
water111
65ffe83468
[Decompiler] Decompile let
( #309 )
...
* test
* fix bug
* fix tests for let
* missing formatting fix
2021-03-05 18:48:01 -05:00
water111
d9aa535dd0
[Decompiler] Fix issues in gcommon ( #305 )
...
* fix several issues
* small fixes
2021-03-03 20:52:25 -05:00
water111
413c1f5c74
[Decompiler] Add offline tests ( #303 )
...
* add offline test for gcommon as an example.
* fix test
* unused var
2021-03-03 15:42:55 -05:00
water111
b0686b1ea7
fix decompiler crash ( #294 )
2021-02-28 19:22:53 -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
57eca1dee9
[Decomp] Decompile more files. ( #290 )
...
* decompile ocean trans tables
* more
* exclude tables from decomp progress
* format'
2021-02-27 14:40:18 -05:00
Tyler Wilding
049489c85b
Fix a small regression impacting MSVC debug builds ( #285 )
...
* decomp: Fix nonempty_intersection impl for MSVC Debugging use-case
* docs: Add info on getting ASan builds running on Visual Studio w/o exceptions
2021-02-27 13:38:04 -05:00
water111
d6d5203695
[Decomp] Minor fixes plus some math camera decomp ( #287 )
...
* make some progress on math camera
* minor fixes plus start of decomp of math camera
2021-02-26 15:27:13 -05:00
water111
791c4abfc0
[Decompiler] Static Data Decomp ( #280 )
...
* update all-types
* begin work on static data decompiler
* working for vif disasm array
* mostly working
* finish static data decompilation
2021-02-25 09:51:28 -05:00
water111
f6a6b4c107
[Decompiler] Fix coloring moves ( #281 )
...
* fixed
* final fix
2021-02-24 19:08:55 -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
4b1b7e9507
[Decompile] DMA and similar ( #275 )
...
* add some dma
* clean up
* add progress script and make codacy happy
2021-02-21 11:02:28 -05:00
water111
8775840265
[Decomp] Decompile engine math library types ( #272 )
...
* decompile some stuff
* fix typo
* playing around with trigonometry
* more progress on trig
* more trig
* comments and small fixes
* finish trig
2021-02-20 11:42:46 -05:00
water111
db48d94270
[Decompiler] Clean Up ( #271 )
...
* clean up
* fix up until generic ops
* finish kernel
* documentation
* types
* add missing file
2021-02-18 11:35:45 -05:00
water111
f1a93886e7
[Decomp] Decompile gstring ( #267 )
...
* decompile gstring
* update
* Update code_status.md
* Update code_status.md
* decompile gstate
* add test for states, hope it passes
* also test throw and catch xmms
* update doc
2021-02-16 20:37:48 -05:00
water111
aa9bcd07f4
[Decompiler] Flag uses of vf
registers for values outside of functions ( #263 )
...
* clean up warning system
* add bad dependency warning
* add q and acc
2021-02-15 11:55:10 -05:00
water111
af1691a0bc
[Decompiler] More progress on method stuff ( #264 )
...
* more progress on method
* fix method issues
2021-02-15 11:36:59 -05:00
water111
14d602c594
[Decompiler] More fixes for gkernel ( #261 )
...
* fix bugs and more address of support
* support for zero checks
* fix tests
2021-02-14 18:50:45 -05:00
water111
d01ecf0a9e
[Decompiler] Support virtual method calls ( #260 )
...
* support virtual methods kinda
* more
2021-02-13 16:35:27 -05:00
water111
126dfc1c45
[Decompiler] Misc fixes for gkernel/math ( #257 )
...
* more cases
* some work on math and floating point stuff
* some decompiling for fun
2021-02-13 11:32:52 -05:00
water
e8231c2708
fix
2021-02-11 16:13:03 -05:00
water111
d9a8f28e52
remove useless sets ( #252 )
2021-02-11 14:35:28 -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
e01e065170
[gcommon decomp] compiler and decompiler fixes ( #239 )
...
* wip
* decompile file-io
* a
* fix
2021-02-07 18:21:00 -05:00
water111
f8b63a3f92
[Decompiler] Put likely delay slots in their own block ( #237 )
...
* first part of fix
* atomic op conversion fix
* update tests
* oops
2021-02-06 17:04:03 -05:00
water111
ddffda1e8c
[Decompilation] Fixes to compiler/decompiler for gcommon ( #227 )
...
* fix shift naming issue
* fix bad argument variable names
* fix missing variable issue
* small missing things
* wip
* cleanup
* wip
* fix conditions
* small bug fix in rewriter
* fix incredibly stupid printing bug
2021-02-05 19:41:09 -05:00
Tyler Wilding
65206823ef
Compiler - Implementing more VU Instructions (Part 1 of 2) ( #221 )
...
* A little project cleanup
* Script to grep decompiler results
* Compiler: Implement VNOP -> FNOP (.nop.vf)
temp: test new addition
* Compiler: Implement VMUL.xyzw (.mul.vf)
squash: cleaning up files i don't want to accidentally stage
* Compiler: Implement V[ADD|SUB|MUL].dest instructions
* Compiler: Implement V[ADD|SUB|MUL][x|y|w|z].dest instructions
* Compiler: Implement V[MIN|MAX]{[x|y|z|w]}.dest instructions
* Compiler: Implement V[ABS]{[x|y|z|w]}.dest instructions
* Cleanup review feedback before adding tests and docs
* Tests: Added missing emitter tests
* tests/compiler: Comprehensively test all new instructions
* docs: Add documentation for newly supported operations
* Remove unused vector-h function
* Address review feedback
2021-02-05 15:00:17 -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
3ea8cbea6f
misc small improvements ( #217 )
2021-01-27 15:39:50 -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
water111
2f722e6379
[Decompiler] Expression Building ( #211 )
...
* up to ash
* add more expressions
* fix some return variable usage nonsense
* bfloat print working
* basic-type working
* type working, fix decompiler on all files
* clang format
2021-01-24 16:39:15 -05:00
water111
27f0a7ca44
[Decompiler] Begin expression conversion, rearrange tests ( #209 )
...
* refactor tests and analysis passes
* identity test working
* combine test categories with only a few cases
* more fixes
2021-01-23 16:32:56 -05:00
water111
4a97e15b40
[Decompiler] Remove most IR1 Analysis ( #207 )
...
* temp
* remove some of ir1
2021-01-22 22:03:58 -05:00
water
56d4ed1228
add stacking framework
2021-01-22 20:50:37 -05:00
water111
679b17ae6f
[Decompiler] Get used variables, handle function calls better, and minor cleanup ( #205 )
...
* small fixes, implement getting used variables
* improve printing of variables
* missing include
2021-01-19 21:45:17 -05:00
water111
40d328f4eb
[Decompiler] Test framework for decompiler regression tests and gcommon tests ( #200 )
...
* test framework for pre-expression compact stuff
* check ordering
* more tests
* final tests gcommon
2021-01-18 13:33:32 -05:00
water111
d6bbca5620
[Decompiler] IR2 form implementation ( #197 )
...
* begin ir2 form implementation
* temp
* small fixes
* fix test
2021-01-17 18:08:18 -05:00
water111
1071ff6003
[Decompiler] WIP Conversion to SSA and variable naming ( #195 )
...
* begin ssa algorithm
* ssa based splitting appears to work
* add merge pass
* finish basic implementation
* better output
* bug fix
2021-01-16 10:54:09 -05:00
water111
8f86f0f00e
add register usage pass ( #194 )
2021-01-12 19:20:08 -05:00
water111
fe693b5da2
[Decompiler] Implement IR2 Type Analysis Pass ( #193 )
...
* type analysis setup
* more framework
* update printing
* wip
* add type analysis pass
* fix tests
2021-01-10 20:46:49 -05:00
Tyler Wilding
e63abb0ea1
Improved test namings for multi-operations, added new ones, still a few failures ( #190 )
...
* Improved test namings for multi-operations, added new ones, still a few failures
* Review - Modifications to get all tests passing
2021-01-10 15:46:46 -05:00
water111
cd9a9af6dd
fix register info duplication ( #191 )
2021-01-10 11:08:03 -05:00
water111
2901f4a99e
[Decompiler] Write IR2 to file and implement some Atomic Op conversions ( #187 )
2021-01-09 20:01:48 -05:00
water111
5093b97cda
[Decompiler - New IR] Add AtomicOp ( #181 )
...
* wip decompiler ir
* add AtomicOp stuff
* fix windows build and warnings
* add instruction parser
* include
* make minilzo shared
* odr fix
* a
* fix merge conflicts
* move decompiler into namespace
* update the code coverage to include the decompiler
* add demo test
* add register use test to example test
2021-01-06 20:04:15 -05:00