mirror of
https://github.com/jakcron/nstool
synced 2024-11-15 02:06:40 +00:00
[nx] Add nacp.h
This commit is contained in:
parent
c50e93d181
commit
0eb0ba5fa4
1 changed files with 215 additions and 0 deletions
215
lib/libnx/include/nx/nacp.h
Normal file
215
lib/libnx/include/nx/nacp.h
Normal file
|
@ -0,0 +1,215 @@
|
|||
#pragma once
|
||||
#include <string>
|
||||
#include <fnd/types.h>
|
||||
#include <crypto/aes.h>
|
||||
#include <crypto/sha.h>
|
||||
#include <fnd/ISerialiseableBinary.h>
|
||||
|
||||
namespace nx
|
||||
{
|
||||
namespace nacp
|
||||
{
|
||||
enum AddOnContentRegistrationTypeValue
|
||||
{
|
||||
AOC_AllOnLaunch,
|
||||
AOC_OnDemand
|
||||
};
|
||||
|
||||
enum AttributeFlagValue
|
||||
{
|
||||
ATTR_None,
|
||||
ATTR_Demo,
|
||||
ATTR_RetailInteractiveDisplay
|
||||
};
|
||||
|
||||
enum CrashReportValue
|
||||
{
|
||||
CREP_Deny,
|
||||
CREP_Allow
|
||||
};
|
||||
|
||||
enum DataLossConfirmationValue
|
||||
{
|
||||
DLOSS_None,
|
||||
DLOSS_Required
|
||||
};
|
||||
|
||||
enum HdcpValue
|
||||
{
|
||||
HDCP_None,
|
||||
HDCP_Required
|
||||
}
|
||||
|
||||
enum Langauge
|
||||
{
|
||||
AmericanEnglish,
|
||||
BritishEnglish,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
LatinAmericanSpanish,
|
||||
Spanish,
|
||||
Italian,
|
||||
Dutch,
|
||||
CanadianFrench,
|
||||
Portuguese,
|
||||
Russian,
|
||||
Korean,
|
||||
TraditionalChinese,
|
||||
SimplifiedChinese
|
||||
};
|
||||
|
||||
enum LogoHandlingValue
|
||||
{
|
||||
LHND_Auto,
|
||||
LHND_None
|
||||
};
|
||||
|
||||
enum LogoTypeValue
|
||||
{
|
||||
LOGO_LicensedByNintendo,
|
||||
LOGO_Nintendo = 2
|
||||
};
|
||||
|
||||
enum Organisation
|
||||
{
|
||||
CERO,
|
||||
GRACGCRB,
|
||||
GSRMR,
|
||||
ESRB,
|
||||
ClassInd,
|
||||
USK,
|
||||
PEGI,
|
||||
PEGIPortugal,
|
||||
PEGIBBFC,
|
||||
Russian,
|
||||
ACB,
|
||||
OFLC
|
||||
};
|
||||
|
||||
enum ParentalControlFlagValue
|
||||
{
|
||||
PC_None,
|
||||
PC_FreeCommunication
|
||||
};
|
||||
|
||||
enum PlayLogPolicyValue
|
||||
{
|
||||
PLP_All,
|
||||
PLP_LogOnly,
|
||||
PLP_None
|
||||
};
|
||||
|
||||
enum PlayLogQueryCapabilityValue
|
||||
{
|
||||
PLQC_None,
|
||||
PLQC_Whitelist,
|
||||
PLQC_All
|
||||
};
|
||||
|
||||
enum RepairFlagValue
|
||||
{
|
||||
REPF_None,
|
||||
REPF_SuppressGameCardAccess
|
||||
};
|
||||
|
||||
enum RuntimeAddOnContentInstallValue
|
||||
{
|
||||
RTAOC_Deny,
|
||||
RTAOC_AllowAppend
|
||||
};
|
||||
|
||||
enum ScreenshotValue
|
||||
{
|
||||
SCRN_Allow,
|
||||
SCRN_Deny
|
||||
};
|
||||
|
||||
enum StartupUserAccountValue
|
||||
{
|
||||
USER_None,
|
||||
USER_Required,
|
||||
USER_RequiredWithNetworkServiceAccountAvailable
|
||||
};
|
||||
|
||||
enum VideoCaptureValue
|
||||
{
|
||||
VCAP_Disable,
|
||||
VCAP_Manual,
|
||||
VCAP_Enable
|
||||
};
|
||||
|
||||
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 kReservedForUserAccountSaveDataOperationLength = 6;
|
||||
static const size_t kPlayLogQueryableApplicationIdCount = 16;
|
||||
}
|
||||
|
||||
|
||||
#pragma pack(push,1)
|
||||
struct sApplicationTitle
|
||||
{
|
||||
char name[nacp::kNameLength];
|
||||
char publisher[nacp::kPublisherLength];
|
||||
}
|
||||
|
||||
struct sApplicationControlProperty
|
||||
{
|
||||
sApplicationTitle title[nacp::kMaxLanguageCount];
|
||||
byte_t isbn[nacp::kIsbnLength]
|
||||
byte_t startup_user_account;
|
||||
byte_t reserved_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;
|
||||
byte_t application_error_code_category[nacp::kApplicationErrorCodeCategoryLength];
|
||||
le_uint64_t local_communication_id[nacp::kLocalCommunicationIdCount];
|
||||
byte_t logo_type;
|
||||
byte_t logo_handling;
|
||||
byte_t runtime_add_on_content_install;
|
||||
byte_t reserved_01[3];
|
||||
byte_t crash_report;
|
||||
byte_t hdcp;
|
||||
le_uint64_t seed_for_pseudo_device_id;
|
||||
byte_t bcat_passphrase[nacp::kBcatPassphraseLength];
|
||||
byte_t reserved_02;
|
||||
byte_t reserved_for_user_account_save_data_operation[nacp::kReservedForUserAccountSaveDataOperationLength];
|
||||
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;
|
||||
le_uint64_t play_log_queryable_application_id[kPlayLogQueryableApplicationIdCount];
|
||||
byte_t play_log_query_capability;
|
||||
byte_t repair_flag;
|
||||
byte_t program_index;
|
||||
byte_t reserved_03[0xDED];
|
||||
};
|
||||
#pragma pack(pop)
|
||||
}
|
Loading…
Reference in a new issue