Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Occasional slow boot times on 3DS #2416

Open
NothanyTPM opened this issue May 15, 2024 · 6 comments
Open

Occasional slow boot times on 3DS #2416

NothanyTPM opened this issue May 15, 2024 · 6 comments
Labels

Comments

@NothanyTPM
Copy link

Honestly, I'm not sure if this is considered a bug, or if I'm doing something wrong (since I don't see anyone else talking about it online), but playing DS games probably shouldn't involve this tip-toe act with the SD card that I'll explain in a moment

Flashcard or Exploits?
Exploit: Luma3DS v13.0.2

Base Console:
3DS
Firmware: 11.17.0-50U

TWiLight Menu++ Version:
v27.2.2

TWiLight Menu++ Theme:
WoodUI with akAIO v1.9.0 skin
(though, the same thing happens with every theme)

Expected behavior

TwilightMenu should only show the "Please wait, this may take a while..." message ONLY when something in the "_nds", "_gba", or the "boot.nds" files have changed

Actual behavior

TwilightMenu shows the "please wait, this may take a while..." message every time something changes on the SD card, regardless if it's important to TwilightMenu. A lot of things on the 3DS can write on the SD card from installing a new game, creating a save file for said game, Homebrew games that save using the SD card (SM64 3DS port, an OpenLara to give a few), retail games like Color! 3D that can export images to the SD card, or even something as simple as taking a picture.

Any one of these actions will re-trigger the "Please wait, this may take a while..." message which takes a long time to go away. This one issue is making me avoid TwilightMenu on my 3DS because of how it happens almost constantly. Also, this same thing affects NDS-Forwarder, and NTR-Launcher, so there's no workaround.

Steps to reproduce

  1. Turn on 3DS
  2. Take picture (or save in a digital 3DS game)
  3. Launch TwilightMenu
  4. Please wait, this may take a while...

Notes

I've got a few suggestions on how to fix this problem:
a) Adding an option to manually reload the SD card in a similar way to WiiFlow (could cause problems, but it's a quick & dirty fix)
b) Adding the ability to blacklist/whitelist folders and files, so TwilightMenu ignores any changes in those directories/files
c) Having the ability to change TwilightMenu's initial directory to something other than the SD card's root directory (meaning the user can't go back to a directory further than the one they chose, and TwilightMenu limits looking for changes to only that directory, all it's sub-directories, as well as the "_nds" and "_gba" folders, and "boot.nds")

I'm just sick and tired of waiting close to a minute just to play a quick game of TetrisDS, all because I saved in a 3DS game beforehand. Though, if I'm doing something horribly wrong feel free to correct me.

@NothanyTPM NothanyTPM added the bug label May 15, 2024
@RocketRobz
Copy link
Member

The Please wait... message appears, because as far as I can understand, libfat refreshes the FAT table(s) whenever changes on the SD card occur. The same long boot time happens with NDSForwarder and NTR-Launcher, because they also use libfat.
The only way to fix the slow boot times would be to switch from libfat to a different FAT library, such as libslim (which is slightly buggy atm).

@NothanyTPM
Copy link
Author

So I guess the only way to potentially workaround this issue (for now at least) would be through a 3DS compatible Flashcard? One that uses the native boot instead of NTR-Launcher.

@RocketRobz
Copy link
Member

So I guess the only way to potentially workaround this issue (for now at least) would be through a 3DS compatible Flashcard? One that uses the native boot instead of NTR-Launcher.

Pretty much. Using a DSi instead of a 3DS is another option.

@NothanyTPM
Copy link
Author

I thought of something. Is there a way to make Twilight menu boot from a second partition on the SD card?

Like, all the Twilight menu files, and DS/DSi roms are all on that second partition, and it doesn't touch the first partition where the 3DS reads and writes to.

@RocketRobz
Copy link
Member

RocketRobz commented May 20, 2024

I thought of something. Is there a way to make Twilight menu boot from a second partition on the SD card?

Like, all the Twilight menu files, and DS/DSi roms are all on that second partition, and it doesn't touch the first partition where the 3DS reads and writes to.

Multiple partitions would need to be supported by either libfat or libslim, and the same would apply for any existing DS(i) homebrew (of which use libfat).

@NothanyTPM
Copy link
Author

Dang it...I thought I found a clever workaround, but libfat's limitations strikes again.

Oh well, guess I have no choice but to be patient and wait for the libslim version of Twilight Menu to come out

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants