Difference between revisions of "Wiimmfi"
Maczkopeti (talk | contribs) m (→Game Patcher) |
|||
Line 93: | Line 93: | ||
[[Server MASTER]] listens at a UDP port. The clients (games) send frequently status records to the master . The master server stores them into a game specific table, where other clients can retrieve the information using the [[Server MS]] (see next point). | [[Server MASTER]] listens at a UDP port. The clients (games) send frequently status records to the master . The master server stores them into a game specific table, where other clients can retrieve the information using the [[Server MS]] (see next point). | ||
− | [[Server MASTER]] is fully implemented | + | [[Server MASTER]] is now fully implemented in C for performance reasons (same as NATNEG). |
=== [[Server MS]] === | === [[Server MS]] === | ||
Line 111: | Line 111: | ||
[[Server SAKE]] is used for data exchange - files or records can be uploaded to the sake server. This is used for friend mii exchange in Mario Kart Wii. | [[Server SAKE]] is used for data exchange - files or records can be uploaded to the sake server. This is used for friend mii exchange in Mario Kart Wii. | ||
− | [[Server SAKE]] | + | [[Server SAKE]] is being adapted by Leseratte from the "DWC Network Server Emulator" by Nagato and will probably be reimplemented later for performance reasons. |
=== [[Server GAMESTATS]] === | === [[Server GAMESTATS]] === |
Revision as of 20:43, 5 July 2014
Nintendo has announced that the Nintendo Wi-Fi Connection service will be discontinued on May 20, 2014. This will impact all DS and Wii games with online features, including Mario Kart Wii. Wiimm had been analysing the Mario Kart Wii network traffic since November 2012 and had already written an helper tool named mkw-ana. And so he decided together with other people to create the Wiimmfi Project (formerly Wii-Server Project) to replace Nintendo's servers for Mario Kart Wii and perhaps for other games.
wiimmfi.de
wiimmfi.de is the new domain that replaces nintendowifi.net. All games must be patched to use this new domain and to disable https requests (see below).
The domain wiimmfi.de was registered by Wiimm for this project. If Wiimm discontinue this service at any time in the future, he will give away the the domain, the software and the data base content.
State of the Project
The tester team around Wiimm already played many versus and battle in rooms, in regions and worldwide, sometimes more than an hour without interruptions. They played standard Mario Kart Wii and Wiimms MKW-Fun. The latter is based on CTGP-R v1.02.
Confirmed games
The following games can be played using the custom servers:
- Animal Crossing: City Folk/Let's Go to the City!
- GTI Club Supermini Festa
- Mario Kart Wii (no mii exchange, no competitions, no ghost data up-/download)
- Mario Strikers Charged
- Pokemon Battle Revolution
- Pro Evolution Soccer 2008-2012 (only PAL tested)
- Pro Evolution Soccer 2013
- Sonic & SEGA All-Stars Racing (only global races)
- Super Smash Bros. Brawl
- The Last Story (no online statistics)
Don't forget that the development is not finished yet.
Games ready to test
The following games are enabled and waiting for tests:
- ExciteBots: Trick Racing
- Fortune Street Wii
- Mario Kart DS (NTSC-U-patch, PAL-patch)
- Pro Evolution Soccer 2009-2012 USA/JPN
- Tatsunoko VS. Capcom: Ultimate All Stars
- The Conduit 2
- Trackmania Wii
- We Love Golf!
It seems that DS games also need a patch to replace https requests by http. Here you can find a patcher that should work with all DS games.
Here you can find always a list of enabled games.
Known Mario Kart Issues
- After registering a new friend, the Miis are not exchanged with the result, that the players can't meet in a room. Workaround: Play one global race.
Game Patcher
To play Wii games using the custom server, the games must be patched using the wiimmfi-Patcher. There are 2 patchers for USB-Loader, one for Mario Kart Wii and one for other games. For Riivolution users, MrBean35000vr is on the way to create a channel, that will patch the strings on the fly.
Updates/Maintenance
The wiimmfi-server is running in test mode. There is a second server for the active development. And so major updates must be done frequently.
The maintenance time is set between 15:00 and 16:00 UTC (17–18h CET) at every day. In this time the server may be stopped for updates and other things without further announcement. Don't be surprised if you are kicked or if login is not possible during this period. This time will also used to insert new retrieved friend codes.
Implementation
Wiimm decided to implement the code in PHP as a fast solution and to find out the protocol details. From the beginning it was clear that it must be rewritten in C or C++ for performance reasons. While developing, there were some other issues, so one of the servers is already implemented in C.
Server NASWII/NAS
Server NASWII is the https based login server. NAS is an old NDS implementation for http. Both can be interchanged. The server is implemented using APACHE2 and PHP5.
At the moment, only logins are accepted with old and new profiles. Complete new savegames send a request to get their unique console nickname from the server. This is not implemented yet.
Server GPCM
If entering the WFC, the Wii connects to the Server GPCM using TCP. The connection is closed, when leaving WFC. The server is used for general maintenance and for message exchange between the clients.
It is implemented as PHP script. Because of interprocess communication (transferring messages) an re-implementation in C is planned. Currently the custom server does not support all kinds of messages.
Server GPSP
Server GPSP is used to retrieve information about friends. The Wii connects and disconnects frequently using TCP. We use Nintendos GPSP server to retrieve the profile_id and nick pairs.
Server GPSP is fully implemented as PHP script.
Server MASTER
Server MASTER listens at a UDP port. The clients (games) send frequently status records to the master . The master server stores them into a game specific table, where other clients can retrieve the information using the Server MS (see next point).
Server MASTER is now fully implemented in C for performance reasons (same as NATNEG).
Server MS
Server MS is connected by the clients to retrieve information about other online clients. The query looks like a SQL query with select, where and limit clauses. The reply is encrypted by a game specific secret.
Server MS is fully implemented as PHP script.
Server NATNEG
Server NATNEG is used to establish a connection between two players both being behind NAT. The clients only communicate with this server when they try to connect to another player.
Server NATNEG is fully implemented in C. Because it is the only C tool, it has an open second port to send special UDP packtes for Server MS with the faked sender address of Server MASTER.
Server SAKE
Server SAKE is used for data exchange - files or records can be uploaded to the sake server. This is used for friend mii exchange in Mario Kart Wii.
Server SAKE is being adapted by Leseratte from the "DWC Network Server Emulator" by Nagato and will probably be reimplemented later for performance reasons.
Server GAMESTATS
Server GAMESTATS is for game statistics. At the moment, Server GAMESTATS does not work yet.
Server DLS1
Server DLS1 is a server for game updates. At the moment, it just returns that no update is available.
Using old profiles
For each profile, there exists a profile id and nick name pair. Only the Wii of the user and the server database knows both of them. At login the Wii sends the nick name and the server answers with the related profile id. If the profile id is wrong, the game aborts the login.
If you want to use your old profile with the new custom servers, you must use the Web Formula to register it. The server will then try to retrieve your related nickname. This retrieving works only if you have registered friends, and at least one friend has registered your profile.
The servers for the data retrieving are still online. The retrieving task will run until the server shutdown. And this means, adding our friend code at the Web Formula will work.
Alternatively you can download the app here. Simply start it and all profiles from supported games will get transmitted to our server. You can find a list of all supported games here.
If you want to use one of your old profiles please use one of them during your first connection. It may lead to problems if your first connection is done with a new profile.
Links
- Project forum at Wii-Homebrew.com
- MKW-Server-Project
- Web Formula to register your old friend code
- Wiipid extractor to dump your old friend code from the savegames
- Other forums