Homebrew [DS(i)/3DS] TWiLight Menu++ - GUI for DS(i) games, and DS(i) Menu replacement

RocketRobz

Stylish TWiLight Hero
OP
Developer
Joined
Oct 1, 2010
Messages
17,000
Trophies
3
Age
25
XP
21,988
Country
United States
I posted this as a comment on a Git issue, but it's probably better if I put this here. Apologies if this is common knowledge, but I'm having issues running certain games with the AK2i kernel through the 3DS app. They run perfectly fine when launched through TWLM on the cart itself, which is what's confusing about this. Namely, it seems gen 4 Pokemon, Final Fantasy titles, Golden Sun, Metroid, and NSMB are all unable to be launched when the kernel is being used. They either freeze on double white screens, or in the case of Golden Sun, lock up on the "Loading" splash from the kernel.

I've tried several things to fix this, including formatting both of my SD cards again (I found they weren't formatted to 32k clusters, so needed to be done anyway). I could have sworn things were working fine up until I launched the DSi Browser to play around with it, but I could be misremembering. Something I've noticed is that it seems like games are trying to fall back on nds-bootstrap regardless of what loader is set. For example, DSi Enhanced games use it unless I explicitly set them to use the kernel through their own individual properties, and I've found .sav files next to my ROMs, which seems to be a behavior with nds-bs itself. I've tried doing this for the games that fail to run, but it's the same result. I've also totally reinstalled TWLM twice, making sure to wipe out literally everything when doing so, but this got me nowhere.

Hoping this is only a case of incompatibility, and I'm just going crazy. I can't think of what I possibly did to cause this, provided I'm not misremembering.
It is a known issue for some games to not work with Kernel when using the slot-1 microSD access setting.
It is not a very known issue for some games to not work with Kernel when using the SCFG for Slot-1 setting.

It is unknown why these issues happens. You'll have to stick with nds-bootstrap for the time being.
and I've found .sav files next to my ROMs, which seems to be a behavior with nds-bs itself.
It is not. TWLMenu++ passes the save file path to nds-bootstrap.
Also, you can configure where the save files are placed via TWLMenu++ Settings.
 
Last edited by RocketRobz,

4d1xlaan

Well-Known Member
Member
Joined
Apr 21, 2024
Messages
1,060
Trophies
0
XP
1,170
Country
United States
I posted this as a comment on a Git issue, but it's probably better if I put this here. Apologies if this is common knowledge, but I'm having issues running certain games with the AK2i kernel through the 3DS app. They run perfectly fine when launched through TWLM on the cart itself, which is what's confusing about this. Namely, it seems gen 4 Pokemon, Final Fantasy titles, Golden Sun, Metroid, and NSMB are all unable to be launched when the kernel is being used. They either freeze on double white screens, or in the case of Golden Sun, lock up on the "Loading" splash from the kernel.

I've tried several things to fix this, including formatting both of my SD cards again (I found they weren't formatted to 32k clusters, so needed to be done anyway). I could have sworn things were working fine up until I launched the DSi Browser to play around with it, but I could be misremembering. Something I've noticed is that it seems like games are trying to fall back on nds-bootstrap regardless of what loader is set. For example, DSi Enhanced games use it unless I explicitly set them to use the kernel through their own individual properties, and I've found .sav files next to my ROMs, which seems to be a behavior with nds-bs itself. I've tried doing this for the games that fail to run, but it's the same result. I've also totally reinstalled TWLM twice, making sure to wipe out literally everything when doing so, but this got me nowhere.

Hoping this is only a case of incompatibility, and I'm just going crazy. I can't think of what I possibly did to cause this, provided I'm not misremembering.
it's fucked and we dont know why is the tl;dr

https://gbatemp.net/threads/ds-i-3d...enu-replacement.472200/page-811#post-10447091

my workaround is that instead of using _wfwd and wfwd.dat, my twilight menu keeps the original folder name __aio and edits lastsave.ini in there on the flashcart sd card

then instead of using RunNdsFile() to run the flashcart kernel on flashcard sd card, I make it reboot to launcher, which can autoboot the acekard if you add in the autoboot bit to the header. then you remove twilightmenu from the equation and you're just running the flashcart directly, which guarantees it works just as well as it normally would, except you're browsing and selecting games through twilightmenu (with the ability to switch between flashcart microsd and console sd card, and all that)

