Nintendo WFC
Erik on Jan 17th 2006
I got Mario Kart for Christmas, and it has been a bit of an obsession for the last month. It’s probably a good thing that it doesn’t log the number of hours that I’ve played. I would be afraid to see the results.
I’ve spent some time fighting with the WFC online play service, and these are my notes.
The problem is with finding opponents. Some people claim that they can always find 3 opponents with a minute of connecting to the service. Others never find opponents. I have found my experience to be between the two. I can always find a race, but sometimes it involves long waits, and is usually against only one other person. Many times I’ve had the system indicate that it has found one or two opponents for me, but then they disappear while the system tries to find a third.
My home network isn’t typical. I have my DS connecting to my D-Link Dl-614+ wireless router. I had to drop the router to 2mb for the connection to work, but I am able to use WEP with it. The D-Link only serves as a wireless bridge, and I have an OpenBSD machine running firewall and NAT. Under this setup it would take ages to connect to an opponent, and I would almost never race against more than one person.
Nintendo’s support site is very short on information. One thing that I tried was to follow their dubious firewall advice, and forward tcp ports 8910, 29900, 29901 and 29920 plus all udp ports to a static IP for the DS. I think this helped a little bit, as now I can sometimes get three player races. It’s very strange though. I’ve used tcpdump on the router, and I can see normal udp traffic from my opponents going to and from the DS. But if I do a port scan via nmap, I can’t find any open ports on it. So what is going on? I think that Nintendo WFC tries to do some sort of NAT traversal, allowing inbound connections by using outbound traffic to create openings in the NAT state table. In theory, it’s a great idea. Peer to peer online gaming, without having to mess with port forwarding and firewall rules. Unfortunately it doesn’t work very well through my OpenBSD router. I can connect to some players, but not many. I’ve had some luck getting 4 player races by searching for Rivals, which only attempts to connect to people you have raced before.
Jay let me test some of my theories using his Linksys WRT54G. Once I dropped it from WPA to WEP, I was able to connect the DS. The Linksys NAT seems a little more WFC friendly, as I consistently found two or three opponents to race against, in reasonable amounts of time.
So to get the most from playing online I might have to hook my D-Link directly to the net and move my OpenBSD box behind it. Or I might buy a Nintendo USB WiFi adapter, which lets a Windows computer serve as a DS WFC specific access point. Maybe finding opponents would be more successful with that setup. Plus there are Linux drivers to use the Nintendo adapter as a regular WiFi card, as well as some interesting homebrew possibilities for the chipset. I’m not sure if I want to spend $40 on something that might not make any difference at all though, and google seems to know very little about the topic.
Filed in Games | No responses yet