Line 5:
Line 5:
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.
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.
−
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.
+
=== 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. 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.
== Format ==
== Format ==