hos: Add emummcforce key

This disallows booting if emummc.ini is missing or emuMMC is disabled. Useful when sysmmc must be avoided at all cases.
This commit is contained in:
CTCaer 2020-04-27 09:44:06 +03:00
parent f148757110
commit cadb95e3ce
2 changed files with 17 additions and 1 deletions

View file

@ -509,6 +509,11 @@ int hos_launch(ini_sec_t *cfg)
ctxt.atmosphere = true; // Set atmosphere patching in case of Stock emuMMC and no fss0. ctxt.atmosphere = true; // Set atmosphere patching in case of Stock emuMMC and no fss0.
config_kip1patch(&ctxt, "emummc"); config_kip1patch(&ctxt, "emummc");
} }
else if (!emu_cfg.enabled && ctxt.emummc_forced)
{
_hos_crit_error("emuMMC is forced but not enabled!");
return 0;
}
// Check if fuses lower than 4.0.0 or 9.0.0 and if yes apply NO Gamecard patch. // Check if fuses lower than 4.0.0 or 9.0.0 and if yes apply NO Gamecard patch.
// Additionally check if running emuMMC and disable GC if v3 fuses are burnt and HOS is <= 8.1.0. // Additionally check if running emuMMC and disable GC if v3 fuses are burnt and HOS is <= 8.1.0.

View file

@ -181,6 +181,16 @@ static int _config_stock(launch_ctxt_t *ctxt, const char *value)
return 1; return 1;
} }
static int _config_emummc_forced(launch_ctxt_t *ctxt, const char *value)
{
if (*value == '1')
{
DPRINTF("Forced emuMMC\n");
ctxt->emummc_forced = true;
}
return 1;
}
static int _config_atmosphere(launch_ctxt_t *ctxt, const char *value) static int _config_atmosphere(launch_ctxt_t *ctxt, const char *value)
{ {
if (*value == '1') if (*value == '1')
@ -241,9 +251,10 @@ static const cfg_handler_t _config_handlers[] = {
{ "debugmode", _config_debugmode }, { "debugmode", _config_debugmode },
{ "stock", _config_stock }, { "stock", _config_stock },
{ "atmosphere", _config_atmosphere }, { "atmosphere", _config_atmosphere },
{ "fss0", _config_fss },
{ "emummcforce", _config_emummc_forced },
{ "nouserexceptions", _config_dis_exo_user_exceptions }, { "nouserexceptions", _config_dis_exo_user_exceptions },
{ "userpmu", _config_exo_user_pmu_access }, { "userpmu", _config_exo_user_pmu_access },
{ "fss0", _config_fss },
{ NULL, NULL }, { NULL, NULL },
}; };