Skip to content

Releases: maybegreat48/GTA-V-Script-Decompiler

1.1

16 Oct 14:45
Compare
Choose a tag to compare
  • Redesigned type system
  • Major optimizations (10x faster decompile)
  • Label display improvements
  • Ternary operator
  • String deobfuscation
  • More functions and enums added to database
  • Made updating crossmap easier
  • Ran Visual Studio's "Code Cleanup" on solution
  • Many other bug fixes and improvements

1.0

08 Oct 18:22
90fef9b
Compare
Choose a tag to compare
1.0

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