/nds-bootstrap

Boot an nds file

Primary LanguageCGNU General Public License v3.0GPL-3.0


GBAtemp thread Discord server: #nds-bootstrap Build status on GitHub Actions Localization status on Crowdin

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) supports most (if not all) DS ROMs of which are supported on DSi/3DS. Some DSiWare ROMs are also supported.

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.

  1. Install devkitPro's pacman package manager as described on the devkitPro wiki, then run the following command to install the needed libraries:
    sudo dkp-pacman -S nds-dev
    
    (Note: Command will vary by OS, sudo may not be needed and it may be just pacman instead)
  2. Clone this repository using git (git clone https://github.com/DS-Homebrew/nds-bootstrap.git) and navigate to the cloned repo
  3. 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
  4. Run make package-nightly to compile nds-bootstrap
    • The output files will be in the bin folder

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++ 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.

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, parts of libtwl code used

Other

Translators