protonscr

Eterium

protonopen appid 280200Game compatibility - Unofficial.NET.NET-XNA
ValveSoftware/Proton#4180 · opened 2020-09-08 by gfbett · updated 2021-11-11 · 4 comments · github · game page · search this game
Ggfbett 2020-09-08 github

Compatibility Report

  • Name of the game with compatibility issues: Eterium
  • Steam AppID of the game: 280200

System Information

I confirm:

  • [X] that I haven't found an existing compatibility report for this game.
  • [X] that I have checked whether there are updates for my system available.

steam-280200.log

Symptoms

The launcher appears, but after clicking Play Etereum, it just closes

Reproduction

Just try to play the game

Ggfbett 2020-09-08 github

The following error appears in the log:

[0000018C:] EXCEPTION handling: System.InvalidProgramException: Invalid IL code in :CSteamAchievements.OnUserStatsReceived (CSteamAchievements* modopt(System.Runtime.CompilerServices.IsConst) modopt(System.Runtime.CompilerServices.IsConst),UserStatsReceived_t*): IL_00c4: ldc.i4.s 48

[0000018C:] EXCEPTION handling: System.InvalidProgramException: Invalid IL code in :CSteamAchievements.OnUserStatsReceived (CSteamAchievements* modopt(System.Runtime.CompilerServices.IsConst) modopt(System.Runtime.CompilerServices.IsConst),UserStatsReceived_t*): IL_00c4: ldc.i4.s 48

[0000018C:] EXCEPTION handling: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.

Unhandled Exception:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidProgramException: Invalid IL code in :CSteamAchievements.OnUserStatsReceived (CSteamAchievements* modopt(System.Runtime.CompilerServices.IsConst) modopt(System.Runtime.CompilerServices.IsConst),UserStatsReceived_t*): IL_00c4: ldc.i4.s 48

at (wrapper native-to-managed) .CSteamAchievements.OnUserStatsReceived(CSteamAchievements* modopt(System.Runtime.CompilerServices.IsConst) modopt(System.Runtime.CompilerServices.IsConst),UserStatsReceived_t*)
at .CCallback<CSteamAchievements,UserStatsReceived_t,0>.Run (CCallback<CSteamAchievements,UserStatsReceived_t,0>* , System.Void* pvParam) [0x00000] in <3f08e53e570a454c9906fc5835c6e139>:0
at (wrapper native-to-managed) .CCallback<CSteamAchievements,UserStatsReceived_t,0>.Run(CCallback<CSteamAchievements,UserStatsReceived_t,0>* modopt(System.Runtime.CompilerServices.IsConst) modopt(System.Runtime.CompilerServices.IsConst),void*)
at (wrapper managed-to-native) .SteamAPI_RunCallbacks()
at SteamWrapper.SteamWrapper.Tick () [0x00000] in <3f08e53e570a454c9906fc5835c6e139>:0
at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in :0
--- End of inner exception stack trace ---
at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00083] in :0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in :0
at EteriumEngine3.SteamWrapper.Tick () [0x00000] in <3610edd168404694b3fe309b6c96fb76>:0
at EteriumEngine3.SpaceShooterGame.Update (Microsoft.Xna.Framework.GameTime _GameTime) [0x0000a] in <8497a7f37b5f4ef0b9d592465e734721>:0
at Microsoft.Xna.Framework.Game.Tick () [0x00103] in <2a509bd9153f43e2a56073000f1bcdc4>:0
at Microsoft.Xna.Framework.SDL2_FNAPlatform.RunLoop (Microsoft.Xna.Framework.Game game) [0x0073b] in <2a509bd9153f43e2a56073000f1bcdc4>:0
at Microsoft.Xna.Framework.Game.Run () [0x0002f] in <2a509bd9153f43e2a56073000f1bcdc4>:0
at EteriumEngine3.Program.Main (System.String[] _Args) [0x000ac] in <8497a7f37b5f4ef0b9d592465e734721>:0
269266.590:0188:018c:trace:mscoree:CorExitProcess (1)
269266.590:0188:018c:trace:mscoree:CLRMetaHost_ExitProcess 1

Mmadewokherd 2020-09-11 github

The only way I can think of for an "ldc" instruction to be invalid is if the method stack size is wrong.

It's not obvious to me what the problem is with the stack size, but I can see that it's also calling a varargs pinvoke method, which isn't currently supported in Mono.

Mmadewokherd 2021-06-05 github

This should be fixed by Wine Mono 6.2.0.

There's currently no Proton release that includes the new Wine Mono, but the MSI can be manually installed for a specific game. @redmcg has a helpful guide here: https://github.com/redmcg/wine-mono/wiki#install-later-version

Ggfbett 2021-09-11 github

I've tried with proton-ge-16-1 (that includes wine-mono 6.3.0), and the game now launches, but it freezes when trying to load the interface.
I see several errors like this:
153259.607:010c:0110:fixme:uiautomation:UiaClientsAreListening (): stub
153291.802:010c:0110:fixme:uiautomation:UiaReturnRawElementProvider (00010112, 0, 0, 00000000): stub!
so it seems is using things not implemented in wine mono

Besides, there are some errors:
[00000118:] EXCEPTION handling: System.InvalidOperationException: Invoke or BeginInvoke cannot be called on a control until the window handle has been created.

steam-280200.log

Nothing extracted yet.