Home Menu: Difference between revisions
Line 617: | Line 617: | ||
|} | |} | ||
When the theme cache is enabled via the above fields, Home Menu loads the cache at startup | When the theme cache is enabled via the above fields, Home Menu loads the cache at startup(if the used theme structure is valid). | ||
Theme entry structure: | Theme entry structure: | ||
Line 628: | Line 628: | ||
| 0x0 | | 0x0 | ||
| 0x4 | | 0x4 | ||
| Theme index: for DLC this is the content-index, for built-in themes this is an index for an array selecting the built-in theme | | Theme index: for DLC this is the content-index, for built-in themes this is an index for an array selecting the built-in theme. | ||
|- | |- | ||
| 0x4 | | 0x4 | ||
| 0x1 | | 0x1 | ||
| Normally zero | | Normally zero. This is the low 8-bits in the DLC titleID that this theme was originally loaded from. | ||
|- | |- | ||
| 0x5 | | 0x5 | ||
| 0x1 | | 0x1 | ||
| Theme type | | Theme type, the valid range is 0..5. 0 = none, 1 = built-in theme from Home Menu RomFS, 2 = theme data loaded from SD cache / content archive. 3 = ?, 4 = ?, 5 = ? | ||
|- | |- | ||
| 0x6 | | 0x6 | ||
Line 646: | Line 646: | ||
| Normally zero? | | Normally zero? | ||
|} | |} | ||
When the theme-type is value1 the themeindex must be <9. When the theme-type is value2 the themeindex has to be non-zero, and the u8 at offset 0x4 must not be >=10. | |||
The theme-loader code (besides the AM <is-current-themeindex-DLC-installed> code) handles all theme-types >=2 the same way. However, it seems all DLC AM code involving checking the currently-used theme DLC only gets executed when the theme-type is value2. The code in the theme-loader for that also checks that a certain Home Menu state flag is non-zero, before running the AM DLC code(it's unknown where this flag value comes from). | |||
== Home Menu [[Home_Menu/Themes|Theme]] SD [[Extdata|ExtData]] == | == Home Menu [[Home_Menu/Themes|Theme]] SD [[Extdata|ExtData]] == |