Prevent game cart in EmuNAND

lnsomniax

Member
OP
Newcomer
Joined
Oct 12, 2024
Messages
13
Trophies
0
XP
58
Country
United Kingdom
Hi all,

Is there any known way to prevent the game card reader from working in the EmuNAND?

We play MK8D online in the OFW a lot, so would prefer to just leave the game cart inserted. The problem is MK8D is always added to the EmuNANDs home screen first entry whether it's been played or not.

Running latest Hekate and Atmosphere with 19.0.1. I looked into the nogc thing in the ini but that relates to preventing the game card reader from burning fuses.

Another thing I tried was to get the updates for MK8D in the EmuNAND so that the game plays, and play other games to push it past the list in home screen, but whenever rebooted it comes right back.
 

thesjaakspoiler

Well-Known Member
Member
Joined
Nov 20, 2018
Messages
1,355
Trophies
0
Age
124
XP
1,979
Country
Afghanistan
No, there isn't any way to do this currently.

But it should not matter anyway.
The save game for the OFW is stored in the SysNand (internal flash memory) while the savegame for the CFW is stored on the SD card in the emummc image.
Nintendo game cardridges don't have any way of storing save games like the SNES or 3DS carts.
 

lnsomniax

Member
OP
Newcomer
Joined
Oct 12, 2024
Messages
13
Trophies
0
XP
58
Country
United Kingdom
No, there isn't any way to do this currently.

But it should not matter anyway.
The save game for the OFW is stored in the SysNand (internal flash memory) while the savegame for the CFW is stored on the SD card in the emummc image.
Nintendo game cardridges don't have any way of storing save games like the SNES or 3DS carts.
Thanks. It's not that it's dangerous at all but it is slightly annoying that whatever game cart is in the slot will always show up in the home screen in the first slot.

These carts will only be played on the OFW, and would be good to have the ability to disable the GC reader via some ini setting.

The nogc option, according to Atmosphere's and Hekate's documentation, AutoNoGC disables your Switch's card reader in certain circumstances. It would be fairly easy for the devs to add it as an option to disable on demand.

Atmosphere:

"nogc" is a feature provided by fusée-secondary which disables the Nintendo Switch's Game Card reader. Its purpose is to prevent the reader from being updated when the console has been updated, without burning fuses, from a lower firmware version. More specifically, from firmware versions 4.0.0 or 9.0.0 which introduced updates to the Game Card reader's firmware. By default, Atmosphère will protect the Game Card reader automatically, but you are free to change it.

Hekate:

0: Disable, 1: Automatically applies nogc patch if unburnt fuses found and a >= 4.0.0 HOS is booted.
 

4d1xlaan

Well-Known Member
Member
Joined
Apr 21, 2024
Messages
1,057
Trophies
0
XP
1,166
Country
United States
"nogc" is a feature provided by fusée-secondary which disables the Nintendo Switch's Game Card reader. Its purpose is to prevent the reader from being updated when the console has been updated, without burning fuses, from a lower firmware version. More specifically, from firmware versions 4.0.0 or 9.0.0 which introduced updates to the Game Card reader's firmware. By default, Atmosphère will protect the Game Card reader automatically, but you are free to change it.
just below this quote it explains how to force-enable nogc. does that not work for you?
 

randy_w

Well-Known Member
Member
Joined
Feb 27, 2021
Messages
827
Trophies
0
Age
34
XP
1,566
Country
United States
Took a look at atmosphere code:
Code:
        bool IsNogcEnabled(ams::TargetFirmware target_firmware) {
            /* First parse from ini. */
            {
                IniSectionList sections;
                if (ParseIniSafe(sections, "sdmc:/atmosphere/config/stratosphere.ini")) {
                    for (const auto &section : sections) {
                        /* We only care about the [stratosphere] section. */
                        if (std::strcmp(section.name, "stratosphere")) {
                            continue;
                        }

                        /* Handle individual fields. */
                        for (const auto &entry : section.kv_list) {
                            if (std::strcmp(entry.key, "nogc") == 0) {
                                return entry.value[0] == '1';
                            }
                        }
                    }
                }
            }

            /* That failed, so try to decide automatically. */
            const auto fuse_version = fuse::GetFuseVersion();
            if (target_firmware >= ams::TargetFirmware_12_0_2 && fuse_version < fuse::GetExpectedFuseVersion(ams::TargetFirmware_12_0_2)) {
                return true;
            }
            if (target_firmware >= ams::TargetFirmware_11_0_0 && fuse_version < fuse::GetExpectedFuseVersion(ams::TargetFirmware_11_0_0)) {
                return true;
            }
            if (target_firmware >= ams::TargetFirmware_9_0_0 && fuse_version < fuse::GetExpectedFuseVersion(ams::TargetFirmware_9_0_0)) {
                return true;
            }
            if (target_firmware >= ams::TargetFirmware_4_0_0 && fuse_version < fuse::GetExpectedFuseVersion(ams::TargetFirmware_4_0_0)) {
                return true;
            }

            return false;
        }

    }

