ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
24.5k stars 1.07k forks source link

Sims 3 (47890) #2502

Open Ruedii opened 5 years ago

Ruedii commented 5 years ago

Compatibility Report

System Information

I confirm:

Symptoms

Launcher won't launch (Game Launcher Requires .Net on Wine. Uses modules not currently found in WineMono) Game will launch bypassing launcher, but download and online functionality does not work as it calls the launcher.

Reproduction

Download game Attempt to launch

Related Issues

Proton Needs Wine-Mono Support #18

Ruedii commented 5 years ago

Update.

As of Proton 4.11.

Launcher is loading, displaying it's initial screen, then crashing. A little progress here. Is there a way to make stubs for the remaining unsupported .Net functionality.

Currently unsupported is some or all of the following: WPF, WinForms and Browser functions.

Ideally the stub widget should take generic size information and create an blank spacer widget if applicable.

Ruedii commented 5 years ago

OK, I grabbed a bug log. It's pretty noisy but I found some Mono browser stuff in there:

steam-47890.log

I also noticed a codepage loading issue that may be due to case sensitivity in there. I don't think it should make a difference, though.

Newbytee commented 5 years ago

Another issue I found in the game is that with edge smoothing enabled, all fonts in the game (if you bypass the launcher and launch the game executable directly) will have random parts missing. This is with amdgpu version something on a Radeon Vega 56 in Fedora 30.

Ruedii commented 5 years ago

Double check that you changed the game resolution to match your screen resolution.

Sims 3 runs at rather low resolution by default and this known bug is related to this. It affects windows users to a lesser degree.

On Sat, Aug 10, 2019, 10:22 AM Newbyte notifications@github.com wrote:

Another issue I found in the game is that with edge smoothing enabled, all fonts in the game (if you bypass the launcher and launch the game executable directly) will have random parts missing. This is with amdgpu version something on an Radeon Vega 56 in Fedora 30.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/Proton/issues/2502?email_source=notifications&email_token=AAYFL2PCKJAMLK2NGZ33IMTQD3FJPA5CNFSM4HDV2HMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4AONUQ#issuecomment-520152786, or mute the thread https://github.com/notifications/unsubscribe-auth/AAYFL2MI3MGGXE5NI7SUHIDQD3FJPANCNFSM4HDV2HMA .

Newbytee commented 5 years ago

Double check that you changed the game resolution to match your screen resolution. Sims 3 runs at rather low resolution by default and this known bug is related to this. It affects windows users to a lesser degree.

1080p, both my in-game and my monitor's resolution.

Ruedii commented 5 years ago

There is a hack. The game's fonts are in the game directory. There is a utility called "Autohint" you can run on them. (Back them up first obviously.) If it works, make sure to report back so a feature request can be filed to run fonts through the auto-hinter for better quality, as it should improve quality for all fonts.

On Sat, Aug 10, 2019 at 5:39 PM Newbyte notifications@github.com wrote:

Double check that you changed the game resolution to match your screen resolution. Sims 3 runs at rather low resolution by default and this known bug is related to this. It affects windows users to a lesser degree.

1080p, both in-game and my monitor's resolution.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/Proton/issues/2502?email_source=notifications&email_token=AAYFL2OUQXAGPYOXRYMZE73QD4YQJA5CNFSM4HDV2HMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4AVOBA#issuecomment-520181508, or mute the thread https://github.com/notifications/unsubscribe-auth/AAYFL2JTPXWU4CZKYZBFAIDQD4YQJANCNFSM4HDV2HMA .

Newbytee commented 5 years ago

There is a hack. The game's fonts are in the game directory. There is a utility called "Autohint" you can run on them. (Back them up first obviously.) If it works, make sure to report back so a feature request can be filed to run fonts through the auto-hinter for better quality, as it should improve quality for all fonts.

I suppose we're talking about this? I'll see about giving it a shot.

Ruedii commented 5 years ago

