P2P connections with the Wii U and online games

Hello!

I have been trying to get multiplayer p2p games such as Splatoon and MK8 running on my Wii U and I’ve run into problems with getting the networking to work. All the guides I have looked at say open ALL THE UDP PORTS which I’m not willing to do because I host things on my network. Ive tried setting up UPnP with no luck.

Is there any way I can get around this? Like I would like to know more about if the Wii U can even use UPnP or if there is something I’m not thinking of. Any help would be appreciated.

I don’t believe the Wii U utilises it in the majority of titles (or even any game, I’m not sure).

Yeah, that’s unfortunately the case currently. We’re planning on releasing a new update to Inkay afaik at some point which will hopefully mean that you won’t have to forward as many ports.

If you’re on Cemu, I believe there are plugins that allow you to lock a certain port for usage?

While UPnP is technically available per Rendez-Vous, no NEX titles ever utilized it. It’s possible we could attempt to support it, since the functionality for some unused features is still present in NEX, but there’s no guarantee it will work correctly (whether that be because it was gutted from a game, or the p2p libraries themselves, which are separate from the NEX libraries, just don’t support it). So trying to mess with that on your end will be fruitless

Before diving into things though you should verify that the issue is actually in the p2p side of things. You haven’t given any error codes so it’s possible that you aren’t even seeing any p2p errors at all

If you’re seeing a 106-XXXX class error, then that’s a general NEX error not p2p. If you’re seeing a 118-XXXX class error, then that’s p2p. If you really are seeing a p2p error, I would recommend leaving the error code(s) you’re seeing so we can get a bit more details. We have some information about error codes on GitHub as well (our Discord bot/website are not yet updated to have the new p2p error names) error-codes/data/118 at master · PretendoNetwork/error-codes · GitHub

The 2 main reasons for a p2p error are:

  1. Bad matchmaking. Our servers are not perfect, and so there’s likely bugs which still need to be squashed. For example older servers tend to have an issue where dead connections might stick around after closing, which could result in trying to establish a p2p connection to a dead client. Though given that you have this issue with multiple games, and Splatoon specifically should be updated to a version without that bug, I think it’s most likely the 2nd reason
  2. Incompatible networks. Nintendo Network was made in a time when home networks looked very different, and so as time goes on and people upgrade their home networks many of them can become incompatible. There’s not really much we can do in this situation. There’s likely some that we can do, which I’ve noted here already [Enhancement]: Filter clients in sessions by network properties · Issue #43 · PretendoNetwork/nex-protocols-common-go · GitHub (and somewhat relates to the 1st reason), but ultimately if 2 networks are incompatible then there’s not much we can do

As mentioned by @GamersInternatio we have a number of experiments aimed at trying to reduce these errors to the best of our abilities. The way games currently work is that a random port is selected to be your p2p port, which is why most guides (including official Nintendo ones) will tell you to just open every port, since it can’t know which is being used. We agree that just blindly opening every port is bad though, which is why we’re exploring other options

Inkay has the ability to set a specific port to be used, allowing you to only open that specific port (feat(p2p): Allow overriding the p2p udp port for Minecraft · PretendoNetwork/Inkay@22bebff · GitHub and feat(p2p): Port overrides for Splatoon and MK8 · PretendoNetwork/Inkay@a6b91be · GitHub), however it is limited to only some games and is only usable by Inkay users (making it not viable for SSSL users)

As a more generic solution, we have begun some testing of a new “relay” system. This mimics a feature that was officially supported by Rendez-Vous, but gutted in most NEX games. Instead of clients connecting directly to each other, instead the server gives the client the address to a “relay” server run by us. This relay server then reroutes packets to the correct client, while the game still thinks it’s in a p2p mesh. This has the benefit of not having home network issues (since it essentially turns p2p games into server-client games), but may have impacts on areas like latency and will increase our running costs. For a full overview of the pros/cons/feature in general see https://pretendo.network/blog/11-1-24#enhanced-multiplayer-with-relays

Given that you mentioned issues with Splatoon and Mario Kart 8, I would recommend using Inkay to try and set a specific port for those games and then opening that port only

1 Like

Well look at that.

Only supports Mario Kart 8, Minecraft and Splatoon at the moment but that might just solve your issues!

Thank you for the reply Ill work on getting some error codes soon. I mostly just posted this so I could get more info on how the Wii U handled P2P connections since I have a double-NAT network. I just figured out how to get UPnP working on my router today so hopefully, I can see if that works.

Thank you for the help ill get you more info soon.

Alright, I got some error codes:

Mario Kart 8

  • Error Code 118-0502 (So it is a p2p error)

Support Info (idk if you need this but I’m including it anyway)

  • 5.5.6 U
  • WUP-101(2)
  • FW430870891
  • AMK5-0250-7375

I tested it again and I got a 106 while taking a network capture which is strange.

I tested it on my ISP provided modem and it worked with no modification but failed in the middle of a race because it sucks. What specifically do I need to have P2P connections work

Also side note the ISP wifi came up with 120-00 and my main WiFi came up with 220-01


Splatoon won’t update will try later


So Basically what I need is info on how the Wii U does P2P so I can fix my main network so be able to do that.

HAHA! I figured it out.

Specifically with using Opnsense. I used this Reddit post.

https://www.reddit.com/r/OPNsenseFirewall/comments/g3sx2l/tip_opnsense_and_nintendo_switch_nat_rules/

I made an outbound rule with the hybrid configuration as shown in the reddit post.