MKTV Replay (File Format)

From MK8
Revision as of 14:59, 18 June 2022 by Scutlet (talk | contribs) (initial findings)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Under Construction
This article is not finished. Help improve it by adding accurate information or correcting grammar and spelling.
Platform Notice
This article is about Mario Kart 8 for Wii U. It's likely that Mario Kart 8 Deluxe uses the same or a very similar file format, but this was not verified.

In Mario Kart 8, MKTV Replay Data is stored in DAT-files. Each of these files are stored in the user's save folder.

Filename

The filename format for MKTV Replays is unknown. They start with rp.

Header

MKTV Replay Header
Offset Size Description
0x00 4 "CTR0" in ASCII. Unknown abbreviation. 'R' likely stands for 'Replay'.
0x04 4 Unknown. Likely game version.
0x08 4 File Size (in bytes).
0x0c 44 Probably Padding (always 0)
0x38 4 Unknown
0x3c 4 CRC-32 Checksum over all bytes after this header until the end of the file.
0x40 8 Probably Padding (always 0)
0x48 End of header

Data

This section is a WIP. It is likely that MKTV replays use a similar format as ghost data, of which is still a lot unknown. It is probably easier to decode that first before attempting to dive further into MKTV replays.

However, the following data must also be stored in replays, but is likely not stored in ghost data:

  • Number of points scored this race/battle, or player VR/BR
  • Team indicator (blue vs red vs solo)
  • Battle indicator (VS/GP mode vs battle mode)

Player Data

The mii and name of each player are stored in consecutive 0x100 byte sized blocks. Each block of player data has an identical format to that of the Mii Info block for ghost data.

Player Data
Offset Size Description
0x268 8 Unknown.
0x270 92 Mii Data. See full description on 3dsbrew. Note that the embedded Mii name is in UTF-16 (little Endian). For CPU Players, a no name Mii is used.
0x2cc 2 Probably Padding.
0x2ce 2 CRC-16 XMODEM Checksum of the Mii Data and additional padding.
0x2d0 1 Player Country ID.
0x2d1 1 Player Sub-region ID.
0x2d2 2 Probably Padding (always 0).
0x2d4 1 Player Country ID repeat (purpose unknown).
0x2d5 1 Player Sub-region ID repeat (purpose unknown).
0x2d6 80 Unknown.
0x330 20 Mii Name in UTF-16 big Endian. In local play this is the name of the character a player or CPU is playing as. In online play, this is the name of the Mii a player is using.
0x344 36 Unknown (mostly 0).
0x368 End of player data

The format above repeats for the remaining 11 players.