No, it's a different one. A command line Linux utility based on freetype. I'll pull the website next time I am at my computer. However it is available in the repositories of most Linux distros. I know for sure Ubuntu and Debian have it.

On Sun, Aug 11, 2019, 3:47 AM Newbyte notifications@github.com wrote:

There is a hack. The game's fonts are in the game directory. There is a utility called "Autohint" you can run on them. (Back them up first obviously.) If it works, make sure to report back so a feature request can be filed to run fonts through the auto-hinter for better quality, as it should improve quality for all fonts.

I suppose we're talking about this https://www.freetype.org/ttfautohint/? I'll see about giving it a shot.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/Proton/issues/2502?email_source=notifications&email_token=AAYFL2IKYJALVEAYAFFV5R3QD672RA5CNFSM4HDV2HMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4A34AA#issuecomment-520207872, or mute the thread https://github.com/notifications/unsubscribe-auth/AAYFL2MOTHTCL3R3YXHGLILQD672RANCNFSM4HDV2HMA .

Newbytee commented 5 years ago

No, it's a different one. A command line Linux utility based on freetype. I'll pull the website next time I am at my computer. However it is available in the repositories of most Linux distros. I know for sure Ubuntu and Debian have it.

What's the package name in Ubuntu and Debian?

madewokherd commented 5 years ago

Launcher seems to crash in mshtml/jscript code. Does this work in .NET?

Ruedii commented 5 years ago

It did last I checked but that was a long time ago on Vanilla wine. I also checked it under codeweavers wine.

I saw the browser element loading just before the crash in the logs, so yes it might the Wine mshtml implementation, or it's bridging code to wine-mono. We may need to implement a new wine browser as I suspect now that all the .net embeds are working we will have the bugs with the ugly, libgluezilla hack we are using to embed winebrowser.

madewokherd commented 5 years ago

We're not using libgluezilla, and we never were. Currently, the embedding code is from .NET core winforms.

Ruedii commented 5 years ago

OK. Thanks.

According to the log it is using wine-mono but I can't tell if the crash is in wine-mono or a called library. I may review it later. I've got some surgery coming up and needless to say I'm resting a lot.

Ruedii commented 5 years ago

What's the package name in Ubuntu and Debian?

It's "ttfautohint"

divadsn commented 5 years ago

For the launcher you need to install vcrun2005 via protontricks, it's not a .NET related error.

Here is the full dependency list to make the game running via Wine:
https://github.com/divadsn/wine-games/blob/master/TheSims3/install.sh#L31

divadsn commented 5 years ago

grafik

As you can see I was able to install the free world Riverview without any problems.

I am running the retail version with all extension packs on Wine-4.15.

Ruedii commented 5 years ago

Are you using unmodified proton out of box or are you using hacks? What is your system including proton version if it is working for you?

On Sat, Sep 21, 2019, 5:23 PM David Sn notifications@github.com wrote:

[image: grafik] https://user-images.githubusercontent.com/28547847/65379337-addba880-dcc6-11e9-9462-bd58edaa25a6.png As you can see I was able to install the free world Riverview without any problems.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/Proton/issues/2502?email_source=notifications&email_token=AAYFL2MAT3LTPEE7QOSCAKLQK2GGHA5CNFSM4HDV2HMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7IZ4VA#issuecomment-533831252, or mute the thread https://github.com/notifications/unsubscribe-auth/AAYFL2MOIGA7Y76WKSE5CMTQK2GGHANCNFSM4HDV2HMA .

divadsn commented 5 years ago

Are you using unmodified proton out of box or are you using hacks? What is your system including proton version if it is working for you? On Sat, Sep 21, 2019, 5:23 PM David Sn @.***> wrote: [image: grafik] <user-images.githubusercontent.com/28547847/65379337-addba880-dcc6-11e9-9462-bd58edaa25a6.png> As you can see I was able to install the free world Riverview without any problems. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <#2502?email_source=notifications&email_token=AAYFL2MAT3LTPEE7QOSCAKLQK2GGHA5CNFSM4HDV2HMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7IZ4VA#issuecomment-533831252>, or mute the thread <github.com/notifications/unsubscribe-auth/AAYFL2MOIGA7Y76WKSE5CMTQK2GGHANCNFSM4HDV2HMA> .

