Line 31: |
Line 31: |
| |- | | |- |
| | 0x00040000 | | | 0x00040000 |
− | | ? | + | | [[NEWSS:ResetNotifications|ResetNotifications]] |
| |- | | |- |
| | 0x00050000 | | | 0x00050000 |
Line 64: |
Line 64: |
| |- | | |- |
| | 0x000F0000 | | | 0x000F0000 |
− | | SpotPass notifications related? | + | | [[NEWSS:SyncArrivedNotifications|SyncArrivedNotifications]] |
| |- | | |- |
| | 0x00100040 | | | 0x00100040 |
− | | (u8 flag) ? | + | | [[NEWSS:SyncOneArrivedNotification|SyncOneArrivedNotification]] |
| |- | | |- |
− | | 0x00110000 | + | | 0x00110040 |
− | | This writes the input u8 to a state field. | + | | [[NEWSS:SetAutomaticSyncFlag|SetAutomaticSyncFlag]] |
| |- | | |- |
| | 0x00120082 | | | 0x00120082 |
− | | [[NEWSS:GetNotificationHeaderOther|GetNotificationHeaderOther]] | + | | [[NEWSS:SetNotificationHeaderOther|SetNotificationHeaderOther]] |
| |- | | |- |
| | 0x00130000 | | | 0x00130000 |
Line 79: |
Line 79: |
| |- | | |- |
| | 0x00140000 | | | 0x00140000 |
− | | This writes an unknown u32 value to cmdreply[2]. | + | | [[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: bit0 is set by news-module when handling the AddNotification commands. | + | | 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). |
| + | |} |
| + | |
| + | =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. |
| |} | | |} |