nds-bootstrap loader: Run commercial NDS backups from an SD Card

nds-bootstrap:

Thanks to the work of ahezard, Gericom, Apache, Robz8, _catcatcat, and shutterbug2000 and other contributors, we can now load NDS games from the SD card, without any flashcard/SLOT-1 card.

Don't expect high compatibility, but do expect many, many updates.

:arrow: Compatibility listing:
https://docs.google.com/spreadsheets/d/1LRTkXOUXraTMjg1eedz_f7b5jiuyMv2x6e_jY_nyHSc/edit#gid=0

:arrow: The official Discord server for nds-bootstrap:
https://discordapp.com/invite/7bxTQfZ

:arrow: The thread for the recommended loader (by Robz8):
https://gbatemp.net/threads/twloader-ctr-mode-nds-app.448375/

:arrow: SRLoader for softmodded DSis (by Robz8):
https://gbatemp.net/threads/srloader-nds-app-for-dsi.472200/

:arrow: If you're more of a forwarder person:
https://gbatemp.net/threads/nds-forwarder-cias-for-your-home-menu.426174/

:arrow: Link to the releases page:
https://github.com/ahezard/nds-bootstrap/releases

:arrow: Anti-Piracy patch list by Robz8
https://gbatemp.net/threads/ap-patch-preservation.477536/

Also, thank you to our testers:
Historian
JoshuaDoes
thejsa
Alerdy
PokeAcer


Also, a video thanks to Robz8:


And another thanks to Alerdy:
 
Last edited by shutterbug2000,

Chrisssj2

Well-Known Member
Member
Joined
Feb 12, 2008
Messages
2,704
Trophies
1
XP
4,387
Country
Netherlands
I installed the I installed twilight menu cia on my 3ds but i get ARM9 Prefetch abort (svcbreak)... Did I do anything wrong? Im on 11.6.0 39 - E Tested on emunand and sysnand

I also have a supercardDStwo+ which most of the time doesnt load (which is another reason why i want to use this homebrew)
1694355779446.png

Post automatically merged:

I managed to get it working... by launching ds download play... but then after reboot it does it again. and i have to run ds download play again to get it to work. annoying. Should be fixed probably.

However I try to run golden sun 3. and after creating save file it just white screens... and at that point it will corrupt your memory card.. dangerous to use the software appearently because It corrupted my boot.firm file
 
Last edited by Chrisssj2,

RocketRobz

Stylish TWiLight Hero
Developer
Joined
Oct 1, 2010
Messages
16,601
Trophies
3
Age
24
XP
21,004
Country
United States
I installed the I installed twilight menu cia on my 3ds but i get ARM9 Prefetch abort (svcbreak)... Did I do anything wrong? Im on 11.6.0 39 - E Tested on emunand and sysnand

I also have a supercardDStwo+ which most of the time doesnt load (which is another reason why i want to use this homebrew)View attachment 393047
Post automatically merged:

I managed to get it working... by launching ds download play... but then after reboot it does it again. and i have to run ds download play again to get it to work. annoying. Should be fixed probably.
I have no idea why this happens. Which version of Luma are you using?
However I try to run golden sun 3. and after creating save file it just white screens... and at that point it will corrupt your memory card.. dangerous to use the software appearently because It corrupted my boot.firm file
Sounds like your SD card is dying. Please use a new SD card.
Can you convert saves from a DSTWO plus flashcart on a nds game to use for bootstrap nds? if so how?
This tool should do the job: https://www.gamebrew.org/wiki/Shunyweb_Savegames_Converter
 
  • Like
Reactions: Lightyose and Zense

RocketRobz

Stylish TWiLight Hero
Developer
Joined
Oct 1, 2010
Messages
16,601
Trophies
3
Age
24
XP
21,004
Country
United States
so there is no reason to keep my old NDS anymore?
nds-bootstrap (and TWLMenu++) can also be used on those consoles with a flashcard.
Both DS games and some DSiWare can be run, and nds-bootstrap's in-game menu (to dump RAM and take screenshots) can be opened as well.
 
  • Like
Reactions: Zense

naddel81

Well-Known Member
Member
Joined
Dec 14, 2009
Messages
2,549
Trophies
1
XP
3,799
Country
United States
nds-bootstrap (and TWLMenu++) can also be used on those consoles with a flashcard.
Both DS games and some DSiWare can be run, and nds-bootstrap's in-game menu (to dump RAM and take screenshots) can be opened as well.
but why would I use nds-bootstrap on a NDS when it can natively run those games?
 

