I have UPnP enabled both on my computer and router, and every game I play that doesn't use GFWL was able to create an IGD and forward the required ports. However, when connecting to GFWL, opening the console ("Home" or "Guide" key), going all the way right to "Settings," and clicking "Network Information," it would report that my NAT is Strict and that "UPnP is available, not used." Why in the hell was it not used?
Anyway, after looking around everywhere, I finally stumbled on to a way to make GFWL use UPnP. These directions are for Windows Vista, but it should be very similar to Windows 7.
DISCLAIMER: If you're using a third party firewall I cannot guarantee that my instructions will work for you. My router is a Belkin N300 Wireless Router with 802.11g&n support. My PC is connected to the router with a Cat5e LAN cable.
Network Discovery Control Panel
First, make sure Network Discovery is enabled by going to Control Panel -> Network and Sharing center. If none of the radio buttons are enabled, that's okay. Before turning it on, however, click on Change settings next to Workgroup. In the new window, click the "Network ID..." button and make sure the radio button for "This is a home computer..." is enabled and click next. You will have to restart your computer. Go back to the Control Panel window mentioned earlier, enable the "Turn on network discovery" radio button under Network discovery and click Apply.
Windows Services interface
Next, if you're not sure UPnP is turned on on your PC, press Windows+R on your keyboard (or Start and start search), type "services.msc" and press enter. Sort the list by name and scroll down to "Network Location Awareness," "SSDP Discovery," and "UPnP Device Host." If they say Automatic or Manual in the Startup Type column, then you're good. If not, right-click on each of these, click Properties, and change the "Startup type" listbox to Manual or Automatic and start the service if not already started.
Windows Firewall Control Panel
This next step is optional, but ensures the ports are being forwarded through the Windows firewall if you have it enabled. Go back to Control Panel -> Network and Sharing Center, click "Windows Firewall" on the bottom-left under "See also." In the new window click "Allow a program through Windows Firewall" on the right. Then click the "Add port..." button and add each of the required ports one-by-one for each port type
, even if it's the same number. I will list the ports at the bottom of this post.
If you don't have the option to add a port, check to see if there are already exceptions for "Dark Souls: Prepare to Die Edition" and "Games for Windows Marketplace." If not, add an exception for "DARKSOULS.exe," "GFWLive.exe," and "GFWLClient.exe." These are located in "..\SteamApps\common\Dark Souls Prepare to Die Edition\DATA" and "x:\Program Files (x86)\Microsoft Games for Windows - LIVE\Client," respectively. Replace 'x' with your drive letter and/or remove "(x86)" if you're running a 32-bit version of Windows.
Port-forwarding Belkin example
UPnP enabling Belkin example
To ensure UPnP works properly on your router, you need to clear the port forwarding list on it if you've added one. This is called "Virtual Servers" on my router. Look up how to do this if you're not sure, as all routers are different. This is important for UPnP to function because your router can get confused when both port forwarding and UPnP are used at the same time. Some places on the web tell you to do both on your router, but this is wrong. You only need to tell the operating system which specific ports are allowed and need to be forwarded. Make sure UPnP is also enabled while you're doing this on your router.
Where to find your router in Windows Explorer
Now the most important step follows. Open Windows Explorer by either using the "My Computer" shortcut or pressing Windows+E on your keyboard. In the left pane, click the Network tree. If you've followed the first two steps your router should show up in the right pane. Right-click on your router and click Properties. Click the "Settings..." button in the "General" tab. The window that appears should have a "Services" tab that may be populated with the ports that you forwarded in your router before clearing the list. Ah, now we're getting somewhere! Now you have to add each individual port in the same way I described in the Windows firewall step.
!IMPORTANT! - You may have to repeat the above step every time you restart your computer. Unfortunately I don't know of a way to make the settings stick.
After you have done all of this, the GFWL console should now say your NAT is Open and that UPnP is both available and in use! If your NAT is moderate, but it still says UPnP is in use, you're still good.
The following ports are required for P2P connections to work when connected to GFWL:
- 53, TCP & UDP - DNS resolution, GFWL uses to resolve P2P connections
- 80, TCP - Internet
- 88, UDP - Internet
- 443, TCP - HTTPS, GFWL uses for voice communication and Live logon
- 3074, TCP & UDP - GFWL P2P communication
Remember that when you add these ports to your Windows firewall and router in Windows Explorer, you need to add each port type for the same number! So for example, you need separate entries for both TCP 53 and