Extended Banner: Difference between revisions
No edit summary |
Fixed the rest of the offset values |
||
(11 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
== Overview == | == Overview == | ||
The Extended Banner format is | The Extended Banner format is very simple. The Extended Banner is used to add text (and optionally an extra texture) to a given banner. It can also (optionally) be used to set an expiration date for a banner. | ||
See [[Extdata|here]] for how the extended-banners are loaded from extdata. The Home Menu extended-banner loading function will immediately return without loading anything if the programID is for System Settings. | |||
=== SpotPass === | |||
When Home Menu loads extended-banners, it also attempts to load a "[[CBMD]]" banner via [[BOSS_Services|SpotPass]] service commands. Normally this CBMD banner doesn't exist in extended-banner extdata. This is [[BOSS_Services|broken]] with New3DS titles since Home Menu uses these BOSS commands with the New3DS bitmask in the programID set. The common and language-specific(when offset is non-zero) "CGFX" specified by the CBMD are decompressed and processed. | |||
The "CGFX" sections in this CBMD are actually the exact same exbanners loaded from normal extdata. The exbanner data from SpotPass is stored to the same state as the extdata-exbanners. No CWAV is loaded from SpotPass data. | |||
The exbanners from SpotPass must have a timestamp less than current_datetime, otherwise they won't be parsed. The timestamp for the banner is calculated with: <code>nintimestamp_mktime(out, exbanner->year, exbanner->month, exbanner->day, <hour=23>, <minute = 59>, <second = 59>, <millisecond = 999>);</code> | |||
== Format == | == Format == | ||
Line 15: | Line 24: | ||
| 0x000 | | 0x000 | ||
| 0x002 | | 0x002 | ||
| Texture | | Texture width (if texture is used) | ||
|- | |- | ||
| 0x002 | | 0x002 | ||
| 0x002 | | 0x002 | ||
| Texture | | Texture height (if texture is used) | ||
|- | |- | ||
| 0x004 | | 0x004 | ||
| 0x002 | | 0x002 | ||
| Texture | | Texture colour format (if texture is used) | ||
|- | |- | ||
| | | 0x006 | ||
| 0x004 | | 0x004 | ||
| Year to expire | | Year to expire | ||
|- | |- | ||
| | | 0x00A | ||
| 0x002 | | 0x002 | ||
| Month to expire | | Month to expire | ||
|- | |- | ||
| | | 0x00C | ||
| 0x002 | | 0x002 | ||
| Day to expire | | Day to expire | ||
|- | |- | ||
| | | 0x00E | ||
| | | 0x016 | ||
| Name of texture (if texture is used) | | Name of texture (if texture is used) | ||
|- | |- | ||
| 0x024 | | 0x024 | ||
| 0x200 | | 0x200 | ||
| | | Plain text comment (255 character max) to be displayed in the banner on the HOME Menu | ||
|- | |- | ||
| | | 0x224 | ||
| | | | ||
| If used, this is where the extra texture is located, otherwise file ends. | | If used, this is where the extra texture is located, otherwise file ends. | ||
Line 51: | Line 60: | ||
|} | |} | ||
The date used for never-expiring exbanners varies, on retail like with Mii Maker this is December 31, 2099, where year is 0x833, month is 0xC, and day is 0x1F. The expiration-timestamp is only used for SpotPass exbanners, not extdata-exbanners. | |||
== Texture Colour Formats == | == Texture Colour Formats == | ||
Line 103: | Line 112: | ||
|- | |- | ||
|} | |} | ||
== Titles using extended banners == | |||
System: | |||
* [[Mii Maker]] | |||
* [[Face Raiders]] |