Commit Graph

31 Commits

Author SHA1 Message Date
water111 78cde74d5a update readme and fix always playing str (#1139)
* update readme deps

* replace assert

* bump timeout

* fix memory corruption in kernel

* use unknown if level name is invalid
2022-02-08 19:02:47 -05:00
ManDude c9204f2a9b Fix Windows asserts (#1045)
* fix release mode asserts

* clang

* dummy
2022-01-02 18:02:10 -05:00
Tyler Wilding c6f0c5cd29 decomp: merge all s6-* remappings and finish training-obs | villagep-obs | lavatube-obs | rolling-robber | snow-obs (#1018)
* decompiler: merge all `s6-*` usages

* decomp: finish `training-obs`

* decomp: finish `rolling-robber`

* decomp: finish `villagep-obs`

* decomp: finish `lavatube-obs`

* skip function in `lavatube-obs` over #1029

* closes #1029

* kick nasm

* merge s6 and sp in variable naming pass

* revert my fix

* fix mistakes and a bad method signature

Co-authored-by: water111 <awaterford111445@gmail.com>
2021-12-28 23:16:42 -05:00
water111 083202929c [graphics] tfrag3 renderer (#978)
* begin work

* work

* working objs

* exporting

* it works

* before some time of day fixes

* add time of day interp and also fix zbuffer

* some small blending fixes

* improve randomess

* clean up extraction and missing blend mode

* culling, time of day, more level fixes

* more cleanup

* cleanup memory usage

* windows fix
2021-12-04 12:33:18 -05:00
water 78928e4c04 temp 2021-08-14 23:15:10 -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 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 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 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
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 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
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 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 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 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 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 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 65ffe83468 [Decompiler] Decompile let (#309)
* test

* fix bug

* fix tests for let

* missing formatting fix
2021-03-05 18:48:01 -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 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 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
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 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
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 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 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 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
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