Releases: BepInEx/Il2CppInterop
v1.5.1
Stable releases are available on NuGet.org as well!
What's Changed
- AsmResolver System.Enum IsValueType=true workaround. Fixes #211 by @AndrewSav in #212
- Use UTF8 in Il2Cpp PInvoke calls by @HookedBehemoth in #220
- Fix GetIl2CppNestedType sometimes failing by @slxdy in #227
- Add proper UTF-8 support by @slxdy in #228
- Fix Pass 90 imports TargetFrameworkAttribute after corlib refs fixup by @slxdy in #229
- Fix issue finding GetFieldDefaultValue on 2021.3.23 by @limoka in #90
- Support prefixed types in ClassInjector.SystemTypeFromIl2CppType by @ds5678 in #153
- Fix "Handle is not initialized" for Unity 2021.2.x games by @haolink in #232
New Contributors
- @AndrewSav made their first contribution in #212
- @HookedBehemoth made their first contribution in #220
- @haolink made their first contribution in #232
Full Changelog: v1.5.0...v1.5.1
v1.5.0
Stable releases are available on NuGet.org as well!
What's Changed
- Account for type name when renaming properties and methods from the deobf map by @thegu5 in #113
- Add a more specific RunFinalizer signature for Summer Vacation! Scramble by @y0soro in #199
- Add another GetFieldDefaultValue signature by @SamboyCoding in #86
- Add awaiter implementation by @extraes in #133
- Add debugger display attributes to the generator context types by @ds5678 in #161
- ArrayBaseType handle GenericParameterSignatures by @DustinBryant in #203
- Assign method metadata tokens before writing by @ds5678 in #180
- Changed to LPUTF8Str to fix Obfuscated Class and Field Problems by @unreliablecode in #101
- Cleanup arrays and annotate for nullability by @ds5678 in #185
- Cleanup name validity by @ds5678 in #177
- Create a non-generic Il2CppArrayBase class by @ds5678 in #126
- Don't unbox non-blittable generic valuetypes for parameter loading by @Kasuromi in #69
- Expand Macros Before Unstripping by @ds5678 in #168
- Fix GenericMethod_GetMethod_Hook on Unity 2020.3.41+ by @limoka in #89
- Fix Invalid Generic Parameter Names by @ds5678 in #154
- Fix System.Func import off-by-one by @slick1015 in #132
- Fix class injector abstract method handling by @WNP78 in #134
- Fix issue #140 (AssetBundles cannot be loaded at runtime) by @aceman1209 in #197
- Fix null ParameterDefinition when copying by @ds5678 in #181
- Handle the case where GenericMethod::GetMethod is after the ret by @js6pak in #96
Il2CppStructArray<T>.AsSpan()by @ds5678 in #129- Implemented TypeComparer For GetOrCreateProperty When There Are More … by @krulci in #91
- Improve Generics Unstripping by @ds5678 in #170
- Improve Ldelem and Stelem Unstripping by @ds5678 in #184
- Improve corlib type resolution during unstripping by @ds5678 in #171
- Improve property resolution during unstripping by @ds5678 in #169
- Improve type resolution for unstripping by @ds5678 in #158
- Major generator memory leak fix by @slxdy in #193
- Pool objects created when passing objects from generated assemblies to the user by @simonkellly in #92
- Port generator to use AsmResolver by @ds5678 in #124
- Prevent null strings in OriginalName by @ds5678 in #179
- Refactor hook creation by @limoka in #85
- Simplify adding a parameter and support either string/Utf8String by @ds5678 in #164
- Small fixes by @limoka in #94
- Special-case System.Enum as a generic constraint by @ds5678 in #160
- Switch from using
AttributeAttribute::NametoAttributeAttribute::Typeby @ds5678 in #194 - Treat pointers as value types by @ds5678 in #159
- Unstrip Exception Handlers by @ds5678 in #157
- Unstrip fields for constants and new structs by @ds5678 in #162
- Update workflow files by @ds5678 in #125
New Contributors
- @krulci made their first contribution in #91
- @unreliablecode made their first contribution in #101
- @thegu5 made their first contribution in #113
- @slick1015 made their first contribution in #132
- @WNP78 made their first contribution in #134
- @slxdy made their first contribution in #193
- @aceman1209 made their first contribution in #197
- @y0soro made their first contribution in #199
- @extraes made their first contribution in #133
- @DustinBryant made their first contribution in #203
Full Changelog: v1.4.5...v1.5.0
v1.4.5
v1.4.4
Stable releases are available on NuGet.org as well!
Changelog
Fixes
- Runtime: Fix GenericMethod::GetMethod search for IL2CPP Master games (@nitrog0d via #64 & #67)
- Runtime: Fix invalid return value when calling injected methods via Il2Cpp reflection (@kremnev8 via #74)
- Runtime: Fix crash calling delegate invoke on il2cpp 29 or higher (@kremnev8 via #78)
- Runtime: Shorten delegate type names with method signature (@Kasuromi via df33064)
- Generator: Prevent processing of Cpp2IL injected types (@ds5678 in #68)
- Generator: Fix constructors in non-blittable structs (@js6pak via #77)
- Generator: Add support for byref generic parameters in methods (@Kasuromi via #79)
- Generator: Preserve enum names when prefixing (@Kasuromi via 44f18f0)
- Struct Generator: Fix bitfield generating and update Il2Cpp structs (@nitrog0d via #65)
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.3.0
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-unhollowerbranch.
Stable releases are now available via NuGet.org!
Changelog
New features
- Generator: Add implicit conversions for primitives to il2cpp object (#51)
- Runtime: Improve Cast and PointerToValueGeneric performance (#52)
Fixes
- Generator: Fix crashes on x32 when xref pointers are "negative" (#53)
- Runtime: Fix GenerateDelegateForMissingICall on coreclr
v1.2.0
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-unhollowerbranch.
Stable releases are now available via NuGet.org!
Changelog
New features
- Generator: Add
Il2CppPrefixModeoption that affects how generated assemblies are prefixed (#39, @ds5678). Two options are availablePrefixMode.OptIn(Default): Namespaces and assembly names specified inNamespacesAndAssembliesToPrefixlist will be prefixed withIl2Cppwhen generating interop assemblies.PrefixMode.OptOut: All namespaces and assembly names will be prefixed withIl2Cppwhen generating interop assemblies. You can opt out from the behaviour for specific namespaces and assemblies withNamespacesAndAssembliesToNotPrefixlist- Note: The default represents the current behaviour of v1. Starting from v2 the default will likely be switched to opt-out
- CLI: Added new CLI flags for setting the above options:
--use-opt-out-prefixing,--add-prefix-to