Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RotMG Version incompatible with BepinEx #433

Closed
kecleon opened this issue Jun 24, 2022 · 15 comments
Closed

RotMG Version incompatible with BepinEx #433

kecleon opened this issue Jun 24, 2022 · 15 comments
Labels
bug Something isn't working

Comments

@kecleon
Copy link

kecleon commented Jun 24, 2022

What happened?

Using bleeding build of BepinEx, on RotMG, a very much unsupported game (il2cpp & obfuscated). BepinEx doesn't work, is there any chance of BepinEx supporting it? When launching the game after installing BepinEx, the game's window opens all white, then has an odd error pops up, then it closes.

Thanks!

Steps to reproduce

Install RotMG
Make account, login to launcher
Install BepinEx
Run RotMG from its launcher

BepInEx Distribution

Bleeding Edge from BepisBuilds

Log outputs

[Message: Preloader] BepInEx 6.0.0-be.570 - RotMG Exalt
[Message: Preloader] BLEEDING EDGE Build #570 from 3febd6a3ba4266fb996e81b27d18b2dcc82ac1e2 at master
[Info   :   BepInEx] System platform: Windows 10 64-bit
[Info   :   BepInEx] Process bitness: 64-bit (x64)
[Info   : Preloader] Running under Unity v2021.2.6
[Message: Preloader] Downloading unity base libraries
[Message: Preloader] Extracting downloaded unity base libraries
[Message: Preloader] Generating Il2CppUnhollower assemblies
[Info   :    Cpp2IL] [Library] Initializing Metadata...
[Info   :    Cpp2IL] [Library] Using actual IL2CPP Metadata version 29
[Info   :    Cpp2IL] [Library] Initialized Metadata in 1388ms
[Info   :    Cpp2IL] [Library] Searching Binary for Required Data...
[Info   :    Cpp2IL] [Library] Got Binary codereg: 0x18314D840, metareg: 0x1834689D0 in 534ms.
[Info   :    Cpp2IL] [Library] Initializing Binary...
[Info   :    Cpp2IL] [Library] Initialized Binary in 660ms
[Info   :    Cpp2IL] [Library] Mapping pointers to Il2CppMethodDefinitions...
[Info   :    Cpp2IL] [Library] Processed 185056 OK (195ms)
[Info   :    Cpp2IL] [Program] Building assemblies...This may take some time.
[Info   :    Cpp2IL] [Program] Finished Building Assemblies in 3218ms
[Info   :    Cpp2IL] [Program] Fixing up explicit overrides. Any warnings you see here aren't errors - they usually indicate improperly stripped or obfuscated types, but this is not a big deal. This should only take a second...
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Info   :    Cpp2IL] [Program] Fixup complete (252ms)
[Info   :    Cpp2IL] Total time: 00:00:06.7327387
[Info   : Preloader] Executing Il2CppUnhollower generator
[Info   :Unhollower] Reading assemblies...
[Info   :Unhollower] Done in 00:00:00.0038288
[Info   :Unhollower] Reading system assemblies...
[Info   :Unhollower] Done in 00:00:00.0259679
[Info   :Unhollower] Reading unity assemblies...
[Info   :Unhollower] Done in 00:00:00.0220477
[Info   :Unhollower] Creating rewrite assemblies...
[Info   :Unhollower] Done in 00:00:00.0088033
[Info   :Unhollower] Computing renames...
[Info   :Unhollower] Done in 00:00:00.0152226
[Info   :Unhollower] Creating typedefs...
[Info   :Unhollower] Done in 00:00:00.0340725
[Info   :Unhollower] Computing struct blittability...
[Info   :Unhollower] Done in 00:00:00.0029333
[Info   :Unhollower] Filling typedefs...
[Info   :Unhollower] Done in 00:00:00.0171030
[Info   :Unhollower] Filling generic constraints...
[Info   :Unhollower] Done in 00:00:00.0011919
[Info   :Unhollower] Creating members...
[Info   :Unhollower] Done in 00:00:00.5691710
[Info   :Unhollower] Scanning method cross-references...
[Info   :Unhollower] Done in 00:00:01.1126953
[Info   :Unhollower] Finalizing method declarations...
[Info   :Unhollower] Done in 00:00:01.7480678
[Info   :Unhollower] 16 total potentially dead methods
[Info   :Unhollower] Filling method parameters...
[Info   :Unhollower] Done in 00:00:00.4172510
[Info   :Unhollower] Creating static constructors...
[Info   :Unhollower] Done in 00:00:00.4805236
[Info   :Unhollower] Creating value type fields...
[Info   :Unhollower] Done in 00:00:00.0460201
[Info   :Unhollower] Creating enums...
[Info   :Unhollower] Done in 00:00:00.0176283
[Info   :Unhollower] Creating IntPtr constructors...
[Info   :Unhollower] Done in 00:00:00.0190478
[Info   :Unhollower] Creating type getters...
[Info   :Unhollower] Done in 00:00:00.0466162
[Info   :Unhollower] Creating non-blittable struct constructors...
[Info   :Unhollower] Done in 00:00:00.0063501
[Info   :Unhollower] Creating generic method static constructors...
[Info   :Unhollower] Done in 00:00:00.0271715
[Info   :Unhollower] Creating field accessors...
[Info   :Unhollower] Done in 00:00:00.4714579
[Info   :Unhollower] Filling methods...
[Info   :Unhollower] Done in 00:00:02.0894731
[Info   :Unhollower] Generating implicit conversions...
[Info   :Unhollower] Done in 00:00:00.0257129
[Info   :Unhollower] Creating properties...
[Info   :Unhollower] Done in 00:00:00.0413390
[Info   :Unhollower] Unstripping types...
[Info   :Unhollower] Done in 00:00:00.0334757
[Info   :Unhollower] Unstripping fields...
[Info   :Unhollower] 
[Info   :Unhollower] 662 fields restored
[Info   :Unhollower] 11 fields failed to restore
[Info   :Unhollower] Done in 00:00:00.0084210
[Info   :Unhollower] Unstripping methods...
[Info   :Unhollower] 
[Info   :Unhollower] 16418 methods restored
[Info   :Unhollower] 1282 methods failed to restore
[Info   :Unhollower] Done in 00:00:00.4721435
[Info   :Unhollower] Unstripping method bodies...
[Info   :Unhollower] 
[Info   :Unhollower] IL unstrip statistics: 8160 successful, 1974 failed
[Info   :Unhollower] Done in 00:00:00.3752964
[Info   :Unhollower] Generating forwarded types...
[Info   :Unhollower] Done in 00:00:00.0027508
[Info   :Unhollower] Writing xref cache...
[Info   :Unhollower] Done in 00:00:00.5651729
[Info   :Unhollower] Writing assemblies...
[Info   :Unhollower] Done in 00:00:03.4350101
[Info   :Unhollower] Writing method pointer map...
[Info   :Unhollower] Done in 00:00:00.0531531
[Info   :Unhollower] Done!
[Info   : Preloader] 0 patcher plugins loaded
[Info   : Preloader] 0 assemblies discovered
[Message:AssemblyPatcher] Executing 0 patch(es)
[Message:   BepInEx] Chainloader initialized
[Warning:Unhollower] Class::Init signatures have been exhausted, using il2cpp_class_has_references as a substitute!

