Commit Graph
100 Commits
Author SHA1 Message Date
Joshua "Yoshi" Askharoun 22e78658ce First pass at debug adapter support 2025-11-30 13:37:39 -06:00
Joshua "Yoshi" Askharoun 75efccc271 Enhancements to UIXC debug command 2025-11-29 18:44:08 -06:00
Joshua "Yoshi" Askharoun 288acbe21e Initial implementation of UIX Script debug symbols 2025-11-29 18:43:39 -06:00
Joshua "Yoshi" Askharoun a8f1f2c305 Implement symbols for XML elements 2025-11-29 01:32:09 -06:00
Joshua "Yoshi" Askharoun 1aa21ee310 Checking in NowPlayingMusicBackground samples 2025-11-28 21:27:15 -06:00
Joshua "Yoshi" Askharoun c68fb6fc1f Begin work on UIXC debug command 2025-11-28 18:06:49 -06:00
Joshua "Yoshi" Askharoun 806d697e79 XML debug symbols 2025-11-28 18:06:19 -06:00
Joshua "Yoshi" Askharoun 396d4f4015 null is not a valid type 2025-11-24 03:01:57 -06:00
Joshua "Yoshi" Askharoun 3a1bb61493 Mark INIT instruction as handled 2025-11-24 02:42:41 -06:00
Joshua "Yoshi" Askharoun 3557437daf Temporarily disable # syntax for refresh methods 2025-11-24 02:36:24 -06:00
Joshua "Yoshi" Askharoun e0d3771a63 Recognize object creation syntax when inferring types 2025-11-24 02:31:23 -06:00
Joshua "Yoshi" Askharoun ef2de0a2d1 Prevent DIS from producing invalid statements 2025-11-24 02:18:59 -06:00
Joshua "Yoshi" Askharoun f0f067759a Unify invocation and member access type inference, add support for chained accesses 2025-11-24 02:10:55 -06:00
Joshua "Yoshi" Askharoun d8c073bd3d Add special handling for SingleModelItem 2025-11-24 01:22:19 -06:00
Yoshi Askharoun 8c63355a16 Update Iris and add sample of new CFA 2025-09-27 21:53:43 -05:00
Yoshi Askharoun 47e368ab24 Remove old test code 2025-09-27 03:08:35 -05:00
Yoshi Askharoun 97c6e7d1c2 [WIP] Build source map for scripts 2025-09-27 03:08:25 -05:00
Yoshi Askharoun bbf9a6b87b [WIP] Associate offsets with decompiled code 2025-09-27 02:19:16 -05:00
Yoshi Askharoun 614b317c19 Use CDATA for embedded scripts 2025-09-26 20:13:15 -05:00
Yoshi Askharoun 8e84eaafca Keep track of loop variables as scoped locals 2025-09-26 13:26:19 -05:00
Yoshi Askharoun 6bf7589819 Remove unused braek/continue tracking 2025-09-26 13:20:59 -05:00
Yoshi Askharoun 89fd689001 Foreach decompilation 2025-09-26 13:20:12 -05:00
Yoshi Askharoun 3fdd482fad Move blockStack to CFA class 2025-09-25 16:13:23 -05:00
Yoshi Askharoun 8fa63ee996 Remove dead control block code 2025-09-25 15:54:17 -05:00
Yoshi Askharoun 62216f0fad Make if and foreach constructs compatible 2025-09-25 15:52:13 -05:00
Yoshi Askharoun 587dcfa3b5 [WIP] Support for basic foreach loops 2025-09-24 21:52:20 -05:00
Yoshi Askharoun ee34decfd4 Add foreach tests 2025-09-24 19:21:30 -05:00
Yoshi Askharoun 5d6dd89f30 Support getting type info when writing symbols to symbols 2025-09-24 19:21:12 -05:00
Yoshi Askharoun 2a8aca41c1 Make CFA an instance class 2025-09-24 18:08:14 -05:00
Yoshi Askharoun f8d4a5e65d Slight optimizations to dominator calc 2025-09-24 17:58:25 -05:00
Yoshi Askharoun f9ab6c58c1 Add brute-force dominance computation 2025-09-24 17:46:17 -05:00
Yoshi Askharoun 7a36d81647 Slight cleanup to conditional decompilation 2025-09-24 10:36:24 -05:00
Yoshi Askharoun 7f83b92fcd [WIP] If-elseif-else clause decompilation 2025-09-24 10:34:28 -05:00
Yoshi Askharoun db5e92beeb Add more CFA if-elseif-else test cases 2025-09-24 10:32:23 -05:00
Yoshi Askharoun 53c608553c Format sample 2025-09-21 21:56:16 -05:00
Yoshi Askharoun 4fba315791 more launchSettings 2025-09-21 21:25:30 -05:00
Yoshi Askharoun 7ceeb13d06 Commit decomp samples 2025-09-21 21:25:29 -05:00
Yoshi Askharoun 92886feac7 Bugfix 2025-09-21 21:25:29 -05:00
Yoshi Askharoun 2587985a9b Name attributes on dictionary entries should always be first 2025-09-21 21:25:29 -05:00
Yoshi Askharoun 983474c5f1 Add resx command 2025-09-21 21:25:29 -05:00
Yoshi Askharoun 768f14c46f Add type guessing for property and local symbol references 2025-09-21 21:25:28 -05:00
Yoshi Askharoun d6d3aabdcb Correct syntax for nested listen 2025-09-21 21:25:28 -05:00
Yoshi Askharoun 8c3629c7b5 Support immediate dictionary adds 2025-09-21 21:25:28 -05:00
Yoshi Askharoun 703e650e40 Add required properties 2025-09-21 21:25:27 -05:00
Yoshi Askharoun 69c543a234 Implement triggers with chained member accesses 2025-09-21 21:25:27 -05:00
Yoshi Askharoun d29a7ab839 Minor fixes to JMP statements 2025-09-21 21:25:27 -05:00
Yoshi Askharoun d72d868bec Recognize predefined from equivalent types 2025-09-21 21:25:27 -05:00
Yoshi Askharoun e689e8d3c9 Declare scoped locals on first assignment 2025-09-21 21:25:27 -05:00
Yoshi Askharoun 88acf9c402 [WIP] More accurate expression simplifier 2025-09-21 21:25:26 -05:00
Yoshi Askharoun 47ced82b74 Methods go in their own XML element 2025-09-21 21:25:26 -05:00
Yoshi Askharoun 4e4f5d3055 Add if-elseif-else sample with multiple conditions 2025-09-21 21:21:44 -05:00
Yoshi Askharoun 7cc0702c14 Add special handling for known OPR instructions 2025-09-21 21:19:14 -05:00
Yoshi Askharoun ebb41f0384 Add if-elseif-else decomp test 2025-09-20 11:52:28 -05:00
Yoshi Askharoun e2b880f5c4 Update Iris 2025-09-20 11:13:51 -05:00
Yoshi Askharoun 189ae83130 Slightly more intelligent way of detecting expressions that can also be statements 2025-08-04 00:59:23 -05:00
Yoshi Askharoun 32c2b97bf0 Implement some decomp of listeners 2025-08-03 22:06:22 -05:00
Yoshi Askharoun cf2b553ba0 Include FinalEvaluate attribute 2025-08-02 22:58:32 -05:00
Yoshi Askharoun ad64ca47d7 Enable final evaluate offsets as TODO 2025-08-02 21:37:34 -05:00
Yoshi Askharoun f82630c6c1 Guess expression return types 2025-08-02 21:37:15 -05:00
Yoshi Askharoun 3a6dfd9f49 Log suspicious instructions 2025-08-02 21:36:40 -05:00
Yoshi Askharoun bab5aa4542 Implement ConstructFromString instruction in init methods 2025-08-02 21:35:07 -05:00
Yoshi Askharoun 055ac61f9a Implement negation of != 2025-08-02 21:34:36 -05:00
Yoshi Askharoun 810fc8b802 Implement TypeOf and ConvertType instructions 2025-08-02 21:34:17 -05:00
Yoshi Askharoun eede0200d2 Simplify parenthesis 2025-08-02 21:32:35 -05:00
Yoshi Askharoun f491df4c66 Parenthesize expressions used with operators 2025-07-28 23:27:25 -05:00
Yoshi Askharoun c67e9728f9 Include virtual and override modifiers to decomp 2025-07-28 23:05:16 -05:00
Yoshi Askharoun fb3b331255 Support list/dictionary bracket access 2025-07-28 19:51:25 -05:00
Yoshi Askharoun a0f6f1f66e Finish basic CFA implementation 2025-07-27 13:34:56 -05:00
Yoshi Askharoun 2719ac2f26 [WIP] Initial attempt at CFA 2025-07-27 11:45:49 -05:00
Yoshi Askharoun a6848ec461 Fix mapping of MathNegate operator 2025-07-25 21:57:58 -05:00
Yoshi Askharoun 47be486ada Invert if for logical not 2025-07-25 16:47:04 -05:00
Yoshi Askharoun 55829c7774 Include return void statement when required; Temporarily use gotos 2025-07-25 16:32:34 -05:00
Yoshi Askharoun 0e71917f34 Apply De Morgan's to simplify negations 2025-07-24 22:59:49 -05:00
Yoshi Askharoun 6c679f7a0f Remove old VSIX and ZuneUIXTools projects 2025-07-23 19:51:30 -05:00
Yoshi Askharoun eb7e5f6f0b Don't ignore non-void returns 2025-07-21 02:26:32 -05:00
Yoshi Askharoun 27b248c704 Correct negation is ISC 2025-07-21 02:02:32 -05:00
Yoshi Askharoun 2e8f22b963 [WIP] Class method exports 2025-07-21 01:46:38 -05:00
Yoshi Askharoun e74c47e480 Remove old block handling 2025-07-20 10:27:03 -05:00
Yoshi Askharoun 05d00fcdea Remove unused classes 2025-07-20 10:24:49 -05:00
Yoshi Askharoun 14505cd006 Use boolean literals in scripts 2025-07-20 10:24:35 -05:00
Yoshi Askharoun 8cbf503008 Correct inverted if blocks in scripts 2025-07-20 10:16:46 -05:00
Yoshi Askharoun 9849ca2a98 Update Iris 2025-07-20 09:44:26 -05:00
Yoshi Askharoun dc7908b6a9 Fix incorrect PSHT decomp 2025-07-20 02:09:49 -05:00
Yoshi Askharoun 4325bc3e73 More inline scripts, shared classes 2025-07-20 02:03:16 -05:00
Yoshi Askharoun 77fe53fcc3 Initial AboutDialog.uix 4.8 decomp 2025-07-18 20:11:53 -05:00
Yoshi Askharoun e9c75074ee Enable decompilation of Locals block 2025-07-18 20:01:49 -05:00
Yoshi Askharoun b72918726b Guess type of null dictionary items 2025-07-18 19:57:50 -05:00
Yoshi Askharoun a7f7e0e3d4 Support exported types without base types (e.g. Class) 2025-07-18 19:57:15 -05:00
Yoshi Askharoun 044615088d Implement If blocks in scripts 2025-07-18 14:04:06 -05:00
Yoshi Askharoun 15b050a343 Use stack of blocks 2025-07-18 00:43:22 -05:00
Yoshi Askharoun f18920fd33 [WIP] First pass at script decompilation 2025-07-18 00:23:23 -05:00
Yoshi Askharoun 059e143980 Fix namespaces on element property assignments 2025-07-17 18:32:28 -05:00
Yoshi Askharoun 2a76d02461 Support content init, PLAD, PGET/P/T, LSYM, and serialization of complex objects with simple properties 2025-07-17 17:55:04 -05:00
Yoshi Askharoun 64f7a445eb Support method calls on instances 2025-07-17 17:52:57 -05:00
Yoshi Askharoun 8a4b3853b2 Use switch 2025-07-17 15:29:51 -05:00
Yoshi Askharoun 52d2fdb10b Move init method analysis 2025-07-17 15:26:17 -05:00
Yoshi Askharoun 27086b73a8 Move common decompiler state to new class 2025-07-17 14:30:19 -05:00
Yoshi Askharoun 109c44e8eb Genericize conversions from instance/expressions to XML 2025-07-17 14:07:44 -05:00
Yoshi Askharoun c4a8be37cb [WIP] Start handling inline expressions 2025-07-17 00:46:05 -05:00
Yoshi Askharoun 2f09fbf67c [WIP] Static analysis of XML constructors 2025-07-16 23:00:49 -05:00