but that isnt going to work on 3ds, because the 3ds home menu cant autoboot the flashcart. but it might be possible to make it so launching the acekard actually works in twilight menu, then instead of rebooting to launcher you would just make it run the flashcart directly, which should work on 3ds too and not just dsi

I do this with r4 ultra because that actually works, but acekard2i gets stuck and doesnt boot properly through twilight menu or unlaunch on dsi. but maybe acekard2i direct boot might work on 3ds, I havent tried it

btw, twilightmenu is specifically programmed to use nds bootstrap for dsi enhanced roms by default, so it's normal to have to force Kernel for those if you intend on running them with kernel. I guess the reasoning is that most users would want to run them with dsi features, but kernel loader cant use dsi mode
 
  • Like
Reactions: Joom

Joom

 ❤❤❤
Member
Joined
Jan 8, 2016
Messages
6,183
Trophies
2
Location
US
Website
mogbox.net
XP
6,189
Country
United States
It is a known issue for some games to not work with Kernel when using the slot-1 microSD access.
Yeah, I found that out while testing. Before disabling that, I couldn't get any games to run. On that note, I also noticed that disabling this makes the other slot-1 related settings disappear. I can't modify the SCFG setting, for example, if slot-1 mSD access is disabled. I'm assuming this is because it's autoloading the akmenu4 loader. Doesn't seem like it loads it if I have mSD access enabled, because I don't get the "Loading" splash with it turned on. That's likely why games won't run with it enabled.

It is not. TWLMenu++ passes the save file path to nds-bootstrap.
Ah, that's really odd, then. Maybe it does that if a save already exists in the "saves" directory? I'm not really sure, but if I set a game to use nds-bs through its settings, it'll create a new save next to the ROM, rather than use the one in the designated directory.

btw, twilightmenu is specifically programmed to use nds bootstrap for dsi enhanced roms by default, so it's normal to have to force Kernel for those if you intend on running them with kernel. I guess the reasoning is that most users would want to run them with dsi features, but kernel loader cant use dsi mode
Ah, ok, that's what I had figured. I sort of assumed that the kernel could use DSi features when booted this way, but I suppose not.
 

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,538
Trophies
2
XP
40,388
Country
Mexico
What format do DSiWare saves have?
I am almost finished with Four Swords Anniversary and I want to backup my save, but I'm not sure which format it is in nor if the DSiWare save file from Twilight Menu is compatible with emulators like melonDS.
 

RocketRobz

Stylish TWiLight Hero
OP
Developer
Joined
Oct 1, 2010
Messages
17,000
Trophies
3
Age
25
XP
21,988
Country
United States
Ah, that's really odd, then. Maybe it does that if a save already exists in the "saves" directory? I'm not really sure, but if I set a game to use nds-bs through its settings, it'll create a new save next to the ROM, rather than use the one in the designated directory.
This is because in TWLMenu++ Settings, TWLMenu++ is set to place saves in the same place as the `.nds` files, instead of inside the "saves" directory.
Otherwise, I don't know why this happens.
What format do DSiWare saves have?
I am almost finished with Four Swords Anniversary and I want to backup my save, but I'm not sure which format it is in nor if the DSiWare save file from Twilight Menu is compatible with emulators like melonDS.
DSiWare saves are in `.pub` and/or `.prv` format.
 

Joom

 ❤❤❤
Member
Joined
Jan 8, 2016
Messages
6,183
Trophies
2
Location
US
Website
mogbox.net
XP
6,189
Country
United States
I'm actually now wondering if something is going on with my TWL partition. Launching the DSi Browser now displays an error screen saying "The system memory is damaged. Please refer to the Nintendo DSi Operations Manual for details." I do remember the last time I was able to launch the browser, it showed two different initialization screens. One was for creating the on-SD prv save, but I'm not sure what the other was doing. I'm hoping I didn't break something when I ran TWLFix. I did this when reinstalling TWLM the first time, but that might be a red herring since I ran it after this behavior started.

Edit:
This is because in TWLMenu++ Settings, TWLMenu++ is set to place saves in the same place as the `.nds` files, instead of inside the "saves" directory.
Otherwise, I don't know why this happens.
After some more tinkering, I've found this is only happening to Pokémon Platinum. What I've noticed is that it's actually deleting the save file from the saves directory, and making a new one next to the ROM. If I place an existing save next to the ROM, it replaces that one with a new one. That new one can be saved to without any problems, but it can't be moved to the saves directory without being replaced by another new save. This happens on both the 3DS and flashcart, regardless of whether the kernel or nds-bs is set as the loader. So, I'm a little stumped. It wasn't doing this the other day.

