Difference between revisions of "Setting up Development Environment"

From 3dbrew
Jump to navigation Jump to search
(Add a note about nihstro)
Line 26: Line 26:
 
source ~/.bashrc
 
source ~/.bashrc
 
</pre>
 
</pre>
 +
 +
==Optional Packages==
 +
* 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.
  
 
= Building the examples =
 
= Building the examples =

Revision as of 12:59, 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 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]