Difference between revisions of "Setting up Development Environment"
(→Unix-like platforms: Change SourceForge link to GitHub link for Perl installer) |
m (Added a troubleshooting section, for very common problems.) |
||
Line 90: | Line 90: | ||
arm-none-eabi-strip '''[ELF file]''' | arm-none-eabi-strip '''[ELF file]''' | ||
makerom -f cci -o '''[.3ds file]''' -rsf '''[RSF file]''' -target t -exefslogo -elf '''[ELF file]''' -icon '''[icon file]''' -banner '''[banner file]''' | makerom -f cci -o '''[.3ds file]''' -rsf '''[RSF file]''' -target t -exefslogo -elf '''[ELF file]''' -icon '''[icon file]''' -banner '''[banner file]''' | ||
+ | |||
+ | = Troubleshooting = | ||
+ | '''I get the "Please set DEVKITARM in your environment." error.''' | ||
+ | |||
+ | Use the following command before installing [http://askubuntu.com/questions/573070/problem-setting-up-environment-for-make-command-execution]: | ||
+ | sudo chown $USER /opt/devkitPro/ -R |
Revision as of 07:39, 15 November 2016
Setup
- Install devkitARM. If it's already installed, update it.
- On Windows, there's a graphical installer.
- On Unix-like platforms such as Linux/macOS, there's a Perl script. Make sure you also select libctru and the 3ds examples when installing.
- Depending on the kind of homebrew you want to develop, you may be interested in installing and using additional libraries and tools which don't ship alongside devkitARM/libctru. A list of them can be found in Homebrew Libraries and Tools.
Windows
devkitPro provides Win32-native precompiled versions of devkitARM which can be run directly on Windows.
- download the latest version of the graphical installer from SourceForge and run it, following the instructions as you go.
- An Internet connection is required.
- You will want to make sure devkitARM is selected during the installation process to develop for the 3DS (and also the DS and GBA) - you can also install devkitPPC (for GameCube/Wii development) and devkitPSP (for PlayStation Portable development) if you wish.
- Once the installer has finished, launch MSYS from:
- Windows 7 and earlier: Start -> All Programs -> devkitPro -> MSYS
- Windows 8 and 8.1: Right click on the Start screen and select 'All Apps'. You should find MSYS there.
- Windows 10 (pre-Anniversary Update): Start -> All Apps -> devkitPro -> MSYS
- Windows 10 (post-Anniversary Update): Start -> devkitPro -> MSYS
Alternatively starting with Windows 10 Anniversary Update (Version 1607), the Windows Subsystem for Linux (WSL) may also be used to run the Linux version of devkitARM. Due to the fact that GCC was originally designed for Unix-like platforms its use may yield performance and convenience improvements. For instructions on how to set up devkitARM under WSL refer to the Unix-like platforms section. For WSL installation instructions, see the MSDN page linked just above, but ignore the part about having to be a Windows Insider; as long as you have the Anniversary Update or later it will work just fine.
Unix-like platforms
Currently devkitPro provides precompiled versions of devkitARM for the following Unix-like platforms: Linux (x86/x64), macOS (universal binary). Note that Linux x64 binaries are usable under WSL.
- First, you need to install curl so the installer can download the devkitARM packages, and you should also install Git - you'll need it to update ctrulib or share your code on GitHub, among many other things.
- Find your way into a shell (eg. by opening a Terminal window), and follow the instructions for your OS:
- Debian/Ubuntu/Linux Mint/WSL:
sudo apt-get install git curl
- Fedora/CentOS/RHEL:
sudo yum install git curl
- openSUSE:
sudo zypper install git curl
- macOS: Download Git from [1] and install it. Curl is included with the OS.
- Debian/Ubuntu/Linux Mint/WSL:
- Next, we need to download, make executable and run the devkitARM updater (don't worry, the updater is also the installer.)
curl -L https://raw.githubusercontent.com/devkitPro/installer/master/perl/devkitARMupdate.pl -o devkitARMupdate.pl chmod +x ./devkitARMupdate.pl sudo ./devkitARMupdate.pl /opt/devkitpro
- Finally, we need to tell your shell where to find the devkitARM binaries.
echo "export DEVKITPRO=/opt/devkitpro" >> ~/.bashrc echo "export DEVKITARM=/opt/devkitpro/devkitARM" >> ~/.bashrc echo "export PATH=$PATH:/opt/devkitpro/devkitARM/bin" >> ~/.bashrc source ~/.bashrc
Building the examples
3DS examples are still being created; however, there are a growing number of examples available from the devkitPro/3ds-examples GitHub repository. There are now too many to list here in detail, so go ahead and browse them.
- To download these, if you installed Git (as you will have if you followed the above instructions), simply type
git clone https://github.com/devkitPro/3ds-examples.git
into your shell in the directory you wish to store the 3ds-examples folder in.- To overwrite the (almost certainly outdated) examples installed by the devkitPro updater, type
git clone https://github.com/devkitPro/3ds-examples.git $DEVKITPRO/examples/3ds
.
- To overwrite the (almost certainly outdated) examples installed by the devkitPro updater, type
These can be built from the command line.
To start a new homebrew project from the bash
shell, simply type the following (replacing ~/projects/my3dsproject
with the place you would like your project to be stored, with ~
meaning your HOME directory):
cp -r $DEVKITPRO/examples/3ds/templates/application ~/projects/my3dsproject cd ~/projects/my3dsproject
To compile it, type make
in the project directory.
To run it on your 3DS, start the Homebrew Launcher, press Y to open the network loader, then on your PC type: $DEVKITARM/bin/3dslink -a 192.168.X.X my3dsproject.3dsx
, replacing 192.168.X.X with your 3DS's IP address (displayed in the network loader screen) and my3dsproject with the name of the folder your project is in (ie. the folder you have the source folder in and the README file.)
Don't type the full path, just the last segment - eg. for C:\a\b\verygood3dsapp
, you would type verygood3dsapp.3dsx
.
If all goes well, you'll soon see your application running on your 3DS.
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 Bash shell as described above, browse to the folder of the homebrew you wish to compile, and run make
.
- This will build a .elf file and a .3dsx file (the homebrew executable itself) together with a .smdh file (the icon).
- The Homebrew Launcher can only run homebrew in the 3DSX format, and can only display SMDH icons.
- To build a CCI (.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 t -exefslogo -elf [ELF file] -icon [icon file] -banner [banner file]
Troubleshooting
I get the "Please set DEVKITARM in your environment." error.
Use the following command before installing [2]:
sudo chown $USER /opt/devkitPro/ -R