/title/00000001/00000002/data/iplsave.bin

From WiiBrew
Jump to navigation Jump to search

This file holds the save data of the System Menu.

Here is a C structure for System Menu 4.3

struct IPLSaveChanEntry {
    u8 primaryType;     // 0x00 (3 for normal channels, 1 for Disc Channel)
    u8 secondaryType;   // 0x04 (0 for normal channels, 1 for Disc Channel and System Channels)
    u32 flags;          // 0x08 (All titles except Disc Channel use 0x0000000E, and Disc Channel uses 0x0000000F)
    u64 titleId;        // 0x0C
};

struct IPLSave {
    char magic[4];                      // 0x00 (Always "RIPL")
    u32 fileSize;                       // 0x04 (As of version 3, is always 0x000004C0)
    u32 version;                        // 0x08 (For 4.3, is version 3)
    u32 currentWiiMenuPage;             // 0x0C (Resets to 0 on startup)
    IPLSaveChanEntry channelList[0x30]; // 0x10 (Listed in order of position in the Wii Menu, each entry is a length of 0x14)
    u8 keyboardSettings[8];             // 0x310
    u8 unusedTvrc[4];                   // 0x318 (Unused; set to zero by ipl::savedata::Manager::setDefaultTVRC)
    int didntGotoSdCardMenu;            // 0x31C (1 for show SD Card Menu welcome dialog, 0 for don't show dialog)
    u64 cachedTitles[0x30];             // 0x320 (Nintendo Channel and Internet Channel are blacklisted)
    int currentSDMenuPage;              // 0x4A0
    u8 padding[0xC];                    // 0x4A4 (All zeros)
    u8 MD5Sum[0x10];                    // 0x4B0 (MD5 sum of the file)
};