Extended Banner: Difference between revisions

Line 8: Line 8:
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.
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. The exbanners from SpotPass must have a timestamp less than current_datetime, otherwise they won't be parsed. No CWAV is loaded from SpotPass data.
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 ==