I recently purchased BFBC2 on steam because it was on sale for under $10 and prepared to run the game through its paces. The game loaded up perfectly fine, though I had to deal with the normal first initialization by steam: installing directx and punkbuster. Once in the game I decided to test the multi-player functionality so that I could configure my firewall and router settings if necessary (something I always do with a new game or program so I don’t have to deal with it later). Quickly finding that I was unable to connect, I began the usual trawl through forums and guides searching for different causes. I opened ports, ran a port sniffer so I could see what BF was trying to connect with, and added the game to the trusted group in my firewall, all to no avail. The internet posted a multitude of “solutions” mostly following illogical troubleshooting steps. Finally I came across a youtube video that described my problem and proposed a solution that appeared verifiable by several other users. I decided to do as instructed, and not so surprisingly, it worked! I have yet to actually play any multiplayer games, but I have enabled access to EA’s servers.
Okay now to the problem and solution. This guide is written for Vista/Windows 7
If you have properly setup your firewall and allowed access to the correct ports shown below, but are receive an error trying to even connect to the EA servers ingame, then the next step to determine if this solution is right for you is to go to: https://profile.ea.com. If you cannot load the page then continue reading, otherwise this solution may not solve your problems.
18390 TCP Outgoing
18395 TCP Outgoing
18395 UDP Outgoing
13505 TCP Outgoing
80 TCP Outgoing
So you can’t access the EA profile page.
What you are going to need to do next is alter a system setting so make a system restore beforehand, incase something gets messed up.
After the sys restore is complete, run CMD as an administrator by typing cmd in the start menu search box then right-clicking on CMD on click run as administrator. Once there you will need to type “netsh int tcp set global ecncapability=disabled” without the quotes of course. The command will run and displays “OK” when complete.
That’s it. Now try loading https://profile.ea.com again and see if it loads correctly. If so, try logging in-game. The game should work from there, if not, then perhaps there is a problem with the servers.
Here’s the less verbose walkthrough version:
- Try to load https://profile.ea.com if fails continued to step 2.
- Run CMD in administrator mode.
- Type netsh int tcp set global ecncapability=disabled
- Hit enter and wait to see an OK
- Try to load https://profile.ea.com if works proceed to next step otherwise check the command you typed in step 3.
- Login in-game.
As far as my research has led me to believe there are no inherent security risks to disabling this feature, just perhaps a slight degradation in large file downloads, but for the most part unlikely. If you want the benefits of ECN then you can write a batch file to disable it when you play Battlefield and then another to re-enable after playing. However, ECN only works where both peers or client and server both are utilizing ECN. It is not clear from what I found so far who utilizes this feature, so I do not know what impact you will see.
Thanks to: http://www.youtube.com/watch?v=j6-PEnLBb2s
here’s additional information on the feature we are disabling: http://en.wikipedia.org/wiki/Explicit_Congestion_Notification