Setting up Development Environment
Setup
- Install devkitARM. If it's already installed, update it. On Windows there's a GUI installer. On Linux/Mac there's a perl-script. Make sure you also select ctrulib when installing.
- Download the files in the ctrulib repository (even though the library has already been installed) because the repository contains a 3DS project template and examples.
Linux
- First get the devkitARM updater Perl script for Linux.
- Run it with superuser privileges if your /opt directory is not marked world read-writeable.
- Get ctrulib from Smealum's GitHub repository, build and install it.
sudo apt-get install git curl curl -L http://sourceforge.net/projects/devkitpro/files/Automated%20Installer/devkitARMupdate.pl/download -o devkitARMupdate.pl chmod +x ./devkitARMupdate.pl sudo -s ./devkitARMupdate.pl /opt/devkitpro cd /opt/devkitpro git clone https://github.com/smealum/ctrulib.git cd ctrulib/libctru export DEVKITPRO=/opt/devkitpro export DEVKITARM=$DEVKITPRO/devkitARM make make install exit echo "export DEVKITPRO=/opt/devkitpro" >> ~/.bashrc echo "export DEVKITARM=\$DEVKITPRO/devkitARM" >> ~/.bashrc echo "export PATH=\$PATH:\$DEVKITARM/bin" >> ~/.bashrc source ~/.bashrc
Optional Packages
- An alternative GPU shader assembler called nihstro is available at 4dsdev. Windows binaries are available, while it needs to be compiled from source on other platforms.
Building the examples
3DS examples are still being created. Currently there are a few examples in the separate ctrulib download under the "examples" folder.
- arm11u: simple homebrew example
- sdmc: demonstrates how to access files on the SD card
- mic: demonstrates how to read sound from the microphone
- gpu: demonstrates how to render 3D geometry with the GPU
Building the examples on Linux with Netbeans
- Go to File->New Project...
- Select C/C++ Project with existing code
- Navigate to the examples directory and select the folder for the project you want to build; eg. /home/vtsingaras/3ds/examples/app_launch
- Leave Configuration Mode to 'Automatic' and click 'Finish'.
- It will fail to build. Now edit Makefile and insert these two lines, adjusting for your devkitpro path, at the top:
export DEVKITPRO=/opt/devkitpro export DEVKITARM=/opt/devkitpro/devkitARM
- Right-click the project and go to Properties->Code Assistance and click C Compiler.
- In include directories enter
/opt/devkitpro/devkitARM/include;/opt/devkitpro/ctrulib/libctru/include
adjusting again for your devkitPro path.
- Do the same for 'C++ Compiler'.
- Go to 'Run' and click 'Clean and Build Project'.
- Now right-click on the project and select Code Assistance->Reparse Project.
Now you can use Netbeans' code completion feature and build your project from the Run menu.
Building homebrew for distribution
To build your homebrew open a terminal, browse to your homebrew's folder and run make.
- This will build a .elf file and a .3dsx file together with an icon. The icon and .3dsx file are the format required for the Homebrew Channel.
- To build a Gateway-compatible .3ds file you need to strip the .elf file and use makerom on it (with the provided RSF file):
arm-none-eabi-strip [ELF file] makerom -f cci -o [.3ds file] -rsf [RSF file] -target d -exefslogo -elf [ELF file] -icon [icon file] -banner [banner file]