Changes

Line 444: Line 444:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 100 ||  
+
| 100 || [[#GetHighestAvailableVersion]]
 
|-
 
|-
| 101 ||  
+
| 101 || [[#GetHighestRequiredVersion]]
 
|-
 
|-
| 102 ||  
+
| 102 || [[#GetVersionListEntry]]
 
|-
 
|-
| 103 || No input, returns an [[#IVersionListImporter]].
+
| 103 || [[#GetVersionListImporter]]
 
|-
 
|-
| 200 || GetLaunchRequiredVersion
+
| 200 || [[#GetLaunchRequiredVersion]]
 
|-
 
|-
| 202 || UpgradeLaunchRequiredVersion
+
| 202 || [[#UpgradeLaunchRequiredVersion]]
 
|-
 
|-
| 1000 || PushLaunchVersion
+
| 1000 || [[#PushLaunchVersion]]
 
|-
 
|-
| 1001 || ListVersionList
+
| 1001 || [[#ListVersionList]]
 
|-
 
|-
| 1002 || ListRequiredVersion
+
| 1002 || [[#ListRequiredVersion]]
 
|}
 
|}
 +
 +
=== GetHighestAvailableVersion ===
 +
Takes two u64 title ids. Returns the highest available version of both.
 +
 +
Unused by official software.
 +
 +
=== GetHighestRequiredVersion ===
 +
Takes two u64 title ids. Returns the highest available version of both.
 +
 +
Official software calls this with the id of an application and its update.
 +
 +
=== GetVersionListEntry ===
 +
Takes an input u64 title id. Returns associated [[#VersionListEntry]].
 +
 +
=== GetVersionListImporter ===
 +
No input, returns an [[#IVersionListImporter]].
 +
 +
=== GetLaunchRequiredVersion ===
 +
Takes an input u64 title id. Return the required launch version.
 +
 +
=== UpgradeLaunchRequiredVersion ===
 +
Takes a u32 launch version and a u64 title id.
 +
 +
Version has to be greater the result of GetLaunchRequiredVersion.
 +
 +
=== PushLaunchVersion ===
 +
Takes a u32 launch version and a u64 title id.
 +
 +
=== ListVersionList ===
 +
No input, returns a type 6 buffer of [[#VersionListEntry]] and a u32 count.
 +
 +
=== ListRequiredVersion ===
 +
No input, returns a type 6 buffer of [[#RequiredVersionEntry]] and a u32 count.
    
== IVersionListImporter ==
 
== IVersionListImporter ==
Line 472: Line 505:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || SetTimestamp
+
| 0 || [[#SetTimestamp]]
 +
|-
 +
| 1 || [[#PushEntries]]
 +
|-
 +
| 2 || [[#Flush]]
 +
|}
 +
 
 +
=== SetTimestamp ===
 +
Takes an input u64 unix timestamp, no output.
 +
 
 +
=== PushEntries ===
 +
Takes an input type-6 buffer [[#VersionListEntry]], no output.
 +
 
 +
=== Flush ===
 +
No input, no output. Flushed the commited data to its safe.
 +
 
 +
= VersionListEntry =
 +
This is a 0x10-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0 || 0x8 || Update Id.
 +
|-
 +
| 0x8 || 0x4 || Available version.
 +
|-
 +
| 0xC || 0x4 || Required version.
 +
|}
 +
 
 +
= RequiredVersionEntry =
 +
This is a 0x10-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0 || 0x8 || Id.
 
|-
 
|-
| 1 || PushEntries
+
| 0x8 || 0x4 || Required version.
 
|-
 
|-
| 2 || Flush
+
| 0xC || 0x4 || Padding.
 
|}
 
|}
  
71

edits