From f9b0ff70f798dd5c7ccfb41515086fdffc2494e0 Mon Sep 17 00:00:00 2001 From: CTCaer Date: Thu, 30 Apr 2020 16:15:49 +0300 Subject: [PATCH] hos: Disallow Auto NOGC for stock If you still want to use it, you must use `kip1patch=nogc` in your boot entry to force it. --- bootloader/hos/hos.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/bootloader/hos/hos.c b/bootloader/hos/hos.c index 6ee6bac..2ef2d4b 100644 --- a/bootloader/hos/hos.c +++ b/bootloader/hos/hos.c @@ -642,12 +642,16 @@ int hos_launch(ini_sec_t *cfg) // 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. - if ((h_cfg.autonogc && - ((!(fuse_read_odm(7) & ~0xF) && (ctxt.pkg1_id->kb >= KB_FIRMWARE_VERSION_400)) || // LAFW v2. - (!(fuse_read_odm(7) & ~0x3FF) && (ctxt.pkg1_id->kb >= KB_FIRMWARE_VERSION_900)))) // LAFW v3. - || ((emu_cfg.enabled && !h_cfg.emummc_force_disable) && - ((fuse_read_odm(7) & 0x400) && (ctxt.pkg1_id->kb <= KB_FIRMWARE_VERSION_810)))) - config_kip1patch(&ctxt, "nogc"); + if (!ctxt.stock) + { + u32 fuses = fuse_read_odm(7); + if ((h_cfg.autonogc && + ((!(fuses & ~0xF) && (ctxt.pkg1_id->kb >= KB_FIRMWARE_VERSION_400)) || // LAFW v2. + (!(fuses & ~0x3FF) && (ctxt.pkg1_id->kb >= KB_FIRMWARE_VERSION_900)))) // LAFW v3. + || ((emu_cfg.enabled && !h_cfg.emummc_force_disable) && + ((fuses & 0x400) && (ctxt.pkg1_id->kb <= KB_FIRMWARE_VERSION_810)))) + config_kip1patch(&ctxt, "nogc"); + } gfx_printf("Loaded config, pkg1 and keyblob\n");