Where are per-game settings stored? I know there's a "gamesettings" directory, but it's empty. I'm just wondering if me flip-flopping between the kernel and nds-bs too many times flubbed something in a config file. Rather strange that this is the only game displaying this behavior, though. If I have to, I'll do another reinstall, but I'd really like to avoid that. Would it possibly be worth just wiping the settings INI for both TWLM and nds-bs?

Edit 2: I was able to fix the issue up above with another full reinstall. Guess something somewhere got crossed. I'm also not going to install a theme or the widescreen patch this time. I kinda doubt that was related, but for the sake of safety, I'm going to try to keep everything as stock as possible. Oh, and not sure if it helps, but I also renamed everything to follow the No-Intro convention.
 
Last edited by Joom,

4d1xlaan

Well-Known Member
Member
Joined
Apr 21, 2024
Messages
1,060
Trophies
0
XP
1,170
Country
United States
this is very out of scope, but I figured out that with the danny phantom bootloader patch (dsi 1.4.0), acekard 2i does actually boot correctly through unlaunch, and it also boots correctly through twilight menu's ds classic menu, compared to the original dsi 1.3 bootloader where both unlaunch and twilight menu failed to run the card

in dsi menu theme, arm9/source/main.cpp, in loadGameOnFlashcard, I do something like this:

