Proton needs wine-mono support

Created on 22 Aug 2018  路  34Comments  路  Source: ValveSoftware/Proton

The game Space Engineers does not open, not showing even the splash screen. I've noticed the following in the log when I try to open it:

wine: Call from 0x7b43c45c to unimplemented function mscoree.dll.CorIsLatestSvc, aborting
wine: Unimplemented function mscoree.dll.CorIsLatestSvc called at address 0x7bc50023:0x7b43c45c (thread 0015), 
starting debugger...

After the starting debugger message there are no relevant messages.

System specifications: https://gist.github.com/FurretUber/4b9e506475e91f64e4204555a20a0886

Feature Request

Most helpful comment

Is there any reason why wine-mono isn't already part of 3.16? This is a deal breaker for many games and I would consider this a high priority.

All 34 comments

I would assume that reports about games not working which are not whitelisted are not relevant.

I'm sorry for asking, but where can I see which games are whitelisted?

It requires .net 4.0 installed under XP compat and then .net 4.7.1 installed under win7 compat and possibly some xact/xaudio components from directx. It would be necessary for the maintainer to make their own proton setup to do this through steam play.

Alternatively you could set up your own local compatibility tool setup that handles this, but I am unsure of how you'd integrate it into steam.

That said, Space engineers will likely require using the built in wine d3d11 and will never be able to use DXVK, because it relies heavily on texture streaming. This is a legacy feature that will not be implemented in the Vulkan rendering pipeline.

The Steam announcement gives a pretty clear list of which games are officially supported. The Wine Application Database can also be consulted for other games which might work. Here is the entry for this game, which says it's not playable yet.

This is because we're missing .NET support, which is provided by wine-mono in Wine.

You could try to manually install Microsoft DotNet in the prefix (located in steamapps/compatdata/GAMEID/pfx) using this guide

Sims 3 requires a .Net replacement (e.g. wine-mono) with a patch for browser embed functions.

The patch is currently available on the Codeweaver's branch of Wine-Mono but should be in the main branch sooner or later.

Hi, i just want to report i get:
Call from 0x7b43c45c to unimplemented function mscoree.dll.CorIsLatestSvc, aborting
on Saint Seiya: Soldiers' Soul (348710) too despite there's people reporting it's working fine for them on the google docs spreadsheet.

Space Engineers also makes use of the stream output functionality of DX11 and seems to be integral to the game launching properly.
I got everything up to the splash screen after I installed .NET 4.0 and 4.7.1 and then started the game to which it only crashes with a stacktrace. Vulkan does not implement stream output therefore DXVK won't be able to translate the game even after you install the necessary .NET requirements.

