From 20fd5bb9a21cd0c8bcea0cc7cc84640f8de714e6 Mon Sep 17 00:00:00 2001 From: yellows8 Date: Mon, 20 Apr 2020 20:05:31 -0400 Subject: [PATCH] nacp: Updated the nacp struct, and added/updated structs for it. --- nx/include/switch/nacp.h | 126 +++++++++++++++++++++------------------ 1 file changed, 69 insertions(+), 57 deletions(-) diff --git a/nx/include/switch/nacp.h b/nx/include/switch/nacp.h index 784581df..0a03c4d5 100644 --- a/nx/include/switch/nacp.h +++ b/nx/include/switch/nacp.h @@ -12,68 +12,80 @@ typedef struct { char author[0x100]; } NacpLanguageEntry; -/// Entry forSendDataConfiguration / ReceivableDataConfiguration. +/// ApplicationNeighborDetectionGroupConfiguration typedef struct { - u64 id; + u64 group_id; ///< GroupId u8 key[0x10]; -} NacpSendReceiveConfiguration; +} NacpApplicationNeighborDetectionGroupConfiguration; + +/// NeighborDetectionClientConfiguration +typedef struct { + NacpApplicationNeighborDetectionGroupConfiguration send_group_configuration; ///< SendGroupConfiguration + NacpApplicationNeighborDetectionGroupConfiguration receivable_group_configurations[0x10]; ///< ReceivableGroupConfigurations +} NacpNeighborDetectionClientConfiguration; + +/// ApplicationJitConfiguration +typedef struct { + u64 flags; ///< Flags + u64 memory_size; ///< MemorySize +} NacpApplicationJitConfiguration; /// ns ApplicationControlProperty typedef struct { - NacpLanguageEntry lang[16]; ///< \ref NacpLanguageEntry - u8 isbn[0x25]; ///< Isbn - u8 startup_user_account; ///< StartupUserAccount - u8 user_account_switch_lock; ///< UserAccountSwitchLock - u8 add_on_content_registration_type; ///< AddOnContentRegistrationType - u32 application_attribute; ///< ApplicationAttribute - u32 supported_languages; ///< SupportedLanguages - u32 parental_control; ///< ParentalControl - u8 screenshot; ///< Screenshot - u8 video_capture_mode; ///< VideoCaptureMode - u8 data_loss_confirmation; ///< DataLossConfirmation - u8 play_log_policy; ///< PlayLogPolicy - u64 presence_group_id; ///< PresenceGroupId - s8 rating_age[0x20]; ///< RatingAge - char display_version[0x10]; ///< DisplayVersion - u64 add_on_content_base_id; ///< AddOnContentBaseId - u64 save_data_owner_id; ///< SaveDataOwnerId - u64 user_account_save_data_size; ///< UserAccountSaveDataSize - u64 user_account_save_data_journal_size; ///< UserAccountSaveDataJournalSize - u64 device_save_data_size; ///< DeviceSaveDataSize - u64 device_save_data_journal_size; ///< DeviceSaveDataJournalSize - u64 bcat_delivery_cache_storage_size; ///< BcatDeliveryCacheStorageSize - u64 application_error_code_category; ///< ApplicationErrorCodeCategory - u64 local_communication_ids[0x8]; ///< LocalCommunicationIds - u8 logo_type; ///< LogoType - u8 logo_handling; ///< LogoHandling - u8 runtime_add_on_content_install; ///< RuntimeAddOnContentInstall - u8 reserved_x30f3[0x3]; ///< Reserved - u8 crash_report; ///< CrashReport - u8 hdcp; ///< Hdcp - u64 pseudo_device_id_seed; ///< SeedForPseudoDeviceId - char bcat_passphrase[0x41]; ///< BcatPassphrase - u8 startup_user_account_option; ///< StartupUserAccountOption - u8 reserved_for_user_account_save_data_operation[0x6]; ///< ReservedForUserAccountSaveDataOperation - u64 user_account_save_data_max_size; ///< UserAccountSaveDataMaxSize - u64 user_account_save_data_max_journal_size; ///< UserAccountSaveDataMaxJournalSize - u64 device_save_data_max_size; ///< DeviceSaveDataMaxSize - u64 device_save_data_max_journal_size; ///< DeviceSaveDataMaxJournalSize - u64 temporary_storage_size; ///< TemporaryStorageSize - u64 cache_storage_size; ///< CacheStorageSize - u64 cache_storage_journal_size; ///< CacheStorageJournalSize - u64 cache_storage_and_journal_max_size; ///< CacheStorageMaxSizeAndMaxJournalSize - u64 cache_storage_max_index; ///< CacheStorageMaxIndex - u64 play_log_queryable_application_id[0x10]; ///< PlayLogQueryableApplicationId - u8 play_log_query_capability; ///< PlayLogQueryCapability - u8 repair_flag; ///< RepairFlag - u8 program_index; ///< ProgramIndex - u8 required_network_service_license_on_launch; ///< RequiredNetworkServiceLicenseOnLaunchFlag - u32 reserved_x3214; ///< Reserved - NacpSendReceiveConfiguration send_data_configuration; ///< SendDataConfiguration - NacpSendReceiveConfiguration receivable_data_configurations[0x10]; ///< ReceivableDataConfigurations - u64 jit_configuration_flag; ///< JitConfigurationFlag - u64 memory_size; ///< MemorySize - u8 reserved_x33c0[0xc40]; ///< Reserved + NacpLanguageEntry lang[16]; ///< \ref NacpLanguageEntry + u8 isbn[0x25]; ///< Isbn + u8 startup_user_account; ///< StartupUserAccount + u8 user_account_switch_lock; ///< UserAccountSwitchLock + u8 add_on_content_registration_type; ///< AddOnContentRegistrationType + u32 attribute_flag; ///< AttributeFlag + u32 supported_language_flag; ///< SupportedLanguageFlag + u32 parental_control_flag; ///< ParentalControlFlag + u8 screenshot; ///< Screenshot + u8 video_capture; ///< VideoCapture + u8 data_loss_confirmation; ///< DataLossConfirmation + u8 play_log_policy; ///< PlayLogPolicy + u64 presence_group_id; ///< PresenceGroupId + s8 rating_age[0x20]; ///< RatingAge + char display_version[0x10]; ///< DisplayVersion + u64 add_on_content_base_id; ///< AddOnContentBaseId + u64 save_data_owner_id; ///< SaveDataOwnerId + u64 user_account_save_data_size; ///< UserAccountSaveDataSize + u64 user_account_save_data_journal_size; ///< UserAccountSaveDataJournalSize + u64 device_save_data_size; ///< DeviceSaveDataSize + u64 device_save_data_journal_size; ///< DeviceSaveDataJournalSize + u64 bcat_delivery_cache_storage_size; ///< BcatDeliveryCacheStorageSize + u64 application_error_code_category; ///< ApplicationErrorCodeCategory + u64 local_communication_id[0x8]; ///< LocalCommunicationId + u8 logo_type; ///< LogoType + u8 logo_handling; ///< LogoHandling + u8 runtime_add_on_content_install; ///< RuntimeAddOnContentInstall + u8 runtime_parameter_delivery; ///< RuntimeParameterDelivery + u8 reserved_x30f4[0x2]; ///< Reserved + u8 crash_report; ///< CrashReport + u8 hdcp; ///< Hdcp + u64 pseudo_device_id_seed; ///< SeedForPseudoDeviceId + char bcat_passphrase[0x41]; ///< BcatPassphrase + u8 startup_user_account_option; ///< StartupUserAccountOption + u8 reserved_for_user_account_save_data_operation[0x6]; ///< ReservedForUserAccountSaveDataOperation + u64 user_account_save_data_size_max; ///< UserAccountSaveDataSizeMax + u64 user_account_save_data_journal_size_max; ///< UserAccountSaveDataJournalSizeMax + u64 device_save_data_size_max; ///< DeviceSaveDataSizeMax + u64 device_save_data_journal_size_max; ///< DeviceSaveDataJournalSizeMax + u64 temporary_storage_size; ///< TemporaryStorageSize + u64 cache_storage_size; ///< CacheStorageSize + u64 cache_storage_journal_size; ///< CacheStorageJournalSize + u64 cache_storage_data_and_journal_size_max; ///< CacheStorageDataAndJournalSizeMax + u16 cache_storage_index_max; ///< CacheStorageIndexMax + u8 reserved_x318a[0x6]; ///< Reserved + u64 play_log_queryable_application_id[0x10]; ///< PlayLogQueryableApplicationId + u8 play_log_query_capability; ///< PlayLogQueryCapability + u8 repair_flag; ///< RepairFlag + u8 program_index; ///< ProgramIndex + u8 required_network_service_license_on_launch; ///< RequiredNetworkServiceLicenseOnLaunchFlag + u32 reserved_x3214; ///< Reserved + NacpNeighborDetectionClientConfiguration neighbor_detection_client_configuration; ///< NeighborDetectionClientConfiguration + NacpApplicationJitConfiguration jit_configuration; ///< JitConfiguration + u8 reserved_x33c0[0xc40]; ///< Reserved } NacpStruct; /// Get the NacpLanguageEntry from the input nacp corresponding to the current system language (this may fallback to other languages when needed). Output langentry is NULL if none found / content of entry is empty.