If nogc is set to 1 in ini file it should apply the patch regardless of fuse count, also did you put the nogc=1 line in stratosphere.ini, not system_settings.ini or exosphere.ini?
 

lnsomniax

Member
OP
Newcomer
Joined
Oct 12, 2024
Messages
13
Trophies
0
XP
58
Country
United Kingdom
Took a look at atmosphere code:
Code:
        bool IsNogcEnabled(ams::TargetFirmware target_firmware) {
            /* First parse from ini. */
            {
                IniSectionList sections;
                if (ParseIniSafe(sections, "sdmc:/atmosphere/config/stratosphere.ini")) {
                    for (const auto &section : sections) {
                        /* We only care about the [stratosphere] section. */
                        if (std::strcmp(section.name, "stratosphere")) {
                            continue;
                        }

                        /* Handle individual fields. */
                        for (const auto &entry : section.kv_list) {
                            if (std::strcmp(entry.key, "nogc") == 0) {
                                return entry.value[0] == '1';
                            }
                        }
                    }
                }
            }

            /* That failed, so try to decide automatically. */
            const auto fuse_version = fuse::GetFuseVersion();
            if (target_firmware >= ams::TargetFirmware_12_0_2 && fuse_version < fuse::GetExpectedFuseVersion(ams::TargetFirmware_12_0_2)) {
                return true;
            }
            if (target_firmware >= ams::TargetFirmware_11_0_0 && fuse_version < fuse::GetExpectedFuseVersion(ams::TargetFirmware_11_0_0)) {
                return true;
            }
            if (target_firmware >= ams::TargetFirmware_9_0_0 && fuse_version < fuse::GetExpectedFuseVersion(ams::TargetFirmware_9_0_0)) {
                return true;
            }
            if (target_firmware >= ams::TargetFirmware_4_0_0 && fuse_version < fuse::GetExpectedFuseVersion(ams::TargetFirmware_4_0_0)) {
                return true;
            }

            return false;
        }

    }

If nogc is set to 1 in ini file it should apply the patch regardless of fuse count, also did you put the nogc=1 line in stratosphere.ini, not system_settings.ini or exosphere.ini?
I put nogc = 1 on a separate line under [stratosphere] in SD:/atmosphere/config/stratosphere.ini.

Seeing it didn't work (and I suspect the default state of nogc is already 1) I thought that it only disables the cart reader if detects unburnt game cart fuses, if the OFW firmware is lower than the EmuMMC it would stop game carts working in OFW after the fuse gets burnt.
 

Deetlemore

Well-Known Member
Newcomer
Joined
May 29, 2023
Messages
47
Trophies
0
XP
321
Country
United States
I feel your pain, my GC slot stays perpetually empty for this reason. It would have been great if Nintendo had bothered to give the user some level of control over the UI, like pinning games at the front of the row.
 
  • Like
Reactions: lnsomniax

lnsomniax

Member
OP
Newcomer
Joined
Oct 12, 2024
Messages
13
Trophies
0
XP
58
Country
United Kingdom
If you want more customization you can try ulaunch, it's a home menu replacement with a lot of customization options:
https://github.com/XorTroll/uLaunch/releases

However it seems like 19.0.0 update breaks it, it works fine on 18.1.0
Thanks for the recommendation. uLaunch looks awesome and I will definitely keep an eye for when it gets updated.

I had a quick scan over the features but couldn't see a way to disable cart game from automatically coming up, or any way to auto hide specific titles. Does it have that functionality?
 

randy_w

Well-Known Member
Member
Joined
Feb 27, 2021
Messages
827
Trophies
0
Age
34
XP
1,566
Country
United States
Thanks for the recommendation. uLaunch looks awesome and I will definitely keep an eye for when it gets updated.

I had a quick scan over the features but couldn't see a way to disable cart game from automatically coming up, or any way to auto hide specific titles. Does it have that functionality?
Not sure if it can hide cartridge games, but you can move it inside a folder or put it all the way to the end of the list
 
  • Like
Reactions: lnsomniax

4d1xlaan

Well-Known Member
Member
Joined
Apr 21, 2024
Messages
1,057
Trophies
0
XP
1,166
Country
United States
it's possible that the nogc patch is just broken on newer firmware, it might be worth making a bug report or maybe other people can test and see if it also doesnt work for them too to confirm it
 

lnsomniax

Member
OP
Newcomer
Joined
Oct 12, 2024
Messages
13
Trophies
0
XP
58
Country
United Kingdom
it's possible that the nogc patch is just broken on newer firmware, it might be worth making a bug report or maybe other people can test and see if it also doesnt work for them too to confirm it

I thought I read somewhere that Atmosphere only blocks the GC slot if it sees a mismatch in the GC slot fuse counts, but the code randy_w posted seems to indicate otherwise.

Found this post https://gbatemp.net/threads/18-1-0-nogc.658893/post-10466737

