http://bugs.winehq.org/show_bug.cgi?id=33341
Bug #: 33341 Summary: Planetside 2 unplayable after April 3rd game update. Product: Wine Version: 1.5.27 Platform: x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: kisak42@gmail.com Classification: Unclassified
Created attachment 44104 --> http://bugs.winehq.org/attachment.cgi?id=44104 backtrace of crash
The April 3rd, 2013 update of Planetside 2 has caused the game to crash for me. I have a separate 32 bit wineprefix for Planetside 2 with a Windows XP imm32.dll added to it. Before the update, the game was more or less playable, besides the other documented issues of running this game on wine.
It now crashes just after selecting a character and clicking the play / log in button.
I am running on Gentoo Linux 64 bit with an AMD Bulldozer and nVidia GTX 460 (nvidia-drivers 313.26). I am using Cinnamon 1.6.7 for my DE. Please feel free to request any other relevant information.
Attached is a backtrace, which is consistent from one attempt to another. If I am reading it right, the crash is occuring in apexframework_x86.
http://bugs.winehq.org/show_bug.cgi?id=33341
--- Comment #1 from kisak42@gmail.com 2013-04-10 17:29:19 CDT --- I was able to get the same crash on a core2 / nvidia laptop running Gentoo with a clean wineprefix and no special instructions.
http://bugs.winehq.org/show_bug.cgi?id=33341
--- Comment #2 from kisak42@gmail.com 2013-04-12 17:47:08 CDT --- So, the game client is claiming it is envoking a "ResetDisplay" routine and failing. Historically this has not worked with wine, but was previously not mandatory to play, just to change most video settings in-game.
http://bugs.winehq.org/show_bug.cgi?id=33341
Michael Cronenworth mike@cchtml.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mike@cchtml.com
--- Comment #3 from Michael Cronenworth mike@cchtml.com 2013-04-14 00:30:15 CDT --- Planetside 2 now calls IDirect3DDevice9::Reset() before loading the main game, and I guess it didn't do this before this last patch. It's also the function being called when you change graphic settings.
When Reset() is called, Wine detects that resources have not yet been free'd so it refuses to Reset(). Planetside 2 doesn't handle this well and crashes.
Debug log: warn:d3d9:reset_enum_callback Surface 0xc418420 (resource 0x155e8100) is an implicit resource with ref 0. warn:d3d9:reset_enum_callback Resource 0x154c77a8 in pool D3DPOOL_DEFAULT blocks the Reset call. [repeated 12 times, then PS2 crashes]
If I comment out the resource checks and let it return D3D_OK, Planetside 2 loads and I can play the main game, but I'm not a Direct3D expert so I'm not sure if this leaks resources and we should call a free() of some kind. I can also change graphic settings (including render quality) without the game crashing.
P.S. D3DERR_INVALIDCALL is returned, but this is not a valid return type according to MSDN. I tried a few of the valid types but PS2 still crashes. It won't work unless it sees D3D_OK. I've seen Windows users complain about this same type of crash, but it must not happen enough for Sony to put programmers on it to fix it.
http://bugs.winehq.org/show_bug.cgi?id=33341
--- Comment #4 from Henri Verbeet hverbeet@gmail.com 2013-04-14 04:07:01 CDT --- (In reply to comment #3)
Debug log: warn:d3d9:reset_enum_callback Surface 0xc418420 (resource 0x155e8100) is an implicit resource with ref 0. warn:d3d9:reset_enum_callback Resource 0x154c77a8 in pool D3DPOOL_DEFAULT blocks the Reset call. [repeated 12 times, then PS2 crashes]
If I comment out the resource checks and let it return D3D_OK, Planetside 2 loads and I can play the main game, but I'm not a Direct3D expert so I'm not sure if this leaks resources and we should call a free() of some kind. I can also change graphic settings (including render quality) without the game crashing.
The interesting things to know are what kind of resource 0x154c77a8 is in the above snippet, why it isn't getting released, and perhaps if the device is a regular d3d9 device or a d3d9ex one.
http://bugs.winehq.org/show_bug.cgi?id=33341
abstractConcept publicAbstractConcept@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |publicAbstractConcept@gmail | |.com
http://bugs.winehq.org/show_bug.cgi?id=33341
--- Comment #5 from abstractConcept publicAbstractConcept@gmail.com 2013-04-16 18:11:37 CDT --- Created attachment 44199 --> http://bugs.winehq.org/attachment.cgi?id=44199 Winelog report - patterns of recurring log messages, original files were repetetive
http://bugs.winehq.org/show_bug.cgi?id=33341
--- Comment #6 from abstractConcept publicAbstractConcept@gmail.com 2013-04-16 18:26:45 CDT --- Comment on attachment 44199 --> http://bugs.winehq.org/attachment.cgi?id=44199 Winelog report - patterns of recurring log messages, original files were repetetive
For me, the backtrace window does not appear when crashing on graphical settings changes even though they should be caused by the same bug; I'm guessing that the backtrace window is caused by some other bug, and Planetside 2 is capturing the error.
Given my thinking, I have attached a report about my winelogs I made for the Planetside 2 Wine Support Forum. I hope it can provide some help.
http://bugs.winehq.org/show_bug.cgi?id=33341
--- Comment #7 from nospam5@local.se 2013-04-18 16:23:48 CDT --- Created attachment 44211 --> http://bugs.winehq.org/attachment.cgi?id=44211 Patch based on comments in this bug
Thanks to the posts in this bug I created a patch that simply comments out those resource checks, and with wine compiled with this patch I also get the game to load up, and can change video settings in-game without a crash.
Sadly the mouse jitter bug is still there making the game nearly unplayable, but I thought I'd upload the patch for other people who might not be able to manually find and edit the right file based on the comments in this thread.
My c/cpp knowledge is really limited, I have no idea about the potential side-effects of this hack making other games unstable or whatever, I will provide no support what-so-ever for this.
Also, if someone with more cpp experience than me could take a look at the mouse jitter bug I'd be very grateful, I'd even tip you a few bucks in bitcoins if you manage to get a working patch. :)
http://bugs.winehq.org/show_bug.cgi?id=33341
kisak42@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |UPSTREAM
--- Comment #8 from kisak42@gmail.com 2013-05-06 10:49:18 CDT --- This issue appears to have been resolved by changes to the game and/or support libraries. Appdb users also mention this workaround is no longer needed. Closing this issue pending another regression.
https://bugs.winehq.org/show_bug.cgi?id=33341
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #9 from Austin English austinenglish@gmail.com --- Closing.
https://bugs.winehq.org/show_bug.cgi?id=33341
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|CLOSED |RESOLVED
--- Comment #10 from Austin English austinenglish@gmail.com --- This was inadvertently caught up in my unclosed bugs filter. NOTOURBUG should only be closed when fixed upstream.
Setting back to RESOLVED NOTOURBUG.
Sorry for the spam.
https://bugs.winehq.org/show_bug.cgi?id=33341
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #11 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to kisak42 from comment #8)
This issue appears to have been resolved by changes to the game and/or support libraries. Appdb users also mention this workaround is no longer needed. Closing this issue pending another regression.
Sounds like this was fixed long ago.