From 1930880270139e941bd65ba5f5a58acc0bf23bbb Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Thu, 17 Sep 2020 21:04:43 -0700 Subject: [PATCH] fusee: change ncm from opt-in to opt-out --- config_templates/BCT.ini | 2 +- fusee/fusee-secondary/src/nxboot.c | 8 ++++---- fusee/fusee-secondary/src/start.s | 2 +- fusee/fusee-secondary/src/stratosphere.c | 14 +++++++------- fusee/fusee-secondary/src/stratosphere.h | 6 +++--- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/config_templates/BCT.ini b/config_templates/BCT.ini index 9e23c843b..74dd6f648 100644 --- a/config_templates/BCT.ini +++ b/config_templates/BCT.ini @@ -9,4 +9,4 @@ stage2_entrypoint = 0xF0000000 ; To force-enable nogc, add nogc = 1 ; To force-disable nogc, add nogc = 0 -; To opt in to using Atmosphere's NCM reimplementation, add enable_ncm = 1 +; To opt out of using Atmosphere's NCM reimplementation, add disable_ncm = 1 diff --git a/fusee/fusee-secondary/src/nxboot.c b/fusee/fusee-secondary/src/nxboot.c index f00367086..c86d6d26c 100644 --- a/fusee/fusee-secondary/src/nxboot.c +++ b/fusee/fusee-secondary/src/nxboot.c @@ -209,11 +209,11 @@ static int stratosphere_ini_handler(void *user, const char *section, const char strat_cfg->has_nogc_config = true; sscanf(value, "%d", &tmp); strat_cfg->enable_nogc = tmp != 0; - } else if (strcmp(name, STRATOSPHERE_ENABLE_NCM_KEY) == 0) { + } else if (strcmp(name, STRATOSPHERE_DISABLE_NCM_KEY) == 0) { sscanf(value, "%d", &tmp); - strat_cfg->ncm_enabled = tmp != 0; - if (strat_cfg->ncm_enabled) { - stratosphere_enable_ncm(); + strat_cfg->ncm_disabled = tmp != 0; + if (strat_cfg->ncm_disabled) { + stratosphere_disable_ncm(); } } else { return 0; diff --git a/fusee/fusee-secondary/src/start.s b/fusee/fusee-secondary/src/start.s index 0050b053d..a507518a2 100644 --- a/fusee/fusee-secondary/src/start.s +++ b/fusee/fusee-secondary/src/start.s @@ -249,7 +249,7 @@ _content_headers: .word __ncm_kip_start__ .word __ncm_kip_size__ .byte CONTENT_TYPE_KIP -.byte CONTENT_FLAG0_EXPERIMENTAL +.byte CONTENT_FLAG_NONE .byte CONTENT_FLAG_NONE .byte CONTENT_FLAG_NONE .word 0xCCCCCCCC diff --git a/fusee/fusee-secondary/src/stratosphere.c b/fusee/fusee-secondary/src/stratosphere.c index 903b24206..4a7e21a1b 100644 --- a/fusee/fusee-secondary/src/stratosphere.c +++ b/fusee/fusee-secondary/src/stratosphere.c @@ -48,7 +48,7 @@ static bool g_stratosphere_pm_enabled = true; static bool g_stratosphere_ams_mitm_enabled = true; static bool g_stratosphere_spl_enabled = true; static bool g_stratosphere_boot_enabled = true; -static bool g_stratosphere_ncm_enabled = false; +static bool g_stratosphere_ncm_enabled = true; extern const uint8_t loader_kip[], pm_kip[], sm_kip[], spl_kip[], boot_kip[], ncm_kip[], ams_mitm_kip[]; @@ -58,17 +58,17 @@ emummc_fs_ver_t stratosphere_get_fs_version(void) { return g_fs_ver; } -void stratosphere_enable_ncm(void) { +void stratosphere_disable_ncm(void) { /* The Atmosphere team believes our implementation of NCM to be extremely accurate, */ /* and does not think it likely there is any possibility of undesirable behavior */ /* when using the NCM reimplementation. However, because NCM manages critical save games */ - /* the implementation will default to off for some time, until the code has been thoroughly */ - /* tested in practice. */ + /* the implementation may be optionally disabled for those not comfortable using it. */ - /* PLEASE NOTE: The default behavior will be NCM on in a future atmosphere release, */ - /* and this opt-in functionality will be removed at that time. */ - g_stratosphere_ncm_enabled = true; + /* PLEASE NOTE: The NCM reimplementation has been well-tested, and correspondingly opt-out */ + /* functionality will be removed in Atmosphere 1.0.0. */ + + g_stratosphere_ncm_enabled = false; } /* GCC doesn't consider the size as const... we have to write it ourselves. */ diff --git a/fusee/fusee-secondary/src/stratosphere.h b/fusee/fusee-secondary/src/stratosphere.h index 0f41d36b1..de5693edd 100644 --- a/fusee/fusee-secondary/src/stratosphere.h +++ b/fusee/fusee-secondary/src/stratosphere.h @@ -30,7 +30,7 @@ ini1_header_t *stratosphere_get_ini1(uint32_t target_firmware); ini1_header_t *stratosphere_get_sd_files_ini1(void); void stratosphere_free_ini1(void); -void stratosphere_enable_ncm(void); +void stratosphere_disable_ncm(void); emummc_fs_ver_t stratosphere_get_fs_version(void); @@ -39,10 +39,10 @@ ini1_header_t *stratosphere_merge_inis(ini1_header_t **inis, unsigned int num_in typedef struct { bool has_nogc_config; bool enable_nogc; - bool ncm_enabled; + bool ncm_disabled; } stratosphere_cfg_t; #define STRATOSPHERE_NOGC_KEY "nogc" -#define STRATOSPHERE_ENABLE_NCM_KEY "enable_ncm" +#define STRATOSPHERE_DISABLE_NCM_KEY "disable_ncm" #endif