Finaly I have found solution (for me, maybe it helps you too) for FH2/bf2 desktop crash or sound loop or BSOD, caused by SH|TY Punkbuster. PB is to old and evenbalance has stoped making updates for PB for BF2. Admins should find another way to prevent servers. PB is making more troubles than this all is worth.
What I done.
- Go to directory where bf2 is instaled
X:\...\EA GAMES\Battlefield 2
find pb folder and delate it
- Downlaod PB setup v3.5, and run them as administrator, click "Add a Game", choose bf2, then check for updates
- Downlaod PB SVC, and run them as administrator. Next folow the instalation prosces.
- Downlaod this:
http://www.filedropper.com/pb ->if link doesn't work let me know, I will reupload
Unpack this, and paste into X:\...\EA GAMES\Battlefield 2 folder
- Go to "Control Panel"->"System"->"Advanced system settings"->"ADVANCED" TAB click buton "settings" in preformance section->"Data Execution Prevention tab"->select "Turn on DEP for all programs and services except those I select"
HERE add PnkBstrA and PnkBstrB
- Go to:
C:\Windows\SysWOW64 (if You have 64bit system)
C:\Windows\system32
C:\Users\...name of user...\AppData\Local\PunkBuster\BF2\pb
In those paths find PnkBstrA and PnkBstrB files, right click on them, open properities, compatibility, and mark "run as administrator"
Again in:
C:\Users\...name of user...\AppData\Local\PunkBuster\BF2\pb
Open "pbsys" file in notepad and type there something like that:
pb_system 0
pb_security 0
pb_sleep 500
- Go to "Control Panel"->"Administrative Tools" -> "Services"
Find PnkBstrA, clikc RMB on it, "chose properities", next "logging tab", click "let to interract with desktop"
After joining to server u have to go again to services:
Find PnkBstrB, clikc RMB on it, "chose properities", next "logging tab", click "let to interract with desktop"
OR Open notepad and type into this without quotes.
"
:start
sc config PnkBstrA type= own type= interact
sc config PnkBstrB type= own type= interact
timeout 60
goto start
"
Save as punkbuster.bat - run this file before playing online. This bat will automaticly set interract function into pbA and pbB services.
- And now the most important things:
-- TURN OF WINDOWS FIREWALL before running the game
-- Disaable windows defender before running the game
-- Exclude pbA and pbB from scaning of your antyvirus program
- Run game in single palyer, open console and type "pb_system 0", disconnect from single player (You cant change pb_system 1or0 if pb is online)
- Run game in multiplayer join to server with pb on, open console and type "pb_system 0", "pb_security 0", "pb_sleep 500", pb_writecfg
Those things above are 100% save, you will not get kick or ban for that. I made much worse thing with pb services and files but it caused kicks of server so I didn't wirte it here.
If this will not help you try to make everything again but change value in pb_commands (security, system) from 0 to 1.
I hope it will help you too, FH2 is realy good game/mod and dont let punkbuster to f.ck it up