argonlefou / DemulShooter

Enable dual lightgun play in arcade games and emulator
114 stars 16 forks source link

Drakons Realm Keepers - crash when unity patch installed #249

Open djEatch opened 4 weeks ago

djEatch commented 4 weeks ago

Standalone version Game.exe launches fine, however, the introduction of the unity patch files from DemulShooter 12.10 or 12.11 causes the game to not launch at all with the following error in eventviewer:

Application: Game.exe CoreCLR Version: 6.0.722.32202 .NET Version: 6.0.7 Description: The process was terminated due to an internal error in the .NET Runtime at IP 00007FFCEE301FDD (00007FFCEE130000) with exit code c0000005.

AND

Faulting application name: Game.exe, version: 2018.3.14.59889, time stamp: 0x5cc1cb86 Faulting module name: coreclr.dll, version: 6.0.722.32202, time stamp: 0x62b2f16b Exception code: 0xc0000005 Fault offset: 0x00000000001d1fdd Faulting process id: 0x0x3E8C Faulting application start time: 0x0x1DAF028AA6099F9 Faulting application path: D:\Users\dunca\Downloads\Drakons Realm Keepers\Game.exe Faulting module path: D:\Users\dunca\Downloads\Drakons Realm Keepers\dotnet\coreclr.dll Report Id: 14cfabab-e334-4db7-86b3-e7be39a579a7 Faulting package full name: Faulting package-relative application ID:

This behaviour is consistent across multiple win 11 PCs/Laptops (AMD CPU and NVidia GPUs) Removal of the patch files results in the game launching correctly again.

djEatch commented 4 weeks ago

Error log from BepInEx folder: Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. Repeat 2 times:

at Interop+WinHttp.WinHttpOpen(IntPtr, UInt32, System.String, System.String, Int32)

at System.Net.Http.HttpWindowsProxy.TryCreate(System.Net.IWebProxy ByRef) at System.Net.Http.SystemProxyInfo.ConstructSystemProxy() at System.Lazy1[[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ViaFactory(System.Threading.LazyThreadSafetyMode) at System.Lazy1[[System.Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ExecutionAndPublication(System.LazyHelper, Boolean) at System.Lazy`1[[System.Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].CreateValue() at System.Lazy1[[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].get_Value() at System.Net.Http.HttpClient+<>c.<get_DefaultProxy>b__15_0() at System.Threading.LazyInitializer.EnsureInitializedCore[[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon ByRef, System.Func1) at System.Threading.LazyInitializer.EnsureInitialized[[System.Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Canon ByRef, System.Func1<System.__Canon>) at System.Net.Http.HttpClient.get_DefaultProxy() at System.Net.Http.HttpConnectionPoolManager..ctor(System.Net.Http.HttpConnectionSettings) at System.Net.Http.SocketsHttpHandler.SetupHandlerChain() at System.Net.Http.SocketsHttpHandler.SendAsync(System.Net.Http.HttpRequestMessage, System.Threading.CancellationToken) at System.Net.Http.HttpClientHandler.SendAsync(System.Net.Http.HttpRequestMessage, System.Threading.CancellationToken) at System.Net.Http.HttpMessageInvoker.SendAsync(System.Net.Http.HttpRequestMessage, System.Threading.CancellationToken) at System.Net.Http.HttpClient+<GetStreamAsyncCore>d__51.MoveNext() at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[System.Net.Http.HttpClient+<GetStreamAsyncCore>d__51, System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]](<GetStreamAsyncCore>d__51 ByRef) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1[[System.Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[System.Net.Http.HttpClient+d51, System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]](d__51 ByRef) at System.Net.Http.HttpClient.GetStreamAsyncCore(System.Net.Http.HttpRequestMessage, System.Threading.CancellationToken) at System.Net.Http.HttpClient.GetStreamAsync(System.Uri, System.Threading.CancellationToken) at System.Net.Http.HttpClient.GetStreamAsync(System.String) at BepInEx.Unity.IL2CPP.Il2CppInteropManager.DownloadUnityAssemblies() at BepInEx.Unity.IL2CPP.Il2CppInteropManager.GenerateInteropAssemblies() at BepInEx.Unity.IL2CPP.Il2CppInteropManager.Initialize() at BepInEx.Unity.IL2CPP.Preloader.Run() at BepInEx.Unity.IL2CPP.UnityPreloaderRunner.PreloaderMain() at Doorstop.Entrypoint.Start()

argonlefou commented 4 weeks ago

Can you try again after removing demulshooter dll file in /BepInEx/plugins/ folder ?

This would help to know whether the error is linked to the BepInEx project itself or the dll plugin (which is loaded afterwards by BepInEx, after if has been initialized correctly)

djEatch commented 4 weeks ago

Hi, i've given that a try and get the same result - no launch, and same error logs as above... Are there any pre-req's that i might be missing (DotNet?)

argonlefou commented 4 weeks ago

Ok thanks

So the error is beause of BepInEx, not the plugin itself.

The version needed for this game is specific, and I think it requires .NET 6.0 I myself had to install and setup a whole new visual studio to make the plugin, it may be worth checking that indeed