DS-Homebrew / TWiLightMenu

DSi Menu replacement for DS/DSi/3DS/2DS
https://wiki.ds-homebrew.com/twilightmenu/
GNU General Public License v3.0
3.23k stars 202 forks source link

TWiLightMenu white screens when using an SD card with excessively large space reserved for 3DS emuNAND #2165

Open Sayora77 opened 1 year ago

Sayora77 commented 1 year ago

Flashcard or Exploits? Using latest GodMode9 and Luma 3GX Base Console: 3DS

TWiLight Menu++ Version: v25.8.1 TWiLight Menu++ Theme: n/a

Expected behavior

TWiLightMenu would ideally be able to boot with any emuNAND size as it currently works with smaller sizes but fails with large ones.

Actual behavior

TWiLightMenu is able to boot as normal with at least up to 6143MB reserved for emuNAND. However, with sizes like 8191MB it will indefinitely white screen when attempting to launch. Those are reallythe only particularly relevant numbers as they correspond to 3 and 4 potential emuNANDs respectively. The actual cutoff must be somewhere between those 2, but I wouldn't know the most efficient way to narrow it down exactly.

Steps to reproduce

  1. Make sure TWiLightMenu is already working on SD card when formatted normally.
  2. Format the SD card in GodMode9 and manually set emuNAND size to 6143/8191 (depending on if you want it to work or not); I'm unsure if actually having an emuNAND affects it or not but I've tested with the GW emuNAND type. Cluster size doesn't matter (at least between 32 and 64)
  3. Copy files onto the SD card that should result in a working TWiLightMenu installation.
  4. When booting TWiLightMenu, it will function normally if 6143 or lower was chosen, and will whitescreen indefinitely if 8191 or higher was chosen.

Notes

I know that this is an absurdly niche circumstance, using emuNAND is highly discouraged in the first place, and I'm probably the only one in the world that's encountered this, but I guess it is technically a bug ¯\_(ツ)_/¯

RocketRobz commented 1 year ago

The issue is caused by libfat. Switching to libslim (on our side) should fix this.