WineHQ
Bug Tracking Database – Bug 35289

 Bugzilla

 

Last modified: 2015-09-29 04:00:45 UTC  

Star Wars - The Force Unleashed: launcher crash at start (better diagnostics for missing 'lcms2' support needed)

Bug 35289 - Star Wars - The Force Unleashed: launcher crash at start (better diagnostics for missing 'lcms2' support needed)
Star Wars - The Force Unleashed: launcher crash at start (better diagnostics ...
Status: CLOSED FIXED
AppDB: Show Apps affected by this bug
Product: Wine
Classification: Unclassified
Component: mscms
1.7.9
x86-64 Linux
: P2 enhancement
: ---
Assigned To: Mr. Bugs
: dotnet
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2014-01-01 18:18 UTC by Le Gluon du Net
Modified: 2015-09-29 04:00 UTC (History)
1 user (show)

See Also:
Regression SHA1:
Fixed by SHA1: 190878d92df7eaaf3720df7edebaae4b6ac807b3
Distribution: ---
Staged patchset:


Attachments
Star Wars The Force Unleashed launcher crash log (7.01 KB, text/plain)
2014-01-01 18:18 UTC, Le Gluon du Net
Details
SWTFU launcher crash log with dotnet2 (5.61 KB, text/plain)
2014-01-02 15:42 UTC, Le Gluon du Net
Details
SWTFU launcher crash log with dotnet3sp1 (7.17 KB, text/plain)
2014-01-02 15:42 UTC, Le Gluon du Net
Details
SWTFU launcher crash log with dotnet3.5 (6.88 KB, text/plain)
2014-01-02 15:43 UTC, Le Gluon du Net
Details
SWTFU launcher crash log with dotnet4 (6.97 KB, text/plain)
2014-01-02 15:43 UTC, Le Gluon du Net
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Le Gluon du Net 2014-01-01 18:18:09 UTC
Created attachment 47066 [details]
Star Wars The Force Unleashed launcher crash log

Hello,

Star Wars - The Force Unleashed: launcher crashes at start.
If I'm right, it is a .net launcher; so I installed dotnet 2 and 3,5 with winetricks but without success, the launcher still crash.

Even If I could start the game without launcher, only the launcher could permit you to configure graphics, keyboard and gamepad options. There is no option menu in the game.

I joined you the crash log.
Comment 1 Anastasius Focht 2014-01-01 18:23:44 UTC
Hello,

you using an outdated Wine version.

--- snip ---
System information:
    Wine build: wine-1.5.20
    Platform: i386
    Host system: Linux
    Host version: 3.11.0-14-generic
--- snip ---

If you have multiple Wine versions installed on your host (for whatever reasons) PLEASE DOUBLE CHECK you're running the intended version.

Regards
Comment 2 Le Gluon du Net 2014-01-02 15:41:07 UTC
Oooops...

I just reinstalled the game in a clean wine 1.7.9 environment to obtain clean results.

I tested the SWTFU with this dotnet version:

dotnet2
dotnet3sp1
dotnet3.5
dotnet4

After each dotnet install, I tested the Launcher and each time it crashed.
I saved the bug report for each dotnet version and joined them to this bug report.

I hope this could help to resolve this crash. If the launcher would work, this great game could easily have a Gold rating. But without the launcher to configure graphics and controllers option, just silver.
Comment 3 Le Gluon du Net 2014-01-02 15:42:16 UTC
Created attachment 47079 [details]
SWTFU launcher crash log with dotnet2
Comment 4 Le Gluon du Net 2014-01-02 15:42:39 UTC
Created attachment 47080 [details]
SWTFU launcher crash log with dotnet3sp1
Comment 5 Le Gluon du Net 2014-01-02 15:43:11 UTC
Created attachment 47081 [details]
SWTFU launcher crash log with dotnet3.5
Comment 6 Le Gluon du Net 2014-01-02 15:43:29 UTC
Created attachment 47082 [details]
SWTFU launcher crash log with dotnet4
Comment 7 Anastasius Focht 2014-01-03 06:54:43 UTC
Hello folks,

fortunately I found an installer 'backup' on the Internet to investigate the issues.

The game launcher seems to make use of WPF -> at least .NET 3.x is required.

Best option is .NET 3.5 SP1 -> 'winetricks -q dotnet35sp1' in new(!) 32-bit WINEPREFIX.

The 3rd party installer from this 'backup' additionally installs .NET Framework 4.0 for whatever reasons (doesn't harm).

The first problem is unfortunately hard to diagnose without some expert knowledge.
Only a message "Internal Execution Engine Error" gets emitted from the .NET CLR, without managed backtrace.

Using proper JIT debug environment settings and a managed debugger I found the reason:

--- snip ---
0033b150 f77fb42e [HelperMethodFrame: 0033b150] System.Diagnostics.Debugger.BreakInternal()
0033b1a0 0e6df3c6 System.Diagnostics.Debugger.Break()
0033b1cc 0e6df19b MS.Internal.Invariant.FailFast(System.String, System.String)
0033b1d4 0c954ad1 MS.Internal.Invariant.Assert(Boolean)
0033b1d8 0e6df12e System.Windows.Media.FontFamily.get_FirstFontFamily()
0033b1fc 0e6df059 System.Windows.Media.FontFamily.get_LineSpacing()
0033b204 0e6df033 System.Windows.Controls.TextBox.GetLineHeight()
0033b220 0e6deefc System.Windows.Controls.TextBox.SetRenderScopeMinMaxHeight()
0033b240 0e6dbd75 System.Windows.Controls.TextBox.MeasureOverride(System.Windows.Size)
0033b278 0e25d06e System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)
...
0033f27c 0d3d6d1f System.Windows.Application.RunDispatcher(System.Object)
0033f288 0d3d68c7 System.Windows.Application.RunInternal(System.Windows.Window)
0033f2a0 0d3d6744 System.Windows.Application.Run(System.Windows.Window)
0033f2b0 0d3d670a System.Windows.Application.Run()
0033f2bc 032590a8 Launcher.App.Main()
0033f4e8 79e71b4c [GCFrame: 0033f4e8]
--- snip ---

That's bug 32323 -> 'winetricks corefonts'

After applying the recipe it still crashes.

Relevant part of trace log:

--- snip ---
...
002d:Call KERNEL32.LoadLibraryExW(03424898 L"C:\\windows\\assembly\\GAC_32\\PresentationCore\\3.0.0.0__31bf3856ad364e35\\mscms.dll",00000000,00000008) ret=79f4cdc5
002d:Call PE DLL (proc=0x7d852054,module=0x7d840000 L"mscms.dll",reason=PROCESS_ATTACH,res=(nil))
002d:trace:mscms:DllMain (0x7d840000, 1, (nil))
002d:Call KERNEL32.DisableThreadLibraryCalls(7d840000) ret=7d84dbc7
002d:Ret  KERNEL32.DisableThreadLibraryCalls() retval=00000001 ret=7d84dbc7
002d:Ret  PE DLL (proc=0x7d852054,module=0x7d840000 L"mscms.dll",reason=PROCESS_ATTACH,res=(nil)) retval=1
002d:Ret  KERNEL32.LoadLibraryExW() retval=7d840000 ret=79f4cdc5 
...
002d:Call mscms.GetStandardColorSpaceProfileW(00000000,73524742,00160648,0033cf48) ret=0cee11d0
002d:trace:mscms:GetStandardColorSpaceProfileW ( 0x73524742, 0x160648, 0x33cf48 )
002d:trace:mscms:GetColorDirectoryW ( 0x33cc0c, 0x33cc08 )
002d:Call KERNEL32.GetSystemDirectoryW(0033c998,00000104) ret=7d84eba6
002d:Ret  KERNEL32.GetSystemDirectoryW() retval=00000013 ret=7d84eba6
002d:Ret  mscms.GetStandardColorSpaceProfileW() retval=00000001 ret=0cee11d0 
...
002d:Call mscms.OpenColorProfileA(03434d08,00000001,00000001,00000003) ret=0cee327e
002d:trace:mscms:OpenColorProfileA ( 0x3434d08, 0x00000001, 0x00000001, 0x00000003 )
002d:Ret  mscms.OpenColorProfileA() retval=00000000 ret=0cee327e 
...
002d:Call KERNEL32.RaiseException(e0434f4d,00000001,00000001,0033cdc0) ret=79eda91c
002d:trace:seh:raise_exception code=e0434f4d flags=1 addr=0x7b83a89f ip=7b83a89f tid=002d
002d:trace:seh:raise_exception  info[0]=80070000
002d:trace:seh:raise_exception  eax=7b826921 ebx=7b8ba000 ecx=80070000 edx=0033ccf4 esi=0033cda0 edi=0033cd60
002d:trace:seh:raise_exception  ebp=0033cd38 esp=0033ccd4 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00000283
002d:trace:seh:call_stack_handlers calling handler at 0x79f908a2 code=e0434f4d flags=1
002d:trace:seh:call_stack_handlers handler at 0x79f908a2 returned 1
002d:trace:seh:call_stack_handlers calling handler at 0x79fb4869 code=e0434f4d flags=1 
...
002d:Call user32.MessageBoxW(00020078,00cc7168 L"Unexpected condition found in WL function: System.Runtime.InteropServices.COMException (0x80070000): Exception from HRESULT: 0x80070000\r\n   at System.Windows.Media.ColorContextHelper.OpenColorProfile(IntPtr pProfile)\r\n   at System.Windows.Media.ColorContext.FromRawBytes(Byte[] data, Int32 dataLen"...,00bdff60 L"Launcher",00000010) ret=0cee3353 
--- snip ---

The .NET CLR runtime passes a profile with 'PROFILE_MEMBUFFER' type.

Source: http://source.winehq.org/git/wine.git/blob/45191c542cb46cf57f8ac20cc3d43819e9f17993:/dlls/mscms/profile.c#l1338

--- snip ---
1338 HPROFILE WINAPI OpenColorProfileA( PPROFILE profile, DWORD access, DWORD sharing, DWORD creation )
1339 {
1340     HPROFILE handle = NULL;
1341
1342     TRACE( "( %p, 0x%08x, 0x%08x, 0x%08x )\n", profile, access, sharing, creation );
1343
1344     if (!profile || !profile->pProfileData) return NULL;
1345
1346     /* No AW conversion needed for memory based profiles */
1347     if (profile->dwType & PROFILE_MEMBUFFER)
1348         return OpenColorProfileW( profile, access, sharing, creation );
1349 
...
1394 HPROFILE WINAPI OpenColorProfileW( PPROFILE profile, DWORD access, DWORD sharing, DWORD creation )
1395 {
1396 #ifdef HAVE_LCMS2
1397     cmsHPROFILE cmsprofile = NULL;
...
1496 #endif /* HAVE_LCMS2 */
1497 return NULL;
1498 }
--- snip ---

Wine was built without optional 'lcms2' support on my machine hence the silent failure (32-bit and 64-bit 'devel' packages were not installed).

Your backtraces show there is no 'liblcms2' mapped hence this could be very well the same problem.
If lcms2 support is present the list of shared libraries mapped in process address space should contain an entry like this:

--- snip ---
ELF	7b4aa000-7b500000	Deferred        liblcms2.so.2
--- snip ---

I suggest that Wine outputs some "lcms2 support missing - expect problems" message in '#else' path or better in central place - on startup (dllmain) so this kind of problem can be better diagnosed in future.

With that bug fixed (rebuilding with 32-bit and 64-bit lcms2 support) it will run into bug 34764 -> 'winetricks windowscodecs'

--- snip ---
002f:fixme:wincodecs:IMILUnknown2Impl_UnknownMethod1 (0x34577c8,0x1,0xe1ad928): stub
002f:fixme:wincodecs:IMILUnknown2Impl_UnknownMethod1 (0x34577c8,0x1,0xe1ad8f4): stub
002f:trace:seh:raise_exception code=c0000005 flags=0 addr=(nil) ip=00000000 tid=002f
002f:trace:seh:raise_exception  info[0]=00000000
002f:trace:seh:raise_exception  info[1]=00000000
002f:trace:seh:raise_exception  eax=7ca922a4 ebx=034b1d90 ecx=034577b8 edx=00000000 esi=034b1e38 edi=0e1ad940
002f:trace:seh:raise_exception  ebp=0e1ad904 esp=0e1ad8f4 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010206 
--- snip ---

With that recipe applied it still fails on missing X3DAudio prerequisites:

--- snip ---
err:module:import_dll Library X3DAudio1_6.dll (which is needed by L"C:\\Program Files\\...\\SWTFU.exe") not found
--- snip ---

-> 'winetricks xact'

With X3DAudio components installed the launcher finally shows up.
The game can now be started from launcher (already tested).

Regards
Comment 8 Anastasius Focht 2014-01-03 11:44:56 UTC
Hello folks,

this bug is fixed by commit http://source.winehq.org/git/wine.git/commitdiff/190878d92df7eaaf3720df7edebaae4b6ac807b3

Thanks Hans

@legluondunet: rebuild your Wine with lcms2 support.

Make sure you have both, 32-bit and 64-bit if you run a shared WoW64 setup.

For all other issues -> see my comment #7
Feel free to improve appdb entry with that information.

Regards
Comment 9 Alexandre Julliard 2014-01-03 13:10:08 UTC
Closing bugs fixed in 1.7.10.


Privacy Policy
If you have a privacy inquiry regarding this site, please write to [email protected]

Hosted By CodeWeavers