I originally did that on just Wine, but also tested on unmodified proton 4.11 out of the box from Steam.

Ruedii commented 5 years ago

I will have to try again with a completely clean compat install and get back to all of you.

On Fri, Oct 11, 2019, 9:49 PM David Sn notifications@github.com wrote:

Are you using unmodified proton out of box or are you using hacks? What is your system including proton version if it is working for you? … <#m-7079563010748810991> On Sat, Sep 21, 2019, 5:23 PM David Sn @.***> wrote: [image: grafik] < user-images.githubusercontent.com/28547847/65379337-addba880-dcc6-11e9-9462-bd58edaa25a6.png> As you can see I was able to install the free world Riverview without any problems. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <#2502 https://github.com/ValveSoftware/Proton/issues/2502?email_source=notifications&email_token=AAYFL2MAT3LTPEE7QOSCAKLQK2GGHA5CNFSM4HDV2HMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7IZ4VA#issuecomment-533831252>, or mute the thread < github.com/notifications/unsubscribe-auth/AAYFL2MOIGA7Y76WKSE5CMTQK2GGHANCNFSM4HDV2HMA> .

I originally did that on just Wine, but also tested on unmodified proton 4.11 out of the box from Steam.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/Proton/issues/2502?email_source=notifications&email_token=AAYFL2MRDNB24UVT255P7LTQOEUMNA5CNFSM4HDV2HMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBBSJAI#issuecomment-541271169, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAYFL2PO5HX22PIFB3INKPLQOEUMNANCNFSM4HDV2HMA .

Ruedii commented 5 years ago

The launcher still doesn't work for me, are you ABSOLUTELY sure you had ZERO modifications to the install.

No renamed files, no added runtimes, no added launch options, no scripts like WineTricks, ProtonTricks, Play On Linux or Lutris. No modification of registry keys, no running winecfg, no non-standard wine bottle path other than the one Steam creates. No changes from steam's default setup?

Just downloading from steam and launching out of box, no changes whatsoever at all?

We are talking go to steam, install Sims 3, set proton version to 4.11 and run?

This has to be tested with the Steam version. The steam version has a different launcher than the Retail or Origin version.

If you are installing VC Runtime that is NOT out of box. I repeat, without installing ANY SCRIPTS OR RUNTIMES!

In the image you provided you were using Wine virtual desktop. That is also not considered out of box.

divadsn commented 5 years ago

@Ruedii read carefully before writing again:

For the launcher you need to install vcrun2005 via protontricks, it's not a .NET related error.

That runtime is missing and not being actually installed in the Steam version, but I discovered that Origin does install and fixes the issue for me.

I've written about that in my comment mentioning the actual fix, it's not a Proton issue when Steam does not install all dependencies. It is also not a wine-mono issue, so this entirely issue is not up to the Proton developers to fix, rather Valve to include Visual C++ Runtime 2005 when installing the game.

PS. wine virtual desktop doesn't affect anything, I just enable that so I can tab out of a game without having the game crashing.

Ruedii commented 5 years ago

You then said in the next post it works on Proton out of box. It is not out of box with that runtime.

On Tue, Oct 15, 2019, 5:49 AM David Sn notifications@github.com wrote:

@Ruedii https://github.com/Ruedii read carefully before writing again:

For the launcher you need to install vcrun2005 via protontricks, it's not a .NET related error.

That runtime is missing and not being actually installed in the Steam version, but I discovered that Origin does install and fixes the issue.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/Proton/issues/2502?email_source=notifications&email_token=AAYFL2JOAIZ6G4DNX5ZAXUDQOWGY7A5CNFSM4HDV2HMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBIEQQY#issuecomment-542132291, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAYFL2MA2QXS5LLTORVHPVTQOWGY7ANCNFSM4HDV2HMA .

madewokherd commented 5 years ago

In theory, VC runtimes shouldn't be necessary, as Wine should provide compatible replacements. However, there are some large dll's like mfc which are not implemented in Wine.

If the log doesn't show an error loading any dll's like mfc, it should be possible to find and fix the problem with Wine's builtin VC runtime dll's.

madewokherd commented 5 years ago

According to the list in https://github.com/ValveSoftware/Proton/issues/2502#issuecomment-533830833, dotnet20 is required, so there may still be a Mono bug.

Ruedii commented 5 years ago

I would place my bets on it being a minor bug in Mono interacting with a minor bug in Wine. This is likely resulting in a major bug.

On Tue, Oct 15, 2019, 3:16 PM Vincent Povirk notifications@github.com wrote:

According to the list in #2502 (comment) https://github.com/ValveSoftware/Proton/issues/2502#issuecomment-533830833, dotnet20 is required, so there may still be a Mono bug.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/Proton/issues/2502?email_source=notifications&email_token=AAYFL2KZXA3TV5BRRTTRUZ3QOYJIJA5CNFSM4HDV2HMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBJ47DY#issuecomment-542363535, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAYFL2JEJ4ZI556HJXDJMHDQOYJIJANCNFSM4HDV2HMA .

Ruedii commented 5 years ago

To go into detail on why I think this, it works with Wine's VC runtime when running Microsoft .Net, but does not with Wine-Mono. However, with Microsoft VC Runtime it works fine with Wine Mono.

This leads me to believe it is a bug interaction where each bug alone does not a major failure, but together they are fatal.

On Wed, Oct 16, 2019, 1:40 AM Robert Ruedisueli ruediix@gmail.com wrote:

I would place my bets on it being a minor bug in Mono interacting with a minor bug in Wine. This is likely resulting in a major bug.

On Tue, Oct 15, 2019, 3:16 PM Vincent Povirk notifications@github.com wrote:

According to the list in #2502 (comment) https://github.com/ValveSoftware/Proton/issues/2502#issuecomment-533830833, dotnet20 is required, so there may still be a Mono bug.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/Proton/issues/2502?email_source=notifications&email_token=AAYFL2KZXA3TV5BRRTTRUZ3QOYJIJA5CNFSM4HDV2HMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBJ47DY#issuecomment-542363535, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAYFL2JEJ4ZI556HJXDJMHDQOYJIJANCNFSM4HDV2HMA .

divadsn commented 5 years ago

So you were finally able to launch the launcher after installing vcrun2005 via protontricks as I suggested as a workaround or temporary fix for now?

Ruedii commented 5 years ago

No, that is not what this bug report is for.

The purpose of this bug is to track progress of the Steam version running on vanilla proton.

As a note, an inspection of the log reports tons of MSXML errors and no MSVCRT errors.

I suspect the necessary version of MSXML ships with that version of MSVCRT, and MSXML is the real problem here.

Ruedii commented 5 years ago

According to the list in #2502 (comment), dotnet20 is required, so there may still be a Mono bug.

I suspect it is a mono bug interacting with wine bug.

It works with either MS .Net installed or Microsoft C Runtime installed. I suspect it is MSXML because MSXML fixmes pop up frequently and the final crash is in some form of XUL handling code.

Ruedii commented 5 years ago

OK, After some thought on the issue and some examining of the log, I suspect I know the problem.

Wine-Mono is not properly handling when a native call is resulting in a fixme stub.

The component in question giving a problem fixme stub is one of the ones provided by the relevant Microsoft Visual C Runtime, which includes quite a few DLLs.

This causes a cascade failure, eventually resulting in a series of Exceptions and a Segfault on the next native call.

This is why either using Microsoft .Net, which properly handles the fail or Microsoft Visual C Runtime that provides the function, will fix the issue.