RocketRobz

Stylish TWiLight Hero
Developer
Joined
Oct 1, 2010
Messages
16,601
Trophies
3
Age
24
XP
21,004
Country
United States
but why would I use nds-bootstrap on a NDS when it can natively run those games?
I just told you. You can take screenshots of the DS games, as well as run some DSiWare that could only be run on DSi or 3DS.
Also, nds-bootstrap runs the games natively on every DS, DSi, and 3DS console.
 
  • Like
Reactions: Zense

naddel81

Well-Known Member
Member
Joined
Dec 14, 2009
Messages
2,549
Trophies
1
XP
3,799
Country
United States
I just told you. You can take screenshots of the DS games, as well as run some DSiWare that could only be run on DSi or 3DS.
Also, nds-bootstrap runs the games natively on every DS, DSi, and 3DS console.
but basically the gain on a NDS in negligible and on 3DS it is huge, right?
 

RocketRobz

Stylish TWiLight Hero
Developer
Joined
Oct 1, 2010
Messages
16,601
Trophies
3
Age
24
XP
21,004
Country
United States
but basically the gain on a NDS in negligible and on 3DS it is huge, right?
Not sure what you mean. I don't see why taking screenshots or running DSiWare on a DS or DS Lite wouldn't be huge features (even though some of the DSiWare titles are shovelware).

If you install TWLMenu++ on a flashcard though, you don't need to use nds-bootstrap to run DS games, as it's completely optional.
There are some compatibility differences between the flashcard kernel and nds-bootstrap.
For example, nds-bootstrap on a flashcard cannot run Golden Sun, but with TWLMenu++, you can have it use the flashcard kernel to run it instead.
Certain ROM hacks cannot be run using the kernel, but they'll work using nds-bootstrap.

Also, on a DS or DS Lite, GBA ROMs can be run natively using a Slot-2 flashcard, compared to using GBARunner2 on a DSi to run GBA ROMs, where there will be some compatibility issues.

All that said, there are still reasons to keep your old DS and/or DS Lite console (not saying you should keep it, ofc).
 
  • Like
Reactions: naddel81 and Zense

The Catboy

GBAtemp Official Catboy™: Boywife
Member
Joined
Sep 13, 2009
Messages
27,951
Trophies
4
Location
Making a non-binary fuss
XP
39,355
Country
Antarctica
but basically the gain on a NDS in negligible and on 3DS it is huge, right?
Kind of starting to feel like you are fishing for something. If you would like my advice, I use Twilight on both my 3DS and DS through all of my carts. Quite honestly, it’s worth doing both but the 3DS has a slight edge with currently have full DSi functionality. Otherwise, running off a flashcart has its own advantages and fun
 

BasedKiliK

Salt of the Earth~
Member
Joined
May 22, 2008
Messages
838
Trophies
1
Age
33
Location
A Blessed Kingdom.
XP
1,008
Country
United States
but basically the gain on a NDS in negligible and on 3DS it is huge, right?
I think you're misunderstanding how this works. The "NDS" mode of the 3DS consoles is literally the same as the normal native functionality of the actual NDS(i) systems. My terminology may be a bit wrong, but nds-bootstrap basically expands functionality of said "NDS" mode or the native DS firmware to allow booting additional software and roms directly from the SD card or from the flashcart, with an expanded feature set and support for patches, romhacks, etc. A 3DS is not "better" than an NDS in this regard. In fact, I specifically have a DSi for playing NDS games through Twilightmenu as they're properly sharp and visually appealing with the native resolution, verses the blurry upscaling of the 3DS.

If you prefer using your old NDS, then do so. There's no real advantage on the 3DS side other than just having all games across generations on the same system.
 

Chrisssj2

Well-Known Member
Member
Joined
Feb 12, 2008
Messages
2,704
Trophies
1
XP
4,387
Country
Netherlands
I have no idea why this happens. Which version of Luma are you using?

Sounds like your SD card is dying. Please use a new SD card.

This tool should do the job: https://www.gamebrew.org/wiki/Shunyweb_Savegames_Converter
Latest luma. It seems the tool wasnt necessary it works straight out of the box by pasting in the right location.
SD card wasn't dying it crashed because of nds bootstrap and pressing home and the 3ds turning itself off midway doing something most likely. Sd card still works fine. Just because there is corruption once or a few times. doesnt mean you need to buy a new sd card.... (actually this was never the case for me and ive used dozens upon dozens of sd cards with some of them having mutiple corruptions in similiar cases like this, though im not saying it is not a possibility ofcourse)