Environment

- OS: Windows 10 64 bit
- BepInEx: BepInEx 6.0.0-be.570
- Game: RotMG Exalt
@kecleon kecleon added the bug Something isn't working label Jun 24, 2022
@animusDS
Copy link

@Michael-Ziluck
Copy link

Any news on this?

@Michael-Ziluck
Copy link

For @animusDS and @kecleon, I just tried to run Realm with the latest BE build installed and it opens fine without any white screen stuff. My guess is they fixed whatever the issue when they did all those updates ~1 week ago. Obviously can't test it with all your guys' client stuff, but wanted to lyk the first set of issues seems to be resolved.

@animusDS
Copy link

animusDS commented Aug 22, 2022

ty I'll check to see if it works and report back. Thanks for informing me!". 🙏

@Michael-Ziluck
Copy link

Any luck?

@kecleon
Copy link
Author

kecleon commented Aug 23, 2022

For @animusDS and @kecleon, I just tried to run Realm with the latest BE build installed and it opens fine without any white screen stuff. My guess is they fixed whatever the issue when they did all those updates ~1 week ago. Obviously can't test it with all your guys' client stuff, but wanted to lyk the first set of issues seems to be resolved.

Not working for me on BepInEx-Unity.IL2CPP-win-x64-6.0.0-be.649+78b5b58. It opens, the console logs stuff, then the game closes.

ErrorLog.log contains:

Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at Il2CppInterop.Runtime.Injection.InjectorHelpers.hkClassGetFieldDefaultValue(Il2CppInterop.Runtime.Runtime.Il2CppFieldInfo*, Il2CppInterop.Runtime.Runtime.Il2CppTypeStruct* ByRef)

Last few lines of LogOutput.log are:

[Info   : Preloader] 0 patcher plugins loaded
[Info   : Preloader] 0 assemblies discovered
[Message:AssemblyPatcher] Executing 0 patch(es)
[Message:   BepInEx] Chainloader initialized
[Warning:Il2CppInterop] Class::Init signatures have been exhausted, using a substitute!
[Info   :Il2CppInterop] Registered mono type Il2CppInterop.Runtime.DelegateSupport+Il2CppToMonoDelegateReference in il2cpp domain
[Info   :   BepInEx] 0 plugins to load
[Message:   BepInEx] Chainloader startup complete

Are you sure you installed correctly and there's log info in the BepInEx folder after you launch?

@Michael-Ziluck
Copy link

Michael-Ziluck commented Aug 23, 2022

@kecleon Yep! Running it with BepInEx-Unity.IL2CPP-win-x64-6.0.0-be.649+78b5b58.

Edit: If you have any other questions about it running on mine, I'll try to keep an eye here but my Discord is DoctorZee#4445

Log:

[Message: Preloader] BepInEx 6.0.0-be.649 - RotMG Exalt Launcher
[Message: Preloader] Built from commit 78b5b58884fa3410c7d43f151172f09c11aa3766
[Info   :   BepInEx] System platform: Windows 10 64-bit
[Info   :   BepInEx] Process bitness: 64-bit (x64)
[Info   :   BepInEx] Running under Unity 2020.3.30f1
[Info   :   BepInEx] Runtime version: 6.0.7
[Info   :   BepInEx] Runtime information: .NET 6.0.7
[Message:InteropManager] Downloading unity base libraries
[Message:InteropManager] Extracting downloaded unity base libraries
[Message:InteropManager] Running Cpp2IL to generate dummy assemblies
[Info   :    Cpp2IL] [Library] Initializing Metadata...
[Info   :    Cpp2IL] [Library] Using actual IL2CPP Metadata version 27.1
[Info   :    Cpp2IL] [Library] Initialized Metadata in 300ms
[Info   :    Cpp2IL] [Library] Searching Binary for Required Data...
[Info   :    Cpp2IL] [Library] Got Binary codereg: 0x1813C2870, metareg: 0x1813C28F0 in 61ms.
[Info   :    Cpp2IL] [Library] Initializing Binary...
[Info   :    Cpp2IL] [Library] Initialized Binary in 136ms
[Info   :    Cpp2IL] [Library] Mapping pointers to Il2CppMethodDefinitions...
[Info   :    Cpp2IL] [Library] Processed 63115 OK (56ms)
[Info   :    Cpp2IL] [Program] Building assemblies...This may take some time.
[Info   :    Cpp2IL] [Program] Finished Building Assemblies in 1124ms
[Info   :    Cpp2IL] [Program] Fixing up explicit overrides. Any warnings you see here aren't errors - they usually indicate improperly stripped or obfuscated types, but this is not a big deal. This should only take a second...
[Warning:    Cpp2IL] [Program] Failed to resolve base type UnityEngine.UI.Extensions.IBoxSelectable for base method override UnityEngine.UI.Extensions.IBoxSelectable.get_transform
[Warning:    Cpp2IL] [Program] Failed to resolve base type UnityEngine.UI.Extensions.IScrollSnap for base method override UnityEngine.UI.Extensions.IScrollSnap.CurrentPage
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Info   :    Cpp2IL] [Program] Fixup complete (91ms)
[Info   :InteropManager] Cpp2IL finished in 00:00:02.3497844
[Info   :InteropManager] Generating interop assemblies
[Info   :Il2CppInteropGen] Reading assemblies...
[Info   :Il2CppInteropGen] Done in 00:00:00.0016584
[Info   :Il2CppInteropGen] Reading unity assemblies...
[Info   :Il2CppInteropGen] Done in 00:00:01.1084775
[Info   :Il2CppInteropGen] Creating rewrite assemblies...
[Info   :Il2CppInteropGen] Done in 00:00:00.0060068
[Info   :Il2CppInteropGen] Computing renames...
[Info   :Il2CppInteropGen] Done in 00:00:00.0182645
[Info   :Il2CppInteropGen] Creating typedefs...
[Info   :Il2CppInteropGen] Done in 00:00:00.0143149
[Info   :Il2CppInteropGen] Computing struct blittability...
[Info   :Il2CppInteropGen] Done in 00:00:00.0024154
[Info   :Il2CppInteropGen] Filling typedefs...
[Info   :Il2CppInteropGen] Done in 00:00:00.0095423
[Info   :Il2CppInteropGen] Filling generic constraints...
[Info   :Il2CppInteropGen] Done in 00:00:00.0019672
[Info   :Il2CppInteropGen] Creating members...
[Info   :Il2CppInteropGen] Done in 00:00:00.3819466
[Info   :Il2CppInteropGen] Scanning method cross-references...
[Info   :Il2CppInteropGen] Done in 00:00:00.5172896
[Info   :Il2CppInteropGen] Finalizing method declarations...
[Info   :Il2CppInteropGen] Done in 00:00:00.9689972
[Info   :Il2CppInteropGen] 0 total potentially dead methods
[Info   :Il2CppInteropGen] Filling method parameters...
[Info   :Il2CppInteropGen] Done in 00:00:00.1673172
[Info   :Il2CppInteropGen] Creating static constructors...
[Info   :Il2CppInteropGen] Done in 00:00:00.1255521
[Info   :Il2CppInteropGen] Creating value type fields...
[Info   :Il2CppInteropGen] Done in 00:00:00.0152329
[Info   :Il2CppInteropGen] Creating enums...
[Info   :Il2CppInteropGen] Done in 00:00:00.0075330
[Info   :Il2CppInteropGen] Creating IntPtr constructors...
[Info   :Il2CppInteropGen] Done in 00:00:00.0602134
[Info   :Il2CppInteropGen] Creating non-blittable struct constructors...
[Info   :Il2CppInteropGen] Done in 00:00:00.0041968
[Info   :Il2CppInteropGen] Creating generic method static constructors...
[Info   :Il2CppInteropGen] Done in 00:00:00.0216763
[Info   :Il2CppInteropGen] Creating field accessors...
[Info   :Il2CppInteropGen] Done in 00:00:00.2481162
[Info   :Il2CppInteropGen] Filling methods...
[Info   :Il2CppInteropGen] Done in 00:00:01.1863759
[Info   :Il2CppInteropGen] Generating implicit conversions...
[Info   :Il2CppInteropGen] Done in 00:00:00.0100390
[Info   :Il2CppInteropGen] Creating properties...
[Info   :Il2CppInteropGen] Done in 00:00:00.0280030
[Info   :Il2CppInteropGen] Unstripping types...
[Info   :Il2CppInteropGen] Done in 00:00:00.0307250
[Info   :Il2CppInteropGen] Unstripping fields...
[Info   :Il2CppInteropGen] Restored 799 fields
[Info   :Il2CppInteropGen] Failed to restore 22 fields
[Info   :Il2CppInteropGen] Done in 00:00:00.0092609
[Info   :Il2CppInteropGen] Unstripping methods...
[Info   :Il2CppInteropGen] Restored 17632 methods
[Info   :Il2CppInteropGen] Failed to restore 1328 methods
[Info   :Il2CppInteropGen] Done in 00:00:00.4000167
[Info   :Il2CppInteropGen] Unstripping method bodies...
[Info   :Il2CppInteropGen] IL unstrip statistics: 8020 successful, 3294 failed
[Info   :Il2CppInteropGen] Done in 00:00:00.3593996
[Info   :Il2CppInteropGen] Writing xref cache...
[Info   :Il2CppInteropGen] Done in 00:00:00.7165445
[Info   :Il2CppInteropGen] Writing assemblies...
[Info   :Il2CppInteropGen] Done in 00:00:00.5728646
[Info   :Il2CppInteropGen] Writing method pointer map...
[Info   :Il2CppInteropGen] Done in 00:00:00.0175958
[Info   :Il2CppInteropGen] Done!
[Info   : Preloader] 0 patcher plugins loaded
[Info   : Preloader] 0 assemblies discovered
[Message:AssemblyPatcher] Executing 0 patch(es)
[Message:   BepInEx] Chainloader initialized
[Info   :Il2CppInterop] Registered mono type Il2CppInterop.Runtime.DelegateSupport+Il2CppToMonoDelegateReference in il2cpp domain
[Info   :   BepInEx] 0 plugins to load
[Message:   BepInEx] Chainloader startup complete

@kecleon
Copy link
Author

kecleon commented Aug 23, 2022

@kecleon Yep! Running it with BepInEx-Unity.IL2CPP-win-x64-6.0.0-be.649+78b5b58.

Edit: If you have any other questions about it running on mine, I'll try to keep an eye here but my Discord is DoctorZee#4445

Log:

...

Okay well, I see why it is working for you, it's because it is installed into the Exalt Launcher not Exalt Client (which is located at %userprofile%\Documents\RealmOfTheMadGod\Production), according to your logs:

[Message: Preloader] BepInEx 6.0.0-be.649 - RotMG Exalt Launcher

Try installing it into the client if you want and let me know if it works...

@Michael-Ziluck
Copy link

You're super right, whoops. Getting that same error.

ErrorLog.log:

Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at Il2CppInterop.Runtime.Injection.InjectorHelpers.hkClassGetFieldDefaultValue(Il2CppInterop.Runtime.Runtime.Il2CppFieldInfo*, Il2CppInterop.Runtime.Runtime.Il2CppTypeStruct* ByRef)

LogOutput.log:

[Message: Preloader] BepInEx 6.0.0-be.649 - RotMG Exalt
[Message: Preloader] Built from commit 78b5b58884fa3410c7d43f151172f09c11aa3766
[Info   :   BepInEx] System platform: Windows 10 64-bit
[Info   :   BepInEx] Process bitness: 64-bit (x64)
[Info   :   BepInEx] Running under Unity 2021.3.5f1
[Info   :   BepInEx] Runtime version: 6.0.7
[Info   :   BepInEx] Runtime information: .NET 6.0.7
[Message:InteropManager] Downloading unity base libraries
[Message:InteropManager] Extracting downloaded unity base libraries
[Message:InteropManager] Running Cpp2IL to generate dummy assemblies
[Info   :    Cpp2IL] [Library] Initializing Metadata...
[Info   :    Cpp2IL] [Library] Using actual IL2CPP Metadata version 29
[Info   :    Cpp2IL] [Library] Initialized Metadata in 693ms
[Info   :    Cpp2IL] [Library] Searching Binary for Required Data...
[Info   :    Cpp2IL] [Library] Got Binary codereg: 0x1831F7030, metareg: 0x183523B00 in 247ms.
[Info   :    Cpp2IL] [Library] Initializing Binary...
[Info   :    Cpp2IL] [Library] Initialized Binary in 283ms
[Info   :    Cpp2IL] [Library] Mapping pointers to Il2CppMethodDefinitions...
[Info   :    Cpp2IL] [Library] Processed 188463 OK (208ms)
[Info   :    Cpp2IL] [Program] Building assemblies...This may take some time.
[Info   :    Cpp2IL] [Program] Finished Building Assemblies in 3165ms
[Info   :    Cpp2IL] [Program] Fixing up explicit overrides. Any warnings you see here aren't errors - they usually indicate improperly stripped or obfuscated types, but this is not a big deal. This should only take a second...
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Info   :    Cpp2IL] [Program] Fixup complete (169ms)
[Info   :InteropManager] Cpp2IL finished in 00:00:05.3419334
[Info   :InteropManager] Generating interop assemblies
[Info   :Il2CppInteropGen] Reading assemblies...
[Info   :Il2CppInteropGen] Done in 00:00:00.0023354
[Info   :Il2CppInteropGen] Reading unity assemblies...
[Info   :Il2CppInteropGen] Done in 00:00:00.0354434
[Info   :Il2CppInteropGen] Creating rewrite assemblies...
[Info   :Il2CppInteropGen] Done in 00:00:00.0117412
[Info   :Il2CppInteropGen] Computing renames...
[Info   :Il2CppInteropGen] Done in 00:00:00.0230169
[Info   :Il2CppInteropGen] Creating typedefs...
[Info   :Il2CppInteropGen] Done in 00:00:00.0267153
[Info   :Il2CppInteropGen] Computing struct blittability...
[Info   :Il2CppInteropGen] Done in 00:00:00.0032514
[Info   :Il2CppInteropGen] Filling typedefs...
[Info   :Il2CppInteropGen] Done in 00:00:00.0231470
[Info   :Il2CppInteropGen] Filling generic constraints...
[Info   :Il2CppInteropGen] Done in 00:00:00.0024676
[Info   :Il2CppInteropGen] Creating members...
[Info   :Il2CppInteropGen] Done in 00:00:00.9409444
[Info   :Il2CppInteropGen] Scanning method cross-references...
[Info   :Il2CppInteropGen] Done in 00:00:00.9558160
[Info   :Il2CppInteropGen] Finalizing method declarations...
[Info   :Il2CppInteropGen] Done in 00:00:02.9801561
[Info   :Il2CppInteropGen] 34 total potentially dead methods
[Info   :Il2CppInteropGen] Filling method parameters...
[Info   :Il2CppInteropGen] Done in 00:00:00.4976771
[Info   :Il2CppInteropGen] Creating static constructors...
[Info   :Il2CppInteropGen] Done in 00:00:00.3708417
[Info   :Il2CppInteropGen] Creating value type fields...
[Info   :Il2CppInteropGen] Done in 00:00:00.0261164
[Info   :Il2CppInteropGen] Creating enums...
[Info   :Il2CppInteropGen] Done in 00:00:00.0192938
[Info   :Il2CppInteropGen] Creating IntPtr constructors...
[Info   :Il2CppInteropGen] Done in 00:00:00.1305695
[Info   :Il2CppInteropGen] Creating non-blittable struct constructors...
[Info   :Il2CppInteropGen] Done in 00:00:00.0068360
[Info   :Il2CppInteropGen] Creating generic method static constructors...
[Info   :Il2CppInteropGen] Done in 00:00:00.0513246
[Info   :Il2CppInteropGen] Creating field accessors...
[Info   :Il2CppInteropGen] Done in 00:00:00.7034959
[Info   :Il2CppInteropGen] Filling methods...
[Info   :Il2CppInteropGen] Done in 00:00:03.3894154
[Info   :Il2CppInteropGen] Generating implicit conversions...
[Info   :Il2CppInteropGen] Done in 00:00:00.0214490
[Info   :Il2CppInteropGen] Creating properties...
[Info   :Il2CppInteropGen] Done in 00:00:00.0566759
[Info   :Il2CppInteropGen] Unstripping types...
[Info   :Il2CppInteropGen] Done in 00:00:00.0355248
[Info   :Il2CppInteropGen] Unstripping fields...
[Info   :Il2CppInteropGen] Restored 633 fields
[Info   :Il2CppInteropGen] Failed to restore 2 fields
[Info   :Il2CppInteropGen] Done in 00:00:00.0087128
[Info   :Il2CppInteropGen] Unstripping methods...
[Info   :Il2CppInteropGen] Restored 16363 methods
[Info   :Il2CppInteropGen] Failed to restore 1186 methods
[Info   :Il2CppInteropGen] Done in 00:00:00.3975410
[Info   :Il2CppInteropGen] Unstripping method bodies...
[Info   :Il2CppInteropGen] IL unstrip statistics: 8077 successful, 1957 failed
[Info   :Il2CppInteropGen] Done in 00:00:00.3227818
[Info   :Il2CppInteropGen] Writing xref cache...
[Info   :Il2CppInteropGen] Done in 00:00:02.0203995
[Info   :Il2CppInteropGen] Writing assemblies...
[Info   :Il2CppInteropGen] Done in 00:00:02.6636681
[Info   :Il2CppInteropGen] Writing method pointer map...
[Info   :Il2CppInteropGen] Done in 00:00:00.0412916
[Info   :Il2CppInteropGen] Done!
[Info   : Preloader] 0 patcher plugins loaded
[Info   : Preloader] 0 assemblies discovered
[Message:AssemblyPatcher] Executing 0 patch(es)
[Message:   BepInEx] Chainloader initialized
[Warning:Il2CppInterop] Class::Init signatures have been exhausted, using a substitute!
[Info   :Il2CppInterop] Registered mono type Il2CppInterop.Runtime.DelegateSupport+Il2CppToMonoDelegateReference in il2cpp domain
[Info   :   BepInEx] 0 plugins to load
[Message:   BepInEx] Chainloader startup complete

@kecleon
Copy link
Author

kecleon commented Aug 23, 2022

You're super right, whoops. Getting that same error.

Damn alright, thank you for trying 👍

@ghorsington
Copy link
Contributor

Greetings!

Thanks for all the reports. Since we've been getting the same reports on Discord and other GH issues, I've consolidated all reports into a single ticket:

#474

You can find more information about the issue and a temporary workaround there. As such, I'm closing this issue to favour one central place for the problem discussion.

@Kasuromi
Copy link
Member

Hey!

I've began working on supporting 2021.2+ unity versions in Il2CppInterop over at v29-support.

Try using the latest BepInEx bleeding edge build along with replacing Il2CppInterop.Runtime.dll & Il2CppInterop.Common.dll from the Il2CppInterop build artifacts.

Tested on latest version of RotMG without getting any crashes, let me know if you run into any issues.

Relevant: @kecleon @Michael-Ziluck

@Michael-Ziluck
Copy link

Michael-Ziluck commented Sep 12, 2022

Sucess! Kinda... Game opens but gets stuck at a loading screen.

I'm unsure if that's related to launching the game from the .exe directly or if there's something up with IL2CPP still. But I'm also not familiar with the technical side of ROTMG- I'm just an SE that also uses the stuff made by @kecleon and @animusDS.

Do either of you know what might be up? Definitely gets much further than it ever did before with the changes from Kasuromi.

Edit:
Full log if it is helpful to work on BepInEx/Il2CppInterop#41:

[Message: Preloader] BepInEx 6.0.0-be.656 - RotMG Exalt
[Message: Preloader] Built from commit b3485f473918acb0059070d1ad735e6557af34ad
[Info   :   BepInEx] System platform: Windows 10 64-bit
[Info   :   BepInEx] Process bitness: 64-bit (x64)
[Info   :   BepInEx] Running under Unity 2021.3.5f1
[Info   :   BepInEx] Runtime version: 6.0.7
[Info   :   BepInEx] Runtime information: .NET 6.0.7
[Message:InteropManager] Downloading unity base libraries
[Message:InteropManager] Extracting downloaded unity base libraries
[Message:InteropManager] Running Cpp2IL to generate dummy assemblies
[Info   :    Cpp2IL] [Library] Initializing Metadata...
[Info   :    Cpp2IL] [Library] Using actual IL2CPP Metadata version 29
[Info   :    Cpp2IL] [Library] Initialized Metadata in 722ms
[Info   :    Cpp2IL] [Library] Searching Binary for Required Data...
[Info   :    Cpp2IL] [Library] Got Binary codereg: 0x1831F9AE0, metareg: 0x183525370 in 544ms.
[Info   :    Cpp2IL] [Library] Initializing Binary...
[Info   :    Cpp2IL] [Library] Initialized Binary in 300ms
[Info   :    Cpp2IL] [Library] Mapping pointers to Il2CppMethodDefinitions...
[Info   :    Cpp2IL] [Library] Processed 187500 OK (191ms)
[Info   :    Cpp2IL] [Program] Building assemblies...This may take some time.
[Info   :    Cpp2IL] [Program] Finished Building Assemblies in 3158ms
[Info   :    Cpp2IL] [Program] Fixing up explicit overrides. Any warnings you see here aren't errors - they usually indicate improperly stripped or obfuscated types, but this is not a big deal. This should only take a second...
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerator<I2.Loc.SimpleJSON.JSONNode>.get_Current.
[Warning:    Cpp2IL] [Program] Failed to resolve generic parameter "I2.Loc.SimpleJSON.JSONNode" for base method override System.Collections.Generic.IEnumerable<I2.Loc.SimpleJSON.JSONNode>.GetEnumerator.
[Info   :    Cpp2IL] [Program] Fixup complete (188ms)
[Info   :InteropManager] Cpp2IL finished in 00:00:05.6868106
[Info   :InteropManager] Generating interop assemblies
[Info   :Il2CppInteropGen] Reading assemblies...
[Info   :Il2CppInteropGen] Done in 00:00:00.0023704
[Info   :Il2CppInteropGen] Reading unity assemblies...
[Info   :Il2CppInteropGen] Done in 00:00:00.0479193
[Info   :Il2CppInteropGen] Creating rewrite assemblies...
[Info   :Il2CppInteropGen] Done in 00:00:00.0083044
[Info   :Il2CppInteropGen] Computing renames...
[Info   :Il2CppInteropGen] Done in 00:00:00.0241136
[Info   :Il2CppInteropGen] Creating typedefs...
[Info   :Il2CppInteropGen] Done in 00:00:00.0321068
[Info   :Il2CppInteropGen] Computing struct blittability...
[Info   :Il2CppInteropGen] Done in 00:00:00.0032169
[Info   :Il2CppInteropGen] Filling typedefs...
[Info   :Il2CppInteropGen] Done in 00:00:00.0157801
[Info   :Il2CppInteropGen] Filling generic constraints...
[Info   :Il2CppInteropGen] Done in 00:00:00.0026627
[Info   :Il2CppInteropGen] Creating members...
[Info   :Il2CppInteropGen] Done in 00:00:00.9960305
[Info   :Il2CppInteropGen] Scanning method cross-references...
[Info   :Il2CppInteropGen] Done in 00:00:00.8960185
[Info   :Il2CppInteropGen] Finalizing method declarations...
[Info   :Il2CppInteropGen] Done in 00:00:03.1248755
[Info   :Il2CppInteropGen] 34 total potentially dead methods
[Info   :Il2CppInteropGen] Filling method parameters...
[Info   :Il2CppInteropGen] Done in 00:00:00.5168910
[Info   :Il2CppInteropGen] Creating static constructors...
[Info   :Il2CppInteropGen] Done in 00:00:00.3688262
[Info   :Il2CppInteropGen] Creating value type fields...
[Info   :Il2CppInteropGen] Done in 00:00:00.0276445
[Info   :Il2CppInteropGen] Creating enums...
[Info   :Il2CppInteropGen] Done in 00:00:00.0203363
[Info   :Il2CppInteropGen] Creating IntPtr constructors...
[Info   :Il2CppInteropGen] Done in 00:00:00.1382128
[Info   :Il2CppInteropGen] Creating non-blittable struct constructors...
[Info   :Il2CppInteropGen] Done in 00:00:00.0137650
[Info   :Il2CppInteropGen] Creating generic method static constructors...
[Info   :Il2CppInteropGen] Done in 00:00:00.0512786
[Info   :Il2CppInteropGen] Creating field accessors...
[Info   :Il2CppInteropGen] Done in 00:00:00.7287346
[Info   :Il2CppInteropGen] Filling methods...
[Info   :Il2CppInteropGen] Done in 00:00:03.6153484
[Info   :Il2CppInteropGen] Generating implicit conversions...
[Info   :Il2CppInteropGen] Done in 00:00:00.0367390
[Info   :Il2CppInteropGen] Creating properties...
[Info   :Il2CppInteropGen] Done in 00:00:00.0684613
[Info   :Il2CppInteropGen] Unstripping types...
[Info   :Il2CppInteropGen] Done in 00:00:00.0225082
[Info   :Il2CppInteropGen] Unstripping fields...
[Info   :Il2CppInteropGen] Restored 633 fields
[Info   :Il2CppInteropGen] Failed to restore 2 fields
[Info   :Il2CppInteropGen] Done in 00:00:00.0219042
[Info   :Il2CppInteropGen] Unstripping methods...
[Info   :Il2CppInteropGen] Restored 16363 methods
[Info   :Il2CppInteropGen] Failed to restore 1186 methods
[Info   :Il2CppInteropGen] Done in 00:00:00.3996524
[Info   :Il2CppInteropGen] Unstripping method bodies...
[Info   :Il2CppInteropGen] IL unstrip statistics: 8077 successful, 1957 failed
[Info   :Il2CppInteropGen] Done in 00:00:00.3535394
[Info   :Il2CppInteropGen] Writing xref cache...
[Info   :Il2CppInteropGen] Done in 00:00:02.1066702
[Info   :Il2CppInteropGen] Writing assemblies...
[Info   :Il2CppInteropGen] Done in 00:00:02.7806007
[Info   :Il2CppInteropGen] Writing method pointer map...
[Info   :Il2CppInteropGen] Done in 00:00:00.0432638
[Info   :Il2CppInteropGen] Done!
[Info   : Preloader] 0 patcher plugins loaded
[Info   : Preloader] 0 assemblies discovered
[Message:AssemblyPatcher] Executing 0 patch(es)
[Message:   BepInEx] Chainloader initialized
[Warning:Il2CppInterop] Class::Init signatures have been exhausted, using a substitute!
[Info   :Il2CppInterop] Registered mono type Il2CppInterop.Runtime.DelegateSupport+Il2CppToMonoDelegateReference in il2cpp domain
[Info   :   BepInEx] 0 plugins to load
[Message:   BepInEx] Chainloader startup complete

@Michael-Ziluck
Copy link

@kecleon and @animusDS, any luck?

@kecleon
Copy link
Author

kecleon commented Oct 11, 2022

Hey, apologies for not being able to check it out sooner. @Kasuromi's fix is indeed working! Not sure if there are any other issues with this version but I have not encountered any, and am able to work on plugins now. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants