Difference between revisions of "NS services"

From Nintendo Switch Brew
Jump to navigation Jump to search
Line 327: Line 327:
 
|-
 
|-
 
| 9 ||
 
| 9 ||
|}
 
 
= Enums =
 
=== AppletId ===
 
{| class="wikitable" border="1"
 
|-
 
!  ID
 
!  Description
 
|-
 
| 0x02
 
| Unknown (throws fatal error 2128-0203)
 
|-
 
| 0x03
 
| Unknown (throws fatal error 2128-0203)
 
|-
 
| 0x04
 
| Unknown (throws fatal error 2128-0203)
 
|-
 
| 0x0C
 
| Unknown (blinks the screen)
 
|-
 
| 0x0D
 
| Unknown (displays "Checking for free space...")
 
|-
 
| 0x0E
 
| ErrorApplet
 
|-
 
| 0x0F
 
| NetworkSelect
 
|-
 
| 0x10
 
| PlayerSelect
 
|-
 
| 0x11
 
| Swkbd (on-screen keyboard)
 
|-
 
| 0x13
 
| [[Internet_Browser|WebApplet]] From WebApplet string: "aInfo.appletId == ::nn::applet::AppletId_LibraryAppletWeb".
 
|-
 
| 0x14
 
| Ec ([[Internet_Browser|ShopN]]) From ShopN string: "aInfo.appletId == ::nn::applet::AppletId_LibraryAppletShop".
 
|-
 
| 0x15
 
| Album
 
|-
 
| 0x18
 
| [[Internet_Browser|Whitelisted]] web-applet (From whitelisted web-applet string: "aInfo.appletId == ::nn::applet::AppletId_LibraryAppletLoginShare")
 
|-
 
| 0x19
 
| [[Internet_Browser|WifiWebAuth]] (From browser string: "aInfo.appletId == ::nn::applet::AppletId_LibraryAppletWifiWebAuth")
 
|}
 
 
This seems to be the equivalent of [https://3dbrew.org/wiki/NS_and_APT_Services#AppIDs this].
 
 
=== ShimKind ===
 
This is from strings and code in the [[Internet_Browser| web-applets]].
 
 
This indicates the type of web-applet.
 
 
{| class="wikitable" border="1"
 
|-
 
!  shimKind value
 
!  Description
 
|-
 
| 2
 
| LoginApplet
 
|-
 
| 4
 
| ShareApplet
 
|-
 
| 5
 
| WebApplet
 
|-
 
| 6
 
| WifiWebAuthApplet
 
|-
 
| 7
 
| LobbyApplet
 
 
|}
 
|}
  
 
[[Category:Services]]
 
[[Category:Services]]

Revision as of 14:42, 5 August 2017

This is the Switch equivalent of this.

ns:am

Cmd Name
0 #GetTitlesInfo
1
2
3
4
5
6
7
8
9
11
13
16
17
19
21 #GetTitlePatchContentNcaPath
22
23
25
27
30
31
33
35
36
37
38
39
40
41
42
43
44
45
46
47 #GetFreeSpace
48 #GetTotalSpace
49
52
53
54
55
56
57
58
59
60 #GetLanguageIdFromString
61
62
63
64
65
100 InitializeNXFileSystem?
101 ? Seems to wipe filesystem but keeps some data (savegames? users?)
102
200
201
210
220
300
301
302
303
304
305
306
307
401
402
403
404
405
502
503
504
600
601 #GetTitleInfo1
602
603
604
605 Used same way as #GetTitleInfo1.
700
701
702
703
704
705
800
801
900
901
902
903
904
905
906
907
908
1000
1001
1200
1300
1301
1302
1400
1500
1501
1502
1503
1600
1700
1800
1801
1802

GetTitlePatchContentNcaPath

Takes a 0x16-type output buffer, an u8 type, and an u64 titleID.

The input titleID is used with the application-title table like various other cmds, anything not in that table can't be used with this.

Returns a string path for the specified type of patch content with this titleID, otherwise returns regular-application paths when update-title not installed. Returns an error when the specified type of content doesn't exist for this title. Starts with "@{SdCardContent,UserContent}://" and ends in ".nca".

For gamecard content, the output path is: "@GcSXXXXXXXX:/<NcaId>.nca". NCA-type0 with gamecard returns 0 with an empty output string.

The output string is then used by the user-process with FS to mount the content.

GetFreeSpace

Takes an input media-id that must be 5.

Returns the u64 from Content_Manager_services#IContentStorage cmd22.

GetTotalSpace

Takes an input media-id that must be 5.

Returns the u64 from Content_Manager_services#IContentStorage cmd23.

GetLanguageIdFromString

Takes an input u8 pointer for the resulting Id to be written to and a string represented as a u64 (i.e 0x53552D6E65 for 'en-US').

Returns 0 if an ID was successfully found, otherwise returns 0x25810.

GetTitlesInfo

Takes a type-6 output buffer and an u64.

Returns an array of title-info entries using the specified offset and size. No input titleID is passed to this.

GetTitleInfo1

Returns 0x10-byte entries using the specified titleID starting at the specified u32 entryindex. Can only return game titles. The second entry if any is the update-title usually. When the input entryindex is >= totalentries, this will return 0 with out_entrycount=0.

Entry structure:

Offset Size Description
0x0 0x1 u8 "type". Title type (String is from web-applet)
0x1 0x1 u8 "installedStorage" / StorageId (String is from web-applet)
0x2 0x1 Unknown. Non-zero with output from cmd 605, differs for app/update titles.
0x3 0x1 Padding
0x4 0x4 u32 Title-version
0x8 0x8 u64 titleID

ns:su

ns:dev

Cmd Name
0 LaunchTitle
1 TerminateTitle
2
3
4
5
6
7
8
9