Im sorry to say that people in my experience throw that reformat sd/ buy new sd all too fast too many times. But perhaps other people experience differ.
 

RocketRobz

Stylish TWiLight Hero
Developer
Joined
Oct 1, 2010
Messages
16,601
Trophies
3
Age
24
XP
21,004
Country
United States
SD card wasn't dying it crashed because of nds bootstrap and pressing home and the 3ds turning itself off midway doing something most likely. Sd card still works fine. Just because there is corruption once or a few times. doesnt mean you need to buy a new sd card.... (actually this was never the case for me and ive used dozens upon dozens of sd cards with some of them having mutiple corruptions in similiar cases like this, though im not saying it is not a possibility ofcourse)
Well, libfat is known to not support every SD card (properly). The SD card brand (or the remaining space of it) may be a factor in corruption. Which brands do you normally use?
Im sorry to say that people in my experience throw that reformat sd/ buy new sd all too fast too many times. But perhaps other people experience differ.
You're actually one of the few (if any) people reporting this issue.
 
  • Like
Reactions: Zense

Valery0p

Well-Known Member
Member
Joined
Jan 16, 2017
Messages
560
Trophies
0
XP
1,646
Country
Italy
Just wanted to congratulate with everyone for this achievement (even if nds_bootstrap has been a good alternative for a while I think).
My goodness, it's been 6 years since @ahezard started this project, we had no idea what the limits of the hardware were...
Thanks @RocketRobz for bringing this project forward since then :)
 

phillyrider807

Well-Known Member
Member
Joined
May 2, 2009
Messages
447
Trophies
1
XP
1,402
Country
United States
Just wanted to post here and say congrats to the dev team. I remember when i first hacked my 3ds over 5 years ago and dark dawn was one of the games i wanted to play and found out it wasn't compatible. I've since moved on to the steam deck and already did a playthrough of the game but still wanted to say congrats to the dev team for finally getting that game working!.
 

ahezard

Well-Known Member
Member
Joined
Feb 17, 2016
Messages
116
Trophies
0
XP
1,140
Country
France
v1.0.0: Rise of The Sun
Included in TWiLight Menu++ v26.1.0 (GBATemp thread)

What's new?​

  • nds-bootstrap has supported many popular DS games, such as Super Mario 64 DS, New Super Mario Bros., the Kirby games, the MegaMan ZX games, the Castlevania games, the Sonic Rush series of games, The Legendary Starfy, and many more!
    For a long time though, one of them has not been supported... until now.
    That's right! You've asked and we listened, and now, Golden Sun: Dark Dawn is finally supported!
    • To know how it's finally supported, scroll down below.
    • This does not apply to B4DS mode.
  • Nintendo programs such as NTR EVA/Aging and Wii Sequencer are now supported.

Improvements​

  • The heap of TWL titles is no longer shrunk in order to maintain compatibility!
    • This does not apply to B4DS mode.
    • On DSi, for cart-based games, only 128KB of heap is shrunk if the game is running from the SD card, and/or if cheats are enabled.
    • ce7i binary has been moved to DSi WRAM for a minor speed boost.
  • To fit a bit more small ROMs into RAM, those which do not contain overlays are now loaded without the arm7 binary.

Bug fixes​

  • Fixed certain SDK3-4 games not booting, due to the cluster cache of the save file being compressed.
  • Fixed an overlooked bug where TWL (DSi-Enhanced/Exclusive) games would crash later on 3DS consoles.
  • Error exception screen is now triggered for NTR-type games running in DSi mode, or if using DSiWarehax.
  • Fixed certain games not booting by improving MPU search code.
  • Fixed soft-reset button combo not working in Foto Showdown.
    • The game actually uses the soft-reset function meant to be used in DSiWare titles, rather than the normal cart version.
  • On DSi, TWLCFG from TWLNAND is now re-loaded, if it's not detected in RAM.
  • Fixed an overlooked bug which went unnoticed since DSiWare got supported on DS & DS Lite. The bug being where on DS or DS Lite, starting a DSiWare title which has WiFi support would wipe the WiFi data off of the console.
  • The EUR/AUS version of Bomberman Blitz now boots on DS & DS Lite.


How is Golden Sun: Dark Dawn working now? What has been done?​

NOTE: This is a lengthy read. If you don't want to know the full specifics, scroll down to In short.

