v2.17.0: 10th Anniversary Release
On October 4th, 2016, nds-bootstrap has released, making it's way onto the 3DS homebrew scene, and later on, the DSi homebrew scene.
And now recently, as of October 4th, 2026, nds-bootstrap has turned 10 years old!
The goal of nds-bootstrap was to run DS(i) games and old DS homebrew from the DSi & 3DS SD card, a feature which many have thought to be impossible at the time.
This project has been started by (former lead dev.)
@ahezard, and later continued by
@shutterbug2000, and (current lead dev.)
@RocketRobz (me).
The first few releases have only supported some homebrew titles, but later releases have added support for official/commercial DS games, along with:
- DS game compatibility improvements, along with occasional homebrew compatibility improvements.
- Support for cheats.
- Flashcard support (known as B4DS mode), allowing DS games to run on any flashcard (even those such as Games n Music, which normally don't support those games!)
- An in-game menu similar to Luma's Rosalina menu.
- DSi mode support, allowing DSi-Enhanced games to use DSi features such as doubled clock speed, camera, and/or WPA1/2 WiFi networks, along with running DSi-Exclusive and DSiWare titles.
- A screenshot feature, which can be accessed through the in-game menu.
- Support for a lot of DSiWare titles (plus a few DSi-Exclusives) on flashcards (via B4DS mode) on DS & DS Lite consoles (another feature which was thought to be impossible).
- Support for custom/DS Phat screen color filters, changing the on-screen colors of games (though the code which applies them causes issues in some games).
- Changing the screen's refresh rate, affecting the game's speed as a result.
We are also aware of users wanting WPA1/2 WiFi support in non-DSi-Enhanced DS games.
While this feature would be perfect for a release such as this, it is unfortunately difficult to implement due to lack of knowledge on how to find the code which handles WiFi in those games.
Over the years, we have improved nds-bootstrap based on compatibility and bug reports from users like you!
Without such reports, this project would likely not be running as good as it is now.
Here's to 10 years of playing games from the DSi & 3DS SD card with nds-bootstrap!
And now, onto this anniversary release's changelog...
What's new?
- DSi/3DS SD Card: Homebrew compatibility has been improved once again!
- Both jEnesisDS and SNEmulDS now read from the SD card slot, and can now save data (where with a RAM disk, data would be cleared after rebooting or powering off)!
- Homebrew made with DS Game Maker now boot and/or read from NitroFS properly!
- The Bullet Bill version of Mario Paint Composer DS now boots!
- DSi/3DS SD Card: Implemented a DSi-Enhancement patch for jEnesisDS, where it increases the ROM size limit from 3MB (`0x306800` bytes) to 4MB (`0x400000` bytes). This means jEnesisDS (running in DSi mode) can now boot games such as:
- Sonic 3 & Knuckles
- Sonic 3D Blast/Flickies' Island
- Toy Story
- and more!
- DSi/3DS SD Card: Super Smash Bros. Crash! DS and other (pre-2010) DS homebrew which reset into another `.nds` file, will now boot straight into one instead of rebooting the console first.
- DSi/3DS: Added a Slot-1 mode setting for DSiWare, allowing them to boot faster than with the original SD/MMC code from those titles used!
- As a side effect, the original `.pub`/`.prv` save files will not be used, and will instead use the `.sav` files normally used in B4DS mode.
- Previously, this would only activate if SD/MMC access is disabled in SCFG.
- Regardless if this setting is turned off or on, it will automatically activate if a booted DSiWare ROM is larger than 64MB, as loading would be slightly slow without that setting.
- AP-fixes for Digimon Story: Super Xros Wars are now applied to modified ROMs such as ROM hacks and translations!
- DSi/3DS: Added ROM pre-load settings for:
- MegaMan Star Force
- MegaMan Star Force 2
- @Wokann: Dragon Quest IX Chinese fan-translation
- DSi/3DS: Title screen music for all MegaMan Star Force games are now asynchronously loaded.
- DSi/3DS: Added minimal async card read setting.
- Turning off the async card read setting will now turn off asynchronous (non-DMA) Mobiclip and STRM file reads.
- DSi/3DS: Added Slot-1 mode save support for Starship Defense & X-Scape!
- Various: Updated in-game menu translations.
Bug fixes
- DSi/3DS: By disabling SWI halt hook for the following games, these issues are fixed:
- Occasional slowdowns in Mario Kart DS
- Random freezing in Pokémon Gen 4 games
- Soma Bringer 3D graphical glitch in save selection menu
- This is done automatically, and will not need any settings changed.
- @taxicat1: Adjusted race condition fix for Akumajou Dracula: Gallery of Labyrinth (Rev 1), fixing a bug which caused a red error screen to appear after boot.
- DSi/3DS: Fixed Lux-Pain freezing at some point in the opening cutscene.
- DSi/3DS: Fixed CSI: Unsolved! not playing audio and freezing at the logo.
- DSi/3DS: Fixed Need for Speed Carbon: Own the City freezing on loading screen when using a screen color filter and/or DS Phat colors.
- DSi/3DS: Both AES keys 1 & 2 are now set (if they aren't) when booting a DSi title.
- Setting AES KEY2 fixes photos not being read in the DSi Camera app.
- DSi/3DS SD Card: Fixed homebrew not booting in DSi mode and/or via DSiWarehax (ex. Memory Pit, Flipnote Lenny, etc.).
- DSi/3DS SD Card: Fixed/improved ARGV passing for homebrew, allowing the Bullet Bill version of Mario Paint Composer DS to boot.
- 3DS: Fixed returning to loader not working for some 3DS consoles.
Known bugs
- DSi/3DS: Due to the Slot-1 mode setting using `.sav` save files normally used in B4DS mode, some DSiWare titles will not save, and NAND files cannot be accessed (aside from `TWLFontTable.dat`/`CHNFontTable.dat`/`KORFontTable.dat` placed in `sd:/_nds/nds-bootstrap/`).
- DSi/3DS SD Card: Due to a bug within jEnesisDS, it will not boot Toy Storywithout correcting the region field in the ROM's header, as it'll show a region lockout screen otherwise.
- This can be done by opening the ROM in a hex editor, going to offset 0x1F0, and writing either the letter `U` (for the USA version) or `E` (for the European version).