https://bugs.winehq.org/show_bug.cgi?id=45365
Bug ID: 45365 Summary: Multiple .NET XNA 3.x/4.x games using Microsoft.Xna.Framework.Media classes crash due to IWMPCore3::newMedia stub Product: Wine Version: 3.10 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: wmp&wmvcore Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Distribution: ---
Hello folks,
A.R.E.S. Extinction Agenda 1.x (.NET 2.0, XNA 3.1 game): https://www.fileplanet.com/217883/download/A.R.E.S:-Extinction-Agenda-Demo
After working around 34622 ("Multiple games need CLSID_DMOWrapperFilter/DMO Wrapper Filter '{94297043-bd82-4dfd-b0de-8177739c6d20}', 'qasf.dll'") the game runs into this:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/ARES - Demo
$ file *.{dll,exe} AssetLoader.dll: PE32 executable (DLL) (console) Intel 80386 Mono/.Net assembly, for MS Windows FlatRedBall.dll: PE32 executable (DLL) (console) Intel 80386 Mono/.Net assembly, for MS Windows X10.FRB.dll: PE32 executable (DLL) (console) Intel 80386 Mono/.Net assembly, for MS Windows ARES.exe: PE32 executable (GUI) Intel 80386 Mono/.Net assembly, for MS Windows unins000.exe: PE32 executable (GUI) Intel 80386, for MS Windows
$ wine ./ARES.exe
... Unhandled Exception: System.NotImplementedException: The method or operation is not implemented. at Microsoft.Xna.Framework.Media.Song..ctor(String name, String filename, Int32 duration) at Microsoft.Xna.Framework.Content.SongReader.Read(ContentReader input, Song existingInstance) at Microsoft.Xna.Framework.Content.ContentReader.InvokeReader[T](ContentTypeReader reader, Object existingInstance) at Microsoft.Xna.Framework.Content.ContentReader.ReadObjectInternal[T](Object existingInstance) at Microsoft.Xna.Framework.Content.ContentReader.ReadObject[T]() at Microsoft.Xna.Framework.Content.ContentReader.ReadAsset[T]() at Microsoft.Xna.Framework.Content.ContentManager.ReadAsset[T](String assetName, Action`1 recordDisposableObject) at Microsoft.Xna.Framework.Content.ContentManager.Load[T](String assetName) at FlatRedBall.Content.ContentManager.LoadFromProject[T](String assetName) at FlatRedBall.Content.ContentManager.Load[T](String assetName) at FlatRedBall.FlatRedBallServices.Load[T](String assetName, String contentManagerName) at FlatRedBall.FlatRedBallServices.Load[T](String assetName) at Trashman.SoundLibrary.LoadMusic(String filename) at Trashman.Screens.SplashScreen.LoadContent() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() wine: Unhandled exception 0xe0434f4d in thread 43 at address 0x7b446fe6 (thread 0043), starting debugger... --- snip ---
Trace log:
--- snip --- $ WINEDEBUG=+seh,+relay,+wmp,+quartz wine ./ARES.exe >>log.txt 2>&1 ... 003d:Call KERNEL32.LoadLibraryExW(09cdf0ce L"C:\windows\system32\wmp.dll",00000000,00000008) ret=7e183052 003d:Call PE DLL (proc=0x7b00567d,module=0x7aff0000 L"wmp.dll",reason=PROCESS_ATTACH,res=(nil)) 003d:trace:wmp:DllMain (0x7aff0000 1 (nil)) ... 003d:Call wmp.DllGetClassObject(09cdf438,7e264488,09cdf448) ret=7e18523f 003d:trace:wmp:DllGetClassObject (CLSID_WindowsMediaPlayer {00000001-0000-0000-c000-000000000046} 0x9cdf448) 003d:trace:wmp:ClassFactory_QueryInterface (0x7b01f120)->(IID_IClassFactory 0x9cdf448) 003d:trace:wmp:ClassFactory_AddRef (0x7b01f120) 003d:Ret wmp.DllGetClassObject() retval=00000000 ret=7e18523f ... 003d:trace:wmp:WMPFactory_CreateInstance ((nil) {6c497d62-8919-413c-82db-e935fb3ec584} 0x9cdf44c) ... 003d:trace:wmp:OleObject_QueryInterface (0x70c1d60)->(IID_IWMPPlayer4 0x9cdf44c) 003d:trace:wmp:OleObject_AddRef (0x70c1d60) ref=2 003d:trace:wmp:OleObject_Release (0x70c1d60) ref=1 003d:trace:wmp:ClassFactory_Release (0x7b01f120) 003d:Ret ole32.CoCreateInstance() retval=00000000 ret=031c26e6 ... 003d:trace:wmp:WMPPlayer4_get_settings (0x70c1d60)->(0x9cdf600) 003d:trace:wmp:OleObject_AddRef (0x70c1d60) ref=2 003d:trace:wmp:WMPPlayer4_get_controls (0x70c1d60)->(0x9cdf604) 003d:trace:wmp:OleObject_AddRef (0x70c1d60) ref=3 003d:fixme:wmp:WMPSettings_put_enableErrorDialogs (0x70c1d60)->(0) ... 003d:Ret window proc 0x1002a270 (hwnd=0x20096,msg="Microsoft.Xna.Framework.Media.WmpProxyThread",wp=00000000,lp=00000000) retval=00000000 ... 003d:Call oleaut32.SysAllocStringLen(00df76f8 L"c:\program files\ares - demo\content\aud\menu.wma",00000031) ret=031c38b9 ... 003d:fixme:wmp:WMPPlayer4_newMedia (0x70c1d60)->(0x9cdf650) ... 0044:trace:seh:raise_exception code=e0434f4d flags=1 addr=0x7b446fe6 ip=7b446fe6 tid=0044 0044:trace:seh:raise_exception info[0]=80004001 0044:trace:seh:raise_exception eax=7b4356b1 ebx=06f56a68 ecx=00000000 edx=0d4ff2a0 esi=0d4ff2a0 edi=0d4ff260 0044:trace:seh:raise_exception ebp=0d4ff238 esp=0d4ff1d4 cs=d4f0023 ds=d4f002b es=f7bd002b fs=f7bd0063 gs=f7bd006b flags=00000216 0044:trace:seh:call_stack_handlers calling handler at 0x79f9a3c8 code=e0434f4d flags=1 0044:Call msvcr80._except_handler4_common(7a381240,79e717fb,0d4ff1e0,0d4ff2d8,0d4feefc,0d4fedec) ret=79f9a3e7 0044:trace:seh:_except_handler4_common exception e0434f4d flags=1 at 0x7b446fe6 handler=0x79f9a3c8 0xd4feefc 0xd4fedec cookie=2a1f6232 scope table=0x79f97080 cookies=-2/0,-72/0 0044:trace:seh:_except_handler4_common level 0 prev -2 filter 0x79f9709c 0044:trace:seh:_except_handler4_common filter returned CONTINUE_SEARCH 0044:trace:seh:_except_handler4_common reached -2, returning ExceptionContinueSearch ... --- snip ---
NOTE: the exception is on a different thread by design. XNA media framework uses a proxy thread ('Microsoft.Xna.Framework.Media.WmpProxyThread') for Windows Media player, calling into unmanaged code and communicates via windows messages to the other threads which handle the errors/raise exceptions.
Source:
https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/wmp/player.c#l346
--- snip --- 346 static HRESULT WINAPI WMPPlayer4_newMedia(IWMPPlayer4 *iface, BSTR url, IWMPMedia **ppMedia) 347 { 348 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface); 349 FIXME("(%p)->(%p)\n", This, ppMedia); 350 return E_NOTIMPL; 351 } --- snip ---
$ sha1sum ARES_Demo_setup.exe 042abbabd5f6b1bbe7418acba7c4cdd9d9df34f6 ARES_Demo_setup.exe
$ du -sh ARES_Demo_setup.exe 118M ARES_Demo_setup.exe
$ wine --version wine-3.11
Regards
https://bugs.winehq.org/show_bug.cgi?id=45365
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |dotnet, download URL| |https://www.fileplanet.com/ | |217883/download/A.R.E.S:-Ex | |tinction-Agenda-Demo
https://bugs.winehq.org/show_bug.cgi?id=45365
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED CC| |leslie_alistair@hotmail.com Fixed by SHA1| |cd1c681ee71332e18081730ce7f | |8794fedb55f5b
--- Comment #1 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Fixed by https://source.winehq.org/git/wine.git/?a=commit;h=cd1c681ee71332e18081730ce...
https://bugs.winehq.org/show_bug.cgi?id=45365
--- Comment #2 from Nikolay Sivov bunglehead@gmail.com --- Alright, I wasn't aware of this report.
https://bugs.winehq.org/show_bug.cgi?id=45365
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #3 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 3.15.
https://bugs.winehq.org/show_bug.cgi?id=45365
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|https://www.fileplanet.com/ |https://web.archive.org/web |217883/download/A.R.E.S:-Ex |/20150705125752/s3.amazonaw |tinction-Agenda-Demo |s.com/x10/trashman/ARES_Dem | |o_setup.exe
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello folks,
adding stable download link via Internet Archive.
A.R.E.S.: Extinction Agenda - Demo Setup v1.1.7
https://web.archive.org/web/20150705125752/s3.amazonaws.com/x10/trashman/ARE...
https://www.virustotal.com/gui/file/f5a3a66f9cbe1a577c8ec5930c03ed13e4b542d5...
$ sha1sum ARES_Demo_setup.exe f0d170cff5253631e4121c67a3854e3cfde15df0 ARES_Demo_setup.exe
$ du -sh ARES_Demo_setup.exe 115M ARES_Demo_setup.exe
Regards