nds-bootstrap is an open-source application that allows Nintendo DS/DSi ROMs and homebrew to be natively utilised rather than using an emulator. nds-bootstrap works on Nintendo DSi/3DS SD cards through CFW and on Nintendo DS through flashcards.
ROM Compatibility
nds-bootstrap supports most DS/DSi ROMs, with a few exceptions. You can enhance your gaming experience with cheats and faster load times than general cartridges (for games that support those features). Game saving is supported too and will be saved in the .sav
extention, and .pub
or .prv
for DSiWare. If you find a bug, please report it in the issues tab. ROM compatibility is recorded in the compatibility list.
Anti-Piracy patches can be loaded via IPS files, but they are not included inside the software itself.
nds-bootstrap also supports many homebrew applications, including games like DScraft.
B4DS mode (a result of running nds-bootstrap on DS-mode flashcards with locked SCFG or DS Phat/Lite) only supports some DS and DSiWare ROMs. You can increase compatibility by inserting a DS Memory Expansion Pak.
Compiling
If your goal is to get a build of the latest commit, you can download that from our TWLBot Builds repository. Also, if you push your commits to a GitHub fork, you can have GitHub Actions run on every commit that way. If, however, you'd like to compile locally, you will need to install devkitARM with the necessary Nintendo DS development libraries.
- Install devkitPro's
pacman
package manager as described on the devkitPro wiki, then run the following command to install the needed libraries:(Note: Command will vary by OS,sudo dkp-pacman -S nds-dev
sudo
may not be needed and it may be justpacman
instead) - Clone this repository using git (
git clone https://github.com/DS-Homebrew/nds-bootstrap.git
) and navigate to the cloned repo - Compile
lzss.c
to a directory in your PATH using a C compiler such as GCC (gcc lzss.c -o /usr/local/bin/lzss
)- On Windows it must instead be
lzss.exe
in the root of the repository
- On Windows it must instead be
- Run
make package-nightly
to compile nds-bootstrap- The output files will be in the
bin
folder
- The output files will be in the
If you need help compiling, please ask for help in our Discord server or a GitHub Discussion.
Frontends
A frontend isn't required as nds-bootstrap uses an ini file to load its parameters. However, it is very much recommended.
TWiLight Menu++
TWiLight Menu++ is a frontend for nds-bootstrap, developed by Rocket Robz & co. It has 6 customizable launchers to choose from with the ability to launch emulators and other homebrew.
It also includes a number of Anti-Piracy patches for the games and will automatically configure nds-bootstrap for you, with customizable per game settings.
Forwarders
Allows you to run games directly from the DSi Menu or 3DS HOME Menu. Some compatibility features from TWiLight Menu++ are missing in forwarders so if you have issues you may need to edit the per-game settings by holding Y while loading the forwarder.
YANBF (Yet Another nds-bootstrap Forwarder)
An alternative forwarder generator for 3DS users. YANBF forwarders are 3DS-mode applications so they count towards the normal 300 title limit insted of the smaller 40 title limit on DSi-mode applications, however they cannot have animated icons and take slightly longer to load.
Credits
Developers
- Rocket Robz: Lead developer, DSi mode and DSiWare support, B4DS mode, general maintenance and updates
- shutterbug2000: SDK5 support, help with DSi mode support, and some other implemented stuff
- ahezard: Starting the project, former lead developer
- Pk11: In-game menu, screenshot taking, manual loading, and translation management
- Gericom: Improving B4DS compatibility
Other
- devkitPro: devkitARM and libnds
- Arisotura: BIOS reader from dsibiosdumper used in the in-game menu
Translators
- Catalan: Juan Adolfo Ortiz De Dompablo
- Chinese Simplified: James-Makoto, R-YaTian
- Chinese Traditional: James-Makoto, R-YaTian
- Danish: Sebastian øllgaard, Nadia Pedersen
- Dutch: guusbuk, TM-47
- French: Dhalian, Fleefie~, LinuxCat, SombrAbsol, TM-47
- German: TheDude, TM-47
- Greek: TM-47
- Hebrew: Barawer, Yaniv Levin
- Hungarian: TM-47, Viktor Varga
- Indonesian: heydootdoot, ZianoGG
- Italian: TM-47
- Japanese: Pk11
- Korean: I'm Not Cry, Myebyeol_NOTE
- Norwegian: Nullified Block, TM-47
- Polish: Avginike, gierkowiec tv, SdgJapteratoc, TM-47
- Portuguese (Portugal): Tavisc0
- Portuguese (Brazil): Tavisc0, TM-47
- Romanian: Tescu
- Russian: Ckau, mixyt, Rolfie
- Ryukyuan: kuragehime
- Spanish: beta215, Juan Adolfo Ortiz De Dompablo, Nintendo R, nuxa17, Radriant, SofyUchiha, TM-47
- Swedish: TM-47
- Turkish: Egehan.TWL, rewold20, TM-47
- Ukrainian: MichaelBest01, TM-47, вухаста гітара
- Valencian: Juan Adolfo Ortiz De Dompablo, tsolo