In the 1.1.9 release of AssetRipper Premium, I implemented a traditional decompiler for recovering code compiled with Il2Cpp. It can be enabled on the settings page by setting the script content level to 3.
Excluded Assemblies
For performance, mscorlib and any assemblies whose names start with System or Unity have been excluded from analysis. The source code for those assemblies should be publicly available, in one form or another.
Why not AI?
While I firmly believe in my AI decompiler, I felt that releasing a traditional decompiler first would be best. The traditional decompiler:
- Is at least 1 order of magnitude faster.
- Does not require downloading machine learning libraries, which are often multiple gigabytes.
- Gives a benchmark from which to compare (and justify) the AI decompiler.
- Provides recovery functionality to users while I continue to improve the AI decompiler.
Given the above benefits, I do not foresee myself abandoning the traditional decompiler even after releasing the AI decompiler.
Output Quality
As I noted above, improvements are ongoing. This is only the first iteration. I didn't take any statistics, but from a quick glance, it appears that the success rate is currently between 10 and 20 percent of methods on x86 games. Other platforms have lower rates of recovery.