Changes

Jump to navigation Jump to search
2,734 bytes added ,  21:47, 19 October 2015
no edit summary
Line 10: Line 10:  
|-
 
|-
 
| 0x000100C8
 
| 0x000100C8
|  
+
| [[NEWSU:AddNotification|AddNotification]]
 
|}
 
|}
   Line 23: Line 23:  
| 0x000100C6
 
| 0x000100C6
 
| [[NEWSS:AddNotification|AddNotification]]
 
| [[NEWSS:AddNotification|AddNotification]]
 +
|-
 +
| 0x0002....
 +
| Stubbed, only returns 0.
 +
|-
 +
| 0x0003....
 +
| Stubbed, only returns 0.
 +
|-
 +
| 0x00040000
 +
| ?
 
|-
 
|-
 
| 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]]
 
|-
 
|-
 
| 0x000B0082
 
| 0x000B0082
Line 38: Line 59:  
| 0x000D0082
 
| 0x000D0082
 
| [[NEWSS:GetNotificationImage|GetNotificationImage]]
 
| [[NEWSS:GetNotificationImage|GetNotificationImage]]
 +
|-
 +
| 0x000E0040
 +
| [[NEWSS:SetInfoLEDPattern|SetInfoLEDPattern]]
 +
|-
 +
| 0x000F0000
 +
| SpotPass notifications related?
 +
|-
 +
| 0x00100040
 +
| (u8 flag) ?
 +
|-
 +
| 0x00110000
 +
| This writes the input u8 to a state field.
 +
|-
 +
| 0x00120082
 +
| [[NEWSS:GetNotificationHeaderOther|GetNotificationHeaderOther]]
 +
|-
 +
| 0x00130000
 +
| [[NEWSS:WriteNewsDBSavedata|WriteNewsDBSavedata]]
 +
|-
 +
| 0x00140000
 +
| This writes an unknown u32 value to cmdreply[2].
 
|}
 
|}
   −
=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 54: Line 96:  
| 0x0
 
| 0x0
 
| 0x10
 
| 0x10
| Header, normally first byte is value 0x1 and the rest all-zero.
+
| Header, see below.
 
|-
 
|-
 
| 0x10
 
| 0x10
Line 60: 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.
 +
|-
 +
| 0x1
 +
| 0x1
 +
| Flags: bit0 is set by news-module when handling the AddNotification commands. This indicates that there's "unread" notifications, the notifications applet clears this once all notifications have been "read".
 +
|-
 +
| 0x2
 +
| 0xE
 +
| Normally zero?
 +
|}
 +
 +
=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 68: Line 141:  
|-
 
|-
 
| 0xC8A12805
 
| 0xC8A12805
| The notification header data for the specified notificationID is not set.
+
| The 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.
 
|}
 
|}

Navigation menu