NEWSS:SyncArrivedNotifications

Revision as of 17:27, 14 January 2024 by DaniElectra (talk | contribs) (Created page with "=Request= {| class="wikitable" border="1" |- ! Index Word ! Description |- | 0 | Header code [0x000F0000] |} =Response= {| class="wikitable" border="1" |- ! Index Word !...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Request

Index Word Description
0 Header code [0x000F0000]

Response

Index Word Description
0 Header code
1 Resultcode

Description

This manually syncs all pending notifications that are present on the sysmodule "boss savedata". The news sysmodule queries the list of notifications with BOSS command 0x00100102 (GetNsDataIdList), then gets some NS data information for each data ID with command 0x002700C2 (GetNsDataHeaderInfo) type=5 and command 0x002D0040 (GetNsDataLastUpdate), and finally reads the notification data.

The sysmodule then extracts all the notification data from the BOSS notification and saves it to the savedata.

BOSS notification

The BOSS notification data is a modified version of a regular notification. It combines a custom header, a fully allocated message (size: 0x1780 bytes) and an optional image, all appended in a single file.

Header structure

Offset Size Description
0x0 0x1 u8 flag: 0 = invalid, 1 = valid ("notification exists" flag).
0x1 0x1 u8 flag: 0 = read, 1 = unread
0x2 0x1 u8 flag: 0 = image data is not JPEG, 1 = image data is JPEG.
0x3 0x1 u8 flag: 0 = non-SpotPass notification, 1 = SpotPass notification.
0x4 0x1 u8 flag: 0 = opted in to this notification, 1 = opted out of this notification
0x5 0x1 u8 flag: 0 = message doesn't have a browser link, 1 = message has a browser link
0x6 0x1 u8 flag: unknown
0x7 0x1 padding?
0x8 0x8 u64 programID: notification source (zero for system notifications)
0x10 0x8 u64 jumpParam: specified by source app and later retrieved via APT to identify which notification, if any, it was launched from
0x18 0x8 padding?
0x20 0x40 UTF-16 string for the notification title