Commit graph

210 commits

Author SHA1 Message Date
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
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 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 09c09ce35f
allow aliasing of registers in variables if we explictly ask for it (#711) 2021-07-22 20:14:08 -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 f6d5952498
[decompiler] handle nested conditionals and gotos 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 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 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 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
water111 a81aef889a
Level load test (#656)
* tweaks for loading VI1

* temp

* clean up
2021-06-30 19:20:31 -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 9433724bbd
another fix for forward declared types (#647) 2021-06-28 20:34:13 -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
water111 2506325f30
fix cast bug (#640) 2021-06-27 22:23:27 -04:00
water111 bfc1173ed5
Clean up files in kernel (#625)
* clean up gcommon

* cleanup kernel
2021-06-25 17:55:50 -04:00
water111 4f8403d8e6
support type-ref (#613) 2021-06-20 12:59:39 -04:00
ManDude 46b83bda2a
[decomp] debug (#607)
* [decomp] `debug`

* shut up
2021-06-19 14:24:55 -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
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 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 63821755e6
[compiler] add psize-of (#564) 2021-06-06 23:02:00 -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
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 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 0f0902eabf
add config option for changing cond splitting behavior (#522) 2021-05-24 19:52:19 -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
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 79d10979da
[decomp] math-camera (#491)
* decompile math camera

* missing line
2021-05-15 20:08:08 -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 0ab916e122
fix quote issue and decompile level-info (#474) 2021-05-12 21:57:19 -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 1d72e79df8
[repl] Always reset runtime before disconnecting (#448) 2021-05-11 15:14:09 -04:00
ManDude fef9b139d7
Force-enable assert on release mode Windows build (#440) 2021-05-10 23:03:56 -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 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
Tyler Wilding 7c182db7ea
Compiler: Auto-generate inspect methods for bitfields (#407)
* goalc: Auto-generate inspect methods for bitfields

* goalc: Don't generate inspect methods for 128-bit bitfields
2021-05-01 15:29:56 -04:00
Tyler Wilding 44fa183922
repl: Add auto-listening capabilities -auto-lt (#405)
Closes #403
2021-05-01 10:33:41 -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