News Services: Difference between revisions
No edit summary |
m Add missing category |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 31: | Line 31: | ||
|- | |- | ||
| 0x00040000 | | 0x00040000 | ||
| | | [[NEWSS:ResetNotifications|ResetNotifications]] | ||
|- | |- | ||
| 0x00050000 | | 0x00050000 | ||
Line 64: | Line 64: | ||
|- | |- | ||
| 0x000F0000 | | 0x000F0000 | ||
| | | [[NEWSS:SyncArrivedNotifications|SyncArrivedNotifications]] | ||
|- | |- | ||
| 0x00100040 | | 0x00100040 | ||
| | | [[NEWSS:SyncOneArrivedNotification|SyncOneArrivedNotification]] | ||
|- | |- | ||
| | | 0x00110040 | ||
| | | [[NEWSS:SetAutomaticSyncFlag|SetAutomaticSyncFlag]] | ||
|- | |- | ||
| 0x00120082 | | 0x00120082 | ||
| [[NEWSS: | | [[NEWSS:SetNotificationHeaderOther|SetNotificationHeaderOther]] | ||
|- | |- | ||
| 0x00130000 | | 0x00130000 | ||
Line 79: | Line 79: | ||
|- | |- | ||
| 0x00140000 | | 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. The filesize should be <= <size listed [[NEWSS:GetNotificationMessage|here]]>, since that's the max size read by the notifications applet. | * "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. | ||
Line 112: | Line 112: | ||
| 0x0 | | 0x0 | ||
| 0x1 | | 0x1 | ||
| Must be 0x1. | | Must be 0x1 "is valid". | ||
|- | |- | ||
| 0x1 | | 0x1 | ||
| 0x1 | | 0x1 | ||
| Flags | | Flags | ||
|- | |- | ||
| 0x2 | | 0x2 | ||
Line 122: | Line 122: | ||
| Normally zero? | | 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 130: | Line 155: | ||
|- | |- | ||
| 0xC8A12805 | | 0xC8A12805 | ||
| The notification header data for the specified notificationID is not set(the specified notification doesn't exist). | | The news.db or notification header data for the specified notificationID is not set(the specified notification doesn't exist). | ||
|} | |} | ||
Line 142: | Line 167: | ||
| v7168 | | v7168 | ||
| [[9.7.0-25|9.7.0-X]] | | [[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]] |