Tyler Wilding
8ed6650ec6
decomp: finish sunken-elevator
2021-08-08 19:32:54 -04:00
Tyler Wilding
e7c100e060
decomp: mostly finish misty-warehouse
blocked by sllv from PP
2021-08-08 18:50:35 -04:00
Tyler Wilding
a9816f9d28
decomp: finish misty-teetertotter
2021-08-08 17:00:51 -04:00
Tyler Wilding
f29e9cb8ce
decomp: finish mud
2021-08-08 16:07:21 -04:00
Tyler Wilding
0d0442eeb4
decomp: finish twister
2021-08-08 13:28:47 -04:00
Tyler Wilding
4f331b5f79
decomp: finalize rigid-body
2021-08-07 18:29:44 -04:00
Tyler Wilding
20196852f5
decomp: finallize water-anim
2021-08-07 16:15:41 -04:00
water111
4d76d2f11a
add get-enum-vals ( #737 )
2021-08-02 22:01:10 -04:00
water111
5293f583a8
[decomp] clean up sync info ( #735 )
...
* clean up sync info
* clean up trajectory
2021-08-02 21:49:05 -04:00
water111
12446037bd
[decompiler] Make addition nicer ( #733 )
...
* temp
* update refs
* update reference
* fix tests
2021-08-01 18:24:58 -04:00
water111
aa58d146c2
[goalc] register allocator v2 ( #731 )
...
* clean up allocator interface to be simpler
* working on functions without spills
* working for all
* fix missing includes for windows
* more windows includes
* initialize regs to zero so printing value unintiailized by game code is repeatable
2021-08-01 17:46:55 -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
d400ec3b2d
decomp: mood
( #672 )
...
* decomp: Almost finished `mood`, but confused over the `mood-context` type!
* only function that remains involves vftoi / ppach instructions
* stash
* decomp: fix inline array access issue
* decomp: finalize `mood`
* linting
2021-08-01 16:11:22 -04:00
Tyler Wilding
d37e6c548e
decomp: camera
| cam-combiner
| cam-start
| cam-update
( #621 )
...
* started process on `camera`
* the bulk of `camera` is finished, with the exception of a few
* decomp: Confirmed function ret value
* decomp: `cam-combiner` dead code issue
* stash
* decomp: finish `cam-combiner`
* decomp: finish `cam-start`
* decomp: mostly finish `cam-update`, just needs polish now
* `cam-standard-event-handler` still causing issues
* `cam-combiner` issues with top-level `s6` usage
* decomp: update reference tests
* decomp: finalize `cam-start`
* decomp: `cam-update` cleaned up everything except the array of planes issue
* label correction
* still blocked in cam-combiner over casting issues
* decomp: resolve issues in `cam-start`
* decomp: finalize `cam-update`
* stash
* decomp: finalize `cam-combiner`
* decomp: finalize `camera`
* decomp: address feedback
2021-07-30 22:18:35 -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
ManDude
af52341050
[decomp] make anim-tester
decompilable ( #719 )
...
* make `anim-tester` decompile
* add the anon behaviors
* fix tests
2021-07-25 16:28:57 -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
ManDude
8ef73ee457
give defstate
a parent type and allow anonymous behaviors inside ( #715 )
...
* give `defstate` a parent type and allow anonymous behaviors inside
* add defstate type stack leak detection+correction, remove debug print
2021-07-25 00:23:30 -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
ManDude
03ffb97176
define every skeleton-group, name every inherited virtual state ( #712 )
...
* define every skeleton-group, name every inherited virtual state
* typo!
2021-07-23 20:38:05 -04:00
ManDude
1e11a588f5
[decomp] loader
prelim work + some cleanup ( #697 )
...
* [decomp] `loader` prelim work + some cleanup
* more things
* more
* even more
* yet even more
* minor fixes
* decompiler fix + use behaviors for two funcs
* last functions
* Create loader_REF.gc
* more work
* change vag tool config format + unrelated farmer and yakow stuff
* update some things
* fix some decomp
* cleanup things i came across + make dgo compileable
* fix consistency test
* update refs
* offline test: skip buggy `external-art-buffer` method
* fix test
2021-07-23 18:30:49 -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
ef011f4fe8
[goalc] add a build system ( #704 )
...
* add first attempt at build system
* fix stupid bug
* try again
2021-07-15 21:37:15 -04:00
water111
73330302ba
fix bug in field lookup ( #700 )
2021-07-12 19:29:56 -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
Tyler Wilding
1b5c5239b1
decomp: mostly finish aligner
( #686 )
...
* decomp: mostly finish `aligner`
Issues in aligner/aligner-h that require hand-editing after decompilation
* linting
2021-07-11 16:19:03 -04:00
Tyler Wilding
0e4a9d2679
decomp: finish path
( #685 )
...
* decomp: finish `path`
* address feedback
2021-07-10 10:18:48 -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
Tyler Wilding
3219180e60
decomp: finish air
( #683 )
2021-07-09 21:44:48 -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
Tyler Wilding
17aedd894d
decomp: hint-control
| menu
| default-menu
(as much as possible) ( #632 )
...
* decomp: mostly done `hint-control`
* decomp: Started and decent chunk of `menu` done
* temp stash
* decomp: escape from `menu` hell
* decomp: starting on `default-menu`
* decomp: As much as i can do in `default-menu` at this time
* decomp: clean up `hint-control`
* decomp: fix reference tests
* temp stash
* decomp: finalize `menu`
* decomp: add `menu` to goal_src
* decomp: finalize `hint-control`
* decomp: Resolve TypeConsistency issues
* and fix reference tests
* address feedback
* format and lint
* fix tests
2021-07-04 18:25:08 -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
Tyler Wilding
833ca06618
decomp: finish tfrag-work
( #679 )
2021-07-04 16:19:20 -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
Tyler Wilding
bc41241234
decomp: task-control
( #654 )
...
* stash
* decompiler: support symbols in arrays
* decomp: a ton of lambda casts
* finish task control?
* add lambda label casts
* decomp: resolve some issues, add enums
* decomp: One last decompiler issue remains
* decomp: finalize `task-control`
* linting
* revert change to test change, didn't mean to commit
* decomp: comment out function call for now
2021-07-02 15:11:28 -04:00
water111
6366068bc0
Support dir tpages ( #671 )
...
* support dir tpages
* fix warnings and bad return
* one more try
* revive the offline test script
* fix this null bug
2021-07-02 14:50:58 -04:00
water111
b96d865e2b
fix labmda defs ( #670 )
2021-07-02 12:27:46 -04:00
Tyler Wilding
39c2b90628
decomp: finish drawable-inline-array
just a bunch of stubs ( #665 )
2021-07-02 01:10:33 -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
fe5635227a
[compiler] print a backtrace as part of di ( #658 )
...
* print a backtrace as part of di
* missing include
2021-06-30 22:13:15 -04:00
Tyler Wilding
2556284293
decomp: decompile shrub-work
| tie-work
( #657 )
...
* decomp: finish `shrub-work`
* decomp: update reference tests
* decomp: update `goal_src` entries
* decomp: finish `tie-work`
* decomp: add to `goal_src`
2021-06-30 21:57:13 -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
ManDude
1af0f4a1a7
[decomp] most of level
and some game loop functions + couple decomp… ( #651 )
...
* [decomp] most of `level` and some game loop functions + couple decompiler fixes
* add ART.CGO to fake-iso
2021-06-29 20:30:52 -04:00
water111
2ee48e08f3
Allow setting a field with partially defined field ( #646 )
...
* allow setting a field with partially defined field
* actually run the test
2021-06-28 19:20:36 -04:00
Tyler Wilding
385b8b5785
decomp: settings
( #641 )
...
* decomp: finalize `settings`
* decomp: cleanup
2021-06-28 00:32:29 -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
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
bfc1173ed5
Clean up files in kernel ( #625 )
...
* clean up gcommon
* cleanup kernel
2021-06-25 17:55:50 -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
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
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
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
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
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
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
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
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
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
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
a6258f3654
[compiler] support 128-bit bitfields ( #500 )
...
* support setting and accessing fields of a 128-bit bitfield
* remove print
* rework static constants
* support 128-bit bitfields as part of static structures
* dynamic construction
2021-05-18 21:25:29 -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
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
60c670df3a
Use dragonbox to print floats ( #481 )
...
* add new float printer
* more includes
* compare as floats
2021-05-13 21:05:05 -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
water
ea2a6613e0
fix broken offline tests
2021-05-12 19:53:07 -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
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
water111
62dfa1bf07
[TypeSystem] add heap-base property to types ( #431 )
...
* support heap base in the type system
* lock around modification of status
2021-05-09 19:40:36 -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
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
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
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
53a70d8e43
clean up display-h ( #392 )
2021-04-27 19:40:14 -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
ManDude
26accb8714
Fix +1
macros to 1+
and update some timer types ( #375 )
...
* Correct `+1` macros to `1+`
* update some `timer-h` types
2021-04-22 18:31:54 -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
a863542fa3
[Compiler] Support dynamically constructed bitfields ( #354 )
...
* support dynamic bitfields
* update doc
2021-04-11 19:21:49 -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
ManDude
64ae2d6d39
[decomp] sync-info 1 ( #351 )
...
* move commonly used scripts to specific folders
* fixes
* Update test.sh
* Update test.sh
* Fix file permission
* move commonly used scripts to specific folders
* fixes
* Update test.sh
* Update test.sh
* Fix file permission
* [dynamics-h] clean-up
* make things neat
* update surface-h
* [sync-info] decomp 1
* move commonly used scripts to specific folders
* fixes
* Update test.sh
* Update test.sh
* Fix file permission
* move commonly used scripts to specific folders
* fixes
* Update test.sh
* Update test.sh
* Fix file permission
* [sync-info] update decomp
* Update gravity-h.gc
* [windows] separate scripts for runtime w/ or w/o display
* Update dynamics-h.gc
* Add offline test for sync-info
* clang
2021-04-10 21:17:36 -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
0d8742241b
support for i128 ( #331 )
2021-03-23 15:56:23 -04:00
water111
9ffc6014e1
fix printing and add gstate ( #330 )
2021-03-22 20:04:00 -04:00
water111
123f3b509d
[Decompiler] Fix let
bug ( #328 )
...
* fix let definition bug
* remove debug prints and add test
2021-03-22 16:46:02 -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
ManDude
9430b4772a
Implement runtime display (test) ( #318 )
...
* Implement runtime display (test)
* Update runtime.cpp
* [game display] add "-nodisplay" argument
* style fixes
* Update gfx.cpp
* [deci2server] fix deadlock when killing a Deci2Server
* add libxrandr to linux github test
* correct package name to libxrandr-dev
* set g_main_thread_id in exec_runtime
* add libxinerama to linux test packages
* correct the name
* add libxcursor1 package
* Update linux-workflow.yaml
* add libxi-dev
* fix constructor for g_main_thread_id
* fix submodules + use -nodisplay during tests
* move the gfx loop to its own function and use a lambda for exit conditions
* fix include
* fix include
* fix includes (for real this time)
2021-03-09 23:51:28 -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
9168f03289
[Compiler] Add get-info
( #306 )
...
* wip symbol info
* finish implementation
2021-03-04 10:33:59 -05:00
ManDude
e77478e2e6
[decompiler] Print floats as neatly as possible ( #307 )
...
* [decompiler] Print floats as neatly as possible
* style fixes
* more
* Update test.bat
* Add and fix tests
* Jesus christ fine
2021-03-04 00:47:46 -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
8f68d35cbb
[Decomp] Some more collision header files and speed up tests ( #296 )
...
* some more
* faster tests
* on by default
2021-03-01 11:15:24 -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
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
cadd014add
[Compiler] Support array fields in static objects ( #284 )
...
* first part of static inline array fields
* level h
2021-02-25 22:49:46 -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
ManDude
ac24b2ab15
[goalc-test] Apply windows cmd color fix (lg::initialize is not called here) ( #278 )
2021-02-22 01:03:14 -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
1b5b9a2469
add sqrt ( #270 )
2021-02-17 00:57:21 -05:00
Tyler Wilding
cdce4d9612
compiler: Support the majority of the remaining VU VF instructions ( #258 )
...
* compiler: Support the majority of the remaining VU VF instructions
- VWAIT
- VMADD variants
- VMSUB variants
- VSQRT
- VDIV
- outer product (VOPMULA + VOPMSUB)
* compiler: Fix some bugs / optimize some instructions
* tests/compiler: Add test coverage for new instructions
* docs: Add documentation for new inline assembly functions
* lint: Formatting / fix failing test
* Remove my comment about ftf/fsf encoding, it's been fixed
* address review feedback
* correct VSQRTPS implementation
2021-02-16 21:41:33 -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
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
water
b0780ce2c8
fix some instruction decodings
2021-02-13 12:05:50 -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
bb010g
2436a8a541
Nixpkgs support ( #228 )
...
* Use env shebangs
* CMake cleanup, install() invocations, & CTest
`ctest` & the `test` target work now
* Nixpkgs support
2021-02-03 21:29:46 -05:00
water111
45f74f078a
[Compiler] Implement and/or in the compiler instead of a macro ( #231 )
...
* fix sc
* doc update
* another doc update
2021-02-03 16:12:51 -05:00
water111
425cc6794c
[Compiler] Bug fixes ( #230 )
...
* fix method name and use-after-free during compile error
* doc fix
2021-02-03 11:07:47 -05:00
water111
bbe5a10d76
fix stuck inline test ( #229 )
2021-02-03 08:36:22 -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
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
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
water111
3331e9cd00
Replace spdlog ( #185 )
...
* remove spdlog
* clang format and fix windows
* add format shared
* windows sucks
2021-01-06 12:16:39 -05:00
Tyler Wilding
69f7f46477
Add Address Sanitizer support to MSVC and CMake ( #182 )
...
* msvc: Add Address Sanitizer
https://devblogs.microsoft.com/cppblog/addresssanitizer-asan-for-windows-with-msvc/
* cmake: Add Address Sanitizer
* docs: Update ReadME
* see if we can replicate the test failure
* windows fixes maybe
* cmake: Compile with gcc and clang (only coverage on
* hacky try again
* clean up
* fix clang issues
* linting
Co-authored-by: water <awaterford111445@gmail.com>
2021-01-04 23:32:51 -05:00
water111
feead303aa
better array indexing ( #176 )
2020-12-31 22:15:17 -05:00
water111
c8d382b35c
[Compiler] Improve spills and register backups ( #175 )
...
* xmm spill
* improve getting stack variables
* improve symbol getting
* update changelog
2020-12-31 15:59:11 -05:00
water111
a80b331c27
[Compiler] In-progress support for vector float (AVX) ( #171 )
...
* begin work on vf support
* split reg kind into reg hw kind and class, use class for ireg
* try test
* clang format
* add some more ops and some example functions
* better lvf on statics
* add documentation
2020-12-30 15:33:51 -05:00
water111
4d713d5c8c
[Runtime] misc fixes to runtime and listener ( #170 )
...
* misc runtime fixes
* clang format
2020-12-28 18:37:05 -05:00
water111
c811778d00
[Compiler] Add reset-here
option to colored and constrained rlet vars ( #169 )
...
* add reset-here to clear coloring at entry to rlet
* update doc
2020-12-27 14:21:48 -05:00
water111
6bf9d97c51
[Decompiler] Improve reverse field lookup ( #167 )
...
* start on new reverse lookup
* use new reverse lookup
2020-12-25 15:04:03 -05:00
water111
3355df809a
Add boxed array type ( #163 )
...
* add array
* support static arrays
2020-12-19 21:05:18 -05:00
water111
11a82bbf08
[Compiler] Add static data features ( #162 )
...
* support static pairs
* also support strings
* reorganize static stuff
* add test
* support inlined fields
* add missing type check
2020-12-19 15:21:29 -05:00
water111
ba919a069c
Add another kernel test, fix small bugs ( #156 )
...
* temp
* run function in process test
* windows debug
* debug
* update
* update
* again
* update
* fix same bug in debugger
2020-12-10 20:26:40 -05:00
water111
e05f3ceefc
Implement gkernel
: Part 2 ( #155 )
...
* update
* small fixes
* deactivate
* simple kernel test
2020-12-08 21:41:36 -05:00
water111
d86964985a
Improve Register Allocator ( #154 )
...
* before adding IRegSet stuff
* use bitsets for live analysis
* speed up
* add stack structures
* organize new better
2020-12-06 15:42:26 -05:00
water111
06918e1fea
Implement gkernel
: Part 1 ( #150 )
...
* start gkernel implementation
* progress
* more of kernel
* swap to new dispatcher, will it work on windows
* update
2020-12-05 17:09:46 -05:00
water111
90e5c023f1
Basic Inline Assembly ( #149 )
...
* basic inline assembly support
* fix rlet
* clean up detail in IR and update documentation
2020-12-04 12:57:10 -05:00
water111
ea479bee98
Add enums and some cleanup ( #148 )
...
* support enums
* better compiler warnings
* tweaks to build with clang
2020-12-02 19:51:42 -05:00
water111
71dda76e2b
Add some compiler features and documentation ( #147 )
...
* update doc
* add disassemble and type checking
* improve compiler error messages
2020-12-01 21:39:46 -05:00
water111
21fbdce7aa
[Compiler] Bitfield Types ( #146 )
...
* add the ability to define and read bitfield types
* new set
* add bitfield setting
* add static bitfields
2020-11-29 18:01:30 -05:00
water
e93b54347f
add float min max to the compiler
2020-11-29 10:46:14 -05:00
water
dc32b59217
update
2020-11-28 20:53:13 -05:00
water
5b4b5c238e
update
2020-11-28 19:59:23 -05:00
water111
09142d1712
Support "game count" and v4 objects ( #140 )
...
* generate object, but not supported in linker yet
* add link and tests
* update types
2020-11-24 20:48:38 -05:00
water
eb30fc88b0
fix compiler bugs
2020-11-22 20:10:33 -05:00
water111
19b8bb81c9
Add the STR RPC to overlord and game code ( #134 )
...
* work in progress streaming rpc, simple test is working
* actually add the test
* debug windows failure
* windows fix maybe
* windows 2
* use str-load-status
* update types
2020-11-22 12:59:55 -05:00
water111
460ec874bb
Add support for stack integers ( #135 )
...
* add support for stack integers
* update documentation
* revise value type stack variables
2020-11-22 12:22:19 -05:00
water111
660ef41136
Update documentation and clean up ( #129 )
...
* cleanup
* clean up file layout
2020-11-21 12:52:38 -05:00
water111
29e4ff9e51
remove match param ( #127 )
2020-11-20 20:17:37 -05:00
water111
953c1512db
Process Text Files in Decompiler ( #122 )
...
* begin support for v2
* export game text
* generate text files
* working text load
* fix windows
* add test and clean up game tests a bit
* load the right file
* add separate program to launch the data compiler
* add offline test script
2020-11-19 21:22:16 -05:00
water111
ae053870c3
support escaping any character ( #125 )
2020-11-17 15:25:48 -05:00
water111
951f31878e
[Source Line Debugger] Tracking objects and IR ( #115 )
...
* track where segments are when debugging
* missing windows include
* figure out what function we're in
* addr to IR is working
2020-11-13 22:33:57 -05:00
water111
71a894c393
move GOAL stack to GOAL memory ( #114 )
...
* move GOAL code stack to GOAL memory
* fix win arg reg and check rsp in debugger
* fix windows maybe and fix some incorrect logging formatters
2020-11-06 21:42:05 -05:00
water111
c09541fa98
Add some debugger memory utilities ( #109 )
...
* add some memory utilities
* run waitpid in a separate thread and support very simple breakpoints
* fix breakpoints
* add missing windows stub function
* fix error message on exit
2020-11-06 13:59:39 -05:00
water111
566dc6070f
add zydis library and a simple test ( #108 )
2020-10-31 14:31:13 -04:00
water111
0451a06d76
Set up the compiler to ptrace the runtime ( #107 )
...
* set up the compiler to ptrace the runtime
* clang format
* move debugger state to a separate Debugger class
* support registers and break and continue
* documentation and fix windows
* make listener part of compiler, not a separate library
* implement memory read and write
* fix for windows
2020-10-31 14:07:43 -04:00
water111
a45d180f2c
Try to speed up the build ( #106 )
...
* first attempt
* attempt 2
* windows and formatting fix
2020-10-29 21:27:52 -04:00
water111
dfe129373a
fix float loads, add dgo loading to game test ( #101 )
...
* fix float loads, add dgo loading to game test
* build and load dgos in order
2020-10-25 20:30:25 -04:00
water111
b56025412b
Recognize auto-generated inspect methods and create deftype
s from them ( #95 )
...
- Recognize new type definitions/parents/type flags in the decompiler
- Analyze autogenerated inspect methods and dump guesses at fields to a file
- Utility functions for accessing static data by label
- Better ordering in the decompiler to go through functions in the order they appeared in the source
- Added a decent number of types to `all-types.gc` based on the new field analyzer
- Correct a few `int`/`integer` mistakes in `gcommon.gc` (this should really be a warning)
- Correct a few type issues in `gcommon` and `gkernel-h`
- Option in the decompiler to be strict about `define-extern` redefining a type of a symbol
- Add a test to check consistency in types between `all-types.gc` (used by decompiler) and `goal_src` (used by the compiler)
2020-10-24 22:51:40 -04:00
water111
fc1a8f37c6
Partially Implement Decompiler Type Analysis ( #90 )
...
* implement basic framework for decompiler type analysis
* before type system changes
* add some decompiler stuff to the type system
* try algorithm on a few functions
2020-10-18 15:44:19 -04:00
water111
d5d0d7f924
Add compiler features for gkernel ( #83 )
...
* add some type stuff for gkernel
* more tweaks
* blah
* more little tweaks and more of gkernel
* add static structures with integer fields but not basics
* static structures
* update gkernel
2020-10-16 17:08:26 -04:00
water111
3616b790bd
Add more array stuff and clean up field access ( #80 )
...
* implement some array stuff and clean up field access
* update goal change log
2020-10-14 13:42:14 -04:00
Tyler Wilding
68d0bd2d7b
Merge remote-tracking branch 'water111/master' into ci/actions-improvements
2020-10-09 21:40:40 -04:00
water
f7abe9c5f8
clean up some warnings and add some extra integer tests
2020-10-09 21:28:41 -04:00
Tyler Wilding
b39b6c8ce6
Unrelated: Add back pretty-print tests
2020-10-09 21:19:33 -04:00
Tyler Wilding
4429632618
Prevent overflow causing negative numbers to be positive
2020-10-09 20:45:55 -04:00
Tyler Wilding
bf3344cdd3
Remove negative hex test, windows is too good
2020-10-09 20:33:35 -04:00
Tyler Wilding
c34c0a898d
Use ubuntu 20.04 which has GCC 8 atleast
2020-10-09 20:15:44 -04:00
Tyler Wilding
f712c615ce
Fix remaining failing tests
2020-10-09 19:44:16 -04:00
Tyler Wilding
76bede157d
Merge remote-tracking branch 'water111/master' into generative-tests
2020-10-09 13:31:08 -04:00
Tyler Wilding
b99b63af65
lint: Clang format
2020-10-09 13:24:55 -04:00
Tyler Wilding
83f2751795
Make all tests hermetic, only the tests with kernel left
2020-10-09 13:23:41 -04:00
Tyler Wilding
274418f12a
Reduce time on windows pprint test until pretty-printer is improved
2020-10-08 23:48:36 -04:00
Tyler Wilding
df6e6dd2a2
Create new categorized test classes, for the most part just a copy of current tests into new framework
2020-10-08 00:06:48 -04:00
Tyler Wilding
097a9157f5
Copy over LISP code
2020-10-08 00:05:01 -04:00
water111
b102d22dd9
Replace Form
with goos::Object
( #64 )
...
* add pretty printing to goos form
* temp
* fix format
* fix format
* fix windows build
* again
* windows
* Revert "windows"
This reverts commit b7d448e733
.
* windows again
* give up and just add a getter function
2020-10-04 17:08:10 -04:00
Tyler Wilding
663453769c
Final polish on the integer tests, time to start converting the rest
2020-10-03 18:32:01 -04:00
Tyler Wilding
282e53f1be
Concept is working, just needs some polish and can start translating the tests
2020-09-26 18:48:40 -04:00
water111
c9b53d51ff
Compiler Cleanup (Part 2) ( #56 )
...
* check on windows
* fix windows build
* version test
* clean up - will it work on windows
* fix formatting
2020-09-25 21:11:27 -04:00
water111
2d11e44eaf
Compiler Cleanup and Documentation ( #54 )
...
* start cleanup
* fix typos
* fix syntax highlighting in doc
* lots of documentation updates
* clean and add tests
* more documentation and more error messages
* more document and try building kernel differently
2020-09-24 17:19:23 -04:00
water111
27b865c0df
Add methods and pointers ( #53 )
...
* method calls and sorting
* add more tests and fix some alias stuff
2020-09-19 16:50:42 -04:00
water111
cee6c21603
Add basic features for types and objects ( #52 )
...
* started adding simple functions in gcommon
* more tests and features
* more tests, debug windows
* debug prints for windows
* back up some regs for windows
* remove debugging prints
2020-09-19 13:22:14 -04:00
water111
c7c342ce7e
Add defmethod and some uses of the deref operator ( #51 )
...
* add tests for various xmms
* use unaligned stores and loads to back up and restore xmm128s and also fix argument spilling bug
* add deftype
* add deref and fix some method _type_ things
2020-09-18 22:02:27 -04:00
water111
abcd444a3b
Add deftype ( #48 )
...
* initial deftype implementation
* fix library setup for windows
* implement deftype
* fix memory bug
* fix formatting
2020-09-17 21:47:52 -04:00
water
ca3acdb5ec
add format order test and fix reg order for windows
2020-09-15 18:49:55 -04:00
water
aadc274a89
Remove bad format test
2020-09-14 20:35:31 -04:00
water
8308bfb451
Merge branch 'master' of https://github.com/water111/jak-project into w/math_5
2020-09-14 20:31:46 -04:00
water
a47620fd6d
add more math
2020-09-14 20:24:05 -04:00
Tyler Wilding
9737dfad34
Add #pragma once to all headers
...
Resolves #19
2020-09-13 21:36:35 -04:00
water
9ec9b5a22a
add conditional stuff
2020-09-13 17:34:02 -04:00
water
e7f8620c92
add floats and inline stuff
2020-09-13 10:44:12 -04:00
water111
90a7e9b4b9
Add addition and subtraction for integers, build macros, dgo building, and build/load test ( #35 )
...
* see if math works on windows
* add dgo
* windows debug
* windows debug 2
* one more debug try
* add extra debug print and change logic for slashes
* update
* again
* try again
* remove build game
* remove build game
* add back build-game
* remove runtime from test
* test
* reduce number of files
* go to c++ 14
* big stacks
* increase stack size again
* clean up cmake files
2020-09-12 20:41:12 -04:00
water111
d56540f8c0
Add lambda and static objects ( #30 )
...
* add some more tests for let
* support static strings
* add function calling
* add prints for windows debgu
* one test only
* try swapping r14 and r15 in windows
* swap back
* disable defun for now
* fix massive bug
* fix formatting
2020-09-12 13:11:42 -04:00
water111
de5aa7e5e4
Move duplicated utilities to the common util folder and remove NEXT_DIR
( #29 )
...
* move things to the common library and remove next_dir
* fix for windows
* one last windows fix
* last fix for real this time
* debug listener test
* fix listener threading bug
2020-09-10 20:03:31 -04:00
blahpy
89e8ec40ed
Merge branch 'master' into master
2020-09-11 09:18:12 +12:00
water111
01883da47e
Fix Listener Socket Timeout on Windows ( #28 )
...
* try checking for timeouts differently on windows
* hopefully this test fails on windows
* hopefully this test passes on windows
* remove debug prints
* remove commented otu code
2020-09-09 20:14:13 -04:00
blahpy
efe94dca79
Format using clang-format
2020-09-10 10:35:29 +12:00
blahpy
9f1d6792e2
Fix errors in common_util
2020-09-09 18:41:45 +12:00
blahpy
eb886d0c45
Upload new files
2020-09-09 16:54:16 +12:00
water
24e79f66bc
try increasing timeouts and decreasing test iterations to make test shorter
2020-09-08 21:26:09 -04:00
water
d52ec34a22
Merge branch 'master' of https://github.com/water111/jak-project into w/ir
2020-09-08 21:05:22 -04:00
water111
e756e3559c
Merge pull request #15 from xTVaser/ci/codecov
...
Add Coveralls.io
2020-09-08 21:04:30 -04:00
water
551d989732
so close
2020-09-08 20:01:46 -04:00
water
f0328dcc92
Merge branch 'master' of https://github.com/water111/jak-project into w/ir
2020-09-08 19:39:39 -04:00
water
c9e99b8ebe
add a separate cmake configuration for code coverage builds
2020-09-08 19:15:38 -04:00
Tyler Wilding
fff501d786
Corrections to fix linux, and further cleanup
2020-09-08 19:15:14 -04:00
Tyler Wilding
570d64c6a3
Add coverage badge
2020-09-08 16:08:52 -04:00
Tyler Wilding
8f1ddca825
Add Coveralls.io
2020-09-08 15:47:25 -04:00
Tyler Wilding
871f1b43b0
Remove the problematic Multiple Deci tests
2020-09-08 14:12:04 -04:00
Tyler Wilding
84e0bee6f4
Use shim in Listener/Deci2Server
2020-09-07 19:59:44 -04:00
water
1394cf13cd
17 of 124 compiler tests passing
2020-09-07 19:17:48 -04:00
water
ee4eb9f128
add some basic symbol stuff
2020-09-07 13:28:16 -04:00
water
d49b01e310
working return integer tests as part of gtest
2020-09-06 16:58:25 -04:00
water111
2075dd66b6
Add ObjectGenerator and Register Allocator ( #10 )
...
* start the ObjectFileGenerator
* finish v3 generation
* add analysis for register allocator
* add register allocator
* fix const
* fix build
* fix formatting for clang-format
* attempt to fix windows build
* windows 2
* windows 3
* windows 4
* windows 5
* windows 6
2020-09-05 16:37:37 -04:00
Tyler Wilding
dcde103c26
Address compiler and test failures
2020-09-03 23:56:35 -04:00
Tyler Wilding
ef09eb12c8
Add a bunch of #ifdefs to keep things working as expected on linux
2020-09-03 22:24:50 -04:00
Tyler Wilding
f68f220e5b
Merge remote-tracking branch 'water111/master' into windows-nodeci
2020-09-03 20:16:28 -04:00
Tyler Wilding
f231fc9be1
Merge branch 'windows-nodeci-before-merge' into windows-nodeci
2020-09-03 20:06:14 -04:00
water
ba37e241ce
all basic integer and floating point instructions are implemented
2020-09-02 17:34:33 -04:00
water
4723153a4b
more progress on emitter integers
2020-09-02 16:24:13 -04:00
doctaweed
8680e8ecb0
Update CMakeLists.txt
2020-09-01 17:37:02 -06:00
water
bea7167fbb
add rip addressing
2020-08-30 20:39:39 -04:00
water
92e1c0b496
more loads and stores
2020-08-30 10:56:42 -04:00
water
5100aa6a30
add some stores
2020-08-29 22:41:46 -04:00
water
a2e04508f6
add all loads
2020-08-29 21:04:21 -04:00
water
bf7a496bb0
implement some loads and stores
2020-08-29 19:13:29 -04:00
Tyler Wilding
b2a6364533
Comment out only remaining broken test
2020-08-29 17:11:49 -04:00
doctaweed
b9216e9a91
Gtest Fixes
...
All 16 tests in test_reader.cpp pass as expected now
2020-08-29 15:10:46 -06:00
doctaweed
ded5e3e4c0
Gtest fixes
2020-08-29 14:15:58 -06:00
Tyler Wilding
a87060320a
Cleaned up some unneeded changes
2020-08-29 15:11:16 -04:00
Tyler Wilding
14c1b8be74
working my way through the tests
2020-08-29 14:52:45 -04:00
Tyler Wilding
d38ec3f44c
Add some premade launch configs, and fix google test
2020-08-29 00:01:55 -04:00
water
2ac07ae6bd
start docs
2020-08-28 20:16:30 -04:00
water
485f4aa1f5
one more print spam fix
2020-08-28 14:33:08 -04:00
water
bdde6d933c
update doc and finish lca implementation
2020-08-28 14:29:38 -04:00
water
75f63d8ff3
add typecheck and tests
2020-08-27 16:47:54 -04:00
water
a32e6288ac
Merge branch 'master' of https://github.com/water111/jak-project into w/type-system
2020-08-26 23:29:23 -04:00
water
d2992ba4fe
type system method tests
2020-08-26 23:07:55 -04:00
Tyler Wilding
51c23aaede
A whole bunch of cmake fixes
2020-08-26 22:23:16 -04:00
Tyler Wilding
e6e96400c8
commit doctor's latest changes
2020-08-26 21:02:24 -04:00
Tyler Wilding
3c4fcbdd34
clang-format all the things
2020-08-26 01:21:33 -04:00
Tyler Wilding
50814f8529
Add Github Actions and cleanup most test spam
2020-08-26 01:19:54 -04:00
water
7b641170bf
begin work on new type system
2020-08-24 00:06:07 -04:00
water
fab35c46bd
add old goal tests, just as a reference
2020-08-22 22:32:18 -04:00
water
acf086a3d2
check in existing work
2020-08-22 22:30:12 -04:00