Changes

no edit summary
Line 332: Line 332:  
| 16 || [10.0.0+] [[#QueryApplicationPlayStatisticsByUserAccountIdForSystemV0]] ([6.0.0-9.2.0] QueryApplicationPlayStatisticsByUserAccountIdForSystem)
 
| 16 || [10.0.0+] [[#QueryApplicationPlayStatisticsByUserAccountIdForSystemV0]] ([6.0.0-9.2.0] QueryApplicationPlayStatisticsByUserAccountIdForSystem)
 
|-
 
|-
| 17 || [10.0.0+] QueryLastPlayTime
+
| 17 || [10.0.0+] [[#QueryLastPlayTime]]
 
|-
 
|-
| 18 || [10.0.0+] QueryApplicationPlayStatisticsForSystem
+
| 18 || [10.0.0+] [[#QueryApplicationPlayStatisticsForSystem]]
 
|-
 
|-
 
| 19 || [10.0.0+] QueryApplicationPlayStatisticsByUserAccountIdForSystem
 
| 19 || [10.0.0+] QueryApplicationPlayStatisticsByUserAccountIdForSystem
Line 374: Line 374:  
== QueryLastPlayTimeV0 ==
 
== QueryLastPlayTimeV0 ==
 
Takes a type-0x6 output buffer containing an array of [[#LastPlayTime]], and a type-0x5 input buffer containing an array of u64 '''ApplicationId'''. Returns an output s32 for actual total output entries.
 
Takes a type-0x6 output buffer containing an array of [[#LastPlayTime]], and a type-0x5 input buffer containing an array of u64 '''ApplicationId'''. Returns an output s32 for actual total output entries.
 +
 +
[10.0.0+] This now calls the impl func for [[#QueryLastPlayTime]] with flag=0.
    
== QueryPlayEvent ==
 
== QueryPlayEvent ==
Line 394: Line 396:     
The number of entries in each array is the same.
 
The number of entries in each array is the same.
 +
 +
[10.0.0+] This now calls the impl func for [[#QueryApplicationPlayStatisticsForSystem]] with flag=0.
    
== QueryRecentlyPlayedApplication ==
 
== QueryRecentlyPlayedApplication ==
Line 411: Line 415:     
Same as [[#QueryApplicationPlayStatisticsForSystem]] except this gets playstats specific to '''Uid'''.
 
Same as [[#QueryApplicationPlayStatisticsForSystem]] except this gets playstats specific to '''Uid'''.
 +
 +
== QueryLastPlayTime ==
 +
Takes an input u8 bool, a type-0x6 output buffer containing an array of [[#LastPlayTime]], and a type-0x5 input buffer containing an array of u64 '''ApplicationId'''. Returns an output s32 for actual total output entries.
 +
 +
== QueryApplicationPlayStatisticsForSystem ==
 +
Takes an input u8 bool, a type-0x6 output buffer containing an array of [[#ApplicationPlayStatistics]] and a type-0x5 input buffer containing an array of u64 '''ApplicationId'''. Returns an output s32 for actual total output entries.
 +
 +
The number of entries in each array is the same.
    
= avm =
 
= avm =
Line 619: Line 631:     
Filtering:
 
Filtering:
* [[#QueryAppletEvent]], [[#QueryLastPlayTime]], and [[#QueryApplicationPlayStatisticsForSystem]]: PlayEvent +0x1C must be 0, +0xC must be 1, and [[#PlayLogPolicy]] must be 0. [10.0.0+] [[#QueryAppletEvent]] will also allow [[#PlayLogPolicy]] value 3, if the input flag is set.
+
* [[#QueryAppletEvent]], [[#QueryLastPlayTime]], and [[#QueryApplicationPlayStatisticsForSystem]]: PlayEvent +0x1C must be 0, and [[#PlayLogPolicy]] must be 0. [10.0.0+] These will also allow [[#PlayLogPolicy]] value 3, if the input flag is set.
 +
** With [[#QueryLastPlayTime]]/[[#QueryApplicationPlayStatisticsForSystem]] the [[Applet_Manager_services#AppletId|AppletId]] must be 1. [10.0.0+] These now also allow [[Applet_Manager_services#AppletId|AppletId]] 0x1F/0x20.
 
* [[#QueryPlayStatisticsByApplicationId]]: PlayEvent +0x1C must be 0, +0xC must be 1 ([10.0.0+] or 0x1F/0x20), and the titleID must match. [10.0.0+] [[#PlayLogPolicy]] must be 0. Value 3 is allowed if the input flag is set.
 
* [[#QueryPlayStatisticsByApplicationId]]: PlayEvent +0x1C must be 0, +0xC must be 1 ([10.0.0+] or 0x1F/0x20), and the titleID must match. [10.0.0+] [[#PlayLogPolicy]] must be 0. Value 3 is allowed if the input flag is set.
 
* [[#QueryAccountEvent]]: PlayEvent +0x1C must be 1 and PlayEvent +0x18 must be <=1.
 
* [[#QueryAccountEvent]]: PlayEvent +0x1C must be 1 and PlayEvent +0x18 must be <=1.