Skip to content

1.0

Compare
Choose a tag to compare
@maybegreat48 maybegreat48 released this 08 Oct 18:22
· 67 commits to master since this release
90fef9b

Initial release of the redesigned decompiler

Features:

  • Now decompiles into structured AST which is converted into plaintext
  • Faster decompile times due to a single-pass method
  • Better spacing between statements and blocks
  • Added for loops!
  • Somewhat better indirect call syntax
  • Uses natives.json directly instead of some strange custom file format
  • IDA and dnSpy style automatic local names
  • Ability to name and type functions in a persistent way through the function database, some functions are already included!
  • High-level handle types like Entity and Player
  • Enum support with many enums already added
  • GXT2 text label reverser
  • A basic disassembler
  • Create patterns and patches directly from the disassembler, obsoleting the Ghidra plugin
  • Fixed lag with the output text box (selecting and scrolling is now 10 to 100 times faster)
  • Progress bar for opening/exporting files
  • More things I can't recall

Known Bugs:

  • Produces invalid output on functions that have strange constructs (like gotos and continues in a loop)
  • The hex index thing is no longer implemented (but I doubt anyone would use that)
  • Type inference is still extremely poor

Removed:

  • Console support (probably too much effort to maintain)
  • Export headers and native tables (apparently used by an old version of SC-CL)

TODO:

  • Documentation
  • Structs
  • Save global type info
  • Redesign the type system to no longer use Stack.DataType
  • More patches
  • ...

Feel free to open an issue if you have found a bug