If my inclination is correct, making sure that Wine-Mono handles Wine's stubbed functions properly might address the issue.

madewokherd commented 5 years ago

There's no reason logging a fixme should affect wine-mono. But, if the function is missing important functionality, as the stub message indicates, that could cause problems. Or it could be fine.

What are the functions involved?

Ruedii commented 5 years ago

That's what I meant, was the way the fixme handles the stubbing. I'll have to check the log later when I am back at my computer. I'll also see about making a fresh log and posting it.

On Tue, Oct 22, 2019, 2:25 PM Vincent Povirk notifications@github.com wrote:

There's no reason logging a fixme should affect wine-mono. But, if the function is missing important functionality, as the stub message indicates, that could cause problems. Or it could be fine.

What are the functions involved?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/Proton/issues/2502?email_source=notifications&email_token=AAYFL2OWA2MTKBXXALQ6R33QP5APZA5CNFSM4HDV2HMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEB6XDMI#issuecomment-545092017, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAYFL2MJ5FRLHXF5QXL6FDDQP5APZANCNFSM4HDV2HMA .

Ruedii commented 4 years ago

I pulled a fresh log on this. I'll do the same for my other applications where the .net-based launchers aren't working. The stack trace is:

    Managed Stacktrace:
=================================================================
      at <unknown> <0xffffffff>
      at System.Windows.Forms.UnsafeNativeMethods:DispatchMessageW <0x00012>
      at ComponentManager:System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop <0x006a7>
      at ThreadContext:RunMessageLoopInner <0x0074d>
      at ThreadContext:RunMessageLoop <0x0005b>
      at ThreadContext:RunMessageLoop <0x00087>
      at System.Windows.Forms.Application:Run <0x0005f>
      at Sims3Launcher.AppManager:Main <0x00fcf>
      at <Module>:runtime_invoke_void_object <0x0006c>
=================================================================

The full log is:

steam-47890.log

madewokherd commented 4 years ago

DispatchMessage could go anywhere. WINEDEBUG=+msg,+win,+seh might provide more information.

Ruedii commented 4 years ago

OK, got the updated log steam-47890.log

By Occam's Razor we should start here and work back: "0030:trace:win: win 0x1300f8 surface (nil) -> (nil) 0030:trace:win:WIN_CreateWindowEx created window 0x1300f8 0030:trace:seh:regs_MSVCRT__setjmp3 buf=0x55c9eb0 ebx=055c9b18 esi=055c9b18 edi=0537a8a0 ebp=0032d6a8 esp=0032d67c eip=0d0005da frame=0032ff78 0030:fixme:mshtml:nsChannel_GetContentLength (15133958)->(0032D740) 0076:trace:seh:regs_MSVCRT__setjmp3 buf=0x55c9eb0 ebx=055c9b18 esi=00001000 edi=055c9b18 ebp=13eafc0c esp=13eafb40 eip=0d0068b2 frame=13eaff7c 0030:trace:win:DestroyWindow (0x1300f8) 0030:trace:win:WIN_DestroyWindow 0x1300f8 0025:trace:msg:peek_message got type 6 msg 210 (WM_PARENTNOTIFY) hwnd 0x10026 wp 2 lp 1300f8 0030:trace:seh:raise_exception code=c0000005 flags=0 addr=0xffffffff ip=ffffffff tid=0030 0030:trace:seh:raise_exception info[0]=00000000 0030:trace:seh:raise_exception info[1]=ffffffff 0030:trace:seh:raise_exception eax=0525ca60 ebx=14f7f818 ecx=0032dfcc edx=00000006 esi=0032e03c edi=055e4c10 0030:trace:seh:raise_exception ebp=0032dfe8 esp=0032df8c cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010246 0030:trace:seh:call_vectored_handlers calling handler at 0x9a6370 code=c0000005 flags=0"