"Something else to keep in mind. When booting using hekate fss0, the ngc option in Hekate only disables the slot if it finds no burnt fuses. Chainloading fusee is required to disable the slot regardless of fuse count, but then the "game card could not be read" message keeps popping up after starting/waking if a card is inserted."

So chain loading fusee would work with Hekate autonogc, except the error message would be more annoying...
 

4d1xlaan

Well-Known Member
Member
Joined
Apr 21, 2024
Messages
1,057
Trophies
0
XP
1,166
Country
United States
I thought I read somewhere that Atmosphere only blocks the GC slot if it sees a mismatch in the GC slot fuse counts, but the code randy_w posted seems to indicate otherwise.
like I said. the documentation you already found already tells you that the atmosphere setting either force enables or force disables regardless of fuses count, if you'd just read the next part right after the part you quoted

you're right though, fusee is what applies nogc (as per the documentation), so if you are using hekate to boot, then the config won't apply, and hekate doesn't have an option to force enable

I don't think it's possible to prevent the error with the current patches, maybe the patch could be changed so it also prevents the error from showing up (spoof it as if no game card is inserted instead of preventing the game card from being read), but unless there is interest in this then it's not likely this will ever be done

a hardware mod that adds a toggle switch for the gamecard reader could be an option, but that's a lot of work
 

lnsomniax

Member
OP
Newcomer
Joined
Oct 12, 2024
Messages
13
Trophies
0
XP
58
Country
United Kingdom
like I said. the documentation you already found already tells you that the atmosphere setting either force enables or force disables regardless of fuses count, if you'd just read the next part right after the part you quoted

you're right though, fusee is what applies nogc (as per the documentation), so if you are using hekate to boot, then the config won't apply, and hekate doesn't have an option to force enable

I don't think it's possible to prevent the error with the current patches, maybe the patch could be changed so it also prevents the error from showing up (spoof it as if no game card is inserted instead of preventing the game card from being read), but unless there is interest in this then it's not likely this will ever be done

a hardware mod that adds a toggle switch for the gamecard reader could be an option, but that's a lot of work

Thanks. If it's definitely the case that nogc = 1 in stratosphere.ini should disable it, regardless of fuse counts then maybe there's a bug in Atmosphere.

I'm running Atmosphere 1.80 pre release under firmware 19.0.1. Anyone else find that it doesn't work?

I found a way to force disable the GC in Hekate with fss0 config (no fusee). In the Hekate_ipl.ini I changed the line "kip1patch=nosigchk" to "kip1patch=nosigchk,nogc".

It would be good to figure out a way to prevent the game card not read error message. Some patch must be possible to just not show it.
 
  • Like
Reactions: draftguy123

4d1xlaan

Well-Known Member
Member
Joined
Apr 21, 2024
Messages
1,057
Trophies
0
XP
1,166
Country
United States
Thanks. If it's definitely the case that nogc = 1 in stratosphere.ini should disable it, regardless of fuse counts then maybe there's a bug in Atmosphere.
but are you booting with fusee, or using fss0 in hekate to boot package3 directly? because the atmosphere config cannot possibly work when using hekate boot (fusee is the one who applies nogc patch when enabled)

good find for the kip1patch line though, maybe that will help someone else in the future who finds this thread
 

The Real Jdbye

*is birb*
Member
Joined
Mar 17, 2010
Messages
23,804
Trophies
5
Location
Space
XP
14,775
Country
Norway
but are you booting with fusee, or using fss0 in hekate to boot package3 directly? because the atmosphere config cannot possibly work when using hekate boot (fusee is the one who applies nogc patch when enabled)

good find for the kip1patch line though, maybe that will help someone else in the future who finds this thread
Was just about to mention this. Some parts of Atmosphere are skipped when Fusee is not used, and is handled by Hekate instead.
I feel your pain, my GC slot stays perpetually empty for this reason. It would have been great if Nintendo had bothered to give the user some level of control over the UI, like pinning games at the front of the row.
I don't mind having the inserted game cart show up at the front, however having a permanent icon left behind from every game cart inserted when you need the game cart to play them anyway is rather pointless, and clutters up the home screen unless you are constantly deleting the icons.
Folders would solve all my issues, it's the single most useful thing they could add to the UI. The 3DS and Wii U had folders so why the huge step backwards in functionality? If you have a lot of digital games at one point it becomes hard to find the game you want to play because the icons keep switching places.
 

lnsomniax

Member
OP
Newcomer
Joined
Oct 12, 2024
Messages
13
Trophies
0
XP
58
Country
United Kingdom
I didn't know that atmosphere's nogc only works with fusee and not fss0. Thanks for solving the mystery for me! I tested it...

I'd already removed the Hekate nogc as it causes delays waking the Switch up way worse than just living with the unwanted cart games coming up in home screen.

I want to try building a patch module that will interact with the "gcm" or something like that, and simulate an empty cart reader.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    chrisrlink @ chrisrlink: i have an odd question for the UK members (bit political but informative) how is Homosexuality...