/GUI_sample

Sample code for 3DS homebrew

Primary LanguageCGNU General Public License v3.0GPL-3.0

GUI sample

GitHub commit activity

Index

What is this?????

This is a sample application for 3ds homebrew (aka SDK).
Homebrew application for 3ds such as Video player for 3DS and Battery mark for 3DS are based on this sample code.

What sample code does it have?????

Currently this sample application contains following samples :

Draw image sample

This is a sample code to draw images such as .png and .jpg.

Application source code : source/sub_app0.cpp
Used APIs :

File explorer sample

This is a sample code to use file explorer.

Application source code : source/sub_app1.cpp
Used APIs :

Hardware settings sample

This is a sample code to change hardware settings such as wifi state, screen brightness and sleep.

Application source code : source/sub_app2.cpp
Used APIs :

Camera and mic sample

This is a sample code to take a picture by using camera and record sound by using mic.

Application source code : source/sub_app3.cpp
Used APIs :

Speaker sample

This is a sample code to playback audio.

Application source code : source/sub_app4.cpp
Used APIs :

Build

You need :

If you want to build .cia, then you also need :

(Copy them in your path e.g. in {devkitPro_install_dir}\tools\bin).

As of this writing, we use these packages to build this project.
Note : Not all of them are necessary e.g. devkitARM-gdb is not required to build and we don't use
standard libctru and citro2(3)d, but we just document all of them in case someone need these information.
For more information, see here.

$ dkp-pacman -Q
3ds-cmake 1.5.1-1
3ds-examples 20230610-1
3ds-pkg-config 0.28-5
3dslink 0.6.2-1
3dstools 1.3.1-3
catnip 0.1.0-1
citro2d 1.6.0-1
citro3d 1.7.1-2
devkit-env 1.0.1-2
devkitARM r64-2
devkitARM-gdb 14.1-2
devkitarm-cmake 1.2.2-1
devkitarm-crtls 1.2.6-1
devkitarm-rules 1.5.1-1
devkitpro-keyring 20180316-1
dkp-cmake-common-utils 1.5.2-1
general-tools 1.4.4-1
libctru 2.3.1-1
pacman 6.0.1-7
picasso 2.7.2-3
tex3ds 2.3.0-4

For .cia build

bannertool 1.2.0
makerom v0.18.4

If you want to make changes to the libraries, then follow this guide.

After having all dependencies, do :

  • Clone this repository (git clone https://github.com/core-2-extreme/{project_name}).
    • On windows run build_3dsx.bat for .3dsx only build or build.bat for .3dsx+.cia build.
    • On other system, run make 3dsx for .3dsx only build or make all for .3dsx+.cia build.

License

This software is licensed under GNU General Public License v3.0 or later.

Note : As of this writing, zlib is not used in this project
(once it was used), however it may be used in the future.

Third party libraries are licensed under :

Library License
libctru zlib License
citro3d zlib License
citro2d zlib License
x264 GNU General Public License v2.0
libmp3lame GNU Lesser General Public License v2.0
dav1d BSD 2-Clause
ffmpeg GNU General Public License v3.0
zlib zlib License
mbedtls Apache License 2.0
nghttp2 MIT License
curl The curl license
stb_image Public Domain