Since A/B testing determined MSVC was part of the issue, it might be a good lead to look into the "__regs_MSVCRT__setjmp3" message. Since this message is more than a bit beyond the scope of my expertise, I'm going to need more than a little help on it.

The most I can find in a quick search is that it is an assembly based implementation of a function in one routine, and seems to have been a problem on more than one occasion. There is a lot of stuff to sort through which really makes more than the ideal number of results when searching for information. I might spend more time on researching it later, if you need help on that. However, I'm starting to hit my limit for this work session so I'll do better quality work if I start on it on a fresh day.

madewokherd commented 4 years ago

Looks like the message being processed during the crash is 8008 to a "Internet Explorer_Hidden" window. You can also see xul and jscript in the unmanaged stack trace. This makes me think it may be gecko-related.

I'm wondering where the functions in the stack trace that aren't part of a module come from. If they were managed code, they'd show up in the managed stacktrace.

I'll see what I can figure out about the stack frames that are in jscript.

madewokherd commented 4 years ago

Based on the unmanaged stack trace, it appears to be crashing in disp_get_id in jscript. This could be a problem with a dispatch interface provided by mono.

madewokherd commented 4 years ago

If it is using an IDispatch interface from Mono, it's not surprising that it doesn't work. Mono lacks any real idispatch support and what's there is broken. See also https://github.com/mono/mono/pull/14260

Ruedii commented 4 years ago

Is there a way one could compile together all of the open sourced segments of .Net under Wine, supplementing missing ones with routines from Mono to make a Wine .Net framework?

If proper effort is taken it could also be made capable of linking to WinPR for a native framework. We could also patch in Mono's SGen GC because it is honestly better.

madewokherd commented 4 years ago

I think it's very unlikely that .NET Core's COM interop code could work with the rest of Mono's internals. Nor do I expect that runtime environment to be significantly more compatible with legacy .NET apps than Wine Mono is now, even if we can fill in the API gaps with parts from the Mono class libraries.

It seems like a really big project with little benefit, so I haven't looked into it, but if someone built a proof of concept with a .NET Core runtime that can do some of the mscoree integration we do now, like loading mixed-mode libraries, maybe I could be convinced.

Ruedii commented 4 years ago

I was thinking the same thing about the amount of work, but thought the benefit might be more.

Specifically, I noted that a very large number of the subsets have source code of the .Net Framework version available under MIT license. They just don't have any available binaries.

I haven't looked into the prospect and scope of the modules that need porting. I probably should work up a list of what is available for .Net Core from NuGet or GIT and what needs to be ported from Wine-Mono.

It is a large scope project, but assessing the scope would give a better idea of the cost/benefit.

It very well might be possible that 99% of the Microsoft .Net framework got open sourced, and there just aren't any binaries provided under free licenses. Microsoft has been so hush on what exactly they open sourced, it took me a while to find the GitHub pages for the entire WPF and WCF frameworks. At least one developer managed to port the open source WPF code to .Net Core under Wine in a proof of concept.

There might be a way to shim out an alternate COM interop code on the compile flags that target Mono so one .Net Core and one Mono. This could either be done at compile time or at load link time based on various build target information. I suspect the fact that Mono libraries and applications link to the Mono framework branch if available before falling back on the .Net one and that .Net applications do the reverse could be utilized for this purpose.

madewokherd commented 4 years ago

Part of it is that I don't think the runtime that was open-sourced is the same one used in .NET 4.x and earlier. I could be wrong about that. If it is the same, I'd guess they've removed a lot of it, as they did with the class libraries.

BTW, the open sourced portions of WPF are in Wine Mono now, under the master branch. There are no binaries available yet, and it needs some dlls from .NET Core to really work, but it's in there.

Ruedii commented 4 years ago

A big chunk of .Net core is Open Source now. Is it possible those could be pulled over to Wine-Mono as well, or are those going to run aground on COM IPC handling issues as well?

Ruedii commented 4 years ago

Here's the log for Proton 5: steam-47890.log

