News Services: Difference between revisions
m Add missing category |
|||
(17 intermediate revisions by 2 users not shown) | |||
Line 10: | Line 10: | ||
|- | |- | ||
| 0x000100C8 | | 0x000100C8 | ||
| | | [[NEWSU:AddNotification|AddNotification]] | ||
|} | |} | ||
Line 25: | Line 25: | ||
|- | |- | ||
| 0x0002.... | | 0x0002.... | ||
| | | Stubbed, only returns 0. | ||
|- | |- | ||
| 0x0003.... | | 0x0003.... | ||
| | | Stubbed, only returns 0. | ||
|- | |- | ||
| | | 0x00040000 | ||
| | | [[NEWSS:ResetNotifications|ResetNotifications]] | ||
|- | |- | ||
| 0x00050000 | | 0x00050000 | ||
| [[NEWSS:GetTotalNotifications|GetTotalNotifications]] | | [[NEWSS:GetTotalNotifications|GetTotalNotifications]] | ||
|- | |- | ||
| | | 0x00060042 | ||
| | | [[NEWSS:SetNewsDBHeader|SetNewsDBHeader]] | ||
|- | |- | ||
| 0x00070082 | | 0x00070082 | ||
| [[NEWSS:SetNotificationHeader|SetNotificationHeader]] | | [[NEWSS:SetNotificationHeader|SetNotificationHeader]] | ||
|- | |- | ||
| | | 0x00080082 | ||
| | | [[NEWSS:SetNotificationMessage|SetNotificationMessage]] | ||
|- | |- | ||
| | | 0x00090082 | ||
| | | [[NEWSS:SetNotificationImage|SetNotificationImage]] | ||
|- | |- | ||
| | | 0x000A0042 | ||
| [[NEWSS:GetNewsDBHeader|GetNewsDBHeader]] | | [[NEWSS:GetNewsDBHeader|GetNewsDBHeader]] | ||
|- | |- | ||
Line 60: | Line 60: | ||
| [[NEWSS:GetNotificationImage|GetNotificationImage]] | | [[NEWSS:GetNotificationImage|GetNotificationImage]] | ||
|- | |- | ||
| | | 0x000E0040 | ||
| | | [[NEWSS:SetInfoLEDPattern|SetInfoLEDPattern]] | ||
|- | |- | ||
| | | 0x000F0000 | ||
| | | [[NEWSS:SyncArrivedNotifications|SyncArrivedNotifications]] | ||
|- | |- | ||
| | | 0x00100040 | ||
| | | [[NEWSS:SyncOneArrivedNotification|SyncOneArrivedNotification]] | ||
|- | |- | ||
| | | 0x00110040 | ||
| | | [[NEWSS:SetAutomaticSyncFlag|SetAutomaticSyncFlag]] | ||
|- | |- | ||
| | | 0x00120082 | ||
| | | [[NEWSS:SetNotificationHeaderOther|SetNotificationHeaderOther]] | ||
|- | |- | ||
| | | 0x00130000 | ||
| | | [[NEWSS:WriteNewsDBSavedata|WriteNewsDBSavedata]] | ||
|- | |- | ||
| | | 0x00140000 | ||
| | | [[NEWSS:GetTotalArrivedNotifications|GetTotalArrivedNotifications]] | ||
|} | |} | ||
=News module savedata= | =News module NAND [[System_SaveData|savedata]]= | ||
* "news.db": This is the main save-file, the filesize is fixed to 0x2BD0-bytes. | * "news.db": This is the main save-file, the filesize is fixed to 0x2BD0-bytes. | ||
* "newsXXX.txt" This is the [[NEWSS:AddNotification|message]] data for this notification, where XXX is the decimal notification-index in the below headers-array. | * "newsXXX.txt" This is the [[NEWSS:AddNotification|message]] data for this notification, where XXX is the decimal notification-index in the below headers-array. The filesize should be <= <size listed [[NEWSS:GetNotificationMessage|here]]>, since that's the max size read by the notifications applet. | ||
* "newsXXX.mpo" This is the [[NEWSS:AddNotification|MPO]] data for this notification if any, where XXX is the decimal notification-index in the below headers-array. | * "newsXXX.mpo" This is the [[NEWSS:AddNotification|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 [[NEWSS:GetNotificationImage|here]]>, since that's the max size read by the notifications applet. | ||
==news.db== | ==news.db== | ||
Line 96: | Line 96: | ||
| 0x0 | | 0x0 | ||
| 0x10 | | 0x10 | ||
| Header, | | Header, see below. | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
Line 102: | Line 102: | ||
| Array of [[NEWSS:AddNotification|headers]] for each notification. | | Array of [[NEWSS:AddNotification|headers]] for each notification. | ||
|} | |} | ||
===Header=== | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x1 | |||
| Must be 0x1 "is valid". | |||
|- | |||
| 0x1 | |||
| 0x1 | |||
| Flags | |||
|- | |||
| 0x2 | |||
| 0xE | |||
| Normally zero? | |||
|} | |||
===Flags=== | |||
{| class="wikitable" border="1" | |||
|- | |||
! Bit | |||
! Description | |||
|- | |||
| 0 | |||
| Set by news module when handling BOSS notifications and the AddNotification commands. This indicates that there's "unread" notifications, the notifications applet clears this once all notifications have been "read". | |||
|- | |||
| 1 | |||
| Set by news module when handling CECD notifications. | |||
|} | |||
=News module startup= | |||
The actual main function called by main() does the following: | |||
* srv_init() | |||
* Registers services <nowiki>"news:u" and "news:s"</nowiki>. | |||
* Initializes the service session handle for "ptm:sysm". | |||
* Loads 4 handles from somewhere, which gets used with svcReplyAndReceive later. | |||
* Does notificationID state init, uses [[SRV:GetNotificationSemaphore]], then subscribes to srv notifications 0x104 and 0x106. | |||
* <Some func calls> | |||
* Here [[PTMSYSM:SetInfoLEDPattern]] is used. | |||
* Some state init is done, then the usual svcReplyAndReceive loop begins. | |||
=Errors= | =Errors= | ||
Line 110: | Line 155: | ||
|- | |- | ||
| 0xC8A12805 | | 0xC8A12805 | ||
| The notification header data for the specified notificationID is not set. | | The news.db or notification header data for the specified notificationID is not set(the specified notification doesn't exist). | ||
|} | |||
=Title Versions= | |||
{| class="wikitable" border="1" | |||
|- | |||
! Title version | |||
! System version | |||
! Changes | |||
|- | |||
| v7168 | |||
| [[9.7.0-25|9.7.0-X]] | |||
| All of the changes are the following: | |||
* See [[9.7.0-25|here]] regarding the updated CTRSDK function code. | |||
* This function is eventually called by newss_cmdf, newss_cmd10, and <certain function>. When calling a certain function fails in here, this code now calls <another certain function> before returning. | |||
* Mutex enter/leave function calls were added to a certain function. | |||
* More state init was added to the start of an initialization function called during news module startup(crt0?). | |||
* 0x14 new bytes were added to .rodata. | |||
|} | |} | ||
[[Category:Services]] |