Line 998: |
Line 998: |
| ! Extdata image ID | | ! Extdata image ID |
| ! FW Introduced | | ! FW Introduced |
− | ! Plaintext
| |
| |- | | |- |
| | BadgeData.dat | | | BadgeData.dat |
− | | ? | + | | [[Home_Menu#BadgeData.dat|See below.]] |
− | | ? | + | | 0xF4DF80 |
| | | | | |
| | [[9.0.0-20]] | | | [[9.0.0-20]] |
| |- | | |- |
| | BadgeMngFile.dat | | | BadgeMngFile.dat |
− | | See below. | + | | [[Home_Menu#BadgeMngFile.dat|See below.]] |
| | 0xD4A8 | | | 0xD4A8 |
| | | | | |
| | [[9.0.0-20]] | | | [[9.0.0-20]] |
| + | |} |
| + | |
| + | === BadgeData.dat === |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 100 * 16 * 0x8A |
| + | | UTF-16 Badge Set Titles (16 per set for different languages) |
| + | |- |
| + | | 0x35E80 |
| + | | 1000 * 16 * 0x8A |
| + | | UTF-16 Badge Titles (16 per set for different languages) |
| + | |- |
| + | | 0x250F80 |
| + | | 100 * 0x2000 |
| + | | RGB565 64x64 Badge Set Icons |
| + | |- |
| + | | 0x318F80 |
| + | | 1000 * 0x2800 |
| + | | RGB565 64x64 + A4 64x64 Badge Icons |
| + | |- |
| + | | 0xCDCF80 |
| + | | 1000 * 0xA00 |
| + | | RGB565 32x32 + A4 32x32 Badge Icons |
| |} | | |} |
| | | |
Line 1,022: |
Line 1,049: |
| | 0x0 | | | 0x0 |
| | 0x4 | | | 0x4 |
− | | u32, must be zero? | + | | u32, Must Be Zero |
| + | |- |
| + | | 0x4 |
| + | | 0x4 |
| + | | u32, Number of Badge Sets |
| + | |- |
| + | | 0x8 |
| + | | 0x4 |
| + | | u32, Number of Unique Badges |
| + | |- |
| + | | 0xC |
| + | | 0x4 |
| + | | u32, Number of Placed Badges |
| + | |- |
| + | | 0x10 |
| + | | 0x4 |
| + | | u32, Unknown |
| + | |- |
| + | | 0x14 |
| + | | 0x4 |
| + | | u32, Unknown |
| + | |- |
| + | | 0x18 |
| + | | 0x4 |
| + | | u32, Number of Total Badges |
| + | |- |
| + | | 0x1C |
| + | | 0x4 |
| + | | u32, Unknown |
| + | |- |
| + | | 0x20 |
| + | | 0x338 |
| + | | Unknown (always zeros? unused?) |
| + | |- |
| + | | 0x358 |
| + | | 0x80 |
| + | | Used Badge Slots (each bit = 1 slot) |
| + | |- |
| + | | 0x3D8 |
| + | | 0x10 |
| + | | Used Badge Set Slots (each bit = 1 slot) |
| + | |- |
| + | | 0x3E8 |
| + | | 1000 * 0x28 |
| + | | [[Home_Menu#BadgeInfo|BadgeInfo]] Entries |
| + | |- |
| + | | 0xA028 |
| + | | 100 * 0x30 |
| + | | [[Home_Menu#BadgeSetInfo|BadgeSetInfo]] Entries |
| + | |- |
| + | | 0xB2E8 |
| + | | 360 * 0x18 |
| + | | [[Home_Menu#BadgeLayoutSlot|BadgeLayoutSlot]] Entries |
| + | |} |
| + | |
| + | ==== BadgeIdentifier ==== |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x4 |
| + | | u32, Unknown |
| + | |- |
| + | | 0x4 |
| + | | 0x4 |
| + | | u32, Badge ID |
| + | |- |
| + | | 0x8 |
| + | | 0x4 |
| + | | u32, Badge Set ID |
| + | |- |
| + | | 0xC |
| + | | 0x2 |
| + | | u16, Badge Index |
| + | |- |
| + | | 0xE |
| + | | 0x2 |
| + | | u16, Badge Sub ID (used for multi-part badges) |
| + | |} |
| + | |
| + | ==== BadgeSetIdentifier ==== |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x4 |
| + | | u32, Unknown |
| + | |- |
| + | | 0x4 |
| + | | 0x4 |
| + | | u32, Unknown |
| |- | | |- |
| | 0x8 | | | 0x8 |
| | 0x4 | | | 0x4 |
− | | u32 total stored badges | + | | u32, Unknown |
| |- | | |- |
| | 0xC | | | 0xC |
| | 0x4 | | | 0x4 |
− | | u32 total number of badge icons used in Home Menu | + | | u32, Unknown |
| + | |- |
| + | | 0x10 |
| + | | 0x4 |
| + | | u32, Badge Set ID |
| + | |- |
| + | | 0x14 |
| + | | 0x2 |
| + | | u32, Badge Set Index |
| + | |} |
| + | |
| + | ==== BadgeInfo ==== |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x10 |
| + | | [[Home_Menu#BadgeIdentifier|BadgeIdentifier]] |
| + | |- |
| + | | 0x10 |
| + | | 0x2 |
| + | | u16, Number Placed |
| + | |- |
| + | | 0x12 |
| + | | 0x2 |
| + | | u16, Quantity |
| + | |- |
| + | | 0x14 |
| + | | 0x4 |
| + | | u32, Unknown |
| |- | | |- |
− | | 0x3F4 | + | | 0x18 |
− | | ? | + | | 0x10 |
− | | Start of s16 array, each entry here is an index for other arrays stored in memory. | + | | u64[2], Shortcut Title ID (twice, once per u64) |
| + | |} |
| + | |
| + | ==== BadgeSetInfo ==== |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x18 |
| + | | [[Home_Menu#BadgeSetIdentifier|BadgeSetIdentifier]] |
| + | |- |
| + | | 0x18 |
| + | | 0x4 |
| + | | u32, Unknown |
| + | |- |
| + | | 0x1C |
| + | | 0x4 |
| + | | u32, Number of Unique Badges |
| + | |- |
| + | | 0x20 |
| + | | 0x4 |
| + | | u32, Number of Total Badges |
| + | |- |
| + | | 0x24 |
| + | | 0x4 |
| + | | u32, Start Badge Index |
| + | |- |
| + | | 0x28 |
| + | | 0x4 |
| + | | u32, Unknown |
| + | |- |
| + | | 0x2C |
| + | | 0x4 |
| + | | u32, Unknown |
| + | |} |
| + | |
| + | ==== BadgeLayoutSlot ==== |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x10 |
| + | | [[Home_Menu#BadgeIdentifier|BadgeIdentifier]] |
| + | |- |
| + | | 0x10 |
| + | | 0x4 |
| + | | u32, Position |
| + | |- |
| + | | 0x14 |
| + | | 0x4 |
| + | | u32, Folder (0xF0FF = Icon of a folder, 0xFFFFFFFF = No folder) |
| |} | | |} |
| | | |
− | The filesize must match 0xD4A8, otherwise the Home Menu code returns an error. | + | The file size must match 0xD4A8, otherwise the Home Menu code returns an error. |
| | | |
| == Home Menu theme layout SD [[Extdata|ExtData]] == | | == Home Menu theme layout SD [[Extdata|ExtData]] == |