Hi again, yesterday i tested using ubuntu 16.04, today i upgraded to 18.04 and tried again and now the game (Saint Seiya: Soldiers' Soul) works fine, i don't know if the difference was upgrading to 18.04 or a change with proton but previously i only got a black screen (and the steam overlay). Thanks for everything.

Hi, I have a problem in game shop and messages section don`t work in world of tanks blitz

Here is a paste bin link https://pastebin.com/ii0buJ2A

AXYOS (318100) requires DotNet, graphical installer says "not enough space"
Digger Online (318100) requires DotNet

Giana Sisters: Twisted Dreams (223220) is also affected by this bug with Proton 3.7-6.

You could try to manually install Microsoft DotNet in the prefix (located in steamapps/compatdata/GAMEID/pfx) using this guide

Hi, you can explain make a guide for use wine-mono or install .net, this guide use wine path, but i dont know how modify the wineprefix because i go to the path of installed game in

steamapps/compatdata/601510/pfx
ls 
dosdevices  drive_c  system.reg  userdef.reg  user.reg

and later of here i dont know what i need to modify

In this case, relative to where your game is located, \steamapps\compatdata\\pfx\ is the directory you should set to the wine prefix environment variable.

example, if you had a steam folder named steamfolder on drive Z and a game id of 23310 you'd do
WINEPREFIX=Z:\steamfolder\steamapps\compatdata\23310\pfx wineboot --init

based on that guide

Is there any reason why wine-mono isn't already part of 3.16? This is a deal breaker for many games and I would consider this a high priority.

Mono won't work for all games though, such as Space Engineers, need proper .NET instead. Plus having both installed tends to break things.

Mono won't work for all games though, such as Space Engineers, need proper .NET instead. Plus having both installed tends to break things.

Wine-Mono and Mono in general are getting better, covering more of the library base.

A good portion of the .Net code-base has been re-licensed to MIT License. They should be able to be recompiled for linking to wine-mono just fine. This would mostly cover things like Microsoft's .Net GCs for games that specifically depend on them.

Mono also has a lot better GDI libraries already, which are in the process of being integrated into Wine-Mono, although the ActiveX infrastructure is still not supported. This is the biggest block on many functions.

Mono won't work for all games though, such as Space Engineers, need proper .NET instead. Plus having both installed tends to break things.

Wine-Mono and Mono in general are getting better, covering more of the library base.

A good portion of the .Net code-base has been re-licensed to MIT License. They should be able to be recompiled for linking to wine-mono just fine. This would mostly cover things like Microsoft's .Net GCs for games that specifically depend on them.

Mono also has a lot better GDI libraries already, which are in the process of being integrated into Wine-Mono, although the ActiveX infrastructure is still not supported. This is the biggest block on many functions.

How does one go about installing wine-mono in the folder that steam expects it to be in?

@crowlogic https://github.com/Sirmentio/protontricks is the easiest way, it is to steam proton as winetricks is to wine. :-)

Thanks @OvermindDL1 I got that checked out, but it said that dotnet35 package was 32bit only and didnt work on 64bit installations.. How do I install the wine-mono msi packages with protontricks? Alternatively, is there any way to make steam use a 32bit version of wine?

Installing dotnet35 is not mono, you'd want forcemono for that. You can try installing the latest normal dotnet as well (which should include the earlier ones).

What is forcemono? @OvermindDL1

Here is what I tried

stephen@bb:~$ protontricks 292140 dotnet
[INFO] Found Steam directory at /home/stephen/.steam/steam. You can also define Steam directory manually using $STEAM_DIR
[INFO] WINETRICKS environment variable is not available. Falling back to /usr/bin/winetricks
[INFO] Found 0 Steam library folders
[INFO] Found active Proton installation: Proton 3.16
[INFO] Using Proton installation at /home/stephen/.steam/steam/steamapps/common/Proton 3.16
[INFO] WINE environment variable is not available. Setting WINE environment variable to Proton bundled version
[INFO] WINESERVER environment variable is not available. Setting WINESERVER environment variable to Proton bundled version
[INFO] Found the prefix directory at /home/stephen/.steam/steam/steamapps/compatdata/292140/pfx
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20180217 - sha256sum: 1b156c616174f41df79d72a90c52eb2b110c63a6e8ecb865d303a8f9f0908924 with wine-3.16 and WINEARCH=win64
Unknown arg dotnet
Usage: /usr/bin/winetricks [options] [command|verb|path-to-verb] ...
Executes given verbs.  Each verb installs an application or changes a setting.

Options:
    --force           Don't check whether packages were already installed
    --gui             Show gui diagnostics even when driven by commandline
    --isolate         Install each app or game in its own bottle (WINEPREFIX)
-k, --keep_isos       Cache isos (allows later installation without disc)
    --no-clean        Don't delete temp directories (useful during debugging)
-q, --unattended      Don't ask any questions, just install automatically
-r, --ddrescue        Retry hard when caching scratched discs
    --showbroken      Even show verbs that are currently broken in wine
-t  --torify          Run downloads under torify, if available
    --verify          Run (automated) GUI tests for verbs, if available
-v, --verbose         Echo all commands as they are executed
-h, --help            Display this message and exit
-V, --version         Display version and exit

Commands:
list                  list categories
list-all              list all categories and their verbs
apps list             list verbs in category 'applications'
benchmarks list       list verbs in category 'benchmarks'
dlls list             list verbs in category 'dlls'
games list            list verbs in category 'games'
settings list         list verbs in category 'settings'
list-cached           list cached-and-ready-to-install verbs
list-download         list verbs which download automatically
list-manual-download  list verbs which download with some help from the user
list-installed        list already-installed verbs
prefix=foobar         select WINEPREFIX=/home/stephen/.local/share/wineprefixes/foobar

forcemono is in the settings. You need mono installed globally too I 'think'.

@OvermindDL1 I tried that, now I'm not getting the 'wine-mono needs to be installed' error, but its still not working... steam log can be found at

https://gist.github.com/crowlogic/ad5698b9e5a1ebabd33887df975257e3

@crowlogic What game?

@OvermindDL1 Final fantasy XIII-2 see https://gist.github.com/crowlogic

The winedb page for that game was last listed as garbage, however it might be better now as that was a very old wine version, however they did have to run it in a 32-bit wine with a lot of things installed via *tricks. Try installing via protontricks dotnet452, dotnet45, dotnet40, quartz, xact_jun2010, xna40? It might be best to look at a dedicated issue for that game on this repo as well.

Hello @crowlogic, @OvermindDL1, please use #2060 for your game-specific discussion.

forcemono is in the settings. You need mono installed globally too I 'think'.

@OvermindDL1 More info? (not recognized by protontricks)

With 1555612643 proton-4.2-3b a little black box pops-up for a moment for SpaceEngineers

...
Mono: DllImport searching in: '__Internal' ('(null)').
Mono: Searching for 'GetCurrentThreadId'.
Mono: DllImport attempting to load: 'dbghelp.dll'.
38511.366:0025:0026:trace:module:load_dll looking for L"Z:\\opt\\steam\\steamapps\\common\\SpaceEngineers\\Bin64\\dbghelp.dll" in L"Z:\\opt\\steam\\steamapps\\common\\SpaceEngineers\\Bin64;C:\\Program Files (x86)\\Steam;C:\\windows\\system32;C:\\windows\\system;C:\\windows;.;C:\\windo
ws\\system32;C:\\windows;C:\\windows\\system32\\wbem"
38511.367:0025:0026:trace:module:get_load_order looking for L"Z:\\opt\\steam\\steamapps\\common\\SpaceEngineers\\Bin64\\dbghelp.dll"
38511.367:0025:0026:trace:module:get_load_order got hardcoded default for L"Z:\\opt\\steam\\steamapps\\common\\SpaceEngineers\\Bin64\\dbghelp.dll"
38511.367:0025:0026:trace:module:load_builtin_dll Trying built-in L"dbghelp.dll"
38511.367:0025:0026:trace:module:load_builtin_dll Found L"C:\\windows\\system32\\dbghelp.dll" at 0x7fb5d2430000 for builtin L"\\??\\Z:\\opt\\steam\\steamapps\\common\\SpaceEngineers\\Bin64\\dbghelp.dll"
38511.367:0025:0026:trace:module:load_dll Loaded module L"\\??\\Z:\\opt\\steam\\steamapps\\common\\SpaceEngineers\\Bin64\\dbghelp.dll" (builtin) at 0x7fb5d2430000
Mono: DllImport loaded library 'Z:\opt\steam\steamapps\common\SpaceEngineers\Bin64\dbghelp.dll'.
Mono: DllImport searching in: 'dbghelp.dll' ('Z:\opt\steam\steamapps\common\SpaceEngineers\Bin64\dbghelp.dll').
Mono: Searching for 'MiniDumpWriteDump'.
Mono: DllImport searching in: 'dbghelp.dll' ('Z:\opt\steam\steamapps\common\SpaceEngineers\Bin64\dbghelp.dll').
Mono: Searching for 'MiniDumpWriteDump'.
38511.367:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 155
38511.367:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 156
38511.367:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 157
38511.367:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 158
38511.367:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 159
38511.367:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 160
38511.367:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 161
38511.367:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 162
38511.367:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 163
38511.367:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 164
38511.367:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 165
38511.367:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 166
38511.368:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 167
38511.368:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 168
38511.368:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 169
38511.368:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 170
38511.368:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 171
38511.368:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 172
38511.368:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 173
38511.368:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 174
38511.368:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 175
38511.369:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 176
38511.369:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 177
38511.369:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 178
38511.369:0025:0026:trace:seh:RtlGrowFunctionTable 0x4c096f0, 179
[0000000000000026:] EXCEPTION handling: System.NotImplementedException: The method or operation is not implemented.

"Main thread" tid=0000000000000026 this=0000000002A70130 , thread handle : 0000000000669600, state : not waiting
  at VRage.Library.Exceptions.MyMiniDump.Write (string,VRage.Library.Exceptions.MyMiniDump/Options,VRage.Library.Exceptions.MyMiniDump/ExceptionInfo) [0x00038] in <847d65ad16df48cca1586f158c27bf7d>:0
  at Sandbox.MyInitializer.OnCrash (string,string,string,bool,System.Exception) [0x000b0] in <36ad93ae56d546f69eb53cc21ea0b10a>:0
  at Sandbox.MyInitializer.UnhandledExceptionHandler (object,System.UnhandledExceptionEventArgs) [0x000a4] in <36ad93ae56d546f69eb53cc21ea0b10a>:0
  at (wrapper runtime-invoke) <Module>.runtime_invoke_void__this___object_object (object,intptr,intptr,intptr) [0x0002a] in <72b294be54bc4854bce603b664bafd63>:0


Proton 4.2-3 ships wine-mono, so I think we should close this bug and move remaining issues onto individual games. There are two major common issues remaining: WPF support and winforms support. We have labels for these issues, so I think we should use those labels to indicate affected games instead of making one single tracker bug for them.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

shanefagan picture shanefagan  路  3Comments

prototype99 picture prototype99  路  3Comments

AwesamLinux picture AwesamLinux  路  3Comments

matou68 picture matou68  路  3Comments

Elkasitu picture Elkasitu  路  3Comments