Difference between revisions of "NCM services"

From Nintendo Switch Brew
Jump to navigation Jump to search
Line 32: Line 32:
 
! Cmd || Name || Notes
 
! Cmd || Name || Notes
 
|-
 
|-
| 0 || || Returns a 0x10-sized entry.
+
| 0 || [[#GetRootEntry]] ||
 
|-
 
|-
 
| 1 || || Takes two 0x10-sized entries, and a u64.
 
| 1 || || Takes two 0x10-sized entries, and a u64.
Line 56: Line 56:
 
| 11 || || Takes a type-6 buffer, each entry 0x10 bytes, and returns a u32.
 
| 11 || || Takes a type-6 buffer, each entry 0x10 bytes, and returns a u32.
 
|-
 
|-
| 12 || || Returns a u32.
+
| 12 || [[#GetNumberOfEntries]] ||
 
|-
 
|-
| 13 || || Takes a type-6 buffer, each entry 0x10 bytes, and a u32, and returns a u32.
+
| 13 || [[#ReadEntries]] ||
 
|-
 
|-
 
| 14 || || Takes a 0x10-sized entry, and returns a u64.
 
| 14 || || Takes a 0x10-sized entry, and returns a u64.
Line 80: Line 80:
 
| 23 || GetTotalSpace ||
 
| 23 || GetTotalSpace ||
 
|}
 
|}
 +
 +
== GetRootEntry ==
 +
Returns an entry of 16 completely random-looking bytes.
 +
Changes on reboot?
 +
 +
== ReadEntries ==
 +
Takes a u32 offset and reads all entries starting at that offset.
 +
Returns number of entries read.
 +
 +
Each entry is 16 completely random-looking bytes.
  
 
== IContentMetaDatabase ==
 
== IContentMetaDatabase ==

Revision as of 23:00, 10 June 2017

ncm

Cmd Name Notes
0 Takes a u8 as input.
1 Takes a u8 as input.
2 Takes a u8 as input.
3 Takes a u8 as input.
4 GetContentStorage
5 GetContentMetaDatabase
8 Takes a u8 as input.
9 InitializeStorageForMediaId
10 UninitializeStorageForMediaId
11 InitializeDatabaseForMediaId
12 UninitializeDatabaseForMediaId

IContentStorage

Cmd Name Notes
0 #GetRootEntry
1 Takes two 0x10-sized entries, and a u64.
2 Takes a 0x10-sized entry.
3 Takes a 0x10-sized entry, returns a bool/u8.
4 Takes a 0x10-sized entry, a u64, and type-5 array.
5 Takes two 0x10-sized entries.
6 DeleteContent? Takes a 0x10-sized entry.
7 Takes a 0x10-sized entry, returns a bool/u8.
8 Takes a type-0x1A string and a 0x10-sized entry.
9 Takes a type-0x1A string and a 0x10-sized entry.
10 Void.
11 Takes a type-6 buffer, each entry 0x10 bytes, and returns a u32.
12 #GetNumberOfEntries
13 #ReadEntries
14 Takes a 0x10-sized entry, and returns a u64.
15 Void.
16 Takes three 0x10-sized entries.
17 Takes a 0x10-sized entry and a u64.
18 Takes a type-6 array, a 0x10-sized entry, and a u64.
19 Takes a 0x10-sized entry and returns another 0x10-sized entry.
20 Takes a 0x10-sized entry and returns another 0x10-sized entry.
21 Takes a 0x10-sized entry, a u64, and a type5 buffer.
22 GetFreeSpace
23 GetTotalSpace

GetRootEntry

Returns an entry of 16 completely random-looking bytes. Changes on reboot?

ReadEntries

Takes a u32 offset and reads all entries starting at that offset. Returns number of entries read.

Each entry is 16 completely random-looking bytes.

IContentMetaDatabase

Cmd Name Notes
0 InsertContentEntry? Takes a 0x10-sized entry, a type-5 buffer and a u64.
1 Takes a 0x10-sized entry, a type-6 buffer and a u64. Returns a u64.
2 Takes a 0x10-sized entry.
3 Takes a 0x10-sized entry and a bool/u8. Returns an 0x10-sized entry.
4 Takes a type-6 buffer, each entry being 24 bytes, 0x10-sized entry and a u32. Returns a u32.
5 Iterate Takes a type-6 buffer, each entry being 16 bytes, a 0x10-sized entry, and a u32. Returns a u32.
6 Takes a u64. Returns a 0x10-sized entry.
7
8
9
10
11
12
13
14
15 EndIteration
16
17
18
19