BlocksDS

From GameBrew
Revision as of 03:11, 8 October 2023 by HydeWing (talk | contribs) (Created page with "{{Infobox DS Homebrews |title=BlocksDS |image=Ndspc2.png |description=Main BlocksDS SDK repository. |author=AntonioND |lastupdated=2023/08/01 |type=Development Tools |version=0.8.1 |license=Mixed |download=https://dlhb.gamebrew.org/dshomebrew/blocksds.7z |website=https://github.com/blocksds/sdk |source=https://github.com/blocksds/sdk |donation= }} {{#seo: |title= (Development Tools) - GameBrew |title_mode=append |image=Ndspc2.png |image_alt=BlocksDS }} BlocksDS SDK is an...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
BlocksDS
Ndspc2.png
General
AuthorAntonioND
TypeDevelopment Tools
Version0.8.1
LicenseMixed
Last Updated2023/08/01
Links
Download
Website
Source

BlocksDS SDK is an SDK for Nintendo DS! It's built on the hard work of many talented individuals. Here are its goals:

  1. Create a user-friendly NDS software development kit based on GCC, with minimal dependencies.
  2. Encourage developers to tinker and enhance the SDK by providing them with its complete source code. It also demonstrates how straightforward it is to build the entire codebase. The only exception is the tolchain, which can be tricky to build. To simplify things, we use Wonderful Toolchains instead of asking users to build it themselves.
  3. Strive to maintain compatibility with existing C projects. Ideally, replacing the makefile with one from BlocksDS should be sufficient to build any project that utilizes libnds.

Follow the instructions in this file to use the Docker images.

Option 3: Build the SDK yourself

This is the option you should use if you want to help develop BlocksDS, or if you want to always use the cutting edge version of BlocksDS.

Follow the instructions in this file to use the Docker images.

Test

To test that everything is working, you can try building one of the templates.

There is a template that lets the programmer write the code for both CPUs of the NDS (templates/rom_combined) and a template that uses the default ARM7 core that comes with Blocks DS and lets the programmer focus on the ARM9 core. There are also two templates to create static libraries.

For example, go to the combined template folder and run:

cd templates/rom_combined
make

This should have generated a NDS ROM that you can run on any emulator or flashcart.

To do a verbose build, run make like this (this also works for the Makefile of the SDK):

VERBOSE=1 make

NOTE: The paths in the Makefile that refer to source code, includes, graphics, data, etc, must be inside the folder of the project. That means you can't use .. in a path to go one level up from the Makefile. If you really need to use folders outside of the folder of the project, create a symlink to the destination, or build the other code as a static library and link it with the project.

Additional libraries

This is a list of libraries that support BlocksDS and can be installed in /opt/blocksds/external:

  • [{NFlib|NightFox’s Lib]]

    Library designed to make development of 2D games easy, with support for sprites, backgrounds (even "infinite" maps), and it also has limited 2D graphics support using the 3D engine.

  • Nitro Engine

    Library to create 3D applications. It supports dual screen 3D, static and animated models, supports all texture types, and has basic 2D support using the 3D hardware. It's compatible with NightFox's Lib.

Keeping multiple versions of BlocksDS

You may keep multiple versions of this SDK in your PC. The location of the active SDK is stored in the environment variables BLOCKSDS and BLOCKSDSEXT, so all you need to do is to change their values and point to the version of the SDK you want to use.

By default, the paths are assumed to be /opt/blocksds/core/ and /opt/blocksds/external/. The first one is used for core BlocksDS libraries and tools, and it is managed by BlocksDS. The second one is left for users to freely install third party libraries and tools.

Changelog

v1.0

  • First Release.

Credits

This project wouldn't have been possible without:

External links

Advertising: