BepInEx icon indicating copy to clipboard operation
BepInEx copied to clipboard

Can't launch IL2CPP linux games

Open claymorwan opened this issue 1 year ago • 0 comments

What happened?

Everytime I try to launch a native IL2CPP Linux game with BepInEx, I get and an error when initializing metadata then game crashes with an terminate called after throwing an instance of 'PAL_SEHException' right initializing the chainloader It did generated the configs files but can't launch no matter how much I try. Btw I set the BepInEx distribution to stable but it also does the same thing with the BleedingEdge ones, I wanted to try with the BepInEx 5.4.* versions but I couldn't find their IL2CPP linux verions.

Steps to reproduce

  1. Follow the IL2CPP Linux game installation guide and set executable_name=""; to the right executable name in the run_bepinex.sh file
  2. Run run_bepinex.sh through terminal (steam doesn't wanna even tho I'm doing it exactly as said in this page of the wiki)
  3. Watch as it dies

BepInEx Distribution

Stable from GitHub

Log outputs

[Info   :    Cpp2IL] [Library] Initializing Metadata...
[Error  :InteropManager] Failed to generate Il2Cpp interop assemblies: Cpp2IL.Core.Exceptions.LibCpp2ILInitializationException: Fatal Exception initializing LibCpp2IL!
 ---> System.FormatException: Unsupported metadata version found! We support 23-29, got 31
   at LibCpp2IL.Metadata.Il2CppMetadata.ReadFrom(Byte[] bytes, UnityVersion unityVersion) in /home/runner/work/Cpp2IL/Cpp2IL/LibCpp2IL/Metadata/Il2CppMetadata.cs:line 71
   at LibCpp2IL.LibCpp2IlMain.Initialize(Byte[] binaryBytes, Byte[] metadataBytes, UnityVersion unityVersion) in /home/runner/work/Cpp2IL/Cpp2IL/LibCpp2IL/LibCpp2IlMain.cs:line 149
   at LibCpp2IL.LibCpp2IlMain.LoadFromFile(String pePath, String metadataPath, UnityVersion unityVersion) in /home/runner/work/Cpp2IL/Cpp2IL/LibCpp2IL/LibCpp2IlMain.cs:line 202
   at Cpp2IL.Core.Cpp2IlApi.InitializeLibCpp2Il(String assemblyPath, String metadataPath, UnityVersion unityVersion, Boolean allowUserToInputAddresses) in /_/Cpp2IL.Core/Cpp2IlApi.cs:line 62
   --- End of inner exception stack trace ---
   at Cpp2IL.Core.Cpp2IlApi.InitializeLibCpp2Il(String assemblyPath, String metadataPath, UnityVersion unityVersion, Boolean allowUserToInputAddresses) in /_/Cpp2IL.Core/Cpp2IlApi.cs:line 68
   at BepInEx.Unity.IL2CPP.Il2CppInteropManager.RunCpp2Il() in /home/runner/work/BepInEx/BepInEx/Runtimes/Unity/BepInEx.Unity.IL2CPP/Il2CppInteropManager.cs:line 301
   at BepInEx.Unity.IL2CPP.Il2CppInteropManager.GenerateInteropAssemblies() in /home/runner/work/BepInEx/BepInEx/Runtimes/Unity/BepInEx.Unity.IL2CPP/Il2CppInteropManager.cs:line 236
[Info   : Preloader] 0 patcher plugins loaded
[Info   : Preloader] 0 assemblies discovered
[Message:AssemblyPatcher] Executing 0 patch(es)
[Message:   BepInEx] Chainloader initialized
terminate called after throwing an instance of 'PAL_SEHException'
[1]    1149992 IOT instruction (core dumped)  ./run_bepinex.sh

Environment

- OS: Arch Linux 6.10.6-arch1-1 (64-bit)
- BepInEx: 6.0.0-pre.2
- Game: Pretty much any native IL2CPP linux game I could try

claymorwan avatar Aug 29 '24 22:08 claymorwan