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. |