Network Protocol/Server
Jump to navigation
Jump to search
Details about the communication with the N-servers:
Name | Record ID | Length | n-server | Description |
---|---|---|---|---|
ERROR < | \error\ | ? | ? | Error record sent if there was any error. |
CONNECT > | 0x0900 | 18 | 248 | Requesting a login challenge (while connecting to WFC). |
> LOGIN_CHALLENGE | \lc\1\ | 38 | 242 | N-server answers with challenge. |
LOGIN > | \login\ | 365 | 242 | Wii solves the challenge and logs in at the WFC. |
> LOGGED_IN | \lc\2\ | ? | 242 | Server accepted solved Challenge and returns Sessionkey and User-IDs. |
LOGOUT > | \logout\ | 32 | 242 | Logout from WFC. |
OTHERSLIST | \otherslist\ | ? | 241 | Sending current friend list to N-servers and receiving an list with nicknames. |
> PROFILEID | \pi\ | 229 | 242 | Sent by Nintendo if this is the first time connecting to WFC. Returns PID, UID and an signature. This is also sent after adding a new friend; then it contains user info. |
RACESTATUS > | localip0 | ? | 242 | Status packet, send each minute during connection to WFC and during online races. Contains information about number of players, own IPs and own Ports |
> FRIEND | \bm\100\ | 39 + status | 242 | N-Server returns information about friends. One to ten friends per packet. Is also sent if friend comes online and contains his IP and (later) his Port. |
> FRIENDREQUEST | \bm\2\ | 73+ | 242 | N-Server sends information about a user that has added the current user's friend code. |
> FRIENDREGISTER | \bm\4\ | 73+ | 242 | Tell the N-Server that you registered a friend code. |
GETPROFILE > | \getprofile\ | 62 | 242 | Wii asks for the profile of a friend. |
ADDBUDDY > | \addbuddy\ | x * 65 | 242 | ? |
DELBUDDY > | \delbuddy\ | 58+ | 242 | Remove someone from friend list. |
? > | \ka\ | 11 | 242 | Status packet send each 2 minutes |
? > | mariokartwii | 159 | 247 | Unknown Record containing PID (profile id) and a few keywords. |
> ? | \bm\1\ | ? | 242 | Friend-Record with crypted message. |
STATUS > | \status\ | ? | 242 | ? |
> ? | \lt\ | 35 | 242 | Sent each 4 minutes. ? |
This protocol is also used by the other Wii games and DS/DSi Games, only the gamename in some records changes.
While logging in, there is an SSL communication with naswii.nintendowifi.net.
There is base64 encoded information:
LOGIN (Wii to Nintendo):
action=login gsbrcd=RMCJ2leohni Any nickname? userid=1786673827498 Any ID, but not the friend code or profile / user id ingamesn= n o n a m e Any nickname / Mii name? sdkver=001000 Always binary "8" for MKWii gamecd=RMCE ID4 of Game makercd=01 last two digits of ID6 unitcd=1 ? macadr=0017ab2923be The MAC-Adress of the Wii lang=01 Maybe a language code ? devtime=140228160425 Unix timestamp of wii time csnum=LU519608598 Wii S/N cfc=7615213554627182 Any code, maybe wii friend code region=01 Any region identifier
ACCTCREATE (Wii to Nintendo)
action=acctcreate sdkver=001000 Always binary "8" for MKWii gamecd=RMCP ID4 of Game makercd=01 last two digits of ID6 unitcd=1 ? macadr=0017ab2923be The Wiis MAC-Adress lang=02 Maybe a language code ? devtime=140304203139 Unix timestamp of wii time csnum=LE632014481 Wii S/N cfc=7615213554627182 Any code, maybe wii friend code region=02 Any region identifier
Nintendo to Wii:
challenge=687TF0EG Any challenge locator=gamespy.com ? retry=0 count of retries returncd=00 ? token=... Same token as during LOGIN datetime=20140228210452 Server date/time in format YYYYMMDDhhmmss
The values "macadr" and "cfc" are the same in both dumps, but maybe this is a fault of dolphin.