Changes

Jump to navigation Jump to search
452 bytes added ,  22:03, 6 January 2015
Line 617: Line 617:  
|}
 
|}
   −
When the theme cache is enabled via the above fields, Home Menu loads the cache at startup. At startup for cache loading, Home Menu does not check if any theme DLC is installed, or if even the content-index is for an installed theme.
+
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. At startup when loading theme-cache, this value has to be non-zero otherwise the cache won't be loaded, during startup with theme-cache this value isn't used for anything else.
+
| 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: 0 = none, 1 = built-in theme from Home Menu RomFS, 2 = theme data loaded from SD cache / content archive
+
| 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]] ==

Navigation menu