Code:
[...]
    std::string fcPath;
    int err = 0;
    snd().stopStream();

    cardInit();

    if ((!memcmp(ndsCardHeader.gameTitle, "ACEKARD2I", 9))) {
        CIniFile fcrompathini("fat:/__aio/lastsave.ini");
        fcPath = replaceAll(ndsPath, "fat:/", woodfat);
        fcrompathini.SetString("Save Info", "lastLoaded", fcPath);
        fcrompathini.SaveIniFile("fat:/__aio/lastsave.ini");

        ms().slot1Launched = true;
        ms().saveSettings();

        bool directMethod = false;
        if (io_dldi_data->ioInterface.features & FEATURE_SLOT_GBA) {
            directMethod = true;
        } else if (ms().slot1LaunchMethod==0 || sys().arm7SCFGLocked()) {
            dsCardLaunch();
        } else if (ms().slot1LaunchMethod==2) {
            unlaunchRomBoot("cart:");
        } else {
            directMethod = true;
        }

        if (directMethod) {
            SetWidescreen(NULL);
            chdir(sys().isRunFromSD() ? "sd:/" : "fat:/");
            err = runNdsFile("/_nds/TWiLightMenu/slot1launch.srldr", 0, NULL, sys().isRunFromSD(), true, true, false, true, true, false, -1);
            char text[32];
            snprintf(text, sizeof(text), STR_START_FAILED_ERROR.c_str(), err);
            fadeType = true;
            printLarge(false, 4, 4, text);
            stop();
        }
    }
    else if ((memcmp(io_dldi_data->friendlyName, "R4(DS) - Revolution for DS", 26) == 0)
[...]

with unlaunch and reboot methods, it works. the flashcart loads and auto runs the selected game, no issue. but with direct method, the bottom screen flickers black for a couple frames, and then it's stuck on two white screens. with r4 ultra (R4DSULTRA game title), the same code works with direct mode for slot 1 launch

do you have an idea why ds classic menu can run the flashcart fine, but it would fail when direct booting here the way I'm doing it? maybe acekard is more finicky and it doesnt like trying to boot the card while it/the microsd is mounted with slot 1 microsd access, or maybe there's something else I'm supposed to be doing to properly init/deinit the card before attempting to launch it, and it just happens that r4 ultra doesn't mind. idk, I dont know this stuff
 
Last edited by 4d1xlaan,

KitHunter

New Member
Newbie
Joined
Jan 27, 2009
Messages
2
Trophies
1
XP
160
Country
Thailand
I have a problem that my n3DS cannot soft reboot by L+Down+Select. But I also install in my n2DS and soft reboot working well.

I am not sure what happen? This is just my assumption ,my n3DS has installed Twilight from very long time before I get my n2DS. The Twilight Menu might be the very early edition that there might be some setting not compatible with the latest version. (That time my n3DS still update Twilight with Twilight Updater and right now. I update via Universal Updater)

I also want to know what ramDisk is working, if I set ramDisk for each .nds file. It will be boot faster or not?
 

RocketRobz

Stylish TWiLight Hero
OP
Developer
Joined
Oct 1, 2010
Messages
17,000
Trophies
3
Age
25
XP
21,988
Country
United States
I have a problem that my n3DS cannot soft reboot by L+Down+Select. But I also install in my n2DS and soft reboot working well.

I am not sure what happen? This is just my assumption ,my n3DS has installed Twilight from very long time before I get my n2DS. The Twilight Menu might be the very early edition that there might be some setting not compatible with the latest version. (That time my n3DS still update Twilight with Twilight Updater and right now. I update via Universal Updater)
Certain consoles just don't seem to work with soft-resetting. I don't know why.
I also want to know what ramDisk is working, if I set ramDisk for each .nds file. It will be boot faster or not?
RAM disk does not improve boot speeds.
 

KitHunter

New Member
Newbie
Joined
Jan 27, 2009
Messages
2
Trophies
1
XP
160
Country
Thailand
Certain consoles just don't seem to work with soft-resetting. I don't know why.

RAM disk does not improve boot speeds.
Thank you for your reply. Really appreciate that get answer from great developer.
I am very noob about RamDisk, would you please explain what it work for? Is it for just some game that cannot play well on Twilight? But I try almost game on Twilight Menu++ and it works perfectly on my n3DS and n2DS. Then I am curious that how to use RamDisk for.
I am really love to play with WideScreen mode in my n3DS.

Thank you in an advance.
 

RocketRobz

Stylish TWiLight Hero
OP
Developer
Joined
Oct 1, 2010
Messages
17,000
Trophies
3
Age
25
XP
21,988
Country
United States
Thank you for your reply. Really appreciate that get answer from great developer.
I am very noob about RamDisk, would you please explain what it work for? Is it for just some game that cannot play well on Twilight? But I try almost game on Twilight Menu++ and it works perfectly on my n3DS and n2DS. Then I am curious that how to use RamDisk for.
I am really love to play with WideScreen mode in my n3DS.

Thank you in an advance.
RAM disk support is made for certain incompatible homebrew titles.
If you are unable to launch one of those, you can create a RAM disk here: https://wiki.ds-homebrew.com/twilightmenu/creating-ram-disks
 

Datbo

Active Member
Newcomer
Joined
Jun 18, 2023
Messages
41
Trophies
0
Age
20
XP
377
Country
United States
Ive had this issue for a couple months , but neither amstrad emulators work for me. Crocods used to work very well for me but now it just wont boot up . Am I doing something wrong or has the updates messed it up?
 
v27.12.0 New

RocketRobz

Stylish TWiLight Hero
OP
Developer
Joined
Oct 1, 2010
Messages
17,000
Trophies
3
Age
25
XP
21,988
Country
United States
v27.12.0
Includes nds-bootstrap v2.2.0 (GBATemp thread)

What's new?​

  • The N-Card is now supported by the `Slot-1 microSD access` feature!
  • Added workaround to make homebrew only supporting up to 16KB DLDI drivers, now working with 32KB DLDI drivers!
    • Has not been tested with homebrew built with libnds v2.
  • DSi theme: Launching a game will now immediately play the launch animation like in the original DSi Menu!
    • Achieved by running the DSi binaries check and AP-fix check after the banner text appearing or changed.
  • Added build of FastVideoDSPlayer which supports 32KB DLDI drivers.
  • Added ESRB rating screens for Honeycomb Beat & Puppy Palace.

Bug fix​

  • Me and @lifehackerhansol: Fixed DLDI drivers built with THUMB (along with drivers decompressed from LZ77) causing TWLMenu++ to not get past `main.srldr` (DS(i) and/or TWLMenu++ splash screens).
Post automatically merged:

Ive had this issue for a couple months , but neither amstrad emulators work for me. Crocods used to work very well for me but now it just wont boot up . Am I doing something wrong or has the updates messed it up?
I have no clue.
 

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,538
Trophies
2
XP
40,388
Country
Mexico
What format do DSiWare saves have?
I am almost finished with Four Swords Anniversary and I want to backup my save, but I'm not sure which format it is in nor if the DSiWare save file from Twilight Menu is compatible with emulators like melonDS.
Going back to this, and just for clarification

I setup melonDS to run Four Swords Anniversary Edition. Then, I grabbed the PUB file that was generated from Twilight Menu for my save of the game, renamed it to .sav, and it seems like the file imported just fine, so the PUB file is 100% compatible with emulators for DSiWare 😁
 

alcab

Well-Known Member
Member
Joined
Nov 22, 2005
Messages
250
Trophies
1
Website
Visit site
XP
1,286
Country
I've detected a problem in latest version. Saga 3 with english translation beta 2 patch and fix doesn't work properly. Game plays fine, but music doesn't play (while sound does).

I'm going back to previous version. Hope this is something that can be fixed easily.

EDIT: I can confirm that going back to nds-bootstrap v2.1.0 and Twilight Menu++ v27.11.1 fixes the issue.
EDIT2: Updating to Twilight Menu++ v27.12.0 and using nightly version of nds-bootstrap -ce4626e also fixes the issue.
EDIT3: I can also confirm that when playing the game in Twilight Menu++ v27.12.0 and using standard version of nds-bootstrap v2.2.0, in-game music doesn't play (but sound does).
 
Last edited by alcab,

4d1xlaan

Well-Known Member
Member
Joined
Apr 21, 2024
Messages
1,060
Trophies
0
XP
1,170
Country
United States
I've detected a problem in latest version. Saga 3 with english translation beta 2 patch and fix doesn't work properly. Game plays fine, but music doesn't play (while sound does).

I'm going back to previous version. Hope this is something that can be fixed easily.

EDIT: I can confirm that going back to nds-bootstrap v2.1.0 and Twilight Menu++ v27.11.1 fixes the issue.
EDIT2: Updating to Twilight Menu++ v27.12.0 and using nightly version of nds-bootstrap -ce4626e also fixes the issue.
EDIT3: I can also confirm that when playing the game in Twilight Menu++ v27.12.0 and using standard version of nds-bootstrap v2.2.0, in-game music doesn't play (but sound does).
ce4626e is very old, that's just nds bootstrap 1.5.2

if you would like and you have time, you can try some of the nightlies for these commits and see if you can narrow down which one makes it stop working. this would be helpful for the devs I think

https://github.com/DS-Homebrew/nds-bootstrap/compare/v2.1.0...v2.2.0

you can access them from here, the workflows that say Commit with master next to them is what you want to try

https://github.com/DS-Homebrew/nds-bootstrap/actions/workflows/build.yml

you need a github account to download artifacts, once you are logged in you click on the name of the workflow, and at the bottom, you will see "build", with a download icon on the right

(also, do you know if the original game has the same problem, or it's only the translation?)
 
  • Like
Reactions: alcab

RocketRobz

Stylish TWiLight Hero
OP
Developer
Joined
Oct 1, 2010
Messages
17,000
Trophies
3
Age
25
XP
21,988
Country
United States
I've detected a problem in latest version. Saga 3 with english translation beta 2 patch and fix doesn't work properly. Game plays fine, but music doesn't play (while sound does).

I'm going back to previous version. Hope this is something that can be fixed easily.

EDIT: I can confirm that going back to nds-bootstrap v2.1.0 and Twilight Menu++ v27.11.1 fixes the issue.
EDIT2: Updating to Twilight Menu++ v27.12.0 and using nightly version of nds-bootstrap -ce4626e also fixes the issue.
EDIT3: I can also confirm that when playing the game in Twilight Menu++ v27.12.0 and using standard version of nds-bootstrap v2.2.0, in-game music doesn't play (but sound does).
Music plays fine on my side using nds-bootstrap v2.2.0. Try re-installing.
https://wiki.ds-homebrew.com/twilightmenu/uninstalling-ds or https://wiki.ds-homebrew.com/twilightmenu/uninstalling-3ds
https://wiki.ds-homebrew.com/twilightmenu/installing

EDIT: If re-installing does not fix it, stay on the prior TWLMenu++ and nds-bootstrap versions, because I have no idea how to fix this.
Would still be nice to know which commit has caused this issue.
 
Last edited by RocketRobz,
  • Like
Reactions: alcab

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Veho @ Veho: ;O;