As you may know, if you try making an inject of Mario Kart Wii with Wiimmfi, it will result in an error 20100 (Other games work fine)
Error 20100 is NOT a failed to connect to an internet, its more of a “failed to authenticate into wiimmfi” error.
This happens because of TLS. Back in like 2018, Wiimmfi enforced TLS to deliver the Wiimmfi Patches. WiiVC sadly does not support this.
Here is some of the complicated details here.
I actually spoke with the guy who manages NewWFC. He says that he tried fixing it by delivering a modified Wiimmfi Payload to his WiiU, but it nagged about invalid login parameter then console creation denied.
The Wiimmfi Connection goes like this:
Before you connect, you download a payload. After that, the wii downloads the wiimmfi certificate at ca.nas.wiimmfi.de/ca
After this, main.nas.wiimmfi.de/pe is used to download the payload for NTSC-U. That then tries to connect to something like lecode.php (I am not entirely sure) It sends a POST request of your x-wiimmfi-region (EUR JAP USA KOR)
Then, it sends over the correct region of patches over TLS, which WiiVC does not support.
However, WiiLink WFC does this whole process differently, and does not enforce TLS, and even removes the need for SSL.
It first downloads the payload over http, checks the hash, and if it matches, the payload runs. It then downloads the payload with a simple request like “?game=RMCE01&” Some weird line that is long.
Then it applies patches, and connects.
The issue here is that if you make a WiiVC inject, you will get error 22000. This is because the function ES_Sign wont work for some reason. The code is here for it to work, but it needs to be looked into.
Anyways, here are some possible fixes:
1. Fix it from the WiiLink WFC payload, a simple but effective fix to get Mario Kart Wii working on WiiVC!
2. Modify fw.img (the ios) to fix the issue
Error 20100 is NOT a failed to connect to an internet, its more of a “failed to authenticate into wiimmfi” error.
This happens because of TLS. Back in like 2018, Wiimmfi enforced TLS to deliver the Wiimmfi Patches. WiiVC sadly does not support this.
Here is some of the complicated details here.
I actually spoke with the guy who manages NewWFC. He says that he tried fixing it by delivering a modified Wiimmfi Payload to his WiiU, but it nagged about invalid login parameter then console creation denied.
The Wiimmfi Connection goes like this:
Before you connect, you download a payload. After that, the wii downloads the wiimmfi certificate at ca.nas.wiimmfi.de/ca
After this, main.nas.wiimmfi.de/pe is used to download the payload for NTSC-U. That then tries to connect to something like lecode.php (I am not entirely sure) It sends a POST request of your x-wiimmfi-region (EUR JAP USA KOR)
Then, it sends over the correct region of patches over TLS, which WiiVC does not support.
However, WiiLink WFC does this whole process differently, and does not enforce TLS, and even removes the need for SSL.
It first downloads the payload over http, checks the hash, and if it matches, the payload runs. It then downloads the payload with a simple request like “?game=RMCE01&” Some weird line that is long.
Then it applies patches, and connects.
The issue here is that if you make a WiiVC inject, you will get error 22000. This is because the function ES_Sign wont work for some reason. The code is here for it to work, but it needs to be looked into.
Anyways, here are some possible fixes:
1. Fix it from the WiiLink WFC payload, a simple but effective fix to get Mario Kart Wii working on WiiVC!
2. Modify fw.img (the ios) to fix the issue