nstool/lib/libnx/include/nx/nacp.h

220 lines
4.4 KiB
C
Raw Normal View History

2018-06-11 07:40:37 +00:00
#pragma once
#include <fnd/types.h>
namespace nx
{
namespace nacp
{
2018-06-29 07:09:05 +00:00
static const size_t kNameLength = 0x200;
static const size_t kPublisherLength = 0x100;
static const size_t kMaxLanguageCount = 16;
static const size_t kIsbnLength = 37;
static const size_t kRatingAgeCount = 32;
static const size_t kDisplayVersionLength = 16;
static const size_t kApplicationErrorCodeCategoryLength = 8;
static const size_t kLocalCommunicationIdCount = 8;
static const size_t kBcatPassphraseLength = 65;
static const size_t kPlayLogQueryableApplicationIdCount = 16;
static const int8_t kUnusedAgeRating = -1;
2018-06-11 15:00:11 +00:00
enum AocRegistrationType
2018-06-11 07:40:37 +00:00
{
AOC_AllOnLaunch,
AOC_OnDemand
};
2018-06-11 15:00:11 +00:00
enum AttributeFlag
2018-06-11 07:40:37 +00:00
{
ATTR_None,
ATTR_Demo,
ATTR_RetailInteractiveDisplay
};
2018-06-11 15:00:11 +00:00
enum CrashReportMode
2018-06-11 07:40:37 +00:00
{
CREP_Deny,
CREP_Allow
};
2018-06-11 15:00:11 +00:00
enum DataLossConfirmation
2018-06-11 07:40:37 +00:00
{
DLOSS_None,
DLOSS_Required
};
2018-06-11 15:00:11 +00:00
enum Hdcp
2018-06-11 07:40:37 +00:00
{
HDCP_None,
HDCP_Required
2018-06-11 15:00:11 +00:00
};
2018-06-11 07:40:37 +00:00
2018-06-11 15:00:11 +00:00
enum Language
2018-06-11 07:40:37 +00:00
{
2018-06-11 15:00:11 +00:00
LANG_AmericanEnglish,
LANG_BritishEnglish,
LANG_Japanese,
LANG_French,
LANG_German,
LANG_LatinAmericanSpanish,
LANG_Spanish,
LANG_Italian,
LANG_Dutch,
LANG_CanadianFrench,
LANG_Portuguese,
LANG_Russian,
LANG_Korean,
LANG_TraditionalChinese,
LANG_SimplifiedChinese
2018-06-11 07:40:37 +00:00
};
2018-06-11 15:00:11 +00:00
enum LogoHandling
2018-06-11 07:40:37 +00:00
{
LHND_Auto,
LHND_None
};
2018-06-11 15:00:11 +00:00
enum LogoType
2018-06-11 07:40:37 +00:00
{
LOGO_LicensedByNintendo,
2018-06-11 15:00:11 +00:00
LOGO_DistributedByNintendo,
LOGO_Nintendo
2018-06-11 07:40:37 +00:00
};
enum Organisation
{
2018-06-11 15:00:11 +00:00
ORGN_CERO,
ORGN_GRACGCRB,
ORGN_GSRMR,
ORGN_ESRB,
ORGN_ClassInd,
ORGN_USK,
ORGN_PEGI,
ORGN_PEGIPortugal,
ORGN_PEGIBBFC,
ORGN_Russian,
ORGN_ACB,
ORGN_OFLC
2018-06-11 07:40:37 +00:00
};
2018-06-11 15:00:11 +00:00
enum ParentalControlFlag
2018-06-11 07:40:37 +00:00
{
PC_None,
PC_FreeCommunication
};
2018-06-11 15:00:11 +00:00
enum PlayLogPolicy
2018-06-11 07:40:37 +00:00
{
PLP_All,
PLP_LogOnly,
PLP_None
};
2018-06-11 15:00:11 +00:00
enum PlayLogQueryCapability
2018-06-11 07:40:37 +00:00
{
PLQC_None,
PLQC_Whitelist,
PLQC_All
};
2018-06-11 15:00:11 +00:00
enum RepairFlag
2018-06-11 07:40:37 +00:00
{
REPF_None,
REPF_SuppressGameCardAccess
};
2018-06-11 15:00:11 +00:00
enum RuntimeAocInstallMode
2018-06-11 07:40:37 +00:00
{
RTAOC_Deny,
RTAOC_AllowAppend
};
2018-06-11 15:00:11 +00:00
enum ScreenshotMode
2018-06-11 07:40:37 +00:00
{
SCRN_Allow,
SCRN_Deny
};
2018-06-11 15:00:11 +00:00
enum StartupUserAccount
2018-06-11 07:40:37 +00:00
{
USER_None,
USER_Required,
USER_RequiredWithNetworkServiceAccountAvailable
};
2018-06-11 15:00:11 +00:00
enum TouchScreenUsageMode
{
TOUCH_None,
TOUCH_Supported,
TOUCH_Required,
};
enum VideoCaptureMode
2018-06-11 07:40:37 +00:00
{
VCAP_Disable,
VCAP_Manual,
VCAP_Enable
};
}
#pragma pack(push,1)
struct sApplicationTitle
{
char name[nacp::kNameLength];
char publisher[nacp::kPublisherLength];
2018-06-11 15:00:11 +00:00
};
2018-06-11 07:40:37 +00:00
struct sApplicationControlProperty
{
sApplicationTitle title[nacp::kMaxLanguageCount];
2018-06-11 15:00:11 +00:00
char isbn[nacp::kIsbnLength];
2018-06-11 07:40:37 +00:00
byte_t startup_user_account;
2018-06-11 15:00:11 +00:00
byte_t touch_screen_usage;
2018-06-11 07:40:37 +00:00
byte_t add_on_content_registration_type;
le_uint32_t attribute_flag;
le_uint32_t supported_language_flag;
le_uint32_t parental_control_flag;
byte_t screenshot;
byte_t video_capture;
byte_t data_loss_confirmation;
byte_t play_log_policy;
le_uint64_t presence_group_id;
int8_t rating_age[nacp::kRatingAgeCount];
char display_version[nacp::kDisplayVersionLength];
le_uint64_t add_on_content_base_id;
le_uint64_t save_data_owner_id;
le_uint64_t user_account_save_data_size;
le_uint64_t user_account_save_data_journal_size;
le_uint64_t device_save_data_size;
le_uint64_t device_save_data_journal_size;
le_uint64_t bcat_delivery_cache_storage_size;
2018-06-11 15:00:11 +00:00
char application_error_code_category[nacp::kApplicationErrorCodeCategoryLength];
2018-06-11 07:40:37 +00:00
le_uint64_t local_communication_id[nacp::kLocalCommunicationIdCount];
byte_t logo_type;
byte_t logo_handling;
byte_t runtime_add_on_content_install;
2018-06-11 15:00:11 +00:00
byte_t reserved_00[3];
2018-06-11 07:40:37 +00:00
byte_t crash_report;
byte_t hdcp;
le_uint64_t seed_for_pseudo_device_id;
2018-06-11 15:00:11 +00:00
char bcat_passphrase[nacp::kBcatPassphraseLength];
byte_t reserved_01;
byte_t reserved_02[6]; //reserved_for_user_account_save_data_operation
2018-06-11 07:40:37 +00:00
le_uint64_t user_account_save_data_size_max;
le_uint64_t user_account_save_data_journal_size_max;
le_uint64_t device_save_data_size_max;
le_uint64_t device_save_data_journal_size_max;
le_uint64_t temporary_storage_size;
le_uint64_t cache_storage_size;
le_uint64_t cache_storage_journal_size;
le_uint64_t cache_storage_data_and_journal_size_max;
le_uint16_t cache_storage_index;
2018-06-11 15:00:11 +00:00
byte_t reserved_03[6];
le_uint64_t play_log_queryable_application_id[nacp::kPlayLogQueryableApplicationIdCount];
2018-06-11 07:40:37 +00:00
byte_t play_log_query_capability;
byte_t repair_flag;
byte_t program_index;
2018-06-11 15:00:11 +00:00
byte_t reserved_04[0xDED];
2018-06-11 07:40:37 +00:00
};
#pragma pack(pop)
}