News Services

From 3dbrew
Jump to navigation Jump to search

This system module handles the system notifications.

The maximum number of notifications that can be stored/handled is 100, hence the intended range for notificationIDs is 0-99.

News service "news:u"

Command Header Description
0x000100C8 AddNotification

This service only has one command.

News service "news:s"

Command Header Description
0x000100C6 AddNotification
0x0002.... Stubbed, only returns 0.
0x0003.... Stubbed, only returns 0.
0x00040000 ?
0x00050000 GetTotalNotifications
0x00060042 SetNewsDBHeader
0x00070082 SetNotificationHeader
0x00080082 SetNotificationMessage
0x00090082 SetNotificationImage
0x000A0042 GetNewsDBHeader
0x000B0082 GetNotificationHeader
0x000C0082 GetNotificationMessage
0x000D0082 GetNotificationImage
0x000E0040 SetInfoLEDPattern
0x000F0000 SpotPass notifications related?
0x00100040 (u8 flag) ?
0x00110000 This writes the input u8 to a state field.
0x00120082 GetNotificationHeaderOther
0x00130000 WriteNewsDBSavedata
0x00140000 This writes an unknown u32 value to cmdreply[2].

News module savedata

  • "news.db": This is the main save-file, the filesize is fixed to 0x2BD0-bytes.
  • "newsXXX.txt" This is the message data for this notification, where XXX is the decimal notification-index in the below headers-array. The filesize should be <= <size listed here>, since that's the max size read by the notifications applet.
  • "newsXXX.mpo" This is the MPO data for this notification if any, where XXX is the decimal notification-index in the below headers-array. The filesize should be <= <size listed here>, since that's the max size read by the notifications applet.

news.db

Offset Size Description
0x0 0x10 Header, see below.
0x10 0x2BC0 (100 * 0x70) Array of headers for each notification.

Header

Offset Size Description
0x0 0x1 Must be 0x1.
0x1 0x1 Flags: bit0 is set by news-module when handling the AddNotification commands.
0x2 0xE Normally zero?

Errors

Error code Description
0xC8A12805 The notification header data for the specified notificationID is not set(the specified notification doesn't exist).