MicroSD card issues on the Nintendo Switch

November 17, 2019

Here’s an interesting story about the new Pokémon Sword & Shield: it seems that some people are reportedly losing data on their microSD cards after a game crash. Apparently, this has to do with a NAND timeout and an issue in the exFAT file system implementation on the Switch’s OS.

Due to a faulty write, the entire filesystem is hosed and you lose all your digital games and screenshots stored on the card. Save games are unaffected, since those are located on the system’s internal storage itself.

Any SDXC microSD card bigger than 32GB usually ships formatted as exFAT by default. It also doesn’t help that the Switch’s operating system formats SD cards as exFAT by default. This issue is not super common, fortunately. I was curious about what actually happened, and there’s an interesting Twitter thread on the issue in the thread.

Here’s a few relevant bits:

This timeout error occurs, and N's SDMMC driver resets a lot of state trying to recover. This leads to the other stuff being handled by the SDMMC driver (SD card filesystem) getting messed up --> N's shitty exFAT driver corrupts the SD card, as tends to happen.

It's unclear why the timeout is happening when BCAT is trying to access savedata in nand. Could be bad game access patterns, or could be concurrency with accesses to read gamedata, or a bunch of other stuff. Not much evidence pointing to the cause.

I recommend checking out the full Twitter thread on the issue if you haven’t already. The reddit post even contains instructions on how to format your microSD card as FAT32:

If you are on Windows and want to convert your existing microSD card to use FAT32 instead of exFAT, a tool for doing so can be found here. Make sure you copy your microSD card data to your PC first as the formatting process will erase all the data on the card. However, if you do format it to FAT32, you can simply copy it back afterward and not have to worry about data loss while playing the game.

Since this issue could technically occur with any given software — I’ve already backed up my SD card, and reformatted it to FAT32 just to be safe (after which I copied back all files). I have a large SD card filled with digital games that would all be gone after a filesystem corruption event like this.1

While it is true that FAT32 was not intended for larger cards, its biggest drawback is that you cannot store files larger than 4GB on the card. Fortunately, digital games and such on the eShop are partitioned into smaller files, so it’s actually a better idea to use a FAT32-formatted microSD card than an exFAT-formatted one. Apparently, inside the Homebrew community, this has been known for a while. ↩