Changes

Jump to navigation Jump to search
1,828 bytes added ,  18:39, 10 June 2018
Added missing names for some commands (again)
Line 554: Line 554:  
| 0x086B00C2
 
| 0x086B00C2
 
|?
 
|?
|?
+
|SetOtherSaveDataSecureValue
 
| 00121004
 
| 00121004
 
|-
 
|-
 
| 0x086C00C2
 
| 0x086C00C2
 
|?
 
|?
|?
+
|GetOtherSaveDataSecureValue
 
| 00121004
 
| 00121004
 
|-
 
|-
Line 568: Line 568:  
|-
 
|-
 
| 0x086E00C0
 
| 0x086E00C0
|?
+
|Related to Secure Value? Used in Pokemon Sun/Moon.
|?
+
|SetThisSaveDataSecureValue
 
|None?
 
|None?
 
|-
 
|-
 
| 0x086F0040
 
| 0x086F0040
|?
+
|Related to Secure Value? Used in Pokemon Sun/Moon.
|?
+
|GetThisSaveDataSecureValue
 
| 0xE
 
| 0xE
 
|-
 
|-
Line 644: Line 644:  
| 0x087D0000
 
| 0x087D0000
 
| [[9.6.0-24|9.6.0-X]]
 
| [[9.6.0-24|9.6.0-X]]
| Writes an u32 from state to cmdreply[2]. Probably the total number of titles in the SEEDDB?
+
| GetNumSeeds. Writes the number of seeds to cmdreply[2]
 
| 0x00200000
 
| 0x00200000
 
|-
 
|-
Line 686: Line 686:  
| ?
 
| ?
 
| 0x00200000
 
| 0x00200000
 +
|-
 +
| 0x088600C0
 +
| [[11.1.0-34|11.1.0-X]]
 +
| [[FS:CheckUpdatedDat|CheckUpdatedDat]]
 +
| 0x00080000
 
|}
 
|}
   Line 821: Line 826:  
!  Accessible via [[Filesystem_services|FS]]
 
!  Accessible via [[Filesystem_services|FS]]
 
!  Accessible via [[Filesystem_services_PXI|FSPXI]]
 
!  Accessible via [[Filesystem_services_PXI|FSPXI]]
 +
!  Only accessible by Process9 internally
 
!  Requires binary [[FS:OpenFile|Lowpath]]
 
!  Requires binary [[FS:OpenFile|Lowpath]]
 
!  Required exheader FS access info bitmask
 
!  Required exheader FS access info bitmask
 
|-
 
|-
 
| 0x00000003
 
| 0x00000003
| Application [[#RomFS|RomFS]]
+
| SelfNCCH (including [[#RomFS|RomFS]])
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| No
 
| No
Line 834: Line 841:  
| SaveData (the saveID/mediatype for this is loaded from data originally from the user process' exheader)
 
| SaveData (the saveID/mediatype for this is loaded from data originally from the user process' exheader)
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| No
 
| No
Line 841: Line 849:  
| ExtSaveData
 
| ExtSaveData
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| Yes
 
| Yes
Line 848: Line 857:  
| Shared ExtSaveData
 
| Shared ExtSaveData
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| Yes
 
| Yes
Line 855: Line 865:  
| SystemSaveData
 
| SystemSaveData
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| Yes
 
| Yes
Line 863: Line 874:  
| Yes
 
| Yes
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| 0x8E
 
| 0x8E
Line 869: Line 881:  
| SDMC Write-Only
 
| SDMC Write-Only
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| No
 
| No
Line 876: Line 889:  
| ExtSaveData for BOSS
 
| ExtSaveData for BOSS
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| Yes
 
| Yes
Line 884: Line 898:  
| Yes
 
| Yes
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| 0x16
 
| 0x16
Line 891: Line 906:  
| No
 
| No
 
| Yes
 
| Yes
 +
| No
 
| Yes
 
| Yes
 
|  
 
|  
Line 898: Line 914:  
| No
 
| No
 
| Yes
 
| Yes
 +
| No
 
| Yes
 
| Yes
 
|  
 
|  
Line 905: Line 922:  
| Yes
 
| Yes
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| 0x800
 
| 0x800
Line 912: Line 930:  
| Yes
 
| Yes
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| 0x200
 
| 0x200
Line 919: Line 938:  
| No
 
| No
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| ?
 
| ?
Line 926: Line 946:  
| Yes
 
| Yes
 
| ?
 
| ?
 +
| No
 
| Yes
 
| Yes
 
| ?
 
| ?
Line 933: Line 954:  
| ?
 
| ?
 
| ?
 
| ?
 +
| No
 
| ?
 
| ?
 
| ?
 
| ?
Line 940: Line 962:  
| Yes
 
| Yes
 
| ?
 
| ?
 +
| No
 
| Yes
 
| Yes
 
| ?
 
| ?
Line 947: Line 970:  
| Yes
 
| Yes
 
| Yes
 
| Yes
 +
| No
 
| Yes
 
| Yes
 
| 0x1005
 
| 0x1005
Line 954: Line 978:  
| No
 
| No
 
| No
 
| No
 +
| Yes
 
| Yes
 
| Yes
 
|  
 
|  
Line 961: Line 986:  
| No
 
| No
 
| No
 
| No
 +
| Yes
 
| Yes
 
| Yes
 
|  
 
|  
Line 968: Line 994:  
| No
 
| No
 
| No
 
| No
 +
| Yes
 
| No
 
| No
 
|  
 
|  
Line 975: Line 1,002:  
| Yes
 
| Yes
 
| Yes
 
| Yes
 +
| No
 
| Yes
 
| Yes
 
| None, see description.
 
| None, see description.
Line 982: Line 1,010:  
| No
 
| No
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| ?
 
| ?
Line 989: Line 1,018:  
| Yes
 
| Yes
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| ?
 
| ?
Line 996: Line 1,026:  
| No
 
| No
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| ?
 
| ?
Line 1,003: Line 1,034:  
| Yes
 
| Yes
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| 0x100
 
| 0x100
Line 1,010: Line 1,042:  
| Yes
 
| Yes
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| 0x100
 
| 0x100
Line 1,017: Line 1,050:  
| No
 
| No
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
|  
 
|  
Line 1,023: Line 1,057:  
| Gamecard SaveData (for check). This is a wrapper for UserSaveDataForCheck: the OpenArchive code for that is called with archive-lowpath TID=0/mediatype=2(gamecard).
 
| Gamecard SaveData (for check). This is a wrapper for UserSaveDataForCheck: the OpenArchive code for that is called with archive-lowpath TID=0/mediatype=2(gamecard).
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| No
 
| No
Line 1,030: Line 1,065:  
| UserSaveData (for check). This is the same as the regular SaveData archive, except with this the savedata ID and mediatype is loaded from the input archive lowpath.
 
| UserSaveData (for check). This is the same as the regular SaveData archive, except with this the savedata ID and mediatype is loaded from the input archive lowpath.
 
| Yes
 
| Yes
 +
| No
 
| No
 
| No
 
| Yes
 
| Yes
Line 1,035: Line 1,071:  
|-
 
|-
 
| 0x567890B4
 
| 0x567890B4
| ? SaveData from Demo Version of Retail Game
+
| Similar to 0x567890B2 but can only access Accessible Save specified in [[NCCH/Extended_Header#Storage_Info|exheader]]?
 
| Yes
 
| Yes
 
| No
 
| No
 
| No
 
| No
 +
| Yes
 
| ?
 
| ?
 
|}
 
|}
Line 1,056: Line 1,093:  
!  Value
 
!  Value
 
!  Description
 
!  Description
 +
|-
 +
| -1
 +
| Returned internally by Process9, when errors occur it seems(in particular when no nul-terminator was found in the input path). The data ptr is set to NULL.
 
|-
 
|-
 
| 0x0
 
| 0x0
| INVALID - Specifies an invalid path.
+
| INVALID - Specifies an invalid path
 
|-
 
|-
 
| 0x1
 
| 0x1
| EMPTY - Specifies an empty path.
+
| EMPTY - Specifies an empty path
 
|-
 
|-
 
| 0x2
 
| 0x2
| BINARY - Non-text based path. Meaning is per-archive.
+
| BINARY - Non-text based path. Meaning is per-archive
 
|-
 
|-
 
| 0x3
 
| 0x3
| CHAR - Text-based path with 8-bit characters.
+
| ASCII - Text-based path with 7-bit ASCII characters padded to 8-bits each (signed char)
 
|-
 
|-
 
| 0x4
 
| 0x4
| WCHAR - Text-based path with 16-bit characters.
+
| UTF16 - Text-based path with UTF-16 characters
 
|}
 
|}
 +
 +
In IPC requests, sizes of ASCII and UTF16 paths must include space for the null-terminator.
    
== Binary LowPath ==
 
== Binary LowPath ==
 
The format of the data that a binary LowPath points to is custom per archive.
 
The format of the data that a binary LowPath points to is custom per archive.
 +
 +
=== SelfNCCH File Path Data Format ===
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Index word
 +
!  Description
 +
|-
 +
| 0
 +
| Type:
 +
* 0x0: RomFS
 +
* 0x1: error 0xD9004676
 +
* 0x2: ExeFS
 +
* 0x3: Error 0xE0E046BE.
 +
* 0x4: FS-module crashes on this
 +
* 0x5: Update RomFS?
 +
|-
 +
| 1-2
 +
| File name for ExeFS ("icon"/"banner"/"logo"). ".code" is not allowed
 +
|}
 +
 +
Note that ExeFS files only support reading from offset=0 and with size=file_size.
    
=== SystemSaveData Archive Path Data Format ===
 
=== SystemSaveData Archive Path Data Format ===
Line 1,118: Line 1,181:  
|}
 
|}
 
The file/directory lowpath for this FS archive is a text path in the [[Savegames|savegame]] filesystem.
 
The file/directory lowpath for this FS archive is a text path in the [[Savegames|savegame]] filesystem.
 +
 +
=== 0x567890B4 Archive Path Data Format ===
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Index word
 +
!  Description
 +
|-
 +
| 0
 +
| [[Mediatypes|Mediatype]]
 +
|-
 +
| 1
 +
| <code><nowiki>Lower_word_saveid >> 8</nowiki></code> ?
 +
|-
 +
| 2
 +
| Unknown. Game calculate this using formula <code><nowiki>0xFFFFFF00 | unknown_b</nowiki></code>
 +
|}
    
=== ExtSaveData Archive Path Data Format ===
 
=== ExtSaveData Archive Path Data Format ===
Line 1,149: Line 1,228:  
|-
 
|-
 
| 2  
 
| 2  
| [[Mediatypes|Mediatype]]
+
| ([[Mediatypes|Mediatype]] & 0xFF) | (uninitialized_data? & 0xFFFFFF00)
 
|-
 
|-
 
| 3
 
| 3
| Reserved
+
| Number of something? Hardcoded per-archive, 0 for ExeFS, 200 for area:, 100 for rate:, 40 for eula:, etc.
 
|}
 
|}
   Line 1,179: Line 1,258:     
Archives 0x3 and 0x2345678E both allow for accessing the [[RomFS#Level_3_Format|level-3 IVFC images]] for RomFS access. The main CXI RomFS is accessible via an all-zero 0xc-byte binary file-lowpath. The update RomFS can be accessed with the first u32 in the binary file-lowpath being set to 0x5. The user must handle parsing the filesystem used in the exposed image itself.
 
Archives 0x3 and 0x2345678E both allow for accessing the [[RomFS#Level_3_Format|level-3 IVFC images]] for RomFS access. The main CXI RomFS is accessible via an all-zero 0xc-byte binary file-lowpath. The update RomFS can be accessed with the first u32 in the binary file-lowpath being set to 0x5. The user must handle parsing the filesystem used in the exposed image itself.
 +
 +
With FSPXI the returned data for RomFS is the entire RomFS section from the NCCH, starting at the IVFC header.
    
The 0x3 archive is an interface for the 0x2345678E archive with the current process programID+mediatype. The file lowpath is 3-words. These words are written to 0x2345678E-archive file_lowpath+0, with the rest of that lowpath set to all-zero(lowpath is different from archive 0x2345678A). File lowpath:
 
The 0x3 archive is an interface for the 0x2345678E archive with the current process programID+mediatype. The file lowpath is 3-words. These words are written to 0x2345678E-archive file_lowpath+0, with the rest of that lowpath set to all-zero(lowpath is different from archive 0x2345678A). File lowpath:
Line 1,233: Line 1,314:  
| SD
 
| SD
 
|-
 
|-
| 2
+
| 3
 
| TWL Photo
 
| TWL Photo
 
|}
 
|}
24

edits

Navigation menu