Iñigo Valentin 7b7ad59a2c Initial commit. Minor modifications over QGears 4 年之前
..
common 7b7ad59a2c Initial commit. Minor modifications over QGears 4 年之前
decompiler 7b7ad59a2c Initial commit. Minor modifications over QGears 4 年之前
.gitignore 7b7ad59a2c Initial commit. Minor modifications over QGears 4 年之前
.gitmodules 7b7ad59a2c Initial commit. Minor modifications over QGears 4 年之前
.travis.yml 7b7ad59a2c Initial commit. Minor modifications over QGears 4 年之前
CMakeLists.txt 7b7ad59a2c Initial commit. Minor modifications over QGears 4 年之前
LICENSE 7b7ad59a2c Initial commit. Minor modifications over QGears 4 年之前
README.md 7b7ad59a2c Initial commit. Minor modifications over QGears 4 年之前

README.md

Simple Universal Decompilation Machine Build Status Coverity Scan Build Status Coverage Status

This project aims to provide a decompiler framework for simple byte code languages that do not have specific structuring instructions (while/for/if).

The idea is that you will implement a disassmebler that groups instructions into bespoke types (conditional jumps, unconditional jumps, load store, etc). Then SUDM will apply the generic structing. You'll also implement a code generator that will map a scripting languages kernel functions onto the target output, for example if the game calls function 0x28 you can output this as the string "do_save();". Additionally you can also apply extra CFG post processing.

The initial goal is to support disassmeblers for Final Fantasy 7,8 and 9 "field" script bytecode, and a LUA back end (currently only C output is supported).

This work is heavily based on Michael Madsen's decompiler work for SCUMMVM's decompiler.