Difference between revisions of "Setting up Development Environment"
Jump to navigation
Jump to search
(Add a note about nihstro) |
(Added sf2dlib, gl3ds, caelina, and 3ds-cmake) |
||
Line 27: | Line 27: | ||
</pre> | </pre> | ||
− | ==Optional | + | ==Optional Tools and Libraries== |
+ | There are a number of other things which don't ship alongside devkitARM but which you might be interested in obtaining: | ||
+ | |||
+ | * Lectem has written a [https://github.com/Lectem/3ds-cmake CMake build system] for 3DS homebrew as a modern alternative to plain Makefiles | ||
* An alternative GPU shader assembler called nihstro is available at [http://4dsdev.org/thread.php?id=14 4dsdev]. Windows binaries are available, while it needs to be compiled from source on other platforms. | * An alternative GPU shader assembler called nihstro is available at [http://4dsdev.org/thread.php?id=14 4dsdev]. Windows binaries are available, while it needs to be compiled from source on other platforms. | ||
+ | * xerpi has written a simple 2D graphics library called [https://github.com/xerpi/sf2dlib sf2dlib] | ||
+ | * There are two incomplete OpenGL implementations available for 3DS development: [https://github.com/machinamentum/Caelina Caelina] and [https://github.com/cpp3ds/gl3ds gl3ds] | ||
= Building the examples = | = Building the examples = |
Revision as of 13:06, 23 August 2015
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 Tools and Libraries
There are a number of other things which don't ship alongside devkitARM but which you might be interested in obtaining:
- Lectem has written a CMake build system for 3DS homebrew as a modern alternative to plain Makefiles
- 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.
- xerpi has written a simple 2D graphics library called sf2dlib
- There are two incomplete OpenGL implementations available for 3DS development: Caelina and gl3ds
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]