Difference between revisions of "Mii data"
(→Block format: linking to CRC-16 CCITT reference) |
|||
Line 2: | Line 2: | ||
The Mii Channel and some games such as Wii Sports store Mii data in the Wiimote internal memory. | The Mii Channel and some games such as Wii Sports store Mii data in the Wiimote internal memory. | ||
− | Data from Miis in the Mii Parade is stored in the Wiimote, even though those Miis are not shown in the Wiimote | + | Data from Miis in the Mii Parade is stored in the Wiimote, even though those Miis are not shown in the Wiimote Mii view. If all the slots are filled up and there is no space for more Miis, presumably this doesn't happen. |
=== Overall format === | === Overall format === |
Revision as of 23:26, 8 December 2006
Mii Data
The Mii Channel and some games such as Wii Sports store Mii data in the Wiimote internal memory.
Data from Miis in the Mii Parade is stored in the Wiimote, even though those Miis are not shown in the Wiimote Mii view. If all the slots are filled up and there is no space for more Miis, presumably this doesn't happen.
Overall format
The Mii Data is stored on the Wiimote in two blocks. Presumably, the Wii only updates one of these each time, alternating between, and reads the most current one, or maybe the Wii just updates both, and if the process is interrupted (rendering one of them corrupted), it reads whichever one is valid.
The blocks are 752 bytes in length (0x2f0 bytes), and are stored consecutively starting at address 0x0fca in the Wiimote memory.
Example dumps
[1] - Mii data. First Mii is a generic default Mii with the name "test1". The following three Miis are not visible in the Mii Channel and are from the Mii Parade.
Block format
Each block begins with a four-byte magic number / ID code 'RNCD'. Six unknown bytes (mostly zeroes) follow. Then follow the individual Mii data blocks. The last two bytes of the block are a CRC-16 CCITT of the previous 750 bytes (polynomial 0x1021, starting value 0x0000). C code to update CRC
Mii format
Strings are apparently stored in Unicode format (UTF-16), big-endian. Each Mii is 0x4a bytes:
- 2 unknown bytes (sometimes zeroes)
- 10 wide chars Mii Name (zero padded, non-terminated) (20 bytes)
- 32 bytes Mii settings and info (not yet figured out)
- 10 wide chars Mii creator (20 bytes)