Changes

Jump to navigation Jump to search
no edit summary
Line 233: Line 233:  
| 150 || [6.0.0+] ReportApplicationExitTimeout ||  
 
| 150 || [6.0.0+] ReportApplicationExitTimeout ||  
 
|-
 
|-
| 160 || [8.0.0+] SetApplicationAttribute ||
+
| 160 || [8.0.0+] [[#SetApplicationAttribute]] ||
 
|-
 
|-
 
| 170 || [8.0.0+] HasSaveDataAccessPermission ||
 
| 170 || [8.0.0+] HasSaveDataAccessPermission ||
Line 244: Line 244:     
===== PushLaunchParameter =====
 
===== PushLaunchParameter =====
Takes an input u32 and an input [[#IStorage]], no output.
+
Takes an input u32 [[#LaunchParameterKind]] and an input [[#IStorage]], no output.
   −
==== GetApplicationControlProperty ====
+
===== GetApplicationControlProperty =====
 
No input, takes a type-0x6 output buffer.
 
No input, takes a type-0x6 output buffer.
    
This gets the application [[NACP_Format|control.nacp]].
 
This gets the application [[NACP_Format|control.nacp]].
 +
 +
===== SetApplicationAttribute =====
 +
Takes a type-0x15 input buffer containing an [[#ApplicationAttribute]], no output.
    
===== IAppletAccessor =====
 
===== IAppletAccessor =====
Line 556: Line 559:  
| 13 || [4.0.0+] [[#CreateApplicationAndRequestToStartForQuest]] ||  
 
| 13 || [4.0.0+] [[#CreateApplicationAndRequestToStartForQuest]] ||  
 
|-
 
|-
| 14 || [7.0.0+] CreateApplicationWithAttributeAndPushAndRequestToStartForQuest || Takes a total of 8-bytes and a type-0x15 input buffer, return an output [[#IStorage]].
+
| 14 || [7.0.0+] [[#CreateApplicationWithAttributeAndPushAndRequestToStartForQuest]] ||
 
|-
 
|-
| 15 || [7.0.0+] CreateApplicationWithAttributeAndRequestToStartForQuest || Takes a total of 8-bytes and a type-0x15 input buffer, no output.
+
| 15 || [7.0.0+] [[#CreateApplicationWithAttributeAndRequestToStartForQuest]] ||  
 
|-
 
|-
 
| 20 || EnsureSaveData ||
 
| 20 || EnsureSaveData ||
Line 566: Line 569:  
| 22 || [[#SetTerminateResult]] ||
 
| 22 || [[#SetTerminateResult]] ||
 
|-
 
|-
| 23 || GetDisplayVersion ||
+
| 23 || [[#GetDisplayVersion]] ||
 
|-
 
|-
 
| 24 || [2.0.0+] GetLaunchStorageInfoForDebug ||
 
| 24 || [2.0.0+] GetLaunchStorageInfoForDebug ||
Line 606: Line 609:  
| 90 || [4.0.0+] [[#EnableApplicationCrashReport]] ||  
 
| 90 || [4.0.0+] [[#EnableApplicationCrashReport]] ||  
 
|-
 
|-
| 100 || [5.0.0+] InitializeApplicationCopyrightFrameBuffer ||  
+
| 100 || [5.0.0+] [[#InitializeApplicationCopyrightFrameBuffer]] ||  
 
|-
 
|-
| 101 || [5.0.0+] SetApplicationCopyrightImage ||  
+
| 101 || [5.0.0+] [[#SetApplicationCopyrightImage]] ||  
 
|-
 
|-
 
| 102 || [5.0.0+] [[#SetApplicationCopyrightVisibility]] ||  
 
| 102 || [5.0.0+] [[#SetApplicationCopyrightVisibility]] ||  
Line 616: Line 619:  
| 111 || [6.0.0+] [[#QueryApplicationPlayStatisticsByUid]] ||  
 
| 111 || [6.0.0+] [[#QueryApplicationPlayStatisticsByUid]] ||  
 
|-
 
|-
| 120 || [5.0.0+] ExecuteProgram ||  
+
| 120 || [5.0.0+] [[#ExecuteProgram]] ||  
 
|-
 
|-
 
| 121 || [5.0.0+] [[#ClearUserChannel]] ||  
 
| 121 || [5.0.0+] [[#ClearUserChannel]] ||  
 
|-
 
|-
| 122 || [5.0.0+] UnpopToUserChannel ||  
+
| 122 || [5.0.0+] [[#UnpopToUserChannel]] ||  
 
|-
 
|-
| 123 || [5.0.0+] GetPreviousProgramIndex ||  
+
| 123 || [5.0.0+] [[#GetPreviousProgramIndex]] ||  
 
|-
 
|-
 
| 124 || [6.0.0+] EnableApplicationAllThreadDumpOnCrash ||  
 
| 124 || [6.0.0+] EnableApplicationAllThreadDumpOnCrash ||  
Line 651: Line 654:     
==== CreateApplicationAndPushAndRequestToStartForQuest ====
 
==== CreateApplicationAndPushAndRequestToStartForQuest ====
Takes 2 input u32s (loaded from struct ApplicationAttributeForQuest), an input u64 titleID, and an input [[#IStorage]], no output.
+
Takes 2 input u32s (loaded from struct [[#ApplicationAttributeForQuest]]), an input u64 titleID, and an input [[#IStorage]], no output.
    
==== CreateApplicationAndRequestToStart ====
 
==== CreateApplicationAndRequestToStart ====
Line 659: Line 662:     
==== CreateApplicationAndRequestToStartForQuest ====
 
==== CreateApplicationAndRequestToStartForQuest ====
Takes 2 input u32s (loaded from struct ApplicationAttributeForQuest) and an input u64 titleID, no output.
+
Takes 2 input u32s (loaded from struct [[#ApplicationAttributeForQuest]]) and an input u64 titleID, no output.
    
Same as [[#CreateApplicationAndPushAndRequestToStartForQuest]] except without the input storage, official sw uses this when no input storage is specified.
 
Same as [[#CreateApplicationAndPushAndRequestToStartForQuest]] except without the input storage, official sw uses this when no input storage is specified.
 +
 +
==== CreateApplicationWithAttributeAndPushAndRequestToStartForQuest ====
 +
Takes an input u64 titleID, a type-0x15 input buffer containing an [[#ApplicationAttribute]], an input [[#IStorage]], no output.
 +
 +
Same as [[#CreateApplicationAndPushAndRequestToStartForQuest]] except the entire attributes structure is directly specified via the input buffer. This command replaces [[#CreateApplicationAndPushAndRequestToStartForQuest]], official user-processes no longer use [[#CreateApplicationAndPushAndRequestToStartForQuest]].
 +
 +
==== CreateApplicationWithAttributeAndRequestToStartForQuest ====
 +
Takes an input u64 titleID and a type-0x15 input buffer containing an [[#ApplicationAttribute]], no output.
 +
 +
Same as [[#CreateApplicationAndRequestToStartForQuest]] except the entire attributes structure is directly specified via the input buffer. This command replaces [[#CreateApplicationAndRequestToStartForQuest]], official user-processes no longer use [[#CreateApplicationAndPushAndRequestToStartForQuest]].
    
==== GetDesiredLanguage ====
 
==== GetDesiredLanguage ====
Line 670: Line 683:     
For example, in some cases official apps use this with [[Error_codes|error]] 0x2A2 then uses svcBreak.
 
For example, in some cases official apps use this with [[Error_codes|error]] 0x2A2 then uses svcBreak.
 +
 +
==== GetDisplayVersion ====
 +
No input, returns an output 0x10-byte struct.
 +
 +
The output struct is "nn::oe::DisplayVersion". This the DisplayVersion string copied from the application [[NACP_Format|control.nacp]], this is always NUL-terminated.
    
==== EndBlockingHomeButtonShortAndLongPressed ====
 
==== EndBlockingHomeButtonShortAndLongPressed ====
Line 711: Line 729:  
==== EnableApplicationCrashReport ====
 
==== EnableApplicationCrashReport ====
 
Takes an input u8 bool, no output.
 
Takes an input u8 bool, no output.
 +
 +
==== InitializeApplicationCopyrightFrameBuffer ====
 +
Takes an input TransferMemory handle, an u32 '''width''', an u32 '''height''', an u64 tmem_size, and no output.
 +
 +
User-processes create the tmem with an user-specified buffer with permissions=0. '''width''' = 1280 and '''height''' = 720.
 +
 +
==== SetApplicationCopyrightImage ====
 +
Takes a type-0x45 input buffer and 5 input s32s, no output.
 +
 +
The last s32 is "nn::oe::WindowOriginMode".
 +
 +
The first two s32s must not have the negative bit set, and the following two s32s must not be <1.
    
==== SetApplicationCopyrightVisibility ====
 
==== SetApplicationCopyrightVisibility ====
Line 728: Line 758:     
Same as [[#QueryApplicationPlayStatistics]] except this uses [[Shared_Database_services|pdm:qry]] cmd16, to get playstats specific to userIDs.  
 
Same as [[#QueryApplicationPlayStatistics]] except this uses [[Shared_Database_services|pdm:qry]] cmd16, to get playstats specific to userIDs.  
 +
 +
==== ExecuteProgram ====
 +
Takes an input u32 [[#ProgramSpecifyKind]] and an input u64, no output.
    
==== ClearUserChannel ====
 
==== ClearUserChannel ====
 
No input/output.
 
No input/output.
 +
 +
Clears the UserChannel.
 +
 +
==== UnpopToUserChannel ====
 +
Takes an input [[#IStorage]], no output.
 +
 +
The input storage is pushed to the UserChannel, which is also used by [[#ClearUserChannel]].
 +
 +
User-processes create a storage using data specified by the user (written to offset=0 size=inputsize), with max size 0x1000. This storage is then used with this cmd.
 +
 +
==== GetPreviousProgramIndex ====
 +
No input, returns an output s32.
    
==== CreateMovieMaker ====
 
==== CreateMovieMaker ====
Line 1,857: Line 1,902:  
| 10 || Unexpected
 
| 10 || Unexpected
 
|}
 
|}
 +
 +
=== ProgramSpecifyKind ===
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Value
 +
!  Description
 +
|-
 +
| 0 || u8 ProgramIndex. "ExecuteProgram". User-process enters an infinite svcSleepThread loop afterwards.
 +
|-
 +
| 1 || u64 titleID. "JumpToSubApplicationProgramForDevelopment". Only available when [[Settings_services#GetDebugModeFlag|DebugMode]] is 1.
 +
|-
 +
| 2 || u64 = value 0. "RestartProgram"
 +
|-
 +
|}
 +
 +
This is "nn::am::service::ProgramSpecifyKind". This controls the type of the u64 passed to [[#ExecuteProgram]].
    
= AppletResourceUserId =
 
= AppletResourceUserId =
Line 1,866: Line 1,927:  
= AppletKind =
 
= AppletKind =
 
This is 8-bytes.
 
This is 8-bytes.
 +
 +
= ApplicationAttributeForQuest =
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4 || See [[#ApplicationAttribute]].
 +
|-
 +
| 0x4 || 0x4 || See [[#ApplicationAttribute]].
 +
|-
 +
| 0x8 || 0x4 || See [[#ApplicationAttribute]].
 +
|}
 +
 +
This struct is "nn::applet::ApplicationAttributeForQuest".
 +
 +
User-processes copy the first 0x8-bytes (0xC-bytes with [[#CreateApplicationWithAttributeAndPushAndRequestToStartForQuest]]/[[#CreateApplicationWithAttributeAndRequestToStartForQuest]]) to a [[#ApplicationAttribute]] with the rest of the struct being cleared, which is then passed to the actual cmd (CreateApplication*ToStartForQuest).
 +
 +
= ApplicationAttribute =
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4 || Unknown. Default is 0.
 +
|-
 +
| 0x4 || 0x4 || Unknown. Default is 0.
 +
|-
 +
| 0x8 || 0x4 || float. Must be in the range of 0.0f-1.0f. The default is 1.0f.
 +
|-
 +
| 0xC || 0x14 || Unknown. Default is 0.
 +
|}
 +
 +
This struct is "nn::am::ApplicationAttribute". This struct is 0x20-bytes.
    
= Notes =
 
= Notes =

Navigation menu