http://bugs.winehq.org/show_bug.cgi?id=23816
Summary: Wine fails to find mscorsvw.exe Product: Wine Version: 1.2 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: william.r.douglas+wine@gmail.com CC: madewokherd@gmail.com
I am getting the attached error when I attempt to run wine with a executable requiring .NET 3.5.
I am using wine 1.2 installed through the ubuntu ppa. I am using 64 bit ubuntu so my lib directory is /usr/lib32/wine though I don't know if that makes much difference. Also my full path for the v2 .NET folder is:
~/.wine/drive_c/windows/Microsoft.NET/Framework/v2.0.50727
I am attempting to have mono26 installed through winetricks be used in place of the .NET framework.
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #1 from Dmitry Timoshkov dmitry@codeweavers.com 2010-07-28 03:15:35 --- What application is that? You forgot to attach console output.
Did you try with .net installed through winetricks?
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #2 from william william.r.douglas+wine@gmail.com 2010-07-28 15:45:36 --- Created an attachment (id=29892) --> (http://bugs.winehq.org/attachment.cgi?id=29892) running program BloodlineChampions.exe
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #3 from william william.r.douglas+wine@gmail.com 2010-07-28 15:50:55 --- Attempted to install first with .net installed using winetricks and had the issues first mentioned.
I was able to make progress with installing through winetricks mono26, volnum and forcemono only. The program (download here: http://www.fileplay.net/file/9159/bloodline-champions-beta-installer) would try to install .net 3.5 and xna 3.1 and would fail at some point in the install where I hit control-c to stop the process. I retried without any changes and it succeeded the second time completing the install.
At this point I would run the bloodlinechampions.exe in wine and it would not launch. I then tried to install .net 2.0 and 3.0 and I would run the program again getting the attached output. This would popup the loader dialog but would have an error and try and get me to install .net 3.5 again.
http://bugs.winehq.org/show_bug.cgi?id=23816
Louis Lenders xerox_xerox2000@yahoo.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |xerox_xerox2000@yahoo.co.uk
--- Comment #4 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2010-07-28 16:06:06 ---
I was able to make progress with installing through winetricks mono26, volnum and forcemono only. The program (download here: http://www.fileplay.net/file/9159/bloodline-champions-beta-installer) would try to install .net 3.5 and xna 3.1 and would fail at some point in the install where I hit control-c to stop the process.
If the game uses xna, i think the mono-way will not work (not 100% sure though). I guess you'll have to install .net 2.0/3.0 and then try fake 3.5 install. I'm currently downloading the game, and have a look
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #5 from william william.r.douglas+wine@gmail.com 2010-07-28 16:11:48 --- Ah okay I wasn't aware xna and mono were a no go. At some point in the games development it supposedly worked with mono but no clue what stage it was in and what technology they were using at that point.
I am not aware of any of the methods for faking the .net 3.5 install so I'm looking forward to your findings.
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #6 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2010-07-28 18:02:16 --- (In reply to comment #5)
Ah okay I wasn't aware xna and mono were a no go. At some point in the games development it supposedly worked with mono but no clue what stage it was in and what technology they were using at that point.
I am not aware of any of the methods for faking the .net 3.5 install so I'm looking forward to your findings.
Well , to fool the installer (after first doing winetricks dotnet30) the registrykeys below are enough (probably only the Install = 00000001 key)
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\1033] "Install"=dword:00000001 "MSI"=dword:00000001 "SP"=dword:00000001 "Version"="3.5.30729.01"
The installation went fine, but when i tried to start the game, it complained again that i had to install .net 3.5. Apperently it was missing assembly System.Core. After copying that from my windows partition, the games started up, almost to the end of the initialization screen, then it crashed.
After that I brutally copied over everything from my windows partition from c:\windows\assembly to ~/.wine/drive_c/windows/assembly, and everything from c:\windows\Microsoft.Net to ~/.wine/drive_c/windows/Microsoft.Net. Now the loginscreen appeared. I don't have a login, but there seems to be a connection problem anyway, as the app also can't receive server news. Maybe server is down, or yet another wine-bug ;)
http://bugs.winehq.org/show_bug.cgi?id=23816
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID Summary|Wine fails to find |BloodlineChampions doesn't |mscorsvw.exe |start
--- Comment #7 from Dmitry Timoshkov dmitry@codeweavers.com 2010-07-28 23:24:41 --- This looks like a problem with installing .net. Please open a separate bug for that. Until that bug is fixed this one is invalid.
http://bugs.winehq.org/show_bug.cgi?id=23816
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Dmitry Timoshkov dmitry@codeweavers.com 2010-07-28 23:24:55 --- Closing.
http://bugs.winehq.org/show_bug.cgi?id=23816
Vincent Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|CLOSED |UNCONFIRMED Resolution|INVALID |
--- Comment #9 from Vincent Povirk madewokherd@gmail.com 2010-07-28 23:47:32 --- Mono should function as a valid replacement for .net in Wine.
http://bugs.winehq.org/show_bug.cgi?id=23816
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #10 from Anastasius Focht focht@gmx.net 2010-07-29 03:06:32 --- Hello,
--- quote --- Mono should function as a valid replacement for .net in Wine. --- quote ---
Sure ... but changes to Wine should be in a way that doesn't end up messing MS .NET Framework or clutter up Wine with various .NET specific stuff that clearly doesn't belong there (non OS-related, not subject to Win32/64 API). MS .NET and Mono should be treated equally as "external" applications.
It will only hurt the Wine user experience in the years to come if you start to treat MS .NET Framework as second class citizen in order to _completely_ replace it (a tedious task for a moving target also considering various legal issues that prevent impl some key technologies/components).
I overlooked some stuff in the past which sneaked in aid to get Mono up but in fact more or less confuses installers and users (can be fixed afterwards but that requires additional steps). Also triaging mono bugs (that are in fact application bugs!) in Wine bugzilla is a somewhat questionable approach. If you really want that, consider adding a keyword "mono" to bugzilla to not confuse/mix up Wine bugs from .NET Framework ("dotnet" keyword).
Regardings this bug, Louis already said it, add:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\1033] "Install"=dword:00000001
and the installer won't complain.
Regards
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #11 from Austin English austinenglish@gmail.com 2010-07-29 11:36:15 --- Louis, would you please send that patch to wine-patches? Thanks.
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #12 from Vincent Povirk madewokherd@gmail.com 2010-07-29 12:47:21 --- MS .NET Framework is a second-class citizen, and it should be treated as such, just like all other Windows components that can be used in Wine.
Mono is an upstream project of Wine that provides (among other things, most of which we're not using yet) a CLI interpreter and class libraries. Mono cannot be used in place of .NET on Windows, and so running Mono on Windows cannot tell us whether a particular bug is in Mono or Wine. Since there's no easy test, Mono-related bugs have to go SOMEWHERE to be triaged, and the place that makes the most sense is here.
Since Mono does not and should not act as a .NET replacement on Windows, it needs help from Wine to do this, including replacements for the interfaces used by Windows programs to interact with .NET (such as mscoree.dll).
It should really be there by default, like Gecko, but I've not yet been able to do a complete Windows build of Mono on Linux, so for now we have to rely on the official packages.
if Mono is not installed, programs should ideally see that .NET is missing and try to install it, but it's more important that programs see .NET as installed when Mono is installed. Since most installers use the registry or filesystem to detect .NET, I can't have it both ways. If this ever causes a problem for .NET installers (which, to my knowledge, it hasn't), programs like winetricks should be able to work around it.
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #13 from Anastasius Focht focht@gmx.net 2010-07-30 03:50:17 --- Hello,
--- quote --- Since there's no easy test, Mono-related bugs have to go SOMEWHERE to be triaged, and the place that makes the most sense is here. --- quote ---
Then let's draw a line otherwise this really gets messy and confuses users and developers. Don't (ab)use 'dotnet' keyword in Wine bugzilla for this kind of stuff. It subverts the original meaning of being valid Wine bugs, unearthed by .NET Framework. Invent a new one "mono" or just use "mscoree" component consistently - without 'dotnet'.
Regards
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #14 from Austin English austinenglish@gmail.com 2010-07-30 10:36:52 --- (In reply to comment #13)
Then let's draw a line otherwise this really gets messy and confuses users and developers. Don't (ab)use 'dotnet' keyword in Wine bugzilla for this kind of stuff. It subverts the original meaning of being valid Wine bugs, unearthed by .NET Framework. Invent a new one "mono" or just use "mscoree" component consistently - without 'dotnet'.
Just an FYI, this was discussed yesterday in #winehackers and we came up with the same solution :-).
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #15 from Austin English austinenglish@gmail.com 2010-07-30 11:24:21 --- That registry key is now in wine: http://source.winehq.org/git/wine.git/?a=commitdiff;h=05896a88959eb750cb5864...
http://bugs.winehq.org/show_bug.cgi?id=23816
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dank@kegel.com
--- Comment #16 from Dan Kegel dank@kegel.com 2010-07-30 12:47:46 --- Wait, why is that registry key in wine? Shouldn't that be created by installing mono, or something?
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #17 from Vincent Povirk madewokherd@gmail.com 2010-07-30 12:49:10 --- No, why would Mono include an MS .NET registry key?
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #18 from william william.r.douglas+wine@gmail.com 2010-07-30 15:52:13 --- So far I've not been able to duplicate your complete results with copying .net components from a windows VM.
I installed just the .net 3.5 framework and then the game (and the game installed xna 3.1).
I'm getting further in the setup but not to the point where I could login. (server was down btw so explains why you weren't able to pull anything, they are down for the weekend too normally).
First I get a non critical error attached as LoaderErrror that I can just hit continue past, I downloaded the patches through a windows vm so I can hit the play button and the loading screen for the game almost finishes before it hard crashes.
At this point I have created the registry edit and winetricks installed dotnet30. I then have copied over ~/.wine/drive_c/windows/Microsoft.NET in full and was cherry picking all the missing folders from ~/.wine/drive_c/windows/assembly/GAC_MSIL (I went and looked one level down to see if the folders had a .net 3.5 folder in them and I copied those as well).
The log from running the bloodlinechampionlauncher.exe through wine is included as well as the screen shot I get from the error that I can't scroll around as the program is completely unresponsive.
I have tried a few different ways of copying everything from the assembly folder after doing the install overwriting what was there but get the same results.
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #19 from william william.r.douglas+wine@gmail.com 2010-07-30 15:56:35 --- Created an attachment (id=29930) --> (http://bugs.winehq.org/attachment.cgi?id=29930) Error from the bloodlinechampionsloader.exe
Error when loader screen pops up about missing a system.drawing.region that seems to not allow the news and account information pictures to draw (reg x through where they would be).
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #20 from william william.r.douglas+wine@gmail.com 2010-07-30 15:57:22 --- Created an attachment (id=29931) --> (http://bugs.winehq.org/attachment.cgi?id=29931) Log when running the bloodlinechampionsloader.exe both stdout and stderr
Goes from launch until the game crashes
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #21 from william william.r.douglas+wine@gmail.com 2010-07-30 15:58:31 --- Created an attachment (id=29932) --> (http://bugs.winehq.org/attachment.cgi?id=29932) Screenshot of the crash dialog that pops up when the game crashes
Unable to scroll around for further information in this window, mouse disappears and it freezes.
http://bugs.winehq.org/show_bug.cgi?id=23816
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Depends on| |25060 Ever Confirmed|0 |1
--- Comment #22 from Dan Kegel dank@kegel.com 2010-11-07 09:12:51 CST --- The game seems to install fine without any native DLLs as of wine-1.3.6, but of course the game won't run without some .net or mono.
I then tried 'winetricks dotnet35', which aborts halfway, and tried running the app anyway; it complained that .net 3.5 wasn't installed. I then tried Louis' updated recipe at http://bugs.winehq.org/show_bug.cgi?id=22551#c5 and was able to reproduce your error message on app startup, System.TypeLoadException: Could not load type 'System.Net.Sockets.SocketAsyncEventArgs' from assembly 'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
I filed bug 25060 for the .net 3.5 install problem and enshrined Louis' recipe there.
http://bugs.winehq.org/show_bug.cgi?id=23816
Luke Bratch l_bratch@yahoo.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |l_bratch@yahoo.co.uk
http://bugs.winehq.org/show_bug.cgi?id=23816
Viktor Knutsson viktor.knutsson@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |viktor.knutsson@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #23 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2011-06-29 14:15:19 CDT --- (In reply to comment #22)
The game seems to install fine without any native DLLs as of wine-1.3.6, but of course the game won't run without some .net or mono.
I then tried 'winetricks dotnet35', which aborts halfway, and tried running the app anyway; it complained that .net 3.5 wasn't installed. I then tried Louis' updated recipe at http://bugs.winehq.org/show_bug.cgi?id=22551#c5 and was able to reproduce your error message on app startup, System.TypeLoadException: Could not load type 'System.Net.Sockets.SocketAsyncEventArgs' from assembly 'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Apparently also due to missing .net 2.0 SP1.
I installed it (and .net 3.0 and 3.5), and the crash is gone.
Let's make this bug about the game not starting in mono.
http://bugs.winehq.org/show_bug.cgi?id=23816
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www.fileplanet.com/2 | |16376/download/Bloodline-Ch | |ampions-Client Component|-unknown |mscoree Summary|BloodlineChampions doesn't |Bloodline Champions Client |start |doesn't start with Mono
--- Comment #24 from Anastasius Focht focht@gmx.net 2012-02-19 13:53:04 CST --- Hello,
filling some fields. Setting 'mscoree' component because you asked for Mono ...
FYI: the game installs and starts with .NET Framework 3.5 installed (clean WINEPREFIX). I don't have an account to login online though to test further.
$ sha1sum Bloodline_Champions_Release_Installer.exe a64155f41885e67c93e804a3b463e44782b328e0 Bloodline_Champions_Release_Installer.exe
$ wine --version wine-1.4-rc4
Regards
http://bugs.winehq.org/show_bug.cgi?id=23816
Bug 23816 depends on bug 25060, which changed state.
Bug 25060 Summary: Microsoft .NET Framework 3.5 installer does not complete http://bugs.winehq.org/show_bug.cgi?id=25060
What |Old Value |New Value ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
https://bugs.winehq.org/show_bug.cgi?id=23816
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |WONTFIX Summary|Bloodline Champions Client |Multiple .NET applications |doesn't start with Mono |obfuscated with | |'SmartAssembly' fail to run | |with Wine-Mono (invalid IL | |code rejected by Mono)
--- Comment #25 from Anastasius Focht focht@gmx.net --- Hello folks,
refining summary to collect dupes here.
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Stunlock Studios/Bloodline Champions/Binary
$ wine ./BloodlineChampions.exe Unknown heap type: SmartAssembly
Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for <Module> ---> System.InvalidProgramException: Invalid IL code in #c.#b:#bOd (): IL_0005: bne.un.s IL_000e
at <Module>..cctor () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for <Module> ---> System.InvalidProgramException: Invalid IL code in #c.#b:#bOd (): IL_0005: bne.un.s IL_000e
at <Module>..cctor () [0x00000] in <filename unknown>:0 --- End of inner exception stack trace ---
--- snip ---
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Stunlock Studios/Bloodline Champions/Binary
$ wine ./BloodlineChampionsLoader.exe Unknown heap type: SmartAssembly
Unhandled Exception: System.InvalidProgramException: Invalid IL code in ┬.┬ƒ:┬ (string[]): IL_0012: brfalse.s IL_001c
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidProgramException: Invalid IL code in ┬.┬ƒ:┬ (string[]): IL_0012: brfalse.s IL_001c --- snip ---
There are statements from Mono guys to not change the behaviour to allow for invalid IL code.
--- quote --- Many .NET obfuscators change the assemblies such that they are not technically correct assemblies (they fall outside the .NET assembly specs) but such that they still run on the Microsoft .NET runtime by exploiting bugs specific to Microsoft's implementation. I suspect they do this to make it harder for assembly reader tools/libraries to load the assemblies. Unfortunately, this also prevents Mono runtime from loading the assemblies. In general Mono has a policy of not "fixing" support for this kind of invalid obfuscated code, so you'll need to ask SmartAssembly support for help. --- quote ---
--- quote --- Mono fully supports valid IL. Unfortunately SmartAssembly is known to generate invalid IL which only runs because Microsofts .NET implementation has bugs and does not reject the broken assembly. There is not much we can do in this case. Your best bet is to contact SmartAssembly and let them know the problem and see if they would fix the issue. --- quote ---
Resolving 'WONTFIX'.
Regards
https://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #26 from Anastasius Focht focht@gmx.net --- *** Bug 24042 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=23816
Vincent Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|WONTFIX |---
--- Comment #27 from Vincent Povirk madewokherd@gmail.com --- We have hacks in Wine Mono already that deal with accept invalid IL code, and in at least one (not yet fixed) case Mono's validator failed for valid IL code. So just getting that exception isn't enough to say it's a WONTFIX.
Nor is it necessarily a duplicate because Mono can report this for different reasons.
You really need to see the IL code to make this determination, but unfortunately I don't have a good way of extracting it for methods with strange names.
https://bugs.winehq.org/show_bug.cgi?id=23816
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |NEW
--- Comment #28 from Anastasius Focht focht@gmx.net --- Hello Vincent,
--- quote --- We have hacks in Wine Mono already that deal with accept invalid IL code, and in at least one (not yet fixed) case Mono's validator failed for valid IL code. So just getting that exception isn't enough to say it's a WONTFIX. --- quote ---
no problem, marking 'new' again.
May I suggest that you manage Wine-Mono bugs more actively since it's _your_ area of interest (around 101 on 'mscoree' component now, possibly more if people insist on using Mono instead of native .NET).
Regards
https://bugs.winehq.org/show_bug.cgi?id=23816
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |NEEDINFO
--- Comment #29 from Anastasius Focht focht@gmx.net --- Hello folks,
is this still a problem? Please retest with recent Wine/Mono.
NOTE: There are a couple of invalid IL-code related issues in Bugzilla. If you care about Wine-Mono, please manage them.
Regards
https://bugs.winehq.org/show_bug.cgi?id=23816
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.fileplanet.com/2 |https://web.archive.org/web |16376/download/Bloodline-Ch |/20190404220215/http://down |ampions-Client |load.fileplanet.com/ftp1/09 | |2010/Bloodline_Champions_Re | |lease_Installer.exe?st=Zg2N | |iP2Om5N5uwDy9DB_mg&e=155442 | |5979 Status|NEEDINFO |NEW Keywords| |obfuscation
--- Comment #30 from Anastasius Focht focht@gmx.net --- Hello folks,
revisiting, still present.
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files (x86)/Stunlock Studios/Bloodline Champions/Binary
$ tree --charset=ANSI . |-- BloodlineChampions.exe |-- BloodlineChampionsLoader.exe |-- BloodlineChampionsLoaderUpdater.exe |-- DbgHelp.dll |-- libsndfile-1.dll |-- ortp.dll |-- vivoxoal.dll |-- vivoxplatform.dll `-- vivoxsdk.dll
0 directories, 9 files
$ find . -type f ( -iname "*.dll" -or -iname "*.exe" ) | xargs -i file {} | grep assembly | cut -f1 -d: | xargs -IX sh -c "echo "X" && (hexdump -C "X" | grep BSJB -B0 -C2)"
./BloodlineChampionsLoaderUpdater.exe 0001f270 00 00 00 00 42 53 4a 42 01 00 01 00 00 00 00 00 |....BSJB........| 0001f280 0c 00 00 00 76 32 2e 30 2e 35 30 37 32 37 00 00 |....v2.0.50727..| 0001f290 00 00 06 00 84 00 00 00 20 00 00 00 53 6d 61 72 |........ ...Smar|
./BloodlineChampions.exe 003f3260 00 00 00 00 00 00 00 00 00 00 00 00 42 53 4a 42 |............BSJB| 003f3270 01 00 01 00 00 00 00 00 0c 00 00 00 76 32 2e 30 |............v2.0| 003f3280 2e 35 30 37 32 37 00 00 00 00 06 00 84 00 00 00 |.50727..........|
./BloodlineChampionsLoader.exe 0025cc80 00 00 00 00 42 53 4a 42 01 00 01 00 00 00 00 00 |....BSJB........| 0025cc90 0c 00 00 00 76 32 2e 30 2e 35 30 37 32 37 00 00 |....v2.0.50727..| 0025cca0 00 00 06 00 84 00 00 00 20 00 00 00 53 6d 61 72 |........ ...Smar| --- snip ---
--- snip --- $ WINE_MONO_TRACE=program,assembly,wrapper wine ./BloodlineChampions.exe Unknown heap type: SmartAssembly
[00000009: 0.00000 0] ENTER: <Module>:.cctor ()() [00000009: 0.00043 1] ENTER: #J.#I:#bOd ()() [00000009:] EXCEPTION handling: System.InvalidProgramException: Invalid IL code in #i.#i2:#K (): IL_001b: callvirt 0x0a000c9f
EXCEPTION: catch found at clause 0 of #J.#I:#bOd () [00000009: 0.00212 2] ENTER: (wrapper managed-to-native) object:__icall_wrapper_mono_thread_get_undeniable_exception ()() [00000009: 0.00234 2] LEAVE: (wrapper managed-to-native) object:__icall_wrapper_mono_thread_get_undeniable_exception ()[OBJECT:00000000] [00000009: 0.00248 1] LEAVE: #J.#I:#bOd () [00000009: 0.00268 1] ENTER: #m.#l:#bOd ()() [00000009:] EXCEPTION handling: System.InvalidProgramException: Invalid IL code in #i.#i3:#K (): IL_0016: callvirt 0x0a000b4b
EXCEPTION: catch found at clause 0 of #m.#l:#bOd () [00000009: 0.00292 2] ENTER: (wrapper managed-to-native) object:__icall_wrapper_mono_thread_get_undeniable_exception ()() [00000009: 0.00302 2] LEAVE: (wrapper managed-to-native) object:__icall_wrapper_mono_thread_get_undeniable_exception ()[OBJECT:00000000] [00000009: 0.00311 1] LEAVE: #m.#l:#bOd () [00000009:] EXCEPTION handling: System.InvalidProgramException: Invalid IL code in #c.#b:#bOd (): IL_0005: bne.un.s IL_000e --- snip ---
$ sha1sum Bloodline_Champions_Release_Installer.exe a64155f41885e67c93e804a3b463e44782b328e0 Bloodline_Champions_Release_Installer.exe
$ du -sh Bloodline_Champions_Release_Installer.exe 282M Bloodline_Champions_Release_Installer.exe
$ wine --version wine-4.5-185-g17056908ac
Regards
https://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #31 from Esme Povirk madewokherd@gmail.com --- This came up again while revisiting bug 30429.
I've since found https://github.com/0xd4d/de4dot which does a good job of identifying obfuscators. I've also found that ILSpy does a pretty good job of extracting IL code, so maybe I can make more progress with this now.
https://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #32 from Esme Povirk madewokherd@gmail.com --- Examining the code, it seems to be failing on a function with more static branches than actual instructions. ILSpy is in agreement with Mono that the code is invalid.
While I don't think it's possible to make Mono's JIT accept this code, it's probably feasible to preprocess the code into something valid. I've also seen other programs that could benefit from this.
But, this is a big project, and I'm still working on getting WPF working more than 5% of the time, so it'll have to wait.
https://bugs.winehq.org/show_bug.cgi?id=23816
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #33 from Zebediah Figura z.figura12@gmail.com --- Could we maybe interpret anything that's impossible to JIT?
https://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #34 from Esme Povirk madewokherd@gmail.com --- I don't know how the interpreter works. I wouldn't expect it to work on IL directly and accept invalid IL, or work alongside the JIT.
https://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #35 from Zebediah Figura z.figura12@gmail.com --- I was at least under the impression that the interpreter parsed CIL. At least a cursory examination seems to imply that [see e.g. interp_exec_method()].
Of course, I have found it extremely difficult to get a grasp of Mono's broad architecture, so I don't know how hard it would be to use the interpreter alongside mini.
I don't have the context to understand why this code isn't compilable, but if there's code that's only invalid in paths that can't be reached, presumably the interpreter would help avoid that. In particular bug 48499 (where the stack depth is sometimes wrong) is what motivated my suggestion.
https://bugs.winehq.org/show_bug.cgi?id=23816
--- Comment #36 from Esme Povirk madewokherd@gmail.com --- The stack has a well-defined set of types at each part of the code, specified in the standard, which only depends on the instructions before it. Mono depends on this.
https://bugs.winehq.org/show_bug.cgi?id=23816
Esme Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |imlilii@gmail.com
--- Comment #37 from Esme Povirk madewokherd@gmail.com --- *** Bug 49842 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=23816
Esme Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |boudewijn.charite@gmail.com
--- Comment #38 from Esme Povirk madewokherd@gmail.com --- *** Bug 33918 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=23816
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |olibuntu@arcor.de
--- Comment #39 from Gijs Vermeulen gijsvrm@gmail.com --- *** Bug 37879 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=23816
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |felixonmars@archlinux.org
--- Comment #40 from Gijs Vermeulen gijsvrm@gmail.com --- *** Bug 30941 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=23816
mrdeathjr28@yahoo.es changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mrdeathjr28@yahoo.es