mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2025-05-03 04:27:56 +02:00
96 lines
7.4 KiB
C++
96 lines
7.4 KiB
C++
/**
|
|
* @file nacp.h
|
|
* @brief Control.nacp structure / related code for nacp.
|
|
* @copyright libnx Authors
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "thirdparty/libnx/types.h"
|
|
|
|
/// Language entry. These strings are UTF-8.
|
|
typedef struct {
|
|
char name[0x200];
|
|
char author[0x100];
|
|
} NacpLanguageEntry;
|
|
|
|
/// ApplicationNeighborDetectionGroupConfiguration
|
|
typedef struct {
|
|
u64 group_id; ///< GroupId
|
|
u8 key[0x10];
|
|
} 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 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.
|
|
/// If you're using ns you may want to use \ref nsGetApplicationDesiredLanguage instead.
|
|
Result nacpGetLanguageEntry(NacpStruct* nacp, NacpLanguageEntry** langentry);
|