Home Menu/Themes: Difference between revisions
| Line 49: | Line 49: | ||
| 0x0  | | 0x0  | ||
| 0x4  | | 0x4  | ||
| Version (Must be 1  | | Version (Must be 1)  | ||
|-  | |-  | ||
| 0x4  | | 0x4  | ||
|   | | 0x1  | ||
|   | | Unknown  | ||
|-  | |||
| 0x5  | |||
| 0x1  | |||
| 0 = unknown, non-zero = unknown.  | |||
|-  | |-  | ||
| 0x8  | | 0x8  | ||
| Line 61: | Line 65: | ||
| 0xC  | | 0xC  | ||
| 0x4  | | 0x4  | ||
| Must be   | | Must be <4.  | ||
|-  | |-  | ||
| 0x10  | | 0x10  | ||
| Line 81: | Line 85: | ||
| 0x20  | | 0x20  | ||
| 0x4  | | 0x4  | ||
| Bottom Screen Frame Count  | | Bottom Screen Frame Count, must be <4.  | ||
|-  | |-  | ||
| 0x24  | | 0x24  | ||
| Line 90: | Line 94: | ||
| 0x4  | | 0x4  | ||
| Bottom Screen Solid Color/Texture offset (Rgb565 at 320x240)  | | Bottom Screen Solid Color/Texture offset (Rgb565 at 320x240)  | ||
|-  | |||
| 0x2C  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0x34  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0x3C  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0x48  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0x50  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0x4C  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0x64  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0x6C  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0x78  | |||
| 0x4  | |||
| Must be <3.  | |||
|-  | |||
| 0x80  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0x88  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0x90  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0x98  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0xA0  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0xA8  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0xB0  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |||
| 0xB8  | |||
| 0x4  | |||
| Must be <2.  | |||
|-  | |-  | ||
| 0xBC  | | 0xBC  | ||
| Line 100: | Line 172: | ||
|}  | |}  | ||
The filesize is aligned to 0x10-bytes. The size of the above header is 0xD0-bytes.  | The filesize is aligned to 0x10-bytes. The filesize must be at least 0xC4-bytes. The size of the above header is 0xD0-bytes(0xC4-bytes aligned to 0x10-bytes?).  | ||
==Audio data section==  | ==Audio data section==  | ||
Revision as of 22:45, 13 November 2014
This page describes the formats/structure of the data stored in RomFS for Home Menu DLC, for themes.
Control Content
The control content has content-index 0. It's unknown what if any of this is Home Menu specific.
RomFS structure:
- "MetaDataContentHeader.bin": Unknown, size is 0x44-bytes.
 - "ContentInfoArchive_<region>_<lang>.bin" Contains the list of all DLC content available under this DLC title(which can include DLC that's not yet accessible via the shop). <region> can be "USA", etc. <lang>, for the US title: "en", "es", "fr", and "pt".
 - "icons/<decimal_id>.icn" Contains the raw DLC icon image data, without any header.
 
ContentInfoArchive entry format, size 0xC8(this file contains the following entry for each of the DLC content):
| Relative offset | Size | Description | 
|---|---|---|
| 0x0 | 0x4 | Content index - 1 | 
| 0x4 | 0x4 | 0x0 = disabled, 0x1 = enabled. | 
| 0x8 | 0x40 | char string for the title text. | 
| 0x48 | 0x88 | char string for the description text. | 
The first entry is a "header": contentindex val=1, second word = <total DLC content excluding DLC control content>. The two strings are set to dummy text.
Theme Content
RomFS structure:
- "bgm.bcstm": Background music, see here.
 - "body_LZ.bin": LZ11 compressed blob containing the rest of the theme data(graphics + optional CWAVs).
 
Decompressed body_LZ.bin structure
| Offset | Size | Description | 
|---|---|---|
| 0x0 | 0x4 | Version (Must be 1) | 
| 0x4 | 0x1 | Unknown | 
| 0x5 | 0x1 | 0 = unknown, non-zero = unknown. | 
| 0x8 | 0x4 | ? | 
| 0xC | 0x4 | Must be <4. | 
| 0x10 | 0x4 | Top Screen Frame Count (If 0 then solid color at 0x14, else texture at 0x18) | 
| 0x14 | 0x4 | Top Screen Solid Color (RGB8) | 
| 0x18 | 0x4 | Top Screen Texture offset (Rgb565 at (320*(Top Screen Frame Count))*240) | 
| 0x1C | 0x4 | ? | 
| 0x20 | 0x4 | Bottom Screen Frame Count, must be <4. | 
| 0x24 | 0x4 | Bottom Screen Type (0=SolidColor, 2=Rgb565) | 
| 0x28 | 0x4 | Bottom Screen Solid Color/Texture offset (Rgb565 at 320x240) | 
| 0x2C | 0x4 | Must be <2. | 
| 0x34 | 0x4 | Must be <2. | 
| 0x3C | 0x4 | Must be <2. | 
| 0x48 | 0x4 | Must be <2. | 
| 0x50 | 0x4 | Must be <2. | 
| 0x4C | 0x4 | Must be <2. | 
| 0x64 | 0x4 | Must be <2. | 
| 0x6C | 0x4 | Must be <2. | 
| 0x78 | 0x4 | Must be <3. | 
| 0x80 | 0x4 | Must be <2. | 
| 0x88 | 0x4 | Must be <2. | 
| 0x90 | 0x4 | Must be <2. | 
| 0x98 | 0x4 | Must be <2. | 
| 0xA0 | 0x4 | Must be <2. | 
| 0xA8 | 0x4 | Must be <2. | 
| 0xB0 | 0x4 | Must be <2. | 
| 0xB8 | 0x4 | Must be <2. | 
| 0xBC | 0x4 | Audio data section size. | 
| 0xC0 | 0x4 | Offset for the audio data section. | 
The filesize is aligned to 0x10-bytes. The filesize must be at least 0xC4-bytes. The size of the above header is 0xD0-bytes(0xC4-bytes aligned to 0x10-bytes?).
Audio data section
| Offset | Size | Description | 
|---|---|---|
| 0x0 | 0x4 | Unknown | 
| 0x4 | 0x4 | Unknown | 
| 0x8 | Beginning of the audio data entries. | 
The audio data section contains the sound effects for this theme.
Audio data entry structure:
| Offset | Size | Description | 
|---|---|---|
| 0x0 | 0x4 | CWAV size. | 
| 0x4 | 0x4 | Unknown | 
| 0x8 | CWAV | 
In certain cases there may be more data starting at offset 0x8 than what's listed above, before the CWAV.
Built-in themes
The built-in themes are stored at Home Menu RomFS:/theme/<Color>_LZ.bin, the format appears to be the same as body_LZ.bin in the theme DLC content.