What this is about

Even though we are trying everything we can to stop cheaters on Wiimmfi, there are still multiple cheater reports in the ban thread each week. Cheaters who subtly try to win, cheaters who annoy others with item cheats or cheaters who freeze other players. These problems have been taken care of in the past by banning the offending player(s), and possibly adding antifreeze codes or things like Ignorance-is-bliss to the most common custom track distribution, CTGP Revolution.

However, more and more of these cheats are being developed. Recently, it has come to our attention that certain cheaters are working on codes that allow them to modify their opponents' game's memory over the network. We also seen the creation of cheat codes that allow a user to brick their own console. If a cheater were to become capable of modifying the game memory of their opponents, it could be possible to run this bricking code on someone else's console. This is highly concerning, even if, at present, it is just theoretical. With the current Wiimmfi setup, there is nothing we can do about it — server-side, we can only influence matchmaking and connecting, but nothing that happens between players.

This could be fixed by making people use CTGP Revolution instead of the other patchers, but we don't want to force people to do that. That would destroy other custom track distributions, and would stop people using Dolphin or people not having a working disc drive, or people who just don't want the constant disc drive noise, from Wiimmfi, and thus this restriction will definitely not be implemented on Wiimmfi.

What has now been implemented on Wiimmfi though is the requirement for a new updated patcher. We have developed a new system that should help us with our fight against cheaters, and helps with fixing in-game bugs. MrBean and Chadderz developed a patch framework for Mario Kart Wii, and Wiimm and Leseratte implemented the necessary server changes to support it. This patch framework allows Wiimmfi to make runtime changes to Mario Kart Wii. Every time you connect to Wiimmfi with a newly patched game, the Wiimmfi server will send patch instructions to the client and modifies the game the way we want to.

These updates won't be permanently stored anywhere, so every time you connect to Wiimmfi the server will update your game in the Wii's RAM (temporary memory), which will be completely gone again as soon as you leave the game. The patcher will only alter the game in ways needed to improve stability, fix critical bugs like the one described above, or stop cheaters. We are not trying to re-build something like CTGP using this patching system.

Thus, for patchers other than CTGP, this allows us to dynamically add anti-cheat measures and other game fixes to the game. You only need to re-patch your game once, and any future updates will be done automatically, while you are connecting to Wiimmfi, and will be stored in RAM (temporary memory) for that session only. While this system is a bit restricted in terms of the amount of additional code we will be able to add to the game, and thus probably will not contain all of the anti-cheat measurements of CTGP (at least not in its current state, maybe in the future), we hope it at least gives us some control over the situation.

As of November 11th, 2018, there won't be many sophisticated anti-cheat systems activated on Wiimmfi, but fixes for some known vulnerabilities are available, and we'll have a framework which allows us to start developing proper anti-cheat systems and other patches against cheaters.