Skip to content

Releases: BepInEx/Il2CppInterop

v1.1.4

30 Sep 17:08
1224a92

Choose a tag to compare

NOTE

The project has been refactored and renamed from Il2CppUnhollower!
Most of the changes are breaking, so don't naïvely upgrade your plugins and packages!

Please refer to changelog below for more information. Note that old Il2CppUnhollower assemblies are still available, and the code can be found in legacy-unhollower branch.

Stable releases are now available via NuGet.org!

Changelog

Fixes

  • Runtime: Fix injecting methods with struct parameters on 32-bit
  • Runtime: Fix patching methods returning large structs

v1.1.3

10 Sep 19:03

Choose a tag to compare

NOTE

The project has been refactored and renamed from Il2CppUnhollower!
Most of the changes are breaking, so don't naïvely upgrade your plugins and packages!

Please refer to changelog below for more information. Note that old Il2CppUnhollower assemblies are still available, and the code can be found in legacy-unhollower branch.

Stable releases are now available via NuGet.org!

Changelog

Fixes

  • Runtime: Fix crashes in some cases when resolving GetDefaultFieldValue

v1.1.2

08 Sep 17:22

Choose a tag to compare

NOTE

The project has been refactored and renamed from Il2CppUnhollower!
Most of the changes are breaking, so don't naïvely upgrade your plugins and packages!

Please refer to changelog below for more information. Note that old Il2CppUnhollower assemblies are still available, and the code can be found in legacy-unhollower branch.

Stable releases are now available via NuGet.org!

Changelog

Fixes

  • Runtime: Resolve Class::GetDefaultFieldValue through ICall (#42 by @Kasuromi)

v1.1.1

29 Aug 19:07
9f73743

Choose a tag to compare

NOTE

The project has been refactored and renamed from Il2CppUnhollower!
Most of the changes are breaking, so don't naïvely upgrade your plugins and packages!

Please refer to changelog below for more information. Note that old Il2CppUnhollower assemblies are still available, and the code can be found in legacy-unhollower branch.

Stable releases are now available via NuGet.org!

Changelog

Fixes

  • Generator: Fix params array overload generation (#38)
  • HarmonySupport: Fix handling struct parameter handling on x86
  • Generator: Fix base type not being cloned correctly for some types

v1.1.0

10 Jul 20:54

Choose a tag to compare

NOTE

The project has been refactored and renamed from Il2CppUnhollower!
Most of the changes are breaking, so don't naïvely upgrade your plugins and packages!

Please refer to changelog below for more information. Note that old Il2CppUnhollower assemblies are still available, and the code can be found in legacy-unhollower branch.

Stable releases are now available via NuGet.org!

Changelog

New features

  • Generator: Added GeneratorOptions.Parallel
    • The option allows to disable parallel processing when generating assemblies. This is useful in some cases where parallel processing may be unstable.
  • CLI: Added --no-parallel flag
    • The option allows to disable parallel processing when generating assemblies

Fixes

  • Runtime: Improved class injection for metadta v29
    • Added more Class::Init substituted
    • Resolve GetTypeInfoFromTypeDefinitionIndex properly
  • Generator: Fixed generating methods that contain ValueType parameters
  • Generator: Fixed generating methods with Il2Cpp*Array<T> parameters
  • Generator: Fixed size of bool fields in Il2Cpp structs (booleans in Il2Cpp are 1 byte)
  • Generator: Fixed a NullReferenceException for some classes that have indexers

Version 1.0.0

16 Jun 16:16
7b58644

Choose a tag to compare

NOTE

The project has been refactored and renamed from Il2CppUnhollower!
Most of the changes are breaking, so don't naïvely upgrade your plugins and packages!

Please refer to changelog below for more information. Note that old Il2CppUnhollower assemblies are still available, and the code can be found in legacy-unhollower branch.

Changelog

Major changes

  • Removed netstandard2.0 target framework
  • Added net6.0 target framework for the runtime and CLI
    • CLI and generator API support net4.6 to allow use of the tools with Visual Studio extensions
  • Refactored code structure:
    • Il2CppInterop.Generator - API for analyzing Il2Cpp code and generating proxy assemblies. This is comparable to the old LibAssemblyUnhollower
    • Il2CppInterop.Runtime - API for interacting with Il2Cpp at runtime. This is comparable to UnhollowerBaseLib and UnhollowerRuntimeLib
  • Overhauled wrappers for Il2Cpp runtime methods and structs
    • The wrappers can now be generated automatically from libil2cpp source code, which should enable faster fixes and updates when Il2Cpp version updates
  • Removed all obsolete types and methods
  • Removed support for Il2CppDumper. Il2CppInterop now provides primary support only for Cpp2Il

New features

  • Added module that enables support for patching Il2Cpp methods with HarmonyX
  • New API for programmatically generating proxy API: Il2CppInteropGenerator
  • New API for initializing Il2CppInterop runtime: Il2CppInteropRuntime

Acknowledgements

This major overhaul wouldn't be possible without major contributions from @Kasuromi and @js6pak!

v0.4.33.3

25 May 15:52
v0.4.33.3
8cde2ec

Choose a tag to compare

v0.4.33.2

24 May 17:24
v0.4.33.2
2fc2ad4

Choose a tag to compare

v0.4.33.1

22 May 04:38
v0.4.33.1
3a489fb

Choose a tag to compare

v0.4.33.0

30 Apr 11:02
ec6f13e

Choose a tag to compare

Changelog

  • Fix asset bundle serialization in hkGetClassFromName
  • @Kasuromi: Fix for inlined Image::GetType in GetTypeInfoFromTypeDefinitionIndex detour (#32)
  • @Kasuromi: Dump Il2Cpp Exception stack traces from proxy class (#31)

Packages are also available on BepInEx NuGet: