Changes

m
no edit summary
Line 1: Line 1:  
= Setup =
 
= Setup =
* Install [https://devkitpro.org/ devkitARM]. If it's already installed, update it.
+
Install [https://devkitpro.org/ devkitARM]. If it's already installed, update it using sudo (dkp-)pacman -Syu. On Windows, there's a [https://github.com/devkitPro/installer/releases/latest graphical installer]. On Unix-like platforms such as Linux/macOS, there's [https://github.com/devkitPro/pacman/releases/latest pacman]..
** On Windows, there's a [https://github.com/devkitPro/installer/releases/latest graphical installer].
  −
** On Unix-like platforms such as Linux/macOS, there's a [https://raw.githubusercontent.com/devkitPro/installer/master/perl/devkitARMupdate.pl 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==
 
==Windows==
devkitPro provides Win32-native precompiled versions of devkitARM which can be run directly on Windows.
+
* If you already use msys2 then you can follow the instructions at https://github.com/devkitPro/pacman/releases/latest to add the devkitPro repositories.
* [https://github.com/devkitPro/installer/releases/latest download the latest version of the graphical installer] from SourceForge and run it, following the instructions as you go.
+
 
 +
Otherwise
 +
 
 +
* [https://github.com/devkitPro/installer/releases/latest download the latest version of the graphical installer] from github and run it, following the instructions as you go.
 
* An Internet connection is required.
 
* 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.
+
* Ensure at least "3DS Development" is ticked - you can also leave the other options ticked if you wish.
 
* Once the installer has finished, launch MSYS from:
 
* Once the installer has finished, launch MSYS from:
 
** Windows 7 and earlier: Start -> All Programs -> devkitPro -> MSYS
 
** Windows 7 and earlier: Start -> All Programs -> devkitPro -> MSYS
Line 19: Line 19:     
==Unix-like platforms==
 
==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.
+
Currently devkitPro provides precompiled versions of devkitARM for the following Unix-like platforms: Linux (x86_64), macOS (x86_64). Note that Linux x86_64 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 libctru or share your code on GitHub, among many other things. If you are running Linux, you'll also need wget; it comes preinstalled on most distributions, but not all.
  −
 
  −
* Find your way into a shell (eg. by opening a Terminal window), and follow the instructions for your OS:
  −
** Debian/Ubuntu/Linux Mint/Ubuntu on WSL: <code>sudo apt-get install git curl</code>
  −
** Fedora/CentOS/RHEL: <code>sudo yum install git curl</code>
  −
** openSUSE: <code>sudo zypper install git curl</code>
  −
** Arch Linux/ALWSL: <code>sudo pacman -S git curl wget</code>
  −
** macOS: Download Git from [http://git-scm.com/download/mac] and install it. Curl is included with the OS.
  −
 
  −
* Next, we need to download, make executable and run the devkitARM updater (don't worry, the updater is also the installer.)
  −
<pre>
  −
curl -L https://raw.githubusercontent.com/devkitPro/installer/master/perl/devkitARMupdate.pl -o devkitARMupdate.pl
  −
chmod +x ./devkitARMupdate.pl
  −
sudo ./devkitARMupdate.pl /opt/devkitpro
  −
</pre>
     −
* Finally, we need to tell your shell where to find the devkitARM binaries.
+
* Follow the instructions to install pacman found at https://github.com/devkitPro/pacman/releases/latest
<pre>
+
* run sudo (dkp-)pacman -S 3ds-dev to install the tools and libraries for 3ds development
echo "export DEVKITPRO=/opt/devkitpro" >> ~/.bashrc
+
* logout and login again to get the environment settings needed.
echo "export DEVKITARM=/opt/devkitpro/devkitARM" >> ~/.bashrc
  −
source ~/.bashrc
  −
</pre>
      
= Building the examples =
 
= Building the examples =
3DS examples are still being created; however, there are a growing number of examples available from the [https://github.com/devkitPro/3ds-examples devkitPro/3ds-examples GitHub repository].
+
3DS examples are still being created; however, there are a growing number of examples available from the [https://github.com/devkitPro/3ds-examples devkitPro/3ds-examples GitHub repository]. These are downloaded by the installer and can be found in $DEVKITPRO/examples/3ds
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 <code>git clone https://github.com/devkitPro/3ds-examples.git</code> into your shell in the directory you wish to store the 3ds-examples folder in.
      
These can be built from the command line.
 
These can be built from the command line.
Line 61: Line 39:     
==Running your code==
 
==Running your code==
To run it on your 3DS, start the Homebrew Launcher, press Y to open the network loader, then on your PC type: <code>$DEVKITARM/bin/3dslink  '''my3dsproject'''.3dsx</code>, replacing '''my3dsproject''' with the name of the 3dsx file you want to run.)
+
To run it on your 3DS, start the Homebrew Launcher, press Y to open the network loader, then on your PC type: <code>$DEVKITPRO/tools/bin/3dslink  '''my3dsproject'''.3dsx</code>, replacing '''my3dsproject''' with the name of the 3dsx file you want to run.)
 
  −
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:
  −
<pre>export DEVKITPRO=/opt/devkitpro
  −
export DEVKITARM=/opt/devkitpro/devkitARM</pre>
  −
* Right-click the project and go to Properties->Code Assistance and click C Compiler.
  −
* In include directories enter
  −
<pre>/opt/devkitpro/devkitARM/include;/opt/devkitpro/libctru/include</pre>
  −
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.
+
If all goes well, you'll soon see your application running on your 3DS. If not, it could help to add <code>-a '''ipaddress'''</code>, replacing '''ipaddress''' with the ip address of the console (visible on homebrew launcher after pressing Y).
    
= Troubleshooting =
 
= Troubleshooting =
 
'''I get the "Please set DEVKITARM in your environment." error.'''
 
'''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]:
+
Ensure you have the devkit-env package installed - (dkp-)pacman -Sl | grep devkit-env. Logout and login to get the enviroment settings.
sudo chown $USER /opt/devkitpro/ -R
  −
echo "export DEVKITPRO=\"/opt/devkitpro/\"" >> ~/.profile
  −
echo "export DEVKITARM=\"\${DEVKITPRO}/devkitARM/\"" >> ~/.profile
  −
source ~/.profile
      
For WSL users, you need to close the Bash shell, then reopen it for WSL to reload all of the variables from a clean state.
 
For WSL users, you need to close the Bash shell, then reopen it for WSL to reload all of the variables from a clean state.
2

edits