Mario Kart 8 implement tournaments using the Matchmake Extension Protocol (MK8).
The SimpleSearchObject
describes a tournament, the attributes and metadata describe the settings.
- NOTE: The following description matches the data observed in Mario Kart 8 for the WiiU.
Attributes
A simple search object contains a list of 20 uint32 attributes, index 0 to 13 included are used, the others are reserved/unused.
Attribute 0 - Public target
Value | Description |
---|
1 | Public |
2 | Private |
Attribute 1 - Country ID / Region
Attribute 2 - Race mode
Value | Description |
---|
0 | 200cc |
1 | 50cc |
2 | 100cc |
3 | 150cc |
4 | Mirror |
5 | Battle |
Attribute 3 - Items
Value | Description |
---|
1 | All items |
2 | Shells only |
3 | Bananas only |
4 | Mushrooms only |
5 | Bob-ombs |
6 | No items |
7 | No items or coins |
8 | Frantic mode |
Attribute 4 - Teams
Value | Description |
---|
1 | No teams |
2 | Team game |
Attribute 5 - Vehicles
Value | Description |
---|
1 | All vehicles |
2 | Karts only |
3 | Bikes only |
Attribute 6 - Control methods
Value | Description |
---|
1 | All methods |
2 | Motion controls |
Attribute 7 - Region
Value | Description |
---|
1 | Global |
2 | Regional |
Attribute 8 - Player rating
Value | Description |
---|
1 | 0 - 99999 |
2 | 0 - 1500 |
3 | 0 - 2500 |
4 | 0 - 5000 |
5 | 1500 - 2500 |
6 | 1500 - 5000 |
7 | 1500 - 99999 |
8 | 5000 - 99999 |
9 | 9000 - 99999 |
Attribute 9 - Available courses
Value | Description |
---|
0 | Base |
1 | Base + DLC 1 |
2 | Base + DLC 2 |
3 | Base + DLC 1+2 |
4 | Only DLC 1+2 |
Attribute 10 - Group switching
Value | Description |
---|
1 | Don’t switch |
2 | Every 4th match |
Attribute 11 - CPUs
Value | Description |
---|
1 | No CPU |
2 | Easy CPU |
3 | Normal CPU |
4 | Hard CPU |
Attribute 12 - Official
Value | Description |
---|
1 | Not official |
2 | Official |
Attribute 13 - Recommended
Value | Description |
---|
1 | Not recommended |
2 | Recommended |
It’s encoded ChunkData
It consists of the following 2 byte header:
Type | Description |
---|
Uint16 | Magic (0x5a5a, ‘ZZ’) |
Then following the header, there’s these structures:
Type | Description |
---|
Uint8 | ID |
Uint16 | Length |
T | Content (of the above length, can be anything) |
Here’s what each ID correspond to for MK8 tournaments:
Repeat type
Value | Description |
---|
1 | Week |
2 | Day |
3 | Fixed time |
Battle duration
Value | Description |
---|
0 | 1 min |
1 | 2 min |
2 | 3 min |
3 | 4 min |
3 | 5 min |
Competition update datetime
It’s calculated like this:
1
2
3
4
5
| this->minute = 10 * (value % 10);
this->hour = value / 10 % 100;
this->day = value / 1000 % 100;
this->month = value / 100000 % 100;
this->year = value / 10000000 + 2000;
|