As of if the issues are with wine-gecko. First, I've already expressed my belief that Wine should move to a CEF based replacement for Wine-Gecko. It is closer to what is used in the new Windows 10 framework from Microsoft. However, I don't think that is related to this particular issue. I just wanted to point out that it would fix many misbehavior patterns.

Second, I wonder if we should have the browser scripting in wine-gecko using Wine-Mono, much like Windows uses .Net in MSHTML for scripting. I know this is a long term solution, but it's something to think about for a possibility down the road.

BTW, could someone tell me what this 0xFFFFFFFF segfault means usually? It looks like some sort of intentionally forced fault. I'm not familiar enough with low level mono to understand what causes it.

madewokherd commented 4 years ago

This is getting off-topic, but both of those arguments are incorrect. MSHTML on Windows does not use Edge or .NET. MSHTML is simply being phased out in Windows applications, being based on a rendering engine that's no longer developed, and replaced by other solutions like CEF.

The "unknown" line in the stack trace means the exception happened in unmanaged code. The stack trace from winedbg will have more information on that.

Ruedii commented 4 years ago

Thanks for the explanation.

What I was saying is I was wondering if .Net's various implementations are moving away from MSHTML as well. Also I'm wondering if edge will become the "default" generic HTML OLE embed. (Leaving only specific calls to MSHTML using Trident, that is if Microsoft doesn't make a stop-gap wrapper there as well).

However, that is a bit off topic. Also we might not know the answer until Microsoft finishes that transition. It's probably better to wait and find out.

Back on topic, the issue of COM/DCOM call management seems to be the hangup right now, and I noticed a lot of code compatibility problems in implementing it properly.

kisak-valve commented 4 years ago

Startup issue for the sim 3 on Ubuntu

Issue transferred from https://github.com/ValveSoftware/Proton/issues/3705. @jimmerd1 posted on 2020-03-30T01:11:58:

Compatibility Report

System Information

I confirm:

<Proton log omitted, please see #3705.>

Symptoms Start up issue

kisak-valve commented 4 years ago

Hello @jimmerd1, friendly note that nVidia's 340 and 390 driver series is older than the minimum requirements for Proton. It looks like the nVidia GT 720m has a Fermi (GF117) and Kepler (GK208) variant. Your system information tells us you have a working vulkan stack, so that hints that you have the Kepler variant, which the newer of the two variants and is supported in newer nVidia driver series. Please consider updating you video driver.

That set aside, it looks there are other issues with Proton and this game that are currently blocking this game from working out of the box.

jiminorris commented 4 years ago

For the launcher you need to install vcrun2005 via protontricks, it's not a .NET related error.

Here is the full dependency list to make the game running via Wine: https://github.com/divadsn/wine-games/blob/master/TheSims3/install.sh#L31

I know that things have probably progressed beyond this now, and aware that this isn't - exactly - what this issue is for, but in the interests of having as much information as possible, I have installed dotnet20, mfc42, d3dx9, vcrun2005 and vcrun2010 via protontricks and the launcher still crashes in exactly the same way.

Ruedii commented 4 years ago

For the launcher you need to install vcrun2005 via protontricks, it's not a .NET related error. Here is the full dependency list to make the game running via Wine: https://github.com/divadsn/wine-games/blob/master/TheSims3/install.sh#L31

I know that things have probably progressed beyond this now, and aware that this isn't - exactly - what this issue is for, but in the interests of having as much information as possible, I have installed dotnet20, mfc42, d3dx9, vcrun2005 and vcrun2010 via protontricks and the launcher still crashes in exactly the same way.

The issue lies somewhere when there is a DotNet native interface call.

There are several possible causes for this. The two most likely: The launcher uses embedded browser element with Flash Active X plugin. (This is a problem on so many levels) The launcher does a few DRM checks to handle registering the encryption verification any DLC off of the Sims 3 store.

The former was a problem in previous releases of Wine.