For the longest time since nds-bootstrap's first release supporting retail/commercial games, one of those games has never worked, despite the many compatibility fixes implemented throughout each later release.
That game is Golden Sun: Dark Dawn. When trying to boot it, it would only show two black screens.

The reason for that, is due to an AP measure in the game itself, and the AP-fix included with TWiLight Menu++ has unfortunately never patched it out, despite it being known to work with flashcards.
You might be wondering, but then how does the demo version boot sucessfully? It simply didn't include any AP measures.

After a long wait, and gaining a little bit of ARM ASM knowledge from playing around with it and getting DSiWare games working on DS/DS Lite, I've decided to implement a new AP-fix for Golden Sun: Dark Dawn, with some help from Gericom (the GBARunner2/3 developer) and the NO$GBA debugging emulator.

The first AP measure takes place in overlay 335, which contains DSProtect v2.01s.
By comparing what happens in the game's code with and without nds-bootstrap, I was able to patch the overlay to reproduce what occurs without nds-bootstrap.
As a result, the game now boots into the company logos and the title screen.
From there, the name entry menu would appear, and after entering the name, the company logos would then appear again, and after fading out, the game crashes.

The next step was to patch overlay 334, which contains DSProtect v2.01 (with no s at the end, and works differently from the other one).
After applying the patch, as well as a new checksum for the overlay, the game no longer crashes, and the title screen appears once again.

To make the company logos and title screen not appear again after entering the character's name, the next step was to make the patch for overlay 334 return the proper value the game expects (which is 0x11F).
As a result, the game's opening cutscene now plays. Unfortunately, after it has played, the game once again goes back to the company logos and title screen.
To fix that, the patch for overlay 334 has been made to only return the 0x11F after name entry, and the game's first cutscene after the opening one now plays.

After going through the dialog boxes, the game's main protagonist can now be moved in the overworld, right? Well, sort of.
The overworld is nothing but a black screen and a few icons at the screen corners.
The protagonist can be moved to the right for him to appear, and the background of Haidhia Lookout will shift in close to him as a flat texture.
Touching the bottom-left icon (or pressing the X button) will open the main menu, and can be navigated normally, but when exiting the menu, a battle against Dim Dragon will trigger.
The battle gets triggered because there's still an instance of the overlay 334 checksum which hasn't been patched with the new one.
Patching the checksum instances found in the USA ROM has not removed the battle encounter, but it has been sucessfully removed in the European ROM.
Apparently, some checksum instances are encrypted along with the overlay's code.
To remove the battle encounter in the USA ROM, the patch code has been made so that it looks for an instance of the checksum, once an overlay has loaded.

Furthermore, when I tried a save file which gets past the black area, some features wouldn't work correctly, such as using Psynergy.
It would only work when one is assigned to either the L or R buttons.
Getting an item would also either appear as the wrong one, or crash the game.

The final step is to fix those remaining AP issues, and to do that, the patch code has been slightly reworked to not affect the checksum, but that alone will not fix it.
After some more looking into and patching, the patch code for overlay 335 has been ported over to 334.

For those who understand ASM code, here's what nds-bootstrap does to the overlay code (offsets are for the USA/AUS region, but the patch works with other regions):

Overlay 335 (DSProtect v2.01s)
  1. At 0x021F8284, change the beq instruction (0A000005) to b.
  2. At 0x021F82D8, change the ldr instruction (E59D1028) to mov r1, 0h.
  3. At 0x021F82DC, change the ldr instruction (E59D0040) to mov r0, 0h.
  4. Change instructions at 021F82E4 & 021F82E8 to nop.
Overlay 334 (DSProtect v2.01)
  1. At 0x021F910C, change the beq instruction (0A00000E) to b.
  2. At 0x021F91A8, change the ldr instruction (E59D102C) to mov r1, 0h.
  3. At 0x021F91AC, change the ldr instruction (E59D0044) to mov r0, 0h.
  4. Change instructions at 021F91B4 & 021F91B8 to nop.
After all of this looking into and fixing/patching, Golden Sun: Dark Dawn is finally supported by nds-bootstrap!

In short​

The AP-fix that has been included with TWLMenu++ for a while was broken, so a new & better AP-fix has been implemented into nds-bootstrap. It has taken 8 days with lots of changes & improvements to the code to ensure that everything was working properly.

Congratulations @RocketRobz for reaching this milestone! I am amazed by the amount of work and dedication you have put into this project. Well done!
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: I think Switch 2 will launch about Christmas this year lol