Process Services: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
No edit summary  | 
				m Add anchors  | 
				||
| (7 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{{Anchor|PS}}{{Anchor|ps:ps}}  | |||
= PS service "ps:ps" =  | |||
{| class="wikitable" border="1"  | {| class="wikitable" border="1"  | ||
|-  | |-  | ||
!  Command Header  | !  Command Header  | ||
!  Available since system version   | |||
!  Description  | !  Description  | ||
|-  | |-  | ||
| 0x00010244  | | 0x00010244  | ||
| SignRsaSha256  | | [[1.0.0-0]]  | ||
| [[PS:SignRsaSha256|SignRsaSha256]]  | |||
|-  | |-  | ||
| 0x00020244  | | 0x00020244  | ||
| VerifyRsaSha256  | | [[1.0.0-0]]  | ||
| [[PS:VerifyRsaSha256|VerifyRsaSha256]]  | |||
|-  | |-  | ||
| Not implemented  | | Not implemented  | ||
| SetAesKey  | |   | ||
| SetAesKey (just returns error 0xD8C107F4)  | |||
|-  | |-  | ||
| 0x00040204  | | 0x00040204  | ||
| [[1.0.0-0]]  | |||
| [[PS:EncryptDecryptAes|EncryptDecryptAes]]  | | [[PS:EncryptDecryptAes|EncryptDecryptAes]]  | ||
|-  | |-  | ||
| 0x00050284  | | 0x00050284  | ||
| [[1.0.0-0]]  | |||
| [[PS:EncryptSignDecryptVerifyAesCcm|EncryptSignDecryptVerifyAesCcm]]  | | [[PS:EncryptSignDecryptVerifyAesCcm|EncryptSignDecryptVerifyAesCcm]]  | ||
|-  | |-  | ||
| 0x00060040  | | 0x00060040  | ||
| [[1.0.0-0]]  | |||
| GetRomId (u32 processID)  | | GetRomId (u32 processID)  | ||
|-  | |-  | ||
| 0x00070040  | | 0x00070040  | ||
| [[1.0.0-0]]  | |||
| GetRomId2 (u32 processID)  | | GetRomId2 (u32 processID)  | ||
|-  | |-  | ||
| 0x00080040  | | 0x00080040  | ||
| [[1.0.0-0]]  | |||
| GetRomMakerCode (u32 processID)  | | GetRomMakerCode (u32 processID)  | ||
|-  | |-  | ||
| 0x00090000  | | 0x00090000  | ||
| GetCTRCardAutoStartupBit  | | [[1.0.0-0]]  | ||
| [[PS:GetCTRCardAutoStartupBit|GetCTRCardAutoStartupBit]]  | |||
|-  | |-  | ||
| 0x000A0000  | | 0x000A0000  | ||
| [[1.0.0-0]]  | |||
| GetLocalFriendCodeSeed  | | GetLocalFriendCodeSeed  | ||
|-  | |-  | ||
| 0x000B0000  | | 0x000B0000  | ||
| [[1.0.0-0]]  | |||
| GetDeviceId  | | GetDeviceId  | ||
|-  | |-  | ||
| 0x000C0000  | | 0x000C0000  | ||
|   | | [[1.0.0-0]]  | ||
| [[PS:SeedRNG|SeedRNG]]  | |||
|-  | |-  | ||
| 0x000D0042  | | 0x000D0042  | ||
| [[1.0.0-0]]  | |||
| GenerateRandomBytes  | | GenerateRandomBytes  | ||
|-  | |||
| 0x000E0082  | |||
| New3DS = [[8.1.0-0_New3DS]], Old3DS = [[9.0.0-20]]  | |||
| Interface for [[Process_Services_PXI]] New3DS command 0x04010084.  | |||
|-  | |||
| 0x000F0082  | |||
| New3DS = [[8.1.0-0_New3DS]], Old3DS = [[9.0.0-20]]  | |||
| Interface for [[Process_Services_PXI]] New3DS command 0x04020082.  | |||
|-  | |||
| 0x00100042  | |||
| New3DS = [[8.1.0-0_New3DS]], Old3DS = [[9.0.0-20]]  | |||
| Interface for [[Process_Services_PXI]] New3DS command 0x04030044.  | |||
|-  | |||
| 0x00110042  | |||
| New3DS = [[8.1.0-0_New3DS]], Old3DS = [[9.0.0-20]]  | |||
| Interface for [[Process_Services_PXI]] New3DS command 0x04040044.  | |||
|}  | |}  | ||
| Line 48: | Line 79: | ||
For GetRomId, GetRomId2, and GetRomMakerCode, PS-module uses [[FS:GetProgramLaunchInfo]] with the processID which was sent to PS-module via the command input. If GetProgramLaunchInfo fails, PS-module returns error 0xC90107FA. When the mediatype is value2 for gamecard, the PSPXI command is used, otherwise PS-module just clears the output data for the command response.  | For GetRomId, GetRomId2, and GetRomMakerCode, PS-module uses [[FS:GetProgramLaunchInfo]] with the processID which was sent to PS-module via the command input. If GetProgramLaunchInfo fails, PS-module returns error 0xC90107FA. When the mediatype is value2 for gamecard, the PSPXI command is used, otherwise PS-module just clears the output data for the command response.  | ||
PS module does not use any CheckNew3DS commands: commands 0x000E0082..0x00110042 are handled by PS module regardless of whether this is running on Old3DS/New3DS. Using these commands on Old3DS will result in Process9 returning an invalid command header error. [[NFC_Services|NFC]] module uses all of these new commands for New3DS.  | |||
[[Category:Services]]  | |||
Latest revision as of 09:43, 18 September 2024
PS service "ps:ps"
| Command Header | Available since system version | Description | 
|---|---|---|
| 0x00010244 | 1.0.0-0 | SignRsaSha256 | 
| 0x00020244 | 1.0.0-0 | VerifyRsaSha256 | 
| Not implemented | SetAesKey (just returns error 0xD8C107F4) | |
| 0x00040204 | 1.0.0-0 | EncryptDecryptAes | 
| 0x00050284 | 1.0.0-0 | EncryptSignDecryptVerifyAesCcm | 
| 0x00060040 | 1.0.0-0 | GetRomId (u32 processID) | 
| 0x00070040 | 1.0.0-0 | GetRomId2 (u32 processID) | 
| 0x00080040 | 1.0.0-0 | GetRomMakerCode (u32 processID) | 
| 0x00090000 | 1.0.0-0 | GetCTRCardAutoStartupBit | 
| 0x000A0000 | 1.0.0-0 | GetLocalFriendCodeSeed | 
| 0x000B0000 | 1.0.0-0 | GetDeviceId | 
| 0x000C0000 | 1.0.0-0 | SeedRNG | 
| 0x000D0042 | 1.0.0-0 | GenerateRandomBytes | 
| 0x000E0082 | New3DS = 8.1.0-0_New3DS, Old3DS = 9.0.0-20 | Interface for Process_Services_PXI New3DS command 0x04010084. | 
| 0x000F0082 | New3DS = 8.1.0-0_New3DS, Old3DS = 9.0.0-20 | Interface for Process_Services_PXI New3DS command 0x04020082. | 
| 0x00100042 | New3DS = 8.1.0-0_New3DS, Old3DS = 9.0.0-20 | Interface for Process_Services_PXI New3DS command 0x04030044. | 
| 0x00110042 | New3DS = 8.1.0-0_New3DS, Old3DS = 9.0.0-20 | Interface for Process_Services_PXI New3DS command 0x04040044. | 
These commands are an interface for Process_Services_PXI.
For GetRomId, GetRomId2, and GetRomMakerCode, PS-module uses FS:GetProgramLaunchInfo with the processID which was sent to PS-module via the command input. If GetProgramLaunchInfo fails, PS-module returns error 0xC90107FA. When the mediatype is value2 for gamecard, the PSPXI command is used, otherwise PS-module just clears the output data for the command response.
PS module does not use any CheckNew3DS commands: commands 0x000E0082..0x00110042 are handled by PS module regardless of whether this is running on Old3DS/New3DS. Using these commands on Old3DS will result in Process9 returning an invalid command header error. NFC module uses all of these new commands for New3DS.