mirror of
https://github.com/DarkMatterCore/nxdumptool.git
synced 2024-11-26 04:02:11 +00:00
Update AuthoringTool XML generation to SDK 13.0.0.
Big thanks to @0Liam
This commit is contained in:
parent
cd300fe149
commit
de1ba425a1
5 changed files with 101 additions and 64 deletions
|
@ -36,7 +36,7 @@ extern "C" {
|
|||
typedef enum {
|
||||
ContentMetaAttribute_IncludesExFatDriver = BIT(0),
|
||||
ContentMetaAttribute_Rebootless = BIT(1),
|
||||
ContentMetaAttribute_Compacted = BIT(2),
|
||||
ContentMetaAttribute_Compacted = BIT(2), ///< One or more NCAs use SparseInfo data.
|
||||
ContentMetaAttribute_Count = 3 ///< Total values supported by this enum.
|
||||
} ContentMetaAttribute;
|
||||
|
||||
|
|
|
@ -216,6 +216,12 @@ typedef enum {
|
|||
NacpRuntimeParameterDelivery_Count = 3 ///< Total values supported by this enum.
|
||||
} NacpRuntimeParameterDelivery;
|
||||
|
||||
typedef enum {
|
||||
NacpUndecidedParameter75b8b_A = 0,
|
||||
NacpUndecidedParameter75b8b_B = 1,
|
||||
NacpUndecidedParameter75b8b_Count = 2 ///< Total values supported by this enum.
|
||||
} NacpUndecidedParameter75b8b;
|
||||
|
||||
typedef enum {
|
||||
NacpCrashReport_Deny = 0,
|
||||
NacpCrashReport_Allow = 1,
|
||||
|
@ -329,7 +335,8 @@ typedef struct {
|
|||
u8 logo_handling; ///< NacpLogoHandling.
|
||||
u8 runtime_add_on_content_install; ///< NacpRuntimeAddOnContentInstall.
|
||||
u8 runtime_parameter_delivery; ///< NacpRuntimeParameterDelivery.
|
||||
u8 reserved_1[0x2];
|
||||
u8 undecided_parameter_75b8b; ///< NacpUndecidedParameter75b8b.
|
||||
u8 reserved_1;
|
||||
u8 crash_report; ///< NacpCrashReport.
|
||||
u8 hdcp; ///< NacpHdcp.
|
||||
u64 seed_for_pseudo_device_id;
|
||||
|
@ -423,6 +430,7 @@ const char *nacpGetLogoTypeString(u8 logo_type);
|
|||
const char *nacpGetLogoHandlingString(u8 logo_handling);
|
||||
const char *nacpGetRuntimeAddOnContentInstallString(u8 runtime_add_on_content_install);
|
||||
const char *nacpGetRuntimeParameterDeliveryString(u8 runtime_parameter_delivery);
|
||||
const char *nacpGetUndecidedParameter75b8bString(u8 undecided_parameter_75b8b);
|
||||
const char *nacpGetCrashReportString(u8 crash_report);
|
||||
const char *nacpGetHdcpString(u8 hdcp);
|
||||
const char *nacpGetStartupUserAccountOptionString(u8 startup_user_account_option);
|
||||
|
|
|
@ -83,7 +83,8 @@ typedef enum {
|
|||
NcaKeyGeneration_Since900NUP = 10, ///< 9.0.0 - 9.0.1.
|
||||
NcaKeyGeneration_Since910NUP = 11, ///< 9.1.0 - 12.0.3.
|
||||
NcaKeyGeneration_Since1210NUP = 12, ///< 12.1.0.
|
||||
NcaKeyGeneration_Current = NcaKeyGeneration_Since1210NUP,
|
||||
NcaKeyGeneration_Since1300NUP = 13, ///< 13.0.0.
|
||||
NcaKeyGeneration_Current = NcaKeyGeneration_Since1300NUP,
|
||||
NcaKeyGeneration_Max = 32
|
||||
} NcaKeyGeneration;
|
||||
|
||||
|
@ -97,7 +98,7 @@ typedef enum {
|
|||
/// 'NcaMainSignatureKeyGeneration_Current' will always point to the last known key generation value.
|
||||
typedef enum {
|
||||
NcaMainSignatureKeyGeneration_Since100NUP = 0, ///< 1.0.0 - 8.1.1.
|
||||
NcaMainSignatureKeyGeneration_Since900NUP = 1, ///< 9.0.0 - 12.1.0.
|
||||
NcaMainSignatureKeyGeneration_Since900NUP = 1, ///< 9.0.0 - 13.0.0.
|
||||
NcaMainSignatureKeyGeneration_Current = NcaMainSignatureKeyGeneration_Since900NUP,
|
||||
NcaMainSignatureKeyGeneration_Max = (NcaMainSignatureKeyGeneration_Current + 1)
|
||||
} NcaMainSignatureKeyGeneration;
|
||||
|
|
|
@ -131,12 +131,17 @@ static const char *g_nacpRuntimeAddOnContentInstallStrings[NacpRuntimeAddOnConte
|
|||
"AllowAppendButDontDownloadWhenUsingNetwork"
|
||||
};
|
||||
|
||||
static const char *g_nacpNacpRuntimeParameterDeliveryStrings[NacpRuntimeParameterDelivery_Count] = {
|
||||
static const char *g_nacpRuntimeParameterDeliveryStrings[NacpRuntimeParameterDelivery_Count] = {
|
||||
"Always",
|
||||
"AlwaysIfUserStateMatched",
|
||||
"OnRestart"
|
||||
};
|
||||
|
||||
static const char *g_nacpUndecidedParameter75b8bStrings[NacpUndecidedParameter75b8b_Count] = {
|
||||
"a",
|
||||
"b"
|
||||
};
|
||||
|
||||
static const char *g_nacpCrashReportStrings[NacpCrashReport_Count] = {
|
||||
"Deny",
|
||||
"Allow"
|
||||
|
@ -166,13 +171,13 @@ static const char *g_nacpRequiredNetworkServiceLicenseOnLaunchStrings[NacpRequir
|
|||
};
|
||||
|
||||
static const char *g_nacpJitConfigurationFlagStrings[NacpJitConfigurationFlag_Count] = {
|
||||
"None",
|
||||
"Enabled"
|
||||
"false",
|
||||
"true"
|
||||
};
|
||||
|
||||
static const char *g_nacpPlayReportPermissionStrings[NacpPlayReportPermission_Count] = {
|
||||
"None",
|
||||
"TargetMarketing"
|
||||
"Deny",
|
||||
"Allow"
|
||||
};
|
||||
|
||||
static const char *g_nacpCrashScreenshotForProdStrings[NacpCrashScreenshotForProd_Count] = {
|
||||
|
@ -192,9 +197,9 @@ NX_INLINE bool nacpCheckBitflagField(const void *flag, u8 flag_bitcount, u8 idx)
|
|||
static bool nacpAddStringFieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, const char *value);
|
||||
static bool nacpAddEnumFieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, u8 value, NacpStringFunction str_func);
|
||||
static bool nacpAddBitflagFieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, const void *flag, u8 flag_width, u8 max_flag_idx, NacpStringFunction str_func);
|
||||
static bool nacpAddU16FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, u16 value, bool hex);
|
||||
static bool nacpAddU32FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, u32 value, bool hex);
|
||||
static bool nacpAddU64FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, u64 value, bool hex);
|
||||
static bool nacpAddU16FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, u16 value, bool hex, bool prefix);
|
||||
static bool nacpAddU32FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, u32 value, bool hex, bool prefix);
|
||||
static bool nacpAddU64FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, u64 value, bool hex, bool prefix);
|
||||
|
||||
bool nacpInitializeContext(NacpContext *out, NcaContext *nca_ctx)
|
||||
{
|
||||
|
@ -496,7 +501,7 @@ bool nacpGenerateAuthoringToolXml(NacpContext *nacp_ctx, u32 version, u32 requir
|
|||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "VideoCapture", nacp->video_capture, &nacpGetVideoCaptureString)) goto end;
|
||||
|
||||
/* PresenceGroupId. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "PresenceGroupId", nacp->presence_group_id, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "PresenceGroupId", nacp->presence_group_id, true, true)) goto end;
|
||||
|
||||
/* DisplayVersion. */
|
||||
if (!nacpAddStringFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "DisplayVersion", nacp->display_version)) goto end;
|
||||
|
@ -527,31 +532,34 @@ bool nacpGenerateAuthoringToolXml(NacpContext *nacp_ctx, u32 version, u32 requir
|
|||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "PlayLogPolicy", nacp->play_log_policy, &nacpGetPlayLogPolicyString)) goto end;
|
||||
|
||||
/* SaveDataOwnerId. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "SaveDataOwnerId", nacp->save_data_owner_id, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "SaveDataOwnerId", nacp->save_data_owner_id, true, true)) goto end;
|
||||
|
||||
/* UserAccountSaveDataSize. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "UserAccountSaveDataSize", (u64)nacp->user_account_save_data_size, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "UserAccountSaveDataSize", (u64)nacp->user_account_save_data_size, true, true)) goto end;
|
||||
|
||||
/* UserAccountSaveDataJournalSize. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "UserAccountSaveDataJournalSize", (u64)nacp->user_account_save_data_journal_size, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "UserAccountSaveDataJournalSize", (u64)nacp->user_account_save_data_journal_size, true, true)) goto end;
|
||||
|
||||
/* UserAccountSaveDataTotalSize. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "UserAccountSaveDataTotalSize", (u64)(nacp->user_account_save_data_size + nacp->user_account_save_data_journal_size), true, true)) goto end;
|
||||
|
||||
/* DeviceSaveDataSize. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "DeviceSaveDataSize", (u64)nacp->device_save_data_size, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "DeviceSaveDataSize", (u64)nacp->device_save_data_size, true, true)) goto end;
|
||||
|
||||
/* DeviceSaveDataJournalSize. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "DeviceSaveDataJournalSize", (u64)nacp->device_save_data_journal_size, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "DeviceSaveDataJournalSize", (u64)nacp->device_save_data_journal_size, true, true)) goto end;
|
||||
|
||||
/* BcatDeliveryCacheStorageSize. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "BcatDeliveryCacheStorageSize", (u64)nacp->bcat_delivery_cache_storage_size, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "BcatDeliveryCacheStorageSize", (u64)nacp->bcat_delivery_cache_storage_size, true, true)) goto end;
|
||||
|
||||
/* ApplicationErrorCodeCategory. */
|
||||
if (!nacpAddStringFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "ApplicationErrorCodeCategory", nacp->application_error_code_category)) goto end;
|
||||
|
||||
/* AddOnContentBaseId. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "AddOnContentBaseId", nacp->add_on_content_base_id, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "AddOnContentBaseId", nacp->add_on_content_base_id, true, true)) goto end;
|
||||
|
||||
/* Version. */
|
||||
if (!nacpAddU32FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "Version", version, false)) goto end;
|
||||
if (!nacpAddU32FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "Version", version, false, false)) goto end;
|
||||
|
||||
/* ReleaseVersion and PrivateVersion. Unused but kept anyway. */
|
||||
if (!utilsAppendFormattedStringToBuffer(&xml_buf, &xml_buf_size, \
|
||||
|
@ -562,13 +570,13 @@ bool nacpGenerateAuthoringToolXml(NacpContext *nacp_ctx, u32 version, u32 requir
|
|||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "LogoType", nacp->logo_type, &nacpGetLogoTypeString)) goto end;
|
||||
|
||||
/* RequiredSystemVersion. */
|
||||
if (!nacpAddU32FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "RequiredSystemVersion", required_system_version, false)) goto end;
|
||||
if (!nacpAddU32FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "RequiredSystemVersion", required_system_version, false, false)) goto end;
|
||||
|
||||
/* LocalCommunicationId. */
|
||||
for(i = 0, count = 0; i < 0x8; i++)
|
||||
{
|
||||
if (!nacp->local_communication_id[i]) continue;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "LocalCommunicationId", nacp->local_communication_id[i], true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "LocalCommunicationId", nacp->local_communication_id[i], true, true)) goto end;
|
||||
count++;
|
||||
}
|
||||
|
||||
|
@ -612,7 +620,7 @@ bool nacpGenerateAuthoringToolXml(NacpContext *nacp_ctx, u32 version, u32 requir
|
|||
" <AccessibleUrlsFilePath />\n")) goto end;
|
||||
|
||||
/* SeedForPseudoDeviceId. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "SeedForPseudoDeviceId", nacp->seed_for_pseudo_device_id, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "SeedForPseudoDeviceId", nacp->seed_for_pseudo_device_id, true, false)) goto end;
|
||||
|
||||
/* BcatPassphrase. */
|
||||
if (!nacpAddStringFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "BcatPassphrase", nacp->bcat_passphrase)) goto end;
|
||||
|
@ -621,31 +629,31 @@ bool nacpGenerateAuthoringToolXml(NacpContext *nacp_ctx, u32 version, u32 requir
|
|||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "AddOnContentRegistrationType", nacp->add_on_content_registration_type, &nacpGetAddOnContentRegistrationTypeString)) goto end;
|
||||
|
||||
/* UserAccountSaveDataSizeMax. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "UserAccountSaveDataSizeMax", (u64)nacp->user_account_save_data_size_max, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "UserAccountSaveDataSizeMax", (u64)nacp->user_account_save_data_size_max, true, true)) goto end;
|
||||
|
||||
/* UserAccountSaveDataJournalSizeMax. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "UserAccountSaveDataJournalSizeMax", (u64)nacp->user_account_save_data_journal_size_max, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "UserAccountSaveDataJournalSizeMax", (u64)nacp->user_account_save_data_journal_size_max, true, true)) goto end;
|
||||
|
||||
/* DeviceSaveDataSizeMax. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "DeviceSaveDataSizeMax", (u64)nacp->device_save_data_size_max, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "DeviceSaveDataSizeMax", (u64)nacp->device_save_data_size_max, true, true)) goto end;
|
||||
|
||||
/* DeviceSaveDataJournalSizeMax. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "DeviceSaveDataJournalSizeMax", (u64)nacp->device_save_data_journal_size_max, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "DeviceSaveDataJournalSizeMax", (u64)nacp->device_save_data_journal_size_max, true, true)) goto end;
|
||||
|
||||
/* TemporaryStorageSize. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "TemporaryStorageSize", (u64)nacp->temporary_storage_size, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "TemporaryStorageSize", (u64)nacp->temporary_storage_size, true, true)) goto end;
|
||||
|
||||
/* CacheStorageSize. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "CacheStorageSize", (u64)nacp->cache_storage_size, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "CacheStorageSize", (u64)nacp->cache_storage_size, true, true)) goto end;
|
||||
|
||||
/* CacheStorageJournalSize. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "CacheStorageJournalSize", (u64)nacp->cache_storage_journal_size, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "CacheStorageJournalSize", (u64)nacp->cache_storage_journal_size, true, true)) goto end;
|
||||
|
||||
/* CacheStorageDataAndJournalSizeMax. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "CacheStorageDataAndJournalSizeMax", (u64)nacp->cache_storage_data_and_journal_size_max, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "CacheStorageDataAndJournalSizeMax", (u64)nacp->cache_storage_data_and_journal_size_max, true, true)) goto end;
|
||||
|
||||
/* CacheStorageIndexMax. */
|
||||
if (!nacpAddU16FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "CacheStorageIndexMax", nacp->cache_storage_index_max, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "CacheStorageIndexMax", (u64)nacp->cache_storage_index_max, true, true)) goto end;
|
||||
|
||||
/* Hdcp. */
|
||||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "Hdcp", nacp->hdcp, &nacpGetHdcpString)) goto end;
|
||||
|
@ -653,6 +661,12 @@ bool nacpGenerateAuthoringToolXml(NacpContext *nacp_ctx, u32 version, u32 requir
|
|||
/* CrashReport. */
|
||||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "CrashReport", nacp->crash_report, &nacpGetCrashReportString)) goto end;
|
||||
|
||||
/* CrashScreenshotForProd. */
|
||||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "CrashScreenshotForProd", nacp->crash_screenshot_for_prod, &nacpGetCrashScreenshotForProdString)) goto end;
|
||||
|
||||
/* CrashScreenshotForDev. */
|
||||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "CrashScreenshotForDev", nacp->crash_screenshot_for_dev, &nacpGetCrashScreenshotForDevString)) goto end;
|
||||
|
||||
/* RuntimeAddOnContentInstall. */
|
||||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "RuntimeAddOnContentInstall", nacp->runtime_add_on_content_install, &nacpGetRuntimeAddOnContentInstallString)) goto end;
|
||||
|
||||
|
@ -660,7 +674,7 @@ bool nacpGenerateAuthoringToolXml(NacpContext *nacp_ctx, u32 version, u32 requir
|
|||
for(i = 0, count = 0; i < 0x10; i++)
|
||||
{
|
||||
if (!nacp->play_log_queryable_application_id[i]) continue;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "PlayLogQueryableApplicationId", nacp->play_log_queryable_application_id[i], true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "PlayLogQueryableApplicationId", nacp->play_log_queryable_application_id[i], true, true)) goto end;
|
||||
count++;
|
||||
}
|
||||
|
||||
|
@ -673,7 +687,7 @@ bool nacpGenerateAuthoringToolXml(NacpContext *nacp_ctx, u32 version, u32 requir
|
|||
if (!nacpAddBitflagFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "Repair", &(nacp->repair), sizeof(nacp->repair), NacpRepair_Count, &nacpGetRepairString)) goto end;
|
||||
|
||||
/* ProgramIndex. */
|
||||
if (!nacpAddU16FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "ProgramIndex", nacp->program_index, false)) goto end;
|
||||
if (!nacpAddU16FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "ProgramIndex", nacp->program_index, false, false)) goto end;
|
||||
|
||||
/* RequiredNetworkServiceLicenseOnLaunch. */
|
||||
if (!nacpAddBitflagFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "RequiredNetworkServiceLicenseOnLaunch", &(nacp->required_network_service_license_on_launch), \
|
||||
|
@ -726,13 +740,19 @@ bool nacpGenerateAuthoringToolXml(NacpContext *nacp_ctx, u32 version, u32 requir
|
|||
|
||||
/* JitConfiguration. */
|
||||
if (!utilsAppendFormattedStringToBuffer(&xml_buf, &xml_buf_size, \
|
||||
" <JitConfiguration>\n" \
|
||||
" <Jit>\n" \
|
||||
" <IsEnabled>%s</IsEnabled>\n" \
|
||||
" <MemorySize>0x%016lx</MemorySize>\n" \
|
||||
" </JitConfiguration>\n", \
|
||||
" <MemorySize>%lu</MemorySize>\n" \
|
||||
" </Jit>\n", \
|
||||
nacpGetJitConfigurationFlagString(nacp->jit_configuration.jit_configuration_flag), \
|
||||
nacp->jit_configuration.memory_size)) goto end;
|
||||
|
||||
/* History. Unused but kept anyway. */
|
||||
if (!utilsAppendFormattedStringToBuffer(&xml_buf, &xml_buf_size, " <History />\n")) goto end;
|
||||
|
||||
/* RuntimeParameterDelivery. */
|
||||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "RuntimeParameterDelivery", nacp->runtime_parameter_delivery, &nacpGetRuntimeParameterDeliveryString)) goto end;
|
||||
|
||||
/* RequiredAddOnContentsSet. */
|
||||
for(i = 0, count = 0; i < 0x20; i++)
|
||||
{
|
||||
|
@ -751,13 +771,11 @@ bool nacpGenerateAuthoringToolXml(NacpContext *nacp_ctx, u32 version, u32 requir
|
|||
if (!count && !utilsAppendFormattedStringToBuffer(&xml_buf, &xml_buf_size, " <RequiredAddOnContentsSet />\n")) goto end;
|
||||
|
||||
/* PlayReportPermission. */
|
||||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "PlayReportPermission", nacp->play_report_permission, &nacpGetPlayReportPermissionString)) goto end;
|
||||
|
||||
/* CrashScreenshotForProd. */
|
||||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "CrashScreenshotForProd", nacp->crash_screenshot_for_prod, &nacpGetCrashScreenshotForProdString)) goto end;
|
||||
|
||||
/* CrashScreenshotForDev. */
|
||||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "CrashScreenshotForDev", nacp->crash_screenshot_for_dev, &nacpGetCrashScreenshotForDevString)) goto end;
|
||||
if (!utilsAppendFormattedStringToBuffer(&xml_buf, &xml_buf_size, \
|
||||
" <PlayReportPermission>\n" \
|
||||
" <TargetMarketing>%s</TargetMarketing>\n" \
|
||||
" </PlayReportPermission>\n", \
|
||||
nacpGetPlayReportPermissionString(nacp->play_report_permission))) goto end;
|
||||
|
||||
/* AccessibleLaunchRequiredVersion. */
|
||||
for(i = 0, count = 0; i < 0x8; i++)
|
||||
|
@ -775,14 +793,11 @@ bool nacpGenerateAuthoringToolXml(NacpContext *nacp_ctx, u32 version, u32 requir
|
|||
|
||||
if (!count && !utilsAppendFormattedStringToBuffer(&xml_buf, &xml_buf_size, " <AccessibleLaunchRequiredVersion />\n")) goto end;
|
||||
|
||||
/* History. Unused but kept anyway. */
|
||||
if (!utilsAppendFormattedStringToBuffer(&xml_buf, &xml_buf_size, " <History />\n")) goto end;
|
||||
|
||||
/* RuntimeParameterDelivery. */
|
||||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "RuntimeParameterDelivery", nacp->runtime_parameter_delivery, &nacpGetRuntimeParameterDeliveryString)) goto end;
|
||||
/* UndecidedParameter75b8b. */
|
||||
if (!nacpAddEnumFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "UndecidedParameter75b8b", nacp->undecided_parameter_75b8b, &nacpGetUndecidedParameter75b8bString)) goto end;
|
||||
|
||||
/* ApplicationId. */
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "ApplicationId", nacp_ctx->nca_ctx->header.program_id, true)) goto end;
|
||||
if (!nacpAddU64FieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "ApplicationId", nacp_ctx->nca_ctx->header.program_id, true, true)) goto end;
|
||||
|
||||
/* FilterDescriptionFilePath. Unused but kept anyway. */
|
||||
if (!utilsAppendFormattedStringToBuffer(&xml_buf, &xml_buf_size, " <FilterDescriptionFilePath />\n")) goto end;
|
||||
|
@ -875,7 +890,12 @@ const char *nacpGetRuntimeAddOnContentInstallString(u8 runtime_add_on_content_in
|
|||
|
||||
const char *nacpGetRuntimeParameterDeliveryString(u8 runtime_parameter_delivery)
|
||||
{
|
||||
return (runtime_parameter_delivery < NacpRuntimeParameterDelivery_Count ? g_nacpNacpRuntimeParameterDeliveryStrings[runtime_parameter_delivery] : g_unknownString);
|
||||
return (runtime_parameter_delivery < NacpRuntimeParameterDelivery_Count ? g_nacpRuntimeParameterDeliveryStrings[runtime_parameter_delivery] : g_unknownString);
|
||||
}
|
||||
|
||||
const char *nacpGetUndecidedParameter75b8bString(u8 undecided_parameter_75b8b)
|
||||
{
|
||||
return (undecided_parameter_75b8b < NacpUndecidedParameter75b8b_Count ? g_nacpUndecidedParameter75b8bStrings[undecided_parameter_75b8b] : g_unknownString);
|
||||
}
|
||||
|
||||
const char *nacpGetCrashReportString(u8 crash_report)
|
||||
|
@ -1004,7 +1024,7 @@ end:
|
|||
return success;
|
||||
}
|
||||
|
||||
static bool nacpAddU16FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, u16 value, bool hex)
|
||||
static bool nacpAddU16FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, u16 value, bool hex, bool prefix)
|
||||
{
|
||||
if (!xml_buf || !xml_buf_size || !tag_name || !*tag_name)
|
||||
{
|
||||
|
@ -1012,12 +1032,12 @@ static bool nacpAddU16FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size,
|
|||
return false;
|
||||
}
|
||||
|
||||
const char *str = (hex ? " <%s>0x%04x</%s>\n" : " <%s>%u</%s>\n");
|
||||
const char *str = (hex ? (prefix ? " <%s>0x%04x</%s>\n" : " <%s>%04x</%s>\n") : " <%s>%u</%s>\n");
|
||||
|
||||
return utilsAppendFormattedStringToBuffer(xml_buf, xml_buf_size, str, tag_name, value, tag_name);
|
||||
}
|
||||
|
||||
static bool nacpAddU32FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, u32 value, bool hex)
|
||||
static bool nacpAddU32FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, u32 value, bool hex, bool prefix)
|
||||
{
|
||||
if (!xml_buf || !xml_buf_size || !tag_name || !*tag_name)
|
||||
{
|
||||
|
@ -1025,12 +1045,12 @@ static bool nacpAddU32FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size,
|
|||
return false;
|
||||
}
|
||||
|
||||
const char *str = (hex ? " <%s>0x%08x</%s>\n" : " <%s>%u</%s>\n");
|
||||
const char *str = (hex ? (prefix ? " <%s>0x%08x</%s>\n" : " <%s>%08x</%s>\n") : " <%s>%u</%s>\n");
|
||||
|
||||
return utilsAppendFormattedStringToBuffer(xml_buf, xml_buf_size, str, tag_name, value, tag_name);
|
||||
}
|
||||
|
||||
static bool nacpAddU64FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, u64 value, bool hex)
|
||||
static bool nacpAddU64FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size, const char *tag_name, u64 value, bool hex, bool prefix)
|
||||
{
|
||||
if (!xml_buf || !xml_buf_size || !tag_name || !*tag_name)
|
||||
{
|
||||
|
@ -1038,7 +1058,7 @@ static bool nacpAddU64FieldToAuthoringToolXml(char **xml_buf, u64 *xml_buf_size,
|
|||
return false;
|
||||
}
|
||||
|
||||
const char *str = (hex ? " <%s>0x%016lx</%s>\n" : " <%s>%lu</%s>\n");
|
||||
const char *str = (hex ? (prefix ? " <%s>0x%016lx</%s>\n" : " <%s>%016lx</%s>\n") : " <%s>%lu</%s>\n");
|
||||
|
||||
return utilsAppendFormattedStringToBuffer(xml_buf, xml_buf_size, str, tag_name, value, tag_name);
|
||||
}
|
||||
|
|
|
@ -211,9 +211,11 @@ bool programInfoGenerateAuthoringToolXml(ProgramInfoContext *program_info_ctx)
|
|||
if (!programInfoAddStringFieldToAuthoringToolXml(&xml_buf, &xml_buf_size, "SdkVersion", sdk_version)) goto end;
|
||||
|
||||
if (!utilsAppendFormattedStringToBuffer(&xml_buf, &xml_buf_size, \
|
||||
" <ToolVersion />\n" /* Impossible to get. */ \
|
||||
" <PatchToolVersion />\n" /* Impossible to get. */ \
|
||||
" <ToolVersion />\n" /* Impossible to get. */ \
|
||||
" <NxAddonVersion>%s</NxAddonVersion>\n" \
|
||||
" <PatchToolVersion />\n" /* Impossible to get. */ \
|
||||
" <BuildTarget>%u</BuildTarget>\n", \
|
||||
sdk_version, \
|
||||
is_64bit ? 64 : 32)) goto end;
|
||||
|
||||
/* BuildType. */
|
||||
|
@ -221,6 +223,7 @@ bool programInfoGenerateAuthoringToolXml(ProgramInfoContext *program_info_ctx)
|
|||
|
||||
if (!utilsAppendFormattedStringToBuffer(&xml_buf, &xml_buf_size, \
|
||||
" <EnableDeadStrip />\n" /* Impossible to get. */ \
|
||||
" <EnableDeadStripSpecified />\n" /* Impossible to get. */ \
|
||||
" <Desc>%s</Desc>\n" \
|
||||
" <DescFileName />\n" /* Impossible to get. */ \
|
||||
" <DescFlags>\n" \
|
||||
|
@ -240,17 +243,22 @@ bool programInfoGenerateAuthoringToolXml(ProgramInfoContext *program_info_ctx)
|
|||
/* PrivateApiList. */
|
||||
if (!programInfoAddNsoApiListToAuthoringToolXml(&xml_buf, &xml_buf_size, program_info_ctx, "PrivateApi", "Api", "SDK Private")) goto end;
|
||||
|
||||
/* GuidelineApiList. */
|
||||
if (!programInfoAddNsoApiListToAuthoringToolXml(&xml_buf, &xml_buf_size, program_info_ctx, "GuidelineApi", "Api", "SDK Guideline")) goto end;
|
||||
|
||||
/* UnresolvedApiList. */
|
||||
if (!programInfoAddNsoSymbolsToAuthoringToolXml(&xml_buf, &xml_buf_size, program_info_ctx)) goto end;
|
||||
|
||||
/* GuidelineList. */
|
||||
if (!programInfoAddNsoApiListToAuthoringToolXml(&xml_buf, &xml_buf_size, program_info_ctx, "GuidelineApi", "Api", "SDK Guideline")) goto end;
|
||||
|
||||
/* FsAccessControlData. */
|
||||
if (!programInfoAddFsAccessControlDataToAuthoringToolXml(&xml_buf, &xml_buf_size, program_info_ctx)) goto end;
|
||||
|
||||
if (!(success = utilsAppendFormattedStringToBuffer(&xml_buf, &xml_buf_size, \
|
||||
" <History />\n" /* Impossible to get. */ \
|
||||
" <EnableGlobalDestructor />\n" /* Impossible to get. */ \
|
||||
" <EnableGlobalDestructorSpecified />\n" /* Impossible to get. */ \
|
||||
" <IncludeNssFile />\n" /* Impossible to get. */ \
|
||||
" <IncludeNssFileSpecified />\n" /* Impossible to get. */ \
|
||||
" <History />\n" /* Impossible to get. */ \
|
||||
" <TargetTriplet />\n" /* Impossible to get. */ \
|
||||
"</ProgramInfo>"))) goto end;
|
||||
|
||||
/* Update ProgramInfo context. */
|
||||
|
|
Loading…
Reference in a new issue