http://bugs.winehq.org/show_bug.cgi?id=27075
Summary: Battlefield Heroes: Punkbuster doesn't work as it should Product: Wine Version: 1.3.19 Platform: x86 URL: http://www.battlefieldheroes.com/ OS/Version: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: daniel.skorka@stud.uni-karlsruhe.de
Everything works, except that within a few seconds after joining a game, I get the message --- PB IMPORTANT: RESTRICTION: Service Communication Failure: PnkBstrB.exe ffbf --- after which I'm kicked by Punkbuster.
If you want to confirm this bug, installation is pretty straightforward: Go to website, create account, make sure you are running a windows browser - I used Internet Explorer 8 - then click Play Now. The plugin will install, followed by a new window which will download and install Battlefield Heroes. The main interface should start then, but you'll need msvcp90.dll
http://bugs.winehq.org/show_bug.cgi?id=27075
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|major |normal
--- Comment #1 from Austin English austinenglish@gmail.com 2011-05-06 14:40:40 CDT --- Probably a dupe of bug 9685.
http://bugs.winehq.org/show_bug.cgi?id=27075
--- Comment #2 from Daniel Skorka daniel.skorka@uni-konstanz.de 2011-05-06 15:12:26 CDT --- (In reply to comment #1)
Probably a dupe of bug 9685.
That depends on what you think bug 9685 is about. If it is about Punkbuster in general, then yes, it is. If it's about the unknow windows api function, then it isn't. Comment 61 over there clearly states the difference.
http://bugs.winehq.org/show_bug.cgi?id=27075
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #3 from Anastasius Focht focht@gmx.net 2011-05-06 15:21:09 CDT --- Hello,
yes that 0xffbf error is a different issue.
How did you actually installed that BF Heroes updater plugin? For Wine IE7/IE8 install (winetricks ie8 flash), the ActiveX control part failed, it never installed. For Wine FF3/FF4 install (winetricks firefox3 flash), the plugin (xpi) was downloaded and browser restarted (which ought to install/load the new plugin) but it ended up downloading plugin again.
Is there any way to install that game without any browser plugin mess?
Regards
http://bugs.winehq.org/show_bug.cgi?id=27075
--- Comment #4 from Daniel Skorka daniel.skorka@uni-konstanz.de 2011-05-06 15:53:23 CDT --- (In reply to comment #3)
How did you actually installed that BF Heroes updater plugin? For Wine IE7/IE8 install (winetricks ie8 flash), the ActiveX control part failed, it never installed. For Wine FF3/FF4 install (winetricks firefox3 flash), the plugin (xpi) was downloaded and browser restarted (which ought to install/load the new plugin) but it ended up downloading plugin again.
For instructions on how I did it, see the test result I just submitted to AppDB (is pending review right now).
Is there any way to install that game without any browser plugin mess?
Yes, see above. But you'll still need the plugin to start the game. Btw, Flash is unnecessary.
http://bugs.winehq.org/show_bug.cgi?id=27075
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download
--- Comment #5 from Anastasius Focht focht@gmx.net 2011-05-07 05:46:01 CDT --- Hello,
well the mention of "trusted site" information was helpful. But you need need several more workarounds to get further.
There should be a proper recipe added to appdb/bugs to not waste time reproducing bugs.
Also note that Windows based installs/copy over are NOT supported (you mentioned a Windows install in your appdb test report). Bugs should be worked on using pure Wine installs.
Fresh WINEPREFIX
1) bash winetricks -q ie8 2) wine iexplore "https://www.battlefieldheroes.com/en/playnow" 3) create account and login
IE8 interface is lacking the "ActiveX" control warning/message (below the address bar) to indicate that this site needs security settings modified -> bug
4) Add trusted site for plugin download:
click on icon "Internet security" in IE8 status bar -> "trusted sites" -> "sites" -> add "https://battlefieldheroes.com"
To work around a crash when the game is started:
--- snip --- wine: Call from 0x7b838257 to unimplemented function msvcp90.dll.??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ, aborting wine: Unimplemented function msvcp90.dll.??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ called at address 0x7b838257 (thread 0035), starting debugger... --- snip ---
5) bash winetricks -q vcrun2008
6) start game (using website plugin)
Ingame message: "you need a hero"
On website, click "create a hero" An empty frame with "You may only create 4 more Heroes" and a flash sign appears.
--- quote --- Btw, Flash is unnecessary. --- quote ---
Not true. You need flash because the whole hero customizing interface _is_ flash based.
7) bash winetricks -q flash
Now "create hero" puts up some flash interface. Select some hero settings -> click "create" -> error msgbox "invalid parameter" is displayed along with following output on console:
--- snip --- fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet Explorer) fixme:exec:SHELL_execute flags ignored: 0x00000004 fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet Explorer) fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet Explorer) fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet Explorer) --- snip ---
Hero is not created. Bummer.
Regards
http://bugs.winehq.org/show_bug.cgi?id=27075
--- Comment #6 from Daniel Skorka daniel.skorka@uni-konstanz.de 2011-05-07 06:52:16 CDT --- (In reply to comment #5)
There should be a proper recipe added to appdb/bugs to not waste time reproducing bugs.
I'd update my test result if I could...
Also note that Windows based installs/copy over are NOT supported (you mentioned a Windows install in your appdb test report). Bugs should be worked on using pure Wine installs.
Well, the only reason I didn't try a wine based install is that the download is about one gigabyte in size. Did you have troubles installing in wine?
Fresh WINEPREFIX
I reused my existing one. Of course, this will vary for everybody.
IE8 interface is lacking the "ActiveX" control warning/message (below the address bar) to indicate that this site needs security settings modified -> bug
I did see that warning telling me the ActiveX control failed for some reason I can't remember.
--- quote --- Btw, Flash is unnecessary. --- quote ---
Not true. You need flash because the whole hero customizing interface _is_ flash based.
Flash *is* unnecessary to download, install and run the game. The only part where Flash is needed is to create a hero on the website. That can be done just fine using Linux and a browser. No need for wine, or the flash plugin in wine. There's a "Create Hero" button on the website.
Regards, Daniel
http://bugs.winehq.org/show_bug.cgi?id=27075
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|-unknown |ntoskrnl Summary|Battlefield Heroes: |Battlefield Heroes: |Punkbuster doesn't work as |Punkbuster doesn't work as |it should |it should | |(ntoskrnl.exe.PsLookupProce | |ssByProcessId stub needed) Ever Confirmed|0 |1
--- Comment #7 from Anastasius Focht focht@gmx.net 2011-05-07 08:15:06 CDT --- Hello,
--- quote --- Flash *is* unnecessary to download, install and run the game. The only part where Flash is needed is to create a hero on the website. That can be done just fine using Linux and a browser. No need for wine, or the flash plugin in wine. There's a "Create Hero" button on the website. --- quote ---
well I'm not going to argue with you. I assumed you did everything using Wine and not native Linux tools (browsers). I just don't want to waste time figuring out stuff that are different bugs. Just keep in mind: the better the prerequisites/steps to reproduce the bug are given (exact steps!) the higher the chance that people might actually look at the bug.
The problem here can't be reproduced every time, it depends on the type of PunkBuster check carried out. There are cases where the infamous bug 9685 is encountered before your problem:
--- snip --- [05.07.2011 14:30:38] Receiving from PB Server (w v1.821 | A1376 C2.260) [05.07.2011 14:30:39] PnkBstrA successfully loaded PnkBstrB [05.07.2011 14:30:40] RESTRICTION: Unknown Windows API Function [131131] [05.07.2011 14:30:42] PnkBstrB service installed and started successfully --- snip ---
First you have to make sure that PunkBuster basics work by using the PB svc tool:
~/.wine/drive_c/Program Files/EA Games/Battlefield Heroes$ wine ./pbsvc_heroes.exe
click "Test services"
The PunkBuster "A" and "B" service should run and the kernel driver "K" can be extracted and run too.
Your problem might be this one:
--- snip --- ... 0089:trace:service:svcctl_CreateServiceW (L"PnkBstrK", L"PnkBstrK", 0xf01ff, L"C:\windows\system32\drivers\PnkBstrK.sys") ... 0016:trace:loaddll:load_builtin_dll Loaded L"C:\windows\system32\msvcrt.dll" at 0x62f60000: builtin 0016:trace:loaddll:load_native_dll Loaded L"C:\windows\system32\drivers\PnkBstrK.sys" at 0x10000000: native 0016:trace:ntoskrnl:IoCreateDevice (0x683474a0, 0, L"\Device\pnkbstrk", 40000, 0, 0, 0x53e648) 0016:trace:ntoskrnl:IoCreateSymbolicLink L"\DosDevices\pnkbstrk_link" -> L"\Device\pnkbstrk" 0016:trace:service:SetServiceStatus 0x1109b0 30 4 5 0 0 0 2710 0095:trace:service:svcctl_SetServiceStatus (0x113288, 0x1131b4) 0089:trace:service:service_wait_for_startup Service started successfully 0089:trace:service:service_start returning 0 0096:trace:service:CloseServiceHandle 0x13ba00 0088:trace:service:svcctl_CloseServiceHandle (&0x112da8) 0096:trace:service:CloseServiceHandle 0x13a0c0 0095:trace:service:svcctl_CloseServiceHandle (&0x111788) 0016:trace:ntoskrnl:process_ioctl ioctl 2261c0 device 0x110f18 in_size 16 out_size 16 0016:trace:ntoskrnl:MmGetSystemRoutineAddress L"ZwQuerySystemInformation" -> 0x7bc56904 0016:trace:ntoskrnl:MmGetSystemRoutineAddress L"MmMapIoSpace" -> 0x683cd904 0016:trace:ntoskrnl:MmGetSystemRoutineAddress L"MmUnmapIoSpace" -> 0x683cda6b 0016:trace:ntoskrnl:MmGetSystemRoutineAddress L"MmGetPhysicalAddress" -> 0x683c4cb4 0016:trace:ntoskrnl:MmGetSystemRoutineAddress L"ObDereferenceObject" -> 0x683c57b4 0016:trace:ntoskrnl:MmGetSystemRoutineAddress L"MmIsAddressValid" -> 0x683cd880 0016:trace:ntoskrnl:MmGetSystemRoutineAddress L"PsLookupProcessByProcessId" -> 0x683c66a8 0016:trace:ntoskrnl:MmGetSystemRoutineAddress L"KeStackAttachProcess" -> 0x683c4550 0016:trace:ntoskrnl:MmGetSystemRoutineAddress L"KeUnstackDetachProcess" -> 0x683c45d4 0016:trace:ntoskrnl:__regs_IofCompleteRequest 0x53e780 0 0016:trace:ntoskrnl:IoCompleteRequest 0x53e780 0 ... 0016:trace:ntoskrnl:process_ioctl ioctl 226214 device 0x110f18 in_size 16 out_size 4096 ... wine: Call from 0x7b838257 to unimplemented function ntoskrnl.exe.PsLookupProcessByProcessId, aborting ... --- snip ---
Wine needs supply a stub for ntoskrnl.exe.PsLookupProcessByProcessId to let the service live (returning STATUS_NOT_IMPLEMENTED is enough).
--- snip --- 006f:trace:ntoskrnl:process_ioctl ioctl 226214 device 0x110f18 in_size 16 out_size 4096 006f:fixme:ntoskrnl:PsLookupProcessByProcessId stub: 0x72, 0x53e728 006f:trace:ntoskrnl:__regs_IofCompleteRequest 0x53e780 0 006f:trace:ntoskrnl:IoCompleteRequest 0x53e780 0 ... --- snip ---
But even with that stub in place (preventing crash of kernel driver) you will more or less frequently encounter bug 9685 in the game, effectively destroying gameplay.
See: http://appdb.winehq.org/objectManager.php?sClass=version&iId=5813
"UNKNOWN WINDOWS API FUNCTION [131xxx]" for a list I made years ago by dissecting PunkBuster (there exist more but it would be useless to document them).
Regards
http://bugs.winehq.org/show_bug.cgi?id=27075
--- Comment #8 from Austin English austinenglish@gmail.com 2011-05-07 13:50:12 CDT --- http://source.winehq.org/patches/data/73913
http://bugs.winehq.org/show_bug.cgi?id=27075
--- Comment #9 from Daniel Skorka daniel.skorka@uni-konstanz.de 2011-05-09 10:07:22 CDT ---
First you have to make sure that PunkBuster basics work by using the PB svc tool:
~/.wine/drive_c/Program Files/EA Games/Battlefield Heroes$ wine ./pbsvc_heroes.exe
click "Test services"
The PunkBuster "A" and "B" service should run and the kernel driver "K" can be extracted and run too.
The test works fine, all results green.
Your problem might be this one:
... wine: Call from 0x7b838257 to unimplemented function ntoskrnl.exe.PsLookupProcessByProcessId, aborting ...
Yes, I think that's it. I didn't bother to do a trace, but that warning pops up several times.
But even with that stub in place (preventing crash of kernel driver) you will more or less frequently encounter bug 9685 in the game, effectively destroying gameplay.
Yes, I understand that. Still, it would be nice to fix this bug.
Regards
http://bugs.winehq.org/show_bug.cgi?id=27075
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #10 from Anastasius Focht focht@gmx.net 2011-05-09 14:19:22 CDT --- Hello,
crash fixed by commit: http://source.winehq.org/git/wine.git/commitdiff/ebb1fec5cacd6c445b2b6e42088...
Anyway, you won't stay long in game before being kicked with "Unknown Windows API Function".
Regards
http://bugs.winehq.org/show_bug.cgi?id=27075
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #11 from Alexandre Julliard julliard@winehq.org 2011-05-13 13:33:03 CDT --- Closing bugs fixed in 1.3.20.
http://bugs.winehq.org/show_bug.cgi?id=27075
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |ebb1fec5cacd6c445b2b6e42088 | |42facc59e9696
http://bugs.winehq.org/show_bug.cgi?id=27075
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |obfuscation