Skip to content

SlinkyPotato/3DSBuildTemplate

 
 

Repository files navigation

3DSBuildTemplate

A starter template for various 3DS homebrew applications.

Usage

Make Commands Action
make
make 3ds The 3ds target will build a <project name>.3ds file.
make 3dsx The 3dsx target will build both a <project name>.3dsx and a <project name>.smdh files.
make cia The cia target will build a <project name>.cia file.
make citra The citra target will build a <project name>.elf file and automatically run citra.1
make elf The elf target will build a <project name>.elf file.
make fbi The fbi target will build a <project name>.cia file and send it to your 3ds via FBI.
make hblauncher The hblauncher target will build a <project name>.3dsx file and send your 3ds via homebrew launcher.2
make release The release target will build .elf, .3dsx, .cia, .3ds files and a zip file (.3dsx and .smdh only).3

Notes:

  • 1 make citra requires having citra installed and in your $PATH)
  • 2 If you intend to use the hblauncher and fbi targets ensure you have set IP3DS in the Makefile to the ip address of your 3ds on your network.
    • In homebrew launcher press Y and you can netload your 3dsx file.
    • In FBI go to remote install and select Receive URLs over the network.
  • 3 This requires having makerom and bannertool both included in buildtools as 7z files.
  • If your on windows you will need both of the following in your $PATH (included aswell)

IDE Setup

IntelliJ's CLion

  1. Open project folder in Clion.
  2. Adjust CMakeLists.txt include_directories to point to devkitArm.

Note: Make sure mingw-w64 toolchain is setup in settings.

Code::Blocks

  1. Simply open the 3ds.cbp in Code::Blocks
  2. Choose File > Save as user-template and enter a template name. The project setup is now a user template to create new projects.
  3. When creating a new project select File > New > From template and follow the wizard's instructions.
  4. Ensure you have the environment variables plugin installed (in linux you can install this by installing the codeblocks-contrib package)
  5. Choose Settings > Environment and scroll down to the Environment Variables section.
  6. Add DEVKITPRO to point to where devkitpro is installed
  7. Add DEVKITARM to point to where devkitarm is.

Compiling

Unix

You will need devkitArm which can be obtained with

wget http://sourceforge.net/projects/devkitpro/files/Automated%20Installer/devkitARMupdate.pl
chmod +x devkitARMupdate.pl
sudo ./devkitARMupdate.pl /opt/devkitPro
echo "export DEVKITPRO=/opt/devkitPro" >> ~/.bashrc
echo "export DEVKITARM=\$DEVKITPRO/devkitARM" >> ~/.bashrc
echo "export PATH=\$PATH:\$DEVKITARM/bin" >> ~/.bashrc
source ~/.bashrc

Please note: The env variables need to be available from sudo

Defaults env_keep += "DEVKITPRO DEVKITARM"

Windows

Install the following using devkitProUpdater:

Note: It is suggested to install dev tools at the root of your disk drive i.e. C:\Development\3ds-homebrew\devkitPro

Once installed, make sure you have access to a C compiler from cmd. If you're not sure install mingw-w64 to C:\Development\mingw-w64 and then add the path C:\Development\mingw-w64\mingw32\bin to your env variables.

Open command prompt as an administrator and cd into the devkitPro installation folder. Some commands need admin rights to properly install. Additionally make sure your antivirus software does not interfere.

Next git clone the latest 3ds_portlibs:

git clone https://github.com/devkitPro/3ds_portlibs.git
cd 3ds_portlibs

make zlib
make install-zlib

Finally, clone this repo and build with one of the commands found in usage.

Credits

All of this would not have been possible without the work of

About

3DS Homebrew build template

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Makefile 64.1%
  • Python 18.7%
  • C++ 13.8%
  • CMake 3.4%