Difference between revisions of "NEWSS:SyncArrivedNotifications"

From 3dbrew
Jump to navigation Jump to search
(Created page with "=Request= {| class="wikitable" border="1" |- ! Index Word ! Description |- | 0 | Header code [0x000F0000] |} =Response= {| class="wikitable" border="1" |- ! Index Word !...")
 
m (→‎Header structure: Define values always set)
 
Line 40: Line 40:
 
| 0x0
 
| 0x0
 
| 0x1
 
| 0x1
| u8 flag: 0 = invalid, 1 = valid ("notification exists" flag).
+
| u8 flag: 0 = invalid, 1 = valid ("notification exists" flag). Always 0x1
 
|-
 
|-
 
| 0x1
 
| 0x1
 
| 0x1
 
| 0x1
| u8 flag: 0 = read, 1 = unread
+
| u8 flag: 0 = read, 1 = unread. Always 0x1
 
|-
 
|-
 
| 0x2
 
| 0x2
Line 52: Line 52:
 
| 0x3
 
| 0x3
 
| 0x1
 
| 0x1
| u8 flag: 0 = non-SpotPass notification, 1 = SpotPass notification.
+
| u8 flag: 0 = non-SpotPass notification, 1 = SpotPass notification (zero for system notifications)
 
|-
 
|-
 
| 0x4
 
| 0x4
 
| 0x1
 
| 0x1
| u8 flag: 0 = opted in to this notification, 1 = opted out of this notification
+
| u8 flag: 0 = opted in to this notification, 1 = opted out of this notification. Always 0x0
 
|-
 
|-
 
| 0x5
 
| 0x5

Latest revision as of 19:00, 14 January 2024

Request[edit]

Index Word Description
0 Header code [0x000F0000]

Response[edit]

Index Word Description
0 Header code
1 Resultcode

Description[edit]

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[edit]

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[edit]

Offset Size Description
0x0 0x1 u8 flag: 0 = invalid, 1 = valid ("notification exists" flag). Always 0x1
0x1 0x1 u8 flag: 0 = read, 1 = unread. Always 0x1
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 (zero for system notifications)
0x4 0x1 u8 flag: 0 = opted in to this notification, 1 = opted out of this notification. Always 0x0
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